计算机组成原理第 6 章:总线总览

这一页只负责导航,不装内容。每个节号点进去就是那一节的完整讲义。

第 5 章造出了一台能执行指令的机器。但它是一颗孤立的芯片——要访存、要读设备,它必须和别的芯片说话。第 6 章讲的就是芯片之间那几根线上的规矩。

全章只有 7 个三级节,是全书最短的一章,但结构很紧:

主线一:一次总线事务的五个阶段,就是全章的目录。

①请求②仲裁③寻址④传输⑤释放

①②回答「谁能用」——6.1.1 定主从设备、6.2.1 定仲裁方式;③④回答「传什么、传多快」——6.1.5 的带宽在这里兑现;④⑤之间每一步的交接时机,就是 6.2.2 总线定时管的事。6.1.2/6.1.3/6.1.4 三节则回答”这条链走在什么样的物理通路上”。

主线二:所有机制都是「分时共享」要付的代价。

总线的定义只有一句:一组能为多个部件分时共享的公共传输线路。 三个词各生出一节——

定义里的词逼出来的问题在哪一节解决
公共这次是发给谁的地址线与寻址(6.1.1)
分时这次轮到谁仲裁(6.2.1)
传输线路什么时候算传完定时(6.2.2)

这条主线还给出了本章最有用的一条判据:同步还是异步,只问一句话——有没有公共时钟。 不要问”要不要等”,同步定时里也有等()。6.2.2 用这一句同时解决了三分法、三种互锁和 SDRAM 三组问题。

另有一条跨章的观察值得单独记住:「多个请求者争一个资源」这个问题,在 408 里出现了四次。

场景谁裁决冲突处理
总线仲裁(本章 6.2.1)中央仲裁器 / 各设备互比事前预约,不会冲突
中断判优(5.5.3)判优电路事前预约
令牌环(计网)令牌本身事前预约
以太网 CSMA/CD无裁决者允许冲突,退避重传

真正的分界线不是”总线 vs 网络”,而是「事前预约」还是「事后补救」。 前三行在同一侧,只有以太网在另一侧。这一层共性是提问 #49 自己发现的,本章只是把边界补齐。

还有一条老规律在本章第五次出现:要整齐就得按最慢的来。 机器周期按访存时间定(5.2.1)、单周期按最慢指令定(5.2.3)、同步控制按最慢操作定(5.4.2)、流水段按最慢段定(5.6.2),现在是同步总线按最慢的从设备定拍数(6.2.2)。

章节导航

6.1 总线概述 ✅

节页面一句话
6.1.1总线的基本概念主设备判据 = 谁发出地址;控制线各条方向不同;四大特性 = 接口标准的完整清单
6.1.2总线的分类四个互相独立的维度;并行加宽、串行加快,加宽先撞墙
6.1.3系统总线的结构单→双→三是同一条演化线:把速率差异大的流量分开;北桥为什么消失
6.1.4常见的总线标准选学。物理接口 / 传输层 / 命令协议是三层,NVMe 不是总线
6.1.5总线的性能指标公式只有一条,难点全在”认频率”: / /

6.2 总线事务和定时 ✅

节页面一句话
6.2.1总线事务五阶段 = 全章目录;仲裁三方式与 5.5.3 同构,本章只补计数器定时查询
6.2.2总线定时判据:有没有公共时钟;三种互锁按受约束的信号数 0/1/2 分家

本章高频边界

每一行都是成对的辨析,点进去看完整论证。

边界判据在哪
主设备 / 从设备谁发出地址;角色按事务定不按部件定6.1.1
主存能不能当主设备不能,永远是从设备6.1.1
要不要仲裁有没有第二个可能的主设备6.1.1
分时 / 广播分时约束发送方,接收可以是全体6.1.1
数据线上的命令字 / 控制线上的写使能被搬运的内容 vs 这次动作的命令6.1.1
控制线是单向还是双向都不是,逐条看方向6.1.1
内部总线争用 / 系统总线争用排拍(设计时) vs 仲裁(运行时)6.1.1
功能特性 / 时间特性”是什么” vs “什么时候有效”6.1.1
时间特性 / 总线定时后者是前者的一部分内容6.1.1
CO 时间特性 / 计网规程特性同一件事,只是名字不同6.1.1
总线仲裁 / CSMA/CD事前预约 vs 事后补救6.1.1
片内 / 系统 / 通信总线跨不跨芯片、跨不跨机器6.1.2
串行 / 并行加频率 vs 加位宽;并行先撞墙6.1.2
半双工 / 全双工半双工付转向时间,全双工要两组通道6.1.2
总线复用 / DRAM 行列复用手法相同,对象与协议层次不同6.1.2
数据总线宽度 / 地址空间无关;地址空间看地址线与编址单位6.1.2
单 / 双 / 三总线结构每一行的遗留瓶颈就是下一行要解决的问题6.1.3
加总线 / 多体交叉前者解通路争用,后者解主存端口争用6.1.3
北桥 / 南桥挂高速怕延迟的 vs 挂低速的;被吃掉的是北桥6.1.3
总线 / 主板主板只是中间那一层的载体6.1.3
共享总线 / 点对点链路点对点不需要仲裁6.1.3
PCI / PCIe共享并行 → 点对点串行,不是版本新旧6.1.4
NVMe / PCIe / M.2命令协议 / 传输层 / 插槽形状,三层6.1.4
DDR 的”双倍”只有数据双沿,命令仍单沿6.1.4
/ 节拍频率 vs 每秒传送次数6.1.5
总线频率 / CPU 主频算带宽只用前者6.1.5
给 MT/s 要不要再乘 2不要,它已经是 6.1.5
峰值带宽 / 有效带宽后者扣掉地址、等待、转向6.1.5
总线利用率 / 流水线效率同构:分子是上限,分母被开销撑大6.1.5
时钟 / 总线周期 / 总线事务包含关系确定,倍数不确定6.2.1
总线周期 / 机器周期两条独立的链,只在访存处交汇6.2.1
仲裁传不传数据不传;与”控制部件不生产数据”同判据6.2.1
链式 / 计数器 / 独立请求线数 ↔ 灵活性 ↔ 响应速度同一条轴6.2.1
固定优先级 / 循环优先级计数器从 0 起 vs 从上次结束处起6.2.1
集中式 / 分布式仲裁有没有中央仲裁器6.2.1
读事务 / 写事务读多一次数据线转向6.2.1
单次 / 突发传送突发只发首地址,摊薄固定开销6.2.1
突发长度 / Cache 块大小不等;块更大要拆成多次事务6.2.1
分离事务 / 非阻塞 Cache放弃总线占用 vs 放弃 CPU 的阻塞等待6.2.1
分离事务提高什么利用率,不缩短单次延迟6.2.1
同步 / 异步有没有公共时钟(不要问”要不要等”)6.2.2
同步 / 半同步拍数固不固定6.2.2
半同步 / 异步有没有公共时钟——这条才是真分界6.2.2
插了 算不算同步算;两类口径归同步,三类口径归半同步6.2.2
不 / 半 / 全互锁撤销时受约束的信号数 0 / 1 / 26.2.2
”半互锁”的半信号数的一半,不是时间的一半6.2.2
有 READY/ACK 是不是异步不一定;看是否在公共时钟边沿采样6.2.2
SDRAM 同步还是异步同步;多周期延迟 ≠ 异步6.2.2
DQS / ACK数据选通 vs “我完成了”6.2.2
CPU 等待时能否干别的由 CPU 微结构决定,与总线定时无关6.2.2
分离式通信 / 同步异步不在同一维度6.2.2
5.4.2 同步/异步/联合 ↔ 本章三定时判据完全相同,都是折中获胜6.2.2

计算模板

要求什么怎么算
总线时钟周期
传输频率( 个时钟一次传送)
传输频率(一个时钟 次,DDR )
传输频率(已知总线周期 )
每拍字节数
峰值带宽
有效带宽
总线利用率
数据拍数 传输量 每拍字节
同步事务总时间(基本拍数 个数)
突发传送时间
突发传送利用率
传一个 Cache 块要几次事务
总线周期折合 CPU 周期数
独立请求方式的线数(每设备一对 BR/BG)
计数器定时查询的设备号线数
地址线 根可编码的地址数
多体交叉能否支撑连续拍同体重访间隔 是否 存取周期

复习顺序

  1. 6.1.1 把三个词(公共、分时、传输线路)和它们逼出的三个问题记住——这是全章的骨架
  2. 记住主设备判据 = 谁发出地址,以及控制线各条方向不同这两个必考点
  3. 6.1.2 只需记住四个维度互相独立,以及并行加宽 / 串行加快这条取舍
  4. 6.1.3 按”每一行的遗留瓶颈就是下一行要解决的问题”读三张图,不要分别背
  5. 6.1.4 选学,只记三层不要混(NVMe / PCIe / M.2)
  6. 6.1.5 把「认频率」那张表背下来——本节失分点几乎全在这里
  7. 用上面的计算模板做 3~5 道带宽题,重点练有效带宽和突发利用率
  8. 6.2.1 先记五阶段,再记五个时间概念的两条独立的链
  9. 仲裁三方式不要重学——回 5.5.3 复习中断判优,本章只加”计数器定时查询”
  10. 6.2.2 先立判据「有没有公共时钟」,再记三种互锁的0 / 1 / 2
  11. 把 5.4.2 的同步/异步/联合控制拿来对照,两处只需记一套
  12. 最后扫 名词库的「高频范围限定清单」48 行

说明

本章 7 个三级节里有 4 节零提问(6.1.2 / 6.1.4 / 6.1.5 / 6.2.1),而 6.2.2 一节独占 7 条——单节密度全 CO 第二。6.1.5 零提问最值得留意,因为它是本章计算题的全部来源;没卡住是因为带宽公式在第 1、3 章已经反复练过。提问密度反映”当时哪里不顺”,不反映”哪里重要”,所以 6.1.5 仍按考试权重写成了本章第二厚的一页。

6.2.2 那 7 条分两批,隔了一天,第二批是为这个话题专门新开的一个对话。详见 原始提问档案(本地资料)。

链接