Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции - Организация ЭВМ и систем - файл ГЛАВА 6.-241203_Отч.doc


Загрузка...
Лекции - Организация ЭВМ и систем
скачать (989.6 kb.)

Доступные файлы (10):

ВВЕДЕНИЕ-12.03.doc25kb.19.05.2004 10:51скачать
ГЛАВА 1,2-12.03.doc286kb.19.05.2004 10:51скачать
Глава_3_Часть1.doc232kb.19.05.2004 10:51скачать
Глава_3_Часть2-1.doc237kb.19.05.2004 10:51скачать
ГЛАВА 4.-12.03.Отч.doc852kb.19.05.2004 10:51скачать
ГЛАВА 5.-12.03.doc184kb.19.05.2004 10:51скачать
ГЛАВА 6.-241203_Отч.doc2397kb.19.05.2004 10:51скачать
ГЛАВА 7.-12.03.doc313kb.19.05.2004 10:51скачать
ЛИТЕРАТУРА.doc23kb.19.05.2004 10:51скачать
ОГЛАВЛЕНИЕ.doc52kb.19.05.2004 10:51скачать

ГЛАВА 6.-241203_Отч.doc

Реклама MarketGid:
Загрузка...
ГЛАВА 6. ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА ИНФОРМАЦИИ В ЭВМ

6.1. Принципы организации систем ввода-вывода в ЭВМ

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

В зависимости от соотношения быстродействия ОП и ПУ в каналах ввода-вывода могут быть реализованы два режима работы: монопольный и разделения времени (мультиплексирования).

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

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

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

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

Аппаратурные средства мультиплексного канала можно условно разделить на две части (рис. 6.1,а): средства, предназначенные для обслуживания отдельных ПУ, присоединенных к каналу, и оборудование, являющееся общим для всех устройств и разделяемое всеми устройствами во времени.

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


^

Рис. 6.1. Типы каналов: а) - мультиплексный; б) - селекторный



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

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

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

Возможность монопольного обслуживания ПУ вводится иногда и в мультиплексный канал. В этом режиме один из подканалов полностью занимает канал.

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

^ Структура байт-мультиплексного канала (рис.6.2) В состав байт-мультиплексного канала входят следующие основные узлы:

1) набор регистров, в которых во время сеанса связи с ПУ содержатся текущие параметры активного подканала (активным называется тот подканал, для которого производится данный сеанс связи). Он состоит из регистра кода операции и указателей РгКОУ, регистра текущего адреса данных РгТАД, содержащего адрес байта в ОП, участвующего в данный момент в операции ввода-вывода, счетчика текущих данных СчТД, указывающего число байт, которое осталось ввести в ОП или вывести в данной операции, регистра адреса управляющего слова канала РгАУСК, определяющего адрес очередного УСК в цепи управляющих слов;

2) память подканалов, представляющая собой внутреннее ЗУ канала и предназначенная для хранения текущих параметров операций ввода-вывода, относящихся к пассивным подканалам. Каждому подканалу отведен в памяти участок, в котором хранится содержимое регистров РгКОУ, РгТАД, СчТД, РгАУСК, соответствующее последнему сеансу связи для данного подканала. Кроме того, в памяти подканалов предусматривается место для хранения некоторых других параметров операции, о которых будет сказано далее. Подканалы в памяти располагаются упорядочение по возрастанию номера подканала, который, таким образом, может использоваться для адресации ячеек памяти подканалов. При формировании адресов ячеек памяти подканалов используется содержимое регистра номера активного подканала РгНАП;


^

Рис. 6.2. Структурная схема байт-мультиплексного канала


3) регистр связи с интерфейсом РгСИ, в который поступает информация, получаемая из ПУ при вводе и из которого в ПУ выдается выводимая информация. Обмен информацией канала с ОП производится словами. Обмен с

ПУ производится обычно более мелкими единицами информации, например байтами. Поэтому при выводе информации канал производит в РгСИ компоновку слова из поступающих в канал байт, а при выводе - развертку слова в РгСИ в последовательность выдаваемых в ПУ байт. Для определения конца компоновки или развертки слова используется счетчик байт СчБ, который указывает номер последнего обработанного байта в текущем слове данных. Содержимое СчБ и РгСИ запоминается в соответствующем участке памяти подканалов наряду с регистрами РгКОУ, РгТАД;

4) регистр команды ввода-вывода РгКВВ, предназначенный для хранения кода операции команды ввода-вывода, поступающего в канал из процессора, когда процессор в соответствии со своей программой выполняет новую команду, ввода-вывода.

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


Регистр номера периферийного устройства ^ РгНПУ, заполняемый процессором при начальной выборке, указывает, с каким из периферийных устройств проводится текущая операция. Регистр данных РгД и регистр предварительного управляющего слова канала РгПУСК являются буферными. Буферным является также регистр РгСИ. Благодаря этим буферным регистрам становится возможным совмещение во времени передачи с высокой скоростью данных из ПУ в ОП (или из ОП в ПУ) с выборкой из ОП следующего управляющего слова в цепочке данных или операций.

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

      1. ^ Элементы организации интерфейсов

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

