TWI727253B - 計算系統及資料存取方法 - Google Patents
計算系統及資料存取方法 Download PDFInfo
- Publication number
- TWI727253B TWI727253B TW108103269A TW108103269A TWI727253B TW I727253 B TWI727253 B TW I727253B TW 108103269 A TW108103269 A TW 108103269A TW 108103269 A TW108103269 A TW 108103269A TW I727253 B TWI727253 B TW I727253B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- data access
- stream
- processing device
- Prior art date
Links
Images
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/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
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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/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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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/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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/22—Employing cache memory using specific memory technology
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/225—Hybrid cache memory, e.g. having both volatile and non-volatile portions
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明係關於一種具有不同層之記憶體組件之計算系統。該計算系統進一步包含一處理裝置,該處理裝置可操作地耦合至該等記憶體組件以:接收資料存取請求;根據該等資料存取請求及該等請求之存取特性產生複數個資料存取串流;匹配該等資料存取串流之特性與該等記憶體組件之該等不同層之特性;及基於匹配該等資料存取串流之該等特性與該等記憶體組件之該等不同層之該等特性而將該複數個資料存取串流引導至該等記憶體組件之該等不同層。
Description
本文中揭示之至少一些實施例一般而言係關於記憶體系統,且更特定言之(但非限制地)係關於在記憶體系統中經由資料串流隔離之加速資料存取。
一記憶體子系統可為一記憶體模組,諸如一雙列直插記憶體模組(DIMM)、一小型DIMM(SO-DIMM)或一非揮發性雙列直插記憶體模組(NVDIMM)。一記憶體子系統可為一儲存系統,諸如一固態硬碟(SSD)或一硬碟機(HDD)。一記憶體子系統可包含儲存資料之一或多個記憶體組件。記憶體組件可為例如非揮發性記憶體組件及揮發性記憶體組件。記憶體組件之實例包含記憶體積體電路。一些記憶體積體電路係揮發性的且需要電力來維持經儲存資料。一些記憶體積體電路係非揮發性的且甚至在未被供電時仍可保留經儲存資料。非揮發性記憶體之實例包含快閃記憶體、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、可擦除可程式化唯讀記憶體(EPROM)及電可擦除可程式化唯讀記憶體(EEPROM)記憶體等。揮發性記憶體之實例包含動態隨機存取記憶體(DRAM)及靜態隨機存取記憶體(SRAM)。一般而言,一主機系統可利用一記憶體子系統來
將資料儲存於記憶體組件處及自記憶體組件擷取資料。
例如,一電腦可包含一主機系統及附接至主機系統之一或多個記憶體子系統。主機系統可具有與一或多個記憶體子系統通信以儲存及/或擷取資料及指令之一中央處理單元(CPU)。用於一電腦之指令可包含作業系統、裝置驅動程式及應用程式。一作業系統管理電腦中之資源且為應用程式提供常見服務,諸如記憶體分配及資源之分時。一裝置驅動程式操作或控制電腦中之一特定類型之裝置;且作業系統使用裝置驅動程式來提供由該類型之裝置提供之資源及/或服務。一電腦系統之一中央處理單元(CPU)可運行一作業系統及裝置驅動程式以將服務及/或資源提供至應用程式。中央處理單元(CPU)可運行使用服務及/或資源之一應用程式。例如,實施一類型之電腦系統應用程式之一應用程式可指示中央處理單元(CPU)將資料儲存於一記憶體子系統之記憶體組件中及自記憶體組件擷取資料。
一電腦系統之一作業系統可容許一應用程式使用虛擬記憶體位址來將資料儲存於電腦系統之一或多個記憶體子系統之記憶體組件中或自電腦系統之一或多個記憶體子系統之記憶體組件擷取資料。作業系統將連接至電腦系統之中央處理單元(CPU)之一或多個記憶體子系統的虛擬位址映射至實體位址。作業系統使用記憶體子系統之實體位址實施虛擬位址處指定之記憶體存取。
一虛擬位址空間可被劃分為頁。可將一虛擬記憶體頁映射至記憶體子系統中之一實體記憶體頁。作業系統可使用一分頁技術以經由一記憶體模組中之一記憶體頁存取一儲存裝置中之一記憶體頁。在不同時間例項,一記憶體模組中之相同記憶體頁可用作存取儲存裝置中之不同記
憶體頁或電腦系統中之另一儲存裝置的代理。
一電腦系統可包含用於建立或佈建虛擬機之一超管理器(或虛擬機監控器)。一虛擬機係使用電腦系統中可用之資源及服務虛擬地實施之一計算裝置。超管理器將虛擬機呈現給一作業系統,宛如虛擬機之組件係專用實體組件一樣。一客戶作業系統在虛擬機中運行以依與運行於電腦系統中之主機作業系統類似之一方式管理虛擬機中可用之資源及服務。超管理器容許多個虛擬機共用電腦系統之資源且容許虛擬機在電腦上實質上彼此獨立地操作。
本申請案揭示一種計算系統,該計算系統包括:不同層之複數個記憶體組件;及一處理裝置,其可操作地耦合至該複數個記憶體組件以至少:接收資料存取請求;根據該等資料存取請求及該等請求之存取特性產生複數個資料存取串流;匹配該等資料存取串流之特性與該等記憶體組件之該等不同層之特性;及基於匹配該等資料存取串流之該等特性與該等記憶體組件之該等不同層之該等特性而將該複數個資料存取串流引導至該等記憶體組件之該等不同層。
本申請案亦揭示一種方法,該方法包括:在具有不同層之複數個記憶體組件之一記憶體子系統之一處理裝置中接收資料存取請求;藉由該處理裝置根據該等資料存取請求及該等請求之存取特性產生複數個資料存取串流;藉由該處理裝置匹配該等資料存取串流之特性與該等記憶體組件之該等不同層之特性;及藉由該處理裝置基於匹配該等資料存取串流之該等特性與該等記憶體組件之該等不同層之該等特性而將該複數個資料存取串流引導至該等記憶體組件之該等不同層。
100:計算系統
109A至109N:記憶體組件
110:記憶體子系統
113:資料串流隔離器
114:遠程裝置/儲存裝置
115:控制器
116:控制器
117:處理裝置
118:處理裝置
119:本地記憶體
120:主機系統/主機
203:記憶體匯流排
205:記憶體模組
207:周邊互連
209:儲存裝置/記憶體子系統
211:快取記憶體
213:記憶體管理單元(MMU)
219:電腦網路
221:A型記憶體
223:B型記憶體
225:C型記憶體
227:控制器/控制器X
229:控制器Y/控制器
231:資料存取/資料請求/資料存取請求
233至238:資料存取串流
241:主機作業系統
243:客戶作業系統
245:超管理器
246:實體功能
247:虛擬功能
249:虛擬機
251:應用程式
253:應用程式
261:資料使用資訊
263:工作負荷辨識器
265:預測模型/預測模組
267:區塊至物件映射
269:資料移動
271:資料存取請求
273:快取控制器
275:快取命中率
277:資料移動
301:方塊
303:方塊
305:方塊
307:方塊
600:電腦系統
602:處理裝置
604:主記憶體
608:網路介面裝置
618:資料儲存系統
620:網路
624:機器可讀儲存媒體
626:指令
630:匯流排
在隨附圖式之圖中藉由實例且非限制之方式繪示實施例,其中相似參考指示類似元件。
圖1繪示根據本發明之一些實施例之具有一記憶體子系統之一例示性計算系統。
圖2展示根據本文中揭示之至少一些實施例之一計算系統,其具有不同記憶體層及用於加速資料存取之一資料串流隔離器。
圖3繪示資料串流隔離之一實例。
圖4展示具有一資料串流隔離器之一系統。
圖5繪示具有一預測模型之一資料串流隔離器之一實施方案。
圖6展示經由資料串流隔離加速資料存取之一方法。
圖7係其中可操作本發明之實施例之一例示性電腦系統之一方塊圖。
本申請案主張於2018年10月22日申請且標題為「Accelerate Data Access in Memory Systems via Data Stream Segregation」之美國專利申請案序號16/166,624及於2018年2月5日申請且標題為「Prioritized Memory Storage Based on Data Stream Characteristics」之臨時美國專利申請案序號62/626,544之申請日期之權利,該等申請案之全部揭示內容特此以引用的方式併入本文中。
本發明之至少一些態樣係關於一種可在具有不同效能位準
及/或不同操作特性之多層記憶體之一電腦系統中加速資料存取的資料串流隔離技術。一記憶體子系統在下文中亦稱為一「記憶體裝置」。一記憶體子系統之一實例係經由一記憶體匯流排連接至一中央處理單元(CPU)之一記憶體模組。記憶體模組之實例包含一雙列直插記憶體模組(DIMM)、一小型DIMM(SO-DIMM)、一非揮發性雙列直插記憶體模組(NVDIMM)等。一記憶體子系統之另一實例係經由一周邊互連(例如,一輸入/輸出匯流排、一儲存區域網路)連接至中央處理單元(CPU)之一儲存裝置。儲存裝置之實例包含一固態硬碟(SSD)、一快閃隨身碟、一通用串列匯流排(USB)快閃隨身碟及一硬碟機(HDD)。在一些實施例中,記憶體子系統係提供記憶體功能及儲存功能兩者之一混合記憶體/儲存子系統。一般而言,一主機系統可利用包含一或多個記憶體組件之一記憶體子系統。主機系統可提供待儲存於記憶體子系統處之資料且可請求待自記憶體子系統擷取之資料。
一習知系統可具有其中透過較快記憶體存取較慢記憶體之一快取結構。當一處理器存取當前在一較慢記憶體中之資料時,將資料載入至一較快記憶體作為較慢記憶體中之資料之一代理。隨後,處理器操作較快記憶體中之資料之代理/快取區以改良效能。較快記憶體通常具有小於較慢記憶體之一容量。因此,可在較快記憶體中同時快取較慢記憶體中之資料之僅一部分。當由處理器存取之一項當前未在較快記憶體中時,發生一快取未中。當由處理器存取之一項當前在較快記憶體中時,發生一快取命中。導致快取命中之存取的百分比係一快取命中率。改良快取命中率可改良計算系統之操作效能。然而,設計一快取策略以改良快取命中率係一項挑戰。
本發明之至少一些態樣藉由不同記憶體層之資料串流隔離來解決上述及其他缺陷。
不同層之記憶體可具有不同資料存取速度。藉由結合記憶體之資料存取速度以及資料存取頻率及模式最佳化資料放置,可改良總體系統效能。例如,為改良一計算系統之操作效能,可將頻繁使用之資料放置於一較快記憶體中;且可將不太頻繁使用之資料放置於一較慢記憶體中。視情況,較快記憶體可組態為較慢記憶體之一快取記憶體。在一些例項中,當對較慢記憶體之存取不頻繁時,可直接存取較慢記憶體之至少一部分而不經過作為一快取區之較快記憶體。
不同層之記憶體可具有不同操作特性。例如,某些類型之記憶體處置隨機寫入可能比處置循序寫入慢。例如,某些類型之記憶體上之寫入操作可降低讀取操作之效能位準。例如,某些類型之記憶體可對重複寫入/擦除操作具有有限耐久性。可產生各別資料串流以將不同記憶體層設為目標而鑑於操作特性最佳化系統效能。
例如,可快取一特定類型之一記憶體區中之一混合讀取操作及寫入操作串流以分離讀取操作及寫入操作,而避免寫入操作干擾及/或阻塞該記憶體區中之讀取操作。例如,可將一隨機寫入存取串流快取且重組為一循序寫入存取串流。
此外,視情況,可在一預測模型中應用、使用一機器學習技術訓練資料使用資訊,以預測工作負荷企圖及因此跨不同層之記憶體之資料移動而隔離及/或組織資料存取串流。因此,資料放置亦可至少部分基於一後續時段內之資料使用之預測。
例如,資料使用資訊可包含資料存取之歷史及與資料存取
相關之屬性,諸如使用資料之應用程式或程式、其中進行資料存取之使用者帳戶、存取資料之虛擬機、資料所屬之物件、如應用程式中組織之資料區塊至物件之間之映射、物件當中之關係等。可事先執行根據資料使用資訊預測之資料移動以改良計算系統之操作效能。最初可使用歷史資料使用資訊及由與資料使用資訊相關聯之資料存取引起之歷史資料移動離線地訓練預測模型。該訓練最小化歷史資料移動與藉由在預測模型中應用歷史資料使用資訊而產生之預測之間的差異。隨後,預測模型可用於使用即時資料使用資訊進行即時預測。執行預測資料移動可減少回應於資料存取請求而移動資料之需要。由即時資料存取請求引起之資料移動及/或預測資料移動是否減少跨層移動資料之需要的指示可用於識別所要之即時預測結果。所要結果可使用一加強機器學習技術進一步訓練預測模型以持續改良及調適預測模型。預測模型可在計算系統之即時使用中動態地調適至當前工作負荷。
圖1繪示根據本發明之一些實施例之具有一記憶體子系統110之一例示性計算系統100。記憶體子系統110可包含媒體,諸如記憶體組件109A至109N。記憶體組件109A至109N可為揮發性記憶體組件、非揮發性記憶體組件或此等組件之一組合。在一些實施例中,記憶體子系統110係一記憶體模組。一記憶體模組之實例包含一DIMM、NVDIMM及NVDIMM-P。在一些實施例中,記憶體子系統係一儲存系統。一儲存系統之一實例係一SSD。在一些實施例中,記憶體子系統110係一混合記憶體/儲存子系統。一般而言,計算環境可包含使用記憶體子系統110之一主機系統120。例如,主機系統120可將資料寫入至記憶體子系統110及自記憶體子系統110讀取資料。
主機系統120可為一計算裝置,諸如一桌上型電腦、膝上型電腦、網路伺服器、行動裝置或包含一記憶體及一處理裝置之此計算裝置。主機系統120可包含或耦合至記憶體子系統110,使得主機系統120可自記憶體子系統110讀取資料或將資料寫入至記憶體子系統110。主機系統120可經由一實體主機介面耦合至記憶體子系統110。如本文中所使用,「耦合至」一般指代組件之間之一連接,其可為一間接通信連接或直接通信連接(例如,不具有介入組件),無論是有線還是無線,包含諸如電連接、光學連接、磁性連接等之連接。一實體主機介面之實例包含但不限於一串列進階技術附接(SATA)介面、一快速周邊組件互連(PCIe)介面、通用串列匯流排(USB)介面、光纖通道、串列附接SCSI(SAS)、一雙倍資料速率(DDR)記憶體匯流排等。實體主機介面可用於在主機系統120與記憶體子系統110之間傳輸資料。主機系統120可進一步利用一快速NVM(NVMe)介面以在記憶體子系統110藉由PCIe介面與主機系統120耦合時存取記憶體組件109A至109N。實體主機介面可提供用於在記憶體子系統110與主機系統120之間傳遞控制、位址、資料及其他信號之一介面。圖1繪示一記憶體子系統110作為一實例。一般而言,主機系統120可經由一相同通信連接、多個各別通信連接及/或一通信連接組合存取多個記憶體子系統。
主機系統120包含一處理裝置118及一控制器116。主機系統120之處理裝置118可為例如一微處理器、一中央處理單元(CPU)、一處理器之一處理核心、一執行單元等。在一些例項中,控制器116可被稱為一記憶體控制器、一記憶體管理單元及/或一起始器。在一項實例中,控制器116控制經由耦合於主機系統120與記憶體子系統110之間之一匯流排
進行的通信。
一般而言,控制器116可將命令或請求發送至記憶體子系統110以對記憶體組件109A至109N進行所要存取。控制器116可進一步包含用於與記憶體子系統110通信之介面電路。介面電路可將自記憶體子系統110接收之回應轉換成用於主機系統120之資訊。
主機系統120之控制器116可與記憶體子系統110之控制器115通信以執行諸如在記憶體組件109A至109N處讀取資料、寫入資料或擦除資料之操作及其他此等操作。在一些例項中,控制器116整合於處理裝置118之相同封裝內。在其他例項中,控制器116與處理裝置118之封裝分離。控制器116及/或處理裝置118可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體、一快取記憶體或其等之一組合。控制器116及/或處理裝置118可為一微控制器、專用邏輯電路(例如,一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)等)或另一適合處理器。
記憶體組件109A至109N可包含不同類型之非揮發性記憶體組件及/或揮發性記憶體組件之任何組合。非揮發性記憶體組件之一實例包含一反及(NAND)型快閃記憶體。記憶體組件109A至109N之各者可包含一或多個記憶體胞陣列,諸如單位階胞(SLC)或多位階胞(MLC)(例如,三位階胞(TLC)或四位階胞(QLC))。在一些實施例中,一特定記憶體組件可包含記憶體胞之一SLC部分及一MLC部分兩者。記憶體胞之各者可儲存由主機系統120使用之一或多個資料位元(例如,資料區塊)。儘管描述非揮發性記憶體組件(諸如NAND型快閃記憶體),然記憶體組件109A至109N可基於任何其他類型之記憶體,諸如一揮發性記憶體。在一些實施例中,記憶體組件109A至109N可為但不限於隨機存取記憶體(RAM)、
唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、相變記憶體(PCM)、磁隨機存取記憶體(MRAM)、自旋轉移力矩(STT)-MRAM、鐵電隨機存取記憶體(FeTRAM)、鐵電RAM(FeRAM)、導電橋接RAM(CBRAM)、電阻式隨機存取記憶體(RRAM)、基於氧化物之RRAM(OxRAM)、反或(NOR)快閃記憶體、電可擦除可程式化唯讀記憶體(EEPROM)、基於奈米線之非揮發性記憶體、併有憶阻器技術之記憶體,及一交叉點非揮發性記憶體胞陣列。一交叉點非揮發性記憶體陣列可基於一體電阻變化、結合一可堆疊交叉網格資料存取陣列執行位元儲存。另外,與許多基於快閃之記憶體相反,交叉點非揮發性記憶體可執行一就地寫入操作,其中可在先前未擦除一非揮發性記憶體胞之情況下程式化該非揮發性記憶體胞。此外,記憶體組件109A至109N之記憶體胞可被分組為可指代用於儲存資料之記憶體組件之一單位的記憶體頁或資料區塊。
記憶體子系統110之控制器115可與記憶體組件109A至109N通信以執行諸如在記憶體組件109A至109N處讀取資料、寫入資料或擦除資料之操作及其他此等操作(例如,對由控制器116排程於一命令匯流排上之命令作出回應)。控制器115可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體或其等之一組合。控制器115可為一微控制器、專用邏輯電路(例如,一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)等)或另一適合處理器。控制器115可包含一處理裝置117(處理器),處理裝置117經組態以執行儲存於本地記憶體119中之指令。在所繪示實例中,控制器115之本地記憶體119包含一嵌入式記憶體,該嵌入式記憶體經組態以儲存用於執行控制記憶體子系統110之操作(包含處置記
憶體子系統110與主機系統120之間之通信)之各種程序、操作、邏輯流程及常式的指令。在一些實施例中,本地記憶體119可包含儲存記憶體指針、經提取資料等之記憶體暫存器。本地記憶體119亦可包含用於儲存微程式碼之唯讀記憶體(ROM)。雖然圖1中之例示性記憶體子系統110已被繪示為包含控制器115,但在本發明之另一實施例中,一記憶體子系統110可不包含一控制器115,且可代替性地依賴於外部控制(例如,其由一外部主機、或由與記憶體子系統分離之一處理器或一控制器提供)。
一般而言,控制器115可自主機系統120接收命令或操作,且可將命令或操作轉換成用於達成對記憶體組件109A至109N之所要存取的指令或適當命令。控制器115可負責與記憶體組件109A至109N相關聯之其他操作,諸如損耗均衡操作、廢棄項目收集操作、錯誤偵測及錯誤校正碼(ECC)操作、加密操作、快取操作及一邏輯區塊位址與一實體區塊位址之間之位址轉譯。控制器115可進一步包含用於經由實體主機介面與主機系統120通信之主機介面電路。主機介面電路可將自主機系統接收之命令轉換成用於存取記憶體組件109A至109N之命令指令,以及將與記憶體組件109A至109N相關聯之回應轉換成用於主機系統120之資訊。
記憶體子系統110亦可包含未繪示之額外電路或組件。在一些實施例中,記憶體子系統110可包含一快取區或緩衝器(例如,DRAM)及可自控制器115接收一位址且解碼該位址以存取記憶體組件109A至109N的位址電路(例如,一列解碼器及一行解碼器)。
計算系統100包含記憶體子系統110中之一資料串流隔離器113,資料串流隔離器113可根據記憶體組件109A至109N之效能特性自來自主機系統120之一資料存取請求串流產生適於記憶體組件109A至109N
之各別資料串流,以改良整個電腦系統之資料存取速度。在一些實施例中,記憶體子系統110中之控制器115包含資料串流隔離器113之至少一部分。在其他實施例中或組合地,主機系統120中之控制器116及/或處理裝置118包含資料串流隔離器113之至少一部分。例如,控制器115、控制器116及/或處理裝置118可包含實施資料串流隔離器113之邏輯電路。例如,控制器115或主機系統120之處理裝置118(處理器)可經組態以執行儲存於記憶體中之指令而執行本文中描述之資料串流隔離器113之操作。在一些實施例中,在安置於記憶體子系統110中之一積體電路晶片中實施資料串流隔離器113。在其他實施例中,資料串流隔離器113可為主機系統120之一作業系統、一裝置驅動程式或一應用程式之部分。
資料串流隔離器113可重組及服務來自主機系統120之資料存取請求。主機系統120與資料串流隔離器113之間之混合資料串流可被分離成目標為不同類型之記憶體組件109A至109N之不同資料串流。例如,具有頻繁隨機存取之資料可被重新定位至一快速記憶體組件(例如,109A)及/或快取於一快速記憶體組件(例如,109A)中;且具有不頻繁循序存取之資料可在一慢速記憶體組件(例如,109N)中操作而不經過快速記憶體組件。可基於新近資料存取模式及/或基於跨不同記憶體(諸如較快記憶體(例如,109A)及較慢記憶體(例如,109N))層之預測資料使用及資料移動來執行資料串流隔離。應用程式可循序地存取某些資料;且某些物件可一起使用。因此,在一使用者帳戶、一應用程式、一虛擬機中使用一資料項作為一物件之部分可指示隨後使用另一相關資料項。資料串流隔離器113可指示控制器115重新配置資料項在記憶體子系統110中之實體儲存位置,使得不同資料串流可分別引導至各自實體儲存位置以改良總體效能。
資料串流隔離器113可視情況在資料隔離中使用一人工神經網路來預測資料使用及/或移動;且人工神經網路最初可使用歷史資料存取記錄離線訓練,且接著在即時使用中使用即時資料存取記錄持續訓練。下文描述關於資料串流隔離器113之操作之進一步細節。
例如,資料串流隔離器113可自來自主機系統120之混合寫入請求串流識別一循序寫入操作串流。例如,寫入操作之位址可在一邏輯位址空間中,該邏輯位址空間可進一步轉譯成一實體位址空間以對由該等位址識別之記憶體單元進行操作。當寫入操作指定在邏輯位址空間中循序之位址時,資料串流隔離器113可分配一組連續實體記憶體以循序地儲存資料。
例如,資料串流隔離器113可將資料之實體儲存位置映射至一慢速記憶體(例如,109N),其中寫入操作之完成對主機系統120之效能不具有直接影響。
例如,資料串流隔離器113可自來自主機系統120之混合寫入請求串流識別其中亦頻繁地使用資料之一隨機寫入操作串流。資料串流隔離器113可將資料之實體儲存位置映射至一快速記憶體(例如,109A),使得可減少主機系統120之資料存取時間。當主機系統120中之計算活動變化使得不再頻繁地使用資料時,資料串流隔離器113可將資料之實體儲存位置重新映射至一慢速記憶體(例如,109N),且因此容許先前用於該資料之較快記憶體(例如,109A)之部分被釋放以供在一最新時段內頻繁使用(或預測在一後續時段內頻繁使用)之其他資料使用。
例如,資料串流隔離器113可自來自主機系統120之混合寫入請求串流識別一隨機寫入操作串流、將資料快取於快速記憶體(例如,
109A)中以進行合併及/或串列化,且產生循序寫入操作以將資料儲存至慢速記憶體(例如,109N)中。當慢速記憶體對重複寫入/擦除操作具有一有限耐久性時,可根據經設計以改良慢速記憶體(例如,109N)之壽命的一頻率執行將資料儲存至慢速記憶體(例如,109N)中。
資料串流隔離器113可基於資料之使用頻率識別及分類資料群組。例如,以高於一第一臨限值之一頻率存取之資料可被分類為熱資料(hot data)且經組態以儲存於具有最快存取速度之一頂層記憶體(例如,109A)中。以低於一第二臨限值之一頻率存取之資料可被分類為冷資料(cold data)且經組態以儲存於具有最慢存取速度之一底層記憶體(例如,109N)中。以介於第一臨限值與第二臨限值之間之一頻率存取之資料可被分類為暖資料(warm data)且經組態以儲存於比頂層慢但比下層快之一中間層記憶體中。例如,頂層可使用可支援高效能隨機存取而不具有對重複寫入/擦除操作之耐久性問題的DRAM或交叉點記憶體來實施;中間層可使用單位階胞(SLC)NAND快閃記憶體來實施;且第三層可使用三位階胞(TLC)或四位階胞(QLC)NAND快閃記憶體來實施。SLC快閃記憶體可比DRAM或交叉點記憶體便宜,但比TLC或QLC快閃記憶體昂貴;且與TLC或QLC快閃記憶體相比,SLC快閃記憶體可具有更佳效能及更少耐久性問題。資料串流隔離可容許整個記憶體系統之存取效能得以改良以接近頂層或中間層記憶體之效能,同時降低底層記憶體之效能成本。
在一些例項中,頂層記憶體係DRAM及交叉點記憶體之一組合,其中DRAM中之內容可在電源故障之事件中儲存於交叉點記憶體中。因此,DRAM及交叉點記憶體之組合可用作一非揮發性記憶體。
資料串流隔離器113可經組態以不僅基於使用頻率而且基
於識別資料串流之各種屬性(諸如資料存取是否為串流的、資料存取是循序的還是隨機的、工作負荷是同步的還是併發的、資料存取之服務品質(QoS)優先級、資料存取是讀取還是寫入、輸入/輸出大小、原子性、揮發性、存取模式等)的工作負荷提示及/或標籤來分離資料串流。基於資料工作負荷提示及/或標籤,控制器115判定經存取資料之位置、記憶體子系統110中之資料放置(例如,基於資料存取頻率),執行記憶體子系統110內之分層資料快取,建構非阻塞寫入串流等。
可經由運行於主機系統120中之記憶體子系統110的一裝置驅動程式提供工作負荷提示及/或標籤。可在於2018年8月3日申請且標題為「Memory Virtualization for Accessing Heterogeneous Memory Components」之美國專利申請案序號16/054,719中找到裝置驅動之一些細節及實例。
視情況,使用TCL/QLC NAND記憶體實施之對記憶體層之寫入存取最初可快取於頂層記憶體中以轉換為具有根據記憶體之耐久性及記憶體之所要存取/變化頻率客製化之定義屬性的寫入串流。使用頂層來快取及重組寫入串流可減少寫入放大、消除因寫入操作引起之讀取操作之阻塞/延遲,而容許讀取操作優先於寫入操作且容許針對工作負荷要求聯合最佳化記憶媒體能力。至TCL/QLC NAND記憶體之串流循序寫入操作可減少或消除記憶體中之碎片。
資料串流隔離器113可基於各種特性化識別一資料串流以能夠作出關於對記憶體系統中之資料儲存之序列、時序及/或位置之管理的智慧決策。例如,資料串流被識別且組織為適於具有不同讀取及寫入存取延時及/或對資料存取之耐久性之不同類型記憶體當中的一類型之記憶
體。
來自主機系統120之傳入資料串流可含有關於資料之指示資料之所欲、預期或期望之未來使用的資訊(例如,標籤、屬性、提示)。例如,資訊或提示可包含元資料或屬性標籤、QoS(服務品質)參數、優先級參數等。控制器可根據儲存媒體能力及資料串流之特性排定資料目的地之優先順序。
一般而言,可基於由主機系統120提供、自主機系統120收集或請求之關於資料性質(例如,串流、循序對比隨機、工作負荷類型及/或可用於預測資料之未來效能需求之其他資料屬性)的特性及/或其他資訊來完成將資料分離成不同類別或串流。
在一項實例中,資料串流隔離器113具有在控制器115之控制下提供於一或多個記憶體系統中之至少兩組記憶體。例如,一組記憶體可比另一組記憶體慢。控制器115將兩組記憶體之容量呈現給CPU,宛如記憶體子系統110中存在一單一組之統一記憶體一樣。控制器115及/或資料串流隔離器113可從主機系統120屏蔽記憶體組之差異。例如,控制器115可重新映射由主機系統120使用之記憶體位址以將記憶體子系統110中之一記憶體單元定址至一記憶體組件(例如,109A或109N)中之一實體位址;且可調整映射以容許將資料實體地託管於適於由資料串流隔離器113識別之一當前資料串流的一位置處。
視情況,一較快記憶體(例如,109A)可用作一較慢記憶體(例如,109B)之一快取區,儲存於較快記憶體中之資料在較慢記憶體中具有一對應複本。當較快記憶體變化時,較慢記憶體中之對應複本變得過時。較快記憶體中之變化內容將刷新至較慢記憶體以進行更新。
替代地,在一些例項中,可存取較慢記憶體中之內容而不經過較快記憶體;且較快記憶體中之內容可能在較慢記憶體中不具有一對應複本。可動態地改變較慢記憶體及較快記憶體中之內容分佈以最佳化當前工作負荷之操作效能。在此一情境中,為追蹤快取命中率之目的,可仍將較快記憶體視為一快取區。例如,若正在存取之一資料項係由較快記憶體服務,則計數一快取命中;且若正在存取之一資料項係由較慢記憶體服務,則計數一快取未中。因此,甚至在較快記憶體未組態為較慢記憶體之快取區時,仍可追蹤快取命中率以進行效能監控及/或資料使用預測。
在一些例項中,一記憶體虛擬器可在一記憶體組件之一裝置驅動程式中實施以虛擬化對不同層之記憶體的記憶體存取,而從應用程式及/或虛擬機屏蔽記憶體組件109A至109N之差異。記憶體虛擬器自動調整跨不同層之記憶體的資料儲存位置,以最佳化計算系統之效能。可在於2018年8月3日申請且標題為「Memory Virtualization for Accessing Heterogeneous Memory Components」之美國專利申請案序號16/054,719中找到記憶體虛擬器之一些細節及實例。
當正在存取之一資料項在較慢記憶體組中但未在較快記憶體組中時,可在較慢記憶體組中直接存取該資料項,或將該資料項交換至較快記憶體組以在較快記憶體組中存取或快取於較快記憶體組中。若藉由資料串流隔離器113預測存取資料項之工作負荷,則資料串流隔離器113指示控制器115在資料存取之前將資料項交換至較快記憶體組或將資料項快取於較快記憶體組中。在根據工作負荷預測執行資料移動之後,可在存取資料項時由較快記憶體組伺服資料存取。由於資料存取係由較快記憶體組服務,故完成資料存取之時間比由較慢記憶體組服務、或交換至較快記
憶體組以服務、或將資料自較慢記憶體組載入至較快記憶體組以進行快取且接著服務之時間短。
例如,當正在存取之一虛擬記憶體頁當前在較慢記憶體組中但未在較快記憶體組中時,可自較快記憶體組分配一頁以服務較慢記憶體組中之該頁;且可自較慢記憶體組提取該頁之資料且將其儲存於較快記憶體組中之經分配頁中,使得可在後續操作中經由存取較快記憶體組中之經分配頁而進行對虛擬記憶體之該頁之資料存取。
在一些例項中,交換一頁比簡單地自較慢記憶體存取一經請求資料元件花費之時間長。因此,首先使經請求資料元件服務於請求者,同時執行頁交換以加速對熱頁中之資料元件的後續存取。因此,總體效能比保持對資料元件之請求直至完成頁交換更佳。
此外,與較慢記憶體組中之頁之使用相關之資訊可用於在預測頁之使用時訓練一自學習預測引擎。例如,可使用一監督式機器學習技術以使用資訊訓練一人工神經網路,以藉由減小預測與頁之實際使用之間的誤差而預測較慢記憶體組中之頁之使用。在訓練人工神經網路之後,預測引擎可使用當前資訊來預測接下來的待使用頁。此外,可以一連續方式執行訓練、預測及來自預測後實際使用之用於進一步訓練的回饋,以將人工神經網路之預測模型調適至記憶體頁之最新使用模式。
回應於即將使用較慢記憶體組中之一頁的記憶體使用預測,資料串流隔離器113可指示控制器115主動將資料頁自較慢記憶體組交換或快取至較快記憶體組,使得當需要處理時,資料頁已在較快記憶體組中,該配置改良資料頁之資料存取速度。
可針對後續實際頁使用量測預測之準確度;且預測及後續
實際頁使用可用於進一步訓練或調整人工神經網路以追蹤記憶體頁之最新使用模式。
替代地或組合地,可用基於策略之預測規則取代或擴充基於機器學習之預測。例如,儲存駐留程式碼(例如,在較低位址中)之頁可在可能時維持在較快記憶體組中以減少頻繁使用頁之交換。例如,當正在存取作為一巨型頁之一部分的一頁時,可將該巨型頁載入至較快記憶體組中。例如,可至少部分使用啟發式規則來基於以下指示(諸如是循序地還是隨機地存取頁、資料存取是處於一穩態模式還是處於一叢發模式及/或頁之間之邏輯關係(及不同大小之頁))進行預測。
可在於2018年7月11日申請且標題為「Predictive Paging to Accelerate Memory Access」之美國專利申請案序號16/032,331中找到關於預測技術之一些細節及實例。
圖2展示根據本文中揭示之至少一些實施例之一計算系統,其具有不同記憶體層及用於加速資料存取之一資料串流隔離器。
圖2之計算系統包含一主機系統120、經由一記憶體匯流排203連接至主機系統120之一記憶體模組205,及經由一互連207連接至記憶體模組205之一儲存裝置209。視情況,記憶體模組205具有至一電腦網路219之一連接以執行遠程直接資料存取(RDMA)操作而透過記憶體模組205服務一遠程裝置114上之資料。記憶體模組205係圖1中繪示之記憶體子系統110之一實例。遠程裝置114可具有類似於本地儲存裝置209之一儲存裝置及/或類似於本地記憶體模組205之一記憶體模組。可在於2018年8月21日申請且標題為「Remote Direct Memory Access in Multi-Tier Memory Systems」之美國專利申請案序號16/107,624中找到關於遠程直
接記憶體存取(RDMA)之一些細節及實例。
主機系統120具有一處理裝置118,處理裝置118可為一中央處理單元或具有一或多個處理核心之一微處理器。主機系統120可具有一記憶體管理單元213及快取記憶體211。記憶體管理單元213及/或快取記憶體211之至少一部分可視情況整合於處理裝置118之相同積體電路封裝內。
圖2中繪示之記憶體模組205具有多種類型之記憶體(例如,221及223)。例如,A型記憶體221比B型記憶體223快。
例如,記憶體匯流排203可為一雙倍資料速率匯流排;且互連207可為一快速周邊組件互連(PCIe)匯流排、一串列進階技術附接(SATA)匯流排、一通用串列匯流排(USB)匯流排及/或一儲存區域網路。可依比存取儲存裝置209中之B型記憶體223快之一速度存取記憶體模組205中之B型記憶體223。
圖2中繪示之儲存裝置209具有多種類型之記憶體(例如,223及225)。例如,B型記憶體223比C型記憶體225快。
一般而言,複數個記憶體模組(例如,205)可耦合至記憶體匯流排203;且複數個儲存裝置(例如,209)可耦合至周邊互連207。在一些例項中,周邊互連207及儲存裝置(例如,209)係選用的且可不在計算系統中。在其他例項中,記憶體匯流排203及記憶體模組(例如,205)可為選用的且可不在計算系統中。
在複數個記憶體模組(例如,205)耦合至記憶體匯流排203之一可能組態中,記憶體模組(例如,205)之一者具有A型記憶體221;且記憶體模組之另一者具有B型記憶體223,B型記憶體223可依低於一各別
記憶體模組(例如,205)中之A型記憶體221之一速度存取。
類似地,在複數個儲存裝置(例如,209)耦合至互連207之一可能組態中,儲存裝置(例如,209)之一者具有B型記憶體223,且儲存裝置之另一者具有C型記憶體225,C型記憶體225可依低於一各別儲存裝置(例如,209)中之B型記憶體223之一速度存取。
處理裝置118及/或MMU 213經由指令(例如,一作業系統及/或一或多個裝置驅動程式)組態以使用一分頁技術及/或一記憶體映射介面經由電腦系統中之記憶體之一部分存取電腦系統中之記憶體之另一部分。
在一項實施例中,記憶體模組205之控制器227可經組態以將儲存裝置209之記憶能力呈現為記憶體模組205之記憶體之部分。因此,主機系統120可存取儲存裝置209及/或遠程儲存裝置114作為記憶體模組205之部分。
例如,記憶體模組205之B型記憶體223可經由記憶體模組205(或另一記憶體模組)之A型記憶體221存取。
例如,儲存裝置209之B型記憶體223可經由記憶體模組205之A型記憶體221及/或經由記憶體模組205之B型記憶體223存取。
例如,儲存裝置209之C型記憶體225可經由記憶體模組205之A型記憶體221、經由記憶體模組205之B型記憶體223及/或經由儲存裝置209(或另一儲存裝置)之B型記憶體223存取。
例如,在一些例項中,相同記憶體模組205(或不同記憶體模組)中之A型記憶體221及B型記憶體223可藉由處理裝置118之記憶體管理單元213經由記憶體匯流排203直接地且各別地定址。然而,由於B型記
憶體223比A型記憶體221慢,故期望經由A型記憶體221存取B型記憶體223。
在其他例項中,記憶體模組205之B型記憶體223僅可透過定址記憶體模組205之A型記憶體221而存取(例如,歸因於記憶體匯流排203之位址部分之大小限制)。
資料串流隔離器113可識別一資料串流且指示記憶體模組205中之一控制器X 227根據資料串流之特性調整資料串流之資料放置。
例如,控制器X 227可在記憶體模組205內之A型記憶體221與B型記憶體223之間執行一資料串流之資料傳送/移動。
此外,記憶體模組205中之控制器X 227可與儲存裝置209中之一控制器Y 229通信,以在儲存裝置209中之記憶體223至225之間及/或在儲存裝置209與記憶體模組205之間執行資料傳送/移動。
此外,記憶體模組205中之控制器X 227可與遠程裝置114中之一控制器通信,以在遠程裝置114與記憶體模組205之間執行資料傳送/移動。
一般而言,記憶體子系統(例如,205及209)可包含諸如記憶體(例如,221、...、223、...、225)之媒體。記憶體(例如,221、...、223、...、225)可包含揮發性記憶體、非揮發性記憶體(NVM)及/或此等記憶體之一組合。在一些實施例中,電腦系統包含至少一個記憶體子系統,即一儲存裝置209。一儲存裝置209之一實例係一固態硬碟(SSD)。在一些實施例中,電腦系統包含至少一個記憶體子系統,即組態為一記憶體模組205之一混合記憶體/儲存系統。處理裝置118可將資料寫入至記憶體子系統(例如,205及209)之各者且直接地或間接地自記憶體子系統(例如,205
及209)讀取資料。
圖2之計算系統可用於實施一桌上型電腦、膝上型電腦、網路伺服器、行動裝置或包含一記憶體及一處理裝置之此計算裝置。處理裝置118可自記憶體子系統(例如,205及209)讀取資料或將資料寫入至記憶體子系統(例如,205及209)。
處理裝置118可經由一或多個實體介面(例如,203、207)耦合至一記憶體子系統(例如,205、209)。
如本文中所使用,「耦合至」一般指代組件之間之一連接,其可為一間接通信連接或直接通信連接(例如,不具有介入組件),無論是有線還是無線,包含諸如電連接、光學連接、磁性連接等之連接。
一實體主機介面之實例包含但不限於一串列進階技術附接(SATA)介面、一快速周邊組件互連(PCIe)介面、通用串列匯流排(USB)介面、光纖通道、小型電腦系統介面(SCSI)、串列附接SCSI(SAS)等。
實體主機介面可用於在處理裝置118與記憶體子系統(例如,209)之間傳輸資料。當記憶體子系統209經由PCIe介面與周邊互連207耦合時,電腦系統可進一步利用一快速NVM(NVMe)介面來存取記憶體(例如,223、...、225)。實體主機介面可提供用於在記憶體子系統(例如,209)與處理裝置118之間傳遞控制、位址、資料及其他信號之一介面。
一般而言,一記憶體子系統(例如,205及209)包含連接提供記憶體(例如,221、...、223、...、225)之一組記憶體裝置(諸如記憶體積體電路)之一印刷電路板。記憶體子系統(例如,205及209)上之記憶體(例如,221、...、223、...、225)可包含不同類型之非揮發性記憶體裝置
及/或揮發性記憶體裝置之任何組合。
非揮發性記憶體裝置之一實例包含一反及(NAND)型快閃記憶體或一反或(NOR)型快閃記憶體。一記憶體積體電路可包含一或多個記憶體胞陣列,諸如單位階胞(SLC)、多位階胞(MLC)、三位階胞(TLC)、四位階胞(QLC)等。在一些實施方案中,一特定記憶體裝置可包含記憶體胞之一SLC部分及一MLC(或TLC或QLC)部分兩者。記憶體胞之各者可儲存由主機系統120使用之一或多個資料位元。儘管描述非揮發性記憶體裝置(諸如NAND型快閃記憶體),然記憶體積體電路可基於任何其他類型之記憶體,諸如一揮發性記憶體。在一些實施方案中,記憶體(例如,221、...、223、...、225)可包含但不限於隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、同步動態隨機存取記憶體(SDRAM)、相變記憶體(PCM)、磁隨機存取記憶體(MRAM)、反或(NOR)快閃記憶體、電可擦除可程式化唯讀記憶體(EEPROM)及/或一交叉點非揮發性記憶體胞陣列。一交叉點非揮發性記憶體陣列可基於一體電阻變化、結合一可堆疊交叉網格資料存取陣列執行位元儲存。另外,與許多基於快閃之記憶體相反,交叉點非揮發性記憶體可執行一就地寫入操作,其中可在先前未擦除一非揮發性記憶體胞之情況下程式化該非揮發性記憶體胞。此外,記憶體裝置之記憶體胞可被分組為可指代用於儲存資料之記憶體裝置之一單位的記憶體頁或資料區塊。
一記憶體子系統(例如,205或209)可具有一控制器(例如,227或229),該控制器與記憶體(例如,221、...、223、...、225)通信以回應於來自處理裝置118及/或記憶體管理單元(MMU)213之請求、命令或指
令而執行諸如在記憶體(例如,221、...、223、...、225)中讀取資料、寫入資料或擦除資料之操作及其他此等操作。
控制器227可經由互連207及/或網路219與儲存裝置(例如,209及/或114)之控制器通信,以引起儲存裝置之控制器執行諸如在各自儲存裝置中之記憶體(例如,223、...、225)中讀取資料、寫入資料或擦除資料之操作及其他操作。
控制器(例如,227或229)可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體或其等之一組合。控制器(例如,227或229)可為一微控制器、專用邏輯電路(例如,一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)等)或另一適合處理器。控制器(例如,227或229)可包含經組態以執行儲存於本地記憶體中之指令之一或多個處理器(處理裝置)。
控制器(例如,227或229)之本地記憶體可包含一嵌入式記憶體,該嵌入式記憶體經組態以儲存用於執行控制記憶體子系統(例如,205或209)之操作(包含處置記憶體子系統(例如,205或209)與處理裝置118/MMU 213之間之通信及下文更詳細描述之其他功能)之各種程序、操作、邏輯流程及常式的指令。控制器(例如,227或229)之本地記憶體119可包含用於儲存微程式碼之唯讀記憶體(ROM)及/或儲存例如記憶體指針、經提取資料等之記憶體暫存器。
雖然圖2中之例示性記憶體子系統(例如,205及209)已被繪示為包含控制器(例如,227及229),但在本發明之另一實施例中,一記憶體子系統(例如,205或209)可不包含一控制器(例如,227或229),且可代替性地依賴於外部控制(例如,其由MMU 213、或由與記憶體子系統
(例如,205或209)分離之一處理器或控制器提供)。
一般而言,控制器(例如,227或229)可根據用於通信通道(例如,203或207)之一標準通信協定自處理裝置118或MMU 213接收命令、請求或指令,且可遵循該標準協定將命令、請求或指令轉換成記憶體子系統(例如,205或209)內之詳細指令或適當命令,以達成對記憶體(例如,221、...、223、...、225)之所要存取。例如,控制器(例如,227或229)可負責與記憶體(例如,221、...、223、...、225)相關聯之操作,諸如損耗均衡操作、廢棄項目收集操作、錯誤偵測及錯誤校正碼(ECC)操作、加密操作、快取操作及一邏輯區塊位址與一實體區塊位址之間之位址轉譯。控制器(例如,227或229)可進一步包含用於經由實體主機介面與處理裝置118通信之主機介面電路。主機介面電路可將自處理裝置118接收之命令轉換成用於存取記憶體裝置(例如,221、...、223、...、225)之命令指令以及將與記憶體裝置(例如,221、...、223、...、225)相關聯之回應轉換成用於處理裝置118之資訊。
記憶體子系統(例如,205或209)亦可包含未繪示之額外電路或組件。在一些實施方案中,記憶體子系統(例如,205或209)可包含一快取區或緩衝器(例如,DRAM)及可自控制器(例如,227或229)或MMU 213接收一位址且解碼該位址以存取記憶體(例如,221、...、223、...、225)的位址電路(例如,一列解碼器及一行解碼器)。
在一項實例中,互連207或記憶體匯流排203具有用於對記憶體子系統(例如,209或205)提供電力及/或經由一預定協定與記憶體子系統(例如,209或205)通信之一或多個連接器;且記憶體子系統(例如,209或205)具有用於自處理裝置118接收電力、資料及命令之一或多個連
接器。例如,互連207上之連接器與一記憶體子系統(例如,209)上之連接器之間之連接可利用一PCIe匯流排或一SATA匯流排。
在一些例項中,可至少部分在主機系統120中實施資料串流隔離器113。
圖3繪示資料串流隔離之一實例。例如,可在圖1或圖2之一電腦系統中實施資料串流隔離。
在圖3中,主機系統120與一記憶體模組205之資料串流隔離器113之間的通信包含用於不同特性之資料存取231之訊息。資料串流隔離器113可存取不同記憶體(例如,221、223、225)層。
例如,資料串流隔離器113可視情況將一資料請求231中涉及之資料放置至記憶體模組205中之A型記憶體221、記憶體模組205中之B型記憶體223、一儲存裝置209中經由一互連207連接至記憶體模組205之記憶體及/或遠程裝置114中經由一網路219連接至記憶體模組205之記憶體。
例如,A型記憶體221可為具有高於B型記憶體223之一效能位準之一記憶體層;且B型記憶體223可為具有高於C型記憶體225之一效能位準之一記憶體層。
例如,可在記憶體模組205中使用DRAM及/或交叉點記憶體實施A型記憶體221;可在記憶體模組205或由記憶體模組205控制之一儲存裝置209中使用SLC快閃記憶體實施B型記憶體223;且可在儲存裝置209及/或遠程裝置114中使用TLC或QLC快閃記憶體實施C型記憶體。
資料串流隔離器113可基於資料之使用頻率將資料分離成群組。例如,可將最頻繁使用之資料群組放置於A型記憶體221中;可將
不太頻繁使用之資料群組放置於B型記憶體223中;且可將不頻繁使用之資料群組放置於C型記憶體225中。資料使用頻率可基於一過去時段中之資料存取231及/或基於一後續時段內之資料存取之預測來量測。可將最頻繁使用之資料群組分類為熱資料;可將不太頻繁使用之資料群組分類為暖資料;且可將不頻繁使用之資料群組分類為冷資料。一般而言,可基於對應記憶體層上之資料放置之使用頻率對三個以上或三個以下資料群組進行分類。
當資料使用頻率改變時,資料串流隔離器113可相應地調整資料放置。例如,當熱資料冷卻(cool down)而變暖時,可透過循序寫入操作將該資料自A型記憶體221移動至B型記憶體223;且可直接由B型記憶體223服務不太頻繁存取之暖資料,直至其進一步冷卻為冷資料或再次升溫(heat up)為熱資料。類似地,當資料變冷時可將資料自B型記憶體223移動至C型記憶體225,或當資料變暖時可將資料自C型記憶體225移動至B型記憶體223。
在一些例項中,B型記憶體223組態為C型記憶體225之快取區或緩衝器;且A型記憶體221組態為B型記憶體223之快取區或緩衝器。
資料串流隔離器113不僅基於使用頻率管理資料放置,而且將資料存取231之特定串流直接引導至較低層記憶體(例如,223或225)。
例如,當主機120將資料循序寫入至一組邏輯位址時,循序寫入可作為一串流引導至C型記憶體225而不會使主機系統120之效能降級。在一些例項中,當主機120以高於C型記憶體225可直接完成之一速率
發送寫入請求時,資料串流隔離器113可使用A型記憶體221之一部分作為用於至C型記憶體225之寫入串流之一緩衝器;且在將循序串流寫入至C型記憶體225之時段期間,此等寫入操作可能未被計數為使用活動以增大各自資料之使用頻率。
例如,當主機120將資料隨機寫入至一組位址時,隨機寫入可作為一串流引導至B型記憶體223而不會使主機系統120之效能降級。在需要時,資料串流隔離器113亦可使用A型記憶體221之一部分作為用於至B型記憶體223之隨機寫入串流之一緩衝器。在一些例項中,可將隨機寫入引導至C型記憶體225,特別是在使用A型記憶體221緩衝串流時。然而,隨機寫入可能使C型記憶體225處理其他操作(諸如讀取及/或循序寫入)時之效能降級且具有非期望效應,諸如由隨機寫入造成之寫入放大、由重複寫入造成之縮短的壽命、寫入/擦除操作延遲/阻塞讀取操作等。將隨機寫入串流引導至B型記憶體223或A型記憶體221(取決於寫入頻率)可減少或消除至少一些非期望效應。在將隨機寫入提交至B型記憶體223或A型記憶體221中之後,(例如,當資料變冷時)可經由循序寫入將資料複製至C型記憶體225。因此,資料串流隔離器113可將最初提交至B型記憶體223(或A型記憶體221)之隨機寫入轉換及/或減少成引導至C型記憶體225之一循序寫入串流。
一般而言,處理裝置118可執行一或多個作業系統以提供服務,包含加速記憶體存取,其中使用一分頁技術及/或一記憶體映射介面經由電腦系統中之記憶體之一部分存取電腦系統中之記憶體之另一部分,如下文進一步論述。
圖4展示具有一資料串流隔離器113之一系統。例如,可在
圖1或圖2之一電腦系統中實施圖4之系統。
圖4之系統包含可在圖1或圖2之電腦系統之處理裝置118中運行的一主機作業系統241。主機作業系統241包含使用記憶體子系統(諸如記憶體模組205、儲存裝置209及/或遠程裝置114)之記憶體(例如,221、...、223、...、225)提供記憶體服務之一或多個裝置驅動。
主機作業系統241包含佈建一虛擬機249之一超管理器245。虛擬機249具有經由主機作業系統241使用圖1或圖2之計算系統之硬體提供之資源及服務實施的虛擬硬體。例如,超管理器245可使用記憶體子系統(諸如記憶體模組205及/或儲存裝置209)之記憶體(例如,221、...、223、...、225)之一部分佈建虛擬記憶體作為虛擬機249之部分。
虛擬機249容許一客戶作業系統243以如同作業系統243在具有與虛擬機中所佈建相同或類似之硬體組的一實體計算機器上運行之一方式將資源及/或服務提供至運行於客戶作業系統243上之應用程式(例如,251、...、253)。超管理器245管理虛擬機中所佈建之虛擬硬體與由主機作業系統241管理之計算系統中之硬體服務之間的映射。
圖4繪示其中藉由超管理器245佈建一虛擬機249之一例項。一般而言,超管理器245可佈建可運行相同客戶作業系統243或不同客戶作業系統(例如,243)之複數個虛擬機(例如,249)。可指派不同使用者及/或應用程式集以使用不同虛擬機。
在一些例項中,主機作業系統241專用於提供用於佈建虛擬機之服務且不運行其他應用程式。或者,主機作業系統241可提供額外服務以支援其他應用程式,諸如應用程式(例如,251、...、253)。
在圖4中,超管理器245經組態以使用單根I/O虛擬化來組織不同特性/屬性之資料串流。例如,記憶體模組205具有可實施複數個虛擬功能(例如,247)之一實體功能246。一虛擬功能247經由實體功能246提供記憶體模組205之服務。超管理器245分配且保留虛擬功能247以供一特定虛擬機249、一特定應用程式(例如,251或253)、一特定使用者帳戶等進行記憶體存取。因此,用於存取記憶體模組205之虛擬功能247之識別可用於推斷資料存取之資料使用資訊,諸如虛擬機249、應用程式251及/或相關聯於及/或負責使用虛擬功能247進行之資料存取之使用者帳戶的識別碼。在機器學習時,可在資料串流隔離器113中使用此資訊來預測資料工作負荷及/或移動以且進行即時預測。
例如,可訓練資料串流隔離器113以在實際請求一較慢記憶體中之一資料項以供虛擬機249、運行於虛擬機中之應用程式251及/或操作應用程式251之一使用者帳戶使用之前預測資料項之使用且將資料項載入至一較快記憶體中。該預測藉由在使用資料項之一請求到達記憶體模組205之前將該項載入、傳送及/或快取至較快記憶體中而減少請求使用該項與該項在較快記憶體中可用之間的時間,此加速頁之資料存取。
較佳地,在由一資料串流隔離器113控制之一相同記憶體子系統(諸如記憶體模組205、連接至記憶體模組205之儲存裝置209及/或連接至記憶體模組205之遠程裝置114之一組合)內執行預測資料移動。例如,可執行預測資料移動以回應於來自資料串流隔離器113之一或多個命令、請求或指令而在記憶體模組205中之一控制器227之控制下在記憶體模組205中之較慢記憶體223與記憶體模組205中之較快記憶體221之間複製資料。例如,可執行預測資料移動以在記憶體模組205與儲存裝置209
之間或在記憶體模組205與遠程裝置114之間複製資料。
在一項實施例中,一控制器227經組態以實施訊息傳遞介面(MPI)且具有可變長度傳訊能力。傳訊能力容許控制器227與儲存裝置209及/或遠程裝置114通信以在無來自主機系統120之參與之情況下引導資料串流。可在於2018年8月3日申請且標題為「Memory Access Communications through Message Passing Interface Implemented in Memory Systems」之美國專利申請案序號16/054,890中找到關於傳訊能力之一些細節及實例。
在一項實施例中,超管理器245不僅請求裝置驅動程式存取一記憶體子系統(例如,記憶體模組205或儲存裝置209)中之一記憶體(例如,221、...、223、...或225),而且對裝置驅動程式提供資訊,該資訊可用於預測記憶體(例如,221、...、223、...或225)中之哪些資料項可能在一後續時段中使用及記憶體(例如,221、...、223、...或225)中之哪些資料項不太可能在後續時段中使用。可至少部分經由使用與特定資料使用屬性(諸如虛擬機249、應用程式251、使用者帳戶等)預先關聯之虛擬功能(例如,247)提供資訊。
例如,可能使用之一頁可被稱為一熱頁;且不太可能使用之一頁可被稱為一冷頁。在後續時段中使用一頁之可能性可稱為頁溫度。資料串流隔離器113使用由超管理器245提供/識別之資訊來預測頁溫度、將冷頁自較快記憶體移動至較慢記憶體,且將熱頁自較慢記憶體移動至較快記憶體以最佳化記憶體(例如,221、...、223、...或225)中之頁之分佈且加速資料存取。
由超管理器245提供且由資料串流隔離器113用來進行預測
之資訊的實例包含:在一先前時段中使用之頁之序列、將頁自較慢記憶體載入至較快記憶體之請求之例項、頁之內容屬性、頁之所有權屬性、頁之使用者或應用程式之識別、是否在一虛擬機及/或一使用者帳戶中以一循序模式存取頁之一指示、頁存取是否處於一穩態之一指示、所使用之一頁是否與一巨型頁相關聯之一指示、資料區塊與物件之間之映射等。
圖5繪示具有一預測模型265之一資料串流隔離器113之一實施方案。
在圖5中,資料串流隔離器113包含一快取控制器273及一工作負荷辨識器263。工作負荷辨識器263包含可使用一人工神經網路實施之一預測模型265。
快取控制器273處理來自主機系統120之資料存取請求271。快取控制器273監控相對於一較低效能記憶體用作一快取區之一較高效能記憶體、分析快取區之使用、最佳化快取區之使用且管理快取區之使用。可在快取控制器273中實施習知快取技術。
回應於資料存取請求271,快取控制器273判定在請求271之時由請求271設為目標之資料是否在較高效能記憶體中。若如此,則快取控制器273將對應資料存取請求271計數為快取命中;且否則,快取控制器273將對應資料存取請求271計數為快取未中。因此,快取控制器273可在資料存取請求271之時產生用於資料分佈之快取命中率275之量測。
視情況,快取控制器273可直接由較低效能記憶體服務資料存取請求271之一部分,而未將對應資料快取/載入至較高效能記憶體中。
使用快取控制器273之快取策略可用於識別由快取控制器
273實施之資料移動277。
在用於訓練預測模型265之計算系統之操作的一初始時段內收集對應於資料存取請求271之資料使用資訊261。例如,可使用一監督式機器學習技術來訓練預測模型265之人工神經網路以最小化由快取控制器273回應於資料存取請求271而實施之資料移動277與使用預測模型265使用對應於資料存取請求271之資料使用資訊261預測的資料移動269之間之差異。可在另一計算裝置上離線地執行機器學習以建立初始預測模型265。
隨後,可在工作負荷辨識器263中使用預測模組265來基於即時資料使用資訊261及即時資料存取請求271即時預測資料移動269。工作負荷辨識器263指示快取控制器273執行預測資料量測,此可引起快取命中率275之變化。使用一混合加強機器學習技術即時調整及/或訓練預測模型265以持續提高快取命中率275。因此,預測模型265可自動調適至計算系統之當前工作負荷且實施預測資料移動269以達成高於單獨經由快取控制器273可達成之快取命中率的一快取命中率275。
較佳地,由工作負荷辨識器263進行之預測至少部分基於一區塊至物件映射267。針對資料使用資訊261之一統計分析,資料串流隔離器113可識別資料區塊當中之潛在關係。例如,一些資料區塊表示一應用程式中之一相同資料物件之部分;在一起存取一資料物件之部分;一些資料物件具有以一特定順序存取之一模式;在於一虛擬機上運行一應用程式之一使用者帳戶中存取一個資料物件可具有導致存取另一資料物件之一高可能性。區塊至物件映射267識別改良工作負荷辨識器263之預測準確度之關係。
圖6展示經由資料串流隔離加速資料存取之一方法。圖6之方法。圖6之方法可由處理邏輯執行,該處理邏輯可包含硬體(例如,處理裝置、電路、專用邏輯、可程式化邏輯、微程式碼、一裝置之硬體、積體電路等)、軟體(例如,運行或執行於一處理裝置上之指令)或其等之一組合。在一些實施例中,圖6之方法至少部分由圖1、圖2、圖3、圖4或圖5之資料串流隔離器113執行。儘管以一特定序列或順序展示,然除非另有指定,否則可修改程序之順序。因此,所繪示實施例應僅被理解為實例,且所繪示程序可依一不同順序執行,且一些程序可並行執行。另外,在各項實施例中,可省略一或多個程序。因此,並非每項實施例皆需要全部程序。其他程序流程亦係可能的。
例如,可在圖1或圖2之一計算系統中運用圖4之一主機作業系統241及圖5之一預測模型265來實施圖6之方法。例如,資料串流隔離器113可至少部分經由圖5之快取控制器273及工作負荷辨識器263及/或圖4之虛擬功能247實施。
在方塊301,一資料串流隔離器113自一處理裝置118接收用於具有多個記憶體組件(例如,圖1中之109A、...、109N;或圖2中之221、...、223、...、225)層之一記憶體子系統110之資料存取請求231。
例如,不同記憶體層可包含一頂層(例如,221)、一中間層(例如,223)及一底層(例如,225)。可使用動態隨機存取記憶體(DRAM)及/或交叉點記憶體實施頂層(例如,221)。在一些例項中,具有一能量儲存單元(例如,一電容器及/或一電池)之DRAM及交叉點記憶體之一組合可支援一電力安全常式之實施方案,其中回應於系統電力之意外損失,能量儲存單元中可用之電力可用於在一緊急關機程序中將DRAM中之資料儲
存至交叉點記憶體中,使得不會歸因於系統電力之意外損失而破壞或丟失DRAM中之資料。因此,該組合具有DRAM之存取速度及交叉點記憶體之非揮發特性之優點。
例如,可使用單位階胞(SLC)快閃記憶體實施一中間層(例如,223);且可使用三位階胞(TLC)快閃記憶體或四位階胞(QLC)快閃記憶體實施一底層(例如,225)。
在另一實例中,使用一揮發性隨機存取記憶體(例如,DRAM或SRAM)實施頂層(例如,221);使用交叉點記憶體實施中間層(例如,223);且使用快閃記憶體實施底層(例如,225)。
例如,頂層記憶體(例如,221)可組態於具有一控制器227之一記憶體模組205中;中間層記憶體(例如,223)可組態於一或多個儲存裝置209中,該一或多個儲存裝置209具有連接至記憶體模組205之控制器227而不經過主機系統120之其等各別控制器229;且底層記憶體(例如,225)可組態於一或多個進一步儲存裝置209中,該一或多個進一步儲存裝置209具有亦連接至記憶體模組205之控制器227而不經過主機系統120之其等各別控制器229。
例如,頂層記憶體(例如,221)可組態於具有一控制器227之一記憶體模組205中;中間層記憶體(例如,223)可組態於一或多個儲存裝置209中,該一或多個儲存裝置209具有連接至記憶體模組205之控制器227而不經過主機系統120之其等各別控制器229;且底層記憶體(例如,225)可組態於一或多個遠程裝置114中,該一或多個遠程裝置114具有經由一電腦網路219連接至記憶體模組205之控制器227之其等各別控制器。
在方塊303,資料串流隔離器113根據資料存取請求231及
該等請求之存取特性產生多個資料存取串流(例如,233至238)。
例如,資料存取串流之特性可基於資料存取串流中之資料之存取頻率位準且基於資料存取串流中之位址之隨機性位準。資料串流隔離器113可經組態以基於適於各自層之資料存取串流之識別判定不同層當中之資料放置。
例如,可將一第一串流(例如,235)識別為具有高於一臨限值之一使用頻率位準(例如,在一新近時段中或預測在一後續時段內);且第一串流中之位址具有一隨機或非循序序列。此一第一串流之資料適於放置於頂層(例如,221)中。
例如,可將一第二串流(例如,233)識別為具有用於寫入操作之循序位址;且此一第二串流之資料適於放置於底層(例如,225)中。
例如,可將一第三串流(例如,234)識別為具有低於臨限值之一使用頻率位準(例如,在一新近時段中或預測在一後續時段內);且第三串流中之位址看似具有一隨機或非循序序列。此一第三串流之資料適於放置於中間層(例如,223)中。
在方塊305,資料串流隔離器113匹配資料存取串流(例如,233至238)之特性與不同記憶體組件層之特性。
在方塊307,資料串流隔離器113基於匹配資料存取串流(例如,233至238)之特性與不同記憶體組件層之特性而將資料存取串流引導至不同記憶體組件層。
例如,資料串流隔離器113可經組態以將具有高使用頻率及非循序寫入之一資料串流235引導至頂層(例如,221),將一循序寫入串流233引導至底層(例如,225),且將具有非循序、非高頻寫入之一資料串
流234引導至中間層(例如,223)。
視情況,資料串流隔離器113可指示記憶體模組205之控制器227在頂層(例如,221)中緩衝引導至中間層或底層之串流(例如,234或233)。
視情況,可至少部分基於具有一人工神經網路之一預測模型265預測一串流中使用之資料之頻率位準,如結合圖5論述。
視情況,資料串流隔離器113可在一個層中緩衝引導至另一層之一串流,該另一層具有低於用於緩衝串流之該層之一效能位準。
視情況,資料串流隔離器113可藉由在具有高於一目標層(例如,223或225)之一效能位準之一層(例如,221)中合併及串列化另一串流(例如,235)之寫入操作而產生用於該目標層(例如,223或225)之一目標串流(例如,236、237或238)。效能位準可為重複寫入/擦除操作中之存取速度及/或耐久性。
在一些實施方案中,處理裝置118與一記憶體子系統之間之一通信通道包含一電腦網路,諸如一區域網路、一無線區域網路、一無線個人區域網路、一蜂巢式通信網路、一寬頻高速始終連接之無線通信連接(例如,一當前或下一代行動網路鏈路);且處理裝置118及記憶體子系統可經組態以使用類似於NVMe協定中之資料儲存管理及使用命令的資料儲存管理及使用命令來彼此通信。
一記憶體子系統一般可具有非揮發性儲存媒體。非揮發性儲存媒體之實例包含形成於一積體電路中之記憶體胞及塗佈於硬磁碟上之磁性材料。非揮發性儲存媒體可在未消耗電力之情況下維持儲存於其中之資料/資訊。記憶體胞可使用各種記憶體/儲存技術實施,諸如NAND邏輯
閘、NOR邏輯閘、相變記憶體(PCM)、磁性記憶體(MRAM)、電阻式隨機存取記憶體、交叉點儲存及記憶體裝置(例如,3D XPoint記憶體)。一交叉點記憶體裝置使用無電晶體之記憶體元件,該等記憶體元件之各者具有在一起堆疊為一行之一記憶體胞及一選擇器。記憶體元件行經由兩層垂直線敷設(lay of wires)連接,其中一層敷設在記憶體元件行上方且另一層敷設在記憶體元件行下方。可在兩個層之各者上之一條線的一交叉點處個別地選擇各記憶體元件。交叉點記憶體裝置係快速的且非揮發性的,且可用作用於處理及儲存之一統一記憶體集區。
一記憶體子系統(例如,205或209)之控制器(例如,227或229)可運行韌體以回應於來自處理裝置118之通信而執行操作。韌體一般為提供對工程計算裝置之控制、監控及資料操縱的一類型之電腦程式。
涉及控制器227之操作之一些實施例可使用由控制器227執行之電腦指令(諸如控制器227之韌體)來實施。在一些例項中,硬體電路可用於實施至少一些功能。韌體最初可儲存於非揮發性儲存媒體或另一非揮發性裝置中,且載入至揮發性DRAM及/或處理器內快取記憶體中以由控制器227執行。
一非暫時性電腦儲存媒體可用於儲存一記憶體子系統(例如,209或205)之韌體之指令及/或一般而言作業系統(例如,241、243)以及特定言之裝置驅動程式及超管理器245之指令。當藉由控制器227及/或處理裝置118執行指令時,指令引起控制器227及/或處理裝置118執行上文論述之一方法。
圖7繪示一電腦系統600之一例示性機器,可在電腦系統600內執行用於引起該機器執行本文中論述之方法論之任一或多者的一指
令集。在一些實施例中,電腦系統600可對應於包含、耦合至或利用一記憶體子系統(例如,圖1之記憶體子系統110)之一主機系統(例如,圖1之主機系統120),或其可用於執行一資料串流隔離器113之操作(例如,以執行指令而執行對應於關於圖1至圖6描述之資料串流隔離器113之操作)。在替代實施例中,機器可連接(例如,連網)至一LAN、一內部網路、一外部網路及/或網際網路中之其他機器。機器可在用戶端-伺服器網路環境中以一伺服器或一用戶端機器之身份操作,在一同級間(或分佈式)網路環境中作為一同級機器,或在一雲端計算基礎設施或環境中作為一伺服器或一用戶端機器。
機器可為一個人電腦(PC)、一平板PC、一機上盒(STB)、一個人數位助理(PDA)、一蜂巢式電話、一網路設備、一伺服器、一網路路由器、一交換機或橋接器,或能夠執行指定待由該機器採取之動作之一指令集(循序地或以其他方式)的任何機器。此外,雖然繪示一單一機器,但術語「機器」亦應被視為包含個別地或聯合地執行一(或多個)指令集以執行本文中論述之方法論之任一或多者的任何機器集合。
例示性電腦系統600包含經由一匯流排630(其可包含多個匯流排)彼此通信之一處理裝置602、一主記憶體604(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM)(諸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、靜態隨機存取記憶體(SRAM)等)及一資料儲存系統618。
處理裝置602表示一或多個通用處理裝置,諸如一微處理器、一中央處理單元或類似者。更特定言之,處理裝置可為一複雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、極長指令字
(VLIW)微處理器、或實施其他指令集之一處理器、或實施一指令集組合之處理器。處理裝置602亦可為一或多個專用處理裝置,諸如一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一數位信號處理器(DSP)、網路處理器或類似者。處理裝置602經組態以執行用於執行本文中論述之操作及步驟之指令626。電腦系統600可進一步包含一網路介面裝置608以經由網路620通信。
資料儲存系統618可包含一機器可讀儲存媒體624(其亦被稱為一電腦可讀媒體),一或多個指令626集或體現本文中描述之方法論或功能之任一或多者的軟體儲存於機器可讀儲存媒體624上。指令626亦可在其藉由電腦系統600執行期間完全或至少部分駐留在主記憶體604及/或處理裝置602內,主記憶體604及處理裝置602亦構成機器可讀儲存媒體。機器可讀儲存媒體624、資料儲存系統618及/或主記憶體604可對應於圖1之記憶體子系統110。
在一項實施例中,指令626包含用於實施對應於一資料串流隔離器113(例如,關於圖1至圖6描述之資料串流隔離器113)之功能性的指令。雖然機器可讀儲存媒體624在一實例實施例中被展示為一單一媒體,但術語「機器可讀儲存媒體」應被視為包含儲存一或多個指令集之一單一媒體或多個媒體。術語「機器可讀儲存媒體」亦應被視為包含能夠儲存或編碼一指令集以由機器執行且引起機器執行本發明之方法論之任一或多者的任何媒體。因此,術語「機器可讀儲存媒體」應被視為包含但不限於固態記憶體、光學媒體及磁性媒體。
已依據對一電腦記憶體內之資料位元之操作的演算法及符號表示呈現前文[實施方式]之一些部分。此等演算法描述及表示係由熟習
資料處理技術者使用以最有效地將其等工作實質傳達給其他熟習此項技術者之方式。在此且一般而言,一演算法被認為是導致一所要結果之一自我一致操作序列。操作係需要實體操縱實體量之操作。通常但非必要,此等量採取能夠被儲存、組合、比較及以其他方式操縱之電信號或磁信號之形式。主要出於常用之原因,已證實將此等信號稱為位元、值、元件、符號、字元、項、數字或類似者等有時是方便的。
然而,應記住,全部此等及類似術語應與適當實體量相關聯且僅為應用於此等量之方便標籤。本發明可涉及一電腦系統或類似電子計算裝置將表示為電腦系統之暫存器及記憶體內之實體(電子)量的資料操縱及變換成類似地表示為電腦系統記憶體或暫存器或其他此等資訊儲存系統內之實體量的其他資料之動作及程序。
本發明亦係關於一種用於執行本文中之操作之設備。此設備可專門建構用於所欲目的,或其可包含藉由儲存於電腦中之一電腦程式選擇性地啟動或重新組態之一通用電腦。此一電腦程式可儲存於一電腦可讀儲存媒體中,諸如但不限於任何類型之磁碟,包含軟碟、光碟、CD-ROM及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁卡或光卡、或適於儲存電子指令之任何類型之媒體,其等各自耦合至一電腦系統匯流排。
本文中呈現之演算法及顯示器並非固有地與任何特定電腦或其他設備相關。各種通用系統可搭配根據本文中之教示之程式使用,或可證實建構一更專業設備以執行方法係方便的。多種此等系統之結構將如下文描述中所闡述般出現。另外,未參考任何特定程式設計語言描述本發明。將明白,可使用多種程式設計語言來實施如本文中描述之本發明之教
示。
本發明可被提供為一電腦程式產品或軟體,其可包含其上儲存有指令之一機器可讀媒體,該等指令可用於程式化一電腦系統(或其他電子裝置)以執行根據本發明之一程序。一機器可讀媒體包含用於以一機器(例如,一電腦)可讀之一形式儲存資訊之任何機構。在一些實施例中,一機器可讀(例如,電腦可讀)媒體包含一機器(例如,一電腦)可讀儲存媒體,諸如一唯讀記憶體(「ROM」)、隨機存取記憶體(「RAM」)、磁碟儲存媒體、光學儲存媒體、快閃記憶體組件等。
在本描述中,各種功能及操作被描述為由電腦指令執行或引起以簡化描述。然而,熟習此項技術者將認知,此等表達意謂功能因藉由一或多個控制器或處理器(諸如一微處理器)執行電腦指令而產生。替代地或組合地,可使用具有或不具有軟體指令之專用電路(諸如使用特定應用積體電路(ASIC)或場可程式化閘陣列(FPGA))來實施功能及操作。可使用不具有軟體指令之硬接線電路或結合軟體指令來實施實施例。因此,技術既不限於硬體電路及軟體之任何特定組合亦不限於藉由資料處理系統執行之指令之任何特定來源。
在前述說明書中,已參考本發明之特定實例實施例描述本發明之實施例。將顯而易見的是,可在不脫離如下文發明申請專利範圍中所闡述之本發明之實施例之更廣泛精神及範疇之情況下對本發明之實施例進行各種修改。因此,本說明書及圖式應被視為闡釋性意義而非限制性意義。
113:資料串流隔離器
114:遠程裝置/儲存裝置
205:記憶體模組
209:儲存裝置/記憶體子系統
241:主機作業系統
243:客戶作業系統
245:超管理器
246:實體功能
247:虛擬功能
249:虛擬機
251:應用程式
253:應用程式
Claims (13)
- 一種計算系統,其包括:不同層(tiers)之複數個記憶體組件;及一處理裝置,其可操作地耦合至該複數個記憶體組件以至少:接收多個資料存取請求;根據該等資料存取請求及該等資料存取請求之存取特性產生複數個資料存取串流;匹配該等資料存取串流之特性與該等記憶體組件之該等不同層之特性;及基於匹配該等資料存取串流之該等特性與該等記憶體組件之該等不同層之該等特性而將該複數個資料存取串流引導(direct)至該等記憶體組件之該等不同層。
- 如請求項1之計算系統,其中該等不同層之一者包括動態隨機存取記憶體(DRAM)、交叉點記憶體、單位階胞(SLC)快閃記憶體、三位階胞(TLC)快閃記憶體或四位階胞(QLC)快閃記憶體,或其等之任何組合。
- 如請求項1之計算系統,其中該等資料存取串流之該等特性係基於該等資料存取串流中之資料之頻率位準及該等資料存取串流中之位址之隨機性位準;且該處理裝置經組態以基於該等資料存取串流之識別判定該等不同層當中之資料放置。
- 如請求項3之計算系統,其中該等資料存取串流包含具有高於一臨限值之一頻率位準且具有隨機位址之一第一串流;且該處理裝置經組態以將該第一串流引導至該等不同層之一頂層。
- 如請求項4之計算系統,其中該等資料存取串流包含具有用於寫入操作之循序位址之一第二串流;且該處理裝置經組態以將該第二串流引導至該等不同層之一底層。
- 如請求項5之計算系統,其中該處理裝置經組態以在將該第二串流引導至該底層時在該頂層上緩衝該第二串流。
- 如請求項5之計算系統,其中該等資料存取串流包含具有低於該臨限值之一頻率位準且具有隨機位址之一第三串流;且該處理裝置經組態以將該第三串流引導至該等不同層之一中間層。
- 如請求項3之計算系統,其中該處理裝置經組態以基於具有一人工神經網路之一預測模型預測該等頻率位準。
- 一種資料存取方法,其包括:在具有不同層之複數個記憶體組件之一記憶體子系統之一處理裝置中接收多個資料存取請求;藉由該處理裝置根據該等資料存取請求及該等資料存取請求之存取特性產生複數個資料存取串流; 藉由該處理裝置匹配該等資料存取串流之特性與該等記憶體組件之該等不同層之特性;及藉由該處理裝置基於匹配該等資料存取串流之該等特性與該等記憶體組件之該等不同層之該等特性而將該複數個資料存取串流引導至該等記憶體組件之該等不同層。
- 如請求項9之方法,其中該等資料存取串流之該等特性係基於該等資料存取串流中之資料之頻率位準及該等資料存取串流中之位址之隨機性位準;且該方法進一步包括:藉由該處理裝置基於該等資料存取串流之識別判定該等不同層當中之資料放置。
- 如請求項10之方法,其進一步包括:基於具有高於一臨限值之一使用頻率位準之一第一串流中的資料且基於用於將該資料定址為在一記憶體空間中非循序的位址以識別該等資料存取串流當中之該第一串流,其中將該第一串流引導至該等不同層當中之一頂層。
- 如請求項10之方法,其進一步包括:基於循序地寫入以定址之一第二串流中的資料而識別該等資料存取串流當中之該第二串流,其中將該第二串流引導至該等不同層當中之一底層。
- 如請求項12之方法,其進一步包括以下之至少一者:基於具有低於一臨限值之一使用頻率位準之一第三串流中的資料且基於用於將該資料定址為在一記憶體空間中非循序的位址以識別該等資料存取串流當中之該第三串流,其中將該第三串流引導至該等不同層當中之一中間層;在一第一層中緩衝引導至一第二層之一串流,該第二層具有低於該第一層之一效能位準;及藉由在具有高於一第一層之一效能位準的一第二層中合併及串列化寫入操作而產生引導至該第一層之一串流。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862626544P | 2018-02-05 | 2018-02-05 | |
US62/626,544 | 2018-02-05 | ||
US16/166,624 | 2018-10-22 | ||
US16/166,624 US20190243771A1 (en) | 2018-02-05 | 2018-10-22 | Accelerate Data Access in Memory Systems via Data Stream Segregation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201945948A TW201945948A (zh) | 2019-12-01 |
TWI727253B true TWI727253B (zh) | 2021-05-11 |
Family
ID=67475155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108103269A TWI727253B (zh) | 2018-02-05 | 2019-01-29 | 計算系統及資料存取方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20190243771A1 (zh) |
EP (1) | EP3750072A4 (zh) |
KR (1) | KR20200108358A (zh) |
CN (1) | CN111699477A (zh) |
TW (1) | TWI727253B (zh) |
WO (1) | WO2019152220A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10880401B2 (en) | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US11209998B2 (en) | 2018-06-11 | 2021-12-28 | Western Digital Technologies, Inc. | Adjustment of storage device parameters based on workload characteristics |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
US10930365B2 (en) * | 2019-02-21 | 2021-02-23 | Intel Corporation | Artificial intelligence based monitoring of solid state drives and dual in-line memory modules |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
US11194516B2 (en) | 2019-10-08 | 2021-12-07 | Micron Technology, Inc. | Media type selection |
US11119676B2 (en) * | 2019-11-08 | 2021-09-14 | International Business Machines Corporation | Using spare bits in memory systems |
US20210256349A1 (en) * | 2020-02-14 | 2021-08-19 | Micron Technology, Inc. | Optimization of quality of service of data storage devices |
US11640262B2 (en) | 2020-05-07 | 2023-05-02 | Micron Technology, Inc. | Implementing variable number of bits per cell on storage devices |
US11423058B2 (en) | 2020-09-25 | 2022-08-23 | International Business Machines Corporation | Classifying and filtering data from a data stream |
US11656979B2 (en) | 2020-12-22 | 2023-05-23 | SK Hynix Inc. | Data tiering in heterogeneous memory system |
US11829364B2 (en) | 2021-06-30 | 2023-11-28 | Amazon Technologies, Inc. | Making decisions for placing data in a multi-tenant cache |
US11635900B2 (en) * | 2021-08-27 | 2023-04-25 | Micron Technology, Inc. | Memory sub-system signature generation |
US11740831B2 (en) | 2021-11-11 | 2023-08-29 | International Business Machines Corporation | Storage optimization for event streaming for multiple consumers |
US20230315295A1 (en) * | 2022-03-30 | 2023-10-05 | Micron Technology, Inc. | Dynamic memory device management and stream prioritization based on quality of service metrics |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281230A1 (en) * | 2009-04-29 | 2010-11-04 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US8838887B1 (en) * | 2012-03-30 | 2014-09-16 | Emc Corporation | Drive partitioning for automated storage tiering |
US20150227465A1 (en) * | 2012-04-09 | 2015-08-13 | Netapp Inc. | Data storage within hybrid storage aggregate |
US20170060754A1 (en) * | 2015-08-25 | 2017-03-02 | Tarun Nakra | Capturing temporal store streams into cpu caches by dynamically varying store streaming thresholds |
US20170177486A1 (en) * | 2015-12-16 | 2017-06-22 | Western Digital Technologies, Inc. | Caching sensing device data in data storage device |
US20170364450A1 (en) * | 2015-06-02 | 2017-12-21 | ALTR Solutions, Inc. | Immutable datastore for low-latency reading and writing of large data sets |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775731B2 (en) * | 2011-03-25 | 2014-07-08 | Dell Products, L.P. | Write spike performance enhancement in hybrid storage systems |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US20130145095A1 (en) * | 2011-12-06 | 2013-06-06 | Lsi Corporation | Melthod and system for integrating the functions of a cache system with a storage tiering system |
US9984089B2 (en) | 2013-06-28 | 2018-05-29 | Vmware, Inc. | Techniques for implementing hybrid flash/HDD-based virtual disk files |
WO2015017147A1 (en) * | 2013-07-29 | 2015-02-05 | Silicon Graphics International Corp. | I/o acceleration in hybrid storage |
US20170060769A1 (en) * | 2014-05-01 | 2017-03-02 | Coho Data, Inc. | Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof |
US20150356125A1 (en) * | 2014-06-06 | 2015-12-10 | Plexistor Ltd. | Method for data placement based on a file level operation |
-
2018
- 2018-10-22 US US16/166,624 patent/US20190243771A1/en not_active Abandoned
-
2019
- 2019-01-18 EP EP19748086.6A patent/EP3750072A4/en active Pending
- 2019-01-18 KR KR1020207025354A patent/KR20200108358A/ko active IP Right Grant
- 2019-01-18 WO PCT/US2019/014205 patent/WO2019152220A1/en unknown
- 2019-01-18 CN CN201980011951.XA patent/CN111699477A/zh not_active Withdrawn
- 2019-01-29 TW TW108103269A patent/TWI727253B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281230A1 (en) * | 2009-04-29 | 2010-11-04 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US8838887B1 (en) * | 2012-03-30 | 2014-09-16 | Emc Corporation | Drive partitioning for automated storage tiering |
US20150227465A1 (en) * | 2012-04-09 | 2015-08-13 | Netapp Inc. | Data storage within hybrid storage aggregate |
US20170364450A1 (en) * | 2015-06-02 | 2017-12-21 | ALTR Solutions, Inc. | Immutable datastore for low-latency reading and writing of large data sets |
US20170060754A1 (en) * | 2015-08-25 | 2017-03-02 | Tarun Nakra | Capturing temporal store streams into cpu caches by dynamically varying store streaming thresholds |
US20170177486A1 (en) * | 2015-12-16 | 2017-06-22 | Western Digital Technologies, Inc. | Caching sensing device data in data storage device |
Also Published As
Publication number | Publication date |
---|---|
TW201945948A (zh) | 2019-12-01 |
CN111699477A (zh) | 2020-09-22 |
EP3750072A1 (en) | 2020-12-16 |
EP3750072A4 (en) | 2021-07-07 |
US20190243771A1 (en) | 2019-08-08 |
KR20200108358A (ko) | 2020-09-17 |
WO2019152220A1 (en) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI727253B (zh) | 計算系統及資料存取方法 | |
TWI711930B (zh) | 具有嵌入於積體電路記憶體封裝中之控制器之記憶體系統 | |
TWI711925B (zh) | 多層記憶體系統之預測資料協作 | |
TWI740097B (zh) | 多層記憶體系統中之遠程直接記憶體存取 | |
TWI704457B (zh) | 用以存取異質記憶體組件的記憶體虛擬化 | |
US11706317B2 (en) | Optimization of data access and communication in memory systems | |
TWI710912B (zh) | 記憶體系統及實施於記憶體系統中之方法,以及非暫時性電腦儲存媒體 | |
KR20210019576A (ko) | 메모리 액세스 가속화를 위한 예측 페이징 |