计算机组成与原理v2

计算机系统由哪两部分组成?硬件 & 软件

  • 硬件:看得见、摸得着的物理设备,如主机、显示器、键盘、鼠标等。

  • 软件:运行在硬件上的程序和数据,分为系统软件(操作系统等)和应用软件(办公软件、浏览器等)。

冯・诺依曼体系结构五大部件

  1. 运算器:负责算术运算和逻辑运算

  2. 控制器:指挥协调各部件工作

  3. 存储器:存放数据和指令(内存、外存)

  4. 输入设备:向计算机输入信息(键盘、鼠标等)

  5. 输出设备:向外输出结果(显示器、打印机等)

冯・诺依曼思想核心:

  1. 存储程序(程序和数据存在存储器中)

  2. 二进制(数据与指令都用二进制表示)

再加上你前面记的五大部件,这部分考点就齐了。

计算机主要性能指标

  1. **主频(时钟频率)**CPU 每秒的时钟脉冲数,单位 Hz、GHz。主频越高,通常速度越快。

  2. CPI(Clock Cycles Per Instruction) 执行一条指令需要的时钟周期数。CPI 越小,效率越高。

  3. IPC(Instructions Per Cycle) 一个时钟周期能执行多少条指令。IPC = 1 / CPI(理想情况),IPC 越大性能越好。

  4. MIPS(Million Instructions Per Second) 每秒执行百万条指令数。用来衡量指令执行速度。

  5. 吞吐量(Throughput) 单位时间内系统完成的总任务数 / 总数据量。侧重 "整体处理能力"。

  6. 响应时间(Response Time) 从提交任务到得到结果的总时间。侧重 "单个任务快慢"。

快速记忆公式

  • 执行速度 ≈ 主频 / CPI

  • 执行速度 ≈ 主频 × IPC

计算机字长

计算机字长 :CPU 一次能并行处理的二进制数据位数(如 8 位、16 位、32 位、64 位)。

决定了什么

  1. 运算精度字长越长,能表示的数值范围越大、计算精度越高。

  2. 寻址能力决定最大可访问内存空间(如 32 位最多约 4GB,64 位极大)。

  3. 指令处理能力一次能处理的数据 / 指令长度更长,整体性能更强。

  4. 数据传输效率总线宽度、寄存器大小通常与字长一致,传输更快。

简单记:字长越长,精度越高、寻址越大、性能越强

系列机

系列机 :指同一厂家 生产的、体系结构基本相同、但性能和价格不同的一系列计算机。特点:

  • 指令系统、数据格式、I/O 系统等保持向后兼容

  • 低档机程序可在高档机上直接运行

  • 便于软件移植、保护用户投资

典型:IBM 360/370 系列、x86 系列机

兼容机

兼容机 :指不同厂家 生产的、与某系列机指令系统 / 体系结构兼容的计算机。特点:

  • 硬件结构不同,但软件可通用

  • 实现软件兼容,程序不用修改就能运行

简单一句话区分:

  • 系列机:同厂、同一系列、高低档兼容

  • 兼容机:不同厂家、模仿架构、软件通用

原码、反码、补码

  1. 基本定义
  • 原码 最高位为符号位 :0 正,1 负数值位为真值绝对值的二进制。

  • 反码 正数:反码 = 原码负数:符号位不变,数值位按位取反

  • 补码正数:补码 = 原码负数:反码 + 1(符号位不变)。

  1. 统一规律
  • 正数:原码 = 反码 = 补码

  • 负数:三者都不相同

  1. 关键区别

  2. 表示范围 补码能多表示一个最小负数,没有 -0 问题。

  3. 0 的表示

    • 原码、反码:+0 和 -0 是两种编码

    • 补码:只有一个 0

  4. 运算方式

    • 原码:加减要单独判断符号,复杂

    • 补码:符号位直接参与运算,减法可转加法,硬件最简单

  5. 计算机实际使用 现代计算机中,整数一律用补码存储和运算

  6. 一句话速记

正数三码相同,负数原码取反得反码,反码加一得补码 ;计算机只认补码

为什么计算机用补码

计算机使用补码 ,核心就一句话:统一加减法,简化硬件,消除负零,多表示一个数。

展开成考试标准回答:

  1. 简化运算硬件 减法可以直接转换成加法(减去一个数 = 加上它的补码),CPU 不需要单独设计减法电路,只用加法器就能完成加减运算,硬件更简单、成本更低、速度更快。

  2. 符号位直接参与运算补码的符号位和数值位一起运算,不用单独判断正负,规则统一。

  3. **只有一个 0,没有 "负零"**原码、反码都有 +0 和 -0 两种表示,容易产生歧义;补码中 0 只有唯一编码,逻辑更严谨。

  4. 表示范围更大 同样位数下,补码能多表示一个最小负数,充分利用编码空间。

极简背诵版:

  • 减法变加法,硬件简单

  • 符号位直接运算

  • 只有一个 0,无二义性

  • 表示范围更大

定点数 vs 浮点数

一、定点数

  • 定义 :小数点固定在某个位置不变(通常在符号位后,或最低位后)。

  • 表示:整数、纯小数。

  • 特点

    1. 结构简单,运算快

    2. 表示范围小,精度固定

    3. 容易溢出

二、浮点数

  • 定义 :小数点位置不固定 ,用 阶码 + 尾数 表示(类似科学计数法)。

  • 表示:实数(小数、很大 / 很小的数)。

  • 特点

    1. 表示范围极大

    2. 精度可灵活分布

    3. 运算复杂,速度较慢

