新四季網

用於使用可變大小快閃轉變層的方法及設備的製作方法

2023-04-23 17:52:46 2

用於使用可變大小快閃轉變層的方法及設備的製作方法
【專利摘要】本發明揭示用於使用可變大小快閃轉變層的方法及設備。步驟(A)接收從非易失性存儲器讀取對應於邏輯塊地址的數據的讀取請求。步驟(B)讀取映射的特定條目以獲得:(i)所述非易失性存儲器的特定頁的物理地址,(ii)所述特定頁中到先前存儲的經壓縮數據的偏移,及(iii)所述經壓縮數據的長度。所述特定條目與所述邏輯塊地址相關聯。步驟(C)將所述偏移及所述長度轉換為:(i)所述特定頁中的給定讀取單元的地址,及(ii)待讀取的所述讀取單元的數目。步驟(D)從所述特定頁讀取從所述給定讀取單元開始的至多所述數目個所述讀取單元。偏移及長度粒度比一個讀取單元精細。
【專利說明】用於使用可變大小快閃轉變層的方法及設備
[0001]相關申請案交叉參考
[0002]本申請案涉及2013年10月9日申請的第61/888,681號美國臨時申請案、2013年8月16日申請的第61/866,672號美國臨時申請案及2013年I月22日申請的第61/755,169號美國臨時申請案,所述臨時申請案特此以全文引用的方式併入本文。
[0003]本申請案涉及2011年3月21日申請的序列號為13/053,175的美國申請案,其涉及2010年3月22日申請的第61/316,373號美國臨時申請案,所述申請案中的每一者特此以全文引用的方式併入本文。
[0004]本申請案還涉及具有國際 申請日期:2012年10月4日的國際申請案PCT/US2012/058583,其主張2011年10月5日申請的第61/543,707號美國臨時申請案的權益,所述申請案中的每一者特此以全文引用的方式併入本文。

【技術領域】
[0005]本發明大體來說涉及計算主機及輸入/輸出裝置技術,且更特定來說是涉及一種用於實施可變大小快閃轉變層的方法及/或設備。

【背景技術】
[0006]常規固態驅動器在非易失性存儲器的每一頁中存儲固定的整數個主機邏輯塊。當用戶數據大小或非易失性存儲器的每一頁的可用大小不固定時,會出現存儲效率問題。用於固態驅動器中的可變大小快閃轉變層的架構為硬體密集的。頁標頭用於識別用戶數據存儲在固態驅動器的頁內的多個讀取單元當中的何處,且提取數據涉及首先讀取並剖析頁標頭。


【發明內容】

[0007]本發明涉及一種用於使用可變大小快閃轉變層的方法。步驟(A)接收從非易失性存儲器讀取對應於邏輯塊地址的數據的讀取請求。步驟(B)讀取映射的特定條目以獲得:
(i)所述非易失性存儲器的特定頁的物理地址,(ii)所述特定頁中到先前存儲的經壓縮數據的偏移,及(iii)所述經壓縮數據的長度。所述特定條目與所述邏輯塊地址相關聯。步驟(C)將所述偏移及所述長度轉換為:(i)所述特定頁中的給定讀取單元的地址,及(ii)待讀取的讀取單元的數目。步驟(D)從所述特定頁讀取從所述給定讀取單元開始的至多所述數目個所述讀取單元。偏移及長度粒度比一個讀取單元精細。

【專利附圖】

【附圖說明】
[0008]從以下詳細描述及所附權利要求書以及圖式將明了本發明的實施例,其中:
[0009]圖1是邏輯塊地址到快閃頁內的固定大小區域的映射的實施例的選定細節的圖解;
[0010]圖2是邏輯塊地址到任選地橫跨快閃頁的可變大小區域的映射的實施例的選定細節的圖解;
[0011]圖3是包括整數個讀取單元的快閃頁的實施例的圖解;
[0012]圖4是邏輯塊地址到橫跨一或多個讀取單元的可變大小區域的映射的實施例的選定細節的圖解;
[0013]圖5是包括標頭及數據的讀取單元的實施例的選定細節的圖解;
[0014]圖6是包括標頭及數據的快閃頁的實施例的選定細節的圖解;
[0015]圖7是根據本發明的實施例包括標頭及數據的快閃頁的實施例的選定細節的圖解;
[0016]圖8是各種類型的標頭的實施例的選定細節的圖解;
[0017]圖9是映射條目的實施例的選定細節的圖解;
[0018]圖10是各種經壓縮映射條目的實施例的選定細節的圖解;
[0019]圖11是讀取非易失性存儲器的流程圖;且
[0020]圖12是固態驅動器控制器的實施例的選定細節的圖解。

【具體實施方式】
[0021]本發明的實施例包含提供一種可變大小快閃轉變層,其可:(i)支持寬廣範圍的數據大小,Qi)藉助拼貼(tiling)過程創建標頭,(iii)藉助拆解(un-tiling)過程剖析標頭,(iv)將所有標頭放置於每一頁的開始處,(V)將所有數據放置於每一頁中的標頭之後,(vi)使用不與讀取單元邊界對準的偏移及標頭,及/或(vii)實施為一或多個集成電路及/或相關聯固件。
[0022]本發明可以眾多方式實施,舉例來說,實施為過程、製造物件、設備、系統、物質組合物及例如計算機可讀存儲媒體的計算機可讀媒體(例如,光學及/或磁性大容量存儲裝置中的媒體,例如磁碟,具有例如快快閃記憶體儲裝置的非易失性存儲裝置的集成電路)或其中在光學或電子通信鏈路上發送程序指令的計算機網絡。詳細描述提供本發明的實現在上文所識別領域中的成本、獲利性、性能、效率及使用效用的改進的一或多個實施例的闡述。詳細描述包含導論以促進對詳細描述的其餘部分的理解。所述導論包含根據本文中描述的概念的系統、方法、製造物件及計算機可讀媒體中的一或多者的實例性實施例。如更詳細地論述,本發明涵蓋在所發布的權利要求書的範圍內的所有可能修改及變化。
[0023]快閃翻譯層(例如,FTL)將邏輯塊地址空間(例如由主機用來對輸入/輸出裝置執行輸入/輸出操作)中的邏輯塊地址(例如,LBA)映射到非易失性存儲器(例如,NVM)(例如NAND快閃非易失性存儲器)中的物理位置。所述映射對一或多個邏輯塊的經對準單元(稱為映射單元)進行操作,以使得每一映射單元具有其中存儲所述映射單元的數據的對應物理位置(如果所述映射單元從未被寫入或已被修整,那麼包含NULL物理位置的可能性)。舉例來說,在4千字節(例如,KB)映射單元的情況下,將八個鄰接(及通常八扇區對準的)串行高級技術附件(例如,SATA) 512位元組扇區映射為單個單元。一般來說,例如映射的翻譯表具有每映射單元一條目以存儲從與所述映射單元相關聯的邏輯塊地址到非易失性存儲器中的物理地址的相應翻譯及/或其它控制信息。
[0024]非易失性存儲器(例如NAND快閃)提供稱為快閃頁的可寫入(或可編程)單元。快閃頁包括若干個用戶(非錯誤校正碼)數據字節以及用於元數據及錯誤校正解碼(例如,ECC)的一定量的備用空間,且通常為非易失性存儲器的最小可寫入單元。典型的快閃頁大小為8KB或16KB或32KB的用戶數據,而典型的映射單元大小為4KB或8KB。(儘管關於快閃頁使用術語「用戶」數據,但一些快閃頁存儲例如映射數據及/或校驗點數據的「系統」數據。用戶數據打算一般指代快閃頁的非ECC部分。)快閃頁被組織成若干塊,通常每塊128、256或512個快閃頁。一塊為可被擦除的最小大小單元,且快閃頁在所述頁被擦除之後才能夠被(重新)寫入。
[0025]參考圖1,其展示邏輯塊地址到快閃頁內的固定大小區域的映射的實施例的選定細節的圖解。傳統快閃轉變層假定快閃頁(例如,快閃頁100)中的用戶數據字節的數目為2的冪(及/或扇區大小的倍數)並將快閃頁劃分成整數個映射單元(每一者在圖1中展示為數據)。舉例來說,在每快閃頁16KB的用戶數據及4KB的映射單元的情況下,每一快閃頁含有四個映射單元,且快閃轉變層將每一映射單元的地址(例如,LBA[M:U]110)映射到相應快閃頁及相應快閃頁內的四個映射單元中的一者。也就是說,每一映射條目含有相應欄位,例如:
[0026]flash_page_address[n_l:0]、mapping_unit_within_flash_page[k_l:0], 其中flash_page_address指代非易失性存儲器中的唯一,決閃頁,且mapping_unit_within_f lash_page指代每一,決閃頁的2k個映射單元大小部分中的一者(k針對整個非易失性存儲器為固定的)。子頁地址 104 為 f lash_page_address 與 mapping_unit_within_f lash_page的組合。對於基於扇區的尋址,邏輯塊地址(例如,LBAtU-1:0]111)的較低階位指定子部分,例如映射單元內的若干個扇區(例如,子頁113內的扇區)。
[0027]參考圖2,其展示邏輯塊地址到任選地橫跨快閃頁的可變大小區域的映射的實施例的選定細節的圖解。可變大小快閃翻譯層(例如,VFTL)概念上將映射單元的地址(例如,LBA[M:U] 110)映射到一或多個快閃頁的可變大小區域(舉例來說,這是因為映射單元的數據在存儲於快閃中之前被壓縮及/或在另一實例中,是因為映射單元由主機作為可變大小的段來寫入,例如針對對象存儲區)。然而,在每一映射條目中提供完整字節地址204及字節數據長度206使得映射條目在與傳統快閃轉變層相比時較大。
[0028]在一些固態磁碟(例如,SSD)中使用可變大小快閃翻譯層。通常已針對其中隨機存取性能約束為總體系統設計中的推動因素的較高端客戶端及/或企業應用設計固態磁碟系統。為了針對低端及/或移動環境配置可變大小快閃翻譯層,可實施改變以針對作為推動因素的循序性能進行配置。本發明的實施例提供一或多種組織用戶數據及VFTL元數據以實現其中循序讀取性能為支配性約束的不那麼昂貴且較高效的低端及移動非易失性存儲器系統的方式。
[0029]參考圖3,其展示包括整數個讀取單元的快閃頁的實施例的圖解。在一些實施例中,可變大小快閃翻譯層通過映射到Epage(例如,ECC頁)地址(也稱為「讀取單元」地址)而執行從映射單元的地址到物理地址的映射。Epage (或讀取單元)為可從非易失性存儲器讀取且通過用於保護非易失性存儲器的內容的錯誤校正碼校正的最小數據量。也就是說,每一讀取單元含有一定量的數據及保護所述數據的對應ECC校驗字節。在一些實施例中將一快閃頁(例如快閃頁100)或在其它實施例中將出於寫入的目的而視為一單元的快閃頁群組劃分成整數個讀取單元,如圖3中所圖解說明。
[0030]在各種實施例中,允許每快閃頁的讀取單元的數目變化。舉例來說,非易失性存儲器的一些部分使用比其它部分強的錯誤校正碼(使用快閃頁中的較多字節來進行錯誤校正解碼),且具有較少的讀取單元及/或每讀取單元較少的可用數據。在另一實例中,在使用非易失性存儲器時每快閃頁的讀取單元的數目變化,因為編程/擦除循環往往弱化非易失性存儲器,從而在較多地使用(磨損)非易失性存儲器時導致較強的錯誤校正碼。
[0031]根據各種實施例,所使用的錯誤校正碼為以下各者中的一或多者:裡德-索羅門(例如,RS)碼;博斯-查德胡裡-霍昆格母(例如,BCH)碼;渦輪碼;低密度奇偶校驗(例如,LDPC)碼;極性碼;非二進位碼;廉價/獨立磁碟冗餘陣列(例如,RAID)碼;擦除碼;任何其它錯誤校正碼;前述各者的任何組合,包含組成、並置及交錯。典型的碼字大小介於從512個字節(加ECC字節)到2176個字節(加ECC字節)的範圍內。ECC字節的典型數目介於從僅幾個字節到數百個字節的範圍內。
[0032]參考圖4,其展示將邏輯塊地址映射到橫跨一或多個讀取單元的可變大小區域的實施例的選定細節的圖解。在一些實施例中,VFTL映射將可變大小(例如,經壓縮)映射單元的地址(例如,LBA[M:U] 110)映射到在映射的每一條目中表示為讀取單元地址404及跨度(讀取單元的數目)406的若干個讀取單元。由映射條目中的一者參考的讀取單元在一或多個(邏輯上及/或物理上)循序快閃頁,舉例來說,所述若干個讀取單元任選地及/或選擇性地跨越快閃頁邊界。映射的條目單獨地通常不足以定位相關聯數據(因為所述條目僅參考讀取單元且不參考所述數據在讀取單元內的位置),且使用所參考讀取單元內的進一步信息(例如標頭)來精確地定位相關聯數據。
[0033]在一些實施例中,以跨越非易失性存儲器的多個裸片條帶化的方式將數據寫入到快閃頁中。跨越多個裸片條帶化寫入數據通過僅將快閃頁每條帶一次地寫入到給定裸片中而有利地實現較大寫入帶寬。跨越多個裸片的塊條帶稱為冗餘塊,因為在進一步實施例及/或使用情景中,使用(舉例來說)一個冗餘裸片在冗餘塊基礎上添加類RAID冗餘。在各種實施例中,非易失性存儲器的一些塊為有缺陷的且在寫入時被跳過,以使得條帶化偶爾會具有其中裸片中的一者被跳過(而非寫入到壞塊的快閃頁中)的「孔」。在此類實施例中,「循序」快閃頁按由寫入快閃頁的次序確定的邏輯次序為循序的。
[0034]參考圖5,其展示包括標頭及數據的讀取單元的實施例的選定細節的圖解。在各種實施例中,圖4中所圖解說明的映射產生在讀取單元內定位可變大小數據的準則。如圖5中所圖解說明,每一讀取單元(例如,讀取單元500及510)具有一組標頭501,且通常通過硬體寫入所述標頭,因為可變大小數據被「拼貼」(例如,密集地堆積而無浪費的空間)到一或多個讀取單元中。當讀取非易失性存儲器時,通常通過其它硬體來解譯標頭以提取可變大小數據。通過標頭中具有匹配的邏輯塊地址的一者中的相應偏移及長度來定位可變大小數據,且數據任選地及/或選擇性地橫跨若干讀取單元(例如由「數據,開始」及「數據,繼續」所圖解說明的可變大小數據圖解說明)。
[0035]在各種實施例中,所述標頭也用作再循環(例如,無用單元收集)的部分-在標頭中包含邏輯塊地址(或等效地,映射單元地址)既實現找出讀取單元內的可變大小數據又提供一種用以確定何時讀取所述讀取單元中的特定一者、其內的可變大小數據是仍有效還是已被覆寫(通過在映射中查找邏輯塊地址並確定所述映射是否仍涉及特定讀取單元的物理地址還是已經更新為涉及讀取單元中的另一者)的方式。
[0036]在一些實施例中,用以基於邏輯塊地址而從讀取單元提取數據的專用硬體經實施而針對隨機讀取以高效率操作。專用硬體剖析一或多個讀取單元內的標頭以找出所述標頭中具有給定邏輯塊地址的一者且接著使用相應長度及偏移來提取相關聯的可變大小數據。然而,基於硬體的解決方案為昂貴的(在矽面積及功率上)。對於其中循序性能比隨機性重要的低端及/或移動環境,對可變大小快閃翻譯層實施改變以減少矽面積、節省功率並實現高循序處理率。
[0037]在一些實施例中,經循序讀取優化的可變大小快閃翻譯層(例如,SR0-VFTL)將數據拼貼到快閃頁(或在一些實施例中,出於寫入的目的而視為一單元的快閃頁群組)中,而數據內無用於標頭的任何間隙-所有標頭均被分組在快閃頁的一個部分中。在進一步實施例中,標頭並不動態地用於存取數據(如在一些可變大小快閃翻譯層中),而是僅用於再循環及回收。代替地,映射的條目包括用於找出快閃頁內的可變大小(例如,經壓縮)數據的完整信息。將標頭及數據分離到快閃頁的不同部分中導致僅包括標頭的讀取單元、包括標頭與數據的混合的讀取單元(但每快閃頁僅一個此種讀取單元)及僅包括數據的讀取單
J Li ο
[0038]儘管針對循序讀取處理量以低成本進行配置,但經循序讀取優化的可變大小快閃翻譯層能夠按其它度量(例如每秒的隨機讀取輸入/輸出操作(例如,Ι0Ρ)、每秒的隨機寫入輸入/輸出操作及循序寫入處理量)相當好地表現。然而,對例如在每一讀取單元中藉助標頭的VFTL式數據拼貼的功能的硬體輔助的移除會對控制處理器造成較大的負擔。
[0039]參考圖6,其展示SRO-VFTL快閃頁的第一實施例的圖解。參考圖7,其展示根據本發明的實施例的SRO-VFTL快閃頁的第二實施例的圖解。圖6及圖7的實施例之間的差異為來自先前快閃頁640的延續數據是在標頭之前還是之後。本發明預期快閃頁內的數據的各種實施例及布置。
[0040]根據各種實施例,快閃頁包括以下各者中的一或多者:
[0041]-標頭,其包含主標頭610、任選地及/或選擇性地冗餘塊標頭620(例如,在為冗餘塊的每一塊的第一頁中添加的標頭)及零個或零個以上額外經堆積標頭630。每個快閃頁具有接續的標頭的數目的至少一計數及到數據(與所述標頭相關聯)在快閃頁中開始之處的指針。在一些實施例中,所述標頭可為字節對準的,但各自為僅6個字節(例如,B)。所述標頭可包含但不限於數據標頭、時期標頭及填補。數據標頭利用映射單元地址及長度。暗示了偏移,因為所有數據均被鄰接地堆積。
[0042]-任選地及/或選擇性地,來自先前快閃頁的延續數據(映射單元的可變大小數據的一部分)640。
[0043]-用以填充快閃頁的一或多個映射單元的經堆積(例如,任選地及/或選擇性地經壓縮)數據650,所述快閃頁的最後任選地及/或選擇性地在後續快閃頁中繼續。
[0044]-在快閃頁的結束處的任選填補(包含於650)中。在各種實施例中,數據為字節堆積的(例如,無孔),但如果高度壓縮(例如,過多標頭),那麼可能在快閃頁的結束處填補。舉例來說,在以下情況時使用填補:(i)添加到快閃頁的最後可變大小數據段剩下比標頭的大小少的未使用字節(因此,無法添加新標頭來開始另一可變大小數據段),及(ii)任選地及/或選擇性地,超過每快閃頁的標頭的指定數目(因此,存儲於快閃頁中的映射單元的數目由標頭的指定數目而非由映射單元的數據大小限制)。
[0045]在一些實施例中,關於經循序讀取優化的可變大小快閃翻譯層的回收及/或再循環(例如,無用單元收集)有利地經啟用以讀取及/或錯誤校正及/或檢驗快閃頁中的每一者的僅標頭部分,而非如在未經循序讀取優化的可變大小快閃翻譯層中讀取及/或錯誤校正及/或檢驗每個讀取單元。如果再循環確定可重寫快閃頁的數據,那麼也可讀取所述數據且也可對其進行錯誤校正。在一些實施例中,讀取整個快閃頁以進行再循環,但對僅標頭部分進行錯誤校正直到做出應使快閃頁中的一些數據再循環的確定為止。
[0046]在各種實施例中,每快閃頁的標頭的數目經限制以約束每快閃頁的可讀取的讀取單元的數目,從而確保已從非易失性存儲器讀取所有標頭。在圖6的實施例中,僅讀取足以容納最大數目個標頭的一定數目個讀取單元。在圖7的實施例中,讀取額外數目個讀取單元以考慮到來自先前快閃頁的結尾的數據的最大大小(例如,延續數據640)。然而,圖7的實施例使得能夠從相關聯映射條目確定用以存取來自先前快閃頁的數據結尾的讀取單元的數目,因為數據結尾中的字節的數目可基於相關聯映射條目的相應偏移及長度以及先前快閃頁中的用戶(非錯誤校正碼)數據的字節的數目而確定。此外,在數據結尾之前的僅有標頭為任選冗餘塊標頭(僅存在於已知快閃頁中,例如每一塊中的第一頁)及主標頭(始終存在於每一快閃頁中)。在圖6的實施例中,為了在不必兩次存取非易失性存儲器的情況下讀取數據的結尾,假定存在最大數目個標頭(或讀取整個快閃頁)。
[0047]在一些實施例中,經循序讀取優化的可變大小快閃翻譯層使用具有多個映射條目的單級映射。在其它實施例中,經循序讀取優化的可變大小快閃翻譯層使用多級映射,例如兩級映射,其具有指向第二級映射(例如,SLM)頁的第一級映射(例如,FLM),其中第二級映射頁中的每一者多個葉級映射條目。在進一步實施例中,多級映射具有兩個以上層級,例如三個層級。在一些實施例及/或使用情景中,多級映射的使用使得能夠將映射的相關(例如,在使用中)部分存儲(例如,高速緩存)在局部(例如,晶片上)存儲器中,從而減少維持映射的成本。舉例來說,如果典型的使用模式具有在任何時間點處作用的I千兆字節(例如,GB)的邏輯塊地址空間,那麼為了快速存取僅局部地存儲映射的足以存取邏輯塊地址空間的作用的IGB部分的一部分,而非將其存儲於非易失性存儲器中。在邏輯塊地址空間的作用部分之外的參考從非易失性存儲器取得多級映射的一或多個層級的所請求部分,從而任選地及/或選擇性地替換映射的其它局部存儲的部分。
[0048]葉級映射條目中的每一者與多個映射單元中的一者的地址相關聯(相對應)。將邏輯塊地址轉換為映射單元地址,例如通過移除邏輯塊地址的零個或零個以上最低有效位(例如,LSB)及/或出於對準目的而給邏輯塊地址添加常數,且在映射中查找映射單元地址以確定所述映射的對應條目。
[0049]參考圖8,其展示各種類型的標頭的實施例的細節的圖解。在圖8的實例中,所述標頭已經格式化以各自裝入六個字節。根據各種實施例,各種類型的標頭為以下各者中的一或多者:全部為相同大小;任選地及/或選擇性地為不同大小;各自包括指定標頭的大小的相應欄位;大小在不同快閃頁中變化;及前述各者的任何組合。
[0050]根據各種實施例,快閃頁中的標頭包括以下各者中的一或多者:
[0051]-數據標頭810,其指示與可變大小數據部分相關聯的信息。在一些實施例中,與數據標頭相關聯的數據在與所述數據標頭出現的快閃頁相同的快閃頁中開始。在進一步實施例及/或使用情景中,如果快閃頁僅具有用於數據標頭的剩餘空間,那麼所有相關聯數據在後續快閃頁中開始。
[0052]-映射標頭,例如第二級映射(例如,SLM)標頭820。第二級映射標頭包括用以指示(例如針對第二級映射再循環及/或回收)正存儲哪一第二級映射頁的第一級映射索引(例如,FLMI)。
[0053]日誌/校驗點標頭820。日誌/校驗點標頭指示用於再循環、回收、錯誤處置、調試或其它特殊條件的數據。
[0054]-時期標頭830用作回收的部分以使數據與對應映射/校驗點信息相關聯。通常,每快閃頁存在至少一個時期標頭。
[0055]-主標頭870每快閃頁使用一次以提供關於快閃頁中的標頭的數目及非標頭數據在快閃頁內的何處開始的信息。各種技術確定非標頭數據的開始,例如在圖6及圖7的實施例中所圖解說明。
[0056]-在某些快閃頁(例如為冗餘塊的每一塊中的第一快閃頁)中使用冗餘塊標頭880。
[0057]-其它類型的標頭840,例如填補標頭、支持較大長度的校驗點標頭等。
[0058]在一些實施例中,一些標頭包括用以提供標頭的多個子類型的TYPE欄位。在各種實施例中,一些標頭包括含有與標頭相關聯的數據的長度的LEN(長度)欄位。在其它實施例中,並非LEN欄位,一些標頭包括含有到與標頭相關聯的數據的結束的偏移(在快閃頁內)的OFFSET(偏移)欄位(未展示)。(如果可變大小數據段中的最後一者橫跨一快閃頁,那麼OFFSET為在後續快閃頁內的偏移或後續快閃頁內的字節的數目。)通常實施LEN欄位或OFFSET欄位中的僅一者,因為在堆積可變大小數據段而無浪費的空間的情況下,快閃頁中的可變大小數據段中的每一者的開始位置及結束位置由快閃頁中的第一可變大小數據段的開始位置(例如,緊接在標頭之後,如在圖7中)及LEN或OFFSET欄位的列表暗
/Jn ο
[0059]參考圖9,其展示映射條目900的實施例的選定細節的圖解。根據各種實施例,映射的條目包括以下各者中的一或多者:
[0060]-物理快閃頁地址,
[0061]-快閃頁內到可變大小數據項的偏移,
[0062]-可變大小數據項的長度,及
[0063]-其它控制信息。
[0064]在一些實施例中,對長度進行編碼(舉例來說,通過偏移)以使得為零的值對應於指定最小長度。在進一步實施例中,將壓縮到小於指定最小長度的數據填補到至少指定最小長度的大小。
[0065]在各種實施例中,SRO-VFTL映射條目大於VFTL映射條目,因為SRO-VFTL映射條目存儲對應數據的全偏移及字節長度。因此,減小映射條目在存儲於非易失性存儲器中時的大小可為優點。在典型的使用中,通常至少以某一粒度及/或大於I的循序映射單元平均數目循序地讀取及寫入數據,且利用寫入的循序性質的映射條目壓縮格式的實施為相對廉價的且產生高映射壓縮率。通過使循序寫入的數據進入到相同快閃頁中直到跨越快閃頁邊界為止來進一步援助映射條目的壓縮。
[0066]參考圖10,其展示各種經壓縮映射條目的實施例的選定細節的圖解。所述各種映射條目包含未壓縮1010、具有與先前映射條目相同的快閃頁地址1020、具有與先前映射條目相同的快閃頁地址且在先前數據結束的偏移處開始1030,及具有與先前映射條目相同的快閃頁地址、在先前數據結束的偏移處開始且具有與先前映射條目相同的長度1040。
[0067]在具有多級映射的一些實施例中,維持較低級(例如葉級)映射頁的高速緩衝存儲器。經高速緩存的映射頁呈未壓縮格式,從而提供由處理器進行的快速存取。當映射頁移動(例如從非易失性存儲器或動態隨機存取存儲器(例如,DRAM))到高速緩衝存儲器中時,所述映射頁是未壓縮的。當從高速緩衝存儲器衝洗映射頁(例如由於被修改)時,壓縮映射頁以用於存儲(例如存儲於非易失性存儲器中)。根據其中使用DRAM以通過將映射頁中的一些或全部存儲於動態隨機存取存儲器中減少等待時間的各種實施例,以如下形式中的一或多者來存儲動態隨機存取存儲器中的映射頁:經壓縮形式;未壓縮形式;選擇性地,經壓縮或未壓縮形式;及藉助用於存取動態隨機存取存儲器中的映射頁的經壓縮版本的間接表。
[0068]在一些實施例中,在主機寫入命令的主機寫入數據到達時任選地及/或選擇性地壓縮所述主機寫入數據,並將其以類先進先出(例如,FIFO)的方式存儲於局部(例如晶片上)存儲器中。舉例來說,在一些實施例中,將主機寫入數據連同固件數據結構、快閃統計數據、映射的部分(例如保存映射的一或多個頁的高速緩衝存儲器)、來自非易失性存儲器的讀取數據(包含再循環讀取數據)、待寫入到非易失性存儲器的數據的標頭、固件代碼及其它使用一起存儲於統一緩衝器(例如,圖12中的UBUF)中。在其它實施例中,針對固態驅動器的各種局部存儲準則使用一或多個專用存儲器。
[0069]關於從主機到達的數據的每一映射單元,向固態驅動器的控制處理器(例如,圖12中的中央處理單元CPU)通知以下各者中的一或多者:相應映射單元地址、相應局部存儲器地址及/或可變大小(例如,經壓縮)主機數據的每一映射單元的相應長度。控制處理器經啟用以確定快閃頁的寫入次序及快閃頁中的每一者中可用的非ECC字節的總數目。根據快閃頁中的給定一者中可用的非ECC字節的總數目,控制處理器經啟用以確定放置於所述給定快閃頁中的標頭量及數據量。舉例來說,控制處理器累加給定快閃頁的標頭(並追蹤迄今為止所使用的標頭的字節的數目)並一次一個地將映射單元的可變大小數據及標頭添加到給定快閃頁,直到所述給定快閃頁為滿的。當給定快閃頁為滿時,添加到給定快閃頁的映射單元中的最終一者的數據的最後部分未裝入於給定快閃頁中且用作快閃頁中的後續一者的數據結尾部分,從而減少後續快閃頁中可用的非ECC字節的總數目,以用於新的標頭及數據。
[0070]在特定時間點處,一或多個快閃頁經啟用以用主機寫入數據填充且一或多個快閃頁經啟用以用經再循環數據填充。舉例來說,可填充至少兩個帶(例如,類FIFO系列的冗餘塊),一個帶用「熱」數據(例如,剛從主機而來)填充且另一帶用「冷」數據(例如,經再循環)填充。繼續所述實例,在各種實施例中,主機寫入數據經啟用以被引導到熱帶或冷帶中,且經再循環數據經啟用以被弓丨導到熱帶或冷帶中。
[0071]控制處理器經啟用以將一系列的相應映射單元地址、局部存儲器地址及長度轉換成以下各者中的一或多者:待寫入到快閃頁而作為快閃頁的標頭部分的一系列標頭;待寫入到快閃頁而作為快閃頁的用戶數據部分的局部存儲器的循序部分的第一開始地址及第一長度,所述快閃頁的用戶數據部分包括至少一個映射單元的數據的至少一部分;待寫入到後續快閃頁而作為後續快閃頁的用戶數據結尾部分的局部存儲器的循序部分的第二開始地址及第二長度,所述用戶數據結尾部分包括一個映射單元的數據的一部分或為空的;待寫入到快閃頁的零個或零個以上填補字節的數目,其中舉例來說,在用戶數據結尾部分為空且快閃頁不滿的情況下使用填補字節。有利地,控制處理器經啟用以通過重新格式化而簡單地將所述系列的相應映射單元地址、局部存儲器地址及長度轉換成所述系列的標頭並產生將構成快閃頁的部分(所述系列的標頭、先前快閃頁的結尾部分、用戶數據部分及任何填補字節)傳送到非易失性存儲器的小數目個直接存儲器存取(例如,DMA)命令。
[0072]在各種實施例中,任選地及/或選擇性地啟用主機寫入數據的壓縮。在第一實例中,主機寫入命令的信息選擇性地啟用壓縮。在第二實例中,依據主機寫入命令的邏輯塊地址來選擇性地啟用壓縮。在第三實例中,如果主機寫入數據的壓縮未曾減小主機寫入數據的大小,那麼選擇性地停用壓縮。如果不啟用壓縮,那麼主機寫入數據未壓縮地被存儲。根據各種實施例,映射的條目通過以下各者中的一或多者指示對應數據是經壓縮還是未壓縮:映射的每一條目中的相應位 '及/或存儲於每一映射條目中的長度的值。舉例來說,如果映射單元為4KB,那麼映射條目中為4KB的長度指示映射條目的相關聯數據是未壓縮的,而小於4KB的長度指示相關聯數據是經壓縮的。
[0073]在一些實施例中,通過以下操作來使數據再循環:通過選擇待再循環的冗餘塊、以寫入冗餘塊的快閃頁的次序來讀取所述快閃頁、僅僅處理含有快閃頁的標頭的讀取單元、查找映射中為數據標頭的每一標頭的邏輯塊地址(或等效地,映射單元地址)以查看數據是否仍有效,及如果數據仍有效,那麼構造適當的新標頭及DMA命令以將待再循環的數據彙編為快閃頁的部分。接著將新快閃頁寫入到非易失性存儲器。
[0074]參考圖11,其展示讀取非易失性存儲器的流程圖1100的圖解。與未經循序讀取優化的可變大小快閃翻譯層相比,讀取單元內(或快閃頁內)的標頭並不用於提取讀取數據。未經循序讀取優化的可變大小快閃翻譯層及經循序讀取優化的可變大小快閃翻譯層兩者有利地經啟用以存取可變大小數據且僅存取含有所要讀取數據的讀取單元。
[0075]在一些實施例中,響應於從主機接收到包括邏輯塊地址的讀取命令(步驟1110),控制處理器及/或各種硬體單元經啟用以執行以下各者中的一或多者:
[0076]-將邏輯塊地址轉換為映射單元地址(步驟1114);
[0077]-在包括多個映射條目的映射中查找所述映射單元地址以確定映射條目中的相關聯一者(步驟1118);
[0078]-提取相關聯映射條目的相應快閃頁地址(步驟1122)並確定相關聯快閃頁是在快閃頁高速緩衝存儲器中還是從非易失性存儲器讀取(步驟1130);
[0079]從相關聯映射條目提取相應偏移及長度,且根據所述相應偏移及長度,確定(步驟 1126):
[0080]-a待在相關聯快閃頁中存取的多個讀取單元的數目,
[0081]-b.所存取讀取單元的快閃頁內的讀取單元偏移及總讀取單元長度,及
[0082]-C從所存取讀取單元的經解碼版本提取並處理(例如通過解壓縮)與所述映射單元地址相關聯的數據的DMA命令;
[0083]-響應於確定相關聯快閃頁不在快閃頁高速緩衝存儲器中,從非易失性存儲器讀取相關聯快閃頁的所存取讀取單元(步驟1134),並對所存取讀取單元執行錯誤校正解碼(步驟1138)以產生經校正數據;
[0084]-根據相關聯映射條目的相應偏移及長度在經校正數據內提取所述相關聯數據,並將所提取數據解壓縮(步驟1142);及
[0085]-響應於讀取命令而將經解壓縮數據提供到主機(步驟1146)。
[0086]通常,對於隨機讀取,待在相關聯快閃頁中存取以讀取相關聯數據的讀取單元的數目少於相關聯快閃頁中的所有讀取單元。此外,在相關聯數據為可變大小時,針對涉及第一邏輯塊地址的第一讀取命令待在相關聯快閃頁中存取的讀取單元的數目不同於針對涉及第二邏輯塊地址的第二讀取命令待在相關聯快閃頁中存取的讀取單元的數目,所述第二邏輯塊地址不同於所述第一邏輯塊地址。在一些實施例中,從相關聯快閃頁僅僅讀取待在相關聯快閃頁中存取的所述數目個讀取單元。也就是說,為了存取相關聯數據僅讀取所述讀取單元中含有相關聯數據的一部分的讀取單元。
[0087]在一些實施例及/或使用情景中,讀取單元中的特定一者包括與第一邏輯塊地址相關聯的至少一數據部分及與第二不同邏輯塊地址相關聯的至少一數據部分。
[0088]參考圖12,其展示固態驅動器控制器1200的實施例的選定細節的圖解。在一些實施例中,固態驅動器控制器1200經啟用以實施經循序讀取優化的可變大小快閃翻譯層。在各種實施例中,控制器1200可實施為一或多個集成電路。
[0089]如圖12中所圖解說明,主機接口(例如,HIF)經由例如SerDes (例如,串行化-解串行化)的輸入/輸出接收器接收例如讀取及寫入命令的命令、接收寫入數據並發送讀取數據。經由共享存儲器(例如,OpRAM)將命令發送到CPU。CPU解譯所述命令並經由共享存儲器控制SSD控制器的其它部分。舉例來說,CPU經由共享存儲器將DMA命令傳遞到各種數據路徑發射及接收單元(例如主機接收數據路徑(例如,HDRx)或快閃發射數據路徑(例如,FDTx))並從所述數據路徑發射及接收單元接收響應。
[0090]經由主機接收數據路徑(例如,HDRx)將來自主機接口的寫入數據傳送到統一緩衝器(例如,UBUF)。在各種實施例中,主機接收數據路徑包含用以任選地及/或選擇性地壓縮及/或加密主機寫入數據的邏輯。接著經由快閃發射數據路徑(例如,FDTx)及類屬快閃接口(例如,GAFI)將任選地及/或選擇性地經壓縮及/或經加密的主機寫入數據從統一緩衝器發送到非易失性存儲器。在各種實施例中,快閃發射數據路徑包含用以執行加密及/或置亂及/或錯誤校正編碼的邏輯。響應於主機讀取命令,經由類屬快閃接口(例如,GAFI)從非易失性存儲器讀取數據並經由快閃接收數據路徑(例如,FDRx)將所述數據發送到統一緩衝器。在各種實施例中,快閃接收數據路徑併入有錯誤校正解碼及/或解密及/或解置亂。在其它實施例中,單獨錯誤校正解碼器(例如,用以實施LDPC碼的LDPC-D)經啟用以對通過快閃接收數據路徑存儲於統一緩衝器中的「原始」數據進行操作。接著經由主機發射數據路徑(例如,HDTx)將統一緩衝器中的經解碼讀取數據發送到主機接口。在各種實施例中,主機發射數據路徑包含用以任選地及/或選擇性地將經解碼讀取數據解密及/或解壓縮的邏輯。在一些實施例中,類RAID及軟決策處理單元(例如,RASP)經啟用以產生類RAID冗餘以另外保護存儲於非易失性存儲器中的主機寫入數據及/或系統數據及/或執行軟決策處理操作以供與LDPC-D —起使用。
[0091]根據各種實施例,控制處理器的任何操作由一或多個CPU中的任一者、由一或多個硬體單元及/或由前述各者的任何組合執行。舉例來說,對於寫入,將一系列相應映射單元地址、局部存儲器地址及長度轉換成一系列標頭由以與所述系列的標頭的格式相同及/或類似的格式供應所述系列的相應映射單元地址、局部存儲器地址及長度的硬體來援助。
[0092]根據各種實施例,耦合到非易失性存儲器的固態驅動器控制器經啟用以使用以下各者中的一或多者:傳統快閃轉變層;可變大小快閃轉變層;經循序讀取優化的可變大小快閃轉變層;在非易失性存儲器的不同物理部分中前述各者的任何組合;在SSD控制器的邏輯地址空間的不同邏輯部分中前述各者的任何組合;對非易失性存儲器的原始物理存取;及在耦合到SSD控制器的主機的控制下前述各者的任何組合。
[0093]根據各種實施例,主機寫入數據任選地在寫入到非易失性存儲器之前被加密且在從非易失性存儲器讀取之後被解密。在進一步實施例中,加密在壓縮主機寫入數據之後發生,且解密在將正讀取的數據解壓縮以返回到主機之前發生。
[0094]儘管實例性實施例已使用了固態驅動器,但本文中所描述的技術通常適用於其它輸入/輸出裝置及/或數據存儲裝置,例如硬碟驅動器。
[0095]以下是實例性實施例的集合,包含至少一些明確列舉的實例組合(例如,EC),提供根據本文中所描述的概念的多種實施例類型的額外描述;所述實例不意在為相互排斥、窮盡性或限制性的;且本發明不限於這些實例性實施例,而是涵蓋在所發布權利要求書及其等效物的範圍內的所有可能的修改及變化。
[0096]一種方法EC1,其包括:在輸入/輸出裝置處且經由主機到輸入/輸出裝置接口接收從所述輸入/輸出裝置的非易失性存儲器讀取對應於讀取請求的邏輯塊地址的數據的所述讀取請求;及響應於接收到所述讀取請求,讀取映射的多個條目中的特定一者以獲得所述非易失性存儲器的多個頁中的特定一者的物理地址、所述特定頁中到先前響應於寫入對應於所述邏輯塊地址的數據而存儲的經壓縮數據的偏移及所述經壓縮數據以字節計的長度,所述特定映射條目與所述讀取請求的所述邏輯塊地址相關聯;將所述特定頁中到所述經壓縮數據的所述偏移及所述經壓縮數據以字節計的所述長度轉換為所述特定頁中的多個讀取單元中的第一者的地址及待從所述特定頁讀取的所述讀取單元的數目;從所述特定頁僅僅讀取所述數目個讀取單元;對從所述特定頁讀取的所述讀取單元中的每一者執行錯誤校正解碼以獲得經校正數據;根據所述特定頁中到所述經壓縮數據的所述偏移及所述經壓縮數據以字節計的所述長度從所述經校正數據提取所述經壓縮數據;將所述經壓縮數據解壓縮以產生返回數據;及將所述返回數據返回到所述主機。
[0097]—種方法EC2,其包括:在輸入/輸出裝置處且經由主機到輸入/輸出裝置接口接收從所述輸入/輸出裝置的非易失性存儲器讀取對應於讀取請求的邏輯塊地址的數據的所述讀取請求;及響應於接收到所述讀取請求,讀取映射的多個條目中的特定一者以獲得所述非易失性存儲器的多個頁中的特定一者的物理地址、所述特定頁中到先前響應於寫入對應於所述邏輯塊地址的數據而存儲的經壓縮數據的偏移及所述經壓縮數據以字節計的長度,所述特定映射條目與所述讀取請求的所述邏輯塊地址相關聯;將所述特定頁中到所述經壓縮數據的所述偏移及所述經壓縮數據以字節計的所述長度轉換為所述特定頁中的多個讀取單元中的第一者的地址及待從所述特定頁讀取的所述讀取單元的數目;從所述特定頁讀取至少所述數目個讀取單元且少於所述特定頁中的所有所述讀取單元;對從所述特定頁讀取的所述讀取單元中的每一者執行錯誤校正解碼以獲得經校正數據;根據所述特定頁中到所述經壓縮數據的所述偏移及所述經壓縮數據以字節計的所述長度從所述經校正數據提取所述經壓縮數據;將所述經壓縮數據解壓縮以產生返回數據;及將所述返回數據返回到所述主機。
[0098]根據ECl或EC2所述的方法EC3,其中待讀取的所述讀取單元的所述數目少於所述特定頁中的所有所述讀取單元。
[0099]根據ECl或EC2所述的方法EC4,其進一步包括:根據所述特定頁中到所述經壓縮數據的所述偏移以及所述經壓縮數據以字節計的所述長度與所述特定頁中的用戶數據量的組合確定所述經壓縮數據的至少一部分在所述非易失性存儲器的所述頁中的後續一者的一或多個讀取單元中。
[0100]根據EC4所述的方法EC5,其中響應於第二處理節點上的全局冗餘數據的更新,第二處理節點的相應局部冗餘計算單元經啟用以根據全局冗餘數據的更新的數據計算第二冗餘數據以用於存儲於所述第二處理節點的相應磁碟中的至少一些磁碟上。
[0101]根據ECl或EC2所述的方法EC6,其中所述非易失性存儲器的所述頁中的第一者包括第一數目個所述讀取單元,所述非易失性存儲器的所述頁中的第二者包括第二數目個所述讀取單元,且所述第一讀取單元數目不同於所述第二讀取單元數目。
[0102]根據ECl或EC2所述的方法EC7,其中所述非易失性存儲器的所述頁中的第一者包括第一量的用戶數據,所述非易失性存儲器的所述頁中的第二者包括第二量的用戶數據,且第一用戶數據數目不同於所述第二用戶數據量。
[0103]根據ECl或EC2所述的方法EC8,其進一步包括:在所述輸入/輸出裝置處且經由所述主機到輸入/輸出裝置接口接收寫入對應於所述邏輯塊地址的數據的寫入請求;響應於接收到所述寫入請求,壓縮對應於所述邏輯塊地址的所述數據以形成小於對應於所述邏輯塊地址的所述數據的經壓縮寫入數據;將所述經壓縮寫入數據的至少第一部分寫入於所述特定頁中;及將以下各者存儲於所述特定條目中:所述特定頁的所述物理地址,所述特定頁中到所述經壓縮寫入數據的所述偏移,及所述經壓縮寫入數據以字節計的所述長度。
[0104]根據EC8所述的方法EC9,其進一步包括:響應於接收到所述寫入數據的請求,將標頭寫入於所述特定頁中,所述標頭包括所述請求的所述邏輯塊地址的至少一部分及所述經壓縮數據以字節計的長度。
[0105]根據ECl或EC2所述的方法EC10,其中所述邏輯塊地址為多個邏輯塊地址中的第一者,且所述數目個所述讀取單元中的所述讀取單元中的至少一者包含對應於所述邏輯塊地址中的不同一者的至少一些數據。
[0106]根據ECl或EC2所述的方法EC11,其中除所述經壓縮數據的一部分以外,所述數目個讀取單元中的所述讀取單元中的至少一者還包括一或多個標頭。
[0107]一種方法EC12,其包括:在輸入/輸出裝置處且經由主機到輸入/輸出裝置接口接收從所述輸入/輸出裝置的非易失性存儲器讀取對應於讀取請求的邏輯塊地址的數據的所述讀取請求;及響應於接收到所述讀取請求,讀取映射的多個條目中的特定一者以獲得所述非易失性存儲器的多個頁中的特定一者的物理地址、所述特定頁中到先前響應於寫入對應於所述邏輯塊地址的數據而存儲的可變大小數據的偏移及所述可變大小數據以字節計的長度,所述特定映射條目與所述讀取請求的所述邏輯塊地址相關聯;將所述特定頁中到所述可變大小數據的所述偏移及所述可變大小數據以字節計的所述長度轉換為所述特定頁中的多個讀取單元中的第一者的地址及待從所述特定頁讀取的所述讀取單元的數目;從所述特定頁僅僅讀取所述數目個讀取單元;對從所述特定頁讀取的所述讀取單元中的每一者執行錯誤校正解碼以獲得經校正數據;根據所述特定頁中到所述可變大小數據的所述偏移及所述可變大小數據以字節計的所述長度從所述經校正數據提取所述可變大小數據;及將所述經提取數據返回到所述主機。
[0108]根據ECl或EC12所述的方法EC13,其進一步包括:在所述輸入/輸出裝置處且經由所述主機到輸入/輸出裝置接口接收寫入對應於所述邏輯塊地址的可變大小數據的寫入請求;響應於接收到所述寫入請求,將所述可變大小數據的至少第一部分寫入於所述特定頁中;及將以下各者存儲於特定條目中:所述特定頁的所述物理地址,所述特定頁中到所述可變大小數據的所述偏移,及根據所述可變大小數據的大小的所述可變大小數據以字節計的所述長度。
[0109]在一些實施例中,由多節點存儲裝置或其部分(例如硬碟驅動器或經啟用以與處理器(例如CPU)互操作的輸入/輸出裝置的固態磁碟控制器、輸入/輸出控制器(例如RAID晶片上裸片)及處理器的部分、微處理器、系統單晶片、專用集成電路、硬體加速器或提供前述操作的全部或部分的其它電路)執行的操作的全部或部分的各種組合由與計算機系統進行的處理兼容的規範指定。所述規範是根據各種描述,例如硬體描述語言、電路描述、網表描述、掩蔽描述或布局描述。實例性描述包含但不限於:Verilog、VHDL, SPICE、SPICE變體(例如PSpice)、IBIS、LEF、DEF、⑶S-11、OASIS或其它描述。在各種實施例中,處理包含解譯、編譯、模擬及合成的任一組合以產生、驗證或指定適合包含於一或多個集成電路上的邏輯及/或電路。根據各種實施例,每一集成電路可根據多種技術來設計及/或製造。所述技術包含可編程技術(例如,現場或掩蔽可編程門陣列集成電路)、半定製技術(例如,完全或部分地基於單元的集成電路)及全定製技術(例如,實質上專門化的集成電路)、其任何組合或與集成電路的設計及/或製造兼容的任何其它技術。
[0110]在一些實施例中,由其中存儲有指令集的計算機可讀媒體描述的操作的全部或部分的各種組合通過一或多個程序指令的執行及/或解譯、通過一或多個源及/或腳本語言語句的解譯及/或編譯或通過經由編譯、翻譯及/或解譯在程序設計及/或腳本設計語言語句中表達的信息而產生的二進位指令的執行來執行。所述語句與任何標準程序設計或腳本設計語言(例如 C、C++、Fortran、Pascal、Ada、Java、VBscript 及 Shell)兼容。所述程序指令、語言語句或二進位指令中的一或多者任選地存儲於一或多個計算機可讀存儲媒體元件上。在各種實施例中,所述程序指令的一些、全部或各種部分被實現為一或多個函數、例程、子例程、嵌入式例程、程序、宏或其部分。
[0111]已僅出於方便製備文本與圖式的目的而在描述中做出某些選擇,且除非存在對相反內容的指示,否則不應將所述選擇本身視為傳達關於所描述實施例的結構或操作的額外信息。所述選擇的實例包含但不限於:用於圖式編號的標示的特定組織或指派及用於識別及引用實施例的特徵及元件的元件識別符(例如圖說文字或數字標示)的特定組織或指派。
[0112]詞語「包含(includes或including) 」具體地打算被理解為描述開放範圍的邏輯集的抽象詞,且除非明確地後續接著詞語「在…內(within) 」否則不意在表達物理含有。
[0113]儘管已出於清晰描述及理解的目的在一些細節上描述了前述實施例,但本發明不限於所提供的細節。存在本發明的許多實施例。所揭示的實施例為示範性的而非限制性的。
[0114]在構造、布置及使用上的許多變化可能與描述一致,且在所發布的專利的權利要求書的範圍內。舉例來說,根據各種實施例,互連及功能單元位寬度、時鐘速度及所使用技術的類型在每一組件塊中為可變的。賦予互連及邏輯的名稱僅為示範性的,且不應理解為限制所描述的概念。流程圖及流程圖式過程、行動及功能元件根據各種實施例可變。此夕卜,除非明確地陳述為相反,否則所指定的值範圍、所使用的最大及最小值或其它特定規格(例如,輸入/輸出裝置技術類型及寄存器與緩衝器中的條目或級的數目)僅為所描述實施例的規格、預期追蹤實施方案技術的改進及改變且不應被理解為限制。
[0115]可採用此項技術中已知的在功能上等效的技術來代替所描述的技術以實施各種組件、子系統、操作、函數、例程、子例程、嵌入式例程、程序、宏或其部分。依據實施例相依的設計約束及較快處理的技術趨勢(促進先前在硬體中的功能遷移到軟體中)及較高集成密度(促進先前在軟體中的功能遷移到硬體中),實施例的許多功能方面可選擇性地在硬體(例如,通常為專用電路)或軟體(例如,經由某一方式的經編程控制器或處理器)中實現。各種實施例的特定變化包含但不限於:分割差異;不同的形狀因子及配置;不同作業系統及其它系統軟體的使用;不同接口標準、網絡協議或通信鏈路的使用;不同解碼類型的使用;及在根據特定應用的獨特工程及商務約束實施本文中所描述的概念時將預期的其它變化。
[0116]已藉助遠超出所描述實施例的許多方面的最小實施方案所要求的細節及環境上下文來描述了實施例。所屬領域的技術人員將認識到,一些實施例省略所揭示的組件或特徵而不更改剩餘元件當中的基本協作。所揭示的細節中的許多細節並不用於實施所描述的實施例的各種方面。在剩餘元件可與現有技術區分的條件下,所省略的組件及特徵不限制本文中所描述的概念。
[0117]所有此類設計變化是對所描述實施例所表達的教示的非實質性改變。本文中所描述的實施例對其它計算及連網應用具有廣泛的適用性,且不限於所描述實施例的特定應用或行業。因此,本發明應理解為包含囊括於所發布專利的權利要求書的範圍內的所有可能修改及變化。
[0118]由圖1-12的圖式執行的功能可使用以下各者中的一或多者來實施:常規通用處理器、數字計算機、微處理器、微控制器、RISC(精簡指令集計算機)處理器、CISC(複雜指令集計算機)處理器、SMD(單指令多數據)處理器、信號處理器、中央處理單元(CPU)、算術邏輯單元(ALU)、視頻數位訊號處理器(VDSP)及/或根據本說明書的教示編程的類似計算機器,如相關領域的技術人員將明了。熟練的程序設計員基於本發明的教示可容易地製備適當軟體、固件、解碼、例程、指令、操作碼、微碼及/或程序模塊,如相關領域的技術人員也將明了。通常由機器實施方案的處理器中的一或多者從一媒體或數個媒體執行所述軟體。
[0119]本發明還可通過以下各者的製備來實施:ASIC(專用集成電路)、平臺ASIC、FPGA (現場可編程門陣列)、PLD (可編程邏輯裝置)、CPLD (複雜可編程邏輯裝置)、海量的門(sea-of-gate)、RFIC(射頻集成電路)、ASSP(專用標準產品)、一或多個單片集成電路、布置為倒裝晶片模塊及/或多晶片模塊的一或多個晶片或裸片,或通過互連常規組件電路的適當網絡,如本文中所描述,所屬領域的技術人員將容易明了所述常規組件電路的修改。
[0120]因此,本發明還可包含計算機產品,其可為包含可用於編程機器以執行根據本發明的一或多個過程或方法的指令的存儲媒體及/或傳輸媒體。機器對計算機產品中所含有的指令的執行連同周圍電路的操作可將輸入數據變換成存儲媒體上的一或多個文件及/或表示物理對象或資產(例如音頻及/或視覺描繪)的一或多個輸出信號。所述存儲媒體可包含但不限於:任何類型的盤,包含軟盤、硬碟驅動器、磁碟、光碟、⑶-ROM、DVD及磁光碟以及電路,例如R0M(只讀存儲器)、RAM(隨機存取存儲器)、EPR0M(可擦除可編程ROM)、EEPROM(電可擦除可編程ROM)、UVPR0M(紫外可擦除可編程ROM)、快閃記憶體、磁卡、光卡及/或適合於存儲電子指令的任何類型的媒體。
[0121]本發明的要素可形成一或多個裝置、單元、組件、系統、機器及/或設備的部分或全部。所述裝置可包含但不限於:伺服器、工作站、存儲陣列控制器、存儲系統、個人計算機、膝上型計算機、筆記型計算機、掌上型計算機、個人數字助理、可攜式電子裝置、電池供電裝置、機頂盒、編碼器、解碼器、變碼器、壓縮器、解壓縮器、預處理器、後處理器、發射器、接收器、收發器、密碼電路、蜂窩式電話、數位相機、定位及/或導航系統、醫療設備、抬頭顯示器、無線裝置、音頻記錄、音頻存儲及/或音頻回放裝置、視頻記錄、視頻存儲及/或視頻回放裝置、遊戲平臺、外圍設備及/或多晶片模塊。相關領域的技術人員將理解,本發明的要素可在其它類型的裝置中實施以滿足特定應用的準則。
[0122]術語「可」及「通常」在本文中結合「是」及動詞使用時意在傳達描述為示範性且相信足夠廣泛以涵蓋本發明中所呈現的特定實例以及可基於本發明導出的替代實例兩者的意圖。如本文中所使用的術語「可」及「通常」不應理解為一定暗示省略對應要素的期望及可能性。
[0123]儘管已特別地參考本發明的實施例展示並描述了本發明,但所屬領域的技術人員將理解,可在不背離本發明的範圍的情況下做出形式及細節上的各種改變。
【權利要求】
1.一種用於使用可變大小快閃轉變層的方法,其包括以下步驟: (A)在設備處從主機接收從所述設備的非易失性存儲器讀取對應於邏輯塊地址的特定數據的讀取請求; (B)讀取映射中的多個條目中的特定一者以獲得:(i)所述非易失性存儲器的多個頁中的特定一者的物理地址,(?)所述特定頁中到先前響應於寫入對應於所述邏輯塊地址的經壓縮數據而存儲的所述經壓縮數據的偏移,及(iii)所述經壓縮數據的長度,其中所述特定條目與所述邏輯塊地址相關聯; (C)將所述偏移及所述長度轉換為:(i)所述特定頁中的多個讀取單元中的給定一者的地址,及(ii)待從所述特定頁讀取的所述讀取單元的數目 '及 (D)從所述特定頁讀取從所述給定讀取單元開始的至多所述數目個所述讀取單元,其中所述偏移及所述長度的粒度比所述讀取單元中的一者的大小精細。
2.根據權利要求1所述的方法,其進一步包括以下步驟: 對如從所述特定頁讀取的所述讀取單元中的每一者執行錯誤校正解碼以產生經校正數據;及 根據以下兩者從所述經校正數據提取所述經壓縮數據:(i)所述特定頁中到所述經壓縮數據的所述偏移,及(ii)所述經壓縮數據的所述長度。
3.根據權利要求2所述的方法,其進一步包括以下步驟: 將所述經壓縮數據解壓縮以產生返回數據;及 將所述返回數據傳送到所述主機。
4.根據權利要求1所述的方法,其中待讀取的所述讀取單元的所述數目少於所述特定頁中的所有所述讀取單元。
5.根據權利要求1所述的方法,其進一步包括以下步驟: 基於以下兩者而確定所述經壓縮數據的至少一部分在所述非易失性存儲器的所述頁中的後續一者的一或多個後續讀取單元中:(i)所述特定頁中到所述經壓縮數據的所述偏移,及(ii)所述經壓縮數據的所述長度與所述特定頁中的用戶數據量的組合。
6.根據權利要求5所述的方法,其進一步包括以下步驟: 從所述後續頁讀取至多所述一或多個後續讀取單元。
7.根據權利要求1所述的方法,其中:(i)所述非易失性存儲器的所述頁中的第一者包含第一數目個所述讀取單元,(?)所述非易失性存儲器的所述頁中的第二者包含第二數目個所述讀取單元,且(iii)所述第一數目不同於所述第二數目。
8.根據權利要求1所述的方法,其中:(i)所述非易失性存儲器的所述頁中的第一者包含第一量的用戶數據,(?)所述非易失性存儲器的所述頁中的第二者包含第二量的所述用戶數據,且(iii)所述第一量不同於所述第二量。
9.根據權利要求1所述的方法,其進一步包括以下步驟: 接收將所述特定數據寫入於所述非易失性存儲器中的寫入請求; 壓縮所述特定數據以產生小於所述特定數據的所述經壓縮數據; 將所述經壓縮數據的至少一部分寫入於所述特定頁中;及 將以下各者存儲於所述特定條目中:(i)所述特定頁的所述物理地址,(ii)所述特定頁中到所述經壓縮數據的所述偏移,及(iii)所述經壓縮數據的所述長度。
10.根據權利要求9所述的方法,其進一步包括以下步驟: 將包含所述寫入請求的所述邏輯塊地址的至少一部分及所述長度的標頭寫入於所述特定頁中。
11.根據權利要求1所述的方法,其中:(i)所述邏輯塊地址為多個邏輯塊地址中的一者,且(ii)所述數目個所述讀取單元中的所述讀取單元中的至少一者包含對應於所述邏輯塊地址中的不同一者的至少一些不同數據。
12.根據權利要求1所述的方法,其中所述數目個所述讀取單元中的所述讀取單元中的至少一者包含:(i) 一或多個標頭,及(ii)所述經壓縮數據的一部分。
13.—種設備,其包括: 非易失性存儲器 '及 電路,其經配置以:(i)從主機接收從所述非易失性存儲器讀取對應於邏輯塊地址的特定數據的讀取請求;(ii)讀取映射中的多個條目中的特定一者以獲得(a)所述非易失性存儲器的多個頁中的特定一者的物理地址,(b)所述特定頁中到先前響應於寫入對應於所述邏輯塊地址的經壓縮數據而存儲的所述經壓縮數據的偏移,及(c)所述經壓縮數據的長度,其中所述特定條目與所述邏輯塊地址相關聯;(iii)將所述偏移及所述長度轉換為(a)所述特定頁中的多個讀取單元中的給定一者的地址,及(b)待從所述特定頁讀取的所述讀取單元的數目 '及(iv)從所述特定頁讀取從所述給定讀取單元開始的至多所述數目個所述讀取單元,其中所述偏移及所述長度的粒度比所述讀取單元中的一者的大小精細。
14.根據權利要求13所述的設備,其中所述電路進一步經配置以:(i)對如從所述特定頁讀取的所述讀取單元中的每一者執行錯誤校正解碼以產生經校正數據;及(ii)根據以下兩者從所述經校正數據提取所述經壓縮數據:(a)所述特定頁中到所述經壓縮數據的所述偏移,及(b)所述經壓縮數據的所述長度。
15.根據權利要求14所述的設備,其中所述電路進一步經配置以:(i)將所述經壓縮數據解壓縮以產生返回數據;及(ii)將所述返回數據傳送到所述主機。
16.根據權利要求13所述的設備,其中待讀取的所述讀取單元的所述數目少於所述特定頁中的所有所述讀取單元。
17.根據權利要求13所述的設備,其中所述電路進一步經配置以基於以下兩者而確定所述經壓縮數據的至少一部分在所述非易失性存儲器的所述頁中的後續一者的一或多個後續讀取單元中:(i)所述特定頁中到所述經壓縮數據的所述偏移,及(ii)所述經壓縮數據的所述長度與所述特定頁中的用戶數據量的組合。
18.根據權利要求17所述的設備,其中所述電路進一步經配置以從所述後續頁讀取至多所述一或多個後續讀取單元。
19.根據權利要求13所述的設備,其中:(i)所述非易失性存儲器的所述頁中的第一者包含第一數目個所述讀取單元,(?)所述非易失性存儲器的所述頁中的第二者包含第二數目個所述讀取單元,且(iii)所述第一數目不同於所述第二數目。
20.根據權利要求13所述的設備,其中所述設備實施為一或多個集成電路。
【文檔編號】G06F12/08GK104375956SQ201410407145
【公開日】2015年2月25日 申請日期:2014年8月18日 優先權日:2013年8月16日
【發明者】厄爾·T·科恩 申請人:Lsi公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