Я знаю, что этот вопрос уже обсуждался, но я все еще что-то не понимаю, поэтому, пожалуйста, просто помогите мне прояснить его.

Что я понимаю, есть 2 способа сделать ввод / вывод, также известный как связь с процессором с другим HW. Один из них - использовать входящие и исходящие инструкции, а второй - отображение памяти.

Но что я на самом деле не понимаю, так это то, что используются инструкции IN и OUT, вы определяете порт источника. Но что это за порт? Я имею в виду, это другой набор контактов на процессоре или что? И с чем связан этот порт?

Что касается карт памяти, я скучаю только по мелочам. Если ввод-вывод с отображением памяти должен быть сначала установлен инструкциями IN и OUT, или устройство фактически каким-то образом само подключается к ОЗУ и читает его? Благодарю.

1 ответ1

3

На Z80 есть вывод на микросхеме, который устанавливается (устанавливается в верхнее или логическое состояние 1), когда инструкция является инструкцией IN или OUT. Аппаратное обеспечение, подключенное к микросхеме, контролирует этот контакт, а также контакты чтения / записи, а также некоторые адресные контакты, чтобы определить, относится ли операция к ним. Каждое устройство сконфигурировано для распознавания некоторого числа в качестве номера порта и соответствующего ответа. Итак, когда вы пишете инструкцию на ассемблере, такую как:

OUT(15),A

чип устанавливает младшие 8 адресных контактов на 15 и записывает содержимое регистра A на контакты данных. Если оборудование настроено и правильно подключено, оно знает, что для него предназначено. Аналогично с IN(15),A

В случае ввода-вывода с отображением в память имеется место в памяти, зарезервированное для оборудования. Когда процессор пишет по адресу 0xFFF0, скажем (при условии удобной 8-битной микроархитектуры, такой как 6502 или 6800 или 6809 - или, действительно, Z80), тогда оборудование, подключенное для ответа на этот адрес, не является микросхемой ОЗУ. но устройство. Как правило, есть по крайней мере один соседний адрес, который используется для чтения; иногда один и тот же адрес используется для чтения и записи.

В обоих случаях проблема заключается в том, что оборудование, подключенное к ЦП, распознает определенные схемы активности на контактах микросхем (некоторые контакты управления, контакты данных и контакты адреса) как относящиеся к ним. Вы можете столкнуться с проблемой, если несколько разных устройств считают, что один и тот же адрес или порт ввода / вывода ссылаются на них.

Хотя в качестве примеров я использовал 8-битные микросхемы, те же базовые принципы применимы к 16-битным, 32-битным или 64-битным микросхемам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .