[第六章] 深入理解计算机系统第三版 家庭作业参考答案

您所在的位置:网站首页 深入理解计算机系统答案解析 [第六章] 深入理解计算机系统第三版 家庭作业参考答案

[第六章] 深入理解计算机系统第三版 家庭作业参考答案

#[第六章] 深入理解计算机系统第三版 家庭作业参考答案| 来源: 网络整理| 查看: 265

6.22

磁道数 d 与 r - x * r 成正比 设 d = k(r - x * r) = kr(1 - x) 总容量 c = 2πxk(r^2)(1 - x) = 2πk(r^2)(x - x^2) 上式实际上是关于 x 的二次式,其对称轴为 1/2,即当 x = 1/2 时取最大值

6.23

平均旋转延迟: T_arg_rotation = 1/2 * T_max_rotation = 1/2 * 60s/15000 RPM * 1000ms/s = 2ms 平均传送时间: T_arg_tranfer = 60s/15000 RPM * 1/800扇区/磁道 * 1000ms/s = 0.005ms 总时间: T_access = T_arg_rotation + T_arg_tranfer + T_arg_seek = 6.005ms

6.24

和书上6.4一样,但是我不懂为什么 1MB / 512B = 2000,有大佬给我解释一下么? 按照我的理解,可能是近似。 这儿按照书上的做法 2MB/512B = 4000,即需要 4000 个逻辑块,所以是 4 整圈 T_max_rotation = 60s/15000 RPM * 1000ms/s = 4ms,T_arg_seek = 4ms, T_arg_rotation = 1/2 * T_max_rotation = 2ms A. T = T_max_rotation * 4 + T_arg_rotation + T_arg_seek = 22ms B. T = 4000(T_arg_rotation + T_arg_seek) = 24000ms

6.25 高速缓存mCBEStsb1321024446424622321024425613002332102481128227343210248128129035321024321322255632102432482435 6.26 高速缓存mCBEStsb132204881256218323220484412823723321024286425614321024322162345 6.27

A. 标记位为 45 时: CT = 01000101 CI = 001 CO = XX 因此地址为 0x08A4 ~ 0x08A7

标记位为 38 时: CT = 00111000 CI = 001 CO = XX 因此地址为 0x0704 ~ 0x0707

B. 0x1238 ~ 0x123B

6.28

A. 全都不命中

B. 0x18F0 ~ 0x18F3 0x00B0 ~ 0x00B3

C. 0x0E34 ~ 0x 0E37

D. 0x1BDC ~ 0x1BDF

6.29

A.

1211109876543210CTCTCTCTCTCTCTCTCTCICICOCO

B.

操作地址命中?读出的值(或者未知)读0x834未命中未知写0x836命中未知读0xFFD命中C0 6.30

A. C = B * E * S = 128

B.

1211109876543210CTCTCTCTCTCTCTCTCICICICOCO 6.31

A.

12111098765432100011100011010

B.

参数值高速缓存块偏移 CO0x2高速缓存组索引 CI0x6高速缓存标记 CT0x38高速缓存命中?是返回的高速缓存字节0xEB 6.32

A.

12111098765432101011011101000

B.

参数值高速缓存块偏移 CO0x0高速缓存组索引 CI0x2高速缓存标记 CT0xB7高速缓存命中?否返回的高速缓存字节- 6.33

CT=B6或BC

0x1788 ~ 0x178B 0x16C8 ~ 0x16CB

6.34

dst数组:

列0列1列2列3行0mmmm行1mmmm行2mmmm行3mmmm

src数组:

列0列1列2列3行0mmhm行1mhmh行2mmhm行3mhmh 6.35

dst数组:

列0列1列2列3行0mhhh行1mhhh行2mhhh行3mhhh

src数组:

列0列1列2列3行0mhhh行1mhhh行2mhhh行3mhhh 6.36

A. x[0]的地址是 0,x[1] 的地址是 512,因此 x[0][i]、x[1][i] 会映射到同一块。 不命中率为 100%

B. 不会发生覆盖,一个缓存块为 16 字节,能放 4 个 int,仅有第一个 int 不命中,其余 3 个都命中,因此不命中率为 25%

C. 和 B 差不多

D. 不会,高速缓存再大,第一个 int 都不会命中

E. 会,这样的话,后几个 int 会命中,自然不命中率会降低

6.37 函数N=64N=60sumA25%25%sumB100%25%sumC50%25%

N=64,很简单,不写了。

N=60,A比较简单,总是第一次不命中,后三次命中;BC情况较复杂,建议写程序解决,不过我们手写一下也是可以的。 4KB/16B=256,即 256 个缓存块,我们给这些块命名 1、2、3 … 256,可以写出 B 的访问序列: 1 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 256 15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 14 29 44 59 74 89 104 119 134 149 164 179 194 209 224 239 254 13 28 43 58 73 88 103 118 上面是从 a[0][0] 到 a[60][0] 的访问序列,全不命中。但是访问 a[0][1] 到 a[60][1] 、a[0][2] 到 a[60][2]、a[0][3] 到 a[60][3] 都会命中(因为 四个为一组 存放在同一个缓存块中,而且不会被覆盖)。很容易将其推广,四次访问命中三次,因此不命中率为 25%。

C 的访问序列虽与 B 有些差别,但是高速缓存的行为类似。

6.38

A. 16 * 16 * 4 = 1024 B. 1024 / 8 = 128 C. 1/8

6.39

A. 1024 B. 1024 / 4 = 128 C. 1/4

6.40

A. 1024 B. 2^7 + 2^7 = 2^8 C. 1/4

6.41

1/4

6.42

1/4

6.43

100%

6.44

6.45 6.46


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3