TWI537815B - 用於記憶體適應性控制之裝置及方法 - Google Patents
用於記憶體適應性控制之裝置及方法 Download PDFInfo
- Publication number
- TWI537815B TWI537815B TW103108825A TW103108825A TWI537815B TW I537815 B TWI537815 B TW I537815B TW 103108825 A TW103108825 A TW 103108825A TW 103108825 A TW103108825 A TW 103108825A TW I537815 B TWI537815 B TW I537815B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- information
- processing unit
- depth
- mapping
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Description
本申請案主張在2013年3月15日提出申請之第61/799,731號美國臨時申請案及在2013年6月6日提出申請之第13/911,797號美國非臨時申請案之優先權,該等申請案出於任何目的以全文引用之方式併入本文中。
本發明之實施例一般而言係關於記憶體,且更特定而言在所圖解說明實施例中之一或多者中係關於使用一適應性記憶體控制器之記憶體之控制。
所浮現之記憶體架構經設計以處置各種不同要求大小且可包括具有不同特性之記憶體。舉例而言,一直以來存在用於由動態隨機存取記憶體(DRAM)及相變記憶體(PCM)或多個類型之DRAM晶片(例如,雙倍資料速率(DDR)、低電力DDR(LPDDR)、減少等待時間DRAM(RLDRAM))組成之記憶體之數個提議。此外,某些電腦系統可支援非均勻記憶體存取(NUMA),其中根據可用記憶體之效能來放置資訊。記憶體亦可使其特性動態地改變,即使在由相同類型之記憶體(例如,NAND快閃記憶體)組成時。舉例而言,多通道記憶體及動態DRAM頻率切換改變記憶體之特性。非揮發性記憶體特性亦可係高
度非均勻的,其中某些NAND快閃記憶體分頁比其他NAND快閃記憶體分頁更快地讀取或寫入,其中等待時間隨著其磨損而改變,或隨著不同快閃記憶體內或之間之多階胞元(MLC)之不同級而改變。
動態記憶體重新組態之其他實例包括一電腦系統中之資訊在具有不同固定或可組態特性之記憶體上之動態放置。舉例而言,可朝向高等待時間揮發性記憶體引導來自高度串列或寫入主導的演算法之請求,而可自較低等待時間或非揮發性記憶體服務來自並行演算法之請求。在其他實例中,亦可朝向低等待時間記憶體引導來自高度串列或寫入主導的演算法之請求,而可自較高等待時間服務來自並行演算法之請求。基於一演算法之特性而選擇與該演算法相關之資訊之一記憶體分配可實現記憶體系統設計中之一有效成本-效能-能量權衡。
此等不同適應性機制之控制及協調之習用提議係併入記憶體管理作為標準作業系統軟體之部分,存取一有限組可存取硬體效能計數器以引導記憶體組態決策。隨著朝向抽象記憶體及硬體(其將記憶體控制卸載至記憶體本身)移動,標準化的軟體介面將係不足的。特定而言,抽象記憶體能夠利用記憶體變化及自調諧來使效能最大化,而當前軟體不知道此等功能。記憶體控制系統受益於知曉主機處理器狀態,但不存在用以給記憶體控制邏輯饋送適當統計之機制。
提供裝置之實例。一實例性裝置可包括經組態以運行一作業系統之一處理單元及耦合至該處理單元之一記憶體。該記憶體可經組態以經由一記憶體匯流排與該處理單元通信。該實例性裝置可進一步包括經組態以自該記憶體且自該處理單元接收所監視統計資料之一適應性記憶體控制器。該適應性記憶體控制器可經組態以基於該所監視統計資料而管理該記憶體。
一實例性裝置可包括經組態以運行一作業系統之一處理單元及
耦合至該處理單元之一記憶體,該記憶體經組態以經由一記憶體匯流排與該處理單元通信。該實例性裝置可進一步包括經組態以管理儲存於該記憶體處之資訊遷移之一記憶體轉譯單元(MTU)。該MTU可進一步經組態以藉由維持映射表而在儲存於該記憶體處之該資訊自一第一深度映射至一第二深度映射之遷移期間支援該記憶體之一中間深度映射。
一實例性裝置可包括經組態以儲存資訊之一記憶體及經組態以運行一作業系統之一處理單元。該處理單元可經組態以管理該記憶體之資訊深度映射。回應於將儲存於該記憶體之記憶空間處之資訊自一第一資訊深度映射遷移至一第二資訊深度映射之一請求,該處理單元可經組態以將儲存於記憶體之記憶空間處之該資訊遷移至一中間資訊深度映射。該第一資訊深度映射可具有一第一資訊深度,且該第二資訊深度映射及該中間資訊深度映射可各自具有一第二資訊深度。
一實例性裝置可包括經組態以儲存資訊之一記憶體。該記憶體之記憶空間可組態有兩個或兩個以上資訊深度映射。該實例性裝置可進一步包括一記憶體轉譯單元(MTU),其經組態以藉由維持映射表而在儲存於該記憶體處之該資訊自該兩個或兩個以上資訊深度映射中之一第一資訊深度映射至該兩個或兩個以上資訊深度中之一第二資訊深度映射之遷移期間支援該記憶體之一中間深度映射。該MTU可進一步經組態以基於該等映射表提供與一記憶體存取請求之一所請求位址相關聯之一經映射位址至該記憶體。
本文中揭示實例性方法。一實例性方法可包括:回應於自一處理單元接收之記憶體存取請求而在記憶體中擷取資訊;及基於與該記憶體及該處理單元相關聯之所監視統計資料而在運行一記憶體管理(MMH)超管理器作業系統之一記憶體管理處理器(MMP)處管理該記憶體之一組態。
一實例性方法可包括在一運算系統之一處理單元處接收該運算系統之一記憶體之一部分自一第一資訊深度映射移動至一第二資訊深度映射之一請求。該第一資訊深度映射可具有一第一資訊深度且該第二資訊深度映射可具有一第二資訊深度。該實例性方法可進一步包括:回應於該請求而判定該運算系統是否具有充足資源來執行自該第一資訊深度映射至該第二資訊深度映射之該移動;及基於該運算系統不具有充足資源來執行自該第一資訊深度映射至該第二資訊深度映射之該移動之一判定而將來自該處理單元之命令提供至該記憶體以執行該記憶體之該部分自該第一資訊深度映射至一中間資訊深度映射之遷移。該中間資訊深度映射可具有該第二資訊深度。
一實例性方法可包括在一記憶體轉譯單元處接收一記憶體存取請求,該記憶體存取請求包括一所請求位址。該方法可進一步包括:判定與該所請求位址相關聯之一記憶體之一區之一映射狀態;及提供一經映射位址至該記憶體。基於與該所請求位址相關聯之該記憶體之該區之該狀態,該經映射位址可選自該所請求位址或一經轉譯所請求位址中之一者。
100‧‧‧裝置
110‧‧‧中央處理單元
120‧‧‧記憶體
122‧‧‧非揮發性記憶體
124‧‧‧揮發性記憶體
130‧‧‧適應性記憶體控制器
200‧‧‧裝置
210‧‧‧中央處理單元
212‧‧‧主機處理單元
214‧‧‧主機處理單元
216‧‧‧主機處理單元
218‧‧‧主機處理單元
220‧‧‧記憶體/記憶體單元
222‧‧‧非揮發性記憶體
224‧‧‧揮發性記憶體
226‧‧‧記憶體控制器
230‧‧‧適應性記憶體控制器
240‧‧‧記憶體轉譯單元MTU
242‧‧‧映射表
244‧‧‧組態與命令資訊單元
246‧‧‧經鎖定分頁處置程式
250‧‧‧效能監視單元PMU
254‧‧‧效能監視單元介面
260‧‧‧記憶體管理處理器MMP
300‧‧‧方塊圖
310‧‧‧主機作業系統
320‧‧‧記憶體管理超管理器作業系統
330‧‧‧半虛擬化作業系統
340‧‧‧上部層級硬體與支援資訊
350‧‧‧下部層級硬體
700‧‧‧記憶體轉譯單元MTU
705‧‧‧映射表
710‧‧‧區/子區表
720‧‧‧舊深度表
730‧‧‧深度表
740‧‧‧位址擾碼表
750‧‧‧比較器
760‧‧‧多工器
800‧‧‧表
910‧‧‧舊資訊映射表/初始資訊映射表
912‧‧‧舊深度映射M0表
915‧‧‧中間資訊映射表
917‧‧‧中間深度映射M1表
920‧‧‧資訊「D」
922‧‧‧位址4’b0110
924‧‧‧位址4’b1100
CH0至CH7‧‧‧通道
ROW1‧‧‧列
ROW2‧‧‧列
RQST ADDR‧‧‧所請求位址
MAPPED ADDR‧‧‧經映射位址輸出
圖1係根據本發明之一實施例之包括一適應性記憶體控制器之一裝置之一方塊圖。
圖2係根據本發明之一實施例之包括一適應性記憶體控制器之一裝置之一方塊圖。
圖3係根據本發明之一實施例之包括一記憶體管理超管理器之一硬體/軟體堆棧之一方塊圖。
圖4至圖6係根據本發明之一實施例之一中間資訊深度映射之例示性方塊圖。
圖7係根據本發明之一實施例之一記憶體轉譯單元之一方塊圖。
圖8係根據本發明之一實施例之一記憶體之一區/子區分配之一方塊圖。
圖9係根據本發明之一實施例之中間資訊深度映射存取之一例示性方塊圖。
下文將陳述某些細節以提供對本發明之實施例之一充分理解。然而,熟習此項技術者將清楚,可在無此等特定細節之情況下實踐本發明之實施例。此外,本文中所闡述之裝置及方法之特定實施例以舉例之方式提供且不應用於將本發明之範疇限制於此等特定實施例。在其他例項中,未詳細展示眾所周知之電路、控制信號、時序協定及軟體操作以避免不必要地使本發明模糊。
圖1圖解說明根據本發明之一實施例之包括一適應性記憶體控制器之一裝置。裝置100可包括耦合至一記憶體120及一適應性記憶體控制器130之一中央處理單元110。中央處理單元110可經由一記憶體匯流排耦合至記憶體120。中央處理單元110可包括多個主機處理單元。在某些實施例中,該多個主機處理單元可在一單個晶片上。在其他實施例中,中央處理單元110可跨越多個晶片而散佈且經由一網路通信。中央處理單元110之每一處理單元可具有一相關聯快取記憶體。在某些實施例中,中央處理單元110之快取記憶體可係快取一致的(例如,所有快取記憶體彼此一致)。記憶體120可經組態以回應於自中央處理單元110及/或適應性記憶體控制器130接收之請求而儲存及提供資訊(例如,資料及指令)。記憶體120可包括一非揮發性記憶體122及/或一揮發性記憶體124。在某些實施例中,非揮發性記憶體122及/或揮發性記憶體124係多通道記憶體。非揮發性記憶體122可包括快閃記憶體(例如,NAND及/或NOR)、PCM及/或其他非揮發性記憶體。揮發性記憶體124可包括DRAM、SRAM及/或其他揮發性記憶體。
適應性記憶體控制器130可經組態以基於中央處理單元110及記憶體120之所監視統計資料(例如,計數器、時序、處理趨向)而監視及管理記憶體120。舉例而言,適應性記憶體控制器130可經組態以基於該所監視統計資料而動態地映射及遷移記憶體120處之記憶體區塊及/或重新組態與記憶體120相關聯之設定。記憶體120之所監視統計資料可包括儲存於記憶體120處之資訊之深度映射設定、非揮發性記憶體122及揮發性記憶體124之及其之間之資訊映射、非揮發性記憶體122及/或揮發性記憶體124之存取頻率或其任何組合。中央處理單元110之所監視統計資料可包括記憶體存取之類型、記憶體存取之頻率、中央處理單元110之處理單元之閒置時間或其任何組合。
在操作中,裝置100可經組態以運行一作業系統(OS)。作業系統可在中央處理單元110之一或多個處理單元上運行,其中資訊(例如,資料及指令)儲存於記憶體120處。在某些實施例中,作業系統可在適應性記憶體控制器130之一處理單元處至少部分地執行。中央處理單元110可經組態以在操作器件經由記憶體匯流排將記憶體存取請求提供至記憶體120。記憶體120可處理記憶體存取請求以基於記憶體存取請求而儲存及/或擷取資訊。中央處理單元110及/或適應性記憶體控制器130可經組態以監視與中央處理單元110及/或記憶體120相關聯之統計資料。基於所監視統計資料,適應性記憶體控制器130可經組態以管理儲存於記憶體120中之資訊之組態,並且管理記憶體120之組態設定。舉例而言,適應性記憶體控制器130可經組態以映射及遷移記憶體120之記憶體區塊。如參考圖2將進一步闡述,作業系統可提供監視與中央處理單元110及記憶體120相關聯之統計資料之記憶體管理執行緒(MMT)。管理記憶體120之組態之適應性記憶體控制器130可改良裝置100之效率。舉例而言,適應性記憶體控制器130可以減少正在請求資訊之在裝置100上運行之一軟體應用程式之擷取等待時間之一方式
映射記憶體120處之資訊之儲存。在另一實施例中,適應性記憶體控制器130可以減少在正在請求資訊之在裝置100上運行之一軟體應用程式之擷取期間之電力消耗之一方式映射記憶體120處之資訊之儲存。
圖2圖解說明根據本發明之一實施例之包括一適應性記憶體控制器之一裝置200。裝置200可包括耦合至一記憶體220及適應性記憶體控制器230之一中央處理單元210。適應性記憶體控制器230可經組態以基於中央處理單元210及記憶體220之所監視統計資料而管理記憶體220之組態且管理及遷移儲存於記憶體220處之資訊。經組態以基於所監視統計資料而管理及遷移儲存於記憶體220處之資訊之適應性記憶體控制器230可用於藉由基於中央處理單元210(及/或適應性記憶體控制器230)與記憶體220之間之訊務而管理資訊深度及位置來改良裝置200之效率(例如,電力及等待時間)。中央處理單元210、記憶體220及適應性記憶體控制器230可分別對應於圖1之中央處理單元110、記憶體120及適應性記憶體控制器130。
中央處理單元210可經組態以經由一記憶體匯流排與記憶體220通信。中央處理單元210可包括互連之主機處理單元212、214、216及218。主機處理單元212、214、216及218中之每一者可包括一相關聯快取記憶體。主機處理單元212、214、216及218可駐存於一單個晶片上或可駐存於多個晶片或電腦系統上。在某些實施例中,主機處理單元212、214、216及218可係快取一致的(例如,所有快取記憶體彼此一致),其係經由一共同匯流排來維持。在其他實施例中,主機處理單元212、214、216及218可在單個晶片上或跨越多個晶片或電腦系統由一替代類型之網路(例如,一網路單晶片(NoC))互連。
記憶體220可經組態以基於自中央處理單元210及/或適應性記憶體控制器230接收之請求而儲存及提供資訊(例如,資料及指令)。記憶體220可包括經組態以經由一記憶體匯流排與中央處理單元210之主
機處理單元212、214、216及218通信之一記憶體控制器226。舉例而言,記憶體220可包括經組態以經由一記憶體匯流排自中央處理單元210之主機處理單元212、214、216及218接收資訊及/或提供資訊至中央處理單元210之主機處理單元212、214、216及218之一記憶體控制器226。記憶體220可進一步包括一非揮發性記憶體222及/或一揮發性記憶體224。非揮發性記憶體222及/或揮發性記憶體224可經組態以基於自記憶體控制器226接收之命令而儲存自主機處理單元212、214、216及218接收及/或提供至主機處理單元212、214、216及218之資訊。揮發性記憶體224可包括DRAM、SRAM及/或其他揮發性記憶體。揮發性記憶體224可係快閃記憶體(例如,NAND及/或NOR)、PCM及/或其他非揮發性記憶體。在某些實施例中,記憶體可具有額外記憶體控制器。舉例而言,非揮發性記憶體222及揮發性記憶體可具有單獨記憶體控制器。另外,在某些實施例中,每一類型之記憶體具有一單獨記憶體控制器。舉例而言,DRAM及SRAM可具有單獨記憶體控制器及/或NAND快閃記憶體、NOR快閃記憶體及/或PCM可具有單獨記憶體控制器。為清晰闡述裝置200起見,記憶體控制器226可指記憶體220之一或多個記憶體控制器。
在某些實施例中,非揮發性記憶體222及/或揮發性記憶體224可包括用於存取資訊之一多通道組態。在一多通道組態中,一單個資訊區塊可係深的(不跨越通道作為一長序列寫入)或淺的(跨越諸多通道作為一短序列寫入)。淺組態可權衡較高電力消耗而換取每一異動之較低等待時間,而深組態可權衡較高等待時間而換取每一異動之較高併發性及較低電力消耗。
適應性記憶體控制器230可經組態以基於中央處理單元210及記憶體220之統計資料(例如,計數器、時序、組態、處理趨向)而監視及管理記憶體220。適應性記憶體控制器230可包括一記憶體管理處理
器MMP 260、一效能監視單元PMU 250及一記憶體轉譯單元MTU 240。PMU 250可經組態以監視統計資料。效能監視單元PMU 250可包括一PMU介面254。PMU 250可經組態以經由PMU介面254與記憶體控制器226、MMP 260及/或主機處理單元212、214、216及218中之一或多者通信以監視統計資料。在某些實施例中,PMU介面254經組態以經由共同匯流排等與MMP 260以及主機處理單元212、214、216及218通信。此外,PMU介面254可經組態以經由記憶體匯流排或至記憶體控制器226之一直接連接中之至少一者與記憶體220之記憶體控制器226通信。PMU 250可經組態以監視自記憶體控制器226、MMP 260及/或主機處理單元212、214、216及218中之一或多者接收之統計資料。
MMP 260可經組態以運行用以管理記憶體220之記憶體管理執行緒(MMT)。舉例而言,MMP 260可經組態以運行MMT從而基於來自PMU 250之所監視統計資料而判定何時及/或如何重新組態記憶體220。MMP 260可包括一快取記憶體,且在某些實施例中可與主機處理單元212、214、216及218快取一致,其係經由共同匯流排來維持。MMP 260可經組態以提供命令至MTU 240以起始或管理記憶體單元220之記憶體區塊之遷移(例如,重新映射)及/或重新組態記憶體220之可組態態樣。MMP 260亦可經組態以提供記憶體存取請求至記憶體220。
MTU 240可經組態以與記憶體控制器226、MMP 260及/或主機處理單元212、214、216及218中之一或多者通信以便執行各種功能。由MTU 240執行之實例性功能可包括位址轉譯、管理資訊遷移、管理相關聯轉譯表、支援中間資訊深度映射或其任何組合。為支援此等功能,MTU 240可經組態以基於自MMP 260接收之命令而更新及維持映射表242及一組態與命令資訊單元244。映射表242可包括一區/子區表
(RS表)、深度表(D表)、舊深度表(OD表)及一位址擾碼表(AS表)。組態與命令資訊單元244可經組態以維持及更新記憶體單元220之組態(例如,揮發性記憶體224頻率、再新週期、非揮發性記憶體222多階胞元(MLC)模式、改變揮發性記憶體224通道位址映射(通道深度)等)。MTU 240可進一步包括經組態以在記憶體220中之一區塊遷移期間將一經鎖定分頁之一指示提供至一主機處理單元212、214、216及218,從而進行對儲存於一經鎖定分頁中之資訊之一請求之一經鎖定分頁處置程式246。
在操作中,裝置200可經組態以運行一作業系統。作業系統可在中央處理單元210之主機處理單元212、214、216及218處運行,在此期間可存取儲存於記憶體220處之資訊(例如,資料及指令)。通常,一作業系統係管理電腦硬體且為電腦程式(例如,軟體應用程式)提供共同服務之一軟體集合。亦即,一作業系統包括與硬體(例如,中央處理單元210、記憶體220及適應性記憶體控制器230)及電腦程式(例如,軟體應用程式)介接之基本功能。在存取儲存於記憶體220處之資訊(例如,資料及指令)時,主機處理單元212、214、216及218可發送包括在邏輯上識別待存取之位置之邏輯位址之記憶體存取請求。在存取非揮發性記憶體222及/或揮發性記憶體224時,使用一位址映射來自邏輯位址轉譯至記憶體220之一實體位址。在某些實施例中,作業系統可惜經組態以支援在主機處理單元212、214、216及218中之一或多者上運行之客體作業系統之一記憶體管理超管理器(MMH)(例如,一虛擬機器管理程式)作業系統。客體作業系統之實例可包括伺服器作業系統(例如,Microsoft ® Windows ®伺服器、Microsoft ® Windows ® Home Server、Microsoft ® Windows ® Multipoint Server、Microsoft ® Windows ® Small Business Server、Linux ® CentOS、Linux ® Red Hat Enterprise、SUSE Enterprise Server等,包括其他伺
服器作業系統)、用戶端作業系統(例如,Microsoft ® Windows ® 2000、XP、Vista、7、8等、Apple ® Mac OS、Berkeley Software Distribution(BSD)FreeBST、NetBSD、OpenBSD等,包括其他用戶端作業系統)及任何其他類型之作業系統。MMH作業系統可係負責控制中央處理單元210、記憶體220及適應性記憶體控制器230之硬體之一軟體層。
在裝置100中,主機處理單元212、214、216及218可經組態以在一既定時間運行多個應用執行緒,其中一既定應用執行緒可包括具有不同邏輯位址型樣之不同階段。適應性記憶體控制器230可經組態以執行記憶體220之動態重新組態以匹配一資訊映射與在主機處理單元212、214、216及218上運行之執行緒之改變的記憶體型樣。
為支援適應性記憶體控制器230對記憶體220之動態重新組態之效能,MMH作業系統可包括在MMP 260上至少部分地運行之功能性以(舉例而言)自主機處理單元212、214、216及218卸載記憶體管理任務。舉例而言,MMH作業系統可提供經組態以管理MTU 240及/或記憶體220之MMT。MMH作業系統可將MMT之執行指派至MMP 260。為支援MMT,MMP 260可包括硬體單元以增加與MMT相關聯之記憶體管理任務之效率。硬體單元之實例可包括統計監視單元、直接記憶體存取(DMA)引擎/單元、錯誤校正碼(ECC)編碼器/解碼器等。運行MMT之MMP 260可操作以直接地或經由MTU 240組態記憶體220;自主機處理單元212、214、216及218卸載記憶體管理任務;初始化及更新MTU 240上之映射;及修改系統分頁表(或請求對其之修改)。
舉例而言,運行MMT之MMP 260可經組態以基於自PMU 250接收之所監視統計資料而判定何時及如何重新組態記憶體220。記憶體220之重新組態之實例可包括針對容錯(fault-tolerance)執行記憶體清理、改變揮發性記憶體224頻率、改變再新週期、改變非揮發性記憶
體222 MLC模式、改變揮發性記憶體224通道位址映射(通道深度)等。此外,如上文所闡釋,適應性記憶體控制器230可經組態以執行記憶體220之動態重新組態從而匹配一資訊映射與在主機處理單元212、214、216及218上運行之執行緒之改變的記憶體型樣。然而,改變資訊映射可導致大量資訊之實體移動,此可消耗寶貴的頻寬及能量,從而降低效能。因此,運行MMT之MMP 260可經組態以使用一中間資訊深度映射來映射資訊。將參考圖4至圖9進一步闡述中間資訊深度映射。
PMU 250可具有對由記憶體控制器226以及主機處理單元212、214、216及218提供之統計之特權存取,包括微架構效能計數器,以監視提供至運行MMT之MMP 260之統計資料。在某些實施例中,PMU 250可具有與記憶體控制器226之一選用直接連接而非經由共同匯流排監視統計資料。由PMU 250提供至MMP 260之所監視統計資料之實例可包括任何晶片上結構(例如,載入/儲存佇列)、重新排序緩衝器(ROB)及記憶體控制器226佇列之一狀態,其中之某些可係一典型作業系統不可存取的。此等統計經由PMU 250之可用性可幫助引導MMT進行的記憶體決策。
另外及/或另一選擇係,運行MMT之MMP 260亦可經組態以經由組態與命令資訊單元244與MTU 240通信以控制記憶體220位址映射及政策之組態。舉例而言,基於自PMU 250接收之所監視統計資料,運行MMT之MMP 260亦可經組態以初始化及更新在MTU 240之組態與命令資訊單元244處維持之記憶體220之映射及組態狀態。如上文所闡釋,MTU 240可經組態以執行各種功能,包括位址轉譯、管理資訊遷移及管理相關聯轉譯表、支援中間資訊深度映射或其任何組合。MTU 240可經組態以回應於自運行MMT之MMP 260接收之命令而執行此等功能,包括支援中間資訊深度映射等。
為支援MTU 240及運行MMT之MMP 260之功能性,裝置200可包括擴充分頁表及轉譯後備緩衝器(TLB)以用於處理記憶體存取請求。舉例而言,擴充表及TLB可含有指示位址映射設定及記憶體組態之額外後設資料。擴充表及TLB可由記憶體控制器226及/或MTU 240維持。擴充表中之後設資料之實例包括非揮發性記憶體222及/或揮發性記憶體224之一遷移操作、一ECC類型、強度及ECC位元分佈、深度映射模式之一指示、多通道記憶體(例如,非揮發性記憶體222及/或揮發性記憶體224)之一中間資訊深度映射之支援位元、記憶體通道組態及頻率(例如,儲存於組態與命令資訊單元244中)及/或其他可動態控制記憶體映射或硬體組態設定。在某些實施例中,擴充表及TLB可係客體作業系統不可見的且僅實施於MMH作業系統之影子分頁表中。在其他實施例中,擴充表及TLB可係透明的且可用於MMH作業系統及客體作業系統兩者。
MTU 240可經組態以管理及/或使用擴充表及TLB中之後設資料中之至少某些後設資料以指派位址轉譯、管理資訊遷移及管理相關聯轉譯表。如上文所闡釋,MTU 240可經組態以自主機處理單元212、214、216及218中之任一者及/或MMP 260接收記憶體存取請求。在某些情形中,記憶體存取請求可對應於正經歷一遷移操作之一分頁(例如,一飛行中分頁(in-flight page))。MTU 240可經組態以在遷移操作期間處置對一飛行中分頁之一存取且讀取或修改飛行中分頁之區塊。舉例而言,當非揮發性記憶體222及/或揮發性記憶體224之一分頁正經歷一遷移操作時,MMP 260及/或MTU 240可經組態以設定擴充TLB中之一「遷移」位元以指示遷移狀態。此外,MTU 240可經組態以在遷移操作期間更新映射表242。
回應於接收對飛行中分頁之一記憶體存取,MTU 240可以一或多個方式來作出回應。一第一實例性回應可包括回應於對飛行中分頁之
一記憶體存取(例如,如由「遷移」位元所指示),MTU 240之經鎖定分頁處置程式246在MMH作業系統中產生一分頁錯誤。回應於分頁錯誤,將記憶體請求之完成推遲至MMH作業系統。MMH作業系統(或客體作業系統)可終止作出該請求之執行緒或使作出該請求之執行緒暫停直至遷移操作完成為止。一第二實例性回應可包括回應於對一飛行中分頁之一記憶體存取(例如,如由「遷移」位元所指示),MTU 240之經鎖定分頁處置程式基於映射表242之資訊而以透明方式轉譯與記憶體存取請求相關聯之邏輯位址,且將經轉譯邏輯位址提供至TLB以用於轉譯至儲存與記憶體存取請求相關聯之資訊之一實體位址。對飛行中分頁之記憶體存取之處置促進對尚未完成一整個遷移操作之分頁之資訊存取操作。
前述說明闡述裝置200之一例示性實施例。應瞭解,可修改裝置200以包括其他實施例。舉例而言,裝置100可包括一單個作業系統,且可在單個作業系統中包括支援所闡述記憶體管理(例如,包括MMT)之MMH作業系統功能性。在某些實施例中,裝置100可不包括MMP 260,且所闡述之記憶體管理功能性可在主機處理單元212、214、216及218上運行。在其他實施例中,MMP 260可在與主機處理單元212、214、216及218相同之一晶片上。
此外,在某些實施例中,MMT可除在MMP 260上運行外亦在主機處理單元212、214、216及218中之一或多者上運行或可並非在MMP 260上運行而是在主機處理單元212、214、216及218中之一或多者上運行。MMP 260亦可經組態以運行除MMT之外的MMH作業系統之客體作業系統及/或執行緒或除MMT外亦運行MMH作業系統之客體作業系統及/或執行緒。在某些實施例中,MMP 260可支援由主機處理單元212、214、216及218支援之指令集(ISA)之一超集,此可簡化MMH作業系統之執行緒排程任務,並且簡化硬體快取一致性。在某
些實施例中,MMP 260可包括執行多階ECC編碼/解碼之額外硬體,包括使用專屬演算法。並非與主機處理單元212、214、216及218共用一記憶體匯流排,MMP 260可經由一直接連接耦合至記憶體控制器226。在某些實施例中,MTU 240之全部或一部分可包括在記憶體220中。舉例而言,MTU 240中之映射表242可儲存於快取記憶體中,且映射表242可包括在記憶體220中。另外,非揮發性記憶體222及揮發性記憶體224之區塊之遷移可由MMP 260、MTU 240或每一者之一組合執行。
具有適應性記憶體控制器230之裝置200可減小模式改變頻寬(例如,電力節省模式對效能模式),此可致使記憶體220之遷移區塊,且可增加效能且減少等待時間,同時亦減少電力消耗。運行MMH作業系統之MMT之MMP 260由於經由PMU 250對微架構資訊及記憶體220之當前工作負載之存取而可能夠作出更佳映射決策。
圖3圖解說明根據本發明之一實施例之包括具有一記憶體管理超管理器作業系統(MMH OS)之一軟體/硬體階層之一方塊圖。方塊圖300可包括硬體組件,包括下部層級硬體(例如,記憶體轉譯單元MTU及其他記憶體中處理器PIM硬體)350及上部層級硬體與支援資訊(例如,CPU、MMP、分頁表、影子分頁表、TLB)340及軟體組件,包括半虛擬化OS(例如,攔截圖形呼叫、OpenCL支援)330中之驅動程式、MMH OS 320及主機OS(例如,客體作業系統,諸如一伺服器作業系統、一用戶端作業系統或另一類型之作業系統)310。MMH OS 320可對應於參考圖1所闡述之作業系統及/或參考圖2所闡述之MMH作業系統。上部層級硬體與支援資訊340可對應於圖1之中央處理單元110及/或適應性記憶體控制器130之硬體組件及/或圖2之中央處理單元210、MMP 260及/或PMU 250。下部層級硬體350可對應於圖1之適應性記憶體控制器130及/或圖2之MTU 240之一部分。上部層級硬體與
支援資訊340及下部層級硬體350之操作參考圖2予以闡述,且為簡明起見將不針對圖3進行重複。半虛擬化OS 330中之驅動程式可係經組態以支援與一運算系統之硬體相關聯之驅動程式,諸如下部層級硬體350。舉例而言,半虛擬化OS 330中之驅動程式可經組態以處置圖形相關命令且支援用於其他處理器類型(例如,圖形處理單元、數位信號處理器等)之開放運算語言。
MMH OS 320可包括具有使得MMH OS 320能夠執行低層級系統操作之一高特權層級的作業系統軟體。在某些實施例中,作業系統可係經組態以支援OS 310之一虛擬機器管理程式作業系統,其可在上部層級硬體與支援資訊340之CPU中的一或多者及/或MMP上運行。因此,MMH OS 320可係負責控制上部層級硬體與支援資訊340及下部層級硬體350之硬體之一軟體層。舉例而言,MMH OS 320可經組態以代表主機OS 310執行請求,主機OS 310以比MMH OS 320低之一特權位準運行。來自主機OS 310之請求可通常係針對對共用資源(諸如輸入/輸出(I/O)器件及記憶體空間(諸如圖1之記憶體120及/或圖1之記憶體220))之存取。
如參考圖2所闡述,MMH OS 320可經組態以提供記憶體管理執行緒(MMT),其在某些實施例中可在上部層級硬體與支援資訊340之一MMP上執行。另外,MMH OS 320亦可經組態以基於所監視統計資料(例如,自圖2之PMU 250接收)而作出重新組態決策,且在上部層級硬體與支援資訊340之MMP上起始重新組態決策。在某些實施例中,藉由將PMU實體上放置得較靠近MMP或為PMU提供至MMP(且因此MMH OS 320之MMT)之一專用匯流排,上部層級硬體與支援資訊340之MMP可比下部層級硬體350的其他CPU更快,且更多地存取所監視統計資料。
另外,MMH OS 320可具有經修改之記憶體管理程式碼,其經組
態以組態及控制MMP,且處置對飛行中分頁之請求,例如,當前由MMP所有且正經歷遷移或其他操作之分頁。在某些實施例中,可使用由MMH OS 320之MMT所起始之標準分頁鎖定機制來處置對飛行中分頁之請求的處置。另一選擇係,可藉由一專用分頁錯誤處置程式(諸如圖2之經鎖定分頁處置程式246)來處置對飛行中分頁之請求的處置,該專用分頁錯誤處置程式將對經鎖定分頁之記憶體存取視為記憶體暫停。
在某些實施例中,MMH OS 320可經組態以便以經加密形式來編碼MMT。舉例而言,此可表示記憶體子系統之一製造商之器件特定特徵化,諸如隨著溫度之再新速率之一映射。MMH OS 320可經組態以在運行MMT之前解密MMT程式碼及資料。在另一實施例中,MMT可係以一中間語言(例如,一虛擬機器指令集)編寫且轉譯成軟體中之MMT指令以允許跨平台相容性。
參考圖4至圖6,一記憶體之一資訊深度映射與該記憶體中之資訊之一組織相關。每一深度映射如其他資訊深度映射相比可具有益處及成本。舉例而言,儲存於記憶體處之一第一資訊深度映射可提供比一第二資訊深度映射低的資訊存取等待時間,但可使用比第二資訊深度映射多的電力。資訊深度映射需要可隨著一運算系統之需要改變而改變。在某些實施例中,儲存於一記憶體處之一個資訊深度映射可係對於一特定電腦程式係最有利的,而儲存於該記憶體處之一不同資訊深度映射可對於另一電腦程式可係更有利的。舉例而言,執行連續存取運算元之運算之一電腦程式可偏好具有較低等待時間之第一資訊深度映射,而消耗一連續資料串流之一電腦程式不如此相依於等待時間,且可更高效地使用第二資訊深度映射。此外,一個資訊深度映射可基於運算系統(例如,圖1之裝置100及/或圖2之裝置200)之一模式而提供優點。因此,一效能模式中之一運算系統可選擇第一資訊深度映
射以最佳化資訊存取等待時間,而一電力節省模式(例如,使用電池電力)中之一電腦系統可選擇第二資訊深度映射以最佳化電力消耗。自一個資訊深度映射至另一資訊深度映射之轉變可需要一實質量之資訊之遷移,此可消耗額外電力及其他資源,諸如在遷移期間阻止對受影響記憶體區之存取。因此儲存於記憶體處之一中間資訊深度映射可經實施以達成一所要資訊深度映射之益處,但與完全移動至一所要資訊深度映射相比可減少資訊之遷移。
圖4至圖6圖解說明繪示根據本發明之一實施例之中間資訊深度映射之例示性實施例之方塊圖。中間深度映射可由圖1之適應性記憶體控制器130及/或圖2之適應性記憶體控制器230執行。圖4至圖6繪示表410、420、515及620。表410、420、515及620中之每一大寫字母及每一小寫字母表示X位元組之一資訊(例如,資料及/或指令)單元。410、420、515及620中之一共同大寫字母及一對應小寫字母(例如,「A」及「a」、「B」及「b」,...「H」及「h」)表示將由一主機處理單元消耗之一各別總資訊單元。表410、420、515及620劃分成列ROW1及ROW2以及通道CH0至CH7。表410、420、515及620之每一列可表示儲存於通道CH0至CH7中之順序實體記憶體位置中之一連續資訊區塊。舉例而言,「A」係在ROW1之CH0中且「a」係在ROW2之CH0中可係與CH1相關聯之連續儲存位置。類似地,「B」係在ROW1之CH1中且「b」係在ROW2之CH1中可係與CH2相關聯之連續儲存位置。在此特定實例中,每一通道可能夠針對總共8X位元組之資訊並行提供X位元組之資訊。為清晰闡述中間深度映射之操作起見,以下說明將假定由儲存資料單元之列ROW1及ROW2識別之所有儲存位置係一固定大小X。將瞭解,由每一通道CH0至CH7之列ROW1及ROW2識別之一儲存位置之大小可係可組態的且可在通道間變化。
圖4繪示自一初始資訊映射M0表410至在清理之後之一所要資訊
映射M2表420之一完全遷移。初始資訊映射M0表410係具有由OLD DEPTH箭頭表示之一2X位元組深度之一順序資訊映射。因此,總資訊單元中之每一者可係2X位元組深,且因此將需要兩次順序記憶體存取以自一單個記憶體通道擷取一總資訊單元(例如,指向ROW1以自CH0擷取「A」之第一記憶體存取及指向ROW2以自CH0擷取「a」之一第二記憶體存取)。初始資訊映射M0表410之順序資訊映射可產生較高等待時間,此乃因需要兩次記憶體存取來自CH0擷取一通道之一總資訊,舉例而言,「A」及「a」。
所要資訊映射M2表420繪示具有由DEPTH箭頭表示之一X位元組深度之一並列資訊映射。相對於初始資訊映射M0,深度自一2X位元組深度減小至一X位元組深度。因此,由於一總資訊單元之每一部分駐存於一不同通道中,因此總資訊單元中之每一者可係X位元組深,且因此可經由一次記憶體存取(例如,擷取ROW1之一記憶體存取)來存取。所要資訊映射M2表420之並行資訊映射可花費較少時間來擷取一總資訊單元,此乃因可藉由一次記憶體存取來完成擷取。
為自初始資訊映射M0表410直接遷移至所要資訊映射M2表420,可將一總資訊單元之個別資訊單元遷移至不同通道。一蠻力方法可需要16次移動以將每個資訊單元移動至一不同位置。作為蠻力方法之一替代方案,資訊單元「A」及「h」係在表410及420兩者中之相同位置中,因此可不遷移。因此,藉由保持資訊單元「A」及「h」在當前位置中,自初始資訊映射M0表410至在清理之後之所要資訊映射M2表420之遷移可減少至14次資訊單元移動。
在某些情形中,一運算系統不具有用以執行一完全遷移之充足時間或該運算系統可係在一電力節省模式中使得一完全遷移係不實際的。因此,圖5繪示可達成所要資訊映射M2表420中所繪示之一X位元組深度之益處中之某些益處之一中間資訊映射M1表515,而不完全遷
移資訊單元,如所要資訊映射M2表420中所繪示。圖5包括前文已關於圖4闡述之元件。彼等元件已使用與在圖4中相同的元件符號及標記在圖5中展示,且共同元件係如前文所闡述。因此,為簡明起見將不重複對此等元件之一詳細說明。
圖5繪示自初始資訊映射M0表410至中間資訊映射M1表515之遷移。如所闡釋,初始資訊映射M0表410可對應於具有2X位元組深度順序資訊映射之圖4初始資訊映射M0表410。中間資訊映射M1表515表示具有類似於圖4之在清理之後之所要資訊映射M2表420之X位元組深度之一並行資訊映射,但不將所有資訊單元移動至新位置。舉例而言,帶圓圈字母(例如,「A」、「b」、「c」、「d」、「e」、「f」、「g」及「h」)能夠如初始資訊映射M0表410中所繪示保持儲存。自初始資訊映射M0表410遷移至中間資訊映射M1表515可需要將跨越記憶體之8個資訊單元重新定位至不同位置,其產生用於一記憶體存取之如圖5中所展示通道指派。可經由並行記憶體存取來存取中間資訊映射M1表515之總資訊單元中之任一者。亦即,一總資訊單元之資訊單元係在不同通道中。舉例而言,資訊單元「B」係在通道CH2中且資訊單元「b」係在CH1中。同樣,其他資訊單元「A」及「C」至「H」中沒有一個係在與總資訊單元之對應資訊單元(亦即,分別係資訊單元「a」及「c」至「h」)相同的通道中。類似於圖4之在清理之後之所要資訊映射M2表420,中間資訊映射M1表515之並行資訊映射可比初始資訊映射M0表410中所繪示之順序資訊映射少的時間來擷取一總資訊單元。
在某些實施例中,對應於中間資訊映射M1表515之位址可係客體作業系統不可見的且可由一記憶體轉譯單元(MTU)(諸如圖2之MTU 240)管理。因此,轉譯對應於一中間資訊映射狀態中之資訊之一邏輯位址可需要一額外層級之硬體轉譯。該額外層級之硬體轉譯可增加一
記憶體存取操作中之等待時間。因此,為使運算系統使使用中間資訊映射M1表515映射之記憶體區係軟體可見的,且消除額外層級之硬體轉譯,可執行遷移清理操作以自中間資訊映射M1表515轉變至圖4之所要資訊映射表420。圖6繪示藉由執行清理操作以自具有X位元組深度之一中間資訊映射M1表515轉變至在清理之後之一所要資訊映射M2表620(表示資訊之所要資訊映射)來完成一遷移。圖6包括前文已關於圖4及圖5所闡述之元件。彼等元件已使用與在圖4及圖5中相同的元件符號及標記在圖6中展示,且共同元件係如前文所闡述。因此,為簡明起見將不重複對此等元件之一詳細說明。
如所闡釋,初始資訊映射M0表410可對應於具有2X位元組深度順序資訊映射之圖4初始資訊映射M0表410。此外,中間資訊映射M1表515可對應於具有X位元組深度並行資訊映射之圖5中間資訊映射M1表515。在清理之後之所要資訊映射M2表620可對應於圖4之在清理之後之所要資訊映射M2表420。
在操作中,由於時間及/或電力約束,一記憶體管理處理器(MMP)(例如,圖2之MMP 260)或一記憶體轉譯單元(MTU)(例如,圖2之MTU 240)可管理自初始資訊映射M0表410至中間資訊映射M1表515之一初始遷移。舉例而言,如關於圖5所闡釋,初始遷移需要八次區塊移動。回應於一事件,MMP或MTU可完成自中間資訊映射M1表515至在清理之後之所要資訊映射M2表620之一遷移。帶圓圈之資訊單元(例如,「A」、「E」、「a」、「B」、「C」、「D」及「h」)在自中間資訊映射M1表515至在清理之後之所要資訊映射M2表620之遷移期間不需要一移動,且因此遷移包括九次剩餘區塊移動。可提示MTU起始自中間資訊映射M1表515至在清理之後之所要資訊映射M2表620之遷移之事件之實例包括閒置記憶體、運算系統切換至一效能模式(例如,不再處於一電力節省模式中)、當前在受影響記憶體器件區上運
行一清除操作等。雖然圖6中所繪示之遷移需要較多總區塊移動(例如,8+9=17對16(或14)),但初始移動至中間資訊映射M1表515可允許運算系統高效地執行提供在清理之後之所要資訊映射M2表620之益處且提供將一剩餘清理操作排程在可限制對運算系統之一負面影響之一時間之一能力之一初始遷移。
將瞭解,自順序資訊映射至圖4至圖6中所闡述之並行資訊映射之轉變亦可應用於自並行資訊映射至順序資訊映射之一轉變。亦即,一並行資訊映射(例如,M2表620)可遷移至一中間資訊映射(例如,M1表515),且接著可執行一清理操作以自中間資訊映射轉變至一順序資訊映射(例如,M0表410)(當使通道深度較深(例如,自一X位元組深度至一2X位元組深度)時)。
雖然圖4至圖6繪示僅具有兩個個別資料單元之一總資料單元,但將瞭解一總資料單元可具有任何數目之個別資料單元。此外,雖然圖4至圖6繪示具有一2X深度之順序資料映射(例如,M0表410),但將瞭解一順序資料映射可係任何數目個資料單元深。雖然圖4至圖6個別地繪示順序資料映射(例如,M0表410)及並行資料映射(例如,M1表515及/或M2表420/620),但將瞭解一映射方案可包括一並行資料映射與一順序資料映射之一組合。舉例而言,在圖4至圖6之實例中,若一總資料單元包括四個個別資料單元,則四個資料單元可跨越兩個通道而劃分,其中每一通道具有兩個資料單元之一深度。
如參考圖4至圖6所闡釋,中間資訊映射可係軟體不可見的且可需要一額外硬體轉譯。圖7至圖9圖解說明存取根據一中間資訊映射之資訊及/或存取當前在一遷移操作中之資訊。圖7圖解說明包括根據本發明之一實施例之映射表之一記憶體轉譯單元之一方塊圖。記憶體轉譯單元MTU 700可包括一多工器760,其經組態以基於來自一比較器750之一控制信號之一值而提供一所請求位址RQST ADDR及來自一位
址擾碼表740之一位址中之一者作為一經映射位址輸出MAPPED ADDR。來自比較器750之控制信號之值可係基於自映射表705接收之資訊。映射表705可包括一區/子區表710、一舊深度表720及一深度表730。MTU 700可對應於圖1之MTU 240。
為圖解說明,圖8繪示劃分成區及子區之一記憶體之一記憶體映射。表800中所繪示之表之每一列對應於一不同區(例如,區0、1、2、3、...、K)。此外,記憶體之每一區進一步劃分成由表800之行標頭(例如,0、1、2、3、...、L)表示之子區。
在操作中,當新異動進入一記憶體控制器(例如,圖2之記憶體控制器226)時,使用RQST ADDR來識別異動以其為目標之記憶體映射之一區,如在圖8中。回應於一區之識別,自舊深度表720擷取與所識別區相關聯之一各別舊深度參數且自深度表730擷取與所識別區相關聯之一各別深度參數。在比較器750處比較舊深度參數與深度參數。回應於舊深度參數匹配深度參數,比較器750提供具有一第一值之一控制信號至多工器760。回應於接收具有第一值之控制信號,多工器760在輸出處提供RQST ADDR作為MAPPED ADDR至解碼邏輯,諸如一TLB。
回應於舊深度參數不匹配深度參數,自區/子區表710擷取位址映射之一狀態及區/子區之一狀態。區/子區表710之一大小可係基於由作業系統設定之「深度區」的大小。舉例而言,若一整個「深度區」在一遍次中一起遷移,則將「深度區」視為一區。另一選擇係,若「深度區」係大的,則作業系統可將「深度區」劃分成子區。區/子區表710中之位址映射的狀態可包括舊深度映射(M0)、中間資訊深度映射(M1),或新深度映射(M2)。區/子區表710之區/子區的狀態可包括:(1)移動在進行中,(2)移動未在進行中,(3)一中間狀態,及(4)移動完成,例如,新深度映射(M2)。
當一深度映射改變發生時,回應於一記憶體控制器(例如,圖2之記憶體控制器226)被指示移動區/子區中之資訊,而將一區/子區狀態設定為「移動在進行中」。基於區/子區狀態被設定為「移動在進行中」狀態,記憶體控制器可執行使以各別區/子區為目標之異動暫停或完成當前在記憶體控制器佇列中之資訊之異動中之一者。當資訊尚未開始被移動時,將區/子區狀態設定為「移動未在進行中」狀態,且比較器750經組態以提供具有第一值之控制信號至多工器760。基於具有第一值之控制信號,多工器760在一輸出處提供RQST ADDR作為MAPPED ADDR,且基於舊深度映射來解碼MAPPED ADDR。
當資訊之移動已開始時,將區/子區狀態設定為「中間狀態」狀態。當區/子區狀態被設定為「中間狀態」狀態時,比較器750可經組態以提供具有一第二值之控制信號至多工器760。基於具有第二值之控制信號,多工器760經組態以提供來自位址擾碼表740之一輸出作為MAPPED ADDR至解碼邏輯。位址擾碼表740經組態以提供RQST ADDR之一異動(例如,擾碼)以允許解碼器存取目標資訊之一當前位置。基於位址擾碼表740之輸出的MAPPED ADDR可由解碼邏輯解碼以判定目標資訊的位置。當已完全移動資訊時,將區/子區狀態設定為「完全移動」狀態,且比較器750經組態以提供具有第一值之控制信號至多工器760。基於具有第一值之控制信號,多工器760經組態以在一輸出處提供RQST ADDR,且基於(新)深度映射來解碼RQST ADDR。作業系統(例如,如關於圖2及圖3所闡述之MMH作業系統)及/或一記憶體轉譯單元(MTU)(例如,圖2之MTU 240)可控制是否應將區/子區狀態設定為「中間狀態」狀態或「移動完成」狀態(M2)。
圖9繪示根據本發明之實施例之基於一初始深度映射及一中間資訊深度映射之位址轉譯之一實例。舊深度映射M0表912表示在任何資訊移動之前一舊深度映射之資訊之一映射。舊資訊映射表910表示基
於舊深度映射資訊單元被儲存在記憶體中何處。中間深度映射M1表917表示資訊基於一中間資訊深度映射之一映射(例如,在某些資訊已移動之後)。中間資訊映射表915表示基於中間資訊深度映射資訊項目儲存在記憶體中何處。初始資訊映射表910可對應於圖4至圖6之初始資訊映射M0表410。中間資訊映射表915可對應於圖5至圖6之中間資訊映射M1表515。
在一實例性操作中,當根據一舊深度映射資訊時,在一MTU處接收對在一請求位址4’b0110處之資訊「D」920之一請求。基於MTU判定舊資訊映射表910適用(例如,經由圖7中所繪示之邏輯),MTU可參考舊深度映射M0表912以轉譯位址4’b0110 922。基於舊深度映射M0表912,MTU可提供指向舊資訊映射表910中之資訊「D」920之一位置之一位址4’b0110 922。
此外,當根據一中間資訊深度映射資訊時,在一MTU處接收對在一請求位址4’b0110處之資訊「D」920之一請求。基於MTU判定中間資訊映射表915適用,MTU可參考中間資訊深度映射M1表917以轉譯位址4’b0110。基於中間資訊深度映射M1表917,MTU可提供指向中間資訊映射表915中之資訊「D」920之一位置之一位址4’b1100 924。
熟習此項技術者將進一步瞭解結合本文中所揭示之實施例所闡述之各種說明性邏輯區塊、組態、模組、電路及演算法步驟可實施為電子硬體、由一處理器執行之電腦軟體或兩者之組合。上文已大體按照功能性闡述了各種說明性組件、區塊、組態、模組、電路及步驟。雖然熟習此項技術者可針對每一特定應用以不同方式實施所闡述功能性,但不應將此等實施方案決策解釋為致使背離本發明之範疇。
提供所揭示實施例之前述說明以使得熟習此項技術者能夠製作或使用所揭示之實施例。熟習此項技術者將易於明瞭對此等實施例之
各種修改,且本文中所定義之原理可應用於其他實施例而不背離本發明之範疇。本發明並非意欲限制於本文中所展示之實施例,而是將被賦予與前文所闡述之原理及新穎特徵相一致之最寬廣可能範疇。
200‧‧‧裝置
210‧‧‧中央處理單元
212‧‧‧主機處理單元
214‧‧‧主機處理單元
216‧‧‧主機處理單元
218‧‧‧主機處理單元
220‧‧‧記憶體/記憶體單元
222‧‧‧非揮發性記憶體
224‧‧‧揮發性記憶體
226‧‧‧記憶體控制器
230‧‧‧適應性記憶體控制器
240‧‧‧記憶體轉譯單元MTU
242‧‧‧映射表
244‧‧‧組態與命令資訊單元
246‧‧‧經鎖定分頁處置程式
250‧‧‧效能監視單元PMU
254‧‧‧效能監視單元介面
260‧‧‧記憶體管理處理器MMP
Claims (54)
- 一種用於記憶體適應性控制之裝置,其包含:一處理單元,其經組態以運行一作業系統,其中該作業系統係一記憶體超管理器(MMH)作業系統,其中該MMH作業系統提供經組態以管理記憶體之記憶體管理執行緒(MMT),其中該MMH作業系統經組態以支援在該處理單元上之一客體作業系統;一記憶體,其耦合至該處理單元,該記憶體經組態以經由一記憶體匯流排與該處理單元通信,其中該記憶體包括經組態以存取一揮發性記憶體或一非揮發性記憶體之至少一者之一第一記憶體控制器;及一適應性記憶體控制器,其經組態以自該第一記憶體控制器且自該處理單元接收所監視統計資料,其中該適應性記憶體控制器經組態以基於該所監視統計資料來管理該記憶體,其中該適應性記憶體控制器包含經組態以運行該MMT之一記憶體管理處理器(MMP),其中運行該MMT之該MMP經組態以基於該所監視統計資料來管理該記憶體,其中該所監視統計資料包括來自該處理單元之統計資料。
- 如請求項1之裝置,其中該MMP包含一快取記憶體及一直接記憶體存取(DMA)引擎,其中該DMA引擎經組態以與該記憶體通信。
- 如請求項2之裝置,其中該處理單元包括一快取記憶體,且該MMP之該快取記憶體經由一共同匯流排而耦合至該處理單元之該快取記憶體。
- 如請求項1之裝置,其中該處理單元經組態以使用一第一指令集 來執行該MMH作業系統,且其中該MMP經組態以使用一第二指令集來執行該MMH作業系統。
- 如請求項1之裝置,其中該記憶體包含一非揮發性記憶體或一揮發性記憶體兩者。
- 如請求項5之裝置,其中該非揮發性記憶體或該揮發性記憶體中之該至少一者係一多通道記憶體。
- 如請求項5之裝置,其中運行該MMT之該MMP經組態以管理該記憶體包含運行該MMT之該MMP經組態以進行以下各項中之至少一者:改變該非揮發性記憶體或該揮發性記憶體中之該至少一者之一部分之一頻率;改變該揮發性記憶體之一部分之一再新週期;執行該非揮發性記憶體或該揮發性記憶體中之該至少一者之一部分之記憶體清理;改變該非揮發性記憶體或該揮發性記憶體中之該至少一者之一部分之多階胞元模式;或改變該非揮發性記憶體或該揮發性記憶體中之該至少一者之一部分之位址映射。
- 如請求項1之裝置,其中運行該MMT之該MMP經組態以管理該記憶體包含:運行該MMT之該MMP經組態以管理該記憶體中之資訊之遷移。
- 如請求項8之裝置,其中運行該MMT之該MMP經組態以管理資訊之遷移包含:運行該MMT之該MMP經組態以提供記憶體命令至一記憶體控制器,從而指示該記憶體控制器移動該記憶體中之資訊之區塊。
- 如請求項1之裝置,其中該MMP經組態以運行該MMT以基於該 所監視統計資料來判定何時重新組態該記憶體。
- 如請求項1之裝置,其中該MMP經組態以運行該MMT以基於所監視統計資料來判定如何重新組態該記憶體。
- 如請求項1之裝置,其中該MMP經組態以運行該MMT以使用一中間資訊深度映射來映射資訊。
- 如請求項1之裝置,其中該適應性記憶體控制器進一步包含經組態以監視該所監視統計資料之一效能管理單元(PMU),該PMU進一步包含經組態以經由一共同匯流排將該PMU耦合至該處理單元及該MMP,且耦合至該記憶體之一記憶體控制器之一PMU介面。
- 如請求項13之裝置,其中該PMU介面經組態以經由該記憶體匯流排或一直接連接中之至少一者將該PMU耦合至該記憶體控制器。
- 如請求項1之裝置,其中該適應性記憶體控制器經組態以基於該所監視統計資料來管理該記憶體包含:該適應性記憶體控制器經組態以基於該處理單元與該記憶體220之間的訊務來管理資訊深度及位置。
- 如請求項1之裝置,其中該適應性記憶體控制器經組態以基於該所監視統計資料來管理該記憶體包含:該適應性記憶體控制器經組態以執行該記憶體之動態重新組態,從而匹配一資訊映射與在該處理單元上運行之執行緒之改變的記憶體型樣。
- 一種用於記憶體適應性控制之裝置,其包含:一處理單元,其經組態以運行一作業系統;一記憶體,其耦合至該處理單元,該記憶體經組態以經由一記憶體匯流排與該處理單元通信;及一記憶體轉譯單元(MTU),其經組態以管理儲存於該記憶體處 之資訊遷移,該MTU進一步經組態以藉由維持映射表而在儲存於該記憶體處之該資訊自一第一深度映射至一第二深度映射之該遷移期間支援該記憶體之一中間深度映射。
- 如請求項17之裝置,其中該MTU進一步包含該等映射表。
- 如請求項17之裝置,其中該MTU進一步包含具有該等映射表之資料之一快取記憶體,且其中該記憶體進一步包含該等映射表。
- 如請求項17之裝置,其中該MTU進一步包含經組態以維持及更新該記憶體之組態之一組態與命令資訊單元。
- 如請求項20之裝置,其中該組態與命令資訊單元經組態以維持及更新該記憶體之組態包含:維持及更新該記憶體之一頻率、該記憶體之一再新週期、該記憶體之一多階胞元(MLC)模式、一記憶體通道位址深度映射中之至少一者,或其一組合。
- 一種用於記憶體適應性控制之裝置,其包含:一記憶體,其經組態以儲存資訊;及一處理單元,其經組態以運行一作業系統,該處理單元經組態以管理該記憶體之資訊深度映射,其中回應於將儲存於該記憶體之記憶空間處之資訊自一第一資訊深度映射遷移至一第二資訊深度映射之一請求,該處理單元經組態以將儲存於記憶體之該記憶空間處之該資訊遷移至一中間資訊深度映射,其中該第一資訊深度映射具有一第一資訊深度,其中該第二資訊深度映射及該中間資訊深度映射各自具有一第二資訊深度。
- 如請求項22之裝置,其中該處理單元進一步經組態以基於一事件來起始一清理操作以轉變至該第二資訊深度映射。
- 如請求項22之裝置,進一步包含經組態以在儲存於該記憶體之該記憶空間處之該資訊自該第一資訊深度映射至該中間資訊深 度映射之遷移期間,管理位址映射之一記憶體轉譯單元。
- 如請求項22之裝置,其中該第一資訊深度映射係一順序深度映射,且其中該第二資訊深度映射及該中間資訊深度映射各自係一並行深度映射、一順序深度映射中之一者或其一組合。
- 如請求項22之裝置,其中該處理單元係一適應性記憶體控制器之一記憶體管理處理單元。
- 一種裝置,其包含:一記憶體,其經組態以儲存資訊,其中該記憶體之記憶空間組態有兩個或兩個以上資訊深度映射;及一記憶體轉譯單元(MTU),其經組態以藉由維持映射表而在儲存於該記憶體處之該資訊自該兩個或兩個以上資訊深度映射中之一第一資訊深度映射至該兩個或兩個以上資訊深度中之一第二資訊深度映射之該遷移期間,支援該記憶體之一中間深度映射,其中該MTU進一步經組態以基於該等映射表而提供與一記憶體存取請求之一所請求位址相關聯之一經映射位址至該記憶體。
- 如請求項27之裝置,其中該等映射表包含一舊深度映射表、一新深度映射表或一區/子區表中之至少一者。
- 如請求項27之裝置,其中該MTU進一步包含經組態以基於該等映射表中之資料之一比較而提供具有一值之一控制信號之一比較器,其中該等映射表中之該資料對應於與邏輯位址相關聯之該記憶體之一區。
- 如請求項29之裝置,其中該MTU進一步包含一位址擾碼器,其經組態以基於一位址映射轉譯該所請求位址來產生一經轉譯之所請求位址。
- 如請求項30之裝置,其中該MTU進一步包含一多工器,其經組 態以基於來自該比較器之該等控制信號之一值而提供選自該所請求位址或該經轉譯之所請求位址中之一者之該經映射位址。
- 一種用於記憶體適應性控制之方法,其包含:回應於自運行一記憶體超管理器(MMH)作業系統之一處理單元於該記憶體控制器接收之記憶體存取請求而使用一記憶體之一記憶體控制器在記憶體中擷取資訊;及基於所監視統計資料,在運行該記憶體管理(MMH)超管理器作業系統之記憶體管理執行緒(MMT)之一記憶體管理處理器(MMP)處管理該記憶體之一組態,該所監視統計資料包含自該記憶體接收之統計資料即自該處理單元接收之統計資料。
- 如請求項32之方法,進一步包含接收與該記憶體及該處理單元相關聯之該所監視統計資料。
- 如請求項32之方法,其中與該記憶體相關聯之該所監視統計資料包含儲存於該記憶體處之資訊之深度映射設定、該記憶體之部分之資訊映射及該等部分之間之資訊映射、該記憶體之部分之存取之頻率中之至少一者,或其任何組合。
- 如請求項32之方法,其中與該處理單元相關聯之該所監視統計資料包含該等記憶體存取請求之類型、該等記憶體存取之頻率、該處理單元之閒置時間中之至少一者,或其任何組合。
- 如請求項32之方法,其中基於與該記憶體及該處理單元相關聯之所監視統計資料而在運行該MMH超管理器作業系統之該MMP處管理該記憶體之該組態包含:管理該記憶體中之資訊之遷移。
- 如請求項36之方法,其中管理該記憶體中之資訊之遷移包含:提供記憶體命令至該記憶體;及回應於該等記憶體命令而移動該記憶體中之資訊之區塊。
- 如請求項36之方法,其中管理該記憶體中之資訊之遷移進一步包含:管理分頁表及轉譯後備緩衝器之後設資料。
- 如請求項38之方法,其中管理該記憶體中之資訊之遷移進一步包含回應於接收到對正經歷一遷移之儲存於該記憶體之一部分中之資訊之一記憶體存取請求而:在該所請求資訊係不可用時,於該MMH作業系統中產生一分頁錯誤;及當該記憶體之該部分變為可用時,提供該資訊。
- 如請求項38之方法,其中管理該記憶體中之資訊之遷移進一步包含回應於接收到對正經歷一遷移之儲存於該記憶體之一部分中之資訊之一記憶體存取請求而:在該所請求資訊係不可用時,使在該MMH作業系統中作出該請求之一執行緒暫停;及回應於該資訊之移動之完成而提供與該記憶體之儲存該資訊之一新位址相關聯之該記憶體存取請求之一邏輯位址之一轉譯。
- 如請求項38之方法,其中管理分頁表及轉譯後備緩衝器之後設資料進一步包含:將該後設資料儲存於一客體作業系統不可見之影子分頁表及轉譯後備緩衝器中。
- 如請求項32之方法,其中基於與該記憶體及該處理單元相關聯之所監視統計資料而在運行該MMH超管理器作業系統之該MMP處管理該記憶體之該組態包含:將該記憶體之一部分自一第一資訊深度映射移動至一中間資訊深度映射,其中該中間資訊深度映射係運行一客體作業系統之一處理單元不可見的。
- 如請求項32之方法,其中回應於對根據來自該處理單元之一中間資訊深度映射之記憶體之該部分之一記憶體存取請求之接收 而:在一記憶體轉譯單元處執行該記憶體存取請求之一邏輯位址之一初始轉譯以產生一經轉譯位址;及將該經轉譯位址轉譯成該記憶體之一實體位址。
- 如請求項32之方法,其中基於與該記憶體及該處理單元相關聯之所監視統計資料而在運行該MMH超管理器作業系統之該MMP處管理該記憶體之該組態包含以下各項中之至少一者:改變該記憶體之一部分之一頻率;改變該記憶體之一部分之一再新週期;改變記憶體之一部分之一多階胞元模式;或改變該記憶體之一部分之一位址映射。
- 一種用於記憶體適應性控制之方法,其包含:在一運算系統之一處理單元處,接收該運算系統之一記憶體之一部分自一第一資訊深度映射移動至一第二資訊深度映射之一請求,其中該第一資訊深度映射具有一第一資訊深度,且該第二資訊深度映射具有一第二資訊深度;回應於該請求而判定該運算系統是否具有充足資源來執行自該第一資訊深度映射至該第二資訊深度映射之該移動;及基於該運算系統不具有充足資源來執行自該第一資訊深度映射至該第二資訊深度映射之該移動之一判定,而將來自該處理單元之命令提供至該記憶體以執行該記憶體之該部分自該第一資訊深度映射至一中間資訊深度映射之遷移,其中該中間資訊深度映射具有該第二資訊深度。
- 如請求項45之方法,進一步包含回應於一事件而將來自該處理單元之命令提供至該記憶體以執行一清理操作,以自該中間資訊深度映射轉變至該第二資訊深度映射。
- 如請求項46之方法,其中自該第一資訊深度映射遷移至該中間資訊深度映射需要一第一移動計數,且其中自該第一資訊深度映射直接遷移至該第二資訊深度映射需要一第二移動計數。
- 如請求項46之方法,其中該事件包含一閒置記憶體、該運算系統切換至一效能模式、該運算系統正在該記憶體之該部分上運行一清理操作中之至少一者,或其組合。
- 如請求項45之方法,其中該運算系統不具有充足資源來執行自該第一資訊深度映射至該第二資訊深度映射之該移動之該判定係基於該運算系統處於一電力節省模式中。
- 一種用於記憶體適應性控制之方法,其包含:在一記憶體轉譯單元處接收一記憶體存取請求,該記憶體存取請求包括一所請求位址;判定與該所請求位址相關聯之一記憶體之一區之一映射狀態;及提供一經映射位址至該記憶體,其中該經映射位址係基於與該所請求位址相關聯之該記憶體之該區之該狀態而選自該所請求位址或一經轉譯所請求位址中之一者。
- 如請求項50之方法,其中判定與該所請求位址相關聯之一記憶體之一區之一映射狀態包含:比較相關聯於該區之一舊深度映射表中之一項目與相關聯於該區之一深度映射表中之一項目;及回應於該舊深度映射表之該項目匹配該深度映射表之該項目,提供該所請求位址作為該經映射位址。
- 如請求項51之方法,進一步包含回應於該舊深度映射表之該項目與該深度映射表之該項目不匹配而:自一區/子區表判定該區之一狀態;及 回應於該區/子區表指示一中間經映射狀態,提供該經轉譯所請求位址作為該經映射位址。
- 如請求項50之方法,進一步包含回應於該區/子區表指示在該區中一移動未在進行中而提供該所請求位址至該記憶體,以使用該舊深度映射表來解碼。
- 如請求項50之方法,進一步包含回應於該區/子區表指示一移動在該區中完成而提供該所請求位址至該記憶體,以使用該深度映射表來解碼。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361799731P | 2013-03-15 | 2013-03-15 | |
US13/911,797 US10042750B2 (en) | 2013-03-15 | 2013-06-06 | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201502973A TW201502973A (zh) | 2015-01-16 |
TWI537815B true TWI537815B (zh) | 2016-06-11 |
Family
ID=51533830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103108825A TWI537815B (zh) | 2013-03-15 | 2014-03-12 | 用於記憶體適應性控制之裝置及方法 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10042750B2 (zh) |
EP (1) | EP2972913B1 (zh) |
KR (1) | KR101894132B1 (zh) |
CN (2) | CN105103144B (zh) |
TW (1) | TWI537815B (zh) |
WO (1) | WO2014149538A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI684988B (zh) * | 2018-10-03 | 2020-02-11 | 慧榮科技股份有限公司 | 錯誤處置方法以及資料儲存裝置及其控制器 |
US10884856B2 (en) | 2018-10-03 | 2021-01-05 | Silicon Motion, Inc. | Error-handling method, associated data storage device and controller thereof |
US10990325B2 (en) | 2018-10-03 | 2021-04-27 | Silicon Motion, Inc. | Write control method, associated data storage device and controller thereof |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042750B2 (en) * | 2013-03-15 | 2018-08-07 | Micron Technology, Inc. | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor |
US9063667B2 (en) * | 2013-08-13 | 2015-06-23 | Utah State University | Dynamic memory relocation |
US10235053B1 (en) * | 2014-03-31 | 2019-03-19 | Emc Corporation | Method and system for using host driver for flexible allocation fast-sideways data movements |
US9996390B2 (en) * | 2014-06-10 | 2018-06-12 | Samsung Electronics Co., Ltd. | Method and system for performing adaptive context switching |
US10318153B2 (en) * | 2014-12-19 | 2019-06-11 | Advanced Micro Devices, Inc. | Techniques for changing management modes of multilevel memory hierarchy |
CN104572483B (zh) * | 2015-01-04 | 2018-01-16 | 华为技术有限公司 | 动态内存管理装置及方法 |
CN106294192B (zh) * | 2015-05-26 | 2020-01-31 | 龙芯中科技术有限公司 | 内存分配方法、内存分配装置及服务器 |
US9626229B1 (en) | 2016-01-07 | 2017-04-18 | International Business Machines Corporation | Processor performance monitoring unit synchronization |
US10776272B2 (en) | 2016-03-02 | 2020-09-15 | Mellanox Technologies, Ltd. | Control of persistent memory via a computer bus |
WO2017188948A1 (en) * | 2016-04-27 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Dynamic thread mapping |
US10917477B2 (en) * | 2016-05-25 | 2021-02-09 | Samsung Electronics Co., Ltd. | Method and apparatus for MMT integration in CDN |
KR102519390B1 (ko) * | 2016-11-10 | 2023-04-06 | 에스케이텔레콤 주식회사 | 캐시 장치, 상기 캐시 장치에서의 mmt 컨텐츠 전송 방법 |
KR20180061557A (ko) | 2016-11-29 | 2018-06-08 | 삼성전자주식회사 | 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치 |
US10649943B2 (en) * | 2017-05-26 | 2020-05-12 | Dell Products, L.P. | System and method for I/O aware processor configuration |
KR102500618B1 (ko) * | 2017-12-12 | 2023-02-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10679698B2 (en) * | 2018-03-28 | 2020-06-09 | Intel Corporation | Memory preset adjustment based on adaptive calibration |
US10725690B2 (en) * | 2018-05-18 | 2020-07-28 | Intel Corporation | Non-volatile memory cloning with hardware copy-on-write support |
TWI661302B (zh) * | 2018-06-25 | 2019-06-01 | 慧榮科技股份有限公司 | 實體儲存對照表產生裝置及方法以及電腦程式產品 |
CN110633225B (zh) * | 2018-06-25 | 2022-11-15 | 慧荣科技股份有限公司 | 实体存储对照表产生装置及方法 |
TWI705329B (zh) * | 2018-06-25 | 2020-09-21 | 慧榮科技股份有限公司 | 實體儲存對照表產生裝置及方法以及電腦程式產品 |
US10977198B2 (en) * | 2018-09-12 | 2021-04-13 | Micron Technology, Inc. | Hybrid memory system interface |
KR20200034499A (ko) * | 2018-09-21 | 2020-03-31 | 삼성전자주식회사 | 메모리 장치와 통신하는 데이터 처리 장치 및 방법 |
KR20200043814A (ko) * | 2018-10-18 | 2020-04-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11163473B2 (en) | 2018-11-19 | 2021-11-02 | Micron Technology, Inc. | Systems, devices, techniques, and methods for data migration |
US11182090B2 (en) | 2018-11-19 | 2021-11-23 | Micron Technology, Inc. | Systems, devices, and methods for data migration |
US11256437B2 (en) | 2018-11-19 | 2022-02-22 | Micron Technology, Inc. | Data migration for memory operation |
US10782911B2 (en) | 2018-11-19 | 2020-09-22 | Micron Technology, Inc. | Data migration dynamic random access memory |
KR20200069905A (ko) * | 2018-12-07 | 2020-06-17 | 삼성전자주식회사 | 스토리지 시스템 및 스토리지 시스템의 동작 방법 |
US11561834B2 (en) * | 2019-01-16 | 2023-01-24 | Rambus Inc. | Methods and systems for adaptive memory-resource management |
US11094371B2 (en) | 2019-03-11 | 2021-08-17 | Samsung Electronics Co., Ltd. | Memory device for processing operation and method of operating the same |
DE102020105628A1 (de) | 2019-03-11 | 2020-09-17 | Samsung Electronics Co., Ltd. | Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung |
CN111679785A (zh) * | 2019-03-11 | 2020-09-18 | 三星电子株式会社 | 用于处理操作的存储器装置及其操作方法、数据处理系统 |
US10915252B2 (en) * | 2019-05-14 | 2021-02-09 | Vmware, Inc. | System and method for managing a group of storage devices using their wear levels and a target wearing profile |
CN110618953B (zh) * | 2019-08-13 | 2020-12-08 | 合肥格易集成电路有限公司 | 一种存储器和存储器系统 |
US11294757B2 (en) * | 2019-12-17 | 2022-04-05 | Arteris, Inc. | System and method for advanced detection of failures in a network-on-chip |
CN111813709B (zh) * | 2020-07-21 | 2023-08-08 | 北京计算机技术及应用研究所 | 一种基于fpga存算一体架构的高速并行存储方法 |
KR20220017319A (ko) * | 2020-08-04 | 2022-02-11 | 삼성전자주식회사 | 메모리 보호 방법 및 전자 장치 |
US11327909B1 (en) | 2020-10-26 | 2022-05-10 | Mellanox Technologies, Ltd. | System for improving input / output performance |
US11914864B2 (en) | 2021-07-01 | 2024-02-27 | Samsung Electronics Co., Ltd. | Storage device and method of data management on a storage device |
KR102514268B1 (ko) | 2021-07-14 | 2023-03-24 | 연세대학교 산학협력단 | 데이터 마이그레이션 정책 스위칭 방법 및 장치 |
US11609700B2 (en) | 2021-08-11 | 2023-03-21 | Mellanox Technologies, Ltd. | Pacing in a storage sub-system |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU660559B2 (en) | 1992-06-04 | 1995-06-29 | Cabletron Systems, Inc. | Adaptive memory controller |
GB2278524B (en) * | 1993-05-28 | 1997-12-10 | Nihon Unisys Ltd | Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency |
US5623627A (en) * | 1993-12-09 | 1997-04-22 | Advanced Micro Devices, Inc. | Computer memory architecture including a replacement cache |
US6556952B1 (en) * | 2000-05-04 | 2003-04-29 | Advanced Micro Devices, Inc. | Performance monitoring and optimizing of controller parameters |
US6754117B2 (en) | 2002-08-16 | 2004-06-22 | Micron Technology, Inc. | System and method for self-testing and repair of memory modules |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7356665B2 (en) | 2003-12-17 | 2008-04-08 | International Business Machines Corporation | Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines |
US7216196B2 (en) | 2003-12-29 | 2007-05-08 | Micron Technology, Inc. | Memory hub and method for memory system performance monitoring |
US7500244B2 (en) | 2004-06-30 | 2009-03-03 | Intel Corporation | Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments |
RU2348992C2 (ru) * | 2004-07-12 | 2009-03-10 | Кабусики Кайся Тосиба | Запоминающее устройство и ведущее устройство |
US8122193B2 (en) * | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
US8589574B1 (en) * | 2005-12-29 | 2013-11-19 | Amazon Technologies, Inc. | Dynamic application instance discovery and state management within a distributed system |
JP2007199841A (ja) * | 2006-01-24 | 2007-08-09 | Seiko Epson Corp | 電子機器のコントローラ、バス制御装置 |
US7966500B2 (en) | 2006-02-21 | 2011-06-21 | Jeremiah Emmett Martilik | Remote connecting and shielding power supply system |
US8135936B2 (en) | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
KR101469512B1 (ko) | 2007-01-10 | 2014-12-05 | 모바일 세미컨덕터 코오포레이션 | 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템 |
US7949834B2 (en) * | 2007-01-24 | 2011-05-24 | Qualcomm Incorporated | Method and apparatus for setting cache policies in a processor |
US8156492B2 (en) | 2007-09-07 | 2012-04-10 | Oracle International Corporation | System and method to improve memory usage in virtual machines running as hypervisor guests |
TWI397912B (zh) * | 2008-02-13 | 2013-06-01 | Genesys Logic Inc | 調整存取效能的快閃記憶體儲存裝置 |
CN101526882B (zh) * | 2008-03-03 | 2011-06-22 | 中兴通讯股份有限公司 | 独立磁盘冗余阵列子系统中逻辑单元重建的方法及装置 |
US8281061B2 (en) * | 2008-03-31 | 2012-10-02 | Micron Technology, Inc. | Data conditioning to improve flash memory reliability |
US8607020B2 (en) * | 2008-06-06 | 2013-12-10 | International Business Machines Corporation | Shared memory partition data processing system with hypervisor managed paging |
US20090307175A1 (en) * | 2008-06-10 | 2009-12-10 | International Business Machines Corporation | Parallel pattern matching on multiple input streams in a data processing system |
US7978721B2 (en) | 2008-07-02 | 2011-07-12 | Micron Technology Inc. | Multi-serial interface stacked-die memory architecture |
US8086913B2 (en) | 2008-09-11 | 2011-12-27 | Micron Technology, Inc. | Methods, apparatus, and systems to repair memory |
US8281074B2 (en) | 2008-10-07 | 2012-10-02 | Micron Technology, Inc. | Interface device for memory in a stack, storage devices and a processor |
US8891298B2 (en) * | 2011-07-19 | 2014-11-18 | Greenthread, Llc | Lifetime mixed level non-volatile memory system |
US8407400B2 (en) * | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
US7929368B2 (en) | 2008-12-30 | 2011-04-19 | Micron Technology, Inc. | Variable memory refresh devices and methods |
US8412880B2 (en) * | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
US8032804B2 (en) | 2009-01-12 | 2011-10-04 | Micron Technology, Inc. | Systems and methods for monitoring a memory system |
US8127185B2 (en) | 2009-01-23 | 2012-02-28 | Micron Technology, Inc. | Memory devices and methods for managing error regions |
US9105323B2 (en) | 2009-01-23 | 2015-08-11 | Micron Technology, Inc. | Memory device power managers and methods |
WO2010097065A1 (de) * | 2009-02-26 | 2010-09-02 | Hyperstone Gmbh | Verfahren zur verwaltung von flashspeichern mit gemischten speichertypen |
US8266503B2 (en) * | 2009-03-13 | 2012-09-11 | Fusion-Io | Apparatus, system, and method for using multi-level cell storage in a single-level cell mode |
US8018752B2 (en) | 2009-03-23 | 2011-09-13 | Micron Technology, Inc. | Configurable bandwidth memory devices and methods |
US20100332922A1 (en) * | 2009-06-30 | 2010-12-30 | Mediatek Inc. | Method for managing device and solid state disk drive utilizing the same |
US8873375B2 (en) | 2009-07-22 | 2014-10-28 | Broadcom Corporation | Method and system for fault tolerance and resilience for virtualized machines in a network |
KR20110046243A (ko) * | 2009-10-27 | 2011-05-04 | 삼성전자주식회사 | 사용자 장치 및 그것의 맵핑 데이터 관리 방법 |
US9026767B2 (en) * | 2009-12-23 | 2015-05-05 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
US8327225B2 (en) | 2010-01-04 | 2012-12-04 | Micron Technology, Inc. | Error correction in a stacked memory |
US20110320751A1 (en) | 2010-06-25 | 2011-12-29 | Qualcomm Incorporated | Dynamic Interleaving Of Multi-Channel Memory |
US8464135B2 (en) * | 2010-07-13 | 2013-06-11 | Sandisk Technologies Inc. | Adaptive flash interface |
JP2012033002A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
US8595463B2 (en) | 2010-09-15 | 2013-11-26 | International Business Machines Corporation | Memory architecture with policy based data storage |
US8468289B2 (en) | 2010-10-22 | 2013-06-18 | International Business Machines Corporation | Dynamic memory affinity reallocation after partition migration |
US9405700B2 (en) | 2010-11-04 | 2016-08-02 | Sonics, Inc. | Methods and apparatus for virtualization in an integrated circuit |
US8775725B2 (en) * | 2010-12-06 | 2014-07-08 | Intel Corporation | Memory device refresh commands on the fly |
US20120173843A1 (en) * | 2011-01-04 | 2012-07-05 | Kamdar Chetan C | Translation look-aside buffer including hazard state |
US8892844B2 (en) * | 2011-03-07 | 2014-11-18 | Micron Technology, Inc. | Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers |
US9588883B2 (en) * | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
CN102495920B (zh) * | 2011-11-21 | 2014-06-25 | 南京中新赛克科技有限责任公司 | 一种FPGA用基于PCIe的集成化逻辑分析模块 |
US9176862B2 (en) * | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
KR20130078455A (ko) * | 2011-12-30 | 2013-07-10 | 삼성전자주식회사 | 메모리 특성 정보를 저장하는 반도체 메모리 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 반도체 메모리 장치의 동작방법 |
US9086957B2 (en) * | 2012-08-02 | 2015-07-21 | International Business Machines Corporation | Requesting a memory space by a memory controller |
US9183057B2 (en) | 2013-01-21 | 2015-11-10 | Micron Technology, Inc. | Systems and methods for accessing memory |
US10042750B2 (en) | 2013-03-15 | 2018-08-07 | Micron Technology, Inc. | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor |
-
2013
- 2013-06-06 US US13/911,797 patent/US10042750B2/en active Active
-
2014
- 2014-02-28 CN CN201480015708.2A patent/CN105103144B/zh active Active
- 2014-02-28 EP EP14769197.6A patent/EP2972913B1/en active Active
- 2014-02-28 WO PCT/US2014/019396 patent/WO2014149538A1/en active Application Filing
- 2014-02-28 CN CN201810479709.2A patent/CN108647153B/zh active Active
- 2014-02-28 KR KR1020157028597A patent/KR101894132B1/ko active IP Right Grant
- 2014-03-12 TW TW103108825A patent/TWI537815B/zh active
-
2018
- 2018-07-09 US US16/030,600 patent/US10817412B2/en active Active
-
2020
- 2020-10-23 US US17/079,138 patent/US11625321B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI684988B (zh) * | 2018-10-03 | 2020-02-11 | 慧榮科技股份有限公司 | 錯誤處置方法以及資料儲存裝置及其控制器 |
US10884856B2 (en) | 2018-10-03 | 2021-01-05 | Silicon Motion, Inc. | Error-handling method, associated data storage device and controller thereof |
US10990325B2 (en) | 2018-10-03 | 2021-04-27 | Silicon Motion, Inc. | Write control method, associated data storage device and controller thereof |
Also Published As
Publication number | Publication date |
---|---|
EP2972913A1 (en) | 2016-01-20 |
CN105103144B (zh) | 2018-06-12 |
US10817412B2 (en) | 2020-10-27 |
US20180322039A1 (en) | 2018-11-08 |
US20210042219A1 (en) | 2021-02-11 |
US11625321B2 (en) | 2023-04-11 |
KR20150128957A (ko) | 2015-11-18 |
CN105103144A (zh) | 2015-11-25 |
CN108647153A (zh) | 2018-10-12 |
KR101894132B1 (ko) | 2018-08-31 |
US20140281149A1 (en) | 2014-09-18 |
WO2014149538A1 (en) | 2014-09-25 |
CN108647153B (zh) | 2023-03-28 |
US10042750B2 (en) | 2018-08-07 |
EP2972913A4 (en) | 2017-01-11 |
EP2972913B1 (en) | 2018-12-19 |
TW201502973A (zh) | 2015-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI537815B (zh) | 用於記憶體適應性控制之裝置及方法 | |
US11966581B2 (en) | Data management scheme in virtualized hyperscale environments | |
US11036397B2 (en) | Unified addressing and hierarchical heterogeneous storage and memory | |
US11487661B2 (en) | Converged memory device and operation method thereof | |
JP6097444B2 (ja) | メモリシステムの温度情報に基づくメモリシステム管理のためのシステム及び方法 | |
KR102519904B1 (ko) | 영구 메모리 할당 및 구성 | |
US9311228B2 (en) | Power reduction in server memory system | |
US10282292B2 (en) | Cluster-based migration in a multi-level memory hierarchy | |
JP2007133879A (ja) | コンピュータ・メモリ・デバイス、コンピュータ・システム、方法(コンピュータ・システム電力消費を減らすためのメモリの再分配) | |
JP2017138853A (ja) | 情報処理装置およびプログラム | |
CN112997161A (zh) | 将储存系统用作主存储器的方法和装置 | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
JP2021135760A (ja) | メモリシステムおよびメモリ制御方法 | |
US20230315293A1 (en) | Data management scheme in virtualized hyperscale environments | |
KR20150108148A (ko) | 캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법 |