资讯详情

计组 | 【七 输入/输出系统】知识点与例题

一、知识点

整体概述

由于CPU无法直接控制I/O因此,设备的机械部件I/O设备还应以电子部件作为设备CPU和I/O实现设备机械部件之间的中介CPU控制设备,这个电子是I/O控制器,又称设备控制器。

I/O控制器是控制计算机输入输出的最基本的控制系统,可以根据指令的功能要求指挥计算机各部件的协调。它由指令寄存器组成IR(InstructionRegister)、程序计数器PC(ProgramCounter)操作控制器OC(OperationController)这三个部件的组成对于协调整个计算机的有序工作非常重要。

是将数据输入计算机或接收计算机输出的设备。

属于鼠标和键盘IO它们连接到的计算机接口称为设备(或称为IO控制器)。

IO接口需要多个寄存器作为设备和计算机之间的桥梁:

  • :存储设备输出或计算机输出。
  • :计算机需要控制设备进行操作,这里有必要进行操作。
  • :设备完成后,需要告知计算机的当前状态。

计算机可以通过控制寄存器告诉设备该做什么;设备可以通过状态寄存器反映是否准备好;计算机决定是否通过状态寄存器访问数据寄存器。

当计算机发送命令时,您会发现在这个过程中控制寄存器是有用的IO接口收到命令后该寄存器就无用了。所以我们可以将状态寄存器与之合并,节约空间与成本。

一个IO接口可以对应多个设备,每个设备都可以有自己的一组数据、控制和状态寄存器,这样计算机就可以不同组的寄存器。

对于计算机来说,这些寄存器都是——数据端口、状态端口、控制端口。

那么计算机呢?IO接口连接呢?

一种明显的方法:拉出系统总线,CPU、主存、IO接口连接在上面。

系统总线包括数据、地址、控制信号线,cpu可通过总线直接控制IO接口也可以让主存和IO数据在接口间传输。

例如,敲键盘上的字母,CPU获取数据有两种方式:

  • :CPU不断询问键盘状态寄存器输入是否完成,如果检测完成,将数据寄存器中的数据带到主存。
  • :CPU不用询问,IO根据状态寄存器选择接口是否需要CPU发送中断信号,CPU收到信号会来收集数据。

会导致程序查询cpu只能等键盘输入,不能做其他事情;允许程序中断CPU先做其他事情,输入完成后再来拿主存。

有一种特殊的IO接口——,它可以用DMA只要总线直接连接到主存,CPU告诉DMA接口应该数据存储在主存中,DMA接口将数据根据地址放入主存。

对于DMA接口而言,CPU如果有多个主存地址,还需要告诉它主存地址DMA接口,CPU还是会很忙。为了进一步解放CPU,可以接替CPU做一些基本操作。

它就像低级CPU,有自己的指令系统-通道指令,可以执行一些有限的操作。当它接受时CPU发出的之后,可按要求启动IO设备或执行通道指令-就像CPU的小弟。

IO逻辑上分为三个字段:

  • 操作码:可以用来区分其他指令,让CPU知道这是一个IO指令。
  • 命令码:代表设备的具体操作。
  • 设备代码:可指定操作某一设备,用于区分设备。

不同设备的IO不同的指令是不同的。鼠标侧键、灯光或灵敏度也不同的品牌有不同的IO指令。这就是为什么在插入鼠标键盘显卡和其他部件时,如果你想更好地使用它,你需要安装驱动程序。

键盘的每一次敲击都在向计算机发出中断信号,一般情况下计算机会暂停手上的工作,先处理键盘的输入数据,之后再回到自己之前的工作。

这里出现了许多问题:

计算机内有许多中断请求标记寄存器,当设备发出中断信号时,会修改这些寄存器的数据,CPU你会知道哪些设备些设备。

可以用硬件或软件判断哪个中断信号需要优先处理。

硬件:将设备的中断信号视为输出1,可依次将设备连接到电路中,电路优先级越高。

软件:可以写一系列指令组成,逐一检查每个寄存器。

在处理中断之前,计算机将处理当前情况PC保存指令地址,然后保存指令地址PC中的值修改成中断程序地址——这一操作由指挥。处理完成后,读取保存的指令地址PC继续工作。

  • 忽略信号:在输出电路中添加一个信号,当设备的屏蔽字输出为1时,屏蔽设备的中断信号。如果您不想接收中断信号,请直接输出每个设备的屏蔽字1-此操作称为

打开另一个中断程序:像娃娃一样,再次打开当前PC保存后修改内部值。注意顺序问题——保存前必须关闭中断,以免中断保存动作。保存成功后,接收中断信息。

接下来,介绍一个重要的介绍IO设备-机械硬盘,其工作状态如下:

