2019-计算机组织与结构-计算机组成与结构作业讲解
homework02
- 表示存储的时候: MB | Mb 中的M是指的是2?
- 表示其他的时候: Mbps | MBps 中的M指的是10?
- Eg. MB/s:我们避免这种写法,不好确定是2还是10为底
- 1 bits / 100 ns = 10 Mbps
- 第一题第二问:既有位扩展也有字扩展
- 扩展到32位,我们只需要同时访问4个8位存储器的相同的位置即可。
- 第二题:
- 1K * 4 -> 64 K * 1B:1K -> 64K的字扩展,4 bits -> 1B位扩展
- 寻址空间由容量决定,片内地址由片内存储单元决定
- 选片不是每个片来选,而是2个选一次(因为字扩展),所以选片用了6个地址。
- 位扩展的时候我们使用的是一个地址。
- 第三题:
- 地址空间32K
- 所以32K = 215(答案有误)
- 2(15-13)位选片,13位片内选址,先算片内选址。
0.2. homework03
1. 第一题
- 数据区大小:不算Tag仅仅含有数据区
- 只说cache大小的时候我们也认为是数据区(不考虑Tag)
- 只有在强调Tag的存在的时候我们才认为包含Tag
- 假设访问cache的时间为T,访问主存时间为10T,命中概率P(至少要写的部分),那么提高的速度是10T/(T+(1-p)*10T) = 10 / (11-10p)
- 32K = 215,所以一共15位,4K/64 * 4 = 24,也就是组号4位(组数log2),64 = 26
- 第一轮访问了4352次,68次未命中,剩下的被加载命中
- 例子如下:第一组:0 + 16 + 32 + 48,第二组:15 + 31 + 47 + 63,然后把64、65、66、67加载到0,1,2,3
- 第二轮及以后:会未命中5*4 = 20次,所以我们可以证明从第三轮到第十轮都是一样的(虽然每个组内数据不同,但是等价,要替换的数据是一样的)
- p =(68 + 20 * 9)/4352 * 10
- 就是因为多了4个标记,才会大量的未命中,不然在第二轮在以后不会有未命中。
- 改成4350在未改变除法向上取整的时候,只会影响p计算中的分母的部分,而不会影响未命中的次数。
- 因为在cache中访问是按照块来访问,所以块的第一个开始取用,还是从同一个块的最后一个开始取用。
- 也就是我们只需要考虑访问多少次块即可。
2. 第二题
2.1. 第一问
- 做题前把cache和memory都画出来。
- 第一次:63、64没有命中,8 miss 2
- 之后第一次循环:15miss、16miss、32miss、80miss(34 miss 4)
- cache:0523
- 第二次循环:16miss、80miss(34 miss 2)
- 之后每次循环都是相同的情况
2.2. 第二问
- 第一次(8 miss 2)
- 第一次循环(34 miss 4)
- 第一轮结束情况时2051
- 之后没有不命中的。
3. 第三题
- 1 ns + (1 - 0.95) * T > 1.5 + (1 - 0.97) * T
- 所以速度是主存的 25 / 1.5 = 17倍以上
4. 第四题
略过
5. 第五题
- n2要确定是局部缺失率还是全局缺失率,如果是局部缺失率则还需要进行计算
6. 第六题
- a[1][1]的地址的计算需要看a有多大:320 + 256 * 4 + 1 * 4
7. 第七题
- 每组4行,4路组。
- 字是寻址的最基本单位。
7.1. homework09
8. 第一题
- 不同循环使用不同的状态图,外层再次进入内层,则继续使用状态图,进入n次,每次判断n+1层。
8.1. homework10
9. IO部分
- 常见设问:
- I/O方式能不能支撑数据传输
- 在最坏的情况下进行判断能用不能用,只要在不能用的情况下不能用,则不能使用。
- CPU占用时间是多少,CPU占用时间的比例是多少。
- 打印机是用buffer来进行打印
- 中断式I/O的部分问题
- 选择15,因为在100中已经完成了一字节的传递
- 会受到Buffer的影响,时间受到处理时间和传送时间的同时影响
- 时间问题:
- 第一种情况:输入时间比搬运时间快
- 头时间加上所有的处理时间
- 第二种情况:搬运时间比输入时间快
- 传输时间加上小尾巴时间(小尾巴包含CPU参与以及CPU不参与的时间,不一定是一个数据,可能有很多的数据,还有可能是DMA的搬运时间处理时间等)
- 总体来讲是加上慢一点的
- 第一种情况:输入时间比搬运时间快
10. 第五题
- 保证 60+1000 的过程中不能来新的数据
- 判断能不能用:需要比较上面的时间和处理器处理时间是否合适。
- 1200个时间周期是包含1000个的时间周期
- 如果时间不够可以不计算结果,结果不对只有1分
- 注意有没有分别,2000*2
- 题目没有说的事情,往简单说可以,比如假设没有访问冲突
- 加上小尾巴,直接拿2000*1ns是不对的
- 为什么?最后一次的时候,DMA先进行初始化,然后自己搬一下数据,然后进行处理
- 而在之前的中断等问题中,是没有搬运时间的。
11. 第七题
- 按照最坏情况进行计算
2019-计算机组织与结构-计算机组成与结构作业讲解
https://spricoder.github.io/2020/01/16/2019-COA19/2019-COA19-%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E7%BB%93%E6%9E%84%E4%BD%9C%E4%B8%9A%E8%AE%B2%E8%A7%A3/