Каналы ввода вывода

Скачать доклад: Каналы ввода вывода

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

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

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

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

Кроме того, канал может выполнять ряд дополнительных функций для минимизации участия процессора в операциях ввода-вывода:

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

2) Организация выборочного чтения информации: иногда необходимо вводить с носителя информации отдельные части некоторого массива, пропуская ненужные данные.

3) Организация цепочки операций: иногда выгодно задавать не отдельные операции ввода-вывода, а сразу группу последовательных операций.

4) Блокировка контроля неправильной длины считанного массива бывает полезной при попытках извлечения хотя бы части информации из искаженного массива данных.

ОСНОВНЫЕ ТИПЫ КАНАЛОВ ВВОДА-ВЫВОДА

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

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

Монопольный режим

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

На все время выполнения данной канальной программы канал недоступен другим периферийным устройствам.

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

Селекторные каналы применяются при работе с быстрыми устройствами ввода-вывода.

Мультиплексный режим (режим разделения времени)

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

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

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

Канал, осуществляющий мультиплексирование периферийных устройств, называют мультиплексным.

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

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

МЕТОДЫ ПЕРЕДАЧИ ИНФОРМАЦИИ МЕЖДУ УСТРОЙСТВАМИ ЭВМ

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

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

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

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

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

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

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

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

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

ЦИКЛ ШИНЫ МИКРОПРОЦЕССОРА 8086

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

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

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

Цикл шины состоит минимум из четырех тактов синхронизации, называемых также состояниями T, которые идентифицируются спадающим фронтом сигнала синхронизации CLC. В первом такте (T1) процессор выдает на шину адреса/данных/состояния адрес устройства, которое будет источником или получателем информации в текущем цикле шины. Во втором такте (T2) процессор снимает адрес с шины и  либо переводит тристабильные буфера линий AD15-AD0 в высокоимпедансное состояние, подготавливая их к выводу информации в цикле считывания, либо выдает на них данные в цикле записи.

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

В такте T2 старшие четыре линии адреса/состояния переключаются с режима выдачи адреса на режим выдачи состояния ST6 - ST3.

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

В течение такта T3 поцессор сохраняет на линиях ST6 - ST3 информацию о состоянии. На шине AD в цикле записи сохраняются выводимые данные, а в цикле считывания производится опрос вводимых данных. Если память или периферийное устройство не может работать синхронно с процессором, оно должно до начала такта T3 сформировать низкий уровень сигнала готовности RDY. Это заставляет процессор ввести после такта T3 дополнительные такты, называемые тактами ожидания Tw. В тактах Tw на линиях шины действуют такие же уровни сигналов, что и в такте T3. Когда адресованное медленное устройство завершает операцию, оно формирует высокий уровень на входе готовности микропоцессора, что заставляет его перейти к такту T4, которым заканчивается цикл шины. В этом такте снимаются все управляющие сигналы и выбранное устройство отключается от шины.

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

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

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

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

             Шина адреса/дан-
ных/состояния ----------¬
------------¬ 20 ¦ ¦<======> Шина адреса
¦ ¦<=======/=======>¦Демульти-¦ (20 разрядов)
¦ ¦ ¦плексор ¦
¦ Микропро- ¦ ¦ ¦<======> Шина данных
¦цессор 8086¦ L---------- (16 разрядов)
¦ ¦ A
¦ ¦<=====================¦============> Шина управления
L------------

СИСТЕМНАЯ ШИНА ПЭВМ IBM PC

В персональном компьютере IBM PC имеется не одна, а несколько шин. Основных шин всего три: L-шина, S-шина и X-шина. Каждая из этих шин в свою очередь состоит из шины адреса, шины данных и шины управления.

            L-шина        S-шина        X-шина
A A A -------------¬
----------¬ ¦ ¦ ¦ ¦Периферийные¦
¦ Микро- ¦ ¦ ------¬ ¦ ------¬ ¦ ¦ микросхемы ¦
¦процессор¦<=>¦<=>¦Буфер¦<=>¦<=>¦Буфер¦<=>¦<=>¦на системной¦
L---------- ¦ L------ ¦ L------ ¦ ¦ плате ¦
¦ ¦ ¦ L-------------
V ¦ V
¦
¦ M-шина
¦ A
¦ ¦
¦ ------¬ ¦ ------------¬
¦<=>¦Буфер¦<=>¦<=>¦Оперативная¦
¦ L------ ¦ ¦ память ¦
¦ ¦ L------------
V V

Линии, идущие от микропроцессора, образуют так называемую L-шину. Входящая в состав L-шины адресная шина состоит из 20 линий в IBM PC/XT (процессор 8088) и 24 линий в IBM PC/AT (процессор 80286) и является однонаправленной. Шина данных состоит из 8 линий в IBM PC/XT, 16 линий в IBM PC/AT на базе процессоров 80286 и 80386sx и 32 линий в ЭВМ на базе процессора 80386DX. Она является двунаправленной. Шина управления формируется сигналами, поступающими непосредственно от микропроцессора, сигналами от шинного контроллера, а также сигналами, идущими к микропроцессору от других микросхем и периферийных адаптеров.

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

В режиме ПДП адреса на S-шину выставляет контроллер ПДП и страничные регистры, подключенные к X-шине, которая также через буферные регистры соединена с системной S-шиной.

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

Кроме этих трех шин в компьютере имеется M-шина, предназначенная для отделения системной S-шины от оперативной памяти. Эта шина включает шину управления, 16-разрядную шину данных и 10-разрядную шину адреса. Передача адреса с системной шины на шину памяти осуществляется через мультиплексоры: сначала выставляется 10 младших разрядов адреса, затем 10 старших разрядов. Разрядность адресной части шины памяти зависит от типа ЭВМ: в самых первых моделях она была равна 8, а в последних превышает 10.