Проников А.С. 1995 Т.2 Ч.2 (830967), страница 33
Текст из файла (страница 33)
Информация, необходимая микропроцессору для перехода к обслуживанию, называется вектором прерывания. Если каждое устройство предоставляет микропроцессору отличающийся от других вектор прерывания, то такое прерывание будет векторным. Если возникает потребность в векторном прерывании от многих устройств, а выбор устройств осуществляется в соответствии с приоритетом, то преры- ванне будет векторным приоритетным. Если же все устройства формируют один и тот же вектор прерывания, то такое прерывание называется безвекторным. Введение приоритетов связано с возможностью нескольких одновременных прерываний.
Существует ряд способов организации приоритетов: аппаратный, программный, смешанный. Аппаратный способ состоит в объединении интерфейсов в последовательную приоритетную цепочку, по которой от микропроцессора поступает сигнал подтверждения прерывания. Ближайший к микропроцессору интерфейс с запросом на прерывание примет сигнал подтверждения, а остальные интерфейсы будут заблокированы. Приоритет в этом случае будет тем выше, чем ближе интерфейс к микропроцессору. Программный способ состоит во введении в процедуру прерывания программы, последовательно опрашивающей интерфейсы и устанавливающей приоритеты в порядке опроса. Гибкий аппаратно-программный механизм приоритетов может быть реализован с помощью программируемой схемы управления приоритетными прерываниями, которая входит я общую логику управления шиной (см.
рис. 10.9). Схема управления приоритетными прерываниями содержит логику, необходимую для назначения приоритетов запросам, поступающим со стороны интерфейсов. Пусть запрос от интерфейса распознается как наиболее приоритетный. Тогда в трех младших битах регистра типа записывается номер линии с этим запросом, затем устанавливается единичный бит в регистре обслуживания и выдается сигнал прерывания микропроцессору. После возвращения в схему управления подтверждения от микропроцессора последнему выдается тип прерывания из регистра типа. Запросы с меньшими приоритетами будут заблокированы, пока ие сбросится бит в регистре обслуживания. Подобный сброс осуществляется программой обслуживания прерывания, а следовательно, регистр обслуживания должен быть программно доступен.
Регистр маски позволяет маскировать отдельные запросы, а следовательно, и этот регистр должен быть программно доступен. Третий вариант ввода-вывода состоит в прямом доступе к памяти (ПДП). Действия, обеспечивающие передачу по шине вычислителя одного байта или одного слова, называются циклом шины. В течение любого цикла шиной управляет один из подключенных к ней модулей — ведущий. Другой модуль, с которым ведущий взаимодействует, будет ведомым. Обычно ведущим является микропроцессор с его логикой управления шиной. Ведущим может стать и контроллер ПДП, связанный с одним или несколькими интерфейсами устройств ввода- вывода (см.
рис. 10.9). Контроллер ПДП, став ведущим шины, устанавливает адрес памяти на шину адреса, а затем посылает в интерфейс необходимые управляющие сигналы, побуждающие его выдать илн принять данные с шины данных. Контроллер ПДП может вернуть управление микропроцессору после передачи одного байта (слова), а при готовности следующего байта (слова) вновь запросить управление.
Контроллер ПДП может управлять шиной и до полной передачи целого блока. Организация контроллера ПДП показана на рис. 10.14. В регистр адреса загружается начальный адрес того массива в памяти, который служит буфером, а в регистр — счетчик байтов вносится число передаваемых байтов. При вводе в память и наличии вводимых данных 1б9 аааааа лла тж а атту7ааааалт~ алвалумаиаМа Рис. 10.14. Контроллер ПДП интерфейс делает запрос ПДП.
Далее следует цикл захвата шины контроллером ПДП, после чего содержимое регистра адреса контроллера выводится на шину адреса. Одновременно контроллер выдает подтверждение в интерфейс, сигнал считывания в интерфейс, сигнал записи в память. Вслед за этим интерфейс помещает данные на шину данных и снимает свой запрос.
Приняв байт '(слово), память возвращает в контроллер сигнал готовности. Контроллер формирует следующий адрес в регистре адреса, уменьшает содержимое регистра — счетчика байтов, снимает запрос шины. При нулевом состоянии счетчика выдается сигнал оповещения интерфейсу или запрос прерывания микропроцессору. Помимо микропроцессора, памяти, устройств ввода-вывода в состав вычислителя могут входить таймер и сопроцессор. Таймер осуществляет следующие операции: прерывание микропроцессора с постоянной частотой для того, чтобы операционная система могла переключать выполняемые программы„.вывод в устройство ввода-вывода точных временнйх сигналов с программируемыми периодами; измерение паузы между внешними событиями; подсчет числа событий; прерывание микропроцессора после запрограммированного числа событий и др.
Организация таймера показана на рис. 10.15. Все его регистры, кроме счетчика, программно доступны. Счетчик запускается с начального значения и выполняет вычитание до наступления обнуления. Генератор синхронизации определяет скорость счета, Выход признака нуля срабатывает при достижении счетчиком нуля; н сигнал с этого выхода можно подключить к устройству ввода-вывода для инициализации каких-то действий. Первоначально некоторая программа устанавливает значение регистра начального счета, далее это значение передается в счетчик. Текущее состояние счетчика можно про.
граммно прочитать в любой момент, н это не мешает таймеру выполнять свои действия. Сопроцессорной конфигурацией называют тандем ведущего центрального микропроцессора с ведомым микропроцессором, специально 110 ииг энгиииигвэи аиодриииииэ1ии иии игтриыиМг Уеуеиээиги эииэяиэиэииии эяу ЭФВуэаггюФг .уииэии иЭгиамгииии Рнс. 10.15. Органнаання таймера разработанным для выполнения арифметических операций. Система команд сопроцессора включает сложение, вычитание, умножение, деление, извлечение квадратного корня, возведение в степень и др.
Эти операции выполняются со скоростью, на несколько порядков более высокой, чем в обычном микропроцессоре. Сопроцессор не может выбирать свои команды, поэтому он должен работать с обычным микропроцессором, который действует как главный. Сопроцессор не реагирует на команды главною микропроцессора. Центральный микропроцессор и сопроцессор выполняют каждый свои команды из общей программы.
Если команда выполняется сопроцессором, то центральный микропроцессор кроме возможного считывания операнда для сопроцессора не предпринимает более никаких действий. Взаимодействие центрального микропроцессора и сопроцессора осуществляется следующим образом. Пусть очередная команда программы указывает на операцию в сопроцессоре. Операнд этой команды находится в регистре или памяти. Команда одновременно дешифруется центральным микропроцессором и сопроцессором.
Далее микропроцессор переходит к выполнению очередной команды (если операнд находится в регистре) илн считывает операнд для сопроцессора (если операнд находится в памяти), а уже затем переходит к выполнению очередной команды (своей). В это время сопроцессор выполняет указанную кодом операции команду, т. е. центральный микропроцессор и сопроцессор начинают работать параллельно до тех пор, пока центральному микропроцессору не понадобится сопроцессор для выполнения другой операции нли центральному микропроцессору не потребуется получить результат текущей операции.
Сопроцессорная конфигурация показана на рис. 10.16. Сопроцессор контролирует состояние микропроцессора, для того, чтобы знать о получении команды для себя. Команды к сопроцессору устанавливаются 171 Рис. 10.1б. Сопроцессорная конфигурация в составе вычислителя в очередь. При наличии признака очереди и распознавании кода своей операции сопроцессор выполняет указанную операцию. Применение сопроцессора — это способ повышения вычислительной мощности вычислителя, Другим способом повышения вычислительной мощности является переход к мультимикропроцессорной архитектуре.
Мультимикропроцеосорный вычислитель состоит из нескольких вычислительных модулей (каждый может быть с собственной локальной ,шиной), подключенных к общей разделяемой шине. Необходима такая логика доступа к шине, чтобы в любой момент времени ею управлял один ведущий. Это можно сделать тремя способами: с помощью приоритетной цепочки, опроса, независимого запроса (рис. 10.17). Приоритетная цепочка построена следующим образом (рис. 10.17,а).
В ответ на сигнал запроса шины (сигналов может быть несколько одновременно) контроллер выдает сигнал разрешения шины. Сигнал проходит через ведущие модули последовательно, пока не повстречает модуль, запрашивающий доступ к шине. Среди конкурирующих модулей предпочтение будет отдано тому, который расположен ближе. Способ опроса реализован следующим образом (рис. 10.17, б).
Имеется набор линий, достаточный для адресации каждого модуля. В ответ на запрос контроллер последовательно генерирует адреса модулей. Распознав свой адрес, модуль формирует сигнал занятости разделяемой шины и начинает ее использовать. Согласно способу независимых запросов (рис. 10.17,в) каждый модуль имеет отдельную пару линий запроса и разрешения шины и каждой паре назначен свой приоритет. Дешифратор приоритетов в контроллере выбирает запрос с максимальным приоритетом и возбуждает соответствующий сигнал разрешения шины.
Рис. 10.17. Организация доступа к разделяемой шине в мультимикропроцессориом иы- числителе: а — с помощью прпарптстпоа поповна: б — на основе способа опроса; в — на основе способа нсвввпсппых запросов 10.3. Передача информации в устройствах ЧПУ Модули устройства ЧПУ информационно связаны между собой и с внешним миром. Для реализации внутренней связи организуют системный интерфейс в виде локальной или системной стандартной магистрали. Для поддержания внешней связи применяют интерфейс ввода-вывода.