Добрый день!
Я нашел одно задание из старой сессии, и не знаю, как его решить.
Задание звучит так :
Есть система с такими особенностями :
- 1 ядро / 1 хардварный поток,
- FIFO выполнение комманд,
- одноуровневая кэш-иерархия (L1, RAM),
- Размер ячейки кэша - 16 байт,
- размер кэша - 2048 байт,
- кэш на момент выполнения проги пуст,
- размер дата и адресной шин - 32 бит,
- префетчинга или любых других оптимизаций нет.
на этой системе выполняют следующую программу :
int test[512];
for (int i = 0; i < 10; i++) {
int sum = 0;
for (int j = 0; j < 512; j = j + 16) {
sum = sum + test[j];
}
}
Нужно посчитать :
- общее кол-во обращений к кэшу,
- кол-во обращений к кэшу, если кэш прямого отображения,
- кол-во обращений к кэшу, если кэш полностью ассоциативный.
Подскажите пожалуйста, как такое считается. Было бы отлично, если бы решение было расписано максимально подробно.
Спасибо!