首页> 中国专利> 用于管理驱动程序的资源管理方法及资源管理器

用于管理驱动程序的资源管理方法及资源管理器

摘要

本发明提供一种用于管理驱动程序的资源管理方法。该方法包含有:接收并储存多个驱动程序的登录信息;接收并储存驱动程序的互连信息;接收至少一请求命令来启动并控制驱动程序的特定驱动程序;搜寻登录信息以找出特定驱动程序;以及参考互连信息来决定特定驱动程序是否依据上述请求命令而可被启动。通过本发明提供的资源管理机制,即便在实作上发生多个管线均需使用相同驱动程序的情形,同样能高效合理的配置这些驱动程序以及快速解决驱动程序彼此间的冲突,进而解决因当前软件应用程序中处理程序使用的试误法而引发的低效率等问题。

著录项

  • 公开/公告号CN101135983A

    专利类型发明专利

  • 公开/公告日2008-03-05

    原文格式PDF

  • 申请/专利权人 晶发科技股份有限公司;

    申请/专利号CN200710112625.7

  • 发明设计人 福来门·菲利克斯;

    申请日2007-06-25

  • 分类号G06F9/48;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人陶海萍

  • 地址 美国加州

  • 入库时间 2023-12-17 19:49:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-04-20

    授权

    授权

  • 2008-06-04

    专利申请权、专利权的转移(专利申请权的转移) 变更前: 变更后: 登记生效日:20080509 申请日:20070625

    专利申请权、专利权的转移(专利申请权的转移)

  • 2008-04-30

    实质审查的生效

    实质审查的生效

  • 2008-03-05

    公开

    公开

说明书

技术领域

本发明关于一种在运算系统中的资源管理器及实现方法,尤其关于一种 用于管理驱动程序的资源管理方法及资源管理器。

背景技术

一般而言,如本领域内技术人员所知,当运算系统中处理程序(handler) 需要特定驱动程序(例如视频解码器的驱动程序、调谐器(tuner)的驱动程序 或是其它驱动程序)时,在逻辑观点(logical view)的角度上,此处理程序并 不确定运算系统中有哪些可使用的驱动程序,举例来说,驱动程序可以是视 频解码器的驱动程序、调谐器的驱动程序或是其它的驱动程序;而处理程序 则可以是要求使用任一或是多个可使用的驱动程序的运算系统中的应用程序。

如前所述,因为应用程序在逻辑观点上无法得知有哪些可使用的驱动程 序,所以软件程序(即应用程序)必然需要对运算系统的下层硬件架构具有某 种程度的了解,然而若运算系统中硬件组件的规格定义是内存于本身硬件组 件中,则将会造成整体系统效率低下。因此,倘若真的依据上述方式来实现, 目前的软件应用程序的处理程序便必须使用试误法(trial and error)来找出 可使用的驱动程序(此种作法相当缺乏效率);其中此处所述的驱动程序与处 理程序的运作为本领域技术人员所熟悉,为了简化说明,在此不另赘述。

因此,为了解决上述所提到的技术问题,提出新颖并同时可改进现有机 制的方法与装置显然是相当重要的。

发明内容

本发明目的是提供一种用于管理驱动程序的资源管理方法及资源管理器。

因此本发明的目的之一是在运算系统中提供资源管理方法及资源管理器, 用来将运算系统的硬件抽象观点(hardware abstraction view)反映给运算 系统的驱动程序。驱动程序的使用状况与驱动程序之间的有效互动状况是利 用软件资源管理器来加以重新配置。

本发明实施例提供一种用于管理运算系统中驱动程序的资源管理方法, 该资源管理方法包含有:接收并储存多个驱动程序的登录信息;接收并储存 上述驱动程序的互连信息;接收至少一请求命令来启动并控制上述驱动程序 中的特定驱动程序;搜寻登录信息以找出特定驱动程序;以及参考互连信息 来决定特定驱动程序是否依据请求命令而可被执行。

