目录
程序查询方式
一.程序查询方式的流程
1.查询流程
2.程序流程
二.程序查询方式的接口电路
程序查询方式
一.程序查询方式的流程
1.查询流程
单个设备:
如果在传输过程当中只有一个内存和I/O之间数据传输,在执行程序的过程当中CPU会执行出来一个输入输出指令,由输入输出指令发出启动设备的命令,接收到命令以后,就开始进行数据准备,数据准备好以后,再传输给CPU,CPU在发出设备启动命令,看I/O接口当中的数据是否已经准备好,设备是否准备就绪,如过准备就绪进行数据交换,如果没有准备就绪那么就进行原地踏步一直检查I/O设备准备就绪 ;
在这个过程当中我们要用到三条指令:
测试指令:检查状态标记;
转移指令:若I/O设备为准备就绪,执行转移指令,转至测试指令继续测试I/O设备的状态;
传送指令:查看I/O设备的时候已经就绪时,执行传送指令;
多个设备
如果有多个设备同时进行数据的传输,那么我们就需要进行对有的设备进行一个优先级的排序,优先级高的先进行查询;
2.程序流程
二.程序查询方式的接口电路
以数据输入(把外部设备的数据输入到主机当中,输入到内存的某一个单元当中)为例:
cpu通过地址线给出外部设备的地址,设备选择电路将自己的设备地址或者是端口号和地址线上的地址进行比较,如果相同就是启动的就是连接在接口电路上的设备,SEL信号会有效,启动命令和启动命令都有效的前提下,我们对两个状态标记进行置位或着复位,到目前为止,CPU发出读命令,设备还没有开始工作,所以D表示为0,表示数据还没有准备好,标记B应该被置为1,表示设备开始工作,设备处于忙状态,B会去启动设备,B标记接收到信号以及我们的启动命令,设备开始工作,把数据准备好,并且数据通过他的数据线,将数据保存在DBR数据缓存寄存器当中,这个时候设备工作结束,设备会通过设备的状态线向接口电路送入设备工作结束信号,这个时候接口电路会修改接口中的两个标记,D为1表示数据已经准备好了,B为0表示设备工作完成空闲,在刚刚的这些过程当中,CPU一直在原地踏步不断地查询数据是否准备就绪,只要D不等于1他就会一直查,当D为1时CPU可以通过数据线将数据读入内存。