TWI728949B - 記憶體管理方法以及裝置 - Google Patents

記憶體管理方法以及裝置 Download PDF

Info

Publication number
TWI728949B
TWI728949B TW104114417A TW104114417A TWI728949B TW I728949 B TWI728949 B TW I728949B TW 104114417 A TW104114417 A TW 104114417A TW 104114417 A TW104114417 A TW 104114417A TW I728949 B TWI728949 B TW I728949B
Authority
TW
Taiwan
Prior art keywords
memory
cpu
memory space
value
pool
Prior art date
Application number
TW104114417A
Other languages
English (en)
Other versions
TW201619829A (zh
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 TW201619829A publication Critical patent/TW201619829A/zh
Application granted granted Critical
Publication of TWI728949B publication Critical patent/TWI728949B/zh

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
    • 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/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
    • 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之間的解耦,能夠分別對記憶體和CPU進行動態擴充,減少了資源的浪費;並對CPU工作時消耗的記憶體空間值進行動態調整,使記憶體得到合理的利用。

Description

記憶體管理方法以及裝置
本發明係有關記憶體管理技術領域,特別有關一種記憶體管理方法。本發明同時有關一種記憶體管理裝置。
中央處理器CPU和記憶體作為目前電腦設備中最重要的配置,對電腦設備的性能有至關重要的作用,隨著業務系統的發展,對CPU以及記憶體的需求也越來越高,CPU的處理能力不斷提高,記憶體的容量也越來越大,隨之而來的記憶體管理策略也越來越複雜,尤其表現在伺服器系統中。一般而言,單台伺服器中的記憶體與CPU的配比是固定的,當需要增加CPU或者增加記憶體時,必須以增加一台或者多台伺服器的方式同時增加CPU和記憶體,造成了CPU或者記憶體的利用率下降,同時也造成了資源浪費。
當前,針對上述導致CPU或者記憶體的利用率下降以及資源浪費的問題,提出了基於軟體層面的解決辦法,在軟體中基於協定封裝的形式來管理和調度伺服器系統中的記憶體。
上述現有技術提供的記憶體管理方法存在明顯的缺陷。
現有技術提供的記憶體管理方法,記憶體無法動態擴充;此外,在軟體中基於協定封裝的解決方案,伺服器系統中的CPU在處理協定時消耗的記憶體空間比較大,並且存在一定的延遲,降低了伺服器系統的處理效率。
本發明提供一種記憶體管理方法,以解決現有的記憶體管理方法存在的擴充性不足和處理效率低下的問題。本發明同時有關一種記憶體管理裝置。
本發明提供一種記憶體管理方法,其中,包括:將至少一個記憶體進行池化,形成記憶體池;從所述記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體;將所述記憶體池中除所述固定記憶體之外剩餘的記憶體空間作為共用記憶體池;獲取所述CPU工作時消耗的記憶體空間值;判斷所述記憶體空間值是否超出預設的臨界值區間;若是,則從所述共用記憶體池中申請記憶體空間,分配給所述CPU,或者將分配給所述CPU的記憶體空間進行釋放。
可選的,所述從所述共用記憶體池中申請記憶體空間,分配給所述CPU,或者將分配給所述CPU的記憶體 空間進行釋放之後,包括:返回獲取所述CPU工作時消耗的記憶體空間值步驟。
可選的,所述判斷所述記憶體空間值是否超出預設的臨界值區間;若否,則返回獲取所述CPU工作時消耗的記憶體空間值步驟。
可選的,所述從所述記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體,包括:選擇與所述CPU的數量相等的記憶體控制器;將所述CPU的QPI埠位址與所述記憶體控制器的埠位址一一對應,並將所述記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間分配給所述CPU,作為所述CPU的固定記憶體;其中,所述DIMM槽位元對應的記憶體空間的位址為固定位址。
可選的,所述獲取所述CPU工作時消耗的記憶體空間值,包括:獲取所述CPU中每一個CPU工作時消耗的記憶體空間值;相應的,所述判斷所述記憶體空間值是否超出預設的臨界值區間步驟,包括:判斷所述CPU中每一個CPU工作時消耗的記憶體空 間值是否超出預設的第一臨界值;若超出,從所述共用記憶體池中按照所述記憶體空間值的特定比例申請記憶體空間,分配給該CPU;若不超出,判斷該CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值;若低於,將分配給該CPU的記憶體空間按照所述記憶體空間值的特定比例進行釋放,直到分配給該CPU的記憶體空間為所述固定記憶體;若不低於,則返回獲取所述CPU中每一個CPU工作時消耗的記憶體空間值步驟。
可選的,所述從所述共用記憶體池中按照所述記憶體空間值的特定比例申請記憶體空間,分配給該CPU,包括:判斷所述共用記憶體池中是否存在與所述固定記憶體對應的DIMM槽位元處於同一通道的DIMM槽位;若是,將所述DIMM槽位元對應的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU;若否,判斷所述共用記憶體池中是否存在與所述固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元;若存在,則將所述DIMM槽位元對應的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU;若不存,則將所述共用記憶體池中的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU。
可選的,所述獲取所述CPU工作時消耗的記憶體空間值,包括:獲取所述CPU中每一個CPU工作時消耗的記憶體空間值;對所有獲取的每一個CPU工作時消耗的記憶體空間值進行求和,獲得所述CPU工作時消耗的總的記憶體空間值;相應的,所述判斷所述記憶體空間值是否超出預設的臨界值區間步驟,包括:判斷所述CPU工作時消耗的總的記憶體空間值是否超出預設的第一臨界值;若超出,從所述共用記憶體池中按照所述記憶體空間值的特定比例申請至少一個記憶體空間,一一對應分配給所述CPU中每一個CPU;若不超出,判斷所述CPU工作時消耗的總的記憶體空間值是否低於預設的第二臨界值;若低於,將分配給所述CPU中每一個CPU的記憶體空間按照所述記憶體空間值的特定比例進行釋放,直到分配給所述CPU中每一個CPU的記憶體空間都為所述固定記憶體;若不低於,則返回獲取所述CPU中每一個CPU工作時消耗的記憶體空間值步驟。
可選的,所述從所述共用記憶體池中按照所述記憶體空間值的特定比例申請至少一個記憶體空間,一一對應分 配給所述CPU中每一個CPU,包括:依次判斷所述共用記憶體池中是否存在與所述CPU中每一個CPU的固定記憶體對應的DIMM槽位元處於同一通道的DIMM槽位;若是,將所述DIMM槽位元對應的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU;若否,判斷所述共用記憶體池中是否存在與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元;若存在,則將所述DIMM槽位元對應的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU;若不存在,則將所述共用記憶體池中的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU。
可選的,所述記憶體管理方法,包括:將所述CPU中的每一個CPU作為一個CPU節點,並將所有的CPU節點之間相互連接,形成CPU池。
本發明還提供一種記憶體管理裝置,包括:記憶體池化單元,用於將至少一個記憶體進行池化,形成記憶體池;記憶體劃分單元,用於從所述記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體;將所述記憶體池中除所述固定記憶體之外剩餘的記憶體空間作為共用記憶體池;記憶體空間值獲取單元,用於獲取所述CPU工作時 消耗的記憶體空間值;記憶體空間值判斷單元,用於判斷所述記憶體空間值是否超出預設的臨界值區間;若是,則進入記憶體管理單元;所述記憶體管理單元,用於從所述共用記憶體池中申請記憶體空間,分配給所述CPU,或者將分配給所述CPU的記憶體空間進行釋放。
可選的,所述記憶體劃分單元,包括:記憶體控制器選擇子單元,用於選擇與所述CPU的數量相等的記憶體控制器;固定記憶體分配子單元,用於將所述CPU的QPI埠位址與所述記憶體控制器的埠位址一一對應,並將所述記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間分配給所述CPU,作為所述CPU的固定記憶體;其中,所述DIMM槽位元對應的記憶體空間的位址為固定位址。
可選的,所述記憶體管理裝置,包括:CPU池化單元,用於將所述CPU中的每一個CPU作為一個CPU節點,並將所有的CPU節點之間相互連接,形成CPU池。
與現有技術相比,本發明具有以下優點:本發明提供的記憶體管理方法,包括:將至少一個記憶體進行池化,形成記憶體池;從所述記憶體池中劃分出 至少一個記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體;將所述記憶體池中除所述固定記憶體之外剩餘的記憶體空間作為共用記憶體池;獲取所述CPU工作時消耗的記憶體空間值;判斷所述記憶體空間值是否超出預設的臨界值區間;若是,則從所述共用記憶體池中申請記憶體空間,分配給所述CPU,或者將分配給所述CPU的記憶體空間進行釋放。
本發明提供的記憶體管理方法,將記憶體和CPU分別進行池化,實現了記憶體和CPU之間的解耦,能夠分別針對記憶體和CPU進行動態擴充,減少了記憶體資源和CPU資源的浪費;此外,本發明提供的記憶體管理方法,對CPU工作時消耗的記憶體空間值進行檢測,並進行動態調整,及時向CPU分配記憶體空間,或者釋放CPU的記憶體空間,使記憶體得到合理的利用。
圖1是本發明實施例提供的一種記憶體管理方法處理流程圖;
圖2是本發明實施例提供的一種記憶體管理裝置示意圖。
在下面的描述中闡述了很多具體細節以便於充分理解本發明。但是本發明能夠以很多不同於在此描述的其他方 式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣,因此本發明不受下面揭露的具體實施的限制。
本發明提供一種記憶體管理方法,本發明另外提供一種記憶體管理裝置。
所述記憶體管理方法實施例如下:本實施例以伺服器系統中的記憶體管理方法為例,對所述記憶體管理方法進行說明。
除此之外,還可以基於其他的系統平臺進行說明,在此不作限定。
參考圖1,其顯示了本實施例提供的一種記憶體管理方法處理流程圖。
以下結合圖1對本實施例提供的一種記憶體管理方法進行說明,並且對該方法的各個步驟進行說明;此外,本實施例提供的一種記憶體管理方法的具體步驟之間的順序關係請根據圖1確定。
步驟S101,將至少一個記憶體進行池化,形成記憶體池。
所述記憶體是指伺服器系統中每一個伺服器配置的記憶體控制器管理的記憶體。
所述池化是指將所述伺服器系統中每一個伺服器配置的記憶體控制器管理的記憶體作為一個記憶體節點,並且透過邏輯晶片或者邏輯裝置將所述伺服器系統中的所有記憶體節點進行互連,形成一個以記憶體節點為單位的記憶 體池。
本實施例中,所述將至少一個記憶體進行池化,形成記憶體池步驟之後,還包括:將伺服器系統中每一個伺服器配置的CPU作為一個CPU節點,並且透過邏輯晶片或者邏輯裝置將所述伺服器系統中的所有CPU節點進行互連,形成一個以CPU節點為單位的CPU池。
上述將所述伺服器系統中的記憶體的池化,以及所述CPU的池化,實現了所述伺服器系統中的記憶體和CPU在物理上的解耦;據此,可以針對所述伺服器系統中的記憶體和CPU進行自由的配置,可單獨增加或者減少所述伺服器系統中記憶體的數量,還可以單獨增加或者減少所述伺服器系統中CPU的數量,避免了記憶體資源和CPU資源的浪費。
需要說明的是,上述針對所述伺服器系統中所有記憶體和CPU的池化,還可以透過本實施例之外的其他方法實現,在此不作限定。
步驟S102,從所述記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體;將所述記憶體池中除所述固定記憶體之外剩餘的記憶體空間作為共用記憶體池。
假設所述伺服器系統中CPU的數量為n,記憶體控制器的數量為m(此處,n<m)。
本步驟中,從所述記憶體池中劃分出至少一個特定容 量的記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體,步驟如下:
1)選擇與所述CPU的數量相等的記憶體控制器;從上述的m個記憶體控制器下選出任意n個記憶體控制器,作為與所述n個CPU建立一一對應關係的記憶體控制器。
需要說明的是,本實施例中,所述CPU與所述記憶體控制器之間是一一對應關係,除此之外,還可以建立所述CPU與所述記憶體控制器之間的一對多或者多對一的對應關係,在此不作限定。
2)將所述n個CPU的QPI埠位址與所述n個記憶體控制器的埠位址一一對應;並將所述n個記憶體控制器中每個記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間,分配給與該記憶體控制器建立一一對應關係的CPU,作為該CPU的固定記憶體;並重複上述固定記憶體的分配過程,直到所述n個CPU中的所有CPU分配到所述固定記憶體。
QPI(QuickPath Interconnect,快速通道互連),是一種基於封包傳輸的串列式高速點對點連線協定,CPU基於QPI來存取資料。
記憶體控制器,用於控制記憶體,並且用於管理記憶體與CPU之間的資料交換。每個記憶體控制器可支援2-4個DDR(Double Data Rate雙倍資料速率同步動態隨機存取記憶體)Channel(通道),每個通道支持1-3個DIMM 槽位,可用於安插1-3個記憶體條,該記憶體條的儲存空間為所述DIMM槽位元對應記憶體空間。
本實施例中,將每個記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間,分配給與該記憶體控制器建立一一對應關係的CPU,作為該CPU的固定記憶體。
例如:將每個記憶體控制器下2個通道中總共4個DIMM槽位元對應的記憶體空間,分配給與該記憶體控制器建立一一對應關係的CPU,作為該CPU的固定記憶體,如下表:將每個記憶體控制器下第一個通道(01通道)中的3個DIMM槽位(DIMM1、DIMM2、DIMM3)對應記憶體空間,以及第二個通道(02通道)中的一個DIMM槽位(DIMM1)對應的記憶體空間,分別分配給所述n個CPU中的每個CPU,作為所述n個CPU中的每個CPU的固定記憶體;並將所述記憶體池中除所述固定記憶體之外剩餘的記憶體空間作為共用記憶體池,下表中陰影部分包含的每個記憶體控制器的02通道中DIMM2、DIMM3,以及03和04通道中DIMM1、DIMM2、DIMM3對應的記憶體空間,作為所述共用記憶體池;
Figure 104114417-A0202-12-0013-1
本實施中,所述記憶體條儲存空間的位址為固定位址,即:所述DIMM槽位元對應的記憶體空間的位址為固定位址。
除此之外,所述DIMM槽位元對應的記憶體空間的位址還可以透過其他方式實現,比如由所述伺服器系統即時分配位址,在此不作限定。
步驟S103,獲取所述CPU工作時消耗的記憶體空間值。
本實施例中,獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值。
需要說明的是,本實施例中,透過所述伺服器系統中運行作業系統來獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值。其中,所述n個CPU中的每個CPU工作時消耗的記憶體空間值,包括:運行所述作業系統消耗的記憶體空間值,以及運行應用程式消耗的記憶體空間值。
除此之外,獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值還可以透過其他方式獲取,在此不作限定。
本實施例中,獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值,以所述n個CPU中的每一個CPU為判斷單位,判斷所述該CPU工作時消耗的記憶體空間值是否超出該CPU預設的臨界值區間,並根據判斷的結果,從所述共用記憶體池中申請記憶體空間,分配給 該CPU,或者將分配給該CPU的記憶體空間進行釋放。
除此之外,還可透過其他方法實現,例如:根據本步驟獲取的所述n個CPU中的每個CPU工作時消耗的記憶體空間值,對所述n個CPU中至少一個CPU工作時消耗的記憶體空間值進行求和,獲得所述至少一個CPU工作時消耗的總的記憶體空間值;並判斷所述至少一個CPU工作時消耗的總記憶體空間值是否超出預設的臨界值區間,根據判斷的結果,從所述共用記憶體池中申請記憶體空間,分配給所述至少一個CPU中的每一個CPU,或者將分配給所述至少一個CPU中的每一個CPU的記憶體空間進行釋放,在此不作限定。
步驟S104,判斷所述記憶體空間值是否超出預設的臨界值區間。
本步驟中,根據上述步驟S103獲取的所述n個CPU中的每個CPU工作時消耗的記憶體空間值,以所述n個CPU中的每一個CPU為判斷單位,判斷該CPU工作時消耗的記憶體空間值是否超出該CPU預設的臨界值區間。
下述以所述n個CPU中的任意一個CPU為例,說明判斷該CPU工作時消耗的記憶體空間值是否超出該CPU預設的臨界值區間的過程。
具體步驟如下:
1)判斷該CPU工作時消耗的記憶體空間值是否超出預設的第一臨界值;若是,則進入下述步驟S105,從所述共用記憶體池 中按照所述記憶體空間值的特定比例申請記憶體空間,分配給該CPU;若否,則進入下一步的判斷,判斷該CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值。
2)判斷該CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值;若是,則進入下述步驟S105,將分配給該CPU的記憶體空間按照所述記憶體空間值的特定比例進行釋放,直到分配給該CPU的記憶體空間為所述固定記憶體;若否,則返回上述步驟S103,獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值。
除此之外,上述判斷步驟還可以採用其他方法實現,比如:依次判斷所述n個CPU中的每一個CPU工作時消耗的記憶體空間值是否超出預設的第一臨界值,和/或迴圈判斷所述n個CPU中的每一個CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值,重複該判斷步驟n次,直到所述n個CPU中的所有CPU都完成判斷,在此不作限定。
此外,對應上述步驟S103中所述的實現方法:根據本步驟獲取的所述n個CPU中的每個CPU工作時消耗的記憶體空間值,對所述n個CPU中至少一個CPU工作時消耗的記憶體空間值進行求和,獲得所述至少一個CPU工作時消耗的總記憶體空間值;並判斷所述至少一個CPU工作時消耗的總記憶體空間值是否超出預設的臨界值區 間,根據判斷的結果,從所述共用記憶體池中申請記憶體空間,分配給所述至少一個CPU中的每一個CPU,或者將分配給所述至少一個CPU中的每一個CPU的記憶體空間進行釋放。
其中,判斷所述至少一個CPU工作時消耗的總的記憶體空間值是否超出預設的臨界值區間步驟,可透過下述方法實現:
1)判斷所述n個CPU中至少一個CPU工作時消耗的總記憶體空間值是否超出預設的第一臨界值;若是,從所述共用記憶體池中按照所述記憶體空間值的特定比例申請至少一個記憶體空間,一一對應分配給所述至少一個CPU中每一個CPU;若否,則進入下一步的判斷,判斷所述至少一個CPU工作時消耗的總記憶體空間值是否低於預設的第二臨界值。
2)判斷所述至少一個CPU工作時消耗的總的記憶體空間值是否低於預設的第二臨界值;若是,則將分配給所述至少一個CPU中每一個CPU的記憶體空間按照所述記憶體空間值的特定比例進行釋放,直到分配給所述至少一個CPU中每一個CPU的記憶體空間都為所述固定記憶體;若否,則返回上述步驟S103,獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值。
步驟S105,從所述共用記憶體池中申請記憶體空 間,分配給所述CPU,或者將分配給所述CPU的記憶體空間進行釋放。
本步驟得以實施的前提是上述步驟S104中,判斷所述CPU工作時消耗的記憶體空間值是否超出預設的第一臨界值的判斷結果為是,或者判斷該CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值的判斷結果為是。
若上述步驟S104判斷該CPU工作時消耗的記憶體空間值是否超出預設的第一臨界值的判斷結果為是,本步驟中,從所述共用記憶體池中按照所述記憶體空間值的特定比例申請記憶體空間,分配給該CPU;或者若上述步驟S104判斷判斷該CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值的判斷結果為是,本步驟中,分配給該CPU的記憶體空間進行釋放,直到分配給該CPU的記憶體空間為所述固定記憶體。
需要說明的是,本實施例中,從所述共用記憶體池中按照所述記憶體空間值的特定比例申請記憶體空間,分配給該CPU時,優先將與該CPU的固定記憶體處於同一記憶體控制器或者同一通道的DIMM槽位元對應的記憶體空間,分配給該CPU。
具體步驟如下:
1)判斷所述共用記憶體池中是否存在與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器下同一個通道的DIMM槽位; 若是,將所述共用記憶體池中與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器下同一個通道的DIMM槽位元對應的記憶體空間,按照該CPU工作時消耗的記憶體空間值的特定比例,分配給該CPU;例如:將所述共用記憶體池中,與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器下同一個通道的DIMM槽位元對應的記憶體空間,按照該CPU工作時消耗的記憶體空間值的20%從該DIMM槽位元對應的記憶體空間中申請記憶體空間,分配給該CPU。
若否,則進入下一步的判斷,判斷所述共用記憶體池中是否存在與CPU工作時消耗的記憶體空間對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元。
2)判斷所述共用記憶體池中是否存在與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元;若是,則將所述共用記憶體池中與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器下的DIMM槽位元對應的記憶體空間,按照該CPU工作時消耗的記憶體空間值的特定比例,分配給該CPU;例如:將所述共用記憶體池中,與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器下的DIMM槽位元對應的記憶體空間,按照該CPU工作時消耗的記憶體空間值的20%從該DIMM槽位元對應的記憶體空間中申請記憶體空間,分配給該CPU。
若否,則將所述共用記憶體池中的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU。
例如:在所述共用記憶體池中,按照該CPU工作時消耗的記憶體空間值的20%申請記憶體空間,分配給該CPU。
除此之外,還可以透過本實施例之外的其他方法,實現上述在所述共用記憶體池中申請記憶體空間,分配給該CPU的步驟,在此不作限定。
與上述相類似的,本實施例中,將分配給該CPU的記憶體空間按照該CPU工作時消耗的記憶體空間值的特定比例進行釋放步驟,也可以採用與上述相類似的實現方法來實現。
例如:優先將該CPU工作時消耗的記憶體空間中,與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器下的DIMM槽位元對應的記憶體空間,按照20%的比例進行釋放。
除此之外,所述將分配給所述CPU的記憶體空間進行釋放步驟,還可以透過其他方法實現,在此不作限定。
需要說明的是,上述步驟S103、S104,以及步驟S105構成一個迴圈判斷過程,步驟S103獲取所述n個CPU中的每個CPU工作時消耗的記憶體空間值;步驟S104判斷所述n個CPU中的每個CPU工作時消耗的記憶體空間值是否超出預設的臨界值區間;步驟S105根據步驟S104的判斷結果,從所述共用記憶體池中申請記憶體 空間,分配給該CPU,或者將分配給該CPU的記憶體空間進行釋放。
上述步驟S103、S104以及步驟S105構成的迴圈判斷過程,實現了對所述CPU工作時消耗的記憶體空間值的即時檢測,並根據檢測的結果向所述CPU分配記憶體空間,或者釋放所述CPU的記憶體空間,使記憶體得到合理的利用,提高了所述伺服器系統的性能。
此外,對應上述步驟S103和步驟S104中所述的實現方法:根據本步驟獲取的所述n個CPU中的每個CPU工作時消耗的記憶體空間值,對所述n個CPU中至少一個CPU工作時消耗的記憶體空間值進行求和,獲得所述至少一個CPU工作時消耗的總記憶體空間值;並判斷所述至少一個CPU工作時消耗的總記憶體空間值是否超出預設的臨界值區間,根據判斷的結果,從所述共用記憶體池中申請記憶體空間,分配給所述至少一個CPU中的每一個CPU,或者將分配給所述至少一個CPU中的每一個CPU的記憶體空間進行釋放。
其中,從所述共用記憶體池中申請記憶體空間,分配給所述至少一個CPU中的每一個CPU步驟,也可以採用與上述相類似方法實現,例如:
1)依次判斷所述共用記憶體池中是否存在與所述至少一個CPU中每一個CPU的固定記憶體對應的DIMM槽位元處於同一通道的DIMM槽位;若是,將所述DIMM槽位元對應的記憶體空間按照所 述記憶體空間值的特定比例,分配給該CPU;若否,則進入下一步判斷,判斷所述共用記憶體池中是否存在與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元。
2)判斷所述共用記憶體池中是否存在與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元;若是,則將所述DIMM槽位元對應的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU;若否,則將所述共用記憶體池中的記憶體空間按照所述記憶體空間值的特定比例,分配給該CPU。
重複上述1)和2)的判斷過程,直到所述至少一個CPU中的所有CPU都完成所述記憶體分配過程。
除此之外,還可以透過其他方法實現,在此不作限定。
所述記憶體管理裝置實施例如下:在上述的實施例中,提供了一種記憶體管理方法,與之相對應的,本發明還提供了一種記憶體管理裝置。
參照圖2,其顯示了根據本實施例提供的一種記憶體管理裝置示意圖。由於裝置實施例基本相似於方法實施例,所以描述得比較簡單,相關的部分請參見方法實施例的對應說明即可。下述描述的裝置實施例僅僅是示意性的。
本發明所述的一種記憶體管理裝置,包括: 記憶體池化單元201,用於將至少一個記憶體進行池化,形成記憶體池;記憶體劃分單元202,用於從所述記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為所述CPU的固定記憶體;將所述記憶體池中除所述固定記憶體之外剩餘的記憶體空間作為共用記憶體池;記憶體空間值獲取單元203,用於獲取所述CPU工作時消耗的記憶體空間值;記憶體空間值判斷單元204,用於判斷所述記憶體空間值是否超出預設的臨界值區間;若是,則進入記憶體管理單元205;所述記憶體管理單元205,用於從所述共用記憶體池中申請記憶體空間,分配給所述CPU,或者將分配給所述CPU的記憶體空間進行釋放。
可選的,所述記憶體劃分單元202,包括:記憶體控制器選擇子單元,用於選擇與所述CPU的數量相等的記憶體控制器;固定記憶體分配子單元,用於將所述CPU的QPI埠位址與所述記憶體控制器的埠位址一一對應,並將所述記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間分配給所述CPU,作為所述CPU的固定記憶體;其中,所述DIMM槽位元對應的記憶體空間的位址為固定位址。
可選的,所述記憶體管理裝置,包括:CPU池化單元,用於將所述CPU中的每一個CPU作為一個CPU節點,並將所有的CPU節點之間相互連接,形成CPU池。
本發明雖然以較佳實施例揭露如上,但其並不是用來限定本發明,任何本領域技術人員在不脫離本發明的精神和範圍內,都可以做出可能的變動和修改,因此本發明的保護範圍應當以本發明權利要求所界定的範圍為准。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀取媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀取媒體的示例。
1、電腦可讀取媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀取指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可規劃唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁卡式磁帶,磁帶磁磁片儲存或其他磁性存 放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀取媒體不包括非暫態電腦可讀取媒體(transitory media),如調變的資料信號和載波。
2、本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。

