20
Дипломная работа Исследование и разработка системного коммутатора и оптимизирующего контроллера оперативной памяти для системы-на- кристалле «Эльбрус-3s» Шерстнёв Андрей, ФРТК Гр.112 Научный руководитель: Чудаков М. Л.

Дипломная работа

Embed Size (px)

DESCRIPTION

Дипломная работа. Исследование и разработка системного коммутатора и оптимизирующего контроллера оперативной памяти для системы-на-кристалле «Эльбрус-3 s ». Научный руководитель: Чудаков М . Л. Шерстнёв Андрей, ФРТК Гр.112. Базовая конфигурация 4-х процессорной системы. Постановка задачи:. - PowerPoint PPT Presentation

Citation preview

Дипломная работа

Исследование и разработка системного коммутатора и

оптимизирующего контроллера оперативной памяти для системы-на-

кристалле «Эльбрус-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 порта по чтению

Интерфейс с контроллерами памяти:• Поддержка двух контроллеров оперативной памяти• Два канала передачи запросов для каждого контроллера• Поддержка различных соотношений частот процессора и контроллера памяти• минимальная задержка для кратных частот