本发明实施例还提供一种用于管理驱动程序的资源管理器,该资源管理 器包含有:驱动程序登录单元、存储器、驱动程序管理单元及处理器。驱动 程序登录单元用来接收多个驱动程序的登录信息及驱动程序的互连信息。存 储器耦接于驱动程序登录单元,其用来储存登录信息与互连信息。驱动程序 管理单元耦接于存储器,用来接收至少一请求命令来执行驱动程序中的特定 驱动程序。处理器耦接于驱动程序管理单元与存储器,其用来搜寻特定驱动 程序的登录信息,以及用来参考互连信息以产生结果。

本发明实施例的有益效果在于:

通过本发明提供的资源管理机制,即便在实作上发生多个管线均需使用 相同驱动程序的情形,同样能高效合理的配置这些驱动程序以及快速解决驱 动程序彼此间的冲突,进而解决因当前软件应用程序中处理程序使用的试误 法而引发的低效率等问题。

附图说明

图1是本发明一实施例提供用于运算系统中驱动程序的资源管理器的功 能方框图;

图2是本发明一实施例提供用于运算系统中驱动程序的资源管理方法的 流程图。

具体实施方式

在此请注意到,说明书中所提到的管线(pipeline)的词汇是指一种用于 描述编组(grouping)多个驱动程序(driver component)情形的概念,另外, 上述驱动程序可轻易地被归类成以下三种类型的驱动程序的其中之一:驱动 源程序(source driver component)、末端驱动程序(sink driver component) 或是过程驱动程序(process driver component);举例来说,管线可以具有 单一驱动源程序、连接于驱动源程序后的任何数目的过程驱动程序以及连接 于前一个过程驱动程序后的任何数目的末端驱动程序。如稍后说明中所描述, 本发明提供的实施例主要反映当多个管线均需使用到相同驱动程序时如何配 置上述驱动程序以及如何解决驱动程序彼此冲突所引发的问题。因此,对于 本发明而言,并不需要特别说明驱动程序的细节来强调本发明的发明特点; 然而,需了解的是,本发明的精神可适用于目前已存在的驱动程序的其它分 类方式、编组方法及机制。

请参阅图1,图1是本发明实施例提供用于运算系统(computing system) 中的驱动程序资源管理器100的功能方框图。其中,在本发明一实施例中,资 源管理器100设计成内嵌在电视机顶盒(set top box)中,并在电视机顶盒开 机过程中运作,然而,此非本发明的限制。如图1所示,资源管理器100包 含有驱动程序管理单元(driver broker)105、处理器140、存储器110及驱动 程序登录单元(driver registration unit)130。驱动程序登录单元130是用 来接收多个驱动程序的登录信息(registration  information)与互连信息 (interconnection information),例如,驱动程序登录单元130可利用稍后 所述的方式来登录(即通过驱动程序接收登录信息)并储存驱动程序的登录信 息至存储器110中。驱动程序登录数据库120、互连信息数据库121、驱动程 序互斥表122、驱动程序连接表123及驱动程序连接互斥表124则同样均储存 于存储器110中。

而存储器110耦接于驱动程序登录单元130、处理器140与驱动程序管理 单元105,存储器110用来储存先前所提及的驱动程序的登录信息与互连信 息;处理器140则耦接于驱动程序管理单元105与存储器110,并用来搜寻储 存于存储器110中的登录信息以找到特定驱动程序,并且参考其互连信息来 产生结果。

