计算机组成原理总目录
总线仲裁
由于总线连接着多个设备,那么在同一时刻多个设备想要占用总线时,就会发生冲突问题
为了解决冲突问题,就需要规定好所有设备使用设备的优先权,仲裁也就是判断设备占用总线的优先权
例如设备A的任务比设备B的任务更紧急,那么在设备A和设备B同时申请占用总线时,自然要优先让给设备A
- 主设备:获得总线控制权的设备
- 从设备:响应主设备请求的设备
例如CPU需要读取内存中的数据,那么此时CPU就是主设备,内存为从设备
1. 集中仲裁
- 总线请求线:用于设备向控制器发送请求信号
- 总线占用线:代表总线是否被占用,例如占用线上位高电平代表总线正在被占用,低电平代表未被占用
- 总线允许线:控制器通过总线允许线响应设备的总线请求,确定设备是否可以占用总线
- 链式查询方式
- 第一步、多个设备通过总线请求线向控制器发送请求,控制器通过判断总线是否被占用来确定是否响应总线允许
- 第二步、控制器向总线允许线发生响应信号,排在前面的设备具有优先权占用总线
- 第三步、第一个接收到总线允许的设备开始占用总线,占用线持续为高电平
- 第四步、设备使用完总线后,撤销总线占用线的信号
优缺点- 优点:控制线结构简单,易于扩充
- 缺点:优先级固定(排在前面的优先级更高)
同时对硬件故障敏感(若设备1坏,其后设备都无法占用总线)
当高优先级设备频繁占用总线时,会导致低优先级设备长期得不到总线的使用权(饥饿问题)
- 计数器查询方式
相比链式查询方式,计数器查询在控制器中存在一个计数器,且控制线的总线允许线变为一组设备地址线
- 第一步、多个设备通过总线请求线向控制器发送请求
- 第二步、控制器的计数器从0开始不断累加,代表第几个设备,然后通过设备地址线依次询问设备
- 第三步、若询问到的设备需要使用总线,同链式查询方式,该设备开始占用总线
优缺点- 优点:计数器的初始值可以改变设备的优先级,对硬件故障没有链式敏感
- 缺点:控制较为复杂,增加了控制线的数量,例如n个设备需要 log 2 n \log_2 n log2n+2条控制线
- 独立请求方式
独立请求方式较为直接,每个设备都单独用总线请求线和允许线与控制器相连
这也意味着每个设备占用总线的优先权可由控制器完全控制
优缺点
- 优点:直连控制器响应快,可以灵活的控制设备优先权
- 缺点:控制线数量多(2n + 1条),总线的控制逻辑更为复杂
2. 分布仲裁
无需仲裁控制器,每个设备内部都有自己的仲裁控制器,通过多个设备的仲裁控制器之间的竞争来取得总线的控制权