
- •Микропроцессоры и микропроцессорные системы
- •Введение
- •1.1.Успехи интегральной технологии и предпосылки появления микропроцессоров
- •1.2.Основные схемотехнологические направления производства микропроцессоров
- •1.3.Характеристики микропроцессоров
- •1.4.Поколения микропроцессоров.
- •Машина пользователя и система команд
- •1.6.Архитектура 16-разрядного микропроцессора
- •Система команд i8086
- •Общая структура мпс
- •Структура микропроцессора и интерфейсные операции
- •1.7.1.Внутренняя структура
- •1.7.2.Командный цикл микропроцессора.
- •1.7.3.Машинные циклы и их идентификация.
- •1.7.4.Реализация микропроцессорных модулей и состав линий системного интерфейса
- •1.8.1.Внутренняя структура
- •1.8.2.Машинные циклы i8086 в минимальном и максимальном режимах
- •1.8.3.Структура микропроцессорных модулей на базе микропроцессора i8086
- •Подсистема памяти мпс
- •1.9.Распределение адресного пространства
- •1.10.Р егенерация динамической памяти
- •Подсистема ввода/вывода мпс
- •1.11.Подсистема параллельного обмена на базе буферных регистров
- •1.12.Контроллер параллельного обмена к580вв55
- •1.13.Последовательный обмен в мпс
- •1.13.1.Универсальный последовательный приемопередатчик кр580вв51
- •Подсистема прерываний мпс
- •1.14.Внутренние и внешние прерывания
- •1.15.Функции подсистемы прерываний и их реализация
- •1.16.Контроллеры прерываний
- •Подсистема прямого доступа в память мпс
- •1.17.Контроллер прямого доступа в память к580вт57
- •1.18.Высокопроизводительный 32-разрядный контроллер пдп 82380
- •1.18.1.Архитектура контроллера 82380
- •1.18.1.1.И нтерфейс с главным процессором.
- •1.18.2.Функции контроллера пдп
- •1.18.3. Программируемый контроллер прерываний
- •1.18.4. Программируемые интервальные таймеры
- •1.18.5. Контроллер регенерации динамического озу
- •1.18.6. Генератор с состоянием ожидания
- •1.18.7.Сброс центрального процессора
- •1.18.7.1.Размещение карты регистров
- •1.18.7.2.Интерфейс с микропроцессором
- •1.18.7.3.Сигналы сопряжения с микропроцессором 80386
- •1.18.8. Синхронизация шины контроллера 82380
- •1.18.8.1. Конвейеризация адресов
- •Организация мпс на базе секционированных бис
- •1.19.А рифметико-логические секции
- •1.20.Секции управления и устройства управления
- •1.20.1.Эволюция структур сфам.
- •1.20.2.Секции управления адресом микрокоманд серии к1804.
- •1.20.3.Организация управляющего автомата
- •1.21.Структура устройств обработки данных
- •1.22.Мпс с одно- и двухуровневым управлением
- •1.23. Расширение архитектуры Am2900
- •1.23.1. Базовый процессорный элемент к1804вм1
- •1.23.1.1. Организация основных блоков
- •1.23.1.2.Система инструкций
- •Однокристальные микроЭвм
- •1.24.Однокристальные микро-эвм к1816ве48/49/35
- •1.24.1.С труктура омэвм
- •1.24.2.Элементы архитектуры омэвм
- •1.24.3.Порты ввода/вывода
- •1.24.4.Система команд омэвм
- •1.24.5.Расширение ресурсов омэвм
- •1.25. Однокристальная микроЭвм к1816ве51
- •1.25.1.Семейство однокристальных эвм mcs-51
- •1.25.2.Структура микро-эвм к1816ве51
- •1.25.3.Архитектурные особенности микро-эвм
- •1.25.4.Организация внутренней памяти данных.
- •1.25.5.Машинные циклы и синхронизация микро-эвм
- •1.25.6.Внешние устройства микро-эвм
- •1.25.7.Описание последовательного порта.
- •1.25.8.Таймеры-счетчики
- •1.25.9.Подсистема прерываний
- •1.25.10.Система команд
- •Системы проектирования и отладки мпс
- •1.26.Проблемы и особенности отладки мпс
- •1.26.1. Особенности отладки мпс на разных этапах ее существования.
- •1.27.С татические отладчики
- •1.28.Логические анализаторы
- •1.29. Сигнатурные анализаторы
- •1.29.1.Идея сигнатурного анализа
- •1.29.2.Оборудование сигнатурного анализа и требования к проверяемой схеме
- •1.30. Системы проектирования мпс
- •1.30.1.Внутрисхемные эмуляторы
- •Литература
1.6.Архитектура 16-разрядного микропроцессора
Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. Кроме показанного на Рис. 2 .5, в машину пользователя i8086 включатся память объемом 1М байт и две области портов ввода и вывода по 64К каждая.
Рассмотрим "машину пользователя" на базе i8086 (К1810ВМ86):
-
7 0
7 0
AX
AH
AL
Аккумулятор
РОН
BX
BH
BL
База
CX
CH
CL
Счетчик
DX
DH
DL
Данные
15 0
Регистры-
SP
Указатель стека
указатели
BP
Указатель базы
Индексные
SI
Индекс операнда
регистры
DI
Индекс результата
15 0
CS
Сегмент кода
Сегментные
DS
Сегмент данных
регистры
SS
Сегмент стека
ES
Сегмент доп. данных
15 0
IP
Счетчик команд
FLAGS
Регистр признаков
Рис. 2.5. МП i8086 - машина пользователя
Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2 .5).
16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:
-
15 12
11
10
9
8
Зарезервировано
OF
DF
IF
TF
Арифметическое
переполнение
Направление
Разрешение прерывания
Пошаговый режим
где:
DF определяет направление модификации адресов массивов в командах цепочек (увеличение или уменьшение адреса);
IF маскирует внешнее прерывание по входу INT (при IF = 1 прерывание разрешено);
TF управляет пошаговым режимом работы микропроцессора. При TF = 1 после выполнения каждой команды автоматически формируется прерывание с вектором 4 (см. раздел 7).
Распределение адресного пространства.
Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных + адреса и составляет 220 = 1М байт. В этом адресном пространстве МП одновременно доступны четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS - сегмент кода (для размещения программы) и SS - сегмент стека.
Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде (см. ниже) и так же составляет 16 бит. Таким образом, размер каждого сегмента в i8086 составляет 64К байт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется схемой Рис. 2 .6 .
Из Рис. 2 .6 видно, что граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.
-
15 0
Сегментный регистр
.0 0 0 0
15 0
Логический адрес
19 0
Физический адрес
Рис. 2.6. Формирование физического адреса
По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080.
Способы адресации
и методы формирования исполнительного адреса
Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен на Рис. 2 .7.
-
1 байт
2 байт
3..6 байты
КОП
D
W
MOD
REG
R/M
[Смещение. данные]
7 2 1 0
7 6 5 3 2 0
Рис. 2.7. Формат команды МП i8086
Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой - память или регистр. Поля команды имеют следующие назначения:
D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником;
W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт);
REG - определяет регистр для первого операнда согласно Табл. 2 .3:
Табл. 2.3
-
REG
(R/M)
Регистр
W = 0
W = 1
000
AL
AX
001
CL
CX
010
DL
DX
011
BL
BX
100
AH
SP
101
CH
BP
110
DH
SI
111
BH
DI
Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. В Табл. 2 .4 приведены способы формирования адресов памяти для двух значений поля MOD.
Табл. 2.4
-
R/M
MOD = 00
MOD = 01
Логич.адрес
Сегмент
Логич.адрес
Сегмент
000
BX+SI
DS
BX+SI+d8
DS
001
BX+DI
DS
BX+DI+d8
DS
010
BP+SI
SS
BP+SI+d8
SS
011
BP+DI
SS
BP+DI+d8
SS
100
SI
DS
SI+d8
DS
101
DI
DS
DI+d8
DS
110
d16
DS
BP+d8
DS
111
BX
DS
BX+d8
DS
В Табл. 2 .4 d8 и d16 означают соответственно 8- и 16-разрядное смещение (3 и 3+4 байты команды). При операциях с d8 осуществляется его "знаковое расширение" до 16 бит - биты 15..8 принимают значение бита 7 (знака).
При значении MOD = 10 используются те же регистры, что при MOD = 01 (см. Табл. 2 .4), но вместо d8 используется d16.
При MOD = 11 вторым операндом команды является регистр, определяемый полем R/M согласно Табл. 2 .3.
Таким образом, операнд в памяти может адресоваться прямо (MOD = 00, R/M = 110) или косвенно посредством содержимого базовых (BP, BX) или индексных (SI, DI) регистров, а так же их суммы. Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством BX, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.