《I/O设备与设备驱动程序》

I/O设备主要由两重要部分组成:
1.设备向操作系统展现的硬件接口
这些接口主要是用来与设备进行交互用到
可以看到接口(interface)中包含3个寄存器:
状态寄存器:读取并查看设备的当前状态
命令寄存器:用于通知设备执行某个具体任务
数据寄存器:数据传输给设备,或者从设备读取数据
当有了这些寄存器后,我们的CPU便可以与设备进行信息(数据)上的交互
想一下,假设CPU是我们人,设备是电脑
当我们人在终端上写命令/数据,电脑通过存储器将命令/数据保存下来
(接口的行为)
电脑通过编译器,操作系统等将我们输入的命令/数据,翻译为了电脑能够执行的
自己懂的命令,然后执行
(设备驱动程序的行为)
《设备驱动程序》
再回到CPU 与 设备这个过程中来:


所以,所谓的设备驱动程序其实就是 CPU(操作系统) 与 设备 之间沟通的桥梁
通过设备驱动程序,通过接口,按照两者交互的协议于是便可使用我们插入电脑的设备
普遍的交互如下:
While (STATUS==BUSY)
;//wait until device is not busy
Write data to Data Register
Write command to Command Register
Doing and executes the command
如果对这个交互感到不熟悉,想一下你在写汇编代码时是如何进行系统调用的
2.内部结构

其实每一个设备都可以是一个完整的计算机
它们可以有内存,CPU,甚至操作系统,以及更多的芯片
比如显示器
其就是一个设备
这个设备中有显卡GPU
这个GPU就是一个CPU,专门用来处理图像计算