Сигнальные контроллеры компании ЭЛВИС: первая линейка отечественных DSP
Именно поэтому практически все ведущие производители DSP-процессоров выпускают линейки продуктов. У всех представителей таких семейств единое процессорное ядро, а различаются они периферией – числом портов, объемом и типом встроенной памяти, дополнительными функциональными устройствами и т.п. Причем при переходе на более совершенные процессорные ядра поддерживается совместимость с предшествующими продуктами.
Однако путь этот доступен только компаниям, ориентирующимся на открытый рынок и не работающим исключительно "под заказ", что в России – редкость. Тем интереснее деятельность ГУП НПЦ ЭЛВИС, не просто анонсировавшего линейку сигнальных контроллеров серии "Мультикор", но и успешно ее реализующего, причем на базе собственных IP-библиотек. В результате у российских разработчиков появляется достаточно широкий спектр отечественных инструментов для решения разнообразных задач, особенно – в области военной и специальной техники.
Отметим, что в разработках DSP-контроллеров "Мультикор" помимо авторов статьи активное участие принимали А.В.Глушков, В.Д. Глушков, В.Ф.Никольский, Ю.И.Грибов, А.А.Беляев, В.А.Силин и М.Н.Алексеев.
Семейство сигнальных контроллеров "Мультикор" строится по единому функциональному принципу. Каждый контроллер содержит управляющее ядро с архитектурой RISC, совместимой с MIPS32, и одно или несколько ядер цифровой обработки сигналов (DSP). Тем самым реализуется принцип мультипроцессорности. Такая интеграция требует организации согласованной работы нескольких процессоров, построения системы межпроцессорных связей, выбора эффективного протокола обмена и т.д. Специалисты компании ЭЛВИС добились немалых достижений в разработке интерфейса межпроцессорного взаимодействия, обеспечивающего высокоскоростной пакетный обмен данными. Эта технология изначально создавалась для бортовых распределенных систем, однако оказалась эффективной и для связи процессорных ядер на кристалле. Управляющий контроллер может функционировать под управлением ОС Linux, что существенно упрощает программирование систем.
Направление мультипроцессорности прослеживается во всех приборах семейства "Мультикор". Первым процессором серии стал сигнальный контроллер 1892ВМ3Т (МС-12). Рассмотрим его подробнее, чтобы затем перейти к последующим представителям семейства.
МС-12 содержит (рис.1) два ядра – управляющий 32-разрядный RISC-контроллер и DSP-ядро ELcore-14 с гарвардской архитектурой*. Память ядер разделена: у RISC-контроллера – ОЗУ (64 Кбайт) и кэш-память команд (16 Кбайт), у DSP – два банка ОЗУ данных (96 и 48 Кбайт) и ОЗУ команд (16 Кбайт). Однако вся эта память принадлежит единому адресному пространству.
Процессорные ядра неравноправны: RISC-контроллер является управляющим (ведущим) и имеет доступ ко всем ресурсам кристалла, в том числе и к ресурсам DSP (память программ и данных, регистры состояния и управления). Поэтому он называется центральным процессором (CPU), работает под управлением специальной операционной системы (Linux, QNS) и исполняет основную программу. DSP – подчиненное устройство, он выступает как вычислительный сопроцессор-акселератор и выполняет макрокоманды (задания) CPU. При этом DSP работает под управлением собственной программы и может выдавать внутренние прерывания (программные и аппаратные) в CPU. DSP не способен самостоятельно обращаться к внутренним и внешним ресурсам, кроме его собственных, что исключает проблемы арбитража шин и упрощает работу с контроллером в целом. Однако DSP может самостоятельно инициировать обмен с устройствами памяти в режиме прямого доступа (DMA). Предусмотрен и его запуск по сигналам каналов DMA.
В устройствах цифровой обработки сигналов очень важно достичь не только пиковой производительности процессорных ядер, но и до-биться максимальной скорости обмена информацией – как по шинам ввода/вывода, так и по внутренним магистралям кристалла. В серии "Мультикор" организации потоков данных уделено особое внимание. Процессор МС-12 оснащен портом внешней памяти (MPORT, 32-разрядные шины адреса и данных), двумя последовательными портами (SPORT), универсальным последовательным асинхронным портом (UART) типа 16550 и четырьмя байтовыми линковыми портами (LPORT), совместимыми с процессором ADSP21160 компании Analog Devices. Если какой-либо линковый порт не активизирован, все 10 его внешних линий (8 – данные и 2 – управляющие) можно использовать как порты ввода-вывода общего назначения (GPIO).
Для эффективной организации информационного обмена служит третий ключевой компонент МС-12 – контроллер прямого доступа к памяти DMA. Он обеспечивает 12 каналов обмена: четыре канала обмена между последовательными портами и внутренней либо внешней памятью (раздельно на прием и передачу), четыре канала обмена между линковыми портами и памятью (внутренней или внешней), еще четыре канала предназначены для пересылки данных между внутренней и внешней памятью.
Важная особенность DMA
в МС-12 – поддержка так называемого режима Flyby, обеспечивающего непосредственный обмен данными между внешним устройством ввода-вывода и внешней памятью (например, из внешнего АЦП во внешнее ОЗУ). В этом режиме MC-12 отключается от шины данных, а контроллер DMA активизирует внешнюю память и внешнее устройство ввода-вывода одновременно. Внутренние шины МС-12 при этом не задействуются. Всего возможны четыре канала такого обмена (соответствующие DMA-каналам обмена между внутренней и внешней памятью).
Кроме того, контроллер DMA поддерживает режимы разрядно-инверсной и двумерной адресации (последний – для удобства работы с двумерными массивами). Управляется контроллер DMA посредством набора регистров, доступных RISC-контроллеру. Последний обслуживает четыре внешних запроса прямого доступа.
Порт внешней памяти контроллера позволяет работать с различными типами запоминающих устройств – как синхронным ОЗУ (SDRAM), так и с асинхронной памятью (SRAM, EPROM, FLASH, FIFO и т.д.). Он также обеспечивает конфигурирование внешней памяти в соответствии со значениями его управляющих регистров.
МС-12 оснащен тремя 32-разрядными таймерами (реального времени, интервальным и сторожевым), системой синхронизации (включает ФАПЧ и программно управляемый умножитель/делитель частоты внешнего генератора), а также тестовым портом JTAG и встроенным отладчиком программ.
Напряжение питания ядра/периферии МС-12 составляет 5/3,3 В, пиковый ток потребления (в тесте, использующем все ресурсы микросхемы) – не более 500 мА . Предусмотрено два режима энергосбережения – перевод DSP-ядра в режим STOP (энергопотребление снижается не менее чем на 30%) и отключение внутренней тактовой частоты. В последнем случае потребление энергии контроллером падает не менее чем в 100 раз. Предусмотрено и снижение тактовой частоты. Вывод контроллера из состояния с отключенной внутренней тактовой частотой возможен по любому внешнему прерыванию.
Особенности CPU
Управляющий RISC-контроллер (рис.2) поддерживает систему команд MIPS32 компании MIPS, включая наличие регистров для обработки прерываний реального времени и исключений*.
Все вычислительные операции, кроме умножения и деления, реализует исполнительное устройство. Логические, арифметические и сдвиговые операции за один такт выполняет арифметико-логическое устройство (ALU). Кроме того, в устройство исполнения входят блоки сдвига и выравнивания данных, логика определения условий и адреса перехода, а также адресное устройство. Для скалярных целочисленных операций и вычисления адресов предназначен регистровый файл с двумя портами чтения и портом записи, содержащий 32 32-разрядных регистра общего назначения. Операции умножения и деления реализует отдельное устройство, выполняющее умножение за 17 тактов, умножение с накоплением (МАС) – за 18 тактов, деление – за 33 такта и деление с накоплением – за 34 такта.
В контроллере реализован 5-стадийный конвейер команд – выборка команды, ее дешифрация, исполнение, выборка данных из памяти и запись данных в регистр. Для исключения остановок конвейера RISC-контроллер содержит мультиплексоры обходных путей, позволяющих с промежуточных стадий одной команды передавать данные другой команде. Например, целесообразно передавать данные со стадии исполнения непосредственно на стадию дешифрации, когда результат какой-либо инструкции необходим следующей непосредственно за ней команде или если команда использует результаты непосредственно предшествующих ей команд.
Для управления CPU предназначен системный управляющий сопроцессор (CP0). Он содержит набор управляющих регистров, обеспечивающих управление памятью, преобразование адреса, обработку исключений, разрешение/запрещение прерываний и т.д. Кроме того, для управления контроллером служит системный регистр управления и состояния (CSR), с помощью которого происходит управление внутренней тактовой частотой, режимом отображения виртуальной памяти и очисткой кэш-памяти команд.
Система адресации
Адресное пространство контроллера – 4 Гбайт (табл.1 и 2). Оно включает всю встроенную память CPU и DSP, их программно доступные регистры и все внешние запоминающие устройства. Для CPU вся память – 32-разрядная, т.е. при обращении к ней два младших разряда шины адреса всегда равны нулю. Однако возможна и побайтная адресация. В режиме DMA весь обмен происходит также в 32-разрядном формате. Внутренняя шина CPU соответствует спецификации шины AHB (Advanced High-performance Bus) архитектуры AMBA (Advanced Microcontroller Bus Architecture) – стандарт де-факто для внутренних шин СБИС типа "система на кристалле".
В соответствии с архитектурой MIPS32 контроллер аппаратно поддерживает виртуальную адресацию в едином 4-Гбайт (232 байт) адресном пространстве. Преобразованием виртуальных адресов в физические, а также защитой отдельных областей памяти занимается менеджер памяти. В результате в одной и той же области виртуальной памяти могут существовать несколько активных процессов, что очень удобно с точки зрения организации программ и эффективного управления ими. Физически же эти процессы размещаются в различных областях памяти. Возможность работы с виртуальной памятью чрезвычайно важна для мультипроцессных операционных систем и организации многозадачных режимов работы, свойственных современным системам цифровой обработки, поэтому остановимся на ней подробнее.
Виртуальное адресуемое пространство контроллера МС-12 разбито на два равных блока (с адресов 016 по 7FFF FFFF16 и с 8FFF FFFF16 по FFFF FFFF16) по 2 Гбайт. С точки зрения работы с памятью контроллер поддерживает два режима – непривилегированный (User) и привилегированный (Kernel). Первый режим, как правило, — основной при исполнении прикладных программ. В нем программе доступен только раздел с 016 по 7FFF FFFF16 и запрещен доступ к управляющим регистрам RISC-контроллера. Обращение к старшим адресам вызывает исключение.
В режим Kernel CPU автоматически входит после аппаратного сброса или когда происходит исключение. В этом режиме возможно обращение к полному адресному пространству и ко всем служебным регистрам.
Верхний блок виртуальной памяти, доступный только в режиме Kernel, разбит на 4 сегмента по 512 Мбайт. Два младших из них (начинающиеся с адресов 8000 000016 и А000 000016) отличаются тем, что им соответствует один и тот же блок физической памяти, адреса в которой вычисляются вычитанием из виртуальных адресов 8000 000016 и А000 000016, соответственно.
Отметим, что в состоянии Kernel возможен режим, когда вся нижняя половина виртуальной памяти (область пользователя) непосредственно отображается в физическую, т.е. виртуальные и физические адреса совпадают.
RISC-контроллер семейства процессоров "Мультикор" поддерживает два режима отображения виртуальных адресов в физические – методом фиксированного преобразования (Fixed Mapped, FM) и посредством полностью ассоциативного буфера быстрого преобразования (TLB – Translation Lookaside Buffer).
Механизм TLB – один из важнейших механизмов адресации в RISC-контроллере. Он подразумевает применение страничной адресации. Размер страниц – от 4 Кбайт до 16 Мбайт с кратностью 4. Соответственно, виртуальный адрес начала каждой такой страницы содержит от 20 до 8 разрядов. Младшие разряды (от 12 до 24 бит, соответственно) 32-разрядного адреса – так называемое смещение – определяют положение данных в пределах страницы. Буфер TLB предназначен для быстрого преобразования виртуальных адресов страниц в физические. Смещение (младшие разряды) передается в физический адрес без изменений.
Как в любой ассоциативной памяти, каждая строка TLB включает теговую порцию и связанные с ней данные (рис.3). Особенность TLB в MIPS32 в том, что одной теговой порции соответствуют адреса двух страниц – четной и нечетной. Четность определяется битом, самым старшим после смещения (например, если смещение занимает разряды с 0 по 11, то 12-й разряд – бит четности). Всего в TLB 16 строк, соответствующих 32 страницам.
Теги в данном случае – это так называемый номер страницы (старшие разряды виртуального адреса начала страницы), маска страницы, определяющая ее размер, бит глобальности и идентификатор адресного пространства ASID (8 разрядов). Каждому процессу и связанным с ним страницам данных присваивается идентификационный номер ASID. Если страница используется всеми процессами, ей присваивается признак глобальной (установлен бит глобальности), и ASID не участвует в сравнении.
Виртуальный адрес при обращении к TLB расширяется номером ASID или признаком глобальности. При поиске в таблице TLB номер страницы (от 19 до 7 старших разрядов виртуального адреса, их число определяется маской) сравнивается с номерами страниц в TLB. При совпадении, если установлен бит глобальности или совпадают значения ASID, выбирается физический адрес станицы (в соответствии с битом четности), к нему добавляется смещение – и физический адрес данных готов. Помимо физического адреса страниц, в TLB хранятся атрибуты каждой их них – признаки кэшируемости (возможность записать страницу в кэш-память), бит разрешения записи в данную страницу и бит валидности (разрешение обращения к данной странице).
Если при сравнении виртуальному адресу в TLB не соответствует ни одна строка, формируется исключение, и программа получает возможность изменить содержимое TLB. Важно отметить, что размер страниц может быть различным в каждой строке TLB. При этом аппаратно отслеживаются ситуации (с генерацией исключений) пересечения областей памяти, задаваемых в различных строках, равно как и попадание в таблицу TLB нескольких строк с одинаковыми тэгами.
DSP-ядро
DSP-ядро ELcore-14 сигнального контроллера МС-12 (рис.4) отличается способностью обрабатывать данные с переменной разрядностью (как в целочисленном, так и в вещественном формате), развитой системой адресации, а также набором команд с VLIW-подобной структурой (VLIW – Very Long Instruction Word, сверхдлинное командное слово). В одной инструкции DSP-ядра возможно параллельное выполнение до двух вычислительных операций и до двух пересылок. Благодаря трехстадийному конвейеру большинство команд выполняются за один такт. В системе команд предусмотрена операция вида A ± Х над 32-разрядными числами с плавающей запятой, формирующая одновременно два результата. Параллельно с ней возможно выполнение и других операций, например умножения. В результате пиковая производительность DSP-ядра (при тактовой часоте 100 МГц) может достигать 300 MFlops.
Все вычислительные операции выполняет арифметико-логическое устройство (ALU). Оно содержит регистровый файл RF, два 16-разрядных регистра (для хранения параметра денормализации (PDNR) и кодов условий (CCR)), два 32-разрядных регистра-аккумулятора, а также четыре вычислительных устройства и устройство управления ALU.
Регистровый файл служит для хранения исходных операндов и результатов операций ALU. Он представляет собой набор из 32 16-разрядных регистров, которые при работе с 32-разрядными данными объединяются попарно. Для параллельных обращений регистровый файл оснащен пятью портами записи и пятью – чтения.
К вычислительным устройствам относятся два устройства обработки данных с фиксированной точкой – умножитель/сдвигатель MS и арифметическое устройство AU, а также два устройства для данных в форматах с плавающей точкой: умножитель FMU и арифметическое устройство FASU. Форматы данных могут быть различны – 8/16/32-разрядные числа с фиксированной точкой и данные с плавающей точкой в форматах 24Е8 (стандарт IEEE-754) и 32Е16. Тем самым достигается необходимый компромисс между скоростью вычислений и точностью результатов обработки.
Умножитель-сдвигатель MS производит операции умножения с целыми числами со знаком и без знака; умножение чисел со знаком в дробном формате с фиксированной точкой, а также многоразрядные арифметический и логический сдвиги в форматах с фиксированной точкой. Арифметическое устройство AU включает логическое устройство (LU) и узел битовой обработки (BFU). Оно выполняет арифметические операции в форматах с фиксированной точкой; преобразование форматов чисел; операции ограничения результатов с целью предотвращения выхода за пределы разрядной сетки (функция насыщения), а также операции с битовыми полями.
Умножитель для чисел с плавающей точкой (только в формате 24Е8, соответствующем стандарту IEEE-754) FMU производит умножение чисел; вычисления 8-разрядного приближения обратной величины и обратной величины квадратного корня. Устройство FASU служит для арифметических операций и преобразования форматов чисел. Для хранения результата в операциях умножения с накоплением предназначены два 32-разрядных регистра-аккумулятора, которые могут объединяться в один 64-разрядный регистр.
В ALU возможно добиться оптимального соотношения точность/производительность не только за счет изменения разрядности данных, но и используя функции округления, насыщения (ограничение результата операции сверху и снизу в рамках разрешенного диапазона значений) и масштабирования (сдвига результата арифметической операции вправо на 1 или 2 разряда во избежание переполнения). Все эти процедуры поддержаны аппаратно.
ALU также аппаратно поддерживает вычисление параметра денормализации массивов данных, что полезно, в частности, в алгоритмах быстрого преобразования Фурье (БПФ). Параметр денормализации D определяется для чисел с фиксированной точкой со знаком. Он вычисляется как D = msb - n - 1, где msb – наибольший (знаковый) разряд числа, n – номер самого старшего разряда, значение которого не равно знаковому разряду. Например, для числа 800016 D = 15 - 14 - 1 = 0. Под параметром денормализации массива понимается наименьшее значение D входящих в него чисел. ALU может автоматически отслеживать параметр денормализации массивов данных, пересылаемых между регистровым файлом и памятью данных XRAM. Предусмотрены и команды определения D для отдельных чисел.
Инструкции DSP-ядра имеют общий вид:
<Операция OP2> < Операция OP1> <Пересылка 1> <Пересылка 2>
и могут быть 32- и 64-разрядными.
Операции типа ОР1 исполняются блоками AU и FASU, типа ОР2 – блоками MS и FMU. Все вычислительные операции и пересылки выполняются ALU за один такт. Новая команда может быть инициализирована на каждом такте. Результат любой арифметической операции способен служить исходным операндом для последующей.
Инструкции DSP выполняются посредством трехстадийного конвейера, включающего фазы выборки инструкций из памяти (с генерацией адреса следующей инструкции), их декодирования и исполнения.
Память программ PRAM DSP-ядра представляет собой отдельное двухпортовое 64-разрядное ОЗУ (адреса на общей шине – с 1844 0000 по 1847 FFFC). В нем хранятся 64- и 32-разрядные инструкции, считываемые за один такт. Объем ОЗУ программ в ядре ELcore-14 составляет 4К 32-разрядных слов.
Память данных организована в виде двух массивов — XRAM и YRAM с 32-разрядной организацией (объем — 24К и 12К 32-разрядных слов, соответственно). XRAM и YRAM также допускают одновременное обращение со стороны внутренней шины DSP и со стороны CPU или контроллера DMA. Вся память DSP входит в единое адресное пространство контроллера и доступна CPU (см. табл.2). Внутренние шины адреса DSP-ядра – 16-разрядные, во внутреннем адресном пространстве массиву XRAM назначены адреса с 0000 по 5FFF, массиву YRAM – с 6000 по 8FFF.
Наличие нескольких вычислительных устройств, многопортового регистрового файла и двух раздельных массивов памяти обеспечивают возможность выполнения двух операций и двух пересылок за такт (в рамках одной команды).
Для управления DSP-ядром служит устройство программного управления (PCU). Оно контролирует выборку команд и их декодирование, управляет программным конвейером, а также аппаратно поддерживает организацию цикла. Кроме того, PCU содержит набор регистров и стеков, в том числе регистр управления и состояния (DCSR), программный счетчик, регистр адреса окончания цикла, регистр счетчика циклов, системный стек (15 16-разрядных регистров) и регистр указателя стека, регистр адреса останова и т.д. Именно посредством регистров PCU задаются режимы работы и отладки DSP-ядра, определяется его взаимодействие с CPU и контроллером DMA. Так, через регистр управления и состояния DSP выставляет CPU запросы на прерывания, запускает каналы DMA, переходит в отладочный режим и т.п.
Система адресации в DSP-ядре
Важное достоинство DSP-ядра контроллера МС-12 – развитая система адресации. Она включает прямую адресацию (для регистров управления и данных), косвенную адресацию (для памяти данных и программ), а также — только для памяти программ — абсолютную адресацию и адресацию относительно программного счетчика.
Для обращения к массивам данных служат генераторы адресов AGU и AGU-Y. Генератор AGU предназначен для обращения к массивам XRAM и YRAM. Он включает 8 групп (триплетов) по три 16-разрядных регистра – регистра адреса Аn и связанных с ним регистров смещения In и модификатора Mn (n = 0,..,7).
За один командный цикл возможна модификация только одного регистра адреса. При модификации выполняется одна из операций An = An ± 1, An = An ± In либо An + X, где Х – значение смещения, непосредственно указанное в поле команды. Все изменения регистра адреса происходят после выполнения адресации. Также возможна и индексация адреса – обращение по адресу (An + In), содержимое Аn при этом не меняется.
Все описанные операции могут выполняться по нескольким различным правилам (адресным арифметикам), определяемым содержимым регистра модификатора Mn. Если Mn = FFFF16, используется обычная линейная арифметика над целыми 16-разрядными числами (т.е. арифметика по модулю 216). При Mn = 0 все аналогично линейной арифметике, но направление распространения переноса изменено на обратное – от старших разрядов к младшим. Это полезно, например, в алгоритмах быстрого преобразования Фурье.
Остальные значения регистра модификатора соответствуют модульной арифметике. Если Mn Ј 7FFF, используется модульная арифметика по модулю (Mn + 1). В этом случае адрес обращения вычисляется как XAB = base_addr + mod Mn +1 {(An[k-1, 0] ± In)}, где An[k-1, 0] – младшие (k – 1) разряды регистра An, причем 2k і Mn + 1; base_addr — это содержимое регистра An после обнуления младших k разрядов. В результате адрес не может выйти за диапазон размером Mn, т.е. base_addr Ј XAB Ј base_addr + Mn. Очевидно, что при адресации с автоинкрементом/декрементом вместо In в формуле следует записать 1. Значение смещения In (если используется) в этом режиме не может превышать Mn + 1. Модульная арифметика удобна при организации циклических буферов для реализации на их основе очередей типа FIFO, линий задержки и т.п.
Если значение регистра Mn > 800016 и Mn = 2n - 1 + 800016, где n = 1,..,14 (Mn О {8001, 8003,.., BFFF}), то реализуется кратная модульная арифметика по модулю М = 2n. Этот режим отличается от предыдущего только тем, что значение смещения In может быть произвольным.
Генератор адреса AGU-Y, в отличие от AGU, предназначен только для обращения к массиву YRAM и только по чтению. Его структура более проста: один регистр адреса AT, регистр модификатора MT и два регистра смещения IT и DT. Назначение и режимы использования этих регистров аналогичны соответствующим регистрам генератора AGU. Небольшое различие – в AGU-Y не предусмотрены инкремент/декремент на 1, автоуменьшение на величину смещения и непосредственное смещение. Однако добавлено автоувеличение на содержимое регистра DT.
Разнообразие видов косвенной адресации к массивам данных наделяет программистов мощным инструментом, позволяющим организовывать в памяти структуры данных типа очередей FIFO, линий задержки, циклических буферов, стеков, буферов с обратным порядком адресации для реализации БПФ. При этом процессор в большей степени манипулирует адресами, нежели занимается пересылками больших блоков данных, что в значительной степени повышает его эффективность. Причем все регистры триплетов генератора адресов доступны по глобальной шине контроллера и могут быть загружены предварительно (в том числе из CPU), а арифметические операции в них выполняются параллельно работе всех остальных устройств DSP.
Развитие семейства "МУЛЬТИКОР"
Сигнальный контроллер МС-24
Кратко рассмотренный сигнальный контроллер МС-12 – самый младший (по возможностям) представитель семейства "Мультикор". Он реализован по технологии с разрешением 0,25 мкм и рассчитан на тактовую частоту 100 МГц. Следующий представитель семейства – сигнальный контроллер МС-24 (1892ВМ2Т) – отличается от предшественника модернизированным DSP-ядром (ELcore-24). В ELcore-24 (рис.5) поддерживается параллелизм обработки на уровне данных. В этом DSP-ядре реализована архитектура 2SIMD (single-instruction, multiple-data) – один поток команд и два потока данных. Аппаратно это обеспечивают два одинаковых устройства ALU, удвоенное число банков данных (XRAM0, XRAM1, YRAM0, YRAM1) и соответствующих им внутренних шин адресов и данных. Для обращения по чтению к массивам YRAM0 и YRAM1 используются два генератора адреса – AGU-Y0 и AGU-Y1. Таким образом, новое DSP-ядро получено путем масштабирования базового SISD-ядра ELcore-14 по числу секций обработки (SIMD-секций). При этом сохраняется полная программная совместимость с предшествующим контроллером. Поскольку появилось две секции обработки, до 64 разрядов расширились внешняя шина данных контроллера и внутренняя шина DMA – т.е. стали возможны как 64-, так и 32-разрядные пересылки.
При работе в SIMD-режиме обе секции обработки действуют параллельно, выполняя одни и те же инструкции, с одинаковыми адресами регистровых файлов и массивов данных. При этом сами данные, очевидно, могут различаться. В командах, выполняемых по условию (например, условный переход), признаки условий в каждой SIMD-секции (локальные признаки) могут не совпадать. В этом случае формируется общий признак по правилу, заданному в регистре состояния DSP. Так, общим может считаться признак, сформированный в нулевой секции, или он вычисляется посредством операций "И" либо "ИЛИ" над локальными признаками.
Память данных в ядре ELcore-24 в SIMD-режиме поровну разделена между двумя секциями обработки, причем четные адреса принадлежат массивам одной секции, нечетные – другой. Таким образом, две ячейки с соседними адресами принадлежат массивам различных SIMD-секций. При 64-разрядных обменах CPU или контроллер DMA обращаются к двум соседним 32-разрядным ячейкам памяти, т.е. к одноименным ячейкам в различных SIMD-секциях. Дополнительно предусмотрен режим "вещания" (broadcasting), когда при внешнем обращении 32-разрядные данные записываются одновременно в две ячейки с соседними адресами (одинаковые данные в одноименные ячейки различных SIMD-секций).
В результате, за счет масштабирования секций DSP-обработки производительность контроллера МС-24 на многих алгоритмах обработки сигналов вдвое превышает производительность МС-12 при той же тактовой частоте (табл. 3).
Сигнальный контроллер МС-0226
Следующим этапом жизни семейства "Мультикор" стало создание контроллера МС-0226 (1892ВМ4). Если первым шагом развития сигнальных контроллеров было введение параллелизма на уровне данных (в DSP-ядре), то в новом контроллере появился параллелизм на уровне команд – архитектура MIMD. Для данного контроллера разработано новое DSP-ядро ELcore-26 с тактовой частотой 120 МГц. В МС-0226 будут использоваться два DSP-ядра, что повысит пиковую производительность в 2,4 раза по сравнению с МС-24 (см.табл.3). Структура DSP-ядра ELcore-26 существенно не отличается от ELcore-24. Модернизирован конвейер команд – он стал 4-стадийным: единую фазу формирования адреса и выборки инструкции разделили на две.
Однако структура контроллера в целом претерпела серьезные изменения (рис.6). Прежде всего, поскольку появились два независимых DSP-ядра, управляемых CPU, иной стала среда передачи данных внутри контроллера. Ее образуют шина RISC-контроллера CDB (соответствующая спецификации AHB) и коммутатор. Шина DMA (DDB) отсутствует. CPU по шине CDB без конфликтов с DMA обменивается данными с памятью CRAM, с системными регистрами, а также с регистрами таймеров (IT, WDT, RTT), DSP-ядер (DSP0, DSP1), линковых портов и контроллера PCI.
Коммутатор служит для передачи данных между Slave-устройствами (исполнители) – блоками внутренней памяти (CRAM, память DSP0 и DSP1) или внешней памяти, и Master-устройствами (задатчики) – регистрами CPU либо каналами DMA. Данные между любыми парами Slave-Master передаются параллельно и без конфликтов, за исключением попыток обмена через коммутатор с одним и тем же исполнительным устройством.
Еще одна особенность МС-0226 – в его состав входит контроллер PCI, обеспечивающий обмен между шиной PCI и любой областью внутренней или внешней памяти. Тактовая частота обмена с шиной PCI 32-разрядными словами – 66 МГц. Для обмена данными между шиной PCI и коммутатором в контроллере PCI предусмотрены два канала DMA (по одному для режимов Slave и Master работы шины PCI). Входящий в состав контроллера PCI арбитр шины обеспечивает подключение к ней до пяти устройств. В версии контроллера МС-0226G (1892ВМ5) предусмотрено два PCI-контроллера.
Сравнение производительности
Важно отметить, что контроллеры серии "Мультикор" отличаются чрезвычайно высокой эффективностью, что особенно заметно при их сравнении с DSP ведущих мировых производителей, прежде всего – компаний Texas Instruments (TI) и Analog Devices (ADI). В частности, контроллеры "Мультикор" обладают более высокой эффективностью программного кода. Это, в первую очередь, обусловлено меньшим, чем у конкурентов, числом стадий конвейера программ – 3–4 против 10, например у DSP Tiger SHARC 201s. В результате программный код контроллеров "Мультикор" оказывается значительно – до десяти раз – короче, чем для DSP TS201s или TMS320c64x (табл.4). Это не только снижает требования к объему встроенной памяти, которая является одним из основных ценообразующих факторов в современных процессорах. Существенно сокращается и число тактов, затрачиваемых на выполнение алгоритмов. В частности, моделирование примера реализации радиолокационного тракта на базе различных DSP, проведенное специалистами Рязанской государственной радиотехнической академии, показало, что если DSP TMS320c6701 (TI) затрачивает на решение данной задачи 68 тыс. тактов, TS101 и TS201 (ADI) – 60 тыс. и 43 тыс., соответственно, то контроллеру
МС-24 требуется всего 23 тыс. тактов.
По абсолютным временным показателям контроллеры "Мультикор" уже вполне конкурентоспособны с лидерами рынка при меньших тактовых частотах и более простой технологии изготовления (см. табл. 3). Так, контроллер МС-24, уступая TS201 по тактовой частоте в 6 раз, проигрывает последнему по скорости выполнения отдельных операций в 2–3 раза. Это говорит о том, что даже не достигая предельно возможных значений тактовой частоты, которую могут обеспечить глубокие субмикронные технологии, старшие представители процессоров семейства "Мультикор" по меньшей мере не уступят лучшим зарубежным аналогам компаний, имеющих собственное современное микроэлектронное производство, – что и подтверждается по мере появления новых контроллеров.
Отметим, что компания ЭЛВИС достигла серьезных успехов и в области разработки межпроцессорных коммутаторов, позволяющих создавать СБИС с относительно большим числом DSP-ядер и различных специализированных функциональных устройств. В результате компания может повышать производительность процессоров за счет архитектурных решений, избегая чрезвычайно дорогостоящей гонки за тактовой частотой.
Что дальше
Все рассмотренные контроллеры – это не проекты, а уже реальные приборы. Контроллеры МС-12 и МС-24 с приемкой "1" уже в продаже, с приемкой "5" они будут доступны с лета 2006 года. Получены и тестируются пилотные образцы контроллеров МС-0226. Немаловажно, что для всех сигнальных контроллеров созданы и поставляются программно-аппартные средства отладки (интегрированная среда разработки и отладки MCStudio) и постоянно обновляемые прикладные библиотеки.
Следующим шагом в развитии семейства "Мультикор" станет контроллер MCF-0428 (MultiForce) – СБИС на базе нового RISC-ядра с 64-разрядным сопроцессором с плавающей точкой, а также с четырьмя новыми DSP-ядрами ELcore-28 с архитектурой 2SIMD, 7-стадийным конвейером и тактовой частотой 400 МГц. MCF-0428 будет производиться по технологии 0,18 мкм. По предварительным планам, в его состав будут включены не менее четырех последовательных портов RapidIO (1x/4x Serial RapidIO, суммарная пропускная способность – 40 Гбит/с в дуплексе), один или два 64-разрядных порта DDR (200 МГц, суммарная пропускная способность — не менее 25,6 Гбит/с), два гиперлинка SpaceWire (каждый с быстродействием не менее 200 Мбит/с на расстоянии до 10 м) и 64-разрядный контроллер PCI. Изготовление тестовых образцов MCF-0428 планируется в 2006 году. Пока же успешно завершены испытания его технологического прототипа — контроллера МС-0128 с одним DSP-ядром ELcore-18 (с архитектурой SISD). При тактовой частоте 340 МГц он демонстрирует пиковую производительность порядка 1 Gflops.
В дальнейших планах – создание СБИС смешанной обработки сигналов, включающих 10–12 DSP-ядер. Правда, для этого потребуются уже технологии уровня 0,09–0,065 мкм.
Разработка процессоров для компании ЭЛВИС – не самоцель и далеко не единственное направление деятельности в области создания СБИС. Специалисты компании успешно разрабатывают семейства СБИС смешанной обработки, в том числе – аналого-цифровые программируемые и реконфигурируемые ИС, КМОП ИС для СВЧ-трактов широкополосных радарных и связных систем, ИС элементов системного сопряжения, мультимедийных и телекоммуникационных процессоров, микросхемы для космических применений и т.д.
Обладая опытом и технологическими возможностями создания СБИС типа "система на кристалле", а также отработанной в кремнии библиотекой различных функциональных узлов, оформленных в виде IP-блоков, компания ЭЛВИС способна в сжатые сроки создавать разнообразные специализированные СБИС, способные удовлетворить требованиям большинства отечественных заказчиков.
Электронная выставка "Антитеррор. Системы безопасности, связи и управления"
18–21 октября 2005 года в Москве прошел 9-й международный форум "Интерполитех-2005". Особым вниманием на выставке пользовались разработки средств обнаружения и защиты от взрывчатых веществ, системы видеонаблюдения, многофункциональные системы регистрации и борьбы с телефонным терроризмом. Наибольший интерес вызвали системные проекты и комплексы – аэростатный комплекс радиомониторинга, малогабаритный комплекс разведки и наблюдения в реальном масштабе времени с дистанционно пилотируемым летательным аппаратом "Пчела-1" (ОАО "Концерн радиостроения "Вега"), "Региональная система мониторинга и управления силами и средствами" (ФГУП "КБОР"), малогабаритный передатчик помех КВ-, УКВ- и ДЦВ-диапазонов (ОАО "Концерн "Созвездие"), обнаружитель взрывчатых веществ (ОАО "НИИ приборостроения им. В.В. Тихомирова").
Учитывая краткосрочность этого весьма значимого мероприятия, а также значительный научно-технический потенциал в данной области предприятий радиоэлектронной промышленности, в соответствии с поручением начальника Управления радиоэлектронной промышленности и систем управления Ю.И.Борисова была создана уникальная электронная экспозиция "Антитеррор. Системы безопасности, связи и управления". Экспозиция будет представлена в течение 270 дней на сайте предприятий радиоэлектронной промышленности и систем связи www.interpolitex.rasu.ru (www.imsrep.ru ). Посетители сайта смогут ознакомиться с продукцией таких ведущих предприятий отрасли, как ОАО "Концерн ПВО "Алмаз-Антей", ОАО "Концерн радиостроения "Вега", ОАО Концерн "Созвездие", ОАО "Авангард", ОАО "НИИ приборостроения им. В.В. Тихомирова" и многих других. К 21 октября с электронной экспозицией уже ознакомились более 1800 специалистов из 21 страны мира и 53 регионов России.
Приглашаем предприятия к сотрудничеству для установления новых перспективных бизнес-контактов.