精简版 · 小杯2026-08 冻结,已停止更新(发布前修订了 4 处已知错误)。后续勘误与新增内容只在正式版。看正式版(中杯)→
Skip to content

总线概述与分类

大纲定位

现行 408 大纲「总线」一章只剩三条:总线的基本概念总线的组成及性能指标总线事务和定时。总线标准(ISA/PCI/USB…)和总线仲裁都已移出大纲。

本篇覆盖前两条,第三条见 总线时序

考情分析

本章几乎全部战场都在一个地方:带宽计算。而带宽题的胜负手不是公式,是看懂题面给的到底是"时钟频率"还是"工作频率"——这一个判断错了,公式再熟也会稳稳落进出题人设好的那个选项。下面先把这件事讲透。

总线的基本概念

总线(Bus)是连接计算机各功能部件的共享通信链路,用于在部件之间传输数据、地址和控制信号。

总线的本质是一组公共导线。多个部件分时共享同一条总线,同一时刻只能由一个主设备发送数据(但可以有多个从设备接收)。

关键术语:

  • 主设备(Master):获得总线控制权、发起传输的设备
  • 从设备(Slave):被主设备访问的设备,只能响应请求
  • 总线事务(Bus Transaction):一次完整的总线操作,从主设备取得总线到释放总线为止

按功能分类

系统总线按传输内容分为三类:

总线类型传输内容位数方向
数据总线(DB)操作数、指令等数据与机器字长有关(如 32 位、64 位)双向
地址总线(AB)主存/IO 端口的地址决定寻址空间大小,n 位可寻址 2n 个单元单向(CPU 发出)
控制总线(CB)读/写命令、中断请求、总线请求、握手应答等根据控制信号种类而定有的出、有的入

数据线上到底能传什么

这是选择题反复出现的一个判断点,规则只有一句:

凡是"被传输的信息内容"都走数据线;凡是"控制传输这件事本身"的信号都走控制线。

信息走哪条线为什么
指令数据线取指时指令就是被读出的内容
操作数、运算结果数据线内容
I/O 接口的命令字数据线CPU 把一个"字"写进接口的控制寄存器,这个字本身是内容
I/O 接口的状态字数据线同上,是从状态寄存器读回的一个字
中断类型号数据线中断响应周期里由接口送出的一个编号,是内容
地址地址线除非地址/数据线复用,见下文
握手(请求/应答)信号控制线它不是内容,它是"我要传/我收到了"的时序信号
读/写命令、总线请求 BR、总线授权 BG控制线同上

别被"命令字"三个字骗了

"命令字"听起来像命令,容易误以为走控制线。判断标准不是名字里有没有"命令",而是它是不是一个需要被搬运的数据字。命令字是 CPU 写给接口的一个字,走数据线;而 MREQIOWR 这种电平信号才是控制线上的命令。

现代计算机的多总线层次

早期教材讲"单总线/双总线/三总线结构",现代机器的实际形态是按速度分层的多条总线,层与层之间用桥接器(芯片组)连接

图 8.3 外设、设备控制器和 CPU 及主存的互连

图 8.3 外设、设备控制器和 CPU 及主存的互连(袁春风《计算机组成与系统结构(第 3 版)》p280)

从这张图能读出四条结论:

  1. 越靠近 CPU 的总线越快。CPU(前端)总线最快,存储器总线次之,I/O 总线最慢——因为越往外,挂的设备越多、走线越长、要兼容的标准越杂。
  2. 不同速度的总线之间必须经过桥接器。北桥连接 CPU 总线、存储器总线和显卡,南桥连接各种 I/O 总线。桥接器负责速度匹配与协议转换,两条总线不能直接对接。
  3. 存储器总线支持突发传送——CPU 一次要的是整个 Cache 块,天然成块。
  4. 传统三芯片结构是 CPU + 北桥 + 南桥;Core i7 之后北桥的存储器控制功能被并进 CPU 芯片,只剩双芯片结构(CPU + PCH)。

按连接对象,总线仍可分三层:

层次连接对象特点
片内总线CPU 内部各寄存器与 ALU 之间速度最快,芯片内部走线
系统总线CPU、主存、I/O 接口之间计算机内部核心总线
通信总线(外总线)计算机与外部设备/其他计算机之间如 USB、以太网

