TWI506431B - 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 - Google Patents

虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 Download PDF

Info

Publication number
TWI506431B
TWI506431B TW102133328A TW102133328A TWI506431B TW I506431 B TWI506431 B TW I506431B TW 102133328 A TW102133328 A TW 102133328A TW 102133328 A TW102133328 A TW 102133328A TW I506431 B TWI506431 B TW I506431B
Authority
TW
Taiwan
Prior art keywords
data
flash memory
host
page
block
Prior art date
Application number
TW102133328A
Other languages
English (en)
Other versions
TW201426305A (zh
Inventor
Frank Yu
Yi Syu Yan
Original Assignee
Infomicro Electronics Shenzhen Ltd
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
Priority claimed from US13/730,797 external-priority patent/US8954654B2/en
Application filed by Infomicro Electronics Shenzhen Ltd filed Critical Infomicro Electronics Shenzhen Ltd
Publication of TW201426305A publication Critical patent/TW201426305A/zh
Application granted granted Critical
Publication of TWI506431B publication Critical patent/TWI506431B/zh

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶 體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統
本申請是美國專利號為13/540,569,遞交日為2012年7月2日的申請「具有耐用轉換層ETL和用於減少快閃記憶體磨損的暫時檔案轉移的超級耐力硬碟固體狀態驅動機」的部分連續案(continuation-in-part,CIP)。
本申請是美國專利號為12/475,457,遞交日為2009年5月29日的申請「多層次條帶化和快閃記憶體系統的截斷頻道均衡」的部分連續案(continuation-in-part,CIP)。
本申請是專利號為12/347,306,遞交日為2008年12月31日,現在美國申請號為8,112,574的申請「在具有組合快閃記憶體寫的命令序列的快閃記憶體系統中局部映射表的可交換集」的部分連續案(continuation-in-part,CIP)。
本申請是美國專利號為12/141,879,遞交日為2008年6月18日的申請「基於儲存系統的高性能和耐力的非易失儲存器」的部分連續案(continuation-in-part,CIP)。
本申請與美國專利號為7,953,931,遞交日為2008年2月21日的申請「高耐力非易失性快閃記憶體設備」相關。
本申請與美國專利號為7,333,364,遞交日為2007年4月19日的申請「對多位單元快閃記憶體的單元降級及參考電壓調整」相關。
本發明有關於快閃記憶體系統,尤其係有關於一種具有增強耐力和壽命的快閃記憶體驅動。
快閃記憶體被廣泛的用於電腦系統中的外圍儲存和可攜式裝置的主要儲存裝置。NAND快閃記憶體是由東芝公司的舛岡富士雄博士在1987年發明的,採用電子可抹除可程式化唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)單元,EEPROM單元在浮動閘極儲存電荷。單元通常藉由雪崩電流編程,並採用量子力學隧道穿過薄氧化物方式抹除。不幸的是,在寫程式或抹除程式過程中,一些電子可能會被薄氧化層捕獲。假設一個恒定的編程電壓,這些被捕獲的電子將減少後續編程循環過程中儲存單元儲存的電荷。通常情況下,藉由提高編程電壓以補償被捕獲的電子。
由於快閃記憶體的密度和大小的增加,單元的大小也變小。氧化物的厚度,包括隧道氧化物的厚度也變薄。氧化物稀釋劑則更容易捕獲電子,且捕獲也更容易失敗。NAND快閃記憶體的浮動閘極用於捕獲電子。浮動閘極中的電子的數量可能會影響輸出電壓位準。藉由控制 寫過程中耗乏層(depletion layer)捕獲的電子的數目,獲取不同的電壓位準。之前較小的浮動閘極面積限制了可以捕獲電子的最大數目(現在只是幾百個電子)。由於編程或讀取可能引起電子洩漏或被浮動閘極捕獲。這種電子數目的變化會影響電壓輸出位準的變化以及讀取結果。
快閃記憶體能夠承受的程式抹除次數大約是10萬次,這使得快閃記憶體在正常讀寫的情況下有很長的壽命。然而,較小的快閃記憶體單元已經有了較高的耐磨性,對二層單元而言,較新的快閃記憶體可能到達不少於1萬次程式抹除週期,而三層單元(Triple-Level Cells,TLC)大約為600次。如果按目前的趨勢發展下去,未來快閃記憶體可能只允許300次的程式抹除循環。如此低的耐力可能會嚴重限制快閃記憶體的應用,同時嚴重影響硬碟固體狀態驅動機(SSD)的應用。
提高快閃記憶體的密度的一種方法是每個儲存單元內部儲存儲存多於1位元的訊息。儲存單元的不同電壓位準被分配不同的多位元值,例如,4伏特電壓可以覆蓋2位元儲存單元。然而,多層單元(MLC)和三層單元(TLC)的雜訊餘量減少了,耐力問題加劇了。
很有可能,未來潛在的快閃記憶體耐力將降低。快閃記憶體驅動器可能藉由各種技術彌補潛在快閃記憶體低耐力。例如,快閃記憶體驅動上的DRAM緩衝區驅動可以作為一個回寫緩衝記憶體,當主機在相同資料位置執行寫時,減少向底層快閃記憶體的寫次數。
期望的情形是,快閃記憶體驅動的主機軟體驅動器和控制器補償底層快閃記憶體設備的低耐用性。期望藉由主機的虛擬記憶體設備(Virtual-Memory Device,VMD)應用程式和驅動器連接到標準的硬碟固體狀態驅動機(Solid-State Drive,SSD)或超級耐力快閃記憶體驅動,以使用一系列先進的管理技術以減少對快閃記憶體寫的數量, 進而減少對底層快閃記憶體的程式抹除週期。期望藉由主機的VMD應用程式和驅動器管理超級耐力快閃記憶體驅動以構建形成低耐力快閃記憶體。
本發明第一方面提供了虛擬記憶體設備(VMD)驅動器,驅動器在主機上執行,包括:檔案類型識別器,用於為VMD驅動器接收的主機寫產生一個資料類型;資料拆分管理器,用於根據資料類型識別器識別的資料類型,對主機寫入資料進行分類;資料寫入緩衝記憶體,用於儲存用戶資料類型的主機寫資料;元資料(metadata)緩衝記憶體,用於儲存元資料類型的主機寫資料;分頁緩衝記憶體,用於儲存分頁檔案資料類型的主機寫資料;暫時緩衝記憶體,用於儲存暫時資料類型的主機寫資料;用戶分組引擎,用於將儲存在資料寫緩衝記憶體中的用戶資料分類成用戶元頁;元資料分組引擎,用於將儲存在資料寫緩衝記憶體中的元資料分類成元資料的元頁; 輸出緩衝區,用於將分組的元頁和資料類型訊息發送到快閃記憶體驅動系統進行儲存。
本發明第二方面提供了一種用於在主機上執行的虛擬記憶體設備(VMD)驅動器,包括:資料類型分配器,用於為藉由VMD驅動器接收的主機寫產生資料類型;任務優先級分配器,用於為任務分配優先級,包括根據資料類型寫主機寫資料,優先級是來自於資料類型分配器的資料類型的函數;目標分配器,用於根據資料類型分配器產生的資料類型,對主機寫資料進行分類;資料寫緩衝記憶體,用於儲存具有用戶資料類型的主機寫資料;虛擬磁碟驅動器,用於將具有暫時資料類型的主機寫資料儲存到主機DRAM中;資料讀緩衝記憶體,用於儲存主機讀資料;分組引擎,用於將儲存在資料寫緩衝記憶體中的資料分組為元頁;取消分組引擎,用於將儲存在元頁中的資料取消分組為儲存在資料讀緩衝記憶體中儲存的取消分組資料;元資料被從分組引擎發送到卷管理器(Volume Manager),以傳輸到快閃記憶體,並藉由取消分組引擎接收儲存在快閃記憶體中的 元頁;電源監測器,用於檢測電源故障;刷新管理器,用於當電源損失時,將主機DRAM儲存的資料刷新到SSD DRAM中,然後刷新到快閃記憶體驅動系統的快閃記憶體中;恢復管理器,用於當電源恢復時,加載從快閃記憶體驅動系統的快閃記憶體獲取的刷新資料,然後刷新到主機DRAM。
本發明第三方面提供了一種刷新快閃記憶體的方法,包括:獲得當前日期;在快閃記憶體的塊列表中的現行塊:(a)讀塊狀態(block state)表,塊狀態表用於現行塊的抹除計數和對現行塊的寫日期,日期表示現行塊上次被寫入的日期;計算第一時間延遲作為寫日期與當前日期的差;將第一時間延遲作為保留時間;當第一時間延遲超過保留時間時,將現行塊中的所有有效頁移動至在動態隨機存取記憶體DRAM的備用塊中的空白頁中;當DRAM中的備用塊是滿的時,將來自DRAM的備用塊中的資料移動至快閃記憶體中的備用塊;抹除現行塊;在快閃記憶體的塊列表中選擇另一個塊作為現行塊,並從 (a)重複,直至處理完塊列表中的所有塊,至此,快閃記憶體塊被刷新。
本發明第四方面提供了一種快閃記憶體刷新的方法,包括:獲得當前的日期;對於在快閃記憶體的塊列表中的現行塊中的當前頁:(a)讀塊狀態表,塊狀態表用於現行塊的抹除計數;(b)讀頁狀態表,頁狀態表用於當前頁的寫日期,日期表示當前頁上次寫的日期;計算第一時間延遲作為寫日期與當前日期的差;將第一時間延遲作為保留時間;當第一時間延遲超過保留時間時,將現行塊中的當前頁移動至在動態隨機存取記憶體DRAM的備用塊中的空白頁中;當DRAM中的備用塊是滿的時,將來自DRAM的備用塊中的資料移動至快閃記憶體中的備用塊;在現行塊中選擇另一個頁,並從(b)重複,直至處理完現行塊中的所有頁;在快閃記憶體的塊列表中選擇另一個塊作為現行塊,並從(a)重複,直至處理完塊列表中的所有塊,至此,快閃記憶體頁被刷新。
本發明第五方面提供了一種超級增強耐力設備(SEED)硬碟固體狀態驅動機(SSD)耐用轉換層(Endurance Transaction Layer,ETL)方法,方法用來增強具有低指定抹除循環壽命的快閃記憶體的耐力,包括: 在由控制器控制的動態隨機存取記憶體(DRAM)緩衝區中創建ETL和使用ETL層,以提供暫時的儲存空間,以減少對快閃記憶體的磨損;在DRAM緩衝區中創建備用交換區域;使用DRAM緩衝區中的備用交換區域操作控制器,以合併具有新資料的快閃記憶體中的有效資料,以產生組合資料;當覆蓋寫快閃記憶體中現有塊中的全部頁或者局部頁時,將新資料寫到與快閃記憶體中現有塊相關的DRAM緩衝區的備用塊中,對快閃記憶體中的不同塊,當額外的新資料需要備用塊時,將具有新資料和來自快閃記憶體的現有塊的資料的備用塊的組合寫入快閃記憶體中的備用塊中,將快閃記憶體中現有塊中的所有頁,標記頁狀態作為垃圾頁;當電源損失時,使用備用電源為DRAM緩衝區和快閃記憶體和控制器提供電能,備用電源具有足夠的容量,以使控制器將ETL層所需的資料備份到快閃記憶體,由此,由控制器使用DRAM緩衝區,而不是快閃記憶體,執行備用交換功能。
本發明第六方面提供了一種超級增強耐力設備(SEED),包括:主機界面,用於接收來自於主機的主機讀和主機寫;SEED動態隨機存取記憶體(DRAM)緩衝區,用於儲存資料;控制器,用於控制對快閃記憶體和DRAM緩衝區的存取,以響應主機界面接收的主機讀和主機寫,控制器將主機資料寫入到 DRAM緩衝區中;SEED硬碟固體狀態驅動機(SSD)耐用轉換層(ETL),在DRAM緩衝區中執行,且由使用ETL的控制器控制,以提供暫時儲存以減少對快閃記憶體的磨損;資料寫緩衝記憶體,資料寫緩衝記憶體儲存在DRAM緩衝區中,且藉由控制器進行管理;快閃記憶體界面,用於抹除塊和對快閃記憶體頁進行寫,其中,塊是頁大小的倍數;快閃記憶體,用於儲存來自於SSD DRAM緩衝區的分組的元資料;當電源損失時,使用備用電源為DRAM緩衝區、快閃記憶體和控制器提供電源,備用電源具有足夠的容量,使控制器將在ETL中所需要的資料備份到快閃記憶體中。
本發明第七方面提供了一種用於在主機上執行的虛擬記憶體設備驅動器(VMD),包括:主機耐用轉換層(ETL),用於在主機上執行,增加快閃記憶體耐力,快閃記憶體具有低抹除週期壽命;主機動態隨機存取記憶體(DRAM)緩衝區,位於主機上,藉由主機控制器控制,使用主機ETL層在主機上提供暫時儲存以減少對快閃記憶體的磨損;在硬碟固體狀態驅動機(SSD)上的超級增強耐力設備(SEED),SEED用於增加具有低抹除循環壽命的快閃記憶體的耐力; 在SEED DRAM緩衝區中的SEED耐用轉換層(ETL),藉由SEED控制器控制,SEED ETL提供暫時儲存以減少快閃記憶體磨損。
本發明第八方面提供了一種在主機上執行的虛擬記憶體設備(VMD)驅動器,包括:加密引擎,用於耦合接收截獲的高級別主機寫,並產生加密資料;壓縮引擎,用於耦合接收截獲的高級別次主機寫資料,並產生壓縮資料;資料寫緩衝記憶體,用於儲存主機寫資料;資料讀緩衝記憶體,用於儲存主機讀資料;分組引擎,用於將儲存在資料寫緩衝記憶體中的資料分成元頁;取消分組引擎,用於將儲存在元頁中的資料取消分組為可以儲存在資料讀緩衝記憶體中的儲存的資料;將元頁從分組引擎發送到卷管理器以轉移到快閃記憶體,同時,藉由取消分組引擎接收儲存在快閃記憶體中的元頁;電源監測器,用於檢測電源故障;主機動態隨機存取記憶體(DRAM)緩衝區,用於儲存主機耐用轉換層(ETL);刷新管理器,用於當電源損失時,將儲存在主機DRAM緩衝區中的主機ETL層中的資料刷新到硬碟固體狀態驅動機(SSD)ETL DRAM中,然後儲存到硬碟固體狀態驅動機(SSD)系統的快閃記憶體中;恢復管理器,用於當電源恢復時,加載(Load)從SSD系統的快閃記憶體獲取的刷新資料,然後刷新到主機DRAM緩衝區的主機ETL層中。
本發明第九方面提供了一種耐力快閃記憶體檔案系統,包括:高級別檔案過濾驅動器,用於在主機上執行,並攔截向快閃記憶體驅動器的高級別主機寫;加密解密引擎,用於耦合接收由高級別檔案過濾驅動器截獲的高級別主機寫資料,並產生加密資料和解密資料;壓縮解壓引擎,用於耦合接收由高級別檔案過濾驅動器截獲的高級別次主機寫資料,並產生壓縮資料和解壓縮資料;其中,壓縮的資料和加密的資料被發送到一個在主機上執行的檔案系統驅動器(FSD)上;低級別檔案過濾驅動器,用於在主機上執行,並攔截向快閃記憶體驅動器的低級別檔案系統主機寫;資料寫緩衝記憶體,用於儲存主機寫資料;資料讀緩衝記憶體,用於儲存主機讀資料;分組引擎,用於將儲存在資料寫緩衝記憶體中的資料分成元頁;取消分組引擎,用於將儲存在元頁中的資料取消分組為可 以儲存在資料讀緩衝記憶體中的儲存的資料;將元頁從分組引擎發送到卷管理器以轉移到快閃記憶體,同時,藉由取消分組引擎接收儲存在快閃記憶體中的元頁;檔案優先級標籤分類器,用於為主機寫產生資料類型;任務策略分配器,用於為任務分配優先級,包括根據資料類型向主機寫入資料,優先級是來自於檔案優先級標籤分類器的資料類型的函數;性能調節器,用於調整任務的優先級;目標分類器,用於根據檔案優先級標籤分類器產生的資料類型,對主機寫資料進行分類;業務系統,用於記錄向快閃記憶體資料寫開始和完成的事件;刷新管理器,用於當電源損失時,將儲存在主機DRAM中的資料刷新到SSD DRAM,然後到快閃記憶體驅動系統中的快閃記憶體;恢復管理器,用於從快閃記憶體驅動系統中的快閃記憶體獲取刷新的資料,然後當電源恢復時,刷新到主機DRAM中;磁碟微型端口驅動器,用於管理快閃記憶體驅動系統的特定協議功能。
本發明第十方面提供了一種超級增強耐力設備(SEED),包括:主機界面,用於接收來自主機的主機讀和主機寫; 動態隨機存取記憶體(DRAM)緩衝區,用於儲存資料;控制器,用於控制對快閃記憶體和DRAM緩衝區的存取,以響應主機界面接收的主機讀和主機寫,控制器將主機資料寫入到DRAM緩衝區中;儲存在DRAM緩衝區中的資料寫緩衝記憶體,用於管理控制器,控制器管理非暫時資料;快閃記憶體的增強快閃記憶體部分,用於配置為強健頁使用,其中,快閃記憶體的保留部分被配置為弱頁;編程抹除管理器,用於控制快閃記憶體的頁寫或塊抹除時間,以增強耐力和減少保留時間;刷新管理器,用於控制保留在增強快閃記憶體部分的刷新時間。
100‧‧‧VMD驅動器
104‧‧‧觸發選擇器
106‧‧‧壓縮加密引擎
108‧‧‧資料拆分管理器
110‧‧‧輸出緩衝區
113‧‧‧元資料用戶檔案分組處理器
114‧‧‧FDB元頁分組處理器
116‧‧‧頁檔案分組處理器
118‧‧‧選擇器
12‧‧‧DRAM界面
120‧‧‧元資料緩衝記憶體
121‧‧‧虛擬磁碟資料
122‧‧‧分頁檔案由選擇器
123‧‧‧虛擬磁碟上電刷新器
124‧‧‧暫時檔案區
125‧‧‧虛擬磁碟電源關閉刷新器
126‧‧‧磁碟刷新恢復管理器
128、133’‧‧‧頁
132‧‧‧資料讀緩衝記憶體
133‧‧‧主機讀頁
134‧‧‧分組器
136‧‧‧分組取消器
138‧‧‧磁碟微型端口驅動器
1394‧‧‧韌體
14‧‧‧快閃記憶體界面
140‧‧‧元資料緩衝記憶體
142‧‧‧暫時檔案緩衝記憶體
144‧‧‧分頁檔案的緩衝記憶體
145‧‧‧刷新資料
146‧‧‧日誌檔案頁分組
148‧‧‧分頁檔案和映射表
150‧‧‧系統使用區域
151‧‧‧讀緩衝記憶體和映射表
152‧‧‧緩衝器資料
154‧‧‧資料寫緩衝記憶體
156‧‧‧備件和交換塊
16‧‧‧主機界面
162‧‧‧表
164‧‧‧抹除計數表
170‧‧‧S.M.A.R.T.資料採集器
172‧‧‧分區管理器
174‧‧‧磁碟分類驅動器
176‧‧‧備用電源
178‧‧‧操作系統核心
18‧‧‧安全抹除管理器
180‧‧‧VMD應用程式
181‧‧‧SSD內部清理
182‧‧‧用戶應用程式
184‧‧‧操作系統設置
186‧‧‧配置設置
188‧‧‧虛擬磁碟
190‧‧‧高級別檔案過濾驅動器
192‧‧‧SEED控制器
194‧‧‧SSD DRAM緩衝區
195‧‧‧電源備份
196‧‧‧NAND快閃記憶體
20‧‧‧資料寫緩衝記憶體
200‧‧‧超級強耐力裝置
200'‧‧‧SEED
202‧‧‧刷新管理器
204‧‧‧資料拆分管理器
206‧‧‧壞頁管理器
208‧‧‧過度配置
210‧‧‧LBA表
211‧‧‧業務管理器
212‧‧‧壓縮LBA表
214‧‧‧壓縮資料
215‧‧‧安全管理器
216‧‧‧恢復管理器
217‧‧‧NVRAM
218‧‧‧調度管理器
22、24、26、28、232、234‧‧‧緩衝記憶體
236‧‧‧虛擬磁碟_02
238‧‧‧虛擬磁碟_03
240‧‧‧加密解密引擎
242‧‧‧壓縮解壓縮引擎
244‧‧‧安全管理器
246‧‧‧智慧型資料監控器
248‧‧‧電源監測器
250‧‧‧虛擬磁碟驅動器
254‧‧‧目標分配器
256‧‧‧性能調節器
260‧‧‧任務優先級分配器
262‧‧‧業務系統
264‧‧‧檔案優先級分類
266‧‧‧檔案系統驅動器
268‧‧‧低級別檔案過濾驅動器
270‧‧‧卷管理
272‧‧‧環境參數
274‧‧‧IO驅動器
276‧‧‧用戶應用
277‧‧‧刷新管理器
278‧‧‧VMD驅動器
280‧‧‧VMD應用
282‧‧‧操作系統功能
284‧‧‧虛擬磁碟_00
286‧‧‧緩衝記憶體
288‧‧‧虛擬磁碟_01
289‧‧‧內部儲存空間
290、291、292、293‧‧‧讀緩衝記憶體
300‧‧‧主機
30‧‧‧NFA/FA拆分管理器
301‧‧‧緩衝記憶體控制器
302‧‧‧分區_01
303‧‧‧SEED SSD
304‧‧‧分區_02
305‧‧‧電源管理
306‧‧‧系統啟動映像
307‧‧‧電源備份
308‧‧‧備份啟動映像
309‧‧‧內部儲存控制器
310‧‧‧VMD應用程式
311‧‧‧開關
312、314‧‧‧資料銀行
316‧‧‧分組映射表
318‧‧‧分組元頁
32‧‧‧NFA/FA拆分管理器
320‧‧‧局部分組元頁
322、324‧‧‧部分
326‧‧‧高位部分
328‧‧‧低位部分
336‧‧‧低級別DRAM界面
338‧‧‧ECC管理器
34‧‧‧NRA/RA拆分管理器
340‧‧‧低級別SSD DRAM
342‧‧‧快閃記憶體
346‧‧‧安全管理器
348‧‧‧暫時管理器
350‧‧‧SSD
352‧‧‧壓縮映射管理器
358‧‧‧耐力控制器DRAM
36‧‧‧元頁取消組合引擎
360‧‧‧耐力控制器
372‧‧‧資料恢復分析器
374‧‧‧疊代故障資料緩衝區
376‧‧‧編碼LDPC_2校驗
378‧‧‧LDPC_2發生器
38‧‧‧分頁區
382‧‧‧RAID緩衝區
384‧‧‧電壓調整控制器
386‧‧‧觸發疊代控制器
388‧‧‧RAID奇偶校驗發生器
39‧‧‧S.M.A.R.T.函數
390‧‧‧RAID奇偶校驗
392‧‧‧讀緩衝區
394‧‧‧奇偶解碼器
396‧‧‧讀緩衝記憶體
398‧‧‧編碼器
40‧‧‧磨損均衡器
400‧‧‧快閃記憶體陣列
402‧‧‧快閃記憶體存取控制器
404、406‧‧‧內部總線
41‧‧‧編碼抹除管理器
42‧‧‧TRIM管理器
43‧‧‧刷新恢復管理器
44‧‧‧ECC管理器
46‧‧‧加密引擎
471‧‧‧壞塊抹除計數表
473‧‧‧頁狀態表
48‧‧‧表管理器
50‧‧‧RAID控制器
52‧‧‧命令隊列管理器
T1‧‧‧第一門檻值
T2‧‧‧第二門檻值
T3‧‧‧門檻值
TP‧‧‧門檻值
TE‧‧‧門檻值
1002~1008、1102~1112、1122~1132、1142~1152、1162~1172、1012~1018、1120~1128、1130、1160、1062、1032~1038、1140、1042~1048、1150、1052~1058、1202~1218、1226、1220、1228、1236、1238、510~524、530~538、540~548、556、558~570、572、576、582、584、586、592、594‧‧‧步驟
第1圖是一個主機上的VMD應用程式和驅動器之方框圖,應用程式和驅動器創建和管理多個緩衝記憶體和虛擬磁碟,應用程式和驅動器在主機和具有低耐力快閃記憶體的超耐力快閃記憶體驅動上;第2圖是更詳細的突出主機上的VMD之流程圖;第3圖是一個SEED之方框圖;第4圖是表示藉由VMD驅動器對寫資料進行拆分和分組之流程圖; 第5A至5B圖表示資料分類和藉由VMD驅動器取消讀分組之流程圖;第6圖表示主機DRAM中耐用轉換層(Endurance Transaction Layer,ETL)之內部儲存映射圖;第7圖表示SEED SSD DRAM中耐用轉換層(Endurance Transaction Layer,ETL)之儲存映射示意圖;第8圖是一個快閃記憶體之儲存器映射圖;第9圖表示根據資料類型將頁的全部或者部分映射或者分組成元資料;第10圖表示壓縮頁之映射圖;第11A至11B圖中表示了備用和交換操作;第12圖表示多層次錯誤校驗;第13A至13B圖表示出壞塊抹除計數表和頁狀態表;第14圖是一個具有耐力控制器的超級增強耐力設備(Super Enhanced Endurance Device,SEED)之方框圖;第15A至15E圖表示主機上VMD驅動器處理主機寫指令;第16A至16E圖顯示了主機VMD驅動器處理主機讀指令;第17A至17B圖表示元頁組成過程;第18圖表示由VMD驅動器加密和壓縮處理過程; 第19A至19B圖表示出了在SEED中進行備份交換處理過程;第20A至20D圖表示出了壞頁和壞塊的檢測和處理過程;第21A至21B圖表示使用第13A圖中的表進行快閃記憶體塊刷新操作;第22圖表示在主機上執行的內部清理操作;第23圖表示在SEED上接收日誌檔案;第24圖是記錄了向DRAM緩衝記憶體的主機寫之流程圖;第25圖表示記錄從SEED中DRAM緩衝記憶體向快閃記憶體寫之流程圖;第26圖表示主機上電源斷電順序之流程圖;第27圖表示SEED電源斷電處理之流程圖;第28圖是SEED電源故障處理之流程圖;第29A至29B圖表示使用第13B圖中的表進行快閃記憶體頁刷新操作之流程圖;第30A至30B圖表示第30A圖中頁寫過程中的壞頁管理過程;第31A至31B圖表示後端垃圾收集過程;第32圖表示主機VMD初始化之流程圖;第33A至33B圖是SSD初始化之流程圖;第34圖是一個清理日誌區之流程圖; 第35圖表示在SSD上執行的異常電源關閉檢查;第36圖表示在主機上執行的異常電源關閉檢查。
本發明關於對高耐力快閃記憶體驅動器的改進。提出下面的描述以使本領域中具有通常知識者根據上下文提供的應用和要求,能夠製造和使用本發明。對較佳實施例的各種修改對本領域中具有通常知識者是顯而易見的,本文中定義的一般原則可以被應用於其它的實施例中。因此,本發明並不限制所表示和描述的實施例,而是與此處公開的最寬範圍的基本原則和新穎性一致。
藉由禁止快閃記憶體不必要的寫,可能減少對底層快閃記憶體設備磨損。在主機上執行的虛擬記憶體設備(Virtual-Memory Device,VMD)的應用程式和驅動器在達到快閃記憶體前,可以禁止寫或者結合寫,這樣就可以減少對快閃記憶體的寫頻率。VMD把向主機的寫轉移到對主機的DRAM或SSD DRAM中的緩衝記憶體和虛擬磁碟的寫。
主機或者快閃記憶體驅動SSD設備上的DRAM緩衝器可以儲存資料,這些資料並不需要永久的保存,因此沒必要寫到快閃記憶體中。DRAM不僅速度快,而且具有很強的耐用性,因為它可以寫100萬次以上。DRAM是由IBM公司的Robert Dennard博士在1966年發明的可靠的動態儲存技術。
一個典型的主機會創建許多暫時檔案,比如,在上網瀏覽網頁,或者運行某些不重要的冗餘的應用程式時。本發明實現使 得這些檔案無需寫入快閃記憶體,從而減少快閃記憶體的磨損。
典型系統更頻繁對某類資料覆蓋寫,這些頻繁覆蓋寫的資料最好儲存在主機或者快閃記憶體驅動的DRAM緩衝區中,且藉由一種策略(如基於時間消耗,容量分配等)或者當電源斷電或者電源故障時,將這些頻繁覆蓋寫的資料拷貝到快閃記憶體中。僅在電源斷電時,將這些頻繁覆覆蓋寫的資料儲存到快閃記憶體中會顯著降低對快閃記憶體設備的磨損。大多數的元資料長度較小,可以被集中儲存,例如可以集中儲存在FAT表中。每次更新只涉及對非常小部分的快閃記憶體頁進行寫。在DRAM中儲存元資料能夠減少對快閃記憶體的不必要寫。
如此頻繁覆蓋寫的資料包含日誌檔案,這些日誌檔案隨著新事件的發生頻繁的更新。通常在系統崩潰後,會檢測最新檔案副本。檔案配置表(File Allocation Table,FAT)是另一個頻繁覆蓋寫的位置,當創建或擴展檔案時,檔案配置表就會進行更新。FAT表是內部儲存中相對較小的部分,但如果每次對FAT表的更新都被複製到快閃記憶體中,這種頻繁的存取將顯著的增加快閃記憶體的磨損。檔案描述塊(File Descriptor Block,FDB)具有類似的頻繁的覆蓋寫的結構,當僅在Windows瀏覽器中存取和顯示檔案列表時,就會頻繁的覆蓋寫檔案存取日期。FDB、FAT擁有來自主機檔案系統的元資料。與DRAM緩衝器一起使用的各類表擁有元資料,這些元資料創建的目的是將檔案系統儲存到DRAM和快閃記憶體中。
根據某種策略或者電源斷電或者電源故障時,快閃記憶體驅動創建的壞塊表,抹除計數器,垃圾收集,備件和交換塊映射 表以及其他檔案需要儲存到快閃記憶體中。同樣,為了減少快閃記憶體損耗,根據某種策略或者電源斷電或者電源故障,快閃記憶體系統的元檔案也可以儲存到DRAM緩衝區並且拷貝到快閃記憶體中。上述表和元檔案在上電時可以儲存在快閃記憶體中。並且在設備初始化時被安裝到一個DRAM緩衝區中。接著,主機資料讀寫操作改變資料內容。當電源斷電或電源故障出現時,髒表和元檔案需要寫入或備份到快閃記憶體。當電源故障時,考慮到系統恢復,如果為了特定的應用程式,需要一個準確的恢復點,主機緩衝記憶體、FIFO緩衝、緩衝區資料、永久備用和交換塊以及快閃記憶體驅動中的其它緩衝區中的資料可以拷貝到快閃記憶體上。
當主機主DRAM內部儲存的圖像移動到了硬碟或者快閃記憶體驅動時,系統使用分頁檔案進行內部儲存管理。因為系統需要重啟,內部儲存管理和分頁系統重新初始化,以清除所有儲存的分頁檔案,所以當電源故障發生時,分頁交換檔案損失並不重要。這些分頁檔案可以儲存在DRAM緩衝區中,當電源斷電或者電源故障時,沒有必要拷貝到快閃記憶體上,從而有效減少快閃記憶體的磨損。
快閃記憶體驅動的主機請求往往遵循資料類型的規則序列。例如,一台主機可先存取FAT表,然後存取FDB塊,進而對資料檔案進行讀寫。這種重複序列可能有助於超耐力快閃記憶體驅動對資料類型進行分類。根據操作系統的類型不同(Windows、Linux、Apple OS、Android等),FAT總是位於預先確定的內部儲存位置。因此,對該內部儲存位置的位址範圍內的存取是FAT類型的存取。FAT存取之後的存取必然是FDB存取。然後, 下一次存取是用戶資料存取。因此,用戶資料可以被確定為之後的FAT存取和FDB存取。為了找到擴展檔案,可以藉由超耐力快閃記憶體驅動檢查EDB,從而,可以採用不同於用戶資料檔案的方式,檢測和處理.tmp檔案。
在典型的不區分資料類型的快閃記憶體驅動中,每種類型的檔案都會使快閃記憶體磨損。這種不可知的系統平等處理所有資料。所有資料都寫入到快閃記憶體中,至少當資料條目在DRAM緩衝區時,如果有的話,資料將藉由另一個來自具有相同的緩衝記憶體索引的主機的資料投到DRAM緩衝區。藉由識別資料類型和資料的目的主機,且在正常操作過程中,只向快閃記憶體寫實際的用戶資料,只向快閃記憶體寫重要的資料,以及當電源故障時,根據策略,可以顯著減少快閃記憶體寫。
藉由包裝資料,可以實現進一步減少快閃記憶體磨損。例如,快閃記憶體中小於一個整頁的資料(局部頁資料)可以與其它的局部頁資料一起儲存在快閃記憶體的一個頁中,而不是儲存在許多單獨的頁中。多通道的系統可能有較大的單元,例如元頁,每一個通道有一個頁,或通道數量是頁大小的幾倍。藉由將資料包裝成元頁,而不是較小的頁,可進一步減少快閃記憶體磨損。
在一個不利的環境中,DRAM的緩衝區可能有軟體錯誤。額外的對DRAM的過量配置可用於錯誤修正碼(Error Correction Code,ECC)奇偶校驗,以提高快閃記憶體可靠性。
從每個技術角度,快閃記憶體的磨損節約可以提供各種改進,當這些技術一起使用時,可能會顯著增加快閃記憶體的耐力。VMD應用程式和驅動器可以為使用這些技術的快閃記憶體驅動 提供更高的耐力。
第1圖是一個主機上VMD應用程式和驅動之方框圖,應用程式和驅動創建和管理多個緩衝記憶體和虛擬磁碟,應用程式和驅動在主機和具有低耐力快閃記憶體的超耐力快閃記憶體驅動上。主機300有一個處理器,處理器執行程式的指令,例如,用戶應用程式182和操作系統(OS)核心178的指令,例如,Windows、Linux和蘋果OS或Android等。當主電源發生故障時,備用電源176為主機300提供電源,使當電源故障時,主機300從虛擬磁碟188向超級強耐力裝置(SEED)200發送重要資料,超強耐力裝置200位於NAND快閃記憶體196中。備用電源176可以使用電池,或不間斷電源(Uninterruptible Power Supply,UPS)等。這使得主機處理器有時間來關閉應用程式並且正確的關閉相關的裝置。SEED 200有自己的電源備份195,當主電源出現故障時,以允許SEED 200將重要的資料寫到NAND快閃記憶體196。電源備份195可以使用電容器,超級電容器或電池。可選地,如果有備用電源176有足夠的電能來正常關閉系統,SEED 200中的電源備份195就不需要了,例如,主機300是筆記本電腦或智慧型手機。
VMD應用程式180是在主機300上執行的應用程式。VMD應用程式180和VMD驅動器100可用於減輕SEED 200的負擔。VMD應用程式180和VMD驅動器100可以拆分或儲存資料,例如,暫時檔案,分頁檔案等,但並不意味著永久地儲存到快閃記憶體。VMD驅動器100可以使虛擬磁碟188儲存這類暫時資料。虛擬磁碟188可以是主機的DRAM一部分。
VMD驅動器100可以使用主機CPU執行任務,例如,壓縮解壓縮引擎242,加密解密引擎240。由操作系統核心178寫入的用戶應用程式182的資料,被高級別檔案過濾驅動器190截獲,並在發送到檔案系統驅動器266前,傳遞到VMD驅動器100進行壓縮或加密。然後低級別檔案過濾驅動器268再次攔截這些資料,以藉由VMD驅動器100進行進一步的處理,例如,用於儲存在虛擬磁碟188中。
將最終準備寫到SEED 200中的資料從VMD驅動器100發送到卷管理270,恢復管理器卷管理270管理儲存卷,例如,SEED 200。在SEDD 200中的SEED控制器192可以在SSD DRAM緩衝區194中儲存資料,且當電源斷電或者當SSD DRAM緩衝區194儲存滿了的時候,將資料儲存到NAND快閃記憶體196中。
位於VMD應用程式180中的SSD內部清理181執行各種高級別功能,如垃圾收集,去除舊的未使用的檔案。SSD內部清理181可以定期地進行,如每天,每週,或當VMD驅動器100管理虛擬磁碟188時。配置設置186和註冊表及操作系統設置184可以由OS核心178設置,或者由其它程式定義虛擬磁碟188的大小或者其它系統變量,並管理VMD應用程式180和VMD驅動器100的較佳功能。
配置設置186和註冊表及OS設置184可能有各種不同提高快閃記憶體耐用性和性能的設置,例如,設置可以使能或禁用寫緩衝記憶體、驅動器索引、搜索索引、磁碟碎片整理、主機休眠、預取資料、超級取資料和窗口寫緩衝記憶體緩衝刷新。預取 資料,索引,休眠,和碎片整理可能會引起快閃記憶體的額外寫,因此減少快閃記憶體的耐力。既然VMD驅動器有自己的寫緩衝記憶體和刷新功能,則寫緩衝記憶體和寫緩衝記憶體緩衝刷新可以被禁用。因此,藉由禁用這些特性,可以改善快閃記憶體的耐力。
第1圖中表示了一些對於電源異常斷電的情況有用的可選部分。當電源接通時,電源管理305和電源備份307(在某些系統環境中,如果不存在備用電源176)儲存能量,當電源故障時,電源管理305和電源備份307向主機300提供電源。當電源故障時,CPU暫存器(Register)和緩衝記憶體控制器301將寫CPU暫存器和緩衝記憶體到主機DRAM,然後到SEED 200。在另一個實施例中,SEED SSD 303是連接到主機300另一個SSD,例如,可以藉由PCIe端口、USB端口、NVMe端口等進行連接。在另一個實施例中,SEED SSD 303可以內置於DRAM模組中,並藉由內部儲存控制器309進行控制。可選地,當電源故障時,CPU暫存器和緩衝記憶體控制器301將寫CPU暫存器和緩衝記憶體到寫主機DRAM,然後到SEED 200或者SEED 303。預設開關311隔離主機300上的不必要的部分,以使這些部分無法接收備用電源,因此,延長傳輸重要檔案使用的備用電源的使用時間。在異常斷電和電源恢復期間,內部儲存控制器309將阻止主機DRAM和SEED SSD 303之間的資料傳輸。
第2圖是更詳細的突出主機上的VMD之流程圖,在主機數發送到檔案系統驅動器266之前,主機資料傳輸到VMD驅動器100,以藉由壓縮引擎242進行壓縮或藉由加密引擎240進行加密,主機資料藉由OS核心寫入,並藉由高級別檔案過濾驅動 器190截獲。然後低級別檔案過濾器驅動器268再次攔截資料,以藉由VMD驅動器100進行進一步處理。
檔案優先級分類264根據資料類型對資料進行分類,資料類型由低級別檔案過濾驅動器268分配,或者由LBA指示,例如,資料類型可以是元資料(FAT,FDB)暫時檔案,分頁檔案,或用戶資料。暫時檔案包括:Windows的暫時檔案,網際網路(Internet)瀏覽器的暫時檔案等等,另外,對於特定的使用時,此功能可以選擇性地禁用,例如,伺服器。所有操作都具有任務優先級分配器260分配的優先權,以使高優先級的任務可以優先於低優先級任務執行。性能調節器256可以定期調整這些資料的優先權,以改善系統性能。根據資料類型,目標分配器254發送資料到虛擬磁碟188中的虛擬磁碟驅動器250進行儲存,或者資料寫緩衝記憶體20。
在發送到恢復管理器卷管理270和SEED 200之前,寫入到SSD的資料可能藉由分組器134進行分組。分區管理器172和磁碟分類驅動器174可以將複數個資料發送到已選定分區或磁碟。磁碟微型端口驅動器138管理連接到SSD的具體協議功能。分組取消器136在資料傳送到資料讀緩衝記憶體132之前取消從SEED 200獲取的資料的分組。
業務系統262確保資料完全寫入SEED 200。恢復管理器216判斷哪個寫業務由於異常斷電而未完成,並且幫助應用程式做必要的重做或撤消以保證資料持久性。調度管理器218管理業務系統262以管理和記錄對SSD業務的寫,例如,啟動,中止和提交。
當電源監測器248檢測到電源斷電或出現故障時,觸發虛擬磁碟刷新恢復管理器.126,以將資料從資料寫緩衝記憶體20和虛擬磁碟188轉移到快閃記憶體中的SEED 200進行儲存。當刷新完成時,磁碟刷新恢復管理器126將會向SEED 200和備用電源176或者電源管理器305發佈協議命令。如果存在備用電源的話,將切斷向系統供電,而僅向SEED 200供電。在使用電源管理305的情況下,電源管理305將繼續向DRAM、SEED SSD 303、開關311和內部儲存控制器309電能。在電源關損失前,刷新恢復管理器126定期將資料寫緩衝記憶體20和虛擬磁碟188的內容刷新到SEED 200。在允許藉由VMD驅動器100存取SEED 200或資料緩衝記憶體之前,安全管理器244可執行密碼驗證過程。智慧型資料監控器246從SEED 200向VMD驅動器180發送S.M.A.R.T.監控訊息。耐力快閃記憶體檔案系統具有在主機上執行的,並攔截向快閃記憶體驅動器高級別主機寫的高級別檔案過濾驅動器。加密解密引擎接收由高級別的檔案過濾驅動截獲的高級別主機寫,並加密資料和解密資料。壓縮解壓縮引擎也接收來自於高級別檔案過濾驅動器的高級別主機寫,並產生壓縮資料以及解壓縮資料。壓縮資料和加密資料被發送到在主機上執行的檔案系統驅動器(File System Driver,FSD)。
低級別檔案過濾驅動器也可以在主機上執行以及攔截向快閃記憶體驅動系統的低級別檔案系統主機寫。資料寫緩衝記憶體儲存主機寫資料,而資料讀緩衝記憶體儲存由主機讀取的資料。分組引擎將儲存在資料寫緩衝記憶體中的資料分成元資料。取消分組引擎將儲存在元頁中的資料取消分組為可以儲存在資料讀緩衝記憶體中的儲存的資料。將元頁從分組引擎發送到恢復管理器 以將其轉移到快閃記憶體,同時,藉由取消分組引擎接收儲存在快閃記憶體中的元頁。
檔案優先級標籤分類器為主機寫和接收的資料產生資料類型。任務策略分配器為任務分配優先級,包括根據資料類型向主機寫入資料。優先級是來自於檔案優先級標籤分類器的資料類型的函數。性能調節器調整任務的優先級。目標分類器根據檔案優先級標籤分類器產生的資料類型,對主機寫資料進行分類。
業務系統記錄事件,事件指示快閃記憶體資料寫的開始和完成。當電源損失時,刷新管理器將儲存在主機DRAM中的資料刷新到SSD DRAM,然後刷新至快閃記憶體驅動系統的快閃記憶體中。恢復管理器從快閃記憶體驅動器系統的快閃記憶體重新獲取刷新資料,然後當電源恢復時,發送到主機DRAM。磁碟微型端口驅動器管理快閃記憶體驅動系統的具體協議函數。智慧型資料監控器246,電源CPU檢測器248,安全管理器244,和虛擬磁碟驅動器250是可選的。
第3圖是一個SEED之方框圖。SEED 200有主機界面16,SEED 200藉由總線與主機300(如第1圖)通信,例如,PCIe,SATA,或通用序列匯流排(Universal-Serial-Bus,USB),NVMe,雷電界面,eMMC,iSSD等。從主機界面16獲取的主機資料被發送到SEED控制器192,SEED 192執行各種功能,以減少NAND快閃記憶體196的磨損,例如,將來自於主機300上的VMD驅動器100的檔案刷新到SSD DRAM緩衝區194,而不是在NAND快閃記憶體196。
SSD DRAM緩衝區194可以儲存主機虛擬磁碟188的備 件檔案,以及從VMD 100刷新獲取其它的資料和表格。可以儲存其它資料,包括元資料,備用和交換塊,壞頁管理表,以及其它的緩衝區和資料表。
NAND快閃記憶體196可以儲存安全訊息,表格,SSD檔案系統,和各種其它的表和緩衝區,還包括用戶資料和刷新的虛擬磁碟188中的資料。NAND快閃記憶體196的一些區域可以保留作為壞塊或者過度配置。
DRAM界面12讀寫SSD DRAM緩衝區194,而多通道快閃記憶體界面14讀取頁,程式資料頁和抹除NAND快閃記憶體196中的塊,可以組織成多個通道。
命令隊列(Native Command Queue,NCQ)管理器52可以重新排列從主機300獲取的主機命令,以及管理從主機界面16接收的主機命令序列。管理器加載主機命令為命令隊列,寫資料會被重新排序,以減少快閃記憶體寫。
RAID控制器50藉由NAND快閃記憶體196的多個通道寫新資料,並可能會複製資料,以提供冗餘和資料恢復。ECC管理器44產生附加在寫資料中的錯誤校正碼(Error-Correction Code,ECC),並比較儲存的ECC以重新產生ECC,從而檢測和糾正在讀書的錯誤。ECC管理器44更管理需要額外的ECC保護快閃記憶體頁,為這些頁產生ECC,並當需要的時候,管理ECC資料的儲存和回收。代替執行EC,ECC管理器44可用於低密度同位元檢查(Low Density Parity Check,LDPC)碼。壞頁管理器206跟蹤所有NAND快閃記憶體196中的頁狀態的位置。這可以延長每個塊的壽命,既然只有一個頁可能是壞塊,因 此其他的頁可以繼續使用。更複雜的壞塊管理可能會降低快閃記憶體驅動的整體磨損。
磨損均衡器40可提供兩種磨損均衡的方法。一種方法是從可用空塊中動態選擇最低磨損均衡計數塊寫資料。另一種方法是基於耗損均衡計數門檻值。一旦達到這個門檻值,快閃記憶體資料塊將從NAND快閃記憶體196中的一個物理塊(具有低損耗均衡計數)移動到另一個空物理塊(具有高損耗均衡計數)。表管理器48所管理的邏輯物理映射表將被更新。表管理器48也跟蹤儲存在每個邏輯塊或者頁中的資料類型,以使當資料拆分管理器204識別和分類資料時,跟蹤暫時檔案,分頁檔案,FAT,FDB,和用戶資料檔案。可選地,主機可以藉由協議命令傳遞資料類型訊息到SEED SSD,因此,資料拆分管理器204不用重複VMD驅動器100所做的工作。可選的,在某些特定的情況下,該功能可以是選擇禁用。
如果功能不是由VMD驅動器100完成,加密引擎46執行寫入資料加密和讀取資料解密。TRIM管理器42處理來自於檔案系統或者主機300上的操作系統的TRIM命令。TRIM命令表明主機不再需要某部分,且可以擦拭或抹除。修整後的頁在頁狀態表中標記為垃圾頁,例如'100b'或'101b'。在做後端垃圾回收時,如果某塊被識別作為可抹除塊,此頁將不會被複製到一個新塊。此時,TRIM命令完成。TRIM管理器42執行系統開銷,例如,不再需要對一個塊中的分區或者頁進行跟蹤。垃圾收集器也可以用來跟蹤準備抹除的塊。一旦某完整的塊不再需要,TRIM管理器42將觸發垃圾收集器或其他抹除機制抹除塊,以使塊可以重新使用。
S.M.A.R.T.函數39處理來自於主機的S.M.A.R.T.命令或者協議命令,例如,監測或者控制誤差校正,磨損,壞塊,和其它的快閃記憶體管理等。S.M.A.R.T.代表自我監測、分析及報告技術。主機可以使用S.M.A.R.T.的命令集監控一些來自於從SSD設備的重要資料,例如,關機時間,磨損均衡計數等。主機可以使用這些資料來診斷和識別SSD的使用壽命。基於使用情況,主機可以使用這些訊息來確定保修範圍。主機可以在SSD驅動器損壞之前,更換SSD驅動器。在RAID中,主機可以使用S.M.A.R.T.命令以避免更昂貴的RAID 5配置。
業務管理器211可以確保資料完全寫入或轉移到NAND快閃記憶體中。過度配置208在NAND快閃記憶體196中設置和管理備用塊。直到安全管理器215安可以執行密碼驗證過程,才允許存取NAND快閃記憶體196的安全分區。分區可以是整個驅動器或驅動器的一部分。刷新管理器202可定期(如每天或每週)刷新NAND快閃記憶體196中的資料。安全抹除管理器18可以執行安全性更高的抹除操作,例如,當需要時,可以向一個塊寫入全1或者全0以刪除塊中的資料。
電源備份195提供備用電源,因此,當電源故障時,SEED 200可以從SSD DRAM緩衝區194向NAND快閃記憶體196寫資料。NVRAM 217為重要的元資料訊息提供更多的非易失性儲存,例如業務日誌,元資料和配置訊息。
第4圖表示了藉由VMD驅動器對寫資料拆分和分組之流程圖。主機發送寫命令到資料拆分管理器108,且如果壓縮加密引擎106啟用,則在壓縮加密引擎106將寫資料壓縮或加密後, 接收主機寫資料。用於加密或壓縮檔案的壓縮表項可以在元資料緩衝記憶體120中被修改。
VMD驅動器100(如第2圖)內部的資料拆分管理器108根據資料類型對主機寫資料分類,例如,藉由檢查檔案的副檔名或解析FAT和FDB。暫時檔案儲存在虛擬磁碟_01的暫時檔案區124,且具有一個表,表在元資料緩衝記憶體120中被完全修改。當電源關閉和故障時,暫時檔案不儲存到快閃記憶體。可選地,暫時檔案區可以溢出和分組到SSD。可選地,對於特定操作,該功能可以被禁用,例如,伺服器。
分頁檔案儲存在緩衝記憶體中的分頁區38,且藉由頁檔案分組處理器116,與其它的包含相同分頁檔案資料類型的分頁檔案一起分組成元頁。然後,藉由輸出緩衝區110,將分組後的頁被發送到SEED 200,並且可以儲存在DRAM中,然後儲存到快閃記憶體中。輸出緩衝區110產生ECC代碼。分組檔案的表項可以在元資料緩衝記憶體120中被修改。
元資料檔案,例如,如FAT和FDB全部儲存在元資料緩衝記憶體120中。藉由FDB元頁分組處理器114,FDB可以被分成的元頁。分組的頁然後藉由輸出緩衝區110發送到SEED 200,可以是儲存在DRAM中。ECC碼可能由輸出緩衝區110產生並攜帶。分組後的元資料檔案表項可以在元資料緩衝記憶體120中被修改。
用戶檔案儲存在資料寫緩衝記憶體20中,且由元資料用戶檔案分組處理器113,將用戶檔案與其它的含有相同的用戶或非暫時性檔案資料類型的用戶檔案一起分成元頁。分組的頁藉由輸 出緩衝區110發送到SEED 200,並且可以儲存在DRAM中,之後是快閃記憶體中。ECC碼可能由輸出緩衝區110產生並攜帶。分組後檔案的分組表表項可以在元資料緩衝記憶體120中被修改。
當刷新恢復管理器126檢測到電源故障時,虛擬磁碟188由虛擬磁碟電源關閉刷新器125刷新。虛擬磁碟188的資料由SEED 200發送到輸出緩衝區110儲存。另外,緩衝記憶體中的資料寫緩衝記憶體20,元資料緩衝記憶體120,分頁區38可以在虛擬磁碟中。虛擬磁碟_01的暫時檔案區124可以在緩衝記憶體中。
第5A至5B圖表示了資料分類和藉由VMD驅動器取消讀分組之流程圖。主機發送一個讀取命令到資料拆分管理器108,資料拆分管理器108更用於分發主機讀資料,在資料壓縮加密引擎106將主機讀資料解壓縮或解密後。內置於VMD驅動器100(如第2圖)的資料拆分管理器108根據資料類型分類主機寫資料,且觸發選擇器104根據資料類型選擇資料。
在第5A圖中,用戶資料可能是最近寫入,且仍然是可以從資料寫緩衝記憶體20中獲得的。資料可被儲存在SEED 200,且必須首先由緩衝區110接收,元頁取消組合引擎36取消分組,然後被選擇器104選擇。取消分組元頁的資料儲存在四個讀緩衝記憶體中的一個之中。NRA/RA拆分管理器34將最近存取資料和非最近存取(Non-Recently-Accessed,NRA)資料分開。NFA/FA拆分管理器30、32將經常存取的資料與非經常存取的資料(Non-Frequently-Accessed,NFA)分開。根據資料是否 被識別為最近存取或經常存取,選擇器104選擇四個讀緩衝記憶體22、24、26、28中的一個。
在第5B圖中,暫時檔案不儲存在快閃記憶體中,只能藉由響應主機讀的資料拆分管理器108從虛擬磁碟_01的暫時檔案區124讀取。分頁檔案由選擇器122從緩衝記憶體中的分頁區38選擇或者從分頁檔案元頁取消分組處理器116取消分組後的快閃記憶體中選擇。元資料,例如,FAT和FDB項是由選擇器118從元資料緩衝記憶體120選擇,或者從輸出緩衝區110讀取且FAT/FDB元頁取消分組引擎114取消分組之後的快閃記憶體選擇。當電源恢復時,虛擬磁碟上電刷新器123被觸發,以從SSD或快閃記憶體20讀取刷新的虛擬磁碟資料121。
第6圖表示了主機DRAM中耐用轉換層(Endurance Transaction Layer,ETL)之內部儲存映射圖。內部儲存空間289包含幾個虛擬磁碟,虛擬磁碟可以被獨立定義為用於直接儲存器存取或者用於基於檔案系統存取。虛擬磁碟_00 284儲存OS啟動映像和備用OS啟動映像。虛擬磁碟_01 288儲存暫時檔案。虛擬磁碟_02 236儲存瀏覽器檔案,在電源關閉時,瀏覽器檔案可以丟棄。虛擬磁碟_03 238儲存應用程式使用的暫時檔案,在電源損失時,暫時檔案可以被丟棄。可選地,在虛擬磁碟_02 236和虛擬磁碟_03 238中的資料可以被分組,並寫到SEED 200。
緩衝記憶體286儲存元資料和表,如FAT,FDB,壓縮表,分組表和緩衝記憶體映射表。緩衝記憶體232儲存分頁檔案。緩衝記憶體234儲存資料寫。當電源出現故障時,這些緩衝記憶體將進行備份。讀緩衝記憶體290、291、292、293儲存FA,NFA, RA,和NRA的資料,且在電源故障時,可能被丟棄。
VMD驅動器278和VMD應用280也與操作系統功能282、刷新管理器277、用戶應用276、專有的IO驅動器274,以及設置和環境參數272一同被儲存。
第7圖表示了SEED SSD DRAM中耐用轉換層(Endurance Transaction Layer,ETL)儲存映射示意圖。SSD DRAM緩衝區194的內部儲存空間包含元資料緩衝記憶體140、暫時檔案緩衝記憶體142、分頁檔案的緩衝記憶體144、刷新資料145、讀緩衝記憶體和映射表151、緩衝器資料152和資料寫緩衝記憶體154。這些緩衝記憶體可以儲存來自於位於主機DRAM的內部儲存空間289的緩衝記憶體的資料。分頁檔案和映射表148和日誌檔案頁分組146也被分配了內部儲存空間。系統使用區域150被保留。備件和交換塊156提供備用和交換操作塊。表162儲存快閃記憶體頁的狀態和壞塊訊息。塊和抹除計數表164根據塊的基本內容,儲存抹除計數和塊訊息。S.M.A.R.T.資料採集器170收集和儲存較低級別的快閃記憶體模組和可能被主機軟體讀取的控制器的的狀態訊息。
第8圖是一個快閃記憶體之儲存器映射圖。NAND快閃記憶體196中的快閃記憶體儲存空間包括分區_01 302,分區包括具有簡化VMD程式和加密解密函數的啟動用法0x80,分區_02 304,分區_02 304具有其它的映像,例如,操作系統啟動映像306,備份啟動映像308,以及啟動用法0x00。VMD應用程式310儲存在快閃記憶體中,並作為虛擬磁碟管理器。資料銀行312儲存頻繁使用的映像,而資料銀行314儲存不頻繁使用的映像。
第9圖表示了根據資料類型將頁的全部或者部分映射或者分組成元資料。每種資料類型都有它自己的分組映射表316,例如,分頁檔案,暫時檔案,元資料,和普通用戶資料。在本實施例中,只有的用戶資料被映射到快閃記憶體中,雖然在其它的實施例中,存取儲存器可能映射額外資料到快閃記憶體。
元頁是一個較大的儲存器單元,而不是快閃記憶體頁。快閃記憶體被組織成多通道和多芯片或者或每個通道包括複數個核心和每個核心有多個層。元頁的大小是通道數乘以層的數量乘以快閃記憶體層的數量。例如,四個通道和兩個平面的元頁大小是8個頁。
當一個完整的頁(full page,FP)被分組成元頁318時,該頁的頁寫的位置X儲存主機LBA的分組映射表316中的條目,且具有一個指向分組元頁318的指針,YY-DRAM-MP。
當局部頁(partial page,PP)被分組為局部分組元頁320,局部頁的起始位置A(N),以及局部頁的長度LEN(N)部分頁主機LBA分組映射表316中儲存成一條記錄,並且具有一個指向該局部頁分組頁320的指針,YY-DRAM-MP。主機LBA和長度附帶在資料之後,將資料儲存到PP分組元頁320頁中。
第10圖表示壓縮頁之映射圖。藉由在快閃記憶體頁儲存壓縮資料,而不是常規的資料,快閃記憶體耐用性可能增加,因為壓縮減少了資料的大小,而這在快閃記憶體儲存資料的要求。壓縮資料可能會緩衝記憶體在主機DRAM或SSD DRAM緩衝區194中,並當緩衝記憶體儲存滿時,將壓縮資料備份到NAND快閃記憶體196中。
在將資料儲存到虛擬磁碟188中或資料寫緩衝記憶體20中之前,VMD驅動器100可能壓縮一些資料。主機以正常方式寫幾頁資料,指示邏輯位址(logical address,LBA),頁號,用於統計資料長度的扇區計數總。例如,主機可以向LBA 2048寫入DATA1,SC=128,8頁,每頁16個扇區。壓縮引擎,例如,VMD驅動器100中的加密解密引擎240,將128個扇區的資料壓縮到48個扇區的壓縮資料。48個扇區的壓縮資料包括資料頭,一些壓縮後的資料儲存在第一頁壓縮頁,兩頁以上的壓縮資料儲存一共可以儲存3個壓縮頁。相對未壓縮的8頁,這是一個顯著的減少。
VMD驅動器100將3個頁的壓縮資料儲存在虛擬磁碟188中,或者資料寫緩衝記憶體20中,當藉由儲存在壓縮LBA表212中的指針MAP_PAGE_PTR指向壓縮資料214的一個頁時。
VMD驅動器100更創建條目LBA表210,條目可以是統一映射表的一部分或者是元資料緩衝記憶體120的一部分。然而,在LBA表210中的條目是特殊映射編碼,以壓縮資料。
LBA表210中的映射條目包括前兩位壓縮狀態位。第一壓縮狀態位1表示壓縮存取,0表示對未壓縮資料規則的主機存取。例如,第127頁映射到使用PTR1的未壓縮資料。
當第一壓縮狀態位為1並且第二壓縮狀態位為0時,在LBA表210的條目中包含未壓縮的資料段的全部大小(頁數)。當第一壓縮狀態位是1並且第二壓縮狀態位為1時,則在LBA表210的條目中包含偏移量。偏移量是該壓縮資料段的第一條目,條目包含段的大小。
在主機向LBA 2048寫DATA1,SC=128,8頁的例子中,DATA1段中的LBA表210中有8頁條目。2048的LB A選擇LBA表210中的128頁。在LBA表210共8頁條目被使用。第一個條目表示總資料大小,接下來的7個條目包含指回的第一個條目的偏移量。
當主機讀頁133(LBA=2128,SC=16)時,則讀取頁133的LBA表210中的條目。儲存在頁133’的條目的偏移量是5,它向後指向頁128的條目,其中包含3頁全部的壓縮資料。從壓縮的LBA表212和下面兩個壓縮LBA表212的條目中讀取頁128的條目,共3頁條目,這是壓縮的資料的大小。每個條目指向虛擬磁碟188,SSD DRAM緩衝區194或者NAND快閃記憶體196中的壓縮資料頁。讀取這三個壓縮頁並且解壓縮以恢復原始的8頁未壓縮資料塊。然後,從未壓縮資料中提取主機正在讀取的資料。其中,可以使用硬體電路或者韌體控制算法或者軟體進行聯機壓縮。
第11A至11B圖中表示了備用和交換操作。如第11A圖所示,備用塊是在Flash中,例如,在NAND快閃記憶體196中。資料已經寫入到快閃記憶體塊X,佔用部分322包括幾個整頁和一個局部頁。資料也將被寫入部分324的備用快閃記憶體塊Y中,部分324也包括幾個整頁和局部分頁。塊X和Y中的資料將被組合為自空閒備用塊Y。
將來自部分322的整頁寫入交換塊Z的高位部分326。然後,將來自塊X和Y的局部頁寫入DRAM頁緩衝區330中,且被結合起來,然後一起寫入交換塊Z中的一個中頁。將來自部分 324的下一個整頁寫入交換塊Z的低位部分328。最終,塊X和Y被抹除。
如第11B圖所示,備用塊Y在DRAM中,比如在SSD DRAM緩衝區194中。將資料寫入快閃記憶體塊X中,佔用含有幾塊整頁和一個局部頁的部分322。將這個資料拷貝到DRAM中的備用塊Y中,佔用高位部分332。將資料寫入低部分324中的備用快閃記憶體塊Y,低部分324為幾個整頁和一個部分頁。塊X和Y中的資料組合到空閒備用塊Y中。因為備用塊在DRAM中,來自塊X和Y的局部頁可以直接組合。然後將整個備用塊Y複製到交換塊Z,包括高位部分326和低位部分328。最終,因為塊Y在DRAM中並且無需抹除操作,所以抹除唯一塊。根據抹除操作所需的時間,在DRAM中具有備用塊Y能夠提高性能以及降低快閃記憶體塊的損耗。
第12圖表示了多層次錯誤校驗。快閃記憶體陣列400可使用多層次單元,當內部總線404上的快閃記憶體存取控制器402讀取時,多層次單元更易出現位錯誤。編碼器398能夠產生低密度奇偶校驗碼(parity check code),並且在寫入快閃記憶體陣列400前,附加到來自讀緩衝記憶體396的資料作為備用字節。當資料讀入到快閃記憶體陣列400的讀緩衝區392時,奇偶解碼器394將儲存的奇偶校驗與產生的奇偶校驗進行核對,以檢測和糾正讀錯誤。當不可能使用LDPC_1編碼糾錯時,為快閃記憶體資料的頁和塊,使能更長,更複雜的編碼LDPC_2校驗376。
LDPC_2發生器378產生較長的奇偶校驗碼LDPC_2,並且由LDPC_2寫緩衝區380緩衝至總線404。由於所選擇的快閃 記憶體頁中的物理單元的退化,因此需要更多的保護,進而產生LDPC_2。LDPC_2產生並附加在即將寫入到快閃記憶體陣列400塊中的使能頁或塊中的數據中。
當LDPC_2碼無法糾正讀錯誤時,使能RAID奇偶校驗390。RAID校驗可能跨越快閃記憶體陣列的多個物理設備。RAID奇偶校驗碼是由RAID奇偶校驗發生器388產生,並在將RAID奇偶校驗碼和寫資料一起被寫入總線404前,由RAID緩衝區382緩衝。它的產生是由於物理單元的退化導致的所選擇的快閃記憶體頁需要更多地保護。
當RAID奇偶校驗碼未能糾正讀取錯誤,觸發疊代控制器386以測試調整電壓。讀取的資料儲存在疊代故障資料緩衝區374中。電壓調整控制器384被快閃記憶體控制器控制,快閃記憶體控制器將特定值寫入快閃記憶體中,以為快閃記憶體陣列400讀取資料調整參考電壓。資料回讀以測試是否新設置的參考電壓能夠減少錯誤。因此,將進行另一輪LDPC_1/LDPC_2/RAID校驗。如果仍然無法讀取,讀取的資料被儲存在疊代故障資料緩衝區374中,並選擇另一個電壓以執行另一輪的回讀測試。當所有的電壓疊代都進行了測試並且失敗,疊代故障資料緩衝區374加載測試結果,以使資料恢復分析器372確定內部總線406上的資料是否可以使用,或者是否出現了致命錯誤。錯誤校正碼和奇偶校驗的多層次性,可提高快閃記憶體的壽命和耐力。
第13A至13B圖表示了壞塊抹除計數表和頁狀態表。如第13A圖所示,一個寫日期被儲存在塊開始處。壞塊抹除計數表471儲存快閃記憶體塊的條目。每個條目包含一個塊的狀態字段,使 用3位表明是否塊是空的(抹除),使用的,有一些垃圾頁的塊,全部是壞塊,或者有一壞頁和一些好頁的局部壞塊。
每個塊的條目更具有一個13位抹除計數和一個16位寫日期。當設備生產出來時,13位抹除計數開始計數0。塊每抹除一次,計數增加一次。此抹除計數可用於磨損均衡控制,並且可以用於S.M.A.R.T.檢查設備的健康狀況。寫的日期是最後一次寫入塊的日期。它是用於刷新功能。對於TLC設備,可以保留一年以內的時間,寫日期可以是一個編碼資料(MM-DD-YY),或者是一個數值,例如,可以是生產時初始化的設備製造日期。
頁狀態表473塊中有所有頁的條目。每一頁都有一個3位的頁狀態字段。由於每個頁條目只有3位長,許多頁條目可能被打包在一起。頁狀態表示一個空的,使用的,垃圾頁,壞頁,又或者是一個較高層次糾錯保護的頁。比如,一個更長的ECC碼。
如第13B圖所示,寫日期被儲存在一個基礎頁上,而不是儲存在一個基礎塊上。壞塊抹除計數表471記錄快閃記憶體塊的條目。每個條目包含一個13位抹除計數器和塊狀態字段,用3位表示是否塊是空的(抹除),使用的,有一些垃圾頁的塊,全部是壞塊,或者有一些壞頁和一些好頁的局部壞塊。
在壞塊抹除計數表471不儲存寫日期。相反,頁狀態表473儲存寫日期。對第13B圖來說,寫日期是頁的寫日期。而對第13A圖來說,是塊的寫日期。因為每個塊都有很多頁,儲存頁的寫資料而不是塊的資料需要更多的儲存表,然而,卻可增加耐力。刷新是針對頁而不是針對整塊。
第14圖是一個具有耐力控制器的超級增強耐力設備 (Super Enhanced Endurance Device,SEED)之方框圖。如第1和3圖所示,可選地,SEED 200'與SSD 350對接,然後連接到快閃記憶體342,而不是直連接到NAND快閃記憶體196。SSD 350可以與SEED 200'整合。SEED 200'能夠不使用主機VMD驅動器而獨立工作。一些駐留在主機VMD驅動器的一些功能可能被實施。
SEED 200’具有主機界面16,SEED 200’使用總線,如PCIe,SATA,或者通用序列匯流排(Universal-Serial-Bus,USB),NVMe,雷電界面,eMMC,iSSD等與主機300(如第1圖)通訊。從主機界面16來的資料被發送到耐力控制器360。耐力控制器360取代第3圖中的SEED控制器192,並且許多部分具有與第3圖中已經描述的相同的標號。
耐力控制器DRAM 358可儲存一個或多個虛擬磁碟,緩衝記憶體,S.M.A.R.T.訊息,韌體(firmware)和其它緩衝區和表。低級別SSD DRAM 340可以儲存安全訊息,壞頁管理表,映射表,抹除計數表,備件和交換塊,其它緩衝區和表。低級別DRAM界面336從耐力DRAM控制器358讀取和寫入。刷新管理器202可以週期性的刷新低級別SSD快閃記憶體342中的資料。刷新恢復管理器43使用刷新資料管理恢復操作。暫時管理器348控制暫時資料,而壓縮映射管理器352管理壓縮表。安全管理器346管理安全功能。
多通道快閃記憶體界面14編程資料頁並且抹除快閃記憶體342中的塊,且可能會被組織成幾個通道。ECC管理器338產生低層次錯誤校正碼(ECC)以加人寫資料,並比較儲存的ECC 與重新產生ECC,以檢測和糾正讀取錯誤。它也管理需要額外保護的快閃記憶體頁,為這些頁產生ECC,並且在需要的時候ECC的儲存和回收。壞頁管理器206跟蹤快閃記憶體342中的壞頁位置。這樣能夠延長單個塊的壽命,因為在塊中僅有一頁可能是壞的,而其它的頁還能連續使用。更複雜的壞塊管理可能會降低整體的快閃記憶體驅動器的磨損。
磨損均衡器40可提供兩種磨損均衡方法。一種方法是從可用空塊中動態選擇最低磨損均衡計數塊寫資料。另一種方法是基於耗損均衡計數門檻值。一旦達到這個門檻值,快閃記憶體資料塊將從快閃記憶體342中的一個物理塊(具有低損耗均衡計數)移動到另一個空物理塊(具有高損耗均衡計數)。耐力控制器360和SSD 350控制器可以功能性的整合在一起或者分開。
第15A至15E圖表示了主機上VMD驅動器處理主機寫指令。步驟1002,主機請求中包含邏輯位址,如用於統一映射表的索引的LBA。讀取統一映射表匹配條目,或解析檔案FAT和FDB的條目,以確定檔案副檔名(File Extension)和資料類型。在匹配條目的前幾位是資料類型位,以指示什麼類型的資料被儲存在該邏輯位址。取決於資料類型位,調度不同的進程。
步驟1004,當匹配條目的資料類型位是10,資料是FAT或FDB條目。元資料寫過程被調用,這在第15B圖詳細描述。
步驟1006,當資料類型位元是11,用戶資料檔案進程檔案被調用。用戶資料寫過程在第15C圖中詳細描述。用戶資料檔案是應先儲存在DRAM中,然後再刷新到快閃記憶體中的用戶和應用程式資料。
步驟1008,當匹配條目的資料類型位元是001,分頁檔案的資料用於交換主儲存器的外圍儲存。這些交換藉由主機上的儲存管理器執行。這些檔案不需要被儲存在快閃記憶體中,以減少損耗。分頁資料寫入過程被調用,第15D圖中詳細描述。
當匹配條目的資料類型位元是01(非習知類型)時,在步驟1008中,暫時檔案資料無需儲存在快閃記憶體中。暫時資料寫過程被調用,已在第15E圖中進行詳細描述。
第15B圖顯示了元資料寫入過程,步驟1102,主機資料被寫入主機的DRAM中的元資料檔案區域緩衝記憶體(第6圖中的286),步驟1104,當緩衝記憶體滿了,步驟1106,緩衝記憶體的元資料被移動到DRAM中元資料分組緩衝區。步驟1108,當達到標準大小或者收到資料之後,對分組緩衝區的元資料,執行分組過程。
分組處理過程將元資料分成元頁。步驟1110,當在元頁滿了時,步驟1112,滿了的資料的頁被寫入到SEED、SSD或者快閃記憶體中。
第15C圖顯示了用戶資料的寫過程。步驟1122,主機資料被寫入主機的DRAM中(在第6圖中的234)的用戶資料檔案區緩衝記憶體。步驟1124,當緩衝記憶體滿了,步驟1126,緩衝記憶體中的用戶資料被轉移到DRAM中用戶資料分組緩衝區。步驟1128,當滿足標準大小時,根據分組緩衝區用戶資料,執行分組進程。
分組進程將用戶資料分為元頁。步驟1130,當元頁滿了,步驟1132,滿了的用戶資料元頁將被寫入SEED、SSD,或者快 閃記憶體中。
第15D圖顯示分頁資料寫過程。步驟1142,主機資料被寫入主機的DRAM(第6圖中的232)中的分頁資料檔案區緩衝記憶體中。步驟1144,當緩衝記憶體滿了,步驟1146,緩衝記憶體中的分頁資料被移動至DRAM中的分頁資料分組緩衝區中。步驟1148,當滿足標準大小時,根據分組緩衝區分頁資料,執行分組進程。
分組進程將分頁資料分成元頁。步驟1150,當元頁滿了,步驟1152,滿了的分頁資料的元頁被寫入SEED、SSD,或者快閃記憶體中。
第15E圖顯示暫時檔案寫過程。步驟1162,主機資料被寫入主機的DRAM虛擬磁碟_01(第6圖中的288)的暫時檔案區中。步驟1164,當虛擬磁碟滿了,步驟1166,虛擬磁碟中的暫時檔案被移動到DRAM中暫時資料分組緩衝區中。步驟1168,當滿足標準大小,根據分組緩衝區中的暫時資料,執行分組進程。
分組進程將暫時資料組成元頁。步驟1170,當元頁滿了,步驟1172,滿了的暫時資料的元頁被寫入SEED或者SSD中,而不是快閃記憶體中。
第16A至16E圖顯示了主機VMD驅動器處理主機讀指令。主機請求中包含邏輯位址,如用於統一映射表的索引的LBA,步驟1012。讀取統一映射表匹配條目,或解析檔案FAT和FDB的條目,以確定檔案檔案副檔名和資料類型。在匹配條目的前幾位是資料類型位,以指示什麼類型的資料被儲存在該邏輯位址。取決於資料類型位,調度不同的進程。
步驟1014,當匹配條目的資料類型位元是10,資料是FAT或FDB條目。元資料讀過程中被調用,這在第16B圖詳細描述。
步驟1016,當資料類型位元是11,用戶資料檔案讀進程被調用。用戶資料讀進程在第16C圖中詳述。
步驟1018,當匹配條目的資料類型位元是001,資料是分頁檔案。些檔案不需要被儲存在快閃記憶體中,以減少損耗。分頁資料讀進程被調用,調用過程在第16D圖中詳述。
步驟1018,當匹配項的資料類型位元是01(非現有類型),暫時檔案的資料不是儲存在快閃記憶體中。暫時資料讀進程被調用,調用過程在第16E圖中詳述。
圖第16B顯示了元資料讀過程。步驟1120,當請求的元資料在主機的DRAM(在第6圖的286)的元資料檔案區緩衝記憶體中被發現時,步驟1022,從這個緩衝記憶體中讀取請求的元資料,且被傳送至主機。
步驟1120,當所請求的元資料不在緩衝記憶體中時,步驟1024,從SSD中提取元資料,並寫入到主機DRAM中的元資料取消分組緩衝區中。步驟1026,如果元資料被分組,對分組元資料執行取消分組進程。步驟1028,從元資料取消分組緩衝區讀取取消分組元資料,並傳送到主機。
第16C圖表示了用戶資料讀過程。步驟1130,當請求的用戶資料在主機DRAM(第6圖中286)的用戶資料檔案區寫緩衝記憶體中發現時,步驟1032,然後,從寫緩衝記憶體中讀取請求用戶資料,並被傳送到主機。寫緩衝記憶體保留最近主機寫的資料。請求的用戶資料也可能是為四種資料結合的四個讀緩衝記 憶體中的一個,即RA/FA,RA/NFA,NRA/FA,和NRA/NFA,根據讀存取,加載用戶資料,不一定是在主機寫資料時。
步驟1160,當在主機DRAM的四個讀緩衝記憶體之一(第6圖中290、291、292、293)中發現請求的用戶資料,步驟1062,從讀緩衝記憶體中讀取請求用戶資料,並且傳送到主機。
步驟1130、1160,當請求的用戶資料不在五個緩衝記憶體的任何一個中時,步驟1034,從SSD中獲取用戶資料,然後寫入主機DRAM中的用戶資料取消分組緩衝區中。步驟1036,如果用戶資料被分組,執行取消分組進程以使用戶資料取消分組。步驟1038,從用戶資料取消分組緩衝區中讀取未分組用戶資料,並且傳送至主機。取消分組資料被存到四個讀緩衝記憶體中的一個。
第16D圖顯示分頁資料讀過程。步驟1140,當在主機的DRAM(第6圖中232)分頁資料檔案區緩衝記憶體中發現請求的分頁資料時,步驟1042,從緩衝記憶體中讀取請求的分頁資料,並傳送到主機。
步驟1140,當請求的分頁資料不在緩衝記憶體中,步驟1044,從SSD中獲取分頁資料,並寫入主機DRAM中分頁資料取消分組緩衝區中。步驟1046,如果分頁資料被分組,執行取消分組進程以使分頁資料取消分組。步驟1048,從分頁資料取消分組緩衝區讀取取消分組分頁資料,並傳送到主機。
第16E圖顯示暫時資料讀過程。步驟1150,當在主機的DRAM(第6圖中288)中虛擬磁碟_01中的暫時資料檔案區緩衝記憶體中發現暫時資料時,步驟1052,從緩衝記憶體中讀取請 求的暫時資料,並傳送到主機。
步驟1150,當請求的暫時資料不在緩衝記憶體中,步驟1054,從SSD中取出暫時資料,並寫入主機DRAM中的暫時檔案取消分組緩衝區中。步驟1056,如果暫時資料被分組,執行取消分組進程以使暫時資料取消分組。步驟1058,從暫時資料取消分組緩衝區讀取取消分組暫時資料,並傳送到主機。
第17A至17B圖表示了元頁組成過程。元頁是一個頁大小的倍數。兩個單獨的元頁用於組成每個資料類型組,一個元頁組成整個頁和第二個元頁組成局部頁。
步驟1202,確定添加到分組資料的新的未分組資料的大小。步驟1204,當新的資料的大小在完整頁大小的512字節之內時,新的資料被認為是一個完整頁。如果新的資料超過一個頁的大小,每一頁都可以單獨處理。
步驟1204,當新資料是一個完整的頁,步驟1206,在當前元頁Z中,可以找到下一個可用的頁位置X,當前元頁Z組成完整頁。步驟1210,新的完整頁被移動到元頁Z內的位置X。步驟1212,相應的組成映射表條目被更新為新添加的資料。主機的資料的LBA,HOST-LBA,資料類型YY00,元頁數目Z,以及元頁Z內的頁位置X被記錄在該條目中。
步驟1208,當元頁Z是滿頁時,步驟1216,元頁Z被寫入到SEED或SSD。步驟1218,主機LBA的組映射表條目,藉由指針SSD-LBA-MF被修改指向SSD中的完整元頁,但是仍表示頁的位置X。最後資料類型位被修改為1以表明是SSD儲存,而不是DRAM儲存,YY01。
第17B圖表示了將一個新的局部頁分成用於分組局部頁的元頁M。步驟1226,下一個可用的元頁M內用於局部頁資料的位置A(N)是固定的。步驟1220,新的局部頁資料被移動到元頁M開始,即位置A(N)。開銷也隨著新的資料被移動,例如,資料頭。
步驟1222,組成映射表中的對應條目被更新為最新增加資料。主機中用於新資料的LBA時,HOST-LBA,資料類型YY10,元頁數目M,元頁M內的起始位置A(N),資料長度和開銷被記錄在條目中。第三個資料類型位設置為1以表明是局部頁,而不是一個完整頁。
步驟1228,當元頁M是滿的,步驟1236,元頁M寫入到SEED或SSD。步驟1238頁主機LBA的組映射表條目,藉由指針SSD-LBA-MP,修改為指向SSD中的局部元頁,且仍然表示起始位置A(N)和長度。最後一個資料類型位改為1,以表明是SSD儲存,YY11。
第18圖表示了由VMD驅動器加密和壓縮處理過程。第1圖和第2圖中的壓縮解壓縮引擎242,以及加密解密引擎240中可以執行這些功能。當主機寫資料被VMD驅動器100截獲時,檢查檔案的副檔名。音頻、視頻、圖形、資料庫和其他檔案副檔名可能表示資料已經被壓縮,例如,藉由一個用戶程式。步驟510,禁止對檔案檔案副檔名進行壓縮。
步驟512,啟用加密時,步驟514,使用加密密鑰對檔案進行加密。步驟516,在檔案系統中,為這個檔案設置一個加密標誌位。可選地,暫時和分頁資料類型可以不進行加密或解密。
步驟518,如果啟用了壓縮,步驟520,檔案被壓縮。步驟522,增加頭檔案(header file),頭檔案具有使用壓縮算法的標識符(identifier)和新資料大小。步驟524,在檔案系統中,為檔案設置壓縮標誌。可選地,暫時和分頁資料類型可以不進行壓縮或解壓縮。
第19A至19B圖表示了在SEED中進行備份或交換處理過程。步驟530,當快閃記憶體塊中的已有頁有新資料到達時,步驟532,當快閃記憶體頁可寫時,步驟534,將新的資料寫入到快閃記憶體頁。
步驟532,當快閃記憶體頁不能被寫時,例如,在塊中,頁在其它的頁之前已經被寫,而快閃記憶體只頁以正向序列方式寫,步驟536,但備用塊可用於塊,步驟538,然後新的資料寫入到SSD DRAM緩衝區194備用塊中的相同頁中。
步驟528,當快閃記憶體頁不能寫,或者沒有可用的備用塊時,新的資料被寫入SSD DRAM緩衝區194中的空備用塊中。處理過程在第19B圖中繼續。步驟540,當其它的空備用塊可用時,處理過程結束。
步驟540,當沒有更多備用塊可以用時,步驟542,選擇寫的最多,或不經常存取的備用塊。步驟543,所選擇的備用塊中的髒頁結合舊塊中的有效頁被寫入所選擇的備用塊中。步驟546,選擇備用塊中的結合頁被寫入快閃記憶體的空塊中,交換塊。步驟548,所選擇的舊塊被抹除。
第20A至20D圖表示了壞頁和壞塊的檢測和處理過程。在第20A圖中,步驟554,一旦快閃記憶體中的塊被抹除,該物 理塊的抹除計數器遞增,根據之前的塊狀態和當前頁狀態,塊的狀態被改變為空塊(000)或帶有壞頁的空塊(100)。壞塊抹除計數表儲存在SSD DRAM緩衝區194,且當DRAM中沒有足夠的空間時,將該表備份到NAND快閃記憶體儲存器196中。壞塊抹除計數表包括每個物理塊的抹除次數,以及塊的狀態。塊狀態可以是一個3位的值,000表示好的空塊,011和111表示壞塊,而100表示有一些壞頁和一些好頁的局部壞塊。
壞塊抹除計數表更包括跟蹤一個塊內的壞塊的頁狀態表。頁狀態值為000表示好頁,001表示受保護的頁,頁使用100位的二級ECC,而不是一個25位的一級ECC,010表示頁被使用,110表示頁內有垃圾或修剪資料,11X表示壞頁。
在塊被抹除後,檢查塊中每個頁的狀態。步驟556,讀取物理塊的頁狀態表,且當前頁被初始化為0頁。步驟562,當當前頁的狀態是11X時,當前頁已經標記為一個壞頁。此頁不需要進一步處理。步驟560,當當前也沒有超出塊中的最後一頁時,步驟558,當前頁會被遞增到塊中下一頁,且對下一個頁的處理重複步驟562。
在第20B圖中,塊中的所有物理塊已經處理。步驟564,確定塊中壞頁的數量。步驟566,當塊中壞頁的數量超過門檻值T3時,塊被認為是壞塊。步驟568,在塊壞抹除計數表中,物理塊的塊狀態被修改為011。物理塊將不再使用。步驟570,局部壞塊計數器(BAD_BP_CNT)計數減少,而壞塊計數器計數增加。
在第20C圖中,步驟562(第20A圖),當前頁之前沒有 被標記為壞頁。抹除操作將抹除頁中所有位的值抹除為抹除值,例如1。讀取當前頁中的位元以確定是否所有位元都被抹除。步驟574,獲得一個計數值,計數值為處於未抹除狀態的頁中的位元的數目,如0位元。這些都是錯誤的位元。然而,ECC可以校正這些錯誤,所以如果錯誤位的數目比較小,頁可能仍然是可用的。
步驟572,當未抹除的位計數小於第一門檻值T1(表示太多錯誤位元,增加了使用這些頁的風險,即使有額外的ECC軟體保護),步驟576,而當前頁狀態需要保護(XX1),然後,頁已經標記為需要ECC二級保護。步驟582,頁狀態修改為需要保護的空白頁(001)。返回第20A圖,處理下一個當前頁。
步驟572,當未抹除的位計數小於第一門檻值T1,步驟576,而當前頁狀態不是一個需要保護的頁(XX1),且頁尚未由二級ECC進行保護。步驟578,當未抹除位元計數大於第二門檻值T2時(表示錯誤位的級別為可能會導致致命錯誤,並需要額外的ECC軟體幫助糾正的錯誤),步驟584,二級ECC計數器計數值增加,步驟582,頁狀態被改為001,當主機資料被儲存在物理頁中時,二級ECC將被用使用。返回第20A圖,處理下一個當前頁。
步驟576,當頁被尚未由二級ECC保護,步驟578,未抹除保護位計數不大於第二門檻值T2,該頁的狀態為好頁。第一級ECC是足以校正當前頁中可能產生的錯誤的。步驟580,如果它尚未被標記為一個好頁,頁的狀態被改變為000。返回第20A圖,處理下一個當前頁。
在第20D圖中,步驟572(第20C圖),當前頁有超過第一門檻值T1的未抹除位元。超過T1門檻值表示該頁中為未抹除位超過第二級別的ECC可以校正的數目。頁是壞的,不能夠安全地使用。
步驟586,當塊(1XX)中的物理塊的狀態是壞頁,在壞塊抹除計數表中,塊已被標記為壞頁塊。在塊中還有其它的壞頁,並沒有塊狀態需要改變。然而,步驟592,藉由在頁狀態表中改變頁狀態為11X,當前頁被標記為一個壞頁。步驟594,壞頁計數器增加,返回第20A圖,處理下一個當前頁。
步驟586,當物理的狀態塊不是1XX時,在壞塊擦抹除計數表中,塊還沒有被標記為局部壞塊。在這個塊中已經沒有其它的壞塊。步驟588,在塊抹除計數表164,塊的狀態被改為具有壞塊(100)的空塊。步驟590,局部壞塊計數器(BAD_BP_CNT)增加。此外,步驟592,藉由在頁狀態表中更改頁狀態為11X,將前頁標記為壞頁。步驟594,壞頁計數器增加,返回第20A圖,處理下一個當前頁。
SSD可能包含許多快閃記憶體芯片(例如,16快閃記憶體芯片)。可能會遇到某些特殊情況,例如,當快閃記憶體芯片的一個層是壞的或整個芯片都是壞的。如果是過度配置,SSD的快閃記憶體容量可以吸收一個完整層的容量損失或整個快閃記憶體芯片的容量損失。設備控制器的特別算法可以被用來忽略損失,例如,以恢復資料,然後調整快閃記憶體設備的元頁單元的大小以避免層錯誤或芯片錯誤。過度配置也可以藉由使用空閒芯片代替故障芯片實現。
第21A至21B圖表示了快閃記憶體塊使用第13A圖中的表進行刷新操作。當刷新啟動,例如,定期(每週一次等),步驟602,獲得當前日期。步驟604,現行塊被設置成第一個塊,步驟608,如果塊不是壞塊,然後,步驟610,從壞塊抹除計數表讀取塊抹除計數和塊寫入日期。步驟612,計算從上次寫到當前日期的天數,例如,從當前日期減去上次寫日期。步驟614,當上次寫到當前日期的天數超過保留時間時,然後,在步驟618中,塊中的所有有效頁被移動到備用塊中的空白頁,並與其它之前刷新的塊中的頁一起打包。
在第21B圖中,步驟620,當DRAM中的備用塊填滿時,DRAM中的備用塊的資料被移動到快閃記憶體中具有最低的抹除計數的備用塊中。步驟624,舊的快閃記憶體塊被抹除。步驟628,當有更多的塊需要處理時,步驟630,現行塊推進到下一個塊。
第22圖表示了在主機上執行的內部清理操作。內部清理操作可以在主機的一些檔案或者全部檔案上執行。選擇一個檔案,步驟650,獲得檔案的最後存取日期。步驟652,使用當前日期計算該檔案上次存取以來的天數。步驟654,當天數少於清潔門檻值,步驟656,該檔案將被跳過,而選擇下一個檔案。步驟654,當檔案的上次存取以來的天數超過清潔門檻值時,步驟658,如果檔案類型是暫時檔案,日誌或分頁,該檔案將被刪除,且配置了自動清理。步驟670,可以提示以及詢問用戶是否刪除檔案,如果用戶響應是,則刪除該檔案。步驟672,如果用戶沒有選擇刪除檔案,重複檔案搜索和檔案刪除,直到選擇下一個內部清除檔案。
第23圖表示了SEED SSD從主機接收的日誌檔案。步驟674,當SEED從主機接收到一個日誌檔案,SEED將日誌檔案移動到日誌分組表中。步驟676,任何元資料相關的日誌檔案被轉移到元資料緩衝記憶體。步驟678,完成標誌從SEED發送回主機以表明日誌檔案已經成功寫入。
步驟680,當日誌表已滿,步驟682,將日誌分組表寫入快閃記憶體。
第24圖是主機向SEED SSD DRAM緩衝記憶體寫資料之流程圖。當主機資料寫入到SSD DRAM緩衝區194時,步驟684,啟動1鍵或標誌位連同它的LBA位址,序列號,和資料校驗和被寫入到日誌分組表中。步驟681,產生寫資料校驗和。在寫資料實際移動之前,日誌先寫入。步驟686,主機寫資料是元頁形式,且元頁資料被轉移到相關的緩衝記憶體。步驟688,各種元資料表,如FAT,FDB,分組表,壓縮表,和其他元資料表被轉移到SSD DRAM緩衝區194中相關的ETL表區域。步驟685,如果發現同一LBA具有舊的序列號,但LBA沒有發現具有commit2標誌的日誌,記錄abort1標識。新的資料將覆蓋同一個LBA位址的舊資料。舊資料不寫入快閃記憶體。步驟690,當日誌表滿了,步驟692,將日誌分組表寫到快閃記憶體。
第25圖表示了從SEED中DRAM緩衝記憶體向快閃記憶體寫之流程圖。當SEED從SSD DRAM緩衝194向NAND快閃記憶體196傳輸資料時,步驟694,START2鍵或標誌被寫入到日誌分組表。步驟696,寫入快閃記憶體的資料以元頁形式表示。步驟698,各種元資料表,例如,如分組表,壓縮表和其它元資 料表,將從SSD DRAM緩衝194相關的ETL表區域轉移到快閃記憶體。步驟695,commit2標誌被記錄到日誌分組表。步驟699,當日誌表已滿時,步驟697,日誌分組表被寫入到快閃記憶體中。「START1」標誌記錄開始向DRAM資料移動,而「START2」記錄開始將資料寫入到快閃記憶體,「commit2」記錄完成向DRAM資料移動,「abort1」記錄同一LBA位置的資料被新的資料覆蓋。
第26圖表示了主機上電源斷電順序之流程圖。步驟1302,當主機電源掉電後,而且主機沒有備用電源的主機時,步驟1306,協議命令用來通知SEED或SSD檢測到電源故障。步驟1308,主機刷新暫存器和CPU緩衝記憶體,緩衝記憶體,SEED SSD虛擬磁碟。系統提供電源以幫助完成向SEED SSD的資料刷新。
步驟1302,當可以獲取備用電源時,步驟1304,協議命令用來通知SEED或SSD檢測到電源斷電。步驟1308,主機將元資料緩衝記憶體和資料寫緩衝記憶體刷新到SSD。由於發生可控制的電源斷電,CPU暫存器,其它的緩衝記憶體和虛擬磁碟將不被刷新,主機將保留重要資料。步驟1310,主機向SSD發送協議命令以表示資料被刷新。
第27圖表示了SEED電源斷電處理之流程圖。步驟1312,當主機向SEED發送協議命令,SEED退出垃圾收集,步驟1314,繼續接收來自主機的資料,並且同時開始將資料備用或交換DRAM塊中的資料、元資料緩衝記憶體中的資料以及向資料寫緩衝記憶體的資料刷新到快閃記憶體。步驟1316,一旦主機資料刷新完成,步驟1318,SEED不再刷新DRAM中的任何暫時檔案 或分頁檔案資料,標記任何FDB條目為廢棄的,清除任何FAT條目,以及標記將壞頁表中的頁標記為垃圾。步驟1320步,將ETL表和資料被刷新到快閃記憶體。步驟1322,記錄S.M.A.R.T.監控訊息以及正常斷電狀態。
第28圖是SEED電源故障處理之流程圖。當主機向SEED發送電源故障協議命令時,步驟1332,SEED退出垃圾收集,並接收各種主機寫入預設快閃記憶體區域的刷新資料。
步驟1334,SSD DRAM緩衝區194的刷新資料區接收從主機刷新的CPU的暫存器和緩衝記憶體的資料,然後寫入到預定的快閃記憶體區域。步驟1336,刷新資料區域接收從主機的緩衝記憶體刷新資料,然後將資料寫入到預定的快閃記憶體區域。步驟1338,刷新資料區域接收從主機接收的虛擬磁碟刷新資料,然後將資料寫入預定的快閃記憶體區域。
步驟1339,來自SSD DRAM緩衝區194用於備用或交換DRAM塊,用戶資料,壞頁狀態表,ETL資料和ETL表的資料被寫入快閃記憶體中的預設區域。步驟1324,記錄S.M.A.R.T.監控訊息以及非正常斷電狀態。
第29A至29B圖表示了使用第13B圖中的表進行快閃記憶體頁刷新操作之流程圖。當刷新啟動,例如定期(每週一次等),步驟603,獲得當前日期。現行塊和頁被設置為第一塊,第一頁。步驟605,現行塊的保留時間被計算為現行塊的抹除次數的函數。例如,具有低抹除計數的塊可能有一個更長的保留時間。
步驟609,當當前頁是一個有效的使用頁時,步驟611,讀頁狀態表以獲取頁寫日期。在步驟613中,計算上次寫以來的 天數,例如,當前的日期減去頁的寫日期。步驟615,當天數超過了保留時間,步驟619,當前頁的內容被移動到備用塊中的空頁中,並與其它的需要刷新的頁一起打包。
在第29B圖中,步驟621,當DRAM中的備用塊是滿的時,DRAM備用塊中的資料塊被移動到快閃記憶體中具有最低的抹除計數的備用塊中。步驟625,舊的快閃記憶體塊被抹除。步驟617,當現行塊中有更多的頁需要處理時,步驟623,當前頁被推進到下一個頁。在步驟629,當現行塊中有更多的塊需要處理時,步驟631,當前頁被推進到下一個塊。
第30A至30B圖表示了第30A圖中頁寫過程中的壞頁管理過程。當一個頁被寫入到快閃記憶體儲存器時,步驟1440,讀取頁狀態表,頁不是一個壞頁,而是一個空頁。步驟1442,當頁狀態是受保護的XX1,步驟1452,為頁產生第二級別的錯誤校正碼,ECC2。步驟1454,驗證寫資料,步驟1456,當資料小於錯誤發生門檻值T1,步驟1458,在頁狀態表中將頁狀態寫成011,即一個使用狀態的受保護的頁。
步驟1442,當頁狀態不是受保護狀態XX1,步驟1444,驗證寫資料,步驟1446,當小於錯誤發生門檻值T1時,步驟1448,且當小於錯誤發生門檻值T2時,步驟1450,在頁狀態表中將頁狀態寫成010,即一個使用狀態的頁。在步驟1448中,當檢測到超過T2個錯誤時,步驟1452,產生第二級ECC2,而所述頁成為一個受保護的頁。
當超過T1個錯誤發生在步驟1446或1456中時,第30B圖中的處理過程繼續。步驟587,當塊狀態讀為1XX,塊是具有 壞頁的塊,步驟593,而在頁表中,頁狀態被寫為11X,所述頁為壞頁。步驟595,壞頁計數增加,步驟599,且定位一個新的空頁用於接收位於主機寫入資料。
在步驟587,當資料塊狀態讀不是1XX,步驟589,則在壞塊抹除計數表中,將該塊的狀態修改1XX。步驟591,具有壞頁的塊(BP)的計數器增加,步驟593,所述頁狀態修改為11X。
第31A至30B圖表示了後端垃圾收集過程。當後端垃圾收集過程週期性地觸發時,步驟1460,檢查壞塊抹除計數表中的每個塊條目,以定位垃圾頁,所述頁包含丟棄的修剪過或過時的資料。步驟1462,當塊狀態是X10,塊具有垃圾頁,步驟1464,為塊讀取頁狀態表並計算垃圾頁的數量。步驟1466,當垃圾頁的數量超過門檻值TP時,步驟1468,塊中使用過(不是垃圾,010和011)的頁被移動到從空塊池中選擇的空塊中,空塊最有最低抹除計數次數。步驟1470,具有垃圾頁的塊被抹除,壞塊抹除計數表和頁狀態表被更新以顯示抹除狀態。
在第31B圖中,步驟1472,為最低抹除計數塊創建來自空塊池的塊列表。步驟1474,讀取每個塊的抹除計數,步驟1480,當一個非空的塊的抹除計數小於門檻值TE時,將資料從低抹除計數塊移動到最高抹除計數塊。步驟1482,門檻值可以增加。將很長時間沒有更新的舊資料移動到更耐磨損的塊,所以更耐磨損的塊可以接收更少的更新,為以後的寫/抹除週期釋放一個低抹除計數塊。
第32圖表示了主機VMD初始化之流程圖。當主機操作系統啟動過程完成後,步驟1500,主機進行檢查,看是否啟用VMD。 步驟1502如果啟用,主機加載和執行VMD應用程式180。在步驟1504,VMD應用程式設置緩衝記憶體的元資料和表,步驟1506,為暫時資料設置虛擬磁碟_01。步驟1508,為分頁資料設置緩衝記憶體,步驟1510,為寫資料建立緩衝記憶體。
步驟1518,設立瀏覽器資料的虛擬磁碟_02,步驟1516,設立用戶應用程式的虛擬磁碟_03。步驟1514,將刷新到SEED DRAM的刷新資料區域或者快閃記憶體中的資料加載到這些緩衝記憶體和虛擬磁碟。步驟1512,為FA,RA組合建立四個讀資料緩衝記憶體。
第33A至33B圖是SSD初始化之流程圖。步驟1522,從快閃記憶體加載SSD韌體和並執行SSD韌體。步驟1524,韌體為元資料和表格建立緩衝記憶體,步驟1526,為暫時資料建立緩衝記憶體,步驟1528,為分頁資料建立緩衝記憶體,步驟1530,為寫入資料建立緩衝記憶體。步驟1532,當發生異常斷電前,執行額外的步驟,如第33B圖。
步驟1534,讀快閃記憶體預設區域,將資料寫入SSD DRAM緩衝194的備用或交換,用戶資料,壞頁和狀態表,ETL資料和ETL表。步驟1535,緩衝記憶體和虛擬磁碟加載從快閃記憶體的刷新資料區域獲取的刷新資料。步驟1533,抹除快閃記憶體的預設區域,以為另一個異常斷電的發生提供空間。
第34圖是一個清理日誌區之流程圖。流程在插入檢查點日誌之後執行。步驟1536,選擇一個檢查序列號,步驟1538,將序列號與用於清理目的插入的檢查點序列號相比。步驟1538,當序列號在檢查點之前,步驟1540,對這個序列記錄Commit2標 誌,步驟1544,由於序列的資料被成功提交到快閃記憶體,與該序列號相關的所有日誌記錄被刪除。步驟1542,當序列具有abort1標誌記錄時,步驟1544,刪除所有與該序列號相關的的日誌,因為原來的LBA資料被在DRAM中較大的序列號的資料覆蓋,且不再需要移動到快閃記憶體。步驟1546,當在檢查點之前,沒有更多的序列號檢查時,步驟1548,檢查點的日誌被刪除。
第35圖顯示了在下次上電時,SSD上執行的一個異常電源關閉檢查。步驟1550,掃描選定的序列號的日誌。步驟1556,當發現commit2標誌時,或者,步驟1558,發現abort1的標誌位時,步驟1569,該序列號相關的日誌被刪除。如果保留了額外的序列號,步驟1552,選擇另一個序列號,重複該處理過程。
步驟1556、1558,當既不是commit2,也不是abort1標誌被發現,步驟1560,而是start2標誌被發現,步驟1564,那麼讀取LBA資料,產生一個校驗和並且與儲存的日誌校驗和比較。步驟1568,當校驗和匹配時,與此序列號相關的日誌被刪除,步驟1569,儘管電源異常關閉,資料卻被正確地寫入。
步驟1568,沒有匹配的校驗和出現時,或者,步驟1560,START2標誌沒有發現,步驟1562,那麼在異常斷電期間,與這個序列相關的LBA被報告給主機作為一個失敗的寫資料。步驟1569,此序列號相關的日誌將被刪除,在步驟1552,如果額外的序列號被保留,那麼選擇另一個序列號,並重複該處理。
第36圖顯示了在下次上電時,主機上執行的異常電源關閉檢查。步驟1580,從SSD中接收並讀取失敗的資料寫列表以及他們的LBA位置(步驟1562),步驟1582,並且選擇列表中失 敗的LBA。步驟1584,將日誌表中的業務號碼與LBA相比,以確定他們是否是相關的。步驟1586,當LBA是無關的,列表中的另一個LBA,步驟1582,可能會被選中。步驟1586,當LBA是相關的,步驟1588,並且發現commit標誌,那麼重做該業務。步驟1592,檢查寫業務日誌中的每個LBA,並與日誌中新資料記錄一起並更新。步驟1588,沒有發現commit標誌時,則撤銷該業務。步驟1590,寫業務日誌中,檢查每個LBA,並且與日誌中記錄的舊資料一起被更新,步驟1594,當更多的失敗LBA留在列表中時,步驟1582,然後列表中的另一個LBA可能被選中。
可選實施方式
本發明所考慮的其它幾個實施例。已經描述了移動一個完整的元頁到SEED、SSD,或快閃記憶體,在完全被填滿前,一個幾乎滿的元頁可以移動。因此,滿可以是參考一些門檻值的滿,例如,可以是元頁大小減去512個字節。
資料類型位元和其它狀態字段的多種編碼,指針等是可能的。資料類型狀態位元不需要在條目的第一位元。條目可以與其它表中的條目鏈接,如一個用於標籤或者有效位的單獨的表。暫時檔案可以有多種副檔名,並且新的副檔名可以被添加到列表中以進行搜索。由知名的程式創建的暫時檔案有知名的檔案副檔名,例如,字處理軟體和網際網路瀏覽器,而且,可以隨時添加額外的副檔名。這些額外的檔案檔案副檔名,可以藉由韌體更新添加到SEED和SSD控制器的控制軟體,或藉由軟體更新到VMD應用180和VMD驅動器100。
ETL的每一部分所使用的DRAM緩衝器的大小可以被SSD控制器的韌體固定。基於用戶的使用或偏好,每一部分的ETL更可以由控制器韌體自動或手動的動態調整。由於DRAM緩衝區大小的限制,並非所有的ETL功能在同一時間被DRAM緩衝區容納。各種ETL功能可以適應實際工作環境。控制器可以被每個ETL調整大小以優化DRAM緩衝區。基於設備的使用模式,可以定期進行自適應調整。
對於TLC快閃記憶體設備,DRAM緩衝區可以使用NVRAM取代,例如,相位變化記憶體(phase-change memory,PCM),鐵電隨機存取記憶體(ferroelectric random-access memory,FRAM),磁阻記憶體(Magnetoresistive RAM,MRAM),憶阻器(memristor),PRAM,電阻記憶體(Resistive RAM,RRAM),賽道記憶體和奈米記憶體(nano RAM,NRAM)等。NVRAM的優勢是所有的ETL支持表等可以保留在NVRAM中(沒有必要放在快閃記憶體中),且其它的快閃記憶體目標資料(如資料寫緩衝記憶體等)頁可以保留,即使電源關閉,因為即使電源突然關閉時,也不需要備用電源電路。暫時映射表,讀取緩衝記憶體映射表可以選擇在電源關閉時或在下次上電初始化時丟棄。除MLC以外,NVRAM缺點是成本。對於MLC,缺點是速度慢,且受寫入或抹除次數的限制。藉由分配部分只具有很強的編程頁的TLC,可以從TLC中獲取MLC。在SEED 200中,ETL的一些功能可以在一個SRAM中被實現。
在TLC快閃記憶體設備中,DRAM的緩衝區也可以被組合取代,如DRAM+SRAM,DRAM+MLC,DRAM+PCRAM或DRAM+MRAM。當使用DRAM緩衝記憶體的組合,如 DRAM+MLC,ETL支持的功能在DRAM中被管理,但他們中的一些儲存在MLC中。最終DRAM的緩衝區中的一些資料可以被丟棄,如暫時資料和映射表,讀緩衝記憶體和映射表,當電源斷電時,資料不會移動到MLC。當電源突然關閉時,需要保持的表和資料,如塊抹除計數表,頁狀態表,SMART資料採集控制器等不需要儲存在MLC中。複製到MLC比複製到TLC快閃記憶體快。在伺服器應用的情況下,暫時資料和映射表,讀緩衝記憶體和映射表不能被丟棄;當電源突然被關閉時,使用備用電源,這些區域將被儲存到MLC。另一種方法是為了確保DRAM的ETL中的資料的利益,將這些區域複製到MLC。在電源關閉時,一個有效的ETL中的資料副本可以保持在MLC中。在電源上電時,ETL中的資料可以從MLC加載至DRAM中。複製方法可以藉由記錄細微的差別進行修改,這將減少複製資料的量,因此減少對MLC的寫。
DRAM和MLC,或DRAM和SLC沒有必要使用不同類型的快閃記憶體196、342,如SLC、MLC、TLC、QLC、PLC、3D NAND等。相反,藉由分配部分只具有很強的頁編程的TLC,可以從TLC中獲取MLC。藉由分配只具有較強的頁編程的部分MLC,TLC,QLC,PLC等,可以從MLC、TLC、QLC、PLC、etc.等獲取SLC。例如,一個增強型TLC快閃記憶體可以藉由將TLC的一部分配置SLC(健壯頁)使用的方式實現,如將四分之一的TLC作為SLC(健壯頁)和提示TLC作為TLC(弱頁)。或者配置的一部分TLC作為MLC(健壯頁)和提示TLC作為TLC(弱頁)。此外,編碼抹除管理器41(第14圖)可能會減慢頁寫入和塊抹除時間,以延長快閃記憶體單元氧化層的壽命。 降低頁寫或塊抹除時間可以應用到增強型TLC快閃記憶體以增加耐力以降低保留時間為代價。藉由使用刷新管理器202,保留時間可以增加。由於加強TLC快閃記憶體包括快閃記憶體SLC(健壯頁)和TLC(弱頁),並具有不同的保留時間,刷新管理器202能夠追蹤作為SLC(健壯頁)或者TLC(弱頁)塊的使用,然後調整相應的刷新時間。同樣,MLC可以作為SLC(健壯頁)/MLC(弱頁)的結合使用,並且QLC可作為組合使用,例如,SLC(健壯頁)/QLC(弱頁),或者SLC/MLC/TLC/QLC的任意組合。以上功能也可以在SEED 200中實現。
本文所述的耐力技術試圖解決的NAND快閃記憶體的耐力問題。有一些非易失性儲存器,如MRAM,PCM,RRAM,憶阻器,NRAM等,這些儲存器正使用競爭性技術以取代NAND快閃記憶體。
超耐力快閃記憶體驅動可以結合一個硬碟驅動(HDD),該超強耐力的快閃記憶體驅動器可以作為緩衝記憶體,該HDD用於儲存。超耐力快閃記憶體驅動具有高耐力,更適合作為緩衝記憶體。這種混合設備的整體性能可能會提高。另一種方式確保DRAM的ETL中的資料是複製到HHD中。在斷電的情況下,ETL中的資料有效副本可以保存在HDD中。在上電的情況下,這些資料可以從HDD中加載到DRAM。複製方法可以藉由記錄細微的差別進行修改,這將減少複製資料的量,因此減少對HDD的寫。
操作系統的引導映像可以預裝到DRAM的緩衝區,以加快主機開機。一旦啟動過程結束,為了後續的正常操作,釋放DRAM 的緩衝區。
當主機處於睡眠或待機模式時,髒DRAM緩衝區必須被寫入到快閃記憶體中。當用戶的主機註銷時,髒DRAM緩衝區可以寫入到快閃記憶體中。
寫入資料的分組並不限於一個作為一個單元的頁。分組資料可以放在更大的單元,如多頁(元頁)和整個塊,等等。
已經描述了主機存取的資料類型的分類,且比較了從主機到一個或多個位址範圍的邏輯位址,這種比較可能只能比較代表表示位址範圍的一部分邏輯位址的範圍。藉由解析為特定格式的主機寫資料,如一個FAT格式或FDB格式,可以識別資料類型。在一個序列中,更早的主機寫能也能夠檢查其資料格式。FAT檔案系統可以作為一個例子。FDB/FAT是FAT檔案系統的元資料。其他的檔案系統,如LINUX,Apple OS和Android等等,都有自己的不同名字的元資料,但是其作用是等價的。
每個塊可以被分成多頁區域。例如,一個塊可以具有16頁,4個區域,每個區域有4頁。在可選的實施例中,一些映射可能為區,而不是單獨的頁或塊。可選地,在特殊情況下,每個區域有一個頁。比起頁模式,區域模式需要較少的映射條目,因為每個區是多頁的。
從主機的邏輯扇區位址(logical-sector address,LSA)的高位可以選擇一個群集或區。映射表中所有的條目可以是同一區的。當來自LSA的區號碼匹配映射表中所有條目的區號碼時,來自LSA的LBA選擇映射表中的條目。混合或多個位準的映射表也可以使用。由於FAT1/2的LBA範圍是已知,表中的內容資 料類型位「100」可被刪去。映射表能夠具有一個塊或頁的粒度。
對於頁映射,為了重新定位進行塊複製是較不頻繁的,因為比起塊模式下,在頁模式內,非SLC快閃記憶體的寫順序規則較少違反。這增加了快閃記憶體系統的耐力,並提高了性能。
映射表可以位於一個擴展的位址空間中,並且可以使用虛擬位址或大於在用戶位址空間的最大位址的非法位址。頁可以保留在主機頁順序中,或者可能被重新映射到任何頁的位置。另一個實施例中,如對於資料中心應用,分頁和暫時檔案可以被視為正常的用戶資料以簡化控制器的操作,但犧牲了快閃記憶體的耐力。藉由使用DRAM緩衝區作為耐力備用交換緩衝區,而不是採用快閃記憶體,耐力備用交換區可以提供擴展過度配置。在主機已經提供的壓縮函數的情況下,壓縮函數可以選擇關斷。在其它實施例中,控制器可以把分頁檔案作為用戶資料以簡化了控制器的功能。
框圖的許多變化是可能的。一個ROM,例如,EEPROM,可以連接到控制器的一部分和專用於虛擬記憶體處理器儲存韌體。此韌體也可以儲存在主快閃記憶體模組中。主機界面總線可以是串行硬體驅動器界面(Serial AT-Attachment,SATA)總線,快速外設組件互連(Peripheral Components Interconnect Express,PCIE)總線,緊湊型快閃記憶體(compact flash,CF)總線,或者通用序列匯流排(Universal-Serial-Bus,USB),NVME,韌體1394總線,光纖波道(Fibre Channel,FC)總線,雷電總線等。內部總線可以使用標準,如SATA總線,整合設備電路(integrated device electronics,IDE)總線,快速外設組 件互連(Peripheral Components Interconnect Express,PCIE)總線,CF總線,USB總線,安全數字(Secure Digital,SD)總線,多媒體卡(Secure Digital,MMC)總線,韌體1394總線,FC總線,各種乙太網路總線等。SCFD可以包括只SLC或MLC快閃記憶體,也可以是SLC/MLC快閃記憶體的結合。
快閃記憶體可以嵌入在主板上或SSD板或可以在單獨的模組上。電容器,緩衝區,電阻器和其它組件也可以增加。控制器可以被整合在主板上,或在單獨的電路板或模組上。快閃記憶體可以和控制器或者原始NAND快閃記憶體芯片一起整合,作為一個單獨的芯片設備或者插件模組或者主板。
使用多層次的控制器,如在控制器主控制排列中,相比較控制器的單一層次損耗均衡,壞塊管理,重映射,緩衝記憶體,電壓管理等的需求,在SEED中的控制器可能並不複雜。並不昂貴的硬碟可以在控制器中使用。例如,使用8051處理器作為控制器或者一個虛擬儲存器或者一個業務管理器,而不是一個更強大的處理核心,例如,先進的RISC機器ARM-9的CPU核。對於某種應用,可以考慮一個更強大的處理器。
不同數量和佈局的快閃記憶體儲存塊可以連接到SEED上。而不是使用一個的LBA儲存總線界面或差分串行資料包總線以及其它串行總線,例如,同步雙資料速率(synchronous Double-Data-Rate,DDR)、ONFI、Toggle NAND,差分串行資料包總線,傳統的快閃記憶體界面等。
模式邏輯只在電源上電時能識別到引腳的狀態,而不是識別到專用引腳的狀態。引腳狀態的某個混合或者排列能夠用來初 始化模式變化或者設置內部暫存器,如配置暫存器。一個多總線協議芯片可以有一個額外的個性引腳以選擇使用哪個串行總線界面,或者可以有可編程暫存器對集線器設置模式或者開關模式。
業務管理器,控制器,進程和功能可以以各種不同的方式實施。功能和進程可以由CPU或其它處理器編程和執行,也以由專用硬體,韌體或其某種組合來實現。許多分割的功能,可以被取代。SEED控制器可以是硬體,或者包括硬體或者軟體或者軟體和硬體的結合。
藉由使用多快閃記憶體通道奇偶校驗/多快閃記憶體通道ECC和將資料端分割成多個NVM塊,整個系統的可靠性大大提高。例如,第九快閃記憶體芯片可用於快閃記憶體界面。其他八個快閃記憶體芯片的奇偶校驗被寫入到這第九快閃記憶體芯片,以提供額外的保護資料,以防止第八個快閃記憶體芯片遇到一個致命的讀錯誤的情況。然而,它可能需要使用有DDR、SDRAM緩衝記憶體的CPU引擎,以滿足複雜的ECC/奇偶校驗計算和產生的計算能量的要求。另一個好處是,即使快閃記憶體塊或快閃記憶體模組損壞,資料也可以恢復,或者SEED能初始化「故障恢復」或者「自動重建」過程中插入一個新的快閃記憶體模組,以及恢復或者重建「損失」或者「損壞」資料。整個系統的容錯率得以顯著提高。
快閃記憶體單元的浮動閘極由注入它的電子編程。快閃記憶體在頁寫時控制電子注入,使之保持於兩個基準電壓位準。NAND快閃記憶體結構的位線被連接為32個單元的字符串,每個單元被連接到32個不同的字線。一個單元格的資料寫入後,任 何相鄰單元寫和讀將會對該單元造成干擾。干擾將會向單元的浮動閘極注入或者從單元的浮動閘極移走電子。很長一段時間將會影響單元的浮動閘極中的電子數量。由於浮動閘極中的電子數量的變化,當讀資料時,輸出電壓位準將會漂移。如果輸出電壓位準在參考電壓邊界兩端漂移,讀出的結果將是錯誤的。
更寬或更窄的資料總線和快閃記憶體芯片可被取代,如16位或32位資料通道。嵌套或者分段總線的交替總線架構能可用於內部或者外部的SEED。兩個或更多的內部總線能夠在SEED中使用,以增加吞吐量。更複雜的交換結構可以取代內部或外部總線。
資料條帶化可以在各種方式發生,如奇偶校驗和錯誤校正碼(ECC)。根據用來防止重疊的內部儲存位置重新排序的資料佈局,資料包重新排序可以調整。SEED可以與其他組件整合,也可以是一個獨立的芯片。
可以增加額外的流水線或暫時緩衝區和FIFO。可以在每個通道中提供單獨的頁緩衝區。可以增加時鐘源。
單個資料包,單個芯片,或者多芯片資料包可能包含一個或多個快閃記憶體或SEED或者SSD的通道數。本發明並不限定於SCFD使用。SCFD可以被替換為具有非易失性快閃記憶體和控制器的任何一類非易失性設備。
基於MLC快閃記憶體設備可以具有四個具有兩個平行的資料信道的MLC快閃記憶體芯片,但也可以使用不同的組合以形成其它的快閃記憶體模組。例如,四個,八個或更多的資料通道,或8個,16個或更多的MLC芯片。快閃記憶體設備和藉由 可以位於鏈,分支或者陣列中。例如,具有4個快閃記憶體設備的分支能夠作為鏈連接到SEED。其他大小的聚集或分區方案可以用於不同的內部儲存存取中。
主機可以是台式PC主板或其它PC平台,例如,伺服器,筆記型電腦,上網本,平板電腦,智慧型電話,移動式通訊設備,個人數位助理(personal digital assistant,PDA),數位照相機,生產工具或測試儀,組合裝置,或其他設備。主機總線或主機設備界面可以是SATA,PCIE,雷電,SD,USB,NVMe,eMMC,ISSD,或其它主機總線,而連接快閃記憶體模組的內部總線可以PATA,使用多SD/MMC的多通道SSD,CF,USB,或其它並行界面。快閃記憶體模組可以是一個標準的PCB或是一個多芯片模組,模組被封裝在TSOP,BGA,LGA,COB,PIP,SIP,CSP,POP,多芯片封裝包(MCP),或者可以包括原始NAND快閃記憶體芯片,或存在與單獨的快閃記憶體芯片,其它類型的NVM快閃記憶體中,如切換,ONFI、eMMC、iSSD、3D NAND中的原始NAND快閃記憶體芯片。SEED SSD可以使用具有RAID的eMMC,並且eMMC也可以使用SEED結構。內部總線可以是完全或部分共享,或者可以是獨立的總線。SSD的系統可以使用具有其它部件的電路板,如LED指示燈,電容,電阻等。電源管理可能被添加在一個或多個層次。SEED SSD可以帶或不帶VMD驅動器。PCIE RAID DRAM緩衝記憶體卡可以包括VMD驅動器和多個SSD結構的SEED。
方向性術語,例如,如高,低,上,下,頂部,底部等是相對的和多變的。因為系統或資料是交替的,翻轉等,這些術語是用於描述設備,但並非絕對。
NVM快閃記憶體可能在快閃記憶體模組中,快閃記憶體模組可能有一個封裝控制器和在單芯片封裝的快閃記憶體核心,快閃記憶體核心可以整合到PCBA,或直接封裝到主板上,以進一步簡化裝配,降低了製造成本,並減少整體厚度。快閃記憶體芯片也可用於其它實施例中,包括開放框架卡。
使用一個控制器不僅僅是為了快閃記憶體儲存,而是可能會增加附加功能。例如,一個音樂播放器可以包括一個控制器,用於播放儲存在快閃記憶體中的MP3資料。音頻插孔可能被添加到設備,以允許用戶插入耳機聽音樂。一個無線發射器,如藍芽發射器,可被添加到設備以連接到無線耳機而不是使用的音頻插孔。紅外發射器,如IrDA,也可加入。無線鼠標,PDA,鍵盤,印表機,數位相機,MP3播放器,或其它無線設備也可以被添加藍芽收發器。藍芽收發器能夠作為主要連接器取代連接器。藍芽適配器裝置可以有連接器,RF(射頻)收發器,基帶控制器,天線,快閃記憶體(EEPROM),電壓調節器,電晶體,LED(發光二極管),電阻,電容和電感。這些組件封裝到一個塑料或金屬外殼之前,可以被安裝在印刷電路板(printed circuit board,PCB)上。
資料的大小,如扇區,頁,塊可能會發生變化。一個扇區可有512個字節,一個頁可能有16個扇區,一個塊可以具有128頁,這樣的例子很多。
在ETL中的寫資料可以由快閃記憶體控制器一個接一個的包裝和記錄到資料寫入緩衝記憶體作為一個頁單元。來自主機的資料包的大小可以是大尺寸的,例如,大於元頁單元,或者是 小尺寸,例如小於扇區的大小。添加標題顯示資料到主機LBA的關係。一個單獨封裝表將主機LBA映射到資料寫緩衝記憶體的元頁單元的資料和資料頭的偏移位置。資料寫緩衝記憶體的容量可以大於兩個以上元頁單元的大小。當資料寫緩衝記憶體滿了或時間到了,選定的元頁單位將從資料寫緩衝記憶體移動到快閃記憶體中。封裝表將主機LBA映射到資料寫緩衝記憶體的元頁單元的資料和資料頭的偏移位置。萬一覆蓋了主機舊的資料,如果封裝資料仍在資料寫緩衝記憶體中,舊資料可以被丟棄,藉由將封裝資料包上移和將新更新資料添加到資料寫緩衝記憶體中,並更新封裝表。否則,如果封裝資料在快閃記憶體中,則比較新資料和舊資料,並產生一個增量資料以示區別。增量資料和資料頭會被追加到資料寫緩衝記憶體中。資料頭也包括先前的舊資料的位置。封裝表將把LBA映射到增量資料位置。
本發明部分的先前技術可包含有關該問題的先前技術訊息或發明環境,而不是描述別人的習知技術。因此,包括在先前技術部分的技術不是由本申請人承認的習知技術。
本發明所述的任何方法或過程是機械實現或者是電腦實現的,且旨在由機器,電腦或其他裝置要執行,而不是在沒有機器輔助情況下的單獨人來執行。產生的有形結果可以包括報告或其他機器產生的顯示結果,結果在顯示設備上顯示,設備可以是電腦顯示器,投影設備,音頻產生設備,以及相關媒體的設備,並可以包括機械產生的硬拷貝打印輸出。電腦控制其它機器是另一種有形的結果。
任何的優點和利益可能並不適用於本發明的所有實施例。 當「方法」被申請專利範圍引用時,申請人意圖是使申請專利範圍落入美國專利法第112條第6段保護範圍內。通常一個或多個標籤出現在「方法」之前。位於「方法」前的一個或多個詞是一個標籤,是為了引用申請專利範圍,而不是為了傳達結構限制。這種方法加功能的申請專利範圍,其目的是不僅是為了覆蓋前面描述的功能以及它的相當的結構,同時也為了覆蓋等價結構。例如,雖然釘子和螺絲有不同結構,但它們是等價的結構,因為他們都可以執行固定功能。申請專利範圍不使用「方法」其不是意圖落入美國專利法第112條第6段範圍之內,訊號通常是指電子訊號,但也可能可以藉由光纖進行傳輸的光訊號。
前面描述的本發明的實施例是為了說明和描述本發明。它的目的不是要詳盡或限制本發明公開的具體形式。根據上述實施例的揭示可以作出許多修改和變化。本發明的範圍本發明不是藉由這個詳細描述進行限制的,而是由所附的申請專利範圍確定的。
100‧‧‧VMD驅動器
176‧‧‧備用電源
178‧‧‧操作系統核心
180‧‧‧VMD應用程式
181‧‧‧SSD內部清理
182‧‧‧用戶應用程式
184‧‧‧操作系統設置
186‧‧‧配置設置
188‧‧‧虛擬磁碟
190‧‧‧高級別檔案過濾驅動器
192‧‧‧SEED控制器
194‧‧‧SSD DRAM緩衝區
195‧‧‧電源備份
196‧‧‧NAND快閃記憶體
200‧‧‧超級強耐力裝置
240‧‧‧加密解密引擎
242‧‧‧壓縮解壓縮引擎
266‧‧‧檔案系統驅動器
268‧‧‧低級別檔案過濾驅動器
270‧‧‧卷管理
300‧‧‧主機
301‧‧‧緩衝記憶體控制器
303‧‧‧SEED SSD
305‧‧‧電源管理
307‧‧‧電源備份
309‧‧‧內部儲存控制器
311‧‧‧開關