驱动程序管理单元105耦接于存储器110,其用来接收至少一请求命令 (request)以控制多个驱动程序中的特定驱动程序。如图1所示,驱动程序 登录数据库120储存于存储器110中,而驱动程序管理单元105是在驱动程 序登录数据库120中追踪关于已登录驱动程序的信息,其中此信息包含有驱 动程序信息,例如,名称、识别码、群组名称、驱动程序连接表、驱动程序 连接互斥表及驱动程序互斥表等等,但本发明并不以此为限。在本实施例中, 驱动程序管理单元105用来执行冲突恢复处理程序(conflict restore handler)、来源连接处理程序(source connection handler)、驱动程序搜寻 引擎(driver component search engine)、管线处理程序(pipeline handler) 及冲突解决引擎(conflict resolver engine)(均未在图1中显示)。

驱动程序管理单元105的运作与功能则进一步描述如下。应该注意的是, 其详细的运作过程仅用来提供有助于了解本发明精神的背景知识以及与本发 明有关的一定程度的技术揭露,然而,本发明不应被下文中所提到的范例所 限制。举例来说,管线处理程序可建立(establish)/破坏(destroy)管线, 并且也可追踪与已建立管线相关连的所有驱动程序。若特定管线被破坏而某 些驱动程序仍与此特定管线相关连时,则管线处理程序可告知所有驱动程序 的处理程序:目前此特定管线正被破坏;举例来说,管线处理程序会依据将 驱动程序加入至管线的相反顺序来通知驱动程序中处理程序有关正被破坏的 特定管线所关连的驱动程序。此外,一般而言,处理程序必需通过驱动程序 管理单元105或驱动程序管理单元105中任一特定程序来与驱动程序进行交 互,然而,在本说明书的其它部分,从驱动程序回传至处理程序的回传消息 (callback)或通知消息(notification)可经由驱动程序管理单元105或者不 经由驱动程序管理单元105来加以操作。上述相连接的驱动程序的例子为本 领域技术人员所了解,而为了简化说明,在此省略其详细的运作过程。需注 意的是,通常,处理程序为与运算系统相关的执行程序代码,并且具有可对 驱动程序发出请求命令的优点。驱动程序搜寻引擎则用来在驱动程序登录数 据库120中的一组已知的搜寻参数中搜寻合适的驱动程序,冲突解决引擎则 是用来当一个冲突发生时决定如何解决此冲突所造成的问题,而在必要的状 况下,冲突解决引擎也将会送出通知消息至与此冲突有关的处理程序,特别 是那些支配冲突中的驱动程序的处理程序。连接处理程序是用来建立连接关 系,而一旦连接关系已建立,则会通知处理程序;其中,连接处理程序所建 立的任一连接关系可能由异步程序来加以实现。

下列的叙述用来加强说明驱动程序的运作与其彼此间具有上述功能的连 结;显然地,在不违背本发明的精神下,也可对本实施例进行许多的设计变 化,这均属本发明的范畴。驱动程序登录单元130会接收驱动程序互斥表122, 而驱动程序互斥表122定义有包含无法同时被启动的驱动程序的至少一驱动 程序群组。此外,驱动程序登录单元130会将驱动程序互斥表122储存于存 储器110中。驱动程序管理单元105可能会分别通过第一管线与第二管线来 分别接收对一第一特定驱动程序的第一请求命令及对第二特定驱动程序的第 二请求命令,并且设定第一管线具有第一优先级(priority)以及设定第二 管线具有第二优先级。接着,驱动程序管理单元105会参考储存于存储器110 中的驱动程序互斥表122。若第一特定驱动程序与第二特定驱动程序均属于 相同的驱动程序群组,则驱动程序管理单元105将会比较第一优先级与第二 优先级来决定是否可启动(activate)第一特定驱动程序或是第二特定驱动程 序。