Используются два метода передачи дискретных сигналов между устройствами ЭВМ: синхронный и асинхронный.

^ При синхронном методе (рис. 6.4) передающее устройство У1 устанавливает одно из двух возможных состояний сигнала и поддерживает его в течение определенного заранее выбранного времени, по истечении которого состояние сигнала на передающей стороне может быть изменено.

Время передачи сигнала зависит от параметров линии связи Л0 и характеристик приемного и передающего устройств. Если обозначить через Т максимальное время передачи сигнала, то для периода синхронной информации должно выполняться условие  T.

^ При асинхронном методе (рис. 6.5) устройство У1 устанавливает соответствующее передаваемому коду состояние сигнала на линии Л0, а устройство У2 после приема нового состояния сигнала информирует об этом У1 изменением сигнала на Л1. Передающее устройство, получив сигнал о приёме, снимает передаваемый сигнал.


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

Если обозначить через t время передачи нового состояния сигнала в один конец линии связи, то при асинхронной передаче должно удовлетворяться условие   2t.

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

Существует два метода передачи параллельного кода по нескольким линиям: со стробированием, при котором используется синхронная передача, и с квитированием, при котором используется асинхронная передача.

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

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

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

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

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

^ 6.2. Интерфейс «Общая шина»

6.2.1. Захват магистрали

Для описания механизма захвата магистрали нам необходимо познакомиться с важным архитектурным элементом микро-ЭВМ – арбитром, который как показано на рисунке 6.6, подключается к магистрали.



Рис. 6.6. Подключение арбитра к магистрали

Кружками обозначены устройства, способные стать активными т.е. способные «бороться» за право пользования магистралью. Арбитр является «судьей» в этой борьбе. Та же схема в более подробном виде представлена на рис. 6.7. Активные устройства расположены в виде матрицы. Если все активные устройства расположить в один ряд, а провода «связать в жгут», то мы вернемся к схеме, показанной на рис. 6.6.



^

Рис. 6.7. Подключение активных устройств к арбитру



Обозначения:

ВRi - управляющие линии для передачи сигналов запросов в арбитр (i==0, 1, ..., 7);

ВGi - управляющие линии для передачи сигналов разрешений из арбитра к активным устройствам;

^ SACK - линия для передачи сигнала ответа от первоочередного претендента на подключение к магистрали;

ВВSY - линия для передачи сигнала занятости магистрали;

R - вход сброса арбитра.

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

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

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

Линия SAСК предназначена для оповещения арбитра о том, что сформированный им сигнал разрешения дошел до одного из запросивших магистраль устройств. При получении сигнала SAСК арбитр прекращает выдачу сигнала разрешения. Линия ВВSY предназначена для оповещения всех активных устройств (точнее, очередника) о том, что магистраль еще не освободилась. После ее освобождения очередник занимает ее и сам формирует сигнал ВВSY. При этом очередник снимает сигнал SАСК и, пока в магистрали идет обмен, арбитр готовит нового очередника и т.д. Таким образом, фаза обмена совмещена по времени с фазой поиска очередника. На рис. 6.8 представлена временная диаграмма процесса захвата магистрали.

В момент времени t0 активное устройство формирует на запросной линии своей группы напряжение низкого уровня - сигнал запроса, который поступает в арбитр. В момент времени t1 на вход активного устройства поступает сигнал разрешения в виде напряжения высокого уровня. Сигналы разрешений передаются напряжением высокого уровня в отличие от всех остальных сигналов «общей шины». Активное устройство поглощает сигнал разрешения, т.е. препятствует его дальнейшему распространению в группе, и оповещает арбитра о его получении выдачей напряжения низкого уровня в линию SАСК в момент времени t2. Арбитр «узнаёт», что сигнал разрешения больше не нужно


^ Магистраль свободна


Рис. 6.8. Временная диаграмма захвата магистрали

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

Активное устройство готово захватить магистраль, однако в данном примере она все еще занята другим активным устройством, которое ведет обмен. В момент времени t3 магистраль освобождается. Рассматриваемое активное устройство, зная, что именно оно держит на линии SАСК напряжение низкого уровня, и «увидев», что магистраль освободилась от обмена, само формирует напряжение низкого уровня на линии ВВSУ и приступает к обмену с выбранным абонентом, одновременно снимая сигнал с линии SАСК (момент t4). Начиная с этого момента времени, арбитр воспринимает новую «порцию» запросных сигналов и готовит следующего очередника, а устройство ведет обмен. По срезу ответного сигнала от абонента (SSYN) «наше» устройство освобождает магистраль (момент t5) для очередника.

^ 6.2.2. Временные диаграммы записи и чтения

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

