TWI706415B - 應用128位元之雙碼錯誤檢測裝置及方法 - Google Patents

應用128位元之雙碼錯誤檢測裝置及方法 Download PDF

Info

Publication number
TWI706415B
TWI706415B TW106106068A TW106106068A TWI706415B TW I706415 B TWI706415 B TW I706415B TW 106106068 A TW106106068 A TW 106106068A TW 106106068 A TW106106068 A TW 106106068A TW I706415 B TWI706415 B TW I706415B
Authority
TW
Taiwan
Prior art keywords
bit
data
proofreading
bits
checksum
Prior art date
Application number
TW106106068A
Other languages
English (en)
Other versions
TW201832244A (zh
Inventor
張錦本
Original Assignee
張錦本
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 張錦本 filed Critical 張錦本
Priority to TW106106068A priority Critical patent/TWI706415B/zh
Priority to GB1800779.9A priority patent/GB2560422B/en
Publication of TW201832244A publication Critical patent/TW201832244A/zh
Application granted granted Critical
Publication of TWI706415B publication Critical patent/TWI706415B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一種應用128位元之雙碼錯誤檢測裝置及方法,該雙碼錯誤檢測裝置包含:一基板;多個儲存記憶體配置在該基板上;兩個校對晶片位在該基板上且用於校對其他多個儲存記憶體之數據傳送是否正確;一數據匯流排用於傳送數據,其包含64個接收埠連接該多個儲存記憶體、及8個校準接收埠連接該兩個校對晶片;該數據匯流排經由該64個接收埠從該儲存記憶體取得128個位元的資料。一運算器用於在數據寫入該儲存記憶體之前運算所有儲存之數據的校驗和及位元和,並將所運算的結果透過該數據匯流排傳送到該兩個校對晶片;一運算比對器,將該數據匯流排從該儲存記憶體所接收的數據進行比對。當128個位元中有兩個錯誤位元時,可以找出該兩個錯誤位元所在的位置並且加以修正。

Description

應用128位元之雙碼錯誤檢測裝置及方法
本發明係有關於位元碼錯誤檢測,尤其是一種應用128位元之雙碼錯誤檢測裝置及方法。
ECC(Error-correcting code)是一種用於記憶體之數據錯誤檢查和修正數據錯誤的技術。相較於奇偶校驗,ECC可以經由較少的數據來進行錯誤檢查和糾正。例如對於256位元的數據,則僅需要32位元的ECC檢驗位來做為數據校驗之用。並且當數據的量每增加一倍,只需要增加一位的ECC檢驗位元。在記憶體中應用ECC能夠容許數據錯誤,並且可以將錯誤自動更正,使得整個系統可以維持正常運作而不會產生錯誤。
在習知的ECC技術中,已經能偵測到一位元的錯誤,但是當數據中有兩個位元錯誤時,就無法進行修正,因此不利於系統的穩定性。
所謂校驗和(checksum)在本案中係指將一位元組等分 為前半組及後半組,以前半組減後半組之後得到另一新的位元組及借位;借位係當被減數小於減數使得相減結果為負數時,運算單元將會設定一旗標(borrow(亦有稱carry)flag)表示現在狀態為負數,此即為借位。
再以此新的位元組等分為前半組及後半組,以後半組減前半組之後得到另一新的位元組及借位;重複上列運算,直到最後所有借位再與僅剩的一位元組合重複上列運算,直到最後僅剩的一位元,即為其校驗和。
如位元組11011111分為1101及1111兩組相減後得1110及借位1,然後再分為11及10兩組,以10減11得11及借位1,再以1減1得0,再與借位組合成00000110,分成0000及0110兩組,以0110減0000得0110,然後再分成01及10兩組,以01減10得11,再以1減1得0,所以校驗和為0。
另一種運算為位元和(sum),其為不同的位元組中每一位元個別加總。如0110及1010兩個位元組之位元和的第0位元(最右方之位元)為0+0,第1位元為1+1(等於10),第2位元為1+0,第3位元為0+1,加總後得到10000。
故本案希望提出一種嶄新的應用128位元之雙碼錯誤檢測裝置及方法,其對於128個傳輸位元中有兩個錯誤位元的情況,可以以最少的運算位元找出該兩個錯誤位元所 在的位置並且加以糾正,而使得傳輸位元數目增加量為最少,因此不會影響整個傳輸的品質。
所以本發明的目的係為解決上述習知技術上的問題,本發明中提出一種應用128位元之雙碼錯誤檢測裝置及方法,其對於128個傳輸位元中有兩個錯誤位元的情況,可以以最少的運算位元找出該兩個錯誤位元所在的位置並且加以糾正,而使得傳輸位元數目增加量為最少,因此不會影響整個傳輸的品質。
為達到上述目的本發明中提出一種應用128位元之雙碼錯誤檢測裝置,包含:一基板;16個儲存記憶體配置在該基板上;該儲存記憶體主要是用於儲存數據之用;各個儲存記憶體有4個輸出埠;兩個校對晶片位在該基板上且用於校對該16個儲存記憶體之數據傳送是否正確;各該校對晶片有4個輸出埠;一數據匯流排,用於傳送數據;其中該數據匯流排包含64個接收埠,各接收埠對應一接收的位元資料,所以可同時接收64位元的資料;該等接收埠用於連接該16個儲存記憶體;該數據匯流排的各個接收埠分別連接該儲存記憶體上的各個對應之輸出埠;該數據匯流排尚包含8個校準接收埠,用於連接該兩個校對晶片;各該校對晶片的各個輸出 埠與該數據匯流排的各個對應之校準接收埠連接;該數據匯流排將從64個接收埠中接收該儲存記憶體的資料,當進行兩個時段的接收時,一共可以得到128個位元的資料,將這128位元的資料分別儲存在32個資料組中,其中各該資料組分配到4個位元;所以所讀取的128位元分成32個資料組,分別為第0個資料組、第1個資料組、第2個資料組…第31個資料組;其中各資料組包含4個位元,分別為第0位元、第1位元、第2位元、第3位元;所以總共有128個位元,其係為由該數據匯流排所讀取之128位元的資料;一運算器用於進行校驗和及位元和的計算,在數據寫入該儲存記憶體之前即運算所有儲存之數據的校驗和及位元和,並將所運算的結果透過該數據匯流排傳送到該兩個校對晶片;該運算器係將上述32個資料組中的128位元進行校驗和(checksum)及位元和(sum)的運算,可以得到一校對位元組,其包含16個校對位元,此16個校對位元分別配置在該兩個校對晶片;其中該16個校對位元分別為第0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15校對位元;其中該第0校對位元到第7校對位元為校驗和,該第8校對位元到第15校對位元為位元和;一運算比對器,將該數據匯流排從該儲存記憶體所接收的數據進行與上列第0校對位元到第7校對位元之校驗和及上列第8校對位元到第15校對位元之位元和同樣的運算,再與從該兩個校對晶片中所傳送的校驗和及位元和進行比對。
本案尚提出一種應用128位元之雙碼錯誤檢測方法,係使用於一應用128位元之雙碼錯誤檢測裝置,該雙碼錯誤檢測裝置包含:一基板;16個儲存記憶體配置在該基板上;各個儲存記憶體有4個輸出埠;兩個校對晶片位在該基板上且用於校對該16個儲存記憶體之數據傳送是否正確;各該校對晶片有4個輸出埠;一數據匯流排,用於傳送數據;其中該數據匯流排包含64個接收埠連接該16個儲存記憶體;該數據匯流排的各個接收埠分別連接該儲存記憶體上的各個對應之輸出埠;該數據匯流排尚包含8個校準接收埠連接該兩個校對晶片;各該校對晶片的各個輸出埠與該數據匯流排的各個對應之校準接收埠連接;一運算器用於在該數據儲存入該儲存記憶體之前進行校驗和及位元和的計算,並將所計算的結果傳送到該兩個校對晶片;一運算比對器,將從該數據匯流排所接收的數據進行比對;該方法包含步驟為:在數據被儲存到該儲存記憶體之前,該運算器即對將存入的數據以128個位元為一單位,然後將這128位元的資料分割成32個資料組,其中各該資料組分配到4個位元;該32個資料組分別為第0個資料組、第1個資料組、第2個資料組…第31個資料組;其中各資料組包含4個位元,分別為第0位元、第1位元、第2位元、第3位元;然後將上述32個資料組中的128位元進行校驗和(checksum)及位元和(sum)的運算,可以得到一校對位元組,其包含16個校對位元,此16個校對位元分 別配置在該兩個校對晶片;其中該16個校對位元分別為第0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15校對位元;其中該第0校對位元到第7校對位元為校驗和,該第8校對位元到第15校對位元為位元和;然後透過該數據匯流排將該128個位元的數據儲存到該儲存記憶體,且將所運算的該校對位元組傳送到該兩個校對晶片,而完成數據儲存的作業;當欲將儲存於該儲存記憶體的數據讀取並向遠端傳送時,該數據匯流排從64個接收埠接收該儲存記憶體的資料並進行兩個時段的接收,每一時段可同時讀取64個位元的數據,所以兩個時段一共可以得到128個位元的資料;該數據匯流排將欲傳送的128個位元的資料及儲存在該兩個校對晶片的校對位元傳送至接收端;該接收端接收來自該數據匯流排的數據;該運算比對器將從該數據匯流排所接收的數據進行與上列校驗和及上列位元和同樣的運算;將運算的結果與從該兩個校對晶片中所傳送的校驗和及位元和進行比對;如果比對的結果不同,且已確定不為單一位元的錯誤時,則認定有雙位元的錯誤,根據校驗和及位元和的錯誤方式偵測錯誤的該雙位元並進行修正。
由下文的說明可更進一步瞭解本發明的特徵及其優點,閱讀時並請參考附圖。
10‧‧‧基板
20‧‧‧儲存記憶體
25‧‧‧輸出埠
30‧‧‧校對晶片
35‧‧‧輸出埠
40‧‧‧數據匯流排
41‧‧‧接收埠
42‧‧‧校準接收埠
50‧‧‧資料組
60‧‧‧接收端
70‧‧‧運算器
80‧‧‧運算比對器
90‧‧‧校對位元組
91‧‧‧校對位元
b0‧‧‧第0位元
b1‧‧‧第1位元
b2‧‧‧第2位元
b3‧‧‧第3位元
cb0‧‧‧第0校對位元
cb1‧‧‧第1校對位元
cb2‧‧‧第2校對位元
cb3‧‧‧第3校對位元
cb4‧‧‧第4校對位元
cb5‧‧‧第5校對位元
cb6‧‧‧第6校對位元
cb7‧‧‧第7校對位元
cb8‧‧‧第8校對位元
cb9‧‧‧第9校對位元
cb10‧‧‧第10校對位元
cb11‧‧‧第11校對位元
cb12‧‧‧第12校對位元
cb13‧‧‧第13校對位元
cb14‧‧‧第14校對位元
cb15‧‧‧第15校對位元
圖1顯示本案之元件組合示意圖。
圖2顯示本案之資料組及校對位元之示意圖。
圖3顯示本案之校對晶片及校對位元組之示意圖。
圖4顯示本案之操作流程圖。
圖5顯示本案之儲存記憶體與數據匯流排之連接之局部示意圖。
圖6顯示本案之校對晶片與數據匯流排之連接之局部示意圖。
圖7之表格顯示數個校對位元的組合以及對應的配對結果。
圖8之表格顯示數個校對位元的組合以及對應的配對結果。
圖9之表格顯示數個校對位元的組合以及對應的配對結果。
圖10之表格顯示數個校對位元的組合以及對應的配對結果。
圖11之表格顯示數個校對位元的組合以及對應的配對結果。
茲謹就本案的結構組成,及所能產生的功效與優點,配合圖式,舉本案之一較佳實施例詳細說明如下。
請參考圖1至圖11所示,下文茲說明本發明之應用128位元之雙碼錯誤檢測裝置及方法,包含: 一基板10; 16個儲存記憶體20配置在該基板10上。該儲存記憶體20主要是用於儲存數據之用,各個儲存記憶體20有4個輸出埠25。
兩個校對晶片30位在該基板10上且用於校對該16個儲存記憶體20之數據傳送是否正確。各該校對晶片30有4個輸出埠35。
一數據匯流排40,用於傳送數據。其中該數據匯流排40包含64個接收埠41,各接收埠41對應一接收的位元資料,所以可同時接收64位元的資料,如圖1所示。該等接收埠41用於連接該16個儲存記憶體20,該數據匯流排40以各儲存記憶體20具有相同位元的連接方式連接該儲存記憶體20。該數據匯流排40的各個接收埠41分別連接該儲存記憶體20上的對應之輸出埠25,如圖5所示。
該數據匯流排40尚包含8個校準接收埠42,用於連接 該兩個校對晶片30的4個輸出埠35,各該校對晶片30的各個輸出埠35與該數據匯流排40的各個對應之校準接收埠42連接,如圖6所示。
該數據匯流排40將從64個接收埠41中接收該儲存記憶體20的資料,當進行兩個時段的接收時,一共可以得到128個位元的資料,將這128位元的資料分別儲存在32個資料組50中,其中各該資料組50分配到4個位元。所以所讀取的128位元分成32個資料組50,分別為第0個資料組50、第1個資料組50、第2個資料組50…第31個資料組50,如圖2所示。其中各資料組50包含4個位元,分別為第0位元b0、第1位元b1、第2位元b2、第3位元b3。所以總共有128個位元,其係為由該數據匯流排40所讀取之128位元的資料。
本案尚包含一運算器70用於進行校驗和及位元和的計算,在數據寫入該儲存記憶體之前即運算所有儲存之數據的校驗和及位元和,並將所運算的結果透過該數據匯流排40傳送到該兩個校對晶片30。
該運算器70係將上述32個資料組50中的128位元進行校驗和(checksum)及位元和(sum)的運算,可以得到一校對位元組90,其包含16個校對位元91,此16個校對位元91分別配置該兩個校對晶片30,即以4個校對位元91為一組的方式儲存在該校對晶片30中,如圖3所示。
其中該16個校對位元91分別為第0校對位元cb0、第1校對位元cb1、第2校對位元cb2、第3校對位元cb3、第4校對位元cb4、第5校對位元cb5、第6校對位元cb6、第7校對位元cb7、第8校對位元cb8、第9校對位元cb9、第10校對位元cb10、第11校對位元cb11、第12校對位元cb12、第13校對位元cb13、第14校對位元cb14、及第15校對位元cb15。
在數據傳送時,當接收端60接收到該數據匯流排40所傳送的數據時,會將從儲存記憶體20接收的數據進行與上述之校驗和(checksum)及位元和(sum)相同的運算,所以得到另一包含16個校對位元91的校對位元組90,而這16個校對位元91與在儲存在該兩個校對晶片30中的校對位元組90的16個校對位元91相比對,以決定在傳送的128個位元中,哪兩個位元有誤差。
其中該校對位元組90的16個校對位元91中有一個校對位元91為所有資料組50之其中兩個位元的校驗和,且有另一個校對位元91為所有資料組50之另兩個位元的校驗和。舉例如下:第0校對位元cb0=所有資料組50之第1位元b1及第3位元b3之校驗和;第1校對位元cb1=所有資料組50之第2位元b2及第 3位元b3之校驗和。
其中該16個校對位元91中有一個校對位元91為所有第奇數個資料組50之其中所有位元的校驗和,如:第2校對位元cb2=第1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31個資料組50之其中所有位元的校驗和。
其中該16個校對位元91中有一個校對位元91為8組連續編號之兩資料組50之其中所有位元的校驗和,各組編號之間跳過兩個資料組50,如第2及第3個資料組50為一組,下一組跳過第4及第5個資料組50,所以第二組為第6及第7個資料組50,依此類推,所以其演算法如下:第3校對位元cb3=第2、3、6、7、10、11、14、15、18、19、22、23、26、27、30、31個資料組50之其中所有位元的校驗和。
其中該16個校對位元91中有一個校對位元91為所有第偶數個資料組50之第0位元b0及第2位元b2的校驗和,所以其演算法如下:第4校對位元cb4=第0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30個資料組50之第0位元b0及第2位元b2的校驗和。
其中該16個校對位元91中有一個校對位元91為4組連 續編號之4個資料組50之其中所有位元的校驗和,各組編號之間跳過4個資料組50,例如以第4、5、6、7個資料組50為第一組,下一組跳過第8、9、10、11個資料組50,所以第二組為第12、13、14、15個資料組50,依此類推,所以其演算法如下:第5校對位元cb5=第4、5、6、7、12、13、14、15、20、21、22、23、28、29、30、31個資料組50之其中所有位元的校驗和。
其中該16個校對位元91中有一個校對位元91為2組連續編號之8個資料組50之其中所有位元的校驗和,各組編號之間跳過8個資料組50,如第8、9、10、11、12、13、14、15個資料組50為一組,下一組跳過第16、17、18、19、20、21、22、23個資料組50,所以第二組為第24、25、26、27、28、29、30、31個資料組50,依此類推,所以其演算法如下:第6校對位元cb6=第8、9、10、11、12、13、14、15、24、25、26、27、28、29、30、31個資料組50之其中所有位元的校驗和。
其中該16個校對位元91中有一個校對位元91為第16到第31個資料組50中所有位元之校驗和,如:第7校對位元cb7=第16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31個資料組50中所有位 元之校驗和。
其中該16個校對位元91中有一個校對位元91為第0、4、8、12、16、20、24、28個資料組50之所有位元的位元和,如:第8校對位元cb8=第0、4、8、12、16、20、24、28個資料組50之所有位元的位元和。
其中該16個校對位元91中有一個校對位元91為第1、5、9、13、17、21、25、29個資料組50之所有位元的位元和,如:第9校對位元cb9=第1、5、9、13、17、21、25、29個資料組50之所有位元的位元和。
其中該16個校對位元91中有一個校對位元91為第2、6、10、14、18、22、26、30個資料組50之所有位元的位元和,如:第10校對位元cb10=第2、6、10、14、18、22、26、30個資料組50之所有位元的位元和。
其中該16個校對位元91中有一個校對位元91為第3、7、11、15、19、23、27、31個資料組50之所有位元的位元和,如:第11校對位元cb11=第3、7、11、15、19、23、27、31個資料組50之所有位元的位元和。
其中該16個校對位元91中有4個校對位元91為所有資料組50之所有位元的位元和,如:第12校對位元cb12、第13校對位元cb13、第14校對位元cb14及第15校對位元cb15=所有資料組50之所有位元的位元和。
因此上述的該第0校對位元cb0到第7校對位元cb7為校驗和,該第8校對位元cb8到第15校對位元cb15為位元和。
因此上述的16個校對位元91中有五個校對位元91為特定之資料組50中所有位元的校驗和,此五個校對位元91分別為第2校對位元cb2、第3校對位元cb3、第5校對位元cb5、第6校對位元cb6、及第7校對位元cb7。
其中經由第2校對位元cb2、第3校對位元cb3、第5校對位元cb5、第6校對位元cb6、第7校對位元cb7、第8校對位元cb8、第9校對位元cb9、第10校對位元cb10、第11校對位元cb11這九個校對位元91可以決定錯誤的位元是在哪兩個資料組50。在這九個校對位元91中可以全部使用,或者是選擇部分適當的校對位元91之組合。
其中經由第0校對位元cb0、第1校對位元cb1、第4校對位元cb4、第12校對位元cb12、第13校對位元cb13、第14校對位元cb14及第15校對位元cb15這七個校對位元91 可以決定錯誤的兩個位元分別是在這兩個資料組50中的哪個位置,也有可能錯誤的兩個位元位在同一個資料組50中不同的位置。在這七個校對位元91中可以全部使用,或者是選擇部分適當的校對位元91之組合。
如圖7至圖11所示之表格,顯示上述各個校對位元91的不同組合及配對結果。圖中的表格中顯示經由選擇的數個校對位元91的組合在大部分的情況下仍然可以得到具有錯誤位元之資料組50及錯誤位元的位置。在圖7至圖11中係選擇第2校對位元cb2、第3校對位元cb3、第5校對位元cb5、第6校對位元cb6、第7校對位元cb7、第8校對位元cb8、第9校對位元cb9、第10校對位元cb10、第11校對位元cb11為用於決定錯誤的位元是在哪兩個資料組50,選擇第0校對位元cb0、第1校對位元cb1、第4校對位元cb4為用於決定錯誤的兩個位元分別是在這兩個資料組50中的哪個位置或是位在同一個資料組50中的不同位置,表格中標示X之欄位表示比對結果出現不同之校對位元91,表格中空白之欄位表示比對結果相同之校對位元91,並且其各種配對的結果顯示在圖7至圖11之表格的最後兩欄中,即為兩個錯誤位元所位在的資料組50以及對應的位置。其中當無法識別錯誤位元的位置時,則使用其他的校對位元91進行更進一步的判斷。其中當第5校對位元cb5、第6校對位元cb6、第7校對位元 cb7具有其他種類的比對結果組合時,則可以對應到位於其他資料組50的錯誤位元的位置。
本案尚包含一運算比對器80,將從該數據匯流排40從該儲存記憶體20所接收的數據進行與上列第0校對位元cb0到第7校對位元cb7之校驗和及上列第8校對位元cb8到第15校對位元cb15之位元和同樣的運算,再與從該兩個校對晶片30中所傳送的校驗和及位元和進行比對。
如果從該儲存記憶體20所接收的數據有一位元的錯誤,必定會在上列的校驗和及位元和的比對中產生不同,找出產生不同的資料組50,即可以知道哪一資料組50的哪一位元在傳送時產生錯誤,因此只要改變位元碼即可校對(如將0改為1,或將1改為0)。
所以本案中主要包含下列的流程,如圖4所示,其中各流程對應的細部結構如上述之裝置實施例所述,所以不再說明其細節:
在數據被儲存到該儲存記憶體20之前,該運算器70即對將存入的數據以128個位元為一單位,將該128個位元分割成32個資料組50,進行校驗和及位元和的運算,其數據的分割方式及運算方式如上文中所說明者,然後透過該數據匯流排40將數據儲存到該儲存記憶體20,且將所運算的結果傳送到該兩個校對晶片30,而完成數據儲存的作業(步驟 200)。
當欲將儲存於該儲存記憶體20的數據讀取並向遠端傳送時,該數據匯流排40從64個接收埠41接收該儲存記憶體20的資料並進行兩個時段的接收,每一時段可同時讀取64個位元的數據,所以兩個時段一共可以得到128個位元的資料(步驟210)。
該數據匯流排40將欲傳送的128個位元的資料及儲存在該兩個校對晶片30的校對位元傳送至接收端(步驟220)。
該接收端60接收來自該數據匯流排40的數據(步驟230)。
該運算比對器80將從該數據匯流排40所接收的數據進行與上列校驗和及上列位元和同樣的運算(步驟240)。
將運算的結果與從該兩個校對晶片30中所傳送的校驗和及位元和進行比對。如果比對的結果不同,且已確定不為單一位元的錯誤時,則認定有雙位元的錯誤,根據校驗和及位元和的錯誤方式偵測錯誤的該雙位元並進行修正(步驟250)。
修正後,對於修正過後的128個位元的數據重新進行與上列校驗和及上列位元和同樣的運算,並將運算的結果與從該兩個校對晶片30中所傳送的校驗和及位元和進行比對,如果相同則確定為雙位元的錯誤,如果不同則可能是更多碼的 位元錯誤存在(步驟260)。
本案在利用時,可以先對由該數據匯流排40所傳送的128個位元核對是否有單一位元的錯誤。如果沒有則應用本案的方式找出雙位元錯誤。當找出錯誤的雙位元時可加以校正,如果校正之後再進行同樣的運算結果使得該運算器70所計算的校對位元與該運算比對器80所計算的校對位元相符,則表示該傳送的128位元中的確存在雙位元錯誤,而且應用本方法也有效的校對,所以本案的方法可以解決雙位元錯誤的傳輸,因此也增加了傳輸的準確度。本案只是在訴求當傳輸位元中存在雙位元錯誤的解決方式。如果傳輸位元中有更多數量的位元錯誤則有待業界更進一步的發展。
本案提出一種嶄新的應用128位元之雙碼錯誤檢測裝置及方法,其對於128個傳輸位元中有兩個錯誤位元的情況,可以以最少的運算位元找出該兩個錯誤位元所在的位置並且加以糾正,而使得傳輸位元數目增加量為最少,因此不會影響整個傳輸的品質。
綜上所述,本案人性化之體貼設計,相當符合實際需求。其具體改進現有缺失,相較於習知技術明顯具有突破性之進步優點,確實具有功效之增進,且非易於達成。本案未曾公開或揭露於國內與國外之文獻與市場上,已符合專利法規定。
上列詳細說明係針對本發明之一可行實施例之具體說 明,惟該實施例並非用以限制本發明之專利範圍,凡未脫離本發明技藝精神所為之等效實施或變更,均應包含於本案之專利範圍中。
10‧‧‧基板
20‧‧‧儲存記憶體
30‧‧‧校對晶片
40‧‧‧數據匯流排
41‧‧‧接收埠
42‧‧‧校準接收埠
60‧‧‧接收端
70‧‧‧運算器
80‧‧‧運算比對器

Claims (15)

  1. 一種應用128位元之雙碼錯誤檢測裝置,包含:一基板;16個儲存記憶體配置在該基板上;該儲存記憶體主要是用於儲存數據之用;各個儲存記憶體有4個輸出埠;兩個校對晶片位在該基板上且用於校對該16個儲存記憶體之數據傳送是否正確;各該校對晶片有4個輸出埠;一數據匯流排,用於傳送數據;其中該數據匯流排包含64個接收埠,各接收埠對應一接收的位元資料,所以可同時接收64位元的資料;該等接收埠用於連接該16個儲存記憶體;該數據匯流排的各個接收埠分別連接該儲存記憶體上的各個對應之輸出埠;該數據匯流排尚包含8個校準接收埠,用於連接該兩個校對晶片;各該校對晶片的各個輸出埠與該數據匯流排的各個對應之校準接收埠連接;該數據匯流排將從64個接收埠中接收該儲存記憶體的資料,當進行兩個時段的接收時,一共可以得到128個位元的資料,將這128位元的資料分別儲存在32個資料組中,其中各該資料組分配到4個位元;所以所讀取的128位元分成32個資料組,分別為第0個資料組、第1個資料組、第2個 資料組…第31個資料組;其中各資料組包含4個位元,分別為第0位元、第1位元、第2位元、第3位元;所以總共有128個位元,其係為由該數據匯流排所讀取之128位元的資料;一運算器用於進行校驗和及位元和的計算,在數據寫入該儲存記憶體之前即運算所有儲存之數據的校驗和及位元和,並將所運算的結果透過該數據匯流排傳送到該兩個校對晶片;該運算器係將上述32個資料組中的128位元進行校驗和(checksum)及位元和(sum)的運算,可以得到一校對位元組,其包含16個校對位元,此16個校對位元分別配置在該兩個校對晶片;其中該16個校對位元分別為第0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15校對位元;其中該第0校對位元到第7校對位元為校驗和,該第8校對位元到第15校對位元為位元和;一運算比對器,將該數據匯流排從該儲存記憶體所接收的數據進行與上列第0校對位元到第7校對位元之校驗和及上列第8校對位元到第15校對位元之位元和同樣的運算,再與從該兩個校對晶片中所傳送的校驗和及位元和進行比對。
  2. 如申請專利範圍第1項所述之應用128位元之雙碼錯誤檢測裝置,其中該16個校對位元,包含九個校對位元可以決定錯誤的位元是在哪兩個資料組。
  3. 如申請專利範圍第2項所述之應用128位元之雙碼錯誤檢測裝置,其中該16個校對位元,包含七個校對位元可以決定錯誤的兩個位元分別是在該兩個資料組中的哪個位置,或是位在同一個資料組中不同的位置。
  4. 如申請專利範圍第3項所述之應用128位元之雙碼錯誤檢測裝置,其中決定錯誤的位元是在哪兩個資料組的九個校對位元包含:該第2校對位元,其為第1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31個資料組之其中所有位元的校驗和;該第3校對位元,其為第2、3、6、7、10、11、14、15、18、19、22、23、26、27、30、31個資料組之其中所有位元的校驗和;該第5校對位元,其為第4、5、6、7、12、13、14、15、20、21、22、23、28、29、30、31個資料組之其中所有位元的校驗和;該第6校對位元,其為第8、9、10、11、12、13、14、 15、24、25、26、27、28、29、30、31個資料組之其中所有位元的校驗和;該第7校對位元,其為第16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31個資料組中所有位元之校驗和;該第8校對位元,其為第0、4、8、12、16、20、24、28個資料組之所有位元的位元和;該第9校對位元,其為第1、5、9、13、17、21、25、29個資料組之所有位元的位元和;該第10校對位元,其為第2、6、10、14、18、22、26、30個資料組之所有位元的位元和;該第11校對位元,其為第3、7、11、15、19、23、27、31個資料組之所有位元的位元和。
  5. 如申請專利範圍第4項所述之應用128位元之雙碼錯誤檢測裝置,其中決定錯誤的兩個位元分別是在該兩個資料組中的哪個位置或是位在同一個資料組中不同位置的七個校對位元包含:該第0校對位元,其為所有資料組之第1位元及第3位元之校驗和;該第1校對位元,其為所有資料組之第2位元及第3位 元之校驗和;該第4校對位元,其為第0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30個資料組之第0位元及第2位元的校驗和;該第12校對位元、該第13校對位元、該第14校對位元及該第15校對位元,係為所有資料組之所有位元的位元和。
  6. 如申請專利範圍第4項所述之應用128位元之雙碼錯誤檢測裝置,其中選擇第2校對位元、第3校對位元、第5校對位元、第6校對位元、第7校對位元、第8校對位元、第9校對位元、第10校對位元、第11校對位元為用於決定錯誤的位元是在哪兩個資料組。
  7. 如申請專利範圍第5項所述之應用128位元之雙碼錯誤檢測裝置,其中選擇第0校對位元、第1校對位元、第4校對位元為用於決定錯誤的兩個位元分別是在該兩個資料組中的哪個位置或是位在同一個資料組中的不同位置。
  8. 一種應用128位元之雙碼錯誤檢測方法,係使用於一應用128位元之雙碼錯誤檢測裝置,該雙碼錯誤檢測裝置包含:一基板;16個儲存記憶體配置在該基板上;各個儲存記憶體有4個輸出埠;兩個校對晶片位在該基板上且用於校對該16個儲存記憶體之數據傳送是否正確;各該校對晶片有4 個輸出埠;一數據匯流排,用於傳送數據;其中該數據匯流排包含64個接收埠連接該16個儲存記憶體;該數據匯流排的各個接收埠分別連接該儲存記憶體上的各個對應之輸出埠;該數據匯流排尚包含8個校準接收埠連接該兩個校對晶片;各該校對晶片的各個輸出埠與該數據匯流排的各個對應之校準接收埠連接;一運算器用於在該數據儲存入該儲存記憶體之前進行校驗和及位元和的計算,並將所計算的結果傳送到該兩個校對晶片;一運算比對器,將從該數據匯流排所接收的數據進行比對;該方法包含步驟為:在數據被儲存到該儲存記憶體之前,該運算器即對將存入的數據以128個位元為一單位,然後將這128位元的資料分割成32個資料組,其中各該資料組分配到4個位元;該32個資料組分別為第0個資料組、第1個資料組、第2個資料組…第31個資料組;其中各資料組包含4個位元,分別為第0位元、第1位元、第2位元、第3位元;然後將上述32個資料組中的128位元進行校驗和(checksum)及位元和(sum)的運算,可以得到一校對位元組,其包含16個校對位元,此16個校對位元分別配置在該兩個校對晶片;其中該16個校對位元分別為第0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15校對位元;其中該第0校對位元到第7校對位元為校驗和,該第8校對位元到第15校對位元為位元和; 然後透過該數據匯流排將該128個位元的數據儲存到該儲存記憶體,且將所運算的該校對位元組傳送到該兩個校對晶片,而完成數據儲存的作業;當欲將儲存於該儲存記憶體的數據讀取並向遠端傳送時,該數據匯流排從64個接收埠接收該儲存記憶體的資料並進行兩個時段的接收,每一時段可同時讀取64個位元的數據,所以兩個時段一共可以得到128個位元的資料;該數據匯流排將欲傳送的128個位元的資料及儲存在該兩個校對晶片的校對位元傳送至接收端;該接收端接收來自該數據匯流排的數據;該運算比對器將從該數據匯流排所接收的數據進行與上列校驗和及上列位元和同樣的運算;將運算的結果與從該兩個校對晶片中所傳送的校驗和及位元和進行比對;如果比對的結果不同,且已確定不為單一位元的錯誤時,則認定有雙位元的錯誤,根據校驗和及位元和的錯誤方式偵測錯誤的該雙位元並進行修正。
  9. 如申請專利範圍第8項所述之應用128位元之雙碼錯誤檢測方法,其中該16個校對位元,包含九個校對位元可以決定錯誤的位元是在哪兩個資料組。
  10. 如申請專利範圍第9項所述之應用128位元之雙碼錯 誤檢測方法,其中該16個校對位元,包含七個校對位元可以決定錯誤的兩個位元分別是在該兩個資料組中的哪個位置,或是位在同一個資料組中不同的位置。
  11. 如申請專利範圍第10項所述之應用128位元之雙碼錯誤檢測方法,其中決定錯誤的位元是在哪兩個資料組的九個校對位元包含:該第2校對位元,其為第1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31個資料組之其中所有位元的校驗和;該第3校對位元,其為第2、3、6、7、10、11、14、15、18、19、22、23、26、27、30、31個資料組之其中所有位元的校驗和;該第5校對位元,其為第4、5、6、7、12、13、14、15、20、21、22、23、28、29、30、31個資料組之其中所有位元的校驗和;該第6校對位元,其為第8、9、10、11、12、13、14、15、24、25、26、27、28、29、30、31個資料組之其中所有位元的校驗和;該第7校對位元,其為第16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31個資料組中所有位元 之校驗和;該第8校對位元,其為第0、4、8、12、16、20、24、28個資料組之所有位元的位元和;該第9校對位元,其為第1、5、9、13、17、21、25、29個資料組之所有位元的位元和;該第10校對位元,其為第2、6、10、14、18、22、26、30個資料組之所有位元的位元和;該第11校對位元,其為第3、7、11、15、19、23、27、31個資料組之所有位元的位元和。
  12. 如申請專利範圍第11項所述之應用128位元之雙碼錯誤檢測方法,其中決定錯誤的兩個位元分別是在該兩個資料組中的哪個位置或是位在同一個資料組中不同位置的七個校對位元包含:該第0校對位元,其為所有資料組之第1位元及第3位元之校驗和;該第1校對位元,其為所有資料組之第2位元及第3位元之校驗和;該第4校對位元,其為第0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30個資料組之第0位元及第2位元的校驗和; 該第12校對位元、該第13校對位元、該第14校對位元及該第15校對位元,係為所有資料組之所有位元的位元和。
  13. 如申請專利範圍第11項所述之應用128位元之雙碼錯誤檢測方法,其中選擇第2校對位元、第3校對位元、第5校對位元、第6校對位元、第7校對位元、第8校對位元、第9校對位元、第10校對位元、第11校對位元為用於決定錯誤的位元是在哪兩個資料組。
  14. 如申請專利範圍第12項所述之應用128位元之雙碼錯誤檢測方法,其中選擇第0校對位元、第1校對位元、第4校對位元為用於決定錯誤的兩個位元分別是在該兩個資料組中的哪個位置或是位在同一個資料組中的不同位置。
  15. 如申請專利範圍第8項所述之應用128位元之雙碼錯誤檢測方法,尚包含步驟為:在修正後,對於修正過後的128個位元的數據重新進行與上列校驗和及上列位元和同樣的運算,並將運算的結果與從該兩個校對晶片中所傳送的校驗和及位元和進行比對,如果相同則確定為雙位元的錯誤,如果不同則可能是更多碼的位元錯誤存在。
TW106106068A 2017-02-23 2017-02-23 應用128位元之雙碼錯誤檢測裝置及方法 TWI706415B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW106106068A TWI706415B (zh) 2017-02-23 2017-02-23 應用128位元之雙碼錯誤檢測裝置及方法
GB1800779.9A GB2560422B (en) 2017-02-23 2018-01-18 Two bit error calibration device for 128 bit transfer and the method for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106106068A TWI706415B (zh) 2017-02-23 2017-02-23 應用128位元之雙碼錯誤檢測裝置及方法

Publications (2)

Publication Number Publication Date
TW201832244A TW201832244A (zh) 2018-09-01
TWI706415B true TWI706415B (zh) 2020-10-01

Family

ID=61283714

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106106068A TWI706415B (zh) 2017-02-23 2017-02-23 應用128位元之雙碼錯誤檢測裝置及方法

Country Status (2)

Country Link
GB (1) GB2560422B (zh)
TW (1) TWI706415B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287478A (en) * 1991-08-06 1994-02-15 R-Byte, Inc. Digital data tape storage system utilizing plurality of read/write heads with system diagnostic capability
US20080313525A1 (en) * 2007-06-15 2008-12-18 Micron Technology. Inc. Error detection for multi-bit memory
US8205134B2 (en) * 2007-10-31 2012-06-19 Hewlett-Packard Development Company, L.P. Error detection method and apparatus
TWI524355B (zh) * 2009-12-22 2016-03-01 英特爾公司 用於8位元記憶體裝置之錯誤校正機制
TWM551333U (zh) * 2017-02-23 2017-11-01 Jin-Ben Zhang 應用128位元之雙碼錯誤檢測裝置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751769B2 (en) * 2000-06-06 2004-06-15 International Business Machines Corporation (146,130) error correction code utilizing address information
US7634709B2 (en) * 2001-10-05 2009-12-15 Unisys Corporation Familial correction with non-familial double bit error detection
US8677211B2 (en) * 2010-12-23 2014-03-18 International Business Machines Corporation Data bus inversion using spare error correction bits

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287478A (en) * 1991-08-06 1994-02-15 R-Byte, Inc. Digital data tape storage system utilizing plurality of read/write heads with system diagnostic capability
US20080313525A1 (en) * 2007-06-15 2008-12-18 Micron Technology. Inc. Error detection for multi-bit memory
US8205134B2 (en) * 2007-10-31 2012-06-19 Hewlett-Packard Development Company, L.P. Error detection method and apparatus
TWI524355B (zh) * 2009-12-22 2016-03-01 英特爾公司 用於8位元記憶體裝置之錯誤校正機制
TWM551333U (zh) * 2017-02-23 2017-11-01 Jin-Ben Zhang 應用128位元之雙碼錯誤檢測裝置

Also Published As

Publication number Publication date
GB2560422A (en) 2018-09-12
GB2560422B (en) 2021-09-15
GB201800779D0 (en) 2018-03-07
TW201832244A (zh) 2018-09-01

Similar Documents

Publication Publication Date Title
US8132086B2 (en) Semiconductor memory device for byte-based masking operation and method of generating parity data
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US20170052845A1 (en) Memory repair method and apparatus based on error code tracking
US20070268905A1 (en) Non-volatile memory error correction system and method
US7366971B2 (en) Semiconductor memory having sub-party cell array error correction
JP2008165808A (ja) 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
CN101882467B (zh) Ecc参数可配置的存储器控制装置
US10741212B2 (en) Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders
CN104393878A (zh) 用于纠正在编码比特序列中的至少单比特错误的设备和方法
KR20150090414A (ko) 에러 정정 동작을 수행하는 반도체 장치
TWI706415B (zh) 應用128位元之雙碼錯誤檢測裝置及方法
US11265022B2 (en) Memory system and operating method thereof
TWI698881B (zh) 編碼方法及使用所述編碼方法的記憶體儲存裝置
TWI731044B (zh) 應用256位元之雙碼錯誤檢測裝置及方法
TWM551333U (zh) 應用128位元之雙碼錯誤檢測裝置
US20150019932A1 (en) Storage device, crc generation device, and crc generation method
US10379926B2 (en) Method and device for monitoring data error status in a memory
US9417957B2 (en) Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device
JP6411282B2 (ja) 半導体メモリ及びデータ書込方法
US20190222353A1 (en) Two bit error calibration device for 128 bit transfer and the method for performing the same
US20020174397A1 (en) Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
US10516504B2 (en) Two bit error calibration device for 256 bit transfer and the method for performing the same
US8819331B2 (en) Memory system and memory controller
US11442810B2 (en) Memory and operation method of memory
TWI703572B (zh) 記憶體儲存裝置及其記憶體測試方法