Главная
Новости рынка
Рубрикатор



Архив новостей -->



 



   

Т. Солохина, Я. Петричкович, А. Глушков, Ю. Александров, В. Глушков, А. Семенович, А. Беляев, Ю. Грибов, В. Никольский, В. Силин, М. Алексеев, С. Бабичевский, В. Федин

Мультикор-12S - сигнальный контроллер с плавающей точкой для высокоточных встраиваемых применений

Как уже сообщалось (Chip News №7 2003 г.), ГУП НПЦ "ЭЛВИС" и центр проектирования ОАО "АНГСТРЕМ" завершили проектирование и успешно изготовили на зарубежной фабрике по 0,25-мкм технологии тестовые образцы первого отечественного сигнального контроллера миниконфигурации Мультикор-12S (MC-12S) с плавающей точкой для микроминиатюрных высокоточных встраиваемых применений. Мультикор-12S - это "система на кристалле", объединяющая на одном кристалле кремния два процессора: стандартный MIPS32 - совместимый контроллер и процессор цифровой обработки сигналов оригинальной архитектуры с плавающей точкой в формате IEEE754. Тестовые образцы данной микросхемы как первого прибора базовой серии Мультикор-12xx получены в июле 2003 г. Тактовая частота этих микросхем составляет 80 МГц. Микросхема размещена в корпусе QFP-208 и потребляет не более 1 Вт. Пиковая производительность DSP-ядра - 240 MFLOPs (IEEE754). Ожидается, что серийные образцы ИМС (МС-12xx) будут иметь производительность не менее 270–300 MFLOPs.

Мультикор-12xx - это базовая серия сигнальных контроллеров миниконфигурации с плавающей точкой для микроминиатюрных высокоточных встраиваемых применений. Новая интегральная микросхема (ИМС) содержит в своем составе стандартное RISC-ядро с системой команд MIPS32 и оригинальное, масштабируемое и программируемое ядро цифрового сигнального процессора с плавающей точкой - DSP-ядро (DSP - Digital Signal Processing) "ELcore12"TM (ELVEES’s core). DSP-ядро имеет 32-разрядную гарвардскую SISD- архитектуру (SISD - Single Instructions Single Data - один поток команд и один поток данных).

ИМС "Мультикор-12" сочетает в себе лучшее от обоих классов приборов: ИМС микроконтроллеров и ИМС цифровой обработки сигналов, что особенно важно для микроминиатюрных высокоточных встраиваемых применений, когда приходится решать в рамках ограниченных габаритов одновременно обе задачи: управления и обработки информации, включая сигналы и изображения. Важное дополнительное качество новой для пользователя микросхемы - возможность выбора оптимального для данного применения режима обработки, сбалансированного между пиковой производительностью и динамическим диапазоном обрабатываемых данных. Форматы обработки варьируются от байтных форматов с фиксированной точкой до высокоточных: стандартного формата с плавающей точкой (IEEE754) или длинного плавающего формата 32E16.

Кроме того, для разработчика системы впервые обеспечена уникальная возможность применения новых алгоритмов принятия решений в RISC-ядре на основе параллельно выполняемых процедур адаптивного анализа и обработки сигналов в DSP-ядре, что реализуется в пределах одной и той же микросхемы, и, что особенно важно, для сверхминиатюрных применений.

Для этих целей разработаны методы применения RLS/LNS алгоритмов, в частности, для адаптивных антенных решеток на базе ИМС платформы "МУЛЬТИКОР", формируемые в виде пакета прикладных программ.

Однотактное исполнение практически всех инструкций в обоих процессорных ядрах, минимальные скалярные задержки для сложных вычислений, привычный стандартный синтаксис ассемблера для DSP-ядра при возможности глубокого управления ресурсами его операционного блока, пиковые производительности, измеряемые сотнями миллионов операций с плавающей точкой - факторы, призванные обеспечить широкое применение новой отечественной ИМС.

Кристалл ИМС MC-12S имеет размеры 5x5 мм и размещается в пластиковом корпусе QFP-208. Серийные образцы этих микросхем будут размещаться в отечественном металлокерамическом корпусе "Монополия-208", а также в зарубежных пластиковых корпусах типа QFP-208 и PBGA-256. Основные технические характеристики тестовой ИМС сигнального микроконтроллера c плавающей точкой Мультикор-12S приведены в табл. 1.

Таблица 1. Основные технические характеристики тестовой ИМС сигнального микроконтроллера c плавающей точкой Мультикор-12S при нормальных условиях

