Skip to content

总线概述与分类

2026 大纲 六(一)1 总线的基本概念六(一)2 总线的组成及性能指标

共享是一笔借来的便宜,后面全在还债

部件之间要互相通信,做法只有两种。分散连接是两两拉专线——任意两个部件之间都有一条独占的通路,谁都不用等谁,但线路数随部件数平方级增长n 个部件要 n(n1)/2 条。总线连接是把所有部件挂到同一组公共传输线上分时共享,增长立刻被压成线性,新部件接上去就能用。

这笔便宜是借来的,欠下的债只有一条,但它是本质的:同一时刻,总线只能承载一次传输。一个总线周期内只有一对主从设备在通信——所以单总线结构里,CPU 读主存的同时不可能再向打印机送数据。总线因此可能成为整个系统的通信瓶颈

理解这一点,总线这一章那一长串看起来互不相干的概念就归位了——它们全都是在还这笔债

共享带来的问题拿什么还
多个部件同时想发送总线判优/总线仲裁
发送方与接收方速度不一致总线定时(同步/异步/半同步)
一条总线拖不动所有速度档次的设备分层总线 + 桥接器
从设备准备数据时总线空转分离事务、突发传送

判优、定时、分层、突发、分离事务不是五个并列的知识点,是同一笔债的五种还法。 这条线索会一直贯到本章最后。

而本篇要处理的是共享之外的另一半:这组线怎么分工、这组线能跑多快。前者的判据一句话就能说清,后者则是全章考得最密的一处——近年几乎每年一道带宽计算题,而算错的原因高度集中在两个频率口径上。

交互可视化

加载可视化中...

一、主设备、从设备与总线周期

挂在总线上的部件按能不能发起传输分成两类:主设备对总线有控制权、能主动发起一次传输;从设备只能被动响应主设备的请求。一次完整的总线操作称为总线周期(也叫总线事务),从主设备取得总线控制权开始,到它释放总线为止。

"一个总线周期内只有一对主从设备在通信"这句话是上面那笔债的直接形式。它在题目里的典型用法是判断"能不能同时":单总线结构中,CPU 读主存的同时不可能再向打印机送数据——不是因为哪个部件忙不过来,而是因为总线只有一条。

二、三组信号线的分工

总线类型承载什么位数方向
数据总线(DB)源部件与目的部件之间被传输的信息本身总线宽度,与机器字长有关双向
地址总线(AB)源数据/目的数据所在的主存单元或 I/O 模块地址决定寻址空间,n 位对应 2n 个单元单向,由 CPU 送出
控制总线(CB)定时信号与命令信息视控制信号种类而定有出有入

划分不看信号的名字,只看它在这次传输里扮演什么角色

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

整张表压成一句判据:被搬运的东西走数据线,描述"这次搬运该怎么进行"的信号走控制线MREQIOWR 这类电平信号本身就是控制动作;命令字虽然叫"命令",却是 CPU 写给接口的一个字,走数据线——归属不由名字决定,由角色决定。控制线还有一个更省事的教材定义,是排除法给的:除地址线和数据线以外的通信线都是控制线

三、总线的层次与分层动机

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

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

总线按所处层次分三类:片内总线(芯片内部,如 CPU 内部各寄存器与 ALU 之间)、系统总线(CPU、主存、I/O 接口之间)、通信总线(也叫外总线,如 USB、以太网)。系统总线内部还要再分层——处理器总线 > 存储器总线 > I/O 总线,越靠近 CPU 的越快。

越往外挂的设备越多、走线越长、要兼容的标准越杂,这三项都压制频率,所以越靠外的总线越慢。速度档次不同的两条总线不能直接对接,中间必须经桥接器(北桥 MCH、南桥 ICH)做速度匹配与协议转换。分层的动机就是第一节那条债:若所有设备挂在同一条总线上,整条总线只能按最慢设备设计;分层之后,慢设备的拖累被隔离在外层,层与层之间由桥接器做速度匹配与协议转换。

传统芯片组是 CPU + 北桥 + 南桥三芯片;北桥的存储器控制功能被并进 CPU 芯片后,出现 CPU + PCH 的双芯片结构。

四、性能指标与两个频率

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

早期总线一个时钟周期传一次数据,两个频率相等。现在有些总线一个时钟周期传 2 次(双沿)或 4 次(四倍并发),工作频率就是时钟频率的 2 倍或 4 倍。工作频率的本征单位是 MT/s(每秒百万次传送),习惯上写成 MHz,那只是量纲上的等价说法,它不是基础时钟——某前端总线实际时钟 333MHz、四倍并发,传输速率 1333MT/s,习惯称 1333MHz。

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

两个数常常同时出现,是因为其中一个在解释另一个的来历:写"每个时钟周期传送 4 次、工作频率 1333MHz"时,那个 4 是在说明 333×4=1333,倍数已经用掉了。

口径定下来之后,总线带宽就是一句话:

B=W×FN=工作频率×总线宽度8

其中 W 是总线宽度(字节)、F 是时钟频率、N 是一次传送占几个时钟周期。

比公式更要紧的是它的定义边界带宽不考虑总线裁决、地址传送等所花的时间,只算数据阶段。这不是为了让公式好算——把那些阶段计入之后,算出来的数会随数据块长度、从设备速度、当时有几个主设备在争总线而变化,同一条总线在不同场合会得出完全不同的"带宽",这个量就没法用来横向比较两条总线了。剔除非数据阶段之后,带宽只由总线宽度工作频率这两个设计者能选的参数决定,于是它成为一个干净的上界

由此产生一条做题时的分岔:问"带宽是多少"只算数据阶段;问"传完一个块要多久""一次事务至少要多少时间"才要把地址周期、等待周期一并数进去,算出来的实际速率永远低于带宽。两个数都对,回答的是两个问题。

带宽为什么被定义成只算数据阶段,以及两个频率口径怎么切换(拿不准"给的这个频率要不要再乘倍数""算带宽要不要把等待周期算进去"时展开)

先看口径切换。 某存储器总线时钟频率为 200MHz,每个时钟周期传送 2 次数据,总线宽度 64 位,采用双通道。题面给的是时钟频率,倍数因子还没算进去,必须先折算工作频率:

工作频率=200MHz×2=400 M次/s单通道带宽=400×106×648=3200 MB/s=3.2 GB/s双通道总带宽=3.2×2=6.4 GB/s

若题面改成给"工作频率 400MHz",第一步就该跳过——倍数已经含在里面了。这一步是这类计算最容易失手的地方:多乘一次或漏乘一次,结果整体偏离若干倍。

再看定义边界。 教材定义:总线带宽指总线的最大数据传输率,即总线在进行数据传输时单位时间内最多可传输的数据量,不考虑总线裁决、地址传送等所花的时间。

这不是为了让公式好算。设想把地址传送、仲裁、等待周期全部计入:得到的数值会随数据块长度(块越长,一次地址被摊得越薄)、从设备速度(慢设备插的等待周期多)、当时有几个主设备在争总线而变化。同一条总线在不同场合会算出完全不同的"带宽",这个量就失去了横向比较两条总线优劣的作用。

把非数据阶段剔除后,带宽只由总线宽度工作频率这两个设计参数决定——它们恰好是设计者能选的东西。于是带宽变成一个干净的上界

实际吞吐率永远不高于总线带宽;数据块越长、非数据开销被摊得越薄,实际吞吐越接近带宽。

一次事务的实际用时与带宽是两回事。 某同步总线时钟频率 40MHz、宽度 32 位,一次读事务为 1 个周期传首地址 + 2 个等待周期 + 连续 4 个周期各传一个 32 位数据:

带宽只看数据阶段的稳态速率,每个时钟周期传 4 B:

B=40×106×4=160 MB/s

事务时间要把所有周期都数进去,时钟周期 T=1/40MHz=25 ns:

t=(1+2+4)×25 ns=175 ns,平均速率=4×4 B175 ns91.4 MB/s

两个数都对,但回答的是两个问题:160MB/s 是这条总线能跑到的上限,91.4MB/s 是这次事务实际跑出来的,差距来自那 3 个非数据周期。若把突发长度从 4 拉长到 16,非数据周期仍是 3 个,平均速率就会向 160MB/s 靠拢——突发传送正是逼近这个上界的手段

五、突发传送与信号线复用

非突发方式在每个传送周期内先传地址、再传数据:地址、数据、地址、数据……突发(burst,也译猝发)传送在开始时只给出数据块的首地址,随后连续传送块内后续数据,后续地址默认为前一个地址加上一个数据所占的单元数:

首地址数据1数据2数据n

因为无须在地址线上传送后续地址,在总线宽度和总线时钟频率相同的情况下,突发传送的数据传输率高于非突发传送。存储器总线读一个 Cache 块正是这个场景——CPU 要的本来就是整块,见 Cache 的地址映射

信号线复用指没有单独的地址线,地址信息通过数据线传送。收益是减少信号线数量,降低引脚数与成本;代价是传地址时数据线被占着,这段时间一个字节的数据也传不了。

措施数据传输率原因
增加总线宽度提高每次传的字节数变多
提高总线工作频率提高每秒传送的次数变多
支持突发传送提高后续地址不再占用总线时间
采用地址/数据线复用不提高地址阶段反过来要占用数据线

这张表的判据只有一句:看这项措施是让数据阶段跑得更快,还是只把非数据阶段挪了个位置。 突发传送把后续地址整个消掉,数据阶段占的比例上升,属前者;地址/数据线复用只是把地址从地址线搬到数据线上传,省的是信号线数量与引脚成本,总周期数反而不减,属后者。

顺带还有一条常被想反的:并行传输不一定比串行快。高频长距下并行线之间的串扰与各条线的时钟偏移会限制频率,反而更慢——这正是 PCIe、USB 这些新标准全都走串行的原因,展开见《总线标准》。

六、多通道存储器总线

并联多套独立的存储器总线即为多通道,n 个通道的总带宽是单通道的 n

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

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

图中处理器支持三通道 DDR3-1333 内存条插槽,存储器总线宽度 64 位、每秒传送 1333M 次,单通道带宽 1333M×64/8=10.664 GB/s,三通道合计约 32GB/s。内存条构成、DDR 的预取技术与型号命名规则属大纲三(四)1,见 DRAM 芯片与内存条

考点速记

  1. 总线是分时共享的公共传输线,代价是可能成为通信瓶颈;判优、定时、分层、突发都是在还这笔债,同一时刻只有一对主从在通信。
  2. 划分信号线的判据是被搬运的内容走数据线,描述搬运方式的信号走控制线——命令字、状态字、中断类型号都是内容。
  3. 总线带宽 = 工作频率 × 总线宽度/8,定义上不计入裁决与地址传送时间,因而是只取决于两个设计参数的上界;突发传送逼近这个上界,地址/数据线复用只省线不提速。

这一节在真题里被考过的形式

总线带宽计算是 co 最稳定的一道年货——近十七年考了七次,而且几乎不换花样:给一个频率、一个宽度,问带宽。真正拉开分差的从来不是公式,是那个频率到底是哪一个频率

  • 给的是时钟频率,要乘倍数(2014-19、2024-20、2009-20)。2014-19:地址/数据线复用共 32 根 宽度 4 B,时钟频率 66 MHz、双沿各传一次 工作频率 132 M 次/s,带宽 =132M×4=528 MB/s。2024-20:时钟频率 420 MHz、每周期传 2 次 840 M 次/s,宽度 64 位 =8 B,带宽 =6.72 GB/s——题面那串"第 1 个时钟周期传地址、第 4 至第 7 个时钟周期传 8 次数据"全是干扰,带宽只算数据阶段的稳态速率。2009-20 是反方向的一档:一个总线周期占 2 个时钟周期,所以要除以 2 而不是乘,10MHz/2×4B=20 MB/s
  • 给的是工作频率或型号名,不再乘(2025-20、2019-19)。2025-20 明写"工作频率为 1333MHz",那个 quadpumped 的 4 倍已经含在这个数里,直接 1333M×8=10.66 GB/s;若手贱再乘个 4,得到的 42.66 GB/s 恰好就是错项 B。2019-19 给的是"DDR3-1333"这个型号名,同样是等效传输速率、不再乘,单通道 1333M×8=10.664 GB/s,三通道 ×3 得约 32 GB/s。⚠️ 这两题与上一档的差别,全在题面那两个字上——读到"时钟"就乘,读到"工作/传输速率/MT/s/型号名"就不乘
  • 题面直接把公式给你(2020-19)。QPI 那道题写明"带宽为每秒传送次数 × 2B × 2",此时不要用自己那套:时钟 2.4 GHz、每周期传 2 次 4.8 G 次/s,代入得 19.2 GB/s题面给了口径就按题面的走,它多出来的那个 ×2 是全双工双向。
  • 问哪些措施能提高数据传输率(2018-21)。增加宽度、提高工作频率、支持突发都能,地址/数据线复用不能。判据就是第五节那句:看它是让数据阶段更快,还是只把非数据阶段挪了位置。
  • 挑出关于总线设计/多总线结构的错误叙述(2016-21、2017-20、2011-20)。三道题的错项各打一处:"并行总线比串行快"(2016-21,高频长距下反而更慢)、"PCI-Express×16 采用并行传输"(2017-20,PCIe 是串行;同题的"靠近 CPU 的总线快""总线之间须经桥接器"都对)、"握手信号走数据线"(2011-20,它不携带内容,走控制线;同题的指令、操作数、中断类型号都走数据线)。

另有两类题也渲染在下方,但不属于本篇

  • 总线定时与总线事务(2015-19、2012-19、2014-20、2023-20、2021-19 共 5 道)挂的是 bus-concepts 标签,但它们考的是同步/异步定时、突发事务的时序,讲解与考法清单在总线事务与定时,不在本篇重复。
  • 总线标准辨析(2010-20 的 ISA/EISA/PCI、2012-20 的 USB 特性、2013-19 的接口标准命名共 3 道)已不在 2026 大纲内——大纲的总线部分只列了基本概念、组成及性能指标、总线事务和定时三条。这几道按"真题原貌"保留收录,只作历史参考,不必按考点准备;其中 2012-20 涉及的"串行 vs 并行"仍属基本概念,那一半有效。

易错:拿到频率就直接乘宽度。先判它是时钟频率还是工作频率——前者要乘每周期传送次数,后者已经含进去了。

易错:把"每个总线周期占 2 个时钟周期"当成倍增因子。那是除以 2,方向相反。

易错:算带宽时把地址周期、等待周期算进去。带宽只算数据阶段;问"一次事务多久"才全数进去。

易错:认为地址/数据线复用能提高传输率。它省的是信号线与引脚,总周期数不减。

易错:认为并行传输一定比串行快。高频长距下串扰与时钟偏移使并行反而更慢。

易错:把握手信号、读写命令归到数据线。数据线只走被搬运的内容。

教材出处
  • 袁春风《计算机组成与系统结构(第 3 版)》§8.3.1 总线的基本概念:分散连接与总线连接、总线连接的两个优点与通信瓶颈、数据线/地址线/控制线的定义与地址数据复用(p278)
  • 袁春风《计算机组成与系统结构(第 3 版)》§8.3.1:总线性能指标(总线宽度、总线工作频率、总线带宽与 B=W×F/N、寻址能力、定时方式)(p279);突发传送与总线负载能力(p280)
  • 袁春风《计算机组成与系统结构(第 3 版)》§8.3.2 基于总线的互连结构:北桥 MCH 与南桥 ICH、图 8.3(p280);FSB 的 MT/s 口径与四倍并发、三通道 DDR3-1333 与 10.664GB/s(p281);图 8.4(p282)
  • 唐朔飞《计算机组成原理(第 3 版)》§3.2 总线的分类:片内总线、系统总线、通信总线(p43)
  • 唐朔飞《计算机组成原理(第 3 版)》§3.3 总线特性及性能指标:总线宽度、总线带宽的字节口径、总线复用、信号线数、负载能力(p45~46)

相关知识

总线仲裁总线事务与定时总线标准DRAM 芯片与内存条Cache 的地址映射

真题练习