热插拔总线接口的资源分配方法及装置的制作方法

文档序号:6458067阅读:178来源:国知局
专利名称:热插拔总线接口的资源分配方法及装置的制作方法
技术领域
本发明涉及计算机的总线接口领域,特别涉及在计算机的总线接口上热插 拔相应的外部设备后,操作系统对该外部设备分配资源的方法及装置。
背景技术
普遍使用的计算机内部总线主要包括加速图形端口 ( Acce 1 era ted Graphics Port, AGP )总线和夕卜部设备互连(Peripheral Component Interconnect, PCI) 总线。在现有PCI总线的基础上,开发出了新的PCI Express (PCIE)总线,PCIE 接口可以从控制PCIE总线的根联合体直接引出,也可以通过PCIE桥(SWITCH) 连接到PCIE总线的根联合体;在一个PCIE桥上可以设置多个PCIE接口,以便 插接多个外部设备。在PCIE规范中定义了 PCIE热插拔的标准流程,PCIE热插 拔一般是在线更换外部设备时才用到的。为了实现PCIE总线的热插拔功能,在系统初始化时,基本输入输出系统 (Basic Input Output System, BIOS)或操作系统(Operating System, OS) 为每个没有插接设备的SLOT都预留固定大小的资源,包括地址空间资源,使得 系统正常运行过程中,如果在空闲的SLOT中插入设备,系统就会将预留的地址 空间资源,分配给这个刚插入的外部设备,以保证不需要重新启动系统就可以 正常使用该刚接入的外部设备。在实现本发明的过程中,发明人经过研究发现1、 由于现有系统是在PCIE插槽中没有插入设备时,就为该PCIE插槽预留 资源,如果系统初始化时,给空闲PCIE插槽预留的资源不够时,就无法提供后 插入设备运行所需要的资源,例如地址空间资源,造成后插入设备无法正常运行。2、 如果将某个PCIE插槽中的设备拔出后,换上其他设备插入到该PCIE插 槽,可能会由于后插入的设备和以前的设备所需要的资源不同,使得后插入的 设备不能正常运行,无法完成在线更换设备。3、 一般情况下,由于设备升级后所需要的资源(主要是地址空间资源)会相对增加,所以现有的PCIE热插拔技术无法支持设备的热升级,必须在设备完 成升级后重新启动系统,才能够使得升级后的设备能够使用。例如网卡的驱 动在线升级完成后,系统会提醒用户重启系统或者自动重启系统,才能使用升 级后的网卡驱动;如果不重启系统,则只能使用升级之前的网卡驱动。发明内容本发明的实施例提供一种热插拔总线接口的资源分配方法及装置,能够按 需分配所述热插拔总线接口所插接设备运行的资源。为达到上述目的,本发明的实施例采用如下技术方案一种热插拔总线接口的资源分配方法,包括检测到热插拔总线接口上插入设备;查找为所述热插拔总线接口预留的资源;判断所述预留资源是否满足所检测到设备的资源需求;如果所述预留资源不满足所检测到设备的资源需求,则为检测到的设备重 新分配运行所需的资源。一种总线接口的资源分配装置,包括检测模块,用于检测热插拔总线接口上插入设备;资源分配模块,用于为检测到的设备分配资源;查找模块,用于查找为所述热插拔总线接口预留的资源;判断模块,用于判断所述预留资源是否满足所插接设备的资源需求;如果所述预留资源不满足所检测到设备的资源需求,所述资源分配模块为 检测到的设备重新分配运行所需的资源。由上述技术方案所描述的本发明的实施例,在纟企测到热插拔总线接口上插 入设备后,首先要查找为该热插拔总线接口预留的资源,如果预留资源不能够 满足所检测到设备的资源需求时,再为该检测到的设备重新分配资源,重新分 配的资源是竭行该4企测到的设备所需的资源,并不限定于系统预留的资源。当 系统没有为该热插拔总线接口预留资源,或者系统预留的资源不满足所插接设 备的资源需求时,本发明的实施例可以保证热插拔总线接口上插接的设备正常运行,不会导致所插接的设备无法正常运行。


