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

总线的基本概念

为什么采用总线结构?

在冯诺依曼计算机的硬件结构中,计算机由五大部分组成,它们的互连方式有两种:一种是各部件之间使用单独的连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接

早期的计算机大多数用分散连接方式,但是分散连接无法解决 I/O 设备与主机之间连接的灵活性问题:随着 I/O 设备的种类和数量的增多,或者人们希望随时增添或减撤设备,用分散连接方式几乎是不可能的。由此出现了总线连接方式。

总线的定义

总线(Bus)是连接各个部件的信息传输线,是各个部件共享的传输介质

总线上信息的传输

某一时刻,仅允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息;如果多个部件同时向总线发送信息,会导致信号冲突,传输无效。

总线由许多传输线或通路组成,若干条传输线可以同时传输若干位二进制数据(并行传输),例如,16 条输出线组成的总线可同时传输 16 位二进制数据。如果传输距离较长,平行的各条传输线之间会产生干扰,导致传输的数据出现差错,因此,通常情况下并行传输的传输距离较短,如将总线集中在机箱内部;而 串行传输的传输距离较长,如计算机网络物理层中物理链路串行地按顺序传输比特流。
在这里插入图片描述

总线的分类

按不同分类标准可以有不同的分类方法。按数据传输方式可分为并行传输总线和串行传输总线,在并行传输总线中又可按照传输数据带宽分为 8 位、16位、32 位、64 位等传输总线;按总线的使用范围划分,又有计算机总线、测控总线、网络通信总线等。

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

片内总线

芯片内部的总线。如 CPU 芯片内部,寄存器之间、寄存器与 ALU 之间都由片内总线连接。

系统总线

计算机各部件之间的信息传输线。根据系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线。

  1. 数据总线:传输各功能部件之间的数据信息,它是双向传输总线。其位数与机器字长有关(小于等于机器字长,如果数据总线宽度为 8 位,在 64 位计算机中取一个字时必须 8 次访存)。

  2. 地址总线:指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址,它是单向总线(由 CPU 发出),其位数与存储单元(每个存储单元存储一个字)的个数有关。

    例如,从存储器读出一个数据时,则 CPU 要将此数据所在的存储单元的地址送到地址总线上。
    又如,将某数据经 I/O 设备数据,则 CPU 除了需将数据送到数据总线上,还需将该输出设备的地址送到地址总线上。

  3. 控制总线:发出各种控制信号的传输线,它是双向传输总线。

    例如,存储器读 / 写命令、I/O 设备读 / 写命令都是由 CPU 发出的;当某部件准备就绪时,便向 CPU 发出中断请求;当某部件需获得总线使用权时,也向 CPU 发出总线请求。

通信总线

用于计算机系统之间或计算机系统与其它系统之间的通信。

总线特性及性能指标

总线物理实现

在这里插入图片描述

总线是由许多导线直接印制在电路板(在微型计算机中称为主板)上的,计算机系统的其他部件通过插头与与水平方向总线插槽连接。

总线特性

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

  • 机械特定:指总线在机械连接方式上的一些性能,如插头、插座的尺寸、形状、管脚数及排列顺序。
  • 电气特性:每一根传输线上信号的传输方向和有效的电平范围。
  • 功能特性:每根传输线的功能,如地址总线用来指出地址码,数据总线用来传递数据,控制总线发出控制信号。
  • 时间特性:信号的时序关系。

总线的性能指标

总线性能指标如下:

  • 总线宽度:数据线的根数,用 bit(位)表示,如 8 位、16 位、32 位、64 位。
  • 总线带宽:每秒传输的最大字节数(MBps,兆字节每秒)。
  • 时钟同步 / 异步:总线上的数据与时钟同步工作的总线称为同步总线,否则为异步总线。
  • 总线复用:一条信号线上分时传送两种信号。如 8086 地址总线和数据总线共用一组物理线路。
  • 信号线数:地址总线、数据总线、控制总线三种总线数的总和。
  • 总线控制方式。包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
  • 其他指标。如负载能力。

