РОН от изменения в прерываниях, уменьшает время обработчика прерывания и сохранение РОН в ОЗУ.
Режимы работы
Ядро 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