Подключение внешнего устройства к шине
Рисунок 9.1. Подключение внешнего устройства к шине
Два основных подхода к адресации этих регистров — это отдельное адресное пространство ввода-вывода и отображенный в память ввод-вывод (memory-mapped I/O), когда память и регистры внешних устройств размещаются в одном адресном пространстве. В первом случае для обращения к регистрам Устройств используются специальные команды IN и OUT. Во втором случае Могут использоваться любые команды, способные работать с операндами в памяти. Как правило, даже в случае раздельных адресных пространств, для обмена данными с памятью и внешними устройствами процессор использу-ет одни и те же шины адреса и данных, но имеет дополнительный сигнал адресной шины, указывающий, какое из адресных пространств используется в данном конкретном цикле.
Любопытный гибридный подход, сочетающий преимущества обоих вышеназванных, предоставляют микропроцессоры с системой команд SPARC v9 У этих процессоров команды имеют поле, служащее селектором адресного пространства. Этот селектор, в частности, может использоваться для выбора адресного пространства памяти или ввода-вывода. Благодаря этому, с одной стороны, можно применять для работы с регистрами портов любые команды работы с памятью, как при отображенном в память вводе-выводе, и в то же время полностью задействовать адресное пространство памяти.
Два основных подхода к выделению адресов внешним устройствам — это фиксированная адресация, когда одно и то же устройство всегда имеет одни и те же адреса регистров, и географическая адресация, когда каждому разъему периферийной (или системной, если внешние устройства подключаются непосредственно к ней) шины соответствует свой диапазон адресов (Рисунок 9.2). Географически можно распределять не только адреса регистров, но и другие ресурсы — линии запроса прерывания, каналы ПДП.