计算机组成原理---系统总线

1. 总线的基本概念

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

  • 各部件之间使用单独的连线,称为分散连接(以运算器为中心)

  • 各部件连到一组公共信息传输线上,成为总线连接(以存储器为中心)

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

  • 总线实际上是由许多传输线路或通路组成,每一条线可一位一位的传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。若干条传输线可以同时传输若干位二进制代码,例如:16条传输线组成的传输总线可同时传输16位二进制代码

  • 几种采用总线连接 的计算机结构

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

  • 若将CPU,主存和I/O 设备(通过I/O 接口)都挂到一组总线上,便形成了单总线结构。
    在这里插入图片描述
    这种结构与1 相比,最明显的特点是当I/O 设备与主存交换信息时,原则上不影响CPU 的工作,CPU 可继续处理不访问主存或I/O设备的操作,使得CPU工作效率有所提高。但是,只有一条总线,当某一时刻各部件都要占用总线时,就会发生冲突。为此,必须设置总线判优逻辑,让各部件按照优先级高低来占用总线。

  • 存储器 为中心的双中线结构
    在这里插入图片描述
    它在单总线的基础上又开辟一条CPU与主存之间的总线,称为储存总线。这组总线只供主存与CPU之间传输信息。这样即提高了传输效率,又减轻了系统总线的负担,还保留了I/O设备与存储器交换信息时不经过CPU 的特点。

2. 总线的分类

总线从不同角度可以有不同的分类方法,按数据传送方式分为并行传输总线和串行传输总线。在并行传输总线 中又可按照传输数据宽度分为8位,16位,32位,64位等传输总线。
下面按照连接部件不同,介绍三类总线

2.1 片内总线

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

2.2 系统总线
2.2.1 系统总线的定义

系统总线 是指CPU,主存,I/O设备各大部件之间的信息传输线。
由于这些部件通常都安放在主板或各个插件板上,故又称板级总线(在一块电路板上各芯片间的连线)或板件总线。

2.2.2 按照系统总线传输信息的分类

系统总线传输信息不同,又可分以下为三类

  • 数据总线
    数据总线 用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长,存储字长有关,一般为8位,16位或者32位。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。如果数据总线宽度为8位,指令字长为16位,则CPU 在取址阶段必须两次访问主存。
  • 地址总线
    地址总线主要用来指出数据总线上的源数据或者目的数据在主存单元的地址或I/O设备的地址。例如,欲从存储器读出一个数据,则CPU要将此数据所在存储单元的地址送到地址线上。又如,欲将某数据经I/O设备设备输出,则CPU除了需将数据送到数据总线外,还需将该输出设备的地址(通常都经I/O设备)送到地址线上。可见,地址总线上的代码是用来指明CPU欲访问的存储单元或I/O设备端口的地址,由CPU输出,单向传输。地址线的位数与存储单元的个数有关,如地址线为20根,则对应的存储单元个数为2的20次方。
  • 控制总线
    由于数据总线,地址总线都是被挂在总线上的所有部件共享的,如何使各部件能够在不同时刻占有总线使用权,需要依靠控制总线来完成,因此,控制总线是用来发出各种控制信号的传输线。通常对于任一控制线而言,它的传输是单向的。例如,存储器读/写命令或I/O设备读/写命令都是由CPU发出的。但对于控制总线总体来说又是双向的,例如,当某个设备准备就绪时,便向CPU发出中断请求;当某个部件需要获得总线使用权时,也向CPU发出请求。因此,对CPU而言,控制信号既有输出,又有输入。
    常见的控制信号如下:
    在这里插入图片描述
2.2.3 通信总线

这类总线用于计算机系统之间或者计算机系统与其他系统(如控制仪表,移动通信等)之间的通信。这类总线类别很多,但按传输方式可分为两种:串行通信和并行通信

  • 串行通信是指数据在1位宽的传输线上,一位一位的按顺序分时传送。
  • 串行通信是指数据在条并行1位宽的传输线上,同时由源传送到目的地。如1字节的数据,在并行传送中,要通过8条并行传输线同时由源传送到目的地。
  • 并行通信适用于近距离的数据传输,通常小于30m串行通信 适宜于远距离传送。
  • 并行通信串行通信的数据传送速率都于距离成反比。

