KR101097777B1 - 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체 - Google Patents

하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체 Download PDF

Info

Publication number
KR101097777B1
KR101097777B1 KR1020100010818A KR20100010818A KR101097777B1 KR 101097777 B1 KR101097777 B1 KR 101097777B1 KR 1020100010818 A KR1020100010818 A KR 1020100010818A KR 20100010818 A KR20100010818 A KR 20100010818A KR 101097777 B1 KR101097777 B1 KR 101097777B1
Authority
KR
South Korea
Prior art keywords
memory
virtual machine
hybrid
physical
allocated
Prior art date
Application number
KR1020100010818A
Other languages
English (en)
Other versions
KR20110091134A (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 한국과학기술원
Priority to KR1020100010818A priority Critical patent/KR101097777B1/ko
Publication of KR20110091134A publication Critical patent/KR20110091134A/ko
Application granted granted Critical
Publication of KR101097777B1 publication Critical patent/KR101097777B1/ko

Links

Images

Classifications

    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with 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/0653Monitoring storage devices or systems
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)

Abstract

본 발명은 컴퓨터 시스템에 관한 것이다.
본 발명에 따른 컴퓨터 시스템은 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하는 컴퓨터 시스템에 관한 것으로, NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 갖고, 하이브리드 메모리에 대한 접근 요청을 처리하는 하나 이상의 가상 머신, 및 가상 머신이 하이브리드 메모리에 접근할 수 있도록 하고, 가상 머신 상에 할당된 물리 메모리와 하이브리드 메모리 간의 주소 변환을 통해 가상 머신이 휘발성 메모리 및 비휘발성 메모리 중 어느 메모리에 접근할지를 결정하는 가상 머신 관리부를 포함하고, 가상 머신 관리부는, 가상 머신 상에 NUMA 컴퓨터 구조를 구성하는 가상 머신 관리 모듈; 및 가상 머신 관리 모듈을 이용하여, 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 휘발성 메모리로 매핑하고, 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 비휘발성 메모리로 매핑하는 주소 매핑 테이블을 포함한다.

Description

