深入理解计算机系统 CSAPP 家庭作业6.37

S=256

N=64时:

地址313029282726252423222120191817161514131211109876543210
CTCICO
a0000001000000000000000000000000000组0
a0100001000000000000000000000000100组0
a0200001000000000000000000000001000组0
a0300001000000000000000000000001100组0
a0400001000000000000000000000010000组1
a0500001000000000000000000000010100组1
a0600001000000000000000000000011000组1
a0700001000000000000000000000011100组1
a0800001000000000000000000000100000组2
a0900001000000000000000000000100100组2
a01000001000000000000000000000101000组2
a01100001000000000000000000000101100组2
a01200001000000000000000000000110000组3
a01300001000000000000000000000110100组3
a01400001000000000000000000000111000组3
a01500001000000000000000000000111100组3
a01600001000000000000000000001000000组4
a01700001000000000000000000001000100组4
a01800001000000000000000000001001000组4
a01900001000000000000000000001001100组4
a02000001000000000000000000001010000组5
a02100001000000000000000000001010100组5
a02200001000000000000000000001011000组5
a02300001000000000000000000001011100组5
a02400001000000000000000000001100000组6
a02500001000000000000000000001100100组6
a02600001000000000000000000001101000组6
a02700001000000000000000000001101100组6
a02800001000000000000000000001110000组7
a02900001000000000000000000001110100组7
a03000001000000000000000000001111000组7
a03100001000000000000000000001111100组7
a03200001000000000000000000010000000组8
a03300001000000000000000000010000100组8
a03400001000000000000000000010001000组8
a03500001000000000000000000010001100组8
a03600001000000000000000000010010000组9
a03700001000000000000000000010010100组9
a03800001000000000000000000010011000组9
a03900001000000000000000000010011100组9
a04000001000000000000000000010100000组10
a04100001000000000000000000010100100组10
a04200001000000000000000000010101000组10
a04300001000000000000000000010101100组10
a04400001000000000000000000010110000组11
a04500001000000000000000000010110100组11
a04600001000000000000000000010111000组11
a04700001000000000000000000010111100组11
a04800001000000000000000000011000000组12
a04900001000000000000000000011000100组12
a05000001000000000000000000011001000组12
a05100001000000000000000000011001100组12
a05200001000000000000000000011010000组13
a05300001000000000000000000011010100组13
a05400001000000000000000000011011000组13
a05500001000000000000000000011011100组13
a05600001000000000000000000011100000组14
a05700001000000000000000000011100100组14
a05800001000000000000000000011101000组14
a05900001000000000000000000011101100组14
a06000001000000000000000000011110000组15
a06100001000000000000000000011110100组15
a06200001000000000000000000011111000组15
a06300001000000000000000000011111100组15
a1 000001000000000000000000100000000组16

sumA:这个很简单了,不说了

sumB:如下表.

组0:a[0][0]a[16][0]a[32][0]a[48][0]a[0][1]
组16:a[1][0]a[17][0]a[33][0]a[49][0]a[1][1]
组32:a[2][0]a[18][0]a[34][0]a[50][0]a[2][1]
组48:a[3][0]a[19][0]a[35][0]a[51][0]a[3][1]
组64:a[4][0]a[20][0]a[36][0]a[52][0]a[4][1]
组80:a[5][0]a[21][0]a[37][0]a[53][0]a[5][1]
组96:a[6][0]a[22][0]a[38][0]a[54][0]a[6][1]
组112:a[7][0]a[23][0]a[39][0]a[55][0]a[7][1]
组128:a[8][0]a[24][0]a[40][0]a[56][0]a[8][1]
组144:a[9][0]a[25][0]a[41][0]a[57][0]a[9][1]
组160:a[10][0]a[26][0]a[42][0]a[58][0]a[10][1]
组176:a[11][0]a[27][0]a[43][0]a[59][0]a[11][1]
组192:a[12][0]a[28][0]a[44][0]a[60][0]a[12][1]
组208:a[13][0]a[29][0]a[45][0]a[61][0]a[13][1]
组224:a[14][0]a[30][0]a[46][0]a[62][0]a[14][1]
组240:a[15][0]a[31][0]a[47][0]a[63][0]a[15][1]

i递增时一直不命中

读到j=1,i=0 即读a[0][1]时 此时缓存存的是a[48][0]-a[63][3],不命中.j递增之后覆盖之前读取的数据后还是一直不命中 

sumC:j=0 , i=0时 a00+a10+a01+a11 读a00和a10时不命中,存在组0和组16后,a01和a11命中

N=60时: 

地址313029282726252423222120191817161514131211109876543210
CTCICO
a0000001000000000000000000000000000组0
a0100001000000000000000000000000100组0
a0200001000000000000000000000001000组0
a0300001000000000000000000000001100组0
a0400001000000000000000000000010000组1
a0500001000000000000000000000010100组1
a0600001000000000000000000000011000组1
a0700001000000000000000000000011100组1
a0800001000000000000000000000100000组2
a0900001000000000000000000000100100组2
a01000001000000000000000000000101000组2
a01100001000000000000000000000101100组2
a01200001000000000000000000000110000组3
a01300001000000000000000000000110100组3
a01400001000000000000000000000111000组3
a01500001000000000000000000000111100组3
a01600001000000000000000000001000000组4
a01700001000000000000000000001000100组4
a01800001000000000000000000001001000组4
a01900001000000000000000000001001100组4
a02000001000000000000000000001010000组5
a02100001000000000000000000001010100组5
a02200001000000000000000000001011000组5
a02300001000000000000000000001011100组5
a02400001000000000000000000001100000组6
a02500001000000000000000000001100100组6
a02600001000000000000000000001101000组6
a02700001000000000000000000001101100组6
a02800001000000000000000000001110000组7
a02900001000000000000000000001110100组7
a03000001000000000000000000001111000组7
a03100001000000000000000000001111100组7
a03200001000000000000000000010000000组8
a03300001000000000000000000010000100组8
a03400001000000000000000000010001000组8
a03500001000000000000000000010001100组8
a03600001000000000000000000010010000组9
a03700001000000000000000000010010100组9
a03800001000000000000000000010011000组9
a03900001000000000000000000010011100组9
a04000001000000000000000000010100000组10
a04100001000000000000000000010100100组10
a04200001000000000000000000010101000组10
a04300001000000000000000000010101100组10
a04400001000000000000000000010110000组11
a04500001000000000000000000010110100组11
a04600001000000000000000000010111000组11
a04700001000000000000000000010111100组11
a04800001000000000000000000011000000组12
a04900001000000000000000000011000100组12
a05000001000000000000000000011001000组12
a05100001000000000000000000011001100组12
a05200001000000000000000000011010000组13
a05300001000000000000000000011010100组13
a05400001000000000000000000011011000组13
a05500001000000000000000000011011100组13
a05600001000000000000000000011100000组14
a05700001000000000000000000011100100组14
a05800001000000000000000000011101000组14
a05900001000000000000000000011101100组14
a1 000001000000000000000000011110000组15
组0:a[17][4]
组1:a[17][8]组0:a[34][8]
组2:a[17][12]组1:a[34][12]组0:a[51][12]
组3:a[17][16]组2:a[34][16]组1:a[51][16]
组4:a[17][20]组3:a[34][20]组2:a[51][20]
组5:a[17][24]组4:a[34][24]组3:a[51][24]
组6:a[17][28]组5:a[34][28]组4:a[51][28]
组7:a[17][32]组6:a[34][32]组5:a[51][32]
组8:a[17][36]组7:a[34][36]组6:a[51][36]
组9:a[17][40]组8:a[34][40]组7:a[51][40]
组10:a[17][44]组9:a[34][44]组8:a[51][44]
组11:a[17][48]组10:a[34][48]组9:a[51][48]
组12:a[17][52]组11:a[34][52]组10:a[51][52]
组13:a[17][56]组12:a[34][56]组11:a[51][56]
组0:a[0][0]组14:a[18][0]组13:a[35][0]组12:a[52][0]
组15:a[1][0]组29:a[19][0]组28:a[36][0]组27:a[53][0]
组30:a[2][0]组44:a[20][0]组43:a[37][0]组42:a[54][0]
组45:a[3][0]组59:a[21][0]组58:a[38][0]组57:a[55][0]
组60:a[4][0]组74:a[22][0]组73:a[39][0]组72:a[56][0]
组75:a[5][0]组89:a[23][0]组88:a[40][0]组87:a[57][0]
组90:a[6][0]组104:a[24][0]组103:a[41][0]组102:a[58][0]
组105:a[7][0]组119:a[25][0]组118:a[42][0]组117:a[59][0]
组120:a[8][0]组134:a[26][0]组133:a[43][0]a[0][1]
组135:a[9][0]组149:a[27][0]组148:a[44][0]
组150:a[10][0]组164:a[28][0]组163:a[45][0]
组165:a[11][0]组179:a[29][0]组178:a[46][0]
组180:a[12][0]组194:a[30][0]组193:a[47][0]
组195:a[13][0]组209:a[31][0]组208:a[48][0]
组210:a[14][0]组224:a[32][0]组223:a[49][0]
组225:a[15][0]组239:a[33][0]组238:a[50][0]
组240:a[16][0]组254:a[34][0]组253:a[51][0]
组255:a[17][0]组255:a[34][4]组254:a[51][4]
组255:a[51][8]

上表中灰色代表映射关系实际未存放

A:没变化,0.25

B:0.25

a[0][1]时,组0之前存放的数据a[0][1]并未被覆盖,因为要覆盖组0必须读 a[17][4] a[34][8] 等时才会发生.

C:0.25

j=0时,i从0到58 0.5

j=2时,i从0到58 0

j=4时,i从0到58 0.5

j=6时,i从0到58 0

