总线是连接各个部件的信息传输线,是各个部件共享的传输介质。
总线实际上由多条传输线或通路组成,每条传输线可传输一位二进制代码,一串二进制代码在一段时间内逐一传输完成,就是串行传输,若干条传输线可以同时传输若干位二进制代码,这就是并行传输
注意:任意时刻,只允许一个部件拥有总线的所有权,向总线发送信息,但可以有多个部件同时接受信息
只有一条系统总线,所有的部件都连接到这条总线上。如果有多个部件同时要求占用总线时,会出现争夺现象,此时,总线成为了机器性能的瓶颈。
传统的冯诺依曼机是以运算器为核心的,发展出了面向CPU的双总线,其中一组总线连接CPU和主存,叫存储总线(M总线),另一组用来建立CPU和各I/O之间交换信息的通道,叫输入/输出总线(I/O总线)。缺点在于这种结构在I/O设备与主存交换信息时仍要经过CPU。
此结构是在单总线的基础上,又单独开辟一条CPU与主存间的通路,叫存储总线。这组总线速度高,只供主存与CPU之间通信,既提高了传输速率,又减轻了系统总线的负担,还保留了I/O与存储器交换信息时不经过CPU的特点。现代计算机大多数采用此类总线结构。
片内总线是芯片内部的总线
系统总线是计算机各部件之间的信息传输线。
按照系统传输信息的不同,又分为三类:
通信总线用于计算机系统之间或计算机系统与其他系统之间的通信。传输方式也有串行和并行两种。
机械特性:机械连接方式上的一些性能,如尺寸、形状、管脚数及排列顺序
即前面总线结构举例的单总线结构,所有部件都挂在共享总线上极易形成系统瓶颈,但优点是结构简单,便于扩充,多用于小型机或微型机。
为了解决单总线中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设备请求总线控制的过程:
对于链式查询方式,离总线控制部件最近的设备有着最高的优先级,这种方式的优缺点很明显:
相比于链式查询,计数器查询取消了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条线,总线控制复杂。
众多部件争夺总线控制权时,可以按照优先级解决,在通信传输时,按分时的方式解决。通信控制的目的就是解决通信双方的协调配合问题。
一个总线传输周期包括四个阶段:
异步通信方式还可以分为不互锁、半互锁和全互锁三种类型。(有点像tcp的三次握手)
分离式通信的特点:
关于系统总线的知识到这就结束了,其中图件来源于慕课上哈工大的计算机组成原理课程,刘宏伟老师讲的很好很细致,想要学习的朋友可以去看一看。
本片文章就分享到这了,有任何问题可以在下方评论。
更多关于内容可以移步我的博客,热爱生活,分享知识。