Skip to content

总线时序

考情分析

同步/异步通信的区别、异步通信的三种握手方式是选择题常考内容。计算同步总线的数据传输率也偶尔出大题。分离事务作为提升总线利用率的手段,近年关注度在增加。

总线通信的四个阶段

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

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

定时方式解决的核心问题是:主从设备如何协调传输节奏,确保数据在正确的时刻被采样。

同步通信

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

数据有效时钟上升沿(或下降沿)采样

工作过程:

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

带宽计算:若时钟周期为 T,每次传输 d 字节数据需要 k 个时钟周期,则

B=dk×T

异步通信

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

基本信号:

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

根据握手的严格程度,分为三种:

全互锁

主设备                    从设备
  │── 请求 ──→              │
  │                         │── 应答 ──→
  │←── 撤销请求 ──          │
  │                         │── 撤销应答 ──→
  │                         │

每一步都等待对方确认后才进入下一步:

  1. 主设备发请求
  2. 从设备收到请求后发应答
  3. 主设备收到应答后撤销请求
  4. 从设备收到撤销后撤销应答

速度最慢、可靠性最高

半互锁

主设备发出请求后,收到应答即撤销请求,不等待从设备撤销应答。从设备可以在任意时刻自行撤销应答。

比全互锁少一次等待,速度较快,可靠性略低。

不互锁

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

速度最快、可靠性最低

三种握手对比

方式等待次数速度可靠性
全互锁4 次
半互锁3 次
不互锁0 次

半同步通信

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

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

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

分离事务通信

传统总线事务中,从设备准备数据时总线处于空闲等待状态(虽然被占用但无数据传输),这段时间被浪费了。

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

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

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

总线利用率(消除了等待期间的总线空占)
优点缺点
总线利用率显著提高控制复杂,从设备需要仲裁能力
适合主从速度差异大的系统每次事务有两次仲裁开销

交互可视化

加载可视化中...

例题

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

T=1/(100×106)=10 ns,每次传 32/8=4 B。

B=4×100×106=400 MB/s

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

200/50=4 个时钟周期。如果使用半同步方式且主存实际只需 150 ns,仍需凑到 4 个整周期(150/50=3 个数据周期 + 可能的地址周期)。

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

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

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

:一次总线事务传 8×64/8=64 B,耗时 7 个时钟周期。

总线带宽=64B7×1420×106=64×420×106/7=3.84GB/s

注意:这里的"带宽"是按整个总线事务(含地址周期和等待周期)计算的有效带宽,不是峰值传输速率。峰值速率 =8B×420×106×2=6.72GB/s,但总线事务中有地址和等待开销,实际达不到峰值。

考点清单

  • 同步通信用统一时钟,简单但受限于最慢设备
  • 异步通信用握手信号:全互锁最可靠但最慢,不互锁最快但最不可靠
  • 半同步通信 = 同步 + WAIT 信号,兼顾简单性与灵活性
  • 分离事务将总线事务拆为请求和应答两部分,消除等待期的总线空占
  • 突发传送的带宽 = 传输数据量 / 整个事务时间(含地址、等待开销)
  • 同步总线带宽计算:B=总线宽度8×1k×T

真题练习

相关真题(15题)

2025Q20选择题2分

总线带宽计算

2024Q20选择题2分

突发传送方式下总线带宽计算

2023Q20选择题2分

不支持突发传送时读取主存块的时间计算

2021Q19选择题2分

同步/异步总线与突发传送的基本概念

2020Q19选择题2分

QPI总线带宽计算

2019Q19选择题2分

多通道DDR内存总带宽计算

2018Q21选择题2分

提高总线数据传输率的方法

2016Q21选择题2分

总线设计中串行与并行传输速度的对比

2015Q19选择题2分

总线定时方式(同步、异步、半同步)的特性对比

2014Q19选择题2分

同步总线最大数据传输率计算

2014Q20选择题2分

突发传输的定义

2013Q43综合题9分

多体交叉存储与总线突发传送综合题

2012Q19选择题2分

同步总线突发传输写操作时间计算

2012Q43综合题10分

Cache缺失损失与总线传输综合题

2009Q20选择题2分

总线带宽计算