Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / Lect3v12.doc
Скачиваний:
56
Добавлен:
28.05.2015
Размер:
706.05 Кб
Скачать

(! Вопросы, изложенные в учебных пособиях в конспект не включены)

1÷4, 6÷8 и 10÷16 – см. пособие Управление ЭВМ

5. Способы адресации в ПЭВМ с 32-разрядной архитектурой (Гос_ОЭВМ) (с. 1)

9. Эффект гонок в микропрограммных автоматах и способы его устранения (с.4)

17. Сегментация микропрограмм (с.6)

18. Назначение, основные характеристики и функции систем прерывания программ (с.8)

19. Запоминание состояния, переход к прерывающей программе и возврат из нее (с.11)

20. Приоритетное обслуживание прерываний (с.15)

21. Особенности системы прерывания ПЭВМ (Гос_ОЭВМ, но здесь чуть изменено) (с.18)

22. Сравнение систем прерываний ЕС ЭВМ и ПЭВМ (с.22)

23. Классификация систем памяти (см. пособие Память ЭВМ)

24. Сегментная адресация памяти (на примере ПЭВМ) (с. 25)

25. Страничная адресация памяти (с. 28)

26. Защита памяти (с. 31) (возможны пополнения)

27. Защищенный режим в ПЭВМ (с. 32)

28. Алгоритмы замещения информации в основной памяти (с. 34) (подлежит пополнению)

29. Алгоритмы управления очередностью обмена с внешними ЗУ (см. пособие Память ЭВМ)

30. Принципы построения систем ввода-вывода (с. 35)

31. Организация интерфейсов ввода-вывода (с. 37) (не готово)

32. Программное управление вводом-выводом в ЭВМ (с. 38)

33. Передача данных (ввод-вывод) с прямым доступом к памяти (Гос_ОЭВМ) (с. 39)

34. Структура ЭВМ Единой Системы и СМ ЭВМ (с. 41)

35. Основные типы микропроцессоров. Структура микроЭВМ (с. 43)

36. Совмещение во времени выполнения нескольких команд программы (Гос_ОЭВМ) (с. 45)

37. Суперскалярная архитектура процессоров (с. 48)

38. Процессоры с RISC-архитектурой и ЭВМ, управляемые потоками данных (с. 52)

39. Гиперпоточная архитектура в ПЭВМ и архитектура ЭВМ с большой длиной командного слова (с. 55)

40. Классификация вычислительных систем (с. 59)

41. Основные этапы проектирования ЭВМ (отсутствует, пока по пособию Проект. структ. АЛУ)

5. Способы адресации в пэвм с 32-разрядной архитектурой

В 32-рзрядных ПЭВМ реализованы все основные виды способов адресации: прямая, косвенная, индексная (относительная) и непосредственная.

Особенности реализации каждого из способов адресации зависят от режима работы процессора – реальногоилизащищенного.

В реальномрежиме (RM–realmode) физический, или исполнительный, адрес памяти (т.е., адрес, по которому производится обращение к оперативной памяти) представляется двадцатью двоичными разрядами, позволяя адресовать оперативную память объемом 1 мегабайт (220байт). Взащищенном(PM–protectedmode) режиме физический адрес памяти представляется тридцатью двумя двоичными разрядами, что позволяет обращаться к оперативной памяти объемом 4 гигабайта (232байт).

Реальный режим обеспечивает совместимость с первыми 16-разрядными процессорами (Intel8086/8088). В этом режиме физический адрес формируется из двух 16-разрядных составляющих – сегмента и смещения (называемого также эффективным адресом) посредством их суммирования со сдвигом смещения на четыре двоичных разряда вправо по отношению к сегменту:

физический адрес=SSSS0 +DDDD,

где SSSS– четыре шестнадцатеричные цифры, обозначающие сегмент, аDDDD– четыре шестнадцатеричные цифры, обозначающие смещение.

