作为输入输出系统中最简单的一种传输方式。通过上节IO接口的基本组成,和程序查询接口的基本功能攻来来设计其接口电路。其实学习起来并不难,我们在这一节主要解决两个问题。
需要解决
程序查询方式的流程
首先我们来看下图,下图是多个外部设备进行与主机的交互:
图上的意思大概是这样的:多个设备同时发出请求,首先按照设备的优先级进行排序(图中是从1…N)。
然后先对第一个设备进行状态检查,若第一台机器为“就绪”,则对其进行处理。否则,对下一台设备进行状态检测。
若第一台设备不满足,跳转到第二台。而第二台设备也不满足,这是主机会重新跳转检查第一台设备的状态。
我们以保存寄存器的内容为例子,做出一个完成的流程图:
图中有两个点需要解释一下:
- 设置计数值:为了确保数据能够以规定的大小转递。比如有N个数据,而数据是一个一个进行传递的。我可以设置计数值为N,每次传递一个数据,我的计数值就-1,直到0传递停止。
- 设置主存缓冲区首地址:我要传递的数据从哪里开始。
程序查询方式的接口电路
以输入为例,设计一个接口电路,如图:
这里比较绕,有点向走迷宫,不过按照图上的步骤理解起来比较方便,我也来给大家历一遍。
准备阶段:我需要使用一个外部设备来进行输入。主机通过地址线给设备选择电路发送一个设备码,设备选择电路会和已有设备进行匹配。
1.主机发出命令:这时候“&门”左边的两条线路都通,使的右边的一条有电流,导线连接到两个状态设置器(D,B),这时候D位0,表示数据还没准备好;B为1,表示设备启动*(图上的表示相反不是错误,它是所有步骤都完成的结果状态。)*
2.设备开始启动
3.数据通过输入的数据线,把他保存到DBR(数据缓存),这时设备工作结束
4.设备工作结束,通过状态线将设备状态返回到B;B的值改为0(设备结束了),同时D被改为1(数据准备好了).
5.准备就绪信号D为1被送出,D变成1之前,CPU都在反复查询D的值是否为1,只要不等于1,就一直查。 D等于1也说明数据已经放入DBR中。
6.CPU最后通过数据线把数据从DBR中读入。
流程走一遍,其实还是很简单的叭!
创作不易,转载可私信。未经同意禁止转载!!!