6.37
答案:
函数 | N=64 | N=60 |
---|---|---|
sumA | 25% | 25% |
sumB | 100% | 25% |
sumC | 50% | 25% |
参考程序:可以直接运行
#include <iostream>
using namespace std;
#define line 256
unsigned calc_address(unsigned head, int i, int j, int N);
unsigned calc_address(unsigned head, int i, int j, int N)
{
return head + i * N * 4 + j * 4;
}
unsigned calc_line(unsigned add, int block_size)
{
return (add / block_size) % line;
}
int isHit(unsigned cache[], unsigned r, unsigned a, int block_size)
{
a = a / block_size * block_size;
unsigned tmp = cache[r];
cache[r] = a;
return tmp == a;
}
void testA(int block_size, unsigned add, const int N)
{
unsigned cache[line];
memset(cache, -1, sizeof(cache));
int hit = 0, miss = 0;
for (int i =