总线结构

单总线结构

在这里插入图片描述

CPU、主存、I/O设备都连接到一组总线上。当 I/O 设备与主存交换信息时,原则上不影响 CPU 的工作,使得 CPU 的工作效率有所提高。但是在任意一个时刻,只能有一个部件传输数据。

这种结构简单,也便于扩充,但所有的传送都通过这种共享总线,因此总线极易成为计算机系统性能的瓶颈

多总线结构

(1)双总线结构

以 CPU 为中心的双总线结构:存储总线连接 CPU 和主存,I/O 总线连接 CPU 和各 I/O 设备。这种结构在 I/O 设备与主存交换信息时会占用 CPU,影响 CPU 的工作效率。
在这里插入图片描述

以存储器为中心的双总线结构:存储总线只供主存和 CPU 之间传输信息,这样既提高了传输效率,又减轻了系统总线的负担,还保留了 I/O 设备与存储器交换信息时不经过 CPU 的特点。但是目前技术主存很难做到同时与 CPU 和 I/O 设备传输数据,仍采用分时技术。
在这里插入图片描述

除了前面介绍的的以 CPU 为中心的双总线结构和以存储器为中心的双总线结构之外,还有其他双总线结构,如下图所示。其中通道是一个具有特殊功能的处理器,CPU 将一部分功能下放给通道,使其对 I/O 设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送,其系统的吞吐能力可以相当大。

在这里插入图片描述

(2)三总线结构

下图为一种三总线结构的示意图,主存总线用于 CPU 与主存之间的传输,I/O 总线供 CPU 与各类 I/O 设备之间传递信息,DMA 总线用于高速 I/O 设备(如磁盘等)与主存之间直接交换信息(可能有多个高速 I/O 设备,都接在 DMA 总线上)。在该结构中,任一时刻是能使用一种总线。主存总线与 DMA 总线不能同时对主存进行存取,I/O 总线只有在 CPU 执行 I/O 指令时才能用到。
在这里插入图片描述

下图为另外一种三总线结构。CPU 与 Cache 之间有一条局部总线,它将 CPU、Cache 和 I/O 设备相连。Cache 与主存都接到系统总线上,这样 Cache 便可以与主存传输信息,而且 I/O 设备与主存之间的传输也不必通过 CPU。系统总线通过扩展总线接口与扩展总线相连接,各种类型的设备都可以连接到扩展总线上,解决了 I/O 设备的扩展问题。
在这里插入图片描述

(3)四总线结构:

多种速度类型的设备都连接到了扩展总线上,这会影响外部设备的工作速度,为了解决该问题,便出现了四总线结构。将高速 I/O 设备连接到高速总线上,使其效率获得了提高:
在这里插入图片描述

总线控制

由于总线上连接着多个部件,什么时候由哪个部件发送信息,如何避免多个部件同时发送,如何规定接收信息的部件,如何给信息传送定时,如何放置信息丢失等一系列问题,都需要由总线控制器统一管理。

它主要包括判优控制和通信控制。

总线判优控制

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

总线判优控制可分集中式分布式两种,前者将控制逻辑集中在一处(如在 CPU 中),后者将控制逻辑分散在与总线连接的各个部件或设备上。常见的集中式方法如下所示,分布式方法例如以太网中使用的载波监听多路访问协议(CSMA)
在这里插入图片描述

(1)链式查询

如下图所示,图中有一条数据总线、一条地址总线和三条控制总线(BS 总线忙、BR 总线请求、BG 总线同意)
图中 I/O 接口 1 和 n n n 都向总线控制部件发出总线请求,总线控制部件在总线未被使用的情况(BS=0)下,发出总线同意信号 BG;
总线同意信号 BG 串行地从一个 I/O 接口送到下一个 I/O 接口,所以 BG 到达第一个有总线请求发出的 I/O 接口 1,BG 信号就不再往下传;
I/O 接口 1 获得了总线使用权,并建立总线忙 BS 信号,表示它占用了总线。

