Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект II частина.doc
Скачиваний:
38
Добавлен:
17.03.2016
Размер:
534.02 Кб
Скачать

5.3.2. Векторная система прерываний

В векторной системе прерывания устройство, вызвавшее прерывание, идентифицируется с помощью внешних по отношению МП схем. Эти схемы разрешают конфликты, возникающие при одновременном поступлении нескольких запросов, и предоставляют обслуживание только одному устройству.

Векторная система прерываний с идентификацией устройств при помощи адресов.

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

Для обработки прерываний в МП предусмотрены две управляющие линии: «Прер» (прерывание) и «ППрер» (подтверждение прерывания). Линия «Прер» входная для МП и служит для передачи внешних запросов на прерывание (состояние 1 соответствует наличию запроса). Линия «Ппрер» выходная для МП и служит для стробирования подаваемого извне на ШД адреса перехода на программу прерывания.

На рис.5.7. показаны схемы для одного устройства. Устройству принадлежит один порт для ввода данных (на рис.5.7.(а) не показан), вводной порт состояния и выводной порт управления (аналогично рис.5.1., 5.5.). Один бит в порте состояния (крайний левый), играет особую роль. Кроме того инверсия этого бита формирует одно из трех условий запроса на прерывание:

  1. Рассматриваемый крайний бит (его инверсия) в виде сигнала «порт готов» должен быть в состоянии «1».

  2. Выбранный бит в порте управления, называемый «маской прерываний» должен быть в состоянии «1». С его помощью программа при необходимости может заблокировать прерывания от данного конкретного устройства, не запрещая прерываний от других устройств.

  3. Другие, более приоритетные устройства должны дать разрешение данному устройству. С этой целью строится цепочка, как показано на рис.5.7.(б) которая связывает устройства друг с другом в порядке присвоенных им приоритетов.

"1"

Рис. 5.7. Векторная система прерываний с адресами прерываний, приходящими от устройств, и с использованием цепочки приоритетов.

а) Схема выдачи адреса прерывания от устройства.

б) Связи в цепочке приоритетов.

Три сигнала «Маска прерывания», «порт готов» и «П-вход» подаются на вентиль «И» DD1 и порождают сигнал запроса прерывания от данного устройства.

Когда хотя бы в одном устройстве сигнал запроса прерывания принимает значение «1», такое же значение подается на управляющую линию «Прер» в МП.

Получив запрос на прерывание МП в соответствующий момент откликнется сигналом «ППрер». Сигнал «ППрер» в каждом устройстве поступает на вентиль «И» DD2 вместе с запросом прерывания от устройства. Выход вентиля используется для стробирования тристабильного формирователя DD3, который подключает на ШД 8-битовый адрес, соответствующий программе обработки прерывания данного устройства.

Передача адреса в МП занимает один машинный цикл и аналогична передаче данных из порта ввода. Разница только в том, что момент передачи определяется не линией «ввод» а линией «ППрер».

Внутри МП события при прерываниях развиваются следующим образом. Если внутренний флаг прерываний сброшен в «0» то запрос на прерывание игнорируется. Если же флаг установлен в «1», то логическая «1» на линии «Прер» будет воспринята как запрос прерывания. После этого сначала завершается выполнение текущей команды. Затем содержимое программного счетчика, т.е. адрес следующей команды, заносится в стек. Флаг прерывания сбрасывается, и тем самым блокируются все прерывания вплоть до момента, когда флаг будет снова установлен в «1» по команде программы. Далее один машинный цикл затрачивается на прием 8-битового адреса от прерывающего устройства. Этот адрес помещается в младшую половину программного счетчика, старшая половина которого сбрасывается. Таким образом переход осуществляется по адресу, не выходящего за пределы первых 256 ячеек.

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

Векторная система прерываний с начальной командой, поступающей от устройства

В некоторых МП (КР580ИК80А) применяется система прерываний с посылкой в МП команды от устройства. Такие МП в ответ на поступившее прерывание выбирают очередную выполняемую команду не из памяти, а из схем интерфейса с соответствующим устройством. В отличии от других систем прерываний в данной системе не нужно автоматически сохранять программный счетчик. Устройство посылает в МП команду безусловного вызова подпрограмм (CALL) и адрес этой подпрограммы, которая и выполнит обработку прерывания. В 580-той серии для этой цели используется БИС программируемого контроллера прерываний ПКП КР580ВН59.

БИС ПКП представляет собой устройство, реализующее до 8 уровней запросов на прерывание с возможностями программного маскирования и изменения дисциплины обслуживания прерываний. За счет каскадного включения БИС ПКП число уровней прерывания может быть расширено до 64.

В состав БИС (рис. 5.8.1) входят:

  • двунаправленный 8-разрядный буфер данных (ВD), предназначенный для сопряжения ПКП с системной информационной шиной;

  • Блок управления записью, чтением (RWCU), принимающий управляющие сигналы от МП и задающий режим функционирования ПКП;

  • Схема каскадного буфера-компаратора (СМР), используемая для включения в систему нескольких ПКП;

  • Схема управления (CU), вырабатывающая сигнал прерывания и формирующая трехбайтную команду CALL для выдачи на шину данных;

  • Регистр запросов прерываний (RGI), используемый для хранения всех уровней прерываний, на который поступают запросы;

  • Схема принятия решений по приоритетам (PRB), идентифицирующая приоритеты запросов и выбирающая запрос с высшим приоритетом;

  • Регистр обслуживаемых прерываний (ISR), сохраняющий уровни запросов прерывания, находящихся на обслуживании ПКП;

  • Регистр маскирования прерываний (RGM), обеспечивающий запрещение одной или нескольких линий запросов прерывания.

Схема управления

Регистр маскирования

рег.

обсл.

прер.

Схема

приор.

рег.

запр.

прер.

Рис. 5.8.1. Структура БИС КР580ВН59

ПКП позволяет реализовать процесс прерывание по запросам от внешних устройств или по опросу микропроцессором запросов на обслуживание внешних устройств.

При обслуживании прерывания по запросу от внешних устройств выполняется следующая последовательность операций:

  • запросы прерываний поступают на входы IR0-IR7 и устанавливают соответствующие разряды RGI;

  • ПКП принимает запросы, оценивает их приоритеты и формирует сигнал прерывания INT;

  • МП принимает сигнал INT, если прерывания разрешены, и подтверждает прием выдачей сигнала INTA;

  • После получения сигнала INTA ПКП устанавливает разряд регистра ISR, соответствующий запросу с наивысшим приоритетом, сбрасывает соответствующий разряд и выдает на шину данных код команды CALL;

  • МП выдает еще два сигнала INTA, которые позволяют ПКП передать на шину данных 16-разрядный адрес подпрограммы обслуживания прерывания, причем младший байт адреса передается по первому сигналу INTA, а старший – по второму.

5.4. Интерфейс с главной памятью

Главная память – важнейшая составная часть микроЭВМ, поскольку в ней хранятся программы и данные.

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

Пространство памяти микропроцессора

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

Модули ЗУ различного типа и размеров размещаются в пространстве памяти в соответствии с требованиями конкретного приложения. На рис.5.9 приведено одно из возможных таких размещений.

Слова

Адрес (шестнадцер.)

Номер битов

7

6

5

4

3

2

1

0

0000

0020

(1)

32 слова

х 8 бит

ПЗУ

Программа обработки прерываний

0040

(2)

32 слова

х 8 бит

ПЗУ

0060

(3)

32 слова

х 8 бит

ПЗУ

0080

(4)

32 слова

х 8 бит

ПЗУ

0100

(5)

128 слов

х 4 бита

ОЗУ

(6)

128 слов

х 4 бита

ОЗУ

Изменяемые данные

0200

(7)

256 слов х 8 бит

ПЗУ

FFFF

.

.

.

Не используются

Рис.5.9. Пример размещения модулей в пространстве памяти

После принятия решения о размещении модулей в пространстве памяти, нужно определить необходимые связи. Линии данных всех модулей нужно подсоединить к соответствующим линиям ШД. С помощью ША МП, выбирается модуль или группа параллельно работающих модулей и ячейка внутри выбранного модуля или модулей. Поскольку слова в одном модуле соответствуют последовательным словам пространства памяти , адресные линии модуля (т.е. его внутренние адреса) подсоединяются к младшим адресным линиям ША. Остальные адресные линии ША используются для выборки нужного модуля. Выборка модуля осуществляется при помощи управляющей линии «разрешение».

Рис.5.10. а)Модель модуля статической памяти с произвольным доступом.

б) Пример совместной стыковки 8 ЗУ по 8 Кбайт.

Линия «разрешение» вместе с линией «чтение/запись» используется также для определения момента выполнения операции и ее вида.

При операции чтения на линию «чтение/запись» всех модулей подается «1» и, кроме того, в соответствующий момент сигнал «1» выдается на линию «разрешение» выбранного модуля. При этом на ШД появляется содержимое адресуемой ячейки, и оно передается в МП.

При операции записи на линии ЧТ/ЗП всех модулей подается «0», и , кроме того, в соответствующий момент подеется логическая «1» на линию «разрешение» выбранного модуля. Это приводит к записи в адресуемую ячейку информации, которую подал МП на ШД.

Пример компоновки памяти

Схема подключения модулей памяти к МП соответствует размещению, приведенному на рис. 5.9. Всего на схеме семь модулей, отличающихся размерами и типом. Во всех модулях адресные линии соединены с младшими линиями ША, а линии данных – с соответствующими линиями ШД. Для формирования сигнала на линии «разрешение» берутся комбинации сигналов от нужных линий ША, а также управляющий сигнал «чтение» для модулей ПЗУ или логическая сумма сигналов «чтение» и «запись» для модулей ОЗУ.

