首页 > 编程知识 正文

计算机组成原理输入输出系统题目,计算机组成原理输入输出系统答案

时间:2023-05-03 06:36:18 阅读:233614 作者:2705

I/O接口 概述 为什么要设置接口 实现设备的选择实现数据缓冲达到速度匹配实现数据串/并格式转换实现电平转换传送控制命令反应设备的状态(“忙”、“就绪”、“中断请求”) 接口的功能和组成 1、总线连接方式的I/O接口电路 设备选择线:设备选择线是用来传送设备码的,他的根数取决于I/O指令中设备码的位数。数据线:数据线是I/O设备与主机之间数据代码的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向的,也可以是单向的。命令线:主要是用来传输CPU向设备发出的各种信号。例如,启动、清除、屏蔽、读、写等。他是一组单向总线,其根数与命令信号多少有关。状态线:是将I/O设备的状态向主机报告的信号线,例如,设备是否准备就绪,是否向CPU发送中断请求等。他也是一组单向总线。
2、接口和功能组成 功能组成选地址设备选择电路传送命令功能命令寄存器、命令译码器传送数据功能数据缓冲寄存器反应设备状态的功能设备状态标记D:完成触发器,D=1时表示设备工作完成B:工作触发器,B=1是表示设备正在工作INTR:中断请求触发器MASK:屏蔽触发器 3、I/O接口的基本组成

程序查询方式 一、程序查询流程 1.查询流程 单个设备

在CPU发出设备启动命令之后,就开始检查设备状态标记,查看I/O接口当中设备是否已经准备好了。如果已经准备好了,就进行数据的交换,如果没有准备就绪,CPU将会进入踏步状态。直到设备准备好了为止。测试指令:用来查询I/O设备是否准备就绪。传送指令:当I/O设备已经准备就绪时,执行传送指令。转移指令:如果I/O设备未准备就绪,执行转移指令,转至测试指令,继续测试I/O设备的状态。 多个设备

如果是多个设备都要通过程序查询方式和主存进行数据交换,那么我们会根据设备的优先级进行排序,优先级越高的设备被查询到的时间就越早。正如上图所示,设备1的优先级最高。CPU会先检查设备1的状态标记,如果设备1已经准备就绪就处理设备1和内存之间的数据交换。如果当前设备没有准备就绪,那么CPU就会检查次优先级的设备,以此类推。 2.程序流程 按照我们上面的查询流程分析,我们就可以编写一个程序来实现程序查询的过程。
首先保存寄存器的内容,因为程序查询的方式要完成内存和外部设备之间的数据输入输出,需要借助CPU当中的某一个寄存器,对数据进行暂存,因此如果是寄存器当中的数据是有用的我们就需要对寄存器当中的数据进行暂存。我们可以把它写入到某一个内存单元,把它压入堆栈当中,或者是把它放到CPU当中的闲置的寄存器当中。设置计数值,是为了控制传输的数据量,标识了这一次外部设备和主存之间进行数据传输,到底要传送多少数据。那么计数值的设置有两种方式:第一种,如果我们要传送N个字,我们可以把计数值设置为N,每次减一,直到计数值为0为止;第二种,我们可以把计数值设置为负N,并且负数我们用补码来表示,每传输一个字我们会给计数器加一,直到计数器当中的值发生溢出计数器当中的值变成0位置。设置主存缓冲区的首地址,为了完成数据交换,我们必须知道内存当中块的起始地址是什么。也就是说我们写入或者是读取数据就从主存缓冲区的首地址开始。启动外部设备,让外部设备进行准备和进行数据传输。准备好?,因为是程序查询的方式,这个时候CPU开始查询I/O接口的状态,查看设备是否已经准备好,如果设备没有准备好就通过原地踏步的方式不停地检查,直到设备状态标志表明设备已经准备就绪为止。对于输入而言,准备就绪意味着接口电路中的数据缓冲寄存器已经装满欲传送的数据,成为输入缓冲满,CPU即可取走数据;对于输出而言,准备就意味着接口电路中的数据已被设备取走,故称为输出缓冲空,这样CPU可以再次将数据送到接口,设备可再次从接口接收数据。传送一个数据,在CPU检测到外部设备已经准备好之后,主存和外部设备之间就会传送一个字。于是我们前面设置的一些初始值都要发生改变。修改主存地址,将主存地址加一或者是减一,为传送下一个数据做准备。修改计数值,为了表明还有多少数据需要传输,我们需要修改计数值。至于计数值是加一还是减一,需要看我们计数值是如何设置的。传送完?,查看这批数据是否已经传送完。如果没有传送完,CPU需要再次启动外设,循环整个过程,直到数据传输完,我们结束整个数据传输过程。我们需要注意的是,程序员编写一个程序,用程序查询的这种方式来完成数据的输入输出,在他的应用程序当中就需要把上面设个程序流程嵌入进去,由这个程序完成数据的输入输出操作。 二、程序查询方式的接口电路


首先介绍一下各个部分:

设备选择电路:用来确认一个设备是否就是参加这次传输的设备。SEL:设备选择信号,实际上是整个I/O接口电路的选择信号,只有设个信号是有效的,整个电路才会工作。启动命令:在启动命令和SEL信号都有效的情况下,我们的I/O接口才会进行工作。DBR:数据缓冲寄存器,DBR是在I/O接口当中的缓冲寄存器。D:完成触发器,D=1时表示设备工作完成B:工作触发器,B=1是表示设备正在工作

下面我们以数据输入为例:

首先CPU通过地址线给出外部设备的地址,设备选择电路把自己的设备地址或者是端口号和地址线上的地址进行比较,如果结果相同,就说明这一次这一次启动的设备是连接在这个I/O接口上的设备。SEL信号有效。在启动命令和SEL信号都有效的情况下,我们对两个状态标记进行修改(置位或者是复位),一位是数据输入,那么CPU发出读命令,此时的设备并没有进行工作,因此B=1(设备开始工作),D=0(数据还没有准备好)。通过B=1,就会启动设备,设备就会将数据准备好,通过输入数据线(③),将数据保存到DBR,这个时候设备的工作完成。设备结束的时候,会通过设备的状态线向接口电路送入设备工作结束信号(④),这个信号会修改D和B两个标记,D=1(表示数据已经准备好),B=0(设备停止工作)。在我们上面整个过程直到准备就绪信号(⑤)被送出之前CPU都在原地踏步的查询D是否等于1,在查询到D=1之后就说明数据已经被送入到DBR当中了。CPU可以进行数据传输了,CPU就会通过数据线将数据进行读入。 程序中断方式 一、中断的概念 计算机在执行程序的过程当中,出现异常情况或者是特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后返回到现行程序的间断处,继续执行原来程序,这就是“中断”。
二、中断的产生

三、中断方式的接口电路 1.配置中断请求触发器和中断屏蔽触发器

INTR:中断请求触发器,如果输出端为1表示有中断请求,通过中断请求线将中断请求传递给CPU,告诉CPU有中断请求。MASK:屏蔽触发器,当Q端输出为1是表示中断被屏蔽,否则表示开放,中断不会被屏蔽掉。D:完成触发器。只有在数据已经准备好的时候(要进行数据传输)才会进行,此时设备状态标记D=1。在指令周期结束之前,CPU会发来中断查询信号(一种时钟脉冲信号),在时钟脉冲信号的作用下INTR才会被输出。 2.排队器

下面我们介绍硬件实现的排队器,可以将排队电路放在CPU内或者是接口电路当中(链式排队器)。

从设备的优先级来说设备1、2、3、4优先级按照降序排列。假设INTRi=1(表示有请求),那么他的非就是0,那么i后面所有的INTP’=0,i以及i前面的INTP’=1。为了筛选出当前发出中断请求信号当中优先级最高的那个信号,我们将INTP’和INTR进行与操作,所有的INTP只有一个是1(就是中断请求源对应的INTR),就会筛选出当前发出请求信号当中优先级最高的那个中断请求源。 3.中断向量地址形成部件 通过上面我们已经可以筛选出CPU将会相应哪一个中断请求,那么下一步就是如何找到中断服务程序的入口地址。中断服务程序:处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。下面我们讨论如何用硬件产生中断服务程序的入口地址(硬件向量法,由硬件产生向量地址,再由向量地址找到入口地址):
排队器输入:也就是我们上面的INTPi其中只有一位是高电平,其余全是低电平。向量地址:可以理解为能够跳转到中断服务程序的指令的存储单元的地址。实际上中断向量地址形成部件就是一个设备编码器。 4.程序中断方式接口电路基本组成

四、I/O中断处理过程 1.CPU响应中断的条件和时间

(1)条件:

CPU当中的允许中断触发器EINT=1用开中断指令,将EINT设置为1用关中断指令,将EINT设置为0或者是硬件的自动恢复
(2)时间当D=1(随机)且MASK=0时在每条指令执行的结束阶段,CPU会进行查询是否有中断请求 2.I/O中断处理过程

