Bus Timing
总线定时总线定时是指主设备和从设备交换数据时,在时间上如何配合。它本质上是一种协议或规则:什么时候放地址、什么时候放命令、什么时候读数据、什么时候撤销信号。 常见定时方式有四类: 定时方式 核心机制 适合场景 同步定时方式 用统一时钟控制数据传送 总线较短、设备速度接近 异步定时方式 不用统一时钟,靠请求和回答信号握手 设备速度差异较大 半同步通信 统一时钟基础上增加等待信号 大体同步,但允许慢设备插入等待 分离式通信 请求和响应拆成两个子周期 避免从设备准备数据时长期占用总线 同步定时:统一时钟,快而简单,但要求设备速度接近。 异步定时:握手配合,适应性强,但控制复杂、速度较慢。 半同步通信:统一时钟加...
Bus Performance
性能指标总线性能指标描述的是:一条总线按什么节奏工作、一次能传多少数据、单位时间最多能传多少数据。 常见指标包括: 指标 含义 关注点 总线周期 一次总线操作所需时间 包括申请、寻址、传输、结束等阶段 总线时钟周期 总线时钟的一个周期 记为 $T_{clk}$ 总线时钟频率 总线时钟周期的倒数 记为 $f_{clk}=1/T_{clk}$ 总线工作频率 总线实际完成操作或数据传送的频率 常由总线周期或传输节奏决定 总线宽度 总线上一次可传送的数据位数 通常指数据总线根数 总线带宽 单位时间内总线可传送的最大数据量 理论最高传输率 总线复用 同一组线在不同时刻传不同信息 减少线数,增加时序控制要求 信号线数 地址线、数据线、控制线数量的总和 复用会影响物理信号线数 频率看的是总线,不是 CPU 总线性能计算中的“总线频率”“总线时钟频率”指的是总线自己的时钟频率。不要把 CPU 主频直接代入总线带宽公式,除非题目明确说明 CPU...
Bus Overview
总线总线是一组能为多个部件分时共享的公共信息传送线路。 共享:总线上可以挂接多个部件,部件之间交换的信息都可以通过这组线路传送。 分时:同一时刻只允许一个部件向总线发送信息;其他部件即使也要发送,也必须等待。 总线不是“一根线” 一条总线通常由多根信号线组成。比如一组 32 位数据总线,本质上就是 32 根可并行传送数据位的信号线。 早期计算机外部设备少时,可以采用分散连接方式;设备增多后,这种方式不利于随时增减设备。 总线连接把多个部件挂到一组公共线路上,提高了连接的灵活性。 代价:既然线路被共享,就会产生争用,需要规定占用关系、传输能力和时间配合。 按功能分类按所在位置和连接对象,总线可分为三类。 类型 连接范围 说明 片内总线 CPU 芯片内部 连接 CPU 内部寄存器、ALU 等部件 系统总线 计算机系统内各功能部件之间 连接 CPU、主存、I/O...
CPU Multiprocessor And Hardware Multithreading
多处理器与硬件多线程看图即可。 多处理器基本概念 类型 核心特征 SISD 单指令流、单数据流。普通单处理器顺序执行程序通常属于这一类。 SIMD 单指令流、多数据流。一条指令同时处理多个具有相同操作的数据,适合向量、数组、图像像素等批量处理。 MISD 多指令流、单数据流。现实中很少见。 MIMD 多指令流、多数据流。多个处理器并行执行不同指令,处理不同数据。 MIMD 又可以分成两类: 类型 存储器关系 通信方式 共享存储多处理器系统 多个处理器共享同一个主存地址空间 可通过 LOAD/STORE 访问共享数据 多计算机系统 每台计算机有自己的私有存储器,物理地址空间相互独立 通过消息传递交换数据 多核处理器 多核处理器是在一个 CPU 芯片中集成多个处理器核心。多个核心通常共享最后一级...
CPU Pipeline
指令流水线流水线把一条指令的执行过程拆成若干阶段,让多条指令在不同阶段重叠执行。 以 MIPS 五段流水线为例: 1IF -> ID -> EX -> MEM -> WB 单条指令仍然要经过多个阶段;流水线提高的是吞吐率,不是把每条指令本身压缩成一个阶段。 每个流水段后面都有流水线寄存器,用来保存本阶段结果并传给下一阶段: 流水线寄存器 保存内容 IF/ID 取出的指令、PC+4 ID/EX 读出的寄存器操作数、立即数、控制信号 EX/MEM ALU 结果、分支判断结果、待写主存的数据 MEM/WB 主存读出的数据或 ALU 结果、目的寄存器号 机器周期按最慢阶段设置 若 IF/ID/EX/MEM/WB 的实际耗时不同,为方便流水线同步,机器周期通常按最慢流水段设置。较快阶段也要等待一个完整机器周期结束。 控制信号也要随流水线向后流动 控制信号也要被流水线寄存器保存。对一条指令来说,ID 阶段译码后会同时产生后续阶段需要的控制信号;这些控制信号不能只停留在...
Hardwired Control Unit
硬布线控制器用组合逻辑电路直接产生控制信号。 它的核心思想是: 1指令操作码 + 当前工作周期 + 节拍信号 + 状态条件 -> 微操作控制信号 每个微命令对应一个或一组控制信号;控制信号接通数据通路后,就完成对应的微操作。 例如,要完成: 1(PC) -> MAR 在单总线结构中可能需要让: 1PCout, MARin 同时有效。控制器发出的不是“文字命令”,而是让这些控制线在特定节拍为有效电平。 微操作、微命令和控制信号 概念 含义 例子 微操作 数据通路中最基本的操作 (PC) -> MAR 微命令 控制器发出的命令 使 PCout、MARin...
Microprogrammed Control Unit
微程序控制器把微指令存放在控制存储器中。执行机器指令时,控制器从控制存储器中逐条取出微指令,由微指令发出微命令,从而控制数据通路完成微操作。 它的核心思想是: 1机器指令 -> 对应的微程序 -> 微指令序列 -> 微命令 -> 微操作 硬布线控制器把控制规则做成组合逻辑;微程序控制器则把控制规则写成微程序并存入控制存储器。 基本术语 概念 含义 微命令 控制一个微操作的命令 微操作 数据通路中的基本动作,如 (PC)->MAR 微指令 一组微命令加上后继微指令地址信息 微程序 一组微指令序列,用来解释一条机器指令 控制存储器 CM 存放微程序的存储器,常用 ROM 实现 CMAR 控制存储器地址寄存器,也称 $\mu PC$,保存要读取的微指令地址 CMDR 控制存储器数据寄存器,也称 $\mu IR$,保存从 CM...
CPU Datapath
CPU 可以看成两大部分: 部分 作用 数据通路 保存数据、传送数据、加工数据,决定数据能从哪里流到哪里 控制部件 根据指令、状态和时序产生控制信号,决定数据通路在某一时刻怎样工作 数据通路是指令执行过程中数据经过的路径,以及路径上涉及的硬件。 数据通路的基本组成数据通路中的部件可以分成两类。 类型 也叫 是否保存状态 典型部件 理解重点 组合逻辑单元 操作元件 不保存 ALU、加法器、多路选择器、三态门、译码逻辑 输入变化后,经过组合逻辑延迟得到输出 时序逻辑单元 状态元件 保存 PC、IR、MAR、MDR、通用寄存器、暂存寄存器、流水线寄存器 在时钟边沿写入新状态,并把状态保持到下一次写入 一条典型的数据通路可以抽象为: 1状态元件 -> 组合逻辑 -> 状态元件 例如一次寄存器加法可以理解为: 1R1, R2 -> ALU -> R3 其中 R1/R2/R3 是状态元件,ALU 是组合逻辑单元。若这个操作安排在一个时钟周期内,那么从 R1/R2 输出开始,经过 ALU 运算,到 R3...
CISC And RISC
CISC 和 RISC 讨论的是指令系统的设计思想:复杂功能应该由一条复杂机器指令完成,还是由多条简单机器指令组合完成。 基本思想CISC 是 Complex Instruction Set Computer,复杂指令集计算机。 它的设计倾向是:提供功能强、语义复杂的机器指令,让一条指令尽可能完成一个复杂功能。例如,一条指令可能同时完成访存、运算、写回。 RISC 是 Reduced Instruction Set Computer,精简指令集计算机。 它的设计倾向是:每条指令只完成简单、规整的基本动作,复杂功能由多条简单指令组合完成。例如,先用 Load 指令把数据从主存读入寄存器,再用寄存器之间的运算指令处理,最后用 Store 指令写回主存。 关键差异 对比项 CISC RISC 指令系统 指令多,功能复杂 指令少,功能规整 指令字长 往往不固定 往往定长 寻址方式 较多、较复杂 较少、较简单 访存方式 很多指令都可能访存 通常只有 Load/Store...
Instruction System Basics
指令是计算机执行某种操作的命令,是计算机运行的最小功能单位。一台机器能够识别并执行的全部机器指令构成它的指令系统,也称为指令集ISA。 指令系统处在软件和硬件之间:高级语言程序最终必须被翻译成机器指令;硬件则按指令中的字段完成取数、运算、访存、转移和控制等动作。不同体系结构的机器指令格式和指令含义不同,因此一台机器通常只能直接执行自己指令系统中的指令。 指令格式一条机器指令是一组有意义的二进制代码,通常由操作码字段和地址码字段组成。 操作码(Operation Code, OP):指出指令要做什么操作,例如加法、传送、转移、停机。 地址码:指出操作对象在哪里,可能表示操作数地址、结果地址、寄存器编号、立即数或下一条指令地址。 地址码的数量并不固定。根据显式地址码个数,指令可以分为零地址、一地址、二地址、三地址和四地址指令。 类型 常见格式 典型含义 执行阶段访存次数 零地址指令 OP 不需要操作数;或在堆栈机中隐含使用栈顶、次栈顶 通常为 0 一地址指令 OP A1 OP(A1) -> A1,或 (ACC) OP (A1) ->...