3. 总线的性能指标

  1. 总线宽度: 通常是指数据总线的根数,用bit(位) 表示,如8位,16 位,32位,64位(即8根,16根,32根,64 根)。
  2. 总线带宽: 总线带宽可理解为总线的传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒) 表示。例如,总线工作频率为33HZ ,总线宽度为32位(4B) ,则总线带宽为33x(32/8) = 132 MBps
    ps: 一字节(1Byte)等于八位(8bit)
  3. 时钟同步/异步: 总线上的数据与时钟同步工作的称为同步总线 ,与时钟不同步工作的总线称为异步总线
  4. 总线复用: 一条信号线上分时传送两种信号。例如,通常地址总线与数据总线在物理上是分开的两种总线,地址总线传输地址码数据总线传输信息。为了提高总线的利用率,优化设计,特将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号,即为总线的多路复用。
  5. 信号线数: 地址总线,数据总线和控制总线三种总线数的总和。
  6. 总线控制方式: 包括突发工作,自动配置,仲裁方式,逻辑方式,计数方式等。
  7. 其他指标:如负载能力,电源电压等。
    下图为几种流行的微机总线性能:
    在这里插入图片描述
3.1 总线标准

所谓总线标准,可视为系统与各模块,模块与模块之间的一个互连的标准界面。这个界面对它两端的模块都是透明的,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能要求,而无需了解对方接口与总线的连接要求。因此,按总线标准设计的接口可视为通用接口。
目前流行的总线标准有一下几种:

  • ISA总线
  • EISA总线
  • VESA(VL–BUS)总线
  • PCI总线
  • ACP总线
  • RS-232C总线

4. 总线结构

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

4.1 单总线结构

下图为单总线结构示意图:
在这里插入图片描述
它是将CPU,主存,I/O设备(通过I/O接口)都挂在一组总线上,允许I/O设备之间,I/O设备与CPU之间或I/O与主存之间直接交换信息。这种结构简单还便与扩充,但是所有的传送都通过这组共享总线,因此极易形成计算机系统的瓶颈。也不允许两个以上的部件在同一时刻向总线传输信息。所以这类总线被小型或微型计算机所采用。

4.2 多总线结构
  • 下图为双总线结构的示意图:
    在这里插入图片描述
    双总线结构的特点是将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。图中通道是一个具有特殊功能的处理器,CPU将一部分功能下放给通道 ,使其对I/O设备具有统一管理的功能,以完成外部设备与主储存器之间的数据传送,其系统的吞吐能力可以相当大。这种结构多用于大,中型计算机系统。
  • 如果将速率不同的I/O设备进行分类,然后将他们连接在不同的通道上,则计算机系统的工作效率将会更高,由此发展成多总线结构
    下图为三总线结构的示意图:
    在这里插入图片描述
    图中主存总线 用于CPU 与主存之间的传输;I/O总线供CPU 与各类I/O设备之间传递信息;DMA 总线用于I/O设备(磁盘,磁带等)与主存之间交换信息。在三总线结构中,任一时刻只能使用一种总线,主存总线与DMA总线不能同时对主存进行存取,I/O总线只能在CPU 执行I/O指令时才能用到。
    ps: DMA(直接存储器)详解
  • 下图是另一种三总线结构的示意图:
    在这里插入图片描述
    由图可见,处理器与Cache(高速缓冲存储器) 之间有一条局部总线,它将CPUCache 或更多的局部设备连接。Cache的控制结构不仅将Cache连接到局部总线上,而且还直接连到系统总线上,这样Cache 就可通过系统总线与主存传输信息,而且I/O设备与主存之间的信息传输也不必通过CPU 。还有一条扩展总线,将小局域网,等串行接口都连接起来,同时扩展总线又与系统总线相连,两者之间可以信息传输。
  • 为了进一步提高I/O设备的性能,使其更快的响应命令,又出现了四总线结构,如下图所示:

在这里插入图片描述
相比三总线结构,又增加了一条与计算机紧密相连的高速总线。在高速总线上挂接了一些高速设备。它们通过Cache控制机构中的高速总线桥或者高速缓冲器与系统总线和局部总线相连,使得这些高速设备与CPU更密切。而一些较低速的设备仍然挂在扩展总线上,并由扩展总线接口与高速总线相连。这中结构对于高速设备来说,其自身的工作可以很少的依赖CPU ,同时它们又比扩展总线上的设备更贴近CPU ,对于高性能设备和CPU 来说,各自的效率获得更大的提升。

4.3 总线结构举例
  • 下图为传统微型计算机的总线结构示意图:
    在这里插入图片描述
    由图可见,不论是高速外设还是低速外设都挂接在ISA或EISA总线 上,并通过ISA或EISA 总线控制器与系统总线相连,这样势必会出现总线数据传输的瓶颈。只有将高速,高性能的外设,如高速局域网卡等 尽量靠近 CPU 本身的总线,并且与CPU同步或准同步 ,才可能消除瓶颈问题。这就要求改变总线结构来提高数据传送效率。

  • 为此,出现了下图的VL–BUS总线 结构:
    在这里插入图片描述
    由图可见,原先挂在ISA总线上 的高速外设卸下来,挂到局部总线VL–BUS 上,在与系统总线相连。而将打印机等低速外设仍然挂在ISA总线 上。局部总线VL–BUS 就相当于在CPU 与高速I/O 设备之间架上了高速通道,使得CPU 与高性能外设得到充分发挥,就满足了图形界面软件的要求。

  • 由于VL–BUS 是从CPU 总线演化而来的,与CPU 的关系太紧密,以致很难支持功能更强的CPU ,因此出现了PCI 总线:
    在这里插入图片描述
    由图可见,PCI 总线是通过PCI桥路(包括PCI 控制器和PCI加速器) 与CPU 总线相连。这种结构使得CPU 总线与PCI 总线互相隔离,具有更高的灵活性,可以支持更多高速运行设备;而且有即插即用的特性。挂在PCI总线 上的设备都是要求数据传输率高的设备,如多媒体卡,高速局域网适配器等,与高速CPU 总线总是相配的。至于低速外设仍然挂在ISA,EISA总线 上。

  • PCI总线 驱动能力不足时,可采用多层结构:
    在这里插入图片描述

