本文主要是介绍深入理解计算机系统 CSAPP 家庭作业6.35,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一步先求(S,E,B,m)
题目说共C=128个字节,块大小B为16个字节,那就是分为八组:0,1,2,3,4,5,6,7.然后每组存4个int 每个4字节
C=B*E*S .B=16 ,直接映射的E就是1,所以S=8
(S,E,B,m)=(8,1,16,7)
C | 128 |
M | 128 |
s | 3 |
b | 4 |
t | 0 |
sizeof(int)==0100 | 地址(二进制) | CO | CI | |
src[0][0] | 0000000 | 0000 | 000 | 组0 |
src[0][1] | 0000100 | 0100 | 000 | 组0 |
src[0][2] | 0001000 | 1000 | 000 | 组0 |
src[0][3] | 0001100 | 1100 | 000 | 组0 |
src[1][0] | 0010000 | 0000 | 001 | 组1 |
src[1][1] | 0010100 | 0100 | 001 | 组1 |
src[1][2] | 0011000 | 1000 | 001 | 组1 |
src[1][3] | 0011100 | 1100 | 001 | 组1 |
src[2][0] | 0100000 | 0000 | 010 | 组2 |
src[2][1] | 0100100 | 0100 | 010 | 组2 |
src[2][2] | 0101000 | 1000 | 010 | 组2 |
src[2][3] | 0101100 | 1100 | 010 | 组2 |
src[3][0] | 0110000 | 0000 | 011 | 组3 |
src[3][1] | 0110100 | 0100 | 011 | 组3 |
src[3][2] | 0111000 | 1000 | 011 | 组3 |
src[3][3] | 0111100 | 1100 | 011 | 组3 |
dst[0][0] | 1000000 | 0000 | 100 | 组4 |
dst[0][1] | 1000100 | 0100 | 100 | 组4 |
dst[0][2] | 1001000 | 1000 | 100 | 组4 |
dst[0][3] | 1001100 | 1100 | 100 | 组4 |
dst[1][0] | 1010000 | 0000 | 101 | 组5 |
dst[1][1] | 1010100 | 0100 | 101 | 组5 |
dst[1][2] | 1011000 | 1000 | 101 | 组5 |
dst[1][3] | 1011100 | 1100 | 101 | 组5 |
dst[2][0] | 1100000 | 0000 | 110 | 组6 |
dst[2][1] | 1100100 | 0100 | 110 | 组6 |
dst[2][2] | 1101000 | 1000 | 110 | 组6 |
dst[2][3] | 1101100 | 1100 | 110 | 组6 |
dst[3][0] | 1110000 | 0000 | 111 | 组7 |
dst[3][1] | 1110100 | 0100 | 111 | 组7 |
dst[3][2] | 1111000 | 1000 | 111 | 组7 |
dst[3][3] | 1111100 | 1100 | 111 | 组7 |
i=0,j=0 => i=0,j=3 | |||||||||
读src[0][0] | 写dst[0][0] | ||||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | 组1: | ||||||||
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | ||||
组5: | 组5: | ||||||||
组6: | 组6: | ||||||||
组7: | 组7: | ||||||||
读src[0][1] | 命中 | 写dst[1][0] | |||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | 组1: | ||||||||
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | ||||
组6: | 组6: | ||||||||
组7: | 组7: | ||||||||
读src[0][2] | 命中 | 写dst[2][0] | |||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | 组1: | ||||||||
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | ||||
组7: | 组7: | ||||||||
读src[0][3] | 命中 | 写dst[3][0] | |||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | 组1: | ||||||||
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | ||||
i=1,j=0 => i=1,j=3 | |||||||||
读src[1][0] | 写dst[0][1] | 命中 | |||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[1][1] | 命中 | 写dst[1][1] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[1][2] | 命中 | 写dst[2][1] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[1][3] | 命中 | 写dst[3][1] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | 组2: | ||||||||
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
i=2,j=0 => i=1,j=3 | |||||||||
读src[2][0] | 写dst[0][2] | 命中 | |||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[2][1] | 命中 | 写dst[1][2] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[2][2] | 命中 | 写dst[2][2] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[2][3] | 命中 | 写dst[3][2] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | 组3: | ||||||||
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
i=3,j=0 => i=1,j=3 | |||||||||
读src[3][0] | 写dst[0][3] | 命中 | |||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] | 组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] |
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[3][1] | 命中 | 写dst[1][3] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] | 组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] |
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[3][2] | 命中 | 写dst[2][3] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] | 组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] |
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
读src[3][3] | 命中 | 写dst[3][3] | 命中 | ||||||
组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] | 组0: | src[0][0] | src[0][1] | src[0][2] | src[0][3] |
组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] | 组1: | src[1][0] | src[1][1] | src[1][2] | src[1][3] |
组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] | 组2: | src[2][0] | src[2][1] | src[2][2] | src[2][3] |
组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] | 组3: | src[3][0] | src[3][1] | src[3][2] | src[3][3] |
组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] | 组4: | dst[0][0] | dst[0][1] | dst[0][2] | dst[0][3] |
组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] | 组5: | dst[1][0] | dst[1][1] | dst[1][2] | dst[1][3] |
组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] | 组6: | dst[2][0] | dst[2][1] | dst[2][2] | dst[2][3] |
组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] | 组7: | dst[3][0] | dst[3][1] | dst[3][2] | dst[3][3] |
这篇关于深入理解计算机系统 CSAPP 家庭作业6.35的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!