最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)以及方法

文檔序號(hào):6362653閱讀:485來源:國(guó)知局
專利名稱:存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)以及方法
技術(shù)領(lǐng)域
本發(fā)明涉及錯(cuò)誤檢查與校正(error checking and correcting, ECC)技術(shù),特別是涉及適用于存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)及方法。
背景技術(shù)
錯(cuò)誤檢查與校正(error checking and correcting, ECC)技術(shù)或錯(cuò)誤校正碼 (error correction code)檢查是一種可用于存儲(chǔ)器模塊上的數(shù)據(jù)檢查與除錯(cuò)的技術(shù),用來檢查傳送到存儲(chǔ)器模塊的數(shù)據(jù)是否正確并可用于校正數(shù)據(jù)的錯(cuò)誤。當(dāng)數(shù)據(jù)出現(xiàn)錯(cuò)誤時(shí), 錯(cuò)誤校正碼檢查能自行更正錯(cuò)誤,或要求系統(tǒng)重新傳送數(shù)據(jù)。這樣可確保系統(tǒng)正常運(yùn)作而不會(huì)因數(shù)據(jù)錯(cuò)誤而導(dǎo)致死機(jī)。所傳輸?shù)臄?shù)據(jù)于傳輸端傳送前經(jīng)常事先被編碼為錯(cuò)誤校正碼 (可包含數(shù)據(jù)訊息、冗余信息及同位數(shù)據(jù))。當(dāng)接收端收到錯(cuò)誤校正碼數(shù)據(jù)時(shí),即使數(shù)據(jù)于傳輸過程中遭受損毀而產(chǎn)生隨機(jī)錯(cuò)誤,亦可藉解碼錯(cuò)誤校正碼而回復(fù)正確的數(shù)據(jù)。同樣的, 數(shù)據(jù)儲(chǔ)存系統(tǒng)亦經(jīng)常在儲(chǔ)存數(shù)據(jù)前將所儲(chǔ)存的數(shù)據(jù)編碼為錯(cuò)誤校正碼。當(dāng)數(shù)據(jù)于儲(chǔ)存過程中遭受損毀而產(chǎn)生隨機(jī)錯(cuò)誤時(shí),亦可藉解碼錯(cuò)誤校正碼而回復(fù)正確的數(shù)據(jù)。常見的錯(cuò)誤校正碼如 BCH 碼(Bose, Ray-Chaudhuri, and Hocquenghem code)及 RS 碼(Reed-Solomon code)。BCH碼常用于快閃存儲(chǔ)器數(shù)據(jù)的儲(chǔ)存,而RS碼常用于光盤數(shù)據(jù)的儲(chǔ)存。一般而言,為了提升整體效能,系統(tǒng)的控制器可能會(huì)采用多個(gè)通道結(jié)構(gòu)例如多個(gè)快閃存儲(chǔ)器芯片來幫助運(yùn)算,其中每個(gè)通道各自配有一個(gè)錯(cuò)誤校正模塊以對(duì)其傳輸數(shù)據(jù)進(jìn)行自動(dòng)錯(cuò)誤校正。然而,一般的錯(cuò)誤校正模塊僅具有有限能力的自動(dòng)錯(cuò)誤校正能力,例如 數(shù)據(jù)容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼只能對(duì)錯(cuò)誤的位數(shù)目為小于或等于6位的錯(cuò)誤進(jìn)行校正,若錯(cuò)誤的位數(shù)目大于6位時(shí),錯(cuò)誤校正模塊不僅無法校正錯(cuò)誤,甚至可能會(huì)使數(shù)據(jù)發(fā)生的錯(cuò)誤增加。因此,為了提供更好的錯(cuò)誤校正效能,可對(duì)每個(gè)通道配上一個(gè)具有較高數(shù)據(jù)容錯(cuò)數(shù)量的錯(cuò)誤校正模塊來進(jìn)行錯(cuò)誤校正。然而,具有較高數(shù)據(jù)容錯(cuò)數(shù)量的錯(cuò)誤校正模塊通常較占面積且成本較高,不僅會(huì)增加硬件成本及復(fù)雜度,也不適合大量使用。

發(fā)明內(nèi)容
本發(fā)明的一實(shí)施例提供了一種存儲(chǔ)器模塊的錯(cuò)誤檢查與校正(Error Checking and Correcting, ECC)方法,該存儲(chǔ)器模塊包括至少一存儲(chǔ)器單元,上述方法包括以下流程步驟接收來自該存儲(chǔ)器單元的一輸入數(shù)據(jù);通過一第一校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作,并產(chǎn)生一解碼結(jié)果,其中該解碼結(jié)果用以表示是否解碼失敗;以及依據(jù)該解碼結(jié)果,決定是否啟動(dòng)一第二校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行一第二錯(cuò)誤校正操作。其中,該第一校正模塊以及該第二校正模塊分別采用一第一方法以及一第二方法且該第一方法是以一第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,該第二方法是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,且該第二容錯(cuò)數(shù)量大于該第一容錯(cuò)數(shù)量。本發(fā)明的另一實(shí)施例提供了一種存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該存儲(chǔ)器模塊包括多個(gè)存儲(chǔ)器單元。存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)至少包括多個(gè)第一校正模塊、一第二校正模塊、以及一仲裁模塊。所述第一校正模塊對(duì)應(yīng)耦接至所述存儲(chǔ)器單元,其中每一所述第一校正模塊對(duì)應(yīng)所述存儲(chǔ)器單元的其中一個(gè)且用以接收該對(duì)應(yīng)存儲(chǔ)器單元的一輸入數(shù)據(jù)并對(duì)該輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作,并產(chǎn)生一解碼結(jié)果。第二校正模塊用以于被啟動(dòng)時(shí)執(zhí)行一第二錯(cuò)誤校正操作,其中該第一校正模塊是以一第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,該第二校正模塊是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正且該第二容錯(cuò)數(shù)量大于該第一容錯(cuò)數(shù)量。仲裁模塊耦接于所述第一校正模塊以及該第二校正模塊之間,其中該仲裁模塊依據(jù)所述第一校正模塊產(chǎn)生的所述解碼結(jié)果決定是否啟動(dòng)該第二校正模塊。其中該仲裁模塊于所述解碼結(jié)果的任一個(gè)表示解碼失敗時(shí),啟動(dòng)該第二校正模塊以對(duì)該輸入數(shù)據(jù)執(zhí)行該第二錯(cuò)誤校正操作。關(guān)于本發(fā)明其他附加的特征與優(yōu)點(diǎn),本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍的前提下,可根據(jù)本發(fā)明的實(shí)施方法中所揭示的數(shù)據(jù)處理方法做些許的更動(dòng)與潤(rùn)飾而得到。


圖1顯示依據(jù)本發(fā)明實(shí)施例的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正(ECC)系統(tǒng)的示意圖。圖2是根據(jù)本發(fā)明一實(shí)施例所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法。圖3是顯示依據(jù)本發(fā)明另一實(shí)施例的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)的示意圖。圖4為依據(jù)本發(fā)明一實(shí)施例的已編碼數(shù)據(jù)示意圖。圖5為依據(jù)本發(fā)明一實(shí)施例的錯(cuò)誤校正碼編碼器的區(qū)塊圖。圖6為依據(jù)本發(fā)明一實(shí)施例的錯(cuò)誤校正碼解碼器的區(qū)塊圖。附圖符號(hào)說明100、100’ 存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng);110 第一校正模塊;120 仲裁模塊;130 第二校正模塊;140 儲(chǔ)存單元;141 訊息數(shù)據(jù)儲(chǔ)存單元;142 冗余數(shù)據(jù)儲(chǔ)存單元;
143 同位數(shù)據(jù)儲(chǔ)存單元;150 編碼器;152 第一編碼單元;154 第二編碼單元;160 第一解碼器;162 第一錯(cuò)誤檢測(cè)單元;164 第一錯(cuò)誤校正單元;170 第二解碼器;172 第二錯(cuò)誤檢測(cè)單元;
174 第二錯(cuò)誤校正單元;200、200, 存儲(chǔ)器模塊;210,211-218 存儲(chǔ)器單元;S202-S212 步驟;400 已編碼數(shù)據(jù);500 錯(cuò)誤校正碼編碼器;502 第一編碼單元;504 第二編碼單元;600 錯(cuò)誤校正碼解碼器;602 癥狀碼計(jì)算單元;604 錯(cuò)誤多項(xiàng)式計(jì)算單元;606 秦式搜尋單元;608 控制電路;610 第二錯(cuò)誤檢測(cè)單元。
具體實(shí)施例方式下面所敘述的是實(shí)施本發(fā)明的范例,以下范例是結(jié)合

