Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 23
Текст из файла (страница 23)
□ DF — направление, определяет направление модификации адресов массивов в командах цепочек (увеличение или уменьшение адреса);
□ IF — маскирует внешнее прерывание по входу 1NT (при IF = 1 прерывание разрешено);
□ -гр — управляет пошаговым режимом работы микропроцессора.
При TF = 1 после выполнения каждой команды автоматически формируется прерывание с вектором 1.
6.2.1. Распределение адресного пространства
Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных и адреса и составляет 220 байтов = 1 Мбайт. В этом адресном пространстве микропроцессору одновременно доступны лишь четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS — сегмент кода (для размещения программы) и SS — сегмент стека.
Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде одним из многочисленных, предусмотренных системой команд, способов и также составляет 16 битов.
Таким образом, размер каждого сегмента в i8086 составляет 216 байтов = = 64 Кбайт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется на рис. 6.6, из которого видно, что граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.
По умолчанию сегментные регистры выбираются для образования физического адреса следующим образом: при считывании команды по адресу IP используется CS, при обращении к данным — DS или ES, при обращении к стеку — SS. С помощью специальных приставок к команде (префиксов) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны таким образом, что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS = SS = DS = ES = 0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса— вариант организации адресного пространства i8080.
6.2.2. Система команд i8086
Система команд i8086 и, вообще, всего семейства jc86 подробно описана в многочисленных справочниках и руководствах, например [11, 12, 13], поэтому далее мы кратко остановимся только на особенностях системы команд i8086, не вдаваясь в излишние подробности.
i8086 отличается разнообразием форматов команд и способов адресации. Длина команды может составлять от 1 до 6 байтов, причем в первых двух байтах (иногда — в первом) определяется код операций, количество и длина операндов и способ их адресации. В остальных байтах команды могут размещаться непосредственный операнд, прямой адрес или смещение.
Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой — ячейку памяти или регистр.
Операнд в памяти может адресоваться прямо или косвенно посредством содержимого базовых (BP, ВХ) или индексных (SI, DI) регистров, а также их суммы. Предусмотрены многочисленные варианты относительной адресации, при которых логический адрес образуется как сумма двух или трех слагаемых— одного или двух регистров процессора и 8- или 16-разрядного смещения, размещаемого в команде.
Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива — в режиме косвенной адресации посредством ВХ, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.
Система команд насчитывает 113 базовых команд, объединенных в следующие группы:
□ команды передачи данных:
• между регистрами и памятью (включая стек), обмен содержимым источника и приемника;
• ввод, вывод, табличное преобразование;
• загрузка исполнительного адреса в РОН, загрузка 4-байтового адресного объекта в регистры-указатели (начальный адрес сегмента и смещение в сегменте);
• передача содержимого регистра F флагов в память, в стек и из стека;
□ арифметические команды:
• сложение, вычитание, умножение и деление двоичных чисел со знаком и без знака (произведение и делимое представляются числами двойной длины);
• десятичная коррекция сложения и вычитания упакованных двоично-десятичных чисел;
• десятичная коррекция сложения, вычитания, умножения и деления рао пакованных двоично-десятичных чисел;
□ логические команды и сдвиги:
• инверсия, конъюнкция, дизъюнкция, неравнозначность;
• TEST— поразрядная конъюнкция операндов с установкой флагов, но без занесения результатов;
• сдвиги на 1 или заданное число разрядов (константа сдвига располагав ется в CL);
□ команды передачи управления: переходы, вызовы, возвраты имеют две разновидности— внутрисегментные ("близкие") и межсегментные ("дальние"). При близких передачах загружается только IP, при дальних IP и CS. Передачи управления могут быть прямыми (целевой адрес в команде) или косвенными (целевой адрес вычисляется с использование! стандартных режимов адресации). В 16 командах условных переход дов проверяются отношения знаковых и беззнакоьых чисел. Имеются 4 команды управления циклами, которые рассчитаны на размещение числ повторений цикла в регистре СХ;
□ команды обработки цепочек данных манипулируют последовательностями байтов или слов в памяти. Время обработки цепочек этими командам гораздо меньше, чем соответствующей программной реализацией.
6.3. Функционирование основных подсистем МПС
Теперь можно рассмотреть функционирование основных подсистем базово; МПС с интерфейсом типа "общая шина". Этот термин используется в дву; смыслах: во-первых, как обозначение принципа организации связи процесс ра с другими устройствами в составе ЭВМ, во-вторых, как обозначен (в русском переводе) конкретного интерфейса Unibus мини-ЭВМ семейст! PDP-11 фирмы DEC.
Unibus явился, пожалуй, первым интерфейсом, в котором были полностЦ реализованы принципы "общей шины":
□ все линии интерфейса делятся на три группы: адрес, данные, управление;
□ все устройства, в т. ч. процессор, подключаются к линиям интерфейс одинаковым образом;
□ идентификация объектов на шине (ячеек памяти, регистров внешних устройств) осуществляется с помощью уникального для каждого объекта адреса;
□ в каждый момент времени по шине могут взаимодействовать только два устройства, одно из которых является активным, а другое — пассивным. Активное устройство формирует адрес обмена, управляющие сигналы и может выдавать (в цикле записи) или принимать (в цикле чтения) данные, которые принимает или выдает пассивное устройство;
□ обмен между устройствами может осуществляться в синхронном или асинхронном режиме. При синхронном обмене все временные характеристики обмена определяются только активным устройством, которое не анализирует ни готовность пассивного к обмену, ни факт завершения обмена. Синхронный обмен допустим лишь с быстродействующими пассивными устройствами (их быстродействие должно быть не ниже быстродействия активного устройства), которые всегда готовы к обмену (например, регистр двоичной индикации). При асинхронном обмене пассивное устройство формирует сигнал готовности к обмену и/или сигнал завершения обмена, которые анализирует активное устройство.
Интерфейсы, реализующие принципы "общей шины", широко распространились в мини- и микроЭВМ, МПС различного назначения. Многие из них, правда, нарушали некоторые принципы "канонической общей шины", например, за счет появления отдельных адресных пространств регистров процессора и портов ввода и вывода. Однако основные принципы, изложенные выше, сохраняются в многочисленных разновидностях таких интерфейсов.
К достоинствам интерфейсов типа "общая шина" можно отнести его относительную простоту, гибкость системы и возможность ее модификации в широких пределах.
К недостаткам — невозможность распараллеливания процессов обмена (одновременно осуществляется связь только пары устройств). Кроме того, наличие на общей шине устройств с существенно различным быстродействием затрудняет достижение оптимальных характеристик системы.
В разд. 6.1.3 мы подробно рассмотрели организацию процессорного модуля на базе процессора i8086. Состав внешних выводов процессорного модуля (см. рис. 6.3) позволяет подключить его к интерфейсу, реализованному по принципу общей шины:
□ линии адреса АВ[19:0];
□ линии данных DB[15:0];
□ линии управления RDM, WRM, RDIO,WRIO.
Другие линии управления, входящие в состав интерфейса, будут добавлены при рассмотрении соответствующих подсистем.
6.3.1. Оперативная память
Объем адресного пространства МПС с интерфейсом "общая шина" определяется главным образом разрядностью шины адреса и, кроме того, номенклатурой управляющих сигналов интерфейса. Управляющие сигналы могут определять тип объекта, к которому производится обращение (ОЗУ, ВУ, стек, специализированные ПЗУ и др.). В случае, если МП не выдает сигналов, идентифицирующих тип пассивного устройства (или они не используются в МПС) — для селекции берутся только адресные линии. Число адресуемых
объектов составляет в этом случае 2*, где к — разрядность шины адреса. Будем называть такое адресное пространство единым. Иногда говорят, что ВУ в едином адресном пространстве "отображены на память", т. е. адреса ВУ занимают адреса ячеек памяти.
При использовании информации о типе устройства, к которому идет обращение, одни и те же адреса можно назначать для устройств разных типов, осуществляя селекцию с помощью управляющих сигналов.
Так, большинство МП выдают в той или иной форме информацию о типе обращения. В результате в большинстве интерфейсов присутствуют отдельные управляющие линии для обращения к памяти и вводу/выводу, реже — к стеку или специализированному ПЗУ. В результате суммарный объем адресного пространства МПС может превышать величину 2к .
Например, системная шина МПС на базе микропроцессора i8086 включает 20-разрядную шину адреса и управляющие сигналы, идентифицирующие обращение к памяти (RDM, WRM) и вводу/выводу (RDIO, WRIO). Поэтому в системе доступны 1 Мбайт ячеек памяти (адреса 00000 — FFFFF) + 64 Кбайт адресов ввода + 64 Кбайт адресов вывода (0000 — FFFF). Последняя величина определяется тем, что в командах ввода/вывода процессоров семейства х86 адрес внешнего устройства имеет разрядность 16 битов.
Диспетчер памяти
При необходимости расширить объем памяти за пределы адресного пространства можно воспользоваться т. н. диспетчером памяти. В простейшем случае он представляет собой программно-доступный регистр, который должен располагаться в пространстве ввода/вывода. В него заносится номер активного в данный момент банка памяти, причем объем банка может равнять-: ся объему адресного пространства МП.
Очевидно, в каждый момент времени процессору доступен только один банк. При необходимости перехода в другой банк памяти МП должен предварительно выполнить программную процедуру (часто всего одну команду) перезагрузки содержимого регистра номера банка.
К развитию этой идеи можно отнести механизм сегментации памяти в 16- и 32-разрядных МП фирмы Intel.
6.3.2. Ввод/вывод
Подсистема ввода/вывода (ПВВ) обеспечивает связь МП с внешними yci ройствами, к которым будем относить:
□ устройства ввода/вывода (УВВ): клавиатура, дисплей, принтер, датчики и исполнительные механизмы, АЦП, ЦАП, таймеры и т. п.;
□ внешние запоминающие устройства (ВЗУ): накопители на магнитных ди( ках, "электронные диски", CD и др.
В рамках рассмотрения ПВВ будем полагать термины "УВВ" и "ВУ" синопн мами, т. к. обращение к ним со стороны процессора осуществляется по одним законам.
ПВВ в общем случае должна обеспечивать выполнение следующих функций:
□ согласование форматов данных, поскольку процессор всегда выдает/принимает данные в параллельной форме, а некоторые ВУ — в последовательной. С этой точки зрения различают устройства параллельного и последовательного обмена. В рамках параллельного обмена не производится преобразование форматов передаваемых слов, в то время как при последовательном обмене осуществляется преобразование параллельного кода в последовательный и наоборот. Все варианты, при которых длина слова ВУ (больше 1 бита) не совпадает с длиной слова МП, сводятся к разновидностям параллельного обмена;
□ организация режима обмена — формирование и прием управляющих сиг-налой, идентифицирующих наличие информации на различных шинах, ее тип, состояние ВУ (Готово, Занято, Авария), регламентирующих временные параметры обмена. По способу связи процессора и ВУ (активного и пассивного) различают синхронный и асинхронный обмены, различия между которыми мы обсудили в начале настоящей главы.