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

时间:2024-03-20 07:54:59

总线的基本概念

计算机各部件连接方式

  • 分散连接:各部件之间通过单独的连线进行连接
  • 总线连接:各部件连接到一条公共的信息传输线上,通过总线连接,大大简化了计算机内部的连接线的数量

总线的定义

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

总线上的信息传输

总线实际上由多条传输线或通路组成,每条传输线可传输一位二进制代码,一串二进制代码在一段时间内逐一传输完成,就是串行传输,若干条传输线可以同时传输若干位二进制代码,这就是并行传输

  • 串行:二进制数据一位一位的进行传输
  • 并行: 一次传输多位二进制数据

注意:任意时刻,只允许一个部件拥有总线的所有权,向总线发送信息,但可以有多个部件同时接受信息

总线结构举例

单总线结构

只有一条系统总线,所有的部件都连接到这条总线上。如果有多个部件同时要求占用总线时,会出现争夺现象,此时,总线成为了机器性能的瓶颈。

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

面向CPU的双总线

传统的冯诺依曼机是以运算器为核心的,发展出了面向CPU的双总线,其中一组总线连接CPU和主存,叫存储总线(M总线),另一组用来建立CPU和各I/O之间交换信息的通道,叫输入/输出总线(I/O总线)。缺点在于这种结构在I/O设备与主存交换信息时仍要经过CPU。

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

面向存储器的双总线

此结构是在单总线的基础上,又单独开辟一条CPU与主存间的通路,叫存储总线。这组总线速度高,只供主存与CPU之间通信,既提高了传输速率,又减轻了系统总线的负担,还保留了I/O与存储器交换信息时不经过CPU的特点。现代计算机大多数采用此类总线结构。

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

总线的分类

片内总线

片内总线是芯片内部的总线

系统总线

系统总线是计算机各部件之间的信息传输线。

按照系统传输信息的不同,又分为三类:

  • 数据总线:传输各部件的数据信息,双向传输总线,位数与机器字长、存储字长有关
  • 地址总线:指出数据总线上的数据在主存单元的地址,单向传输总线,与存储地址、I/O地址有关
  • 控制总线:发出各种控制信号的传输线,对于单个控制线,是单向的,例如命令存储器读写是CPU发出的,对于这个命令不可能反向传输,对于控制总线总体来说,又是双向的,例如I/O设备也可以向CPU发出请求信号。

通信总线

通信总线用于计算机系统之间或计算机系统与其他系统之间的通信。传输方式也有串行和并行两种。

总线的特性及性能指标

总线特性

机械特性:机械连接方式上的一些性能,如尺寸、形状、管脚数及排列顺序

  • 电气特性:每一根传输线上信号的传递方向和有效的电平范围
  • 功能特性:每根传输线的功能,传输地址?数据?还是控制信号?
  • 时间特性:任一根线在什么时间内有效。总线上的信号的时序关系。

性能指标

  • 总线宽度:数据线的根数,用位表示
  • 标准传输率:总线上每秒能传输的最大字节量,用MB/s表示。
  • 时钟同步/异步:总线上的数据与系统时钟是否同步工作
  • 总线复用:地址线与数据线用同一组线,某一时刻传输地址信号,另一时刻传输数据信号或命令信号
  • 信号线数:地址线、数据线和信号线的总和
  • 总线控制方式:并发工作、自动配置、仲裁、逻辑、计数等

总线结构

单总线结构

即前面总线结构举例的单总线结构,所有部件都挂在共享总线上极易形成系统瓶颈,但优点是结构简单,便于扩充,多用于小型机或微型机。

多总线结构

为了解决单总线中CPU、主存和I/O设备之间传输速率不匹配的问题,发展出多总线结构。

双总线

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

其中连接内存总线和I/O总线的通道有自己的程序,可以执行简单的指令,通道程序是操作系统编写的。

三总线

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

与双总线相比,三总线新增了一条DMA总线(Direct Memory Access,直接存储器访问),用于高速外设与主存之间直接交换信息。

注意:任意时刻仍然只能使用一种总线

我们知道,CPU的速度要比主存的速度快得多,但CPU要运行程序必须要从主存中获取数据,这就导致CPU被主存拖累而不能全力运行,为了解决这个问题,我们在CPU与主存之间加入高速缓存(Cache),CPU需要数据时会先去Cache取,Cache没有再去主存。这就引申出了三总线的另一种形式。

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

四总线

为了进一步提高I/O的性能,使其更快的响应命令,出现了四总线结构。

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

将高速设备与低速设备进行了区分,新增了一条与计算机系统紧密相接的高速总线。

总线控制

总线判优控制

基本概念

  • 主设备(模块):对总线有控制权
  • 从设备(模块):响应从主设备发来的总线命令

多个主设备同时请求使用总线,就由总线控制器的判优、逻辑仲裁按一定优先等级顺序,确定哪个主设备能使用主线。常见的总线判优控制分为集中式和分布式。

集中式将控制逻辑集中在一处(如CPU中),分布式将控制逻辑分散在与总线莲姐姐的各个部件或设备上。

集中控制又有三种仲裁方式:链式查询、计数器定时查询和独立请求方式。

链式查询

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

