【连载】计算机组成原理 --- 第六章 输入输出系统

 第六章 输入/输出系统

(一)I/O 系统的基本概念

(二)外部设备

       1.输入设备:键盘,鼠标

       2.输出设备:显示器,打印机

       3.外存储器:硬盘存储器,磁盘阵列,光盘存储器

(三)I/O接口(I/O控制器)

       1.程序查询方式

       2.程序中断方式

       中断的基本概念,中断的响应过程,中断处理过程,多重中断和中断屏蔽的概念。

       3.DMA方式

       DMA控制器的组成,DMA传送过程

6.1 I/O系统的基本概念

       I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。

       I/O(input/output)控制方式:

CPU通过接口对外设进行控制的方式有以下几种:

 

(一)程序查询方式

程序控制I/O方式,是指CPU和外围设备之间的信息传送,是在程序控制下进行的。

这种方式下,CPU通过I/O指令询问指定外设当前的状态,如果外设准备就绪,则进行数据的输入或输出,否则CPU等待,循环查询。

这种方式的优点是结构简单,只需要少量的硬件电路即可缺点是由于CPU的速度远远高于外设,因此通常处于等待状态,工作效率很低。

 

程序查询方式又可分为无条件I/O方式和查询式I/O方式。

①无条件I/O方式  所谓无条件I/O方式是指不必查询外围设备的状态即可进行信息传送的I/O方式。即在此种方式下,外围设备总是处于就绪状态。如开关、LED显示器等。一般它仅适用于一些简单外围设备的操作。

②查询式I/O方式

查询式I/O方式,也称为条件传送方式。按查询式传送,CPU和外围设备的I/O接口除需设置数据端口外,还要有状态端口。查询式I/O接口电路原理框图如图I5-19所示。

 

【连载】计算机组成原理 --- 第六章 输入输出系统_第1张图片

 

图I5-19 查询式I/O方式接口电路原理框图

状态端口的指定位表明外围设备的状态,通常只是“0”或“1”的两状态开关量。交换信息时,CPU通过执行程序不断读取并测试外围设备的状态,如果外围设备处于准备好的状态(输入时)或者空闲状态(输出时),则CPU执行输入指令或输出指令,与外围设备交换信息,否则,CPU要等待。当一个微机系统中有多个外围设备采用查询式I/O方式交换信息时,CPU应采用分时控制方式,逐一查询,逐一服务,其工作原理如下:每个外围设备提供一个或多个状态信息,CPU逐次读入并测试各个外围设备的状态信息,若该外围设备请求服务(请求交换信息),则为之服务,然后清除该状态信息。否则,跳过,查询下一个外围设备的状态。各外围设备查询完一遍后,再返回从头查询起,直到发出停止命令为止。

 

(2)中断处理方式

在这种方式下,CPU不再被动等待,而是可以执行其他程序,一旦外设为数据交换准备就绪,可以向CPU提出服务请求,CPU如果响应该请求,便暂时停止当前程序的执行,转去执行与该请求对应的服务程序,完成后,再继续执行原来被中断的程序。

中断处理方式的优点是显而易见的,它不但为CPU省去了查询外设状态和等待外设就绪所花费的时间,提高了CPU的工作效率,还满足了外设的实时要求。但需要为每个I/O设备分配一个中断请求号和相应的中断服务程序,此外还需要一个中断控制器(I/O接口芯片)管理I/O设备提出的中断请求,例如设置中断屏蔽、中断请求优先级等。

 

当外围设备需要请求服务时,向CPU发出中断请求,CPU响应外围设备中断,停止执行当前程序,转去执行一个外围设备服务的程序,此服务程序称为中断服务处理程序,或称中断服务子程序。中断处理完毕,CPU又返回来执行原来的程序。

在中断传送时的接口电路如图I5-21所示。当输入装置输入一数据,发出选通信号,把数据存人锁存器,又使D触发器置“1”,发出中断请求。若中断是开放的,CPU接受了中断请求信号后,在现行指令执行完后,暂停正在执行的程序,发出中断响应信号INTA,于是外设把一个中断矢量放到数据总线上,CPU就转入中断服务程序,读入或输出数据,同时清除中断请求标志。当中断处理完后,CPU返回被中断的程序继续执行。

【连载】计算机组成原理 --- 第六章 输入输出系统_第2张图片

 

 

(3)DMA(直接存储器存取)传送方式

DMA最明显的一个特点是它不是用软件而是采用一个专门的控制器来控制内存与外设之间的数据交流,无须CPU介入,大大提高CPU的工作效率。

在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制权,CPU如果允许,则将控制权交出,因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。

利用中断方式进行数据传送,可以大大提高CPU的利用率,但在中断方式下,仍必须通过CPU执行程序来完成数据传送。每进行一次数据传送,就要执行一次中断过程,其中保护和恢复断点、保护和恢复寄存器内容的操作与数据传送没有直接关系,但会花费掉CPU的不少时间。例如对磁盘来说,数据传输率由磁头的读写速度来决定,而磁头的读写速度通常超过2B/s,这样磁盘和内存之间传输一个字节的时间不能超过5µs,采用中断方式就很难达到这么高的处理速度。

所以希望用硬件在外设与内存间直接进行数据交换(DMA)而不通过CPU,这样数据传送的速度上限就取决于存储器的工作速度。但是,通常系统的地址和数据总线以及一些控制信号线是由CPU管理的。在DMA方式时,就希望CPU把这些总线让出来(即CPU连到这些总线上的线处于第三态——高阻状态),而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束等信号。通常DMA的工作流程如图I5-22所示。

【连载】计算机组成原理 --- 第六章 输入输出系统_第3张图片

图 I5-22  DMA工作流程图

能实现上述操作的DMA控制器的硬件框图如图I5-23所示。当外设把数据准备好以后,发出一个选通脉冲使DMA请求触发器置1,它一方面向控制/状态端口发出准备就绪信号,另一方面向DMA控制器发出DMA请求。于是DMA控制器向CPU发出HOLD信号,当CPU在现行的机器周期结束后发出HLDA响应信号,于是DMA控制器就接管总线,向地址总线发出地址信号,在数据总线上给出数据,并给出存储器写的命令,就可把由外设输入的数据写入存储器。然后修改地址指针,修改计数器,检查传送是否结束,若未结束,则循环,直至整个数据传送完毕。随着大规模集成电路技术的发展,DMA传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速的外设之间进行DMA传送。  

【连载】计算机组成原理 --- 第六章 输入输出系统_第4张图片

图I5-23  DMA控制器框图

参考: http://58.20.53.45/files/files_upload/content/material_153/content/002002002002001001001/file_2.htm

(4) 通道方式

 

你可能感兴趣的:(计算机组成原理)