TWI679642B - 用於組態和控制非揮發性快取記憶體的系統及方法 - Google Patents

用於組態和控制非揮發性快取記憶體的系統及方法 Download PDF

Info

Publication number
TWI679642B
TWI679642B TW104129427A TW104129427A TWI679642B TW I679642 B TWI679642 B TW I679642B TW 104129427 A TW104129427 A TW 104129427A TW 104129427 A TW104129427 A TW 104129427A TW I679642 B TWI679642 B TW I679642B
Authority
TW
Taiwan
Prior art keywords
memory
cache memory
cache
volatile
command
Prior art date
Application number
TW104129427A
Other languages
English (en)
Other versions
TW201621912A (zh
Inventor
羅坦 席拉
Rotem Sela
米奇 沙庇
Miki Sapir
艾米爾 薩哈拉巴尼
Amir SHAHARABANY
哈達斯 歐辛史蓋
Hadas OSHINSKY
拉菲 亞伯拉罕
Rafi Abraham
艾拉德 巴拉姆
Elad Baram
Original Assignee
美商桑迪士克科技有限責任公司
Sandisk Technologies Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商桑迪士克科技有限責任公司, Sandisk Technologies Llc filed Critical 美商桑迪士克科技有限責任公司
Publication of TW201621912A publication Critical patent/TW201621912A/zh
Application granted granted Critical
Publication of TWI679642B publication Critical patent/TWI679642B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本發明揭示用於組態、控制及操作一非揮發性快取記憶體之系統及方法。一主機系統可對一記憶體系統進行與其非揮發性快取記憶體之記憶體系統之組態有關之輪詢。此外,該主機系統可組態該記憶體系統上之該非揮發性快取記憶體,諸如該非揮發性快取記憶體之大小及用於該非揮發性快取記憶體之程式化之類型(例如,是否根據單位階記憶體胞(SLC)或TRIM(其用於程式化該非揮發性快取記憶體中之記憶體胞)之類型而程式化該非揮發性快取記憶體)。再者,回應於用於設定該非揮發性快取記憶體之大小之來自該主機之一命令,該記憶體系統可過量供應或欠量供應該快取記憶體。此外,該主機可(諸如)藉由發送選擇性再新命令而控制該非揮發性快取記憶體之操作。

Description

用於組態和控制非揮發性快取記憶體的系統及方法 [相關申請案之參考]
本申請案主張2014年9月16日申請之美國申請案第14/487,905號之優先權,該案之全文以引用的方式併入本文中。
本申請案大體上係關於管理一系統中之資料。更具體而言,本申請案係關於組態及/或控制一記憶體器件中之非揮發性快取記憶體。
一記憶體器件可包含經組態以用於不同目的之不同儲存機構,諸如一長期儲存器及一快取記憶體。快取記憶體通常為比長期儲存器高速之一儲存器,且可用於儲存更常見存取資料。快取記憶體可為包含長期儲存器之記憶體之一保留區段,或可為與包含長期儲存器之記憶體分離之一獨立高速儲存器。一類型之快取記憶體係非揮發性快取記憶體(或NV快取記憶體),其中將永久或半永久記憶體(諸如快閃記憶體)用作為快取記憶體。
根據一態樣,揭示一種記憶體器件。該記憶體器件包含:一記憶體,其包括一非揮發性快取記憶體及一非揮發性儲存媒體;一快取記憶體程式模組,其經組態以根據快取記憶體準則而程式化該非揮發 性快取記憶體;及一儲存媒體程式模組,其經組態以根據儲存媒體準則而程式化該非揮發性儲存媒體,其中該快取記憶體準則不同於該儲存媒體準則。
根據另一態樣,揭示一種主機系統。該主機系統包含:一介面,其經組態以與一記憶體器件通信,該記憶體器件包含一非揮發性快取記憶體;及處理器電路,其與該介面通信。該處理器電路包含:一快取記憶體組態模組,其經組態以產生一組態命令來組態該記憶體器件中之該非揮發性快取記憶體;一快取記憶體控制模組,其經組態以產生一控制命令來控制該記憶體器件中之該非揮發性快取記憶體之操作;及一命令傳輸模組,其經組態以將該組態命令及該控制命令傳輸至該記憶體器件。
根據又一態樣,揭示一種記憶體器件。該記憶體器件包含:一介面,其經組態以與一主機器件通信;一非揮發性記憶體;及處理器電路,其與該介面及該非揮發性記憶體通信。該處理器電路包含:一非揮發性大小命令模組,其經組態以自該主機器件經由該介面而接收一大小命令,該大小命令指示該非揮發性快取記憶體之一大小;及一非揮發性快取記憶體分配模組,其經組態以回應於該大小命令之接收而將該非揮發性記憶體之一或多個區段分配給該非揮發性快取記憶體,其中該非揮發性記憶體之該一或多個區段不等於該大小命令中所指示之該大小。
將在檢閱以下圖式、詳細描述及申請專利範圍之後明白其他特徵及優點。另外,揭示其他實施例,且可單獨或一起組合使用實施例之各者。現將參考附圖來描述實施例。
100‧‧‧主機系統
102‧‧‧記憶體系統
104‧‧‧嵌合部件
106‧‧‧嵌合部件
108‧‧‧應用程式部分
110‧‧‧驅動程式部分
112‧‧‧處理器
114‧‧‧檔案系統
116‧‧‧快閃記憶體/記憶體晶片/非揮發性記憶體
118‧‧‧記憶體系統控制器
120‧‧‧非揮發性快取儲存器
122‧‧‧主儲存器
130‧‧‧組態觸發器
132‧‧‧非揮發性(NV)快取記憶體組態輪詢
134‧‧‧非揮發性(NV)快取記憶體組態輪詢接收器
136‧‧‧輪詢回應產生器
138‧‧‧輪詢回應傳輸器
140‧‧‧輪詢回應接收器
142‧‧‧非揮發性(NV)快取記憶體組態分析器
144‧‧‧非揮發性(NV)快取記憶體組態命令產生器
146‧‧‧非揮發性(NV)快取記憶體組態命令傳輸器
148‧‧‧非揮發性(NV)快取記憶體組態命令接收器
150‧‧‧非揮發性(NV)快取記憶體組態器
160‧‧‧非揮發性(NV)快取記憶體狀態觸發器
162‧‧‧非揮發性(NV)快取記憶體狀態輪詢
164‧‧‧非揮發性(NV)快取記憶體狀態輪詢接收器
166‧‧‧輪詢回應產生器
168‧‧‧輪詢回應傳輸器
170‧‧‧輪詢回應接收器
172‧‧‧非揮發性(NV)快取記憶體狀態分析器
174‧‧‧非揮發性(NV)快取記憶體狀態命令產生器
176‧‧‧非揮發性(NV)快取記憶體狀態命令傳輸器
178‧‧‧非揮發性(NV)快取記憶體狀態命令接收器
180‧‧‧非揮發性(NV)快取記憶體控制器
190‧‧‧嵌入式多媒體控制器(eMMC)器件
192‧‧‧嵌入式多媒體控制器(eMMC)控制器
194‧‧‧嵌入式多媒體控制器(eMMC)介面
195‧‧‧控制器揮發性快取記憶體
196‧‧‧非揮發性快取記憶體
197‧‧‧儲存媒體
200‧‧‧記憶體系統控制器晶片
202‧‧‧主機系統介面
204‧‧‧控制器
206‧‧‧計數器
208‧‧‧記憶體
210‧‧‧快取記憶體組態及操作
214‧‧‧記憶體晶片介面
220‧‧‧記憶體系統控制器晶片
222‧‧‧快閃記憶體介面
224‧‧‧處理器
226‧‧‧韌體
228‧‧‧內部資料匯流排
230‧‧‧隨機存取記憶體(RAM)/隨機存取記憶體(RAM)緩衝器
232‧‧‧時脈
234‧‧‧錯誤校正碼(ECC)模組
236‧‧‧主機介面
300‧‧‧記憶體晶片/記憶體庫
314‧‧‧行控制電路
316‧‧‧行控制電路
318‧‧‧位元線
320‧‧‧位元線
322‧‧‧字線
324‧‧‧列控制電路
326‧‧‧源極電壓控制電路
328‧‧‧源極電壓控制電路
330‧‧‧p井電壓控制電路
332‧‧‧p井電壓控制電路
334‧‧‧資料輸入/輸出電路
336‧‧‧資料輸入/輸出電路
338‧‧‧線
340‧‧‧線
342‧‧‧介面電路/介面
344‧‧‧狀態機
346‧‧‧控制線
348‧‧‧控制線
350‧‧‧控制線
352‧‧‧控制線
354‧‧‧控制線
356‧‧‧線
360‧‧‧記憶體胞陣列/平面
362‧‧‧記憶體胞陣列/平面
364‧‧‧匯流排
370‧‧‧記憶體晶片
372‧‧‧區塊1
374‧‧‧區塊2
376‧‧‧區塊N
380‧‧‧記憶體晶片
382‧‧‧區塊1
384‧‧‧區塊M
386‧‧‧記憶體晶片
388‧‧‧區塊1
391‧‧‧記憶體控制器
392‧‧‧快閃記憶體
393‧‧‧主儲存器
394‧‧‧非快閃記憶體
395‧‧‧非揮發性(NV)快取記憶體
402‧‧‧全域位元線
404‧‧‧全域位元線
406‧‧‧全域位元線
408‧‧‧全域位元線
410‧‧‧記憶體胞串
412‧‧‧記憶體胞
414‧‧‧記憶體胞串
416‧‧‧記憶體胞串
418‧‧‧記憶體胞串
420‧‧‧記憶體胞串
422‧‧‧記憶體胞串
424‧‧‧記憶體胞串
426‧‧‧電荷儲存記憶體胞
428‧‧‧電荷儲存記憶體胞
430‧‧‧電荷儲存記憶體胞
432‧‧‧電荷儲存記憶體胞
434‧‧‧選擇電晶體
436‧‧‧選擇電晶體
438‧‧‧字線/控制閘極線
440‧‧‧字線/控制閘極線
442‧‧‧字線/控制閘極線
444‧‧‧字線/控制閘極線
446‧‧‧控制閘極線
450‧‧‧控制閘極線
452‧‧‧第一區塊
454‧‧‧第二區塊
502‧‧‧記憶體胞平面
504‧‧‧記憶體胞平面
506‧‧‧記憶體胞平面
508‧‧‧記憶體胞平面
510‧‧‧區塊
512‧‧‧區塊
514‧‧‧區塊
516‧‧‧區塊
518‧‧‧元區塊
520‧‧‧第二元區塊
522‧‧‧區塊
524‧‧‧區塊
526‧‧‧區塊
528‧‧‧區塊
602‧‧‧元頁
700‧‧‧流程圖
702‧‧‧主機系統操作應用程式
704‧‧‧主機系統與記憶體系統通信
706‧‧‧主機系統組態NV快取記憶體之態樣
708‧‧‧主機系統將具有NV快取記憶體之一或多個組態態樣的命令發送至記憶體系統
720‧‧‧流程圖
722‧‧‧操作記憶體系統
724‧‧‧記憶體系統存取NV快取記憶體之組態資料
726‧‧‧記憶體系統自主機系統接收用於儲存於NV快取記憶體中之資料
728‧‧‧記憶體系統根據組態資料而將組態資料程式化至NV快取記憶體中
800‧‧‧流程圖
802‧‧‧主機系統操作應用程式
804‧‧‧主機系統決定為了效能而改變NV快取記憶體之大小
900‧‧‧流程圖
902‧‧‧記憶體系統自主機系統接收選擇性再新組態命令
904‧‧‧記憶體系統接收用於儲存於NV快取記憶體中之資料
906‧‧‧記憶體系統判定是否滿足選擇性再新命令之條件?
908‧‧‧選擇性再新命令經執行使得在再新之後,NV快取記憶體保留其容量之至少部分
920‧‧‧流程圖
922‧‧‧記憶體系統自主機系統接收用於儲存之資料
924‧‧‧記憶體系統將具有相關聯識別態樣之資料儲存於NV快取記憶體中
926‧‧‧記憶體器件自主機器件接收選擇性再新命令
928‧‧‧記憶體系統判定NV快取記憶體中之項目之任何者是否包含926中所接收之選擇性再新命令中之識別態樣?
930‧‧‧將NV快取記憶體中之資料項目寫入至主記憶體/流程圖
932‧‧‧主機系統將資料發送至記憶體系統以儲存於NV快取記憶體中
934‧‧‧主機系統接收NV快取記憶體之充滿度之一指示
936‧‧‧主機系統將選擇性再新命令發送至記憶體系統
950‧‧‧流程圖
952‧‧‧主機系統操作主機系統上之應用程式
954‧‧‧主機系統判定:為了效能,NV快取記憶體之特定量需要為可用的
956‧‧‧主機系統輪詢記憶體系統以判定NV快取記憶體之充滿度
958‧‧‧主機系統接收輪詢之回應
960‧‧‧主機系統基於NV快取記憶體之充滿度而判定NV快取記憶體是否需要經再新使得操作應用程式所需之快取記憶體之特定量係可用的?
962‧‧‧主機系統命令記憶體系統再新NV快取記憶體,使得NV快取記憶體之至少特定量係可用的
970‧‧‧流程圖
972‧‧‧主機系統操作主機系統上之應用程式
974‧‧‧主機系統判定:為了效能,NV快取記憶體之特定量需要為可用的
976‧‧‧主機系統命令記憶體系統再新NV快取記憶體,使得快取記憶體空間之至少特定量係可用的
1000‧‧‧流程圖
1002‧‧‧主機系統判定是否預取資料?
1004‧‧‧發送命令以預取儲存於主記憶體中之資料
1006‧‧‧主機系統發送命令以讀取預取資料
1050‧‧‧流程圖
1052‧‧‧記憶體系統接收命令以預取儲存於主記憶體中之資料
1054‧‧‧記憶體系統將資料自主記憶體複製至NV快取記憶體中
1056‧‧‧記憶體系統判定是否已接收命令來存取預取資料
1058‧‧‧記憶體器件自NV快取記憶體存取預取資料
1100‧‧‧流程圖
1102‧‧‧記憶體系統自主機系統接收指示NV快取記憶體之大小的命令
1104‧‧‧記憶體系統確認自主機系統接收命令
1106‧‧‧記憶體系統判定主記憶體中之未使用空間之量
1108‧‧‧記憶體系統判定是否存在足夠量之未使用空間?
1110‧‧‧記憶體系統將等於主機系統命令中所請求之大小的記憶體分配給NV快取記憶體
1112‧‧‧記憶體系統將大於主機系統命令中所請求之大小的記憶體分配給NV快取記憶體
1114‧‧‧記憶體系統鑑於分配給NV快取記憶體之量而判定總儲存量以將匯出容量發送至主機系統
1116‧‧‧將匯出容量發送至主機系統
1130‧‧‧流程圖
1132‧‧‧決定將小於主機系統命令中所請求之大小的記憶體分配給NV快取記憶體
1134‧‧‧記憶體系統基於分配給NV快取記憶體之欠量供應量而判定匯出容量
1136‧‧‧記憶體系統修改用於控制NV快取記憶體之至少一控制參數
1160‧‧‧流程圖
1162‧‧‧判定是否應減小NV快取記憶體之大小
1164‧‧‧判定NV快取記憶體之大小是否小於由主機系統命令之大小
1166‧‧‧修改至少一控制參數
可參考以下圖式及描述來更佳地理解系統。在圖中,相同元件符號指定所有不同視圖中之對應部件。
圖1A繪示與一記憶體系統連接之一主機系統。
圖1B繪示圖1A之主機系統及記憶體系統之另一方塊圖。
圖1C繪示圖1A之主機系統及記憶體系統之又一方塊圖。
圖1D繪示主機系統及一eMMC記憶體器件之一方塊圖。
圖2A繪示記憶體系統控制器晶片,其係圖1A中所描繪之記憶體系統控制器之一第一實例。
圖2B繪示記憶體系統控制器晶片,其係圖1A中所描繪之記憶體系統控制器之一第二實例。
圖3A繪示(諸如)用於圖1A所描繪之記憶體中之一記憶體晶片之一方塊圖之一實例。
圖3B係一記憶體晶片中之NV快取記憶體及主儲存器之一實例。
圖3C係多個記憶體晶片中之NV快取記憶體及主儲存器之另一實例。
圖3D係各自類型之記憶體中之NV快取記憶體及主儲存器之又一實例。
圖4係可用於圖3A之記憶體庫中之一記憶體胞陣列之一代表性電路圖。
圖5繪示圖3A之記憶體庫之一實例性實體記憶體組織。
圖6展示圖5之實體記憶體之一部分之一展開圖。
圖7A繪示組態記憶體系統上之NV快取記憶體的主機系統之一實例之一流程圖。
圖7B繪示組態記憶體系統上之NV快取記憶體的記憶體系統之一實例之一流程圖。
圖8繪示組態記憶體系統上之NV快取記憶體之一大小的主機系統之一實例之一流程圖。
圖9A繪示執行一選擇性再新命令之記憶體系統之一第一實例之 一流程圖。
圖9B繪示執行一選擇性再新命令之記憶體系統之一第二實例之一流程圖。
圖9C繪示產生且發送一選擇性再新命令之主機系統之一第一實例之一流程圖。
圖9D繪示產生且發送一選擇性再新命令之主機系統之一第二實例之一流程圖。
圖9E繪示產生且發送一選擇性再新命令之主機系統之一第三實例之一流程圖。
圖10A繪示控制記憶體系統上之NV快取記憶體之一預取操作的主機系統之一實例之一流程圖。
圖10B繪示管理NV快取記憶體之一預取操作的記憶體系統之一實例之一流程圖。
圖11A繪示過量供應NV快取記憶體之大小的記憶體系統之一實例之一流程圖。
圖11B繪示欠量供應NV快取記憶體之大小的記憶體系統之一實例之一流程圖。
圖11C繪示過量供應NV快取記憶體之大小且接著減小NV快取記憶體之大小的記憶體系統之一實例之一流程圖。
如先前技術中所討論,記憶體系統可包含一非揮發性快取記憶體(NV快取記憶體)。NV快取記憶體可經組態使得將資料程式化至NV快取記憶體中及/或自NV快取記憶體讀取資料可快於程式化/讀取來自記憶體系統中之其他非揮發性記憶體之資料。據此而言,使用NV快取記憶體實現一更快存取時間,其用於提高寫入效能。作為一實例,記憶體系統可包含NV快取記憶體及其他記憶體,諸如主儲存器。在 一或多項態樣中,其他記憶體可不同於NV快取記憶體。在一態樣中,NV快取記憶體中之記憶體胞之程式化程序(及/或自記憶體胞讀取資料之讀取程序)及其他記憶體中之記憶體胞之程式化程序(及/或自記憶體胞讀取資料之讀取程序)可為不同的。在一態樣中,不同程式化程序可導致經程式化且儲存於NV快取記憶體中之每記憶體胞之位元數不同於更永久記憶體中之每記憶體胞之位元數。更具體而言,NV快取記憶體可經程式化以用於單位階記憶體胞(SLC),其中記憶體胞具有兩個可能狀態,而更永久記憶體可經程式化以用於多位階記憶體胞(MLC),其中記憶體胞具有兩個以上可能狀態,如下文將更詳細討論。此外,自SLC NV快取記憶體讀取資料亦不同於MLC主記憶體。程式化及讀取(感測)SLC可更快,其導致NV快取記憶體之效能快於更永久記憶體。在另一態樣中,NV快取記憶體之程式化程序之類型可不同於更永久記憶體。例如,可使用TRIM之一類型(其快於用於程式化其他記憶體之TRIM之類型)來程式化NV快取記憶體。
更具體而言,可使用一第一TRIM組(其不同於用於程式化其他記憶體(諸如對應於記憶體系統之匯出容量的記憶體之區段)之一第二TRIM組)來程式化NV快取記憶體。一TRIM組可包含一或多個TRIM設定值或TRIM參數,諸如一程式化電壓、一升高電壓及/或一程式化脈寬。各TRIM組可與記憶體之不同區段相關聯,諸如一TRIM組用於NV快取記憶體且另一TRIM組用於對應於記憶體系統之匯出容量的記憶體之區段。當將記憶體之區段程式化為一寫入操作之部分時,對應TRIM組之TRIM設定值(諸如程式化電壓)可用於程式化半導體記憶體之部分。如下文將更詳細討論,(諸如)美國申請案第2014/0157086號中揭示將不同參數用於程式化記憶體胞之不同TRIM設定值或程序,該案之全文以引用的方式併入本文中。據此而言,程式化NV快取記憶體可快於程式化永久記憶體。
此外,所寫入之資料可駐留於NV快取記憶體中且在較少、規模較大之操作中合併。據此而言,可將所寫入之資料保存於NV快取記憶體中以改良耐久性,其中NV快取記憶體可被覆寫且不影響標準記憶體耐久性。
在一實施例中,記憶體系統使用儲存於記憶體系統中之組態資料,諸如記憶體系統之製造期間所儲存之組態資料。例如,該組態資料可包括識別記憶體胞之類型(例如SLC或MLC,(諸如)X2或X3)、程式化之類型(例如TRIM之類型)、快取記憶體單位或其類似者之資料。
替代地或另外,NV快取記憶體之組態可基於自主機系統發送之一或多個命令。通常,主機系統對NV快取記憶體(諸如NV快取記憶體之組態或操作)幾乎無控制。在此例項中,主機系統可命令NV快取記憶體之組態。例如,主機系統可自記憶體系統接收與NV快取記憶體之一或多項態樣有關之資訊,諸如快取記憶體單位大小及/或調整因數/資料保持資訊,如下文將更詳細討論。在一實例中,記憶體系統可回應於自主機系統發送之一輪詢(例如一查詢)而發送與NV快取記憶體之一或多項態樣有關之資訊。在另一實例中,記憶體系統可在無需自主機系統發送之一述語輪詢之情況下發送與NV快取記憶體之一或多項態樣有關之資訊。回應於自記憶體系統發送之資訊及/或回應於主機系統中之一觸發事件,主機系統可組態NV快取記憶體之一或多項態樣。例如,主機系統可組態以下之任何者、任何組合或全部:NV快取記憶體之大小;NV快取記憶體之類型(例如SLC或MLC);NV快取記憶體之程式化之類型(例如TRIM,如下文將更詳細討論);何時再新NV快取記憶體(例如,是否在閒置時間期間);及再新程度(例如,當達到NV快取記憶體中之一第一預定充滿度時,完全再新NV快取記憶體或將NV快取記憶體再新至一第二預定充滿度)。
在又一實施例中,主機系統可控制NV快取記憶體之一或多項態樣之操作。例如,主機系統可控制以下之一或兩者之操作:是否繞過NV快取記憶體;及選擇性地再新NV快取記憶體。
例如,主機系統可控制何時使記憶體系統選擇性地再新NV快取記憶體,使得NV快取記憶體保留儲存於其內之至少部分資料。在一實施例中,選擇性再新命令無需考量儲存於NV快取記憶體中之資料。在一更具體實施例中,主機系統可發送一命令(諸如一組態命令)以對記憶體系統指示選擇性地再新NV快取記憶體所依之NV快取記憶體條件,諸如NV快取記憶體之充滿度。例如,該命令可指示用於觸發選擇性再新之應用的一或多個條件,且可指示用於選擇性地再新NV快取記憶體之一或多個條件。特定言之,該命令可指示NV快取記憶體之一第一充滿度(諸如80%充滿度)之一觸發,且可指示將快取記憶體選擇性地再新至一第二充滿度,使得在再新之後,NV快取記憶體具有20%充滿度。作為另一實例,該命令可僅指示用於選擇性地再新NV快取記憶體(諸如,將NV快取記憶體再新至20%充滿度)之一或多個條件。在此例項中,主機系統可(諸如)藉由輪詢記憶體器件之充滿度而主動監測NV快取記憶體之充滿度位準。回應於主機系統判定NV快取記憶體已滿足一預定義臨限值(諸如80%充滿度),主機系統可將該命令發送至記憶體系統以選擇性地再新NV快取記憶體。
在一替代實施例中,選擇性再新命令係基於與儲存於NV快取記憶體中之資料相關聯之至少一識別態樣。儲存於記憶體系統中之資料可包含一或多個識別態樣,諸如一位址(例如一邏輯區塊位址(LBA),如下文將討論。記憶體系統可儲存資料及其(若干)相關聯識別態樣。主機系統可將一選擇性再新命令發送至記憶體系統,其中該選擇性再新命令包含該一或多個識別態樣,諸如一LBA或一LBA範圍。回應於該選擇性再新命令之接收,記憶體系統可僅再新包含該一或多個識別 態樣之NV快取記憶體中之項目,如下文將更詳細討論。
參考圖,圖1A繪示一主機系統100及一記憶體系統102。主機系統100可包括任何類型之主機器件,諸如一固定電腦系統(例如一桌上型電腦)或一行動電腦系統(例如一膝上型電腦、一智慧型電話、一平板電腦或其類似者)。
可將圖1A之主機系統100視為具有兩個主要部分,就記憶體系統102而言,該兩個主要部分由電路及軟體之一組合組成。該兩個主要部分係一應用程式部分108及與記憶體系統102介接之一驅動程式部分110。在(例如)一桌上型電腦、膝上型電腦、智慧型電話、平板電腦中,應用程式部分110可包含一處理器(例如一CPU)112,其運行文字處理、圖形、控制或其他流行應用軟體;以及檔案系統114,其用於管理主機系統100上之資料。在主要專用於執行一單一功能組之一攝影機、蜂巢式電話或其他主機系統中,應用程式部分108包含操作攝影機來拍攝及儲存圖像、操作蜂巢式電話來撥打及接收電話、及其類似者之軟體。
圖1A之記憶體系統102可包括一半導體記憶體器件。半導體記憶體器件包含:揮發性記憶體器件,諸如動態隨機存取記憶體(「DRAM」)或靜態隨機存取記憶體(「SRAM」)器件;非揮發性記憶體器件,諸如電阻隨機存取記憶體(「ReRAM」)、電子可擦除可程式化唯讀記憶體(「EEPROM」)、快閃記憶體(其亦可被視為EEPROM之一子集)、鐵電隨機存取記憶體(「FRAM」)及磁阻隨機存取記憶體(「MRAM」);及其他半導體元件,其能夠儲存資料。各類型之記憶體器件可具有不同組態。例如,可將快閃記憶體器件組態為一反及或反或組態。
記憶體系統可由被動及/或主動元件之任何組合形成。作為非限制性實例,被動半導體記憶體元件包含ReRAM器件元件,其在一些 實施例中包含一電阻率切換儲存元件(諸如一反熔絲、相變材料等等),且視情況包含一導引元件(諸如二極體等等)。此外,作為非限制性實例,主動半導體記憶體元件包含EEPROM及快閃記憶體器件元件,其在一些實施例中包含含有一電荷儲存區域(諸如一浮動閘極)、導電奈米粒子或一電荷儲存介電材料之元件。
多個記憶體元件可經組態使得其等串聯連接或使得各元件可個別存取。作為非限制性實例,一反及組態(反及記憶體)中之快閃記憶體器件通常含有串聯連接之記憶體元件。一反及記憶體陣列可經組態使得該陣列由多個記憶體串組成,其中一串由共用一單一位元線且存取為一群組之多個記憶體元件組成。替代地,記憶體元件可經組態使得各元件可個別存取,例如一反或記憶體陣列。反及記憶體組態及反或記憶體組態係例示性的,且可依其他方式組態記憶體元件。
可將位於一基板內及/或位於一基板上之半導體記憶體元件配置於兩個或三個維度上,諸如二維記憶體結構或三維記憶體結構。
在二維記憶體結構中,將半導體記憶體元件配置於一單一平面或一單一記憶體器件位階中。通常,在二維記憶體結構中,將記憶體元件配置於一平面中(例如,在一x-z方向平面中),該平面實質上平行於支撐該等記憶體元件之一基板之一主表面而延伸。該基板可為其上或其中形成記憶體元件層之一晶圓,或其可為在形成記憶體元件之後附接至記憶體元件之一載體基板。作為一非限制性實例,該基板可包含一半導體,諸如矽。
可在單一記憶體器件位階中將記憶體元件配置成一有序陣列,諸如,配置成複數個列及/或行。然而,可將記憶體元件排列成不規則或非正交組態。記憶體元件可各具有兩個或兩個以上電極或接觸線,諸如位元線及字線。
三維記憶體陣列經配置使得記憶體元件佔據多個平面或多個記 憶體器件位階,藉此形成三維結構(例如,在x方向、y方向及z方向上,其中y方向實質上垂直於基板之主表面且x方向及z方向實質上平行於基板之主表面)。
作為一非限制性實例,可將三維記憶體結構垂直配置為多個二維記憶體器件位階之一堆疊。作為另一非限制性實例,可將三維記憶體陣列配置為多個垂直行(例如實質上垂直於基板之主表面(即,在y方向上)延伸之行),其中各行具有各行中之多個記憶體元件。可將該等行配置成二維組態(例如,配置於一x-z平面中),其導致記憶體元件之三維配置,其中元件位於多個垂直堆疊記憶體平面上。三維記憶體元件之其他組態亦可構成三維記憶體陣列。
作為非限制性實例,在三維反及記憶體陣列中,記憶體元件可耦合在一起以在一單一水平(例如x-z)記憶體器件位階內形成一反及串。替代地,記憶體元件可耦合在一起以形成穿過多個水平記憶體器件位階之一垂直反及串。可設想其他三維組態,其中一些反及串含有一單一記憶體位階中之記憶體元件,而其他串含有跨越多個記憶體位階之記憶體元件。亦可將三維記憶體陣列設計成一反或組態及一ReRAM組態。
通常,在一單石三維記憶體陣列中,一或多個記憶體器件位階形成於一單一基板上方。視情況而定,該單石三維記憶體陣列亦可具有至少部分位於該單一基板內之一或多個記憶體層。作為一非限制性實例,該基板可包含一半導體,諸如矽。在一單石三維陣列中,構成該陣列之各記憶體器件位階的層通常形成於該陣列之下伏記憶體器件位階之層上。然而,一單石三維記憶體陣列之相鄰記憶體器件位階之層可被共用或具有記憶體器件位階之間之介入層。
接著,二維陣列可經單獨形成且接著封裝在一起以形成具有多個記憶體層之一非單石記憶體器件。例如,可藉由在單獨基板上形成 記憶體位階且接著使該等記憶體位階堆疊於彼此之頂部上而建構非單石堆疊記憶體。可使基板薄化或在堆疊之前自記憶體器件位階移除基板,但由於記憶體器件位階最初形成於單獨基板上,所以所得記憶體陣列係非單石三維記憶體陣列。此外,多個二維記憶體陣列或三維記憶體陣列(單石或非單石)可形成於單獨晶片上且接著封裝在一起以形成一堆疊晶片記憶體器件。
通常需要相關聯電路來操作記憶體元件且與記憶體元件通信。作為非限制性實例,記憶體器件可具有用於控制及驅動記憶體元件以實現功能(諸如程式化及讀取)之電路。此相關聯電路可位於相同於記憶體元件之基板上及/或位於一單獨基板上。例如,用於記憶體讀寫操作之一控制器可位於一單獨控制器晶片上及/或位於相同於記憶體元件之基板上。
熟習技術者將認識到,本發明不受限於所描述之二維例示性結構及三維例示性結構,而是涵蓋本發明之精神及範疇內之所有相關記憶體結構,如本文所描述且如由熟習技術者所理解。
返回參考圖1A,記憶體系統102可包含:非揮發性記憶體,諸如快閃記憶體116;及一系統控制器118,其與主機系統100介接(記憶體系統102連接至主機系統100以使資料來回傳送)且控制快閃記憶體116。如上文所討論,可考量其他類型之非揮發性記憶體,諸如電阻記憶體(其可由複數個電阻記憶體胞組成)及鐵電記憶體。
記憶體系統102可採取若干形式之一者。在一形式中,記憶體系統102可包括一嵌入式器件。例如,記憶體系統102可包括一非揮發性記憶體,其經組態以用作為可看起來類似於圖1A之示意圖的一內部或嵌入式SSD硬碟,其中主要差異係:記憶體系統102位於主機系統100之內部。一SDD可呈離散模組(其係用於使磁碟機旋轉之偶入替換物)之形式。替代地,記憶體系統102可呈一卡之形式,該卡透過一機 械及電連接器之嵌合部件104及106而可移除地連接至主機系統100,如圖1A中所繪示。
如上文所討論,圖1A之記憶體系統102可包括一半導體記憶體器件且包含非揮發性記憶體(諸如一或多個記憶體晶片116)及一記憶體系統控制器118。在一替代實施例中,記憶體系統102可包含揮發性記憶體及非揮發性記憶體兩者。
為多個目的,主機系統100可與記憶體系統通信。一目的係使主機系統102將資料儲存於記憶體系統上及/或自記憶體系統讀取資料。例如,主機系統100可將資料發送至記憶體系統102以儲存於記憶體系統102之一或多個記憶體晶片116上。作為另一實例,主機系統100可自記憶體系統102請求儲存於一或多個記憶體晶片116上之資料。當與記憶體系統通信時,主機系統100可發送資料之邏輯位址,諸如,呈一範圍之邏輯區塊位址(LBA)之形式。接著,記憶體系統控制器118可在一或多個步驟中將LBA轉換成記憶體晶片116上之實際實體位址。記憶體系統控制器118可執行一邏輯位址轉實際實體位址轉換以映射至實際實體位址。例如,可將來自主機系統100之LBA映射至記憶體系統內部邏輯位址,且將該等記憶體系統內部邏輯位址映射至實際實體位址。作為另一實例,可將來自主機系統100之LBA直接映射至實際實體位址。
圖1A繪示:非揮發性記憶體116包含一非揮發性快取儲存器120及一主儲存器122。如下文將更詳細討論,非揮發性快取儲存器120及一主儲存器122可駐留於一相同區塊中,駐留於不同區塊中,駐留於一相同記憶體晶片上,或駐留於不同記憶體晶片上。
圖1B繪示圖1A之主機系統100及記憶體系統102之另一方塊圖。如圖1B中所展示,在一實施例中,主機系統100可組態記憶體系統102之NV快取記憶體。為此,主機系統100可包含一組態觸發器130、 一NV快取記憶體組態輪詢132、一輪詢回應接收器140、一NV快取記憶體組態分析器142、一NV快取記憶體組態命令產生器144及一NV快取記憶體組態命令傳輸器146。可將組態觸發器130、NV快取記憶體組態輪詢132、輪詢回應接收器140、NV快取記憶體組態分析器142、NV快取記憶體組態命令產生器144及NV快取記憶體組態命令傳輸器146之任何者、任何組合或全部實施為軟體、硬體或硬體及軟體之一組合。
記憶體系統可包含一NV快取記憶體組態輪詢接收器134、一輪詢回應產生器136、一輪詢回應傳輸器138、一NV快取記憶體組態命令接收器148及一NV快取記憶體組態器150。可將NV快取記憶體組態輪詢接收器134、輪詢回應產生器136、輪詢回應傳輸器138、NV快取記憶體組態命令接收器148及NV快取記憶體組態器150之任何者、任何組合或全部實施為軟體、硬體或硬體及軟體之一組合。
組態觸發器130可包括用於組態NV快取記憶體之觸發。觸發可發生於主機系統100及記憶體系統102之各種互動階段中。在一實施例中,觸發可發生於將記憶體系統102與主機系統100整合時。更具體而言,記憶體系統102與主機系統100之初始電連接可觸發主機系統100組態記憶體系統102。據此而言,不管主機系統100及/或記憶體系統102之操作如何,觸發可為靜態的(例如,一次性的)。在一替代實施例中,用於組態之觸發可動態地基於主機系統100及/或記憶體系統102之操作。更具體而言,當主機系統試圖增大NV快取記憶體之大小時,主機系統100可觸發組態,藉此在記憶體系統100之資料容量受損害之情況下改良記憶體系統之效能。例如,主機系統100上所執行之一攝影機應用程式可判定需要增大NV快取記憶體,諸如,歸因於所拍攝之圖像之一叢集。作為另一實例,當主機系統判定記憶體系統102上需要更多儲存時,主機系統100可觸發組態。作為此之回應,主 機系統102可試圖減小NV快取記憶體之大小,藉此改良記憶體系統102上之儲存容量。在又一替代實施例中,主機系統100可在預定時間觸發組態。
回應於觸發,NV快取記憶體組態輪詢132可產生待發送至記憶體系統102之一輪詢。NV快取記憶體組態輪詢接收器134可對該輪詢作出回應且將一請求傳輸至輪詢回應產生器136。在產生輪詢回應之後,輪詢回應傳輸器138可將該輪詢回應傳輸至主機系統100。
輪詢回應可包括NV快取記憶體之一或多項態樣。作為一實例,輪詢回應可包含NV快取記憶體單位大小,其表示NV快取記憶體之單元大小。輪詢回應之一格式可包括:NV_Cache_Unit_Size(R)(EXT_CSD[xxx])
其中(R)指示主機可唯讀,且其中EXT_CSD係eMMC標準中之擴展CSD暫存器,該eMMC標準可界定記憶體系統性質(諸如記憶卡性質)及選定模式。例如,NV快取記憶體單位大小可等於4kB×2NV_Cache_Unit_Size。為簡化且為發送更少資料,僅發送NV_Cache_Unit_Size。特定言之,當NV_Cache_Unit_Size=2時,NV快取記憶體單位大小=16kB。
如上文所討論,可依不同於主記憶體之方式組態NV快取記憶體。就快閃記憶體而言,可基於每記憶體胞所程式化之位元數及/或記憶體胞之程式化程序之類型而依不同方式組態NV快取記憶體。關於每記憶體胞之位元數,當每記憶體胞之位元數係最低時,快閃記憶體一般提供最高效能,諸如每記憶體胞儲存一個位元之二進位快閃記憶體,亦稱為單位階記憶體胞(SLC)快閃記憶體。經組態以每記憶體胞儲存一個以上位元之快閃記憶體(稱為多位階記憶體胞(MLC)快閃記憶體)可每記憶體胞儲存兩個或兩個以上位元之資訊。儘管一般已知SLC快閃記憶體具有比MLC快閃記憶體更佳之讀取及寫入效能(例 如速率及耐久性),但MLC快閃記憶體提供更多儲存容量且一般具有更低生產成本。MLC快閃記憶體之耐久性及效能趨向於隨著一給定MLC組態之每記憶體胞之位元數增加而降低。
關於程式化之類型,可依不同方式(諸如不同TRIM類型)程式化MLC。例如,一第一TRIM類型可包含一第一組之一或多個程式化參數(例如一或多個程式化脈衝、一或多個驗證位準等等)。該第一TRIM類型可比一第二TRIM類型(其(例如)具有一或多個不同程式化參數)快地程式化,但無法與該第二TRIM類型一樣長地使電荷保持於記憶體胞中。
據此而言,依不同於主記憶體之方式組態NV快取記憶體使NV快取記憶體作為SLC且使主記憶體作為MLC。在一實施例中,記憶體系統102一致地組態用於一儲存容量之一單一區塊。因此,一單一區塊可經組態以用於SLC或MLC,但非SLC及MLC兩者。
藉此,主機系統可審查NV快取記憶體單位大小以判定是否未充分利用一區塊。例如,NV快取記憶體單位大小可表示一SLC區塊之大小。自一利用率觀點看,NV快取記憶體單位大小係最佳的。作為另一實例,NV快取記憶體單位大小可小於一SLC區塊之大小。自一利用率觀點看,NV快取記憶體單位大小並非係最佳的。
更具體而言,輪詢回應可指示NV_Cache_Unit_Size係4KB,同時SLC區塊係1MB。由於區塊經組態以完全作為SLC或完全作為MLC(例如每記憶體胞具有3個位元之X3),所以若記憶體系統將區塊指定為NV快取記憶體之一SLC區塊,則記憶體系統將區塊之剩餘部分(1MB-4kB)用作為SLC。此將意味著:區塊之剩餘部分可僅儲存(1MB-4kB)個位元組資料,而非3×(1MB-4kB)個位元組資料之全部潛力,其中「3×」表示每記憶體胞儲存3個位元之區塊之剩餘部分。
因此,在其中NV_Cache_Unit_Size小於一SLC區塊之一系統中, 可未使用區塊大小之剩餘部分(例如,未利用快閃記憶體)或若將剩餘部分用作為非快取資料,則剩餘部分將被用作為一SLC區塊,在X3之實例中,該SLC區塊將使器件容量僅增加記憶體之全部潛力之1/3。
輪詢回應可包含NV快取記憶體單位大小作為以下之一者:(i)基於SLC區塊之大小(例如4KB,此時SLC區塊係1MB);(ii)基於SLC區塊之大小乘以晶粒之數目。例如1kB,此時SLC區塊係1MB且晶粒之數目係4,藉此等於4kB。據此而言,當主機系統寫入至NV快取記憶體時,記憶體系統可橫跨所有晶粒而並行寫入。此與其中NV_Cache_Unit_Size不是晶粒之數目之倍數的一記憶體系統形成對比。作為另一實例,輪詢回應可報告NV_Cache_Unit_Size係1KB,同時SLC區塊係1MB且晶粒之數目係4。若主機系統決定橫跨4個晶粒而並行程式化,則主機系統可界定橫跨4個晶粒之NV快取記憶體,其中各晶粒僅利用SLC區塊之全容量之1/4,藉此導致記憶體之無效率利用;(iii)基於MLC大小乘以晶粒之數目;(iv)基於MLC區塊,若使用一不同TRIM(例如一較快程式化程序)及非不同記憶體類型(例如,不使用SLC或MLC)。
如上文所討論,輪詢回應可包含NV快取記憶體單位大小。替代地或另外,輪詢回應可包含一非揮發性快取記憶體調整因數,其可為NV快取記憶體類型與主記憶體之記憶體類型之間之比率。輪詢回應之一格式可包括:NVCacheAdjFac(EXT_CSD[xxx])
作為一實例,NV快取記憶體類型可為SLC(每記憶體胞儲存1個位元),而主記憶體之記憶體類型係X3(每記憶體胞儲存3個位元)。據此而言,調整因數係3。作為另一實例,NV快取記憶體類型可為X2(每記憶體胞儲存2個位元),而主記憶體係X3,其導致1 ½之一調整因 數。作為又一實例,若主機系統將NV快取記憶體之大小各組態為4MB之10個單位,且NVCacheAdjFac係3,則NV快取記憶體大小係40MB(且使記憶體系統之儲存容量減小3×40MB)。據此而言,調整因數係將記憶體指定用於NV快取記憶體時之儲存容量損失程度之一指示。
輪詢回應可進一步可提供時間量之一指示,在該時間量內,儲存於NV快取記憶體中之資料係可靠的。如上文所討論,可使用較快但不可靠之TRIM之一類型來程式化NV快取記憶體。記憶體系統可報告可使儲存於NV快取記憶體中之資料作為有效資料之依據的時間量之一指示。主機系統可儲存該指示以追蹤自將資料發送至記憶體系統以儲存於快取記憶體中以來逝去之時間量。更具體而言,回應於主機系統判定逝去時間接近可使儲存於NV快取記憶體中之資料作為有效資料之依據的時間量,主機系統可將一命令發送至記憶體系統以將資料自NV快取記憶體移動至主儲存器。
返回參考圖1B,輪詢回應接收器140接收輪詢回應。NV快取記憶體組態分析器142可(諸如)基於輪詢回應而判定NV快取記憶體之組態。回應於判定NV快取記憶體之組態,NV快取記憶體組態命令產生器144產生由NV快取記憶體組態命令傳輸器146發送之組態命令。
記憶體系統102之NV快取記憶體組態命令接收器148接收組態命令。回應於接收,NV快取記憶體組態器150可組態NV快取記憶體。在一實例中,NV快取記憶體之組態可包括與NV快取記憶體相關聯之寫入或更新參數。
NV快取記憶體組態命令可組態NV快取記憶體之各種態樣,其包含以下之任何者、任何組合或全部:NV快取記憶體之大小;用於組態指派給NV快取記憶體之記憶體的每記憶體胞之位元數(例如,組態為SLC、X2或X3);程式化之類型(例如TRIM之類型);何時再新NV快 取記憶體;等等。
例如,NV快取記憶體組態命令可組態NV快取記憶體之大小。在一實施例中,NV快取記憶體組態命令可指示基於NV快取記憶體單位大小(例如NV_Cache_Unit_Size)之單位的NV快取記憶體之大小。NV快取記憶體之大小之NV快取記憶體組態命令之格式如下:NV_Cache_Size(R/W)(EXT_CSD[xxx])
其中命令可自記憶體系統讀取(R)NV快取記憶體之當前大小之一指示(諸如NV_Cache_Unit_Size之單位數)且寫入(W)以命令NV快取記憶體之大小。
如下文將更詳細討論,主機系統包含邏輯來判定NV快取記憶體大小。在一實施例中,主機系統可命令NV快取記憶體之大小足以為由主機系統判定之大小。在一替代實施例中,主機系統可最初命令NV快取記憶體之大小足以小於由主機系統判定之大小。在欠量供應之一例項中,可由記憶體器件基於由主機系統命令之參數而判定NV快取記憶體之大小之後續修改。作為一實例,主機系統可指示記憶體系統一或多個參數以觸發記憶體器件判定何時將更多/更少記憶體分配給NV快取記憶體。作為另一實例,在記憶體系統分配更多/更少記憶體(例如,若NV快取記憶體之充滿度百分比超過一上限值,則分配更多記憶體;或若充滿度百分比小於下限值,則分配更少記憶體)之前,主機系統可指示記憶體系統監測NV快取記憶體之充滿度。
在欠量供應之另一例項中,可由主機系統判定NV快取記憶體之大小之後續修改。更具體而言,主機系統可監測NV快取記憶體之充滿度以使主機系統判定是否指示記憶體器件將更多/更少區塊分配給NV快取記憶體。
作為另一實例,NV快取記憶體組態命令可組態記憶體胞之類型,諸如SLC或MLC(例如X2或X3)。使NV快取記憶體組態有每記憶 體胞之一低位元導致儲存容量損失。例如,若最初將記憶體之一1MB區塊指定為X3,且若主機系統命令將該區塊指定為NV快取記憶體之SLC,則儲存容量之總量減少3MB。據此而言,當使NV快取記憶體組態有每記憶體胞之一低位元而非如原來般供應NV快取記憶體時,記憶體系統中可用之儲存容量之量減少。為使主機系統解釋記憶體系統上之較低儲存容量,主機系統可:(1)重新格式化記憶體系統以指示一更新匯出容量(參閱圖1D);或(2)可將一虛設檔案***至檔案系統中,其中該虛設檔案解釋儲存容量之損失。依此方式,檔案系統將被格式化為具有原始容量,但不會存取該虛設檔案,因此,不會存取新減少容量外之LBA。
作為又一實例,主機系統可指示記憶體器件使用一特定類型之TRIM來程式化NV快取記憶體。如上文所討論,可使用不同類型之TRIM。歸因於MLC之較快程式化,可更期望某些類型之TRIM用於NV快取記憶體;然而,此等類型之TRIM可遭受資料保持問題。
作為一NV快取記憶體組態命令之又一實例,主機系統可指示記憶體系統何時再新NV快取記憶體。該命令之一實例如下:NV_Flush_BKOP。
命令係對記憶體系統之一指示,其啟用或停用記憶體系統以在記憶體系統閒置時將資料自NV快取記憶體移動至主記憶體。據此而言,利用NV_Flush_BKOP,記憶體系統可執行相同於NV_Flush命令(如下文將討論)之操作,諸如,將資料自NV快取記憶體中之SLC區塊重新定位至TLC/MLC主儲存器區塊或自具有NV_Cache_TRIM之區塊(例如,使用可遭受資料保持問題之一TRIM來程式化)重新定位至具有一不同TRIM之區塊(例如,使用具有更可靠資料保持之一TRIM來程式化)。
一組態命令之又一實例係用於控制NV快取記憶體之操作的一或 多個臨限值。更具體而言,主機系統100可發送NV_Cache利用率臨限值,其係記憶體系統102檢查NV快取記憶體之充滿度時之一臨限值。回應於該臨限值之接收,記憶體器件可將該臨限值內部標記為一參數以在稍後審查NV快取記憶體之充滿度時使用。實際上,當記憶體器件判定NV快取記憶體達到或超過該臨限值(如由NV_Cache利用率臨限值所指示)時,記憶體系統可將作為一異常事件(例如一中斷)之一指示發送至主機系統。
當達到臨限值時,記憶體系統102可將一通知發送至主機系統100以指示:NV快取記憶體中之可用自由空間小於所要自由空間。回應於該通知,主機系統100可命令記憶體系統102再新部分或全部NV快取記憶體以保證NV快取記憶體處之特定量之自由空間。
記憶體系統102可依若干方式之一者追蹤NV快取記憶體之充滿度。依一方式,記憶體系統可使用一計數器來追蹤充滿度。更具體而言,該計數器可指示用於NV快取記憶體中之區段。例如,在至NV快取記憶體之各寫入之後,記憶體系統102可使該計數器遞增以指示當前用於NV快取記憶體中之區段之數目。相反地,當記憶體系統102將資料自NV快取記憶體重新定位至主記憶體時,記憶體系統102可使該計數器遞減以指示NV快取記憶體之更少區段在使用中。當該計數器之值超過NV_Cache利用率臨限值時,記憶體系統102可使一指示返回至主機系統100以指示一異常事件。
圖1C繪示與主機系統100監測記憶體系統102上之NV快取記憶體之操作相關之圖1A之主機系統100及記憶體系統102之又一方塊圖。NV快取記憶體狀態觸發器160分析主機系統100及/或記憶體系統102上之一或多個活動以判定是否觸發NV快取記憶體之一狀態。回應於該觸發,NV快取記憶體狀態輪詢162產生待發送至記憶體系統102之一NV快取記憶體狀態輪詢。NV快取記憶體狀態輪詢接收器164接收 該NV快取記憶體狀態輪詢。回應於該狀態輪詢之接收,輪詢回應產生器166產生該輪詢之一回應,其中輪詢回應傳輸器168將該回應傳輸至主機系統100。
輪詢回應接收器170接收輪詢回應。NV快取記憶體狀態分析器172經組態以分析該輪詢回應。NV快取記憶體狀態命令產生器174經組態以基於該輪詢回應之分析而產生一NV快取記憶體狀態命令。NV快取記憶體狀態命令傳輸器176將該NV快取記憶體狀態命令傳輸至記憶體系統102。NV快取記憶體狀態命令接收器178接收轉送至NV快取記憶體控制器180以用於實施之該NV快取記憶體狀態命令。
在NV快取記憶體之操作期間,主機系統100可將一或多個命令發送至記憶體系統102。一命令可包含一旁通指示符,其指示記憶體系統102繞過將資料儲存於NV快取記憶體中,且將資料直接儲存於主儲存器(例如圖1D中之儲存媒體197)中。該命令之一實例包括(諸如)下文所繪示之一命令:SET_BLOCK_COUNT命令(CMD23)/QUEUED_TASK_PARAMS命令(CMD44)
其中命令可包含用於NV_Force程式化之一參數位元(位元22),其可包括一旁通指示符。據此而言,該旁通指示符可包含於至記憶體系統102之一寫入命令中,且可包含(諸如)以下所展示之一參數位元(例如NV_Force程式化):
據此而言,當使用設定為「0」之NV_Force程式化來標記一命令時,記憶體系統可將資料寫入至NV快取記憶體。
在另一實例中,在NV快取記憶體之操作期間,主機系統100可對記憶體系統102進行與NV快取記憶體之充滿度有關之輪詢。該輪詢可呈一NV_Cache利用率命令之形式。作為回應,記憶體系統102可發送指示NV快取記憶體之利用量的一回應。該回應可包括自由區塊之量或自由(或使用)之NV快取記憶體之百分比。自由區塊之量亦可包含區塊之類型之一指示(例如SLC區塊、X2區塊或X3區塊)。下表中繪示回應之值及NV快取記憶體利用率之對應量的一實例:
如下文將更詳細討論,各種事件可觸發主機系統請求NV快取記憶體之充滿度。例如,一應用程式可判定NV快取記憶體中之一最接近空間需要,藉此促進NV快取記憶體之充滿度之請求。
在又一實例中,在NV快取記憶體之操作期間,主機系統100可發送一選擇性再新命令。該選擇性再新命令可選擇NV快取記憶體中之資料之部分(但非全部)來遷移至主儲存器。在一實施例中,該選擇性再新命令可指示在由記憶體系統102執行該選擇性再新命令之後保留於NV快取記憶體中之資料之非零量。資料之該非零量可包括充滿度之一百分比,如下文將更詳細討論。在一替代實施例中,該選擇性再 新命令可包含與可儲存於NV快取記憶體中之資料相關聯之一或多個識別態樣,諸如一LBA或一LBA範圍。回應於接收該選擇性再新命令,記憶體系統102可僅再新具有該命令中之該一或多個識別態樣的資料。
在又一替代實施例中且與選擇性再新命令相比,主機系統可發出一再新命令來再新NV快取記憶體中之所有資料。該完全再新命令可包括如下:NV_FLUSH(W/E_P)(EXT_CSD[32]bit 2)
其中主機系統可寫入一暫存器之位元組32之位元2以指示記憶體系統執行NV快取記憶體之一完全再新。
圖1D繪示主機系統100及一eMMC器件190之一方塊圖。eMMC代表嵌入式多媒體控制器,且係指包括位於相同矽晶粒上之一快閃記憶體及一快閃記憶體控制器兩者的一器件。如圖1D中所繪示,eMMC器件包含一eMMC控制器192、一非揮發性快取記憶體196及一儲存媒體197。eMMC控制器192包含:一eMMC介面194,其用於與主機系統100介接;及控制器揮發性快取記憶體195,其無法透過電力循環而保留資料。
非揮發性快取記憶體196可使用增強型記憶體來建立主機系統100與eMMC器件190之儲存媒體197之間之一中間、透明、非揮發性儲存器。更具體而言,可自快閃媒體分割非揮發性快取記憶體196,藉此減小總存取區域。如圖1D中所展示,儲存媒體197包含自LBA0至匯出容量之一LBA範圍作為其存取區域。如本文所討論,NV快取記憶體命令集使主機系統100能夠管理非揮發性快取記憶體196。非揮發性快取記憶體196之管理之實例包含(但不限於):判定NV快取記憶體大小;接收NV快取記憶體充滿度之指示且將NV快取記憶體轉移至儲存媒體197(例如,完全或部分再新NV快取記憶體);及寫入至NV 快取記憶體。
圖2A繪示記憶體系統控制器晶片200,其係圖1A中所描繪之記憶體系統控制器118之一實例。如圖2A中所繪示,記憶體系統控制器晶片200包含主機系統介面202,其可包括電路及/或軟體來與主機系統100通信。替代地,主機系統介面202可位於記憶體系統控制器晶片200外部。記憶體系統控制器晶片200進一步包含控制器204、記憶體208及(若干)記憶體晶片介面214。控制器204包含各種功能,諸如計數器206,其可用於計數用於NV快取記憶體中之區段之數目,如上文所討論。記憶體208可包含快取記憶體組態及操作210。快取記憶體組態及操作210可包括可由控制器204執行以組態及操作NV快取記憶體之軟體,如本文所討論。記憶體晶片介面214可包括經組態以與一或多個記憶體晶片通信之一或多個通信線。
圖2B繪示記憶體系統控制器晶片220,其係圖1A中所描繪之記憶體系統控制器118之一第二實例。可將記憶體系統控制器晶片220可實施於一單一積體電路晶片220(諸如一專用積體電路(ASIC))上,如圖2B中所展示。此外,由記憶體系統控制器晶片220執行之各種功能可由一單一器件執行或可由多個器件執行,諸如圖2B中所展示。更具體而言,可將記憶體系統控制器晶片220可分段成圖2B中繪示之不同器件,諸如(若干)快閃記憶體介面222、處理器224、RAM 223、ECC 234、主機介面236及時脈232。圖2B僅供說明。
記憶體系統控制器晶片220之處理器224可經組態為能夠經由一或多個快閃記憶體介面222而與一各自記憶體晶片單獨通信之一多執行緒處理器。(若干)快閃記憶體介面222可具有用於快閃記憶體116中之各自記憶體晶片之各者的I/O埠。記憶體系統控制器晶片220可包含一內部時脈232。處理器224可經由一內部資料匯流排228而與一錯誤校正碼(ECC)模組234、一RAM緩衝器230、一主機介面236及韌體226 (其可包含啟動碼ROM)通信。
圖3A繪示一記憶體晶片300之一方塊圖之一實例,諸如圖1A中所描繪之快閃記憶體116中所使用。各記憶體晶片300可含有組織成多個平面之一陣列之記憶體胞。為簡單起見,圖3A展示平面360及362,但可代以使用更少數目個平面(諸如一個平面)或更大數目個平面(諸如四個或八個平面)。替代地,可不將一記憶體庫之記憶體胞陣列分成平面。然而,當經如此劃分時,各平面自身具有可彼此獨立操作之行控制電路314及316。電路314及316接收其各自記憶體胞陣列之位址,且解碼該等位址以定址各自位元線318及320之一或多個特定者。回應於匯流排364上所接收之位址,透過列控制電路324而定址字線322。源極電壓控制電路326及328亦與各自平面連接,p井電壓控制電路330及332亦與各自平面連接。若記憶體庫呈具有一單一陣列之記憶體胞之一記憶體晶片之形式,且若兩個或兩個以上此等晶片存在於系統中,則透過與匯流排364連接之各自資料輸入/輸出電路334及336而將資料轉移至平面360及362中或自平面360及362轉移出資料。電路334及336透過線338及340(其等透過各自行控制電路314及316而連接至平面)而提供將資料程式化至記憶體胞中及自其各自平面之記憶體胞讀取資料。
儘管記憶體系統晶片控制器200中之控制器204控制記憶體晶片之操作以程式化資料、讀取資料、擦除及處理各種家務事,但各記憶體晶片亦含有執行來自記憶體系統控制器118之命令以執行此等功能的一些控制電路。介面電路342連接至匯流排364。將來自記憶體系統控制器118之命令提供至一狀態機344,狀態機344接著提供其他電路之特定控制以執行此等命令。狀態機344可進一步包含錯誤判定功能,諸如本文所討論。控制線346至354將狀態機344與此等其他電路連接,如圖3A中所展示。通過線356而將來自狀態機344之狀態資訊 傳達至介面342以通過匯流排364而傳輸至記憶體系統控制器118。
圖3B至圖3D繪示一或多個記憶體晶片內之NV快取記憶體之不同組態。圖3B係一記憶體晶片370中之NV快取記憶體及主儲存器之一實例。如圖3B中所繪示,NV快取記憶體位於區塊1(372)中且可為SLC。主儲存器可被指派給區塊2(374)至區塊N(376),且可為MLC。
圖3C係多個記憶體晶片中之NV快取記憶體及主儲存器之另一實例。記憶體晶片380包含區塊1(382),其中部分係NV快取記憶體且部分係主儲存器。如圖中所繪示,整個區塊1(382)經組態為SLC且儲存1MB之資料。圖3C亦繪示記憶體晶片380之其他區塊,其包含為主儲存器之部分的區塊M(384)。區塊M(384)經組態為X3且儲存3MB之資料。同樣地,記憶體晶片386包含:區塊1(388),其包含NV快取記憶體及主儲存器且儲存1MB之資料;及區塊M,其儲存3MB之資料。
圖3D係單獨類型之記憶體中之主儲存器393及NV快取記憶體395之又一實例。如圖中所繪示,主儲存器393位於快閃記憶體392中且NV快取記憶體395位於非快閃記憶體394中。非快閃記憶體394可包括基於非快閃之一類型之記憶體,諸如ReRAM。如圖中所繪示,主儲存器393位於不同於NV快取記憶體395之一類型之一單獨記憶體中。圖3D進一步包含記憶體控制器391,其可控制來自快閃記憶體392及非快閃記憶體394之儲存及擷取。
下文討論記憶體胞陣列360及362之一反及架構,但可代以單獨或組合地使用其他非揮發性記憶體架構或技術,諸如反或。由圖4之電路圖繪示一實例性反及陣列,其係圖3A之記憶體庫300之記憶體胞陣列360之一部分。提供大量全域位元線,為簡化解釋,圖4中僅展示四個此等線402至408。數個串聯連接之記憶體胞串410至424連接於此等位元線之一者與一參考電位之間。使用記憶體胞串414作為代表,複數個電荷儲存記憶體胞426至432在該串之兩端處與選擇電晶體434 及436串聯連接。當使一串之選擇電晶體變為導電的時,該串連接於其位元線與該參考電位之間。接著,每次程式化或讀取該串內之一個記憶體胞。
圖4之字線438至444個別地延伸橫跨數個記憶體胞串之各者中之一記憶體胞之電荷儲存元件,且閘極446及450控制該等串之各端處之選擇電晶體之狀態。使共用共同字線及控制閘極線438至450之記憶體胞串形成一起擦除之記憶體胞之一區塊452。此區塊之記憶體胞含有可一次物理擦除之最小數目個記憶體胞。可每次並行程式化一列記憶體胞,即,沿字線438至444之一者之記憶體胞列。通常,依一給定順序程式化一反及陣列之列,在此情況中,其開始於沿最靠近串之端(其連接至接地或另一共同電位)的字線444之列。接著,並行程式化沿字線442之記憶體胞列,等等,直至整個區塊452。最後,並行程式化沿字線438之列。
一列記憶體胞僅為一並行程式化單元之一實例。該並行程式化單元可包含以下之一或兩者:(1)可並行程式化/讀取所有實體結構(諸如記憶體胞);及(2)可使用相同或相近完成時間來程式化/讀取所有實體結構。要素(2)係為了效率,但未必需要用於一並行程式化單元。
記憶體胞之記憶體列可由位於一晶粒上之相同實體位置中之記憶體胞組成。替代地,記憶體胞列可由全部可並行程式化之位於一或若干晶粒上之不同實體位置中之記憶體胞組成。再者,可考量其他可並行程式化單元,其中可並行程式化記憶體胞。
一第二區塊454係類似的,其記憶體胞串連接至相同於第一區塊452中之串的全域位元線,但具有一組不同字線及控制閘極線。由列控制電路324將該等字線及控制閘極線驅動至其適當操作電壓。若系統中存在一個以上平面(諸如圖3A之平面1及平面2),則一記憶體架構使用延伸於該等平面之間的共同字線。替代地,可存在共用共同字線 之兩個以上平面。在其他記憶體架構中,單獨驅動個別平面之字線。
記憶體胞可經操作以儲存電荷之兩個位準,使得一單位元之資料儲存於各記憶體胞中。此通常指稱二進位或單位階記憶體胞(SLC)記憶體。替代地,記憶體胞可經操作以將電荷之兩個以上可偵測位準儲存於各電荷儲存元件或區域中,藉此將一個以上位元之資料儲存於各記憶體胞中。此後一組態指稱多位階記憶體胞(MLC)記憶體。兩個類型之記憶體胞可用於一記憶體中,例如,二進位快閃記憶體可用於快取資料且MLC記憶體可用於較長期儲存。記憶體胞之電荷儲存元件係最常見導電浮動閘極,但可替代地為非導電介電電荷捕捉材料。
圖5概念性地繪示多記憶體庫快閃記憶體之一記憶體庫之一組織,其用作為下文進一步描述中之一實例。記憶體胞之四個平面502至508可位於一單一積體記憶體胞晶片上,位於兩個晶片上(各晶片上具有兩個平面),或位於四個單獨晶片上。該特定配置對下文之討論而言並不重要。當然,其他數目個平面(諸如1個、2個、8個、16個或16個以上)可存在於一系統中。將該等平面個別地分成圖5中由矩形展示之記憶體胞區塊(諸如區塊510、512、514及516),該等區塊位於各自平面502至508中。各平面中可存在數百或數千個區塊。
如上文所提及,記憶體胞區塊係擦除單位,即,可一起物理擦除之最小數目個記憶體胞。然而,隨著平行度增大,可在更大元區塊單元中操作區塊。來自各平面之一區塊經邏輯地鏈接在一起以形成一元區塊。圖中展示四個區塊510至516形成一元區塊518。通常一起擦除一元區塊內之所有記憶體胞。用於形成一元區塊之區塊無需受限於其各自平面內之相同相對位置,如由區塊522至528組成之一第二元區塊520中所展示。儘管通常可較佳地使元區塊延伸橫跨所有平面,但為高系統效能,記憶體系統可經操作以具有動態地形成由不同平面中之一個區塊、兩個區塊或三個區塊之任何者或全部組成之元區塊的能 力。此允許元區塊之大小與在一程式化操作中可用於儲存之資料之量更緊密地匹配。
接著,為操作目的,將個別區塊分成記憶體胞頁,如圖6中所繪示。例如,將區塊510至516之各者之記憶體胞各分成八個頁P0至P7。替代地,各區塊內可存在16個、32個或32個以上記憶體胞頁。頁係程式化於一區塊內之資料之單位,其含有一次程式化或讀取之最小資料量。在圖3A之反及架構中,一頁由沿一區塊內之一字線之記憶體胞形成。然而,為增大記憶體系統操作平行度,可將兩個或兩個以上區塊內之此等頁邏輯地鏈接成元頁。圖6中繪示一元頁602,其由來自四個區塊510至516之各者的一實體頁形成。例如,元頁602包含四個區塊之各者中之頁P2,但一元頁之頁未必需要具有區塊之各者內之相同相對位置。在一記憶體庫內,一元頁係程式化之最大單位。
圖7A繪示組態記憶體系統上之NV快取記憶體的主機系統之一實例之一流程圖700。在702中,主機系統操作一應用程式。在704中,主機系統與記憶體系統通信。在706中,主機系統組態NV快取記憶體之態樣,諸如NV快取記憶體之大小、NV快取記憶體之程式化之類型等等。在708中,主機系統將具有NV快取記憶體之一或多個組態態樣的一命令發送至記憶體系統。
圖7B繪示組態記憶體系統上之NV快取記憶體的記憶體系統之一實例之一流程圖720。在722中,(諸如)在啟動之後操作記憶體系統。在724中,記憶體系統存取NV快取記憶體之組態資料,諸如NV快取記憶體之程式化之類型。更具體而言,記憶體系統可存取先前程式化至記憶體系統中之組態資料。在726中,記憶體系統可自主機系統接收用於儲存於NV快取記憶體中之資料。在728中,記憶體系統可根據組態資料而將組態資料程式化至NV快取記憶體中。
圖8繪示組態記憶體系統上之NV快取記憶體之一大小的主機系統 之一實例之一流程圖800。在802中,主機系統可操作一應用程式。在804中,主機系統決定為了效能而改變NV快取記憶體之大小。據此而言,圖8繪示一觸發(即,效能原因)以在各種時間組態記憶體系統。例如,主機系統可包括一攝影機。該攝影機可在叢發模式中操作。回應於在叢發模式中操作(其中連續快速地拍攝多個圖像),該攝影機可試圖組態NV快取記憶體以增大NV快取記憶體之大小,使得該多個圖像可被快速儲存。
如上文所討論,記憶體系統可執行一選擇性再新命令。可在組態期間或在記憶體系統之操作期間將該選擇性再新命令發送至記憶體系統,諸如圖9A至圖9E中所繪示。
圖9A繪示執行一選擇性再新命令之記憶體系統之一第一實例之一流程圖900,其中在組態期間發送該選擇性再新命令。在902中,記憶體系統自主機系統接收該選擇性再新組態命令。該選擇性再新組態命令可指示記憶體系統如何部分地(但非完全)再新NV快取記憶體。例如,該選擇性再新組態命令可規定:當滿足一臨限充滿度時,記憶體系統再新NV快取記憶體,使得在執行該命令之後,NV快取記憶體之總容量等於NV快取記憶體之全容量之一預定百分比,諸如20%。
在904中,記憶體系統接收用於儲存於NV快取記憶體中之資料。在906中,記憶體系統判定是否滿足選擇性再新命令之條件,諸如臨限充滿度。若滿足選擇性再新命令之條件,則在908中,選擇性再新命令經執行使得在再新之後,NV快取記憶體保留其容量之至少部分。在所給實例中,在再新之後,NV快取記憶體之總容量等於預定百分比。
圖9B繪示執行一選擇性再新命令之記憶體系統之一第二實例之一流程圖920,其中儲存資料之一或多個識別特性經審查以判定是否再新來自NV快取記憶體之資料。在922中,記憶體系統自主機系統接 收用於儲存之資料,其中該資料包含至少一識別態樣,諸如一LBA。在924中,記憶體系統將具有該相關聯識別態樣之該資料儲存於NV快取記憶體中(例如,儲存該資料及其各自LBA)。在926中,記憶體器件自主機器件接收該選擇性再新命令。該選擇性再新命令包含一識別態樣(諸如一LBA),其用於選擇性地再新來自NV快取記憶體之資料。在928中,記憶體系統判定NV快取記憶體中之項目之任何者是否包含926中所接收之該選擇性再新命令中之該識別態樣。
在NV快取記憶體之操作期間,NV快取記憶體中之資料可保存於NV快取記憶體中或可轉移至主記憶體。據此而言,當一選擇性再新命令包含一識別態樣(諸如一LBA)時,記憶體器件在NV快取記憶體中搜尋與該LBA匹配之項目。若找到一匹配項,則在930中將NV快取記憶體中之資料項目寫入至主記憶體。若未找到一匹配項,則已將資料項目寫入至主記憶體,使得無需再新該項目。
此外,可捨棄NV快取記憶體中之資料,藉此避免必須再新至主記憶體中之該資料(且其後自主記憶體刪除該資料)。主機系統可指示記憶體系統依若干方式之一者自NV快取記憶體刪除資料。依一方式,主機系統可發送資料,該資料包含相同於已駐留於NV快取記憶體中之資料的LBA。換言之,主機系統可發送一捨棄命令以及一LBA。回應於接收該捨棄命令,記憶體系統可在NV快取記憶體中搜尋該LBA。回應於一匹配,記憶體系統可刪除與該LBA相關聯之資料。替代地,回應於一匹配,記憶體系統可標識用於捨棄之資料。該捨棄標識可對記憶體系統指示:資料不再有效,藉此服務兩個目的。第一,該捨棄標識可由記憶體系統用於指示:不再新至主記憶體之該資料(例如,使用一較長時間TRIM來程式化至X3)。第二,該捨棄標識可由記憶體系統用於指示:忽略該資料。更具體而言,標識為捨棄之資料可具有8885之一LBA。若記憶體系統對LBA 8885執行一搜尋且 判定匹配,則記憶體系統可注意到與LBA 8885相關聯之捨棄標識且忽略資料。
例如,主機系統可將一組之10段資料(例如圖像)發送至記憶體系統,各段資料具有一相關聯之LBA。回應於該10段資料之接收,記憶體系統將該10段資料與相關聯LBA一起儲存於NV快取記憶體中。主機系統可命令將該等資料段之何者發送至主記憶體及捨棄該等資料段之何者。例如,資料段#2及資料段#6之LBA可分別為LBA 1012及LBA 1016。主機器件可藉由發送LBA 1012及LBA 1016而發送用於與資料段#2及資料段#6相關聯之LBA的一選擇性再新命令。回應於該再新命令之接收,記憶體系統可搜尋相關聯LBA,發現資料段#2及資料段#6具有相關聯LBA,且將資料段#2及資料段#6保存至主記憶體。作為另一實例,主機器件可發送資料以及與已儲存於NV快取記憶體中之資料段相關聯之相同LBA。例如,資料段#1及資料段#3可分別具有對應LBA 1011及LBA 1013。主機系統可發送具有LBA 1011及LBA 1013之一寫入命令。回應於該寫入命令之接收,記憶體系統可在NV快取記憶體中搜尋該寫入命令中之LBA,判定該等LBA相同於與資料段#1及資料段#3相關聯之LBA,且自NV快取記憶體刪除資料段#1及資料段#3,或標識資料段#1及資料段#3(其中該標識對記憶體系統指示:不會在一再新操作期間將資料段#1及資料段#3複製至主記憶體)。
如上文所討論,各種觸發可經產生以判定是否發送一選擇性再新命令。觸發可由記憶體器件產生或可由主機器件產生。圖9C繪示產生且發送一選擇性再新命令之主機系統之一第一實例之一流程圖930,其中觸發由記憶體器件產生。在932中,主機系統將資料發送至記憶體系統以儲存於NV快取記憶體中。在934中,主機系統接收NV快取記憶體之充滿度之一指示。如上文所討論,主機系統可預先已指示記憶體系統對主機系統指示NV快取記憶體何時已達到充滿度之一 預定臨限值,使得當NV快取記憶體達到充滿度之該預定臨限值時,主機系統接收該通知。NV快取記憶體之充滿度之該指示可充當使主機器件發送一選擇性再新命令之一觸發。因此,回應於NV快取記憶體之充滿度之接收,在936中,主機系統將一選擇性再新命令發送至記憶體系統。該選擇性再新命令對記憶體系統指示在執行該選擇性再新命令之後保留於NV快取記憶體中之非零量。
圖9D至圖9E繪示其中主機系統決定對記憶體系統進行NV快取記憶體之充滿度輪詢的實例。更具體而言,圖9D繪示產生且發送一選擇性再新命令之主機系統之一流程圖950。在952中,主機系統操作主機系統上之一應用程式。在954中,主機系統判定:為了效能,NV快取記憶體之特定量需要為可用的。例如,在一攝影機應用中,主機系統可在叢發模式中判定NV快取記憶體中之空間之至少特定量應為可用的。據此而言,主機系統可在執行該應用程式時觸發審查NV快取記憶體是否具有足夠可用空間。
若主機判定需要NV快取記憶體中之空間之特定量,則在956中,主機系統輪詢記憶體系統以判定NV快取記憶體之充滿度。在958中,主機系統接收輪詢之一回應,其中該回應包含NV快取記憶體之充滿度。
在960中,主機系統基於NV快取記憶體之充滿度(如輪詢之回應中所報告)而判定NV快取記憶體是否需要經再新使得操作應用程式所需之快取記憶體之特定量係可用的。若主機系統判定NV快取記憶體不具有應用程式所需之特定量之空間,則在962中,主機系統命令記憶體系統再新NV快取記憶體,使得NV快取記憶體之至少特定量係可用的。
圖9E繪示產生且發送一選擇性再新命令之主機系統之一流程圖970。在972中,主機系統操作主機系統上之一應用程式。在974中, 類似於954,主機系統判定:為了效能,NV快取記憶體之特定量需要為可用的。若判定需要NV快取記憶體之特定量,則在976中,主機系統命令記憶體系統再新NV快取記憶體,使得快取記憶體空間之至少特定量係可用的。據此而言,在圖9E中,主機系統指示記憶體系統判定NV快取記憶體中之可用空間之充足度。此與圖9D(其中主機系統判定NV快取記憶體中之可用空間之充足度)形成對比。
圖10A繪示控制記憶體系統102上之NV快取記憶體之一預取操作的主機系統100之一實例之一流程圖1000。在1002中,主機系統判定是否預取資料。若需要預取資料,則主機系統將一命令發送至記憶體系統以預取儲存於主記憶體中之資料。在發送該預取命令之後,在1006中,主機系統發送一命令以讀取該預取資料。
圖10B繪示管理NV快取記憶體之一預取操作的記憶體系統102之一實例之一流程圖1050。在1052中,記憶體系統102接收一命令以預取儲存於主記憶體中之資料。在1054中,記憶體系統102將該資料自主記憶體複製至NV快取記憶體中。在1056中,記憶體系統102判定是否已接收一命令來存取該預取資料。若已接收該命令,則在1058中,記憶體器件自NV快取記憶體存取該預取資料。
如上文所討論,主機系統可發送一命令來指示NV快取記憶體之大小。例如,主機系統可發送將快取記憶體單位之數目指示為NV快取記憶體之大小的一命令。更具體而言,NV_Cache_Size命令可包含指示NV快取記憶體之大小(以NV快取記憶體單位大小為單位)的一參數,如上文所討論。
在一實施例中,回應於接收指示快取記憶體之大小的主機系統命令,記憶體系統可將等於由該主機系統命令規定之大小的記憶體分配給NV快取記憶體。例如,若主機系統指示NV快取記憶體係NV快取記憶體單位大小之10個單位,則記憶體系統可分配等於NV快取記 憶體單位大小之10個單位的記憶體。在一替代實施例中,在特定情形下,記憶體系統可將大於由該主機系統命令規定之大小的記憶體分配給NV快取記憶體。例如,若主機系統指示NV快取記憶體係NV快取記憶體單位大小之10個單位,則記憶體系統可分配等於NV快取記憶體單位大小之20個單位的記憶體。在又一替代實施例中,記憶體系統可將小於由該主機系統命令規定之大小的記憶體分配給NV快取記憶體。例如,若主機系統指示NV快取記憶體係NV快取記憶體單位大小之10個單位,則記憶體系統可分配等於NV快取記憶體單位大小之4個單位的記憶體。在又一替代實施例中,記憶體系統可最初將大於由該主機系統命令規定之大小的記憶體分配給NV快取記憶體,且在記憶體系統之操作期間,可減小分配給NV快取記憶體之記憶體(例如,減小分配記憶體,直至其等於由該主機系統命令規定之大小,且其後甚至進一步減小分配記憶體,直至其小於由該主機系統命令規定之大小)。例如,若主機系統指示NV快取記憶體係NV快取記憶體單位大小之10個單位,則記憶體系統可最初分配等於NV快取記憶體單位大小之20個單位的記憶體,且隨時間逝去,歸因於主記憶體之填充或不佳區塊,將分配記憶體減小至等於NV快取記憶體單位大小之10個單位,且其後將分配記憶體減小至小於NV快取記憶體單位大小之10個單位。
圖11A繪示過量供應NV快取記憶體之大小的記憶體系統之一實例之一流程圖1100。在1102中,記憶體系統自主機系統接收指示NV快取記憶體之大小的一命令。在1104中,視情況而定,記憶體系統可確認自主機系統接收該命令。在1106中,記憶體系統可判定主記憶體中之未使用空間之量。例如,若記憶體系統較新且儲存於主記憶體中之資料不多,則主記憶體之大部分係未使用的。
在1108中,記憶體系統可判定是否存在足夠量之未使用空間。例 如,記憶體系統可比較未使用空間之量與一預定臨限值。回應於判定記憶體系統不具有足夠量之未使用空間,在1110中,記憶體系統可將等於主機系統命令中所請求之大小的記憶體分配給NV快取記憶體。回應於判定記憶體系統具有足夠量之未使用空間,在1112中,記憶體系統可將大於主機系統命令中所請求之大小的記憶體分配給NV快取記憶體。因此,在1112中,記憶體系統將記憶體過量供應給NV快取記憶體。在1114中,記憶體系統可鑑於分配給NV快取記憶體之量而判定總儲存量以將匯出容量發送至主機系統。如圖11A中所繪示,無論記憶體系統是否對NV快取記憶體過量供應或依據主機系統命令而等量供應,至主機之匯出容量將係相同的。
圖11B繪示欠量供應NV快取記憶體之大小的記憶體系統之一實例之一流程圖1130。不同於圖11A,圖11B在1132中決定將小於主機系統命令中所請求之大小的記憶體分配給NV快取記憶體。此外,在1134中,記憶體系統可不基於主機命令中所請求之NV快取記憶體,而是基於分配給NV快取記憶體之欠量供應量而判定匯出容量。據此而言,歸因於欠量供應,匯出容量大於由主機系統請求之NV快取記憶體大小。在1136中,記憶體系統可修改用於控制NV快取記憶體之至少一控制參數,諸如再新NV快取記憶體之頻率。更具體而言,歸因於NV快取記憶體之較小大小,記憶體系統可更頻繁地再新來自NV快取記憶體之資料(諸如在閒置時間期間),使得NV快取記憶體可具有足夠空間來接受資料。
圖11C繪示過量供應NV快取記憶體之大小且接著減小NV快取記憶體之大小的記憶體系統之一實例之一流程圖1160。在執行過量供應(參閱1102至1106)之後,記憶體系統可判定減小經過量供應之NV快取記憶體。在1162中,判定是否應減小NV快取記憶體之大小。減小NV快取記憶體之原因可包含(但不限於):主記憶體中之不佳或無法使用 區塊;主記憶體中之自由空間量減少。換言之,為維持匯出容量(如先前對主機系統所報告),且歸因於主記憶體中無可用空間用於寫入,記憶體系統可減少對NV快取記憶體之記憶體分配。回應於判定應減小NV快取記憶體之大小,在1164中,判定NV快取記憶體之大小是否小於由主機系統命令之大小。若NV快取記憶體之大小小於由主機系統命令之大小,則在1166中,修改至少一控制參數,諸如再新之頻率。在上文所給之過量供應之實例中,主機系統請求10個快取記憶體單位。最初,記憶體系統將20個快取記憶體單位分配給NV快取記憶體。隨時間逝去,記憶體系統可減小NV快取記憶體之大小,直至NV快取記憶體等於10個單位(相同於主機系統命令之大小)。甚至稍後,歸因於不佳區塊或其類似者,記憶體系統可進一步減小NV快取記憶體之大小,藉此欠量供應NV快取記憶體。此外,在記憶體系統改變NV快取記憶體之大小之整個過程中,匯出容量可保持相同。
與控制快取記憶體之組態及/或操作分離,主機系統可組態或控制記憶體系統之其他態樣。在一實施例中,主機系統可命令記憶體系統在記憶體系統閒置時執行一或多個操作。例如,主機系統可命令記憶體系統在其閒置時自其主儲存器讀取資料,判定該資料中是否存在潛在錯誤,且回應於判定該資料中存在潛在錯誤,藉由將該資料複製至記憶體中之另一區段而再新該資料。實際上,主機系統可命令記憶體系統執行一讀取清除。回應於該命令之接收,記憶體系統在閒置時自其主記憶體讀取資料。可使用一ECC引擎來分析該資料以判定一位元錯誤率(BER)。回應於該BER高於一預定臨限值,記憶體系統可決定藉由將該資料複製至記憶體之一新區段(例如,將資料自記憶體之一第一區塊複製至記憶體之一第二區塊)且接著擦除記憶體之原區段(例如,擦除該第一區塊)而再新該資料。用於執行一讀取清除之一命令之一實例如下: HIRR_START_STOP(R/W)(EXT_CSD[XXX])
此外,主機系統可命令記憶體系統提供主儲存器被再新之程度之一指示。該指示可包括主儲存器之一百分比(%),記憶體系統已讀取該百分比,使用ECC引擎來分析該百分比,且回應於判定一高BER而再新資料。用於提供主儲存器被再新之程度一指示的一命令之一實例如下:HIRR_STATUS(R)(EXT_CSD[xxx])(使完成之再新媒體之%恢復)
因此,在一實施例中,揭示一種記憶體器件。該記憶體器件包括:一介面,其經組態以與一主機器件通信;一非揮發性記憶體;及處理器電路,其與該介面及該非揮發性記憶體通信。該處理器電路包含:一輪詢回應模組,其經組態以產生對自該主機器件經由該介面而接收之一非揮發性快取記憶體輪詢的一回應;及一非揮發性快取記憶體控制模組,其經組態以基於自該主機器件經由該介面而接收之一非揮發性快取記憶體命令而控制該非揮發性記憶體中之一非揮發性快取記憶體。在一態樣中,該非揮發性快取記憶體控制模組經組態以接收一非揮發性快取記憶體組態命令且基於該非揮發性快取記憶體組態命令而組態該非揮發性快取記憶體。更具體而言,該非揮發性快取記憶體組態命令包括該非揮發性快取記憶體之一大小,且該非揮發性快取記憶體控制模組經組態以基於該命令中之該大小而設定該非揮發性快取記憶體之大小。在另一態樣中,該非揮發性快取記憶體控制模組經組態以接收一選擇性再新命令且選擇性地再新該非揮發性快取記憶體,使得在執行該命令之後,該非揮發性快取記憶體保留資料之至少一部分。該選擇性再新命令包含至少一識別態樣,且該非揮發性快取記憶體控制模組經組態以選擇性地移除與該至少一識別態樣匹配之該非揮發性快取記憶體中之項目。例如,該至少一識別態樣包括一位址,且該非揮發性快取記憶體控制模組經組態以移除與該位址匹配之 該非揮發性快取記憶體中之項目。
指令可體現於一電腦可讀媒體中。該電腦可讀媒體可為一單一媒體,或該電腦可讀媒體可為一單一媒體或多個媒體(諸如一集中式或分散式資料庫)及/或相關聯之快取記憶體及伺服器(其等儲存一或多組指令)。術語「電腦可讀媒體」亦可包含任何媒體,其能夠儲存、編碼或載送由一處理器執行之一組指令或可引起一電腦系統執行本文所揭示之方法或操作之任何一或多者。
該電腦可讀媒體可包含容置一或多個非揮發性唯讀記憶體之一固態記憶體,諸如一記憶卡或其他封裝。該電腦可讀媒體亦可為一隨機存取記憶體或其他揮發性可重寫記憶體。另外,該電腦可讀媒體可包含一磁光或光學媒體(諸如一磁碟或磁帶或其他儲存器件)來捕獲載波信號,諸如通過一傳輸媒介而通信之一信號。一電子郵件之一數位檔案附件或其他自含式資訊存檔或存檔集可被視為可為一有形儲存媒體之一分散媒體。該電腦可讀媒體較佳地係一有形儲存媒體。相應地,本發明可被視為包含其中可儲存資料或指令之一電腦可讀媒體或一分散媒體及其他等效物及後續媒體之一或多者。
替代地或另外,專用硬體實施方案(諸如專用積體電路、可程式化邏輯陣列及其他硬體器件)可經建構以實施本文所描述之方法之一或多者。可包含各種實施例之裝置及系統的應用可廣泛地包含各種電子及電腦系統。本文所描述之一或多個實施例可使用具有相關控制及資料信號之兩個或兩個以上特定互連硬體模組或器件來實施功能,該等控制及資料信號可在該等模組之間通信且透過該等模組而通信,或作為一專用積體電路之部分。相應地,本發明之系統可涵蓋軟體實施方案、韌體實施方案及硬體實施方案。
本文所描述之說明圖意欲提供各種實施例之結構之一大體理解。說明圖不意欲用於完全描述利用本文所描述之結構或方法之裝 置、處理器及系統之所有元件及特徵。熟習技術者可在檢閱本發明之後明白諸多其他實施例。可利用其他實施例且自本發明導出其他實施例,使得可在不背離本發明之範疇之情況下作出結構及邏輯替代及改變。另外,本發明僅具代表性且可不按比例繪製。可放大說明圖內之特定比例,同時可使其他部分最小化。相應地,本發明及圖式應被視為具繪示性而非限制性。
上文所揭示之標的應被視為具繪示性而非限制性,且隨附申請專利範圍意欲涵蓋落於本發明之真實精神及範疇內之所有此等修改、改進及其他實施例。因此,在法律允許之最大範圍內,範疇將取決於以下專利申請範圍及其等效物之最廣可容許解譯,且不應受限於以上詳細描述。

Claims (19)

  1. 一種儲存器件,其包括:一記憶體,其包括一非揮發性快取記憶體及一非揮發性儲存媒體;及一控制器,其與該記憶體通信,該控制器經組態以:自一主機系統接收一主機系統快取記憶體命令,該主機系統快取記憶體命令包括至該儲存器件之一命令,該命令包含用於組態或控制該非揮發性快取記憶體之一或多個快取記憶體準則,該一或多個快取記憶體準則係由該主機系統產生且回應於由該儲存器件中之記憶體之該主機系統進行之分析;接收主機資料命令中之主機資料;根據該主機系統快取記憶體命令中所包含之該一或多個快取記憶體準則而相對於處理該主機資料命令中所接收之主機資料來控制該非揮發性快取記憶體之操作;根據儲存媒體準則來控制該非揮發性儲存媒體之操作,其中該一或多個快取記憶體準則不同於該儲存媒體準則;根據一第一TRIM組來程式化該非揮發性快取記憶體中之記憶體胞;及根據一第二TRIM組來程式化該非揮發性儲存媒體中之記憶體胞,其中該第一TRIM組包含至少一TRIM參數且該第二TRIM組包含不同於該第一TRIM組之該至少一TRIM參數之至少一其他TRIM參數,且其中該非揮發性快取記憶體中之該等記憶體胞根據該第一TRIM組之該至少一TRIM參數而程式化,且該非揮發性儲存媒體中之該等記憶體胞根據該第二TRIM組之該至少一其他TRIM參數而程式化。
  2. 如請求項1之儲存器件,其中該控制器經組態以將該非揮發性快取記憶體中之記憶體胞程式化至每記憶體胞之一第一數目個位元;其中該控制器進一步經組態以將該儲存媒體中之記憶體胞程式化至每記憶體胞之一第二數目個位元;且其中每記憶體胞之該第一數目個位元不同於每記憶體胞之該第二數目個位元。
  3. 如請求項2之儲存器件,其中該控制器經組態以針對單位階記憶體胞而程式化該非揮發性快取記憶體中之記憶體胞;且其中該控制器經組態以針對多位階記憶體胞而程式化該非揮發性儲存媒體中之記憶體胞。
  4. 如請求項1之儲存器件,其中該第一TRIM組之該至少一TRIM參數包含一程式化電壓、一升高電壓及一程式化脈寬之至少一者。
  5. 如請求項1之儲存器件,其中該控制器經組態以使用該主機系統快取記憶體命令來組態該非揮發性快取記憶體。
  6. 如請求項5之儲存器件,其中該控制器經組態以程式化該非揮發性儲存媒體中之一各自記憶體胞以儲存多個位元;其中該主機系統快取記憶體命令包括一指示:該非揮發性快取記憶體之至少一部分係單位階記憶體胞;且其中回應於該主機系統快取記憶體命令之接收,該快取記憶體操作電路經組態以程式化該非揮發性快取記憶體中之一各自記憶體胞以儲存一單一位元。
  7. 如請求項4之儲存器件,其中該記憶體包括複數個晶粒,該等晶粒之各者包括複數個區塊;其中將該非揮發性快取記憶體分配給該複數個晶粒之各者中之一區塊之一第一部分,該第一部分小於一整個各自區塊;其中將包括該區塊之一剩餘部分的該區塊之一第二部分分配給該非揮發性儲存媒體;其中該區塊之該第一部分之程式化係根據該第一TRIM組;且其中該區塊之該第二部分之程式化係根據該第二TRIM組。
  8. 如請求項1之儲存器件,其中該主機系統控制命令中之該一或多個快取記憶體準則包括充滿度準則(fullness criteria);且其中該控制器經組態以使用該充滿度準則來判定該非揮發性快取記憶體之一充滿度。
  9. 如請求項1之儲存器件,其中該主機系統快取記憶體命令包括一主機系統控制命令,該主機系統控制命令經組態以控制該非揮發性快取記憶體之操作;且其中該控制器經組態以基於該主機系統控制命令而變更該快取記憶體之操作。
  10. 如請求項9之儲存器件,其中該非揮發性儲存媒體包括主記憶體;且其中該主機系統控制命令指示該控制器繞過(bypass)該非揮發性快取記憶體且將資料程式化於該主記憶體中。
  11. 一種方法,其包括:於具有與包括一非揮發性快取記憶體及一非揮發性儲存媒體之一記憶體通信之一控制器之一儲存器件處,自一主機系統接收一主機系統快取記憶體命令以組態該非揮發性快取記憶體,,該主機系統快取記憶體命令包括至該儲存器件之一命令,該命令包含用於組態或控制該非揮發性快取記憶體之一或多個快取記憶體準則,該一或多個快取記憶體準則係由該主機系統產生且回應於由該儲存器件中之記憶體之該主機系統進行之分析;藉由該儲存器件以該一或多個快取記憶體準則更新非揮發性快取記憶體準則;根據該非揮發性快取記憶體準則來控制該非揮發性快取記憶體;根據儲存媒體準則來控制該非揮發性儲存媒體;其中該非揮發性快取記憶體準則不同於該儲存媒體準則;根據一第一TRIM組來程式化該非揮發性快取記憶體中之記憶體胞;及根據一第二TRIM組來程式化該非揮發性儲存媒體中之記憶體胞;其中該第一TRIM組包含至少一TRIM參數且該第二TRIM組包含不同於該第一TRIM組之該至少一TRIM參數之至少一其他TRIM參數,且其中該非揮發性快取記憶體中之該等記憶體胞根據該第一TRIM組之該至少一TRIM參數而程式化,且該非揮發性儲存媒體中之該等記憶體胞根據該第二TRIM組之該至少一其他TRIM參數而程式化。
  12. 如請求項11之方法,其中該一或多個快取記憶體準則包括每記憶體胞之一第一數目個位元;其中根據每一記憶體胞之該第一數目個位元而程式化該非揮發性快取記憶體中之記憶體胞;其中根據每記憶體胞之一第二數目個位元而程式化該儲存媒體中之記憶體胞;且其中每記憶體胞之該第二數目個位元不同於每記憶體胞之一第二數目個位元。
  13. 如請求項12之方法,其中該程式化該非揮發性快取記憶體中之該等記憶體胞係針對單位階記憶體胞;且其中程式化該儲存媒體中之該等記憶體胞係針對多位階記憶體胞。
  14. 如請求項11之方法,其中其中該第一TRIM組之該至少一TRIM參數包含一程式化電壓、一升高電壓及一程式化脈寬之至少一者。
  15. 如請求項11之方法,其中程式化該非揮發性儲存媒體中之一各自記憶體胞以儲存多個位元;其中該主機系統快取記憶體命令中之該一或多個快取記憶體準則包括一指示:該非揮發性快取記憶體之至少一部分係單位階記憶體胞;且其中回應於該主機系統快取記憶體命令之接收:以該非揮發性快取記憶體之至少一部分係單位階記憶體胞之該指示來更新該非揮發性快取記憶體準則;且該非揮發性快取記憶體中之一各自記憶體胞之程式化係用以儲存一單一位元。
  16. 如請求項11之方法,其中該非揮發性快取記憶體經分配給該記憶體中之一整個或多個區塊。
  17. 如請求項11之方法,其中該記憶體包括複數個晶粒,該等晶粒之各者包括複數個區塊;其中該非揮發性快取記憶體經分配給該複數個晶粒之各者中之一區塊之一第一部分,該第一部分少於一整個各自區塊;且其中包括該區塊之一剩餘部分的該區塊之一第二部分經分配給該非揮發性儲存媒體。
  18. 一種儲存器件,其包括:一記憶體,其包括一非揮發性快取記憶體及一非揮發性儲存媒體;用於自一主機系統接收一主機系統快取記憶體命令之一構建,該主機系統快取記憶體命令包括至該儲存器件之一命令,該命令識別以使用用於程式化該快取記憶體之一快取記憶體程式化操作,該快取記憶體程式化操作則係由該主機系統產生且回應於由該儲存器件中之記憶體之該主機系統進行之分析;用於根據該快取記憶體程式化操作而控制該非揮發性快取記憶體之一構件;用於根據一儲存媒體程式化操作而控制該非揮發性儲存媒體之一構件;用於根據一第一TRIM組來程式化該非揮發性快取記憶體中之記憶體胞之一構件;及用於根據一第二TRIM組來程式化該非揮發性儲存媒體中之記憶體胞之一構件,其中該快取記憶體控制操作不同於該儲存媒體控制操作,其中至少一區塊包括用於非揮發性快取記憶體之一第一部分及用於非揮發性儲存媒體之一第二部分。其中該第一TRIM組包含至少一TRIM參數且該第二TRIM組包含不同於該第一TRIM組之該至少一TRIM參數之至少一其他TRIM參數,且其中該非揮發性快取記憶體中之該等記憶體胞根據該第一TRIM組之該至少一TRIM參數而程式化,且該非揮發性儲存媒體中之該等記憶體胞根據該第二TRIM組之該至少一其他TRIM參數而程式化。
  19. 一種儲存器件,其包括:一記憶體,其包括一非揮發性快取記憶體及一非揮發性儲存媒體;一控制器,其與該記憶體通信,該控制器經組態以:自一主機系統接收一主機系統快取記憶體命令,該主機系統快取記憶體命令包括至該儲存器件之一命令,該命令包含用於組態或控制該非揮發性快取記憶體之一或多個快取記憶體準則,該一或多個快取記憶體準則係由該主機系統產生且回應於由該儲存器件中之記憶體之該主機系統進行之分析;接收主機資料命令中之主機資料;根據該主機系統快取記憶體命令中所包含之該一或多個快取記憶體準則而相對於處理該主機資料命令中所接收之主機資料來控制該非揮發性快取記憶體之操作;根據儲存媒體準則來控制該非揮發性儲存媒體之操作,其中該一或多個快取記憶體準則不同於該儲存媒體準則;根據一第一TRIM組來程式化該非揮發性快取記憶體中之記憶體胞;及根據一第二TRIM組來程式化該非揮發性儲存媒體中之記憶體胞,其中該第一TRIM組包含至少一TRIM參數且該第二TRIM組包含不同於該第一TRIM組之該至少一TRIM參數之至少一其他TRIM參數,且其中該非揮發性快取記憶體中之該等記憶體胞根據該第一TRIM組之該至少一TRIM參數以一第一率程式化,且該非揮發性儲存媒體中之該等記憶體胞根據該第二TRIM組之該至少一其他TRIM參數以一第二率程式化,該第二率不同於該第一率。
TW104129427A 2014-09-16 2015-09-04 用於組態和控制非揮發性快取記憶體的系統及方法 TWI679642B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/487,905 2014-09-16
US14/487,905 US10430328B2 (en) 2014-09-16 2014-09-16 Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters

Publications (2)

Publication Number Publication Date
TW201621912A TW201621912A (zh) 2016-06-16
TWI679642B true TWI679642B (zh) 2019-12-11

Family

ID=54011913

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104129427A TWI679642B (zh) 2014-09-16 2015-09-04 用於組態和控制非揮發性快取記憶體的系統及方法

Country Status (3)

Country Link
US (1) US10430328B2 (zh)
TW (1) TWI679642B (zh)
WO (1) WO2016043923A1 (zh)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061516B2 (en) * 2015-09-25 2018-08-28 Intel Corporation Methods and apparatus to configure performance of a solid state drive based on host write bandwidth
US10452596B2 (en) * 2015-10-29 2019-10-22 Micron Technology, Inc. Memory cells configured in multiple configuration modes
US10120808B2 (en) * 2016-04-22 2018-11-06 Arm Limited Apparatus having cache memory disposed in a memory transaction path between interconnect circuitry and a non-volatile memory, and corresponding method
TWI622923B (zh) * 2016-05-04 2018-05-01 群聯電子股份有限公司 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置
US10534716B2 (en) 2016-07-13 2020-01-14 Seagate Technology Llc Limiting access operations in a data storage device
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
US10579539B2 (en) * 2017-08-02 2020-03-03 ScaleFlux, Inc. Storage infrastructure and method for exploiting in-storage transparent compression using a dummy file that consumes LBA storage without consuming PBA storage
US10402337B2 (en) * 2017-08-03 2019-09-03 Micron Technology, Inc. Cache filter
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US11016665B2 (en) 2018-01-23 2021-05-25 Seagate Technology Llc Event-based dynamic memory allocation in a data storage device
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10705963B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705747B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10901903B2 (en) * 2018-12-21 2021-01-26 Micron Technology, Inc. Flash memory persistent cache techniques
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10916306B2 (en) 2019-03-07 2021-02-09 Western Digital Technologies, Inc. Burst mode operation conditioning for a memory device
KR20200110547A (ko) * 2019-03-14 2020-09-24 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
US10891065B2 (en) * 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
KR20200134784A (ko) * 2019-05-23 2020-12-02 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US20210042236A1 (en) * 2019-08-06 2021-02-11 Micron Technology, Inc. Wear leveling across block pools
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
TWI742698B (zh) * 2019-11-29 2021-10-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
TWI747191B (zh) 2020-03-09 2021-11-21 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11507843B2 (en) 2020-03-30 2022-11-22 Western Digital Technologies, Inc. Separate storage and control of static and dynamic neural network data within a non-volatile memory array
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507835B2 (en) 2020-06-08 2022-11-22 Western Digital Technologies, Inc. Neural network data updates using in-place bit-addressable writes within storage class memory
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11256620B1 (en) 2020-11-13 2022-02-22 Micron Technology, Inc. Cache management based on memory device over-provisioning
US11816343B2 (en) 2020-11-30 2023-11-14 Western Digital Technologies, Inc. Data storage device enabling latches of non-volatile memory dies for use as externally-accessible volatile memory
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11614880B2 (en) * 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US20230376206A1 (en) * 2021-03-19 2023-11-23 Micron Technology, Inc. Write booster buffer flush operation
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US20230350593A1 (en) * 2022-04-29 2023-11-02 Stmicroelectronics Sa Method, system, and circuit for deploying file system on embedded memory in programmable computing device
US20230376205A1 (en) * 2022-05-17 2023-11-23 Micron Technology, Inc. Commanded device states for a memory system
US20240143227A1 (en) * 2022-10-26 2024-05-02 Western Digital Technologies, Inc. Data Storage Device and Method for Reducing Flush Latency

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157974A1 (en) * 2007-12-12 2009-06-18 Menahem Lasser System And Method For Clearing Data From A Cache
US20100223423A1 (en) * 2005-02-16 2010-09-02 Sinclair Alan W Direct File Data Programming and Deletion in Flash Memories
US20110066792A1 (en) * 2008-02-10 2011-03-17 Rambus Inc. Segmentation Of Flash Memory For Partial Volatile Storage
US20120311293A1 (en) * 2011-05-31 2012-12-06 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device
US20130132638A1 (en) * 2011-11-21 2013-05-23 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US20140157086A1 (en) * 2012-11-30 2014-06-05 Sandisk Technologies Inc. Storage and retrieval of shaped data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7583545B2 (en) * 2006-05-21 2009-09-01 Sandisk Il Ltd Method of storing data in a multi-bit-cell flash memory
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US9092340B2 (en) 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
US9251086B2 (en) * 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10055294B2 (en) 2014-01-09 2018-08-21 Sandisk Technologies Llc Selective copyback for on die buffered non-volatile memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223423A1 (en) * 2005-02-16 2010-09-02 Sinclair Alan W Direct File Data Programming and Deletion in Flash Memories
US20090157974A1 (en) * 2007-12-12 2009-06-18 Menahem Lasser System And Method For Clearing Data From A Cache
US20110066792A1 (en) * 2008-02-10 2011-03-17 Rambus Inc. Segmentation Of Flash Memory For Partial Volatile Storage
US20120311293A1 (en) * 2011-05-31 2012-12-06 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device
US20130132638A1 (en) * 2011-11-21 2013-05-23 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US20140157086A1 (en) * 2012-11-30 2014-06-05 Sandisk Technologies Inc. Storage and retrieval of shaped data

Also Published As

Publication number Publication date
WO2016043923A1 (en) 2016-03-24
TW201621912A (zh) 2016-06-16
US10430328B2 (en) 2019-10-01
US20160077968A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
TWI679642B (zh) 用於組態和控制非揮發性快取記憶體的系統及方法
US10162748B2 (en) Prioritizing garbage collection and block allocation based on I/O history for logical address regions
CN107025178B (zh) 存储器控制器、非易失性存储器***及其操作方法
US10146448B2 (en) Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114562B2 (en) Adaptive block allocation in nonvolatile memory
US10114557B2 (en) Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656842B2 (en) Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10656840B2 (en) Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9703491B2 (en) Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US20170123972A1 (en) Garbage collection based on queued and/or selected write commands
US10115437B1 (en) Storage system and method for die-based data retention recycling
US20160188455A1 (en) Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated
US10372613B2 (en) Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US20100030948A1 (en) Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system
US9632705B2 (en) System and method for adaptive memory layers in a memory device
US20210133111A1 (en) Memory system and operating method thereof
US20190324903A1 (en) Storage cache management
US11842069B2 (en) Storage system and method for delaying flushing of a write buffer based on a host-provided threshold
US11797190B2 (en) Data storage device and method for providing a temperature-driven variable storage capacity point
US11626183B2 (en) Method and storage system with a non-volatile bad block read cache using partial blocks
US9110857B1 (en) Systems and methods for identifying and compressing rarely used data
US10089226B2 (en) Systems and methods for immediate physical erasure of data stored in a memory system in response to a user command
US11972149B2 (en) Storage system and method for optimizing host-activated defragmentation and proactive garbage collection processes
US11429296B2 (en) Storage system, host, and method for extended and imaginary logical-to-physical address mapping
US11513963B2 (en) Data storage device and method for application identifier handler heads-up for faster storage response

Legal Events

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