Appearance
题目
单周期处理器中所有指令的指令周期为一个时钟周期。下列关于单周期处理器的叙述中,错误的是( )。
错因
B
把"周期长 = 频率低"想反了——可能联想到"单周期=简单结构=应该跑得快"。但单周期一个时钟周期内必须完成"取指 → 译码 → 执行 → 访存 → 写回"全部动作,周期至少要等于最慢指令所需时间(通常是访存类指令)。周期长 → 频率 = 1/周期 低。这是典型考点:"简单结构"和"高频"不是一回事。
C
以为指令执行过程中控制信号要"分阶段切换"。但单周期没有阶段划分——一个周期内 ALU 操作、寄存器读、内存访问、写回都同时进行(数据通路上各部件并行),控制信号在整个周期内保持稳定。把单周期当多周期或流水线来理解才会觉得 C 错。
D
以为 CPI(每条指令的时钟周期数)不为 1。但单周期定义就是"每条指令 = 一个时钟周期",所以 CPI 恒为 1——这是单周期最直接的特征。可能是混淆了"指令周期"和"指令执行时间"两个概念。
总解析
单周期处理器的本质特征:每条指令在 1 个时钟周期内完成全部阶段。
逐项判断:
| 选项 | 叙述 | 判断 | 理由 |
|---|---|---|---|
| A | 可以采用单总线结构数据通路 | 错误 | 单总线一个周期内只能传一次数据,无法在 1 周期内完成"取指 + 取操作数 + 写回"等多个并行数据传输 |
| B | 处理器时钟频率较低 | 正确 | 周期取最慢指令时长 → 频率低 |
| C | 在指令执行过程中控制信号不变 | 正确 | 单周期没有阶段划分,控制信号整周期稳定 |
| D | 每条指令的 CPI 为 1 | 正确 | 单周期定义即 1 条指令 = 1 周期 |
为什么单总线不行(A 错的关键):
单周期要求一个时钟周期内完成所有动作。看一条典型 R 型指令的数据通路需求:
| 阶段 | 数据传输需求 |
|---|---|
| 取指 | PC → 内存地址端 → 取出指令 → IR |
| 译码/取数 | 寄存器 a → ALU 输入 1;寄存器 b → ALU 输入 2 |
| 执行 | ALU 计算结果 → 临时锁存(同周期需立即可用) |
| 写回 | ALU 结果 → 目标寄存器 |
这些数据传输必须并行才能在 1 周期内完成。单总线是"分时共享"——同一时刻只能一对部件通信,根本无法满足。所以单周期处理器必须用多总线(或专用通路)数据通路,不能用单总线。
最终答案是 A(错误的叙述)。
单周期 / 多周期 / 流水线 速记表:
| 特征 | 单周期 | 多周期 | 流水线 |
|---|---|---|---|
| 一条指令所需周期数 | 1 | 多个(每段 1 周期) | 1(理想吞吐) |
| 时钟周期长度 | 长(按最慢指令) | 短(按最慢段) | 短(按最慢段) |
| CPI | 1 | >1 | ≈1(含冒险后略 >1) |
| 数据通路 | 必须多总线/并行 | 可单总线 | 必须并行 |
| 控制信号 | 整周期稳定 | 分阶段切换 | 各段独立 |
易错点速查:
- 单周期 ≠ "简单 + 高效"。它是"功能简单但牺牲了频率"的设计
- 单周期 ≠ 单总线。两者完全相反——单周期反而要求多总线才能并行