《外部设备与主机的连接.ppt》由会员分享,可在线阅读,更多相关《外部设备与主机的连接.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.3 接接 口口 外部设备与主机的连接外部设备与主机的连接 并行通信和并行接口并行通信和并行接口 串行通信和串行接口串行通信和串行接口 任任何何数数字字计计算算机机的的用用途途很很大大程程度度上上取取决决于于它它所所能能连连接接的的外外围围设设备备的的范范围围。遗遗憾憾的的是是,由由于于外外围围设设备备种种类类繁繁多多,速速度度各各异异,不不可可能能简简单单地地把把外外围围设设备备连连接接在在CPU上上。因因此此,必必须须寻寻找找一一种种方方法法,一一边边将将同同某某种种计计算算机机连连接接起起来来,使使他他们们一一起起可可以正常工作。以正常工作。通通常常这这项项任任务务用用适适配配器器部部
2、件件来来完完成成。通通过过适适配配器器可可以以实实现现高高速速CPU和和低低速速外外设设之之间间速速度度上上的的匹匹配配和和同同步步,并并取取决决称称计计算算机机和和外外设设之之间间的的所所有有数数据据传传送送和和控控制制。适适配配器器通通常常称称为为接接口。口。外部设备与主机的连接外部设备与主机的连接 1.1.影响外部设备与主机连接方式的主要因素影响外部设备与主机连接方式的主要因素 (1)(1)I/OI/O系统的工作模式系统的工作模式 程序控制直接传送模式程序控制直接传送模式 程序查询控制模式程序查询控制模式 程序中断控制模式程序中断控制模式 直接存储器访问(直接存储器访问(DMADMA)模
3、式模式 通道控制模式通道控制模式 I/O处理机控制模式处理机控制模式 (2)(2)数据传送方式数据传送方式 并行传送并行传送 串行传送串行传送 (3)(3)数据通信的同步方式数据通信的同步方式 同步通信(发送端与接收端之间有统一的时钟)同步通信(发送端与接收端之间有统一的时钟)异异步步通通信信(发发送送端端与与接接收收端端之之间间无无统统一一的的时时钟钟,采采用用应应答控制方式。)答控制方式。)(4)(4)传送信息的种类传送信息的种类 设备地址信息设备地址信息 数据数据 设备状态信息设备状态信息 控制信息控制信息 2.2.外部设备与主机的连接模式外部设备与主机的连接模式 在在描描述述系系统统或
4、或部部件件之之间间的的连连接接时时,使使用用得得最最为为广广泛泛的的一一个个术术语语是是“接接口口”(interface)。这这里里,我我们们把把接接口口分分为为如如下下两两种种:把把插插入入在在两两个个彼彼此此不不能能直直接接连连接接的的机机器器或或系系统统之之间间,并并使使它它们们相相互互连连接接通通信信的的附附加加装装置置称称为为适适配配器器(adapter);把把位位于于一一种种设设备备、器器件件上上与与其其他他设设备备、器器件件相相连连接接的的部部分分称称为为I/O端端口口。适适配配器器是是主主机机和和外外部部设设备备之之间间的的桥桥梁梁,也也可可以以看看作作是是一一种种器器件件,它
5、它有有1个个面面向向主主机机的的I/O端端系系统统接接口口,另另1个个面面向向设设备备的的I/O端端口口设设备备接接口口。此此外外在在外外部部设设备备上上也也需需要要1个个与与适适配配器器连连接接的的I/O端端口口设设备备驱驱动动电电路路,在在主主机机方方面面需需要要1个个与与适适配配器器连连接的接的I/O端口端口主机的主机的I/O接口接口。这这3种器件或设备、种器件或设备、4个个I/O端口形成如下图所示的结构。端口形成如下图所示的结构。I/O接接口口系系统统接接口口设设备备接接口口设设备备驱驱动动电电路路主机主机适配器适配器设备设备地址地址控制、状态控制、状态数据数据图图 3.38 外部设备
6、与主机连接的一般模式外部设备与主机连接的一般模式 3.3.I/OI/O接口的寻址方式接口的寻址方式 CPU通过端口与外部设备进行通信:通过端口与外部设备进行通信:如发送命令、读取如发送命令、读取状态和传送数据。为此一个接口中常设置有与这些通信操作状态和传送数据。为此一个接口中常设置有与这些通信操作相对应的端口:相对应的端口:如命令端口、状态端口和数据端口。如命令端口、状态端口和数据端口。CPU要要访问这些端口,首先要解决寻址问题。这就是访问这些端口,首先要解决寻址问题。这就是I/O接口的寻址接口的寻址问题。问题。I/O接口的寻址有两种方式:接口的寻址有两种方式:端口地址与存储器地址统端口地址与
7、存储器地址统一编址一编址和和分别编址分别编址。前者把。前者把I/O端口当作存储器的一部分单元端口当作存储器的一部分单元进行访问,即进行访问,即I/O端口占用了存储器的一部分单元;端口占用了存储器的一部分单元;CPU不设不设置专门的置专门的I/O指令,用统一的访问存储器的命令访问指令,用统一的访问存储器的命令访问I/O端口。端口。后者要求用专门的后者要求用专门的I/O指令访问指令访问I/O端口,端口,I/O端口不占用存储端口不占用存储器空间,它与存储器分别使用两套独立的地址编码系统。器空间,它与存储器分别使用两套独立的地址编码系统。并行通信和并行接口并行通信和并行接口 1.并行接口概述将一个字或
8、其一部分(一个字节)的各并行接口概述将一个字或其一部分(一个字节)的各位用多根数据线同时进行传输,称为并行通信。实现并行通位用多根数据线同时进行传输,称为并行通信。实现并行通信的接口(适配器)是并行接口。一个并行接口可以设计为信的接口(适配器)是并行接口。一个并行接口可以设计为只作输出接口,或只作输入接口,还可以设计为既作为输入只作输出接口,或只作输入接口,还可以设计为既作为输入接口又作为输出接口。接口又作为输出接口。并并行行接接口口可可以以分分为为硬硬线线连连接接接接口口和和可可编编程程接接口口。硬硬线线连连接接接接口口的的工工作作方方式式及及功功能能不不能能用用编编程程的的方方法法加加以以
9、改改变变,只只能能用用硬硬线线连连接接设设定定;可可编编程程接接口口的的工工作作方方式式及及功功能能可可以以用用程程序序加以改变。加以改变。2.2.硬线连接并行接口硬线连接并行接口 硬线连接并行接口可分为硬线连接并行接口可分为3 3种。种。(1)(1)简单并行接口简单并行接口 简简单单并并行行接接口口,也也称称无无条条件件传传送送接接口口。它它仅仅用用于于外外设设与与CPUCPU交换数据之前就准备好了而不需要联络信号的情形。交换数据之前就准备好了而不需要联络信号的情形。(2)(2)条件传送接口条件传送接口 在实际应用中,大多数外部设备与在实际应用中,大多数外部设备与CPU之间交换的是一之间交换
10、的是一系列连续的数据,只有前一个数据发送或接收完成以后才能系列连续的数据,只有前一个数据发送或接收完成以后才能传送下一个数据。因此接口中必须带有自己的应答信号,以传送下一个数据。因此接口中必须带有自己的应答信号,以表明设备的状态,如设备已表明设备的状态,如设备已“准备好准备好”等。等。CPU在执行在执行I/O操操作时,要先检测外部设备是否已具备数据传送的条件,若不作时,要先检测外部设备是否已具备数据传送的条件,若不具备,则等待,直至设备作好准备。这种并行接口称为条件具备,则等待,直至设备作好准备。这种并行接口称为条件传送接口,或叫程序查询方式接口。它们的特点是带有应答传送接口,或叫程序查询方式
11、接口。它们的特点是带有应答信号。图信号。图3.21介绍的程序查询控制接口就是这种接口。介绍的程序查询控制接口就是这种接口。(3)(3)中断传送中断传送I/OI/O接口接口 采用中断方式与采用中断方式与CPU交换数据,让交换数据,让CPU实时地实现对外设实时地实现对外设的读写操作,这种并行接口叫做中断传送方式的读写操作,这种并行接口叫做中断传送方式I/O接口。这时接口。这时I/O设备的状态既可以作为程序查询的标志,又可以作为中断设备的状态既可以作为程序查询的标志,又可以作为中断请求信号。这种接口在节中已经作了介绍。请求信号。这种接口在节中已经作了介绍。3.可编程并行接口可编程并行接口(8255A
12、)可编程实际上是具有可选择性,如用户可以在程序中选择可编程实际上是具有可选择性,如用户可以在程序中选择哪一个或哪几个数据端口与外设连接;输入和输出分别占用哪一个或哪几个数据端口与外设连接;输入和输出分别占用端口中的哪一位或哪几位以及选择端口与端口中的哪一位或哪几位以及选择端口与CPU之间的数据传之间的数据传送模式等。它除了具有硬线连接接口的性能外,最主要的是送模式等。它除了具有硬线连接接口的性能外,最主要的是可编程。编程由用户用指令向端口送入方式字或控制字进行。可编程。编程由用户用指令向端口送入方式字或控制字进行。这种接口在微型计算机中称为这种接口在微型计算机中称为PIO。下面简要介绍一种适合
13、于下面简要介绍一种适合于IBM|PCIBM|PC系列机的系列机的PIOPIO芯片芯片82558255A A。(1)8255A (1)8255A内部结构内部结构 图图3.393.39为为82558255A A的的内内部部结结构构框框图图。它它由由A A,B B,C C 3 3个个数数据据端端口口、A/BA/B组组控控制制、读读/写写控控制制逻逻辑辑电电路路和和数数据据总总线线缓缓冲冲器器组组成。成。3个数据端口的组成及在个数据端口的组成及在PC/XT系统中的地址如表系统中的地址如表3.2所示。所示。A组控制组控制数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑B组控制组控制A组组A口口(8
14、位位)A组组C口高位口高位(4位位)B组组C口低位口低位(4位位)B组组B口口(8位位)PA7 PA0PC7 PC4PC3 PC0PB7 PB0D7 D0RDWRA1A0CSRESET图图3.39 8255A 内部结构内部结构端口端口端口端口A端口端口C端口端口B数据输入数据输入数据输出数据输出PC/XT中的地址中的地址1X8 位锁存器位锁存器1X8 位锁存位锁存/缓冲器缓冲器60H2X4位缓冲器位缓冲器2X4位锁存位锁存/缓冲器缓冲器62H1X8 位锁存器位锁存器1X8 位锁存位锁存/缓冲器缓冲器61H表表 3.2 8255A的的3个数据端口个数据端口 在在使使用用中中,端端口口A A和和端
15、端口口B B常常常常作作为为独独立立的的输输入入端端口口或或输输出出端端口口;端端口口C C常常常常分分为为上上下下两两部部分分,形形成成两两个个4 4位位端端口口,分分别别作为端口作为端口A A和端口和端口B B的输出控制信号和输入状态信号。的输出控制信号和输入状态信号。(2)8255A的工作方式的工作方式 8255A有有3种工作方式:种工作方式:方式方式0 0 方式方式0也称也称基本基本I/O方式方式。在这种方式下,端口。在这种方式下,端口A和端口和端口B以及两个以及两个4位的端口位的端口C,形成形成4个端口;任一端口都可以作输入个端口;任一端口都可以作输入口,也可以作输出口,各端口之间没
16、有规定必然的联系;各口,也可以作输出口,各端口之间没有规定必然的联系;各端口可以有端口可以有16 种不同的组合,可以适用于多种使用。种不同的组合,可以适用于多种使用。方式方式1 1 方式方式1也称也称选择选择I/O方式方式。当。当A,B端口按方式端口按方式1工作时,工作时,C的两个的两个4位端口要分别作为位端口要分别作为A,B 的输出控制信号和输入状态的输出控制信号和输入状态信号。信号。方式方式2 2 方方式式2 2也也称称双双向向传传输输方方式式,只只适适用用于于端端口口A A。这这时时端端口口C C要要为端口为端口A A自动提供相应的控制信号。自动提供相应的控制信号。(3)8255A控制字
17、控制字 8255A通过指令往端口设置控制字决定工作方式。控制通过指令往端口设置控制字决定工作方式。控制字分为两类:字分为两类:工作方式控制字和端口工作方式控制字和端口C置置1/置置0控制字。控制字。工作方式控制字工作方式控制字 工工作作方方式式控控制制字字,用用以以把把3 3个个端端口口分分为为A A组组(包包括括端端口口C C的的高高位位)和和B B组组(包包括括端端口口C C的的低低位位)来来设设置置工工作作方方式式。它它的的格格式式及每位定义如下图所示。及每位定义如下图所示。例如,要把例如,要把A口指定为方式口指定为方式1输入,输入,C口上半部为输出,口上半部为输出,B口为方式口为方式0
18、输出,输出,C口下半部为输入,工作方式字应为口下半部为输入,工作方式字应为10110001B或或B1H。初始化程序为:初始化程序为:MOV DX MOV DX,63H 63H;8255A8255A控制口地址控制口地址 MOV AL MOV AL,B1H B1H;置工作方式控制字置工作方式控制字 OUT DXOUT DX,AL AL ;送控制字到控制口送控制字到控制口 1D6D5D4D3D2D1D0特征位特征位A组方式组方式00:方式:方式001:方式:方式11X:方式方式2A口口0:输出:输出1:输入:输入C470:输出:输出1:输入:输入B组方式组方式0:方式:方式01:方式:方式1B口口0
19、:输出:输出1:输入:输入C030:输出:输出1:输入:输入 端口端口C C置置1/1/置置0 0控制字控制字 这这个个控控制制字字可可以以使使端端口口C C中中的的任任一一位位置置0/0/置置1 1,设设置置相相应应的的控制位。它的格式及每位的定义如下图所示。控制位。它的格式及每位的定义如下图所示。例例如如,要要对对端端口口C C的的PC7PC7位位置置1 1,则则控控制制字字应应为为0000111100001111B B,即即0 0FHFH;而而端端口口C C的的PC3PC3要要置置0 0,则则控控制制字字应应为为0000011000000110B B,即即0606H H。则相应程序段为则
20、相应程序段为 MOV ALMOV AL,OF OF ;送对送对PC7PC7置置1 1控制字控制字 MOV DXMOV DX,63H 63H;控制口地址送控制口地址送DXDX OUT DX OUT DX,AL AL;对对PC7PC7,置置1 1 MOV AL MOV AL,06H 06H;送控制字送控制字0606H H到到ALAL OUT DX OUT DX,AL AL;对对PC3置置04.微型计算机标准并行口微型计算机标准并行口1D6D5D4D3D2D1D0特征位特征位不用不用位选择位选择000:C口口0位位001:C口口1位位:111:C口口7位位1:置位:置位0:复位复位 标标准准接接口口
21、即即通通用用接接口口。目目前前的的标标准准并并行行接接口口主主要要作作为为打打印印机机端端口口,接接口口使使用用2525针针DB-25DB-25连连接接器器。常常用用的的并并行行接接口口有有如如下下几种:几种:标标准准并并行行接接口口:有有4 4位位、8 8位位和和半半8 8位位。大大多多数数的的PCPC机机配有配有4 4位或位或8 8位并口。位并口。EPPEPP口口(增增强强并并行行口口):8):8位位双双向向传传送送,可可以以用用于于连连接接扫扫描仪、描仪、CD-ROMCD-ROM驱动器等非打印设备。驱动器等非打印设备。ECPECP口口(扩扩展展并并行行口口):):支支持持多多个个逻逻辑辑
22、设设备备寻寻址址,在在多多任任务环境下可以使用务环境下可以使用DMADMA方式。方式。目目前前很很多多高高档档微微机机的的主主板板都都集集成成了了并并行行口口插插座座,标标注注为为LPT1,LPT2或或Paralle1和和Paralle2。5.5.磁盘接口磁盘接口 磁磁盘盘是是一一般般计计算算机机的的驻驻在在设设备备,因因此此磁磁盘盘与与主主机机的的接接口口显显得尤为重要,常见的磁盘接口有如下两种:得尤为重要,常见的磁盘接口有如下两种:(1)IDE接口接口 IDEIDE接接口口也也称称ATAATA端端口口,通通常常用用于于微微机机上上做做磁磁盘盘接接口口。IDEIDE接接口口最最多多可可接接两
23、两个个容容量量不不超超过过528528M M的的磁磁盘盘驱驱动动器器,不不支支持持DMADMA方方式式,但但其其成成本本低低,在在微微机机中中很很流流行行,几几乎乎所所有有的的586586主主板板上上都都集集成了两个成了两个IDEIDE接口插座接口插座,标注为标注为IDE1IDE1和和IDE2IDE2。(2)EIDE接口接口 EIDE接口是对接口是对IDE的改进,它可连接的改进,它可连接4个外设,而且外设个外设,而且外设不仅可以是磁盘,还可以是不仅可以是磁盘,还可以是CD-ROM和其他磁盘备份设备。和其他磁盘备份设备。对于硬盘的容量,可以控制的范围提高到了对于硬盘的容量,可以控制的范围提高到了
24、8G,其数据传输其数据传输率要比率要比IDE高。高。串行通信和串行接口串行通信和串行接口 串串行行通通信信是是在在一一根根传传输输线线上上一一位位一一位位地地传传输输信信息息。由由于于所用的传输线根数少,特别适合于远距离的信息传送。所用的传输线根数少,特别适合于远距离的信息传送。1.串行通信的同步方式和异步方式串行通信的同步方式和异步方式 并并行行通通信信时时,一一组组信信息息按按位位分分别别同同时时传传送送,联联络络信信号号通通过过专专用用的的控控制制线线传传送送,数数据据信信息息通通过过数数据据线线传传送送,由由于于所所用用的的线线不不同同,各各位位的的作作用用很很清清楚楚。串串行行通通信
25、信时时情情况况就就不不同同了了。一一组组信信息息要要一一位位一一位位地地传传送送,联联络络信信号号、数数据据信信号号都都在在一一根根线线上上依依次次传传送送,为为区区分分它它们们,就就要要给给出出串串行行通通信信的的信信息息格格式式约约定定,并并把把串串行行通通信信分分为为异异步步和和同同步步两两种种信信息息格格式式,形形成成异异步步通信和同步通信两种方式。通信和同步通信两种方式。异步通信异步通信(又称起止式通信又称起止式通信)是把每个字符作为独立的整是把每个字符作为独立的整体进行传输。为实现通信双方的同步,每位字符传送组织的体进行传输。为实现通信双方的同步,每位字符传送组织的方式如下图所示:
26、编码第方式如下图所示:编码第1位前加位前加1位起始位,表示一个字符位起始位,表示一个字符传送的开始,编码的最后传送的开始,编码的最后1位后加位后加1位或多位停止位,表示一位或多位停止位,表示一个字符传送完毕。信息编码与停止位之间可插入校验位。这个字符传送完毕。信息编码与停止位之间可插入校验位。这种通信方式中,从一个字符的结束到下一个字符的开始没有种通信方式中,从一个字符的结束到下一个字符的开始没有固定的时间间隔,因此称之为异步通信。固定的时间间隔,因此称之为异步通信。0/1 0/1 10 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 10 0/1 0/1 0/1 0/1奇偶奇
27、偶校验校验停停止止位位起始位起始位低位低位高位高位7位数据位数据奇偶奇偶校验校验停停止止位位起始位起始位7位数据位数据第第n个字符个字符第第(n+1)个字符个字符第第(n-1)个字符个字符下降边指出下下降边指出下一个字符的开始一个字符的开始数据流向数据流向 同步通信是把数据块同步通信是把数据块(字符顺序组织字符顺序组织)作为传输单位,格作为传输单位,格式如下图所示,只在数据块的首部加同步字符,表示数据传式如下图所示,只在数据块的首部加同步字符,表示数据传送的开始,数据块的数据间没有空隙,严格按规定的速率发送的开始,数据块的数据间没有空隙,严格按规定的速率发送和接收,在数据块尾部可带校验码,最后
28、以同步字符结束,送和接收,在数据块尾部可带校验码,最后以同步字符结束,表示数据块传送结束。数据块连同附加的同步字符和校验码表示数据块传送结束。数据块连同附加的同步字符和校验码信息称为一帧。信息称为一帧。SYNC字符字符1字符字符2字符字符nCRC1CRC2SYNC1帧帧同步字符同步字符(开始)(开始)同步字符同步字符(结束)(结束)检验检验字符字符1检验检验字符字符2 同步字符起联络作用。不同的通信系统对同步字符的约同步字符起联络作用。不同的通信系统对同步字符的约定不同,有的约定用定不同,有的约定用0111111001111110作为同步字符,有的约定用作为同步字符,有的约定用00010110
29、00010110作为同步字符。传送开始后,接收设备首先搜索同作为同步字符。传送开始后,接收设备首先搜索同步字符。在同步字符后,传送的是一个数据块,为了正确地步字符。在同步字符后,传送的是一个数据块,为了正确地接收字符,要求接收设备和发送设备保持完全的同步。而为接收字符,要求接收设备和发送设备保持完全的同步。而为了使两个系统的时钟同步,需要有专门的设备(近距离传输了使两个系统的时钟同步,需要有专门的设备(近距离传输时,增加一根时钟信号线)或采用锁相技术(远距离通信时)时,增加一根时钟信号线)或采用锁相技术(远距离通信时)等提取同步信号。等提取同步信号。2.串行接口串行接口 串行通信接口的基本任务
30、有如下几条:串行通信接口的基本任务有如下几条:(1)实现串行数据格式化实现串行数据格式化 在在异异步步通通信信方方式式下下,自自动动生生成成(发发送送时时)或或去去掉掉(接接收收时时)启启/停停位位。在在同同步步通通信信方方式式下下发发送送时时,在在数数据据块块前前自自动动加加上同步字符。上同步字符。(2)进行串进行串|并变换并变换 把把外外部部的的串串行行输输入入码码转转换换成成计计算算机机所所需需的的并并行行码码,把把计计算机内部的并行码转换为在外部传送的串行码。算机内部的并行码转换为在外部传送的串行码。(3)可靠性检验可靠性检验 发送时接口电路自动生成奇偶校验位等校验码;接收时,发送时接
31、口电路自动生成奇偶校验位等校验码;接收时,接口电路对字符加以自动校验。接口电路对字符加以自动校验。(4)实施连接和控制实施连接和控制 目目前前,广广泛泛使使用用的的一一种种通通用用串串行行数数据据接接口口叫叫USARTUSART(异异步步接接收收发发送送器器)。随随着着大大规规模模集集成成电电路路技技术术的的发发展展,通通用用可可编编程程同同步步和和异异步步接接口口芯芯片片USARTUSART的的种种类类越越来来越越多多,Intel Intel 82518251就就是是其其中中一一个个代代表表。下下图图为为Intel 8251Intel 8251的结构框图。其编程原理与的结构框图。其编程原理与
32、82558255A A有些相似。有些相似。数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑调制控制调制控制发送缓冲器发送缓冲器发送控制发送控制接收缓冲器接收缓冲器接收控制接收控制TXDTXRDYTXEMPTYTXCRXDRXRDYSYNDETRXCD 07RESETCLKC/DRDWRCSDTRDSRRTSCTS内部数据总线内部数据总线3.3.微型计算机标准串行口微型计算机标准串行口 一一般般微微机机均均有有两两个个串串行行口口COM1COM1和和COM2COM2。COM1COM1采采用用9 9针针DB-9DB-9连连接接器器,COM2COM2有有的的使使用用的的是是DB|25DB|25
33、针针连连接接器器。通通常常串串行行口口常常常常用用于于鼠鼠标标和和打打印印机机接接口口。由由于于串串行行传传送送数数据据距距离离较较长长,因因此,长距离数据通信中往往采用串行口。此,长距离数据通信中往往采用串行口。3.4 I/O设备管理设备管理 3.4.1 缓冲区技术缓冲区技术 3.4.2 设备驱动程序设备驱动程序 3.4.3 I/O设备分配设备分配 3.4.1 缓冲区技术缓冲区技术 1.缓冲区的作用缓冲区的作用 (1)高低速设备之间的速度匹配)高低速设备之间的速度匹配 中断和通道技术为中断和通道技术为CPU与外设之间的并行操作提供了可与外设之间的并行操作提供了可能。但是由于能。但是由于CPU
34、与外设之间的速度的不匹配以及外设频繁与外设之间的速度的不匹配以及外设频繁地中断地中断CPU的运行,仍会降低的运行,仍会降低CPU的工作效率。为此在输入的工作效率。为此在输入/输出系统中引入了缓冲技术。输出系统中引入了缓冲技术。其基本方法是在其基本方法是在CPU与外设之间设置一个缓冲区,当与外设之间设置一个缓冲区,当CPU要向外设输出数据时,先把数据送到缓冲区中,让外设要向外设输出数据时,先把数据送到缓冲区中,让外设慢慢地去慢慢地去“消化消化”,CPU可以继续进行别的工作;当外设要可以继续进行别的工作;当外设要向向CPU输入数据时,先慢慢地把数据送到缓冲区中,输入数据时,先慢慢地把数据送到缓冲区
35、中,CPU需需要时可以像使用内存中的数据那样使用缓冲区中的数据。要时可以像使用内存中的数据那样使用缓冲区中的数据。外部设备虽然慢但处理的数据量少,外部设备虽然慢但处理的数据量少,CPU处理的数据量大处理的数据量大但速度快,借用缓冲就能很好地解决二者之间的匹配问题。例但速度快,借用缓冲就能很好地解决二者之间的匹配问题。例如如如如CPU与打印机通信时,当与打印机通信时,当CPU引发一个输出时,只需快速引发一个输出时,只需快速地把数据送到缓冲区中即可,接着便可以去作别的工作,缓冲地把数据送到缓冲区中即可,接着便可以去作别的工作,缓冲区中的数据则由打印机慢慢地享用,从而减少了中断次数。区中的数据则由打
36、印机慢慢地享用,从而减少了中断次数。在在存存储储体体系系中中,缓缓冲冲技技术术成成为为解解决决容容量量与与速速度度之之间间的的矛矛盾盾的的主主要要方方法法,Cache实实际际上上就就是是主主存存与与CPU之之间间的的缓缓冲冲区区。再再如如,当当CPU要要与与磁磁盘盘交交换换数数据据时时,也也以以缓缓冲冲区区作作为为中中间间过过渡渡环环节。节。(2)一次读入的信息能多次使用)一次读入的信息能多次使用 使用过文件的人都会有一个体验:当你要浏览一张软盘中使用过文件的人都会有一个体验:当你要浏览一张软盘中的文件目录时,第一次时间是比较慢的;如果你中间又浏览另的文件目录时,第一次时间是比较慢的;如果你中
37、间又浏览另外的目录再返回来浏览先前那张软盘目录时,会发现快多了。外的目录再返回来浏览先前那张软盘目录时,会发现快多了。原因就在于第一次浏览时,软盘目录已经调入内存的缓冲区了。原因就在于第一次浏览时,软盘目录已经调入内存的缓冲区了。一般地说,在通道或控制器内设置局部寄存器,可以暂存一般地说,在通道或控制器内设置局部寄存器,可以暂存I/O信信息,减少息,减少CPU的中断次数。的中断次数。(3)中转)中转 通通过过中中转转避避免免外外设设与与CPU之之间间的的完完全全互互连连,可可以以解解决决设设备备连接和数据传输的复杂性。连接和数据传输的复杂性。2.缓冲区的实现缓冲区的实现 为为了了有有效效地地进
38、进行行I/O操操作作,缓缓冲冲存存储储已已经经成成为为不不同同设设备备之之间间相相互互连连接接的的重重要要环环节节。现现代代计计算算机机系系统统中中在在信信息息传传输输的的通通道道上上设设置置和和增增加加了了各各种种各各样样的的存存储储器器,例例如如显显示示存存储储器器、打打印印缓缓冲冲区区等等。当当然然,并并非非所所有有的的I/O操操作作都都要要经经过过缓缓冲冲区区。例例如有的作业可以直接输入到外存,再由外存调入内存执行。如有的作业可以直接输入到外存,再由外存调入内存执行。缓缓冲冲区区可可以以用用硬硬件件实实现现,也也可可以以用用软软件件实实现现。硬硬缓缓冲冲区区通通常设在设备中,软缓冲区由
39、软件设置在内存中。常设在设备中,软缓冲区由软件设置在内存中。按按照照组组织织方方式式缓缓冲冲技技术术可可以以分分为为:单单缓缓冲冲、双双缓缓冲冲、多多缓缓冲和缓冲池等形式。冲和缓冲池等形式。(1)单单缓缓冲冲:在在设设备备与与CPU之之间间设设置置一一个个缓缓冲冲区区。显显然然单单缓冲区难以解决两台设备之间的并行操作。缓冲区难以解决两台设备之间的并行操作。(2)双双缓缓冲冲:在在设设备备与与CPU之之间间设设置置两两个个缓缓冲冲区区,这这样样可可以解决两台设备之间的并行操作问题。以解决两台设备之间的并行操作问题。(3)多多缓缓冲冲:把把多多个个缓缓冲冲区区连连接接起起来来组组成成两两个个部部分
40、分:一一部部分用于输入,另一部分用于输出。分用于输入,另一部分用于输出。(4)缓冲池:把多个缓冲区连接起来统一管理,既可用于缓冲池:把多个缓冲区连接起来统一管理,既可用于输入,又可用于输出。输入,又可用于输出。3.3.缓冲区管理缓冲区管理 下面以缓冲池为例来介绍缓冲区的管理方法。下面以缓冲池为例来介绍缓冲区的管理方法。一个缓冲区由两部分组成:缓冲首部和缓冲体。缓冲体一个缓冲区由两部分组成:缓冲首部和缓冲体。缓冲体用于存放数据。缓冲首部用来标识所在缓冲区以便对其进行用于存放数据。缓冲首部用来标识所在缓冲区以便对其进行管理,它由下图所示的几部分组成。管理,它由下图所示的几部分组成。设备号设备号数据
41、块号数据块号缓冲器号缓冲器号互斥标识位互斥标识位队列连接指针队列连接指针 利利用用缓缓冲冲首首部部的的队队列列连连接接指指针针,可可以以将将缓缓冲冲池池中中的的缓冲区组织成缓冲区组织成3种队列:种队列:空闲缓冲队列:未使用的缓冲区队列。空闲缓冲队列:未使用的缓冲区队列。输入缓冲队列:装满输入数据的缓冲区组成的队列。输入缓冲队列:装满输入数据的缓冲区组成的队列。输出缓冲队列:装满输出数据的缓冲区组成的队列。输出缓冲队列:装满输出数据的缓冲区组成的队列。缓冲池工作时,将按如下算法进行:缓冲池工作时,将按如下算法进行:(1)当当设设备备有有输输入入数数据据时时,先先从从空空闲闲队队列列中中(队队首首
42、)申申请请一一个个缓缓冲冲区区称称为为收收容容输输入入缓缓冲冲区区,将将输输入入数数据据写写入入收收容容输输入入缓缓冲冲区区中中;写写满满后后,按按一一定定规规则则(如如FIFO)插插入入到到输输入入缓冲队列中。缓冲队列中。(2)当)当CPU(系统)要提取数据时,将从输入缓冲队列系统)要提取数据时,将从输入缓冲队列中(队首)申请一个缓冲区中(队首)申请一个缓冲区称为提取输入缓冲区,从中称为提取输入缓冲区,从中读取数据;提取结束后,将该缓冲区插入到空闲队列。读取数据;提取结束后,将该缓冲区插入到空闲队列。(3)当当CPU要要输输出出数数据据时时,先先从从空空闲闲队队列列中中(队队首首)申申请请一
43、一个个缓缓冲冲区区称称为为收收容容输输出出缓缓冲冲区区,将将输输出出数数据据写写入入收收容容输输出出缓缓冲冲区区中中;写写满满后后,按按一一定定规规则则(如如FIFO)插插入入到到输输出缓冲队列中。出缓冲队列中。(4)当设备要提取数据时,将从输出缓冲队列中(队首)当设备要提取数据时,将从输出缓冲队列中(队首)申请一个缓冲区,从中读取申请一个缓冲区,从中读取数据数据称为提取输出缓冲区;称为提取输出缓冲区;提取结束后,将该缓冲区插入到空闲队列。提取结束后,将该缓冲区插入到空闲队列。上上述述收收容容输输入入缓缓冲冲区区、提提取取输输入入缓缓冲冲区区、收收容容输输出出缓缓冲冲区区和和提提取取输输出出缓
44、缓冲冲区区统统称称为为工工作作缓缓冲冲区区。与与它它们们对对应应的的输输入入、提取、输出操作,由相应的过程实现。提取、输出操作,由相应的过程实现。3.4.2 设备驱动程序设备驱动程序 每每一一台台外外部部设设备备的的使使用用都都要要涉涉及及DMA 或或中中断断过过程程,并并要要借借助助一一些些特特定定的的寄寄存存器器进进行行机机器器指指令令级级的的操操作作。但但是是,用用户户都都是是通通过过一一些些应应用用程程序序,使使用用简简单单的的命命令令来来使使用用外外部部设设备备的的,不可能进行这样一些低级的操作。不可能进行这样一些低级的操作。另另一一方方面面,随随着着计计算算机机应应用用的的深深入入
45、和和广广泛泛展展开开,计计算算机机所所使使用用的的外外部部设设备备品品种种越越来来越越多多。即即使使同同样样一一种种用用途途的的设设备备,由于生产厂家不用,型号不同,其操作方法也会不同。由于生产厂家不用,型号不同,其操作方法也会不同。操操作作系系统统只只是是设设置置了了一一些些通通用用性性的的I/O操操作作和和管管理理模模块块,与与设设备备的的具具体体操操作作关关系系密密切切的的程程序序,往往往往是是设设备备制制造造厂厂家家在在研制设备的同时开发的。这种程序就称为设备驱动程序。研制设备的同时开发的。这种程序就称为设备驱动程序。1.设备驱动程序的功能设备驱动程序的功能 设设备备驱驱动动程程序序进
46、进行行的的处处理理工工作作,对对不不同同的的设设备备有有所所不不同同,但但基基本本任任务务是是启启动动指指定定设设备备,并并且且在在启启动动设设备备之之前前完完成成一一系系列准备工作。一般地说,设备驱动程序的工作过程如下所述。列准备工作。一般地说,设备驱动程序的工作过程如下所述。(1)将应用程序中的抽象要求转换为具体要求)将应用程序中的抽象要求转换为具体要求 设设备备是是由由设设备备控控制制器器控控制制的的。但但是是用用户户与与上上层层软软件件的的应应用用程程序序并并不不了了解解设设备备控控制制器器的的细细节节,而而只只能能给给它它提提出出抽抽象象要要求求命命令令。而而设设备备控控制制器器又又
47、不不能能理理解解这这些些抽抽象象要要求求。于于是是,驱驱动动程程序序就就肩肩负负了了中中间间转转换换作作用用,要要将将抽抽象象要要求求转转换换为为具具体体要要求求,确确定定将将命命令令、数数据据和和参参数数分分别别送送到到设设备备控控制制器器的的哪哪个个寄存器。寄存器。(2)对)对I/O请求进行合法性检查请求进行合法性检查检查用户要求是否能为设备接受,是否属于设备的功能范围。检查用户要求是否能为设备接受,是否属于设备的功能范围。(3)读出并检查设备状态)读出并检查设备状态 启启动动设设备备控控制制器器的的条条件件是是设设备备就就绪绪,如如对对打打印印机机要要检检查查:电电源源是是否否合合上上、
48、是是否否有有纸纸等等;对对软软盘盘驱驱动动器器要要检检查查:有有无无磁磁盘、有无写保护等。盘、有无写保护等。(4)传送必要的参数)传送必要的参数 如要提供本次传送的字节数等。如要提供本次传送的字节数等。(5)设置工作方式)设置工作方式 例例如如对对于于异异步步串串行行通通信信接接口口要要设设置置:传传输输速速率率、奇奇偶偶检检验方式、停止位宽度及数据长度等。验方式、停止位宽度及数据长度等。(6)启动)启动I/O设备设备 完成上述工作后,即可向设备控制器发出启动命令。完成上述工作后,即可向设备控制器发出启动命令。2.设备驱动程序的结构设备驱动程序的结构 一般说来,设备驱动程序应包含如下一般说来,
49、设备驱动程序应包含如下5部分:部分:(1)设备标题()设备标题(device header););(2)数数 据据 存存 储储 和和 局局 部部 过过 程程(data storage&local procedure););(3)策略过程(策略过程(strategy procedure););(4)中断过程(中断过程(interrupt procedure););(5)命令处理子程序(命令处理子程序(command processing)。)。3.设备驱动程序在设备驱动程序在I/O系统中的位置系统中的位置 下下图图给给出出了了I/O系系统统的的一一般般结结构构。自自底底向向上上,它它由由硬硬件件
50、、中中断断处处理理程程序序、设设备备驱驱动动程程序序、与与设设备备无无关关的的系系统统软软件件以以及及用用户户空间软件等空间软件等5个层次组成。图中的箭头给出了个层次组成。图中的箭头给出了I/O部分的控制流。部分的控制流。与与设设备备无无关关的的系系统统软软件件的的主主要要作作用用是是在在用用户户应应用用程程序序和和与与设设备备相相关关的的程程序序之之间间提提供供一一个个统统一一的的接接口口。它它的的具具体体作作用用如如下下所述。所述。用户空间软件用户空间软件与设备无关的系统软件与设备无关的系统软件设备驱动顺序设备驱动顺序中断处理程序中断处理程序硬件硬件I/O请求请求I/O回答回答 (1)名字