本發(fā)明是有關(guān)于一種解碼技術(shù),且特別是有關(guān)于一種解碼方法、存儲器儲存裝置及存儲器控制電路單元。
背景技術(shù):
::數(shù)碼相機、移動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由于可復(fù)寫式非易失性存儲器模塊(例如,快閃存儲器)具有數(shù)據(jù)非易失性、省電、體積小,以及無機械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種可攜式多媒體裝置中。一般來說,為了避免從存儲器裝置中讀取出來的數(shù)據(jù)發(fā)生錯誤,欲儲存在存儲器裝置中的數(shù)據(jù)會被編碼然后再被儲存。當(dāng)欲讀取此數(shù)據(jù)時,整個編碼數(shù)據(jù)會被讀取出來并且被解碼。藉此,可通過解碼程序來更正可能存在的錯誤。然而,在一般的解碼電路中,雖然可以利用矩陣加法來取代矩陣乘法等機制來提升解碼速度,但是為了實現(xiàn)符合特定標(biāo)準(zhǔn)的解碼操作,解碼電路中所配置的選擇器/移位暫存器的數(shù)量難以調(diào)整。技術(shù)實現(xiàn)要素:本發(fā)明提供一種解碼方法、存儲器儲存裝置及存儲器控制電路單元,可提升解碼效率和/或減少所需的選擇器/移位暫存器的數(shù)量。本發(fā)明的一范例實施例提供一種解碼方法,其用于可復(fù)寫式非易失性存儲器模塊,所述解碼方法包括:決定偏移臨界值以及對應(yīng)于所述偏移臨界值的檢查矩陣,其中所述檢查矩陣包括至少一子矩陣群組,其中所述子矩陣群組中的每一個子矩陣具有預(yù)設(shè)維度,其中所述偏移臨界值小于對應(yīng)于所述預(yù)設(shè)維度的預(yù)設(shè)維度值,其中所述子矩陣群組包括第一子矩陣群組;發(fā)送讀取指令序列,其中所述讀取指令序列指示讀取所述可復(fù)寫式非易失性存儲器模塊的實體單元;接收對應(yīng)于所述讀取指令序列的回應(yīng)數(shù)據(jù);以及對所述回應(yīng) 數(shù)據(jù)執(zhí)行迭代解碼程序,其中所述迭代解碼程序包括:產(chǎn)生對應(yīng)于所述回應(yīng)數(shù)據(jù)的數(shù)據(jù)集合,其中所述數(shù)據(jù)集合包括多個預(yù)設(shè)群組;根據(jù)屬于所述第一子矩陣群組的多個子矩陣來移動所述預(yù)設(shè)群組以獲得多個第一偏移群組,其中所述第一偏移群組中的每一個偏移群組相對于所述預(yù)設(shè)群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值;以及根據(jù)所述第一偏移群組產(chǎn)生解碼參考數(shù)據(jù)。在本發(fā)明的一范例實施例中,所述子矩陣群組還包括第二子矩陣群組,其中所述迭代解碼程序還包括:根據(jù)屬于所述第二子矩陣群組的多個子矩陣來移動所述第一偏移群組以獲得多個第二偏移群組,其中所述第二偏移群組中的每一個偏移群組相對于所述第一偏移群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值;以及根據(jù)所述第二偏移群組產(chǎn)生所述解碼參考數(shù)據(jù)。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于低密度奇偶檢查碼的奇偶檢查程序的校驗子集合。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于比特翻轉(zhuǎn)演算法的校驗權(quán)重集合。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于低密度奇偶檢查碼的最小值-總和演算法的最小值集合。在本發(fā)明的一范例實施例中,所述偏移臨界值負(fù)相關(guān)于所述檢查矩陣的行(column)權(quán)重值,其中所述行權(quán)重值對應(yīng)于所述檢查矩陣中的一個行所包含的元素1的數(shù)目。在本發(fā)明的一范例實施例中,所述偏移臨界值等于或大于將所述預(yù)設(shè)維度值除以所述行權(quán)重值而獲得的最小臨界值。本發(fā)明的另一范例實施例提供一種存儲器儲存裝置,其包括連接接口單元、可復(fù)寫式非易失性存儲器模塊及存儲器控制電路單元。所述連接接口單元用以電性連接至主機系統(tǒng)。所述存儲器控制電路單元電性連接至所述連接接口單元與所述可復(fù)寫式非易失性存儲器模塊,其中所述存儲器控制電路單元用以決定偏移臨界值以及對應(yīng)于所述偏移臨界值的檢查矩陣,其中所述檢查矩陣包括至少一子矩陣群組,其中所述至少一子矩陣群組中的每一個子矩陣具有預(yù)設(shè)維度,其中所述偏移臨界值小于對應(yīng)于所述預(yù)設(shè)維度的預(yù)設(shè)維度值,其中所述至少一子矩陣群組包括第一子矩陣群組,其中所述存儲器控制 電路單元還用以發(fā)送一讀取指令序列,其中所述讀取指令序列指示讀取所述可復(fù)寫式非易失性存儲器模塊的實體單元,其中所述存儲器控制電路單元還用以接收對應(yīng)于所述讀取指令序列的回應(yīng)數(shù)據(jù),其中所述存儲器控制電路單元還用以對所述回應(yīng)數(shù)據(jù)執(zhí)行迭代解碼程序,其中所述迭代解碼程序包括:產(chǎn)生對應(yīng)于所述回應(yīng)數(shù)據(jù)的數(shù)據(jù)集合,其中所述數(shù)據(jù)集合包括多個預(yù)設(shè)群組;根據(jù)屬于所述第一子矩陣群組的多個子矩陣來移動所述預(yù)設(shè)群組以獲得多個第一偏移群組,其中所述第一偏移群組中的每一個偏移群組相對于所述預(yù)設(shè)群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值;以及根據(jù)所述第一偏移群組產(chǎn)生解碼參考數(shù)據(jù)。在本發(fā)明的一范例實施例中,所述子矩陣群組還包括第二子矩陣群組,其中所述迭代解碼程序還包括:根據(jù)屬于所述第二子矩陣群組的多個子矩陣來移動所述第一偏移群組以獲得多個第二偏移群組,其中所述第二偏移群組中的每一個偏移群組相對于所述第一偏移群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值;以及根據(jù)所述第二偏移群組產(chǎn)生所述解碼參考數(shù)據(jù)。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于低密度奇偶檢查碼的奇偶檢查程序的校驗子集合。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于比特翻轉(zhuǎn)演算法的校驗權(quán)重集合。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于低密度奇偶檢查碼的最小值-總和演算法的最小值集合。在本發(fā)明的一范例實施例中,所述偏移臨界值負(fù)相關(guān)于所述檢查矩陣的行權(quán)重值,其中所述行權(quán)重值對應(yīng)于所述檢查矩陣中的一個行所包含的元素1的數(shù)目。在本發(fā)明的一范例實施例中,所述偏移臨界值等于或大于將所述預(yù)設(shè)維度值除以所述行權(quán)重值而獲得的最小臨界值。本發(fā)明的另一范例實施例提供一種存儲器控制電路單元,其用于控制可復(fù)寫式非易失性存儲器模塊,所述存儲器控制電路單元包括主機接口、存儲器接口、錯誤檢查與校正電路及存儲器管理電路。所述主機接口用以電性連接至主機系統(tǒng)。所述存儲器接口用以電性連接至所述可復(fù)寫式非易失性存儲器模塊。所述存儲器管理電路電性連接至所述主機接口、所述存儲器接口及 所述錯誤檢查與校正電路。其中所述存儲器管理電路用以決定偏移臨界值以及對應(yīng)于所述偏移臨界值的檢查矩陣,其中所述檢查矩陣包括至少一子矩陣群組,其中所述子矩陣群組中的每一個子矩陣具有預(yù)設(shè)維度,其中所述偏移臨界值小于對應(yīng)于所述預(yù)設(shè)維度的預(yù)設(shè)維度值,其中所述至少一子矩陣群組包括第一子矩陣群組,其中所述存儲器管理電路還用以發(fā)送讀取指令序列,其中所述讀取指令序列指示讀取所述可復(fù)寫式非易失性存儲器模塊的實體單元,其中所述存儲器管理電路還用以接收對應(yīng)于所述讀取指令序列的回應(yīng)數(shù)據(jù),其中所述錯誤檢查與校正電路用以對所述回應(yīng)數(shù)據(jù)執(zhí)行迭代解碼程序,其中所述迭代解碼程序包括:產(chǎn)生對應(yīng)于所述回應(yīng)數(shù)據(jù)的數(shù)據(jù)集合,其中所述數(shù)據(jù)集合包括多個預(yù)設(shè)群組;根據(jù)屬于所述第一子矩陣群組的多個子矩陣來移動所述預(yù)設(shè)群組以獲得多個第一偏移群組,其中所述第一偏移群組中的每一個偏移群組相對于所述預(yù)設(shè)群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值;以及根據(jù)所述第一偏移群組產(chǎn)生解碼參考數(shù)據(jù)。在本發(fā)明的一范例實施例中,所述子矩陣群組還包括第二子矩陣群組,其中所述迭代解碼程序還包括:根據(jù)屬于所述第二子矩陣群組的多個子矩陣來移動所述第一偏移群組以獲得多個第二偏移群組,其中所述第二偏移群組中的每一個偏移群組相對于所述第一偏移群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值;以及根據(jù)所述第二偏移群組產(chǎn)生所述解碼參考數(shù)據(jù)。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于低密度奇偶檢查碼的奇偶檢查程序的校驗子集合。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于比特翻轉(zhuǎn)演算法的校驗權(quán)重集合。在本發(fā)明的一范例實施例中,所述解碼參考數(shù)據(jù)為對應(yīng)于低密度奇偶檢查碼的最小值-總和演算法的最小值集合。在本發(fā)明的一范例實施例中,所述偏移臨界值負(fù)相關(guān)于所述檢查矩陣的行權(quán)重值,其中所述行權(quán)重值對應(yīng)于所述檢查矩陣中的一個行所包含的元素1的數(shù)目。在本發(fā)明的一范例實施例中,所述偏移臨界值等于或大于將所述預(yù)設(shè)維度值除以所述行權(quán)重值而獲得的最小臨界值。在本發(fā)明的一范例實施例中,所述錯誤檢查與校正電路包括至少一第一 暫存電路、移位電路、至少一第二暫存電路及至少一操作電路。所述第一暫存電路用以暫存所述預(yù)設(shè)群組中的目標(biāo)群組。所述移位電路電性連接至所述第一暫存電路,其中所述移位電路用以移動所述目標(biāo)群組并且輸出所述第一偏移群組中對應(yīng)于所述目標(biāo)群組的偏移目標(biāo)群組。所述第二暫存電路電性連接至所述移位電路并且用以暫存所述偏移目標(biāo)群組。所述操作電路電性連接至所述第二暫存電路,其中所述操作電路用以對所述偏移目標(biāo)群組執(zhí)行邏輯操作并且產(chǎn)生所述解碼參考數(shù)據(jù)。基于上述,在決定偏移臨界值與相對應(yīng)的奇偶檢查矩陣后,在迭代解碼程序中,一個數(shù)據(jù)集合中的群組會對應(yīng)于奇偶檢查矩陣而被執(zhí)行群組移動并且對應(yīng)的偏移量會被限制于不超過所設(shè)定的偏移臨界值。藉此,在本發(fā)明的一范例實施例中,可減少錯誤檢查與校正電路中所需配置的選擇器/移位暫存器的數(shù)量。此外,在本發(fā)明的一范例實施例中,根據(jù)偏移群組來產(chǎn)生解碼參考數(shù)據(jù)也可提升迭代解碼程序中某些階段的執(zhí)行效率。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細(xì)說明如下。附圖說明圖1是根據(jù)本發(fā)明的一范例實施例所示出的主機系統(tǒng)、存儲器儲存裝置及輸入/輸出(I/O)裝置的示意圖;圖2是根據(jù)本發(fā)明的另一范例實施例所示出的主機系統(tǒng)、存儲器儲存裝置及I/O裝置的示意圖;圖3是根據(jù)本發(fā)明的另一范例實施例所示出的主機系統(tǒng)與存儲器儲存裝置的示意圖;圖4是根據(jù)本發(fā)明的一范例實施例所示出的存儲器儲存裝置的概要方塊圖;圖5是根據(jù)本發(fā)明的一范例實施例所示出的存儲器控制電路單元的概要方塊圖;圖6是根據(jù)本發(fā)明的一范例實施例所示出的低密度奇偶檢查碼的置信傳播(beliefpropagation)的示意圖;圖7是根據(jù)本發(fā)明的一范例實施例所示出的奇耦檢查矩陣的示意圖;圖8是根據(jù)本發(fā)明的一范例實施例所示出的奇偶檢查程序的示意圖;圖9是根據(jù)本發(fā)明的一范例實施例所示出的獲得對應(yīng)于奇偶檢查程序的校驗子集合的示意圖;圖10與圖11是根據(jù)本發(fā)明的另一范例實施例所示出的獲得對應(yīng)于比特翻轉(zhuǎn)演算法的校驗權(quán)重集合的示意圖;圖12與圖13是根據(jù)本發(fā)明的另一范例實施例所示出的獲得對應(yīng)于最小值-總和演算法的最小值集合的示意圖;圖14是根據(jù)本發(fā)明的一范例實施例所示出的群組移動的示意圖;圖15A與圖15B是根據(jù)本發(fā)明的一范例實施例所示出的階層式移位器架構(gòu)的示意圖;圖16A與圖16B是根據(jù)本發(fā)明的一范例實施例所示出的筒式移位器(BarrelShifter)架構(gòu)的示意圖;圖17是根據(jù)本發(fā)明的另一范例實施例所示出的簡化(reduced)移位器架構(gòu)的示意圖;圖18是根據(jù)本發(fā)明的一范例實施例所示出的解碼方法的流程圖;圖19是根據(jù)本發(fā)明的一范例實施例所示出的錯誤檢查與校正電路的概要方塊圖。附圖標(biāo)記說明:10:存儲器儲存裝置;11:主機系統(tǒng);110:系統(tǒng)總線;111:處理器;112:隨機存取存儲器;113:只讀存儲器;114:數(shù)據(jù)傳輸接口;12:輸入/輸出(I/O)裝置;20:主機板;201:U盤;202:存儲卡;203:固態(tài)硬盤;204:無線存儲器儲存裝置;205:全球定位系統(tǒng)模塊;206:網(wǎng)路接口卡;207:無線傳輸裝置;208:鍵盤;209:屏幕;210:喇叭;32:SD卡;33:CF卡;34:嵌入式儲存裝置;341:嵌入式多媒體卡;342:嵌入式多芯片封裝儲存裝置;402:連接接口單元;404:存儲器控制電路單元;406:可復(fù)寫式非易失性存儲器模塊;502:存儲器管理電路;504:主機接口;506:存儲器接口;508:錯誤檢查與校正電路;510:緩沖存儲器;512:電源管理電路;601(1)~601(k):奇偶節(jié)點;602(1)~602(n):信息節(jié)點;610:置信傳播圖;700、800、1200:奇偶檢查矩陣;810、910、920:碼字;820:校驗子集合;830、840、1210、1220、1230:子矩陣群組;831~833、841~843:子矩陣;911~913、921~923:偏移群組;1001:校驗權(quán)重集合;1002、1003、1101~1108:向量;1201:最小值集合;1301~1303、1703:選擇器;1311~1313、1701、1702:暫存器;1401~1403:移位暫存器;S1801、S1802、S1803、S1804、S18041、S18042、S18043:步驟;1901_1~1901_3、1903_1~1903_3:暫存電路;1902:移位電路;1904_1~1904_3:操作電路。具體實施方式一般而言,存儲器儲存裝置(也稱,存儲器儲存系統(tǒng))包括可復(fù)寫式非易失性存儲器模塊(rewritablenon-volatilememorymodule)與控制器(也稱,控制電路)。通常存儲器儲存裝置是與主機系統(tǒng)一起使用,以使主機系統(tǒng)可將數(shù)據(jù)寫入至存儲器儲存裝置或從存儲器儲存裝置中讀取數(shù)據(jù)。圖1是根據(jù)本發(fā)明的一范例實施例所示出的主機系統(tǒng)、存儲器儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據(jù)本發(fā)明的另一范例實施例所示出的主機系統(tǒng)、存儲器儲存裝置及I/O裝置的示意圖。請參照圖1與圖2,主機系統(tǒng)11一般包括處理器111、隨機存取存儲器(randomaccessmemory,簡稱為:RAM)112、只讀存儲器(readonlymemory,簡稱為:ROM)113及數(shù)據(jù)傳輸接口114。處理器111、隨機存取存儲器112、只讀存儲器113及數(shù)據(jù)傳輸接口114皆電性連接至系統(tǒng)總線(systembus)110。在本范例實施例中,主機系統(tǒng)11是通過數(shù)據(jù)傳輸接口114與存儲器儲存裝置10電性連接。例如,主機系統(tǒng)11可經(jīng)由數(shù)據(jù)傳輸接口114將數(shù)據(jù)儲存至存儲器儲存裝置10或從存儲器儲存裝置10中讀取數(shù)據(jù)。此外,主機系統(tǒng)11是通過系統(tǒng)總線110與I/O裝置12電性連接。例如,主機系統(tǒng)11可經(jīng)由系統(tǒng)總線110將輸出信號傳送至I/O裝置12或從I/O裝置12接收輸入信號。在本范例實施例中,處理器111、隨機存取存儲器112、只讀存儲器113及數(shù)據(jù)傳輸接口114可設(shè)置在主機系統(tǒng)11的主機板20上。數(shù)據(jù)傳輸接口114 的數(shù)目可以是一或多個。通過數(shù)據(jù)傳輸接口114,主機板20可以經(jīng)由有線或無線方式電性連接至存儲器儲存裝置10。存儲器儲存裝置10可例如是U盤201、存儲卡202、固態(tài)硬盤(SolidStateDrive,簡稱為:SSD)203或無線存儲器儲存裝置204。無線存儲器儲存裝置204可例如是近距離無線通信(NearFieldCommunication,簡稱為:NFC)存儲器儲存裝置、無線保真(WiFi)存儲器儲存裝置、藍(lán)牙(Bluetooth)存儲器儲存裝置或低功耗藍(lán)牙存儲器儲存裝置(例如,iBeacon)等以各式無線通信技術(shù)為基礎(chǔ)的存儲器儲存裝置。此外,主機板20也可以通過系統(tǒng)總線110電性連接至全球定位系統(tǒng)(GlobalPositioningSystem,簡稱為:GPS)模塊205、網(wǎng)路接口卡206、無線傳輸裝置207、鍵盤208、屏幕209、喇叭210等各式I/O裝置。例如,在一范例實施例中,主機板20可通過無線傳輸裝置207存取無線存儲器儲存裝置204。在一范例實施例中,所提及的主機系統(tǒng)為可實質(zhì)地與存儲器儲存裝置配合以儲存數(shù)據(jù)的任意系統(tǒng)。雖然在上述范例實施例中,主機系統(tǒng)是以電腦系統(tǒng)來作說明,然而,圖3是根據(jù)本發(fā)明的另一范例實施例所示出的主機系統(tǒng)與存儲器儲存裝置的示意圖。請參照圖3,在另一范例實施例中,主機系統(tǒng)31也可以是數(shù)碼相機、攝影機、通信裝置、音頻播放器、視頻播放器或平板電腦等系統(tǒng),而存儲器儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非易失性存儲器儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embeddedMMC,簡稱為:eMMC)341和/或嵌入式多芯片封裝儲存裝置(embeddedMultiChipPackage,簡稱為:eMCP)342等各類型將存儲器模塊直接電性連接于主機系統(tǒng)的基板上的嵌入式儲存裝置。圖4是根據(jù)本發(fā)明的一范例實施例所示出的存儲器儲存裝置的概要方塊圖。請參照圖4,存儲器儲存裝置10包括連接接口單元402、存儲器控制電路單元404與可復(fù)寫式非易失性存儲器模塊406。在本范例實施例中,連接接口單元402是兼容于串行高級技術(shù)附件(SerialAdvancedTechnologyAttachment,簡稱為:SATA)標(biāo)準(zhǔn)。然而,必須了解的是,本發(fā)明不限于此,連接接口單元402也可以是符合并行高級技術(shù)附件(ParallelAdvancedTechnologyAttachment,簡稱為:PATA)標(biāo)準(zhǔn)、電氣和電子工程師協(xié)會(InstituteofElectricalandElectronicEngineers,簡稱為:IEEE)1394 標(biāo)準(zhǔn)、外部設(shè)備互連(PeripheralComponentInterconnectExpress,簡稱為:PCIExpress)標(biāo)準(zhǔn)、通用串行總線(UniversalSerialBus,簡稱為:USB)標(biāo)準(zhǔn)、安全數(shù)位(SecureDigital,簡稱為:SD)接口標(biāo)準(zhǔn)、超高速一代(UltraHighSpeed-I,簡稱為:UHS-I)接口標(biāo)準(zhǔn)、超高速二代(UltraHighSpeed-II,簡稱為:UHS-II)接口標(biāo)準(zhǔn)、記憶棒(MemoryStick,簡稱為:MS)接口標(biāo)準(zhǔn)、多芯片封裝(Multi-ChipPackage)接口標(biāo)準(zhǔn)、多媒體儲存卡(MultiMediaCard,簡稱為:MMC)接口標(biāo)準(zhǔn)、崁入式多媒體儲存卡(EmbeddedMultimediaCard,簡稱為:eMMC)接口標(biāo)準(zhǔn)、通用快閃存儲器(UniversalFlashStorage,簡稱為:UFS)接口標(biāo)準(zhǔn)、嵌入式多芯片封裝(embeddedMultiChipPackage,簡稱為:eMCP)接口標(biāo)準(zhǔn)、小型快閃(CompactFlash,簡稱為:CF)接口標(biāo)準(zhǔn)、整合式驅(qū)動電子接口(IntegratedDeviceElectronics,簡稱為:IDE)標(biāo)準(zhǔn)或其他適合的標(biāo)準(zhǔn)。連接接口單元402可與存儲器控制電路單元404封裝在一個芯片中,或者連接接口單元402是布設(shè)于一包含存儲器控制電路單元404的芯片外。存儲器控制電路單元404用以執(zhí)行以硬件形式或固件形式操作的多個邏輯閘或控制指令并且根據(jù)主機系統(tǒng)11的指令在可復(fù)寫式非易失性存儲器模塊406中進行數(shù)據(jù)的寫入、讀取與抹除等運作??蓮?fù)寫式非易失性存儲器模塊406是電性連接至存儲器控制電路單元404并且用以儲存主機系統(tǒng)11所寫入的數(shù)據(jù)。可復(fù)寫式非易失性存儲器模塊406可以是單層單元(SingleLevelCell,簡稱為:SLC)NAND型快閃存儲器模塊(即,一個存儲單元中可儲存1個比特的快閃存儲器模塊)、多層單元(MultiLevelCell,簡稱為:MLC)NAND型快閃存儲器模塊(即,一個存儲單元中可儲存2個比特的快閃存儲器模塊)、三層單元(TripleLevelCell,簡稱為:TLC)NAND型快閃存儲器模塊(即,一個存儲單元中可儲存3個比特的快閃存儲器模塊)、其他快閃存儲器模塊或其他具有相同特性的存儲器模塊。圖5是根據(jù)本發(fā)明的一范例實施例所示出的存儲器控制電路單元的概要方塊圖。請參照圖5,存儲器控制電路單元404包括存儲器管理電路502、主機接口504、存儲器接口506及錯誤檢查與校正電路508。存儲器管理電路502用以控制存儲器控制電路單元404的整體運作。具體來說,存儲器管理電路502具有多個控制指令,并且在存儲器儲存裝置10 運作時,此些控制指令會被執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。以下說明存儲器管理電路502的操作時,等同于說明存儲器控制電路單元404的操作。在本范例實施例中,存儲器管理電路502的控制指令是以固件形式來操作。例如,存儲器管理電路502具有微處理器單元(未示出)與只讀存儲器(未示出),并且此些控制指令是被燒錄至此只讀存儲器中。當(dāng)存儲器儲存裝置10運作時,此些控制指令會由微處理器單元來執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。在另一范例實施例中,存儲器管理電路502的控制指令也可以程序碼形式儲存于可復(fù)寫式非易失性存儲器模塊406的特定區(qū)域(例如,存儲器模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲器管理電路502具有微處理器單元(未示出)、只讀存儲器(未示出)及隨機存取存儲器(未示出)。特別是,此只讀存儲器具有開機碼(bootcode),并且當(dāng)存儲器控制電路單元404被致能時,微處理器單元會先執(zhí)行此開機碼來將儲存于可復(fù)寫式非易失性存儲器模塊406中的控制指令載入至存儲器管理電路502的隨機存取存儲器中。后,微處理器單元會運轉(zhuǎn)此些控制指令以進行數(shù)據(jù)的寫入、讀取與抹除等運作。此外,在另一范例實施例中,存儲器管理電路502的控制指令也可以一硬件形式來操作。例如,存儲器管理電路502包括微控制器、存儲單元管理電路、存儲器寫入電路、存儲器讀取電路、存儲器抹除電路與數(shù)據(jù)處理電路。存儲單元管理電路、存儲器寫入電路、存儲器讀取電路、存儲器抹除電路與數(shù)據(jù)處理電路是電性連接至微控制器。其中,存儲單元管理電路用以管理可復(fù)寫式非易失性存儲器模塊406的實體抹除單元;存儲器寫入電路用以對可復(fù)寫式非易失性存儲器模塊406下達(dá)寫入指令序列以將數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊406中;存儲器讀取電路用以對可復(fù)寫式非易失性存儲器模塊406下達(dá)讀取指令序列以從可復(fù)寫式非易失性存儲器模塊406中讀取數(shù)據(jù);存儲器抹除電路用以對可復(fù)寫式非易失性存儲器模塊406下達(dá)抹除指令序列以將數(shù)據(jù)從可復(fù)寫式非易失性存儲器模塊406中抹除;而數(shù)據(jù)處理電路用以處理欲寫入至可復(fù)寫式非易失性存儲器模塊406的數(shù)據(jù)以及從可復(fù)寫式非易失性存儲器模塊406中讀取的數(shù)據(jù)。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程序碼或指令碼并且用以指示可復(fù)寫式非 易失性存儲器模塊406執(zhí)行相對應(yīng)的寫入、讀取及抹除等操作。主機接口504是電性連接至存儲器管理電路502并且用以接收與識別主機系統(tǒng)11所傳送的指令與數(shù)據(jù)。也就是說,主機系統(tǒng)11所傳送的指令與數(shù)據(jù)會通過主機接口504來傳送至存儲器管理電路502。在本范例實施例中,主機接口504是兼容于SATA標(biāo)準(zhǔn)。然而,必須了解的是本發(fā)明不限于此,主機接口504也可以是兼容于PATA標(biāo)準(zhǔn)、IEEE1394標(biāo)準(zhǔn)、PCIExpress標(biāo)準(zhǔn)、USB標(biāo)準(zhǔn)、SD標(biāo)準(zhǔn)、UHS-I標(biāo)準(zhǔn)、UHS-II標(biāo)準(zhǔn)、MS標(biāo)準(zhǔn)、MMC標(biāo)準(zhǔn)、eMMC標(biāo)準(zhǔn)、UFS標(biāo)準(zhǔn)、CF標(biāo)準(zhǔn)、IDE標(biāo)準(zhǔn)或其他適合的數(shù)據(jù)傳輸標(biāo)準(zhǔn)。存儲器接口506是電性連接至存儲器管理電路502并且用以存取可復(fù)寫式非易失性存儲器模塊406。也就是說,欲寫入至可復(fù)寫式非易失性存儲器模塊406的數(shù)據(jù)會經(jīng)由存儲器接口506轉(zhuǎn)換為可復(fù)寫式非易失性存儲器模塊406所能接受的格式。具體來說,若存儲器管理電路502要存取可復(fù)寫式非易失性存儲器模塊406,存儲器接口506會傳送對應(yīng)的指令序列。例如,這些指令序列可包括指示寫入數(shù)據(jù)的寫入指令序列、指示讀取數(shù)據(jù)的讀取指令序列、指示抹除數(shù)據(jù)的抹除指令序列、以及用以指示各種存儲器操作(例如,改變讀取電壓準(zhǔn)位或執(zhí)行垃圾回收程序等等)的相對應(yīng)的指令序列,在此不一一贅述。這些指令序列例如是由存儲器管理電路502產(chǎn)生并且通過存儲器接口506傳送至可復(fù)寫式非易失性存儲器模塊406。這些指令序列可包括一或多個信號,或是在總線上的數(shù)據(jù)。這些信號或數(shù)據(jù)可包括指令碼或程序碼。例如,在讀取指令序列中,會包括讀取的辨識碼、存儲器地址等信息。錯誤檢查與校正電路508是電性連接至存儲器管理電路502并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當(dāng)存儲器管理電路502從主機系統(tǒng)11中接收到寫入指令時,錯誤檢查與校正電路508會為對應(yīng)此寫入指令的數(shù)據(jù)產(chǎn)生對應(yīng)的錯誤更正碼(errorcorrectingcode,簡稱為:ECC)和/或錯誤檢查碼(errordetectingcode,簡稱為:EDC),并且存儲器管理電路502會將對應(yīng)此寫入指令的數(shù)據(jù)與對應(yīng)的錯誤更正碼和/或錯誤檢查碼寫入至可復(fù)寫式非易失性存儲器模塊406中。后,當(dāng)存儲器管理電路502從可復(fù)寫式非易失性存儲器模塊406中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應(yīng)的錯誤更正碼和/或錯誤檢查碼,并且錯誤檢查與校正電路508會依據(jù)此錯誤更正碼和/或錯誤檢查碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。在本范例實施例中,錯誤檢查與校正電路508所使用的是低密度奇偶檢查碼(lowdensityparitycode,簡稱為:LDPC)。然而,在另一范例實施例中,錯誤檢查與校正電路508所使用的也可以是BCH碼、回旋碼(convolutionalcode)、渦輪碼(turbocode)、比特翻轉(zhuǎn)(bitflipping)等編/解碼演算法。在一范例實施例中,存儲器控制電路單元404還包括緩沖存儲器510與電源管理電路512。緩沖存儲器510是電性連接至存儲器管理電路502并且用以暫存來自于主機系統(tǒng)11的數(shù)據(jù)與指令或來自于可復(fù)寫式非易失性存儲器模塊406的數(shù)據(jù)。電源管理電路512是電性連接至存儲器管理電路502并且用以控制存儲器儲存裝置10的電源。在本范例實施例中,存儲器管理電路502會配置邏輯單元來映射至可復(fù)寫式非易失性存儲器模塊406中的實體單元。例如,在本范例實施例中,主機系統(tǒng)11是通過邏輯地址來存取可復(fù)寫式非易失性存儲器模塊406中的數(shù)據(jù),因此,每一個邏輯單元是指一個邏輯地址。然而,在另一范例實施例中,每一個邏輯單元也可以是指一個邏輯扇、一個邏輯頁或者由多個連續(xù)的邏輯地址組成。每一個邏輯單元是映射至一或多個實體單元。在本范例實施例中,一個實體單元是指一個實體區(qū)塊。然而,在另一范例實施例中,一個實體單元也可以是一個實體地址、一個實體扇、一個實體頁或者是由多個連續(xù)的實體地址組成,本發(fā)明不加以限制。存儲器管理電路502會將邏輯單元與實體單元間的映射關(guān)系記錄于一邏輯-實體映射表。當(dāng)主機系統(tǒng)11欲從存儲器儲存裝置10讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)至存儲器儲存裝置10時,存儲器管理電路502可根據(jù)此邏輯-實體映射表來執(zhí)行對于存儲器儲存裝置10的數(shù)據(jù)存取。在本范例實施例中,錯誤檢查與校正電路508會根據(jù)低密度奇偶檢查碼來編碼與解碼。在低密度奇偶檢查碼中,是用一個檢查矩陣(也稱為奇偶檢查矩陣)來定義有效的碼字。以下將奇偶檢查矩陣標(biāo)記為矩陣H,并且一碼字標(biāo)記為CW。依照以下方程式(1),若奇偶檢查矩陣H與碼字CW的相乘是零向量,表示碼字CW為有效的碼字。其中運算子表示模2(mod2)的矩陣相乘。換言,矩陣H的零空間(nullspace)便包含了所有的有效碼字(validcodeword)。然而,本發(fā)明并不限制碼字CW的內(nèi)容。例如,碼字CW也可以包括用任意演算法所產(chǎn)生的錯誤更正碼或是錯誤檢查碼。其中矩陣H的維度是k-乘-n(k-by-n),碼字CW的維度是1-乘-n。k與n為正整數(shù)。碼字CW中包括了信息位與奇偶位,即碼字CW可以表示成[MP],其中向量M是由信息位所組成,向量P是由奇偶位所組成。向量M的維度是1-乘-(n-k),而向量P的維度是1-乘-k。以下將信息位與奇偶位統(tǒng)稱為數(shù)據(jù)位。換言,碼字CW中具有n個數(shù)據(jù)位,其中信息位的長度為(n-k)比特,并且奇偶位的長度是k比特,即碼字CW的碼率(coderate)為(n-k)/n。一般來說在編碼時會使用一個產(chǎn)生矩陣(以下標(biāo)記為G),使得對于任意的向量M都可滿足以下方程式(2)。其中產(chǎn)生矩陣G的維度是(n-k)-乘-n。由方程式(2)所產(chǎn)生的碼字CW為有效的碼字。因此可將方程式(2)代入方程式(1),藉此得到以下方程式(3)。由于向量M可以是任意的向量,因此以下方程式(4)必定會滿足。也就是說,在決定奇偶檢查矩陣H以后,對應(yīng)的產(chǎn)生矩陣G也可被決定。在解碼一個碼字CW時,會先對碼字中的數(shù)據(jù)位執(zhí)行一個奇偶檢查程序,例如將奇偶檢查矩陣H與碼字CW相乘以產(chǎn)生一個向量(以下標(biāo)記為S,如以下方程式(5)所示)。若向量S是零向量,則可直接輸出碼字CW。若向量S不是零向量,則表示碼字CW中存在至少一個錯誤并且碼字CW不是有效的碼字。向量S的維度是k-乘-1,其中每一個元素也稱為校驗子(syndrome)。向量S也稱為校驗子向量(或校驗子集合)。若碼字CW不是有效的碼字,則錯誤檢查與校正電路508會執(zhí)行一個解碼程序,以嘗試更正碼字CW中的錯誤。圖6是根據(jù)本發(fā)明的一范例實施例所示出的低密度奇偶檢查碼的置信傳播(beliefpropagation)的示意圖。請參照圖6,一般來說,奇耦檢查矩陣H可以表示為置信傳播圖610,其中包括奇偶節(jié)點601(1)~601(k)與信息節(jié)點602(1)~602(n)。每一個奇偶節(jié)點601(1)~601(k)是對應(yīng)到一個校驗子,而每一個信息節(jié)點602(1)~602(n)是對應(yīng) 一個數(shù)據(jù)位。數(shù)據(jù)位與校驗子間的對應(yīng)關(guān)系(即,信息節(jié)點602(1)~602(n)與奇偶節(jié)點601(1)~601(k)間的連結(jié)關(guān)系)是根據(jù)奇偶檢查矩陣H所產(chǎn)生。具體來說,若奇耦檢查矩陣H中第i列(row)第j行(column)的元素為1,則第i個奇偶節(jié)點601(i)便會連接到第j個信息節(jié)點602(j),其中i與j為正整數(shù)。當(dāng)存儲器管理電路502從可復(fù)寫式非易失性存儲器模塊106中讀取n個數(shù)據(jù)位(形成一個碼字)時,存儲器管理電路502(或錯誤檢查與校正電路508)也會取得每一個數(shù)據(jù)位的可靠度信息(也稱為通道可靠度信息)。此可靠度信息是用以表示對應(yīng)的數(shù)據(jù)位被解碼為比特“1”或是“0”的機率(或稱信心度)。例如,在圖610中,信息節(jié)點602(1)~602(n)會接收到對應(yīng)的可靠度信息L1~Ln。其中,信息節(jié)點602(1)會接收第1個數(shù)據(jù)位的可靠度信息L1,而信息節(jié)點602(j)會接收第j個數(shù)據(jù)位的可靠度信息Lj。錯誤檢查與校正電路508會根據(jù)圖610的結(jié)構(gòu)與通道可靠度信息L1~Ln來執(zhí)行解碼程序。在本范例實施例中,錯誤檢查與校正電路508所執(zhí)行的解碼程序為一迭代解碼(iterativedecoding)程序。在迭代解碼程序中,信息節(jié)點602(1)~602(n)會計算出可靠度信息給奇偶節(jié)點601(1)~601(k),并且奇偶節(jié)點601(1)~601(k)也會計算出可靠度信息給信息節(jié)點602(1)~602(n)。計算出來的可靠度信息會沿著這些圖610中的邊(edge)來傳送。例如,奇偶節(jié)點601(i)傳送給信息節(jié)點602(j)的是可靠度信息Li→j,而信息節(jié)點602(j)傳送給奇偶節(jié)點601(i)是可靠度信息Lj→i。這些可靠度信息是用來表示一個節(jié)點認(rèn)為某一個數(shù)據(jù)位被解碼為“1”或是“0”的機率(或上述信心度)有多少。舉例來說,可靠度信息Lj→i表示信息節(jié)點602(j)認(rèn)為第j個數(shù)據(jù)位被解碼為“1”或是“0”的信心度(可為正或是負(fù)),而可靠度信息Li→j表示奇偶節(jié)點601(i)認(rèn)為第j個數(shù)據(jù)位被解碼為“1”或是“0”的信心度。而信息節(jié)點602(1)~602(n)與奇偶節(jié)點601(1)~601(k)會根據(jù)輸入的可靠度信息來計算輸出的可靠度信息,其近似于計算一個數(shù)據(jù)位被解碼為“1”或是“0”的條件機率。因此,上述傳送可靠度信息的過程又被稱為置信傳播。當(dāng)采用不同的演算法,信息節(jié)點602(1)~602(n)和/或奇偶節(jié)點601(1)~601(k)會計算出不同的可靠度信息。例如,錯誤檢查與校正電路508可以采用總和-乘積演算法(Sum-ProductAlgorithm)、最小值-總和演算法(Min-SumAlgorithm)、或是比特翻轉(zhuǎn)(bit-flippingAlgorithm),本發(fā)明并不限制 采用何種演算法。在本范例實施例中,迭代解碼程序中的迭代(iteration)會不斷的重復(fù)執(zhí)行,以更新至少部分?jǐn)?shù)據(jù)位的可靠度信息,直到成功地獲得有效碼字或執(zhí)行迭代的次數(shù)到達(dá)一預(yù)定門檻值為止。例如,在迭代解碼程序的每一次迭代中,信息節(jié)點602(1)~602(n)會傳遞可靠度信息給奇偶節(jié)點601(1)~601(k),并且奇偶節(jié)點601(1)~601(k)會傳遞可靠度信息給信息節(jié)點602(1)~602(n)。在每一次迭代過后,錯誤檢查與校正電路508會根據(jù)目前的可靠度信息計算出每一個數(shù)據(jù)位應(yīng)該被解碼為二進制“1”或是“0”并且對這些計算出的數(shù)據(jù)位進行驗證。例如,錯誤檢查與校正電路508會執(zhí)行奇偶檢查程序以驗證計算出的數(shù)據(jù)位。在奇偶檢查程序中,錯誤檢查與校正電路508會將數(shù)據(jù)位所形成的碼字與相對應(yīng)的奇偶檢查矩陣相乘,藉此判斷該碼字是否為有效的碼字。若所產(chǎn)生的碼字為有效的碼字,表示解碼成功,并且迭代解碼程序會停止。若所產(chǎn)生的碼字不是有效的碼字,則會進行下一次的迭代。此外,若迭代解碼程序中的迭代次數(shù)超過一個預(yù)設(shè)值,則迭代解碼也會停止,表示解碼失敗。圖7是根據(jù)本發(fā)明的一范例實施例所示出的奇耦檢查矩陣的示意圖。請參照圖7,奇偶檢查矩陣700的維度是6-乘-9,但本發(fā)明并不限制正整數(shù)k與n為多少。奇偶檢查矩陣700的每一列(row)也代表了一個限制(constraint)。以奇偶檢查矩陣700的第一列為例,若某一個碼字是有效碼字,則將此碼字中第2、6及7個比特做模2(modulo-2)的加法后,會得到二進制“0”。在此領(lǐng)域有通常知識者應(yīng)能理解如何用奇偶檢查矩陣700來編碼,在此便不再贅述。此外,奇偶檢查矩陣700僅為一個范例矩陣,而非用以限制本發(fā)明。當(dāng)存儲器管理電路502要將多個比特寫入至可復(fù)寫式非易失性存儲器模塊406時,錯誤檢查與校正電路508會對每(n-k)個欲被寫入的比特(即,信息位)都產(chǎn)生對應(yīng)的k個比特(即,奇偶位)。存儲器管理電路502會把這n個比特(即,數(shù)據(jù)位)作為一個碼字寫入至可復(fù)寫式非易失性存儲器模塊406。存儲器管理電路502會接收來自主機系統(tǒng)11的一讀取指令。根據(jù)此讀取指令,存儲器管理電路502會發(fā)送一讀取指令序列至可復(fù)寫式非易失性存儲器模塊406。此讀取指令序列會指示可復(fù)寫式非易失性存儲器模塊406讀取至少一實體單元。根據(jù)此讀取指令序列,可復(fù)寫式非易失性存儲器模塊406 會執(zhí)行相對應(yīng)的讀取操作(例如,施予讀取電壓至某一實體單元以讀取至少一存儲單元所儲存的數(shù)據(jù))并回傳一回應(yīng)數(shù)據(jù)給存儲器管理電路502。存儲器管理電路502會接收來自可復(fù)寫式非易失性存儲器模塊406的回應(yīng)數(shù)據(jù),并且錯誤檢查與校正電路508會對此回應(yīng)數(shù)據(jù)執(zhí)行一迭代解碼程序。在本范例實施例中,存儲器管理電路502會決定一個偏移臨界值。根據(jù)所決定的偏移臨界值,存儲器管理電路502會決定一個檢查矩陣(例如,圖7中的奇偶檢查矩陣700)。錯誤檢查與校正電路508會根據(jù)此檢查矩陣來執(zhí)行上述編碼與解碼程序。相關(guān)的編碼與解碼程序已詳述于上,在此便不贅述。在本范例實施例中,所決定的檢查矩陣會包括多個子矩陣。此些子矩陣會被分組為至少一個子矩陣群組。每一個子矩陣會具有一個預(yù)設(shè)維度。特別是,所決定的偏移臨界值會小于對應(yīng)于此預(yù)設(shè)維度的一個預(yù)設(shè)維度值。例如,若每一個子矩陣的預(yù)設(shè)維度皆為3-乘-3,則對應(yīng)于此預(yù)設(shè)維度的預(yù)設(shè)維度值為“3”。在迭代解碼程序中,錯誤檢查與校正電路508會產(chǎn)生對應(yīng)于所接收的回應(yīng)數(shù)據(jù)的一個數(shù)據(jù)集合。此數(shù)據(jù)集合會包括多個群組。錯誤檢查與校正電路508會根據(jù)所決定的偏移臨界值與所決定的檢查矩陣中不同的子矩陣群組來移動(shift)此些數(shù)據(jù)集合中的群組以獲得多個偏移群組,使得數(shù)據(jù)集合中的每一個群組對應(yīng)于每一次的移動(以下也稱為群組移動)的一偏移量都不會超過所決定的偏移臨界值。值得一提的是,在此提及的群組移動是指以群組為單位來移動各個群組中的比特。例如,假設(shè)某一個群組包括依序排列的元素“A1”、“A2”及“A3”,則在對于此群組執(zhí)行位移量為“1”(即,offset=1)的群組移動后,此群組中的元素排列順序改變?yōu)樵亍癆3”、“A1”及“A2”;而依序排列的元素“A3”、“A1”及“A2”可視為相對于依序排列的元素“A3”、“A1”及“A2”的偏移群組,并且依序排列的元素“A3”、“A1”及“A2”相對于依序排列的元素“A3”、“A1”及“A2”的偏移量為“1”。然后,錯誤檢查與校正電路508會根據(jù)此些偏移群組來產(chǎn)生解碼參考數(shù)據(jù)。此解碼參考數(shù)據(jù)會在迭代解碼程序中被使用。在一范例實施例中,所產(chǎn)生的解碼參考數(shù)據(jù)是對應(yīng)于一個奇偶檢查程序的校驗子集合(也稱為校驗子向量)并且可被用來驗證某一碼字是否為有效碼字(或,解碼是否成功)。在一范例實施例中,所產(chǎn)生的解碼參考數(shù)據(jù)是對應(yīng)于一個比特翻轉(zhuǎn)演算法的校驗權(quán)重集合(也稱為校驗權(quán)重向量)并且可被用來決 定要被翻轉(zhuǎn)的數(shù)據(jù)位。在一范例實施例中,所產(chǎn)生的解碼參考數(shù)據(jù)則是對應(yīng)于一個最小值-總和演算法的最小值集合(也稱為最小值向量)并且可被用來決定至少部分?jǐn)?shù)據(jù)位的可靠度信息。以下基于多個范例實施例來說明如何在迭代解碼程序中對數(shù)據(jù)集合執(zhí)行移動群組并產(chǎn)生相對應(yīng)的解碼參考數(shù)據(jù)。圖8是根據(jù)本發(fā)明的一范例實施例所示出的奇偶檢查程序的示意圖。在本范例實施例中,數(shù)據(jù)集合與解碼參考數(shù)據(jù)皆是用于低密度奇偶檢查碼的奇偶檢查程序。例如,數(shù)據(jù)集合是指奇偶檢查程序中待驗證的碼字,而解碼參考數(shù)據(jù)則是奇偶檢查程序中產(chǎn)生的校驗子集合。請參照圖8,存儲器管理電路502會決定一個偏移臨界值。在本范例實施例中,所決定的偏移臨界值為“2”。對應(yīng)于所決定的偏移臨界值,存儲器管理電路502會決定一個奇偶檢查矩陣800。奇偶檢查矩陣800會被用來執(zhí)行儲存數(shù)據(jù)時的編碼與讀取數(shù)據(jù)時的解碼。在本范例實施例中,奇偶檢查矩陣800包括子矩陣群組830與840。子矩陣群組830與840分別包括以列(row)方向排列的子矩陣831~833以及841~843。子矩陣831~833以及841~843中的每一者皆為一個方陣,并且子矩陣831~833以及841~843中的每一者皆具有一個預(yù)設(shè)維度。例如,子矩陣831~833以及841~843中的每一者的預(yù)設(shè)維度皆為3-乘-3,并且對應(yīng)于此預(yù)設(shè)維度的預(yù)設(shè)維度值為“3”。存儲器管理電路502會限制所決定的奇偶檢查矩陣800中,對應(yīng)于子矩陣831~833以及841~843中的每一者的預(yù)設(shè)維度的預(yù)設(shè)維度值(即,“3”)大于事先決定的偏移臨界值(即,“2”)。然而,對應(yīng)于不同的偏移臨界值,所決定的奇偶檢查矩陣也可以不同,只要滿足所決定的奇偶檢查矩陣中各個子矩陣的預(yù)設(shè)維度值大于事先決定的偏移臨界值即可。例如,在另一范例實施例中,奇偶檢查矩陣中的子矩陣群組的數(shù)目可以是更多或更少、每一個子矩陣群組中的子矩陣的數(shù)目可以是更多或更少,并且每一個子矩陣的預(yù)設(shè)維度可以是更大或更小。在本范例實施例中,在存儲器管理電路502發(fā)送上述讀取指令序列并接收對應(yīng)于此讀取指令序列的回應(yīng)數(shù)據(jù)后,錯誤檢查與校正電路508會對此回應(yīng)數(shù)據(jù)執(zhí)行迭代解碼程序。在迭代解碼程序的某一迭代中,碼字810會被決定并且在對應(yīng)的奇偶檢查程序中被驗證是否為有效碼字。具體而言,在對于碼字810的奇偶檢查程序中,錯誤檢查與校正電路508 會獲得奇偶檢查矩陣800與碼字810的矩陣相乘的結(jié)果并將此結(jié)果作為校驗子集合820。例如,對應(yīng)于奇偶檢查矩陣800的第一列中的多個元素1的位置,對碼字810中的比特A2、B3及C1執(zhí)行模2加法可獲得校驗子集合820中的校驗子S1;對應(yīng)于奇偶檢查矩陣800的第二列中的多個元素1的位置,對碼字810中的比特A3、B1及C2執(zhí)行模2加法可獲得校驗子集合820中的校驗子S2;對應(yīng)于奇偶檢查矩陣800的第四列中的多個元素1的位置,對碼字810中的比特A3、B1及C2執(zhí)行模2加法可獲得校驗子集合820中的校驗子S4。以此類推,校驗子集合820中的校驗子S1~S6會被獲得。然后,錯誤檢查與校正電路508會根據(jù)校驗子集合820是否為零向量(即,校驗子S1~S6皆為“0”)來判斷碼字810中是否存在錯誤。例如,若校驗子S1~S6皆為“0”,則錯誤檢查與校正電路508會判定碼字810中不存在任何錯誤(即,碼字810為有效碼字)并且根據(jù)碼字810輸出解碼數(shù)據(jù);然而,若校驗子S1~S6的至少其中一為“1”,則錯誤檢查與校正電路508會判定碼字810中存在錯誤。若錯誤檢查與校正電路508判定碼字810中存在錯誤且已執(zhí)行的迭代的次數(shù)尚未達(dá)到預(yù)定門檻值,則錯誤檢查與校正電路508會對于碼字810執(zhí)行下一次迭代并且再次執(zhí)行一個奇偶檢查程序來對產(chǎn)生的碼字進行驗證。此外,在一范例實施例中,也可以搭配改變讀取電壓準(zhǔn)位來再次讀取相同的實體單元或改變解碼方式等機制來加強解碼效率,在此便不贅述。在本范例實施例中,錯誤檢查與校正電路508并不會真正地執(zhí)行如圖8所示出的矩陣相乘。取而代的是,錯誤檢查與校正電路508會對應(yīng)于奇偶檢查矩陣800中的子矩陣群組830與840來對碼字810執(zhí)行群組移動以及矩陣加法來獲得校驗子集合820。原因在于,在多數(shù)的情況下,執(zhí)行矩陣加法相對于執(zhí)行矩陣乘法具有運算復(fù)雜度較低和/或運算速度較快的優(yōu)勢。換言,錯誤檢查與校正電路508會以層(layer)為單位來逐漸產(chǎn)生校驗子集合820。例如,子矩陣群組830為第一層并且用以計算校驗子集合820中的校驗子S1~S3;子矩陣群組840為第二層并且用以計算校驗子集合820中的校驗子S4~S6。在本范例實施例中,對應(yīng)于奇偶檢查矩陣800中每一個子矩陣的預(yù)設(shè)維度,錯誤檢查與校正電路508會將碼字810中的比特分組為多個群組(以下也稱為預(yù)設(shè)群組)。例如,對應(yīng)于子矩陣的預(yù)設(shè)維度為3-乘3,碼字810中的比特A1、A2、A3被分組至同一個預(yù)設(shè)群組(以下也稱為第一預(yù)設(shè)群組),碼字810 中的比特B1、B2、B3被分組至同一個預(yù)設(shè)群組(以下也稱為第二預(yù)設(shè)群組),并且碼字810中的比特C1、C2、C3被分組至同一個預(yù)設(shè)群組(以下也稱為第三預(yù)設(shè)群組)。在對應(yīng)的群組移動中,碼字810中的每一個比特皆是以其所屬的群組作為一個統(tǒng)一移動單位。換言,屬于同一個群組的多個比特對應(yīng)于一次的群組移動偏移量會相同,而屬于不同群組的多個比特對應(yīng)于一次的群組移動的偏移量可能相同或不同。例如,在對應(yīng)于某一個層的群組移動中,同屬于第一預(yù)設(shè)群組的比特A1、A2及A3的偏移量相同,但分別屬于第一預(yù)設(shè)群組與第二預(yù)設(shè)群組的比特A1與B1的偏移量可能相同或不同。圖9是根據(jù)本發(fā)明的一范例實施例所示出的獲得對應(yīng)于奇偶檢查程序的校驗子集合的示意圖。請參照圖8與圖9,對應(yīng)于子矩陣群組830(即,第一層)的群組移動會先被執(zhí)行。例如,對應(yīng)于子矩陣群組830中元素1的位置,碼字810中的比特A1、A2、A3會被移動為比特A2、A3、A1,碼字810中的比特B1、B2、B3會被移動為比特B3、B1、B2,并且碼字810中的比特C1、C2、C3不被移動。因此,圖9中包含依序排列的比特A2、A3、A1、B3、B1、B2、C1、C2、C3的碼字910會被獲得。在本范例實施例中,碼字910中的比特A2、A3、A1被視為屬于對應(yīng)于第一預(yù)設(shè)群組的偏移群組911,碼字910中的比特B3、B1、B2被視為屬于對應(yīng)于第二預(yù)設(shè)群組的偏移群組912,并且碼字910中的比特C1、C2、C3被視為屬于對應(yīng)于第三預(yù)設(shè)群組的偏移群組913。其中,偏移群組911相對于第一預(yù)設(shè)群組的偏移量為“1”(即,offset=1),偏移群組912相對于第二預(yù)設(shè)群組的偏移量為“2”(即,offset=2),并且偏移群組913相對于第三預(yù)設(shè)群組的偏移量為“0”(即,offset=0)。然后,錯誤檢查與校正電路508會根據(jù)偏移群組911~913來產(chǎn)生校驗子集合820中的一部分校驗子。例如,錯誤檢查與校正電路508會對偏移群組911~913執(zhí)行矩陣加法以獲得校驗子向量1020中的校驗子S1~S3。在獲得偏移群組911~913后,對應(yīng)于子矩陣群組840(即,第二層)的群組移動會被執(zhí)行。例如,對應(yīng)于子矩陣群組840中元素1的位置,偏移群組911中的比特A2、A3、A1會被移動為比特A3、A1、A2,偏移群組912中的比特B3、B1、B2會被移動為比特B1、B2、B3,并且偏移群組913中的比特C1、 C2、C3會被移動為比特C2、C3、C1。因此,圖9中包含依序排列的比特A3、A1、A2、B1、B2、B3、C2、C3、C1的碼字920會被獲得。在本范例實施例中,碼字920中的比特A3、A1、A2被視為屬于對應(yīng)于偏移群組911的偏移群組921,碼字920中的比特B1、B2、B3被視為屬于對應(yīng)于偏移群組912的偏移群組922,并且碼字920中的比特C2、C3、C1被視為屬于對應(yīng)于偏移群組913的偏移群組923。其中,偏移群組921相對于偏移群組911的偏移量為“1”(即,offset=1),偏移群組922相對于偏移群組912的偏移量為“1”(即,offset=1),并且偏移群組923相對于偏移群組913的偏移量為“1”(即,offset=1)。然后,錯誤檢查與校正電路508會根據(jù)偏移群組921~923來產(chǎn)生校驗子集合820中的另一部分的校驗子。例如,錯誤檢查與校正電路508會對偏移群組921~923執(zhí)行矩陣加法以獲得校驗子集合820中的校驗子S4~S6。存儲器管理電路502(或,錯誤檢查與校正電路508)會限制對應(yīng)于每一個子矩陣群組(即,層)所執(zhí)行的群組移動的偏移量皆不超過所決定的偏移臨界值。例如,在圖8與圖9的范例實施例中,偏移臨界值被設(shè)定為“2”,因此,偏移群組911~913中的每一者相對于其在碼字810中的一個對應(yīng)群組的偏移量皆不超過“2”;而偏移群組921~923分別相對于偏移群組911~913的偏移量也不超過“2”。例如,在執(zhí)行對應(yīng)于子矩陣群組830(即,第一層)的群組移動而產(chǎn)生偏移群組911~913的操作中,碼字810中每一個比特的偏移量可以是“0”、“1”或“2”,視其所屬的群組而定;而在執(zhí)行對應(yīng)于子矩陣群組840(即,第二層)的群組移動而產(chǎn)生偏移群組921~923的操作中,碼字920中每一個比特的偏移量也可以是“0”、“1”或“2”,視其所屬的群組而定。此外,在圖8與圖9的另一范例實施例中,若偏移臨界值被設(shè)定為“1”,則在后續(xù)每一次的群組移動中每一個偏移群組中的比特的偏移量皆不超過“1”。在一范例實施例中,若奇偶檢查程序中產(chǎn)生的校驗子集合不是零向量(例如,圖8中校驗子S1~S6的至少其中一為“1”),表示當(dāng)前驗證的碼字中存在錯誤。因此,一個比特翻轉(zhuǎn)演算法可以被用來快速地決定要翻轉(zhuǎn)(flip)碼字中的哪一個比特,例如,將某一個比特的值從“0”改變?yōu)椤?”或者從“1”改變?yōu)椤?”,以嘗試更正碼字中的錯誤。在比特翻轉(zhuǎn)演算法中,需要計算對應(yīng)于校驗子集合的一個校驗權(quán)重(syndromeweight)集合并且碼字中的至少一個比特會基于 此校驗權(quán)重集合而被翻轉(zhuǎn)。在一范例實施例中,通過對數(shù)據(jù)集合中的多個群組執(zhí)行群組移動來獲得相對應(yīng)的解碼參考數(shù)據(jù),則可降低計算校驗權(quán)重集合的運算復(fù)雜度和/或提高運算速度。然而,在另一范例實施例中,若判定當(dāng)前驗證碼字中存在錯誤,其他的解碼演算法也可以被用來更正碼字中的錯誤。圖10與圖11是根據(jù)本發(fā)明的另一范例實施例所示出的獲得對應(yīng)于比特翻轉(zhuǎn)演算法的校驗權(quán)重集合的示意圖。在本范例實施例中,數(shù)據(jù)集合與解碼參考數(shù)據(jù)皆是用于比特翻轉(zhuǎn)演算法。例如,數(shù)據(jù)集合是指比特翻轉(zhuǎn)演算法中待更新的校驗權(quán)重集合,而解碼參考數(shù)據(jù)則是比特翻轉(zhuǎn)演算法中更新后的校驗權(quán)重集合。請參照圖10,在獲得校驗子集合820后,在比特翻轉(zhuǎn)演算法中,一個校驗權(quán)重集合1001會被決定。例如,校驗權(quán)重集合1001會包括依序排列的校驗權(quán)重EA1、EA2、EA3、EB1、EB2、EB3、EC1、EC2及EC3。其中,校驗權(quán)重EA1、EA2、EA3、EB1、EB2、EB3、EC1、EC2及EC3分別對應(yīng)于碼字810中的比特A1、A2、A3、B1、B2、B3、C1、C2及C3。校驗權(quán)重集合1001可用來表示碼字810中每一個比特對于碼字810中的錯誤的參與程度。例如,根據(jù)奇偶檢查矩陣800,比特A1參與了校驗子S3與S5的計算,故可根據(jù)校驗子S3與S5來計算對應(yīng)于比特A1的校驗權(quán)重EA1。例如,可將校驗子S3與S5相加以獲得校驗權(quán)重EA1。又例如,根據(jù)奇偶檢查矩陣800,比特A2參與了校驗子S1與S6的計算,故可根據(jù)校驗子S1與S6來計算對應(yīng)于比特A2的校驗權(quán)重EA2。例如,可將校驗子S1與S6相加以獲得校驗權(quán)重EA2。特別是,在此用來計算校驗權(quán)重的加法是指一般加法,并非模2加法。例如,若校驗子S3與S5皆為“1”,則將校驗子S3與S5相加可獲得校驗權(quán)重EA1為“2”。以此類推,根據(jù)奇偶檢查矩陣800與校驗子集合820,校驗權(quán)重集合1001可被獲得。在比特翻轉(zhuǎn)演算法中,若碼字中的某一個比特所對應(yīng)的校驗權(quán)重很大,表示此比特有較大的機率為錯誤比特,因此翻轉(zhuǎn)此比特有較高的機率可以更正錯誤。反,若碼字中的某一個比特所對應(yīng)的校驗權(quán)重很小,則表示此比特為錯誤比特的機率不高,因此翻轉(zhuǎn)此比特可以更正錯誤的機率也不高。一般來說,根據(jù)奇偶檢查矩陣800與校驗子集合820來獲得校驗權(quán)重集合1001的操作可以等效于將向量1002加上向量1003來獲得校驗權(quán)重集合1001。其中, 向量1002中的元素僅包括校驗子S1~S3,而向量1003中的元素則僅包括校驗子S4~S6。校驗子S1~S3在向量1002中的位置是根據(jù)奇偶檢查矩陣800來決定,并且校驗子S4~S6在向量1003中的位置也是根據(jù)奇偶檢查矩陣800來決定。在本范例實施例中,錯誤檢查與校正電路508同樣是以層為單位來逐漸產(chǎn)生校驗權(quán)重集合1001。例如,子矩陣群組830為第一層并且用以執(zhí)行校驗權(quán)重集合的第一更新操作;子矩陣群組840為第二層并且用以執(zhí)行校驗權(quán)重集合的第二更新操作。在本范例實施例中,錯誤檢查與校正電路508會將向量1001中的多個校驗權(quán)重分組為多個預(yù)設(shè)群組。例如,校驗權(quán)重EA1、EA2、EA3屬于第一預(yù)設(shè)群組,校驗權(quán)重EB1、EB2、EB3屬于第二預(yù)設(shè)群組,并且校驗權(quán)重EC1、EC2、EC3屬于第三預(yù)設(shè)群組。請參照圖11,對應(yīng)于子矩陣群組830(即,第一層)的群組移動會先被執(zhí)行。例如,對應(yīng)于子矩陣群組830中元素1的位置,屬于第一預(yù)設(shè)群組的校驗權(quán)重EA1、EA2、EA3會被移動為校驗權(quán)重EA2、EA3、EA1,屬于第二預(yù)設(shè)群組的校驗權(quán)重EB1、EB2、EB3會被移動為比特EB3、EB1、EB2,而屬于第三預(yù)設(shè)群組的校驗權(quán)重EC1、EC2、EC3不被移動。因此,圖11中包含依序排列的校驗權(quán)重EA2、EA3、EA1、EB3、EB1、EB2、EC1、EC2、EC3的向量1101會被獲得。例如,向量1101中的校驗權(quán)重EA2、EA3、EA1屬于相對于第一預(yù)設(shè)群組的一個偏移群組;向量1101中的校驗權(quán)重EB3、EB1、EB2屬于相對于第二預(yù)設(shè)群組的一個偏移群組;并且向量1101中的校驗權(quán)重EC1、EC2、EC3屬于相對于第三預(yù)設(shè)群組的一個偏移群組。然后,錯誤檢查與校正電路508會利用向量1103與1104來產(chǎn)生向量1102。其中,向量1101~1103中所有元素的排序皆一致,如圖11所示。此外,向量1103中所有元素的初始值皆被設(shè)為“0”。在本范例實施例中,產(chǎn)生向量1102的操作也可視為將向量1103更新為向量1102的操作。例如,在將向量1103更新為向量1102的操作中,向量1103中的校驗權(quán)重EA2、EA3、EA1會被分別加上向量1104中的校驗子S1、S2、S3以獲得向量1102中更新后的校驗權(quán)重EA2、EA3、EA1;向量1103中的EB3、EB1、EB2會分別被加上向量1104中的校驗子S1、S2、S3來獲得向量1102中更新后的校驗權(quán)重EB3、EB1、EB2;并且向量1103中的EC1、EC2、EC3也會分別被加上向量1104中 的校驗子S1、S2、S3來獲得向量1102中更新后的校驗權(quán)重EC1、EC2、EC3。在獲得向量1102后,對應(yīng)于子矩陣群組840(即,第二層)的群組移動會被執(zhí)行。例如,對應(yīng)于子矩陣群組840中元素1的位置,向量1102中的校驗權(quán)重EA2、EA3、EA1會被移動為校驗權(quán)重EA3、EA1、EA2,向量1102中的校驗權(quán)重EB3、EB1、EB2會被移動為校驗權(quán)重EB1、EB2、EB3,并且向量1102中的校驗權(quán)重EC1、EC2、EC3會被移動為校驗權(quán)重EC2、EC3、EC1。因此,圖11中包含依序排列的校驗權(quán)重EA3、EA1、EA2、EB1、EB2、EB3、EC2、EC3、EC1的向量1105會被獲得。然后,錯誤檢查與校正電路508會利用向量1107與向量1108來產(chǎn)生向量1106。其中,向量1105~1107中所有元素的排序皆一致,如圖11所示。此外,產(chǎn)生向量1106的操作也可視為將向量1107更新為向量1106的操作。例如,在將向量1107更新為向量1106的操作中,向量1107中的校驗權(quán)重EA3、EA1、EA2會分別被加上向量1108中的校驗子S4、S5、S6來獲得向量1106中更新后的校驗權(quán)重EA3、EA1、EA2;向量1107中的EB1、EB2、EB3會分別被加上向量1108中的校驗子S4、S5、S6來獲得向量1106中更新后的校驗權(quán)重EB1、EB2、EB3;并且向量1107中的EC2、EC3、EC1也會分別被加上向量1108中的校驗子S4、S5、S6來獲得向量1106中更新后的校驗權(quán)重EC2、EC3、EC1。所產(chǎn)生的向量1106即包含了對應(yīng)于圖10的碼字810中每一個比特的校驗權(quán)重。換言,利用圖11的范例實施例中依序更新向量1102與1106的操作來取代圖10中將向量1102加上1003的操作,可提升在比特翻轉(zhuǎn)演算法中計算校驗權(quán)重集合的效率。在一范例實施例中,若錯誤檢查與校正電路508是采用總和-乘積演算法來更新迭代解碼程序中使用的可靠度信息,則通過對數(shù)據(jù)集合中的多個群組執(zhí)行群組移動來獲得相對應(yīng)的解碼參考數(shù)據(jù)的操作,同樣可用于降低執(zhí)行最小值-總和演算法的運算復(fù)雜度和/或提高運算速度。圖12與圖13是根據(jù)本發(fā)明的另一范例實施例所示出的獲得對應(yīng)于最小值-總和演算法的最小值集合的示意圖。在本范例實施例中,數(shù)據(jù)集合與解碼參考數(shù)據(jù)皆是用于最小值-總和演算法。例如,數(shù)據(jù)集合是指待解碼的碼字,而解碼參考數(shù)據(jù)則是最小值-總和演算法中產(chǎn)生的最小值集合。請參照圖12,在采用最小值-總和演算法的迭代解碼程序中,錯誤檢查與 校正電路508會根據(jù)奇偶檢查矩陣800來對碼字810中的不同比特進行多次比較以產(chǎn)生最小值集合1201。例如,最小值集合1201包括最小值m1~m6。其中,最小值m1是取碼字810中的比特A2、B3及C1的最小者;最小值m2是取碼字810中的比特A3、B1及C2的最小者;最小值m3是取碼字810中的比特A1、B2及C3的最小者;最小值m4是取碼字810中的比特A3、B1及C2的最小者;最小值m5是取碼字810中的比特A1、B2及C3的最小者;最小值m6是取碼字810中的比特A2、B3及C1的最小者。在本范例實施例中,錯誤檢查與校正電路508同樣會以層為單位來逐漸產(chǎn)生最小值集合1201。例如,子矩陣群組830為第一層并且用以計算最小值集合1201中的校驗子m1~m3;子矩陣群組840為第二層并且用以計算最小值集合1201中的校驗子m4~m6。在本范例實施例中,錯誤檢查與校正電路508會將碼字810中的比特分組為多個預(yù)設(shè)群組。例如,碼字810中的比特A1、A2、A3屬于第一預(yù)設(shè)群組,碼字810中的比特B1、B2、B3屬于第二預(yù)設(shè)群組,并且碼字810中的比特C1、C2、C3屬于第三預(yù)設(shè)群組。請參照圖13,對應(yīng)于子矩陣群組830(即,第一層)的群組移動會先被執(zhí)行。例如,對應(yīng)于子矩陣群組830中元素1的位置,碼字810中的比特A1、A2、A3會被移動為比特A2、A3、A1,碼字810中的比特B1、B2、B3會被移動為比特B3、B1、B2,而碼字810中的比特C1、C2、C3不被移動。因此,圖13中包含依序排列的比特A2、A3、A1、B3、B1、B2、C1、C2、C3的碼字910會被獲得。例如,碼字910中的比特A2、A3、A1屬于相對于第一預(yù)設(shè)群組的偏移群組911;碼字910中的比特B3、B1、B2屬于相對于第二預(yù)設(shè)群組的偏移群組912;并且碼字910中的比特C1、C2、C3屬于相對于第三預(yù)設(shè)群組的偏移群組913。然后,錯誤檢查與校正電路508會對偏移群組911~913中位于的特定位置的比特取最小值以產(chǎn)生最小值集合1201中的校驗子m1~m3。例如,錯誤檢查與校正電路508會對偏移群組911~913中位于每一個群組中第一個位置的比特A2、B3、C1取最小值作為m1;對偏移群組911~913中位于每一個群組中第二個位置的比特A3、B1、C2取最小值作為m2;并且對偏移群組911~913中位于每一個群組中第三個位置的比特A1、B2、C3取最小值作為m3。在獲得偏移群組911~913后,對應(yīng)于子矩陣群組840(即,第二層)的群組 移動會被執(zhí)行。例如,對應(yīng)于子矩陣群組840中元素1的位置,偏移群組911中的比特A2、A3、A1會被移動為比特A3、A1、A2,偏移群組912中的比特B3、B1、B2會被移動為比特B1、B2、B3,并且偏移群組913中的比特C1、C2、C3會被移動為比特C2、C3、C1。因此,圖13中包含比特A3、A1、A2、B1、B2、B3、C2、C3、C1的碼字920會被獲得。例如,碼字920中的比特A3、A1、A2被視為屬于對應(yīng)于偏移群組911的偏移群組921,碼字920中的比特B1、B2、B3被視為屬于對應(yīng)于偏移群組912的偏移群組922,并且碼字920中的比特C2、C3、C1被視為屬于對應(yīng)于偏移群組913的偏移群組923。然后,錯誤檢查與校正電路508會對偏移群組921~923中位于特定位置的比特取最小值以產(chǎn)生最小值集合1201中的校驗子m4~m6。例如,錯誤檢查與校正電路508會對偏移群組921~923中位于每一個群組中第一個位置的比特A3、B1、C2取最小值作為m4;對偏移群組921~923中位于每一個群組中第二個位置的比特A1、B2、C3取最小值作為m5;并且對偏移群組921~923中位于每一個群組中第三個位置的比特A2、B3、C1取最小值作為m6。藉此,可獲得最小值-總和演算法中使用的最小值集合1201并可提升計算效率。綜上所述,在上述多個范例實施例中,即使所提及的操作分別是應(yīng)用于迭代解碼程序中的不同階段和/或?qū)?yīng)于不同的解碼演算法,但是對于預(yù)設(shè)臨界值的設(shè)定、奇偶檢查矩陣的設(shè)定、數(shù)據(jù)集合中群組的設(shè)定,以及數(shù)據(jù)集合對于每一個層的群組移動的操作都是相同或相似的。換言,對應(yīng)于迭代解碼程序中的不同階段和/或不同的解碼演算法,只要對應(yīng)地決定要將什么數(shù)據(jù)作為數(shù)據(jù)集合以及根據(jù)移動后的群組要執(zhí)行何種操作來產(chǎn)生解碼參考數(shù)據(jù)則可。在一范例實施例中,所決定的偏移臨界值會負(fù)相關(guān)(negativelycorrelated)于相對應(yīng)采用的奇偶檢查矩陣的行權(quán)重值(columnweight)。其中,奇偶檢查矩陣的行權(quán)重值對應(yīng)于奇偶檢查矩陣中的某一個行所包含的元素1的數(shù)目。例如,若偏移臨界值越大,則對應(yīng)采用的奇偶檢查矩陣的某一個行所包含的元素1的數(shù)目可能越??;若偏移臨界值越小,則對應(yīng)采用的奇偶檢查矩陣的某一個行所包含的元素1的數(shù)目可能越多。在一范例實施例中,奇偶檢查矩陣的行權(quán)重值是對應(yīng)于奇偶檢查矩陣中的包含最多的元素1的行所包含的元素1的數(shù)目。例如,在某一奇偶檢查矩陣中,某一個行包含二個元素1,而另一 個行包含三個元素1,則此奇偶檢查矩陣的行權(quán)重值可被決定為“3”。在一范例實施例中,所決定的偏移臨界值會等于或大于將奇偶檢查矩陣的預(yù)設(shè)維度值除以其行權(quán)重值而獲得的最小臨界值。例如,所決定的偏移臨界值會符合以下方程式(6)。其中,X為偏移臨界值,P_SIZE為奇偶檢查矩陣的預(yù)設(shè)維度值,并且COL_WT為奇偶檢查矩陣的行權(quán)重值。圖14是根據(jù)本發(fā)明的一范例實施例所示出的群組移動的示意圖。請參照圖14,假設(shè)奇偶檢查矩陣1200包括子矩陣群組1210、1220及1230。每一個子矩陣群組1210、1220及1230包括5個子矩陣。圖12中的一個方框代表一個子矩陣。每一個子矩陣的預(yù)設(shè)維度為256-乘-256。在圖14中,每一個子矩陣(即,方框)中的數(shù)值是指數(shù)據(jù)集合中的一個群組對應(yīng)于某一個層而需要被移動的偏移量。例如,子矩陣群組1210中的第一至第五個子矩陣中標(biāo)示的數(shù)值41、234、227、210及17表示對應(yīng)于奇偶檢查矩陣1200的第一層,數(shù)據(jù)集合中的多個群組分別需要被移動的偏移量為41、234、227、210及17;子矩陣群組1220中的第一至第五個子矩陣中標(biāo)示的數(shù)值73、222、12、207及182表示對應(yīng)于奇偶檢查矩陣1200的第二層,數(shù)據(jù)集合中的多個群組分別需要被移動的偏移量為73、222、12、207及182;子矩陣群組1230中的第一至第五個子矩陣中標(biāo)示的數(shù)值210、23、154、133及13表示對應(yīng)于奇偶檢查矩陣1200的第三層,數(shù)據(jù)集合中的多個群組分別需要被移動的偏移量為210、23、154、133及13。在圖14的一范例實施例中,存儲器管理電路502可以選擇“85.3”至“255”間的任一正整數(shù)來作為欲使用的偏移臨界值,并且采用行權(quán)重值為“3”的奇偶檢查矩陣1200。例如,行權(quán)重值“3”是將偏移臨界值代入上述方程式(6)來決定。存儲器管理電路502(或,錯誤檢查與校正電路508)會限制每一個子矩陣(即,方框)中的數(shù)值皆不超過所決定的偏移臨界值。此外,從圖14中可以看出,在執(zhí)行數(shù)據(jù)集合對應(yīng)于奇偶檢查矩陣1200的第一層的群組移動后,將數(shù)據(jù)集合中的多個偏移群組進一步分別移動32、244、41、253及165即可達(dá)到數(shù)據(jù)集合中對應(yīng)于奇偶檢查矩陣1200的第二層的偏移量。類似地,在執(zhí)行數(shù)據(jù)集合對應(yīng)于奇偶檢查矩陣1200的第二層的 群組移動后,將數(shù)據(jù)集合中的多個偏移群組進一步分別移動137、57、142、182及87即可達(dá)到數(shù)據(jù)集合對應(yīng)于奇偶檢查矩陣1200的第三層的偏移量;在執(zhí)行數(shù)據(jù)集合對應(yīng)于奇偶檢查矩陣1200的第三層的比特移動后,將數(shù)據(jù)集合中的多個偏移群組進一步分別移動87、211、73、77及4即可回復(fù)為數(shù)據(jù)集合對應(yīng)于奇偶檢查矩陣1200的第一層的偏移量。在一范例實施例中,至少一個選擇器會被配置在錯誤檢查與校正電路508中,以執(zhí)行數(shù)據(jù)集合的群組移動。例如,根據(jù)圖12的一個范例實施例,對應(yīng)于奇偶檢查矩陣1200的第一層,錯誤檢查與校正電路508中的多個選擇器合作移動一數(shù)據(jù)集合中的多個預(yù)設(shè)群組成為分別符合偏移量41、234、227、210及17的多個第一偏移群組;對應(yīng)于奇偶檢查矩陣1200的第二層,此些選擇器合作移動此些第一偏移群組成為分別符合偏移量73、222、12、207及182的多個第二偏疑群組;然后,對應(yīng)于奇偶檢查矩陣1200的第三層,此些選擇器合作移動此些第二偏移群組成為分別符合偏移量210、23、154、133及13的另外的多個偏疑群組。在一范例實施例中,決定偏移臨界值并且限制每一次執(zhí)行群組移動的偏移量都不超過此偏移臨界值是用以減少需要配置的選擇器的數(shù)目。例如,若采用一般的階層式移位器(stageshifter)架構(gòu),則對應(yīng)于預(yù)設(shè)維度為256-乘-256的奇偶檢查矩陣1200,至少需要設(shè)置8個選擇器;然而,根據(jù)圖12的一范例實施例中,通過限制每一次執(zhí)行群組移動的偏移量都不超過所設(shè)定的偏移臨界值,則采用一般的階層式移位器架構(gòu)可能僅需要在錯誤檢查與校正電路508中配置7個或更少的選擇器。此外,在某些移位器架構(gòu)中,選擇器也可以用移位暫存器來取代。圖15A與圖15B是根據(jù)本發(fā)明的一范例實施例所示出的階層式移位器架構(gòu)的示意圖。為了簡化,在此以移動包含8個比特的數(shù)據(jù)集合作為范例。然而,在另一范例實施例中,欲執(zhí)行群組移動的數(shù)據(jù)集合可以包含更多或更少的比特。請參照圖13A,若沒有限制每一次執(zhí)行群組移動的偏移量,則為了支援最大偏移量為8(例如,將碼字01234567移動為碼字70123456),至少需要在錯誤檢查與校正電路508中配置3個選擇器1301、1302及1303。然而,請參照圖13B,若根據(jù)本發(fā)明的一范例實施例來限制最大偏移量為3(例如,將 碼字01234567移動為碼字34567012),則只需要在錯誤檢查與校正電路508中配置2個選擇器1301與1302。此外,暫存器1311、1312及1313用以儲存各階段中待處理的比特。圖16A與圖16B是根據(jù)本發(fā)明的一范例實施例所示出的筒式移位器(BarrelShifter)架構(gòu)的示意圖。請參照圖16A,若沒有限制每一次執(zhí)行群組移動的偏移量,則對應(yīng)于5個輸入X0~X4,至少需要在錯誤檢查與校正電路508中配置3個移位暫存器1401、1402及1403。然而,請參照圖16B,若根據(jù)本發(fā)明的一范例實施例來利用偏移臨界值限制每一次執(zhí)行群組移動的偏移量,則可能只需要在錯誤檢查與校正電路508中配置2個移位暫存器1401與1402。此外,Y0~Y4為執(zhí)行群組移動后的輸出位。圖17是根據(jù)本發(fā)明的另一范例實施例所示出的簡化(reduced)移位器架構(gòu)的示意圖。請參照圖17,在根據(jù)偏移臨界值來限制每一次執(zhí)行群組移動的偏移量的條件下,暫存器1701中的比特X5不會被讀取,藉此完成群組移動的選擇器1703的數(shù)量也可以減少。此外,暫存器1702用以儲存輸出的比特。圖18是根據(jù)本發(fā)明的一范例實施例所示出的解碼方法的流程圖。請參照圖18,在步驟S1801中,決定偏移臨界值以及對應(yīng)于所述偏移臨界值的檢查矩陣,其中所述檢查矩陣包括至少一子矩陣群組,其中所述子矩陣群組中的每一個子矩陣具有預(yù)設(shè)維度,其中所述偏移臨界值小于對應(yīng)于所述預(yù)設(shè)維度的預(yù)設(shè)維度值,其中所述子矩陣群組包括第一子矩陣群組。在步驟S1802中,發(fā)送讀取指令序列,其中所述讀取指令序列指示讀取所述可復(fù)寫式非易失性存儲器模塊的實體單元。在步驟S1803中,接收對應(yīng)于所述讀取指令序列的回應(yīng)數(shù)據(jù)。在步驟S1804中,對所述回應(yīng)數(shù)據(jù)執(zhí)行迭代解碼程序。步驟S1804的迭代解碼程序至少包括步驟S18041~S18043。在步驟S18041中,產(chǎn)生對應(yīng)于所述回應(yīng)數(shù)據(jù)的數(shù)據(jù)集合,其中所述數(shù)據(jù)集合包括多個預(yù)設(shè)群組。在步驟S18042中,根據(jù)屬于所述第一子矩陣群組的多個子矩陣來移動所述預(yù)設(shè)群組以獲得多個第一偏移群組,其中所述第一偏移群組中的每一個偏移群組相對于所述預(yù)設(shè)群組中的一對應(yīng)群組的偏移量皆不超過所述偏移臨界值。在步驟S18043中,根據(jù)所述第一偏移群組產(chǎn)生解碼參考數(shù)據(jù)。然而,圖18中各步驟已詳細(xì)說明如上,在此便不再贅述。值得注意的是,圖18中各步驟可以操作為多個程序碼或是電路,本發(fā)明不加以限制。此外,圖18的方法可以搭配以上范例實施例使用,也可以單獨使用,本發(fā)明不加以限制。圖19是根據(jù)本發(fā)明的一范例實施例所示出的錯誤檢查與校正電路的概要方塊圖。請參照圖19,在本范例實施例中,錯誤檢查與校正電路508至少包括暫存電路1901_1~1901_3、移位電路1902、暫存電路1903_1~1903_3及操作電路1904_1~1904_3。暫存電路1901_1~1901_3用以暫存數(shù)據(jù)集合中待執(zhí)行群組移動的群組。移位電路1902電性連接至?xí)捍骐娐?901_1~1901_3并且用以執(zhí)行群組移動。暫存電路1903_1~1903_3電性連接至移位電路1902并且用以暫存移動后的群組。操作電路1904_1~1904_3電性連接至?xí)捍骐娐?903_1~1903_3并且用以執(zhí)行預(yù)設(shè)的邏輯操作以產(chǎn)生解碼參考數(shù)據(jù)。以下搭配圖9的范例實施例來對圖19中的各電路區(qū)塊進行說明。在對應(yīng)于奇偶檢查矩陣的第一層的群組移動中,數(shù)據(jù)集合的多個預(yù)設(shè)群組中的一個特定群組(以下也稱為目標(biāo)群組)中的比特數(shù)據(jù)(例如,比特“A1”、“A2”、“A3”)會先分別被暫存在暫存電路1901_1~1901_3中并且輸出給移位電路1902。移位電路1902會對接收到的比特數(shù)據(jù)(例如,比特“A1”、“A2”、“A3”)執(zhí)行對應(yīng)的群組移動并且將經(jīng)由群組移動而獲得的偏移群組(以下也稱為偏移目標(biāo)群組)(例如,比特“A2”、“A3”、“A1”)分別輸出給暫存電路1903_1~1903_3。暫存電路1903_1~1903_3所暫存的偏移目標(biāo)群組中的比特數(shù)據(jù)(例如,比特“A2”、“A3”、“A1”)會被分別輸出給操作電路1904_1~1904_3。依此類推,在對應(yīng)于第一層的群組移動中,數(shù)據(jù)集合中的比特數(shù)據(jù)會以一個目標(biāo)群組為單位依序地輸出給移位電路1902進行群組移動并且以一個偏移目標(biāo)群組為單位依序地輸出給操作電路1904_1~1904_3進行預(yù)設(shè)的邏輯操作。例如,操作電路1904_1會對接收到的比特A2、B3及C1執(zhí)行模2加法以獲得校驗子集合中的校驗子S1;操作電路1904_2會對接收到的比特A3、B1及C3執(zhí)行模2加法以獲得校驗子集合中的校驗子S2;并且操作電路1904_1會對接收到的比特A1、B2及C3執(zhí)行模2加法以獲得校驗子集合中的校驗子S3。后續(xù)對應(yīng)于奇偶檢查矩陣頂頂頂頂?shù)诙拥娜航M移動以及對移動后的群 組執(zhí)行模2加法也可通過圖19所示的電路架構(gòu)來完成,在此便不贅述。在不同的范例實施例中,對于應(yīng)用于迭代解碼程序中的不同階段個/或?qū)?yīng)于不同的解碼演算法所使用的數(shù)據(jù)集合,圖19所示的電路架構(gòu)也可以實現(xiàn)相對應(yīng)的群組移動以及執(zhí)行相對應(yīng)的邏輯操作以產(chǎn)生解碼參考數(shù)據(jù)。在圖19的另一范例實施例中,暫存電路1901_1~1901_3也可以合并為一個暫存電路,暫存電路1903_1~1903_3也可以合并為一個暫存電路,并且操作電路1904_1~1904_3也可以合并為一個操作電路。此外,圖19所示出的錯誤檢查與校正電路508僅為一個范例,在圖19的另一范例實施例中,錯誤檢查與校正電路508還可以包括用以執(zhí)行其他操作的電路元件。綜上所述,在本發(fā)明的一范例實施例中,偏移臨界值與相對應(yīng)的奇偶檢查矩陣會被決定。爾后,在迭代解碼程序中,一個數(shù)據(jù)集合中的群組會對應(yīng)于奇偶檢查矩陣而被執(zhí)行群組移動并且對應(yīng)的偏移量會被限制于不超過所設(shè)定的偏移臨界值。藉此,在本發(fā)明的一范例實施例中,可減少錯誤檢查與校正電路中所需配置的選擇器/移位暫存器的數(shù)量。此外,在本發(fā)明的一范例實施例中,根據(jù)偏移群組來產(chǎn)生解碼參考數(shù)據(jù)也可提升迭代解碼程序中某些階段的執(zhí)行效率。最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3