Шумахер У. Полупроводниковая электроника
.pdfINFSEMI_2-Text.fm, стр. 302 из 589 (September 3, 2010, 17:05)
302 7. Микроконтроллеры
16
16
8
|
32 |
16 |
|
Внутреннее |
|
|
|
|
|
|
|
ПЗУ |
Процессорное ядро |
16 |
Внутреннее |
|
|
||
|
|
ОЗУ |
|
|
|
|
|
|
16 |
|
|
16
Тактовый
генератор
Порт 0
|
|
|
|
Контроллер |
|
|
|
||
|
1 |
|
|
внешней |
|
|
|
шины |
|
|
Порт |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Порт 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
PEC
Сторожевой
таймер
Контроллер прерываний
16
GPT1 |
ASC |
SSC |
|
(USART) |
|
T2 |
T3 |
T4 |
GPT2
T5 |
|
|
T6 |
BRG |
BRG |
Порт 6 |
Порт 5 |
Порт 3 |
Порт 2 |
8 |
6 |
15 |
8 |
Рис. 7.28. Функциональная схема C165.
INFSEMI_2-Text.fm, стр. 303 из 589 (September 3, 2010, 17:05)
7.3. Шестнадцатибитные микроконтроллеры 303
16
16
8
|
32 |
16 |
|
Внутреннее |
|
|
|
|
|
|
|
ПЗУ |
Процессорное ядро |
16 |
Внутреннее |
|
|
||
|
|
ОЗУ |
|
|
|
|
|
|
16 |
|
|
|
16 |
PEC |
Сторожевой |
|
|
||
|
|
|
|
|
|
|
таймер |
Тактовый |
|
Контроллер прерываний |
|
|
|
|
|
генератор |
|
|
|
с ФАПЧ |
|
|
16 |
SSP |
GPT1 |
ASC |
|
|
(USART) |
0 |
|
|
|
Порт |
|
T2 |
|
|
|
||
|
Контроллер |
T3 |
|
|
|
||
1 |
внешней |
T4 |
|
шины |
|||
Порт |
|
||
|
GPT2 |
||
|
|
4 |
|
T5 |
|
|
|
|
|
Порт |
BRG |
T6 |
BRG |
|
|
|
Порт 6 |
Порт 5 |
Порт 3 |
Порт 2 |
8 |
6 |
15 |
8 |
Рис. 7.29. Функциональная схема C163.
INFSEMI_2-Text.fm, стр. 304 из 589 (September 3, 2010, 17:05)
304 7. Микроконтроллеры
XTAL
CAN_RxD
P4.5/
CAN_TxD
P4.6/
16
6
Внутреннее |
|
Процессорное ядро С166 |
|
|
|
однократно |
Команды/ |
|
|
|
|
|
|
|
|
||
программи- |
данные |
32 |
|
|
|
руемое |
|
|
|
16 |
|
ПЗУ, 64К |
|
|
Данные |
|
|
|
|
|
|
||
(C164CI-8EM) |
|
|
|
|
Двух- |
|
16 |
ЦПУ |
Данные |
16 |
портовое |
|
внутреннее |
||||
Генератор |
|
|
|||
|
|
|
|
ОЗУ |
|
с ФАПЧ |
|
|
|
|
|
|
|
|
|
2 Кбайт |
|
с прогр. |
|
|
|
|
|
|
|
|
|
|
|
коэфф. |
|
|
|
|
|
умножения: |
|
|
|
|
|
0.5; 1; 1.5; 2; |
|
|
|
|
|
2.5; 3; 4; 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PEC |
|
|
activeV2.0BCAN- |
|
|
|
Внешние команды/данныеД |
|
|
Часы |
Сторожевой |
|||
|
|
|
|
|
|
|
|
|
реального |
||
данных/адреса) |
|
|
|
|
|
|
|
|
таймер |
||
|
|
|
|
|
|
|
|
времени |
|||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контроллер прерываний |
|
|
|
|||
|
|
|
|
|
(обслуж. до 12 запросов |
|
|
|
|||
|
|
|
|
|
от внешних прерываний) |
|
|
|
|||
0Порт Интерфейс FULL |
битная-(16XBUSнемультиплексированная шина |
16 |
|
|
|
|
|
|
|
|
|
внешнейУправлениешиной мультиплексибитная-8/16(только - шинойишина)рованаяXBUS |
8-канальный |
|
|
|
|
Шина прерываний |
|
|
|||
|
BRG |
BRG |
|
(CAPCOM2) |
сравнения сравнения |
||||||
|
|
|
|
|
Шина данных периферийных устройств |
|
16 |
||||
|
|
|
|
битный - 10 АЦП |
USART |
Синхронный последовательный (SPI) канал |
GPT1 |
Блок захвата/ |
Блок захвата/ |
||
|
|
|
|
7 Таймер |
8 Таймер |
13 Таймер |
|
||||
|
|
|
|
|
|
|
|
сравнения |
сравнения |
||
|
|
|
|
|
|
|
|
общего назначения |
для сигналов ШИМ |
||
|
|
|
|
|
|
|
|
|
|
(CAPCOM6) |
|
|
|
|
|
|
|
|
T2 |
|
|
|
|
|
|
|
|
... |
|
|
T3 |
8-канальный |
|
3/6 |
|
|
|
|
|
|
ASC |
SSC |
|
|
|||
|
|
|
|
|
T4 |
16-битный модуль |
1 канал |
каналов |
|||
|
|
|
|
|
|
|
захвата/сравнения |
захвата/ |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Порт 4 |
Порт 5 |
|
|
Порт 3 |
|
Порт 8 |
|
|
Порт 1 |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
9 |
4 |
16 |
Рис. 7.30. Функциональная схема C164CI.
INFSEMI_2-Text.fm, стр. 305 из 589 (September 3, 2010, 17:05)
7.3. Шестнадцатибитные микроконтроллеры 305
6
Память |
|
Процессорное ядро С166 |
|
|
|
|
|
|
|
|
|
программ |
Команды/данные |
|
|
|
|
ПЗУ/ОППЗУ |
Данные 16 |
|
|
||
32 Кбайт |
|
32 |
Двухпортовое внутреннее 2ОЗУКбайт |
||
active2.0BRevCANИнтерфейс -(16XBUSшинаВнутренняябитная немультиплексированная) |
|
ЦПУ |
Данные 16 |
||
|
времениреальногоЧасы |
таймерСторожевой |
|||
|
|
|
|||
|
|
|
Генератор/ |
||
|
|
16 |
|
ФАПЧ |
|
|
|
|
|
|
|
|
|
PEC |
|
|
|
|
|
Внешние команды/данныеД |
|
|
|
|
|
Контроллер прерываний |
|
|
|
|
|
16 уровней приоритета |
|
|
|
|
|
|
16 |
|
|
|
|
Шина прерываний |
|
|
|
|
16 |
Шина данных периферийных устройств |
|
|
|
|
|
|
|
|
Порт 20 |
|
Контроллер внешней шины Управление XBUS Управление внешней шиной |
|
|
|||
|
|
|
|
|
|
|
|
АЦП |
ASC0 |
SSC |
GPT1 |
10-бит |
(USART) |
(SPI) |
|
8-каналов
T2 |
T3 |
.. |
T4 |
BRGen BRGen
Блок |
Блок |
захвата/ |
захвата/ |
сравнения |
сравнения |
26
T7 |
T12 |
T8 |
T13 |
|
8 |
.. |
Порт |
|
Порт 0 |
Порт 5 |
Порт 1 |
16 |
8 |
16 |
XTAL
4
Рис. 7.31. Функциональная схема C164CM.
INFSEMI_2-Text.fm, стр. 306 из 589 (September 3, 2010, 17:05)
306 7. Микроконтроллеры
Память |
|
|
Процессорное ядро С166 |
|
|
|
|
программ |
Команды/данные |
|
|
ПЗУ |
|
|
|
256 Кбайт |
32 |
|
|
ЦПУ
|
16 |
|
Внутренняя |
PEC |
|
Внешние команды/данныеД |
||
шина XBUS |
||
|
||
(16-бит немульти- |
|
|
плексированная) |
|
|
|
Контроллер прерываний |
|
XRAM |
16 уровней приоритета |
|
8 Кбайт |
|
|
ASC1 |
|
|
(USART) |
|
|
I2C |
Шина прерываний |
|
400 Кбод, |
|
|
2 канала |
16 |
|
|
||
CAN/SDLM |
Шина данных периферийных устройств |
|
|
||
2.0B act. /CI.B |
|
Данные 16 |
Двухпортовое внутреннее 2ОЗУКбайт |
|
|
Данные 16 |
|
||
|
|
|
|
Генератор/ |
XTAL |
||
|
ФАПЧ |
|
|
|
|
|
|
16 |
Часыреального времени |
Сторожевойтаймер |
|
|
|
|
8
8
Порт 4
Порт 6
Контроллер |
|
АЦП |
ASC0 |
SSC |
GPT |
Блок |
Блок |
|
|
10-бит |
(USART) |
(SPI) |
|
захвата/ |
захвата/ |
|
|
||
внешней шины |
|
|
|
||||||
12-каналов |
|
|
|
сравнения |
сравнения |
|
|
||
|
|
|
|
|
|
||||
|
|
|
|
|
T2 |
2 |
1 |
|
|
|
|
|
|
|
T7 |
T0 |
|
|
|
Управление XBUS |
|
|
|
|
|
|
|||
|
|
|
T3 |
|
|
|
|
||
Управление |
|
|
|
|
T8 |
T1 |
|
|
|
|
|
|
|
|
|
|
|||
внешней шиной |
|
|
|
|
T4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. |
|
|
|
|
|
2 |
8 |
|
|
|
|
T5 |
|
|
Порт |
||
|
|
|
|
|
.. |
.. |
|
||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||
|
|
|
BRGen |
BRGen |
T6 |
|
|
|
|
|
|
|
|
|
|
|
|
||
Порт 0 |
Порт 1 |
Порт 5 |
Порт 3 |
|
Порт 7 |
Порт 9 |
|
|
|
16 |
16 |
|
12 |
15 |
|
4 |
6 |
|
|
Рис. 7.32. Функциональная схема C161CS.
INFSEMI_2-Text.fm, стр. 307 из 589 (September 3, 2010, 17:06)
7.3. Шестнадцатибитные микроконтроллеры 307
16
16
8
|
32 |
|
16 |
|
Внутреннее |
|
|
|
|
|
|
|
|
|
ПЗУ |
|
Процессорное ядро |
16 |
Внутреннее |
|
|
|
ОЗУ |
|
|
16 |
|
|
|
|
|
|
|
Сторожевой |
|
|
|
|
таймер |
XRAM |
16 |
PEC |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Тактовый |
|
|
|
|
генератор |
|
|
Контроллер прерываний |
|
|
Модуль |
|
|
|
16 |
|
|
|
|
|
CAN |
|
|
|
|
Порт 4 Порт 1 Порт 0
10GPT1 битный
АЦП
T2 |
Контроллер |
T3 |
|
|
||
внешней |
T4 |
|
шины |
||
|
Модуль таймеров 2
|
T5 |
... |
T6 |
ASC Синхронный ШИМ CAPCOM CAPCOM (USART) последо- 2 1
вательный
канал
T7 |
T0 |
|
|
T8 |
T1 |
2 |
16 |
|
|
|
|
||
|
|
|
|
Порт |
|
BRG |
BRG |
... |
... |
|
|
Порт 6 |
Порт 5 |
Порт 3 |
Порт 7 |
Порт 8 |
8 |
16 |
15 |
8 |
8 |
Рис. 7.33. Функциональная схема C167CR.
INFSEMI_2-Text.fm, стр. 308 из 589 (September 3, 2010, 17:06)
308 7. Микроконтроллеры
Память |
Процессорное ядро С166 |
|
|
|
|
|
|
|
|
программ |
Команды/данные |
|
|
|
ПЗУ |
|
Данные 16 |
|
|
32 Кбайт |
32 |
Двухпортовое внутреннее 3ОЗУКбайт |
||
|
ЦПУ |
Данные 16 |
||
|
|
|
||
|
|
Генератор/ |
||
|
16 |
|
ФАПЧ |
|
|
|
времениреальногоЧасы |
таймерСторожевой |
|
Внутренняя |
PEC |
|
||
Внешние команды/данныеД |
|
|
|
|
шина XBUS |
|
|
|
|
|
|
|
|
|
(16-бит немульти- |
|
|
|
|
плексированная) |
|
|
|
|
|
Контроллер прерываний |
|
|
|
XRAM |
16 уровней приоритета |
|
|
|
6 + 2 Кбайт |
|
|
|
|
|
|
16 |
|
|
CAN2 |
Шина прерываний |
|
|
|
Rev 2.0B active |
|
|
|
|
|
16 |
|
|
|
CAN1 |
Шина данных периферийных устройств |
|
|
|
Rev 2.0B active |
|
|
|
|
8
8
Порт 4
Порт 6
Контроллер |
АЦП |
ASC0 |
SSC |
GPT |
ШИМ |
Блок |
внешней шины |
10-бит |
(USART) |
(SPI) |
|
захвата/ |
|
|
|
|||||
|
16+8 |
|
|
|
|
сравнения |
|
каналов |
|
|
T2 |
|
2 |
Управление XBUS |
|
|
|
|
|
|
|
|
|
|
|
T7 |
|
Управление |
|
|
|
T3 |
|
|
внешней шиной |
|
|
|
|
|
|
|
|
|
|
|
T8 |
|
|
|
|
|
T4 |
|
|
|
|
|
|
|
|
|
|
.. |
|
|
T5 |
|
|
|
|
|
|
|
.. |
|
|
|
|
|
|
|
|
|
|
BRGen BRGen |
T6 |
|
|
|
|
|
|
|
|
Блок
захвата/
сравнения
1
T0 |
T1 |
|
2 |
.. |
Порт |
|
Порт 0 |
Порт 1 |
Порт 5 |
Порт 3 |
Порт 7 |
Порт 8 |
|
XTAL
16
16 |
16 |
16 |
15 |
8 |
8 |
Рис. 7.34. Функциональная схема C167CS.
7.4.Архитектура 32-битных микроконтроллеров TriCore
Архитектура TriCore является первым примером комбинированной архитектуры микроконтроллер/DSP, оптимизированной для построения интегрированных систем реального времени. Она сочетает в себе выдающиеся характеристики сразу трёх различных устройств: эффективность обработки сигналов DSP-контроллера, быстро-
действие микроконтроллера реального времени и вычислительную мощность RISCархитектуры (которая, в данном случае, и является базовой). Таким образом, использование архитектуры TriCore обеспечивает великолепное соотношение цена/производительность, поскольку в микроконтроллере интегрировано большое количество различных функциональных блоков и для построения микроконтроллерной системы потребуется задействовать меньшее число
INFSEMI_2-Text.fm, стр. 309 из 589 (September 3, 2010, 17:06)
7.4. Архитектура 32-битных микроконтроллеров TriCore 309
Команды работы с битовыми полями, логические команды для битовых переменных, команды сравнения, команды ветвления
Команды умножительно-аккумуляторного блока (MAC), математика с насыщением, режимы DSP-адресации, SIMD-инструкции для арифметических операций
с данными в упакованном формате
Операции над переменными с плавающей точкой
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ан |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
тв |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
с |
|
|
|
|
ни |
|
D |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
н |
|
|
|
|
вле |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
р |
е |
|
у |
|
я |
|
S |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
ра |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
ш |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
е |
|
|
ы |
|
п |
|
|
|
|
|
|
P |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|||||||||
|
|
в |
|
|
д |
|
|
|
|
|
|
|
|
|
|
|
|
к |
|
|
|
|
||||||
|
о |
|
|
|
н |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
а |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
Команды: арифметические, логические, |
|||||
У |
с |
|
|
м |
|
|
|
|
|
|
|
|
|
Команды |
|
|
|
|
м |
|
||||||||
|
|
к |
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
д |
вычисления и сравнения адресов, |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
обшего |
|
|
|
|
|
|
|
|
н |
|||||
с |
|
м |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ы |
чтения/записи, загрузки/хранения, |
||||||
р |
|
|
|
|
|
|
назначения |
|
|
|
|
|
|
|
|
|
контекстного переключения |
|||||||||||
п |
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
о К |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
о |
|
а |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ы |
|
||||
ц |
|
|
н |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
д |
|
|||||
|
|
с |
|
д |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
ы |
|
|
|
|
|
|
|
|
|
|
|
|
|
а |
|
|
|
||||||
|
е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
м |
н |
|
|
|||||
|
|
|
|
с |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
к |
|
|
|
|
|||||
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
р |
а |
|
|
|
|
|
|
|
|
е |
|
о |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ы |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
тн |
|
|
|
|
|
|
|
|
Команды чтения/записи, |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16-би |
|
|
|
|
|
|
|
|
|
арифметические,
ветвления
Рис. 7.35. TriCore — единая архитектура с модульным набором команд.
модулей. Микроконтроллеры данного семейства содержат оптимальный набор высокопроизводительных периферийных устройств, что позволяет использовать их для решения широкого спектра задач (обеспечение безопасности и контроль динамических характеристик автомобиля, управление трансмиссией, построение информацион- но-развлекательных систем, управление кузовной электроникой и системами обеспечения комфорта, и т.д.). На Рис. 7.35 показана общая концепция построения микроконтроллеров семейства TriCore.
Архитектура набора команд (Instruction Set Architecture — ISA) поддерживает общее линейное адресное пространство с памятьориентированным вводом/выводом. Процессорное ядро работает в суперскалярном режиме, т.е. оно может исполнять одновременно до трёх команд и до четырёх операций. Более того, ISA может работать в сочетании с системами различной архитектуры, в том числе и с многопроцессорными системами. Столь высокая толерантность к используемой аппаратной платформе и системному уровню программного обеспечения позволяет создавать микроконтроллеры с различным сочетанием цена/производительность, в зависимости от конкретных требований пользователя.
Микроконтроллер TriCore поддерживает смешанный 16- и 32-битный набор команд. Команды различной длины могут использоваться совместно без изменения режима работы, что позволяет значительно уменьшить среднюю длину программ и даже несколько ускорить их исполнение. При этом уменьшаются стоимость системы, уровень её энергопотребления и снижаются требования к доступному объёму памяти программ.
Эффективность микроконтроллера при работе в режиме реального времени, в основном, определяется длительностями задержек обработки прерываний и скоростью переключения контекста. С этой точки зрения высокопроизводительная архитектура TriCore обеспечивает минимальное время реакции на внешние события благодаря отсутствию длинных команд, исполнение которых занимает большое количество машинных циклов, а также наличию аппарат- но-ориентированной системы обработки прерываний. Кроме того, поддерживается быстрое контекстное переключение.
Подробное описание архитектуры TriCore с полным набором команд содержится в документе «TriCore Architecture Manual».
7.4.1.Отличительные особенности архитектуры TriCore
Ниже перечислены основные отличительные особенности архитектуры TriCore:
32-битная архитектура;
единое (4 Гбайт) адресное пространство памяти данных, памяти программ и портов ввода/вывода;
16/32-битные команды, использование которых позволяет уменьшить размер программного кода;
малое время реакции на прерывание;
быстрое автоматическое аппаратное переключение программного контекста;
блок умножителя-аккумулятора;
поддержка целочисленной арифметики с насыщением;
операции с битовыми переменными и обращение к ним поддерживаются как на уровне архитектуры, так и системой команд;
INFSEMI_2-Text.fm, стр. 310 из 589 (September 3, 2010, 17:06)
310 7. Микроконтроллеры
обработка упакованных данных (под- |
32 регистра общего назначения образуют |
|||||||||||
|
держка параллельных |
вычислений в |
две группы: шестнадцать 32-битных регист- |
|||||||||
|
формате SIMD — одна команда, не- |
ров данных |
(D0…D15) и шестнадцать |
|||||||||
|
сколько данных); |
|
|
|
|
32-битных адресных регистров (A0…A15). |
||||||
отсутствие потерь в производительности |
Четыре регистра общего назначения вы- |
|||||||||||
|
при работе в DSP-приложениях; |
полняют особые функции: D15 по умолча- |
||||||||||
гибкое управление энергопотреблением; |
нию является регистром данных, A10 слу- |
|||||||||||
байтовая и битовая адресация; |
жит указателем стека (SP), A11 использует- |
|||||||||||
прямой порядок записи байтов (первым |
ся как регистр адреса возврата из подпро- |
|||||||||||
|
записывается младший байт, little- |
граммы и A15 является по умолчанию ре- |
||||||||||
|
endian); |
|
|
|
|
гистром базового адреса. Регистры A0 и A1 |
||||||
поддержка прямого и обратного (первым |
из числа младших адресных регистров в со- |
|||||||||||
|
записывается старший байт, big-endian) |
вокупности с A8 и A9 из числа старших ад- |
||||||||||
|
порядка записи байтов при передаче |
ресных регистров определены как глобаль- |
||||||||||
|
данных через шинный интерфейс; |
ные системные регистры. Они не входят в |
||||||||||
прецизионное определение исключи- |
состав переключаемого контекста, поэтому |
|||||||||||
|
тельных состояний в системе; |
|
|
не сохраняются и не восстанавливаются ав- |
||||||||
гибкая конфигурируемая система орга- |
томатически при аппаратных контекстных |
|||||||||||
|
низации прерываний с поддержкой до |
переключениях. Операционная система ис- |
||||||||||
|
256 уровней приоритета. |
|
|
|
|
пользует их, например, с целью снижения |
||||||
7.4.2. Регистры состояния программы |
системных издержек. |
|||||||||||
Регистры PCXI и PSW содержат флаги |
||||||||||||
|
Как показано на Рис. 7.36, набор регист- |
состояния, информацию о текущей испол- |
||||||||||
|
няемой команде |
и служебную информа- |
||||||||||
ров TriCore содержит 32 регистра общего |
||||||||||||
цию. |
|
|
|
|
||||||||
назначения (GPR), два 32-битных регистра, |
|
|
|
|
||||||||
Обратите внимание, что набор регистров |
||||||||||||
содержащих информацию о состоянии про- |
||||||||||||
разделен также на нижний и верхний кон- |
||||||||||||
граммы (PCXI и PSW), а также ещё один ре- |
||||||||||||
текст; автоматическое переключение к од- |
||||||||||||
гистр — счётчик команд (PC). PCXI, PSW и |
||||||||||||
ной этих частей влечёт за собой аппаратное |
||||||||||||
PC входят в число регистров специальных |
||||||||||||
сохранение второй. |
||||||||||||
функций процессорного ядра (CSFR). |
||||||||||||
|
|
|
|
|
|
|||||||
|
Адресные регистры |
|
|
|
Регистры данных |
|
|
Системные регистры |
||||
31 |
0 |
31 |
0 |
31 |
0 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
A15 (Базовый адресный |
|
|
|
D15 (Регистр данных |
|
|
|
PCXI |
|
||
|
регистр по умолчанию) |
|
|
|
по умолчанию) |
|
|
|
|
|
||
|
|
|
|
|
|
|
PSW |
|
||||
|
A14 |
|
|
|
|
D14 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
PC |
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
A13 |
|
|
|
|
D13 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A12 |
|
|
|
|
D12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A11 ( Адрес возврата) |
|
|
|
|
D11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A10 (Указатель стека) |
|
|
|
|
D10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A9 |
|
|
|
|
D9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A8 |
|
|
|
|
D8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A7 |
|
|
|
|
D7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A6 |
|
|
|
|
D6 |
|
|
|
|
|
|
|
A5 |
|
|
|
|
D5 |
|
|
|
|
|
|
|
A4 |
|
|
|
|
D4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
A3 |
|
|
|
|
D3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A2 |
|
|
|
|
D2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A1 |
|
|
|
|
D1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A0 |
|
|
|
|
D0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 7.36. Регистры состояния программы.
INFSEMI_2-Text.fm, стр. 311 из 589 (September 3, 2010, 17:06)
7.4. Архитектура 32-битных микроконтроллеров TriCore 311
7.4.3. Типы данных
Система команд TriCore поддерживает операции с логическими (булевыми) переменными, битовыми последовательностями, символами, числами с фиксированной точкой, адресами, знаковыми и беззнаковыми целыми числами, а также с числами с плавающей точкой одинарной точности.
Б=ольшая часть команд поддерживает работу только с определёнными типами данных, однако некоторые команды могут работать с различными типами данных.
7.4.4. Режимы адресации
Режимы адресации позволяют обеспечивать эффективный доступ к элементарным блокам данных внутри таких структур данных, как записи, массивы с прямым или последовательным доступом, стеки и циклические буферы. Длина элементарных блоков данных может составлять 1, 8, 16, 32 или 64 бит.
Режимы адресации также обеспечивают эффективную компиляцию программ, написанных на языке С, лёгкий доступ к регистрам периферийных устройств или эффективное использование стандартных для DSP структур данных (DSP-режимы адресации, например циклические буферы для фильтров и адресация с инвертированием битов адреса для реализации функции БПФ). Архитектурой TriCore поддерживаются следующие семь режимов адресации:
абсолютная;
базовый адрес + короткое смещение;
базовый адрес + длинное смещение;
предварительное инкрементирование или предварительное декрементирование;
адресация с последующим инкрементированием и адресация с последующим декрементированием;
циклическая;
с инвертированием битов адреса.
7.4.5. Форматы команд
Архитектура TriCore поддерживает как 16-битные, так и 32-битные форматы команд. По умолчанию все команды имеют 32-битный формат; 16-битные команды представляют собой подмножество наиболее часто используемых команд. Их реализация в 16-битном формате позволяет
уменьшить объём программного кода. Команды выбираются компилятором и могут исполняться параллельно; при этом не требуется изменения режима работы.
7.4.6. Задачи и контекст
В данной книге термин «задача» используется для обозначения независимой процедуры управления.
Можно выделить два типа задач: программно управляемые пользовательские задачи (SMT) и процедуры обработки прерываний (ISR). Первые порождаются службами ядра реального времени или операционной системы и выполняются под управлением программы-диспетчера. ISR-процеду- ры обслуживаются по аппаратным запросам как ответ на прерывание. В данной архитектуре ISR относятся только к программному коду, который запускается на исполнение непосредственно аппаратной частью. Программно управляемые задачи иногда называют также пользовательскими задачами, поскольку они запускаются в пользовательском режиме.
Каждой задаче может быть присвоен её собственный уровень авторизации. Эти индивидуальные права обычно включаются/отключаются установкой соответствующих битов в регистре PSW (слово состояния программы) через соответствующие выводы порта ввода/вывода. Ассоциированный с каждой из задач набор элементов в совокупности называется контекстом. Термин «контекст» относится ко всем элементам, необходимым процессору для корректного определения состояния соответствующей задачи и для её дальнейшего исполнения. Контекст включает в себя используемые в процессе исполнения задачи регистры общего назначения ЦПУ, счётчика команд (PC) и регистры состояния (PCXI и PSW). В архитектуре TriCore реализовано эффективное управление контекстом задач аппаратными средствами.
Верхний и нижний контекст
Как показано на Рис. 7.37, контекст делится на две части: верхний контекст и нижний контекст.
В состав верхнего контекста входят старшие регистры адреса A10…A15 и старшие регистры данных D8…D15. Эти регистры определены как энергонезависимые с