可见在链式查询中,离总线控制部件最近的设备具有最高的优先级。这种方式的优点是:只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备;缺点是对电路故障很敏感。

在这里插入图片描述

(2)计数器定时查询

如下图所示,相比于链式查询,多了一条设备地址线,少了一条总线同意线 BG:
总线控制部件接收到由 BR 送来的总线请求信号后,在总线未被使用的情况(BS=0)下,总线控制部件中的计数器开始计数,并通过设备地址线向各设备发出地址信号(计数值)
当某个发出总线请求的设备的地址与计数值一致时,便获得总线使用权,并建立总线忙 BS 信号,总线控制单元终止计数查询。

计数器的值从某初始值开始顺序增加,直到找到发出总线请求的设备;计数器的初始值可由程序设置,因此优先次序可以改变。这种方式对电路故障不如链式查询方式敏感;设备地址线的宽度与 I/O 接口数有关,而且需要对所有设备进行编码,控制也较复杂。

在这里插入图片描述

(3)独立请求方式

链式查询和计数器定时查询都按顺序查找发出总线请求的设备,效率较低。在独立请求方式中,每台设备均有一对总线请求线 BR 和总线同意线 BG,如下图所示:
当设备要求使用总线时,便通过该设备的 BR 总线发出其请求信号。
总线控制部件中有一排队电路,可根据优先次序通过某 BG 总线确定响应哪一台设备的请求。

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

在这里插入图片描述

总线通信控制

总线判优控制解决了总线上哪个设备(模块、部件)可以使用总线的问题,总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及解决通信双方协调配合问题

总线传输周期指完成一次总线操作的时间,可分为以下 4 个阶段:
申请分配阶段:由需要使用总线的主设备提出申请,经总线仲裁机构决定下一传输周期的总线使用权归谁
寻址阶段:取得了使用权的主设备通过总线发出本次要访问的从设备的地址及命令,启动参与本次传输的从设备。
传数阶段:主模块和从模块进行数据交换
结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。

通常有四种方式:同步通信、异步通信、半同步通信、分离式通信。

(1)同步通信

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

下图表示连接在总线上的两个部件进行数据输入的一个通信传输周期,它包含 4 个时钟周期 T 1 , T 2 , T 3 , T 4 T_1,T_2,T_3,T_4 T1,T2,T3,T4
CPU 在 T 1 T_1 T1 上升沿发出地址信息;在 T 2 T_2 T2 上升沿发出读命令;
与地址信息相符合的输入设备按命令进行一系列内部操作,且必须在 T 3 T_3 T3 上升沿到来前将 CPU 所需的数据送到数据总线上;
CPU 在 T 3 T_3 T3 时钟周期内,将数据线上的信息送到其内部寄存器中;
CPU 在 T 4 T_4 T4 的上升沿撤销读命令,输入设备撤销对总线的驱动。

这种通信的优点是规定明确、统一,模块间的配合简单一致。缺点是主从设备时间配合属于强制性同步,必须在相同的限定时间内完成规定的要求,这就要求必须按最慢速度的部件进行设计,严重影响了总线的工作效率,也给设计带来了局限性。

同步通信一般用于总线长度较短(考虑到信号传播延迟)、各部件存取时间比较一致的场合。
在这里插入图片描述

(2)异步通信

异步通信没有公共时钟标准,它克服了同步通信的缺点,允许各模块速度的不一致。它采用应答方式(或称握手方式):当主设备发出请求信号时,一直等待从设备反馈回来响应信号后,才开始通信,这就要求两设备之间增加两条应答线,如下图所示。异步通信的应答方式又可分为不互锁、半互锁和全互锁三种类型:

  • 不互锁:主设备发出请求信号后,不必等待接收到从设备的回答信号,而是经过一段时间便撤销其请求信号;从设备接到请求信号后,在条件允许时发出回答信号,并经过一段时间便撤销回答信号。可见通信双方都无互锁关系。
  • 半互锁:主设备发出请求信号,必须等待接到从设备的回答信号后再撤销其请求信号,有互锁关系;而从设备收到请求信号后,不必等待主设备的请求信号撤销后再撤销其回答信号,无互锁关系。
  • 全互锁:主设备发出请求信号,必须等待从设备回答后再撤销其请求信号;从设备发出回答信号,必须待获知主设备请求信号已撤销后,再撤销其回答信号。双方均存在互锁关系,故称为全互锁方式。如网络通信中 TCP 在通信前需要经过三次握手建立连接后才能传输消息。

