ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.06.2021

Просмотров: 308

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Модуль ввода/вывода берет на себя детальное управление ВУ и общается с ЦП только с помощью команд высокого уровня, называют каналом ввода/вывода или процессором ввода/вывода. Наиболее примитивный МВВ, требующий детального управления со стороны ЦП, называют контроллером ввода/ вывода или контроллером устройства. Как правило, контроллеры ввода/вывода типичны для микроЭВМ, а каналы ввода/вывода — для универсальных ВМ.

2. Методы управления вводом-выводом

В ВМ находят применение три способа организации ввода/вывода (В/ВЫВ):

программно управляемый ввод/вывод;

ввод/вывод по прерываниям;

прямой доступ к памяти.

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

Рис. 3. Программно управляемый ввод/вывод

Ввод/вывод по прерываниям (рис.4) во многом совпадает с программно управляемым методом.

Отличие состоит в том, что после выдачи команды ввода/вывода ЦП не должен циклически опрашивать МВВ для выяснения состояния устройства. Вместо этого процессор может продолжать выполнение других команд до тех пор, пока не получит запрос прерывания от МВВ, извещающий о завершении выполнения ранее выданной команды В/ВЫВ. Как и при программно управляемом В/ВЫВ, ЦП отвечает за извлечение данных из памяти (при выводе) и запись данных в память (при вводе).

Рис.4. Ввод/вывод по прерываниям

Повышение как скорости В/ВЫВ, так и эффективности использования ЦП обеспечивает третий способ В/ВЫВ (рис. 5) — прямой доступ к памяти (ПДП). В этом режиме основная память и модуль ввода/вывода обмениваются информацией напрямую, минуя процессор.

Рис. 5. Схема прямого доступа к памяти

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

Если ЦП желает прочитать или записать блок данных, он, прежде всего, должен поместить в КПДП информацию, характеризующую предстоящее действие. Этот процесс называется инициализацией КПДП и включает в себя занесение в контроллер следующих четырех параметров:

вида запроса (чтение или запись);

адреса устройства ввода/вывода;

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


количества слов, подлежащих чтению или записи.

Первый параметр определяет направление пересылки данных: из ОП в ВУ или наоборот. За исходную точку обычно принимается память, поэтому под чтением понимают считывание данных из ОП и выдачу их на устройство вывода, а под записью — прием данных из устройства ввода и запись в ОП. Вид запроса запоминается в схеме логики управления контроллера.

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

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

После инициализации процесс пересылки информации может быть начат в любой момент. Инициаторами обмена вправе выступать как ЦП, так и ВУ. Устройство, желающее начать В/ВЫВ, извещает об этом контроллер подачей соответствующего сигнала. Получив такой сигнал, КПДП выдает в ЦП сигнал «Запрос ПДП». В ответ ЦП освобождает шины адреса и данных, а также те линии шины управления, по которым передаются сигналы, управляющие операциями на шине адреса (ША) и шине данных (ШД). К таким, прежде всего, относятся линии ЧтЗУ, ЗпЗУ, Выв, Вв и линия выдачи адреса на ША. Далее ЦП отвечает контроллеру сигналом «Подтверждение ПДП», который для последнего означает, что ему делегированы права на управление системной шиной и можно приступать к пересылке данных.

Процесс пересылки каждого слова блока состоит из двух этапов.

При выполнении операции чтения (ОП→ВУ) на первом этапе КПДП выставляет на шину адреса содержимое РА (адрес текущей ячейки ОП) и формирует сигнал ЧтЗУ. Считанное из ячейки ОП слово помещается на шину данных. На втором этапе КПДП выставляет на ША адрес устройства вывода и формирует сигнал Выв, который обеспечивает передачу слова с шины данных в ВУ.

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

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


После пересылки каждого слова логика управления прибавляет единицу к содержимому РА (формирует адрес следующей ячейки ОП) и уменьшает на единицу содержимое СД (ведет подсчет переданных слов).

Когда пересылка завершена (при нулевом значении в СД), КПДП снимает сигнал «Запрос ПДП», в ответ на что ЦП снимает сигнал «Подтверждение ПДП» и вновь берет на себя управление системной шиной, то есть ЦП вовлечен в процесс ввода/вывода только в начале и конце передачи.

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

блочная пересылка;

пропуск цикла;

прозрачный режим.

При блочной пересылке КПДП полностью захватывает системную шину с момента начала пересылки и до момента завершения передачи всего блока. На весь этот период ЦП не имеет доступа к шине.

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

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

В отличие от обычного прерывания в пределах цикла команды имеется несколько точек, где КПДП вправе захватить шину (рис 6). Отметим, что это не прерывание: процессору не нужно запоминать контекст задачи.

Рис. 6. Диаграмма работы КПДП

Число необходимых циклов шины может быть уменьшено при объединении функций КПДП и ВУ.

3. Каналы и процессоры ввода-вывода

По мере развития систем В/ВЫВ их функции усложняются. Главная цель такого усложнения — максимальное высвобождение ЦП от управления процессами ввода/вывода. Некоторые пути решения этой задачи уже были рассмотрены. Следующими шагами в преодолении проблемы могут быть:

  1. Расширение возможностей МВВ и предоставление ему прав процессора со специализированным набором команд, ориентированных на операции ввода/вывода. ЦП дает указание такому процессору В/ВЫВ выполнить хранящуюся памяти ВМ программу ввода/вывода. Процессор В/ВЫВ извлекает и исполняет команды этой программы без участия центрального процессора и прерывает ЦП только после завершения всей программы ввода/вывода.

  1. Рассмотренному в пункте 1 процессору ввода/вывода придается собственная локальная память, при этом возможно управление множеством устройств В/ВЫВ с минимальным привлечением ЦП.

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


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

В ВМ с каналами ввода/вывода центральный процессор практически не участвует в непосредственном управлении внешними устройствами, делегируя эту задачу специализированному процессору, входящему в состав КВВ. Все функции ЦП сводятся к запуску и остановке операций в КВВ, а также проверке состояния канала и подключенных к нему ВУ. Для этих целей ЦП использует лишь несколько (от 4 до 7) команд ввода/вывода.

КВВ реализует операции В/ВЫВ путем выполнения так называемой канальной программы. Канальные программы для каждого ВУ, с которым предполагается обмен информацией, описывают нужную последовательность операций ввода/ вывода и хранятся в основной памяти ВМ. Роль команд в канальных программах выполняют управляющие слова канала (УСК), структура которых отличается от структуры обычной машинной команды. Типовое УСК содержит:

код операции, определяющий для КВВ и ВУ тип операции: «Записать» (вывод информации из ОП в ВУ), «Прочитать» (ввод информации из ВУ в ОП), «Управление» (перемещение головок НМД, магнитной ленты и т. п.);

указатели — дополнительные предписания, задающие более сложную последовательность операций В/ВЫВ, например при вводе пропускать отдельные записи или наоборот — с помощью одной команды вводить «разбросанный» по ОП массив как единый;

адрес данных, указывающий область памяти, используемую в операции ввода/ вывода;

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

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

Центральный процессор инициирует ввод/вывод путем инструктирования канала о необходимости выполнить канальную программу, находящуюся в ОП, и указания начального адреса этой программы в памяти ВМ. КВВ следует этим указаниям и управляет пересылкой данных. Отметим, что пересылка информации каналом ведется в режиме прямого доступа к памяти. ВУ взаимодействуют с каналом, получая от него приказы. Таким образом, в ВМ с КВВ управление вводом/выводом строится иерархическим образом. В операциях ввода/вывода участвуют три типа устройств:

процессор (первый уровень управления);

канал ввода/вывода (второй уровень);

внешнее устройство (третий уровень).

Каждому типу устройств соответствует свой вид управляющей информации:

процессору — команды ввода/вывода;

каналу — управляющие слова канала;

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