русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ТЕМА: АРХИТЕКТУРА МИКРОПРОЦЕССОРА 8086/88


Дата добавления: 2015-06-12; просмотров: 868; Нарушение авторских прав


В состав прибора 8086/88 входят:

— микропрограммное у-во управления;

— АЛУ;

— программно-доступные регистры;

— регистр-указатель команд IP (Instruction Pointer) и другие внутренние регистры;

— блок формирования адресов;

— блок очереди команд.

МП обеспечивает 24 способа (режима) адресаций и выполнение 134 различных команд. Однако действия над числами с плавающей точкой аппаратно не поддерживаются и поэтому должны производиться программно или на дополнительном оборудовании (сопроцессоре плавающей точки).

Времена выполнения основных команд характеризуют следующие величины:

— минимальный цикл шины (последовательность микроопций, необходимых для передачи порции информации между МП и ПУ или ОП) — 4 такта;

— Копирование содержимого одного регистра в другой — 2 такта;

— сложение (при условии, что оба операнда находятся в регистрах МП и результат также помещается в регистр) --- 3 такта;

-- сложение (в случае, когда один операнд находится в регистре, а другой – в ОП, а результат записывается в регистр) – 14 тактов;

-- умножение (регистровое — аналогично третьему пункту) – 144 такта;

-- деление (аналогично) – 177 тактов.

Состав программно-доступных регистров МП 8086/88 представлен на рис. 1. Всего имеется 13 таких регистров, разрядность которых равна 16(2 байта), По функциональному назначению они делятся на:

1) регистры общего назначения (РОН);

2) сегментные регистры;

3) регистр флагов.

РОНы в принципе допускают произвольное использование в программах, однако обычно они имеют вполне определенное назначение, соответствующее их названию. Это связано с тем, что некоторые команды задействуют те или иные регистры без их явного указания; кроме того, данные или указатели адресов (мы вскоре рассмотрим технику формирования 20-разрядного исполнительного адреса из 16-разрядных указателей адресов, т.е. из номера первого параграфа в сегменте и относительного адреса в пределах сегмента).



Информационные регистры стандартно выполняют следующие функции:

1) регистр-аккумулятор АХ используется для временного хранения данных и промежуточных рез-тов;

2) базовый регистр ВХ служит для хранения указателя адреса области памяти, который участвует в формировании смещения при определенных режимах адресации;

3) регистр-счетчик СХ предназначен для организации циклов (хранит число повторений тела цикла);

4) регистр данных DX служит в качестве вторичного аккумулятора для временного хранения данных и промежуточных результатов.

Любой информационный регистр доступен под тремя именами, например:

АХ -- имя всего 16-разрядного регистра;

АН – имя старшего байта регистра АХ;

AL – имя младшего байта регистра АХ.

Содержимое индексных регистров SI и DI при определенных режимах адресации (возможно, совместно с содержимым регистра ВХ) используется при формировании относительного адреса для обращения к памяти. Разделение относительного адреса на две составляющие (базу и индекс) осуществлено в целях повышения эффективности выполнения операций над содержимым последовательных ячеек памяти (например, над элементами массива в цикле). Код в регистрах SI и DI при выполнении команды может автоматически возрастать или уменьшаться в режиме автоиндексации. Регистр SI применяется для индексации операнда, а регистр DI – результата.

Регистры-указатели BP и SP используются для работы со стеком, который служит, в частности, для передачи аргументов подпрограмме, а также возврата значений и управления в основную программу. Следует иметь в виду, что стек не организован аппаратно, а реализуется в определенной области ОЗУ. Содержимое регистра SP указывает на адрес элемента вершине стека; регистр же BP используется аналогично регистру ВХ (в том числе совместно с регистрами SI и DI), только указывает на адрес в стеке, а не в области данных. Это необходимо для организации произвольного доступа к содержимому стека, что удобно, например, для выборки из него аргументов подпрограммы. Кроме того, содержимым регистра BP можно отмечать дно стека, если его область пересекается с областью данных.

Индексные регистры и регистры-указатели могут применяться и по другому назначению, если в данный момент они не используются стандартным образом.

Сегментные регистры играют важную роль в формировании физических адресов ОП (т.е. исполнительных адресов), В связи с тем, что внутренние регистры МП 8086/88 16-разрядные, напрямую можно адресовать только 2^16 = 64 Кбайт памяти (минимальная адресуемая единица – байт), этого для реальных приложений явно недостаточно. Для расширения адресного пространства до 1Мбайт (поддерживается 20-разрядным адресом) в МП 8086/88 используется сегментная организация памяти. В соответствии с этим 1-Мбайт адресное пространство логически делится на 64 К параграфовпо 16 байт. Поэтому для хранения номера параграфа оказывается достаточным 16-ти разрядов, причем этот номер содержится в сегментном регистре.

Сегмент представляет собой логическую область памяти, состоящую из целого числа параграфов, начинающуюся с какого-либо параграфа и содержимое которой можно адресовать 16-разрядным кодом. Следовательно, размер сегмента не может превышать 64 Кбайт (4 К параграфов).

Исполнительный адрес (рис. 2) формируется путем сложения двух составляющих:
1) 20-разрядного адреса сегмента, представляющего собой номер первого

параграфа в сегменте, умноженный на 16;

2) 16-разрядного относительного адреса в рамках сегмента.

В действительности умножение номера первого параграфа в сегменте на 16 осуществляется путем сдвига содержимого сегментного регистра на 4 разряда влево. Очевидно, адрес сегмента всегда кратен 16-ти.

Сегментную организацию памяти иллюстрирует рис. 3.

Сам же относительный адрес внутри сегмента формируется в соответствии с заданным в команде режимом адресации из указателей адресов, хранящихся в РОНах, и содержимого адресного поля команды.

МП имеет доступ к четырем сегментам:

1) сегменту команд (программному сегменту) CS, содержащему последовательность команд программы;

2) сегменту данных DS, хранящему данные для выполнения команды;

3) дополнительному сегменту ES, обычно используемому для запоминания промежуточных результатов, т.т. в кач-ве дополнительной рабочей памяти;

4) сегменту стека SS, содержащему стека, в котором размещаются значения локальных переменных и через который осуществляется связь по информации между основной программой и подпрограммой, что уже отмечалось.

Тот или иной сегментный регистр задается в команде явно или предполагается неявно. Различные сегменты могут перекрываться, совпадать или занимать непересекающиеся области памяти. На это нет никаких ограничений. Так, например, для простой программы все перечисленные сегменты могут начинаться с одного адреса. Для объемных программ, наоборот, может потребоваться использование большего кол-ва сегментов, поэтому система команд МП обеспечивает смену содержимого сегментных регистров и передачу управления из одного программного сегмента в другой (дальнюю передачу управления наряду с ближней), За счет сегментирования поддерживается также простая реализация перемещаемости программ в ОЗУ. Однако не следует считать, что сегментная организация памяти является панацеей от всех бед: в действительности именно она доставляет много хлопот программистам.

С точки зрения аппаратуры размер любого сегмента составляет 64 Кбайт. Меньший же размер может фиксироваться только в голове программиста путем ограничения области относительных адресов, за счет чего используемая часть сегмента может быть отведена под другой сегмент.

Иногда удобно считать, что память имеет страничную организация с размером страницы, равным 64 Кбайт. Тогда старшие 4 бита 20-разрядного адреса указывают

 

       
 
   
 


, а остальные – относительный адрес в рамках страницы.

Как уже говорилось, минимальной адресуемой областью памяти является байт. Слово содержит 2 байта, причем младший байт слова помещается в однобайтовую ячейку с четным номером, а старший – в следующую однобайтовую ячейку с на единицу большим нечетным номером (учтите то, что байты адресуются с нуля). Аналогично размещается в памяти и 32-разрядное двойное слово (сначала — младшее слово, а затем – старшее) Это нужно всегда иметь в виду при низкоуровневой работе с памятью.

Последний из программно-доступных регистров – регистр флагов FLAGS – предназначен для фиксации различных сигналов, вырабатываемых в МП в ходе интерпретации команд (к примеру, знака рез-та выполненной в АЛУ операции), Эта информация может использоваться для организации ветвлений в программе.

Регистр-указатель команд IP (традиционное название – счетчик команд) служит для хранения адреса очередной и формирования адреса следующей инструкции (конечно, в форме относительного адреса в пределах программного сегмента).

Блок формирования адресов обеспечивает аппаратное формирование исполнительного адреса по описанным выше принципам.

Для повышения производительности ПЭВМ МП 8086/88 содержит блок очереди команд на 6 байт. В этот блок осуществляется упреждающее считывание кодов команд, текстуально следующих за выполняемой. Подкачка очереди команд производит асинхронно и одновременно с выполнением текущей команды. Это в совокупности с большой вероятностью последовательного выполнения команд дает ощутимый выигрыш по быстродействию Описанная техника не работает только при реализации команды, передающей управление (очередь команд оказывается бесполезной).

Назначение средств поддержки прямого доступа к памяти (дописать из (1.3)

 

Параграф 0
Параграф 1
Сегмент из k параграфов
Адрес сегмента

Относительный адрес
Параграф n

Параграф n + k
Параграф n + k + 1
 
Параграф 64K - 1

Рис. 3. Сегментная организация памяти


АХ АН AL аккумулятор информа-ционные регистры Регистры общего назначения
BX BH BL база
CX CH CL счетчик
DX DH DL индекс
 
SI     Индекс источника Индексные регистры и регистры-указатели
DI     Индекс приемника
BP     Указатель базы
SP     Указатель стека
   
SS     Сегмент стека Сегментные регистры  
DS     Сегмент данных  
ES     Дополнительный сегмент  
CS     Сегмент команд  
           
FLAGS   Регистр флагов      

Рис. 1. Программно-доступные регистры МП 8086/88

Страничная организация памяти —организация, при которой адресное пространство памяти разбивается на малые участки-страницы. Используется для управления памятью в системах, работающих в защищенном режиме. Как правило, такая организация памяти подразумевает пейджинг (механизм виртуальной памяти, при котором страницы вытесняются на диск или «подкачиваются» с диска).

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

 

Защищенный режим —режим работы процессора Intel 386, при котором он выполняет множество проверок корректности обращений к памяти, вызовов функций, доступа к портам ввода-вывода и т.д. Такая защищенность позволяет ОС-е обрабатывать ошибочные операции. Для того, чтобы иметь возможность использовать все адресное пространство и преимущества виртуальной памяти 386 процессора, приложение должно работать в защищенном режиме.

Виртуальный реальный режим —режим виртуального процессора. Это режим реализуется в рамках защищенного режима (процессор может переключиться в виртуальный режим только из защищенного режима). В вирт.режиме процессор способен выполнять программы, составленные для процессора i8080, находясь в защищенном режиме и используя аппаратные средства защищенного режима: мультизадачность, изолирование адресных пространств отдельных задач друг от друга, страничная виртуальная память.

Реальный режим — режим работы процессора Intel 80386, совместимый с процессором Intel 8086. В реальном режиме невозможны доступ к виртуальному адресному пространству процессора 386 или такие возможности, как замещение страниц по требованию.



<== предыдущая лекция | следующая лекция ==>
КЛАССИФИКАЦИЯ МИКРОПРОЦЕССОРОВ | Доступ до баз даних з Java


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.332 сек.