核心区别(一句话记)

  1. 小数点位置:定点固定,浮点浮动

  2. 表示范围:定点小,浮点大

  3. 运算速度:定点快,浮点慢

  4. 精度:定点均匀,浮点相对精度高

  5. 硬件:定点简单,浮点需要专门浮点运算单元(FPU)

典型用途

  • 定点:嵌入式、控制类、整数运算

  • 浮点:科学计算、图形、音频视频、大数据计算

IEEE 754 单精度浮点数格式

IEEE 754 ** 单精度浮点数(float)** 格式,一共 32 位,结构固定:

  1. 位数分布
  • 符号位 S:1 位

    • 0 表示正数,1 表示负数
  • 阶码 E:8 位

    • 采用偏移值 127 的移码表示
  • 尾数 M:23 位

    • 隐含一个整数位 1,实际有效位数是 24 位

格式:符号位 (1) + 阶码 (8) + 尾数 (23)

  1. 数值公式

V=(−1)S×(1.M)×2E−127

  • 1.M:尾数部分,前面隐含 1

  • E−127:真实阶码(减去偏移量)

  1. 考试常考要点
  • 总长度:32 位

  • 偏移量:127

  • 尾数:隐含前导 1

  • 可表示范围大,但精度有限

大小端模式

一、定义

多字节数据在内存中存放顺序不同,分为两种:

  1. 大端模式(Big-Endian) 数据的高字节存放在低地址,低字节存放在高地址。→ 符合人类阅读习惯。

  2. 小端模式(Little-Endian) 数据的低字节存放在低地址,高字节存放在高地址。→ x86、ARM 默认常用。

口诀:高存低 → 大端;低存低 → 小端

二、如何判断(编程判断法)

思路:用一个多字节整数,看它第一个字节是什么。


复制代码
int a = 0x12345678;
char *p = (char *)&a;

if (*p == 0x78)  小端
if (*p == 0x12)  大端

一句话判断:

取整数首字节,等于低字节则小端,高字节则大端

溢出判断方法

一、进位判断法(单符号位)

规则:符号位进位 Cs​ ⊕ 最高数值位进位 C1​ = 1 时,溢出

  • 结果为 1 → 溢出

  • 结果为 0 → 无溢出

口诀:符号位进位与最高位进位不同,则溢出

二、双符号位法(变形补码)

两位表示符号:00 正,11 负

  • 结果符号位为 01 → 正溢出

  • 结果符号位为 10 → 负溢出

  • 结果符号位为 00 / 11 → 无溢出

口诀:双符号位相同不溢出,不同则溢出01 上溢,10 下溢

三、简单记法

  • 进位法:异或为 1 溢出

  • 双符号位:01 正溢、10 负溢

奇偶校验、海明码、CRC 校验

一、奇偶校验

  1. 原理 在数据后加一位校验位,使整个码字中1 的个数为奇数(奇校验)或偶数(偶校验)

  2. 特点

    • 只能检测奇数位错误,不能定位错误

    • 不能纠错

    • 实现简单、开销小

二、海明码

  1. 原理 在数据位中插入多个校验位,利用奇偶分组校验 ,使每一位出错都产生唯一的校验码组合,从而检错并纠错

  2. 核心公式校验位位数 k 满足:2k≥n+k+1

  3. 特点

    • 检测并纠正一位错误

    • 能检测两位错误

    • 适合近距离、低错误率场景

三、CRC 循环冗余校验

  1. 原理 基于模 2 除法 ,用数据除以生成多项式,得到余数作为校验码附加在数据后。接收端用同样多项式相除,余数为 0 则正确。

  2. 特点

    • 检错能力极强

    • 硬件实现简单、速度快

    • 只能检错,不能纠错

    • 广泛用于网络、磁盘、通信传输

一句话速记

  • 奇偶校验:查奇数位错,不纠错

  • 海明码:一位纠错、两位检错

  • CRC:强检错,不纠错,通信常用

加法器 & 超前进位加法器

一、普通加法器(串行进位加法器)

  1. 结构 由多个全加器串联而成,低位的进位输出接到高位的进位输入。

  2. 原理 每一位相加必须等低位进位到来才能计算,进位逐位传递。

  3. 缺点

    • 进位传播延迟长

    • 位数越多,速度越慢

    • 总延迟与位数成正比

二、超前进位加法器(CLA)

  1. 核心思想 不等待低位进位逐级传递,提前根据输入 A、B 直接算出各位的进位。

  2. 关键定义

    • 进位产生函数:Gi​=Ai​⋅Bi​

    • 进位传递函数:Pi​=Ai​⊕Bi​

    • 进位公式:Ci+1​=Gi​+Pi​⋅Ci​

  3. 原理 利用逻辑电路同时计算所有进位,各位加法几乎并行完成。

  4. 优点

    • 运算速度极快

    • 延迟与位数无关

    • 适合高速运算

一句话总结

  • 串行进位:进位逐级传,慢、简单

  • 超前进位:提前算所有进位,并行产生,快、电路复杂

寄存器 → Cache → 主存 → 辅存

从上到下特点

  • 速度:越来越慢

  • 容量:越来越大

  • 成本:越来越低

  • CPU 访问距离:越来越远

简单对应

  • 寄存器:CPU 内部,最快

  • Cache:高速缓存,缓解 CPU 和主存速度差

  • 主存(内存):DRAM,程序运行时存放地

  • 辅存(外存):硬盘、U 盘等,掉电不丢数据

设计目的

匹配 CPU 速度,用最少成本实现大容量 + 高速度 也就是常说的:速度、容量、价格的折中。

局部性原理

程序执行时呈现出访问局部性,是 Cache、虚拟内存等设计的理论基础。

  1. 时间局部性(时间局部性)
  • 原理 :被访问过的信息在不久的将来很可能再次被访问

  • 典型表现:循环、函数反复调用、变量重复使用。

  • 对应优化:Cache 缓存最近访问数据。

  1. 空间局部性(空间局部性)
  • 原理 :被访问过的信息其相邻地址的信息也很可能被访问

  • 典型表现:数组遍历、顺序执行指令、连续内存访问。

  • 对应优化:Cache 按块 / 行加载,一次读一片。

一句话速记

  • 时间局部性:刚用过,还会用

  • 空间局部性:附近的,也会用

Cache 作用、原理、基本结构

一、Cache 作用

  • 解决 CPU 与主存速度不匹配 问题

  • 缓存主存中近期频繁使用的指令和数据

  • 提高 CPU 访存速度,降低平均访存时间

  • 对程序员透明

二、Cache 工作原理

基于局部性原理

  1. CPU 访问主存时,将数据整块读入 Cache

  2. 后续访问先查 Cache,命中则直接读取

  3. 未命中再访问主存,并更新 Cache

核心目标:提高命中率,减少访问主存次数

三、Cache 基本结构

  1. 存储体存放从主存复制来的数据块

  2. 标记存储器(Tag) 记录每个 Cache 块对应的主存块地址

  3. **有效位(Valid Bit)**标记该 Cache 行数据是否有效

  4. 替换 / 控制逻辑处理缺失、地址映射、块替换(FIFO、LRU 等)

一句话速记

Cache 靠局部性 缓存数据,用高速小容量存储器,让 CPU 更快取数。

Cache 三种映射方式

  1. 直接映射
  • 规则 :主存块 → 只能放到 Cache 中唯一固定位置 公式:Cache行号 = 主存块号 mod Cache总行数

  • 优点:硬件简单、成本低、速度快

  • 缺点:冲突率高,容易颠簸(抖动)

  1. 全相联映射
  • 规则 :主存块 → 可放到 Cache 任意一行

  • 优点:冲突率最低,命中率最高

  • 缺点:比较电路复杂、成本高、速度慢

  1. 组相联映射
  • 规则 :先分组,组内全相联公式:组号 = 主存块号 mod 组数

  • 优点 :折中直接与全相联,冲突低、速度快

  • 缺点:电路比直接映射复杂

一句话速记

  • 直接映射:位置固定,简单但冲突多

  • 全相联:位置任意,命中率高但复杂

  • 组相联:先分组再任意,综合最优(最常用)

Cache 替换算法

  1. FIFO(先进先出)
  • 原理:谁先调入 Cache,就先淘汰谁。

  • 特点:实现简单,不考虑使用情况。

  • 缺点 :可能出现Belady 异常(页框增加,缺页率反而上升)。

  1. LRU(最近最少使用)⭐最常用
  • 原理 :淘汰最近最久未使用的块。

  • 依据:时间局部性 ------ 最近用过的还可能再用。

  • 优点:命中率高,性能好。

  • 缺点:硬件实现稍复杂。

  1. LFU(最少使用)
  • 原理 :淘汰访问次数最少的块。

  • 特点:关注使用频率,不关注时间。

  • 缺点:历史旧数据可能占坑,刚调入的新块易被淘汰。

一句话速记

  • FIFO:先来先走

  • LRU:最久不用先走

  • LFU:用得最少先走

一般考试 / 面试重点:LRU 最优且最常用

Cache 写策略

  1. 写直达(Write Through)
  • 原理 :每次写 Cache 时,同时也写主存,二者始终一致。

  • 优点:数据一致性好,一致性维护简单,失效时数据不丢失。

  • 缺点:写操作频繁访问主存,速度慢,效率低。

  1. 写回(Write Back)
  • 原理 :只写 Cache,不立即写主存;只有当该块被替换时,才将修改过的数据写回主存。用 ** 脏位(Dirty Bit)** 标记是否被修改过。

  • 优点:写操作速度快,减少主存访问次数,效率高。

  • 缺点:数据一致性复杂,断电可能丢失数据。

一句话速记

  • 写直达:同步写主存,简单但慢

  • 写回:只写 Cache,替换才写主存,快但复杂

主存分类:RAM(SRAM/DRAM)、ROM

  1. RAM(随机存取存储器,可读可写,断电丢失)
  • SRAM(静态随机存储器)

    • 靠触发器存储,不需要刷新

    • 速度快、成本高、集成度低

    • 用途:Cache

  • DRAM(动态随机存储器)

    • 靠电容存储,需要定时刷新

    • 速度较慢、成本低、集成度高

    • 用途:主存(内存条)

  1. ROM(只读存储器,断电不丢失)
  • 一般只能读出,不能随意写入

  • 存放固件、BIOS、启动程序等

一句话速记:

  • RAM 断电丢数据,ROM 不丢

  • SRAM 快不刷新→Cache

  • DRAM 需刷新→内存

SRAM vs DRAM 区别

  1. 基本原理
  • SRAM(静态 RAM) :用触发器存储,只要通电就保持数据

  • DRAM(动态 RAM) :用电容 存储,电荷会漏电,需定期刷新

  1. 速度
  • SRAM:极快

  • DRAM:较慢

  1. 集成度 & 容量
  • SRAM:元件多,集成度低、容量小

  • DRAM:结构简单,集成度高、容量大

  1. 功耗 & 成本
  • SRAM:功耗较高,成本贵

  • DRAM:功耗低,便宜

  1. 刷新
  • SRAM:不需要刷新

  • DRAM:必须定时刷新

  1. 典型用途
  • SRAM:Cache

  • DRAM:主存(内存条)

一句话速记

  • SRAM:快、贵、不刷新 → Cache

  • DRAM:大、便宜、要刷新 → 内存

虚拟存储器作用

  1. 扩大主存空间 让程序可以使用比实际物理内存更大的地址空间,实现内存 "扩容"

  2. 实现内存共享与保护不同进程使用独立虚拟地址,互不干扰,防止越界访问,提高系统安全性。

  3. 对用户透明程序员无需关心实际物理内存大小,简化编程。

  4. 提高内存利用率 只把当前需要的部分装入内存,暂时不用的放在外存,实现部分装入、部分交换

一句话速记:扩大地址空间、内存保护、透明使用、提高利用率

页表、快表 TLB 作用

一、页表

  1. 作用

    • 实现虚拟地址 → 物理地址的映射

    • 记录每个虚拟页 对应的物理页框号

    • 实现内存保护、存取控制

  2. 特点

    • 存放在主存

    • 每次地址变换都需要访问主存,速度较慢

二、快表 TLB(Translation Lookaside Buffer)

  1. 本质 存放最常用页表项 的高速缓存,一般用 SRAM 实现

  2. 作用

    • 避免每次地址变换都去主存查页表

    • 先查 TLB,命中则直接得到物理页号,速度极快

    • 未命中再去查主存页表

  3. 核心目的 加快虚拟地址到物理地址的转换速度

一句话速记

  • 页表:存地址映射关系,放主存

  • TLB 快表:页表的高速缓存,放 CPU 内,加速地址变换

主存带宽、存取时间、存取周期

  1. 存取时间(Access Time)
  • 定义:从发出访存请求数据稳定读出 / 写入完成所用的时间。

  • 含义:反映存储器反应速度

  1. 存取周期(Memory Cycle Time)
  • 定义:连续两次独立访存操作 之间所需的最小时间间隔

  • 含义:包含存取时间 + 恢复 / 刷新时间,一定 ≥ 存取时间

  1. 主存带宽(Memory Bandwidth)
  • 定义:单位时间内存储器可读写的最大数据量(MB/s、GB/s)。

  • 公式:带宽数据宽度存取周期

  • 含义:衡量存储器吞吐能力

一句话速记

  • 存取时间:一次读写要多久

  • 存取周期:连续两次最少隔多久

  • 主存带宽:每秒能传多少数据

CISC 与 RISC 核心区别

  1. 基本概念
  • **CISC(复杂指令集)**指令多、格式复杂、长度不固定,一条指令能做复杂操作。

  • **RISC(精简指令集)**指令少、格式简单、长度固定,只保留常用简单指令。

  1. 关键对比
  • 指令数量:CISC 多;RISC 少

  • 指令长度:CISC 不固定;RISC 固定长度

  • 寻址方式:CISC 多;RISC 少

  • 访存指令:CISC 指令可直接访存;RISC 只有 load/store 能访存

  • 执行周期:CISC 指令周期不统一;RISC 大多单周期完成

  • 硬件复杂度:CISC 复杂;RISC 简单

  • 流水线:CISC 难优化;RISC 易高效流水线

  1. 代表
  • CISC:x86 架构(Intel/AMD CPU)

  • RISC:ARM、MIPS、RISC-V、PowerPC

  1. 一句话速记
  • CISC:复杂、全能、难流水线 → x86

  • RISC:精简、load/store、高效流水线 → ARM/RISC-V

指令格式:操作码 + 地址码

  1. 操作码 OP
  • 指明指令做什么操作如:加、减、访存、跳转、逻辑运算等

  • 长度可固定可变

    • 固定长度:译码简单,RISC 常用

    • 可变长度:节省空间,CISC 常用

  1. 地址码 A
  • 指明操作数在哪里、结果放哪里

  • 按地址数量分类:

    • 零地址指令 :无显式地址,如 NOPRET、栈操作

    • 一地址指令 :单操作数 / 目标,如 INC ANOT A

    • 二地址指令 :源 1、源 2 / 目标,最常用OP Src, Dest

    • 三地址指令 :源 1、源 2、目标OP Src1, Src2, Dest

一句话速记

  • 操作码:决定干什么

  • 地址码:决定数据在哪、结果放哪

寻址方式

  1. 立即寻址
  • 形式 :指令中直接给出操作数本身

  • 特点:最快,不需访存;操作数固定

  • 例:MOV AX, 100

  1. 直接寻址
  • 形式 :指令中给出有效地址 EA

  • 特点:需访存一次;地址空间有限

  • 例:MOV AX, [1000H]

  1. 间接寻址
  • 形式 :指令地址单元中存放的是操作数地址

  • 特点:需两次访存;可灵活修改地址

  • 例:MOV AX, [[1000H]]

  1. 寄存器寻址
  • 形式 :操作数在寄存器

  • 特点:速度快,不访存

  • 例:MOV AX, BX

  1. 寄存器间接寻址
  • 形式 :寄存器中存放操作数地址

  • 特点:需一次访存;地址可变

  • 例:MOV AX, [BX]

  1. 相对寻址
  • 形式EA = PC + 偏移量

  • 特点 :与程序位置无关,常用于跳转指令

  1. 基址寻址
  • 形式EA = 基址寄存器 + 偏移量

  • 特点 :用于程序重定位、多用户共享

  1. 变址寻址
  • 形式EA = 变址寄存器 + 偏移量

  • 特点 :适合数组、字符串连续访问