驱动程序管理单元105还会将第一旗标(flag)设定给第一管线,以及将 第二旗标设定给第二管线,并且当第一优先级与第二优先级相同时,驱动程 序管理单元105会参考第一、第二旗标其中之一来决定特定驱动程序是否可 被启动。对于在冲突环境中决定共享资源的分配情形,目前已有相当多的机 制可达成相同的效果,举例来说,有许多符合本发明精神且可达到上述的关 于应用第一、第二旗标等相同效果的例子,因为这些例子已被本领域中技术 人员所熟知,故省略相关的运作说明。此外,驱动程序登录单元130会执行 多个工作任务(task),而上述工作任务包括接收驱动程序连接表123(其储存 于存储器110中)及将驱动程序连接表123储存至存储器110中,其中驱动程 序连接表123定义有包含可利用特定顺序来进行连接的驱动程序的驱动程序 群组。稍后,驱动程序管理单元105会参考驱动程序连接表123来检查特定 驱动程序与另一特定驱动程序是否属于驱动程序连接表123中的同一驱动程 序群组,以决定是否启动特定驱动程序。

此外,驱动程序登录单元130会接收用来定义包含多个驱动程序群组中 至少一集合的驱动程序连接互斥表124,并会将驱动程序连接互斥表124储存 至存储器110,其中每一驱动程序群组中的多个驱动程序可利用特定顺序来进 行连接。然而,上述驱动程序群组的集合中所定义的驱动程序连接并无法同 时启动。接着,依据处理程序的请求命令的需要,驱动程序管理单元105会 参考驱动程序连接互斥表124以检查特定驱动程序与另一特定驱动程序是否 属于驱动程序互斥表122中相同集合下的不同驱动程序群组,其中特定驱动 程序与另一驱动程序对应于不同的驱动程序连接关系,而若特定驱动程序与 另一特定驱动程序属于驱动程序互斥表122中相同集合下的不同驱动程序群 组,则驱动程序管理单元105则会比较第一优先级与第二优先级来决定是否 可执行特定驱动程序。

此外,驱动程序管理单元105会将第一旗标设定给第一管线并且将第二 旗标设定给第二管线。接着,当第一优先级与第二优先级相同时,驱动程序 管理单元105会参考第一、第二旗标其中之一来决定是否可执行上述特定驱 动程序。举例来说,驱动程序管理单元105会比较第一优先级与第二优先级 以决定第一管线与第二管线其中之一可使用上述特定驱动程序;当第一优先 级与第二优先级相同时,驱动程序管理单元105分别将第一旗标与第二旗标 设定给第一管线与第二管线,并且参考第一、第二旗标其中之一以决定第一 管线与第二管线的其中之一可使用上述特定驱动程序。

请参阅图2,图2是本发明一实施例提供用于运算系统中驱动程序的资源 管理方法的流程图。其详细的流程步骤如下所述:

步骤200:开始。

步骤210:在运算系统的初始开机程序中,驱动程序登录其登录信息至驱 动程序登录单元130中。        

步骤220:处理程序会向驱动程序管理单元105发出请求命令来请求驱动 程序。

步骤225:处理器140会参考登录信息来决定是否依据请求命令来启动特 定驱动程序。  

步骤230:驱动程序管理单元105会依据驱动程序的登录信息与优先级来 提供被请求的驱动程序。

步骤240:驱动程序管理单元105会更新驱动程序的状态以反应出目前被 请求的驱动程序的使用情况。

步骤250:驱动程序管理单元105会等候下一个处理程序的请求命令与驱 动程序的登录信息,接着,返回步骤220。

综上所述,本实施例的流程开始于步骤200。而在步骤210中,驱动程序 会将其信息登录在驱动程序登录单元130中(驱动程序可在运算系统的初始开 机程序中登录其信息),而所有驱动程序必定均能够登录其信息于驱动程序登 录单元130中;而在步骤210中,驱动程序会在登录信息至驱动程序登录单 元130时,提供信息至管线处理程序。

请注意到,任一数目的驱动程序均可被编组以形成多个驱动程序所构成 的单一群组或丛集(cluster);之后,处理程序可利用发出单一请求命令至资 源管理器100来请求特定群组中的多个驱动程序,举例来说,在资源管理器100 中可定义一个常用的驱动程序群组(即在特定组态下较常使用到的数个驱动 程序,其中特定组态可能是由特定驱动程序数据库参数所定义)。因此,处理 程序可通过指定某些驱动程序参数(例如类型(type)与群组(group))来发出 单一请求命令至驱动程序管理单元105以请求单一驱动程序(例如为一群组驱 动程序)。

