CN103649923B - 一种numa***内存镜像配置方法、解除方法、***和主节点 - Google Patents
一种numa***内存镜像配置方法、解除方法、***和主节点 Download PDFInfo
- Publication number
- CN103649923B CN103649923B CN201380000684.9A CN201380000684A CN103649923B CN 103649923 B CN103649923 B CN 103649923B CN 201380000684 A CN201380000684 A CN 201380000684A CN 103649923 B CN103649923 B CN 103649923B
- Authority
- CN
- China
- Prior art keywords
- memory
- node
- mirror
- memory mirror
- destination node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 115
- 238000012423 maintenance Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了NUMA***中的内存镜像配置方法、解除方法、***和主节点,其中,NUMA***中的内存镜像配置方法包括:NUMA***的主节点接收节点内存镜像指令,节点内存镜像指令携带目标节点的标识和内存镜像模式信息;主节点根据目标节点的标识和内存镜像模式信息配置目标节点的内存镜像;其中,目标节点的内存地址是连续的,实现以单个节点为粒度的内存镜像,有效解决NUMA***中内存镜像损耗过多内存空间的问题。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种非统一内存访问NUMA***内存镜像配置方法、解除方法、***和主节点。
背景技术
非统一内存访问(Non-Uniform Memory Access,NUMA)***既保持了对称多处理器架构(Symmetric Multi-Processor)模式单一操作***拷贝、简便的应用程序编程模式以及易于管理的特点,又继承了大规模并行处理计算机(Massive Parallel Processing)模式的可扩充性,可以有效地扩充***的规模。在NUMA***中,稳定性、可用性和可服务性成了竞争力的关键。内存镜像作为内存稳定性、可用性和可服务性的重要保障,可以实现内存错误的恢复,是最强大的内存容错手段。但是内存镜像后,NUMA***内存数量减半,使NUMA***中内存镜像损耗过多内存空间。
发明内容
本发明实施例提供了一种非统一内存访问NUMA***内存镜像配置方法、解除方法、***和主节点。
第一方面,本发明实施例提供了一种NUMA***内存镜像配置方法,所述方法包括:
所述NUMA***的主节点接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息;
所述主节点根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述目标节点的内存地址是连续的。
根据第一方面,在第一种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式。
根据第一方面,在第二种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器内内存镜像模式。
根据第一方面、第一方面的第一种或第二种可能的实施方式,在第三种可能的实施方式中,所述目标节点的内存地址编址模式为交叉编址。
根据第一方面、第一方面的第一种、第二种或第三种可能的实施方式,在第四种可能的实施方式中,所述根据所述节点内存镜像指令携带的目标节点的标识和内存镜像模式信息配置所述目标节点的内存镜像后,还包括:
向所述NUMA***的操作***发送所述目标节点的内存地址信息。
第二方面,本发明实施例提供了一种NUMA***内存镜像解除方法,所述方法包括:
所述NUMA***的主节点接收解除节点内存镜像指令;
所述主节点根据所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像;其中,所述解除镜像节点的内存地址是连续的。
根据第二方面,在第一种可能的实施方式中,所述主节点根据所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像后,还包括:
所述主节点向所述NUMA***的操作***发送所述每个节点的内存地址信息。
第三方面,本发明实施例提供了一种NUMA***,所述NUMA***包括主节点和目标节点;所述主节点用于接收节点内存镜像指令,所述节点内存镜像指令携带所述目标节点的标识和内存镜像模式信息;
所述主节点用于根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述目标节点的内存地址是连续的。
根据第三方面,在第一种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式。
根据第三方面,在第二种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器内内存镜像模式。
根据第三方面、第三方面的第一种或第二种可能的实施方式,在第三种可能的实施方式中,所述目标节点的内存地址编址模式为交叉编址。
根据第三方面,在第四种可能的实施方式中,所述主节点还用于接收解除节点内存镜像指令;
所述主节点还用于根据所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像;其中,所述解除镜像节点为所述目标节点中的至少一个。
第四方面,本发明实施例提供了一种NUMA***的主节点,所述主节点包括接收单元和配置单元;
所述接收单元用于接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息;
所述配置单元用于根据所述接收单元接收的所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述目标节点的内存地址是连续的。
根据第四方面,在第一种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式。
根据第四方面,在第二种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器内内存镜像模式。
根据第四方面、第四方面的第一种或第二种可能的实施方式,在第三种可能的实施方式中,所述目标节点的内存地址编址模式为交叉编址。
根据第四方面,在第四种可能的实施方式中,所述主节点还包括解除单元;所述接收单元还用于接收解除节点内存镜像指令;
所述解除单元用于根据所述接收单元接收的所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像;其中,所述解除镜像节点为所述目标节点中的至少一个。
第五方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机指令,当NUMA***的主节点执行所述计算机指令时,实现:
接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息;
根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述目标节点的内存地址是连续的。
根据第五方面,在第一种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式。
根据第五方面,在第二种可能的实施方式中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器内内存镜像模式。
本发明实施例提供的NUMA***中的内存镜像配置方法、解除方法、NUMA***及非易失性计算机可读存储介质,主节点接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息,所述主节点根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像,实现以单个节点为粒度的内存镜像,有效解决NUMA***中内存镜像损耗过多内存空间的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种NUMA***结构示意图;
图2为NUMA节点结构示意图;
图3为NUMA***节点内存镜像方法流程图;
图4为NUMA***节点中央处理器间内存镜像模式示意图;
图5为NUMA***节点中央处理器内内存镜像模式示意图;
图6为NUMA***节点中央处理器内内存交叉编址示意图;
图7为NUMA***节点中央处理器间内存交叉编址示意图;
图8为NUMA***节点选择界面示意图;
图9为节点控制器结构示意图;
图10为NUMA***节点解除内存镜像方法流程图;
图11为NUMA***的主节点结构示意图;
图12为NUMA***的主节点另一结构示意图。
具体实施例
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明提供的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
非统一内存访问(Non-Uniform Memory Access,NUMA)***的内存访问方式是一种不均衡式内存访问方式,任一节点的任一中央处理器可以访问本节点和非本地节点的所有内存地址,从而大幅度提高并行性。NUMA***中,中央处理器被划分成多个节点,每个节点分配有本地内存。所有节点中的中央处理器都可以访问NUMA***全部的物理内存。如图1所示,NUMA***包括四个节点,分别为10、11、12和13。每个节点上包括两个中央处理器和一个节点控制器。其中,节点上的两个中央处理器之间通过快速通道互联(Quick Path Interconnect,QPI)链路直接连接,节点上两个中央处理器通过节点控制器与其他节点相连。图1所示的NUMA***,作为一种示例性说明,节点数量及节点***处理器的数量并不是对本发明的限定,中央处理器之间连接的链路也不限于QPI链路。为了图示的清晰,节点10、11、12和13上省略了内存等组件,节点更详细的结构将在下面详细描述。NUMA***中的节点中,通常存在一个主节点,也称为零号节点,可以加载运行NUMA操作***等。在本发明实施例图1所示的NUMA***中,以节点10作为主节点,具体地,节点10包括中央处理器101和102,中央处理器101和102通过QPI链路连接,同时中央处理器101和102与节点控制器103连接,节点控制器103通过网络接口(Networking Interface,NI)分别与节点11、节点12和节点13的节点控制器的NI连接。
图2提供了图1所示的节点11的详细结构图。节点11包括中央处理器111和中央处理器112,中央处理器111和中央处理器112通过QPI链路连接。中央处理器111和中央处理器112分别与节点控制器113链接,节点控制器113通过NI分别与节点10、节点12和节点13的节点控制器的NI连接。中央处理器111分别与内存控制器1111和内存控制器1112连接。在具体实际中,内存控制器1111和内存控制器1112可集成在中央处理器111中。中央处理器112分别与内存控制器1121和内存控制器1122连接。在具体实际中,内存控制器1121和内存控制器1122可集成在中央处理器112中。内存控制器1111、1112、1121和1122分别通过内存缓冲器与内存相连。图1所示的NUMA***中节点10、12和13的结构可参照图2,不再赘述。
如图1所示的NUMA***,总的内存空间为256GB。以节点10、11、12和13的顺序,节点10的内存地址范围为0至(64GB-1字节),节点11的内存地址范围为64GB至(128GB-1字节),节点12的内存地址范围为128GB至(192GB-1字节),节点13的内存地址范围为192GB至(256GB-1字节)。即节点10、11、12和13的内存地址是连续的。因此,当从图1所示的NUMA***中选择节点进行内存镜像时,由于每个节点的内存地址是连续的,因此,可以通过被选择的节点控制器进行内存镜像配置,从而实现以节点为粒度的内存镜像。
以图1所示的NUMA***为例,选择节点11为目标节点,即对节点11进行内存镜像配置。如图3所示,具体步骤包括:
步骤301:所述NUMA***的主节点接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息。
步骤302:所述主节点根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述目标节点的内存地址是连续的。
内存镜像是在同一节点内的两个内存控制器之间维护两份完全相同的数据。当遇到写操作请求时,两个内存控制器会进行相同的写操作,即将数据分别写入两个内存控制器控制的内存中;而对于读操作请求,则只会在主内存控制器上进行,即只读取主内存控制器控制的内存中的数据。
内存镜像模式包括中央处理器间内存镜像模式(Inter SocketMirroring)和中央处理器内内存镜像模式(Intra Socket Mirroring)。
具体地,中央处理器间内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于同一节点的两个不同的中央处理器上。如图4所示,在中央处理器间内存镜像模式中,构成中央处理器间内存镜像关系的内存控制器1111位于中央处理器111上,内存控制器1121位于中央处理器112上;同时,构成中央处理器间内存镜像关系的内存控制器1112位于中央处理器111上,内存控制器1122位于中央处理器112上。当所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式,则所述NUMA***的主节点根据所述节点内存镜像指令携带的目标节点的标识和内存镜像模式信息配置所述目标节点的内存镜像,具体包括:所述主节点根据所述节点内存镜像指令携带的所述目标节点的标识和所述内存镜像模式信息将所述目标节点配置为中央处理器间内存镜像模式。
具体地,中央处理器内内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于同一节点的同一个中央处理器上。如图5所示,在中央处理器内内存镜像模式中,构成中央处理器内内存镜像关系的内存控制器1111位于中央处理器111上,内存控制器1112位于中央处理器111上;同时,构成中央处理器间内存镜像关系的内存控制器1121位于中央处理器112上,内存控制器1122位于中央处理器112上。当所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器内内存镜像模式,则所述NUMA***的主节点根据所述节点内存镜像指令携带的目标节点的标识和内存镜像模式信息配置所述目标节点的内存镜像,具体包括:
所述主节点根据所述节点内存镜像指令携带的所述目标节点的标识和所述内存镜像模式信息将所述目标节点配置为中央处理器内内存镜像模式。
无论是中央处理器间内存镜像模式还是中央处理器内内存镜像模式,在配置为内存镜像的节点,在本发明实施例中为节点11,配置成为镜像关系的两个内存控制器进行相同的内存数据写入操作。为了提高内存读写带宽,可以将节点11的内存地址编址方式设置为交叉编址(interleave)方式。具体地,一种交叉编址方式如图6所示,为同一中央处理器内部的内存控制器的内存地址的交叉编址,即将中央处理器111的内存控制器1111和内存控制器1112的内存地址进行交叉编址,将中央处理器112的内存控制器1121和内存控制器1122的内存地址进行交叉编址。以节点11的内存空间为64GB为例,本发明实施例中,节点11的内存地址范围为64GB至(128GB-1字节),每个内存控制器的内存空间为16GB,中央处理器111上内存控制器1111和内存控制器1112的内存地址范围为64GB至(96GB-1字节),以256字节进行内存地址的交叉编址,中央处理器112上内存控制器1121和内存控制器1122的内存地址范围为96GB至(128GB-1字节),以256字节进行内存地址的交叉编址。另一种交叉编址方式如图7所示,为同一节点内中央处理器间的内存控制器的内存地址的交叉编址,即将中央处理器111和中央处理器112的内存控制器1111、1112、1121和1122的内存地址均进行交叉编址。以节点11的内存空间为64GB为例,本发明实施中,节点11的内存地址范围为64GB至(128GB-1字节),在64GB至(128GB-1字节)的内存地址范围内,内存控制器1111、1112、1121和1122依次以256字节进行内存地址的交叉编址。
本发明实施例NUMA***内存镜像配置的一种实现方式,如图8所示,从用户界面中选择需要进行内存镜像配置的节点,以选择节点11进行内存镜像配置为例。选择节点11,确定节点11的内存镜像模式。选择节点11后,通过基板管理控制器(Baseboard Management Controller)、基本输出输出***(Basic Input Output System,BIOS)或者操作***(operating system,OS)发出内存镜像指令,主节点10接收节点内存镜像指令。其中,节点内存镜像指令携带目标节点的标识和内存镜像模式信息。目标节点是指进行内存镜像的节点,在本发明实施例中,即节点11。内存镜像模式信息用于指示对目标节点,即节点11,进行哪一种内存镜像模式配置。内存镜像模式包括中央处理器间内存镜像模式和中央处理器内内存镜像模式。主节点10根据所述节点内存镜像指令携带的目标节点的标识和内存镜像模式信息配置所述目标节点的内存镜像。其中一种实现方式为主节点10接收内存镜像指令,确定节点11为目标节点,并且确定节点11的内存镜像模式为中央处理器内内存镜像,则主节点10对节点11的中央处理器111、112和节点控制器113进行配置,以实现节点11内存镜像。主节点10节点根据内存镜像指令携带的目标节点的标识和内存镜像模式信息,对中央处理器111和中央处理器112中的内存地址交叉寄存器进行配置。对内存地址交叉寄存器进行配置包括对源地址解析(Source AddressDecode)和目标地址解析(Target Address Decode)进行配置。以节点11采用中央处理器内内存镜像配置模式为例,如图5所示,将内存控制器1111和内存控制器1112配置成中央处理器内内存镜像模式,并且将内存控制器1111指定为主内存控制器,将内存控制器1112指定为从内存控制器;将内存控制器1121和内存控制器1122配置成中央处理器内内存镜像模式,并且将内存控制器1121指定为主内存控制器,将内存控制器1122指定为从内存控制器。将主内存控制器1111的标识保存在中央处理器111的镜像寄存器中,将主内存控制器1121的标识保存在中央处理器112的镜像寄存器中。将源地址解析和目标地址解析的目标列表中各表项均配置成1111,1121,1111,1121,依次循环,循环次数取决于目标列表的表项数,例如,通常Intel中央处理器中目标列表有16项表项,每次循环需要占用2个表项,则循环次数为8次。其中目标列表可以为一个数组,保存在内存地址交叉寄存器中,目标列表各表项中的1111和1121分别为主内存控制器1111和1121的标识,主内存控制器的标识具体表示形式在此不做限定。这样配置后,内存控制器1112和1122作为从内存控制器,在NUMA***中,节点11上面的内存空间只包括内存控制器1111和1121的内存空间。节点11的内存空间为64GB,进行内存镜像配置后成为32GB。
当对节点11进行内存镜像配置时,还需要对节点控制器113进行配置,节点控制器113的一种结构如图9所示,包括***接口1131-0和1131-1,用于分别与中央处理器111和中央处理器112连接。报文调度器(Packet Dispatcher)用于转发报文。远端流水线(Remote Pipeline)1133为用于处理远端的协议事务的引擎,这里远端的协议事务是指从NI1136-0、1136-1和1136-2进入的协议事务,其中NI是指本发明实施例中前面所述的网络接口。本地流水线(Local Pipeline)1134为用于处理本地的协议事务的引擎,本地的协议事务是指中央处理器111和112发出的协议事务。片上网络(Network On Chip)1135是一个交换网络,用于远端流水线1133、本地流水线1134与NI1136-0、1136-1和1136-2的连接。
在图9所示的节点控制器113中,需要配置本地流水线1134的内存地址交叉寄存器。如图7所示,当本发明实施例在节点11开启中央处理器间的内存镜像之前,内存地址在节点11的中央处理器间交叉编址,即内存地址在内存控制器1111、1112、1121和1122之间进行交叉编址,以每个内存控制器需要1条本地流水线为例,需要4条本地流水线,节点11设置内存镜像后,由于内存控制器1111和1121为主内存控制器,因此,只需要开启两条本地流水线,分别对应内存控制器1111和1121,将1111,1121,1111,1121的循环队列写入节点控制器113的目标列表中,完成对内存地址交叉寄存器的修改。其中目标列表可以为一个数组,保存在内存地址交叉寄存器中,目标列表各表项中的1111和1121分别为主内存控制器1111和1121的标识,主内存控制器的标识具体表示形式在此不做限定。由于在节点11的四个内存控制器间进行内存交叉编址,需要使用4条本地流水线来分别对应节点11上的4个内存控制器。当节点11的内存镜像配置完成后,只有两个内存控制器接受内存访问事务,此时可以修改本地流水线,只开启2条本地流水线分别对应内存控制器1111和1121,当然,内存控制器1111和1121也可以分别使用多条本地流水线,可以得到更好的性能。节点内存镜像配置完成后,向NUMA的操作***上报有镜像保护的内存地址范围,一种实现方式为通过高级配置和电源管理接口(Advanced Configuration and Power Management Interface)向操作***上报有镜像保护的内存地址范围,即节点11主节点控制器1111和1121的内存地址范围,从而可以将重要数据放置在该有镜像保护的内存空间中。
由于现有技术中NUMA***进行节点内存镜像配置时,一旦对节点进行内存镜像配置,则所有节点都需要进行内存镜像配置,从而使NUMA***的内存空间减半,影响了NUMA***性能,而本发明实施例提供的NUMA***节点内存镜像方法,可以根据需要,选择需要的节点进行内存镜像,实现以节点为粒度的内存镜像,有效解决NUMA***中内存镜像损耗过多内存空间的问题,增加了NUMA***内存镜像配置的灵活度。NUMA***的主节点通常存储***重要信息,因此,通常将主节点默认进行内存镜像设置,本发明对此不作限定。
本发明实施例提供了NUMA***内存镜像配置方法,当对NUMA***节点进行内存镜像配置后,根据需要还可以解除节点的内存镜像,如图10所示,具体包括:
1001:所述NUMA***的主节点接收解除节点内存镜像指令;
1002:所述主节点根据所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像;其中,所述解除镜像节点为所述目标节点中的至少一个。
仍以上述节点11作为解除镜像节点为例,节点11作为内存镜像节点,仍以图8所示界面为例,当选择解除节点11的内存镜像后,通过基板管理控制器或者操作***发出解除节点内存镜像指令,主节点10接收解除节点内存镜像指令。其中,解除节点内存镜像指令携带解除镜像节点的标识。解除镜像节点是指需要解除内存镜像的节点,在本发明实施例中,即节点11。当配置为内存镜像的节点有多个时,可以从其中选择至少一个节点作为解除镜像节点。主节点10根据解除内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的镜像。当解除节点11的内存镜像时,主节点10配置节点11的中央处理器111、112和节点控制器113。具体包括:取消镜像寄存器中主内存控制器1111和1121的标识,修改节点11的源地址解析和目标地址解析,将在内存镜像模式下的从内存控制器1112和1122的内存空间重新配置到节点11的内存空间。由于节点11被配置为中央处理器间节点镜像模式,在解除镜像之前,源地址解析和目标地址解析的目标列表配置为1111,1121,1111,1121,依次循环。解除镜像后,将源地址解析和目标地址解析的目标列表配置为1111,1112,1121,1122,1111,1112,1121,1122,依次循环,循环次数取决于目标列表的表项数,例如,通常Intel中央处理器中目标列表有16项表项,每次循环需要占用4个表项,则循环次数为4次。其中目标列表可以为一个数组,保存在内存地址交叉寄存器中,目标列表各表项中的1111、1112、1121和1122分别为内存控制器1111、1112、1121和1122的标识,内存控制器的标识具体表示形式在此不做限定。这样,内存控制器1112和内存控制器1122的内存空间就可以重新纳入节点11的内存空间,从而增加NUMA***的内存空间。
另外,解除节点11的内存镜像,还需要修改节点11的节点控制器113的本地流水线的内存地址寄存器。如节点11进行内存镜像配置时所述,通常节点11进行内存镜像后,主内存控制器1111和1121分别开启1条本地流水线,对从内存控制器1112和1122,则不开启本地流水线。解除镜像后,节点11内四个内存控制器1111、1112、1121和1122的内存空间全部进入NUMA***的内存空间。因此,需要开启4条本地流水线,将1111、1112、1121、1122、1111、1112、1121、1122的循环队列写入节点控制器113的内存地址交叉寄存器的目标列表中,其中目标列表可以为一个数组,保存在内存地址交叉寄存器中,1111、1112、1121和1122分别为内存控制器1111、1112、1121和1122的标识,内存控制器的标识具体表示形式在此不做限定。解除节点11的内存镜像后,向NUMA的操作***上报节点的内存空间,即内存容量,一种实现方式为通过高级配置和电源管理接口向操作***上报每个节点的内存空间。
本发明实施例提供的NUMA***内存镜像解除方法,可以根据需要对NUMA***以单个节点为粒度进行内存镜像解除,可以灵活释放内存空间。
本发明上述实施例NUMA***内存镜像的方法,也可以使用中央处理器间内存镜像模式,节点内内存地址的编址方式也可以使用中央处理器间交叉编址方式。即节点内存镜像模式与节点内存地址的编址方式可以自由组合,同时节点内内存地址也可以不使用交叉编址方式,对中央处理器内内存镜像模式的配置和解除不再赘述。本发明实施例仅仅给出一种示例性说明,配置节点内存镜像的节点数量可以根据实际需要具体进行确定,解除节点内存镜像的节点数也可以根据需要具体进行确定。
本发明另一实施例提供了NUMA***的主节点111,如图11所示,主节点111包括接收单元1110和配置单元1111。所述接收单元1110用于接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息;所述配置单元1111用于根据所述接收单元1111接收的所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述目标节点的内存地址是连续的。
如图11所示的NUMA***的主节点,当所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式,则所述配置单元1111用于根据所述接收单元1110接收的所述所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像,具体包括:
所述配置单元1111用于根据所述接收单元接收的所述节点内存镜像指令携带的所述目标节点的标识和所述内存镜像模式信息将所述目标节点配置为中央处理器间内存镜像模式。
如图11所示的NUMA***的主节点,当所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器内内存镜像模式,则所述配置单元1111用于根据所述接收单元1110接收的所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像,具体包括:
所述配置单元1111用于根据所述接收单元1110接收的所述目标节点的标识和所述内存镜像模式信息将所述目标节点配置为中央处理器内内存镜像模式。
如图11所示的NUMA***,所述目标节点的内存地址编址模式可以为交叉编址。
本发明实施例提供的NUMA***可以参照前述实施例对节点内存镜像配置的方法描述来实现节点内存镜像配置,在此不再赘述。
本发明实施例提供的NUMA***,目标节点的个数可以根据***节点个数以及具体需求来确定,可以为一个,也可以为多个。由于现有技术中NUMA***进行节点内存镜像配置时,一旦对节点进行内存镜像配置,则所有节点都需要进行内存镜像配置,从而使NUMA***的内存空间减半,影响了NUMA***性能,而本发明实施例提供的NUMA***节点内存镜像方法,可以根据需要,选择需要的节点进行内存镜像,实现以单个节点为粒度的内存镜像,有效解决NUMA***中内存镜像损耗过多内存空间的问题,增加了NUMA***内存镜像配置的灵活度。
主节点110还包括解除单元1112,如图12所示,所述接收单元1110还用于接收解除节点内存镜像指令;
所述解除单元1112用于根据所述接收单元1110接收的所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述除镜像节点的内存镜像。其中,所述解除镜像节点为所述目标节点中的至少一个。即当目标节点为多个时,解除单元1112可以根据解除节点内存镜像指令解除目标节点中部分节点的内存镜像,当目标节点为一个时,解除镜像节点即为目标节点。
本发明实施例提供的NUMA***可以参照前述实施例对节点内存镜像解除的方法描述来实现节点内存镜像解除,在此不再赘述。
本发明实施例提供的NUMA***内存镜像解除方法,可以根据需要对NUMA***以单个节点为粒度,解除节点的内存镜像,释放节点内存空间。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所公开的***、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种非统一内存访问NUMA***中的内存镜像配置方法,其特征在于,所述方法包括:
所述NUMA***的主节点接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息;
所述主节点根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式或者配置为中央处理器内内存镜像模式;所述中央处理器间内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于所述目标节点的两个不同的中央处理器上,所述中央处理器内内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于所述目标节点的同一个中央处理器上;所述目标节点的内存地址是连续的。
2.如权利要求1所述的方法,其特征在于,所述目标节点的内存地址编址模式为交叉编址。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述节点内存镜像指令携带的目标节点的标识和内存镜像模式信息配置所述目标节点的内存镜像后,还包括:
向所述NUMA***的操作***发送所述目标节点的内存地址信息。
4.一种非统一内存访问NUMA***,其特征在于,所述NUMA***包括主节点和目标节点;所述主节点用于接收节点内存镜像指令,所述节点内存镜像指令携带所述目标节点的标识和内存镜像模式信息;
所述主节点用于根据所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式或者配置为中央处理器内内存镜像模式;所述中央处理器间内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于所述目标节点的两个不同的中央处理器上,所述中央处理器内内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于所述目标节点的同一个中央处理器上;所述目标节点的内存地址是连续的。
5.如权利要求4所述的***,其特征在于,所述目标节点的内存地址编址模式为交叉编址。
6.如权利要求5所述的***,其特征在于,所述主节点还用于接收解除节点内存镜像指令;
所述主节点还用于根据所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像;其中,所述解除镜像节点为所述目标节点中的至少一个。
7.一种非统一内存访问NUMA***的主节点,其特征在于,所述主节点包括接收单元和配置单元;
所述接收单元用于接收节点内存镜像指令,所述节点内存镜像指令携带目标节点的标识和内存镜像模式信息;
所述配置单元用于根据所述接收单元接收的所述目标节点的标识和所述内存镜像模式信息配置所述目标节点的内存镜像;其中,所述内存镜像模式信息用于指示将所述目标节点配置为中央处理器间内存镜像模式或者配置为中央处理器内内存镜像模式;所述中央处理器间内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于所述目标节点的两个不同的中央处理器上,所述中央处理器内内存镜像模式是指维护两份完全相同的数据的两个内存控制器位于所述目标节点的同一个中央处理器上;所述目标节点的内存地址是连续的。
8.如权利要求7所述的主节点,其特征在于,所述目标节点的内存地址编址模式为交叉编址。
9.如权利要求7所述的主节点,其特征在于,所述主节点还包括解除单元;所述接收单元还用于接收解除节点内存镜像指令;
所述解除单元用于根据所述接收单元接收的所述解除节点内存镜像指令携带的解除镜像节点的标识解除所述解除镜像节点的内存镜像;其中,所述解除镜像节点为所述目标节点中的至少一个。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/078508 WO2014205845A1 (zh) | 2013-06-29 | 2013-06-29 | 一种numa***内存镜像配置方法、解除方法、***和主节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103649923A CN103649923A (zh) | 2014-03-19 |
CN103649923B true CN103649923B (zh) | 2015-07-29 |
Family
ID=50253407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380000684.9A Active CN103649923B (zh) | 2013-06-29 | 2013-06-29 | 一种numa***内存镜像配置方法、解除方法、***和主节点 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103649923B (zh) |
WO (1) | WO2014205845A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528262B (zh) * | 2014-10-21 | 2019-03-19 | 杭州华为数字技术有限公司 | 一种实现内存镜像的方法及装置 |
CN104484250B (zh) * | 2014-11-28 | 2018-04-27 | 英业达科技有限公司 | 快速通道互联总线的压力测试方法和压力测试装置 |
CN104778098A (zh) * | 2015-04-09 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种内存镜像的方法及***、一种内存监控器 |
CN106557448B (zh) * | 2015-09-24 | 2019-06-18 | 龙芯中科技术有限公司 | 多节点***的内核代码读取方法及*** |
US10474653B2 (en) * | 2016-09-30 | 2019-11-12 | Oracle International Corporation | Flexible in-memory column store placement |
CN109951551B (zh) * | 2019-03-21 | 2021-03-19 | 联想(北京)有限公司 | 一种容器镜像管理***及方法 |
CN110262893B (zh) | 2019-05-16 | 2021-08-20 | 华为技术有限公司 | 配置镜像内存的方法、装置及计算机存储介质 |
US11294692B2 (en) | 2020-07-27 | 2022-04-05 | Dell Products L.P. | Basic input output system (BIOS)—identified memory size and node address range mirroring system |
CN118113455A (zh) * | 2022-11-29 | 2024-05-31 | 华为技术有限公司 | 内存访问方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613885B2 (en) * | 2006-01-04 | 2009-11-03 | Hitachi, Ltd. | Cache coherency control method, chipset, and multi-processor system |
CN102725746A (zh) * | 2011-07-20 | 2012-10-10 | 华为技术有限公司 | 对分布式计算机***中内存的管理方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014599A1 (en) * | 2001-07-05 | 2003-01-16 | International Business Machines Corporation | Method for providing a configurable primary mirror |
US20090006793A1 (en) * | 2007-06-30 | 2009-01-01 | Koichi Yamada | Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance |
CN100595735C (zh) * | 2007-12-10 | 2010-03-24 | 杭州华三通信技术有限公司 | 内存镜像***、装置和内存镜像方法 |
CN103136110B (zh) * | 2013-02-18 | 2016-03-30 | 华为技术有限公司 | 内存管理方法、内存管理装置及numa*** |
-
2013
- 2013-06-29 WO PCT/CN2013/078508 patent/WO2014205845A1/zh active Application Filing
- 2013-06-29 CN CN201380000684.9A patent/CN103649923B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613885B2 (en) * | 2006-01-04 | 2009-11-03 | Hitachi, Ltd. | Cache coherency control method, chipset, and multi-processor system |
CN102725746A (zh) * | 2011-07-20 | 2012-10-10 | 华为技术有限公司 | 对分布式计算机***中内存的管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2014205845A1 (zh) | 2014-12-31 |
CN103649923A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103649923B (zh) | 一种numa***内存镜像配置方法、解除方法、***和主节点 | |
US20240168823A1 (en) | Computer cluster arrangement for processing a computation task and method for operation thereof | |
US8626936B2 (en) | Protocol independent server replacement and replication in a storage area network | |
CN106020854A (zh) | 将固件更新应用在具有零停机时间的***中 | |
CN108604209A (zh) | 扁平化端口桥 | |
CN109471770A (zh) | 一种***管理方法和装置 | |
US9122816B2 (en) | High performance system that includes reconfigurable protocol tables within an ASIC wherein a first protocol block implements an inter-ASIC communications protocol and a second block implements an intra-ASIC function | |
CN102576310A (zh) | 将物理计算资源的一部分分配给逻辑分区 | |
US9547882B2 (en) | Shared memory eigensolver | |
US8612973B2 (en) | Method and system for handling interrupts within computer system during hardware resource migration | |
CN102736972A (zh) | 对待测试应用的测试例进行处理的方法和*** | |
CN102024011A (zh) | 自主子***体系结构 | |
US8028017B2 (en) | Virtual controllers with a large data center | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
CN104049692A (zh) | 一种刀片服务器 | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
CN103677996B (zh) | 用于平衡工作负荷分布的协作方法和*** | |
TWI515576B (zh) | 巨資系統的資料分派處理方法及其系統 | |
CN105005547B (zh) | 一种基于numa的多路服务器完全物理分区方法 | |
US20170090967A1 (en) | Recommending an asymmetric multiprocessor fabric link aggregation | |
US20240104047A1 (en) | Universal serial bus (usb) backplane | |
CN103731375B (zh) | 一种fc端口虚拟化方法、装置 | |
Lascu et al. | IBM zEnterprise EC12 technical guide | |
CN115698995A (zh) | 硬件自动加载器 | |
US20090292900A1 (en) | Multiprocessor node control tree |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211222 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters building, Longgang District, Shenzhen City, Guangdong Province, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |