基于cc-numa的报文处理方法、装置和系统的制作方法

文档序号:7846972阅读:118来源:国知局
专利名称:基于cc-numa的报文处理方法、装置和系统的制作方法
技术领域
本发明涉及非均勻存储访问技术领域,尤其涉及一种基于CC-NUMA的报文处理方法、装置和系统。
背景技术
高速缓存一致性非均勻存储访问系统(CC-NUMA,Cache CoherenceNon-uniform Memory Access)是目前应用于大规模并行计算机设计中一种重要的系统结构。在CC-NUMA 系统中,每个节点由节点控制器和多个中央处理器CPU组成,各节点通过网络互连,每个中央处理器CPU既可以访问本地内存资源也可以访问整个系统中其他节点上的资源,由于每个中央处理器访问本地内存资源的速度比访问其他节点的内存资源的速度要快,因此该系统被称为“非均勻的”访问系统。在CC-NUMA系统中,每个节点中会有节点控制器,节点控制器可以完成分布式内存的共享和缓存一致性维护。参见图1,为现有技术中节点的基本结构图,可见该节点中节点控制器拥有两个处理器CPU,每个处理器均通过一条快速通道互联(QPI,Quick Path Interconnect)总线与该节点控制器相连;节点控制器上设有网络接口 (Ni, Network Interface),系统中的各个节点通过网络接口 NI互连的方式进行扩展,从而使整个系统中的内存资源共享。当本节点中的节点控制器通过网络接口收到其他节点控制器发送的报文时,节点控制器会将收到的报文进行地址解析,并依据解析出的报文地址将报文发给对应的处理器进行处理,以完成对其内存资源数据的访问。同样,当处理器需要访问远程资源时,处理器可以通过QPI总线将报文发送给节点控制器,节点控制器根据报文的目的节点地址,查询路由表,并通过与目的节点对应的网络接口将该报文发送到下一跳节点,最终将报文发送到目的节点以便完成资源的访问。为了完成系统内资源的共享,该节点控制器需要维护整个节点内地址空间的目录,并对访问两个中央处理器的报文进行路由选择处理,系统资源访问效率较低。同时,当处理器与节点控制器之间的QPI总线连接失效,或者节点控制器自身出现故障,其他节点可能无法向该节点发送报文,无法访问该节点内的资源,或者导致整个节点的报文处理中断,进而影响整个系统的资源访问,系统资源访问的可靠性低。