首先CPU通过地址线给出外部设备的地址,设备选择电路把自己的设备地址或者是端口号和地址线上的地址进行比较,如果结果相同,就说明这一次这一次启动的设备是连接在这个I/O接口上的设备。SEL信号有效。在启动命令和SEL信号都有效的情况下,我们对两个状态标记进行修改(置位或者是复位),一位是数据输入,那么CPU发出读命令,此时的设备并没有进行工作,因此B=1(设备开始工作),D=0(数据还没有准备好)。通过B=1,就会启动设备,设备就会将数据准备好,通过输入数据线(③),将数据保存到DBR,这个时候设备的工作完成。设备结束的时候,会通过设备的状态线向接口电路送入设备工作结束信号(④),这个信号会修改D和B两个标记,D=1(表示数据已经准备好),B=0(设备停止工作)。如果接口提出的中断请求没有被屏蔽,也就是MASK=0,那么MASK的非和D的信号就会送到INTR触发器的出入端,在CPU执行指令的结束阶段,会发出中断查询信号,中断查询信号会把INTR当中的信号执为1,同时启动排队器进行排队。排队器的输出信号只有一位是1,其余全部是0,这个时候在CPU的中断响应信号的作用下就会形成向量地址,向量地址会经过数据线传递给CPU,CPU利用这个地址会找到中断服务程序的入口地址,通过中断服务程序把数据取走。 五、中断服务程序的流程 1.中断服务程序的流程 保护现场:程序断点的保护(中断隐指令完成),寄存器内容的保护(进栈指令)。中断服务:对不同的I/O设备具有不同内容的设备服务。恢复现场:出栈指令中断返回:返回到原程序的断点处。 2.单中断和多重中断 单中断:不允许中断现行的中断服务程序多重中断:允许更高级别的中断源,中断现行的中断服务程序。 3.单中断和多重中断的服务流程

单中断和多重中断的区别就是开中断的时间点。 DMA(Direct Memory Access)方式 1.DMA和程序中断两种方式的数据通路

2.DMA与主存交换数据的三种方式 (1)停止CPU访问主存 控制简单,适合大量数据的传输CPU处于不工作的状态或保持状态未能充分发挥CPU对主存的利用率
(2)周期挪用(周期窃取) 占用一个或者多个内存访问周期,来完成数据的传输DMA访问主存的三种可能: CPU此时不访存, 主存和总线的使用权可以直接给DMACPU正在访存,DMA需要进行等待CPU与DMA同时请求访存,DMA优先获得总线控制权和主存访问权
(3)DMA与CPU交替访问 将一个工作周期分成两部分,一部分DMA使用主存,一部分CPU使用主存。不需要DMA提出申请,建立总线的控制权和内存的使用权。
3.DMA接口的功能和组成 DMA接口的功能 向CPU申请DMA请求处理总线控制权的转交管理系统总线、控制数据传送确定数据传送的首地址和长度,修正传送过程中的数据地址和长度DMA传送结束时,给出操作完成信号 DMA接口的组成

AR:地址寄存器,用来表识数据在主存当中存放或者写入的地址。WC:计数器,完成传输数据量的计数。使用补码存放负N。BR:数据缓冲器,外部设备输入的数据或者是存储单元当中输出的数据要暂时存储到接口的数据缓冲器当中。DAR:设备地址寄存器,供设备选择电路使用。DMA控制逻辑:控制接口内部的工作,控制在给定的时序给出给定的信号。DREQ:设备请求信号。DACK:对设备给出的应答信号。HRQ:总线使用请求信号。HLDA:CPU向DMA发出的应答信号。中断机构:向CPU发出中断信号,用于数据传输完之后对后续工作进行处理,WC=0时会向中断机构发出信号。 4.DMA工作过程 DMA传送过程 预处理、数据传送、后处理 (1)预处理(通过输入输出指令设置信息) 通知DMA控制逻辑传送方向设备地址—>DMA的DAR主存地址—>DMA的AR传送字数—>DMA的WC (2)数据传送

(3)数据传送过程(输入)

首先数据从外部设备送入BR。向DMA接口发送DREQ请求,表明数据已经准备好了。DMA控制逻辑向CPU发送HRQ请求,请求占用主存和总线。CPU发送HLDA应答,表示CPU放弃主存和总线的使用。通过地址线,给出主存的地址。DMA控制器给出DACK应答信号。DMA控制器发出对内存的控制指令,BR当中的数据通过数据线送到主存,修改AR和WC的值。中断机构发出中断请求。 (4)数据传送过程(输出)

后处理 校验送入的主存的数是否正确是否继续使用DMA测试传送过程是否正确,错则转诊断程序由中断程序完成

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。