Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.463


Таненбаум Э.- Архитектура компьютера. стр.463

Рассмотрим все эти действия снова, но теперь с позиции следящего кэша (крайняя правая колонка в табл. 8.5). Назовем кэш, который выполняет действия, кэшем 1, а следящий кэш — кэшем 2. Если происходит кэш-промах чтения кэша 1, кэш 1 обращается к шине, чтобы получить нужную строку из основной памяти. Кэш 2 видит это, но ничего не делает. Если же происходит кэш-попадание чтения кэша 1 (то есть нужная строка уже содержится в кэше 1), обращение к шине не выполняется, поэтому кэш 2 ничего не знает о кэш-попаданиях чтения кэша 1.

Процесс записи более интересен. Если процессор 1 записывает слово, кэш 1 обращается к шине как в случае кэш-промаха, так и в случае кэш-попадания. При любой записи кэш 2 проверяет наличие записываемого слова у себя. Если слово отсутствует, кэш 2 рассматривает это как кэш-промах удаленной памяти и ничего не делает. (Отметим, что, согласно табл. 8.5, кэш-промах удаленной памяти означает, что слово отсутствует в следящем кэше, а есть оно в кэше-инициаторе или нет, значения не имеет. Таким образом, один и тот же запрос может дать локальное кэш-попадание и кэш-промах для следящего кэша, и наоборот.)

А теперь предположим, что кэш 1 записывает слово, которое есть в кэше 2. Если кэш 2 ничего не предпримет, он будет содержать устаревшие данные, поэтому кэш 2 помечает как недействительный тот элемент кэш-памяти, который содержит измененное слово. В результате элемент просто удаляется из кэша. Поскольку все кэши следят за всеми обращениями к шине, запись любого слова ведет к обновлению его в кэше-инициаторе и в основной памяти, а также к удалению его из всех других кэшей. Таким образом предотвращается появление несогласованных версий.

Естественно, процессор кэша 2 вправе прочитать то же самое слово на следующем цикле. В этом случае кэш 2 получает слово из основной памяти, которая уже обновилась. В этот момент кэш 1, кэш 2 и основная память содержат идентичные копии этого слова. Если же какой-нибудь процессор произведет запись, то кэши других процессоров будут очищены, а основная память опять обновится.

Возможны различные вариации этого основного протокола. Например, в случае кэш-попадания записи следящий кэш обычно объявляет недействительным элемент, содержащий записываемое слово. Однако вместо того чтобы объявлять слово недействительным, можно принять новое значение и обновить кэш. По существу, обновление кэша — это то же самое, что объявление элемента недействительным с последующим считыванием нужного слова из памяти. Во всех протоколах кэширования нужно делать выбор между стратегией обновления и стратегией объявления данных недействительными. Эти протоколы работают по-разному при разной нагрузке. Сообщения обновления несут полезную нагрузку, и, следовательно, они больше по размеру, чем сообщения о недействительности данных, но зато они могут предотвратить последующие кэш-промахи.

Еще один вариант — загрузка следящего кэша при кэш-промахах записи. Такая загрузка никак не сказывается на правильности алгоритма; она влияет только на производительность. Возникает вопрос: какова вероятность, что только что записанное слово вскоре опять будет записано? Когда вероятность высока, можно говорить в пользу загрузки кэша при кэш-промахах записи (политика заполнения по записи). Когда вероятность мала, то в случае кэш-промаха записи лучше не обновлять кэш-память. Если данное слово вскоре должно быть считано, после кэш-промаха чтения оно все равно окажется загруженным, поэтому нет смысла загружать его при кэш-промахе записи.


⇐ Предыдущая страница| |Следующая страница ⇒

.