CN104252419A - 一种内存分配的方法及装置 - Google Patents

一种内存分配的方法及装置 Download PDF

Info

Publication number
CN104252419A
CN104252419A CN201410471145.XA CN201410471145A CN104252419A CN 104252419 A CN104252419 A CN 104252419A CN 201410471145 A CN201410471145 A CN 201410471145A CN 104252419 A CN104252419 A CN 104252419A
Authority
CN
China
Prior art keywords
data
memory
mirror
mirror memory
stored
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.)
Granted
Application number
CN201410471145.XA
Other languages
English (en)
Other versions
CN104252419B (zh
Inventor
谢秀奇
裘稀石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201410471145.XA priority Critical patent/CN104252419B/zh
Publication of CN104252419A publication Critical patent/CN104252419A/zh
Priority to KR1020177004358A priority patent/KR101996975B1/ko
Priority to PCT/CN2015/089796 priority patent/WO2016041501A1/zh
Priority to BR112017001965-5A priority patent/BR112017001965B1/pt
Priority to JP2017512349A priority patent/JP6478430B2/ja
Priority to EP15841888.9A priority patent/EP3171276B1/en
Priority to US15/460,132 priority patent/US10353609B2/en
Application granted granted Critical
Publication of CN104252419B publication Critical patent/CN104252419B/zh
Priority to US16/425,872 priority patent/US10990303B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种内存分配的方法,所述方法应用于计算机系统中,所述计算机系统包括内存资源、BOIS和OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述方法包括:获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存,对待分配内存的数据进行检测,当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。本发明实施例提供的内存分配的方法,可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率。

Description

一种内存分配的方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种内存分配的方法及装置。
背景技术
因内存的可靠性对计算机系统的可靠性影响很大。所以需要提高内存的可靠性,目前现有技术中通常采用镜像内存来提升内存可靠性。
镜像内存(Mirroring Memory)技术的工作原理:在硬件中划分两个内存区域,一个作为主内存,一个作为镜像内存,操作系统运行时将内存数据做两个拷贝,分别放在主内存和镜像内存中。因此使得内存数据有两套完整的备份。完整的镜像内存需要内存中的所有数据均存有副本,服务器系统正常运行时所使用的是原本,而当其中一份宿主失效时,另外那份就随即补替工作,有效防止了由于内存通道故障导致的数据丢失,极大提升了服务器可靠性。但是要实现这一功能需要双倍的物理内存,而实际容量的利用率只有50%。由于成本非常高,因此现实中很少有产品使用完整的镜像内存。
现有技术中已经出现了部分镜像内存技术,该技术可以将计算机系统中的一部分内存(比如某一段或几段内存地址区域)做镜像内存。但现有技术中的镜像内存只是停留在硬件层,操作系统并不感知硬件层,当硬件层的镜像内存发生变化时,操作系统中就不能准确的找到镜像内存,导致无法将数据准备的存储到镜像内存中,而且,由于镜像内存大小有限,而计算机系统在为数据分配镜像内存时,只会为先产生的数据分配镜像内存,镜像内存占满后,就无法再为其他需要分配镜像内存的数据分配镜像内存。
发明内容
为了解决现有技术中操作系统无法感知到镜像内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的方法,可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了系统的可靠性。本发明实施例还提供了相应的装置。
本发明第一方面提供一种内存分配的方法,所述方法应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述方法包括:
获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
对待分配内存的数据进行检测;
当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
结合第一方面,在第一种可能的实现方式中,所述对待分配内存的数据进行检测之前,所述方法还包括:
为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述对待分配内存的数据进行检测,包括:
检测所述待分配内存的数据是否携带有所述镜像标识;
所述当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,所述方法还包括:
为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本发明第二方面提供一种内存分配的装置,所述装置应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述装置包括:
获取单元,用于获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
检测单元,用于对待分配内存的数据进行检测;
分配单元,用于当所述检测单元检测到所述数据为待存储到镜像内存的数据时,从所述获取单元获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:
第一设置单元,用于在所述检测单元对待分配内存的数据进行检测之前,为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述检测单元,用于检测所述待分配内存的数据是否携带有所述第一设置单元设置的所述镜像标识;
所述分配单元,用于当所述检测单元检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
确定单元,用于当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
转移单元,用于当所述确定单元确定所述同一进程数据未存储到所述镜像内存中时,则将所述同一进程数据转移到所述初始镜像内存中。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述分配单元包括:
确定子单元,用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
分配子单元,用于从所述确定子单元确定的所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
第二设置单元,用于在所述分配单元分配镜像内存后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本发明实施例提供的内存分配的方法,所述方法应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述方法包括:获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;对待分配内存的数据进行检测;当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。与现有技术中操作系统无法感知到进行内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的方法,BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了系统的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中计算机系统的架构示意图;
图2是本发明实施例中内存分配的方法的一实施例示意图;
图3是本发明实施例中内存分配的装置的一实施例示意图;
图4是本发明实施例中内存分配的装置的另一实施例示意图;
图5是本发明实施例中内存分配的装置的另一实施例示意图;
图6是本发明实施例中内存分配的装置的另一实施例示意图;
图7是本发明实施例中内存分配的装置的另一实施例示意图;
图8是本发明实施例中内存分配设备的一实施例示意图。
具体实施方式
本发明实施例提供一种内存分配的方法,可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了系统的可靠性。本发明实施例还提供了相应的装置及系统。以下分别进行详细说明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参阅图1,本发明实施例提供的计算机系统架构可以包括:硬件资源层、基本输入输出系统(Basic Input Output System,BOIS)、操作系统(OperationSystem,OS)和用户应用层,所述硬件资源层可以包括处理器、内存、输入输出系统等硬件资源,用户应用层可以包括各种业务应用,本发明实施例中的操作系统可以为Linux系统。
内存可以包括镜像内存,在操作系统初始化时,BOIS会向OS上报内存信息,内存信息可以为各类型内存的地址范围,其中包括镜像内存的地址范围,例如可以包含以下信息,通过e820映射图的形式可以表示为:
e820:BIOS-provided physical RAM map:
[mem 0x0000000000000000-0x000000000009a7ff]usable
[mem 0x000000000009a800-0x000000000009ffff]reserved
[mem 0x00000000000e4b60-0x00000000000fffff]reserved
[mem 0x0000000000100000-0x000000003fffffff]mirror (1M~1G)
[mem 0x0000000040000000-0x00000000bf78ffff]usable (1G~3063M)
[mem 0x00000000bf790000-0x00000000bf79dfff]ACPI data
[mem 0x00000000bf79e000-0x00000000bf7cffff]ACPI NVS
[mem 0x00000000bf7d0000-0x00000000bf7dffff]reserved
[mem 0x00000000bf7ec000-0x00000000bfffffff]reserved
[mem 0x00000000e0000000-0x00000000efffffff]reserved
[mem 0x00000000fee00000-0x00000000fee00fff]reserved
[mem 0x00000000fff00000-0x00000000ffffffff]reserved
[mem 0x0000000100000000-0x00000002ffffffff]usable (4G~12G)
[mem 0x0000000300000000-0x000000033fffffff]mirror (12G~13G)
[mem 0x0000000340000000-0x00000005ffffffff]usable (13G~24G)
[mem 0x0000000600000000-0x000000063fffffff]mirror (24G~25G)
[mem 0x0000000640000000-0x0000000bffffffff]usable (25G~36G)
[mem 0x0000000900000000-0x000000093fffffff]mirror (36G~37G)
[mem 0x0000000940000000-0x0000000c3fffffff]usable (37G~48G)…
其中,标记为mirror的地址范围对应的内存为镜像内存,本发明实施例中镜像内存的地址范围为(1M~1G)、(12G~13G)、(24G~25G)、(36G~37G)。
操作系统根据BIOS上报的内存信息,可以建立一个镜像内存管理区MIRROR ZONE。MIRROR ZONE用来跟踪和管理镜像内存区域,其组织方式和普通的内存管理区相同。MIRROR ZONE可以有多个,多个MIRRORZONE组成ZONE List。例如:本发明实施例中的镜像内存可以有4个MIRRORZONE,分别为(1M~1G)、(12G~13G)、(24G~25G)、(36G~37G)。可以依次编号为:MIRROR_ZONE1、MIRROR_ZONE2、MIRROR_ZONE3和MIRROR_ZONE4,按照非一致性内存访问(Non Uniform Memory AccessArchitecture,NUMA)架构,可以将48G的内存划分为4个节点,分别为(0M~12G)、(13G~24G)、(25G~36G)、(37G~48G),4个MIRROR ZONE分别属于4个节点,在分配镜像内存时,优先分配本节点的镜像内存,避免跨节点访问内存,造成较大的延迟。
在为内核数据分配内存时,可以通过新增__GFP_MIRROR标识,作为内核中优先分配镜像内存的标识。在为用户数据分配内存时,可以指定__GFP_MIRROR标识,优先分配镜像内存,也可以设置内核默认内核优先分配镜像内存。如以通过修改GFP_KERNEL的默认值,设置默认优先分配镜像内存:
#define GFP_KERNEL(__GFP_WAIT|__GFP_IO|__GFP_FS|__GFP_MIRROR)
针对内核数据优先分配镜像内存的过程如下:
1)OS启动,判断是否支持镜像内存优先分配的特性(BIOS上报的内存分布图中如果有MIRROR类型的内存,则说明支持该特性)。
2)若支持,OS根据BIOS上报的内存信息,建立一个或多个MIRRORZONE,并加入到所有NODE的ZONE链表中,以便每个节点都可以选择在MIRROR ZONE中进行内存分配。
3)alloc_pages()是最基础的页框分配器,所有内存分配最终会走到这里,其负责在指定页区(ZONE)中分配1个或多个(2的整数次幂个)连续页框。如设置__GFP_MIRROR标识,则优先从MIRROR ZONE中分配内存。
4)分配内存时,优先从MIRROR ZONE区分配内存,若MIRROR类型的内存不足,则再从普通区域分配。
5)如果系统的镜像内存数量很少,不足以满足所有内核数据存储的情况下,也可以关闭默认分配镜像内存的设置,改为手动分配镜像内存。比如,某些重要驱动程序,有较高的可靠性需求,可在分配内存时,手动指定__GFP_MIRROR标识。
6)镜像内存使用完释放时,释放到对应的MIRROR ZONE里;
本发明实施例不改变alloc_pages()等内存分配函数的接口及使用方式,使大量既有驱动程序不需做任何修改即可使用该特性。
针对用户进程数据优先分配镜像内存
针对新创建的进程:
1)创建进程
2)修改进程描述符,在进程描述符中设置镜像内存分配标识MIRROR_FIRST,本发明中,通过系统调用或用户态命令可以设置该标识。
3)分配内存时,如果MIRROR_FIRST设置,则优先使用镜像内存,优先从MIRROR ZONE分配内存,否则使用普通内存,从NORMAL ZONE分配内存,如果镜像内存不足,也分配普通内存。
4)子进程创建时,默认继承MIRROR_FIRST标识的设置。
针对正在运行的进程:
1)通过/proc接口或者系统调用设置进程的MIRROR_FIRST标识,使进程分配内存时,优先分配镜像内存。
2)同时,将之前分配的普通内存中的数据,迁移到镜像内存中.
参阅图2,本发明实施例提供的内存分配的方法的一实施例包括:
所述方法应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述方法包括:
101、获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存。
102、对待分配内存的数据进行检测。
103、当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例提供的内存分配的方法,所述方法应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述方法包括:获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;对待分配内存的数据进行检测;当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。与现有技术中操作系统无法感知到进行内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的方法,BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了系统的可靠性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的内存分配的方法的第一个可选实施例中,所述对待分配内存的数据进行检测之前,所述方法还可以包括:
为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述对待分配内存的数据进行检测,可以包括:
检测所述待分配内存的数据是否携带有所述镜像标识;
所述当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,可以包括:
当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
本发明实施例中,可以将内核数据全部分配镜像内存,针对用户数据可以根据用户的需求进行设置,当用户指定某类型数据为关键用户数据时,则对该类型的数据设置镜像标识,为该类型的数据分配镜像内存。
可选地,在上述第一个可选实施例的基础上,本发明实施例提供的内存分配的方法的第二个可选实施例中,所述方法还可以包括:
当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
本发明实施例中,是针对正在进行中的进程设置镜像标记的情况,例如:用户正在编辑的一个word文档,文档编辑一部分后,用户才指定该word文档为关键用户数据,则针对该word文档的数据已编辑的一部分已经分配了普通内存,在用户指定后再编辑的部分则会分配镜像内存,这样就可以将普通内存中的在先数据也转移到镜像内存中。
可选地,在上述图2对应的实施例或任一可选实施例的基础上,本发明实施例提供的内存分配的方法的第三个可选实施例中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,可以包括:
确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例是针对镜像内存分布在不同NUMA节点的情况,在本节点内分配镜像内存,可以避免跨节点访问内存,造成较大的延迟。
可选地,在上述图2对应的实施例或任一可选实施例的基础上,本发明实施例提供的内存分配的方法的第四个可选实施例中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,所述方法还可以包括:
为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本发明实施例中,在镜像内存被占用后,要在备占用的镜像内存的地址区间上设置标记,这样,在分配进行内存时,就可以快速的查找到未被占用的镜像内存。
参阅图3,本发明实施例提供的内存分配的装置的一实施例包括:所述装置应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述装置20包括:
获取单元201,用于获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
检测单元202,用于对待分配内存的数据进行检测;
分配单元203,用于当所述检测单元202检测到所述数据为待存储到镜像内存的数据时,从所述获取单元201获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例中提供的内存分配的装置,所述装置应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述装置20包括:获取单元201获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;检测单元202对待分配内存的数据进行检测;分配单元203当所述检测单元202检测到所述数据为待存储到镜像内存的数据时,从所述获取单元201获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。与现有技术中操作系统无法感知到进行内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的装置,BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了系统的可靠性。
可选地,在上述图3对应的实施例的基础上,参阅图4,本发明实施例提供的内存分配的装置的另一实施例中,所述装置20还包括:
第一设置单元204,用于在所述检测单元202对待分配内存的数据进行检测之前,为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述检测单元202,用于检测所述待分配内存的数据是否携带有所述第一设置单元204设置的所述镜像标识;
所述分配单元203,用于当所述检测单元202检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
可选地,在上述图4对应的实施例的基础上,参阅图5,本发明实施例提供的内存分配的装置的另一实施例中,所述装置20还包括:
确定单元205,用于当所述待分配内存的数据为所述设置单元204设置的关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
转移单元206,用于当所述确定单元205确定所述同一进程数据未存储到所述镜像内存中时,则将所述同一进程数据转移到所述初始镜像内存中。
可选地,在上述图3对应的实施例的基础上,参阅图6,本发明实施例提供的内存分配的装置的另一实施例中,所述分配单元203包括:
确定子单元2031,用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
分配子单元2032,用于从所述确定子单元2021确定的所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
可选地,在上述图3对应的实施例的基础上,参阅图7,本发明实施例提供的内存分配的装置的另一实施例中,所述装置20还包括:
第二设置单元207,用于在所述分配单元203分配镜像内存后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
图8是本发明实施例内存分配设备40的结构示意图。内存分配设备40可包括输入/输出设备410、处理器430和存储器440。
存储器440可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器440的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器440存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
所述内存分配设备应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,在本发明实施例中,处理器430通过调用存储器440存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
对待分配内存的数据进行检测;
当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例中,内存分配设备40的BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了系统的可靠性。
处理器430控制内存分配设备40的操作,处理器430还可以称为CPU(Central Processing Unit,中央处理单元)。存储器440可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器440的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,内存分配设备40的各个组件通过总线系统450耦合在一起,其中总线系统450除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统450。
上述本发明实施例揭示的方法可以应用于处理器430中,或者由处理器430实现。处理器430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器430可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器440,处理器430读取存储器440中的信息,结合其硬件完成上述方法的步骤。
可选地,所述处理器430还用于为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;检测所述待分配内存的数据是否携带有所述镜像标识;当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
可选地,所述处理器430还用于当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
可选地,所述处理器430具体用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
可选地,所述处理器430还用于从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如处理器)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的媒体流信息更新的方法、装置以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种内存分配的方法,其特征在于,所述方法应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述方法包括:
获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
对待分配内存的数据进行检测;
当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
2.根据权利要求1所述的方法,其特征在于,所述对待分配内存的数据进行检测之前,所述方法还包括:
为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述对待分配内存的数据进行检测,包括:
检测所述待分配内存的数据是否携带有所述镜像标识;
所述当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
4.根据权利要求1-3任一所述的方法,其特征在于,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
5.根据权利要求1-3任一所述的方法,其特征在于,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,所述方法还包括:
为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
6.一种内存分配的装置,其特征在于,所述装置应用于计算机系统中,所述计算机系统包括内存资源、基本输入输出系统BOIS和操作系统OS,所述内存资源中包含初始镜像内存,在所述操作系统运行时,所述装置包括:
获取单元,用于获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
检测单元,用于对待分配内存的数据进行检测;
分配单元,用于当所述检测单元检测到所述数据为待存储到镜像内存的数据时,从所述获取单元获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一设置单元,用于在所述检测单元对待分配内存的数据进行检测之前,为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述检测单元,用于检测所述待分配内存的数据是否携带有所述第一设置单元设置的所述镜像标识;
所述分配单元,用于当所述检测单元检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
确定单元,用于当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
转移单元,用于当所述确定单元确定所述同一进程数据未存储到所述镜像内存中时,则将所述同一进程数据转移到所述初始镜像内存中。
9.根据权利要求6-8任一所述的装置,其特征在于,所述分配单元包括:
确定子单元,用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
分配子单元,用于从所述确定子单元确定的所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
10.根据权利要求6-8任一所述的装置,其特征在于,所述装置还包括:
第二设置单元,用于在所述分配单元分配镜像内存后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
CN201410471145.XA 2014-09-16 2014-09-16 一种内存分配的方法及装置 Active CN104252419B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201410471145.XA CN104252419B (zh) 2014-09-16 2014-09-16 一种内存分配的方法及装置
JP2017512349A JP6478430B2 (ja) 2014-09-16 2015-09-16 メモリ割当て方法および装置
PCT/CN2015/089796 WO2016041501A1 (zh) 2014-09-16 2015-09-16 一种内存分配的方法及装置
BR112017001965-5A BR112017001965B1 (pt) 2014-09-16 2015-09-16 Método de alocação de memória, aparelho e sistema de computador
KR1020177004358A KR101996975B1 (ko) 2014-09-16 2015-09-16 메모리 할당 방법 및 장치
EP15841888.9A EP3171276B1 (en) 2014-09-16 2015-09-16 Memory allocation method and device
US15/460,132 US10353609B2 (en) 2014-09-16 2017-03-15 Memory allocation method and apparatus
US16/425,872 US10990303B2 (en) 2014-09-16 2019-05-29 Memory allocation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410471145.XA CN104252419B (zh) 2014-09-16 2014-09-16 一种内存分配的方法及装置

