第三章《系统总线》

1 总线的基本概念

计算机系统的五大部件之间的互联方式有两种

  • 分散连接:各部件之间使用单独的连线
  • 总线连接:将各部件连到一组公共信息传输线上

1.1 早期的计算机 大多数用分散连接方式

 该图是以运算器为中心的结构,其内部连线复杂,当I/O与存储器交换信息的时,都需经过运算器,致使运算器停止运算,严重影响了CPU的工作效率

该图是改进为以存储器为中心的结构,I/O与主存交换信息可以不经过运算器,又采取了中断,DMA等技术,使CPU工作效率得到很大的提高,但是仍无法解决I/O设备与主机之间连接的灵活性,随着计算机应用领域的不断扩大,I/O设备的种类和数量也原来越多,人们希望随时增添或减撤设备,用分散连接方式简直是一筹莫展,由此出现了总线连接方式

1.2 总线连接

总线是连接多个部件的信息传输线,是各部件共享的传输介质。当多个部件与总线相连时,如果两个或以上部件同时向总线发送信息会导致信号冲突,传输无效。因此,在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线接收相同的信息。

总线实际上是由许多传输线或通路组成,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。

若干条传输线可以同时传输若干位二进制代码,列如:16条传输线组成的总线可同时传输16位二进制代码。

1.2.1 以CPU为中心的双总线结构

 

 其中一组总线连接CPU和主存,称为存储总线(M总线),另一组用来建立CPU和各I/O设备之间交换信息的通道,称为输入输出总线(I/O总线)。各种I/O设备通过I/O接口挂到I/O总线上,更便于增删设备。这种结构在I/O设备与主存交换信息时仍然要占用CPU,因此还会影响CPU的工作效率。

1.2.2 单总线结构

 与上图相比,最明显的特点是当I/O设备与主存交换信息时,原则上不影响CPU的工作,CPU仍可继续处理不访问主存或I/O设备的操作,这使COU工作效率有所提高。但是,因为只有一组总线,因此必须设置总线判优逻辑,让各部件按优先级高低来占用总线,否则当各部件同时会占用总线时会发生冲突。这样也会影响整机的工作速度。

1.2.3 以存储器为中心的双总线结构

 在单总线基础上又开辟出一条CPU与主存之间的总线,称为存储总线,这组总线速度高,只供主存与CPU之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了I/O设备与存储器交换信息时不经过CPU的特点。

2 总线的分类

按数据传送方式可分为并行传输总线和串行传输总线。在并行传输总线中,又可按传输数据宽度分为8位,16位,32位,64位等传输总线。

若按总线的使用范围划分,则又有计算机(包括外设)总线,测控总线,网络通信总线等。

下面按连接部件不同,介绍三类总线

2.1 片内总线

  •  片内总线是指芯片内部的总线,如在CPU芯片内部,寄存器与寄存器之间,寄存器与算逻单元ALU之间都由片内总线连接

2.2 系统总线

  • 系统总线是指CPU,主存,I/O设备(通过I/O接口)各大部件之间的信息传输线。由于这些部件通常安放在主板或各个插件版(插卡)上,故又称板级总线(在一块电路板上各芯片间的连线)或板间总线。
  • 按系统总线传输信息的不同,又可分为三类:数据总线,地址总线和控制总线
  • 2.2.1数据总线
    • 数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长,存储字长有关,一般为8位,16位或32位
    • 数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数
    • 如果数据总线的宽度为8位,指令字长为16位,那么,CPU在取指阶段必须两次访问主存
  • 2.2.2 地址总线
    • 地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址
    • 例如:欲从存储器读出一个数据,则CPU要将此数据所在存储单元的地址送到地址线上
    • 又如,欲将某数据经I/O设备输出,则CPU除了需将数据送到数据总线外,还需将该输出设备的地址(通常都经I/O接口)送到地址总线上
    • 可见,地址总线上的代码是用来指明CPU欲访问的存储单元或I/O端口的地址,由CPU输出,单向传输。地址总线的位数与存储单元的个数有关,如地址线为20根,则对应存储单元为220
  • 2.2.3 控制总线
    • 控制总线是用来发出各种控制信号的传输线
    • 通常对任一控制线而言,它的传输是单向的。如:存储器读/写命令,I/O设备读/写命令都是由CPU发出的
    • 对于控制总线总体来说,又可认为是双向的。如:当某设备准备就绪时,便向CPU发中断请求。当某部件(如DMA接口)需获得总线使用权时,也向CPU发出总线请求
    • 控制总线还起到监视各部件状态的作用。如:查询该设备处于“忙”还是“闲”,是否出错等。因此对CPU而言,控制信号既有输出,又有输入。
    • 常见的控制信号如下:
      • 时钟:用来同步各种操作
      • 复位:初始化所有部件
      • 总线请求:表示某一部件需获得总线使用权
      • 总线允许:表示需要获得总线使用权的部件已获得了控制权
      • 中断请求:表示某部件提出中断请求
      • 中断响应:表示中断请求已被接收
      • 存储器写:将数据总线上的数据写至存储器的指定地址单元内
      • 存储器读:将指定存储单元中的数据读到数据总线上
      • I/O读:从指定的I/O端口将数据读到数据总线上
      • I/O写:将数据总线上的数据输出到指定的I/O端口内
      • 传输响应:表示数据已被接收,或已将数据送至数据总线上

2.3 通信总线

  • 这类总线用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。
  • 通信总线的类别很多,但按传输方式可分为两种:串行通信和并行通信。
  • 2.3.1 串行通信
    • 串行通信是指数据在单条1位宽的传输线上,一位一位地按顺序分时传送。如1字节的数据,在串行传送中,1字节的数据要通过一条传输线分8次由低位到高位按顺序逐位传
  • 2.3.2 并行通信
    • 并行通信是指数据在多条并行1位宽的传输线上,同时由源传送到目的地。如1字节的数据,在并行传送中,要通过8条并行传输线同时由源传送到目的地
  • 2.3.3 串行通信与并行通信的对比
  串行通信 并行通信
适宜距离 远距离传送(可以从几米达数千公里 近距离的数据传输(通常小于30m)
数据传输速率
通信线路费用 低(还可利用现有的电话网络来实现远程通信)

3 总线特性及性能指标

3.1 总线特性

从物理角度来看,总线是由许多导线直接印制在电路板上,延伸到各个部件

 

为了保证机械上的可靠连接,必须规定其机械特性,为了确保电气上正确连接,必须规定其电气特性,为保证正确地连接不同部件,还需规定其功能特性和时间特性。

3.1.1 机械特性

  • 机械特性是指总线在机械连接方式上的一些性能,如插头与插座使用的标准,它们的几何尺寸,形状,引脚的个数以及排列的顺序,接头处的可靠接触等

3.1.2 电气特性

  •  电气特性是指总线的每一根传输线上信号的传递方向和有效的电平范围
  • 通常规定由CPU发出的信号称为输出信号,送入CPU的信号称为输入信号

3.1.3 功能特性

  • 功能特性是指总线中每根传输线的功能
  • 列如,地址总线用来指出地址码,数据总线用来传递数据,控制总线发出的控制信号

3.1.4 时间特性

  • 时间特性是指总线中的任一根线在什么时间内有效
  • 每条总线上的各种信号互相存在一种有效时序的关系,因此,时间特性一般可用信号时序图来描述

3.2 总线性能指标

  • 总线宽度:通常是指数据总线的根数,用bit(位)表示,如8位,16位,32位,64位(即8根,16根,32根,64根)
  • 总线宽带:总线带宽可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示,列如,总线工作频率为33MHz,总线宽度为32位(4B),则总线带宽为33×(32÷8)=132MBps
  • 时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线
  • 总线复用:一条信号线上分时传送两种信号。例如 地址总线与数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号
  • 信号线数:地址总线,数据总线和控制总线三种总线数的总和
  • 其他指标:如负载能力,电源电压,总线宽度能否扩展等,总线的负载能力即驱动能力,是指当总线接上负载后,总线输入输出的逻辑电平是否能保持在正常的额定范围内。

3.3 总线标准

  • 总线标准,可视为系统与各模块、模块与模块之间的一个互连的标准界面。
  • 这个界面对它两端的模块都是透明的,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能需求,而无须了解对方接口与总线的连接要求。
  • 因此,按总线标准设计的接口可视为通用接口。
  • 目前流行的总线标准有以下几种:
  • ISA总线
  • EISA总线
  • VESA(VL-BUS)总线
  • PCI总线
  • AGP总线
  • RS-232C总线
  • USB总线

4 总线结构

  • 总线结构通常可分为单总线结构和多总线结构两种

4.1 单总线结构

  • 单总线结构是将CPU,主存,I/O设备(通过I/O接口)都挂在一组总线上,允许所有部件之间直接交换信息。这种结构简单,也便于扩充,但所有的传送都通过这组共享总线,因此极易形成计算机系统的瓶颈。它也不允许两个以上的部件在同一时刻向总线传输信息,这必然会影响系统工作效率的提高,这类总线多数被小型计算机或微型计算机所采用
  • 为了根本解决数据传送速率,解决CPU、主存与I/O设备之间传输速率的不匹配,实现CPU与其他设备相对同步,不得不采用多总线结构。

4.2 多总线结构

  •  双总线结构的特点是 将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。
  • 图中通道是一个具有特殊功能的处理器,CPU将一部分功能下放给通道,使其对I/O设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送,其系统的吞吐能力可以相当大。这种结构大多用于大,中型计算机系统
  • 图中主存总线用于CPU与主存之间的传输,I/O总线供CPU与各类I/O设备之间传递信息,DMA总线用于高速I/O设备(磁盘,磁带等)与主存之间直接交换信息。在三总线结构中,任一时刻只能使用一种总线。主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时才能用到

  • 由图可见,处理器与Cache之间有一条局部总线,它将CPU与Cache或与更多的局部设备连接。Cache的控制机构不仅将Cache连到局部总线上,而且还直接连到系统总线上,这样Cache就可通过系统总线与主存传输信息,而且I/O设备与主存之间的传输也不必通过CPU。还有一条扩展总线,它将局域网,小型计算机接口(SCSI),调制解调器(Modem)以及串行接口等都连接起来,并且通过这些接口又可与各类I/O设备相连,因此它可支持相当多的I/O设备。与此同时,扩展总线又通过扩展总线接口与系统总线相连,由此可实现这两种总线之间的信息传递,可见其系统的工作效率明显提高
  • 这里又增加了一条与计算机系统紧密相连的高速总线。

  • 在高速总线上挂接了一些高速I/O设备,如高速局域网,图形工作站,多媒体,SCSI等,它们通过Cache控制机构中的高速总线桥或高速缓冲器与系统总线和局部总线相连,使得这些高速设备与CPU更密切。而一些较低速的设备如图文传真FAX,调制解调器及串行接口仍然挂在扩展总线上,并由扩展总线接口与高速总线相连。
  • 这种结构对高速设备而言,其自身的工作可以很少依赖CPU,同时它们又比扩展总线上的设备更贴近CPU,可见对于高性能设备与CPU来说,各自的效率将获得更大的提高。在这种结构中,CPU,高速总线的速度以及各自信号线的定义完全可以不同,以至各自改变其结构也不会影响高速总线的正常工作,反之亦然

5 总线控制

5.1 总线判优控制

  •  总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(模块)和从设备(模块)两种。主设备对总线有控制权,从设备只能响应从主设备发来的总线命令,对总线没有控制权。总线上信息的传送是由主设备启动的,如某个主设备欲与另一个设备(从设备)进行通信时,首先由主设备发出总线请求信号,若多个主设备同时要使用总线时,就由总线控制器的判优,仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用主线。只有获得总线使用权的主设备才能开始传送数据。
  • 总线判优控制可分集中式和分布式两种,前者将控制逻辑集中在一处(如在CPU),后者将控制逻辑分散在与总线连接的各个部件或设备上。
  • 常见的集中控制优先仲裁方式有以下三种
  • 5.1.1 链式查询
  • 离总线控制部件最近的设备具有最高的优先级
  • 特点:
    • 只需很少几根线就能按一定优先次序实现总线控制
    • 很容易扩充设备
    • 对电路故障很敏感
    • 优先级别低的设备可能很难获得请求
  • 5.1.2 计数器定时查询
  •  

     与链式查询相比,多了一组设备地址线,少了一根总线同意线BG。总线控制部件接到由BR送来的总线请求信号后,在总线未被使用(BS=0)的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数值一致时,便获得总线使用权,此时终止计数查询。计数可以从0开始也可以从上次计数的终点开始,计数器的初始值可由程序设置,故优先次序可以改变。

  • 这种方式对电路故障不如链式查询方式敏感,但增加了控制线(设备地址)数,控制也较复杂
  • 5.1.3 独立请求方式
  •  由图可见,每一台设备均有一对总线请求线BR和总线同意线BG。当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。

  • 这种方式的特点是:响应速度快,优先次序控制灵活(通过程序改变),但控制线数量多,总线控制更复杂。

  • 链式查询中仅用两根线确定总线使用权属于哪个设备,在计数器查询中大致用log2n根线,其中n是允许接纳的最大设备数,而独立请求方式需采用2n根线

5.2 总线通信控制

  • 众多部件共享总线,在争夺总线使用权时,应按各部件的优先等级来解决。在通信时间上,则应按分时方式来处理,即以获得总线使用权的先后顺序分时占用总线,即哪一个部件获得使用权,此刻就由它传送,下一部件获得使用权,接着下一时刻传送。这样一个接一个轮流交替传送
  • 通常将完成一次总线操作的时间称为总线周期,可分为以下4个阶段
    • 申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授予某一申请者
    • 寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块
    • 传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块
    • 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权
  • 对于仅有一个主模块的简单系统,无须申请,分配和撤除,总线使用权始终归它占有。对于包含中断,DMA控制或多处理器的系统,还需要有其他管理机构来参与。
  • 总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。
  • 通常用四种方式:同步通信,异步通信,半同步通信和分离式通信
  • 同步通信

  • 通信双方由统一时标控制数据传送称为同步通信,时标通常由CPU的总线控制部件发出,送到总线上的所有部件,也可以由每个部件各种的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。

 

  • 这种通信的优点是规定明确,统一,模块间的配合简单一致。其缺点是主,从模块时间配合属于强制性“同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
  • 同步通信一般用于总线长度较短,各部件存取时间比较一致的场合
  • 在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率
  • 异步通信

  • 异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(又称握手方式),即当主模块发出请求信号时,一直等待从模块反馈回来响应信号后才开始通信。这要求主,从模块之间增加两条应答线(握手交互信号线)
  • 异步通信的应答方式又可分为不互锁,半互锁,全互锁三种

 

  • 不互锁方式
    • 主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间,确认从模块已收到请求信号后,便撤销其请求信号,从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间确认主模块已收到回答信号后,自动撤销回答信号。可见双方并无互锁关系
  • 半互锁方式
    • 主模块发出请求信号,必须待接到从模块回答后再撤销其请求信号,有互锁关系。而从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,并无互锁关系。由于一方存在互锁,一方不存在互锁,故称半互锁方式。
  • 全互锁方式
    • 主模块发出请求信号,必须待从模块回答后再撤销其请求信号,从模块发出回答信号,必须待获知主模块请求信号已撤销后,再撤销其回答信号。双方存在互锁关系,故称为全互锁方式
  • 异步通信可用于并行通信或串行通信
  • 异步串行通信时约定字符格式为:1个起始位(低电平)、5 ~ 8个数据位、1个奇偶校验位(作检测用)、1或1.5或2个终止位(高电平)
  • 传送时起始位后面紧跟的是要传送字符的最低位,每个字符的结束时一个高电平的终止位。
  • 异步串行通信的数据传送速率用波特率来衡量
  • 波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特
  • 半同步通信

  • 半同步通信既保留了同步通信的基本特点
  • 同时又像异步通信那样,允许不同速度的模块和谐地工作
  • 为此增设了一条“等待”(WAIT)响应信号线,采用插入时钟(等待)周期的措施来协调通行双方的配合问题
  • 半同步通信适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。
  • 半同步通信控制方式比异步通信简单,在全系统内各模块又在统一的系统时钟控制下同步工作,可靠性高,同步结构较方便
  • 其缺点是对系统时钟频率不能要求太高,故从整体来看,系统工作的速度还不是很高
  • 分离式通信

  • 以上三种通信方式都是从主模块发出地址和读写命令开始,直到数据传输结束。在整个传输周期中,系统总线的使用权完全由占有使用权的主模块和由它选中的从模块占据。进一步分析读命令传输周期,发现除了申请总线这一阶段外,其余时间主要花费在如下3个方面。
    • 主模块通过传输总线向从模块发送地址和命令
    • 从模块按照命令进行读数据的必要准备
    • 从模块经数据总线向主模块提供数据
  • 由2可见,对系统总线而言,从模块内部读数据过程并无实质性的信息传输,总线纯属空闲等待。
  • 为了克服和利用这种消极等待,尤其在大型计算机系统中,总线的负载已处于饱和状态,充分挖掘系统总线每瞬间的潜力,对提高系统性能起到极大作用
  • 为此提出了分离式通信:其基本思想是将一个传输周期(或总线周期)分解为两个子周期
  • 在第一个字周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,包括该主模块编号(当有多个主模块时,此标号尤为重要)发到系统总线上,经总线传输后,由有关的从模块B接收下来。主模块A向系统总线发布这些信息只占用总线很短的时间,一旦发送完,立即放弃总线使用权,以便其他模块使用

  • 在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,便由B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B模块的地址、A模块所需的数据等一系列信息送到总线上,供A接受
  • 述两个传输子周期都只有单方向的信息流,每个模块都变成了主模块
  • 特点:
    • 各模块欲占用总线使用权都必须提出申请
    • 在得到总线使用权后,主模块在限定时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号
    • 各模块在准备数据的过程中都不用占用总线,使总线可接受其他模块的请求
    • 总线被占用时都在做有效工作,不存在空闲等待时间,充分利用了总线的有效占用,从而实现了总线在多个主从模块间进行信息交叉重叠并行式传送,这对大型计算机系统是极为重要的
  • 这种方式控制比较复杂,一般在微型计算机系统中很少采用
posted @ 2021-10-05 22:37  夜灯长明  阅读(575)  评论(0编辑  收藏  举报