一句话速记

  • 立即:数在指令里

  • 直接:地址在指令里

  • 间接:地址的地址

  • 寄存器:数在寄存器

  • 寄存器间接:地址在寄存器

  • 相对:基于 PC 跳转

  • 基址:重定位用

  • 变址:遍历数组用

指令周期、机器周期、时钟周期

  1. 时钟周期(Clock Cycle)
  • 定义 :CPU 时钟频率的倒数,是 CPU 最小的时间单位

  • 别称:振荡周期、T 周期

  • 特点:最短、最基础

  1. 机器周期(Machine Cycle)
  • 定义 :完成一个基本操作所需的时间(如访存、读指令、写数据)

  • 关系 :一个机器周期包含 若干个时钟周期

  1. 指令周期(Instruction Cycle)
  • 定义 :取出并执行一条指令所需的全部时间

  • 关系 :一个指令周期包含 若干个机器周期

包含关系(必背)

指令周期 > 机器周期 > 时钟周期

一句话速记

  • 时钟周期:CPU 最小节拍

  • 机器周期:一次基本操作

  • 指令周期:执行完一条指令

指令执行流程

取指 → 译码 → 取数 → 执行 → 写回

  1. **取指(IF)**从主存取出指令,送入指令寄存器,PC 自增。

  2. **译码(ID)**解析操作码、寻址方式,确定操作数位置。

  3. **取数(MEM / 取操作数)**从寄存器或内存取出需要的操作数。

  4. **执行(EX)**ALU 进行运算、移位、跳转地址计算等操作。

  5. **写回(WB)**将运算结果写回寄存器或写入主存。

一句话速记:取指令 → 看指令 → 拿数据 → 算结果 → 存回去

CPU 组成

CPU = 运算器 + 控制器

一、运算器(数据加工)

核心功能:算术运算 + 逻辑运算主要部件:

  • ALU(算术逻辑单元):核心计算

  • 通用寄存器:存放操作数、中间结果

  • 累加器 ACC

  • 程序状态字 PSW(标志寄存器):进位、零、负等标志

  • 移位器、多路选择器等

二、控制器(指挥控制)

核心功能:指挥整机协调工作,取指、译码、发控制信号主要部件:

  • 程序计数器 PC:存下一条指令地址

  • 指令寄存器 IR:存放当前指令

  • 指令译码器 ID:解析指令

  • 时序系统:时钟、机器周期、节拍

  • 微操作控制电路:产生控制信号

一句话速记:运算器负责算,控制器负责管;一硬一软,配合干活。

运算器组成

运算器核心是完成算术运算与逻辑运算,主要部件:

  1. **ALU(算术逻辑单元)**运算核心,负责加、减、与、或、非、移位等操作。

  2. 累加器 ACC存放操作数或运算结果,最常用的寄存器。

  3. 标志寄存器 PSW存放运算结果状态:进位 C、零标志 Z、负标志 N、溢出 O 等。

  4. 通用寄存器组暂存操作数、地址、中间结果,减少访存。

  5. 移位器实现逻辑 / 算术左移、右移。

  6. 数据通路与多路选择器负责数据传输与选择。

一句话速记:ALU 负责算,ACC 存结果,标志记状态,寄存器存数据。

控制器作用

控制器是整个计算机的指挥中心,核心工作三句话:

取指令按程序计数器 PC 的地址,从主存中取出指令,送入指令寄存器。

**分析指令(译码)**对指令操作码进行译码,识别指令要做什么操作、操作数在哪里。

发控制信号按时序向各部件发出微操作控制信号,协调运算器、存储器、I/O 完成指令执行。

一句话速记:取指令、分析指令、发命令,指挥整机有条不紊工作。

流水线原理、优点、冲突

一、流水线原理

把一条指令的执行过程分成多个独立阶段 ,多条指令重叠执行,让不同指令的不同阶段同时运行,类似工厂流水线。

二、优点

提高指令吞吐率

提高 CPU 利用率

缩短程序整体执行时间

不减少单条指令执行时间,但单位时间执行更多指令

三、三大冲突

1. 结构冲突(硬件资源冲突)

原因:多条指令同时争用同一个硬件(如同时访存、同时用 ALU)

解决:暂停、增加硬件、分时使用

2. 数据冲突(数据相关)

原因:后面指令用到前面指令还没算完 / 没写回的结果

类型:写后读 RAW、读后写 WAR、写后写 WAW

解决:数据旁路(转发)、插入气泡(空泡)、编译调度

3. 控制冲突(分支冲突)

原因:跳转、分支指令导致 PC 改变,流水线预取指令失效

解决:延迟分支、分支预测、提前计算分支地址、清空流水线

一句话速记

原理:指令分段,重叠执行

优点:吞吐率高、速度快

冲突:硬件抢资源(结构)、前后用数(数据)、跳转打乱(控制)

数据相关:RAW、WAR、WAW

  1. RAW(Read After Write)写后读
  • 含义 :后面指令要 前面指令还没写完的数据

