计组 第三章 系统总线
一、总线的基本概念
-
为什么要总线:计算机各个部件之间需要通信,但是不能简单的使用两两连接的方式。
-
什么是总线:
- 连接各个部件的信息传输线
- 是各个部件之间共享的传输介质
-
总线上信息的传输:
- 串行,一位一位传输
- 并行,多位共同传输,不能远距离传输,防止互相之间的干扰
二、总线的结构
1、单总线
每次只能一对设备传输信息,总线成为瓶颈
2、双总线,以cpu为中心
主存和CPU之间的交流繁忙,使用专用的总线
但是CPU为中心导致了CPU的过于繁忙
3、双总线,以主存为中心
但是不能同时对主存进行读写操作,主存同时只能对一条总线做数据传输
三、总线分类:
-
片内总线:芯片内部的总线
-
系统总线:计算机各个部件之间传输信息的总线
-
数据总线:双向,与机器字长,存储字长有关
-
地址总线:单向,与存储地址,io地址有关
-
控制总线:双向(有出有入),用于传输信号,例如:中断信号,存储信号等等
-
通信总线:计算机系统之间或计算机系统与其他系统之间的传输信道
-
总线分类:
-
片内总线:芯片内部的总线
-
系统总线:计算机各个部件之间传输信息的总线
- 数据总线:双向,与机器字长,存储字长有关
- 地址总线:单向,与存储地址,io地址有关
- 控制总线:双向,用于传输信号,例如:中断信号,存储信号等等
- 通信总线:计算机系统之间的传输信道
四、总线的特性和性能指标:
-
总线物理实现
在主板上将设备插入对应的插槽就完成了总线的连接。 -
总线特性
- 机械特性:尺寸,形状,管脚数,排列顺序
- 电器特性:传输方向和有效电阻范围
- 功能特性:每根线的具体功能(地址,数据,控制)
- 时间特性:信号的时序关系
-
性能指标:
- 总线宽度:数据线的根数
- 标志传输率: 每秒传输的最大字节数
- 时钟同步/异步:不同步、同步
- 总线复用: 地址线和数据线复用
- 信号线数 :地址线,数据线和控制线的总和
- 总线控制方式: 突发,自动,仲裁,逻辑,计数
- 其他 :负载能力,能为多少IO提供服务
-
总线标准
五、总线结构:
-
单总线
-
多总线
-
双总线
通道相对于一个简单的CPU,用于IO的管理
-
三总线
另一形式
cache用于对于主存部分内容进行缓存,原因是主存的速度原因跟不上CPU
-
四总线
拓展总线接口:用于连接低速设备
-
六、总线控制
1、判优控制:
-
总线同一时间只能有一对设备使用,当多个设备同时发出信号如何处理
-
基本概念:
-
主设备:对总线有控制权
-
从设备:响应从主设备发来的总线命令
-
判优控制方式:
-
集中式:集中到一个设备判断
-
链式查询方式
*BR:总线请求,所有设备都通过这条线发出总线占用请求
*BS:总线忙,当某个设备占用了总线控制权,通过总线忙告诉控制部件
*BG:总线授权
*当某个设备发出BR,总线控制部件得知,通过BG线判断哪个设备的优先级高,从而得到使用权
*优先级和io设备的被查询位置有关
对电路故障敏感,尤其是BG信号 -
计算机定时查询
设备地址线:用于标记IO设备,用来询问某个设备是否发出了控制请求
某个设备发出BR信号,总线控制部件从某设备开始查询(根据计数器决定)当询问到某设备需要总线就发出一个BS信号。获得总线使用权
*优先级确定灵活,可以通过软件方式
需要对设备进行编码 -
独立请求方式
*每个IO都对总线控制部件有独立的总线连接,总线控制部件内部存在一个排队器进行判优
-
-
-
2、通信控制
-
目的:通信双方协调配合问题
-
总线传输周期:完成一次传输需要的时间
- 申请分配:判优问题
- 寻址阶段:主设备向从设备给出地址和命令
- 传输阶段:主设备和从设备交换数据
- 结束阶段:主设备撤销相关信息
-
方式:
- 同步通信:统一时标控制数据传输
- 异步通信:采用应答方式,没有公共时钟标准
- 半同步通信:同步异步结合
- 分离式通信:可以充分发掘总线的效率
-
同步数据输入
假设一次数据传输使用了四个时钟周期,其中在第一个时钟周期的上升沿,主设备发出地址信号并持续,第二个时钟周期发出读信号,第三个时钟周期从设备需要将需要数据发送到数据线上,第四个时钟周期主设备取消地址的传送和命令的传送。
-
同步数据输出
先给出数据,保证数据存在,再给出写命令,保证当写命令到达从设备,可以立即将数据写入从设备相应地址中
-
异步通信
需要增加两条线路,请求线和应答线
*不互锁:主设备发出请求,从设备接收数据,都到了一段时间断开
*半互锁:主设备收到从设备的对应自己的请求的回答后再断开- Tips:当回答未接收到,但是从设备中断了,会发生主设备的请求持续,这有点类似与TCP/IP协议的四次挥手,当客户端回应了对于服务器的断开连接的请求,这时候客户端进入了time_wait状态持续时间为最大报文生存时间,这就是防止出现,当客户端发送了ACK包,但是服务器没有接收到导致了服务器一直处于连接状态。
*全互锁:主设备收到对方的回应后再断开
*这种方式可以做到当一段时间后主设备没有收到从设备的中断回复再发出一次询问,TCP的四次挥手也是作用超时重发FIN包的方式。 -
半同步通信
-
为了解决低速设备不能及时提供数据的问题
-
同步:使用时标的方式
-
异步:允许不同速度的模块和谐工作
-
增加一条等待信号线
当主设备接收到wait信号表示从设备没有准备好数据
-
-
-
总结上述三种方式:
- 一个总线传输周期:
1、主模块发送地址和命令,占用总线
2、从模块准备数据,不占用总线
3、从模块发送数据,占用总线
找到一个合适的方式利用此模块的准备数据的时间,以此来节约时间。
- 一个总线传输周期:
-
分离式通信:
1、将总线传输周期分为两个子周期
2、子周期1:主模块申请占用总线,使用完放弃总线使用权
3、子周期2:从模块申请占用总线,发送数据
4、使用这种方式可以充分的利用总线,不会因为从模块准备数据的时间太长而导致作用总线的时间过长,浪费总线资源。