计算机组成原理是研究计算机硬件系统各部件的构成、功能、连接方式及协同工作机制的学科,核心是解决 “如何将硬件部件组织成一台能高效运行的计算机” 的问题。以下从核心概念、硬件子系统、关键技术等维度进行全面梳理。

一、 核心基础概念

  1. 计算机系统的层次结构计算机系统是一个多级层次结构,自下而上可分为:

    • 第 0 级:硬联逻辑级:由门电路、触发器等物理器件构成,是硬件的底层。
    • 第 1 级:微程序级:对微指令进行解释执行,对应 CPU 的控制逻辑(部分 CPU 采用硬布线控制则无此级)。
    • 第 2 级:传统机器级:执行机器指令,是硬件和软件的接口层。
    • 第 3 级:操作系统级:由操作系统程序实现,管理硬件资源并提供系统调用。
    • 第 4 级:汇编语言级:执行汇编指令,需汇编器翻译为机器指令。
    • 第 5 级:高级语言级:执行高级语言程序,需编译器 / 解释器翻译为汇编或机器指令。
    • 第 6 级:应用语言级:针对特定应用的语言(如 SQL),满足专业领域需求。

    层次结构的意义:高一级功能可通过低一级功能实现,降低系统设计复杂度

  2. 冯・诺依曼体系结构现代计算机的核心架构,核心思想有 3 点:

    • 存储程序原理:程序和数据以二进制形式存储在同一存储器中,计算机自动从存储器取指令、分析指令、执行指令。
    • 五大基本部件:运算器、控制器、存储器、输入设备、输出设备。
    • 指令执行的串行性:指令按顺序执行(现代计算机通过流水线、并行技术突破该限制)。
  3. 性能指标

    • 吞吐量:单位时间内系统处理的任务数或数据量。
    • 响应时间:从提交任务到获得结果的总时间。
    • CPU 时钟周期:CPU 的最小时间单位,等于时钟频率的倒数(如 1GHz 时钟频率对应 1ns 时钟周期)。
    • CPI(每条指令的平均时钟周期数):执行一条指令所需的平均时钟周期数,CPI 越小,CPU 效率越高。
    • MIPS(每秒百万条指令)/MFLOPS(每秒百万次浮点运算):衡量 CPU 运算速度的指标。

二、 存储器系统

存储器是计算机存储程序和数据的核心部件,按层次化结构设计,以平衡速度、容量、成本三者的矛盾。

  1. 存储器的分类

    分类维度 具体类型 特点
    存储介质 半导体存储器 速度快、易失性(如 RAM)或非易失性(如 ROM)
    磁表面存储器 容量大、成本低、非易失性(如硬盘)
    光存储器 非易失性、可移动(如光盘)
    存取方式 随机存取存储器(RAM) 任意地址单元可随机读写,速度快(如内存)
    只读存储器(ROM) 只能读不能写(或特殊条件下写),非易失性(如 BIOS 芯片)
    顺序存取存储器(SAM) 按顺序存取,速度慢(如磁带)
    直接存取存储器(DAM) 寻址 + 顺序存取结合(如硬盘)
    所处位置 内部存储器(内存) 速度快、容量小、与 CPU 直接相连
    外部存储器(外存) 容量大、成本低、作为内存的后备
  2. 多级存储体系从 CPU 到外存,速度逐渐降低,容量逐渐增大,成本逐渐降低,结构为:CPU 寄存器 → 高速缓冲存储器(Cache) → 主存(内存) → 外存(硬盘 / 固态硬盘)

    • Cache - 主存层次:解决 CPU 和主存之间的速度不匹配问题,由硬件自动管理。核心原理是局部性原理(时间局部性:近期访问的内容可能再次被访问;空间局部性:访问的内容附近的内容可能被访问)。
    • 主存 - 外存层次:解决存储器的容量不足问题,由操作系统和硬件共同管理(虚拟存储器技术)。
  3. 主存储器的组织

    • 基本单元:存储元(可存储 1 位二进制信息)→ 存储单元(存储一个字或字节,具有唯一地址)→ 存储体(由大量存储单元组成)。
    • 地址译码:分为单译码(适用于小容量存储器)和双译码(行列译码,适用于大容量存储器,减少译码器数量)。
    • 存储芯片的扩展:包括位扩展(增加字长,如用 8 片 1K×1 位芯片组成 1K×8 位存储器)、字扩展(增加容量,如用 2 片 1K×8 位芯片组成 2K×8 位存储器)、字位同时扩展
  4. 虚拟存储器核心是将主存和外存抽象为统一的逻辑地址空间,CPU 访问时无需区分物理地址和逻辑地址,由存储管理单元(MMU) 完成逻辑地址到物理地址的转换。常见的虚拟存储管理方式:页式管理段式管理段页式管理