Параметр Значение параметра
Технология изготовления Заказная КМОП СБИС, технологические нормы 0,25-мкм/5 металлов/3,3 В(периферия)/2,5 В (ядро)
Тактовая частота в нормальных условиях, МГц, не менее 80
RISC-ядро 32-разрядный MIPS32 совместимый процессор. Устройство управления памятью (MMU) на основе полностью ассоциативного буфера преобразования адресов (TLB), объемом 16 двойных ячеек. Поддержка ОС LINUX
DSP-ядро Оригинальное ЦПОС ядро ELcore-12 с плавающей и фиксированной точкой SISD-архитектуры. Аппаратная реализация стандарта с плавающей точкой IEEE754
Число каналов DMA 10
Разрядность программируемых таймеров 32
Режимы энергосбережения Несколько специальных архитектурных решений и режимов энергосбережения. Вход в режим программно, выход из режима по внешним прерываниям
Порт JTAG IEEE 1149.1, встроенные накристальные средства отладки Тестирование и отладка программ
Производительность RISC-ядра, млн.оп./с, не менее 80
Пиковая производительность DSP-ядра при нормальной температуре, млн.оп./с, не менее 240 – 32b арифметических операций с плавающей точкой (IEEE754)
Объем внутреннего ОЗУ данных RISC-ядра 12 Кбайт
Объем кэш-команд RISC-ядра 2 Кбайт
Объем внутреннего ОЗУ данных DSP-ядра 8 Кбайт
Объем внутреннего ОЗУ программ DSP-ядра 8 Кбайт
Рассеиваемая мощность, мВт, не более 1000- максимальная;
800- при неработающем DSP-ядре (режим Stop);
75- при программном уменьшении тактовой частоты в 16 раз;
5- при программном отключении тактовой частоты
Порты
Порт UART 16550
Байтные порты 2 (совместимые с ADSP21160)
Последовательные порты 2 (совместимые с ADSP21160)
Порт памяти поддержка статической памяти типа SRAM, FLASH, а также синхронной памяти типа SDRAM;
программное задание циклов ожидания;
4 внешних прерывания;
4 внешних запроса DMA
Система инструкций RISC-ядро- архитектурно подобно MIPS32, включая аппаратно поддерживаемое умножение и деление. DSP-ядро- оригинальное. RISC-подобная система инструкций. Стандартный формат плавающей точки IEEE 754. Форматы фиксированной и программно поддерживаемой плавающей точки двойной точности
Корпус QFP-208 (32x32 мм);
PBGA-256 (17x17 мм);
металлокерамический, 208 выводов ("Монополия-208", либо аналогичный ему)

В серийных образцах ИМС MC-12 планируется расширение внутренней памяти до 2 Мбит, а повышение тактовой частоты - до 90–100 МГц (будет уточнена по результатам измерений серийных образцов в I кв. 2004 г.). Кроме того, для этого типа ИМС, помимо QFP-208 (32x23 мм), планируется использование корпусов металлокерамического типа.

В микросхеме имеются несколько режимов энергосбережения:

  • перевод DSP-ядра в режим Stop;
  • программное изменение величины тактовой частоты;
  • программное отключение тактовой частоты. Включение тактовой частоты осуществляется по внешним прерываниям.

ИМС МС-12S разработана как система на кристалле на базе платформы "МУЛЬТИКОР", является 32-разрядным высокопроизводительным устройством и включает два процессорных ядра в своем составе: RISC-ядро (центральный процессор) и сопроцессор цифровой обработки сигналов с фиксированной и плавающей точкой (DSP-ядро).

RISC-ядро является 32-разрядным процессором, имеющим архитектуру и систему команд, подобно MIPS32. RISC-ядро содержит устройство управления памятью (MMU) на основе полностью ассоциативного буфера преобразования адресов (TLB), объемом 16 двойных ячеек.

Система команд DSP-ядра является стандартной, не уступающей по функциональности ЦПОС семейства SHARC (ADI). В нём обеспечено однотактное исполнение практически всех команд. Поэтому все базовые процедуры сигнальной обработки (фильтровые, спектрально-корреляционные и др.), программируются достаточно просто, в отличие от некоторых специализированных процессоров сигналов с глубоким конвейером фазы обработки данных.

Структура микросхемы МС-12S приведена на рис. 1:

  • процессорное RISC-ядро (RISC-core);
  • процессорное ЦПОС-ядро (DSP-core); DSP-ядро (ELcore-12xx) - программируемое масштабируемое DSP-ядро сопроцессора-акселератора c плавающей точкой минимальной вычислительной мощности с архитектурой SISD (Single Instruction Single Data);
  • ядро 10-канального контроллера DMA (Direct Memory Access);
  • 32-разрядный порт памяти MPORT (Memory Port);
  • ядро контроллера прерывания (INTctr - Interrupt controller);
  • ядро 32-разрядного таймера (TIMER);
  • ядро фазовой автоподстройки частоты (PLL);
  • ядро интервального таймера - (IT);
  • ядро сторожевого таймера (WDT);
  • ядро таймера реального времени (RTT);
  • встроенные средства отладки программ с интерфейсом JTAG OnCD (On Chip Debugger);
  • внутренняя память (в серийных образцах составит не менее 2 Mбит):
    • двухпортовое ОЗУ RISC-ядра объемом 12 Кбайт (RAM);
    • КЭШ инструкций RISC-ядра (ICACHE) объемом 2 Кбайта;
    • ОЗУ данных DSP-ядра объемом 8 Кбайт;
    • ОЗУ программ DSP-ядра объемом 8 Кбайт;
  • внешние интерфейсы:
    • A(31:0) - шина адреса порта внешней памяти;
    • D(31:0) - шина данных порта внешней памяти;
    • UART - универсальный асинхронный порт;
    • 2 последовательных порта (совместимых с портами ADSP21160, ADI);
    • 2 линковых порта (совместимых с портами ADSP21160, ADI);
  • внутренние интерфейсы (на базе стандартных шин AMBA):
    • RDB(31:0) - шина данных RISC-ядра;
    • DDB(31:0) - шина данных DMA

