Московский физико-технический институт (государственный университет) Факультет радиотехники и кибернетики Кафедра информатики и вычислительной техники Магистерская диссертация Разработка контроллера системного обмена для микропроцессора «Эльбрус-4С+» Выполнил: Вараксин В.Н. ФРТК, 713 гр. Научный руководитель: к.т.н. Груздов Ф.А.
Микропроцессор «Эльбрус-4С+» 8 процессорных ядер общего назначения архитектуры «Эльбрус» общий кэш третьего уровня встроенный четырёхканальный контроллер памяти DDR3 3 контроллера межпроцессорных линков контроллер ввода/вывода Технологический процесс: 28 нм Тактовая частота: 1.3 ГГц.
Контроллер системного обмена Назначение контроллера системного обмена: обеспечение когерентного доступа абонентов к памяти, пространству ввода/вывода и программно-доступным регистрам. поддержка организации 4-х процессорной NUMA системы при помощи межпроцессорных линков.
Постановка задачи Цель работы – разработка контроллера системного обмена для микропроцессора «Эльбрус-4С+» на основе контроллера системного обмена микропроцессора «Эльбрус-2S» Основные требования: 1.Нахождение оптимальной топологии контроллера системного обмена с учётом увеличения количества ядер с 4 до 8, а также появления кэша третьего уровня 2.Максимально возможное использование готовых блоков из уже имеющихся проектов
Контроллер Системного обмена микропроцессора «Эльбрус-2S» Условные обозначения: 1. Первичные запросы.4. Данные по записи. 2. Запросы за данными.5. Считанные данные. 3. Когерентные запросы.6. Короткие сообщения.
Основные проблемы в контроллере системного обмена «Эльбрус-2S» - Темп обработки запросов – 1 запрос/такт. При возрастающем вдвое числе ядер этого может оказаться недостаточно для обеспечения минимального времени доступа абонентов к памяти. - Механизм обработки адресных коллизий. В предыдущих проектах при обнаружении адресной коллизии предполагается блокировка всего направления, что может приводить к длительным задержкам при активной работе абонентов по одинаковым адресам.
Возможность использования нескольких системных коммутаторов Проблема темпа обработки запросов Между банками кэша L3$ - интерливинг по разрядам [8:6]. Идея: реализовать несколько системных коммутаторов, использующих интерливинг кэша L3$. Каждый банк L3$ при этом обслуживается только одним системным коммутатором.
Адресный интерливинг контроллеров памяти Проблема: адресный интерливинг контроллеров памяти настраивается конфигурационными регистрами, поэтому запросы от каждого системного коммутатора могут попадать в любой контроллер памяти. Решение: реализовать жесткую адресную привязку контроллера памяти к системному коммутатору. Преимущество: можно расположить контроллер памяти близко к соответствующему банку L3$. Проблема темпа обработки запросов
Разделение Контроллера Системного обмена на три части В микропроцессоре «Эльбрус-4С+» - 2 системных коммутатора Каждый системный коммутатор обслуживает: 4 банка L3$ 2 контроллера памяти SIC_local – блок, содержащий SC, 2 x MC, Справочник. SIC_global – IPCC, IO-Box Проблема темпа обработки запросов
Разделение Контроллера Системного обмена на три части Проблема темпа обработки запросов Новое устройство: SIC global packet commutator: коммутатор пакетов между глобальной и локальными частями
Разделение Контроллера Системного обмена на три части Преимущества: Раздельный физ. дизайн SIC_local / SIC_global. Модули SIC_local адресно-независимы. Модули SIC_local идентичны. Обращение L3$ в свою память осуществляется в пределах SIC_local. Проблема темпа обработки запросов
Обработка адресных коллизий Проблема: в предыдущих проектах при обнаружении адресной коллизии производится блокировка всего направления, что может приводить к длительным задержкам при работе абонентов по одинаковым адресам. Решение: блокировать не всё направление, а только запрос, адрес которого совпадает с адресом запроса на исполнении. Этот запрос удаляется из направления и помещается в специальный буфер (Delayed Buffer). Проблема обработки адресных коллизий
Буфер отложенных запросов 1. Пусть в Release Buffer имеется запрос r0, обрабатываемый ячейкой n 64 ячейки 16 ячеек Проблема обработки адресных коллизий
Буфер отложенных запросов 2. Запрос r1 помещается в Delayed Buffer Проблема обработки адресных коллизий
Буфер отложенных запросов 3. Запросы r2 и r3, имеющие такой же адрес, также помещаются в Delayed Buffer Проблема обработки адресных коллизий
Буфер отложенных запросов 4. После того, как запрос r0 завершается, запрос r1 отправляется в Release Buffer на исполнение Проблема обработки адресных коллизий
Результаты работы Разработано verilog-описание контроллера системного обмена, соответствующее поставленным задачам: -темп обработки запросов увеличен с 1 до 2 запросов за такт. -разработан механизм обработки адресных коллизий без блокировки направления. Произведена автономная верификация Системного Коммутатора. Произведён предварительный синтез устройства.
Спасибо за внимание!