JP2022063152A - 複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路 - Google Patents

複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路 Download PDF

Info

Publication number
JP2022063152A
JP2022063152A JP2020171553A JP2020171553A JP2022063152A JP 2022063152 A JP2022063152 A JP 2022063152A JP 2020171553 A JP2020171553 A JP 2020171553A JP 2020171553 A JP2020171553 A JP 2020171553A JP 2022063152 A JP2022063152 A JP 2022063152A
Authority
JP
Japan
Prior art keywords
row
column
bit
bits
check
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2020171553A
Other languages
English (en)
Inventor
アブダラ アブデラゼク ベン
Ben Abdallah Abderazek
ナム カイン ダン
Nam Khanh Dang
雅之 久田
Masayuki Hisada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Aizu
Original Assignee
University of Aizu
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 University of Aizu filed Critical University of Aizu
Priority to JP2020171553A priority Critical patent/JP2022063152A/ja
Publication of JP2022063152A publication Critical patent/JP2022063152A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】2D LINKsを伝搬するデータの複数誤りビットの検出率を向上する。【解決手段】二次元リンクに信号を出力する送信回路と、二次元リンクから信号を受信する受信回路を有する複数誤り検出回路において、送信回路は、MxNのデータに行パリティビットと列パリティビットを追加して符号語を二次元リンクに出力する。受信回路は、二次元リンクを伝播してきた符号語の各行のN+1個の行ビット群のパリティビットである行チェックビットと、各列のM+1個の列ビット群のパリティビットである列チェックビットとを生成し、行チェックビットの1の数が2以上か、または列チェックビットの1の数が2以上の場合複数誤り検出信号を生成する。そして、各列のM個の列ビット群は、第2行から第M行で行シフト量だけプラスまたはマイナスの行方向にシフトさせたビット群であり、または各行のN個の行ビット群は、第2列から第N列で列シフト量だけプラスまたはマイナスの列方向にシフトさせたビット群である。【選択図】図9

Description