Структура МС-12S
Рисунок 1. Структура МС-12S

Шины передачи данных RDB и DDB реализованы в соответствии со спецификацией шины AHB (Advanced High-performance Bus) архитектуры AMBA (Advanced Microcontroller Bus Architecture). RISC-ядро является ведущим в двухпроцессорной конфигурации и выполняет основную программу. Для RISC-ядра обеспечен доступ к следующим ресурсам DSP-ядра, являющегося ведомым по отношению к RISC-ядру: обмен данными RISC-ядра с ресурсами DSP-ядра выполняется по командам LOAD, STORE. Память DSP-ядра и его регистры для RISC-ядра 32-разрядные (словные), то есть состояние двух младших разрядов адреса игнорируется.

RISC-ядро управляет работой DSP-ядра посредством передачи ему задания (макрокоманды) с последующим запуском DSP-ядра (перевод из режима STOP в режим RUN). С другой стороны, DSP-ядро формирует следующие прерывания в RISC-ядро:

  • программное;
  • по переполнению стека;
  • при выполнении команды STOP;
  • при достижении адреса останова при исполнении программы до адреса останова или завершении требуемого числа шагов при пошаговом исполнении программы.

Назначение и функции выводов микросхемы МС-12S

Мультикор-12S имеет следующие типы выводов:

  • порт внешней памяти - 89;
  • управление - 20;
  • 2 последовательных порта - 12;
  • 2 линковых порта - 20;
  • UART - 6;
  • электропитание - 32.

Описание выводов MC-12 приведено в табл. 2-7.

Таблица 2. Порт внешней памяти

Название вывода Количество Тип Назначение
A[31:0] 32 O Шина адреса
D[31:0] 32 IO Шина данных
nWR[3:0] 4 O Запись байтов асинхронной памяти
nWE 1 O Запись асинхронной памяти
nRD 1 O Чтение асинхронной памяти
nACK 1 I Готовность асинхронной памяти
nCS[3:0] 4 O Разрешение выборки банков памяти
SRAS 1 O Строб адреса строки
SCAS 1 O Строб адреса колонки
SWE 1 O Разрешение записи
DQM[3:0] 4 O Маска выборки байта
SCLK 1 O Тактовая частота работы
CKE 1 O Разрешение частоты
A10 1 O 10 разряд адреса
BA[1:0] 2 O Номер банка
nFLYBY 1 O Признак режима передачи DMA "Flyby"
nOE 1 O Разрешение чтения внешнего устройства
Всего 89 выводов

Таблица 3. Управление

Название вывода Количество Тип Назначение
nDMAR[3:0] 4 I Запрос канала DMA
NMI 1 I Немаскируемое прерывание
nIRQ[3:0] 4 I Запросы прерывания
BYTE 1 I Разрядность шины данных сегмента 3 внешней памяти:
0–32 разряда;
1–8 разрядов
PLL_EN 1 I Разрешение работы PLL
XTI, XTO 1 I,O Сигнал тактовой частоты
RTC_XTI 1 I Сигналы частоты реального времени
nRST 1 I Сигнал установки исходного состояния
TCK 1 I Тестовый тактовый сигнал (JTAG)
TRST 1 I Установка исходного состояния (JTAG)
TMS 1 I Выбор режима теста (JTAG)
TDI 1 I Вход данных теста (JTAG)
TDO 1 0 Выход данных теста (JTAG)
Всего 20 выводов

Таблица 4. Последовательные порты (2 штуки)

Название вывода Количество Тип Назначение
DT 1 O Передаваемые данные
DR 1 I Принимаемые данные
TCLK 1 IO Частота передачи
RCLK 1 IO Частота приема
TFS 1 IO Синхронизация передачи
RFS 1 IO Синхронизация приема
Всего 6x2 = 12 выводов

Таблица 5. Линковые порты (2 штуки)

Наименование сигнала Количество Тип Назначение
LDAT 8 IO Шина данных
LCLK 1 IO Синхронизация
LACK 1 IO Подтверждение
Всего 10x2 = 20 выводов

Таблица 6. UART

Наименование сигнала Количество Тип Назначение
SIN 1 I Вход последовательных данных
SOUT 1 O Выход последовательных данных
NDTR 1 O Готовность UART к установлению связи (Data Terminal Ready)
NRTS 1 O Готовность UART к обмену данными (Request To Send)
NCTS 1 I Готовность модема к обмену данными (Clear To Send)
NDSR 1 I Готовность модема к установлению связи (Data Set Ready)
Всего 6 выводов

Таблица 7. Электропитание

Название вывода Количество Тип Назначение
VDD 7 I Напряжение электропитания ядра
DVDD 8 I Напряжение электропитания выходных драйверов
PVDD 1 I Напряжение электропитания PLL
GND 15 I Земля ядра, входных и выходных драйверов
PGND 1 I Земля PLL
Всего 32 вывода

На рис. 2 представлен чертеж корпуса ИМС МС-12S (QFP-208).

Чертеж корпуса микросхемы MC-12S
Рисунок 2. Чертеж корпуса микросхемы MC-12S

Нумерация выводов микросхемы MC-12S в корпусе QFP-208 приведена в табл. 8.

Таблица 8. Нумерация выводов MC-12S в корпусе QFP-208

