什么是输入输出系统
输入输出系统是计算机系统中的主机与外部进行通信的系统。它由外围设备和输入输出控制系统两部分组成,是计算机系统的重要组成部分。外围设备包括输入设备、输出设备和磁盘存储器、磁带存储器、光盘存储器等。从某种意义上也可以把磁盘、磁带和光盘等设备看成一种输入输出设备,所以输入输出设备与外围设备这两个名词经常是通用的。在计算机系统中,通常把处理机和主存储器之外的部分称为输入输出系统,输入输出系统的特点是异步性、实时性和设备无关性。
输入输出系统原理
从信息传输速率来讲,相差也很悬殊。如果把高速工作的主机同不同速度工作的外围设备相连接,保证主机与外围设备在时间上同步要讨论的外围设备的定时问题。
输入/输出设备同CPU交换数据的过程
输入过程:
(1)CPU把一个地址值放在地址总线上,这一步将选择某一输入设备;
(2)CPU等候输入设备的数据成为有效;
(3)CPU从数据总线读入数据,并放在一个相应的寄存器中。
输出过程:
(1)CPU把一个地址值放在地址总线上,选择输出设备;
(2)CPU把数据放在数据总线上;
(3)输出设备认为数据有效,从而把数据取走。
输入输出系统定时方式
由于输入/输出设备本身的速度差异很大,因此,对于不同速度的外围设备,需要有不同的定时方式,总的说来,CPU与外围设备之间的定时,有以下三种情况。
1.速度极慢或简单的外围设备
对这类设备,如机械开关、显示二极管等等,CPU总是能足够快地作出响应。换句话说,对机械开关来讲,CPU可以认为输入的数据一直有效,因为机械开关的动作相对CPU的速度来讲是非常慢的,对显示二极管来讲,CPU可以认为输出一定准备就绪,因为只要给出数据,显示二极管就能进行显示,所以,在这种情况下,CPU只要接收或发送数据就可以了。
2.慢速或中速的外围设备
由于这类设备的速度和CPU的速度并不在一个数量级,或者由于设备(如键盘)本身是在不规则时间间隔下操作的,因此,CPU与这类设备之间的数据交换通常采用异步定时方式。其定时过程如下:
如果CPU从外设接收一个字,则它首先询问外设的状态,如果该外设的状态标志表明设备已“准备就绪”,那么CPU就从总线上接收数据。CPU在接收数据以后,发出输入响应信号,告诉外设已经把数据总线上的数据取走。然后,外设把“准备就绪”的状态标志复位,并准备下一个字的交换。如果CPU起先询问外设时,外设没有“准备就绪”,那么它就发出表示外设“忙”的标志。于是,CPU将进入一个循环程序中等待,并在每次循环中询问外设的状态,一直到外设发出“准备就绪”信号以后,才从外设接收数据。
CPU发送数据的情况也与上述情况相似,外设先发出请求输出信号,而后,CPU询问外设是否准备就绪。如果外设已准备就绪,CPU便发出准备就绪信号,并送出数据。外设接收数据以后,将向CPU发出“数据已经取走”的通知。
通常,把这种在CPU和外设间用问答信号进行定时的方式叫做应答式数据交换。
3.高速的外围设备
由于这类外设是以相等的时间间隔操作的,而CPU也是以等间隔的速率执行输入/输出指令的,因此,这种方式叫做同步定时方式。一旦CPU和外设发生同步,它们之间的数据交换便靠时钟脉冲控制来进行。
输入输出系统控制方式
程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式和PPU方式适用于数据传输率比较高的设备。在单片机和微型机中多采用程序查询方式、程序中断方式和DMA方式。通道方式和PPU方式大都用在中、大型计算机中。
在计算机系统中,CPU管理外围设备也有几种类似的方式:
1、程序查询方式
程序查询方式是早期计算机中使用的一种方式。数据在CPU和外围设备之间的传送完全靠计算机程序控制,查询方式的优点是CPU的操作和外围设备的操作能够同步,而且硬件结构比较简单。但问题是,外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。这种情况同上述例子中第一种方法相仿,CPU此时只能等待,不能处理其他业务。即使CPU采用定期地由主程序转向查询设备状态的子程序进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。因此当前除单片机外,很少使用程序查询方式。、
2、程序中断方式
中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。这种方式和我们前述例子的第二种方法相类似。可以看出,它节省了CPU宝贵的时间,是管理I/O操作的一个比较有效的方法。中断方式一般适用于随机出现的服务,并且一旦提出要求,应立即进行。同程序查询方式相比,硬件结构相对复杂一些,服务开销时间较大。
3、直接内存访问(DMA)方式
用中断方式交换数据时,每处理一次I/O交换,约需几十微秒到几百微秒。对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢。直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。这种方式既考虑到中断响应,同时又要节约中断开销。此时,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。这种方式和前述例子的第三种方法相仿,主要优点是数据传送速度很高,传送速率仅受到内存访问时间的限制。与中断方式相比,需要更多的硬件。DMA方式适用于内存和高速外围设备之间大批数据交换的场合。
4、通道方式
DMA方式的出现已经减轻了CPU对I/O操作的控制,使得CPU的效率有显著的提高,而通道的出现则进一步提高了CPU的效率。这是因为,CPU将部分权力下放给通道。通道是一个具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种方式与前述例子的第四种方法相仿,大大提高了CPU的工作效率。然而这种提高CPU效率的办法是以花费更多硬件为代价的。
5、外围处理机方式
外围处理机(PPU)方式是通道方式的进一步发展。由于PPU基本上独立于主机工作,它的结构更接近一般处理机,甚至就是微小型计算机。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务。从某种意义上说,这种系统已变成分布式的多机系统。
输入输出系统外围设备
外围设备的种类相当繁多,有机械式和电动式,也有电子式和其他形式。其输入信号,可以是数字式的电压,也可以是模拟式的电压和电流。外围设备包括输入设备、输出设备和磁盘存储器、磁带存储器、光盘存储器等。
输入设备
输入设备:向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中,进行存储、处理和输出。
输出设备
输出设备(OutputDevice)是人与计算机交互的一种部件,用于数据的输出。它把各种计算结果数据或信息以数字、字符、图像、声音等形式表示出来。常见的有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。将计算机输出信息的表现形式转换成外界能接受的表现形式的设备。利用各种输出设备可将计算机的输出信息转换成印在纸上的数字、文字、符号、图形和图像等,或记录在磁盘、磁带、纸带和卡片上,或转换成模拟信号直接送给有关控制设备。有的输出设备还能将计算机的输出转换成语声。
存储器
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。存储器是用来存储程序和数据的部件,有了存储器,计算机才有记忆功能,才能保证正常工作。按用途存储器可分为主存储器(内存)和辅助存储器(外存)。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据就会丢失。