KR102589155B1 - 메모리 관리 방법 및 장치 - Google Patents

메모리 관리 방법 및 장치 Download PDF

Info

Publication number
KR102589155B1
KR102589155B1 KR1020177015701A KR20177015701A KR102589155B1 KR 102589155 B1 KR102589155 B1 KR 102589155B1 KR 1020177015701 A KR1020177015701 A KR 1020177015701A KR 20177015701 A KR20177015701 A KR 20177015701A KR 102589155 B1 KR102589155 B1 KR 102589155B1
Authority
KR
South Korea
Prior art keywords
memory
cpu
pool
space
memory space
Prior art date
Application number
KR1020177015701A
Other languages
English (en)
Other versions
KR20170087900A (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 KR20170087900A publication Critical patent/KR20170087900A/ko
Application granted granted Critical
Publication of KR102589155B1 publication Critical patent/KR102589155B1/ko

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

메모리 관리 방법 및 장치가 개시된다. 적어도 하나의 메모리를 풀링하여 메모리 풀을 발생시키는 단계, 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키는 단계, 및 각각의 메모리 공간을 각각의 CPU에 일-대-일 대응 방식으로 할당하는 단계가 수행된다. 더욱, 각각의 CPU에 할당된 각각의 메모리 공간은 각각의 CPU의 고정 메모리로서 설정된다. 부가적으로, 할당되지 않은 메모리 공간을 공유 메모리 풀로서 설정하는 단계, 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하는 단계, 및 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하는 단계가 수행된다. 메모리 값이 사전 설정된 임계 범위를 초과하면 메모리 풀로부터 추가 메모리 공간을 선택하여 각각의 CPU에 할당하는 단계 또는 CPU에 할당된 각각의 메모리 공간의 적어도 일부를 재할당하는 단계가 수행된다.

Description

메모리 관리 방법 및 장치{METHOD AND APPARATUS FOR MEMORY MANAGEMENT}
관련 출원에 대한 상호-참조
본 출원은 2014년 11월 25일자로 출원된 중국 특허 출원 제201410686872.8호의 이익 및 우선권을 주장하며, 그 전체는 참조에 의해 여기에 편입된다.
기술분야
본 발명은 일반적으로는 메모리 관리 분야에 관한 것이고, 더 구체적으로는 컴퓨터 메모리를 관리하기 위한 방법 및 장치에 관한 것이다.
일반적으로는, 단일 서버에서 CPU 프로세서 능력과 메모리 크기 간 고정 비가 있다. CPU 또는 메모리 크기의 능력을 증가시킬 필요가 있을 때, 이러한 프로세스가 수행되는 공통적 방식은 하나 이상의 서버를 추가하는 것이다. 결과로서, 메모리의 크기 또는 CPU의 총 능력에서 증가가 있다. 메모리 공간 또는 CPU 프로세싱 능력을 증가시키기 위해 단순히 부가적 서버를 추가함으로써, 자원의 낭비라고 생각될 수 있는 총 가용 CPU 프로세싱 능력 또는 메모리 사용량의 이용에서의 감소를 초래하는 결과적 초과-용량이 있을 수 있다.
현재, 메모리 또는 CPU의 감소된 사용률은 물론 또한 연관된 자원 낭비의 상기 문제를 다루는데 소프트웨어-기반 솔루션이 이용가능하다. 그러한 소프트웨어-기반 솔루션은 캡슐화의 프로토콜에 의해 서비스 시스템에서 메모리를 관리 및 디스패칭한다.
그렇지만, 현재 솔루션은 결점을 갖는다. 예컨대, 메모리 크기는 메모리 사용량이 복제될 필요가 있을 때 동적 전파를 수행할 수 없다. 더욱, 소프트웨어 레벨에서 캡슐화의 프로토콜의 사용에 기인하여, 서버 시스템에서의 CPU는 이들 프로토콜을 프로세싱하는데 비교적 다량의 메모리를 이용하려는 경향이 있어서, 시간에서 특정량의 지연 및 서버 시스템의 프로세싱 효율에서 감소를 야기한다.
본 발명의 실시형태는 메모리 관리 방법 및 장치를 제공한다. 또한, 본 발명의 실시형태는 더 양호한 메모리 관리 및 CPU 프로세싱 할당을 제공함으로써 관용적 솔루션의 단점을 다룰 기술을 제공한다.
따라서, 본 발명의 일 실시형태는 메모리 관리 방법을 제공한다. 방법은 메모리 풀을 발생시키는 단계, 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키는 단계, 및 각각의 메모리 공간을 각각의 CPU에 일-대-일 대응 방식으로 할당하는 단계를 포함한다. 각각의 메모리 공간은 각각의 CPU의 고정 메모리로서 설정된다. 방법은 할당되지 않은 메모리 공간을 메모리 풀의 공유 메모리 풀로서 설정하는 단계를 더 포함한다. 즉, 할당되지 않은 메모리 공간은 메모리 풀에서 할당되지 않은 채로 있는 메모리 공간을 포함한다. 방법은 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하는 단계 및 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하는 단계를 더 포함한다. 방법은 메모리 값이 사전 설정된 임계 범위를 초과하면 메모리 풀로부터 추가 메모리 공간을 선택하여 각각의 CPU에 할당하는 단계 및/또는 각각의 CPU에 할당된 각각의 메모리 공간의 일부를 재할당하는 단계를 더 포함한다.
본 발명의 다른 실시형태에 의하면, 메모리 관리 디바이스가 제공된다. 디바이스는 메모리 풀을 발생시키기 위한 메모리 풀링 유닛(memory pooling unit)을 포함한다. 디바이스는 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키기 위한 메모리 분할기를 더 포함한다. 또한, 메모리 분할기는 각각의 메모리 공간을 각각의 CPU에 일-대-일 대응 방식으로 할당하도록 동작가능하다. 각각의 메모리 공간은 각각의 CPU의 고정 메모리로서 설정된다. 할당되지 않은 메모리 공간은 메모리 풀의 공유 메모리 풀로서 설정된다. 즉, 할당되지 않은 메모리 공간은 메모리 풀에서 고정 메모리가 아니거나 할당되지 않은 채로 있는 메모리 공간을 포함한다. 디바이스는 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하기 위한 메모리 값 획득 유닛을 더 포함한다. 또한, 디바이스는 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하기 위한 메모리 값 결정 유닛을 포함한다. 디바이스는 메모리 풀로부터 추가 메모리 공간을 선택하여 각각의 CPU에 할당하고 그리고/또는 각각의 CPU에 할당된 각각의 메모리 공간의 적어도 일부를 재할당하기 위한 관리자를 더 포함한다. 메모리 값 결정 유닛은 메모리 값이 사전 설정된 임계 범위를 초과하면 관리자를 개시하도록 동작가능하다.
더욱, 본 발명의 다른 실시형태는 메모리 관리 시스템을 제공한다. 시스템은 적어도 하나의 메모리 풀을 발생시키는 명령어, 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키는 명령어, 및 각각의 메모리 공간을 각각의 CPU에 일-대-일 대응 방식으로 할당하는 명령어를 포함한다. 각각의 메모리 공간은 각각의 CPU의 고정 메모리로서 설정된다. 시스템은 할당되지 않은 메모리 공간을 메모리 풀의 공유 메모리 풀로서 설정하는 명령어를 더 포함한다. 즉, 할당되지 않은 메모리 공간은 메모리 풀에서 할당되지 않은 채로 있는 메모리 공간을 포함한다. 시스템은 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하는 명령어 및 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하는 명령어를 더 포함한다. 시스템은 메모리 값이 사전 설정된 임계 범위를 초과하면 메모리 풀로부터 추가 메모리 공간을 선택하여 각각의 CPU에 할당하는 명령어 및/또는 각각의 CPU에 할당된 각각의 메모리 공간의 적어도 일부를 재할당하는 명령어를 더 포함한다.
본 개요는, 필요에 의해, 단순화, 일반화, 및 상세 생략을 포함한다; 그 결과, 당업자는 본 개요가 예시일 뿐이고 어떠한 식으로도 한정하려는 의도가 아님을 인식할 것이다. 오로지 청구범위에 의해 정의되는 바와 같은 본 발명의 다른 태양, 진보적 특징, 및 이점은 아래에서 제시되는 비-한정적 상세한 설명에서 분명하게 될 것이다.
본 발명의 실시형태는 유사한 참조 기호가 유사한 요소를 가리키는 수반 도면과 함께 취해지는 이하의 상세한 설명을 읽는 것으로부터 더 잘 이해될 것이다.
도 1a는 일 실시형태에 따른 메모리 관리 방법의 순서도,
도 1b는 일 실시형태에 따른 메모리 관리 방법의 순서도, 및
도 2는 일 실시형태에 따른 메모리 관리 장치의 블록 선도.
예가 수반 도면에 예시되어 있는 실시형태를 이제 상세히 참조할 것이다. 본 발명이 실시형태와 함께 설명될 것이기는 하지만, 그것들은 본 발명을 이들 실시형태로 한정하려는 의도가 아님을 이해할 것이다. 반대로, 본 발명은 첨부 청구범위에 의해 정의되는 바와 같이 본 발명의 취지 및 범위 내에 포함될 수 있는 대안, 수정 및 균등물을 망라하려는 의도이다. 더욱, 실시형태의 이하의 상세한 설명에서는 본 발명의 철저한 이해를 제공하기 위해 수많은 특정 상세가 제시된다. 그렇지만, 실시형태가 이들 특정 상세 없이 실시될 수 있음을 당업자는 인식할 것이다. 다른 예에서, 주지의 방법, 프로시저 및 컴포넌트는 실시형태의 태양을 불필요하게 모호하게 하지 않도록 상세히 설명되지는 않았다. 더욱, 본 발명의 실시형태는 서버 시스템에서의 메모리 관리 방법 및 장치를 제공한다. 여기에서 한정되지 않는 다른 유형의 시스템에 기반하는 실시형태가 있을 수 있다.
도 1a는 메모리 관리 방법을 도시한다. 단계(S101)에서는, 적어도 하나의 메모리가 풀링되어 메모리 풀을 발생시킨다.
단계(S101)에서 언급된 메모리는 서버 시스템에서의 서버에 의해 구성된 메모리 컨트롤러에 의해 관리된 메모리일 수 있다.
풀링은, 국한되는 것은 아니지만, 서버 시스템에서의 서버에 의해 구성된 메모리 컨트롤러에 의해 관리된 각각의 메모리를 노드로서 설정하는 것, 및 로직 칩 또는 로직 디바이스를 통해 서버 시스템에서의 노드들을 연결하여 노드의 단위로 메모리 풀을 생성하는 것을 포함한다.
본 발명의 일 실시형태에서는, 적어도 하나의 메모리가 풀링된다. 메모리 풀을 생성하기 위한 풀링 연산 후 부가적 단계가 있다.
서버 시스템에서의 각각의 서버에 대해 구성된 각각의 CPU는 CPU 노드로서 설정된다. CPU 노드는 CPU 노드를 포함하는 CPU 풀을 생성하도록 로직 칩 또는 로직 디바이스를 통해 상호 연결된다.
서버 시스템에서의 메모리의 풀링 및 CPU의 풀링은 서버 시스템에서의 메모리 및 CPU의 물리적 결합해제를 실현한다. 그래서, 이러한 물리적 결합해제의 결과로서, 서버 시스템에서의 메모리와 CPU 간 제약 없는 구성이 달성될 수 있다. 즉, 서버 시스템에서의 메모리의 수는 이들 제약 없는 구성에 기인하여 개별적으로 증가 또는 감소될 수 있다. 부가적으로, 서버 시스템에서의 CPU의 수 또한 제약 없는 구성에 의해 개별적으로 증가 또는 감소되어 메모리 및 CPU 자원의 사용량의 불필요한 부족을 회피할 수 있다.
부가적으로, 여기에서는 상세히 다뤄지고 있지 않는, 메모리 및 CPU의 풀링을 구현 또는 구성하기 위한 다른 방식 또는 예가 있을 수 있다.
단계(S102)에서, 메모리 풀은 분할되어 적어도 하나의 메모리 공간을 발생시키고, 메모리 공간의 각각은 일-대-일 대응 방식으로 복수의 CPU에 각각 할당된다. CPU에 할당된 메모리 공간은 CPU의 고정 메모리로서 설정되고, 그리고 할당되지 않은 메모리 공간은 메모리 풀의 공유 메모리 풀로서 설정된다. 즉, 할당되지 않은 메모리 공간은 메모리 풀에서 할당되지 않은 채로 있는 메모리 공간을 포함한다.
서버 시스템에서의 CPU의 수가 "n"이고 그리고 메모리 컨트롤러의 수가 "m"이고, 여기서 (n<m)이라고 가정하면, 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시켜 각각의 CPU에 할당하고 그리고 할당된 메모리 공간을 각각의 CPU의 고정 메모리로서 설정하기 위한 단계가 다음에 설명된다.
(1) 처음에는, 복수의 CPU에서의 CPU의 수와 같은 수의 메모리 컨트롤러를 선택한다. 여기에서, 상기 "m"개의 메모리 컨트롤러로부터, "n"개의 메모리 컨트롤러가 "n"개의 CPU에 대응하는 "n"개의 메모리 컨트롤러로서 랜덤 선택되어 일-대-일 매핑 관계를 확립한다.
본 발명의 일 실시형태에 의하면, 메모리 컨트롤러와 CPU 간 관계는 일-대-일 대응 관계이다. 용이하게 구성될 수 있지만 여기에서는 상세히 다뤄지지 않을, 일-대-다 또는 다-대-일 방식과 같은, 메모리 컨트롤러와 CPU 간 다른 유형의 대응 관계가 있다.
(2) 다음으로는, 일-대-일 대응 방식으로 "n"개의 메모리의 "n"개의 포트 주소를 갖는 "n"개의 CPU의 "n"개의 "QPI(Quick Path Interconnect)" 포트 주소 간 관계의 집합을 발생시키고, "n"개의 메모리 컨트롤러의 각각의 메모리 컨트롤러 하의 적어도 하나의 채널에서의 적어도 하나의 듀얼 인-라인 메모리 모듈 "DIMM" 슬롯의 대응하는 메모리 공간을 메모리 컨트롤러와 일-대-일 대응 관계를 갖는 CPU에 할당하며, 대응하는 메모리 공간은 CPU의 고정 메모리로서 설정될 것이다. 할당은 "n"개의 CPU에서의 모든 CPU가 고정 메모리를 획득할 때까지 반복된다.
"QPI(Quick Path Interconnect)"는 데이터에 액세스하도록 CPU에 의해 사용되는 패킷 전송-기반 고속 직렬 점-대-점 접속 협약이다. DIMM 또는 듀얼 인-라인 메모리 모듈은 컴퓨터 마더보드에 접속하는 핀을 갖는 소형 회로 기판 상에 하나 이상의 랜덤-액세스 메모리 칩을 포함하는 모듈이다.
메모리 컨트롤러는 메모리와 CPU 간 데이터의 교환을 관리하는데 사용하기 위한 메모리를 선택한다. 각각의 메모리 컨트롤러는 2-4개의 DDR(더블 데이터 레이트 동기식 동적 랜덤-액세스 메모리) 채널을 지원할 수 있으며, 각각의 채널은, 1-3개의 메모리 칩에 대한, 1-3개의 DIMM 슬롯을 지원할 수 있다. 메모리 칩의 각각의 메모리 공간은 DIMM 슬롯의 메모리 공간에 대응한다.
본 발명에 따른 다른 실시형태에서는, 각각의 메모리 컨트롤러에 의해 제어되는 적어도 하나의 채널에서의 적어도 하나의 DIMM 슬롯에 대응하는 메모리 공간이 CPU에 할당된다. 메모리 공간의 할당은 CPU의 고정 메모리로서 일-대-일 대응 관계로 수행된다.
예컨대, 각각의 메모리 컨트롤러에 의해 제어된 2개의 채널에서의 4개의 DIMM 슬롯의 대응하는 메모리 공간은 메모리 컨트롤러와 일-대-일 대응 관계에 있는 CPU에 할당되고, 그리고 대응하는 메모리 공간은, 표 1에서 제시되는, CPU의 고정 메모리로서 설정되며 다음을 포함한다:
각각의 메모리 컨트롤러 하의 제1 채널(채널 01)에서의 3개의 DIMM 슬롯(DIMM 1, DIMM 2, DIMM 3)의 대응하는 메모리 공간 및 제2 채널(채널 02)에서의 1개의 DIMM 슬롯(DIMM 1)의 대응하는 메모리 공간은 "n"개의 CPU에서의 각각의 CPU의 고정 메모리로서 "n"개의 CPU의 각각의 CPU에 각각 할당된다.
메모리 풀에 남아 있는 할당되지 않은 메모리 공간은 공유 메모리 풀로서 설정된다. 채널 02에서의 DIMM 2 및 DIMM 3의 대응하는 메모리 공간, 및 각각의 메모리 컨트롤러에 의해 제어된 채널 03 및 채널 04에서의 DIMM 1, DIMM 2, 및 DIMM 3의 대응하는 메모리 공간을 포함하는 표 1에서의 음영 부분은 공유 메모리 풀로서 설정된다.
본 발명에 따른 위의 실시형태에서, 메모리 칩의 메모리 공간의 주소는 고정 주소이다. 즉, DIMM 슬롯의 대응하는 메모리 공간의 주소는 고정 주소이다.
DIMM 슬롯의 대응하는 메모리 공간의 주소를 구현하기 위한 다른 가능한 실시형태가 있다. 일례는 서버 시스템에 의해 실시간 주소를 할당하는 것이다. 다른 주소 구현 기술은 여기에서는 상세히 설명되지 않을 것이다.
단계(S103)에서는, 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값이 획득된다.
이러한 실시형태에서, 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값은 상기 "n"개의 CPU의 각각에 대해 획득된다.
서버 시스템에서의 운영 체제에 의해 획득된 모든 "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값은 운영 체제에 의해 사용된 메모리 값 및 애플리케이션 프로그램에 의해 사용된 메모리 값을 포함한다.
사용된 메모리 값을 획득하기 위한 상기 방식 이외에, 여기에서는 상세히 설명되지 않을 부가적 방식이 있다.
이러한 실시형태에서는, "n"개의 CPU에서 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값이 획득된다. 이들 메모리 값은 "n"개의 CPU의 각각의 CPU를 CPU에 의해 사용된 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하기 위한 결정 단위로서 설정함으로써 획득된다. 결정에 따라, 공유 메모리 풀로부터의 추가 메모리 공간을 CPU에 할당할지, 또는 CPU에 할당되어 있었던 원래 메모리 공간의 부분을 자유롭게 할지와 같은 추가적 연산이 취해진다.
위에서 언급된 방법 외에, 필요한 메모리 공간을 결정하기 위한 다른 방식이 있다. 예컨대, "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값을 획득하기 위해, "n"개의 CPU의 연산 동안 적어도 하나의 CPU에 의해 사용된 모든 메모리 값은 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값을 획득하도록 합산될 수 있다. 그 후, 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정된다. 결정에 따라, 추가 메모리 공간이 공유 메모리 풀로부터 선택되어, CPU의 각각에 할당되든지, 메모리 공간이 자유롭게 되거나 해제되든지 한다.
단계(S104)에서는, 메모리 값이 사전 설정된 임계 범위를 초과하는지에 관한 결정이 이루어진다.
이러한 단계에서, "n"개의 CPU의 연산 동안 각각의 CPU의 메모리 값은 각각의 메모리 값이 각각의 CPU의 사전 설정된 임계 범위를 초과하는지 결정하도록 사용된다.
일례로서, "n"개의 CPU 중 하나의 CPU는 메모리 값이 CPU의 사전 설정된 임계 범위를 초과하는지 결정하도록 프로세스에서 사용되며, 다음을 포함한다:
(1) 연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하는지 결정한다.
연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하면, 그때는 단계(S105)가 개시되어 메모리 값의 특정 비율에 따라 공유 메모리 풀로부터 추가 메모리 공간을 신청하고, 그리고 추가 메모리 공간을 대응하는 CPU에 할당한다.
프로세싱 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하지 않으면, 프로세싱 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작은지 결정하기 위한 다음 단계가 개시된다.
(2) 연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작은지 결정한다.
연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작으면, 단계(S105)에서, CPU에 할당된 메모리 공간은 메모리 값의 특정 비율에 따라 부분적으로 해제된다. 메모리를 해제하는 프로세스는 CPU에 할당된 메모리 공간이 고정 메모리에 도달할 때까지 계속된다.
연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작지 않으면, 프로세스는 단계(S103)로 복귀하여 "n"개의 CPU의 CPU의 각각에 의해 사용된 메모리 값을 획득한다.
이들 솔루션에 부가하여, 단계를 구현하기 위한 다른 방식이 있다. 예컨대, "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하는지 "n"개의 CPU에 대해 차례로 결정될 수 있고, 그리고/또는 "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작은지 "n"개의 CPU에 대해 차례로 결정될 수 있다. 그때, 언급된 결정 단계는 결정 프로세스에 의해 모든 "n"개의 CPU가 프로세싱될 때까지 "n"회 반복된다. 이러한 반복 프로세스는 여기에서는 더 상세히 논의되지 않을 것이다.
본 발명에 따른 실시형태에 대해, 단계(S103)에 대응하여, "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값을 획득하기 위해, "n"개의 CPU의 연산 동안 적어도 하나의 CPU에 의해 사용된 모든 메모리 값은 프로세싱 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값을 획득하도록 합산된다. 다음으로, 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정된다. 결정에 따라, 추가 메모리 공간이 공유 메모리 풀로부터 선택되어, CPU의 각각에 할당되든지, 메모리 공간이 자유롭게 되거나 재할당되든지 한다.
단계(S104)에서, 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 임계 범위를 초과하는지의 결정은 다음에 설명된 바와 같이 구현될 수 있다.
(1) 연산 동안 "n"개의 CPU 중 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제1 임계치를 초과하는지 결정한다.
연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제1 임계치를 초과하면, 일-대-일 대응 방식으로 적어도 하나의 CPU에서의 각각의 CPU에 할당되도록 메모리 값의 특정 비율에 따라 메모리 풀로부터 적어도 하나의 추가 메모리 공간이 신청된다.
연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제1 임계치를 초과하지 않으면, 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제2 임계치보다 더 작은지 결정하기 위한 다음 단계가 개시된다.
(2) 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제2 임계치보다 더 작은지 결정한다.
연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제2 임계치보다 더 작으면, 적어도 하나의 CPU에서의 각각의 CPU에 할당된 메모리 공간은 메모리 값의 특정 비율에 따라 부분적으로 해제된다. 메모리를 해제하는 프로세스는 적어도 하나의 CPU에서의 각각의 CPU에 할당된 메모리 공간이 고정 메모리의 크기에 도달할 때까지 계속된다.
연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 제1 임계치보다 더 작지 않으면, 프로세스는 단계(S103)로 복귀하여 "n"개의 CPU의 각각의 CPU에 의해 사용된 메모리 값을 획득한다.
단계(S105)에서는, 추가 메모리 공간이 메모리 풀로부터 신청되어 CPU에 할당하거나, 또는 CPU에 할당된 메모리 공간이 재할당되거나 자유롭게 된다.
단계(S105)를 구현하기 위한 전제 조건은, 단계(S104)에서, 프로세싱 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하거나, 또는 프로세싱 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작다고 결정되는 것이다.
프로세싱 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하면, 하나의 추가 메모리 공간이 메모리 값의 특정 비율에 따라 메모리 풀로부터 신청되어 CPU에 할당된다.
연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작으면, CPU에 할당된 메모리 공간은 CPU에 할당된 메모리 공간이 고정 메모리의 크기에 도달할 때까지 부분적으로 해제된다.
이러한 실시형태에서는, CPU에 할당되도록 메모리 값의 특정 비율에 따라 메모리 풀로부터 추가 메모리 공간을 신청할 때, 동일한 채널에서의 DIMM 슬롯의 대응하는 메모리 공간 또는 동일한 메모리 컨트롤러에서의 DIMM 슬롯의 대응하는 메모리 공간은, 다음에 설명되는 바와 같이, CPU에 할당될 것임을 주목해야 한다.
(1) 처음에는, CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 의해 제어된 동일한 채널에 위치하는 메모리 풀에서의 DIMM 슬롯이 존재하는지 결정한다.
고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러 하의 동일한 채널에 위치하는 메모리 풀에서의 그러한 DIMM 슬롯이 존재하면, 그때는 DIMM 슬롯의 대응하는 메모리 공간이 메모리 값의 특정 비율에 따라 CPU에 할당된다.
예컨대, 메모리 풀에서, CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 의해 제어된 동일한 채널에서의 DIMM 슬롯의 대응하는 메모리 공간에 대해, 대응하는 DIMM 슬롯의 메모리 공간으로부터 신청된 메모리 공간의 크기는 연산 동안 CPU에 의해 사용된 메모리 값의 20%와 등가일 것이다. 이것은 CPU에 할당될 양이다.
고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러 하의 동일한 채널에 위치하는 메모리 풀에서의 DIMM 슬롯이 존재하지 않으면, 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 메모리 풀에서의 DIMM 슬롯이 존재하는지 결정하기 위한 다음 단계가 개시되는데, 이하에서 설명된다.
(2) 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 메모리 풀에서의 DIMM 슬롯이 존재하는지 결정된다. 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 메모리 풀에서의 DIMM 슬롯이 존재하면, DIMM 슬롯의 대응하는 메모리 공간이 메모리 값의 특정 비율에 따라 CPU에 할당된다.
예컨대, 메모리 풀에서, CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에서의 DIMM 슬롯의 대응하는 메모리 공간에 대해, 대응하는 DIMM 슬롯의 메모리 공간으로부터 신청된 메모리 공간의 크기는 연산 동안 CPU에 의해 사용된 메모리 값의 20%와 등가일 것이며, 그것은 CPU에 할당된다.
고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 메모리 풀에서의 DIMM 슬롯이 존재하지 않으면, 공유 메모리 풀에서의 메모리 공간이 메모리 값의 특정 비율에 따라 CPU에 할당된다.
예컨대, 공유 메모리 풀로부터 신청된 메모리 공간은 연산 동안 CPU에 의해 사용된 메모리 값의 20%의 크기와 등가일 것이며, 그것은 CPU에 할당된다.
CPU로의 할당을 위해 공유 메모리 풀로부터의 메모리 공간의 상기 신청을 구현하기 위한 다른 가능한 실시형태가 있는데, 여기에서는 상세히 설명되지 않을 것이다.
유사하게, 메모리 값의 특정 비율에 따라 메모리 풀로부터의 메모리 공간을 재할당 또는 해제하는 방법은 위에서 언급된 방법에 대응하는 다른 방식으로 구현될 수 있다.
예컨대, CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에서의 DIMM 슬롯의 대응하는 메모리 공간에 대해, 해제된 메모리 공간의 크기는 연산 동안 CPU에 의해 사용된 메모리 값의 20%와 등가일 것이다.
메모리 공간의 재할당 또는 해제를 구현하기 위한 다른 가능한 방법이 있는데, 여기에서는 상세히 설명되지 않을 것이다.
단계(S103, S104, S105)는 결정의 순환 프로세스에 있음을 주목해야 한다. "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값은 단계(S103)에서 획득된다. "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 메모리 값이 사전 설정된 임계 범위를 초과하는지는 단계(S104)에서 결정된다. 단계(S104)의 결과에 기반하여, 단계(S105)에서, 추가 메모리 공간이 공유 메모리 풀로부터 선택되어 CPU에 할당되거나 또는 CPU에 할당된 메모리 공간이 재할당되거나 자유롭게 된다.
단계(S103, S104, S105)의 순환 결정 프로세스는 프로세싱 동안 CPU에 의해 사용된 메모리 값의 실시간 모니터링을 구현한다. 모니터링의 결과에 따라, 메모리가 적절한 방식으로 이용되고 그리고 서버 시스템의 기능성이 강화되도록 특정 메모리 공간이 CPU에 할당되거나 또는 CPU의 특정 메모리 공간이 해제된다.
더욱, 단계(S103, S104)에 대응하여, "n"개의 CPU의 연산 동안 각각의 CPU에 의해 사용된 획득된 메모리 값에 따라, "n"개의 CPU의 연산 동안 적어도 하나의 CPU에 의해 사용된 모든 메모리 값은 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값을 획득하도록 합산된다. 다음으로, 연산 동안 적어도 하나의 CPU에 의해 사용된 총 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정된다. 결정의 결과에 따라, 추가 메모리 공간이 공유 메모리 풀로부터 선택되어 적어도 하나의 CPU에서의 각각의 CPU에 할당되든지, 메모리 공간이 재할당되거나 자유롭게 되든지 한다.
공유 메모리 풀로부터 추가 메모리 공간을 신청하여 적어도 하나의 CPU에서의 각각의 CPU에 할당하는 단계는 다음에서 더 설명된다.
(1) 우선, 적어도 하나의 CPU에서의 각각의 CPU의 고정 메모리에 대응하는 각각의 DIMM 슬롯과 동일한 채널에 위치하는 공유 메모리 풀에서의 DIMM 슬롯이 존재하는지, 차례로, 결정된다.
적어도 하나의 CPU에서의 각각의 CPU의 고정 메모리에 대응하는 각각의 DIMM 슬롯과 동일한 채널에 위치하는 공유 메모리 풀에서의 그러한 DIMM 슬롯이 존재하면, 그때는 DIMM 슬롯의 대응하는 메모리 공간이 메모리 값의 특정 비율에 따라 CPU에 할당된다.
CPU의 각각의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 채널에 위치하는 공유 메모리 풀에서의 DIMM 슬롯이 존재하지 않으면, 적어도 하나의 CPU에서의 각각의 CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 공유 메모리 풀에서의 DIMM 슬롯이 존재하는지 결정하기 위한 다음 단계가 개시된다.
(2) CPU의 집합의 각각의 CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 공유 메모리 풀에서의 DIMM 슬롯이 존재하는지 결정된다.
CPU의 집합의 각각의 CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 공유 메모리 풀에서의 DIMM 슬롯이 존재하면, DIMM 슬롯의 대응하는 메모리 공간이 메모리 값의 특정 비율에 따라 CPU에 할당된다.
적어도 하나의 CPU에서의 각각의 CPU의 고정 메모리에 대응하는 DIMM 슬롯과 동일한 메모리 컨트롤러에 위치하는 공유 메모리 풀에 그러한 DIMM 슬롯이 존재하지 않으면, 공유 메모리 풀에서의 메모리 공간이 메모리 값의 특정 비율에 따라 CPU에 할당된다.
적어도 하나의 CPU의 각각으로부터 메모리가 할당될 때까지 결정의 상기 프로세스는 반복된다. 또한, 상기 프로세스로 한정되지 않고 구현을 위한 다른 실시형태가 가능하다.
도 1b는 본 발명의 다른 실시형태에 따른 메모리 관리 방법의 순서도를 도시한다. 단계(S110)에서, 적어도 하나의 메모리는 풀링되어 메모리 풀을 발생시킨다. 단계(S130)에서, 메모리 풀은 분할되어 적어도 하나의 메모리 공간을 발생시킨다. 단계(S140)에서, 메모리 공간의 각각은 일-대-일 대응 방식으로 복수의 CPU에 각각 할당된다. 단계(S141)에서, 일-대-일 할당된 각각의 메모리 공간은 각각의 CPU의 고정 메모리로서 각각의 CPU에 할당된다. 단계(S142)에서, 할당되지 않은 메모리 공간은 메모리 풀의 공유 메모리 풀로서 설정된다. 즉, 할당되지 않은 메모리 공간은 메모리 풀에서 할당되지 않은 채로 있는 메모리 공간을 포함한다.
단계(S150)에서는, 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값이 획득된다. 단계(S160)에서는, 단계(S150)에서 획득된 메모리 값이 사전 설정된 임계 범위를 초과하는지에 관하여 결정된다. 연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제1 임계치를 초과하면, 그때는 단계(S171)가 개시되어 메모리 값의 특정 비율에 따라 공유 메모리 풀로부터 추가 메모리 공간을 신청하고 그리고 추가 메모리 공간을 대응하는 CPU에 할당한다. 연산 동안 CPU에 의해 사용된 메모리 값이 사전 설정된 제2 임계치보다 더 작으면, 단계(S172)에서, CPU에 할당된 메모리 공간은 메모리 값의 특정 비율에 따라 부분적으로 해제된다.
도 2에는 이하의 유닛을 포함하는 메모리 관리 디바이스(200)의 개시의 다른 실시형태가 도시된다.
메모리 풀링 유닛(210)은 적어도 하나의 메모리를 풀링하여 메모리 풀을 발생시키도록 구성된다.
메모리 분할기(220)는 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키고 그리고 각각의 메모리 공간을 각각의 CPU에 일-대-일 대응 방식으로 할당한다. 각각의 CPU에 할당된 각각의 메모리 공간은 각각의 CPU의 고정 메모리로서 설정된다. 할당되지 않은 메모리 공간은 메모리 풀의 공유 메모리 풀로서 설정된다. 즉, 할당되지 않은 메모리 공간은 메모리 풀에서 고정 메모리가 아니거나 할당되지 않은 채로 있는 메모리 공간을 포함한다.
메모리 값 획득 유닛(230)은 연산 동안 각각의 CPU에 의한 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득한다. 메모리 값 결정 유닛(240)은 메모리 값이 사전 설정된 임계 범위를 초과하는지 그리고 메모리 값이 사전 설정된 임계 범위를 초과하면 메모리 관리자(250)를 개시할지 결정한다.
메모리 관리자(250)는 임계치가 초과되면 공유 메모리 풀로부터 추가 메모리 공간을 선택하여 CPU에 할당하고 그리고/또는 CPU에 할당된 메모리 공간을 해제 또는 재할당하도록 구성된다.
대안으로, 메모리 분할기(220)는 메모리 컨트롤러의 집합을 선택하도록 구성된 메모리 컨트롤러 선택 서브-모듈을 포함하며, 메모리 컨트롤러의 수는 CPU의 집합의 수와 같다. 그것은 CPU의 QPI 포트 주소를 메모리 컨트롤러의 포트 주소와 일-대-일 대응 방식으로 매칭시키고 그리고 메모리 컨트롤러 하의 적어도 하나의 채널에서의 적어도 하나의 DIMM 슬롯의 대응하는 메모리 공간을 CPU에 할당하도록 구성된 할당기 서브-모듈을 또한 포함한다. 대응하는 메모리는 CPU의 고정 메모리로서 설정되고 그리고 DIMM 슬롯의 대응하는 메모리 주소는 고정 주소이다.
대안으로, 디바이스(200)는 CPU의 집합에서의 각각의 CPU를 CPU의 집합의 노드로서 설정하고 그리고 CPU의 집합의 모든 노드를 연결하여 CPU 풀을 발생시키도록 구성된 CPU 풀링 유닛을 또한 포함한다.
전형적 구성에서, 컴퓨팅 디바이스는 하나 이상의 CPU, 입/출력 포트, 인터넷 포트, 및 메모리를 포함한다.
본 발명에 의하면, 컴퓨터-판독가능한 매체는, 변조 데이터 신호 및 반송파와 같은, 일시적 매체를 포함하지 않는다. 개시된 컴퓨터-판독가능한 매체는, 국한되는 것은 아니지만, 상-변화 메모리(PRAM), 정적 랜덤-액세스 메모리(SRAM), 동적 랜덤-액세스 메모리(DRAM), 다른 유형의 랜덤-액세스 메모리(RAM), 읽기-전용 메모리(ROM), 전기적으로 소거가능한 프로그래밍가능한 읽기-전용 메모리(EEPROM), 플래시 RAM 및 다른 메모리 기술, 콤팩트 디스크 읽기-전용 메모리(CD-ROM), 디지털 비디오 디스크(DVD) 및 다른 광학 저장소, 자기 테이프, 자기 디스크, 다른 자기 저장소, 및 어느 다른 비-일시적 매체라도 포함한다.
당업자는 본 발명이 컴퓨터에 대한 명령어, 시스템, 및/또는 방법으로서 구현될 수 있음을 이해한다고 인식된다. 본 발명은 하드웨어, 소프트웨어, 및/또는 하드웨어와 소프트웨어 조합으로서 구현될 수 있는 것이다. 본 발명은 컴퓨터 프로그램 명령어를 포함하는 하나 이상의 저장 매체를 이용하는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 저장 매체는, 국한되는 것은 아니지만, 상-변화 메모리(PRAM), 정적 랜덤-액세스 메모리(SRAM), 동적 랜덤-액세스 메모리(DRAM), 다른 유형의 랜덤-액세스 메모리(RAM), 읽기-전용 메모리(ROM), 전기적으로 소거가능한 프로그래밍가능한 읽기-전용 메모리(EEPROM), 플래시 RAM 및 다른 메모리 기술, 콤팩트 디스크 읽기-전용 메모리(CD-ROM), 디지털 비디오 디스크(DVD) 및 다른 광학 저장소, 자기 테이프, 자기 디스크, 다른 자기 저장소, 및 어느 다른 저장소 유형이라도 포함한다.
여기에서는 특정 실시형태 및 방법이 개시되었기는 하지만, 그러한 실시형태 및 방법의 변형 및 수정이 본 발명의 취지 및 범위로부터 벗어남이 없이 이루어질 수 있음은 상기 개시로부터 당업자에게 분명할 것이다. 본 발명은 해당 법률의 규칙 및 원칙과 첨부 청구범위에 의해 정의되어야 하는 것이다.

Claims (19)

  1. 메모리 관리를 위한 장치에 의해 수행되는 방법으로서,
    적어도 하나의 메모리를 풀링(pooling)하여 메모리 풀을 발생시키는 단계;
    상기 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키는 단계;
    상기 적어도 하나의 메모리 공간의 각각의 메모리 공간을 복수의 CPU의 각각의 CPU에 일-대-일 대응 방식으로 할당하고 그리고 상기 각각의 메모리 공간을 상기 각각의 CPU의 고정 메모리로서 설정하는 단계;
    할당되지 않은 메모리 공간을 상기 메모리 풀의 공유 메모리 풀로서 설정하는 단계;
    연산 동안 상기 각각의 CPU에 의한 상기 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하는 단계;
    상기 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하는 단계;
    상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지에 기반하여, 상기 메모리 풀로부터 추가 메모리 공간을 선택하여 상기 각각의 CPU에 할당하거나, 또는 상기 각각의 CPU에 할당되어 있었던 상기 각각의 메모리 공간의 적어도 일부를 재할당하는 단계;
    메모리 컨트롤러들의 수를 선택하는 단계 - 상기 메모리 컨트롤러들의 수는 상기 각각의 CPU의 수와 동일함 -;
    일-대-일 대응 방식으로 상기 각각의 CPU의 포트 주소들을 상기 메모리 컨트롤러들의 포트 주소들과 매칭시키는 단계; 및
    상기 메모리 컨트롤러들과 연관된 적어도 하나의 채널에서의 상기 메모리 풀의 적어도 하나의 듀얼 인-라인 메모리 모듈(DIMM) 슬롯의 대응하는 메모리 공간을 상기 고정 메모리로서 상기 각각의 CPU에 할당하는 단계를 포함하고, 상기 DIMM 슬롯의 상기 할당된 대응하는 메모리 공간은 고정 주소를 포함하는, 메모리 관리 방법.
  2. 제1항에 있어서,
    상기 메모리 값을 획득하는 단계, 상기 결정하는 단계, 및 상기 추가 메모리 공간을 선택하는 단계를 반복하는 단계를 더 포함하는, 메모리 관리 방법.
  3. 제1항에 있어서, 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하지 않는다고 결정하는 것에 응답하여,
    상기 메모리 값을 획득하는 단계, 상기 결정하는 단계, 및 상기 재할당하는 단계를 반복하는 단계를 더 포함하는, 메모리 관리 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 메모리 값을 획득하는 단계는,
    상기 복수의 CPU로부터의 상기 각각의 CPU의 상기 메모리 값을 획득하는 단계를 포함하는, 메모리 관리 방법.
  6. 제5항에 있어서, 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지 결정하는 단계는,
    상기 메모리 값 중 적어도 하나가 사전 설정된 제1 임계치를 초과하는지 결정하는 단계; 및
    상기 메모리 값이 상기 사전 설정된 제1 임계치를 초과하면, 상기 메모리 값의 특정 비율에 따라 상기 메모리 풀로부터 상기 추가 메모리 공간을 선택하고 그리고 상기 추가 메모리 공간을 상기 각각의 CPU에 할당하는 단계를 포함하는, 메모리 관리 방법.
  7. 제6항에 있어서,
    상기 메모리 값이 사전 설정된 제1 임계치를 초과하지 않으면, 상기 메모리 값이 사전 설정된 제2 임계치보다 더 낮은지 결정하는 단계; 및
    상기 메모리 값이 상기 사전 설정된 제1 임계치를 초과하지 않으면 그리고 상기 메모리 값이 상기 사전 설정된 제2 임계치보다 더 낮으면, 상기 메모리 값의 특정 비율에 따라 상기 각각의 CPU에 할당된 상기 각각의 메모리 공간의 적어도 일부를 재할당하는 단계를 더 포함하는, 메모리 관리 방법.
  8. 제7항에 있어서,
    상기 메모리 값이 상기 사전 설정된 제2 임계치보다 더 낮지 않으면, 상기 메모리 값을 획득하는 단계, 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지 결정하는 단계, 및 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지에 기반하여, 상기 메모리 풀로부터 추가 메모리 공간을 선택하여 상기 각각의 CPU에 할당하거나 또는 상기 각각의 CPU에 할당된 상기 각각의 메모리 공간을 재할당하는 단계를 반복하는 단계를 더 포함하는, 메모리 관리 방법.
  9. 제6항에 있어서, 상기 메모리 풀로부터 상기 추가 메모리 공간을 선택하는 단계는,
    상기 각각의 CPU의 상기 고정 메모리에 대응하는 상기 DIMM 슬롯과 동일한 채널에 위치하는 상기 메모리 풀의 제2 DIMM 슬롯이 존재하는지 결정하는 단계; 및
    상기 제2 DIMM 슬롯이 존재하면, 상기 제2 DIMM 슬롯의 제2 대응하는 메모리 공간을 상기 메모리 값의 상기 특정 비율에 따라 상기 각각의 CPU에 할당하는 단계를 포함하는, 메모리 관리 방법.
  10. 제9항에 있어서,
    상기 제2 DIMM 슬롯이 존재하지 않으면, 상기 각각의 CPU의 상기 고정 메모리에 대응하는 상기 DIMM 슬롯과 같은 상기 메모리 컨트롤러에 위치하는 상기 메모리 풀에서의 제3 DIMM 슬롯이 존재하는지 결정하는 단계;
    상기 제3 DIMM 슬롯이 존재하면, 상기 제3 DIMM 슬롯의 제3 대응하는 메모리 공간을 상기 메모리 값의 상기 특정 비율에 따라 상기 각각의 CPU에 할당하는 단계; 및
    상기 제3 DIMM 슬롯이 존재하지 않으면, 상기 메모리 풀로부터의 상기 추가 메모리 공간을 상기 메모리 값의 다른 특정 비율에 따라 상기 각각의 CPU에 할당하는 단계를 더 포함하는, 메모리 관리 방법.
  11. 제5항에 있어서, 상기 메모리 값을 획득하는 단계는,
    총 메모리 값을 획득하도록 상기 복수의 CPU로부터의 상기 각각의 CPU의 상기 메모리 값을 합산하는 단계를 포함하는, 메모리 관리 방법.
  12. 제11항에 있어서, 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지 결정하는 단계는,
    상기 총 메모리 값이 사전 설정된 제1 임계치를 초과하는지 결정하는 단계; 및
    상기 총 메모리 값이 상기 사전 설정된 제1 임계치를 초과하면, 상기 메모리 값의 특정 비율에 따라 상기 메모리 풀로부터 상기 추가 메모리 공간을 선택하고 그리고 상기 추가 메모리 공간을 상기 각각의 CPU에 할당하는 단계를 포함하는, 메모리 관리 방법.
  13. 제12항에 있어서,
    상기 총 메모리 값이 사전 설정된 제1 임계치를 초과하지 않으면, 상기 총 메모리 값이 사전 설정된 제2 임계치보다 더 낮은지 결정하는 단계;
    상기 총 메모리 값이 상기 사전 설정된 제1 임계치를 초과하지 않으면 그리고 상기 총 메모리 값이 상기 사전 설정된 제2 임계치보다 더 낮으면, 상기 메모리 값의 특정 비율에 따라 상기 각각의 CPU에 할당된 상기 각각의 메모리 공간의 적어도 일부를 재할당하는 단계; 및
    상기 메모리 값이 상기 사전 설정된 제2 임계치보다 더 낮지 않으면, 상기 메모리 값을 획득하는 단계, 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지 결정하는 단계, 및 상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지에 기반하여, 상기 메모리 풀로부터 추가 메모리 공간을 선택하여 상기 각각의 CPU에 할당하거나 또는 상기 각각의 CPU에 할당된 상기 각각의 메모리 공간을 재할당하는 단계를 반복하는 단계를 더 포함하는, 메모리 관리 방법.
  14. 제12항에 있어서, 상기 메모리 풀로부터 상기 추가 메모리 공간을 선택하는 단계는,
    상기 각각의 CPU의 상기 고정 메모리에 대응하는 상기 DIMM 슬롯과 동일한 채널에 위치하는 상기 공유 메모리 풀의 제2 DIMM 슬롯이 존재하는지 결정하는 단계;
    상기 제2 DIMM 슬롯이 존재하면, 상기 제2 DIMM 슬롯의 제2 대응하는 메모리 공간을 상기 메모리 값의 상기 특정 비율에 따라 상기 각각의 CPU에 할당하는 단계;
    상기 제2 DIMM 슬롯이 존재하지 않으면, 상기 각각의 CPU의 상기 고정 메모리에 대응하는 상기 DIMM 슬롯과 같은 상기 각각의 메모리 컨트롤러에 위치하는 상기 공유 메모리 풀에서의 제3 DIMM 슬롯이 존재하는지 결정하는 단계;
    상기 제3 DIMM 슬롯이 존재하면, 상기 제3 DIMM 슬롯의 제3 대응하는 메모리 공간을 상기 메모리 값의 상기 특정 비율에 따라 상기 각각의 CPU에 할당하는 단계; 및
    상기 제3 DIMM 슬롯이 존재하지 않으면, 상기 메모리 풀로부터의 상기 추가 메모리 공간을 상기 메모리 값의 상기 특정 비율에 따라 상기 각각의 CPU에 할당하는 단계를 포함하는, 메모리 관리 방법.
  15. 제1항에 있어서,
    상기 복수의 CPU에서의 각각의 CPU를 상기 복수의 CPU의 노드로서 설정하고 그리고 상기 복수의 CPU의 상기 노드를 연결하여 CPU 풀을 발생시키는 단계를 더 포함하는, 메모리 관리 방법.
  16. 메모리 관리 장치로서,
    적어도 하나의 메모리를 풀링하여 메모리 풀을 발생시키도록 구성된 메모리 풀링 유닛;
    상기 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키고, 각각의 메모리 공간을 복수의 CPU의 각각의 CPU에 일-대-일 대응 방식으로 할당하고, 그리고 할당되지 않은 메모리 공간을 상기 메모리 풀의 공유 메모리 풀로서 설정하도록 구성된 메모리 분할기로서, 상기 각각의 CPU에 할당된 상기 각각의 메모리 공간은 상기 각각의 CPU의 고정 메모리로서 설정되는 상기 메모리 분할기;
    연산 동안 상기 각각의 CPU에 의한 상기 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하도록 구성된 메모리 값 획득 유닛; 및
    각각의 상기 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하여 관리자를 개시하도록 구성된 메모리 값 결정 유닛을 포함하되,
    상기 관리자는,
    상기 메모리 풀로부터 추가 메모리 공간을 선택하여 상기 각각의 CPU에 할당하거나 또는 상기 각각의 CPU에 할당된 상기 각각의 메모리 공간의 적어도 일부를 재할당하고;
    메모리 컨트롤러들의 수를 선택하고 - 상기 메모리 컨트롤러들의 수는 상기 각각의 CPU의 수와 동일함 -;
    일-대-일 대응 방식으로 상기 각각의 CPU의 포트 주소들을 상기 메모리 컨트롤러들의 포트 주소들과 매칭시키고;
    상기 메모리 컨트롤러들과 연관된 적어도 하나의 채널에서의 상기 메모리 풀의 적어도 하나의 듀얼 인-라인 메모리 모듈(DIMM) 슬롯의 대응하는 메모리 공간을 상기 고정 메모리로서 상기 각각의 CPU에 할당하도록 구성되며, 상기 DIMM 슬롯의 상기 할당된 대응하는 메모리 공간은 고정 주소를 포함하는, 메모리 관리 장치.
  17. 삭제
  18. 제16항에 있어서,
    상기 복수의 CPU의 각각의 CPU를 상기 복수의 CPU의 노드로서 설정하고 그리고 상기 복수의 CPU의 상기 노드를 연결하여 CPU 풀을 발생시키도록 구성된 CPU 풀링 유닛을 더 포함하는 메모리 관리 장치.
  19. 디바이스의 하나 이상의 프로세서에 의해 실행될 때 메모리 공간을 관리하는 프로그램 명령어를 내장한 비-일시적 컴퓨터 판독가능한 저장 매체로서, 상기 명령어는,
    적어도 하나의 메모리를 풀링하여 메모리 풀을 발생시키는 단계;
    상기 메모리 풀을 분할하여 적어도 하나의 메모리 공간을 발생시키는 단계;
    상기 적어도 하나의 메모리 공간의 각각의 메모리 공간을 복수의 CPU의 각각의 CPU에 일-대-일 대응 방식으로 할당하고 그리고 상기 각각의 메모리 공간을 상기 각각의 CPU의 고정 메모리로서 설정하는 단계;
    할당되지 않은 메모리 공간을 상기 메모리 풀의 공유 메모리 풀로서 설정하는 단계;
    연산 동안 상기 각각의 CPU에 의한 상기 각각의 메모리 공간의 사용량을 표현하는 메모리 값을 획득하는 단계;
    상기 메모리 값이 사전 설정된 임계 범위를 초과하는지 결정하는 단계;
    상기 메모리 값이 상기 사전 설정된 임계 범위를 초과하는지에 기반하여, 상기 메모리 풀로부터 추가 메모리 공간을 선택하여 상기 각각의 CPU에 할당하거나 또는 상기 각각의 CPU에 할당되어 있었던 상기 각각의 메모리 공간의 적어도 일부를 재할당하는 단계;
    메모리 컨트롤러들의 수를 선택하는 단계 - 상기 메모리 컨트롤러들의 수는 상기 각각의 CPU의 수와 동일함 -;
    일-대-일 대응 방식으로 상기 각각의 CPU의 포트 주소들을 상기 메모리 컨트롤러들의 포트 주소들과 매칭시키는 단계; 및
    상기 메모리 컨트롤러들과 연관된 적어도 하나의 채널에서의 상기 메모리 풀의 적어도 하나의 듀얼 인-라인 메모리 모듈(DIMM) 슬롯의 대응하는 메모리 공간을 상기 고정 메모리로서 상기 각각의 CPU에 할당하는 단계를 포함하고, 상기 DIMM 슬롯의 상기 할당된 대응하는 메모리 공간은 고정 주소를 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
KR1020177015701A 2014-11-25 2015-11-25 메모리 관리 방법 및 장치 KR102589155B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410686872.8A CN105701019A (zh) 2014-11-25 2014-11-25 一种内存管理方法以及装置
CN201410686872.8 2014-11-25
PCT/US2015/062801 WO2016086203A1 (en) 2014-11-25 2015-11-25 Method and apparatus for memory management

Publications (2)

Publication Number Publication Date
KR20170087900A KR20170087900A (ko) 2017-07-31
KR102589155B1 true KR102589155B1 (ko) 2023-10-16

Family

ID=56010340

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177015701A KR102589155B1 (ko) 2014-11-25 2015-11-25 메모리 관리 방법 및 장치

Country Status (7)

Country Link
US (2) US9715443B2 (ko)
EP (1) EP3224726B1 (ko)
JP (1) JP2017535888A (ko)
KR (1) KR102589155B1 (ko)
CN (1) CN105701019A (ko)
TW (1) TWI728949B (ko)
WO (1) WO2016086203A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2876379A1 (en) * 2014-12-29 2016-06-29 Adam J. Storm Memory management in presence of asymmetrical memory transfer costs
US11487445B2 (en) * 2016-11-22 2022-11-01 Intel Corporation Programmable integrated circuit with stacked memory die for storing configuration data
CN106681835B (zh) * 2016-12-28 2019-04-05 华为技术有限公司 资源分配的方法和资源管理器
CN107179997A (zh) * 2017-06-12 2017-09-19 合肥东芯通信股份有限公司 一种配置存储单元的方法及装置
CN107766153A (zh) * 2017-10-17 2018-03-06 华为技术有限公司 一种内存管理方法及装置
CN110032440A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种内存管理方法及相关装置
TWI722269B (zh) * 2018-01-26 2021-03-21 和碩聯合科技股份有限公司 韌體更新方法及使用此方法的電子裝置
CN110162395B (zh) * 2018-02-12 2021-07-20 杭州宏杉科技股份有限公司 一种内存分配的方法及装置
CN109194721A (zh) * 2018-08-15 2019-01-11 无锡江南计算技术研究所 一种异步的rdma通信内存动态管理方法及系统
CN109522113B (zh) * 2018-09-28 2020-12-18 迈普通信技术股份有限公司 一种内存管理方法及装置
CN109495401B (zh) * 2018-12-13 2022-06-24 迈普通信技术股份有限公司 缓存的管理方法及装置
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US20220066928A1 (en) * 2020-09-02 2022-03-03 Microsoft Technology Licensing, Llc Pooled memory controller for thin-provisioning disaggregated memory
US20230075329A1 (en) * 2021-08-25 2023-03-09 Western Digital Technologies, Inc. Super Block Allocation Across Super Device In ZNS SSD
US11640254B2 (en) 2021-08-25 2023-05-02 Western Digital Technologies, Inc. Controlled imbalance in super block allocation in ZNS SSD

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010027512A1 (en) 1997-09-05 2001-10-04 Hagersten Erik E. Selective address translation in coherent memory replication
JP2005196793A (ja) * 2004-01-09 2005-07-21 Internatl Business Mach Corp <Ibm> メモリを予約するための方法、システム、および製品
US20070250604A1 (en) 2006-04-21 2007-10-25 Sun Microsystems, Inc. Proximity-based memory allocation in a distributed memory system
JP2007537520A (ja) * 2004-05-13 2007-12-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理パーティション化データ処理システムにおける未割り振りメモリの動的メモリ管理
US20110276973A1 (en) 2010-05-07 2011-11-10 Jaewoong Chung Method and apparatus for scheduling for multiple memory controllers
JP2014194667A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571262B2 (en) 2000-02-14 2003-05-27 Apple Computer, Inc. Transparent local and distributed memory management system
US5687370A (en) 1995-01-31 1997-11-11 Next Software, Inc. Transparent local and distributed memory management system
US6249802B1 (en) * 1997-09-19 2001-06-19 Silicon Graphics, Inc. Method, system, and computer program product for allocating physical memory in a distributed shared memory network
US6381682B2 (en) * 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US20020016891A1 (en) * 1998-06-10 2002-02-07 Karen L. Noel Method and apparatus for reconfiguring memory in a multiprcessor system with shared memory
US6804766B1 (en) 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
US6327606B1 (en) 1998-06-24 2001-12-04 Oracle Corp. Memory management of complex objects returned from procedure calls
US6701420B1 (en) 1999-02-01 2004-03-02 Hewlett-Packard Company Memory management system and method for allocating and reusing memory
US6567417B2 (en) 2000-06-19 2003-05-20 Broadcom Corporation Frame forwarding in a switch fabric
US7240341B2 (en) 2000-02-07 2007-07-03 Esmertec Ag Global constant pool to allow deletion of constant pool entries
US6981244B1 (en) 2000-09-08 2005-12-27 Cisco Technology, Inc. System and method for inheriting memory management policies in a data processing systems
CA2355473A1 (en) 2000-09-29 2002-03-29 Linghsiao Wang Buffer management for support of quality-of-service guarantees and data flow control in data switching
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6718451B2 (en) 2002-01-31 2004-04-06 Intel Corporation Utilizing overhead in fixed length memory block pools
US6738886B1 (en) * 2002-04-12 2004-05-18 Barsa Consulting Group, Llc Method and system for automatically distributing memory in a partitioned system to improve overall performance
CA2426619A1 (en) 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7827375B2 (en) 2003-04-30 2010-11-02 International Business Machines Corporation Defensive heap memory management
US7447943B2 (en) * 2003-05-28 2008-11-04 Hewlett-Packard Development Company, L.P. Handling memory errors in response to adding new memory to a system
US7707320B2 (en) 2003-09-05 2010-04-27 Qualcomm Incorporated Communication buffer manager and method therefor
US7783852B2 (en) * 2003-11-26 2010-08-24 Oracle International Corporation Techniques for automated allocation of memory among a plurality of pools
GB2418751A (en) * 2004-10-02 2006-04-05 Hewlett Packard Development Co Managing memory across a plurality of partitions
US8234378B2 (en) * 2005-10-20 2012-07-31 Microsoft Corporation Load balancing in a managed execution environment
US7953008B2 (en) 2005-11-10 2011-05-31 Broadcom Corporation Cell copy count hazard detection
US7840752B2 (en) 2006-10-30 2010-11-23 Microsoft Corporation Dynamic database memory management policies
US7698528B2 (en) 2007-06-28 2010-04-13 Microsoft Corporation Shared memory pool allocation during media rendering
US20090150640A1 (en) * 2007-12-11 2009-06-11 Royer Steven E Balancing Computer Memory Among a Plurality of Logical Partitions On a Computing System
US8402242B2 (en) 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8209510B1 (en) 2010-01-13 2012-06-26 Juniper Networks, Inc. Secure pool memory management
US8578194B2 (en) 2010-06-21 2013-11-05 Broadcom Corporation Green mode data buffer control
US8312258B2 (en) * 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
US8555279B2 (en) 2011-04-25 2013-10-08 Hitachi, Ltd. Resource allocation for controller boards management functionalities in a storage management system with a plurality of controller boards, each controller board includes plurality of virtual machines with fixed local shared memory, fixed remote shared memory, and dynamic memory regions
JP5807458B2 (ja) * 2011-08-31 2015-11-10 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US8719464B2 (en) 2011-11-30 2014-05-06 Advanced Micro Device, Inc. Efficient memory and resource management
US8954698B2 (en) * 2012-04-13 2015-02-10 International Business Machines Corporation Switching optically connected memory
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
KR102117511B1 (ko) * 2013-07-30 2020-06-02 삼성전자주식회사 프로세서 및 메모리 제어 방법
CN103544063B (zh) * 2013-09-30 2017-02-08 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010027512A1 (en) 1997-09-05 2001-10-04 Hagersten Erik E. Selective address translation in coherent memory replication
JP2005196793A (ja) * 2004-01-09 2005-07-21 Internatl Business Mach Corp <Ibm> メモリを予約するための方法、システム、および製品
JP2007537520A (ja) * 2004-05-13 2007-12-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理パーティション化データ処理システムにおける未割り振りメモリの動的メモリ管理
US20070250604A1 (en) 2006-04-21 2007-10-25 Sun Microsystems, Inc. Proximity-based memory allocation in a distributed memory system
US20110276973A1 (en) 2010-05-07 2011-11-10 Jaewoong Chung Method and apparatus for scheduling for multiple memory controllers
JP2014194667A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法

Also Published As

Publication number Publication date
US20170308461A1 (en) 2017-10-26
CN105701019A (zh) 2016-06-22
KR20170087900A (ko) 2017-07-31
US20160147648A1 (en) 2016-05-26
EP3224726A1 (en) 2017-10-04
TWI728949B (zh) 2021-06-01
WO2016086203A1 (en) 2016-06-02
EP3224726A4 (en) 2018-07-25
JP2017535888A (ja) 2017-11-30
EP3224726B1 (en) 2021-05-05
TW201619829A (zh) 2016-06-01
US9715443B2 (en) 2017-07-25

Similar Documents

Publication Publication Date Title
KR102589155B1 (ko) 메모리 관리 방법 및 장치
US9304828B2 (en) Hierarchy memory management
US11520633B2 (en) Thread associated memory allocation and memory architecture aware allocation
US8695079B1 (en) Allocating shared resources
US20130219391A1 (en) Server and method for deploying virtual machines in network cluster
JP2015525397A5 (ko)
US9940020B2 (en) Memory management method, apparatus, and system
WO2018032519A1 (zh) 一种资源分配方法、装置及numa系统
WO2015149514A1 (zh) 一种虚拟机的部署方法及装置
JP2018525743A (ja) 負荷平衡方法及び装置
CN104461698A (zh) 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统
US11012316B2 (en) Methods and apparatus to generate and manage workload domains in virtual server racks
WO2016041446A1 (zh) 一种资源分配方法、装置及设备
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
CN111510479A (zh) 一种异构缓存系统的资源分配方法及装置
WO2022063273A1 (zh) 一种基于numa属性的资源分配方法及装置
WO2020024207A1 (zh) 处理业务请求的方法、装置与存储系统
WO2017133421A1 (zh) 一种多租户资源共享的方法及装置
CN110719306B (zh) 一种网络请求限制方法、计算机设备、存储介质
KR101989033B1 (ko) 플랫폼 관리 장치 및 방법
JP4773835B2 (ja) 処理制御装置およびその方法
TWI619013B (zh) 記憶體管理系統及其方法
CN112433842B (zh) 服务集群中主从节点的分配方法及设备
EP3586231A1 (en) Method and defragmentation module for defragmenting resources
US10684968B2 (en) Conditional memory spreading for heterogeneous memory sizes

Legal Events

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