Номер вывода Название вывода Номер вывода Название вывода Номер вывода Название вывода Номер вывода Название вывода
1 - 53 - 105 - 157 -
2 - 54 - 106 - 158 -
3 - 55 - 107 - 159 -
4 A[31] 56 D[26] 108 nCS[0] 160 DR0
5 A[30] 57 D[25] 109 SRAS 161 TCLK0
6 A[29] 58 D[24] 110 SCAS 162 RCLK0
7 A[28] 59 D[23] 111 SWE 163 TFS0
8 A[27] 60 D[22] 112 DQM[3] 164 RFS0
9 PVDD 61 VDD 113 VDD 165 VDD
10 PGND 62 GND 114 GND 166 GND
11 A[26] 63 D[21] 115 DQM[2] 167 DT1
12 A[25] 64 D[20] 116 DQM[1] 168 DR1
13 A[24] 65 D[19] 117 DQM[0] 169 TCLK1
14 A[23] 66 D[18] 118 SCLK 170 RCLK1
15 A[22] 67 D[17] 119 CKE 171 TFS1
16 A[21] 68 D[16] 120 A10 172 RFS1
17 A[20] 69 D[15] 121 BA[1] 173 LDAT0[7
18 A[19 70 D[14] 122 BA[0] 174 LDAT0[6]
19 A[18] 71 D[13 123 nFLYBY 175 LDAT0[5]
20 VDD 72 PVDD 124 PVDD 176 VDD
21 GND 73 PGND 125 PGND 177 GND
22 A[17] 74 D[12] 126 nOE 178 LDAT0[4]
23 A[16] 75 D[11] 127 nDMAR[3] 179 LDAT0[3]
24 A[15] 76 D[10] 128 nDMAR[2] 180 LDAT0[2]
25 A[14] 77 D[9] 129 nDMAR[1] 181 LDAT0[1]
26 A[13] 78 D[8] 130 nDMAR[0] 182 LDAT0[0]
27 A[12] 79 D[7] 131 NMI 183 LCLK0
28 A[11] 80 D[6] 132 nIRQ[3] 184 LACK0
29 A[10] 81 D[5] 133 nIRQ[2] 185 LDAT1[7]
30 A[9] 82 D[4] 134 nIRQ[1] 186 LDAT1[6]
31 PVDD 83 VDD 135 AVDD 187 PVDD
32 PGND 84 GND 136 AGND 188 PGND
33 A[8] 85 D[3] 137 nIRQ[0] 189 LDAT1[5]
34 A[7] 86 D[2] 138 BYTE 190 LDAT1[4]
35 A[6] 87 D[1] 139 PLL_EN 191 LDAT1[3]
36 A[5] 88 D[0] 140 XTI 192 LDAT1[2]
37 A[4] 89 nWR[3] 141 XTO 193 LDAT1[1]
38 A[3] 90 nWR[2] 142 RTCXTI 194 LDAT1[0]
39 A[2] 91 nWR[1] 143 PLL_OUT 195 LCLK1
40 A[1] 92 nWR[0] 144 nRST 196 LACK1
41 A[0] 93 nWE 145 TCK 197 SIN
42 PVDD 94 PVDD 146 VDD 198 VDD
43 PGND 95 PGND 147 GND 199 GND
44 D[31] 96 nRD 148 TRST 200 SOUT
45 D[30] 97 nACK 149 TMS 201 nDTR
46 D[29] 98 nCS[3] 150 TDI 202 nRTS
47 D[28] 99 nCS[2] 151 TDO 203 nCTS
48 D[27] 100 nCS[1] 152 DT0 204 nDSR
49 - 101 - 153 - 205 nDSR
50 - 102 - 154 - 206 -
21 - 103 - 155 - 207 -
52 - 104 - 156 - 208 -

Архитектура RISC-ядра

RISC-ядро является 32-разрядным процессором с архитектурой, подобной стандартной архитектуре MIPS32. Его системой команд является система команд MIPS32 ISA (Instruction Set Architecture).

RISC-ядро содержит устройство управления памятью (MMU) на основе полностью ассоциативного буфера преобразования адресов (TLB), объемом 16 двойных ячеек.

Реализация конвейера RISC-ядра аналогична микропроцессору R3000A (IDT).

Управление памятью (Memory Management)

RISC-ядро поддерживает три режима работы:

  • режим User;
  • режим Kernel;
  • режим Debug.

Режим User используется для прикладных программ.

Режим Kernel обычно используется для обработки исключений и для выполнения привилегированных системных функций, включая управление сопроцессором CP0.

Режим Debug используется для отладки программного обеспечения совместно с JTAG-отладчиком. В данном режиме RISC-ядро остановлено. Режим Debug реализован аппаратно. RISC-ядро не поддерживает функций EJTAG MIPS32, которые являются дополнительными, не обязательными для реализации. Карта виртуальной памяти RISC-ядра аналогична MIPS32. RISC-ядро не поддерживает программного режима Debug, поэтому сегмента dseg не существует.

Преобразование виртуальных адресов в физические выполняется в режимах FM (Fixed Mapped) и TLB подобно MIPS32 4K. Режим преобразования определяется состоянием бита FM системного регистра CSR.

RISC-ядро содержит полностью ассоциативный буфер TLB (Translation Look aside Buffer) объемом 16 двойных ячеек. Размер страницы может изменяться от 4 Кбайт до 16 Мбайт.

КЭШ программ (ICACHE)

Кэш программ RISC-ядра (ICACHE) имеет следующие основные характеристики:

  • direct-mapped;
  • индексирование по физическому адресу;
  • контроль по физическому Тэгу;
  • длина строки - 16 байт (4 32-разрядных слова);
  • бит действительности (valid) бит для каждой строки;
  • объем - 2 КБайт (16 КБайт - в серийной микросхеме).

Регистры сопроцессора CP0

В табл. 9 приведен перечень регистров сопроцессора CP0, реализованных в RISC-ядре.

Таблица 9. Перечень регистров сопроцессора CP0, реализованных в RISC-ядре

Условное обозначение Назначение
Index Индекс для матрицы TLB
Random Индекс для матрицы TLB, сгенерированный случайным образом
EntryLo0 Младшая часть вхождения TLB для четных виртуальных страниц
EntryLo1 Младшая часть вхождения TLB для нечетных виртуальных страниц
Context Указатель на PTE
PageMask Управление размером страницы во вхождениях TLB
Wired Управление номером фиксированных вхождений TLB
BadVAddr Содержит адрес для последнего, адресно-связанного исключения
Count Счетчик процессорных циклов
EntryHi Старшая часть вхождения TLB
Compare Управление прерыванием от таймера
Status Регистр состояния
Cause Код причины последнего исключения
EPC Виртуальный адрес команды (состояние программного счетчика PC), вызвавшей исключени
PRId Идентификатор версии процессора
Config Конфигурационный регистр
Config1 Конфигурационный регистр 1
LLAddr Содержит физический адрес, по которому выполняется последняя команда LL
ErrorEPC Содержит состояние PC в момент возникновения последнего исключения по ошибке

Обработка исключений

В RISC-ядре обработка исключений выполняется подобно MIPS32.

RISC-ядро поддерживает следующие типы исключений:

  • Reset (установка исходного состояния), NMI (немаскируемое прерывание), маскируемое прерывание;
  • исключения по выполнению команд SYSCALL, BREAK;
  • исключения, связанные с TLB: Machine Check, TLB miss, TLB Mod;
  • неправильное формирование адреса;
  • арифметическое переполнение, выполнение резервной команды.

Система команд

RISC-ядро реализует следующие типы команд (всего 100 команд):

  • команды обмена данными с памятью Load, Store (15 команд);
  • арифметические и логические команды (26 команд);
  • команды умножения и деления, в том числе умножение с накоплением (13 команд);
  • команды Branch, Jump (20 команд);
  • команды управления сопроцессором CP0 (8 команд);
  • специальные команды SYSCALL, BREAK, ERET, TRAP и т.д. (18 команд).

Особенности обработки данных в форматах с плавающей точкой в DSP-ядре

DSP-ядро МС-12 имеет расширенные возможности по динамическому диапазону обрабатываемых данных, позволяющие обрабатывать данные в 8/16/32-разрядных форматах с фиксированной точкой, либо в одном из форматов с плавающей точкой - 24Е8 (стандарт IEEE 754) или 32Е16 (расширенный формат с плавающей точкой) - и осуществлять при этом компромиссный выбор между точностью и производительностью. Основной формат плавающей точки 24E8 полностью поддерживается аппаратно, расширенный - программно и аппаратно.

32-разрядный формат с плавающей точкой 24E8

32-разрядный формат с плавающей точкой 24E8 соответствует спецификации IEEE-754 и имеет следующий вид:

31 30            23 22            0
s e f

где s - знак числа (используется прямой код со знаком); e - экспонента числа со смещением +127; f - дробная часть мантиссы числа.

Численное значение числа в формате плавающей точки:

X = (-1)s·2E·F,

где E = e-127 - экспонента без смещения; F = 1,0 + f/223 - полная мантисса. F 1,0, то есть мантисса может быть только нормализованной. Бит, соответствующий 1,0, "умалчивается".

В табл. 10 приведены команды для обработки основного формата плавающей точки 24E8.

Таблица 10. Команды для обработки основного формата плавающей точки 24E8

Команда Признаки
N Z V
Пояснение
1 FTST S +  +  + Формирование признаков числа S
2 FMPY S1,S2,D +  +  + Перемножение D = S1·S2
3 FADD S1,S2,D +  +  + Сложение D = S1+S2
4 FSUB S1,S2,D +  +  + Вычитание D = S2–S1
5 FAS S1,S2,D +  +  + Сложение и вычитание: D = S2+S1, S2новое = S2–S1
6 FINT S,D +  +  + Округление S к ближайшему целому числу (для остатка 0,5 - к четному), запись в D в формате плавающей точки
7 FLOOR S,D +  +  + Округление S к ближайшему целому снизу, запись в D в формате плавающей точки
8 CVFI S,D +  +  + Преобразование формата числа из плавающей точки (S) в целочисленный 32-разр. в дополнительном коде (D)
9 CVIF S,D +  +  - Преобразование формата числа из целочисленного 32-разр. в дополнительном коде (S) в плавающую точку (D)
10 FIN S,D +  +  + 0-я итерация обратной величины D = 1,0/S
11 FINR S,D +  +  + 0-я итерация обратной величины от квадратного корня D = 1,0/

Примечания.

  1. Команды FMPY, FIN, FINR выполняются в блоке умножения, остальные - в арифметическом блоке, что должно учитываться при формировании параллельных операций.
  2. Округление к ближайшему целому снизу соответствует стандартному режиму округления к -бесконечности.

Пример программирования обработки в формате плавающей точки 24Е8 - Гильберт-фильтрация

Гильберт-фильтрация - формирование квадратурной компоненты действительного сигнала (врезка).

Врезка

    CLRL R8 (A0)+I0,R2 (AT)+IT,R0 Сброс Q Загрузка X, G
  FMPY R0,R2,R4   (A0)+I0,R2 (AT)+IT,R0 P=X*G Загрузка X, G
  DO 30,Lg       Цикл по 30  
Lg: FMPY R0,R2,R4 FADD R4,R8,R8 (A0)+I0,R2 (AT)+IT,R0 P=X*G Q=Q+P Загрузка X, G
  FMPY R0,R2,R4 FADD R4,R8,R8     P=X*G Q=Q+P Загрузка X, G
    FADD R4,R8,R8 R10,(A0)+   Q=Q+P Ввод Х
      MOVE R8,(A1)+   Запись результата Q
  STOP          

Входной сигнал (X) вводится по 1-му отсчету после каждого цикла фильтрации и хранится в 64-элементном кольцевом буфере.

Полный отклик фильтра Гильберта имеет 64 коэффициента, из них половина - ненулевых. Они хранятся в 32-элементном кольцевом буфере (G).

Результаты фильтрации накапливаются в выходном линейном буфере (Q).

Массив X адресуется генератором А0 c индексом I0 = 2 (для пропуска нулевых коэффициентов отклика) и модульным регистром M0 = 63, обеспечивающим циклическую адресацию буфера.

Массив G адресуется генератором AT с индексом IT = 1 и модульным регистром MT = 31.

Массив Q адресуется генератором A1 c единичным инкрементом.

Вычисления выполняются в формате плавающей точки.

Чтение отсчетов X и G, перемножение (P = XґG) и накопление произведений (Q = Q+P) выполняются за один такт. Поэтому главный программный цикл состоит из одной параллельной команды.

Начальная задержка вычислений - 3 такта. Быстродействие - 1 такт на ненулевой отвод фильтра.

Расширенный формат с плавающей точкой (32E16)

DSP-ядро программно-аппаратным способом поддерживает также обработку чисел в расширенном формате плавающей точки 32E16.

Формат с плавающей точкой размещается в 32-разрядном слове (мантисса F) и в 16-разрядном слове (экспонента Е):

31 F 0
15          E          0

Мантисса F: 32-разрядное число в дробном формате в дополнительном коде. Нормальное состояние мантиссы - нормализованное.

Экспонента E: 16-разрядное целое число в дополнительном коде.

Численное значение числа в формате плавающей точки:

X = 2E·F.

В табл. 11 приведен параметр продолжительности (в числе тактов) выполнения арифметических операций в формате расширенной плавающей точки 32Е16.

Таблица 11. Продолжительность выполнения арифметических операций в формате расширенной плавающей точки 32Е16

Операция в формате 32Е16 Число тактов
Сложение 5
3 (без нормализации результата)
Вычитание 6
5 (без округления)
4 (без нормализации результата)
3 (без округления и нормализации)
Сложение и вычитание одной пары операндов 9
8 (без округления)
5 (без нормализации результата)
4 (без округления и нормализации)
Умножение 4
2 (без нормализации результата)

Порт JTAG и встроенные аппаратные средства отладки программ

Сигнальный микроконтроллер МС-12S имеет встроенные аппаратные средства отладки OnCD (On Chip Debugger), доступ к которым производится через JTAG-порт, реализованный в полном соответствии со стандартом IEEE 1149.1 (IEEE Standard Test Access Port and Boundary-Scan Architecture).

OnCD предоставляет пользователю возможность по заданным через JTAG-порт условиям остановить:

  • RISC-ядро, при этом по завершении выполнения в RISC текущей команды останавливаются все активные компоненты МС-12, такие как DSP и DMA;
  • DSP-ядро с возможностью продолжения работы или остановки RISC-ядра.

В качестве условий останова RISC-ядра могут быть:

  • обращение к памяти по записи или по чтению информации в заданном диапазоне адресов или при совпадении с заданными двумя адресами;
  • выполнение команд с адресами в заданном диапазоне или при совпадении с заданными двумя адресами;
  • выполнение команды с заданным адресом или обращение к памяти по записи или по чтению информации по заданному адресу;
  • вызов исполняемой программой любого из заданных векторов исключений (прерываний) или их совокупности;
  • выполнение специальной команды перехода МС-12 в отладочный режим;
  • выполнение заданного числа команд;
  • останов DSP;
  • требование перехода в отладочный режим со стороны JTAG-порта.

В свою очередь, условиями останова DSP-процессора могут быть:

  • выполнение команды с заданным адресом;
  • выполнение заданного числа команд.

После останова RISC-ядра или DSP-ядра имеется возможность с помощью OnCD визуализировать (или изменить) состояние всех архитектурных элементов MC-12, которые проецируются во всём адресном пространстве памяти системы или доступны посредством выполнения команд в RISC-процессоре в режиме kernel, и продолжить выполнение программы:

  • только в RISC-процессоре при остановленном DSP;
  • только DSP при остановленном RISC-процессоре;
  • совместное выполнение программ RISC и DSP.

Перечисленные условия останова МС-12S, возможность в режиме отладки выполнения команды RISC по одному такту продвижения команды в конвейере, а также доступность всего адресного пространства в состоянии останова, дают возможность использовать OnCD и JTAG-порт для построения эффективных отладчиков программ и систем.

OnCD имеет программный интерфейс (JTAG-отладчик) с интегрированной средой разработки и отладки программ MC-12S. Это позволяет проводить разработку программного обеспечения в реальном масштабе времени.

Фотография отладочной платы для микросхемы Мультикор-12S приведена на рис. 3.

Отладочная плата для ИМС MC-12
Рисунок 3. Отладочная плата для ИМС MC-12

На рис. 4 приведена типовая схема применения ИМС Мультикор-12.

Типовая схема применения ИМС Мультикор-12
Рисунок 4. Типовая схема применения ИМС Мультикор-12

На рис. 4 использованы следующие обозначения:

FLASH - постоянное запоминающее устройство типа FLASH;
SDRAM - синхронное динамическое оперативное запоминающее устройство (ОЗУ);
SRAM - статическое ОЗУ;
Interrupt - запросы прерывания;
DAC/ADC - цифро-аналоговые и аналого-цифровые преобразователи;
LINK DEVICE - устройства, подключаемые к линковым портам;
SERIAL DEVICE - устройства, подключаемые к последовательным портам;
RS-232 Buffer - приемо-передатчики RS-232;
Config - схема задания конфигурации;
RESET - узел формирования сигнала установки исходного состояния.

MC-12XX не только не уступает по своим возможностям лучшим зарубежным ИМС с плавающей точкой, но и превосходит их при сопоставлении по типовым процедурам сигнальной обработки c фиксированной и плавающей точкой (табл. 12 и 13).

Таблица 13. Сравнение цифровых сигнальных контроллеров с плавающей точкой миниконфигурации MC-12XX, мидиконфигурации МС-02xx и MC-Fxx (ГУП НПЦ "ЭЛВИС") с цифровыми процессорами сигналов семейства SHARC ADSP-21160N и TigerSHARC TS201 (ADI)

Формат плавающей точки, стандарт IEEE 754 MC-12xx 100 МГц 0,25-мкм/2,5 В *) MC-02xx 100 МГц 0,25-мкм/2,5 В MC-Fxx 200 МГц 0,25-мкм/2,5 В *) ADSP- 21160N 95 МГц 0,18-мкм/1,8 В Tiger SHARC TS201 600 МГц 0,13-мкм/1,2 В
Пиковая производительность 300 MFLOP/s 1200 MFLOP/s 2400 MFLOP/s 570 MFLOP/s 3600 MFLOP/s
БПФ-1024, комплексное, формат плавающей точки стандарт IEEE 754 210 мкс 53 мкс 26,5 мкс 97 мкс 16,77 мкс
БПФ-256, комплексное, формат плавающей точки стандарт IEEE 754 44 мкс 11 мкс 5,5 мкс    
БПФ-256, комплексное, формат (16+j16), блочная плавающая точка 21 мкс 5,3 мкс 2,7 мкс    
Свертка (MAC-процедура), IEEE 754 100 MMAC/s 400 MMAC/s 800 MMAC/s 190 MMAC/s  
Нерекурсивный фильтр (на отвод) 10 нс 2,5 нс 1,25 нс 5,2 нс 0,83 нс
Нерекурсивный комплексный фильтр (на отвод) 40 нс 10 нс 5 нс 5,2 нс 3,33 нс
Рекурсивный фильтр (на биквадратное звено) 40 нс 10 нс 5 нс 21 нс 2,33 мкс
Матричное умножение:
[3x3]*[3x1] 90 нс 23 нс 11 нс 47 нс  
[4x4]*[4x1] 160 нс 40 нс 20 нс 83 нс  
[8x8]*[8x8] 5,6 мкс 1,4 мкс 0,7 мкс    
Деление (y/x) 100 нс 25 нс 12,5 нс 31 нс  
Обратная величина квадратному корню 120 нс 30 нс 15 нс 47 нс  
Декодер Витерби, на одну метрику пути, 16b формат 10 нс 2,5 нс 1,25 нс    
БП Уолша – Адамара -256, комплексное, формат (16+j16), блочная плавающая точка 11 мкс 3 мкс 1,5 мкс    

*) ожидаемые предварительные параметры для нормальных условий эксплуатации. Будут уточнены по результатам измерений серийных образцов ИМС в I кв. 2004 г.

