Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 43

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 37 38 39 40 41 42 < 43 > 44 45 46 47 48 49 .. 528 >> Следующая

себя управление системной шиной, то для заполненных строк его кэш-памяти
данных устанавливается состояние S. Оно показывает, что содержимое строки
может находиться в кэшпамяти данных другого процессора, который был
активным ранее. Запись данных в строку, имеющую состояние S, вызовет
также их запись в основную память, после чего строка устанавливается в
состояние Е.
Отметим, что описанный протокол MESI, обеспечивающий когерентность
содержимого основной и кэш-памяти, действует только при обращениях к
внутренней кэш-памяти данных и общей кэш-памяти 2-го уровня. Во
внутренней кэш-памяти команд процедура записи (модификации) не
реализуется, поэтому при обращении к ней когерентность сохраняется без
использования дополнительных средств.
Управление функционированием кэш-памяти осуществляется битами CD и NW в
регистре CRO (см. рис. 2.7,а), которые определяют три возможных режима
работы в соответствии с табл. 2.5.
При нормальном функционировании кэш-памяти (биты CD = NW = 0) кэш-
попадание вызывает чтение данных из кэша или их запись в кэш. Кэш-промах
при чтении приведет к заполнению соответствующей строки кэша из основной
памяти. Запись в основную память выполняется при кэш-промахе, а также в
случае кэш-попадания при записи в строку, имеющую S-состояние (для
обеспечения когерентности в мультипроцессорных системах).
При запрещенном заполнении кэш-памяти (бит CD = 1) ее содержимое
сохраняется и может использоваться. В этом режиме кэш-память может
служить в качестве быстрого статического ОЗУ, если предварительно
загрузить в нее содержимое определенной области основной памяти. При кэш-
попадании выполняется чтение данных из кэша или их запись в кэш. Кэш-
промах при чтении или записи вызывает обращение к основной памяти для
выборки операнда, но изменение содержимого кэша (заполнение строки) не
производится. Если установлено значение бита NW = 0, то кэш-попадание при
записи в строку, имеющую S-состояние, вызовет также запись данных в
основную память для обеспечения когерентности. Если установлено значение
NW = 1, то при кэш-попадании в строку, имеющую S-состояние, запись в
основную память не производится, то есть когерентность не поддерживается.
В этом случае строка, в которой зафиксировано кэш-попадание, сохраняет
состояние S.
Чтобы полностью исключить использование кэш-памяти обоих уровней (L1 и
L2), в процессоре Р6 необходимо выполнить команду WBINVD и затем
установить в регистре CR0 значения битов CD = NW = 1. Обычно
использование кэш-памяти запрещают в процессе отладки, чтобы по состоянию
системной шины можно было контролировать каждый цикл функционирования
системы.
I
СТРУКТУРА И ФУНКЦИОНИРОВАНИЯ ПРОЦЕССОРОВ INTEL Р6
Таблица 2.5
Режимы работы кэш-памяти
CD NW Режимы работы кэш-памяти
0 0 Нормальное функционирование кэш-памяти
0 1 Запрещенная комбинация, ее установка вызывает исключение типа
#GP (нарушение защиты)
1 0 Заполнение кэш-памяти запрещено. Поддерживается когерентность
с основной памятью
1 1 Заполнение кэш-памяти запрещено. Не поддерживается
когерентность с основной памятью
При использовании страничной адресации памяти управление кэшированием
осуществляется с помощью битов PCD, PWT в регистре CR3 и бита PGE в
регистре CR4. Кроме того, используются биты G, PCD, PWT, которые
содержатся в указателях разделов и страниц, хранящихся в основной памяти
в виде специальных таблиц. Эти биты устанавливают различные режимы
кэширования для отдельных разделов и страниц памяти.
В архитектуру процессоров Р6 введены специальные регистры MTRR (Memory
Туре Range Registers), которые устанавливают режимы кэширования для
определенных адресных зон памяти. Эти регистры входят в состав модельно-
специфических регистров (MSR). Они определяют для 96 адресных зон
фиксированного или произвольного размера следующие режимы кэширования:
UC (Uncacheable, код 0) - некэшируемая зона, все обращения для чтения и
записи поступают на системную шину и выполняются в соответствии с
порядком следования команд (без изменения их последовательности и без
буферизации записываемых данных), спекулятивная выборка операндов не
реализуется;
WC (Write Combining, код 1) - некэшируемая зона с объединением данных при
записи; все обращения выполняются как для некэшируемой зоны, но
допускается спекулятивная выборка при чтении операндов и буферизация
данных при их записи в память;
WT (Write Through, код 4) - кэшируемая зона с использованием механизма
сквозной записи; кэш-промах при записи не вызывает заполнения строки
кэша, кэш-попадание при записи переводит соответствующую строку в I-
состояние (освобождение строки); допускается спекулятивная выборка при
чтении и буферизация данных при записи;
WB (Write Back, код 6) - кэшируемая зона с использованием механизма
обратной записи; кэш-промах при записи вызывает заполнение строки кэша,
кэш-попадание при записи изменяет содержимое соответствующей строки в
кэше с установкой ее в М-состояние, не вызывая обращение к основной
Предыдущая << 1 .. 37 38 39 40 41 42 < 43 > 44 45 46 47 48 49 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed