第五章外部设备中央处理器(CPU)和主存储器(MM)构成计算机的主体,称为主机。主机以外的大部分硬设备都称为外部设备或外围设备,简称外设。它包括常用的输入输出设备,外存储器,脱机输入输出设备等。在第四代计算机出现以后,特别是进入80年代以来,以个人计算机和工作站为代表的微型机迅速普及,计算机的应用领域有了突破性的进展,外部设备开始向多样化、智能化的方向发展。输入设备:键盘图形输入设备(鼠标器、图形板、跟踪球、操纵杆、光笔)图像输入设备(摄像机、扫描仪、数字相机)条形码光学字符识别语音与文字输入输出设备:显示器(字符、汉字、图形、图像)打印设备(针式打印机、激光打印机、喷墨打印机、热转印打印机)绘图机(平板式、滚筒式)语音输出终端设备(键盘+显示器)§5.1I/O系统的组成(二)2。按传消息交换的单位分类块设备信息存取以数据块为单位,属于有结构设备。字符设备信息存取以字符为单位,属于无结构设备。3。按设备的共享属性分类独占设备在一段时间只允许一个进程访问的设备。共享设备在一段时间允许多个进程同时访问的设备。虚拟设备使用虚拟技术,将一台独占设备变为逻辑上的多台设备。二、I/O设备及分类1。按传输速率分类低速设备中速设备高速设备设备管理(一)设备管理是操作系统最基本、最繁杂的组成部分。且与硬件的关系最密切。外设按功能分为两类{存储设备存取控制部分(控制电路伺服系统、读写控制电路、磁头、光头等)信息载体(磁盘、磁带、光盘等)I/O设备存储设备I/O设备输入设备—模拟信号数字信号(A/D转换)输出设备—数字信号模拟信号(D/A转换)设备管理(二)设备管理的基本任务是:(1)控制I/O操作;进行设备分配;提高CPU与设备之间的并行工作程度。协调和保证设备的正常与高效工作。(2)向用户提供一个使用设备的方便接口。完成用户的I/O请求。I/O系统的组成I/O控制方式I/O数据传输与缓冲技术虚拟设备与Spooling技术主要讨论以下问题I/O系统的组成I/O数据传输控制方式I/O缓冲技术I/O软件与设备分配虚拟设备与Spooling技术§5.1I/O系统的组成(一)1。微机I/O系统CPU通过总线与设备控制器相连接,设备控制器是CPU与设备之间的接口。2。主机I/O系统使用I/O通道(I/O处理机),实现对设备控制器的控制。I/O系统应该由以下部分组成:I/O设备设备控制器总线或通道一、I/O系统的结构CPU存储器磁盘控制器打印机控制器…其它控制器磁盘驱动器打印机系统总线缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备图5-1设备与控制器间的接口图5-6总线型I/O系统结构§5.1I/O系统的组成(三)1。设备控制器的功能接收和识别CPU发出的命令,因此,设备控制器中设有多个寄存器,用来存放命令和参数,同时,还设有命令译码器。实现数据交换,即CPU与控制器之间,控制器与设备之间的数据交换。记录设备的状态,以便CPU启动控制器。为此,在控制器中设置一个状态寄存器。识别设备地址。使CPU能够从设备控制器的寄存器中读写数据。三、设备控制器设备控制器是CPU与设备之间的接口,接收CPU的命令,控制设备工作,实现设备与计算机之间数据交换。§5.1I/O系统的组成(四)2。设备控制器的组成由CPU与控制器接口、控制器与设备接口、I/O逻辑三部分组成。三类信号线:数据线、地址线、控制线。数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器与设备接口iCPU与控制器接口控制器与设备接口数据线地址线控制线数据状态控制数据状态控制。。。。。。CPU设备§5.1I/O系统的组成(五)通道(Channel)—也称I/O处理机。是为了减轻CPU的工作负载,在CPU与设备控制器之间而设置的一种专门用于I/O的简单处理机。通道指令系统—也称通道控制字(CCW),是通道能够独立执行的I/O指令。按照信息交换方式分类:字节多路通道—用于低、中速设备含多个非分配型的子通道,子通道按时间片轮转共享主通道。按字节传送。传输速度慢(P149图5-3)。数组选择通道—连接中、高速设备含一个分配型的子通道,一段时间内只能执行、控制一台设备工作。通道利用率低,传输速度快。数组多路通道—连接中、高速设备综合前两类的优点。四、I/O通道1、为什么引入通道2、通道的类型§5.1I/O系统的组成(六)中央处理机内存字节多路通道成组多路通道选择通道卡片输入机卡片输入机打印机磁盘磁带通道结构§5.1I/O系统的组成(七)图5-6解决“瓶颈问题”的多通路系统3、“瓶颈问题”由于通道及设备控制器的数量有限,可能造成I/O的瓶颈。§5.2I/O控制方式(一)(1)中断控制方式(2)DMA控制方式(3)通道控制方式设备管理的主要任务之一是控制设备与内存或CPU之间的数据传送,选择控制方式的原则是:保证在足够的传输速度下数据的正确传送。系统开销小。充分发挥硬件资源的能力。本节讨论CPU通过设备控制器来控制数据I/O的方式。常用的I/O控制方式向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存下条指令完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存下条指令完成未完中断CPU做其它事向I/O控制器发布读块命令CPU→DMACPU做其它事读DMA控制器的状态中断DMA→CPU下条指令(a)程序I/O方式(b)中断驱动方式(c)DMA方式§5.2I/O控制方式(二)一、中断控制方式中断—当主机接到外部信号时(如I/O完成信号)即停止原来的工作,转去处理这一事件,处理完后,主机又回到原来的断点继续工作。中断处理过程:(向CPU)中断源中断请求中断响应转中断处理程序退出中断保护CPU现场识别中断源恢复CPU现场§5.2I/O控制方式(三)也称中断驱动(Interrupt-Driver)I/O方式。1、中断控制过程进程提出I/O请求,CPU向设备控制器发出I/O指令后,返回继续执行。设备控制器按指令执行(与CPU并行工作)。一次I/O操作(1字节)完成,向CPU发中断信号,CPU作中断处理。P152图57(b)给出输入字符的中断控制过程。一、中断控制方式是以字节为单位进行I/O的,只适宜字符设备。效率虽然比程序I/O方式高,但不适宜块设备。2、特点中断处理过程(CPU、设备)中断处理过程§5.2I/O控制方式(四)由于大多数的小型、微型计算机采用总线结构,DMA方式是“窃取”或“挪用”CPU总线的控制权,即要求CPU暂停若干总线周期,由DMA控制器占有存储器周期进行设备与内存之间的数据交换。直接存储器访问DMA(DirectMemoryAccess)方式的引入是为解决中断控制方式对块设备低效的问题。减少中断次数。二、DMA控制方式1、DMA方式的基本思想(1)以数据块为单位进行数据传送。(2)设备与内存之间直接交换数据。§5.2I/O控制方式(五)DR—数据寄存器,暂时存放设备—内存间传送的信息。MAR—内存地址寄存器。DC—传送字(节)数寄存器。CR—命令/状态寄存器。接收从CPU发来的I/O命令、控制信息、设备状态。主机-控制器接口控制器-块设备接口2、DMA控制器的组成DRMARDCCRI/O控制逻辑CPU内存命令系统总线DMA控制器。。。count磁盘源地址数据DMA控制器的工作原理•当CPU欲把一块数据从某I/O设备读入内存某处或把一块数据从内存某处写入某I/O设备时,CPU将把相关数据块的长度通过DMA的“DataLines”脚写入DMA的“DataCount”寄存器中,把内存起始地址和I/O设备地址通过DMA的“DataLines”脚写入DMA的“AddressRegister”寄存器中,同时通过DMA的“Read”脚或“Write”脚向DMA发出读或写命令。•在工作期间,DMA将通过“DMARequest”脚和“DMAAcknowledge”脚控制相关的I/O设备,通过“DataLines”脚与I/O设备以及内存交换数据,并通过“AddressLines”脚寻址内存。§5.2I/O控制方式(六)以CPU从磁盘读入数据为例:•预置DMA的寄存器CPU命令CR内存地址MAR要读数据字数DC磁盘地址I/O控制逻辑•启动DMA,CPU返回工作设置CR中允许中断位和启动位为1,启动DMA工作。3、DMA工作过程•传送数据块挪用存储器周期,传送一个数据字(节)后,MAR加1,DC减1。•I/O中断处理重复执行,直至DC=0。磁盘控制器向CPU发中断请求。§5.2I/O控制方式(七)P154图5-9DMA方式的工作流程3、DMA工作过程设置CR和DC初值启动DMA传送命令挪用存储器周期传送数据字(节)存储器地址增1DC减1DC=0N继续执行进程准备传送下一数据字Y请求中断CPU命令CR内存始址MAR要读数据字数DC磁盘地址I/O控制逻辑DMA控制方式(CPU、设备)DMA控制过程向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存下条指令完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存下条指令完成未完中断CPU做其它事向I/O控制器发布读块命令CPU→DMACPU做其它事读DMA控制器的状态中断DMA→CPU下条指令(a)程序I/O方式(b)中断驱动方式(c)DMA方式§5.2I/O控制方式(八)CCW的信息:操作码内存地址传送数据字节数通道程序结束位P(P=1结束)记录结束标志R{通道(Channel)是比DMA方式更加完善,功能更强的I/O控制方式。DMA与通道方式的异同:相同:以内存为中心,实现设备与内存之间直接交换数据的控制方式。不同:通道是专门控制I/O的处理机。其指令称为通道控制字(CCW),由CCW编制的通道程序,独立执行I/O任务。三、通道控制方式1、I/O处理机0指令处理同一记录1处理记录结束§5.2I/O控制方式(九)DMA方式与通道控制方式的数据传送过程有何相同和不同之处?画出DMA及通道控制方式的控制流程图(分别画出输入、输出两种情况)。2、通道的控制过程:•CPU启动通道通道程序的始址存放在称为通道地址字(CAW)的内存单元中,由CPU启动通道程序后,CPU可去执行其他任务。•执行通道指令CCW,向设备控制器发出I/O操作命令。•设备根据CCW将数据传送到内存指定单元。•数据传送结束,I/O控制器向CPU发出中断请求命令。思考题§5.3缓冲管理(一)1、单缓冲区(singlebuffer)在设备和主机之间设置一个缓冲区。只能缓解速度匹配的问题。不能实现设备之间的并行操作。1、缓解CPU与外设速度不匹配的问题。2、减少CPU中断响应次数,放宽响应时间。3、提高CPU与I/O设备,I/O设备之间的并行操作能力。缓冲技术的基本思想:在内存中开辟一个或多个专用区域(缓冲区),作为CPU与I/O设备间信息的集散地。一、为什么引入缓冲技术二、缓冲区的组织缓冲区用户进程传送操作系统输入I/O设备图5-10利用缓冲寄存器实现缓冲1位缓冲9.6Kb/s8位缓冲寄存器送内存9.6Kb/s8位缓冲寄存器9.6Kb/s送内存(b)(a)(c)§5.3缓冲管理(二)一般是建立两个大小相等的缓冲区,设备交替对两个缓冲区输入数据,操作系统也交替地从两个缓冲区移出数据送用户进程区。二、双缓冲区(doublebuffer)缓冲区1用户进程传送操作系统输入I/O设备缓冲区2发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机双机通信的缓冲区设置§5.3缓冲管理(