复制代码
  ADD R1,R2,R3
  SUB R4,R1,R5
  • 特点真相关,必须等前面写完才能读

  • 最常见、必须处理

  1. WAR(Write After Read)读后写
  • 含义 :后面指令要 前面指令还没读完的寄存器

复制代码
  ADD R1,R2,R3
  SUB R2,R4,R5
  • 特点假相关,多流水线、乱序执行才会出现
  1. WAW(Write After Write)写后写
  • 含义 :两条指令先后写同一个寄存器,后面先写完,结果被覆盖

复制代码
  ADD R1,R2,R3
  SUB R1,R4,R5
  • 特点假相关,乱序执行才会出现

一句话速记

  • RAW:先写后读 → 真相关,必冲突

  • WAR:先读后写 → 假相关

  • WAW:先写后写 → 假相关

超标量、超流水线、VLIW

  1. 超流水线(Super-pipelining)
  • 思想 :把流水线阶段切得更细、更多

  • 一条指令周期拆成更多小阶段

  • 提高时钟频率,靠更快节拍提升吞吐率

  • 本质:时间上并行

  1. 超标量(Superscalar)⭐最常用
  • 思想 :CPU 内有多套独立执行部件(多条流水线)

  • 一个时钟周期同时发射多条指令,并行执行

  • 硬件自动检测指令相关性

  • 本质:空间上并行

  1. VLIW 超长指令字
  • 思想 :编译器提前打包多条独立指令为一条长指令

  • 硬件按包并行执行,简化硬件控制

  • 依赖编译器调度,不依赖硬件动态判断

  • 本质:编译级并行

一句话速记

  • 超流水线:切更细,跑更快

  • 超标量:多流水线,同时发多条

  • VLIW:编译器打包,硬件无脑并行

中断基本概念、处理过程

一、中断基本概念

  • 中断 :CPU 在执行程序时,由于外部 / 内部事件,暂时中止当前程序 ,转去执行中断服务程序,处理完再返回继续执行原程序。

  • 作用:实现 I/O、异常处理、实时响应、多任务等。

二、中断处理过程(标准五步)

  1. 中断请求外设或内部事件向 CPU 发出中断请求信号。

  2. 中断判优与响应 CPU 检测请求,按优先级排队,满足条件则响应中断,发中断应答信号。

  3. 保护现场 CPU 自动将当前 PC、PSW 等寄存器内容压栈保存,保证能返回。

  4. 执行中断服务程序 ISR根据中断类型号找到入口地址,执行相应处理程序。

  5. 恢复现场与中断返回 从栈中恢复寄存器内容,执行 IRET 指令,返回原程序断点继续执行。

一句话速记

请求 → 判优 → 保护现场 → 执行服务 → 恢复现场并返回

向量中断、中断屏蔽、中断优先级

一、向量中断

  • 定义 :由中断源直接提供中断向量(中断服务程序入口地址),CPU 据此直接跳转。

  • 特点:速度快、硬件自动定位、无需软件查询。

  • 作用:快速识别中断源,高效响应。

二、中断优先级

  • 定义 :多个中断同时请求时,按预先设定优先级决定响应顺序。

  • 原则

    • 高优先级中断可打断低优先级中断(中断嵌套)

    • 同级、低级不能打断高级

  • 作用:保证重要事件优先处理。

三、中断屏蔽

  • 定义 :通过中断屏蔽字 / 寄存器,允许 / 禁止某级中断请求。

  • 作用

    • 灵活调整响应次序

    • 防止关键执行过程被打断

    • 实现动态优先级控制

一句话速记

  • 向量中断:硬件给入口地址,直接跳转

  • 优先级:谁重要先响应谁

  • 屏蔽:开关控制,允许 / 禁止某中断

总线分类

  1. 片内总线
  • 位置:CPU 芯片内部

  • 连接:ALU、寄存器、控制器之间

  • 特点:速度最快,距离最短

  1. 系统总线(内总线)
  • 位置:主板上,连接各大部件

  • 连接:CPU、主存、I/O 接口

  • 分类

    • 数据总线

    • 地址总线

    • 控制总线

  • 特点:计算机最核心的总线

  1. I/O 总线(外总线)
  • 位置:主机与外部设备之间

  • 连接:主机与外设(硬盘、显卡、USB 设备等)

  • 例子:PCIe、USB、SATA、RS-232

  • 特点:种类多,速度差异大

一句话速记

片内:CPU 内部;系统:主板核心;I/O:接外设

总线四大特性

  1. 机械特性尺寸、形状、引脚数、排列方式、插拔结构。

  2. 电气特性信号电平、传输方向、传输速率、驱动能力。

  3. 功能特性每根线的用途:地址线、数据线、控制线等。

  4. **时间特性(时序特性)**信号有效时序、同步关系、什么时候采样数据。

一句话速记:机械长啥样、电气传电平、功能干什么、时间怎么同步

总线仲裁:集中式、分布式

一、总线仲裁作用

多个主设备同时申请总线时,决定谁先使用,防止冲突。

二、集中式仲裁(由一个统一仲裁器控制)

  1. 链式查询(菊花链)

    • 优先级由物理位置决定,离仲裁器越近优先级越高

    • 线路少、成本低,但优先级固定、故障敏感

  2. 计数器定时查询

    • 计数器从某值开始轮询设备

    • 优先级可通过计数器初值动态调整

  3. 独立请求方式

    • 每个设备有独立请求线和同意线

    • 响应速度最快,优先级控制灵活,控制线多

