Система ввода-вывода
Система ввода-вывода, т. е. комплекс средств обмена информацией с внешними устройствами, является важнейшей частью архитектуры процессора и машины в целом. К системе ввода-вывода можно отнести и способы подключения к системной шине различного оборудования, и процедуры взаимодействия процессора с этим оборудованием, и команды процессора, предназначенные для обмена данными с внешними устройствами.
Непрерывное совершенствование микропроцессоров и стремление максимально повысить производительность всей вычислительной системы привело к существенному усложнению внутренней организации компьютеров: повышению разрядности шин, появлению внутренних быстродействующих магистралей обмена данными, использованию кэш-буферов для ускорения обмена с памятью и дисками и проч. Если, однако, отвлечься от важных с точки зрения производительности, но несущественных для программиста деталей, то логическую схему современного компьютера можно представить традиционным образом, в виде системной шины (магистрали), к которой подключаются сам микропроцессор и все устройства компьютера (рис. 1.13).
Рис. 1.13. Подключение устройств компьютера к системной шине(A – адреса; D – данные; M/IO – один из сигналов управления)
Системная шина представляет собой, в сущности, набор линий – проводов, к которым единообразно подключаются все устройства компьютера. В более широком плане в понятие системной шины следует включить электрические и логические характеристики сигналов, действующих на линиях шины, их назначение, а также правила взаимодействия этих сигналов при выполнении тех или иных операций на шине – то, что обычно называют протоколами обмена информацией. Сигналы, распространяющиеся по шине, доступны всем подключенным к ней устройствам, и в задачу каждого устройства входит выбор предназначенных ему сигналов и обеспечение реакции на них, соответствующей протоколу обмена.
Процессор связан с системной шиной большим количеством линий (практически всеми своими выводами), из которых нас будут интересовать только линии трех категорий: набор линий адресов, набор линий данных и один из сигналов управления, носящий название М / IO' (М – "IO с отрицанием"). Последний сигнал, строго говоря, имеется только среди выходных сигналов микропроцессора, а на системную шину приходят производные от этого сигнала, образованные, как комбинации сигнала М / IO' с управляющими сигналами записи и чтения. Однако суть дела от этого не изменяется, и для простоты мы опустили эти подробности.
Процессор, желая записать данное по некоторому адресу в памяти, выставляет на линии адресов требуемый адрес, а на линии данных – данное. Устройство управления памятью расшифровывает поступивший адрес и, если этот адрес принадлежит памяти, принимает с линий данных поступившее данное и заносит его в соответствующую ячейку памяти. Описанная процедура отражает выполнение процессором команды типа: mov mem,AX, где mem – символическое обозначение ячейки памяти, принадлежащей сегменту данных программы.