Publications (2)

Publication Number Publication Date
CN104252419A true CN104252419A (zh) 2014-12-31
CN104252419B CN104252419B (zh) 2017-09-19

Family

ID=52187342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410471145.XA Active CN104252419B (zh) 2014-09-16 2014-09-16 一种内存分配的方法及装置

Country Status (6)

Country Link
US (2) US10353609B2 (zh)
EP (1) EP3171276B1 (zh)
JP (1) JP6478430B2 (zh)
KR (1) KR101996975B1 (zh)
CN (1) CN104252419B (zh)
WO (1) WO2016041501A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016041501A1 (zh) * 2014-09-16 2016-03-24 华为技术有限公司 一种内存分配的方法及装置
CN106648938A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种Linux系统应用程序内存管理方法及系统
CN107704399A (zh) * 2017-08-16 2018-02-16 华为技术有限公司 一种存储数据的方法和装置
WO2020228377A1 (zh) * 2019-05-16 2020-11-19 华为技术有限公司 配置镜像内存的方法、装置及计算机存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN114090223A (zh) * 2020-08-24 2022-02-25 北京百度网讯科技有限公司 访存请求调度方法、装置、设备以及存储介质
JP2022080687A (ja) * 2020-11-18 2022-05-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US11734176B2 (en) * 2021-10-27 2023-08-22 Dell Products L.P. Sub-NUMA clustering fault resilient memory system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651133A (en) * 1995-02-01 1997-07-22 Hewlett-Packard Company Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
CN101937400A (zh) * 2009-06-29 2011-01-05 联想(北京)有限公司 管理热备份内存的方法和电子设备
US20120079316A1 (en) * 2009-12-21 2012-03-29 Mallik Bulusu Performing Redundant Memory Hopping
CN103136110A (zh) * 2013-02-18 2013-06-05 华为技术有限公司 内存管理方法、内存管理装置及numa系统
US20130151767A1 (en) * 2011-12-12 2013-06-13 Dell Products L.P. Memory controller-independent memory mirroring
CN103324582A (zh) * 2013-06-17 2013-09-25 华为技术有限公司 一种内存迁移方法、装置及设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546472B2 (en) * 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
US7028215B2 (en) * 2002-05-03 2006-04-11 Hewlett-Packard Development Company, L.P. Hot mirroring in a computer system with redundant memory subsystems
US20070214333A1 (en) * 2006-03-10 2007-09-13 Dell Products L.P. Modifying node descriptors to reflect memory migration in an information handling system with non-uniform memory access
US9262284B2 (en) * 2006-12-07 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Single channel memory mirror
US20090006793A1 (en) * 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance
CN101470667A (zh) 2007-12-28 2009-07-01 英业达股份有限公司 Linux系统平台上指定地址范围分配物理内存的方法
JP2009199478A (ja) * 2008-02-25 2009-09-03 Hitachi Ltd メモリミラーリング自動構成制御方式
US8151138B2 (en) * 2008-10-31 2012-04-03 Dell Products L.P. Redundant memory architecture management methods and systems
CN101604263A (zh) 2009-07-13 2009-12-16 浪潮电子信息产业股份有限公司 一种实现操作系统核心代码段多副本运行的方法
EP2455865B1 (en) 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
JP2011186563A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置およびメモリ管理方法
US8335908B2 (en) * 2010-07-01 2012-12-18 Arm Limited Data processing apparatus for storing address translations
CN101901174B (zh) 2010-07-28 2012-07-18 西安交通大学 基于代码段多副本对比机制提高程序可靠性方法
JP2012043246A (ja) * 2010-08-20 2012-03-01 Canon Inc 情報処理装置、情報処理装置の制御方法、及び、プログラム
US8601310B2 (en) * 2010-08-26 2013-12-03 Cisco Technology, Inc. Partial memory mirroring and error containment
WO2011127862A2 (zh) 2011-05-20 2011-10-20 华为技术有限公司 多线程访问多副本的方法和装置
US9037903B2 (en) 2012-12-28 2015-05-19 Intel Corporation Apparatus and method for partial memory mirroring
CN103198028B (zh) 2013-03-18 2015-12-23 华为技术有限公司 一种内存数据迁移方法、装置及系统
CN103389884A (zh) 2013-07-29 2013-11-13 华为技术有限公司 处理输入/输出请求的方法、宿主机、服务器和虚拟机
CN103530241B (zh) * 2013-09-24 2016-04-13 创新科存储技术(深圳)有限公司 一种用户态的双控内存镜像实现方法
US9411695B2 (en) * 2013-12-04 2016-08-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Provisioning memory in a memory system for mirroring
CN104252419B (zh) * 2014-09-16 2017-09-19 华为技术有限公司 一种内存分配的方法及装置
US9753662B1 (en) * 2016-09-26 2017-09-05 International Business Machines Corporation Using mirror indicators to determine whether to mirror tracks in a data set in a primary volume mirrored to a secondary volume

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651133A (en) * 1995-02-01 1997-07-22 Hewlett-Packard Company Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
CN101937400A (zh) * 2009-06-29 2011-01-05 联想(北京)有限公司 管理热备份内存的方法和电子设备
US20120079316A1 (en) * 2009-12-21 2012-03-29 Mallik Bulusu Performing Redundant Memory Hopping
US20130151767A1 (en) * 2011-12-12 2013-06-13 Dell Products L.P. Memory controller-independent memory mirroring
CN103136110A (zh) * 2013-02-18 2013-06-05 华为技术有限公司 内存管理方法、内存管理装置及numa系统
CN103324582A (zh) * 2013-06-17 2013-09-25 华为技术有限公司 一种内存迁移方法、装置及设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016041501A1 (zh) * 2014-09-16 2016-03-24 华为技术有限公司 一种内存分配的方法及装置
US10353609B2 (en) 2014-09-16 2019-07-16 Huawei Technologies Co., Ltd. Memory allocation method and apparatus
US10990303B2 (en) 2014-09-16 2021-04-27 Huawei Technologies Co., Ltd. Memory allocation method and apparatus
CN106648938A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种Linux系统应用程序内存管理方法及系统
CN106648938B (zh) * 2016-12-30 2021-01-12 苏州浪潮智能科技有限公司 一种Linux系统应用程序内存管理方法及系统
CN107704399A (zh) * 2017-08-16 2018-02-16 华为技术有限公司 一种存储数据的方法和装置
CN107704399B (zh) * 2017-08-16 2021-01-29 华为技术有限公司 一种存储数据的方法和装置
WO2020228377A1 (zh) * 2019-05-16 2020-11-19 华为技术有限公司 配置镜像内存的方法、装置及计算机存储介质
US11740810B2 (en) 2019-05-16 2023-08-29 Huawei Technologies Co., Ltd. Mirrored memory configuration method and apparatus, and computer storage medium