特許法第30条第2項適用申請有り (1)令和2年3月23日に https://ieeexplore.ieee.org/document/9044845にて発表。
本発明は、複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路に関する。
リンクは、複数のデバイス間で信号を伝送する接続配線である。二次元配列された複数のIC(Integrated Circuit)チップは、複数のリンクを介して複数の信号を伝送する。また、三次元集積回路(3D IC)は、複数のICチップをZ軸方向に重ねた構造を有する。3D ICの複数のICチップは、各チップに形成された二次元配列のスルーシリコンビア(Through Silicon Via, TSV)を介して、複数の信号を伝送する。この場合、TSVはリンクの機能を有する。
3D ICにおいて、TSVの信頼性を上げることは重要である。TSVの欠陥は、TSVがオープン(切断)状態になること、TSVがシリコン基板に短絡すること、2以上のTSVが導電性材料により接続されることなどを含む。これらの欠陥を持つTSVでは、送信側チップからの信号、すなわちハイレベルとローレベルの電圧が、受信側チップに正しく伝達されない。
本発明者らは、3D ICのTSVのエラービット修正を可能にするパリティチェックに基づく二次元パリティ・プロダクト・コード(Two Dimensional Parity Product Code: 2D PPC)を提案した。2D PPCは、非特許文献1に開示される。
K. N. Dang, M. Meyer, A. B. Ahmed, A. B. Abdallah, and X.-T. Tran, "2DPPC: A single-correction multiple-detection method for Through-Silicon-Via Faults," in 2019 IEEE Asia Pacific Conference on Circuits and Systems (APCCAS 2019), 2019. "Hardened Design Based on Advanced Orthogonal Latin Code against Two Adjacent Multiple Bit Upsets (MBUs) in Memories", 2015 IEEE, Liyi Xiao, Jiaqiang Li, Jie Li and Jing Guo Microelectronics Center, Harbin Institute of Technology, Harbin, HLJ 150001, China "A Method to Extend Orthogonal Latin Square Codes", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 22, NO. 7, JULY 2014, Pedro Reviriego, Salvatore Pontarelli, Alfonso Sanchez-Macian,and Juan Antonio Maestro
2D PPCは、二次元配列された複数のTSVの中から1つの欠陥TSVが検出された場合、その1つの欠陥TSVの信号の誤りを訂正できる。一方、2または2より多いマルチプル欠陥TSV(複数の欠陥TSV)が検出された場合、それらの信号の誤りを訂正できない。この場合、受信側チップの誤り訂正回路が出力する誤り訂正された信号は信頼性がない。
しかしながら、2D PPCでは、マルチプル欠陥を正しく検出できない場合がある。例えば、偶数の欠陥が二次元のTSVの同じ列(column)上にまたは同じ行(row)上に存在する場合、2D PPCのパリティビットでは欠陥を検出できない。
そこで、本実施の形態の第1の側面の目的は、二次元配列された複数のリンクに発生する複数の欠陥の検出率が高い複数欠陥検出回路及び複数欠陥検出回路を有する誤り訂正回路提供することにある。
本実施の形態の第1の側面は、行列状に配列された複数のリンクそれぞれに1ビットの信号を出力する送信回路と、
前記複数のリンクを伝播してきた信号を受信する受信回路とを有し、
前記送信回路は、
M行N列のデータに含まれる各行のN個の行ビット群の行パリティビットと、各列のM個の列ビット群の列パリティビットを生成し、
前記M行N列のデータに前記行パリティビットと前記列パリティビットを加えたM+1行N+1列の符号語を前記複数のリンクに出力し、
前記受信回路は、
前記複数のリンクを伝播してきた前記符号語の各行のN+1個の行ビット群のパリティビットである行チェックビットと、各列のM+1個の列ビット群のパリティビットである列チェックビットとを生成し、
前記行チェックビットの1の数が2または2より大きい数であるか、または前記列チェックビットの1の数が2または2より大きい数である場合に、複数誤り検出信号を生成し、
前記各列のM個の列ビット群は、第2行から第M行で行シフト量だけプラスまたはマイナスの行方向にシフトさせたビット群であり、または
前記各行のN個の行ビット群は、第2列から第N列で列シフト量だけプラスまたはマイナスの列方向にシフトさせたビット群である、複数誤り検出回路である。
第1の側面によれば、複数誤りの検出率を高くできる。
3D ICの一例の断面図と平面図を示す図である。 送信側デバイスと受信側デバイスとそれらの間に設けられるリンクとを示す概略的な回路図である。 送信回路Txのエンコーダの動作を示す図である。 受信回路Rxのデコーダの動作を示す図である。 チェックビットに基づく誤りビットの検出を説明する図である。 エンコーダとデコーダの構成を示す図である。 PPCの課題を示す図である。 拡張PPCにおける符号語CDWD_2の例を示す図である。 第1の実施の形態における送信側デバイスと受信側デバイスの概略的な構成例を示す図である。 図9の構成の詳細な回路構成例を示す図である。 送信回路での行シフト及び列シフトの動作を示す図である。 送信回路での行シフト及び列シフトの動作を示す図である。 受信回路での行シフト及び列シフトの動作を示す図である。 受信回路での行シフト及び列シフトの動作を示す図である。 拡張PPCを適用しても複数の誤りビットを検出できない例を示す図である。 拡張PPCにおけるパリティリンク上の隣接ビット間の最小ユークリッド距離を最大にする行シフト量の算出方法を示す図である。 ある欠陥TSVパターンについて、行シフト量s=±1、列シフト量s=±1の拡張PPCで生成した符号語CDWD_2のチェックビットsr,scの例を示す図である。 図17と同じ欠陥TSVパターンについて、行シフト量s=N1/2または列シフト量s=M1/2の拡張PPCで生成した符号語CDWD_2のチェックビットsr,scの例を示す図である。
図1は、3D ICの一例の断面図と平面図を示す図である。図1(A)は3D ICを縦方向に切断した場合の断面図であり、図1(B)はチップCHP3を水平方向に切断した場合の平面図である。断面図に示すとおり、3D ICは、例えば、制御回路が形成されたチップCHP0の上に被制御回路が形成された4つのチップCHP1~CHP4が積み重ねられる。チップCHP0は、図示しないパッケージ基板上に搭載される。チップCHP0の上面に制御回路が形成される。4つのチップCHP1~CHP4は、被制御回路が形成された面をフェイスダウンで、チップCHP0上に積み重ねられる。3つのチップCHP1~CHP3には、チップ間の信号を伝播する複数のTSVが行列状に形成される。そして、チップCHP0とチップCHP1~CHP4は、半田バンプBMPを介して積層される。半田バンプBMPは、垂直方向のTSV間を電気的に接続すると共に、5つのチップCHP0~CHP4を積層する。
図1(B)の平面図は、チップCPH3に形成された5行5列の行列状の複数のTSVを示す。5行5列のTSVは、25ビットの信号を並列に伝播する。
例えば、4つのチップCHP1~CHP4は、DRAMチップである。チップCHP0は、TSVを介して4つのDRAMチップに制御信号や書き込みデータを送信し、4つのDRAMチップは、TSVを介してチップCHP0に読み出しデータを送信する。TSVとTSV間を接続するバンプBMPは、チップ間のデータ信号を伝播するリンクである。
[PPCの概略]
プロダクト・コード(Product Code or PC)は、誤り訂正コード(Error Correction Code ECC)において通常の技術的用語である。PCでは、二次元の入力データの各行と各列にそれぞれのECCを付加したコードである。プロダクト・コード(PC)は、例えば、米国特許8856616において二次元エンコーディングと称される。本明細書では、プロダクト・コードにおいてECCとしてパリティビットを使用するコードを、パリティ・プロダクト・コード(Parity Product Coding PPC)と称する。以下、PPCの概略について説明する。
図2は、送信側デバイスと受信側デバイスとそれらの間に設けられるリンクとを示す概略的な回路図である。送信側デバイスDEVICE_1は、送信回路Txを有する。送信回路Txは、送信側デバイスが出力するデータDATA_1を符号語CDWD_1に変換し、リンクLINKに出力する。受信側デバイスDEVICE_2は、受信回路Rxを有する。受信回路Rxは、リンクLINKを伝搬してきた符号語CDWD_2から誤り訂正されたデータDATA_2を生成する。誤り訂正されたデータDATA_2は受信側デバイスに入力される。リンクLINKは、図1に示した二次元の複数のTSVである。
送信回路Txは、データDATA_1にパリティビットを付加して符号語CDWD_1を生成するECC(Error Correction Code)エンコーダである。また、受信回路Rxは、ECCデコーダである。ECCデコーダは、リンクLINKを伝播してきた符号語CDWD_2のパリティビットを生成し、符号語CDWD_2のエラーを検出し、1ビットエラーを訂正して受信データDATA_2を出力する。エンコーダとデコーダが、欠陥TSVにより発生した受信データのエラーを訂正する。
パリティビットを使用するエラー訂正は、1ビットのエラーを訂正できるが、2ビット及び2ビットより多いエラー(マルチプルエラー)を訂正できない。そこで、受信回路のデコーダは、受信した符号語CDWD_2にマルチプルエラーが発生したか否かをチェックし、マルチプルエラーが発生した場合マルチプルエラー検出信号NACKを出力する。マルチプルエラー検出信号NACKに基づいて、受信側デバイスDEVICE_2は、デコーダが出力したデータDATA_2は信頼性があるか否かを判断する。
本明細書では、欠陥TSVにより発生するエラービットまたは誤りビットを、しばしば欠陥ビットと称する。エラービット、誤りビット、欠陥ビットは同じ意味である。
図3は、送信回路Txのエンコーダの動作を示す図である。送信側デバイスDEVICE_1は、4行4列(16ビット)のデータDATA_1を受信側デバイスDEVICE_2に送信する。16ビットのデータの値(0または1)は、送信側デバイスの動作に基づいて決定され、または受信側デバイスの受信回路の動作に基づいて決定される。4行4列は一例であり、一般化するとデータDATA_1はM行N列のデータである。
エンコーダENCODERは、各行のビット群にそのビット群のパリティビットPRTY_rowを加えて符号語を生成する。更に、エンコーダは、各列のビット群にそのビット群のパリティビットPRTY_colを加えて符号語を生成する。符号語は、1の数が偶数となるビット群である。パリティビットPRTY_rowは行パリティビットri、パリティビットPRTY_colは列パリティビットcjとそれぞれ称する。また、全パリティビットPRTY_allは、4行4列の全ビットのパリティビットであり、または、行パリティビットPRTY_rowと列パリティビットPRTY_colのパリティビットである。
エンコーダは、上記のM行N列のデータDATA_1からM+1行N+1列の符号語CDWD_1を、以下の数式により算出する。
Figure 2022063152000002
ここで、Fkは符号語CDWD_1であり、bi,jはデータDATA_1の要素ビットであり、riは行パリティビットPRTY_rowであり、cjは列パリティビットPRTY_colであり、uは全パリティビットPRTY_allである。各パリティビットは、それぞれのビット群の排他的論理和である。
5行5列の符号語CDWD_1は、図1に示した5行5列のTSVに並列に入力される。5行5列のTSVは、4行4列のデータDATA_1を伝播する16個のTSVと、パリティビットPRTY_row, PRTY_col, PRTY_allを伝播する9個のTSVとを有する。
図4は、受信回路Rxのデコーダの動作を示す図である。受信回路Rxであるデコーダは、TSVを伝播してきた符号語CDWD_2を入力し、各行のビット群のチェックビットsri(i=0~M-1)、srMと、各列のビット群のチェックビットscj(j=0~N-1)、scNを以下の数式により算出する。
Figure 2022063152000003
上記各行のビット群のチェックビットsri、srMと、各列のビット群のチェックビットscj、scNは、それぞれのビット群に誤りがなければ0になり、それぞれのビット群に1つの誤りがあれば1になる。但し、それぞれのビット群に偶数の誤りがある場合も0になり、それぞれのビット群に3以上の奇数個の誤りがある場合も1になる。したがって、上記パリティビットは、誤りビットまたは反転ビット(flipped bit)を検出するチェックビットである。誤りビットは、TSVが不良(fault)または故障(defect)の場合に発生した反転ビット(flipped bit)である。
図5は、チェックビットに基づく誤りビットの検出を説明する図である。図5(A)は、受信した符号語CDWD_2に1つのみの誤りビットEB(不良TSVまたは故障TSV)または反転ビットが含まれている例である。この例では、誤りビットEBは符号語CDWD_2の(2,2)の位置に発生している。この場合、前述の数式(4)(5)によりチェックビットはsr2=1、sc2=1となり、(2,2)の位置に誤りビットまたは故障TSVがあることが検出される。
すなわち、デコーダは、以下の数式(8)により反転ビットfi,jを検出できる。数式(8)によれば、反転ビットfi,jは、チェックビットがsrj=1、sci=1の場合fi,j =1になり、それ以外の場合fi,j =0になる。そして、この反転ビットfi,jをマスクビットmi,jとするマスク行列Mask(数式(9))に基づいて、デコーダは、誤りビットを有する受信符号語F^kを誤り訂正された符号語Fkに変換できる。数式(10)がこの変換式である。
Figure 2022063152000004
図5(B)は、受信した符号語CDWD_2に2個の誤りビットまたは反転ビットが含まれている例である。この例では、誤りビットEBは符号語CDWD_2の(0,1)と(2,2)の位置に発生している。この場合、前述の数式(4)(5)によりチェックビットはsr1=1、sc0=1、sr2=1、sc2=1となり、デコーダは、誤りビットまたは反転ビットが2または2より多く発生していることを検出する。その結果、デコーダは、受信した符号語CDWD_2の誤りビットまたは反転ビットを特定できず、誤り訂正できない。なぜなら、誤りビットEBが符号語CDWD_2の(1,2)と(2,0)の位置に発生している可能性があるからである。
このように、パリティ・プロダクト・コードPPCによる符号語の誤り訂正では、デコーダは、行及び列チェックビットがそれぞれ1つ「1」となり、1つの誤りビットまたは反転ビットを検出した場合のみ、誤りビットの訂正を行うことができる。一方、行または列チェックビットが複数「1」となり、2または2より多い誤りビットまたは反転ビット(マルチプル誤りビット、複数誤りビット、複数欠陥ビット)を検出した場合、デコーダは、誤り訂正された符号語は信頼性がないと判断しなければならない。
したがって、デコーダは、複数誤りビットを検出する複数誤り検出回路と誤り訂正回路を有する。誤り訂正回路の数式は数式(10)で説明した。複数誤り検出回路の数式は、以下の数式(11)のとおりである。
Figure 2022063152000005
この数式(11)に基づいて、行チェックビットsci=1の合計が2以上または列チェックビットsrj=1の合計が2以上の場合、複数誤り検出回路は、複数誤り検出信号NACKをNACK=1とする。
図6は、エンコーダとデコーダの構成を示す図である。エンコーダENCODERは、入力Dinとして、M行N列のデータDATA_1を入力する。エンコーダは、データDATA_1の各行のビット群(Nビット)の行パリティビット(Mビット)を生成する行エンコーダ(Row Encoders)10と、各列のビット群(Mビット)の列パリティビット(Nビット)を生成する列エンコーダ(Col. Encoders)11と、行パリティビットと列パリティビットから1ビットの最終パリティビット(Ultimate Check Bit)を生成する最終エンコーダ(Ulti. Encoder)12を有する。エンコーダは、データDATA_1に行パリティビットと列パリティビットと最終パリティビットを加えて、M+1行N+1列の符号語CDWD_1を出力する。符号語CDWD_1がエンコーダの出力Doutとなる。
一方、デコーダDECODERは、入力Dinとして、受信したM+1行N+1列の符号語CDWD_2を入力する。デコーダは、受信符号語CDWD_2の各行のビット群(N+1ビット)の行チェックビット(M+1ビット)srを生成する行デコーダ(Row Decoders)20と、各列のビット群(M+1ビット)の列チェックビット(N+1ビット)scを生成する列デコーダ(Col. Decoders)21を有する。そして、誤り訂正回路26は、行チェックビットsrと列チェックビットscに基づいて生成されたマスクMask(式(9))に基づき、受信符号語CDWD_2の誤りビットを訂正する。出力Doutは、誤り訂正回路26により誤り訂正された受信データDATA_2である。
さらに、デコーダは、複数誤り検出回路25を有する。複数誤り検出回路25は、行チェックビットsrの1をカウントし、カウント値が2以上か否か判定する行複数誤り検出回路22と、列チェックビットscの1をカウントし、カウント値が2以上か否か判定する列複数誤り検出回路23とを有する。そして、複数誤り検出回路25は、両複数誤り検出回路22,23の出力の論理和を計算する論理和ゲート24を有する。複数誤り検出回路25は、複数誤りを検出すると複数誤り検出信号NACKを1にする。
この複数誤り検出信号NACKは、図2に示すとおり、受信側のデバイスDEVICE_2に出力される。受信側のデバイスDEVICE_2は、複数誤り検出信号NACKが1の場合、入力された誤り訂正された受信データDATA_2は信頼できないと判断して、その受信データを破棄する。複数誤り検出信号NACKが0の場合、誤り訂正された受信データDATA_2は信頼できると判断する。複数誤り信号NACKは、デコーダ内の誤り訂正回路26に供給されてもよい。その場合、誤り訂正回路26は、複数誤り検出信号NACKが0の場合、誤り訂正された受信データDATA_2を出力せず、NACKが1の場合、DATA_2を出力する。
[PPCの課題]
図7は、PPCの課題を示す図である。図7は、複数の誤りビットを有する受信符号語CDWD_2の4つの例を示す。図中に示されるとおり、白い丸は正常TSV、バツ印の丸は欠陥TSV、正方形は誤って欠陥TSVと判定される欠陥TSVである。また、破線はチェックビットsr、scが生成されるビット群を示し、本明細書ではこのビット群をつなぐ線をパリティリンクPLと称する。欠陥TSVを伝播するデータは誤りビットまたは反転ビットになる。そして、図7での受信符号語CDWD_2は、図3、4とは異なり、6行6列である。この場合、データDATA_1、DATA_2は、5行5列のビットであり、行のインデックスはi=0~M-1であるのでM=5、M+1=6となり、列のインデックスは0~N-1であるのでN=5、N+1=6となる。
図7(a)は、3つの欠陥TSVが異なる行及び異なる列に位置する。そのため、欠陥TSVが属する行と列のチェックビットがsr0=1, sr1=1, sr2=1, sc1=1, sc3=1, sc4=1となる。この場合、デコーダの複数誤り検出回路は、式(11)に基づいて、複数誤りを検出することができ、NACK=1を出力する。
図7(b)は、3つの欠陥TSVのうち2組の2つの欠陥TSVが同じ行と同じ列に位置する。そのため、欠陥TSVが属する行と列のチェックビットがsr1=0, sr4=1, sc1=0, sc3=1となる。この場合、デコーダの複数誤り検出回路は、式(11)に基づき、複数誤りを検出することができず、NACK=0を出力する。そして、誤り訂正回路は、誤って欠陥TSVと検出された(4,3)の反転ビットを修正する。つまり、デコーダは、複数誤りビット(欠陥TSV)を検出することができない。
図7(c)は、4つの欠陥TSVのうち2対の欠陥TSVがそれぞれ同じ行と同じ列に位置する。そのため、欠陥TSVが属する行と列のチェックビットがsr1=0, sr4=0, sc1=0, sc3=0となる。この場合、デコーダの複数誤り検出回路は、式(11)に基づき、複数誤りを検出することができず、NACK=0を出力する。そして、誤り訂正回路は、欠陥TSVの反転ビットを修正しない。つまり、デコーダは、複数誤りビット(欠陥TSV)を検出することができない。
図7(d)は、5つの欠陥TSVのうち2対の欠陥TSVがそれぞれ同じ行と同じ列に位置し、1つの欠陥TSVが異なる行及び列に位置する。そのため、欠陥TSVが属する行と列のチェックビットがsr1=0, sr2=0, sr3=1, sc1=1, sc2=0, sc3=0となる。この場合、デコーダの複数誤り検出回路は、式(11)に基づき、複数誤りを検出することができず、NACK=0を出力する。そして、誤り訂正回路は、(3,2)の欠陥TSVの反転ビットだけを修正する。つまり、デコーダは、複数誤りビット(欠陥TSV)を検出することができない。
上記の通り、欠陥TSVが同じ行または同じ列に偶数個存在すると、チェックビットがsr=0,sc=0となり、複数誤りを検出できない場合がある。したがって、受信した符号語CDWD_2の複数の欠陥の検出率が高い複数欠陥検出回路が必要である。以下に示す実施の形態によれば、複数の誤りビットの検出率が高くなる。
[第1の実施の形態:拡張PPC、EPPC、Extended Parity Product Coding]
第1の実施の形態の拡張PPCでは、符号語CDWD_1を生成するエンコーダが、送信データDATA_1に付加するパリティビットcj, riを次のように算出する。
(1)行シフト(Row-shift)
エンコーダは、j列のパリティビットcjを、行のインデックスi=0, 1, 2~M-1に対応して、列のインデックスが行方向にsずつシフトする列のビット群から算出する。つまり、j列のパリティビットcjを算出する列のビット群は、PPCの場合のTSV(i,j)をTSV(i, (j+s*i)mod N)にスイッチしたビット群になる。NはデータData_1の列の数、N+1はTSVまたは符号語CDWDの列の数で、最後のインデックスはパリティビットである。i=0~M、j=0~N。j列のパリティビットcjを算出する列のビット群は、前述の通りパリティリンクのビット群である。
例えば、M=N=5、s=2の場合、拡張PPCでのj=0列でのパリティチェックのための新たな列またはパリティリンクは、ビットインデックスが(0,0)(1,2)(2,4)(3,1)(4,3)(5,0)となる。但し、最後のインデックス(5,0)はパリティビットc0である。行シフトでは、パリティリンクのビット群において、行インデックスが増大することに対応して、列インデックスが行方向にsずつシフトする。sは+と-のいずれでも良い。
(2)列シフト(Column-shift)
エンコーダが、i行のパリティビットriを、列のインデックスj=0, 1, 2~N-1に対応して、行のインデックスが列方向にsずつシフトする列のビット群から算出する。つまり、i行のパリティビットriを算出する行のビット群は、PPCの場合のTSV(i,j)をTSV((i+s*j)mod M,j)にスイッチしたビット群になる。MはデータData_1の行の数、M+1は符号語CDWDの行の数で、最後のインデックスはパリティビットである。i=0~M、j=0~N。i行のパリティビットriを算出する列のビット群は、パリティリンクのビット群と称する。
例えば、M=N=5、s=2の場合、拡張PPCでのi=1行でのパリティチェックのための新たな列またはパリティリンクは、ビットインデックスが(1,0)(3,1)(0,2)(2,3)(4,4)(1,5)となり、但し最後のインデックス(1,5)はパリティビットr1である。列シフトでは、パリティリンクのビット群において、列インデックスが増大することに対応して、行インデックスが列方向にsずつシフトする。sは+と-のいずれでも良い。
図8は、拡張PPCにおける符号語CDWD_2の例を示す図である。図8の欠陥TSVの例は、図7(b)と同じである。前述したとおり、エンコーダが生成する符号語CDWD_1は、5行5列(インデックス(0,0)~(4,4))のデータDATA_1に、行及び列のパリティビットri、cjに最終パリティビットuを加えた6行6列(インデックス(0,0)~(5,5))のコードである。
図8(a)(b)は、それぞれ行シフトs=+1,s=-1の例である。列シフトはない(s=0)。行シフトされたパリティリンクが破線で示される。前述したとおり、パリティリンクとは、エンコーダがチェックビットを計算するビット群をつないだリンクを意味する。パリティリンクのビット群は、データ領域DATA area内で行シフトまたは列シフトする。図8では、3つの欠陥TSVを通過するパリティリンクの破線のみが示され、パリティリンクそれぞれのチェックビットのみが示される。
(a)行シフトs=+1では、チェックビットはsr1=0, sr4=1, sc0=1, sc2=1, sc3=1であり、(b)行シフトs=-1では、チェックビットはsr1=0, sr4=1, sc0=1, sc2=1, sc4=1である。この場合、(b)行シフトs=-1では、3つの列のチェックビットsc0、sc2、sc4のパリティリンクには、それぞれ1つの欠陥TSVしか含まれない。その結果、3つの列のチェックビットsc0、sc2、sc4は全て1となる。2つの行のチェックビットsr1、sr4では、チェックビットsr1のパリティリンクにおいて2個の欠陥TSVが含まれる。よって、デコーダの複数誤り検出回路25は、式(11)に基づき、複数の欠陥ビットが存在することを検出し、複数誤り検出信号NACK=1を出力する。(a)行シフトs=+1では、列のチェックビットsc0と行のチェックビットsr4が1となり残りは全て0となり、複数誤り検出回路25は複数の欠陥ビットを検出できない。
図8(c)(d)は、列シフトs=+1,s=-1の例である。行シフトはない(s=0)。列シフトされたパリティリンクが破線で示される。パリティリンクそれぞれのチェックビットが示される。(c)列シフトs=+1では、チェックビットはsr0=1, sr3=0, sr4=0, sc1=0, sc3=1であり、(d)列シフトs=-1では、チェックビットはsr0=1, sr2=1, sr3=1, sc1=0, sc3=1になっている。(c)の場合、行及び列のチェックビットはそれぞれ1つのみ1となり、複数誤り検出回路は複数の欠陥ビットの存在を検出せず、複数誤り検出信号NACK=0を出力する。一方、(d)の場合、3つの行のチェックビットが1となり、複数誤り検出回路は複数の欠陥ビットの存在を検出し、NACK=1を出力する。
以上の通り、第1の実施の形態は、データDATA_1のパリティビットri, cjを算出するパリティリンク、符号語CDWD_2のチェックビットsri, scjを算出するパリティリンクに、拡張PPCの行シフトまたは列シフトを適用する。拡張PPCにおけるデコーダの複数誤り検出回路は、図7(b)の3つの欠陥TSVを有する受信した符号語CDWD_2において、図8(b)(d)の場合に複数誤りビットを検出できる。
図9は、第1の実施の形態における送信側デバイスと受信側デバイスの概略的な構成例を示す図である。送信側デバイスDEVICE_1は、シフト回路31と送信回路Txを有し、データDATA_1を符号語CDWD_1に変換してリンクLINKに出力する。受信側デバイスDEVICE_2は、シフト回路32と受信回路Rxを有し、リンクLINKを伝搬してきた符号語CDWD_2を変換した誤り訂正したデータDATA_2を受信する。
送信側のシフト回路31は、制御回路30からの制御信号CNTR_1に基づいて、データDATA_1を行シフト及び・または列シフトを行い、エンコーダENDOCERに入力する。エンコーダは、データDATA_1にパリティビットを加えた符号語CDWD_1を、リンクLINKs(またはTSVs)に並列に出力する。また、受信側のシフト回路32は、制御回路30からの制御信号CNTR_2に基づいて、符号語CDWD_2を行シフト及び・または列シフトを行い、デコーダDECODERに入力する。デコーダは、行シフト及び・または列シフトされたパリティリンクのビット群からチェックビットを生成し、複数誤りビットの検出を行い、誤りビットの誤り訂正を行う。
図10は、図9の構成の詳細な回路構成例を示す図である。図10は、送信回路Txと受信回路Rxを示す。送信回路Txは、図9のシフト回路31と、エンコーダ内のパリティビットを生成する回路10~12と、パリティビットと元のデータDATA_1を結合する回路13を有する。一方、受信回路Rxは、図9のシフト回路32と、デコーダ内のチェックビットを生成する回路20,21及び複数誤り検出回路25と、マスクMaskにより符号語CDWD_2のデータの誤り訂正する誤り訂正回路26を有する。
図10におけるシフト回路31は、データDATA_1を選択するか、データDATA_1を内部配線により行シフト及び/または列シフトした位置に変更したものを選択するかのマルチプレクサである。また、シフト回路32は、受信した符号語CDWD_2を選択するか、受信した符号語CDWD_2を内部配線により行シフト及び/または列シフトした位置に変更したものを選択するかのマルチプレクサである。
図11、図12は、送信回路での行シフト及び列シフトの動作を示す図である。ここでは、簡単化した3行3列のデータDATA_1を例にして説明する。図の左側に行または列シフトを使用しないPPC(オリジナルのPPC)を適用した動作を、右側に行または列シフトを使用したPPC(拡張PPC、EPPC)を適用した動作を、それぞれ示す。
行または列シフトを使用しないオリジナルPPCを適用した場合、送信回路Txは、次の動作を行う。
(A)シフト回路31であるマルチプレクサMUXが3行3列のデータDATA_1を選択し、エンコーダ10~12に入力する。
(B)エンコーダのパリティビット生成回路10~12が、入力されたデータDATA_1の各列のビット群と各行のビット群それぞれのパリティビットを生成し、更に最後パリティビットを生成する。
(C)送信回路Txの結合回路13が、データDATA_1にパリティビットを追加し、TSVsであるリンクLINKsに並列に送出する。
一方、行シフトの拡張PPCを適用した場合、送信回路Txは、次の動作を行う。
(A)シフト回路31であるマルチプレクサMUXが、3行3列のデータDATA_1を行シフトしたデータDATA_1_row.shiftを選択し、エンコーダ10~12に入力する。行シフトされたデータDATA_1_row.shiftは、インデックス(1,0)(2,0)に、データDATA_1のインデックス(1,1)(2,2)のビットを有する。同様に、データDATA_1_row.shiftは、インデックス(1,1)(2,1)に、データDATA_1のインデックス(1,2)(2,0)のビットを有し、インデックス(1,2)(2,2)に、データDATA_1のインデックス(1,0)(2,1)のビットを有する。
(B)エンコーダのパリティビット生成回路10~12が、入力されたデータDATA_1_row.shiftの各列のビット群、各行のビット群それぞれのパリティビットを生成し、更に最後パリティビットを生成する。生成された列のパリティビットc0は、行シフトされたビット群b0,0, b1,1, b2,2のパリティビットである。列のパリティビットc1,c2も、同様の行シフトされたビット群のパリティビットである。
(C)送信回路Txの結合回路13が、データDATA_1にパリティビットを追加し、符号語CDWD_2_row.shiftをTSVsに並列に送出する。つまり、リンクLINKsには、行シフトしていないデータDATA_1と、行シフトされたビット群から算出されたパリティビットが入力される。
図13、図14は、受信回路での行シフト及び列シフトの動作を示す図である。行または列シフトを使用しないオリジナルPPCを適用した場合、受信回路Rxは、次の動作を行う。
(D)受信回路Rxは、TSVsから受信した符号語CDWD_2を入力する。
(E)符号語CDWD_2がマルチプレクサMUXを介してデコーダに入力される。
(F)デコーダ内のチェックビット生成回路20,21が、符号語CDWD_2の列のビット群と行のビット群からチェックビットsc,srを生成する。さらに、複数誤り検出回路25が複数誤り検出信号NACKを出力する。
(G)そして、式(8)に基づいてチェックビットsc,srからマスクMaskが生成される。誤り訂正回路26がマスクMaskに基づいて、受信した符号語CDWD_2の誤りビットを訂正し、誤り訂正されたデータDATA_2を出力する。
行シフトの拡張PPCを適用した場合、受信回路Rxは、次の動作を行う。
(D)受信回路Rxは、TSVsから受信した符号語CDWD_2を入力する。
(E)マルチプレクサMUXが、行シフトした符号語CDWD_2_row.shiftを選択する。行シフトした符号語CDWD_2_row.shiftは、データDATAが行シフトされ、行及び列のパリティビットr,cの位置はTSVsから受信した符号語CDWD_2と同じである。
(F)デコーダ内のチェックビット生成回路20,21が、符号語CDWD_2_row.shiftの列のビット群と行のビット群からチェックビットsc,srを生成する。さらに、複数誤り検出回路25が複数誤り検出信号NACKを出力する。
(G)そして、式(8)に基づいてチェックビットsc,srからマスクMaskが生成される。行シフト符号語CDWD_2_row.shiftから生成されるマスクMaskのインデックスは、PPCのマスクと同じである。そして、誤り訂正回路26がマスクMaskに基づいて、受信した符号語CDWD_2の誤りビットを訂正し、誤り訂正されたデータDATA_2を出力する。
図8に示したとおり、上記の拡張PPCによれば、二次元(2D)のLINKsにおいて複数の誤りビットを検出する確率が高くなる。
[第2の実施の形態:距離を考慮した拡張PPC、Distance Aware Extended Parity Product Check]
図15は、拡張PPCを適用しても複数の誤りビットを検出できない例を示す図である。図15には、受信した符号語CDWD_2のインデックス(1,1)(1,2)(2,2)に誤りビット(欠陥TSV)が存在する例が示される。
図15(a)は、オリジナルのPPCを適用した場合のチェックビットsr,scを示す。この場合、sr1=0, sr2=1, sc1=1, sc2=0であり、デコーダは、式(11)に基づき、行チェックビットsrに1つのsr=1を、列チェックビットscに1つのsc=1をそれぞれ検出する。つまり、デコーダは複数誤りビットを検出できない。図15(b)(c)は、それぞれ行シフト(s=+1)、列シフト(s=+1)の拡張PPCの例である。これらの場合も、デコーダは、式(11)に基づき、行チェックビットsrに1つのsr=1を、列チェックビットscに1つのsc=1をそれぞれ検出する。つまり、デコーダは複数誤りビットを検出できない。
一方、図15(d)は、行シフト(s=-1)の拡張PPCの例である。デコーダは、式(11)に基づき、行チェックビットsrに3つのsr=1を検出する。よって、デコーダは、複数誤りビットを検出できる。
上記のように、オリジナルのPPCと比較すると、拡張PPCは、2DのLINKsにおいて複数誤りビットを検出する確率が高くなるが、図15(b)(c)のように複数誤りビットを検出できないケースもある。
第2の実施の形態のデコーダは、距離を考慮した拡張PPCを使用して複数誤りビットの検出率をより高くする。距離を考慮した拡張PPCは、2DのTSVsが欠陥TSVのクラスタ(複数欠陥TSVsの塊)を有することに基づいて、拡張PPCの列シフト量または行シフト量を2DのTSVsの行列の大きさに基づいて最適値に設定する。具体的には、拡張PPCに、パリティチェックを算出するパリティリンクのビット群のビット間ユークリッド距離を最大にする列シフト量または行シフト量を設定する。言い換えると、拡張PPCに、パリティリンク上のビット群のビット間の最小ユークリッド距離を最大にする列シフト量または行シフト量を設定する。
図16は、拡張PPCにおけるパリティリンク上の隣接ビット間の最小ユークリッド距離を最大にする行シフト量の算出方法を示す図である。図16には、N列の2DのTSVsが示される。インデックス(0,0)から行方向に進むパリティリンクと、インデックス(1,0)から行方向に進むパリティリンクとがそれぞれ矢印付き破線で示される。行シフト量はsとする。パリティリンク上のビット群は、例えば、インデックス(0,0)から、(1,s)、(2,2s)、(i, (j + s*i) mod N)と移動する。そして、一旦、列インデックス(j+s*i)が右端のN-1を超えると、列インデックスは (j + s*i) mod Nで算出される余りの位置に巡回して戻る。図18(g)の行シフトs=2, N=6の例では、パリティリンク上のビット群は、例えば、(0,0), (1,2), (2,4), (3,0), (4,2), (5,4)となる。
隣接するb(0,0)とb(1,s)間の距離D1は、以下の式に示される。そして、最初に巡回して戻ったときのインデックスは、図16に示されるとおり、b(ceil(N/s),(N mod s))になる。隣接するb(0,0)とb(ceil(N/s),(N mod s))間の距離D2は、以下の式に示される。そして、ceil(N/s),(N mod s)が取り得る最小値ceil(N/s) ≒ N/s、(N mod s) ≒ 0に近似すると、距離D2はN/sとなる。そこで、D1 = D2とすると、最小ユークリッド距離を最大にする最適な行シフト量sは、以下の通り±N1/2になる。
Figure 2022063152000006
同様に、2DのTSVsがM行N列とすると、最適な列シフト量sは±M1/2になる。
ここで、D1 = D2とするのは、以下の理由に基づく。行シフト量sを大きくすると、距離D1は長くなるが、距離D2 = N/sは短くなる。逆に、行シフト量sを小さくすると、距離D1は短くなるが、距離D2 = N/sは長くなる。従って、複数の隣接ビット間ユークリッド距離の最小値を最大にするためのシフト量sは、D1 = D2を満たすときのsとなる。
図17は、ある欠陥TSVパターンについて、行シフト量s=±1、列シフト量s=±1の拡張PPCで生成した符号語CDWD_2のチェックビットsr,scの例を示す図である。図17の欠陥TSVパターンは、図7(d)の欠陥TSVパターンと同じである。
図17(a)は、オリジナルPPCで算出した受信符号語CDWD_2の行チェックビットsrと列チェックビットscを示す。オリジナルPPCでは、行シフト量sと列シフト量sが0である。図示されるとおり、行チェックビットsrと列チェックビットscを算出するビット群を示すパリティリンク(破線)上に、欠陥TSVが存在する。すなわち、図中、欠陥TSVが存在するパリティリンクの行チェックビットsrと列チェックビットscが示される。この例では、3つの行チェックビットsr1, sr2, sr3のうち1つsr3のみが1となり、3つの列チェックビットsc1, sc2, vのうち1つsc1のみが1となる。パリティビットが1であることは、そのパリティリンク上に欠陥TSV(誤りビット)が存在することを意味する。そのため、この例では、受信回路Rxのデコーダは、単一の欠陥を検出し、マルチプル欠陥を検出しない(NACK=0)。
図17(b)と図17(c)は、列シフト量sがそれぞれ+1と-1の拡張PPCによる受信符号語CDWD_2の行チェックビットsrと列チェックビットscを示す。行シフト量sは0である。この例も、3つの行チェックビットsrのうち1つのみが1となり、3つの列チェックビットscのうち1つのみが1となる。よって、この例では、受信回路Rxのデコーダは、単一の欠陥を誤って検出し、マルチプル欠陥を検出しない(NACK=0)。
図17(d)と図17(e)は、行シフト量sがそれぞれ+1と-1の拡張PPCによる受信符号語CDWD_2の行チェックビットsrと列チェックビットscを示す。列シフト量sは0である。この例も、3つの行チェックビットsrのうち1つのみが1となり、3つの列チェックビットscのうち1つのみが1となる。よって、この例では、受信回路Rxのデコーダは、単一の欠陥を誤って検出し、マルチプル欠陥を検出しない(NACK=0)。
図18は、図17と同じ欠陥TSVパターンについて、行シフト量s=N1/2または列シフト量s=M1/2の拡張PPCで生成した符号語CDWD_2のチェックビットsr,scの例を示す図である。具体的には、図18(f)は列シフト量sが-2、行シフト量sが0の例、(g)は行シフト量sが+2、列シフト量sが0の例、(h)は行シフト量sが+3、列シフト量sが0の例である。これらのシフト量s=-2、+2、+3は、行シフト量s=N1/2に対応する。
図18(f)では、行チェックビットsr0, sr3が1となり、デコーダの複数誤り検出回路は、複数誤りビットを検出できる。図18(g)でも、列チェックビットsc0, sc2が1となり、デコーダの複数誤り検出回路は、複数誤りビットを検出できる。図18(h)でも、列チェックビットsc3, sc4が1となり、デコーダの複数誤り検出回路は、複数誤りビットを検出できる。
上記の通り、距離を意識したPPC(または拡張PPC)を適用して送信データDATA_1のパリティビット及び受信符号語CDWD_2のチェックビットを計算することで、複数誤りビットの検出率を高めることができる。また、拡張PPCでは、行シフト量sと列シフト量sを変更して複数誤りビット検出を繰り返すことで複数誤りビットの検出率を高めることができる。一方、距離を意識した拡張PPCでは、パリティリンク上のビット間の最小距離を最大化できるので、最適の行シフト量及び・または最適の列シフト量で複数誤りビット検出を行うことで、複数誤りビットの存在を1クロックサイクルで検出できる。
[変形例]
図10では、データDATA_1のインデックス配列を内部配線により行シフトまたは列シフトしたインデックス配列を、マルチプレクサMUXにより選択した。しかし、オリジナルのインデックス配列のデータDATA_1を、行シフトまたは列シフトに対応した変換回路により、行シフト及び・または列シフトしたインデックス配列のデータDATA_1_row.shift等に変換して、エンコーダに入力してもよい。また、同様の変換回路により、受信した符号語CDWD_2を行シフト・及び列シフトしたインデックス配列のデータに変換して、デコーダに入力してもよい。
距離を意識した拡張PPCでは、M行N列のデータDATA_1の場合、行シフト量は、Nの1/2乗の切り上げまたは切り下げた正または負の整数値である。また、列シフト量は、Mの1/2乗の切り上げまたは切り下げた正または負の整数値である。
以上のとおり、本実施の形態によれば、拡張PPCまたは距離を意識した拡張PPCを適用して、送信データDATA_1のパリティビットを算出して符号語CDWD_1を算出し、拡張PPCまたは距離を意識した拡張PPCを適用して、受信した符号語CDWD_2のチェックビットを算出する。そして、算出したチェックビットに基づいて誤りビット位置の検出と誤りビットの訂正、及び複数誤りビットの検出を行う。算出したチェックビットに基づいて複数誤りビット検出を行うことにより、複数誤りビットの検出精度を向上できる。
DEVICE_1:送信側デバイス
DATA_1:送信データ
31:行または列シフト回路
Tx、ENCODER:送信回路、エンコーダ
CDWD_1:符号語
TSVs、LINKs:2D TSVs
CDWD_2:符号語
32:行または列シフト回路
Rx、DECODER:受信回路、デコーダ
DEVICE_2:受信側デバイス
PL:パリティリンク
ri, cj:パリティビット
sri, scj:チェックビット
EB:エラービット、欠陥ビット、欠陥TSV
25:複数誤り検出回路
26:誤り検出回路

