目录
一、程序查询方式
1.程序查询方式的特点
2.程序查询方式可分类
①独占查询
②定时查询
二、中断方式
1.中断I/O流程
2.例题
三、DMA方式
1.DMA控制器
2.特点
3. DMA的传送方式
①停止CPU
②周期挪用
③DMA和CPU交替访存
4.传送流程
①预处理
②数据传送
③后处理
四、DMA 方式和中断方式的区别
输入/输出系统实现主机与IO设备之间的数据传送,可以采用不同的控制方式,各种方式在代价、性能、解决问题的着重点等方面各不相同,常用的 IO 方式有程序查询、程序中断和 DMA
等,其中前两种方式更依赖于CPU 中程序指令的执行。
一、程序查询方式
信息交换的控制直接由CPU执行程序实现。程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行 IO 操作时,先读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传送还是等待。
1.程序查询方式的特点
① | CPU执行初始化程序,并预置传送参数 |
② | 向10接口发出命令字,启动1/0设备。 |
③ | 从外设接口读取其状态信息。 |
④ | CPU 周期或持续的查询设备状态,直到外设准备就绪。 |
⑤ | 传送一次数据。 |
⑥ | 修改地址和计数器参数。 |
⑦ | 判断传送是否结束,若未结束转第③步,直到计数器为 0。 |
2.程序查询方式可分类
①独占查询
一旦设备被启动,CPU 就一直持续査询接口状态,CPU花费100%的时间用于 I/O 操作,此时外设和 CPU 完全串行工作。
②定时查询
CPU周期性地查询接口状态,每次总是等到条件满足才进行一个数据的传送,传送完成后返回到用户程序。定时查询的时间间隔与设备的数据传输速率有关。
二、中断方式
1.中断I/O流程
CPU干的活 | 响应中断(中断隐指令)+中断服务程序 |
设备干的活 | 独立在一边工作,完成后以中断请求的方式通知CPU |
中断服务程序的最后一句就是中断返回(IRET),无需设备通过中断控制器来向CPU发送中断结束信号!
2.例题
假定CPU主频为50MHz,CPI为4。设备D采用异步串行通信方式向主机传送7位ASCII字符,通信规程中有1位奇校验位和1位停止位,从D接收启动命令到字符送入1/0端口需要0.5ms。请回答下列问题,要求说明理由。
1)每传送一个字符,在异步串行通信(计网知识)线上共需传输多少位?在设备D持续工作过程中,每秒钟最多可向1/0端口送入多少个字符?
2)设备D采用中断方式进行输入/输出,示意图如下:
1/0端口每收到一个字符申请一次中断,中断响应需10个时钟周期,中断服务程序共有20条指令,其中第15条指令启动D工作。若CPU需从D读取1000个字符,则完成这一任务所需时间大约是多少个时钟周期?CPU用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段CPU进行了哪些操作?
主频50MHz,时钟周期为1/50MHz=20ns
0.5ms对应时钟周期数为 0.5ms/20ns=25000传送1个字符需要的时钟周期数为 25000+10+15x4=25070传送1000个字符需要的时钟周期数为25070x1000=25070000
CPU用于该任务的时间大约为1000x(10+20x4)=9x10^4个时钟周期
中断隐指令:
1.关中断
2.保存断点(PC)
3.引出中断服务程序
三、DMA方式
DMA方式是一种完全由硬件进行成组信息传送的控制方式,它具有中断方式的优点,即在外设的数据准备阶段,CPU与外设并行的运行。DMA方式在内存和外设之间开辟了一条“直接数据通路”,信息传送不在经过CPU,因此不再需要保护,恢复CPU现场等繁琐操作。
这种方式适用于磁盘,显卡,声卡,网卡等高速设备大批量的数据传送,它的硬件开销比较大。在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理。
CPU向DMA控制器:
1.指明要输入还是输出;
2.要传送多少个数据;
3.数据在磁盘中的地址;
4.数据要放在主存中的地址。
1.DMA控制器
其功能如下:
1.接收外设发出的DMA请求,并向CPU发送总线请求。
2.CPU响应并发出总线响应信号,DMA接管总线控制权,进入DMA操作周期。
3.确定传送数据的主存起始地址及长度,并自动修改主存地址计数器和传送长度计数。
4.规定数据在主存和外设的传送方向,发出读/写等控制信号,执行数据传送操作。
5.向CPU报告DMA操作结束。
控制/状态逻辑 | 由控制和时序电路及状态标志组成,用于指定传输方向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步。 |
DMA请求触发器 | 每当I/O设备准备好数据后给出一个控制信号,使DMA请求触发器置位。 |
数据缓冲寄存器 | 用于暂时存储每次传送的数据。 |
传送长度计数器 | 简称WC,用来记录传送数据的长度,计数器溢出时,数据即传送完毕,自动发送中断信号。 |
主存地址计数器 | 简称AR,存放要交换数据的主存地址。 |
中断机构 | 每当一个数据块传送完毕后触发中断机构,向CPU提出中断请求。 |
注:在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。
2.特点
主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
DMA方式具有下列特点:
① | 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。 |
② | 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。 |
③ | 主存中要开辟专用缓冲区,及时供给和接收外设的数据。 |
④ | DMA传送速度快,CPU和外设并行工作,提高了系统效率。 |
⑤ | DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。 |
3. DMA的传送方式
主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
①停止CPU
优点 | 控制简单 |
缺点 | CPU 处于不工作状态或保持状态未充分发挥 CPU 对主存的利用率 |
②周期挪用
由于 IO 访存的优先级高于 CPU访存(IO 不立即访存就可能丢失数据),因此由 IO 设备挪用一个存取周期,传送完一个数据字后立即释放总线,如图7.8所示。它是一种 单字传送 方式(在整块的数据传送时,CPU依旧可以访存)。当 IO 设备有 DMA 请求时,会遇到 3种情况:
① 此时 CPU 不在访存,因此 O 的访存请求与CPU 未发生冲突;
②CPU正在访存,此时必须待存取周期结束后,CPU再将总线占有权让出;
③ ⅣO 和 CPU 同时请求访存,出现访存冲突,此时 CPU要暂时放弃总线占有权。
优点 | 即实现了I/O传送,又较好地发挥了主存与CPU的效率 |
缺点 | 每挪用一个存取周期,DMA接口都要申请,建立和归还总线控制权 |
③DMA和CPU交替访存
优点 | 不需要总线的使用权的申请,建立,归还过程 |
缺点 | 硬件逻辑复杂 |
4.传送流程
传送前 | ① | 接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。 |
② | CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。 | |
传送时 | ③ | 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。 |
④ | 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。 | |
传送后 | ⑤ | 向CPU报告DMA操作的结束。 |
①预处理
由 CPU 完成一些必要的准备工作。首先,由设备驱动程序初始化DMA 控制器中的有关寄存器、设置传送方向、测试并启动设备等。然后,CPU继续执行原程序,直到IO设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向 DMA 控制器发送 DMA 请求,再由DMA 控制器向CPU发出总线请求(这两个过程也可统称DMA请求),用以传输数据。
②数据传送
DMA 以数据块为基本传送单位。DMA占用总线后的数据输入/输出操作都是通过循环来实现的,这一循环也是由DMA控制器实现的,即数据传送阶段完全由DMA(硬件)控制。
③后处理
DMA 控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验数据(出错则转诊断程序)等后处理工作。
在DMA方式下,整个数据块的传送过程都不需要CPU参与,CPU只在最初的DMA 控制器初始化和最后的DMA结束处理时才介入,因此CPU用于IO的开销非常小。
四、DMA 方式和中断方式的区别
DMA 方式和中断方式的重要区别如下:
中断方式 | DMA 方式 | |
① | 中断方式是程序的切换,需要保护和恢复现场; | 而 DMA 方式不中断现行程序,无需保护现场,除了预处理和后处理,其他时候不占用任何CPU 资源。 |
② | 对中断请求的响应只能发生在每条指令执行结束时(执行周期后); | 而对DMA 请求的响应可以发生在任意一个机器周期结束时(取指、间址、执行周期后均可)。 |
③ | 中断传送过程需要 CPU 的千预; | 而 DMA 传送过程不需要 CPU 的干预,因此数据传输速率非常高,适合于高速外设的成组数据传送。 |
④ | DMA 请求的优先级高于中断请求。 | |
⑤ | 中断方式具有处理异常事件的能力 | ,而 DMA 方式仅局限于大批数据的传送。 |
⑥ | 从数据传送来看,中断方式靠程序传送 | ,DMA方式靠硬件传送。 |
⑦ | CPU和外设并行,传送和主程序串行 | CPU和外设并行,传送和主程序并行 |