第六章 总线

第六章 总线介绍了什么是总线 包括总线的仲裁 总线的定时以及总线的标准

大家好,欢迎来到IT知识分享网。

1.总线

1.1 什么是总线

总线是一组能为多个部件分时共享的公共信息传输线路。总线的好处就是可以很方便地增加很多的外部设备,比如连接上一个鼠标,还能连接一个键盘,还能连接U盘。前面说的数据通路,是从数据的角度去分析的,现在从物理硬件的层面来分析。

1.2 设计总线需要注意什么

1.3 总线分类

1.3.1 按数据传输的维度

(1)串行总线:第六章 总线
串行总线只有一根数据线,也就是说,每一次只能发送一bit的数据,如图所示,从A到B传输数据1101,需要一比特一比特的传输四次。USB线就是这样的数据线(所以还是充电线)。优点是便宜,且抗干扰能力强。缺点是发送数据的时候,还需要按照计算机网络里面的知识,把数据拆开,然后到对面以后还需要组装成一个完整的数据再发给CPU,所以慢。

(2)并行总线:就是刚说的,一根总线里面有许多数据线,所以允许数据在里面被并行地传输。在这里插入图片描述
优点是数据少的时候快,设计起来简单。缺点就是贵,还占空间,多根信号线在一起并行传输数据的时候,由于电磁干扰(电生磁,磁生电),会有信号的干扰(所以布线的时候,有拐弯的地方弯曲的程度必须是一个钝角等,设计起来也复杂)。当数据量很大的时候,它的速度会比串行总线慢,因为数据量越大,传输的速度越快,干扰也会越强,所以会有一个饱和点,但是串行的话,你只要发送跟得上,一直传数据也可以,并行需要传一段,然后停一下,再发下一段。所以串行和并行哪个快需要根据实际情况来决定。

1.3.2 按照总线的功能分

(1)片内总线:它是CPU的内部总线,用于连接CPU内部的各个部件,包括ALU,各个寄存器都是靠它连接。
(2)系统总线:系统总线是计算机内包括CPU以及各功能部件(I/O接口、主存)之间相互连接的总线。 系统总线一般有三种,分别是地址总线,数据总线和控制总线。
[1]数据总线:传输各功能部件之间的数据信息,包括指令和操作数。 它采用并行传输技术,需要的线数往往和机器字长或者存储字长是一致的。它是双向传递的。
[2]地址总线:从CPU向主存传输主存或者I/O接口(辅存和外部设备)的地址。它也采用并行传输技术,需要的线数一方面要比主存的地址空间大小更大,而且还需要兼顾到可连接设备的数量(比如我们主存的地址空间是8位的,能连接三个设备,那么就至少需要10根线,前两位用来表示是哪个设备,最后8位表示地址)。它的信息是单向的,只能从CPU发出。有的人会疑问辅存怎么读,其实CPU一次发不完,它可以发两次呀,而且前面学过,一般不会直接从辅存读数据,所以满足主存的位数即可。
[3]控制总线:一根控制线传输一个控制信号(比如主存的R信号等),它也是并行传输的,有多少信号,开个log2就有多少线。而且它不仅可以从CPU传信号,也支持从外部反馈信号(比如中断信号)。
(3)通信总线:又叫外部总线,故名思意,是在计算机外部的,比如网线就是一个通信总线。它可以实现计算机之间的通信。 你把手机的USB线和电脑连接,这根USB线也就成了通信总线。




1.3.3 系统总线的几种经典结构

考纲只考这种总线,因为片内总线会在CPU的知识点部分考,通信总线会在计网考。所以现在来详细学习一下系统总线的四种结构:

(1)单总线结构:计算机内部仅用一组系统总线,也就是数据总线,地址总线,控制总线各一根。支持全部的元件的信息互联。它的成本低,结构简单,但是传输的效率低,且不能让多个部件之间同时传输数据。而且外设对数据的传输很慢,CPU很快,所以存在性能浪费,目前已被淘汰。

(2)双总线结构:双总线结构引入了通道的概念,一个通道可以理解成一个小型的处理器,它负责管理各个I/O设备和CPU的数据交互,它有自己的一套小系统,称为通道程序,这个程序被放在主存中,需要的时候程序会从主存加载到通道。在这种结构中,CPU和主存有单独的一根主存总线来进行交互,外部的各个I/O设备(键盘,显示屏等),通过I/O总线进行数据交互。通道则作为连接主存总线和I/O总线的桥梁。 如图所示:
在这里插入图片描述
主存总线的速度是远远快于I/O总线的,这是因为CPU和主存交互的速度比I/O设备快很多,所以主存总线要用更好的材料和设计。同时,主存总线还支持突发(猝发)传送技术:CPU送出一个地址,可以才主存收到多个地址连续的数据,比如需要读取一个程序序列,那么只需要发送一个地址,附带上要几条连续的数据,然后主存就会把以该地址为首的数据以及随后的几条数据发回来。