总线的性能指标

指标定义
总线宽度数据线的条数,决定一次能并行传多少位
总线时钟频率总线的基础时钟频率 f
总线工作频率每秒实际传输数据的次数,见下节
总线带宽总线的最大数据传输率
总线寻址能力由地址线位数决定,n 位对应 2n 个单元
总线传送方式非突发 / 突发
总线负载能力能挂接的设备(扩展槽)数目

时钟频率 vs 工作频率(本章第一考点)

一句话记住

工作频率=时钟频率×每个时钟周期传输次数

工作频率里已经包含了倍数因子,不能再乘第二遍。

早期总线一个时钟周期传一次数据,两者相等。现代总线一个时钟周期可以传 2 次(DDR,双沿)或 4 次(quad pumped,四倍并发),于是工作频率是时钟频率的 2 倍或 4 倍。

工作频率的本质单位是 MT/s(每秒百万次传输),写成 MHz 只是"每秒次数"这个量纲上的等价说法,它不是基础时钟

于是有了这张判别表——做带宽题时先查它,再动笔:

题面这样写它是什么还要不要乘倍数
总线时钟频率 f基础时钟,不含倍数要乘× 每周期传输次数
总线工作频率 / 数据传输率 / MT/s / GT/s等效传输频率,已含倍数不再乘,直接 × 字节宽度
DDR3-1333、FSB 1333MHz 这类型号/产品名一律是等效传输率不再乘

为什么这条能反复出题:因为题面往往会同时把两个数字都摆给你。比如"每个总线时钟周期传送 4 次数据(quadpumped),工作频率为 1333MHz"——那个"4"是在解释 1333 是怎么来的333×4=1333),不是让你再乘一次。看到"工作频率"四个字,那个 4 就已经用过了。

总线带宽

总线带宽=工作频率×总线宽度(位)8

写成时钟频率的形式就是教材里的 B=W×F/NW 为总线宽度(字节),F 为时钟频率,N 为完成一次传送所需的时钟周期数,F/N 就是工作频率。

带宽的口径:只算数据阶段

教材对总线带宽的定义是"总线在进行数据传输时单位时间内最多可传输的数据量,不考虑总线裁决、地址传送等所花的时间"。

所以题目问「总线带宽」「最大数据传输率」时,地址周期、等待周期一律不进分母——只按数据传输阶段的稳态速率算。这一条决定了 2024 年那道突发传送题的答案,见下面的例 5。

突发传送

非突发方式每传一个数据都要先传一次地址:地址、数据、地址、数据……

突发(burst,也译猝发)传送:一次事务开始时只给出数据块的首地址,随后连续传送块内的后续数据,后续地址默认为前一个地址加一个数据所占的单元数。

地址数据1数据2数据n

因为省掉了后续地址的传送,在总线宽度和时钟频率都相同的情况下,突发传送的数据传输率高于非突发传送。存储器总线读一个 Cache 块正是这个场景。

由此可以直接判定"哪些措施能提高同步总线数据传输率"这类题:

措施能否提高传输率原因
增加总线宽度每次传的字节数变多
提高总线工作频率每秒传的次数变多
支持突发传送省掉后续地址周期
采用地址/数据线复用见下节

信号线复用

地址线和数据线共用同一组物理导线,分时传地址和数据。

  • 好处减少信号线数量,降低引脚数和成本
  • 代价:地址周期必须占用数据线,传地址时一个字节的数据都动不了

所以复用是省线,不是提速——它反而让一次事务多占周期。凡是问"能否提高数据传输率",复用一律选"不能"。

多通道存储器总线

再并联一整套独立的存储器总线,就叫多通道。n 个通道并行工作,总带宽就是单通道的 n(线性相加)。

图 8.4 Intel Core i7 中各类存储器以及核之间的互连

图 8.4 Intel Core i7 中各类存储器以及核之间的互连(袁春风《计算机组成与系统结构(第 3 版)》p282)

图右下角那个方框把话说尽了:三通道 DDR3-1333,主存控制器标注 3×64bit @ 10.664GB/s,总带宽 32GB/s。

