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

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

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

LRU. Один (ВО) или три (ВО - В2) бита LRU хранятся в служебной памяти для
каждого из наборов строк кэш-памяти. Их содержимое определяет выбор
строки, замещаемой в данном наборе при кэш-промахе.
При инициализации процессора и очистке кэш-памяти биты LRU всех наборов
кэшпамяти сбрасываются в 0. В ходе работы процессора биты В0-В2 принимают
следующие значения в соответствии с тем, к каким из строк набора
производились последние обращения. Если в данном наборе последнее
обращение выполнялось к одной из пары строк -L0 или L1, устанавливается
ВО = 1, если к L3 или L4, то устанавливается ВО = 0. Биты В1 и В2
указывают, к какой из строк пары L1 - L2 и L3 - L4 осуществлялось
последнее обращение. Значение В1 = 0 устанавливается при обращении к L0,
значение В1 = 1 - при обращении к L1. Соответственно значение В2 = 0 или
1 устанавливается при обращении к строке L2 или L3. В соответствии с
алгоритмом LRU для замены выбирается пара строк, к которым не
производилось последнее обращение, а в этой паре замене подлежит строка,
к которой не производилось последнее обращение. Выбранная таким образом
строка считается дольше всего неиспользуемой в данном наборе, поэтому ее
содержимое замещается выбираемыми из основной памяти новыми 32 байтами.
Данное описание соответствует использованию наборов из четырех строк, что
имеет место в кэш-памяти команд и общей кэш-памяти 2-го уровня. Для кэш-
памяти данных, содержащей две строки в наборе, каждый набор имеет всего
один бит LRU, который принимает значение ВО = 0 при обращении к строке
L0, и ВО = 1 при обращении к L1.
При использовании обратной записи в процессорах Р6 когерентность
содержимого основной памяти и кэш-памяти обеспечивается с помощью
протокола MESI, который устанавливает четыре возможных состояния строки
кэш-памяти:
М (modified) - модифицированное путем записи содержимое строки, которое
имеется только в кэш-памяти данного процессора;
Е (exclusive) - немодифицированное содержимое строки, которое содержится
только в кэш-памяти данного процессора и основной памяти;
S (shared) - содержимое данной строки может также находиться в кэш-памяти
других активных устройств (процессоров), входящих в состав системы;
I (invalid) - недействительное (аннулированное) содержимое строки.
Текущее состояние строки определяется значениями битов SO, S1, которые
автоматически устанавливаются и изменяются в процессе работы процессора.
При инициализации процессора или очистке (аннулировании содержимого) кэш-
памяти для всех строк устанавливается состояние I, указывающее, что
строки не заполнены. Дальнейшее функционирование процессора вызывает
заполнение кэш-памяти. При этом для заполненной строки устанавливается
состояние Е. Если в строку производится запись данных, то для нее ус-
тавливается состояние М. Аннулирование содержимого всех строк
(освобождение кэш-памяти) производится программно с помощью команд INVD и
WBINVD. Команда INVD аннулирует содержимое внутренней кэш-памяти команд и
данных, устанавливая состояние I для всех строк. Команда WBINVD перед
аннулированием производит обратную запись (writeback) в основную память
содержимого тех строк кэш-памяти данных, для которых установлено
состояние М (в них была проведена модификация). При выполнении этих
команд процессор выдает внешние сигналы для реализации аналогичных
процедур в кэш-памяти 2-го уровня. Данные команды являются
привилегированными - их выполнение в защищенном режиме разрешается только
программам с максимальным уровнем привилегии 0.
Если выполняется захват шины другим процессором (активным устройством) в
мультипроцессорной системе, то отключаемый от шины процессор продолжает
выполнение команд и
65
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
обработку данных, содержащихся в кэш-памяти. Активный процессор может
обратиться к данным, копии которых уже находятся в отключенном от шины
процессоре. Поэтому необходимо принять меры для обеспечения идентичности
копий данных, используемых различными процессорами. Такие меры
реализуются с помощью специальных средств, выполняющих снуп-пинг (snoop)
- слежение за содержимым кэш-памяти разных процессоров, входящих в
систему. При этом отключенный от внешней шины процессор принимает адреса,
выдаваемые на адресные линии активным процессором. Если этот адрес
совпадает с адресом данных, хранящихся в одной из заполненных строк кэш-
памяти данных отключенного процессора, то выполняются следующие
процедуры. Если активный процессор производил запись по данному адресу,
то содержимое соответствующей строки в отключенном от шины процессоре
аннулируется (устанавливается состояние I). Если активный процессор
производил чтение по адресу строки, имеющей состояние М, то отключенный
процессор выполняет специальный цикл выдачи адресованных данных на
внешнюю шину, чтобы активный процессор получил их модифицированный
вариант.
Когда отключенный процессор снова становится активным, т. е. принимает на
Предыдущая << 1 .. 36 37 38 39 40 41 < 42 > 43 44 45 46 47 48 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed