Linux外部设备与处理器的联络方式
发布时间:2009/2/18 0:00:00 访问次数:1245
为了进行有效的信息传递,计算机处理器与外部设备之间必须要有一个有效的联络方式.例如,磁盘设各每次接收一个命令“移动读磁头到软盘的第42扇区”,为了知道这个命令是否完成,处理器有两种选择:一是处理器通过设备驱动程序不断地检测这个设各的状态寄存器; 二是把联络的权力交给设各,即当外部设各完成命令时向处理器发出一个中断请求信号。
检测一个设各就意味着处理器通过设各驱动程序频繁地读取状态寄存器,直到状态寄存 器值的变化显示该设各已经完成命令。如果一个设各驱动程序是内核的一部分,那么上述行为将是灾难性的,因为内核在设备完成命令的这个期间其他什么事情也不能做了。也就是说,其他进程全部会被阻塞而不能运行。
显然,更有效的方法是使用中断。即当某个设各需要被处理时,该设各会向处理器发出一个中断请求,处理器响应这个中断之后,会在中断服务程序中对这个请求进行正确的处理。例如,每当一个ethernet网卡控制器从网络上接收一个ethernet数据包时,网卡控制器会发出 一个中断请求;当系统接收到这个请求之后,就会在中断服务程序中来处理这个数据包。
综上所述,处理器与外部设各之间的工作方式为:处理器通过向外部设各控制寄存器发送命令的方式使外部设备进行工作;当外部设备工作完毕需要与处理器传递数据时,由外部设备向处理器发出中断请求,并在中断服务程序中完成数据的传递及其他相关工作。
欢迎转载,信息来自维库电子市场网(www.dzsc.com)
为了进行有效的信息传递,计算机处理器与外部设备之间必须要有一个有效的联络方式.例如,磁盘设各每次接收一个命令“移动读磁头到软盘的第42扇区”,为了知道这个命令是否完成,处理器有两种选择:一是处理器通过设备驱动程序不断地检测这个设各的状态寄存器; 二是把联络的权力交给设各,即当外部设各完成命令时向处理器发出一个中断请求信号。
检测一个设各就意味着处理器通过设各驱动程序频繁地读取状态寄存器,直到状态寄存 器值的变化显示该设各已经完成命令。如果一个设各驱动程序是内核的一部分,那么上述行为将是灾难性的,因为内核在设备完成命令的这个期间其他什么事情也不能做了。也就是说,其他进程全部会被阻塞而不能运行。
显然,更有效的方法是使用中断。即当某个设各需要被处理时,该设各会向处理器发出一个中断请求,处理器响应这个中断之后,会在中断服务程序中对这个请求进行正确的处理。例如,每当一个ethernet网卡控制器从网络上接收一个ethernet数据包时,网卡控制器会发出 一个中断请求;当系统接收到这个请求之后,就会在中断服务程序中来处理这个数据包。
综上所述,处理器与外部设各之间的工作方式为:处理器通过向外部设各控制寄存器发送命令的方式使外部设备进行工作;当外部设备工作完毕需要与处理器传递数据时,由外部设备向处理器发出中断请求,并在中断服务程序中完成数据的传递及其他相关工作。
欢迎转载,信息来自维库电子市场网(www.dzsc.com)
上一篇:Linux外部设备的硬件接口
热门点击
- Linux设备驱动程序的函数跳转表
- PIE中断向量的映射方式
- Linux系统调用例程system_call
- PIE模块级中断
- 什么是Linux内核模块
- Linux系统调用接口、系统调用例程和内核服
- ARM复位原理
- Linux系统调用接口、系统调用例程和内核服
- Linux字符设备驱动程序的注册
- Linux外部设备的基本概念
推荐技术资料
- DFRobot—玩的就是
- 如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]