하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체{A METHOD, SYSTEM AND COMPUTER READABLE MEDIA FOR MANAGING HYBRID MEMORY}
하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체에 관한 것이다.
일반적으로 메인 메모리로서 사용 가능한 DRAM 및 비휘발성 메모리는 메모리 자체의 물리적인 특성이 다르기 때문에, 컴퓨터 시스템에서 사용하는 메모리의 종류에 따라서 시스템의 성능, 전력 소비, 및 내구성 면에서 각각 장단점을 갖는다.
이와 같이 물리적 특성이 서로 다른 두 메모리에 대한 단점을 해결하기 위해 종래에는 휘발성 메모리와 비휘발성 메모리를 하이브리드 방식으로 구성하는 방법이 제안되었다. 특히, 플래시 메모리와 같은 비휘발성 메모리는 블록 단위의 지움(erase) 연산이 필요하기 때문에, 바이트 단위로 데이터를 액세스 할 수 없다. 이러한 문제를 해결하기 위해 종래에는, SRAM 버퍼와 비휘발성 메모리 관리 모듈 등을 이용하여 비휘발성 메모리 인터페이스를 기존의 메모리 인터페이스로 변환 가능하도록 하여 사용하는 방법이 제안되었다. 그러나, 워드 단위로 CPU의 직접 접근 가능한 메모리의 경우 종래의 인터페이스 변환 방식의 사용이 불필요하다.
또한, 종래에는 특성이 서로 다른 메모리를 관리하는 문제를 해결하기 위한 방법이 제안되었다. 이러한 방법은 복수의 프로세서와 복수의 메모리가 존재하는 상황에서 메모리를 관리하는 방법에 관한 것으로, 복수의 프로세서가 접근하는 메모리의 위치에 따라 메모리를 관리하는 방법을 제안한 것이다.
또한, 종래에는 복수의 컴퓨터 시스템이 네트워크로 연결된 상황에서 시스템의 자원을 관리하는 방법이 제안되었다. 이러한 방법은 가상의 NUMA(Non-Uniform Memory Access) 머신을 실행하여 NUMA 구조에서 동작하는 운영체제를 통해 자원을 관리하는 방법을 제안한 것이다.
본 발명의 목적은, 물리적 특성이 서로 다른 메모리를 포함하는 하이브리드 메모리를 관리하기 위한 관리방법, 시스템 및 프로그램을 포함하는 컴퓨터 판독 가능 매체를 제공하는 것이다.
본 발명에 따른 컴퓨터 시스템은 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하는 컴퓨터 시스템에 관한 것으로, NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 갖고, 하이브리드 메모리에 대한 접근 요청을 처리하는 하나 이상의 가상 머신, 및 가상 머신이 하이브리드 메모리에 접근할 수 있도록 하고, 가상 머신 상에 할당된 물리 메모리와 하이브리드 메모리 간의 주소 변환을 통해 가상 머신이 휘발성 메모리 및 비휘발성 메모리 중 어느 메모리에 접근할지를 결정하는 가상 머신 관리부를 포함한다.
가상 머신 관리부는,
가상 머신 상에 NUMA 컴퓨터 구조를 구성하는 가상 머신 관리 모듈, 및 가상 머신 관리 모듈을 이용하여, 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 휘발성 메모리로 매핑하고, 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 비휘발성 메모리로 매핑하는 주소 매핑 테이블을 포함하는 것이 바람직하다.
가상 머신 관리부는,
휘발성 메모리 및 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하고,
워크로드 특성이 변화하는 경우, 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받고,
메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환을 수행하고,
메모리 페이지 교환을 수행할 경우,
교환될 메모리 페이지들과 각각 매핑되어 있는 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하고,
중복된 메모리 페이지가 없는 경우, 메모리 페이지 교환 요청에 대한 처리를 수행하는 것이 바람직하다.
가상 머신 관리부는,
휘발성 메모리 및 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하고,
워크로드 특성이 변화하는 경우, 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받고,
메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환을 수행하고,
메모리 페이지 교환을 수행할 경우, 교환될 메모리 페이지들과 각각 매핑되어 있는 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하고,
중복된 메모리 페이지가 있는 경우, 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 하나만 남은 메모리 페이지의 해당 주소로 매핑하는 것이 바람직하다.
본 발명에 따른 하이브리드 메모리 관리방법은 컴퓨터 시스템 상에서 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하기 위한 방법에 관한 것으로, 하나 이상의 가상 머신을 구동하는 단계, 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 휘발성 메모리로 매핑하고, 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 비휘발성 메모리로 매핑하는 가상 머신 상에 NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 구성하는 단계, 및 가상 머신 상에 할당된 물리 메모리와 하이브리드 메모리 간의 주소 변환을 이용하여 가상 머신을 통해 하이브리드 메모리에 대한 접근 요청을 처리하는 단계를 포함한다.
휘발성 메모리 및 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계, 워크로드 특성이 변화하는 경우, 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계, 및 메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 포함하고,
메모리 페이지 교환 단계는,
교환될 메모리 페이지들과 각각 매핑되어 있는 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계, 및 중복된 메모리 페이지가 없는 경우, 메모리 페이지 교환 요청에 대한 처리를 수행하는 단계를 포함하는 것이 바람직하다.
휘발성 메모리 및 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계, 워크로드 특성이 변화하는 경우, 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계, 및 메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 포함하고,
메모리 페이지 교환 단계는,
교환될 메모리 페이지들과 각각 매핑되어 있는 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계, 및 중복된 메모리 페이지가 있는 경우, 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 하나만 남은 메모리 페이지의 해당 주소로 매핑하는 단계를 포함하는 것이 바람직하다.
본 발명에 따른 컴퓨터 판독 가능 매체는 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 매체로, 프로그램은, 하나 이상의 가상 머신을 구동하는 단계, 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 휘발성 메모리로 매핑하고, 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 비휘발성 메모리로 매핑하는 가상 머신 상에 NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 구성하는 단계, 및 가상 머신 상에 할당된 물리 메모리와 하이브리드 메모리 간의 주소 변환을 이용하여 가상 머신을 통해 하이브리드 메모리의 접근 요청을 처리하는 단계를 수행한다.
프로그램은,
휘발성 메모리 및 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계, 워크로드 특성이 변화하는 경우, 가상 머신 상에 할당된 물리 메모리 영역에 대하여 메모리 페이지 할당 요청을 받는 단계, 및 메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 수행하고,
메모리 페이지 교환을 수행할 경우,
교환될 메모리 페이지들과 각각 매핑되어 있는 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계, 및 중복된 메모리 페이지가 없는 경우, 메모리 페이지 교환 요청에 대한 처리를 수행하는 단계를 수행하는 것이 바람직하다.
프로그램은,
휘발성 메모리 및 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계, 워크로드 특성이 변화하는 경우, 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계, 및 메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 수행하고,
메모리 페이지 교환을 수행할 경우,
교환될 메모리 페이지들과 각각 매핑되어 있는 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계, 및 중복된 메모리 페이지가 있는 경우, 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 하나만 남은 메모리 페이지의 해당 주소로 매핑하는 단계를 수행하는 것이 바람직하다.
본 발명에 따르면, 운영체제와 응용 프로그램의 수정 없이 기존의 NUMA 인터페이스를 활용하여 하이브리드 메모리를 효율적으로 관리할 수 있다.
또한, 컴퓨터 시스템의 워크로드 특성에 맞도록 동적으로 메모리 페이지를 할당, 회수 및 이동하여 메모리 접근 성능과 내구성을 최적화함과 동시에 메모리 관리에 있어 전력소모를 최소화할 수 있다.
도 1는 하이브리드 메모리 관리를 위한 본 발명의 실시예에 따른 컴퓨터 시스템의 구성을 나타낸 도면.
도 2는 본 발명의 실시예에 따른 컴퓨터 시스템에서 하이브리드 메모리 접근방법을 설명하기 위해 나타낸 도면.
도 3는 본 발명의 실시예에 따른 가상 머신 상에 할당된 물리 메모리 영역을 NUMA 컴퓨터 구조를 이용하여 관리하는 방법을 설명하기 위해 나타낸 도면.
도 4는 메모리 페이지 교환 요청 시 하이브리드 메모리 상에서 중복되는 메모리 페이지를 공유하는 방법을 설명하기 위해 나타낸 도면.
도 5는 본 발명의 실시예에 따른 하이브리드 메모리 관리방법을 설명하기 위해 나타낸 흐름도.
이하 본 발명의 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다. 다만, 첨부된 도면은 본 발명의 내용을 보다 쉽게 개시하기 위하여 설명되는 것일 뿐, 본 발명의 범위가 첨부된 도면의 범위로 한정되는 것이 아님은 이 기술분야의 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
[컴퓨터 시스템]
도 1는 하이브리드 메모리(110) 관리를 위한 본 발명의 실시예에 따른 컴퓨터 시스템(100)의 구성을 나타낸 도면이다.
도 1를 참조하면, 본 발명에 따른 컴퓨터 시스템(100)은 하나 이상의 가상 머신(Virtual Machine, VM)(120a, 120b) 및 가상 머신 관리부(150)를 포함한다.
본 발명에 따른 컴퓨터 시스템(100)은 하나 이상의 가상 머신(120a, 120b)을 구동한다. 가상 머신(120a, 120b) 상에는 각각 가상의 NUMA(Non-Uniform Memory Access) 컴퓨터 구조(130a, 130b)가 구성된다. 여기서 가상 머신은 운영체제가 가상의 하드웨어 구조를 소프트웨어적으로 인식할 수 있도록 구성된 시스템 가상 머신을 의미한다. 이러한 시스템 가상 머신의 예로는 Vmware, Xen 등이 있다.가상 머신 관리부(150)는 가상 머신(120a, 120b)을 통해 하이브리드 메모리(110)에 접근(access)할 수 있도록 한다. 또한, 가상 머신 관리부(150)는 가상 머신(120a, 120b) 상에 할당된 물리 메모리(140a, 140b)와, 하이브리드 메모리(110) 간의 주소 변환을 이용하여 휘발성 메모리(101) 및 비휘발성 메모리(103) 중 어느 메모리에 접근할지를 결정할 수 있다. 하이브리드 메모리(110)는 휘발성 메모리(101) 및 비휘발성 메모리(103)이 결합하여 구성된 메모리를 의미한다. 하이브리드 메모리(110)는 하나 이상의 휘발성 메모리(101) 및 하나 이상의 비휘발성 메모리(103)를 포함할 수도 있다. 이러한 하이브리드 메모리(110)는 컴퓨터 시스템(100)에서 메인 메모리로서 사용될 수 있다.
이러한 가상 머신 관리부(150)는 가상 머신 관리 모듈(151) 및 주소 매핑 테이블(153)을 포함한다.
가상 머신 관리 모듈(151)은 실제 컴퓨터 시스템의 하드웨어 구조와 상관없이 가상 머신(120a, 120b)마다 가상의 NUMA(Non-Uniform Memory Access) 컴퓨터 구조(130a, 130b)를 구성한다.
주소 매핑 테이블(153)은 가상 머신 관리 모듈(151)을 이용하여 가상의 NUMA 컴퓨터 구조(130a, 130b) 상에서의 메모리 접근 요청을 하이브리드 메모리(110)로 매핑해 주는 역할을 한다.
도 2는 본 발명의 실시예에 따른 컴퓨터 시스템(100)에서 하이브리드 메모리(110) 접근 방법을 설명하기 위해 나타낸 도면이다.
가상 머신(120a, 120b, 120c) 상의 응용 프로그램은 하이브리드 메모리(110)에 접근하기 위하여 먼저, 운영체제(121a, 121b, 121c)를 통해 가상 머신(120a, 120b, 120c)에 할당된 물리 메모리 영역(140a, 140b, 140c)에 접근한다. 여기서 물리 메모리 영역(140a, 140b, 140c)은 물리 메모리 주소(Physical memory address)를 통해 접근될 수 있다.
반면, 하이브리드 메모리(110)는, CPU 코어(10)가 동일한 메모리 인터페이스를 통하여 휘발성 메모리(101)와 비휘발성 메모리(103)에 모두를 접근할 수 있도록, 동일한 머신 메모리 주소(Machine memory address)에 매핑되어 있다.
따라서, 주소 매핑 테이블(153)은 가상 머신(120a, 120b, 120c)에 할당된 물리 메모리 주소를 하이브리드 메모리(110)의 머신 메모리 주소로 매핑하고, 물리 메모리 주소와 머신 메모리 주소 간의 주소 변환(Address translation)을 통해 실제 하이브리드 메모리(110)에 접근 할 수 있도록 한다. 또한, 주소 매핑 테이블(153)에 의해 물리 메모리 주소가 매핑되는 위치에 따라 응용 프로그램이 휘발성 메모리(101)와 비휘발성 메모리(103) 중 어느 메모리에 접근 할 지가 결정될 수 있다.
도 3는 본 발명의 실시예에 따른 가상 머신 상에 할당된 물리 메모리 영역을 가상의 NUMA 컴퓨터 구조를 이용하여 관리하는 방법을 설명하기 위해 나타낸 도면이다.
가상 머신 관리부(150)는 주소 매핑 테이블(153)을 이용하여, 가상 머신(120a, 120b) 상에 할당된 물리 메모리 영역(140a, 140b) 중 지역 메모리 영역(140a)을, 하이브리드 메모리(110)에서 실제 접근 속도가 빠른 DRAM과 같은 휘발성 메모리(101)로 매핑한다. 또한, 가상 머신(120a, 120b) 상에 할당된 물리 메모리 영역(140a, 140b) 중 원격 메모리 영역(141b)을, 하이브리드 메모리(110)에서 휘발성 메모리(101)보다 상대적으로 접근 속도가 느린 비휘발성 메모리(103)로 매핑한다.
실제, NUMA 컴퓨터 구조 상에서 메모리가 CPU에 물리적으로 얼마나 가까이 있느냐에 따라 메모리 접근 속도가 달라지게 된다. CPU에 가까이 있는 메모리 즉 CPU와 같은 노드 상에 있는 메모리를 지역 메모리(140a)라 부르고, CPU와 멀리 있는 메모리 즉 CPU와 같은 노드 상에 있지 않은 메모리를 원격 메모리(141b)라 부른다. 여기서 원격 메모리(141b)는 외부 메모리라고 부르기도 한다. 하드웨어 상에서 여러 메모리 모듈이 존재하는 경우, NUMA 구조를 사용하여 메모리를 관리할 수 있는데, 이때 공유 메모리 즉 물리 메모리를 추가해서 모든 데이터 액세스가 주버스 상에서 움직이지 않도록 하여 메모리 접근 속도를 빠르게 한다. 또한, 물리 메모리는 물리적으로 CPU에 근접한 버스를 통해 접근되므로 빠른 접근 속도를 가질 수 있도록 한다. 이하 가상의 NUMA 컴퓨터 구조에서 하나의 CPU와 지역 메모리 세트를 지역 NUMA 노드라고 하고, 하나의 CPU와 원격 메모리 세트를 원격 NUMA 노드라고 한다.
본 발명에 따른 컴퓨터 시스템(100)에서 가상의 NUMA 컴퓨터 구조를 기반으로 설계된 운영체제 및 응용 프로그램은, 지역 NUMA 노드에 매핑되어 있는 메모리가 원격 NUMA 노드에 매핑되어 있는 메모리 보다 CPU 코어(10)와 가까운 곳에 위치하기 때문에, 지역 메모리(140a)를 더 빠르게 접근 가능한 것으로 인식하고 관리할 수 있다. 따라서 가상 머신에 할당된 물리 메모리 영역을 가상의 NUMA 컴퓨터 구조로 구현하면, 기존의 운영체제 및 응용 프로그램에 대한 별도의 수정 없이도 지역 NUMA 노드에 매핑된 휘발성 메모리(101)를 원격 NUMA 노드에 매핑된 비휘발성 메모리(103) 보다 접근이 더 빠른 메모리로서 인식할 수 있다. 이에 따라, 운영체제 및 응용 프로그램이 하이브리드 메모리(110)의 성능 특성을 인식함으로써 하이브리드 메모리(110)에 대한 최적화된 관리를 수행할 수 있다.
가상 머신 관리부(150)는 지속적으로 메모리 접근 경향성에 대하여 모니터링 한다. 즉, 가상 머신 관리부(150)는 컴퓨터 시스템에서 어떠한 메모리를 얼마나 자주 접근하는지를 검사하고, 이를 바탕으로 메모리 접근에 대한 워크로드 특성 변화를 판단한다. 가상 머신 관리부(150)는 도 3에 도시된 바와 같이, 컴퓨터 시스템(100)의 워크로드(Workload) 특성이 변화하는 경우, NUMA 노드들 간의 메모리 페이지 할당 요청(20)을 받고, 지역 NUMA 노드의 메모리의 페이지 할당 비율을 조절하거나, 지역 NUMA 노드와 원격 NUMA 노드의 메모리 페이지 교환(30) 등을 통해 실제 휘발성 메모리(101)와 비휘발성 메모리(103) 간의 메모리 페이지 교환(30’)을 수행할 수 있다.
따라서 가상 머신 관리부(150)는 메모리 페이지 할당 요청(20)을 받고, 메모리 페이지 할당 요청(20)에 따라 물리 메모리 영역(141a, 141b)에 할당된 메모리의 양을 조절함으로써, 휘발성 메모리(101) 및 비휘발성 메모리(103)의 메모리 양을 조절할 수 있다. 또한, 가상 머신 관리부(150)는 지역 메모리(141a) 및 원격 메모리(141b) 간의 메모리 페이지 교환(30)을 수행함으로써, 필요에 따라 메모리 페이지를 휘발성 메모리(101) 및 비휘발성 메모리(103)에 저장할 수 있다.
도 4는 메모리 페이지 교환(30) 요청 시 하이브리드 메모리(110) 상에서 중복되는 메모리 페이지를 공유하는 방법을 설명하기 위해 나타낸 도면이다.
운영체제(121a)에서 메모리 페이지 교환(30) 요청이 있을 경우, 가상 머신 관리 모듈(151)은 먼저, 교환될 두 메모리 페이지에 대하여 하이브리드 메모리(110) 상에 내용이 서로 중복되어 있는지를 검사(check)(40)한다. 검사 결과, 하이브리드 메모리(110) 상에 중복된 메모리 페이지가 없는 경우, 메모리 페이지 교환 요청을 처리한다.
그러나 검사 결과 중복된 메모리 페이지가 있는 경우, 하이브리드 메모리(110) 상에 중복된 메모리 페이지를 회수(50)하고, 주소 매핑 테이블(153)을 통해 가상 머신(120a)의 물리 메모리 주소를 각각 하이브리드 메모리(110)에 매핑된 하나의 머신 메모리 주소로 매핑한다. 즉, 하이브리드 메모리(110) 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 하나의 머신 메모리 주소로 매핑한다. 따라서, 가상 머신(120a, 120b)을 통해 서로 다른 두 물리 메모리 주소로 접근하더라도 하이브리드 메모리(110) 상의 같은 머신 메모리 주소로 접근하게 된다. 이에 따라, 하이브리드 메모리(110) 상에서 중복되는 메모리 페이지를 공유할 수 있게 된다.
따라서, 컴퓨터 시스템의 워크로드 특성이 변화하는 경우, 기존의 운영체제의 수정 없이 메모리 페이지를 동적으로 할당, 회수 및 이동하는 방식으로 하이브리드 메모리(110)를 효율적으로 관리할 수 있다.
본 발명에 따르면, 컴퓨터 시스템 상에서 실제 하드웨어가 NUMA 구조를 취하지 않고 있더라도 가상 머신 관리부를 통해 가상적으로 NUMA 머신을 구성할 수 있다. 또한, 실제 하드웨어 상에서의 메모리가 서로 다른 메모리 즉 하이브리드 메모리로 구성된 경우, 가상의 NUMA 구조를 통하여 관리할 수 있다.
상술한 바와 같은 본 발명에 따른 컴퓨터 시스템(100)이, 휘발성 메모리와 비휘발성 메모리로 구성된 하이브리드 메모리, 및 다수의 CPU 코어를 관리하기 위한 프로그램을 포함하는 소프트웨어로서 구현될 수 있다는 것은 당업자에게 자명할 것이다.
[하이브리드 메모리 관리방법]
도 5는 도 1 내지 도 4를 통해 상술한 컴퓨터 시스템을 이용하여 하이브리드 메모리를 관리하는 방법(s200)을 설명하기 위해 나타낸 흐름도이다.
도 5를 참조하면, 본 발명에 따른 하이브리드 메모리 관리방법(s200)은 가상 머신을 구동하는 단계(s210), 가상 머신 상에 NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 구성하는 단계(s220), 하이브리드 메모리의 접근 요청 처리 단계(s230)를 포함한다.
이하 도 1 내지 도 4를 결부하여 도 5에 도시된 본 발명에 따른 하이브리드 메모리 관리방법(s200)에 관하여 상세히 설명한다.
먼저, 가상 머신을 구동하는 단계(s210)에서는 본 발명에 따른 컴퓨터 시스템을 이용하여 하나 이상의 가상 머신을 구동시킨다.
다음, NUMA 컴퓨터 구조를 구성하는 단계(s220)에서는 가상 머신 상에 각각 가상의 NUMA 컴퓨터 구조를 구성한다. s220 단계에서는 가상 머신 상에 할당된 물리 메모리와, 하이브리드 메모리 간의 주소 변환을 이용하여 가상 머신을 통해 하이브리드 메모리에 접근(access)할 수 있도록 한다.
가상 머신 상의 응용 프로그램이 하이브리드 메모리에 접근하기 위하여 먼저, 운영체제를 통해 가상 머신에 할당된 물리 메모리 영역에 접근하도록 한다. 여기서 물리 메모리 영역은 물리 메모리 주소(Physical memory address)를 통해 접근할 수 있다. 반면, 하이브리드 메모리는, CPU 코어가 동일한 메모리 인터페이스를 통하여 휘발성 메모리와 비휘발성 메모리에 모두를 접근할 수 있도록, 동일한 머신 메모리 주소(Machime memory address)에 매핑되어 있다.
따라서 s220 단계에서는 가상 머신에 할당된 물리 메모리 주소를 하이브리드 메모리의 머신 메모리 주소로 매핑하고, 물리 메모리 주소와 머신 메모리 주소 간의 주소 변환(Address translation)을 통해 실제 하이브리드 메모리에 접근 할 수 있도록 한다.
이와 같이, s220 단계에서는 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리 영역을, 하이브리드 메모리에서 실제 접근 속도가 빠른 DRAM과 같은 휘발성 메모리로 매핑한다. 또한, 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리 영역을, 하이브리드 메모리에서 휘발성 메모리보다 상대적으로 접근 속도가 느린 비휘발성 메모리로 매핑한다. 가상의 NUMA 컴퓨터 구조를 기반으로 설계된 운영체제 및 응용 프로그램은, 지역 NUMA 노드에 매핑되어 있는 메모리가 원격 NUMA 노드에 매핑되어 있는 메모리 보다 CPU 코어와 가까운 곳에 위치하기 때문에, 지역 메모리를 더 빠르게 접근 가능한 것으로 인식하고 관리할 수 있다. 따라서 가상 머신에 할당된 물리 메모리 영역을 가상의 NUMA 컴퓨터 구조로 구현하면, 기존의 운영체제 및 응용 프로그램에 대한 별도의 수정 없이도 지역 NUMA 노드에 매핑된 휘발성 메모리를 원격 NUMA 노드에 매핑된 비휘발성 메모리 보다 접근이 더 빠른 메모리로서 인식할 수 있다.
이에 따라, s220 단계를 통하여, 운영체제 및 응용 프로그램이 하이브리드 메모리의 성능 특성을 인식함으로써 하이브리드 메모리에 대한 최적화된 관리를 수행할 수 있다.
다음, 하이브리드 메모리의 접근 요청 처리 단계(s230)에서는, s210 및 s220 단계를 기반으로 구성된 가상 머신을 이용하여 하이브리드 메모리에 대한 접근 요청을 처리한다.
다음, 워크로드 특성 변화를 판단하는 단계(s240)에서는, 메모리 접근 경향성에 대하여 지속적으로 모니터링 하면서 어떠한 메모리를 얼마나 자주 접근하는지를 바탕으로 워크로드 특성 변화를 판단한다. s240 단계를 통한 판단 결과, 컴퓨터 시스템의 워크로드(Workload) 특성 변화하는 경우, NUMA 노드들 간의 메모리 페이지 할당 요청을 받고, 지역 NUMA 노드의 메모리의 페이지 할당 비율을 조절(s242)할 수 있다. 보다 구체적으로, 메모리 페이지 할당 요청(s241)을 받게 되면, 메모리 페이지 할당 요청에 따라 물리 메모리 영역에 할당된 메모리의 양을 조절함으로써, 휘발성 메모리 및 비휘발성 메모리의 메모리 양을 조절할 수 있다(s242).
또한, 필요에 따라 지역 NUMA 노드와 원격 NUMA 노드의 메모리 페이지 교환 등을 통해 실제 휘발성 메모리와 비휘발성 메모리 간의 메모리 페이지 교환을 수행할 수 있다. 보다 구체적으로, 운영체제에서 메모리 페이지 교환 요청(s243)이 있을 경우 필요에 따라, 교환될 두 메모리 페이지에 대하여 하이브리드 메모리 상에 내용이 서로 중복되어 있는지를 검사(check)한다(s244). 검사 결과, 하이브리드 메모리 상에 중복된 메모리 페이지가 없는 경우, 메모리 페이지 교환 요청에 대하여 처리한다(s245). 이와 같이, 지역 메모리 및 원격 메모리 간의 메모리 페이지 교환 요청 처리 단계(s245)를 수행함으로써, 필요에 따라 메모리 페이지를 휘발성 메모리 및 비휘발성 메모리에 저장할 수 있다.
반면, 검사 결과 중복된 메모리 페이지가 있는 경우, 하이브리드 메모리 상에 중복된 메모리 페이지를 회수(s246)하고, 가상 머신의 물리 메모리 주소를 각각 하이브리드 메모리에 매핑된 하나의 머신 메모리 주소로 매핑한다(s247). 즉, 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 하나의 머신 메모리 주소로 매핑한다. 따라서, 가상 머신을 통해 서로 다른 두 물리 메모리 주소로 접근하더라도 하이브리드 메모리 상의 같은 머신 메모리 주소로 접근하게 된다. 이에 따라, 하이브리드 메모리 상에서 중복되는 메모리 페이지를 공유할 수 있게 된다.
따라서, 컴퓨터 시스템의 워크로드 특성이 변화하는 경우, 기존의 운영체제의 수정 없이 메모리 페이지를 동적으로 할당, 회수 및 이동하는 방식으로 하이브리드 메모리를 효율적으로 관리할 수 있다
상술한 바와 같이, 휘발성 메모리(예를 들어 워드 단위로 접근 가능한 DRAM)과 비휘발성 메모리를 결합하여 구성된 하이브리드 메인 메모리를 갖는 컴퓨터 시스템, 및 하이브리드 메모리 관리방법에 따르면, 운영체제와 응용 프로그램의 수정 없이 기존의 NUMA 인터페이스를 활용하여 하이브리드 메모리를 효율적으로 관리할 수 있다.
또한, 컴퓨터 시스템의 워크로드 특성에 맞도록 동적으로 메모리 페이지를 할당, 회수 및 이동하여 메모리 접근 성능과 내구성을 최적화함과 동시에 메모리 관리에 있어 전력소모를 최소화할 수 있다.
따라서, 추가적인 소프트웨어 수정 및 구축 비용을 최소화하고, 같은 용량의 휘발성 메모리(예를 들어 DRAM)만으로 이루어진 시스템과 견주어 성능, 용량, 비용 및 전력 소비 측면에서 이득을 얻을 수 있다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시 될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: CPU 코어
100: 컴퓨터 시스템
110: 하이브리드 메모리
101: 휘발성 메모리
103: 비휘발성 메모리
120a, 120b, 120c: 가상 머신
121a, 121b: 운영체제
130a, 130b: NUMA 컴퓨터 구조
140a, 140b, 140c: 물리 메모리
150: 가상 머신 관리부
151: 가상 머신 관리 모듈
153: 주소 매핑 테이블

