2.处理器与设备间数据交换方式
来源:互联网 发布:玻璃幕墙设计软件 编辑:程序博客网 时间:2024/06/08 11:13
处理器与外设之间传输数据的控制方式通常有3种:查询方式、中断方式和直接内存存取(DMA)方式。
21.查询方式
设备驱动程序通过设备的I/O端口空间,以及存储器空间完成数据的交换。例如,网卡一般将自己的内部寄存器映射为设备的I/O端口,而显示卡则利用大量的 存储器空间作为视频信息的存储空间。利用这些地址空间,驱动程序可以向外设发送指定的操作指令。通常来讲,由于外设的操作耗时较长,因此,当处理器实际执 行了操作指令之后,驱动程序可采用查询方式等待外设完成操作。
2.2.中断方式
查询方式白白浪费了大量的处理器时间,而中断方式才是多任务操作系统中最有效利用处理器的方式。当CPU进行主程序操作时,外设的数据已存入端口的数据输 入寄存器,或端口的数据输出寄存器已空,此时由外设通过接口电路向CPU发出中断请求信号。CPU在满足一定条件下,暂停执行当前正在执行的主程序,转入 执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后,CPU再返回并继续执行原来被中断的主程序。这样,CPU就避免了把大量时间耗 费在等待、查询外设状态的操作上,使其工作效率得以大大提高。中断方式的原理示意图如图6.1所示。
2.3.直接访问内存(DMA)方式
利用中断,系统和设备之间可以通过设备驱动程序传送数据,但是,当传送的数据量很大时,因为中断处理上的延迟,利用中断方式的效率会大大降低。而直接内存 访问(DMA)可以解决这一问题。DMA可允许设备和系统内存间在没有处理器参与的情况下传输大量数据。设备驱动程序在利用DMA之前,需要选择DMA通 道并定义相关寄存器,以及数据的传输方向,即读取或写入,然后将设备设定为利用该DMA通道传输数据。设备完成设置之后,可以立即利用该DMA通道在设备 和系统的内存之间传输数据,传输完毕后产生中断以便通知驱动程序进行后续处理。在利用DMA进行数据传输的同时,处理器仍然可以继续执行指令。
- 2.处理器与设备间数据交换方式
- 内核空间与用户空间数据交换的方式之一 --ioctl(通过字符设备演示)
- 数据交换方式
- 数据交换方式
- linux下用户空间与内核空间数据交换方式
- 用户空间与内核空间数据交换的方式(转)
- 用户与内核空间数据交换的方式(1)-debugfs
- 用户与内核空间数据交换的方式(2)-procfs
- 用户与内核空间数据交换的方式(3)-seq_file
- 用户与内核空间数据交换的方式(4)-relayfs
- 用户与内核空间数据交换的方式(7)-sysctl
- 用户与内核空间数据交换的方式(8)-syscall
- 用户与内核空间数据交换的方式(9)-netlink
- 用户空间与内核空间数据交换的方式------seq_file
- 用户与内核空间数据交换的方式(1)-debugfs
- 用户与内核空间数据交换的方式(2)-procfs
- 用户与内核空间数据交换的方式(3)-seq_file
- 用户与内核空间数据交换的方式(4)-relayfs
- 高斯滤波器
- 微博随便看看
- leetcode--Search for a Range
- Android Manifest文件配置
- NYOJ 835 吉他练习
- 2.处理器与设备间数据交换方式
- UIManager的界面问题
- Android.mk 用法介绍
- UIViewController的生命周期及iOS程序执行顺序
- BZOJ 1009: [HNOI2008]GT考试 AC自动机+矩阵快速幂
- android:SharedPreferences(参数)
- 3.驱动程序结构
- Android面试题整理(selfmade)——坚持每天回答一个
- iOS获取手机里的照片