请注意到,在步骤210中,本发明并没有限定储存于存储器110的驱动 程序登录信息的种类,因此,举例来说,在本实施例中,驱动程序登录单元130 可接收定义有包含无法同时启动的驱动程序的至少一驱动程序群组的驱动程 序互斥表122,并将驱动程序互斥表122储存于存储器110中;而在另一例子 中,驱动程序登录单元130则可接收驱动程序连接表123并将驱动程序连接 表123储存于存储器110中,其中驱动程序连接表123中定义有包含可利用 特定顺序来连接的驱动程序的至少一驱动程序群组;而在另外的其它例子中, 驱动程序登录单元130可接收驱动程序连接互斥表124并将驱动程序连接互 斥表124储存于存储器110中,其中驱动程序连接互斥表124用来定义包含 多个驱动程序群组中至少一集合,而每一驱动程序群组中的驱动程序则可利 用特定顺序来连接,然而,由此集合中的这些驱动程序群组所定义的驱动程 序连接关系则无法同时被启动。

在步骤225中,处理器140会参考登录信息来决定是否可依据请求命令 而启动特定驱动程序,举例来说,在本实施例中所经常提及的登录信息可包 含有驱动程序登录数据库120、互连信息数据库121、驱动程序互斥表122、 驱动程序连接表123与驱动程序连接互斥表124,并且均可储存于存储器110 中;然而,这并非是本发明的限制。

而在下面说明中,本发明同样提出其它例子来说明如何使用存储器110 中不同的登录信息,举例来说,当通过第一管线来请求另一特定驱动程序以 及通过第二管线来请求特定驱动程序时,可参考驱动程序连接表123来检查 特定驱动程序与另一特定驱动程序是否属于驱动程序连接表123中同一驱动 程序群组,以决定是否可启动上述特定驱动程序。

在另一例子中,若通过第一管线来请求一特定驱动程序,并再通过第二 管线来请求此特定驱动程序时,则会设定第一优先级给第一管线以及设定第 二优先级给第二管线。此外,在另外的例子中,若此特定驱动程序与另一特 定驱动程序是属于同一驱动程序群组,则处理器140会比较第一优先级与第 二优先级来决定是否启动此特定驱动程序;例如,上述说明所提及的冲突解 决引擎可在驱动程序管理单元105内部实现。

另外,在其他的例子中,若此特定驱动程序与另一特定驱动程序是属于 驱动程序互斥表122中相同集合中的不同驱动程序群组,则处理器140会比 较第一优先级与第二优先级来决定是否可执行此特定驱动程序,其中第一管 线进一步被设定为具有第一旗标,而第二管线进一步被设定为具有第二旗标, 以及当第一优先级与第二优先级相同时,处理器140必须参考第一、第二旗 标其中之一来决定是否可启动此特定驱动程序。

再或者,第一管线被设定为具有第一旗标,而第二管线则被设定为具有 第二旗标;处理器140必须比较第一、第二优先级来决定是否可启动此特定 驱动程序,而当第一优先级与第二优先级相同时,可通过参考第一、第二旗 标其中之一来决定是否可启动此特定驱动程序,例如,上述说明所提及的冲 突解决引擎可在驱动程序管理单元105内部实现。

此外,在其它例子中,若第一管线与第二管线均发出请求命令来请求特 定驱动程序,而第一管线与第二管线分别被设定为具有第一优先级与第二优 先级,则处理器140必然会参考储存于存储器110中的互连信息数据库121 来决定是否可启动此特定驱动程序以响应此请求命令,详细来说,尤其是当 参考驱动程序连接互斥表124来检查此特定驱动程序与另一特定驱动程序是 否属于驱动程序连接互斥表124中相同集合中的不同驱动程序群组。其中此 特定驱动程序与另一特定驱动程序分别对应于不同的驱动程序连接关系,例 如,上述说明所提及的驱动程序搜寻引擎可在驱动程序管理单元105内部实 现。

