Способы сочетания адресации памяти с адресацией увв

Почти все микропроцессоры используют одни и те же шины для обмена данными как с памятью, так и с УВВ. Следовательно, возникает вопрос, как различить эти два вида обмена. Существуют три стандартных метода:

1. Изолированных линий. При применении этого метода адреса, используемые для обращения к памяти и УВВ, декодируются раздельно.

2. Ввода-вывода, адресуемого как память (memory-mapped input/ output). В данном MetOAe порты ввода-вывода рассматриваются как ячейки памяти.

3. Встроеша£о'Шда:мтодаХattached Jnput/oulputf. Порты ввода вывода являются частью модуля ЦП или модулей памяти. Они активируются специальными командами.

На рис. 8.11 изображена структура микро-ЭВМ с изолированными линиями ввода-вывода. С помощью сигнала «выбор подсистемы» (SECTION SELECT) система различает операции ввода-вывода данных и обмена данными с памятью и открывает в зависимости от этого ту или иную группу шинных драйверов. Этот сигнал может также активировать любой модуль памяти или порт ввода-вывода. Для организации ввода-вывода необходимы особые команды. Выполнение этих команд устанавливает сигнал «выбор подсистемы» в состояние «ввод-вывод». В качестве примеров микропроцессоров, которые могут использовать метод изолированных линий, можно привести микропроцессоры Intel 8080, Zilog Z-80, Signetics 2650.

Преимущества метода изолированных линий заключаются в следующем:

1) адрес порта ввода-вывода может быть коротким. В большинстве систем число портов намного меньше числа ячеек памяти. Для адреса порта ввода-вывода обычно достаточно восьми разрядов, для адреса ячейки памяти требуется обычно больше разрядов. Короткий адрес порта ввода-вывода означает возможность упрощения декодирующих систем и использования более коротких команд;

2) могут быть легко разработаны дополнительные сигналы управления передачей информации при вводе-выводе. Для модулей памяти редко требуются сигналы стробирования и квитирования, часто необходимые для операций ввода-вывода;

3) программы становятся более наглядными, так как операции ввода-вывода выполняются с помощью команд, отличных от команд других операций;

4) разработка подсистем ввода-вывода может производиться отдельно от разработки модулей памяти, так как управляющие структуры' могут быть независимыми.

Изолированный ввод-вывод требует дополнительного декодюова-ния и дополнительных команд; теряется также гибкость, но зато память и порты ввода-вывода здесь действительно различимы естественным образом. Если порты ввода-вывода — простые устройства ТТЛ, а периферийные устройства однонаправленные, то недостаточно четкое различие между памятью и портами ввода-вывода может привести к ошибкам.

На рис. 8.12 показана структура микро-ЭВМ с вводом-выводом, адресуемым как память. Процессор использует одни и те же команды для обмена как с памятью, так и с УВВ. Среди процессоров, разработанных специально для такого ввода-вывода, можно отметить такие, как Motorola 6800, MOS Technology 6502 и РАСЕ фирмы National. Порт ввода-вывода определяется только своим адресом. Естественно, процессор с обособленными командами ввода-вывода может использовать метод адресации портов ввода-вывода как ячеек памяти, если модули памяти и ввода-вывода можно свчетать. Преимущества ввода-вывода, адресуемого как память, заключаются в следующем:

1) любая команда, работающая с данными, находящимися в памяти, может работать и с данными, находящимися в порте ввода или вывода. Никаких особых команд ввода-вывода не требуется, и программирование многих задач может существенно упроститься;

2) не требуется отдельной системы для декодирования и управления вводом-выводом. Благодаря этому число модулей в системе можно сократить;

3) в систему легко включить интерфейсные БИС и специальные контроллеры. Эти устройства часто содержат запоминающие элементы или регистры, настраиваемые процессором. Это обстоятельство является существенным, так как управление столь сложными устройствами, как наборы портов ввода-вывода, затруднительно.

У метода ввода-вывода, адресуемого как память, имеется также и ряд недостатков:

1) трудно отличить операции передачи информации при вводе-выводе от других операций.* Трудно читать и отлаживать программу, в которой простые команды вызывают выполнение сложных операций ввода-вывода;

2) порты ввода-вывода требуют выделения им некоторого адресного пространства;

3) результат выполнения многих команд, возможно, будет трудно понять из-за ограничений, связанных с физической природой УВВ. Что произойдет, если, например, ЦП попытается записать данные в УВВ «переключатель» или считать данные с выходных линий?

4) система декодирования может оказаться сложной, так как порты ввода-вывода занимает значительно меньшие участки адресного пространства, чем память. Поэтому придется либо усложнять декодирующую систему, либо примириться с потерей части адресного пространства. Для порта ввода-вывода редко требуется много адресов памяти;

5) использование этого метода затруднительно, если применять только стандартные схемы: сигналы управления не смогут управлять сложным вводом-выводом. Поэтому интерфейсные БИС часто должны генерировать дополнительные сигналы под управлением программы.

Ввод-вывод, адресуемый как память, более всего подходит для систем, использующих сложные интерфейсные БИС, в то время как изолированный ввод-вывод — для систем, в которых используются схемы малой и средней степеней интеграции.

Встроенный ввод-вывод полезен как альтернативный вариант для малых систем, для которых число корпусов играет важную роль. При использовании данного метода порты ввода-вывода и цепи управления являются частью модулей памяти или процессора (рис. 8.13). Встроенный ввод-вывод позволяют применять процессоры Intel 4040, Fairchild F-8, National SC/MP, Texas Instruments TMS 1000 NC и Intel 8048.

Разумеется у подобных систем есть много недостатков. Отметим следующие:

1) требования к лодсйстеме ввода-вывода не должны быть слишком высокими. Корпуса ЦП и памяти могут предоставить системе небольшое число портов и обеспечить незначительное число сигналов управления;

2) специальные кристаллы памяти более дороги, чем стандартные, а недостаточное число сигналов управления может сильно затруднить использование стандартных микросхем;

3) расширение системы становится трудным и дорогостоящим;

4) необходимы специальные команды или адреса памяти для передачи данных в порты и из них.

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