I/O控制方式
2013-10-21 20:18
239 查看
I/O控制方式
在计算机系统中,CPU管理外围设备也有几种类似的方式:1 程序查询方式
程序查询方式是早期计算机中使用的一种方式。数据在CPU和外围设备之间的传送完全靠计算机程序控制,查询方式的优点是CPU的操作和外围设备的操作能够同步,而且硬件结构比较简单。但问题是,外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。这种情况同上述例子中第一种方法相仿,CPU此时只能等待,不能处理其他业务。即使CPU采用定期地由主程序转向查询设备状态的子程序进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。因此当前除单片机外,很少使用程序查询方式。
2 程序中断方式
中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。这种方式和我们前述例子的第二种方法相类似。可以看出,它节省了CPU宝贵的时间,是管理I/O操作的一个比较有效的方法。中断方式一般适用于随机出现的服务,并且一旦提出要求,应立即进行。同程序查询方式相比,硬件结构相对复杂一些,服务开销时间较大。
3 直接内存访问(DMA)方式
用中断方式交换数据时,每处理一次I/O交换,约需几十微秒到几百微秒。对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢。直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。这种方式既考虑到中断响应,同时又要节约中断开销。此时,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。这种方式和前述例子的第三种方法相仿,主要优点是数据传送速度很高,传送速率仅受到内存访问时间的限制。与中断方式相比,需要更多的硬件。DMA方式适用于内存和高速外围设备之间大批数据交换的场合。
4 通道方式
DMA方式的出现已经减轻了CPU对I/O操作的控制,使得CPU的效率有显著的提高,而通道的出现则进一步提高了CPU的效率。这是因为,CPU将部分权力下放给通道。通道是一个具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种方式与前述例子的第四种方法相仿,大大提高了CPU的工作效率。然而这种提高CPU效率的办法是以花费更多硬件为代价的。
5 外围处理机方式
外围处理机(PPU)方式是通道方式的进一步发展。由于PPU基本上独立于主机工作,它的结构更接近一般处理机,甚至就是微小型计算机。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务。从某种意义上说,这种系统已变成分布式的多机系统。
综上所述,程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式和PPU方式适用于数据传输率比较高的设备。目前,单片机和微型机中多采用程序查询方式、程序中断方式和DMA方式。通道方式和PPU方式大都用在中、大型计算机中。
相关文章推荐
- 类的成员函数参数定义为类的对象(匿名对象)
- oracle创建表空间 删除表空间 创建用户 删除用户相关SQL
- 在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
- Google云计算三大核心技术之HBase
- 简单测试Newtonsoft.json JObject内存占用分配
- Android 代码片段---获取手机通讯录列表
- 自定义菜单的使用方法
- 浮点数的运算原理--IEEE 754
- 开篇---Linux TCP/IP协议源码分析
- HDU--杭电--1180--诡异的楼梯--广搜--蛋疼的流氓讲师今天弄完了这楼梯,想说的是理清思路就好,这题原来这么水
- ExtJS使用ColumnModel创建表格和使用ArrayReader解析数组
- Linux下Python获取IP地址
- 性能测试需求分析
- 学计算机不知道这些网站怎么行
- java 命令行中显示进度信息
- vs2008使用hashmap
- GCD ios多线程 runloop
- hibernate用得到的下载地址
- 笔试小题
- 设备控制接口ioctl详解