计算机系统导论——第四章测验

计算机系统导论——第四章测验

第一题

1

答案:

理解: 流水线加速只是提高时钟处理的频率,并不会加速单条指令的执行时间,甚至会使执行时间变长

第二题

2

答案: 4GIPS

理解:
T h r o u g h o u t = 1   i n s t r u c t i o n ( 200 + 50 ) × 1 0 − 12 s e c o n d = 1000 250 × G I P S = 4 G I P S Throughout=\frac{1 \ instruction}{(200+50) \times 10^{-12} second} = \frac{1000}{250} \times GIPS = 4GIPS Throughout=(200+50)×1012second1 instruction=2501000×GIPS=4GIPS
ppt上给的是GIPS,书上给的是GOPS,有点小疑惑,instruction == operation ?

instrcution我的理解是一条指令(movq %eax,%rax),而operation是其中一个流水线阶段(FDEMW),所以instruction != operation

这里的选项改成GOPS会不会更好一点?

第三题

3

答案: 函数返回,数据相关,有条件跳转

理解: 当ret通过流水线时,暂停取指阶段,同时ret流过译码、执行和内存阶段。为啥不等待ret流过写回阶段呢?因为内存阶段一结束,其实W_valM(W寄存器文件传回Select PC的那条线),已经可以参与F阶段了,而W_valM和W_valE更新寄存器文件跟F阶段无关

第四题

4

答案:

理解: Y86-64指令集包括了CISC和RISC二者的属性可以看成采用CISC指令集(x86-64)同时应用RISC一些原则进行了简化

在CISC这方面,条件码、可变长指令,使用栈存储返回值

在RISC方面,装载/存储 体系结构,规整的指令编码,通过寄存器传递过程参数

第五题

5

答案: a、b、c、d

  • a——RISC指令是定长的,便于加载和解码
  • b——ARM是采用RISC指令集
  • c——CISC指令集延迟较长,指令延迟差异性较大
  • d——只允许 Load 和 Store 指令执行存储器操作,其余指令均对寄存器操作。

理解:

11 12 13

ARM处理器 CISC(复杂指令集)与RISC(精简指令集)

RISC——精简指令集计算机

复杂指令集 CISC
  • 复杂指令集计算机
  • IA32就是例子

面向栈的指令集

  • 使用栈传递参数,保存程序计数器
  • 显式的入栈和出栈指令

运算指令能够访问内存

  • 需要内存读和写
  • 复杂的地址计算方式

条件码

  • 作为算术和逻辑运算指令的副作用设置条件码

哲学

  • 增加指令执行“典型的”编程任务
精简指令集 RISC
  • 精简指令集计算机

指令更少,更简单

  • 为了完成任务可能需要更多指令
  • 可以执行指令用小且快速的硬件

面向寄存器的指令集

  • 有更多的寄存器(典型32个)
  • 用于参数传递、返回指针和临时变量存储

只有load和store指令能够访问内存

  • 类似于Y86-64的mrmovq和rmmovq指令

没有条件码

  • 测试指令返回0/1在寄存器中

第六题

6

答案: a、b、c、d

  • a——根据当前PC和指令计算,PC increment(PC递增)
  • b——内存,W_valM(栈顶)
  • c——指令中得立即数,val_C(call 立即数)
  • d——根据当前指令和PC预测,predPC

理解:

14

第七题

7

答案: a、b、d

理解:

  • 组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与电路以前状态无关,而与其他时间的状态无关。
  • c——寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。

第八题

8

答案: a、b、c、d

理解: push、pop、ret都需要访问栈(位于内存)

阶段 c a l l   D e s t call \ Dest call Dest
取指 i c o d e : i f u n ← M 1 [ P C ] v a l C ← M 4 [ P C + 1 ] v a l P ← P C + 5 icode:ifun \leftarrow M_1[PC] \\ valC \leftarrow M_4[PC+1] \\ valP \leftarrow PC+5 icode:ifunM1[PC]valCM4[PC+1]valPPC+5
解码 v a l B ← R [ % e s p ] valB \leftarrow R[\%esp] valBR[%esp]
执行 v a l E ← v a l B + ( − 4 ) valE \leftarrow valB+(-4) valEvalB+(4)
访存 M 4 [ v a l E ] ← v a l P M_4[valE] \leftarrow valP M4[valE]valP
写回 R [ % e s p ] ← v a l E R[\%esp]\leftarrow valE R[%esp]valE
更新PC P C ← v a l C PC\leftarrow valC PCvalC

call将下一条指令的地址(valP == PC+5)压栈,将Dest赋值给PC,还是要访问栈

ret将当前栈顶的值(4字节)赋值给PC指针,栈顶指针+4

push、pop是对立统一的过程

ret、call也是如此

第九题

9

答案: a、b

理解: 异常——在这种情景下处理器不能继续正常操作

非法指令——异常

内存访问错误——异常

Cache丢失——缓存不命中处理

分支预测错误——丢弃预测分支,继续执行

第十题

10

答案: a、b、c、d

理解: 写回寄存器文件(push,irmov),写回PC指针(ret、call)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值