计算机组成原理——总线

一.为什么需要总线

因为现代计算机中需要互相连接的部件非常多,如果使各部件单独相连,难度太大,成本太高,不易实现,所以需要引入一条公共通路来实现各部件的连接功能,这条通路类似于生活中的公交车所起到的作用,所以总线的英文为BUS。

二.什么是总线

总线的定义:总线是一组能为多个部件分时共享的公共信息传送线路。分时和共享是总线的两个特点。

三.总线的结构

多总线结构的特点:多总线结构是通过桥、CPU 总线、系统总线和高速总线彼此相连, 各大部件的信息传送不是只通过系统总线;体现了高速、中速、低速设备连接 到不同的总线上同时进行工作,以提高总线的效率和吞吐量,而且处理器结构 的变化不影响高速总线。靠近cpu的总系速度较快,靠近IO接口的总线速度较慢。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四.总线的分类

1.片内总线
片内总线是芯片内部的总线,它是cpu芯片内部的寄存器与寄存器之间,寄存器与ALU之间的公共连线。
2.系统总线:系统总线是计算机内各功能部件之间互相连接的总线(如cpu,主存和IO设备)。其分类如下:

  • 数据总线:用来传输各功能部件之间的数据信息,是双向传输总线,其位数与机器字长,存储字长有关。
  • 地址总线:用来传输数据在主存单元或I/O端口的地址,是单向传输总线,地址总线的位数与主存地址空间大小有关。
  • 控制总线:用来传输控制信息,包括cpu送出的控制命令和主存(或外设)返回cpu的反馈信号。

3.I/O总线
I/O总线主要用于连接低速的I/O设备,通过I/O接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能。

4.通信总线
通信总线是计算机系统之间或计算机系统与其它系统之间传送信息的总线,通信总线也称为外部总线。

其他分类:同步总线,异步总线,并行总线,串行总线。

串行总线和并行总线的比较: 串行总线一次只能传送一位数据,并行总线一次可以传送多位数据。
但是并不意味着并行总线的传输速度一定高于串行总线,原因如下:
在实际时钟频率较低的情况下,并行总线因为可以同时传送若干比特,所以速率确实比串行总线快,但是随着时钟频率的提高,当在高时钟频率下传输时,并行总线相邻总线之间的干扰会很严重,甚至使传输的数据无法恢复。并行总线线路多且复杂,串行总线线路较少,干扰易控制。

五.总线信息传输方式

1.总线事务

总线上进行一次传输的过程分为五个阶段:传输请求,总线仲裁,部件/设备寻址,数据传输和总线释放。

  • 1)请求阶段:主设备发出总线传输请求,并获得总线控制权
  • 2)仲裁阶段:总线总裁机构决定下一个传输周期的总线使用权授予某个申请者
  • 3)寻址阶段:主设备通过总线给出要访问的从设备的地址及有关命令,启动从模块。
  • 4)传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
  • 5)释放阶段:主模块上的有关信息均从系统总线上撤出,让出总线使用权。

2.总线数据传输方式

  • 1)并行传送方式:数据的每一位利用多条数据线同时传输构成并行传送。传输速率高,成本大,传输距离受限
  • 2)串行传送方式:数据的各位利用一条数据线进行传输,传输速率低,传送距离远,数据线少,成本低。可同步/异步
  • 3)分时传送方式: 是指在不同时段利用总线上同一个信号线传送不同信息。又称分时复用
  • 4)消息传送方式: 消息传送以猝发方式传送数据包。猝发方式是在同一个总线周期中利用一个地址段和多个数据段连续传输数据的一种手段,可连续传输数据。消息传送使一次传送实现更多更快的信息传递。PCI,USB使用消息传递

3.总线通信方式:

  • 1)同步通信方式
    收发方公用同一时钟,按照该共同时钟频率进行传输。并且使用固定的传输协议,该协议用于与时钟相关联的通信。
    同步通信总线的缺点:1.总线上每个设备必须使用相同的时钟频率,且该频率由最慢的设备决定。 2.由于时钟偏移问题,使得高速同步通信总线的长度不能太长。
  • 2)异步通信方式
    异步通信总线不适用公共时钟定时,总线中没有时钟线,克服了同步通信总线的两个缺点。使用握手协议来协调发送设备和接收设备之间的数据传递。典型的握手信号有:
    数据就绪(DATA RDY)/请求(REQ)和应答(ACK),两握手信号有三种不同的协议:非互锁,半互锁,全互锁。

异步通信的三种方式:

  • 1)非互锁方式:发送设备先将数据放在数据总线上,延迟一段时间后发出DATA RDY信号,通知接收方数据已在数据总线上,接收设备在DATA RDY有效时接收数据,并发出ACK进行回应。发送设备收到ACK后撤销数据。特点是DATA RDY和ACK采用定时自动撤销方法,实现简单,利于提高传输速度,但是传输不可靠,当握手时间过短时,速度慢的设备容易将其错过,而当握手信号时间过长时,可能会影响到下一次传输
  • 2)半互锁方式:将DATA RDY保持到发送设备接收到ACK为止,解决了DATA RDY的有效时宽问题,但是ACK的固定宽度仍采用定时确定。
  • 3)全互锁方式:发送设备在收到ACK后复位DATA RDY接收设备在DATA RDY复位后才复位ACK。被互锁式总线广泛使用,适合各种工作速度的设备,总线周期可变,但是比较复杂,不利于提高传输速度。
    在这里插入图片描述

六.总线仲裁

定义:共享总线上允许连接多个总线主设备和从设备,有可能出现多个主设备同时要请求使用总线的情况。为了防止总线竞争,共享总线上某时刻只允许一个主设备使用总线,并实施对总线的控制。哪个主设备可以使用总线的选择机制称为总线仲裁。仲裁依据是主设备使用总线的优先级。仲裁机制可分为集中式仲裁和分布式仲裁。

1.集中式仲裁

集中式仲裁使用一个中央总线仲裁器(总线控制器),由它来决定主设备使用总线的优先级。

  • 1)菊花链仲裁方式(链式查询)
    该方式通过三条控制线使用三种控制信号:总线请求BR,总线授权BG,总线忙BB
    当BR线有效时,表示有一个或多个主设备请求使用总线。而总线仲裁器仅在BB无效时,即总线不忙时响应BR,使BG有效。接收到BG有效的设备将自身连接到总线上并在其使用总线期间将BB置为有效。
    特点:
    连接次序决定了优先级,当两个以上的设备同时请求总线时,更靠近总线控制器的设备会争夺到总线的使用和控制权。从链头到链尾,设备的优先级从高到低。
    缺点:
    (1)在优先级高的设备有足够高的请求频率时,优先级过低的设备的请求有可能永远也得不到响应,从而对系统造成影响。(2)由于BG链路是串联的,一旦BG链路一处出现问题,会严重影响整个系统的正常仲裁。
    在这里插入图片描述

  • 2)轮询仲裁方式(计数器查询)
    在轮询总裁方式中,先为每一个参与仲裁的设备分配唯一的设备地址,并且设备地址是连续的。用一组与所有设备直连的轮询计数线替代BG线,当仲裁器响应BR时,轮询计数线上产生一组顺序的数值(与设备地址一致),每一个设备用自己的设备地址与计数线上的数值进行比较,地址与数值相同且向总线提出了使用请求的设备获得总线的使用权。将BB置为有效并将自身连接到总线上。
    在该种仲裁方式下,总线设备的优先级由其设备地址在轮询顺序中的位置确定,轮询计数的方法用两种:1.采用循环计数,即下一次设备地址的产生是从上次结束的下一个位置开始的,各设备具有相同优先级。2.总线忙信号复位计数器,即每次计数都从头开始,优先级完全由轮询顺序决定。
    特点:
    1.优先级的设计非常灵活,设备优先级可在软件控制下进行改变。
    2.轮询中一设备出现故障不会影响其他设备。
    3.具有较多的控制线,用k条计数线取代一条BG线,其中:2^k应大于等于设备数

在这里插入图片描述

  • 3)独立请求仲裁方式
    每个设备拥有独立的BR线和BG线,总线仲裁器可以直接识别所有的请求设备并作出快速响应。总线仲裁器决定设备的优先级,当多个设备同时提出请求时,总线仲裁器内部的优先级比较电路对同时提出请求的设备优先级进行比较,优先级高的设备先得到BG信号而获得总线的使用权。
    特点:仲裁决定响应快速,但是为了控制n个设备需要2n条BR线和BG线,使用的控制线相比其他方式更多。

在这里插入图片描述

2.分布式仲裁

分布式仲裁不需要中央仲裁器,仲裁逻辑分布在各个设备中。

  • 1)自举分布仲裁方式:所有设备的忙信号采用线或的方式连接在一起,所有设备可以监听总线忙BB和比它优先级高的设备发出的总线请求信号BRi,各设备在总线不忙且没有高优先级设备请求的情况下获得总线的使用权。
    与集中式仲裁相比,自举分布式仲裁在信号线数量上没有减少,并且连接到共享总线上的设备数量还受到总线请求线数量的限制,但自举分布式仲裁防止了总线潜在的浪费。

  • 2)链式分布式仲裁:除了没有中央仲裁器外,与菊花链仲裁方式十分相似。对总线上连接的设备数量没有限制,且总裁所需要的信号线数量极少,是一种廉价的,高速的方式,又因为没有中央仲裁器,所以不会导致仲裁失败。

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