计算机组成原理——总线(Bus)

总线

    • 总线的基本介绍
      • 微型计算机的微处理器级总线与系统级总线
    • 五大部件互联的方式
    • 采用总线连接方式的计算机结构
      • 以CPU为中心的双总线结构
      • 单总线结构
      • 以存储器为中心的双总线结构
    • 总线的分类(按照连接部件的不同进行分类)
      • 1.片内总线
      • 2.系统总线(内总线)
        • 系统总线的分类(按照传输信息的不同进行分类)
          • 数据总线DB
          • 地址总线AB
          • 控制总线CB
      • 3.通信总线(外总线)
        • 通信总线的分类(按照传输方式的不同进行分类)
    • 总线标准
      • STD总线
      • PCI局部总线
      • PCI Express总线
      • 串行标准总线RS-232C
      • USB总线
      • SCSI总线
      • AGP加速图形端口总线
      • IEEE 1394 串行接口总线
      • RS-485总线
      • 单总线结构
      • 双总线结构
      • 三总线结构1
      • 三总线结构2
      • 四总线结构
    • 总线控制
      • 设备分类(按照是否具有对总线的控制权进行分类)
      • 一、判优控制
        • 判优控制的分类(按照控制逻辑集中还是分散)
      • 二、通信控制
        • 总线(传输)周期
        • 控制方式的分类(仅仅针对串行通信而言,并行通信没有这些分类)
    • 总线特性
    • 总线性能指标

总线的基本介绍

总线就是用于传送信息的通道,总线由许多传输线和通路构成,每条线可以一位一位地串行传输二进制代码,若干传输线可以同时传输若干位二进制代码,总线宽度指总线上可以同时传送二进制信息的位数

微型计算机的微处理器级总线与系统级总线

由于CPU需要发送控制信息、数据信息、地址信息,这就会导致CPU的引脚数目过多,CPU体积增大,为了解决这个问题,提出了引脚复用,即CPU的同一根引脚可以用于分时传输不同类型信息。但是这也引入了一个新问题,即实际应用过程中,不同类型的信息要使用其对应的专用通道进行传输,比如,地址信息要使用专用的地址总线通道进行传输

对应的解决方案就是在CPU外部设计一部分电路,将CPU的复用引脚都接入到这部分电路上,通过这部分电路,将复用引脚上的复用信息分离开,再使用专用通道对不同类型的信息进行传输,我们将这部分电路称为系统总线形成电路,同时我们将CPU与系统总线形成电路之间的这部分引脚称为微处理器级总线,把通过系统总线形成电路引出的总线称为系统级总线,一般简称系统总线

在微型计算机当中,任何要和CPU进行通信的部件(比如,存储器、I/O设备),都要挂接到系统总线上,这些部件对于总线而言都是一个负载(将这些部件挂接到系统总线上,而不是挂接到微处理器级总线上,是因为微处理器级总线的驱动能力弱,这样设计可以让微处理器级总线仅仅驱动系统总线形成电路这一个负载)

五大部件互联的方式

  • 分散连接
    • 各个部件之间采用独立的连线
    • 由于无法解决I/O设备和主机的连接的灵活性问题,于是这种连接方式被弃用
  • 总线连接
    • 将各个部件连接到一个公共信息传输线
    • 当两个甚至多个部件同时向总线发送信号的时候,势必会导致信号冲突,传输无效,因此,在同一时刻,只能有一个部件向总线发送信息,其他部件都会接收到相同信息
    • 系统总线也称为板级总线,是连接各个插件板的通路。总线(BUS)印刷在电路板上,这块电路在微型计算机中称为主板,计算机系统的其他部件或者模块(比如,CPU插板、主存插板、I/O插板)可以通过总线上的接口连接在主板上
      计算机组成原理——总线(Bus)_第1张图片

采用总线连接方式的计算机结构

以CPU为中心的双总线结构

I/O设备和主存交换信息的时候要占用CPU,会影响CPU的工作效率
计算机组成原理——总线(Bus)_第2张图片

单总线结构

I/O设备与存储器交换信息时不经过CPU,但是只有一组总线,当某一时刻各部件都要占用总线时,就会发生冲突,于是,必须为此设置总线判优逻辑,让各部件按照优先级高低来占用总线,明显,这样也会对计算机的工作速度有所影响
计算机组成原理——总线(Bus)_第3张图片

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

在单总线的基础上又开辟了一条CPU与主存之间的总线,即存储总线,存储总线只供主存和CPU之间进行信息传输,这样既提高了传输效率,又减低了系统总线的负担,还保留了I/O设备与存储器交换信息时不经过CPU的优点

实际上,进行对比即可发现,以存储器为中心的双总线结构为单总线结构或者以CPU为中心的双总线结构加上一根线后的总线结构,即以存储器为中心的双总线结构融合了两种上述总线结构的优势
计算机组成原理——总线(Bus)_第4张图片

总线的分类(按照连接部件的不同进行分类)

1.片内总线

指集成电路芯片内部的总线,比如寄存器和寄存器之间、寄存器和AUL之间的总线。与片内总线相对的概念是片间总线(用于在各个部件传递信息),片内总线设计的优劣直接影响到这个芯片的性能

2.系统总线(内总线)

