Читать «Искусство схемотехники. Том 3 (Изд.4-е)» онлайн - страница 21
Пауль Хоровиц
К сожалению, того же нельзя сказать про ПЗУ, которые обычно оказываются медленнее ОЗУ. Например, выпускаемые РПЗУ 32Кx8 характеризуются стандартными значениями времени (от адреса до данных или от CS
Периферийные цепи. В нашем приборе предусмотрено 9 периферийных устройств, поэтому в качестве «адресного коммутатора» мы использовали дешифратор «1 из 8» (`138); один из портов ввода-вывода разделяется ЭЛД-индикатором и набором микропереключателей. Сигналом разрешения дешифратора служит установка А19, что переводит нас в пространство ввода-вывода (верхняя половина адресного пространства); работа дешифратора запрещается на время цикла подтверждения прерывания, как это было объяснено ранее. К дешифратору подводятся линии А12-А14, в результате чего периферийные устройства имеют адреса $80000, $81000, $82000 и т. д.; оставшиеся старшие линии адреса мы игнорировали, как и при подключении памяти, в результате чего адреса периферийных устройств многократно появляются в адресном пространстве. В сущности, каждый адрес, превышающий 80000, до самого последнего адреса $FFFFF (а это полмиллиона адресов), отвечает какому-то периферийному устройству!
Упражнение 11.9. Расшифруйте это последнее утверждение, определив, сколько раз в точности каждое периферийное устройство появляется в адресном пространстве. После этого напишите общее выражение для адресов ЭЛД-индикатора, используя крестик (х) для тех бит, значение которых не влияет на результат дешифрации.
Упражнение 11.10. Единственным реальным недостатком нашей схемы неполной дешифрации адресов является использование понапрасну полмегабайта адресного пространства для обращения к десятку пустяковых периферийных устройств, в то время как большую часть этого пространства можно было бы отвести под память. Покажите, как следует дешифровать адреса ввода-вывода, если большую часть адресного пространства 1 Мбайт предполагается отвести под память. Наши 8 портов должны отображаться на адреса $FF000, SFF100… SFF700 и не отзываться при обращении по меньшим адресам. Теперь можно установить ОЗУ объемом 1 Мбайт, однако при обращении по адресам портов ввода-вывода будут активизироваться и ввод-вывод, и память. Найдите способ разрешить эту проблему.