介绍
I/O通道是DMA的进一步发展,进一步减少CPU的干预,DMA是每次对一个数据块进行操作,通道是一次对一组数据块进行操作。
通道实质是简单的处理器。拥有命令寄存器,地址寄存器,有通道程序,指令单一,但是没有专有的内存
执行过程
CPU中
1.用户进程提出I/O请求,唤醒设备驱动进程(参考 其他文章,我后续会写专门文章介绍)
2.设备驱动进程根据请求参数组织和生成通道程序(是自动生成,不是人工写的)
3.通道程序起始地址送入通道地址寄存器CAW
4.启动通道,开始步骤6
5.设备驱动程序阻塞,CPU调度执行其他进程。
通道中
6.根据CAW值从内存提取一条通道指令送入通道命令寄存器CCW,CAW加一指向下一条通道指令。
7.执行CCW指向的指令执行。
8.若不是最后一条通道指令,返回6继续执行。若是的话发出中断请求。
通道程序与通道指令
通道程序是由一组通道指令构成
下面举出一个简单通道程序
操作码 | 通道程序结束标志 | 记录结束标志 | 数据读写字节计数 | 内存地址 |
---|---|---|---|---|
WRITE | 0 | 0 | 80 | 2680 |
WRITE | 0 | 0 | 140 | 1034 |
WRITE | 1 | 1 | 250 | 720 |
该通道程序由三条通道指令构成,将数据写到磁盘上
操作码WRITE表示写操作
通道结束标志,0表示不是最后一条,1表示是最后一条通道指令
记录结束标志,前两个为0,后一个为1,表示三条指令操作的数据写到一个
记录上
内存地址,该条指令要操作的内存首址
要结合上面执行过程进行理解。
有问题留言提问