指CPU、主存、I/O设备(通过I/O接口)各大部件之间连接的总线,由于这些部件通常安放在主板或者插件板(插卡)上,所以系统总线又称为板级总线或板间总线

系统总线的分类(按照传输信息的不同进行分类)

计算机系统中,总线上传送的信息有三类:数据信息、地址信息、控制信息,在实际应用中,不同类型的信息需要使用专用的总线进行传送

数据总线DB

用来传输各个部件之间的数据信息,为双向传输总线,所以位数和机器字长、存储字长有关(通常数据总线位数要小于机器字长和存储字长),一般为8位、16位或者32位,数据总线的位数也称为数据总线的宽度,值得注意的是,"数据总线"中的"数据"是包括指令的,是一种广义的"数据"概念

地址总线AB

用来指出数据总线上的数据在主存单元的地址或者I/O设备的地址,也就是CPU需要进行访问的主存单元的地址或者I/O设备的地址,比如从存储器读取一个数据,则CPU要将此数据所在的存储单元的地址发送到地址线上;某一个数据要使用I/O设备进行输出,则CPU除了要将该数据发送到数据总线以外,还要将对应的目标I/O设备地址发送到地址线上。地址总线为单向传输总线,位数和存储单元的个数有关

控制总线CB

由于数据总线、地址总线都是被所有挂在总线上的所有部件共享的,控制总线用来控制各个部件在不同时刻的占有总线使用权,控制总线是用来发送各种控制信号的总线,通常对于任一控制线来说,传输是必然是单向的,但是对于控制总线整体来说,传输又可以认为是双向的(所以在各种结构图中凡是涉及控制总线,均以双向线表示),因为数据的读写命令都是由CPU发送的,而当设备准备就绪的时候,会向CPU发送中断请求,当某部件需要获得总线使用权的时候,也会向CPU发送总线请求

控制总线上常见的一些控制信号:
计算机组成原理——总线(Bus)_第5张图片

3.通信总线(外总线)

也称为外部总线,用于计算机系统之间或者计算机系统和其他系统(如控制仪表、移动通信等)之间的通信,通信总线的类别很多

通信总线的分类(按照传输方式的不同进行分类)

串行通信和并行通信的数据传输速率都与距离成反比,短距离内并行数据传输速率比串行数据传输速率高得多,对于远距离通信而言,串行通信费用较低

串行通信:指数据在单条1位宽的传输线上,一位一位地按顺序分时传输;适合于远距离数据传输,可以从几米到几千公里。传输的信号可以是数据、指令或者控制信号,这取决于采用的是何种通讯协议以及传输状态。串行信号本身也可以带有时钟信息,并且可以通过算法校正时钟。因此不需要额外的时钟信号进行控制。串行通讯中,两个设备之间通过一对信号线进行通讯,其中一根为信号线,另外一根为信号地线,信号电流通过信号线到达目标设备,再经过信号地线返回,构成一个信号回路(公共地线上存在各种杂乱的电流,可以轻而易举地把信号淹没。因此所有的信号线都使用信号地线而不是电源地线,以避免干扰)。

并行通信:指数据在多条并行1位宽的传输线上,同时由源到目标;适合于近距离数据传输,通常小于30米,因为由于是多条线同时传输,如果距离较长,线与线之间会产生干扰,信号会发生变形。基本原理与串行通讯没有区别,只不过使用了成倍的信号线路,从而一次可以传送更多bit的信号。并行通讯中,数据信号中无法携带时钟信息,为了保证各对信号线上的信号时序一致,并行设备需要严格同步时钟信号,或者采用额外的时钟信号线。

高速信号的传输一般使用串行的原因:随着技术发展,时钟频率越来越高,并行导线之间的相互干扰越来越严重;而串行由于导线少,于是线间干扰容易控制,反而可以通过不断提高时钟频率来提高传输速率

总线标准

为了解决系统、模块、设备与总线之间不适应,不通用以及不匹配的问题,设定总线标准。所谓的总线标准,就是系统与各个模块、模块与模块之间的一个互连的标准界面,这个界面对它两端的模块都是透明的,即界面的任一方只需要根据总线标准满足自身接口的功能要求即可,不需要了解对端接口与总线的连接要求,即按照总线标准设计的接口为通用接口

其实,通常所说的总线,指的就是总线标准

STD总线

STD总线是国际流行的一种用于工业控制的标准微机总线。STD总线是我国工业控制机领域中优先重点发展的标准微机总线之一,非常适合机电一体化和对传统工业进行设备改造,它具有如下特点

  • 高可靠性:产品的平均无故障间隔率高
  • 小板结构:便于按功能划分模块,提供较大的设计灵活性,且抗干扰、抗振动、抗断裂能力强
  • 适应性强:支持Intel、Motorola、NSC、Zilog等多家公司的8/16位微处理器
  • 采用开放式组态:开放式的灵活组态,使用户可根据自己的需要利用模块构筑系统,易于扩充和维护
  • 可应用于分散型控制系统中,进入工业网络

PCI局部总线

