课程
计算机体系结构雨课堂第三章作业
计算机体系结构雨课堂第三章作业
1. 例如:一条4段的流水线中,S1,S3,S4各段的时间:△t,S2的时间:3△t(瓶颈段),最大吞吐率为:
- A. TPmax = 1/6△t
- B. TPmax = 1/2△t
- C. TPmax = 1/3△t
- D. TPmax = 1/△t
正确答案:C
解析: 流水线的最大吞吐率 取决于瓶颈段(耗时最长的一段)的时间。根据公式 ,这里最慢的一段是 ,所以最大吞吐率为 。
2. 与线性流水线最大吞吐率有关的是()
- A. 各个功能段的执行时间
- B. 最快的那一段的执行时间
- C. 最慢的那一段的执行时间
- D. 最后功能段的执行时间
正确答案:C
解析: 线性流水线的时钟周期通常由最慢的一段(瓶颈段)决定。最大吞吐率是时钟周期的倒数,因此直接取决于最慢那一段的执行时间。
3. 流水线中最慢的一段,称为流水线的()
正确答案:瓶颈段 / 瓶颈
解析: 限制流水线整体速度(时钟频率)的那一段被称为瓶颈段(Bottleneck Stage)。
4. 流水线冲突有3种类型:结构冲突、()和()
正确答案:数据冲突、控制冲突
解析: 流水线冲突(Hazards)主要分为三类:
- 结构冲突(Structural Hazard):硬件资源不够用。
- 数据冲突(Data Hazard):指令间存在数据依赖。
- 控制冲突(Control Hazard):由分支指令引起的PC改变。
5. 旁路技术一定可以解决数据冲突。()
正确答案:错误 (×)
解析: 旁路技术(Forwarding/Bypassing)可以解决大部分写后读(RAW)冲突,但无法解决所有数据冲突。例如,Load-Use 冲突(加载指令后紧跟使用该数据的指令)即使使用旁路,也必须插入一个周期的停顿(Stall),单纯靠旁路无法完全消除。
6. 静态流水和动态流水线的区别在于:静态流水线是在某段时间内只能执行一种功能,因此是静态流水线是单功能流水线。()
正确答案:错误 (×)
解析:
- 静态流水线:是指在同一段时间内,流水线只能按一种功能连接方式工作(例如只能全做加法或全做乘法)。只有当该功能的一批任务排空后,才能重构为另一种功能。它可以是多功能流水线,只是不能同时(动态)混在一起执行不同功能。
- 单功能流水线:只能完成一种固定功能。
- 因此,“静态流水线是单功能流水线”的推论是错误的,它也可以是多功能的,只是切换功能的模式是静态的。
7. 在5段式流水中,一般情况下,PC值的更新发生在()
- A. MEM段
- B. IF段
- C. EX段
- D. WB段
正确答案:A (或B,视具体mips实现而定,通常标准答案倾向于IF段本身或MEM段更新分支)
注意:此题标准答案给的是A (MEM段)。 解析: 在经典的MIPS五级流水线中:
- 顺序执行的 PC+4 通常在 IF段 就计算好了。
- 但是,分支指令 的目标地址和跳转决策通常在 ID段(早期判断)或 EX/MEM段(为了简化硬件)完成。
- 如果题目特指“一般情况下的PC值更新”且答案选MEM,可能特指分支指令最终写回PC或者某种特定架构设计。但通常现代教科书优化到ID段。按本题答案库,选 A。
- 更正: 许多早期教材(如DLX)分支决断在MEM段,导致3个延迟槽。MIPS后续优化到ID段。若必须选A,解释为分支指令在MEM段才最终确立PC。
8. 在MIPS的指令流水线中,可能发生的冲突有().
- A. 同一条指令的读操作与写操作之间的写后读冲突
- B. 先流入的指令的写操作与后流入的指令的读操作之间的写后读冲突
- C. 后流入的指令的写操作与先流入的指令的读操作之间的读后写冲突
- D. 两条指令的写操作之间的写后写冲突
正确答案:B
解析:
- A 错:同一条指令内部的操作不叫冲突。
- B 对:这是典型的 RAW (Read After Write) 冲突,即后面的一条指令需要用到前面指令尚未写入寄存器的结果。
- C 错:这是 WAR (Write After Read),在顺序流出的MIPS五级流水线中通常不会发生,因为读总是在ID段,写在WB段,顺序严格。
- D 错:这是 WAW (Write After Write),同样在顺序MIPS流水线中,写回都在WB段,按序写回,不会乱序。
9. 基本的MIPS流水线分为5个段,若发生控制冲突,为减少分支延迟,可提前判断并确定分支,则提前判断的流水段是()
- A. IF段
- B. ID段
- C. EX段
- D. MEM段
正确答案:B
解析: 为了减少控制冲突带来的停顿(Branch Penalty),MIPS设计通常将分支条件的判断和跳转地址的计算从EX段或MEM段提前到 ID (Instruction Decode) 段。这样如果分支发生,只需要flush掉IF段的一条指令(或利用延迟槽),大大减小了开销。
10. 主观题(16分)