图1为本发明热插拔总线接口的资源分配方法实施例1的流程图; 图2为本发明热插拔总线接口的资源分配方法实施例2的流程图; 图3为通过总线接口桥连接的热插拔总线接口插接框图; 图4为本发明热插拔总线接口的资源分配装置实施例的原理图。
具体实施方式
本发明热插拔总线接口的资源分配方法及装置的实施例,在检测到热插拔 总线接口插入设备,或者热插拔总线接口上的设备更新后,按照该检测到的设 备的运行需求分配资源,以保证热插拔总线接口插入的设备能正常运行,或者 热插拔总线接口上的设备更新后能正常运行。下面结合附图,对本发明热插拔 总线接口的资源分配方法及装置的实施例进行详细描述,本发明实施例以声卡 和网卡为例进行说明。本发明实施例中说明了在计算机中已经有独立声卡的情 况下,不关闭计算机插入网卡的实施过程,但是本发明实施例中独立声卡和网 卡也可以是其他类型的接口卡。实施例1:本实施,中以采用PCIE接口 (外设组件互连扩展接口 )的计算机为例,该 计算机的PCIE接口上已经安装了一块独立声卡,再插接一块网卡,由于该PCIE 接口支持热插拔,所以本实施例是在计算机正在运行的情况下插入网卡的。该 插入网卡的过程如图1所示,具体为101、 在不关闭计算机的情况下,将网卡插到计算机主板上空闲的PCIE接 口中。102、 ;险测到其中一个空闲的PCIE接口上插入了网卡。103、 查权为该PCIE接口预留的资源,包括地址空间资源,如果计算机没 有为该PCIE接口预留资源,用预留资源为空来表示。104、 判断预留的地址空间资源是否满足网卡的资源需求;如果所述预留的 地址空间资源满足所网卡的资源需求,则执行步骤105;如果预留的地址空间资源不满足网卡的资源需求,则执行步骤106。其中没有为PCIE接口预留资源的 情况,属于预留的地址空间资源不能满足网卡的资源需求。105、将预留的资源分配给所述网卡,并控制网卡开始运行,流程结束。106 、为^企测到的网卡重新分配运行所需的资源。上述实施例中,如果为PCIE接口预留的资源无法满足插接设备的资源需求, 则需要重新为设备分配资源,而不限定于系统预留的资源。所以本发明的实施 例可以保证PCIE接口上插接的设备正常运行,不会由于系统为该PCIE接口预 留的资源不满足所插接设备的资源需求,而导致所插接的设备无法正常运行。实施例2:本实施例中以采用PCIE接口 (外设组件互连扩展接口)的计算机为例,该 计算机的PCIE接口上已经安装了一块独立声卡,但没有安装网卡,所以不能接 入互联网,为了接入互l关网,需要在计算机主板的PCIE接口上插接网卡,通过 网卡将该计算机接入互联网。由于该PCIE接口支持热插拔,所以本实施例是在 计算机正在运行的情况下插入网卡的。该插入网卡的过程如图2所示,具体为201、 在不关闭计算机的情况下,将网卡插到计算机主板上空闲的PCIE接 口中。202、 ;险il'J到其中一个空闲的PCIE接口上插入了网卡。203、 查找为该PCIE接口预留的资源,包括地址空间资源,如果计算机没 有为该P CIE接口预留资源,用预留资源为空来表示。204、 判断预留的地址空间资源是否满足网卡的资源需求;如果所述预留的 地址空间资源满足所网卡的资源需求,则执行步骤205;如果预留的地址空间资 源不满足网卡的资源需求,则执行步骤206。其中没有为PCIE接口预留资源的 情况,属于预留的地址空间资源不能满足网卡的资源需求。205、 将预留的资源分配给所述网卡,并控制网卡开始运行,流程结束。206、 判断该PCIE接口是否通过PCIE桥连接在根联合体上,如果该PCIE 接口直接连接在根联合体上,则执行步骤207;如果该PCIE接口通过PCIE桥连 接到根联合体上,则执行步骤211。207 、假如网卡所插接的PCIE接口直接连接在根联合体上,则要统计当前 剩余的资源,包括系统的地址空间资源。208、 判断当前剩余的资源是否满足网卡的资源需求,如果当前剩余的资源 不满足网卡的资源需求,则执行步骤209;如果当前剩余的资源满足网卡的资源 需求,则执行步骤210。209、 不为网卡分配资源,并且不启动网卡,本次插入网卡失败,流程结束。210、 根据网卡的资源需求为其分配资源,并且启动网卡,那么该计算机就 可以通过该网卡上网了。211、 如图3所示,假如原有的声卡和刚插入的网卡在同一个PCIE桥下的 PCIE接口中,则需要停止该声卡;如果同一个PCIE桥下还有其他的设备,也需 要一并停止。212、 计算声卡的资源需求和网卡的资源需求。213、 统计计算机当前剩余的资源,包括地址空间资源。214、 判断当前剩余的资源是否满足声卡和网卡的资源需求,如果当前剩余 的资源不满足声卡和网卡的资源需求,则执行步骤215;如果当前剩余的资源满 足声卡和网卡的资源需求,则执行步骤216。215、 将声卡恢复到运行状态,但不为网卡分配资源,并且不启动网卡,说 明本次插入网卡失败,流程结束。216、 根据声卡和网卡的资源需求为其分配资源,并且启动声卡和网卡,那 么该计算机就可以通过该网卡上网了;如果分配资源不成功,则只恢复到运行 状态,但不启动网卡,说明本次插入网卡失败,流程结束。上述实施例为热插拔总线接口的资源分配方法的具体分配过程,其中206 步可以放在202步和203步之间。上述实施例中,如果为PCIE接口预留的资源无法满足插接设备的资源需求, 则需要重新为设备分配资源,而不限定于系统预留的资源。所以本发明的实施 例可以保证PCIE接口上插接的设备正常运行,不会由于系统为该PCIE接口预 留的资源不满足所插接设备的资源需求,而导致所插接的设备无法正常运行。同样本发明实施例还适用于在更换设备和设备升级的情况,例如将原来 的普通网卡更换成无线网卡后,由于无线网卡需要的资源与普通网卡所需的资 源不同,所以,在插入无线网卡后,本发明热插拔总线接口的资源分配方法的 实施例,在原先资源不能满足无线网卡资源需求的情况下,重新为无线网卡分配资源,以确保无线网卡能正常工作。由于网卡的驱动程序升级时需要暂时将网卡停止,当驱动程序升级后,需 要重新启动网卡,这相当于插入网卡的操作,所以,如果将网卡的驱动程序在 线升级后,造成该PCIE接口的资源无法满足升级后的网卡的资源需求,本发明 的实施例也会重新分配资源。实施例3:本实施例提供了实现热插拔总线接口的资源分配方法的装置,如图4所示, 具体包括检测模块,用于4企测热插拔总线接口上插入设备,当网卡插入到PCIE接口 中后,该检测模块通过连接到PCIE接口的信号线检测到该网卡。查找模块,用于查找为所述热插拔总线接口预留的资源,检测模块检测到 网卡后,启动该查找模块查找为该PCIE接口预留的资源。判断模块,用于判断所述预留资源是否满足网卡的资源需求。资源分配模块,用于为检测到的设备分配运行所需的资源,如果预留资源 满足网卡的资源需求,则直接为网卡分配资源,并启动网卡,这样就可以通过 网卡接入互4关网了。如果预留资源不满足网卡的资源需求,则该判断模块还需要分析该网卡所 插接的PC IE接口是直接连接在根联合体上,还是通过PC IE桥连接到根联合体 上。如果计算机没有为该PCIE接口预留资源,用预留资源为空来表示,属于预 留的地址空间资源不能满足网卡资源需求的情况。如果PCIE接口直接连接在根联合体上,则启动第一计算模块和统计模块。 其中,第一计算模块用于计算所插接的设备的资源需求,即计算网卡的资源需 求;统计模块用于统计当前剩余的资源。如果当前剩余资源不满足计算出的资 源需求,所述资源分配模块不为所插接的设备分配资源;如果当前剩余资源满 足计算出的资源需求,则所述资源分配模块根据计算出的资源需求为所插接的 设备分配资源。在资源分配完成后,启动网卡,这样就可以通过网卡接入互联 网了。如果PCIE接口通过PCIE桥连接到根联合体上,则启动第二计算模块、控 制模块和统计模块。控制模块,用于停止所述PCIE桥上的原有设备,在实施例2中是停止声卡的工作。第二计算模块,用于计算所述PCIE桥上所有设备的资 源需求,即计算声卡和网卡的资源需求。统计^^块,用于统计当前剩余的资源。如果当前剩余的资源不满足声卡和网卡的资源需求,则不为网卡分配资源, 但控制模块还需要控制声卡恢复运行。如果当前剩余的资源满足声卡和网卡的 资源需求,则所述资源分配^f莫块根据计算出的资源需求,为所述总线接口桥上 所有设备分配资源;分配资源成功后,所述控制模块根据分配结果控制所述PCIE 桥上所有设备运行,即控制声卡和网卡都运行;如果资源分配不成功,所述控 制模块控制声卡恢复运行。本发明热插拔总线接口的资源分配方法及装置的实施例,主要用在PCIE接 口中,也可以用在其他支持热插拔的总线接口中,例如AGP接口、支持热插拔 的PCI接口等。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围 应该以权利要求的保护范围为准。
权利要求
1、一种热插拔总线接口的资源分配方法,其特征在于包括检测到热插拔总线接口上插入设备;查找为所述热插拔总线接口预留的资源;判断所述预留资源是否满足所检测到设备的资源需求;如果所述预留资源不满足所检测到设备的资源需求,则为检测到的设备重新分配运行所需的资源。
2、 根据权利要求1所述的热插拔总线接口的资源分配方法,其特征在于, 所述为检测到的设备重新分配运行所需的资源包括判断所述热插拔总线接口是否通过总线接口桥与根联合体连接; 若所述热插拔总线接口通过总线接口桥与根联合体连接,停止所述总线接口桥上的原有设备;并从剩余资源中为所述总线接口桥上的所有设备分配资源; 若所述热插拔总线接口直接与根联合体连接,则从剩余资源中为所插接的设备分配资源。
3、 根据权利要求2所述的热插拔总线接口的资源分配方法,其特征在于, 所述从剩余#源中为所插接的设备分配资源包括计算所插接的设备的资源需求; 统计当前剩余的资源;如果当前剩余的资源不满足计算出的资源需求,则不为所插接的设备分配 资源;如果当前剩余的资源满足计算出的资源需求,根据计算出的资源需求为所 插接的设备分配资源。
4、 根据权利要求2所述的热插拔总线接口的资源分配方法,其特征在于, 所述从剩余资源中为所述总线接口桥上的所有设备分配资源包括计算所述总线接口桥上所有设备的资源需求; 统计当前剩余的资源;如果当前剩余的资源不满足计算出的资源需求,则运行所述总线接口桥上 的原有设备;,,如果当前剩余的资源满足计算出的资源需求,才艮据计算出的资源需求,为所述总线接口桥上所有设备分配资源。
5、 根据权利要求4所述的热插拔总线接口的资源分配方法,其特征在于, 所述从剩余资源中为所述总线接口桥上的所有设备分配资源还包括如果分配资源成功,运行所述总线接口桥上所有设备; 如果分配资源不成功,则运行所述总线接口桥上的原有设备。
6、 根据权利要求1至5中任意一项所述的热插拔总线接口的资源分配方法, 其特征在于,所述热插拔总线接口为外设组件互连扩展接口 ,所述总线接口桥 为外设组件互连扩展接口桥。
7、 一种总线接口的资源分配装置,其特征在于包括 检测模块,用于检测热插拔总线接口上是否插入设备; 资源分配模块,用于为检测到的设备分配资源; 查找模块,用于查找为所述热插拔总线接口预留的资源; 判断模块,用于判断所述预留资源是否满足所插接设备的资源需求; 如果所述预留资源不满足所检测到设备的资源需求,所述资源分配模块为检测到的设备重新分配运行所需的资源。
8、 根据权利要求7所述的总线接口的资源分配装置,其特征在于 在所述预留资源不满足所检测到设备的资源需求时,所述判断模块进一步判断所述热插拔总线接口是否通过总线接口桥与根联合体连接; 该总线接口的资源分配装置还包括第一计算模块,所述热插拔总线接口直接与根联合体连接时,用于计算所 插接的设备的资源需求;统计模块,用于统计当前剩余的资源;如果当前剩余资源不满足计算出的资源需求,所述资源分配模块不为所插 接的设备分配资源;如果当前剩余资源满足计算出的资源需求,所述资源分配模块根据计算出 的资源需求另所插接的设备分配资源。
9、 ,根据权利要求7所述的总线接口的资源分配装置,其特征在于-.在所述预留资源不满足所检测到设备的资源需求时,所述判断模块进一步判断所述热插拔总线接口是否通过总线接口桥与根联合体连接; 该总线接口的资源分配装置还包括控制模块,所述热插拔总线接口通过总线接口桥与根联合体连接时,用于 停止所述总线接口桥上的原有设备;第二计算模块,用于计算所述总线接口桥上所有设备的资源需求; 统计模块,用于统计当前剩余的资源;如果当前剩余的资源不满足计算出的资源需求,所述控制模块控制所述总 线接口桥上的原有设备运行;如果当前剩余的资源满足计算出的资源需求,所述资源分配模块根据计算 出的资源需求,为所述总线接口桥上所有设备分配资源。
10、 根据权利要求9所述的总线接口的资源分配装置,其特征在于 如果分配资源成功,所述控制模块控制所述总线接口桥上所有设备运行; 如果资源分配不成功,所述控制模块控制所述总线接口桥上的原有设备运行。
11、 根据权利要求7至10中任意一项所述的热插拔总线接口的资源分配装 置,其特征在于,所述热插拔总线接口为外设组件互连扩展接口,所述总线接 口桥为外设组件互连扩展接口桥。
全文摘要
本发明的实施例公开了一种热插拔总线接口的资源分配方法及装置,涉及计算机的总线接口领域,解决了现有热插拔总线接口会出现预留资源不足的问题。本发明实施例在检测到热插拔总线接口插入设备后,按照该插入的设备的需求分配资源,并不受预留资源的影响,以确保热插拔总线接口插入的设备能正常运行。本发明实施例主要用在PCIE接口中,也可以用在其他支持热插拔的总线接口中。
文档编号G06F13/40GK101226515SQ200810006678
公开日2008年7月23日 申请日期2008年1月31日 优先权日2008年1月31日
发明者巍 张, 肖建龙, 华 陈 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1