Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Orgevm_Ekzamen.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
998.59 Кб
Скачать

Стековая адресация. Виды стеков.

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

Различают два вида стеков:

  • стек, реализующий процедуру LIFO (last input-first output -последним пришел – первым ушел);

  • стек, реализующий процедуру FIFO (first input-first output - первым пришел –первым ушел).

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

Например, в микропроцессорах фирмы Intel в качестве указателя стека используется регистр sp (esp). При выполнении команды push dx вначале из содержимого sp вычитается двойка и затем по полученному адресу и ОП записывается содержимое регистра dx. При выполнении команды pop bx в регистр bx выталкивается слово из вершины стека, а затем к sp прибавляется двойка.

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

Особенности страничного механизма в Pentium и в р6.

В Pentium реализовано два варианта страничного механизма.

  • При PSE = 0 все страницы в системе 4 Кбайтные и механизм работы с ними ничем не отличается от рассмотренного выше.

  • При PSE = 1 одновременно могут использоваться 4Кбайтные и 4Мбайтные страницы.

Обращение к 4Мбайтным страницам пояснено на рис. 55. Как видно из этого рисунка, содержимое регистра cr3 задает (как и ранее) начальный адрес каталога, поле DIR адресует элемент PDE в каталоге. Если в этом элементе PDE бит PS = 1, из PDE берется начальный адрес страницы, а поле OFFSET задает смещение в этой странице.

В Р6 реализовано три варианта страничного механизма:

  • PAE = PSE = 0 – только 4Кбайтные страницы.

  • PAE = 0, PSE = 1 – и 4Кбайтные, и 4Мбайтные одновременно

  • PAE = 1, PSE = безразлично – и 4Кбайтные, и 2Мбайтные одновременно.

Первые два варианта ничем не отличаются от рассмотренных выше. Далее рассмотрим третий вариант.

Бит PAE – «расширение физического адреса». Если этот бит установлен в единицу, к процессору добавляются четыре адресные линии А35-32 и он начинает адресовать 64 Гбайта оперативной памяти. При этом сегментный механизм продолжает вырабатывать 32 разрядный адрес, то есть реально процессор адресует все те же 4 Гбайта ОП. Однако страничный механизм дает возможность транслировать эти 4 Гбайта в любое место 64 Гбайтного пространства.

Поскольку формат физического адреса увеличивается до 36 бит, четырех байт, отводимых под элементы PTE и PDE, оказывается недостаточно, поэтому эти элементы становятся восьмибайтными (см. рис. 56 ). Так как размер каталога и таблиц страниц при этом не меняется (остается равным 4Кбайта), количество элементов (соответственно, PDE и PTE) в каждой из этих структур уменьшается в два раза. Иначе говоря получается, что процессор может адресовать только 218 страниц. Для того чтобы он мог адресовать, как и положено, 220 страниц в систему вводится не один, а четыре каталога. Для их адресации вводится еще одна структура, называемая таблицей указателей на каталог , включающая в себя четыре восьмибайтных указателя DPE (directory pointer entry). Формат DPE представлен на рис 57. Регистр cr3 теперь задает начальный адрес таблицы указателей, при этом этот адрес занимает разряды 31-5 данного регистра. Отсюда можно сделать вывод, что таблица указателей на каталог всегда занимает в памяти 32 байта (четыре элемента по восемь байт каждый) и всегда должна быть выровнена по 32-х байтной границе (пять младших разрядов начального адреса таблицы указателей равны нулю.

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