Момент времени t1. Захватив магистраль, активное устройство выдает сигнал по линии С1 (запись), адрес и данные, которые нужно записать по этому адресу.

Момент времени t2. Через время, не меньшее t12 ак­тивное устройство выдает сигнал сопровождения адреса МSYN.





Рис. 6.9. Временная диаграмма записи

Момент времени t3. Одно из устройств, например ОЗУ, опознает адрес и принимает информацию с шины данных в соответствующую ячейку. Приняв данные, это устройство отвечает ведущему сигналом SSYN.

^ Момент времени t4. Получив сигнал SSYN, активное устройство «узнаёт», что запись состоялась, и поэтому снимает с магистрали все сигналы, кроме сигнала ВВSY.

^ Момент времени t5. Убедившись в том, что ответный сигнал SSYN воспринят активным устройством (о чем говорит снятие сигнала МSYN), ОЗУ снимает сигнал SSYN.

Момент времени t6. Активное устройство, дождавшись снятия сигнала SSYN, освобождает магистраль, т.е. снимает сигнал BBSY.

При зависании ни один из абонентов не отвечает на обращение со стороны активного устройства, так как обращение производится в свободную область адресного пространства. В этом случае активное устройство, выждав  10 мкс, искусственно завершает обмен, т.е. выдает «само себе» сигнал SSYN, снимает сигналы А, D, С1, МSYN, SSYN и затем ВВSY. В зависимости от «интеллекта» активного устройства факт зависания либо игнорируется, либо принимается во внимание. Если, например, активным устройством является процессор, то следствием зависания может быть переход к программе, которая анализирует причины зависания и выдает оператору текстовое сообщение о случившемся.

^ При чтении активное устройство пытается получить слово данных от некоторого программно-доступного элемента, например от ячейки ОЗУ. При правильном указании адреса реализуется временная диаграмма, показанная на рис. 6.10. В случае отсутствия абонента с указанным адресом возникает зависание, которое через10 мкс устраняется искусственной выдачей ответного сигнала от специальной схемы, как и в предыдущем случае. Приведем последовательность событий при чтении.

^ Момент времени t1. Захватив магистраль, активное устройство выдает адрес ячейки памяти, из которой нужно извлечь данные (одно слово).

Момент времени t2. Активное устройство формирует сигнал MSYN, подтверждающий истинность адреса. Напряжение на линии С1 постоянно и равно  +3,5 В, что расценивается всеми устройствами как режим чтения.

М
омент времени t3
. Схемы дешифрации адреса выбирают нужную


D

0

^

Рис. 6.10. Временная диаграмма чтения



ячейку ОЗУ. Информация из этой ячейки пo шине данных передается активному устройству.

Момент времени t4. Активное устройство, получив сигнал SSYN, узнаёт о том, что через время, большее 75 нс информацию можно будет принять с шины данных. Выждав время, активное устройство принимает информацию. Таким образом, компенсацию времени «успокоения» шины данных ведут активные, а не пассивные устройства. Это разумно, поскольку обычно пассивных устройств в системе больше, чем активных, и в каждом из них пришлось бы предусматривать элемент задержки.

Момент времени t5. Приняв информацию, активное устройство снимает адрес и сигнал ^ MSYN, так как чтение уже состоялось и эти сигналы утратили актуальность.

Момент времени t6. Оперативное запоминающее устройство снимает данные и сигнал ^ SSYN, так как оно узнало (по снятию сигнала с линии МSYN) о том, что данные уже приняты активным устройством.

Момент времени t7. Активное устройство освобождает магистраль для «очередника».

^ Режим «чтение-модификация-запись» по существу является комбинацией двух предыдущих: активное устройство сначала производит чтение информации по некоторому адресу, а затем, после некоторой паузы, связанной с обработкой прочитанной информации, - запись новой информации по тому же адресу. На протяжении всего этого двойного цикла адрес передается активным устройством только один раз - в начале цикла, а магистраль занята им постоянно.

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

Это событие может состоять в том, что пользовательская программа «просит» операционную систему ввести или вывести массив информации. Это так называемое программное прерывание. Его выполнение не сопровождается появлением каких-либо специфических сигналов на линиях магистрали. Поэтому нас будет интересовать другой тип прерываний, который обусловлен срабатыванием схем связи с сигнальными линиями внешнего мира и называется аппаратным прерыванием. На рис. 6.11 приведена временная диаграмма аппаратного прерывания.




^

Рис. 6.11. Временная диаграмма прерывания


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

В некоторый момент времени контроллер просит у процессора обслуживания, например, в связи с необходимостью возврата каретки. Цель контроллера в данном случае состоит в том, чтобы временно прервать работу процессора и отослать его к соответствующей программе, адрес начала которой известен и хранится, например, в ячейке 00FA ОЗУ. В следующей ячейке - 00FB - хранится новое содержимое регистра состояния процессора.

