Иными словами, в кэш-памяти накапливается рабочие копии слов, хранимых в динамическом ОЗУ, причем считывание этих копий производится на порядок быстрее, чем если бы считывались слова-оригиналы. При записи информации выигрыша во времени нет, т.к. новая информация должна обязательно попасть в ОЗУ.
Если процессор намерен получить информацию из некоторой ячейки динамического ОЗУ, а копия содержимого этой ячейки уже имеется в кэш-памяти, то вместо оригинала кэш-контроллер считывает копию из быстрой кэш-памяти и направляет в процессор. Такая ситуация называется "кэш-попаданием". В этом случае информация в кэш-памяти и ДОЗУ не изменяется. Если копии в кэш-памяти нет, то производится обращение к ДОЗУ. Полученная информация пересылается в процессор и попутно запоминается в кэш-памяти вместе с информацией из соседней ячейки (из динамического ОЗУ одновременно считывается пара 16-ти разрядных слов). Естественно в ячейках памяти ДОЗУ информация не изменяется. Случай, когда нужные данные находятся в основной памяти, называется "кэш-промахом".
Если выполняется запись информации в ячейку памяти ДОЗУ, то в любом случае ее содержимое обновляется. Если в кэш-памяти находится копия этой ячейки, то она так же обновляется. Если в кэш-памяти копии этой ячейки нет, то копия ячейки памяти с новой информацией не создается. При записи соседние 16-ти разрядные ячейки памяти как в кэш-памяти, так и в динамической памяти не затрагиваются и хранят старую информацию.
Использованные в МПС внешний кэш-памяти ускоряет процесс считывания команд и данных, которые "недавно" считывались или корректировались.
Дело в том, что при выполнении программы микропроцессором операции записи составляют 10 %, а операции чтения – 90 % общего числа обращений к памяти. При использовании кэш-памяти от 80 % до 95 % операций чтения из кэш выполняется быстро.
В кэш-памяти прямого отображения адрес памяти, по которому производится обращение, однозначно определяет строку кэша, в которой может находится требуемый блок. Принцип работы кэша поясним на примере кэш-памяти объемом 256 кБайт с размером строки данных 32 бита и объемом основной памяти 64 Мбайта. Структура памяти в такой системе иллюстрируется рисунком 3.2.
|
Кэшируемая основная память условно разбивается на страницы, размер которых совпадает с размером кэш-памяти (256 кБайт). Кэш-память и страницы основной памяти делятся на строки (256 кБайт/32=8 кБайт строк).
На рисунке 3.3 показаны основные информационные цепи считывания данных из кэш-памяти. Кэш-память состоит из блока хранящего кэш-директорию и блока хранящего непосредственно данные. В блоке, хранящем кэш-директорию имеются разряды для хранения кода Tag, который отображает старшую часть адреса ячейки оригинала, разряд V – признак истинности информации в ячейке блока, а разряд M – недавнего использования блоков.
Адрес, полученный от процессора интерпретируется так. Старшая часть адреса (разряды с 18 по 25) представляет собой адрес дескриптора (Tag), определяет номер страницы основной памяти в которой хранится оригинал. Разряды с 17 по 5 определяют номер строки. Номер строки в кэш-памяти называется индексом. Младшие разряды адреса определяют смещение в строке. Следует отметить, что процессор "не знает" о такой рактовке смысла адреса, с его точки зрения существует обычное адресное
|
пространство. Иными словами кэш-память скрыта от процессора.
Условия сохранения и обновления информации в ячейках кэш-памяти динамического ОЗУ приведены в таблице 3.1.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.