TW201523249A - 可變大小快閃轉變層 - Google Patents

可變大小快閃轉變層 Download PDF

Info

Publication number
TW201523249A
TW201523249A TW103127358A TW103127358A TW201523249A TW 201523249 A TW201523249 A TW 201523249A TW 103127358 A TW103127358 A TW 103127358A TW 103127358 A TW103127358 A TW 103127358A TW 201523249 A TW201523249 A TW 201523249A
Authority
TW
Taiwan
Prior art keywords
data
read
page
volatile memory
units
Prior art date
Application number
TW103127358A
Other languages
English (en)
Other versions
TWI609263B (zh
Inventor
Earl T Cohen
Original Assignee
Lsi Corp
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 US14/055,336 external-priority patent/US9495288B2/en
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201523249A publication Critical patent/TW201523249A/zh
Application granted granted Critical
Publication of TWI609263B publication Critical patent/TWI609263B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

本發明揭示一種用於使用一可變大小快閃變換層之方法。步驟(A)接收自一非揮發性記憶體讀取對應於一邏輯區塊位址之資料之一讀取請求。步驟(B)讀取一映射之一特定項目以獲得:(i)該非揮發性記憶體之一特定頁之一實體位址,(ii)該特定頁中至先前儲存之經壓縮資料之一位移,及(iii)該經壓縮資料之一長度。該特定項目與該邏輯區塊位址相關聯。步驟(C)將該位移及該長度轉換為:(i)該特定頁中之一給定讀取單元之一位址,及(ii)欲讀取之該等讀取單元之一數目。步驟(D)自該特定頁讀取自該給定讀取單元開始之至多該數目個該等讀取單元。一位移及長度粒度比一個讀取單元精細。

Description

可變大小快閃轉變層
本申請案與2013年10月9日申請之美國臨時申請案第61/888,681號、2013年8月16日申請之美國臨時申請案第61/866,672號及2013年1月22日申請之美國臨時申請案第61/755,169號相關,該等臨時申請案中之每一者以全文引用的方式併入本文中。
本申請案與2011年3月21日申請之U.S.第13/053,175號(其與2010年3月22日申請之美國臨時申請案第61/316,373號相關)相關,該等申請案中之每一者以全文引用的方式併入本文中。
本申請案亦與具有一國際申請日期2012年10月4日之國際申請案PCT/US2012/058583(其主張2011年10月5日申請之美國臨時申請案第61/543,707號之權益)相關,該等申請案中之每一者以全文引用的方式併入本文中。
本發明一般而言係關於計算主機及輸入/輸出裝置技術,且更特定而言係關於一種用於實施一可變大小快閃變換層之方法及/或設備。
習用固態硬碟在非揮發性記憶體之每一頁中儲存固定整數個主機邏輯區塊。當一使用者資料大小或非揮發性記憶體之每一頁之一可用大小不固定時,會出現儲存效率問題。用於固態硬碟中之可變大小 快閃變換層之架構係硬體密集的。頁標頭用於識別使用者資料儲存在固態硬碟之頁內之多個讀取單元當中何處,且提取資料涉及首先讀取並剖析頁標頭。
本發明係關於一種用於使用一可變大小快閃變換層之方法。步驟(A)接收自一非揮發性記憶體讀取對應於一邏輯區塊位址之資料之一讀取請求。步驟(B)讀取一映射之一特定項目以獲得:(i)該非揮發性記憶體之一特定頁之一實體位址,(ii)該特定頁中至先前儲存之經壓縮資料之一位移,及(iii)該經壓縮資料之一長度。該特定項目與該邏輯區塊位址相關聯。步驟(C)將該位移及該長度轉換為:(i)該特定頁中之一給定讀取單元之一位址,及(ii)欲讀取之讀取單元之一數目。步驟(D)自該特定頁讀取自該給定讀取單元開始之至多該數目個該等讀取單元。一位移及長度粒度比一個讀取單元精細。
100‧‧‧快閃頁
104‧‧‧子頁位址
110‧‧‧位址
111‧‧‧邏輯區塊位址
113‧‧‧子頁
204‧‧‧完整位元組位址
206‧‧‧位元組資料長度
404‧‧‧讀取單元位址
406‧‧‧跨度
500‧‧‧讀取單元
501‧‧‧標頭
510‧‧‧讀取單元
610‧‧‧主標頭
620‧‧‧冗餘區塊標頭
630‧‧‧經緊縮標頭
640‧‧‧連續資料
650‧‧‧經緊縮資料
810‧‧‧資料標頭
820‧‧‧第二層次映射標頭/日誌/檢查點標頭
830‧‧‧時期標頭
840‧‧‧其他類型之標頭
870‧‧‧主標頭
880‧‧‧冗餘區塊標頭
900‧‧‧映射項目
1010‧‧‧映射項目
1020‧‧‧映射項目
1030‧‧‧映射項目位移
1040‧‧‧映射項目位移
1200‧‧‧固態硬碟控制器/控制器
依據以下詳細說明及所附申請專利範圍以及圖式,本發明之實施例將顯而易見,在圖式中:圖1係一邏輯區塊位址至一快閃頁內之固定大小區域之映射之一實施例之選定細節之一圖解說明;圖2係一邏輯區塊位址至視情況橫跨快閃頁之一可變大小區域之映射之一實施例之選定細節之一圖解說明;圖3係包括整數個讀取單元之一快閃頁之一實施例之一圖解說明;圖4係一邏輯區塊位址至橫跨一或多個讀取單元之一可變大小區域之映射之一實施例之選定細節之一圖解說明;圖5係包括標頭及資料之一讀取單元之一實施例之選定細節之一圖解說明; 圖6係包括標頭及資料之一快閃頁之一實施例之選定細節之一圖解說明;圖7係根據本發明之一實施例包括標頭及資料之一快閃頁之一實施例之選定細節之一圖解說明;圖8係各種類型之標頭之一實施例之選定細節之一圖解說明;圖9係一映射項目之一實施例之選定細節之一圖解說明;圖10係各種經壓縮映射項目之一實施例之選定細節之一圖解說明;圖11係讀取一非揮發性記憶體之一流程圖;且圖12係一固態硬碟控制器之一實施例之選定細節之一圖解說明。
本發明之實施例包含提供一種可變大小快閃變換層,該可變大小快閃變換層可:(i)支援一寬廣範圍之資料大小,(ii)藉助一拼貼(tiling)程序創建標頭,(iii)藉助一拆解(un-tiling)程序剖析標頭,(iv)將所有標頭放置於每一頁之一開始處,(v)將所有資料放置於每一頁中之標頭之後,(vi)使用不與讀取單元邊界對準之位移及標頭,及/或(vii)實施為一或多個積體電路及/或相關聯韌體。
本發明可以眾多方式實施,舉例而言,實施為一程序、一製造物件、一設備、一系統、一物質組合物及諸如一電腦可讀儲存媒體之一電腦可讀媒體(例如,一光學及/或磁性大容量儲存裝置中之媒體,諸如一磁碟,具有諸如快閃儲存裝置之非揮發性儲存裝置之一積體電路)或其中經由光學或電子通信鏈路發送程式指令之一電腦網路。詳細說明提供對本發明之達成在上文所識別領域中之成本、獲利性、效能、效率及使用效用之改良之一或多個實施例之一解說。詳細說明包含用以促進對詳細說明之其餘部分之理解之一導論。該導論包含根據 本文中所闡述概念之系統、方法、製造物件及電腦可讀取媒體中之一或多者之實例性實施例。如更詳細地論述,本發明囊括在所發佈申請專利範圍之範疇內之所有可能修改及變化。
快閃轉變層(例如,FTL)將一邏輯區塊位址空間(諸如由一主機用以對一輸入/輸出裝置執行輸入/輸出操作)中之邏輯區塊位址(例如,LBA)映射至一非揮發性記憶體(例如,NVM)(諸如一NAND快閃非揮發性記憶體)中之實體位置。該映射對一或多個邏輯區塊之經對準單元(稱為一映射單元)進行操作,使得每一映射單元具有其中儲存該映射單元之資料之一對應實體位置(若該映射單元從未被寫入或被修整,則包含一NULL實體位置之可能性)。舉例而言,在4千位元組(例如,KB)映射單元之情形下,將八個連續(及通常八區段對準之)串列進階技術附接(例如,SATA)512位元組區段映射為一單個單元。一般而言,諸如一映射之一轉變表具有每映射單元一項目以儲存自與該映射單元相關聯之邏輯區塊位址至非揮發性記憶體中之一實體位址之一各別轉變及/或其他控制資訊。
非揮發性記憶體(諸如NAND快閃記憶體)提供稱為一快閃頁之一可寫入(或可程式化)單元。一快閃頁包括若干個使用者(非錯誤校正碼)資料位元組及用於後設資料及錯誤校正編碼(例如,ECC)之一定量之備用空間,且通常係非揮發性記憶體之一最小可寫入單元。典型快閃頁大小係8KB或16KB或32KB之使用者資料,而典型映射單元大小係4KB或8KB。(儘管關於快閃頁使用術語「使用者」資料,但某些快閃頁儲存諸如映射資料及/或檢查點資料之「系統」資料。使用者資料意欲一般係指一快閃頁之非ECC部分。)快閃頁組織成若干區塊,通常每區塊128、256或512個快閃頁。一區塊係可抹除之最小大小單元,且一快閃頁在該頁抹除之後才能夠被(重新)寫入。
參考圖1,其展示一邏輯區塊位址至一快閃頁內之固定大小區域 之映射之一實施例之選定細節之一圖解說明。傳統快閃變換層假定一快閃頁(例如,快閃頁100)中之使用者資料位元組之一數目係2的一冪(及/或區段大小之一倍數)且將快閃頁劃分成整數個映射單元(每一者在圖1中展示為資料)。舉例而言,在每快閃頁16KB之使用者資料及4KB之映射單元之情形下,每一快閃頁含有四個映射單元,且快閃變換層將每一映射單元之一位址(例如,LBA[M:U]110)映射至一各別快閃頁及各別快閃頁內之四個映射單元中之一者。亦即,每一映射項目含有各別欄位,諸如:flash_page_address[n-1:0]、mapping_unit_within_flash_page[k-1:0],其中flash_page_address係指非揮發性記憶體中之一唯一快閃頁,且mapping_unit_within_flash_page係指每一快閃頁之2k個映射單元大小部分中之一者(k針對整個非揮發性記憶體係固定的)。子頁位址104係flash_page_address與mapping_unit_within_flash_page之一組合。對於基於區段之定址,邏輯區塊位址(例如,LBA[U-1:0]111)之較低階位元規定一子部分,諸如映射單元內之若干個區段(例如,子頁113內之區段)。
參考圖2,其展示一邏輯區塊位址至視情況橫跨快閃頁之一可變大小區域之映射之一實施例之選定細節之一圖解說明。可變大小快閃轉變層(例如,VFTL)概念上將一映射單元之一位址(例如,LBA[M:U]110)映射至一或多個快閃頁之一可變大小區域(舉例而言,此乃因映射單元之資料在儲存於快閃記憶體中之前被壓縮及/或在另一實例中,此乃因映射單元由主機作為可變大小之段來寫入,諸如針對一物件儲存區)。然而,在每一映射項目中提供一完整位元組位址204及位元組資料長度206使得映射項目在與傳統快閃變換層相比時較大。
在某些固態磁碟(例如,SSD)中使用可變大小快閃轉變層。通常已針對其中隨機存取效能約束係總體系統設計中之一驅動因素之較高 端用戶端及/或企業應用設計固態磁碟系統。為針對一低端及/或行動環境組態一可變大小快閃轉變層,可實施改變以針對作為驅動因素之順序效能進行組態。本發明之實施例提供一或多種組織使用者資料及VFTL後設資料以達成其中順序讀取效能係一支配性約束之較廉價且較高效之低端及行動非揮發性記憶體系統之方式。
參考圖3,其展示包括整數個讀取單元之一快閃頁之一實施例之一圖解說明。在某些實施例中,可變大小快閃轉變層藉由映射至一Epage(例如,ECC頁)位址(亦稱為一「讀取單元」位址)而執行自映射單元之位址至實體位址之映射。一Epage(或讀取單元)係可自非揮發性記憶體讀取且藉由用於保護非揮發性記憶體之內容之錯誤校正碼校正之最小資料量。亦即,每一讀取單元含有一定量之資料及保護彼資料之對應ECC檢查位元組。在某些實施例中將一快閃頁(諸如快閃頁100)或在其他實施例中將出於寫入之目的而視為一單元之一快閃頁群組劃分成整數個讀取單元,如圖3中所圖解說明。
在各種實施例中,允許每快閃頁之讀取單元之數目變化。舉例而言,非揮發性記憶體之某些部分使用比其他部分強之錯誤校正碼(使用快閃頁中之較多位元組來進行錯誤校正編碼),且具有較少讀取單元及/或每讀取單元較少可用資料。在另一實例中,在使用非揮發性記憶體時每快閃頁之讀取單元之數目變化,由於程式/抹除循環往往會弱化非揮發性記憶體,因此在較多地使用(磨損)非揮發性記憶體時導致較強錯誤校正碼。
根據各種實施例,所使用之錯誤校正碼係以下各者中之一或多者:一裡德-索羅門(Reed-Solomon)(例如,RS)碼;一博斯-查德胡裡-霍昆格母(Bose Chaudhuri Hocquenghem)(例如,BCH)碼;一渦輪碼;一低密度同位檢查(例如,LDPC)碼;一極性碼;一非二進制碼;一廉價/獨立磁碟冗餘陣列(例如,RAID)碼;一抹除碼;任何其他錯誤 校正碼;前述各者之任何組合,包含合成、串連及交錯。典型碼字大小介於自512個位元組(加ECC位元組)至2176個位元組(加ECC位元組)之範圍內。ECC位元組之典型數目介於自僅數個位元組至數百個位元組之範圍內。
參考圖4,其展示將一邏輯區塊位址映射至橫跨一或多個讀取單元之一可變大小區域之一實施例之選定細節之一圖解說明。在某些實施例中,VFTL映射將一可變大小(例如,經壓縮)映射單元之位址(例如,LBA[M:U]110)映射至在映射之每一項目中表示為一讀取單元位址404及一跨度(讀取單元之一數目)406之若干個讀取單元。由映射項目中之一者參考之讀取單元在一或多個(邏輯上及/或實體上)順序快閃頁中,舉例而言,該若干個讀取單元視情況及/或選擇性地跨越一快閃頁邊界。映射之一項目單獨地通常不足以定位相關聯資料(由於該項目僅參考讀取單元且不參考該資料在讀取單元內之一位置),且使用所參考讀取單元內之進一步資訊(諸如標頭)來精確地定位相關聯資料。
在某些實施例中,以跨越非揮發性記憶體之多個晶粒等量化之一方式將資料寫入至快閃頁中。跨越多個晶粒等量化寫入資料藉由僅將一快閃頁每等量磁碟區一次地寫入至一給定晶粒中而有利地達成較大寫入帶寬。跨越多個晶粒之一區塊等量磁碟區稱為一冗餘區塊,此乃因在進一步實施例及/或使用情景中,使用(舉例而言)一個冗餘晶粒在一冗餘區塊基礎上添加類RAID冗餘。在各種實施例中,非揮發性記憶體之某些區塊係有缺陷的且在寫入時被跳過,以使得等量化偶爾具有其中晶粒中之一者被跳過(而非寫入至一壞區塊之快閃頁中)之「孔」。在此等實施例中,「順序」快閃頁按由寫入快閃頁之一次序判定之一邏輯次序係順序的。
參考圖5,其展示包括標頭及資料之一讀取單元之一實施例之選 定細節之一圖解說明。在各種實施例中,圖4中所圖解說明之映射產生在讀取單元內定位可變大小資料之一準則。如圖5中所圖解說明,每一讀取單元(例如,讀取單元500及510)具有一組標頭501,且通常藉由硬體寫入該等標頭,此乃因可變大小資料被「拼貼」(例如,密集地緊縮而無浪費空間)至一或多個讀取單元中。當讀取非揮發性記憶體時,通常藉由其他硬體來解譯標頭以提取可變大小資料。藉由標頭中具有一匹配之邏輯區塊位址之一者中之一各別相應位移及長度來定位可變大小資料,且資料視情況及/或選擇性地橫跨若干讀取單元(諸如由「資料,開始」及「資料,繼續」所圖解說明之可變大小資料圖解說明)。
在各種實施例中,標頭亦用作再循環(例如,廢棄項目收集)之一部分-在標頭中包含邏輯區塊位址(或等效地,映射單元位址)既達成找出一讀取單元內之可變大小資料又提供一種用以判定何時讀取該等讀取單元中之一特定者、其內之可變大小資料是否仍有效或已被覆寫(藉由在映射中查找邏輯區塊位址且判定該映射是否仍參考特定讀取單元之一實體位址或已更新為參考讀取單元中之另一者)之一方式。
在某些實施例中,用以基於邏輯區塊位址而自讀取單元提取資料之專用硬體經實施以針對隨機讀取以高效率操作。專用硬體剖析一或多個讀取單元內之標頭以找出標頭中具有一給定邏輯區塊位址之一者且然後使用各別長度及位移來提取相關聯可變大小資料。然而,一基於硬體之解決方案係昂貴的(在矽面積及功率方面)。對於其中順序效能比隨機性重要之一低端及/或行動環境,對可變大小快閃轉變層實施改變以減少矽面積、節省功率且達成高順序通量率。
在某些實施例中,一經順序讀取最佳化之可變大小快閃轉變層(例如,SRO-VFTL)將資料拼貼至快閃頁(或在某些實施例中,出於寫入之目的而視為一單元之一快閃頁群組)中,而資料內無用於標頭之 任何間隙-所有標頭皆分組於快閃頁之一個部分中。在進一步實施例中,標頭並不動態地用於存取資料(如在某些可變大小快閃轉變層中),而僅用於再循環及復原。替代地,映射之項目包括用於找出快閃頁內之可變大小(例如,經壓縮)資料之完整資訊。將標頭及資料分離至快閃頁之不同部分中導致僅包括標頭之讀取單元、包括標頭與資料之一混合之讀取單元(但每快閃頁僅一個此讀取單元)及僅包括資料之讀取單元。
儘管針對順序讀取通量以低成本進行組態,但一經順序讀取最佳化之可變大小快閃轉變層能夠按其他度量(諸如每秒之隨機讀取輸入/輸出操作(例如,IOP)、每秒之隨機寫入輸入/輸出操作及順序寫入通量)相當好地表現。然而,對諸如在每一讀取單元中藉助標頭之VFTL式資料拼貼之功能之硬體輔助之移除會對一控制處理器造成一較大負擔。
參考圖6,其展示一SRO-VFTL快閃頁之一第一實施例之一圖解說明。參考圖7,其根據本發明之一實施例展示一SRO-VFTL快閃頁之一第二實施例之一圖解說明。圖6及圖7之實施例之間的一差異係來自一先前快閃頁640之連續資料係在標頭之前還是之後。本發明預期快閃頁內之資料之各種實施例及配置。
根據各種實施例,一快閃頁包括以下各者中之一或多者:
-標頭,其包含一主標頭610、視情況及/或選擇性地一冗餘區塊標頭620(例如,在一冗餘區塊中之每一區塊之第一頁中添加之一標頭)及零個或零個以上額外經緊縮標頭630。每個快閃頁具有跟隨標頭之數目之至少一計數及至資料(與標頭相關聯)在快閃頁中開始之處之一指標。在某些實施例中,標頭可係位元組對準的,但各自僅6個位元組(例如,B)。標頭可包含但不限於資料標頭、時期標頭及填補。資料標頭利用一映射單元位址及一長度。暗示了位移,此乃因所有資 料皆被連續緊縮。
-視情況及/或選擇性地,來自一先前快閃頁之連續資料(一映射單元之可變大小資料之一部分)640。
-用以填充快閃頁之一或多個映射單元之經緊縮(例如,視情況及/或選擇性地經壓縮)資料650,該快閃頁之最後視情況及/或選擇性地在一後續快閃頁中繼續。
-在快閃頁之結束處之選用填補(包含於650中)。在各種實施例中,資料係位元組緊縮的(例如,無孔),但若經高度壓縮(例如,過多標頭),則可能在快閃頁之結束處填補。舉例而言,在以下之情況下使用填補:(i)添加至快閃頁之最後可變大小資料段剩下比一標頭之一大小少之未使用位元組(因此,無法添加一新標頭來開始另一可變大小資料段),及(ii)視情況及/或選擇性地,超過每快閃頁之標頭之一規定數目(因此,儲存於快閃頁中之映射單元之數目由標頭之規定數目而非由映射單元之資料之一大小限制)。
在某些實施例中,關於一經順序讀取最佳化之可變大小快閃轉變層之復原及/或再循環(例如,廢棄項目收集)有利地經啟用以僅讀取及/或錯誤校正及/或檢查快閃頁中之每一者之一標頭部分,而非如在一未經順序讀取最佳化之可變大小快閃轉變層中讀取及/或錯誤校正及/或檢查每個讀取單元。若再循環判定可重寫一快閃頁之資料,則亦可讀取該資料且亦可對其進行錯誤校正。在某些實施例中,讀取一整個快閃頁以進行再循環,但僅對標頭部分進行錯誤校正直至做出應使快閃頁中之某些資料再循環之一判定為止。
在各種實施例中,每快閃頁之標頭之一數目經限制以約束每快閃頁之可讀取之讀取單元之一數目,從而確保已自非揮發性記憶體讀取所有標頭。在圖6之實施例中,僅讀取足以容納最大數目個標頭之若干個讀取單元。在圖7之實施例中,讀取額外數目個讀取單元以考 量來自一先前快閃頁之結尾之資料之一最大大小(例如,連續資料640)。然而,圖7之實施例使得能夠自相關聯映射項目判定用以存取來自一先前快閃頁之資料結尾之讀取單元之一數目,此乃因資料結尾中之位元組之數目可基於相關聯映射項目之各別位移及長度以及先前快閃頁中之使用者(非錯誤校正碼)資料之位元組之數目而判定。此外,在資料結尾之前之僅有標頭係選用冗餘區塊標頭(僅存在於已知快閃頁中,諸如每一區塊中之第一頁)及主標頭(始終存在於每一快閃頁中)。在圖6之實施例中,為在不必兩次存取非揮發性記憶體之情形下讀取資料之結尾,假定存在最大數目個標頭(或讀取整個快閃頁)。
在某些實施例中,經順序讀取最佳化之可變大小快閃轉變層使用具有複數個映射項目之一單層次映射。在其他實施例中,經順序讀取最佳化之可變大小快閃轉變層使用一多層次映射,諸如一個兩層次映射,其具有指向第二層次映射(例如,SLM)頁之一第一層次映射(例如,FLM),其中該等第二層次映射頁中之每一者包括複數個分葉層次映射項目。在進一步實施例中,多層次映射具有兩個以上層次,諸如三個層次。在某些實施例及/或使用情景中,一多層次映射之使用使得能夠僅將映射之一相關(例如,在使用中)部分儲存(例如,快取)於局部(例如,晶片上)記憶體中,從而減少維持映射之一成本。舉例而言,若典型使用型樣具有在任何時間點處作用之1吉位元組(例如,GB)之邏輯區塊位址空間,則為快速存取僅局部地儲存映射之足以存取邏輯區塊位址空間之作用之1GB部分之一部分,而非將其儲存於非揮發性記憶體中。在邏輯區塊位址空間之作用部分之外之參考自非揮發性記憶體提取多層次映射之一或多個層次之所請求部分,從而視情況及/或選擇性地替換映射之其他局部儲存之部分。
分葉層次映射項目中之每一者與複數個映射單元中之一者之一位址相關聯(相對應)。將一邏輯區塊位址轉換為一映射單元位址,諸 如藉由移除邏輯區塊位址之零個或零個以上最低有效位元(例如,LSB)及/或出於對準目的而添加一常數至邏輯區塊位址,且在映射中查找映射單元位址以判定該映射之一對應項目。
參考圖8,其展示各種類型之標頭之一實施例之細節之一圖解說明。在圖8之實例中,標頭已經格式化以各自裝入六個位元組。根據各種實施例,各種類型之標頭係以下各項中之一或多者:全部為一相同大小;視情況及/或選擇性地為不同大小;各自包括規定標頭之一大小之一各別欄位;大小在不同快閃頁中變化;及前述各者之任何組合。
根據各種實施例,快閃頁中之標頭包括以下各者中之一或多者:
-資料標頭(810),其指示與一可變大小資料部分相關聯之資訊。在某些實施例中,與一資料標頭相關聯之資料在與該資料標頭出現之快閃頁相同之一快閃頁中開始。在進一步實施例及/或使用情景中,若一快閃頁僅具有用於一資料標頭之剩餘空間,則所有相關聯資料在一後續快閃頁中開始。
-映射標頭,諸如第二層次映射(例如,SLM)標頭(820)。第二層次映射標頭包括用以指示(諸如針對第二層次映射再循環及/或復原)正儲存哪一第二層次映射頁之一第一層次映射索引(例如,FLMI)。
日誌/檢查點標頭(820)。日誌/檢查點標頭指示用於再循環、復原、錯誤處置、除錯或其他特殊條件之資料。
-時期標頭(830)用作復原之一部分以使資料與對應映射/檢查點資訊相關聯。通常,每快閃頁存在至少一個時期標頭。
-主標頭(870)每快閃頁使用一次以提供關於快閃頁中之標頭之一數目及非標頭資料在快閃頁內之何處開始之資訊。各種技術判定非標頭資料之一開始,諸如在圖6及圖7之實施例中所圖解說明。
-在特定快閃頁(諸如一冗餘區塊中之每一區塊中之第一快閃頁)中使用冗餘區塊標頭(880)。
-其他類型之標頭(840),諸如填補標頭、支援較大長度之檢查點標頭等。
在某些實施例中,某些標頭包括用以提供標頭之多個子類型之一TYPE欄位。在各種實施例中,某些標頭包括含有與標頭相關聯之資料之一長度之一LEN(長度)欄位。在其他實施例中,並非一LEN欄位,某些標頭包括含有至與標頭相關聯之資料之結束之一位移(在快閃頁內)之一OFFSET(位移)欄位(未展示)。(若可變大小資料段中之最後一者橫跨一快閃頁,則OFFSET係在一後續快閃頁內之一位移或後續快閃頁內之位元組之一數目。)通常僅實施一LEN欄位或一OFFSET欄位中之一者,此乃因在可變大小資料段經緊縮而無浪費空間之情形下,一快閃頁中之可變大小資料段中之每一者之開始位置及結束位置由快閃頁中之第一可變大小資料段之開始位置(例如,緊接在標頭之後,如在圖7中)及LEN或OFFSET欄位之列表暗示。
參考圖9,其展示一映射項目900之一實施例之選定細節之一圖解說明。根據各種實施例,映射之項目包括以下各項中之一或多者:-一實體快閃頁位址,-快閃頁內至一可變大小資料項之一位移,-可變大小資料項之一長度,及-其他控制資訊。
在某些實施例中,對長度進行編碼(舉例而言,藉由位移)以使得係零之一值對應於一規定最小長度。在進一步實施例中,將壓縮至小於規定最小長度之資料填補至至少規定最小長度之大小。
在各種實施例中,SRO-VFTL映射項目大於VFTL映射項目,此乃因SRO-VFTL映射項目儲存對應資料之一全位移及位元組長度。因 此,減小映射項目在儲存於非揮發性記憶體中時之一大小可係優點。在典型使用中,通常至少以某一粒度及/或大於1之順序映射單元之一平均數目順序地讀取及寫入資料,且利用寫入之順序性質之一映射項目壓縮格式之實施係相對廉價的且產生一高映射壓縮率。藉由使順序寫入之資料進入至相同快閃頁中直至跨越一快閃頁邊界為止來進一步輔助映射項目之壓縮。
參考圖10,其展示各種經壓縮映射項目之一實施例之選定細節之一圖解說明。該等各種映射項目包含未壓縮(1010)、具有與一先前映射項目相同之一快閃頁位址(1020)、具有與先前映射項目相同之一快閃頁位址且在先前資料結束之一位移處開始(1030),及具有與先前映射項目相同之一快閃頁位址、在先前資料結束之一位移處開始且具有與先前映射項目相同之一長度(1040)。
在具有一多層次映射之某些實施例中,維持較低層次(諸如分葉層次)映射頁之一快取記憶體。經快取映射頁呈一未壓縮形式,從而提供由處理器進行之快速存取。當映射頁移動(諸如自非揮發性記憶體或動態隨機存取記憶體(例如,DRAM))至快取記憶體中時,該映射頁係未壓縮的。當自快取記憶體清除映射頁(諸如由於被修改)時,壓縮映射頁以用於儲存(諸如儲存於非揮發性記憶體中)。根據其中使用DRAM以藉由將映射頁中之某些或全部儲存於動態隨機存取記憶體中而減少延時之各種實施例,以如下形式中之一或多者來儲存動態隨機存取記憶體中之映射頁:經壓縮形式;未壓縮形式;一選擇性地經壓縮或未壓縮形式;及藉助用於存取動態隨機存取記憶體中之映射頁之經壓縮版本之一間接表。
在某些實施例中,在一主機寫入命令之主機寫入資料到達時視情況及/或選擇性地壓縮該主機寫入資料,並將其以一類先進先出(例如,FIFO)之方式儲存於一局部(諸如一晶片上)記憶體中。舉例而 言,在某些實施例中,將主機寫入資料連同韌體資料結構、快閃統計、映射之部分(諸如保存映射之一或多個頁之一快取記憶體)、來自非揮發性記憶體之讀取資料(包含再循環讀取資料)、欲寫入至非揮發性記憶體之資料之標頭、韌體碼及其他使用一起儲存於一統一緩衝器(例如,圖12中之UBUF)中。在其他實施例中,針對固態硬碟之各種局部儲存準則使用一或多個專用記憶體。
關於自主機到達之資料之每一映射單元,向固態硬碟之一控制處理器(例如,圖12中之中央處理單元CPU)通知以下各項中之一或多者:一各別映射單元位址、一各別局部記憶體位址及/或可變大小(例如,經壓縮)主機資料之每一映射單元之一各別長度。控制處理器經啟用以判定快閃頁之一寫入次序及快閃頁中之每一者中可用之非ECC位元組之一總數目。根據快閃頁中之一給定者中可用之非ECC位元組之總數目,控制處理器經啟用以判定放置於該給定快閃頁中之一標頭量及一資料量。舉例而言,控制處理器累加給定快閃頁之標頭(且追蹤迄今為止所使用標頭之位元組之一數目),且一次一個地將映射單元之可變大小資料及標頭添加至給定快閃頁,直至該給定快閃頁係滿的。當給定快閃頁係滿時,添加至給定快閃頁之映射單元中之一最終者之資料之一最後部分可能未裝入於給定快閃頁中且用作快閃頁中之一後續者之一資料結尾部分,從而減少後續快閃頁中可用之非ECC位元組之總數目,以用於新標頭及資料。
在一特定時間點處,一或多個快閃頁經啟用以用主機寫入資料填充且一或多個快閃頁經啟用以用經再循環資料填充。舉例而言,可填充至少兩個帶(例如,類FIFO系列之冗餘區塊),一個帶用「熱」資料(例如,剛自主機而來)填充且另一帶用「冷」資料(例如,經再循環)填充。繼續該實例,在各種實施例中,主機寫入資料經啟用以被引導至熱帶或冷帶中,且經再循環資料經啟用以被引導至熱帶或冷帶 中。
控制處理器經啟用以將一系列各別映射單元位址、局部記憶體位址及長度轉換成以下各者中之一或多者:欲寫入至一快閃頁而作為快閃頁之一標頭部分之一系列標頭;欲寫入至快閃頁而作為快閃頁之一使用者資料部分之局部記憶體之一順序部分之一第一開始位址及一第一長度,該快閃頁之使用者資料部分包括至少一個映射單元之資料之至少一部分;欲寫入至一後續快閃頁而作為後續快閃頁之一使用者資料結尾部分之局部記憶體之一順序部分之一第二開始位址及一第二長度,該使用者資料結尾部分包括一個映射單元之資料之一部分或係空的;欲寫入至快閃頁之零個或零個以上填補位元組之一數目,其中舉例而言,在使用者資料結尾部分係空且快閃頁不滿之情況下使用填補位元組。有利地,控制處理器經啟用以藉由重新格式化而簡單地將該系列之各別映射單元位址、局部記憶體位址及長度轉換成該系列之標頭且產生將包括快閃頁之部分(該系列之標頭、一先前快閃頁之一結尾部分、使用者資料部分及任何填補位元組)傳送至非揮發性記憶體之小數目個直接記憶體存取(例如,DMA)命令。
在各種實施例中,視情況及/或選擇性地啟用主機寫入資料之壓縮。在一第一實例中,主機寫入命令之資訊選擇性地啟用壓縮。在一第二實例中,依據主機寫入命令之一邏輯區塊位址來選擇性地啟用壓縮。在一第三實例中,若主機寫入資料之壓縮未曾減小主機寫入資料之一大小,則選擇性地停用壓縮。若不啟用壓縮,則主機寫入資料未壓縮地被儲存。根據各種實施例,映射之項目藉由以下各項中之一或多者指示對應資料是否經壓縮或未壓縮:映射之每一項目中之一各別位元;及/或儲存於每一映射項目中之長度之一值。舉例而言,若映射單元係4KB,則一映射項目中係4KB之一長度指示映射項目之相關聯資料係未壓縮的,而小於4KB之一長度指示相關聯資料係經壓 縮的。
在某些實施例中,藉由以下操作來使資料再循環:藉由選擇欲再循環之一冗餘區塊、以寫入冗餘區塊之快閃頁之一次序來讀取快閃頁、僅僅處理含有快閃頁之標頭之讀取單元、查找映射中係一資料標頭之每一標頭之一邏輯區塊位址(或等效地,一映射單元位址)以查看資料是否仍有效,且若資料仍有效,則建構適當新標頭及DMA命令以將欲再循環之資料組譯為一新快閃頁之一部分。然後將新快閃頁寫入至非揮發性記憶體。
參考圖11,其展示讀取一非揮發性記憶體之一流程圖1100之一圖解說明。與未經順序讀取最佳化之可變大小快閃轉變層相比,讀取單元內(或快閃頁內)之標頭並不用於提取讀取資料。未經順序讀取最佳化之可變大小快閃轉變層及經順序讀取最佳化之可變大小快閃轉變層兩者有利地經啟用以存取可變大小資料且僅存取含有所要讀取資料之讀取單元。
在某些實施例中,回應於自主機接收到包括一邏輯區塊位址之一讀取命令(步驟1110),控制處理器及/或各種硬體單元經啟用以執行以下各者中之一或多者:-將邏輯區塊位址轉換為一映射單元位址(步驟1114);-在包括複數個映射項目之一映射中查找該映射單元位址以判定映射項目中之一相關聯者(步驟1118);-提取相關聯映射項目之一各別快閃頁位址(步驟1122)且判定相關聯快閃頁是否在一快閃頁快取記憶體中或自非揮發性記憶體讀取(步驟1130);-自相關聯映射項目提取一各別位移及長度,且根據各別位移及長度,判定(步驟1126):-a.欲在相關聯快閃頁中存取之複數個讀取單元之數目, -b.所存取讀取單元之快閃頁內之一讀取單元位移及總讀取單元長度,及-c.自所存取讀取單元之經解碼版本提取且處理(諸如藉由解壓縮)與該映射單元位址相關聯之資料之一DMA命令;-回應於判定相關聯快閃頁不在快閃頁快取記憶體中,自非揮發性記憶體讀取相關聯快閃頁之所存取讀取單元(步驟1134),且對所存取讀取單元執行錯誤校正解碼(步驟1138)以產生經校正資料;-根據相關聯映射項目之各別位移及長度在經校正資料內提取該相關聯資料,且將所提取資料解壓縮(步驟1142);及-回應於讀取命令而將經解壓縮資料提供至主機(步驟1146)。
通常,對於隨機讀取,欲在相關聯快閃頁中存取以讀取相關聯資料之讀取單元之數目少於相關聯快閃頁中之所有讀取單元。此外,在相關聯資料係可變大小時,針對參考一第一邏輯區塊位址之一第一讀取命令欲在相關聯快閃頁中存取之讀取單元之一數目不同於針對參考一第二邏輯區塊位址之一第二讀取命令欲在相關聯快閃頁中存取之讀取單元之一數目,該第二邏輯區塊位址不同於該第一邏輯區塊位址。在某些實施例中,自相關聯快閃頁僅僅讀取欲在相關聯快閃頁中存取之該數目個讀取單元。亦即,為存取相關聯資料僅讀取該等讀取單元中含有相關聯資料之一部分之讀取單元。
在某些實施例及/或使用情景中,讀取單元中之一特定者包括與一第一邏輯區塊位址相關聯之資料之至少一部分及與一第二不同邏輯區塊位址相關聯之資料之至少一部分。
參考圖12,其展示一固態硬碟控制器1200之一實施例之選定細節之一圖解說明。在某些實施例中,固態硬碟控制器1200經啟用以實施一經順序讀取最佳化之可變大小快閃轉變層。在各種實施例中,控制器1200可實施為一或多個積體電路。
如圖12中所圖解說明,一主機介面(例如,HIF)經由諸如一SerDes(例如,串列化-還原串列化)之一輸入/輸出接收器接收諸如讀取及寫入命令之命令、接收寫入資料且發送讀取資料。經由一共用記憶體(例如,OpRAM)將命令發送至一CPU。CPU解譯該等命令且經由共用記憶體控制SSD控制器之其他部分。舉例而言,CPU經由共用記憶體將DMA命令傳遞至各種資料路徑傳輸及接收單元(諸如主機接收資料路徑(例如,HDRx)或快閃傳輸資料路徑(例如,FDTx))且自該等資料路徑傳輸及接收單元接收回應。
經由一主機接收資料路徑(例如,HDRx)將來自主機介面之寫入資料傳送至一統一緩衝器(例如,UBUF)。在各種實施例中,主機接收資料路徑包含用以視情況及/或選擇性地壓縮及/或加密主機寫入資料之邏輯。然後經由一快閃傳輸資料路徑(例如,FDTx)及一泛用快閃介面(例如,GAFI)將視情況及/或選擇性地經壓縮及/或經加密之主機寫入資料自統一緩衝器發送至非揮發性記憶體。在各種實施例中,快閃傳輸資料路徑包含用以執行加密及/或加擾碼及/或錯誤校正編碼之邏輯。回應於主機讀取命令,經由泛用快閃介面(例如,GAFI)自非揮發性記憶體讀取資料且經由一快閃接收資料路徑(例如,FDRx)將該資料發送至統一緩衝器。在各種實施例中,快閃接收資料路徑併入有錯誤校正解碼及/或解密及/或解擾碼。在其他實施例中,一單獨錯誤校正解碼器(例如,用以實施LDPC碼之LDPC-D)經啟用以對藉由快閃接收資料路徑儲存於統一緩衝器中之「原始」資料進行操作。然後經由一主機傳輸資料路徑(例如,HDTx)將統一緩衝器中之經解碼讀取資料發送至主機介面。在各種實施例中,主機傳輸資料路徑包含用以視情況及/或選擇性地將經解碼讀取資料解密及/或解壓縮之邏輯。在某些實施例中,一類RAID及軟決策處理單元(例如,RASP)經啟用以產生類RAID冗餘以額外保護儲存於非揮發性記憶體中之主機寫入資料 及/或系統資料及/或執行軟決策處理操作以供與LDPC-D一起使用。
根據各種實施例,控制處理器之任何操作由一或多個CPU中之任一者、由一或多個硬體單元及/或由前述各者之任何組合執行。舉例而言,對於寫入,將一系列各別映射單元位址、局部記憶體位址及長度轉換成一系列標頭由以與該系列之標頭之一格式相同及/或類似之一格式供應該系列之各別映射單元位址、局部記憶體位址及長度之硬體來輔助。
根據各種實施例,耦合至一非揮發性記憶體之一固態硬碟控制器經啟用以使用以下各者中之一或多者:一傳統快閃變換層;一可變大小快閃變換層;一經順序讀取最佳化之可變大小快閃變換層;在非揮發性記憶體之不同實體部分中前述各者之任何組合;在SSD控制器之一邏輯位址空間之不同邏輯部分中前述各者之任何組合;對非揮發性記憶體之原始實體存取;及在耦合至SSD控制器之一主機之控制下前述各者之任何組合。
根據各種實施例,主機寫入資料視情況在寫入至非揮發性記憶體之前被加密且在自非揮發性記憶體讀取之後被解密。在進一步實施例中,加密在壓縮主機寫入資料之後發生,且解密在將正讀取之資料解壓縮以傳回至主機之前發生。
儘管實例性實施例已使用固態硬碟,但本文中所闡述之技術通常適用於其他輸入/輸出裝置及/或資料儲存裝置,諸如硬碟機。
以下係實例性實施例之一集合,包含至少某些明確列舉之實例組合(例如,EC),提供根據本文中所闡述之概念之多種實施例類型之額外說明;實例不意在係相互排斥、窮盡性或限制性的;且本發明不限於此等實例性實施例,而是囊括在所發佈申請專利範圍及其等效物之範疇內之所有可能修改及變化。
一種方法EC1,其包括:在一輸入/輸出裝置處且經由一主機至 輸入/輸出裝置介面接收自該輸入/輸出裝置之非揮發性記憶體讀取對應於讀取請求之一邏輯區塊位址之資料之一讀取請求;及回應於接收到該讀取請求,讀取一映射之複數個項目中之一特定者以獲得該非揮發性記憶體之複數個頁中之一特定者之一實體位址、該特定頁中至先前回應於寫入對應於該邏輯區塊位址之資料而儲存之經壓縮資料之一位移及該經壓縮資料以位元組計之一長度,該特定映射項目與該讀取請求之該邏輯區塊位址相關聯;將該特定頁中至該經壓縮資料之該位移及該經壓縮資料以位元組計之該長度轉換為該特定頁中之複數個讀取單元中之一第一者之一位址及欲自該特定頁讀取之該等讀取單元之一數目;自該特定頁僅僅讀取該數目個讀取單元;對自該特定頁讀取之該等讀取單元中之每一者執行錯誤校正解碼以獲得經校正資料;根據該特定頁中至該經壓縮資料之該位移及該經壓縮資料以位元組計之該長度自該經校正資料提取該經壓縮資料;將該經壓縮資料解壓縮以產生傳回資料;及將該傳回資料傳回至該主機。
一種方法EC2,其包括:在一輸入/輸出裝置處且經由一主機至輸入/輸出裝置介面接收自該輸入/輸出裝置之非揮發性記憶體讀取對應於讀取請求之一邏輯區塊位址之資料之一讀取請求;及回應於接收到該讀取請求,讀取一映射之複數個項目中之一特定者以獲得該非揮發性記憶體之複數個頁中之一特定者之一實體位址、該特定頁中至先前回應於寫入對應於該邏輯區塊位址之資料而儲存之經壓縮資料之一位移及該經壓縮資料以位元組計之一長度,該特定映射項目與該讀取請求之該邏輯區塊位址相關聯;將該特定頁中至該經壓縮資料之該位移及該經壓縮資料以位元組計之該長度轉換為該特定頁中之複數個讀取單元中之一第一者之一位址及欲自該特定頁讀取之該等讀取單元之一數目;自該特定頁讀取至少該數目個讀取單元且少於該特定頁中之所有讀取單元;對自該特定頁讀取之該等讀取單元中之每一者執行錯 誤校正解碼以獲得經校正資料;根據該特定頁中至該經壓縮資料之該位移及該經壓縮資料以位元組計之該長度自該經校正資料提取該經壓縮資料;將該經壓縮資料解壓縮以產生傳回資料;及將該傳回資料傳回至該主機。
如EC1或EC2之方法EC3,其中欲讀取之該等讀取單元之該數目少於該特定頁中之所有該等讀取單元。
如EC1或EC2之方法EC4,其進一步包括:根據該特定頁中至該經壓縮資料之該位移及該經壓縮資料以位元組計之該長度與該特定頁中之一使用者資料量之組合判定該經壓縮資料之至少一部分在該非揮發性記憶體之該等頁中之一後續者之一或多個讀取單元中。
如EC4之方法EC5,其中回應於第二處理節點上之全域冗餘資料之更新,該第二處理節點之各別局部冗餘計算單元經啟用以根據該全域冗餘資料之該更新之資料計算第二冗餘資料以用於儲存於該第二處理節點之各別磁碟中之至少某些磁碟上。
如EC1或EC2之方法EC6,其中該非揮發性記憶體之該等頁中之一第一者包括第一數目個讀取單元,該非揮發性記憶體之該等頁中之一第二者包括第二數目個讀取單元,且該第一讀取單元數目不同於該第二讀取單元數目。
如EC1或EC2之方法EC7,其中該非揮發性記憶體之該等頁中之一第一者包括第一量之使用者資料,該非揮發性記憶體之該等頁中之一第二者包括第二量之使用者資料,且該第一使用者資料數目不同於該第二使用者資料量。
如EC1或EC2之方法EC8,其進一步包括:在該輸入/輸出裝置處且經由該主機至輸入/輸出裝置介面接收寫入對應於該邏輯區塊位址之資料之一寫入請求;回應於接收到該寫入請求,壓縮對應於該邏輯區塊位址之該資料以形成小於對應於該邏輯區塊位址之該資料之經壓 縮寫入資料;將該經壓縮寫入資料之至少一第一部分寫入於該特定頁中;及將以下各者儲存於該特定項目中:該特定頁之該實體位址,該特定頁中至該經壓縮寫入資料之該位移,及該經壓縮寫入資料以位元組計之該長度。
如EC8之方法EC9,其進一步包括:回應於接收至寫入資料之該請求,將一標頭寫入於該特定頁中,該標頭包括該請求之該邏輯區塊位址之至少一部分及該經壓縮資料以位元組計之一長度。
如EC1或EC2之方法EC10,其中該邏輯區塊位址係複數個邏輯區塊位址中之一第一者,且該數目個讀取單元中之該等讀取單元中之至少一者包括對應於該等邏輯區塊位址中之一不同者之至少某些資料。
如EC1或EC2之方法EC11,其中除該經壓縮資料之一部分之外,該數目個讀取單元中之該等讀取單元中之至少一者亦包括一或多個標頭。
一種方法EC12,其包括:在一輸入/輸出裝置處且經由一主機至輸入/輸出裝置介面接收自該輸入/輸出裝置之非揮發性記憶體讀取對應於讀取請求之一邏輯區塊位址之資料之一讀取請求;及回應於接收到該讀取請求,讀取一映射之複數個項目中之一特定者以獲得該非揮發性記憶體之複數個頁中之一特定者之一實體位址、該特定頁中至先前回應於寫入對應於該邏輯區塊位址之資料而儲存之可變大小資料之一位移及該可變大小資料以位元組計之一長度,該特定映射項目與該讀取請求之該邏輯區塊位址相關聯;將該特定頁中至該可變大小資料之該位移及該可變大小資料以位元組計之該長度轉換為該特定頁中之複數個讀取單元中之一第一者之一位址及欲自該特定頁讀取之該等讀取單元之一數目;自該特定頁僅僅讀取該數目個讀取單元;對自該特定頁讀取之該等讀取單元中之每一者執行錯誤校正解碼以獲得經校正資料;根據該特定頁中至該可變大小資料之該位移及該可變大小資料 以位元組計之該長度自該經校正資料提取該可變大小資料;及將該經提取資料傳回至該主機。
如EC1或EC22之方法EC13,其進一步包括:在該輸入/輸出裝置處且經由該主機至輸入/輸出裝置介面接收寫入對應於該邏輯區塊位址及該可變大小資料之一大小之可變大小資料之一寫入請求;回應於接收到該寫入請求,將該可變大小資料之至少一第一部分寫入於該特定頁中;及將以下各者儲存於該特定項目中:該特定頁之該實體位址,該特定頁中至該可變大小資料之該位移,及根據該可變大小資料之該大小之該可變大小資料以位元組計之該長度。
在某些實施例中,由一多節點儲存裝置或其部分(例如一硬碟機或經啟用以與一處理器(諸如一CPU)互操作之一輸入/輸出裝置之一固態磁碟控制器、一輸入/輸出控制器(諸如一RAID晶片上晶粒)及一處理器之部分、微處理器、系統單晶片、特殊應用積體電路、硬體加速器或提供前述操作之全部或部分之其他電路)執行之操作之全部或部分之各種組合由與一電腦系統進行之處理相容之一規範來規定。該規範係根據各種描述,諸如硬體描述語言、電路描述、網路連線表描述、遮罩描述或佈局描述。實例性描述包含但不限於:Verilog、VHDL、SPICE、SPICE變體(諸如PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各種實施例中,處理包含解譯、編譯、模擬及合成之任何組合以產生、驗證或規定適合包含於一或多個積體電路上之邏輯及/或電路。根據各種實施例,每一積體電路可根據各種技術來設計及/或製造。該等技術包含一可程式化技術(諸如一場或遮罩可程式化閘陣列積體電路)、一半定製技術(諸如一完全或部分地基於單元之積體電路)及一全定製技術(諸如一實質上專門化之一積體電路)、其任何組合或與積體電路之設計及/或製造相容之任何其他技術。
在某些實施例中,由其中儲存有一指令集之一電腦可讀取媒體闡述之操作之全部或部分之各種組合藉由一或多個程式指令之執行及/或解譯、藉由一或多個源及/或指令碼語言陳述式之解譯及/或編譯或藉由由編譯、轉譯及/或解譯在程式設計及/或指令碼語言陳述式中表達之資訊而產生之二進制指令之執行來執行。該等陳述式與任何標準程式設計或指令碼語言(諸如C、C++、Fortran、Pascal、Ada、Java、VBscript及Shell)相容。程式指令、語言陳述式或二進制指令中之一或多者視情況儲存於一或多個電腦可讀取儲存媒體元件上。在各種實施例中,程式指令之某些、全部或各種部分被實現為一或多個函數、常式、次常式、內嵌常式、程序、巨集或其部分。
已僅出於方便準備文字及圖式之目的而在說明中做出特定選擇,且除非存在對相反內容之一指示,否則不應將該等選擇本身解釋為傳達關於所闡述實施例之結構或操作之額外資訊。選擇之實例包含但不限於:用於圖編號之標示之特定組織或指派及用於識別及參考實施例之特徵及元件之元件識別符(例如,圖說文字或數字標示符)之特定組織或指派。
詞語「包含(includes或including)」具體地意欲被解釋為闡述開放式範疇之邏輯集之抽象詞,且除非明確地後續接著詞語「在…內(within)」否則不意在傳達實體含有。
儘管已出於清晰說明及理解之目的在某些細節上闡述了前述實施例,但本發明不限於所提供之細節。存在本發明之諸多實施例。所揭示之實施例係例示性而非限制性的。
在建構、配置及使用中之諸多變化可能與說明一致,且在所發佈專利之申請專利範圍之範疇內。舉例而言,根據各種實施例,互連及功能單元位元寬度、時脈速度及所使用技術之類型在每一組件區塊中係可變的。賦予互連及邏輯之名稱僅係例示性的,且不應解釋為限 制所闡述之概念。流程圖及流程圖式程序、動作及功能元件根據各種實施例可變。此外,除非明確地陳述為相反,否則所規定之值範圍、所使用之最大及最小值或其他特定規格(諸如輸入/輸出裝置技術類型及暫存器及緩衝器中之項目或級之數目)僅係所闡述實施例之規格、預期追蹤實施方案技術中之改良及改變且不應被解釋為限制。
可採用此項技術中已知之在功能上等效之技術來代替所闡述之技術以實施各種組件、子系統、操作、函數、常式、次常式、內嵌常式、程序、巨集或其部分。依據實施例相依之設計約束及較快處理之技術趨勢(促進先前在硬體中之功能遷移至軟體中)及較高整合密度(促進先前在軟體中之功能遷移至硬體中),實施例之許多功能態樣可選擇性地在硬體(例如,通常為專用電路)或軟體(例如,經由某一方式之經程式化控制器或處理器)中實現。各種實施例中之特定變化包含但不限於:分割差異;不同形式因子及組態;不同作業系統及其他系統軟體之使用;不同介面標準、網路協定或通信鏈路之使用;不同編碼類型之使用;及在根據一特定應用之獨特工程及商業約束實施本文中所闡述之概念時將預期之其他變化。
已藉助遠超出所闡述實施例之諸多態樣之一最小實施方案所要求之細節及環境內容脈絡來闡述了實施例。熟習此項技術者將認識到,某些實施例省略所揭示之組件或特徵而不變更其餘元件之中之基本協作。所揭示之細節中之諸多細節並不用於實施所闡述實施例之各種態樣。在其餘元件可與先前技術區分之條件下,所省略之組件及特徵不限制本文中所闡述之概念。
所有此等設計變化係對所闡述實施例所傳達之教示之非實質性改變。本文中所闡述之實施例對其他計算及網路連結應用具有廣泛適用性,且不限於所闡述實施例之特定應用或行業。因此,本發明應解釋為包含囊括於所發佈專利之申請專利範圍之範疇內之所有可能修改 及變化。
由圖1至圖12之圖式執行之功能可使用以下各項中之一或多者來實施:一習用通用處理器、數位電腦、微處理器、微控制器、RISC(精簡指令集電腦)處理器、CISC(複雜指令集電腦)處理器、SIMD(單指令多資料)處理器、信號處理器、中央處理單元(CPU)、算術邏輯單元(ALU)、視訊數位信號處理器(VDSP)及/或根據本說明書之教示程式化之類似計算機器,如熟習此項技術者將明瞭。熟練程式設計員基於本發明之教示可容易地準備適當軟體、韌體、編碼、常式、指令、作業碼、微碼及/或程式模組,如熟習此項技術者亦將明瞭。通常由機器實施方案之處理器中之一或多者自一媒體或數個媒體執行軟體。
本發明亦可藉由以下各項之準備來實施:ASIC(特殊應用積體電路)、平臺ASIC、FPGA(場可程式化閘陣列)、PLD(可程式化邏輯裝置)、CPLD(複雜可程式化邏輯裝置)、閘海(sea-of-gate)、RFIC(射頻積體電路)、ASSP(特殊應用標準產品)、一或多個單體式積體電路、配置為覆晶模組及/或多晶片模組之一或多個晶片或晶粒,或藉由互連習用組件電路之一適當網路,如本文中所闡述,熟習此項技術者將容易明瞭該習用組件電路之修改。
因此,本發明亦可包含一電腦產品,其可係包含可用於程式化一機器以執行根據本發明之一或多個程序或方法之指令之一儲存媒體或媒體及/或一傳輸媒體或媒體。機器對電腦產品中所含有之指令之執行連同周圍電路之操作可將輸入資料變換成儲存媒體上之一或多個檔案及/或表示一實體物件或資產(諸如一音訊及/或視覺繪示)之一或多個輸出信號。儲存媒體可包含但不限於:任何類型之碟,包含軟碟、硬碟機、磁碟、光碟、CD-ROM、DVD及磁光碟以及電路,諸如ROM(唯讀記憶體)、RAM(隨機存取記憶體)、EPROM(可抹除可程式化ROM)、EEPROM(電可抹除可程式化ROM)、UVPROM(紫外線 可抹除可程式化ROM)、快閃記憶體、磁卡、光卡及/或適合於儲存電子指令之任何類型之媒體。
本發明之要素可形成一或多個裝置、單元、組件、系統、機器及/或設備之一部分或全部。裝置可包含但不限於:伺服器、工作站、儲存陣列控制器、儲存系統、個人電腦、膝上型電腦、筆記型電腦、掌上型電腦、個人數位助理、可攜式電子裝置、電池供電裝置、機上盒、編碼器、解碼器、轉碼器、壓縮器、解壓縮器、預處理器、後處理器、發射器、接收器、收發器、密碼編譯電路、蜂巢式電話、數位相機、定位及/或導航系統、醫療設備、抬頭顯示器、無線裝置、音訊記錄、音訊儲存及/或音訊播放裝置、視訊記錄、視訊儲存及/或視訊播放裝置、遊戲平臺臺、周邊設備及/或多晶片模組。熟習此項技術者將理解,本發明之要素可在其他類型之裝置中實施以滿足一特定應用之準則。
術語「可」及「通常」在本文中結合「係」及動詞使用時意在傳達說明係例示性且據信足夠廣泛以囊括本發明中所呈現之特定實例以及可基於本發明導出之替代實例兩者之意圖。如本文中所使用之術語「可」及「通常」不應解釋為必要地暗示省略一對應要素之合意性及可能性。
儘管已特別地參考本發明之實施例展示及闡述了本發明,但熟習此項技術者將理解,可在不背離本發明之範疇之情形下做出形式及細節上之各種改變。

Claims (20)

  1. 一種用於使用一可變大小快閃變換層之方法,其包括以下步驟:(A)在一設備處自一主機接收自該設備之一非揮發性記憶體讀取對應於一邏輯區塊位址之特定資料之一讀取請求;(B)讀取一映射中之複數個項目中之一特定者以獲得:(i)該非揮發性記憶體之複數個頁中之一特定者之一實體位址,(ii)該特定頁中至先前回應於寫入對應於該邏輯區塊位址之經壓縮資料而儲存之該經壓縮資料之一位移,及(iii)該經壓縮資料之一長度,其中該特定項目與該邏輯區塊位址相關聯;(C)將該位移及該長度轉換為:(i)該特定頁中之複數個讀取單元中之一給定者之一位址,及(ii)欲自該特定頁讀取之該等讀取單元之一數目;及(D)自該特定頁讀取自該給定讀取單元開始之至多該數目個該等讀取單元,其中該位移及該長度之一粒度比該等讀取單元中之一者之一大小精細。
  2. 如請求項1之方法,其進一步包括以下步驟:對如自該特定頁讀取之該等讀取單元中之每一者執行錯誤校正解碼以產生經校正資料;及根據以下兩者自該經校正資料提取該經壓縮資料:(i)該特定頁中至該經壓縮資料之該位移,及(ii)該經壓縮資料之該長度。
  3. 如請求項2之方法,其進一步包括以下步驟:將該經壓縮資料解壓縮以產生傳回資料;及將該傳回資料傳送至該主機。
  4. 如請求項1之方法,其中欲讀取之該等讀取單元之該數目少於該 特定頁中之所有該等讀取單元。
  5. 如請求項1之方法,其進一步包括以下步驟:基於以下兩者而判定該經壓縮資料之至少一部分在該非揮發性記憶體之該等頁中之一後續者之一或多個後續讀取單元中:(i)該特定頁中至該經壓縮資料之該位移,及(ii)該經壓縮資料之該長度與該特定頁中之一使用者資料量之組合。
  6. 如請求項5之方法,其進一步包括以下步驟:自該後續頁讀取至多該一或多個後續讀取單元。
  7. 如請求項1之方法,其中:(i)該非揮發性記憶體之該等頁中之一第一者包含第一數目個該等讀取單元,(ii)該非揮發性記憶體之該等頁中之一第二者包含第二數目個該等讀取單元,且(iii)該第一數目不同於該第二數目。
  8. 如請求項1之方法,其中:(i)該非揮發性記憶體之該等頁中之一第一者包含第一量之使用者資料,(ii)該非揮發性記憶體之該等頁中之一第二者包含第二量之該使用者資料,且(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)該非揮發性記憶體之該等頁中之一第一者包含第一數目個該等讀取單元,(ii)該非揮發性記憶體之該等頁中之一第二者包含第二數目個該等讀取單元,且(iii)該第一數目不同於該第二數目。
  20. 如請求項13之設備,其中該設備實施為一或多個積體電路。
TW103127358A 2013-08-16 2014-08-08 可變大小快閃轉變層 TWI609263B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361866672P 2013-08-16 2013-08-16
US201361888681P 2013-10-09 2013-10-09
US14/055,336 US9495288B2 (en) 2013-01-22 2013-10-16 Variable-size flash translation layer

Publications (2)

Publication Number Publication Date
TW201523249A true TW201523249A (zh) 2015-06-16
TWI609263B TWI609263B (zh) 2017-12-21

Family

ID=52430390

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103127358A TWI609263B (zh) 2013-08-16 2014-08-08 可變大小快閃轉變層

Country Status (4)

Country Link
KR (1) KR102307382B1 (zh)
CN (1) CN104375956B (zh)
DE (1) DE102014111668A1 (zh)
TW (1) TWI609263B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI633434B (zh) * 2017-07-12 2018-08-21 宏碁股份有限公司 管理固態硬碟之方法、系統及電腦可讀取媒體
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765006A (zh) * 2015-07-21 2021-05-07 北京忆恒创源科技有限公司 存储设备日志生成方法及其存储设备
US10359953B2 (en) * 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
CN108959491A (zh) * 2018-06-25 2018-12-07 北斗地网(重庆)科技集团有限公司 一种卫星数据的可视化显示方法、装置、设备及存储介质
CN109471594B (zh) * 2018-10-09 2020-07-10 华中科技大学 一种mlc闪存读写方法
CN111724295A (zh) * 2019-03-18 2020-09-29 芯原微电子(成都)有限公司 一种外部存储器的协同访问方法及系统、协同访问架构
CN112115067A (zh) 2019-06-21 2020-12-22 慧荣科技股份有限公司 闪存物理资源集合管理装置及方法及计算机可读取存储介质
CN114072777A (zh) * 2019-07-02 2022-02-18 微软技术许可有限责任公司 基于硬件的存储器压缩
TWI754206B (zh) 2020-01-10 2022-02-01 祥碩科技股份有限公司 資料儲存系統、資料儲存裝置及其管理方法
CN114327272A (zh) * 2021-12-28 2022-04-12 深圳大普微电子科技有限公司 一种数据处理方法、固态硬盘控制器及固态硬盘
CN115629720B (zh) * 2022-12-20 2023-07-28 鹏钛存储技术(南京)有限公司 基于闪存为介质的存储设备上的非对称条带化方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523104B2 (en) * 2001-07-13 2003-02-18 Mips Technologies, Inc. Mechanism for programmable modification of memory mapping granularity
US7469331B2 (en) * 2004-07-22 2008-12-23 International Business Machines Corporation Method and apparatus for supporting shared library text replication across a fork system call
KR20050107369A (ko) * 2005-10-27 2005-11-11 서운식 모바일 기기를 위한 코드 직접 수행기능을 갖는 대용량저장장치 및 제어 방법
TW200823923A (en) * 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8949513B2 (en) * 2011-05-10 2015-02-03 Marvell World Trade Ltd. Data compression and compacting for memory devices
CN102567132B (zh) * 2011-12-30 2014-12-03 记忆科技(深圳)有限公司 端对端芯片数据通路保护装置及其方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
TWI701551B (zh) * 2017-01-19 2020-08-11 美商萬國商業機器公司 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統
US10929130B2 (en) 2017-01-19 2021-02-23 International Business Machines Corporation Guarded storage event handling during transactional execution
US11010066B2 (en) 2017-01-19 2021-05-18 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
TWI633434B (zh) * 2017-07-12 2018-08-21 宏碁股份有限公司 管理固態硬碟之方法、系統及電腦可讀取媒體

Also Published As

Publication number Publication date
KR102307382B1 (ko) 2021-09-29
TWI609263B (zh) 2017-12-21
KR20150020137A (ko) 2015-02-25
DE102014111668A1 (de) 2015-02-19
CN104375956A (zh) 2015-02-25
CN104375956B (zh) 2017-11-14

Similar Documents

Publication Publication Date Title
TWI609263B (zh) 可變大小快閃轉變層
US10346312B2 (en) Variable-size flash translation layer
US11449252B2 (en) Method of writing and reading data in an NVM using Lpage identification headers
US9329991B2 (en) Translation layer partitioned between host and controller
US11379301B2 (en) Fractional redundant array of silicon independent elements
KR102328612B1 (ko) 호스트와 컨트롤러 간에 파티셔닝된 변환 계층
US9105305B2 (en) Dynamic higher-level redundancy mode management with independent silicon elements
KR101454807B1 (ko) 상위-레벨 리던던시 정보 계산
KR101660190B1 (ko) 데이터 압축 및 관리
EP2750018A2 (en) Non-volatile memory program failure recovery via redundant arrays
WO2014022159A1 (en) Mixed granularity higher-level redundancy for non-volatile memory
JP2014167790A (ja) 不揮発性メモリへの書き込みの管理および領域選択
US20160239666A1 (en) Non-deterministic encryption
TW201606503A (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
GB2519629A (en) Variable-size flash translation layer
US9430375B2 (en) Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency
WO2014028183A1 (en) Fractional redundant array of silicon independent elements

Legal Events

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