Разработка коммутатора сообщений блока регистров и прерываний в кластере «Эльбрус-S» Выполнил: Петроченков М. В. 613 гр. Научный руководитель: Зайцев А.И. Выпускная квалификационная работа
Кластер «Эльбрус-S» Кластер состоит из четырех процессоров, соединенных по схеме «каждый с каждым». Кластер соединен с другими кластерами посредством межкластерных коммутаторов. Конфигурационные регистры задают: 1. Состояние узлов (процессоров и межкластерных коммутаторов). 2. Конфигурацию линков узлов. 3. Границы областей памяти, принадлежащей процессорам и кластерам. Каждый узел хранит копии регистров, задающих его конфигурацию, и их адреса в общем блоке регистров.
Прерывания Если источник и приемник прерывания находится в разных кластерах, то прерывание перед отправкой в другой кластер и при приеме из него, должно быть обработано в системном контроллере прерываний – SAPIC (System Advanced Programmable Interrupt Controller).
Постановка задачи 1. Разработать коммутатор для обеспечения доступа каждого узла кластера к конфигурационным регистрам всех узлов. 2. Разработать коммутатор, обеспечивающий пересылку прерываний между узлами. 3. Обеспечить работу коммутаторов на частоте 250 МГц.
Принципиальное решение Поскольку операции доступа к регистрам и прерываний достаточно редки, предлагается реализовать единый коммутатор данных на базе узкой однонаправленной кольцевой шины шириной 9 бит: 8 бит данных и 1 бит служебной информации. Схема кольцевой шины В элемент кольца могут быть записаны либо данные предыдущего элемента, либо данные, которые абонент, соответствующий данному элементу кольца, желает передать. Разрешение на запись в кольцо дается общим арбитром шины. Абонентами являются процессоры, межкластерные коммутаторы и объединенный блок конфигурационных регистров/SAPIC.
Передача сообщений отправителем Данные от отправителей передаются в формате пакетов e3s. Чтобы сократить время выполнения операций, следует выполнить сжатие исходных пакетов e3s в формат сообщения, фиксированный для различных операций. Головной байт содержит данные для коммутации адрес приемника в кольце и код выполняемой операции. Он сопровождается установленным в 1 битом служебной информации. Передача сообщений реализуется путем записи последовательности байтов в свой элемент кольца.
Передача сообщений по шине Время прохода сообщения по кольцу складывается из времени прохождения головного байта по кольцу и времени приема сообщения, которое равно количеству байтов в нем. Движение сообщения по кольцевой шине : Принципиальная схема арбитража
Сеанс связи (общий алгоритм) В общем случае, выполнение требуемой операции не ограничивается отправкой единственного сообщения. Сеанс связи состоит из серии сообщений: 1. Запрос к арбитру (1 бит по линии связи с арбитром). 2. Передача сообщений по шине 3. Завершение сеанса связи (1 бит по линии связи с арбитром). В зависимости от необходимости ответа, сеанс завершается передатчиком или приемником. Кольцо при этом освобождается для следующего передатчика. Чтение регистров, запись регистров и отправка прерываний реализуются в рамках трех соответствующих типов сеансов.
Чтение Формат сообщения запроса чтения – 3 байта: 1 байт заголовка и 2 байта адреса Запрос чтения доставляется в блок регистров/SAPIC, который отправляет ответные данные – 5 байт. По получении ответа отправитель завершает сеанс.
Запись Формат сообщения – 7 байт: 1 байт – заголовок, 2 байта – адрес и 4 байта – данные. Запрос доставляется в блок конфигурационных регистров и во все локальные копии в узлах. При наличии в узле копии регистра с принятым адресом, в неё записываются данные. После приема отправленного сообщения, отправитель завершает сеанс
Прерывания Формат сообщения о прерывании – 7 байтов: 1 байт заголовка, 2 байта адреса и 4 байта данных. При успешной передаче, приемник завершает сеанс, при неуспехе - отправляет сообщение с требованием повторной пересылки – однобайтовая посылка. Получив сообщение о повторной передаче, отправитель завершает сеанс.
Элементы распределенного коммутатора Абоненты: процессор и межкластерный коммутатор
Элементы распределенного коммутатора Абонент блок регистров/SAPIC
Алгоритм арбитража при нескольких запросах
Результаты 1.Разработано Verilog-описание единого коммутатора для: Запросов чтения из конфигурационных регистров Операций записи в конфигурационные регистры Пересылки прерываний между узлами 2.Обеспечена работа коммутатора на частоте 250 МГц. 3.Ведется тестирование коммутатора