[go: up one dir, main page]

TW201416849A - 錯誤檢查及校正方法以及相關錯誤檢查及校正電路 - Google Patents

錯誤檢查及校正方法以及相關錯誤檢查及校正電路 Download PDF

Info

Publication number
TW201416849A
TW201416849A TW101140086A TW101140086A TW201416849A TW 201416849 A TW201416849 A TW 201416849A TW 101140086 A TW101140086 A TW 101140086A TW 101140086 A TW101140086 A TW 101140086A TW 201416849 A TW201416849 A TW 201416849A
Authority
TW
Taiwan
Prior art keywords
length
data
packet
data packet
error checking
Prior art date
Application number
TW101140086A
Other languages
English (en)
Inventor
Chao-Nan Chen
Original Assignee
Jmicron Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jmicron Technology Corp filed Critical Jmicron Technology Corp
Priority to TW101140086A priority Critical patent/TW201416849A/zh
Priority to US13/798,185 priority patent/US20140122964A1/en
Publication of TW201416849A publication Critical patent/TW201416849A/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

一種錯誤檢查及校正方法包含有:對一原始資料封包進行壓縮並產生一壓縮資料封包;根據一資料長度來決定一校正碼長度;根據該校正碼長度來對一封包資料進行錯誤檢查及校正編碼以產生一校正碼;將該封包資料以及該校正碼組合成一編碼資料封包。一種錯誤檢查及校正方法包含有:讀取一編碼資料封包,其中該編碼資料封包包含一封包資料以及一校正碼,且該封包資料包含一壓縮資料封包;根據該校正碼來對該封包資料進行錯誤檢查及校正解碼,產生對應該壓縮資料封包之一解碼壓縮資料封包;對該解碼壓縮資料封包進行解壓縮,產生一解壓縮資料封包。

Description

錯誤檢查及校正方法以及相關錯誤檢查及校正電路
本發明所揭露之實施例係相關於錯誤檢查及校正,尤指一種根據資料長度來決定校正碼長度的錯誤檢查及校正方法以及相關錯誤檢查及校正電路。
錯誤校正碼(Error Correcting Code,ECC)是一種習知的除錯技術,可應用在記憶體上,例如反及閘快閃記憶體(NAND flash)中,該除錯技術係用來檢查傳送到記憶體的資料是否正確。系統會在傳送數據資料時,舉例來說,為8位元資料加入額外的1位元同位碼(parity code)來作為校正碼。當數據出現錯誤時,錯誤檢查及校正碼便能自行更正錯誤,或要求系統重新傳送資料。這樣可確保系統正常運作而不會因資料錯誤而導致當機。因為多了一道除錯步驟,因此錯誤檢查及校正記憶體(ECC memory)運行速度會比非錯誤檢查及校正記憶體稍慢。另外由於錯誤檢查及校正記憶體加入了校正碼(例如同位碼),故其運作位元長度變較長,例如72位元而非傳統的64位元。這類記憶體多應用於高階電腦如伺服器上。
傳統上,校正碼係儲存在系統所提供的一特定空間中,當該特定空間越大,代表校正碼的長度可以更長,也就是說,此時的錯誤檢查及校正效果會更好,然而,該特定空間一般來說是一個預定的固 定長度,不僅缺乏彈性且沒有充分地利用到頻寬。因此,需要一種創新的錯誤檢查及校正設計來充分地利用頻寬,以提升記憶體的效能。
本發明之目的之一在於提供一種根據資料長度來決定校正碼長度的錯誤檢查及校正方法以及相關錯誤檢查及校正電路,來改善上述問題。
根據本發明之第一實施例,揭露一種錯誤檢查及校正方法。該錯誤檢查及校正方法包含有:對一原始資料封包進行壓縮,並產生一壓縮資料封包;根據該壓縮資料封包的一資料長度來動態地決定一校正碼長度;根據該校正碼長度來對一封包資料進行錯誤檢查及校正編碼以產生一校正碼,其中該封包資料至少包含該壓縮資料封包;以及將該封包資料以及該校正碼組合成一編碼資料封包。
根據本發明之第二實施例,揭露一種錯誤檢查及校正方法。該錯誤檢查及校正方法包含有:讀取一編碼資料封包,其中該編碼資料封包包含一封包資料以及一校正碼,且該封包資料至少包含一壓縮資料封包;根據該校正碼來對該封包資料進行錯誤檢查及校正解碼,並產生對應該壓縮資料封包之一解碼壓縮資料封包;以及對該解碼壓縮資料封包進行解壓縮,並產生一解壓縮資料封包。
根據本發明之第三實施例,揭露一種錯誤檢查及校正電路。該錯誤檢查及校正電路包含有一壓縮電路、一碼長度控制電路、一校正碼編碼器以及一封包產生器。其中該壓縮電路係用來對一原始資料封包進行壓縮,並產生一壓縮資料封包。該碼長度控制電路係用來根據該壓縮資料封包的一資料長度來動態地決定一校正碼長度。該校正碼編碼器係用來根據該校正碼長度來對一封包資料進行錯誤檢查及校正編碼以產生一校正碼,其中該封包資料至少包含該壓縮資料封包。該封包產生器係用來將該封包資料以及該校正碼組合成一編碼資料封包。
根據本發明之第四實施例,揭露一種錯誤檢查及校正電路。該錯誤檢查及校正電路包含有一輸入暫存器、一校正碼解碼器以及一解壓縮電路。其中該輸入暫存器係用來讀取一編碼資料封包,其中該編碼資料封包包含一封包資料以及一校正碼,且該封包資料至少包含一壓縮資料封包。該校正碼解碼器係用來根據該校正碼來對該封包資料進行錯誤檢查及校正解碼,並產生對應該壓縮資料封包之一解碼壓縮資料封包。該解壓縮電路係用來對該解碼壓縮資料封包進行解壓縮,並產生一解壓縮資料封包。
本發明除了充分地將經由不失真壓縮所多得到的有限的頻寬利用在錯誤檢查及校正上,更另外利用了不足的零散填充位元來進一步提升錯誤檢查及校正的準確度,減少了系統的負擔與使用者等待的時間。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
在現有的記憶體存取系統中,為了解決資料錯誤的問題,舉例來說,會搭配適合的錯誤校正碼(Error Correcting Code,ECC)架構以在傳輸時偵測並校正錯誤的資料,換句話說,在接收端藉由已編碼資料的檢查以偵測並校正傳輸錯誤。錯誤校正碼使用電子方法檢查儲存在記憶體中的資料是否一致。通常有錯誤檢查及校正功能的記憶體主要用於高階個人電腦、伺服器或工作站,以避免日益增加的單位元(single-bit)記憶體錯誤的系統當機問題。然而,受限於有限的頻寬,系統通常會限制附加於資料封包內的校正碼(例如同位碼)在一個較小的長度,而校正碼的長度越短,代表錯誤檢查及校正功能的除錯能力就越差,反之,校正碼長度越長,則犧牲了頻寬(亦即資料 傳輸量越小)。因此,本發明所揭露之實施例能夠在不影響資料傳輸量的情況之下增加錯誤檢查及校正功能的除錯能力,詳細說明如下。
請參考第1圖,第1圖為本發明錯誤檢查及校正方法之一示範性實施例的流程圖。倘若大體上可達到相同的結果,並不需要一定遵照第1圖所示之流程中的步驟順序來進行,且第1圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中,此外,第1圖中的某些步驟亦可根據不同實施例或設計需求省略之。該方法包含有以下步驟:步驟100:對一原始資料封包進行壓縮,並產生一壓縮資料封包;步驟102:根據該壓縮資料封包的一資料長度來動態地決定一校正碼長度(例如一同位碼長度);步驟104:根據該校正碼長度來對一封包資料進行錯誤檢查及校正編碼以產生一校正碼(例如一同位碼),其中該封包資料至少包含該壓縮資料封包;步驟106:將該封包資料以及該校正碼組合成一編碼資料封包;步驟108:讀取一編碼資料封包,其中該編碼資料封包包含一封包資料以及一校正碼,且該封包資料至少包含一壓縮資料封包;步驟110:根據該校正碼來對該封包資料進行錯誤檢查及校正解碼,並產生對應該壓縮資料封包之一解碼壓縮資料封包;以及 步驟112:對該解碼壓縮資料封包進行解壓縮,並產生一解壓縮資料封包。
請注意,本發明第1圖的實施例所示之步驟100~步驟106係寫入一資料至一記憶體(例如快閃記憶體)的資料寫入流程120,而步驟108~步驟112係從該記憶體讀取該資料的資料讀取流程130。關於資料寫入流程120,請一併參考第4圖,第4圖為本發明錯誤檢查及校正電路400的一示範性實施例的示意圖。應注意的是,錯誤檢查及校正電路400係用來寫入一資料至一記憶體,且包含有一壓縮電路402、一碼長度控制電路404、一校正碼編碼器406、一封包產生器408、一比較器410以及一填充位元處理電路412。首先,如步驟100所示,壓縮電路402會對欲寫入至該記憶體的一原始資料封包Doriginal進行壓縮,並產生一壓縮資料封包Dcomp,應注意的是,本發明的重點在於不影響原有的資料頻寬,同時亦不破壞原始資料的正確性,因此步驟100中所進行的壓縮程序(亦即壓縮電路402所使用的壓縮方式)係一不失真壓縮(lossless data compression),相較於失真壓縮,不失真壓縮方法保存了資料的完整性,換句話說,該原始資料封包和經過壓縮及解壓縮後的資料是完全相同的。舉例來說,變動長度編碼(run-length encoding)、霍夫曼(Huffman)編碼,以及藍波立夫(Lempel Ziv)演算法都是常見的不失真壓縮方法,然而本發明的不失真壓縮方法並不侷限上述編碼方法的其中之一,實務上任何能夠達到不失真壓縮的機制都可被壓縮電路402所採用。
完成壓縮的程序之後所產生之壓縮資料封包Dcomp具有一資料長度,且該資料長度會依據該原始資料封包的內容或是所使用的不失真壓縮編碼的種類而有差異,也就是說,壓縮資料封包Dcomp的壓縮率Rcomp無法在事先被得知,而必須在壓縮完成之後經由計算來得到壓縮率Rcomp,在本實施例中係藉由第4圖中所示之碼長度控制電路404來完成步驟102,請參考第5圖,第5圖為第4圖所示之錯誤檢查及校正電路400中之碼長度控制電路404的一實施例的示意圖。本實施例中,碼長度控制電路404包含有一除法器502、一比較器504以及一切換器506。首先,除法器502會將壓縮資料封包Dcomp的長度除以已知的原始資料封包Doriginal的長度,並產生上述之壓縮率Rcomp,也就是說,壓縮率Rcomp若越小,表示原始資料封包Doriginal被壓縮的程度越大,則後續可以有更多的閒置空間可以被利用。接下來,比較器504會將壓縮率Rcomp與一特定壓縮率RTH相比較,若壓縮率Rcomp不小於特定壓縮率RTH,則切換器506會設定相對應壓縮資料封包Dcomp的一校正碼Pcode的一校正碼長度Plength為一第一數值D1,反之,若壓縮率Rcomp小於特定壓縮率RTH,則切換器506便將校正碼長度Plength設定為一第二數值D2,其中第二數值D2大於第一數值D1(亦即D2>D1),如此一來,便可以依據該原始資料封包的內容的壓縮結果來動態地切換校正碼長度Plength。更具體地說,本發明的重點在於盡其所能地利用有限的頻寬來增加校正碼長度Plength以保護所要傳送的資料,而非傳統上採用固定的校正碼長度,然而由於錯誤檢查及校正碼的特性,較不適合使用任意的校正碼長度Plength,故本實施例提出了區分為兩段的校正碼長度 Plength,也就是說,可以依據原始資料封包的內容的壓縮結果來於兩種不同的校正碼長度Plength之間動態地切換。然而,在不違背本發明精神之下,若設定複數個不同的特定壓縮率來定義出兩個以上的壓縮率區段,並經由比較器504逐一比較各個特定壓縮率與壓縮率Rcomp來偵測壓縮率Rcomp落於哪一壓縮率區段,之後,切換器506再根據比較器504的比較結果來動態地於不同的校正碼長度數值之間進行切換,此一設計上的變化亦理應屬於本發明的範疇。
請注意,透過壓縮率來決定校正碼長度的數值僅作為範例說明,而非本發明的限制。請參考第6圖,第6圖為第4圖所示之錯誤檢查及校正電路400中之碼長度控制電路404的另一實施例的示意圖。碼長度控制電路404包含有一比較器602以及一切換器604。首先,比較器602會比較壓縮資料封包Dcomp的長度以及一預定資料長度LTH,接下來,切換器604會依據比較器602的比較結果來將校正碼長度Plegnth選擇性地設定為上述之第一數值D1或是第二數值D2,其中D2>D1。同樣地,在不違背本發明精神之下,若設定複數個不同的特定資料長度來定義出兩個以上的資料長度區段,並經由比較器604逐一比較各個特定資料長度與壓縮資料封包Dcomp的長度,來偵測壓縮資料封包Dcomp的長度落於哪一資料長度區段,之後,切換器604再根據比較器602的比較結果來動態地於不同的校正碼長度數值之間進行切換,此一設計上的變化亦理應屬於本發明的範疇。
請參考第2圖以及第3圖,其為根據該壓縮資料封包的一資料長度來動態地決定一校正碼長度的示意圖。第2圖中的一資料封包的長度即為預定資料長度LTH,而相對應的一校正碼202的校正碼長度Plength即為第二數值D2,因此小於預定資料長度LTH的壓縮資料封包Dcomp的相對應的校正碼長度Plength會被設定為第二數值D2,反之,大於預定資料長度LTH的壓縮資料封包Dcomp的相對應的一校正碼200的校正碼長度Plength會被設定為第一數值D1。應注意的是,在此示範性實施例中,第一數值D1即為相對應於原始資料封包的校正碼200的長度。如上所述,亦可設定複數個不同的校正碼長度以對應複數種不同的壓縮率預定值,舉例來說,將壓縮率分為三段,分別為0.25、0.5、0.55以及1,而相對應的校正碼長度分別為868位元組、616位元組、350位元組以及112位元組。應注意的是,選擇劃分不同段數的壓縮率的方式以及所劃分出的段數並不侷限於上述的範例,其亦可依據實務上不同需求或是應用來設定,壓縮的方式或是演算法亦會影響劃分段數的方式。然而,無論動態地切換校正碼長度或是僅使用對應一固定壓縮率的校正碼長度,皆屬於本發明之範疇之內,也就是說,無論段數劃分的多少,皆屬於本發明的權利範圍。
一般來說,壓縮資料封包Dcomp的長度不會剛好相等於第2圖所示之封包資料的長度LTH,而是如第3圖所示的會有若干位元組的空缺,因此在步驟104中,在產生校正碼Pcode之前,錯誤檢查及校正電路400中的一比較器410會比較壓縮資料封包Dcomp之長度 與預定資料長度LTH來決定一填充(padding)位元長度,並且使用一填充位元處理電路412來將預定的填充位元(例如’0’或’1’)附加至第3圖所示的若干位元組的空缺以產生該封包資料,如此一來,校正碼編碼器406即可使用該封包資料來產生校正碼Pcode。在本實施例中的資料寫入流程120中,最後還需使用錯誤檢查及校正電路400中的一封包產生器408來將壓縮資料封包Dcomp、填充位元、校正碼Pcode、校正碼長度Plength的資訊以及填充位元長度的資訊(校正碼長度Plength的資訊以及填充位元長度的資訊未顯示於第4圖中)組合成一編碼資料封包(即步驟106),請注意,填充位元長度的資訊亦可不附加於該編碼資料封包中,而相對應的讀取操作會分別在後續段落中描述。
關於第1圖所示之資料讀取流程130,請同時參考第7圖,第7圖為本發明錯誤檢查及校正電路700的一示範性實施例的示意圖。應注意的是,錯誤檢查及校正電路700係用來從記憶體(例如快閃記憶體)讀取資料(例如由錯誤檢查及校正電路400寫入至記憶體的編碼資料封包Dencoded),且包含有一封包剖析器702、一校正碼解碼器704以及一解壓縮電路706。首先,如步驟108所示,封包剖析器702會將先將讀取進來之一編碼資料封包DRencoded中的校正碼Pcode之校正碼長度Plength以及上述之填充位元長度的資訊剖析出來,再依據校正碼Pcode之校正碼長度來擷取出校正碼Pcode以及封包資料DRdata,請注意,相較於第4圖中之編碼資料封包Dencoded,第7圖之編碼資料封包DRencoded可能會因為通道中雜訊的干擾或是記憶體 本身的損毀,而存在有錯誤位元的狀況,因此,相較於第4圖中之封包資料DRdata,第7圖之封包資料DRdata便可能存在有錯誤位元,這也就是需要錯誤檢查及校正電路的原因。
在將編碼資料封包DRencoded中的封包資料DRdata、校正碼Pcode以及上述該填充位元長度的資訊剖析出來之後,校正碼解碼器704便會根據校正碼Pcode來對封包資料DRdata進行錯誤檢查及校正解碼,因此可透過校正碼Pcode(例如同位碼)來偵測封包資料DRdata中的錯誤位元並加以更正,最後產生對應上述壓縮資料封包Dcomp之一解碼壓縮資料封包Ddata(即步驟110)。接下來,第7圖中的錯誤檢查及校正電路700中的解壓縮電路110會對解碼壓縮資料封包Ddata進行解壓縮,亦即第1圖中所示的步驟112,並產生一解壓縮資料封包Doriginal’,本實施例中,錯誤檢查及校正電路700中的解壓縮電路110所進行的解壓縮程序係相對應於第4圖中的錯誤檢查及校正電路400中的壓縮電路402所進行的壓縮程序,同時也係一不失真壓縮,舉例來說,若錯誤檢查及校正電路400中的壓縮電路402所進行的解壓縮程序係採用一變動長度編碼演算法,則錯誤檢查及校正電路700中的解壓縮電路110所進行的解壓縮程序採用一變動長度解碼演算法,然而本發明的不失真解壓縮方法不侷限於變動長度解碼演算法,實務上任何能夠達到不失真解壓縮的機制都屬於本發明的權利範圍。應注意的是,解碼壓縮資料封包Ddata中包含了上述的壓縮資料封包Dcomp以及填充位元,然而解壓縮資料封包Doriginal’的長度是固定且已知的,故一般的作法可以依序地對解碼壓縮資料 封包Ddata中的位元進行解壓縮,錯誤檢查及校正電路400中的壓縮電路402所輸出的資料長度達到解壓縮資料封包Doriginal’的長度為止,也就是說,可以完全不需要處理附加於上述的壓縮資料封包Dcomp的填充位元。應注意的是,假若所有錯誤位元均可由校正碼解碼器704根據校正碼Pcode來加以校正,則解壓縮資料封包Doriginal’與原始資料封包Doriginal會具有相同的資料內容。
請參考第8圖,第8圖為本發明錯誤檢查及校正電路800的一示範性實施例的示意圖。關於第1圖所示之資料讀取流程130,亦可採用第8圖所示之錯誤檢查及校正電路800來從編碼資料封包DRencoded中得到所要的解壓縮資料封包Doriginal’。本實施例中,填充位元處理電路804會針對附加於上述壓縮資料封包Dcomp的填充位元進行處理,以增進本發明的效能與除錯能力。首先,填充位元處理電路804會依據封包剖析器702所產生的該填充位元長度的資訊來檢查封包資料DRdata中的填充位元,由於填充位元係為已知位元(例如’0’或’1’),也就是說,透過該填充位元長度的資訊,便可以得知封包資料DRdata中的填充位元是否有錯誤位元,若有的話,則可直接予以更正而不需透過校正碼解碼器806來更正,如此一來節省了可更正的錯誤位元餘額。舉例來說,若相對應的校正碼長度可更正40個位元,而所接收到的封包資料DRdata中共計有41個錯誤位元位元,其中一個位於封包資料DRdata中的填充位元的範圍內,另外40個位於上述壓縮資料封包Dcomp的範圍內,在沒有預先更正封包資料DRdata中的填充位元中的1個錯誤位元的狀況之下,由於錯 誤位元數目超過校正碼可更正的位元數目,整個編碼資料封包DRencoded將無法被更正而被放棄,然而,本實施例中透過填充位元處理電路804直接對封包資料DRdata中的填充位元中的1個錯誤位元予以更正,而不需透過校正碼解碼器806來更正,可以使得整體的封包資料DRdata中的錯誤位元位元數目降低至40個,如此一來,後續的校正碼解碼器806便可順利地更正所有的錯誤位元位元,編碼資料封包DRencoded將正確無誤地被還原成原始資料封包Dorigimal(亦即Dorigimal’=Dorigimal)。除此之外,錯誤檢查及校正電路800的其餘元件(亦即封包剖析器802、校正碼解碼器804以及解壓縮電路806)操作原理基本上和錯誤檢查及校正電路700中的同名元件相同,在此為求簡明,故不多作贅述。
本發明除了充分地將經由不失真壓縮所多得到的有限的頻寬利用在錯誤檢查及校正上,更另外利用了不足的零散填充位元來進一步提升錯誤檢查及校正的準確度,減少了系統的負擔與使用者等待的時間。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100~112‧‧‧步驟
120‧‧‧資料寫入流程
130‧‧‧資料讀取流程
200、202‧‧‧校正碼
400、700、800‧‧‧錯誤檢查及校正電路
402‧‧‧壓縮電路
404‧‧‧碼長度控制電路
406‧‧‧校正碼編碼器
408‧‧‧封包產生器
410、504、602‧‧‧比較器
412、804‧‧‧填充位元處理電路
502‧‧‧除法器
506、604‧‧‧切換器
702、802‧‧‧封包剖析器
704、806‧‧‧校正碼解碼器
706、808‧‧‧解壓縮電路
第1圖為本發明錯誤檢查及校正方法的一示範性實施例的流程圖。
第2圖為根據壓縮資料封包的資料長度來動態地決定校正碼長度之 一示範性實施例的示意圖。
第3圖為根據壓縮資料封包的資料長度來動態地決定校正碼長度之另一示範性實施例的示意圖。
第4圖為本發明針對資料寫入之錯誤檢查及校正電路的一示範性實施例的示意圖。
第5圖為第4圖所示之錯誤檢查及校正電路中之碼長度控制電路的一實施例的示意圖。
第6圖為第4圖所示之錯誤檢查及校正電路中之碼長度控制電路的另一實施例的示意圖。
第7圖為本發明針對資料讀取之錯誤檢查及校正電路的一示範性實施例的示意圖。
第8圖為本發明針對資料讀取之錯誤檢查及校正電路的另一示範性實施例的示意圖。
100~112‧‧‧步驟
120‧‧‧資料寫入流程
130‧‧‧資料讀取流程