Claims (5)

  1. 行列状に配列された複数のリンクそれぞれに1ビットの信号を出力する送信回路と、
    前記複数のリンクを伝播してきた信号を受信する受信回路とを有し、
    前記送信回路は、
    M行N列のデータに含まれる各行のN個の行ビット群の行パリティビットと、各列のM個の列ビット群の列パリティビットを生成し、
    前記M行N列のデータに前記行パリティビットと前記列パリティビットを加えたM+1行N+1列の符号語を前記複数のリンクに出力し、
    前記受信回路は、
    前記複数のリンクを伝播してきた前記符号語の各行のN+1個の行ビット群のパリティビットである行チェックビットと、各列のM+1個の列ビット群のパリティビットである列チェックビットとを生成し、
    前記行チェックビットの1の数が2または2より大きい数であるか、または前記列チェックビットの1の数が2または2より大きい数である場合に、複数誤り検出信号を生成し、
    前記各列のM個の列ビット群は、第2行から第M行で行シフト量だけプラスまたはマイナスの行方向にシフトさせたビット群であり、または
    前記各行のN個の行ビット群は、第2列から第N列で列シフト量だけプラスまたはマイナスの列方向にシフトさせたビット群である、複数誤り検出回路。
  2. 前記行シフト量はMの1/2乗の切り上げまたは切り下げた正または負の整数値であり、
    前記列シフト量はNの1/2乗の切り上げまたは切り下げた正または負の整数値である、請求項1に記載の複数誤り検出回路。
  3. 行列状に配列された複数のリンクそれぞれに1ビットの信号を出力する送信回路と、
    前記複数のリンクを伝播してきた信号を受信する受信回路とを有する送受信回路の複数誤り検出方法であって、
    前記送信回路は、
    M行N列のデータに含まれる各行のN個の行ビット群の行パリティビットと、各列のM個の列ビット群の列パリティビットを生成し、
    前記M行N列のデータに前記行パリティビットと前記列パリティビットを加えたM+1行N+1列の符号語を前記複数のリンクに出力し、
    前記受信回路は、
    前記複数のリンクを伝播してきた前記符号語の各行のN+1個の行ビット群のパリティビットである行チェックビットと、各列のM+1個の列ビット群のパリティビットである列チェックビットとを生成し、
    前記行チェックビットの1の数が2または2より大きい数であるか、または前記列チェックビットの1の数が2または2より大きい数である場合に、複数誤り検出信号を生成し、
    前記各列のM個の列ビット群は、第2行から第M行で行シフト量だけプラスまたはマイナスの行方向にシフトさせたビット群であり、または
    前記各行のN個の行ビット群は、第2列から第N列で列シフト量だけプラスまたはマイナスの列方向にシフトさせたビット群である、複数誤り検出方法。
  4. 行列状に配列された複数のリンクそれぞれに1ビットの信号を出力する送信回路と、
    前記複数のリンクを伝播してきた信号を受信する受信回路とを有し、
    前記送信回路は、
    M行N列のデータに含まれる各行のN個の行ビット群の行パリティビットと、各列のM個の列ビット群の列パリティビットを生成し、
    前記M行N列のデータに前記行パリティビットと前記列パリティビットを加えたM+1行N+1列の符号語を前記複数のリンクに出力し、
    前記受信回路は、
    前記複数のリンクを伝播してきた前記符号語の各行のN+1個の行ビット群のパリティビットである行チェックビットと、各列のM+1個の列ビット群のパリティビットである列チェックビットとを生成し、
    前記行チェックビットの1の数が2または2より大きい数であるか、または前記列チェックビットの1の数が2または2より大きい数である場合に、複数誤り検出信号を生成し、
    前記行チェックビットが1の行ビット群と前記列チェックビットが1の列ビット群との交差位置のリンクの信号を反転して誤り訂正し、前記複数誤り検出信号が生成されない場合、前記誤り訂正したM行N列のデータを出力し、
    前記各列のM個の列ビット群は、第2行から第M行で行シフト量だけプラスまたはマイナスの行方向にシフトさせたビット群であり、または
    前記各行のN個の行ビット群は、第2列から第N列で列シフト量だけプラスまたはマイナスの列方向にシフトさせたビット群である、誤り訂正回路。
  5. 行列状に配列された複数のリンクそれぞれに1ビットの信号を出力する送信回路と、
    前記複数のリンクを伝播してきた信号を受信する受信回路とを有する送受信回路の誤り訂正方法であって、
    前記送信回路は、
    M行N列のデータに含まれる各行のN個の行ビット群の行パリティビットと、各列のM個の列ビット群の列パリティビットを生成し、
    前記M行N列のデータに前記行パリティビットと前記列パリティビットを加えたM+1行N+1列の符号語を前記複数のリンクに出力し、
    前記受信回路は、
    前記複数のリンクを伝播してきた前記符号語の各行のN+1個の行ビット群のパリティビットである行チェックビットと、各列のM+1個の列ビット群のパリティビットである列チェックビットとを生成し、
    前記行チェックビットの1の数が2または2より大きい数であるか、または前記列チェックビットの1の数が2または2より大きい数である場合に、複数誤り検出信号を生成し、
    前記行チェックビットが1の行ビット群と前記列チェックビットが1の列ビット群との交差位置のリンクの信号を反転して誤り訂正し、前記複数誤り検出信号が生成されない場合、前記誤り訂正したM行N列のデータを出力し、
    前記各列のM個の列ビット群は、第2行から第M行で行シフト量だけプラスまたはマイナスの行方向にシフトさせたビット群であり、または
    前記各行のN個の行ビット群は、第2列から第N列で列シフト量だけプラスまたはマイナスの列方向にシフトさせたビット群である、誤り訂正方法。
