Статус
нашего
сайта:
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

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


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

Согласованность кэшей

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

Данная проблема, которая носит название проблемы согласованности кэшей, очень важна. Если ее не разрешить, нельзя будет использовать кэш-память, и число мультипроцессоров, подсоединенных к одной шине, придется сократить до двух-трех. Специалистами было предложено множество различных решений (см., например, [77, 159]). Хотя все эти алгоритмы, называемые протоколами согласования кэшей, в некоторых деталях различаются, все они не допускают одновременного появления разных версий одной и той же строки в двух или более кэшах.

Во всех решениях контроллер кэш-памяти разрабатывается так, чтобы кэш мог обеспечивать мониторинг запросов, идущих по шине от других процессоров и других кэшей, в каждом конкретном случае предпринимая те или иные действия. Указанное устройство получило название следящего кэша (snooping cache), поскольку кэш как бы «следит» за шиной. Набор правил, которым следуют кэш, процессоры и основная память, чтобы предотвратить появление различных версий данных в нескольких кэшах, и называют протоколом согласования кэшей. Единицей передачи и хранения для кэша является строка кэша. Обычно длина строки кэша составляет 32 или 64 байт.

Самый простой протокол согласования кэшей называется сквозной записью (write through). Чтобы лучше понять механизм работы этого протокола, рассмотрим 4 случая, перечисленные в табл. 8.5. Если процессор пытается считать

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

Таблица 8.5. Сквозная запись (пустые графы означают, что никакого действия не происходит)

Действие

Локальный запрос

Удаленный запрос

Кэш-промах чтения

Вызов данных из памяти

 

Кэш-попадание чтения

Использование данных из локального кэша

 

Кэш-промах записи

Обновление данных в памяти

 

Кэш-попадание записи

Обновление кэша и памяти

Объявление элемента в кэше недействительным

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


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

.