总览
总线仲裁的基本概念
系统总线包含数据总线和地址总线和控制总线
设备首先通过控制总线获得总线的使用权,然后便可以用数据总线和地址总线进行传输,至于和哪个设备进行数据传输,这是由当前获得总线使用权的设备决定的
集中仲裁:一个决定谁先用
分布仲裁:一群决定谁先用
集中仲裁方式
总线控制器有可能集成在CPU或者桥接器中
总线控制器发出总线时钟信号
BG BR BS都是控制总线
链式查询
当设备1和设备n同时向总线控制部件通过BR发送信号后,总线控制部件通过BG向各个设备发送信号 ,此时信号先经过设备0,由于设备0没有请求,所以让信号通过,接着先通过设备1,此时设备1需要使用总线,所以截获信号,同时获得总线的使用权,此时BS被使用。那么总线控制器检测到BS信号,将不会将总线的使用权给设备n,尽管设备n仍然在通过BR请求总线的使用权,此时设备1比设备n优先使用
接着当设备1使用完总线后,撤销BS信号,那么此时由于设备n依然在通过BR发送信号,因为此时总线控制器没有检测到BS信号,所以发送BG,那么BG到达设备n,设备n开始使用总线
缺点中故障敏感就说如果优先级高的设备接受BG信号有故障,导致后面的都接收不到BG信号了,那么此时后面设备永远无法获得总线控制权了
计数器查询
设备地址线是一组线来表示设备地址,即是哪个设备
当设备1和设备n向总线控制部件通过BR发送信号时,此时总线控制部件的计数器从0开始递增,每次递增都会通过设备地址线向对应计数器的设备访问是否需要获得总线的使用,为0通过地址总线访问到设备0,发现其不需要使用,接着计数器+1,通过地址总线访问设备1,此时设备1需要使用总线
(访问设备其实是将计数器的值的信号发送到设备地址,设备地址线再发送给各个设备,设备再识别该信号是否是自己的设备编号,是,那么就做出反馈)
当设备1使用完总线后,撤销BS,此时由于总线控制器检测仍然有BR信号,将继续改变计数器的值去找到对应要使用总线的设备
链式敏感是优先级高的设备线坏了不会影响后面的设备使用
增加控制线数是因为设备地址线较多
同时由于设备需要识别设备地址传过来的信号以及将计数器的值转换为设备地址线的信号,所以比较复杂
独立请求方式
每个设备都和总线控制器部件有自己的BR和BG,同时都连在一根BS,当设备1和设备n同时向设备发送BR信号时,总线控制器部件里的排队器会处理BR信号,最后通过BG向某个设备发送总线允许的信号,此时对应设备获得总线允许信号后会向BS发送信号,此时总线控制器接受到BS,那么此时设备已获得总线的使用权,将撤销发送总线允许的信号。当设备使用完总线后,排队器再决定给下一个设备发送总线允许信号
排队器的实现比较自由所以控制优先次序也比较灵活
集中仲裁方式小结
分布仲裁方式
仲裁号反映优先级