Claims (10)

  1. 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하는 시스템에 관한 것으로,
    NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 갖고, 상기 하이브리드 메모리에 대한 접근 요청을 처리하는 하나 이상의 가상 머신; 및
    상기 가상 머신이 상기 하이브리드 메모리에 접근할 수 있도록 하고, 상기 가상 머신 상에 할당된 물리 메모리와 상기 하이브리드 메모리 간의 주소 변환을 통해 상기 가상 머신이 상기 휘발성 메모리 및 상기 비휘발성 메모리 중 어느 메모리에 접근할지를 결정하는 가상 머신 관리부
    를 포함하고,
    상기 가상 머신 관리부는,
    상기 가상 머신 상에 상기 NUMA 컴퓨터 구조를 구성하는 가상 머신 관리 모듈; 및
    상기 가상 머신 관리 모듈을 이용하여, 상기 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 상기 휘발성 메모리로 매핑하고, 상기 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 상기 비휘발성 메모리로 매핑하는 주소 매핑 테이블을 포함하는, 컴퓨터 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 가상 머신 관리부는,
    상기 휘발성 메모리 및 상기 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 상기 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하고, 상기 워크로드 특성이 변화하는 경우, 상기 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받고,
    상기 메모리 페이지 할당 요청에 따라 상기 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 상기 지역 메모리 및 상기 원격 메모리 간의 메모리 페이지 교환을 수행하고,
    상기 메모리 페이지 교환을 수행할 경우, 교환될 메모리 페이지들과 각각 매핑되어 있는 상기 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하고,
    중복된 메모리 페이지가 없는 경우, 상기 메모리 페이지 교환 요청에 대한 처리를 수행하는, 컴퓨터 시스템.
  4. 제1항에 있어서,
    상기 가상 머신 관리부는,
    상기 휘발성 메모리 및 상기 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 상기 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하고,
    상기 워크로드 특성이 변화하는 경우, 상기 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받고,
    상기 메모리 페이지 할당 요청에 따라 상기 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 상기 지역 메모리 및 상기 원격 메모리 간의 메모리 페이지 교환을 수행하고,
    상기 메모리 페이지 교환을 수행할 경우, 교환될 메모리 페이지들과 각각 매핑되어 있는 상기 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하고,
    중복된 메모리 페이지가 있는 경우, 상기 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 상기 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 상기 하나만 남은 메모리 페이지의 해당 주소로 매핑하는, 컴퓨터 시스템.
  5. 컴퓨터 시스템 상에서 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하기 위한 방법에 관한 것으로,
    하나 이상의 가상 머신을 구동하는 단계;
    상기 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 상기 휘발성 메모리로 매핑하고, 상기 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 상기 비휘발성 메모리로 매핑하는 상기 가상 머신 상에 NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 구성하는 단계; 및
    상기 가상 머신 상에 할당된 물리 메모리와 상기 하이브리드 메모리 간의 주소 변환을 이용하여 상기 가상 머신을 통해 상기 하이브리드 메모리에 대한 접근 요청을 처리하는 단계
    를 포함하는 하이브리드 메모리 관리방법.
  6. 제5항에 있어서,
    상기 휘발성 메모리 및 상기 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 상기 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계;
    상기 워크로드 특성이 변화하는 경우, 상기 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계; 및
    상기 메모리 페이지 할당 요청에 따라 상기 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 상기 지역 메모리 및 상기 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 포함하고,
    상기 메모리 페이지 교환 단계는,
    교환될 메모리 페이지들과 각각 매핑되어 있는 상기 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계; 및
    중복된 메모리 페이지가 없는 경우, 상기 메모리 페이지 교환 요청에 대한 처리를 수행하는 단계를 포함하는, 하이브리드 메모리 관리방법.
  7. 제5항에 있어서,
    상기 휘발성 메모리 및 상기 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 상기 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계;
    상기 워크로드 특성이 변화하는 경우, 상기 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계; 및
    상기 메모리 페이지 할당 요청에 따라 상기 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 상기 지역 메모리 및 상기 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 포함하고,
    상기 메모리 페이지 교환 단계는,
    교환될 메모리 페이지들과 각각 매핑되어 있는 상기 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계; 및
    중복된 메모리 페이지가 있는 경우, 상기 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 상기 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 상기 하나만 남은 메모리 페이지의 해당 주소로 매핑하는 단계를 포함하는, 하이브리드 메모리 관리방법.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리를 관리하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 매체로,
    상기 프로그램은,
    하나 이상의 가상 머신을 구동하는 단계;
    상기 가상 머신 상에 할당된 물리 메모리 영역 중 지역 메모리를 상기 휘발성 메모리로 매핑하고, 상기 가상 머신 상에 할당된 물리 메모리 영역 중 원격 메모리를 상기 비휘발성 메모리로 매핑하는 상기 가상 머신 상에 NUMA(Non-Uniform Memory Access) 컴퓨터 구조를 구성하는 단계; 및
    상기 가상 머신 상에 할당된 물리 메모리와 상기 하이브리드 메모리 간의 주소 변환을 이용하여 상기 가상 머신을 통해 상기 하이브리드 메모리에 대한 접근 요청을 처리하는 단계
    를 수행하는 컴퓨터 판독 가능 매체.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서,
    상기 프로그램은,
    상기 휘발성 메모리 및 상기 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 상기 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계;
    상기 워크로드 특성이 변화하는 경우, 상기 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계; 및
    상기 메모리 페이지 할당 요청에 따라 상기 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 상기 지역 메모리 및 상기 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 수행하고,
    상기 메모리 페이지 교환을 수행할 경우,
    교환될 메모리 페이지들과 각각 매핑되어 있는 상기 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계; 및
    중복된 메모리 페이지가 없는 경우, 상기 메모리 페이지 교환 요청에 대한 처리를 수행하는 단계를 수행하는, 컴퓨터 판독 가능 매체.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서,
    상기 프로그램은,
    상기 휘발성 메모리 및 상기 비휘발성 메모리의 접근 경향성에 대하여 모니터링하고, 모니터링하여 얻어진 데이터를 기반으로 상기 컴퓨터 시스템의 워크로드 특성이 변화하는지를 판단하는 단계;
    상기 워크로드 특성이 변화하는 경우, 상기 가상 머신 상에 할당된 물리 메모리 영역에 대한 메모리 페이지 할당 요청을 받는 단계; 및
    상기 메모리 페이지 할당 요청에 따라 상기 물리 메모리 영역에 할당된 메모리의 양을 조절하거나, 상기 지역 메모리 및 상기 원격 메모리 간의 메모리 페이지 교환을 수행하는 단계를 더 수행하고,
    상기 메모리 페이지 교환을 수행할 경우,
    교환될 메모리 페이지들과 각각 매핑되어 있는 상기 하이브리드 메모리 상의 메모리 페이지들이 서로 중복되어 있는지를 체크하는 단계; 및
    중복된 메모리 페이지가 있는 경우, 상기 하이브리드 메모리 상에 중복된 메모리 페이지를 하나만 남도록 삭제하고, 상기 교환될 메모리 페이지들에 대한 각각의 물리 메모리 주소를 상기 하나만 남은 메모리 페이지의 해당 주소로 매핑하는 단계를 수행하는, 컴퓨터 판독 가능 매체.
KR1020100010818A 2010-02-05 2010-02-05 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체 KR101097777B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100010818A KR101097777B1 (ko) 2010-02-05 2010-02-05 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100010818A KR101097777B1 (ko) 2010-02-05 2010-02-05 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체

Publications (2)

Publication Number Publication Date
KR20110091134A KR20110091134A (ko) 2011-08-11
KR101097777B1 true KR101097777B1 (ko) 2011-12-23

Family

ID=44928616

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100010818A KR101097777B1 (ko) 2010-02-05 2010-02-05 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체

Country Status (1)

Country Link
KR (1) KR101097777B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160042083A (ko) * 2013-08-12 2016-04-18 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101850318B1 (ko) 2011-12-09 2018-04-20 삼성전자주식회사 가상 메모리 관리 장치 및 방법
US9311250B2 (en) * 2011-12-19 2016-04-12 Intel Corporation Techniques for memory de-duplication in a virtual system
KR101628436B1 (ko) * 2013-02-01 2016-06-09 단국대학교 산학협력단 가상 머신의 데이터 처리 방법
KR101587600B1 (ko) * 2014-02-24 2016-01-22 한국과학기술원 Numa 시스템상에서 가상머신간의 통신방법
CN112015669A (zh) * 2019-05-31 2020-12-01 华为技术有限公司 一种混合内存管理方法及设备
CN114090223A (zh) * 2020-08-24 2022-02-25 北京百度网讯科技有限公司 访存请求调度方法、装置、设备以及存储介质
KR102636910B1 (ko) * 2023-11-21 2024-02-15 주식회사 인텔렉투스 가상 머신을 이용한 엣지 디바이스 및 이를 이용한 데이터 처리 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160042083A (ko) * 2013-08-12 2016-04-18 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들
KR101865260B1 (ko) 2013-08-12 2018-06-08 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들
KR20180064556A (ko) * 2013-08-12 2018-06-14 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들
KR20190091371A (ko) * 2013-08-12 2019-08-05 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들
US10423363B2 (en) 2013-08-12 2019-09-24 Micron Technology, Inc. Apparatuses and methods for configuring I/OS of memory for hybrid memory modules
KR102005855B1 (ko) 2013-08-12 2019-10-08 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들
US10698640B2 (en) 2013-08-12 2020-06-30 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
KR102183479B1 (ko) 2013-08-12 2020-11-27 마이크론 테크놀로지, 인크. 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들
US11379158B2 (en) 2013-08-12 2022-07-05 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US11886754B2 (en) 2013-08-12 2024-01-30 Lodestar Licensing Group Llc Apparatuses and methods for configuring I/Os of memory for hybrid memory modules

