ЛР Способы адресации (Методические материалы по курс.работе)
Описание файла
Файл "ЛР Способы адресации" внутри архива находится в папке "Методические материалы по курс.работе". Документ из архива "Методические материалы по курс.работе", который расположен в категории "". Всё это находится в предмете "электронные вычислительные машины (эвм)" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "эксплуатация эвм" в общих файлах.
Онлайн просмотр документа "ЛР Способы адресации"
Текст из документа "ЛР Способы адресации"
Министерство общего и профессионального образования Российской Федерации
Московский государственный технический Университет им. Н.Э.Баумана
Способы адресации.
Методические указания к лабораторной работе по курсу
"Архитектура ЭВМ"
Москва 2002 г.
Теоретическая часть
Операнды, участвующие в операциях, указываются в командах с помощью адресов. Существует большое число способов представления адресов в командах и доступа к операндам.
Правило определения адреса и операнда на основе информации, указанной в команде, называется способом адресации.
Эффективность способа адресации характеризуется затратами оборудования и временем доступа к адресуемой информации. Время доступа обычно характеризуется числом обращений к ОП, необходимым для выборки одного операнда. Затраты оборудования состоят из затрат в процессоре на обработку адресов и затрат ОП на хранение адресов, указанных в команде. Последние составляют основную долю затрат.
Прямая адресация - это основополагающий принцип адресации. Прямой адрес - это номер ячейки памяти, в которой хранится операнд. Длина адреса m=log2E1 где E - емкость памяти (в словах или в байтах). Прямой адрес непосредственно передается в память. Для записи-чтения операнда.
Непосредственная адресация. В программах часто используется целочисленные константы: 0,1, … При непосредственной адресации эта константа хранится непосредственно в m -разрядном поле адреса команды, что позволяет экономить память и одно обращение к памяти при считывании константы. Адрес, в котором размещается значение константы, называется непосредственным адресом.
Косвенная адресация -предполагает использование указателей. Указатель - это адрес операнда, хранимый в определенной ячейке памяти. Значение указателя может меняться в процессе выполнения программы. Но адрес (местонахождения) самого указателя не изменяется. При этом адрес операнда находится в ячейке с заданным адресом. Адрес указателя называется косвенным адресом. Для доступа к косвенно адресуемому операнду необходимо выполнить следующие действия: I. Обращение к памяти по косвенному адресу за выборкой прямого адреса.
2. Формирование команды с прямым адресом.
3. Запись этом команды в память.
4. Использование этой команды в программе.
В общем случае первое обращение к памяти по косвенному адресу может привести к выборке нового косвенного адреса и т.д. до тех пор, пока ну будет выбран прямой адрес. Количество обращений к памяти с целью определения прямого адреса называется глубиной косвенной адресации. Если при первом обращении к памяти получается прямой адрес, то глубина равна единице. Если ЭВМ позволяет произвольное число обращений к памяти для получения прямого адреса, то коды прямых адресов должны отличаться от кодов косвенных адресов. Для этой цели используют признаки адресации. Признаки адресации могут входить в состав кода операции. В этом случае одноименные операции, использующие разные типы адресов, будут кодироваться по-разному (СЛ1, СЛ2, СЛ3).
При этом процессор, расшифровывая код операции, определяет тип операции и тип адреса. Такой способ кодирования увеличивает количества операций в ЭВМ, а значит, и длину кода операции и длину самой команды.
Способ адресации можно указывать в команде с помощью специального
поля - поля признака адресации (ПА). Если в ЭВМ используется К способов адресации, то длина поля признаков будет r =] log2K[. В этом случае формат одноадресной команды будет:
I l I r I m
К КОП | ПА | /! А |
При этом первый способ указания типа адресации используют, если только небольшая часть операций использует разные типы адресации, так как в этом случае незначительно увеличивается количество операций и длина кода операции.
Второй способ применяют, когда любая операция может работать с разными типами адресов.
Использование непосредственной и косвенной адресации совместно с прямой адресацией уменьшает число ячеек памяти для хранения программы и число выполняемых операций. Однако при этом увеличивается длина команды. Следует учитывать, что экономия памяти и времени пропорциональна частоте использования непосредственной и косвенной адресации и зависит от класса решаемых задач.
Прямая и непосредственная адресации используются часто. Косвенную адресацию рекомендуется применять в алгоритмах, широко использующих информационные структуры вида:
А дрес Адрес ... Адрес операнд
Неявная адресация. При этом методе адресации отдельные команды работают с операндами, имеющими постоянное местоположение (в фиксированной ячейке внутренней памяти процессора или ОП). В этом случае код операции однозначно определяет адрес операнда. И нет необходимости дополнительно указывать его в адресной части команды. При этом говорят, что адрес задан неявно.
Модифицируемые адреса. В качестве операндов в операциях могут использоваться элементы массивов. Массив - это совокупность однотипных слов или полей. Обычно элемент массива Xi выделяют идентификатором массива X и индексом i. В программе массива идентифицируется адресом Bx, первого элемента массива X0 , который называется в этой случае базовым адресом. В этом случае адрес < Xi > элемента Xi определяется соотношением:
< Xi >=Bx +i
В команде с операндом Xi указан только базовой адрес Bx и только перед выполнением команды адрес должен быть увеличен на значение индекса i. Этот процесс называется модификацией адреса.
Модификацию адреса можно проводить программным путем, но для этого потребуется выполнение дополнительных команд, что ведет к увеличению временных затрат.
В быстродействующих ЭВМ модификацию адресов выполняют аппаратным методой для хранения индекса используется внутренняя память (ВП) процессора, емкостью Q=2q -1, а модифицируемый адрес имеет структуру
1 q 1 m
X | ^ A1 |
где X - адрес внутренней памяти (номер регистра),по которому хранится индекс.
A1- адрес ОП (базовый адрес массива).
В этом случае адрес операнда определяется:
A1, если X=0
А=
A1 + ВП[X],если X=0
Таким образом, если поле X пусто, то модификация не производится, и мы можем обрабатывать простые переменные. В противном случае базовый адрес A1 увеличивается на содержимое ячейки ВП (РОН), адрес который указан в поле X .
Для загрузки индексов в ВП (РОН) и для запоминания их значений в ОП используют посылочные операции. Такая организация позволяет распространить арифметические и логические операции в ЭВМ и на индексы, хранимые в ОП. Иногда в ЭВМ применяют специальные устройства для увеличения индекса на единицу (счетчики).
Оценим количество индексов, которые одновременно должны храниться во внутренней памяти процессора. В общем случае на каждом этапе вычислений число хранимых индексов определяется числом индексов, фигурирующих в вычислительном выражении. Вероятность использования на к-том этапе вычислений Пк индексов определяется свойствами алгоритмов. Если в процессе вычислений окажется, что емкость ВП меньше К, то возникает необходимость в разгрузке памяти индексов путем передачи их в ОП и загрузке в освободившейся ячейки ВП других необходимых индексов. Для этого необходимо в программу включить дополнительные команды, что увеличивает длину команды и время ее выполнения.
Чем больше емкость памяти индексов, тем меньше вероятность того, что требуемое для вычислений количество индексов превысит емкость памяти индексов. Минимальное количество индексов для модификации адресов равно 1. При увеличении емкости памяти индексов уменьшается длина программы, но увеличиваются затраты оборудования в процессе (за счет увеличения емкости ВП) и увеличивается длина поля Х (т.е. длина команды). Обычно в процессе вычислений одновременно используются не более 4-8 индексов.
Относительная адресация – используется для организации динамического распределения памяти. Использование относительной адресации обеспечивает возможность получения перемещаемых программ внутри ОП. Возможность размещения информации в любой области ОП необходима для мультипрограммного режима работы ЭВМ, при котором для программы может быть выделена любая свободная область ОП. При этом программы кодируются в виде, не зависящем от ее местоположения в ОП – на основе относительных адресов. При относительной адресации в ВП размещаются базовые адреса программ. При этом все адреса, кроме непосредственных, представляются в виде двух полей:
1 q 1 m
В | D |
Где В – адрес ячейки ВП, в которой хранится базовый адрес программы.
D – смещение, определяющее порядковый номер команды в программе.
Адрес операнда в ОП определяется соотношением
А = ВП[В] + 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 разрядам.