发明内容
有鉴于此,本发明提供一种基于CC-NUMA的报文处理方法、装置和系统,以提高资源访问的效率以及可靠性。为实现以上目的,本发明提供了如下技术方案如下一种基于CC-NUMA的报文处理方法,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,所述方法包括接收其他节点发送的报文,对所述报文进行地址解析;
当所述报文的目的地址为本节点时,判断所述报文对应的地址空间的目录是否由本节点控制器所维护;如果是,确定所述报文对应的地址空间所归属的处理器,通过与所述处理器相连的快速通道互联总线将所述报文发送到所述处理器,以便所述处理器对所述报文进行处理;如果否,则将所述报文转发给本节点内的另一节点控制器,以便所述另一节点控制器确定所述报文对应的地址空间所归属的处理器,将所述报文发送给该报文对应的处理器进行报文处理。一种基于CC-NUMA的报文处理方法,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,所述方法包括接收其他节点发送的报文,对所述报文进行地址解析;当所述报文的目的地址为本节点时,判断所述报文对应的地址空间是否在其所维护的地址空间内;如果是,确定所述报文对应的地址空间所归属的处理器,当本节点控制器与所述处理器间的快速通道互联总线的链路出现故障时,将所述报文以及本节点控制器所维护的、至少包含所述报文对应的地址空间的目录,发送给另一节点控制器,以便所述另一节点控制器将所述报文转发给所述处理器,并维护该报文对应的地址空间的目录。一种基于CC-NUMA的报文处理方法,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,包括获取另一节点控制器的故障信息;通过广播侦听获取所述另一节点控制器所维护的地址空间的目录;接收其他节点发送的报文,对所述报文进行地址解析;当所述报文的目的地址为本节点时,确定所述报文对应的地址空间所归属的处理器,将所述报文发送给所述处理器。本发明还提供了一种基于CC-NUMA的报文处理装置,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,该报文处理装置包括报文接收单元,用于接收其他节点发送的报文,对所述报文进行地址解析;地址分析单元,用于当所述报文的目的地址为本节点时,判断所述报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则执行处理器地址判断单元的操作;处理器地址判断单元,用于确定所述报文对应的地址空间所归属的处理器;报文发送单元,用于通过与所述处理器相连的快速通道互联总线将所述报文发送到所述处理器,以便所述处理器对所述报文进行处理。一种基于CC-NUMA的报文处理装置,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,该报文处理装置包括链路故障获取单元,用于获取系统中的快速通道互联总线的链路连接故障;报文接收单元,用于接收其他节点发送的报文,对所述报文进行地址解析;地址分析单元,用于当所述报文的目的地址为本节点时,判断所述报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则执行处理器地址判断单元的操作;处理器地址判断单元,用于确定所述报文对应的地址空间所归属的处理器;
故障处理单元,用于当本节点控制器与所述处理器之间链路出现故障时,将所述报文以及本节点控制器所维护的、至少包含该报文对应的地址空间的目录,发送给另一节点控制器,以便所述另一节点控制器将所述报文转发给所述处理器,并维护所述报文对应的地址空间的目录。一种基于CC-NUMA的报文处理装置,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,该报文处理装置包括控制器故障获取单元,用于获取另一节点控制器的故障信息;地址空间数据获取单元,用于通过广播侦听获取所述另一节点控制器所维护的地址空间的目录;报文接收单元,用于接收其他节点的发送的报文,对所述报文进行地址解析;地址分析单元,用于当所述报文的目的地址为本节点时,判断所述报文对应的地址空间所归属的处理器;报文发送单元,用于将所述报文发送给所述处理器。一种基于CC-NUMA的报文处理系统,包括,两个节点控制器,以及至少两个处理器;所述节点控制器与所述处理器之间通过快速通道互联总线相连;所述两个节点控制器之间通过网络接口连接;所述节点控制器内置有以上所述的基于CC-NUMA的报文处理装置。从上述的技术方案可以看出,本发明实施例公开一种基于CC-NUMA的报文处理方法、装置和系统,该方法中当节点控制器接收到其他节点发送的目的地址为本节点的报文时,判断该报文对应的地址空间的目录是否由本节点控制器所维护,如果是,本节点控制器会确定该报文对应的地址空间所归属的处理器,并通过与该处理器相连的快速通道互联总线将报文发送到该处理器;如果该报文对应的地址空间不属于该节点控制器所维护的地址空间,则该节点控制器将该报文转发给另一节点控制器,以便另一节点控制器对该报文进行处理,由于节点内的两个节点控制器分别维护一部分地址空间的数据,同时两个节点控制器都可以接收其他节点发送的报文,并对接收到的报文的地址解析,以便将报文发送到对应的处理器,以完成资源访问,提高了资源访问的速度,进而提高了系统性能。同时,当某条QPI链路出现故障时,节点控制器可以获取到QPI链路故障信息,当接收到的报文对应的地址空间所属的处理器与该节点控制器间的QPI总线出现故障时,该节点控制器可以将该报文以及该报文对应的地址空间的目录信息转发给另一节点控制器, 由另一节点控制器将报文进行处理并将报文发送到相应的处理器,避免了由于链路故障而导致的通信中断。当本节点内某一个节点控制器出现故障后,另一节点控制器可以获取该节点控制器故障信息,并通过广播侦听获取到该节点控制器所维护的地址空间的目录信息,并由另一节点控制器对发往本节点内的所有报文进行处理,避免了由于本节点内节点控制器自身故障,导致整个CC-NUMA系统的通信中断。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
7有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为现有技术中节点的基本结构示意图;图2为本发明中节点的基本结构示意图;图3为本发明实施例公开的一种基于CC-NUMA的报文处理方法一个实施例的流程图;图4为本发明实施例公开的一种基于CC-NMUA的报文处理方法的另一个实施例的流程图;图5为本发明实施例公开的一种基于CC-NUMA的报文处理方法的另一个实施例的流程图;图6为本发明实施例公开的一种基于CC-NMUA的报文处理方法的另一个实施例的流程图;图7为本发明一个实施例公开的一种基于CC-NUMA的报文处理装置的结构示意图;图8为本发明一个实施例公开的一种基于CC-NUMA的报文处理装置的结构示意图;图9为本发明一个实施例公开的一种基于CC-NUMA的报文处理装置的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有技术中CC-NUMA系统在进行资源访问时可能出现的问题,本发明在一个节点内配置两个节点控制器(NC,Network Controller),每个节点控制器分别维护其对应的地址空间的目录。其中地址空间也称为系统地址,是用来定位CC-NUMA系统中资源的具体位置的。在CC-NUMA系统中,系统中的每个节点均会分配给一个区域的地址空间,节点的地址空间又分别分配给节点内的处理器。例如,假设一个节点内有两个处理器CPU,系统中的节点1分配0-1TB的地址空间,其中节点1内的处理器1和处理器2分别分配了其中的 512GB的地址空间;系统中的节点2分配了 1TB-2TB的地址空间,其中节点2的处理器1和处理器2分别分配了其中的512GB的地址空间,系统中其他节点的地址空间的分配依此类推。在现有技术中,一个节点内设置有一个节点控制器,该节点控制器需要对整个节点的地址空间的目录进行维护。而本发明中一个节点内会设置有两个节点控制器,参见图 2,为本发明中节点的基本结构示意图,以一个节点内设置有两个处理器CPU为例,本节点包括节点控制器NC1、节点控制器NC2、第一处理器CPUl和第二处理器CPU2,其中每个处理器通过第一快速通道互联总线QPIO和第二快速互联QPIl分别与节点控制器NCl和节点控制器NC2相连,节点控制器NCl和节点控制器NC2通过网络接口 NI相连。每个节点控制器上均设有若干个网络接口 Ni,本节点内的节点控制器可以通过网络接口 NI与其他节点中的节点控制器互连。本发明将本节点的地址空间分为两个区域,每个节点控制器对一个区域的地址空间的目录进行维护,如,本节点的地址空间可以分别分为第一地址空间和第二地址空间,其中一个节点控制器维护第一地址空间的目录,另一个节点控制器维护第二地址空间的目录。需要说明的是,第一地址空间中可能会同时包含分配给第一处理器的地址空间的中一部分地址空间和分配给第二处理器的地址空间中的一部分地址空间,同样第二地址空间也可能同时包含分配给第一处理器的地址空间中的一部分地址空间和分配给第二处理器的地址空间中的一部分地址空间。其中,维护地址空间的目录,是指节点控制器对该地址空间的数据访问情况,以及该地址空间的数据状态进行记录。如,当其他节点中的处理器需要访问本节点中某处理器上保存的资源时,其他节点的处理器会以报文的形式发送资源访问请求,当本节点的节点控制器接收到报文后,需要在地址空间的目录中记录该报文请求访问的资源数据的处理状态(如请求访问的地址空间的数据状态可以为修改态、独占态、共享态等),以及发送报文的节点ID和处理器ID等信息。本发明中每个节点设置有两个节点控制器,每个节点控制器均设有若干个与其他节点的节点控制器相连的网络接口 Ni,与现有技术相比,CC-NUMA系统中的每个节点所提供的用于与其他节点相连的NI接口数量是现有技术中每个节点所提供的用于节点之间互联的NI接口数量的两倍,因此,当CC-NUMA系统内各个节点相互连接成较大的拓扑网,整个系统中不同节点之间进行通信时,报文从源节点发送到目的节点的过程中,经过的中间节点的平均跳数减少,提高了系统性能。基于本发明的节点结构,参见图3,为本发明的一种基于CC-NUMA的报文处理方法一个实施例的流程示意图,本发明中一个节点内配置有两个节点控制器,两个节点控制器通过网络接口互连,每个节点控制器分别维护其对应的地址空间的目录,该方法包括步骤301 第一节点控制器接收其他节点发送的报文,对该报文进行地址解析。当其他节点中的处理器需要访问本节点中某处理器CPU中的资源时,其他节点的处理器可以向本节点发送报文,该报文中包含需要访问的目的节点的地址(目的节点ID)、 目的处理器的地址(处理器ID),以及访问的地址空间的数据请求等。本节点中的节点控制器通过网络接口 NI接收到其他节点发送的到报文后,一般会进行循环冗余校验(CRC, Cyclic Redundancy Check), CRC校验正确后,对接收到的报文进行地址解析,即对报文进行地址译码,以判断出该报文的目的地址是否为本节点,如果报文的目的地址不是本节点, 则节点控制器会查询路由表,依据路由表将该报文转发给其他节点中的节点控制器;当该报文的目的地址为本节点时,就需要由该节点控制器进行相应的处理,以便最终将报文发送给本节点内与该报文请求访问的地址空间数据相对应的处理器。步骤302 当该报文的目的地址为本节点时,第一节点控制器判断该报文对应的地址空间的目录是否由第一节点控制器所维护,如果是,则进入步骤303;如果否,则进入步骤304。当第一节点控制器根据解析出的地址确定出该报文的目的地址为本节点时,第一节点控制器还需要依据解析出的地址,判断该报文对应的地址空间,即该报文需要访问的地址空间,以及该报文所需访问的地址空间的目录是否由第一节点控制器来维护。为了确定出报文对应的地址空间是由第一节点控制器维护还是第二节点控制器维护,可以预先设定地址空间的奇偶校验位,并预先设定奇偶校验位与节点控制器之间的对应关系。具体将地址空间中的第几位设定为奇偶校验位可以根据需要进行设定,例如,可以将地址空间中第6位设定为奇偶校验位,且设定为地址空间中的奇偶校验位为“0”时,对应的地址空间的目录由第一节点控制器维护;当地址空间中的奇偶校验位为“1”时,则对应的地址空间的目录由第二节点控制器维护,因此在地址空间中前面的连续32个地址空间的目录由第一节点控制器来维护,该32个连续的地址空间依次向后的32个连续地址空间的目录由第二节点控制器来维护,且后续的地址空间的目录维护也是依次交替的由第一节点控制器或第二节点控制器来维护。具体将地址空间中的第几位设定为奇偶校验位可以根据需要设定。为了能合理的分配第一节点控制器和第二节点控制器维护的地址空间的目录,可以在地址空间中的第6 位到第10位中选择一位作为奇偶校验位。当然,也可以在地址空间中选择连续的两位作为奇偶校验位,如,可以在将地址空间中第五位和第六位一起作为奇偶校验位,当地址空间中第五位和第六位都为“0”或都为“1”时,对应的地址空间的目录由第一节点控制器来维护, 而地址空间中的第五位和第六位的数字不同时,对应的地址空间的目录由第二节点控制器来维护。当然,还可以有其他方式来区分第一节点控制器和第二节点控制器维护的地址空间的目录,在此不一一列举。当第一节点控制器对接收到的报文进行地址解析之后,就可以根据该报文对应的地址空间的奇偶校验位与节点控制器之间的对应关系,判断该报文对应的地址空间的奇偶校验位是否对应第一节点控制器,如果是,则该报文对应的地址空间的目录是由第一节点控制器所维护。例如,第一节点控制器接收到报文以后,对报文进行地址解析,判断出该报文请求访问的数据资源的地址中奇偶校验位(如地址中的第五位)为“0”时,则该报文需要访问的地址空间的目录是由第一节点控制器所维护,否则由第二节点控制器所维护。步骤303 第一节点控制器确定该报文对应的地址空间所归属的处理器,通过与该处理器相连的快速通道互联总线将该报文发送到该处理器,以便该处理器对该报文进行处理。当该报文所请求访问的地址空间所对应的目录是由第一节点控制器来维护时,第一节点控制器就可以依据对该报文的地址解析的结果,确定该报文所需访问的地址空间所归属的处理器。在确定了报文请求访问的地址空间所在的处理器后,第一节点控制器就可以查询路由表,依据预先配置的端口路由路径,通过第一节点控制器与该处理器相连的快速通道互联总线QPI,将该报文发送至该处理器,以便该处理器对该报文进行处理。步骤304 第一节点控制器将该报文转发给本节点内的第二节点控制器,以便第二节点控制器确定所述报文对应的地址空间所归属的处理器,将所述报文发送给该报文对应的处理器进行报文处理。如果该报文所需访问的地址空间对应的目录并不是由第一节点控制器所维护,则第一节点控制器通过第一节点控制器与第二节点控制器之间的网络接口 Ni,将该报文转发给第二节点控制器。第二节点控制器接收到该报文后,对该报文进行地址解析,确定该报文所需访问的地址空间属于本节点内的哪个处理器,并由第二节点控制器依据预先配置的端口路径,通过第二节点控制器与该处理器之间的快速通道互联总线将该报文转发给该处理器,并由该处理器对报文进行处理。在本实施例的方法中,本节点中某节点控制器接收到其他节点发送的报文后,对报文进行地址解析,当该报文对应的地址空间的目录在该节点控制器所维护的地址空间内,该节点控制器会进一步确定该报文对应的地址空间所属的处理器,并通过与该处理器相连的快速通道互联总线将报文发送到该处理器;如果该报文对应的地址空间的目录不由该节点控制器所维护,则该节点控制器将该报文转发给本节点内的另一节点控制器,以便另一节点控制器对该报文进行处理。由于节点内地址空间的目录可以分成两部分,每个节点控制器分别维护其中一部分地址空间的数据,这样CC-NUMA系统中其他节点需要访问本节点的处理器中的资源时,可以根据路由路径选择向本节点内的哪个节点控制器发送报文,本节点中的两个节点控制器可以接收不同的报文请求,并分别进行报文的地址解析,维护其对应的地址空间的目录,并进行将报文发送到对应的处理器的操作,由于两个节点控制器同时工作,以完成资源访问,且与现有技术相比,每个节点控制器维护的地址空间的目录减少,节点控制器的报文处理速度加快,进而提高了系统资源访问的速度,进而提高了系统性能。需要说明的是,在步骤303中,当第一节点控制器将报文发送到该报文对应的地址空间所在的处理器后,处理器依据该报文所需访问的地址空间的数据资源对该报文进行相应的处理,并将处理后的报文发送给第一节点控制器,以便第一节点控制器将处理后的报文返回给发送报文的源节点,即发送资源访问请求的节点。同样,当第二节点控制器将报文发送给该报文对应的地址空间所在的处理器之后,处理器也会将处理后的报文返回给第二节点控制器,第二节点控制器可以查询路由表,选择网络接口 NI将处理后的报文返回给发起资源访问请求的源节点。参见图4,为本发明实施例公开的一种基于CC-NUMA的报文处理方法的另一个实施例的流程图,本发明的节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,本实施例的方法包括步骤401 第一节点控制器接收其他节点发送的报文,对该报文进行地址解析。步骤402 当该报文的目的地址为本节点时,第一节点控制器判断该报文对应的地址空间的目录是否由第一节点控制器所维护,如果是,则进入步骤403;如果否,则进入步骤404。步骤403 第一节点控制器确定该报文对应的地址空间所归属的处理器,通过与该处理器相连的快速通道互联总线将该报文发送到该处理器。步骤404 第一节点控制器将该报文转发给第二节点控制器,第二节点控制器接收该报文,并对报文进行地址解析,确定该报文对应的地址空间所属的处理器,维护该报文对应的地址空间的目录,并将报文发送到该处理器。步骤405 处理器接收第一节点控制器或第二节点控制器发送的报文后,对该报文进行处理,并判断该报文对应的地址空间的目录是否由第一节点控制器所维护,如果是, 则该处理器将处理后的报文发送给第一节点控制器,以便第一节点控制器将处理后的报文返回源节点;如果否,则该处理器将处理后的报文发送给第二节点控制器,以便第二处理器将处理后的报文返回源节点。处理器接收到报文之后,依据该报文所请求的地址空间的数据,对该报文进行处理,由于节点控制器需要对报文所访问的地址空间的数据状态等信息进行记录,所以处理后的报文仍需要返回相应的节点控制器,以便节点控制器对该报文所请求访问的地址空间的目录进行维护。因此,处理器完成报文处理后,需要判断哪个节点控制器维护该报文对应的地址空间的目录,并将处理后的报文返回给该节点控制器。最后节点控制器将处理器后的报文返回给发送报文的源节点。需要说明的是,由于节点控制器将接收到的报文后,需要判断该报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则本节点控制器将报文发送后该报文对应的地址空间所在的处理器,因此,处理器可以将该报文直接返回给本节点内向其发送报文的节点控制器,也就是说,当第一节点控制器将报文发送到本节点内的某处理器后,该处理器会对该报文进行处理,并将处理后的报文返回给第一节点控制器;当第二节点控制器将报文发送到本节点内的某处理器后,该处理器会对该报文进行处理,并将处理后的报文返回给第二节点控制器。步骤406 第一节点控制器或第二节点控制器接收到处理器返回的处理后的报文后,更新该处理后的报文对应的地址空间的目录,并将该处理后的报文返回给发送该报文的源节点。需要说明的是,本发明中当节点控制器接收到其他节点发送的报文后,会判断该报文对应的地址空间的目录是否由本节点维护,如果是,则本节点控制器还需要更新该报文对应的地址空间的目录,如,记录发送该报文请求的源节点等信息,当该报文请求访问的处理器返回处理后的报文时,本节点控制器还需要对报文请求的数据状态进行记录等,因此当节点控制器确定接收到其他节点发送的报文对应的地址空间的目录由本节点控制器所维护之后,且在该节点控制器将该处理后报文返回给源节点之前,该节点控制器需要对该报文对应的地址空间的目录进行维护。以上两个实施例都是以本节点接收到其他节点请求资源访问的报文为例,对本节点内节点控制器以及处理器接收到报文之后的处理过程进行的描述。当本节点中的某处理器需要访问其他节点中某处理器上的资源时,本节点中的该处理器也可以生成资源访问请求的报文,并查询路由表,选择最优路由路径,依据最优的路由路径确定将生成的报文发送给第一节点控制器还是第二节点控制器,第一节点控制器或第二节点控制器接收到本节点内某处理器发送的报文之后,也会查询自身的路由表以确定通过本节点控制器中的哪个对外连接的NI接口将该报文转发出去。该过程与现有技术中本节点的处理器发送其他节点的处理器中资源的报文的过程相同,在此不再赘述。在CC-NUMA系统中,节点内的某节点控制器与某处理器之间的快速通道互联总线 QPI可能会出现故障,现有技术中,当节点控制器与某处理器之间的快速通道互联总线QPI 出现故障,导致链路失效,就会无法进行报文的发送处理,引起资源访问的通信中断。为了避免QPI链路故障造成的通信中断,参见图5,为本发明一种基于CC-NUMA的报文处理方法的另一个实施例的流程示意图,本实施例应用于节点控制器与处理器之间的快速通道互联总线出现故障的情况,与以上实施例相同,在节点内配置有两个节点控制器, 每个节点控制器分别维护其对应的地址空间的目录。本实施例的报文处理方法包括
步骤501 第一节点控制器接收其他节点发送的报文,对报文进行地址解析。步骤502 当第一节点控制器判断出该报文的目的地址为本节点且该报文对应的地址空间在第一节点控制器所维护的地址空间内时,确定该报文对应的地址空间所归属的处理器。其中,步骤501和步骤502的操作与以上实施例所描述的相应操作过程相同,在此不再赘述。步骤503 如果第一节点控制器与该处理器间的快速通道互联总线的链路出现故障,第一节点控制器将该报文以及第一节点控制器所维护的、至少包含该报文对应的地址空间的目录发送给第二节点控制器,以便第二节点控制器维护该报文对应的地址空间的目录,并将该报文转发给该报文对应的地址空间所归属的处理器。为了确定链路故障,节点内的节点控制器需要获取节点控制器与处理器间的快速通道互联总线QPI的链路故障。当节点内中任何一条连接节点控制器与处理器的快速互联通道出现故障后,节点中的两个处理器均可以获取到该链路出现故障的信息。当节点中的快速通道互联总线出现故障后,故障的中断源会将该中断故障信息上报给处理器,处理器会将快速通道互联总线的链路故障通知给本节点内的节点控制器,节点控制器接收处理器发送的快速通道互联总线的链路故障信息。如,当节点内的第一节点控制器与某处理器间的快速通道互联总线出现故障后,处理器接收到的第一节点控制器发送的报文数据会产生错误,当产生的错误数据的包数超过预设值时,处理器确定第一节点控制器与该处理器间的快速通道互联总线出现故障,该处理器会将检测出的链路故障通知给第一节点控制器和第二节点控制器。当然,当与节点控制器相连的链路故障出现部题后,节点控制器也可以检测与其相连的QPI链路故障,并将故障上报给节点中的某个处理器,该处理器将该链路故障通知其他处理器以及另一节点控制器。也可以由检测出快速通道互联总线链路故障的节点控制器将该快速通道互联总线的链路故障通知给另一节点控制器。当第一节点控制器与处理器间的链路出现故障后,处理器或第一节点控制器会调用基本输入输出系统BIOS程序,进行端口路由路径配置,更改第一节点控制器发送报文到该处理器的端口路由路径,将第一节点控制器与该处理器间的路径更改为通过第一节点控制器与第二节点控制器间的网络接口 NI的路由路径。例如,当第一节点控制器与本节点内的第一处理器间的快速通道互联总线出现故障时,第一节点控制器到第一处理器间的路由路径会重新配置,当第一节点控制器接收到报文后,确定报文对应的地址空间的目录由自身维护且该报文是发往第一处理器的,由于此时第一节点控制器与第一处理器间的快速通道互联总线出现故障,第一节点控制器会执行中断处理程序,依据重新配置的端口路由路径,通过与第二节点控制器间的网络接口 Ni, 将该报文以及第一节点控制器维护的、至少包含该报文对应的地址空间的目录,发送给第二节点控制器。当第二节点控制器接收到第一节点控制器转发报文后,第二节点控制器也需要对报文进行地址解析,确定该报文的地址空间归属于本节点内的哪个处理器,并通过与该处理器相连的快速通道互联总线,将报文发送给该处理器,以便处理器对该报文进行处理。当然,该处理器完成报文处理后会将处理后的报文再返回给第二节点控制器,整个报文的处
13理过程中,第二节点控制器都会对该报文对应的地址空间的目录进行维护,并最终将处理器返回的处理后的报文返回给发送数据请求报文的源节点。需要说明的是,当第一节点控制器与该处理器间的快速通道互联总线的链路出现故障,第一节点控制器也可以仅将该报文发送给第二节点控制器,第二节点控制器对报文进行地址解析,将报文发送给该对应所请求访问的处理器。在第二节点控制器需要对该报文的地址空间的目录内容进行读写修改或回写时,通过与第一节点控制器之间的OT接口将对目录修改的请求发送给第一节点控制器,并由第一节点控制器对该报文对应的地址空间的目录进行维护。本实施例中,当节点内某条QPI链路出现故障时,节点控制器可以获取到QPI链路故障信息,当第一节点控制器接收到的报文,确定该报文对应的地址空间所属的处理器,当该处理器与第一节点控制器间的QPI总线出现故障时,第一节点控制器可以将该报文以及该报文对应的地址空间的目录信息转发给第二节点控制器,由第二节点控制器将报文进行地址解析,确定出该报文对应的地址空间归属于本节点内的哪个处理器,并通过与该处理器相连的快速通道互联总线将该报文发送到该处理器,因此,即使节点内某条QPI链路出现故障后,仍可以选择新的路由路径,将报文发送到对应的处理器,避免了由于链路故障而导致的通信中断。在现有技术中,当本节点中的节点控制器出现故障,该节点控制器无法建立地址空间的目录,如,节点控制器中存储地址空间目录的存储器失效,该节点控制器不可以重新获取地址空间的目录。在此情况下,其他节点可能无法访问本节点的处理器中保存的数据资源,本节点也无法接收、处理或转发其他节点发送的报文,进而影响整个CC-NUMA系统的资源访问。为了解决这一问题,参见图6,为本发明一种基于CC-NUMA的报文处理方法的另一个实施例的流程示意图,本实施例中在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录。本实施例适用于节点内的某个节点控制器出现故障的情况下,本实施例的方法包括步骤601 第一节点控制器获取第二节点控制器的故障信息;第二节点控制器自身的目录丢失,或者第二节点控制器内部存储地址空间目录的存储器出现故障,导致第二节点控制器不能进行地址空间的目录维护时,故障中断源将第二节点控制器的故障信息上报给本节点内的某处理器,该处理器会第二节点控制器的故障信息通知给节点内的其他处理器以及第一节点控制器。该处理器还会将第二节点控制器的故障信息中发送给系统中其他节点。其他节点获取到该第二节点控制器的故障信息后,会重现配置发往该节点的报文路由路径,第二节点控制器将不会接收到其他节点发送的报文 fn息ο当然,第二节点控制器检测出自身故障,无法建立或维护地址空间的目录时,第二节点控制器也可以直接将自身的故障信息通知第一节点控制器。步骤602 第一节点控制器通过广播侦听获取该第二节点控制器所维护的地址空间的目录。为了在第二节点控制器出现故障的情况下,不影响其他节点的资源访问请求,第一节点控制器会通过广播侦听的方式向系统中的其他节点发送获取第一节点控制器所维护的地址空间的数据信息,其他节点中的处理器会将相应的数据信息返回给该第一节点控制器,以便第一节点控制器建立第二节点控制器原来所维护的地址空间的目录信息。步骤603 当第一节点控制器接收到其他节点的发送的报文时,对该报文进行地址解析。步骤604 当该报文的目的地址为本节点时,第一节点控制器确定该报文对应的地址空间所归属的处理器,将该报文发送给该报文对应的地址空间所归属的处理器。由于第二节点控制器出现故障后,第一节点控制器通过广播侦听的方式获取到原来第二节点控制器所维护的地址空间的目录,此时,第一节点控制器维护着整个节点内所有地址空间的目录,当第一节点控制器接收到其他节点发送的报文时,无需判断该报文对应的地址空间是否由本节点控制器所维护,第一节点控制器可以直接确定该报文对应的地址空间所归属的处理器,并通过与该处理器相连的快速通道互联总线将该报文发送给该处理器。本实施例中,当其中一个节点控制器出现故障后,另一节点控制器可以获取该节点控制器故障信息,并通过广播侦听获取到该节点控制器所维护的地址空间的数据信息, 并由另一节点控制器对发往本节点的所有报文进行处理,避免了由于节点内节点控制器自身故障,导致的整个CC-NUMA系统的通信中断。参见图7,为本发明一种基于CC-NUMA的报文处理装置的一个实施例,本实施例中,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间,该报文处理装置可以为节点控制器,也可以为节点控制器的一部分,该报文处理装置包括报文接收单元701、地址分析单元702、处理器地址判断单元703和报文发送单元704。报文接收单元701,用于接收其他节点发送的报文,对该报文进行地址解析。地址分析单元702,用于当报文的目的地址为本节点时,判断报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则执行处理器地址判断单元的操作。处理器地址判断单元703,用于确定所述报文对应的地址空间所归属的处理器。报文发送单元704,用于通过与处理器相连的快速通道互联总线将该报文发送到该处理器,以便该处理器对该报文进行处理。在节点控制器中执行报文接收单元和地址分析单元的操作的可以为节点控制器中的Rbox模块或Rbox模块的一部分。当节点控制器确定接收到的报文所对应的地址空间的目录由本节点控制器所维护时,就可以将报文发送到地址判断单元,执行处理器判断单元和报文发送单元的操作,在节点控制器中执行该处理器地址判断单元和报文发送单元的可以为缓存一致性模块(CCM,Cache Coherence module)也可以为该CCM模块的一部分。 当确定了报文对应的处理器后就可以选择相应的QPI总线将报文发送到对应的处理器,完成报文发送到相应的处理器时需要由与处理器相连的QPI链路层管理模块QPIL选择相应的QPI总线,将报文发送到对应的处理器中。需要说明的,判断出报文对应的地址空间的目录是否哪个节点控制器所维护的具体方式有多种,对应的,该地址分析单元702可以包括地址分析子单元,用于根据预设的地址空间的奇偶校验位与节点控制器之间的对应关系,判断该报文对应的地址空间的奇偶校验位是否对应本节点控制器,如果是,则该报文对应的地址空间的目录由本节点控制器所维护。在节点控制器接收到目的地址为本节点的报文,且确定了报文对应的地址空间的目录由本节点控制器所维护时,本节点控制器还需要记录发送报文以访问该地址空间的源节点地址,并进行该地址空间的数据状态的更新等,因此,本实施例的报文处理装置还包括地址空间维护单元,用于维护接收到的报文对应的地址空间的目录。进一步的,当本节点控制器将报文发送给该报文对应的处理器后,处理器会依据报文的请求信息对报文进行处理,并将处理后的报文返回给该节点控制器,对应的,该报文处理装置还包括报文返回单元,用于接收处理器返回的处理后的报文,并将处理后的报文发送给该报文对应的源节点。参见图8,为本发明一种基于CC-NUMA的报文处理装置的另一个实施例的结构示意图,本实施例的装置应用于节点控制器与处理器之间的快速通道互联总线出现故障后, 在本实施例中节点在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间,该报文处理装置包括链路故障获取单元801、报文接收单元802、地址分析单元 803、处理器地址判断单元804和故障处理单元805。其中,链路故障获取单元801,用于获取系统中的快速通道互联总线的链路连接故障。报文接收单元802,用于接收其他节点发送的报文,对报文进行地址解析。地址分析单元803,用于当报文的目的地址为本节点时,判断报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则执行处理器地址判断单元的操作。处理器地址判断单元804,用于确定报文对应的地址空间所归属的处理器。故障处理单元805,用于当本节点控制器与所述处理器之间链路出现故障时,将该报文以及本节点控制器所维护的、至少包含该报文对应的地址空间的目录,发送给另一节点控制器,以便该另一节点控制器将该报文转发给该处理器,并维护该报文对应的地址空间的目录。根据获取链路故障的方式的不同,链路故障获取单元801,包括链路故障信息接收单元,用于接收处理器发送的节点控制器与该处理器间快速通道互联总线的链路故障信息。链路故障检测单元,用于检测与处理器之间相连的快速通道总线的链路,获取该快速通道互联总线的链路故障。需要说明的是,当该另一节点控制器接收到本节点控制器转发报文后,另一节点控制器也需要对报文进行地址解析,确定该报文的地址空间所归属与本节点内的哪个处理器,并通过与该处理器相连的快速通道互联总线,将报文发送给该处理器,以便处理器对该报文进行处理。当然,该处理器完成报文处理后,会将处理后的报文再返回给该另一节点控制器,该另一节点控制器会维护该报文对应的地址空间的目录,并将处理后的报文返回给发送报文的源节点。参见图9,为本发明一种基于CC-NUMA的报文处理装置的另一个实施例的结构示意图,本实施例的装置应用于某节点控制器发生故障时,本实施例在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间,该报文处理装置包括控制器故障获取单元901、地址空间数据获取单元902、报文接收单元903、地址分析单元904和报文发送单元905。控制器故障获取单元901,用于获取另一节点控制器的故障信息。
地址空间数据获取单元902,用于通过广播侦听获取该另一节点控制器所维护的地址空间的目录。报文接收单元903,用于接收其他节点的发送的报文,对报文进行地址解析。地址分析单元904,用于当报文的目的地址为本节点时,判断报文对应的地址空间所归属的处理器。报文发送单元905,用于将报文发送给该报文对应的地址空间所归属的处理器。根据获取控制器故障的方式不同,该控制器故障获取单元901,包括第一故障信息接收单元,用于接收某处理器发送的所述另一节点控制器的故障信肩、ο包括第二故障接收单元,用于接收所述另一节点控制器发送的故障信息。另外,本发明还提供了一种基于CC-NUMA的报文处理系统,包括,两个节点控制器,以及至少两个处理器;每个节点控制器均与各个处理器之间通过快速通道互联总线相连。两个节点控制器之间通过网络接口连接。每个节点控制器都内置有本发明以上实施例所描述的基于CC-NUMA的报文处理
直ο本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1权利要求
1.一种基于CC-NUMA的报文处理方法,其特征在于,在节点内配置有两个节点控制器, 每个节点控制器分别维护其对应的地址空间的目录,所述方法包括接收其他节点发送的报文,对所述报文进行地址解析;当所述报文的目的地址为本节点时,判断所述报文对应的地址空间的目录是否由本节点控制器所维护;如果是,确定所述报文对应的地址空间所归属的处理器,通过与所述处理器相连的快速通道互联总线将所述报文发送到所述处理器,以便所述处理器对所述报文进行处理;如果否,则将所述报文转发给本节点内的另一节点控制器,以便所述另一节点控制器确定所述报文对应的地址空间所归属的处理器,将所述报文发送给该报文对应的处理器进行报文处理。
2.根据权利要求1所述的方法,其特征在于,所述判断所述报文对应的地址空间的目录是否由本节点控制器所维护,包括根据预设的地址空间的奇偶校验位与节点控制器之间的对应关系,判断所述报文对应的地址空间的奇偶校验位是否对应本节点控制器,如果是,则所述报文对应的地址空间的目录由本节点控制器所维护。
3.根据权利要求1所述的方法,其特征在于,当判断出所述报文对应的地址空间由本节点控制器所维护后,还包括维护所述报文对应的地址空间的目录信息。
4.根据权利要求1所述的方法,其特征在于,当本节点控制器将报文发送给所述处理器之后,还包括接收所述处理器返回的处理后的报文,并将所述处理后的报文发送给所述报文对应的源节点。
5.一种基于CC-NUMA的报文处理方法,其特征在于,在节点内配置有两个节点控制器, 每个节点控制器分别维护其对应的地址空间的目录,所述方法包括接收其他节点发送的报文,对所述报文进行地址解析;当所述报文的目的地址为本节点时,判断所述报文对应的地址空间是否在其所维护的地址空间内;如果是,确定所述报文对应的地址空间所归属的处理器,当本节点控制器与所述处理器间的快速通道互联总线的链路出现故障时,将所述报文以及本节点控制器所维护的、至少包含所述报文对应的地址空间的目录,发送给另一节点控制器,以便所述另一节点控制器将所述报文转发给所述处理器,并维护该报文对应的地址空间的目录。
6.根据权利要求5所述的方法,其特征在于,获取本节点控制器与所述处理器之间的快速通道互联总线的链路故障,包括接收所述处理器发送的所述节点控制器与所述处理器间快速通道互联总线的链路故障信息。
7.根据权利要求5所述的方法,其特征在于,获取本节点控制器与处理器之间的快速通道互联总线的链路故障,包括检测与所述处理器之间的快速通道总线的链路,获取所述快速通道互联总线的链路故障。
8.根据权利要求5所述的方法,其特征在于,所述另一节点控制器将所述报文转发给所述处理器,包括所述另一节点控制器对所述报文进行地址解析,确定所述报文的地址空间所属的处理器,通过与所述处理器相连的快速通道互联总线,将所述报文发送给所述处理器,以便所述处理器对所述报文进行处理。
9.一种基于CC-NUMA的报文处理方法,其特征在于,在节点内配置有两个节点控制器, 每个节点控制器分别维护其对应的地址空间的目录,包括获取另一节点控制器的故障信息;通过广播侦听获取所述另一节点控制器所维护的地址空间的目录;接收其他节点发送的报文,对所述报文进行地址解析;当所述报文的目的地址为本节点时,确定所述报文对应的地址空间所归属的处理器, 将所述报文发送给所述处理器。
10.根据权利要求9所述的方法,其特征在于,所述获取另一节点控制器的故障信息, 包括接收本节点内某处理器发送的所述另一节点控制器的故障信息。
11.根据权利要求9所述的方法,其特征在于,所述获取另一节点控制器的故障信息, 包括接收所述另一节点控制器发送的所述另一节点控制器的故障信息。
12.一种基于CC-NUMA的报文处理装置,其特征在于,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,该报文处理装置包括报文接收单元,用于接收其他节点发送的报文,对所述报文进行地址解析;地址分析单元,用于当所述报文的目的地址为本节点时,判断所述报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则执行处理器地址判断单元的操作;处理器地址判断单元,用于确定所述报文对应的地址空间所归属的处理器;报文发送单元,用于通过与所述处理器相连的快速通道互联总线将所述报文发送到所述处理器,以便所述处理器对所述报文进行处理。
13.根据权利要求12所述的装置,其特征在于,所述地址分析单元,包括地址分析子单元,用于根据预设的地址空间的奇偶校验位与节点控制器之间的对应关系,判断所述报文对应的地址空间的奇偶校验位是否对应本节点控制器,如果是,则所述报文对应的地址空间的目录由本节点控制器所维护。
14.根据权利要求12所述的装置,其特征在于,还包括地址空间维护单元,用于维护所述报文对应的地址空间的目录。
15.根据权利要求12所述的装置,其特征在于,还包括报文返回单元,用于接收所述处理器返回的处理后的报文,并将所述处理后的报文发送给所述报文对应的源节点。
16.一种基于CC-NUMA的报文处理装置,其特征在于,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,该报文处理装置包括链路故障获取单元,用于获取系统中的快速通道互联总线的链路连接故障;报文接收单元,用于接收其他节点发送的报文,对所述报文进行地址解析;地址分析单元,用于当所述报文的目的地址为本节点时,判断所述报文对应的地址空间的目录是否由本节点控制器所维护,如果是,则执行处理器地址判断单元的操作; 处理器地址判断单元,用于确定所述报文对应的地址空间所归属的处理器; 故障处理单元,用于当本节点控制器与所述处理器之间链路出现故障时,将所述报文以及本节点控制器所维护的、至少包含该报文对应的地址空间的目录,发送给另一节点控制器,以便所述另一节点控制器将所述报文转发给所述处理器,并维护所述报文对应的地址空间的目录。
17.根据权利要求16所述的装置,其特征在于,所述链路故障获取单元,包括链路故障信息接收单元,用于接收所述处理器发送的所述节点控制器与所述处理器间快速通道互联总线的链路故障信息。
18.根据权利要求16所述的装置,其特征在于,所述链路故障获取单元,包括链路故障检测单元,用于检测与所述处理器之间的快速通道总线的链路,获取所述快速通道互联总线的链路故障。
19.一种基于CC-NlMA的报文处理装置,其特征在于,在节点内配置有两个节点控制器,每个节点控制器分别维护其对应的地址空间的目录,该报文处理装置包括控制器故障获取单元,用于获取另一节点控制器的故障信息;地址空间数据获取单元,用于通过广播侦听获取所述另一节点控制器所维护的地址空间的目录;报文接收单元,用于接收其他节点的发送的报文,对所述报文进行地址解析; 地址分析单元,用于当所述报文的目的地址为本节点时,判断所述报文对应的地址空间所归属的处理器;报文发送单元,用于将所述报文发送给所述处理器。
20.根据权利要求19所述的装置,其特征在于,所述控制器故障获取单元,包括第一故障信息接收单元,用于接收某处理器发送的所述另一节点控制器的故障信息。
21.根据权利要求19所述的装置,其特征在于,所述控制器故障获取单元,包括第二故障接收单元,用于接收所述另一节点控制器发送的故障信息。
22.一种基于CC-NUMA的报文处理系统,其特征在于,包括,两个节点控制器,以及至少两个处理器;所述节点控制器与所述处理器之间通过快速通道互联总线相连; 所述两个节点控制器之间通过网络接口连接;所述节点控制器内置有权利要求12至21任一项所述的基于CC-NUMA的报文处理装置。
全文摘要
本发明公开了一种基于CC-NUMA的报文处理方法、装置和系统,本节点内某节点控制器对其他节点发送的报文进行地址解析,如果报文的目的地址为本节点且报文对应的地址空间的目录由本节点控制器所维护,则确定报文对应的地址空间所归属的处理器;如果本节点控制器与该处理器间的快速通道互联总线的链路正常,则通过该快速通道互联总线将报文发送到该处理器,以便该处理器对报文进行处理;如果本节点控制器与该处理器间的快速通道互联总线的链路存在故障,或该报文对应的地址空间的目录并不由本节点控制器所维护,则将所述报文转发给本节点内的另一节点控制器,由另一节点控制器对报文进行处理。该方法能提高系统资源访问的效率以及可靠性。
文档编号H04L12/24GK102318275SQ201180001573
公开日2012年1月11日 申请日期2011年8月2日 优先权日2011年8月2日
发明者兰可嘉, 程永波, 贺成洪 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1