程序查询方式的接口及程序中断

时间:2024-03-01 11:56:44

2019-05-08       20:01:04

接口:总线与外部设备之间的一个逻辑部件

程序查询方式:

适用于慢速或中速的外围设备。
数据在CPU和外围设备之间的传送完全靠计算机程序控制。
优点是CPU的操作和外围设备的操作能够同步,硬件结构比较简单。

缺点是程序进入查询循环时将白白浪费掉CPU很多时间。即使CPU采用定期地由主程序转向查询设备状态的子程序,进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。

结论:CPU主动查询,外设被动。类似于上门零售。
 

一:程序查询方式的接口分为以下部分:

1.设备选择器 :判别总线上呼叫的设备是不是本设备。,实际上是设备地址的译码器。

2.数据缓冲寄存器:输入操作时,用来存放从外部设备读出的数据,然后送往CPU;输出操作时,存放CPU送来的数据,以便于送给外部设备输出。

3.设备状态标志:接口中的触发器,如:“BUSY”,“READE”,“ERROR”等,用来标志设备的工作状态,以便于借口对外设动作进行监视。

二:程序查询输入/输出方式,动作如下:

1.先向I/O设备发出命令字,请求进行数据传送;

2.从I/O接口中读入状态字(READY=0,BUSY=1时可以进行数据传输)

3.查看数据交换是否可以进行。

4.假如没有准备就绪,则2.3步骤重复进行,一直到设备准备好为止,即READY=1.

5.CPU从I/O接口的数据缓存器输入数据,或者将CPU输出至接口的数据缓存器中,同时,READY=0.(注意:一定要先取走数据,READY才能复位)。

CPU先把指令中的设备地址通过设备地址送到地址总线上,然后启动命令,向设备发出命令字,请求进行数据传输,从接口中读入状态字,若READY为0,BUSY为1,则启动设备,同时输入数据到DBR(数据缓冲寄存器)中,则取走数据工作结束。使READY为1,BUSY为0,准备就绪后,使DBR中的数据由数据总线输出。

查询需要的硬件:cpu,接口,外设

                 软件:输入/输出状态程序(输入输出程序)

三:程序中断方式

中断:外围设备“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。

通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。
当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。(如:接电话)

结论:CPU被动,外设主动。效率大为提高。类似于开店零售。

中断的硬件 :CPU中设置中断机构   接口中设置中断逻辑。

中断的软件 :设置中断源对应的中断服务子程序。

中断处理中需要注意的问题:

1.CPU只有在当前一条指令执行完毕后,即转入公操作时才受理设备的中断请求。

2.为了在中断服务程序执行完毕以后,能够正确地返回到主程序被中断的断点(PC内容)位置,要将PC和PSW内容压栈保护。

 

3.CPU响应中断后,正要去执行中断服务程序时,可能有另一个新的中断源向它发出中断请求,在CPU必须有一个“中断屏蔽”触发器。

4.中断处理过程是由硬件和软件结合来完成的。

CPU有决定是否受理中断请求的机构。

主要是:

中断请求IR=INTERRUPT  REQUEST     IR=1,表示设备发出了中断请求。
中断屏蔽IM=INTERRUPT  MASK            IM=0,CPU可以受理外界的中断请求。

接口方面有决定是否向CPU发出中断请求的机构。

主要是: 

准备就绪标志RD=READY

RD=1,数据放入DBR中

RD=0,DBR中无数据

允许中断触发器EI=ENABLE INTERRPUT:

EI=1,接口可以向CPU发出中断请求

EI=0,不能向CPU发出中断请求

工作原理:

1、由程序启动外设,使得RD=0,BS=1
2、接口向外设发启动命令
3、外设把数据放到DBR中
4、置1 READY
5、若EI=1,发中断请求
6、将中断请求打入IR
7、若IM=0,发中断响应
8、取得中断向量
9、转中断服务,输入数据
10、将RD和BS复位。
<完>

 

 

小结:第一次写关于计算机组成原理的blog,今天写的内容主要是老师上课所讲的内容,关于程序查询以及程序中断的相关知识。不久前关注了一个公众号(码农翻身),其中涉及到相当多的计算机行业的内容,看了一些CPU相关知识后,对这部分产生了浓厚的兴趣,结合课本与老师PPT,对这部分内容有了更深的理解,在写的过程中也受益匪浅,与以前的知识相结合,逐渐进步,希望以后更加努力,c语言系列持续更新!