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

Для хранения суммы и среднего значения предназначены переменные SUM и AVE. Эти переменные, равно как и индексные переменные i и j, при вы­числениях хранятся в регистрах процессора.


Рис. 8.7. Массив, хранящийся в основной памяти


Рис. 8.8. Код для примера

Кэш с прямым отображением

На рис. 8.9 показано, как изменяется содержимое кэша с прямым отображением. В столбцах таблицы приведено содержимое кэша после проходов по двум циклам программы, представленной на рис. 8.8. Например, после второго прохода по первому циклу (j = 1) в кэше содержатся элементы А(0,0) и А(0,1). Они хранятся в блоках 0 и 4 с учетом значений трех младших разрядов их адресов. На следую­щем проходе элемент А(0,0) заменяется элементом А(0,2), имеющим тот же адрес блока. Обратите внимание, что элементы массива соответствуют только двум блокам кэша, а остальные блоки остаются неизменными — в конце процесса нор­мализации они содержат те же данные, что до его начала.

Позиция блока

0

1

2

3

4

5

6

7

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

j=1

j=3

j=5

j=7

j=9

i=6

i=4

i=2

i=0

А(0,0)

А(0,2)

А(0,4)

А(0,б)

А(0,8)

А(0,6)

А(0,4)

А(0,2)

А(0,0)

А(0,1)

А(0,3)

А(0,5)

А(0,7)

А(0,9)

А(0,7)

А(0,5)

А(0,3)

А(0,1)

Рис. 8.9. Содержимое кэша данных с прямым отображением

После десяти проходов по первому циклу (j = 9) в кэше хранятся элементы А(0,8) и А(0,9). Поскольку при выполнении


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