Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
10.02.2015
Размер:
225.28 Кб
Скачать

Адрес операнда в оп определяется соотношением

А = ВП[В] + D,

Где ВП [В]– содержимое ячейки ВП с адресом В.

При относительной адресации адреса операндов задаются значениями

D = 0, 1, 2, …, (2m – 1) относительно базовых адресов, которые определяются косвенно – через адреса ячеек ВП[В] = 0,1,…,Q,(Q=2q –1). При загрузке программы в ОП в соответствующие ячейки ВП засылаются базовые адреса, определяющие начало области ОП, в которую загружена программа. При выполнении программы относительные адреса (D), указанные в командах, обрабатываются процессором путем выборки из ВП базового адреса ВП[В] и сложения его со смещением D. Сумма определяет абсолютный адрес – адрес ячейки ОП, в которой хранится операнд. При этом при перемещении программы изменяется только базовый адрес в ВП, а относительные адреса остаются неизменными.

Оценим емкость ВП, необходимую для размещения базовых адресов. На каждом этапе вычислений необходимо использовать один базовый адрес, необходимый для указания начала программы и базовые адреса для адресации массивов, количество которых определяется свойствами алгоритмов и структурной данных. Если все базовые адреса не умещаются в ВП, то необходимо производить перезагрузки содержимого ВП, что увеличивает длину и время выполнения программы. Поэтому увеличение памяти базовых адресов в ВП уменьшает длину и время выполнения программы, но одновременно увеличивает длину поля В в адрес, т.е. длину команды и затраты оборудования в процессоре и в ОП.

В ЭВМ общего назначения в ВП необходимо хранить 4-8 базовых адресов.

В мини и микро – ЭВМ емкость памяти обычно невелика, поэтому относительная адресация в них, как правило, не используется.

Относительные модифицируемые адреса используются для обработки переменных с индексами при относительной адресации. Они имеют следующую структуру:

1 q1 q1 m

В

Х

D

Здесь В– адрес базового адреса

Х – адрес индекса

D – смещение

Абсолютный адрес операнда вычисляется по выражению

ВП[В] + D, если Х=0

А = ВП[В] + ВП[Х] + D, если Х0

Смещение D при Х0 имеет смысл относительного базового адреса массива, элементом которого является адресуемый операнд – переменная с индексом.

Адресация при страничной организации памяти

Основная память ЭВМ имеет весьма большой объем. Так в ЭВМ общего назначения она достигает 224 байт (при этом адрес должен иметь до 24 разрядов), а в мини-ЭВМ и микро-ЭВМ – 216 слов (длина адреса 16 разрядов).

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

Выбор длины машинного слова определяется в основном диапазоном и точностью представления данных. Поэтому ЭВМ общего назначения, основной формат данных которых составляют числа с плавающей запятой, длина слова равна 32 разрядам. В мини- и микро-ЭВМ, обрабатывающих только числа с фиксированной запятой с меньшей точностью, длина слова соответственно равна 16 и 8-16 разрядам.

Таким образом, оказывается, что длина адреса в команде совпадает с длиной всего машинного слова. И не остается места для выделения полей кода операции, признака адресации, адреса базы и индекса. В этом случае для уменьшения длины адреса вводится страничная организация памяти. Суть страничной организации памяти в следующем.

Если ЭВМ имеет ОП объемом N=2m слов, то ее разбивают на секции объемом по S=2p слов, называемые страницами.

Количество слов в странице называется размером страницы. Всего в памяти размещается Q страниц

= 2m-p

Каждая страница имеет фиксированный базовый адрес. Таким образом, любой адрес ОП можно выразить через адрес (номер) страницы и адрес (номер) слова в странице.

Так, например, если ОП имеет N=16 и S=4, то в этом случае слово в адресом А=6 будет размещаться в странице 2, а адрес слова в странице – 3

0 – 3 Распределение страниц в ОП

4 – 7

8 – 11

12 – 15

Следовательно, полный адрес слова в ОП будет состоять из двух частей

1 m

1 Р1 q1

1 А1 р

Где Р1 - адрес (номер) страницы

А1 - адрес слова в странице

При этом в поле адреса команды указывают только адрес слова в странице, длина которого равна Рразрядам. Длина команды в расчете на каждый адрес уменьшается на

q = m - p разрядов.

Полный адрес операнда формируется в процессоре приписыванием р-разрядного смещения (А1), указанного в команде к моменту выполнения команды. (Он хранится в ВП).

Установка адреса страницы производится специальными командами с полным m-разрядным адресом, который обычно размещается в двух словах.

Такая команда обеспечивает переход к слову новой страницы Р, позволяя в дальнейшем в пределах выбранной страницы Р оперировать короткими Р-разрядными адресами. Это продолжается до тех пор, пока не потребуется перейти к следующей странице, для чего вновь используется команда с полным адресом.

Таким образом, при страничной адресации уменьшается длина команд, но требуются дополнительные команды для переходов между страницами, что увеличивает длину и время выполнения программы. При этом увеличение длины страницы уменьшает количество межстраничных переходов (страничных сбоев), но увеличивает длину адреса страницы, т.е. выигрываем в быстродействии, но проигрываем в длине команды, т.е. требуемом объеме ОП.

Существуют точные методы определения длины страницы, увеличивающие также диапазон и точность данных.