Материал: Архитектура и программирование MIPS-процессоров. Разинкин К.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

РОН от изменения в прерываниях, уменьшает время обработчика прерывания и сохранение РОН в ОЗУ.

Режимы работы

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

1.1.4.Модуль управления памятью (MMU). Реализация

MMU на основе Fixed Mapping Translation (FMT)

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

MMUможет выполнять преобразование адресов в двух режимах: в режиме TLB и в режиме FM. Режим преобразования определяется битом FM регистра CSR.

В режиме TLB используется полностью ассоциативная таблица преобразования адресов (TLB), имеющая 16 парных

16

строк (entries). Во время преобразования осуществляется поиск соответствия по TLB. Если искомая строка отсутствует, генерируется прерывание.

В режиме FM (FixedMapped) работа MMU основана на простом алгоритме, обеспечивающем преобразование виртуального адреса в физический посредством механизма фиксированного отображения. Правила преобразования отличаются для различных областей виртуального адресного пространства

(useg/kuseg, kseg0, kseg1, kseg2, kseg3).

На рис.1.2 показано, взаимодействие MMU с процедурой доступа к кэш в режиме TLB, а на рис.1.3 – в режиме FM. Как следует из схемы на рис. 1.1. для рассматриваемой архитектуры

M4K режим TLB не реализован.

Рис. 1.2. Взаимодействие MMU с процедурой доступа

к кэш в режиме TLB

17

Рис. 1.3. Взаимодействие MMU с процедурой доступа

к кэш в режиме FMT

Режимы работы

Процессорное ядро поддерживает два режима работы: режим User (непривилегированный режим); режим Kernel (привилегированный режим).

Режим User в основном используется для прикладных программ. Режим Kernel обычно используется для обработки исключительных ситуаций и привилегированных функций операционной системы, включая управление сопроцессором CP0 и доступ к устройствам ввода-вывода. Преобразования, выполняемые MMU, зависят от режима работы процессора.

Виртуальные сегменты памяти

Виртуальные сегменты памяти, на которые делится адресное пространство, различаются в зависимости от режима работы процессора. На рис. 1.4 показана сегментация для 4 Гбайт (2 байт) виртуального адресного пространства, адресуемого 32-разрядным виртуальным адресом для обоих режимов работы.

18

Ядро входит в режим Kernel после аппаратного сброса или когда происходит исключение. В режиме Kernel программное обеспечение имеет доступ к полному адресному пространству и ко всем регистрам CP0. В режиме User доступ ограничен подмножеством виртуального адресного пространства (0x0000_0000 - 0x7FFF_FFFF) и запрещен доступ к функциям CP0. В режиме User недоступны виртуальные адреса 0x8000_0000 - 0xFFFF_FFFF и обращение к ним вызывает исключение.

Рис.1.4. Карта виртуальной памяти для режимов User и Kernel

Каждый из сегментов, показанных на рис. 1.4, является либо отображаемым (mapped), либо неотображаемым (unmapped).

Неотображаемые сегменты

В неотображаемом сегменте механизмы TLB или FM для преобразования виртуального адреса в физический адрес не используются. Особенно важно иметь неотображаемые сегмен-

19

ты памяти после аппаратного сброса, потому что TLB еще не запрограммировано и не может осуществлять преобразования.

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

Все неотображаемые сегменты, за исключением kseg0, никогда не кэшируемы. Кэшируемостьkseg0 определяется полем K0 регистра Config СP0.

Отображаемые сегменты

Вотображаемом сегменте для преобразования виртуального адреса в физический адрес используются TLB или FM.

Врежиме TLB преобразование отображаемых сегментов имеет постраничную основу. При преобразовании выявляется информация о кэшируемости страницы, а также атрибуты защиты, относящиеся к странице.

Для режима FM отображаемые сегменты имеют закрепленное преобразование виртуального адреса в физический. Кэшируемостьсегмента определяется значениями полей K23 и KU регистра ConfigCP0. При FM-преобразовании невозможна защита сегментов от записи.

Режим User

В режиме User доступно однородное виртуальное адресное пространство размером 2 Гбайт (231 байт), называемое сегментом пользователя. На рисунке 1.5 показано размещение виртуального адресного пространства режима User.

20

Источник: https://studfile.net/preview/16568788/