文章目录
- 2009年真题
- IO大题
- 指令大题
- 2010年真题
- 2011 年真题(不会)
- 内存计算
- 2012 年真题
- Cache题目
- 指令题目
- 2013 年真题
- Cache题目
- 指令题目
- 2013年真题
- 补充
- 2014年真题
- 指令题目
- Cache
- 2015年真题
- 题目一
- 补充CPU结构
- 题目二
- 2016年真题
- 题目一【不会】
- 题目二【Cache自己做】
- 2017 年真题
- 题目一:运算
- 题目2:指令
- 2018 年真题
- 题目1:IO方式
- 题目2:Cache
- 2019 年真题
- 题目 一:指令
- 题目二: cache
- 2020 年真题
- 题目一:Cache
- 题目二:运算【不会】
2009年真题
IO大题

以32位为传输单位,说明IO缓冲区大小为32位(4B)大小,每4B大小的数据就会执行一次中断
CPU主频反应了1秒内有多少个时钟周期

指令大题





2010年真题


解析
总结
2011 年真题(不会)




内存计算



2012 年真题
Cache题目

Cache命中的时候,不需要访存
所以说每秒钟调入的字节数是:不命中的次数*块的大小。也就是说,每秒要支持把4800KB的数据调入主存



这里要求最大值,所以忽略了前面的一段开始时间,每隔四分之一个周期存取一次,一次传入32bit数据,




单个存储体的带宽,一般来说就是存储器的数据线的根数,代表的是一次能够并行传输的数据的位数
指令题目



I 3在IF段被阻塞,所以I 3还在占用这IF段,所以I4就不能占用这个资源。
I4的IF必须要在I3的IF流入下一个阶段后才能进行

2013 年真题
Cache题目





指令题目







2013年真题
这道题认真看,强化4详细讲了

备注:在条件转移指令运行之前,一定先要比较两个数。比如说吧
if(i<n){ ...} else{ ...}
ALU执行计算之后会生成ZF、OF、SF、CF这些标志,这些结果又会保存到程序状态字寄存器里面(PSW),然后基于PSW中保存的信息实现各种条件转移指令

补码的计算
注意:
1.OFFSET表示的是所偏移的具体指令的条数,一条指令占用2个字节,所以乘2表示的才是具体指令的地址
标志寄存器(FR)又称为程序状态字寄存器(PSW)
补充


OF一些有错误!


2014年真题
指令题目




Cache



2015年真题
题目一

MUX是多路选择器,只有一个输出
…out控制这个数据满足什么条件才能出去
…in控制这个数据满足什么条件才能进入
…op用来控制某个部件进行xx操作
暂存寄存器通常是用来存放一个中间结果
总线是一个互斥资源,同一时间只能被一个资源所访问
三态门就是你给一个有效信号,他就通了
注意隐藏技能ALU可以实现pc++
PC+2是因为每一条指令长度为16位,所以下一条指令就是PC+2

补充CPU结构



题目二
答案



(R1)说明操作的是R1里面的内容,所以是寄存器直接寻址
((R1))说明操作的是(R1)存放的地址里面的内容,所以是寄存器间接寻址


并行微操作的标准:
1.发送到总线上的东西可以同时读出,但是不可以同时写入
2.如果微操作有先后顺序,那么就不可以放在同一个时钟周期

对于算术或逻辑运算,基本的流程就是
1.把其中的一个数直接放入暂存寄存器T中
2.另一个数通过MUX多路选择器的选择,放入ALU的另一个输入端,与此同时,进行ALU的具体操作,以及移位寄存器的具体操作
3.把结果输出,放入相应的寄存器中
也就是说这些算术或者逻辑运算需要三个周期来完成

2016年真题
题目一【不会】

IO接口的缓冲区就是IO端口
IO端口有统一编址和独立编址两种方式

- 在异步串行通信方式中,还有一个开始位。1个ASCII字符占7位

硬件完成的部分就是中断响应阶段
题目二【Cache自己做】

- 页的大小==>页内偏移量==>虚拟地址的页内偏移量
- 主存块的大小==>物理地址的块内地址

Cache缺失是把主存里面的一个块调入到Cache中
而主存的缺页是要从磁盘当中调一个页进入主存
磁盘IO的速度肯定是比主存读写的速度慢
直写:当我修改了Cache中的数据之后,同时也把修改后的内容写回主存
回写:只有在这个Cache块要被调出时,我才把修改后的内容同步回主存


2017 年真题
题目一:运算



第一问
第2问
C语言中,数字用补码表示
阶码的二进制表示:真值+偏置值
第三问

f(24)用二进制表示是:25个1
int类型可以表示31位,所以够用了,表示为01FF FFFFH
float类型可以表示24位,需要进行舍入,对于754标准,使用的是0舍1入,那么末尾是1,所以入,这样所有位都产生进位最后就变成10.后面23个0,左移一位,就变成了2的25次方,阶码为25,尾数为全1
问题4
问题5
题目2:指令



E:表示阶码
2018 年真题
题目1:IO方式







第一问:橙色
第二问:绿色
第三问:红色
对于第二问,采用中断IO方式,每次处理中断的时间为400个时钟周期,设备B的传输速率是40MB/s,数据缓冲区为32位,也就是4B,所以说每传输4B就需要一次中断,
一秒内共产生10M次中断,
每次中断需要400个周期,
一秒内需要4000M个始终周期
每0.1微秒设备B给缓冲区写入数据,但是每隔0.8微秒,CPU才处理缓冲区的数据
题目2:Cache









2019 年真题
题目 一:指令




答案是32位!!
对于第五问,发出溢出的时候,可以忽略不计,如果有必要的话,也可以用硬件来捕捉这种异常,然后直接由硬件强行跳转去处理这种异常。当然,如果硬件不支持这种硬件的捕捉,那么我可以在软件的层面,在可能发生异常的这条指令的后面安排一条陷入指令,由这条陷入指令去检查异常是否发生
题目二: cache


2020 年真题
题目一:Cache

- 指令Cache和数据Cache分开,是为了方便指令流水线,使得取址和访存可以同时进行。取址到指令Cache取,访存到数据Cache取
- 当题目特别向我们强调Cache的数据区是多少的时候,这个数据区就是单纯的存放数据。没有那些Tag标记位、有效位等等

题目二:运算【不会】








注意:
























