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

总线的基本概念

计算机系统五大部件之间的互连方式有两种:各部件之间使用单独的连线称为分散连接,将各部件连接到公共信息传输线上称为总线连接
总线是连接两个或两个以上部件的信息传输线,是各部件共享的传输介质。为了避免多个部件同时向总线发送信息,导致信号冲突。在某一时刻是允许有一个部件向总线发送信息,而多个部件可以同时从总线接收信息。实际上,总线有许多个传输线或通路组成,每一条线可一位一位的传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。

**以CPU为中心的双总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180831230645539?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 其中一组总线连接CPU和主存,称为存储总线(M总线),另一组总线用来建立CPU和各I/O设备之间交换信息的通道,称为输入/输出总线(I/O总线)。这种结构在I/O设备与主存交换信息时仍然要占用CPU,会影响CPU执行效率。
**单总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180831231542411?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 当I/O与主存交换信息时不影响CPU的工作,CPU仍可继续处理不访问主存或I/O设备的操作。但是只有一组总线,当某时刻各个部件都要占用总线时,就会发生冲突。所以必须设置总线判优逻辑,让各个部件按优先级高低来占用总线,这也会影响整机的工作速度。
**以存储器为中心的双总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180831232623609?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 它是在单总线基础上又开辟出一条CPU与主存之间的总线,称为**存储总线**。这组总线速度高,只供主存与CPU之间传输信息, ## 总线的分类 ##
  • 按数据传送方式分为:并行传输总线和串行传输总线;
  • 按使用的范围:计算机总线,测控总线,网络通信总线等。

片内总线
是指芯片内部的总线。
系统总线
是指CPU、主存、I/O设备各法部件之间的信息传输线。又称板级总线或板间总线。
按传输的信息不同又可分为:数据总线,地址总线和控制总线。

  • 数据总线:用来传输各功能部件之间的数据信息,它是双向传输总线。
  • 地址总线:主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。用来指明CPU欲访问的存储单元或I/O端口的地址,由CPU输出,单向传输。
  • 控制总线:用来发出各种控制信号的传输线。

通信总线
用于计算机系统之间或者计算机系统与其他系统之间的通信。

总线结构

分为单总线结构和多总线结构。
单总线结构
将CPU、主存、I/O设备都挂在一组总线上,允许I/O设备之间、I/O设备与CPU之间或者I/O设备与主存之间直接交换信息。只有一条主线,极易形成计算机系统的瓶颈。这种总线多数被用于小型或微型计算机。
多总线结构
特点是将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。

**双总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180901083850791?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) **通道**是一个具有特殊功能的处理器,CPU将一部分功能下放给通道,使其对I/O设备具有统一的管理能力以完成外部设备与主存之间的数据传送,其系统的吞吐能力可以相当大。这种结构大多用于大、中型计算机系统
**三总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180901085238994?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 主存总线用于CPU与主存之间的传输,I/O总线供CPU与各类设备之间传递信息;DMA总线用于高速I/O设备与主存之间交换信息。任意时刻只能使用一种总线。 ![这里写图片描述](https://img-blog.csdn.net/20180901090606235?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 这是三总线结构的另一种形式 处理器与Cache之间有一条**局部总线**,它将CPU与Cache或与更多的局部设备连接。Cache的控制机构不仅将Cache连到局部总线上,而且还直接连到系统总线上,这样Cache就可通过系统总线与主存传输信息。而且I/O设备与主存之间的传输也不必通过CPU。还有一条**扩展总线**,它将局域网、小型计算机接口(SCSI)、调制解调器以及串行接口等都接连起来,并且通过这些接口又可与各类I/O设备相连,因此它可支持相当多的I/O设备。与此同时扩展总线又通过扩展总线接口与系统总线相连,由此可实现这两种总线之间信息传递。
**四总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180901094028890?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 增加了一条与计算机系统紧密相连的高速总线。在高速总线上挂接了一些高速I/O设备,如高速局域网,图形工作站,多媒体,SCSI等。它们通过Cache控制机构中的高速总线桥或高速缓冲器与系统总线和局部总线相连,使得这些高速设备与CPU更密切。而一些较低速的设备如图文传真FAX、调制解调器及串行接口仍挂在扩展总线,并由扩展总线接口与高速总线相连。 这种结构对高速设备而言,其自身的工作可以很少依赖CPU,同时又比扩展总线上的设备更贴近CPU,所以对高性能设备和CPU来说,各自的效率将获得更大的提高。在这种结构中,CPU、高速总线的速度以及各自信号线的定义完全可以不同,以至各自改变其结构也不会影响高速总线的正常工作。 **总线结举例**
**PCI总线结构**
![这里写图片描述](https://img-blog.csdn.net/20180901181019575?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) PCI总线是通过PCI桥路(包括PCI控制器和PCI加速器)与PCI总线相连。这种结构使CPU总线与PCI总线互相隔离,具有更高的灵活性,可以支持更多的高速运行设备,而且具有即插即用的特性。挂在PCI总线上的设备都要求数据传输速率高的设备,与高速CPU总线是相匹配的。至于低速的设备仍挂在ISA、EISA总线上。 ## 总线控制 ## 主要包括判优控制和通信控制。 **总线判优控制** 总线上所连接的各类设备,按其对总线有无控制能力可分为主设备和从设备。
  • 主设备:对总线有控制权,启动传送总线上的信息。如某个主设备与另一个设备进行通信时,首先由主设备发出总线请求信号,若多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。只有获得总线使用权的设备才能开始传送数据。
  • 从设备:只能响应从主设备发来的总线命令,对总线没有控制权。

总线判优控制可分集中式和分布式,前者将控制逻辑集中在一起,后者将控制逻辑分散在与总线连接的各个部件和设备上。

  • 链式查询
**链式查询方式**
![这里写图片描述](https://img-blog.csdn.net/20180901184455103?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) BS总线忙,BR总线请求,BG总线同意。总线同意信号BG是串行的从一个接口送到下一个接口。如果BG到达的接口有总线请求,BG信号就不再往下传,意味着该接口获得了总线使用权。并建立总线忙BS信号。可见在链式查询中**离总线控制部件最近的设备具有最高的优先级。** **特点:**结构简单,容易扩充设备,但对电路故障敏感,且优先级别地的设备可能很难获得请求。
  • 计数器定时查询
**计数器定时查询方式**
![这里写图片描述](https://img-blog.csdn.net/20180901190335629?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

总线控制部件接到由BR送来的总线请求信号后,在总线未被时用的情况下,总线控制部件中的计数器开始计算,并通过设备地址线,向各设备发出一种地址信号。当某个请求占用总线的设备地址与计数器一致时,便获得总线使用权。此时终止计数查询。设备使用总线的优先级相等,计数器的初始值可由程序设置,故优次序可以改变。、

  • 独立请求方式
    每一台设备均有一对总线请求线BR和总线同意BG,当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。
    **特点:**响应速度快,优先次序控制灵活,但是控制线数量多,总控制线更复杂。

总线通信控制
众多部件共享总线,在争夺总线使用权的时候,应按各部件的优先等级来解决。在通信时间上,则应按分时方式来处理,即以获得总线使用使用权的先后顺序分时占用总线。
通常将完成一次总线操作的时间称为总线周期,可分为四个阶段:

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

总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何分配。通常用四种方式:同步通信,异步通信,半同步通信和分离式通信。

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

这里写图片描述

  • CPU在T1上升沿发出地址信息;
  • 在T2的上升沿发出读命令;与地址信号相符合的输入设备按命令进行一系列内部操作,且必须在T3上升沿带来之前将CPU所需的数据送到数据总线上;
  • CPU在T3时钟周期内,将数据线上的信息送到器内部寄存器中;
  • 在T4的上升沿撤销读命令,不再传送数据。

对于读命令其传输周期如下:

  • T1 主模块发地址
  • T2 主模块发出读命令
  • T3 从模块提供数据
  • T4 主模块撤销读命令,从模块撤销数据
**同步式数据输出传输**
![这里写图片描述](https://img-blog.csdn.net/20180902090804759?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 对于写命令
  • T1 主模块发地址
  • T1.5 主模块提供数据
  • T2 主模块发出写命令,从模块接收到命令后,必须在规定时间将数据总线上的数据写到地址总线所指明的单位中。
  • T4 主模块撤销写命令和数据等信号。
    优缺点:
    优:规定明确,统一,模块件配合简单一致。
    缺:对时间要求严格,必须按最慢速度部件来设计公共时钟,影响工作效率,设计有局限性,缺乏灵活性。

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

  • 不互锁
    主模块发出请求信号后,不必等待回答信号,而是过段时间确认从模块已受到请求信号后便撤销其请求信号。从模块的回答信号也确认主模块已受到回答信号后,撤销。所以双方并无互锁关系。
  • 半互锁方式
    主模块发出请求信号后,必须待接到回答信号后再撤销请求信号,有互锁关系。从模块在接受请求信号后发出回答信号,不必等请求信号撤销,而是隔一段时间自动撤销回答信号,无互锁关系。
  • 全互锁方式
    主模块必须接收到回答信号后才撤销请求信号,从模块等主模块撤销请求信号才撤销回答信号。双方有互锁关系。

半同步通信
既保留了同步通信的基本特点,同时又像异步通信那样,允许不同速度的模块和谐地工作。
T1发出地址,T2发出命令,T3传输数据,T4结束传输。如果模块工作速度慢,无法在T3时刻提供数据,则必须在T3到来前通知主模块给出WAIT信号。若在T3的到来之前监测到WAIT,就插入一个等到周期TW,不立即读取数据。直到主模块检测到WAIT为高电平,主模块即把此刻的下一个时钟周期当作正常周期T3.获取数据。
适用于系统工作速度不高但又包含了许多工作速度差异较大的各类设备组成得简单系统。可靠性高,结构简单。缺点是对系统时钟频率不能要求太高。
分离式通信
基本思想是将一个传输周期分成两个子周期。在第一个子周期中,主模块A在获得中线的使用权之后将命令,地址以及其他有关信息包括该主模块的编号发送到系统总线上。经总线传输后,由有关模块B接收下来。一旦发送万=完,立即放弃总线使用权,以便其它模块使用。
在第二个周期中,当模块B收到模块A发来的命令信息之后,经选择、译码、读取等一系列操作,将A模块所需的数据准备好,便由B申请总线使用全权,一旦获准,B模块便将A模块编号、B模块地址、A模块所需的数据等一系列信息送到总线上供A模块接收。

特点:

  • 各模块欲占用总线使用权都必须提出申请。
  • 再得到使用权之后,主模块在限定时间内向对方传送信息,采用同步方式传送,不再等待对方回答信号。
  • 各模块在准备数据过程中都不占用总线。
  • 总线被占用时都再做有效工作,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块之间进行信息交叉重叠并行式传送。
  • 适用于大型计算机系统

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/82263044
今日推荐