1. 计算机组成原理课程概述
计算机组成原理是计算机科学与技术专业的核心基础课程,它系统地介绍了计算机硬件系统的基本组成和工作原理。作为计算机专业的学生,掌握这门课程对于理解计算机底层运行机制至关重要。本课程以高等教育出版社《计算机组成原理(第三版)》为主要参考教材,内容涵盖计算机系统的各个核心组成部分。
1.1 课程重要性
计算机组成原理课程在计算机专业课程体系中处于承上启下的关键位置。它既是数字逻辑、电路分析等前导课程的延伸,又是操作系统、计算机体系结构等后续课程的基础。通过本课程的学习,学生能够:
- 理解计算机硬件系统的基本组成和工作原理
- 掌握数据在计算机中的表示和处理方法
- 了解指令系统的设计和实现原理
- 认识CPU、存储系统、I/O系统等核心部件的结构和功能
- 培养计算机系统的整体观和设计思维
1.2 课程内容框架
本课程内容主要分为以下几个模块:
- 计算机系统概述:介绍计算机的发展历程、系统层次结构和性能指标
- 数据表示与运算:讲解数制转换、定点数和浮点数的表示与运算方法
- 指令系统:分析指令格式、寻址方式和指令类型
- CPU结构与功能:详细解析运算器、控制器和流水线技术
- 存储系统:探讨多级存储体系、缓存技术和虚拟存储管理
- 输入输出系统:研究I/O设备、接口和数据传输方式
- 总线系统:介绍总线结构、仲裁机制和性能指标
- 系统设计与性能分析:讨论计算机设计原则和性能评价方法
1.3 学习建议
计算机组成原理课程内容抽象、概念繁多,学习时建议:
- 建立整体框架:先把握各章节之间的逻辑关系,再深入细节
- 理论与实践结合:通过实验验证理论知识,加深理解
- 多做习题练习:通过解题巩固概念,培养计算和分析能力
- 关注技术发展:了解计算机硬件技术的最新进展和趋势
- 善用学习资源:参考多种教材和在线资源,拓展知识面
2. 计算机系统概述
2.1 计算机发展历程
计算机的发展经历了四个主要阶段:
-
电子管计算机(1946-1958):
- 使用电子管作为基本元件
- 体积庞大、功耗高、可靠性低
- 代表机型:ENIAC、EDVAC
-
晶体管计算机(1959-1964):
- 采用晶体管替代电子管
- 体积减小、功耗降低、速度提高
- 高级语言开始出现
-
集成电路计算机(1965-1970):
- 中小规模集成电路应用
- 操作系统和分时技术发展
- 代表机型:IBM 360系列
-
大规模集成电路计算机(1971至今):
- 微处理器和个人计算机出现
- 计算机网络和互联网普及
- 向高性能、微型化、智能化发展
2.2 冯·诺依曼体系结构
现代计算机大多基于冯·诺依曼体系结构,其核心特点包括:
-
五大基本部件:
- 运算器:执行算术和逻辑运算
- 控制器:协调各部件工作
- 存储器:存储程序和数据
- 输入设备:接收外部信息
- 输出设备:输出处理结果
-
存储程序原理:
- 程序和数据以二进制形式存储
- 程序指令顺序执行
- 指令和数据同等对待
-
二进制编码:
- 采用二进制表示信息和指令
- 简化硬件设计,提高可靠性
2.3 计算机性能指标
评价计算机性能的主要指标包括:
-
基本性能指标:
- 主频:CPU时钟频率(GHz)
- CPI:执行一条指令所需时钟周期
- MIPS:每秒执行百万条指令数
- FLOPS:每秒浮点运算次数
-
存储性能指标:
- 容量:存储单元数量(GB/TB)
- 存取时间:读写操作所需时间
- 带宽:单位时间传输数据量
-
综合性能指标:
- 响应时间:完成任务所需时间
- 吞吐量:单位时间完成任务数
- 加速比:性能提升比例
注意:不同应用场景下,各项指标的重要性不同。科学计算更关注FLOPS,而事务处理则更看重吞吐量。
3. 数据表示与运算
3.1 数制与编码
3.1.1 常用数制及其转换
计算机中常用的数制包括:
-
十进制(Decimal):
- 基数为10,数码0-9
- 权展开式:dₙ×10ⁿ + ... + d₀×10⁰
-
二进制(Binary):
- 基数为2,数码0、1
- 权展开式:bₙ×2ⁿ + ... + b₀×2⁰
-
八进制(Octal):
- 基数为8,数码0-7
- 与二进制有简单对应关系
-
十六进制(Hexadecimal):
- 基数为16,数码0-9、A-F
- 广泛用于表示内存地址
数制转换方法:
- 其他进制转十进制:按权展开求和
- 十进制转其他进制:整数部分除基取余,小数部分乘基取整
- 二进制与八/十六进制转换:每3/4位一组对应1位
3.1.2 带符号数表示
计算机中表示带符号数的主要方法:
-
原码表示法:
- 最高位为符号位(0正1负)
- 数值部分保持不变
- 0有+0和-0两种表示
-
反码表示法:
- 正数同原码
- 负数符号位不变,数值位取反
- 仍存在±0问题
-
补码表示法:
- 正数同原码
- 负数符号位不变,数值位取反加1
- 统一了0的表示
- 简化了加减运算
-
移码表示法:
- 用于浮点数阶码
- 补码符号位取反得到
3.2 定点数运算
3.2.1 定点数表示范围
不同表示方法的表示范围(n位):
| 表示方法 | 定点整数范围 | 定点小数范围 |
|---|---|---|
| 原码 | -(2ⁿ⁻¹-1)~2ⁿ⁻¹-1 | -(1-2⁻ⁿ⁻¹)~1-2⁻ⁿ⁻¹ |
| 反码 | 同原码 | 同原码 |
| 补码 | -2ⁿ⁻¹~2ⁿ⁻¹-1 | -1~1-2⁻ⁿ⁻¹ |
3.2.2 定点数加减运算
-
原码加减:
- 符号位单独处理
- 同号相加,异号相减
- 结果符号与绝对值大的相同
-
补码加减:
- 符号位参与运算
- [A+B]补 = [A]补 + [B]补
- [A-B]补 = [A]补 + [-B]补
- 溢出判断:符号位进位与最高数值位进位异或
-
溢出处理:
- 上溢:正数相加得负数
- 下溢:负数相加得正数
- 双符号位法可检测溢出
3.2.3 定点数乘除运算
-
原码乘法:
- 符号位异或得到积的符号
- 数值部分采用移位相加
- 有符号乘法需要额外处理
-
补码乘法(Booth算法):
- 将乘数表示为2的补码和形式
- 根据相邻位决定操作
- 减少部分积数量,提高效率
-
除法运算:
- 恢复余数法:余数为负时恢复
- 加减交替法:不恢复余数
- 需要处理商的符号和精度
3.3 浮点数表示与运算
3.3.1 IEEE 754标准
现代计算机普遍采用IEEE 754浮点数标准:
-
单精度(32位):
- 1位符号S
- 8位阶码E(偏移量127)
- 23位尾数M(隐含1.)
-
双精度(64位):
- 1位符号S
- 11位阶码E(偏移量1023)
- 52位尾数M(隐含1.)
规格化浮点数表示:
N = (-1)^S × 1.M × 2^(E-Bias)
3.3.2 浮点数运算步骤
-
加减法:
- 对阶:小阶向大阶看齐
- 尾数加减
- 规格化:调整到1.M形式
- 舍入处理:就近舍入、向0舍入等
- 溢出判断:阶码超出表示范围
-
乘除法:
- 阶码相加/减(注意偏移量调整)
- 尾数相乘/除
- 规格化和舍入处理
- 处理特殊值(NaN、无穷等)
提示:浮点运算比定点运算复杂得多,现代CPU通常有专门的浮点运算单元(FPU)来加速处理。
4. 指令系统
4.1 指令格式与类型
4.1.1 指令基本格式
典型指令包含两部分:
-
操作码(Opcode):
- 指定操作类型(加、减、传送等)
- 长度固定或可变
- 可能包含操作数类型信息
-
地址码(Address):
- 指定操作数地址或操作数本身
- 数量从0到多个不等
4.1.2 指令类型分类
按地址码数量分类:
-
零地址指令:
- 只有操作码
- 操作数隐含(如堆栈指令)
-
一地址指令:
- 一个操作数地址
- 另一个操作数隐含(如累加器)
-
二地址指令:
- 两个操作数地址
- 结果存入其中一个地址
-
三地址指令:
- 两个源操作数地址
- 一个目的地址
4.1.3 常见指令类型
-
数据传送类:
- MOV:寄存器/内存间传送
- PUSH/POP:堆栈操作
- LOAD/STORE:内存存取
-
算术运算类:
- ADD/SUB:加减法
- MUL/DIV:乘除法
- INC/DEC:增量/减量
-
逻辑运算类:
- AND/OR/NOT/XOR:逻辑运算
- SHL/SHR:移位操作
- ROL/ROR:循环移位
-
控制转移类:
- JMP:无条件跳转
- Jcc:条件跳转
- CALL/RET:子程序调用/返回
-
输入输出类:
- IN/OUT:端口I/O
- 存储器映射I/O
4.2 寻址方式
4.2.1 基本寻址方式
-
立即寻址:
- 操作数直接包含在指令中
- 速度快,但数值范围受限
-
直接寻址:
- 指令中给出操作数有效地址
- 简单但寻址范围有限
-
间接寻址:
- 指令地址码指向操作数地址
- 扩大寻址范围但速度慢
-
寄存器寻址:
- 操作数在寄存器中
- 速度快,寄存器数量有限
-
寄存器间接寻址:
- 寄存器内容为操作数地址
- 结合寄存器与内存访问优点
4.2.2 复杂寻址方式
-
基址寻址:
- 有效地址=基址寄存器+位移量
- 用于程序重定位和内存管理
-
变址寻址:
- 有效地址=变址寄存器+基地址
- 适合数组和循环访问
-
相对寻址:
- 有效地址=PC+位移量
- 便于程序浮动和模块化
-
堆栈寻址:
- 通过SP指针访问操作数
- 用于子程序调用和中断
4.2.3 寻址方式比较
| 寻址方式 | 优点 | 缺点 | 典型应用 |
|---|---|---|---|
| 立即 | 速度快 | 数值范围小 | 常量加载 |
| 直接 | 简单直观 | 寻址范围小 | 静态变量 |
| 间接 | 寻址灵活 | 多次访存 | 指针操作 |
| 寄存器 | 最快 | 数量有限 | 频繁访问数据 |
| 基址 | 动态重定位 | 需要基址寄存器 | 多道程序 |
| 变址 | 数组访问高效 | 额外计算 | 数组处理 |
| 相对 | 位置无关 | 偏移范围有限 | 条件分支 |
4.3 CISC与RISC架构
4.3.1 CISC特点
复杂指令集计算机(CISC)主要特征:
-
指令系统复杂:
- 指令数量多(200-300条)
- 指令长度可变
- 寻址方式多样
-
硬件实现:
- 采用微程序控制
- 强调单条指令功能强大
- 典型代表:x86架构
-
设计理念:
- 减少程序指令数
- 简化编译器设计
- 提高代码密度
4.3.2 RISC特点
精简指令集计算机(RISC)主要特征:
-
指令系统精简:
- 指令数量少(50-100条)
- 指令长度固定
- 寻址方式简单
-
硬件实现:
- 采用硬布线控制
- 强调指令执行效率
- 典型代表:ARM、MIPS
-
设计理念:
- 单周期执行简单指令
- 提高时钟频率
- 优化流水线效率
4.3.3 对比分析
| 特性 | CISC | RISC |
|---|---|---|
| 指令数量 | 多 | 少 |
| 指令长度 | 可变 | 固定 |
| 寻址方式 | 多样 | 简单 |
| 控制方式 | 微程序 | 硬布线 |
| 寄存器数量 | 较少 | 较多 |
| 代码密度 | 高 | 较低 |
| 功耗 | 较高 | 较低 |
| 典型应用 | 通用计算 | 嵌入式/移动 |
注意:现代处理器架构已趋于融合,如x86内部采用RISC-like微操作,而RISC处理器也增加了复杂指令支持。
5. CPU结构与功能
5.1 CPU基本组成
中央处理器(CPU)是计算机的核心部件,主要由两大部件组成:
-
运算器:
- 算术逻辑单元(ALU):执行算术和逻辑运算
- 寄存器组:临时存储数据和中间结果
- 状态寄存器:保存运算状态(进位、溢出等)
-
控制器:
- 程序计数器(PC):存放下条指令地址
- 指令寄存器(IR):存放当前指令
- 指令译码器:解析指令操作码
- 时序发生器:产生控制时序信号
5.1.1 寄存器组织
CPU中的关键寄存器:
-
通用寄存器:
- 存放操作数和中间结果
- 数量越多越能减少访存次数
-
专用寄存器:
- PC:程序计数器
- IR:指令寄存器
- MAR:内存地址寄存器
- MDR:内存数据寄存器
- SP:堆栈指针
-
状态寄存器:
- 零标志(Z):结果为0
- 进位标志(C):运算产生进位
- 溢出标志(V):结果溢出
- 符号标志(S):结果为负
5.2 指令执行过程
典型指令周期分为五个阶段:
-
取指(Fetch):
- PC→MAR→Memory
- Memory→MDR→IR
- PC+1→PC
-
译码(Decode):
- 解析操作码和寻址方式
- 确定操作数地址
-
取操作数(Operand Fetch):
- 根据寻址方式获取操作数
- 可能需要多次访存
-
执行(Execute):
- ALU执行指定操作
- 可能改变状态标志
-
写回(Write Back):
- 将结果写入目标位置
- 可能需要访存
5.2.1 多周期执行
简单CPU采用多周期执行方式:
- 每个阶段占用一个时钟周期
- 不同指令周期数可能不同
- 控制逻辑相对简单
5.3 数据通路设计
5.3.1 基本数据通路
典型数据通路包括:
-
寄存器组:
- 通过多路选择器选择源寄存器
- 通过译码器选择目标寄存器
-
ALU:
- 执行算术逻辑运算
- 输入来自寄存器或立即数
- 输出到寄存器或内存
-
内存接口:
- MAR存放地址
- MDR暂存数据
-
控制信号:
- 寄存器写入使能
- ALU操作选择
- 多路选择器控制
5.3.2 总线结构
常见总线组织方式:
-
单总线结构:
- 所有部件共享一条总线
- 结构简单但性能受限
-
双总线结构:
- 分离数据/地址总线
- 提高并行性
-
多总线结构:
- 专用总线用于特定传输
- 高性能但复杂度高
5.4 控制器设计
5.4.1 硬布线控制器
-
特点:
- 用组合逻辑电路实现
- 执行速度快
- 修改困难
-
设计步骤:
- 列出所有指令的微操作序列
- 确定每个微操作的触发条件
- 设计组合逻辑电路生成控制信号
5.4.2 微程序控制器
-
特点:
- 控制信号存储在控制存储器中
- 通过执行微程序产生控制信号
- 灵活易于修改
-
组成:
- 控制存储器:存放微程序
- 微指令寄存器:当前微指令
- 微地址生成逻辑
-
微指令格式:
- 水平型:每位直接对应控制信号
- 垂直型:编码控制信号,需要译码
5.5 流水线技术
5.5.1 基本概念
流水线技术将指令执行划分为多个阶段,各阶段并行处理不同指令,提高吞吐率。
五级经典流水线:
- 取指(IF)
- 译码(ID)
- 执行(EX)
- 访存(MEM)
- 写回(WB)
5.5.2 流水线冲突与解决
-
结构冲突:
- 多个指令争用同一硬件资源
- 解决方法:资源复制或调度
-
数据冲突:
- 后续指令需要前面指令的结果
- 解决方法:前递、暂停、重排序
-
控制冲突:
- 分支指令改变执行流程
- 解决方法:预测、延迟槽、投机执行
5.5.3 流水线性能分析
-
加速比:
S = T_nonpipe / T_pipe ≈ n / (1 + (n-1)/k)
(n为指令数,k为流水线级数) -
吞吐率:
TP = n / (k + n -1) × f
(f为时钟频率) -
效率:
η = 实际加速比 / 理想加速比
提示:现代处理器采用超流水线、超标量等复杂技术进一步提高并行度,但同时也带来了更高的设计复杂度和功耗问题。
6. 存储系统
6.1 存储系统层次结构
现代计算机采用多级存储体系,平衡速度、容量和成本:
-
寄存器:
- 速度最快,容量最小(KB级)
- 位于CPU内部
-
高速缓存(Cache):
- SRAM实现,速度接近CPU
- 容量较小(MB级)
- 分多级(L1、L2、L3)
-
主存储器:
- DRAM实现,速度较慢
- 容量较大(GB级)
- 易失性存储
-
辅助存储器:
- 磁盘/SSD,速度慢
- 容量大(TB级)
- 非易失性
6.1.1 局部性原理
存储层次有效性的基础:
-
时间局部性:
- 最近访问的数据很可能再次访问
- 循环变量、常用变量等
-
空间局部性:
- 相邻数据很可能被一起访问
- 数组、顺序执行代码等
6.2 主存储器
6.2.1 存储器分类
-
RAM(随机存取存储器):
- SRAM:
- 速度快、功耗高、成本高
- 用于Cache
- DRAM:
- 需要刷新、密度高、成本低
- 用于主存
- SRAM:
-
ROM(只读存储器):
- 掩膜ROM:出厂编程
- PROM:用户可编程一次
- EPROM:紫外线擦除
- EEPROM:电擦除
- Flash:块擦除
6.2.2 存储器扩展
-
位扩展:
- 增加数据线宽度
- 多芯片并联
-
字扩展:
- 增加存储单元数量
- 地址译码选择芯片
-
字位扩展:
- 同时增加字数和位数
- 行列译码
6.3 高速缓存(Cache)
6.3.1 基本工作原理
-
地址映射:
- 主存块与Cache行的对应关系
- 决定查找方式和替换策略
-
查找过程:
- 根据地址查找Cache
- 命中则直接读取
- 缺失则从主存调入
-
替换策略:
- LRU:最近最少使用
- FIFO:先进先出
- Random:随机替换
6.3.2 映射方式
-
直接映射:
- 主存块映射到固定Cache行
- 简单但冲突率高
-
全相联映射:
- 主存块可映射到任意Cache行
- 灵活但查找复杂
-
组相联映射:
- 主存块映射到特定组的任意行
- 折中方案,常用2/4/8路
6.3.3 写策略
-
写直达(Write Through):
- 同时写入Cache和主存
- 一致性高但带宽压力大
-
写回(Write Back):
- 只写入Cache,替换时写回
- 效率高但需要脏位标记
-
写分配(Write Allocate):
- 写缺失时加载相应块
- 通常与写回配合
-
非写分配(No-Write Allocate):
- 写缺失时直接写主存
- 通常与写直达配合
6.4 虚拟存储器
6.4.1 基本概念
-
地址空间:
- 虚拟地址:程序使用的地址
- 物理地址:实际内存地址
-
地址转换:
- MMU通过页表完成转换
- TLB加速转换过程
-
页面调度:
- 按需将页面调入内存
- 页面替换算法决定换出页
6.4.2 页式管理
-
页表结构:
- 页表项包含物理页框号
- 多级页表节省空间
-
TLB:
- 缓存最近使用的页表项
- 大幅减少内存访问次数
-
页面替换算法:
- OPT:理想最优
- LRU:最近最少使用
- FIFO:先进先出
- Clock:近似LRU
6.4.3 段式与段页式
-
段式管理:
- 按逻辑单位划分
- 便于共享和保护
- 容易产生外部碎片
-
段页式:
- 先分段再分页
- 结合两者优点
- 地址转换更复杂
6.5 辅助存储器
6.5.1 磁盘存储器
-
基本结构:
- 盘片、磁头、主轴、控制器
- 磁道、扇区、柱面
-
性能参数:
- 容量:总存储量
- 转速:RPM
- 平均寻道时间
- 数据传输率
-
RAID技术:
- 通过并行提高性能/可靠性
- 常见级别:0、1、5、6、10
6.5.2 固态硬盘(SSD)
-
基本特点:
- 基于闪存技术
- 无机械部件,速度快
- 写入次数有限
-
关键技术:
- 磨损均衡
- 坏块管理
- TRIM命令
-
接口类型:
- SATA
- PCIe/NVMe
- M.2/U.2
注意:现代存储系统越来越复杂,需要操作系统、硬件和应用程序协同优化才能获得最佳性能。理解存储层次结构对于编写高效程序至关重要。
7. 输入输出系统
7.1 I/O系统概述
7.1.1 I/O系统组成
计算机I/O系统主要包括:
-
I/O设备:
- 输入设备:键盘、鼠标、扫描仪等
- 输出设备:显示器、打印机等
- 存储设备:磁盘、SSD等
- 通信设备:网卡、调制解调器等
-
I/O接口:
- 设备控制器:连接设备与主机
- 适配器:协议转换
- 端口:连接点
-
I/O软件:
- 设备驱动程序
- 操作系统I/O子系统
- 用户级I/O库
7.1.2 I/O性能指标
-
数据传输率:
- 峰值速率
- 持续速率
-
响应时间:
- 请求到响应的时间
- 包括排队、传输、处理时间
-
吞吐量:
- 单位时间完成的I/O操作数
- 受限于最慢环节
-
利用率:
- 设备忙时间比例
- 过高可能导致队列堆积
7.2 I/O设备分类
7.2.1 按数据传输单位
-
块设备:
- 以固定大小块为单位传输
- 可寻址,如磁盘
- 通常支持随机访问
-
字符设备:
- 以字符为单位传输
- 不可寻址,如键盘
- 通常顺序访问
7.2.2 按共享属性
-
独占设备:
- 一次只能由一个进程使用
- 如打印机、磁带机
-
共享设备:
- 可被多个进程交替使用
- 如磁盘
-
虚拟设备:
- 通过SPOOLing技术实现
- 将独占设备虚拟为共享
7.3 I/O接口技术
7.3.1 接口功能
-
数据缓冲:
- 解决速度不匹配
- 单缓冲、双缓冲、循环缓冲
-
错误检测:
- 奇偶校验
- CRC校验
- 重传机制
-
控制与状态:
- 命令译码
- 状态报告
- 中断处理
7.3.2 常见接口标准
-
并行接口:
- IDE:磁盘接口
- SCSI:通用高速接口
- IEEE 1284:打印机接口
-
串行接口:
- RS-232:传统串口
- USB:通用串行总线
- SATA:串行ATA
-
其他:
- PCIe:高速扩展总线
- Thunderbolt:高速多功能
- HDMI:音视频接口
7.4 I/O数据传输方式
7.4.1 程序控制I/O
-
轮询方式:
- CPU定期检查设备状态
- 简单但CPU利用率低
-
中断方式:
- 设备就绪时中断CPU
- 提高CPU利用率
- 中断处理有开销
7.4.2 DMA方式
-
基本概念:
- 直接内存访问
- 专用控制器管理传输
- 解放CPU
-
工作过程:
- CPU设置DMA参数
- DMA控制器接管总线
- 传输完成中断CPU
-
传输模式:
- 单次传输
- 块传输
- 请求传输
- 级联模式
7.4.3 通道方式
-
通道类型:
- 选择通道:连接高速设备
- 多路通道:分时复用
- 数组多路通道:结合两者
-
工作特点:
- 执行通道程序
- 比DMA更智能
- 用于大型系统
7.5 典型I/O设备
7.5.1 显示设备
-
CRT显示器:
- 基于阴极射线管
- 模拟信号
- 逐渐淘汰
-
LCD显示器:
- 液晶技术
- 数字接口
- 主流技术
-
OLED显示器:
- 自发光二极管
- 高对比度
- 柔性显示
7.5.2 存储设备
-
硬盘驱动器(HDD):
- 机械结构
- 高容量低成本
- 顺序访问快
-
固态硬盘(SSD):
- 闪存技术
- 随机访问快
- 价格较高
-
光盘:
- CD/DVD/Blu-ray
- 只读/可记录/可擦写
- 逐渐被淘汰
7.5.3 输入设备
-
键盘:
- 机械/薄膜/电容
- PS/2或USB接口
- 键位布局重要
-
鼠标:
- 机械/光电/激光
- 有线/无线
- DPI参数
-
触摸屏:
- 电阻/电容式
- 多点触控
- 人机交互革新
提示:现代I/O系统越来越复杂,操作系统通过设备驱动程序抽象硬件细节,为应用程序提供统一接口。理解I/O工作原理有助于优化程序性能。
8. 总线系统
8.1 总线概述
8.1.1 总线基本概念
总线是计算机各部件间传输信息的公共通道,具有以下特性:
- 共享性:多个部件共用同一总线
- 分时性:任一时刻只能有一个发送者
- 标准化:遵循统一规范确保兼容性
8.1.2 总线组成
-
数据总线:
- 传输数据信息
- 双向传输
- 宽度决定一次传输数据量
-
地址总线:
- 传输地址信息
- 单向(CPU→外设)
- 宽度决定寻址空间
-
控制总线:
- 传输控制信号
- 包括读写、中断、时钟等
- 方向各异
8.2 总线类型
8.2.1 按位置分类
-
内部总线:
- CPU内部寄存器间通信
- 速度最快
-
系统总线:
- CPU与主存、I/O接口间
- 如前端总线(FSB)
-
外部总线:
- 计算机与外设间
- 如USB、SATA
8.2.2 按功能分类
-
存储总线:
- 专门用于CPU-内存通信
- 如DDR内存总线
-
I/O总线:
- 连接各种I/O设备
- 如PCI、USB
-
扩展总线:
- 用于系统功能扩展
- 如PCIe插槽
8.3 总线性能指标
8.3.1 基本参数
-
总线宽度:
- 数据总线位数
- 决定并行传输能力
-
总线频率:
- 工作时钟频率
- 单位MHz/GHz
-
总线带宽:
- 理论最大传输率
- 计算:带宽=宽度×频率/8
- 单位MB/s或GB/s
8.3.2 实际性能
-
有效带宽:
- 实际可达传输率
- 受协议开销影响
-
延迟:
- 请求到响应时间
- 包括仲裁、传输等
-
并发能力:
- 支持并行传输程度
- 如PCIe的通道数
8.4 总线仲裁
8.4.1 仲裁必要性
当多个主设备同时请求总线时,需要仲裁机制决定使用权,避免冲突。
8.4.2 集中式仲裁
-
链式查询:
- 优先级固定(靠近仲裁器高)
- 简单但灵活性差
-
计数器查询:
- 轮询各设备
- 公平但效率不高
-
独立请求:
- 每个设备独立请求线
- 灵活但连线多
8.4.3 分布式仲裁
-
冲突检测:
- 载波监听多路访问(CSMA)
- 以太网采用
-
令牌传递:
- 令牌循环传递
- 获得令牌才能传输
-
自仲裁:
- 设备ID决定优先级
- 如PCI总线
8.5 总线定时
8.5.1 同步定时
-
特点:
- 统一时钟控制传输
- 相位关系固定
-
优点:
- 控制简单