单通道:1333 MT/s×64/8=10664 MB/s10.66 GB/s;三通道:×332 GB/s

遇到"k 通道""内存条型号 DDR3-xxxx"的字样,最后一步别忘了乘通道数。

考场动作清单:一道带宽题怎么走

  1. 判频率类型——题面给的是"时钟频率"还是"工作频率/传输率/型号"?查上面那张判别表。
  2. 补倍数——只有给"时钟频率"时,才乘"每周期传输次数"(DDR ×2、quad pumped ×4)。
  3. 位转字节——总线宽度除以 8。给"64 位"就是 8 字节。
  4. 乘通道数——题面出现多通道时才有这一步。
  5. 看清问的是"带宽"还是"时间"——问带宽只算数据阶段;问"传完一个块要多久""一次事务至少多少时间"才把地址周期和等待周期加进去。

第 5 步是最容易翻车的地方,单独展开一下。

"带宽"和"要多久"是两个问题

题面问算法
总线带宽 / 最大数据传输率只看数据阶段的稳态速率:每周期数据量 × 工作频率
一次事务传完 x 位数据至少需要多少时间数周期:地址周期 + 等待周期 + 数据周期,再乘时钟周期
读取一个主存块需要多少时间同上,且注意不支持突发时每个数据都要单独传一次地址

例题

例 1(时钟频率口径):某系统总线在一个总线周期中并行传输 4 字节,一个总线周期占 2 个时钟周期,总线时钟频率 10MHz。求总线带宽。

:给的是时钟频率。工作频率 =10MHz/2=5×106 次/秒。

B=4 B×5×106=20 MB/s

例 2(工作频率口径):某总线采用同步并行传输,每个总线时钟周期传送 4 次数据(quadpumped),总线工作频率为 1333MHz,总线宽度 64 位。求总线带宽。

:题面给的是工作频率,那个"4"是在解释 1333 的来历(实际时钟约 333MHz),不再乘

B=1333×106×648=10664 MB/s10.66 GB/s

若误按"时钟频率 ×4"算,会得到 42.66GB/s——这正是出题人准备好的那个选项。

例 3(多通道):某机采用 3 通道存储器总线,内存条型号 DDR3-1333,即总线工作频率 1333MHz,总线宽度 64 位。求存储器总线总带宽。

:单通道 1333×8=10664 MB/s10.66 GB/s;三通道 ×332 GB/s

"DDR3-1333"里的 1333 已经是双沿之后的等效传输率(内部时钟约 666.7MHz),不要再乘 2。这道题的两个坑一前一后:前面别乘 2,后面别忘乘 3。

例 4(复用总线的时钟频率口径):某同步总线采用地址/数据线复用,地址/数据线 32 根,总线时钟频率 66MHz,每个时钟周期传送两次数据(上升沿、下降沿各一次)。求最大数据传输率。

:给的是时钟频率,要乘 2。工作频率 =66×2=132×106 次/秒。

B=328×132×106=528 MB/s

注意"复用"在这里不影响最大传输率的计算——最大传输率只看数据阶段。复用的代价体现在"一次事务要多久"那类题里,见例 6。

例 5(突发传送求带宽):某存储器总线时钟频率 420MHz,总线宽度 64 位,每个时钟周期传送 2 次数据。总线事务支持突发传送,最多传 8 次数据:第 1 个时钟周期传地址和读/写命令,第 4 至第 7 个时钟周期连续传送 8 次数据。求总线带宽(最大传输速率)。

:问的是带宽,按口径只算数据阶段——第 1 个周期的地址、第 2~3 个周期的等待都不进分母。

数据阶段每个时钟周期传 8 B×2=16 B

B=16 B×420×106=6720 MB/s=6.72 GB/s

反过来用"4 个数据周期共传 64B"校验:64 B÷4420×106s=6.72 GB/s,一致。

这道题最大的陷阱

题面把地址周期和等待周期都写得清清楚楚("第 1 个周期传地址""从第 4 个周期开始"),很容易让人按整个事务 7 个周期去算,得到 64B/(7/420M)=3.84 GB/s——这是另一个选项。

