存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法
【專利摘要】本發明公開存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法。存儲器控制模塊包含:一暫存單元、一糾錯碼單元以及一讀寫控制單元。暫存單元用來暫存一目標數據。糾錯碼單元包含多個第一編碼器及一第二編碼器;第一編碼器對該目標數據進行編碼運算以產生多組第一奇偶校驗位,該多組第一奇偶校驗位具有至少兩種長度;第二編碼器對該目標數據及該多組第一奇偶校驗位進行編碼運算,以產生一組第二奇偶校驗位。讀寫控制單元將該目標數據、該多組第一奇偶校驗位及該組第二奇偶校驗位轉換成該存儲器模塊的數據格式。
【專利說明】
存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法
技術領域
[0001]本發明是關于存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法,尤其是關于使用LDPC碼編/解碼器與多個碼長度不相等的BCH碼編/解碼器串接的存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法。【背景技術】
[0002]糾錯碼(Error-Correcting Code, ECC)廣泛地應用于與數字數據相關的系統或裝置中,例如通訊系統、儲存裝置等,其中又以BCH(Bose-Chaudhur1-Hocquenghem)碼及 LDPC (Low Density Parity Check,,低密度奇偶校驗)碼較為常見。圖1A為公知應用一個 LDPC編碼器與多個BCH編碼器串接(concatenat1n)的糾錯碼的編碼端。ECC編碼電路 100包含n個BCH編碼器110-1?110-n,以及LDPC編碼器120,每個BCH編碼器110具有相同的碼長度。BCH編碼器110對目標數據D0編碼后產生數據D1,其包含目標數據D0及多組BCH碼奇偶校驗位(parity check bit),每組BCH碼奇偶校驗位對應一個BCH編碼器 110。之后LDPC編碼器120再將數據D1編碼后產生數據D2,其包含目標數據D0、多組BCH 碼奇偶校驗位及一組LDPC碼奇偶校驗位。圖1B為對應圖1A的糾錯碼的解碼端。ECC解碼電路150包含n個BCH解碼器160-1?160-n,以及LDPC解碼器170,同樣的,BCH解碼器 160具有相同的碼長度,且碼長度與BCH編碼器110的碼長度相同。LDPC解碼器170接收數據D2’(對應數據D2,但可能有若干錯誤比特),并依據其中的該組LDPC碼奇偶校驗位對錯誤比特進行修正,之后產生數據D1’。n個BCH解碼器160分別對數據D1’進行解碼,以修正殘余的錯誤比特。最后可得到數據D0’,如果所有的錯誤比特都獲得修正,則數據D0’ 將等于目標數據DO。
[0003]LDPC碼的缺點為其在誤比特率(bit error rate, BER)對應信號噪聲比 (signal-to-noise rat1, SNR)的關系圖上有錯誤地板區(error floor reg1n)的存在, 其代表LDPC碼的糾錯能力受到限制。因此ECC解碼電路150使用多個具有不同特性但碼長度相同的BCH解碼器160,以提高修正殘余的錯誤比特的機率。如此設計除了降低誤比特率之外,還可使LDPC碼的錯誤地板區變得較不明顯。然而每個BCH編碼器110或BCH解碼器160所使用的碼長度固定,亦即每個BCH編碼器110或BCH解碼器160處理相同長度的 BCH碼奇偶校驗位,限制了 ECC編/解碼電路的效能。
【發明內容】
[0004]鑒于現有技術的不足,本發明的一目的在于提供一種存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法。
[0005]本發明公開了一種存儲器控制模塊,用來控制一存儲器模塊,包含:一暫存單元、 一糾錯碼單元以及一讀寫控制單元。暫存單元用來暫存一目標數據;糾錯碼單元,親接該暫存單元,包含多個第一編碼器及一第二編碼器;第一編碼器對該目標數據進行編碼運算以產生多組第一奇偶校驗位,該多組第一奇偶校驗位具有至少兩種長度;第二編碼器,耦接該些第一編碼器,用來對該目標數據及該多組第一奇偶校驗位進行編碼運算,以產生一組第二奇偶校驗位。讀寫控制單元耦接該糾錯碼單元,用來將該目標數據、該多組第一奇偶校驗位及該組第二奇偶校驗位轉換成該存儲器模塊的數據格式。
[0006]本發明另公開了一種控制方法,用于控制一存儲器模塊,包含:暫存一目標數據; 使用一第一編碼方法對該目標數據進行編碼運算以產生多組第一奇偶校驗位,其中該多組第一奇偶校驗位具有至少兩種長度;使用一第二編碼方法對該目標數據進行編碼運算,以產生一組第二奇偶校驗位;以及將該目標數據、該多組第一奇偶校驗位及該組第二奇偶校驗位轉換成該存儲器模塊的數據格式。
[0007]本發明另公開了一種糾錯碼解碼電路,包含:一第一解碼器,依據一組第一奇偶校驗位對一目標數據執行一 LDPC碼解碼運算;以及多個第二解碼器,耦接該第一解碼器,依據多組第二奇偶校驗位對該目標數據執行一以BCH碼為基礎的解碼運算;其中,該些第二解碼器具有至少兩種碼長度。
[0008]本發明另公開了一種糾錯碼解碼方法,包含:依據一組第一奇偶校驗位對一目標數據執行一 LDPC碼解碼運算;以及依據多組第二奇偶校驗位對該目標數據執行一以BCH碼為基礎的解碼運算;其中,該多組第二奇偶校驗位具有至少兩種長度。
[0009]本發明的存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法使用不同碼長度的BCH碼編/解碼器來實作BCH碼的編/解碼運算,相較于公知的糾錯碼編/解碼電路, 本發明有較低的誤比特率。
[0010]有關本發明的特征、實作與功效,茲配合附圖作實施例詳細說明如下。【附圖說明】
[0011]圖1A及圖1B為公知應用一個LDPC編碼器與多個BCH編碼器串接的糾錯碼的編碼端與解碼端;
[0012]圖2為本發明的存儲器控制模塊的功能方塊圖;
[0013]圖3為本發明糾錯碼單元214的細部功能方塊圖;
[0014]圖4為本發明的存儲器模塊的控制方法的流程圖;
[0015]圖5為本發明糾錯碼單元所產生的數據D2的結構示意圖;
[0016]圖6為通訊系統的發射端或接收端的功能方塊圖;
[0017]圖7為本發明糾錯碼解碼方法的流程圖;
[0018]圖8為本發明與公知方法應用于存儲器時的誤塊率與原始誤比特率的關系圖;
[0019]圖9為本發明糾錯碼單元214的另一實施方式的細部功能方塊圖;
[0020]圖10為本發明的存儲器模塊的控制方法的另一實施方式的流程圖;以及
[0021]圖11為本發明糾錯碼解碼方法的另一實施方式的流程圖。
[0022]其中,附圖標記說明如下:
[0023]100 ECC編碼電路
[0024]110、314 BCH 編碼器
[0025]120、316 LDPC 編碼器
[0026]150 ECC解碼電路
[0027]160、364 BCH 解碼器
[0028]170、366 LDPC 解碼器
[0029]210存儲器控制模塊
[0030]212暫存單元
[0031]214糾錯碼單元
[0032]216讀寫控制單元
[0033]220存儲器模塊
[0034]310糾錯碼編碼電路
[0035]312BCH編碼模塊
[0036]313、363 控制單元
[0037]360、960糾錯碼解碼電路
[0038]362BCH解碼模塊
[0039]610基帶電路
[0040]620調制/解調制單元
[0041]630天線
[0042]810、820、830、840 曲線
[0043]S410 ?S490、S710 ?S760、S1010 ?S1060、S1110 ?S1170 步驟【具體實施方式】
[0044]以下說明內容的技術用語參照本技術領域的習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語的解釋以本說明書的說明或定義為準。
[0045]本發明的公開內容包含存儲器控制模塊與方法以及糾錯碼編/解碼電路與方法, 能夠降低誤比特率。在實施為可能的前提下,本技術領域技術人員能夠依本說明書的公開內容來選擇等效的元件或步驟來實現本發明,亦即本發明的實施并不限于后敘的實施例。 由于本發明的存儲器控制模塊以及糾錯碼編/解碼電路所包含的部分元件單獨而言可能為已知元件,因此在不影響該裝置發明的充分公開及可實施性的前提下,以下說明對于已知元件的細節將予以節略。此外,本發明的存儲器模塊的控制方法以及糾錯碼編/解碼方法可以是軟件及/或固件的形式,在不影響該方法發明的充分公開及可實施性的前提下, 以下方法發明的說明將著重于步驟內容而非硬件。
[0046]存儲器于存取數據時容易受到溫度、電壓等環境因素的影響,而造成數據錯誤,因此常利用ECC編/解碼方法來減少數據的錯誤率。圖2為本發明的存儲器控制模塊的功能方塊圖。存儲器控制模塊210用來控制存儲器模塊220的數據存取,包含暫存單元212、糾錯碼單元214以及讀寫控制單元216。存儲器模塊220例如是快閃存儲器(flash memory)、 固態硬盤(Solid State Drive, SSD)等的存儲器模塊。目標數據可能經由PCI (Peripheral Component Interconnect)總線、PCI Express 總線、串行 ATA(Serial ATA, Serial Advanced Technology Attachment)總線或通用串行總線(Universal Serial Bus, USB)等接口傳輸至存儲器控制模塊210。將目標數據寫入存儲器模塊220時,目標數據先暫存在暫存單元212,之后再經由糾錯碼單元214計算出該目標數據的奇偶校驗位。奇偶校驗位連同該目標數據經由讀寫控制單元216轉換成存儲器模塊220的信號格式,而后寫入該存儲器模塊220。讀出時,讀寫控制單元216從存儲器模塊220讀取數據,讀取的數據包含該現有儲存的目標數據以及該些奇偶校驗位。讀取的數據可能受噪聲、溫度及存儲器模塊220本身的誤差影響而出現錯誤。目標數據及奇偶校驗位經讀寫控制單元216轉換格式后,由糾錯碼單元214依據奇偶校驗位對數據進行糾錯運算。更正后的目標數據先暫存于暫存單元 212再輸出。
[0047]圖3為本發明糾錯碼單元214的細部功能方塊圖,以及圖4為本發明的存儲器模塊的控制方法的流程圖。糾錯碼單元214包含糾錯碼編碼電路310及糾錯碼解碼電路360。 糾錯碼編碼電路310在將數據寫入存儲器模塊220的程序中對數據進行糾錯碼編碼運算, 其包含BCH編碼模塊312及LDPC編碼器316。BCH編碼模塊312包含控制單元313及k個 (k>l) BCH編碼器314。現有暫存于暫存單元212中的目標數據D0 (步驟S410)進入BCH編碼模塊312后,由多個BCH編碼器314對該目標數據進行編碼運算以產生多組BCH碼奇偶校驗位(步驟S420)。在此步驟中,控制單元313依據BCH編碼器314的碼長度將目標數據 D0分割,使每個BCH編碼器314接收到對應自己的碼長度的數據量。此處,碼長度代表一個 BCH編碼器314處理的數據量加上所產生的奇偶校驗位的長度;舉例來說,假設一個BCH編碼器314所處理的原始數據的數據量為16384比特,其更正能力為120比特,則根據BCH編 /解碼器的特征:N+mX T彡2m(N為原始數據的數據量,m為BCH編/解碼器的階數,T為BCH 編/解碼器的更正能力),階數m = 15。因此可得此BCH編碼器314的奇偶校驗位的長度為 15X120 = 1800比特,亦即該BCH編碼器314的碼長度等于16384+1800 = 18184比特。不同碼長度的BCH編碼器314代表其各自所處理的原始數據長度或是所產生的奇偶校驗位的長度不同。此k個BCH編碼器314具有至少兩種碼長度。其中一實施為該k個BCH編碼器 314的碼長度皆不相同;在其他的實施例中,其中的兩個碼長度可以相同(此時k>2)。因此控制單元313依據各BCH編碼器314的碼長度將目標數據D0分割;舉例來說,BCH編碼模塊312包含4個BCH編碼器314,其能夠處理的原始數據的長度分別為:1024比特、2048比特、4096比特及8192比特,因此一個數據長度為15360比特的目標數據D0便會被分割成這四個長度的數據。每個BCH編碼器314完成編碼后產生各自的奇偶校驗位(PB1、PB2、…、 PBk),最后該k組奇偶校驗位及目標數據D0由控制單元313組合成數據D1后,傳送至LDPC 編碼器316。之后LDPC編碼器316對數據D1編碼,產生相對應的奇偶校驗位(PBL)(步驟 S430)。最后所有數據組合成數據D2 (包含目標數據D0、k組BCH編碼器314所產生的奇偶校驗位PB1?PBk以及LDPC編碼器316所產生的奇偶校驗位PBL)輸出,數據D2則由讀寫控制單元216轉換為存儲器模塊220的數據格式(步驟S440)。
[0048]糾錯碼解碼電路360在將數據讀出存儲器模塊220的程序中對數據進行糾錯碼解碼運算,其包含BCH解碼模塊362及LDPC解碼器366。BCH解碼模塊362包含控制單元363 及k個BCH解碼器364。讀取數據時讀寫控制單元216先依據存儲器模塊220的儲存內容產生數據D2’(步驟S450),數據D2’再經由LDPC解碼器366解碼。數據D2’大致上與數據D2的內容相同,但可能有若干比特出現錯誤。LDPC解碼器366依據數據D2’中的該組 LDPC碼奇偶校驗位PBL來對數據D2’的其他部分(對應目標數據D0及該多組BCH碼奇偶校驗位PB1?PBk,但可能有若干錯誤比特)解碼,解碼后產生數據D1’(步驟S460)。數據D1’包含經過LDPC解碼器366解碼的目標數據D0’及該多組BCH碼奇偶校驗位PB1? PBk。控制單元363判斷解碼后的目標數據D0’是否已經沒有錯誤比特,可以是依據目標數據D0’的本身作判斷,或是依據LDPC解碼器366所另外傳遞的控制信號(圖未示,用以指示目標數據DO’是否仍有錯誤比特)作判斷(步驟S470)。如果已經沒有錯誤比特,則控制單元363將數據D1’中的該多組BCH碼奇偶校驗位PB1?PBk去除后,輸出目標數據DO’(實質上等于目標數據D0),則完成糾錯碼的編/解碼程序(步驟S480及步驟S485);如果仍有錯誤比特,則控制單元363選擇其中一個BCH解碼器364,令其依據相對應的一組BCH碼奇偶校驗位PBx (1 < x < k)對數據D1’中除了 BCH碼奇偶校驗位PB1?PBk的部分進行BCH 碼解碼運算(步驟S490)。之后控制單元363再將BCH碼解碼運算后的數據連同BCH碼奇偶校驗位PB1?PBk組合成反饋數據DF,傳送給LDPC解碼器366。LDPC解碼器366再次依據LDPC碼的奇偶校驗位PBL對反饋數據DF進行解碼,以重新生成數據D1’(步驟S460)。
[0049]雖然在相同的奇偶校驗位下LDPC碼相對于BCH碼有較好的更正能力,但LDPC碼無法保證所有的錯誤比特皆能夠得到更正,這也就是地板區存在的原因。相對的,BCH編碼器314為一種保證糾錯碼,若錯誤的比特數在其更正能力的范圍內,則能保證該些錯誤的比特一定能夠被更正。本發明除了藉由串接的BCH碼編/解碼器及LDPC碼編/解碼器來提升數據的正確性之外,其中多BCH編碼器314及BCH解碼器364更設計為具有不同的碼長度。在步驟S490中,使用BCH解碼模塊362解碼時,依據BCH解碼器364的碼長度的順序選取對應的BCH解碼器364進行解碼。舉例來說,假設BCH解碼器364-1?364-k的碼長度由小至大排列(BCH解碼器364-1的碼長度最小,而BCH解碼器364-k的碼長度最大), 第一次使用BCH碼解碼時,使用碼長度最小的BCH解碼器364-1進行解碼,之后再依序遞增碼長度。如此設計的原因在于,錯誤的比特可以在數次的遞回解碼的過程中被依序解回,使錯誤比特得到更正的成功率大幅提高。相對的,如果是公知般使用相同長度的BCH碼編/ 解碼器,則每個BCH碼編/解碼器有可能在相同的數據大小中累積太多錯誤比特而造成全數的BCH碼解碼器皆無法更正錯誤比特的情形。上述選取BCH解碼器364的順序(亦即參考多組BCH碼奇偶校驗位PB1?PBk的順序)不限于碼長度由小到大,亦可由大到小或其他預先定義的順序。
[0050]—般而言,存儲器模塊220對奇偶校驗位有長度限制,因此在本發明中,BCH編碼器314的多組奇偶校驗位PB1?PBk的長度的總和加上LDPC編碼器316的奇偶校驗位PBL 的長度后的總比特數,應小于等于存儲器模塊220所提供的奇偶校驗位的長度(對一次的存/取操作而言)。再者,如前所述,在同樣的奇偶校驗位長度下,LDPC碼的更正能力較BCH 碼佳。因此在一個實施例中,可以設計為讓LDPC碼的奇偶校驗位PBL的長度超過數據D2 的所有奇偶校驗位的一半,也就是數據D2中LDPC碼的奇偶校驗位PBL的長度超過所有BCH 碼的奇偶校驗位PB1?PBk的長度總和。圖5為本發明糾錯碼單元所產生的數據D2的結構示意圖。在此假設BCH編碼模塊312包含4個BCH編碼器314 (同理BCH解碼模塊362 包含4個BCH解碼器364)。數據D2包含數據1?數據4 (其組合即為數據D0)以及5組奇偶校驗位1?5。奇偶校驗位1?4分別為對應數據1?4的BCH碼的奇偶校驗位,奇偶校驗位5設計為LDPC碼的奇偶校驗位。在一個實施例中,數據1?數據4的長度分別為 1024比特、2048比特、4096比特及8192比特(即數據D0的長度為1024+2048+4096+8192 =15360比特),因此其所對應的BCH碼編/解碼器的階數分別為11、12、13及14。并且假設每個BCH碼編/解碼器的糾錯能力為3比特,則奇偶校驗位1?4的長度分別為33比特、 36比特、39比特及42比特(總和為33+36+39+42 = 150比特)。奇偶校驗位5為1064比特,大于奇偶校驗位1?4的長度總和。其中數據1?4及奇偶校驗位1?4的組合即為數據Dl。
[0051]本發明的糾錯碼單元214除了可以應用于存儲器模塊之外,亦可應用于采用BCH 碼及LDPC碼的通訊系統。圖6為通訊系統的發射端或接收端的功能方塊圖。糾錯碼單元 214應用于發射端時,基帶電路610所產生的目標數據由糾錯碼單元214編碼后(此時糾錯碼單元214可以只包含糾錯碼編碼電路310),再交由調制/解調制單元620調制后(此時調制/解調制單元620可以只包含調制電路),由天線630送出。對應于發射端的應用, 本發明的糾錯碼編碼方法,其流程與圖4的步驟S420?S440類似,差別在于步驟S440由執行數據格式的轉換改為執行信號調制。另一方面,當糾錯碼單元214應用于接收端時, 其糾錯碼解碼方法的流程圖如圖7所示。調制/解調制單元620由天線630接收射頻信號并解調制(此時調制/解調制單元620可以只包含解調制電路)后產生目標數據(步驟 S710),再由糾錯碼單元214進行解碼運算(此時糾錯碼單元214可以只包含糾錯碼解碼電路360)。目標數據同樣包含發射端所傳輸的訊息部分、一組LDPC碼的奇偶校驗位PBL及多組BCH碼的奇偶校驗位PB1?PBk。LDPC解碼器366依據該組LDPC碼的奇偶校驗位PBL 對目標數據進行LDPC碼解碼運算(步驟S720)。之后控制單元363檢查是否已經沒有任何錯誤比特(步驟S730),若沒有,則移除目標數據中所有奇偶校驗位的部分后輸出完成解碼的訊息部分,并結束解碼程序(步驟S740、步驟S750);如果還有錯誤比特存在,則BCH解碼模塊362對訊息的部分進行以BCH碼為基礎的解碼運算(步驟S760)。控制單元363選擇 BCH解碼器364的順序可參考前述的實施例,并且目標數據的結構可參考圖5,其細節不再重復贅述。請注意,通訊系統常用一種名為里德-所羅門碼(Reed-solomon codes)的編/ 解碼運算,事實上里德-所羅門碼為BCH碼的其中一個特例,所以糾錯碼單元214亦適用于里德-所羅門碼的運算。
[0052]圖8為本發明與公知方法應用于存儲器時的誤塊率(Block Error Rate,BLER)與原始誤比特率(Raw BER)的關系圖。在圖中,愈靠近左邊的曲線代表有較佳的糾錯能力,同時代表存儲器有更久的使用壽命。曲線810為單純使用LDPC碼編/解碼器的曲線,曲線 840為單純使用BCH碼編/解碼器(更正能力T= 123比特)的曲線。如前所述,一般而言 LDPC碼的更正能力較BCH碼佳,但是曲線810在圖上呈現地板區(即圖中誤塊率約為10-5 的轉折處)。曲線830實際上為兩條幾近疊合的曲線,其中之一代表使用多個碼長度相等的 BCH碼編/解碼器與LDPC碼編/解碼器串接的結果,其效果相當近似使用單一 BCH碼編/ 解碼器(更正能力T = 187比特)的曲線,也就是說使用多個碼長度相等的BCH碼編/解碼器與LDPC碼編/解碼器串接比單純使用BCH碼編/解碼器(更正能力T = 123比特)的效果來得好。曲線820實際上為兩條幾近疊合的曲線,其中的一代表使用多個碼長度不相等的BCH碼編/解碼器與LDPC碼編/解碼器串接的結果,其效果相當近似使用單一 BCH碼編/解碼器(更正能力T = 208比特)的曲線,也就是說使用多個碼長度不相等的BCH碼編/解碼器與LDPC碼編/解碼器串接比使用多個碼長度相等的BCH碼編/解碼器與LDPC 碼編/解碼器串接的效果來得好。另外,對應本發明的曲線在誤塊率約為10-5的位置處沒有地板區,代表本發明可改善LDPC碼的受限的糾錯能力。
[0053]本發明在解碼運算時亦可以先執行BCH碼的解碼運算再執行LDPC碼的解碼運算。 圖9為本發明糾錯碼單元214的另一實施方式的細部功能方塊圖,圖10為其相對應的存儲器模塊的控制方法的流程圖。編碼時,暫存的目標數據(步驟S410)先經由BCH編碼模塊312編碼(步驟S420),再經由糾錯碼編碼電路310的LDPC編碼器316編碼(步驟S430), 之后的步驟S440與圖4相同。解碼時,從存儲器模塊220讀出數據后(步驟S450),先利用糾錯碼解碼電路960的BCH解碼模塊362以一順序對數據D2’解碼(步驟S1010)。第一次解碼時,控制單元363控制所有的BCH解碼器364對數據D2’進行解碼。如果解碼完的數據已經正確(意即無錯誤比特)(步驟S1020),則BCH解碼模塊362去除數據D2’中的多組BCH碼奇偶校驗位,并且LDPC解碼器366去除數據D1’中的該組LDPC碼奇偶校驗位后,輸出完成解碼的數據(步驟S1030),然后結束解碼流程(步驟S1040)。然而如果經步驟S1010解碼完的數據仍有錯誤比特(步驟S1020),則先對BCH碼區塊進行數據處理(意即先更正BCH碼所能更正的錯誤)(步驟S1050)以得到數據D1’,再由LDPC解碼器366對數據D1’解碼產生反饋數據DF (步驟S1060)。之后BCH解碼模塊362再次對反饋數據進行解碼(步驟S1010)。此時控制單元363依據步驟S490中所述的順序依序使用BCH解碼器 364進行解碼。因此步驟S1010所述的順序包含第一次解碼時使用全部的BCH解碼器364 進行解碼,以及之后的迭代(iterat1n)運算中所依循的順序。圖11為應用于通訊系統的接收端時,糾錯碼解碼方法的另一實施方式的流程圖。解調制后的數據(步驟S1110),先進行以BCH碼為基礎的解碼運算(步驟S1120),再進行LDPC碼解碼運算(步驟S1170)。圖 11流程的操作細節可以由圖10的流程得知,故不再贅述。前述的實施例中先執行BCH碼解碼運算再執行LDPC碼解碼運算的好處在于,其一,一般而言BCH碼的解碼速度比LDPC碼來得快,所以若解碼程序一次即解碼成功,步驟S1010 (或步驟S1120)所花費的時間比步驟 S460 (或步驟S720)來得短;其二,整體解碼程序的終止條件由BCH碼的解碼程序決定,可有效減輕錯誤地板區的影響。
[0054]由于本技術領域技術人員可藉由圖2、圖3及圖6的裝置發明的公開內容來了解圖 4及圖7的方法發明的實施細節與變化以及由圖2、圖6及圖9的裝置發明的公開內容來了解圖10及圖11的方法發明的實施細節與變化,因此,為避免贅文,在不影響該方法發明的公開要求及可實施性的前提下,重復的說明在此予以節略。請注意,前揭附圖中,元件的形狀、尺寸、比例以及步驟的順序等僅為示意,供本技術領域技術人員了解本發明之用,非用以限制本發明。另外,于實施為可能的前提下,本領域技術人員可依本發明的公開內容及自身的需求選擇性地實施任一實施例的部分或全部技術特征,或者選擇性地實施多個實施例的部分或全部技術特征的組合,藉此增加本發明實施時的彈性。再者,前揭實施例雖以存儲器及通訊系統為例,然此并非對本發明的限制,本領域技術人員可依本發明的公開適當地將本發明應用于其它需要糾錯碼編碼及/或解碼的裝置與系統。
[0055]雖然本發明的實施例如上所述,然而該些實施例并非用來限定本發明,本技術領域技術人員可依據本發明的明示或隱含的內容對本發明的技術特征施以變化,凡此種種變化均可能屬于本發明所尋求的專利保護范疇,換言之,本發明的專利保護范圍須視本說明書的權利要求所界定者為準。
【主權項】
1.一存儲器控制模塊,用來控制一存儲器模塊,包含: 一暫存單元,用來暫存一目標數據; 一糾錯碼單元,耦接該暫存單元,包含 多個第一編碼器,用來對該目標數據進行編碼運算以產生多組第一奇偶校驗位,其中所述多組第一奇偶校驗位具有至少兩種長度;以及 一第二編碼器,耦接所述多個第一編碼器,用來對該目標數據進行編碼運算,以產生一組第二奇偶校驗位;以及 一讀寫控制單元,耦接該糾錯碼單元,用來將該目標數據、所述多組第一奇偶校驗位及該組第二奇偶校驗位轉換成該存儲器模塊的數據格式。2.如權利要求1所述的存儲器控制模塊,其中該讀寫控制單元依據該存儲器模塊的儲存內容產生一讀取數據,該讀取數據包含一中間數據、所述多組第一奇偶校驗位及該組第二奇偶校驗位,并且該糾錯碼單元還包含: 多個第一解碼器,用來依據所述多組第一奇偶校驗位對該中間數據進行解碼運算,以修正該中間數據的錯誤比特;以及 一第二解碼器,耦接所述多個第一解碼器,用來依據該組第二奇偶校驗位對該中間數據進行解碼運算,以修正該中間數據的錯誤比特。3.如權利要求2所述的存儲器控制模塊,其中該第二解碼器早于所述多個第一解碼器對該中間數據進行運算。4.如權利要求2所述的存儲器控制模塊,其中所述多個第一解碼器早于該第二解碼器對該中間數據進行運算。5.如權利要求2所述的存儲器控制模塊,還包含: 一控制單元,耦接所述多個第一解碼器,用來依據一順序控制所述多個第一解碼器的解碼順序。6.如權利要求5所述的存儲器控制模塊,其中該順序為依據所述多個第一解碼器的碼長度順序。7.如權利要求1所述的存儲器控制模塊,其中所述多個第一編碼器執行BCH碼的編碼運算,該第二編碼器執行LDPC碼的編碼運算。8.如權利要求1所述的存儲器控制模塊,其中該存儲器模塊具有一存儲器容量,所述多組第一奇偶校驗位及該組第二奇偶校驗位的長度的總和與該存儲器容量有關。9.如權利要求8所述的存儲器控制模塊,其中該存儲器模塊為快閃存儲器模塊。10.如權利要求1所述的存儲器控制模塊,其中所述多組第一奇偶校驗位的長度的總和小于該組第二奇偶校驗位的長度。11.一種控制方法,用于控制一存儲器模塊,包含: 暫存一目標數據; 使用一第一編碼方法對該目標數據進行編碼運算以產生多組第一奇偶校驗位,其中所述多組第一奇偶校驗位具有至少兩種長度; 使用一第二編碼方法對該目標數據進行編碼運算,以產生一組第二奇偶校驗位;以及將該目標數據、所述多組第一奇偶校驗位及該組第二奇偶校驗位轉換成該存儲器模塊的數據格式。12.如權利要求11所述的控制方法,還包含: 依據該存儲器模塊的儲存內容產生一讀取數據,該讀取數據包含一中間數據、所述多組第一奇偶校驗位及該組第二奇偶校驗位; 使用一第一解碼方法并依據所述多組第一奇偶校驗位對該中間數據進行解碼運算,以修正該中間數據的錯誤比特;以及 使用一第二解碼方法并依據該組第二奇偶校驗位對該中間數據進行解碼運算,以修正該中間數據的錯誤比特。13.如權利要求12所述的控制方法,其中該第一解碼方法早于該第二解碼方法對該中間數據進行運算。14.如權利要求12所述的控制方法,其中該第二解碼方法早于該第一解碼器對該中間數據進行運算。15.如權利要求12所述的控制方法,還包含: 依據一順序參考所述多組第一奇偶校驗位,以對該中間數據進行解碼運算。16.如權利要求15所述的控制方法,其中該順序為依據所述多組第一奇偶校驗位的長度順序。17.如權利要求11所述的控制方法,其中該第一編碼方法對應BCH碼的編碼運算,該第二編碼方法對應LDPC碼的編碼運算。18.如權利要求11所述的控制方法,其中該存儲器模塊具有一存儲器容量,所述多組第一奇偶校驗位及該組第二奇偶校驗位的長度的總和與該存儲器容量有關。19.如權利要求18所述的控制方法,其中該存儲器模塊為快閃存儲器模塊。20.如權利要求11所述的控制方法,其中所述多組第一奇偶校驗位的長度的總和小于該組第二奇偶校驗位的長度。21.一種糾錯碼解碼電路,包含: 一第一解碼器,依據一組第一奇偶校驗位對一目標數據執行一 LDPC碼解碼運算;以及 多個第二解碼器,耦接該第一解碼器,依據多組第二奇偶校驗位對該目標數據執行一以BCH碼為基礎的解碼運算; 其中,所述多個第二解碼器具有至少兩種碼長度。22.如權利要求21所述的糾錯碼解碼電路,其中該第一解碼器早于所述多個第二解碼器對該目標數據進行運算。23.如權利要求21所述的糾錯碼解碼電路,其中所述多個第二解碼器早于該第一解碼器對該目標數據進行運算。24.如權利要求21所述的糾錯碼解碼電路,還包含: 一控制單元,耦接所述多個第二解碼器,用來依據一順序控制所述多個第二解碼器的解碼順序。25.如權利要求24所述的糾錯碼解碼電路,其中該順序為依據所述多個第二解碼器的碼長度順序。26.如權利要求21所述的糾錯碼解碼電路,其中所述多組第二奇偶校驗位的長度的總和小于該組第一奇偶校驗位的長度。27.如權利要求21所述的糾錯碼解碼電路用于一無線通訊系統的接收端,且所述多個第二解碼器執行一里德-所羅門碼解碼運算。28.一種糾錯碼解碼方法,包含: 依據一組第一奇偶校驗位對一目標數據執行一 LDPC碼解碼運算;以及 依據多組第二奇偶校驗位對該目標數據執行一以BCH碼為基礎的解碼運算; 其中,所述多組第二奇偶校驗位具有至少兩種長度。29.如權利要求28所述的糾錯碼解碼方法,其中該LDPC碼解碼運算早于該以BCH碼為基礎的解碼運算執行。30.如權利要求28所述的糾錯碼解碼方法,其中該以BCH碼為基礎的解碼運算早于該LDPC碼解碼運算執行。31.如權利要求28所述的糾錯碼解碼方法,還包含: 依據一順序使用所述多組第二奇偶校驗位,以進行該以BCH碼為基礎的解碼運算。32.如權利要求31所述的糾錯碼解碼方法,其中該順序為依據所述多組第二奇偶校驗位的長度順序。33.如權利要求28所述的糾錯碼解碼方法,其中所述多組第二奇偶校驗位的長度的總和小于該組第一奇偶校驗位的長度。34.如權利要求28所述的糾錯碼解碼方法用于一無線通訊系統的接收端,且該以BCH碼為基礎的解碼運算為一里德-所羅門碼解碼運算。
【文檔編號】H04L1/00GK105991230SQ201510090521
【公開日】2016年10月5日
【申請日】2015年2月28日
【發明人】謝欣霖, 王嗣鈞
【申請人】瑞昱半導體股份有限公司