Выпускная квалификационная работа Исаев Михаил, ФРТК, 515 гр. Научный руководитель Сахин Ю. Х. Объединение двух процессорных ядер с архитектурой "Эльбрус" для создания двухъядерной системы-на-кристалле Эльбрус-S2.
Цели и особенности работы Разработка межпроцессорного коммутатора для объединения двух ядер с архитектурой Эльбрус в составе микропроцессора Эльбрус-S2 с максимальным использованием наработок из проекта Эльбрус-S
Предшествующие проекты Устройства доступа к памяти – Memory Access Unit (MAU) Контроллер системного обмена – System Interface Controller (SIC) Принципиальная схема процессора Эльбрус-S Принципиальная схема системы на базе процессораЭльбрус-S
Требования к построению двухъ- ядерного процессора Эльбрус-S2 Неизменность архитектуры вычислительного комплекса Неизменность процессорного ядраЭльбрус-S Неизменность набора системной логики SIC Минимальные изменения устройства доступа процессорного ядра к памяти MAU
Принципиальная схема процессора Эльбрус-S2 Контроллер межъядерных взаимодействий Core Integration Controller (CIC): 1)Объединение ядер 2)Интерфейс с SIC
Анализ интерфейса MAU-SIC Запросы в систему по чтению/записи Короткие сообщения трёх типов: семафорные операции, короткие когерентные ответы, короткие сообщения «завершение операции чтения» Snoop-запросы Короткие когерентные ответы и ответы с данными Данные из MAU в память Запросы за данными из MAU в память (с признаком когерентных данных) Данные в MAU из памяти и I/O
Функции межъядерного коммутатора Маршрутизация и поддержка необходимого темпа выдачи запросов в систему Обработка когерентных запросов с учётом двухъядерности процессора Маршрутизация данных между ядрами
Общая схема коммутатора Контроллер запросов MAU MAU Request Controller (MRC) Контроллер когерентных сообщений Coh_Box Межинтерфейсный коммутатор Request Sender (RS)
Проблемы управления запросами MAU Чередование запросов в систему от разных ядер Несовпадение суммарного количества запросов по чтению/записи от обоих процессоров (64/32) с возможным количеством запросов в системе (32/16) Невозможность проверки семафоров для разных ядер одного процессора
Общая схема контроллера запросов MAU Арбитр Arbiter (ARB) Регистры чтения load registers (LDR) Регистры записи store registers (STR) Семафорные регистры semaphore registers (SEM) поддержка семафоров архитектурыЭльбрус (аппаратного и двух программных)
Функции контроллера запросов MAU Выборка одного запроса по чтению/записи или одной семафорной операции от двух ядер за такт (с круговым приоритетом) выборка одного сообщения «завершение операции чтения» от двух ядер за такт(с круговым приоритетом) Проверка адреса выбранного запроса на совпадение с 3 семафорами Переименование номера регистра выбранного запроса в буфере LDR (32 регистра) или STR (16 регистров) – обеспечивает минимальные изменения MAU Поддержание необходимого количества запросов в системе
MEMORY SIC CORE Принципы реализации когерентности в системе Рассылка snoop- запросов всем процессорам Доставка сообщений только до нужных ядер Сбор сообщений и формирование обобщённых ответов CORE 1 CORE 0 CORE 1 CORE 0 CORE 1 CORE 1 CORE 0 CORE 0 SIC CIC SIC CIC SIC CIC SIC CIC SIC
Общая схема контроллера когерентных сообщений 4 fifo-буфера Арбитр Arbiter (ARB) Буфер когерентных запросов Coherent Request Bufer (CRB) 64 reg. (по принципу reservation station)
Функции контроллера когерентных сообщений Приём до двух когерентных запросов за такт с разных направлений Сбор до двух когерентных ответов за такт, по одному от каждого из ядра Формирование одного обобщённого когерентного ответа за такт
Общая схема межинтерфейсного коммутатора
Функции межинтерфейсного коммутатора Переформатирование запросов к формату интерфейса MAU-SIC процессора «Эльбрус-S» Маршрутизация запросов в home- чипсет и линки Арбитраж коротких сообщений в зависимости от их назначения
Результаты Разработано Verilog-описание межъядерного коммутатора, удовлетворяющее поставленным требованиям: 1) неизменности архитектуры системы, процессорных ядер, SIC 2) малым изменениям MAU Проведено автономное тестирование