请根据MIPS指令体系数据通路图,解析下面指令的工作过程。
Load R1, 5(R2)IF (a>6)(备注:分支指令分两种情况陈述,分支成功或分支失败。)
解析: 1. Load R1, 5(R2)
- IF: 根据PC取指,PC+4。
- ID: 读寄存器R2的值,符号扩展立即数5。
- EX: 计算有效地址
Sum = R2 + 5。- MEM: 从存储器地址
Sum处读取数据Data。- WB: 将读取的
Data写入寄存器 R1。2. IF (a>6) [BEQ/BNE等分支指令]
- IF: 取指。
- ID: 读取寄存器(假设a在寄存器中),比较是否大于6(或做减法),同时计算跳转目标地址。
- EX: (如果未在ID完成) 运算比较结果。
- MEM: (如果未提前) 更新PC。
- 实际MIPS ID段决策:
- 分支成功: PC被修改为目标地址,清除IF段取到的错误指令(Flush)。
- 分支失败: PC继续顺序执行,流水线正常流动。
11. 主观题(15分)

另外,首先请将该题的分析思路按步骤分析出来。
答案:
![]()
分析思路:
- 识别类型:分析该题是否属于多功能流水线(是否支持加法、乘法等多种运算),并指出所求目标工作的两大任务是什么(例如先做一次乘法,再做一次加法)。
- 坐标定义:从时空图的横纵坐标分析,纵坐标是流水段(S1-S5),横坐标是时间周期。确定每个任务需要经过哪些流水段。
- 冲突检测与任务分解:在刻画时空图的过程中,首先分清两大任务中对应的子任务序列。关键是分析不同任务之间如何避免使用同一时间段的同一资源(即结构冲突)。
- 绘图:按要求画出美观、清晰、准确的时空图,确保无冲突重叠。
12. 流水线中某个任务划分为10个子过程,假设每个子过程的时间相等且为t,那么连续执行n个任务,排空时间等于()
- A. 10t
- B. x (此选项原文不清,忽略)
- C. (10+n-1) t
- D. 40t
- E. 以上都不对
正确答案:A
解析: 排空时间(Drain Time)通常指的是最后一个任务从进入流水线到完成所有阶段离开流水线的时间,或者是最后一个任务完成所需要的时间片段。
- 如果指整个批次任务的总执行时间:应该是 。
- 如果仅指“排空”这个动作(即最后一个任务进入后到结束):就是流水线的深度时间 。
- 结合选项和常见考题语境,若问的是“排空时间”(Filling time的对称),指最后一条指令流出流水线的时间段,即一个完整的指令周期 。这就好比水管关水后,流完最后一段水的时间。
- 注:如果是问完成n个任务的总时间,选C。但题目问“排空时间”,选A。
13. 引入流水线后,对单个任务执行的时间()
- A. 并没有减少
- B. 一定减少
- C. 有所增加
- D. 不确定
正确答案:A (可能C)
解析: 流水线技术提高的是吞吐率(单位时间完成的任务数),而不是单个任务的执行时间(延迟)。相反,由于流水线增加了锁存器(Latch/Register)的延迟和时钟偏差开销,单个任务在流水线中的实际总停留时间往往比在非流水线(单周期)机器中略有增加。
- 选项A“并没有减少”是正确的保守描述。
- 选项C“有所增加”也是技术上准确的。
- 选A意在强调它“不是为了减少单任务时间”。
- Intel-3.2.3. 流水线
- 9.2 流水线处理器
14. 静态流水线不属于多功能流水线,动态流水线属于多功能流水线。()
正确答案:错误 (×)
解析:
- 静态流水线:可以是单功能,也可以是多功能。静态多功能流水线指同一时间内只能按一种功能模式工作。
- 动态流水线:必须是多功能流水线,允许在同一时间内将不同的功能混杂执行。
- 前半句“静态流水线不属于多功能流水线”是错误的,它包含了静态多功能流水线。
15. 下面不能解决流水线冲突的是()
- A. 停顿或旁路技术
- B. 指令调度和延迟槽技术
- C. 从前调度和总是预测失败
- D. 重复设置硬件资源和引入DMA。
正确答案:D
解析:
- A, B, C 都是解决数据冲突或控制冲突的经典技术(硬件停顿、旁路、编译器调度、分支预测)。
- D 引入DMA(直接存储器访问)主要用于I/O设备和内存之间的数据传输,是为了减轻CPU负担,与解决CPU内部指令流水线的冲突(Hazards)无直接关系。重复设置资源(如分离指令和数据Cache)可以解决结构冲突,但DMA不是为此设计的。