三、 运算器与运算方法

运算器是计算机执行算术运算(加减乘除)和逻辑运算(与或非、移位)的部件,核心是算术逻辑单元(ALU)。

  1. 运算器的组成运算器由算术逻辑单元(ALU)累加器(ACC)通用寄存器组移位器数据总线等组成。

    • ALU:核心部件,执行具体的算术和逻辑运算。
    • 通用寄存器:用于暂存运算数据和中间结果,减少访问内存的次数,提高运算速度。
  2. 数据的表示方法计算机中数据以二进制形式存储,常见的编码方式:

    • 无符号数:仅表示正数,二进制位全部为数值位。
    • 有符号数
      • 原码:最高位为符号位(0 正 1 负),其余位为数值位。缺点:加减法运算复杂,存在 + 0 和 - 0。
      • 反码:正数反码与原码相同,负数反码为原码数值位按位取反。同样存在 + 0 和 - 0。
      • 补码:正数补码与原码相同,负数补码为反码加 1。优势:加减法统一为加法运算,且只有一个 0,是计算机中存储有符号数的主流方式。
      • 移码:常用于表示浮点数的阶码,补码的符号位取反即为移码,便于比较阶码大小。
  3. 定点数与浮点数

    • 定点数:小数点位置固定,分为定点整数(小数点在最低位后)和定点小数(小数点在符号位后)。特点:表示范围小,运算精度有限。
    • 浮点数:仿照科学计数法,格式为 \(N = M \times r^E\),其中M为尾数(表示有效数字)、E为阶码(表示小数点位置)、r为基数(通常为 2)。计算机中浮点数遵循IEEE 754 标准,例如 32 位单精度浮点数:符号位 1 位 + 阶码 8 位(移码表示) + 尾数 23 位(隐含整数位 1)。
  4. 算术运算的实现

    • 加法运算:补码加法规则为 \([X+Y]_{补} = [X]_{补} + [Y]_{补}\),无需区分正负,直接相加。
    • 减法运算:补码减法规则为 \([X-Y]_{补} = [X]_{补} + [-Y]_{补}\),将减法转换为加法。
    • 乘法运算:分为原码乘法(符号位单独处理,数值位按二进制乘法计算)和补码乘法(如布斯算法,适合带符号数乘法)。
    • 除法运算:分为原码除法(如恢复余数法、加减交替法)和补码除法
  5. 逻辑运算与移位运算

    • 逻辑运算:包括与(&)、或(|)、非(~)、异或(^),按位进行运算,常用于数据处理、位操作。
    • 移位运算
      • 算术移位:针对有符号数,左移(乘 2)、右移(除 2)时符号位保持不变。
      • 逻辑移位:针对无符号数,左移右移均补 0。
      • 循环移位:分为带进位循环和不带进位循环,用于数据加密、循环冗余校验(CRC)等场景。

四、 控制器

控制器是计算机的指挥中心,负责取指令、分析指令、执行指令,并协调各部件有序工作。核心是指令周期的控制。

  1. 控制器的组成

    • 程序计数器(PC):存储下一条要执行的指令的地址,指令执行后自动递增(或跳转至目标地址)。
    • 指令寄存器(IR):存储当前正在执行的指令。
    • 指令译码器(ID):对指令的操作码进行译码,确定指令的操作类型。
    • 时序产生器:产生统一的时钟信号和时序控制信号,保证各部件同步工作。
    • 微操作控制信号发生器:根据指令译码结果和时序信号,产生控制各部件的微操作信号。
  2. 指令系统指令系统是计算机硬件能识别和执行的全部指令的集合,是软件和硬件的接口。

    • 指令的格式:一条指令由操作码(OP) + 地址码(A) 组成。
      • 操作码:表示指令的操作类型(如加法、取数)。
      • 地址码:表示操作数的地址或操作数本身,分为零地址指令、一地址指令、二地址指令、三地址指令。
    • 指令的分类
      • 按操作类型:数据传送指令(如 MOV)、算术逻辑指令(如 ADD、AND)、程序控制指令(如 JMP、CALL、RET)、输入输出指令(如 IN、OUT)、特权指令(如修改寄存器、关中断)。
      • 按寻址方式:不同寻址方式决定了如何获取操作数,常见寻址方式:
        寻址方式 操作数地址的获取方式 特点
        立即寻址 地址码就是操作数 速度最快,操作数范围有限
        直接寻址 地址码是操作数的主存地址 寻址范围由地址码位数决定
        间接寻址 地址码是操作数地址的地址 寻址范围大,速度较慢
        寄存器寻址 地址码是寄存器编号 速度快,无需访问内存
        寄存器间接寻址 寄存器中存储操作数的主存地址 结合寄存器和内存优势
        变址寻址 操作数地址 = 变址寄存器值 + 形式地址 适合数组、字符串等连续数据访问
        相对寻址 操作数地址 = PC 值 + 形式地址 适合程序的相对跳转
  3. 指令周期指令周期是指从取指令到执行完该指令所需的全部时间,一个指令周期通常分为以下阶段:

    1. 取指周期:根据 PC 的值从内存取指令,存入 IR,然后 PC 自动递增。
    2. 间址周期(可选):如果指令需要间接寻址,计算操作数的有效地址。
    3. 执行周期:根据指令译码结果,执行对应的操作(如算术运算、数据传送)。
    4. 中断周期(可选):如果有中断请求,响应中断并进行断点保护。
  4. 控制器的控制方式控制器的核心是产生微操作控制信号,分为两种控制方式:

    • 硬布线控制
      • 原理:用组合逻辑电路(门电路、触发器)直接产生控制信号,控制信号由指令操作码、时序信号、状态信号组合决定。
      • 特点:速度快,适合 RISC 处理器;但电路复杂,不易修改,扩展性差。
    • 微程序控制
      • 原理:将每条机器指令分解为若干个微操作,每个微操作对应一条微指令,一组微指令组成微程序,存储在控制存储器(CM) 中。执行机器指令时,依次读取对应的微指令,产生控制信号。
      • 特点:电路结构规整,易于修改和扩展,适合 CISC 处理器;但速度比硬布线控制慢。

五、 输入输出系统(I/O 系统)

I/O 系统是计算机与外部设备交换数据的桥梁,包括I/O 设备I/O 接口I/O 控制方式三部分。

  1. I/O 接口外部设备不能直接与 CPU 或内存相连,需通过 I/O 接口作为中介,原因是:外部设备速度慢、信号格式与 CPU 不兼容、工作时序与 CPU 不同步。I/O 接口的功能:数据缓冲信号转换地址译码中断管理命令控制。常见的 I/O 接口类型:并行接口(如打印机)、串行接口(如 USB)、磁盘接口(如 SATA)、显示接口(如 HDMI)。

  2. I/O 寻址方式

    • 统一编址(存储器映射 I/O):将 I/O 设备的端口地址与内存地址统一编址,CPU 用访问内存的指令访问 I/O 端口。优势:无需专用 I/O 指令,指令丰富;缺点:占用内存地址空间。
    • 独立编址(I/O 映射 I/O):I/O 端口地址与内存地址分开编址,CPU 用专用的IN/OUT 指令访问 I/O 端口。优势:不占用内存空间,寻址速度快;缺点:指令类型少。
  3. I/O 控制方式按 CPU 介入程度从高到低,分为以下 4 种:

    • 程序查询方式:CPU 主动查询 I/O 设备状态,直到设备准备就绪再进行数据传输。优点:硬件简单;缺点:CPU 效率极低,大量时间浪费在等待上。
    • 程序中断方式:I/O 设备准备就绪后主动向 CPU 发送中断请求,CPU 暂停当前程序,转去执行中断服务程序(数据传输),完成后返回原程序。优点:CPU 与 I/O 设备并行工作,效率提升;缺点:每次中断需要保护断点和现场,有一定开销。
    • DMA 方式(直接存储器访问):由DMA 控制器直接控制内存和 I/O 设备之间的数据传输,无需 CPU 介入。优点:传输速度快,适合大批量数据传输(如磁盘读写);缺点:硬件复杂度高,需占用总线控制权。
    • 通道方式:通道是一个专用的 I/O 处理器,能独立执行通道程序,管理多台 I/O 设备与内存的数据传输。CPU 只需向通道发送命令,通道完成后再向 CPU 发中断。优点:CPU 效率最高,适合大型计算机;缺点:成本高,结构复杂。
  4. 中断系统中断是 I/O 系统的核心机制,分为内部中断(如除法溢出、指令异常)和外部中断(如设备请求、键盘中断)。中断处理的流程:

    1. 中断请求:设备向 CPU 发送中断信号。
    2. 中断判优:通过硬件排队器或软件查询,确定中断的优先级(高优先级中断可打断低优先级中断,即中断嵌套)。
    3. 中断响应:CPU 满足响应条件(如开中断、无更高优先级中断),暂停当前程序,保存断点(PC 值)和现场(寄存器值)。
    4. 中断服务:执行中断服务程序,完成数据传输或设备控制。
    5. 中断返回:恢复现场和断点,返回原程序继续执行。

