CPU
Кэш-контроллер
ОП
Кэш-память
)(cache
cy
t
)()(
)()(
ОПcache
ОП
cy
cache
cy
VV
tt
≤
≤
A
A
DD
A'
D'
)(ОП
cy
t
Рис. 3. 38. Организации кэш-памяти
Процессор, когда обменивается по системному интерфейсу, выставляет адрес (А) и
записывает (читает) данные (D) по этому адресу. Кэш-контроллер обращается к кэш-
памяти и поставляет эти данные в процессор, если в кэш памяти эти данные есть, если их
нет, то кэш-контроллер обращается в ОП и записывает
эти данные в кэш-память, а потом
дает разрешение процессору на получение этих данных. В результате такой схемы в кэш-
памяти накапливаются наиболее используемые данные, потому что объем кэш-памяти
меньше, чем объем ОП и она состоит из кусочков, которые имеют следующий вид:
AD
A
A
A
A
A
D
D
D
D
D
Рис. 3. 39. Кэш-память
А – адрес блока;
D – смещение внутри блока.
Если порция данных по указанному адресу находится в кэш-памяти, то из нее
извлекаются данные и передаются в процессор, если этих данных нет, то кэш-контроллер
должен выбрать какую-то порцию или место, которое он должен освободить и записать
требуемые данные
в кэш-память, причем запись требуемых данных осуществляется как
при чтении данных процессором, так и при записи, потому что на самом деле процессор
записывает только часть этого блока (на рис. 3.39. заштриховано), а не весь. А значит,
чтобы записать эту часть, надо прочитать всю порцию данных, которая находится по
некоторому адресу
и лишь только потом осуществить запись в этот маленький кусочек.
Ёмкость кэш-памяти составляет 1/500…1/100 ёмкости кэшируемой памяти, а её
быстродействие 5…10 раз выше нижележащей памяти.
Кэш-память основана на предвосхищении наиболее вероятного использования
процессором данных из основной памяти, путем копирования их в быстродействующую
память, а также сохранение наиболее часто используемых данных в
быстродействующей
памяти. Основой для построения кэш-памяти служит использование частотного принципа
и принципа локальности.
Локальность потока команд и данных, заключающийся в том, что взаимосвязанные
данные в потоке команд и взаимосвязанные команды в потоке данных находятся на
небольшом расстоянии друг от друга, как во времени, так и в пространстве.
Организация обмена
между основной памятью и кэш-памятью основана на блочной
пересылке, когда основная память разбивается на блоки равной длины (4, 8, 16 и т.д. байт)
и обмен между уровнями иерархий происходит этими блоками. Т.е. принцип локальности