Базовая регистровая адресация 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Базовая регистровая адресация



 

В случае базовой регистровой адресации (БРА) регистр, называемый базовым, со­держит полноразрядный адрес, а подполе Ас — смещение относительно этого ад­реса. Ссылка на базовый регистр может быть явной или неявной. В некоторых ВМ имеется специальный базовый регистр и его использование является неявным, то есть подполе R в команде отсутствует (рис. 28).

 

 

Рис. 28. Базовая регистровая адресация с базовым регистром.

 

Более типичен случай, когда в роли базового регистра выступает один из регис­тров общего назначения (РОН), тогда его номер явно указывается в подполе R команды (рис. 29).

Базовую регистровую адресацию обычно используют для доступа к элементам массива, положение которого в памяти в процессе вычислений может меняться. В базовый регистр заносится начальный адрес массива, а адрес элемента массива указывается в подполе Ас команды в виде смещения относительно начального ад­реса массива. Достоинство данного способа адресации в том, что смещение имеет меньшую длину, чем полный адрес, и это позволяет сократить длину адресного поля команды. Короткое смещение расширяется до полной длины исполнитель­ного адреса путем добавления слева битов, совпадающих со значением знакового разряда смещения.

 

 

Рис. 29. Базовая регистровая адресация с использованием одного из РОН.

 

Разрядность смещения RCM и, соответственно, затраты оборудования опреде­ляются из условия RCM = СБРА = int(log2(max(Non))), где Non, — количество опе­рандов i-й программы.

Затраты времени составляют: ГБРА = tPOH + tСЛ + tЗУ.

Индексная адресация

 

При индексной адресации (ИА) подполе Ас содержит адрес ячейки памяти, а ре­гистр (указанный явно или неявно) — смещение относительно этого адреса. Как видно, этот способ адресации похож на базовую регистровую адресацию. Поскольку при индексной адресации в поле Ас находится полноразрядный адрес ячейки па­мяти, играющий роль базы, длина этого поля больше, чем при базовой регистро­вой адресации. Тем не менее вычисление исполнительного адреса операнда про­изводится идентично (рис. 30, рис. 31).

 

 

Рис. 30. Индексная адресация с индексным регистром.

 

 

Рис. 31. Индексная адресация с использованием одного из РОН.

 

Индексная адресация предоставляет удобный механизм для организации ите­ративных вычислений. Пусть, например, имеется массив чисел, расположенных в памяти последовательно, начиная с адреса N, и мы хотим увеличить на единицу все элементы данного массива. Для этого требуется извлечь каждое число из па­мяти, прибавить к нему 1 и вернуть обратно, а последовательность исполнитель­ных адресов будет следующей: N,N+1,N+2 и т.д., вплоть до последней ячейки, занимаемой рассматриваемым массивом. Значение N берется из подполя Ас ко­манды, а в выбранный регистр, называемый индексным регистром, сначала зано­сится 0. После каждой операции содержимое индексного регистра увеличивается на 1.

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

Автоиндексирование с увеличением содержимого индексного регистра носит на­звание автоинкрементной адресации.

Интересным и весьма полезным является еще один вариант индексной адреса­ции — индексная адресация с масштабированием и смещением: содержимое индекс­ного регистра умножается на масштабный коэффициент и суммируется с Лс. Мас­штабный коэффициент может принимать значения 1,2,4 или 8, для чего в адресной части команды выделяется дополнительное поле. Описанный способ адресации реализован, например, в микропроцессорах фирмы Intel.

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

Страничная адресация

 

Страничная адресация (СТА) предполагает разбиение адресного пространства на страницы. Страница определяется своим начальным адресом, выступающим в ка­честве базы. Старшая часть этого адреса хранится в специальном регистре —реги­стре адреса страницы (РАС). В адресном коде команды указывается смещение внутри страницы, рассматриваемое как младшая часть исполнительного адреса. Исполнительный адрес образуется конкатенацией (присоединением) Ас к содер­жимому РАС, как показано на рис. 32.

 

 

Рис. 32. Страничная адресация.

 

Показатели эффективности страничной адресации имеют вид:

ССТА = int(log2 Ni. - log2M),

TСТА = TРОН + TЗУ,

где М — количество страниц в памяти.

Цикл команды

 

Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и вы­полнения команды, называют циклом команды. В общем случае цикл команды вклю­чает в себя несколько составляющих (этапов):

· выборку команды;

· формирование адреса следующей команды;

· декодирование команды;

· вычисление адресов операндов;

· выборку операндов;

· исполнение операции;

· запись результата.

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

В определенных ситуациях возможны еще два этапа:

· косвенная адресация;

· реакция на прерывание.

 



Поделиться:


Последнее изменение этой страницы: 2016-09-18; просмотров: 613; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.239.148 (0.007 с.)