4.1 总线基本概念与分类


4.1 总线基本概念与分类

本节摘要:总线是各部件共享的一组标准化传输通道,核心矛盾是"共用一条路"与"时刻只能一个人说话"——本节从信号分组、复用策略、同步节奏、串并形态四个维度把总线的骨架立起来。

上一章把数据的家安顿好,本章主线从"路"开始。学总线的第一步是把概念掰正:总线不只是一捆导线,而是导线加协议的总和——哪些线、各自什么含义、什么时刻谁有权用,缺一样都不叫总线。

总线是什么、不是什么

把总线的信号按职能分三组,任何时代的总线都逃不出这个框架:

图 4-1:总线信号的三组分工

图 4-1:总线信号的三组分工

三组信号的性格各不相同。地址总线单向——只有发起方(CPU 或 DMA 控制器)往外喊地址;数据总线双向——读和写都要走它;控制总线最繁杂,读命令、写命令、地址锁存允许 ALE、就绪 READY、总线申请与授权各占一根,一根线只管一件事。把一套总线读懂的捷径,就是把控制总线每根线的名字和生效时刻列成表——4.3 节的握手协议全部由它们演出。

复用与专用:引脚的经济学

8086 只有 40 根引脚,20 位地址加 16 位数据就吃掉 36 根,剩余的引脚根本不够电源与控制信号分。设计师的解法是分时复用:低 16 位地址与数据共用 AD15 到 AD0,T1 拍跑地址、随后跑数据,靠 ALE 脉冲通知外部把地址锁存下来。2.2 节已经画过这个时序,此处补一句总线的账:复用省下 16 根引脚,代价是每个总线周期多一次锁存延迟、外部多一片锁存芯片。专用总线(地址、数据各走各的)快而费脚,复用总线省脚而多一道工序——8086 用复用,后来的 8088 更是把 8 位数据总线进一步缩编来降低系统成本。总线形态从来是工程约束的产物,不是纯技术排名。

同步与异步:两种拍子

同步总线以统一时钟为准,所有事件挂在时钟节拍上:2.2 节的 T1 至 T4 就是同步协议的范本。它控制简单、速度快,但要求全员跟得上节拍——慢速设备只能靠 READY 插等待,或者被拒之门外。

异步总线不设公共时钟,靠"请求—应答"的握手推进:发起方说"我放好了",应答方说"我收下了",一来一回形成全互锁。它对速度差异最宽容,慢设备不拖累快设备,代价是每次握手多几拍的协议开销。两者之间还有半同步的折中:以时钟为底、用 WAIT 信号按拍请假——2.2 节的 READY 机制本质就是半同步。

维度 同步总线 异步总线
时间基准 公共时钟 请求应答握手
速度 慢于同步,但与慢设备解耦
控制复杂度 高(双向握手信号)
适应性 差,慢设备拖全局 好,各设备各按各的节奏
典型代表 8086 系统总线、PCIe 的链路层 多总线背板的握手式传输

串行化浪潮的伏笔

并行总线的位宽就是吞吐,听起来理直气壮——但位宽即引脚,引脚即成本;更高频率下,各条线到达时间参差(偏斜)让"同一拍"越来越难对齐。于是高速总线纷纷转向串行差分:一根链路一次传一位,用极高的单线速率补偿位宽,用时钟数据恢复技术省掉专门的时钟线。这个转向到 4.2 节展开成 PCIe 的故事,此处只需记住结论:并行赢在中低速,串行赢在高速——选择由频率决定。

带宽的算术与总线的电气规矩

带宽的公式人人会背:带宽=频率乘位宽乘每拍数据率。用 8086 算一遍真账:五兆赫兹、十六位数据、平均两个总线周期传一个字(不是每拍都传满),有效带宽=五百万乘二乘零点五÷二=约二点五兆字节每秒。再拿 PCIe 单通道算一遍:原始速率每秒二十五亿次传输、一百二十八位编码后每传输八位有效、全双工单向——账面数字与有效数字差着编码与协议开销。两笔账摆在一起,"宣传带宽"与"到手带宽"的距离就量化了,这个直觉在 4.2 节对比三代标准时还会用到。

总线的电气规矩同样值得知道。多个设备的输出不能直接拧在一起打架,解决办法是三态门:每个设备的数据输出都有"高电平、低电平、高阻"三种状态,没拿到发言权的设备一律高阻——从总线上"松手"。总线能够挂多少设备,取决于各设备输入电容的累加(负载能力)与驱动器的电流能力,超载的表现正是边沿变缓、时序余量缩水。看一张系统总线图,先数三态门与驱动器,这是判断设计成熟度的快捷方式。

负载能力再给一个数字直觉。每个挂在总线上的输入端都带来几皮法的电容,驱动器必须在一个时钟的小 fraction 里把这些电容充放电到位;设备翻倍,电容翻倍,边沿速率直接放慢。这就是为什么背板设计里常见"每八个负载加一级驱动缓冲"的规矩——不是信号不够强,是电容的账必须按设备数结。布线长度同理:线越长电容越大、反射越明显。总线的"挂几个、拉多长",从来是电气账,不是愿望账。

三态与高阻还有一个隐蔽的坑值得记录:切换瞬间没有任何一方驱动的"真空期"。旧主人已经松手、新主人还没握紧,总线悬空在那几拍里电平漂浮,若下游恰好采样就会读到鬼影。成熟总线为此设计了交接重叠——旧主多握一拍才松、新主提前一拍就位,真空期被挤掉。看懂这个细节,你就明白总线协议为什么规定了一堆看似多余的先后关系:每一拍冗余都是给物理世界留的台阶

高频追问两则

问:地址总线为什么必须单向,能让设备也发地址吗? 单主设备的总线里,地址只由发起方产生,单向最省事;一旦允许多个主设备(如 DMA),地址总线就要改成三态双向——谁被授权谁驱动。总线的每一条规则背后都站着"谁有权说话"这个问题,这条线索贯穿本章。

问:控制信号这么多,能否精简? 能精简的方向早就被走完了:把读写合并成一根方向线、把应答复用到数据线上——代价是译码逻辑变复杂、时序解读变费劲。控制总线的根数是"硬件简单"与"协议直白"之间的价格标签,ISA 的直白与 PCIe 的精简各选了一端。

本节要点回顾

  • 三组信号定骨架:地址说访问谁,数据跑内容,控制管秩序。
  • 复用是引脚经济学:省脚的代价是锁存延迟与额外芯片。
  • 同步快而严,异步慢而容:半同步(READY 插拍)是常见的中间形态。
  • 串并之争由频率裁决:高速走串行差分,中低速并行依然经济。

下一位站看这些原则如何写进正式的"修路规范"——几代总线标准的兴衰。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U