Код ^ 00FA является вектором прерывания или косвенным адресом начала программы. При выполнении прерывающей программы процессор обращается по адресу к программно-доступному электромагниту возврата каретки, после чего возвращается к прерванной задаче, встретив в программе

команду выход из прерывания. Приведем перечень событий при отработке процедуры прерывания.

Момент времени t1. Захватив магистраль, контроллер выставляет в младших восьми разрядах шины данных код ^ ; старший байт (восемь разрядов) шины данных не используется для передачи вектора. Таким образом, на шине данных устанавливается код 00FA.

Момент времени t2. Через время, большее или равное t12, контроллер выдает сигнал сопровождения вектора ^ INTR, аналогично выдаче сигнала МSYN при чтении или записи.

Момент времени t3. Процессор принимает вектор и отвечает контроллеру сигналом SSYN.

Момент времени t4. Контроллер, убедившись в том, что процессор принял вектор, о чем свидетельствует появление сигнала SSYN, снимает вектор и сигнал INTR.

Момент времени t5. Процессор снимает сигнал SSYN, так как снят сигнал INTR.

Момент времени t6. Контроллер, дождавшись снятия сигнала SSYN, освобождает магистраль, т.е. снимает сигнал ВВSY.

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

^ 6.2.3. Особенности шин расширения

Интерфейс применяемых в современных персональных компьютерах шин расширения имеет некоторые особенности в отличие от рассмотренного выше интерфейса «общая шина».

Рассмотрим эти особенности на наиболее распространенных шинах ^ ISA (Industrial Standard Architecture) и PСI (Peripheral Component Interconnection) применяемых на IBM.

Системная шина ISA включает в себя 24 адресных линии, 16 линий данных и дополнительные линии прерываний и DMA – каналов (прямого доступа к памяти).

Временные диаграммы циклов обмена шины ^ ISA приведены на рис. 6.12 (все временные параметры приве­дены для частоты SYSCLK, равной 8 МГц). Циклы начи­наются с выставления активным устройством адреса на линиях SA0...SA15 и сигнала - SBHE.




Рис. 6.12. Временные диаграммы циклов программного обмена с устройствами ввода/вывода по шине ISA (все временные интервалы в наносекундах).

Поскольку разрядность шины данных может быть 8 или 16, то в ответ на получение адреса пассивное устройство, распознавшее свой адрес, должно сформировать сигнал -I/O CS16 в том случае, если обмен должен быть 16-разрядным.

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

В случае, когда УС не успевает выполнить требуемую от него команду в темпе магистрали, оно может приостановить на це­лое число периодов сигнала SYSCLK завершение цикла чтения или записи с помощью снятия (перевода в низкий уровень) сиг­нала I/O CH RDY (так называемый удлиненный цикл). Это про­изводится в ответ на получение сигнала -IOR или -IOW. Сиг­нал I/O CH RDY может удерживаться низким не более 15,6 мкс, в противном случае процессор переходит в режим обработки немаскируемого прерывания.

^ PСI local bus, шина соединения периферийных компонентов, является основной шиной расширения современных компьютеров. В каждом обмене по шине участвуют два устройства – инициатор обмена, он же ведущее устройство (ВУ), и целевое устройство (ЦУ), оно же ведомое. Обмен данными между устройствами по шине PСI осуществляется пакетами. При использовании шины PCI за пакетную передачу данных отвечает не процессор, а промежуточный контроллер. Таким образом, процессор может продолжать свою работу, когда шина PCI записывает данные в память или считывает из памяти, а также при обмене данными между двумя PCI устройствами. Благодаря этой возможности обеспечивается заметное повышение производительности шины в многозадачных режимах, поскольку пакетная передача данных позволяет использовать шину между запросом и ответом другим устройствам. Например, в период чтения из памяти по запрошенному адресу, возможно предоставление шины для обмена данными другим PCI устройствам.

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

Порядок программного обмена с устройствами ввода/вывода по шине ^ PCI аналогичен рассмотренным ранее.

Временные диаграммы циклов обмена шины PCI приведены на рис.6.13, где Т – источник данных ЦУ, I – источник данных ИУ. Здесь передача каждого байта сопровождается взаимосвязанной парой сигналов REQ#/ACK#. Инициатор фиксирует принимаемые данные, получив сигнал REQ# (по отрицательному перепаду). Целевое устройство считает принимаемые данные действительными по отрицательному перепаду сигнала ACK#. Асинхронный обмен поддерживается всеми устройствами для всех фаз передачи информации.



Рис. 6.13. Временные диаграммы асинхронной передачи данных

6.3. Контроллеры

6.3.1. Типы контроллеров

Основные типы контроллеров приведены на рис. 6.14.
^

Р
ис. 6.14. Классификация контроллеров



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