Claims (27)

  1. 一種錯誤檢查及校正方法,包含有:對一原始資料封包進行壓縮,並產生一壓縮資料封包;根據該壓縮資料封包的一資料長度來動態地決定一校正碼長度;根據該校正碼長度來對一封包資料進行錯誤檢查及校正編碼以產生一校正碼,其中該封包資料至少包含該壓縮資料封包;以及將該封包資料以及該校正碼組合成一編碼資料封包。
  2. 如申請專利範圍第1項所述之錯誤檢查及校正方法,其係使用於一記憶體存取系統。
  3. 如申請專利範圍第1項所述之錯誤檢查及校正方法,其中對該原始資料封包進行的壓縮係為不失真壓縮。
  4. 如申請專利範圍第1項所述之錯誤檢查及校正方法,其中根據該壓縮資料封包的該資料長度來動態地決定該校正碼長度的步驟包含有:將該壓縮資料封包的該資料長度除以該原始資料封包的一資料長度來得到對應該原始資料封包的一壓縮率;以及依據該壓縮率來動態地決定該校正碼長度。
  5. 如申請專利範圍第4項所述之錯誤檢查及校正方法,其中依據該壓縮率來動態地決定該校正碼長度的步驟包含有:比較該壓縮率以及一特定壓縮率;若該壓縮率不小於該特定壓縮率,則將該校正碼長度設定為一第一數值;以及若該壓縮率小於該特定壓縮率,則將該校正碼長度設定為一第二數值,其中該第二數值大於該第一數值。
  6. 如申請專利範圍第1項所述之錯誤檢查及校正方法,其中根據該壓縮資料封包的該資料長度來動態地決定該校正碼長度的步驟另包含有:比較該壓縮資料封包的該資料長度以及一預定資料長度;若該該資料長度不小於該預定資料長度,則將該校正碼長度設定為一第一數值;以及若該該資料長度小於該預定資料長度,則將該校正碼長度設定為一第二數值,其中該第二數值大於該第一數值。
  7. 如申請專利範圍第1項所述之錯誤檢查及校正方法,另包含有:將該校正碼長度的資訊加入至該編碼資料封包。
  8. 如申請專利範圍第1項所述之錯誤檢查及校正方法,另包含有:比較該壓縮資料封包之該資料長度與一預定資料長度來決定一填充位元長度;以及 依據該填充位元長度來附加填充位元至該壓縮資料封包,以產生該封包資料。
  9. 如申請專利範圍第1項所述之錯誤檢查及校正方法,另包含有:將該填充位元長度的資訊加入至該編碼資料封包。
  10. 一種錯誤檢查及校正方法,包含有:讀取一編碼資料封包,其中該編碼資料封包包含一封包資料以及一校正碼,且該封包資料至少包含一壓縮資料封包;根據該校正碼來對該封包資料進行錯誤檢查及校正解碼,並產生對應該壓縮資料封包之一解碼壓縮資料封包;以及對該解碼壓縮資料封包進行解壓縮,並產生一解壓縮資料封包。
  11. 如申請專利範圍第10項所述之錯誤檢查及校正方法,其係使用於一記憶體存取系統。
  12. 如申請專利範圍第10項所述之錯誤檢查及校正方法,其中對該解碼壓縮資料封包進行的解壓縮係為不失真解壓縮。
  13. 如申請專利範圍第10項所述之錯誤檢查及校正方法,其中該編碼資料封包另包含該校正碼之一校正碼長度的資訊,以及該錯誤檢查及校正方法另包含: 依據該校正碼長度來得到該編碼資料封包中的該校正碼。
  14. 如申請專利範圍第10項所述之錯誤檢查及校正方法,其中該編碼資料封包另包含一填充位元長度的資訊,以及該錯誤檢查及校正方法另包含:依據該填充位元長度來檢查附加於該封包資料之填充位元。
  15. 一種錯誤檢查及校正電路,包含有:一壓縮電路,用來對一原始資料封包進行壓縮,並產生一壓縮資料封包;一碼長度控制電路,用來根據該壓縮資料封包的一資料長度來動態地決定一校正碼長度;一校正碼編碼器,用來根據該校正碼長度來對一封包資料進行錯誤檢查及校正編碼以產生一校正碼,其中該封包資料至少包含該壓縮資料封包;以及一封包產生器,用來將該封包資料以及該校正碼組合成一編碼資料封包。
  16. 如申請專利範圍第15項所述之錯誤檢查及校正電路,其係使用於一記憶體存取系統。
  17. 如申請專利範圍第15項所述之錯誤檢查及校正電路,其中該壓縮電路所進行的壓縮係不失真壓縮。
  18. 如申請專利範圍第15項所述之錯誤檢查及校正電路,其中該碼長度控制電路包含有:一除法器,用來將該壓縮資料封包的該資料長度除以該原始資料封包的一資料長度來得到對應該原始資料封包的一壓縮率;以及一選擇電路,依據該壓縮率來動態地決定該校正碼長度。
  19. 如申請專利範圍第18項所述之錯誤檢查及校正電路,其中該選擇電路包含有:一比較器,用來比較該壓縮率以及一特定壓縮率;以及一切換器,用來依據該壓縮率以及該特定壓縮率的比較結果,將該校正碼長度選擇性地設定為一第一數值或是一第二數值,其中該第二數值大於該第一數值。
  20. 如申請專利範圍第15項所述之錯誤檢查及校正電路,其中該碼長度控制電路包含有:一比較器,用來比較該壓縮資料封包的該資料長度以及一預定資料長度;以及一切換器,用來依據該資料長度以及該預定資料長度,將該校正碼長度選擇性地設定為一第一數值或是一第二數值,其中該第二數值大於該第一數值。
  21. 如申請專利範圍第15項所述之錯誤檢查及校正電路,其中該封包產生器另將該校正碼長度的資訊加入至該編碼資料封包。
  22. 如申請專利範圍第15項所述之錯誤檢查及校正電路,另包含有:一比較器,用來比較該壓縮資料封包之該資料長度與一預定資料長度來決定一填充位元長度;以及一填充位元處理電路,用來依據該填充位元長度來附加填充位元至該壓縮資料封包,以產生該封包資料。
  23. 一種錯誤檢查及校正電路,包含有:一封包剖析器,用來讀取一編碼資料封包,其中該編碼資料封包包含一封包資料以及一校正碼,且該封包資料至少包含一壓縮資料封包;一校正碼解碼器,用來根據該校正碼來對該封包資料進行錯誤檢查及校正解碼,並產生對應該壓縮資料封包之一解碼壓縮資料封包;以及一解壓縮電路,用來對該解碼壓縮資料封包進行解壓縮,並產生一解壓縮資料封包。
  24. 如申請專利範圍第23項所述之錯誤檢查及校正電路,其係使用於一記憶體存取系統。
  25. 如申請專利範圍第23項所述之錯誤檢查及校正電路,其中該壓 縮電路所進行的解壓縮係為不失真解壓縮。
  26. 如申請專利範圍第23項所述之錯誤檢查及校正電路,其中該編碼資料封包另包含該校正碼之一校正碼長度的資訊,以及該封包剖析器另用來依據該校正碼長度來得到該編碼資料封包中的該校正碼。
  27. 如申請專利範圍第23項所述之錯誤檢查及校正電路,其中該編碼資料封包另包含一填充位元長度的資訊,以及該錯誤檢查及校正電路另包含有:一填充位元處理電路,用來依據該填充位元長度來檢查附加於該封包資料之填充位元。
