常见IO设备
鼠标键盘显示器打印机磁盘光盘,略述
IO接口/IO控制器
IO设备千千万,只有接口不会变。
内置linux寄存器,体现了IO的本质和linux哲学:一切皆文件
状态/控制寄存器两个功能一次使用,因为两个是单向的,所以可以合在一起。读的时候是状态寄存器,写的是时候是控制寄存器。
编制方式可以统一编制和独立编制。统一编制使用内存访问指令,独立编制使用专门的IO指令。
IO执行方式
主要有两大类,不断查询方式和异步中断方式。
不断查询方式就是cpu一直持续关注IO接口进展,刷新后就得到并执行,适合低速设备,比如鼠标每秒30次这种对主频利用率占0.006%这种IO设备。对于高速访问设备很吃CPU利用率
异步中断方式
开始IO操作的时候发送一个中断指令(实际上是设置INTR寄存器里面的一位)当IO操作完成后向CPU发送一个中断指令,提醒CPU已完成。
细说中断
基本操作:开中断关中断通过PSW寄存器里面的一位IF实现(挡不住不可屏蔽中断,如断电、强制关机)。中断屏蔽字用硬件电路实现。中断优先逻辑用硬件电路实现。中断隐指令由CPU自己实现(包括关中断、保护断点、中断服务程序寻址)
单重中断:基础中断模型,关中断保护现场执行程序回归现场开中断
多重中断:添加了中断优先抢占功能,缩短了开关中断间的指令长度,只把保护和恢复现场部分设定为原语,实现了允许抢断的功能。中断向量实现了中断程序的入口地址。中断变换器实现了找到中断向量的地址。
DMA:一种特殊的IO接口
别的IO接口只能被动请求和等待CPU,但是DMA接口搭载了控制电路和寄存器,使得它可以主动传输数据。具体结构如下图。
执行过程是CPU想告诉DMA从哪里取多少数据,放到哪个地址,然后DMA执行,执行完之后发送一个中断请求通知CPU任务完成。
DMA也可以接受IO设备的请求,将请求触发器置为1后开始工作。
具体流程如图
DMA优先级比中断请求高,比CPU高,压着CPU打
当和CPU出现争论时候,具体有以下几种解决方法:
1、直接霸占控制权,知道任务完成
2、把每个时钟周期分为两部分,第一部分给DMA用
3、窃取某几个完整的时钟周期,来用
标签:DMA,综述,中断,接口,IO,寄存器,CPU,设备 From: https://www.cnblogs.com/EeiKo/p/16628315.html