输入/输出系统也许是计算机系统中最复杂多变的部分,原因是多方面的。首先是有太多的CPU系列和型号,他们各自的运行速度、处理功能、接口逻辑都不相同;又有更多的外围设备,他们各自的运行原理、提供的功能、读写速度、接口逻辑更是千差万别;要把这么多不同的部件(设备)都能连接到一起,显然不是一件简单的事情,花样太多;其次,在计算机系统中,会有许多不同的使用要求,不同的人和不同的应用场合,对算题速度、输入/输出速度、单位时间输入/输出的数据量、对随时发生事件的响应与处理的速度、对系统总体性能的要求上各不相同,差异太大;企图用一种方式,一套办法全面解决这些问题显然是不现实的,至少从价格性能比的角度来看是不可接受的。出路何在?看来应该在系统配置的灵活性、良好的可扩展性、硬件与软件的合理配合等多方面来解决问题。
首先,众多的部件和设备要相互连接与交换信息,建立尽可能公用的交换信息的通路是必要的,而且要提供各部件(设备)协调使用这些通路的规则,这些组成部分,在计算机内就是总线系统(Bus
system),正如同在城市修筑的马路和建立的交通信号灯系统一样。硬件上怎样组成总线,总线分为哪几部分,各自承担的功能是什么,怎样协调众多设备请求使用总线的要求,总线性能对计算机系统总体性能的影响如何,有哪些提高总线性能和系统输入/输出的数据吞吐量的方案,将是我们在介绍计算机总线一节要讨论的问题。
其次,要把众多不同的CPU与各种不同的输入/输出设备连接起来,要求二者任何一方作出修改以适应对方都是不可接受的。最好的办法是在二者之间放置一个功能电路,把二者之间的连接、勾通、匹配、缓冲等种种需求都放到这个电路板中解决。由于该电路要解决的只是一个确定的CPU和一个确定的设备的对接,其复杂程度大为简化。这个电路板被称为设备接口(interface)卡。为连接多种CPU和多种设备,该卡的种类数目最大的理论值是二者种类数目的乘积。在计算机接口一节,将介绍通用可编程借口卡的一般组成,并以实例形式给出常用的串行接口的组成和使用知识,再简要说一下并行接口的有关内容。
最后一点,是如何支持多个I/O设备并发(同时)执行输入/输出操作,如何降低在输入/输出操作过程中对CPU干预的需求。与CPU相比,许多设备的读写速度是非常慢的,如果要求CPU一定等待这些设备读写完成之后才开始执行下一条指令,CPU的大部分时间将花在等待上,系统性能会悲剧性的降低。为此,引进了程序中断方式和内存储器直接访问方式(DMA),甚至于另外配备一台小型计算机专门协助主CPU处理输入/输出操作,以保证主CPU的更强的计算能力被用到更重要的处理中。这些是在常用的输入/输出方式一节要讲解的内容,这里重点讲解中断和DMA的概念,以及他们的请求、响应和处理过程。
|
|