计算机组成原理3---I/O技术

来源:互联网 发布:foxtable建立数据库 编辑:程序博客网 时间:2024/05/16 18:50

    在计算机硬件组成中有各部分被整合到了一起-----输入输出,统称为I/O。计算机程序执行的初始数据和结果都需要输入输出来完成和体现。那么这部分有是如何工作的呢:先看一下I/O部分的整体导图:


 

【概念】

       I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。


【功能】

    计算机系统中存在多种内存与接口地址的编制方法,常见有两种:

      内存与接口地址独立编址;

      内存与接口地址统一编址;

    第一种方法:内存地址和接口地址是完全独立的两个地址空间。接口的指令只有读/写,其余皆是内存指令。缺点:接口指令少且简单,功能只有读写。

    第二种方法:内存地址和接口地址在同一个空间地址。将一个空间地址分成两部分给内存地址和接口地址,且两者互不干涉。优点:内存指令同样可以用于接口。功能增加。缺点:两者地址容易混乱,不易区分。

 

    计算机系统的所有指令和操作都是在CPU 的主导下完成的,同样输入输出技术也离不开CPU的控制。在I/O技术中,CPU主要通过以下四种方法对I/O接口进行控制。

     一:直接程序控制:数据的输入输出是在CPU的执行程序的控制下完成的。分两种:

        1)  无条件传送:外设时刻准备就绪,无条件随时接受/传送CPU执行程序发来的数据;

        2)  程序查询方式:通过CPU执行程序查询外设状态,确定是否传输数据;

 

    二:中断方式:CPU根据接口是否发出中断请求来决定是否接受/传输数据;

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

    中断优先级控制:在具有多个中断源的计算机系统中,各中断源对服务的请求紧迫程度不一。以此划分优先级。

    

    三:直接存储器存取(DMA):数据在内存和I/O设备中直接成块传送,不需要经过CPU的控制干涉。

 

    四:输入输出处理机(IOP):上述三中方法适合于外设不多、速度不高的小型机。而在大型计算机中采用IOP方法。IOP是一个专用处理机,主机的输入输出都由它来根据I/O指令完成。IOP方法分为三种:字节多路方式,选择传送方式,数组多路方式。

    另外还有通道技术(与IOP类似),Spooling技术、通道处理机技术等很多方式。


    上述是CPU通过接口对外设进行控制的几种方法,那么一个完整的控制过程是怎么进行的呢?这就要提到I/O软件了。I/O软件设计的基础目标是为了保证设备的独立性和统一命名,提高设备管理软件的设计效率。因为当输入输出设备更新时,不用重复编写全部设备驱动程序。

    I/O设备管理软件一般分4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户软件。层次结构与执行顺序如图:

 

     执行过程:例—读取硬盘文件。

     首先是操作系统调用与设备无关软件检查高速缓存中有没有需要的数据,若没有,调用设备驱动程序,向I/O硬件发送请求。然后用户进程阻塞并等待磁盘操作完成,当磁盘操作完成时,硬件产生一个中断,转入中断处理程序,中断处理程序检查中断原因,如磁盘读取工作完成,则唤醒用户进程取回从磁盘中读取的文件信息。并结束I/O请求。用户进程继续进行。


【总结】

    I/O技术的知识无疑很重要,如果没有它那么计算机系统就是无源之水。这部分知识主要还是在CPU控制外设接口的几种方式的不同点。有的方法需要CPU程序执行进行处理,但是这无疑加大了CPU的工作负担;有的是CPU发出I/O指令,由通道负责执行处理后面的事情;有的是CPU根本就是不需要参与数据输入输出的工作就可以完成。

2 0
原创粉丝点击