Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspektlektsy3-1.doc
Скачиваний:
50
Добавлен:
03.05.2015
Размер:
1.02 Mб
Скачать

Лекция 6 Способы адресации в эвм

1.Базовые способы адресации

Адресация информации – это способ использования адресной части команды для адресации информации в памяти ЭВМ. Память ЭВМ имеет трехуровневую иерархическую структуру, поэтому сначала рассмотрим адресацию информации в памяти различных уровней, т.е. как организуется адресное пространство ЭВМ, а затем - как используется адресная часть команды для указания местоположения информации в этом адресном пространстве. Типичная схема адресного пространства представлена на рисунке 2.12.

Следует отметить, что в адресном пространстве процессора информация адресуется обычно с точностью до байта. В адресном пространстве ввода-вывода адресуется не информация, а периферийные устройства ПУ1, ПУ2, … ПУN, обращение к которым осуществляется через регистры, входящие в состав контроллеров ПУ. Каждому ПУ выделяется не менее трех регистров различного назначения – регистры данных, состояния и управления. Эти регистры нумеруются и образуют адресное пространство ввода-вывода. Информация же располагается на носителях информации (съемных или нет) ПУ. На них информация организуется в виде массивов, которым присваиваются различные имена, - так называемых файлов. Имя файла используется при обращении к массиву на носителе информации. Местоположение файлов на носителе информации хранится в каталоге. Каталог – это таблица, в которой указывается соответствие имен файлов и их физических адресов. Сам каталог располагается также на носителе информации, т. е. каталог – это тоже файл, только специфический, адресный.

На физическом уровне носитель обычно разделяется на блоки (ячейки) фиксированного размера Ебл=2к байтов. Блоки как ячейки памяти нумеруются, номер блока используется в качестве его адреса. Файл, в зависимости от его размера, на носителе может занимать один или несколько блоков, причем не обязательно соседних.

Таким образом, обращение к информации на логическом уровне осуществляется по имени файла, а на физическом - по номеру ПУ и номеру блока информации на носителе информации:

Элементы информации, из которых состоит файл, становятся доступны ЦП только после ввода файла в ОП. Отсюда понятие ввода-вывода информации. Процесс ввода-вывода осуществляется обычно через регистр (порт) данных РД периферийного устройства (побайтно, пословно – зависит от разрядности шины данных интерфейса, к которому подключено ПУ, т.е. через узкое ‘горлышко’, поэтому медленно, долго.

Следует отметить, что ввод-вывод файлов, т.е. обмен информацией между ОП и ПУ, осуществляется под управлением алгоритма ввода-вывода. Это достаточно сложный алгоритм. Он реализуется либо программными средствами (чаще всего), либо аппаратными.

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

Регистры памяти первого уровня адресуются напрямую (прямая регистровая адресация), путём указания номера регистра из набора: 0,1, ... ,К-1. Номер регистра указывается в адресной части команды и называется адресом типа R. При программировании на ассемблере используются буквенные имена (обозначения) для РОНов. При трансляции в машинные коды имя регистра преобразуется в номер регистра, который указывается в поле R команды. Длина поля k зависит от количества регистров K: k=log2K.

Пример: MOV AX,BX 

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

Адресация ячеек ОП. Данные, которые расположены в ячейках ОП, можно адресовать различными способами. Простейший из них – прямая адресация ячеек.

1. Прямая адресация - в адресной части команды указывают адрес ячейки ОП (адрес типа А). Если это байт - то номер байта, если это слово - то номер слова. Недостатки прямой адресации:

длина адреса А m – переменная величина, т. к. зависит от емкости ОП: m=log2EОП ( EОП=2m), что недопустимо, т.к. m – константа,

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

основной недостаток – она не обеспечивает перемещаемость программ и данных, точнее – их перемещение требует пересчета адресов типа А.

В силу указанных недостатков прямая адресация для адресации всей ОП обычно не используется, а используется для адресации лишь фиксированной части ОП (например, n=16; 216=64KB), т.е. с помощью прямого адреса фиксированной длины n можно адресовать часть ОП - т.н. страницу ОП емкостью 2n=ЕСТР, n=const, n<m, m=log2EОП. Очевидно, процессору как-то нужно указать номер страницы. Он в простейшем случае размещается в специальном регистре номера страницы. В результате получается второй способ адресации - классическая страничная адресация.

2.Страничная адресация: всё пространство ОП разделяется на страницы фиксированной емкости ЕСТР=2n (рисунок 2.13). Адрес А ячейки памяти формируется из двух полей: А=Р.D, Р – номер страницы (старшие разряды адреса), D – номер ячейки в странице (младшие разряды адреса). Номер страницы Р заносится и хранится в специальном регистре номера страницы РС в ЦП, адрес ячейки указывается в адресном поле D команды. Поле D интерпретируется как смещение относительно начала страницы. Формирование физического (исполнительного) адреса А, по которому производится обращение к ОП, осуществляется по схеме, представленной на рисунке 2.13. Длина поля Р – l бит, длина поля D – n бит, длина поля А – m = l +n бит.

Достоинства страничной адресации:

1) обеспечивает перемещаемость программ и данных путем занесения номера текущей страницы в регистр РС. Программа остается неизменной,

2) длина поля D небольшая n m и постоянная,

3) обеспечивает расширение адресного пространства при небольшом адресном поле в команде.

Недостатки страничной адресации:

1) сложности с организацией переходов в программе за пределы страницы. При таком переходе необходимо модифицировать содержимое регистра номера страницы в ЦП – Р:=Р+Р (или Р-Р), т. е. требуется выполнение дополнительных операций с регистром РС, что снижает быстродействие процессора;

2) увеличивается длина программы – за счет модификации регистра Р, что также ведет к увеличению времени выполнения программы и снижению производительности процессора. Следует отметить, что регистр РС обычно загружается и модифицируется ОС;

3) Не эффективное использование ОП, т.к. распределение ОП между задачами осуществляется постранично, поэтому часть последней страницы может пустовать.

Избавиться от последнего недостатка можно, если снять ограничение на номер страницы – при страничной адресации он кратен 2k. В результате получаем третий способ – классическую относительную адресацию.

2. Модификация адресов к памяти данных

Относительная адресация. Суть: адрес А ячейки памяти формируется путем суммирования двух полей:

А=BM+D, (2.4)

где BM - базовый адрес массива данных М - страницы ёмкостью 2n, D - смещение относительно начала массива М (рисунок 2.14). Отсюда название способа: относительная адресация. Базовый адрес BM указывается в специальном регистре ЦП - базовом регистре, отсюда - второе название способа - базовая адресация. Смещение D указывается в адресной части команды. Формирование исполнительного адреса А осуществляется по схеме, представленной на рисунке 2.14.

Отличия от страничной адресации: БР – m-разрядный, для формирования адреса А используется сумматор. В современных ЭВМ для размещения базового адреса используется один из РОНов. В этом случае адрес вычисляется по схеме, представленной на рисунке 2.15, т. е. по формуле:

А=[B]+D. (2.5)

Вполе В команды указывается номер регистра локальной памяти ЛП, который используется в качестве базового регистра ЦП (для хранения базового адреса массива). Вычисление относительного адреса А производится по формуле (2.5): базовый адрес BM извлекается из ЛП по номеру В и складывается со смещением D из адресной части команды. Здесь [В] – содержимое регистра ЛП с номером В. Сложение производится по схеме:

Итак, страничная адресация является частным случаем относительной – при страничной адресации базовый адрес кратен 2n. Оба способа обеспечивают перемещаемость программ и данных, а также расширение адресного пространства до 2m.

4.Косвенная адресация: – в адресной части команды указывается не прямой, а косвенный адрес операнда Ак, т.е. адрес адреса операнда: АкАО. По адресу Ак производится первое обращение к памяти и извлекается адрес операнда А, а затем уже по адресу А производится второе обращение и извлекается операнд О. Основное назначение косвенной адресации – обеспечить возможность обработки адреса А путем выполнения операций: А=АА (не изменяя кода программы).

Недостаток косвенной адресации – дополнительное обращение к памяти и, как следствие, уменьшение быстродействия ЦП. Этот недостаток можно сгладить, если адрес А хранить не в ОП, а в ЛП, т.е. использовать косвенный адрес типа Rк, который и указывается в адресной части команды. Схема формирования адреса в этом случае имеет вид, представленный на рисунке 2.15. Поскольку время обращения к регистрам ЛП обычно в 5…10 раз меньше, чем к ячейкам ОП, то время выборки операнда увеличивается незначительно – на 10…20%.

Достоинства: 1) возможность модификации адреса А=А  А,

2) уменьшение длины адресной части команды при косвенной регистровой адресации, т. к. адрес типа R короче адреса типа А.

Разновидности косвенной регистровой адресации: автоинкрементная и автодекрементная. Обе созданы с целью уменьшить время модификации адреса А, возложив её на аппаратуру процессора. В случае автоинкрементной адресации она осуществляется после использования адреса А и сводится к увеличению А наА, где А – длина операнда в байтах – 1, 2, … . В случае автодекрементной адресации она осуществляется перед использованием адреса А и сводится к уменьшению А на А, где А – длина операнда в байтах – 1, 2, … .

5. Индексная адресация - используется для адресации элементов массивов (переменных с индексами): xiХ, Х={x0, x1, ..., xI}, i – порядковый номер элемента в массиве Х. Адрес элемента xi складывается из двух составляющих:

А=xi=BX+i, (2.6)

где BX – базовый (начальный) адрес массива Х, указывается в адресной части команды, i – индекс, указывается в специальном индексном регистре ЦП, xi - адрес элемента xi. В качестве индексного регистра можно использовать один из РОН локальной памяти ЛП. В этом случае вычисление адреса А осуществляется по формуле:

А=[Х]+ВХ, (2.7)

где - [Х] – индекс, извлеченный из индексного регистра с номером Х. Схема формирования адреса А представлена на рисунке 2.16.

Модификация индекса i осуществляется по схеме i=i  i, т.е. путём выполнения операций с индексными регистрами. Индексная адресация внешне похожа на относительную, однако между ними есть принципиальные отличия, вытекающие из их различного назначения: базовый адрес ВХ массива Х размещается не в регистре, а в адресном поле команды, индекс i не в адресном поле, а в индексном регистре.

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

6. Индексно-относительная адресация - совместное использование индексной и относительной адресации. Адрес А формируется как сумма трех величин:

А=[X]+ [B]+D, (2.8)

где: - [X] = i - индекс, BX=[B]+D =BМ+D – базовый адрес массива Х, [B] - базовый адрес массива данных, D - смещение.

Схема формирования адреса А представлена на рисунке 2.17.

Рисунок 2.17

Сложение в формуле (2.9) производится по схеме:

7. Непосредственная адресация - адресная часть команды используется непосредственно для размещения операнда О:

KO 1 О n Операнд О – это обычно константа

.

Пример MOV CX,2 формат команды

8. Неявная адресация - по умолчанию (по договорённости) известно положение одного из операндов. Используется с целью экономии адресного поля в формате команды: КО |1 А m .Схема выполнения операции: АС:=АС[А]. Первый операнд извлекается из регистра-аккумулятора АС по умолчанию, второй операнд – из памяти по адресу А, указанному в адресной части команды, над ними выполняется операция , заданная КО, и результат заносится в регистр АС.

Итак, рассмотренные 8 способов адресации используются для адресации информации в адресном пространстве ЦП, которое включает пространство ЛП (РОН), пространство ОП и пространство ввода-вывода. Размер адресного пространства и длина адреса, по которому производится обращение к элементам адресного пространства, связаны известным соотношением Е=2m, m - длина адреса. Отсюда следует, что для обращения, например, к байту ОП на адресный вход ОП необходимо подавать m - разрядный адрес А от источника запроса, например, от ЦП. Для этих целей обычно используют ША шириной m разрядов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]