Разработка модели чипа межкластерной коммутации Выполнил: Куцевол Виталий Научный руководитель: Алексей Мешков Московский физико-технический институт Выпускная квалификационная работа на соискание звания бакалавра
Постановка проблемы. Интерфейсы Эльбрус-3S Микропроцессор Эльбрус-3S содержит следующие интерфейсы : - интерфейс оперативной памяти - три канала межпроцессорного обмена - канал ввода-вывода для соединения Максимальная возможная конфигурация без использования дополнительных средств это кластер - 4 процессора.
Постановка проблемы. Проект Butterfly. Проект «Butterfly» предполагает объединение 16 процессорных модулей Эльбрус-3S в общую систему. Проблема недостающих интерфейсов решена введением чипа межкластерной коммутации (ChipKK). Задачи ChipKK : - поддержать когерентный доступ к оперативной памяти для системы из 16 процессоров на основании снуп-протокола MOESI - минимизировать задержки, связанные с дополнительной аппаратурой и большим количеством процессоров
Цель работы. Цель: -создание программной модели чипа межкластерной коммутации Требования: -совместимость с уже существующей моделью кластера без ChipKK -наличие интерфейсов для подключения модели как в составе программной модели всего проекта «Butterfly», так и для использования при изолированном тестировании -возможность синхронизации с моделью RTL -поддержка существующего функционала (механизмы контроля, сохранения и загрузки состояния, вывода результатов )
Базовые функциональные модули: Migration Cache модуль, ответственный за преобразование идентификаторов(меток) первичных запросов от других кластеров в метки непротиворечивые в пределах своего кластера Directory Cache справочник, хранящий информацию, о копиях данных в других кластерах LinkControllers модули, ответственные за учет и сбор когерентных ответов и формирование обобщенных ответов Range хранит диапазоны оперативной памяти для каждого процессора Route saver модуль, трассирующий не содержащие адреса запросы из кластера-запросчика Receiver совокупность функций, принимающих пакеты LinkQueues очереди готовых к отправке пакетов Структура модели
Структура модели. Функционирование системы.
Структура модели Описание базовых модулей Migration Cache Шаг 1. Выбор свободной метки по чтению(rlabel) из FIFO, хранящего метки для пересадки(размер 32 ячейки * 5 бит) Шаг 2. Сохранение исходной метки из пакета первичного запроса в памяти чужих меток (Memory Initial Labels)по адресу, равному метке по чтению rlabel. Шаг 3. Сохранение метки по чтению rlabel и направления на кластер-запросчик и Home-процессор в памяти своих меток по адресу, равному исходной метке из пакета первичного запроса. Шаг 4 Преобразование пакета для отправки его в Home-процессор. После пересадки новая метка в пакете будет содержать rlabel, номер линка, указывающий на кластер-запросчик, и младший бит номера линка, указывающего на кластер-запросчик. Шаг 5 При отправлении первичного запроса в Home-процессор, копия новой метки передается в CkkLinkController для учета ожидаемых ответов и формирования обобщенного ответа, а также для направления пакета с данными из оперативной памяти и вторичного пакета в кластер- запросчик. Шаг 6. Выделенная метка освобождается при трассировке в Home-процессор пакета, сообщающего о завершении операции чтения. В пределах кластера, сгенерировавшего запрос метка пакета для запроса по чтению формируется из : -номер процессора(2 бита) -признак устройства, обрабатывающего запрос (1 бит) -номер регистра в этом устройстве(5 бит) Метки первичных запросов по чтению, пришедшие из других кластеров могут пересекаться. Migration Cache - модуль, приводящий метки к непротиворечивым, буферизующий исходный метки и восстанавливающий пакеты для отправки обратно.
Структура модели Описание базовых модулей. Directory Cache - имеет структуру 16-ассоциативного кэша размером 4096 строк - предусмотрен буфер для хранения и использования вытесняемых ячеек(64 слота) - заполнение происходит согласно адресу обрабатываемой ячейки оперативной памяти - считывание и запись производятся перед отправкой снуп запросов из домашнего кластера.
Структура модели Описание базовых модулей LinkController LinkController представляет из себя массив из 256 элементов (все возможные идентификаторы), которые содержат количество ожидаемых ответов и итоговый на данный момент ответ (возможно с данными) Range Range кластера состоит из объединения NodeRange каждого процессора, задаваемых параметрами запуска модели. Проверка принадлежности адреса данному кластеру состоит из 4-х проверок принадлежности процессорам Receiver Любой принятый пакет отправляется в receiver, который в зависимости от типа пакета и от определенных полей( например, признак out), распределяет пакеты между устройствами Route Saver Первичные пакеты, направляемые в другой кластер содержат адрес для маршрутизации. Но другие пакеты, вызванные первичным, содержат только уникальную метку, сопровождающую операцию в пределах кластера.Route saver сохраняет направления для восстановления их по метке пакета. Queues Queues в модели организованы по принципу FIFO. Но предусмотрены методы, позволяющие синхронизацию порядка выхода пакетов.
Использование модели В составе программной модели проекта «Butterfly» - окружением являются программные модели процессорных узлов - входные данные последовательность первичных запросов от процессоров, созданная генератором тестов - выходные данные трасса действий в системе, графический вывод последовательности запросов и изменения состояний Цели: -использование в качестве эталонной модели -проверка протокола -тестирование модели ChipKK в программном окружении -проверка корректности работы системы
Использование модели Изолированная модель ChipKK Дополнительные требования: - модель должна иметь интерфейсы, аналогичные RTL модели - необходимы механизмы синхронизации с RTL моделью - возможность своевременной модификации модели Схема использования модели
Характеристики модели - суммарный размер модулей 3500 строк - пиковая производительность100 кГц (на машине Intel(R) Core(TM)2 CPU 2.40GHz) - возможность как включения в состав модели проекта «Butterfly»,так и изолированного тестирования - поддержаны введенные в состав модели «Butterfly» инструменты ( трасса симулятора, графический интерфейс, механизмы проверки корректности работы, сохранение и загрузка состояния) - наличие дополнительных интерфейсов для синхронизации с RTL моделью ChipKK - четкая структура модели, позволяющая дальнейшую модернизацию
Заключение Разработана и эксплуатируется модель, удовлетворяющая поставленным требованиям. Поскольку разработка ChipKK не завершена,на данный момент модель поддерживается и активно модернизируется согласно требованиям потребителей
Спасибо за внимание