(3)三总线结构: 三总线结构比起双总线结构,还额外多了一条DMA总线DMA总线负责一些比较快速的I/O设备(比如辅存,U盘等)和主存之间的交互。DMA(Direct Memory Access)是直接内存访问的意思。在这种结构中,I/O总线和主存总线都直接和CPU相连接,不需要通道(由CPU直接控制即可)。这种结构显然比双总线结构更合理,速度也更快。缺点就是系统的工作效率低要比双总线结构低,因为同一时刻只能有一根总线在工作。
在这里插入图片描述
(4)四总线结构(不考):它一共有CPU总线,系统总线,高速总线,扩充总线。它们的速度各不相同,越靠近CPU则越快。CPU总线,系统总线和高速总线之间用一个桥接器作为数据的缓冲区,来缓解速度不匹配的问题。扩充总线通过接口的形式接入到高速总线上,也和桥接器连接,所以桥接器相当于一个十字路口的交通信号灯,来缓解各个总线的数据流的冲突。如图所示:
在这里插入图片描述
它弥补了上面三种结构的全部缺点,是现代我们计算机的正在的结构,但是设计起来过于复杂,所以考试不考。最后补充一句,桥接器以和上面的通道一样,看作是一个小处理器里面能处理数据,能暂存数据,著名的南桥芯片和北桥芯片其实就是桥接器(所以它是精细的芯片)。



1.4 总线的八个性能指标

2 总线仲裁(408不考,简单了解一下)

因为一根总线上的设备有许许多多,所以每一个时刻,哪些设备能够使用总线,需要额外的判断,这就是总线仲裁

2.1 主设备和从设备

因为在同一根总线上,一次只能有一个设备发出信号,同时允许多个设备接收信号,所以我们把发信号的这个设备称之为主设备,接收信号的设备称之为从设备

2.2 总线仲裁的分类

总线仲裁可以分为以下两类:

2.2.1 集中仲裁方式

2.2.2 分布仲裁方式

它不需要总线控制器来仲裁,每一个设备都有自己的仲裁器,还有一个仲裁号,当竞争的时候,大家一起把自己的仲裁号发到仲裁总线上,仲裁总线把最高的号返回,大家各自匹配一下对应的仲裁号,如果是自己的,就成为主设备,如果不是自己的,则撤销信号。这个了解即可。

3.总线的操作和定时

总线的操作和定时就是指一根总线如何在确定了主设备的情况下,帮助主设备发出信号。以及帮助从设备接收信号。

3.1 回顾总线周期的四个阶段

3.2 同步定时方式(同步通信)

总线控制器采用一个统一的时钟信号来协调主设备和从设备的信息传递。 这其实很好理解,用下图来解释:
在这里插入图片描述
假设CPU需要从主存读取数据,CPU是主设备,主存是从设备,且电信号上升沿有效:
(1)T1的时候CPU发出需要一个地址信号,这个地址指明的是从设备的地址,也就是主存的地址,于是主存被激活。
(2)T2的时候CPU发出了读命令(图中凹下去说明读命令是低电平有效),这个时候主存就迅速准备好CPU需要的数据。
(3)T3的时候主存把数据放入总线,CPU接收了对应的数据。
(4)T4的时候,CPU撤销了刚刚的主存地址信号以及读命令。





缺点就是,如果T2的时候,主存故障了一下,T3的时候CPU就收不到任何信号,然后CPU是无法发现这种错误的(它会误认为是全0),我们把这种必须一致的同步称之为强制性同步。但是这样设计也有许多优点,比如设计起来简单,并且传输的速度快(一个时钟就可以完成一个周期任务)。它适用于总线长度较短,且每一个部件的执行时间接近的结构(总线不长,部件的数据存取时间相似,就不容易出现上面的情况)。

3.3 异步定时

