总线(概述、事务和定时)
一、总线概述
随着 I/O 设备的种类和数量越来越多,为了更好地解决 I/O 设备和主机之间连接的灵活性,计算机的结构从分散连接发展为总线连接。为了进一步简化设计,又提出了各类总线标准。
1. 总线基本概念
【总结】:
1)总线的定义
总线是一组能为多个部件分时共享的公共信息传送线路。分时和共享是总线的两个特点。
-
分时是指同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则它们只能分时地向总线发送信息。
-
共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享,多个部件可同时从总线上接收相同的信息。
2)总线设备
总线上所连接的设备,按其对总线有无控制功能可分为主设备和从设备两种。
-
主设备:指获得总线控制权的设备。
-
从设备:指被主设备访问的设备,它只能响应从主设备发来的各种总线命令。
3)总线特性
总线特性是指机械特性(尺寸、形状) 、电气特性( 传输方向和有效的电平范围)、功能特性(每根传输线的功能)和时间特性(信号和时序的关系) 。
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向和有效的电平范围
- 功能特性:每根传输线的功能(地址、数据、控制)
- 时间特性:信号的时序关系
2. 总线的分类
1)按功能层次分类
注意区分数据通路和数据总线:各个功能部件通过数据总线连接形成的数据传输路径称为数据通路。数据通路表示的是数据流经的路径,而数据总线是承载的媒介。
I/O 总线主要用于连接中低速的 I/O 设备,通过 I/O 接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能,常见的有 USB 、PCI 总线。
2)按时序控制方式分类
-
同步总线:总线上连接的部件或设备通过统一的时钟进行同步,在规定的时钟节拍内进行规定的总线操作,来完成部件或设备之间的信息传输。
-
异步总线:总线上连接的部件或设备没有统一的时钟,而以信号握手的方式来协调各部件或设备之间的信息传输,总线操作时序不是固定的。
3)按数据传输方式分类
-
串行总线:只有一条双向传输或两条单向传输的数据线,数据按比特位串行顺序传输,其效率低于并行总线。串行传输对数据线的要求不太高,因此适合长距离通信。
-
并行总线:有多条双向传输的数据线,可以实现多比特位的同时传输,其效率比串行总线更高。缺点是各条数据线的传输特点可能存在一些差异,比如有的信息位可能会延迟,并且数据线之间相互干扰还会造成传输错误,因此并行总线适合近距离通信。
并行总线并不一定总比串行总线快,它们适合不同的场景。工作频率相同时,串行总线传输速度比并行总线慢。但是由于并行总线是多个数据位同时传输,需要考虑数据的协同性,以及线路之间的相互干扰,导致工作频率无法持续提高。而串行总线可通过不断提高工作频率来提高传输速度,使其速度最终超越并行总线的速度。
3. 系统总线的结构
1)单总线结构
CPU 与主存、CPU 与外设之间可直接进行信息交换,而无须经过中间设备的干预。
2)双总线结构
3)三总线结构
主存总线用于在 CPU 和内存之间传送地址、数据和控制信息。I/O 总线用于在 CPU 和各类外设之间通信。DMA 总线用于在内存和高速外设之间直接传送数据。
4. 总线的性能指标
【总结】:
-
总线传输周期(总线周期):指一次总线操作所需的时间,包括申请阶段、寻址阶段、传输阶段和结束阶段,总线传输周期通常由若干总线时钟周期构成。
-
总线时钟周期:即机器的时钟周期,计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。(现在的计算机中,总线时钟周期也有可能由桥接器提供)
大多数情况下,一个总线周期包含多个总线时钟周期。有的时候,一个总线周期就是一个总线时钟周期;有的时候,一个总线时钟周期可包含多个总线周期。
-
总线工作频率:总线上各种操作的频率,为总线周期的倒数,实际上指 1 秒内传送几次数据。若总线周期 = N 个时钟周期,则总线的工作频率 = 时钟频率 / N 。
-
总线时钟频率:即机器的时钟频率,它为时钟周期的倒数。若时钟周期为 T ,则时钟频率为 1 / T ,实际上指一秒内有多少个时钟周期。
-
总线宽度:又称总线位宽,它是总线上同时能够传输的数据位数,通常指数据总线的根数,如 32 根称为 32 位(bit)总线。
-
总线带宽:可理解为总线的最大数据传输率,即单位时间内总线上最多可传输数据的位数,通常用每秒传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
注意:总线带宽和总线宽度应加以区别。
-
总线复用:总线复用是指一种信号线在不同的时间传输不同的信息,因此可以使用较少的线传输更多的信息,从而节省空间和成本。
-
信号线数:地址总线、数据总线和控制总线 3 种总线数的总和称为信号线数。
其中,总线的最主要性能指标为总线宽度、总线(工作)频率、总线带宽,总线带宽是指总线本身所能达到的最高传输速率,它是衡量总线性能的重要指标。三者关系:总线带宽 = 总线宽度 × 总线频率。例如,总线工作频率为 22MHz ,总线宽度为 16 位,则总线带宽 = 22M × (16/8) = 44MB/s 。
二、总线事务和定时
【总结】:
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,其实质是一种协议或规则, 主要有同步和异步两种基本定时方式。
1. 总线事务
从请求总线到完成总线使用的操作序列称为总线事务,它是在一个总线周期中发生的一系列活动。典型的总线事务包括请求操作、仲裁操作、地址传输、数据传输和总线释放。
- 请求阶段。主设备(CPU 或 DMA)发出总线传输请求,并且获得总线控制权。
- 仲裁阶段。总线仲裁机构决定将下一个传输周期的总线使用权授予某个申请者。
- 寻址阶段。主设备通过总线给出要访问的从设备地址及有关命令,启动从模块。
- 传输阶段。主模块和从模块进行数据交换,可单向或双向进行数据传送。
- 释放阶段。主模块的有关信息均从系统总线上撤除,让出总线使用权。
在总线事务的传输阶段,主、从设备之间一般只能传输一个字长的数据。
突发(猝发)传送方式能够进行连续成组数据的传送,其寻址阶段发送的是连续数据单元的首地址,在传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息,但是不释放总线,直到一组数据全部传送完毕后,再释放总线。
2. 总线定时
1)同步定时方式
同步定时方式—读命令:
2)异步定时方式
根据“请求”和“回答”信号的撤销是否互锁,异步定时方式又分为以下 3 种类型:
现在越来越多的总线采用异步串行通信方式,使用异步串行通信时,由于收发双方时钟不严格一致,因此每个字符都要用开始位和停止位作为字符开始和结束的标志,从而保证数据传输的准确性。
异步串行通信的第一位是开始位,表示字符传送的开始。当通信线上没有数据传送时处于逻辑“1”状态,当发送方要发送一个字符时,首先发出一个逻辑“0”信号,即开始位。接收方检测到这个逻辑低电平后,就开始准备接收数据位。在字符传送过程中,数据位从最低位开始一位一位地传输。当字符发送完后,就可以发送奇偶校验位(可选),以用于有限的差错检测。在奇偶位或数据位之后发送的是停止位,表示一个字符数据的结束。
3)半同步通信方式
半同步定时方式保留了同步定时的特点,如所有地址、命令、数据信号的发出时间都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别;同时,又像异步定时那样,允许不同速度的设备和谐地工作。为此增设一条 Wait 响应信号线。
例如,某个半同步总线总是从某个时钟开始,在每个时钟到来时,采样 Wait 信号,若无效,则说明数据未准备好下个时钟到来时,再采样 Wait 信号,直到检测到有效,再去数据线上取数据。半同步定时适用于系统工作速度不高,但又包含了由许多速度差异较大的各类设备组成的简单系统。
-
优点:控制方式比异步定时简单,各模块在系统时钟的控制下同步工作,可靠性较高。
-
缺点:系统时钟频率不能要求太高,所以从整体上来看,系统工作的速度不是很高。
4)分离式通信方式
以上三种定时方式都从主设备发出地址和读 / 写命令开始,直到数据传输结束,在整个传输周期中,总线的使用权完全由主设备及由其选中的从设备占据。其实,从设备在准备数据的阶段,总线纯属空闲等待,为进一步挖掘总线的潜力,又提出了分离式定时方式。
分离式定时方式将总线事务分解为请求和应答两个子过程。
在第一个子过程中,主设备 A 获得总线使用权后,将命令、地址等信息发到总线上,经总线传输后由从设备 B 接收。此过程占用总线的时间很短,主设备一旦发送完,立即释放总线,以便其他设备使用。
在第二个子过程中,设备 B 收到设备 A 发来的有关命令后,将设备所需的数据准备好后,便由设备 B 申请总线使用权,一旦获准,设备 B 便将相应的数据送到总线上,由设备 A 接收。
上述两个子过程都只有单方向的信息流,每个设备都变为主设备。
-
优点:在不传送数据时释放总线,使总线可接受其他设备的请求,不存在空闲等待时间。
-
缺点:控制复杂,开销也大。
三、小结
1、引入总线结构有什么好处?
引入总线结构主要有以下优点:
- 简化了系统结构,便于系统设计制造。
- 大大减少了连线数目,便于布线,减小体积,提高系统的可靠性。
- 便于接口设计,所有与总线连接的设备均采用类似的接口。
- 便于系统的扩充、更新与灵活配置,易于实现系统的模块化。
- 便于设备的软件设计,所有接口的软件对不同的接口地址进行操作。
- 便于故障诊断和维修,同时也能降低成本。
2、引入总线会导致什么问题?如何解决?
引入总线后,总线上的各个设备分时共享同一总线,当总线上多个设备同时要求使用总线时就会导致总线的冲突。为解决多个主设备同时竞争总线控制权的问题,应当采用总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权,只有获得了总线控制权的设备才能开始数据传送。
3、同一个总线不能既采用同步方式又采用异步方式通信吗?
半同步通信总线可以。这类总线既保留了同步通信的特点,又能采用异步应答方式连接速度相差较大的设备。通过在异步总线中引入时钟信号,其就绪和应答等信号都在时钟的上升沿或下降沿有效,而不受其他时间的信号干扰。
例如,某个采用半同步方式的总线总是从某个时钟开始,在每个时钟到来时,采样 Wait 信号,若无效,则说明数据未准备好,下个时钟到来时,再采样 Wait 信号,直到检测到有效,再去数据线上取数据。PCI 总线也是一种半同步总线,它的所有事件都在时钟下降沿同步,总线设备在时钟开始的上升沿采样总线信号。
4、一个总线在某一时刻可以有多对主从设备进行通信吗?
不可以。在某个总线周期内,总线上只有一个主设备控制总线,选择一个从设备与之进行通信(即一对一的关系),或对所有设备进行广播通信(即一对多的关系)。所以一个总线在某一时刻不能有多对主从设备进行通信,否则会发生数据冲突。