Логическая поддержка когерентности в Эльбрус/МЦСТ-ХR серверах среднего уровня

Содержание

Слайд 2

Цель и область применения

Область применения – серверы на базе микропроцессоров Эльбрус/МЦСТ-XR
В

Цель и область применения Область применения – серверы на базе микропроцессоров Эльбрус/МЦСТ-XR
серверах среднего уровня т.е. с числом процессоров до 16
Примечание: в данной презентации термином «процессор» обозначается чип процессоров
Сервер может быть использован как базовый элемент в большой системе

Слайд 3

Основные цели

Для систем с числом процессоров более 4-х надо
1. Рассмотреть варианты

Основные цели Для систем с числом процессоров более 4-х надо 1. Рассмотреть
протокола когерентности:
с меньшими требованиями к пропускной cпособности внешних связей;
позволяющие в полной мере воспользоваться результатами программистов по локализации ресурсов процесса на одном или нескольких близлежащих процессорных чипах.
2. Предложить аппаратную поддержку для уменьшения числа обращений к удаленной памяти

Слайд 4

Построение системы с16-ю процессорами

Чип_КК использует существующий протокол когерентности для взаимодействия с процессорами

Построение системы с16-ю процессорами Чип_КК использует существующий протокол когерентности для взаимодействия с
кластера
Для взаимодействия с процессорами удаленных кластеров используется расширенный вариант протокола
Чип_КК должен выглядеть как еще один процессор для всех локальных процессоров кластера
Каждый процессорный модуль(кластер) включает чип когерентности и коммутации(Чип_КК)

Слайд 5

Основные положения

Чип-КК расширяет возможности построения систем до 4-х кластеров
Для быстрого доступа к

Основные положения Чип-КК расширяет возможности построения систем до 4-х кластеров Для быстрого
удаленным данным введен фильтр(Filter)
Для уменьшения потока Snoop-запросов за пределы кластера введен справочник(Directory)
Чип-КК использует протокол когерентности, разработанный для однокластерной системы,т.е. точкой синхронизации работы с одной строкой является Home-узел, причем сохраняется полное снупирование всех процессоров Home-кластера; Цель – уменьшить доработки процессора

Слайд 6

Протокол MOESI
Состояния:
I – Invalid – нет данных;
E – Exclusive – данные есть только

Протокол MOESI Состояния: I – Invalid – нет данных; E – Exclusive
у одного владельца; копия не изменена относительно данных в памяти;
S- Shared – данные есть у нескольких совладельцев;
М– Modified - данные есть только у одного владельца; копия изменена относительно данных в памяти;
O – Owned - данные есть у нескольких совладельцев;копия изменена относительно данных в памяти;

Слайд 7

Способы решения проблемы пропускной способности в линках

1. Фильтр исключает обращения за

Способы решения проблемы пропускной способности в линках 1. Фильтр исключает обращения за
пределы кластера для данных из удаленных кластеров, если строка в состояниях М. Данные пересылаются внутри кластера.
2. Промахи в справочнике исключают обращения за пределы кластера для локальных данных. Данные пересылаются внутри кластера.
3. При попадании в справочник запросы высылаются НЕ ВСЕМ кластерам, но лишь только тем кластерам, где действительно находятся копии данных
4. Совместное использование фильтра и справочника должно сократить требования к пропускной способности внутрикластерных и межкластерных линков.

Слайд 8

Cостояния строки в фильтре

Состояния:
I – Invalid – нет данных;
S_G - Shared_global –

Cостояния строки в фильтре Состояния: I – Invalid – нет данных; S_G
данные есть у нескольких совладельцев, причем НЕ только данного кластера;
S_L - Shared_local – данные есть у нескольких совладельцев, но только данного кластера;
М – Modified - данные есть только у одного владельца; копия изменена относительно данных в памяти;
O_L – Owned_local - данные есть у нескольких совладельцев, но только данного кластера;копия изменена относительно данных в памяти;
O_G – Owned_global - данные есть у нескольких совладельцев, причем НЕ только данного кластера;копия изменена относительно данных в памяти;

Слайд 9

Автомат состояний фильтра

Автомат состояний фильтра

Слайд 10

Время доступа к локальной памяти с использованием справочника

Справочник отслеживает состояния строк локальной