https://pic1.zhimg.com/v2-6792b6cc9c914d34df2001946d591428_b.webp

磁盘上存储数据,用磁头读写磁盘。其工作原理是:

表面有一层磁性物质,通电通过磁盘的某个位置后,该位置随机方向的磁极将与通电磁头产生的磁场方向相同。当磁头需要读取数据时,磁头会通过不同方向的磁极产生不同方向的感应电流,通过这些微弱的感应电流形成二进制信息。

侵删图源网络

所以问题是,磁头如何知道它应该划向哪个区域?

首先,我们需要知道分为哪些区域:

当磁盘高速旋转,磁头固定时,磁头会在磁盘上画一个环,这个环是,通过移动磁头来改变磁道。

磁盘像切蛋糕一样分成多个部分,每个扇面有多个分割磁道,每个磁道称为——每个扇区大小不一,但存储的数据量相同。

侵删图源网络

多个磁盘垂直重叠,相同的磁道形成一个

为了高速旋转磁盘和摆动磁头,我们需要控制磁盘和磁头。

而磁盘驱动器是听从是的,磁盘控制器接收计算机发出的指令,指挥磁盘驱动器工作。

计算机发出的指令包括但不限于以下字段:

  • 驱动号:从多个设备中选择一个。
  • 柱面(磁道)号:将磁头移动到相应的磁道。
  • 盘面号:选择对应盘面,激活盘面磁头。
  • 扇区号:旋转磁盘,使磁头穿过相应的磁盘。

延迟时间,传输时间――与磁盘转速有关

启动时间――与磁盘驱动器的物理和电气特性有关

找时间/找时间――与磁盘调度算法、磁臂移动速度有关

1.程序直接访问模式和循环检测IO方式是最古老的方式。CPU和IO串行,每读一个字节(或字),CPU状态寄存器需要不断检测busy标志,当busy=1时,表示IO还没完成;当busy=0时,表示IO完成。读一个字的过程结束了,然后读下一个字。

2.中断控制模式:循环检测先进,IO设备和CPU可以并行工作,只有在开始IO和结束IO时,才需要CPU。但。

3、DMA方式:Direct Memory Access,直接存储器访问,比中断先进的地方是每次可以读取一个块,而不是一个字。

4、通道方式:比DMA先进的地方是,每次可以处理多个块,而不只是一个块。

分散知识点

1、IO接口:向CPU提供I/O设备的状态信息和进行命令译码。对传送数据提供缓冲,以消除计算机与外设在“定时”或数据处理速度上的差异。

IO端口:是指电路中的一些,这些寄存器分别用来存放数据信息、控制信息和状态信息。

2、

3、DMA周期挪用:IO设备每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制权.

4、当I/O设备通过接口与主机相连时,CPU可以通过接口地址来访问IO设备。因为一个接口对应一个IO设备。

5、

尽管第5章讲解过中断向量地址形成部件,但是这里还是需要提一点。中断向量地址形成部件的输入来自排队器的输出 INTP, NTP2,…,INTP,很显然是一串二进制代码,而此二进制代码就是中断向量,其位数与计算机可以处理中断源的个数有关,即一个中断源对应一个向量地址。可见,该部件实质上是一个编码器。在I/O接口中的编码器又称为设备编码器。

6、中断服务程序的最后指令是中断返回指令。

中断返回指令和无条件转移指令本质都是通过修改PC值改变程序执行顺序。而中断返回指令还需要将CPU中的所有寄存器都恢复到中断前的状态。


二、 例题

答案:B

可能疑问点1:为什么采用中断方式不需要加上0.2μs×1200? 解析:前面讲解过,中断方式的中断和 DMA 的中断不是一回事,中断方式的中断包含数据的传输时间,而 DMA 的中断仅仅是后处理的时间,并不包含数据传输的时间,所以此处的中断方式不需要加上0.2μsx1200。

可能疑问点2:DMA方式下,在主存和外设之间有一条物理通路直接相连吗?

解答:没有。通常所说的 DMA方式下数据在主存和外设之间直接进行传送,其含义并不是说在主存和外设之间建立一条物理上的直接通路,而是在主存和外设之间通过外设接口、系统总线以及总线桥接部件等连接,建立起一个信息可以互相通达的通路。“直接通路”是逻辑上的含义,物理上磁盘和主存不是直接相连的。

可能疑问点3:CPU对DMA请求和中断请求的响应时间是否一样?

解答:不一样。

DMA方式下,向CPU 请求的是总线控制权,要求CPU让出总线控制权给DMA控制器,由DMA 控制器来控制总线完成主存和外设之间的数据交换,所以CPU只要用完总线后就可以响应请求,释放总线,让出总线控制权。CPU总是在一次总线事务完成后响应,所以DMA响应时间应该少于一个总线周期;

