Формат команд процессора Интел Кор 7 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Формат команд процессора Интел Кор 7



Форматы команд этого процессора очень сложны и нерегулярны, изза обратной совместимости.

Есть 6 полей, из которых 5 – не обязательны:

1) Префиксный байт - дополнительный код операции, ставится перед командой, чтобы изменить ее действие.

2) Код операции – сам по себе мало что говорит о команде, его нужно полностью декодировать (это снижает производительность)

Дополнительные биты:

- что вызывается: слово или байт

- является адрес памяти (если он есть) приемником или исходником

3) Байт режима адресации (вся информация об операнде), но первые три бита – для расширения кода операции

4) Для некоторых команд – дополнительный байт, масштаб, индекс, база (Scale, Index, Base - SIB)

5, 6) Некоторые команды имею дополнительные байты для определения:

· Адреса команды (смещения)

· Константы (непосредственный операнд)

 

24. Ввод-вывод: программный, по прерываниям и ПДП

Для МП-системы разработано три основных режима ввода-вывода:

· программно-управляемый ввод-вывод,

· ввод-вывод по прерываниям,

· режим прямого доступа к памяти (ПДП).

2.6.1. Программный ввод-вывод

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

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

1) Синхронная передача данных характерна для периферийных устройств, для которых известны временные соотношения. При этом типе передачи устройство ввода-вывода должно быть готово к приему или передаче данных за время, равное времени выполнения определенной команды процессора. Синхронная передача реализуется при минимальных затратах технических и программных средств.

2) Асинхронная передача данных, иногда называемая обменом посредством “рукопожатия ”, широко используется в микроЭВМ. При такой передаче данных ЭВМ перед выполнением операции ввода-вывода проверяет состояние периферийного устройства. Блок-схема алгоритма асинхронного программного обмена (фрагмента некоторой программы) приведена на рис. 16.

Обычно при обмене необходимо:

• проверить состояние устройства (чтение регистра состояния (PC));

• активизировать устройство, если последнее готово к обмену;

• передать данные (чтение регистра данных (РД), запись РД);

• дезактивировать устройство.

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

Например, в процессах управления в этом случае возникает необходимость сохранения уровня сигналов управления на время ожидания передачи. Методом, позволяющим устранить подобные трудности, является передача данных с прерыванием программы.

Рис. 16. Блок-схема алгоритма асинхронного программного обмена

Ввод-вывод по прерываниям

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

При восприятии сигнала прерывания микропроцессор приостанавливает выполнение текущей программы, временно запоминае т ее состояние (как минимум, запоминается содержание PSW, РС) идентифицирует прерывающее устройство и осуществляет обмен информацией.

После завершения обмена восстанавливается состояние прерванной программы и возобновляется ее выполнение (рис. 17).

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

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

 

Ввод-вывод по прерываниям, однако, требует усложнения аппаратных средств – создания системы прерываний.

Структура таблицы векторов прерываний для ип от Intel имеет вид

 

Обращение к элементам таблицы осуществляется по 8-разрядному коду - типу прерывания

.
Тип прерывания Источник прерывания
  Деление на 0
  Пошаговый режим выполнения программы
  Запрос по входу NMI
· · ·
  Запрос по входу IRQ0 (системный таймер)
  Запрос по входу IRQ1 (контроллер клавиатуры)
· · ·
  Отсутствие сегмента в оперативной памяти
· · ·
  Пользовательское прерывание

На уровне электроники внешние прерывания организованы следующим образом. Имеется контроллер прерываний (микро­схема i8259А), выполняющий несколько важных функций:

· по­лучение сигналов на прерывания от внешних устройств,

· маски­ровка (т. е. запрещение обработки) некоторых прерываний,

· ар­битраж приоритетов прерываний и

· формирование очереди за­просов на прерывание.

Контроллер имеет три 8-разрядных ре­гистра и 8 входов от внешних устройств, называемых IRQ0, IRQ1,...IRQ7 (Interrupt ReQuest), выход INT на процессор (со­единяемый со входом процессора INTR) и вход обратной связи от процессора INTA, по которому процессор подтверждает на­чало обработки прерывания.

Запрос на прерывание, поступающий на некоторый вход IRQ, устанавливает в 1 соответствующий бит 8-разрядного регистра фиксации запросов прерываний (IRR). Если соответствующее прерывание не замаскировано 8-разрядным регистром маски (IMR может программироваться) и если процессор не занят об­работкой прерывания высшего или равного приоритета (что определяется 8-разрядным регистром ISR), запрос на прерыва­ние поступает с выхода INT на вход прерываний процессора INTR, и процессор подтверждает по линии INTA.

Один контроллер прерываний имеет 8 входов (IRQ), чего явно недостаточно для обслуживания внешних устройств современ­ного компьютера (таймер, часы реального времени, клавиату­ра, гибкий и жесткий диски, мышь, последовательные и парал­лельные порты и проч.).

Однако несколько контроллеров прерываний могут быть вклю­чены последовательно. На современных компьютерах (начиная с 286) один (ведущий) контроллер прерываний подключен непо­средственно к процессору, а второй (ведомый) своим выходом INT подключен ко входу IRQ2 ведущего контроллера. Итого получается 15 входов прерываний от IRQ0 до IRQ 15 (IRQ2 не может быть использован).

При подаче сигнала на прерывание от контроллера к процессо­ру по линии INTR-INT, одновременно по линиям данных из контроллера прерываний в процессор поступает номер вектора прерывания, который образуется путем сложения IRQ с некото­рым базовым номером, который присваивается ВIOSом кон­троллеру в процессе загрузки (значения по умолчанию 08h для ведущего контроллера и 70h для ведомого). Таким образом, например, номер вектора прерывания для клавиатуры будет 08+1=9 h, для жесткого диска 70 h +6=76 h.

Контроллер прерываний допускает перепрограммирование для установки различных режимов формирования очереди запро­сов, изменения приоритетов прерываний, изменения базовых номеров контроллеров. Такое перепрограммирование осущест­вляется через два байтовых порта 20 h и 21 h. По умолчанию IRQ отдельного контроллера имеют приоритеты в соответствии с их номерами (IRQ0 – наивысший, IRQ7 – наинизший).

 

Структура контроллера приоритетных прерываний имеет вид

 

Пример каскадного включения двух контроллеров прямого доступа к памяти



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 329; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.152.99 (0.01 с.)