7.4-总线仲裁和数据传输方式
菊花链式串行总线仲裁
什么是总线仲裁,是指在总线上同一时刻只能有一个主设备占用总线,当计算机系统中只有一个主设备的时候不存在仲裁问题,当多个主设备同时提出总线占用的申请,就会有总线的仲裁问题
菊花链式原理如下:
- 主设备1和2通过三条线同CPU链接,一条线总线请求就是当主设备需要获得总线控制权的时候,会通过总线请求线向CPU提出申请,另外一条线总线忙信号,用来表明总线是否处于忙碌状态,即总线是否被其他主设备占用,如果被占用,就会有总线忙信号,至于总线忙信号无效时主设备才可以提出总线申请
- CPU获得主设备总线申请之后,在总线不忙的情况下会给出响应的应答信号,菊花链式的应答信号是首先给到第一个主设备,这个主设备收到应答信号之后,如果这个主设备提出了总线请求,就可以获得总线的控制权,同时设置总线忙信号设置为有效。
- 只有第一个主设备没有请求的时候,才会将CPU的应答信号传递到下一个主设备以此类推。CPU不需要做任何的判断和裁决,缺点是只要第一个主设备一直有总线请求就轮不到其他主设备使用总线
集中式并行总线仲裁
- 每个主设备都有总线请求,总线应答,总线忙信号,链接到统一的总线仲裁逻辑控制电路,这个电路链接CPU的总线应答,总线请求,总线忙信号或者总线仲裁器
- 任何一个主设备都可以提出总线控制请求,然后根据CPU或者总线仲裁器根据策略给出到底给哪个设备,电路实现比较复杂,可以根据不同的策略来分配不同的设备
集中式的仲裁策略
- 固定优先级总线仲裁
即总线的链接电路构成一个优先级的电路决定了主设备提出总线仲裁之后能够获得总线控制权的一个优先级,优先级是固定的,类似于串行总线仲裁方式实现简单,缺点和串行的一样
- 轮叫式总线仲裁(Round Robin)
一旦一个主设备获得过一次总线控制权以后,优先级就会降到最低,以此类推,这样每个设备都能获取到总线控制权
- LRG总线仲裁(Least Recently Granted)
类似于Cache的替换策略,最近获得总线控制权的设备它的总线优先级越高,最近使用越少的设备优先级越低从而保证经常使用的设备获得更高的使用权
- 混合式总线仲裁
将上述三种结合,就是部分总线的主设备采用第一种部分采用第二种,一部分采用第三种,具体使用那种根据系统的复杂程度来决定
总线时序-同步定时(总线传输方式)
同步定时:信息传送由公共时钟控制,总线包含时钟线,所有传输都通过时钟
- 图中总线会有一个时钟,这个时钟规定了每个节拍总线将进行处理的事务
- 例如第一个时钟周期会在主设备上面送出地址信息,表示地址有效
- 第二个时钟周期如果需要写数据的话,在第二个周期送出写的信号以及数据
- 第三个周期如果要读数据,需要送出读的控制信号和读的数据
有点:时序关系简单,实现简单类似于CPU访问存储器的访问方式
缺点:在设备速度不一致的时按照最坏情况确定,传输线不能太长,时钟相移,从而影响数传输可靠性
异步定时:
信息传送的每一个操作都是由主设备或从设备特定信号的跳变所确定,总线上每一个事件的发生都取决于前一个事件的发生。总线上没有一个时钟总线,不受时钟节拍的控制
- 第一个阶段把地址送出去(取数据根据地址取,就是从设备拿到地址把数据送到总线)
- 第二个阶段可以时读数据也可以是写数据。什么时候读什么时候写数据,需要两个信号称为握手信号,对于读的信号操作首先读的信号操作有效,有效之后从设备会把读的数据送到总线同时表明数据已经送进来了,主设备收到这个信号之后会撤销这个读有效信号,这样两次交换之后确定数据传送完毕。写数据也是一样主设备送出写的控制信号,同时送出写的数据,接收信号的从设备,接收到信号后会应答一个完成有效信号,主设备收到后撤销写的有效信号。是通过信号握手来完成传递
- 优点:数据传输时可靠的,每次传输都通过握手方式,适用于传输周期不同的设备,对通信线的长度没有要求
- 缺点:没有时钟,速度相对比较慢,传输过程是随机的,CPU是按照时钟的,设备是随机的,会影响CPU的性能
半同步定时:将上面两种结合
总线上各个操作之间时间间隔可以变化,仅允许为公共时钟周期的整数倍,也就是说有时钟。信号的采样和结束仍以时钟为准
- 总线上依然有个时钟进行定时第一个时钟周期送出地址,按照同步定时第二个时钟周期就应该写出数据(从设备)或者第三个时钟周期得到读的数据,由于从设备比较慢或者没有准备好,需要等待两个或多个时钟周期才写出数据或者读数据。等待时间必须是时钟周期的整数倍
数据传输方式
- 并行传送:就是一次进行数据传送过程中传送的二进位数就是总线数据宽度就是一次将一个字长的数据传送出去。通常采用应答式的联络信号来协调双方数据传送操作(就是半定时传送)
- 串行传送:一次只使用一根传输线,一次只能传送一个数据位,采用脉冲方式传输信息。每次一位信息,一次新的传送,一定是以一个电平的跳变开始。通常采用异步定时方式。一次一个控制比较复杂,总线要求较高
- 串并传输:一次传送多个二进制位但是同时传送的二进制位小于总线宽度。按照串行方式多次将整个数据宽度传送完