TWI614752B - 經由記憶體通道關閉之節電技術 - Google Patents
經由記憶體通道關閉之節電技術 Download PDFInfo
- Publication number
- TWI614752B TWI614752B TW101145912A TW101145912A TWI614752B TW I614752 B TWI614752 B TW I614752B TW 101145912 A TW101145912 A TW 101145912A TW 101145912 A TW101145912 A TW 101145912A TW I614752 B TWI614752 B TW I614752B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- dram
- channel
- cache
- system memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 444
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 230000001419 dependent effect Effects 0.000 claims description 13
- 238000013508 migration Methods 0.000 claims description 12
- 230000005012 migration Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 6
- 230000001052 transient effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 14
- 230000005055 memory storage Effects 0.000 description 12
- 230000005291 magnetic effect Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- JWZQBEUBJXSDPP-UHFFFAOYSA-N 5-cyclohexyl-6-methylpyrimidine-2,4-diamine Chemical compound CC1=NC(N)=NC(N)=C1C1CCCCC1 JWZQBEUBJXSDPP-UHFFFAOYSA-N 0.000 description 2
- 101100072002 Arabidopsis thaliana ICME gene Proteins 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 150000001786 chalcogen compounds Chemical class 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- CGIGDMFJXJATDK-UHFFFAOYSA-N indomethacin Chemical compound CC1=C(CC(O)=O)C2=CC(OC)=CC=C2N1C(=O)C1=CC=C(Cl)C=C1 CGIGDMFJXJATDK-UHFFFAOYSA-N 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920003227 poly(N-vinyl carbazole) Polymers 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000002203 sulfidic glass Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/061—Improving I/O performance
-
- 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/0625—Power saving in 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/60—Details of cache memory
-
- 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)
- Power Sources (AREA)
Abstract
本發明係描述一種方法包含回應以決定進入一較低電力狀態,以及關閉一電腦系統中之一記憶體通道,而自此之後電腦系統中之其他記憶體通道仍保持有效使得電腦保持工作而前述記憶體通道則被關閉。
Description
本發明通常係有關電腦系統之領域。更特別地,本發明係有關實施一多層級記憶體層系之裝置與方法。
A.現行記憶體及儲存器配置
目前電腦創新之一受限因素係記憶體及儲存器技術。傳統電腦系統中,系統記憶體(亦稱主記憶體、主要記憶體、可執行記憶體)典型地係藉由動態隨機存取記憶體(DRAM)加以實施。以DRAM為本的記憶體即使在沒有記憶體讀取或寫入時仍會消耗電力,此因該記憶體必須恆定地充電內部電容之故。以DRAM為本的記憶體係依電性的,其意為一旦移除電力,儲存在DRAM記憶體中之數據即會遺失。傳統電腦系統亦仰賴多層次的快取以改善性能。快取(cache)係一種位於處理器與系統記憶體之間的高速記憶體,以便對記憶體存取需求提供較系統記憶體服務該需求時更為快速的服務。此類快取典型地係以靜態隨機存取記憶體(SRAM)加以實施。快取管理協定可用來確保最常存取
的數據及指令儲存在快取的一層級內,藉此減少記憶體存取交易的次數並改善性能。
有關大量儲存器(亦稱輔助儲存器、或磁碟儲存器)方面,傳統大量儲存裝置典型地包括磁性媒體(例如,硬碟機)、光學媒體(例如,光碟(CD)機、多功能數位光碟(DVD)等)、全像媒體、及/或大量儲存快閃(FLASH)記憶體(例如,固態硬碟機(SSD)、可移除式快閃驅動裝置等)。一般而言,此類儲存裝置係視為輸入/輸出(I/O)裝置,此因前述儲存裝置係藉著處理器經由各種實施不同I/O協定的轉接器加以存取之故。此類I/O轉接器及I/O協定消耗了顯著數量的電力且對晶粒區及平台的造形要素(form factor)造成顯著衝擊。因沒有連接至永久性電源而具有受限電池壽命的可攜式或行動式裝置(例如,膝上型電腦、輕省筆電、平板電腦、個人數位助理(PDA)、可攜式媒體播放器、可攜式遊戲裝置、數位相機、行動電話、智慧型手機、功能型手機等)可包含可移除式大量儲存裝置(例如,內建式多媒體卡(eMMC)、安全數位(SD)卡等),前述儲存裝置典型地係經由低電力互連裝置及I/O控制器而連接至處理器以符合有效(active)及閒置(idle)的電力預算。
有關韌體記憶體(例如啟動記憶體(亦稱基本輸入及輸出系統(BIOS)快閃)),傳統電腦系統典型地採用快閃記憶體裝置以儲存持續性系統資訊而該資訊係經常被讀取但很少(或從未)被寫入。例如,啟動程序期間藉由處理器執行以初始化關鍵系統元件的初始指令(基本輸入及輸出系
統(BIOS)圖像)係典型地儲存在快閃記憶體裝置中。目前市場上可買到的快閃記憶體裝置通常有受限的速度(例如,50MHz)。此種速度會因讀取協定的耗損(例如,2.5MHz)而進一步降低。為加速BIOS執行速度,傳統處理器通常在啟動程序的預伸展韌體界面(PEI)階段的期間內即快取一部分BIOS碼。處理器快取的大小會對PEI階段所採用之BIOS碼(亦稱“PEI BIOS碼”)的大小造成限制。
B.相變化記憶體(PCM)及相關技術
相變化記憶體(PCM),有時亦稱為相變化隨機存取記憶體(PRAM或PCRAM)、PCME、雙向合一記憶體、或硫族化合物RAM(C-RAM),係非依電性型態的電腦記憶體而前述記憶體係利用硫化玻璃的獨特行為。因電流通過產生熱量的結果,硫化玻璃可在兩種狀態:晶形及非晶形之間進行切換。PCM的最近版本能完成兩種額外的各別狀態。
因為PCM的記憶體元件可較快速切換、無需先抹除整段記憶元即可進行寫入(改變個別位元成為1或0)、以及來自寫入的劣化較為緩慢(PCM裝置可保全100百萬次寫入週期;PCM劣化乃基於程式化期間的熱膨脹、金屬(及其他材料)的遷移、以及其他機制所致),所以PCM可提供較快閃為高的性能。
依據本發明之一實施例,係特別提出一種方法,其包含:回應於進入一較低性能狀態的期望而實施下列步驟:將儲存在一DRAM記憶體通道上的快取線路遷移至其
他DRAM記憶體通道及PCMS記憶體內,其中,前述快取線路中相關於較頻繁使用之虛擬位址的快取線路係遷移至前述其他DRAM記憶體通道內,以及,前述快取線路中相關於較少頻繁使用之虛擬位址的快取線路係遷移至前述PCMS記憶體內;以及關閉前述DRAM記憶體通道。
100‧‧‧處理器
101,102,103,104‧‧‧處理器核心
101a,102a,103a,104a‧‧‧第0層快取;上層快取;快取
101b,102b,103b,104b‧‧‧第1層快取;中層快取;快取
105‧‧‧低層快取;快取
106‧‧‧內部快取;快取
107,108,109‧‧‧外部快取;快取
115‧‧‧輸入/輸出次系統
116‧‧‧系統記憶體區域(位址範圍#1);系統實體位址空間
117‧‧‧系統記憶體區域(位址範圍#2);系統實體位址空間
118‧‧‧系統記憶體區域(位址範圍#3);系統實體位址空間
119‧‧‧系統記憶體區域(位址範圍#4);系統實體位址空間
120‧‧‧內部處理器快取
121‧‧‧遠端記憶體快取
122‧‧‧遠端記憶體
124‧‧‧近端記憶體快取(記憶體側快取)控制器
140‧‧‧記憶體/儲存器層系
142‧‧‧NVRAM(非依電性隨機存取記憶體)
144‧‧‧近端記憶體
150‧‧‧快取層
150A‧‧‧,處理器快取
150B‧‧‧遠端記憶體快取(記憶體側快取)
151‧‧‧系統記憶體層
151A‧‧‧系統記憶體
151B‧‧‧遠端記憶體
152‧‧‧大量儲存器層
152A‧‧‧NVRAM大量儲存器
152B‧‧‧快閃/磁性/光學大量儲存器
153‧‧‧韌體記憶體層
170‧‧‧BIOS(基本輸入及輸出系統)快閃記憶體
172‧‧‧基本輸入及輸出系統NVRAM
173‧‧‧信賴平台模組NVRAM
174‧‧‧NVRAM系統記憶體
190‧‧‧系統位址空間A
191‧‧‧系統位址空間B
192‧‧‧便條簿記憶體
193‧‧‧寫入緩衝器
300‧‧‧記憶體控制器
301_1,301_2..至301_8‧‧‧界面
302_1,302_2..至302_8‧‧‧記憶體通道
303‧‧‧記憶體通道第一部分;DRAM系統記憶體儲存空間
304‧‧‧記憶體通道第二部分;PCMS系統記憶體儲存空間
305‧‧‧中央處理單元
306‧‧‧轉換後備緩衝器
307‧‧‧轉換單元庫房
308‧‧‧PCMS儲存器區段
401,402,403,404,405,406‧‧‧步驟
501,502,503,504‧‧‧步驟
600‧‧‧記憶體電力狀態表
601‧‧‧標頭資訊
602‧‧‧指令組
603_1‧‧‧記憶體電力節點結構_1
603_1_2...603_1_R‧‧‧電力節點結構
603_2‧‧‧記憶體電力節點結構_2
603_X‧‧‧記憶體電力節點結構_X
604_1‧‧‧記憶體電力狀態_1
604_2‧‧‧記憶體電力狀態_2
604_Y‧‧‧記憶體電力狀態_Y
605‧‧‧電力節點結構辨識碼
606‧‧‧位址範圍
607‧‧‧電力狀態
610‧‧‧指標
700‧‧‧電力管理表
702‧‧‧指令
703_1至703_N‧‧‧電力節點
710‧‧‧電力管理軟體
711‧‧‧追蹤虛擬位址使用組成部分
712‧‧‧記憶體管理軟體
713‧‧‧引動
714‧‧‧遷移控制組成部分
715‧‧‧更新
716‧‧‧更新
717‧‧‧裝置驅動軟體
下列說明及圖式係用以揭示本發明之實施例。圖式中:圖1揭示本發明實施例之一快取及系統記憶體配置;圖2揭示本發明實施例所使用之一記憶體及儲存器層系;圖3顯示一具有系統記憶體之DRAM區段及系統記憶體之PCMS區段的記憶體電腦系統;圖4顯示一關閉一記憶體通道之方法;圖5顯示一重啟一記憶體通道之方法;圖6顯示一電力管理系統所使用之記憶體電力狀態表;圖7顯示用以實施一記憶體通道的關閉/重啟之組件。
下列說明中,說明了很多特定細節,例如,邏輯建置、運算碼、指定運算元之裝置、資源分割/共用/複製之建置、系統組件之形式及相關性、以及邏輯分割/整合選擇,以便提供對本發明的透徹瞭解。然而,熟悉本技藝人士將理解本發明沒有此類特定細節亦可實施。其他實例
中,控制結構、閘位準電路、以及完整軟體指令序列並未詳細顯示以免含糊化本發明。具有本技藝普通常識之人士,藉由所併入的說明,無需過度實驗即能實施適當的功能特性。
有關說明書中“一實施例”、“單一實施例”、“一例示實施例”等係指所說明之實施例可包含一特定之功能、結構或特性,但每一實施例不必然包含該特定之功能、結構或特性。此外,此類慣用語不必然涉及相同之實施例。進一步言,當一特定功能、結構或特性相關於一實施例加以說明時,凡相關於其他實施例(無論其是否已被明確說明)以實施此一功能、結構、或特性的作法,皆被認為已落入熟悉本技藝人士的知識範圍內。
下列說明及申請專利範圍中,可採用“耦合(cuupled)”及“連接(connected)”等用語及其衍生用語。應理解此類用語並非意指彼此為同義字詞。“耦合”係用以指出二或更多個元件(而該等元件可以或不必彼此直接實體或電性接觸)共同作用或彼此互動。“連接”係用以指出彼此耦合的二或更多個元件之間建立起通訊(communication)關係。
括起的內文及虛線的界線(例如,長虛線、短虛線、點虛線、點)在本文中有時係用以揭示可對本發明實施例增添額外功能的任選式運作/組件。然而,此種表示法不應被解讀成這些為僅有的選項或任選式運作/組件,及/或被解讀成本發明特定實施例中之實線界線的方塊係不具任選
性的。
記憶體容量及性能需求隨著處理器核心數量及新穎使用模式例如虛擬化的增加而持續遞增。此外,記憶體電力及成本已分別成為電子系統整體電力及成本的顯著部分。
本發明的某些實施例係藉由智慧性細分記憶體技術之間的性能需求與容量需求而解決上述挑戰。此種方法聚焦於以較小量之高速記憶體,諸如DRAM,來提供性能,同時利用顯著較為便宜及密集之非依電性隨機存取記憶體(NVRAM)來實施大量的系統記憶體。下文說明的本發明實施例界定了平台配置而前述平台配置能利用NVRAM來達成階層式記憶體次系統組織。如下文詳細說明者,在記憶體層系中使用NVRAM亦能達成新穎用途諸如擴展的啟動空間與大量儲存器建置。
圖1揭示本發明實施例之一快取與系統記憶體配置。特定地,圖1顯示一記憶體層系而該層系包含一組內部處理器快取120,作為遠端(far)記憶體快取121之用的“近端(near)記憶體”而前述快取可包含內部快取106與外部快取107-109兩種,以及“遠端記憶體”122。本發明某些實施例中可作為“遠端記憶體”之用的一種特殊形式的記憶體為非依電性隨機存取記憶體(“NVRAM”)。因此,下文提供NVRAM的概述,接著為遠端記憶體及近端記憶體的概述。
A.非依電性隨機存取記憶體(“NVRAM”)
對NVRAM而言,可有許多可能的技術選項,包含PCM、相變記憶體及切換(PCMS)(後者為前者之一更特定的建置)、可定址位元組式持續型記憶體(BPRAM)、通用型記憶體、Ge2Sb2Te5、可程式金屬化記億元(PMC)、電阻記憶體(RRAM)、RESET(非晶形)記億元、SET(晶形)記億元、PCME、Ovshinsky記憶體、鐵電記憶體(亦稱聚合物記憶體及聚N乙烯咔唑)、鐵磁記憶體(亦稱自旋電子學,SPRAM(自旋-移轉力矩RAM)、STRAM(自旋穿隧RAM)、磁阻記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM))、以及半導體-氧化物-氮化物-氧化物-半導體(SONOS,亦稱介質記憶體)。
為使用於本申請案所說明的記憶體層系中,NVRAM具有下列特性:(1)即使移除電力,NVRAM仍保持其內容,類同於固態硬碟(SSD)中所使用的FLASH記憶體,且不同於依電性的SRAM及DRAM;(2)待機時,電力耗損較依電性記憶體例如,SRAM及DRAM,為低;(3)類同於SRAM及DRAM的隨機存取(亦稱隨機性定址);(4)相較於SSD中所發現的FLASH(其每次僅可重寫及抹除一“區段”-NOR FLASH最小為64K位元組以及NAND FLASH最小為16K位元組),NVRAM可在較低粒度(granularity)層級((例如,位元組層級)下,進行重寫及抹除;(5)可作為系統記憶體之用並可獲配全部或部分系統
記憶體位址空間;(6)可利用交易協定(一項可支***易識別符(IDs)的協定以區別不同交易使得該等交易可失序(out-of-order)完成)經由匯流排而耦合至處理器,並允許在足夠微小的粒度層級下進行存取以支援NVRAM作業而作為系統記憶體之用(例如,快取線路大小,諸如64或128位元組)。例如,匯流排可為記憶體匯流排(例如,DDR匯流排,諸如DDR3,DDR4等)而交易協定,相對於通常使用的非交易協定,係在該匯流排上執行者。另舉一實例,匯流排可為一種通常在其上執行交易協定(一種原生交易協定)的匯流排,例如PCI快速(PCIE)匯流排、桌上型管理界面(DMI)匯流排、或任何其他形式之匯流排而前述匯流排係採用一項交易協定以及足夠微小的交易酬載(payload)大小(例如,快取線路大小,例如64或128位元組);以及(7)下列一或多項:a)較非依電性記憶體/儲存器技術,諸如FLASH,更為快速的寫入速度;b)非常高的讀取速度(較FLASH快速且接近或等於DRAM讀取速度);c)可直接寫入(並非如SSD中所使用的FLASH記憶體一般,需在寫入數據前先進行抹除(以1秒鐘進行重寫)程序;及/或d)失效前較高量級(例如,2或3)的寫入持久性(高於啟動ROM及SSD中使用的FLASH)。
如上所述,相較於必需每次重寫或抹除完整的一“區段”的FLASH記憶體,在任何既定建置中,NVRAM進行存取的粒度層級可視特定記憶體控制器及特定記憶體匯流排或NVRAM所耦合的其他形式匯流排而定。例如,儘管內在能力係在單一位元組的粒度層級下進行存取,然而在某些NVRAM作為系統記憶體之用的建置中,NVRAM可在快取線路的粒度層級(例如,64位元組或128位元組快取線路)下進行存取,因為記憶體次系統即是在快取線路層級下存取記憶體。因此,當NVRAM於記憶體次系統中使用時,NVRAM可在與同一記憶體次系統中所使用的DRAM(例如,“近端記憶體”)相同的粒度層級下進行存取。即使如此,NVRAM藉由記憶體控制器及記憶體匯流排或其他形式匯流排存取的粒度層級係小於快閃所使用區段大小及I/O次系統控制器與匯流排之存取大小的粒度層級。
NVRAM亦可併入損耗平衡演算法以說明遠端記憶體層級的儲存記憶元在多數次寫入後開始損耗的事實,特別是在發生顯著寫入次數的場合下,例如系統記憶體的建置中。因為高週期計數區段最容易按此方式耗損,所以損耗平衡係藉由以低週期技術區段位址調換高週期技術區段位址的方式將寫入作業擴展至遠端記憶體單元。注意,多數位址調換作業典型地對應用程式而言係透明的,此因前述調換作業係藉由硬體、低階軟體(例如,一低階驅動程式或作業系統),或兩者的組合加以處理之故。
B.遠端記憶體
本發明某些實施例之遠端記憶體122係以NVRAM實施,但不必然受限於任何特定的記憶體技術。遠端記憶體122可依其在記憶體/儲存器層系中的特性及/或應用而與其他指令及數據記憶體/儲存器形成區別。例如,遠端記憶體122不同於:靜態隨機存取記憶體(SRAM)而前述SRAM可供分別專屬於每一處理器核心101-104之第0層及第1層(內部處理器)快取101a-b,102a-b,103a-b與104a-b,以及前述處理器核心共用的低層快取(LCC)105之用;動態隨機存取記憶體(DRAM)而前述DRAM係配置作為處理器100內部之一快取106之用(例如,與處理器100在同一晶粒上)及/或配置作為處理器外部之一或多個快取107-109之用(例如,與處理器100在同一或不同封裝體上);以及FLASH記憶體/磁碟/光碟而前述快閃記憶體/磁碟/光碟係作為大量儲存器之用(未顯示);以及記憶體,諸如作為韌體記憶體之用的快閃記憶體或其他唯讀記憶體(ROM)(前述韌體記憶體能涉及啟動ROM、BIOS快閃、及/或TPM快閃)。(未顯示)。
遠端記憶體122可作為直接由處理器100所定址的指令及數據儲存之用,以及,相對於作為大量儲存器之用的快閃/磁碟/光碟而言,遠端記憶體能夠充分與處理器100保持同一步調。此外,如上文所討論以及如下文將詳述者,遠端記憶體122可安置於一記憶體匯流排上且可直接與
一記憶體控制器通訊,而前述控制器依序直接與處理器100通訊。
遠端記憶體122可與其他指令及數據儲存器技術(例如,DRAM)相結合以形成混合記憶體(亦稱共置式PCM及DRAM;第一層記憶體及第二層記憶體;FLAM((FLASH及DRAM))。注意,至少某些上述技術,包括PCM/PCMS在內,除了作為系統記憶體之用外,也可作為大量儲存器之用,而當依此方式使用時並無需隨機存取、位元組定址、或藉由處理器直接定址。
為解說方便起見,NVRAM、PCM、PCMS及遠端記憶體等用語在下列討論中可互換使用。然而,應瞭解的是,如上所討論者,遠端記憶體亦可使用不同的技術。此外,NVRAM不限於作為遠端記憶體之用。
圖1揭示本發明實施例中之不同層級的快取101-109如何相關於一系統實體位址(SPA)空間116-119加以配置。如前提及,本實施例包含一具有一或多個處理器核心101-104的處理器100,而每一處理器核心設有其自身專屬的上層快取(L0)101a-104a及中層快取(MCL)(L1)101b-104b。處理器100亦包括一共用的低層快取105。此類不同快取層級的運作已為人所瞭解且此處將不作詳細說明。
圖1揭示的快取107-109可專屬於一特定系統記憶體位址範圍或一組非鄰近的位址範圍。例如,快取107係
專屬作為系統記憶體位址範圍#1 116用的記憶體側快取(MSC)以及快取108與109係專屬作為系統記憶體位址範圍#2 117與#3 118非重疊部分用的記憶體側快取。後者的建置可供系統之用而前述系統中處理器100所使用的系統實體位址空間交插至快取107-109所使用的位址空間內(例如,當配置作為記憶體側快取之用時)。某些實施例中,此一後者位址空間係稱為一記憶體通道位址(MCA)空間。一實施例中,內部之快取101a-106為整個系統實體位址空間實施快取作業。
此處所使用的系統記憶體可被處理器100所執行的軟體看見及/或藉由前述軟體直接定址;而快取101a-109可依它們並未形成系統位址空間之一可直接定址部分的方式對軟體透明地運作,但是核心亦可支援指令的執行以允許軟體對某些或全部快取提供某種控制(配置、策略、提示等)。系統記憶體細分為系統記憶體區域116-119的程序可以手動式實施而成為系統配置程序的部分(例如,藉由一系統設計者)及/或可藉由軟體自動實施。
一實施例中,系統記憶體區域116-119係利用遠端記憶體(例如,PCM)實施以及,在某些實施例中,近端記憶體係配置作為系統記憶體之用。系統記憶體位址範圍#4代表一使用高速記憶體,例如DRAM,實施的位址範圍,而前述高速記憶體可為配置於一系統記憶體模式(相對於一快取模式)中的近端記憶體。
圖2揭示本發明實施例之一記憶體/儲存器層系
140以及可供近端記憶體144與NVRAM之用的不同配置作業模式。記憶體/儲存器層系140具有多數層包含(1)一快取層150可包含處理器快取150A(例如,圖1之快取101A-105)及任選式作為遠端記憶體快取(記憶體側快取)150B之用的近端記憶體(在特定操作模式下),(2)一系統記憶體層151包含遠端記憶體151B(例如,NVRAM諸如,PCM)及作為系統記憶體151A之用的近端記憶體,(3)一大量記憶體層152可包含一快閃/磁性/光學大量儲存器152B及/或NVRAM大量儲存器152A(例如,NVRAM(非依電性隨機存取記憶體)142的一部分);以及(4)一韌體記憶體層153可包含BIOS(基本輸入及輸出系統)快閃記憶體170及/或基本輸入及輸出系統NVRAM 172以及任選式信賴(trusted)平台模組(TPM)NVRAM 173。
如所指出者,近端記憶體144可在一模式下運作而前述模式(有時稱為近端記憶體“直接存取”模式)中近端記憶體係作為系統記憶體151A之用並佔用部分系統實體位址空間;以及在一或多種額外模式下,諸如便條簿記憶體192或寫入緩衝器193,運作。本發明某些實施例中,近端記憶體是可分割的,而每一分割區可在不同支援模式下同時運作;以及不同實施例可藉由硬體(例如,熔線、接腳)、韌體、及/或軟體(例如,經由一組近端記憶體快取(記憶體側快取)控制器124中之可程式範圍暫存器,其內例如可儲存不同的二進制碼,以辨識每一模式與分割區)來支援分割區的配置(例如,大小、模式)。
如圖2所觀察到者,系統位址空間B 191係用以顯示一種當一部分系統位址空間分配給全部或部分近端記憶體時的配置。本實施例中,系統位址空間B 191代表分配給系統記憶體151A之系統位址空間的範圍以及系統位址空間A 190代表分配給NVRAM系統記憶體174之系統位址空間的範圍。
在近端記憶體直接存取模式下運作時,作為系統記憶體151A之用的全部或部分近端記憶體可直接被軟體看到並形成部分的系統實體位址空間。此記憶體可完全受軟體控制。此一方法可產生一種軟體用的非均勻性記憶體位址(NUMA)記憶體區域其中可由近端記憶體144獲致相對於NVRAM系統記憶體174而言更高的性能。舉例而言,但並非以此為限,此一用法可運用到需要非常快速存取特定數據結構的特定高性能運算(HPC)與繪圖的應用上。
圖2亦揭示部分NVRAM可作為韌體記憶體之用。例如,基本輸入及輸出系統(BIOS)NVRAM 172部分可用以儲存BIOS圖像(取代將BIOS資訊存入BIOS快閃記憶體170或除了將BIOS資訊存入BIOS快閃記憶體170以外)。基本輸入及輸出系統NVRAM 172部分可為系統實體位址空間的一部分且可藉由處理器核心101-104所執行的軟體直接定址,然而BIOS快閃記憶體170則可經由輸入/輸出次系統115定址。另一實例中,一信賴平台模組(TPM)NVRAM 173部分可用以保護敏感系統資訊(例如,加密鍵)。
因此,如所指出者,非依電性隨機存取記憶體142
可在各種不同模式下運作,包含作為遠端記憶體151B(例如,當近端記憶體144以直接存取模式呈現/運作時);NVRAM大量儲存器152A;基本輸入及輸出系統NVRAM 172;以及信賴平台模組NVRAM 173之用。
系統記憶體及大量儲存裝置的選擇可視本發明實施例所使用的電子平台的型式而定。例如,在個人電腦、平板電腦、筆記型電腦、智慧型手機、行動電話、功能性手機、個人數位助理(PDA)、可攜式媒體播放器、可攜式遊戲裝置、遊戲控制台、數位相機、開關、集線器、路由器、機上盒、數位錄影機、或其他具有相對微小之大量儲存器需求的裝置中,大量儲存器可利用NVRAM大量儲存器152A本身、或利用NVRAM大量儲存器152A與快閃/磁性/光學大量儲存器152B的組合加以實施。
在其他具有相對龐大之大量儲存器需求的電子平台(例如,大型伺服器)中,大量儲存器可利用磁性儲存器(例如,硬碟機),或磁性儲存器、光學儲存器、全像儲存器、大量儲存快閃記憶體以及NVRAM大量儲存器152A的任何組合加以實施。在此情況下,職司儲存的系統硬體及/或軟體可依有效的或有用的方式實施各種智慧型持續性儲存配置技術,以便在遠端記憶體151B/NVRAM大量儲存器152A與快閃/磁性/光學大量儲存器152B之間配置持續性程式碼與數據區段。
例如,一實施例中,一高功率伺服器係配置一近端記憶體(例如,DRAM)、一PCMS裝置、以及一供大量持
續性儲存用的磁性大量儲存裝置。一實施例中,筆記型電腦係配置一近端記憶體及一PCMS裝置而該PCMS裝置執行一遠端記憶體與一大量儲存裝置兩者的角色。一家庭或辦公室桌上型電腦的實施例係類似於筆記型電腦加以配置,但亦可包含一或多個磁性儲存裝置以提供大量持續性儲存能力。
一平板電腦或行動電話裝置的實施例係配置PCMS記憶體但潛在地沒有近端記憶體且沒有額外的大量儲存器(基於成本/電力的節約)。然而,平板電腦/行動電話可以配置可移除式大量儲存裝置諸如快閃或PCMS記憶卡。
各種其他形式的裝置可如上所述配置。例如,可攜式媒體播放器及/或個人數位助理(PDA)可以類似於上述平板電腦/行動電話的方式配置,遊戲控制台可以類似於桌上型電腦/膝上型電腦的方式配置。其他可類似配置的裝置包含數位相機、路由器、機上盒、數位錄影機、電視、以及汽車。
圖3顯示一電腦系統的記憶體控制器300,前述控制器設有對應多數記憶體通道(例如,DDR通道)302_1至302_8的個別界面301_1至301_8而每一通道均能支援一或多個雙行記憶體模組(DIMM)卡(亦即,一或多個DIMM卡可***至通道內),以及圖4及圖5顯示藉著關閉/開啟(disabling/enabling)一記憶體通道及其對應之DIMM卡的方式來控制一電腦系統電力消耗的方法。基於簡化起見,顯
示八個記憶體通,然而具有普通知識人士將瞭解此處的教示可應用到具有不同數量之記憶體通道的系統上。
依據圖4的方法,例如,可作成決定(例如,藉由智慧型電力管理軟體諸如ACPI)以藉由關閉目前工作中之記憶體通道的方式使電腦系統進入一低性能狀態。相對地,依據圖5的方法,可作成決定以藉由開啟目前未工作之記憶體通道的方式使電腦系統進入一高性能狀態。
回想圖1某種具有DRAM及NVRAM系統記憶體組件的電腦系統實施例可為DRAM保留第一部份的系統記憶體位址,以及,為NVRAM保留第二部分的系統記憶體位址。亦即,在“作為系統記憶體之用的近端記憶體方法”中,可定址系統記憶體能包含DRAM(參看,例如,圖2,作為系統記憶體151A之用的近端記憶體)及PCMS(參看,例如,圖2,實施作為NVRAM系統記憶體174之用的遠端記憶體151B)。
依據一實施例,回參圖3,每一記憶體通道302_1至302_8均分配了電腦系統記憶體位址的唯一部分或區段而前述部分或區段係與記憶體通道上可用儲存空間一致。記憶體通道上可用的儲存空間,依序,係***至前述記憶體通道之DIMM卡數量以及DIMM卡上之記憶裝置儲存密度的函數。
依據另一實施例,記憶體通道的第一部分303(且因此相對應之系統記憶體位址空間的第一部分/區段)係保留給DRAM DIMM之用,以及,記憶體通道的第二部分
304(且因此相對應之系統記憶體位址空間的其餘第二部分/區段)係保留給PCMS DIMM之用。
依據此特定實施例,DRAM系統記憶體儲存空間303並非作為PCMS系統記憶體儲存空間304的快取之用。相反地,系統記憶體儲存空間係配置成儲存DRAM系統記憶體儲存空間303中的“存取時間重要”資訊(諸如程式碼,或至少,頻繁使用的程式碼指令)之用,以及儲存PCMS系統記憶體儲存空間304中的“並非或較非存取時間重要”資訊(諸如數據,或至少,非頻繁存取的數據)之用。
因此,電腦CPU上執行的作業系統及/或虛擬機器監視器係依據此一方法分配系統記憶體位址空間。例如,對應那些具有DRAM DIMMs之記憶體通道的位址空間係分配給頻繁使用的程式碼指令(至少),以及對應那些具有PCMS DIMMs之記憶體通道的位址空間係分配給非頻繁使用的數據項目(至少)。各種實施例中,每一位址所儲存的內容,無論是DRAM或是PCMS,均為一稱作“快取線路(cache line)”之固定長度的數據字(例如,一64位元數據字或一128位元數據字)。為了方便起見,用語“內容”或“快取線路”將在下列討論中互換使用以提及儲存在一系統記憶體位址中的資訊。
參看圖4的方法,當應用到甫說明過的電腦系統上時,使記憶體通道進入一較低性能狀態的關閉程序包含關閉記憶體通道之DIMM卡及其對應的記憶體裝置,以及使記憶體通道進入一較高性能狀態的開啟程序包含開啟記憶
體通道之DIMM卡及其對應的記憶體裝置。
當具有DRAM DIMM卡的通道選定為開啟/關閉時,可達成電力消耗及性能的特別有效換算。因為DRAM裝置較PCMS裝置快速且消耗更多電力,所以藉著關閉一DRAM記憶體通道而下降至一較低性能狀態的作法應顯著地降低一電腦系統的性能與電力消耗。類似地,藉著開啟一DRAM記憶體通道以提升至一較高性能狀態的作法應顯著地增加電腦系統的性能與電力消耗。
然而,記憶體管理為吾人關心之事。特定地,當一DRAM記憶體通道被關閉或開啟時,系統記憶體位址空間應被有效重配置以說明可用DRAM記憶體空間中的變化。此包含將即將關閉的DRAM通道之內容“移動”至其他系統記憶體位置處。依據圖4的方法,作業系統及/或虛擬機器監視器及/或虛擬機器及/或此類任一種的電力管理組成部分(此後,稱為“系統軟體”)係記錄分配給DRAM之虛擬位址的使用402以建立起一種認知,亦即,哪個虛擬位址正在較為頻繁地存取及/或哪個虛擬位址正在較不頻繁地存取。
如已知技術一般,系統軟體典型地係參照虛擬位址而設計而系統軟體下位的硬體則負責將虛擬位址轉換成相對應之常駐於系統中之系統記憶體的實體位址。
當決定關閉一DRAM記憶體通道時,系統軟體有效地重配置DRAM位址空間使得較頻繁使用的虛擬位址繼續分配給DRAM位址空間,而一組較少使用的DRAM虛擬
位址,大約或等同於即將關閉之DRAM記憶體通道所保有的實體位址數量,則重分配給PCMS位址空間。下位實體位址所產生的重分配(包含即將關閉之DRAM通道中頻繁使用位址的內容遷移至一持續有效的DRAM通道,以及,較少使用之DRAM位址的內容遷移至PCMS位址空間)必然地影響上述甫提及之虛擬位址至實體位址的轉換。
典型地,常駐中央處理單元(CPU)或“處理器”306中之轉換後備緩衝器(TLB)305係作為虛擬位址轉換至實體位址的快取之用。TLB在先前技術中雖已有良好瞭解,但TLB角色與功能的扼要簡介仍值得提及。TLB包含數個轉換單元(TE),每一TE辨識一特定虛擬位址用的唯一實體位址,亦稱為一位址轉換。典型地。轉換本身係對記憶體頁的粒度而言係特定的。因此,一虛擬位址的TE包含電腦系統之系統記憶體中相對應記憶體頁之實體位址。
TLB係設計成包含相關虛擬位址最近被執行程式碼調出的TE組(上達TLB的大小)。因為藉由執行程式碼調出的每一虛擬位址均辨識即將作業的一特定程式碼指令或一特定數據項目,所以不同處理器架構可包含指令TLB與數據TLB兩者。
在指令TLB的情況下,程式碼執行期間,擷取次一指令用的次一虛擬位址,以及在指令TLB中為了指令虛擬位址與指令TLB TE中虛擬位址間的匹配而實施查找(lookup)程序。在一通用方法中,虛擬位址的低序位元並未於查找中使用,因此查找參數(亦即,虛擬位址的高序位元)
基本上配合一虛擬記憶體頁的位址。假設找到一匹配,則具有匹配虛擬位址的TE中所找到的實體位址可辨識系統記憶體中之一特定記憶體頁而所欲的指令可在該處找到。
假設在指令TLB中未找到一匹配虛擬位址(指令TLB“失誤”),則處理器的移動表(tablewalk)硬體自系統記憶體中擷取適當的TE。擷取自系統記憶體之TE中的實體位址辨識系統記憶體中的記憶體頁而次一指令可在該處找到。擷取自系統記憶體的TE副本亦典型地存放在指令TLB內以及一近來最少使用的TE自指令TLB中逐出。擷取自系統記憶體的原始TE仍然存在於系統記憶體中。
除了虛擬位址係供所欲數據項目使用以及所欲TE中所找到的實體位址係辨識系統記憶體中的一頁(而所欲數據即在該頁中找到)以外,數據TLB,包含回應數據TLB失誤的系統作業,係以大致相同於上述說明的方式運作。
重要地,注意供一作業程式(例如一應用程式及/或一虛擬機器)可於其作業期間調出的虛擬位址組使用之包含所有虛擬位址至實體位址之轉換(供指令及數據兩者之用)的轉換單元(TE)組係設置於系統記憶體所保留的特定庫房307,稱為“轉換單元庫房(TE庫房)”,中。一實施例中,一作業程式用的轉換單元庫房307係存放在系統記憶體內作為將作業程式存放至記憶體內供執行之用的一部分。一實施例中,當多數程式在電腦上同時作業時,一TE庫房係保留在系統記憶體內以供每一作業程式之用。另一實施例中,全部的TE庫房,以及因此,全部的TE均保留在無法關
閉的DRAM通道上之DRAM系統記憶體的一特定區段中。
當重新配置系統記憶體空間以說明一記憶體通道的關閉(或開啟)為一改變電腦性能狀態的電力管理決定的一部份時,上述DRAM記憶體內容的移動可為即將遷移的每一快取線路產生一種需求且因此具有一“新”實體位址,以更新其對應的TE進而反映其新實體位址的位置404。應加以更新的特定TE包含:i)較頻繁使用之DRAM位址的TE而前述TE的內容將由一關閉的DRAM通道遷移至一未關閉的DRAM通道;以及ii)較不頻繁使用之DRAM位址的TE而前述TE的對應內容將遷移至PCMS位址空間。
在一未必可能的情況下,所有最不頻繁使用的DRAM位址剛好是在即將關閉的特定DRAM通道上。在此情況下,任何其他DRAM通道上的DRAM位址都不會受到通道關閉的影響。(亦即,將關閉之DRAM通道的全部內容遷移至PCMS儲存器中)。因此,在此一未必可能的腳本中,僅有通道被關閉之DRAM位址的TE進行修正以反映PCMS記憶體中的新實體位址。
在一較可能的腳本中,某些較頻繁使用的DRAM位址常駐在關閉的記憶體通道上,以及,某些較不頻繁使用的DRAM位址則常駐在未關閉的其餘通道上。一實施例中,辨識完成而移動至PCMS儲存器之最不頻繁使用的DRAM位址數量係與由即將關閉之DRAM通道所支援的位址數量相同(或大約相同)。此舉基本上符合標定完成而移動至PCMS儲存空間的DRAM位址數量等同於藉由關閉
DRAM通道而“遺失”的DRAM位址數量。
藉此方法,在關閉的DRAM通道上頻繁使用的DRAM位址(前述位址的內容需遷移至一新DRAM位址(特定地,另一持續有效之DRAM通道上的一位址))數量應與那些持續有效之DRAM通道上最少頻繁使用的DRAM位址(前述位址的內容需遷移至一新PCMS位址(亦即,PCMS儲存器中的一位址))數量相同。因此,通道關閉後在持續有效的DRAM空間中,前者的內容可取代後者的內容。亦即,關閉之DRAM通道上頻繁使用的DRAM位址之內容可寫入至未關閉之DRAM通道的最少頻繁使用之DRAM位址的DRAM位址中。
因此,依據圖4之方法,即將關閉的DRAM通道及另一DRAM通道兩者上最少頻繁使用的DRAM位址之快取線路係自DRAM讀取並寫入至PCMS儲存器空間403。系統記憶體中保留在快取線路相對應TE(在個別TE庫房中-因為多數軟體應用程式可能受到通道關閉的影響)中的個別記憶體頁用之實體位址資訊係進行修正以反映前述快取線路的個別新PCMS位址404。
接著,即將關閉之DRAM通道上頻繁使用之DRAM位址的快取線路係重新入駐至有效DRAM通道上“剛才清空”的DRAM位址中405。
因此,持續有效通道上每一清空的最少頻繁使用的DRAM位址係以一來自即將關閉之通道上另一較頻繁使用的DRAM位址之快取線路重新寫入。系統記憶體中由即
將關閉之通道遷移至持續有效之DRAM通道的較頻繁使用DRAM位址的每一記憶體頁用之TE紀錄係加以修正以反映其新實體位址的位置406。可注意地,每一新實體位址配合一先前被辨識為最少頻繁使用的位址。
一實施例中,作為原始系統“培養”階段(例如早在決定關閉DRAM通道之前)的部分,PCMS儲存器區段308在DRAM通道關閉的情況下係保留供接收“DRAM通道有價值”的快取線路之用。此處,除非且直到關閉一DRAM通道,否則有效資訊不會存入PCMS區段中,在DRAM通道關閉的時點,等同於關閉之DRAM通道儲存容量之整體數據大小的多數快取線路係由DRAM儲存空間存入至PCMS儲存器區段308中。當更新個別TE庫房中快取線路的對應TE時,此類快取線路接著自PCMS區段進行存取以支援程式作業。多數此類PCMS系統記憶體區段可如上所述般預先保留以支援一系統而前述系統在多數DRAM通道關閉時仍能運作407。
作為上述系統記憶體重配置程序的部分,一TLB中駐留之修正後TE的任何副本均變為無效。注意系統作業亦可在系統記憶體配置期間暫停。
一DRAM通道關閉之後,參看圖5,可藉由系統軟體作一後續決定以進入一較高性能狀態502,而前述狀態包含開啟目前無效的DRAM通道502。在此情況下,駐留在上述保留作為儲存自DRAM下移內容的PCMS系統記憶體儲存空間304的PCMS儲存器區段308中之快取線路係“重新
上移回”開啟的DRAM通道中503。供所有此類快取線路之相對應記憶體頁用的TE實體位址組成部分係在轉換單元庫房307中進行修正以反映它們在新近開啟之DRAM通道中的新儲存504。再次,系統作業可暫停以實施DRAM通道開啟、快取線路遷移、TE修正以及一TLB中駐留之修正後TE的任何副本無效等作業。
圖6顯示一軟體表結構層系其可,例如,藉由智慧型電力管理軟體(諸如ACPI)而用以支援電腦系統,如上所述,開啟/關閉一記體通道的能力。如圖6中所觀察到的,記憶體電力狀態表600之層系包含一標頭資訊601、一組指令602、一或多個記憶體電力節點結構603_1至603_X的定義,以及不同記憶體電力狀態604_1至604_Y之特性而前述電力狀態係由記憶體電力狀態表600所代表之系統記憶體區域加以支援。
記憶體電力狀態表的一單一實例可為,例如,整個系統記憶體、一系統記憶體之一技術特定區域(諸如,一第一表係為一系統記憶體的DRAM區段而樣例化以及一第二表係為一系統記憶體的PCMS區段而樣例化)等任一項進行樣例化。標頭資訊601包含代表系統記憶體之記憶體電力狀態樣例化部分的特定資訊。一實施例中,標頭資訊601包含:i)表的簽章;ii)包含全部組成部分602、603、604之整個表的長度;iii)表結構的版本數;iv)供表用的核對和;v)OEM辨識碼;vi)產生本表之公用程式供應者ID;以及vii)產生本表之公用程式修正ID。
指令組包含用以將資訊自電力狀態表中讀出/寫入至電力狀態表內的基本指令及其各種組成部分。
記憶體電力狀態表係辨識表中所列的記憶體電力節點結構603的數量(X)並包含,或至少提供參考資料給,記憶體電力節點結構本身603_1至603_X。一實施例中,為記憶體電力狀態表600所代表的記憶體部分中的每一個記憶體通道建立一個別電力節點結構實例,而前述記憶體電力狀態表可支援多數電力狀態-任一電力狀態均可程式化進入。例如,扼要參看圖3,假設記憶體電力狀態表600代表一具有DRAM系統記憶體儲存空間303與PCMS系統記憶體儲存空間304兩者的系統記憶體之DRAM系統記憶體儲存空間303,則一個別電力節點結構可為每一DRAM記憶體通道302_1至302_4進行樣例化。
如圖6所觀察者,每一電力節點結構,諸如記憶體電力節點結構603_1,包含:i)一電力節點結構辨識碼605;ii)電力節點結構代表之系統記憶體位址空間的位址範圍606;以及iii)電力節點結構606所代表之系統記憶體特定部分目前進入的電力狀態607。注意,整體上,現行記憶體的電力狀態607符合記憶體電力狀態表600所界定的一組記憶體電力狀態604_1至604_Y中的電力狀態之一。
在記憶體電力節點結構603_1代表一DRAM通道的實施例中,電力節點結構的位址範圍606係配合一個範圍的虛擬系統記憶體位址而前述虛擬系統記憶體位址變成實體位址空間的轉換係配合通道所支援的實體位址。然而,
上述一記憶體通道的關閉與重啟會“混亂”跨越多數記憶體通道的鄰近虛擬位址範圍。前述的另一種方式,至少在一通道關閉序列之後,一單一記憶體通道可支援多數非鄰近的虛擬位址空間區段。
此種在其對應實體儲存資源上的虛擬位址空間分段可在每次初始化記憶體通道關閉序列時進行復合。因此,一實施例中,多數額外的電力節點結構603_1_2至603_1_R可為相同記憶體通道進行樣例化,其中,每一此種電力節點結構實例均配合有效地儲存於通道中之不同範圍的虛擬位址空間。各種電力節點結構實例可依一種方式而有效地“束縛”在一起,而前述方式係藉由將相同電力節點結構辨識碼605輸入至前述每一實例中而將前述實例之對應虛擬位址範圍的代表儲存至相同記憶體通道上。對此特定辨識碼的任何動作將自然地引動所有具備前述辨識碼的記憶體電力節點結構603_1以及電力節點結構603_1_2至603_1_R。
通道關閉或通道重啟的轉換期間,一特定記憶體通道的電力節點結構實例應加以修正以反映通道支援儲存的“新”虛擬位址。此舉可包含以下任何一項:加入新的或刪除既存的記憶體通道樣例化用之電力節點結構實例,及/或修正記憶體通道樣例化用之既存電力節點結構實例中特定之虛擬位址範圍606。因此,依據各種實施例,當一記憶體通道關閉或重啟時,不僅系統記憶體中TE庫房的TE加以修正以實施虛擬位址至實體位址的轉換,而且,電力管理
軟體所使用之電力節點結構的位址範圍606,以及此類結構本身的數量亦可加以修正。
如上所詳述者,當一DRAM記憶體通道關閉時,記憶體通道之電力節點結構實例的目前電力狀態607係配合一記憶體通道關閉且未積極使用的低電力狀態。在此電力狀態下,施加至記憶體通道上DIMM卡的計時、閃控及/或更新信號可以暫停。施加至通道上DIMM卡之電源供應電壓亦可降低而成為低電力狀態之特性組的部分。
假設記憶體通道於關閉後重啟,記憶體通道之電力節點結構實例的目前電力狀態607將改變成另一配合記憶體通道有效的電力狀態。在此情形下,任何關閉的信號或供應電壓將重新施加。
對於以上的電力狀態轉換,內建於一與記憶體通道相關之作業系統中的驅動軟體能夠監督進入低電力狀態時各種信號與供應電壓的關閉,以及進入較高電力狀態時各種信號與供應電壓的開啟。
一實施例中,目前記憶體的電力狀態607包含一指標610而前述指標指出記憶體電力狀態表600所支援之一組記憶體電力狀態604_1至604_Y中的特定電力狀態而記憶體電力節點結構603_1目前正處於前述特定電力狀態。一實施例中,記憶體電力狀態604_1至604-Y中之每一電力狀態定義係界定當系統記憶體組成部份處於前述電力狀態時所消耗的平均電力(及/或最大--最小電力消耗率)。另一實施例中,每一電力狀態定義亦包含當轉入電力狀態或轉出電力
狀態時之延長時間量(例如,退出等待時間)的定義。
注意雖然上述討論主要集中在關閉整個、單一通道上,然而以上教示可應用到較廣泛及較精細的粒度上。特定地,上述教示可應用到一序列上而前述序列中多於一個之通道被關閉以作為同一電力狀態變化序列之部分(例如,在記憶體通道存在交錯的情況下),或應用到一序列上而前述序列中少於一整個記憶體通道被關閉(諸如,僅關閉單一DRAM晶片)。
圖7顯示一軟體架構其包含電力管理軟體710、如上所討論之電力管理表700、以及記憶體管理軟體712的一追蹤組成部分711而前述軟體可記錄軟體程式之虛擬位址的使用率以及更新遷移之快取線路的TE資訊。
電力管理軟體710(諸如ACPI)決定一較低系統電力狀態是必需的。依先前的認知,經由電力管理表700可得知系統記憶體組成了支援不同電力狀態的各種電力節點703_1至703_N,電力管理軟體701發出一指令702以辨識此一電力節點703_2以及前述節點應進入之新的較低電力狀態。
此處,每一電力節點703_1至703_N配合電腦系統中常駐之不同DRAM(以及可能為PCMS)記憶體通道而前述每一記憶體通道均有多數DIMM卡***其內。此實施例中,電力節點703_2係配合一DRAM記憶體通道。供下位電腦系統之記憶體通道使用的記憶體管理軟體712係回應指令712而被引動713以及認可即將關閉之特定DRAM記憶體
通道。
記憶體管理軟體712包含一追蹤虛擬位置使用組成部分711其可追蹤哪個分配給DRAM的虛擬位址較頻繁使用以及哪個分配給DRAM的虛擬位址較少頻繁使用。減除因DRAM記憶體通道之關閉而損失的DRAM儲存容量,可理解會造成一個新而較小的系統用DRAM容量。與此一容量一致的最頻繁使用之DRAM虛擬位址(及/或其他標示為“時間存取重要”)之虛擬位址係加以辨識以保留在DRAM儲存器中。剩餘者係配合較少使用之DRAM虛擬位址的收集,而前述虛擬位址的對應內容大小係等同於即將關閉之記憶體通道的容量。
如上所討論者,一遷移控制組成部分714係控制適當之快取線路的遷移。此處,再次,遷移包含自DRAM讀取相關於較少使用之虛擬位址的快取線路(在即將關閉的記憶體通道上的快取線路以及在另一DRAM記憶體通道上的快取線路),以及將前述快取線路寫入至PCMS記憶體中所保留的空間內。相關於位在即將關閉之記憶體通道上之頻繁使用虛擬位址的快取線路係遷移至持續有效之記憶體通道的位置內而前述位置係藉由遷移至PCMS記憶體空間內而被有效地清空。因遷移而具有一新實體位址的虛擬位址TE庫房中之TE係加以更新715以及一TLB中任何受影響的TE均被無效化。
接著,代表持續有效之DRAM記憶體通道的電力管理表700中的電力節點位址範圍資訊係加以更新716以反
映前述電力節點的新虛擬位址範圍。此舉可包含電力節點實例的建立或刪除而前述實例係辨識為相同電力節點之部分。
接著,電力通道係藉由,例如,記憶體通道用之裝置驅動軟體717而關閉,而前述軟體可停止或減緩通道上之各種計時/閃控信號(以及有可能進一步降低記憶體通道上的供應電壓)。
電力通道可依據一類似流程加以開啟但其中遷移控制組成部分714係將先前儲存於PCMS中的快取線路遷移至重啟的記憶體通道上。
雖然以上方法係大幅地,若非完全地,以軟體實施的方式來呈現,然而上述討論的任何不同步驟均可以硬體或硬體與軟體之組合來實施。
401-406‧‧‧步驟
Claims (18)
- 一種用於控制電力消耗之方法,其包含:回應於一進入一較低性能狀態的期望而實施下列步驟:將儲存在一動態隨機存取記憶體(DRAM)記憶體通道上的快取線路遷移至其他DRAM記憶體通道及有效非依電性系統記憶體內,該有效非依電性系統記憶體係可在快取線路粒度(granularity)存取且軟體程式碼是能夠直接地從該有效非依電性系統記憶體被執行,其中,該等快取線路中相關於較頻繁使用之虛擬位址的快取線路係遷移至該等其他DRAM記憶體通道內,以及,該等快取線路中相關於較少頻繁使用之虛擬位址的快取線路係遷移至該有效非依電性系統記憶體內;以及關閉該DRAM記憶體通道。
- 如申請專利範圍第1項之方法,其中該等遷移至有效非依電性系統記憶體中的快取線路係遷移至先前保留在該有效非依電性系統記憶體中供回應於一DRAM記憶體通道關閉作業而自DRAM儲存器遷移的快取線路之用的儲存空間內。
- 如申請專利範圍第2項之方法,其中該方法更包含回應於一進入一較高性能狀態的期望而實施下列步驟:重啟該DRAM記憶體通道; 將該等遷移至有效非依電性系統記憶體中的快取線路遷移至該DRAM記憶體通道上。
- 如申請專利範圍第1項之方法,更包含更新供該等快取線路之用的虛擬至實體位址轉換。
- 如申請專利範圍第4項之方法,其中該等虛擬至實體位址轉換係儲存至該等其他DRAM記憶體通道的儲存空間內。
- 如申請專利範圍第5項之方法,更包含使供該等在一轉換後備緩衝器中找到的快取線路之用的任何虛擬至實體位址轉換無效之步驟。
- 一種用於控制電力消耗之方法,其包含:追蹤一軟體程式之虛擬位址的使用;以及回應於一進入一較低性能狀態的期望而實施下列步驟:自相關於該軟體程式之較少使用虛擬位址的動態隨機存取記憶體(DRAM)記憶體通道中讀取快取線路;將該等快取線路寫入至有效非依電性系統記憶體內,該有效非依電性系統記憶體係可在快取線路粒度存取且軟體程式碼是能夠直接地從該有效非依電性系統記憶體被執行;將相關於該等DRAM記憶體通道之一者的較頻繁使用之虛擬位址的快取線路寫入至其他剩餘之一或多個DRAM通道的位置中,該等位置先前儲存至少某些該等寫入至有效非依電性系統記憶體中的快取線路;以及 關閉該一DRAM記憶體通道。
- 如申請專利範圍第7項之方法,其中該等寫入至有效非依電性系統記憶體內的快取線路係寫入至該有效非依電性系統記憶體之儲存空間內,而該儲存空間係先前保留供儲存自DRAM儲存空間遷移之快取線路之用。
- 如申請專利範圍第8項之方法,更包含回應於一進入一較高性能狀態的期望而實施下列步驟:重啟該一DRAM記憶體通道;將該等寫入至有效非依電性系統記憶體內的快取線路遷移至該DRAM記憶體通道上。
- 如申請專利範圍第7項之方法,更包含更新供該等相關於較少使用之虛擬位址的快取線路及該等相關於較頻繁使用之虛擬位址的快取線路之用的虛擬至實體位址轉換。
- 如申請專利範圍第10項之方法,更包含使在一轉換後備緩衝器中找到並供該等相關於較少使用之虛擬位址的快取線路及該等相關於較頻繁使用之虛擬位址的快取線路之用的任何虛擬至實體位址轉換無效之步驟。
- 一種含有程式碼且非暫態訊號能量之機器可讀取儲存媒體,當程式碼藉由一計算系統的中央處理單元加以處理時造成了一方法將被實施,該方法包含:回應於一進入一較低性能狀態的期望而實施下列步驟:將儲存在一動態隨機存取記憶體(DRAM)記憶體通 道上的快取線路遷移至其他DRAM記憶體通道及有效非依電性系統記憶體內,該有效非依電性系統記憶體係可在快取線路粒度存取且軟體程式碼是能夠直接地從該有效非依電性系統記憶體被執行,其中,該等快取線路中相關於較頻繁使用之虛擬位址的快取線路係遷移至該等其他DRAM記憶體通道內,以及,該等快取線路中相關於較少頻繁使用之虛擬位址的快取線路係遷移至該有效非依電性系統記憶體內;以及關閉該DRAM記憶體通道。
- 如申請專利範圍第12項之機器可讀取儲存媒體,其中該等遷移至有效非依電性系統記憶體內的快取線路係遷移至先前保留在該有效非依電性系統記憶體中供回應於一DRAM記憶體通道關閉作業而自DRAM儲存器遷移的快取線路之用的儲存空間內。
- 如申請專利範圍第13項之機器可讀取儲存媒體,其中該方法更包含回應於一進入一較高性能狀態的期望而實施下列步驟:重啟該DRAM記憶體通道;將該等遷移至有效非依電性系統記憶體中的快取線路遷移至該DRAM記憶體通道上。
- 如申請專利範圍第12項之機器可讀取儲存媒體,其中該方法更包含更新供該等快取線路之用的虛擬至實體位址轉換。
- 如申請專利範圍第15項之機器可讀取儲存媒體,其中該 等虛擬至實體位址轉換係儲存至該等其他DRAM記憶體通道的儲存空間內。
- 如申請專利範圍第16項之機器可讀取儲存媒體,更包含使供該等在一轉換後備緩衝器中找到的快取線路之用的任何虛擬至實體位址轉換無效之步驟。
- 一種電腦系統,其包含:複數個處理核心;一系統記憶體包含複數個DRAM記憶體通道和非依電性記憶體裝置;一記憶體控制器耦接在該等複數個處理核心與該系統記憶體之間,該等非依電性記憶體裝置係可在快取線路粒度存取且軟體程式碼是能夠直接地從該等非依電性記憶體裝置被執行;一含有程式碼之機器可讀取儲存媒體,當程式碼藉由該等處理核心之至少一者加以處理時造成一方法將被實施在該系統記憶體之上,該方法包含:回應於一進入一較低性能狀態的期望而實施下列步驟:將儲存在該等DRAM記憶體通道之一第一者上的快取線路遷移至該等DRAM記憶體通道之其他者及該非依電性記憶體裝置之一或多者內,其中,該等快取線路中相關於較頻繁使用之虛擬位址的快取線路係遷移至該等其他DRAM記憶體通道內,以及,該等快取線路中相關於較少頻繁使用之 虛擬位址的快取線路係遷移至該有效非依電性系統記憶體內;以及關閉該等DRAM記憶體通道之該第一者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??PCT/US11/67007 | 2011-12-22 | ||
PCT/US2011/067007 WO2013095559A1 (en) | 2011-12-22 | 2011-12-22 | Power conservation by way of memory channel shutdown |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201331941A TW201331941A (zh) | 2013-08-01 |
TWI614752B true TWI614752B (zh) | 2018-02-11 |
Family
ID=48669200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101145912A TWI614752B (zh) | 2011-12-22 | 2012-12-06 | 經由記憶體通道關閉之節電技術 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9612649B2 (zh) |
KR (2) | KR101761044B1 (zh) |
CN (1) | CN104115132B (zh) |
BR (1) | BR112014015441B1 (zh) |
DE (1) | DE112011106032B4 (zh) |
GB (1) | GB2513748B (zh) |
TW (1) | TWI614752B (zh) |
WO (1) | WO2013095559A1 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8597360B2 (en) | 2004-11-03 | 2013-12-03 | Neuropro Technologies, Inc. | Bone fusion device |
US9358123B2 (en) | 2011-08-09 | 2016-06-07 | Neuropro Spinal Jaxx, Inc. | Bone fusion device, apparatus and method |
WO2013101201A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Home agent multi-level nvm memory architecture |
US9532883B2 (en) | 2012-04-13 | 2017-01-03 | Neuropro Technologies, Inc. | Bone fusion device |
AU2014236698B2 (en) | 2013-03-15 | 2018-09-13 | Neuropro Technologies, Inc. | Bodiless bone fusion device, apparatus and method |
WO2015061337A1 (en) * | 2013-10-21 | 2015-04-30 | Sehat Sutardja | Final level cache system and corresponding method |
US11822474B2 (en) | 2013-10-21 | 2023-11-21 | Flc Global, Ltd | Storage system and method for accessing same |
US9389675B2 (en) * | 2013-12-19 | 2016-07-12 | International Business Machines Corporation | Power management for in-memory computer systems |
CN105531682A (zh) | 2014-08-15 | 2016-04-27 | 联发科技股份有限公司 | 管理多通道存储设备以具有改进的通道切换响应时间的方法及相关的存储控制*** |
US9858201B2 (en) | 2015-02-20 | 2018-01-02 | Qualcomm Incorporated | Selective translation lookaside buffer search and page fault |
US9658793B2 (en) * | 2015-02-20 | 2017-05-23 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
KR102314138B1 (ko) * | 2015-03-05 | 2021-10-18 | 삼성전자 주식회사 | 모바일 장치 및 모바일 장치의 데이터 관리 방법 |
US10127406B2 (en) * | 2015-03-23 | 2018-11-13 | Intel Corporation | Digital rights management playback glitch avoidance |
US20170068304A1 (en) * | 2015-09-09 | 2017-03-09 | Mediatek Inc. | Low-power memory-access method and associated apparatus |
CN105117285B (zh) * | 2015-09-09 | 2019-03-19 | 重庆大学 | 一种基于移动虚拟化***的非易失性存储器调度优化方法 |
US9977606B2 (en) * | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9990283B2 (en) * | 2015-10-16 | 2018-06-05 | SK Hynix Inc. | Memory system |
US9977605B2 (en) * | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9990143B2 (en) * | 2015-10-16 | 2018-06-05 | SK Hynix Inc. | Memory system |
US9977604B2 (en) * | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9824419B2 (en) * | 2015-11-20 | 2017-11-21 | International Business Machines Corporation | Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US10452539B2 (en) * | 2016-07-19 | 2019-10-22 | Sap Se | Simulator for enterprise-scale simulations on hybrid main memory systems |
US10783146B2 (en) | 2016-07-19 | 2020-09-22 | Sap Se | Join operations in hybrid main memory systems |
US10387127B2 (en) | 2016-07-19 | 2019-08-20 | Sap Se | Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases |
US10474557B2 (en) | 2016-07-19 | 2019-11-12 | Sap Se | Source code profiling for line-level latency and energy consumption estimation |
US10540098B2 (en) | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
US10437798B2 (en) | 2016-07-19 | 2019-10-08 | Sap Se | Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems |
US10698732B2 (en) | 2016-07-19 | 2020-06-30 | Sap Se | Page ranking in operating system virtual pages in hybrid memory systems |
US11977484B2 (en) | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10318428B2 (en) | 2016-09-12 | 2019-06-11 | Microsoft Technology Licensing, Llc | Power aware hash function for cache memory mapping |
US10261876B2 (en) | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
US10430085B2 (en) | 2016-11-08 | 2019-10-01 | Micron Technology, Inc. | Memory operations on data |
US10111760B2 (en) | 2017-01-18 | 2018-10-30 | Neuropro Technologies, Inc. | Bone fusion system, device and method including a measuring mechanism |
US10729560B2 (en) | 2017-01-18 | 2020-08-04 | Neuropro Technologies, Inc. | Bone fusion system, device and method including an insertion instrument |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US11010379B2 (en) | 2017-08-15 | 2021-05-18 | Sap Se | Increasing performance of in-memory databases using re-ordered query execution plans |
EP3695319B1 (en) * | 2017-09-27 | 2022-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and reallocation component for managing reallocation of information from source to target memory sled |
CN108632152A (zh) * | 2018-03-30 | 2018-10-09 | 上海康斐信息技术有限公司 | 一种无线路由器及快速启动的方法 |
EP3807773B1 (en) | 2018-06-18 | 2024-03-13 | FLC Technology Group Inc. | Method and apparatus for using a storage system as main memory |
US11163680B2 (en) | 2018-11-28 | 2021-11-02 | International Business Machines Corporation | Dynamic write-back to non-volatile memory |
US10642734B1 (en) | 2018-12-03 | 2020-05-05 | Advanced Micro Devices, Inc. | Non-power of two memory configuration |
US11307779B2 (en) | 2019-09-11 | 2022-04-19 | Ceremorphic, Inc. | System and method for flash and RAM allocation for reduced power consumption in a processor |
US20220188208A1 (en) * | 2020-12-10 | 2022-06-16 | Advanced Micro Devices, Inc. | Methods for configuring span of control under varying temperature |
US11721379B2 (en) * | 2021-06-17 | 2023-08-08 | Micron Technology, Inc. | Cell disturb on power state transition |
CN113886291B (zh) * | 2021-08-29 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种路径的禁用方法及*** |
US12032840B2 (en) * | 2022-02-23 | 2024-07-09 | Nvidia Corporation | System level hardware mechanisms for dynamic assist control |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159024A1 (en) * | 2002-02-21 | 2003-08-21 | Chen Song Bor | Method of achieving power saving for computers through memory throttling |
TW564991U (en) * | 2003-04-25 | 2003-12-01 | Sunplus Technology Co Ltd | Power-saving static memory control circuit |
TW200410255A (en) * | 2002-12-10 | 2004-06-16 | Comax Semiconductor Inc | A memory device with power-saving mode and an electrics device with the memory device |
TWM286985U (en) * | 2005-08-22 | 2006-02-01 | Regulus Technologies Co Ltd | Memory module with smart-type power-saving and fault-tolerance |
US20080034234A1 (en) * | 2006-08-02 | 2008-02-07 | Hitachi, Ltd. | Method and computer for reducing power consumption of a memory |
US7337368B2 (en) * | 2004-06-07 | 2008-02-26 | Dell Products L.P. | System and method for shutdown memory testing |
US20110271070A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Memory usage scanning |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US22008A (en) * | 1858-11-09 | Hoisting-machine | ||
US122011A (en) * | 1871-12-19 | Improvement in keepers for door-latches | ||
US711129A (en) * | 1901-11-18 | 1902-10-14 | Robert Shedenhelm | Animal-shears. |
US711207A (en) * | 1901-12-14 | 1902-10-14 | Martin V Grogan | Circular handsaw. |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US7000102B2 (en) | 2001-06-29 | 2006-02-14 | Intel Corporation | Platform and method for supporting hibernate operations |
US6917999B2 (en) | 2001-06-29 | 2005-07-12 | Intel Corporation | Platform and method for initializing components within hot-plugged nodes |
US6732241B2 (en) * | 2001-09-07 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Technique for migrating data between storage devices for reduced power consumption |
US7493438B2 (en) | 2001-10-03 | 2009-02-17 | Intel Corporation | Apparatus and method for enumeration of processors during hot-plug of a compute node |
US7673090B2 (en) | 2001-12-19 | 2010-03-02 | Intel Corporation | Hot plug interface control method and apparatus |
US7117311B1 (en) | 2001-12-19 | 2006-10-03 | Intel Corporation | Hot plug cache coherent interface method and apparatus |
US20040028066A1 (en) * | 2002-08-06 | 2004-02-12 | Chris Quanbeck | Receiver architectures with dynamic symbol memory allocation and methods therefor |
US7350087B2 (en) | 2003-03-31 | 2008-03-25 | Intel Corporation | System and method of message-based power management |
US7376775B2 (en) | 2003-12-29 | 2008-05-20 | Intel Corporation | Apparatus, system, and method to enable transparent memory hot plug/remove |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US8046488B2 (en) * | 2004-05-21 | 2011-10-25 | Intel Corporation | Dynamically modulating link width |
US7480808B2 (en) * | 2004-07-16 | 2009-01-20 | Ati Technologies Ulc | Method and apparatus for managing power consumption relating to a differential serial communication link |
US7562202B2 (en) * | 2004-07-30 | 2009-07-14 | United Parcel Service Of America, Inc. | Systems, methods, computer readable medium and apparatus for memory management using NVRAM |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US7246224B2 (en) | 2004-09-27 | 2007-07-17 | Intel Corporation | System and method to enable platform personality migration |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US8010764B2 (en) * | 2005-07-07 | 2011-08-30 | International Business Machines Corporation | Method and system for decreasing power consumption in memory arrays having usage-driven power management |
US7376037B1 (en) * | 2005-09-26 | 2008-05-20 | Lattice Semiconductor Corporation | Programmable logic device with power-saving architecture |
US8145732B2 (en) | 2005-11-21 | 2012-03-27 | Intel Corporation | Live network configuration within a link based computing system |
US7496742B2 (en) * | 2006-02-07 | 2009-02-24 | Dell Products L.P. | Method and system of supporting multi-plugging in X8 and X16 PCI express slots |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US8051253B2 (en) | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
WO2008055271A2 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Seamless application access to hybrid main memory |
US8344475B2 (en) * | 2006-11-29 | 2013-01-01 | Rambus Inc. | Integrated circuit heating to effect in-situ annealing |
US7908501B2 (en) | 2007-03-23 | 2011-03-15 | Silicon Image, Inc. | Progressive power control of a multi-port memory device |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8347005B2 (en) * | 2007-07-31 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Memory controller with multi-protocol interface |
JP2009211153A (ja) * | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリ装置、情報処理装置及び電力制御方法 |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US8639874B2 (en) | 2008-12-22 | 2014-01-28 | International Business Machines Corporation | Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device |
US8161304B2 (en) * | 2009-01-20 | 2012-04-17 | Microsoft Corporation | Power management for large memory subsystems |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8180981B2 (en) * | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
KR20100133710A (ko) * | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 시스템 및 그것의 코드 데이터 로딩 방법 |
US20110047316A1 (en) * | 2009-08-19 | 2011-02-24 | Dell Products L.P. | Solid state memory device power optimization |
US8578138B2 (en) | 2009-08-31 | 2013-11-05 | Intel Corporation | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode |
US8296496B2 (en) * | 2009-09-17 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Main memory with non-volatile memory and DRAM |
US9041720B2 (en) * | 2009-12-18 | 2015-05-26 | Advanced Micro Devices, Inc. | Static image retiling and power management method and circuit |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8407516B2 (en) | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US20110161592A1 (en) | 2009-12-31 | 2011-06-30 | Nachimuthu Murugasamy K | Dynamic system reconfiguration |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110179311A1 (en) * | 2009-12-31 | 2011-07-21 | Nachimuthu Murugasamy K | Injecting error and/or migrating memory in a computing system |
US8621255B2 (en) * | 2010-02-18 | 2013-12-31 | Broadcom Corporation | System and method for loop timing update of energy efficient physical layer devices using subset communication techniques |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
US9032398B2 (en) * | 2010-07-12 | 2015-05-12 | Vmware, Inc. | Online classification of memory pages based on activity level represented by one or more bits |
JP2012027655A (ja) * | 2010-07-22 | 2012-02-09 | Hitachi Ltd | 情報処理装置および省電力メモリ管理方法 |
US8762760B2 (en) * | 2010-09-14 | 2014-06-24 | Xilinx, Inc. | Method and apparatus for adaptive power control in a multi-lane communication channel |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8838935B2 (en) * | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US8671309B2 (en) | 2011-07-01 | 2014-03-11 | Intel Corporation | Mechanism for advanced server machine check recovery and associated system software enhancements |
WO2013048483A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Platform storage hierarchy with non-volatile random access memory having configurable partitions |
WO2013048493A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
EP2761476B1 (en) * | 2011-09-30 | 2017-10-25 | Intel Corporation | Apparatus, method and system that stores bios in non-volatile random access memory |
EP2761465B1 (en) * | 2011-09-30 | 2022-02-09 | Intel Corporation | Autonomous initialization of non-volatile random access memory in a computer system |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
US9378142B2 (en) | 2011-09-30 | 2016-06-28 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
WO2013048497A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP2761471B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
EP2761467B1 (en) * | 2011-09-30 | 2019-10-23 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
CN103946816B (zh) * | 2011-09-30 | 2018-06-26 | 英特尔公司 | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) |
US20130091331A1 (en) * | 2011-10-11 | 2013-04-11 | Iulian Moraru | Methods, apparatus, and articles of manufacture to manage memory |
US8593866B2 (en) * | 2011-11-11 | 2013-11-26 | Sandisk Technologies Inc. | Systems and methods for operating multi-bank nonvolatile memory |
US9829951B2 (en) * | 2011-12-13 | 2017-11-28 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
US9336147B2 (en) * | 2012-06-12 | 2016-05-10 | Microsoft Technology Licensing, Llc | Cache and memory allocation for virtual machines |
US9811276B1 (en) * | 2015-09-24 | 2017-11-07 | EMC IP Holding Company LLC | Archiving memory in memory centric architecture |
-
2011
- 2011-12-22 BR BR112014015441-4A patent/BR112014015441B1/pt active IP Right Grant
- 2011-12-22 DE DE112011106032.7T patent/DE112011106032B4/de active Active
- 2011-12-22 WO PCT/US2011/067007 patent/WO2013095559A1/en active Application Filing
- 2011-12-22 US US13/997,999 patent/US9612649B2/en active Active
- 2011-12-22 KR KR1020157033114A patent/KR101761044B1/ko active IP Right Grant
- 2011-12-22 CN CN201180076411.3A patent/CN104115132B/zh active Active
- 2011-12-22 KR KR1020147017930A patent/KR101572403B1/ko not_active IP Right Cessation
- 2011-12-22 GB GB1411390.6A patent/GB2513748B/en active Active
-
2012
- 2012-12-06 TW TW101145912A patent/TWI614752B/zh active
-
2017
- 2017-04-03 US US15/477,857 patent/US10521003B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159024A1 (en) * | 2002-02-21 | 2003-08-21 | Chen Song Bor | Method of achieving power saving for computers through memory throttling |
TW200410255A (en) * | 2002-12-10 | 2004-06-16 | Comax Semiconductor Inc | A memory device with power-saving mode and an electrics device with the memory device |
TW564991U (en) * | 2003-04-25 | 2003-12-01 | Sunplus Technology Co Ltd | Power-saving static memory control circuit |
US7337368B2 (en) * | 2004-06-07 | 2008-02-26 | Dell Products L.P. | System and method for shutdown memory testing |
TWM286985U (en) * | 2005-08-22 | 2006-02-01 | Regulus Technologies Co Ltd | Memory module with smart-type power-saving and fault-tolerance |
US20080034234A1 (en) * | 2006-08-02 | 2008-02-07 | Hitachi, Ltd. | Method and computer for reducing power consumption of a memory |
US20110271070A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Memory usage scanning |
Also Published As
Publication number | Publication date |
---|---|
DE112011106032T5 (de) | 2014-12-04 |
GB2513748A (en) | 2014-11-05 |
BR112014015441A8 (pt) | 2017-07-04 |
KR101761044B1 (ko) | 2017-07-24 |
CN104115132A (zh) | 2014-10-22 |
GB201411390D0 (en) | 2014-08-13 |
US20170206010A1 (en) | 2017-07-20 |
US20140143577A1 (en) | 2014-05-22 |
TW201331941A (zh) | 2013-08-01 |
KR20140098221A (ko) | 2014-08-07 |
GB2513748B (en) | 2020-08-19 |
DE112011106032B4 (de) | 2022-06-15 |
WO2013095559A1 (en) | 2013-06-27 |
BR112014015441A2 (pt) | 2017-06-13 |
KR20150138404A (ko) | 2015-12-09 |
KR101572403B1 (ko) | 2015-11-26 |
US10521003B2 (en) | 2019-12-31 |
CN104115132B (zh) | 2018-02-06 |
US9612649B2 (en) | 2017-04-04 |
BR112014015441B1 (pt) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI614752B (zh) | 經由記憶體通道關閉之節電技術 | |
US11200176B2 (en) | Dynamic partial power down of memory-side cache in a 2-level memory hierarchy | |
US10719443B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy | |
US11132298B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes | |
US9317429B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels | |
US9286205B2 (en) | Apparatus and method for phase change memory drift management | |
US9269438B2 (en) | System and method for intelligently flushing data from a processor into a memory subsystem | |
US20140229659A1 (en) | Thin translation for system access of non volatile semicondcutor storage as random access memory |