计组知识要点
参考:飞书笔记
第一章 概论
组成
冯诺依曼计算机三个要点:(1)采用二进制代码表示信息,以便计算机识别;(2)采用存储程序工作方式,才能使计算机自动地对信息进行处理;(3)由存储器、运算器、控制器、输入/输出设备等功能部件组成计算机硬件系统
CPU由运算器、控制器、寄存器组构成。
现代计算机的存储器基本都是多级存储器架构,在高速读取和大容量之间取得平衡。
而哈佛结构是一种将程序指令存储和数据存储分开,一般用于51 单片机、FPGA 嵌入式设计等嵌入式硬件,因为其实时性强,可以同时读取指令和数据。
计算机系统的五层结构

现代个人电脑有什么硬件
| 硬件分类 | 具体部件 | 核心功能 | 关键参数 / 常见类型 |
|---|---|---|---|
| 核心硬件 | 中央处理器(CPU) | 电脑的运算和控制核心,执行指令、处理数据 | 核心数 / 线程数、主频、制程工艺(如 Intel Core i5/i7/i9、AMD Ryzen 5/7/9) |
| 主板(Motherboard) | 连接所有硬件的平台,提供数据传输通道 | 芯片组(如 Intel B760/Z790、AMD B650/X670)、接口类型(PCIe 4.0/5.0、M.2) | |
| 显卡(GPU) | 处理图形图像数据,负责显示输出,支持游戏、渲染、AI 计算 | 显存容量 / 位宽、CUDA 核心数(NVIDIA RTX 40 系列、AMD RX 7000 系列);核显(集成在 CPU 中) | |
| 内存(RAM) | 临时存储运行中的程序和数据,速度远快于硬盘 | 容量(8GB/16GB/32GB)、频率(DDR4 3200MHz、DDR5 5600MHz) | |
| 存储硬件 | 固态硬盘(SSD) | 高速存储设备,用于安装系统和软件,提升读写速度 | 接口类型(SATA 3.0、M.2 NVMe)、容量(256GB/512GB/1TB) |
| 机械硬盘(HDD) | 大容量存储设备,用于存放文件、视频等数据 | 容量(1TB/2TB/4TB)、转速(7200rpm/5400rpm) | |
| 输入输出硬件 | 显示器(Monitor) | 输出视觉信息的设备 | 尺寸(23.8/27/32 英寸)、分辨率(1080P/2K/4K)、刷新率(60Hz/144Hz/240Hz) |
| 键盘(Keyboard) | 文字和指令输入设备 | 机械键盘 / 薄膜键盘、有线 / 无线 | |
| 鼠标(Mouse) | 定位和控制输入设备 | 光电鼠标 / 激光鼠标、有线 / 无线、DPI 参数 | |
| 电源(Power Supply) | 为所有硬件提供稳定的直流电 | 额定功率(300W/500W/750W)、认证等级(80Plus 白牌 / 铜牌 / 金牌) | |
| 辅助硬件 | 散热器(Cooler) | 为 CPU/GPU 散热,防止过热降频或损坏 | 风冷散热器(塔式 / 下压式)、水冷散热器(一体式 / 分体式) |
| 机箱(Case) | 容纳和保护所有硬件,提供散热风道 | 机箱类型(ATX/M-ATX/ITX)、材质(钢板 / 亚克力 / 玻璃) | |
| 声卡 / 网卡 | 声卡:处理音频信号,输出声音;网卡:连接网络 | 集成声卡 / 独立声卡;有线网卡(千兆 / 万兆)、无线网卡(WiFi 6/6E) | |
| 外设扩展 | 音箱、打印机、U 盘、移动硬盘、摄像头等 | 满足音频输出、文件打印、数据传输、视频通话等需求 |
现代服务器一般有什么硬件
| 硬件分类 | 具体部件 | 核心功能 | 关键参数 / 选型要点 |
|---|---|---|---|
| 核心计算硬件 | 中央处理器(CPU) | 服务器运算和控制核心,承担业务逻辑、数据计算等任务 | 架构:x86(Intel Xeon/AMD EPYC,主流)、ARM(鲲鹏、AWS Graviton,低功耗场景) 特性:多核心 / 多线程、支持超线程 / 同步多线程(SMT)、大缓存、支持 ECC 校验 选型:根据并发量和计算负载选择,如 Web 服务器选中端 Xeon,数据库 / AI 计算选多核高频型号 |
| 内存(RAM) | 决定并发处理能力 | 类型:ECC 内存(关键,纠错能力强,避免数据错误,保障稳定性),支持 RDIMM/LRDIMM(提升扩展性) 特性:支持内存热插拔 | |
| 存储硬件 | 固态硬盘(SSD) | 高速存储,用于安装系统、数据库、高频访问的应用和数据 | 接口:SATA 3.0、SAS 3.0、NVMe PCIe 4.0(高性能场景首选) 类型:企业级 SSD,支持掉电保护 应用:系统盘、数据库日志盘、缓存盘 |
| 机械硬盘(HDD) | 大容量低成本存储,用于存放冷数据、备份文件 | 类型:企业级 SAS/SATA 硬盘(7200rpm/10000rpm/15000rpm),MTBF(平均无故障时间)达百万小时以上 特性:支持 RAID 阵列(提升可靠性和读写速度) 应用:数据仓库、文件服务器存储 | |
| RAID 卡 | 管理多块硬盘组成 RAID 阵列,提供数据冗余和读写加速 | 类型:硬件 RAID(独立芯片,性能强,不占用 CPU 资源,主流)、软件 RAID(依赖系统,适合低负载场景) 支持级别:RAID 0/1/5/6/10,根据数据安全性需求选择 | |
| 存储扩展设备(可选) | 提升存储容量和扩展性 | 磁盘阵列柜(JBOD):扩展硬盘数量 SAN/NAS 存储:通过网络挂载,实现海量存储共享 | |
| 基础承载硬件 | 主板 | 连接所有硬件的核心平台,决定服务器的扩展性和兼容性 | 芯片组:对应 CPU 型号(如 Intel C621、AMD TRX50),支持多内存插槽、多 PCIe 通道 接口:多 PCIe 插槽(用于扩展网卡、RAID 卡)、多 SATA/SAS 接口(连接硬盘)、IPMI 管理接口(远程监控) |
| 电源(PSU) | 为所有硬件提供稳定电力 | 类型:冗余电源(N+1/N+N 配置,如 2 个电源,一个故障另一个无缝接管,避免宕机) | |
| 机箱 | 容纳和保护硬件,提供散热风道 | 类型:机架式(1U/2U/4U,主流,适合机房机柜部署)、塔式(类似 PC 机箱,适合小型机房 / 实验室) 特性:高密度设计、支持热插拔硬盘位 | |
| 散热与稳定性硬件 | 散热器 | 为 CPU、机箱散热 | CPU 散热:塔式风冷(1U/2U 服务器用下压式 / 侧吹式)、液冷(高端服务器,散热效率高) 机箱散热:多风扇冗余设计,支持智能调速,根据温度自动调节转速 |
| 远程管理卡 | 实现服务器的远程监控和管理 | 功能:远程开机 / 关机 / 重启、BIOS 配置、硬件状态监控(温度、电压、硬盘健康)、系统重装 | |
| 网络硬件 | 网卡(NIC) | 实现服务器与网络的连接,承担数据收发任务 | 类型:千兆网卡(入门)、万兆网卡(主流,如 10Gbps SFP+)、25G/40G/100G 网卡(高性能场景,如云计算、大数据) 特性:支持多网口绑定(链路聚合,提升带宽和冗余)、支持 PCIe 扩展 选型:根据业务带宽需求,如 Web 服务器选千兆 / 万兆,数据库集群选万兆以上 |
| 扩展硬件(可选) | 显卡(GPU) | 用于高性能计算场景,加速并行计算任务 | 型号:NVIDIA Tesla/A100、AMD MI 系列,或消费级显卡(低负载场景) 应用:AI 训练 / 推理、大数据分析、图形渲染 |
常用名词
| 英文缩写 | 英文全称 | 中文名称 | 核心功能与说明 |
|---|---|---|---|
| IR | Instruction Register | 指令寄存器 | 存放当前正在执行的指令,其内容直接决定 CPU 当前要执行的操作类型与操作数来源 |
| PC | Program Counter | 程序计数器 | 存放下一条要执行的指令在存储器中的地址,CPU 取指后会自动递增(或跳转),以保证指令的顺序执行 |
| MAR | Memory Address Register | 存储器地址寄存器 | 存放欲访问的存储单元的地址,是 CPU 与主存之间的地址缓冲寄存器,其位数决定了 CPU 的寻址范围 |
| MDR | Memory Data Register | 存储器数据寄存器 | 存放CPU 与主存之间正在传送的数据,是数据缓冲寄存器;其位数等于存储字长,且为字节的整数倍 |
| SR | Source Register | 源寄存器 | 存放指令执行所需的源操作数,是运算的输入数据来源之一 |
| DR | Destination Register | 目的寄存器 | 存放指令执行后的结果数据,是运算结果的存储目标 |
| ALU | Arithmetic Logic Unit | 算术逻辑单元 | 计算机的运算核心,负责执行算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或等) |
| CU | Control Unit | 控制单元 | CPU 的指挥中心,根据 IR 中的指令内容,产生并发送控制信号,协调计算机各部件有序完成指令执行 |
| CM | Control Memory | 控制存储器 | 属于微程序控制器的组成部分,存放微程序(由微指令构成),用于实现指令的控制流程 |
| PSW | Program Status Word | 程序状态字 | 存放反映程序运行状态的标志位,常见标志有:进位标志 CF、零标志 ZF、符号标志 SF、溢出标志 OF 等,是中断处理、程序分支的判断依据 |
| A/B 选择器 | Input Selector A/B | 输入选择器 A/B | CPU 内部的数据选择部件,用于从多个数据源(如通用寄存器、主存读出数据)中选择一路数据送入 ALU 或其他寄存器 |
| Shifter | Shifter | 移位器 | 执行数据的移位操作,包括算术移位、逻辑移位、循环移位,常用于乘法、除法运算及位运算处理 |
| DB | Data Bus | 数据总线 | 计算机各部件之间传输数据信息的公共通路,其位数等于数据字长,决定了一次能传送的数据位数 |
| AB | Address Bus | 地址总线 | 传输存储单元地址或 I/O 设备地址的公共通路,其位数决定了系统的最大寻址能力(如 32 位地址总线支持最大 4GB 寻址) |
| CB | Control Bus | 控制总线 | 传输控制信号和时序信号的公共通路,包括 CPU 发出的控制命令(如读 / 写命令)和外部设备的状态反馈信号(如中断请求) |
| FT | Fetch Cycle | 取指周期 | CPU 指令执行的第一个周期,核心操作是:根据 PC 中的地址从主存取出指令,送入 IR,并更新 PC 的值 |
| ST | Source Cycle | 源周期(间址周期) | 用于获取有效地址的周期,若指令采用间接寻址方式,CPU 会在此周期根据指令中的形式地址,从主存取出操作数的有效地址 |
| DT | Destination Cycle | 目的周期(取操作数周期) | 用于获取操作数的周期,CPU 根据有效地址从主存或寄存器中取出操作数,送入源寄存器(SR) |
| ET | Execute Cycle | 执行周期 | 指令执行的核心周期,CU 发出控制信号,指挥 ALU 对操作数进行运算,或将数据写入目的寄存器(DR) |
| IT | Interrupt Cycle | 中断周期 | 处理中断请求的周期,核心操作是:保存当前程序的断点(PC 值)和 PSW,将 PC 指向中断服务程序的入口地址 |
| DMAT | DMA Cycle | DMA 周期 | 直接存储器访问周期,在 DMA 控制器控制下,主存与 I/O 设备直接传输数据,无需 CPU 干预,用于高速数据传输(如磁盘读写) |
数据传输率
CPU 主频(f)=外频 × 倍频系数; CPU 的时钟周期是(T=1/f); CPU 执行某种程序的时间 t=时钟周期数 m*时钟周期宽度 T
数据通路宽度:数据总线一次能并行传送的数据位数(bit)。 数据传输率(比特率)(带宽):指单位时间内信道的数据传输量。 数据总线每秒传送的数据量,也称为数据总线的带宽。 DTR(数据传输率)=D(数据传输量)/T(对应传输时间)=W(数据通路宽度)f(工作频率)(bps)
CPI(平均每条指令的时钟周期数),I/O 带宽指的是单位时间内传播的总数据量。
第二章 信息表示、运算
定点数
原码:原码就是符号位加上真值的绝对值,即用第一位表示符号 其余位表示值。 反码:正数的反码是其本身,负数的反码是在其原码的基础上符号位不变,其余各个位取反。 补码:正数的补码就是其本身,负数的补码是在其反码的基础上+1 移码:不管正负数,只要将其补码的符号位取反即可
- 正数补码移位规则:数符不变,空位补 0
- 负数补码移位规则:数符不变,左移空位补 0,右移空位补 1
为什么需要补码
计算机的算术逻辑单元(ALU)本质上只能直接执行加法运算,无法原生支持减法。
补码的设计基于模运算的数学思想,核心逻辑是: 在计算机中,模的大小由机器字长决定:对于 位二进制数,模为 ;例如 8 位二进制的模是 。
此时,负数的补码 = 模 - 该负数的绝对值,这样一来,a - b 就可以转化为 a + [补码(-b)],减法彻底变成加法。
原码一位乘法
进制转换
将 n 进制转换为十进制:由权展开,即将n进制数的每一位数字,乘以该位的权值(,下标从右往左、从0开始),最后累加所有结果。 二进制数: 按权展开计算: \begin{align*} 1011_2 &= 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 \\ &= 8 + 0 + 2 + 1 \\ &= \boldsymbol{11}_{10} \end{align*}将十进制转换为 n 进制:整数除基取余,小数乘基取整 1、整数部分:基数连除法(除n取余,逆序排列)
示例1:十进制 转二进制()
25 ÷ 2 = 12 余 1 (最低位)
12 ÷ 2 = 6 余 0
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1 (最高位)
逆序排列余数 → 示例2:十进制 转八进制()
100 ÷ 8 = 12 余 4 (最低位)
12 ÷ 8 = 1 余 4
1 ÷ 8 = 0 余 1 (最高位)
逆序排列余数 → 2、小数部分:基数连乘法(乘n取整,顺序排列,通常取有限位) 示例:十进制 转二进制()
0.625 × 2 = 1.25 取整数1 (最高位)
0.25 × 2 = 0.5 取整数0
0.5 × 2 = 1.0 取整数1 (最低位,小数部分为0,停止计算)
顺序排列整数 →
⭐浮点数表示
IEEE 754 浮点数转换 - 锤子在线工具 (toolhelper.cn)
第三章 指令系统

指令格式—地址码
指令格式:OP(操作码) + [A1(第一操作数地址)] + [A2(第二操作数地址)] + [A3(结果地址)]
减少指令中地址数目的办法是采用隐地址
| 指令类型 | 统一格式的实际表现(可选字段取舍) | 核心适配逻辑 |
|---|---|---|
| 三地址指令 | OP + A1 + A2 + A3(保留全部 3 个地址码字段) | 显式指定两个操作数地址和结果地址,无需隐含资源,适配复杂双操作数运算 |
| 二地址指令 | OP + A1 + A2(保留 A1、A2,省略 A3) | 隐含 “结果存入 A1”,A1 为目的操作数地址,A2 为源操作数地址,适配通用双操作数运算 |
| 单地址指令 | OP + A1(仅保留 A1,省略 A2、A3) | 若为单操作数指令:隐含 “结果存入 A1”;若为双操作数指令:隐含 “另一个操作数在 ACC”,适配单操作数运算或依赖累加器的双操作数运算 |
| 零地址指令 | OP(省略全部地址码字段) | 隐含操作数来源(ACC 或堆栈),或无需操作数,适配停机、空操作、堆栈运算等场景 |
⭐各常见指令寻址方式的特点和适用情况
| 寻址方式 | 核心特点 | 适用情况 | 访存次数 |
|---|---|---|---|
| 立即寻址 | 操作数直接在指令中,无需访存 / 访寄存器;操作数大小受指令长度限制 | 给寄存器 / 存储单元赋固定小数值(如初始化、设置常数),例:MOV R1, #5 | 0 次 |
| 主存直接寻址 | 指令给出主存有效地址,仅 1 次访存;寻址空间受限,地址不可变 | 访问主存固定地址的单个数据(如全局变量、硬件寄存器映射地址),例:ADD R1, [0x1000] | 1 次 |
| 寄存器直接寻址 | 操作数存于指定寄存器,无需访存;寄存器数量有限 | 频繁访问的中间数据(如循环变量、临时计算结果),例:ADD R1, R2 | 0 次 |
| 寄存器间接寻址 | 寄存器存主存有效地址,需 1 次访存;修改寄存器值可灵活访问不同主存地址 | 指针访问、动态地址数据的读取 / 写入,例:MOV R1, [R2] | 1 次 |
| 自减型寄存器间址 | 寄存器值先减 1,再作为有效地址访存;天然适配反向连续访问 | 堆栈出栈操作、反向遍历数组 / 缓冲区 | 1 次 |
| 自增型寄存器间址 | 先访存,再将寄存器值加 1;天然适配正向连续访问 | 堆栈压栈操作、正向遍历数组 / 字符串、数据块拷贝 | 1 次 |
| 堆栈寻址(SP) | 以 SP 为核心,遵循 LIFO 规则,栈顶自动浮动;无需手动计算地址 | 函数调用(保存返回地址 / 寄存器上下文)、临时数据压栈出栈、中断现场保护 | 1 次 |
| 变址寻址(X (R)) | 有效地址 = 形式地址(基准,固定) + 寄存器值(位移,可变) | 数组 / 结构体访问(如A[i])、表格 / 查找表索引访问 | 1 次 |
| 基址寻址 | 有效地址 = 寄存器值(基准,可变) + 形式地址(位移,固定) | 内存分段管理、多任务系统进程地址空间映射(不同进程基址不同) | 1 次 |
操作码
JMP
JMP R0;
FT0:M —→ IR,PC+1 —→ PC
ET0:R0 —→ PC 、MAR —— 转移地址
RST
RST(SP)+;
FT0:M —→ IR,PC+1 —→ PC
ET0:SP —→ MAR —— 栈顶地址
ET1:M —→ MDR —→ PC 、MAR —— 返回地址送PC,MAR
ET2:SP+1 —→ SP —— 修改栈顶
JSR 转子程序
//微指令序列
JSR(R2);
FT0:M —→ IR,PC+1 —→ PC
ST0:R2 —→ MAR
ST1:M —→ MDR —→ C (子程序入口地址)
ET0:SP-1 —→ SP 、MAR
ET1:PC —→ MDR
ET2:MDR —→ M (ET0-ET2:返回地址压栈)
ET3:C —→ PC 、MAR(子程序入口地址送PC、MAR)
第四章 CPU中央处理器
模型机数据通路结构
必须背下来的图!
CPU的工作过程就是从主存(或缓存)中读取指令,将指令放入指令寄存器(IR)。然后对指令译码。把指令分解成一系列的微操作,再发出各种相应的控制命令,控制各功能部件执行相关的操作,从而完成一条指令的执行,实现对应的功能。

