Косвенная регистровая адресация (registerindirect). Адрес операнда в памяти содержится в одном из восьми регистров общего назначения, заданном в команде.
Базовая индексная (base with index). В команде задаются два из восьми регистров общего назначения и коэффициент масштабирования – 1,2,4 или 8. Регистры используются как базовый и индексный, а исполнительный адрес вычисляется следующим образом: содержимое индексного регистра умножается на коэффициент масштабирования, а к результату прибавляется содержимое базового регистра.
Таблица 2.5 – Режимы адресации, выбираемые байтами ModR/M SIB(32)
Байты ModR/M | Адресация | |
Поле Mod B7 b6 | Поле R/M b2 b1 b0 | |
0 0 | Reg | Косвенная регистровая,EA=[Reg] |
1 1 | Reg | Регистровая,EA=Reg |
Исключения | ||
0 0 | 1 0 1 | Прямая,EA=Disp32 |
0 0 | 1 0 0 | Базовая индексная(применяется байт SIB),EA=[Base]+[Index]×Scale. |
Таблица 2.6 – Режимы адресации, выбираемые байтами ModR/M SIB(16)
Быйты ModR/M | Адресация | |
Поле Mod b7 b6 | Поле R/M b2 b1 b0 | |
0 0 | Reg | Косвенная регистровая,EA=[Reg] |
1 1 | Reg | Регистровая,EA=Reg |
Исключения | ||
0 0 | 1 10 | Прямая,EA=Disp16 |
3 Структурная организация процессора
3.1 Общая структура процессора
Структурная схема процессора представлена на Рис.3.1. В состав процессора входят: блок микропрограммного управления (БМУ), арифметико-логическое устройство(АЛУ), которое может разделяться на операционный блок с фиксированной точкой и операционный блок с плавающей точкой. Обмен между блоками и также связь между процессором и ОП осуществляется через блок интерфейса (БИНТ). Управляющие сигналы передаются из БМУ в АЛУ (БФТ и/или БПТ) и ОП по шине управления (ШУ). Осведомительные сигналы (ОС) из БФТ, БПТ и ОП поступают в БМУ по шине ШОС.
Рис.3.1.Структурная схема процессора
3.2 Выбор и обоснование элементной базы
Для проектирования МП на архитектуре IA-32 был выбран микропроцессорный комплект серии 1804. Сильными сторонами этого комплекта являются микропрограммируемость и возможность разрядного расширения . Высокая производительность реализуется за счёт применения ТТЛШ-технологии. Разнообразие схем, ориентированных на применение в различных устройствах, обеспечивает большую архитектурную гибкость при разработке вычислительной аппаратуры.
Блоки обработки данных построены на схемах К1804ВС2, дополнены схемами ускоренного переноса К1804ВР1.
БМУ построен на схеме К1804ВУ4 . Регистровая память организована на 4х разрядных схемах К1804ИР1 и на 8 разрядных схемах К1804ИР2.
3.3 Блоки обработки данных
3.3.1 Блок с фиксированной точки
БФТ построен на 8 микропроцессорных секциях К1804ВС2, так как их разрядность 4 бита. Они дополнены 3 схемами ускоренного переноса К1804ВР1., которые уменьшают время вычислений при переносе разряда из одной МПС в другую.
В данной МПС находится РЗУ, содержащее 16 четырёх разрядных регистра. 8 из них будут использоваться как РОНы.
МПС содержит доступные снаружи буферы DY и DB. Корпус имеет 48 выводов. АЛУ выполняет 16 простых операций (7 арифметических, 7 логических, константа 0 и константа 1), а также 9 специальных функций, среди которых есть и многотактные операции (умножение, деление).
Источники операндов задаются сочетанием сигналов на управляющих входах
, и I0. Это могут быть РА, РВ, DA, DB, PQ в следующих сочетаниях: РА — РВ PA —DB, PA-PQ (EA = 0), DA — РВ, DA - DB, DA —PQ ( = 1). В случаях РА — PQ и DA — PQ возможны варианты обмена по шине DB, работающей на выдачу ( = 0) либо выключенной ( = 1). БФТ связан с ОП, БМУ через шины данных DA, DB, DY, шину МК. На выходе МПс вырабатываются флаги результата: перенос С, переполнение V, знак N, признак нуля Z.БФТ применяется для выполнения операций над числами с фиксированной точкой.
Рис.3.2. Структурная схема МПС К1804ВС2Особенность сдвигателей заключается в том, что на них реализуются не только логические, но и арифметические сдвиги. Арифметические сдвиги не затрагивают знаковый разряд.
В РЗУ МПС К1804ВС2 можно записывать (по адресу В) либо результат АЛУ (сдвинутый или несдвинутый), либо данные с шины DY.
Выделение знакового разряда при арифметических сдвигах, особенности выполнения специальных функций приводят к тому, что МПС должна работать по-разному, в зависимости от того, в какой позиции она находится — старшей, средней или младшей. При создании многоразрядной схемы МПС программируется по занимаемой позиции. Для этого предназначены специальные выводы БИС: LSS и WRITE/MSS. Линия LSS — это вход задания младшей позиции: LSS = 0 — младшая МПС, LSS=1—средняя или старшая МПС. Двунаправленная линия WRITE/MSS имеет два значения: в младшей МПС (при LSS = 0) это выход WRITE для управления входом
(разрешение записи в РЗУ) всех секций; при LSS=1 эта линия становится входом выбора старшей МПС (MSS=0) или средней МПС (MSS = 1).Кроме рассмотренных выше управляющих входов, имеются входы
(разрешение выдачи результата АЛУ па шину DY) и (разрешение записи в PQ). Выход признака нуля Z в некоторых специальных функциях используется как дополнительный управляющий вход. Так как выходы АЛУ N (знак) и OVR (переполнение) используются только в старшей МПС, а выходы и для формирования ускоренного переноса — только в средних и младшей МПС, то эти четыре сигнала мультиплексируются в две линии /N и /OVR в зависимости от позиции МПС. Всего для управления секцией К1804ВС2 требуется 22 разряда микрокоманды (не считая управления переносом и сдвигами).Таблица 3.1 - Стандартные функции, реализуемые МПС.
Сигналы на входах выбора функции | Функция АЛУ F | |||
I4 | I3 | I2 | I1 | |
0 | 0 | 0 | 0 | Специальные функции при IO=0 |
0 | 0 | 0 | 0 | 1111 при IO=1 |
0 | 0 | 0 | 1 | S-R-1+CO |
0 | 0 | 1 | 0 | R-S-1+CO |
0 | 0 | 1 | 1 | R+S+CO |
0 | 1 | 0 | 0 | S+CO |
0 | 1 | 0 | 1 | S+CO |
0 | 1 | 1 | 0 | R+CO |
0 | 1 | 1 | 1 | R+CO |
1 | 0 | 0 | 0 | 0000 |
1 | 0 | 0 | 1 | Ri^Si |
1 | 0 | 1 | 0 | Ri+Si |
1 | 0 | 1 | 1 | Ri+Si |
1 | 1 | 0 | 0 | Ri+Si |
1 | 1 | 0 | 1 | RiVSi |
1 | 1 | 1 | 0 | Ri^Si |
1 | 1 | 1 | 1 | RiVSi |
Таблица 3.2 - Специальные функции, реализуемые МПС.
Входы | Функция | Функция АЛУ F | Функция Сд. F | Состояние выводов | Функции Сд. Q и Рг. Q | Состояние выводов | |||||||
I8 | I7 | I6 | I5 | PF3 | PF0 | PQ3 | PQ0 | W | |||||
Ст. МПС | Др. МПС | ||||||||||||
0 | 0 | 0 | 0 | Умножение без знака | S+C0, если Z=0, R+S+C0, если Z=1 | Лог. F/2→Y | X | Вход | F0 | Лог. Q/2→Q | Вход | Q0 | 0 |
0 | 0 | 1 | 0 | Умножение в дополнительном коде | S+C0, если Z=0, R+S+C0, если Z=1 | Лог. F/2→Y | X | Вход | F0 | Лог. Q/2→Q | Вход | Q0 | 0 |
0 | 1 | 0 | 0 | Прибавление к числу единицы или двойки | S+1+C0 | F→Y | Вход | Вход | Четность | Хранение | X | X | 0 |
0 | 1 | 0 | 1 | Преобразование числа в дополнительный код | S+C0, если Z=0, S+C0, если Z=1 | F→Y | Вход | Вход | Четность | Хранение | X | X | 0 |
0 | 1 | 1 | 0 | Умножение в дополнительном коде (последний цикл) | S+C0, если Z=0, S–R–1–C0, если Z=1 | Лог. F/2→Y | Х | Вход | F0 | Лог. Q/2→Q | Вход | Q0 | 0 |
1 | 0 | 0 | 0 | Нормализация слова одной длины | S+C0 | F→Y | F3 | F3 | X | Лог. 2Q→Q | Q3 | Вход | 0 |
1 | 0 | 1 | 0 | Нормализация слова двойной длины | S+C0 | Лог. 2 F→Y | R3+F3 | F3 | Вход | Лог. 2Q→Q | Q3 | Вход | 0 |
1 | 1 | 0 | 0 | Деление в дополнительном коде | S+R+C0, если Z=0, S–R–1+C0, если Z=1 | F Лог. 2 F→Y | R3+F3 | F3 | Вход | Лог. 2Q→Q | Q3 | Вход | 0 |
1 | 1 | 1 | 0 | Деление в дополнительном коде, коррекция | S+R+C0, если Z=0, S–R–1+C0, если Z=1 | F→Y | F3 | F3 | X | Лог. 2Q→Q | Q3 | Вход | 0 |
3.3.1 Блок с плавающей точкой