函数N=64N=60
sumA0.250.25
sumB10.25
sumC0.50.25

 你会发现数据的大小变化改变了其与缓存的映射关系

算法的变化改变了数据进入缓存的顺序

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 深入理解计算机系统(CSAPP)是由Randal E. Bryant和David R. O'Hallaron编写的经典计算机科学教材。该教材通过涵盖计算机体系结构、机器级别表示和程序执行的概念,帮助学生深入理解计算机系统的底层工作原理和运行机制。 深入理解计算机系统的练习题对于学生巩固并应用所学知识非常有帮助。这些练习题涵盖了计算机硬件、操作系统和编译器等多个领域,旨在培养学生解决实际问题和设计高性能软件的能力。 对于深入理解计算机系统的练习题,关键是通过实践进行学习。在解答练习题时,应根据课本提供的相关知识和工具,仔细阅读问题描述,并根据实际需求设计相应的解决方案。 在解答练习题时,需要多角度思考问题。首先,应准确理解题目要求,并设计合适的算法或代码来解决问题。其次,应考虑代码的正确性和效率,以及对系统性能的影响。此外,还要注意处理一些特殊情况和异常情况,避免出现潜在的错误或安全漏洞。 解答练习题的过程中,应注重查阅相关资料和参考优秀的解答。这可以帮助我们扩展对问题的理解,并学习他人的思路和解决方法。同时,还可以通过与同学和老师的讨论,共同探讨问题和学习经验。 总之,通过解答深入理解计算机系统的练习题,可以帮助学生巩固所学知识,同时培养解决实际问题和设计高性能软件的能力。这是一个学以致用的过程,可以加深对计算机系统运行机制和底层工作原理的理解。 ### 回答2: 理解计算机系统(CSAPP)是一本经典的计算机科学教材,通过深入研究计算机系统的各个方面,包括硬件、操作系统和编程环境,对于提高计算机科学专业知识与能力具有很大帮助。 练习题是CSAPP中的重要部分,通过练习题的完成,可以加深对计算机系统的理解,并将理论知识转化为实践能力。练习题的数量、难度逐渐递增,从简单的概念与基础问题到复杂的系统设计与实现。 在解答练习题时,首先需要对题目进行仔细阅读和理解,明确题目的要求和限制条件。然后,可以利用课堂讲解、教材内容、网络资源等进行查阅和学习相应的知识。同时,还可以参考课后习题解答等资料,了解一些常见的解题方法和思路。 在解答练习题时,可以利用计算机系统的工具和环境进行实际测试和验证。例如,可以使用调试器、编译器和模拟器等工具对程序或系统进行分析和测试。这样可以更加深入地理解问题的本质,并找到恰当的解决方法。 另外,解答练习题时还可以与同学、教师和网上社区进行交流和讨论。这样可以互相学习和交流解题思路,共同解决问题。还可以了解不同的解题方法和技巧,提高解题效率和质量。 练习题的解答过程可能会遇到一些困难和挑战,例如理论知识的不足、复杂问题的分析与解决。但是通过不断地思考和实践,相信可以逐渐提高解题能力,更好地理解计算机系统。 总之,深入理解计算机系统(CSAPP)练习题是提高计算机科学专业知识和能力的重要途径。通过仔细阅读和理解题目,查阅相关知识,利用计算机系统工具和环境进行实践,与他人进行交流和讨论,相信可以更好地理解计算机系统的各个方面,并将知识转化为实际能力。 ### 回答3: 《深入理解计算机系统(CSAPP)》是计算机科学领域的经典教材之一,对于深入理解计算机系统的原理、设计和实现起到了极大的帮助。在阅读这本书的过程中,书中的习题也是非常重要的一部分,通过做习题,我们可以更好地理解书中所讲的概念和思想。 CSAPP的习题涵盖了课本中各个章节的内容,从基础的数据表示和处理、程序的机器级表示、优化技术、程序的并发与并行等方面进行了深入探讨。通过解答习题,我们可以对这些知识进行实践应用,巩固自己的理解,并培养自己的解决问题的思维方式。 在解答习题时,我们需要充分理解题目要求和条件,并从知识的角度进行分析。有些习题可能需要进行一些编程实践,我们可以通过编程实现来验证和测试我们的思路和解决方案。在解答问题时,我们还可以查阅一些参考资料和网上资源,充分利用互联网的学习资源。 在解答习题时,我们需要保持积极的思维和态度。可能会遇到一些困难和挑战,但是通过坚持和努力,我们可以克服这些困难,提高我们的解决问题的能力。同时,我们还可以通过与同学或者其他人进行讨论,相互分享解题经验和思路,从而更好地理解问题。 综上所述,通过深入理解计算机系统(CSAPP)的习题,我们可以进一步巩固和深化对计算机系统的理解。掌握这些知识,不仅可以提高我们在计算机领域的能力,还可以为我们未来的学习和职业发展奠定重要的基础。因此,认真对待CSAPP的习题,是我们在学习计算机系统知识中不可或缺的一部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值