Дипломная работа
Исследование и разработка системного коммутатора и
оптимизирующего контроллера оперативной памяти для системы-на-
кристалле «Эльбрус-3s»
Шерстнёв Андрей, ФРТК Гр.112
Научный руководитель: Чудаков М. Л.
Базовая конфигурация 4-х процессорной системы
CPU #1
CPU #2CPU #3
Контроллерввода/вывода
Контроллерввода/вывода
CPU #0
4Gb/s
2Gb/s
1Gb/s
Доступ к полному объёму оперативной памяти с поддержкой когерентности для всех процессоров
Построение 1-4 процессорных систем с поддержкой когерентности, с возможностью расширения до 8 процессоров
Функционирование на частоте 500 МГц Поддержка различных соотношений частот
процессора и памяти
1. Разработка устройства для взаимосвязи процессорных модулей ВК «Эльбрус-3s»
2. Адаптация оптимизирующего контроллера памяти под разрабатываемую систему
Постановка задачи:
Требования:
MC #0
MC #1
ipcc #A
17
ipcc #B
17
ipcc #C
17
8
IO_link
CPU
MAU
?
Внутреннее устройство процессорного модуля
CPU - процессорMC - контроллер памятиipcc - контроллер каналамежпроцессорного обменаIO_link - канал связи с «южныммостом»
SC
SC – системный коммутатор
Проблемы Решения
1. Обращение в «свою» / «чужую» память(приём и обработка запросов от 5 абонентов)
2. Невозможность одновременной проверки кэш-памяти всех процессоров
3. Обработка запроса занимает несколько тактов
4. Различная синхронизация интерфейса памяти и процессора
Выполнение чтения из оперативной памяти
CPU #A CPU #B
CPU #D CPU #C2
3
2
3
Memory
Memory
Memory
Memory
3
Memory
1 45
2
CPU #A CPU #B
CPU #D CPU #C
1
1
Memory
Memory
Memory
Memory
2
2
21
Чтение из «чужой» памяти Чтение из «своей» памяти
Запрос доступа в память
Запрос проверки когерентности
Когерентный ответ
Данные из памяти
Сообщение о завершении операции
Упрощённая версия буфера запросов
#1 #2 #3 #4 #5
Канал #A Канал #B Канал #C
Запрос в контроллер памяти
Процессор Контроллер ввода/вывода
Коммутатор пакетов и буфер запросов
Канал #A Канал #B Канал #C
Область длязапросов отпроцессора
Область длязапросчиков из
канала #C
Область длязапросчиков из
канала #A
Коммутатор
Область для DMA-запросов
Область длязапросчиков из
канала #B
Коммутаторпакетов
Приёмныйбуфер
запросовВ конвейер
Процессор «Южныймост»
Конфигурацияраспределения
запросов играниц областей
Банк №1 Банк №2
Проблемы Решения
1. Обращение в «свою» / «чужую» память(приём и обработка запросов от 5 абонентов)
2. Невозможность одновременной проверки кэш-памяти всех процессоров
3. Обработка запроса занимает несколько тактов
4. Различная синхронизация интерфейса памяти и процессора
Конвейеризация
Буфер ожидания
Коммутатор пакетов + буфер запросов
Конвейер
Уровень 1
Уровень 2
Уровень 3
В буфер ожидания
Блокировка
32
1
Исполнение1. Повтор2. Блокирование абонента3. Сквозная передача
Проблемы Решения
1. Обращение в «свою» / «чужую» память(приём и обработка запросов от 5 абонентов)
2. Невозможность одновременной проверки кэш-памяти всех процессоров
3. Обработка запроса занимает несколько тактов
4. Различная синхронизация интерфейса памяти и процессора
Конвейеризация
Модуль интерфейса с контроллером памяти с оптимизацией для кратных частот
Буфер ожидания
Коммутатор пакетов + буфер запросов
Структура Системного коммутатора
Коммутаторпакетов
Буферожидания
Конвейер
Входной буферзапросов
Сообщение отпроцессора
«Запросвыполнен»
Модуль интерфейсас контроллерами
памяти
req
ann
Скв
озн
ая
пере
дача
MC #0
MC #1
Буфер данныхконтроллеров
памяти
DD
R2
DD
R2
Запрос отпроцессора
Запросы от соседнихпроцессоров
Данны
е д
ля
запи
си в
пам
ять
Запрос впространствоввода/вывода
Блок пересинхронизацииданных
Счи
танны
е д
анны
е(2
50
Мгц
)
DMA-запрос изпространстваввода/вывода
Запрос проверкикогерентности
Считанныеданные(500Мгц)
Stage 0
Stage 2
Бл
оки
ровк
а
Подсистема памяти
Максимальная загрузка канала Минимальное время доступа в память(чтение)
Конвейеризация
Изменение порядка
Режимпараллельной
работы
Декодер строки илогического банка
Массив памяти
Выходной буферстроки(страницы)
Декодер столбца
Адрес строки Адрес столбцаАдрес банка
Запрос от системы
tRAS
tCAS
Выходныедрайверы
DDR
Вы
дач
а д
анны
х в
сист
ему
1 row = 1024 byte
Банк №0Банк №1
Банк №2Банк №3
Организация памяти
IDLE
ActiveАктивация
Предзаряд
Чтение/Запись
Состояния строки
Изменение порядка следования запросов
pre act rwpre act rw
pre act rwpre act rw
pre act rwpre act rw
pre act rw
1. (0,0,0)2. (0,1,0)3. (0,0,1)4. (0,1,3)5. (1,0,0)6. (1,1,1)7. (1,0,1)
12
34
56
7
pre act rw1. (0,0,0)2. (0,1,0)3. (0,0,1)4. (0,1,3)5. (1,0,0)6. (1,1,1)7. (1,0,1)
pre act
rwpre
rw
rwpre act rw
act rw
rw
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 134
БанкСтрока
Столбец
pre act rw
Предзарядt=3
Активацияt=2
Чтение / Записьt=1
Время(такты)
Команды
Т1 / Т2 = 42/18 = 2,3
Т1
Т2
Функциональная схема оптимизирующего контроллера
памяти
Входной буфер запросов
Фильтр зависимости поданным
Фильтр переоткрытия строк
Фильтр запросов чтения
Фильтр возраста
Модуль физического интерфейсас чипами памяти
Бл
ок
пере
упо
ряд
очи
ван
ия
запр
осо
в
Приём запросов от системы
Блокрегенерации
Фильтр протокольныхблокировок
Тип операции Адрес (Данные) Возраст Состояние строки
Режим работы контроллеров
МС #0 МС #1
Кэш-блок А Кэш-блок В
Запрос А Запрос В
МС #0 МС #1
Запрос А
Кэш-блок А
H L
«Честный» двухканальный режимМаксимальное число открытых страниц(64).
Минимальное время чтения из памяти(сокращается на 8нс)
64 байта 64 байта32 байта 32 байта
Сравнение:
CPU #A CPU #B
CPU #D CPU #C
DDR-333
5.3Gb/s 16Gb max.
HyperTransport
6.4Gb/s
freq. = 2000MHz L2 = 1Mb
CPU #A CPU #B
CPU #D CPU #C
4Gb/sDDR2-500
8Gb/s 32Gb max.
freq. = 500MHz L2 = 2Mb
Система AMD Opteron 84х Эльбрус-3м Эльбрус-3s
Частота процессора 1.4 ~ 2.0 GHz 300 MHz 500 MHzТип оперативной памяти
DDR-333 DDR2-400 DDR2-500
Проп. спос. памяти, время доступа
5.3 Gb/s, 50 ns 6.4 Gb/s,180 ns 8 Gb/s,60 ns
Проп. спос. линка, время доступа
6.4 Gb/s, 110 ns 4 Gb/s,110 ns
Суммарная максимальная пропускная способность
3х6.4+5.3=24.5Gb/s 2x3.2=6.4 Gb/s 3x4+8=21 Gb/s
AMD Opteron 846 Эльбрус-3м Эльбрус-3s
AC DC1DC0
DDR2-400 6.4Gb/s
16Gb max.
freq. = 300MHz L2 = 256kb
CPU #0 CPU #1
Результаты:1. Разработано Verilog-описание Системного
коммутатора2. Контроллер памяти адаптирован для системы
«Эльбрус-3s»3. Собран «стенд» для автономного тестирования4. Произведён начальный синтез.
Достигнут заданный уровень производительности при требуемой частоте:
Частота функционирования - 500мгц Максимальная пропускная способность оперативной памяти – 8 GB/s Минимальное время обращения в память по считыванию – 60нс. Время чтения из памяти соседнего процессора – 110нс Интерфейс памяти DDR2-500 Поддержка различных соотношений частот процессора и памяти Возможность построения мультипроцессорной системы с общей памятью с числом процессоров до 8-ми
ХарактеристикиВходной буфер запросов:• Общая ёмкость: 256 запросов• Возможность разбиения на области для 2 – 5 абонентов• Конфигурации размера области для каждого абонента• Сквозная передача(bypass)
Общие временные характеристики: • Минимальное время передачи запроса от процессора в контроллер памяти: 0 тактов• Максимальный темп передачи запросов в контроллеры памяти: 4 запроса/такт• Темп приёма запросов: 2 запроса/такт
Конвейер:• Число уровней: 3• Выработка двух типов блокировок: «долговременная» и «быстрый перезапуск»• Сквозная передача запроса в контроллер памяти с первого уровня(bypass)
Буфер ожидания:• Размер буфера: 32 ячейки• Максимальное количество ячеек, освобождаемых за 1 такт: 10.• Время определения коллизии запросов: 1 такт
Буфер данных контроллеров памяти:• Ёмкость:1024 байт• Хранение блоков данных 32 и 64• 100% использование ёмкости буфера независимо от соотношения блоков данных разного размера• 7 портов по записи • 2 порта по чтению
Интерфейс с контроллерами памяти:• Поддержка двух контроллеров оперативной памяти• Два канала передачи запросов для каждого контроллера• Поддержка различных соотношений частот процессора и контроллера памяти• минимальная задержка для кратных частот