
- •Принцип двоичного кодирования
- •0 D 0 0 1 0 0 0 инверт
- •1) Проверить, выровнены ли порядки, и. Если нет. То выровнять.
- •2} Сложить мантиссы (одна из них. Возможно, денормализовша).
- •С 1992 г. - неотъемлемая часть Intel и amd.
- •271 Команда - групповые арифметические и логические операции , сдвиги , сравнения , перегруппировка и извлечение отдельных чисел , различные варианты пересылок .
- •Команды управления виртуальной памятью .
- •6} В режиме ss&2
- •3 Register ImmediateFormat 1a
- •Instruction -Level Pa га I lei ism
- •Instruction -Level Parallel ism
- •Su perscalarArch itectu res
- •Intel 486 - один конвейер , Pentium - 2 конвейера из 5 стадий .
- •Su perscalarArch itectu res
- •Su perscalarArch itectu res
- •Instruction
- •1011X j|I 2 - все параллельно
- •1 Упрощается архитектура процессора ; вместо распараллеливающей логики на eric процессоре можно разместить больше регистров , функциональных устройств .
- •BusWidth
- •1. Арбитраж пин
- •3. Методы повышения эффективности пин
- •4. Стандарты шинS Примеры
- •Bus Arbitration (2)
- •Способы расширения полосы пропускания шин :
- •Pci BusTransactions
- •Сокращённые обозначения -kj,Mi7 Gi.Ti.Pi и Ei.
- •Vax/1980 pPra/1996
- •MemoryChips
- •Volatile
- •1. Блочная организация основной памяти
- •2. Микросхемы памяти
- •Расслоение памяти
- •Расслоение памяти
- •1. Динамические сву
- •Динамические сву для видеоадаптеров
- •Многопортовые os/
- •Volatile
- •2. (Пни -память
- •3. Ассоциативные 3/
- •4. Организация fau -памяти
- •Пример 2
- •Пример 2
- •1. Организация fcu -памяти
- •2. Система ввода -вывода
- •Ёмкость каи - 32kb , строки го 25б байт .
- •Address
- •64 Kb cache, direct -mapped,32 -byte cache block
- •32 Kb cache, 2 -wayset -associative, 16 -byteblocks
- •16Kb,4 -wayset-associativecache732 -bitaddress, byte -addressablememory/32 -byte cache blocks/lines
- •Write -through - прежде всего обновляется слово ,
- •Средства обнаружения и защиты от ошибок . Архитектура современных н)¥щ основана на полностью ассоциативном отображении .
- •Структура гу
- •1. Понятие конвейера
- •If: Instruction fetch
- •Id: Instruction decode/ register file read
- •Риск го данным - взаимосвязь команд го данным
- •Pipelined Datapath
- •Hazards
- •Superscalar Architectures
- •Instruction
- •Instruction decode
- •1. Очередность вьщачи декодированных команд на исполнительные блоки отличается от последовательности предписанной программой -неупорядоченная выдача команд (out-of-orderissue ),
- •Sisd,misd,simd,mimd.
- •Классификация Флинна
- •Heterogeneous multiprocessor chip with six cores
- •Организация памяти вс
- •Message-passing interconnection network
- •3 Stages
- •3 Stages
- •Num am ulti processors
- •Interconnection network
- •18Bits 8
- •18Bits 8
- •And memories are not shown.
- •(A) a star, (b) a complete interconnect.
- •(C) a tree, (d) a ring, (e) a grid, (f) a double torus.
- •(G) a cube, (h) a 4d hypercube.
- •Red Storm (2)
Interconnection network
Nodei CPU Memory
256 узлов , каждый узел - один процессора и 16 Мбайт ОБУ Общий объем памяти составляет 22 байтов . Она разделена на
2Ъ строк кэи -памяти го 64 байта каждая . Память статически распределена го узлам :0 -16 М в узле 0,16 М-32 М — в узле 1 и т. д. Узлы связаны через сеть . Каждый узел содержит элементы каталога для 2в 64 -байтных строк кш -памяти ,
Сяайд
составляя свою 234 -байтную память . Допустим , что строка может содержаться максимум в одной кш -памяти .
Printed
with FinePrint- purchase atwww.fineprint.com
CacheCoherentNUMA мультипроцессоры
18Bits 8
Node |
Block |
Offset |
(b)
21Э-1 |
|
|
|
| |
4 |
0 |
|
3 |
0 |
|
2 |
1 |
82 |
1 |
0 |
|
0 |
0 |
|
Допустим Ц1 3D обращается к кэшированной строке 0x24000108. Блок управления памятью разделяет адрес на три части , как показано на В десятичной системе счисления эти три части — узел 36, строка 4 и смещение 8. & памятью видит , что слово в узле 36, и посылает запрос через сеть в узел 36, ще находится нужная строка , узнает , есть пл строка 4 в кш -памяти , и если да, то ще именно .
Когда запрос прибывает в узел 36, сн направляется в аппаратное обеспечение каталога . Аппаратное обеспечение индексирует таблицу и< 2Б элементов (один элемент на каждую строку кш -памяти ) и извлекает элемент 4.
Слайд 29
CacheCoherentNUMA мультипроцессоры
18Bits 8
Node |
Block |
Offset |
(b)
21Э-1 |
|
|
E |
| |
4 |
0 |
|
3 |
0 |
|
2 |
1 |
82 |
1 |
0 |
|
0 |
0 |
|
Если строка отсутствует в кш -памяти , то аппаратное обеспечение вызывает строку 4 из локального ОБУ, отправляет еэ в узел 2D и обновляет элемент каталога 4, чтобы показать , что эта строка находится в кш -памяти в узле 20.
Второй запрос , например о строке 2 из узла 36. Из каталога видно , что эта строка - в кш -памяти узла 82. В этот момент аппаратное обеспечение может обновить элемент каталога 2, чтобы сообщить , что строка находится теперь в узле 20, а затем послать сообщение в узел 82, чтобы строка из него была передана в узел 20, и объявить недействительной его кш -память . Многие сообщения скрыты . Cj№ild JJ
Printed
with FinePrint- purchase atwww.fineprint.com
CacheCoherentNUMA мультипроцессоры
Объём памяти , занимаемой каталогами . Каждый узел содержит 16 Мбайт СВУ и 2В 9-битных элементов для слежения за этим СВУ : непроизводительные затраты каталога - около 9х2Б битов
от 16 Мбайт или около 1,76%, что допустимо . Даже если длина строки кш -памяти составляет 3> байта , непроизводительные затраты составят всего 4%. Если длина строки каи -памяти равна 128 байтов , непроизводительные затраты будут ниже 1%.
Недостатки :
строка может быть кэширована только в одном узле .
необходимость следить за теч , обновлена лл исходная память илинет .
Чтобы строки можно было кэшировать в нескольких узлах, потребуется какой -то способ и< нахождения (например , чтобы объявлять недействительными или обновлять и< при записи )
Сяюд 31
Классификация
параллельных ВС
|
Multi-computers |
| |
|
/\ |
| |
WIPP |
COW |
Parallel
computer architectures
Ncn
Urifcrm
Merncry
Access
Urifcrrn
Merncry
Access
|
| ||||
UMA |
|
COMA |
|
NUMA |
Bus |
Switched |
CC-NLJMA |
NC-NUMA |
Grid |
Hyper-cube |
Shared
memory
Message passing
COMA - Cash Only Memory Access, CC -NUMA -CacheCoherentNUMA, NC-NUMA - NoCachingNUMA,MPP - Massively Parallel Processors, N3/V - Network of Workstation s, CD/V - Cluster of Workstations.
Printed
with FinePrint- purchase atwww.fineprint.com
Cache Only Memory Access мультипроцессоры
COMA - локальная память каждого процессора построена как большая каи -память для быстрого доступа <о стороны «своего » Ц1 . Кэши всех процессоров в совокупности рассматриваются как глобальная память системы . Сама глобальная память отсутствует . Принципиальная особенность архитектуры - динамика данных. Отсутствие привязанности статически к определённому модулю памяти и уникального адреса , неизменного в течение всего времени существования переменной .
Данные переносятся в кш -память того Ц1, который и< последним запросил , переменная нэ фиксирована уникальным адресом и в каждый момент времени может располагаться в любой физической ячейке . Перенос данных из кэша в кш - без участия ОС. Последняя копия элемента данных никогда из кш -памяти нэ удаляется .
Плюсы : - преимущество в производительности го сравн . с NUMA.
Недостатки : - сложная и дорогая аппаратура управления памятью , если одна строка кш нужна двум Ц1 - постоянные перемещения данных между ними .
Классификация
параллельных ВС
Мультикомпьютеры
можно разделить на две категории .
Первая
категория содержит процессоры MFP
(Massively Parallel
Processors — процессоры с массовым
параллелизмом
) — дорогостоящие суперкомпьютеры ,
которые
состоят из большого количества
процессоров , связанных
высокоскоростной коммуникационной
сетью
. В качестве примеров можно назвать
Cray T3E и IBMSP/2.
Вторая категория мультикомпьютеров включает рабочие станции , которые связываются с помощью уже имеющейся технологии соединения . Эти примитивные машины называются 1МЭЛ/ (Network of Workstations — сеть рабочих станций )
и <XW (Cluster of Workstations — кластер рабочих станций ).
Слюй 34-
Printed with FinePrint- purchase atwww.fineprint.com
Протоколами когерентности кэширования
Во всех решениях контроллер кш -памяти разрабатывается так, чтобы гаи -память мота перехватывать запросы на шине , контролируя вое запросы шины от других процессоров и других блоков каи -памяти и предпринимая те или иные действия в определенных случаях . Эм устройства называются гаи -памятью с отслеживанием (snooping caches или snoopy caches \ поскольку они отслеживают шину .
Набор правил , которые выполняются гаи -памятью ,
процессорами и основной памятью , чтобы предотвратить появление различных вариантов данных в нескольких блоках гаи -памяти , формируют протокол когерентности кэширования . Единица передачи и хранения гаи -памяти называется строкой гаи -памяти . Обычно строка гаи -памяти равна 32 или 64 байтам .
Самый простой протокол когерентности кэширования называется сквозным кэшированием .
Слюй 35
Когерентность
Action |
Local request |
Remote request |
Read miss |
Fetch data from memory |
|
Read hit |
Usg data from local cachG |
|
Write miss |
Update data in memory |
|
Write hit |
Update cache and memory |
Invalidate cache entry |
Сквозное кэширование . Пустые графы означают , что никакого действия нэ происходит .
Если процессор пытается считать слово , которого нет в кш -памяти , контроллер кш -памяти загружает в кш -память строку , содержащую это слово . Строку предоставляет основная память , которая в этом протоколе всегда обновлена . В дальнейшем информация может считываться из кш -памяти .
Слайд 36
Printed with FinePrint- purchase atwww.fineprint.com
Когерентность
Action |
Local request |
Remote request |
Read miss |
Fetch data from memory |
|
Read hit |
Usg data from local cache |
|
Write miss |
Update data in memory |
|
Write hit |
Update cache and memory |
Invalidate cache entry |
В случае промаха khj -памяти при записи слово , которое было изменено , записывается в основную память . Строка , содержащая нужное слово , нэ загружается в кш -память . В случае результативного обращения к каи -памяти при записи каи обновляется , а слово плюс го всему записывается в основную память . Суть протокола состоит в тем , что в результате всех операций записи записываемое слово обязательно проходит через основную память , чтобы информация в основной памяти всегда обновлялась .
Слайд 37
Когерентность
Action |
Local request |
Remote request |
Read miss |
Fetch data from memory |
|
Read hit |
Usg data from local cacrm |
|
Write miss |
Update data in memory |
|
Write hit |
Update cache and memory |
Invalidate cache entry |
-памяти с отслеживанием (крайняя правая колонка в табп ). fan -память , которая выполняет действия , гаи -1, a ioij с отслеживанием — гаи -2. Если при считывании произошел промах кэша -1, сн запрашивает шину, чтобы получить нужную строку из основной памяти . №т -2 видит это, ю ничего нэ делает . Бели нужная строка уже содержится в гаи -\ запроса шины нэ происходит, поэтому кни -2 нв знает о результативных считываниях из кэша -1.
Слайд 33
Printed with FinePrint- purchase atwww.fineprint.com
Когерентность
Action |
Local request |
Remote request |
Read miss |
Fetch data from memory |
|
Read hit |
Usg data from local cache |
|
Write miss |
Update data in memory |
|
Write hit |
Update cache and memory |
Invalidate cache entry |
Процесс записи более интересен . Если процессор 1 записывает слово , кш -1 запрашивает шину как в случае промаха кэша , так и в случае попадания . Всегда при записи кш -2 проверяет наличие у себя записываемого слова . Если данное слово отсутствует , кш -2 рассматривает это как промах отдаленной памяти и ничего нэ делает .( в табл . промах отдаленной памяти означает , что слово нэ присутствует в кш -памяти отел ежи вателя ; нэ имеет значения , было /м это слово в кш -памяти инициатора или нет . Таким образом , один и тот же запрос может быть результативным логически и промахом для отел ежи вателя и наоборот .)
Слюй
Когерентность
Предположим
, что гаи -1 записывает слово , которое
присутствует
в каи -2. Если гаи -2 нэ произведет никаких
действий
, сн будет содержать устаревшие данные
, поэтому
элемент гаи -памяти , содержащий
измененное слово
, помечается как недействительный .
Соответствующая
единица просто удаляется из гаи
-памяти
. Все кэши отслеживают вое запросы
шины , и всякий
раз , когда записывается слово , нужно
обновить его
в гаи -памяти инициатора запроса ,
обновить его в основной
памяти и удалять его из всех других
кэшей . Таким
образом , неправильные варианты слова
исключаются
.
Процессор гаи -памяти -2 вправе прочитать то же самое слово на следующем цикле . В этом случае гаи -2 считает слово из основной памяти , которая уме обновилась . В этот момент гаи -1, гаи -2 и основная память содержат идентичные копии этого слова . Если какой -нибудь процессор произведет запись , то другие кэши будут очищены , а основная память опять обновится .
Слайд 4)
Printed
with FinePrint- purchase atwww.fineprint.com
Структурная и функциональная организация ЭЕМ (ComputerOrganization and Design )
БГУИР
кафедра
ЗЕМ
доцент Самая ь Дм три й Иванович
т.284 -2L -61, dmitry_samal@mail.ru ,
a.5Q2 -5
Лекция 24 «Вычислительные системы класса SIMD »
2007
План
лекции
Протокол MESI.
Вычислительные системы класса SIMD. Понятиевектора .
Понятие векторного процессора .
Структура векторного процессора .
Матричные вычислительные системы .
Массив процессоров . Структура процессорногоэлемента .
Ассоциативные вычислительные системы .
Вычислительные системы с систолическойструктурой .
Вычислительные системы с командными словамисверхбольшой длины VLIW.
Printed
with FinePrint- purchase atwww.fineprint.com
Слайд 2
Протоколы наблюдения
В
протоколах наблюдения ответственность
за поддержание когерентности
всех кш возлагается на контроллеры
кш . Процессоры
должны широковещательно передавать
на шину вое запросы
к памяти , которые могут повлиять на
совместно используемые
блоки . Контроллеры кш -памяти определяет
присутствует
лл
в
его памяти копия модифицируемого
блока , и если
да, то либо аннулирует её либо обновляет
.
Процессор |
|
|
г&и -память |
| |||||||
|
|
1 |
| ||||||||
|
F |
|
|
; |
|
| |||||
Интерфейс |
|
|
Контроллер |
| |||||||
ИИ-Ы |
|
|
гаи -памяти |
| |||||||
i |
|
|
>Шина |
наблюдения | |||||||
|
|
|
i |
|
( |
Системная шина | |||||
|
Основная |
i память |
|
Другие
процессоры ,
каждым с кш -
памятью и контроллером
Слайд 3
Протоколы
наблюдения
Протокол
сквозной записи
- расширение стандартной
процедуры сквозной записи . Запись
в локальную
каи -память любого процессора
сопровождается
записью в основную память . Все
остальные
гаи , содержащие копию изменённого
блока
, объявляют свои копии недействительными
.
Плюсы : простота .
Минусы : значительный трафик шины из-за повторной перезагрузки блока во вое гаи с недействительными флагами . Производительность может упасть , т.к. для продолжения вычислений процессоры должны ждать , пока завершаться все операции записи .
Printed
with FinePrint- purchase atwww.fineprint.com
Слайд 4
Протоколы наблюдения
Протокол
обратной записи
- расширение стандартной
процедуры обратной записи паи
-памяти
. Перезапись блока в основную память
будет произведена
, если выполняется хоть одно из двух
условий
:
Елок удаляется из той паи -памяти , где былизменён ,
Другой процессор обращается к своей копииизменённого блока .
Плюсы : перезапись изменённых блоков только го потребности - меньше трафик .
Минусы : требует представления эксклюзивных прав процессору на изменение блока каи , иначе остальные каи не узнают, что блок модифицирован ,
Слайд 5
Протоколы
наблюдения
Протокол
обратной записи
- на ЗЕР/о снижает трафик
шины го сравнению с протоколом
сквозной записи
. Но влечёт более серьёзные проблемы
когерентности
- так как даже основная память не
всегда
содержит последнее значение элемента
данных
.
Другие протоколы : однократной записи , Synapse, Berkeley , Illinois,Firefly в той иш иной степени комбинируют протоколы сквозной и обратной записи + вводят дополнительные ограничения на операции go строками каи -памяти .
Printed
with FinePrint- purchase atwww.fineprint.com
Слайд б
Протокол MESI
Самый
популярный протокол . ME5I
-Modified/Exclusive/Shared
Д rival id .
Широко распространён в коммерческих
системах - Pentium,PowerPC
и др. Еып разработан для
кш -памяти с обратной записью . Одна
из основных задач протокола
- откладывание на максимально возможный
срок операции
обратной записи кэшированных данных
в основную память
-> минимизация ненужных пересылок
«Hajj -
03/ ».
Каждая строка кш -памяти может быть в одном из четырёх состояний (два бита контроля ) Статус строки может быть изменён как «своим » процессором , так и любым другим :
М - Модифицированная - данные в кш -строке , были модифицированы , нэ изменённая информация пока нэ переписана в основную память . Это значит , что вое остальные копии данной информации в системе нэ достоверны .
Е - Эксклюзивная - данная строка в кш нэ подвергаласьизменению , совпадает го содержанию с основной памятью , нэотсутствует в любом другом локальном кш . Cj№ild 7
Протокол
MESI
5
- Разделяемая
- данная строка в кш совпадает го
содержанию
с основной памятью и может
присутствовать в одном или
нескольких других локальных кш .
I - Недействительная - кш -строка , помеченная как недействительная , нэ содержит достоверных данных и становится логически недоступной .
Чтеьие
Оброс
Чтете
Инициировано
удалённым
процессором
pvt - частный
shr - разделяемый
Чтете и зггмъ
Чга-ие
Printed with FinePrint- purchase atwww.fineprint.com
Слайд 8
Протокол MESI
Изначально
все
строки
в кш - Invalid.
Основная
память
Первое чтение - строка получает статус Exclusive
/Т
■ |
|
|
|
|
Кш -.■■■■ память |
|
Кш -память | ||
^ |
|
| ||
|
| |||
|
|
|
|
|
Процессор 1 |
|
Процессор 2 |
I
I
1
Процессор 1 читает х
Слайд 9
Протокол
MESI
Чтение
во вторую кш -память . Обе копии
получают статус
Shared
Основная память
т
■ |
|
|
|
|
rau -память |
X |
\ \ гаи - \ память | ||
|
|
\ , |
| |
|
|
|
\ |
|
|
\ | |||
|
|
|
\ |
|
Процессор 1 |
|
Процессор 2 |
I
I
EJ {S} (?)
Процессор 2 читает х
Слайд 10
Printed
with FinePrint- purchase atwww.fineprint.com
Протокол MESI
Изменение
одной из копий строки
Основная память
т
|
|
|
|
|
|
Кш -память |
|
Кш -память | |||
|
|
X |
| ||
|
|
| |||
|
|
|
|
|
|
Процессор 1 |
|
Процессор 2 |
|
I
Дэ записи изменений в основную память -статус Modified . Все остальные копии признаются недействительными .
sj W) © ©
Процессор 1 производит первую запись в х
Слайд 11
Протокол
MESI
Повторное
изменение копии строки
Основная
память
т
Повторное изменение нэ меняет состояний строк
соответствующих кш .
|
|
|
|
|
|
Кш -память |
|
Кш -память | |||
|
|
X |
| ||
|
|
| |||
|
|
|
|
|
|
Процессор 1 |
|
Процессор 2 |
I
I
Процессор 1 производит очередную запись в х
Слайд 12
Printed
with FinePrint- purchase atwww.fineprint.com
Протокол MESI
Чтение
содержимого ячейки х*
Кш -память
Основная память
_L
Кш -память
|
I
Контроллер каи -памяти 1
отслеживает запрос других процессоров , притормаживает и< и пересылает строку из кш памяти - в основную .
Процессор
1
Процессор 2
Процессор 2 читает х (первый шаг)
Слайд В
Протокол
MESI
Чтение
содержимого ячейки х*
Основная память
т / |
|
I |
Кш - / память/ |
|
память |
/ |
| |
|
| |
|
|
|
Процессор 1 |
|
Процессор 2 |
I
I
Контроллер каи -памяти 1
отслеживает запрос других процессоров , притормаживает и< и пересылает строку из кш памяти - в основную .
Процессор 2 читает х( второй шаг)
Слайд П
Printed
with FinePrint- purchase atwww.fineprint.com
Протокол MESI
Чтение
содержимого ячейки х*
Основная
память
\
Строка загружается в соответствующую кш -память .
■ |
|
|
\ |
|
Кш -память |
|
\ Кш -память | ||
|
х* |
| ||
|
| |||
|
|
|
|
|
Процессор 1 |
|
Процессор 2 |
I
I
Процессор 2 читает х(третий шаг)
Слайд 15
The
MESI Cache Coherence Protocol
The
MESI cache coherence protocol.
is)
CPU 1
CPUS
CPU3
Memory
CPU 1 reads block A
CFU 1
cpsj г
CPU3
Memory
CPU 3 reads block A
Exclusive
Cache
Bus
Shared Stared
(el
CPU 1
CPU3
cpu г
Memory
[Snared |
eiwad |
I |
|
|
| |||
|
|
Bus | ||||||
CPU t |
|
CPU 2 |
|
CPUS CZI |
|
Memory | ||
1 |
Modified |
1 |
|
|
Cut
CPU £ reads block A
CPU г writes block A
CPU1
EH
CPU
1
Modified
CPU 2
Modified
CPU
2
CPUS
CPUS
Memory
Bus
CPU 2 writes block A
CPU1
Printed
with FinePrint- purchase atwww.fineprint.com
Bus
Слайд 16
Message -PassingMulticomputers
A
generic multicomputer.
CPU
Memory
Node /
ф
Local interconnect
Disk and I/O
Local interconnect
Disk and I/O
Communication
processor
High-performance interconnection network
Слайд 17
Topology
|
|
|
|
|
|
|
|
|
|
(e) |
7 |
2— |
|
(9)
m
Var
ous topologies. The heavy dots represent switches. The CPUs