心得:知道了用软件来控制硬件,实际上只是利用输入输出指令同外围设备进行输入输出的处理。终端处理是根据需要来使用的选项功能,DMA则直接交给对应的外围设备即可
知识点:
1、应用与硬件
硬件的控制是由Windows全权负责的,不过Windows提供了通过应用来间接控制硬件的方法。利用操作系统提供的系统调用功能就可以实现对硬件的控制。在Windows中,系统调用称为API。各API就是应用调用的函数,这些函数的实体被储存在DLL文件中
2、IN指令和OUT指令
IN指令通过指定端口号的端口输入数据,并将其存储在CPU内部的寄存器中。OUT指令则是把CPU寄存器中存储的数据输出到指定端口号的端口。各连接器的内部都连接有用来交换计算机主机同外围设备之间电流特性的IC。这些IC统称为IO控制器。I/O是Input/Output的缩写,IO控制器中有用于临时保存输入输出数据的内存,这个内存就是端口。各端口之间通过端口号进行区分,端口号也称为I/O地址。IN指令和OUT指令在端口号指定的端口和CPU之间进行数据的输入输出
3、为了保护系统安全,现在的Windows禁止了应用直接控制硬件的方式
4、中断请求
IRQ是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制,该机制称为中断处理.从中断处理开始到请求中断的程序(中断处理程序)运行结束之前,被中断的程序(主程序)的处理是停止的.实施中断请求的是连接外围设备的I/O控制器,负责实施中断处理程序的是CPU。为了进行区分,外围设备的中断请求会使用不同于I/O端口的其他编号,该编号称为中断编号。中断控制器会把从多个外围设备发出的中断请求有序的传递给CPU
5、实时处理
实际上大部分的外围设备都会频繁的发出中断请求,其原因就是为了实时处理从外围设备输入的数据。虽然不利用中断也可以从外围设备输入数据。但那种情况下,主程序就必须要持续不断的检测外围设备是否有数据输入。按照顺序调查多个外围设备的状态称为轮询
6、DMA机制
DMA是指在不通过CPU的情况下,外围设备直接和主内存进行数据传送。通过利用DMA大量数据可以在短时间内传送到主内存
7、······