主要任务
接收上层软件发来的抽象I/O要求,再把它转换为具体要求后,发送给设备控制器,启动设备去执行;反之,它也将由设备控制器发来的信号传送给上层软件
功能
1、接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列
2、检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式
3、发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待
4、及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理
特点
属于低级的系统例程
与一般应用程序及系统程序的区别
1、驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序
2、驱动程序与设备控制器以及I/O设备的硬件特性紧密相关
3、驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式
4、由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写
5、驱动程序应允许可重入
对I/O设备的控制方式
使用轮询的可编程I/O方式
CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中饭,造成了CPU的极大浪费
使用中断的可编程I/O方式
CPU和I/O设备并行操作
以字节为单位进行I/O
直接存储器方式
特点
1、数据传输的基本单位是数据块
2、所传送的数据是从设备直接送入内存的,或者相反
3、仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
DMA控制器的组成
主机与DMA控制器的接口
DMA控制器与块设备的接口
I/O控制逻辑
寄存器
命令/状态寄存器CR
内存地址寄存器MAR
数据寄存器DR
数据计数器DC
工作过程
I/O通道控制方式
把对一个数据块的读写为单位的干预,减少为对一组数据块的读写及有关控制和管理为单位的干预
实现CPU、通道和I/O设备三者的并行操作
通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的
通道指令:操作码、内存地址、计数、通道程序结束位P、记录结束标志R