Выполнил: Петрыкин Д.А., ФРТК, 613 гр. Научный руководитель: Слесарев М.В. Выпускная квалификационная работа
Схема кластера «Эльбрус-2S» 4 процессорных узла высокоскоростные межпроцессорные каналы LINK оперативная память вместе со справочником (directory) распределена между узлами
Схема процессорного узла «Эльбрус-2S» 4 ядра кэш L2, L1 системный коммутатор (SC) 3 контроллера памяти 3 контроллера LINK контроллер ввода-вывода
Поддержка когерентности данных на уровне кластера – механизм справочника на уровне процессорного узла – механизм snooping достоинства : -минимальная нагрузка на межпроцессорный трафик -относительно небольшой размер справочника недостатки: -уменьшение эффективного размера памяти -уменьшение эффективной пропускной способности канала в память -нагрузка на трафик внутри процессора
Протокол MOSI 4 состояния кэш-строки Modified – строка модифицирована и в единственном экземпляре Owned – строка модифицирована и может быть у других ядер Shared – строка не модифицирована и может быть у других ядер Invalid – строка удалена справочник знает состояния строк во всей системе
Реализация протокола MOSI состояние кэш-строки может измениться, если: 1. получен когерентный запрос Coherent Invalidate (CI) Coherent Read (CR) Coherent Read & Invalidate (CRI) 2. получен ответ на запрос Invalidate (I) Read (R) Read & Invalidate (RI) 3. Произошло вытеснение строки в память Write Back (WB)
Схема протокола MOSI MSIO Состояния: Запросы: Ответы: События: CI CR CRI I R RI store_hit store_miss load_miss WB
Обращение в память 1 стадия: – MAU ядра отправляет Initial Request в память – просмотр состояний строки в справочнике – «захват» строки CORE SIC MEMORY CORE SIC CORE MEMORY CORE SIC MEMORY CORE MEMORY CORE SIC CORE 2 стадия: – HOME отправляет Coherent Request только «нужным» процессорам – каждый процессор рассылает Coherent Request своим ядрам 3 стадия: – каждое ядро отправляет ответ Coherent Response (Short, Data) инициатору – ядро-инициатор собирает и анализирует ответы 4 стадия: – ядро-инициатор отправляет обработчику завершающее сообщение Final Response – строка «освобождается»
Постановка задачи Разработать устройство коммутации когерентных запросов и ответов со следующими функциями: приём когерентных запросов от 4 направлений мультиплексирование 4 входных каналов в 1 выходной одновременная рассылка запроса в L2 кэши всех ядер узла сбор и анализ ответов от всех ядер узла формирование короткого ответа отправка короткого ответа адресату
Характеристики устройства Темп приема запросов и ответов на каждом входном канале: 1 запрос за такт Темп передачи запросов и ответов на каждом выходном канале: 1 запрос за такт Оптимальный темп приема snoop-запросов: 1 запрос за 4 такта (без учета блокировок) Частота: 1 ГГц (на технологии 65 нм) Замечание: не отправлять snoop-запросы подряд в один банк
Варианты реализации 1. Использовать наработки из проекта «Эльбрус-S» коммутацию когерентных запросов выполнять в L2 кэше в буфере когерентных запросов – Coherent Request Buffer(CRB) все ответы собирать в MAU (Memory Access Unit) ядра-инициатора достоинства: -относительная простота -экономия времени недостатки: -увеличение оборудования на коммутацию запросов -существенное увеличение нагрузки на межпроцессорный трафик (т.к. в каждом процессоре 4 ядра) -либо существенное увеличение размера справочника
Варианты реализации 2. Разработать устройство «с нуля» единый модуль (экономия межпроцессорного трафика, трафика внутри процессора, размера MAU и L2 кэша) фиксированное время обработки когерентного запроса с точностью до такта (позволяет избежать буфера ожидания ответов): – одновременный прием запросов в кэшах всех ядер – одинаковое время обработки (установить максимальный приоритет) – одновременный прием ответов из ядер
Общая структура устройства Два модуля, связанные простым интерфейсом: Request Receiver – для коммутации запросов Response Collector – для приема ответов
Request_Receiver: структура прием запросов от 4 устройств буферизация только для SC (т.к. в контроллерах LINK уже есть буфер) bypass, если FIFO пустое арбитр управляет мультиплексированием рассылка запросов ядрам (через фильтр)
Response_Collector: структура прием ответов от MAU ядер и меток от Request Receiver обработка ответов и формирование короткого когерентного ответа 4 выходных канала (позволяют быстро разгрузить регистры после блокировки) отсутствие блокировки для канала SC, MAU
Результаты разработки коммутатора когерентных запросов и ответов Проведен анализ ранних решений Разработан RTL устройства Разработано тестовое окружение Проведена отладка отдельных модулей Проведен предварительный анализ временных характеристик для отдельных модулей В настоящее время устройство проходит тестирование и отладку
Спасибо за внимание!