组成原理

Book Notes · Harris · Gates to Microarchitecture

数字设计与计算机体系结构
从门电路到实现

Sarah L. Harris 与 David Money Harris 把组合/时序逻辑接到同一套教学 ISA 的三种实现。本站定位:数字逻辑到微架构的桥。COD 讲体系结构概念(性能公式、冒险分类、层次动机);Harris 讲这些概念如何落成多路选择器、寄存器写使能与控制状态。后出版次教学 ISA 会换,下面只留机制,不背助记符表。

01组合逻辑与时序逻辑

组合:输出只由当前输入决定(经过传播延迟)。时序:有状态,下一状态与输出还依赖已存的值。

译码器、多路选择器、加法器/ALU 是组合块。PC/流水线寄存器是边沿触发状态元件;寄存器堆通常时钟沿写入、读端组合读出,物理实现不必全由触发器构成。有限状态机 = 次态逻辑 + 状态寄存器 + 输出逻辑;多周期控制器常落成一台 FSM。

组合云→PC / 级间寄存·寄存器堆→下一拍
易错:时钟周期、机器周期、指令周期不是三个同义词。单周期里「一条指令一个长时钟」;多周期里一条指令跨多个时钟。取指按 PC,不按「时钟自己长出下一条」。

02HDL 的角色

本站不教语法Verilog / VHDL / SystemVerilog 的具体方言、仿真器开关、综合属性,408 不考,本页也不列。

硬件描述语言用来描述组合云和寄存器,不是在「你正在设计的那颗 CPU」上跑的普通软件。仿真器按时间推进信号;综合器把可综合子集映射成门与触发器。同一种 HDL 可以描述单周期/多周期/流水线,但三者结构与控制不同——多周期需 FSM 与资源复用,流水线需级间寄存器、冒险检测与转发/冲刷。

课设用 HDL 画通路时,对错仍看:写使能何时有效、转发路径接没接、load-use 有没有插入气泡。不要把「代码能仿真」当成「时序已满足」。

03单周期 / 多周期 / 流水线

同一教学 ISA(本书常见版用 MIPS 子集;后版可换 RISC-V / ARM)三种落法。比较要用墙上时间(时钟 × 拍数),不要只比拍数。

单周期

取指、译码、执行、访存、写回塞进一个长时钟。硬件基本不在指令内部复用。时钟下界是最长组合路径,不是「越短越好的主频口号」。

多周期

把阶段拆到若干时钟,ALU 与存储器可以跨拍复用。控制器常是 FSM。此处「指令周期 ≠ 时钟周期」。硬布线在单周期里多是组合译码,经传播延迟后在本周期有效窗口内稳定;微程序则是一条机器指令对应一串微指令,逐条取控存——不要写成「只是多访问一次控存所以慢」。

流水线

IF / ID / EX / MEM / WB 重叠。转发消解部分 RAW;load-use 仍要停顿。经典按序五级中 WAR/WAW 不出现,因为按序发射/完成、读在 ID、写在 WB。加速比不等于级数。乱序执行会让 WAR/WAW 重新成为问题,那是 姚永斌 / CAQA 的超纲层,不能回写改掉五级结论。

单周期·长钟→多周期·FSM→五级重叠
与 COD 分工:COD 回答「为什么要流水、三类冒险是什么」;Harris 回答「PCWrite / MemToReg / ALUSrc 这些选择信号接哪根线」。两本不要互相替代。

章末自测

最长组合路径(加上建立时间等约束)。不是「一条指令对应一个很短的时钟」,也不是机器周期、指令周期三个词随便换。
不等于。要用墙上时间比:时钟×拍数,填满与停顿都进分母。全书与 COD 口径相同。
不能。HDL 描述硬件;408 不考方言。对错看通路与控制时序,不看仿真器绿勾。