Skip to content

2017年 408 计算机组成原理 第 17 题

计算机组成原理2017年选择题2分

题目

下列关于超标量流水线特性的叙述中,正确的是( )。

Ⅰ. 能缩短流水线功能段的处理时间 Ⅱ. 能在一个时钟周期内同时发射多条指令 Ⅲ. 能结合动态调度技术提高指令执行并行性

错因

A

发现了 Ⅱ 是超标量的核心定义,但漏判 Ⅲ。可能是把"动态调度"当作另一种独立技术,没意识到超标量与动态调度(如 Tomasulo 算法)经常配套使用——超标量提供"多个发射槽",动态调度提供"乱序填充这些槽",两者结合才能发挥最大并行度。

B

误判了 Ⅰ。超标量不缩短单个功能段的处理时间——它的并行度是来自"同一周期内多条指令并行通过同一功能段",而功能段(如 IF、ID、EX 各段)本身的延迟没变。"提高指令吞吐率"不等于"缩短功能段时间"。Ⅲ 选对,但错在 Ⅰ。

D

把 Ⅰ、Ⅱ、Ⅲ 全选。Ⅱ Ⅲ 是对的,但 Ⅰ 仍是错的(同 B 解释)。这是最容易踩的全选陷阱:看到三个看似都"提高性能"的描述就全选,没逐项辨析。

总解析

先明确超标量的定义

超标量(Superscalar)= 单个 CPU 核内多条流水线并行,每个时钟周期可取/译/发射多条指令,靠的是多套功能部件而不是更短的功能段时间。

逐项判断

叙述判断理由
能缩短流水线功能段的处理时间✗ 错功能段时间由电路延迟决定,超标量靠"复制功能部件"提高吞吐,不缩短单段时间
能在一个时钟周期内同时发射多条指令✓ 对这是超标量的定义
能结合动态调度技术提高指令执行并行性✓ 对超标量 + 动态调度(Tomasulo、Reorder Buffer)是现代乱序 CPU 的标准做法

核心区别

技术主要手段是否缩短功能段时间
普通流水线阶段重叠✗(流水段时间反而成为周期下限)
超标量复制功能部件,多发射
超流水线(Superpipelined)把流水段切得更细✓(每段时间更短,但段数更多)
动态调度乱序执行(让无依赖指令先做)✗(提高利用率,与段长无关)

最终答案是 C(仅 Ⅱ、Ⅲ)

示意图(理想 5 段流水线 vs 2 路超标量):

周期123456
普通流水(每周期 1 条)I1:IFI2:IFI3:IFI4:IFI5:IFI6:IF
2 路超标量(每周期 2 条)I1,I2:IFI3,I4:IFI5,I6:IF.........

每段时间相同(IF 段电路延迟没变),但每周期完成的指令数翻倍——这就是超标量的本质。

易错点速查

  1. 超标量 ≠ 超流水线(前者复制功能部件,后者切碎流水段)
  2. "提高并行度" 和 "缩短功能段时间" 是两件事,前者是吞吐量、后者是单段延迟
  3. 现代 CPU 几乎都是 "超标量 + 动态调度 + 多发射" 三合一,三者要会区分

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题