在这里插入图片描述

(3)半同步通信

同步、异步结合

  • 同步特征:有定宽定距的时钟,发送方参照系统时钟的某个前沿发信号,接收方采用系统时钟后沿时刻来进行判断识别。
  • 异步特征:允许不同速度的模块和谐工作,为此增设了一条“等待”( WAIT ‾ \overline{\textbf{WAIT}} WAIT)响应信号线,采用插入时钟(等待)周期的方式来协调通信双方的配合问题。

仍以输入为例,假设总线传输周期为 4 个时钟周期:
CPU 在 T 1 T_1 T1 发出地址,在 T 2 T_2 T2 发出读命令,输入设备在 T 3 T_3 T3 传输数据,在 T 4 T_4 T4 结束传输。
假设输入设备工作速度较慢,无法在 T 3 T_3 T3 时刻提供数据(在同步通信中便会出错),则必须在 T 3 T_3 T3 到来之前通知 CPU,给出 WAIT ‾ \overline{\textbf{WAIT}} WAIT 低电平。
CPU 在 T 3 T_3 T3 到来时刻测得 WAIT ‾ \overline{\textbf{WAIT}} WAIT 为低电平,就插入一个与时钟周期相等的等待周期 T W T_W TW,不立刻从数据线上取数。若 CPU 在下一个时钟周期到来时刻还测得 WAIT ‾ \overline{\textbf{WAIT}} WAIT 为低电平,就再插入一个 T W T_W TW 等待……直到某个时钟周期开始时测得 WAIT ‾ \overline{\textbf{WAIT}} WAIT 为高电平,主模块即把此刻的下一个周期当作正常周期 T 3 T_3 T3

半同步通信控制方式比异步通信简单,各设备在统一的系统时钟控制下同步工作,可靠性较高,同步结构较方便。缺点为系统工作的速度不是很高。半同步通信适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。

在这里插入图片描述

(4)分离式通信

前三种通信控制方式都是从主设备发出地址、读写命令开始,直到数据传输结束。在整个传输周期中,系统总线的使用权完全由占有使用权的主设备和与其进行通信的从设备占据。除了总线申请阶段外,其余时间主要花费在如下三个方面:
① 主设备向从设备发地址、命令(占用总线)
② 从模块准备数据(不占用总线,总线空闲
③ 从设备向主设备发数据(占用总线)

第 ② 步中,从设备内部读数据过程并无实质性的信息传输,总线空闲。因此充分挖掘系统总线每个瞬间的潜力,对提高系统性能起到极大作用,这就是分离式通信。它将一个总线传输周期分解为两个子周期,仍以输入数据为例:

  • 子周期 1:主设备 A 在获得总线使用权后,使用总线发送地址、命令及其他有关信息,使用完后立即放弃总线使用权,以便其他设备使用。
  • 子周期 2:B 在接收到有关命令信号后,经选择、译码、读取等一系列内部操作,将 A 设备所需的数据准备好。B 设备申请总线使用权,将 A 设备的地址、A 设备所需的数据等送至总线上。

这种通信方式的特点如下:
各设备有权申请占用总线
② 在得到总线的使用权后,在限定的时间内向对方传送信息,采用同步方式通信。
③ 各设备准备数据时,不占用总线。
总线不存在空闲等待时间

本BLOG上所有的原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为:
https://blog.csdn.net/qq_39583450/article/details/114098493

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值