I/O模块
外围设备的接口
转换器:外设的数据格式和计算机内部的数据格式可能不一致
功能
结构
- CPU对外设的命令是走数据线的,是具体的操作
- 状态和控制不是同一时间发生,只有确认了状态后,才能确认控制。状态是从右往左返回,控制是从左往右返回
- 数据寄存器实际上是输入寄存器和输出寄存器的合并
外部接口
事实上,并行接口,每一根线的延迟可能是不一样的,当线的长度非常长时,每一位传输时就会导致错位,数据传输出错。
所以,需要按照一定频率传输
串行总线
- 批量传输比同步传输多了“握手”,是为了实现异步
- 同步传输:传送音视频时,需要同步。音视频对实时性的要求较高;允许一定的误码率
I/O操作技术
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QE3FoVwX-1677463119456)(null#averageHue=#e8e8e8&clientId=ue02361c6-a47f-4&from=paste&height=319&id=u76ed5f21&name=image.png&originHeight=399&originWidth=847&originalType=binary&ratio=1&rotation=0&showTitle=false&size=143924&status=done&style=none&taskId=u01965a79-a142-400f-bc0a-a2d04d1466b&title=&width=677.6)]
编程式I/O
缺点:比较低效
I/O命令
- CPU需要做什么 - 指令
- I/O需要做什么 - 命令
中断驱动式I/O
模块理解
- I/O模块等处理器,而不是处理器等I/O了
中断允许和中断禁止
- 中断处理之前,要保存现场
- 保存现场时,不能被中断。所以中断响应后,要进入中断禁止,保护现场
- 恢复现场时,也不能被中断
例题
- 主程序的响应优先级和处理优先级的最低
- 先执行和处理完L1(L3 L4的处理优先级比L1低),回到主程序
- 先响应3,但是先处理完L4
- 恢复L3,发生了L2中断,但是L2的处理优先级低于L3,所以先处理L3
处理优先级决定哪些中断可以被响应,响应优先级决定哪些中断最先被响应
行屏蔽是从处理优先级的角度出发的
设备识别
直接存储器存取 DMA
- DMA和CPU访问同一块内存时,可能会导致冲突
DMA内存访问:CPU停止法
DMA内存访问:周期窃取
断断续续:存储周期处于空闲状态。一次IO请求可能会有多次DMA访存
DMA内存访问:交替分时访问
DMA配置机制:单总线分离DMA
单总线集合的DMA
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JVnkFAkT-1677463119479)(null#averageHue=#f3f2f2&clientId=ue02361c6-a47f-4&from=paste&height=399&id=u5fd66c52&name=image.png&originHeight=499&originWidth=724&originalType=binary&ratio=1&rotation=0&showTitle=false&size=103666&status=done&style=none&taskId=u51d121af-a0ed-4760-a05d-43c919fa4d8&title=&width=579.2)]
CPU还在操控,但是不等待
I/O模块的演变
I/O处理器不仅有处理器,同时也有了局部存储器