CPU组成部分
- 运算器:三级,输入选择器 / 锁存器 —>ALU—> 移位器
- 寄存器组:三组,用于处理、控制、作用于主存接口的寄存器
- 总线:四组,CPU 内总线、系统总线、部件间总线,外总线
- 控制器:组合逻辑控制器 / 微程序控制器
- 时序系统:一个脉冲源、一组计数分频逻辑
⭐一条指令在 CPU 的执行过程
指令:即机器指令,机器指令是CPU能直接执行的最基本的操作命令。是计算机运行的“原子操作”
微操作:一条机器指令可以分解为多个微操作,每个微操作对应于对 CPU 中某个部件的具体控制行为(如寄存器传送、加法器运算、存储器访问等),这些控制行为本质上就是对电路中控制信号的“开”与“关”的操作。
微命令:微命令就是控制单元发出的控制信号。为了微操作在硬件中发生,需要通过控制信号(也就是微命令)来控制硬件组件的行为。
微指令:是控制单元CU发出的一组微命令的组合

流程:取指周期FT=>源周期ST=>目的周期DT=>执行周期ET fetch取指,source源,destination目的,exe执行
| 周期 | 核心任务 | 关键输入 | 关键输出 | 是否必需 |
|---|---|---|---|---|
| FT | 取指令 | PC(当前指令地址) | IR(指令代码), PC+1 | 是 |
| ST | 取源操作数 | IR(源寻址字段) | SRC(源操作数值) | 否(依赖指令) |
| DT | 确定目的位置 | IR(目的寻址字段) | 目的地址/寄存器标识 | 否(依赖指令) |
| ET | 执行核心操作 | SRC, 寄存器等 | 结果,新PC,状态标志 | 是 |
相关微操作与微指令
| 周期 | 微操作 | 微指令(并行微命令合并,通路无冲突) | 寻址方式 |
|---|---|---|---|
| FT | M->IR | M->DB->IR | 隐含程序计数器寻址 |
| (PC)+1 ->PC | PC->A->ALU (+1)-> 移位器 ->CPU 内总线 ->PC | 隐含程序计数器寻址 | |
| ST 与 DT | Ri->MAR | Ri->A/B->ALU-> 移位器 ->CPU 内总线 ->MAR | 寄存器间接寻址 |
| Ri-1 ->MAR | Ri->A->ALU (-1)-> 移位器 ->CPU 内总线 ->MAR | 自减型寄存器间址寻址 | |
| Ri -> MAR,Ri+1->MAR | Ri->A->ALU-> 移位器 ->CPU 内总线 ->MAR;Ri->B->ALU (+1)-> 移位器 ->CPU 内总线 ->MAR(双端口并行) | 自增型寄存器间址寻址 | |
| Ri->MAR,Ri+1->Ri,M->MDR->C,C->MAR | Ri->A->ALU-> 移位器 ->CPU 内总线 ->MAR;Ri->B->ALU (+1)-> 移位器 ->CPU 内总线 ->Ri;M->DB->MDR->C-> 移位器 ->CPU 内总线 ->MAR | 自增型双间址 | |
| PC->MAR,M->MDR->C,PC+1->PC,C+R->MAR | PC->A->ALU-> 移位器 ->CPU 内总线 ->MAR;M->DB->MDR->C;PC->B->ALU (+1)-> 移位器 ->CPU 内总线 ->PC;C->A,B->R->ALU (+)-> 移位器 ->CPU 内总线 ->MAR | 变址寻址 | |
| ET | Ri->Rj | Ri->A/B->ALU-> 移位器 ->CPU 内总线 ->Rj | |
| Ri->MDR,MDR->M | Ri->A/B->ALU-> 移位器 ->CPU 内总线 ->MDR;MDR->DB->M(读 / 写控制信号同步) | ||
| M1->MDR->C,C->MDR,MDR->M2 | M1->DB->MDR->C;C->MDR;MDR->DB->M2(分 2 拍:先读 M1 存 C,再写 M2,避免 MDR 冲突) |
指令流程
三级时序体系,基础时序单位是:工作周期、脉冲、节拍
三大类型微命令
微命令按功能分为三类,分别对应 CPU 内部操作、主存访问、时序切换。
| 微命令类别 | 具体微命令 | 功能描述 |
|---|---|---|
| CPU 内部数据通路操作 | 选择寄存器(AI) | Ri→A:从寄存器 Ri 选择数据送入 A 端(Ri 可选:R0~R3、C、D、PC、SP) |
| 选择寄存器(BI) | Rj→B:从寄存器 Rj 选择数据送入 B 端(Rj 可选:R0~R3、C、D、MDR、PSW) | |
| ALU 功能选择 | S0~S3(运算功能控制)、C0(初始进位)、M(算术 / 逻辑运算切换) | |
| 移位器功能选择 | DM(直传)、SL(左移)、SR(右移) | |
| 结果分配(脉冲型) | CPR0~CPR3、CPC、CPD、CPMAR、CPPC、CPSP、CPMDR、CPPSW:脉冲上升沿将内总线数据打入对应寄存器 | |
| 访问主存 | 读主存相关 | EMAR:地址使能(MAR 到数据总线的三态门打开) |
| R:读存储器控制信号 | ||
| SMDR:MDR 置入(数据经数据总线存入 MDR) | ||
| SIR:IR 置入(取指令时,指令经数据总线存入 IR) | ||
| 写主存相关 | EMAR:地址使能 | |
| W:写存储器控制信号 | ||
| EMDR:与 W 配合,控制 MDR 数据写入主存 | ||
| 时序切换 | ST、DT、ET | 控制指令流程在取指、取数、执行周期间切换,依赖寻址方式 |
指令流程中的操作类型归纳
(一)CPU 内数据通路操作 1、Ri OP Rj → Rk(寄存器间运算,结果存入目标寄存器):Ri→A(AI 选择 Ri 送 A 端)→ Rj→B(BI 选择 Rj 送 B 端)→ A OP B(ALU 按 S0~S3、M 控制执行运算)→ DM(移位器直传,无移位需求)→ CPRk(脉冲打入 Rk) 2、Ri→Rj(寄存器间数据传送):Ri→A(AI 选择 Ri 送 A 端)→ 传 A(数据经内总线传递)→ DM(移位器直传)→ CPRj(脉冲打入 Rj) (二)读存储器操作 1、M→MDR→C(主存数据读入 MDR,再传入寄存器 C):EMAR(地址使能,MAR 送地址到总线)→ R(读主存)→ SMDR(数据存入 MDR)→ MDR→B(BI 选择 MDR 送 B 端)→ 传 B(数据经内总线传递)→ DM(移位器直传)→ CPC(脉冲打入 C) 2、M→IR(主存取指令,存入指令寄存器 IR):EMAR(地址使能,MAR 送指令地址到总线)→ R(读主存)→ SIR(指令经数据总线存入 IR) (三)写存储器操作 MDR→M(MDR 中数据写入主存):EMAR(地址使能,MAR 送目标地址到总线)→ W(写主存控制)→ EMDR(配合 W,MDR 数据经总线写入主存)
计算机自动存取指令的两种方式
(1)指令和数据分开存放(哈佛结构) (2)程序计数器 PC ,PU 取完当前指令后,PC 会自动递增(或根据跳转指令修改),指引下一条指令的存取。
微程序
微周期:读取一条微指令并执行相应的一步操作所需的时间,称为一个微指令周期(简称微周期,µI),通常是一个时钟周期; 工作脉冲用于同步定时
逻辑组成
1->FT,CPFT:进入取指周期
1->ST,CPST:进入源周期
1->DT,CPDT:进入目的周期
1->ET,CPET:进入执行周期
工作过程

