Программирование на JAVA

Множественно-ассоциативный кэш

Предположим, что множественно-ассоциативный кэш данных разделен на два множества по четыре блока. Это означает, что младший бит адреса будет опреде­лять множество, которому соответствует данный блок памяти. Старшие 15 разря­дов составляют тег.

Процесс изменения содержимого кэша показан на рис. 8.11. Поскольку все блоки данных нашей программы в памяти имеют четные адреса, все они отобра­жаются на множество 0. Из-за этого шесть элементов при выполнении второго цикла перезагружаются.

Даже из этих простых примеров видно, что полностью ассоциативное отобра­жение наиболее эффективно, за ним следует множественно-ассоциативное ото­бражение, а наименее эффективно прямое отображение. Однако вследствие того, что реализация полностью ассоциативного отображения слишком дорого стоит, в качестве компромиссного решения, как правило, используется множествен­но-ассоциативное отображение.

Множество 1

Множество 2

Содержимое кэша данных после выполнения цикла:

j = 3

j = 7

j = 9

i = 4

i = 2

i = 0

А(0,0)

А(0,4)

А(0,8)

А(0,4)

А(0,4)

А(0,0)

А(0,1)

А(0,5)

А(0,9)

А(0,5)

•А(0,5)

А(0,1)

А(0,2)

А(0,6)

А(0,6)

А(0,6)

А(0,2)

А(0,2)

А(0,3)

А(0,7)

А(0,7)

А(0,7)

А(0,3)

А(0,3)

Рис. 8.11. Содержимое множественно-ассоциативного кэша данных

8.3.4. Организация Кэша в коммерческих процессорах

Кэши процессора Pentium III

Pentium III был задуман как процессор с очень высокой производительностью


<< назад вперед >>