|
Т. Солохина, Я. Петричкович, А. Глушков, Ю. Александров, В. Глушков, А. Семенович, А. Беляев, Ю. Грибов, В. Никольский, В. Силин, М. Алексеев, С. Бабичевский, В. Федин
Мультикор-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
Рисунок 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).
Рисунок 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 и имеет следующий вид:
где 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/
|
Примечания.
- Команды FMPY, FIN, FINR выполняются в блоке умножения, остальные - в арифметическом блоке, что должно учитываться при формировании параллельных операций.
- Округление к ближайшему целому снизу соответствует стандартному режиму округления к -бесконечности.
Пример программирования обработки в формате плавающей точки 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-разрядном слове (экспонента Е):
Мантисса 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.
Рисунок 3. Отладочная плата для ИМС MC-12
На рис. 4 приведена типовая схема применения ИМС Мультикор-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 с документацией.
Рисунок 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" - миниконфигурация двухпроцессорного однокристального сигнального контроллера с плавающей точкой.
|