Сделай Сам Свою Работу на 5

Общая организация ввода-вывода

 

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

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

 

Рис. 6.1. Организация ввода-вывода

 

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

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

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



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

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

В первой фиксированной ячейке по адресу 72 содержится полное адресное слово канала CAW­ (Channel Address Word). При исполнении команды ввода-вывода SIO (начать ввод-вывод) адресное слово канала передается в канал. Программа канала начинает выполняться с адреса, указанного в CAW­­. При этом обеспечивается защита памяти (ключ защиты памяти, к которой получает доступ канал, должен совпадать с ключом, указанным в CAW ­).

Все команды ввода-вывода имеют единый формат, представленный на рис.6.2.

Здесь КОП - код операции, определяющий конкретную команду канала. Из содержимого общего регистра B1 и смещения D1 формируется исполнительный адрес, который интерпретируется как адрес устройства, занимающий младший байт, и адрес канала, находящийся в старшем байте. Таким образом, возможна адресация до 256 каналов и до 256 устройств на каждом канале. Внешние устройства, подключенные к общему устройству управления, например накопители на магнитных дисках, адресуются последовательными числами, начинающимися с числа, кратного 16, и различающимися не более, чем на 15.

 

 

Рис. 6.2. Формат команды ввода-вывода

 

Во вторую фиксированную ячейку, применяемую в операциях ввода-вывода, по адресу 64 заносится двойное слово состояния канала CSW (Channel Status Word). Это слово полностью или частично заносится в оперативную память при исключительных ситуациях выполнения операции ввода-вывода: завершении программы канала, ошибках в программе или обмене данными и др. Ключ в CSW ­ переносится из адресного слова канала в начале выполнения программы канала. Адрес команды канала и остаточный счетчик указывает, насколько продвинулось исполнение программы канала к моменту занесения CSW в память.

Байт состояния устройства и байт состояния канала описывают состояния системы ввода-вывода на момент записи CSW ­. Значения битов 0...7 фиксированы для всех внешних устройств и в байте состояния устройства имеют следующие значения:

0 - внимание; на устройстве (обычно устройстве телеобработки) нажата специальная кнопка;

1 - модификатор состояния; устанавливается при использовании некоторых внешних устройств для изменения последовательности выполнения команд канала;

2 - контроллер закончил; устройство управления закончило свою часть операции ввода-вывода;

3 - занято; внешнее устройство или контроллер заняты выполнением предыдущей операции ввода-вывода или в них хранится условие прерывания;

4 - канал закончил; канал закончил передачу данных между внешним устройством и оперативной памятью;

5 - устройство закончило; внешнее устройство закончило операцию ввода-вывода;

6 - ошибка в устройстве; при операции ввода-вывода в устройстве возникла сбойная ситуация; в этом случае с помощью специальной команды канала можно уточнить состояние устройства;

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

Значения битов в байте состояния канала следующие:

0 - программно-управляемое прерывание; канал выбрал команду канала со специальным признаком;

1 - неправильная длина; физическая длина записи не совпадает с длиной, запрошенной в команде канала;

2 - ошибка в программе; обнаружены ошибки в CAW или командах канала;

3 - нарушение защиты; ключ защиты памяти не совпадает с ключом в CAW ­;

4 - ошибка в данных; нарушена правильная четность данных, передаваемых через канал, или обнаружена машинная ошибка;

5 - ошибка в управлении; обнаружен неправильный сигнал управления;

б - ошибка в интерфейсе; сбой в устройстве управления или внешнем устройстве;

7 - ошибка в цепочке; канал не успел расшифровать следующую команду канала до исполнения предыдущей.

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

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

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

В зависимости от структуры и функциональных возможностей различают каналы селекторные и мультиплексные.

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

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

 



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.