Claims (10)

  1. 一種記憶體管理方法,其中,包括:將至少一個記憶體進行池化,形成記憶體池;從該記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為該CPU的固定記憶體;將該記憶體池中除該固定記憶體之外剩餘的記憶體空間作為共用記憶體池;獲取該CPU工作時消耗的記憶體空間值;判斷該記憶體空間值是否超出預設的臨界值區間;若是,則從該共用記憶體池中申請記憶體空間,分配給該CPU,或者將分配給該CPU的記憶體空間進行釋放,其中,該從該記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為該CPU的固定記憶體,包括:選擇與該CPU的數量相等的記憶體控制器;將該CPU的QPI埠位址與該記憶體控制器的埠位址一一對應,並將該記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間分配給該CPU,作為該CPU的固定記憶體;其中,該DIMM槽位元對應的記憶體空間的位址為固定位址。
  2. 根據請求項1的記憶體管理方法,其中,該從該共用記憶體池中申請記憶體空間,分配給該CPU,或者將 分配給該CPU的記憶體空間進行釋放之後,包括:返回獲取該CPU工作時消耗的記憶體空間值步驟。
  3. 根據請求項1的記憶體管理方法,其中,該判斷該記憶體空間值是否超出預設的臨界值區間;若否,則返回獲取該CPU工作時消耗的記憶體空間值步驟。
  4. 根據請求項1的記憶體管理方法,其中,該獲取該CPU工作時消耗的記憶體空間值,包括:獲取該CPU中每一個CPU工作時消耗的記憶體空間值;相應的,該判斷該記憶體空間值是否超出預設的臨界值區間步驟,包括:判斷該CPU中每一個CPU工作時消耗的記憶體空間值是否超出預設的第一臨界值;若超出,從該共用記憶體池中按照該記憶體空間值的特定比例申請記憶體空間,分配給該CPU;若不超出,判斷該CPU工作時消耗的記憶體空間值是否低於預設的第二臨界值;若低於,將分配給該CPU的記憶體空間按照該記憶體空間值的特定比例進行釋放,直到分配給該CPU的記憶體空間為該固定記憶體;若不低於,則返回獲取該CPU中每一個CPU工作時消耗的記憶體空間值步驟。
  5. 根據請求項4的記憶體管理方法,其中,該從該 共用記憶體池中按照該記憶體空間值的特定比例申請記憶體空間,分配給該CPU,包括:判斷該共用記憶體池中是否存在與該固定記憶體對應的DIMM槽位元處於同一通道的DIMM槽位;若是,將該DIMM槽位元對應的記憶體空間按照該記憶體空間值的特定比例,分配給該CPU;若否,判斷該共用記憶體池中是否存在與該固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元;若存在,則將該DIMM槽位元對應的記憶體空間按照該記憶體空間值的特定比例,分配給該CPU;若不存在,則將該共用記憶體池中的記憶體空間按照該記憶體空間值的特定比例,分配給該CPU。
  6. 根據請求項1的記憶體管理方法,其中,該獲取該CPU工作時消耗的記憶體空間值,包括:獲取該CPU中每一個CPU工作時消耗的記憶體空間值;對所有獲取的每一個CPU工作時消耗的記憶體空間值進行求和,獲得該CPU工作時消耗的總的記憶體空間值;相應的,該判斷該記憶體空間值是否超出預設的臨界值區間步驟,包括:判斷該CPU工作時消耗的總的記憶體空間值是否超出預設的第一臨界值; 若超出,從該共用記憶體池中按照該記憶體空間值的特定比例申請至少一個記憶體空間,一一對應分配給該CPU中每一個CPU;若不超出,判斷該CPU工作時消耗的總的記憶體空間值是否低於預設的第二臨界值;若低於,將分配給該CPU中每一個CPU的記憶體空間按照該記憶體空間值的特定比例進行釋放,直到分配給該CPU中每一個CPU的記憶體空間都為該固定記憶體;若不低於,則返回獲取該CPU中每一個CPU工作時消耗的記憶體空間值步驟。
  7. 根據請求項6的記憶體管理方法,其中,該從該共用記憶體池中按照該記憶體空間值的特定比例申請至少一個記憶體空間,一一對應分配給該CPU中每一個CPU,包括:依次判斷該共用記憶體池中是否存在與該CPU中每一個CPU的固定記憶體對應的DIMM槽位元處於同一通道的DIMM槽位;若是,將該DIMM槽位元對應的記憶體空間按照該記憶體空間值的特定比例,分配給該CPU;若否,判斷該共用記憶體池中是否存在與該CPU的固定記憶體對應的DIMM槽位元處於同一記憶體控制器的DIMM槽位元;若存在,則將該DIMM槽位元對應的記憶體空間按照該記憶體空間值的特定比例,分配給該CPU; 若不存在,則將該共用記憶體池中的記憶體空間按照該記憶體空間值的特定比例,分配給該CPU。
  8. 根據請求項1的記憶體管理方法,其中,包括:將該CPU中的每一個CPU作為一個CPU節點,並將所有的CPU節點之間相互連接,形成CPU池。
  9. 一種記憶體管理裝置,其中,包括:記憶體池化單元,用於將至少一個記憶體進行池化,形成記憶體池;記憶體劃分單元,用於從該記憶體池中劃分出至少一個記憶體空間,一一對應分配給每一個CPU,作為該CPU的固定記憶體;將該記憶體池中除該固定記憶體之外剩餘的記憶體空間作為共用記憶體池;記憶體空間值獲取單元,用於獲取該CPU工作時消耗的記憶體空間值;記憶體空間值判斷單元,用於判斷該記憶體空間值是否超出預設的臨界值區間;若是,則進入記憶體管理單元;該記憶體管理單元,用於從該共用記憶體池中申請記憶體空間,分配給該CPU,或者將分配給該CPU的記憶體空間進行釋放,其中,該記憶體劃分單元,包括:記憶體控制器選擇子單元,用於選擇與該CPU的數量相等的記憶體控制器;固定記憶體分配子單元,用於將該CPU的QPI 埠位址與該記憶體控制器的埠位址一一對應,並將該記憶體控制器下至少一個通道中的至少一個DIMM槽位元對應的記憶體空間分配給該CPU,作為該CPU的固定記憶體;其中,該DIMM槽位元對應的記憶體空間的位址為固定位址。
  10. 根據請求項9的記憶體管理裝置,其中,包括:CPU池化單元,用於將該CPU中的每一個CPU作為一個CPU節點,並將所有的CPU節點之間相互連接,形成CPU池。
TW104114417A 2014-11-25 2015-05-06 記憶體管理方法以及裝置 TWI728949B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410686872.8A CN105701019A (zh) 2014-11-25 2014-11-25 一种内存管理方法以及装置
CN201410686872.8 2014-11-25

Publications (2)

Publication Number Publication Date
TW201619829A TW201619829A (zh) 2016-06-01
TWI728949B true TWI728949B (zh) 2021-06-01

Family

ID=56010340

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104114417A TWI728949B (zh) 2014-11-25 2015-05-06 記憶體管理方法以及裝置

Country Status (7)

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

Families Citing this family (17)

* 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 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
CN112988370B (zh) * 2019-12-13 2024-05-17 南京品尼科自动化有限公司 一种智能通信管理机
US20220066928A1 (en) * 2020-09-02 2022-03-03 Microsoft Technology Licensing, Llc Pooled memory controller for thin-provisioning disaggregated memory
KR20220097586A (ko) 2020-12-30 2022-07-08 삼성전자주식회사 메모리 모듈, 메인 보드, 및 서버 장치
US11640254B2 (en) 2021-08-25 2023-05-02 Western Digital Technologies, Inc. Controlled imbalance in super block allocation in ZNS SSD
US20230075329A1 (en) * 2021-08-25 2023-03-09 Western Digital Technologies, Inc. Super Block Allocation Across Super Device In ZNS SSD

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093628A1 (en) * 2001-11-14 2003-05-15 Matter Eugene P. Memory adaptedt to provide dedicated and or shared memory to multiple processors and method therefor
US20050114621A1 (en) * 2003-11-26 2005-05-26 Oracle International Corporation Techniques for automated allocation of memory among a plurality of pools
US20050257020A1 (en) * 2004-05-13 2005-11-17 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
US20090150640A1 (en) * 2007-12-11 2009-06-11 Royer Steven E Balancing Computer Memory Among a Plurality of Logical Partitions On a Computing System
TW201224918A (en) * 2010-07-22 2012-06-16 Intel Corp Providing platform independent memory logic
US8332611B2 (en) * 2004-10-02 2012-12-11 Hewlett-Packard Development Company, L.P. Method and system for managing memory

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687370A (en) 1995-01-31 1997-11-11 Next Software, Inc. Transparent local and distributed memory management system
US6571262B2 (en) 2000-02-14 2003-05-27 Apple Computer, Inc. Transparent local and distributed memory management system
ATE254778T1 (de) * 1997-09-05 2003-12-15 Sun Microsystems Inc Nachschlagtabelle und verfahren zur datenspeicherung darin
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
AU2001239492A1 (en) 2000-02-07 2001-08-14 Insignia Solutions Plc Global constant pool to allow deletion of constant pool entries
US7088713B2 (en) 2000-06-19 2006-08-08 Broadcom Corporation Switch fabric with memory management unit for improved flow control
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
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
US7302546B2 (en) * 2004-01-09 2007-11-27 International Business Machines Corporation Method, system, and article of manufacture for reserving memory
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
US8150946B2 (en) * 2006-04-21 2012-04-03 Oracle America, Inc. Proximity-based memory allocation in a distributed memory system
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
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
US8522244B2 (en) * 2010-05-07 2013-08-27 Advanced Micro Devices, Inc. Method and apparatus for scheduling for multiple memory controllers
US8578194B2 (en) 2010-06-21 2013-11-05 Broadcom Corporation Green mode data buffer control
WO2012147116A1 (en) 2011-04-25 2012-11-01 Hitachi, Ltd. Computer system and virtual machine control method
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
JP6136460B2 (ja) * 2013-03-28 2017-05-31 富士通株式会社 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法
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
US20030093628A1 (en) * 2001-11-14 2003-05-15 Matter Eugene P. Memory adaptedt to provide dedicated and or shared memory to multiple processors and method therefor
US20050114621A1 (en) * 2003-11-26 2005-05-26 Oracle International Corporation Techniques for automated allocation of memory among a plurality of pools
US20050257020A1 (en) * 2004-05-13 2005-11-17 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
US8332611B2 (en) * 2004-10-02 2012-12-11 Hewlett-Packard Development Company, L.P. Method and system for managing memory
US20090150640A1 (en) * 2007-12-11 2009-06-11 Royer Steven E Balancing Computer Memory Among a Plurality of Logical Partitions On a Computing System
TW201224918A (en) * 2010-07-22 2012-06-16 Intel Corp Providing platform independent memory logic

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI728949B (zh) 記憶體管理方法以及裝置
TWI795354B (zh) 動態分配記憶體的方法、裝置及系統
US11805070B2 (en) Technologies for flexible and automatic mapping of disaggregated network communication resources
TWI755415B (zh) 雲端環境下應用集群資源分配的方法、裝置和系統
JP2014526729A5 (zh)
US20220114086A1 (en) Techniques to expand system memory via use of available device memory
EP3296836B1 (en) Computer device and data read-write method for computer device
WO2015149514A1 (zh) 一种虚拟机的部署方法及装置
WO2014183531A1 (zh) 一种分配远程内存的方法及装置
WO2017041674A1 (zh) 一种启动备份任务的方法、装置及电子设备
WO2022063273A1 (zh) 一种基于numa属性的资源分配方法及装置
US20160034392A1 (en) Shared memory system
WO2024037239A1 (zh) 一种加速器调度方法及相关装置
US11431648B2 (en) Technologies for providing adaptive utilization of different interconnects for workloads
US20170192720A1 (en) Prioritization of order ids in dram scheduling
CN115202859A (zh) 一种内存扩展方法以及相关设备
TWI507868B (zh) 快速通道互聯匯流排的壓力測試方法和壓力測試裝置
WO2016201981A1 (zh) 数据缓存处理方法及装置
EP4322001A1 (en) Memory expansion method and related device
WO2023231768A1 (zh) 一种多核处理器及相关核间通信方法
US20170185292A1 (en) Memory Management of High-Performance Memory
WO2022057754A1 (zh) 内存控制方法和装置
TW201828119A (zh) 一種資料同步方法和裝置