KR20170031230A - 메모리 할당 방법 및 장치 - Google Patents

메모리 할당 방법 및 장치 Download PDF

Info

Publication number
KR20170031230A
KR20170031230A KR1020177004358A KR20177004358A KR20170031230A KR 20170031230 A KR20170031230 A KR 20170031230A KR 1020177004358 A KR1020177004358 A KR 1020177004358A KR 20177004358 A KR20177004358 A KR 20177004358A KR 20170031230 A KR20170031230 A KR 20170031230A
Authority
KR
South Korea
Prior art keywords
memory
mirrored
data
allocation
mirrored memory
Prior art date
Application number
KR1020177004358A
Other languages
English (en)
Other versions
KR101996975B1 (ko
Inventor
슈치 시에
시시 치우
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
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 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20170031230A publication Critical patent/KR20170031230A/ko
Application granted granted Critical
Publication of KR101996975B1 publication Critical patent/KR101996975B1/ko

Links

Images

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)
  • Human Computer Interaction (AREA)
  • Software Systems (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

메모리 할당 방법이 개시된다. 상기 방법은 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(basic input/output system, BOIS) 및 운영체제(operating system, OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리(mirrored memory)를 포함한다. 운영체제가 실행될 때, 상기 메모리 할당 방법은: 초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하는 단계(101) - 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 - ; 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계(102); 및 상기 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계(103)를 포함한다. 메모리 할당 방법은 미러링된 메모리를 정확하게 발견할 수 있고, 미러링된 데이터에 저장되어야 하는 데이터에 미러링된 메모리를 할당한다. 그러므로 이 방법은 제한된 미러링된 메모리의 이용 효율을 보장한다.

Description

메모리 할당 방법 및 장치{MEMORY ALLOCATION METHOD AND DEVICE}
본 발명은 컴퓨터 기술 분야에 관한 것이며, 특히 메모리 할당 방법 및 장치에 관한 것이다.
메모리 신뢰도는 컴퓨터 시스템의 신뢰도에 큰 영향을 준다. 그러므로 메모리 신뢰도는 높아야 한다. 현재, 메모리 신뢰도를 높이기 위해 종래기술에서는 일반적으로 메모리 미러링이 사용되고 있다.
메모리 미러링(Mirroring Memory)의 작동 원리 기술은 다음과 같다: 2 메모리 영역이 하드웨어적으로 계획된다. 한 영역은 프라이머리 메모리로 사용되고, 다른 영역은 미러링된 메모리로 사용된다. 실행될 때, 운영체제는 메모리에 2 복사본의 데이터를 만들고, 이것들은 프라이머리 메모리와 미러링된 메모리에 각각 저장된다. 그러므로 메모리 내의 데이터에 대해, 2세트의 완전한 백업 데이터가 존재한다. 완전한 메모리 미러링은 메모리 내의 모든 데이터에 대한 복사본이 존재한다는 것을 요구한다. 서버 시스템이 정상적으로 실행되면, 원래의 것이 사용된다. 하나의 복사본의 호스트가 실패하면, 다른 복사본이 대신 사용된다. 이 방식에서, 메모리 채널 장애에 의해 생기는 데이터 손실이 효과적으로 회피되며, 서버 신뢰도가 크게 높아진다. 그렇지만, 이 기능을 실행하는 데는 이중 물리 메모리가 필요하고, 실제의 용량 활용률도 50%에 불과하다. 매우 높은 비용으로 인해, 실제로 완전한 메모리 미러링을 사용하는 제품이 거의 없다.
종래 기술에서, 부분적인 메모리 미러링 기술이 나타난다. 이 기술은 컴퓨터 시스템에서 메모리의 일부(예를 들어, 메모리 주소의 수 개의 세그먼트 중 하나의 세그먼트의 영역)를 미러링된 메모리로 사용할 수 있다. 그렇지만, 종래 기술에서, 미러링된 메모리는 하드웨어 계층에만 존재하고, 운영체제는 하드웨어 계층을 인식하지 못한다. 하드웨어 계층에서의 미러링된 메모리가 변하면, 그 미러링된 메모리는 운영체제에서 정확하게 발견될 수 없고, 결과적으로 데이터는 미러링된 메모리에 정확하게 저장될 수 없다. 또한, 미러링된 메모리의 크기는 제한되어 있다. 미러링된 메모리를 데이터에 할당할 때, 컴퓨터 시스템은 먼저 생성된 데이터에만 미러링된 메모리를 할당한다. 미러링된 메모리가 완전하게 복사된 후, 미러링된 데이터에 할당되어야 하는 다른 데이터에 미러링된 데이터가 할당되지 않는다.
운영체제가 미러링된 메모리의 변화를 인식할 수 없고 미러링된 메모리의 크기가 제한되어 있는 경우에는 미러링된 메모리가 할당되어야 하는 데이터에 그 미러링된 메모리를 할당할 수 없는 종래기술과 비교해서, 본 발명의 실시예에서 제공하는 메모리 할당 방법은 미러링된 메모리를 정확하게 발견할 수 있고, 미러링된 메모리에 저장되어야 하는 데이터에 그 미러링된 메모리를 할당한다. 이 방법은 제한된 미러링된 메모리의 이용 효율을 보장하고 시스템 신뢰도를 높인다. 본 발명의 실시예는 대응하는 장치를 추가로 제공한다.
본 발명의 제1 관점은 컴퓨터 시스템에 적용되는 메모리 할당 방법을 제공하며, 상기 방법은 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리(mirrored memory)를 포함하고, 운영체제가 실행될 때, 상기 메모리 할당 방법은:
초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하는 단계 - 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 - ;
메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계; 및
상기 데이터가 미러링된 메모리에 저장되어야 하는 데이터인 것으로 검출할 때, 상기 미점유 미러링된 메모리 중에서 상기 미러링된 메모리에 저장되어야 하는 데이터에 미러링된 메모리를 할당하는 단계
를 포함한다.
제1 관점을 참조해서, 제1 가능한 실시 방식에서, 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계 이전에, 상기 메모리 할당 방법은:
커널 데이터 및 중요 사용자 데이터에 대한 미러 식별자를 설정하는 단계
를 더 포함하며,
상기 중요 사용자 데이터는 미러링된 스토리지를 필요로 하는 사용자 지정 데이터이며,
상기 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계는:
상기 메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는지를 검출하는 단계
를 포함하며,
상기 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계는:
상기 메모리 할당을 필요로 하는 데이터가 상기 미러 식별자를 반송하는 것으로 검출될 때, 상기 메모리 할당을 필요로 하는 데이터가 커널 데이터 또는 중요 사용자 데이터인 것으로 결정하고, 미점유 미러링된 메모리로부터, 커널 데이터 또는 중요 사용자 데이터에 미러링된 메모리를 할당하는 단계
를 포함한다.
제1 관점의 제1 가능한 실시 방식을 참조해서, 제2 가능한 실시 방식에서, 상기 메모리 할당 방법은:
상기 메모리 할당을 필요로 하는 데이터가 상기 중요 사용자 데이터일 때, 상기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하는 단계 - 상기 동일한 프로세스의 데이터는 상기 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 상기 중요 사용자 데이터 이전에 생성된 데이터임 - ; 및
상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않으면, 상기 동일한 프로세스의 데이터를 상기 미러링된 메모리로 이전시키는 단계
를 더 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제2 가능한 실시 방식을 참조해서, 제3 가능한 실시 방식에서, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계는:
미러링된 메모리에 저장될 데이터가 속하는 미리 계획된 메모리 리소스 영역을 결정하는 단계; 및
미러링된 메모리에 저장될 데이터가 속하는 미리 계획된 메모리 리소스 영역의 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계
를 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제2 가능한 실시 방식을 참조해서, 제4 가능한 실시 방식에서, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계 이후에, 상기 메모리 할당 방법은:
상기 미러링된 메모리에 저장될 데이터에 할당되는 상기 미러링된 메모리의 주소 범위에 대해 점유 플래그를 설정하는 단계
를 더 포함한다.
본 발명의 제2 관점은 메모리 할당 장치를 제공하며, 상기 메모리 할당 장치는 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함하고, 상기 메모리 할당 장치는:
초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하도록 구성되어 있는 획득 유닛 - 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 - ;
메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하도록 구성되어 있는 검출 유닛; 및
상기 검출 유닛(202)이 상기 데이터가 상기 미러링된 메모리에 저장될 데이터인 것으로 검출할 때, 상기 획득 유닛(201)에 의해 획득된 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 할당 유닛
을 포함한다.
제2 관점을 참조해서, 제1 가능한 실시 방식에서, 상기 메모리 할당 장치는:
검출 유닛이 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하기 전에 커널 데이터 및 중요 사용자 데이터에 대해 미러 식별자를 설정하도록 구성되어 있는 제1 설정 유닛
을 더 포함하며, 상기 중요 사용자 데이터는 미러링된 스토리지를 필요로 하는 사용자 지정 데이터이며,
상기 검출 유닛은 메모리 할당을 필요로 하는 데이터가 제1 설정 유닛(204)에 의해 설정된 미러 식별자를 반송하는지를 검출하도록 구성되어 있으며,
상기 할당 유닛은 상기 검출 유닛이 메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는 것을 검출할 때, 메모리 할당을 필요로 하는 데이터가 커널 데이터 또는 중요 사용자 데이터인 것으로 결정하고, 미점유 미러링된 메모리로부터, 커널 데이터 또는 중요 사용자 데이터에 미러링된 메모리를 할당하도록 구성되어 있다.
제2 관점의 제1 가능한 실시 방식을 참조해서, 제2 가능한 실시 방식에서, 상기 메모리 할당 장치는:
상기 메모리 할당을 필요로 하는 데이터가 상기 중요 사용자 데이터일 때, 상기 초기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하도록 구성되어 있는 결정 유닛 - 상기 동일한 프로세스의 데이터는 상기 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 상기 중요 사용자 데이터 이전에 생성된 데이터임 - ; 및
상기 결정 유닛이 상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않은 것으로 결정하면, 상기 동일한 프로세스의 데이터를 상기 초기 미러링된 메모리로 이전시키도록 구성되어 있는 이전 유닛
을 더 포함한다.
제2 관점 또는 제2 관점의 제1 또는 제2 가능한 실시 방식을 참조해서, 제3 가능한 실시 방식에서, 상기 할당 유닛은:
미러링된 메모리에 저장될 데이터가 속하는 미리 계획된 메모리 리소스 영역을 결정하도록 구성되어 있는 결정 서브유닛; 및
상기 결정 서브유닛에 의해 결정되고 데이터가 속하는 미리 계획된 메모리 리소스 영역의 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 할당 서브유닛
을 포함한다.
제2 관점 또는 제2 관점의 제1 또는 제2 가능한 실시 방식을 참조해서, 제4 가능한 실시 방식에서,
상기 할당 유닛이 미러링된 메모리를 할당한 후, 상기 미러링된 메모리에 저장될 데이터에 할당되는 상기 미러링된 메모리의 주소 범위에 대한 점유 플래그를 설정하도록 구성되어 있는 제2 설정 유닛
을 더 포함한다.
본 발명의 실시예는 메모리 할당 방법을 제공한다. 이 방법은 컴퓨터 시스템에 적용되고, 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템 BOIS, 및 운영체제 OS를 포함하며, 여기서 메모리 리소스는 초기 미러링된 메모리를 포함한다. 운영체제가 실행되면, 이 방법은: 초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하는 단계 - 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 - ; 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계; 및 상기 데이터가 미러링된 메모리에 저장되어야 하는 데이터인 것으로 검출할 때, 상기 미점유 미러링된 메모리 중에서 상기 미러링된 메모리에 저장되어야 하는 데이터에 미러링된 메모리를 할당하는 단계를 포함한다. 운영체제가 메모리의 변화를 인식할 수 없고 미러링된 메모리의 크기가 제한되어 있는 경우에는 미러링된 메모리가 할당되어야 하는 데이터에 그 미러링된 메모리를 할당할 수 없는 종래기술과 비교해서, 본 발명의 실시예에서 제공하는 메모리 할당 방법에서는, BOIS가 미러링된 메모리 주소 범위를 OS에 제공하기 때문에, 이 방법은 미러링된 메모리를 정확하게 발견할 수 있고, 미러링된 메모리에 저장되어야 하는 데이터에 그 미러링된 메모리를 할당한다. 그러므로 이 방법은 제한된 미러링된 메모리의 이용 효율을 보장하고 시스템 신뢰도를 높인다.
본 발명의 실시예의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예를 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템의 아키텍처에 대한 개략도이다.
도 2는 본 발명의 실시예에 따른 메모리 할당 방법에 대한 개략도이다.
도 3은 본 발명의 실시예에 따른 메모리 할당 장치에 대한 개략도이다.
도 4는 본 발명의 다른 실시예에 따른 메모리 할당 장치에 대한 개략도이다.
도 5는 본 발명의 다른 실시예에 따른 메모리 할당 장치에 대한 개략도이다.
도 6은 본 발명의 다른 실시예에 따른 메모리 할당 장치에 대한 개략도이다.
도 7은 본 발명의 다른 실시예에 따른 메모리 할당 장치에 대한 개략도이다.
도 8은 본 발명의 다른 실시예에 따른 메모리 할당 장치에 대한 개략도이다.
본 발명의 실시예는 미러링된 메모리를 정확하게 발견할 수 있고 미러링된 메모리에 저장되어야 하는 데이터에 미러링된 메모리를 할당하는 메모리 할당 방법을 제공한다. 그러므로 이 방법에 따르면 제한된 미러링된 메모리의 이용 효율이 보장되고 시스템 신뢰도가 높아진다. 본 발명의 실시예는 대응하는 장치 및 시스템을 추가로 제공한다. 이하에 개별적으로 상세하게 설명한다.
당업자가 본 발명의 기술적 솔루션을 더 잘 이해하도록 하기 위해, 이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다. 본 발명의 실시예에 기초하여 당업자가 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있다.
도 1을 참조하면, 본 발명의 실시예에서 제공하는 컴퓨터 시스템 아키텍처는 하드웨어 리소스 계층, 기본 입력/출력 시스템(basic input/output system, BOIS), 운영체제(operating system, 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) ...
미러로 마킹된 주소 범위에 대응하는 메모리가 미러링된 메모리이다. 본 발명의 이 실시예에서, 미러링된 메모리의 주소 범위는 (1M ~ 1G), (12G ~ 13G), (24G ~ 25G), 및 (36G ~ 37G)이다.
운영체제는 BIOS가 보고하는 메모리 정보에 따라 미러링된 메모리 관리 구역(mirrored memory management zone, MIRROR ZONE)을 생성할 수 있다. MIRROR ZONE은 미러링된 메모리 영역을 추적하고 관리하는 데 사용되며, 그 조직 방식은 정상 메모리 관리 구역의 조직 방식과 같다. 복수의 MIRROR ZONE가 있을 수 있으며, 복수의 MIRROR ZONE는 ZONE List를 구성한다. 예를 들어, 본 발명의 이 실시예의 미러링된 메모리에 있어서는, 4개의 MIRROR ZONE:(1M ~ 1G), (12G ~ 13G), (24G ~ 25G), 및 (36G ~ 37G)가 있을 수 있으며, 순차적으로 MIRROR_ZONE1, MIRROR_ZONE2, MIRROR_ZONE3, 및 MIRROR_ZONE4로 번호가 매겨질 수 있다. 비 균일 메모리 액세스(non-uniform memory access, NUMA) 아키텍처에 따라, 48G 메모리는 4개의 노드: (0M ~ 12G), (13G ~ 24G), (25G ~ 36G), 및 (37G ~ 48G)로 분할될 수 있다. 미러링된 메모리를 할당하는 동안, 로컬 노드의 미러링된 메모리가 우선적으로 할당되어, 노드 간 메모리 액세스에 의해 생기는 긴 지연이 방지된다.
메모리가 커널 데이터에 할당되면, 미러링된 메모리를 커널에 우선적으로 할당하기 위한 식별자로서 새로운 식별자 __GFP_MIRROR를 사용할 수 있다. 메모리가 사용자 데이터에 할당되면, 미러링된 메모리를 우선적으로 할당하기 위해 __GFP_MIRROR를 지정할 수 있거나, 또는 커널은 미러링된 메모리가 커널에 디폴트로 우선적으로 할당될 수 있도록 설정될 수 있다. 예를 들어, GFP_KERNEL의 디폴트 값이 변하면, 미러링된 메모리는 다음과 같이 디폴트로 우선적으로 할당된다:
#define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_MIRROR)
미러링된 메모리를 커널 데이터에 우선적으로 할당하는 프로세스는 다음과 같다:
(1) 시작되면, OS는 미러링된 메모리를 우선적으로 할당하기 위한 기능이 지원되는지를 결정한다(BIOS에 의해 보고된 메모리 분배 다이어그램 내에 MIOORO 유형의 메모리가 존재하면, 그 기능이 지원된다는 것을 나타낸다).
(2) 그 기능이 지원되면, OS는 BIOS에 의해 보고된 메모리 정보에 따라 하나 이상의 MIRROR ZONE을 생성하고, 이 하나 이상의 MIRROR ZONE을 모든 모드의 ZONE 리스트에 부가하며, 이에 따라 각 노드는 MIRROR ZONE에서 메모리 할당을 수행하는 것을 선택할 수 있다.
(3) alloc_pages()는 가장 기본적인 페이지 할당자이고, 모든 메모리 할당은 페이지 할당자에 의해 최종적으로 완료된다. 페이지 할당자는 지정된 페이지 구역(ZONE)에 하나 이상의(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) 프로세스의 MIRROR_FIRST 식별자가 /proc 인터페이스 또는 시스템 호출을 사용하여 설정되며, 이에 따라 프로세스의 메모리 할당 동안, 미러링된 메모리가 우선적으로 할당된다.
(2) 한편, 이전에 할당된 정상 메모리 내의 데이터는 미러링된 메모리로 이전된다.
도 2를 참조하면, 본 발명의 실시예는 메모리 할당 방법을 제공한다.
메모리 할당 방법은 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함한다. 운영체제가 실행될 때, 상기 메모리 할당 방법은:
101. 초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하며, 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리이다.
102. 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행한다.
103. 상기 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당한다.
본 발명의 이 실시예는 메모리 할당 방법을 제공한다. 이 방법은 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함한다. 운영체제가 실행될 때, 상기 메모리 할당 방법은: 초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하는 단계 - 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 - ; 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계; 및 상기 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계를 포함한다. 운영체제가 메모리의 변화를 인식할 수 없고 미러링된 메모리의 크기가 제한되어 있는 경우에는 미러링된 메모리가 할당되어야 하는 데이터에 그 미러링된 메모리를 할당할 수 없는 종래기술과 비교해서, 본 발명의 실시예에서 제공하는 메모리 할당 방법에서는, BOIS가 미러링된 메모리 주소 범위를 OS에 제공하기 때문에, 이 방법은 미러링된 메모리를 정확하게 발견할 수 있고, 미러링된 메모리에 저장되어야 하는 데이터에 그 미러링된 메모리를 할당한다. 그러므로 이 방법은 제한된 미러링된 메모리의 이용 효율을 보장하고 시스템 신뢰도를 높인다.
선택적으로, 도 2에 대응하는 실시예에 기초해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 방법의 제1 선택 실시 방법에서, 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계 이전에, 상기 메모리 할당 방법은:
커널 데이터 및 중요 사용자 데이터에 대한 미러 식별자를 설정하는 단계
를 더 포함하며,
상기 중요 사용자 데이터는 미러링된 스토리지를 필요로 하는 사용자 지정 데이터이며,
상기 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계는,
상기 메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는지를 검출하는 단계
를 포함할 수 있으며,
상기 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계는,
상기 메모리 할당을 필요로 하는 데이터가 상기 미러 식별자를 반송하는 것으로 검출될 때, 상기 메모리 할당을 필요로 하는 데이터가 커널 데이터 또는 중요 사용자 데이터인 것으로 결정하고, 미점유 미러링된 메모리로부터, 커널 데이터 또는 중요 사용자 데이터에 미러링된 메모리를 할당하는 단계
를 포함할 수 있다.
본 발명의 이 실시예에서, 미러링된 메모리가 모든 커널 데이터에 할당된다. 사용자 데이터에 있어서, 설정은 사용자의 요구에 따라 수행될 수 있다. 사용자가 데이터의 특정한 유형이 중요 사용자 데이터인 것으로 지정하면, 미러 식별자는 이러한 유형의 데이터에 대해 설정되며, 미러링된 메모리는 이러한 유형의 데이터에 할당된다.
선택적으로, 제1 선택적 실시 방식에 기초해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 방법의 제2 선택적 실시 방식에서, 상기 방법은:
메모리 할당을 필요로 하는 데이터가 중요 사용자 데이터일 때, 초기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하는 단계 - 상기 동일한 프로세스의 데이터는 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 중요 사용자 데이터 이전에 생성된 데이터임 - ; 및
상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않으면, 상기 동일한 프로세스의 데이터를 상기 초기 미러링된 메모리로 이전시키는 단계
를 더 포함할 수 있다.
본 발명의 이 실시예는 진행 중인 프로세스에 대해 미러 플래그가 설정되어 있는 경우를 위한 것이다. 예를 들어, 사용자가 Word 문서를 편집 중이다. 문서의 일부가 편집된 후, 사용자는 Word 문서가 중요 사용자 데이터라고 지정한다. 따라서, 이 Word 문서에서 편집된 부분의 데이터에는 정상적인 메모리가 할당된다. 사용자가 Word 문서를 중요 사용자 데이터로 지정한 후에 편집된 부분의 경우에는, 미러링된 메모리가 할당된다. 이러한 방식으로, 정상 메모리의 이전 데이터가 미러링된 메모리로 이전될 수도 있다.
선택적으로, 도 2에 대응하는 실시예 또는 임의의 선택적 실시 방식에 기초해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 방법의 제3 선택 실시 방법에서, 상기 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계는:
상기 미러링된 메모리에 저장될 데이터가 속하는 미리 계획된 메모리 리소스 영역을 결정하는 단계; 및
상기 데이터가 속하는 미리 계획된 메모리 리소스 영역의 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계
를 포함할 수 있다.
본 발명의 이 실시예는 미러링된 메모리가 서로 다른 NUMA 노드에 분배되는 경우를 위한 것이다. 미러링된 메모리는 국부 노드 내에 할당되어, 노드 간 메모리 액세스에 의해 생기는 긴 지연이 방지될 수 있다.
선택적으로, 도 2에 대응하는 실시예 또는 임의의 선택적 실시 방식에 기초해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 방법의 제4 선택 실시 방법에서, 상기 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계 후, 상기 방법은:
상기 미러링된 메모리에 저장될 데이터에 할당되는 미러링된 메모리의 주소 범위에 대해 점유 플래그를 설정하는 단계
를 더 포함할 수 있다.
본 발명의 이 실시예에서, 미러링된 메모리가 점유된 후, 점유 미러링된 메모리의 주소 범위에 대해 플래그가 설정된다. 이 방법에서, 메모리 할당이 수행될 때, 미점유 미러링된 메모리가 신속하게 발견될 수 있다.
도 3을 참조하면, 본 발명의 n 실시예는 메모리 할당 장치(20)를 제공한다. 이 장치는 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함한다. 운영체제가 실행될 때, 상기 장치(20)는:
초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하도록 구성되어 있는 획득 유닛(201) - 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 - ;
메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하도록 구성되어 있는 검출 유닛(202); 및
상기 검출 유닛(202)이 상기 데이터가 상기 미러링된 메모리에 저장될 데이터인 것으로 검출할 때, 상기 획득 유닛(201)에 의해 획득된 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 할당 유닛(203)
을 포함할 수 있다.
본 발명의 이 실시예는 메모리 할당 장치를 제공한다. 이 장치는 컴퓨터 시스템에 적용되며, 상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함한다. 운영체제가 실행될 때, 상기 장치(20)는: 획득 유닛(201)은 초기 미러링된 메모리 내의 미점유 미러링된 메모리를 획득하며, 상기 초기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리이며, 검출 유닛(202)은 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하며, 할당 유닛(203)은 검출 유닛(202)이 상기 데이터가 상기 미러링된 메모리에 저장될 데이터인 것으로 검출할 때, 획득 유닛(201)에 의해 획득된 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당한다. 운영체제가 메모리의 변화를 인식할 수 없고 미러링된 메모리의 크기가 제한되어 있는 경우에는 미러링된 메모리가 할당되어야 하는 데이터에 그 미러링된 메모리를 할당할 수 없는 종래기술과 비교해서, 본 발명의 실시예에서 제공하는 메모리 할당 방법에서는, BOIS가 미러링된 메모리 주소 범위를 OS에 제공하기 때문에, 이 장치는 미러링된 메모리를 정확하게 발견할 수 있고, 미러링된 메모리에 저장되어야 하는 데이터에 그 미러링된 메모리를 할당한다. 그러므로 이 방법은 제한된 미러링된 메모리의 이용 효율을 보장하고 시스템 신뢰도를 높인다.
선택적으로, 도 3에 대응하는 실시예에 기초해서, 도 4를 참조해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 장치의 다른 실시 빙식에서, 장치(20)는:
검출 유닛(202)이 메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하기 전에 커널 데이터 및 중요 사용자 데이터에 대해 미러 식별자를 설정하도록 구성되어 있는 제1 설정 유닛(204)
을 더 포함하며,
상기 중요 사용자 데이터는 미러링된 스토리지를 필요로 하는 사용자 지정 데이터이며,
상기 검출 유닛(202)은 메모리 할당을 필요로 하는 데이터가 제1 설정 유닛(204)에 의해 설정된 미러 식별자를 반송하는지를 검출하도록 구성되어 있으며,
상기 할당 유닛(203)은 상기 검출 유닛(202)이 메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는 것을 검출할 때, 메모리 할당을 필요로 하는 데이터가 커널 데이터 또는 중요 사용자 데이터인 것으로 결정하고, 미점유 미러링된 메모리로부터, 커널 데이터 또는 중요 사용자 데이터에 미러링된 메모리를 할당하도록 구성되어 있다.
선택적으로, 도 4에 대응하는 실시예에 기초해서, 도 5를 참조해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 장치의 다른 실시 빙식에서, 장치(20)는:
메모리 할당을 필요로 하는 데이터가 설정 유닛(204)에 의해 설정된 중요 사용자 데이터일 때, 초기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하도록 구성되어 있는 결정 유닛(205) - 상기 동일한 프로세스의 데이터는 상기 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 상기 중요 사용자 데이터 이전에 생성된 데이터임 - ; 및
상기 결정 유닛(205)이 상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않은 것으로 결정하면, 상기 동일한 프로세스의 데이터를 상기 초기 미러링된 메모리로 이전시키도록 구성되어 있는 이전 유닛(204)
을 더 포함한다.
선택적으로, 도 3에 대응하는 실시예에 기초해서, 도 6을 참조해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 장치의 다른 실시 방식에서, 할당 유닛(203)은:
메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 리소스 영역을 결정하도록 구성되어 있는 결정 서브유닛(2031); 및
상기 결정 서브유닛(2021)에 의해 결정되고 상기 데이터가 속하는 미리 계획된 메모리 리소스 영역의 미점유 미러링된 메모리로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 할당 서브유닛(2032)
을 포함한다.
선택적으로, 도 3에 대응하는 실시예에 기초해서, 도 7을 참조해서, 본 발명의 이 실시예에서 제공하는 메모리 할당 장치의 다른 실시 빙식에서, 장치(20)은:
할당 유닛(203)이 미러링된 메모리를 할당한 후, 미러링된 메모리에 저장될 데이터에 할당되는 미러링된 메모리의 주소 범위에 대해 점유 플래그를 설정하도록 구성되어 있는 제2 설정 유닛(207)
을 더 포함한다.
도 8은 본 발명의 다른 실시예에 따른 메모리 할당 장치(40)에 대한 개략도이다. 메모리 할당 장치(40)는 입력/출력 장치(410), 프로세서(430), 및 메모리(440)를 포함할 수 있다.
메모리(440)는 리드-온리 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서(430)에 명령 및 데이터를 제공한다. 메모리(440)의 일부는 비휘발성 랜덤 액세스 메모리(non-volatile random access memory, 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)는 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적회로(application-specific integrated circuit, ASIC), 또는 다른 프로그래머블 논리 장치, 이산 게이트 또는 트랜지스터 논리 장치, 또는 이산 하드웨어 컴포넌트일 수 있다. 프로세서는 본 발명의 실시예에서 설명된 방법, 단계 및 논리 블록도를 실행 또는 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나 프로세서는 임의의 종래 프로세서 등일 수 있다. 본 발명의 실시예를 참조해서 설명된 방법의 단계는 하드웨어 디코딩 프로세서에 의해 직접 실행되거나 수행될 수도 있고, 디코딩 프로세서 내의 하드웨어 모듈과 소프트웨어 모듈의 조합을 사용해서 실행 및 수행될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리, 플래시 메모리, 리드-온리 메모리, 프로그래머블 리드-온리 메모리, 전기적으로 소거 가능한 프로그래머블 메모리, 또는 레지스터와 같이 당업계에 많이 보급된 스토리지 매체 내에 위치할 수 있다.
선택적으로, 프로세서(430)는: 커널 데이터 및 중요 사용자 데이터에 대해 미러 식별자를 설정하고 - 중요 사용자 데이터는 미러링된 스토리지를 필요로 하는 사용자 지정 데이터임 - ; 메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는지를 검출하고, 메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는 것으로 검출할 때, 메모리 할당을 필요로 하는 데이터가 커널 데이터 또는 중요 사용자 데이터인 것으로 결정하며, 미점유 미러링된 메모리로부터, 커널 데이터 또는 중요 사용자 데이터에 미러링된 메모리를 할당하도록 추가로 구성되어 있다.
선택적으로, 프로세서(430)는: 메모리 할당을 필요로 하는 데이터가 중요 사용자 데이터일 때, 초기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하며 - 상기 동일한 프로세스의 데이터는 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 중요 사용자 데이터 이전에 생성된 데이터임 - ; 상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않으면, 상기 동일한 프로세스의 데이터를 상기 초기 미러링된 메모리로 이전시키도록 추가로 구성되어 있다.
선택적으로, 프로세서(430)는 구체적으로: 미러링된 메모리에 저장될 데이터가 속하는 미리 계획된 메모리 리소스 영역을 결정하고, 데이터가 속하는 미리 계획된 메모리 리소스 영역의 미점유 미러링된 메모리로부터, 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있다.
선택적으로, 프로세서(430)는: 미러링된 메모리가 미점유 미러링된 메모리로부터 미러링된 메모리에 저장될 데이터에 할당된 후, 미러링된 메모리에 저장될 데이터에 할당되는 미러링된 메모리의 주소 범위에 대해 점유 플래그를 설정하도록 추가로 구성되어 있다.
당업자라면 실시예에서의 방법의 단계 중 일부 또는 전부가 관련 하드웨어에 명령을 내리는 프로그램에 의해 실행될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터 판독 가능형 저장 매체에 저장될 수 있다. 저장 매체는 ROM, RAM, 자기디스크 또는 광디스크를 포함할 수 있다.
본 발명의 실시예에서 제공하는 방법, 장치, 및 시스템을 갱신하는 매체 스트림 정보에 대해서는 위에서 상세히 설명하였다. 본 발명의 원리 및 실행 방식에 대해서는 특정한 예를 통해 여기서 설명하였다. 실시예에 관한 설명은 단지 본 발명의 방법 및 핵심 개념을 이해하는 데 도움을 주기 위해 제공된 것에 불과하다. 또한, 당업자는 본 발명의 개념에 따라 특정한 실행 방식 및 애플리케이션 범위와 관련해서 본 발명에 대해 변형 및 수정을 행할 수 있다. 그러므로 명세서의 내용은 본 발명에 대한 제한으로서 파악되서는 안 된다.

Claims (15)

  1. 컴퓨터 시스템에 적용되는 메모리 할당 방법으로서,
    상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(basic input/output system, BOIS) 및 운영체제(operating system, OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리(mirrored memory)를 포함하고, 운영체제가 실행될 때, 상기 메모리 할당 방법은,
    메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송(搬送)하는지를 검출하는 단계 - 상기 미러 식별자는 커널 데이터 및 중요 사용자 데이터에 설정되고, 상기 중요 사용자 데이터는 사용자 데이터 중에서 미러링된 스토리지를 필요로 하는 사용자 지정 데이터임 - ; 및
    상기 메모리 할당을 필요로 하는 데이터가 상기 미러 식별자를 반송하는 것으로 검출될 때, 미러링된 메모리의 미점유 부분으로부터, 상기 메모리 할당을 필요로 하는 데이터에 메모리를 할당하는 단계 - 상기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 -
    를 포함하는 메모리 할당 방법.
  2. 제1항에 있어서,
    상기 메모리 할당을 필요로 하는 데이터가 상기 중요 사용자 데이터일 때, 상기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하는 단계 - 상기 동일한 프로세스의 데이터는 상기 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 상기 중요 사용자 데이터 이전에 생성된 데이터임 - ; 및
    상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않으면, 상기 동일한 프로세스의 데이터를 상기 미러링된 메모리로 이전시키는 단계
    를 더 포함하는 메모리 할당 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 미러링된 메모리의 미점유 부분으로부터, 상기 메모리 할당을 필요로 하는 데이터에 메모리를 할당하는 단계는,
    상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 리소스 영역을 결정하는 단계 - 상기 각각의 영역은 미러링된 메모리의 하나 이상의 세그먼트에 대응함 - ; 및
    상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 리소스 영역에 대응하는 미러링된 메모리의 미점유 부분으로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계
    를 포함하는, 메모리 할당 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 할당된 미러링된 메모리의 주소 범위에 대해 점유 플래그를 설정하는 단계
    를 더 포함하는 메모리 할당 방법.
  5. 컴퓨터 시스템에 적용되는 메모리 할당 장치로서,
    상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함하고, 상기 메모리 할당 장치는,
    메모리 할당을 필요로 하는 데이터가 미러 식별자를 반송하는지를 검출하도록 구성되어 있는 검출 유닛 - 상기 미러 식별자는 커널 데이터 및 중요 사용자 데이터에 설정되고, 상기 중요 사용자 데이터는 사용자 데이터 중에서 미러링된 스토리지를 필요로 하는 사용자 지정 데이터임 - ; 및
    상기 메모리 할당을 필요로 하는 데이터가 상기 미러 식별자를 반송하는 것으로 검출될 때, 미러링된 메모리의 미점유 부분으로부터, 상기 메모리 할당을 필요로 하는 데이터에 메모리를 할당하도록 구성되어 있는 할당 유닛 - 상기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리임 -
    을 포함하는 메모리 할당 장치.
  6. 제5항에 있어서,
    상기 메모리 할당을 필요로 하는 데이터가 상기 중요 사용자 데이터일 때, 상기 초기 미러링된 메모리에 동일한 프로세스의 데이터가 저장되어 있는지를 결정하도록 구성되어 있는 결정 유닛 - 상기 동일한 프로세스의 데이터는 상기 중요 사용자 데이터를 생성하는 동일한 프로세스에 의해 상기 중요 사용자 데이터 이전에 생성된 데이터임 - ; 및
    상기 결정 유닛이 상기 동일한 프로세스의 데이터가 상기 미러링된 메모리에 저장되어 있지 않은 것으로 결정하면, 상기 동일한 프로세스의 데이터를 상기 초기 미러링된 메모리로 이전시키도록 구성되어 있는 이전 유닛
    을 더 포함하는 메모리 할당 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 할당 유닛은,
    상기 메모리 할당을 필요로 하는 데이터가 상기 미러 식별자를 반송하는 것으로 검출될 때, 상기 메모리 할당을 필요로 하는 데이터에 대응하는 미리 계획된 메모리 리소스 영역을 결정하도록 구성되어 있는 결정 서브유닛 - 상기 각각의 영역은 미러링된 메모리의 하나 이상의 세그먼트에 대응함 - ; 및
    상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 리소스 영역에 대응하는 미러링된 메모리의 미점유 부분으로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 할당 서브유닛
    을 포함하는, 메모리 할당 장치.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 할당된 미러링된 메모리의 주소 범위에 대한 점유 플래그를 설정하도록 구성되어 있는 제2 설정 유닛
    을 더 포함하는 메모리 할당 장치.
  9. 컴퓨터 시스템에 적용되는 메모리 할당 방법으로서,
    상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함하고, 운영체제가 실행될 때, 상기 메모리 할당 방법은,
    메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하는 단계; 및
    상기 메모리 할당을 필요로 하는 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 상기 메모리 할당을 필요로 하는 데이터에 대응하는 미리 계획된 메모리 영역을 결정하고, 상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 영역에 대응하는 미러링된 메모리의 하나 이상의 세그먼트의 미점유 부분으로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계
    를 포함하며,
    상기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리인, 메모리 할당 방법.
  10. 제9항에 있어서,
    상기 메모리 할당을 필요로 하는 데이터에 대응하는 미리 계획된 메모리 영역을 결정하고, 상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 영역에 대응하는 미러링된 메모리의 하나 이상의 세그먼트의 미점유 부분으로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하는 단계는,
    상기 메모리 할당을 필요로 하는 데이터에 대응하는 노드를 결정하고, 상기 메모리 할당을 필요로 하는 데이터에 대응하는 노드의 미러링된 메모리의 미점유 부분으로부터, 상기 메모리 할당을 필요로 하는 데이터에 미러링된 메모리를 할당하는 단계
    를 포함하는, 메모리 할당 방법.
  11. 제10항에 있어서,
    모든 노드는 비 균일 메모리 액세스(non-uniform memory access, NUMA) 아키텍처에 따라 계획되며, 각 노드는 미러링된 메모리의 하나 이상의 세그먼트를 포함하는, 메모리 할당 방법.
  12. 컴퓨터 시스템에 적용되는 메모리 할당 장치로서,
    상기 컴퓨터 시스템은 메모리 리소스, 기본 입력/출력 시스템(BOIS) 및 운영체제(OS)를 포함하며, 상기 메모리 리소스는 초기 미러링된 메모리를 포함하고, 상기 메모리 할당 장치는,
    메모리 할당을 필요로 하는 데이터에 대한 검출을 수행하도록 구성되어 있는 유닛; 및
    상기 메모리 할당을 필요로 하는 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 상기 메모리 할당을 필요로 하는 데이터에 대응하는 미리 계획된 메모리 영역을 결정하고, 상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 영역에 대응하는 미러링된 메모리의 하나 이상의 세그먼트의 미점유 부분으로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 유닛
    을 포함하며,
    상기 미러링된 메모리는 OS를 초기화하는 동안 BOIS가 OS에 제공하는 미러링된 메모리 주소 범위에 의해 지시되는 미러링된 메모리인, 메모리 할당 장치.
  13. 제12항에 있어서,
    상기 메모리 할당을 필요로 하는 데이터가 미러링된 메모리에 저장될 데이터인 것으로 검출될 때, 상기 메모리 할당을 필요로 하는 데이터에 대응하는 미리 계획된 메모리 영역을 결정하고, 상기 메모리 할당을 필요로 하는 데이터가 속하는 미리 계획된 메모리 영역에 대응하는 미러링된 메모리의 하나 이상의 세그먼트의 미점유 부분으로부터, 상기 미러링된 메모리에 저장될 데이터에 미러링된 메모리를 할당하도록 구성되어 있는 유닛은,
    상기 메모리 할당을 필요로 하는 데이터에 대응하는 노드를 결정하고, 상기 메모리 할당을 필요로 하는 데이터에 대응하는 노드의 미러링된 메모리의 미점유 부분으로부터, 상기 메모리 할당을 필요로 하는 데이터에 미러링된 메모리를 할당하도록 구성되어 있는, 메모리 할당 장치.
  14. 제13항에 있어서,
    모든 노드는 비 균일 메모리 액세스(NUMA) 아키텍처에 따라 계획되며, 각 노드는 미러링된 메모리의 하나 이상의 세그먼트를 포함하는, 메모리 할당 장치.
  15. 제14항에 있어서,
    미러링된 메모리의 각각의 세그먼트는 미러링된 메모리 관리 구역(mirrored memory management zone, MIRROR ZONE)에 의해 추적되고 관리되며, 각 노드는 하나 이상의 MIRROR ZONE에 대응하는, 메모리 할당 장치.
KR1020177004358A 2014-09-16 2015-09-16 메모리 할당 방법 및 장치 KR101996975B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20170031230A true KR20170031230A (ko) 2017-03-20
KR101996975B1 KR101996975B1 (ko) 2019-07-05

Family

ID=52187342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177004358A KR101996975B1 (ko) 2014-09-16 2015-09-16 메모리 할당 방법 및 장치

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220025645A (ko) * 2020-08-24 2022-03-03 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 메모리 액세스 요청 스케줄링 방법, 장치, 기기 및 저장 매체

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252419B (zh) 2014-09-16 2017-09-19 华为技术有限公司 一种内存分配的方法及装置
CN106648938B (zh) * 2016-12-30 2021-01-12 苏州浪潮智能科技有限公司 一种Linux系统应用程序内存管理方法及系统
CN107704399B (zh) * 2017-08-16 2021-01-29 华为技术有限公司 一种存储数据的方法和装置
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
JP7500400B2 (ja) * 2020-11-18 2024-06-17 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US11734176B2 (en) * 2021-10-27 2023-08-22 Dell Products L.P. Sub-NUMA clustering fault resilient memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199478A (ja) * 2008-02-25 2009-09-03 Hitachi Ltd メモリミラーリング自動構成制御方式
JP2011186563A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置およびメモリ管理方法
JP2012043246A (ja) * 2010-08-20 2012-03-01 Canon Inc 情報処理装置、情報処理装置の制御方法、及び、プログラム

Family Cites Families (27)

* 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
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
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
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系统平台上指定地址范围分配物理内存的方法
US8151138B2 (en) * 2008-10-31 2012-04-03 Dell Products L.P. Redundant memory architecture management methods and systems
CN101937400B (zh) * 2009-06-29 2012-07-25 联想(北京)有限公司 管理热备份内存的方法和电子设备
CN101604263A (zh) 2009-07-13 2009-12-16 浪潮电子信息产业股份有限公司 一种实现操作系统核心代码段多副本运行的方法
CN102473140B (zh) 2009-07-17 2015-05-13 株式会社东芝 存储器管理装置
US8090977B2 (en) * 2009-12-21 2012-01-03 Intel Corporation Performing redundant memory hopping
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 西安交通大学 基于代码段多副本对比机制提高程序可靠性方法
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 华为技术有限公司 多线程访问多副本的方法和装置
US8898408B2 (en) * 2011-12-12 2014-11-25 Dell Products L.P. Memory controller-independent memory mirroring
US9037903B2 (en) 2012-12-28 2015-05-19 Intel Corporation Apparatus and method for partial memory mirroring
CN103136110B (zh) * 2013-02-18 2016-03-30 华为技术有限公司 内存管理方法、内存管理装置及numa系统
CN103198028B (zh) 2013-03-18 2015-12-23 华为技术有限公司 一种内存数据迁移方法、装置及系统
CN103324582A (zh) * 2013-06-17 2013-09-25 华为技术有限公司 一种内存迁移方法、装置及设备
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199478A (ja) * 2008-02-25 2009-09-03 Hitachi Ltd メモリミラーリング自動構成制御方式
JP2011186563A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置およびメモリ管理方法
JP2012043246A (ja) * 2010-08-20 2012-03-01 Canon Inc 情報処理装置、情報処理装置の制御方法、及び、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220025645A (ko) * 2020-08-24 2022-03-03 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 메모리 액세스 요청 스케줄링 방법, 장치, 기기 및 저장 매체

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101996975B1 (ko) 메모리 할당 방법 및 장치
US8578369B2 (en) Managing memory in multiple virtual machines
WO2018010654A1 (zh) 一种虚拟机热迁移的方法、装置及系统
US10025503B2 (en) Autonomous dynamic optimization of platform resources
US20200045116A1 (en) System and method for intent-based service deployment
CN103198028A (zh) 一种内存数据迁移方法、装置及系统
US20160266923A1 (en) Information processing system and method for controlling information processing system
BR112016014367B1 (pt) Método de processamento de recurso, sistema operacional, e dispositivo
US10310986B1 (en) Memory management unit for shared memory allocation
JP2007115246A (ja) ソフトウェアによって使用される資源を動的に割り当てるための方法及び装置
WO2012131507A1 (en) Running a plurality of instances of an application
JP2017227969A (ja) 制御プログラム、システム、及び方法
US10430221B2 (en) Post-copy virtual machine migration with assigned devices
US20170277632A1 (en) Virtual computer system control method and virtual computer system
US10061528B2 (en) Disk assignment for multiple distributed computing clusters in a virtualized computing environment
US10228859B2 (en) Efficiency in active memory sharing
US20240028361A1 (en) Virtualized cache allocation in a virtualized computing system
US11714753B2 (en) Methods and nodes for handling memory
US20220100667A1 (en) Methods and devices for controlling memory handling
BR112017001965B1 (pt) Método de alocação de memória, aparelho e sistema de computador
KR102055617B1 (ko) 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템
CN111352703A (zh) 一种数据处理的方法及装置、电子设备、存储介质
JP2013206454A (ja) 情報処理装置、装置管理方法および装置管理プログラム
JPWO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant