首页 > 试题广场 >

以下是计算两个向量点积的程序段: float dotp

[问答题]
以下是计算两个向量点积的程序段:
float dotproduct (float x[8],float y[8])
{
    float sum=0.0;
    int i,;
    for (i=0;i<8;i++) sumx[i]* y[i];
    return sum;
}
回答下列问题或完成下列任务。
(1)试分析该段代码中访问数组x和y的时间局部性和空间局部性,并推断命中率的高低。
(2)假设该段程序运行的计算机中的数据cache采用直接映射方式,其数据区容量为32B,主存大小为16B;编译程序将变量sum和i分配给寄存器,数组x存放在0x8049040开始的主存区域,数组y紧跟x后。试计算该程序中数据访问的命中率,要求说明每次访问时cache的命中情况。
(3)将(2)中的数据cache改用2路组相联映射方式,主存块大小改为8B,其他条件不变,则该程序数据访问的命中率是多少?
(4)在(2)中条件不变的情况下,将数组x定义为float x[12],则数组访问的命中率又是多少? 

这道题你会答吗?花几分钟告诉大家答案吧!