^ Асинхронный обмен (рис. 6.15,б) используется очень часто. Он осуществляется под управлением программы, но лишь в том случае, когда внешнее устройство находится в состоянии готовности. Команда проверки готовности используется для ввода в микроЭВМ информации о состоянии внешнего устройства. Затем процессор производит анализ состояния и принимает решение. Если устройство не готово, то процессор возвращается к команде проверки готовности и т.д. Когда устройство перейдет в состояние готовности, процессор приступает к обмену. Основным недостатком асинхронного обмена являются потери машинного времени на ожидание того момента, когда устройство окажется готовым к обмену.
Р
ис. 6.15. Алгоритмы работы контроллеров:

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

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

^ 6.3.2. Пассивные контроллеры

На рис. 6.16 показан пример схемы синхронного контроллера.

Предполагается, что в адресном пространстве заняты первые и последние 8К адресов. Интерфейс - «общая шина». Контроллер предназначен для сопряжения микроЭВМ со световым табло. Предполагается, что машина по собственной инициативе меняет информацию на световом табло, например, выдавая различные сообщения о параметрах ЭВМ. Для смены информации микроЭВМ сначала последовательно загружает сдвиговый регистр RG1, а затем переписывает его содержимое в параллельный регистр RG2 для того,

Р
ис. 6.16. Синхронный контроллер

чтобы кадр сменился мгновенно без хаотических переходных процессов.

Для загрузки регистра RG1 микроЭВМ N раз выполняет команду записи типа регистр-память. В качестве адреса используется любой адрес из диапазона 8000-ВFFF (реализован метод частичной дешифрации). Для переписи содержимого регистра RGI в регистр RG2 процессор микроЭВМ обращается в режиме чтения или записи по одному из адресов в пределах 4000-7FFF, выполнив, например, команду пересылки слова из регистра процессора в ячейку памяти с адресом 7777: RО-[7777]. Распределение адресного пространства показано на рис. 6.17. Элемент ИЛИ-НЕ оповещает микроЭВМ
Р
ис. 6.17. Распределение адресного пространства

микроЭВМ с синхронным контроллером

о завершении обмена. Однако, его можно исключить из схемы. При этом ответный сигнал не будет вырабатываться и микроЭВМ воспримет эту ситуацию как ошибочную. Поэтому через 10мкс процессор автоматически перейдет в режим прерывания, т.е. запомнит свое текущее состояние и перейдет к программе, адрес начала которой находится в ячейке Х ОЗУ (адрес ячейки Х должен быть указан в эксплуатационной документации на микроЭВМ). Так как это зависание является «запланированным», то на него не надо реагировать как на ошибку. Поэтому непосредственно перед обращением к контроллеру «нормальная» программа реакции на зависание как на ошибку подменяется фиктивной. После обращения к контроллеру «нормальная программа должна быть восстановлена. Подмена программ производится простым изменением содержимого ячейки X.

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

С
хема асинхронного контроллера
показана на рис. 6.18.

Рис. 6.18. Асинхронный контроллер
Задача состоит в том, чтобы выдавать на табло усредненные данные по цели, сопровождаемой несколькими подразделениями. МикроЭВМ периодически проверяет готовность всех подразделений к выдаче данных. Когда появляются все сигналы готовности, микроЭВМ принимает данные, обрабатывает их, вычисляя, среднее значение и выдает информацию на табло. Таким образом, условием для ввода и вывода является наличие логических 1 (сигналов готовности) на определенных входах. Распределение адресного пространства приведено на рис. 6.19.




Рис. 6.19. Распределение адресного пространства

микро-ЭВМ с асинхронным контроллером
Для чтения информации от объекта микроЭВМ должна открыть логические элементы ^ И, в результате чего информация параллельным кодом запишется в регистр RGЗ, а затем произвести серию сдвигов. При каждом сдвиге очередной бит поступает в микроЭВМ по линии D08L (линия выбрана произвольно). Процессор микроЭВМ собирает эти биты в 16-разрядные слова программным путем. Для приема информации в регистр RGЗ процессор микроЭВМ обращается в режиме чтения или записи по одному из адресов С000-DFFF, выполнив, например, команду пересылки слова из регистра процессора в ячейку памяти с адресом DDD0: R0->[DDD0]. При этом срабатывает дешифратор, открываются логические элементы И и в микроЭВМ через логический элемент ИЛИ-НЕ посылается ответный сигнал SSYN.

При сдвиге процессор микроЭВМ выполняет операцию чтения, например, из ячейки ^ 2АВС: [2АВС]->RО. После выполнения этой команды в разряде 8 регистра R0 процессора окажется очередной бит, выдвинутый из регистра RGЗ.

Программа собирает из этих битов слово, относящееся к полю готовности, и проверяет его на наличие единиц. Если нет хотя бы одной единицы, то дальнейший ввод прекращается, и микро-ЭВМ вновь начинает процедуру с загрузки регистра RGЗ. Если все поле готовности заполнено единицами, то ввод продолжается, в результате информация об оценках попадает в память микроЭВМ. Элемент задержки t гарантирует выдачу сигнала SSYN не раньше чем закончатся переходные процессы в регистре RGЗ при сдвиге.