Сравнение DSP-ядра "ELcore-14" (в составе ИМС МС-12xx) и TMS320C54x (ТI) выполнено в табл. 12.

Как показывают результаты предварительных синтезов для перспективной модификации ИМС серии "Мультикор" МС-Fxx для 0,25-мкм и 0,18-мкм технологий, её реализация даже по 0,25-мкм технологии и, тем более, по 0,18-мкм технологии (с дополнительной архитектурной модификацией DSP-ядра) позволит получить характеристики, сравнимые с ИМС TigerSHARC TS201 (600 МГц/ 0,13-мкм/1,2 В).

Важно отметить, что при этом не будет использован 12-уровневый конвейер, реализованный в ИМС TigerSHARC TS201, что обеспечивает ещё дополнительные резервы для модификации ИМС MC-Fxx.

Об этой же самой возможности достижения высоких характеристик для ИМС серии "Мультикор", по сравнению с зарубежными аналогами, реализованными на одну ступень лучшей технологии (к примеру, 0,18-мкм к 0,25-мкм), свидетельствует и другое сравнение в приведенной выше таблице. Оно выполнено для ИМС MC-02xx (100 МГц/0,25-мкм /2,5 В) разработки ГУП НПЦ "ЭЛВИС" и ADSP-21160N (95 МГц/0,18-мкм /1,8 В) разработки ADI.

