计算机组成原理作为计算机科学与技术专业的核心课程,是考研408科目中占比45分的重要内容。根据最新考纲要求,本部分重点考查考生对单处理器计算机系统中主要部件工作原理、组成结构及相互连接方式的理解,以及对指令集体系结构基本知识和实现方法的掌握能力。考生需建立"硬件组成→工作原理→数据流转"的逻辑链,熟练掌握计算题(如寻址方式计算、存储器容量计算、指令周期计算),理解核心概念(如流水线、缓存命中率)。以下是计算机组成原理部分的核心知识点总结。
一、计算机系统基本组成与层次结构
计算机系统的基本组成遵循冯·诺依曼结构的核心特征,包括运算器、控制器、存储器、输入设备和输出设备五个主要部件。现代计算机系统通常将运算器和控制器集成在同一芯片上,称为CPU;主机指CPU加主存储器;辅存指硬盘等存储设备,属于I/O设备。各部件间的数据流向遵循"输入→存→控→运→输出"的五环大法顺序。
计算机系统的层次结构从高级语言程序到机器语言程序的转换过程体现了软件与硬件的分工协作。软件提供抽象接口,硬件负责具体实现;高级语言(如C语言)通过编译器、汇编器、链接器转换为机器可执行的二进制代码。计算机系统的工作原理基于"存储程序"工作方式,即程序和数据一起存储在存储器中,CPU按顺序执行程序指令。
计算机性能指标包括吞吐量、响应时间、CPU时钟周期、主频、CPI、CPU执行时间、MIPS、MFLOPS等 。其中CPU执行时间计算公式为:CPU执行时间 = CPI × 指令数 × 时钟周期 ;吞吐量表示单位时间内完成的指令数;MIPS表示每秒百万次指令数,是衡量CPU性能的重要指标。
二、数据的表示和运算
数据的表示与运算是计算机组成原理的基础内容,主要包括数制与编码、定点数运算和浮点数运算三个部分。
数制与编码方面,需掌握二进制、八进制、十六进制之间的相互转换方法 。对有符号整数的表示方法,重点掌握原码、反码、补码和移码的定义及特点:
| 编码类型 | 位数 | 数值范围 | 主要特点 |
|---|---|---|---|
| 原码 | 8位 | -127~+127 | 零有两种表示,加减法需额外判断符号 |
| 反码 | 8位 | -127~+127 | 零统一表示,减法可通过加法实现 |
| 补码 | 8位 | -128~+127 | 唯一零表示,加减法统一处理,自然溢出处理 |
| 移码 | 8位 | -128~+127 | 用于浮点数阶码,符号位与补码相反 |
定点数运算主要掌握补码的加减运算规则,包括符号位与数值位一起参与运算、溢出判断(符号位与最高数值位异或判断)以及乘除运算的基本原理。定点数的位移运算分为算术左移、算术右移、逻辑左移和逻辑右移,需理解其在运算中的应用。
浮点数运算需掌握IEEE754标准的表示方法,包括阶码和尾数的组合 。浮点数的加减运算步骤包括:对阶(小阶向大阶看齐,尾数右移)、尾数加减(按定点数规则运算)、规格化(首位非1(正数)或非0(负数)时左移)、舍入(处理多余位)和溢出判断(根据阶码是否超出范围确定) 。
运算器的核心部件是算术逻辑单元(ALU),负责执行算术和逻辑运算 。ALU的功能包括加减乘除等基本算术运算,以及与、或、非等基本逻辑运算。运算电路如加法器、乘法器和除法器的设计原理也是考查重点。
三、存储器层次结构
存储器层次结构是计算机组成原理的重点内容,主要包括半导体存储器、主存储器、外部存储器、高速缓冲存储器(Cache)和虚拟存储器等。
半导体存储器分为SRAM、DRAM和Flash三种类型。SRAM采用双稳态触发器结构,速度快但集成度低;DRAM采用电容结构,集成度高但需要定期刷新;Flash存储器非易失性,常用于固态硬盘(SSD)。
主存储器的容量计算和扩展方式是考查重点。主存容量计算公式为:主存容量 = 存储单元数 × 每单元字数。主存扩展方式包括位扩展(增加存储单元位数)和字扩展(增加存储单元数量)。多模块主存通过将主存分为多个模块实现并行访问,提升系统带宽 。
**高速缓冲存储器(Cache)**是存储器层次结构的关键环节,其工作原理基于程序的局部性原理 。Cache映射方式包括直接映射、全相联映射和组相联映射三种 :
| 映射方式 | 地址划分 | 命中率 | 硬件复杂度 |
|---|---|---|---|
| 直接映射 | 块内地址+Cache块号+标记位 | 低 | 低 |
| 全相联映射 | 块内地址+标记位 | 高 | 高 |
| 组相联映射 | 块内地址+组号+标记位 | 中 | 中 |
Cache命中率计算公式为:命中率 = 命中次数 / 总访问次数 × 100% ;平均访问时间(MAT)计算公式为:MAT = 命中时间 + (1-命中率) × 失效开销 。Cache替换算法包括FIFO(先进先出)、LRU(最近最少使用)和随机替换等,其中LRU算法效果最佳但硬件实现复杂 。
Cache写策略主要有三种 :
- 写直达(Write-Through):写操作同时更新Cache和主存,简单但开销大
- 写回(Write-Back):写操作仅更新Cache,主存保留旧值,延迟高但效率高
- 写分配(Write-Allocate):写失效时分配新块到Cache并标记为"脏块"
虚拟存储器采用分页或段页式管理方式,通过页表实现虚拟地址到物理地址的转换 。分页管理将主存划分为固定大小的页,虚拟地址通过页表转换为物理地址;段页式管理结合段式(逻辑划分)和页式(物理划分)特点,使用两级页表实现地址转换 。TLB(快表)用于加速页表查询,提高虚拟地址转换效率 。
四、指令系统与CPU设计
指令系统是计算机硬件与软件之间的接口,CPU设计则是实现指令系统的核心硬件。
指令格式主要包括操作码和地址码两部分。RISC指令集架构通常采用固定长度指令格式,如RISC-V的R-type(双操作数寄存器)、I-type(立即数+寄存器)、S-type(存储器寻址)、B-type(分支)、U-type/J-type(跳转)等 。CISC指令集架构则采用可变长度指令格式,包含多种寻址方式。
寻址方式共有9种基本类型 :
- 立即寻址:操作数直接包含在指令中
- 寄存器寻址:操作数在寄存器中
- 直接寻址:指令中直接给出操作数在内存的偏移地址
- 寄存器间接寻址:操作数地址存放在寄存器中
- 间接寻址:操作数地址存放在内存中
- 变址寻址:操作数地址 = 变址寄存器内容 + 形式地址
- 基址寻址:操作数地址 = 基址寄存器内容 + 形式地址
- 基址-变址寻址:操作数地址 = 基址寄存器内容 + 变址寄存器内容
- 堆栈寻址:地址由堆栈指针(SP)隐含指定,用于函数调用和中断
指令周期是计算机执行一条指令所需的时间,由取指令(IF)、译码(ID)、执行(EX)、访存(MEM)和写回(WB)五个阶段组成 。指令周期的长短取决于计算机硬件的速度和复杂度。
CPU组成主要包括控制器(CU)、运算器(ALU)、寄存器组和时序系统 。控制器负责指令的解码和执行,运算器负责算术和逻辑运算,寄存器组用于临时存储数据和地址,时序系统提供时钟信号控制各部件协同工作。
CPU时序系统包括时钟周期、机器周期和指令周期三个层次 :
- 时钟周期:最小时序单位,由时钟信号驱动
- 机器周期:完成一个基本操作(如取指)所需的时间,包含多个时钟周期
- 指令周期:执行一条指令的总时间,包含多个机器周期
指令流水线是提高CPU性能的重要技术,通过并行执行多条指令的不同阶段提高吞吐率 。流水线性能指标包括:
- CPI:指令条数 / 总时钟周期数,表示每条指令平均耗时
- 吞吐率:总时间 / 指令条数,表示单位时间内完成的指令数
- 加速比:T非流水 / T流水,表示流水线效率提升倍数
流水线冲突包括三种类型:
- 结构冲突:多个指令竞争同一功能部件(如ALU)
- 数据冲突:后指令依赖前指令未写回的结果(RAW冲突)
- 控制冲突:分支指令导致后续指令地址不确定(冒险)
控制器设计方法主要有两种:
- 组合逻辑控制:通过逻辑电路直接生成控制信号,简单但扩展性差
- 微程序控制:用微指令序列控制操作,灵活性高但硬件复杂
微程序控制的基本结构包括控制存储器(CM)、微指令(由操作控制字段和顺序控制字段组成)和微周期(单条微指令的执行时间) 。微指令分为水平型微指令(一次定义并执行多个并行操作)和垂直型微指令(设置微操作码字段,由微操作码规定微指令的功能) 。
五、输入输出系统
输入输出系统是计算机与外部世界进行信息交互的通道,主要包括I/O控制方式、设备管理机制和磁盘调度算法等内容。
I/O控制方式主要有四种 :
- 程序查询(轮询):CPU主动查询设备状态,效率低但实现简单
- 中断:设备通过中断请求CPU处理,CPU响应中断后暂停主程序,执行中断服务程序,处理完成后返回继续执行
- DMA(直接内存访问):DMA控制器接管总线控制权,直接在内存和外设间传输数据,无需CPU干预
- 通道控制:通道(Channel)是独立于CPU的专用处理器,负责管理外设与主存间的数据传输,适用于大型计算机系统
中断处理流程包括五个环节 :
- 中断请求:设备向CPU发送中断信号
- 中断判优:CPU根据中断优先级确定响应顺序
- 中断响应:CPU暂停当前程序,保存程序计数器(PC)和标志寄存器等现场信息
- 中断服务:CPU执行中断服务程序处理中断事件
- 中断返回:CPU恢复现场信息,继续执行被中断的程序
DMA工作流程有两种方式 :
- 周期窃取:CPU暂停当前操作,将总线控制权交给DMA控制器,传输完成后恢复
- 透明方式:DMA控制器直接管理总线,CPU无需参与
设备管理机制主要包括缓冲技术、通道控制和中断处理。缓冲技术通过缓冲区匹配设备与CPU速度差异;通道控制通过通道独立管理外设与主存数据传输,支持多设备并行;中断处理通过中断机制实现CPU与外设的并行工作。
磁盘调度算法是操作系统对设备管理的重要算法,用于减少寻道时间和旋转延迟时间,提高磁盘I/O效率 。常见磁盘调度算法包括:
- FCFS(先来先服务):按请求到达顺序服务,简单但可能导致长寻道时间
- SSTF(最短寻道时间优先):选择最近磁道,减少平均寻道时间,但可能引发"饥饿"现象
- SCAN(电梯调度):磁头单向扫描服务请求,到达边界后反向,避免饥饿但响应时间较长
4.LOOK:改进SCAN,发现无请求时立即转向,减少无效移动 - C-SCAN:单向扫描后直接返回起始点,公平但效率略低
I/O接口是CPU与外设之间的桥梁,主要功能包括数据缓冲、状态控制和中断处理。接口通常包含数据寄存器、状态寄存器和控制寄存器等部件。
六、总结与备考建议
计算机组成原理部分在考研408中占比45分,包括选择题和综合应用题 。高频考点集中在数据的表示与运算、存储系统、指令系统、中央处理器(CPU)等模块,且多以综合应用题形式考查。
备考建议:
- 掌握核心概念:如原码、反码、补码的表示及运算,IEEE754标准,Cache映射方式与命中率计算,指令格式与寻址方式,CPU组成与工作原理,I/O控制方式等。
- 熟练计算题:如数制转换、浮点数运算、Cache地址映射、主存与Cache容量计算、指令周期计算、流水线性能指标计算等。
- 理解原理:如程序的局部性原理,存储程序控制原理,指令流水线并行执行原理,中断处理与DMA数据传输原理等。
- 结合实例:通过具体示例理解抽象概念,如浮点数加减运算步骤,Cache替换算法的具体实现,磁盘调度算法的比较等。
计算机组成原理的学习需要建立硬件组成→工作原理→数据流转的逻辑链,通过理解基本原理和掌握计算方法,才能在考试中取得好成绩。建议结合实物图或动画辅助理解(如CPU内部结构示意图),多动手列式计算,避免眼高手低。