С
хема контроллера с прерыванием
показана на рис. 6.20. В состав этой схемы включена схема контроллера, показанная на рис. 6.18 с тем отличием,

^

Рис. 6.20. Контроллер с прерыванием



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

Схема захвата магистрали приведена на рис. 6.21.
^

Рис. 6.21. Схема захвата магистрали



Для определенности выбрана линия запроса ВR5 и соответственно линия разрешения BG5. Алгоритм захвата магистрали рассмотрен ранее. В исходном состоянии все триггеры установлены в 0. Триггер запроса ТгЗпр устанавливается в единичное состояние при воздействии положительного фронта сигнала на его входе С. Триггер подтверждения запроса ТгПтЗ устанавливается в единичное состояние при наличии запроса (триггер ТгЗпр установлен в единичное состояние) в момент поступления сигнала разрешения ВG5 за счет срабатывания логического элемента И1. Триггер ТгЗпр сбрасывается сразу после установки в единицу триггера ТгПтЗ. Установив в единичное состояние триггер ТгПтЗ, контроллер «знает», что именно он является первоочередным претендентом на занятие магистрали. Теперь для занятия магистрали нужно дождаться ее освобождения от текущего обмена, если он есть. В момент освобождения срабатывает логический элемент И2 и устанавливается в единичное состояние триггер собственной занятости ТгЗанс.

Триггер ^ ТгПтЗ при этом; устанавливается в 0.

После этого контроллер по праву считает себя «владельцем» магистрали.

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

Сигнал с интерфейсной линии ^ INIT («общий сброс») должен быть «смешан» по схеме ИЛИ с сигналами функциональных сбросов триггеров, чтобы в необходимых случаях, например, после включения напряжения питания схема приводилась в исходное состояние. Элементы ИЛИ на рис. 6.21 не показаны для его упрощения.

Как уже отмечалось ранее, если контроллер не является последним в группе, то при отсутствии «нашего» запроса необходимо транслировать сигнал разрешения BGi с входа контроллера на его выход. Поскольку моменты формирования запросов активными устройствами заранее не известны, не исключена возможность появления «нашего» запроса в момент прохождения сигнала разрешения через «наше» активное устройство к «чужому» активному устройству, расположенному справа, в ответ на его запрос. Если не принять специальных мер, то может оказаться, что, хотя «наше» устройство и «перехватило» сигнал разрешения, на выходе все же успеет появиться кратковременный сигнал. Если этот кратковременный сигнал будет воспринят одним из последующих устройств, то это устройство захватит магистраль одновременно с «нашим», что недопустимо. Такие ситуации могут возникать очень редко, например, один раз в сутки - тем более трудно их зарегистрировать и разобраться в причинах их появления. Поэтому схемы асинхронного взаимодействия сигналов требуют тщательного критического анализа на уровне «мысленного эксперимента» в процессе их разработки.

На рис. 6.22 приведен фрагмент схемы захвата магистрали, снабженной средствами передачи сигнала разрешения по цепочке контроллеров. При поступлении сигнала разрешения закрывается логический элемент ИЗ, запрещая установку в 1 триггера ТгЗпр* в период прохождения сигнала разрешения. Через время, превышающее сумму задержек инвертора НЕ1, логического элемента ИЗ и триггера ТгЗпр*, триггер ТгЗпр* окажется в заведомо устойчивом состоянии (0 или 1, но не 01). Поэтому либо устанавливается в 1 триггер ТгПтЗ, либо разрешение поступает в следующий контроллер. Другие (некорректные) варианты исключены. При окончании сигнала входного разрешения логические элементы И1 и И2 закрываются по входам, а схема вновь становится чувствительной к сигналу запроса.

Рис. 6.22. Схема распространения сигнала разрешения
Вернемся вновь к схеме контроллера, приведенной на рис. 6.20, и рассмотрим ее с более общих позиций как одну из возможных схем контроллера программируемого интерфейса (КПИ). Отметим главные его свойства.

1. КПИ позволяет по инициативе программы прочитать информацию с внешних входов и разместить ее в памяти микроЭВМ. После этого информация может подвергнуться самым различным видам обработки: можно, например, выделять отдельные поля, проверять, изменять отдельные биты, выполнять арифметические и логические операции и т.д. Чтобы каждый раз не вспоминать о том, что ввод информации с входов КПИ сопровождается загрузкой регистра RGЗ (см. рис. 6.20), серией сдвигов и программной упаковкой отдельных бит, будем использовать в последующих примерах язык более высокого уровня. Так, выражение прочитать информацию с входов КПИ соответствует выполнению десятков или сотен команд программы ввода (рис. 6.23,а).

2. КПИ позволяет по инициативе программы менять код в выходном регистре, причем новый код может отличаться от старого только в одном разряде или в группе разрядов, а смена кода производится “мгновенно” и не затрагивает те биты, которые не меняют состояния. Поэтому, с помощью