六、 总线系统

总线是连接计算机各硬件部件的公共数据通路,负责在部件之间传输地址、数据和控制信号,实现部件间的通信。

  1. 总线的分类

    • 按传输内容
      • 地址总线(AB):单向传输,传输内存单元或 I/O 端口的地址,地址总线的位数决定了寻址范围(如 32 位地址总线寻址范围为 \(2^{32} = 4GB\))。
      • 数据总线(DB):双向传输,传输数据和指令,数据总线的位数决定了 CPU 的字长(如 64 位 CPU 对应 64 位数据总线)。
      • 控制总线(CB):传输控制信号(如读 / 写信号、中断请求信号、时钟信号),方向根据信号类型而定。
    • 按连接范围
      • 片内总线:CPU 内部各部件之间的总线(如寄存器与 ALU 之间的总线)。
      • 系统总线:连接 CPU、内存、I/O 接口的总线(如 PCI 总线、ISA 总线)。
      • 外部总线:连接计算机与外部设备的总线(如 USB 总线、SCSI 总线)。
  2. 总线的仲裁方式当多个设备同时请求使用总线时,需通过总线仲裁器确定优先级,避免冲突。仲裁方式分为:

    • 集中式仲裁:由一个中央仲裁器负责仲裁,常见方式有链式查询(优先级固定,靠近仲裁器的设备优先级高)、计数器定时查询(优先级可设置)、独立请求方式(响应速度快,硬件复杂度高)。
    • 分布式仲裁:无中央仲裁器,各设备通过协商确定总线使用权,适合多处理器系统。
  3. 总线的传输周期一次总线传输的完整过程,称为总线周期,通常分为 4 个阶段:

    1. 申请分配阶段:设备向仲裁器请求总线使用权。
    2. 寻址阶段:主设备发送地址和控制信号,从设备识别地址。
    3. 传输阶段:主从设备之间传输数据。
    4. 结束阶段:主设备释放总线,从设备准备下一次传输。

七、 多核与并行处理技术

随着单核心 CPU 性能提升遇到瓶颈,多核处理器并行处理技术成为发展趋势。

  1. 多核处理器的结构:将多个 CPU 核心集成在一个芯片上,核心之间通过共享缓存片上总线通信,共享内存资源。
  2. 并行处理的层次
    • 指令级并行:通过流水线技术(将指令执行分为取指、译码、执行、访存、写回等阶段,多条指令重叠执行)、超标量技术(CPU 内置多个执行单元,同时执行多条指令)提升并行度。
    • 数据级并行:通过单指令多数据(SIMD) 技术,一条指令同时处理多个数据(如 GPU 的并行计算)。
    • 任务级并行:多个 CPU 核心同时执行不同的任务(如多线程程序)。

八、 核心考点与易错点总结

  1. 补码的计算与应用:补码的加减法规则是重点,需注意负数补码的计算(反码加 1)。
  2. Cache 的映射方式:包括直接映射全相联映射组相联映射,需理解不同映射方式的命中率和复杂度。
  3. 指令周期的阶段划分:区分取指周期、间址周期、执行周期、中断周期的操作和 PC 的变化。
  4. I/O 控制方式的对比:重点掌握程序中断方式和 DMA 方式的区别(DMA 无需 CPU 介入数据传输)。
  5. 总线的分类与仲裁:地址总线单向、数据总线双向,集中式仲裁的三种方式的优先级特点。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