1. 类型
<aside>
📖 芯片内部总线
连接芯片内部的各个部分
例:CPU中连接寄存器、ALU等部分
</aside>
<aside>
📖 系统总线
连接CPU、存储器、IO控制器和其他功能设备
</aside>
<aside>
📖 通信总线
连接主机和I/O设备,或连接不同的计算机系统
</aside>
2. 数据线、地址线和控制线
<aside>
📖 数据线
在系统组件之间传输数据
数据线的数量决定了一次可以传输的数据的大小
</aside>
<aside>
📖 地址线
在数据线和地址I/O端口上指定数据的来源和去向
地址线的数量决定了寻址空间的大小
</aside>
<aside>
📖 控制线
控制对数据线和地址线的存取和使用
- 时钟(clock):用于总线同步操作
- 总线请求(bus request):表示模块需要获得对总线的控制
- 总线允许(bus grant):发出请求的设备已经被允许控制总线
- 中断请求(interrupt request):表示某个中断正在悬而未决
- 中断响应(interrupt ACK):未决的终端请求被响应
- 存储器读(memory read):从存储器读数据到总线
- 存储器写(memory write):将数据从总线写入存储器
- I/O读(I/O read):从I/O端口读数据到总线
- I/O写(I/O write):将数据从总线写入I/O端口
- ……
</aside>
3. 总线上数据传输的特点
- 总线可以被多个设备监听,但同一时刻只能由一个设备发送数据
- 如果同一时刻多个设备同时发送数据,会造成数据之间的混淆
- 使用总线进行数据传输
- 如果连在总线上的某个设备希望向另一个设备发送数据,需要:
- 如果连在总线上的某个设备希望向另一个组件请求数据,需要:
- 获得总线的使用权
- 通过总线向另一个设备发送请求,等待另一个设备发送数据
- 当总线在被使用过程中,其它设备不可以抢占
4. 设计要素
4.1 用途
<aside>
📖 专用(dedicated)总线
始终只负责一项功能,或始终分配给特定的计算机组件
- 优点:高吞吐量,减少总线冲突
- 缺点:增加了系统的规模和成本
</aside>
<aside>
📖 复用(multiplexed)总线
将同一线路用于多种用途
- 优点:使用的布线数量少,节省空间和成本
- 缺点:每个模块需要更复杂的控制电路,且共享可能会降低性能
</aside>
4.2 仲裁 Arbitration
<aside>
📖 总线仲裁
当多个设备需要与总线通信时,通过某种策略选择一个设备
</aside>
<aside>
📖 平衡因素
- 优先级:优先级高的设备优先被服务
- 公平性:优先级最低的设备不能一直被延迟
</aside>