Организация кэш прямого отображения
Кэш прямого отображения (direct mapped) наиболее дешевый и простой по организации. tag-№ страницы index-№ строки bute-слово в строке Блоки в свою очередь разбиваются на страницы, а те, в свою очередь, на строки. Рис. 1. Кэш прямого отображения Кроме того, даже если конфликты разрешаются схемой управления, то при последовательном обращении к блокам, претендующим на одно и то же место в кэш, происходит постоянная замена блоков. Кэш L2 строится, как кэш прямого отображения. Недостатки данного метода: - одинаковые строки с разных страниц не могут одновременно отображаться в Кэш; - запись происходит медленно, т. к. требуется найти нужное свободное место в Кэш для записи. Достоинства: - считывание происходит быстро, т. к. место в Кэш известно (определенное). Рассмотрим конкретный пример: Определить количество страниц для Кэш прямого отображения 256 Кбайт с размером строки 32 байта для ОП объемом 64 Мбайта. Решение: ОП объемом (емкостью) 64 Мбайта может адресоваться с помощью 26-ти адресов (226 = 67 108 864 =64*1024*1024). Аоп =log2 667108864 Кэш объемом (емкостью) 256 Кбайт можно адресовать с помощью 18-ти адресов (256*1024=262 144= 218) Акэш=log2 262144 Кэшируемая память разбивается на страницы размер которых совпадает с размером Кэш памяти. т.е. количество страниц в ОП равно емкости ОП деленной на емкость Кэш. В нашем примере количество страниц = 226/218=2 8 =256. На номер страницы в ОП указывают старшие 8 бит разрядов адреса ОП называемые Tag. Страницы ОП делятся на строки. Каждая строка в нашем примере содержит 32 байта, то количество строк можно рассчитать разделив емкость страницы ОП (емкость Кэш) на длину строки (32 = 25). В нашем случае: 218/25=2 13 =8192 строк. На номер строки указывают следующие 13 бит адреса ОП, называемые Index. Младшие оставшиеся 4 бита адреса ОП указывают на номер байта в строке (byte).
Еще раз подчеркнем, что Кэш прямого отображения подразумевает, что каждая строка Кэш может отображаться из любой страницы ОП только в соответствующую ей строку. Например, при обращении к ОП по адресу 0080Е4A в Кэш обращение будет:
Номер страницы ОП (Tag) = 0216=0210; Номер строки на странице (Index)= 007216=11410 Номер байта в строке (byte) =0A16=1010.
|