Модульная организация памяти
WE – разрешение записи /write enable/
CS – выбор кристалла /chip select/
Примеры логических адресов
Прямой адрес
Афиз = Алог (16 разрядов), тогда объем памяти равен 64Кб
Адрес физический – адрес в ОЗУ
2. Адрес логический меньше адреса физического (расширенная память)
Афиз < Алог
Преобразование короткого логического адреса к длинному физическому
3. Адрес логический больше адреса физического
Афиз > Алог
Короткий логический адрес и длинный физический
Адресное пространство – совокупность ячеек, к которой можно обратиться
Метод банков
Логическое адресное пространство объявляется модулем (банком) памяти
Должна быть отдельная команда обращения к регистру, в котором хранится номер банка
В упрощенном варианте суть метода банков состоит в том, что все физическое адресное пространство разбивается на страницы, каждая из которых равна логическому адресному пространству. Старшие разряды физического адреса определяются содержимым специального программно-доступного регистра старших разрядов адреса, т.е. полный физический адрес определяется путем конкатенации логического адреса с содержимым регистра старших разрядов (номером банка).
При этом ЦВМ на некотором временном интервале "работает" только с одной страницей и, следовательно, в каждой такой странице должны располагаться, в случае принстонской архитектуры, и текущая исполняемая программа, и фрагменты операционной системы (OC), и массивы данных, стек, а при организации системного интерфейса по схеме UNIBUS и регистры внешних устройств (ВУ). Таким образом, физическое адресное пространство будет "разрезано" повторяющимися вставками из одних и тех же фрагментов операционной системы, содержащих по крайней мере обращение к библиотеке стандартных подпрограмм (БСП), и регистры внешних устройств.
Предположим, что работаем с одним банком
В нем хранятся следующие данные:
ВУ – внешние устройства
стек
D – пользовательские данные
пр. – программа
OC – операционная система
ВП – вектора прерываний
В процессе работы возникает следующая ситуация: под данные не хватило места. Чтобы увеличить в 2 раза память под данные (D), придется скопировать все остальные данные
В таком случае (принстонская архитектура)память используется очень неэкономично, поэтому обычно используются следующие подходы.
2 подхода:
1. Метод сегментов
2. Метод окна
Метод сегментов
В процессе выполнения команды известно, когда машина читает код команды, когда вычисляет адрес возврата, когда обращается к операндам, т.е. обращения могут быть к командам, к данным, к стеку, и следовательно можно определить банки (сегменты), отвечающие определенным признакам (банки команд, данных, стека и т.д.).
Определяем несколько адресных пространств, каждое из которых определяется некоторыми признаками