发明内容
本发明实施例提供一种支持高密卡动态工作方式的方法和设备,用以解决现有高密卡插槽不支持高密卡动态工作方式的问题。
本发明实施例提供一种支持高密卡动态工作方式的方法,包括:
获取高密卡的工作方式;
根据预先配置的高密卡工作方式与配置信息的对应关系,获取与所述工作方式对应的配置信息;
当与所述高密卡连接的芯片中的配置信息与获取的配置信息不同时,用获取的配置信息重新配置所述芯片中的配置信息;
扫描系统的拓扑结构,根据重新配置的配置信息为所述高密卡所在的外设部件互连标准扩展插槽分配资源,以便所述高密卡能够在所述工作方式下工作;
其中,所述高密卡是指一张印刷电路板上拥有两颗以上的功能芯片。
本发明实施例提供一种支持高密卡动态工作方式的设备,包括:
工作方式获取模块,用于获取高密卡的工作方式;
配置信息获取模块,用于根据预先配置的高密卡工作方式与配置信息的对应关系,获取与所述工作方式对应的配置信息;
配置模块,用于当与所述高密卡连接的芯片中的配置信息与获取的配置信息不同时,用获取的配置信息重新配置所述芯片中的配置信息;
扫描分配模块,用于扫描系统的拓扑结构,根据重新配置的配置信息为所述高密卡所在的外设部件互连标准扩展插槽分配资源,以便所述高密卡能够在所述工作方式下工作;
其中,所述高密卡是指一张印刷电路板上拥有两颗以上的功能芯片。
本发明实施例通过根据高密卡的工作方式重新配置PCIE插槽的配置信息,实现了PCIE插槽的配置信息可以根据工作方式动态改变,在一定程度上避免了现有PCIE插槽配置信息固定造成的问题,实现高密卡工作方式改变时,高密卡所在的PCIE插槽依旧可以保证高密卡的正常工作。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明第一实施例的方法流程示意图,包括:
步骤11:获取高密卡的工作方式;
步骤12:根据预先配置的高密卡工作方式与配置信息的对应关系,获取与所述工作方式对应的配置信息;
步骤13:当与所述高密卡连接的芯片中的配置信息与获取的配置信息不同时,用获取的配置信息重新配置所述芯片中的配置信息;
步骤14:扫描系统的拓扑结构,根据重新配置的配置信息为所述高密卡所在的PCIE插槽分配资源,以便所述高密卡能够在所述工作方式下工作。
本实施例中各步骤的执行主体可以是支持高密卡动态工作的设备。
本实施例通过根据高密卡的工作方式重新配置PCIE插槽的配置信息,实现了PCIE插槽的配置信息可以根据工作方式动态改变,在一定程度上避免了 现有PCIE插槽配置信息固定造成的问题,实现高密卡工作方式改变时,高密卡所在的PCIE插槽依旧可以保证高密卡的正常工作。
高密卡与北桥进行通信时,可以通过PCIE交换芯片,实现高密卡与北桥的连接,也可以是高密卡直接与北桥连接。下面分别进行描述。
图2为本发明第二实施例的方法流程示意图,本实施例以高密卡通过PCIE交换芯片连接在北桥上为例。
参见图2,本实施例包括:
步骤21:高密卡的电子标签中被写入该高密卡的工作方式。
其中,高密卡的工作方式是指高密卡中的功能芯片的工作状态,工作方式可以用二进制数表示。例如,高密卡中有两个功能芯片,假设为功能芯片-1和功能芯片-2,则该高密卡的工作方式的定义可以包括但不限于表1所示:
表1
工作方式对 应的数值 |
工作方式对应的描述 |
00 |
功能芯片-1处于非工作状态且功能芯片-2处于非工作状态 |
01 |
功能芯片-1处于工作状态且功能芯片-2处于非工作状态 |
10 |
功能芯片-1处于非工作状态且功能芯片-2处于工作状态 |
11 |
功能芯片-1处于工作状态且功能芯片-2处于工作状态 |
用户可以根据当前需要的工作方式,将对应的数值写入高密卡的电子标签中。
步骤22:高密卡插入PCIE插槽。
步骤23:工作方式获取模块,例如,设备管理模块检测该高密卡是否在位,若是,执行步骤24,否则,执行步骤29。
其中,工作方式获取模块是支持高密卡动态工作的设备中的功能模块,本实施例及图3所示的实施例将以设备管理模块作为工作方式获取模块为 例。
高密卡在位是指高密卡插入插槽后,设备管理模块可以通过机械信号获取该高密卡的信息。
步骤24:设备管理模块读取该高密卡的电子标签,获取工作方式。
步骤25:设备管理模块将高密卡的工作方式通过中断方式上报给操作系统,具体为操作系统中的配置信息获取模块。
其中,配置信息获取模块也是支持高密卡动态工作的设备中的功能模块,本实施例及图3所示的实施例将以配置信息获取模块、配置模块及扫描分配模块(后两个模块也是支持高密卡动态工作的设备中的功能模块)均位于操作系统中为例。本发明实施例中的设备管理模块及操作系统是主机普遍采用的功能模块,操作系统例如为Linux操作系统或者windows操作系统等。
可以理解的是,设备管理模块也可以通过其他的方式进行上报,例如,设备管理模块在操作系统轮询时上报。
步骤26:操作系统(具体为操作系统中的配置信息获取模块)判断是否需要更改PCIE交换芯片的配置,若是,执行步骤27,否则,执行步骤29。
具体地,操作系统中可以保存工作方式与配置信息的对应关系,操作系统可以根据该保存的对应关系,获取与该工作方式对应的配置信息;同时,操作系统可以获取PCIE交换芯片的当前配置信息;当操作系统获取的与当前高密卡的工作方式对应的配置信息与获取的PCIE交换芯片的当前配置信息不一致时,则表明需要更改PCIE交换芯片的配置;当操作系统获取的与当前高密卡的工作方式对应的配置信息与获取的PCIE交换芯片的当前配置信息一致时,则表明不需要更改PCIE交换芯片的配置。
步骤27:操作系统(具体为操作系统中的配置模块)用与当前工作方式对应的配置信息重新配置PCIE交换芯片中的配置信息。
具体地,操作系统可以通过调用PCIE驱动模块重新加载PCIE交换芯片的电可擦除只读存储器(EEPROM)中的配置文件,其中,配置文件中包含 PCIE插槽的当前配置信息,用获取的与当前工作方式对应的配置信息重写EEPROM中的配置信息,之后,重启PCIE交换芯片,使重写的配置信息生效。
由于操作系统重新配置了配置信息,使得操作系统重新配置了PCIE端口和信道(lane),对应的PCIE插槽可使高密卡正常工作。
步骤28:操作系统(具体为操作系统中的扫描分配模块)扫描PCIE交换芯片的上游(Upstream)端口以下的拓扑结构,并根据重新配置的配置信息分配资源。
其中,上游端口是指PCIE交换芯片与北桥连接的端口。高密卡不同的工作方式所申请的资源不同,整个系统的PCIE拓扑结构也不同,在配置信息生效后,系统会生成与生效的配置信息对应的拓扑结构,此时,需要重新扫描以获取与生效的配置信息对应的拓扑结构。在不同的工作方式下需要分配的资源也不同,因此在工作方式改变重新配置后,需要重新分配资源,例如,重新分配总线号、设备号、功能号等。重新扫描拓扑结构和分配资源,使的高密卡能够正常工作在获取的工作方式下。
步骤29:结束。
本实施例可以实现通过PCIE交换芯片进行高密卡与北桥之间通信时,PCIE插槽的动态配置,实现支持高密卡的动态工作方式。
图3为本发明第三实施例的方法流程示意图,本实施例以高密卡直接连接北桥为例。
参见图3,本实施例包括:
步骤31:高密卡的电子标签中被写入该高密卡的工作方式。
步骤32:高密卡插入PCIE插槽。
步骤33:设备管理模块检测该高密卡是否在位,若是,执行步骤34,否则,执行步骤39。
步骤34:设备管理模块读取该高密卡的电子标签,获取工作方式。
步骤35:设备管理模块将高密卡的工作方式通过中断上报给操作系统。
步骤36:操作系统(具体为操作系统中的配置信息获取模块)判断是否需要更改北桥的配置,若是,执行步骤37,否则,执行步骤39。
具体地,操作系统中可以保存工作方式与配置信息的对应关系,操作系统可以根据该保存的对应关系,获取与该工作方式对应的配置信息;同时,操作系统可以获取北桥的当前配置信息;当操作系统获取的与当前高密卡的工作方式对应的配置信息与获取的北桥的当前配置信息不一致时,则表明需要更改北桥的配置;当操作系统获取的与当前高密卡的工作方式对应的配置信息与获取的北桥的当前配置信息一致时,则表明不需要更改北桥的配置。
步骤37:操作系统(具体为操作系统中的配置模块)用与当前工作方式对应的配置信息重新配置北桥中的配置信息。
具体地,操作系统可以通过用获取的与当前工作方式对应的配置信息重写北桥的寄存器中的配置信息,之后,重启北桥,使重写的配置信息生效。
由于操作系统重新配置了配置信息,使得操作系统重新配置了PCIE端口和信道(lane),对应的PCIE插槽可使高密卡正常工作。
步骤38:操作系统(具体为操作系统中的扫描分配模块)扫描北桥的下游(Downstream)端口以下的拓扑结构,并根据重新配置的配置信息分配资源。
其中,下游端口是指北桥与PCIE交换芯片或者高密卡连接的端口。高密卡不同的工作方式所申请的资源不同,整个系统的PCIE拓扑结构也不同,在配置信息生效后,系统会生成与生效的配置信息对应的拓扑结构,此时,需要重新扫描以获取与生效的配置信息对应的拓扑结构。在不同的工作方式下需要分配的资源也不同,因此在工作方式改变重新配置后,需要重新分配资源,例如,重新分配总线号、设备号、功能号等。重新扫描拓扑结构和分配资源,使的高密卡能够正常工作在获取的工作方式下。
步骤39:结束。本实施例可以实现高密卡与北桥直接通信时,插槽的动 态配置,实现支持高密卡的动态工作方式。
图4为本发明第四实施例的设备的结构示意图,包括工作方式获取模块41、配置信息获取模块42、配置模块43和扫描分配模块44,工作方式获取模块41用于获取高密卡的工作方式;配置信息获取模块42用于根据预先配置的高密卡工作方式与配置信息的对应关系,获取与所述工作方式对应的配置信息;配置模块43用于当与所述高密卡连接的芯片中的配置信息与获取的配置信息不同时,用获取的配置信息重新配置所述芯片中的配置信息;扫描分配模块44用于扫描系统的拓扑结构,根据重新配置的配置信息为所述高密卡所在的PCIE插槽分配资源,以便所述高密卡能够在所述工作方式下工作。
其中,本实施例中的工作方式获取模块41可以包括检测单元411和读取单元412,检测单元411用于检测所述高密卡是否在位;读取单元412用于在检测到所述高密卡在位时,读取所述高密卡的携带工作方式的电子标签,从所述电子标签中获取所述工作方式。
本实施例通过根据高密卡的工作方式重新配置插槽的配置信息,实现了插槽的配置信息可以根据工作方式动态改变,避免现有插槽配置信息固定造成的问题,实现高密卡工作方式改变时,高密卡所在的插槽依旧可以保证高密卡的正常工作。
图5为本发明第五实施例的设备的结构示意图,包括工作方式获取模块51、配置信息获取模块52、配置模块53和扫描分配模块54,配置模块53可以包括第一处理单元531和第二处理单元532,第一处理单元531用于当所述高密卡通过PCIE交换芯片与北桥连接时,获取PCIE交换芯片中的配置信息;第二处理单元532用于当所述工作方式对应的配置信息与所述PCIE交换芯片中的配置信息不同时,用所述工作方式对应的配置信息重写所述PCIE交换芯片中的配置信息。
其中,本实施例的扫描分配模块54可以具体用于扫描所述PCIE交换芯片的上游端口以下的拓扑结构,并根据重新配置的配置信息分配资源。
本实施例可以实现通过PCIE交换芯片进行高密卡与北桥之间通信时,插槽的动态配置,实现支持高密卡的动态工作方式。
图6为本发明第六实施例的设备的结构示意图,包括工作方式获取模块61、配置信息获取模块62、配置模块63和扫描分配模块64,配置模块63可以包括第三处理单元631和第四处理单元632,第三处理单元631用于当所述高密卡直接与北桥连接时,获取北桥中的配置信息;第四处理单元632用于当所述工作方式对应的配置信息与所述北桥中的配置信息不同时,用所述工作方式对应的配置信息重写所述北桥中的配置信息。
进一步地,本实施例的扫描分配模块64可以具体用于扫描所述北桥的下游端口以下的拓扑结构,并根据重新配置的配置信息分配资源。
本实施例可以实现高密卡与北桥直接通信时,插槽的动态配置,实现支持高密卡的动态工作方式。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。