总线
之前我已经写过一个总线的总结了:https://www.cnblogs.com/jiading/p/11729807.html
总线的分类
数据总线的宽度不一定等于字长,也可以小于,因为可以多次传输来完成一个子的数据传输
控制总线的输出:储存器读、储存器写、中断确认
控制总线的输入:中断请求、总线请求
总线的物理实现
总线的性能指标
8086就是地址线和数据线复用的:20根地址线,其中的16条同时作为数据线。总线复用的目的是减小芯片的管脚数,从而减小封装体积
总线的标准
USB是总线的一种
总线结构举例
这种结构实现了高速设备和低速设备的分离
VL-BUS是高速总线,连接高速设备;通过标准总线控制器拓展出了ISA、EISA总线用于连接低速设备
PCI总线可以进行扩展
总线控制
总线判优控制
一条总线同时只能有一对设备进行通信
-
链式查询
查询过程:- 某一IO设备从接口通过BR向总线控制部件发送请求
- 总线控制部件同意,BG从第一个IO接口开始,如果沿途的IO接口都同意,则请求占用的发出BS表示总线被占用
原因就是所有接口接在一条线上,总线控制部件并不知道是哪个接口申请占用,所以不能动态调整优先级,只能依靠这种依赖于电路结构的优先级排序
缺点:
- 优先级固定于硬件结构,不能动态调整
- 对电路故障特别敏感,特别是BG线
优点:结构简单、增加设备容易、可靠性拓展比较容易
一般使用在微机和简单的嵌入式计算机中
-
计数器定时查询
总线控制部件中有一个计数器,在总线控制部件收到请求并且确认没有占用时,计数器启动,通过设备地址线(可以视为通过设备地址线传输接口号,所以设备地址线的宽度会限制接口的最大数量)依次查询是哪个接口申请优点:
- 优先级确定灵活,可以有多种优先级算法
-
独立请求方式
不再依次确定申请设备,速度快
每一个接口都有单独的线路排队在总线控制部件内进行,也是很灵活
缺点就是线用的多
总线通信控制
目的是解决通信双方协调配合的问题
总线通信有四种方式:
最后挡住的两个字是“潜力”
-
同步通信
时钟控制整个过程
在固定是时间节点必须给出固定的操作
这个学过
-
异步通信
这个也学过
没有时钟,但是要增加两台线:请求线和应答线
异步通信分为三种:不互锁、半互锁和全互锁
不互锁:无论是请求信号还是应答信号,持续发送一段时间之后,无论对方是否接受,都会撤销,所以说异步通信的可靠性有问题
半互锁:从设备接收到请求后就返回一个信号,主设备收到应答信号之后才撤销请求。但是从设备发出应答信号后,依然不管主设备是否收到
半互锁部分解决了问题,但是却可能导致主设备在一直收不到从设备返回的应答信号时一直保持请求信号全互锁:主设备请求-从设备收到请求后应答-主设备收到应答后撤销请求-从设备发现请求撤销后应答结果
-
半同步通信
-
分离式通信
分离式通信利用了第二部分的总线空闲,这部分空闲其实还是很大的,例如如果要访问硬盘数据的话,由于硬盘速度限制,准备数据的时间远多于剩下两个部分的时间花费
分离式通信实际上使用的是同步方式通信