BR线:所有设备通过BR线发送总线请求,获得总线控制权

BS线:当某一设备获得总线控制权时,BS线就会通知其余设备和控制部件总线已被占用,设备请求时会检查BS线

BG线:串行的从一个I/O接口送到下一个I/O接口,当BG到达的接口有总线请求时,BG信号就不往下传,意味着该接口获得总线控制权,并建立总线忙BS信号

下图展示了I/O设备请求总线控制的过程:

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

  1. I/O设备通过BR线进行总线请求
  2. BG信号按照链式的方式对各个设备进行查找,找到是哪个设备发出的请求信号(BS线无总线已占用信号时)
  3. 将总线控制权给最先查找到的设备,并生成总线忙BS信号

对于链式查询方式,离总线控制部件最近的设备有着最高的优先级,这种方式的优缺点很明显:

  • 优点:只需要很少几根线就能实现总线控制,且很容易扩充设备
  • 缺点:对电路故障很敏感,如果BG线在I/O接口2处故障断开,那么接口2以后的设备再也无法收到BG信号,也就无法得到总线控制权

计数器定时查询

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

相比于链式查询,计数器查询取消了BG线,增加了设备地址线,总线控制部件内部还有一个计数器,计数器与设备地址线相结合,实现了BG线的作用。

下图展示了计数器定时查询的过程:

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

整个查询过程也分为3步,其中第1、3步与链式查询过程的1、3步相似,区别在于第2步。

当I/O接口的请求信号通过BR线传输到控制部件时,计数器变启动(假设从0开始),通过设备地址线向外传输计数器信号,计数器第一个数是0,就对I/O接口0进行查询,看是否是接口0提出的请求信号,如果不是,就将计数器+1,再查询接口1,直到找到发出请求的接口。

与链式查询方式相比,计数器定时查询方式最突出的优点在于可以改变计数器的初始值,从而改变I/O设备的优先级,这是链式查询方式无法达到的,更特别的,我们可以将计数器设置为从上一次查询到的位置开始计数,就实现了以循环优先级对设备进行查询。

既然有优点,那同样也有缺点。功能的进步导致了线路的复杂,表面上看只是多了一个计时器,但实际上设备地址线并不是一根线,而是一组线,因为要对设备地址进行编码,n个设备就需要log n条线(以2为底,向上取整),因此,比链式查询要多出log n - 1 条线。

独立请求方式

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

每个设备都有一堆总线请求线和总线同意线。当设备要求使用总线时,便发出请求信号,控制部件中有一排队器,可根据优先次序确定响应哪个设备的请求。

独立请求方式的优点是响应速度快,优先次序控制灵活(通过程序改变),而且对电路故障不敏感,一个设备的BG或BR线故障,不会影响其他设备的控制权获取。

缺点也很明显,控制线数量多,需要2n条线,总线控制复杂。

总线通信控制

目的

众多部件争夺总线控制权时,可以按照优先级解决,在通信传输时,按分时的方式解决。通信控制的目的就是解决通信双方的协调配合问题。

总线传输周期

一个总线传输周期包括四个阶段:

  • 申请分配阶段:主模块申请,总线仲裁决定
  • 寻址阶段:主模块给出从模块的地址和命令,启动从模块
  • 传数阶段:主模块和从模块交换数据
  • 结束阶段:主模块的相关信息从总线上擦除,让出总线使用权

总线通信的四种方式

  • 同步通信通信双方由统一时标控制数据传送,时标通常由CPU的总线控制部件发出,送到总线上的所有部件。
  • 异步通信采用应答的方式,没有公共时钟标准,主模块发送信号后,要等待从模块的响应反馈回来,这意味着主从模块之间要增加两条应答线
  • 半同步通信采用同步、异步相结合的方式,同步体现自发送方用系统时钟前沿发信号,接收方用系统时钟后延判断识别;异步体现在对于速度不同的模块,增设一条“等待”响应信号线
  • 前面的三种方式,整个传输周期主模块一直占据主线的控制权,但分析传输周期的四个阶段,寻址阶段与传数阶段之间会留有空闲时间,这段时间是从模块分析命令、准备数据的时间,这会造成总线的资源浪费。分离式通信解决了这个问题,充分挖掘系统总线的每个瞬间的潜力,基本思想是将一个传输周期分为两个子周期,第一个子周期是主模块将相关信息发给从模块,从模块接收到数据后就放弃总线使用权,以便其他模块使用;第二个子周期是等到从模块准备好数据后,重新发送总线请求,将数据传给主模块。

异步通信方式还可以分为不互锁、半互锁和全互锁三种类型。(有点像tcp的三次握手)

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

分离式通信的特点:

  • 各模块有权申请占用总线
  • 采用同步方式通信,不等对方回答
  • 各模块准备数据时,不占用总线
  • 总线被占用时,无空闲,充分提高了总线的有效占用

关于系统总线的知识到这就结束了,其中图件来源于慕课上哈工大的计算机组成原理课程,刘宏伟老师讲的很好很细致,想要学习的朋友可以去看一看。

本片文章就分享到这了,有任何问题可以在下方评论。
更多关于内容可以移步我的博客,热爱生活,分享知识。