Claims (11)

  1. 一種虛擬記憶體設備驅動器(VMD),該驅動器在主機上執行,其包括:檔案類型識別器,用於為虛擬記憶體設備驅動器接收的主機寫產生一資料類型;資料拆分管理器,用於根據該資料類型識別器識別的資料類型,對主機寫入資料進行分類;資料寫入緩衝記憶體,用於儲存用戶資料類型的主機寫資料;元資料緩衝記憶體,用於儲存元資料類型的主機寫資料;分頁緩衝記憶體,用於儲存分頁檔案資料類型的主機寫資料;暫時緩衝記憶體,用於儲存暫時資料類型的主機寫資料;用戶分組引擎,用於將儲存在該資料寫緩衝記憶體中的用戶資料分類成用戶元頁;元資料分組引擎,用於將儲存在該資料寫緩衝記憶體中的元資料分類成元資料的元頁;輸出緩衝區,用於將分組的元頁和資料類型訊息發送到快閃記憶體驅動系統進行儲存。
  2. 如申請專利範圍第1項所述之虛擬記憶體設備驅動器,其進一步包括:高級別檔案過濾驅動器,用於在主機上執行,並攔截向快閃記憶體驅動的高級別主機寫;加密引擎,用於連接接收由該高級別檔案過濾驅動器攔截的高級別主機寫,並產生加密資料;壓縮引擎,用於連接接收由該高級別檔案過濾驅動器攔截的高級別主機寫,並產生壓縮資料; 其中,壓縮後的資料和加密的資料被發送到在主機上執行的檔案系統驅動器;低級別檔案過濾驅動器,用於在主機上執行,攔截向快閃記憶體驅動的較低級別的檔案系統主機寫,並發送該較低級檔案系統主機寫資料至該資料拆分管理器以分類該主機寫資料。
  3. 如申請專利範圍第1項所述之虛擬記憶體設備驅動器,其進一步包括:虛擬磁碟驅動器,用於將暫時緩衝記憶體中的資料、瀏覽器緩衝記憶體中的資料或者應用程式緩衝記憶體中的資料儲存到虛擬磁碟中,該虛擬磁碟儲存於主機動態隨機記憶體中動態隨機存取記憶體(DRAM)。
  4. 如申請專利範圍第1項所述之虛擬記憶體設備驅動器,其進一步包括:第一資料讀取緩衝記憶體,用於儲存主機讀取的經常存取的資料,和最近存取的資料;第二資料讀取緩衝記憶體,用於儲存主機讀取的經常存取的,和非最近存取的資料;第三資料讀取緩衝記憶體,用於儲存主機讀取的非經常存取的,和最近存取的資料;第四資料讀取緩衝記憶體,用於儲存主機讀取的非經常存取的,和非最近存取的資料;第一分割資料管理器,用於將從快閃記憶體驅動系統接收的資料分割成最近存取的資料和非最近存取的資料; 第二分割資料管理器,用於將從快閃記憶體驅動系統接收的資料分割成經常存取的資料和非經常存取的資料。
  5. 如申請專利範圍第1項所述之虛擬記憶體設備驅動器,其中該快閃記憶體驅動系統是一個超級增強耐力設備(SEED),該超級增強耐力設備包括:硬碟固體狀態驅動機(SSD)耐用轉換層(ETL),用於在動態隨機存取記憶體(DRAM)中執行,且藉由控制器控制,該控制器使用ETL層提供暫時儲存以減少快閃記憶體磨損;硬碟固體狀態驅動機之動態隨機存取記憶體(SSD DRAM)緩衝區,用於儲存分組元資料;動態隨機存取記憶體(DRAM)界面,用於存取硬碟固體狀態驅動機之動態隨機存取記憶體(SSD DRAM)緩衝區;錯誤校正碼(ECC)管理器,用於產生錯誤校正碼,該錯誤校正碼附帶在寫到快閃記憶體中的分組元頁中;壞頁管理器,用於跟蹤快閃記憶體中的壞頁;磨損均衡器,用於為具有低抹除計數的快閃記憶體中的空塊分配新資料;快閃記憶體界面,用於對快閃記憶體中的塊進行抹除和頁進行寫,該塊是頁大小的倍數;快閃記憶體,用於儲存來自硬碟固體狀態驅動機之動態隨機存取記憶體(SSD DRAM)緩衝區中的分組元頁。
  6. 一種用於在主機上執行之虛擬記憶體設備驅動器(VMD),其包括: 資料類型分配器,用於為藉由虛擬記憶體設備驅動器接收的主機寫產生資料類型;任務優先級分配器,用於為任務分配優先級,包括根據資料類型寫主機寫資料,該優先級是來自於該資料類型分配器的資料類型的函數;目標分配器,用於根據資料類型分配器產生的資料類型,對主機寫資料進行分類;資料寫緩衝記憶體,用於儲存具有用戶資料類型的主機寫資料;虛擬磁碟驅動器,用於將具有暫時資料類型的主機寫資料儲存到主機之動態隨機存取記憶體(DRAM)中;資料讀緩衝記憶體,用於儲存主機讀資料;分組引擎,用於將儲存在資料寫緩衝記憶體中的資料分組為元頁;取消分組引擎,用於將儲存在元頁中的資料取消分組為儲存在資料讀緩衝記憶體中儲存的取消分組資料;其中,該元資料被從分組引擎發送到卷管理器,以傳輸到快閃記憶體,並藉由取消分組引擎接收該儲存在快閃記憶體中的元頁;電源監測器,用於檢測電源故障;刷新管理器,用於當電源損失時,將主機之動態隨機存取記憶體(DRAM)儲存的資料刷新到硬碟固體狀態驅動機之動態隨機存取記憶體(SSD DRAM)中,然後刷新到快閃記憶體驅動系統的快閃記憶體中; 恢復管理器,用於當電源恢復時,加載從快閃記憶體驅動系統的快閃記憶體獲取的刷新資料,然後刷新到主機之動態隨機存取記憶體(DRAM)。
  7. 如申請專利範圍第6項所述之虛擬記憶體設備驅動器,其進一步包括:業務管理器,用於記錄向快閃記憶體資料寫的開始和完成的事件;恢復管理器,用於讀取業務管理器記錄的事件,以在電源恢復後,撤消或重做向快閃記憶體的資料寫。
  8. 如申請專利範圍第6項所述之虛擬記憶體設備驅動器,其進一步包括:配置設置管理器,用於禁止設置以提高快閃記憶體耐力,該設置包括至少一個驅動器索引,搜索索引,碎片整理,主機休眠狀態,預取,超級資料取,寫緩衝記憶體,寫緩衝記憶體緩衝區刷新。
  9. 一種刷新快閃記憶體之方法,其包括:獲得當前日期;在快閃記憶體的塊列表中的現行塊:(a)讀塊狀態表,該塊狀態表用於現行塊的抹除計數和對現行塊的寫日期,該日期表示現行塊上次被寫入的日期;計算第一時間延遲作為寫日期與當前日期的差;將該第一時間延遲作為保留時間;當該第一時間延遲超過該保留時間時,將現行塊中的所有有效頁移動至在動態隨機存取記憶體(DRAM)的備用塊中的空白頁中; 當動態隨機存取記憶體(DRAM)中的備用塊是滿的時,將來自動態隨機存取記憶體(DRAM)的備用塊中的資料移動至快閃記憶體中的備用塊;抹除現行塊;在快閃記憶體的塊列表中選擇另一個塊作為現行塊,並從(a)重複,直至處理完塊列表中的所有塊,至此,快閃記憶體塊被刷新。
  10. 一種快閃記憶體刷新之方法,其包括:獲得當前的日期;對於在快閃記憶體的塊列表中的現行塊中的當前頁:(a)讀塊狀態表,該塊狀態表用於現行塊的抹除計數;(b)讀頁狀態表,該頁狀態表用於當前頁的寫日期,該日期表示當該前頁上次寫的日期;計算第一時間延遲作為該寫日期與當前日期的差;將該第一時間延遲作為保留時間;當該第一時間延遲超過該保留時間時,將該現行塊中的該當前頁移動至在動態隨機存取記憶體(DRAM)的備用塊中的空白頁中;當動態隨機存取記憶體(DRAM)中的備用塊是滿的時,將來自動態隨機存取記憶體(DRAM)的備用塊中的資料移動至快閃記憶體中的備用塊;在現行塊中選擇另一個頁,並從(b)重複,直至處理完現行塊中的所有頁; 在快閃記憶體的塊列表中選擇另一個塊作為現行塊,並從(a)重複,直至處理完塊列表中的所有塊,至此,快閃記憶體頁被刷新。
  11. 如申請專利範圍第10項所述之快閃記憶體刷新之方法,其進一步包括:計算該保留時間作為該現行塊的抹除計數的函數。
