总线概述
总线是一组能为多个部件分时共享的公共信息传送线路。分时和共享是总线的两个特点。分时是指同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则它们只能分时地向总线发送信息。共享是指总线上可以挂接多个部件,各个部件之间互相交换地信息都可通过这组线路分时共享。在某一时刻只允许有一个部件向总线发送信息,但多个部件可同时从总线上接收相同的信息。
总线上所连接地设备,按其对总线有无控制能力可分为主设备和从设备两种。主设备:总线的主设备是指获得总线控制权的设备。从设备:总线的从设备是指被主设备访问的设备,它只能响应主设备发来的各种总线命令。
总线特性是指机械特性(尺寸、形状)、电气特性(传输方向和有效的电平范围)、功能特性(每根传输线的功能)和时间特性(信号和时序的关系)。
在一个总线周期内传输存储地址连续的多个数据字的总线传输方式,称为猝发(突发)传送。
计算机系统中的总线,按功能划分为以下 3 类:
- 片内总线。片内总线是芯片内部的总线,它是 CPU 芯片内部寄存器与寄存器之间、寄存器与 ALU 之间的公共连接线。
- 系统总线。系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间互相连接的总线。按系统总线传输信息内容的不同,又可分为 3类:数据总线、地址总线和控制总线。
- 数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与及其字长、存储字长有关。
- 地址总线用来指出数据总线上的数据源或目的数据所在的主存单元或 I/O 端口的地址,它是单向传输线,地址总线的位数与主存空间的大小有关。
- 控制总线传输的是控制信息,包括 CPU 送出的控制命令和主存(或外设)返回 CPU 的反馈信号。各个功能部件通过数据总线连接形成的数据传输路径称为数据通路。数据通路表示的是数据流经的路径,而数据总线是承载的媒介。
- 通信总线。通信总线是在计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线,通信总线也称外部总线。
此外,按时序控制方式可将总线划分为同步总线和异步总线,还可按数据传输格式将总线划分为并行总线和串行总线。
总线结构通常分为单总线结构、双总线结构和三总线结构等。
- 单总线结构。单总线结构将 CPU、主存、I/O 设备(通过 I/O 接口)都挂在一组总线上,运行 I/O 设备之间、I/O 设备与主存之间直接交换信息。CPU 与主存、CPU 与外设之间可直接进行信息交换,而无须经过中间设备的干预。
- 双总线结构。双总线结构有两条总线:一条是主存总线,用于在 CPU、主存和通道之间传送数据;另一条是 I/O 总线,用于在多个外部设备与通道之间传送数据。优点:将低速 I/O 设备从单总线上分离出来,实现了存储器总线和 I/O 总线分离。缺点:需要增加通道等硬件设备。
- 三总线结构。三总线结构是在计算机系统各部件之间采用 3 条各自独立的总线来构成信息通路,这 3 条总线分别为主存总线、I/O 总线和直接内存访问(DMA)总线。主存总线用于在 CPU 和内存之间传送地址、数据和控制信息。 I/O 总线用于在 CPU 和各类外设之间通信。DMA 总线用于在内存和高速外设之间直接传送数据。优点:提高了 I/O 设备的性能,使其更快地响应命令,提高系统吞吐量。缺点:系统工作效率较低。
总线的性能指标
- 总线的传输周期。指一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),简称总线周期。总线传输周期通常由若干总线时钟周期构成。
- 总线时钟周期。即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
- 总线的工作频率。总线上各种操作的频率,为总线周期的倒数。实际上指 1 秒内传送几次数据。
- 总线的时钟频率。即机器的时钟频率,它为时钟周期的倒数。
- 总线宽度。又称总线位宽,它是总线上同时能够传输的数据位数,通常指数据总线的根数,如 32 根称为 32 位总线。
- 总线带宽。可理解为总线的数据传输率,即单位时间内总线上同时能够传输的数据位数,通常用每秒传送的字节数来衡量,单位可用 B/s 表示。总线带宽 = 总线工作频率 * (总线宽度 / 8)。
- 总线复用。总线复用是指一种信号线在不同的时间传输不同的信息,因此可以使用较少的线传输更多的信息,从而节省空间和成本。
- 信号线数。地址总线、数据总线和控制总线 3 种总线书的总和称为信号线数。
其中,总线最主要的性能指标为总线宽度、总线(工作)频率、总线带宽,总线带宽是指总线本身所能达到的最高传输速率,它是衡量总线性能的重要指标。总线带宽 = 总线宽度 * 总线频率。例如总线工作频率为 22 MHz,总线宽度为 16 位,则总线带宽= 22 * (16 / 8)= 44 MB/s。
在总线上,同一时刻只能有一个主设备控制总线的传输操作。
总线仲裁
为解决多个主设备同时竞争总线控制权的问题,应当采用总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权。只有获得了总线控制权的设备,才能开始传送数据。
总线仲裁方式按其仲裁控制机构可分为集中总裁方式和分布仲裁方式两种。
集中仲裁方式
总线控制逻辑基本上集中于一个设备(如 CPU)中。将所有的总线请求集中起来,利用一个特定的裁决算法进行裁决,称为集中仲裁方式。集中仲裁方式有链式查询、计数器定时查询方式和独立请求方式。
- 链式查询方式。总线上所有的部件共用一根总线请求线,当有部件请求使用总线时,需经此线发总线请求信号到总线控制器。由总线控制器检查总线是否忙,若总线不忙,则立即发总线响应信号,经总线响应线 BG 串行地从一个部件传送到下一个部件,依次查询。若响应信号到达的部件无总线请求,则该信号立即传送到下一个部件;若响应信号到达的部件有总线请求,则信号被截住,不再传下去。
在链式查询中,部件离总线控制器越近,其优先级越高;部件离总线控制器越远,其优先级越低。优点:链式查询只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。缺点:对硬件电路的故障敏感,且优先级不能改变。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。
- 计数器定时查询方式。它采用一个计数器控制总线使用权,相对链式查询方式多了一组地址线,少了一根总线响应线 BG。它仍共用一根总线请求线,当总线控制器收到总线请求信号并判断总线空闲时,计数器开始计数,计数值通过设备地址线发向各个部件。当地址线上的计数值与请求使用总线设备的地址一致时,该设备获得总线控制权,同时终止计数器的计数及查询。
优点:计数可从“0”开始,此时一旦设备的优先级次序被固定,设备的优先级就按 0,1,...,n 的顺序降序排列,而且固定不变;计数也可从上一次的终点开始,即采用一种循环方法,此时设备使用总线的优先级相等;计数器的初值还可以由程序设置,故优先级可以改变,且这种电路的故障没有链式查询方式敏感。缺点:增加了控制线数(若设备有 n 个,则大致需要 ⌈log2n⌉ + 2 条控制线),控制也相对比链式查询要复杂。
- 独立请求方式。每个设备均有一对总线请求线 BRi 和总线允许线 BGi。当总线上的部件需要使用总线时,经各自的总线请求线发送总线请求信号,在总线控制器中排队,当总线控制器按一定的优先次序决定批准某个部件的请求时,给该部件发送总线响应信号,该部件接到此信号就获得了总线使用权,开始传送数据。优点:响应速度快,总线允许信号 BG 直接从控制器发送到有关设备,而不必在设备间传递或查询,而且对优先次序的控制相当灵活。缺点:控制线数量多(设备有 n 个,需要 2n + 1 条控制线,其中加的那条控制线为 BS 线,作用是让设备向总线控制器部件反馈已使用完总线),总线控制逻辑更复杂。
对比项目\仲裁方式 | 链式查询 | 计数器定时查询 | 独立请求 |
控制线数 | 3(总线请求:1;总线忙:1;总线允许:1) | ⌈log2n⌉ + 2(总线请求:1;总线忙:1;总线允许:⌈log2n⌉) | 2n + 1(总线请求:n;总线忙:n;总线允许:1) |
优点 | 结构简单;扩充容易;优先级固定 | 优先级灵活 | 响应速度快;优先级灵活 |
缺点 | 对电路故障敏感 | 控制线多,控制复杂 | 控制线多,控制复杂 |
分布式仲裁方式不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号和仲裁器。当它们有总线请求时,就会把它们各自唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较,若仲裁总线上的仲裁号优先级高,则它的总线请求不予响应,并撤销它的仲裁号。最后,获胜者的仲裁号保留在仲裁总线上。
“总线忙”信号的建立者是获得总线控制权的设备。
计数器定时查询和独立请求方式都可以使各个主设备得到总线使用权的机会基本相等,链式查询方式则不能。
总线操作和定时
一个总线周期通常可分为以下 4 个阶段:
- 申请分配阶段。由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。
- 寻址阶段。取得使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。
- 传输阶段。主模块和从模块进行数据交换,可单向或双向进行数据传输。
- 结束阶段。住模块的有关信息均从系统总线上撤除,让出总线使用权。
同步定时方式
所谓同步定时方式,是指系统采用一个统一的时钟信号来协调和发送接收双方的传送定时关系。时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期中,发送方和接收方可以进行一次数据传送。因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传输周期内,一个总线的传送周期结束,下一个总线的传送周期开始。
优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。同步通信适用于总线长度较短及总线所接部件的存取时间比较接近的系统。
异步定时方式
在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。通常,把交换信息的两个部件或设备分为主设备和从设备,主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。
根据“请求”和“回答”信号的撤销是否互锁,异步定时方式又分为以下 3 中类型。
- 不互锁方式。主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间便撤销“请求”信号。而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间后自动撤销“回答”信号。双方不存在互锁关系。
-
半互锁方式。主设备发出“请求”信号 后,必须在接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。而从设备在接到“请求”信号后,发出“回答信号 ”,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
-
全互锁方式。主设备发出“请求”信号 后,必须在接到从设备的“回答”信号后,才撤销“请求”信号;从设备发出“回答”信号后,必须在获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。
半同步通信总线可以既采用同步方式又采用异步方式通信。
总线标准
以上内容均来自王道书籍及相关课程等