【王道计组笔记】I/O查询方式

程序查询方式:

CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序。

CPU有“踏步”等待现象,CPU与I/O串行工作

优点:接口设计简单、设备量少
缺点: CPU在信息传送过程中花费很多时间用于查询和等待,而且在一段时间内只能和一台外设交换信息, 效率大大降低。

一次只能传送一个字:外设传过来的数据放在CPU的寄存器中。即每传输一个字,CPU都要查询一次。所以,使用程序查询方式非常慢


程序中断方式:

中断服务程序也是程序,由CPU执行,所以涉及程序切换,所以要保护现场和恢复现场

DMA方式:


每准备好一个数据都要中断CPU,由CPU运行中断服务程序来完成一次传送。

高速设备需要大批量的数据传输->CPU大量时间用于中断服务。

DMA控制器:在DMA总线上有DMA控制器,硬件实现控制大批量数据传输

在DMA方式中,当I/O设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送
请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。

其主要功能有: 

1)接受外设DMA请求,向CPU发出总线请求
2) CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
3)确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
4)规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
5)向CPU报告DMA操作的结束。

 

CPU只需要预处理后处理 

 当I/O设备和CPU同时访问主存时,可能发生冲突。解决:

(1)停止CPU访问主存

未充分发挥CPU对主存的利用率

(2)DMA与CPU交替访存 

 硬件逻辑复杂

 (3)周期挪用(周期窃取)

DMA访问主存有三种可能:
CPU此时不访存(不冲突)
CPU正在访存(存取周期结束让出总线)
CPU与DMA同时请求访存(I/0访存优先)
 

 

猜你喜欢

转载自blog.csdn.net/m0_52043808/article/details/123889595