Работа микропроцессора при выполнении программного прерывания



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


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



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


ЗНАЕТЕ ЛИ ВЫ?

Работа микропроцессора при выполнении программного прерывания



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

Связь между номером прерывания и адресом основной памяти, соответ­ствующим точке входа в обработчик прерывания, осуществляется через табли­цу векторов прерываний, занимающую 1 Кбайт сегмента 0 основной памяти. Поскольку адрес любого байта основной памяти определяется базовым адресом сегмента (2 байта) и смещением в сегменте (2 байта), вектор прерыва­ний разделен на четверки байтов, имеющие структуру, показанную на рис.12.3.

Рис. 12.3. Структура записи в векторе прерываний

Для получения адреса обработчика прерывания № nh необходимо:

• по номеру прерывания определить адрес первого байта «четверки» в векторе прерываний (он равен п*4);

• выбрать 4 байта из 0 сегмента основной памяти, начиная с байта 4nh;

• два последних байта поместить в регистр CS;

• два первых байта поместить в счетчик команд IP. После этого начнет выполняться первая команда обработчика прерыва­ния № nh.

Таблица векторов прерываний используется не только для хранения ад­ресов обработчиков прерываний, но и для указания на места хранения в ОП служебной информации. Для этой цели служат векторы прерываний 1Dh, 1Eh, 1Fh, 41h, 43h, 46h, 4Ah. Так, вектор IDh содержит адрес таблицы пара-

метров видеосистемы (а не обработчика прерывания); вектор 1Eh - таблицы параметров дискет; 1Fh - адрес знакогенератора адаптера CGA и т.д.

Команда INT, кроме определения адреса обработчика прерывания, вы­полняет следующие действия:

• сохраняет в стеке часть слова состояния процессора:

(SP) <— (SP) – 2

(вершина стека) <— (регистр флагов)

(SP) <— (SP) – 2

(вершина стека) <— (CS)

(SP) <— (SP) – 2

(вершина стека) <— (IP)

• сбрасывает флаги разрешения прерывания и трассировки:

(IF) <— О

(TF) <— О

• заносит адрес точки входа обработчика прерываний в регистры CS и IP:

(CS) <— (номер_прерывания * 4+ 2) (IP) <— (номер_прерывания * 4)

Команда INT относится к парным командам - каждый обработчик пре­рывания заканчивается командой IRET (возврат из прерывания). По команде IRET (без параметров) выполняются следующие действия:

(IP) <— (вершина стека)

(SP) <— (SP)+2 (CS) <— (вершина стека) (SP) <—- (SP)+2

(регистр флагов) <— (вершина стека) (SP) <— (SP) + 2

Каждый обработчик прерываний BIOS и DOS может выполнять несколько различных функций. В команде INT никак не определяется, какую именно функцию должен выполнить обработчик прерываний. Поэтому перед обра­щением к команде INT в регистры микропроцессора должна быть занесена информация, определяющая, какую функцию необходимо выполнить.

Например, по команде INT 13h могут быть выполнены следующие функ­ции:

00h - сброс дисковой системы;

0lh- определение состояния дисковой системы (успешное завершение, некорректная команда, не найдена адресная метка и т.д.); 02h - чтение секторов в основную память; 03h - запись секторов из основной памяти; 04h - контроль секторов (есть ошибка - нет ошибки); 05h- форматирование дорожки;

06h - для жесткого диска - форматирование дорожки с установкой фла­гов плохих секторов;

07h - для жесткого диска - форматирование диска, начиная с указанной дорожки;

08h - определение типа и текущих параметров диска... и т.д.

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

При выполнении команды INT номер функции должен содержаться в регистре АН микропроцессора. Остальные регистры должны включать необ­ходимые для этой функции параметры. Например, для функции 02h осталь­ные регистры микропроцессора должны содержать: AL - число читаемых секторов;

СН - номер дорожки, на которой расположены читаемые сектора; CL - номер сектора; DH - номер головки; DL - номер дисковода; ES:BX - адрес буфера для чтения.

В результате выполнения этой функции при возникновении ошибки флаг CF устанавливается в 1; в регистр AL заносится число считанных секторов, в регистр АН записывается код состояния, сформированный после оконча­ния операции:

00 - успешное завершение;

01 - некорректная команда;

02 - адресная метка не найдена;

FF - сбой операции опроса (для жесткого диска). Кроме команд INT и IRET в IBM PC, с прерываниями работают команды CLI (запрещение маскируемых прерываний) и STI (отмена запрета прерыва­ния).


1. Для чего необходима стековая память?

2. Как организована стековая память IBM PC?

3. Чем различаются стандарты XMS и EMS использования дополнитель­ной памяти IBM PC?

4. Каким образом определяется физический адрес ОП в реальном и в защищенном режимах?

5. Для чего необходим регистр флагов в исполнительном блоке МП?

6. Каким образом взаимодействуют узлы МП при выполнении арифме­тической команды?

7. Чем объясняется использование матричной организации ОП?

8. Каким образом заносится информация в постоянное ЗУ?

9. В каких случаях приходится сталкиваться с "вращением байтов" и чем оно объясняется?

10. Чем отличается память с выборкой по содержанию от памяти с про­извольным доступом?

11. С какой целью в ЭВМ реализован режим прерываний?

12. Какая информация включается в состав слова состояния процессора?

13. Какие действия выполняют команды, вызывающие программные пре­рывания?

14. В чем заключается подготовка ЦП к выполнению программного пре­рывания?


 

ЛЕКЦИЯ №13. УПРАВЛЕНИЕ ВНЕШНИМИ УСТРОЙСТВАМИ

Принципы управления

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

Передача информации с периферийного устройства в ЭВМ называется операцией ввода, а передача из ЭВМ в ПУ - операцией вывода.

Производительность и эффективность ЭВМ определяются не только воз­можностями ее процессора и характеристиками ОП, но и составом ПУ, их тех­ническими данными и способами организации их совместной работы с ЭВМ.

При разработке систем ввода-вывода ЭВМ особое внимание обращается на решение следующих проблем:

• должна быть обеспечена возможность реализации машин с перемен­ным составом оборудования (машин с переменной конфигурацией), в первую очередь с различным набором периферийных устройств, с тем чтобы пользователь мог выбирать состав оборудования (конфигура­цию) машины в соответствии с ее назначением, легко дополнять ма­шину новыми устройствами;

• для эффективного и высокопроизводительного использования обору­дования в ЭВМ должны реализоваться одновременная работа процес­сора над программой и выполнение периферийными устройствами. процедур ввода-вывода;

• необходимо упростить для пользователя и стандартизовать програм­мирование операций ввода-вывода, обеспечить независимость програм­мирования ввода-вывода от особенностей того или иного периферий­ного устройства;

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

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

Но автономность потребовала проведения проверок исправности уст­ройств при каждом обращении к ним. Появилась определенная технология обращения к автономным внешним устройствам - интерфейс.

Когда эту технологию унифицировали, появилось понятие стандартного интерфейса.

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

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

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

Во внешние устройства стали встраивать свою основную память, объем кото­рой должен обеспечивать вывод целой страницы (например, текста) при плотнос­ти 600 точек/дюйм - этот объем превышает иногда объем основной памяти ЭВМ.

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

При разработке пятого поколения ЭВМ была заложена интеллектуализа­ция общения: речевой ввод и вывод; графический ввод; ввод текстовой ин­формации без клавиатуры; естественно-языковое общение; общение на раз­ных естественных языках.

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

В общем случае для организации и проведения обмена данными между двумя устройствами требуются специальные средства:

• специальные управляющие сигналы и их последовательности;

• устройства сопряжения;

• линии связи;

• программы, реализующие обмен.

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

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

• внутренний интерфейс ЭВМ (например, интерфейс системной шины, НМД), предназначенный для сопряжения элементов внутри системно­го блока ПЭВМ;

• интерфейс ввода-вывода - для сопряжения различных устройств с системным блоком (клавиатурой, принтером, сканером, мышью, диспле­ем и др.);

• интерфейсы межмашинного обмена (для обмена между разными ма­шинами) предназначены для сопряжения различных ЭВМ (например, при образовании вычислительных сетей);

интерфейсы "человек - машина" - для обмена информацией между человеком и ЭВМ.

Для каждого интерфейса характерно наличие специального аппаратурного комплекса (рис.13. 1).

Рис. 13.1. Место интерфейса в аппаратурном комплексе

Характер использования этого аппаратурного комплекса определяется тех­нологией обмена, определенным церемониалом, идеологией данного интер­фейса, протоколом общения.

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

Если интерфейс обеспечивает обмен одновременно всеми разрядами пе­редаваемой информационной единицы (чаще всего байта или машинного слова), он называется параллельным интерфейсом.

Внутренний интерфейс ЭВМ всегда делается параллельным или после­довательно-параллельным (если одновременно передается не вся информа­ционная единица, а ее часть, содержащая несколько двоичных разрядов, на­пример, i8088 обеспечивает побайтовый, a 80386SX - двухбайтовый обмен через системную магистраль, тогда как основная информационная едини­ца - машинное слово - имеет длину у 8086 - 2 байта, а у 80386 - 4).

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

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

В зависимости от используемых при обмене программно-технических средств интерфейсы ввода-вывода делятся на два уровня: физический и ло­гический (рис-13.2).

В зависимости от степени участия центрального процессора в обмене данными в интерфейсах могут использоваться три способа управления об­меном:

• режим сканирования (так называемый "асинхронный" обмен);

• синхронный обмен;

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

Для внутреннего интерфейса ЭВМ режим сканирования предусматрива­ет опрос центральным процессором периферийного устройства (ПФУ): гото­во ли оно к обмену, и если нет - продолжение опроса периферийного устрой­ства (рис.13.3).

Рис. 13.2. Логический и физический уровни интерфейсов ввода-вывода

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

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

Режим сканирования упрощает подготовку к обмену, но имеет ряд недо­статков:

• процессор постоянно задействован и не может выполнять другую ра­боту;

• при большом быстродействии периферийного устройства процессор

не успевает организовать обмен данными.

Рис. 13.3. Алгоритм сканирования

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

Для быстрого ввода-вывода блоков данных и разгрузки процессора от управления операциями ввода-вывода используют прямой доступ к памяти (DMA - Direct Memory Access).

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

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

• освобождает процессор от управления операциями ввода-вывода;

• позволяет осуществлять параллельно во времени выполнение процес­сором программы с обменом данными между внешним устройством и основной памятью;

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

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

При работе в режиме прямого доступа к памяти контроллер ПДП выпол­няет следующие функции:

• принимает запрос на ПДП от внешнего устройства; • формирует запрос микропроцессору на захват шин системной магист­рали;

• принимает сигнал, подтверждающий вход микропроцессора в состоя­ние захвата (перехода в z-состояние, при котором процессор отключа­ется от системной магистрали);

• формирует сигнал, сообщающий внешнему устройству о начале вы­полнения циклов ПДП;

• выдает на шину адреса системной магистрали адрес ячейки ОП, пред­назначенной для обмена;

• вырабатывает сигналы, обеспечивающие управление обменом дан­ными;

• по окончании ПДП контроллер либо организует повторение цикла ПДП,

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

На рис. 13.4 приведена схема взаимодействия устройств микропроцессор­ной системы в режиме ПДП.

Контроллеры ПДП (КПДП) в IBM PC совместимы снизу-вверх, т.е. про­граммы, написанные с использованием КПДП ранних моделей ЭВМ, нор­мально работают и на более поздних моделях ЭВМ.



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

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