Регистровая структура процессора Nios II

Архитектура процессора Nios II поддерживает плоский регистровый файл, содержащий 32 регистра общего назначения и до 32 управляющих регистров. Регистры общего назначения и управляющие регистры, представлены в таблицах 4.1 и 4.2, соответственно.

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

Таблица 4.1

Регистры общего назначения

Регистр Имя Функция
r0 r1 zero at 0х00000000 Временный
r3 r4 r4 … r23 Нет специального обозначения Регистры общего назначения
r24 r25 et bt Временный для исключений (1) Временный для отладки (2)
r26 r27 r28 r29 r30 r31 gp sp fp ea ba ra Глобальный указатель Указатель стека Указатель кадра Адрес возврата из исключений (1) Возврат из контрольной точки (2) Адрес возврата

(1) – регистры не доступные в пользовательском режиме

(2) – регистры используются только JTAG Debug модулем

· Регистр r0, называемый регистром нуля, всегда содержит значение 0. Результатом чтения из этого регистра является значение 0. Записать другое значение в этот регистр невозможно.

· Регистр r1 используется ассемблером как временный регистр. Поэтому при разработке программ не рекомендуется его использовать.

· Регистры r24 и r29 используются для обработки исключений. Поэтому они недоступны в режиме пользователя.

· Регистры r25 и r30 используются исключительно модулем JTAG Debug в отладочных целях.

· Регистры r27 и r28 используются процессором для управления стеком.

· Регистр r31 хранит адрес возврата при вызове подпрограмм.

Таблица 4.2

Регистры управления Nios II

Регистр Имя b31 …b2 b1 b0
ctl 0 ctl 1 ctl 2 status e status b status резерв резерв резерв U EU BU PIE EPIE BPIE
сtl 3 сtl 4 сtl 5 ienable ipending cpuid Биты разрешения прерывания Биты возникших прерываний Уникальный идентификатор

В состав процессора Nios II может входить до 32 управляющих регистров. Их количество зависит от присутствия модуля защиты памяти или модуля управления памятью. В таблице 4.2 приведены форматы 6 основных базовых управляющих регистров. Причем имена, представленные там, понимаются ассемблером. Регистры используются следующим образом.

· Регистр ctl0 отражает текущее состояние процессора. Чаще всего используют биты U и PIE этого регистра. U определяет режим работы процессора (пользователя/супервизора). PIE - бит разрешения внешних прерываний. Остальные биты используются при наличии модуля защиты памяти или модуля управления памятью.

· Регистр ctl1 хранит копию регистра состояния во время обработки прерываний.

· Регистр ctl2 хранит копию регистра состояния во время обработки точек останова.

· Регистр ctl3 используется для разрешения прерываний процессора от отдельных устройств в процессорной системе.

· Регистр ctl4 указывает произошедшие прерывания.

· Регистр ctl5 хранит уникальное значение, идентифицирующее процессор в многопроцессорной системе.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: