Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

8 Зон по 64 Кбайт, занимающих диапазон адресов 0-7fffFh (512 Кбайт);

16 Зон по 16 Кбайт, занимающих диапазон адресов 80000h-8ffffh (256 Кбайт);

8 Зон размером от 4 Кбайт до максимального размера физической памяти, которые могут размещаться в любой позиции адресного пространства.

В зависимости от назначения и реализации разделов памяти, расположенных в соот­ветствующей адресной зоне, пользователь может задать для них тот или иной режим кэши­рования, записав в соответствующий регистр MTRR код требуемого режима: 0,1,4,5 или 6 (коды 2,3 и 7-255 резервированы для последующих моделей).

Регистр MTRRcap содержит информацию о структуре адресных зон, реализуемых про­цессором Р6 (число зон переменного размера, наличие зон фиксированного размера, реа­лизация режима WC), которая считывается операционной системой в процессе конфигу­рации системы. Для процессоров Р6 содержимое этого регистра имеет значение 508Н. При попытке записи в регистр MTRRcap реализуется исключение #GP (нарушение защиты).

Содержимое регистра MTRRdefType (рис. 2.9) разрешает или запрещает использова­ние адресных зон, устанавливает режим кэширования для остального адресного простран­ства, не включенного в разрешенные зоны. Отдельные биты этого регистра имеют сле­дующее назначение:

Е - разрешает при установке значения Е = 1 использование адресных зон для опреде­ления режима кэширования, при значении Е - 0 вся физическая память работает в некэшируемом режиме UC;

FE- разрешает при установке значения FE = 1 установку режима кэширования для зон с фиксированными размерами; при FE = 0 разрешается установка режима только для зон с произвольными размерами, если значение Е = 1; при Е = 0 значение бита FE не влияет на работу процессора;

Туре -данное поле должно содержать код режима (0,1,4,5 или 6) для адресного простран­ства, не включенного в зоны фиксированного или произвольного размера; при записи в это значений кода реализуется исключение типа #GP (нарушение защиты).

Остальные биты в регистре MTRRdefType зарезервированы, и процессор реализует исключение типа #GP при попытке записи в них ненулевых значений.

Обращение к зонам с фиксированным размером производится под управлением груп­пы 64-разрядных регистров, в которую входят:

MTRRfix64K_00000 - регистр, задающий режим для 8 зон по 64 Кбайт; MTRRfixl 6K_80000, MTRRfix64K_AOOOO -два регистра, задающие режим для 16 зон по 16 Кбайт; MTRRfix4K_COOOO, ..._C8000, ..._DOOOO, ...JD8000, ..._EOOOO, ..._E8000, ..._FOOOO; MTRRfix4K_F8000 - восемь регистров, задающих режим для 64 зон по 4 Кбайт.

Имена этих регистров содержат шестнадцатеричные цифры, указывающие начальный адрес зон, режим кэширования которых данный регистр задает. Каждый байт этих регист­ров содержит код режима (0,1,4,5 или 6), устанавливаемого для определенной зоны (млад­шему байту соответствует зона с меньшими адресами).

Обращение к зонам с произвольным размером выполняется под управлением группы из 16 регистров, каждая пара которых MTRRphysBasen, MTRRphysMaskn задает размеще­ние и размер одной из восьми зон, определяет режим ее кэширования (суффикс п - 0-7 указывает номер зоны). Эти регистры содержат поля и биты (рис. 2.10), имеющие следую­щее назначение:

Туре - поле, задающее режим кэширования данной зоны (код 0,1,4, 5 или 6);

PhysBase - поле, содержащее 24-старших разряда базового адреса зоны (для 12 млад­ших разрядов принимаются нулевые значения);

PhysMask- поле, содержащее 24 разряда маски, с помощью которой задается размер зоны;

V-бит, разрешающий при значении V= 1 задание режима кэширования для адресной зоны с помощью данной пары регистров; при значении V = 0 режим этой зоны определяет­ся содержимым регистра MTRRdefType.

Остальные биты в регистрах MTRRphysBasen, MTRRphysMaskn резервированы, и про­цессор реализует прерывание типа #GP при попытке записи в них ненулевых значений.

Таким образом, архитектура Р6 позволяет реализовать большой набор вариантов ис­пользования кэш-памяти и различных разделов основной памяти, что обеспечивает воз­можности эффективного применения процессоров для решения широкого круга задач с помощью разнообразных типов современной памяти и устройств ввода/вывода.