
- •Общие требования к разрабатываемому процессору:
- •Структура системы
- •Архитектура внешних выводов
- •Выбор форматов данных
- •5) Определение модели памяти и структуры регистровой памяти Модель памяти
- •1 Гбайт
- •0.5 Гбайт
- •0.5 Гбайт
- •2 Гбайт
- •2 Гбайт
- •6) Форматы команд Способы адресации
- •Форматы команд
- •7) Система команд
- •Внутренняя организация
- •Структурно-функциональная схема процессора
- •Основные алгоритмы функционирования
- •Чтение команды из озу
- •Декодирование команды
- •Обработка регистровой команды (rg-rg)
- •Обработка команды типа регистр – память (rg-озу)
- •Обработка условного ввода / вывода (в/в)
- •Обработка безусловных переходов (б/п)
- •Обработка условных переходов (у/п)
- •Обработка прерываний
- •10) Алгоритмы выполнения отдельных операций Выборка команды
- •Арифметические и логические операции
- •Передача управления
- •11) Вывод
- •2) Система команд.
- •12) Список использованной литературы.
5) Определение модели памяти и структуры регистровой памяти Модель памяти
Поскольку модель памяти должна удовлетворять требованиям, предъявляемым ОС UNIX, то предлагается следующая модель организации виртуальной памяти.
Сегмент
21 Гбайт
Режим
пользователя
Сегмент
10.5 Гбайт
Сегмент
00.5 Гбайт
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.
Предполагается следующая структура регистров:
31 0 |
0 ZCSOITU SP PC |
|||||
|
|
В структуре, приведенной на рис. регистровая память включает в себя тридцать два 32-разрядных РОН и 32-разрядный счетчик команд. Регистр флажков содержит 7 флажков, которые используются следующим образом:
Z - признак нулевого результата;
С - признак переноса из старшего разряда;
S - знак результата;
-
- признак переполнения результата;
-
- разрешение прерывания;
Т - пошаговый режим;
U - режим супервизор-пользователь.
PE (precision exception) – потеря точности
NE (normalization exception) – денормализация
ZE (zero exception) – деление на 0
IE (integer exception) – действительный операнд
R0..32 – пользовательские регистры, содержимое доступно для изменений
Регистр флагов – системный регистр, который указывает признаки результатов арифметических или логических операций.
SP – системный регистр, хранящий указатель на вершину стека
TINT – системный регистр, хранящий указатель на таблицу прерываний.
PC – системный регистр, хранящий счетчик команд.