Средства разработки и отладки программ ИМС платформы "МУЛЬТИКОР"

В состав инструментального программного обеспечения платформы "МУЛЬТИКОР" входят:

  • интегрированная среда разработки и отладки программ под OS WIN/LINUX ("MCStudio");
  • компилятор языка С, ассемблеры RISC- и DSP-ядер, линковщики и программные утилиты;
  • программный симулятор ИМС;
  • отладчик, обеспечивающий отладку на языке программы и в коде RISC- и DSP-ядер на симуляторе или через JTAG на прототипе или ИМС.

Software Development Kit (SDK) для разработки пользовательских систем на базе ИМС платформы "Мультикор"

В состав SDK (рис. 5) входят:

  • плата модуля эмулятора сигнальных контроллеров "Мультикор" МС-11xx /12xx/23xx/01xx/02xx с файлами Virtex-конфигураций серий; программный драйвер модуля работает под ОС Windows®NT/LINUX;
  • источник электропитания типа ATX;
  • кабель для подключения модуля к параллельному порту персонального компьютера (PC);
  • кабель для подключения модуля к последовательному порту PC (RS-232C);
  • кабель для загрузки конфигурации в ПЛИС;
  • CDROM с документацией.

SDK платформы «МУЛЬТИКОР»
Рисунок 5. SDK платформы «МУЛЬТИКОР»

Содержимое CDROM:

  • интегрированная среда разработки и отладки программ "MCStudio" под ОС Windows®NT/LINUX;
  • инструкция по эксплуатации MCStudio;
  • руководство программиста MCStudio;
  • руководство системного программиста;
  • набор системных и прикладных библиотек базовой конфигурации;
  • модуль эмулятора Centaurus 2K2. Инструкция по эксплуатации;
  • Bitfile прототипа ИМС серии Мультикор-хх (по договоренности);
  • процессорное ядро RISCorE32-xx. Руководство пользователя;
  • процессорное ядро RISCorE32-xx. Система команд;
  • процессорное ядро ELcore-xx. Система команд;
  • процессорное ядро ELcore-xx. Руководство пользователя.

Цена поставляемого комплекта SDK - договорная. В стоимость поставки включается двухдневный курс обучения двух специалистов Заказчика работе с SDK c предоставлением им возможности проживания в гостинице г. Зеленограда на период обучения.

Следующие перспективные разработки ИМС "Мультикор" с плавающей точкой - базовые серии сигнальных контроллеров мидиконфигурации с плавающей точкой МС-24xx и серия МС-02xx для высокопроизводительных и высокоточных систем обработки информации.

В состав ИМС обеих серий входит ядро "ELcore-14xx" - программируемое масштабируемое DSP-ядро сопроцессора-акселератора, аналогичное использованному в ИМС МС-12xx. Ядро обеспечивает эффективную обработку данных не только в формате с плавающей, но и с фиксированной точкой. В связи с решением протестировать ядро DSP с плавающей точкой на приборе минимальной конфигурации, а также с заказами от нескольких десятков фирм на использование, в первую очередь, ИМС МС-12xx, запланированный запуск для получения тестовых образцов МС-02S был передвинут разработчиками на несколько месяцев вперед.

