设备驱动程序是I/O系统的高层与设备控制器之间的通信程序,其主要任务:
1.接收上层软件发来的抽象I/O要求,如read、write等命令;
2.再把它转化为具体要求,发送给设备控制器,启动设备去执行。
3.反方向,它也将由设备控制器发来的信号,传送给上层软件。
I/O控制方式:
程序I/O方式
中断驱动I/O方式
直接存储器访问方式【DMA】
I/O通道控制方式
宗旨:减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。
直接存储器访问方式【DMA】
特点:
1.数据传输的基本单位是数据块;
2.所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。
3.CPU干预进一步减少:仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见DMA方式又是成百倍的减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
DMA控制器由三部分组成:
1.主机与DMA控制器的接口;
2.DMA控制器与块设备的接口;
3.I/O控制逻辑。
DMA的工作过程:【附图】
1.CPU先向磁盘控制器发送一条读命令。
2.该命令被送到命令寄存器CR中。
3.同时发送数据读入到内存的起始地址,该地址被送入MAR中;
4.要读数据的字数则送入数据计数器DC中;
5.将磁盘中的数据原地址直接送入DMA控制器的I/O控制逻辑上,按设备状态启动磁头到相应位置