但"总线带宽 / 最大传输速率"的定义明确排除地址传送与总线裁决时间。题面写出那些周期,是为了让你算出"数据阶段有 4 个周期",不是让你把它们塞进分母。

只有当题目问「完成一次事务需要多长时间」「实际/平均传输速率」时,才把地址与等待算进去。

例 6(复用 + 突发,求时间):某同步总线时钟频率 100MHz,宽度 32 位,地址/数据线复用,传输一个地址或一个数据各占 1 个时钟周期。若支持突发传送,一次"主存写"事务传输 128 位数据至少需要多少时间?

:这次问的是时间,地址周期要算进去。

  • 时钟周期 =1/100MHz=10 ns
  • 128 位 ÷ 32 位 =4 个数据,突发方式只需 1 个地址
  • 1+4=5 个时钟周期 =50 ns

例 7(不支持突发,求时间):某存储器总线宽度 64 位,时钟频率 1GHz,传一个数据或地址需 1 个时钟周期,不支持突发传送。主存每准备一个 64 位数据需 6ns,主存块大小 32B。读取一个主存块需要多少时间?

:时钟周期 =1 ns。块大小 32B ÷ 8B =4 个数据。

不支持突发 每个数据都要自己传一次地址,四次读互相独立:

(1传地址+6主存准备+1传数据)×4=8×4=32 ns

对比一下:若支持突发,只需 1+(6+1)×4=29 ns(地址只传一次)。省下的正是 3 个地址周期——这就是突发传送提高传输率的来源。

例 8(地址总线):地址总线 24 位,按字节寻址,最大寻址空间是多少?

224 B=16 MB

交互可视化

加载可视化中...

易混淆知识点

1. 一条总线能同时有多对设备通信吗?

不能。任一总线周期内,总线上只能有一个主设备控制总线,选择一个从设备进行一对一通信。多对设备同时通信会导致数据冲突。这也是总线需要仲裁机制的原因。

由此可推:单总线结构中,CPU 读主存的同时不可能向打印机发送数据——总线已被占用。

2. 并行总线一定比串行总线快吗?

不一定,而且现代高速总线的答案恰恰相反。并行总线的多条信号线在高频下会产生严重的串扰和时钟偏移(skew),最快位和最慢位的到达时间差被放大,限制了频率提升。串行总线用差分信号和从数据流中恢复时钟,能工作在高得多的频率上,再用多通道并联,总带宽反而超过并行方案。

PCI(并行)被 PCIe(串行)取代、PATA(并行)被 SATA(串行)取代,都是这个原因。所以"并行总线传输比串行总线传输速度快"是错误说法。

3. 增加总线宽度和提高工作频率,哪个更划算?

两者都能线性提高带宽,但增加宽度要增加引脚和走线(成本、串扰),提高频率受信号完整性限制。现代设计更倾向于"窄而快的串行 + 多通道"。这一点理解即可,408 不做定量比较。

考点清单

  • 总线是分时共享的公共通信链路,同一时刻只能有一个主设备控制总线
  • 按功能分:数据总线(双向)、地址总线(单向)、控制总线
  • 数据线传"内容":指令、操作数、命令字、状态字、中断类型号;握手/应答信号走控制线
  • 工作频率 = 时钟频率 × 每周期传输次数;给"工作频率/型号/MT/s"就不再乘倍数
  • 总线带宽 = 工作频率 × 总线宽度/8,不含地址传送与总线裁决时间
  • 突发传送只传首地址,后续地址自动递增,传输率高于非突发
  • 地址/数据线复用只减少信号线数量,不提高数据传输率
  • n 通道存储器总线的总带宽 = 单通道 ×n
  • 越靠近 CPU 的总线越快;不同速度的总线之间必须经桥接器相连
  • 问"带宽"只算数据阶段,问"要多久"才把地址和等待周期算进去

教材出处

  • 袁春风《计算机组成与系统结构(第 3 版)》§8.3 总线互连及总线性能指标:总线带宽定义与 B=W×F/N(p279)、突发传送(p279~280)、图 8.3 基于总线的互连结构(p280)、工作频率与 quad pumped(p281)、三通道 DDR3-1333 与图 8.4(p281~282)

真题练习