PCI是一种高性能的局部总线,有严格的规范来保证高度的可靠性和兼容性,广泛应用于现代微机(台式)工作站和便携机,它具有如下特点

  • 高性能:时钟频率为33MHz,并且与CPU时钟频率无关。它的总线宽度为32位,可升级到64位,其带宽可以达到132-246MB/s
  • 兼容性强:PCI总线可以与ISA、EISA、VL总线兼容。由于PCI指标与CPU指标以及时钟无关,所以,PCI的插件是通用的,可以插到任何一个有PCI总线的系统
  • 可靠性和可操作性:32位和64位的扩展板和部件正反向兼容。排除缓冲和黏附逻辑,在局部总线的部件级满足负载和频率的需求,以提高扩展卡的可靠性和可操作性
  • 低成本:用于连接PCI总线的管脚数很少,对于PCI外设来说,意味着设计可以紧密集成;加之PCI扩展卡的外形尺寸较短,这样就可以节省费用
  • 自动配置:每个PCI设备都有256字节用来存放自动配置信息,当PCI插卡插入系统时,系统BIOS能根据读到的关于扩展卡的信息,再结合系统的实际情况为插卡分配存储地址、端口地址、中断和某些定时信息,从根本上免除了人工操作

PCI Express总线

随着PC技术的快速发展,尤其是千兆网络以及各种高带宽设备的出现,PCI总线无力应付计算机系统内部大量高带宽并行读写的要求,这导致PCI总线成为系统性能提升的瓶颈,于是出现了PCI Express总线,其中的"Express"表示"高速"的意思,它的主要性能特点如下

  • 串行的点对点传输:PCI Express采用了点对点串行连接,每个传输通道独享带宽,充分保障了各设备的带宽资源,提高数据传输速率
  • 支持双向传输模式和数据分通道传输模式:在数据传输模式上,PCI Express总线采用双通道传输模式,类似于全双工模式。数据分通道传输模式,即PCI Express总线的X1、X2、X4、X8、X12、X16和X32多通道连接,具有非常强的伸缩特性,以满足不同系统设备对数据传输带宽不同的需求。X1单向传输带宽即可达到250MB/s,双向传输带宽更能够达到500MB/s
  • 采用基于数据包的协议:PCI Express使用基于数据包的协议来编码事务。PCI Express定义了各种类型的数据包,如存储器读/写、I/O读/写请求、配置读/写请求、消息请求和完成数据包等。数据包被串行发送和接收,并且可按字节拆开后通过多个可用的链路通道传输
  • 采用分层结构:PCI Express采用类似于网络通信中的OSI分层模式,各层使用专门的协议架构。PCI Express包含三个协议层:事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)
  • 支持热拔插和热交换:PCI Express设备能够支持热拔插和热交换,支持的三种电压分别为+3.3V、3.3Vaux以及+12V
  • 使用差动信号:PCI Express工作模式是一种称为"电压差式传输"的方式。PCI Express设备的各个端口使用差动驱动器和接收器。两条传输介质之间的正电压差表示"逻辑1",负电压差表示"逻辑0"。没有电压差表示驱动器处于第三状态——高阻态,此时为链路的低功率状态
  • 与PCI兼容:PCI Express在软件层面上兼容目前的PCI技术和设备(如应用模型、存储结构、软件接口等)与传统PCI总线保持一致。PCI Express最大的意义久在于它的通用性,不仅可用让它用于南桥和其他设备的连接,也可以延伸到芯片组间的连接,甚至也可以用于连接图像芯片。这样整个I/O系统将重新统一起来,将更进一步简化计算机系统,增加计算机的可移植性和模块化

串行标准总线RS-232C

RS-232C是使用最早、应用最广泛的一种异步串行通信总线,RS-232C主要用来定义计算机系统的一些数据终端设备(DTE)如计算机和数据终端与数据通信设备(DCE)如调制解调器二者之间接口的电气特性。如CRT、键盘、扫描仪等与CPU的通信大都采用RS-232C总线

由于EIA-RS-232C是在TTL电路出现之前研制的,所以它的电平不是+5V和地
在TXD和RXD数据线上,使用负逻辑,逻辑1(MARK)为 -3 ~ -15V,逻辑0(SPACE)为+3 ~ +15V,最高可承受正负25V的信号电平
EIA-RS-232C用正负电压表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。为了能够同计算机接口或者终端的TTL终端连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的转换。实现这种转换可以使用分立元件,也可以使用集成电路芯片

RS-232C接口的不足之处

  • 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,故需使用电平转换电路才能和TTL电路连接
  • 传输速率较低,在异步传输时,波特率为20Kb/s
  • 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易造成共模干扰,所以抗噪声干扰性弱
  • 传输距离有限,最大传输距离标准值为50英尺,但实际也只能用在50m左右

USB总线

通用串行总线(USB)是一种新型的外设接口标准,其基本思想是采用通用连接器、自动配置、热拔插技术和相应的软件,实现资源共享和外设的简单快速连接。

USB的技术优势

  • 使用USB,用户无需扩展插卡,无需了解DIP开关设置、跳线、中断IRQ设置、DMA通道以及I/O地址等细节,无须开发底层设备驱动程序
  • 连接USB外设只需简单地插上插座即可,甚至不需要关闭电源,实现了真正的即插即用
  • 传输波特率(即传输速率)为1.5 ~ 12Mb/s(USB3.1速率达到10Gb/s),通过Hub最多可连接127个外设

