
- •Оптическая память
- •Магнитная память
- •Структура компьютера
- •Програмне введення –виведення
- •Команды ввода-вывода
- •Введення виведення по прериванию
- •Прямий доступ до пам’яті
- •Структура центрального процесора
- •Структура процессора станет совершенно понятной, если задуматься над тем какие операции ему предстоит выполнять при обработке машинной команды.
- •Микропроцессорное управление
- •Функции устройства управления
- •Мультипроцессор
- •Кластер
Програмне введення –виведення
Методы выполнения процедур ввода-вывода можно разделить на три группы. При программируемом вводе-выводе данные циркулируют между процессором и модулем ввода-вывода. Весь процесс обмена идет под полным контролем процессора (точнее, программы, которую процессор выполняет). Процессор анализирует текущее состояние устройства, передает команды чтения данных с устройства или передачи ему данных (для общности принято называть такую операцию "записью на устройство", хотя для многих типов устройств никакой записи фактически не выполняется). После того как процессор передаст некоторую команду модулю ввода-вывода, процессор должен выждать, пока команда будет выполнена, и только после этого передавать следующую. Поскольку, как правило, внешнее устройство работает на несколько порядков медленнее, чем процессор, на ожидание понапрасну тратится масса времени.
Более производителен метод ввода-вывода по прерыванию. При обмене данными по этому методу процессор, передав модулю команду ввода-вывода, продолжает выполнять дальнейшие команды программы до тех пор, пока не будет прерван модулем, извещающим, что выполнение ранее переданной команды завершено. При выполнении операций ввода-вывода этими двумя методами на процессор возлагается ответственность за извлечение нужных данных из оперативной памяти при их пересылке на внешнее устройство или за размещение данных в оперативной памяти приприеме их от внешнего устройства. Альтернативный метод получил наименование режима прямого доступа к памяти — direct memory access (DMA). В этом режиме модуль ввода-вывода и оперативная память обмениваются данным^ напрямую, не вовлекая процессор в эту процедуру.
В настоящем разделе мы рассмотрим методику программируемого ввода-вывода, а две другие методики будут описаны в последующих разделах этой главы.
Когда в процессе выполнения программы встретится инструкция, имеющая отношение к вводу-выводу, он передает соответствующую команду определенному модулю ввода-вывода. При программируемом вводе-выводе модуль выполнит заданную операцию и установит по результатам ее выполнения определенные биты в своем регистре состояния (рис. 6.4). Никаких других действий, которые обратили бы внимание процессора на то, что заданная операция завершена, модуль в этом случае не предпринимает. В частности, модуль не посылает процессору сигнал запроса прерывания. Следовательно, на процессор возлагается забота о том, чтобы время от времени анализировать содержимое регистра состояния модуля ввода-вывода и определять, завершено ли выполнение заданной ранее команды.
Анализ методики программируемого ввода-вывода мы начнем с команд, передаваемых процессором модулю, а затем рассмотрим, как эти команды соотносятся с инструкциями ввода-вывода, которые процессор извлекает из программы.
Команды ввода-вывода
При выполнении инструкций программы, имеющих отношение к вводу-выводу информации, процессор должен сформировать адрес, задающий определенный модуль и подключенное к нему внешнее устройство ввода-вывода, и команду этому модулю. Существует четыре типа команд, которые процессор может передавать модулю ввода-вывода.
Команды управления. Служат для активизации внешнего устройства и задаюттип операции, которую устройство должно выполнить.
Команды опроса состояния. Используются для анализа отдельных параметров текущего состояния модуля и (или) подключенного к нему внешнего устройства.
Команда чтения. Инициирует прием модулем ввода-вывода очереднойпорции данных от внешнего устройства.
Команда записи. Инициирует передачу модулем ввода-вывода порции данных внешнему устройству. Передаваемые данные (как правило байт или слово), выставляются процессором на линии данных системной магистрали.