Структуры процессоров. Тенденции в развитии структур процессоров, страница 3

1) Регистры данных ) – (E)AX, (E)BX,(E)CX, (E)DX (в некоторых книгах их называют регистрами общего назначения. Операнды в этих регистрах могут представлять собой 32 или 16- разрядное слово или байт. Если операнд - байт, может быть указан один из двух младших байтов регистра (*H или *L). Есть ряд команд, в которых функции отдельных регистров специализированы.

2) Адресные регистры (E)SI, (E)DI,(E)BP, (E)SP (используются для хранения 32 или 16-разрядных адресов, байтовый доступ к частям этих регистров невозможен). Адресные регистры во многих командах также специализированы.

3) Сегментные регистры сегмент команд CS, сегмент стека SS и четыре сегмента данных - DS и ES (в реальном режиме процессора указывают начала четырех сегментов - участков по 64 К байт в 1М адресном пространстве памяти).

4) Счетчик команд (в оригинале – указатель команд, Instruction Pointer (E)IP) и Регистр флагов EFLAGS.


Формат регистра флагов приведен на рисунке.

Младшие 12 битов этого регистра используются в реальном режиме (см. далее этот подраздел), остальные поля (биты) регистра состояний используются в защищенном режиме.

Программная модель процессора х86 (как количество и назначение регистров, так и структура регисра состояний) достаточно сложна. В младших моделях семейства х86 назначение регистров было в сильной степени специализировано.

Специализация регистров процессоров i8086/8088/80186

AX  Аккумулятор                   Умножение, деление и ввод-вывод слов
AL  Аккумулятор(мл)             Умножение, деление и ввод-вывод байтов
AH  Аккумулятор(ст)             Умножение и деление байтов
BX  Регистр базы                  Базовый регистр, может быть использован как адресный
CX  Счетчик                           Операции с цепочками, циклы
CL  Счетчик (мл)                   Динамические сдвиги и ротации
DX  Данные                            Умножение и деление слов, косвенный ввод-вывод

SP  Указатель стека             Стековые операции
BP  Указатель базы              Базовый регистр
SI  Индекс источника            Операции с цепочками, индексный регистр
DI  Индекс приемника           Операции с цепочками,

Начиная с процессора i386 специализация регистров была в значительной степени исключена, структура регистровой модели стала более «ортогональной».

Регистр флагов процессоров х86 в реальном режиме

15

11

10

9

8

7

1

0

OF

DF

IF

TF

SF

ZF

0

AC

0

PF

0

CF

CF ( Carry Flag ) - флаг переноса;
PF ( Parity Flag ) - флаг четности;
AF ( Auxiliary Carry Flag ) - флаг вспомогательного переноса;
ZF ( Zero Flag ) - флаг нуля;
SF ( Sign Flag ) - флаг знака;
TF ( Trap Flag ) - флаг прерывания для отладки
IF ( Interrupt-Enable Flag ) - флаг разрешения прерывания;
DF ( Direction Flag ) - флаг направления цепочечных (строковых) команд
OF ( Overflow Flag ) - флаг переполнения.

Подробнее назначение и использование флагов мы будем рассматривать позже.

Сегментные регистры - используются при вычислении физического адреса при обращении к внешней памяти. Использование сегментного механизма в 8086 - пример того, как в 16-разрядной архитектуре преодолевался 64K-барьер размера адресного пространства.

Исполнительный адрес (буквальный перевод словосочетания executive address) в реальном режиме - 16-битовый результат работы схемотехники адресной арифметики (при обращении к операнду - в соответствии с используемым в команде способом адресации).

Вопрос для любопытных: что произойдет, если при сложении возникнет переполнение разрядной сетки?

Один и тот же физический адрес можно получить, имея несколько (сколько?) комбинаций значений сегмента и смещения

Специализация сегментных регистров

CS - задает сегмент команд (command segment), из которого производится выборка команд.

DS, ES - два сегмента данных, к одному из них производится обращение при выборке операндов. Какой именно сегмент используется, зависит от вида команды (чаще всего обращение происходит к сегменту DS, хотя программист может в большинстве случаев явно указать в команде, какой сегмент следует использовать (см. префикс переназначения сегмента). В процессорах начиная с 386, количество сегментов увеличилось до 6 за счет добавления еще двух сегментов данных FS и GS.

SS - сегмент стека, к нему происходит обращение при операциях со стеком. (О стековой адресации см. раздел Способы адресации).

Регистровая модель прикладного и системного программиста для процессоров Itanium (архитектура IA-64) описана ЗДЕСЬ (структура регистровой модели – рис. на стр. 35 по сквозной нумерации).


Регистровая модель процессоров семейства M68x00 фирмы Motorola (вычислительного ядра CPU-32)

Полную информацию по архитектуре M68x00 (фирма называет вычислительное ядро аббревиатурой CPU32) можно получить, например, в документе 68360um.pdf, раздел 5 CPU32+.

Эта структура отличается высокой степенью симметрии (ортогональности). Регистровая модель содержит 8 равноправных регистров данных D0… D7 и 8 адресных регистров A0…A7, из которых регистр A7 используется как указатель стека. Этот регистр существует в двух экземплярах, один используется в пользовательском режиме, второй в системном режиме.

Структура регистра состояний процессоров 68х изображена на рисунке.

Регистровая модель процессоров семейства MCS-51

Регистровую модель MCS-51 следует рассматривать одномвременно с изучением структуры адресных пространств памяти.

Аккумулятор (A, Acc)  – 8 бит

Регистр B                     ‑ 8 бит

Data Pointer DP            ‑ 16 бит, доступный байтами: DPL – младшая половина, DPH – старшая. Это адресный регистр.

Указатель стека           ‑ 8 бит.

Регистр слова состояния программы (Program Status Word PSW)

Четрые банка регистров, по 8 однобайтовых регистров в каждом банке.

Задание для самостоятельного выполнения:

Во всем мире множество фирм выпускает (легально, по лицензии, или разрабатывая аналоги самостоятельно) однокристальные ЭВМ (ОЭВМ) с архитектурой фирмы Intel MCS51. Познакомьтесь с программной моделью процессоров семейства MCS51 (например, по источнику  \Docs\Atmel\AT89S8252\Doc0497_обзор_архитектуры.pdf – это документация по однокристальной микроЭВМ фирмы Atmel). Можно также использовать книгу Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. – это описание российского аналога - 1816ВЕ51

Программная модель процессоров PICmicro

Подробно можно познакомиться с ней, запустив обучающую программу PicMan ОТСЮДА.

Регистровая модель процессора PIC16C5x выглядит приблизительно так: (см. рис.).

Основные ее особенности:

АЛУ содержит регистр-аккумулятор W (Working Register) который участвует в большинстве команд в качестве операнда. Таким образом, PIC-процессор ‑ типичный образец процессора «с аккумулятором».

Память программ и память данных разделены, таким образом, PIC‑процессор это типичный пример гарвардской архитектуры.


 [АПН1] Куча понятий используется, которые пока еще не определены.