Рис.5.11. Схема подключения модулей памяти в соответствии с размещением, показанным на рис.5.9.

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

Системы динамической памяти

Основное отличия динамической памяти от статической связано с необходимостью периодически регенерировать информацию. Как правило, регенерация происходит когда выполняется операция чтения. Модуль ЗУ с регенерацией при чтении содержит, по сравнению с модулем статического ЗУ, одну дополнительную управляющую линию «Выборка».

Рис. 5.16. Модель модуля динамической памяти

Совместное использование двух управляющих линий «разрешение» и «выборка» позволяет выполнить функции, аналогичные функциям линии «разрешение» в статическом модуле. Линия «разрешение» выполняет внутренние управляющие функции в модуле, а линия «выборка» управляет линиями данных, переводя их в третье состояние при логическом «0».

При чтении и записи на обе линии сигнал поступает одновременно. Однако при регенерации возбуждается только линия "разрешение". Операция регенерации сводится к заданию адреса строки и последующей подаче сигнала на линию «разрешение» при значении 1 на линии «чтение/запись». Каждая строка в модуле динамической памяти должна регенерироваться в пределах ограниченного промежутка времени после предыдущей регенерации. Этот промежуток (период регенерации) обычно порядка нескольких миллисекунд. За период регенерации должно быть выполнено столько операций регенерации, каково число строк в модуле памяти.

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

Пример схемы регенерации

Для приостановки МП на время регенерации блокируется линия тактирования. Это происходит перед началом машинных циклов, когда ША установлена МП в третье состояние.

ШУ

kKk

Рис. 5.17. Схема регенерации динамической памяти для иллюстративного МП

На схеме рис. 5.17. начало каждого машинного цикла определяется с помощью выходной управляющей линии МП «синхр». На эту линию подается импульс, совпадающий по времени с третьим тактовым импульсом каждого машинного цикла.

Время начала операции регенерации определяется при помощи К-разрядного счетчика DD1, увеличивающегося по каждому импульсу линии «синхр». К выходам счетчика подключен k-входовой вентиль «И» DD3, на выходе которого устанавливается «1», если «1» будут на всех k входах. Это условие определяет момент регенерации. При этом очередной тактовый импульс не пропускается через DD5 на МП и используется для регенерации.

Для выполнения регенерации в ЗУ на линию адреса подается содержимое счетчика DD2 через формирователи DD4. Затем возбуждается линия «разрешение» импульсом от тактового генератора, проходящим через 2 вентиля. Этим же импульсом регенерации увеличивается счетчик адреса DD2 для следующей операции регенерации. Кроме того, этим же импульсом продвигается и k-разрядный счетчик, который принимает нулевое значение и прекращает операцию регенерации. Следующий синхроимпульс от генератора будет пропущен на МП в качестве первого импульса нового машинного цикла. После этого DD1 снова будет подсчитывать импульсы «синхр», отмеряя время до очередной операции регенерации.

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

Прямой доступ к памяти

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

Для обеспечения ПДП на время передачи управление шинами забирается из-под контроля МП и передается внешнему устройству, которое может воспользоваться шинами для передачи данных между устройством и памятью.

Для аппаратного обеспечения ПДП в иллюстративном МП имеются две управляющие линии: ПДП и ППДП. По линии ПДП подается запрос на прямой доступ к памяти, а по ППДП – ответ на запрос (подтверждение).

Если по линии ПДП извне в МП проходит логическая «1», то после завершения очередного машинного цикла МП приостанавливает выполнение программы и освобождает ША и ШД, переводя их линии в третье состояние. После этого МП выдает подтверждение в виде 1 на линию ППДП. Все это время МП сохраняет контроль и над другими выходными линиями ШУ. В противном случае неопределенное состояние управляющих линий могло бы вызвать нежелательные события, например запись в случайную ячейку памяти. В частности, во время подачи 1 на ППДП на управляющие шины «чтение» и «запись» МП подает «0». При этом аппаратно в ЗУ необходимо объединить с помощью вентиля ИЛИ линии «чтение» и «запись» от МП и от внешнего устройства, а выходы вентилей соединить с соответствующими линиями памяти.

Устройство, желающее получить ПДП, сначала устанавливают 1 на линии ПДП. Затем оно ждет, пока появится 1 на линии ППДП. После этого устройство использует ША, ШД и свои линии ЧТ, ЗП для обмена данными с памятью аналогично тому, как это делает МП. Осуществив все необходимые передачи, устройство устанавливает на линии ПДП значение 0, в результате чего МП снова получает управление шинами.

Передачу данных в режиме ПДП можно считать одной из форм ввода/вывода, отличающегося от программируемого ввода/вывода тем, что управляет передачей не программа, а внешние схемы. При прямом доступе к памяти экономится время. Кроме того, ПДП в некоторых случаях оказывается единственным способом подключения таких быстрых внешних устройств, как винчестеры, когда программируемый ввод/вывод может просто не успевать за потоком данных.

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