Общая организация ввода-вывода
Средство ввода-вывода представляет собой устройство, способное осуществлять передачу информации между процессором или памятью компьютера и внешним носителем информации. Эта передача управляется центральным процессором. В простейшем случае специальная инструкция процессора позволяет передавать информацию между внешним носителем и регистром процессора, который в таком случае оказывается занятым в течение всей передачи. Постоянная забота об эффективном использовании процессора привела с развитием вычислительной техники к росту автономии устройств ввода-вывода, которым стали передаваться все более сложные функции связи и управления, а за центральным процессором сохранялась инициатива запуска и контроля операций. Из соображений экономии периферийные органы были отделены от устройств управления, чтобы получить возможность разделить их работу.
На рис.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 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|