USB数据流类型

  • 实时数据流:用于传输连续的固定速率的数据,它所需要的带宽和所传输数据的采样率相关
  • 中断数据流:用于传输少量随机输入信号,包括事件通知信号、输入字符或者坐标信号等,它们应该以不低于USB设备所期望的速率进行传输
  • 控制信号流:作用是当USB设备加入系统时,USB系统软件与设备之间建立起控制信号流来发送控制信号,注重数据不允许出错或者丢失
  • 块数据流:通常用于发送大量数据

USB传输方式

  • 等时传输方式:等时传输可以单向也可以双向,用来连接需要连续传输,且对数据的正确性要求不高而对时间要求即为敏感的外部设备。这种方式传输速率固定,连续不断地在主机与USB设备之间传输数据。传输中数据出错无须重传,而是继续传送新的数据。传送的最大数据包是1024B/ms。视频设备、数据声音设备和数码相机采用这种方式
  • 中断传输方式:中断的传输是单向的,它用于不固定的、少量的,但须及时准确地处理数据传送。当设备需要主机为其服务时,向主机发送此类信息以通知主机。这种方式主要用在键盘、鼠标以及游戏手柄等外部设备上
  • 控制传输方式:控制传输是双向的,它主要用于读取设备配置信息以及设备状态、设置设备地址、设备属性、发送控制命令等。当USB设备收到这些命令数据以后,将依据先进先出的原则按队列处理到达的数据。这个传输模式的数据量很小,且实时性要求不高。传输过程中如果出错,则需要重传
  • 成批传输方式:成批传输可以是单向的,也可以是双向的。该方式用来传输数据量大,且要求正确无误,但对时效性要求不高的数据。在包的传输过程中,出现错误,则重传。通常打印机、扫描仪等外设以这种方式同主机连接。这类设备的运行时间长,而运行所需要或产生的数据在短时间内即可传送完毕,因此,在传输中的优先级很低。在需要保持时效性的操作出现时,成批传输将被暂停

SCSI总线

SCSI是系统级接口,也是一种双向并行设备总线。可用于连接各种SCSI接口标准的外部设备,不仅可用于连接硬盘驱动器,也可用于连接磁带驱动器、光盘驱动器、打印机和扫描仪等多种外设。为实现SCSI接口标准,这些外设都必须配相应的控制器。SCSI常用在网络服务器和工作站上,也可以用在PC机上,它具有如下特点

  • SCSI是一个通用的接口。SCSI总线上的主机适配器和SCSI外设控制器的总数不超过8个,所接外设的种类包括磁盘、磁带、CD-ROM、可重写光盘、打印机、扫描仪以及其他通信设备等
  • SCSI是一个多任务接口,具有总线仲裁等功能。因此,在SCSI总线上的适配器和控制器可以同时工作,或者在同一SCSI控制器控制下的多台外设可以同时工作
  • SCSI的工作方式有两种,即同步数据传输和异步数据传输
  • SCSI总线共有18条信号线和数据线,用50芯插座。使用差分驱动电路接收电路时,总线长度可达25m;使用单端驱动电路和接收电路时,总线宽度可达6m
  • SCSI总线上的设备没有主从之分,双方平等

AGP加速图形端口总线

AGP是Intel公司为在PC机平台上提高视频带宽、解决3D图形数据的传输问题而提出的新型视频接口总线规范,解决了PCI总线系统设计对于超高速系统的瓶颈问题。AGP总线规范的特点如下

  • 数据读写流水线操作:流水线化是AGP提供的仅针对主存的增强协议。由于采用了流水线操作,从而减少了内存等待时间,提高了数据传输速度
  • 数据传输率大大提高:AGP使用了32位数据总线和双时钟技术的66MHz时钟。双时钟技术允许AGP在一个时钟周期内传输双倍的数据(一个时钟的上升沿和下降沿)
  • 直接内存执行:AGP允许3D纹理数据(数据量极大)不存入拥挤的帧缓冲区(即图形控制器内存),而将其放入系统内存,从而释放帧缓冲区的带宽供其他功能使用。这种允许显示卡直接操作内存的技术称为直接内存执行DIME
  • 地址信号与数据信号分离:采用多路信号分离技术,并通过使用边带寻址总线来提高内存访问速度
  • 并行操作:允许在存储器访问内存的同时,显示卡访问AGP内存,显示带宽也不与其他设备贡献,从而进一步提高了系统性能

IEEE 1394 串行接口总线

全称为IEEE 1394 高性能串行总线标准。它具有以下特点

  • 通用性强:IEEE 1394 采用树形或者菊花链结构,以级联方式在一个接口上最多可以连接63个不同种类的设备
  • 传输速率高:IEEE 1394b 规范定义800Mb/s、1.6Gb/s,甚至3.2Gb/s的高传输速率
  • 实时性好:IEEE的高传输率加上同步传送方式,使得IEEE 1394 对数据的传送具有很好的实时性
  • 总线提供电源:IEEE 1394 总线的6芯电缆中有两条线是电源线,可以向被连接的设备提供4 ~ 10V和1.5A的电源
  • 系统中各设备之间的关系是平等的:任何带有IEEE 1394 接口的设备可以直接连接而不需要通过PC机的控制
  • 连接方便:IEEE 1394 采用设备自动配置技术,允许热拔插和即插即用

RS-485总线