系统没有统一的时钟信号,需要主设备发出请求信号,请求信号包括了需要的从设备,以及从设备需要干什么,从设备获得请求信号以后,把主设备需要的信息作为回答信息发回去。但是请求和回答的过程是有可能发生互锁现象的,于是我们进一步对异步定时信号进行分类:
(1)不互锁:主设备的请求信号发出一段时间以后,不管是否收到了从设备的回答都主动撤销请求信号,从设备在接收到请求以后进行回答,经过一段时间以后也是自动撤销回答,这样只需要等待一段时间,就可以让出总线的控制权。它速度快,但是准确率差。
(2)半互锁:主设备发出的请求信息不会主动撤销,只有在主设备收到从设备的回答以后才会撤销。但是从设备不需要等主设备回复收到了回答,它会在发出回答的一段时间以后主动撤销。撤销以后,如果一段时间了,主设备还在请求,从设备会重新发送一次。其实还是比较可靠的,但是速度可能就没有第一种快,因为如果没有响应会一直占用。
(3)全互锁:主设备发出请求以后,除非收到了从设备的回答,否则一直请求,从设备发出回答以后,除非收到主设备的确认收到回答,否则一直发送这个回答信号。速度最慢,因为相比其半互锁,还加了一个主设备的回复信号,主设备的回复信号也可能半路丢失,然后从设备还要等待主设备的回复但是这个过程是不必要的。优点就是主设备没有收到回答以后,可以立即从后续的信息里面获得(因为从设备一直在发,不像上一种是等一会再发)。
这三种方式的快和慢是基于不出错的前提的,但是通常信息也很少出错,所以对于精度要求不高的用不互锁(比如视频),精度要求高的用全互锁。和计网的传输协议是一样的。
异步定时就克服了同步的问题,缺点就是更加复杂,且速度比同步慢




3.4 半同步通信

半同步是在同步的基础上进行改良的。从设备不仅可以发出回答信号,同时还可以发出等待信号WAIT,当从设备发出等待信号的时候,主设备就会进入等待状态,不会立马释放总线。等到从设备准备好数据,把数据作为回答信号发出的同时,会撤销等待信号,这个时候主设备才会在一段时间后撤销总线的使用权。这样也就克服了之前同步通信的缺点(你也可以叫它半异步通信,反正各占一半)。
在这里插入图片描述

3.4 分离式通信

这其实才是目前最主要用到的总线通信方式,因为计算机讲究的就是效率,于是分离式通信在前面三种方式的基础上进行了改进:因为从设备准备数据进行回答的时候是不需要占用总线的,所以这个时候释放总线的使用权。因此,一次主从设备的通信被分成了两个周期,主从设备在各自需要总线的时候才申请占用总线,如图:
在这里插入图片描述
这里的模块就是设备的意思。在这种模式里面,从设备也可以申请占用和释放总线,你可以理解为每一个设备都可以是主设备(其他模式里面只有当前主设备有权占用和释放总线)。分离式讲的就是效率,所以采用的是不互锁的方式,主设备发出请求信号一个时钟周期后就释放总线,之后从设备发出回答信号一个时钟周期后也释放总线,不在乎对方是否收到(没有收到,过一段时间之后会主设备会再次发送请求信号,主要的参考计网的知识就行,大家都是一样的,在计网的部分会更详细地学习通信协议)。

4.总线的标准(408不考,但是都学了这么多了,这点东西还是看看吧)

4.1 系统总线的标准

4.2 外部的设备总线标准

4.3 硬盘(辅存)总线标准

4.4 总结

一开始是并行快,后面能高频以后,都是串行协议。同时,现在用的内部总线,系统总线只要是计算机里面的都是PCI-E协议(但是随着技术的进步,这个协议也不是最早的了,一直在改进),外部的都是USB协议(也在改进,但是名字和原理没有变)。最后附上王道PPT上并行和串行总线的对比,这里还说了串行总线的一个缺点:串行总线的线必须一样长,否则数据到达时间就不一致了。同时,PCI-E其实是可以用多根线实现并行传输的,所以就有了PCI-E × \times ×n的写法,n是多少就说明有多少双绞线。因为双绞线抗干扰能力强,然后如果需要传输的距离短,我们还是回采用并行传输,但是和之前还是不一样的,因为传的都是数据包,不需要考虑先到后到,而是到了以后再排序,所以长短不一致也无所谓。
在这里插入图片描述
所以串行总线才能代替并行总线。最后附上王道PPT上的实例,虽然是老电脑,但是现在的也大差不差:
在这里插入图片描述
能看懂上图里面的各个线的简称,这一节就学OK了,看不懂也没有关系,反正408不考。那么本章到此就结束了。可以看见,这里ISA从系统总线变成设备总线了,所以总线标准不是绝对的,系统总线也可用于设备总线。



免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122476.html

(0)
上一篇 2025-10-16 13:33
下一篇 2025-10-16 14:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信