TWI585584B - 運用直接存取的多階記憶體 - Google Patents
運用直接存取的多階記憶體 Download PDFInfo
- Publication number
- TWI585584B TWI585584B TW101149809A TW101149809A TWI585584B TW I585584 B TWI585584 B TW I585584B TW 101149809 A TW101149809 A TW 101149809A TW 101149809 A TW101149809 A TW 101149809A TW I585584 B TWI585584 B TW I585584B
- Authority
- TW
- Taiwan
- Prior art keywords
- nvram
- memory
- page
- storage
- unoccupied
- 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
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係關於實施一種運用直接非依電性存取之多階記憶體子系統。
相變記憶體及開關(PCMS)為作為在當今固態儲存裝置中普遍存在之反及(NAND)非依電性儲存之繼承者的在開發中之非依電性儲存技術。PCMS提供比NAND快閃高得多之效能,且事實上,開始接近當前用作多數用戶端計算裝置中之主要動態儲存的動態隨機存取記憶體(DRAM)之效能點。雖然PCMS儲存可能一開始每位元比NAND儲存昂貴,但預見到彼關係隨時間而改變,直至最終PCMS不比NAND昂貴為止。
依據本發明之一實施例,係特地提出一種方法,其包含:指明一電腦系統中的一非依電性隨機存取記憶體(NVRAM)之一第一數量用作用於一動態隨機存取記憶體(DRAM)之一記憶體替代;指明該NVRAM之一第二數量用
作用於一大容量儲存裝置之一儲存替代;在該電腦系統之操作期間,將該第一數量個NVRAM中的至少一第一部分自該記憶體替代指明重新指明至該儲存替代指明;及在該電腦系統之操作期間,將該第二數量個NVRAM中的至少一第一部分自該儲存替代指明重新指明至該記憶體替代指明。
100‧‧‧中央/通用處理器(CPU)
102‧‧‧圖形處理器
104‧‧‧IO控制器及其相關聯之IO裝置
106‧‧‧磁碟或固態磁碟機(SSD)
108‧‧‧輸入/輸出(I/O)裝置
110‧‧‧晶粒上快取記憶體
112‧‧‧記憶體控制器
114‧‧‧DRAM儲存器
200‧‧‧NVRAM裝置
300‧‧‧近記憶體
302‧‧‧遠記憶體
400‧‧‧448 MB 7路快取記憶體
402‧‧‧圖形硬體及驅動程式
500‧‧‧高DRAM空間
502‧‧‧低DRAM空間
600‧‧‧遠記憶體
602‧‧‧儲存器
604‧‧‧儲存控制(器)/邏輯
700‧‧‧記憶體重新映射表
702‧‧‧儲存重新映射表
704‧‧‧硬體控制邏輯
706‧‧‧軟體驅動程式邏輯
800‧‧‧實體NVRAM空間
900、902、904、906、908、910、912、914、1100、1102、1104、1106、1108、1110、1112‧‧‧處理區塊
1000‧‧‧寫入緩衝器/快取記憶體管理邏輯
1002‧‧‧自由頁面集區
1004‧‧‧幻象位址空間
1006‧‧‧寫入緩衝器
1008‧‧‧已變更頁面集區
1010‧‧‧頁面清潔邏輯
1200‧‧‧PCMS頁面狀態表
1202‧‧‧第一指標
1204‧‧‧經清潔之自由頁面集區
1206‧‧‧第二指標
1208‧‧‧已變更自由頁面
1210‧‧‧頁面清潔邏輯
1212‧‧‧記憶體訊務監視器
1214‧‧‧下一個自由指標
1300‧‧‧NVRAM記憶體/儲存調換硬體邏輯
1302‧‧‧NVRAM頁面狀態表
1304‧‧‧自由頁面集區
1306‧‧‧影響範圍
1308‧‧‧計時器/計數器T/C
1400、1402、1404、1408‧‧‧視圖
1406‧‧‧無序平面存取
1410‧‧‧最佳化之存取次序
1500‧‧‧系統單晶片(SoC)封裝
1502‧‧‧CPU核心
1504‧‧‧GPU核心
1506‧‧‧快取記憶體
1508‧‧‧快取記憶體
1510‧‧‧本籍代理
1512‧‧‧記憶體子系統
1514‧‧‧依電性記憶體控制器
1516‧‧‧NVRAM控制
1518‧‧‧依電性記憶體
1520‧‧‧NVRAM
1522‧‧‧CPU VM記憶體空間
1524‧‧‧GPU VM記憶體空間
1526‧‧‧CPU NV記憶體空間
1528‧‧‧GPU NV記憶體空間
1530‧‧‧輸入/輸出(I/O)子系統
1532‧‧‧I/O配接器
1534‧‧‧I/O裝置
1536‧‧‧BIOS快閃
以下描述及隨附圖式用以說明本發明之實施例。在該等圖式中:
圖1說明典型電腦系統之一實施例。
圖2說明電腦系統中的簡單二階記憶體實施之一實施例。
圖3說明基於多階記憶體之系統之一實施例,其中一動態隨機存取記憶體用作用於非依電性隨機存取記憶體之快取記憶體。
圖4說明考量動態隨機存取記憶體快取記憶體之一部分之專門使用的基於多階記憶體之系統之一實施例。
圖5說明用於處理器的實體可定址記憶體空間之較低4 GB。
圖6說明將一部分用於遠記憶體且另一部分用於儲存的雙分割之非依電性隨機存取記憶體之一實施例。
圖7說明提供用於將頁面粒度平台實體位址及邏輯區塊位址映射成實體非依電性隨機存取記憶體裝置中之不斷改變之頁面的功能性之位址重定向表之一實施例。
圖8說明將平台實體位址及邏輯區塊位址映射成非依
電性隨機存取記憶體的位址重定向表之一實施例,非依電性隨機存取記憶體中無預指明之實體線性部分用於儲存用途記憶體用途。
圖9為允許駐留於一特定類型之裝置中的非依電性儲存頁面直接映射成軟體應用程式之位址空間的程序之一實施例之流程圖。
圖10說明使用頁面空白寫入策略的PCMS頁面清潔程序之一實施例。
圖11說明將資料寫入至幻象位址空間中可用之PCMS頁面的寫入機制之流程之一實施例。
圖12說明允許自功率/效能角度看將PCMS頁面有效率地寫入之機制之一實施例。
圖13說明允許非依電性隨機存取記憶體頁面在記憶體與儲存指明之間的一致移動之機制之一實施例。
圖14說明支援消除不必要的PCMS平面過渡之程序的程序及伴隨機構(亦即,硬體邏輯)之一實施例。
圖15說明併有具有基於直接存取之記憶體子系統之多階記憶體的計算裝置之一實施例。
諸如PCMS非依電性儲存的技術之組合,隨著積體電路中的電晶體之大小之減小及效能之增加,可允許系統單晶片(SoC)架構利用創造令人興奮的新系統同時達成低成本、低功率及高效能解決方案之新組合的機會。此進
步係基於對現有記憶體階層之修訂,其建立部署於低成本智慧型電話、平板電腦、筆記型電腦或其他形式之行動計算裝置中的靜態隨機存取記憶體(SRAM)、動態RAM(DRAM)與非依電性儲存器之量之間的不同平衡。存在許多類型之非依電性儲存器,但根據描述之許多實施例,以下更詳細地利用及描述非依電性隨機存取記憶體(NVRAM)儲存器。
1.非依電性隨機存取記憶體綜述
存在對於NVRAM之許多可能技術選擇,包括相變記憶體(PCM)、相變記憶體及開關(PCMS)(後者為前者之更特定實施)、位元組可定址永續性記憶體(BPRAM)、儲存類別記憶體(SCM)、通用記憶體、Ge2Sb2Te5、可程式化金屬化胞(PMC)、電阻性記憶體(RRAM)、RESET(非晶形)胞、SET(結晶)胞、PCME、奧氏(Ovshinsky)記憶體、鐵電記憶體(亦被稱為聚合物記憶體及聚(N-乙烯咔唑))、鐵磁記憶體(亦被稱為自旋電子、SPRAM(自旋轉移力矩RAM))、STRAM(自旋穿隧RAM)、磁阻性記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM)及半導體-氧化物-氮化物-氧化物-半導體(SONOS,亦被稱為介電記憶體)。
NVRAM具有下列特性:●即使電力經移除,其仍維持其內容,類似於在固態磁碟(SSD)中使用之快閃記憶體且與依電性之SRAM及DRAM不同;●其可具有比諸如SRAM及DRAM之依電性記憶體低
的總功率消耗;●其可具有類似於SRAM及DRAM之隨機存取(亦被稱為可隨機定址);●其在比SSD中找到之快閃記憶體(其一次僅可經重寫及抹除一「區塊」(對於反或(NOR)快閃記憶體,大小最小為64Kbyte,且對於反及快閃記憶體,大小最小為16Kbyte))低的粒度級別(例如,位元組級別)下可重寫且可抹除;●其可被用作系統記憶體且分配系統記憶體位址空間之全部或一部分;●其可能能夠使用異動協定(支援異動識別符(ID)以區分不同異動以使得彼等異動可無序地完成之協定)在匯流排(亦可互換地被稱作互連件或鏈路)上耦接至CPU,且允許在足夠小以支援作為系統記憶體之NVRAM之操作的粒度級別下(例如,諸如64位元組或128位元組之快取線大小)之存取。舉例來說,匯流排/互連件可為記憶體匯流排(例如,雙資料速率(DDR)匯流排,諸如,DDR3、DDR4等),在該記憶體匯流排上執行與通常使用之非異動協定相反之異動協定。作為另一實例,該匯流排可在通常執行異動協定(原生異動協定)之一匯流排(諸如,PCI高速(PCIE)匯流排、桌面管理介面(DMI)匯流排或利用異動協定及足夠小的異動有效負載大小(例如,諸如64位元組或128位元組之快取線大小)之任一其他類型之匯流排)上伸展;及●其亦可具有下列特性中之一或多者:○比諸如快閃記憶體之非依電性記憶體/儲存
技術快的寫入速度;○非常高的讀取速度(比快閃記憶體快且接近或等效於DRAM讀取速度);○其可直接可寫入(而不需要在寫入資料前之抹除(按1秒覆寫),如在SSD中使用之快閃記憶體);及/或○在故障前之較大量寫入(比啟動ROM及在SSD中使用之快閃記憶體多)。
如上提到,與快閃記憶體(其必須一次重寫及抹除一完整的「區塊」)相對比,在任一給定實施中存取NVRAM之粒度級別可視NVRAM耦接至之特定記憶體控制器及特定記憶體匯流排或其他類型之匯流排而定。舉例來說,在將NVRAM用作系統記憶體之一些實施中,可在快取線(例如,64位元組或128位元組快取線)之粒度下存取NVRAM,儘管有在一位元組之粒度下存取之固有能力,此係因為快取線為記憶體子系統存取記憶體之級別。因此,在一些實施例中,當將NVRAM部署於記憶體子系統內時,可按與在同一記憶體子系統中使用之DRAM相同的粒度級別存取NVRAM。即使如此,在一些實施例中,由記憶體控制器及記憶體匯流排或其他類型之匯流排進行的對NVRAM之存取的粒度級別小於由快閃記憶體使用的區塊大小及I/O子系統之控制器及匯流排之存取大小。
NVRAM亦可併有磨損平均化演算法以考量以下事實:在許多的寫入存取後,儲存胞開始磨損,尤其在
可發生顯著大量寫入之情況下,諸如,在系統記憶體實施中。由於高循環計數區塊最有可能以此方式磨損,因此磨損平均化藉由調換高循環計數區塊與低循環計數區塊之位址在遠記憶體胞上散佈寫入。注意,多數位址調換通常對於應用程式透明,此係因為其由硬體、較低階軟體(例如,低階驅動程式或作業系統)或兩者之組合處置。
NVRAM可與其他指令及資料記憶體/儲存技術區分開(就其特性及/或其在記憶體/儲存階層中之應用來說)。舉例來說,NVRAM與以下各者不同:●靜態隨機存取記憶體(SRAM),其可用於專用於處理器內之每一核心的0階及1階內部處理器快取記憶體及由處理器內之核心共用的較低階快取記憶體(LLC);●動態隨機存取記憶體(DRAM),其經組態為在處理器晶粒內部之快取記憶體(例如,在與處理器相同的晶粒上),組態為在處理器晶粒外部之一或多個快取記憶體(例如,在與處理器晶粒相同或不同的封裝中)或在處理器封裝外部之一般系統記憶體;及●作為大容量儲存器應用之快閃記憶體/磁碟/光碟;及●作為韌體記憶體應用的諸如快閃記憶體或其他唯讀記憶體(ROM)之記憶體(其可指啟動ROM、基本輸入/輸出系統(BIOS)快閃記憶體及/或受信任平台模組(TPM)快閃記憶體)。
NVRAM可用作直接可由處理器定址且能夠充分與處理器保持一致的指令及資料儲存器,此與作為大容
量儲存器應用之快閃記憶體/磁碟/光碟相對比。直接可定址性指諸如CPU或GPU之處理器能夠將記憶體請求發送至NVRAM,如同其為標準DRAM(例如,經由標準記憶體儲存及載入命令)。此外,如上文所論述及下文詳細地描述,NVRAM可置放於記憶體匯流排上且可直接與記憶體控制器通信,記憶體控制器又直接與處理器通信。
NVRAM可與其他指令及資料儲存技術(例如,DRAM)組合以形成混合記憶體(亦被稱為同位置PCM及DRAM;第一階記憶體及第二階記憶體;FLAM(快閃記憶體與DRAM))。注意,包括PCM/PCMS的以上技術中之至少一些可替代系統記憶體或除了系統記憶體外亦用於大容量儲存器,且當以此方式應用時不需要由處理器可隨機存取、可位元組定址或可直接定址。
為了便於解釋,本申請案中之其餘部分中之多數將參照「NVRAM」(或更特定地,「PCM」或「PCMS」)作為用於非依電性記憶體之技術選擇。因而,在以下論述中可互換地使用術語NVRAM、PCM與PCMS。然而,如上文所論述,應認識到,亦可利用不同技術。
2.多階記憶體綜述
多階記憶體(MLM)為PC平台拓撲之革命性改變。圖1說明典型電腦系統之一實施例,其包含:
●一或多個中央/通用處理器(CPU)(100)。
●一或多個圖形處理器(102)。
●一或多個IO控制器及其相關聯之IO裝置(104),諸
如,磁碟或固態磁碟機(SSD)(106)及其他輸入/輸出(I/O)裝置(108)。
●晶粒上快取記憶體(110),其意在使中央處理器及視情況圖形處理器與相對慢的DRAM記憶體隔離。
●記憶體控制器(112),其經設計以視當時之系統要求而定,最佳地針對頻寬及/或潛時排程DRAM命令。
●一或多群DRAM儲存器(114),其通常經排列為64位元通道。低端計算裝置可具有單一通道,而高端計算裝置可具有兩個或三個DRAM通道。
若典型計算裝置係藉由雙資料速率3(DDR3)組件實施,則錯失晶粒上快取的由處理器起始之記憶體讀取異動之潛時可為自將異動傳遞至記憶體控制器之時至資料返回至晶粒上快取區塊之時大約30奈秒(ns)(例如,對於DRAM頁面命中為15ns、對於DRAM頁面空白為30ns、對於DRAM頁面錯失為45ns)。此潛時常為處理器應用程式執行之重要驅動程式。
在DDR3-1600記憶體之單一通道上的峰值頻寬為每秒12.8十億位元組(GB)。此通道之有效頻寬將通常為彼數目之約70%。此有效記憶體頻寬可在通用處理器及圖形處理器之效能中起到根本作用。
按簡單形式,可將2階記憶體視為用在圖2中展示之NVRAM儲存器(亦即,NVRAM裝置200)(例如,用PCMS儲存器)替換系統之大容量DDR DRAM儲存器的機構。
圖2中展示之解決方案可以低成本實施。然而,
此系統之效能、功率消耗及可靠性屬性將不理想,且潛在地可在某些應用(其將按其性質造成不利功率、效能或裝置磨損條件)之情況下具有顯著問題。舉例來說,利用PCMS的如圖2組態之潛時(~50ns)及頻寬(對於讀取,~6.4 GB/sec)分別比PCMS裝置正替換的DRAM(來自圖1)之潛時及頻寬高得多及低得多。
特定對於當替換DRAM時需要小心謹慎的PCMS之另一問題為PCMS之讀取與寫入頻寬能力之間的明顯差異。在DRAM之情況下,每一記憶體裝置能夠按同一速率讀取及寫入資料。然而,PCMS核心按其實體性質需要比其讀取一條資料所花費時間長得多的時間來寫入一條資料。PCMS之讀取/寫入頻寬比為4:1。換言之,可比可將資料寫入至PCMS裝置快四倍地自彼裝置讀取資料。
總體上,計算裝置出於三個原因中之一者將資料寫入至依電性記憶體(傳統DRAM):
●作為在執行應用程式或系統服務之程序中使用的暫時空間。通常存在兩個類型之暫時空間:在應用程式之使用壽命期間持續之堆空間,及在短得多之跨度中出現及消失之一或多個堆疊空間。
●作為在應用程式或在系統上之作業系統執行環境之持續時間內持續之較長期儲存空間。
●作為用以在按某一方式將資料在I/O子系統與通用或圖形處理器之間交換前將資料登台之DMA緩衝器。此通常用於資訊處理裝置(CPU或GPU)與外部實體(如在圖形資
料之情況下的終端使用者或在HTML瀏覽資料之情況下的網路)之間的通信。
至少堆空間、堆疊空間及DMA緩衝器按其定義為暫時性的。可藉由實施傳統替換演算法且消除至及自PCMS之多數訊務的有效率之快取將諸如此等之暫時儲存使用固持於較小DRAM佔據面積中。在基於MLM之記憶體系統之核心處為大的寫回DRAM,其保留最近使用之資料、吸收寫入異動且允許系統實質上在寫入附近讀取(read-around-write)能力。DRAM基本上用作用於PCMS之快取記憶體。
圖3說明基於MLM之系統,其中DRAM被用作用於NVRAM記憶體之快取記憶體。在此實例中,DRAM叫作「近記憶體」300,且NVRAM(例如,PCMS)叫作「遠記憶體」302。此命名法係基於記憶體之相對效能(近記憶體通常具有比遠記憶體低的潛時及高的頻寬)。另外,雖然存在可用以附接DRAM與NVRAM之許多可能鏈路(亦即,匯流排、互連件),但在圖3中展示之實施例中,經由包含用於給定量之NVRAM(例如,64 GB)的單一記憶體通道之32位元寬鏈路附接遠記憶體NVRAM,且經由包含在DRAM晶片與SoC之間的矽穿孔(TSV)附接之512位元寬鏈路(潛在地,資料寬之快取線)附接近記憶體DRAM。因此,在不同實施例中,視與計算裝置相關聯之成本、效能及功率考慮而定,DRAM可在自64 MB至512 MB或512 MB以上之任何處。依據近記憶體命中之效能特性及針對遠記憶體異動招致之處
罰,MLM之有效性由一給定工作負載或工作負載之一集合「命中」近記憶體快取記憶體之時間量支配。
不必盲對其含有的資料之特性之快取記憶體常實施起來最簡單,但可為次最佳的。為此原因,MLM架構理解,其可更好地針對特定用途分配近記憶體之專用區域。圖4說明考量DRAM快取記憶體之一部分之專門使用的基於MLM之系統。在圖4中,512 MB DRAM空間並不作為具有八個64 MB路之八路快取記憶體管理,而按以下方式劃分:其被用作448 MB 7路快取記憶體(400),伴隨64 MB專用於由圖形硬體及驅動程式(402)直接使用。
圖5說明NVRAM之較低4 GB已經映射為直接可由通用或圖形處理器存取之遠記憶體的情況。在圖4中,私用GFX記憶體區402將直接映射成處理器之實體位址空間,潛在地處於高DRAM空間500與低DRAM空間502之間。在許多實施例中,基於暫存器或BIOS之機構將用以在啟動時將位置傳達至圖形驅動程式。在此之後,將直至圖形驅動程式及控制器來按以下方式將圖式表面分配至正常實體位址空間內或分配至私用GFX記憶體區402內:私用記憶體中含有依電性及時間敏感性表面(例如,圖框緩衝器)。根據可由驅動程式推斷之效能或功率暗示,可將其他非依電性、非時間敏感性表面(諸如,靜態紋理)及其他不可顯示圖形表面置放於任一空間中。
3.運用直接存取的多階記憶體(MLMD)
MLMD為在其自系統移除外部DRAM以有利於
與嵌式SRAM或DRAM裝置組合的新形式之非依電性儲存器的同時保留在現成的Microsoft® Windows®及Linux作業系統下執行生產力、娛樂及遊戲應用程式之能力之解決方案。
在手持型裝置或平板電腦中,將幾乎始終使用如NAND或NVRAM之固態裝置(諸如,PCMS)實施非依電性儲存器。當一裝置使用NVRAM裝置實施MLM時,藉由NVRAM實施整個儲存系統係自然的,且當然,遠記憶體與儲存系統共用NVRAM裝置為合乎需要的。圖6說明將一部分用於遠記憶體600且將另一部分用於儲存器602的雙分割之NVRAM。使用「平台實體位址」(PPA)索引記憶體部分,且使用「邏輯區塊位址」(LBA)索引儲存器。如在圖6中所示,記憶體控制(器)/邏輯112將PPA空間頁面位址映射成NVRAM 600之記憶體部分,且儲存控制(器)/邏輯604將LBA空間區塊位址映射成NVRAM 602之儲存部分。在具有此映射簡單性過程中存在問題。諸如PCMS的一些類型之NVRAM裝置具有阻礙連續位址在PPA/LBA抽象與實體裝置之間的直接映射之某些缺陷及磨損特性。
特定來說,對於PCMS,最可見的問題包括:
●缺陷管理--PCMS組件將伴隨著已知缺陷自工廠裝運,且可在其操作壽命上使缺陷增長。
●寫入磨損管理--PCMS實施具有關於任一給定胞應寫入至的次數之限制。
●讀取干擾--PCMS實施具有關於應自至胞之每一
寫入之間讀取任一給定胞的次數之限制。
圖7說明提供用於將頁面粒度PPA及LBA映射成實體NVRAM裝置中之不斷改變之頁面的功能性之位址重定向表。在圖7中,存在將給定PPA頁面位址重新映射至0 GB與4 GB-1之間的直接位址空間(DSPACE)位址(指代NVRAM之特定實體頁面之位址)之「幻象」記憶體重新映射表700。在許多實施例中,將記憶體重新映射表700儲存為在整合至記憶體控制(圖6中之112)內之SRAM中或近記憶體(DRAM)中的單一記憶體區塊。如所示,在記憶體重新映射表700中存在1百萬個記憶體DSPACE項,此係由於每一項指代PPA位址空間之唯一4KB頁面。記憶體重新映射表700係自重新映射描述符群組建置(例如,表示記憶體重新映射表700中的儲存之描述符的記憶體DSPACE1)。在許多實施例中,對於PPA空間之每一快取線(例如,4K快取線),存在一描述符。描述符之內容可基於可能需要追蹤的成條之不同資訊變化。至少NVRAM裝置位址將對於每一描述符實施例係共同的,每一描述符實施例將包含NVRAM裝置空間中對應於PPA記憶體項之某一組位址位元。此位址將需要處於每一描述符中以允許發生實際重新映射程序。
類似於記憶體描述符,在儲存重新映射表中亦存在儲存描述符。在圖7中展示之實施例中,在儲存重新映射表702中存在一千五百萬個儲存DSPACE項,此係由於每一項指代LBA位址空間之唯一4KB頁面。根據一些實施例,重新映射表700及702位於整合於硬體控制邏輯704內之
SRAM或其他高速記憶體儲存結構內。雖然圖7展示儲存及記憶體重新映射表之一特定實施為給定大小且按給定方式組織,但在許多其他實施例中,儲存及記憶體重新映射表為不同大小、不同粒度級別,及/或按不同方式實施(例如,儲存描述符可按較粗略方式存取NVRAM,其中在各替代實例中,一描述符指代一32 KB區塊,而非處於4 KB頁面粒度下)。硬體控制邏輯704可表示記憶體控制112或儲存控制604(其皆展示於圖6中),或硬體控制邏輯704可包含亦經設計以利用重新映射表700及702的新且不同形式之控制邏輯。在一些實施例中,儲存控制及記憶體控制表示為整合於處理器中或與處理器相離散的不同控制邏輯區塊。在其他實施例中,將此等不同形式之控制邏輯整合至涵蓋有必要用來管理NVRAM裝置之所有硬體控制邏輯的單一控制邏輯區塊內。
返回至重新映射表700及702,在其他實施例中,將此等表儲存於DRAM之儲存MLMD及其他控制資料結構的保留部分中。
基本上,圖7說明包含下列組件之虛擬記憶體系統:
●記憶體重新映射表700,其建立虛擬或「幻象」空間,該虛擬或「幻象」空間經由少量DRAM與指向NVRAM空間600之實體記憶體部分的指標陣列之組合模仿傳統DRAM。
●儲存重新映射表702,其提供自LBA位址空間至NVRAM空間602之實體儲存部分的轉譯。
●硬體控制邏輯704,其允許軟體驅動程式邏輯706操縱記憶體重新映射表700中之指標,以及儲存重新映射表中之指標。
●軟體驅動程式,其使用前面提到之硬體控制邏輯704在NVRAM之儲存部分與記憶體部分之間重新映射指標,而非經由中斷請求及DMA轉移來排程硬體驅動之資料複本。
在一些實施例中,存在用於操縱重新映射系統之記憶體及儲存部分的單獨軟體驅動程式。在其他實施例中,存在一個軟體驅動程式,其包括處置兩個重新映射表之邏輯(諸如,軟體驅動程式邏輯706)。根據一些實施例,可在硬體中處置記憶體描述符,同時儲存描述符由軟體驅動程式處置。
雖然圖7展示將NVRAM分成記憶體部分600及儲存部分602的NVRAM記憶體/儲存系統之一實施例,但不存在將NVRAM裝置劃分成儲存區域與記憶體區域之特定理由,只要可按直截了當的方式來管理混合兩者之複雜性。
一旦儲存與記憶體已位於同一實體裝置中且其位址已經混合,則按傳統方式執行與磁碟有關之DMA操作變得不必要--特定言之,應將資料自NVRAM之一部分複製至另一部分變得不清晰。取而代之,可簡單地藉由修改重新映射表700及702中之指標來在適當的位置參考資料。以此方式,應用程式看到資料出現在其位址空間中,而不是首先已經複製於其處。此重新映射能力叫作「直接存取」,且考量MLMD系統中之「D」。
圖8說明與圖7相同之位址重定向表,其將PPA及LBA映射成NVRAM,而非使NVRAM之預先指明之實體線性部分用於儲存用途且使另一部分用於記憶體用途,允許將圖8中的NVRAM中之每一實體位置指明用於儲存或記憶體用途。因此,在圖8中,整個實體NVRAM空間800中之每一位置能夠用於記憶體或儲存。
圖9為允許駐留於一特定類型之裝置(例如,PCMS記憶體)中的非依電性儲存頁面直接映射成軟體應用程式之位址空間的程序之流程圖。此程序能夠在不將資料自儲存媒體(長期儲存資料之處)複製至資料由執行之軟體應用程式利用之記憶體的情況下完成。藉由消除此複本(在標準實施中,其將另外涉及至少CPU中斷及直接記憶體存取(DMA)轉移),自軟體應用程式請求資料之時間點直至軟體應用程式能夠存取其位址空間中之資料之時,節省了大量時間且消耗較少功率。該程序由處理邏輯執行,處理邏輯可包含硬體、軟體或韌體邏輯,或可為多個類型之邏輯的組合。另外,以下及在圖9中描述之程序僅為使用3頁記憶體分配之一說明性實例。在其他實施例中,可存在或多或少個待分配之頁面,且涉及之步驟可按完成該程序之一或多個不同方式變化。
該程序開始於由使用者處理序(例如,在OS上執行之軟體應用程式)中之處理邏輯針對自非依電性儲存器(例如,PCMS)讀取之3區塊分配來自OS之3頁緩衝器(處理區塊900)。在其他實施例中,此可為頁面緩衝器中之較少
或較多數目個頁面及用於讀取的較少或較多數目個區塊。接下來,OS中之處理邏輯釋放實體DRAM中之3個頁面,且將指標自OS中之使用者空間映射至實體記憶體頁面A、B及C(處理區塊902)。頁面A、B及C為實際DRAM裝置實體位址頁面。雖然將在區塊902處之處理邏輯描述為在OS中,但在其他實施例中,此處理邏輯可以硬體實施以用於較快速分配。另外,雖然將使用者緩衝器描述為在DRAM中,但在其他實施例中,使用者緩衝器可存在於專門的SRAM中或存在於處理器之快取記憶體之專用部分中,如與僅存在於DRAM中相反。
接著,使用者處理序中之處理邏輯請求OS將資料自非依電性儲存位址X、Y及Z(表示非依電性儲存器中之3個區塊)移動至使用者緩衝器。另外,此時,使用者處理序由OS設定至閒置狀態(處理區塊904)。接下來,OS中之處理邏輯歷經所有記憶體轉譯以得到實體記憶體頁面位址,且請求在OS上執行之儲存驅動程式將資料自儲存位址X、Y及Z移動至實體記憶體頁面A、B及C(處理區塊906)。再次,在其他實施例中,區塊904及906中之處理邏輯可在硬體中,而非在OS中。此外,在其他實施例中,可使用硬體邏輯代替儲存驅動程式將資料自儲存位址移動至實體記憶體頁面。
接著,儲存驅動程式中之處理邏輯請求針對LBA儲存位置X、Y及Z之儲存/裝置映射,且將指向記憶體頁面A、B及C之指標改變至針對X、Y及Z之指標(處理區塊908)。
儲存驅動程式接著通知OS已完成轉移(處理區塊910),OS再次將使用者處理序標記為作用中(處理區塊912),且使用者處理序接著接收資料(處理區塊914)。在未圖示之其他實施例中,存在將記憶體及儲存映射至實體NVRAM頁面之單一表,其中針對單一表中之每一頁面的項具有指示該頁面正用於儲存或是記憶體之一位元欄位。在此實施例中,自儲存至記憶體或自記憶體至儲存之重新映射僅涉及翻轉位元以按其他格式指明該頁面。
按以下方式將對儲存空間之存取直接映射至記憶體空間內:
●經由記憶體重新映射表(圖8中之700)來處理所有存取。舉例來說,每當應用程式產生對位址1 MB之讀取存取時,重新映射機制將存取其表(假定4 KB頁面)中之第256項,且根據固持於該表之第256項中的位址將讀取重定向至PCMS空間中的記憶體擁有之頁面。
●當作業系統要求SATA或其他裝置驅動程式將一頁面自(例如)「磁碟」上之100 GB區複製至幻象記憶體中之1 MB區時,裝置驅動程式將發送彼資訊至硬體介面機構以重新映射指標。
●在此特定情況下,硬體機構將接收將在儲存器中之100 GB處的頁面複製至在1 GB處之幻象DRAM頁面內之訊息。替代實體移動資料,幻象重新映射表中之第256指標將由100 GB/4 KB覆寫,因此使對幻象1 MB之所有未來讀取存取自從前映射為儲存之100 GB位置服務。
基本上,先前為實體NVRAM空間(圖8中之800)中的指明之儲存位置之位置可改變至記憶體位置,或反之亦然。且,用於進行此之程序僅涉及切換記憶體及儲存重新映射表(分別為圖8中之700及702)內之指標。
雖然許多形式之NVRAM可用於此等實施,但歸因於低讀取潛時,PCMS為良好的候選者。但PCMS具有其讀取與寫入潛時之間的實質不對稱性。因此,當對待PCMS時,存在可用以使PCMS寫入之缺點最小化的某些程序。作為更慢得多的寫入時間之結果,當進行中之寫入正佔據PCMS記憶體系統時,可存在添加至讀取潛時的實質延遲。
根據一些實施例,僅執行對已經預先清潔(實際上預先設定)的頁面之寫入,此係由於將資料寫入至預先清潔之頁面實質上比寫入至尚未準備之頁面快。不幸地,具有僅寫入至預先清潔之頁面的策略無能量效率,此係因為此粗略地使寫入每一位元所需之能量雙倍增加。
在許多實施例中,利用當PCMS記憶體系統相對忙時寫入至預先清潔之頁面且當PCMS記憶體系統相對安靜時寫入至未清潔之頁面的機制。淨效應為當系統經輕微負載時提供最小功率消耗,且當系統變得忙時以較高功率來換取改良之效能。
圖10說明使用頁面空白寫入策略的PCMS頁面清潔程序之一實施例。如所陳述,由於PCMS儲存器之性質,因此可能需要比自PCMS讀取資料所需時間長若干倍的時間來將資料寫入至PCMS。此不對稱性使設計記憶體及/
或儲存控制器之程序變複雜,此係由於寫入操作可在實質時間長度內阻止對PCMS之區的存取,且防止服務效能敏感性讀取。
在將PCMS儲存元件(一位元)設定至「1」(其需要相對長的時間)對將同一元件設定至「0」(其粗略地需要與讀取元件所需時間相同的時間量)之間亦存在顯著的寫入時間偏差。因此,將PCMS記憶體之自由頁面預設定至皆為1同時藉由資訊執行至該頁面之寫入高度有益,僅將需要改變需要設定至0的位元。
因此,在許多實施例中,將預設定之頁面(每一位元經設定至1的頁面)的一集區用於寫入操作。PCMS儲存/記憶體控制器負責排程讀取及寫入資料在用以在至及自PCMS裝置之運動中儲存資料之任何控制器快取記憶體或寫入緩衝器之間的轉移。最佳地,暫時將不存取之所有資料將移動至PCMS內,以便為其他資料騰出控制器快取記憶體及寫入緩衝器中之空間。另外,將不久將使用之資料移動至控制器快取記憶體內將增加系統效能。
根據許多實施例,圖10中展示之程序可幫助PCMS儲存/記憶體控制器減少控制器之快取記憶體及寫入緩衝器由於其在等待將引退(亦即,寫入)至PCMS裝置之資料而不可用於有用的工作之時間。轉至圖10,在許多實施例中,寫入緩衝器/快取記憶體管理邏輯1000駐留於控制器(未圖示)內。在不同實施例中,此控制器可為記憶體控制器、儲存控制器、組合式記憶體/儲存控制器,或完全為另
一控制器。寫入緩衝器/快取記憶體管理邏輯1000基本上為管理為用於PCMS操作之控制器之資源的一或多個寫入緩衝器及/或一或多個快取記憶體之管理邏輯。舉例來說,在此意義上之寫入緩衝器可為至一或多個PCMS裝置之未決寫入在其等待引退(亦即,完成)時佇列之儲存位置。寫入緩衝器中之未決寫入等待PCMS記憶體之自由頁面變得可用,且接著管理邏輯協調自緩衝器至自由頁面之寫入。
更特定言之,自由PCMS記憶體頁面之自由頁面集區1002對寫入緩衝器/快取記憶體管理邏輯1000來說可存取。當管理邏輯決定向前進且引退寫入請求時,來自自由頁面集區1002之一頁面經映射至幻象位址空間1004內(步驟1--由圖10中帶圓圈之1表示)。接著,寫入緩衝器/快取記憶體管理邏輯1000藉由將資料在映射之頁面處寫入至幻象位址空間1004來執行來自寫入緩衝器1006之寫入請求(步驟2)。接著將寫入緩衝器項標記為可用,且將不再需要之頁面發送至已變更頁面集區1008(步驟3)。已變更頁面集區可僅為具有不再需要之資料的PCMS頁面之已變更清單。在許多實施例中,已變更頁面集區1008為由已變更頁面集區指標指向的頁面之清單。對於自該清單得到之每一頁面,指標接著指向清單上之下一頁面。可將每一新的已變更頁面(諸如,來自步驟3的發送至已變更頁面集區1008之已變更頁面)附加至清單之末尾。
頁面清潔邏輯1010接著自已變更集區拉取一頁面,且對其進行清潔(步驟4)。在許多實施例中,清潔程序
將頁面中之所有位元設定至「1」,以預設定該頁面用於快速寫入。頁面串流(步驟5)接著由頁面清潔邏輯1010發送至自由頁面集區1002。類似於已變更頁面集區1008,自由頁面集區1002可由自由頁面集區指標指向。自由頁面集區指標在PCMS記憶體之自由頁面之清單的前部指向頁面。當一頁面經自清單得到且映射至幻象位址空間用於寫入時,指標接著指向清單中之下一個頁面。當到達來自清潔頁面串流中之一清潔頁面時,將彼頁面附加至該清單之末尾。
頁面清潔邏輯1010通常獨立於寫入緩衝器/快取記憶體管理邏輯1000操作。按考慮基本的系統考慮(諸如,功率及效能操作點)的速率控管每一頁面之頁面清潔程序。在許多實施例中,頁面清潔邏輯1010藉由遞增針對到達已變更頁面集區1008的每一頁面之計數器且遞減針對自已變更頁面集區1008拉取以待清潔的每一頁面之同一計數器來保持需要清潔的頁面之計數。此係除了追蹤指向包含已變更頁面集區1008的頁面清單之前部的指標之外還有的操作。在其他實施例中,已變更頁面集區1008及清潔頁面集區1002可保持於表中,而非清單中。
根據一些實施例,寫入緩衝器/快取記憶體管理邏輯1000可包括針對部分快取之頁面填充間隙的邏輯。舉例來說,若寫入緩衝器將來自一頁面之部分資料寫入至映射至幻象位址空間的清潔頁面,則該邏輯可執行自PCMS裝置之讀取,以得到用於該頁面之其餘資訊以填充於寫入資料之間隙中。
另外,寫入緩衝器/快取記憶體管理邏輯1000包括能夠將資料自寫入緩衝器1006實體寫入至記憶體之實體PCMS頁面之機構。藉由在操作中之頁面清潔邏輯1010,可始終存在可用於寫入的某一數目個預設定頁面。圖11說明將資料寫入至幻象位址空間中可用之PCMS頁面的寫入機制之流程之一實施例。該程序由處理邏輯執行,處理邏輯可包含硬體、軟體、韌體或此等列舉之形式之處理邏輯中的兩者或兩者以上之組合。
程序開始於寫入緩衝器中需要清空之資料頁面(處理區塊1100)。該頁面正等待寫出至PCMS記憶體裝置,且清空緩衝器之程序伴隨寫入。程序繼續,處理邏輯判定全部資料頁面是否有效(處理區塊1102)。若全部4 K資料頁面並不有效,則處理邏輯自具有進入寫入緩衝器之資料的舊PCMS頁面提取用於該頁面之並不有效的部分之資料(處理區塊1104)。接著,與是否執行了處理區塊1104無關,針對任一邏輯流道之下一個步驟為處理邏輯找到自由頁面集區中之下一個自由PCMS頁面(處理區塊1106)。
在一些實施例中,一旦定位了自由頁面,則處理邏輯將來自寫入緩衝器之一或多個項寫入至自由集區中找到之自由頁面(處理區塊1108)。在一些實施例中,處理邏輯接著修改幻象位址表中之指標(其亦可被稱作來自圖7之記憶體重新映射表700)以指向剛寫入至的頁面(處理區塊1110)。接著處理邏輯將寫入緩衝器項標記為可用(處理區塊1112)以允許另一寫入請求進入寫入緩衝器。
圖12說明允許自功率/效能角度看將PCMS頁面
有效率地寫入之機制之一實施例。根據許多實施例,將PCMS頁面狀態表1200儲存於電腦系統中。在不同實施例中,PCMS頁面狀態表1200之位置不同。在許多實施例中,PCMS頁面狀態表1200儲存於PCMS自身中,此係因為該表可實質上大(例如,4 KB頁面粒度中之1 TB的PCMS為1 TB/4 KB=256,000,000項)。在其他實施例中,若存在可用之足夠的保留空間,則此表可儲存於DRAM之保留區段中。
PCMS頁面狀態表1200包括每個經如下編碼之頁面項兩個位元:
●00--頁面不在使用中且清潔
●00--頁面不在使用中,但需要清潔
●10--頁面在使用中,作為遠記憶體
●11--頁面經分配至儲存器或為壞的
在對於1 TB之PCMS的256,000,000個項之情況下,在每項2位元之情況下,表將需要64 MB之儲存。此頁面狀態表考慮到已經預先清潔之頁面(例如,具有所有位元皆為「1」之頁面)與尚未經清潔之頁面(例如,其中具有舊資料且亦被稱為「已變更」頁面之頁面)之間的區別。
為了存取自由頁面,提供兩個指標。第一指標1202指向經清潔之自由頁面1204的清單(亦即,集區)。第二指標1206指向已變更自由頁面1208的清單/集區。在許多實施例中,此等集區包含至PCMS實體位址空間中之位置的位址清單。在一些實施例中,可維持此等兩個集區在鄰近於
PCMS頁面狀態表1200之位置中。在其他實施例中,可將此等兩個集區維持於系統中其他處,諸如,在DRAM中。
頁面清潔邏輯1010(其潛在地位於圖7及圖8中之記憶體/儲存控制內,但可位於其他處)清潔PCMS記憶體之頁面,且找到或被提供已變更的自由頁面之清單(舊資料位於此等頁面上,其意謂在此等頁面上之位元並不皆設定至「1」)。PCMS頁面狀態表1200維持每一頁面之狀態,且頁面清潔邏輯1010可維持每一頁面之狀態。舉例來說,當自已變更自由頁面集區1208拉取已變更自由頁面且對其進行清潔時,頁面清潔邏輯1010可將用於彼特定頁面之PCMS頁面狀態表1200項自01「自由/不清潔」更新至00「自由/清潔」。
在其他實施例中,頁面清潔邏輯1010可額外搜尋PCMS頁面狀態表1200以獲得待清潔之自由/不清潔頁面(01)。對於不清潔的找到之頁面,頁面清潔邏輯1010可將該頁面添加至已變更自由頁面集區1208。
在存在極少或無PCMS訊務的時間期間,頁面清潔邏輯1010可決定清潔位於已變更自由頁面集區1208中之一或多個頁面。當此發生在一頁面上時,頁面清潔邏輯接著將PCMS頁面狀態表1200中用於彼頁面之狀態位元調整至00,其指示頁面自由且清潔。接著,頁面清潔邏輯1010可將彼頁面自已變更自由頁面集區1208移動至經清潔之自由頁面集區1204。當存在顯著的PCMS訊務時,頁面清潔邏輯可不試圖清潔任何頁面,以不會不利地影響PCMS記憶體
效能。
為了判定存在PCMS訊務之時間,利用記憶體訊務監視器1212追蹤最近消耗之PCMS頻寬。在操作期間,記憶體訊務監視器邏輯正不斷地計數在給定時間週期(諸如,1微秒(μs))內的記憶體異動之數目。若在此給定週期期間的PCMS異動之數目大於可程式化值(可經由BIOS或在其他處來程式化可程式化值),則在位於記憶體訊務監視器1212內之移位暫存器中設定一位元。記憶體訊務監視器1212中的一個單獨邏輯監視移位暫存器,以便理解在過去的「n」個時間週期期間系統已具有的「忙」時間週期之數量。若忙週期之數目大於可程式化數目,則該邏輯將使下一個自由指標1214來源自經清潔之自由頁面集區1204。若忙週期之數目小於或等於該值,則下一個自由指標1214將來源自未清潔之自由頁面集區1208。
如上提到,此同一記憶體訊務監視邏輯可用以幫助頁面清潔邏輯1210判定清潔頁面之時間,因此,在許多實施例中,記憶體訊務監視器1212額外通信耦接至頁面清潔邏輯1210。
在另一實施例中,在裝置連接至交流(AC)電力之所有情況下,系統可選擇預先清潔頁面,此係由於僅當裝置正在電池上運作時功率消耗可能有問題。
參看圖7,情況通常為:在標準操作期間,比自「儲存」讀取及寫入至「儲存」更常見地自「記憶體」讀取及寫入至「記憶體」。因此,若經指明為記憶體空間的
NVRAM(例如,PCMS)之部分原樣保留且NVRAM之其餘部分經指明為儲存空間,則歸因於許多類型之非依電性記憶體的一般磨損特性,記憶體空間及儲存空間區段將隨著時間流逝而不均勻地磨損。
因此,為了矯正此問題,圖13說明允許NVRAM頁面在記憶體與儲存指明之間的一致移動之機制之一實施例。
在圖13中,存在一NVRAM記憶體/儲存調換硬體邏輯1300,其在記憶體用途與儲存用途之間遷移NVRAM頁面。記憶體/儲存調換硬體邏輯1300利用:
●一位元映射之非依電性表,其反映NVRAM的每一頁面之狀態(亦即,頁面是否經指派至儲存或其是否可用於記憶體)。此表通常將儲存於NVRAM自身內。舉例來說,對於基於PCMS之系統,此表可包含NVRAM頁面狀態表1302(與圖12中之PCMS頁面狀態表1200類似或相同)。
●儲存重新映射表702,其將儲存空間LBA位址映射至NVRAM裝置位址。
●硬體機構,其使NVRAM儲存頁面移動至可用之記憶體空間頁面且允許將先前含有資料之儲存空間頁面重新打算用於記憶體用途。
在許多實施例中,當圖13中說明之邏輯操作時,考慮以下屬性:
記憶體集區寫入機構將始終將資料寫入至空白的記憶體分配之頁面。
由映射至儲存重新映射表702之NVRAM位址表示的儲存集區與記憶體寫入機構互動以寫入至儲存分配之頁面,從而當寫入完成時將經寫入之頁面遷移至儲存集區。
當儲存集區注意到不再需要不再必要之頁面時,儲存集區將其推入至寫入集區內。在一些實施例中,不再必要之頁面被推入至自由頁面集區1304內,自由頁面集區1304可或可不為「清潔」集區(亦即,已經針對寫入預設定的自由頁面之集區,諸如,以上關於圖12論述之集區)。
當將一頁面寫入至儲存時,針對此程序之此等屬性將使經寫入之頁面自記憶體集區遷移至儲存集區,且使先前分配至儲存位置之頁面自儲存集區移動至記憶體集區。
圖13描述硬體機構,其在說明之實施例中經展示為記憶體/儲存調換硬體邏輯1300。此邏輯可位於記憶體/儲存控制邏輯內或系統中之其他處。為了提供一說明性實例,記憶體儲存調換硬體邏輯1300主管記憶體/儲存子系統中之影響範圍1306。影響範圍1306簡單地展示記憶體/儲存調換硬體邏輯1300可控制以執行此等調換中之一者的至少最少量之硬體及軟體邏輯。
經由可存在於記憶體/儲存調換硬體邏輯1300內之週期性計時器或寫入計數器(計時器/計數器:T/C 1308)開始該程序。在某一點,激發T/C 1308(其指對於計數器,指定的時間量過去了,或指定的寫入數目發生),且使分配至儲存的PCMS裝置頁面(映射至儲存重新映射表702內之
當前儲存頁面)中之資料複製至寫入緩衝器1006(步驟1)。一旦寫入緩衝器1006將資料寫入至NVRAM記憶體空間中的空白頁面(分配至記憶體重新映射表700之頁面),則來自自由頁面集區1304之自由頁面經分配且映射至記憶體重新映射表700內(圖2A)。
一旦在表中分配了頁面,則寫入緩衝器被清空且將原先自當前儲存頁面接收之資料寫入至記憶體重新映射表700中的新映射之自由頁面(步驟2B)。在此點,儲存於儲存空間中之當前儲存頁面中的資料現在位於記憶體空間中的新映射之自由頁面中。在此發生後,或潛在地與步驟2A及2B一起,將至當前儲存頁面(其現在在其中具有舊資料)之NVRAM位址重新分配至記憶體空間內,作為新遷移之記憶體頁面(步驟3)。因此,此位址指向之實體NVRAM頁面自分配為儲存重新映射表702中之儲存空間改變至分配為記憶體重新映射表700中之記憶體空間。在此重新分配同時或在稍後時間,現在具有在步驟2B中自寫入緩衝器1006到達的寫入至新映射之自由頁面之儲存資料的該新映射之自由頁面經重新分配為新遷移之儲存頁面(步驟4)。因此,此位址指向之實體NVRAM頁面自分配為記憶體重新映射表700中之記憶體空間改變為分配為儲存重新映射表702中之儲存空間。
在此點,遷移已完成。此遷移可針對實體NVRAM記憶體一頁接一頁有系統地發生。無論何時激發T/C 1308,將另一記憶體分配之頁面遷移至儲存,且將對
應的儲存分配之頁面遷移至記憶體。當隨時間貫穿所有NVRAM實體頁面重複此程序時,結果為自裝置之實體記憶體位址之底部至頂部的均勻磨損之NVRAM裝置。
視NVRAM實體裝置之「平面」組態而定,為了效率目的,額外功率及效能考慮可為必要的。舉例來說,在PCMS之情況下,在許多情況下,存在多個「平面」(其指當在一給定平面中連續存取行得通時有效率的記憶體之區域),但當對平面上之不同實體記憶體位置連續存取時,裝置失去異動效率(自功率及效能角度看)。
PCMS對於多數存取通常具有相當短的潛時(對於當前一代裝置,約50奈秒(ns)),但當連續存取記憶體裝置中之兩個不同平面時,需要較長潛時(約100 ns),其中平面可表示裝置中的整個記憶體空間之約四分之一。另外,對於存取之間的跨平面,可存在實質功率/能量處罰。
因此,建議藉由消除儘可能多的不必要之平面過渡來儘可能多地減輕此等處罰之機構。圖14說明支援消除不必要的PCMS平面過渡之程序的此程序及伴隨機構(亦即,硬體邏輯)之一實施例。
在許多實施例中,存在一組PCMS裝置存取(A1至A5),其按次序展示於視圖1400中之實際平面上。存取1為至平面1中之實體位置,存取2在平面2中之實體位置中,存取3在平面3中之實體位置中,存取4在平面4中之實體位置中,且存取5在平面1中之實體位置中。在視圖1402中,展示當按次序引退該等存取時在平面之間的過渡(T1至
T4)。特定言之,平面過渡1發生在存取1與2之間,平面過渡2發生在存取2與3之間,平面過渡3發生在存取3與4之間,且平面過渡4發生在存取4與5之間。因此在按接收之次序的存取之標準存取次序視圖1404之情況下,存在4個平面過渡。
藉由具有佇列之異動緩衝器的記憶體控制邏輯(傳入讀取及寫入請求在執行前佇列),當邏輯知曉存取之實體位置時,有可能且實際上需要對異動次序重新排序。因此,可包括一PCMS異動重新排序邏輯單元的記憶體控制邏輯具有藉由使用記憶體/儲存重新映射邏輯(以上論述)獲得對於每一異動之實體PCMS位址來執行自佇列之PCMS異動的查找之能力。基於知曉在異動佇列中的每一PCMS異動之實體位置,PCMS異動重新排序邏輯單元可執行異動之重新排序以增加一組異動之平面過渡效率。
對於圖14,一組合理的無序平面存取1406(自視圖1400中展示之有序平面存取修改)將會將第五存取(A5)自異動佇列中之第五位置移動至第二位置。因此,該組新的重新排序之存取將為平面1中之A1,接著為平面1中之A5,接著為平面2中之A2,接著為平面3中之A3,且最終為平面4中之A4。此次序將會將平面過渡之數目自四改變至三,如在視圖1408中所示,視圖1408展示發生在存取5與2之間的平面過渡1、發生在存取2與3之間的平面過渡2及發生在存取3與4之間的平面過渡3。結果為具有少一個的平面過渡之最佳化之存取次序1410。歸因於較少潛時集中平面過渡,
此重新排序將減少總功率消耗,以及增加記憶體輸送量。
4.基於SoC之計算裝置綜述
圖15說明併有基於MLMD之記憶體子系統作為系統單晶片(SoC)封裝1500設計的計算裝置之一實施例,該SoC封裝1500將處理器、圖形、記憶體及I/O控制邏輯組合成一SoC封裝。因此,在圖15中,CPU核心1502、GPU核心1504、其各別快取記憶體(1506及1508)皆與記憶體子系統1512及I/O子系統1530一起存在於封裝中。
雖未圖示,每一CPU核心可內部包括一或多個指令/資料快取記憶體、執行單元、預先提取緩衝器、指令佇列、分支位址計算單元、指令解碼器、浮點單元、引退單元等。存在之每一核心位於CPU半導體晶粒上。對於SoC封裝1500中不同於核心1502的展示之每一邏輯單元,邏輯單元可在一些實施例中在CPU核心1502上,或在其他實施例中在另一晶粒上。若給定邏輯單元不在與CPU核心1502相同的晶粒上,則彼邏輯單元將在不同的半導體晶粒上,但在同一SoC封裝1500中,該SoC封裝1500可包括在封裝中相互通信耦接之若干晶粒。
SoC 1500亦包括至少一較低階CPU快取記憶體,諸如,CPU快取記憶體1506。此可為通用快取記憶體,其能夠將自記憶體位置擷取之大量資料儲存於依電性記憶體1518及/或NVRAM 1520中。在不同實施例中,可在所有核心間共用CPU快取記憶體1506,或每一核心可具有其自身的較低階快取記憶體。
一或多個GPU核心1504亦包括於SoC封裝1500以及較低階GPU快取記憶體1508中,較低階GPU快取記憶體1508可儲存用於GPU核心1504的與圖形有關之資料以對其工作。GPU核心1504可內部包括一或多個執行單元及一或多個指令及資料快取記憶體,該一或多個指令及資料快取記憶體用以對執行單元饋入資訊以處理。另外,GPU核心1504可含有未在圖15中展示之其他圖形邏輯單元,諸如一或多個頂點處理單元、光柵化單元、媒體處理單元及編碼解碼器等等。為了簡單起見,在GPU核心1504內之特定邏輯未圖示。
SoC封裝1500亦可包括本籍代理150,其併有組件協調及操作核心1502以及SoC封裝1500之其他元件。本籍代理1510可包括(例如)功率控制單元(PCU)。PCU可包括對於在其他任務間調節核心之功率狀態需要的邏輯及組件。
在圖15中,SoC封裝1500亦包括一記憶體子系統1512,其具有可用以提供對依電性記憶體1518之存取的一整合式依電性記憶體控制器1514。依電性記憶體控制器1514可接收來自CPU核心之記憶體存取請求,且將彼請求投送至依電性記憶體1518。同樣地,NVRAM控制1516可接收來自CPU核心之記憶體存取請求,且將彼請求投送至NVRAM 1520。
「依電性記憶體」1518為與NVRAM 1520一起組態的中等階記憶體,其具有相對於NVRAM 1520較低的讀取/寫入存取潛時及/或更對稱的讀取/寫入存取潛時(亦即,
具有粗略地等效於寫入時間之讀取時間)。如上文所論述,在一些實施例中,依電性記憶體1518具有比NVRAM 1520顯著低的寫入潛時,但類似(例如,稍微較低或相等)的讀取潛時;舉例來說,依電性記憶體1518可為諸如依電性隨機存取記憶體(VRAM)之依電性記憶體,且可包含DRAM或其他基於高速電容器之記憶體。然而,注意,本發明之基礎原理不限於此等特定記憶體類型。另外,依電性記憶體1518可具有相對較低的密度及/或可比NVRAM 1520製造起來昂貴。
在一些實施例中,依電性記憶體1518組態於NVRAM 1518與CPU快取記憶體1506之間。在以下描述的實施例中之一些中,依電性記憶體1518用以遮蔽NVRAM 1520之效能及/或使用限制,包括(例如)讀取/寫入潛時限制及記憶體降級限制。在此等實施中,依電性記憶體1518與NVRAM 1520之組合在近似、等效或超過僅將DRAM用作系統記憶體之系統的效能級別下操作。
雖然按圖15中之特定組態展示,但在不同實施例中,依電性記憶體1518可位於處理器晶粒上、位於處理器晶粒外部在位於SoC封裝1500上之單獨晶粒上、位於CPU封裝外部(具有至SoC封裝1500之高頻寬鏈路)(例如,在記憶體雙排記憶體模組(DIMM)、提昇器/夾層或電腦主機板上)。在圖15中,依電性記憶體1518展示為位於SoC封裝1500外部。可使用單一或多個高頻寬鏈路(諸如,DDR或其他異動高頻寬鏈路)將依電性記憶體1518與SoC封裝1500通信耦
接。裝置之通信耦接指經由電、光學、無線或其他形式之鏈路或鏈路之組合耦接以允許在相互耦接之裝置之間來回傳遞資訊。在一些實施例中,耦接為直接的且允許資訊直接自第一裝置傳遞至第二裝置,及潛在地,自第二裝置傳遞至第一裝置。在其他實施例中,耦接為間接的,且需要資訊穿過沿著資訊當在討論中之兩個通信耦接之裝置之間轉移時選取之路線駐留的一或多個額外裝置。
在許多實施例中,輸入/輸出(I/O)子系統1530存在於圖15中之系統中以與諸如I/O裝置1534之I/O裝置通信。圖15中之I/O子系統1530整合至SoC封裝1500內。在I/O子系統1530內,存在一或多個I/O配接器1532以將在CPU核心1502內利用之主機通信協定轉譯至與特定I/O裝置相容之協定。配接器可用於轉譯的協定中之一些包括周邊組件互連(PCI)快速(PCI-E),3.0;通用串列匯流排(USB),3.0;串列進階附接技術(SATA),3.0;小型電腦系統介面(SCSI),Ultra-640;及電機及電子工程師學會(IEEE)1594「Firewire」;等等。
另外,可存在一或多個無線協定I/O配接器。無線協定等之實例用於個人區域網路(諸如,IEEE 802.15及Bluetooth,4.0)、無線區域網路(諸如,基於IEEE 802.11之無線協定)及蜂巢式協定中。
基本輸入/輸出系統(BIOS)快閃1536裝置可額外存在於系統中以當系統通電或重新啟動時提供一組啟動指令。對於BIOS快閃1536裝置,I/O配接器1534可轉譯的協定
中之一些包括串列周邊介面(SPI)、Microwire等等。
在以下描述中,諸如邏輯實施之眾多特定細節意謂指定運算元、資源分割/共用/重複實施、系統組件之類型及相互關係,且闡明邏輯分割/整合選擇以便提供對本發明之更澈底的理解。然而,熟習此項技術者應瞭解,可在無此等特定細節之情況下實踐本發明。在其他實例中,尚未詳細展示閘極級電路及完全的軟體指令序列,以便不使本發明難懂。藉由包括之描述,一般熟習此項技術者將能夠在無不當實驗之情況下實施適當功能性。
在該說明書中對「一實施例」、「一實例實施例」等之提及指示描述之實施例可包括一特定特徵、結構或特性,但每一實施例可未必包括該特定特徵、結構或特性。此外,此等片語未必指同一實施例。另外,當結合一實施例描述一特定特徵、結構或特性時,認為結合其他不管是否明確描述之實施例實現此特徵、結構或特性在熟習此項技術者之知識內。
在以下描述及申請專利範圍中,可使用術語「耦接」及「連接」連同其衍生詞。應理解,此等術語不意欲作為彼此之同義詞。「耦接」用以指示可或可不相互直接實體或電接觸之兩個或兩個以上元件相互合作或互動。「連接」用以指示在相互耦接之兩個或兩個以上元件之間的通信之建立。
本發明之實施例亦可提供為一種電腦程式產品,其可包括具有儲存於其上之指令的一非暫時性機器可
讀媒體,該等指令可用以程式化電腦(或其他電子裝置)以執行一程序。非暫時性機器可讀媒體可包括(但不限於)軟碟、光碟、CD-ROM及磁光碟、ROM、RAM、EPROM、EEPROM、磁卡或光卡、傳播媒體或適合於儲存電子指令的其他類型之媒體/機器可讀媒體。本發明之實施例亦可作為一種電腦程式產品下載,其中可經由通信鏈路(例如,數據機或網路連接)藉由體現於載波或其他傳播媒體中之資料信號將程式自遠端電腦(例如,伺服器)轉移至請求電腦(例如,用戶端)。
雖然已按若干實施例描述本發明,但熟習此項技術者應認識到,本發明不限於描述之實施例,可藉由在附加申請專利範圍之精神及範疇內的修改及變更來實踐。描述因此被視為說明性的,而非限制性的。
100‧‧‧中央/通用處理器(CPU)
102‧‧‧圖形處理器
104‧‧‧IO控制器及其相關聯之IO裝置
106‧‧‧磁碟或固態磁碟機(SSD)
108‧‧‧輸入/輸出(I/O)裝置
110‧‧‧晶粒上快取記憶體
112‧‧‧記憶體控制器
114‧‧‧DRAM儲存器
Claims (36)
- 一種方法,其包含下列步驟:將一電腦系統中之一非依電性隨機存取記憶體(NVRAM)之一第一量指定成用作一動態隨機存取記憶體(DRAM)之記憶體替代物;將該NVRAM之一第二量指定成用作一大容量儲存裝置之一儲存替代物;在該電腦系統之操作期間,將該第一量之NVRAM之至少一第一部分從用作該記憶體替代物之指定重新指定成用作該儲存替代物之指定;在該電腦系統之操作期間,將該第二量之NVRAM之至少一第一部分從用作該儲存替代物之指定重新指定成用做該記憶體替代物之指定;以及針對複數個NVRAM實體頁面中之各者,判定各NVRAM實體頁面是否為未被佔用而可被寫入的,其中,一給定NVRAM實體頁面是在該給定NVRAM實體頁面不持有有效資料之時為未被佔用而可被寫入的。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:在一第一時間量上整個循環通過要被從該記憶體替代物之指定重新指定成該儲存替代物之指定的該第一量之NVRAM,其中,此循環操作包含:在複數個時間段中之各者上重新指定組成整個該第一量之NVRAM的複數個部分中之各者,該等複數個時間段之總和包含 該第一時間量。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:經由一重新映射表,針對運行於該電腦系統上的一軟體應用程式而提供對該NVRAM中之至少一實體位置的存取。
- 如申請專利範圍第3項之方法,其中,該重新映射表進一步包含一記憶體重新映射表,該記憶體重新映射表將至少一平台實體位址轉譯成一實體NVRAM位址。
- 如申請專利範圍第3項之方法,其中,該重新映射表進一步包含一儲存重新映射表,該儲存重新映射表將至少一邏輯區塊位址轉譯成一實體NVRAM位址。
- 如申請專利範圍第3項之方法,其中,該重新映射表進一步包含一記憶體及儲存重新映射表,該記憶體及儲存重新映射表具有至少一個與各個表項相關聯的判定該表項是被指定成記憶體還是儲存空間的位元。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:針對該等複數個NVRAM實體頁面中之各個未被佔用NVRAM實體頁面,判定各未被佔用NVRAM實體頁面是否清潔,其中,一給定未被佔用NVRAM實體頁面是在於該給定未被佔用NVRAM實體頁面中所儲存的所有位元都被設定成一之時為清潔的。
- 如申請專利範圍第7項之方法,其進一步包含下列步驟:將該等複數個NVRAM實體頁面中之至少一未被佔用NVRAM實體頁面清潔,其中,要被清潔的該至少一 未被佔用NVRAM實體頁面包含具有至少一個被設定成零的所儲存位元的一頁實體NVRAM。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:提供一請求者,該請求者請求要寫入為複數個未被佔用NVRAM實體頁面中之一者的一頁NVRAM,該等未被佔用NVRAM實體頁面中之該一者在對該NVRAM的一介面實質上閒置時還沒有被清潔;以及將複數個未被佔用NVRAM實體頁面中之在對該NVRAM的該介面不實質上閒置時已被清潔的一者提供給該請求者。
- 如申請專利範圍第9項之方法,其進一步包含下列步驟:監視進出該NVRAM介面的訊務以判定在任何給定時間上該介面是否實質上在訊務上閒置。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:基於各個異動位置之NVRAM平面位置而將對該NVRAM的一組異動排序,其中,此排序操作包括:使在該組異動中之各者之間的平面跨越之數量最小化。
- 如申請專利範圍第1項之方法,其中,該NVRAM包含相變記憶體及開關(PCMS)記憶體技術。
- 一種裝置,其包含:一硬體控制邏輯,用以進行下列操作:將一電腦系統中之一非依電性隨機存取記憶體(NVRAM)之一第一量指定成用作一動態隨機存取記憶體(DRAM)之記憶體替代物; 將該NVRAM之一第二量指定成用作一大容量儲存裝置之儲存替代物;在該電腦系統之操作期間,將該第一量之NVRAM之至少一第一部分從該記憶體替代物之指定重新指定成該儲存替代物之指定;及在該電腦系統之操作期間,將該第二量之NVRAM之至少一第一部分從該儲存替代物之指定重新指定成該記憶體替代物之指定;以及一寫入緩衝器管理硬體邏輯,用以進行下列操作:針對複數個NVRAM實體頁面中之各個頁面,判定各NVRAM實體頁面是否為未被佔用而可被寫入的,其中,一給定NVRAM實體頁面是在該給定NVRAM實體頁面不持有有效資料之時為未被佔用而可被寫入的。
- 如申請專利範圍第13項之裝置,其中,該硬體控制邏輯進一步可運作來進行下列操作:在一第一時間量上整個循環通過要被從該記憶體替代物之指定重新指定成該儲存替代物之指定的該第一量之NVRAM,其中,此循環操作包含:在複數個時間段中之各者上重新指定組成整個該第一量之NVRAM的複數個部分中之各者,該等複數個時間段之總和包含該第一時間量。
- 如申請專利範圍第13項之裝置,其中,該硬體控制邏輯進一步可運作來進行下列操作: 經由一重新映射表,針對運行於該電腦系統上的一軟體應用程式而提供對該NVRAM中之至少一實體位置的存取。
- 如申請專利範圍第15項之裝置,其中,該重新映射表進一步包含一記憶體重新映射表,該記憶體重新映射表將至少一平台實體位址轉譯成一實體NVRAM位址。
- 如申請專利範圍第15項之裝置,其中,該重新映射表進一步包含一儲存重新映射表,該儲存重新映射表將至少一邏輯區塊位址轉譯成一實體NVRAM位址。
- 如申請專利範圍第15項之裝置,其中,該重新映射表進一步包含一記憶體及儲存重新映射表,該記憶體及儲存重新映射表具有至少一個與各個表項相關聯的判定該表項是被指定成記憶體還是儲存空間的位元。
- 如申請專利範圍第13項之裝置,其中,該寫入緩衝器管理硬體邏輯進一步可運作來進行下列操作:針對該等複數個NVRAM實體頁面中之各個未被佔用NVRAM實體頁面,判定各未被佔用NVRAM實體頁面是否清潔,其中,一給定未被佔用NVRAM實體頁面是在於該給定未被佔用NVRAM實體頁面中所儲存的所有位元都被設定成一之時為清潔的。
- 如申請專利範圍第19項之裝置,其中,該寫入緩衝器管理硬體邏輯進一步可運作來進行下列操作:將該等複數個NVRAM實體頁面中之至少一未被佔用NVRAM實體頁面清潔,其中,要被清潔的該至少一 未被佔用NVRAM實體頁面包含具有至少一個被設定成零的所儲存位元的一頁實體NVRAM。
- 如申請專利範圍第13項之裝置,其中,該寫入緩衝器管理硬體邏輯進一步可運作來進行下列操作:提供一請求者,該請求者請求要寫入為複數個未被佔用NVRAM實體頁面中之一者的一頁NVRAM,該等未被佔用NVRAM實體頁面中之該一者在對該NVRAM的一介面實質上閒置時還沒有被經清潔;以及將複數個未被佔用NVRAM實體頁面中之在對該NVRAM的該介面不實質上閒置時已被清潔的一者提供給該請求者。
- 如申請專利範圍第21項之裝置,其進一步包含:記憶體訊務監視硬體邏輯,用以進行下列操作:監視進出該NVRAM介面的訊務以判定在任何給定時間上該介面是否實質上在訊務上閒置。
- 如申請專利範圍第13項之裝置,其進一步包含:基於各個異動位置之NVRAM平面位置而將對該NVRAM的一組異動排序,其中,此排序操作包括:使在該組異動中之各者之間的平面跨越之數量最小化。
- 如申請專利範圍第13項之裝置,其中,該NVRAM包含相變記憶體及開關(PCMS)記憶體技術。
- 一種系統,其包含:一非依電性隨機存取記憶體(NVRAM);一動態隨機存取記憶體(DRAM); 一硬體控制邏輯,用以進行下列操作:將一電腦系統中之該NVRAM之一第一量指定成用作該DRAM之記憶體替代物;將該NVRAM之一第二量指定成用作一大容量儲存裝置之儲存替代物;在該電腦系統之操作期間,將該第一量之NVRAM之至少一第一部分從該記憶體替代物之指定重新指定成該儲存替代物之指定;及在該電腦系統之操作期間,將該第二量之NVRAM之至少一第一部分從該儲存替代物之指定重新指定成該記憶體替代物之指定;以及一寫入緩衝器管理硬體邏輯,用以進行下列操作:針對複數個NVRAM實體頁面中之各個頁面,判定各NVRAM實體頁面是否為未被佔用而可被寫入的,其中,一給定NVRAM實體頁面是在該給定NVRAM實體頁面不持有有效資料之時為未被佔用而可被寫入的。
- 如申請專利範圍第25項之系統,其中,該硬體控制邏輯進一步可運作來進行下列操作:在一第一時間量上整個循環通過要被從該記憶體替代物之指定重新指定成該儲存替代物之指定的該第一量之NVRAM,其中,此循環操作包含:在複數個時間段中之各者上重新指定組成整個該第一量之NVRAM的複數個部分中之各者,該等複數個時間段之總和包含 該第一時間量。
- 如申請專利範圍第25項之系統,其中,該硬體控制邏輯進一步可運作來進行下列操作:經由一重新映射表,針對運行於該電腦系統上的一軟體應用程式而提供對該NVRAM中之至少一實體位置的存取。
- 如申請專利範圍第27項之系統,其中,該重新映射表進一步包含一記憶體重新映射表,該記憶體重新映射表將至少一平台實體位址轉譯成一實體NVRAM位址。
- 如申請專利範圍第27項之系統,其中,該重新映射表進一步包含一儲存重新映射表,該儲存重新映射表將至少一邏輯區塊位址轉譯成一實體NVRAM位址。
- 如申請專利範圍第27項之系統,其中,該重新映射表進一步包含一記憶體及儲存重新映射表,該記憶體及儲存重新映射表具有至少一個與各個表項相關聯的判定該表項是被指定成記憶體還是儲存空間的位元。
- 如申請專利範圍第25項之系統,其中,該寫入緩衝器管理硬體邏輯進一步可運作來進行下列操作:針對該等複數個NVRAM實體頁面中之各個未被佔用NVRAM實體頁面,判定各未被佔用NVRAM實體頁面是否清潔,其中,一給定未被佔用NVRAM實體頁面是在於該給定未被佔用NVRAM實體頁面中所儲存的所有位元都被設定成一之時為清潔的。
- 如申請專利範圍第31項之系統,其中,該寫入緩衝器管 理硬體邏輯進一步可運作來進行下列操作:將該等複數個NVRAM實體頁面中之至少一未被佔用NVRAM實體頁面清潔,其中,要被清潔的該至少一未被佔用NVRAM實體頁面包含具有至少一個被設定成零的所儲存位元的一頁實體NVRAM。
- 如申請專利範圍第25項之系統,其中,該寫入緩衝器管理硬體邏輯進一步可運作來進行下列操作:提供一請求者,該請求者請求要寫入為複數個未被佔用NVRAM實體頁面中之一者的一頁NVRAM,該等未被佔用NVRAM實體頁面中之該一者在對該NVRAM的一介面實質上閒置時還沒有被清潔;以及將複數個未被佔用NVRAM實體頁面中之在對該NVRAM的該介面不實質上閒置時已被清潔的一者提供給該請求者。
- 如申請專利範圍第33項之系統,其進一步包含:記憶體訊務監視硬體邏輯,用以進行下列操作:監視進出該NVRAM介面的訊務以判定在任何給定時間上該介面是否實質上在訊務上閒置。
- 如申請專利範圍第25項之系統,其進一步包含:基於各個異動位置之NVRAM平面位置而將對該NVRAM的一組異動排序,其中,此排序操作包括:使在該組異動中之各者之間的平面跨越之數量最小化。
- 如申請專利範圍第25項之系統,其中,該NVRAM包含相變記憶體及開關(PCMS)記憶體技術。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067824 WO2013101050A1 (en) | 2011-12-29 | 2011-12-29 | Multi-level memory with direct access |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201342053A TW201342053A (zh) | 2013-10-16 |
TWI585584B true TWI585584B (zh) | 2017-06-01 |
Family
ID=48698287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101149809A TWI585584B (zh) | 2011-12-29 | 2012-12-25 | 運用直接存取的多階記憶體 |
Country Status (7)
Country | Link |
---|---|
US (5) | US9190124B2 (zh) |
KR (3) | KR101692417B1 (zh) |
CN (2) | CN107092561B (zh) |
DE (1) | DE112011106078B4 (zh) |
GB (1) | GB2510763B (zh) |
TW (1) | TWI585584B (zh) |
WO (1) | WO2013101050A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI698809B (zh) * | 2017-08-24 | 2020-07-11 | 美商谷歌有限責任公司 | 用於三維堆疊式神經網路加速器之良率改善 |
TWI705372B (zh) * | 2018-12-26 | 2020-09-21 | 旺宏電子股份有限公司 | 快閃記憶體裝置及其控制方法 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703706B2 (en) | 2011-02-28 | 2017-07-11 | Oracle International Corporation | Universal cache management system |
WO2013089686A1 (en) * | 2011-12-13 | 2013-06-20 | Intel Corporation | A method and system for providing instant responses to sleep state transitions with non-volatile random access memory |
WO2013101050A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Multi-level memory with direct access |
CN106201348B (zh) * | 2012-06-20 | 2019-08-20 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
US10303618B2 (en) * | 2012-09-25 | 2019-05-28 | International Business Machines Corporation | Power savings via dynamic page type selection |
WO2014092698A1 (en) * | 2012-12-11 | 2014-06-19 | Hewlett-Packard Development Company | Application server to nvram path |
CN104704569B (zh) * | 2012-12-19 | 2017-11-14 | 慧与发展有限责任合伙企业 | Nvram路径选择 |
US9280497B2 (en) | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
KR20140123203A (ko) * | 2013-04-11 | 2014-10-22 | 삼성전자주식회사 | 메모리 시스템 |
US9678689B2 (en) * | 2013-05-29 | 2017-06-13 | Microsoft Technology Licensing, Llc | Storage systems and aliased memory |
US9552370B1 (en) * | 2013-06-27 | 2017-01-24 | EMC IP Holding Company LLC | Signaling impending out of storage condition from a virtual tape drive |
US9250999B1 (en) * | 2013-11-19 | 2016-02-02 | Google Inc. | Non-volatile random access memory in computer primary memory |
US9292380B2 (en) * | 2014-04-06 | 2016-03-22 | Freescale Semiconductor,Inc. | Memory access scheme for system on chip |
JP6265041B2 (ja) * | 2014-05-15 | 2018-01-24 | 富士通株式会社 | コンパイルプログラム、コンパイル方法およびコンパイル装置 |
WO2016013024A1 (en) * | 2014-07-25 | 2016-01-28 | StorNetware Systems Pvt. Ltd. | Unified converged network, storage and computer system |
US9892079B2 (en) * | 2014-07-25 | 2018-02-13 | Rajiv Ganth | Unified converged network, storage and compute system |
US20160224252A1 (en) * | 2015-01-30 | 2016-08-04 | Intel Corporation | Hybrid memory architecture |
US9652157B2 (en) | 2015-03-19 | 2017-05-16 | International Business Machines Corporation | Accelerated non-volatile memory recirculation processing |
US9582430B2 (en) * | 2015-03-27 | 2017-02-28 | Intel Corporation | Asymmetric set combined cache |
US10157008B2 (en) * | 2015-04-29 | 2018-12-18 | Qualcomm Incorporated | Systems and methods for optimizing memory power consumption in a heterogeneous system memory |
US10025747B2 (en) * | 2015-05-07 | 2018-07-17 | Samsung Electronics Co., Ltd. | I/O channel scrambling/ECC disassociated communication protocol |
US11829349B2 (en) | 2015-05-11 | 2023-11-28 | Oracle International Corporation | Direct-connect functionality in a distributed database grid |
US10459847B1 (en) | 2015-07-01 | 2019-10-29 | Google Llc | Non-volatile memory device application programming interface |
US9971550B2 (en) | 2015-11-12 | 2018-05-15 | International Business Machines Corporation | Zero copy support by the virtual memory manager |
US9928168B2 (en) * | 2016-01-11 | 2018-03-27 | Qualcomm Incorporated | Non-volatile random access system memory with DRAM program caching |
US10146704B2 (en) * | 2016-02-16 | 2018-12-04 | Dell Products L.P. | Volatile/non-volatile memory device access provisioning system |
US20170255565A1 (en) * | 2016-03-02 | 2017-09-07 | Intel Corporation | Method and apparatus for providing a contiguously addressable memory region by remapping an address space |
US10175903B2 (en) | 2016-03-31 | 2019-01-08 | Intel Corporation | N plane to 2N plane interface in a solid state drive (SSD) architecture |
US9965017B2 (en) | 2016-04-12 | 2018-05-08 | International Business Machines Corporation | System and method for conserving energy in non-volatile dual inline memory modules |
US20170371785A1 (en) * | 2016-06-28 | 2017-12-28 | Intel Corporation | Techniques for Write Commands to a Storage Device |
US10162522B1 (en) * | 2016-09-30 | 2018-12-25 | Cadence Design Systems, Inc. | Architecture of single channel memory controller to support high bandwidth memory of pseudo channel mode or legacy mode |
US10025714B2 (en) * | 2016-09-30 | 2018-07-17 | Super Micro Computer, Inc. | Memory type range register with write-back cache strategy for NVDIMM memory locations |
KR20180055297A (ko) | 2016-11-16 | 2018-05-25 | 삼성전자주식회사 | 언맵 리드를 수행하는 메모리 장치 및 메모리 시스템 |
TWI596541B (zh) * | 2016-11-30 | 2017-08-21 | 財團法人工業技術研究院 | 資料存取系統、資料存取裝置及資料存取方法 |
TWI643067B (zh) * | 2017-04-14 | 2018-12-01 | 國立臺灣科技大學 | 三維非及閘快閃記憶體及其記憶體管理方法 |
US10719446B2 (en) * | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US11029863B2 (en) * | 2017-08-31 | 2021-06-08 | Vmware, Inc. | Using non-volatile random access memory as volatile random access memory |
US11327887B2 (en) | 2017-09-14 | 2022-05-10 | Oracle International Corporation | Server-side extension of client-side caches |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10552077B2 (en) * | 2017-09-29 | 2020-02-04 | Apple Inc. | Techniques for managing partitions on a storage device |
KR102631380B1 (ko) | 2018-05-17 | 2024-02-01 | 에스케이하이닉스 주식회사 | 데이터 연산을 수행할 수 있는 다양한 메모리 장치를 포함하는 반도체 시스템 |
US10725690B2 (en) * | 2018-05-18 | 2020-07-28 | Intel Corporation | Non-volatile memory cloning with hardware copy-on-write support |
US10698637B2 (en) | 2018-07-03 | 2020-06-30 | Oracle International Corporation | Stale block resynchronization in NVM based systems |
US10831666B2 (en) | 2018-10-05 | 2020-11-10 | Oracle International Corporation | Secondary storage server caching |
US11334445B2 (en) | 2018-10-19 | 2022-05-17 | Oracle International Corporation | Using non-volatile memory to improve the availability of an in-memory database |
CN111913647B (zh) * | 2019-05-08 | 2022-10-11 | 华为技术有限公司 | 一种存储设备的磨损均衡方法、装置及相关设备 |
US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
US11726869B2 (en) | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
US11036412B2 (en) | 2019-09-27 | 2021-06-15 | Intel Corporation | Dynamically changing between latency-focused read operation and bandwidth-focused read operation |
CN114503086A (zh) * | 2019-10-09 | 2022-05-13 | 美光科技公司 | 自适应损耗平衡方法及算法 |
CN111104062B (zh) * | 2019-11-22 | 2023-05-02 | 中科寒武纪科技股份有限公司 | 存储管理方法、装置和存储介质 |
US11474941B2 (en) | 2020-03-09 | 2022-10-18 | International Business Machines Corporation | Using multi-tiered cache to satisfy input/output requests |
CN112380150B (zh) * | 2020-11-12 | 2022-09-27 | 上海壁仞智能科技有限公司 | 计算装置以及用于加载或更新数据的方法 |
US11922055B2 (en) | 2021-04-28 | 2024-03-05 | Seagate Technology Llc | Stack register having different ferroelectric memory element constructions |
US11556259B1 (en) | 2021-09-02 | 2023-01-17 | Micron Technology, Inc. | Emulating memory sub-systems that have different performance characteristics |
KR20230050012A (ko) * | 2021-10-07 | 2023-04-14 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR102579320B1 (ko) * | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963983A (en) * | 1996-04-15 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device |
CN1773692A (zh) * | 2004-11-10 | 2006-05-17 | 旺宏电子股份有限公司 | 记忆胞及其制造方法、半导体元件与记忆胞阵列 |
TW201110124A (en) * | 2009-06-15 | 2011-03-16 | Micron Technology Inc | Use of emerging non-volatile memory elements with flash memory |
US20110153908A1 (en) * | 2009-12-23 | 2011-06-23 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
TW201122812A (en) * | 2009-09-03 | 2011-07-01 | 248 Solidstate Inc | Page based management of flash storage |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9826044D0 (en) | 1998-11-28 | 1999-01-20 | Koninkl Philips Electronics Nv | Receiver for DS-CDMA signals |
DE19928057B4 (de) * | 1999-06-15 | 2005-11-10 | Francotyp-Postalia Ag & Co. Kg | Sicherheitsmodul und Verfahren zur Sicherung der Postregister vor Manipulation |
KR100582357B1 (ko) * | 2003-12-29 | 2006-05-22 | 주식회사 하이닉스반도체 | 로우디코딩을 효율적으로 할 수 있는 태그블럭을 구비하는반도체 메모리 장치 |
CN101065807A (zh) * | 2004-07-28 | 2007-10-31 | 柰米闪芯积体电路有限公司 | 整合传统式静态随机存储器与闪存单元的新式非易失性静态随机存储器内存单元结构 |
KR20080018704A (ko) * | 2006-08-25 | 2008-02-28 | 삼성전자주식회사 | 교반장치, 이 교반장치를 구비하는 현상장치 및화상형성장치 |
US7870363B2 (en) * | 2007-12-28 | 2011-01-11 | Intel Corporation | Methods and arrangements to remap non-volatile storage |
KR20100013824A (ko) * | 2008-08-01 | 2010-02-10 | 주식회사 하이닉스반도체 | 고속 동작하는 반도체 스토리지 시스템 |
CN101458613B (zh) * | 2008-12-31 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 |
US8195891B2 (en) * | 2009-03-30 | 2012-06-05 | Intel Corporation | Techniques to perform power fail-safe caching without atomic metadata |
CN102135891B (zh) * | 2010-01-21 | 2013-06-26 | 杭州华三通信技术有限公司 | 可实现引导启动的系统及引导启动控制装置和方法 |
US9015268B2 (en) | 2010-04-02 | 2015-04-21 | Intel Corporation | Remote direct storage access |
US20130024602A1 (en) * | 2011-07-18 | 2013-01-24 | Dell Products L.P. | Universal Storage for Information Handling Systems |
WO2013101050A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Multi-level memory with direct access |
US8743820B2 (en) | 2012-05-30 | 2014-06-03 | Intel Corporation | PUCCH resource allocation with enhanced PDCCH |
-
2011
- 2011-12-29 WO PCT/US2011/067824 patent/WO2013101050A1/en active Application Filing
- 2011-12-29 DE DE112011106078.5T patent/DE112011106078B4/de active Active
- 2011-12-29 GB GB1408844.7A patent/GB2510763B/en active Active
- 2011-12-29 KR KR1020167014711A patent/KR101692417B1/ko active Application Filing
- 2011-12-29 KR KR1020167036731A patent/KR101767359B1/ko active IP Right Grant
- 2011-12-29 KR KR1020147016262A patent/KR101628929B1/ko active IP Right Grant
- 2011-12-29 CN CN201610912901.7A patent/CN107092561B/zh active Active
- 2011-12-29 US US13/993,695 patent/US9190124B2/en active Active
- 2011-12-29 CN CN201180075995.2A patent/CN104011690B/zh active Active
-
2012
- 2012-12-25 TW TW101149809A patent/TWI585584B/zh not_active IP Right Cessation
-
2015
- 2015-10-08 US US14/879,004 patent/US9430151B2/en active Active
-
2016
- 2016-07-19 US US15/214,005 patent/US9703502B2/en active Active
-
2017
- 2017-06-30 US US15/640,373 patent/US10241710B2/en active Active
-
2019
- 2019-03-25 US US16/363,576 patent/US10817201B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963983A (en) * | 1996-04-15 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device |
CN1773692A (zh) * | 2004-11-10 | 2006-05-17 | 旺宏电子股份有限公司 | 记忆胞及其制造方法、半导体元件与记忆胞阵列 |
TW201110124A (en) * | 2009-06-15 | 2011-03-16 | Micron Technology Inc | Use of emerging non-volatile memory elements with flash memory |
TW201122812A (en) * | 2009-09-03 | 2011-07-01 | 248 Solidstate Inc | Page based management of flash storage |
US20110153908A1 (en) * | 2009-12-23 | 2011-06-23 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI698809B (zh) * | 2017-08-24 | 2020-07-11 | 美商谷歌有限責任公司 | 用於三維堆疊式神經網路加速器之良率改善 |
US10963780B2 (en) | 2017-08-24 | 2021-03-30 | Google Llc | Yield improvements for three-dimensionally stacked neural network accelerators |
US11836598B2 (en) | 2017-08-24 | 2023-12-05 | Google Llc | Yield improvements for three-dimensionally stacked neural network accelerators |
TWI705372B (zh) * | 2018-12-26 | 2020-09-21 | 旺宏電子股份有限公司 | 快閃記憶體裝置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160110106A1 (en) | 2016-04-21 |
US9190124B2 (en) | 2015-11-17 |
WO2013101050A1 (en) | 2013-07-04 |
US20170075616A1 (en) | 2017-03-16 |
GB2510763B (en) | 2020-05-20 |
US9703502B2 (en) | 2017-07-11 |
GB2510763A (en) | 2014-08-13 |
KR101692417B1 (ko) | 2017-01-05 |
US20130339572A1 (en) | 2013-12-19 |
KR20160068989A (ko) | 2016-06-15 |
US20170337009A1 (en) | 2017-11-23 |
CN107092561B (zh) | 2021-03-12 |
CN104011690A (zh) | 2014-08-27 |
GB201408844D0 (en) | 2014-07-02 |
US10241710B2 (en) | 2019-03-26 |
US20190286356A1 (en) | 2019-09-19 |
CN107092561A (zh) | 2017-08-25 |
DE112011106078T5 (de) | 2014-12-04 |
KR20140091605A (ko) | 2014-07-21 |
US10817201B2 (en) | 2020-10-27 |
DE112011106078B4 (de) | 2021-01-28 |
KR20170003730A (ko) | 2017-01-09 |
TW201342053A (zh) | 2013-10-16 |
KR101628929B1 (ko) | 2016-06-21 |
CN104011690B (zh) | 2016-11-09 |
US9430151B2 (en) | 2016-08-30 |
KR101767359B1 (ko) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI585584B (zh) | 運用直接存取的多階記憶體 | |
US10719443B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy | |
US20180341588A1 (en) | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes | |
TWI489276B (zh) | 於第二階記憶體階層中記憶體側快取的動態部份斷電之系統與方法 | |
TWI578156B (zh) | 非依電性隨機存取記憶磁碟 | |
KR101636634B1 (ko) | 프로세서로부터 메모리 서브시스템으로 데이터를 지능적으로 플러싱하기 위한 시스템 및 방법 | |
WO2013048500A1 (en) | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |