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

总线事务与定时

大纲定位

对应大纲「总线」第三条:总线事务和定时

定时方式解决的是一个很具体的问题:主设备把数据放上总线之后,从设备凭什么知道"现在可以取了"。四种方案(同步、异步、半同步、分离事务)就是四种回答。

考情分析

这一节的题几乎都是"下列叙述中错误的是"。判断题的落点很集中:三种握手谁快谁可靠、同步时钟由谁提供、半同步的握手信号受谁控制。这些点单独看都不难,但文字表述稍作变形就容易晃神——所以下面每一条都写成可直接比对的形式。

总线事务的四个阶段

一次完整的总线事务包括:

阶段做什么
1. 申请分配主设备请求总线,经仲裁获得控制权
2. 寻址主设备发出地址和命令,选中从设备
3. 传输主从之间进行数据交换
4. 结束主设备撤除信号,释放总线控制权

数据传输阶段可以是非突发的(每个数据都配一次地址),也可以是突发的(只给首地址,后续地址自动递增)。突发传送的定义与带宽计算见 总线概述

同步通信

主从设备使用统一的时钟信号,所有操作都发生在固定的时钟边沿。

时钟从哪来

同步总线的时钟由总线控制器(或 CPU)统一发出,通过一条时钟线送到挂在总线上的所有部件,不是各设备各自提供自己的时钟

这正是"同步"二字的含义——大家用的是同一把尺子。如果每个设备都提供自己的时钟,那就不叫同步总线了。选择题里"同步时钟信号可由各设备提供"是错误说法。

工作过程:

  1. 主设备在第 1 个时钟周期发出地址
  2. 从设备在约定的第 k 个时钟周期返回数据
  3. 主设备在第 k 个周期的时钟沿采样数据
优点缺点
控制简单,不需要应答信号所有设备必须按最慢设备的速度工作
传输速率固定,可精确计算带宽不同速度的设备混接时效率低
适合总线上设备速度差异小的场景不能适应不同类型的从设备

同步的代价:时间只能按整周期给。 若某次操作从设备实际需要 220ns、总线时钟周期为 50ns,也必须凑足 220/50=5 个整时钟周期,多出的 30ns 白白浪费。这是同步(以及半同步)方式的固有开销。

带宽计算:设时钟周期为 T,每 k 个时钟周期传 d 字节,则 B=d/(k×T)。完整的带宽题套路(工作频率口径、突发、多通道)在 总线概述 一篇里集中讲。

异步通信

不使用统一时钟,主从之间通过握手信号(请求 Request / 应答 Acknowledge)协调。

  • 请求:主设备发出,表示地址/数据已就绪
  • 应答:从设备发出,表示已接收 / 数据已准备好

根据"撤销信号时要不要等对方",分为三种。判别的关键词是互锁——互锁的意思是"我的下一步动作,锁在你的上一步动作上"。

全互锁(双方都互锁)

主设备                         从设备
  ①── 请求有效 ────────────────→
                    ←──────────② 应答有效(收到请求后才发)
  ③── 撤销请求 ────────────────→(收到应答后才撤)
                    ←──────────④ 撤销应答(看到请求撤销后才撤)

两处互锁:② 锁在 ① 上,④ 锁在 ③ 上。最慢,最可靠。

半互锁(只有主设备互锁)

主设备发出请求后,收到应答才撤销请求(这一处仍互锁);但从设备发出应答后,不等请求撤销,自己延时一段就撤销应答。

一处互锁。速度居中,可靠性居中。

不互锁(都不互锁)

主设备发出请求后,经固定延时自行撤销,不等应答;从设备发出应答后也经固定延时自行撤销。

零处互锁。最快,最不可靠——因为谁也没确认对方真的收到了。

三种握手对比

方式互锁处数速度可靠性
全互锁2(双方都等)最慢最高
半互锁1(只有主设备等)
不互锁0(都不等)最快最低

记忆钩子:互锁越多越慢、越可靠。三种方式的速度顺序和可靠性顺序永远相反,任何把两者说成同向的选项都是错的。

半同步通信

在同步通信基础上增加一条 WAIT(等待) 信号线。

  • 默认按时钟同步传输
  • 从设备速度跟不上时拉低 WAIT,主设备插入整数个等待周期
  • 从设备就绪后释放 WAIT,恢复同步传输

半同步的握手信号仍受时钟控制

半同步是"同步为主 + 握手为辅":WAIT 这类握手信号不是随时生效的,而是在时钟边沿被采样——主设备只在每个时钟沿去看一眼 WAIT 是高是低,再决定要不要插入等待周期。

所以"半同步通信方式中,握手信号的采样由同步时钟控制"是正确说法。半同步没有摆脱时钟,它只是让时钟能被拉长整数个周期。

半同步兼顾了同步的简单性和对不同速度设备的适应性。

定时方式速查

方式有无统一时钟有无握手适应速度差异控制复杂度
同步最低
异步
半同步有(受时钟采样)较好
分离事务最高

分离事务通信

传统总线事务中,从设备准备数据的这段时间里,总线被主设备占着但没有数据在流动——这段时间被浪费了。

分离事务(Split Transaction)把一次总线事务拆成两个子事务:

  1. 请求子事务:主设备发出地址和命令后立即释放总线
  2. 应答子事务:从设备准备好数据后,自己申请总线,把数据发回

两个子事务之间,总线可以被其他设备使用。

优点缺点
总线利用率显著提高控制复杂,从设备也需要有申请总线的能力
适合主从速度差异大的系统一次传输要仲裁两次

注意分离事务提高的是"利用率",不是单次传输的速度。 对发起请求的那个主设备来说,从发出请求到拿到数据的总延迟反而略有增加(多了一次仲裁);省下来的空闲时间是给别的设备用的。选择题说"分离事务可提高总线利用率"是对的,说"可缩短一次数据传输的时间"就错了。

交互可视化

加载可视化中...

例题

例 1:同步总线时钟频率 100MHz,总线宽度 32 位,每次传输需要 1 个时钟周期。求总线带宽。

:每秒传 100×106 次,每次 32/8=4 B,故 B=400 MB/s

例 2:同步总线中,主存读周期 200ns,总线时钟周期 50ns,一次读操作需要多少个时钟周期?

200/50=4 个时钟周期。若主存需要 220ns,则要 5 个周期——同步方式只能按整周期给时间。

例 3:为什么分离事务能提高总线利用率?

:传统方式下从设备准备数据期间总线被占用但无数据流动。分离事务让主设备先释放总线,这段时间可供其他设备传输,总线空闲被利用起来。

例 4:判断下列说法的对错。

  1. 异步通信中全互锁协议最慢 —— (两处互锁,等待最多)
  2. 异步通信中非互锁协议可靠性最差 —— (零处互锁,无确认)
  3. 同步通信中同步时钟信号可由各设备提供 —— (由总线控制器统一提供)
  4. 半同步通信中握手信号的采样由同步时钟控制 —— (WAIT 在时钟沿被采样)
  5. 异步通信中一次握手过程完成一位数据交换 —— (一次握手完成的是一次总线传输,位数由总线宽度决定,可以是 8 位、32 位、64 位)
  6. 同步总线的时钟频率不一定等于工作频率 —— (一个时钟周期可传多次数据)

考点清单

  • 总线事务四阶段:申请分配 → 寻址 → 传输 → 结束
  • 同步通信的时钟由总线控制器统一提供,不是各设备自带
  • 同步/半同步只能按整数个时钟周期给时间,不足一周期也要凑整
  • 异步三种握手:全互锁 2 处互锁最慢最可靠,半互锁 1 处,不互锁 0 处最快最不可靠
  • 速度顺序与可靠性顺序永远相反
  • 一次握手完成的是一次传输(可以是多位),不是"一位"
  • 半同步 = 同步 + WAIT,握手信号仍在时钟沿被采样
  • 分离事务提高的是总线利用率,单次传输的延迟并不减少

真题练习

相关真题(1题)

总线事务与带宽计算的真题集中挂在 总线概述 一篇下(含突发传送、工作频率、多通道等),做完这里的题请转过去。