Also Published As

Publication number Publication date
KR20110091134A (ko) 2011-08-11

Similar Documents

Publication Publication Date Title
KR101097777B1 (ko) 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체
US10552337B2 (en) Memory management and device
US10114749B2 (en) Cache memory system and method for accessing cache line
US8495318B2 (en) Memory page management in a tiered memory system
US8312201B2 (en) Managing memory allocations loans
US8176282B2 (en) Multi-domain management of a cache in a processor system
US9229751B2 (en) Apparatus and method for managing virtual memory
US8301717B2 (en) Extended virtual memory system and method in a computer cluster
US20160239333A1 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
KR20120068464A (ko) 통합 메모리 서비스를 위한 소프트웨어 구조 및 이 소프트웨어 구조를 이용한 통합 메모리 서비스 제공 방법
US20090182893A1 (en) Cache coherence in a virtual machine managed system
US10430327B2 (en) Virtual machine based huge page balloon support
US10013199B2 (en) Translation bypass by host IOMMU for systems with virtual IOMMU
CN107436798A (zh) 一种基于numa节点的进程访问方法及装置
EP2842032A1 (en) Systems and methods for partitioning of singly linked lists for allocation memory elements
CN115904212A (zh) 数据处理的方法、装置、处理器和混合内存系统
CN114510321A (zh) 资源调度方法、相关装置和介质
US9547590B2 (en) Managing memory
US11150928B2 (en) Hypervisor translation bypass
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US11656905B2 (en) Delegation control based on program privilege level and page privilege level
US8762647B2 (en) Multicore processor system and multicore processor
US20100153974A1 (en) Obtain buffers for an input/output driver
US11687359B2 (en) Hybrid memory management apparatus and method for many-to-one virtualization environment
WO2023241655A1 (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质

Legal Events

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

Payment date: 20141127

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee