早期计算机的各部件之间是通过单独的连线互连的,这种方式称为分散连接。
但是,随着 I/O 设备的种类和数量越来越多,为了更好地解决 I/O 设备和主机之间连接的灵活性,计算机的结构从分散连接发展为总线连接。
总线概念
定义
总线是一组能为多个部件分时和共享的公共信息传送线路。
分时和共享是总线的两个特点。
- 分时:同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则它们只能分时地向总线发送信息。
- 共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享,多个部件可同时从总线上接收相同的信息。
设备
总线上所连接的设备,按其对总线有无控制功能可分为主设备和从设备两种。
- 主设备:指发出总线请求且获得总线控制权的设备。
- 从设备:指被主设备访问的设备,它只能响应从主设备发来的各种总线命令。
特性
- 机械特性(尺寸、形状)
- 电气特性(传输方向和有效的电平范围)
- 功能特性(每根传输线的功能)
- 时间特性(信号和时序的关系)
总线分类
按功能层次分类
片内总线
芯片内部的总线,用于 CPU 芯片内部各寄存器之间及寄存器与 ALU 的连接。
系统总线
计算机系统内各功能部件(CPU、主存、I/O 接口)之间相互连接的总线。
分类
按系统总线传输信息内容的不同,又可分为 3 类:数据总线、地址总线、控制总线。
-
数据总线:用来在各部件之间传输数据、指令和中断类型号等,它是双向传输总线,数据总线的位数反映一次能传送的数据的位数。
Tip
各个功能部件通过数据总线连接形成的数据传输路径称为数据通路。数据通路表示的是数据流经的路径,而数据总线是数据传输的媒介。
-
地址总线:用来指出数据总线上源数据或目的数据所在的主存单元或 I/O 端口的地址,它是单向传输总线,地址总线的位数反映最大的寻址空间。
由于地址总线是单向的,是从 CPU 发出的,因此从主存中取出的地址是无法通过地址总线传给 CPU,而是通过数据总线传给 CPU。
-
控制总线:用来传输各种命令、反馈和定时信号,典型的控制信号包括时钟、复位、总线请求/允许、中断请求/回答、存储器读/写、I/O 读、I/O 写、传输确认等。
结构
单总线结构
单总线结构将 CPU、主存、I/O 设备(通过 I/O 接口)都挂在一组总线上,允许 I/O 设备之间、I/O 设备与主存之间直接交换信息。
CPU 与主存、CPU 与外设之间都可以通过总线直接进行信息交换,而无须经过中间设备的干预。
单总线并不是指只有一根信号线。
- 优点:结构简单,成本低,易于接入新的设备。
- 缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发传送操作。
双总线结构
双总线结构有两条总线:一条是主存总线,用于在 CPU、主存和通道之间传送数据;另一条是 I/O 总线,用于在多个外部设备与通道之间传送数据。
- 优点:将低速 I/O 设备从原单总线上分离出来,实现了存储器总线和 IO 总线分离。
- 缺点:需要增加通道等硬件设备。
三总线结构
三总线结构是在计算机系统各部件之间采用 3 条各自独立的总线来构成信息通路,这三条总线分别为主存总线、IO 总线和直接内存访问(DMA)总线。
- 主存总线:用于在 CPU 和内存之间传送地址、数据和控制信息。
- I/O 总线:用于在 CPU 和各类外设之间通信。
- DMA 总线:用于在内存和高速外设之间直接传送数据。
优点:提高了 I/O 设备的性能,使其更快地响应命令,提高系统吞吐量。
缺点:任意时刻只能使用一种总线,系统工作效率较低。
四总线结构
I/O 总线
主要用于连接中低速的 I/O 设备,通过 I/O 接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能,常见的有 USB、PCI 总线。
通信总线
计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线,通信总线也称外部总线。
按时序控制方式分类
同步总线
总线上连接的部件或设备通过统一的时钟进行同步,在规定的时钟节拍内进行规定的总线操作,来完成部件或设备之间的信息传输。
一次总线事务不一定在一个时钟周期内完成,即时钟频率不一定等于工作频率。
异步总线
总线上连接的部件或设备没有统一的时钟,而以信号握手的方式来协调各部件或设备之间的信息传输,总线操作时序不是固定的。
每次握手的过程完成一次通信,一次通信往往会交换多位数据。
按数据传输方式分类
串行总线
只有一条双向传输或两条单向传输的数据线,数据按比特位串行顺序传输,其效率低于并行总线。
- 优点:对数据线的要求不太高,因此适合长距离通信。应用于计算机内部时,可以节省布线空间。
- 缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行—并行转换的问题。
USB 就是通用串行总线。
并行总线
有多条双向传输的数据线,可以实现多比特位的同时传输,其效率比串行总线更高。
-
优点:总线的逻辑时序比较简单,电路实现起来比较容易。
-
缺点:各条数据线的传输特点可能存在一些差异,比如有的信息位可能会延迟,并且数据线之间相互干扰还会造成传输错误,因此并行总线适合近距离通信。
工作频率较高时,并行的信号线之间会产生严重干扰对每条线等长的要求也越高,所以无法持续提升工作频率。
信号线数量多,占用更多的布线空间。
Tip
并行总线并不一定总比串行总线快,因为串行总线可通过不断提高工作频率来提高传输速度,使其速度最终超越并行总线的速度。
总线性能指标
-
总线时钟周期:即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
-
总线时钟频率:即机器的时钟频率,它为时钟周期的倒数。
-
总线传输周期:即总线周期,指一次总线操作所需的时间,包括申请阶段、寻址阶段、传输阶段和结束阶段。
总线传输周期通常由若干总线时钟周期构成。多数情况下,一个总线周期包含多个总线时钟周期;有的时候,一个总线周期就是一个总线时钟周期;有的时候,一个总线时钟周期可包含多个总线周期
-
总线工作频率:总线上各种操作的频率,为总线周期的倒数,实际上指1 秒内传送几次数据。
- 若总线周期 = N 个时钟周期,则总线的工作频率 = 时钟频率/N;
- 若一个时钟周期可以传送 K 次数据,则总线工作频率 = 总线时钟频率。
-
总线宽度:总线宽度也称总线位宽,是总线上能够同时传输的数据位数,通常指数据总线的根数,如 32 根称为 32 位总线。
-
总线带宽:单位时间内总线上最多可传输数据的位数,通常用每秒传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线带宽 = 总线工作频率(总线宽度/8)(B/s) = (总线宽度/8)/总线周期(B/s)。
Tip
在计算实际的有效数据传输率时,要用实际传输的数据量除以耗时,即要排除校验位之类的信息。
Important
总线带宽(最大传输速率)是指在理想情况下,即所有总线周期都在传输数据的情况下的传输速率,不需要考虑每个总线事务的具体情况。只有在计算平均数据传输率时才需要考虑每个总线事务的具体情况。
Note
-
总线复用:总线复用是指一种信号线在不同的时间传输不同的信息。
例如,有些总线没有单独的地址线,地址信息通过数据线来传送,这种情况称为地址/数据线复用。因此可以使用较少的线传输更多的信息,从而节省空间和成本。
-
信号线数:地址总线、数据总线和控制总线3 种总线数的总和称为信号线数。
总线事务
从请求总线到完成总线使用的操作序列称为总线事务,它是在一个总线周期中发生的一系列活动。
典型的总线事务包括请求操作、仲裁操作、地址传输、数据传输和总线释放。
- 请求阶段:主设备(CPU 或 DMA)发出总线传输请求,并且获得总线控制权。
- 仲裁阶段:总线仲裁机构决定将下一个传输周期的总线使用权授予某个申请者。
- 寻址阶段:主设备通过总线给出要访问的从设备地址及有关命令,启动从模块。
- 传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
- 释放阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
总线上的数据传送方式分为非突发方式和突发方式两种。
-
非突发传送方式
在每个传送周期内都先传送地址,再传送数据,主、从设备之间通常每次只能传输一个字长的数据。
-
突发(猝发)传送方式
能够进行连续成组数据的传送,其寻址阶段发送的是连续数据单元的首地址,在传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息,但是不释放总线,直到一组数据全部传送完毕后,再释放总线。
总线定时
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,其实质是一种协议或规则,主要有同步、异步、半同步和分离式四种定时方式。
同步定时方式
所谓同步定时方式,是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。
时钟产生相等的时间间隔,每个间隔构成一个总线周期。
在一个总线周期中,发送方和接收方可以进行一次数据传送。因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线的传送周期开始。
- 优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。
- 缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。
同步通信适用于总线长度较短及总线所接部件的存取时间比较接近的系统。
同步串行通信方式是发送方时钟直接控制接收方时钟,使双方完全同步的一种逐位传输的通信方式。
使用同步串行通信时,由于收发双方的时钟严格一致,因此仅在数据块的头尾处添加了开始和结束标记,传输效率较高,但实现的硬件设备也更复杂,所以较少采用。
异步定时方式
在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
通常,主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
- 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。
- 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。
根据**“请求”和“回答”信号的撤销是否互锁**,异步定时方式又分为以下 3 种类型。
-
不互锁方式
主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间便撤销“请求”信号。
从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间后自动撤销“回答”信号。
双方不存在互锁关系。速度最快,可靠性最差。
-
半互锁方式
主设备发出“请求”信号后,必须在接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。
从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
-
全互锁方式
主设备发出“请求”信号后,必须在从设备“回答”后才撤销“请求”信号。
从设备发出“回答”信号后,必须在获知主设备“请求”信号已撤销后,再撤销其“回答”信号。
双方存在互锁关系。速度最慢,可靠性最高。
现在越来越多的总线采用异步串行通信方式,使用异步串行通信时,由于收发双方时钟不严格一致,因此每个字符都要用开始位和停止位作为字符开始和结束的标志,从而保证数据传输的准确性。异步串行通信的第一位是开始位,表示字符传送的开始。
当通信线上没有数据传送时处于逻辑“1”状态,当发送方要发送一个字符时,首先发出一个逻辑“0”信号,即开始位。接收方检测到这个逻辑低电平后,就开始准备接收数据位。
在字符传送过程中,数据位从最低位开始,一位一位地传输。当字符发送完后,就可以发送奇偶校验位(可选),以用于有限的差错检测。在奇偶位或数据位之后发送的是停止位,表示一个字符数据的结束。
半同步定时方式
半同步定时方式保留了同步定时和异步定时的特点。
- 同步:发送方用系统时钟前沿发信号;接收方用系统时钟后沿判断识别。
- 异步:允许不同速度的设备和谐地工作
在统一时钟的基础上增设一条 Wait 响应信号线。
例如,某个半同步总线总是从某个时钟开始,在每个时钟到来时,采样 Wait 信号,若无效,则说明数据未准备好,下个时钟到来时,再采样 Wait 信号,直到检测到有效,再去数据线上取数据。
- 优点:控制方式比异步定时简单,各模块在系统时钟的控制下同步工作,可靠性较高。
- 缺点:系统时钟频率不能太高,所以从整体上来看,系统工作的速度不是很高。
半同步定时适用于系统工作速度不高,但又包含了由许多速度差异较大的各类设备组成的简单系统。
分离式定时方式
分离式定时方式将总线事务分解为请求和应答两个子过程。
- 在第一个子过程中,主设备 A 获得总线使用权后,将命令、地址等信息发到总线上,经总线传输后由从设备 B 接收。此过程占用总线的时间很短,主设备一旦发送完,立即释放总线,以便其他设备使用。
- 在第二个子过程中,设备 B 收到设备 A 发来的有关命令后,将设备 A 所需的数据准备好后,便由设备 B 申请总线使用权,一旦获准,设备 B 便将相应的数据送到总线上,由设备 A 接收。
上述两个子过程都只有单方向的信息流,每个设备都变为主设备。
- 优点:在不传送数据时释放总线,使总线可接受其他设备的请求,不存在空闲等待时间。
- 缺点:控制复杂,开销也大。