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

5) Определение модели памяти и структуры регистровой памяти Модель памяти

Поскольку модель памяти должна удовлетворять требованиям, предъявляемым ОС UNIX, то предлагается следующая модель организации виртуальной памяти.

1 Гбайт

Сегмент 2

Режим пользователя

0.5 Гбайт

Сегмент 1

0.5 Гбайт

Сегмент 0

2 Гбайт

2 Гбайт

Поскольку заданием задан размер памяти 4096 Мбайт, то предлагается разделять имеющуюся память на следующие блоки.

В режиме пользователя программе доступны 2 Гбайт виртуальной памяти. В режиме ядра программа получает доступ ко всей памяти объемом 4 Гбайт, причем первые 2 Гбайт – пользовательская память, оставшиеся 2 Гбайт – системная. Системная память делится на три сегмента объемами 0.5, 0.5, 1 Гбайт. При обращении к адресам принадлежащим к сегменту 1, используется кеш, но не используется переадресация через буфер TLB, т. е. обращение идёт к первым 512 Мбайт физической памяти. При работе с сегментом 2 не используется ни кеш, ни TLB – обращение идёт к первым 512 Мбайт физической памяти. При работе с сегментом 3 используется и кеширование, и переадресация. Подобная модель памяти позваляет работать с ячейками как с портами (сегмент 2) либо обращаться к памяти по абсолютным адресам при работе со структурами ядра. Сегмент 3 можно использовать для работы с загружаемыми модулями.

виртуальную память:

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

Размер страниц составляет 4 Кбайт.

32-разрядный линейный адрес разбивается на три части. Старшие 10 разрядов адреса определяют номер одного из 1024 элементов в каталоге страниц. Этот элемент содержит физический адрес таблицы страниц. Следующие 10 разрядов линейного адреса определяют номер элемента таблицы. Элемент, в свою очередь, содержит физический адрес страницы виртуальной памяти. Размер страницы - 4 Кбайт, и младших 12 разрядов линейного адреса как раз хватает (212 = 4096), чтобы определить точный физический номер адресуемой ячейки памяти внутри этой страницы.

Для ускорения страничного преобразования в процессоре имеется специальная кэш-память, называемая TLB (Translation Lookaside Buffer). В ней хранятся наиболее часто используемые элементы каталога и таблиц страниц. Конечно, переключение процессов и даже потоков приводит к тому, что данные внутри этого буфера становятся неактуальными, т. е. недействительными. Это влечет за собой дополнительные потери производительности при переключении.

Каждый процесс имеет свой отдельный каталог страниц и свое собственное независимое адресное пространство.

Структура регистровой памяти

Техническое задание гласит регистровая память должна удовлетворять следующим требованиям:

количество – 32;

универсальные;

разрядность – 32.

Предполагается следующая структура регистров:

R0

31

R1

.

31

.

Flags

.

.

.

.

.

.

R30

R31

31 0

0

ZCSOITU

SP

PC

В структуре, приведенной на рис. регистровая память включает в себя тридцать два 32-разрядных РОН и 32-разрядный счетчик команд. Ре­гистр флажков содержит 7 флажков, которые используются следующим об­разом:

Z - признак нулевого результата;

С - признак переноса из старшего разряда;

S - знак результата;

  1. - признак переполнения результата;

  2. - разрешение прерывания;

Т - пошаговый режим;

U - режим супервизор-пользователь.

PE (precision exception) – потеря точности

NE (normalization exception) – денормализация

ZE (zero exception) – деление на 0

IE (integer exception) – действительный операнд

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

Регистр флагов – системный регистр, который указывает признаки результатов арифметических или логических операций.

SP – системный регистр, хранящий указатель на вершину стека

TINT – системный регистр, хранящий указатель на таблицу прерываний.

PC – системный регистр, хранящий счетчик команд.