操作系统-CPU与外设交互方式
1. 查询方式
查询方式是一种异步交互方式。
外设的接口处有Ready标志位,CPU想要和外设之间进行数据交互,就要先查询接口的标志位。
询问外设是否准备就绪,如果没有准备就绪,CPU一会儿再来访问;
如果外设准备就绪,进行数据传输。
特点:由程序发起IO请求,并且等待完成;交互必须通过CPU的参与。
2. 无条件传输方式
无条件传输方式是一种同步交互方式。
这种操作方式需要外设与CPU进行过完美的同步,
保证每次CPU来读的时候,外设的数据都已经准备好了。
每次CPU来写的时候,外设准备好了被写入数据。
主要用于:外设的时钟周期已知且稳定的场景。
3. 中断方式
当外设准备好发送数据或者接收数据的时候,向操作系统发出中断申请。
CPU放下手中的工作,保存上下文,进行中断响应。
中断响应结束以后,恢复上下文进行原来的工作。
特点:
在外设进行准备的过程中,CPU可以先不管外设,和外设并发的工作。
缺点:
如果IO交互太频繁,中断次数太频繁,CPU需要多次中断,耗费CPU资源
4. 通道方式
通道是一种用来控制内存和外设交互的专门部件。
通道有自己独立的指令系统,可以脱离CPU独立运行,也可以受控于CPU。
常用在大型计算机中。
特点:
IO能力强,以内存为中心,直接与外设进行数据交换,传输过程几乎不需要CPU参与
5. DMA方式
当前微机使用广泛的一种方式
DMA 全称 Direct Memory Access, 直接内存访问
DMAC :C表示Controller,直接内存访问控制器
核心原理:
CPU把总线控制权交给DMAC,进入DMA方式,完成数据传输之后,DMAC交还总线控制权。
特点:开始和结束的时候,向CPU交换总线控制权,数据传输过程不需要CPU介入
基本传输过程:
1. 外设有DMA需求并且准备就绪,就向DMAC发出请求信号
2. DMAC收到外设的请求信号之后,向CPU发出总线请求信号
3. CPU接到总线请求信号之后,如果允许DMA传输,则会在当前总线周期结束之后,发出DMA响应信号,让出总线控制权
4. DMAC获得对总线的控制权,向外设发出应答信号,通知外设可以进行传输
5. 进行数据传输
6. 传输完成之后,DMAC向CPU发出撤销总线控制权请求,CPU收到信号之后,收回总线控制权