返回主页

[计算机组成原理 P1145] 某计算机的主存地址空间大小为 256MB,按字节编址。指令 Cache 和数据 Cache 分离,均

 
学习人数: 4.7k
 
正确率: 100%
答案解析

题目描述
未通过

(12分)某计算机的主存地址空间大小为 256MB,按字节编址。指令 Cache 和数据 Cache 分离,均有 8个 Cache 行,每个 Cache 行大小为 64B,数据 Cache 采用直接映射方式。现有两个功能相同的程序 A 和 B,其伪代码如下所示:

程序A:
int a[256][256]
……
int sum_array1()
{
    int i, j, sum=0;
    for(i=0; i<256; i++)
        for(j=0; j<256; j++)
            sum += a[i][j];
    return sum;
}
程序B:
int a[256][256]
……
int sum_array2()
{
    int i, j, sum=0;
    for(j=0; j<256; j++)
        for(i=0; i<256; i++)
            sum += a[i][j];
    return sum;
}

假定 int 类型数据用32位补码表示,程序编译时 i,j,sum均分配在寄存器中,数组 a 按行优先方式存放,其首地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。

(1) 若不考虑用于 cache 一致性维护和替换算法的控制位,则数据 Cache 的总容量为多少?(3分)

(2) 数组元素 a[0][31]和 a[1][1]各自所在的主存块对应的 Cache 行号分别是多少(Cache 行号从0开始)?(4分)

(3) 程序 A 和 B 的数据访问命中率各是多少?哪个程序的执行时间更短?(5分)


上一题
下一题
加入错题本
个人笔记
已有13条笔记

登录后提交答案


暂无评论,来抢沙发