Разработка кэша справочника для вычислительного комплекса на базе микропроцессора Эльбрус – 2S Студент : Петров Игорь, ФРТК, 613 группа Научный руководитель: Шерстнёв А. Е.
ВК на базе «Эльбрус – S» : поддержка когерентности с использованием техники полного снупирования – рассылка запросов когерентности всем процессорам системы NUMA- система на базе процессоров серии «Эльбрус» ВК на базе «Эльбрус – 2S» : поддержка когерентности с использованием справочника (directory) Сокращение времени доступа в локальную память Увеличение эффективной пропускной способности каналов межпроцессорного обмена Когерентность кэшей
Справочник в ВК на базе Эльбрус- 2 S Справочник в ВК на базе Эльбрус- 2 S Справочник хранит информацию о местонахождении строк данных оперативной памяти, экспортированных в кэш-памяти процессоров Кэш справочника Быстрый доступ к информации справочника Система на кристалле «Эльбрус – 2S» Меньшая нагрузка на каналы памяти
Постановка задачи Разработка формата элемента справочника Разработка кэша справочника
STATE – состояние запрашиваемого кэш-блока MOD – указатель на владельца модифицированных данных COPY – бит-вектор совладельцев копий Формат элемента справочника: выбор структуры Известные реализации : комбинации из полей STATE, MOD, COPY Выбранное решение : ЫР COPYMOD 4- 7 бит3 бита – Полная информация о кэш-блоке {COPY, MOD} STATE AMD Opteron Magny-Cours : STATE + MOD
Invalid (I) - MOD=0, COPY=0 Shared (S) - MOD=0, COPY0 Modified (M)- MOD0, COPY=0 Owned (O) - MOD0, COPY0 Состояния : Формат элемента справочника: алгоритм изменения состояний
Кэш справочника: требования Интеграция в существующую структуру системы Возможность применения в системах, содержащих от 4 до 16 процессоров Минимизация числа блокировок запросов Эффективное использование аппаратных ресурсов и площади кристалла
Кэш справочника: интеграция в систему Возможные решения : Кэш справочника – часть общего кэша данных (AMD Opteron) Кэш справочника – отдельный модуль в чипсете (Intel Itanium) Выбран второй вариант по следующим причинам : o В процессоре «Эльбрус-2S» нет общего кэша данных o Меньше затрат на введение в механизм рассылки запросов когерентности, использовавшийся в ВК на базе «Эльбрус-S»
Кэш справочника: место в чипсете Системный коммутатор (SC) Системный коммутатор (SC) Снуп-запросы всем процессорам системы Memory Controllers Необходимый минимум снуп-запросов Эльбрус - SЭльбрус - 2S
Кэш справочника: характеристики Способ адресации (стратегия отображения) Множественно – ассоциативная кэш-память Степень ассоциации - 16 Длина одной кэш-строки - 64 байта Стратегия замещения Комбинация PseudoLRU и RANDOM Общая ёмкость Кбайт
Кэш справочника: модульная схема Cache Unit – память данных, память тэгов Command Handler – модификатор данных справочника Read Buffer – буфер для подкачиваемых данных справочника Write Buffer – буфер для откачиваемых данных справочника Output Former – коммутатор данных
Кэш справочника: модуль Cache Unit Data Memory – память данных справочника. Cоставлена из однопортовых модулей SRAM. Tag Memory – память тэгов. Составлена из двухпортовых модулей SRAM.
Кэш справочника: модуль Command Handler Функции : Модификация данных справочника в соответствии с диаграммой переходов Уменьшение нагрузки на канал памяти данных
Кэш справочника: блокировки запросов Запись модифицированных данных по прошлому запросу SC в колонку X Блокировка текущего запроса SC Принятые меры по уменьшению числа блокировок запросов: Организация трёхтактного конвейера в Command Handler Разделение одной колонки памяти данных (64 байта) на 4 банка по 16 байт Чтение данных по текущему запросу SC из колонки X
Кэш справочника: Функции Read Buffer Промежуточная буферизация данных справочника, перед записью в память кэша уменьшение числа конфликтов с запросами Хранение параметров запроса, по которому произошёл промах модификация подкачанных данных Снупирование сохранённых параметров запросов предотвращение повторных обращений в память за данными справочника
Результаты Разработано Verilog– описание кэша справочника, удовлетворяющего поставленным требованиям: Интеграция в существующую структуру системы Возможность применения в системах, содержащих от 4 до 16 процессоров Минимизация числа блокировок запросов Эффективное использование аппаратных ресурсов и площади кристалла Начато тестирование на автономной модели чипсета