TW201435589A - 用於在具有非對稱記憶體組件之記憶體子系統中動態分配記憶體之系統及方法 - Google Patents

用於在具有非對稱記憶體組件之記憶體子系統中動態分配記憶體之系統及方法 Download PDF

Info

Publication number
TW201435589A
TW201435589A TW102141947A TW102141947A TW201435589A TW 201435589 A TW201435589 A TW 201435589A TW 102141947 A TW102141947 A TW 102141947A TW 102141947 A TW102141947 A TW 102141947A TW 201435589 A TW201435589 A TW 201435589A
Authority
TW
Taiwan
Prior art keywords
memory
performance
interleaved
subsystem
bandwidth
Prior art date
Application number
TW102141947A
Other languages
English (en)
Other versions
TWI525435B (zh
Inventor
Richard A Stewart
Dexter T Chun
Original Assignee
Qualcomm Inc
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
Priority claimed from US13/726,537 external-priority patent/US8959298B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201435589A publication Critical patent/TW201435589A/zh
Application granted granted Critical
Publication of TWI525435B publication Critical patent/TWI525435B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本發明提供用於動態地分配一記憶體子系統之系統及方法。一例示性實施例包含一種用於在一攜帶型計算裝置中動態地分配一記憶體子系統之一方法。該方法涉及使一記憶體子系統之一第一部分充分地交錯,該記憶體子系統具有具非對稱記憶體容量之記憶體組件。根據一交錯頻寬比率使該記憶體子系統之一第二剩餘部分部分地交錯。將該記憶體子系統之該第一部分分配至一或多個高效能之記憶體用戶端。將該第二剩餘部分分配至一或多個相對較低效能之記憶體用戶端。

Description

用於在具有非對稱記憶體組件之記憶體子系統中動態分配記憶體之系統及方法 優先權及相關申請案陳述
本申請案係在2012年12月24日申請且題為「System and Method for Managing Performance of a Computing Device Having Dissimilar Memory Types」(檔案號碼123065U1)之同在申請中之美國專利申請案第13/726,537號的部分接續專利申請案,該美國專利申請案依據35 U.S.C.119(e)主張在2012年12月10日申請、經讓渡為臨時申請案第61/735,352號(檔案號碼123065P1)且題為「System and Method for Managing Performance of a Computing Device Having Dissimilar Memory Types」的美國臨時專利申請案的優先權,前述兩者中之每一者的全文在此以引用之方式併入。
在電腦系統及裝置中,尤其在諸如蜂巢式電話、攜帶型數位助理(PDA)、攜帶型遊戲控制台、掌上型電腦、平板電腦及其他攜帶型電子裝置之攜帶型計算裝置(PCD)中,系統效能及功率要求變得愈來愈高。此等裝置可包含為達成特定目的而經最佳化之兩種或兩種以上類型之處理單元。舉例而言,一或多個中央處理單元(CPU)可用於達成一般系統層級效能或其他目的,而圖形處理單元(GPU)可經特定設 計以用於操控電腦圖形以供輸出至顯示裝置。隨著每一處理器需要更多效能,需要經設計以實現每一處理器之特定目的之更快速且更特殊化之記憶體裝置。通常針對特定應用而最佳化記憶體架構。CPU可需要具有可接受之系統層級效能的高密度記憶體,而GPU可需要具有實質上高於CPU之效能的相對較低密度之記憶體。
結果,諸如PCD之單一電腦裝置可包括兩個或兩個以上相異記憶體裝置,其中每一特殊化記憶體裝置為達成其特殊目的而經最佳化,且與特定處理單元配對並專用於特定處理單元。在此習知架構(被稱作「離散」架構)中,每一專用處理單元經由複數個實體/控制層而實體地耦接至不同類型之記憶體裝置,該複數個實體/控制層各自具有對應記憶體通道。每一專用處理單元以為達成預期目的而經最佳化之不同資料速率來實體地存取對應記憶體裝置。舉例而言,在一個例示性組態中,通用CPU可以最佳化資料頻寬(例如,17Gb/s)來實體地存取第一類型之動態隨機存取記憶體(DRAM)裝置。較高效能之專用GPU可以較高資料頻寬(例如,34Gb/s)來實體地存取第二類型之DRAM裝置。雖然離散架構使CPU及GPU之效能個別地最佳化,但存在數個顯著缺點。
為了獲得較高效能,GPU專用記憶體必須經設定大小且經組態以處置所有潛在使用狀況、顯示解析度及系統設定。此外,較高效能「經區域化」,此係因為僅GPU能夠以較高資料頻寬來實體地存取GPU專用記憶體。雖然CPU可存取GPU專用記憶體,且GPU可存取CPU專用記憶體,但離散架構以減少之資料頻寬經由GPU與CPU之間的實體互連匯流排(例如,快速周邊組件互連(PCIE))提供此存取,該減少之資料頻寬通常小於用於任一類型之記憶體裝置的最佳化頻寬。即使GPU與CPU之間的實體互連匯流排並不充當效能「瓶頸」,離散架構仍不准許GPU抑或CPU利用兩種不同類型之記憶體裝置的組合之 總可用頻寬。將各別記憶體裝置之記憶體空間置放於單獨之鄰接記憶體位址區塊中。換言之,整個記憶體映象將第一類型之記憶體裝置置放於一個鄰接區塊中,且分離地將第二類型之記憶體裝置置放於不同鄰接區塊中。在不同記憶體裝置之記憶體埠之間不存在支援駐留於同一鄰接區塊內之實體存取的硬體協調。
因此,雖然在電腦系統中對更特殊化記憶體裝置之需求增加,以在電腦裝置中提供日益增加之系統及功率效能,但在此項技術中仍需要用於管理相異記憶體裝置之改良之系統及方法。
一例示性實施例包含一種用於在一攜帶型計算裝置中動態地分配一記憶體子系統之方法。該方法涉及使一記憶體子系統之一第一部分充分地交錯,該記憶體子系統具有具非對稱記憶體容量之記憶體組件。根據一交錯頻寬比率使該記憶體子系統之一第二剩餘部分部分地交錯。將該記憶體子系統之該第一部分分配至一或多個高效能之記憶體用戶端。將該第二剩餘部分分配至一或多個相對較低效能之記憶體用戶端。
100‧‧‧系統
102‧‧‧記憶體通道最佳化模組
104a‧‧‧動態隨機存取記憶體(DRAM)裝置
104b‧‧‧動態隨機存取記憶體(DRAM)裝置
106‧‧‧圖形處理單元(GPU)
108‧‧‧中央處理單元(CPU)/觸控式螢幕顯示器
110‧‧‧電連接
112‧‧‧電連接
114‧‧‧記憶體通道
114a‧‧‧記憶體通道
114b‧‧‧記憶體通道
114c‧‧‧記憶體通道
114d‧‧‧記憶體通道
116a‧‧‧實體/控制連接件
116b‧‧‧實體/控制連接件
116c‧‧‧實體/控制連接件
116d‧‧‧實體/控制連接件
118‧‧‧記憶體通道
118a‧‧‧記憶體通道
118b‧‧‧記憶體通道
120a‧‧‧實體/控制連接件
120b‧‧‧實體/控制連接件
200‧‧‧用於藉由使相異記憶體裝置交錯來實施統一操作模式之方法
204‧‧‧小鍵盤
300‧‧‧表
302‧‧‧欄
304‧‧‧列
322‧‧‧晶載系統/系統單晶片(SoC)
328‧‧‧顯示控制器
330‧‧‧觸控式螢幕控制器
334‧‧‧視訊編碼器
336‧‧‧視訊放大器
338‧‧‧視訊埠
340‧‧‧通用串列匯流排(USB)控制器
342‧‧‧通用串列匯流排(USB)埠
346‧‧‧用戶識別模組(SIM)卡
348‧‧‧數位攝影機
350‧‧‧立體音訊編碼器-解碼器
352‧‧‧音訊放大器
354‧‧‧第一立體聲揚聲器
356‧‧‧第二立體聲揚聲器
358‧‧‧麥克風放大器
360‧‧‧麥克風
362‧‧‧調頻(FM)無線電調諧器
364‧‧‧調頻(FM)天線
366‧‧‧立體聲耳機
368‧‧‧射頻(RF)收發器
370‧‧‧射頻(RF)開關
372‧‧‧射頻(RF)開關
376‧‧‧單聲道頭戴式耳機
378‧‧‧振動器裝置
380‧‧‧電源供應器
388‧‧‧網路卡
400‧‧‧通道重映射模組
402A‧‧‧多核中央處理單元(CPU)
404A‧‧‧記憶體
410‧‧‧第零核心
412‧‧‧第一核心
414‧‧‧第N核心
500‧‧‧位址映射表
502‧‧‧位址區塊之清單
504‧‧‧欄
506‧‧‧欄
508‧‧‧欄
600‧‧‧通道重映射邏輯
606‧‧‧請求
608‧‧‧請求
610‧‧‧請求
612‧‧‧請求
614‧‧‧請求
616‧‧‧請求
702‧‧‧0.5GB記憶體裝置
704‧‧‧0.5GB記憶體裝置
706‧‧‧1GB記憶體裝置
708‧‧‧2GB記憶體裝置
710‧‧‧交錯分區
712‧‧‧交錯分區
714‧‧‧非交錯分區
800‧‧‧攜帶型計算裝置(PCD)
900‧‧‧系統
902‧‧‧記憶體子系統
904a‧‧‧記憶體組件
904b‧‧‧記憶體組件
906‧‧‧可程式化處理器
910‧‧‧連接
912‧‧‧應用程式
1000a‧‧‧第一狀態
1000b‧‧‧第二狀態
1001‧‧‧第一高效能之記憶體區
1002‧‧‧記憶體分配模組
1003‧‧‧第二相對較低效能之記憶體區
1004‧‧‧記憶體區效能模組
1005‧‧‧記憶體邊界
1005a‧‧‧記憶體邊界區
1005b‧‧‧經修整之記憶體邊界
1006‧‧‧記憶體區調整模組
在諸圖中,除非另有指示,否則貫穿各種視圖,類似參考數字指類似部分。對於具有諸如「102A」或「102B」之字母字元名稱的參考數字,該等字母字元名稱可區分存在於同一圖中之兩個類似部分或元件。當參考數字意欲涵蓋所有諸圖中具有相同參考數字之所有部分時,可省略參考數字之字母字元名稱。
圖1為用於管理相異記憶體裝置之系統之實施例的方塊圖。
圖2為用於管理相異記憶體裝置的由圖1中之記憶體通道最佳化模組實行的方法之實施例的流程圖。
圖3為說明各種類型之相異記憶體裝置之交錯頻寬比率的例示性 表。
圖4為說明圖1之記憶體通道最佳化模組之組件的方塊圖。
圖5為說明基於各種交錯頻寬比率之記憶體通道位址重映射的例示性表。
圖6為說明圖4之通道重映射模組之實施例的一般操作、架構及功能性的組合流程/方塊圖。
圖7為說明用於跨越相異記憶體裝置建立多個邏輯分區之交錯方法之實施例的圖形。
圖8為說明攜帶型計算裝置中之記憶體通道最佳化模組之例示性實施的方塊圖。
圖9為說明包含記憶體通道最佳化模組之系統之另一實施例的方塊圖,該記憶體通道最佳化模組耦接至整體記憶體子系統,該記憶體子系統具有具非對稱記憶體容量之記憶體組件。
圖10為說明圖9之通道重映射模組之實施例的方塊圖,該通道重映射模組用於將整體記憶體子系統中之記憶體動態地分配至高效能區及低效能區中。
圖11為說明通道重映射模組之架構、操作及/或功能性的組合方塊/流程圖,該通道重映射模組用於組態及調整高效能區及低效能區。
圖12為用於在圖9之系統中動態地分配記憶體的方法之實施例的流程圖。
詞語「例示性」在本文中用以意謂「充當一實例、例子或說明」。不必將本文中描述為「例示性」之任何態樣解釋為比其他態樣較佳或有利。
在此描述中,術語「應用程式」亦可包括具有可執行內容之檔 案,諸如:目標碼、指令碼、位元組碼、標示語言檔案,及修補程式。此外,本文所提及之「應用程式」亦可包括本質上不可執行之檔案,諸如可能需要開啟之文件或需要存取之其他資料檔案。
術語「內容」亦可包括具有可執行內容之檔案,諸如:目標碼、指令碼、位元組碼、標示語言檔案,及修補程式。此外,本文所提及之「內容」亦可包括本質上不可執行之檔案,諸如可能需要開啟之文件或需要存取之其他資料檔案。
如此描述中所使用,術語「組件」、「資料庫」、「模組」、「系統」及其類似者意欲指電腦相關實體,其為硬體、韌體、硬體與軟體之組合、軟體,抑或執行中軟體。舉例而言,組件可為(但不限於)在處理器上執行之程序、處理器、物件、可執行程式、執行緒、程式及/或電腦。藉由說明,在計算裝置上執行之應用程式及該計算裝置兩者皆可為組件。一或多個組件可駐留於程序及/或執行緒內,且一組件可位於一個電腦上及/或分散於兩個或兩個以上電腦之間。此外,此等組件可自各種電腦可讀媒體執行,該等電腦可讀媒體具有儲存於其上之各種資料結構。該等組件可藉由本端程序及/或遠端程序進行通信,諸如,根據具有一或多個資料封包的信號(例如,來自藉由信號而與另一組件互動的組件之資料,另一組件係在本端系統中、在分散式系統中及/或跨越具有其他系統的網路(諸如,網際網路)中)。
在此描述中,術語「通信裝置」、「無線裝置」、「無線電話」、「無線通信裝置」及「無線手機」可互換地使用。隨著第三代(「3G」)無線技術及第四代(「4G」)無線技術的到來,更大頻寬可用性已使更多攜帶型計算裝置具有多種無線能力。因此,攜帶型計算裝置可包括蜂巢式電話、呼叫器、PDA、智慧型電話、導航裝置,或具有無線連接或鏈路之手持型電腦。
圖1說明包含記憶體管理架構之系統100,該記憶體管理架構可 實施於具有兩個或兩個以上專用處理單元之任何合適之計算裝置中,該等處理單元用於存取不同類型之兩個或兩個以上記憶體裝置或具有不同資料頻寬的類似類型之記憶體裝置(被稱作「相異記憶體裝置」)。計算裝置可包含個人電腦;工作站;伺服器;諸如蜂巢式電話、攜帶型數位助理(PDA)、攜帶型遊戲控制台、掌上型電腦或平板電腦之攜帶型計算裝置(PCD);及具有兩個或兩個以上相異記憶體裝置之任何其他計算裝置。如下文更詳細地描述,記憶體管理架構經組態以選擇性地提供兩個操作模式:統一模式及離散模式。在離散模式中,記憶體管理架構以如上文所描述之習知方式作為「離散架構」來操作,其中每一專用處理單元存取為達成預期目的而經最佳化之對應記憶體裝置。舉例而言,專用之通用中央處理單元(CPU)可以最佳化資料頻寬存取第一類型之記憶體裝置,且較高效能之專用圖形處理單元(GPU)可以較高資料頻寬存取第二類型之記憶體裝置。在統一模式下,記憶體管理架構經組態以使相異記憶體裝置統一,且使專用處理單元能夠選擇性地存取(個別地抑或組合地)相異記憶體裝置或其部分之組合頻寬。
如圖1之實施例中所說明,系統100包含記憶體通道最佳化模組102,其電連接至兩種不同類型之動態隨機存取記憶體(DRAM)裝置104a及104b以及可存取DRAM裝置104a及104b之兩個或兩個以上專用處理單元(例如,CPU 108及GPU 106)。GPU 106經由電連接110而耦接至記憶體通道最佳化模組102。CPU 108經由電連接112而耦接至記憶體通道最佳化模組102。記憶體通道最佳化模組102進一步包含複數個硬體連接件以用於耦接至DRAM裝置104a及104b。硬體連接件可取決於記憶體裝置之類型而變化。在圖1之實例中,DRAM 104a支援分別連接至實體/控制連接件116a、116b、116c及116d之四個通道114a、114b、114c及114d。DRAM 104b支援分別連接至實體/控制連接件
120a及120b之兩個通道118a及118b。應瞭解,實體/控制連接件之數目及組態可取決於記憶體裝置之類型(包括記憶體位址之大小(例如,32位元、64位元等))而變化。
圖2說明藉由記憶體通道最佳化模組102執行之方法200,其用於藉由使相異記憶體裝置(例如,DRAM裝置104a及104b)交錯來實施統一操作模式。在區塊202處,記憶體通道最佳化模組102判定交錯頻寬比率,該交錯頻寬比率包含DRAM裝置104a及104b之資料頻寬之比率。可基於計算裝置之啟動來判定資料頻寬。
在一實施例中,可藉由存取諸如圖1中所說明之表300的資料結構來判定交錯頻寬比率。表300識別用於實施兩個DRAM裝置104a及104b的數種類型之相異記憶體裝置之各種組合的交錯頻寬比率。欄302列出DRAM裝置104a之各種組態。列304列出DRAM裝置104b之各種組態。就此而言,每一數值資料欄位識別對應組態(列/欄組態)之交錯頻寬比率。舉例而言,用黑色突出顯示表300之上部部分中的第一資料欄位,且該第一資料欄位列出交錯頻寬比率2.00,其對應於DRAM裝置104a之12.8GB/s的頻寬及DRAM裝置104b之6.4GB/s之資料頻寬。在圖3中,DRAM裝置104a及104b經最佳化以用於行動計算系統中。DRAM裝置104b包含低功率雙資料速率(LPDDR)記憶體裝置,其可習知地經最佳化以用於離散模式中從而供CPU 108專用。DRAM裝置104a包含寬I/O(寬IO)記憶體裝置,其可習知地經最佳化以用於離散模式中從而供GPU 106專用。就此而言,數值根據諸如以下各者之可變效能參數來識別DRAM裝置104a及104b之交錯頻寬比率:記憶體位址位元大小(x64、x128、x256、x512)、時脈速度(MHz),及資料頻寬(GB/s)。記憶體通道最佳化模組102可實行查找以獲得與DRAM裝置104a及104b相關聯之交錯頻寬比率。在圖2中之區塊202處,記憶體通道最佳化模組102亦可判定數值資料頻寬(例如,自表 300或直接自DRAM裝置104a及104b),且接著使用此資料來計算交錯頻寬比率。
請注意,該等類型之記憶體裝置及效能參數可取決於正實施有系統100的特定類型之計算裝置、系統應用程式等而變化。圖3中所說明之實例類型及效能參數僅在此描述中用以描述由行動系統中之記憶體通道最佳化模組102實行的例示性交錯方法。適合於通道最佳化模組102之其他隨機存取記憶體技術的一些實例包括NOR FLASH、EEPROM、EPROM、DDR-NVM、PSRAM、SRAM、PROM及ROM。一般熟習此項技術者將易於瞭解,可實行各種替代交錯方案及方法。
再次參看圖2,在區塊204處,記憶體通道最佳化模組102根據在區塊202中判定之交錯頻寬比率來使DRAM裝置104a與104b交錯。交錯程序使至用於DRAM裝置104a及104b之記憶體通道114a、114b、114c、114d以及118a及118b中之每一者的訊務分別與該特定通道之可用頻寬匹配。舉例而言,若DRAM裝置104a具有34GB/s之資料頻寬,且DRAM裝置104b具有17GB/s之資料頻寬,則交錯頻寬比率為2:1。此情形意謂,DRAM裝置104a之資料速率快達DRAM裝置104b之資料速率的兩倍。
如圖4中所說明,記憶體通道最佳化模組102可包含一或多個通道重映射模組400,其用於根據交錯頻寬比率來組態並維護DRAM裝置104a及104b之虛擬位址映射表,及根據交錯頻寬比率將訊務散佈至DRAM裝置104a及104b。圖5中說明例示性位址映射表500。位址映射表500包含位址區塊之清單502(其可具有任何大小),與基於交錯頻寬比率的對應通道及/或記憶體裝置指派。舉例而言,在圖5中,欄504說明DRAM裝置104a(「wideio2」)與DRAM裝置104b(「lpddr3e」)之間基於1:1之交錯頻寬比率的交替指派。將偶數位址區塊(N、N+2、N+4、N+6等)指派至wideio2,且將奇數位址區塊(N+1、N+3、N+5等) 指派至lpddr3e。
欄506說明針對2:1之交錯頻寬比率的另一指派。在DRAM裝置104a(「wideio2」)具有快達DRAM裝置104b(「lpddr3e」)之兩倍的速率時,針對指派至lpddr3e之每個位址區塊,將兩個連續位址區塊指派至wideio2。舉例而言,將位址區塊N及N+1指派至wideio2。將區塊N+2指派至lppdr3e。將區塊N+3及N+4指派至wideio2,等等。欄508說明針對1:2之交錯頻寬比率的另一指派,其中使指派方案顛倒,此係因為DRAM裝置104b(「lpddr3e」)快達DRAM裝置104a(「wideio2」)之兩倍。
再次參看圖2之流程圖,在區塊206處,GPU 106及CPU 108可藉由將記憶體位址請求發送至記憶體通道最佳化模組102而以習知方式存取經交錯記憶體。如圖6中所說明,可由通道重映射邏輯600接收作為對應於位址區塊N、N+1、N+2、N+3、N+4、N+5等(圖5)之請求606、608、610、612、614、616等的輸入串流的訊務。通道重映射邏輯600經組態以根據含於位址映射表500(例如,欄504、506、508等)中之交錯頻寬比率及適當指派方案而將訊務散佈(區塊208(圖2))至DRAM裝置104a及104b。
遵循2:1之交錯頻寬比率之以上實例,通道重映射邏輯600如圖6中所說明而操縱請求606、608、610、612、614及616。可操縱分別針對位址區塊N、N+1、N+3及N+4之請求606、608、612及614至DRAM裝置104a。可操縱分別針對位址區塊N+2及N+5之請求610及616至DRAM裝置104b。以此方式,來自GPU 106及CPU 108之傳入訊務可與DRAM裝置104a之記憶體通道114及/或DRAM裝置104b之記憶體通道118中之任一者上的可用頻寬最佳地匹配。此統一操作模式使得GPU 106及CPU 108能夠個別及/或共同地存取相異記憶體裝置之組合頻寬,而非限於習知離散操作模式之「區域化」高效能操作。
如上文所提及,記憶體通道最佳化模組102可經組態以基於各種所要使用情境、系統設定等來選擇性地啟用統一模式抑或離散模式。此外,應瞭解,可使相異記憶體裝置之數個部分交錯,而非使完整記憶體裝置交錯。圖7說明可由記憶體通道最佳化模組102實施以建立多個「邏輯」裝置或區的多層交錯技術。遵循使用2:1之交錯頻寬比率之以上實例,DRAM裝置104a可包含習知地經最佳化以用於GPU 106之一對0.5GB記憶體裝置702及704,其具有34GB/s之高效能頻寬。DRAM裝置104b可包含習知地經最佳化以用於CPU 108之1GB記憶體裝置706及2GB記憶體裝置708,其各自具有17GB/s之較低頻寬。多層交錯技術可建立兩個經交錯分區710及712,以及一非交錯分區714。區710可經4路交錯,以提供在102GB/s之組合頻寬下的組合1.5GB。區712可經2路交錯,以提供在34GB/s下之組合1.5GB。區714可未經交錯,以提供在17GB/s下之1GB。與系統100之記憶體管理架構組合之多層交錯技術可促進經交錯部分與非交錯部分之間的轉變,此係因為可針對可收回或可遷移資料結構及緩衝器明確地指定經交錯分區710及712之內容,而可針對諸如核心操作及/或其他低速記憶體程序之處理而指定非交錯分區714之內容。
如上文所提及,可將記憶體通道最佳化模組102併入至任何所要計算系統中。圖8說明併入於例示性攜帶型計算裝置(PCD)800中之記憶體通道最佳化模組102。記憶體最佳化模組102可包含可經分離地製造且併入至攜帶型計算裝置800之設計中的系統單晶片(SoC)或嵌入式系統。
如所展示,PCD 800包括晶載系統322,該晶載系統322包括多核CPU 402A。多核CPU 402A可包括第零核心410、第一核心412及第N核心414。該等核心中之一者可包含(例如)GPU 106,其中其他核心中之一或多者包含CPU 108。根據替代例示性實施例,CPU 402亦可包 含單一核心類型之彼等核心,且並非具有多個核心之一者,在該狀況下,CPU 108及GPU 106可為專用處理器,如系統100中所說明。
顯示控制器328及觸控式螢幕控制器330可耦接至GPU 106。又,在晶載系統322外部之觸控式螢幕顯示器108可耦接至顯示控制器328及觸控式螢幕控制器330。
圖8進一步展示,例如以下各者之視訊編碼器334耦接至多核CPU 402A:逐行倒相(PAL)編碼器、按順序傳送彩色與儲存(sequential color a memoire,SECAM)編碼器,或國家電視系統委員會(NTSC)編碼器。另外,視訊放大器336耦接至視訊編碼器334及觸控式螢幕顯示器108。又,視訊埠338耦接至視訊放大器336。如圖8中所展示,通用串列匯流排(USB)控制器340耦接至多核CPU 402A。又,USB埠342耦接至USB控制器340。記憶體404A及用戶識別模組(SIM)卡346亦可耦接至多核CPU 402A。記憶體404A可包含兩個或兩個以上相異記憶體裝置(例如,DRAM裝置104a及104b),如上文所描述。記憶體通道最佳化模組102可耦接至CPU 402A(包括(例如)CPU 108及GPU 106),且記憶體404A可包含兩個或兩個以上相異記憶體裝置。可將記憶體通道最佳化模組102作為單獨之系統單晶片(SoC)或作為SoC 322之組件來併入。
另外,如圖8中所展示,數位攝影機348可耦接至多核CPU 402A。一在例示性態樣中,數位攝影機348為電荷耦合裝置(CCD)攝影機或互補金屬氧化物半導體(CMOS)攝影機。
如圖8中進一步說明,立體音訊編碼器-解碼器(編解碼器(CODEC))350可耦接至多核CPU 402A。此外,音訊放大器352可耦接至立體音訊CODEC 350。在一例示性態樣中,第一立體聲揚聲器354及第二立體聲揚聲器356耦接至音訊放大器352。圖8展示,麥克風放大器358亦可耦接至立體音訊CODEC 350。另外,麥克風360可耦接至 麥克風放大器358。在一特定態樣中,調頻(FM)無線電調諧器362可耦接至立體音訊CODEC 350。又,FM天線364耦接至FM無線電調諧器362。另外,立體聲耳機366可耦接至立體音訊CODEC 350。
圖8進一步說明,射頻(RF)收發器368可耦接至多核CPU 402A。RF開關370可耦接至RF收發器368及RF天線372。如圖8中所展示,小鍵盤204可耦接至多核CPU 402A。又,具有麥克風之單聲道頭戴式耳機376可耦接至多核CPU 402A。另外,振動器裝置378可耦接至多核CPU 402A。
圖8亦展示,電源供應器380可耦接至晶載系統322。在一特定態樣中,電源供應器380為將電力提供至PCD 800之需要電力之各種組件的直流電(DC)電源供應器。另外,在一特定態樣中,電源供應器為可再充電DC電池或DC電源供應器,該DC電源供應器係得自至連接至AC電源之DC變壓器的交流電(AC)。
圖8進一步指示,PCD 800亦可包括網路卡388,該網路卡可用以存取資料網路,例如,區域網路、個人區域網路或任何其他網路。網路卡388可為藍芽網路卡、WiFi網路卡、個人區域網路(PAN)卡、個人區域網路超低功率技術(PeANUT)網路卡,或此項技術中熟知之任何其他網路卡。另外,網路卡388可併入至晶片中,亦即,網路卡388可為晶片中之完整解決方案,且可並非單獨網路卡388。
如圖8中所描繪,觸控式螢幕顯示器108、視訊埠338、USB埠342、攝影機348、第一立體聲揚聲器354、第二立體聲揚聲器356、麥克風360、FM天線364、立體聲耳機366、RF開關370、RF天線372、小鍵盤374、單聲道頭戴式耳機376、振動器378及電源供應器380可在晶載系統322外部。
圖9說明用於大體實施上文所描述之通道重映射解決方案以在記憶體子系統中動態地分配記憶體的系統900之另一實施例。記憶體子 系統可包含非對稱記憶體子系統902,該記憶體子系統902包含整體記憶體裝置,該記憶體裝置具有具非對稱記憶體容量(例如,分別為容量A及容量B)之兩個或兩個以上嵌入式記憶體組件(例如,記憶體組件904a及904b)。一般熟習此項技術者將瞭解,非對稱記憶體容量或非對稱組件大小設定係指連接至一個通道之記憶體容量不同於連接至第二通道之記憶體容量的情形。舉例而言,在非對稱記憶體子系統902中,記憶體組件904a可具有1GB容量組件,且記憶體組件904b可具有2GB組件。
記憶體子系統中之非對稱組件大小設定可出現於各種情形中。硬體及/或軟體之原始設備製造商(OEM)或其他相關提供者可規定使用非對稱組件大小設定以達成(例如)成本目標、效能/成本取捨等。雖然非對稱組件大小設定可提供某些成本優勢或其他優勢,但其係以記憶體效能為代價來達成。如此項技術中所已知且如上文所描述,可經由使用經交錯記憶體來改良操作記憶體效能。然而,在藉由非對稱組件大小設定組態之習知記憶體系統中,可需要將系統記憶體組織組態為非交錯記憶體而無任何效能改良,抑或組態為經部分交錯以達成一些效能改良。
在使用經部分交錯記憶體組態之現有解決方案中,針對記憶體頻寬敏感性使用而需要直接的經充分交錯之記憶體分配。此問題需要更複雜且昂貴之軟體解決方案。舉例而言,直接分配可需要次要記憶體分配程式或記憶體集區分配程式。額外複雜性及花費可出現以支援不同技術平台及/或作業系統。因為此等複雜性,現有系統可避免非對稱組件組態中之交錯,而是使用傳統之單一記憶體分配程式。結果,可需要或將受益於經交錯記憶體之應用程式遭受效能降級。
解決此等問題之另一方法已使用兩個記憶體分配程式。一個記憶體分配程式經組態以將記憶體分配至高效能之經交錯集區,且另一 記憶體分配程式將記憶體分配至相對較低效能之非交錯集區。此等方法存在許多缺點。
舉例而言,效能應用程式必須知曉高效能之記憶體分配程式以自經充分交錯之集區進行分配。其他應用程式必須經由如此項技術中已知之諸如記憶體分配函式(亦即,malloc( ))的標準記憶體分配程式進行分配。記憶體分配函式之實施僅具有用以搜集及散佈記憶體的兩種方式中之一者。記憶體分配函式自非交錯集區(如上文所描述,其為浪費的)提取,抑或其使用用以判定自哪一集區提取之演算法來自相對較低效能之非交錯集區及自經交錯集區提取。此情形提供使用標準記憶體分配程式之應用程式的不一致效能。判定使用標準記憶體分配程式之應用程式將自何集區接收記憶體的程序係非判定性的。為了解決此問題,記憶體分配程式可提供定製介面。定製解決方案可經組態以(例如)針對由每個應用程式進行之每一分配而追蹤及維護自何效能集區進行每一分配之歷史,且接著跨越多個功率循環而儲存彼資料。然而,諸如此等解決方案之定製解決方案係複雜且昂貴的。
此外,僅已經特定組態以使用交替分配程式之應用程式可使用高效能集區。因為較高效能之記憶體集區歸因於實體記憶體組態之性質而始終為最大記憶體集區,所以此方法係極其浪費之方法。可進行最佳化以減少浪費,諸如將處理器影像定位至高效能記憶體中,或進行其他手調最佳化,但最終大多數動態可分配記憶體不可用於其預期之共用用途。在此方法之修改內容中,一些現有系統引入「切出(carveout)」之概念,其中將高效能記憶體預先分配至具有高效能要求之已知應用程式。然而,對於不直接且特定地自高效能集區進行分配之記憶體使用者而言,所有已知現有解決方案會遭受記憶體分配低效或不一致效能。
應瞭解,圖9中所說明之系統900可提供一種獨特解決方案,該 解決方案解決上述問題中之一或多者以用於最佳化非對稱記憶體系統902中之記憶體效能,該非對稱記憶體系統具有具非對稱容量之記憶體組件904a及904b。舉例而言,系統900可藉由標準記憶體分配來實施,同時仍將均一效能記憶體提供至具有不同效能等級之多個記憶體集區。如下文更詳細地描述,在其他實施例中,系統900可經組態以藉由(例如)在經交錯記憶體集區或多或少變得可用於標準分配程式的情況下重映射交錯頻寬比率來調整與兩個或兩個以上記憶體集區相關聯之效能。
一般而言,系統900併有記憶體通道最佳化模組102,且充分利用上文參看圖1至圖8所描述之通道重映射方法,以動態地將記憶體分配至兩個或兩個以上記憶體區或分割區。如圖9之實施例中所說明,系統900包含記憶體通道最佳化模組102,其電連接至非對稱記憶體系統902及可存取非對稱記憶體系統902之任何數目個處理單元。應瞭解,處理單元可包括專用處理單元(例如,CPU 108及GPU 106),或其他可程式化處理器906。GPU 106經由電連接110耦接至記憶體通道最佳化模組102。CPU 108經由電連接112耦接至記憶體通道最佳化模組102。可程式化處理器906經由連接910耦接至記憶體通道最佳化模組102。專用處理單元、可程式化處理器906及應用程式912可通常被稱作非對稱記憶體系統902及/或記憶體通道最佳化模組102之「用戶端」。
可程式化處理器906可包含用於包括(例如)視訊應用程式、音訊應用程式或任何其他應用程式912之特殊用途及/或通用應用程式的數位信號處理器(DSP)。專用處理單元及/或可程式化處理器906可支援異質計算平台,該等異質計算平台經組態以支援異質系統架構(HSA),諸如由HSA基金會公開之HSA標準中所揭示的彼等HSA。當前標準(AMD I/O虛擬化技術(IOMMU)規範(在2011年3月24日發佈之 出版物第48882號,修訂版2.00))之全文在此以引用之方式併入。
如此項技術中所已知的,HSA建立改良之處理器設計,其向應用程式912顯現主流可程式化計算元件之益處及能力。藉由HSA,應用程式912可在單一統一位址空間中建立資料結構,且可在最適合於給定任務之硬體上並列地起始多個工作項目。在多個計算元件之間共用資料與發送指標一樣簡單。多個計算任務可對相同之相干記憶體區起作用,從而根據需要利用屏障及不可部分完成之記憶體操作以維持資料同步。
如下文更詳細地描述,在一實施例中,系統900在HSA內容脈絡下藉由將用於用戶端之記憶體動態地分配至兩個或兩個以上記憶體區(例如,高效能區1001及低效能區1003(圖10))來提供有利之記憶體系統組態。
再次參看圖9,記憶體通道最佳化模組102進一步包含複數個硬體連接件以用於耦接至非對稱記憶體系統902。硬體連接件可取決於記憶體裝置之類型而變化。在一實施例中,記憶體裝置包含具有非對稱組件大小設定之雙資料速率(DDR)記憶體裝置,但其他類型及組態可係合適的。在圖9之實例中,非對稱記憶體系統902支援分別連接至實體/控制連接件116a、116b、116c及116d之四個通道114a、114b、114c及114d。通道114a及114b可與記憶體組件904a相關聯,且通道114c及114d可與記憶體組件904b相關聯。應瞭解,實體/控制連接件之數目及組態可取決於記憶體裝置之類型(包括記憶體位址之大小(例如,32位元、64位元等))而變化。
系統900中之記憶體通道最佳化模組102可包含用於組態及維護虛擬位址映射表之一或多個通道重映射模組400,及用於將記憶體動態地分配至兩個或兩個以上記憶體區中的相關聯之記憶體控制器402。
如圖10之實施例中所說明,記憶體區可包含第一高效能之記憶體區1001及第二相對較低效能之記憶體區1003。高效能之記憶體區1001可包含非對稱記憶體系統902之經充分交錯部分。通道重映射模組400可將高效能之記憶體區1001分配至應用程式912或其他用戶端。就此而言,應用程式912、GPU 106、CPU 108及可程式化處理器906中之一或多者可經組態以利用自高效能之記憶體區1001進行分配之定製應用程式介面(API)。高效能之記憶體區1001可經特定地設定大小以達成各別用戶端之預期高效能記憶體利用要求。非對稱記憶體系統902中之記憶體的剩餘部分可包含低效能區1003。參考數字1005表示高效能之記憶體區1001與低效能之記憶體區1003之間的位址範圍之記憶體邊界。
在圖10之實施例中,記憶體分配模組1002組態及啟動高效能之記憶體區1001及低效能之記憶體區1003之位址範圍。高效能之記憶體區1001可經充分交錯以將最佳效能提供至相對較高頻寬之用戶端。低效能之記憶體區1003可依據(例如)最佳交錯頻寬比率而經記憶體頻寬交錯,該最佳交錯頻寬比率係根據非對稱記憶體系統902中之經交錯記憶體區塊與非經交錯記憶體區塊之相對部分而獲得。以上文關於圖1至圖8所描述之方式或以其他方式,可判定交錯頻寬比率且動態地分配記憶體。一般熟習此項技術者將瞭解,此方法可使得記憶體通道最佳化模組102能夠更佳地使用可用系統記憶體,此係因為更多記憶體可用於記憶體之標準用戶端,通道重映射模組400可確保所分配記憶體中之一致效能。
高效能之記憶體區1001及低效能之記憶體區1003的大小在系統900之操作期間可保持固定。在其他實施例中,可在系統900之操作期間動態地調整記憶體邊界1005。舉例而言,當記憶體區1001或1003中之一者中的所有記憶體位址已被分配(或逼近預定臨限值),且其他區 具有可用位址時,記憶體區調整模組1006可調整記憶體邊界1005以增加耗盡記憶體區之大小。記憶體區調整模組1006可使用(例如)習知臨限值技術或具有滯後之臨限值及/或臨限值技術來判定需要修整記憶體區1001及1003。在另一實施例中,記憶體區效能模組1004可經組態以監視高效能之記憶體區1001及/或低效能之記憶體區1003之效能。基於監視到之效能,記憶體區調整模組1006可經組態以判定需要調整。
在判定需要調整記憶體邊界1005之後,可藉由經修整之區邊界來組態通道重映射模組400。可(例如)在系統設計層級處組態經修整之記憶體邊界。在其他實施例中,可藉由判定修整之交錯頻寬比率來調整記憶體邊界1005,以確保跨記憶體區1001及1003中之一者或兩者的效能等級。舉例而言,可取決於低效能之記憶體區1003正增長抑或縮減來改良系統900之效能或使系統900之效能降級。如此項技術中所已知的,低效能之記憶體區1003之效能通常隨區大小增長而增加,此係因為低效能之記憶體區1003將包含經充分交錯記憶體之較大部分。
圖11說明用於在系統900之操作期間調整高效能之記憶體區1001及低效能之記憶體區1003的通道重映射模組400之實施例。在步驟1102處,記憶體分配模組1002最初以具有對應記憶體邊界區1005a之第一狀態1000a來組態高效能之記憶體區1001及低效能之記憶體區1003。在此實例中,高效能之記憶體區1001相較於低效能之記憶體區1003包含較大部分。在系統900之操作期間,記憶體區效能模組1004監視兩個記憶體區之效能(步驟1104及1106)。若基於監視到之效能而需要調整記憶體邊界1005a(步驟1108),則記憶體區調整模組1006可在步驟1110處觸發經修整之記憶體邊界1005b。經修整之記憶體邊界1005b對應於第二狀態1000b,在該第二狀態1000b下,高效能之記憶體區1001之大小減小且低效能之記憶體區1003之大小增加。應瞭解, 可增加或減小記憶體區1001抑或1003之大小以適應各種所要效能情形。
圖12說明用於在系統900中動態地分配記憶體之方法的實施例。在區塊1202處,使記憶體子系統之第一部分充分地交錯。在區塊1204處,根據交錯頻寬比率使記憶體子系統之第二剩餘部分部分地交錯。在區塊1206處,將第一部分分配至高效能之記憶體用戶端。在區塊1208處,將第二部分分配至相對較低效能之記憶體用戶端。可藉由記憶體通道最佳化模組102、通道重映射模組400及/或記憶體分配模組1002(圖1、圖4、圖9、圖10及圖11)以上文所描述之方式來執行交錯及/或記憶體分配。在區塊1210處,可藉由(例如)記憶體區效能模組1004(圖10及圖11)根據預定效能臨限值、操作條件或可用記憶體位址來監視第一及/或第二部分之效能。在決策區塊1212處,記憶體區調整模組1006(圖10及圖11)判定是否將調整記憶體區邊界。若不需要調整,則流程返回至區塊1210。若判定將調整記憶體區邊界,則在區塊1214處,通道重映射模組及/或記憶體通道最佳化模組102判定用於第二部分之修整之交錯頻寬比率。在區塊1216處,經由記憶體通道最佳化模組102、通道重映射模組400及/或記憶體分配模組1002中之一或多者根據修整之頻寬比率來調整記憶體區邊界。
應瞭解,本文中所描述之方法步驟中的一或多者可作為電腦程式指令(諸如,上文所描述之模組)儲存於記憶體中。此等指令可藉由任何合適處理器與對應模組結合或合作地執行以執行本文中所描述的方法。
本說明書中所描述之程序或程序流程中之某些步驟本質上先於其他步驟以使本發明如所描述而起作用。然而,若所描述之步驟之次序或序列不更改本發明之功能性,則本發明不限於該次序。亦即,認識到,在不脫離本發明之範疇及精神的情況下,一些步驟可在其他步 驟之前執行、在其他步驟之後執行,或與其他步驟並行地(實質上同時地)執行。在一些例子中,可在不脫離本發明之情況下省略或不執行某些步驟。另外,諸如「此後」、「接著」、「接下來」等之詞語不意欲限制步驟之次序。此等詞語僅用以經由例示性方法之描述而指導讀者。
另外,一般熟習程式設計者能夠撰寫電腦程式碼或識別適當硬體及/或電路,以基於(例如)本說明書中之流程圖及相關聯描述而無困難地實施所揭示之本發明。
因此,程式碼指令或詳細硬體裝置之特定集合之揭示內容未被視為對恰當地理解如何製造及使用本發明為必要的。所主張電腦實施程序之本發明功能性在以上描述中且結合可說明各種程序流程之諸圖予以更詳細地解釋。
在一或多個例示性態樣中,所描述之功能可以硬體、軟體、韌體或其任何組合來實施。若以軟體實施,則該等功能可作為一或多個指令或程式碼在一電腦可讀媒體上儲存或傳輸。電腦可讀媒體包括電腦儲存媒體及通信媒體(包括促進電腦程式自一處傳送至另一處的任何媒體)兩者。儲存媒體可為可藉由電腦存取之任何可用媒體。藉由實例而非限制,此類電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置,或可用以攜載或儲存呈指令或資料結構之形式的所要程式碼且可由電腦存取的任何其他媒體。
又,將任何連接恰當地稱為電腦可讀媒體。舉例而言,若使用同軸電纜、光纖纜線、雙絞線、數位用戶線(DSL)或諸如紅外線、無線電及微波之無線技術而自網站、伺服器或其他遠端源傳輸軟體,則同軸電纜、光纖纜線、雙絞線、DSL或諸如紅外線、無線電及微波之無線技術包括於媒體之定義中。
如本文所使用,磁碟及光碟包括緊密光碟(「CD」)、雷射光碟、光碟、數位影音光碟(「DVD」)、軟性磁碟及藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟用雷射以光學方式再現資料。以上各物之組合亦應包括於電腦可讀媒體之範疇內。
在不脫離本發明之精神及範疇的情況下,替代實施例對於一般熟習本發明關於之技術者將變得顯而易見。因此,儘管已詳細說明並描述了選定態樣,但應理解,在不脫離如由以下申請專利範圍界定之本發明之精神及範疇的情況下,可在其中作出各種替代及更改。
100‧‧‧系統
102‧‧‧記憶體通道最佳化模組
104a‧‧‧動態隨機存取記憶體(DRAM)裝置
104b‧‧‧動態隨機存取記憶體(DRAM)裝置
106‧‧‧圖形處理單元(GPU)
108‧‧‧中央處理單元(CPU)/觸控式螢幕顯示器
110‧‧‧電連接
112‧‧‧電連接
114a‧‧‧記憶體通道
114b‧‧‧記憶體通道
114c‧‧‧記憶體通道
114d‧‧‧記憶體通道
116a‧‧‧實體/控制連接件
116b‧‧‧實體/控制連接件
116c‧‧‧實體/控制連接件
116d‧‧‧實體/控制連接件
118a‧‧‧記憶體通道
118b‧‧‧記憶體通道
120a‧‧‧實體/控制連接件
120b‧‧‧實體/控制連接件

Claims (29)

  1. 一種用於動態地分配一記憶體子系統之方法,該方法包含:使一記憶體子系統之一第一部分充分地交錯,該記憶體子系統具有具非對稱記憶體容量之記憶體組件;根據一交錯頻寬比率使該記憶體子系統之一第二剩餘部分部分地交錯;將該記憶體子系統之該第一部分分配至一或多個高效能之記憶體用戶端;及將該第二剩餘部分分配至一或多個相對較低效能之記憶體用戶端。
  2. 如請求項1之方法,其中該等記憶體用戶端包含一應用程式、一中央處理單元、一圖形處理單元及一可程式化處理器中之一或多者。
  3. 如請求項1之方法,其進一步包含:監視該第一部分及該第二部分之效能;及回應於該監視到之效能,調整該第一部分與該第二部分之間的該相對記憶體分配。
  4. 如請求項3之方法,其中該調整該第一部分與該第二部分之間的該相對記憶體分配包含基於該監視到之效能判定一修整之交錯頻寬比率。
  5. 如請求項1之方法,其中該交錯頻寬比率包含一交錯記憶體區塊與一非交錯記憶體區塊之頻寬的一比率。
  6. 如請求項1之方法,其中該記憶體子系統包含一雙資料速率(DDR)記憶體裝置。
  7. 如請求項1之方法,其中該一或多個高效能之記憶體用戶端支援 一異質系統架構。
  8. 如請求項1之方法,其中一記憶體通道最佳化模組分配記憶體,且該等記憶體用戶端耦接至該記憶體通道最佳化模組。
  9. 一種用於動態地分配一記憶體子系統之系統,該方法包含:用於使一記憶體子系統之一第一部分充分地交錯的構件,該記憶體子系統具有具非對稱記憶體容量之記憶體組件;用於根據一交錯頻寬比率使該記憶體子系統之一第二剩餘部分部分地交錯的構件;將該記憶體子系統之該第一部分分配至一或多個高效能之記憶體用戶端;及將該第二剩餘部分分配至一或多個相對較低效能之記憶體用戶端。
  10. 如請求項9之系統,其中該等記憶體用戶端包含一應用程式、一中央處理單元、一圖形處理單元及一可程式化處理器中之一或多者。
  11. 如請求項9之系統,其進一步包含:用於監視該第一部分及該第二部分之效能的構件;及用於回應於該監視到之效能而調整該第一部分與該第二部分之間的該相對記憶體分配的構件。
  12. 如請求項11之系統,其中該用於調整該第一部分與該第二部分之間的該相對記憶體分配的構件包含用於基於該監視到之效能判定一修整之交錯頻寬比率的構件。
  13. 如請求項9之系統,其中該交錯頻寬比率包含一交錯記憶體區塊與一非交錯記憶體區塊之頻寬的一比率。
  14. 如請求項9之系統,其中該記憶體子系統包含一雙資料速率(DDR)記憶體裝置。
  15. 如請求項9之系統,其中該一或多個高效能之記憶體用戶端支援一異質系統架構。
  16. 一種用於在一攜帶型計算裝置中動態地分配記憶體之記憶體系統,該記憶體系統包含:一記憶體裝置,其具有具非對稱記憶體容量之記憶體組件;及一記憶體通道最佳化模組,其經由各別電連接而電耦接至用於提供複數個通道之該記憶體裝置,該記憶體通道最佳化模組包含經組態以進行以下操作之邏輯:使一記憶體子系統之一第一部分充分地交錯,該記憶體子系統具有具非對稱記憶體容量之記憶體組件;根據一交錯頻寬比率使該記憶體子系統之一第二剩餘部分部分地交錯;將該記憶體子系統之該第一部分分配至一或多個高效能之記憶體用戶端;及將該第二剩餘部分分配至一或多個相對較低效能之記憶體用戶端。
  17. 如請求項16之記憶體系統,其中該等記憶體用戶端包含一應用程式、一中央處理單元、一圖形處理單元及一可程式化處理器中之一或多者。
  18. 如請求項16之記憶體系統,其中該記憶體通道最佳化模組進一步包含經組態以進行以下操作之邏輯:監視該第一部分及該第二部分之效能;及回應於該監視到之效能,調整該第一部分與該第二部分之間的該相對記憶體分配。
  19. 如請求項18之記憶體系統,其中經組態以調整該第一部分與該 第二部分之間的該相對記憶體分配之該邏輯包含經組態以基於該監視到之效能判定一修整之交錯頻寬比率的邏輯。
  20. 如請求項16之記憶體系統,其中該交錯頻寬比率包含一交錯記憶體區塊與一非交錯記憶體區塊之頻寬的一比率。
  21. 如請求項16之記憶體系統,其中該記憶體子系統包含一雙資料速率(DDR)記憶體裝置。
  22. 如請求項16之記憶體系統,其中該一或多個高效能之記憶體用戶端支援一異質系統架構。
  23. 一種包含一電腦可使用媒體之電腦程式產品,該電腦可使用媒體具有體現於其中之一電腦可讀程式碼,該電腦可讀程式碼適於執行以實施用於在一攜帶型計算裝置中動態地分配記憶體之一方法,該方法包含:使一記憶體子系統之一第一部分充分地交錯,該記憶體子系統具有具非對稱記憶體容量之記憶體組件;根據一交錯頻寬比率使該記憶體子系統之一第二剩餘部分部分地交錯;將該記憶體子系統之該第一部分分配至一或多個高效能之記憶體用戶端;及將該第二剩餘部分分配至一或多個相對較低效能之記憶體用戶端。
  24. 如請求項23之電腦程式產品,其中該等記憶體用戶端包含一應用程式、一中央處理單元、一圖形處理單元及一可程式化處理器中之一或多者。
  25. 如請求項23之電腦程式,其中該方法進一步包含:監視該第一部分及該第二部分之效能;及回應於該監視到之效能,調整該第一部分與該第二部分之間 的該相對記憶體分配。
  26. 如請求項25之電腦程式,其中該調整該第一部分與該第二部分之間的該相對記憶體分配包含基於該監視到之效能判定一修整之交錯頻寬比率。
  27. 如請求項23之電腦程式,其中該交錯頻寬比率包含一交錯記憶體區塊與一非交錯記憶體區塊之頻寬的一比率。
  28. 如請求項23之電腦程式,其中該記憶體子系統包含一雙資料速率(DDR)記憶體裝置。
  29. 如請求項23之電腦程式,其中該一或多個高效能之記憶體用戶端支援一異質系統架構。
TW102141947A 2012-12-10 2013-11-18 用於在具有非對稱記憶體組件之記憶體子系統中動態分配記憶體之系統、方法及電腦程式產品 TWI525435B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261735352P 2012-12-10 2012-12-10
US13/726,537 US8959298B2 (en) 2012-12-10 2012-12-24 System and method for managing performance of a computing device having dissimilar memory types
US13/781,320 US9110795B2 (en) 2012-12-10 2013-02-28 System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components

Publications (2)

Publication Number Publication Date
TW201435589A true TW201435589A (zh) 2014-09-16
TWI525435B TWI525435B (zh) 2016-03-11

Family

ID=50882318

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102141947A TWI525435B (zh) 2012-12-10 2013-11-18 用於在具有非對稱記憶體組件之記憶體子系統中動態分配記憶體之系統、方法及電腦程式產品

Country Status (7)

Country Link
US (1) US9110795B2 (zh)
EP (1) EP2929447B1 (zh)
JP (1) JP5914773B2 (zh)
KR (1) KR101627478B1 (zh)
CN (1) CN104854572B (zh)
TW (1) TWI525435B (zh)
WO (1) WO2014092884A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868650B2 (en) 2020-09-16 2024-01-09 Micron Technology, Inc. Apparatus with combinational access mechanism and methods for operating the same

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US8959298B2 (en) 2012-12-10 2015-02-17 Qualcomm Incorporated System and method for managing performance of a computing device having dissimilar memory types
US9092327B2 (en) 2012-12-10 2015-07-28 Qualcomm Incorporated System and method for allocating memory to dissimilar memory devices using quality of service
US9612648B2 (en) * 2013-08-08 2017-04-04 Qualcomm Incorporated System and method for memory channel interleaving with selective power or performance optimization
CN104954796B (zh) * 2014-03-28 2019-06-11 联咏科技股份有限公司 视频处理装置与其视频处理电路
US9823846B2 (en) * 2014-08-20 2017-11-21 Qualcomm Incorporated Systems and methods for expanding memory for a system on chip
US10126950B2 (en) * 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
KR102464801B1 (ko) * 2015-04-14 2022-11-07 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
US20170108914A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for memory channel interleaving using a sliding threshold address
US20170108911A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving
US20170162235A1 (en) * 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US10140223B2 (en) 2016-06-27 2018-11-27 Qualcomm Incorporated System and method for odd modulus memory channel interleaving
US10372635B2 (en) 2016-08-26 2019-08-06 Qualcomm Incorporated Dynamically determining memory attributes in processor-based systems
KR20180058456A (ko) 2016-11-24 2018-06-01 삼성전자주식회사 메모리를 관리하는 방법 및 장치.
US10254961B2 (en) * 2017-02-21 2019-04-09 International Business Machines Corporation Dynamic load based memory tag management
CN108628776B (zh) * 2017-03-22 2022-02-18 华为技术有限公司 一种数据读写访问控制方法及装置
US10769073B2 (en) 2018-03-28 2020-09-08 Qualcomm Incorporated Bandwidth-based selective memory channel connectivity on a system on chip
KR102057518B1 (ko) 2018-05-23 2019-12-19 단국대학교 산학협력단 메모리 버스트에 정렬되지 않은 요청 제어를 위한 장치 및 방법
EP3822796B1 (en) * 2018-07-31 2023-01-18 Huawei Technologies Co., Ltd. Memory interleaving method and device
CN112148653A (zh) * 2019-06-26 2020-12-29 北京百度网讯科技有限公司 数据传输装置、数据处理系统、数据处理方法和介质
US11321068B2 (en) 2019-09-05 2022-05-03 International Business Machines Corporation Utilizing memory coherency to improve bandwidth performance
US11749332B2 (en) 2021-02-11 2023-09-05 Qualcomm Incorporated Effective DRAM interleaving for asymmetric size channels or ranks while supporting improved partial array self-refresh
WO2024006501A1 (en) * 2022-06-30 2024-01-04 Advanced Micro Devices, Inc. Dynamic memory reconfiguration

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341486A (en) 1988-10-27 1994-08-23 Unisys Corporation Automatically variable memory interleaving system
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7484065B2 (en) 2004-04-20 2009-01-27 Hewlett-Packard Development Company, L.P. Selective memory allocation
US7716669B2 (en) 2004-04-30 2010-05-11 Microsoft Corporation Concurrent system applications in a multimedia console
US7477257B2 (en) 2005-12-15 2009-01-13 Nvidia Corporation Apparatus, system, and method for graphics memory hub
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US20070180203A1 (en) 2006-02-01 2007-08-02 Madhusudhan Ramgarajan Optimizing system performance in flexible interleaving memory mode
US7707379B2 (en) 2006-07-13 2010-04-27 International Business Machines Corporation Dynamic latency map for memory optimization
US7620793B1 (en) 2006-08-28 2009-11-17 Nvidia Corporation Mapping memory partitions to virtual memory pages
US7768518B2 (en) 2006-09-27 2010-08-03 Intel Corporation Enabling multiple instruction stream/multiple data stream extensions on microprocessors
US20080250212A1 (en) 2007-04-09 2008-10-09 Ati Technologies Ulc Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information
US8271827B2 (en) 2007-12-10 2012-09-18 Qimonda Memory system with extended memory density capability
US8289333B2 (en) 2008-03-04 2012-10-16 Apple Inc. Multi-context graphics processing
US8099539B2 (en) 2008-03-10 2012-01-17 Lsi Corporation Method and system of a shared bus architecture
US8531471B2 (en) 2008-11-13 2013-09-10 Intel Corporation Shared virtual memory
KR20100100395A (ko) * 2009-03-06 2010-09-15 삼성전자주식회사 복수의 프로세서를 포함하는 메모리 시스템
US8266389B2 (en) 2009-04-29 2012-09-11 Advanced Micro Devices, Inc. Hierarchical memory arbitration technique for disparate sources
US8451281B2 (en) 2009-06-23 2013-05-28 Intel Corporation Shared virtual memory between a host and discrete graphics device in a computing system
US8407516B2 (en) 2009-12-23 2013-03-26 Intel Corporation Controlling memory redundancy in a system
US8669990B2 (en) 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US20110242427A1 (en) 2010-04-01 2011-10-06 Timothy Ramsdale Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory
US20110320751A1 (en) 2010-06-25 2011-12-29 Qualcomm Incorporated Dynamic Interleaving Of Multi-Channel Memory
US20120054455A1 (en) 2010-08-31 2012-03-01 Qualcomm Incorporated Non-Uniform Interleaving Scheme In Multiple Channel DRAM System
US8314807B2 (en) 2010-09-16 2012-11-20 Apple Inc. Memory controller with QoS-aware scheduling
WO2012083211A1 (en) 2010-12-17 2012-06-21 Everspin Technologies, Inc. Memory controller and method for interleaving dram and mram accesses
US8854387B2 (en) 2010-12-22 2014-10-07 Advanced Micro Devices, Inc. Bundle-based CPU/GPU memory controller coordination mechanism
CN103620563B (zh) 2011-04-26 2015-04-29 Lsi公司 用于非易失性存储器的可变超量配置
US9092327B2 (en) 2012-12-10 2015-07-28 Qualcomm Incorporated System and method for allocating memory to dissimilar memory devices using quality of service
US8959298B2 (en) 2012-12-10 2015-02-17 Qualcomm Incorporated System and method for managing performance of a computing device having dissimilar memory types

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868650B2 (en) 2020-09-16 2024-01-09 Micron Technology, Inc. Apparatus with combinational access mechanism and methods for operating the same

Also Published As

Publication number Publication date
KR20150095724A (ko) 2015-08-21
US20140164720A1 (en) 2014-06-12
US9110795B2 (en) 2015-08-18
EP2929447A1 (en) 2015-10-14
CN104854572A (zh) 2015-08-19
JP5914773B2 (ja) 2016-05-11
EP2929447B1 (en) 2016-08-03
WO2014092884A1 (en) 2014-06-19
KR101627478B1 (ko) 2016-06-03
JP2015537317A (ja) 2015-12-24
CN104854572B (zh) 2017-04-05
TWI525435B (zh) 2016-03-11

Similar Documents

Publication Publication Date Title
TWI525435B (zh) 用於在具有非對稱記憶體組件之記憶體子系統中動態分配記憶體之系統、方法及電腦程式產品
TWI534620B (zh) 使用服務品質將記憶體分配至相異記憶體裝置之方法、系統及電腦程式產品
JP6178512B2 (ja) 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法
TWI492053B (zh) 用於管理具有相異記憶體類型之計算裝置效能之系統及方法
US10140223B2 (en) System and method for odd modulus memory channel interleaving
KR101914350B1 (ko) 동적 메모리 i/o 리사이징을 이용하여 메모리 전력을 절약하기 위한 시스템 및 방법
TW201717026A (zh) 用於逐頁記憶體通道交錯之系統及方法
TW201729113A (zh) 使用滑動臨限值位址用於記憶體通道交錯之系統及方法
TW201717025A (zh) 用於逐頁記憶體通道交錯之系統及方法
EP3427153A1 (en) Multi-rank collision reduction in a hybrid parallel-serial memory system

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees