(一)总线概述
1.总线的基本概念
为多个部件分时传递信息的一组公共线路。
2.总线的分类
按照连接的部件分为:片内总线(部件内部之间传递信息)、系统总线(部件之间传递信息)、通信总线(部件与外部设备之间传递信息)
按照传递的信息分为:数据总线、地址总线、控制总线
3.总线的结构
单总线结构:CPU、主存、IO设备连接在一组系统总线上。
优点:结构简单,方便实现、
缺点:带宽小、负载重,多个设备竞争这一组总线。
双总线结构:CPU和主存、通道连接在一组主存总线上,通道和IO设备连接在一组IO总线上。
优点:将速度较慢的IO设备与主存分离开
缺点:需要增加通道等硬件设备
三总线结构:CPU和主存连接在主存总线上,CPU和IO设备连接在IO总线上,IO设备与主存连接在DMA总线上
优点:IO设备响应速率快、提高了系统的吞吐量
缺点:工作效率低,(多条总线同时只能有一条总线在工作)
4.总线的操作过程
1.设备向总线发出请求,请求获得该总线的控制权
2.总线根据设备的请求进行仲裁,将控制权交给其中一个设备
3.设备获得控制权后,根据要访问设备的地址和有关命令,开启从模块
4.主模块向从模块传输数据
5.传输数据完毕之后,总线剥夺设备的控制权。
(二)总线仲裁
1.集中仲裁方式:
1.链式查询
需要3根线,一根公共的总线请求,一根公共的总线忙,一根公共的总线允许。
多个设备向总线控制部件发出请求,总线仲裁机构给出总线允许,按照距离总线控制部件远近的优先级顺序,依次轮询各个主设备,主设备若需要则获得该总线的控制权,否则传递给下一个主设备。(轮询,主设备自行仲裁)
优点:只需要三根控制线就能实现仲裁,结构简单,扩充容易。
缺点:1.对硬件电路故障敏感
2.优先级固定,距离总线控制部件近的若一直发出请求,则距离总线控制部件远的主设备会出现饥饿现象。
2.计数器查询
需要2+log2n根线,一根公共的总线请求,一根公共的总线忙,log2n根公共的总线允许
多个设备向总线控制部件发出请求,总线控制部件由计数器的值确定主设备的控制权,利用总线允许依次轮询各个主设备,若计数器的值等于主设备的设备号,则该设备获得控制权。(实际也是轮询,主设备自行仲裁)
优点:优先级灵活
缺点:控制复杂
3.独立请求
需要2n+1根线,每个设备都需要一根总线请求、一根总线允许,另外有一根公共的总线忙
多个设备向总线控制部件发出请求之后,这些设备的请求在总线控制部件中进行排队,根据仲裁结果,返回给每个设备是否获得总线的控制权。仲裁机构实至名归为总线。
优点:优先级灵活
缺点:控制复杂
2.分布仲裁方式
每个主设备有一个自己的仲裁号和仲裁器,当需要获得总线的控制权时,就会向共享的仲裁总线的发送自己的仲裁号,仲裁器将总线上的仲裁号与自己的仲裁号比较,如果此时总线上的仲裁号比自己的仲裁号高,则总线不响应自己的请求并撤回自己的仲裁号。最终获胜者享有总线的控制权。
(三)总线传输与定时
总线传输过程:
1.总线请求 主设备向总线发出控制请求信号
2.总线仲裁 总线根据集中仲裁方式(链式查询、计数器查询、独立请求三种方式)或者分布式仲裁方式进行仲裁
3.寻址 获得总线控制权的设备根据要访问的设备的地址以及相关命令,启动从模块
4.传输 主模块向从模块传输数据
5.结束 释放掉主模块在总线上的信号以及相关信息
总线定时:
总线定时实质上是一种协议和规则,用来协调信息传输的双方的动作。
包括1.同步定时 2.异步定时 3.半同步通信
1.同步定时:在每个时钟上升或者下降沿发送信息或者执行相关动作
优点:传输速度快,逻辑控制简单
缺点:主从设备之间存在强制性同步,没有数据校验,可靠性差。
2.异步定时:异步定时没有时钟的约束,依靠双方的“握手”实现通信
第一种为“不互锁方式”:主设备发出请求信号,不用等待从设备的回答信号即可撤回请求信号。
第二种为“半互锁方式”:主设备发出请求信号,等待从设备的回答信号才能撤回请求信号,从设备不用等待主设备的请求信号撤回之后即可撤回回答信号。
第三种为“全互锁方式”:主设备发出请求信号,等待从设备发出回答信号才能撤回请求信号。从设备等待主设备的请求信号撤回之后才能撤回回答信号。
3.半同步通信:
利用同步+异步
同步指:主模块在时钟周期的开始发地址、发命令
异步指:借助wait信号,由于从模块没有准备好,故wait信号为低电平则主模块保持等待,(而不会主模块直接撤销请求信号);直到wait信号为高电平有效时,主模块开始接受从模块数据。再到下一个时钟周期,主模块撤销请求信号。