针对RS-232C的不足之处,出现了RS-485。RS-485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。在一些要求通信距离为几十米到上千米时,RS-485总线是一种应用最为广泛的总线。并且在多节点的工作系统中也有广泛的应用。它具有如下特点

  • RS-485的电气特性:逻辑"1"以两线之间的电压差为+(2 ~ 6)V表示;逻辑"0"以两线之间的电压差为-(2 ~ 6)V表示。接口信号电平比RS-232降低了,就不容易损坏接口电路芯片,且该电平与TTL电平兼容,可方便与TTL电路连接
  • RS-485的数据最高传输速率为10Mb/s
  • RS-485接口采用平衡驱动器和差分接收器的组合,抗噪声干扰性好
  • RS-485接口的最大传输距离标准值为4000英尺,实际上可达3000m,另外RS-232C接口在总线上只允许连接一个收发器,即单站能力。而RS-485接口在总线上允许连接多个128收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络

单总线结构

将CPU、主存、I/O设备(通过I/O接口)都挂在同一组总线上,由于所有的传输都要经过这组总线,而且要解决冲突问题,所以这样的结构容易形成计算机系统的瓶颈,会影响系统工作效率的提高,而且当设备过多,总线较长的时候,信息传播的时延也会影响到系统工作效率,在外部设备对应数据传输数量和传输速率要求较高的情况下,影响尤其严重
计算机组成原理——总线(Bus)_第6张图片

双总线结构

I/O总线:用于连接速度较低的I/O设备,通道为一个具有特殊功能的处理器,CPU将一部分功能下发给了通道,使其对I/O设备具有统一管理的能力,以完成外部设备和主存储器之间的数据传输
计算机组成原理——总线(Bus)_第7张图片

三总线结构1

主存总线:用于CPU与主存之间的传输
I/O总线:用于CPU与各类I/O设备之间传输信息
DMA(直接存储器访问)总线:用于高速I/O设备(磁盘、磁带等)与主存之间直接交换信息

在这种结构中,任一时刻三总线只能使用一种,因为主存总线与DMA总线不能同时对主存进行存取,而I/O总线只有在CPU执行I/O指令时才能用到
计算机组成原理——总线(Bus)_第8张图片

三总线结构2

Cache:由于CPU和主存发展速度相差较大,于是中间加入Cache起到一个缓冲的作用,CPU运行时需要的指令和数据主要从Cache当中获取,而不是向主存获取

局部总线:处理器与Cache之间具有一条局部总线,将CPU与Cache或者与更多的局部设备相连接。Cache的控制机构不仅使Cache与局部总线相连,还与系统总线相连,这样就可以实现Cache通过系统总线与主存传输信息,I/O设备要进行与主存之间信息的传输也不需要通过CPU

扩展总线:扩展总线将局域网、小型计算机接口(SCSI)、调制解调器(Modem)以及串行接口连接起来,通过这些接口,可以实现大量I/O设备的连接,扩展总线通过扩展总线接口与系统总线相连,实现两种总线的信息传递

计算机组成原理——总线(Bus)_第9张图片

四总线结构

高速总线:高速总线上挂接的是一些高速I/O设备,这些设备通过Cache控制机构中的高速总线桥或者高速缓冲器与系统总线和局部总线相连,使得这些高速设备和CPU联系更加密切,对于CPU而言,高速设备可以减少对CPU的依赖,对于高速设备而言,会比扩展总线上的设备更加贴近CPU,于是对于CPU和高速设备双方,各种的性能都会得到极大的提升

扩展总线:其他较低速的设备则挂接在扩展总线上,通过扩展总线接口和高速总线相连接
计算机组成原理——总线(Bus)_第10张图片

总线控制

由于总线上连接的众多部件,那么就会有"哪一个部件在何时发送信息?"、“如何给信息的发送定时?”、"如何避免多个部件同时发送信息?"等一系列问题,我们通过总线的判优(仲裁)控制和通信控制来解决这些问题

设备分类(按照是否具有对总线的控制权进行分类)

主设备(模块):对总线有控制权,总线上信息的发送是由主设备启动的,只有接收到总线使用权请求的应答信息的主设备才能开始传输数据

从设备(模块):不具有对总线的控制权,只能响应主设备发送的总线命令

一、判优控制

判优(仲裁):若多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按照一定的优先等价顺序决定哪个主设备可以使用总线

判优控制的分类(按照控制逻辑集中还是分散)

集中式

  • 链式查询

    • 用于总线控制的线
      BS线:传输表示总线的占用情况的总线忙信号BS
      BG线:传输从总线控制部件发送的总线同意信号BG
      BR线:传输从各个I/O接口发送的总线请求信号BR
    • 原理
      由于BG线是串行地从一个I/O接口送到下一个I/O接口,如果BG信号到达的接口已经发送了总线请求信号,BG信号就不会继续往下传递了,即该接口获得了总线控制权,并且会建立总线忙BS信号,表示该接口占用了总线
    • 特点
      离总线控制部件最近的设备具有最高的优先级;只需要几根线就可以实现按照一定优先次序的总线控制,并且很容易扩充设备;对电路故障敏感,优先级低的设备可能很难获得请求
      计算机组成原理——总线(Bus)_第11张图片
  • 计数器定时查询

    • 用于总线控制的线
      BS线:传输表示总线的占用情况的总线忙信号BS
      设备地址线(为一组线):传输由总线控制部件发送的地址信号,线数和设备数量有关
      BR线:传输从各个I/O接口发送的总线请求信号BR
    • 原理
      总线控制部件在接收到总线请求信号以后,在总线未被使用的情况下,会使用计数器开始计数,并通过设备地址线向各个设备发送一组地址信号,当某一个发送了总线请求信号的设备地址和计数值一致的时候,该设备就会获得总线使用权,此时总线控制部件会终止计数查询
    • 特点
      每一次计数可以从"0"开始,也可以从上一次计数的终止点开始,为一种循环方法,每一个设备使用总线的优先级相等;计数器的初始值可以由程序设置,优先次序可以被改变;电路故障不如链式查询方式敏感,但是增加了设备地址线,控制比较复杂

