Разработка контроллера встроенного интерфейса AXI в составе системы на кристалле «Эльбрус-S2»

advertisement
Разработка контроллера встроенного
интерфейса AXI в составе
системы на кристалле «Эльбрус-S2»
Студент: Поляков Н.Ю. , ФРТК, 515 гр.
Научный руководитель: д.т.н. Сахин Ю.Х.
Система на кристалле «Эльбрус-S2»
универсальные ядра ЭЛЬБРУС
кристалл 0
(CPU 0)
CPU Core 0
CPU Core 1
L2$
L2$
Межъядерный
коммутатор (CIC)
Контроллер системного
обмена (SIC)
Контроллер
памяти 0
(MС0)
Контроллер
памяти 1
(MС1)
к памяти
Системный коммутатор
(SC)
Core
0
Core
2
Core
1
Core
3
DSP
DMA
DSP-кластер
ГУП НПЦ «ЭЛВИС»
интерфейсная
часть
Коммутатор
данных
(Data Box)
Контроллер встроенных
интерфейсов ввода-вывода
(IOCOM)
контроллер
Контроллер
канала ввода/
вывода
Контроллер
линков
связи
кристалл 1
(CPU 1)
Контроллер
линков
связи
кристалл 2
(CPU 2)
Контроллер
линков
связи
кристалл 3
(CPU 3)
Контроллер
ввода
цифровой
информации
AXI-контроллер
(AXI Box)
универсальная часть
ЗАО «МЦСТ»
IO канал
ADC канал
4-процессорная конфигурация
системы на кристалле «Эльбрус-S2»
Core
0
DSP
4 core
DSP
4 core
Core
0
Core
1
CPU 0
CPU 1
Core
1
Память
SIC
Память
SIC
IO
IO
Память
SIC
Память
SIC
Core
0
CPU 3
CPU 2
Core
0
Core
1
DSP
4 core
DSP
4 core
Core
1
Взаимодействие DSP c процессорными
ядрами ЭЛЬБРУС (универсальной частью, УЧ)
AXI-контроллер
IO-Обмен (master)
чтение
запись
AMBA 3.0 AXI
64
DMA-Обмен (slave)
запись
чтение
64
чтение
запись
IO-Обмен (slave)
64
64
запись
чтение
DMA-Обмен (master)
DSP-кластер
IO-обмен (Input/Output) : DSP-slave
редкие короткие запросы
DMA-обмен (Direct Memory Access) : DSP-master
передача больших массивов данных
Функциональное разделение
AXI-контроллера
AXI-контроллер
Простейший
интерфейс
Универсальная
часть МП
контроллер
(SIC IFace)
непрерывная передача
пакета
32 байта без маски
32 байта с маской
64 байта без маски
интерфейсная
часть
(AXI IFace)
AXI
DSP
произвольная длина
пакета
останов передачи
после любой посылки
Постановка задачи:
Разработать AXI-контроллер для
включения DSP в состав
системы на кристалле «Эльбрус-S2»
Требования:
обеспечить минимальные задержки
передачи данных DMA-обмена при
максимальной загруженности канала
обеспечить минимальное время
выполнения коротких IO-обменов
Структурная схема контроллера
(SIC IFace)
системный
коммутатор
(SC)
коммутатор
данных
(Data Box)
контроллеры
межпроцессорных
линков
64
64
32 X 3
мультиплексор
данных из
линков
64
DMA
32 X 3 + 64
IO
модуль
обработки IO
запросов
мультиплексор
данных в CPU
64
SIC IFace
32 X 3 + 64
модуль DMA
чтений
(DMARD)
модуль DMA
записей
(DMAWR)
64
64
модуль IO
чтений
(IORD)
64
AXI IFace
модуль IO
записей
(IOWR)
64
Модуль выполнения DMA-записей
(DMAWR)
CPU0
CPU1
Контроллеры
линков
CPU2
CPU3
Номер
запроса
Коммутатор
данных (Data Box)
Этапы выполнения записи:
•
буферизация заявок от DSP
•
передача данных в коммутатор
данных (Data Box) без
буферизации
•
Преобразование
управляющих
сигналов
отправка заявки на запись в
контроллеры линков
Достоинство:
отсутствие буфера данных
DMAWR
Очередь
запросов
40
Адрес
Управляющие
сигналы
AXI IFace
64
Данные
Модуль выполнения DMA-чтений
(DMARD)
Контроллеры
линков
64
Запрос
32 32 32
№ ответа
Данные
40
в SC
Запрос
Буфер
запросов
на чтение
Буфер
данных
64
Этапы выполнения чтения:
Коммутатор
данных
(Data Box)
Запрос
AXI IFace
•
буферизация запросов от DSP
•
формирование и отправка
запросов на DMA-чтение в УЧ
•
сбор и буферизация
когерентных ответов от кэшей
•
выдача ответов с данными в
AXI IFace
•
отправка в УЧ сообщения о
завершении DMA-чтения
DMARD
Очередь ответов
о завершении
Достоинство:
Очередь ответов о
завершении операции
позволяет освободить ячейку
буфера данных раньше, чем
отправится сообщение
Структурная схема контроллера
(SIC IFace)
системный
коммутатор
(SC)
коммутатор
данных
(Data Box)
контроллеры
межпроцессорных
линков
64
64
32 X 3
мультиплексор
данных из
линков
модуль
обработки IO
запросов
мультиплексор
данных в CPU
64
32 X 3 + 64
IO
64
SIC IFace
32 X 3 + 64
модуль DMA
чтений
(DMARD)
модуль DMA
записей
(DMAWR)
64
64
модуль IO
чтений
(IORD)
64
AXI IFace
модуль IO
записей
(IOWR)
64
Модуль обработки IO-запросов
(Input/Output Request’s Execution, IORE)
Этапы обработки запроса:
•
•
•
прием запросов от SC
во входную очередь
запросов
Системный коммутатор
Сообщение
«выдать
данные»
Очередь
запросов
на чтение
чтение
запись
IORE
Очередь
запросов
на запись
Очередь
ответов
Коммутатор
Данных
Выдать
ответ на
чтение
Счётчик
ответов
от DSP
чтение
запись
Данные
по записи
64
IORD
IOWR
32
32
32
64
AXI IFace
Контроллеры
линков связи
Достоинство:
раздельные входные
очереди для запросов
на запись и чтение
Сообщение
«освободить
регистр»
чтение запись
выдача запроса в
исполнительные
устройства и
постановка в очередь
ответов
отправка команд
исполняющим
устройствам «выдать
ответ»
Запросы
из SC
Разделение входных очередей
запись
«выдать
данные»
чтение
Входная очередь
0
1
1
Ожидание
данных
4 - 16
Запись
данных в AXI
0
Отправка
запроса в AXI
Входная очередь
1
Выходная
очередь
Ожидание
данных
4-8
2
Выдача данных
4-8
чтение
запись
чтение
Выдача
данных
Входная очередь
Ожидание
данных
Выдача
данных
Выходная
Ожидание данных
очередь
Выходная
очередь
ответ
Ожидание
данных
конец
4
Выходная
Ожидание данных
очередь
Выходная
очередь
Выдача
данных
ответ
Раздельная
входная
очередь
запись
4
Выдача данных
4-8
запрос
Общая
входная
очередь
3
запрос
конец
3
2
Выходная
очередь
1
Выдача
данных в
DBox
Выдача
данных
t
Исполнительные устройства IO-обмена
IO-чтение
Коммутатор
данных
(Data Box)
Выделить
ячейку
IORD
Буфер
данных
64
Коммутатор
данных
(Data Box)
IORE
Из входной
очереди
64
IO-запись
Выдать
ответ
Контроллеры
линков
64
Из выходной
очереди
IORE
Завершение
записи
32 32 32
IOWR
Текущий запрос
Буфер
данных
Запрос на
чтение
64
AXI IFace
Данные
AXI IFace
Основная функция модулей –
сбор и выдача данных
24
Адрес
Оптимизация использования
буфера данных
32 байта
64 байта
0
1
2
3
Запрос 0
Запрос 1
Запрос 2
Запрос 3
0
1
2
3
Запрос 0
Запрос 1
Запрос 3
Применяется в модулях IORD и IOWR
Оптимизации
Оптимизация форматного IO-чтения
Запрос на
2 слова
Запрос на
2 слова
Буфер данных IORD
AXI
чтение 1 слова (1 такт)
чтение 2 слов (2 такта)
чтение 4 слов (4 такта)
Применяется в модуле IORD
Фактические характеристики
Максимальная
загруженность
канала
Одиночные
запросы
Результаты
 Разработано Verilog-описание контроллера
встроенного интерфейса AXI, позволяющего
минимизировать задержки передачи данных
DMA-обмена при максимальной загруженности канала и
обеспечивающего минимальное время выполнения
коротких IO-обменов
 Пройдено автономное тестирование, позволившее
проверить не только работу модуля AXI Box, но и
правильность выполнения DSP-кластером обмена
данными
 Модуль встроен в систему на кристалле “Эльбрус-S2”
Download