Процессор

Способы адресации. Функции способов адресации (и механизма трансляции адреса)

Способы адресации

Простейшая структура адресной части команды:

Адресные поля содержат физические адреса.
1) Для ЭВМ 1 - .2 поколений были характерны небольшой обьем ОЗУ (4...32 Кслов) и значительная длина машинного слова (40...64 и более бит). Длина слова выбиралась обычно достаточной для представления числа с инженерной точностью в плавающем формате. При этом в поле адреса мог поместиться полный физический адрес (для маленького объема ОЗУ он был коротким).
2) В ходе развития ЭВМ
•увеличивался обьем ОЗУ, а, следовательно, и длина требуемого физического адреса;
•желательно было вычислять / модифицировать адреса. Это давало возможность одному участку программы обрабатывать данные, расположенные в разных адресах.
Перешли к следующей структуре (см. рисунок ниже):

Двухуровневая схема трансляции адреса

Простейший вариант: физический адрес содержится в адресном регистре, а адресное поле содержит имя (код, номер) адресного регистра плюс код, обозначающий способ адресации (в данном случае косвенно-регистровую адресацию - см. далее). Длина такого поля адреса, могла быть гораздо меньше длины адреса. Например, если процессор содержит восемь регистров общего назначения и использует не более 8 разных способов адресации, длина номера регистра = 3 бита, длина кода способа адресации - также 3 бита. Адресное поле в команде будет содержать всего 6 бит.
3) При дальнейшем развитии ЭВМ - увеличивается размер адресного пространства.
При 32-разрядном адресе размер адресного пространства = 4 ГБайт. В то же время реальный обьем ОЗУ составляет 16...128 МБайт (длина физического адреса: 24...27 разрядов). Таким образом, имеет место несовпадение диапазона логических адресов (в частности, тех чисел, которые могут храниться в адресных регистрах процессора) и диапазона физических адресов, нумерующих реально существующие ячейки ОЗУ. Поэтому все более широко используется следующая схема преобразования адресов (см. следующий рисунок):

Трехуровневая схема трансляции адреса

В результате вычисления в соответствии со способом адресации формируется объект, называемый исполнительным (executive) или эффективным (так переводят английский термин effective, хотя более правильным является перевод “исполнительный” или “действующий” адрес). Это понятие уровня языка ассемблера почти эквивалентно используемому в языках высокого уровня понятию указатель(pointer). Все перечисленные в данном абзаце понятия - прежде всего суть понятия логические (логические адреса).
Логические адреса требуется отображать на физические адреса фактически имеющейся памяти. В простейшем случае можно это делать "один в один", начиная (размещая, загружая) всю программу целиком в определенное место памяти. В то же время, как увидим далее, такое взаимно-однозначное отображение адресов не всегда удобно, а иногда даже и невозможно.
Понятие "Способ адресации" включает:
•1)Способ кодирования адреса в адресном поле команды;
•2)Условное обозначение (синтаксис) способа адресации при записи команды на языке ассемблера;
•3)Алгоритм вычисления исполнительного адреса по информации, содержащейся в адресном поле, а также в других элементах процессора, имеющих отношение к вычислению адреса (хранящих адресную информацию, компоненты адреса).

 

Функции способов адресации (и механизма трансляции адреса)

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


2. Обеспечить переход от содержимого адресного поля команды к логическому адресу и отображение пространства логических адресов на пространство физических адресов.

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

4. Для настройки на реально существующую в системе физическую память.

5. Обеспечить возможность многозадачного режима работы, когда в памяти одновременно находятся и выполняются несколько программ: надо разрешить этим программам обмениваться информацией, но защитить их друг от друга (чтобы одна программа не имела возможности испортить другую).
Что такое "многозадачность"?
В простейшем случае есть две задачи: программа пользователя ПрП и операционная система ОС. ПрП не должна иметь возможности испортить ОС.

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

Яндекс.Метрика