專利名稱:使用數(shù)據(jù)屬性來管理固態(tài)存儲器里的數(shù)據(jù)的方法
使用數(shù)據(jù)屬性來管理固態(tài)存儲器里的數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子存儲器存儲裝置,特別涉及NAND閃存裝置。更具體地,本發(fā)明涉及基于NAND閃存裝置將持久性數(shù)據(jù)存入到固態(tài)硬盤或從固態(tài)硬盤讀取數(shù)據(jù)。
背景技術(shù):
閃存是一種非易失性的電子數(shù)據(jù)存儲電路,其能夠電子編程以便重復(fù)地保存或擦除數(shù)據(jù),從而適合作為一種可重寫數(shù)據(jù)存儲介質(zhì)用于電子計算機系統(tǒng)。NAND閃存是一種特別的閃存,其使用了浮柵晶體管,它們以類似于與非門的形 式串連在一起。NAND閃存技術(shù)被廣泛應(yīng)用于計算機系統(tǒng)、數(shù)碼相機、便攜式音樂播放器、USB閃存驅(qū)動器、存儲卡、和SmartMedia 卡。特別在計算機系統(tǒng)和持久性數(shù)據(jù)存儲系統(tǒng)里,基于磁盤的數(shù)據(jù)存儲介質(zhì)被使用NAND閃存的固態(tài)硬盤取代的情況越發(fā)普遍,因為這些固態(tài)硬盤比基于磁盤的數(shù)據(jù)存儲介質(zhì)具有更多優(yōu)點,如較少的功耗、更好的物理撞擊性和電磁兼容特性、更小的物理尺寸、以及更輕的重量。根據(jù)制造、模型和使用的技術(shù),NAND閃存有不同的容量和電子構(gòu)造。例如,NAND閃存裝置內(nèi)的存儲庫(memory bank)被分成塊(block),塊的尺寸包括但不限于16K、128K、256K或512K字節(jié)。每個塊又被分成頁。頁的數(shù)量可以是32、64、128或更多,每頁的尺寸可以是256、512、11(、21(、41(、或81(字節(jié)。其他技術(shù)變化會帶來其他屬性,如塊類型、地址周期、和備用存儲器空間尺寸。通常,NAND閃存的數(shù)據(jù)存儲操作包括三個基本操作頁讀取、頁編程(或等同于寫入)、和塊擦除。在頁編程或再次編程之前,必須首先對包含頁的塊進行塊擦除。操作速度是非均勻的。頁讀取比頁編程或塊擦除要更快。另外,NAND閃存的存儲單元具有有限的使用壽命。存儲單元在一定次數(shù)地擦除循環(huán)之后便會損壞。通常,一個單階存儲單元(SLC)的擦除循環(huán)次數(shù)是100,000,一個多階存儲單元(MLC)的擦除循環(huán)次數(shù)是3,000到10,000。因此,已經(jīng)研發(fā)出了各種數(shù)據(jù)存儲操作方案,以最小化塊擦除操作,并將塊擦除操作平均擴展到所有塊上。由于上述數(shù)據(jù)存儲操作特性,一串?dāng)?shù)據(jù)存儲在基于NAND閃存的固態(tài)硬盤內(nèi)的物理存儲位置,不會與該串?dāng)?shù)據(jù)內(nèi)數(shù)據(jù)比特的邏輯次序相對應(yīng)。由此,需要一個映射方案用于將數(shù)據(jù)的邏輯存儲地址映射到基于NAND閃存的固態(tài)硬盤內(nèi)的物理存儲地址上。通常,一個基于NAND閃存的固態(tài)硬盤的軟件和硬件結(jié)構(gòu)包括主機接口、緩存緩沖器、閃存轉(zhuǎn)換層(FTL)、NAND閃存控制器(NFC)驅(qū)動器、和NAND閃存陣列。FTL負責(zé)數(shù)據(jù)的邏輯地址和物理存儲地址之間的來回轉(zhuǎn)換,其中數(shù)據(jù)將被存儲在NAND閃存陣列里的物理存儲地址。有三種類型的映射方案對應(yīng)不同程度的映射粒度。它們是塊映射、頁映射、以及混合映射。塊映射方案是將邏輯地址映射到塊級別的物理地址。其提供一個小的映射列表,但缺點是導(dǎo)致有效頁數(shù)據(jù)的過度拷貝,產(chǎn)生較差的隨機寫入性能,以及縮短存儲單元的使用壽命。頁映射方案是將邏輯地址映射到頁級別的物理地址。其需要較大的映射列表,從而對硬件資源產(chǎn)生挑戰(zhàn)。復(fù)雜的垃圾回收也降低固態(tài)硬盤的響應(yīng)時間性能。混合映射方案是將塊映射和頁映射方案的某些特征合并以實現(xiàn)最佳方案。除了數(shù)據(jù)的邏輯地址和物理存儲器地址(數(shù)據(jù)將被存儲在NAND閃存陣列內(nèi)的物理存儲地址)之間的來回轉(zhuǎn)換之外,F(xiàn)TL通常也負責(zé)壞塊管理、垃圾回收以及損耗均衡(wearleveling)。對于壞塊管理,先找到壞塊,然后隔離并被備用塊替換,其中壞塊通常是在制造或存儲器的壽命期間產(chǎn)生的。對于垃圾回收,包含無效頁(包含過時數(shù)據(jù)的頁)的塊將被垃圾回收或塊擦除。垃圾回收首先拷貝垃圾塊上有效頁到另一個塊,然后在垃圾塊上開始塊擦除。對于損耗均衡,管理頁編程和塊擦除操作,使得它們在一個時間周期內(nèi)平均地在所有塊上進行。已經(jīng)提議和實施了各種FTL實施。其中一個實施是基本相聯(lián)扇區(qū)轉(zhuǎn)換(BAST)。BAST 的詳情由以下論文披露Jesung Kim 等的 “A Space-Efficient FlashTranslationLayer for CompactFlash Systems (一個緊湊閃存系統(tǒng)的空間有效閃存轉(zhuǎn)換層)”,IEEETransactionon Consumer Electronics, Volume 48,No. 2,May2002 ;在此其內(nèi)容通過引用被完整地結(jié)合到本發(fā)明。BAST是一個基于日志塊(Iogblock)的FTL,其使用混合映射,其中一個專用日志塊與一個數(shù)據(jù)塊相聯(lián)。當(dāng)有一個命令寫入新數(shù)據(jù)到數(shù)據(jù)塊的頁編程操作時,新數(shù)據(jù)被首先編程(寫入)到與該日志塊相連的空白頁上。由此,僅需要一小頁的映射列表用于該日志塊。但是,日志塊的利用率很低,在有大量密集的隨機寫入工作負荷時,空白塊會被快速用完,隨后觸發(fā)許多高昂的塊合并和垃圾回收操作。這種大部分頁編程(寫入)請求調(diào)度塊合并的現(xiàn)象被稱為日志塊顛簸(log block thrashing)。塊合并操作意味著所有來自日志塊的有效頁面(其包括最新數(shù)據(jù)),和相聯(lián)數(shù)據(jù)塊將被合并回到數(shù)據(jù)塊,從而數(shù)據(jù)塊具有所有包括最新數(shù)據(jù)的有效頁面。另一個FTL實施是全相聯(lián)扇區(qū)轉(zhuǎn)換(FAST)。FAST的詳情由以下論文披 露Sang-Won Lee 等 的 “A Log Buffer-based Flash Translation LayerusingFully-associative Sector Translation (一個使用全相聯(lián)扇區(qū)轉(zhuǎn)換的基于日志緩沖閃存轉(zhuǎn)換層),,,ACM Transactions on Embedded Computing Systems (TECS), Volume6Issue 3,July 2007。在此其內(nèi)容通過引用被完整地合并到本發(fā)明。FAST是一個基于日志塊的FTL,其使用混合映射,其中一個日志塊是由所有數(shù)據(jù)塊共享。當(dāng)有一個命令寫入新數(shù)據(jù)到數(shù)據(jù)塊的頁編程操作時,新數(shù)據(jù)首先被編程(寫入)在當(dāng)前使用的日志塊的空白頁上。在此實施下,日志塊的利用率比在BAST上有提高。塊合并操作可以在大量密集的隨機寫入工作負荷時得以延緩。但是,因為一個日志塊相聯(lián)到多個數(shù)據(jù)塊,所以合并操作很復(fù)雜,且低效。在最差情況下,合并操作所需的時間特別長,并且可能頻繁需要合并操作(日志塊顛簸問題)。另一個FTL實施是集合相聯(lián)扇區(qū)轉(zhuǎn)換(SAST)。SAST的詳情由以下論文披露Chanik Park等的“A Reconfigurable FTL(Flash Translation Layer)Architecture forNAND Flash based Applications (基于NAND閃存的應(yīng)用的可重置FTL (閃存轉(zhuǎn)換層)結(jié)構(gòu)),,Proceedings of the 18th IEEE/IFIP International Workshopon Rapid SystemPrototyping, pages 202-8,May 2007,在此其內(nèi)容通過引用被完整地合并到本發(fā)明。在此實施下,每組K數(shù)目的日志塊與一組N數(shù)目的順序數(shù)據(jù)塊相聯(lián)。盡管能夠靜態(tài)調(diào)整數(shù)目K和N以實現(xiàn)特定數(shù)據(jù)存儲/提取應(yīng)用行為和工作負荷的最優(yōu)性能,但很難設(shè)定這些數(shù)目。在SAST下,日志塊顛簸也是一個問題。
K相聯(lián)扇區(qū)轉(zhuǎn)換(KAST)是SAST的一個變換,其中N等于I。KAST的詳情由美國專利申請文獻 2010/0169544 披露,其標(biāo)題為 “Methods for Distributing LogBlockAssociativity for Real-time System and Flash Memory Devices Performingthe Same(用于實時系統(tǒng)的分配日志塊相聯(lián)的方法及其執(zhí)行該方法的閃存裝置)”;在此其內(nèi)容通過引用被完整地合并到本發(fā)明。在KAST下,類似于SAST的缺點仍然存在。另外,日志塊的利用率會更低?;旌祥W存轉(zhuǎn)換層(HFTL)結(jié)合BAST和FAST實施。HFTL的詳情由以下論文披露Hak Soo Kim 等的“Hybrid Log Block Buffer Scheme in a Flash TranslationLayer(閃存轉(zhuǎn)換層的混合日志塊緩沖器方案)”,IAIT, 2007 ;在此其內(nèi)容通過引用被完整地合并到本發(fā)明。在HFTL下,先識別數(shù)據(jù)塊然后分成熱和冷的數(shù)據(jù)塊,其中熱數(shù)據(jù)塊是受到大量密集連續(xù)的頁編程(寫入)操作(熱數(shù)據(jù)),而冷數(shù)據(jù)塊不會(冷數(shù)據(jù))。熱數(shù)據(jù)塊各自相聯(lián)到一個專用日志塊,符合BAST方法。所有冷數(shù)據(jù)分塊共享同一日志塊,符合FAST方法。HFTL的優(yōu)點是更少的塊擦除操作、更好的日志塊利用率、以及更高的垃圾回收效率。不過,日志塊顛簸問題繼續(xù)存在。
發(fā)明概述本發(fā)明的一個目的是提供一種通過實施智能FTL來管理固態(tài)存儲器的數(shù)據(jù)的方法,其能夠識別數(shù)據(jù)操作的不同特性,并能夠積極地相應(yīng)調(diào)整其工作執(zhí)行和策略。不同的FTL實施(包括使用不同的映射方案、日志塊使用、合并、和垃圾回收策略)根據(jù)某些特性能夠更好地執(zhí)行不同的數(shù)據(jù)操作。本發(fā)明的另一個目的是根據(jù)不同特性或數(shù)據(jù)屬性來區(qū)分和分類不同的數(shù)據(jù)操作。然后,本發(fā)明提供一種方法以根據(jù)數(shù)據(jù)屬性來實施最優(yōu)映射方案、日志塊使用、合并和垃圾回收策略;其中數(shù)據(jù)屬性包括但不限于訪問頻率、訪問次序、訪問尺寸、請求模式和請求寫入比率。根據(jù)各種實施例,一個感知屬性的FTL保持一個數(shù)據(jù)屬性列表,其中記錄有數(shù)據(jù)寫入和/或讀取訪問和/或請求的工作量的數(shù)據(jù)屬性數(shù)值。數(shù)據(jù)屬性數(shù)值是二進制數(shù)值。 在一個實施例里,固態(tài)驅(qū)動器的數(shù)據(jù)被邏輯地址(或邏輯分區(qū))分成段,并且對每個邏輯分區(qū)計算上述5個數(shù)據(jù)屬性數(shù)值的單個集合。計算5個數(shù)據(jù)屬性數(shù)值是基于在一個預(yù)設(shè)時間段內(nèi)之前數(shù)據(jù)寫入和/或讀取訪問和/或請求(輸入/輸出)的統(tǒng)計。根據(jù)一個實施例,對每個數(shù)據(jù)寫入請求,感知屬性的FTL查詢數(shù)據(jù)屬性列表以確定數(shù)據(jù)寫入請求的最好映射方案、日志塊使用、合并和垃圾回收策略。根據(jù)另一個實施例,固態(tài)驅(qū)動器的數(shù)據(jù)緩存策略是根據(jù)數(shù)據(jù)屬性進行調(diào)整的。
參照附圖,以下詳細描述本發(fā)明的實施例,其中圖1顯示一個由感知屬性FTL保持的數(shù)據(jù)屬性列表的典型實施例,其中記錄有數(shù)據(jù)寫入和/或讀取訪問和/或請求的工作量的數(shù)據(jù)屬性數(shù)值;圖2是一個感知屬性FTL的執(zhí)行步驟的流程示意圖,描述感知屬性FTL使用數(shù)據(jù)寫入和/或讀取訪問和/或請求的工作量的數(shù)據(jù)屬性數(shù)值來選擇映射方案、日志塊使用、合并、和垃圾回收策略;
圖3是一個描述感知屬性數(shù)據(jù)緩存使用數(shù)據(jù)寫入和/或讀取訪問和/或請求的工作量的數(shù)據(jù)屬性數(shù)值來選擇數(shù)據(jù)緩存策略的執(zhí)行步驟流程示意圖;和圖4是一個具有感知屬性FTL和感知屬性數(shù)據(jù)緩存的固態(tài)硬盤的執(zhí)行步驟流程示意圖。
發(fā)明詳述在以下的描述里,闡述了根據(jù)數(shù)據(jù)屬性管理固態(tài)存儲器的數(shù)據(jù)的系統(tǒng)和方法的優(yōu)選實施例。對于那些不偏離本發(fā)明范圍和精神的修改,包括添加和/或刪減,對本領(lǐng)域技術(shù)人員來說都是顯而易見的。為了不至使本發(fā)明模糊不清,將會省略具體細節(jié),不詳細描述所屬領(lǐng)域技術(shù)人員所知曉的方法、設(shè)備或系統(tǒng)。但是,本披露會使本領(lǐng)域技術(shù)人員不需要過多的試驗就能實施本教導(dǎo)。不同的FTL實施(包括使用不同的映射方案、日志塊使用、合并、和垃圾回收策略) 使用某些特性更優(yōu)地執(zhí)行不同的數(shù)據(jù)操作。本發(fā)明提供一個感知屬性(attribute-aware )的FTL,其能夠根據(jù)不同特性或數(shù)據(jù)屬性來區(qū)分和分類不同的數(shù)據(jù)操作。感知屬性的FTL根據(jù)數(shù)據(jù)屬性實施最優(yōu)的映射方案、日志塊使用、合并和垃圾回收策略;其中數(shù)據(jù)屬性包括但不限于訪問頻率、訪問次序、訪問尺寸、請求模式、和請求寫入比率。訪問頻率可以顯示數(shù)據(jù)是熱數(shù)據(jù)還是冷數(shù)據(jù),通過設(shè)定一個訪問頻率閾值,在其之上的數(shù)據(jù)就是熱數(shù)據(jù),否則就是冷數(shù)據(jù)。為了優(yōu)化性能,熱數(shù)據(jù)應(yīng)該利用頁映射方案進行組織,冷數(shù)據(jù)應(yīng)該利用塊映射方案進行組織。由此,感知屬性的FTL保留一定數(shù)目的日志塊,并將它們分到一個熱日志塊區(qū)用于熱數(shù)據(jù),而將其它塊分到一個冷日志塊區(qū)用于冷數(shù)據(jù)。通過對到固態(tài)硬盤的數(shù)據(jù)訪問(寫入和/或讀取)的邏輯數(shù)據(jù)地址的統(tǒng)計分析,應(yīng)該能夠預(yù)測該數(shù)據(jù)訪問是順序的還是隨機的。知道該信息可以影響映射方案選擇。例如,一系列順序數(shù)據(jù)訪問最好由一個塊映射方案處理,開始邏輯地址被映射到一個日志塊開頭,即日志塊的第一頁。對于大尺寸的數(shù)據(jù)訪問,如大于64KB的數(shù)據(jù)訪問,塊映射方案比頁映射方案更加有效。到固態(tài)硬盤的數(shù)據(jù)請求可以是突發(fā)的或平緩的模式。對突發(fā)模式(burstmode)的寫請求,應(yīng)該預(yù)留更多的日志塊,并應(yīng)該在一個較低閾值上觸發(fā)垃圾回收操作。為了優(yōu)化損耗均衡和大多數(shù)是寫請求(高的寫入比率)的數(shù)據(jù)請求,應(yīng)該使用更新的塊(younger block)進行塊交換(block swapping);而高的讀取比率(低寫入比率)應(yīng)該強制與舊塊進行塊交換。在一個工作量單元里的多個數(shù)據(jù)寫入和/或讀取訪問和/或請求通常都顯示相似的數(shù)據(jù)訪問和/或請求特性。由此,某個數(shù)據(jù)屬性數(shù)值可以根據(jù)其訪問和/或請求特性而被分配到每個工作量(workload)。但是,一個工作量的數(shù)據(jù)訪問和/或請求特性可能隨時發(fā)生變化,因此其數(shù)據(jù)屬性數(shù)值應(yīng)該不時地重新進行評估。依照本發(fā)明的一個實施例,數(shù)據(jù)寫入和/或讀取訪問和/或請求的一個工作量還可以被特征化為一個以下訪問數(shù)據(jù)屬性數(shù)值組合(或訪問工作量類型)
Al.)熱數(shù)據(jù)、順序訪問、以及大尺寸的數(shù)據(jù)訪問;
A2.)熱數(shù)據(jù)、順序訪問、以及小尺寸的數(shù)據(jù)訪問;A3.)熱數(shù)據(jù)、隨機訪問、以及大尺寸的數(shù)據(jù)訪問;
A4.)熱數(shù)據(jù)、隨機訪問、以及小尺寸的數(shù)據(jù)訪問;
A5.)冷數(shù)據(jù)、順序訪問、以及大尺寸的數(shù)據(jù)訪問;
A6.)冷數(shù)據(jù)、順序訪問、以及小尺寸的數(shù)據(jù)訪問;
A7.)冷數(shù)據(jù)、隨機訪問、以及大尺寸的數(shù)據(jù)訪問;
AS.)冷數(shù)據(jù)、隨機訪問、以及小尺寸的數(shù)據(jù)訪問。依照本發(fā)明的另一個實施例,數(shù)據(jù)寫入和/或讀取訪問和/或請求的一個工作量還可以被特征化為一個以下請求數(shù)據(jù)屬性數(shù)值組合(或請求工作量類型)
Rl.)突發(fā)模式和高寫入比率;
R2.)突發(fā)模式和低寫入比率;
R3.)平滑模式和高寫入比率;
R4.)平滑模式和低寫入比率。依照各種實施例,一個感知屬性的FTL保持一個數(shù)據(jù)屬性列表,其中記錄有數(shù)據(jù)寫入和/或讀取訪問和/或請求的一個工作量的數(shù)據(jù)屬性數(shù)值。數(shù)據(jù)屬性數(shù)值是二進制數(shù)值。第一屬性是為了顯示熱或冷數(shù)據(jù),數(shù)值“I”是熱數(shù)據(jù)。在一個實施例里,熱數(shù)據(jù)意味著在一個特定邏輯地址范圍內(nèi)的數(shù)據(jù)在一個特定時間期內(nèi)在一個工作量上被訪問了 80%或更多時間。第二屬性是為了顯示順序或隨機訪問,數(shù)值“I”是順序的。第三屬性是為了顯示大尺寸或小尺寸數(shù)據(jù)訪問,數(shù)值“ I ”是大尺寸。在一個實施例里,大尺寸數(shù)據(jù)訪問意味著大于64KB。第四屬性是為了顯示突發(fā)或平滑模式數(shù)據(jù)請求,數(shù)值“I”是突發(fā)模式。第五屬性是為了顯示高或低寫入比率,數(shù)值“I”是高寫入比率。第一和第二屬性在影響映射方案和日志塊使用的選擇上扮演著重要角色。在一個實施例里,固態(tài)硬盤的數(shù)據(jù)通過邏輯地址(或邏輯分區(qū))范圍被分成段(segment)。對每個邏輯分區(qū),計算上述5個數(shù)據(jù)屬性數(shù)值的一個集合。計算5個數(shù)據(jù)屬性數(shù)值是基于在一個預(yù)設(shè)時間段期間內(nèi)之前數(shù)據(jù)寫入和/或讀取訪問和/或請求(輸入/輸出)的統(tǒng)計;因此,每個集合(5個數(shù)據(jù)屬性數(shù)值)都記錄有一個時間戳。為了避免降低固態(tài)硬盤的響應(yīng)時間,在運行期間,統(tǒng)計收集和數(shù)據(jù)屬性數(shù)值計算是作為感知屬性的FTL的后臺任務(wù)(background task)來執(zhí)行的。在預(yù)設(shè)時間段結(jié)束時,根據(jù)一個預(yù)設(shè)時間表(schedule)來更新數(shù)據(jù)屬性數(shù)值。感知屬性的FTL查詢數(shù)據(jù)屬性列表,然后選擇映射方案和一個物理地址進行頁編程操作(數(shù)據(jù)寫入)。在選擇垃圾回收策略之前,也要先查詢數(shù)據(jù)屬性列表。圖1顯示數(shù)據(jù)屬性列表的一個示例性實施例,其中記錄有數(shù)據(jù)寫入和/或讀取訪問和/或請求的一個工作量的數(shù)據(jù)屬性數(shù)值。該示例性數(shù)據(jù)屬性列表顯示運行時從一個時間段內(nèi)收集的統(tǒng)計而計算出的數(shù)據(jù)屬性數(shù)值的快照。其顯示固態(tài)硬盤被分成4個邏輯分區(qū)‘0’,‘I’,‘2’,和‘3’。對在時間‘8’的邏輯分區(qū)‘0’數(shù)據(jù),有計算并記錄數(shù)據(jù)屬性數(shù)值;對在時間‘3’的邏輯分區(qū)‘I’數(shù)據(jù),有計算并記錄數(shù)據(jù)屬性數(shù)值;對在時間‘8’的邏輯分區(qū)‘2’數(shù)據(jù),有計算并記錄數(shù)據(jù)屬性數(shù)值;以及對在時間‘3’的邏輯分區(qū)‘3’數(shù)據(jù),有計算并記錄數(shù)據(jù)屬性數(shù)值。參見圖2,根據(jù)本發(fā)明的一個實施例,感知屬性的FTL使用數(shù)據(jù)寫入和/或讀取訪問和/或請求(或工作量類型)的一個工作量的數(shù)據(jù)屬性數(shù)值來選擇映射方案、日志塊使用、合并、和垃圾回收策略。感知屬性的FTL執(zhí)行步驟,從接收一個數(shù)據(jù)寫入請求開始,如步驟201。在步驟202,該數(shù)據(jù)寫入請求的邏輯地址被用來確定該數(shù)據(jù)寫入請求的邏輯分區(qū)。在步驟203,查詢數(shù)據(jù)屬性列表以找出該數(shù)據(jù)寫入請求的數(shù)據(jù)屬性。如果數(shù)據(jù)屬性顯示是Al或A2工作量類型(204),那么在步驟205,確定數(shù)據(jù)是否應(yīng)該寫入到一個塊(即大尺寸的數(shù)據(jù))的第一邏輯頁(邏輯頁0),如果是,則熱數(shù)據(jù)區(qū)里的一個新塊被分配給該數(shù)據(jù)寫入請求(206),否則在步驟207,檢查熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊是否已滿。如果熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,熱數(shù)據(jù)區(qū)里的一個新塊被分配給該數(shù)據(jù)寫入請求(206),否則使用熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊(208)。如果數(shù)據(jù)屬性顯示是A3或A4工作量類型(209),在步驟207檢查熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊是否已滿。如果熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,熱數(shù)據(jù)區(qū)里的一個新塊被分配給該數(shù)據(jù)寫入請求(206),否則使用熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊(208)。如果數(shù)據(jù)屬性顯示是A5或A6工作量類型(210),在步驟211確定該數(shù)據(jù)是否應(yīng)該寫入到一個塊(即大尺寸的數(shù)據(jù))的第一邏輯頁(邏輯頁0),如果是,則冷數(shù)據(jù)區(qū)里的一個新塊被分配給該數(shù)據(jù)寫入請求(212),否則在步驟213檢查冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊是否已滿。如果冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,冷數(shù)據(jù)區(qū)里的一個新塊被分配給該數(shù)據(jù)寫入請求(212),否則使用冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊(214)。如果數(shù)據(jù)屬性顯示是A7或AS工作量類型(215),在步驟213檢查冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊是否已滿。如果冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,冷數(shù)據(jù)區(qū)里的一個新塊被分配給該數(shù)據(jù)寫入請求(212),否則使用冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊(214)。在數(shù)據(jù)被寫入到固態(tài)硬盤之后,感知屬性的FTL命令NAND閃存控制器對于工作量類型Al、A2、A3、或A4以及Rl或R2 (216),在步驟217調(diào)整垃圾回收閾值,否則跳過步驟217,然后檢查是否已經(jīng)達到從頁映射方案轉(zhuǎn)換到塊映射方案的閾值(218)。如果已經(jīng)達到從頁映射方案轉(zhuǎn)換到塊映射方案的閾值,并且如果工作量類型是A5或A6(219),則給出命令,使用塊映射的合并(220)。在步驟206和212,對于工作量類型是A5、A6、A7、或A8以及Rl或R3,對數(shù)據(jù)寫入請求選擇一個更舊(較高的損耗均衡)的備用塊(222);否則選擇一個更新(較低的損耗均衡)的備用塊(223)。參見圖3,根據(jù)本發(fā)明的一個實施例,固態(tài)硬盤的數(shù)據(jù)緩存策略也可以根據(jù)數(shù)據(jù)屬性進行調(diào)整。對數(shù)據(jù)寫入和讀取訪問/請求,感知屬性的數(shù)據(jù)緩存能夠查詢數(shù)據(jù)屬性列表。特別地,對熱數(shù)據(jù)和小尺寸數(shù)據(jù)訪問(A2和A4)的工作量類型,數(shù)據(jù)應(yīng)該被緩存(對于數(shù)據(jù)寫入請求,數(shù)據(jù)被寫入到緩存,對于數(shù)據(jù)讀取請求,數(shù)據(jù)從緩存中提取)。理由是冷數(shù)據(jù)不會被立即使用,并且如果冷數(shù)據(jù)被緩存,這將僅降低緩存命中率(cache hit rate)。再者,大尺寸的數(shù)據(jù)訪問需要更大的緩存尺寸,從而也降低緩存命中率。參見圖4,根據(jù)本發(fā)明的一個實施例,固態(tài)硬盤的頂層主控制循環(huán)在加入數(shù)據(jù)屬性表后將會產(chǎn)生相應(yīng)的改變。在接收到一個主機命令后,主控軟件首先查詢數(shù)據(jù)屬性列表,然后再根據(jù)查詢的結(jié)果判定是否需要把命令進一步發(fā)送到FTL層和/或NFC層。在進行垃圾回收處理時同樣需要首先查詢數(shù)據(jù)屬性列表。并且在到達時間片時需要進行數(shù)據(jù)屬性列表的學(xué)習(xí)和更新。使用通用或?qū)S糜嬎阊b置、計算機處理器、或電子電路,其包括但不限于數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、和根據(jù)本發(fā)明教義而設(shè)置或編程的其它可編程邏輯裝置,可以實施在此披露的實施例。基于本發(fā)明的教義,在軟件或電子領(lǐng)域的技術(shù)人員能夠很容易地準(zhǔn)備在通用或?qū)S糜嬎阊b置、計算機處理器、或可編程邏輯裝置上運行的計算機指令或軟件代碼。在一些實施例里,本發(fā)明包括一個計算機存儲介質(zhì),其中存儲有計算機指令或軟件代碼,其可以被用來對計算機或微處理器進行編程以執(zhí)行本發(fā)明的任何過程。存儲介質(zhì)可以包括但不限于軟盤、光盤、藍光光盤、DVD、CD-ROM、磁光盤、ROM、RAM、閃存裝置、或適合用來存儲指令、代碼、和/或數(shù)據(jù)的任何類型的介質(zhì)或裝置。為了方便進行解釋和說明,前面已經(jīng)描述了本發(fā)明。這不是窮盡性地或者限制本發(fā)明為所披露的具體形式。對于本領(lǐng)域的技術(shù)人員,很多修改和變換是顯而易見的。這些實施例的選擇和描述是為了更好地解釋本發(fā)明的原理及其實際應(yīng)用,由此使本領(lǐng)域的技術(shù)人員能夠從各種實施例以及按照特定實施對其作出的各種修改而理解本發(fā)明。應(yīng)當(dāng)注意到,本發(fā)明范圍是由所附權(quán)利要求及其等同物確定。
權(quán)利要求
1.一種根據(jù)一個或多個數(shù)據(jù)屬性的固態(tài)存儲器的數(shù)據(jù)管理方法,包括 保持一個數(shù)據(jù)屬性列表,其包括一個工作量的一個或多個數(shù)據(jù)屬性數(shù)值,該工作量包括一個或多個數(shù)據(jù)訪問和請求; 對所述工作量里的每個數(shù)據(jù)訪問和請求,查詢所述數(shù)據(jù)屬性列表,然后選擇映射方案和日志塊策略;和 根據(jù)所述工作量的一個或多個數(shù)據(jù)屬性數(shù)值,為所述工作量選擇映射方案和日志塊使用策略; 其中所述數(shù)據(jù)屬性包括訪問頻率、訪問次序、和數(shù)據(jù)訪問尺寸; 其中所述訪問頻率顯示所述工作量被特征化為熱或冷數(shù)據(jù); 其中所述訪問次序顯示所述工作量被特征化順序或隨機數(shù)據(jù)訪問;和 其中所述數(shù)據(jù)訪問尺寸顯示所述工作量被特征化為大尺寸或小尺寸的數(shù)據(jù)訪問。
2.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)屬性還包括請求模式和請求寫入比率; 其中所述請求模式顯示所述工作量被特征化為突發(fā)模式或平滑模式的數(shù)據(jù)請求;和 其中所述請求寫入比率顯示所述工作量被特征化為高的或低的寫入比率。
3.根據(jù)權(quán)利要求1所述的方法,其中所述固態(tài)存儲器根據(jù)一個或多個邏輯分區(qū)被分成段; 其中所述邏輯分區(qū)是由邏輯地址范圍設(shè)定; 其中所述數(shù)據(jù)訪問和請求的工作量是由一個邏輯分區(qū)里的數(shù)據(jù)訪問和請求構(gòu)成;其中所述數(shù)據(jù)屬性列表還包括由一個或多個數(shù)據(jù)屬性數(shù)值組成的一個或多個集合;一個或多個數(shù)據(jù)屬性數(shù)值的每個集合對應(yīng)每個邏輯分區(qū)的工作量;和 其中對所述每個邏輯分區(qū)的工作量,選擇映射方案和日志塊使用策略。
4.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)屬性數(shù)值是基于一個時間段內(nèi)工作量里數(shù)據(jù)訪問和請求的統(tǒng)計而計算的; 其中在所述時間段結(jié)束時重新計算所述數(shù)據(jù)屬性數(shù)值。
5.根據(jù)權(quán)利要求1所述的方法,還包括基于所述工作量的一個或多個數(shù)據(jù)屬性數(shù)值,選擇所述工作量的垃圾回收策略和損耗均衡策略。
6.根據(jù)權(quán)利要求3所述的方法,還包括基于每個邏輯分區(qū)的工作量的一個或多個數(shù)據(jù)屬性數(shù)值,選擇所述工作量的垃圾回收策略和損耗均衡策略。
7.根據(jù)權(quán)利要求1所述的方法,其中所述查詢數(shù)據(jù)屬性列表僅對數(shù)據(jù)寫入訪問和請求而進行,并不對數(shù)據(jù)讀取訪問和請求進行。
8.根據(jù)權(quán)利要求2所述的方法,其中所述查詢數(shù)據(jù)屬性列表僅對數(shù)據(jù)寫入訪問和請求而進行,并不對數(shù)據(jù)讀取訪問和請求進行。
9.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)屬性數(shù)值等于一個以下訪問工作量類型的數(shù)據(jù)屬性數(shù)值 Al.)熱數(shù)據(jù)、順序訪問、以及大尺寸的數(shù)據(jù)訪問; A2.)熱數(shù)據(jù)、順序訪問、以及小尺寸的數(shù)據(jù)訪問; A3.)熱數(shù)據(jù)、隨機訪問、以及大尺寸的數(shù)據(jù)訪問; A4.)熱數(shù)據(jù)、隨機訪問、以及小尺寸的數(shù)據(jù)訪問; A5.)冷數(shù)據(jù)、順序訪問、以及大尺寸的數(shù)據(jù)訪問;A6.)冷數(shù)據(jù)、順序訪問、以及小尺寸的數(shù)據(jù)訪問; A7.)冷數(shù)據(jù)、隨機訪問、以及大尺寸的數(shù)據(jù)訪問; AS.)冷數(shù)據(jù)、隨機訪問、以及小尺寸的數(shù)據(jù)訪問; 其中對于數(shù)據(jù)屬性數(shù)值等于Al或A2訪問工作量類型的,如果所述工作量里的一個數(shù)據(jù)寫入訪問有一個指向邏輯塊開頭的邏輯地址,則熱數(shù)據(jù)區(qū)里的一個新備用塊將被分配給所述數(shù)據(jù)寫入訪問,否則熱數(shù)據(jù)區(qū)里的一個當(dāng)前備用塊將被分配給所述數(shù)據(jù)寫入訪問,除非所述熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,那么將分配熱數(shù)據(jù)區(qū)里的一個新備用塊; 其中對于數(shù)據(jù)屬性數(shù)值等于A3或A4訪問工作量類型的,熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊將被分配給所述數(shù)據(jù)寫入訪問,除非熱數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,那么將分配熱數(shù)據(jù)區(qū)里的一個新備用塊; 其中對于數(shù)據(jù)屬性數(shù)值等于A5或A6訪問工作量類型的,如果所述工作量里的數(shù)據(jù)寫入訪問有一個指向邏輯塊開頭的邏輯地址,則冷數(shù)據(jù)區(qū)里的一個新備用塊將被分配給所述數(shù)據(jù)寫入訪問,否則冷數(shù)據(jù)區(qū)里的一個當(dāng)前備用塊將被分配給所述數(shù)據(jù)寫入訪問,除非冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,那么將分配冷數(shù)據(jù)區(qū)里的一個新備用塊;和 其中對于數(shù)據(jù)屬性數(shù)值等于A7或AS訪問工作量類型的,冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊將被分配給所述數(shù)據(jù)寫入訪問,除非冷數(shù)據(jù)區(qū)里的當(dāng)前備用塊已滿,那么將分配冷數(shù)據(jù)區(qū)里的一個新備用塊。
10.根據(jù)權(quán)利要求9所述的方法,還包括基于所述工作量的一個或多個數(shù)據(jù)屬性數(shù)值選擇所述工作量的損耗均衡策略; 其中所述數(shù)據(jù)屬性數(shù)值還等于一個以下請求工作量類型的數(shù)據(jù)屬性數(shù)值; Rl.)突發(fā)模式和高寫入比率; R2.)突發(fā)模式和低寫入比率; R3.)平滑模式和高寫入比率;和 R4.)平滑模式和低寫入比率。
其中對于數(shù)據(jù)屬性數(shù)值等于A5、A6、A7、*A8訪問工作量類型和R1、或R3請求工作量類型的,如果冷數(shù)據(jù)區(qū)里的一個新備用塊將被分給所述數(shù)據(jù)寫入訪問,那么所述冷數(shù)據(jù)區(qū)里的較高損耗水平的新備用塊將被分配給所述數(shù)據(jù)寫入訪問;否則冷數(shù)據(jù)區(qū)里的較低損耗水平的新備用塊將被分配給所述數(shù)據(jù)寫入訪問。
11.根據(jù)權(quán)利要求9所述的方法,還包括基于所述工作量的一個或多個數(shù)據(jù)屬性數(shù)值選擇所述工作量的垃圾回收策略; 其中所述數(shù)據(jù)屬性數(shù)值還等于一個以下請求工作量類型的數(shù)據(jù)屬性數(shù)值 Rl.)突發(fā)模式和高寫入比率; R2.)突發(fā)模式和低寫入比率; R3.)平滑模式和高寫入比率;和 R4.)平滑模式和低寫入比率。
其中如果所述數(shù)據(jù)屬性數(shù)值等于Al、A2、A3、或A4訪問工作量類型和Rl或R2請求工作量類型的數(shù)據(jù)屬性數(shù)值,則調(diào)整垃圾回收閾值。
12.根據(jù)權(quán)利要求9所述的方法,還包括檢查是否已經(jīng)達到從頁映射方案轉(zhuǎn)換到塊映射方案的閾值;其中如果已經(jīng)達到從頁映射方案轉(zhuǎn)換到塊映射方案的閾值,并且如果所述數(shù)據(jù)屬性數(shù)值等于A5或A6訪問工作量類型的數(shù)據(jù)屬性數(shù)值,則發(fā)出一個命令使用塊映射的合并。
13.一種根據(jù)一個或多個數(shù)據(jù)屬性管理固態(tài)存儲器的數(shù)據(jù)的方法,包括 保持一個數(shù)據(jù)屬性列表,其包括一個數(shù)據(jù)訪問和請求的工作量的一個或多個數(shù)據(jù)屬性數(shù)值; 在為所述工作量里的每個數(shù)據(jù)訪問和請求選擇數(shù)據(jù)緩存策略之前,查詢所述數(shù)據(jù)屬性列表;和 根據(jù)所述工作量的一個或多個數(shù)據(jù)屬性數(shù)值,為所述工作量選擇數(shù)據(jù)緩存策略; 其中所述數(shù)據(jù)屬性包括訪問頻率、訪問次序、和數(shù)據(jù)訪問尺寸; 其中所述訪問頻率顯示所述工作量被特征化為熱或冷數(shù)據(jù); 其中所述訪問次序顯示所述工作量被特征化為順序或隨機數(shù)據(jù)訪問; 其中所述數(shù)據(jù)訪問尺寸顯示所述工作量被特征化為大尺寸或小尺寸的數(shù)據(jù)訪問。
14.根據(jù)權(quán)利要求13所述的方法,其中所述固態(tài)存儲器被一個或多個邏輯分區(qū)分成段; 其中所述邏輯分區(qū)是由邏輯地址范圍定義; 其中所述數(shù)據(jù)訪問和請求的工作量是由一個邏輯分區(qū)里的數(shù)據(jù)訪問和請求構(gòu)成; 其中所述數(shù)據(jù)屬性列表還包括一個或多個數(shù)據(jù)屬性數(shù)值組成的一個或多個集合; 一個或多個數(shù)據(jù)屬性數(shù)值的每個集合對應(yīng)每個邏輯分區(qū)的工作量;和 其中對每個邏輯分區(qū)的工作量,選擇數(shù)據(jù)緩存策略。
15.根據(jù)權(quán)利要求13所述的方法,其中所述數(shù)據(jù)屬性數(shù)值是基于一個時間段內(nèi)工作量里數(shù)據(jù)訪問和請求的統(tǒng)計而計算獲得;和。
其中在所述時間段結(jié)束時重新計算所述數(shù)據(jù)屬性數(shù)值。
16.根據(jù)權(quán)利要求13所述的方法,其中所述數(shù)據(jù)屬性數(shù)值等于一個以下訪問工作量類型的數(shù)據(jù)屬性數(shù)值; Al.)熱數(shù)據(jù)、順序訪問、以及大尺寸的數(shù)據(jù)訪問; A2.)熱數(shù)據(jù)、順序訪問、以及小尺寸的數(shù)據(jù)訪問; A3.)熱數(shù)據(jù)、隨機訪問、以及大尺寸的數(shù)據(jù)訪問; A4.)熱數(shù)據(jù)、隨機訪問、以及小尺寸的數(shù)據(jù)訪問; A5.)冷數(shù)據(jù)、順序訪問、以及大尺寸的數(shù)據(jù)訪問; A6.)冷數(shù)據(jù)、順序訪問、以及小尺寸的數(shù)據(jù)訪問; A7.)冷數(shù)據(jù)、隨機訪問、以及大尺寸的數(shù)據(jù)訪問; AS.)冷數(shù)據(jù)、隨機訪問、以及小尺寸的數(shù)據(jù)訪問;和 其中如果數(shù)據(jù)屬性數(shù)值等于A2或A4訪問工作量類型的數(shù)據(jù)屬性數(shù)值,那么所述工作量里的數(shù)據(jù)訪問或請求將被寫入數(shù)據(jù)緩存或從數(shù)據(jù)緩存讀??;否則將繞過數(shù)據(jù)緩存。
全文摘要
不同的FTL實施(包括使用不同的映射方案、日志塊的使用、合并、和垃圾回收策略)使用某些特性更優(yōu)地執(zhí)行不同的數(shù)據(jù)操作。本發(fā)明提供一種方法,其根據(jù)不同特性或數(shù)據(jù)屬性來區(qū)分和分類不同的數(shù)據(jù)操作;然后根據(jù)數(shù)據(jù)屬性實施最優(yōu)的映射方案、日志塊的使用、合并、和垃圾回收策略;其中數(shù)據(jù)屬性包括但不限于訪問頻率、訪問次序、訪問大小、請求模式、和請求寫入比率。
文檔編號G06F12/08GK103019958SQ20121047229
公開日2013年4月3日 申請日期2012年11月20日 優(yōu)先權(quán)日2012年10月31日
發(fā)明者冼曙光, 王展, 陳幫紅, 胡水華, 宋雨 申請人:香港應(yīng)用科技研究院有限公司