Разработка модели чипа межкластерной коммутации

advertisement
Московский физико-технический институт
Выпускная квалификационная работа
на соискание звания бакалавра
Разработка модели чипа
межкластерной коммутации
Выполнил:
Куцевол Виталий
Научный руководитель:
Алексей Мешков
Постановка проблемы.
Интерфейсы Эльбрус-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
4
1.
2.
В пределах
Шаг
3.
кластера, сгенерировавшего запрос метка пакета для
Преобразование
пакета
для отправки
его
в Home-процессор.
После
Сохранение
Выбор
исходной
метки
по
из
пакета
чтению(rlabel)
первичного
из FIFO,
запроса
хранящего
в памяти
метки
запроса
по свободной
чтению
метки
по
формируется
чтению
rlabel
из и: направления
на кластер-запросчик
пересадки
новая
метка
в пакете
будет
содержать
rlabel,
номер
для
чужих
пересадки(размер
меток
(Memory
Initial
32
ячейки
Labels)по
* 5меток
бит)
адресу,
равному
метке
по линка,
чтению
и Home-процессор
-номер
процессора(2
в памяти
бита)
своих
по адресу,
равному
указывающий
наизкластер-запросчик,
младший
бит
номера линка,
rlabel.
исходной
-признак
устройства,
метке
пакета
обрабатывающего
первичногоизапроса.
запрос (1
бит)
указывающего
навкластер-запросчик.
-номер регистра
этом устройстве(5 бит)
Шаг 5
Метки
первичных первичного
запросов позапроса
чтению,впришедшие
из других
кластеров
При отправлении
Home-процессор,
копия
новой
могут
метки пересекаться.
передается в CkkLinkController для учета ожидаемых ответов и
формирования обобщенного ответа, а также для направления пакета с
Migration
Cache
- модуль,
приводящий
метки кпакета
непротиворечивым,
данными из
оперативной
памяти
и вторичного
в кластербуферизующий
исходный метки и восстанавливающий пакеты для
запросчик.
отправки обратно.
Шаг 6.
Выделенная метка освобождается при трассировке в Home-процессор
пакета, сообщающего о завершении операции чтения.
Структура модели
Описание базовых модулей.
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 6600 @ 2.40GHz)
- возможность как включения в состав модели проекта
«Butterfly»,так и изолированного тестирования
- поддержаны введенные в состав модели «Butterfly»
инструменты ( трасса симулятора, графический интерфейс,
механизмы проверки корректности работы, сохранение и
загрузка состояния)
- наличие дополнительных интерфейсов для синхронизации с
RTL моделью ChipKK
- четкая структура модели, позволяющая дальнейшую
модернизацию
Заключение
Разработана и эксплуатируется модель,
удовлетворяющая поставленным требованиям.
Поскольку разработка ChipKK не завершена,на данный
момент модель поддерживается и активно
модернизируется согласно требованиям потребителей
Спасибо за внимание
Download