第五章 存储系统

三种存储介质
| 存储介质类型 | 核心应用场景 | 主要特性 | 典型实例 |
|---|---|---|---|
| 半导体 | 主存(RAM)、高速缓存(Cache) | 读写速度快;断电数据丢失(易失性) | DDR4/DDR5 内存、L1/L2/L3 缓存 |
| 磁表面 | 大容量外存 | 容量大、速度慢;非破坏性读出;断电数据可长期保存(非易失性) | 磁带、磁卡、软盘、机械硬盘(HDD) |
| 光盘 | 大容量外存 | 容量大、速度慢;非破坏性读出;断电数据可长期保存(非易失性) |
三种访问方式:随机和顺序、直接
| 访问方式 | 英文名称 | 核心访问逻辑 | 访问时间特点 | 典型实例 |
|---|---|---|---|---|
| 随机访问 | Random Access Memory(RAM)/ Read-Only Memory(ROM) | 直接通过地址访问任意存储单元,无需按顺序查找 | 与数据位置无关,访问速度快 | 主存(DDR4/DDR5)、Cache、ROM |
| 顺序访问 | Sequential Access Memory | 需从存储介质起始位置开始,按顺序查找目标数据 | 与数据位置高度相关,位置越靠后访问时间越长 | 磁带 |
| 直接访问(DAM | Direct Access Memory | 先直接指向目标数据所在的小区域,再在该区域内顺序查找 | 与数据位置相关(介于随机和顺序之间) | 硬盘(HDD)、光盘 |
访存的三个速度指标
1、存取时间(访问时间,TA):启动读/写操作到完成该操作所需时间; 2、存取周期(TM):连续两次独立访存所需的最小时间间隔;通常 TM >TA 3、数据传输率(DTR,带宽):单位时间内对存储器读\写的数据量(KB/s 或 MB/s)
顺序访问:平均等待时间(ms) 数据传输率(MB/s) 直接访问: 平均定位(平均寻道)时间(ms) 平均等待(平均旋转)时间(ms) 数据传输率(MB/s)
直接访存过程
主要是机械硬盘。
- 定位(寻道)
- 操作:磁头臂径向移动,将读写头定位到目标数据所在的磁道。
- 关键指标:平均寻道时间(几ms)。
- 等待(旋转)
- 操作:盘片旋转,将目标扇区转到磁头正下方。
- 关键指标:平均旋转延迟(转速决定,如7200RPM约4.17ms)。
- 读/写(传输)
- 操作:进行电磁感应(读)或磁化(写),数据在盘面与缓存间传输。
- 关键指标:传输时间(数据量/内部传输率)。
存储原理
静态 MOS 存储元与芯片SRAM
核心:由MOS管构成的触发器(如六管触发器)存储信息,依靠触发器稳态保持0/1,无需刷新。 特点:读写速度快、功耗较高、集成度较低;适用于高速缓存(Cache)等场景
动态 MOS 存储元与存储芯片DRAM
核心:利用MOS管栅极电容的电荷存储信息(电容充放电表示0/1)。 特点:集成度高、功耗低、成本低;但电容会漏电,需定期刷新维持信息,读写速度慢于SRAM;适用于主存(内存)等大容量存储场景。
动态刷新
①集中刷新:集中一段时间暂停读写,逐行刷新(优点:控制简单;缺点:存在死时间); ②分散刷新:读写周期中穿插一行刷新(优点:无死时间;缺点:读写速度下降); ③异步刷新:结合前两者,按刷新周期定时刷新,不占用整块读写时间;
⭐刷新和重写的区别
刷新:动态存储器, 需定期补充电荷以保持原来信息,由硬件自动完成 重写:破坏性读出后重写, 以恢复原来的信息
半导体存储器逻辑设计
- 芯片选择:多芯片组构大容量存储器时,通过片选信号筛选当前工作芯片;
- 地址分配:将CPU地址线按“片内地址+片选地址”拆分,片内地址定位芯片内存储单元,片选地址定位目标芯片;
- 片选逻辑:生成片选信号的电路,核心是地址译码+控制信号(如读写信号、访存控制);
- 片选译码方式:①门电路译码:适用于少量芯片,通过与非门等组合逻辑生成片选;②译码器译码:适用于多芯片,用3-8译码器等芯片,输入片选地址,输出唯一有效片选信号;
- 连接框图:CPU地址线→地址译码器(分片内/片选)→存储器芯片;CPU数据线→芯片I/O口;控制信号(RD/WR、MREQ)→芯片控制端。
第六章 I/O 系统
总线
总线是计算机系统中各部件之间传输信息的公共通信干线,是连接多个功能部件的共享传输介质。 作用:简化系统结构,减少部件间连接线路,降低成本;提高系统扩展性,便于新增或替换部件;实现各部件间的协调通信,保障数据、控制信号等有序传输。
分类
1、按功能层次划分 片内总线:集成在芯片内部,连接芯片内各功能单元(如CPU内的ALU、寄存器、控制器),传输距离最短,速度最快。 片级总线:连接同一芯片载体上的不同芯片(如CPU与芯片组、I/O接口芯片),如PCIe通道、ISA总线的片间连接部分。 板级总线:连接同一电路板上的不同模块或部件(如主板上的CPU插槽、内存插槽、扩展槽之间的传输线路),是板卡内部的核心传输链路。 通信总线:连接计算机与外部设备(如打印机、U盘)或不同计算机之间的总线,遵循通用通信协议(如USB、HDMI、以太网)。
2、按时序控制方式划分 同步总线:时钟信号统一同步,传输时序固定,控制简单。 异步总线:无统一时钟,依赖握手信号协调,含全握手(双向应答,可靠性高)、半握手(单向应答,效率较高)两种方式。 扩展同步总线:基础时序同步,支持时序扩展适配不同速度部件。 注意:时钟周期是时钟信号的最小时间单位,是同步总线的时序基准;总线周期是完成一次总线传输(如地址传输、数据读写)所需的时钟周期数;工作周期是设备完成一次完整操作(如CPU读写内存)包含的总线周期总和。
3、按数据传送格式划分 并行总线:多线路并行传输多位数据,速度快、成本高、抗干扰弱,适短距离。 串行总线:单/少数线路逐位传输,线路简、成本低、抗干扰强,适长距离。 按功能层次划分 片内、片级、板级、通信
总线仲裁
当多个主设备同时请求使用总线时,需要特定机制分配总线使用权,避免冲突。 集中式仲裁 链式查询:通过优先级链分配总线,离仲裁器最近的设备优先级最高。优点是逻辑简单、成本低;缺点是优先级固定,某设备故障可能阻塞后续设备。 计数器定时查询:仲裁器通过计数器生成查询信号,依次询问各设备是否需要总线。优点是优先级可灵活调整;缺点是计数器位数决定设备数量,控制逻辑较链式复杂。 独立请求:每个主设备都有独立的总线请求和应答线路。优点是响应速度快,优先级调整灵活;缺点是线路数量多,成本高。 分布式仲裁 无集中仲裁器,各主设备通过自身的仲裁逻辑和共享线路协商总线使用权(如通过优先级编码竞争)。优点是可靠性高(无单点故障),扩展性好;缺点是仲裁逻辑复杂,协商延迟可能较大。
接口
接口的主要功能 1. 寻址:接收CPU送来的地址码/选择接口中的寄存器供CPU访问 2. 数据缓冲:实现主机与外设的速度匹配/缓冲深度与传送的数据量有关 3. 预处理:串-并格式转换(串口)/ 数据通路宽度转换(并口) 4. 控制功能:传送控制命令与状态信息,实现I/O传送控制。 接口分类
| 分类依据 | 接口类型 | 数据传送 / 控制特点 |
|---|---|---|
| 按数据传送格式 | 并行接口 | 接口与系统总线、接口与外设均为并行传送,数据各位同时传输,适合设备本身并行工作、距主机较近的场合 |
| 串行接口 | 接口与系统总线并行传送,接口与外设串行传送,数据逐位分时传输,适合设备本身串行工作、距主机较远、需减少传送线的情况 | |
| 按时序控制方式 | 同步接口 | 接口与系统总线的信息传送由统一时序信号控制 |
| 异步接口 | 接口与系统总线的信息传送采用异步应答方式 | |
| 按 I/O 传送控制方式 | 直接程序传送接口 | 由 CPU 通过程序直接控制数据的输入输出 |
| 中断接口 | 采用中断机制,外设就绪时向 CPU 发中断请求,CPU 响应后处理数据传输 | |
| DMA 接口 | 直接存储器访问,不经过 CPU,外设与内存直接进行数据传输 |
IO 端口编址方式
统一编址
外设结构中的I/O寄存器(即I/O端口)与主存单元一样看待,每个端口占用一个存储单元的地址,将主存的一部分划出来用作I/O地址空间。 优点:可以利用存储器的寻址方式来寻址I/O端口。 缺点:I/O端口占用了存储空间,而且进行I/O操作时,因地址编码较长,将导致速度较慢。
独立编址/IO端口
独立编址又称为单独编址或IO端口,I/O地址与存储地址分开独立编址,I/O端口地址不占用存储空间的地址范文,这样,在系统中就存在了另一种与存储地址无关的I/O地址,CPU也必须具有专用于输入输出操作的指令(IN、OUT等)和控制逻辑。 优点:不占用内存空间;使用I/O指令,程序清晰,很容易看出是I/O操作还是存储器操作;译码电路比较简单(因为I/O端口的地址空间一般比较小,所用地址线也比较少)。 缺点:只能用专门的I/O指令,访问端口的方法不如访问存储器的方法多。 不过Intel x86平台普通使用了名为内存映射(MMIO)的技术,该技术是PCI规范的一部分,IO设备端口被映射到内存空间,映射后,CPU访问I/O端口就如同访问内存一样。
CPU与外设的三种数据传输方式
| 传送方式 | CPU利用率 | 传送速度 | 硬件复杂度 | 适用场景 |
|---|---|---|---|---|
| 程序查询 | 极低 | 慢 | 简单 | 低速、少量数据,外设种类少 |
| 中断方式 | 高 | 中 | 中等(需中断控制器) | 中低速外设,需并行执行其他程序 |
| DMA方式 | 极高 | 极快 | 复杂(需DMA控制器) | 高速批量数据传送(如磁盘、通信) |
直接程序传送方式及接口
无条件直接程序传送方式
原理:假设外设始终处于就绪状态,CPU无需查询外设状态,直接执行I/O指令完成数据传送(仅适用于简单、状态固定的外设,如LED显示)。 优点:控制简单、程序编写容易,无需额外状态检测电路。 缺点:适应性差,仅适用于外设就绪状态已知的场景;若外设未就绪,会导致数据传送错误。
程序查询传送方式(条件传送)
原理:CPU先查询外设状态,仅当外设就绪(输入设备数据准备好/输出设备空闲)时,才执行I/O指令传送数据;未就绪则循环查询,直至外设就绪。 核心流程:查询状态 → 就绪则传送数据 → 未就绪则继续查询。 优点:控制逻辑简单,无需复杂硬件支持,适用于外设种类少、传送速率低的场景。 缺点:CPU利用率极低,大量时间用于循环查询,无法并行执行其他程序;不适用于高速外设。
中断方式及接口
中断概念:外设(或内部事件)主动向CPU发出请求,使CPU暂停当前执行的程序,转去执行对应服务程序,完成后再返回原程序继续执行的过程。 随机性特点:中断请求的产生时间不确定,取决于外设工作状态或内部事件触发时机。 中断实质:CPU执行程序的切换(从用户程序切换到中断服务程序,再切换回用户程序)。
中断分类
- 硬件中断(硬件请求信号)与软中断(软中断指令):硬件中断由外设通过硬件线路发请求;软中断由CPU执行特定指令(如INT指令)主动触发,用于系统调用等。
- 内中断(主机内部)与外中断(主机外部):内中断源于CPU内部(如除法溢出、断点陷阱);外中断源于CPU外部外设(如键盘、磁盘)。
- 可屏蔽中断(可通过屏蔽字屏蔽该类请求)与非屏蔽中断:可屏蔽中断受IMR控制,屏蔽后不响应;非屏蔽中断(如电源故障)不可屏蔽,优先级最高,CPU必须响应。
- 向量中断(由硬件提供服务程序入口地址)与非向量中断(由软件提供服务程序入口地址):核心差异在于入口地址获取方式的硬件/软件依赖。
优先权与屏蔽
IRR(Interrupt Request Register):中断请求寄存器,用于记录当前系统中的中断请求。它是一个位向量,每个位对应一个中断源,当某个中断源产生中断请求时,对应的位会被置位。 IMR(Interrupt Mask Register):中断屏蔽寄存器,用于屏蔽或允许特定中断源的中断请求。它是一个位向量,每个位对应一个中断源,当某个位被置位时,表示对应的中断源被屏蔽,即不会引发中断。 ISR(Interrupt Service Register):中断服务寄存器,用于记录当前正在被处理的中断。它指示当前正在执行的中断处理程序或服务例程。 优先级管理:多个中断同时请求时,按预设优先级排序,优先响应高优先级中断。 屏蔽同级及低优先级中断的方式(屏蔽字):通过设置IMR屏蔽字,使当前执行的高优先级中断服务程序期间,不响应同级和低优先级中断,避免程序混乱
中断接口组成
- 中断请求触发器:存储外设的中断请求信号,保持请求有效直至CPU响应。
- 中断屏蔽触发器:与IMR配合,控制是否允许该中断源发请求。
- 中断优先级排队电路:对多个同时到来的中断请求排序,选出最高优先级请求。
- 数据缓冲器:暂存CPU与外设之间传送的数据(解决CPU与外设速度差异)。
- 状态寄存器:存储外设状态(如就绪/忙),供CPU查询或中断服务程序读取。
服务程序入口地址获取方式
向量中断
将各个中断服务程序的入口地址(或包括状态字)组织成中断向量表(通常存于内存低地址区);响应中断时,由硬件直接产生对应于中断源的向量地址;据此访问中断向量表,从中读取服务程序入口地址,由此转向服务程序的执行。这些工作在中断周期IT中由硬件直接实现(不需编写程序实现)。 优点:入口地址获取速度快,效率高。
非向量中断
CPU响应中断时只产生一个固定的地址,由此读取中断查询程序的入口地址,从而转向查询程序,通过软件查询(依次检测各中断源状态),确定被优先批准的中断源,然后分支进入相应的中断服务程序。
⭐外中断的全流程
- 外设准备就绪后,通过接口发出中断请求,置位IRR对应位;
- 中断控制器汇集中断请求,通过优先级排队电路判优,选出最高优先级请求;
- 若该请求未被屏蔽(IMR对应位清0),中断控制器向CPU发INT(中断请求)信号;
- CPU完成当前指令后,检测到INT信号,若允许中断(开中断状态),则进入中断周期(IT);
- 中断周期内,CPU完成:关中断(避免再次被打断)、保存断点(当前程序计数器PC值入栈)、获取中断服务程序入口地址;
- 转至中断服务程序执行,完成数据输入/输出(或事件处理);
- 服务程序末尾执行开中断、返回指令(恢复断点PC值),返回原程序继续执行。
DMA 方式及接口
DMA(Direct Memory Access,直接存储器访问)核心补充:依靠硬件(DMA控制器)直接在主存与外围设备之间进行简单、批量、快速的数据传送,传送过程中不需要CPU的干预。 实质:程序暂停(CPU暂停执行用户程序,总线控制权交给DMA控制器,传送完成后归还)。 特点:随机性(请求产生时间不确定)、高速批量传送、CPU干预少。
DMA传输的三个阶段
- 初始化阶段由CPU主导,负责设置DMA控制器参数并启动DMA控制器与外设,让外设准备数据;
- 数据传送阶段由DMA控制器主导,接收外设请求后向CPU申请总线,获权后控制总线完成主存与外设的数据传送,直至任务结束;
- 结束阶段由CPU主导,响应DMA中断后执行服务程序完成后续处理,并收回总线控制权恢复正常执行。