计算机组成原理——总线(Bus)_第12张图片

  • 独立请求方式
    • 用于总线控制的线
      BG线:传输从总线控制部件发送的总线同意信号BG
      BR线:传输从各个I/O接口发送的总线请求信号BR
    • 原理
      无论是链式查询还是计数器定时查询,都是按顺序进行设备查找,速度比较慢,而独立请求方式则不同,每一台设备均有一对总线请求线和总线同意线。总线控制部件中具有一个排队器,可以根据优先次序确定响应哪一台设备的请求
    • 特点
      响应快,优先次序控制灵活(可以通过程序改变),但是控制线数多,控制复杂
      计算机组成原理——总线(Bus)_第13张图片

分布式(不进行讲解)

二、通信控制

通过判优控制,我们解决了同一时间不同部件的信息传输问题,即根据各个部件的优先等级排列各个部件的先后顺序,于是就导致了我们在通信时间上采用的是分时方式,即以获得总线使用权的先后顺序分时占用总线
总线通信控制主要解决的是通信双方如何获知传输开始和传输结束,以及在传输过程中通信双方应该如何进行配合

总线(传输)周期

指主模块和从模块之间完成一次完整的、可靠的通信需要的时间

4个阶段

  • 申请分配
    由需要使用总线的主模块(或主设备)提出申请,经过总线仲裁机构决定,下一个传输周期的总线使用权授予某一个申请者
  • 寻址
    取得了总线使用权的主模块,通过地址总线发出本次要访问的从模块(或从设备)的地址以及有关命令,让参与本次传输的从模块被选中并开始启动
  • 传输
    主模块和从模块进行数据交换,数据由源模块发出,经过数据总线传送到目的模块
  • 结束
    主模块的有关信息均从系统总线上撤除,总线使用权被让出,以便其他模块可以继续使用

为了确保这四个阶段可以正确推进,必须施加总线操作控制。当然,对于只有一个主模块的单处理器系统,实际上不存在总线的请求、分配和撤销问题,总线始终归它所有,所以数据传输周期只需要寻址和传输两个阶段。但对于包含DMA控制器或者多个处理器的系统来说,必须有某种总线管理机构来受理申请和分配总线控制权

控制方式的分类(仅仅针对串行通信而言,并行通信没有这些分类)

同步通信

  • 原理
    同步通信中不仅仅是字符内部保持"同步",而且字符与字符之间也是同步的
    通信双方由统一时标控制数据传输,通常该时标由CPU的总线控制部件发送,但是也可以由各个部件中各种的时序发生器发送,但是必须由总线控制部件发送的时钟信号对它们进行同步,这种通信方式规定明确、统一,模块之间的配合简单一致,主、从模块时间配置属于强制性"同步",即必须要在限定的时间段内完成规定的事情
    简单来说,就是通信双方按照一个相同的计划表,按照上面的内容,不同时间段必须要完成相应的事项,否则会导致问题,通信的进程由第三方控制

  • 特点
    对所有的模块都使用同一限时,这样必然会导致对于速度各不相同的部件来说,必须要迁就最慢速度的部件,按照最慢速度的部件来设计公共时钟,影响了工作效率,于是同步通信一般用于总线长度较短,各个部件存取时间比较一致的场合下,因为同步方式对任何两个设备之间的通信都给予同样的时间安排,就总线长度来讲,必须按距离最长的两个设备的传输延迟来设计公共时钟,所以总线长,势必就会降低整体的传输频率。在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,会直接影响总线的数据传输率

  • 过程(以读命令为例)
    主模块在T1上升沿处发送地址信息,在T2上升沿处发送读命令,与地址信号相符的从模块按照命令进行一系列操作并且必须要在T3上升沿来临之前,将主模块所需的数据发送到数据总线上,主模块在T3时钟周期内,将数据线上的信息送入内部的寄存器中,主模块在T4的上升沿撤销读命令,从模块不再向数据总线上传送数据,撤销对数据总线的驱动,如果总线采用的是三态驱动电路,则从T4开始,数据总线为一个浮空状态
    计算机组成原理——总线(Bus)_第14张图片

  • 同步串行传送
    在同步传送中,数据要分成组(帧),一组含多个字符代码或者多个独立的码元。为使收发双方建立和保持同步,在每组的开始和结束的位置需要加上规定的码元序列,作为标志序列。在发送数据之前必须要先发送此标志序列,接收端通过检测该标志序列实现同步。标志序列的格式因传输规程不同而异。例如,在基本型传输规程中,利用国际 IA5 代码中的"SYN"控制系统,可实现收发双方的同步
    计算机组成原理——总线(Bus)_第15张图片