TW102133328A 2012-12-28 2013-09-14 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 TWI506431B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/730,797 US8954654B2 (en) 2008-06-18 2012-12-28 Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance

Publications (2)

Publication Number Publication Date
TW201426305A TW201426305A (zh) 2014-07-01
TWI506431B true TWI506431B (zh) 2015-11-01

Family

ID=49828827

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102133328A TWI506431B (zh) 2012-12-28 2013-09-14 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統

Country Status (2)

Country Link
CN (1) CN103488578B (zh)
TW (1) TWI506431B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662418B (zh) * 2016-12-20 2019-06-11 日商索尼互動娛樂股份有限公司 Information processing device and memory access method
TWI688861B (zh) * 2018-09-18 2020-03-21 新唐科技股份有限公司 資料處理裝置及其資料保護方法
TWI755059B (zh) * 2020-09-11 2022-02-11 大陸商合肥沛睿微電子股份有限公司 儲存設備及其異常斷電恢復方法
TWI778028B (zh) * 2017-05-08 2022-09-21 韓商愛思開海力士有限公司 記憶體系統及使用其的耗損均衡方法

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823639A (zh) * 2014-02-19 2014-05-28 曙光信息产业(北京)有限公司 迁移对象的方法和系统
WO2015127327A1 (en) * 2014-02-23 2015-08-27 Rambus Inc. Distributed procedure execution and file systems on a memory interface
CN105224438A (zh) * 2014-06-11 2016-01-06 中兴通讯股份有限公司 基于网盘的用户消费提醒方法及装置
CN104156181B (zh) * 2014-08-18 2017-02-15 上海众恒信息产业股份有限公司 虚拟资源交叉访问与安全隔离方法
CN104202197B (zh) * 2014-09-12 2019-03-01 华为技术有限公司 设备管理的方法和装置
CN105404468B (zh) * 2014-11-17 2020-05-26 晶天电子(深圳)有限公司 绿能与非固态硬盘应用及其驱动器
CN105830059B (zh) * 2014-11-28 2019-09-27 华为技术有限公司 文件访问方法、装置及存储设备
CN105808151B (zh) * 2014-12-29 2019-09-27 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
TWI557559B (zh) * 2015-01-06 2016-11-11 國立臺灣科技大學 利用快閃記憶體的壞頁來存取資料的方法
CN105589912B (zh) * 2015-03-27 2019-09-03 上海磁宇信息科技有限公司 一种利用mram处理频写文件的方法及存储结构
CN106155580B (zh) * 2015-04-27 2019-04-12 华为技术有限公司 一种基于嵌入式多媒体卡eMMC的存储方法及系统
CN105630405B (zh) * 2015-04-29 2018-09-14 上海磁宇信息科技有限公司 一种存储系统及采用该存储系统的读写方法
CN105630701B (zh) * 2015-05-29 2018-09-14 上海磁宇信息科技有限公司 数据存储装置及使用不可用页表或不可用块表的读写方法
CN105630705B (zh) * 2015-06-10 2019-09-17 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
CN105608016B (zh) * 2015-08-05 2018-11-23 上海磁宇信息科技有限公司 Dram与mram结合的固态硬盘及使用mram的存储卡
US20170068458A1 (en) * 2015-09-03 2017-03-09 Qualcomm Incorporated Hardware-accelerated storage compression
KR102435873B1 (ko) * 2015-12-18 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 리드 리클레임 방법
CN107025061A (zh) * 2016-01-29 2017-08-08 后旺科技股份有限公司 复合式硬盘的访问方法
US10235198B2 (en) * 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
US10318423B2 (en) * 2016-12-14 2019-06-11 Macronix International Co., Ltd. Methods and systems for managing physical information of memory units in a memory device
KR20180083093A (ko) * 2017-01-12 2018-07-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN107479825A (zh) * 2017-06-30 2017-12-15 华为技术有限公司 一种存储系统、固态硬盘和数据存储方法
CN107436826B (zh) * 2017-08-15 2018-12-18 金钱猫科技股份有限公司 一种冷数据处理方法及终端
CN107957852B (zh) * 2017-10-13 2021-08-13 记忆科技(深圳)有限公司 一种提升固态硬盘性能一致性的方法
CN108182154A (zh) * 2017-12-22 2018-06-19 深圳大普微电子科技有限公司 一种基于固态硬盘的日志文件的读写方法及固态硬盘
CN108052295B (zh) * 2017-12-28 2020-11-10 深圳市金泰克半导体有限公司 一种数据存储方法、固态硬盘、主机及储存系统
CN110413545B (zh) * 2018-04-28 2023-06-20 伊姆西Ip控股有限责任公司 存储管理方法、电子设备和计算机程序产品
TWI678621B (zh) * 2018-06-01 2019-12-01 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN110580230B (zh) * 2018-06-11 2022-11-22 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
KR102624911B1 (ko) * 2018-06-13 2024-01-12 삼성전자주식회사 개선된 메타 데이터 관리를 통한 플래시 메모리의 내구성 향상 방법
US10470264B1 (en) * 2018-08-24 2019-11-05 Monolithic Power Systems, Inc. Smart communication interface for LED matrix control
TWI696951B (zh) 2018-08-31 2020-06-21 威剛科技股份有限公司 儲存裝置異常斷電的處理系統和方法
US20200127685A1 (en) * 2018-10-19 2020-04-23 Nyquist Semiconductor Limited Systems and methods for a hybrid non-volatile storage system
TWI671632B (zh) 2018-10-24 2019-09-11 財團法人工業技術研究院 記憶體裝置及其復新資訊同步方法
US10831379B2 (en) * 2018-10-30 2020-11-10 Western Digital Technologies, Inc. Method for enhancing SSD endurance by utilizing host DRAM
CN109614042B (zh) * 2018-11-30 2022-09-02 维沃移动通信有限公司 一种存储日志信息的方法及终端设备
CN109410869A (zh) * 2018-12-11 2019-03-01 惠科股份有限公司 一种数据的读取方法、读取装置及显示装置
CN109410870A (zh) * 2018-12-11 2019-03-01 惠科股份有限公司 时序控制电路、数据读取方法及显示装置
KR20200074464A (ko) * 2018-12-17 2020-06-25 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20200076923A (ko) * 2018-12-20 2020-06-30 에스케이하이닉스 주식회사 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
TWI689821B (zh) * 2018-12-24 2020-04-01 瑞昱半導體股份有限公司 Usb轉接電路
KR20200085513A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN109729170A (zh) * 2019-01-09 2019-05-07 武汉巨正环保科技有限公司 一种新算法的云计算数据备份和还原方法
CN109799959B (zh) * 2019-01-22 2020-07-10 华中科技大学 一种提高开放通道固态盘写并行性的方法
TWI771854B (zh) * 2019-04-01 2022-07-21 慧榮科技股份有限公司 用於快閃記憶體中保護已抹除區塊的寫入管理機制
TWI718516B (zh) * 2019-04-01 2021-02-11 慧榮科技股份有限公司 用於快閃記憶體中保護已抹除區塊的寫入管理機制
CN111816239B (zh) * 2019-04-12 2022-11-11 杭州宏杉科技股份有限公司 磁盘检测方法、装置、电子设备及机器可读存储介质
CN110188050A (zh) * 2019-05-29 2019-08-30 中南大学 一种基于N-gram算法的多通道按需预取设计方法
CN110262980B (zh) * 2019-06-17 2023-05-02 吉林大学 基于有限寿命存储介质的高速存储系统
CN110750213A (zh) * 2019-09-09 2020-02-04 华为技术有限公司 一种硬盘管理方法及装置
JP2021056550A (ja) 2019-09-26 2021-04-08 キオクシア株式会社 メモリシステム、メモリシステムの制御方法、および情報処理システム
US11262830B2 (en) 2019-11-11 2022-03-01 Microsoft Technology Licensing, Llc Managing ephemeral storage on a computing node
CN111597124B (zh) * 2020-04-21 2023-05-05 重庆大学 持久化内存文件系统数据组织方法、系统及存储介质
US11314456B2 (en) 2020-07-23 2022-04-26 Micron Technology, Inc. Memory device performance based on storage traffic pattern detection
CN111949220B (zh) * 2020-09-03 2023-12-08 合肥沛睿微电子股份有限公司 存储设备异常断电恢复方法及存储设备
CN112181870B (zh) * 2020-09-17 2022-10-28 重庆大学 内存页面管理方法、装置、设备及可读存储介质
CN112506442A (zh) * 2020-12-22 2021-03-16 深圳市时创意电子有限公司 一种闪存芯片数据处理方法、装置、电子设备及存储介质
CN112860594B (zh) * 2021-01-21 2022-11-01 华中科技大学 一种固态盘地址重映射方法、设备及固态盘
CN112817532A (zh) * 2021-01-27 2021-05-18 杭州爱科科技股份有限公司 数据处理方法、装置及计算机存储介质
WO2022177561A1 (en) * 2021-02-18 2022-08-25 Futurewei Technologies, Inc. Data access processing agnostic to mapping unit size
CN113569277B (zh) * 2021-06-25 2024-01-26 北京鼎普科技股份有限公司 安全文件数据检查的方法、装置和电子设备
CN114911631B (zh) * 2022-07-18 2022-10-21 深圳市泛联信息科技有限公司 基于持久内存技术的全局资源管理方法及系统
CN115509798B (zh) * 2022-09-27 2023-06-27 青海师范大学 一种刷新、副本和ldpc混合解码结合的存储器读取优化方法
CN115686372B (zh) * 2022-11-07 2023-07-25 武汉麓谷科技有限公司 一种基于zns固态硬盘zrwa功能的数据管理的方法
CN115904256B (zh) * 2023-02-20 2023-06-13 中电装备山东电子有限公司 一种数据存储方法及存储器
CN117472295B (zh) * 2023-12-28 2024-03-22 合肥康芯威存储技术有限公司 一种存储器、数据处理方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799200A (en) * 1995-09-28 1998-08-25 Emc Corporation Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller
US6523102B1 (en) * 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
TW201028853A (en) * 2009-01-19 2010-08-01 Asustek Comp Inc Control system and control method of virtual memory
TW201122997A (en) * 2009-12-31 2011-07-01 Soaraway Technology Co Ltd Computer having a solid state drive and method of using a solid state drive in a computer

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193873B (zh) * 2010-03-04 2013-06-05 中国科学院微电子研究所 快速读写物理版图数据的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799200A (en) * 1995-09-28 1998-08-25 Emc Corporation Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller
US6523102B1 (en) * 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
TW201028853A (en) * 2009-01-19 2010-08-01 Asustek Comp Inc Control system and control method of virtual memory
TW201122997A (en) * 2009-12-31 2011-07-01 Soaraway Technology Co Ltd Computer having a solid state drive and method of using a solid state drive in a computer

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662418B (zh) * 2016-12-20 2019-06-11 日商索尼互動娛樂股份有限公司 Information processing device and memory access method
US11281572B2 (en) 2016-12-20 2022-03-22 Sony Interactive Entertainment Inc. Information processing apparatus and memory access method
TWI778028B (zh) * 2017-05-08 2022-09-21 韓商愛思開海力士有限公司 記憶體系統及使用其的耗損均衡方法
TWI688861B (zh) * 2018-09-18 2020-03-21 新唐科技股份有限公司 資料處理裝置及其資料保護方法
US11455401B2 (en) 2018-09-18 2022-09-27 Nuvoton Technology Corporation Data-processing device and data-protection method thereof
TWI755059B (zh) * 2020-09-11 2022-02-11 大陸商合肥沛睿微電子股份有限公司 儲存設備及其異常斷電恢復方法

