Windows提供了通过应用来间接控制硬件的方法,利用操作系统提供的系统调,用功能就可以实现对硬件的控制,在Windows中,系统调用称为API,各API就是应用调用的函数。
IN指令通过指定端口号的端口输人数据,并将其存储在CPU内部的寄存器中。OUT指令则是把CPU寄存器中存储的数据,输出到指定端口号的端口。
在实现I/O控制器功能的IC中,会有多个端口。由于计算机中连接着很多外围设备,所以就会有多个I/O控制器,当然也会有多个端口。一个I/O控制器既可以控制一个外围设备,也可以控制多个外围设备。各端口之间通过端口号进行区分。端口号也称为I/O地址。 IN 指令和 OUT指令在端口号指定的端口和CPU之间进行数据的输入输出。这和通过内存地址来进行主内存的读写是一样的道理
IRQ是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制。该机制称为中断处理。中断处理在硬件控制中担当着重要角色。因为如果没有中断处理,就有可能出现处理无法顺畅进行的情况。从中断处理开始到请求中断的程序(中断处理程序)运行结束之前,被中断的程序(主程序)的处理是停止的。
假如同时有多个外围设备进行中断请求的话,CPU也会为难。为此,我们可以在I/O控制器和CPU中间加入名为中断控制器的IC来进行缓冲。中断控制器会把从多个外围设备发出的中断请求有序地传递给CPU。
由于外围设备有很多个,因此就有必要按照顺序来调查。按照顺序调查多个外围设备的状态称为轮询。
DMA是指在不通过CPU的情况下,外围设备直接和主内存进行数据传送。