而中断方式下请求的是CPU时间,要求CPU中止正在执行的程序,转到中断服务程序去执行,通过执行中断服务程序,对中断事件进行相应的处理。CPU总是要等到一条指令执行结束后,才去查询有无中断请求,所以响应时间少于一个指令周期的时间。

可能疑问点4:挪用周期方式下,DMA控制器窃取的是什么周期?

解答:周期挪用法的基本思想是,当外设准备好一个数据时,DMA 控制器就向CPU申请一次总线控制权,CPU在一个总线事务结束时一旦发现有 DMA请求,就立即释放总线,让出一个周期给DMA 控制器,由 DMA 控制器控制总线在主存和外设之间传送一个数据,传送结束后立即释放总线,下次外设准备好数据时,又重复上述过程,直到所有数据传送完毕。这种情况下,CPU的工作几乎不受影响,只是在万一出现访存冲突时,CPU挪出一个周期给DMA,由 DMA 访问主存,而CPU延迟访问主存。这里CPU挪出的是主存的存储周期。

答案:C

程序控制方式:即用软件方式实现

DMA纯纯的硬件。

直接程序传送→程序查询方式。

 答案:C

Cache完全是由硬件实现的,不会涉及中断层面。

浮点数运算下溢:当做机器零,正常处理

 答案:A

IO中断是由外部设备发起的。

中断响应周期:中断周期,执行中断隐指令。

 答案:D

中断响应次序→硬件(硬件排队电路)所决定,无法改变

中断处理次序→通过中断屏蔽字实现,可改变

答案:B

IR、AR、DR等,暂存中间数据,辅助其他硬件工作

 答案:B、D

程序查询方式,CPU与外设串行工作,传送与主程序串行工作。

中断方式,CPU与外设并行工作,当数据准备时是仍需中断主程序以执行数据传送,因此传送与主程序仍是串行的。

DMA,全并行。

答案:C

 答案:B

键盘、鼠标属于低速设备。

CPU 中断处理:预处理后处理。


三、408统考真题

 1、


 四、Q/A

1、I/O接口就是I/O端口吗?

解答:不是。IO接口和IO端口是两个不同的概念,但相互之间有关联。I/O接口是主机和外设之间传送信息的“桥梁”,介于主机和外设之间。主机控制外设的命令信息、传送给外设的数据或从外设取来的数据、外设送给主机的状态信息等都要先存放到IO接口中。所以,接口中有一些寄存器,用于存放这些命令、数据和状态信息。把IO接口中的这些寄存器称为IO端口。

2、IO接口与设备控制器是同一个东西吗?

解答:I/O设备可以分为机械部件和电子部件,其中,电子部件就是常说的I/O控制器(也叫I/O接口),也称为设备控制器。

之所以称谓不同,是因为在计算机体系结构中,操作系统是最接近硬件的软件部分,其更侧重从软件和功能的角度出发去描述部件,所以称之为设备控制器;而在计算机组成原理中,研究的重点在于硬件组成部分,其更青睐于从硬件的角度出发去描述部件,所以称之为I/O接口。

但是,说句题外话,I/O端口和I/O接口并不等同,两者还是有区别的。简单粗略地说,I/O端口加上电路部分才等效于I/O接口。

所以,本质上,I/O接口和设备控制器是同一种东西。

3、一个IO接口只能有一个地址吗?

 解析:一个I/O 接口可能有多个地址。因为一个 I/O接口中可能有多个用户可访问的寄存器,也就是多个I/O端口,而每个IO端口有一个地址,所以一个IO接口可能有多个地址。

3、禁止中断和屏蔽中断是同一个概念吗?

解答:它们是两个完全不相关的概念。

禁止中断就是关中断,即使中断允许触发器置为“0”,此时任何中断请求都得不到响应。

屏蔽中断是多重中断系统中的一个概念,是指某个中断正在被处理的时候,如果有其他新的中断请求发生,是否允许响应新发生的中断。它反映了正在处理的中断与其他各个中断之间的处理优先级顺序,所以每个中断都有一个中断屏蔽字,其中的每一位对应一个中断的屏蔽位,为“1”则对应的中断不能被响应。响应某个中断后,就会把它的中断屏蔽字送到中断屏蔽字寄存器中,在中断排队前,其中的每一位和中断请求寄存器中的对应位进行与操作。因而,只有未被屏蔽的中断源进入排队线路,才有可能得到响应。


参考于

计算机组成原理笔记-IO接口与设备 - 知乎

标签: 侵水变送器水侵变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台