【问答题请任选2道题进行作答】 小N有一台主存为512MB的计算机...

发布于 2022-03-02 16:55:04

【问答题请任选2道题进行作答】

N有一台主存为512MB的计算机,按照字节编址,计算机有独立的instruction cachedata cache,其中data cache16行,每个cache64Bdata cache和主存采用直接相联的映射方式。小N用以下两种方式实现一个简单的数组求和:

方式一:


int A[512][512]

……

int sum1()

{

int i, j, sum=0

for(i=0i<512i++)

    for(j=0j<512j++)

        sum+=A[i][j]

return sum

}


方式二:

int A[512][512]

……

int sum2()

{

int i, j, sum=0

for(j=0j<512j++)

        for(i=0i<512i++)

            sum+=A[i][j]                          

return sum

}

假设一个int类型数据占用32bit,程序编译过程中除了数组A,其余变量都被分配到寄存器中,数组A按行优先方式在主存中存放。请问小N在自己的计算机上,通过哪种方式运行数组求和更快?为什么?

关注者
0
被浏览
36
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看