数据寄存器:存放主机要输出到外设的数据或者外设要输入到主机的数据
控制寄存器:存储某个外设需要做啥动作
状态寄存器:外设的状态
CPU首先通过控制总线向IO接口发出读的命令,同时可以通过地址总线指明要读入的是哪个设备此时还可以通过地址总线指明要从该设备读入的数据应该放在哪个寄存器
此时CPU需要不断查询,不能做其他事情
此时CP去做别的事,等输入完后再根据中断信号来IO接口取走数据寄存器里的数据
此时两种IO控制方式对应的IO输入后的数据流为
CPU在每条指令执行周期结束时会检查有无中断请求到来
此时的中断服务程序就是把IO接口的数据寄存器传输到CPU内部
中断处理完后再继续执行之前执行的程序
DMA接口也是一种IO接口,只不过它控制的外部设备比较特殊而已
DMA控制器会每次从磁盘中读取一个字的数据然后存到主存相应位置,当完成一整块数据操作后,DMA控制器才会向CPU发出一次中断请求,表示你交给我的工作已经完成
此时设备准备好一个字到DMA控制器后,DMA控制器会发出一个DMA请求。DMA控制器占用一个存取周期往内存写入一个字数据,此时如果CPU也要访问主存,得等DMA控制器访问完主存才行
此时相比程序中断方式每传入一个字得发送中断请求处理中断处理程序而言DMA控制方式只需发送DMA请求然后花费一个存取周期即可,并且DMA发送中断请求是在一整块数据都传完后发送
此时由通道管理各种IO设备
比如此时IO设备的任务就是通过IO设备读入数据,那么就通过通道控制最终将IO设备输入的数据传输到内存中某个位置去
主机如何通过IO接口控制IO设备即IO控制方式
CPU需要执行IO指令才会去产生相应的IO操作,如通道开始工作执行通道指令
设备的驱动程序即让CPU知道该设备的IO指令是啥吧