JP2020171553A 2020-10-09 2020-10-09 複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路 Pending JP2022063152A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020171553A JP2022063152A (ja) 2020-10-09 2020-10-09 複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020171553A JP2022063152A (ja) 2020-10-09 2020-10-09 複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路

Publications (1)

Publication Number Publication Date
JP2022063152A true JP2022063152A (ja) 2022-04-21

Family

ID=81255068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020171553A Pending JP2022063152A (ja) 2020-10-09 2020-10-09 複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路

Country Status (1)

Country Link
JP (1) JP2022063152A (ja)

Similar Documents

Publication Publication Date Title
US9270506B2 (en) Methods for bypassing faulty connections
JP5820038B2 (ja) フレキシブルで拡張可能なメモリアーキテクチャ
KR100865195B1 (ko) 인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출코드
EP0147336B1 (en) Error correcting and detecting system
US10108488B2 (en) Memory module with integrated error correction
US8966338B2 (en) Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device
Fu et al. Error control for network-on-chip links
US20200097362A1 (en) Methods and apparatus for reducing microbumps for inter-die double-data rate (ddr) transfer
JP2022063152A (ja) 複数のリンク内の複数誤りを検出する複数誤り検出回路及び複数誤り検出回路を有する誤り訂正回路
US10423482B2 (en) Robust pin-correcting error-correcting code
US20220368351A1 (en) Memory and operation method of memory
Fu et al. Burst error detection hybrid ARQ with crosstalk-delay reduction for reliable on-chip interconnects
US12026053B2 (en) Methods and apparatus for reducing microbumps for inter-die double-data rate (DDR) transfer
US20060095826A1 (en) Semiconductor memory chip, semiconductor memory module and method for transmitting write data to semiconductor memory chips
Dang et al. 2D-PPC: A single-correction multiple-detection method for Through-Silicon-Via Faults
Fu et al. An energy-efficient multiwire error control scheme for reliable on-chip interconnects using Hamming product codes
Dang et al. A non-blocking non-degrading multiple defects link testing method for 3D-networks-on-chip
Pasca et al. Fault tolerant communication in 3d integrated systems
US20070283208A1 (en) Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features
EP1345122A2 (en) A distributed 4-bits diagonal interleaved parity (DIP4) checker
Dang et al. 2D Parity Product Code for TSV online fault correction and detection
KR20090023794A (ko) 순환잉여검사장치를 포함하는 반도체메모리소자
Aymen et al. A new efficient self-checking Hsiao SEC-DED memory error correcting code
Alnajjar et al. Hardware-Based Error Correction Systems for Hamming Codes: a Review of the Literature
US9941192B2 (en) Semiconductor device having repairable penetration electrode

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20201030

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230926