Also Published As

Publication number Publication date
US10353609B2 (en) 2019-07-16
US20190278499A1 (en) 2019-09-12
KR101996975B1 (ko) 2019-07-05
EP3171276B1 (en) 2020-12-16
BR112017001965A2 (pt) 2017-11-21
EP3171276A1 (en) 2017-05-24
CN104252419B (zh) 2017-09-19
JP2017531252A (ja) 2017-10-19
US10990303B2 (en) 2021-04-27
KR20170031230A (ko) 2017-03-20
JP6478430B2 (ja) 2019-03-06
US20170185340A1 (en) 2017-06-29
EP3171276A4 (en) 2017-08-23
WO2016041501A1 (zh) 2016-03-24

Similar Documents

Publication Publication Date Title
CN104252419A (zh) 一种内存分配的方法及装置
WO2018010654A1 (zh) 一种虚拟机热迁移的方法、装置及系统
CN112673341B (zh) 具有可配置存储的NVMe直接虚拟化
CN109669640B (zh) 一种数据存储方法、装置、电子设备及介质
CN104111897A (zh) 一种数据处理方法、装置及计算机系统
US9229878B2 (en) Memory page offloading in multi-node computer systems
CN103198028A (zh) 一种内存数据迁移方法、装置及系统
US20070214333A1 (en) Modifying node descriptors to reflect memory migration in an information handling system with non-uniform memory access
CN109417488A (zh) 虚拟网络功能资源管理的方法和设备
US10452686B2 (en) System and method for memory synchronization of a multi-core system
US20050273557A1 (en) Storage system and method for acquisition and utilisation of snapshots
CN104461685A (zh) 虚拟机处理方法和虚拟计算机系统
CN110704161B (zh) 虚拟机创建方法、装置及计算机设备
CN104317734A (zh) 一种适用于slab的内存分配方法及装置
CN104679592A (zh) 一种微控制单元mcu中资源动态分配的方法和系统
CN103049328A (zh) 计算机系统中内存资源分配方法
CN102937912A (zh) 虚拟机调度方法和设备
CN113535087B (zh) 数据迁移过程中的数据处理方法、服务器及存储系统
CN106354428B (zh) 一种多物理层分区计算机体系结构的存储共享系统
US20170337004A1 (en) Disk assignment for multiple distributed computing clusters in a virtualized computing environment
CN113760457A (zh) 一种虚拟机资源分配方法、装置、电子设备及存储介质
US20170115889A1 (en) Systems and methods for set membership matching
Dell
CN106202262A (zh) 一种信息处理方法及电子设备
CN104951406A (zh) 一种分页式地址空间管理方法以及控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150924

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: Huawei Technologies Co., Ltd.

Address before: 310052 Binjiang District, Hangzhou Province, No. 301 Xing Xing Road, building A, room 3, building, Room 301

Applicant before: Hangzhou Huawei Digital Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant