Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Прямой доступ к памяти (DMA)



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

1. Начальный адрес области памяти, используемый при обмене.

2. Объем пересылаемого блока памяти в байтах (типичный размер блока при обмене жестким диско составляет 512 байт).

3. Код операции обмена (в простейшем случае ввод или вывод).

Адрес устройства прямого доступа (адрес ВУ задается в связи с тем, что контроллер DMA включает в себя несколько (как правило, восемь) каналов прямого доступа). Стандартные контроллеры DMA позволяют реализовать следующие виды обмена: 1) Port → Mem; 2) Mem → Port; 3) Mem → Mem; 4) Port → Port.

Канальный ввод/вывод

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

Для управления канальным вводом/выводом используется следующая иерархия командных слов. Команды ВВ → АСК → ОСК.

Команды ввода/вывода входят в систему команд ЦП и являются привилегированными. Это означает, что их управление разрешается только в состоянии супервизор, но не в альтернативном состоянии – задача. Из привилегированности команд ввода/вывода следует, что они могут встречаться только в программах операционной системы, точнее ее части для управления вводом/выводом.

К командам ввода/вывода относятся:

1. SIO - начать ввод/вывод.

2. TCH/TIO - проверить канал или ввод/вывод.

3. HIO - остановить ввод/вывод.

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

Во всех этих командах задается адрес канала и адрес ВУ в канале. Так как под эти адреса отводится по одному байту, то система ввода/вывода мэйнфреймов может включать в себя до 256 каналов, к каждому из которых подключается до 256 ВУ.

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

Управляющее слово канала (ОСК) представляет собой команду канальной программы.

Основные команды, связанные непосредственно с вводом/выводом содержат следующую информацию:

1. Код команды, определяющий тип операции ввода/вывода.

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

3. Длина передаваемого блока данных.

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

 

 




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

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.