5. 总线控制

总线控制主要包括判优控制(或称仲裁逻辑)通信控制

5.1 总线判优控制

总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(主模块)从设备(模块) 两种。

  • 主设备 对总线有控制权,从设备 只能响应从主设备发来的总线命令,对总线没有控制权
  • 总线上信息的传递是由主设备 启动的。如某个主设备欲与另外一个设备(从设备)进行通信时,首先要由主设备发出总线请求,若多个主设备同时要使用总线,就由总线控制器的判优,仲裁逻辑按照一定的优先级顺序确定哪个主设备能使用总线。
  • 只有获得总线使用权的设备才能开始传输数据。

总线判优控制可分为集中式分布式 两种,者将控制逻辑 集中在一处(如CPU 中),者将控制逻辑 分散在与总线连接的各个部件或设备上
常见的集中控制优先权仲裁 方式有一下三种:

  • 链式查询
    链式查询方式如下图:
    在这里插入图片描述
    图中控制总线中有三根线用于总线控制(BS总线忙,BR总线请求,BG总线同意),其中总线同意信号BG 是串行的从一个一个I/O 接口送到下一个I/O接口。如果BG 到达的接口有总线请求,BG 信号就不再往下传,意味着该接口获得了总线控制权 ,并且建立总线忙BS信号 ,表示它占用了总线。可见,在链式查询中,离总线控制部件最近的设备具有最高的优先级。这种方式的特点是:只需很少几根线就能按一定顺序实现总线控制,并且容易扩充设备,但对电路故障敏感,且优先级别低的设备可能很难获得请求。

  • 计数器定时查询
    计数器定时查询如下图:
    在这里插入图片描述
    与链式查询相比,多了一组设备地址线,少了一根总线同意线BG 。总线控制部件接到由BR 送来的总线请求信号后,在总线未被使用**(BS= 0)**的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数器一致时,便获得总线使用权,此时终止计数查询。这种方式的特点是:计数可以从“ 0” 开始,此时一旦设备的优先次序被固定,设备的优先级就按0,1,2,…,n的顺序升序排列,而且固定不变;计数器也可以从上一次计数的终止点开始,此时设备使用总线的优先级相等;计数器的初始值还可以由程序设置,故优先次序可以改变。这种方式对电路故障不如链式查询方式敏感,但增加了控制线(设备地址线),控制也较复杂。

  • 独立请求方式
    独立请求方式如下图:
    在这里插入图片描述
    由图中可见,每一台设备均有一对总线请求线BR 和总线同意线BG 。当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。这种方式的特点是:响应速度快,优先次序控制灵活(通过程序改变),但控制线数量多,总线控制更为复杂。链式查询中仅用两根线确定总线的使用权,在计数器查询中大致使用Log2(n)根线,其中n为允许接纳的最大设备数,而独立请求方式需采用2n 根线。

5.2 总线通信控制

ps:关于主设备和从设备

  • 获得总百线控制权的设备即为主设备,被主设备寻址的设备称为从设备。
    平时CPU控制着总线,CPU通过度总线可以访问内存,与外围设备交换信息。
    但当有一个或多个设备向CPU发出使用总线问请求,而CPU又响应这一请求并通过总线裁决,将总线控制权交给同时发出总线请求、但优先权最高的设备,该设备成为主设备,获得了总线控制权,它即可通过总线与被它寻址的从设备进行数据交换,如DMA控制器与主存之间的数据传送。
    主存只能作为从设备,但从设备可不只是主存。
  • 申请总线控制权的就是主设备 从设备可以是打印机 主存等知等
    如果打印机申请道总线 那打印机也可称为主回设备
    比如打印机A要向打印机B传数据 A申请总线 那A就是主设备 B是从设答备
    然后打印机B再向打印机A传数据 那B就是主设备 A是从设备

众多部件共享总线,在争夺总线控制权时,应按各部件的优先级来解决。在通信时间上,则应按照分时方式来处理,即以获得总线使用权的先后顺序分时占用总线,即哪一个部件获得使用权,此刻就由它传送,下一部件获得使用权接着下一时刻传送。这样一个接着一个轮流交替传送。通常将完成一次总线操作的时间称为总线周期,可分为一下四个阶段:

  1. 申请分配阶段: 由需要使用总线的主模块提出申请,经总线仲裁机构 决定下一传输周期的总线使用权授予某一申请者。
  2. 寻址阶段: 取得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。
  3. 传数阶段: 主模块和从模块进行数据交换,数据由源模块 发出,经数据总线流入目的模块。
  4. 结束阶段: 主模块的有关信息均从系统总线上撤除,让出总线控制权。

对于仅有一个主模块的简单系统,无须申请,分配和撤除,总线使用权始终归它占有。对于包含中断,DMA 控制或多处理器的系统,还需要有其他管理机构来参与。
总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配和。通常用四种方式:同步通信,异步通信,半同步通信和分离式通信

  1. 同步通信:
    通信双方由统一时标控制数据传送称为同步通信。 时标通常由CPU 的总线控制部件发出送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
    下图表示某个输入设备向CPU 传输数据的同步通信过程:
    在这里插入图片描述
    图中总线传输周期是连接在总线上的两个部件完成一次完整且可靠的信息传输时间,它包含4个时钟周期T1,T2,T3,T4

    • CPUT1 上升沿发出地址信息;
    • T2 的上升沿发出读命令;与地址信号相符合的输入设备按命令进行一系列内部操作,且必须在T3 的上升沿到来之前将CPU 所需的数据送到数据总线上;
    • CPUT3时钟周期内,将数据线上的信息送到其内部寄存器中;
    • CPUT4 的上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动。如果总线采用三态驱动电路,则从T4 起,数据总线呈浮空状态。

    同步通信在系统总线设计的时候,对T1,T2,T3,T4 ,都有明确,唯一的规定。
    在这里插入图片描述
    写命令传输周期的时序如下图:
    在这里插入图片描述
    这种通信的优点是规定明确,统一,模块间的配合简单一致。其缺点是主,从模块时间配合属于强制性同步,必须在限定时间内完成规定的要求。并且对与所有的模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按照最慢速度的部件来设计公共时钟,影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
    同步通信一般用于总线长度较短,各部件存取时间比较一致的场合。
    在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。

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

    • 不互锁方式
      主模块发出请求信号时,不必等到从模块的回答信号,而是经过一段时间,确认从模块已经收到请求信号时,便撤销其请求信号;从模块接到请求信号后,在允许时发出回答信号,并且经过一段时间(这段时间的设置对不同设备而言是不同的)确认主模块已经收到回答信号后,自动撤销回答信号。可见通信双方并无互锁关系。例如,CPU向主存写信息,CPU要先后给出地址信号,写命令以及写入数据,即采用此种方式。
    • 半互锁方式
      主模块 发出请求信号,必须接待到从模块的回答信号之后再撤销其请求信号有互锁关系而从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。 。由于一方存在互锁关系,一方不存在互锁关系,故称为半互锁方式 。例如,在多机系统中,某个CPU 需访问共享存储器(供所有的CPU 访问的存储器)时,该CPU 发出访问命令后,必须收到存储器未被占用的回答信号,才能真正进行访存操作。
    • 全互锁方式
      主模块 发出请求信号,必须待从模块回答后再撤销其请求信号;从模块发出回答信号,必须待获知主模块信号已撤销后,再撤销其回答信号。双方存在互锁关系,故称为全互锁方式。例如,在网络通信中,通信双方采用的就是全互锁方式。
  3. 半同步通信
    半同步通信 即保留了同步通信的基本特点,如所有的地址,命令,数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别;同时又像异步通信那样,允许不同速度的模块和谐的工作。为此增设了一条”等待(WAIT)“响应信号线,采用插入时钟(等待)周期的措施来协调通信双方的配和问题。例子如下:在这里插入图片描述

    插入等待周期的半同步通信数据输入过程如下:在这里插入图片描述
    半同步通信的通信时序可入一下形式:
    T1 主模块发出地址信息
    在这里插入图片描述

  4. 分离式通信
    以上三种通信方式都是从主模块发出地址和读写命令开始,直到数据传输结束。在整个传输周期中,系统总线的使用权完全由占有使用权的主模块和由它选中的从模块占据。 进一步分析读命令传输周期,发现除了申请总线这一阶段外,其余时间主要花费在如下三个方面:

  • 主模块 通过传输总线向从模块发送地址和命令
  • 从模块 按照命令进行读数据的必要准备
  • 从模块 经数据总线向主模块提供数据
    在这里插入图片描述
    在这里插入图片描述
    end.

猜你喜欢

转载自blog.csdn.net/m0_45210226/article/details/105759087
今日推荐