Интерфейс памяти с 8086

Микропроцессор 8086 может адресовать до 1 МБ памяти (20-битная адресная шина). В большинстве книг показана диаграмма этой памяти объемом 1 МБ, которая, в свою очередь, показывает таблицы векторов прерываний, функции DOS, подпрограммы BIOS, занимающие место в памяти, и т. д.

МОЙ ВОПРОС:

Когда упоминается 1 МБ памяти, книги относятся к ПЗУ и ОЗУ компьютера. ПЗУ + ОЗУ = 1 Мб памяти сопрягаются? Если да, когда ввод-вывод с отображением памяти отображается как сегмент памяти в этом пространстве памяти объемом 1 МБ ..... означает ли это, что порты ввода-вывода занимают часть оперативной памяти?

Вот источник в формате PDF, который представляет собой небольшую выдержку из книги Эдварда Солари «Теория и работа ISA и EISA»: ee.nmt.edu/~rison/ee352_spr12/PC104timing.pdf Может быть полезно прочитать временные диаграммы.

Ответы (2)

Когда упоминается 1 МБ памяти, книги относятся к ПЗУ и ОЗУ компьютера. ПЗУ + ОЗУ = 1 Мб памяти сопрягаются?

Правильный. ЦП не различает ОЗУ и ПЗУ; адресное пространство размером 1 МБ совместно используется обоими.

Если да, когда ввод-вывод с отображением памяти отображается как сегмент памяти в этом пространстве памяти объемом 1 МБ ..... означает ли это, что порты ввода-вывода занимают часть оперативной памяти?

Вроде, как бы, что-то вроде. Порты ввода-вывода (используемые инструкциями INи OUT) технически представляют собой отдельное адресное пространство на платформе x86 и не занимают адресное пространство памяти.

Однако к периферийным устройствам, отображаемым в память, обращаются так же, как к памяти, и они занимают адресное пространство памяти (которое они делят с ОЗУ и ПЗУ).

1. «Технически порты ввода-вывода на x86 являются отдельной вещью и не занимают адресное пространство» - не могли бы вы немного уточнить? 2. «которое они делят с ОЗУ и ПЗУ». Если порт ввода-вывода занимает адресное пространство… значит, он занимает место ВНУТРИ ОЗУ, верно?
Вы используете линию CE для связи с одним или другим, насколько я помню, когда я обмотал проводом 8088
@eliza Раньше я обматывал платы ISA проводами - все еще хотел бы, чтобы я мог, поскольку шина PCI требует ОЧЕНЬ ДОРОГОГО оборудования и времени на разработку, тогда как шина ISA ДЕШЕВАЯ и ЛЕГКАЯ для всех. 8086 имеет 6 основных типов циклов шины: (1) чтение инструкции, (2) чтение памяти, (3) запись памяти, (4) чтение ввода-вывода, (5) запись ввода-вывода и (6) подтверждение прерывания. [Есть также линия, так что циклы ввода-вывода могут быть либо 8-битными (6 циклов), либо 16-битными (3 цикла).] Поскольку устройства на шине могут определить разницу, ввод-вывод находится в другое адресное пространство, чем RAM/ROM. (Есть также (7) остановочный цикл.) Найдите книгу Эдварда Солари.
@Eliza «Порты ввода-вывода» - это отдельная вещь с отдельным (16-битным) адресным пространством, но если устройство выполняет MMIO (большинство новых устройств делают это, и даже в старые времена что-то вроде видеокарты собирается отображать VRAM в темп памяти), то это происходит в адресном пространстве памяти. Под такие цели отдана большая часть верхних 384к.
Операции ввода-вывода используют те же адреса и линии данных, что и операции с памятью, но другие сигналы на шине отличают доступ к вводу-выводу от доступа к памяти. Ни одно правильно реализованное устройство памяти не будет отвечать на доступ к вводу/выводу по адресу F00, и ни одно устройство ввода/вывода не будет отвечать на доступ к памяти по тому же адресу.

Сначала загрузите таблицу данных 8086 для справки.

Когда упоминается 1 МБ памяти, книги относятся к ПЗУ и ОЗУ компьютера.

Они относятся к адресуемому пространству микропроцессора. Посмотрите в таблицу данных, там показаны строки A19:A16 и AD15:AD0, которые используются для адресации внешнего пространства во время цикла T1. Процессору все равно, что находится во внешнем пространстве, он просто говорит, что хочет содержимое определенного адреса.

ПЗУ + ОЗУ = 1 Мб памяти сопрягаются?

У вас может быть ПЗУ, ОЗУ и все, что по шине данных отвечает ЦП, когда он запрашивает определенный адрес. ПЗУ и ОЗУ — это наиболее распространенные типы устройств, которые будут реагировать.

когда ввод-вывод с отображением памяти отображается как сегмент памяти в этом пространстве памяти объемом 1 МБ

Смотри сюда . ЦП использует один вывод для идентификации во внешнем мире типа команды, которую он использует для доступа (чтение [RD] или запись [WR]), его имя — M/IO. Если на этом выводе высокий уровень, процессор выполняет команду MOV, а содержимое ожидается из памяти . Когда на этом выводе низкий уровень, ЦП выполняет инструкцию IN/OUT, и содержимое ожидается от устройства ввода/вывода .

Однако ничто не запрещает предполагаемому устройству ввода/вывода реагировать, когда на этом выводе M/IO высокий уровень, и быть похожим на память .

В общем, эти типы - пространство памяти и пространство ввода-вывода были разработаны в старые добрые времена, когда оперативной памяти было мало, а логика была дорогой; наличие отдельной схемы ввода-вывода освободит адресное пространство памяти и будет меньше адресного пространства памяти (например, 16 бит или даже 8 бит вместо 20/16 бит). Это было удобно и понятно.

Однако некоторые разработчики устройств решили, что они хотели бы, чтобы их потенциальные устройства ввода/вывода реагировали на чтение и запись ячеек ОЗУ, а не на чтение/запись порта - причины могут заключаться в том, что ввод/вывод ОЗУ быстрее, занимает больше места. меньше байтов инструкций и т. д.

они означают, что порты ввода-вывода занимают часть оперативной памяти?

Да — устройство ввода-вывода с отображением памяти , отвечая на запрос чтения/записи в адресуемом пространстве памяти , занимает это пространство из полезного пространства ОЗУ. Например, в старых 8-битных компьютерах со слотами ОЗУ разработчики часто реализовывали ввод-вывод контроллера гибких дисков (который является вводом-выводом, а не устройством памяти) для адресации через специальные ячейки ОЗУ.

Довольно хороший ответ, за исключением последней части: нет, на 8086 порты ввода-вывода НЕ занимают место в ОЗУ.
Согласен, эта часть была запутанной, отредактировал добавление «сопоставление памяти». Предыдущий вопрос содержал «ввод-вывод с отображением памяти», и я предположил, что он относится и к этому последнему вопросу. Теперь должно быть 100% ясно.