Инструменты пользователя

Инструменты сайта


examination:asm:question7

Вопрос №7. Физический и исполнительный адреса. Вычисление физического адреса. Примеры. Организация регистровой памяти.

Физический и исполнительный адреса.

Физическая память, к которой микропроцессор имеет доступ по шине адреса, называется оперативной (ОЗУ). На самом нижнем уровне память компьютера - это массив бит.Один бит может хранить значение 0 или 1.

Микропроцессору неудобно работать с памятью на уровне битов, поэтому реально ОЗУ организовано как последовательность ячеек - байтов. 1 байт = 8 бит Каждому байту соответствует свой уникальный адрес (его номер), называемый физическим. Диапазон значений физических адресов зависит от разрядности шины адреса микропроцессора. Для микропроцессоров семейства Pentium Pro/II/III этот диапазон составляет от 0 до 2^36-1 (64 Гбайт)

Механизм управления памятью полностью аппаратный. Это означает, что программа не может сама сформировать физический адрес памяти на адресной шине.

Исполнительный адрес(Исполнительным адресом операнда называется двоичный код номера ячейки памяти, по которому будет записан или считан оператором.)

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

Исполнительный адрес показывает, на каком расстоянии в байтах располагается операнд от начала сегмента, в котором он находится.

Будучи 16-битным числом без знака, исполнительный адрес позволяет получить доступ к операндам, находящимся выше начала сегмента на расстоянии 64 кбайт.

Время, затраченное операционным блоком на вычисление исполнительного адреса, является одним из основных компонентов общего времени исполнения команды.

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

Формирование физического адреса (в реальном режиме)

Далее перечислены характеристики механизма адресации физической памяти в реальном режиме.

• Диапазон изменения физического адреса — от 0 до 1 Мбайт. Эта величина определяется тем, что шина адреса i8086 имела 20 линий.

• Максимальный размер сегмента— 64 Кбайт. Это объясняется 16-разрядной архитектурой 18086. Нетрудно подсчитать, что максимальное значение, которое могут содержать 16-разрядные регистры, составляет 216 - 1, что применительно к памяти и определяет величину 64 Кбайт.

• Для обращения к конкретному физическому адресу оперативной памяти необходимо определить адрес начала сегмента (сегментную составляющую) и смещение внутри сегмента.

Понятие адреса начала сегмента ввиду принципиальной важности требует дополнительного пояснения. Исходя из разрядности сегментных регистров, можно утверждать, что сегментная составляющая адреса (или база сегмента) представляет собой всего лишь 16-разрядное значение, помещенное в один из сегментных регистров. Максимальное значение, которое при этом получается, соответствует 216 - 1. Если так рассуждать, то получается, что адрес начала сегмента может быть только в диапазоне 0-64 Кбайт от начала оперативной памяти. Возникает вопрос, как адресовать остальную часть оперативной памяти вплоть до 1 Мбайт с учетом того, что размер самого сегмента не превышает 64 Кбайт. Дело в том, что в сегментном регистре содержатся только старшие 16 битов физического адреса начала сегмента. Недостающие младшие четыре бита 20-разрядного адреса получаются сдвигом значения в сегментном регистре влево на 4 разряда. Эта операция сдвига выполняется аппаратно и для программного обеспечения абсолютно прозрачна.

Получившееся 20-разрядное значение и является настоящим физическим адресом, соответствующим началу сегмента. Что касается второго компонента (смещения), участвующего в образовании физического адреса некоторого объекта в памяти, то он представляет собой 16-разрядное значение. Это значение может содержаться явно в команде либо косвенно в одном из регистров общего назначения. В процессоре эти две составляющие складываются на аппаратном уровне, в результате получается физический адрес памяти размерностью 20 битов. Данный механизм образования физического адреса позволяет сделать программное обеспечение перемещаемым, то есть не зависящим от конкретных адресов загрузки его в оперативной памяти (рис. 2.8).

Формирование физического адреса в защищенном режиме

Физический адрес формируется следующим образом. В сегментных регистрах хранится селектор, содержащий индекс дескриптора в таблице дескрипторов (13 бит), 1 бит, определяющий к какой таблице дескрипторов будет производиться обращение (к локальной или к глобальной) и 2 бита запрашиваемого уровня привилегий. Далее происходит обращение к соответствующей таблице дескрипторов и соответствующему дескриптору, который содержит начальный 24-битный адрес сегмента, размер сегмента и права доступа, после чего вычисляется необходимый физический адрес путём сложения адреса сегмента со смещением из 16-разрядного регистра

Организация регистровой памяти

Регистровая память, или СОЗУ (сверх ОЗУ), обладает наибольшим быстродействием. Она обычно реализуются на регистрах, поэтому в МП СОЗУ называется РОН. Объем памяти СОЗУ очень мал.

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

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

Registered Memory это память с регистрами, которые служат буфером между контроллером памяти и чипами модуля. Регистры уменьшают нагрузку на систему синхронизации и позволяют набирать очень большое количество памяти (16 или 24 гигабайт) не перегружая цепи контроллера. Но данная схема имеет недостаток - регистры вносят задержку в 1 такт на каждую операцию, а значит - регистровая память медленнее обычной при прочих равных условия

examination/asm/question7.txt · Последние изменения: 2014/01/15 08:13 (внешнее изменение)