CN1296820C - 独立装置驱动器 - Google Patents
独立装置驱动器 Download PDFInfo
- Publication number
- CN1296820C CN1296820C CNB2004100560940A CN200410056094A CN1296820C CN 1296820 C CN1296820 C CN 1296820C CN B2004100560940 A CNB2004100560940 A CN B2004100560940A CN 200410056094 A CN200410056094 A CN 200410056094A CN 1296820 C CN1296820 C CN 1296820C
- Authority
- CN
- China
- Prior art keywords
- function
- peripheral module
- middleware
- device driver
- independent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
在使用操作系统的信息处理设备中,提供了一种独立于内核的独立装置驱动器。提供了一种使用中间件支持库204的信息处理器110,该中间件支持库独立于操作系统来进行操作并具有与硬件规范无关的应用程序接口201。所述中间件支持库204用软件来补偿硬件中未实现的功能。
Description
发明背景
发明领域
本发明涉及一种独立装置驱动器,它独立于信息处理设备的系统内核来进行操作,所述信息处理设备包括硬件、装置驱动器和应用程序。此外,本发明还涉及一种已在其中并入上述独立装置驱动器的信息处理设备。
背景技术说明
为了缩小开发包含硬件、装置驱动器和应用程序的信息处理设备的周期,已经提出了各式各样的设计方案。在这类设计方案中,提出了一种信息处理设备的体系结构,它包括应用层、库层、操作系统层和硬件层。在这个体系结构中,应用层的软件在库层的软件上运行,而库层的软件在操作系统层的软件上运行。
操作系统层的软件在设备的硬件上运行,并且该操作系统层软件包括一个内核和一个工作在该内核上的设备驱动以及与硬件的接口。为了把库层的软件和应用层的软件导入到不同硬件系统和不同操作系统中,所有你必须要做的就是:改变向库层的软件提供服务的操作系统层的模块。利用这种结构,能够提高软件可移植性,由此缩小开发信息处理设备的周期。
参照图10,下面简要地将处于日本国家阶段的PCT已公开申请2001-503891中所提出的信息处理设备作为传统信息处理设备的硬件和软件的分层结构的示例来进行描述。信息处理设备PI_C包括:应用程序101、中间件102、装置驱动器组103_C、内核104、操作系统105_C、外围模块组106_C、CPU核心107、CPU 108_C、存储器109和信息处理器110_C。应用程序101通过利用中间件102的支持逻辑来进行操作。中间件102通过利用操作系统105_C的支持逻辑来进行操作。
操作系统105_C包括装置驱动器组103_C和内核104。装置驱动器组103_C通过利用内核104的支持逻辑来进行操作,并且包括用于向中间件102提供外围模块组106_C的功能的逻辑。内核104通过利用CPU核心107和存储器109的功能来进行操作,并且包括支持装置驱动器组103_C和中间件102的逻辑。信息处理器110_C包括CPU 108_C和存储器109。
CPU 108_C包括外围模块组106_C和CPU核心107。装置驱动器组103_C包括n个(n是任意自然数)装置驱动器DD1至DDn,而外围模块组106_C包括n个模块ML1至MLn。装置驱动器DD1至DDn与模块ML1至MLn一一对应。基本上讲,信息处理器110_C是用硬件来构造的,而其它元件是用软件来构造的。
当开发软件时,主要是考虑软件可移植性。通常,为了提高软件的可移植性,采用把软件分成多个层并为每一层定义标准应用程序接口的方案。利用这个方案,通过其标准应用程序能够阻断来自于某一层中软件改变所造成的影响,从而不会将这一影响加到其它层上。同样,在如图10所示意性示出的信息处理设备PI_C当中,也将软件层分成多个层以便提高软件可移植性。
然而,将装置驱动器设计为工作在操作系统的内核之上,也就是说它依赖内核而工作。因此,当改变信息处理设备的操作系统时,不得不校正装置驱动器组及其中所包含的装置驱动器,这是一个关于软件可移植性的问题。也就是说,为了快速开发信息处理设备,非常希望的是:多个工程师根据组件或操作、以分布的方式来并发地执行诸如设计、创建、检查和校正组件(例如,装置驱动器)之类的一系列操作和开发内核的操作。然而,正如所述的那样,当改变操作系统(内核)的规范时,必须校正装置驱动器组,由此使多个工程师难以执行这类并发的操作。
至于所谓的维护,诸如像添加新功能、改变功能和调试,只要添加、改变或调试能实现将要维护的功能的装置驱动器,它就很有效。然而,实际上,必须维护整个装置驱动器组和模块组。此外,由于装置驱动器组使用内核的服务例行程序,因此调试软件是困难的。再者,从广义上讲,内核对于装置驱动器开发人员而言是个黑匣子。这在对依赖于内核的装置驱动器进行调试的过程中增加了困难。
这类依赖于内核且工作在内核之上的装置驱动器使多个工程师难以执行并发操作来开发信息处理设备。此外,除了让功能改变外,也必须对装置驱动器执行维护操作。这使得难以及时地以低成本来进行快速维护。
因此,本发明的一个目的是提供一种独立装置驱动器,它独立于内核并允许根据组件或任务并行开发和改变信息处理设备中所包含的操作系统及其它组件,以及根据功能来对它们进行维护,并且还提供了一种使用该独立装置驱动器的信息处理设备。
发明概述
在信息处理设备中的一种独立装置驱动器,所述信息处理设备的功能是通过以应用程序、中间件和包含内核的操作系统的形式的软件以及通过具有包括多个外围模块的CPU的硬件实现的,该多个外围模块包含独立于内核的独立外围模块,所述独立装置驱动器向中间件提供独立外围模块功能,该独立装置驱动器包括:
功能集中逻辑装置,用于集中独立外围模块的功能;功能重构逻辑装置,用于对已集中的功能进行重构以便该功能独立于独立外围模块的规范;和应用程序接口装置,用于向中间件提供重构后的功能,功能补偿装置,用于通过CPU所执行的软件处理来实现任何一个所述外围模块中所实施的功能和所述外围模块中未实施的功能,资源管理装置,用于在存储器中存储指明所述外围模块中所实施的功能的类型和每个所述外围模块的使用状态的信息。
如上所述,独立装置驱动器是独立于内核的。因此,能够并行地开发内核和独立装置驱动器。同样,当改变内核的规范时,也无须校正独立装置驱动器。此外,即使是当在不使用内核的情况下以低成本配置系统时,也无须校正独立装置驱动器。再者,由于独立装置驱动器不使用内核的服务例行程序,因而易于调试软件。再者,能够维护独立装置驱动器而不予考虑内核。
通过结合附图阅读本发明的下列详细说明,本发明的这些及其它目的、特征、方面和优点将变得明显。
附图简述
图1是示出根据本发明的信息处理设备的结构的框图;
图2是示出根据本发明第一实施例的中间件支持库的结构的框图;
图3是示出图2中所示的功能选择器的操作的流程图;
图4是示出根据本发明第二实施例的中间件支持库的结构的框图;
图5是示出图4中所示的功能选择器的操作的流程图;
图6是示出根据本发明第三实施例的中间件支持库的结构的框图;
图7是示出图6中所示的功能选择器的操作的流程图;
图8是示出根据本发明第四实施例的中间件支持库的结构的框图;
图9是示出图8中所示的功能选择器的操作的流程图;和
图10是示出传统的信息处理设备的结构的框图。
优选实施例说明
首先,参照图1,描述本发明的基本概念。接着,参照图2和3描述本发明的第一实施例,参照图4和5描述本发明的第二实施例,参照图6和7描述本发明的第三实施例,然后参照图8和9描述本发明的第四实施例。图1举例说明了根据本发明的信息处理设备的硬件和软件的层次结构。
信息处理设备PI包括:应用程序101、中间件102、操作系统105、信息处理器110和中间件支持库204。也就是说,除了用操作系统105和信息处理器110来替代操作系统105_C和信息处理器110_C,并新添加了中间件支持库204之外,所述信息处理设备PI在结构上类似于图10中所示的信息处理设备PI_C。注意:在中间件102与信息处理器110之间与操作系统105并行地设置中间件支持库204。
中间件支持库204包括应用程序接口201、功能重构逻辑单元202、和功能集中逻辑单元203。注意:中间件支持库204充当了独立装置驱动器,所述独立装置驱动器独立于内核。
信息处理器110包括CPU 108和存储器109。也就是说,除了用CPU 108替代CPU 108_C之外,信息处理器110在结构上类似于信息处理器110_C。此外,CPU 108包括独立于系统内核的独立外围模块组205和依赖于内核的相关外围模块。除了用包含m个(m=n-Y,其中Y是小于n的自然数)独立模块ML1至MLm的独立外围模块组205以及包含Y个(Y=n-m)相关模块MLm+1至MLn的相关外围模块组206替代n个模块ML1至MLn之外,CPU 108在结构上类似于CPU 108_C。在此,独立外围模块组205是这样一种模块组,它包括每个都与独立于内核的装置驱动器相对应的模块。同样,相关外围模块组206是这样一种模块组,它包括每个都与依赖于内核的装置驱动器相对应的模块。
注意:CPU 108和CPU 108_C中模块的参考标记仅仅是为作标识而加上的。具有相同参考标记的模块不必彼此相同。
操作系统105包括相关装置驱动器组103,它包括内核104和Y个相关装置驱动器DD1至DDY。相关装置驱动器组103通过利用内核104的支持逻辑来进行操作,并且包括向中间件102提供相关外围模块206的功能的逻辑。内核104通过利用CPU核心107和存储器109的功能来进行操作,并且包括相关装置驱动器组103和中间件102的支持逻辑。也就是说,对于操作系统105_C中的n个装置驱动器DD1至DDn,在操作系统105中只包含Y个相关装置驱动器DDm+1至DDY。注意:相关装置驱动器组103中的装置驱动器DD与CPU 108的相关外围模块组206中的模块一一对应。
同样,独立于内核的(n-Y)个独立装置驱动器DDY+1至DDn实施为中间件支持库204。在这种意义上讲,根据需要,在下文中也可以将中间件支持库204称作为独立装置驱动器204。
具体地说,中间件支持库(独立装置驱动器)204包括:应用程序接口201、功能重构逻辑单元202和功能集中逻辑单元203。功能集中逻辑单元203集中了独立外围模块组205的功能。功能重构逻辑单元202对功能集中逻辑单元203所集中的功能进行重构,以便所述功能独立于独立外围模块组205的规范。应用程序接口201向中间件102提供由功能重构逻辑单元202重构的功能。
照此,在本发明中,外围模块是由独立于内核的独立外围模块组205和依赖于内核的相关外围模块组206来管理的。如同传统的信息处理设备的情况那样,相关外围模块组206是由相关装置驱动器组103来支持的。在另一方面,对于独立外围模块组205而言,通过中间件支持库(独立装置驱动器)204来实现其被重构的功能,从而独立于内核的规范。本发明的一个特征尤其在于中间件支持库204以及中间件102和信息处理器110。在下文中,详细描述每个实施例的中间件支持库204、应用程序101和信息处理器110。
(第一实施例)
图2举例说明了根据第一实施例的信息处理设备PIa(未示出)中的中间件102a、信息处理器110和中间件支持库204a。中间件102a在结构上相同于图10中所示的信息处理设备PI_C,但是为便于说明起见,为了加以区别而给它提供了不同的参考标记102a。中间件支持库204a包括应用程序接口201、功能集中逻辑单元203、资源管理器318和功能补偿器319。
应用程序接口201包括数据传送应用程序接口304和功能选择器317a。功能重构逻辑单元202包括外围模块访问单元305。
信息处理器110包括存储器109、CPU核心107和CPU 108。CPU108包括独立外围模块组205和相关外围模块组206。在此,因为本发明的一个特征在于独立外围模块组205与中间件支持库204之间的关系,所以由于空间有限而未在图2中示出相关外围模块组206。独立外围模块组205包括DMA 315和矩形传送(rectangular transfer)DMA 316。存储器109包括A地址310和B地址311。DMA 315具有将存储在存储器109的A地址310上的数据传送到存储器109的B地址上的功能。矩形传送DMA 316具有将存储在存储器109的A地址310上的矩形数据传送到存储器109的B地址上的功能。
中间件支持库204a中的功能补偿器319具有通过CPU 108的软件处理来将存储在存储器109的A地址310上的矩形数据传送到存储器109的B地址311上的功能。功能集中逻辑单元203集中DMA315和矩形传送DMA 316的功能。
功能重构逻辑单元202将功能集中逻辑单元203所集中的独立外围模块组205的功能重构成与数据传送处理相关联的外围模块访问单元305。外围模块访问单元305具有将存储在存储器109的A地址上的数据和矩形数据传送到存储器109的B地址上的功能。
在应用程序接口201中,数据传送应用程序接口304具有一个接口,该接口向中间件102a提供了将存储在存储器109的A地址310上的数据和矩形数据传送到存储器109的B地址311上的功能。
功能补偿器319包括通过软件处理来将存储在存储器109的A地址310上的矩形数据传送到存储器的B地址311上的逻辑。资源管理器318管理独立外围模块组205中所实现的功能的类型以及这些功能的使用状态。
根据关于由资源管理器318管理的独立外围模块组205的信息,功能选择器317a选择(确定)外围模块访问单元305和功能补偿器319的功能中的任一种功能以供使用,然后向数据传送应用程序接口304报告选择结果。
接下来,参照图3中所示的流程图,具体描述中间件支持库204a的操作。在该流程图中,示出了当中间件102a向中间件支持库204a请求矩形传送数据时的操作。
也就是说,在步骤S401中,将数据矩形传送请求从中间件102a输出至数据传送应用程序接口304。然后,控制程序前进至下一步S402。
在步骤S402中,数据传送应用程序接口304向功能选择器317询问关于外围模块访问单元305的功能或功能补偿器319的功能当中的哪一个功能被用来执行矩形传送。然后,控制程序前进至下一步S403。
在步骤S403中,功能选择器317a向资源管理器318询问关于矩形传送DMA 316的资源状态。然后,控制程序前进至下一步S404。
在步骤S404中,资源管理器318检查矩形传送DMA 316的资源状态。然后,控制程序前进至下一步S405。
在步骤S405中,判断矩形传送DMA 316是否是可用的。如果是可用的,即判定为是的话,那么控制程序就前进至下一步S406。反之,如果是不可用的,即判定为否的话,那么控制程序就前进至步骤S408。
在S406中,资源管理器318更新管理信息。也就是说,资源管理器318将关于矩形传送DMA 316的使用状态的信息从″可用″改为″不可用″,并且保存该信息直到结束矩形传送过程为止。在结束矩形传送过程之后,资源管理器318将关于矩形传送DMA 316的使用状态的信息更新为″可用″。然后,控制程序前进至下一步S407。
在步骤S407中,资源管理器318向功能选择器317a报告矩形传送DMA 316是可用的。然后,控制程序前进至下一步S409。
在步骤S408中,资源管理器318向功能选择器317a报告矩形传送DMA 316是不可用的。然后,控制程序前进至下一步S410。
在步骤S410中,根据步骤S407或S408中发布的报告,判断矩形传送DMA 316是否是可用的。如果是可用的,即判定为是的话,那么控制程序就前进至步骤S411。反之,如果是不可用的,即判定为否的话,那么控制程序就前进至步骤S412。
在步骤S411中,功能选择器317a判定将要使用矩形传送DMA316,那么就向数据传送应用程序接口304报告外围模块访问单元305(矩形传送DMA 316)被选中。然后,控制程序前进至下一步S414。
在步骤S412中,功能选择器317a判定将要使用功能补偿器319,并且向数据传送应用程序接口304报告功能补偿器319被选中。然后,控制程序前进至下一步S414。
在步骤S414中,根据步骤S411或S412中发布的报告判断矩形传送DMA和功能补偿器319当中的任一个是否是可用的。在本示例中,判断矩形传送DMA 316是否是可用的。如果判定为是的话,则控制程序就前进至步骤S415。如果判定为否的话,控制程序前进至步骤S417。
在步骤S415中,数据传送应用程序接口304请求外围模块访问单元305开始其操作。然后,控制程序前进至下一步S416。
在步骤S416中,从外围模块访问单元305到矩形传送DMA 316执行数据矩形传送过程。也就是说,矩形传送DMA316将矩形数据从存储器109的A地址310传送到存储器109的B地址311。然后,控制程序结束。
在步骤S417中,数据传送应用程序接口304请求功能补偿器319开始其操作。然后,控制程序前进至下一步S418。在步骤S418中,从功能补偿器319到CPU 108执行数据矩形传送过程。也就是说,功能补偿器319将矩形数据从存储器109的A地址310传送到存储器109的B地址311。然后,控制程序结束。
如上所述,在本实施例中,即使是当不能使用外围模块的功能时,也总能向中间件提供预定的应用程序接口。
(第二实施例)
图4举例说明了根据第二实施例的信息处理设备PIb(未示出)中的中间件102b、信息处理器110和中间件支持库204b。也就是说,在本实施例中,用中间件102b和中间件支持库204b来替代根据第一实施例的中间件102a和中间件支持库204a。具体地说,除了添加了过程优先级管理器501之外,中间件102b在结构上类似于中间件102a。此外,除了用功能选择器317b替代功能选择器317a之外,中间件支持库204b类似于中间件支持库204a。
如上所述,在第一实施例中,根据外围模块的使用状态来选择外围模块访问单元305和功能补偿器319中的任一个。在本实施例中,根据中间件102b向中间件支持库204b所请求的过程的优先级来选择执行装置。也就是说,功能选择器317b根据由资源管理器318管理的信息和来自于过程优先级管理器501所提供的信息,来确定(选择)外围模块访问单元305的功能和功能补偿器319的功能的其中任一种功能以供使用,并且向数据传送应用程序接口304报告选择结果。
参照图5中所示的流程图,具体描述本实施例当中的操作。除了在步骤S402与S403之间提供了步骤S601、S602、S603和S604之外,图5中所示的流程图类似于图3中所示的流程图。注意,步骤S604是一个判断步骤。如果判定为是的话,则控制程序就前进至上述步骤S403。如果判定为否的话,则控制程序就前进至上述步骤S412。在下文中,特别对本实施例中所增加的步骤作出说明。
也就是说,在步骤S401中,中间件102b向数据传送应用程序接口304输出数据矩形传送请求。接着,在步骤S402中,数据传送应用程序接口304向功能选择器317b询问关于外围模块访问单元305的功能和功能补偿器319的功能当中的哪一个功能被用来执行矩形传送。然后,控制程序前进至下一步S601。
在步骤S601中,功能选择器317b向过程优先级管理器501询问关于将要执行的任务的优先级。然后,控制程序前进至下一步S602。
在步骤S602中,将询问出的关于任务优先级的情况从过程优先级管理器501那里报告给功能选择器317b。然后,控制程序前进至下一步S603。
在步骤S603中,功能选择器317b检查所报告的任务优先级。然后,控制程序前进至下一步S604。
在步骤S604中,判断所报告的任务优先级是否具有预定值,例如4或更大值。如果该优先级具有4或更大值,即判定为是的话,那么程序就前进至上述步骤S403。然后,如上所述,控制程序经过步骤S403至S418而到达末尾。反之,如果该优先级具有小于4的值(即3或更小值),即在步骤S604中判定为否的话,那么控制程序就前进至S412。然后,如上所述,控制程序经过步骤S412至S418而到达末尾。然而,如上所述,用功能选择器317b来替代功能选择器317a。
如上所述,在本实施例中,过程优先级管理器501向功能选择器317b报告关于将要执行的任务的处理优先级的信息。如果该处理优先级具有3或更小值的话,则功能选择器317b就选择功能补偿器319。如果该处理优先级具有4或更大的话,如同第一实施例的情况一样,那么就根据矩形传送DMA 316的使用状态来选择矩形传送DMA 316和功能补偿器319中的任一个。照此,能够灵活地根据来自中间件102b的请求的处理优先级,来选择外围模块访问单元305和功能补偿器319中的任一个。
(第三实施例)
图6举例说明了根据本发明第三实施例的信息处理设备PIc(未示出)中的中间件102c、信息处理器110和中间件支持库204c。除了用中间件102c和中间件支持库204c来替代中间件102b和中间件支持库204b之外,本实施例类似于第二实施例。具体地说,除了用功耗管理器701来替代过程优先级管理器501之外,中间件102c类似于中间件102b。此外,除了用功能选择器317c来替代功能选择器317b之外,中间件支持库204c类似于中间件支持库204b。
如上所述,在第一实施例中,根据外围模块的使用状态来选择外围模块访问单元305和功能补偿器319中的任一个。此外,在第二实施例中,根据过程的优先级,来选择外围模块访问单元305和功能补偿器319中的任一个。在本实施例中,根据执行将由中间件102c向中间件支持库204c请求的任务所需的功耗,来选择外围模块访问单元305和功能补偿器319中的任一个。
也就是说,功能选择器317c根据由资源管理器318管理的信息和来自于功耗管理器701的信息(功耗请求),来选择外围模块访问单元305的功能和功能补偿器319的功能中的任一种功能,然后向数据传送应用程序接口304报告选择结果。在本例中,假定信息处理器110执行矩形传送DMA 316所需的功耗是2mW,而信息处理器110执行功能补偿器319所需的功耗是1mW。
接下来,参照图7中所示的流程图,描述了中间件支持库204c的具体操作。除了分别用步骤S801、S802、S803和S804替代步骤S601、S602、S603和S604之外,图7的流程图类似于根据第二实施例的图5的流程图。在下文中,特别对那些新的步骤作出说明。
也就是说,在步骤S401中,中间件102c向数据传送应用程序接口304输出数据矩形传送请求。然后,在步骤S402中,数据传送应用程序接口304向功能选择器317询问关于外围模块访问单元305的功能和功能补偿器319的功能中的哪一种功能被用来执行矩形传送。接着,控制程序前进至下一步S801。
在步骤S801中,从功能选择器317c那里将关于信息处理器110执行所请求的任务所需的功耗的查询发给功耗管理器701。然后,控制程序前进至下一步S802。
步骤S802中,功耗管理器701向功能选择器317c报告任务的功耗。控制程序前进至下一步S803。
在步骤S803中,功能选择器317c检查所报告的功耗。然后,控制程序前进至下一步S804。
在步骤S804中,判断即使利用所报告的功耗是否也会存在的问题,所述的所报告的功耗具有预定值,例如1.5mW或更大值。如果没有问题,即判定为是的话,那么控制程序就前进至上述步骤S403。接着,如上所述,控制程序经过步骤S403至S418而到达末尾。反之,如果存在问题,即判定为否的话,则控制程序就前进至步骤S412。然后,如上所述,控制程序经过步骤S412至S418而到达末尾。然而,如上所述,注意,用功能选择器317c来替代功能选择器317b。
如果利用信息处理器110的1.5mW或更大的功耗存在问题的话,那么功能选择器317c就选择功能补偿器319。如果利用信息处理器110的1.5mW或更大的功耗没有问题的话,则控制程序就前进至步骤S403。这是一个功能补偿器319的过程所需的功耗小于矩形传送DMA 316的过程所需的功耗的示例。当功能补偿器319的过程所需的功耗小于矩形传送DMA 316的过程所需的功耗时,改变步骤S802中的过程。
如上所述,在本实施例中,能够灵活地根据从中间件102到中间件支持库204c所请求的功耗,来选择外围模块访问单元305和功能补偿器319中的任一个。
(第四实施例)
图8举例说明了根据本发明第四实施例的信息处理设备PId(未示出)中的中间件102a、信息处理器110d和中间件支持库204d。除了用中间件支持库204d和信息处理器110d来替代中间件支持库204a和信息处理器110之外,本实施例类似于第一实施例。具体地说,除了用功能重构逻辑单元202d来替代功能重构逻辑单元202之外,中间件支持库204d类似于中间件支持库204a。
此外,除了用CPU 108d来替代CPU 108之外,信息处理器110d类似于信息处理器110。除了用独立外围模块组205d来替代独立外围模块组205之外,CPU 108d类似于CPU 108。除删除了矩形传送DMA 316之外,独立外围模块205d类似于独立外围模块205。
接下来,参照图9中所示的流程图,具体描述中间件支持库204d的操作。除删除了步骤S404、S405、S406、S407、S410、S411、S414、S415和S416之外,图9中所示的流程图类似于根据第一实施例的图3中所示的流程图。在下文中,特别对本实施例所独有的特征作出说明。
也就是说,在步骤S401中,中间件102a向数据传送应用程序接口304输出数据矩形传送请求。然后,在步骤S402中,数据传送应用程序接口304向功能选择器317a询问关于外围模块访问单元305的功能和功能补偿器319的功能中的哪一种功能被用来执行矩形传送。
在步骤S402中,数据传送应用程序接口304向功能选择器317d询问关于外围模块访问单元305的功能和功能补偿器319的功能中的哪一种功能被用来执行矩形传送。在步骤S403中,功能选择器317a向资源管理器318询问关于矩形传送DMA 316的资源状态。
在步骤S408中,资源管理器318向功能选择器317a报告矩形传送DMA 316是不可用的。这是因为在独立外围模块组205d中未实现矩形传送DMA。在步骤S412中,功能选择器317a判定使用功能补偿器319,并向数据传送应用程序接口304报告已经选择了功能补偿器319。
在步骤S417中,数据传送应用程序接口304请求功能补偿器319开始操作。然后,在步骤S418中,功能补偿器319在CPU 108d上执行数据矩形传送。也就是说,由功能补偿器319将矩形数据从存储器109的A地址310传送到存储器109的B地址。然后,控制程序结束。
如上所述,在本实施例中,即使是当外围模块当中未实施特定功能时,也总是向中间件提供预定的应用程序接口。此外,根据本发明的独立装置驱动器可以用于信息处理设备和诸如数字电视和便携式电话之类的数字化家庭电气产品,所述信息处理设备中的每一个都包括硬件、装置驱动器和应用程序。
尽管已经详细描述了本发明,但是上述说明从所有方面上讲都是说明性的而非限制性的。当然在不背离本发明的范围的情况下,可以作出许多的其它的修改和变形。
Claims (8)
1、一种在信息处理设备中的独立装置驱动器,其中所述信息处理设备的功能是通过以应用程序、中间件和包含内核的操作系统的形式的软件以及通过具有包括多个外围模块的CPU的硬件实现的,所述多个外围模块包含独立于内核的独立外围模块,所述独立装置驱动器向所述中间件提供所述独立外围模块的功能,该独立装置驱动器包括:
功能集中逻辑装置,用于集中独立外围模块的功能;
功能重构逻辑装置,用于对已集中的功能进行重构以便该功能独立于独立外围模块的规范;
应用程序接口装置,用于向该中间件提供该重构后的功能;
功能补偿装置,用于通过CPU所执行的软件处理来实现任何一个所述外围模块中所实施的功能和所述外围模块中未实施的功能;和
资源管理装置,用于在存储器中存储指明所述外围模块中所实施的功能的类型和每个所述外围模块的使用状态的信息。
2、根据权利要求1所述的独立装置驱动器,其中:
所述功能重构逻辑装置包括外围模块访问装置,它允许所述应用程序接口装置访问所述独立外围模块。
3、根据权利要求2所述的独立装置驱动器,其中:
所述存储器用于存储包含所述信息处理设备上所执行的逻辑的软件,其中
所述中间件包括用于支持应用的逻辑。
4、根据权利要求1所述的独立装置驱动器,其中:
当使用所述外围模块的功能时,所述资源管理装置更新所述指明使用状态的信息以便该信息表明所述外围模块是不可用的,并且当未使用所述外围模块的功能时,所述资源管理装置更新所述指明使用状态的信息以便该信息表明所述独立外围模块是可用的。
5、根据权利要求1所述的独立装置驱动器,进一步包括:
功能选择装置,用于根据由所述资源管理装置存储在所述存储器中的信息来确定所述外围模块访问装置和所述功能补偿装置中的任一个以供使用。
6、根据权利要求1所述的独立装置驱动器,其中:
所述中间件进一步包括过程优先级管理装置,用于管理对所述独立装置驱动器请求的过程的优先级,和
所述功能选择装置根据由所述资源管理装置存储在所述存储器中的信息和由该过程优先级管理装置管理的优先级,来确定所述外围模块访问装置和所述功能补偿装置中的任一个以供使用。
7、根据权利要求1所述的独立装置驱动器,其中:
所述中间件进一步包括功耗管理装置,用于管理所述信息处理设备的功耗,和
所述功能选择装置根据由所述资源管理装置存储在所述存储器中的信息和来自于该功耗管理装置的功耗信息,来确定所述外围模块访问装置和所述功能补偿装置中的任一个以供使用。
8、根据权利要求5所述的独立装置驱动器,所述应用程序接口装置进一步包括:数据传送应用程序接口,用于接收来自所述功能选择装置的确定结果,以请求所述外围模块访问装置和所述功能补偿装置中的任一个开始操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP356677/2003 | 2003-10-16 | ||
JP2003356677A JP2005122470A (ja) | 2003-10-16 | 2003-10-16 | 自律型デバイスドライバ |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1607497A CN1607497A (zh) | 2005-04-20 |
CN1296820C true CN1296820C (zh) | 2007-01-24 |
Family
ID=34509799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100560940A Expired - Fee Related CN1296820C (zh) | 2003-10-16 | 2004-08-16 | 独立装置驱动器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050086665A1 (zh) |
JP (1) | JP2005122470A (zh) |
CN (1) | CN1296820C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802022B2 (en) * | 2004-04-29 | 2010-09-21 | Microsoft Corporation | Generic USB drivers |
US8656191B2 (en) | 2005-12-23 | 2014-02-18 | Nagravision S.A. | Secure system-on-chip |
EP1802030A1 (en) * | 2005-12-23 | 2007-06-27 | Nagracard S.A. | Secure system-on-chip |
EP1811415A1 (en) * | 2005-12-23 | 2007-07-25 | Nagracard S.A. | Secure system-on-chip |
EP2102753A4 (en) * | 2006-12-22 | 2013-01-02 | Elektrobit Wireless Comm Oy | ELECTRONIC DEVICE AND COMPUTER PROGRAM |
GB2459643A (en) * | 2008-04-24 | 2009-11-04 | Symbian Software Ltd | Interface to allow user applications to communication with hardware devices |
JP5596173B2 (ja) * | 2009-12-23 | 2014-09-24 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 作成コスト削減のためのサービス選択 |
US20140331237A1 (en) * | 2011-12-30 | 2014-11-06 | Reji S. Kumar | Platform independent isa emulator as middleware |
US9030571B2 (en) * | 2012-07-11 | 2015-05-12 | Google Inc. | Abstract camera pipeline for uniform cross-device control of image capture and processing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19752997A1 (de) * | 1997-11-03 | 1999-06-02 | Mustek Systems Inc | Periphergeräte-Steuersystem |
US20030079050A1 (en) * | 2001-10-19 | 2003-04-24 | Chang Cheng Tsung | Computer system with parallel sever architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5012409A (en) * | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
CA2010591C (en) * | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
US5291585A (en) * | 1991-07-29 | 1994-03-01 | Dell Usa, L.P. | Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format |
US5923897A (en) * | 1996-04-01 | 1999-07-13 | Microsoft Corporation | System for adapter with status and command registers to provide status information to operating system and processor operative to write eject command to command register |
US6418485B1 (en) * | 1997-04-21 | 2002-07-09 | International Business Machines Corporation | System and method for managing device driver logical state information in an information handling system |
US5905900A (en) * | 1997-04-30 | 1999-05-18 | International Business Machines Corporation | Mobile client computer and power management architecture |
JP4254052B2 (ja) * | 2000-01-04 | 2009-04-15 | コニカミノルタビジネステクノロジーズ株式会社 | 出力システム及びそれに用いる出力方法並びに出力システムにおいて実行されるプログラムを記録した記録媒体 |
JP2003216378A (ja) * | 2001-11-15 | 2003-07-31 | Canon Inc | 情報処理装置及び方法及びコンピュータプログラム及びコンピュータ可読記憶媒体 |
US7069546B2 (en) * | 2001-12-03 | 2006-06-27 | Corrigent Systems Ltd. | Generic framework for embedded software development |
US7000036B2 (en) * | 2003-05-12 | 2006-02-14 | International Business Machines Corporation | Extended input/output measurement facilities |
-
2003
- 2003-10-16 JP JP2003356677A patent/JP2005122470A/ja active Pending
-
2004
- 2004-07-21 US US10/895,066 patent/US20050086665A1/en not_active Abandoned
- 2004-08-16 CN CNB2004100560940A patent/CN1296820C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19752997A1 (de) * | 1997-11-03 | 1999-06-02 | Mustek Systems Inc | Periphergeräte-Steuersystem |
US20030079050A1 (en) * | 2001-10-19 | 2003-04-24 | Chang Cheng Tsung | Computer system with parallel sever architecture |
Also Published As
Publication number | Publication date |
---|---|
US20050086665A1 (en) | 2005-04-21 |
JP2005122470A (ja) | 2005-05-12 |
CN1607497A (zh) | 2005-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101408899B (zh) | 一种网站多数据源切换方法和装置 | |
CN1146821C (zh) | 面向用户的数据库查询方法及系统 | |
CN101034990A (zh) | 权限管理方法及装置 | |
CN1991768A (zh) | 与不同种类的资源通信的基于指令系统结构的内定序器 | |
CN1296820C (zh) | 独立装置驱动器 | |
CN1577287A (zh) | 与物理存储表示无关地同步逻辑视图 | |
CN1468399A (zh) | 使用微代码引擎的java硬件加速器 | |
CN1577242A (zh) | 用于自动配置的系统和方法 | |
CN1866217A (zh) | 确定源服务器在目标服务器中的最佳分布的系统和方法 | |
CN1755633A (zh) | 用于电子表格链式计算的多线程处理的方法和系统 | |
CN1534457A (zh) | 增强的运行时间主机支持 | |
CN1670698A (zh) | 基于透明计算的计算设备和方法 | |
CN101046807A (zh) | 存储数据已读的方法及装置 | |
CN1111800C (zh) | 管理共享资源的装置和方法 | |
CN101060539A (zh) | 采用统一入口网站地址集成和推送多网站内容的方法及系统 | |
CN1825321A (zh) | 词典类数据的检索方法、保存方法及检索系统 | |
CN1945541A (zh) | 处理操作信息传送控制系统和方法 | |
CN1815474A (zh) | 将原始数据从一个数据结构转移到另一结构的机制 | |
CN1780297A (zh) | 电子数据交换设备 | |
CN1260656C (zh) | 能够使用虚拟存储器处理模式的数据处理系统 | |
CN1255744C (zh) | 智能卡通用高速发卡机及其发卡方法 | |
CN1838200A (zh) | 用于驱动控制的装置和方法以及计算机产品 | |
CN1885266A (zh) | 用于协作处理的系统,设备及方法 | |
CN1163834C (zh) | 中断控制方法和中断控制系统 | |
CN100340978C (zh) | 组件处理系统和组件处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070124 Termination date: 20110816 |