三、分布式仲裁(无中央仲裁器,设备自行协商)

  • 每个设备有自己的仲裁逻辑

  • 设备通过竞争、编号比较决定使用权

  • 可靠性高,扩展性好,常用于多处理器系统

一句话速记

集中式:一个老大说了算(链式、计数器、独立请求) 分布式:大家自己商量着来

总线定时:同步、异步、半同步

  1. 同步定时
  • 统一时钟 :所有设备按同一时钟信号同步传输

  • 优点:控制简单、速度快、效率高

  • 缺点:时钟歪斜敏感,不兼容快慢不同设备

  • 适用:长度短、速度一致的设备(如 CPU 与内存)

  1. 异步定时
  • 无统一时钟:靠 ** 握手信号(应答信号)** 控制传输请求 → 应答 → 结束

  • 优点:兼容性强,可接快慢不同设备

  • 缺点:控制复杂,速度较慢

  • 适用:I/O 设备、长距离传输

  1. 半同步定时
  • 结合同步 + 异步 :以统一时钟为基准,用应答信号调整等待

  • 优点:比同步灵活,比异步简单可靠

  • 适用:系统总线、多速率设备共存场景

一句话速记

同步:大家看同一个时钟 异步:靠握手一问一答 半同步:时钟为主、握手为辅

I/O 控制方式

  1. 程序查询方式(轮询)
  • CPU 不断主动查询外设状态,就绪才传输

  • 优点:硬件简单

  • 缺点:CPU 全程占用,效率极低

  1. 中断方式
  • 外设就绪后主动发中断,CPU 再处理

  • 优点:CPU 可并行工作,利用率提高

  • 缺点:频繁中断仍会消耗 CPU

  1. DMA 方式(直接存储器存取)
  • DMA 控制器直接控制内存与外设传输,CPU 仅初始化

  • 优点:批量数据传输快,CPU 占用极少

  • 适用:磁盘、显卡等高速 I/O

  1. 通道方式
  • 专用通道处理器独立管理 I/O,执行通道程序

  • 优点:CPU 干预最少,并行度最高

  • 适用:大型机、大量外设同时工作

一句话速记

查询:CPU 死等;中断:外设叫 CPU;DMA:硬件直传;通道:专用处理器管 I/O

DMA 工作原理 & 与中断的区别

一、DMA 工作原理

DMA:直接存储器访问,让外设与内存不经过 CPU直接传输数据。

  1. 初始化CPU 向 DMA 控制器写入:内存首地址、传输长度、传输方向、外设号。

  2. DMA 请求外设向 DMA 控制器发请求。

  3. 总线申请DMA 控制器向 CPU 申请总线控制权。

  4. DMA 传输 CPU 交出总线,DMA 控制外设 ↔ 内存批量传输,CPU 此时可做与总线无关的操作。

  5. 传输结束 DMA 发中断通知 CPU 传输完成,CPU 回收总线。

二、DMA 与中断方式的区别

  1. 控制主体不同

    • 中断:CPU 执行指令完成数据传送

    • DMA:DMA 硬件控制传送,CPU 不参与

  2. 数据通路不同

    • 中断:外设 → CPU → 内存

    • DMA:外设 ↔ 内存直接传送

  3. 开销不同

    • 中断:每次传送都要保护 / 恢复现场,开销大

    • DMA:仅开始和结束各一次中断,批量极快

  4. 适用场景不同

    • 中断:少量、随机、低速 I/O

    • DMA:批量、高速 I/O(磁盘、显卡、网络)

  5. 优先级

    • DMA 请求优先级 高于 中断请求

一句话速记

DMA:硬件直传,CPU 只开头结尾; 中断:CPU 亲自搬运,一次一字节。

磁盘调度算法

  1. FCFS 先来先服务
  • 请求到达顺序依次访问

  • 优点:简单、公平

  • 缺点:磁头移动频繁,平均寻道时间长

  1. SSTF 最短寻道时间优先
  • 优先访问离当前磁头最近的磁道

  • 优点:平均寻道时间短

  • 缺点:可能导致饥饿(远处请求长期不响应)

  1. SCAN 电梯算法
  • 磁头朝一个方向移动,顺路处理所有请求

  • 到端点后掉头返回,继续处理

  • 优点:性能稳定,不会饥饿

  • 缺点:两端等待时间不均匀

  1. C-SCAN 循环扫描
  • 单向服务 ,到端点后直接快速返回起点,不处理请求

  • 形成循环扫描

  • 优点:等待时间更均匀,适合负载重的场景

  • 缺点:返回时空跑

一句话速记

  • FCFS:谁先来谁先上

  • SSTF:挑最近的走

  • SCAN:像电梯一样来回跑

  • CSCAN:只往一边走,到头直接跳回起点

磁盘结构 & 存取时间

一、磁盘结构

  • 盘面:多个盘片,每个盘片正反两面

  • 磁道:盘面上的同心圆

  • 扇区 :磁道上的一段,最小读写单位

  • 柱面:所有盘面同一编号的磁道组成

  • 磁头:每个盘面一个,负责读写

二、存取时间三部分

存取时间 = 寻道时间 + 旋转延迟时间 + 传输时间

  1. 寻道时间 Tseek 磁头移动到目标磁道 / 柱面的时间→ 占比最大,影响性能最关键

  2. 旋转延迟时间 Trot 目标扇区旋转到磁头下的时间→ 平均约为 磁盘旋转半周 的时间

  3. 传输时间 Tt数据实际读写的时间→ 与转速、扇区大小、传输速度有关

一句话速记

找道(寻道)→ 等扇区(旋转)→ 真正读写(传输)

为什么要有存储器层次结构

核心原因:速度、容量、价格三者无法同时满足,只能用层次结构折中兼顾。

  1. 速度与容量矛盾

    • 速度越快的存储器,单位成本越高、容量做不大

    • 容量大的存储器,速度慢、延迟高

  2. 成本与性能平衡

    • 寄存器、Cache:速度极快、价高、量小

    • 内存:速度中等、价格中等

    • 外存(磁盘):速度慢、价低、容量极大

  3. 程序局部性原理 程序在一段时间内,只会访问少量局部数据和指令,热点数据放高速层,冷数据放低速层,整体效率接近高速存储器。

  4. 最终目标 让整个存储系统呈现给用户:速度接近 Cache / 寄存器,容量接近外存,价格又能承受。

一句话速记:解决速度、容量、成本的矛盾,利用局部性原理,实现又快又大又便宜。

计算机执行一条指令的完整过程

  1. 取指令(IF)

    • 程序计数器 PC 给出指令地址

    • 发读命令到主存,从主存中取出指令

    • 指令送入指令寄存器 IR

    • PC 自动加 1,指向下一条指令

  2. 分析指令(译码 ID)

    • 指令操作码送指令译码器,识别操作类型

    • 分析地址码,按寻址方式计算有效地址

    • 确定操作数来源与去向

  3. 取操作数

    • 根据有效地址,从主存或寄存器中取出操作数
  4. 执行指令(EX)

    • 控制器发控制信号,指挥运算器完成运算

    • 算术 / 逻辑运算由 ALU 执行

    • 移位、转移、I/O 等操作也在此阶段完成

  5. 存放结果(写回 WB)

    • 将运算结果写回通用寄存器或主存

    • 更新标志寄存器(零标志、进位标志等)

  6. 判断中断

    • 执行完后检查有无中断请求

    • 若无,回到第一步继续取下一条指令

    • 若有,转去处理中断

最简背诵口诀

取指令 → 译指令 → 取操作数 → 执行运算 → 写回结果 → 查中断

流水线为什么能提高效率 + 瓶颈

一、流水线为什么能提高效率

  1. 指令重叠执行 把一条指令分成多个阶段(取指、译码、执行...),多条指令在不同阶段同时运行,不再串行等待。

  2. 提高吞吐率 理想情况下,每个时钟周期都能完成一条指令,单位时间内执行指令数大幅增加。

  3. 资源充分利用CPU 各部件(取指单元、译码器、ALU 等)不再闲置,一直处于工作状态。

一句话总结:串行是一条一条做完,流水线是同时处理多条指令,单位时间产出更多。

二、流水线的瓶颈

  1. 最慢阶段决定整体速度 流水线各阶段延迟不可能完全相等,最慢的一段就是整条流水线的瓶颈,决定最大时钟频率。

  2. 冲突导致停顿

    • 结构冲突:硬件资源竞争

    • 数据冲突:指令间数据相关

    • 控制冲突 :分支、跳转打乱流水线冲突会插入气泡(空泡),降低实际效率。

  3. 段数越多,冲突越明显过度细分流水线,控制复杂度上升,冲突概率变大,收益会递减。

最简背诵版

  • 提高效率原因:指令分段重叠执行,提高吞吐率,资源充分利用。

  • 瓶颈最慢阶段限制速度,结构 / 数据 / 控制冲突导致停顿,效率下降。

DMA 为什么比中断快

  1. 传输方式不同

    • 中断方式:数据要经过 CPU 中转(外设→CPU→内存),每次都要执行指令搬运。

    • DMA 方式:外设与内存直接传输,不经过 CPU,硬件直接搬数据。

  2. CPU 干预次数不同

    • 中断:每传一个字 / 字节就中断一次,频繁保护现场、恢复现场,开销极大。

    • DMA:只在开始和结束各干预一次,批量传输全程不用 CPU。

  3. 总线占用方式不同

    • 中断:CPU 控制总线,频繁切换。

    • DMA:直接接管总线,连续高速批量传送

一句话速记

中断靠 CPU 一字一节慢慢搬;DMA 硬件直传批量走,CPU 只管开头结尾,所以快得多。

相关推荐
酉鬼女又兒5 天前
零基础快速入门计算机组成原理:《DRAM 刷新方式小结 & SRAM/DRAM 优劣及主存缓存划分》
考研·职场和发展·电脑·计算机组成原理
Starry_hello world20 天前
深入理解计算机系统书籍 (1)
计算机组成原理
-To be number.wan23 天前
计算机组成原理-计算机系统概述复盘
学习·计算机组成原理
杰 .1 个月前
计算机组成原理入门理解——理解这门课的关键思路
计算机组成原理
myloveasuka2 个月前
寻址方式笔记
汇编·笔记·计算机组成原理
myloveasuka2 个月前
指令格式举例
汇编·笔记·计算机组成原理
myloveasuka2 个月前
定点运算---加减法运算
笔记·计算机组成原理
剪一朵云爱着2 个月前
计算机组成原理 (四)计算机性能
408·计算机组成原理·计算机基础
剪一朵云爱着3 个月前
计算机组成原理(一)计算机概述
408·计算机组成原理·计算机基础·四大件