Время доступа к локальной памяти с использованием справочника Справочник отслеживает состояния строк
памяти кластера
Для каждой строки, которая кэширована в удаленном кластере в справочнике поддерживается ее состояние (Shared, Modified, Owned) и бит-вектор кластеров совладельцев данных строки
Справочник, в случае конфликта по ресурсам, требует вытеснения строки -”жертвы” из кэш-памятей всех совладельцев
Для запросов от локальных процессоров за локальными данными в случае промаха в справочнике уменьшается время доступа к данным за счет исключения выхода за пределы кластера

Слайд 11

Состояния строки в справочнике

Состояния:
I – Invalid – нет данных;
S - Shared –

Состояния строки в справочнике Состояния: I – Invalid – нет данных; S
данные есть у нескольких кластеров-совладельцев,
М – Modified - данные есть только у одного кластера-владельца; копия изменена относительно данных в памяти;

Слайд 12

Время доступа к удаленной памяти с использованием фильтра

Фильтр отслеживает состояния строк удаленной

Время доступа к удаленной памяти с использованием фильтра Фильтр отслеживает состояния строк
памяти внутри данного кластера
Для каждой строки, которая кэширована в кластере в фильтре поддерживается ее состояние (Shared, Modified, Owned, причем имеется подсказка о наличии копий этой строки в других кластерах т.е. является ли копия только локально или глобально кэшируемой) и бит-вектор процессоров совладельцев данных строки
Фильтр, в случае конфликта по ресурсам, требует вытеснения строки -”жертвы” из кэш-памятей всех процессоров-совладельцев данного кластера
Для запросов от локальных процессоров за удаленными данными в случае попадания в фильтр уменьшается время доступа к данным за счет исключения выхода за пределы кластера в состояниях строки Shared_лок, Modified, Owned_лок

Слайд 13

кластер с 4-мя процессорами

кластер с 4-мя процессорами

Слайд 14

1-ая стадия: Запрос Read_64 в HOME-узел

HOME-узел

Запросчик

1-ая стадия: Запрос Read_64 в HOME-узел HOME-узел Запросчик

Слайд 15

HOME-узел

2-ая стадия: Выдача Snoop-запросов

HOME-узел 2-ая стадия: Выдача Snoop-запросов

Слайд 16

HOME-узел

3-я стадия: сбор Snoop-ответов

HOME-узел 3-я стадия: сбор Snoop-ответов

Слайд 17

4-ая стадия: Сообщение о завершении операции

HOME-узел

Запросчик

4-ая стадия: Сообщение о завершении операции HOME-узел Запросчик

Слайд 18

Особенности существующего протокола когерентности

Snoop-based – т.е. используется опрос кеш -памяти всех процессоров

Особенности существующего протокола когерентности Snoop-based – т.е. используется опрос кеш -памяти всех
системы
Требует минимального дополнительного оборудования в процессоре
Логическая простота протокола позволяет в кратчайшие сроки произвести разработку и верификацию RTL-описания
Система внешних связей (линков) позволят создавать конфигурации от 2-х до 4-х процессоров с минимальным числом проходов (hop'ов) между процессорами

Слайд 19

Локальность ресурсов процесса

Ресурсы процесса включают:
процессор(ы)
память

Варианты локальности:
процессор обращается только к памяти

Локальность ресурсов процесса Ресурсы процесса включают: процессор(ы) память Варианты локальности: процессор обращается
“своего” чипа;
процессор обращается только к памяти “своего” чипа и памяти близлежащих
(по числу hop'ов доступа) чипов – это позволяет увеличить используемую
данным процессором пропускную способность памяти;
группа процессоров обращается только к памяти “своих” чипов
и памяти близлежащих (по числу hop'ов доступа) чипов.

Слайд 20

Что предлагается

Для
а) уменьшения времени доступа к данным памяти и
б) исключения

Что предлагается Для а) уменьшения времени доступа к данным памяти и б)
непроизводительных потерь пропускной способности
линков внешних связей процессора

1. Использовать справочник (Directory) для отслеживания состояния и местонахождения локальных данных кластера, взятых в удаленные кластеры
2. Использовать фильтр (Filter) для отслеживания состояния и местонахождения внутри кластера данных, взятых из удаленных кластеров

Ввести в кластер (модуль процессора) два устройства:
- справочник (Directory) и
- фильтр (Filter)

Слайд 21


Полный справочник – имеет информацию о каждой строке памяти
Усеченный справочник

Полный справочник – имеет информацию о каждой строке памяти Усеченный справочник -
- имеет информацию не о каждой строке памяти, а только о тех строках данных, копии которых взяты в кэш-памяти процессоров; организуется в виде кэш-памяти; возможные проблемы связаны
с размерами необходимой кэш-памяти для большой системы и
как следствие с возможностью принудительного вытеснения данных из кэш какого-либо процессора для освобождения памяти для размещения информации о строке данных размещаемой в другом процессоре

Варианты справочников

Слайд 22

Организация справочника (Directory)

Элемент справочника имеется для каждой строки локальной памяти, взятой в

Организация справочника (Directory) Элемент справочника имеется для каждой строки локальной памяти, взятой
удаленные кластеры
Справочник организован в виде множественно- ассоциативной кэш-памяти с числом колонок не менее их суммарного числа во всех процессорах удаленных кластеров (~12X4=48)

Слайд 23

Организация справочника (Directory) (продолжение)

Структура элемента справочника(MOESI протокол):
- состояние строки данных (2бита);
- указатель на

Организация справочника (Directory) (продолжение) Структура элемента справочника(MOESI протокол): - состояние строки данных
владельца модифицированной
копии данных (logN бит);
- бит-вектор указателей на совладельцев копий данных (N бит),
где N – число кластеров в системе
- адресный тег ( 40бит адреса, исключая 6 разрядов адреса внутри строки и число разрядов индекса при обращении в кэш-память)
Примечание: Кластер (процессорный модуль) должен быть одним абонентом справочника независимо от числа процессоров внутри него, состояние и местоположение строки внутри кластера уточняется по информации фильтра

Слайд 24

Организация фильтра (Filter)

Элемент фильтра имеется для каждой строки памяти, взятой из удаленных

Организация фильтра (Filter) Элемент фильтра имеется для каждой строки памяти, взятой из
кластеров
Состояние строки отражает наличие копий строки в других кластерах (признак локальности или глобальности копии)
Фильтр организован в виде множественно-ассоциативной кэш-памяти с числом колонок не менее их суммарного числа во всех процессорах кластера (~4X4=16)

Слайд 25

Организация фильтра (Filter) (продолжение)

Структура элемента фильтра
(модифицированный MOESI протокол):
- состояние строки данных (2/3

Организация фильтра (Filter) (продолжение) Структура элемента фильтра (модифицированный MOESI протокол): - состояние
бита);
- указатель на владельца модифицированной копии данных (logN бит);
- бит-вектор указателей на совладельцев копий данных (N бит),
где N – число процессоров в кластере
- адресный тег ( 40бит адреса, исключая 6 разрядов адреса внутри строки и число разрядов индекса при обращении в кэш-память)

Слайд 26

Аппаратные затраты на справочник и фильтр

СПРАВОЧНИК
Число строк в процессорах удаленных кластеров: [2М/64(байта

Аппаратные затраты на справочник и фильтр СПРАВОЧНИК Число строк в процессорах удаленных
в строке)] х 12 = 24/64 М(строк) = 0.375М(строк)
Размер элемента справочника: ~4байта
Размер справочника: 0.375М(строк) х 4(байта на строку) = 1.5 Мбайт

ФИЛЬТР
Число строк в процессорах локального кластера: [2М/64(байта в строке)] х 4 = 8/64 М(строк) = 0.125М(строк)
Размер элемента фильтра: ~4байта
Размер фильтра: 0.125М(строк) х 4(байта на строку) = 0.5 Мбайт

Слайд 27

Возможности встроенной памяти в ALTERA Stratix FPGA Family

StratixIII FPGA Family – 65nm process
M9K

Возможности встроенной памяти в ALTERA Stratix FPGA Family StratixIII FPGA Family –
Memory Blocks – 1040
M144 Memory Blocks – 48
Embedded Memory(Kbits) – 16,272 ~ 2MBytes
Package - F1760

StratixIV FPGA Family – 40nm process
M9K Memory Blocks – 1280
M144 Memory Blocks – 64
Embedded Memory(Kbits) – 20,736 ~ 2.5MBytes
Package - F1932

Слайд 28

Возможности IO в ALTERA StratixIV FPGA Family

User I/O - 904
Full-Duplex LVDS(Receive/Transmit) – 98
Medium

Возможности IO в ALTERA StratixIV FPGA Family User I/O - 904 Full-Duplex
performance LVDS Channels – 256
Transceivers - 48 (full-duplex CDR-based transceivers at up to 8.5 Gbps)
Package - F1932

Слайд 29

Особенность Эльбрус/МЦСТ-ХR NUMA архитектуры с учетом добавляемых аппаратных средств: справочника (directory) и

Особенность Эльбрус/МЦСТ-ХR NUMA архитектуры с учетом добавляемых аппаратных средств: справочника (directory) и
фильтра для строк данных, взятых из удаленных узлов