Рис. 6.23. Программная поддержка КПИ:

а - при вводе информации; б - при выводе информации
выходного регистра КПИ, можно одновременно управлять несколькими независимыми объектами, например, печатающим устройством и цифро-аналоговым преобразователем. Чтобы изменить информацию на выходах контроллера (сразу на всех выходах или только на части выходов без изменения оставшихся), нужно программно подготовить в памяти микроЭВМ новую копию содержимого выходного регистра контроллера и переслать ее в этот регистр. Выдача информации в выходной регистр контроллера (рис. 6.16) может сопровождаться выполнением десятков или сотен команд распаковки, сдвига, подсчета числа циклов и т.д. Чтобы каждый раз не напоминать об этих «подробностях», будем использовать в дальнейшем выражения типа изменить бит 60 в выходном регистре КПИ.

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

^ Пример использования контроллера программируемого интерфейса для связи микроЭВМ с термопечатающим устройством.

На рис. 6.24 показана схема связи и временная диаграмма обмена.

Используется версия стандартного интерфейса. Низкий уровень напряжения (логический 0) на линии Запрос означает, что термопечатающее устройство готово принять очередной байт по линиям данных D.


^

Рис. 6.24. Использование КПИ для связи с печатающим устройством



Истинность выдаваемого из контроллера байта подтверждается отрицательным фронтом сигнала на линии Строб. В байте закодирован символ либо команда перевода строки. Распределение разрядов на выходах и входах контроллера (называемых обычно выходным и входным портами) -произвольное. Необходимыми условиями осуществления сеанса связи являются низкие уровни напряжения на линиях готовности (Готов) с обеих сторон. Опишем подпрограмму вывода информации на печать.

1. Установить в 0 разряд Готов КПИ.

2. Прочитать информацию с входов КПИ.

3. Если на обоих входах - нули, перейти к п.4, в противном случае - к п. 2.

4. Выдать очередной байт на выходы D (символ либо команду перевода строки).

5. Выдать 0 в разряд Строб.

6. Прочитать информацию с входов КПИ.

7. Если Запрос=1, то перейти к п. 8, иначе - к п. 6.

8. Выдать 1 в разряд Строб.

9. Если все байты выданы, то перейти к п.10, иначе - к п. 2.

10. Выйти из подпрограммы.

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

П
ример использования контроллеров программируемого интерфейса для связи между двумя микроЭВМ
показан на рис. 6 25.
Рис. 6.25. Использование КПИ для связи между двумя микроЭВМ
Предположим, что микроЭВМ 1 подготовила в своей памяти массив информации для передачи в микроЭВМ 2 и послала сигнал уведомления об этом на вход захвата КПИ 2 через один из разрядов выходного регистр КПИ 1. МикроЭВМ 2 откладывает текущее задание и переходит к подпрограмме связи с микроЭВМ 1. При этом, с точки зрения микроЭВМ 1, микроЭВМ 2 ведет себя аналогично термопечатающему устройству. Считанная через КПИ 2 информация размещается в памяти микроЭВМ 2. Признаком конца передачи может являться выдача единицы на одну из связей Y. По окончании сеанса связи обе микроЭВМ возвращаются к выполнению своих текущих заданий. Передача массива из микроЭВМ2 в микроЭВМ 1 может производиться аналогично.

^ 6.4 Методы поиска источника прерываний

6.4.1. Последовательный и параллельный опрос

Метод программного последовательного опроса (рис. 6.26).

ЭВМ, получив сигнал прерывания, «не знает», какой из контроллеров К1, К2, ..., КN его прислал, поскольку все сигналы от контроллеров источника



Рис. 6.26. Схема, поясняющая метод программного

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

^ Метод схемного последовательного опроса (рис. 6.27). В исходном состоянии триггер ТТ сброшен, запросов от внешних устройств ВУ1-ВУN нет, счетчик СТ через дешифратор последовательно циклически опрашивает запросные линии от внешних устройств, логические элементы И закрыты, сигнал сброса триггера отсутствует. При появлении одного или нескольких запросов срабатывает одна из схем И логического элемента И-ИЛИ, в результате триггер устанавливается в единичное состояние и счетчик прекращает подсчет импульсов с генератора. При этом в счетчике фиксируется номер одного из внешних устройств, требующих обслуживания.


^

Рис. 6.27. Схемный последовательный опрос источников прерываний



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

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

продолжается. На данной схеме не приведен ряд вспомогательных элементов: схемы стробирования дешифратора, магистральные приемопередатчики и т.п. Метод схемного последовательного опроса позволяет значительно снизить время реакции на прерывание, поскольку опрос ведется с достаточно высокой скоростью. Аппаратные затраты не слишком велики. Недостатком является наличие «радиальных» связей логического элемента И - ИЛИ с внешними устройствами.

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

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

