Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции Арх комп.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
856.58 Кб
Скачать

Индексная адресация с использованием регистров

Аб Аисп=Ав+i

i

Рис. 6.5.

6.3.2.8. Относительная адресация

При динамическом распределении памяти базовые адреса массивов изменяются в процессе выполнения программы, в результате адреса не могут быть зафиксированы в программе. Для обеспечения динамического распределения памяти используют способ относительной адресации. Относительный адрес (рис. 6.6, а) состоит из двух полей: В, указывающего базовый адрес Аб массива D, представляющего собой относительный адрес Аотн. Поле D принято называть смещением D операнда относительно начала массива.

Исполнительный адрес вычисляется по формуле Аисп= (В)+D. Для хранения базовых адресов в целях повышения быстродействия ЭВМ используют также так называемые базовые регистры СОЗУ.

При формировании Аисп (рис. 6.6, а) на суммирование в SМ затрачивается некоторое время. В целях уменьшения этого времени используют так называемый метод совмещения. В этом случае в базовом регистре В (рис. 6.6, б) содержатся старшие разряды, а в поле С) записывают младшие разряды исполнительного адреса Аисп, которые выдаются непосредственно в регистр адреса оперативной памяти (РгАОП). При совмещении, очевидно, базовый адрес Аб не может принимать значение адреса любой ячейки ОП, а только тех адресов, которые содержат в младших разрядах нули, соответствующие количеству разрядов поля D.

Относительная адресация

Аотн

Аб Аисп=Аб+Аотн

а)

Регистр АОП

б)

Рис. 6.6.

В универсальных ЭВМ используют совместно относительную адресацию и модификацию адресов (рис. 6.7). В этом случае Аисп вычисляется по формуле Аисп=(В)+(X)+D, где (В) — базовый адрес Аб (содержимое ячейки В), (X) — индекс i (содержимое ячейки X); D — смещение операнда (относительный адрес).

Формирование исполнительного адреса при относительной и индексной адресации

Аисп

Рис. 6.7.

6.4. Организация виртуальной памяти

Обычно при решении задач на ЭВМ только часть информации размещается во внутренней памяти, а остальная хранится во внешней памяти. Таким образом, программист имеет дело с многоуровневой памятью и, планируя процесс решения задачи, включает в программу операции, вызывающие обмен информацией между различными ЗУ. Даже при наличии систем автоматизации программирования и хорошо организованных систем управления данными программирование задач для ЭВМ с многоуровневой памятью отличается сложностью и требует от исполнителей высокой квалификации. Особенно сложны процедуры обмена информацией между уровнями памяти, необходимые для организации мультипрограммной работы ЭВМ в режиме разделения времени. В связи с этим. в современных ЭВМ осуществляется автоматическое (не предусмотренное программой) планирование передач информации в многоуровневой памяти, основанное на построении виртуальной (фиктивной, кажущейся) одноуровневой памяти.

Под виртуальной памятью понимается совокупность ячеек всех ОЗУ и ВЗУ, имеющих сквозную нумерацию 0, 1, 2, ..., (Q-1). Программирование процессов решения задач производится в терминах математических (виртуальных) адресов 0.1,2,..., (Q-1). При этом команды ссылаются на математические адреса в предположении, что слово, идентифицированное любым математическим адресом, является доступным для процессора. Таким образом, для программиста создается одноуровневая память емкостью Q слов. В физическом отношении виртуальная память — это совокупность оперативных и внешних ЗУ, охваченных средствами преобразования математических адресов в физические (действительные) адреса ячеек и автоматизации перемещения информации между устройствами памяти.