,且若未特別指出, 則在不同附圖中所使用到的相同標(biāo)號(hào)用以指示相同或類似的元件。然而,以下實(shí)施例僅為實(shí)施本發(fā)明的代表范例,并非代表實(shí)施本發(fā)明的所有方式,本發(fā)明的保護(hù)范圍是以本發(fā)明的權(quán)利要求為準(zhǔn)。圖1顯示依據(jù)本發(fā)明實(shí)施例的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正(ECC)系統(tǒng)的示意圖。如圖1所示,存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)100用以對(duì)一存儲(chǔ)器模塊200進(jìn)行錯(cuò)誤檢查與校正,其中存儲(chǔ)器模塊200包括一個(gè)或多個(gè)存儲(chǔ)器單元210。于一實(shí)施例中,每一存儲(chǔ)器單元210可為一塊獨(dú)立的快閃存儲(chǔ)器芯片。需提醒的是,于本發(fā)明中,每個(gè)存儲(chǔ)器單元210又稱為一個(gè)通道(channel)。也就是說,本發(fā)明于一實(shí)施例是以一塊快閃存儲(chǔ)器芯片為一個(gè)通道的單位,則存儲(chǔ)器模塊200由多個(gè)快閃存儲(chǔ)器芯片構(gòu)成,但本發(fā)明并不限于此。存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)100至少包括一第一校正模塊(error correction module) 110、一仲裁模塊(arbitrator) 120、一第二校正模塊130以及一儲(chǔ)存單元140,其中第一校正模塊110耦接至存儲(chǔ)器模塊200中的存儲(chǔ)器單元210且用以接收/讀取存儲(chǔ)器單元210的一輸入數(shù)據(jù)并對(duì)此輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作產(chǎn)生一解碼結(jié)果。其中,第一校正模塊110采用一第一方法且第一方法是以一第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正。舉例來說,第一校正模塊110是以一容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,亦即,第一錯(cuò)誤校正操作可用以自動(dòng)檢查并校正6個(gè)位以下的錯(cuò)誤。解碼結(jié)果用以表示解碼是否成功或失敗,也就是說第一校正模塊110是否可自動(dòng)更正所有的錯(cuò)誤。當(dāng)?shù)谝恍UK110利用第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼對(duì)輸入數(shù)據(jù)執(zhí)行第一錯(cuò)誤校正操作時(shí),若可自動(dòng)校正所有的錯(cuò)誤(亦即錯(cuò)誤的位長(zhǎng)度低于第一容錯(cuò)數(shù)量),解碼結(jié)果將表示解碼成功(decode sucess),而若無法自動(dòng)校正所有的錯(cuò)誤時(shí),解碼結(jié)果將表示解碼失敗(decode fail)。儲(chǔ)存單元140用以儲(chǔ)存錯(cuò)誤校正操作時(shí)所需的各項(xiàng)數(shù)據(jù),例如儲(chǔ)存原始訊息數(shù)據(jù)、 冗余數(shù)據(jù)以及同位數(shù)據(jù)(parity data)。需提醒的是,第一校正模塊110執(zhí)行第一錯(cuò)誤校正操作時(shí)只會(huì)針對(duì)所儲(chǔ)存的訊息數(shù)據(jù)以及所儲(chǔ)存的冗余數(shù)據(jù)進(jìn)行錯(cuò)誤校正。之后,存儲(chǔ)器單元210的第一校正模塊110所產(chǎn)生的解碼結(jié)果將會(huì)被送至仲裁模塊120進(jìn)行仲裁。仲裁模塊120耦接于第一校正模塊110以及第二校正模塊130之間,其中,仲裁模塊120依據(jù)第一校正模塊110產(chǎn)生的解碼結(jié)果決定是否啟動(dòng)或關(guān)閉第二校正模塊130。當(dāng)解碼結(jié)果表示解碼成功時(shí),表示所有錯(cuò)誤都已自動(dòng)校正,仲裁模塊120便關(guān)閉第二校正模塊130。當(dāng)解碼結(jié)果表示解碼失敗時(shí),表示仍有一些錯(cuò)誤無法自動(dòng)校正,仲裁模塊 120便啟動(dòng)第二校正模塊130。第二校正模塊130用以于被仲裁模塊120啟動(dòng)時(shí)執(zhí)行一第二錯(cuò)誤校正操作。其中,第二校正模塊130采用一第二方法且第二方法是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正且第二容錯(cuò)數(shù)量大于第一容錯(cuò)數(shù)量。舉例來說,于一實(shí)施例中,第一校正模塊110是以一容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,而第二校正模塊 130是以一容錯(cuò)數(shù)量為36位的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,因此,第一錯(cuò)誤校正操作可用以自動(dòng)檢查并校正6個(gè)位以下的錯(cuò)誤,而第二錯(cuò)誤校正操作可用以自動(dòng)檢查并校正36個(gè)位以下的錯(cuò)誤。由于發(fā)生超過6位錯(cuò)誤的機(jī)率非常低,因此第二校正模塊130不會(huì)頻繁地被啟動(dòng),可提升錯(cuò)誤檢查與校正操作的效能的同時(shí)也節(jié)省了第二校正模塊130所消耗的電力。另外,第一校正模塊110可還包括一編碼器150以及一第一解碼器160,編碼器 150用以產(chǎn)生錯(cuò)誤校正碼編碼,第一解碼器160用以執(zhí)行第一錯(cuò)誤校正操作。編碼器150包括一第一編碼單元152以及一第二編碼單元154,其中編碼器150可于數(shù)據(jù)寫入操作時(shí)接收欲寫入至存儲(chǔ)器單元210的一數(shù)據(jù),再分別通過第一編碼法以及第二編碼法,依據(jù)該數(shù)據(jù)產(chǎn)生相應(yīng)對(duì)應(yīng)于第一方法以及第二方法的一第一同位數(shù)據(jù)(parity data)以及一第二同位數(shù)據(jù),再依據(jù)該數(shù)據(jù)、第一同位數(shù)據(jù)以及第二同位數(shù)據(jù),產(chǎn)生一編碼數(shù)據(jù),最后將該編碼數(shù)據(jù)寫入至存儲(chǔ)器單元210。舉例來說,第一編碼單元152可產(chǎn)生容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼對(duì)應(yīng)的同位數(shù)據(jù),而第二編碼單元巧4可產(chǎn)生容錯(cuò)數(shù)量為36位的錯(cuò)誤校正碼對(duì)應(yīng)的同位數(shù)據(jù)。關(guān)于編碼器150的細(xì)節(jié)及運(yùn)作請(qǐng)參見以下圖5的說明。第一解碼器160可還包括一第一錯(cuò)誤檢測(cè)單元162以及一第一錯(cuò)誤校正單元164。 第一錯(cuò)誤檢測(cè)單元162可于數(shù)據(jù)讀取操作時(shí),對(duì)輸入數(shù)據(jù)進(jìn)行一錯(cuò)誤檢測(cè)操作,產(chǎn)生一檢錯(cuò)結(jié)果,其中檢錯(cuò)結(jié)果用以表示輸入數(shù)據(jù)是否有錯(cuò)誤。第一錯(cuò)誤校正單元164耦接至第一錯(cuò)誤檢測(cè)單元162,用以于檢錯(cuò)結(jié)果表示輸入數(shù)據(jù)有錯(cuò)誤時(shí),執(zhí)行第一錯(cuò)誤校正操作并產(chǎn)生相應(yīng)的解碼結(jié)果至仲裁模塊120。關(guān)于第一解碼器160的細(xì)節(jié)及運(yùn)作請(qǐng)參見以下圖6的說明。類似地,第二校正模塊130耦接于仲裁模塊120,其中第二校正模塊130是于接收到來自仲裁模塊120的一啟動(dòng)訊號(hào)才啟動(dòng),當(dāng)被啟動(dòng)時(shí),第二校正模塊130可用以執(zhí)行第二錯(cuò)誤校正操作。仲裁模塊120是于檢測(cè)到第一校正模塊110所產(chǎn)生的解碼結(jié)果表示解碼失敗時(shí)產(chǎn)生此啟動(dòng)訊號(hào),以啟動(dòng)第二校正模塊130執(zhí)行第二錯(cuò)誤校正操作。第二校正模塊130 可還包括一第二解碼器170,其可還包括一第二錯(cuò)誤檢測(cè)單元172以及一第二錯(cuò)誤校正單元174。第二錯(cuò)誤檢測(cè)單元172可于數(shù)據(jù)讀取操作時(shí),對(duì)輸入數(shù)據(jù)進(jìn)行一錯(cuò)誤檢測(cè)操作,產(chǎn)生一檢錯(cuò)結(jié)果,其中檢錯(cuò)結(jié)果用以表示輸入數(shù)據(jù)是否有錯(cuò)誤。第二錯(cuò)誤校正單元174耦接至第二錯(cuò)誤檢測(cè)單元172,用以執(zhí)行第二錯(cuò)誤校正操作以進(jìn)行錯(cuò)誤校正。舉例來說,而第二校正模塊130是以一容錯(cuò)數(shù)量為36位的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,因此,第二錯(cuò)誤校正單元174是使用此容錯(cuò)數(shù)量為36位的錯(cuò)誤校正碼來進(jìn)行第二錯(cuò)誤校正操作以自動(dòng)檢查并校正36個(gè)位以下的錯(cuò)誤。由于第二校正模塊130只會(huì)在第一校正模塊110解碼失敗時(shí)才會(huì)啟動(dòng),說明此前第一校正模塊110已經(jīng)檢測(cè)到輸入數(shù)據(jù)的確有錯(cuò)誤發(fā)生,因此在本發(fā)明另一實(shí)施例中,第二校正模塊130可以省略第二錯(cuò)誤檢測(cè)單元172,當(dāng)?shù)谝恍UK110所產(chǎn)生的解碼結(jié)果表示解碼失敗時(shí),直接由第二錯(cuò)誤校正單元174進(jìn)行錯(cuò)誤校正。第二錯(cuò)誤校正單元174的校正對(duì)象可以是原始的輸入數(shù)據(jù),也可以是經(jīng)由第一錯(cuò)誤校正單元164校正后的數(shù)據(jù)。儲(chǔ)存單元140耦接至第一校正模塊110,第二校正模塊130及存儲(chǔ)器模塊200,儲(chǔ)存單元140接收并儲(chǔ)存自存儲(chǔ)器單元210讀取的輸入數(shù)據(jù),供第一校正模塊110與第二校正模塊130讀取以進(jìn)行錯(cuò)誤校正;儲(chǔ)存單元140還接收并儲(chǔ)存第一校正模塊110在解碼成功時(shí)輸出的校正后數(shù)據(jù),或第一校正模塊110在解碼失敗時(shí)第二校正模塊130輸出的校正后數(shù)據(jù),以供主機(jī)(未繪示)讀取。儲(chǔ)存單元140在本發(fā)明一實(shí)施例中,儲(chǔ)存單元140進(jìn)一步包括訊息數(shù)據(jù)儲(chǔ)存單元141,冗余數(shù)據(jù)儲(chǔ)存單元142,以及同位數(shù)據(jù)(parity data)儲(chǔ)存單元143,分別用以儲(chǔ)存訊息數(shù)據(jù),冗余數(shù)據(jù)以及同位數(shù)據(jù)。其中同位數(shù)據(jù)儲(chǔ)存單元143儲(chǔ)存的同位數(shù)據(jù)包括應(yīng)于第一方法以及第二方法的一第一同位數(shù)據(jù)(parity data)以及一第二同位數(shù)據(jù)。在本發(fā)明一實(shí)施例中,儲(chǔ)存單元140可以以一靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)實(shí)現(xiàn)。圖2是根據(jù)本發(fā)明一實(shí)施例所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法。依據(jù)本發(fā)明的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法可適用于圖1所示的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正100上,用以對(duì)存儲(chǔ)器模塊200的存儲(chǔ)器單元210進(jìn)行自動(dòng)錯(cuò)誤檢查與校正操作。于本實(shí)施例中,存儲(chǔ)器模塊200中至少包括一存儲(chǔ)器單元210且存儲(chǔ)器單元210為一塊快閃存儲(chǔ)器芯片。首先,如步驟S202,第一校正模塊110通過第一解碼器160接收來自存儲(chǔ)器單元 210的一輸入數(shù)據(jù)。接著,如步驟S204,通過一第一校正模塊110對(duì)輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作,并產(chǎn)生一解碼結(jié)果,其中解碼結(jié)果用以表示是否解碼失敗。具體來說,第一校正模塊110內(nèi)的第一解碼器160通過一第一錯(cuò)誤檢測(cè)單元162對(duì)輸入數(shù)據(jù)進(jìn)行一錯(cuò)誤檢測(cè)操作,產(chǎn)生一檢錯(cuò)結(jié)果。其中,檢錯(cuò)結(jié)果用以表示此輸入數(shù)據(jù)是否有錯(cuò)誤。若否,則流程結(jié)束。若是,第一解碼器160執(zhí)行一第一錯(cuò)誤校正操作。舉例而言,第一校正模塊110是以一第一容錯(cuò)數(shù)量例如容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正。當(dāng)?shù)谝恍UK110利用第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼對(duì)輸入數(shù)據(jù)執(zhí)行第一錯(cuò)誤校正操作時(shí),若可自動(dòng)校正所有的錯(cuò)誤,解碼結(jié)果將表示解碼成功,而若無法自動(dòng)校正所有的錯(cuò)誤時(shí),解碼結(jié)果將表示解碼失敗。接著,如步驟S206,仲裁模塊120將依據(jù)解碼結(jié)果,決定是否通過第二校正模塊 130對(duì)輸入數(shù)據(jù)執(zhí)行一第二錯(cuò)誤校正操作。其中,第二校正模塊130是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正且第二容錯(cuò)數(shù)量大于第一校正模塊110所使用的第一容錯(cuò)數(shù)量, 例如第一容錯(cuò)數(shù)量為6位,第二容錯(cuò)數(shù)量為36/60位。當(dāng)解碼結(jié)果表示解碼成功時(shí)(步驟 S206的否),表示所有錯(cuò)誤均已被第一校正模塊110自動(dòng)校正,因此無需啟動(dòng)第二層的第二校正模塊130,仲裁模塊120決定不啟動(dòng)第二校正模塊130。也就是說,仲裁模塊120于解碼結(jié)果表示解碼成功時(shí),不會(huì)通過第二校正模塊130執(zhí)行第二錯(cuò)誤校正操作。反之,當(dāng)解碼結(jié)果表示解碼失敗時(shí)(步驟S206的是),表示有些錯(cuò)誤無法被第一校正模塊110自動(dòng)校正,仲裁模塊120將啟動(dòng)第二校正模塊130,以通過第二校正模塊130對(duì)輸入數(shù)據(jù)執(zhí)行第二錯(cuò)誤校正操作(步驟S208)。由于目前存儲(chǔ)器模塊中發(fā)生較少位以下的錯(cuò)誤的情形約占了所有可能錯(cuò)誤概率的90%以上,因此本發(fā)明的第一層錯(cuò)誤校正所執(zhí)行的第一錯(cuò)誤校正操作可花很少時(shí)間來進(jìn)行錯(cuò)誤校正,可以解決大約所有的錯(cuò)誤。即便少數(shù)的較多位的錯(cuò)誤的情形發(fā)生時(shí),也可通過本發(fā)明的第二層錯(cuò)誤校正所執(zhí)行的第二錯(cuò)誤校正操作來更正所有的錯(cuò)誤,更能確保數(shù)據(jù)的正確性。于一些實(shí)施例中,當(dāng)存儲(chǔ)器模塊200的多個(gè)存儲(chǔ)器單元210的解碼結(jié)果均表示解碼失敗時(shí),仲裁模塊120可更進(jìn)一步?jīng)Q定所述解碼失敗的存儲(chǔ)器單元210的第二錯(cuò)誤校正操作的執(zhí)行順序。假設(shè)同時(shí)有多個(gè)存儲(chǔ)器單元210都解碼失敗時(shí),仲裁單元120會(huì)以一既定仲裁規(guī)則例如輪詢仲裁(Round-Robin arbitration)的方式來服務(wù)所述解碼失敗的存儲(chǔ)器單元210。舉例來說,仲裁單元120會(huì)依序從存儲(chǔ)器單元0至存儲(chǔ)器單元7進(jìn)行輪詢來決定。于一些實(shí)施例中,每個(gè)存儲(chǔ)器單元可包括一個(gè)優(yōu)先權(quán),優(yōu)先權(quán)愈高者將優(yōu)先被執(zhí)行,且已服務(wù)過的優(yōu)先權(quán)將變?yōu)樽畹?,而次一個(gè)順位的存儲(chǔ)器單元的優(yōu)先權(quán)將變?yōu)樽罡?,以便于下次進(jìn)行服務(wù)。舉例來說,若存儲(chǔ)器單元0與存儲(chǔ)器單元1同時(shí)需要啟動(dòng)第二層錯(cuò)誤校正時(shí),因輪詢順序?yàn)橄仍儐柎鎯?chǔ)器單元0接著才詢問存儲(chǔ)器單元1,因此存儲(chǔ)器單元0將會(huì)優(yōu)先執(zhí)行第二層錯(cuò)誤校正,且存儲(chǔ)器單元0的優(yōu)先權(quán)將會(huì)設(shè)為最低,而存儲(chǔ)器單元1的優(yōu)先權(quán)將會(huì)設(shè)為最高,因此,存儲(chǔ)器單元1將會(huì)接著執(zhí)行。圖3顯示依據(jù)本發(fā)明另一實(shí)施例的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)的示意圖。 如圖3所示,存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)100 ’用以對(duì)存儲(chǔ)器模塊200,進(jìn)行錯(cuò)誤檢查與校正,其中存儲(chǔ)器模塊200’包括多個(gè)存儲(chǔ)器單元211-218。于本實(shí)施例中,每一存儲(chǔ)器單元211-218可為一塊快閃存儲(chǔ)器芯片,存儲(chǔ)器模塊200’由多塊快閃存儲(chǔ)器芯片構(gòu)成。存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)100’至少包括多個(gè)第一校正模塊110、一仲裁模塊120、以及一第二校正模塊130,其中每個(gè)第一校正模塊110耦接至存儲(chǔ)器模塊的存儲(chǔ)器單元211-218 中的其中一個(gè)對(duì)應(yīng)存儲(chǔ)器單元且用以接收/讀取其對(duì)應(yīng)存儲(chǔ)器單元的一輸入數(shù)據(jù)并對(duì)此輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作產(chǎn)生一解碼結(jié)果。其中第一校正模塊110是以一第一容錯(cuò)數(shù)量例如容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正。類似地,當(dāng)?shù)谝恍UK110利用第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼對(duì)輸入數(shù)據(jù)執(zhí)行第一錯(cuò)誤校正操作時(shí),若可自動(dòng)校正所有的錯(cuò)誤(亦即錯(cuò)誤的位長(zhǎng)度低于第一容錯(cuò)數(shù)量),解碼結(jié)果將表示解碼成功,而若無法自動(dòng)校正所有的錯(cuò)誤時(shí),解碼結(jié)果將表示解碼失敗。每個(gè)存儲(chǔ)器單元211-218對(duì)應(yīng)的第一校正模塊110的解碼結(jié)果均會(huì)被送至仲裁模塊120進(jìn)行仲裁。仲裁模塊120耦接于所有第一校正模塊110以及第二校正模塊130之間, 其中,仲裁模塊120依據(jù)所有第一校正模塊110產(chǎn)生的解碼結(jié)果決定是否啟動(dòng)或關(guān)閉第二校正模塊130。當(dāng)所有解碼結(jié)果均表示解碼成功時(shí),表示所有錯(cuò)誤都已自動(dòng)校正,無須啟動(dòng)第二層錯(cuò)誤校正,仲裁模塊120便關(guān)閉第二校正模塊130。當(dāng)解碼結(jié)果的任一個(gè)表示解碼失敗時(shí),表示仍有一些錯(cuò)誤無法自動(dòng)校正,仲裁模塊120便啟動(dòng)第二校正模塊130。舉例來說, 假設(shè)有八個(gè)存儲(chǔ)器單元共同耦接至仲裁單元120時(shí),只要八個(gè)存儲(chǔ)器單元中的任一個(gè)的第一錯(cuò)誤校正檢查的解碼結(jié)果表示解碼失敗時(shí),便會(huì)啟動(dòng)第二層錯(cuò)誤校正。第二校正模塊130 用以于被仲裁模塊120啟動(dòng)時(shí)執(zhí)行一第二錯(cuò)誤校正操作。其中,第二校正模塊130是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行第二錯(cuò)誤校正操作且第二容錯(cuò)數(shù)量大于第一容錯(cuò)數(shù)量。舉例來說,于一實(shí)施例中,第一校正模塊110是以一容錯(cuò)數(shù)量為6位的錯(cuò)誤校正碼進(jìn)行第一錯(cuò)誤校正操作,因此第一錯(cuò)誤校正操作最多可糾正IOM字節(jié)中發(fā)生的6位的錯(cuò)誤,而第二校正模塊130是以一容錯(cuò)數(shù)量為36/60位的錯(cuò)誤校正碼進(jìn)行第二錯(cuò)誤校正操作第二層錯(cuò)誤校正,因此第二錯(cuò)誤校正操作最多可糾正IOM字節(jié)中的36/60位的錯(cuò)誤。舉例來說,于一實(shí)施例中,當(dāng)?shù)谝淮鎯?chǔ)器單元(例如存儲(chǔ)器單元211)的解碼結(jié)果以及第二存儲(chǔ)器單元(例如存儲(chǔ)器單元21 的解碼結(jié)果均表示解碼失敗時(shí),仲裁模塊 120可依照一既定輪詢順序以一輪詢方式依序利用第二校正模塊130對(duì)第一存儲(chǔ)器單元以及第二存儲(chǔ)器單元執(zhí)行第二錯(cuò)誤校正操作。于另一實(shí)施例中,第一存儲(chǔ)器單元以及第二存儲(chǔ)器單元可分別包括一優(yōu)先權(quán)數(shù)據(jù),并且第一存儲(chǔ)器單元以及第二存儲(chǔ)器單元是依據(jù)所述優(yōu)先權(quán)依序執(zhí)行該第二錯(cuò)誤校正操作。仲裁模塊120可依照每個(gè)存儲(chǔ)器單元210對(duì)應(yīng)的優(yōu)先權(quán)數(shù)據(jù)由高到低依序利用第二校正模塊130對(duì)對(duì)應(yīng)的存儲(chǔ)器單元執(zhí)行第二錯(cuò)誤校正操作。于一些實(shí)施例中,由于一般情形只會(huì)發(fā)生較少位(例如4位)以下的錯(cuò)誤,所以第二層錯(cuò)誤校正很少會(huì)啟用,因此可配置專門的寄存器以供使用者根據(jù)實(shí)際需求來選擇只允許啟用第一層錯(cuò)誤校正而不允許啟動(dòng)第二層錯(cuò)誤校正以進(jìn)一步節(jié)省電力,或者兩層錯(cuò)誤校正都允許啟用(前述實(shí)施方式即兩層錯(cuò)誤校正均允許啟用的情形)。于一些實(shí)施例中,可進(jìn)一步提供一種以上的不同錯(cuò)誤校正能力的第三錯(cuò)誤校正單元,再依據(jù)實(shí)際需求,通過專門的寄存器來設(shè)定僅啟用第一層錯(cuò)誤校正、僅啟用第二層錯(cuò)誤校正的第二錯(cuò)誤校正單元或第三錯(cuò)誤校正單元或同時(shí)啟用第一層錯(cuò)誤校正以及第二層錯(cuò)誤校正以進(jìn)一步增加其錯(cuò)誤校正能力。此外,因?yàn)楸景赣锌赡苡玫絻蓪渝e(cuò)誤校正,因此于執(zhí)行數(shù)據(jù)寫入操作時(shí),第一校正模塊110中的編碼器150必須同時(shí)產(chǎn)生對(duì)應(yīng)兩層錯(cuò)誤校正的同位數(shù)據(jù)。編碼器150可接收一欲寫入數(shù)據(jù),并利用編碼器150中的第一編碼單元152以及第二編碼單元IM分別產(chǎn)生一第一同位數(shù)據(jù)以及一第二同位數(shù)據(jù),再依據(jù)欲寫入數(shù)據(jù)、第一同位數(shù)據(jù)以及第二同位數(shù)據(jù),產(chǎn)生一已編碼數(shù)據(jù)(encoded data),最后再將所產(chǎn)生的已編碼數(shù)據(jù)寫入至對(duì)應(yīng)的存儲(chǔ)器單元。舉例來說,主機(jī)(未繪示)欲寫入的數(shù)據(jù)會(huì)寄存至一動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM(未繪示)中,從DRAM所讀出的IOM字節(jié)的訊息數(shù)據(jù)將儲(chǔ)存在存儲(chǔ)器單元例如NAND型快閃存儲(chǔ)器的數(shù)據(jù)區(qū)域(data area),同位數(shù)據(jù)將儲(chǔ)存在存儲(chǔ)器單元的備份區(qū)域(spare area)以供后續(xù)數(shù)據(jù)讀出操作時(shí)使用。圖4為依據(jù)本發(fā)明一實(shí)施例的已編碼數(shù)據(jù)示意圖。如圖4所示,已編碼數(shù)據(jù)400至少包括三個(gè)部分,亦即原始訊息數(shù)據(jù)、第一同位數(shù)據(jù)以及第二同位數(shù)據(jù),其中,第一同位數(shù)據(jù)以及第二同位數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度取決于所使用的錯(cuò)誤校正碼的容錯(cuò)數(shù)量。于一些實(shí)施例中,原始訊息數(shù)據(jù)也可還包含對(duì)應(yīng)于錯(cuò)誤校正的冗余信息。在本發(fā)明一實(shí)施例中,錯(cuò)誤校正碼的編碼方法以BCH碼(Bose-Chaudhuri-Hocquenham,BCH)為例,錯(cuò)誤校正碼的長(zhǎng)度是根據(jù)容錯(cuò)數(shù)量在伽羅瓦域(Galois Feild)GF(2m)中決定,例如,當(dāng)m = 14, 則IOM字節(jié)的原始訊信息數(shù)據(jù)(message data)需要11字節(jié)的同位數(shù)據(jù)(parity data), 以自動(dòng)檢查并校正6個(gè)位以下的錯(cuò)誤。再舉例而言,如果原始訊息數(shù)據(jù)包括冗余數(shù)據(jù),該冗余數(shù)據(jù)可以是對(duì)錯(cuò)誤校正來說的一些冗余信息,則IOM字節(jié)的原始訊信息數(shù)據(jù)(message data)+16字節(jié)的冗余數(shù)據(jù)(redundant data)需要11字節(jié)的同位數(shù)據(jù)(parity data),則上述錯(cuò)誤校正碼的容錯(cuò)數(shù)量也是6位。再舉例而言,如果錯(cuò)誤校正碼的容錯(cuò)數(shù)量也是36位, 則IOM字節(jié)的原始訊信息數(shù)據(jù)(message data)需要63字節(jié)的同位數(shù)據(jù)(parity data); 如果錯(cuò)誤校正碼的容錯(cuò)數(shù)量也是60位,則10 字節(jié)的原始訊信息數(shù)據(jù)(message data)需要105字節(jié)的同位數(shù)據(jù)(parity data)。在一實(shí)施例中,第一同位數(shù)據(jù)以及第二同位數(shù)據(jù)均儲(chǔ)存于儲(chǔ)存單元140的同位數(shù)據(jù)儲(chǔ)存單元143中。以下列舉一些實(shí)施例,用以輔助說明依據(jù)本發(fā)明的錯(cuò)誤校正碼編碼器與錯(cuò)誤校正碼解碼器細(xì)節(jié),但本發(fā)明并不限于此。于以下實(shí)施例中是以錯(cuò)誤校正碼為BCH碼 (Bose-Chaudhuri-Hocquenham,BCH)為例進(jìn)行說明,但本發(fā)明并不限于此。舉例來說, 錯(cuò)誤校正碼的編碼演算法包括漢明碼(Hamming code)、里德所羅門碼(Reed-Solomon code)、里德米勒碼(Reed-Muller code)、二次元格雷碼(Binary Golay code)、回旋碼 (convolutional code)、及渦輪碼(turbo code)等等,均適用于本發(fā)明。圖5為依據(jù)本發(fā)明一實(shí)施例的錯(cuò)誤校正碼編碼器500的區(qū)塊圖。于本實(shí)施例中, 錯(cuò)誤校正碼編碼器500包括一第一編碼單元502以及一第二編碼單元504。其中,錯(cuò)誤校正碼編碼器500可為圖1中的編碼器150,其中,第一編碼單元502對(duì)應(yīng)第一編碼單元152,第二編碼單元504對(duì)應(yīng)第二編碼單元154。如前述,于執(zhí)行數(shù)據(jù)寫入操作時(shí),錯(cuò)誤校正碼編碼器500必須同時(shí)產(chǎn)生對(duì)應(yīng)兩層錯(cuò)誤校正的同位數(shù)據(jù)。如圖5所示,于執(zhí)行數(shù)據(jù)寫入操作時(shí), DMA控制器(DMA controller)首先從DRAM(未繪示)中取出一原始訊息數(shù)據(jù),之后,取出的原始訊息數(shù)據(jù)先儲(chǔ)存于儲(chǔ)存單元(該儲(chǔ)存單元可以是對(duì)應(yīng)于圖1中的儲(chǔ)存單元140,也可以是其它儲(chǔ)存單元)中并送至錯(cuò)誤校正碼編碼器500中的第一編碼單元502與第二編碼單元 504中分別算出對(duì)應(yīng)于容錯(cuò)數(shù)量為6位錯(cuò)誤校正碼與容錯(cuò)數(shù)量為36位錯(cuò)誤校正碼的第一同位數(shù)據(jù)以及第二同位數(shù)據(jù),再將算出的兩個(gè)同位數(shù)據(jù)連同存入儲(chǔ)存單元的原始訊息數(shù)據(jù)通過存儲(chǔ)器控制器例如進(jìn)階型快閃存儲(chǔ)器控制器(Advanced Nand Flash Controller)寫入特定的存儲(chǔ)器單元。于一些實(shí)施例中,錯(cuò)誤校正碼編碼器500也可依據(jù)欲寫入的原始訊息數(shù)據(jù)、第一同位數(shù)據(jù)以及第二同位數(shù)據(jù),產(chǎn)生一已編碼數(shù)據(jù)(如圖4所示),之后再將所產(chǎn)生的已編碼數(shù)據(jù)寫入至對(duì)應(yīng)的存儲(chǔ)器單元。圖6為依據(jù)本發(fā)明一實(shí)施例的錯(cuò)誤校正碼解碼器600的區(qū)塊圖。于本實(shí)施例中, 錯(cuò)誤校正碼解碼器600包括癥狀碼(syndrome)計(jì)算單元602 (SCBlock)、錯(cuò)誤多項(xiàng)式計(jì)算單元604 (KES)、秦式搜尋單元606 (CSEE)、以及控制電路608 (Main Control)。其中,錯(cuò)誤校正碼解碼器600可為圖1中的第一解碼器160或第二解碼器170。舉例來說,若錯(cuò)誤校正碼解碼器600為圖1中的第一解碼器160時(shí),癥狀碼計(jì)算單元602對(duì)應(yīng)于第一錯(cuò)誤檢測(cè)單元 162,而錯(cuò)誤多項(xiàng)式計(jì)算單元604、秦式搜尋單元606、以及控制電路608對(duì)應(yīng)于第一錯(cuò)誤校正單元164。于將數(shù)據(jù)從存儲(chǔ)器單元取出的數(shù)據(jù)讀取操作中,所取出的為編碼后的錯(cuò)誤校正碼,因此在數(shù)據(jù)使用前必須先解碼錯(cuò)誤校正碼,以還原為原始數(shù)據(jù)。當(dāng)錯(cuò)誤校正碼解碼器 600收到錯(cuò)誤校正碼(例如BCH碼)時(shí),錯(cuò)誤校正碼解碼器600自該錯(cuò)誤校正碼取出其所包含的訊息及同位數(shù)據(jù)。首先,癥狀碼計(jì)算單元602依據(jù)錯(cuò)誤校正碼的同位數(shù)據(jù)計(jì)算多個(gè)癥狀碼S1, S2,... , &。錯(cuò)誤校正碼解碼器600檢查是否癥狀碼S1, S2,... ,Sk皆為零。若癥狀碼S1, S2, . . . , Sk為零,表示錯(cuò)誤校正碼沒有發(fā)生錯(cuò)誤,因此不需進(jìn)一步的校正。反之,若癥狀碼S1, S2,...,&有其中之一不為零,表示錯(cuò)誤校正碼有錯(cuò)誤發(fā)生,因此必須對(duì)錯(cuò)誤校正碼進(jìn)行校正。于是,癥狀碼計(jì)算單元602產(chǎn)生一表示有錯(cuò)誤發(fā)生的檢測(cè)結(jié)果ECC ERR至錯(cuò)誤多項(xiàng)式計(jì)算單元604,使其開始執(zhí)行一錯(cuò)誤校正操作。接著,錯(cuò)誤多項(xiàng)式計(jì)算單元604依據(jù)所計(jì)算出的癥狀碼Si,S2,. . .,SK計(jì)算出一錯(cuò)誤多項(xiàng)式(error location polynomial) 的多個(gè)系數(shù),并判斷該錯(cuò)誤多項(xiàng)式的根個(gè)數(shù),例如錯(cuò)誤多項(xiàng)式的系數(shù)不為0的最高次冪為多少次冪,則錯(cuò)誤多項(xiàng)式計(jì)算單元604會(huì)判斷該錯(cuò)誤位置多項(xiàng)式具有多少個(gè)根。秦式搜尋單元606用以進(jìn)行一秦式搜尋(Chien search)找出該錯(cuò)誤多項(xiàng)式的多個(gè)根,以確定錯(cuò)誤發(fā)生的位的位置,以供進(jìn)行錯(cuò)誤校正。由于錯(cuò)誤多項(xiàng)式的根指示錯(cuò)誤校正碼中發(fā)生錯(cuò)誤的位的位置,因此錯(cuò)誤校正碼解碼器600的控制電路608便可依據(jù)錯(cuò)誤多項(xiàng)式的根校正錯(cuò)誤校正碼,例如,校正即是對(duì)發(fā)生錯(cuò)誤的位取反,從而得到一校正后數(shù)據(jù)??刂齐娐?08將持續(xù)檢查癥狀碼Si,S2,. . .,SK是否為零,并于所述癥狀碼Si,S2,. . .,SK皆為零時(shí)停止錯(cuò)誤多項(xiàng)式計(jì)算單元604對(duì)錯(cuò)誤多項(xiàng)式的系數(shù)的計(jì)算,并停止秦式搜尋單元606對(duì)錯(cuò)誤多項(xiàng)式的根的搜尋。假設(shè)錯(cuò)誤校正碼解碼器600為第一校正模塊110中的第一解碼器160時(shí),可進(jìn)一步于執(zhí)行前述錯(cuò)誤校正操作之后,依據(jù)秦式搜尋單元606所找出的錯(cuò)誤多項(xiàng)式的根的數(shù)目是否等于錯(cuò)誤多項(xiàng)式計(jì)算單元604所確定的錯(cuò)誤多項(xiàng)式的根的數(shù)目來判斷解碼是否成功。 若秦式搜尋單元606所找出的錯(cuò)誤多項(xiàng)式的根的數(shù)目等于錯(cuò)誤多項(xiàng)式計(jì)算單元604所確定的根的數(shù)目,則表示校正成功。反之,若不相等,表示校正失敗,因此便產(chǎn)生一解碼結(jié)果 decode_fail至仲裁模塊120,表示第一層的錯(cuò)誤校正操作校正失敗。仲裁模塊120接收到此解碼結(jié)果deCOde_fail表示第一層的錯(cuò)誤校正操作校正失敗之后,便啟動(dòng)第二錯(cuò)誤校正碼解碼器130來進(jìn)行第二層的錯(cuò)誤校正操作。在某些實(shí)際應(yīng)用中,為了提高校正精度,即便秦式搜尋單元606所找出的錯(cuò)誤多項(xiàng)式的根的數(shù)目等于錯(cuò)誤多項(xiàng)式計(jì)算單元604所確定的根的數(shù)目,即不產(chǎn)生deCOde_fail訊號(hào)時(shí),也不能確定校正一定成功,在本發(fā)明另一實(shí)施例中,當(dāng)錯(cuò)誤校正碼解碼器600為第一解碼器160時(shí),錯(cuò)誤校正碼解碼器600進(jìn)一步包括一第二錯(cuò)誤檢測(cè)單元610,耦接第一錯(cuò)誤校正單元164 (包括圖6的錯(cuò)誤多項(xiàng)式計(jì)算單元604、 秦式搜尋單元606、以及控制電路608),其對(duì)第一錯(cuò)誤校正單元164輸出的校正后數(shù)據(jù)再進(jìn)行一第二錯(cuò)誤檢測(cè)操作,產(chǎn)生該解碼結(jié)果,其中該解碼結(jié)果用以表示第一錯(cuò)誤校正單元164 輸出的校正后數(shù)據(jù)是否有錯(cuò)誤。若無錯(cuò)誤,則表示校正成功,則控制電路608將校正后數(shù)據(jù)儲(chǔ)存至儲(chǔ)存單元140以供主機(jī)host (未繪示)讀取。若有錯(cuò)誤,則表示校正失敗,第二錯(cuò)誤檢測(cè)單元610將該解碼結(jié)果至仲裁模塊120,表示第一層的錯(cuò)誤校正操作校正失敗。在本實(shí)施例中,第二錯(cuò)誤檢測(cè)單元610是對(duì)第一錯(cuò)誤校正單元164輸出的校正后數(shù)據(jù)進(jìn)行檢錯(cuò),而非對(duì)原始的輸入數(shù)據(jù)進(jìn)行檢錯(cuò),此外,其是將第二錯(cuò)誤檢測(cè)單元610的檢錯(cuò)結(jié)果作為解碼結(jié)果送至仲裁模塊120,并非將deCOde_fail信號(hào)作為解碼結(jié)果送至仲裁模塊120。綜上所述,依據(jù)本發(fā)明的存儲(chǔ)器模塊的錯(cuò)誤檢查及校正系統(tǒng)提供兩層錯(cuò)誤校正結(jié)構(gòu),兩層錯(cuò)誤校正各自具有不同的數(shù)據(jù)容錯(cuò)能力(例如第一層錯(cuò)誤校正最多可糾正IK字節(jié)中發(fā)生的6位的錯(cuò)誤,而第二層錯(cuò)誤校正最多可糾正IK字節(jié)中的36/60位的錯(cuò)誤),其中存儲(chǔ)器模塊中每個(gè)存儲(chǔ)器單元有自己的具有較小容錯(cuò)數(shù)量的第一層錯(cuò)誤校正,而多個(gè)存儲(chǔ)器單元共用一個(gè)具有較大容錯(cuò)數(shù)量的第二層錯(cuò)誤校正,可在保持系統(tǒng)效能的要求下有效減少硬件成本。此外,本發(fā)明的仲裁模塊可依據(jù)共用的各個(gè)存儲(chǔ)器單元的第一層錯(cuò)誤校正錯(cuò)誤操作校正是否出錯(cuò)來選擇性啟動(dòng)第二層錯(cuò)誤校正,由于發(fā)生較小位的錯(cuò)誤的機(jī)率占大多數(shù),且只有在發(fā)現(xiàn)第一層錯(cuò)誤校正操作校正出錯(cuò)時(shí)才會(huì)啟動(dòng)第二層錯(cuò)誤校正,因此可提供更佳的錯(cuò)誤校正效能。再者,依據(jù)本發(fā)明的存儲(chǔ)器模塊的錯(cuò)誤校正系統(tǒng)可通過一配置寄存器來選擇開啟/關(guān)閉第二層錯(cuò)誤校正功能,提高使用上的彈性應(yīng)用。本發(fā)明的方法,或特定型態(tài)或其部份,可以以程序碼的型態(tài)包含于實(shí)體媒體,如軟盤、光盤片、硬盤、或是任何其他機(jī)器可讀取(如計(jì)算機(jī)可讀取)儲(chǔ)存媒體,其中,當(dāng)程序碼被機(jī)器,如計(jì)算機(jī)載入且執(zhí)行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。本發(fā)明的方法與裝置也可以以程序碼型態(tài)通過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態(tài)進(jìn)行傳送,其中,當(dāng)程序碼被機(jī)器,如計(jì)算機(jī)接收、載入且執(zhí)行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。當(dāng)在一般用途處理器實(shí)作時(shí),程序碼結(jié)合處理器提供一操作類似于應(yīng)用特定邏輯電路的獨(dú)特裝置。本發(fā)明雖以各種實(shí)施例揭示如上,然而其僅為范例參考而非用以限定本發(fā)明的范圍,本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍的前提下,當(dāng)可做若干的更動(dòng)與潤(rùn)飾。因此上述實(shí)施例并非用以限定本發(fā)明的范圍,本發(fā)明的保護(hù)范圍是以本發(fā)明的權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,該存儲(chǔ)器模塊包括至少一存儲(chǔ)器單元,包括下列步驟接收來自該存儲(chǔ)器單元的一輸入數(shù)據(jù);通過一第一校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作,并產(chǎn)生一解碼結(jié)果,其中該解碼結(jié)果用以表示是否解碼失??;以及依據(jù)該解碼結(jié)果,決定是否啟動(dòng)一第二校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行一第二錯(cuò)誤校正操作,其中該第一校正模塊以及該第二校正模塊分別采用一第一方法以及一第二方法且該第一方法是以一第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,該第二方法是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,且該第二容錯(cuò)數(shù)量大于該第一容錯(cuò)數(shù)量。
2.如權(quán)利要求1所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,還包括下列步驟通過一錯(cuò)誤檢測(cè)單元對(duì)該輸入數(shù)據(jù)進(jìn)行一錯(cuò)誤檢測(cè)操作,產(chǎn)生一檢錯(cuò)結(jié)果,其中該檢錯(cuò)結(jié)果用以表示該輸入數(shù)據(jù)是否有錯(cuò)誤;以及于該檢錯(cuò)結(jié)果表示該輸入數(shù)據(jù)有錯(cuò)誤時(shí),通過該第一校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行該第一錯(cuò)誤校正操作。
3.如權(quán)利要求1所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,其中該依據(jù)該解碼結(jié)果, 決定是否啟動(dòng)該第二校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行該第二錯(cuò)誤校正操作的步驟還包括當(dāng)該解碼結(jié)果表示解碼成功時(shí),不啟動(dòng)該第二校正模塊執(zhí)行該第二錯(cuò)誤校正操作;以及當(dāng)該解碼結(jié)果表示解碼失敗時(shí),啟動(dòng)該第二校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行該第二錯(cuò)誤校正操作。
4.如權(quán)利要求1所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,其中該至少一存儲(chǔ)器單元包括一第一存儲(chǔ)器單元以及一第二存儲(chǔ)器單元,且該依據(jù)該解碼結(jié)果,決定是否啟動(dòng)該第二校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行該第二錯(cuò)誤校正操作的步驟還包括于該第一存儲(chǔ)器單元以及該第二存儲(chǔ)器單元的其中任一個(gè)的該解碼結(jié)果表示解碼失敗時(shí),啟動(dòng)該第二校正模塊執(zhí)行該第二錯(cuò)誤校正操作。
5.如權(quán)利要求4所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,其中當(dāng)該第一存儲(chǔ)器單元的該解碼結(jié)果以及該第二存儲(chǔ)器單元的該解碼結(jié)果均表示解碼失敗時(shí),該第一存儲(chǔ)器單元以及該第二存儲(chǔ)器單元是以一輪詢方式依序通過該第二校正模塊執(zhí)行該第二錯(cuò)誤校正操作。
6.如權(quán)利要求4所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,其中該第一存儲(chǔ)器單元以及該第二存儲(chǔ)器單元分別包括一優(yōu)先權(quán),并且該第一存儲(chǔ)器單元以及該第二存儲(chǔ)器單元依據(jù)所述優(yōu)先權(quán)依序通過該第二校正模塊執(zhí)行該第二錯(cuò)誤校正操作。
7.如權(quán)利要求1所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,還包括 接收欲寫入至該存儲(chǔ)器單元的一數(shù)據(jù);分別通過一第一編碼法以及一第二編碼法,依據(jù)該數(shù)據(jù)產(chǎn)生相應(yīng)對(duì)應(yīng)于該第一方法以及該第二方法的一第一同位數(shù)據(jù)以及一第二同位數(shù)據(jù);依據(jù)該數(shù)據(jù)、該第一同位數(shù)據(jù)以及該第二同位數(shù)據(jù),產(chǎn)生一編碼數(shù)據(jù);以及將該編碼數(shù)據(jù)寫入至該存儲(chǔ)器單元。
8.如權(quán)利要求1所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,還包括提供一寄存器,用以設(shè)定是否允許啟動(dòng)該第二校正模塊執(zhí)行該第二錯(cuò)誤校正操作。
9.如權(quán)利要求1所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,其中該存儲(chǔ)器單元為一快閃存儲(chǔ)器芯片。
10.一種存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該存儲(chǔ)器模塊包括多個(gè)存儲(chǔ)器單元, 包括多個(gè)第一校正模塊對(duì)應(yīng)耦接至所述存儲(chǔ)器單元,每一所述第一校正模塊對(duì)應(yīng)所述存儲(chǔ)器單元的其中一個(gè)且用以接收該對(duì)應(yīng)存儲(chǔ)器單元的一輸入數(shù)據(jù)并對(duì)該輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作,并產(chǎn)生一解碼結(jié)果;一第二校正模塊,用以于被啟動(dòng)時(shí)執(zhí)行一第二錯(cuò)誤校正操作,其中該第一校正模塊是以一第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,該第二校正模塊是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正且該第二容錯(cuò)數(shù)量大于該第一容錯(cuò)數(shù)量;以及一仲裁模塊,耦接于所述第一校正模塊以及該第二校正模塊之間,其中該仲裁模塊是依據(jù)所述第一校正模塊產(chǎn)生的所述解碼結(jié)果決定是否啟動(dòng)該第二校正模塊,其中該仲裁模塊是于所述解碼結(jié)果的任一個(gè)表示解碼失敗時(shí),啟動(dòng)該第二校正模塊以對(duì)該輸入數(shù)據(jù)執(zhí)行該第二錯(cuò)誤校正操作。
11.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該第一校正模塊還包括一第一錯(cuò)誤檢測(cè)單元,用以于一數(shù)據(jù)讀取操作時(shí),對(duì)該輸入數(shù)據(jù)進(jìn)行一第一錯(cuò)誤檢測(cè)操作,產(chǎn)生一第一檢錯(cuò)結(jié)果,其中該第一檢錯(cuò)結(jié)果用以表示該輸入數(shù)據(jù)是否有錯(cuò)誤;以及一第一錯(cuò)誤校正單元,耦接至該第一錯(cuò)誤檢測(cè)單元,用以于該第一檢錯(cuò)結(jié)果表示該輸入數(shù)據(jù)有錯(cuò)誤時(shí),執(zhí)行該第一錯(cuò)誤校正操作,并產(chǎn)生該解碼結(jié)果至該仲裁器。
12.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該第一校正模塊還包括一第一錯(cuò)誤檢測(cè)單元,用以于一數(shù)據(jù)讀取操作時(shí),對(duì)該輸入數(shù)據(jù)進(jìn)行一第一錯(cuò)誤檢測(cè)操作,產(chǎn)生一檢錯(cuò)結(jié)果,其中該檢錯(cuò)結(jié)果用以表示該輸入數(shù)據(jù)是否有錯(cuò)誤;以及一第一錯(cuò)誤校正單元,耦接至該第一錯(cuò)誤檢測(cè)單元,用以于該檢錯(cuò)結(jié)果表示該輸入數(shù)據(jù)有錯(cuò)誤時(shí),執(zhí)行該第一錯(cuò)誤校正操作,并輸出一校正后數(shù)據(jù);以及一第二錯(cuò)誤檢測(cè)單元,耦接至該第一錯(cuò)誤校正單元,對(duì)該校正后數(shù)據(jù)再進(jìn)行一第二錯(cuò)誤檢測(cè)操作,產(chǎn)生該解碼結(jié)果至該仲裁器。
13.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該第一校正模塊還包括一編碼器,其具有一第一編碼單元及一第二編碼單元,用以于一數(shù)據(jù)寫入操作時(shí),接收欲寫入至一存儲(chǔ)器單元的一數(shù)據(jù),其中該第一編碼單元以及該第二編碼單元依據(jù)該數(shù)據(jù)分別產(chǎn)生相應(yīng)對(duì)應(yīng)于該第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼以及該第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼的一第一同位數(shù)據(jù)以及一第二同位數(shù)據(jù),該編碼器依據(jù)該數(shù)據(jù)、該第一同位數(shù)據(jù)以及該第二同位數(shù)據(jù),產(chǎn)生一已編碼數(shù)據(jù),并將該已編碼數(shù)據(jù)寫入至該存儲(chǔ)器單元。
14.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該第二校正模塊還包括一第二錯(cuò)誤校正單元,用以于所述解碼結(jié)果的任一個(gè)表示解碼失敗時(shí)時(shí),執(zhí)行該第二錯(cuò)誤校正操作。
15.如權(quán)利要求14所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該第二校正模塊還包括一第二錯(cuò)誤檢測(cè)單元,耦接至該第二錯(cuò)誤校正單元,用以于一數(shù)據(jù)讀取操作時(shí),對(duì)該輸入數(shù)據(jù)進(jìn)行一第二錯(cuò)誤檢測(cè)操作,產(chǎn)生一第二檢錯(cuò)結(jié)果,其中該第二檢錯(cuò)結(jié)果用以表示該輸入數(shù)據(jù)是否有錯(cuò)誤。
16.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中所述存儲(chǔ)器單元至少包括一第一存儲(chǔ)器單元以及一第二存儲(chǔ)器單元且當(dāng)該第一存儲(chǔ)器單元的該解碼結(jié)果以及該第二存儲(chǔ)器單元的該解碼結(jié)果均表示解碼失敗時(shí),該仲裁器是以一輪詢方式依序?qū)υ摰谝淮鎯?chǔ)器單元以及該第二存儲(chǔ)器單元執(zhí)行該第二錯(cuò)誤校正操作。
17.如權(quán)利要求16所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中該第一存儲(chǔ)器單元以及該第二存儲(chǔ)器單元分別包括一優(yōu)先權(quán),并且該仲裁器依據(jù)所述優(yōu)先權(quán)依序?qū)υ摰谝淮鎯?chǔ)器單元以及該第二存儲(chǔ)器單元執(zhí)行該第二錯(cuò)誤校正操作。
18.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),還包括一寄存器,用以設(shè)定是否允許啟動(dòng)該第二校正模塊執(zhí)行該第二錯(cuò)誤校正操作。
19.如權(quán)利要求10所述的存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng),其中所述存儲(chǔ)器單元分別為一快閃存儲(chǔ)器芯片,該存儲(chǔ)器模塊由多個(gè)快閃存儲(chǔ)器芯片構(gòu)成。
全文摘要
本發(fā)明提供了一種存儲(chǔ)器模塊的錯(cuò)誤檢查與校正系統(tǒng)以及方法。對(duì)于該存儲(chǔ)器模塊的錯(cuò)誤檢查與校正方法,該存儲(chǔ)器模塊包括至少一存儲(chǔ)器單元,該方法包括以下流程步驟接收來自該存儲(chǔ)器單元的一輸入數(shù)據(jù);通過一第一校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行一第一錯(cuò)誤校正操作并產(chǎn)生一解碼結(jié)果,其中該解碼結(jié)果用以表示是否解碼失?。灰约耙罁?jù)該解碼結(jié)果,決定是否啟動(dòng)一第二校正模塊對(duì)該輸入數(shù)據(jù)執(zhí)行一第二錯(cuò)誤校正操作。其中,該第一校正模塊以及該第二校正模塊分別采用一第一方法以及一第二方法且該第一方法是以一第一容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,該第二方法是以一第二容錯(cuò)數(shù)量的錯(cuò)誤校正碼進(jìn)行錯(cuò)誤校正,且該第二容錯(cuò)數(shù)量大于該第一容錯(cuò)數(shù)量。
文檔編號(hào)G06F11/10GK102567134SQ20121000392
公開日2012年7月11日 申請(qǐng)日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者沈力, 王為, 董一鳴, 鐘戟 申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1