Статус нашего сайта: |
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Согласованность кэшей Предположим, что память секвенциально состоятельна. Что происходит, когда процессор 1 содержит в своем кэше некую строку, а процессор 2 пытается считать слово, соответствующее той же строке кэша? При отсутствии специальных правил процессор 2 получит копию этой строки в свой кэш. В принципе двойное кэширование одной и той же строки вполне приемлемо. А теперь предположим, что процессор 1 изменяет строку, и сразу после этого процессор 2 считывает копию этой строки из своей кэш-памяти. В результате он получает устаревшие данные, нарушая контракт между программным обеспечением и памятью. Ни к чему хорошему для программы, выполняемой процессором 2, это не приведет. Данная проблема, которая носит название проблемы согласованности кэшей, очень важна. Если ее не разрешить, нельзя будет использовать кэш-память, и число мультипроцессоров, подсоединенных к одной шине, придется сократить до двух-трех. Специалистами было предложено множество различных решений (см., например, [77, 159]). Хотя все эти алгоритмы, называемые протоколами согласования кэшей, в некоторых деталях различаются, все они не допускают одновременного появления разных версий одной и той же строки в двух или более кэшах. Во всех решениях контроллер кэш-памяти разрабатывается так, чтобы кэш мог обеспечивать мониторинг запросов, идущих по шине от других процессоров и других кэшей, в каждом конкретном случае предпринимая те или иные действия. Указанное устройство получило название следящего кэша (snooping cache), поскольку кэш как бы «следит» за шиной. Набор правил, которым следуют кэш, процессоры и основная память, чтобы предотвратить появление различных версий данных в нескольких кэшах, и называют протоколом согласования кэшей. Единицей передачи и хранения для кэша является строка кэша. Обычно длина строки кэша составляет 32 или 64 байт. Самый простой протокол согласования кэшей называется сквозной записью (write through). Чтобы лучше понять механизм работы этого протокола, рассмотрим 4 случая, перечисленные в табл. 8.5. Если процессор пытается считать слово, которого нет в кэш-памяти, контроллер кэш-памяти загружает в кэш строку, содержащую это слово. Строку предоставляет основная память, которая в этом протоколе всегда должна хранить обновленные данные. В дальнейшем информация может считываться из кэша. Таблица 8.5. Сквозная запись (пустые графы означают, что никакого действия не происходит)
В случае кэш-промаха записи модифицированное слово записывается в основную память. Строка, содержащая нужное слово, не загружается в кэш. В случае кэш-попадания записи кэш обновляется, а слово к тому же записывается в основную память. Суть протокола состоит в том, что в результате всех операций записи записываемое слово обязательно проходит через основную память, чтобы данные в основной памяти всегда были «свежими». |