异步通信

  • 原理
    异步通信中的"异步"指的是字符与字符之间的"异步",在字符内部依旧是同步的,即每一个字符作为一个独立的信息单元,可以随机地出现在数据流中(即字节之间的时间间隔不固定),但是一个字符一旦发送开始,就必须连着发送出去(即各比特的持续时间是相同的)
    异步通信允许各个模块速度的不一致,没有公共的时钟标准,不要求所有部件严格按照统一时间进行运作,而是采用应答(握手)方式,即当主模块发送通信请求信号时,一直等待,直到接收到对方反馈回来的"响应"后,才会开始通信过程,这种通信方式也就要求主、从模块之间要增加两条应答线(握手交互信号线)
    简单来说,就是通信的双方无一个统一的时间规划,要准备做一件事情或者做完了某一件事情,就发送一个信息让对方知晓自身的进度即可,通信的进程由通信双方决定

  • 分类(按照应答方式的不同)

    • 不互锁

      • 过程
        主模块发送通信请求信号以后,不必等待接收到从模块的响应信号,而是自行等待一段时间,基本可以确定从模块已经接收到请求信号以后,便自行撤销请求信号
        从模块接收到请求信号以后,在条件允许时发送响应信号,并自行经过一段时间,基本可以确定主模块已经接收到响应信号以后,便自行撤销响应信号
        例子
        CPU向主存写信息的过程中,CPU先后给出地址信号、写命令、以及写入数据,都是才用这种方式
    • 半互锁

      • 过程
        主模块发送通信请求信号以后,需要等待接收到从模块的响应信号以后,才能撤销请求信号,具有互锁关系
        从模块接收到请求信号以后,发送响应信号,但是不必等待获知主模块的请求信号已经撤销,而是自行经过一段时间,基本可以确定主模块的请求信号已经撤销以后,便自行撤销响应信号(这里其实就会出现问题:如果主模块一直没接收到从模块的响应,从模块一段时间后又会停止发送响应信号,这就会导致主模块不断发送请求信号)
        例子
        在多机系统中,某一个CPU需访问共享存储器(供所有CPU访问的存储器)时,该CPU发送访存命令以后,必须接收到存储器表示未被占用的响应信号后才能真正开始访存操作
    • 全互锁

      • 过程
        主模块发送通信请求信号以后,需要等待接收到从模块的响应信号以后,才能撤销请求信号
        从模块接收到请求信号以后,必须等待获知主模块请求信号已撤销的消息以后,才能撤销响应信号,双方存在互锁关系
        例子
        网络通信中的双方就是采用全互锁方式
  • 异步串行传送
    不需要在数据传送中传送同步信号,为了确认被传送的字符,通信双方约定字符格式统一为:1个起始位(低电平)、5-8个数据位(比如ASCII码为7位)、1个奇偶校验位(用来检测是否出错)、1或1.5或2个终止位(高电平),并且起始位后面紧跟着的为要传送字符的最低位。起始位到终止位构成一帧,两帧之间的间隔可以是任意长度的
    计算机组成原理——总线(Bus)_第16张图片

    • 波特率异步串行传送的数据传送速率使用波特率来衡量,波特率是指单位时间内传送的二进制的位数,单位为bps(位/秒)表示,记为波特
    • 比特率:由于异步串行通信字符格式中包含若干附加位,比如,起始位、终止位、校验位,而且终止位又有1位、1.5位、2位之分,如果我们取出这些附加位,只看有效位,则可以使用比特率来衡量异步串行通信的数据传输速率,即单位时间内传送二进制有效数据的位数
  • 对图片内容的解析:
    图片中的凸起表示相应的信号存在,凹陷表示相应的信号消失

    不互锁:
    只有主模块请求信号发送(从模块接收到主模块的请求信号),才能触发从模块的响应信号发送,然后二者的信号都自行经过一段时间以后消失
    半互锁:
    只有主模块请求信号发送(从模块接收到主模块的请求信号),才能触发从模块的响应信号发送,然后只有从模块的响应信号出现(主模块接收到从模块的响应信号),才能触发主模块的请求信号消失,而从模块的响应信号在一段时间后自行消失
    全互锁:
    只有主模块请求信号发送(从模块接收到主模块的请求信号),才能触发从模块的响应信号发送,然后只有从模块的响应信号出现(主模块接收到从模块的响应信号),才能触发主模块的请求信号消失,并且只有主模块的请求信号消失(从模块接收到主模块的撤销信号),才能触发从模块的响应信号消失
    计算机组成原理——总线(Bus)_第17张图片

半同步通信

  • 原理
    半同步通信既保留的同步通信的特点,比如,所有的地址、命令、数据信号的发送时间都严格参照系统时钟信号的某一个上升沿开始,而接收方都采用系统时钟信号的某一个下降沿时刻进行判断识别;同时又具有异步通信的特点,比如允许不同速度的模块协调运作。半同步通信的要点就在于添加了一条"等待"响应信号线,采用插入时钟周期的方法来解决通信双方的速率不一致问题
    简单来说,就是虽然通信进程受到了第三方的控制,但是通信过程中通信双方,可以根据自身情况对通信进程进行调整,即通信进程受到第三方以及通信双方的控制

  • 特点
    对所有的模块都使用同一限时,这样必然会导致对于速度各不相同的部件来说,必须要迁就最慢速度的部件,按照最慢速度的部件来设计公共时钟,影响了工作效率,于是同步通信一般用于总线长度较短,各个部件存取时间比较一致的场合下,因为同步方式对任何两个设备之间的通信都给予同样的时间安排,就总线长度来讲,必须按距离最长的两个设备的传输延迟来设计公共时钟,所以总线长,势必就会降低整体的传输频率。在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,会直接影响总线的数据传输率

  • 过程(以读命令为例)
    主模块在T1的上升沿处发送地址信息,在T2的上升沿处发送读命令,与地址信号相符的从模块按照命令进行一系列操作,根据自身的情况进行分析,如果工作速度较慢,无法在T3上升沿来临之前,将主模块数据发送到数据总线上,则必须在T3上升沿来临之前,通知主模块,给出等待信号。如果主模块在T3上升沿处测得等待信号为低电平,就会知晓对方速率较慢,无法完成工作,会插入一个等待周期Tw(宽度和时钟周期相同),而不会立即从数据线上取数据,继续等待。如果主模块在下一个时钟周期的上升沿处再次对等待信号进行检测,依旧为低电平,则继续插入一个等待周期Tw,继续进行等待…直到主模块在后续的一个上升沿处检测到等待信号为高电平时,才会吧此刻的下一个时钟周期当作正常周期T3,从数据线上取得数据,在T4的上升沿结束传输
    计算机组成原理——总线(Bus)_第18张图片

分离式通信

  • 原理
    在以上三种通信方式中,自从主模块发送地址和读写命令开始,一直到数据传输结束,在这一整个传输周期中,系统总线的使用权完全由占有总线使用权的主模块和由它选中的从模块双方占据着,如果细看整个过程,会发现,对于系统总线来说,从模块按照主模块发送的命令进行内部读数据的过程中并没有实质性的信息传输,即这个时间段内,总线是空闲的,没有信息在总线上传输,资源被浪费了
    为了解决这个问题,分离式通信应运而生了,基本方法是将一个传输周期划分为两个小的子周期,第一个子周期中,由主模块进行相关命令、地址以及其他信息的发送,发送完毕,立即转让总线控制权,第二个子周期中从设备接收到命令信息,经过准备,准备完成以后,就会申请总线使用权。每一个子周期中都只有单方向的信息流,每一个模块都变成了主模块,都可以申请总线使用权,在第二个子周期中,从模块在准备数据的那一段时间内,由于第一个子周期中主模块进行了总线控制权的转让,于是这一段时间内,为其他主从模块的数据传输时间,总线上依旧有信息正在传输,实现了总线在多个主从模块之间进行信息交叉重叠并行式的传送,解决了上面提到的总线资源被浪费的问题
  • 特点
    充分挖掘了系统总线每一瞬间的潜力,使系统总线发挥其最大效能。整个过程实际为一个同步通信的过程
  • 过程
    在第一个子周期中,主模块在获得总线使用权以后将命令、地址以及其他有关信息,包括该主模块的编号发送到系统总线上,由目标从模块接收,主模块一旦发送完毕,立即让出总线使用权,以便其他模块使用
    在第二个子周期中,当从模块接收到主模块发送的有关命令信号之后,经过一系列内部操作,将主模块需要的数据准备好时,就会申请总线使用权,一旦获准,从模块就会将主模块的编号,从模块的地址,主模块需要的数据等一系列信息发送到总线上,主模块进行接收

总线特性

不同标准的总线都需要在这些方面进行规定

  • 机械特性:指总线在机械连接方式上的一些性能,比如插头和插座使用的标准、几何尺寸、引脚个数等
  • 电气特性:指总线的每一根传输线上信号的传递方向和有效电平的范围(即高电平的电压范围,低电平的电压范围),通常规定由CPU发送的为输出信号,由CPU接收的为输入信号,比如,地址总线属于单输出线、数据总线属于双向传输线,它们都定义为高电平为"1",低电平为"0",控制总线从整体看有输入,也有输出,有的定义为高电平有效,有的定义为低电平有效
  • 功能特性:指总线中每一根传输线的功能,每一根传输线上所传输的信号类型,比如,地址总线是用来指出地址码的,数据总线是用来传输数据的,控制总线是用来发送控制信号的
  • 时间特性:指总线中的任一根线的有效时间,每一条总线上的各种信号互相之间存在一种有效时序关系,一般时间特性可以使用信号时序图来描述

总线性能指标

  • 总线宽度:通常是指数据总线的根数,用比特位表示,比如,8位对应8根,16位对应16根
  • 总线带宽:单位时间内总线上传输数据的位数,可以理解为总线的数据传输速率,通常使用每秒传输信息的字节数来表示,单位可用MBps(兆字节每秒)
  • 时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,相应地,与时钟不同步(不同步也可以细分为多种类型)工作的总线为异步总线
  • 总线复用:一条总线上分时传输两种信号,比如,为了提高总线的利用效率,减少管脚数,会将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号,典型的就是8086CPU的地址线和数据线复用,20根地址线中有16条同时也作为数据线使用
  • 信号线数:指地址总线、数据总线、控制总线三种总线数之和
  • 总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等
  • 其他指标:包括负载能力(即驱动能力,可以挂载多少个I/O设备)、电压电压(5V或者3.3V)、总线宽度是否可以扩展等

你可能感兴趣的:(硬件工程)