具有通用操作系统接口的设备驱动系统的制作方法

文档序号:6406579阅读:191来源:国知局
专利名称:具有通用操作系统接口的设备驱动系统的制作方法
技术领域
本发明涉及数据处理领域,并且更详细地讲,涉及到对各设备驱动系统的一些改进,从而一个设备驱动系统的主要部分(这里称为“芯体”〔Core〕)具有一个通用的操作系统接口,使这样的“芯体”用于各种不同的操作系统,而不用对该芯体作任何实质的改变。
作为技术背景来说,设备驱动器是控制或处理自I/O〔输入或输出〕设备流入或输出的数据流的程度或程序。驱动器形成操作系统的一部分并与操作系统其它部分相互作用。一个操作系统通常包括用于I/O设备的一套基本的设备驱动器,例如,个人计算机通常使用的键盘、固定磁盘和软盘、显示器以及打印机,当一个I/O设备加到一个数据处理系统中,并且这样的设备不能被已有的操作器所操作器所操作时,为了应用这一设备则必须对该系统增加一台新的驱动器。这样的新驱动器照例由该I/O设备的制造方提供,并且按照该操作系统所建立的程序安装在该系统中。在具有IBM DOS或OS/2操作系统进行操作的个人计算机中,在起动或套用这类计算机时,利用在一个配置系统(CONFIG·SYS)文件中的命令或指令来建立这样的驱动器。
通常为了一个具体的操作系统来建立各种设备驱动器。在IBM系统期刊1988年第2期27卷170-184页中A.M.Mizell著的“理解操作系统/2的设备驱动器”一文中阐述了设备驱动器对IBM SS/2操作系统的关系。这种操作系统提供多重任务的操作,其中不同的程序能够共同兼用单一设备,以及一个或多个程序同时应用各不同的设备。十分明显,这种设备驱动器和设备处理程序是十分复杂的,并且通常成为操作系统的从属物,为一个操作系统所设计的一个设备驱动器不进行大量的修改则不能为另一操作系统所用。
高性能型号的IBM PS/2个人计算机包括有按照Micro Channel(微通道)结构设计的总线。(IBM,OS/2,PS/2和Micro Channel是国际商用机器(IBM)公司的商标)。这样的总线以下称为“MC总线”,并且提供这样的装置,即用它可将附加的I/O设备和附属系统连接到各个计算机上。SCSI(Small Computer System Interface小型计算机系统接口)总线是按照SCSI体系设计的一条总线,并提供一套标准化设计,把SCSI设准的I/O设备在其上连接,也即是专门设计的用于连接到一条SCSI总线上的设备。SCSI体系定义了一项SCSI指令组,用于访问SCSI设备。SCSI适配器和SCSI ABIOS(前置基本输入/输出操作系统)可在市场买到,并且它允许SCSI设备通过一条MC总线连接到PS/2计算机。91年2月12日提交的美国专利申请号07/654,441,公开了这种SCSI设备用的一种设备驱动系统,即D.T.Feriozi Jr.等人提出的题为“用于多重任务的操作系统的SCSI设备驱动器”,并转让给本发明要求权利保护的受让人。在该类申请所公开的系统中,SCSI设备驱动器是专门为OS/2操作系统之用而建立的,这种驱动器必须大加修改才能用于其它操作系统。
一个设备驱动系统一般能分成两个主要部分,一部分是与操作系统接口的部分,以及第二是与硬件连接的接口部分,它包括处理I/O设备所需的专用信息。据我们估计,致力于开发建立不同操作系统用的新型设备驱动器中有10-20%的努力是在一部分,而其余80~90%是消耗在开发第二部分。本发明的主要目的之一就是提供一种设备驱动器芯,这通用于多个不同的操作系统,并且不需修改而被用于各不同的操作系统。这样的系统还包括一个操作系统专用变址层,用于转换在该芯体中的一个通用操作系统接口和一个被使用的操作系统中专用的设备驱动器接口之间的信息。当该芯用于不同的操作系统时,只需改变该变址层即可,这样就可节省80~90%致力于整个设备驱动器系统不得不重新设计和开发所需的消耗。
本发明的目的之一是提供一种不需要实质上的修改而能用于各不同操作系统的设备驱动器系统。
本发明的另一目的在于提供一个具有通用于各不同操作系统的芯体的设备驱动器系统。
本发明的进一步目的在于一种设备驱动器系统,用于处理各不同操作系统中的极不相同的各I/O设备,包括SCSI设备。
本发明的再一个目的在于提供一种通用的设备驱动器芯体,它能应用于各不同的操作系统,并且还允许扩展该芯体来适应新的或不同的设备和特性,这些是前些已有设备驱动器所不能提供的。
本发明还有一个另外目的在于提供具有一个卡片状态机的一种设备驱动器芯体,该状态机包括多个逻辑设备状态机,这些机器模拟了相应于I/O设备中的各具体的设备状态机,并且能使这些相应成对儿的逻辑状态机和具体状态机在互相直接对应(peer-to-peer basis)的基础上接口。
本发明的另一个目的在于提供具有一个传送层的一种设备驱动器芯体,该传送层提供给该系统中的每一SCSI适配器卡片,以及提供一组能被该卡片使用的传送功能。
简言之,根据本发明,一种设备驱动系统包括处理多个指定功能的I/O设备的芯体。该芯体包括一个操作系统接口,它通用于各不同操作系统,一个操作系统包括只有该操作系统才有的一个设备驱动器接口。一个转换程序被放于该芯体和该操作系统之间的层中,用于转换该操作系统的设备驱动器接口和该芯体的通用操作系统接口之间的信息。
本发明的其它目的和优点从下面结合附图所作的说明中可清楚了解。


图1是实施本发明的数据处理系统的方框图;
图2是图1所示系统接口的更详细的方框图。以及图3是图1所示操作系统独立设备驱动器的更详细的方框图。
现在参照附图,并首先看图1,这里表示一个数据操作系统10可在一个操作系统(OS)的操作下执行应用程序16、系统10包括连接到总线系统14的一个处理器12,该总线14将系统10的其它各元件互相连接起来,其它元件包括一个RAM(随机存取存储器)18、一个键盘20、一个显示器22、一个软盘驱动器24,一个固定盘驱动器26,以及多个MC(微通道)连接器28。两个SCSI适配器30和30′被插到各不同的连接器28之一。适配器30被接到一个SCSI总线31上,该总线31依次接到一个视觉SCSI设备32和一个磁带SCSI设备33上。适配器30′连接到另一SCSI总线31′,该总线31′依次连接到一个磁带SCSI设备34和一个SCSI直接访问存储设备(DASD)35上。适配器30包括一个具体卡片状态机(PCSM)36;适配器30′也包括一个PCSM(未示出)。很显然,适配器卡片和I/O设备的型式和数目可根据用户的需要随着一个系统到另一个系统而改变,并且所说明的系统仅是为了理解本发明而考虑的例子。还须注意,项目30和30′这里可用同义语和互换的术语“适配器”、“适配器卡片”和“卡片”来表示。
应用程序16存储于RAM18中由处理器12执行,该操作系统包括存储RAM18中由处理器12执行的一个核心11,存储在RAM18中还有一个三元设备驱动器系统,它包括OS特定设备驱动器(OSSDD)38、一个OS特定的变址层(OSSML)40和一个设备驱动器芯体(DDC)42。除该设备驱动系统外,(也即除元件38、40和42外),描述在上面的系统10的其它接口是市场可买到的,所以根据本理解本发明的需要,在这里仅对它们作那么多详述。OSSDD 38包括一组设备驱动器程序,这些是该操作系统的特定程序,并且提供一个对OSSML40的接口,它符合于标准接口,通过此接口将操作系统提供到常规的各设备驱动器。DDC 42具有一个与操作系统相连的接口,它通用于多个操作系统。OSSML 40是一层在OSSDD38和DDC 42之间的功能层,它将对经过标准操作系统设备驱动器接口和通用的设备驱动器操作系统接口之间的项目进行转换。DDC42实施成在各不同的操作系统之间可以轻便移动,因此,如果一个不同的操作系统被装在系统10中,仍能应用DDC42,不过OSSDD38和OSSML40需被替换,以便与新的操作系统相一致。
参照图2,应用程序16根据系统调入43对该操作系统发出的I/O请求而访问I/O设备32-35。这样的调入被OS核芯11接受,该核芯将这些调入译码,然后根据该请求被导引到的设备类别发送到一个OSSDD中。所述系统有两个SCSI设备类别,一个DASD类和一个磁带夹。该系统因而有两个OSSDD38和38′用于处理这不同类别的请求。OSSDD发布命令并将数据经过该标准化的操作系统设备驱动接口46送到OSSML,该OSSML译码和转换这些指令以便经过设备驱动器操作系统接口48送到DDC42。OSSML也有两个相应于这两个类别的部件40和40′。接口46包括下列SCSI的程序设备-开始(dev-init),设备-起动(dev-start),设备-停止(dev-stop),设备-检查(dev-rw),设备-储存(dev-reserve),设备-接通(dev-close),设备-格式(dev-format),SCSI-寻找-类别(scsi-find-class),SCSi-得到-返回(scsi-get-rtns),SCSi-寄存-分类(scsi-register-class),SCSi-寄存-设备-返回(scsi-register-dev-rnts),开始-SCSi-输入/输出(begin-scsi-io),do-scsi-cmd,SCSi-开始(scsi-init),SCSi-停止设备(scsi-stopdev),得到-询问(get-inquiry),高密度数据操作读(hddoread),高密度数据操作(hddowrite),以及置一类别0(set-class 0)。接口46还包括返回到OS核芯的各接口,包括得到-无设备(get-devno),报告-错误(report-err),输入/输出-已做(io-done),以及图象-输入/输出(map-io)。
DDC42包括多类设备驱动器50和52,它们分别通用于SCSI DASD类别和SCSI磁带类。自接口48收到的I/O请求直接引向适当类别的驱动器。四个特定的设备驱动器(SDD)驱动器54、56、58和60专门或唯一的对每个特定的SCSI设备提供驱动器功能。驱动器54和56对视觉的SCSI设备32和DASD SCSI设备35提供的驱动器功能。驱动器58和60对磁带设备33和34提供特定的驱动器功能。这两个专用的磁带设备,例如,可以是一个4毫米的磁带驱动和一个8毫米的磁带驱动(要求稍微不同于SDDS)。DDC42还包括一个通道处理器62和具有多个传送程序64及66的一个传送层,对系统中的每个SCSI适匹器有一个传送程序。
OS核芯11还包括设备驱动器辅助装置70,它由各不同的例行程序调入于设备驱动器系统中。因OSSDD 38是操作系统专用的,所以辅助装置70直接由请求72调入。但是,在DC42中的程序发出请求76,它是通用于那样的操作系统辅助装置的,以及OSSML40将那样的请求译码成该操作系统专用的请求74。这样的请求通常是用于提取程序以便从该OS获得信息。
图3表示对通道处理器62诸多细部与候传送层和状态机之间的关系。通道处理器62包括一个请求分配器80、请求入列82、一个指令起动器84和一个逻辑卡片状态机(CSM)87通道处理器62接受请求分配器80中的I/O请求。当在大约同一时间接受多个请求时,这些请求被堆积在分配器的内部,然后每次服务一个。分配器80确定该请求是为了哪个SCSI设备,执行在入队前需作的任何一项功能,建立一个通用的请求方框,并且将此请求方框分配到相应的设备队列82。
设备队列82包括三部分一个入队功能92、多个设备请求排队94/n(这些“n”识别所连接的I/O设备),以及一个出队功能98,每个请求队列是由个个请求方框96组成的。当从分配器80接受一个请求方框96时,入队功能92即把该请求方框相应于提出该请求的I/O设备放在该队列94中,在响应从指令起动器84接受的一条信息而为一个具体设备传送下一个请求方框中,出队功能98从一个排队列中撤出一个请求方框96,并将其传送到该请求器。该出队功能可用很多种方法进行,例如FIFO(先进、先出)、优先权等级等。
指令起动器84把接受的请求通用方框96的转换成SCSI特定的请求方框102,然后通过传送层64或66之一传送到一个系统状态机,以用于I/O请求所被指引到的设备,指令起动器根据每一个通用的请求建立一个或以上的SCSI指令,或把多个通用请求优化成为一个单一的SCSI指令,例如,若干个系列盘阅读该能优化为一个单一的SCSI读指令。因为各传送层都是相似的,所以只在图3中示出一层64,以使说明简单些,与层66的联系通过示于起动器84的右边处的路径实现。
CSM87在逻辑上相同于PCSM36且包含一个卡片数据结构112,它在下面讨论的其它元件中,包括相应的PSSM状态方面的信息。CSM还包括有多个逻辑设备状态机(LDSM)88,有一个LDSM88是为系统中每个I/O设备用的,多个LDSM与相应于该卡片的传送层相连接,该卡片与各I/O设备连接。因此,LDSM 88/32和88/33与传送层64相互作用,这是因为设备32和33被接到层64相对应的适配器30的缘故。传送层64是字符的E形且具有3个属层64A-64C,各种不同的请求和信息通过它们。属层64A接受从起动器84来的一项请求,确定还被连接的适配器同时处理的请求的数量是否超过了该适配置在任一给定时间所能处理的最大数目,如果该适配器太忙,则该请求沿通道104传送到属层64B,该层确定是否在相连的队列100中有任何悬而未决的请求。如果没有悬而未决的请求一个设备,那么现行的请求被传送到适当的LDSM88。
CSM 87和各LDSM 88形成在存储器18中,并且与相应的各具体设备状态机(PDSM)成对儿形成模型。这些PDSM是执行实时I/O操作的实际I/O设备,并且包括内部锁存器、寄存器和代表该机具体状态的信号,以及响应控制该设备操作等激励的设备逻辑。详细讲,如图3所示,LDSM 88/32是PDSM 32′的一个模型,LDSM 88/33是PDSM 33′的一个模型,每个逻辑和具体状态机识别设备进入的状态,设备是在线并响应于一个激励而依据先前的状态和激励的性质而转换到另一种状态。因此,举例来说,假定PDSM 33′具有三种状态A′,B′和C′,相应的LDSM 88/33也有相应于状态A′-C′的三种状态A,B和C,每个LDSM与PDSM成对儿,并且各成对儿的状态机借助于通过传送属层64C传输的各信息而相互联系。各成对儿的状态机布置成一个直接对应一个地控制,相反于主/从控制,以提供各种新的功能和利益,如下所述。
利用上节所述的例子,当指令起动器84发出信息(请求)沿着104到达LDSM 88/33时,开始一个典型的操作,这就造成此等状态机从状态A转换到状态B,这个转换部分在于将信息息或指令经过造成该设备从状态A′进到状态B′的通道106送到PDSM 33′。通道106通过传送属层64C,该属层建立控制SCSI设备33的操作所需的指令或控制分程序,这种控制分程序沿通道106输送。当设备33完成所期望的操作时,PDSM 33′从状态B′转换到状态C′。这个转换的一部分在于将一个响应(指令的结果)沿通道108送回到LDSM88/33,根据收到的该信息(结果),LDSM88/33从状态B转换到状态C。这个转换的一部分在于将一个信息(结果)经过通道110送回到指令起动器。然后从队列94/33能得到一个新的请求。注意,一个LDSM不必永远是一个请求的起动者,一个设备和PDSM也能做为一个起动器,这就意味着,能产生异步处理。
这种状态机的内部相互作用提供多种重要的功能和利益。同步设备(即磁盘、磁带)和非同步设备(即LAN和其它通信设备)可附加到同一总线/适配器组合上。该状态机的内部相互作用在同步处理器驱动设备(即磁盘)和非同步驱动设备(通信设备)之间存在对称关联。对于同步设备,消失的跟踪中断被简化了。在相应的状态机中,可能有定时的转换。这样的转换允许解决何时需要将更多的缓冲器分配络合通信设备的问题。对称状态模型化允许一个机内设备处理任一可能存在的机外超高速缓冲存储器的状态。由于所有层次的通道处理器都能由设备专用码扩展,所以许多这样的功能有可能是成立的。可以用标准码,对不被现有的子系统中码复盖的一个设备的各区才需要写入和开发新码。
在每个CSM中包含的是一个卡片数据结构112,它的元件细节根据附属设备的元件细节随机器的不同而不同。每个卡片数据结构包括下述各组信息字段
字段 信息1 卡片识别器信息-描述指定的适配器卡,也即I/O口,存储器变换的地址等,2 错误信息-当一个错误发生时,存储各错误码的地方3 卡片状态-指示该卡片所处在的现行状态,即未初始化,未出现,复盖,错误校正过程(ERP),初始化,在占用和被损坏。
4 标志-用于修改某些为该卡片用的码的行为,大都在卡片已被初始化时置位。
5 设备状态指示器-指示设备状态数组。
6 传送功能指示器-指示为该卡片用的传送功能。
7 工作排队-对于卡片执行的不代表任何设备的工作排队,(设备I/O请求不在此队列中)。
所有关于一个卡片和附于其处的设备的活动状态信息都保持在该卡片数据结构112之外。这类结构保持为一个此等结构的阵列。该卡片号码被用作编入该阵列的索引,以便一个具体卡片访问一单独结构,通常,对于一个PS/2计算机,采用将一个特定卡片插入的槽及具体卡片号码。
传送功能114设置在传送层并作为一个联络清单被存储,对每个类型的适配器有一个传送功能114。这些传送功能包括各数据和程序,程序包括一个指示器(指到清单中的下一个传送功能);卡片识别器,存在的测试程序,初始化卡片程序,中断程序,输出指令程序,再置程序。配置指令组程序,自由终端成组程序,建立指令成组程序,过程卡片工作排队程序,得到状态成组程序,过程指令错误程序,再起动I/O程序,修改指令成组程序,以及错误报告程序。
当系统10被初始化时,每个传送功能被扫描,直到发现有一个与被初始化卡片相匹配为止,寻找匹配是利用一个组合的卡片识别器字段和调用存在的测试程序来进行。当找到一个匹配时,指令该单独传送功能的指示器被放到合适的卡片状态结构中,对一个具体卡片这就允许快速访问该传送功能。如果在该系统中有多个同型的适配器卡片,则多个卡片状态结构可指到一个特定的传送功能。
因为数个卡片状态结构112能指到一个具体传送功能,所以每个卡片的这些指定保存在该卡片状态结构中作为卡片识别器的一部分。在其卡片识别器字段中的传送功能114保持有该型卡片用的通用信息(即可以出现在控制各寄存器的所有可能的I/O接口的清单)。该传送功能能按照单个卡片执行的某项功能的特征隔离具体加以区分。
这将不会被弄错BIOS操作。这些传送功能主要是把焦点集中于将各指令专门发送到卡片和该卡片的响应。这些传送功能是不分状态的,其中所有有关正被执行的活动的状态信息都被保持在较高层次。该传送功能被调用来执行该卡片上某些很专门的功能。
当I/O设备被加到该系统并且DDC42需加以修改以控制这些设备时,这些修改可包括在编码扩展中,它们可被置于合适的一个或一个以上DDC42的各不同接口上。因此,各编码扩展(用E尾缀指示)可被安排为,扩展80E去请求分配器,扩展992E和98E为入队和出队功能92和96,扩展84E为指令初始器,以及扩展64E为传送层64。各扩展还能对逻辑状态机做出。例如,假定设备32具有3种状态X′、Y′和Z′,以致PDSM包括这样的一些状态,并且当它被加到该系统上时,存在着一个现有它LDSM只有两种状态X和Y,LDSM88/32用加一个相应于状态Z的扩展来形成。
对于熟悉本领域技术的人员很显然,在细节方面和步骤的排列上以及各部件上都能做出许多改变,但都不离乎下述权利要求所界限的本发明范围。
权利要求
1.一个数据处理系统,具有一个存储系统用于存储应用程序和一个操作系统,一个处理器用于执行所述程序,以及多个I/O设设备,其特征为,所述操作系统具有一个所述操作系统唯一的设备驱动器接口;一个设备驱动器芯体,具有一个通用于多个不同的操作系统的操作系统接口;以及一个转换程序被从功能上在所述操作系统和所述设备驱动器芯体之间形成层,用于转换在所述操作系统的所述设备驱动器接口和所述设备驱动器芯体的所述操作系统之间的信息。
2.如权利要求1的一个数据处理系统,其特征为,所述设备驱动器芯包括多个I/O分类设备驱动器,包括在所述数据处理系统中的不同类别的I/O设备;以及多个设备特定的设备驱动器,每个包括所述数据处理系统中的一个不同的I/O设备,所述设备特定的设备驱动器是按照设备类别在所述分类设备驱动器下面形成的层。
3.如权利要求1的一个数据处理系统,其特征为,所述的设备驱动器芯体包括一个通道处理器,可操作地接受来自所述操作系统的I/O请求,排队所述请求,以及译码所述请求成为所述I/O设备用的专门指令;以及一个传送层,接口在所述通道处理器和所述I/O设备之间。
4.如权利要求3的一个数据处理系统,其特征为,所述I/O设备包括多个具体设备状态机(PDSM);以及所述通道处理器包括多个逻辑设备状态机(LDSM),每个相应于一个不同的所述PDSM并与其成对儿,用于在每对中的每个状态机之间的通信。
5.如权利要求4的一个数据处理系统,其特征为,每对的一个LDSM和一个PDSM被布置成一个直接对应的控制,因而这种LDSM通过送一个指令能造成这种PDSM转换状态,这种PDSM也能传送一个指令造成这种LDSM转换状态。
6.如权利要求5的一个数据处理系统,其特征为,所述数据处理系统包括一个适配置卡片,用于连接到多个所述I/O设备已,所述适配器卡片包括一个具体的卡片状态机;以及所述通道处理器包括一个逻辑卡片状态机,它模仿所述具体卡片状态机。
7.如权利要求6的一个数据处理机,其特征为,所述传送层包括多个属层,且所述逻辑状态机是夹在所属各属层之间的层,从而所有的I/O请求在到达所述逻辑状态机之前经过所述各属层。
8.按照权利要求7的一个数据处理系统,其特征为,当一个收到的I/O请求正被送到一个附在所述适配器卡片上的I/O设备时,所述属层之一被操作到确定是否所述适配器卡片被占用,因为它经常地处理一予定数目的I/O请求,这样的一个属层被进一步操作到置放所述收到的I/O请求在一个卡片请求队列上,直到当正被所述卡片处理的I/O请求的数目跌到所述予定数目之下为止。
9.如权利要求3的一个数据处理系统,其特征在于,所述通道道处理器包括多个请求队列,用于暂时存储I/O请求,对每个I/O设备有一个请求队列。一个请求分配器,用于接受I/O请求和分配这些请求,按照每个请求所针对的设备来分配到所述请求的队列之一。
10.如权利要求9的一个数据处理系统,其特征为,所述的通道处理器还包括多个逻辑状态机,用于控制所述I/O设备的操作;一个指令初始器可操作到接受从所述请求队列中来的I/O请求,并译码每个请求成一个专门的I/O指令,然后它被送到所述状态机之一,按照这个专门的I/O指令去操作所述的I/O设备之一。
11.如权利要求10的一个数据处理系统,其特征为,所述数据处理系统包括一个SCSI总线,并且所述I/O设备是连接到所述SCSI总线上的SCSI设备。
12.如权利要求11的一个数据处理系统,其特征为,所述数据处理系统包括一个连接到所述SCSI总线上,并包含一个具体的卡片状态机(PCSM)的适配器卡片;所述通道处理器包括一个逻辑卡片状态机(LCSM),它相应于所述的PCSM,所述LCSM包含一个卡片状态数据结构,它可置位于指示所述PCSM的一个现状态。
13.如权利要求12的一个数据处理系统,其特征为,所述传送层包括一个含有用于与所述I/O设备接口的程序的传送功能;以及所述卡片数据结构包含一个指示器,指到所述传送功能。
14.如权利要求3的一个数据处理系统,其特征为所述通道处理器包括扩展程序,用于扩充所述通道处理器的操作范围超过已有的限制。
全文摘要
设备驱动系统包括一个处理多个I/O设备特定功能的芯体,它包括一个通用于不同操作系统的操作系统接口;一个操作系统具有该操作系统所唯一具有的设备驱动器接口;在芯体和操作系统之间置有一层转换程序层,用于转换操作系统的设备驱动器接口和芯体的通用操作系统接口。芯体包括一通道处理器,它包含一个请求分配器、各请求队列,指令起动器和多个相应于I/O设备中状态机的状态机。在硬件和通道处理器之间有一层传送层接口。
文档编号G06F13/10GK1065346SQ92101820
公开日1992年10月14日 申请日期1992年3月18日 优先权日1991年3月26日
发明者弗里曼·利·罗森, 盖伊·吉尔·索托梅尔·Jr, 爱德华·米歇尔·塔吉尔·Jr 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1