Cтраница 5
![]() |
Временная диаграмма операций шины во время выполнения команды OUT 1. [61] |
Следует отметить, что адрес порта ввода или вывода является 8-разрядным, а не 16-разрядным числом. Для согласованности он размещается в обеих частях адресной шины в течение того времени, когда включен сигнал ALE. Однако в то время, когда включен сигнал RD или WR /, адрес остается в части А8 - AIS адресной шины, а данные размещаются в шине данных. Дешифратор использует 8-разрядный адрес порта и состояние сигнала Ю ( М /) для того, чтобы сгенерировать соответствующий сигнал выбора блока для каждого периферийного устройства. Каждому отдельному периферийному устройству может быть назначено несколько адресов портов. Дешифратор отображает все адреса портов, назначенные конкретному устройству, в сигнал ( ы) выбора блока. [62]
![]() |
Схема подключения памяти и периферийных устройств к центральному процессору Intel 8085. [63] |
Блок памяти, содержащий адресуемую ячейку памяти, помещает данные из нее в шину данных ADo - AD7, которые передаются затем в центральный процессор. На рис. 8.8 показаны временные соотношения между этими операциями при выполнении команды языка ассемблера LDA VALUE. Следует отметить, что старший байт адреса остается в части адресной шины А8 - Ai5 в течение всего времени, когда включен сигнал RD /, и поэтому не должен храниться в блоке фиксации. Сигналы выбора блока обеспечивают отклик каждого блока памяти только в случае правильной адресации. [64]
Прежде чем будет осуществлен поблочный обмен, канал ПДП и подключенное к нему периферийное устройство должны быть инициализированы. Инициализация выполняется программным способом путем засылки соответствующей информации в контроллер ПДП и в периферийные устройства. Так как адрес ячейки памяти микрокомпьютера Intel 8085 представляется 16-разрядным числом, то для пересылки адреса блока памяти в контроллер ПДП требуется две передачи. Однако для каждого канала предусмотрен только один адрес выбора блока. Поэтому обе передачи осуществляются в один и тот же адрес выбора блока. В первой передаче посылается младший байт адреса блока памяти, а во второй - старший. Для обеспечения правильной синхронизации во время пересылки адреса блока памяти оба байта должны быть посланы один за другим. Кроме того, на это время должна быть заблокирована система прерываний, чтобы не допустить передачи посторонних данных. [65]
При наличии в ОЗУ требуемого блока производится иепосредств. При этом старшие разряды кода адреса задаются номером того адресного регистра, содержимое к-рого совпало со старшими разрядами заданного кода адреса. Если окажется, что блок, к к-рому относится искомая ячейка, ire находится п данный момент в ОЗУ, производится обращение к адресной оперативной памяти, и но значению старших разрядов заданного адреса определяется ячейка этой памяти, содержимое к-рой указывает действпт. Этот блок переписывается на свободное место в ОЗУ ( для этого в ОЗУ всегда одна зона остается свободной), а в соответствующий адресный регистр записываются старшие разряды адреса данного блока. После переписи каждого нового блока в ОЗУ, если ОЗУ заполнено полностью, производится вывод из ОЗУ на магнитный барабан или магнитный диск одного из хранящихся там блоков. Выбор выводимого блока может быть сделан либо на основе непосредств. [66]