第十章 总线系统
10.1 总线系统概述
10.1.1 总线的基本概念
总线(Bus)是连接计算机各功能部件的公共信息传输线,是一组能为多个部件分时共享的公共信息传送线路。总线不仅是一组传输线,还包括相应的总线接口和总线控制逻辑。
总线的特点: - 分时性:总线上的信号在时间上分时传送,同一时刻只能有一对设备进行数据传输 - 共享性:总线可以被多个设备共享使用 - 标准性:总线需要遵循一定的标准规范,以保证不同厂家设备的兼容性
使用总线的原因: - 简化系统设计:减少连线数量,降低系统复杂度 - 便于模块化:各功能模块通过标准接口连接 - 易于扩展:可以方便地增加或更换设备 - 降低成本:减少芯片引脚和印刷电路板布线
10.1.2 总线的分类
按连接部件分类:
片内总线: 芯片内部连接各寄存器、ALU等功能部件的总线。如CPU内部的数据通路。
系统总线: 连接计算机各大部件(CPU、主存、I/O接口)的总线,又称板级总线。 包括: - 数据总线(Data Bus):双向传输数据 - 地址总线(Address Bus):单向传输(从CPU发出)地址信息 - 控制总线(Control Bus):传输控制信号和时序信号
通信总线: 用于计算机系统之间或计算机与外部设备之间的通信。如USB、RS-232、以太网等。
按数据传送方式分类:
并行总线: 多条数据线同时传送多位数据。速度快,但传输距离短,成本高,存在信号偏移问题。
串行总线: 一条数据线逐位传送数据。速度慢,但成本低,适合远距离传输,抗干扰能力强。
10.1.3 总线的性能指标
总线宽度: 数据总线的位数,决定了同时能传送的数据位数。常见的有8位、16位、32位、64位等。
总线频率: 总线的工作频率,单位为MHz。频率越高,数据传输速度越快。
总线带宽: 单位时间内总线上可传输的数据量,单位为MB/s或GB/s。 ``` 总线带宽 = 总线宽度 × 总线频率 / 8 ``` 例如:64位总线,频率为133MHz,则带宽 = 64 × 133 / 8 = 1064 MB/s ≈ 1GB/s
总线负载能力: 总线所能连接的扩展电路板的数量。通常用“可连接的扩增电路板数”或“可连接的扩增电路板的最大负载电流”表示。
总线复用: 为了减少总线数目,某些总线可以分时传送不同的信息。如地址/数据复用总线,先传送地址,再传送数据。
信号线类型: 总线信号线可以是双向的,也可以是单向的;可以是三态的,也可以是开漏的。
10.2 总线的组成与结构
10.2.1 总线的组成
总线由以下部分组成:
传输线: 包括数据线、地址线、控制线等。
接口逻辑: 每个连接在总线上的设备都需要总线接口,用于完成信号转换、数据缓冲、设备选择等功能。
总线控制器: 负责总线的管理和控制,包括总线仲裁、时序控制等。
总线标准: 规定了总线的电气特性、时序特性、机械特性和功能特性。
10.2.2 总线的连接方式
单总线结构: 所有设备都连接到一条总线上。结构简单,但容易成为系统瓶颈。
双总线结构: 在CPU和主存之间增加一条高速存储总线,I/O设备通过I/O总线连接。提高了CPU访存速度。
三总线结构: 包括存储总线、I/O总线和DMA总线。DMA可以直接访问主存,不占用CPU。
多总线结构: 现代计算机通常采用层次化的多总线结构,包括: - 前端总线(FSB):连接CPU和北桥 - 存储总线:连接北桥和主存 - I/O总线:PCI、PCIe等 - 外部总线:USB、SATA等
10.2.3 总线的三态控制
总线设备通常使用三态门连接到总线上,三态门有三种输出状态: - 逻辑0 - 逻辑1 - 高阻态(相当于断开)
当设备不传输数据时,输出高阻态,不会影响总线上其他设备的通信。
10.3 总线仲裁
10.3.1 总线仲裁的概念
由于总线是共享资源,同一时刻只能有一个主设备(Master)控制总线。当多个主设备同时请求使用总线时,需要总线仲裁机制来决定哪个设备获得总线使用权。
主设备与从设备: - 主设备:能够控制总线,发起数据传输的设备 - 从设备:被动响应主设备请求的设备
总线仲裁方式: - 集中式仲裁:由专门的仲裁器进行仲裁 - 分布式仲裁:没有中央仲裁器,各设备共同决定总线归属
10.3.2 集中式仲裁
链式查询方式(菊花链):
结构特点: - 各设备共用一根总线请求线(BR) - 仲裁器发出总线允许信号(BG),依次经过各设备 - 发出请求的设备截获BG信号,获得总线使用权
优先级: 离仲裁器越近的设备优先级越高。
优点: 结构简单,增加设备容易。
缺点: 优先级固定,低优先级设备可能饿死;对电路故障敏感。
计数器定时查询方式:
结构特点: - 各设备共用一根总线请求线(BR) - 仲裁器使用计数器产生设备地址 - 当地址与发出请求的设备号匹配时,该设备获得总线使用权
优先级: 可以通过改变计数器的初始值来改变优先级。
优点: 优先级灵活,可通过程序改变。
缺点: 需要较多的地址线(log₂n条)。
独立请求方式:
结构特点: - 每个设备有独立的总线请求线(BRi)和总线允许线(BGi) - 仲裁器根据优先级算法决定哪个设备获得总线
优点: 响应速度快,优先级灵活(可编程)。
缺点: 需要较多的控制线(2n条)。
10.3.3 分布式仲裁
在分布式仲裁中,每个设备都有仲裁器,通过优先级仲裁策略竞争总线。
自举分布式仲裁: - 每个设备有一个唯一的仲裁号 - 设备在仲裁前将仲裁号发送到共享的仲裁线上 - 优先级高的设备仲裁号覆盖优先级低的设备 - 设备比较仲裁线上的值与自己的仲裁号,如果相等则获得总线
冲突检测分布式仲裁: - 设备在发送数据前检测总线是否空闲 - 如果空闲则发送,如果冲突则等待随机时间后重试 - 类似于以太网的CSMA/CD机制
并行竞争仲裁: - 每个设备驱动总线上的一个专属位 - 所有设备读取总线上的值,确定最高优先级的请求设备 - 优先级最高的设备获得总线
10.4 总线定时与数据传输
10.4.1 总线定时方式
总线定时是指总线上事件发生的时间关系,通常有以下几种方式:
同步定时方式: 采用统一的时钟信号来协调发送和接收双方的传送定时关系。
特点: - 所有操作都在时钟边沿发生 - 时钟频率由最慢的设备决定 - 不需要应答信号
优点: 时序关系简单,速度快,容易实现。
缺点: 所有设备必须按照同一时钟工作;不能及时验明数据是否正确。
异步定时方式: 不采用统一的时钟,而是采用握手信号(请求和应答)来协调传送。
特点: - 设备速度可以不同 - 使用请求(Request)和应答(Acknowledge)信号
优点: 灵活,适合速度差异大的设备;可以校验数据。
缺点: 控制复杂;握手信号增加了传输延迟。
半同步定时方式: 结合同步和异步的优点。使用系统时钟,但允许设备插入等待周期。
特点: - 基本操作与时钟同步 - 慢速设备可以通过等待信号延长总线周期
分离式定时方式: 将总线周期分为两个子周期:请求子周期和应答子周期。
特点: - 在请求子周期后释放总线,允许其他设备使用 - 数据准备好后,再申请总线发送 - 提高了总线利用率
10.4.2 数据传输模式
单周期传输: 每次总线操作只传送一个数据单元。
突发传输(Burst Transfer): 传送一个地址后,连续传送多个数据。适用于块传送。
分包传输: 将大数据块分成多个小包传送,可以提高总线利用率。
10.4.3 总线标准与实例
系统总线标准:
ISA(Industry Standard Architecture): 早期的PC总线标准,8/16位,时钟8.33MHz,带宽最高16MB/s。
EISA(Extended ISA): ISA的扩展,32位,带宽33MB/s。
VESA Local Bus(VL-Bus): 直接连接到CPU局部总线,速度较快,但限制了CPU升级。
PCI(Peripheral Component Interconnect): Intel推出的高性能总线标准。 - 32/64位数据宽度 - 33/66MHz时钟频率 - 带宽:133MB/s(32位33MHz)到533MB/s(64位66MHz) - 支持即插即用(PnP)
PCI Express(PCIe): 采用串行点对点连接的高速接口标准。 - 使用差分信号传输 - 支持多通道(x1, x4, x8, x16, x32) - PCIe 4.0 x16:单方向带宽约32GB/s - 支持热插拔
外部总线标准:
USB(Universal Serial Bus): 通用串行总线,目前最广泛使用的外部总线。 - USB 2.0:480Mbps - USB 3.0:5Gbps - USB 3.1:10Gbps - USB 3.2/4:20-40Gbps - 支持热插拔、即插即用 - 可为设备供电
SATA(Serial ATA): 串行ATA接口,用于连接硬盘、光驱等存储设备。 - SATA 3.0:6Gbps
Thunderbolt: Intel和Apple开发的高速接口,兼容DisplayPort和PCIe。 - Thunderbolt 3/4:40Gbps
10.5 现代总线技术
10.5.1 前端总线与QPI/UPI
前端总线(FSB,Front Side Bus): 传统架构中连接CPU和北桥芯片的总线。 - 数据宽度:64位 - 频率:通常400MHz-1600MHz - 采用四倍数据速率(QDR)技术,每个时钟周期传送4次数据
QPI(QuickPath Interconnect): Intel推出的点对点互连技术,取代了FSB。 - 每个链路包含20条差分信号线(16条数据+4条时钟) - 双向传输 - 每个方向带宽可达25.6GB/s(QPI 2.0)
UPI(Ultra Path Interconnect): Intel在Skylake-X及以后处理器中使用的互连技术,取代了QPI。 - 更高的带宽和效率 - 支持多路服务器的更好扩展性
10.5.2 Infinity Fabric与NVLink
Infinity Fabric: AMD开发的片上/片间互连技术。 - 用于连接CPU核心、CCX、CCX之间 - 也用于连接多个CPU芯片(如EPYC处理器) - 也用于连接CPU和GPU(APU)
NVLink: NVIDIA开发的高速GPU互连技术。 - 用于多GPU之间的直接通信 - 带宽远高于PCIe - NVLink 3.0:单向50GB/s,双向100GB/s - NVLink 4.0:单向100GB/s
10.5.3 片上网络(NoC)
随着多核处理器的发展,传统的总线结构成为瓶颈,片上网络(Network on Chip,NoC)成为新的互连方式。
NoC的特点: - 采用分组交换代替总线共享 - 拓扑结构:网格、环形、树形、蝶形等 - 路由器和链路组成的网络结构 - 支持多个通信同时进行
NoC的优势: - 可扩展性好,适合大规模多核处理器 - 并行通信,带宽高 - 时序可预测
NoC的挑战: - 延迟比总线大 - 功耗和面积开销 - 设计复杂度高
10.6 总线设计问题
10.6.1 总线瓶颈问题
总线架构面临的主要问题是总线瓶颈: - 总线带宽有限,成为系统性能瓶颈 - 多个设备竞争总线,增加了等待时间 - 总线速度与CPU速度不匹配
解决方案: - 提高总线频率和宽度 - 采用层次化总线结构 - 采用点对点互连代替共享总线 - 使用交叉开关或多级互连网络
10.6.2 总线与Cache一致性
在多处理器系统中,多个处理器通过总线访问共享存储器,需要维护Cache一致性。
监听总线协议(Snoopy Protocol): - 各Cache控制器监听总线上的访问 - 当发现其他处理器访问的数据在本Cache中有副本时,采取相应措施
MESI协议: - Modified(修改):数据被修改,与主存不一致 - Exclusive(独占):数据只在当前Cache中,与主存一致 - Shared(共享):数据可能在多个Cache中,与主存一致 - Invalid(无效):数据无效
10.6.3 总线的电气特性
信号传输方式: - 单端传输:一条信号线,参考地线 - 差分传输:一对信号线,传输互补信号,抗干扰能力强
总线驱动能力: 总线驱动器需要足够的驱动能力来驱动总线上的负载。
信号完整性: - 信号反射:阻抗不匹配导致 - 串扰:相邻信号线之间的干扰 - 电磁干扰(EMI)
10.7 本章重点总结
核心概念: - 总线是连接计算机各部件的公共信息传输线 - 总线具有分时性、共享性和标准性 - 总线包括数据总线、地址总线和控制总线
总线分类: - 按连接部件:片内总线、系统总线、通信总线 - 按传送方式:并行总线、串行总线
总线性能: - 总线带宽 = 总线宽度 × 总线频率 / 8 - 总线负载能力决定可连接设备数量
总线仲裁: - 集中式:链式查询、计数器查询、独立请求 - 分布式:自举、冲突检测、并行竞争
总线定时: - 同步定时:统一时钟,简单快速 - 异步定时:握手信号,灵活可靠 - 半同步定时:结合两者优点
总线标准: - 传统:ISA、EISA、VESA、PCI - 现代:PCIe(串行点对点)、USB、SATA - 处理器互连:QPI、UPI、Infinity Fabric
现代趋势: - 从并行总线向串行总线发展 - 从共享总线向点对点互连发展 - 片上网络(NoC)用于大规模多核处理器
学习建议: - 理解总线的工作原理和性能计算方法 - 掌握各种仲裁方式的优缺点 - 了解不同总线标准的特点和应用 - 理解现代总线技术的发展趋势