再者,在其它例子中,若第一管线与第二管线均发出请求命令来请求特 定驱动程序,因此,第一管线与第二管线分别被设定为具有第一优先级与第 二优先级,而驱动程序管理单元105会比较第一优先级与第二优先级来决定 第一管线与第二管线其中之一来使用此特定驱动程序,举例来说,例如,上 述说明所提及的冲突解决引擎可在驱动程序管理单元105内部实现。

而在某些情况下,上述管线的第一优先级与第二优先级可能会是相同的 顺序,此时,驱动程序管理单元仅需参考第一、第二旗标其中之一来决定第 一管线与第二管线其中之一使用此特定驱动程序。目前已有许多机制与技术 来分配一冲突环境中有限的系统资源,例如在本发明实施例中所提到的驱动 程序与处理程序。通过使用例子来说明的方式(但并非本发明的限制),本发 明提出一个简易的优先级旗标仲裁机制,然而,本领域技术人员所熟悉的任 何类似机制应该属于本发明的精神,均属本发明范畴,例如,上述说明所提 及的冲突解决引擎可在驱动程序管理单元105内部实现;而为了简化说明, 在此省略其详细的运作过程。

在步骤230中,驱动程序管理单元105会依据驱动程序登录信息与驱动 程序或管线的优先级来提供所请求的驱动程序,例如,处理器140在步骤225 中会参考驱动程序互斥表122来检查此特定驱动程序与另一特定驱动程序是 否属于驱动程序互斥表122中同一驱动程序群组,以提供驱动程序管理单元 105检查后的结果来执行后续步骤230,例如,上述说明所提及的驱动程序搜 寻引擎可在驱动程序管理单元105内部实现。

驱动程序管理单元105在步骤240中则会更新驱动程序的状态来反映出 所请求的驱动程序的使用情况,换言之,每当已经响应由多个处理程序其中 之一所发出多个驱动程序的请求命令的其中之一,驱动程序管理单元105便 更新驱动程序登录数据库120来正确指出每一被请求的驱动程序的最新状态 。举例来说,先前所提及的连接处理程序可在驱动程序管理单元105内部实 现以达到此目的。此外,驱动程序管理单元105在步骤250中则会等候下一 个处理程序的请求命令,接着,上述流程步骤才会回到步骤220以接收处理 程序的请求命令,并重复执行上述的流程步骤;举例来说,先前所提及的管 线处理程序可在驱动程序管理单元105内部实现。是达到此项目所需的一个 重要组件。

当接收至少一个登录信息群组(登录信息群组包含有部分驱动程序的登 录信息)以及当储存登录信息群组至存储器110中时,相当可能会接收到驱 动程序群组的请求命令,此驱动程序群组的请求命令包含有特定驱动程序, 而当处理器140正在搜寻登录信息时,本发明所提出的实施例则可搜寻到对 应于群组的登录信息群组;而需注意的是,上述的运作过程可轻易地在电视 机顶盒中实现,尤其是在电视机顶盒的开机过程中。再请注意到,驱动程序 管理单元105设计成可识别出(或以旗标注记)目前已结束使用的某一特定 驱动程序管线(例如,处理程序可能已终止连接关系,所以不再需要使用目前 的特定管线),所以可适当地留置特定管线,若稍后将再度使用到特定管线, 则可避免重新建立整个管线,此种作法将有助于提升资源管理器100的工作 效率,然而,这并非用来作为对本发明的限制。

以上所述仅为本发明的较佳实施例,凡根据本发明所做的均等变化与修 饰,都属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号