Also Published As

Publication number Publication date
TW201426305A (zh) 2014-07-01
CN103488578A (zh) 2014-01-01
CN103488578B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
TWI506431B (zh) 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統
US9548108B2 (en) Virtual memory device (VMD) application/driver for enhanced flash endurance
US8954654B2 (en) Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US9547589B2 (en) Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US9405621B2 (en) Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US8959280B2 (en) Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US9720616B2 (en) Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US9575882B2 (en) Non-volatile memory interface
KR101522848B1 (ko) 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성
US20190294345A1 (en) Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance
US10127166B2 (en) Data storage controller with multiple pipelines
US9626288B2 (en) Address translation for a non-volatile memory storage device
US8909986B2 (en) Data storing method for solid state drive to preserve data integrity after power failure
CN109992530A (zh) 一种固态驱动器设备及基于该固态驱动器的数据读写方法
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
TW201403318A (zh) 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器
US11138071B1 (en) On-chip parity buffer management for storage block combining in non-volatile memory
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20180004413A1 (en) Mapping table updating method, memory control circuit unit and memory storage device
CN110390985B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US10545700B2 (en) Memory management method, memory storage device and memory control circuit unit
CN105404468B (zh) 绿能与非固态硬盘应用及其驱动器
KR20220103378A (ko) 메모리 시스템에 저장된 데이터를 처리하는 장치 및 방법
US10635583B2 (en) Memory management method and storage controller
US11803331B2 (en) Method for recording unit management information, memory storage device and memory control circuit unit

Legal Events

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