总线与I/O
一、总线
1. 总线的概念
总线:一组公共的信号通道
分时共享:在某一时刻,只允许有一个部件向总线发送信息,而多个部件可同时从总线上接收相同的信息
特性:
- 机械特性:机械连接方式。如几何尺寸、引脚数量、插头标准
- 电气特性:信号传输方向、有效电平、电平逻辑等
- 功能特性:信号功能定义
- 时间特性:信号之间的时序关系
分类:片内总线、系统总线、通信总线
王道上面还有其他分类方式:如串/并行总线、同/异步总线,了解即可
性能指标:
- 总线宽度:指数据总线的位数(根数),如32位,64位
- 标准传输率:每秒传输的最大字节量(B/s),与总线宽度和频率相关
- 同步/异步方式:总线上的数据与时钟同步工作的总线为同步总线,与时钟异步的总线为异步总线
- 信号线数:所有信号线的总数
- 总线控制方式:指总线上各部件使用总线的仲裁方式
- 总线复用:地址总线与数据总线是否复用(时分多路复用)
总线标准(看看就行,冲击满分可以背背):
2. 总线结构
总线用于连接CPU、主存、I/O,不同的连接方式对应不同的结构
单总线结构:CPU,主存,I/O设备(通过I/O接口)都连接在一组总线,允许I/O设备之间,I/O设备和CPU之间或I/O设备与主存之间直接交换信息。
优点∶结构简单,成本低,易于接入新的设备。
缺点∶带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发传送操作。
双总线结构:双总线结构有两条总线,一条是主存总线,用于CPU,主存和通道之间进行传送,另一条是I/O总线,用于多个外部设备与通道之间进行数据传送。
优点∶将低速 I/O 设备从单总线上分离出来,实现了存储器总线和I/O 总线分离。
缺点∶需要增加通道等硬件设备。
三总线结构:是在计算机系统各部件之间采用3条各自独立的总线来构成信息的通路。这三条总线分别为主存总线,I/O总线和直接内存访问DMA总线。
优点∶提高了I/O设备的性能,使其更快地响应命令,提高系统吞吐量。
缺点∶系统工作效率较低。
3. 总线的通信过程
总线仲裁是指系统是否响应总线请求的判定过程
通信控制是在系统给予总线使用权之后部件之间的数据传输控制
4. 总线的仲裁(控制)方式
总线仲裁的策略:优先级或公平
分布式的控制方式:总线仲裁逻辑分散在与总线连接的各部件上
集中式的控制方式:总线仲裁逻辑集中在一处(如在CPU中),包括
- 链式查询控制方式
- 计数器定时查询方式
- 独立请求方式
流程:
- 当前设备向仲裁器发送总线请求信号BR
- 总线仲裁器收到BR信号,往下传送总线同意信号BG,依次传送
- 遇到某个设备有总线请求,BG停止往下传,该设备获取总线使用权,并且由该设备建立总线忙信号BS
- 传送数据
优点:线少(3根)、易扩充
缺点:故障敏感,BG信号逐设备传递,一旦某处硬件故障,后面都接收不到BG信号。优先级固定,BG信号的传递顺序固定,永远是在前面的设备先获得总线使用权
流程:
- 当前设备向仲裁器发送总线请求信号BR
- 总线仲裁器收到BR信号,计数器开始计数
- 计数器与某个设备地址相等时停止计数,使用权交给该设备,并由其建立BS
- 传送数据
优点:优先级灵活
缺点:线多,
l
o
g
2
n
+
2
log_2n +2
log2n+2根,
n
n
n个设备对应
l
o
g
2
n
log_2n
log2n位计数地址
流程:
每个设备均有一对总线请求线 BR,和总线允许线 BG。当总线上的部件需要使用总线时,经各自的总线请求线发送总线请求信号,在总线控制器中排队,当总线控制器按一定的优先次序决定批准某个部件的请求时,给该部件发送总线响应信号,该部件接到此信号后就获得了总线使用权,开始传送数据
优点∶响应速度快,对优先次序的控制相当灵活
缺点∶控制线数量多(2n+1根),总线控制逻辑更复杂
5. 总线的通信控制方式
为协调通信双方,需进行通信控制,常见的方式有:
- 同步通信控制方式
- 异步通信控制方式
同步通信控制方式:有统一的时钟信号,规定好信号时序即可
异步通信控制方式:没有统一的时钟信号,依靠“握手”信号来控制数据传输。
二、I/O
1. I/O接口
说白了就是方便I/O设备与CPU通信的中间人。
2. I/O方式
程序查询I/O方式:CPU不断查询I/O接口的状态,有数据则传数据,没数据则继续查询,CPU完全干这件事。
中断I/O方式:让I/O接口来通知CPU工作,此时CPU可以在外设准备数据的时候干自己的事,但是数据传输依旧需要经过CPU
DMA过程:DMA控制器相当于一个专门处理I/O工作的小CPU,CPU不亲自传输数据,而是经过DMA传输。CPU仅仅负责处理开头和结束的工作,设置DMA控制器的参数等等,DMA控制器仍然需要向CPU发送中断信号来通知CPU工作,CPU对于DMA中断和普通的中断响应时间略有不同。
通道方式:DMA的升级版,更加专业,不需要CPU插手,操作系统能够自动根据I/O任务生成通道程序指导通道工作,完成I/O操作,CPU完全解放。