返回主页

[计算机组成原理 P1671] (11分)以下是计算两个向量点积的程序段:

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

题目描述
未通过

(11分)以下是计算两个向量点积的程序段:

float dotproduct (float x[8],float y[8]){
    float sum = 0.0;
    int i;
    for(i = 0; i < 8; i++)
        sum += x[i] * y[i];
    return sum;
}

请回答下列问题:
(1) 访问数组 x 和 y 的时间局部性和空间局部性如何?(2分)
(2) 假定数据 Cache 采用直接映射方式,数据区容量为 32 字节,每个主存块大小为 16 字节;编译器将变量 sum 和 i 分配在寄存器中,数组 x 存放在 0000 0040H 开始的 32 字节的连续存储区中,数组 y 则紧跟在 x 后进行存放。该程序数据访问的命中率是多少?要求说明每次访问时数组 Cache 的命中情况。(3分)
(3) 将上述 (2) 中的数据 Cache 改用 2 - 路组相联映射方式,Cache 采用 LRU 替换策略,块大小改为 8 字节,其他条件不变。则该程序数据访问的命中率是多少?(3分)
(4) 在上述 (2) 条件不变的情况下,将数组 x 定义为 float [12],则数据访问的命中率是多少?(3分)


上一题
下一题
加入错题本
个人笔记

登录后提交答案


暂无评论,来抢沙发