Петров И. «Реализация справочника для аппаратной поддержки

advertisement
Магистерская диссертация
Реализация справочника для
аппаратной поддержки когерентности в
ВК Эльбрус-2S
Студент: Петров Игорь, ФРТК, 613 группа
Научный руководитель: к.т.н. Груздов Ф. А.
Эльбрус-S: протокол наблюдения
Контроллер
ввода/вывода
_l
IO
1Gb/s
in
4Gb/s
k
CPU #0
CPU #3
_l
IO
in
2Gb/s
CPU #1
Протокол когерентности: протокол
наблюдения (snooping)
CPU #2
k
Контроллер
ввода/вывода
Проблема: квадратичная зависимость числа снуп-запросов от кол-ва
процессоров в системе
Эльбрус-2S: протокол на основе справочника

Справочник содержит информацию о местонахождении и
состоянии строк данных оперативной памяти,
экспортированных в кэш-памяти процессоров
Выборочное
снупирование
в соответствии
со справочником
Сокращается кол-во
снуп-запросов
Данные не модифицированы
Данные модифицированы
относительно памяти
Постановка задачи
1.
Разработка конфигурации справочника - структура, формат
элемента, способ хранения
2.
Введение справочника с выбранной конфигурацией в
состав чипсета микропроцессора «Эльбрус-2S»
Требования:
 Обеспечение как можно меньшей дополнительной задержки выполнения отдельного
запроса, связанной с введением справочника в состав чипсета
 Достижение максимальной пропускной способности межпроцессорных каналов связи
 Возможность использования в системах, содержащих разное количество процессоров
(от 1 до 16)
 Эффективное использование аппаратных ресурсов и площади кристалла.
Тип справочника
Полный справочник
Усеченный справочник
DRAM - память
SRAM - память
Хранит информацию о
всей памяти системы
Быстрое время доступа к
данным справочника
Большие затраты
ресурсов памяти
Вытеснение строки
влияет на состояние
кэш-памяти процессоров
Эльбрус – 2S : полный справочник с кэш-памятью
Элемент справочника
Виды справочников:
1. Справочник с точным покрытием узлов системы (full-map directory)
- N индикаторов характеризуют N узлов системы
2. Справочник с неточным покрытием узлов системы (limited directory)
- M индикаторов характеризуют N узлов системы, M < N
3. Справочник с цепочным построением (chained directory)
- двунаправленный список указателей на совладельцев данных
Выбранное решение - комбинация 1-го и 2-го типов
4 бита (7 бит)
SHARED
3 бита
ЫР
MOD
• MOD – указатель на владельца модифицированных данных
• SHARED – бит-вектор совладельцев копий
Размещение в памяти
1. Хранить информацию справочника в свободных битах ECC-кода
плохо используется кэш-память
2. Выделить отдельную непрерывную область памяти под данные
справочника
2 отдельных запроса в память, затраты на переоткрытие
страницы
3. Размещать информацию справочника в одной странице с данными
данные справочника считываются из ОП вместе с данными по
запросу
В контроллер памяти добавлена поддержка комбинированных запросов
по чтению данных по запросу и данных справочника
Функция мэппирования
ADRAM[39:6] = APA[39:6] + D*
D – размер непрерывной области пространства ОП, содержащей строки
справочника
P – размер непрерывной области пространства ОП, содержащей строки
данных
Из соображений физдизайна:
1) 1/P - периодическая дробь (меньше операций сложения)
2) D = 1
P = 63
P = 31
Однокластерная система
Четырёхкластерная система
Кэш-память справочника
Характеристики кэш-памяти:
 множественно-ассоциативная, 16 колонок
 длина одной кэш-строки – 64 байта
 размер – 512 Кб
Обновление информации справочника
Проблема: гонки запросов WB и RI от разных ядер
гонки запросов INV от разных ядер/процессоров
Возможные варианты :
 обновлять после завершения запроса
трудоёмкость поддержания конвейерности, большие
накладные расходы по времени работы и оборудованию
 обновлять после прохождения запроса через конвейер SC
Решение: добавить
возможность отката состояния
элемента справочника
pA
…
c0
Арбитр
…
служебные
запросы
Контроль целостности данных кэш-памяти
Контроль целостности данных:
 ECC – контроль
требует добавления стадий в конвейер

CRC - кодирование
CRC - алгоритм
Процедура
исправления
ошибок
Данные
(64 бита)
Тэги данных
(21 бит)
CRC-8
CRC-4
63 запроса FLUSH
Серия запросов
FLUSH по индексу с
ошибкой
В системный коммутатор добавлен модуль, отвечающий за исправление
ошибок в кэш-памяти справочника. Запросы FLUSH помещаются в очередь
служебных запросов SC. При обработке ошибки SC способен выполнять
запросы процессоров.
Характеристики
o
Без справочника
Со справочником
Чтение своей
памяти
140 нс
80 нс
Чтение чужой
памяти
195 нс
190 нс
Количество снуп-запросов сокращено в 4 раза
o
Хранение справочника занимает 1,5%(3%) общей памяти
системы
o
Объём кэша – 512 КБ – покрывает L2-кэши процессоров
внутри одного кластера
Результаты
 Разработана конфигурация справочника,
удовлетворяющая поставленным требованиям:
уменьшение служебного трафика
малая задержка выполнения запроса
 В чипсет введена поддержка справочника с
выбранной конфигурацией
два режима работы
(однокластерная/многокластерная система)
частота – 1ГГц
 Произведена отладка работы со справочником
на системных тестах
Спасибо за внимание !
Download