最常见的比如USB,Universal Serial Bus,提供了对外连接的接口,不同设备可通过USB接口进行连接,连接的标准也统一了外围设备接口。
还有 PCI、ISA、Thunderbolt 等总线,都是为解决不同设备间的通信问题。
试想如果没有总线,当我们需要新加一个输入设备后,为了维持与各个设备的通信又得加一堆线路。而有了 I/O 总线后就像下图达到解耦清晰而统一。
分类
片内总线
芯片内部的总线,寄存器与寄存器之间,寄存器与控制器、运算器之间。高集成度芯片内部的信息传输线。
系统总线
数据总线
双向传输各个部件的数据信息,数据总线的位数(总线宽度)一般与CPU位数相同(32位、 64位)
地址总线
指定源数据或目的数据在内存中的地址,地址总线的位数与存储单元有关。
- 地址总线位数=n
- 寻址范围: 0~2^n
控制总线
发出各种控制信号的传输线,控制信号经由控制总线从一个组件发给另外一个组件,控制总线可监视不同组件之间的状态(就绪/未就绪)。
CPU、主内存、I0设备、各组件之间的信息传输线。
仲裁
总线上可能挂接多个设备,为了解决总线控制权的竞争问题,必须有总线仲裁部件,以某种规则裁决、分配总线的控制权。
多个主设备提出总线控制请求时,一般采用优先级或公平策略进行仲裁。
按照总线仲裁电路的位置不同,仲裁方式分为:
- 集中式
- 分布式
链式查询
总线授权信号被依次串行地传送到所连接的外围设
备上进行比较。
离总线控制器的逻辑距离决定,越近优先级越高。
优点:
- 电路复杂度低,仲裁方式简单
缺点:
- 优先级低的设备难以获得总线使用权
- 对电路故障敏感
计时器定时查询
仲裁控制器对设备编号并使用计数器累计计数,接收到仲裁信号后,往所有设备发出计数值,当查询计数器计数值与发出请求的设备编号一致时,中止查询,该设备获总线控制权。
优先级灵活:计数器初值、设备编号可通过程序设定,优先次序可用程序控制。
独立请求
各设备均通过专用请求信号线与仲裁器连接,且通过
独立的授权信号线接收总线批准信号。
优点
- 响应速度快,优先顺序可动态改变
缺点
- 设备连线多,总线控制复杂
本文转载自微信公众号「JavaEdge」,可以通过以下二维码关注。转载本文请联系JavaEdge公众号。