Регистровая структура процессора CPU32
Набор регистров (регистровая модель) процессора CPU32 показан на рис.3.1.
Регистры, входящие в модель супервизора: SR (старший байт), SSP, VBR,SFC,DFC доступны только при работе CPU32 в режиме супервизора.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D0 |
|
|
|
|
D1 |
|
|
|
|
D2 |
|
|
|
|
D3 |
|
|
|
|
D4 |
|
|
|
|
D5 |
|
|
|
|
D6 |
|
|
|
|
D7 |
|
|
|
|
|
|
|
A0 |
|
|
|
A1 |
|
|
|
A2 |
|
|
|
A3 |
|
|
|
A4 |
|
|
|
A5 |
|
|
|
A6 |
|
|
USP |
A7 |
|
|
|
|
|
|
|
|
CCR |
|
|
|
|
|
|
PC |
Модель пользователя |
|
|
|
|
|
SSP |
A7 |
|
|
|
|
|
|
CCR |
SR |
|
|
|
VBR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SFC |
Модель супервизора |
|
|
DFC |
|
|
|
|
|
Рис.3.1. Регистровая модель процессора CPU32
Модель пользователя содержит два набора из восьми 32-разрядных регистров: регистры данных D0-D7 и регистры
адреса A0-A7. Один из регистров адреса - A7, служащий в качестве указателя стека (SP - stack pointer), дублирован для обслуживания
задач различных классов. В режиме пользователя указателем стека служит регистр USP, в режиме супервизора - регистр SSP. Таким образом
обеспечивается возможность разделения стеков при решении задач пользователя и супервизора. Программный счетчик PC имеет 32 разряда,
однако в данном семействе микроконтроллеров используются только 24 разряда в соответствии с принятой разрядностью шины адреса.
15 14 |
13 |
12 11 |
10 8 |
7 5 |
4 |
3 |
2 |
1 |
0 |
T1-0 |
S |
0 0 |
I2-0 |
0 0 0 |
X |
N |
Z |
V |
C |
|
|
|
|
|
|
|
|
|
|
|
CCR |
Рис.3.2. Формат содержимого регистра состояния SR
Регистр состояния SR (рис.3.2) содержит два байта: системный байт и байт пользователя.
Полностью регистр SR доступен только в режиме супервизора. В режиме пользователя доступны только младшие разряды (байт пользователя),
которые образуют регистр условий CCR. Отдельные биты регистра CCR имеют следующее назначение:
С - признак переноса, принимает значение C=1 при возникновении переноса из старшего разряда обрабатываемых
операндов;
V - признак переполнения, принимает значение V=1 в случае переполнения разрядной сетки при обработке
операндов со знаком;
Z - признак нуля, принимает значение Z=1 при получении нулевого результата операции;
N - признак знака, принимает значение старшего (знакового) разряда результата операции: N=0 - положительное
число, N=1 -отрицательное;
X - признак расширения, в большинстве случаев копирует признак С, но при выполнении некоторых операций
эти признаки устанавливаются по-разному.
Биты системного байта регистра состояния SR, определяющие режимы функционирования процессора, имеют следующее
назначение:
S-признак супервизора, при S=0 процессор работает в режиме пользователя, при S=1 - в режиме супервизора;
T1-0 - поле режима трассировки (пошаговый режим): при T1=1 процессор останавливается после каждой команды,
при T0=1 - только после команд переходов и ветвлений, меняющих ход программы;
I2-0 - поле маски прерываний, определяет минимальный уровень приоритета для обслуживания запросов прерывания
(см. раздел Система команд CPU32 ).
Остальные биты регистра SR не используются или резервированы для последующих моделей процессоров.
При включении микроконтроллера происходит автоматическая установка начального состояния регистров. В регистре
SR устанавливается значение бита S=1, и процессор начинает работать в режиме супервизора. Из памяти загружаются начальные значения
содержимого программного счетчика PC и указателя стека SSP (см. раздел Система команд CPU32). Если в процессе дальнейшей работы потребуется перевод
процессора в режим пользователя, то с помощью команды MOVE to SR в регистр SR загружается новое содержимое, в котором бит S=0.
Обратный перевод в режим супервизора производится при обслуживании запросов прерывания или возникновении исключительных ситуаций, а
также в процессе установки процессора в начальное состояние (повторный запуск) при поступлении внешнего сигнала сброса или команды
RESET.
Регистры VBR, SFC, DFC доступны только в режиме супервизора. В 32-разрядный регистр VBR заносится базовый
адрес таблицы векторов исключений (см. раздел Модуль таймерного процессора TPU ). Загрузка этого регистра производится командой MOVEC. При обслуживании исключений
формируемое процессором значение Av=4Ne является относительным адресом (смещением), определяющим положение выбираемого вектора в
таблице, которая может быть размещена в любом месте адресного пространства. В 3-разрядные регистры SFC,DFC с помощью команды MOVEC
заносится код адресного пространства, который поступает на выводы FC2-0 микроконтроллера при выполнении команды MOVES. Таким образом
обеспечивается расширение адресного пространства с помощью организации виртуальной памяти.