Протокол когерентности с использованием добавляемых аппаратных средств:
справочника (directory) и
фильтра для строк данных, взятых из удаленных узлов
позволяет использовать локальность
ресурсов процесса т.е. процессора и памяти, ограничивая обращения к памяти пределами одного кластера

Слайд 30

Read_64 операция в 16-ти процессорной системе

Передача Запроса Read_64 от Запросчика(REQ) в Home

Read_64 операция в 16-ти процессорной системе Передача Запроса Read_64 от Запросчика(REQ) в
– 3 пакета
Snoop_Req в Home-кластере – 4 пакета
Snoop_Resp в Home-кластере – 3 коротких пакета
Data_Resp в Home-кластере – 2 пакета данных
Data_Resp от Home-кластера – Запросчику – 2 пакета данных по 2-м линкам
Ответ от Запросчика(REQ) в Home - 3 коротких пакета

Слайд 31

16-процессорная система

16-процессорная система

Слайд 32

Read_64 операция в 16-ти процессорной системе(1 из 5)

Read_64 операция в 16-ти процессорной системе(1 из 5)

Слайд 33

Read_64 операция в 16-ти процессорной системе(2 из 5)

Read_64 операция в 16-ти процессорной системе(2 из 5)

Слайд 34

Read_64 операция в 16-ти процессорной системе(3 из 5)

Read_64 операция в 16-ти процессорной системе(3 из 5)

Слайд 35

Read_64 операция в 16-ти процессорной системе(4 из 5)

Read_64 операция в 16-ти процессорной системе(4 из 5)

Слайд 36

Read_64 операция в 16-ти процессорной системе(5 из 5)

Read_64 операция в 16-ти процессорной системе(5 из 5)

Слайд 37

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант

СПРАВОЧНИК
Число строк в процессорах удаленных

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант СПРАВОЧНИК Число строк в
кластеров: [2М/64(байта в строке)] х 60 = 120/64 М(строк) = 1.875М(строк)
Размер элемента справочника(с учетом увеличения бит-вектора совладельцев копии строки): ~6байт
Размер справочника: 1.875М(строк) х 6(байта на строку) =11.25 Мбайт
Разреженный в два раза справочник:1.875М/2(строк) х 8(байт на строку) = 7.5Мбайт(с учетом добавления еще одного бит-вектора совладельцев копии строки)
Разреженный в 4 раза справочник:1.875М/4(строк) х 12(байт на строку) = 5.625Мбайт(с учетом добавления 4-х бит-векторов совладельцев копии строки)

Слайд 38

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант

<

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант

Слайд 39

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант(прогноз для 32nm)

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант(прогноз для 32nm)

Слайд 40

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант

Вариант с поддержкой справочника на

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант Вариант с поддержкой справочника
внешней памяти, подключаемой к Чип-КК вопросы:
- по числу дополнительных контактов FPGA-чипа;
- по временным параметрам т.к. обращение к справочнику на внешней памяти увеличивает задержку в доступе к общей памяти;
По коммутации 16-ти кластеров в единую систему т.к. требуются коммутационные элементы

Слайд 41

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант

ВЫВОД: прогресс в области FPGA

Расширение аппаратной поддержки когерентности на 64-х процессорный вариант ВЫВОД: прогресс в области
не позволяет рассчитывать на возможность реализации полного справочника такого объема на одном чипе FPGA
Варианты разреженных справочников также не дают гарантированного решения, требуются дальнейшие проработки
Варианты справочников на внешних элементах памяти требуют увеличения числа используемых контактов и приводят к увеличению времени доступа к памяти, что также требует дальнейшей проработки

Слайд 46

Открытые вопросы

Работа с Е состоянием (м.б. изменения в процессоре!?)
Обеспечение надежности 16-ти процессорной системы

Открытые вопросы Работа с Е состоянием (м.б. изменения в процессоре!?) Обеспечение надежности
– Чип-КК является чипом определяющим отказ сразу всего кластера!?
Ввод-вывод, как основа реального времени, должен иметь возможности по сокращенному (некогерентному) доступу в память

Слайд 47

3-х процессорный модуль

3-х процессорный модуль

Слайд 48

16-процессорная система с избыточностью (18 процессоров)

16-процессорная система с избыточностью (18 процессоров)
Имя файла: Логическая-поддержка-когерентности-в-Эльбрус/МЦСТ-ХR-серверах-среднего-уровня.pptx
Количество просмотров: 122
Количество скачиваний: 0