6.2 总线事务与定时
总线事务的五个阶段与突发传送;同步定时、异步定时(不互锁、半互锁、全互锁)、半同步定时与分离式通信的原理和特点;集中式总线仲裁方式(拓展)。
总线事务
从请求总线到完成总线使用的操作序列称为总线事务,它是在一个总线周期中发生的一系列活动。典型的总线事务有存储器读、存储器写、I/O 读、I/O 写、中断响应等。一个总线事务通常包括以下 5 个阶段:
- 请求阶段:主设备(CPU 或 DMA 控制器)发出总线传输请求;
- 仲裁阶段:总线仲裁机构决定把下一个传输周期的总线使用权授予哪个申请者;
- 寻址阶段:获得使用权的主设备通过总线给出要访问的从设备地址及有关命令,启动从设备;
- 传输阶段:主设备与从设备进行数据交换,可以单向或双向传送;
- 释放阶段:主设备的有关信息从系统总线上撤除,让出总线使用权。
总线定时
总线在双方交换数据的过程中需要在时间上相互配合,这种控制称为总线定时,其实质是一种协议或规则。主要有同步、异步、半同步和分离式四种方式。
同步定时方式
系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。每个部件或设备发送、接收信息都在固定的总线传送周期中进行,一个传送周期结束,下一个传送周期开始。
- 优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。
- 缺点:主从设备之间属于强制性同步,不能及时进行数据通信的有效性检验,可靠性较差;如果设备速度差异大,只能按最慢的设备来设计时钟。
- 适用:总线长度较短、总线所接部件的存取时间比较接近的系统。
异步定时方式
没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的握手(handshake)信号来实现定时控制:主设备发出「请求」信号,从设备收到请求后发出「回答」信号。
- 优点:总线周期长度可变,能保证工作速度相差很大的部件或设备之间可靠地交换信息,自动适应时间的配合。
- 缺点:比同步方式复杂,速度比同步方式慢。
按照请求和回答信号的撤销是否互锁,异步定时又分为三种:
| 方式 | 请求的撤销 | 回答的撤销 | 特点 |
|---|---|---|---|
| 不互锁 | 主设备发出请求后不等回答,经过一段时间自行撤销 | 从设备发出回答后经过一段时间自行撤销 | 速度最快,可靠性最差 |
| 半互锁 | 主设备收到回答后才撤销请求(互锁) | 从设备经过一段时间自行撤销(不互锁) | 介于两者之间 |
| 全互锁 | 主设备收到回答后才撤销请求(互锁) | 从设备检测到请求撤销后才撤销回答(互锁) | 最可靠,速度最慢 |
切换下面演示中的定时方式,对比各个信号跳变的因果关系:
半同步定时方式
半同步定时结合了同步和异步的特点:所有地址、命令、数据信号的发出时间都严格参照系统时钟的某个前沿开始,接收方在系统时钟的后沿进行判断识别——这一点与同步方式相同;同时又增设一条等待(WAIT)响应信号线,从设备如果来不及完成操作,就通过 WAIT 信号让主设备插入等待时钟周期,这样又能像异步方式那样允许不同速度的设备协调工作。握手信号的采样由同步时钟控制。
半同步方式适用于系统工作速度不高,但包含许多速度差异较大的设备的简单系统。
分离式通信
在前三种方式中,从主设备发出地址和读命令开始,到从设备准备好数据为止,总线一直被占用却没有传送有效信息。分离式通信把一个读总线事务分成两个子过程:
- 主设备申请占用总线,发出地址和命令后立即放弃总线;
- 从设备准备好数据后,自己申请占用总线(此时它成为主设备),把数据发回。
在两个子过程之间,总线可以被其他设备使用,因此提高了总线的利用率。其特点是:各设备都有权申请占用总线;采用同步方式通信,不等对方回答;各设备准备数据时不占用总线;总线被占用时没有空闲等待。
总线仲裁(拓展)
当多个主设备同时请求使用总线时,需要由总线仲裁决定谁获得总线控制权。
| 方式 | 原理 | 特点 |
|---|---|---|
| 链式查询 | 总线允许信号 BG 从总线控制器出发,沿设备串行传递,遇到第一个发出请求的设备就停止 | 只需 BS、BR、BG 三根控制线,易于扩充;离总线控制器越近的设备优先级越高,优先级固定;对电路故障敏感 |
| 计数器定时查询 | 总线控制器收到请求后,计数器从某个值开始计数,计数值通过设备地址线广播,与计数值相同且有请求的设备获得总线 | 优先级可以通过改变计数初值灵活调整;需要 ⌈log₂n⌉ 根设备地址线 |
| 独立请求 | 每个设备都有一对独立的总线请求线 BRᵢ 和总线允许线 BGᵢ,由总线控制器中的排队电路决定 | 响应速度快,优先级控制灵活;控制线多(2n 根),控制逻辑复杂 |
以上三种都属于集中仲裁(有一个中央仲裁器)。分布仲裁不需要中央仲裁器,每个潜在的主设备都有自己的仲裁号和仲裁器,通过比较仲裁号决定谁获得总线。
即时练习
- 1某同步总线的时钟频率为 100 MHz,宽度为 32 位,地址/数据线复用,每传输一个地址或数据占用一个时钟周期。若该总线支持突发(猝发)传输方式,则一次「主存写」总线事务传输 128 位数据所需要的时间至少是( )。
- 2一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元读出或写入多个数据。这种总线事务方式称为( )。
- 3下列有关总线定时的叙述中,错误的是( )。
- 4下列关于总线设计的叙述中,错误的是( )。
- 5下列选项中,可提高同步总线数据传输率的是( )。
Ⅰ. 增加总线宽度 Ⅱ. 提高总线工作频率 Ⅲ. 支持突发传输 Ⅳ. 采用地址/数据线复用 - 6在异步通信的全互锁方式中,从设备撤销「回答」信号的条件是( )。
标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。