TW101140086A 2012-10-30 2012-10-30 錯誤檢查及校正方法以及相關錯誤檢查及校正電路 TW201416849A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101140086A TW201416849A (zh) 2012-10-30 2012-10-30 錯誤檢查及校正方法以及相關錯誤檢查及校正電路
US13/798,185 US20140122964A1 (en) 2012-10-30 2013-03-13 Error checking and correction method for determining an error correction code length and related error checking and correction circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101140086A TW201416849A (zh) 2012-10-30 2012-10-30 錯誤檢查及校正方法以及相關錯誤檢查及校正電路

Publications (1)

Publication Number Publication Date
TW201416849A true TW201416849A (zh) 2014-05-01

Family

ID=50548642

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101140086A TW201416849A (zh) 2012-10-30 2012-10-30 錯誤檢查及校正方法以及相關錯誤檢查及校正電路

Country Status (2)

Country Link
US (1) US20140122964A1 (zh)
TW (1) TW201416849A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582484A (zh) * 2017-09-29 2019-04-05 辉达公司 防范在汽车系统中实现的纠错码(ecc)中的错误
US11494265B2 (en) 2017-09-29 2022-11-08 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150067436A1 (en) * 2013-09-03 2015-03-05 Sandisk Technologies Inc. Nonvolatile Memory System Compression
TWI529530B (zh) * 2014-08-25 2016-04-11 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US9787332B2 (en) 2015-09-15 2017-10-10 Intel Corporation Error-checking compressed streams in heterogeneous compression accelerators
JP6919225B2 (ja) * 2017-02-27 2021-08-18 株式会社リコー 画像データ送信装置、画像データ送信方法、及び画像データ転送システム
US10855314B2 (en) * 2018-02-09 2020-12-01 Micron Technology, Inc. Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
US11615057B2 (en) * 2019-02-26 2023-03-28 Amir More Data compression and decompression facilitated by machine learning
US10992591B1 (en) * 2019-03-12 2021-04-27 Juniper Networks, Inc Apparatus, system, and method for discovering path maximum transmission units
CN116343890B (zh) * 2023-05-31 2023-07-25 深圳大普微电子科技有限公司 纠错单元管理方法、存储控制芯片及闪存设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
TWI459396B (zh) * 2010-12-30 2014-11-01 Phison Electronics Corp 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置
TWI459197B (zh) * 2011-04-21 2014-11-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8806108B2 (en) * 2011-06-07 2014-08-12 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582484A (zh) * 2017-09-29 2019-04-05 辉达公司 防范在汽车系统中实现的纠错码(ecc)中的错误
CN109582484B (zh) * 2017-09-29 2022-02-08 辉达公司 防范在汽车系统中实现的纠错码(ecc)中的错误
US11494265B2 (en) 2017-09-29 2022-11-08 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system

Also Published As

Publication number Publication date
US20140122964A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
TW201416849A (zh) 錯誤檢查及校正方法以及相關錯誤檢查及校正電路
KR101727267B1 (ko) 메모리 디바이스에서 제어 데이터의 오류 정정 시스템 및 방법
KR100444571B1 (ko) 터보디코더와 알에스디코더가 연접된 디코딩장치 및 그의디코딩방법
US8560918B1 (en) Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system
US8458568B2 (en) Systems and methods for memory devices
US9929748B1 (en) Techniques for data compression verification
CN114374470B (zh) 数据传输方法、系统和计算机可读存储介质
US20120216096A1 (en) Memory Device and Memory System
US20120102295A1 (en) Data compression and encoding in a memory system
US10891082B2 (en) Methods for accelerating compression and apparatuses using the same
US20180011757A1 (en) Error correction code management of write-once memory codes
CN109726030B (zh) 包括用于误差校正电路的响应管理器的存储器架构
TW201710900A (zh) 資料儲存系統與其相關方法
CN101452722B (zh) 错误检测码产生电路和使用该电路的编码电路及相关方法
TWI486963B (zh) 錯誤檢查及校正方法以及錯誤檢查及校正電路
CN103810054A (zh) 错误检查及校正方法以及相关错误检查及校正电路
US9900027B1 (en) Method and apparatus for detecting and correcting errors in a communication channel
Pereira et al. Unequal error protection for LZSS compressed data using Reed-Solomon codes
TW202110101A (zh) 疊代解碼電路及解碼方法
US11824566B2 (en) Data decompression device, data compression device, and memory system
JP2010068201A (ja) 通信方法及び通信装置
US12034462B2 (en) Compressing probability tables for entropy coding
CN101447234A (zh) 存储器模块及其写入及读取方法
JP2009509389A (ja) 訂正のバイパスを取り入れた、移動無線アプリケーションにおけるエラー訂正用装置及び方法。
WO2023197935A1 (zh) 存储数据的方法、读取数据的方法和相关设备