В

f
се запросы от внешних устройств объединяются по схеме монтажное ^ ИЛИ на общей линии запросов ВR. Регистр приоритета RG хранит код, определяющий приоритет, т.е. важность запроса от данного внешнего устройства. Этот же код, как уже отмечалось, является вектором прерывания

а) б)

Рис. 6.28. Схемный параллельный опрос источников прерываний:

а - подключение внешних устройств к магистрали; б - структура логиче­ской схемы (раскрыто одно ВУ)

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

Сигнал разрешения ^ BG проходит через логические элементы И тех внешних устройств, у которых триггер запроса ТТ установлен в единичное состояние (рис. 6.28,а) и в виде сигнала f поступает на входы соответствующих логических схем, включая их в процесс «конкурентной борьбы» на шине данных. Пока идет этот процесс число конкурентов не должно расти, поэтому триггеры ТТ временно закрываются по входам (соответствующая аппаратура не показана для упрощения рисунка).

Логическая схема (рис. 6.28,б) имеет поразрядную структуру, напоминающую сумматор с последовательным переносом. Линии bi шины данных реализуют функции Монтажное ИЛИ по отношению к логической 1 (линии с общими эмиттерными резисторами). Функции, выполняемые одним разрядом логической схемы, описываются табл. 1.

В линию bn старшего разряда выдают единицы все запросившие обслуживание внешние устройства, у которых в старшем разряде регистра приоритета записана единица. При этом все внешние устройства, у которых an=0 не выдерживают конкуренции вых=0) и исключаются из дальнейшего рассмотрения. Если нет ни одного внешнего устройства с аn=1, то bn=0 и

Таблица 1

an

bn

cвых

Примечание

0

1

0

1



Продолжить анализ следующего разряда

0

1

0

Внешнее устройство выбывает из конкурса

1

0

-

Невозможная комбинация

конкурентная борьба переносится в следующий разряд. В линию bn-1 выдают единицы лишь те внешние устройства, которые прошли первый этап отбора и имеют единицу в разряде an-1 и т.д.

Время формирования результирующего вектора не превышает величины 4n (-задержка логического элемента) независимо от числа внешних устройств. Доказано, что время формирования результирующего кода можно уменьшить при разбиении разрядов на группы длиной и введении схем группового переноса, как это делается в сумматорах. Таким образом, время реакции на прерывание при схемном параллельном опросе существенно уменьшено по сравнению со временем реакции устройств, описанных в двух предыдущих примерах.
^ 6.4.2. Канал прямого доступа в память

Контроллер прямого доступа по собственной инициативе или при запуске от микроЭВМ захватывает магистраль и обменивается информацией с памятью или с любыми адрeсуемыми элементами микроЭВМ. Обмен происходит либо в монопольном, либо в мультиплексном режиме. В монопольном режиме магистраль занимается на все время передачи массива, а в мультиплексном – лишь на время передачи очередного слова, затем освобождается, вновь занимается и т.д. Мультиплексный режим более «демократичен», поскольку он позволяет вычислительной машине продолжать работу по собственной программе и своевременно реагировать на внешние события. Монопольный режим временно приостанавливает работу микроЭВМ, что не всегда допустимо. Однако, лишь монопольный режим обеспечивает необходимую скорость обмена при работе с «быстрыми» объектами. Каналы прямого доступа обычно обеспечивают скорости передачи информации от 200 тыс. слов/с и выше.

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



Рис. 6.29. Канал прямого доступа в память:

БРА - блок регистров адреса; РгТА - регистр текущего адреса; СР - схема сравнения; УУ - устройство управления; РгД - регистр данных; БД - буфер данных; РгС - регистр состояния; РгКА - регистр конечного адреса; СхЗ- схема захвата
содержимому после передачи каждого слова данных. Схема сравнения фиксирует момент окончания передачи массива и выдает сигнал в устройство управления. Регистр данных временно хранит передаваемое слово. Буфер данных вводится при необходимости согласования форматов данных, скоростей передачи и т. д. Регистр состояния отображает служебные признаки: готовность к работе, состояние схем контроля, тип выполняемого задания и др.

В момент запуска канал является пассивным. Поэтому возможны три типа запуска:

1. Синхронный запуск: микроЭВМ «уверена», что канал готов к работе.

2. Асинхронный запуск: микроЭВМ периодически анализирует регистр состояния канала и дожидается его готовности к работе.

3. Запуск по прерыванию: канал сам сообщает процессору микроЭВМ о готовности.

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

Канал прямого доступа, таким образом, представляет собой достаточно «интеллектуальное» устройство, которое можно построить на стандартном микропроцессорном комплекте БИС. Это по существу вторая микроЭВМ с узкой специализацией, предназначенная для сопряжения с конкретным устройством: высокоскоростным, последовательным каналом связи, накопителем на магнитной ленте или диске и т.п.


Скачать файл (989.6 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru