Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Архитектура 16-разрядного микропроцессора



Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. Кроме показанного на Рис. 2.4, в машину пользователя 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.4. МП i8086 - машина пользователя

 

Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2.4).

16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:

15 12  
Зарезервировано 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.5.

Из Рис. 2.5 видно, что граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.

 

15 0
Сегментный регистр .0 0 0 0
15 0
  Логический адрес
 
19 0
Физический адрес
     

 

Рис. 2.5. Формирование физического адреса

По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS: IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080.

 

Способы адресации

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

Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен на Рис. 2.6.

1 байт 2 байт 3..6 байты
  КОП D W MOD REG R/M [Смещение. данные]
  7 2 1 0 7 6 5 3 2 0  
                     

Рис. 2.6. Формат команды МП i8086

Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой - память или регистр. Поля команды имеют следующие назначения:

D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником;

W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт);

REG - определяет регистр для первого операнда согласно Табл. 2.3:

Табл. 2.3

REG (R/M) Регистр
W = 0 W = 1
AL AX
CL CX
DL DX
BL BX
AH SP
CH BP
DH SI
BH DI

 

Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. В Табл. 2.4 приведены способы формирования адресов памяти для двух значений поля MOD.

Табл. 2.4

R/M MOD = 00 MOD = 01
Логич.адрес Сегмент Логич.адрес Сегмент
BX+SI DS BX+SI+d8 DS
BX+DI DS BX+DI+d8 DS
BP+SI SS BP+SI+d8 SS
BP+DI SS BP+DI+d8 SS
SI DS SI+d8 DS
DI DS DI+d8 DS
d16 DS BP+d8 DS
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 предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.

Система команд i8086

Система команд насчитывает 113 базовых команд, объединенных в следующие группы.

 

1) Команды передачи данных:

а) между регистрами и памятью (включая стек), обмен содержимым источника и приемника;

б) ввода, вывода, табличного преобразования;

в) загрузка исполнительного адреса в РОНы, загрузка 4-байтового адресного объекта в регистры-указатели (начальный адрес сегмента и смещение в сегменте);

г) передача содержимого регистра F флагов в память, в стек и из стека.

2) Арифметические команды:

+ - × / двоичных чисел со знаком и без знаков (произведение и делимое представляются числами двойной длины),

коррекция десятичная + - упакованных двоично-десятичных чисел,

коррекция десятичная + - × / распакованных двоично-десятичных чисел.

3) Логические команды и сдвиги:

инверсия, конъюнкция, дизъюнкция, неравнозначность;

TEST - поразрядная конъюнкция операндов с установкой флагов но без занесения результатов;

сдвиги на 1 или заданное число разрядов (константа сдвига располагается в CL).

4) Команды передачи управления:

переходы, вызовы, возвраты - имеют две разновидности - внутрисегментные (" близкие" ) и межсегментные (" дальние" ).

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

В 16 командах условных переходов проверяются отношения знаковых и беззнаковых чисел. Имеются 4 команды управления циклами, которые рассчитаны на передачу числа повторений цикла в регистре CX.

5) Команды обработки цепочек данных

Команды манипулируют последовательностями байт или слов в памяти. Время обработки цепочек этими командами гораздо меньше, чем соответствующей программной реализацией.

 

Общая структура МПС

 

Микропроцессор - центральная часть любой микропроцессорной системы (МПС) - включает в себя АЛУ и ЦУУ, реализующее командный цикл. МП может функционировать только в составе МПС, включающей в себя, кроме МП, память, устройства ввода/вывода, вспомогательные схемы (тактовый генератор, контроллеры прерываний и ПДП, шинные формирователи, регистры-защелки и др.).

В любой МПС можно выделить следующие основные части (подсистемы):

· процессорный модуль;

· память;

· внешние устройства (внешние ЗУ + устройства ввода/вывода);

· подсистему прерываний;

· подсистему прямого доступа в память.

 
 

Связь между процессором и другими устройствами МПС может осуществляться по принципам радиальных связей, общей шины или комбинированным способом. В однопроцессорных МПС, особенно 8- и 16-разрядных, наибольшее распространение получил принцип связи " Общая шина", при котором все устройства подключаются к интерфейсу одинаковым образом (Рис. 3.1).

 

Рис. 3.1. Структура МПС с интерфейсом " Общая шина"

Все сигналы интерфейса делятся на три основные группы - данных, адреса и управления. Многочисленные разновидности интерфейсов " Общая шина" обеспечивают передачу по раздельным или мультиплексированным линиям (шинам). Например, интерфейс Microbus, с которым работают большинство 8-разрядных МПС на базе i8080, передает адрес и данные по раздельным шинам, но некоторые управляющие сигналы передаются по шине данных. Интерфейс Q-bus, используемый в микро-ЭВМ фирмы DEC (отечественный аналог - микропроцессоры серии К1801) имеет мультиплексированную шину адреса/данных, по которой эта информация передается с разделением во времени. Естественно, что при наличии мультиплексированной шины в состав линий управления необходимо включать специальный сигнал, идентифицирующий тип информации на шине.

Обмен информацией по интерфейсу производится между двумя устройствами, одно из которых является активным, а другое - пассивным. Активное устройство формирует адреса пассивных устройств и управляющие сигналы. Активным устройством выступает, как правило, процессор, а пассивным - всегда память и некоторые ВУ. Однако, иногда быстродействующие ВУ могут выступать в качестве задатчика (активного устройства) на интерфейсе, управляя обменом с памятью (т.н. режим прямого доступа в память - см. раздел 8).

Концепция " Общей шины" предполагает, что обращения ко всем устройствам МПС производится в едином адресном пространстве, однако, в целях расширения числа адресуемых объектов, в некоторых системах искусственно разделяют адресные пространства памяти и ВУ, а иногда даже и памяти программ и памяти данных.

 

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-13; Просмотров: 686; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.029 с.)
Главная | Случайная страница | Обратная связь