Интерфейсные IP-блоки
с многоканальным ПДП-контроллером
Дмитрий ГольДБЕрГ Георгий ЧумАЧЕнко, к. т. н.
В статье представлена архитектура универсальных интерфейсных Ф-блоков, реализующих стандартный интерфейс AMBA 3.0 AXI [1]. Интерфейсные блоки предназначены для интеграции их в состав разнообразных Ф-блоков с более сложной функциональностью. Использование универсальных интерфейсных блоков одновременно в нескольких Ф-блоках позволяет сократить время разработки микросхем класса «система на кристалле». В состав интерфейсных блоков входят многоканальные контроллеры прямого доступа к памяти (ПДП) для каналов записи и чтения AXI.
В состав современных микросхем класса «система на кристалле» (СнК) входят многочисленные №-блоки, которые предназначены для поточной обработки больших массивов данных без участия центрального вычислительного узла — процессора. В качестве примера на рис. 1 представлена общая структура микросхемы декодера цифрового телевизионного сигнала высокой четкости (СБИС ДЦТС), разрабатываемой НТЦ «Модуль» [3]. Эта СнК — типичная современная СБИС для мультимедийных потребительских устройств, предназначенных для декодирования телевизионного сигнала высокой четкости.
Задачи по обработке и воспроизведению потокового аудио и видео высокой четкости свя-
заны с большим количеством операций потоковой обработки массивов данных, что предопределяет наличие в СнК блоков потоковой обработки. В частности, СБИС ДЦТС содержит следующие блоки потоковой обработки: блок демультиплексирования транспортного потока (TSP), все блоки, входящие в состав видеопроцессора и аудиопроцессора, блок криптопроцессора (Крипто ПУ) и NAND-Flash контроллер (NAND). Все эти блоки работают с большими массивами данных, которые либо хранятся в общей системной памяти, либо поступают с внешних интерфейсов. После обработки выходные данные также необходимо помещать в системную память. Таким образом, эти блоки нуждаются в быстродействующей (до одного гигабайта в секунду)
16-бит
DDR-II
АЛ
W
16-бит
DDR-II
HDMI-трансмиттер
Видеопроцессор
Блок масштабирования
Декодер
2D___UU______ ускоритель
Блок
наложения
слоев
Ж
Аудиопроцессор
S/PDIF l2S
ЦПС NMC3 Буфер памяти
ж
Системная шина
ж
DVB-процессор
TSP
DVB-CI
Smart Card IF
DVB-CSA
Крипто ПУ AES DES/3DES
Ж
ЦПУ
ARM 1176 324 МГц ОЗУ 8 Мбит
ПДП ПЗУ
Интерфейсы
І2С
SPI
GPIO
рис. 1. Общая структура микросхемы декодера цифрового телевизионного сигнала высокой четкости
интерфейсной подсистеме для обмена данными с оперативной памятью, откуда считываются данные и куда они записываются после обработки. Кроме того, такая интерфейсная подсистема должна требовать минимальной поддержки со стороны центрального процессора, поскольку основным назначением блоков потоковой обработки данных является именно разгрузка центрального вычислителя от ресурсоемких однотипных задач. Поэтому поддержку высокоскоростного интерфейса с раздельными каналами записи и чтения и наличие встроенного контроллера прямого доступа к памяти можно назвать основными требованиями к интерфейсным подсистемам поточных блоков.
Любой IP-блок можно рассматривать как совокупность функциональных подсистем. В частности, любой IP-блок, выполняющий потоковую обработку данных, можно представить как совокупность двух основных подсистем: специализированной подсистемы обработки данных и интерфейсной подсистемы, с помощью которой IP-блок обменивается данными с оперативной памятью и другими блоками, входящими в состав системы. Специфика функций интерфейсных подсистем поточных IP-блоков позволяет в большой степени унифицировать эти подсистемы и разработать универсальные интерфейсные блоки для применения в различных по своей основной функциональности IP-блоках.
В рамках проекта по созданию СБИС ДЦТС была проведена работа по созданию архитектуры универсальных интерфейсных блоков (УИБ), реализующих стандартный интерфейс AMBA 3.0 AXI компании ARM [3]. Практическим результатом этой работы стала параметризируемая RTL-модель УИБ, использованная в таких IP-блоках, как демультиплексор транспортного потока TSP [2], криптопроцессор (Крипто ПУ) и контроллер
Рис. 2. Схема применения универсальных интерфейсных блоков в составе ^-блока для потоковой обработки данных
NAND-Flash памяти. Для того чтобы разработанные УИБ соответствовали основным требованиям, предъявляемым к интерфейсным подсистемам указанных IP-блоков для потоковой обработки данных, они должны были обладать такими характеристиками, как:
• поддержка высокоскоростного интерфейса AMBA 3 AXI с разрядностью до 64 бит;
• независимые многоканальные ПДП-конт-роллеры для каждой из подсистем записи и чтения (64 канала для записи, 2 для чтения);
• буферизация данных с раздельными буферами с регулируемой глубиной для каналов чтения и записи;
• простые внутренние интерфейсы для интеграции в состав различных блоков потоковой обработки данных;
• различные режимы работы с буферами в памяти (конечный буфер, кольцевой буфер, «карусель»);
• гибкая система параметров RTL-модели для выбора оптимальной конфигурации (регулируемые количество каналов ПДП и глубина буферов данных каналов записи и чтения).
Схема применения универсальных интерфейсных блоков в составе IP-блока для потоковой обработки данных показана на рис. 2. Потоковый IP-блок на этой схеме в соответствии с изложенной концепцией условно поделен на две основных подсистемы: специализированную подсистему обработки данных и интерфейсную подсистему. Интерфейсная подсистема состоит из универсальных интерфейсных блоков (канал чтения AXI_INPUT и канал записи AXI_ OUTPUT на рис. 2). В состав подсистемы обработки данных входят: блок управления, предназначенный для настройки и выбора режимов работы всех подсистем IP-блока; ядро IP-блока для выполнения специфической для каждого IP-блока обработки данных и переходники для обеспечения совместимости внутренних интерфейсов ядра IP-блока и универсальных интерфейсных блоков. В качестве системного интерфейса используется 64-битный AMBA 3 AXI (в режиме Master). Этот интерфейс имеет раздельные независимые каналы записи и чтения данных и под-
держивает высокоскоростную пакетную передачу данных. С помощью коммутационной среды AXI происходит обмен данными с оперативной памятью системы. В универсальных интерфейсных блоках AXI_INPUT и AXI_OUTPUT используются одинаковые универсальные контроллеры ПДП (генераторы адресов). Подробно внутренняя структура блоков AXI_INPUT и AXI_OUTPUT рассмотрена далее.
Канал чтения AXI_INPUT
Канал чтения интерфейсной подсистемы, блок AXI_INPUT, представляет собой контроллер канала чтения 64-битной шины AMBA 3 AXI, который способен считывать данные из любой области адресного пространства системы (в общем случае — из оперативной памяти), буферизовать их и передавать подсистеме обработки данных IP-блока по внутреннему интерфейсу через переходники AXI-2-CORE. На рис. 3 представлена структура этого блока.
За реализацию всех возможностей канала чтения высокоскоростной современной 64-разрядной шины AXI Master отвечает внутренний интерфейсный блок AXI_R_IF. Подсистема AXI_INPUT способна работать с двумя каналами ПДП, для каждого из которых предусмотрен отдельный буфер данных. Арбитр отвечает за распределение запросов
на чтение данных между двумя каналами. Генерацию адресов для чтения данных производит универсальный ПДП-контроллер DMA_ENG, подробнее его основные возможности рассмотрены далее. Поступающие по шине AXI данные поступают в буферы данных FIFO, а затем в подсистему обработки данных через переходники AXI-2-CORE. В случае, если IP-блок, в составе которого будут использоваться УИБ, работает только с одним потоком данных, можно использовать одноканальную модификацию блока. Это позволяет уменьшить размеры блока и сэкономить ресурсы в кремнии или FPGA.
Универсальный ПДП-контроллер DMA_ENG
Одним из основных элементов блоков AXI_INPUT и AXI_OUTPUT является генератор адресов — контроллер ПДП DMA_ENG, который способен выдавать адреса для нескольких (до 64) каналов с программируемым шагом увеличения адреса. Контроллер может работать в трех режимах генерации адресов.
Первый, самый простой — режим конечных буферов, когда на каждый ПДП-канал выделяется один буфер в системной оперативной памяти (задается начальный и конечный адрес области в памяти-буфера). При достижении конечного адреса этого буфера
Канал чтения шины AXI
Данные
Запрос
Арбитр
DMA ENG
AXI INPUT
Подсистема обработки данных
Буфер I I Переходник 1 Данные
данных FIFO 1 щ I I * I I AXI-2-CORE
і і і і
Буфер . і і . Переходник 2 Данные
данных FIFO 2 її AXI-2-CORE
_________________________________________________________________________________________________________________________________________________J
Рис. 3. Структура блока AXNNPUT
ПДП останавливается, сигнализируя прерыванием о достижении конечного адреса буфера.
Второй режим — режим кольцевого буфера — аналогичен первому, но ПДП не останавливается по достижении конца буфера, а загружает начальный адрес этого буфера и использует буфер снова. При этом также реализована возможность сигнализировать прерыванием о достижении конечного адреса сегмента буфера (до 64 кбайт).
Третий режим — режим «карусели», когда каждому ПДП-каналу ставится в соответствие два буфера в памяти, работа с которыми происходит поочередно. При работе в таком режиме достигается максимальная производительность за счет того, что можно прописывать начальный и конечный адреса в отработанный второй буфер одновременно с работой первого и наоборот.
Канал записи AXI_OUTPUT
Блок AXI_OUTPUT реализует функцию прямой записи в заданную область в адресном пространстве системы (в общем случае — в оперативную память). Структура блока показана на рис. 4. В его состав входят генератор адресов ПДП DMA_ENG, FIFO-буфер для хранения AXI-пакетов, ожидающих отправки по шине, и контроллер AXI_W_IF канала записи шины AXI Master. Этот блок поддер-
живает работу с несколькими ПДП-каналами (до 64), буферизацию целых AXI-пакетов с регулируемым размером буфера, а также все возможности шины AXI (за исключением режима упреждающей выдачи адресов и данных Overlapping). Кроме того, функциональной особенностью блока AXI_OUTPUT является полная поддержка записи данных по адресам, выровненным по одному байту (побайтовая адресация), что делает возможным работу с байтовыми потоками данных.
Разработанные RTL-модели универсальных интерфейсных блоков соответствуют всем заявленным характеристикам и успешно прошли полное функциональное тестирование в локальной тестовой среде. УИБ были успешно интегрированы в СБИС ДЦТС, в составе которой они работают на частотах от 81 до 162 МГц (технологические библиотеки компании Fujitsu, 90 нм). В зависимости от выбранных параметров RTL-модели блоки могут использовать от 10 до 50 тысяч логических вентилей и от 0 до 1536 байт памяти типа RAM.
Различные модификации универсальных интерфейсных блоков в составе прототипов IP-блоков демультиплексора транспортного потока, криптопроцессора и контроллера NAND-Flash памяти прошли тестирование на ПЛИС типа Xilinx Virtex 4 LX200 в составе платформы для разработки СБИС декодера ТВ-сигнала [4]. IP-блоки работали с аппарат-
ной коммутационной средой AMBA 3 AXI и центральным процессором типа ARM 1176JZ под управлением операционной системы Linux.
Предложенная унификация интерфейсных подсистем IP-блоков может иметь ряд недостатков. К ним относятся: возможная избыточность функциональности универсальных интерфейсных блоков в некоторых случаях (многие функции в каком-то IP-блоке могут оказаться невостребованными), а также необходимость создания интерфейсных переходников, которые позволят подключить универсальную интерфейсную подсистему к специализированным подсистемам обработки данных различных IP-блоков. Указанные недостатки иногда могут усложнять IP-блок по сравнению с реализацией всех его подсистем, а не только подсистемы обработки данных, специфичной для каждого из IP-блоков. Такая избыточность частично компенсируется правильным подбором параметров RTL-моделей УИБ. Кроме того, применение универсальных интерфейсных блоков позволяет сократить время и ресурсы на разработку и тестирование блока потоковой обработки, поскольку легче и быстрее реализовать и отладить простой переходник на внутренний интерфейс универсальных интерфейсных блоков, чем для каждого IP-блока разрабатывать специфический интерфейсный блок со встроенным ПДП-контроллером и полноценным котроллером высокоскоростной шины. ■
Литература
1. ARM, AMBA 3 AXI Version 1.0 Protocol Specification, 2004.
2. Гольдберг Д. Блок демультиплексирования транспортного потока MPEG-2 // Электроника: НТБ. 2010. № 4.
3. Шевченко П., Шкуренко А. Декодер цифрового телевизионного сигнала высокой четкости: система на кристалле // Электроника: НТБ. 2007. № 8.
4. Шевченко П. Платформа для разработки СБИС декодера ТВ-сигнала // Электроника: НТБ. 2010.
№ 3.