Существуют 3 метода обеспечения целостности данных в ОП:
1. Очистка кэш-памяти. Заключается в том, что после изменения данных блок данных, записывается в ОП и КП очищается. Если требуется вторичное обращение к этому блоку, то он опять читается из ОП. Если все места в кэш-памяти успевают освобождаться перед тем, как процессор выполнит запись в ОП, кэш-память не будет содержать неправильных данных. Проблему обеспечения целостности данных ложаться на программное обеспечение или программные средства (операционная система занимается этим путем использования семафорных механизмов взаимного исключения.
2. Аппаратная прозрачность. Идея заключается в том, чтобы обеспечить связь двух кэш-контроллеров. Каждый хранит адреса блоков под управлением другого кэш-контроллера. В случае доступа процессора, к одному и тому же блоку действия контроллеров согласуются. Так как все обращения к блокам кэш-памяти фиксируются кэш-контроллерами, то:
· При записи в КП возможна запись и в КП другого контроллера. Т.е. запись в кэш-память приводит к записи этих блоков в кэш-память других процессоров, то есть между кэш-контроллерами существует связь (на рис. 3.4.13.) по средством которой передаются те блоки, которые изменились и присутствуют в кэш-памяти другого процессора и были изменены тем процессором, который этот обмен инициирует. Понятно, что может быть и отказ от обмена если в другом процессоре этот блок отсутствует. Параллельно происходит запись и в ОП.
· Использование единой кэш-памяти для всех процессоров, которая работает с основной памятью с двумя портами (входами) по одному для каждого из процессоров. В этом случае кэш-память называется многовходовой. Т.е. при аппаратной прозрачности происходит объединение КП.
3. Некешируемая область в ОП. Персональный компьютер является многопроцессорным устройством, потому что имеется канал прямого доступа к памяти, который является специализированным процессором по пересылке данных и вполне возможны различные конфликты, поэтому общесистемные переменные хранятся в области, которая не подлежит кешированию. Все запросы к некешируемой области ОП вызывают кэш-промахи. Повышение быстродействия в некешируемой области возможно путем копирования программным обеспечением этой области в кешируемую память. В этом случае нужно использовать семофорный механизм взаимного исключения.
ЗУ, основанные на кэшировании данных:
· CDRAM (Cached) – кэшируемое динамическое ЗУ. КП находится внутри микросхемы динамичнской памяти объемом 16 К для каждого банка, объемом 4-16Мб с 128 битовым обменом внутри микросхемы.
· EDRAM (Enchanced DRAM) – расширенная динамическая память. Используется в системах без КП второго уровня. Применяется 8 Кб –й кэш для банка 4 Мбита с 2048 битовым обменом внутри микросхемы.
· RDRAM (Ram bus RAM) – динамическая память со специальной шиной. Время доступа: 23 нс –2 нс – 2 нс – 2 нс. Имеет высокоскоросной 8 битный интерфейс с пропускной способностью до 600 Мбайт/с. Используется последовательный обмен по каждому разряду.