Однако успешное изготовление образцов ИМС МС-12S позволяет планировать получение серийных образцов в I квартале 2004 года для другой ИМС с плавающей точкой - МС-24xx, так как ИМС МС-12S является тестовой как для ИМС МС-24xx, так и для ИМС MC-02xx.

Ожидаемая производительность ИМС МС-24xx составит около 600 млн. операций с плавающей точкой в секунду в формате IEEE754, а её структура соответствует 2SIMD-расширению ядра "ELcore-14xx".

Можно также, не дожидаясь серийных образцов ИМС МС-12xx/MC-24xx/MC-02xx, использовать Инструментальное ПО ИМС серий "Мультикор" и с его помощью успешно отлаживать прикладные пользовательские программы, сразу ориентированные на перспективную отечественную элементную базу.

Такую возможность предоставляют программные Симуляторы или Virtex-прототипы чипов, тем более, что демонстрационной версией МСStudio воспользовались уже почти 70 российских фирм. CD с МСStudio доступен бесплатно всем желающим, а условия его получения - по контактному адресу.

Все сказанное позволяет начинать уже сегодня проектирование принципиально новой отечественной РЭА на базе импортозамещающих базовых отечественных серий ИМС "Мультикор", среди которых первая - ИМС "Мультикор-12xx" - миниконфигурация двухпроцессорного однокристального сигнального контроллера с плавающей точкой.







Реклама на сайте
тел.: +7 (495) 514 4110. e-mail:admin@eust.ru
1998-2014 ООО Рынок микроэлектроники