TW201606783A - 利用混碼器的編碼器旁路 - Google Patents
利用混碼器的編碼器旁路 Download PDFInfo
- Publication number
- TW201606783A TW201606783A TW104119447A TW104119447A TW201606783A TW 201606783 A TW201606783 A TW 201606783A TW 104119447 A TW104119447 A TW 104119447A TW 104119447 A TW104119447 A TW 104119447A TW 201606783 A TW201606783 A TW 201606783A
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- data
- metadata
- storage device
- physical location
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本發明提供讀取第一實體位置以得到讀取資料。對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料。對與第二隨機序列結合、與第二元資料序連的第一隨機序列執行錯誤校正編碼。此外,也對與該第一錯誤校正元資料序連的零序列執行錯誤校正編碼以得到第二編碼資料。加總該錯誤校正資料、該第一編碼資料、和該第二編碼資料以得到遷移資料,將其儲存於第二實體位置。
Description
各種實施例關於一種系統、一種方法及一種電腦程式產品,尤指用於處理資料的一種系統、一種方法及一種電腦程式產品。
本發明主張在2014年7月28日申請、標題為利用混碼器的編碼器旁路及申請案號為62/029,860的美國臨時申請案為優先權,在此為了所有目的以引用的方式併入本文中。
某些類型的儲存裝置,如固態儲存裝置(如反及(NAND)快閃),偶爾需要將資料從一個實體位置遷移到另一實體位置(如無需改變該相關聯邏輯位址)。關於固態儲存裝置,當相鄰位置被讀取的次數過多時,附加電壓可無意地加於儲存裝置中的給定位置。如此導致該所儲存電壓位準增加,且在一些情況下可增加至讀取回不正確位元值的電壓位準;這指稱為讀取干擾雜訊。相反地,電荷在某些狀態下可從固態儲存裝置漏出。舉例來說,隨著在固態儲存裝置中的給定位置之程式與抹除(program and erase,P/E)計數增加,該電絕緣失效,導致該位置變成「會漏出(leaky)」。若該資料儲存時間過長而未刷新,則在「會漏出」位置上的該所儲存電壓可下降至讀取回不正確位元值的位準。由於這些原因,故資料會週期性從在固態儲存裝置中的一個位置移動到另一位置,以刷新該所儲存電壓至適當位準(如既不過高亦不過低)。
雖然存在以有效方式(如可縮減處理時間及/或消耗功率量)將所
儲存資料從一個實體位置遷移到另一實體位置的技術,但此種技術限於未併入混碼或使用相同隨機位元序列以混碼所有資料的儲存系統。若可為包括較少限制性混碼器(如使用不同隨機位元序列混碼該資料者)的系統開發用於遷移資料的有效技術,則如此將為所需。
在本發明的一實施例中,一系統可包含:一儲存裝置介面,其配置成讀取在儲存裝置中的一第一實體位置以得到讀取資料,以及將遷移資料儲存於該儲存裝置中的一第二實體位置;一錯誤校正解碼器,其配置成對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料;一錯誤校正編碼器,其配置成對與一第二隨機序列結合、與(2)第二元資料序連的(1)一第一隨機序列執行錯誤校正編碼,以及對與該第一錯誤校正元資料序連的一零序列執行錯誤校正編碼以得到第二編碼資料;以及一加法器,其配置成加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到該遷移資料。
在本發明的一實施例中,一方法可包含:讀取在儲存裝置中的一第一實體位置以得到讀取資料;使用一錯誤校正解碼器對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料;使用一錯誤校正解碼器以對與一第二隨機序列結合、與(2)第二元資料序連的(1)一第一隨機序列執行錯誤校正編碼,以及對與該第一錯誤校正元資料序連的一零序列執行錯誤校正編碼以得到第二編碼資料;加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到遷移資料;以及將該遷移資料儲存於該儲存裝置中的一第二實體位置。
在本發明的一實施例中,一電腦程式產品可以一非暫時性電腦
可讀取儲存媒體體現,並可包含電腦指令,其用於:讀取在儲存裝置中的一第一實體位置以得到讀取資料;對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料;對與一第二隨機序列結合、與(2)第二元資料序連的(1)一第一隨機序列執行錯誤校正編碼;對與該第一錯誤校正元資料序連的一零序列執行錯誤校正編碼以得到第二編碼資料;加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到遷移資料;以及將該遷移資料儲存於該儲存裝置中的一第二實體位置。
100~110‧‧‧步驟
200‧‧‧主機
210‧‧‧儲存控制器
212‧‧‧偽隨機亂數產生器
214、262、402、404‧‧‧加法器
216‧‧‧元資料產生器
218‧‧‧序連器
220‧‧‧錯誤校正編碼器
250‧‧‧固態儲存裝置
252‧‧‧實體位置
254‧‧‧新實體位置
260‧‧‧錯誤校正解碼器
300、302、304‧‧‧時間
400‧‧‧正反器鏈
在下列實施方式和所附圖式中揭示本發明之各種具體實施例。
〔圖1〕為例示在包括混碼器之儲存系統中的資料遷移程序之一具體實施例的流程圖。
〔圖2A〕為例示儲存資料以回應來自主機之寫入指令的儲存系統之一具體實施例的圖式。
〔圖2B〕為例示遷移資料的儲存系統之一具體實施例的圖式。
〔圖3〕為例示在資料遷移程序期間與錯誤校正編碼器和錯誤校正解碼器相關聯之處理時間的時序圖。
〔圖4〕為例示附加類型之混碼器之一具體實施例的圖式。
本發明可以許多方式實行,包括作為一程序;一設備;一系統;一物質之組合;一體現於電腦可讀取儲存媒體上的電腦程式產品;及/或一處理器,如配置成執行儲存於耦接至該處理器的記憶體上及/或由耦接至該處理器的
記憶體所提供之指令。在本說明書中,這些實作或本發明可採取的任何其他形式可指稱為技術。一般來說,所揭示程序之該等步驟次序可在本發明之範疇內改變。除非另外聲明,如說明為配置以執行任務之處理器或記憶體的組件,可實行為暫時配置成在給定時間執行該任務的一般組件,或是製造以執行該任務的具體組件。如於文中所使用,該用語「處理器(processor)」指稱配置成處理資料(如電腦程式指令)的一個或多個裝置、電路及/或處理核心。
以下連同例示本發明之該等原理的所附圖式,提供本發明之一個或多個具體實施例之實施方式。本發明係搭配此種具體實施例進行說明,但本發明不限於任何具體實施例。本發明之範疇僅受限於諸申請專利範圍,且本發明涵蓋眾多替代例、修飾例、和相等物。在下列說明中闡述眾多具體細節,以提供本發明之徹底理解。這些細節係為了範例之目的提供,且本發明可無需某些或所有這些具體細節而根據諸申請專利範圍進行實作。為了清楚表示之目的,並未詳細說明在與本發明相關之該等技術領域中已習知的技術材料,以使本發明不會非必要含糊不清。
圖1為例示在包括混碼器之儲存系統中的資料遷移程序之一具體實施例的流程圖。在某些具體實施例中,該程序係由儲存控制器執行。在某些具體實施例中,該程序係於固態儲存系統(如NAND快閃儲存系統)中執行。
在100,讀取在儲存裝置中的第一實體位置以得到讀取資料。在文中所說明的範例中,該第一實體位置有時指稱為舊實體位置(即資料係從其遷移的該實體位置)。在各種具體實施例中,該讀取資料包含硬資料(hard data)(如僅0和1返回)或軟資料(soft data)(如除1或0返回外,在該位元值中的可能性或確定性亦返回)。作為後者之範例,在某些具體實施例中,該讀取資料包含對數
似然比(log-likelihood ratio,LLR)值,其中該符號表示該位元值(如正值對應於0而負值對應於1,或反之亦然),而該量值表示在該值中的可能性或確定性(如較大的量值對應於較強的可能性或確定性)。
在各種具體實施例中,可使用多種偵測技術識別在步驟100中的該第一實體位置及/或啟動圖1之程序。舉例來說,在過多讀取干擾雜訊已加於區塊時試圖執行偵測的儲存控制器中,可能有讀取干擾偵測區塊。若該讀取干擾偵測區塊認為過多讀取干擾雜訊已加於特定實體位置,則圖1之程序可在該實體位置上運行。任何適當的讀取干擾偵測技術皆可使用。
同樣地,在某些具體實施例中,當特定實體位置的該程式與抹除(P/E)計數到達某臨界值及/或該實體位置尚未被觸及(如編程或抹除)達某時間量時,圖1之程序係為特定實體位置觸發。此種狀態可導致儲存於其中的該電壓位準下降至非所需位準,且所需可為將該所儲存資料遷移到新實體位置。
在102,對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一元資料。在某些具體實施例中,該所儲存資料係使用BCH碼或低密度同位檢查(Low-density parity-check,LDPC)碼執行編碼,並使用對應的解碼器。依讀取資料之類型(如硬資料對軟資料)而定,在步驟102可採用硬輸入錯誤校正解碼器或軟輸入錯誤偵測解碼器。
在步驟102之一個範例中,該讀取資料在概念上可視為:讀取資料=[u+s 1 ,m 1 ,p 1]+雜訊 (1)
其中u為該使用者或主機資料,且s1為用於混碼該資料(如在儲存或寫入程序期間)的該第一(偽)隨機序列。當然,該等序列u和s1具有相同長度,否則該序列u將不會被s1完全或徹底混碼。在文中所說明的某些具體實施例中,用於
混碼資料的該隨機序列(如在此情況下為s1)係依即將儲存該資料的該實體位置而定。舉例來說,饋入偽隨機亂數產生器(pseudo random number generator,PRNG)的種子可依該資料(即將)儲存的該實體位置而定。如此只要該資料之該實體位置已知,則容許該偽隨機序列眾所周知(如先驗(priori))。
返回方程式(1),m1為第一元資料(如可由該儲存控制器用於儲存多種事物並與此技術無關),而p1為第一同位資訊(如在該寫入或儲存程序期間由該錯誤校正編碼器(在混碼後)產生)。在方程式(1)中的該雜訊為附加雜訊。
該所產生的錯誤校正資料為(假設該雜訊所引入的位元錯誤之數量在該碼之該錯誤校正能力內):
為了清楚表示這些版本為錯誤校正版本,各皆已加上「^」。
在104,對與第二隨機序列結合、與(2)第二元資料序連的(1)第一隨機序列執行錯誤校正編碼。在某些具體實施例中,該第一隨機序列和該第二隨機序列係使用加法器及/或使用互斥或(exclusive OR,XOR)函數結合。
步驟104所指稱的該第一隨機序列為用於混碼在方程式(1)中該所儲存資料的該(偽)隨機序列(即s1)。對應地,步驟104所指稱的該第二隨機序列為該新(偽)隨機序列(即s2),例如其值可依新實體位置而定。注意到u、s1、和s2之長度都相同。就一般性而言,亦假設將會有新元資料(即m2)。因此,此第一次輸入至該錯誤校正編碼器的該序列為:第一次編碼器輸入=[s 1+s 2 ,m 2] (3)
且此第一次的輸出為:第一次編碼器輸出=[s 1+s 2 ,m 2 ,p 3] (4)
在某些具體實施例中,錯誤校正編碼係在錯誤校正解碼在步驟102執行及/或該等兩個步驟同步或同時開始的同時在步驟104執行。應注意在步驟104的該錯誤校正編碼能在錯誤校正解碼在步驟102執行的同時執行,因為到步驟104的該等輸入(即s1、s2、和m2)皆無需完成步驟102。以另一方式而言,s1、s2、和m2皆在時間前已知,且錯誤校正解碼無需為使那些值已知而完成(如該等第一和第二隨機序列和該第二元資料可僅從該舊邏輯位址及/或該新實體位址產生或計算,故因此錯誤校正解碼無需為使步驟104開始而完成)。
在106,對與該第一錯誤校正元資料序連的零序列執行錯誤校正編碼以得到第二編碼資料。不同於步驟104,步驟106需完成步驟102,因為輸入至步驟106的該第一元資料之版本為錯誤校正版本。雖然該讀取資料包括該第一元資料之一版本,但該版本可包括錯誤,並因此步驟106在錯誤校正解碼(成功)完成後使用該第一元資料。此第二次到該編碼器的輸入為:
其中該零序列具有與u、s1、和s2的相同長度。如前述,為了清楚表示在此所輸入的該第二元資料之版本為錯誤校正版本,在方程式(5)中顯示「^」。此第二次的該編碼器之輸出為:
如以下將會更詳細說明,該零序列容許該錯誤校正編碼相較於在104的該第一次在106此第二次執行得更快速。
在108,加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到遷移資料。以另一方式而言,該遷移資料係藉由加總(如使用XOR)該錯誤校正解碼器之該等輸出(即步驟102)、該錯誤校正編碼器之該第
一輸出(即步驟104)、和該錯誤校正編碼器之該第二輸出(即步驟106)而得到。亦即:
當兩個相同的位元序列加總在一起時,會彼此抵消。由於錯誤校正版本假設為正確(即),因此在抵消後的方程式(7)簡化為:
注意到由於所使用的該錯誤校正碼為線性,因此。這是因為若三個輸入位元序列(即、[s 1+s 2 ,m 2]、和)係在使用線性碼執行編碼前加總,則所產生的該單一同位序列(即p2)將為如同各該等三個輸入位元序列皆個別或分開編碼且該等三個所產生的同位序列(即、p3、和p4)係加總的相同值。
在110,將該遷移資料儲存於該儲存裝置中的第二實體位置。邏輯對實體映射表可使用該新(即第二)實體位置執行更新(如使得若主機發出讀取指令則該遷移資料可從其新實體位置而被正確檢索)。
下列圖式顯示可執行圖1之程序的儲存系統之範例。首先,說明與將該資料儲存於其原始或初始實體位置上相關聯的該等組件(如以回應從主機接收寫入指令)。然後,說明與將該資料從其舊實體位置遷移到其新實體位置相關聯的該等組件。
圖2A為例示儲存資料以回應來自主機之寫入指令的儲存系統之具體實施例的圖式。在所示該範例中,該儲存裝置為固態儲存裝置,但當然該等技術適用於其他類型之儲存裝置。在所示該範例中,主機200發出寫入指
令(未顯示)到儲存控制器210。在某些具體實施例中,儲存控制器210為半導體裝置,如特殊應用積體電路(Application-specific integrated circuit,ASIC)或現場可程式閘陣列(Field-programmable gate array,FPGA)。為保留可讀性,在此圖式中未顯示遷移該資料時所使用而初始儲存該資料時未使用的某些組件。
實體位置(在該下一圖式中指稱為舊實體位置)係傳遞到偽隨機亂數產生器(PRNG)212。選擇或挑選該實體位址的任何適當技術皆可採用,由於其對文中所說明的該等技術而言不重要,故為了簡化未於文中說明。使用該實體位置,PRNG 212產生第一偽隨機序列s1。
加法器214將該第一偽隨機序列(即s1)與從主機200所接收到的該寫入資料(即u)加總。在某些具體實施例中,加法器214對該等輸入執行互斥或(XOR)運算。
加法器214之輸出(即u+s1)係傳遞到序連器218,其將加法器214之輸出與元資料產生器216所產生的該第一元資料(即m1)序連。元資料產生器216(至少在此範例中)基於該實體位置產生該元資料。
序連器218之輸出(即[u+s1,m1])係傳遞到錯誤校正編碼器220。
如上述,在某些具體實施例中,錯誤校正編碼器220可為一BCH編碼器或一LDPC編碼器。錯誤校正編碼器220之輸出(即[u+s1,m1,p1])係儲存於固態儲存裝置250中的實體位置252。如上述,實體位置252在該下一圖式中將會指稱為舊實體位置。
在此範例中,該混碼器為加法類型之混碼器,而非乘法類型之混碼器。加法混碼器當該長度很短時,相較於乘法混碼器具有較差隨機性。然而,這對儲存系統通常處理的資料之該等長度(如2K、4K等)而言,通常並非考
量。此外,不同於乘法混碼器,加法混碼器可並行實行。
利用此特定配置(即在錯誤校正編碼前的加法類型混碼),僅該寫入資料混碼,而該錯誤校正編碼器所產生的該同位資訊未混碼。如此,該等同位位元相較於該等寫入資料位元可具有在0與1之間的較差平衡。然而,這在所有折衷都已考量時,對某些應用而言可接受。
下列圖式顯示執行圖1之程序的組件。為保留可讀性,在下列圖式中未顯示加法器214和序連器218。
圖2B為例示遷移資料的儲存系統之具體實施例的圖式。圖2B顯示稍後在圖2A中所顯示由於空間限制故新增某些組件並移除其他組件的系統。如上述,儲存控制器210由於多種定時器及/或事件,故可決定將在舊實體位置252上的該資料遷移到新實體位置254。任何適當技術皆可用於決定在舊實體位置252上的該資料應遷移,且任何適當技術皆可用於挑選新實體位置。
在所顯示的範例中,讀取資料(參見如方程式(1))係從在固態儲存裝置250中的舊實體位置252得到。在某些具體實施例中,儲存控制器210包括一儲存介面,其寫入固態儲存裝置250並從其讀取。由於空間限制,故在此圖式中未顯示儲存介面。在某些具體實施例中,若該讀取資料包含軟資料,則該儲存介面會在多個讀取臨界值多次讀取舊實體位置252以得到該軟資料。此種儲存介面係在圖1中執行步驟100之儲存控制器210內的組件之一個範例。
該讀取資料係從固態儲存裝置250傳遞到產生錯誤校正資料的錯誤校正解碼器260。注意到,舉例來說,在錯誤校正解碼器260之輸出中所包括的該等「^」記號係表示它們已錯誤校正解碼。錯誤校正解碼器260係在步驟102執行錯誤校正解碼的組件之一個範例。如上述,在某些具體實施例中,錯誤
校正解碼器260包括下列一個或多個:一軟輸入錯誤校正解碼器、一BCH解碼器、或一LDPC解碼器。
在錯誤校正解碼器260正在處理該讀取資料的同時,錯誤校正編碼器220會處理該第一編碼器輸入(即[s1+s2,m2])以產生該第一編碼資料(即[s1+s2,m2,p2])。在該第一編碼器輸入中的該等隨機序列s1和s2來自偽隨機亂數產生器212,並分別基於(至少在此範例中)舊實體位置和新實體位置。來自該第一編碼器輸入的該第二元資料(即m2)來自元資料產生器216,並以新實體位置為基礎。如上述,由於空間限制故在圖2B中未顯示來自圖2A的加法器214和序連器218,但它們依所需要可用於產生該等第一和第二編碼器輸入。
一旦該第一輸入已處理,錯誤校正編碼器220即可處理該第二輸入(即)以產生第二編碼資料(參見如方程式(6))。來自該第二編碼器輸入的該錯誤校正第一元資料(即)來自錯誤校正解碼器260之輸出。在某些具體實施例中,錯誤校正編碼器220在該第二編碼器輸入之該開端處繞過該等零序列(如直接輸出對應於在該第二編碼器輸入中的零序列之長度的許多零),並直接處理該非零部分。這相較於該第一次大約加快該第二次的該處理時間。如上述,錯誤校正編碼器220係執行來自圖1之步驟104和106的組件之一個範例。
來自錯誤校正解碼器260的該錯誤校正資料和來自錯誤校正編碼器220的該第一和第二編碼資料係由加法器262加總。加法器262係在圖1中執行步驟108的組件之一個範例。
該遷移資料隨後係儲存於固態儲存裝置250中的新實體位置254。如上述,在儲存控制器210中的儲存介面(未顯示)可為在圖1中實際執行步驟110的該組件(如藉由使新實體位置254依所需要經歷一個或多個程式脈衝
以用該遷移資料編程新實體位置254)。
下列圖式顯示對應於在圖1中之某些步驟的時序圖範例。如以下將會更詳細說明,該時序圖和以下相關討論表明為何圖1之程序相較於某些其他偏移技術更快速。
圖3為例示在資料遷移程序期間與錯誤校正編碼器和錯誤校正解碼器相關聯之處理時間的時序圖。在所顯示的範例中,所顯示的該等處理時間不必成比例。時間300、302、和304之各該等長度皆表示執行某些對應處理所花費的處理時間量。時間300(即t解碼器)為對讀取資料執行錯誤校正解碼的錯誤校正解碼器所花費的該處理時間量。在圖1中,這對應於執行步驟102所花費的該處理時間量。
為加速事物,在此範例中,假設在圖1中步驟104的錯誤校正編碼係在步驟102的錯誤校正解碼正在執行的同時執行。如此,時間300和302之該開端排列,其中時間302(即t編碼器1)為在第一編碼程序上所花費的該處理時間量。在圖1中,這對應於執行步驟104所花費的該時間量。解碼通常較編碼需要更長的時間執行,故如此時間300和302之該等長度因此為t解碼器>t編碼器1。
由於到該第二編碼程序的該輸入依該解碼程序之輸出而定,因此時間304之該開端(對應於在第二編碼程序上所花費的該處理時間量)與時間300之該末端對齊。
時間304(即t編碼器2)相較於t編碼器1相對較短,即使該第一編碼器輸入和該第二編碼器輸入之該等長度因為在該第二編碼器輸入中的該等零序列為相同。一般來說,該錯誤校正碼為在有限場F的(n,k)線性碼,表示為C,其中該碼長度為n而資訊長度為k。C為所有長度n向量c之集合c C,使得cH=0,
其中H為C之同位檢查矩陣。換言之,作為F n 之線性子空間的C為H之零空間。對任何線性碼而言,兩個有效碼字之加總亦為有效碼字。有效碼字之任何線性組合亦給出有效碼字。C之編碼可藉由將該輸入位元序列(如u)與該生成矩陣G(其係在F的k乘n矩陣)相乘而做到。一個同位檢查矩陣可與多個生成矩陣相關聯。編碼可藉由將該資訊向量與該等生成矩陣任一者相乘而做到。兩個線性子空間之相交處亦為線性子空間。
若所編碼的該輸入位元序列僅小部分為非零(如由於該等零序列在該第二編碼程序期間的情況),則快速編碼可基於G(如藉由略過該零部分)或基於H(如藉由用同位位元作為抹除解碼)任一者執行。在任一情況下,該編碼運算複雜度和等待時間皆與該輸入位元序列之非零部分之長度(即之長度)成正比。這容許t編碼器2絕對少於t編碼器1,這反映在時間302和304之該等長度上。
因此,該總處理時間約為t解碼器+t編碼器2,其中t編碼器2短於錯誤校正編碼非零位元序列所需的一般時間量(參見如t編碼器1之長度)。某些相對較少的時間量,如將該解碼資料和該等兩件編碼資料加總在一起的該時間量,不包括於該總處理時間中。以明確方式(如讀取舊實體位置、錯誤校正解碼該讀取資料、混碼該錯誤校正使用者資料、及隨後錯誤校正編碼該混碼資料)執行資料遷移的某些其他系統將會需要更長的時間,因為編碼非零位元序列將會需要較編碼具有許多零之位元序列更長的時間。舉例來說,在t解碼器後接著將會具有t編碼器1之長度的某事物,而非t編碼器2之長度的某事物。上述該等資料遷移技術因此得以快速,同時仍容許使用混碼器。
圖4為例示加法類型之混碼器之具體實施例的圖式。在所顯示的範例中,該混碼器包括一正反器鏈(400)。種子值(在此範例中為
100101010000000)係載入該正反器鏈。一旦該種子值載入,在該鏈中的各該等正反器即可將所儲存的值傳遞到在該鏈中的該下一正反器。該第14個暫存器之輸出使用加法器404與該第15個暫存器之輸出結合。
加法器404之輸出係傳遞到鏈400之該開端,以及加法器402。
加法器402將該輸入位元序列(即混碼的該事物)與加法器404之輸出(即用於混碼該輸入位序列的該(偽)隨機位元序列)結合。加法器402之輸出為該混碼位元序列。
比較圖2A與圖4,加法器402對應於加法器214,而鏈400和加法器404共同對應於偽隨機亂數產生器212(即加法器404之輸出為用於混碼輸入至該混碼器之該位元序列的隨機亂數)。
雖然前述具體實施例為了清楚理解之目的已略微詳細說明,但本發明不限於所提供的該等細節。有很多替代性方式可實行本發明。該等所揭示具體實施例為例示性而非限制性。
200‧‧‧主機
210‧‧‧儲存控制器
212‧‧‧偽隨機亂數產生器
214‧‧‧加法器
216‧‧‧元資料產生器
218‧‧‧序連器
220‧‧‧錯誤校正編碼器
250‧‧‧固態儲存裝置
252‧‧‧實體位置
Claims (14)
- 一種系統,包含:一儲存裝置介面,其配置成:讀取在儲存裝置中的一第一實體位置以得到讀取資料;以及將遷移資料儲存於該儲存裝置中的一第二實體位置;一錯誤校正解碼器,其配置成對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料;一錯誤校正編碼器,其配置成:對與一第二隨機序列結合、與(2)第二元資料序連的(1)一第一隨機序列執行錯誤校正編碼;以及對與該第一錯誤校正元資料序連的一零序列執行錯誤校正編碼以得到第二編碼資料;以及一加法器,其配置成加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到該遷移資料。
- 如請求項1所述之系統,其中該系統包括一半導體裝置,其包括下列一個或多個:一特殊應用積體電路(Application-specific integrated circuit,ASIC)或一現場可程式閘陣列(Field-programmable gate array,FPGA)。
- 如請求項1所述之系統,其中在對該讀取資料執行錯誤校正解碼的同時,對與該第二隨機序列結合、與(2)該第二元資料序連的(1)該第一隨機序列執行錯誤校正編碼。
- 如請求項1所述之系統,其中該儲存裝置包括固態儲存裝置。
- 如請求項1所述之系統,其中該錯誤校正編碼器和該錯誤校正解碼器配置成使用一個或多個下列碼:一BCH碼或一低密度同位檢查(Low-density parity-check,LDPC)碼。
- 一種方法,包含:讀取在儲存裝置中的一第一實體位置以得到讀取資料;使用一錯誤校正解碼器對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料;使用一錯誤校正解碼器:對與一第二隨機序列結合、與(2)第二元資料序連的(1)一第一隨機序列執行錯誤校正編碼;以及對與該第一錯誤校正元資料序連的一零序列執行錯誤校正編碼以得到第二編碼資料;加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到遷移資料;以及將該遷移資料儲存於該儲存裝置中的一第二實體位置。
- 如請求項6所述之方法,其中該方法係由一半導體裝置執行,其包括下列一個或多個:一特殊應用積體電路(ASIC)或一現場可程式閘陣列(FPGA)。
- 如請求項6所述之方法,其中當對該讀取資料執行錯誤校正解碼的同時,對與該第二隨機序列結合、與(2)該第二元資料序連的(1)該第一隨機序列執行錯誤校正編碼。
- 如請求項6所述之方法,其中該儲存裝置包括固態儲存裝置。
- 如請求項6所述之方法,其中執行錯誤校正編碼及執行錯誤校正解碼包括使用一個或多個下列碼:一BCH碼或一低密度同位檢查(LDPC)碼。
- 一種電腦程式產品,該電腦程式產品以一非暫時性電腦可讀取儲存媒體體現,並包含電腦指令,其用於:讀取在儲存裝置中的一第一實體位置以得到讀取資料;對該讀取資料執行錯誤校正解碼以得到錯誤校正資料,其中該錯誤校正資料包括第一錯誤校正元資料;對與一第二隨機序列結合、與(2)第二元資料序連的(1)一第一隨機序列執行錯誤校正編碼;對與該第一錯誤校正元資料序連的一零序列執行錯誤校正編碼以得到第二編碼資料;加總(1)該錯誤校正資料、(2)該第一編碼資料、和(3)該第二編碼資料以得到遷移資料;以及將該遷移資料儲存於該儲存裝置中的一第二實體位置。
- 如請求項11所述之電腦程式產品,其中當對該讀取資料執行錯誤校正解碼的同時,對與該第二隨機序列結合、與(2)該第二元資料序連的(1)該第一隨機序列執行錯誤校正編碼。
- 如請求項11所述之電腦程式產品,其中該儲存裝置包括固態儲存裝置。
- 如請求項11所述之電腦程式產品,其中用於執行錯誤校正編碼及執行錯誤校正解碼的該等電腦指令包括電腦指令,其用於使用一個或多個下列碼:一BCH碼或一低密度同位檢查(LDPC)碼。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462029860P | 2014-07-28 | 2014-07-28 | |
US14/721,888 US9710326B2 (en) | 2014-07-28 | 2015-05-26 | Encoder by-pass with scrambler |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201606783A true TW201606783A (zh) | 2016-02-16 |
TWI570736B TWI570736B (zh) | 2017-02-11 |
Family
ID=55166839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104119447A TWI570736B (zh) | 2014-07-28 | 2015-06-16 | 利用混碼器的編碼器旁路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9710326B2 (zh) |
KR (1) | KR102321454B1 (zh) |
CN (1) | CN105302740B (zh) |
TW (1) | TWI570736B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10714195B2 (en) * | 2017-08-31 | 2020-07-14 | SK Hynix Inc. | Read disturb detection and recovery with adaptive thresholding for 3-D NAND storage |
US10585769B2 (en) * | 2017-09-05 | 2020-03-10 | International Business Machines Corporation | Method for the implementation of a high performance, high resiliency and high availability dual controller storage system |
US11126495B2 (en) * | 2018-03-07 | 2021-09-21 | Micron Technology, Inc. | Dynamic error handling in a memory system |
US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
US11726869B2 (en) * | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
US11282567B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677123B1 (en) | 2005-05-26 | 2014-03-18 | Trustwave Holdings, Inc. | Method for accelerating security and management operations on data segments |
US7409489B2 (en) | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
CN103280239B (zh) * | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US9209934B2 (en) * | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
KR100922308B1 (ko) | 2006-08-04 | 2009-10-21 | 쌘디스크 코포레이션 | 페이징된 가비지 콜렉션 |
TWI369633B (en) | 2007-06-27 | 2012-08-01 | Sandisk Corp | Phased garbage collection and house keeping operations in a flash memory system |
US8341501B2 (en) * | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US8631304B2 (en) | 2010-01-28 | 2014-01-14 | Sandisk Il Ltd. | Overlapping error correction operations |
EP2814194A1 (en) | 2010-06-01 | 2014-12-17 | Global Invacom Ltd. | Data transmission apparatus system and method |
US9319463B2 (en) * | 2010-12-27 | 2016-04-19 | Cleversafe, Inc. | Reproducing data from obfuscated data retrieved from a dispersed storage network |
WO2012117263A1 (en) * | 2011-03-02 | 2012-09-07 | Sandisk Il Ltd. | Method of data storage in non-volatile memory |
KR101678919B1 (ko) * | 2011-05-02 | 2016-11-24 | 삼성전자주식회사 | 메모리 시스템 및 에러 정정 방법 |
KR101867282B1 (ko) | 2011-11-07 | 2018-06-18 | 삼성전자주식회사 | 비휘발성 메모리 장치의 가비지 컬렉션 방법 |
US8832539B1 (en) | 2012-01-17 | 2014-09-09 | Sk Hynix Memory Solutions Inc. | Write processing for unchanged data with new metadata |
US8984373B2 (en) * | 2012-02-22 | 2015-03-17 | Silicon Motion, Inc. | Method for accessing flash memory and associated flash memory controller |
US9367394B2 (en) | 2012-12-07 | 2016-06-14 | Netapp, Inc. | Decoupled reliability groups |
KR102094334B1 (ko) | 2013-03-15 | 2020-03-27 | 삼성전자주식회사 | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 |
-
2015
- 2015-05-26 US US14/721,888 patent/US9710326B2/en active Active
- 2015-06-16 TW TW104119447A patent/TWI570736B/zh active
- 2015-06-26 CN CN201510365017.1A patent/CN105302740B/zh active Active
- 2015-07-13 KR KR1020150099373A patent/KR102321454B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20160026526A1 (en) | 2016-01-28 |
US9710326B2 (en) | 2017-07-18 |
KR20160013808A (ko) | 2016-02-05 |
CN105302740A (zh) | 2016-02-03 |
KR102321454B1 (ko) | 2021-11-05 |
TWI570736B (zh) | 2017-02-11 |
CN105302740B (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI570736B (zh) | 利用混碼器的編碼器旁路 | |
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
TWI697000B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
TW201319800A (zh) | 使用置換子矩陣之總和的總和檢查碼 | |
US20140281762A1 (en) | System and method for random noise generation | |
KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
JP5723975B2 (ja) | Ldpcコードの復号のための方法、システム、およびプログラム | |
CN107017030B (zh) | 用于不规则代码的高效ldpc编码器 | |
TW201604882A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US8683304B2 (en) | Error-correcting code and process for fast read-error correction | |
US11095310B2 (en) | Error correction apparatus, operation method thereof and memory system using the same | |
KR101631128B1 (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
US10133628B2 (en) | Apparatuses and methods for encoding using error protection codes | |
US9928135B2 (en) | Non-local error detection in processor systems | |
Zhang et al. | A novel optimization algorithm for Chien search of BCH Codes in NAND flash memory devices | |
TWI684856B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 | |
Lee et al. | Implementation of parallel BCH encoder employing tree-type systolic array architecture | |
CN111966524B (zh) | 一种Flash数据写入方法及装置 | |
Nabipour et al. | Enhancing Data Storage Reliability and Error Correction in Multilevel NOR and NAND Flash Memories through Optimal Design of BCH Codes | |
Yang et al. | An MPCN-based BCH codec architecture with arbitrary error correcting capability | |
Gherman et al. | Sequential Decoders for Binary Linear Block ECCs | |
US9413391B2 (en) | Chien search device, storage device, and chien search method | |
WO2015163901A1 (en) | Storing data in storage devices | |
Shetty et al. | Design and construction of BCH codes for enhancing data integrity in multi level flash memories | |
KR20230132697A (ko) | 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법 |