При формировании адреса в качестве сегмента используется содержимое одного из сегментных регистров, а значение смещения, в зависимости от способа адресации, либо задается непосредственно в команде, либо извлекается из памяти или регистра, либо формируется как сумма компонент (база, индекс, смещение – см. ниже), извлекаемых из регистров, памяти или самой команды. В последнем случае, если сумма превосходит 216– 1 (т.е. занимает более шестнадцати разрядов) используются только 16 младших разрядов суммы, что ограничивает размер сегмента шестьюдесятью четырьмяKбайт. Эти варианты и соответствуют основным способам адресации.

В защищенном режиме для формирования адреса используется более сложная схема, которая в общем виде представлена на рис. 5.1 ниже.

Рис. 5.1. Общая схема формирования физического адреса памяти в защищенном режиме

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

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

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

формирование линейного адреса – представляющего собой либо физический адрес оперативной памяти (при выключении блока страничной переадресации) либо виртуальный адрес логического пространства страничной памяти при включенном блоке страничной переадресации;

формирование физического адреса оперативной памяти в блоке страничной переадресации.

Последний из этих этапов не является строго обязательным и может быть отключен установкой в “0” бита 31 (PG–pagingenable) в управляющем регистреCR0 процессора.

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

База (Base)– это величина, обычно представляющая адрес (в логическом сегменте) начала какой-либо области (массива) кодов или данных. В 32-разрядном режиме база может храниться в любом из регистров общего назначения процессора.

Индекс(Index)– это также некоторая величина, представляющая либо относительный адрес элемента в области (массиве) кодов или данных, либо (при отсутствии базы) адрес начала такой области. Индекс, как и база, в 32-разрядном режиме может храниться в любом из регистров общего назначения процессора за исключением регистраESP(ExtendedStackPointer– расширенный указатель стека).

Масштаб(Scale)– это множитель, используемый для увеличения индекса, который может принимать значения 1, 2, 4 и 8, обеспечивая соответствие формату данных (байт, полуслово, слово, двойное слово) определяемой индексом позиции в области (массиву) данных. Масштаб задается непосредственно в коде команды.

Смещение (Displacement)– число (разрядностью 8 или 32 бита), используемое как относительная величина к адресу (в сегменте), задаваемому базой, индексом или их суммой.

Эффективный адрес определяется по соотношению

эффективный адрес= [База]+ [Индекс*Масштаб] + [Смещение],

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

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

Вычисление адреса в соответствии с приведенным выше соотношением при различных сочетаниях компонент дает 8 способов адресации:

Способ адресации (Address Mode)

Способ формирования эффективного адреса (ЭА)

Прямая адресация (DirectMode)

ЭА=Смещение

Косвенная регистровая адресация (RegisterIndirectMode)

ЭА=База

Индексная адресация (IndexMode)

ЭА=Индекс + Смещение

Индексная адресация с масштабированием (ScaledIndexMode)

ЭА=Индекс * Масштаб + Смещение

Базовая адресация (BasedMode)

ЭА=База + Смещение

Базово-индексная адресация (BasedIndexMode)

ЭА=База + Индекс

Базово-индексная адресация с масштабированием (BasedScaledIndexMode)

ЭА=База+Индекс * Масштаб

Базово-индексная адресация со смещением (BasedIndexModewithDisplacement)

ЭА= База+Индекс + Смещение

Базово-индексная адресация с масштабированием и смещением (BasedScaledIndexModewithDisplacement)

ЭА= База+Индекс * Масштаб + Смещение


Кроме перечисленных в таблице способов, система команд 32-разрядных процессоров обеспечивает еще два способа адресации, которые не связаны с обращением к оперативной памяти:

- прямая регистровая адресация, при которой операнд расположен в любом регистре процессора

- непосредственная адресация, при которой операнд (1, 2 или 4 байта) находится в самой команде.

Кроме того, в 32-разрядных процессорах для совместимости с процессорами 8086 и 80286 может реализовываться 16-битная модификация перечисленных способов адресации. В этом случае при формировании эффективного адреса масштаб не используется, базовыми регистрами могут быть только BXилиBP, индексными –SIилиDI, а смещение имеет разрядность 8 или 16 бит. Переключение режимов адресации возможно с помощью префикса команды или соответствующего бита в дескрипторе сегмента кодов.

Соседние файлы в папке Lectures