Назад...   К оглавлению раздела   Далее...

 

1. Блочная трансляция.

Блочная трансляция обеспечивает обращение к блокам памяти заданного объема -- от 128 байт до 256 Мбайт. В микропроцессоре MPC604 возможна организация четырех блоков для хранения команд и четырех блоков для хранения данных. Параметры каждого блока задаются дескриптором, который содержится в паре регистров IBATiU-IBATiL для команд и DBATiU-DBATiL для данных, где i=0...3 -- номер блока (см. рисунок E.15. a), c) )

Поле BSM в дескрипторе определяет объем блока памяти (см. таблицу E.3.II.)

Таблица E.3.II.
Значения поля BSM и соответствующие объемы блока памяти.
BSMОбъем блока
000 0000 0000 128 Кбайт
000 0000 0001 256 Кбайт
000 0000 0011 512 Кбайт
000 0000 0111 1 Мбайт
000 0000 1111 2 Мбайт
000 0001 1111 4 Мбайт
000 0011 1111 8 Мбайт
000 0111 1111 16 Мбайт
000 1111 1111 32 Мбайт
001 1111 1111 64 Мбайт
011 1111 1111 128 Мбайт
111 1111 1111 256 Мбайт

Это поле также служит маской при сравнении разрядов LA4-14 логического адреса и соответствующих разрядов логического индекса данного блока BLPI. Поле PBN содержат старшие разряды получаемого при трансляции физического адреса.

Процесс трансляции адреса при блочной организации памяти показан на рисунке G1.8.

Блочная трансляция адреса

Рис. E.16. Трансляция адреса при блочной организации памяти.

При блочной трансляции старшие разряды сформированного логического адреса LA0-14 команды или данных сравниваются со значением индекса BLPI в дескрипторах блоков (это регистры IBAT0U-IBAT3U для команд и DBAT0U-DBAT3U для данных). При этом BSM служит маской для разрядов LA4-LA14 и индекса BLPI: разряды, для которых биты BSM установлены в 1 (единицу), не участвуют в сравнении. Таким образом, сравниваются старшие разряды, определяющие базу (базовый адрес) блока заданного объема. Младшие же разряды LA15-31 устанавливают относительное положение байта (смещение). Смещение переходит в младшие разряды физического адреса PA15-31 без изменения.

Если обнаруживается совпадение старших разрядов (немаскируемых!) логического адреса LA0-3 с соответствующими разрядами BLPI в одном из дескрипторов,то выбираемая команда или данные размещаются в i-ом блоке. В этом случае физический адрес блока задаются старшими немаскированными разрядами поля PBN в дескрипторе.

Полученный в результате трансляции физический адрес PA0-31 содержит базовый адрес блока: PA0-(14-n), полученный из PBN, и смещение PA(15-n)-31=LA(15-n)-31, где n -- число единиц в маске BSM.

В примере, данном на рисунке E.16. обеспечивается обращение к блоку объемом 2 Мбайт, у которого разряды физического адреса PA0-10 задается битами 0-10 поля PBN, а смещение физического адреса PA11-31 указывается разрядами LA11-31 логического адреса.

Остальные биты в дескрипторе блоков.

Другие биты в дескрипторах блоков имеет значение:

Vs, Vu -- разрешают обращение к блоку в режиме супервизора (Vs=1) или в режиме пользователя (при Vu=1);

W -- разрешает при W=1 режим сквозной записи соответствующего кэша, если его использование разрешено (I=0);

I -- запрещает при I=1 использование кэша при обращении к блоку;

M -- обеспечивает при M=1 соответствие данных, размещаемых в разных кэшах;

G -- запрещает при G=1 чтение из данного блока (только для регистров DBATiL);

PP -- определяет условия доступа к данному блоку, обеспечивая совместно с битами Vs, Vu защиту памяти (см. таблицу E.3.III).

Таблица E.3.III.
Правила доступа к блокам и страницам памяти.
PPРежим пользователя (PR=1)Режим супервизора (PR=0)
ЧтениеЗапись Чтение Запись
00 - - + +
01 + - + +
10 + + + +
11 + - + -

("+" -- доступ разрешен, "-" -- доступ запрещен.).

При нарушении правил обращения реализуется исключение с вектором Av=$00300 при выборка данных и Av=$00400 при выборке команд.

Если немаскируемые старшие разряды LA0-3 команды или данных не совпадают с разрядами индекса BPLI в каком-либо из четырех дескрипторов, то выполняется сегментная трансляция адреса.

 

Назад...   К оглавлению раздела   Далее...

 

Гостевая книга Обсуждение в блоге. Отправить E-mail Автору проекта.

=== *** === *** === *** ===

В настоящее время проект закрыт (в версии 1.3.0 beta). Автор приносит извинения за прекрашение разработки.

Hosted by uCoz