系统总线
为什么需要
在这个系列文章的第一讲,漫谈计算机组成原理(一)之程序运行的过程 中说过,现代计算机是从冯若伊曼计算机发展起来的。其组成部分有存储器、运算器、控制器、输入设备、输出设备,在现代计算机中,人们将运算器与控制器封装起来成为CPU(中央处理单元)。计算机的各种部件想要进行数据交互,就必须让这些部件形成一定的连接关系,以便数据交互的进行。
连接的方式有两种,一种是各个部件之间使用不同的线相互连接,很明显,这种交互方式有很大的弊端,如连线复杂造成的控制复杂,还有就是当部件较多的情况下,简直就是个灾难。所以就催生了另外一种连接方式——总线连接,也就是我们这一讲要讲述的东西。
总线连接是指,将所有就的部件连接在一组公共的信息传输线上,这样做就避免了上面那种传输方式的弊端。现代计算机几乎所有的都是采用总线连接。
概念
计算机系统的五大部件的互连方式有两种, 一种是各部件之间用单独的连线, 称之为”分散链接” 另外一种是将各部件连接到一组公共信息的传输线上, 称之为”总线连接”。
因此, 两个或以上的部件同时向总线传输信息, 就会导致信号冲突而传输无效. 因此在某一时刻, 只允许一个部件向总线发哦是那个信息, 而允许多个部件同时接受到相同的信息。
总线的传输方式
并行方式
=======
=======
=======
=======
并行传输方式很简单,就是在同一时间内,传输多位数据,而计算机的位数,就是按照系统总线传输的数据位数划分的,常见的有32位、64位等。
注意,并行方式并不合适远距离数据传输,因为并行传输方式,一旦距离过长,那么各条总线的相互干扰则十分强大,数据丢失、错误也就成了必然。
所以,并行传输用在计算机内部,就非常可靠了。既保证了传输速度,又保证了数据传输的可靠性。
串行方式
=================================
串行方式很明显不适用于计算机内部的数据传输,一来一条总线传输速度实在是慢,另外会导致计算机的总线分布过于复杂。
不过,与上面的方式正好相反的是,这种方式可以避免远距离传输的数据干扰。
总线的分类
分类方式有很多种, 以下就按照连接部件的不同, 将总线分为三类.
片内总线, 系统总线, 通信总线。
片内总线
片内总线指的是芯片内部的总线, 估计就是”分散链接”把.
系统总线
以下按照传输信息的不同, 把系统总线分三类
数据总线, 地址总线, 控制总线
数据总线: 用来传输 各个功能部件之间的数据信息, 进行双向传递, 其位数与机器字长, 存储字长有关.
地址总线: 主要用来指出数据总线上的 源数据和目的数据 在存储单元中的地址. 地址总线的位数与存储单元的个数有关, 如地址线为20根, 则对应的存储单元个数为2^20.
控制总线: 由于数据总线和地址总线总是挂在总线上共享的, 所以如何使各个部件能够在不同的时刻占有总线使用权. 就是需要通信总线来完成. 它进行单向传递, 另外, 他也能起到监视各个部件状态的功能. 例如, 查询该设备”busy” “free” 是否出错等等功能.
通信总线
用于计算机系统之间 “或” 计算机系统与其他系统之间的信息交互.
总线特性
-
机械特性: 说明机械连接方式的性能, 例如插口的形状
-
电气特性: 说明传输方向和有效的电平范围
-
功能特性: 说明该总线有什么功能
-
时间特性: 指出某一根总线在某一段时间内有效或者失效.
总线的性能指标
1,总线宽度:数据线的根数
2,标准传输率:每秒传输的最大字节数
3,时钟同步/异步:同步、不同步
4,总线复用:地址线与数据线复用
5,信号线数:地址线、数据线和控制线的总和
6,总线控制方式:突发、自动、仲裁、逻辑、计数
7,其他指标:负载能力
总线标准
概念
总线标准就是,系统和各模块之间,模块和模块之间的一个相互连接的标准界面。
这个界面对两端的模块都是透明的,即界面的任一方只需要根据总线的标准完成各自的接口功能需求,而无需知道对方接口与总线的连接需求,所以总线标准设计的接口可以视为通用接口
几种常见的总线标准
ISA总线:(industrial standard architecture)
工业标准构架总线,采用独立于CPU的时钟频率,所以能采用比总线频率更高的时钟,有利于CPU性能提高,没有支持总线仲裁的硬件逻辑,因而不支持多台主设备系统,且所有数据传输必须经过CPU或者DMA接口来管理,因此CPU花费大量时间来控制与外部设备交换数据。工作频率为8MHz,数据线16位,地址线24位
PCI
由于带宽的限制,ISA标准不适合在GUI和多媒体中应用。(peripheral component interconnect)外围部件互连。
高性能:不依附于某个具体处理器的局部总线,为系统提供一个高速的数据传输通道,采用33MHz或者66Mhz的总线时钟,数据线为32位,可以扩展到64位。支持突发工作,这种方式是指被传输的数据在主存中如果连续存放,访问这些数据的时候,只需要给出第一个数据地址,占用一个时钟周期,其后每个数据的传送各占一个时钟周期,不必每次给各个数据地址,从而提高传输速率
良好的兼容性:总线部件和插件接口相对于处理器是独立的,支持所有现在和将来不同结构的处理器,有相对长的生命周期
支持即插即用(plug and play):任何扩展卡只要插入系统就可以工作
支持多设备能力,提供数据和地址奇偶校验功能,支持两种电压,扩充性好,采用多路复用。。。
RS-232C
由美国电子工业协会(EIA)推荐的一种串行通信总线标准,用于串行二进制交换的数据终端设备和数据通讯设备。
USB总线:(universal serial bus)
通用串行总线,基于通用连接技术,实现外设的简单快速连接,达到方便用户,降低成本,扩展PC外设的目的。具有真正的即插即用的特征,相信大家在日常生活中有这样的感受;有很强的连接能力,一般的电脑可以连接127个外设,通过hub你可以在你的电脑上连接更多的外设;USB1.0,采用无屏蔽的双绞线,传输速度达1.5Mbps,若采用屏蔽双绞线,可以达到12Mbps,USB2.0的传输速度可达480Mbps;标准统一,usb标准的引入减轻了目前PC对所有标准接口的需求,我们日常用的鼠标,键盘,打印机都可以用usb标注接入系统,从而减少对PC插槽的需求;连接电缆轻巧,电源体积小。usb采用4芯电缆,两条用于信号连接,两条用于电源和接地,可以给外设提供5V的直流电流;生命力强,开放性的不具有专利版权的工业标准
以上几种总线标准的详细内容大家可以在网上做进一步了解
总线结构
单总线结构
将所有设备都挂在同一条总线上。
结构简单,便于扩充. 但是总线的控制信号从第一个开始传, 传到后面第N个时候, 有传播的延迟时间. 还有, CPU, 主存, I/O设备之间的速率不匹配问题。
双总线结构特点
将速度较低的I/O设备从总线上分离出来, CPU将一部分功能下放给通道,使其对I/O涉笔进行统一管理.
三总线结构
将速率不同的I/O设备进行分类, DMA总线用于告诉I/O设备与主存之间进行直接交换信息.当然拉, 还有很多其他三总线结构.就不一一列举了
总线控制
由于总线上有很多设备, 那么这么多设备同时尽享发送或者接收, 会很混乱,所以需要总线判优控制和通信控制来把帮忙。
优先级判断
将总线上的设备按其有无控制功能分为主设备和从设备.其中主设备对总线有控制权, 并且总线上的信息都是从主设备上发出的.
所以很显然, 从设备并无控制权. 总线判优控制可以分为:集中式和分布式两种. 其中集中式又分为链式查询, 计数器定时查询 , 独立请求三种
链式查询
BS总线忙, BR总线请求, BG总线同意
BG总线同意信号一直从第一个往下传, 如果碰到有总线请求的接口, 就不再往下传, 并且建立BS总线忙信号.
计数器定时查询
BS总线忙, BR总线请求
总线控制接收到BR请求, 当BS没有使用时, 计数器开始计数, 通过设备地址线向各设备发出信号, 当计数值与设备地址一致,该设备就获得使用权.
独立请求方式
BR总线请求, BG总线同意
每个设备都有BR和BS, 当设备提出BR请求时, 总线控制内部有一排队电路, 通过优先次序安排先后.
总线通信控制
完成一次总线操作通常需要4个阶段
1.申请分配阶段 2.寻址阶段 3.传数阶段 4.结束阶段
总线通信控制主要解决双方如何获得传输开始和传输结束, 以及通信双方如何协调, 有四种; 同步通信, 异步通信, 半同步通信, 分离式通信
同步通信
通信双方由统一时标控制数据的传输.通常由CPU的总线控制发出
特点: 规定统一, 模块间容易配合, 不过主从模块的时间配合属于强制性同步, 必须在规定的时间内完成规定的要求, 对于速度不一致的部件而言, 必须按照速度最慢的部件设置公共时钟.所以挺慢的.
异步通信
异步通信允许各个模块之间速度不一致, 不采用公共时钟, 采用应答方式(对方有回复的响应) 就是三次握手那样, 主模块发出请求信号, 等到从模块发出反馈信息并且主模块收到才开始通信. 所以分为三种异步通信方式, 不互锁, 半互锁, 全握手
不互锁: 主模块发出请求后, 不必等待从模块的反馈, 而是等待一段时间后就开始撤销请求信号, 在一段时间内发送回答信号,等待一段时间后就会主动撤离回答信号 .
半互锁: 主模块发出请求后, 必须等待从模块的回答信号后再撤销请求信号,从模块收到请求信号后发出回答信号, 隔一段时间后就主动撤离其回答信号.
全互锁: 主模块发出请求后, 必须等待从模块的回答信号后再撤销请求信号, 从模块发出的回答信号,必须收到主模块的请求信号撤销后, 再撤销其回答信号.
分离式通信
特点:
-
各个模块都有申请总线的权利
-
个模块占用总线使用权都必须提出申请
-
在得到总线使用权后,主模块在限定的时间内向对方发送信息,采用同步方式传送,不再等待对方的回答信号。
-
各模块在准备数据的过程中都不占用总线,是总线可以接受其他模块的请求
-
总线被占用时都在做有效工作,或者通过他发送命令,或者通过他传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了在多个主、从模块间进行交叉重叠并行式传送,这对大型计算机是极为重要的.
参考资料
https://blog.csdn.net/dala_da/article/details/78650035
https://www.cnblogs.com/sun1993/p/7774185.html