磁盘容量 = 磁道数 * 一个磁道上的位数
= (1-x)*r*k2πr (k为比例因子)
由此可知当x=0.5时磁盘容量最大
平均旋转延迟:
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
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
对于写分配的高速缓存,每次写不命中时,需要读取数据到高速缓存中。
该高速缓存只有2个组,对于相同的i,j,src[i][j]和dst[i][j]对应相同的组。
src[0] src[2] 对应组0;
src[1] src[3] 对于组1。
dst同src。
dist
| 列0 | 列1 | 列2 | 列3 |
---|
行0 | m | m | m | m |
行1 | m | m | m | m |
行2 | m | m | m | m |
行3 | m | m | m | m |
src
| 列0 | 列1 | 列2 | 列3 |
---|
行0 | m | m | h | m |
行1 | m | h | m | m |
行2 | m | m | h | m |
行3 | m | h | m | h |
dist
| 列0 | 列1 | 列2 | 列3 |
---|
行0 | m | h | h | h |
行1 | m | h | h | h |
行2 | m | h | h | h |
行3 | m | h | h | h |
src
| 列0 | 列1 | 列2 | 列3 |
---|
行0 | m | h | h | h |
行1 | m | h | h | h |
行2 | m | h | h | h |
行3 | m | h | h | h |
A: x[0][i]和x[1][i]的块是同一个,所以不命中率为100%
B:每16个字节都能被分到不同的块,不命中率为25%
C:跟B差不多,不命中率为25%
D:不会,不会降低冷不命中率
E:会,会将低不命中冲突
函数 | N=64 | N=60 |
---|
sumA | 25% | 25% |
sumB | 100% | 25% |
sumC | 50% | 25% |
A:16*16*4 = 1024次
B: 1024/8 = 128次
C:128/1024 = 12.5%
A:16*16*4 = 1024次
B: 1024/4 = 256次
C:256/1024 = 25%
A:16*16*4 = 1024次
B: 1024/4 = 256次
C:256/1024 = 25%
25%
25%
100%