(57)【要約】      （修正有）【課題】グループ誤りを用いる誤り検出を提供する。【解決手段】データビットを処理するための手段であって、第１の変換回路１２によって、データビットｘが第１のデータバイトに変換され、第１のデータバイトがメモリ１１に記憶され、第２のデータバイトがメモリから読み出され、第２のデータバイトはそれぞれ、誤りのない場合には、ブロック誤り符号の符号語であり、第２のデータバイト毎に、その第２のデータバイトが符号語であるか否かを示す誤り信号が決定される。【選択図】図１
2019186939.tif 000002
【特許請求の範囲】
【請求項１】
データビットを処理するための方法において、
−第１の変換によって、前記データビットを第１のデータバイトに変換し、
−前記第１のデータバイトをメモリに記憶し、
−第２のデータバイトを前記メモリから読み出し、
−前記第２のデータバイトはそれぞれ、誤りのない場合には、ブロック誤り符号の符号語であり、
−第２のデータバイト毎に、前記第２のデータバイトが符号語であるか否かを表す誤り信号を決定する、
方法。
【請求項２】
少なくとも１つの前記ブロック誤り符号を用いて、前記データビットを第１のデータバイトに変換する、
請求項１記載の方法。
【請求項３】
前記少なくとも１つのブロック誤り符号は、ｍ−ｏｕｔ−ｏｆ−ｎ符号である、
請求項２記載の方法。
【請求項４】
少なくとも１つの前記誤り信号に基づいて、誤り訂正を実施する、
請求項１から３までのいずれか１項記載の方法。
【請求項５】
前記データビットは、誤り符号を用いてコーディングされている、
請求項１から４までのいずれか１項記載の方法。
【請求項６】
前記第２のデータバイトを、前記第１の変換とは逆の変換である第２の変換によって第２の逆データバイトに変換する、
請求項５記載の方法。
【請求項７】
前記第２のデータバイトが前記ブロック誤り符号の符号語ではない場合には、前記誤り信号に基づいて、前記第２の逆データバイトの訂正を、前記誤り符号を用いて行う、
請求項６記載の方法。
【請求項８】
前記第２の逆データバイトの基礎をなす前記第２のデータバイトが前記ブロック誤り符号の符号語ではないことを前記誤り信号が示す場合には、少なくとも１つの第２の逆データバイトを、前記誤り信号に基づいて、前記誤り符号を用いて訂正する、
請求項６または７記載の方法。
【請求項９】
誤り信号が誤りのあるｉ番目の第２のデータバイトおよび誤りのあるｊ番目の第２のデータバイトを示す場合には、ｉ番目の第２の逆データバイトＸｉ’に対するバイト訂正値ｅｉを、誤りシンドロームの部分シンドロームｓ１およびｓ２、バイト位置ｉ、および成分毎のＸＯＲ和αｉ＋αｊに依存して決定し、ただしαは使用されるガロア体の生成元である、
請求項６から８までのいずれか１項記載の方法。
【請求項１０】
前記ｉ番目の第２の逆データバイトＸｉ’を訂正するための前記バイト訂正値ｅｉを、次式に従い決定する、
【数１】
2019186939.tif 000218
請求項９記載の方法。
【請求項１１】
前記バイト訂正値ｅｉを、次式に従い決定する、
【数２】
2019186939.tif 000219
ただし、
【数３】
2019186939.tif 000220
が成り立ち、またＥ０，Ｅ１，．．．，ＥＬ−１は、（Ｌ−１）個の前記第２のデータバイトに対するブロック誤り信号を表す、
請求項９記載の方法。
【請求項１２】
少なくとも２つのバイト訂正値を並列に決定し、少なくとも１つのバイト訂正値を、訂正の必要がない正しい第２の逆データバイトに対して決定する、
請求項９から１１までのいずれか１項記載の方法。
【請求項１３】
−前記第１のデータバイト、および前記第１のデータバイトに基づいて決定される第１の検査ビットを前記メモリに記憶し、
−第２のデータバイトおよび第２の検査ビットを前記メモリから読み出し、
−前記第２のデータバイトが前記ブロック誤り符号の符号語ではない場合には、前記誤り信号および前記第２の検査ビットに基づいて、前記第２のデータバイトの訂正を行う、
請求項１から１２までのいずれか１項記載の方法。
【請求項１４】
訂正された前記第２のデータバイトを、前記第１の変換とは逆の変換である第２の変換によって、訂正された第２の逆データバイトに変換する、
請求項１３記載の方法。
【請求項１５】
少なくとも２つの第２のデータバイトに対する少なくとも２つのバイト訂正値を並列に決定し、少なくとも１つのバイト訂正値を、訂正の必要がない正しい第２のデータバイトに対して決定する、
請求項１３または１４記載の方法。
【請求項１６】
少なくとも２つのグループ誤り、または既知でないバイト位置における誤りの誤り訂正を実施する、
請求項１から１５までのいずれか１項記載の方法。
【請求項１７】
ある特定の第２のデータバイトが対応する前記ブロック誤り符号の符号語ではないことを前記誤り信号が示す場合には、前記第２のデータバイトの少なくとも１つの誤りのあるビットを、前記グループ誤りを考慮して訂正する、
請求項１６記載の方法。
【請求項１８】
誤りのある第２のデータバイトを、並列にまたは実質的に並列に訂正する、
請求項１３から１７までのいずれか１項記載の方法。
【請求項１９】
前記第１のデータバイトも前記第２のデータバイトも、それぞれ１２ビットより多くのビットを含んでいない、
請求項１から１８までのいずれか１項記載の方法。
【請求項２０】
前記第２のデータバイトのうちの少なくとも２つに対する少なくとも２つの誤り信号を、並列にまたは実質的に並列に決定する、
請求項１から１９までのいずれか１項記載の方法。
【請求項２１】
データビットを処理するための装置において、
−前記装置は、処理ユニットを含んでおり、前記処理ユニットは、
−第１の変換によって、前記データビットを第１のデータバイトに変換し、
−前記第１のデータバイトをメモリに記憶し、
−誤りのない場合にはそれぞれがブロック誤り符号の符号語である第２のデータバイトを前記メモリから読み出し、
−第２のデータバイト毎に、前記第２のデータバイトが符号語であるか否かを表す誤り信号を決定する、
ように構成されている、
装置。
【請求項２２】
前記メモリは、以下のコンポーネント、すなわち、
−キャッシュメモリ、
−レジスタまたはレジスタアレイ、
−フラッシュメモリ、
−ＭＲＡＭ、
−ＳＲＡＭ、
−ＲＥ−ＲＡＭ、
−ＰＣ−ＲＡＭ、
−ＦＥ−ＲＡＭ、
−ＣＢ−ＲＡＭ、
−マルチビットメモリ、
−マルチレベルメモリ、
のうちの少なくとも１つを含んでいる、
請求項２１記載の装置。
【請求項２３】
前記メモリは、前記装置の一部であるか、または前記装置とは別個に形成されている、
請求項２１または２２記載の装置。
【請求項２４】
前記処理ユニットは、さらに、前記第１の変換とは逆の変換である第２の変換によって、前記第２のデータバイトを第２の逆データバイトに変換するように構成されている、
請求項２１から２３までのいずれか１項記載の装置。
【請求項２５】
前記処理ユニットは、さらに、
−前記第１のデータバイト、および前記第１のデータバイトに基づいて決定される第１の検査ビットを記憶し、
−前記第２のデータバイトおよび第２の検査ビットを前記メモリから読み出し、
−前記第２のデータバイトが前記ブロック誤り符号の符号語ではない場合には、前記誤り信号および前記第２の検査ビットに基づいて、前記第２のデータバイトを訂正する、
ように構成されている、
請求項２１から２４までのいずれか１項記載の装置。
【請求項２６】
データビットを処理するための装置において、前記装置は、
−第１の変換によって、前記データビットを第１のデータバイトに変換する手段、
−前記第１のデータバイトをメモリに記憶する手段、
−誤りのない場合にはそれぞれがブロック誤り符号の符号語である第２のデータバイトを前記メモリから読み出す手段、
−第２のデータバイト毎に、前記第２のデータバイトが符号語であるか否かを表す誤り信号を決定する手段、
を含んでいる、
装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の課題は、誤り訂正を改善することである。
【発明の概要】
【課題を解決するための手段】
【０００２】
この課題は、独立請求項の特徴部分に記載の構成によって解決される。好適な実施形態は、特に従属請求項から明らかになる。
【０００３】
この課題を解決するために、データビットを処理するための方法が提案され、この方法においては、
−第１の変換によって、データビットが第１のデータバイトに変換され、
−第１のデータバイトがメモリに記憶され、
−第２のデータバイトがメモリから読み出され、
−第２のデータバイトはそれぞれ、誤りのない場合には、１つのブロック誤り符号の１つの符号語であり、
−第２のデータバイト毎に、その第２のデータバイトが符号語であるか否かを表す誤り信号が決定される。
【０００４】
１つのデータバイトは、複数のデータビットを含んでいる。データビットないしデータバイトは、任意の情報、例えばデータ、プログラム、鍵などを含むことができる。
【０００５】
データビットは、特に可逆的かつ一義的に第１のデータバイトに変換することができる。変換によって、第１のデータバイトがそれぞれ、ブロック誤り符号の符号語を形成することを保証することができる。第１のデータバイトは、メモリセル値のバイトであってよく、それらのバイトが続けてメモリに書き込まれる。
【０００６】
第１のデータバイトは、第２のデータバイトと同じであると考えられる。第２のデータバイトは、例えばメモリが誤りを有する場合、または一般的に、第２のデータバイトを読み出す際に誤りが発生した場合には、第１のデータバイトと相異すると考えられる。
【０００７】
誤りがない場合には、読み出された第２のデータバイトは、書き込まれた第１のデータバイトと同じである。したがって、読み出された誤りのない第２のデータバイトは、１つのブロック誤り符号の符号語である（または、例えば各データバイトに対して固有のブロック誤り符号が使用される場合には、複数のブロック誤り符号の符号語である）。
【０００８】
第２のデータバイトはそれぞれ、固有の誤り検出回路を用いて、符号語であるか否かについて検査される。すなわち、第２のデータバイト毎に１つずつ、したがって複数の誤り検出回路が設けられている。誤り検出回路を用いて、第２のデータバイトが１つまたは複数のブロック誤り符号の符号語であるか否かを検査することができる。例えば、誤り検出回路毎に、別個のブロック誤り符号を検査することができる。
【０００９】
上記の変換によって、データビットのビットの個数が、変換された第１のデータバイト毎のビットの個数よりも少ないように、データビットを第１のデータバイトに変換することができる。１つのオプションでは、第１のデータバイトに変換されるデータビットの個数は、少なくともビット２個分、第１のデータバイトのビットの個数よりも少ない。つまり、例えば、それぞれ４個のデータビットを、それぞれが６個のデータビットを有する第１のデータバイトに変換することができ、したがって、それぞれ４個のビットが６個のビットに変換され、それら６個のビットが（変換が成功した際には）、使用されるブロック誤り符号の符号語を表す。
【００１０】
例えば３２個のデータビットが第１のデータバイトに変換される場合には、それら３２個のデータビットを、それぞれが４個のビットを含んでいる８個の小ブロックに分割することができる。４ビットの大きさの各ブロックが、例示的に６個のビットを含んでいる第１のデータバイトに変換される。すなわち、全体として、それぞれ４個のデータビットから成る８個のブロックを形成する３２個のデータビットが、それぞれ６個のビットを有する８個の第１のデータバイトに変換される。すなわち３２個のデータビットからは４８個のビットが生じ、それら４８個のビットがメモリにファイルされる。
【００１１】
この例によれば、８個の第２のデータバイトがメモリから読み出され、それら第２のデータバイトはそれぞれ、やはり６個のビットを含んでいる。第２のデータバイト毎に、それぞれの第２のデータバイトが（それぞれの）ブロック誤り符号の符号語であるか否かを表す誤り信号が決定される。
【００１２】
第２のデータバイトは、さらに逆データバイト（読み出された、場合によっては誤りのあるデータビットのバイト、または逆変換されたデータビットないしデータバイトとも記す）に逆変換され、この逆データビットは、誤り訂正によって訂正することができる。誤り訂正では、既に誤りがあるものとして検出された逆データバイト（いわゆる、グループ誤り）に誤り信号を集中させるために、誤り訂正を利用することができる。
【００１３】
例えば、第２のデータバイトのうちの１つに誤りがある場合には、そのデータバイトは、逆変換によって、誤りのある逆データバイトに逆変換される。この第２のデータバイトは、ブロック誤り符号の符号語ではないので、例えば、逆データバイトの値は０である。このことから、ここでは誤りが存在することを検出することができ、この誤りは可能な限り訂正されるべきである。
【００１４】
したがって、結果として、誤りを検出するだけでなく、その誤りを相応のバイトに限定することも、特に効率的に実現することができる。したがって、例えば、誤りのないバイトのデータビットを使用すること、または誤りのあるデータバイトのデータビットだけを使用しないことが実現される。
【００１５】
特に、グループ誤りの訂正は、バイト位置が事前に既知でない誤りの訂正よりも効率的に実現される。決定された誤り符号によって、バイト位置が事前に既知でない誤りよりも多くのグループ誤りを訂正することができる。これによって、記憶されているデータの信頼性を改善することができる。
【００１６】
各ビットおよび／または各メモリセル値を、少なくとも２つの値を記憶するために設けることができる。値が２つより多い場合には、各ビットはマルチビットである。特に、マルチビットメモリセルを設けることができる。
【００１７】
１つの発展形態では、少なくとも１つのブロック誤り符号を用いて、データビットが第１のデータバイトに変換される。
【００１８】
異なる第１のデータバイトに対して、異なるブロック誤り符号を使用することができる。また、第１のデータバイトに対して、同じブロック誤り符号を変換のために使用することができる。
【００１９】
１つの発展形態では、少なくとも１つのブロック誤り符号が、ｍ−ｏｕｔ−ｏｆ−ｎ符号である。
【００２０】
ｍ−ｏｕｔ−ｏｆ−ｎ符号では、ビットの一方のグループがビットの他方のグループに一義的かつ可逆的に変換され、この際、変換に誤りがなかった場合には、変換されたビットのグループは、複数ｍ個の第１の値および複数（ｎ−ｍ）個の第２の値を含む複数ｎ個のビットを有する。すなわち、全体でｎ個のビットにおいては、複数ｍ個の第１の値が存在する。第１の値は、値がバイナリの場合には、例えば値０または値１であると考えられる。
【００２１】
この例では、誤り信号は、第２のデータバイト毎の読み出された第１の値の個数がｍと同じでない場合には、第２のデータバイトに誤りが存在することを示すことができる。
【００２２】
１つの発展形態では、少なくとも１つの誤り信号に基づいて、誤り訂正が実施される。
【００２３】
１つの発展形態では、データビットが誤り符号を用いてコーディングされている。
【００２４】
誤り符号は、例えば、データビットに基づいて決定されており、データビットは、ビットのグループを形成することができる。
【００２５】
誤り符号は、ブロック誤り符号についての付加的な誤り符号である。誤り符号は、例えば、バイト誤り訂正符号および／またはバイト誤り検出符号である。また、誤り符号は、ビット誤り訂正符号および／またはビット誤り検出符号であってもよい。誤り符号は、ブロック誤り符号の上位の符号である。つまり、誤り符号は、ブロック誤り符号に付加的に利用される。ブロック誤り符号を用いて、誤り信号が決定され、また誤り符号は、少なくとも１つの誤りのある第２のデータバイトの訂正を１つの誤り信号（または複数の第２のデータバイトに対しては複数の誤り信号）に基づいて実現する。
【００２６】
誤り符号は、誤りのあるバイト位置が既知であるバイト誤り、いわゆるグループ誤りを訂正するために使用することができる。また誤り符号は、誤りのあるバイト位置が既知でないバイト誤りを訂正するためにも使用することができる。
【００２７】
例えば、データビットは、誤り符号の符号語であってもよいし、そのような符号語を含んでいてもよい。
【００２８】
第１のデータバイトがそれぞれ多値であることも考えられる。この場合には、読み出された第２のデータバイトも多値である。したがって、例えば、メモリのメモリセル毎に、２つより多くのディジタル値を記憶することができる。したがって、読み出された第２のデータバイトは、例えば複数ｎ１個の０、複数ｎ２個の１および複数ｎ３個の２を有することができる。読み出された０の個数がｎ１と同じでない場合、読み出された１の個数がｎ２と同じでない場合、または読み出された２の個数がｎ３と同じでない場合には、誤りを検出することができる。
【００２９】
１つの発展形態では、誤り符号は、バイト誤り訂正符号であり、特にリード・ソロモン符号である。
【００３０】
１つの発展形態では、第２のデータバイトが、第１の変換とは逆の変換である第２の変換によって、第２の逆データバイトに変換される。
【００３１】
したがって、第１の変換でもって、データビットが第１のデータバイトに変換され、また第２の変換でもって、メモリから読み出された、場合によっては誤りのある第２のデータバイトが第２の逆データバイトに逆変換される。ここで、それらの第２の逆データバイトを、誤り符号を用いて訂正することができる。
【００３２】
１つの発展形態では、第２のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号に基づいて、第２の逆データバイトの訂正が誤り符号を用いて行われる。
【００３３】
１つの発展形態では、第２の逆データバイトの基礎をなす第２のデータバイトがブロック誤り符号の符号語ではないことを誤り信号が示す場合には、少なくとも１つの第２の逆データバイトが、誤り信号に基づいて、誤り符号を用いて訂正される。
【００３４】
１つの発展形態では、誤り信号が誤りのあるｉ番目の第２のデータバイトおよび誤りのあるｊ番目の第２のデータバイトを示す場合には、ｉ番目の第２の逆データバイトＸｉ’に対するバイト訂正値ｅｉは、誤りシンドロームの部分シンドロームｓ１ならびにｓ２、バイト位置ｉ、および成分毎のＸＯＲ和αｉ＋αｊ（ただし、αは使用されるガロア体の生成元である）に依存して決定される。
【００３５】
１つの発展形態では、ｉ番目の第２の逆データバイトＸｉ’を訂正するためのバイト訂正値ｅｉが、次式に従い決定される。
【数１】
2019186939.tif 000003
【００３６】
１つの発展形態では、バイト訂正値ｅｉが、次式に従い決定される。
【数２】
2019186939.tif 000004
ただし、
【数３】
2019186939.tif 000005
が成り立ち、またＥ０，Ｅ１，．．．，ＥＬ−１は、（Ｌ−１）個の第２のデータバイトに対するブロック誤り信号を表す。
【００３７】
有利には、ｉ番目のバイトに対するバイト訂正値ｅｉは、１つのグループ誤りが存在する場合、または（ｉ番目の第２のデータバイトおよびｊ番目の第２のデータバイトに関して）２つのグループ誤りが存在する場合には、同じ関数関係に従って、それゆえ、Σが
【数４】
2019186939.tif 000006
として決定されている場合には（ただし、ＥｉおよびＥｊは、ｉ番目の第２のデータバイトおよびｊ番目の第２のデータバイトに対する誤り信号である）、Σに依存する回路タイプも用いて決定することができる。
【００３８】
ｉ番目の第２のデータバイトの位置にグループ誤りが１つだけ存在する場合には、誤り信号Ｅｉ＝１となり、他の全ての誤り信号は０となる。ｉ番目の第２のデータバイトの位置およびｊ番目の第２のデータバイトの位置に２つのグループ誤りが存在する場合には、誤り信号Ｅｉ＝Ｅｊ＝１となり、他の全ての誤り信号は０となる。
【００３９】
１つの発展形態では、少なくとも２つのバイト訂正値が並列に決定され、その場合、少なくとも１つのバイト訂正値は、訂正の必要がない正しい第２の逆データバイトに対して決定される。
【００４０】
この関係において、並列とは特に、バイト訂正値の決定および／または提供を少なくとも部分的に時間的に重畳させて、特に実質的に同時に行えることを意味している。したがって１つの有利なオプションでは、バイト毎に、訂正のために１つの定数乗算器、２つのＸＯＲ回路および１つのＡＮＤ回路だけが必要とされる。
【００４１】
１つの発展形態では、
−第１のデータバイト、および第１のデータバイトに基づいて決定される第１の検査ビットがメモリに記憶され、
−第２のデータバイトおよび第２の検査ビットがメモリから読み出され、
−第２のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号および第２の検査ビットに基づいて、第２のデータバイトの訂正が行われる。
【００４２】
したがって、訂正は、第２のデータバイトおよび検査ビットに基づいて行われる。この際に、訂正された第２のデータバイトが決定される。訂正された第２のデータバイトは、特に、バイト訂正値生成器（例えば、図３ｂにおける参照番号３７を参照されたい）によって処理された第２のデータバイトである。各第２のデータバイトの個々のビットを変更することができる（すなわち、訂正することができる）。また、この訂正ステップでは、（単一のまたは複数の）第２のデータバイトの変更が行われないことも考えられるが、それにもかかわらず、訂正ステップ（すなわち、図３ｂによるバイト訂正値生成器３７およびＸＯＲ回路３８０〜３８Ｌ−１による処理）後の第２のデータバイトは、以下では「訂正された第２のデータバイト」と記す第２のデータバイトに相当する。このことの本質は、（バイト訂正値生成器３７およびＸＯＲ回路３８０〜３８Ｌ−１を含む）訂正回路が、誤りのない第２のデータバイトは最終的に変更されない（訂正値０は誤りのない第２のデータバイトと成分毎にＸＯＲ結合される）ことがＸＯＲ回路によって保証されている場合であっても、第２のデータバイトの（実質的にまたは実際に）並列な訂正を実現することにある。その限りにおいて、訂正回路は、第２のデータバイトから、上述の「訂正された第２のデータバイト」を、個々の訂正された第２のデータバイトが第２のデータバイトと異なるか否かに依存せずに生成する。
【００４３】
１つのオプションとして、誤り訂正が、データビットに関する誤り符号を使用して、かつ／またはデータバイトに関する検査ビットを使用して実施される。
【００４４】
１つの発展形態では、訂正された第２のデータバイトが、第１の変換とは逆の変換である第２の変換によって、訂正された第２の逆データバイトに変換される。
【００４５】
１つの発展形態では、第２のデータバイトがブロック誤り符号の符号語ではないことを誤り信号が示す場合には、少なくとも１つの第２のデータバイトが、誤り信号に基づいて、検査ビットを用いて訂正される。
【００４６】
１つの発展形態では、少なくとも２つの第２のデータバイトに対する少なくとも２つのバイト訂正値が並列に決定され、その場合、少なくとも１つのバイト訂正値は、訂正の必要がない正しい第２のデータバイトに対して決定される。
【００４７】
１つの発展形態では、検査ビットに基づいて、誤り信号が決定されている第２のデータバイトが、検査ビットを用いて訂正される。
【００４８】
また、１つの発展形態では、少なくとも２つの誤り信号に基づいて、それら少なくとも２つの誤り信号が決定されている第２のデータバイトが、検査ビットを用いて訂正される。
【００４９】
１つの発展形態では、少なくとも２つのグループ誤り、または既知でないバイト位置における誤りの誤り訂正が実施される。
【００５０】
グループ誤りとは、そのバイト誤り位置が既知である誤りである。
【００５１】
１つの発展形態では、ある特定の第２のデータバイトが対応するブロック誤り符号の符号語ではないことを誤り信号が示す場合には、その第２のデータバイトの少なくとも１つの誤りのあるビットが、グループ誤りを考慮して訂正される。
【００５２】
１つの発展形態では、誤りのある第２のデータバイトが、並列に、または実質的に並列に訂正される。
【００５３】
この関係において、並列とは特に、バイト訂正値の決定および／または提供を少なくとも部分的に時間的に重畳させて、特に実質的に同時に行えることを意味している。
【００５４】
特に、複数のバイト訂正値生成器を、訂正されるべきバイトに対して並列に実装することができる。特に、バイト訂正値を、少なくとも１つのクロックの間に、例えば共通のクロックのシーケンスの間に、または共通のクロックの一部のシーケンスの間に（すなわち、時間的に重畳させて）決定することができる。少なくとも部分的に時間的に重畳させることによって、並列な処理が実現される。ここで、「並列な決定」という概念には、特に、部分的に並列な処理（すなわち、例えば部分的に同時の処理）も含まれることを言及しておく。
【００５５】
例えば、誤りのある第２のデータバイトに対しては、０ではない訂正値を提供することができ、また誤りのない第２のデータバイトに対しては、０の訂正値を提供することができる。したがって、訂正されるべき全ての第２のデータバイトに対して訂正値を決定して、訂正回路の異なる出力側において提供することができる。訂正値を、可逆的かつ一義的に、例えばＸＯＲ回路によって、訂正されるべきバイトのビットと結合させることができる。誤り信号に基づいて、第２のデータバイトが訂正されるべきか否かを決定することができる。第２のデータバイトが訂正されない場合には、例えば、第２のデータバイトの個々のビットを値０とＸＯＲ結合させることができる。
【００５６】
誤り信号が、該当する第２のデータバイトのバイト位置にグループ誤りが存在することを示す場合には、訂正回路によってグループ誤りに対して決定および訂正されたビットが、訂正されるべきバイトのビットと、例えばＸＯＲ回路によって結合される。
【００５７】
誤り信号が、第２のデータバイトのバイト位置にグループ誤りが存在しないことを示す場合には、例えば、訂正回路によって、０の値を有するビットを提供することができ、それらのビットを誤りのないビットとＸＯＲ結合させることができ、その際、誤りのないビットが変更されることはない。
【００５８】
誤り信号が存在しない場合であっても、バイト誤りが存在する可能性があるが、もっともこのバイト誤りは、ブロック誤り符号によって検出されなかったものである。この場合には、事前に決定されたバイト誤り位置による支援がなくとも、誤り符号を用いてバイト誤りを訂正することができる。
【００５９】
１つのオプションでは、第２のデータバイトの訂正は、ペイロードビットが関係しており、かつ検査ビットが相応に訂正する必要がない場合にのみ実施される。代替的に、ペイロードビットおよび検査ビットも訂正することができる。
【００６０】
１つの発展形態では、第１のデータバイトも第２のデータバイトも、それぞれ１２個より多くのビットを含んでいない。
【００６１】
第１のデータバイトおよび／または第２のデータバイト毎に６、７、８、９、１０、１１または１２個より多くのビットが使用されないことは有利であると考えられる。１つのバイトは、リード・ソロモン符号では、ガロア体ＧＦ（２ｂ）（ここで、ｂはバイト毎のビットの個数である）の元とみなされる。場合によっては誤りのある個々のバイトに対する訂正値が、異なるバイトのための異なる出力側において提供される実現形態、例えば誤り訂正回路の並列な実現形態は、例えば１０個のビットまたは１２個のビットよりも大きい値に対しては非常に繁雑であると考えられる。
【００６２】
１つの発展形態では、第２のデータバイトのうちの少なくとも２つに対する少なくとも２つの誤り信号が、並列に、または実質的に並列に決定される。
【００６３】
この関係において、並列ないし実質的に並列とは特に、誤り信号の決定を少なくとも部分的に時間的に重畳させて、特に実質的に同時に行えることを意味している。
【００６４】
上記の課題を解決するために、データビットを処理するための装置も提案され、この装置は、
−処理ユニットを含んでおり、この処理ユニットは、
−第１の変換によって、データビットを第１のデータバイトに変換し、
−第１のデータバイトをメモリに記憶し、
−誤りのない場合にはそれぞれがブロック誤り符号の符号語である第２のデータバイトをメモリから読み出し、
−第２のデータバイト毎に、その第２のデータバイトが符号語であるか否かを表す誤り信号を決定する、
ように構成されている。
【００６５】
ここに記載した処理ユニットを、特に、例えば本明細書に記載するような方法を実施することができるように構成されており、また少なくとも部分的にハードワイヤード式の回路装置または論理回路装置および／またはプロセッサユニットとして形成することができる。上述の処理ユニットは、相応に必要とされる周辺装置（メモリ、入力／出力インタフェース、入出力装置など）を備えた、あらゆる種類のプロセッサまたは計算機またはコンピュータであってもよいし、それらを含んでいてもよい。
【００６６】
１つのオプションでは、第２のデータバイト毎に、その第２のデータバイトに対する誤り信号を決定するように構成されている誤り検出回路が１つ設けられている。
【００６７】
さらに、１つのオプションでは、メモリセル値を訂正するための訂正値生成器が設けられている。訂正値生成器は、例えば、メモリセル値のバイトに誤りがあることを誤り信号が示す場合には、誤りのあるメモリセル値のバイトを訂正するための、０ではないバイト訂正値を決定する。
【００６８】
また１つのオプションでは、訂正値生成器がデータビットを訂正するために使用される。訂正値生成器は、例えば、メモリセル値のバイトに誤りがあることを誤り信号が示す場合には、メモリセル値の誤りのあるバイトに事前に変換されていた誤りのあるデータバイトを訂正するための、０ではないバイト訂正値を決定する。
【００６９】
ブロック誤り符号の誤り信号を使用して、メモリセル値のバイトに対して、使用される誤り信号のうちの１つが誤りを示す場合には第１の値を取り、全ての誤り信号が誤りを示さない場合には第２の値を取る、組合せ誤り信号を形成することができる。
【００７０】
誤り信号は、バイナリであってよく、また組合せ誤り信号を、複数の誤り信号のＸＯＲ結合またはＯＲ結合として決定することができる。
【００７１】
方法に関する前述の説明は、装置についても相応に当てはまる。装置を１つのコンポーネントにおいて形成することができるか、または複数のコンポーネントに分散させて形成することができる。
【００７２】
また上記の課題は、本明細書で説明する装置のうちの少なくとも１つを含んでいるシステムによって解決される。
【００７３】
１つの発展形態では、メモリが、以下のコンポーネントのうちの少なくとも１つを含んでいる。
−キャッシュメモリ、
−レジスタまたはレジスタアレイ、
−フラッシュメモリ、
−ＭＲＡＭ、
−ＳＲＡＭ、
−ＲＥ−ＲＡＭ、
−ＰＣ−ＲＡＭ、
−ＦＥ−ＲＡＭ、
−ＣＢ−ＲＡＭ、
−マルチビットメモリ、
−マルチレベルメモリ。
【００７４】
１つの発展形態では、メモリが装置の一部であるか、または装置とは別個に形成されている。
【００７５】
１つの発展形態では、さらに、第１の変換とは逆の変換である第２の変換によって、第２のデータバイトが第２の逆データバイトに変換されるように、処理ユニットが構成されている。
【００７６】
１つの発展形態では、処理ユニットが、さらに、
−第１のデータバイト、および第１のデータバイトに基づいて決定される第１の検査ビットを記憶し、
−第２のデータバイトおよび第２の検査ビットをメモリから読み出し、
−第２のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号および第２の検査ビットに基づいて、その第２のデータバイトを訂正するように構成されている。
【００７７】
さらに、データビットを処理するための装置が提案され、この装置は、
−第１の変換によって、データビットを第１のデータバイトに変換する手段、
−第１のデータバイトをメモリに記憶する手段、
−誤りのない場合にはそれぞれがブロック誤り符号の符号語である第２のデータバイトをメモリから読み出す手段、
−第２のデータバイト毎に、その第２のデータバイトが符号語であるか否かを表す誤り信号を決定する手段、
を含んでいる。
【００７８】
さらに、ディジタルコンピュータのメモリに直接的にロードすることができる、コンピュータプログラム製品が提案され、このコンピュータプログラム製品は、本明細書において説明する方法のステップを実施することに適しているプログラムコード部分を含んでいる。
【００７９】
また、コンピュータ読み出し可能な記憶媒体が提供され、この記憶媒体は、コンピュータが本明細書において説明する方法のステップを実施することに適している、コンピュータによって実行可能な命令を含んでいる。
【００８０】
本発明の上述の特性、特徴および利点、ならびにそれらがどのように達成されるかを、以下では図面と関連させて詳細に説明する実施例の概略的な説明と関係させて説明する。各図においては、明瞭性のために、同一または同様に機能する素子には同一の参照符号を付している場合がある。
【図面の簡単な説明】
【００８１】
【図１】メモリにデータを記憶するための例示的な回路。
【図２ａ】情報ビットに対する検査ビットが利用される、符号語のデータビットの訂正を例示した概略図の第１の部分。
【図２ｂ】情報ビットに関する検査ビットが利用される、符号語のデータビットの訂正を例示した概略図の第２の部分。
【図３ａ】特にメモリセル値に関する検査ビットが利用される、符号語のデータビットの訂正を例示した概略図の第１の部分。
【図３ｂ】特にメモリセル値に関する検査ビットが利用される、符号語のデータビットの訂正を例示した概略図の第２の部分。
【図４】組合せ誤り信号Ｅを決定するための例示的な回路装置。
【図５ａ】図２ａに示した変換回路２２の例示的な実現形態。
【図５ｂ】図２ｂに示した逆変換回路２５の例示的な実現形態。
【図６】例示的な誤り検出回路。
【図７】バイトＷ１’のビットにおける奇数の全てのビット誤りを検出する例示的な誤り検出回路。
【図８】特に、訂正値
【数５】
2019186939.tif 000007
を決定するためのバイト訂正値生成器が正しく機能するか否かを検査することができる、誤り訂正を検査するための例示的な回路装置。
【図９ａ】誤りのあるｋ番目のバイトを訂正するためのバイト訂正値ｅｋを決定するための例示的な回路装置。
【図９ｂ】ｉ番目、ｊ番目およびｋ番目のバイトにおけるバイト誤りが誤り信号Ｅｉ＝Ｅｊ＝Ｅｋ＝１によって示される場合の、積
【数６】
2019186939.tif 000008
を形成するための例示的な回路装置。
【図１０】誤りのある１つのバイト位置または誤りのある２つのバイト位置が既知であり、したがって１つのグループ誤りまたは２つのグループ誤りが生じているという前提のもとで、任意の、場合によっては誤りのあるｌ番目のバイトに対するバイト訂正値を決定する例示的な回路装置。
【図１１】１５個のバイト訂正値生成器を並列に実現するための例示的な回路装置。
【図１２】Σ−１を決定するための例示的な回路装置。
【図１３】ＸＯＲ回路を用いて誤り信号Ｅ０〜Ｅ１４からΣを形成するための、図１２に示した組合せ回路１２１の例示的な実現形態。
【図１４】誤り検出回路１３０〜１３Ｌ−１によって決定された誤り信号Ｅ０〜ＥＬ−１に依存したグループ誤りの訂正、および誤り検出回路１３０〜１３Ｌ−１によってグループ誤りとして検出できない誤りの訂正を行うための例示的な回路装置。
【図１５】ベクトル表現で与えられている、ガロア体の２つの元を乗算するための例示的な回路装置。
【図１６ａ】ベクトル表現ａ＝１０００を用いる定数α０に関する定数乗算器の１つの考えられる実現形態。
【図１６ｂ】ベクトル表現ａ＝０１００を用いる定数α１に関する定数乗算器の１つの考えられる実現形態。
【図１６ｃ】ベクトル表現ａ＝００１１を用いる定数α６に関する定数乗算器の１つの考えられる実現形態。
【発明を実施するための形態】
【００８２】
誤り符号についての一般的な注釈
本願において使用される誤り符号（符号とも記す）は、線形符号または非線形符号である。
【００８３】
例えば、線形符号Ｃを、生成行列Ｇ（Ｇ行列とも記す）またはＨ行列Ｈによって表すことができる。この例では、簡潔な説明のために、先ず線形符号、特にペイロードがバイナリペリロードビット（ないしペイロードバイト）である線形符号を考察する。ここで、１つのバイトは、複数ｂ（ただし、ｂ≧２）個のビットを含んでいる。ペイロードビットは、情報ビットとも記す。
【００８４】
符号Ｃが、複数ｑ個のペイロードビット
【数７】
2019186939.tif 000009
を有する場合には、符号語
【数８】
2019186939.tif 000010
を、生成行列Ｇを使用して、以下の関係
【数９】
2019186939.tif 000011
によって決定することができる。生成行列Ｇは、（ｑ，ｋ）行列である。
【００８５】
符号Ｃが、線形組織符号である場合には、符号Ｃの符号語は、ｑ個のペイロードビットｕと、付加的なｐ個の検査ビットｃ１，．．．，ｃｐとを含んでおり、この場合、符号語のビットの個数は、ｋ＝ｑ＋ｐによって決定されている。
【００８６】
組織符号の符号語を形成する際に、ペイロードビットは、例えば複数のペイロードビットの線形組合せである検査ビットによって補完される。
【００８７】
線形組織符号に関して、生成行列は、以下の形式を有し、
【数１０】
2019186939.tif 000012
ただし、Ｐｑ，ｐは、符号Ｃのパリティ行列とも記す（ｑ，ｐ）行列であり、ここで、ｐ＝ｋ−ｑであり、かつＩｑは、ｑ次元の単位行列である。
【００８８】
符号Ｃは、符号Ｃの符号語である複数の語
【数１１】
2019186939.tif 000013
の集合によって決定されている。検査ビットｃ１〜ｃｐに関しては、以下の関係が成り立つ。
【数１２】
2019186939.tif 000014
【００８９】
Ｇ＝（Ｉｑ，Ｐｑ，ｐ）が、組織形式の符号Ｃの生成行列である場合には、符号ＣのＨ行列Ｈを、
【数１３】
2019186939.tif 000015
に従い決定することができ、ただし
【数１４】
2019186939.tif 000016
は、パリティ行列Ｐｑ，ｐの転置行列であり、Ｉｐは、ｐ次元の単位行列である。転置パリティ行列
【数１５】
2019186939.tif 000017
は、パリティ行列Ｐｑ，ｐから、その行と列が入れ替えられることによって得られる。
【００９０】
各符号のように、長さｋの線形ブロック符号も、考えられる全てのｋ成分の語の集合の部分集合である、自身の複数の符号語の集合によって表すことができる。換言すれば、符号Ｃは、長さｋの考えられる全ての語の語ｘ１，．．．，ｘｋの部分集合によって表すことができ、この場合、次式が成り立つ。
【数１６】
2019186939.tif 000018
したがって、線形符号Ｃは、式（４）が満たされているｋ項の全ての語の部分集合によって決定されている。ここで、ベクトル［ｘ１，．．．，ｘｋ］Ｔは、行ベクトル［ｘ１，．．．，ｘｋ］の転置列ベクトルである。
【００９１】
符号語ｘ１，．．．，ｘｋ（ただし、Ｈ×［ｘ１，．．．，ｘｋ］Ｔ＝０）を、ｋ個の成分ｘ１，．．．，ｘｋを有する符号ベクトルと記すこともできる。
【００９２】
成分ｘｉ（ただし１≦ｉ≦ｋ）が０または１の値しか取ることができない場合には、ｘｉはバイナリである。成分ｘｉは、多値であってもよい。成分ｘｉが３値である場合には、成分ｘｉは、３つの異なる値、例えば０、１または２を取ることができる。成分ｘｉがＫ値（ただし、Ｋ≧２）である場合には、成分ｘｉは、Ｋ個の異なる値、例えば０，１，．．．，Ｋ−１を取ることができる。
【００９３】
符号語の成分ｘｉが、複数ｂ個のビットを有するｂビット・バイトを表すことも考えられ、これは例えば、リード・ソロモン符号などのバイト誤り訂正符号またはバイト誤り検出符号の場合である。
【００９４】
各符号に関する場合と同様に、線形符号Ｃについても、符号語ｘを誤りのある語
【数１７】
2019186939.tif 000019
に改ざんする誤りを、その誤りのある語が符号Ｃの符号語ではない場合には検出できる。改ざんされた語ｘ’も符号Ｃの符号語である場合には、誤りを検出することはできない。
【００９５】
Ｈが符号ＣのＨ行列である場合には、
【数１８】
2019186939.tif 000020
であることの誤りを検出することができる。これに対して、
【数１９】
2019186939.tif 000021
である場合には、誤りは検出されない。ここで、ｓは、誤りのある語ｘ’の誤りシンドロームを表す。［ｘ’］Ｔは、行ベクトルｘ’の転置列ベクトルである。
【００９６】
例：多値の符号
例示的に、３項アルファベット０、１および２に関して符号ＣＣを説明する。この符号は非線形である。符号ＣＣを、
【数２０】
2019186939.tif 000022
として表すことができる。つまり、この符号ＣＣの符号語は、この場合２つの２、１つの１および１つの０を有する。
【数２１】
2019186939.tif 000023
個の符号語、つまり
【数２２】
2019186939.tif 000024
が存在する。
【００９７】
アルファベット｛０，１，２｝に関する長さ４の全ての語の集合｛０，１，２｝４
【数２３】
2019186939.tif 000025
は、３４＝８１個の要素を有する。符号ＣＣは、長さ４の全ての語のこの集合｛０，１，２｝４の部分集合である。
【００９８】
また、ｂ個（ただし、ｂ≧２であると考えられる）のビットを含むことができるバイトのアルファベットに関して符号を考察することもできる。この種の符号に関する例は、リード・ソロモン符号である。
【００９９】
メモリセル値のバイトの誤り検出
図１は、メモリ１１にデータを記憶するための例示的な回路を示す。メモリ１１は、複数のメモリセル値を記憶するための複数のメモリセルを有している。メモリセルがバイナリである場合には、メモリセルは、２つの異なるメモリセル値（例えば、０または１）を記憶することができる。メモリセルが、Ｋ個（ただし、Ｋ＞２）の異なるメモリセル値を記憶する場合には、メモリセルを、Ｋ値メモリセル（多値メモリセルまたは「Ｍｕｌｔｉ−Ｖａｌｕｅｄ」メモリセル）と記す場合もある。Ｋ個の異なるメモリセル値は、例えば０，１，２，．．．，Ｋ−１であってよい。
【０１００】
メモリ１１は、バイナリメモリセルおよび／または多値メモリセルを有することができる。特に、１つのオプションでは、メモリ１１が、複数のＫ値メモリセルを有しており、この場合、Ｋ値メモリセルの第１の部分には、多値の値０，１，．．．，Ｋ−１の部分集合のみ、例えば値０またはＫ−１のみを書き込むことができ、またメモリセルの第２の部分には、考えられるＫ個全ての異なるメモリセル値を書き込むことができる。
【０１０１】
以下では、例示的に、メモリ１１のメモリセルがバイナリであることを想定する。
【０１０２】
さらに、図１による回路は、１つの変換回路１２および複数Ｌ個の誤り検出回路ＦＥ０１３０，ＦＥ１１３１，．．．，ＦＥＬ−１１３Ｌ−１を有している。ここで、「Ｌ−１」と組み合わされた数字の表記は、それがＬ番目のコンポーネントであること、ここではＬ番目の誤り検出回路であることを表していることを言及しておく。例えばＬ＝４個の誤り検出回路が設けられている場合には、それらの誤り検出回路には、参照番号１３０、１３１、１３２および１３３が付与される。したがって、最後の参照番号は、１３Ｌ−１（ただし、Ｌ＝４）から１３３となる。これらの表記によって、可変の多数のＬ個のコンポーネントを示唆することができ、また特に、大きい数Ｌを漠然と表すことができる。
【０１０３】
変換回路１２は、ｋ個のデータビットｘ＝ｘ１，．．．，ｘｋを入力するためのｋビット幅の入力側と、ｎ個のメモリセル値ｗ＝ｗ１，．．．，ｗｎを出力するためのｎビット幅の出力側と、を有している。
【０１０４】
符号語ｘのｋ＝ｑ＋ｐ個のデータビットは、複数ｑ個の情報ビットｕ１，ｕ２，．．．，ｕｑと、分離可能な誤り符号Ｃ１の複数ｐ個の検査ビットｃ１，．．．，ｃｐと、を形成することができ、それによって、
【数２４】
2019186939.tif 000026
が成り立つ。ただし
【数２５】
2019186939.tif 000027
は、誤り符号Ｃ１の符号語である。
【０１０５】
誤り符号Ｃ１を、データビット誤り符号と記す場合もある。誤り符号Ｃ１は、誤り訂正符号および／または誤り検出符号である。情報ビットｕ１，．．．，ｕｑは、検査ビットｃ１，．．．，ｃｐで補完され、変換回路１２の入力側に印加される誤り符号Ｃ１の符号語ｘとなる。例えば、誤り符号Ｃ１が、バイト誤り訂正符号および／またはバイト誤り検出符号であることも考えられる。符号語ｘが、分離できない符号の符号語であることも考えられる。
【０１０６】
さらに、符号語ｘ１，．．．，ｘｋのｋ個のビットの代わりに、ペイロードビットｕ１，．．．，ｕｑのｑ個のビットを印加することもできる。換言すれば、符号語ｘが変換回路１２に供給されることは必要なく、その代わりに、ペイロードビットｕの集合が変換回路１２に供給されてもよい。
【０１０７】
変換回路１２の入力側には、ｋ個のデータビットｘ＝ｘ１，．．．，ｘｋが印加される。ここで、以下の関係が成り立つ。
−このデータビットのｍ０が０番目のバイトＸ０を形成する、
−このデータビットのｍ１が１番目のバイトＸ１を形成する、以下同、
−最終的にこのデータビットのｍＬ−１が（Ｌ−１）番目のバイトを形成するまで同じことが繰り返される。
【０１０８】
さらに、以下の関係が成り立つ。
【数２６】
2019186939.tif 000028
【０１０９】
データビットの少なくとも２つのバイトが形成されるので、Ｌ≧２となる。さらに、この実施例によるデータビットのバイトは、少なくとも２つのビットを有するので、以下の関係が成り立つ。
【数２７】
2019186939.tif 000029
【０１１０】
データビットのバイト、例えば「データビットのバイトＸ１」は、「データバイトＸ１」または「データビットのグループＸ１」とも記す。
【０１１１】
複数のビットのグループのビットまたはデータビットのバイトＸ０，Ｘ１，．．．，ＸＬ−１のビットが連続して配置されていることも考えられるが、しかしながらこれは必須ではない。
【０１１２】
単に例示ではあるが、多くの実施例において、複数のデータビットから成るバイトの各ビットが連続して配置されており、
【数２８】
2019186939.tif 000030
が成り立つことが前提とされる。
【０１１３】
変換回路１２は、自身のｋ個の入力側に印加される、符号語ｘのｋ個のデータビットを、ｎ個のメモリセル値ｗ＝ｗ１，．．．，ｗｎに変換し、それらのメモリセル値ｗ＝ｗ１，．．．，ｗｎを、自身のｎ個の出力線に出力し、これらの出力線は、メモリ１１のｎ個のメモリセルの対応するデータ入力線に接続されている。したがって、変換回路１２は、データビットの割り当てを、メモリセル値の割り当てに変換する。
【０１１４】
ｋ個のデータビットの複数Ａｎｚ１＜２ｋ個の割り当てしか生じない場合には、生じた割り当てをメモリセル値の対応する割り当てに一対一で変換するように変換回路１２が構成されていれば十分である。生じない割り当てに関しては、変換回路の機能を任意に規定することができる。
【０１１５】
変換回路１２は、以下のように構成されている。
−０番目のバイトＷ０のメモリセル値の割り当てが長さｎ０の誤り符号ＣＦ０の符号語であるように、データビットの０番目のバイト
【数２９】
2019186939.tif 000031
の割り当てを、メモリセル値の０番目のバイト
【数３０】
2019186939.tif 000032
の割り当てに変換する、
−１番目のバイトＷ１のメモリセル値の割り当てが長さｎ１の誤り符号ＣＦ１の符号語であるように、データビットの１番目のバイト
【数３１】
2019186939.tif 000033
の割り当てを、メモリセル値の１番目のバイト
【数３２】
2019186939.tif 000034
の割り当てに変換する、
−最終的に、メモリセル値のｎＬ−１番目のバイトＷＬ−１の割り当てが長さｎＬ−１の誤り符号ＣＦＬ−１の符号語であるように、データビットの（Ｌ−１）番目のバイト
【数３３】
2019186939.tif 000035
の割り当てを、メモリセル値のＬ−１番目のバイト
【数３４】
2019186939.tif 000036
の割り当てに変換するまで同じことを繰り返す。
【０１１６】
誤り符号ＣＦ０，ＣＦ１，．．．，ＣＦＬ−１は、それぞれ、ブロック誤り符号とも記す。
【０１１７】
考察する実施例においては、以下の関係が成り立つ。
【数３５】
2019186939.tif 000037
【０１１８】
メモリセル値のバイトを、複数のメモリセルから成るグループに記憶することができる。この場合、とりわけ、少なくともＬ＝２個のバイトと、メモリセル値の対応するバイトを記憶することができる、複数のメモリセルから成る少なくとも２つのグループと、が存在している。
【０１１９】
データビットのバイトおよびメモリセル値のバイトが２個よりも多く存在していてもよい。例えば、異なる個数のバイトが存在していてもよく、その場合には、各バイトがメモリセル値の相応のバイトに変換され、またバイトの各メモリセル値がブロック誤り符号の符号語である。
【０１２０】
メモリセルのバイトは、とりわけ少なくとも３つのメモリセル値を有する。
【０１２１】
メモリ１１は、少なくともｎ＝ｎ０＋ｎ１＋．．．＋ｎＬ−１個のメモリセルを有している。ブロック誤り符号ＣＦ０は、長さｎ０のブロック符号であり、ブロック誤り符号ＣＦ１は、長さｎ１のブロック符号であり、この関係は、長さｎＬ−１のブロック符号であるブロック誤り符号ＣＦＬ−１まで続く。
【０１２２】
例えば、ブロック誤り符号ＣＦ１が、ｑ１−ｏｕｔ−ｏｆ−ｎ１符号であることも考えられ、それによって、このブロック誤り符号の符号語は、複数ｑ１個の１と、複数ｎ１−ｑ１個の０と、を有する。
【０１２３】
また例えば、ブロック誤り符号ＣＦ２が、全てのｎ２項バイナリ語の集合の所定の部分集合として決定されていることも考えられる。
【０１２４】
例えば、ブロック誤り符号の各符号語が、それぞれ、３つの１と３つの０とを有する、３−ｏｕｔ−ｏｆ−６符号語であってもよい。全部で、２０個のその種の符号語が存在する。例示として、データビットの４ビット・バイトが、メモリセル値の６ビット・バイトに変換される。２４＝１６個の異なる４ビット・バイトが存在し、それらが可逆的かつ一義的に、メモリセル値の全部で２０個の６ビット・バイトのうちの１６個の６ビット・バイトに変換される。したがって、（２０−１６＝）４個の３−ｏｕｔ−ｏｆ−６符号語は、変換の際に使用されない。したがって、ブロック誤り符号ＣＦ２は、３−ｏｕｔ−ｏｆ−６符号の複数の３−ｏｕｔ−ｏｆ−６符号語の部分集合だけを含んでいる。この例では、考えられる１６個のデータバイトのうちの１つが変換される１６個の３−ｏｕｔ−ｏｆ−６符号語から、ブロック誤り符号ＣＦ２が形成されている。
【０１２５】
長さｎ＊のブロック誤り符号は、ｎ＊項バイナリ語の真部分集合であると考えられる。つまり例えば、長さｎ＊＝６のブロック誤り符号は、３−ｏｕｔ−ｏｆ−６符号の２０個の考えられる符号語のうちの１６個の符号語の部分集合であると考えられる。２０個の考えられる符号語もまた、メモリセル値の６ビットの２６＝６４個の考えられるバイナリ語の部分集合である。
【０１２６】
例えば、ブロック誤り符号は、バーガ符号またはその他の公知の符号である。
【０１２７】
１つのオプションでは、ｎ０＝ｎ２＝．．．＝ｎＬ−１が成り立つ場合、全てのブロック誤り符号は、同じブロック長さを有する。また、ＣＦ０＝ＣＦ１＝．．．＝ＣＦＬ−１が成り立ち、メモリセル値のＬ個のバイトに対して使用されるブロック誤り符号が同じであり、かつデータビットのＬ個のバイトの割り当てのそれぞれに対して、同じ変換が変換回路１２によって実施されることも考えられる。
【０１２８】
さらに、データビットの異なるバイトが異なる変換によって、メモリセル値のバイトに変換されることも考えられる。
【０１２９】
１つの別のオプションでは、データビットの０番目のバイトＸ０の複数Ａｎｚ０個（ただし、Ａｎｚ０＜２ｍ０）の割り当てだけが、変換回路１２のｍ０個の第１の入力側に生じ、生じた割り当てだけが可逆的かつ一義的に、メモリセル値のバイトのＡｎｚ０個の割り当てに、変換回路１２によって変換され、また相応の入力側に生じない割り当てに関する変換は定義する必要はない。相応のことが、データビットの他の各バイトについても成り立つと考えられる。
【０１３０】
変換回路１２によって、自身の対応する出力側に提供されたメモリセル値
【数３６】
2019186939.tif 000038
を、０番目のメモリセルと称されるｎ０個のメモリセルに記憶することができる。
【０１３１】
変換回路１２によって、自身の対応する出力側に提供されたメモリセル値
【数３７】
2019186939.tif 000039
を、１番目のメモリセルと称されるｎ１個のメモリセルに記憶することができる。
【０１３２】
このことは、最終的に、変換回路１２によって、自身の対応する出力側に提供されたメモリセル値ＷＬ−１が、（Ｌ−１）番目のメモリセルとも称されるｎＬ−１個のメモリセルに記憶されるまで継続される。
【０１３３】
ｎ０個の０番目のメモリセルから、そこに記憶されているメモリセル値
【数３８】
2019186939.tif 000040
を読み出すことができる。
【０１３４】
誤りに起因して、読み出されたメモリセル値Ｗ０’は、事前に書き込まれているメモリセル値Ｗ０とは異なる可能性がある。
【０１３５】
誤りが存在しない場合には、Ｗ０＝Ｗ０’が成り立ち、読み出されたメモリセル値Ｗ０’は、ブロック誤り符号ＣＦ０の符号語を形成する。読み出されたメモリセル値Ｗ０’がブロック誤り符号ＣＦ０の符号語を形成しない場合には、誤りが存在し、この誤りはブロック誤り符号ＣＦ０を用いて検出することができる。第１のｎ０個のメモリセルから読み出されたメモリセル値Ｗ０’は、誤り検出回路ＦＥ０１３０のｎ０ビット幅の入力側に印加される。この誤り検出回路ＦＥ０１３０は、読み出されたメモリセル値Ｗ０’がブロック誤り符号ＣＦ０の符号語である場合には、自身の出力側に誤り信号Ｅ０の第１の値を出力し、読み出されたメモリセル値Ｗ０’がブロック誤り符号ＣＦ０の符号語ではない場合には、自身の出力側に第２の値を出力するように構成されている。したがって、第２の値が出力されるということは、０番目のｎ０個のメモリセルから出力されたメモリセル値には誤りがあることを示す。
【０１３６】
ｎ１個の１番目のメモリセルないしｎＬ−１個の（Ｌ−１）番目のメモリセルからは、それらのメモリセルに記憶されているメモリセル値Ｗ１’〜ＷＬ−１’を読み出すことができる。読み出されたメモリセル値Ｗ１’，．．．，ＷＬ−１’が、誤りに起因して、書き込まれたメモリセル値Ｗ１，．．．，ＷＬ−１とは異なる可能性がある。
【０１３７】
誤りが存在しない場合には、書き込まれたメモリセル値は、読み出されたメモリセル値と同じであり、また読み出されたメモリセル値は、それぞれ対応するブロック誤り符号の符号語を形成する。
【０１３８】
上記の説明は、残りの誤り検出回路ＦＥ１１３１〜ＦＥＬ−１１３Ｌ−１についても相応に当てはまる。つまり、誤り検出回路ＦＥ１１３１は、読み出されたメモリセル値Ｗ１’に基づき、（ブロック誤り符号ＣＦ１を基礎とする）誤り信号Ｅ１を決定し、また誤り検出回路ＦＥＬ−１１３Ｌ−１は、読み出されたメモリセル値ＷＬ−１’に基づき、（ブロック誤り符号ＣＦＬ−１を基礎とする）誤り信号ＥＬ−１を決定する。
【０１３９】
図２ａおよび図２ｂ：情報ビットｕに対する検査ビット
メモリから出力されたメモリセル値は、バイトまたはメモリセル値Ｗ０’，．．．，ＷＬ−１’のグループを形成する。そのようなバイトの全てのビットに誤りがないわけではない場合には、いわゆるグループ誤りが存在する。
【０１４０】
例えば、読み出されたバイトＷｉ’の全ての値
【数３９】
2019186939.tif 000041
に誤りがないわけではない場合には、読み出されたメモリセル値のｉ番目のバイトにおけるグループ誤り（読み出されたメモリセル値のｉ番目のグループとも記す）が存在する。
【０１４１】
ｉ番目のバイトのグループ誤りは、このバイトの少なくとも１つのメモリセル値に誤りがあることを表す。したがって、グループ誤りとは、バイト位置が検出されている誤りである。つまり、グループ誤りは、特定のバイトに誤りがあることを示す。もっとも、グループ誤り単独では、（１つまたは複数の）どのビットに誤りがあるかをまだ示さない。
【０１４２】
換言すれば、グループ誤りは、バイトの集合のうちの（１つまたは複数の）どのバイトに誤りがあるか否かという情報を供給する。
【０１４３】
例えば、３−ｏｕｔ−ｏｆ−６符号では、グループ誤りが誤りのある６ビット・バイトを示すが、その際に既に、６個のビットのうちの少なくとも１つのどのビットに実際に誤りがあるかが示されることはない。
【０１４４】
グループ誤りが存在するということを、バイト誤り位置信号によっても示すことができ、これを以下では例示的に説明する。
【０１４５】
図２ａは、符号語のデータビットの訂正を例示した概略図を示す。図２ａには、コーディングユニット２１、変換回路２２ならびにメモリ２３が含まれている。
【０１４６】
ペイロードビットｕが、コーディングユニット２１によって、誤り符号を用いて符号語ｘのデータビットにコーディングされる。続いて、符号語ｘが変換回路２２に供給され、この変換回路２２に基づいて、符号語ｘは、書き込まれるべきメモリセル値Ｗ０，Ｗ１，．．．，ＷＬ−１に変換される。
【０１４７】
この例においては、コーディングユニット２１は、ペイロードビットｕが、誤り符号Ｃ１の（ペイロードビットｕならびに検査ビットｃを含む）符号語ｘ、ただし
【数４０】
2019186939.tif 000042
に変換されるように構成されている。したがって、符号語ｘは、
−データビットのグループＸ０を形成するｍ１個のビット、
−データビットのグループＸ１を形成するｍ２個のビット、以下同、
−データビットのグループＸＬ−１を形成するｍＬ個のビット、
を含んでいる。
【０１４８】
したがって、
【数４１】
2019186939.tif 000043
が成り立つ。ただし、ｋは符号語ｘのビットの個数である。
【０１４９】
符号語は、誤り符号Ｃ１が分離可能な符号である場合には、ペイロードビットおよび検査ビットを含んでいる。誤り符号Ｃ１が分離不可能な符号である場合には、符号語のペイロードビットと検査ビットとが区別されないことも考えられる。
【０１５０】
ｍ１＝ｍ２＝．．．＝ｍＬ＝ｂが成り立ち、かつＸ０，Ｘ１，．．．，ＸＬ−１がそれぞれ、ｂ個のビット（ただし、ｂ≧２）から成るバイトを形成することも考えられる。
【０１５１】
グループＸ０，Ｘ１，．．．，ＸＬ−１が複数のバイトである場合には、各バイトは少なくとも２つのビットを含んでいる。バイトＸ０，Ｘ１，．．．，ＸＬ−１のビットは、変換回路２２の対応するｍ１ビット幅の入力側、ｍ２ビット幅の入力側，．．．，ｍＬビット幅の入力側に印加される。変換回路２２は、自身のｎ１ビット幅の出力側ｎ１に、書き込まれるべきメモリセル値Ｗ０を提供し、自身のｎ２ビット幅の出力側ｎ２にメモリセル値Ｗ１を提供し、この提供を、自身のｎＬビット幅の出力側ｎＬにメモリセル値ＷＬ−１を出力するまで繰り返す。
【０１５２】
ここで変換回路は、とりわけ、
−書き込まれるべきメモリセル値Ｗ０の集合が、ブロック誤り符号ＣＦ０のそれぞれ１つの符号語である、
−書き込まれるべきメモリセル値Ｗ１の集合が、ブロック誤り符号ＣＦ１のそれぞれ１つの符号語である、以下同、
−書き込まれるべきメモリセル値ＷＬ−１の集合が、ブロック誤り符号ＣＦＬ−１のそれぞれ１つの符号語である、
ように構成されている。
【０１５３】
変換回路２２は、書き込まれるべきメモリセル値Ｗ０，Ｗ１，．．．，ＷＬ−１をメモリ２３のメモリセルに書き込むことができるように、メモリ２３に接続されている。
【０１５４】
メモリ２３は、アドレッシング可能なメモリ、レジスタアレイおよび／またはレジスタを含むことができる。
【０１５５】
メモリ２３からは、メモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’を読み出すことができる。上記において説明したように、読み出されたメモリセル値には誤りがある可能性がある。読み出されたメモリセル値のバイトＷ０’，Ｗ１’，．．．，ＷＬ−１’のうちの１つが、各ブロック誤り符号の符号語ではない場合には（上記の説明を参照されたい）、読み出されたブロックのバイトにおける誤りが検出される。
【０１５６】
図２ｂは、メモリ２３、複数Ｌ個の誤り検出回路２４０，２４１，．．．，２４Ｌ−１、逆変換回路２５、バイト訂正値生成器２６およびＬ個の排他的論理和回路２７０，２７１，．．．，２７Ｌ−１を含んでいる概略的な回路装置を例示的に示す。
【０１５７】
メモリ２３の各出力側には、読み出されたメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’が提供される。それらは、逆変換回路２５の対応する入力側に供給される。それらの読み出されたメモリセル値はそれぞれ、さらに誤り検出回路２４０〜２４Ｌ−１のうちの１つにも供給される。誤り検出回路２４０〜２４Ｌ−１はそれぞれ、自身の出力側に誤り信号Ｅ０〜ＥＬ−１を提供する。誤り信号は、読み出されたメモリセル値Ｗ０’〜ＷＬ−１’が、ブロック誤り符号ＣＦ０〜ＣＦＬ−１の符号語であるか否かを示す。
【０１５８】
例えば、誤り検出回路２４０に供給される、読み出されたメモリセル値Ｗ０’に関しては次の事項が当てはまる。誤り信号Ｅ０は、読み出されたメモリセル値Ｗ０’がブロック誤り符号ＣＦ０の符号語を表す場合には、第１の値を取り、そうでない場合には、誤り信号Ｅ０は、第２の値を取る。
【０１５９】
したがって、誤り検出回路２４０〜２４Ｌ−１によって、メモリセル値の読み出された各バイトＷ０’〜ＷＬ−１’に誤りがあるか否かを決定することができる。
【０１６０】
誤り検出回路２４０〜２４Ｌ−１の誤り信号Ｅ０〜ＥＬ−１は、バイト訂正値生成器２６に供給される。
【０１６１】
逆変換回路２５は、場合によっては誤りのある、読み出されたメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’のバイトを、読み出されたデータビットのバイトＸ’＝Ｘ０’，Ｘ１’，．．．，ＸＬ−１’に、
【数４２】
2019186939.tif 000044
が成り立つように変換するように構成されている。
【０１６２】
誤りが生じていない場合には、以下の事項が当てはまる。変換回路２２によって、バイトＸ０，．．．，ＸＬ−１が、メモリセル値のバイトＷ０，．．．，ＷＬ−１に変換され、メモリ２３のメモリセルに記憶される。メモリ２３から読み出された、メモリセル値のバイトＷ０’，．．．，ＷＬ−１’は、逆変換回路２５によってバイトＸ０’，．．．，ＸＬ−１’に変換される。
【０１６３】
読み出されたデータビットのバイトＸ’が、逆変換回路２５からバイト訂正値生成器２６に提供される。また、読み出されたデータビットのそれらのバイトＸ’が、排他的論理和回路（ＸＯＲ回路とも記す）２７０〜２７Ｌ−１の第１の入力側に供給される。
【０１６４】
バイト訂正値生成器２６は、自身の入力側に印加される
−誤り信号Ｅ０〜ＥＬ−１および
−読み出された（また場合によっては誤りのある）データビットのバイトＸ’
に依存して、データバイトを訂正するための誤り符号Ｃ１に応じたバイト訂正値
【数４３】
2019186939.tif 000045
を自身の出力側に供給するように構成されている。このために、バイト訂正値生成器２６の出力側は、ＸＯＲ回路２７０〜２７Ｌ−１の第２の入力側に接続されている。ＸＯＲ回路２７０〜２７Ｌ−１の出力側には、訂正されたバイト
【数４４】
2019186939.tif 000046
が提供され、この際、以下の関係が成り立つ。
【数４５】
2019186939.tif 000047
【０１６５】
さらに、場合によっては発生する誤りが各誤り符号Ｃ１によって訂正することができる場合には、以下の関係が成り立つ。
【数４６】
2019186939.tif 000048
【０１６６】
例えば、メモリセル値のバイトＷ０がデータビットのバイトＸ０のみによって決定されており、別のデータビットには依存しないように、変換回路２２を構成することができる。相応のことが、メモリセル値の別のバイトＷ１〜ＷＬ−１に対しても、バイトＸ１〜ＸＬ−１とのその依存性に関して当てはまると考えられる。
【０１６７】
読み出されたメモリセル値のバイトが、書き込むべきメモリセル値のバイトと同じ場合、すなわち、
【数４７】
2019186939.tif 000049
である場合には、読み出されたバイトには誤りは存在しない。すなわち、誤り検出回路２４０の誤り信号Ｅ０は、読み出されたメモリセル値のバイトＷ０’がブロック誤り符号ＣＦ０の符号語であることを示す第１の値に相当する。したがって、訂正は必要ない。
【０１６８】
これに対して、
【数４８】
2019186939.tif 000050
が成り立つ場合には、読み出されたメモリセル値のバイトＷ０’は、ブロック誤り符号ＣＦ０の符号語ではない。誤り信号Ｅ０は、第２の値に相当する。バイト訂正値生成器２６は、０番目の読み出されたバイトＸ０’のビットを訂正するための訂正信号
【数４９】
2019186939.tif 000051
を生成し、またそれをＸＯＲ回路２７０に供給する。この場合、誤り符号の訂正可能な誤りに対して、訂正可能なバイトを決定できるように、訂正信号
【数５０】
2019186939.tif 000052
は決定されている。
【数５１】
2019186939.tif 000053
【０１６９】
相応のことが、読み出されたメモリセル値の別のバイト、すなわちＷ１’〜ＷＬ−１’に対しても当てはまる。
【０１７０】
誤り信号Ｅ０〜ＥＬ−１がその第１の値によって、読み出された対応するバイトが、対応するブロック誤り符号の符号語であることを示す場合には、バイト訂正値生成器２６によって、０とは異なるバイト訂正値は決定されない。ＸＯＲ回路の（２つの入力側のうちの）一方の入力側に供給される０のバイト訂正値によって、ＸＯＲ回路の出力側には、他方の入力側の信号が出力される。換言すれば、０のバイト訂正値は、ＸＯＲ回路の出力側を変化させない。この場合には確かに誤りは訂正されるべきではないので、出力側が変化しないことは所望でもある。
【０１７１】
相応に、誤り信号Ｅ０〜ＥＬ−１が第２の値を示す場合には、訂正が実施される。この場合、データビットの該当するバイトを訂正することができる。
【０１７２】
すなわち結果として、誤り信号Ｅ０〜ＥＬ−１によって、どのバイトが訂正されなければならないか否か、またいつどのバイトが訂正されなければならないかが示される。これによって、有利には、誤り符号の訂正能力を高めることができる。
【０１７３】
別の利点として、メモリセル値が逆変換回路２５によってデータビットのバイトＸ’に変換される前に、誤り信号Ｅ０〜ＥＬ−１を、読み出されたメモリセル値のバイトから決定することができる。
【０１７４】
ここでは例示的に、ペイロードビットｕ＝ｕ１，．．．，ｕｑおよび検査ビットｃ＝ｃ１，．．．，ｃｐが、バイト誤り訂正符号および／またはバイト誤り検出符号である誤り符号Ｃ１のデータビット
【数５２】
2019186939.tif 000054
を形成する。
【０１７５】
データビットｘは、バイトＸ０，．．．，ＸＬ−１に分割され、それらが、変換回路２２に基づいて、メモリセル値のバイトＷ０，．．．，ＷＬ−１に変換される。これらのバイトＷ０〜ＷＬ−１は、ブロック誤り符号ＣＦ０〜ＣＦＬ−１の符号語であり、またメモリ２３のメモリセルに記憶される。
【０１７６】
メモリ２３からは、場合によっては誤りのあるメモリセル値のバイトＷ１’〜ＷＬ−１’が読み出され、誤り検出回路２４０〜２４Ｌ−１に基づいて、バイトＷ１’〜ＷＬ−１’毎に、それぞれがブロック誤り符号ＣＦ０〜ＣＦＬ−１の符号語であるか否かが検査される。誤り信号Ｅ０〜ＥＬ−１を用いて、読み出された（また場合によっては誤りのある）各バイトＷ１’〜ＷＬ−１’が符号語であるか否かが示される。
【０１７７】
場合によっては誤りのあるメモリセル値のこれらのバイトＷ１’〜ＷＬ−１’は、逆変換回路２５によって、データビットの場合によっては誤りのあるバイトＸ０’〜ＸＬ−１’に変換される。各誤り信号Ｅ０〜ＥＬ−１を用いて、バイト訂正値生成器２６には、バイトＸ０’〜ＸＬ−１’のうちのどのバイトに対してグループ誤りが検出され、またどのバイトに対してそのようなグループ誤りが検出されなかったかが示される。また、あるバイトに対して、（例えば、複数の誤りに起因して、ある符号語が別の符号語に改ざんされた場合に）そのバイトに誤りがあるにもかかわらず、グループ誤りが検出されないことも考えられる。
【０１７８】
場合によっては誤りのあるバイトＸ０’〜ＸＬ−１’および誤り信号Ｅ０〜ＥＬ−１は、バイト訂正値生成器２６に供給され、このバイト訂正値生成器２６は、それらから誤り符号Ｃ１に応じたバイト訂正値
【数５３】
2019186939.tif 000055
を形成し、それらのバイト訂正値は、ＸＯＲ回路２７０〜２７Ｌ−１に基づいて、バイトＸ０’〜ＸＬ−１’と成分毎にＸＯＲ結合される。
【０１７９】
誤り訂正、ひいてはバイト訂正値の決定も、誤り符号Ｃ１を使用して行われる。誤り検出回路２４０〜２４Ｌ−１に基づいて、またブロック誤り符号ＣＦ０〜ＣＦＬ−１を用いて、グループ誤りを決定することができ、それによって、誤り符号Ｃ１に基づいた誤り訂正に関しては、（１つまたは複数の）どのバイトに誤りがあるか、ひいては（１つまたは複数の）どのバイトが訂正されなければならないかが既知となる。
【０１８０】
換言すれば、場合によっては誤りのあるデータバイトの誤り訂正は、誤り符号Ｃ１を使用して行われる。読み出されたデータバイトにおけるグループ誤りの検出を、それらが誤りのあるバイトに逆変換される前に、ブロック誤り符号ＣＦ０〜ＣＦＬ−１を使用して行うことができる。
【０１８１】
１つのオプションでは、誤り検出回路２４０〜２４Ｌ−１のうちの少なくとも１つおよび逆変換回路２５が一緒に実現され、それによって回路の少なくとも一部を共通して使用することができる。
【０１８２】
図３ａおよび図３ｂ：メモリセル値に対する検査ビット
以下では、例示的に、（図２ａのようなデータビットに対する検査ビットとは異なり）メモリセル値に対する検査ビットＰｒが形成される。メモリセル値の検査ビットを、例えば、その形成後に、メモリセル値に変換し、続いて記憶することができる。
【０１８３】
メモリセル値の検査ビットを、データビットの場合と同じやり方で、またはそれとは異なるやり方でメモリセル値に変換することができる。
【０１８４】
図３ａは、変換回路３１、検査ビット生成器３２、検査ビット変換回路３３およびメモリ３４を含んでいる概略的な回路装置を示す。
【０１８５】
変換回路３１の入力側には、誤り符号Ｃ１の符号語ｘの、複数のバイトＸに分割されるデータビットが印加され、このデータビットは、ここでは例示的にペイロードビットｕならびに検査ビットｃを含んでいる。
【０１８６】
代替的に、変換回路３１には、複数のバイトに分割されたペイロードビットｕのみを供給することもできる。
【０１８７】
変換回路３１は、自身の出力側に、記憶すべきメモリセル値のバイトＷ０〜ＷＬ−１を提供する。記憶すべきメモリセル値Ｗ０〜ＷＬ−１は、ｎ１〜ｎＬ−１の各語幅を有する。さらに、記憶すべきメモリセル値Ｗ０〜ＷＬ−１は、各ブロック誤り符号ＣＦ０〜ＣＦＬ−１の符号語である。
【０１８８】
出力側では、変換回路３１はメモリ３４および検査ビット生成器３２に接続されている。
【０１８９】
検査ビット生成器３２は、バイトＷ０，Ｗ１，．．．，ＷＬ−１のメモリセル値および検査ビットＰｒが、誤り符号Ｃ２の符号語
【数５４】
2019186939.tif 000056
を形成するように、検査ビットＰｒを決定するように構成されている。
【０１９０】
検査ビット生成器３２の出力側は、検査ビット変換回路３３の入力側に接続されている。検査ビット変換回路３３は、自身の入力側に印加された検査ビットＰｒをメモリセル値Ｗ［Ｐｒ］に変換するように構成されている。それらのメモリセル値Ｗ［Ｐｒ］は、メモリセル値Ｗ０〜ＷＬ−１と共にメモリ３４に記憶される。
【０１９１】
例えば、バイトＸ０〜ＸＬ−１が、全て同じ個数の４個のビットを有しており、つまりｍ０＝ｍ１＝．．．ｍＬ−１＝４であり、かつ例えば全てのメモリセル値Ｗ０〜ＷＬ−１が、６個のビットの語幅を有する場合、つまりｎ０＝ｎ１＝．．．＝ｎＬ−１＝６である場合には、バイトＸ０〜ＸＬ−１は、それぞれ、２４＝１６個の考えられる割り当てを有する４ビット・バイトを形成する。
【０１９２】
この場合には、ブロック誤り符号ＣＦ０〜ＣＦＬ−１が、それぞれ、
【数５５】
2019186939.tif 000057
個の符号語を有する３−ｏｕｔ−ｏｆ−６符号であると考えられる。４ビット・バイトの１６個の考えられる割り当てを、変換回路３１によって、可逆的かつ一義的に、２０個の考えられる３−ｏｕｔ−ｏｆ−６符号語のうちの１６個にマッピングすることができる。
【０１９３】
この例においては、検査ビット生成器３２が自身の入力側に印加される、メモリセル値Ｗ０〜ＷＬ−１の６×Ｌ個のビットから、誤り符号Ｃ２に対応する検査ビットＰｒを決定する。例えば、検査ビット生成器３２は、第１の検査ビットを、バイトＷ０〜ＷＬ−１のメモリセル値の各第１のビットのＸＯＲ和として決定することができ、第２の検査ビットを、バイトＷ０〜ＷＬ−１のメモリセル値の各第２のビットのＸＯＲ和として決定することができ、これは、バイトＷ０〜ＷＬ−１のメモリセル値の各第６のビットのＸＯＲ和として形成される第６の検査ビットが決定されるまで繰り返される。したがって、６個の検査ビット
【数５６】
2019186939.tif 000058
が得られる。
【０１９４】
これらの検査ビットは、３−ｏｕｔ−ｏｆ−６符号の符号語を形成することもできるが、しかしながら必須ではない。
【０１９５】
さらに、この例においては、変換回路を用いて、６個の検査ビットＰｒ０〜Ｐｒ５が、２つの３−ｏｕｔ−ｏｆ−６符号語に変換され、この変換は、最初の３つの検査ビットが０を用いて、４ビット・バイト
【数５７】
2019186939.tif 000059
に補完され、また最後の３つの検査ビットも同様に０を用いて、別の４ビット・バイト
【数５８】
2019186939.tif 000060
に補完されることによって行われる。これら２つの４ビット・バイトは、検査ビット変換回路３３に基づき、３−ｏｕｔ−ｏｆ−６符号の符号語に変換される。この例によれば、続いて、３−ｏｕｔ−ｏｆ−６符号のそれら２つの符号語がメモリ３４に書き込まれる。
【０１９６】
例えば、検査ビット変換回路３３に基づいて、６個の検査ビットＰｒ０〜Ｐｒ５が以下の検査ビットに変換されることも考えられる。
【数５９】
2019186939.tif 000061
【０１９７】
この例においては、各検査ビットＰｒ０〜Ｐｒ５に対して、反転された検査ビット
【数６０】
2019186939.tif 000062
が決定されることによって、検査ビットが二重にされる。つまりこれによって、検査ビット毎に２つのメモリセルがメモリ３４に記憶される。
【０１９８】
１つの別の例によれば、検査ビットＰｒ０〜Ｐｒ５を、三重にして記憶することもできる。
【数６１】
2019186939.tif 000063
【０１９９】
メモリ３４から、場合によっては誤りのある検査ビットが読み出された場合には、例えば、場合によっては誤りのある検査ビットの訂正を、多数決を使用して行うことができる。
【０２００】
また一例では、検査ビットＰｒ０〜Ｐｒ５が、
【数６２】
2019186939.tif 000064
による（少なくとも）１つの付加的なパリティビットＰａでもって補完され、この場合、
【数６３】
2019186939.tif 000065
がメモリ３４に書き込まれるように、検査ビット変換回路３３が構成されている。ここで「＋」はモジュロ２加算を表す。場合によっては誤りのある検査ビットが読み出された場合には、検査ビットにおける奇数の誤りを、パリティビットに基づき検出することができる。検査ビットにおける誤りが検出された場合には、例えば、そのような誤りを示すことができるが、しかしながら、メモリセル値の訂正を省略することができる。
【０２０１】
誤り符号Ｃ２の検査ビットＰｒは、ここでは例示的に、バイトＷ０〜ＷＬ−１のメモリセル値を使用して形成され、バイトＸ０〜ＸＬ−１からは直接的に形成されない。検査ビットＰｒは、その記憶の前に、対応するメモリセル値に変換することができる。
【０２０２】
メモリ３４からの読み出しの際に、メモリ３４の対応する出力側において、場合によっては誤りのあるメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’，Ｗ［Ｐｒ］’が出力される。
【０２０３】
図３ｂは、場合によっては誤りのあるメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’，Ｗ［Ｐｒ］’を訂正するためのコンポーネントを含む概略図を示す。
【０２０４】
図３ｂには、１つのメモリ３４、複数Ｌ個の誤り検出回路３５０〜３５Ｌ−１、１つの誤り検出回路４０、１つの逆検査ビット変換回路３６、複数Ｌ個のＸＯＲ回路３８０〜３８Ｌ−１、１つの逆変換回路３９および１つのバイト訂正値生成器３７が示されている。
【０２０５】
バイト訂正値生成器３７は、Ｌ個の誤り信号Ｅ０〜ＥＬ−１を入力するためのＬ個の入力側、誤り信号ＥＰｒを入力するための入力側、場合によっては誤りのあるメモリセル値Ｗ０’〜ＷＬ−１’を入力するためのＬ個の入力側、および場合によっては誤りのある検査ビットＰｒ’を入力するための入力側を有している。さらに、バイト訂正値生成器３７は、場合によっては誤りのあるメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’を訂正するためのＬ個のバイト訂正値
【数６４】
2019186939.tif 000066
を出力するためのＬ個の出力側を有している。
【０２０６】
メモリ３４からは、場合によっては誤りのあるメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’およびＷ［Ｐｒ］’が読み出される。
【０２０７】
読み出されたメモリセル値Ｗ０’〜ＷＬ−１’は、一方では、バイト訂正値生成器３７に供給され、他方では、それらのメモリセル値はそれぞれ、ＸＯＲ回路３８０〜３８Ｌ−１の第１の入力側に供給され、この場合、各メモリセル値には１つのＸＯＲ回路が対応付けられている。
【０２０８】
読み出されたメモリセル値Ｗ［Ｐｒ］’は、逆検査ビット変換回路３６の入力側および誤り検出回路４０の入力側に関連付けられている。
【０２０９】
誤り検出回路３５０〜３５Ｌ−１は、誤り信号Ｅ０〜ＥＬ−１を提供し、誤り検出回路４０は、誤り信号ＥＰｒを提供する。これら全ての誤り信号は、バイト訂正値生成器３７に印加される。
【０２１０】
逆検査ビット変換回路３６の出力側は、場合によっては誤りのある検査ビットＰｒ’をバイト訂正値生成器３７に提供する。
【０２１１】
誤り信号ＥＰｒが誤りを示す場合には、バイト訂正値生成器３７は、誤りが示されたこと、また誤りの訂正が行われないことを決定することができる。
【０２１２】
バイト訂正値生成器３７は、誤り信号ＥＰｒが誤りを示す場合には、誤り符号Ｃ２に応じて、場合によっては誤りのあるメモリセル値Ｗ０’，Ｗ１’，．．．，ＷＬ−１’を訂正するためのバイト訂正値
【数６５】
2019186939.tif 000067
を決定し、自身のＬ個の出力側に提供するように構成されている。Ｌ個の出力側はそれぞれ、ＸＯＲ回路３８０〜３８Ｌ−１のうちの１つの第２の入力側に接続されている。
【０２１３】
ＸＯＲ回路３８０，３８１，．．．，３８Ｌ−１は、自身の出力側に訂正されたメモリセル値
【数６６】
2019186939.tif 000068
を提供する。誤りを誤り符号Ｃ２によって訂正できる場合、以下の関係が得られる。
【数６７】
2019186939.tif 000069
【０２１４】
ＸＯＲ回路３８０〜３８Ｌ−１の出力側は、逆変換回路３９の対応する入力側に接続されている。この逆変換回路３９は、自身の出力側において、訂正されたバイト
【数６８】
2019186939.tif 000070
を提供する。誤りを誤り符号Ｃ２によって訂正できる場合、以下の関係が得られる。
【数６９】
2019186939.tif 000071
【０２１５】
図４：誤り信号の形成
以下では、個々の誤り信号Ｅ０〜ＥＬ−１から、どのように組合せ誤り信号Ｅが決定されるかを説明する。
【０２１６】
図４は、図１に示したメモリ１１および誤り検出回路１３０〜１３Ｌ−１を備えた例示的な回路装置を示す。既に図１に示したコンポーネントの他に、図４には、誤り検出回路４１が示されており、そのＬ個の入力側には、誤り検出回路１３０〜１３Ｌ−１の誤り信号Ｅ０，Ｅ１，．．．，ＥＬ−１が印加される。誤り検出回路４１は、自身の出力側に組合せ誤り信号Ｅを提供する。
【０２１７】
誤り検出回路４１は、以下のように構成されている。
−組合せ誤り信号Ｅが第１の値を取り、それによって、自身の入力側に印加される全ての誤り信号Ｅ０〜ＥＬ−１が第１の値を取る場合には、誤りが誤り検出回路１３０〜１３Ｌ−１によって検出されなかったことを示す、または
−組合せ誤り信号Ｅが第２の値を取り、それによって、自身の入力側に印加される誤り信号Ｅ０〜ＥＬ−１のうちの少なくとも１つが第２の値を取る場合には、少なくとも１つの誤りが誤り検出回路１３０〜１３Ｌ−１によって検出されたことを示す。
【０２１８】
誤り信号Ｅ０〜ＥＬ−１に対して、第１の値としてバイナリ値０が使用され、第２の値としてバイナリ値１が使用される場合には、誤り検出回路４１は、Ｌ個の入力側および１つの出力側を備えているＯＲ回路（論理和回路とも記す）として実現することができる。この例においては、組合せ誤り信号Ｅの第１の値として、バイナリ値０がもたらされ、またその第２の値として、バイナリ値１がもたらされる。
【０２１９】
誤り検出回路４１は、自身の出力側に、２つより多くの異なる値を取ることができる組合せ誤り信号Ｅを出力することもできる。例えば、誤り検出回路４１は以下のように構成されていてもよい。
−誤り信号Ｅ０〜ＥＬ−１の第２の値の個数を決定し、誤り信号Ｅとして出力する、または
−誤り信号Ｅ０〜ＥＬ−１のうちの所定数Ｓｗ個（ただし、所定数Ｓｗは１以上であってよい）より多い誤り信号が第２の値を取り、したがって、読み出されたメモリセル値Ｗ０’〜ＷＬ−１’の、誤り検出回路４１によってそれぞれ検査されたバイトにおける誤りを示す場合には、バイナリ値１を出力する。
【０２２０】
特に誤り検出回路４１として、自身の入力側に印加される誤り信号に依存して組合せ誤り信号Ｅを提供するものであれば、いずれの回路も使用することができる。とりわけ、誤り検出回路４１の入力側における誤り信号は、メモリセル値のバイト（すなわち、グループ）における誤りの誤り信号として決定されている。既に説明したように、ここでは各バイトが少なくとも２つのビットを含んでいる。
【０２２１】
図５ａおよび図５ｂ：変換回路
図５ａは、図２ａに示した変換回路２２の例示的な実現形態を示す。既に説明したように、変換回路２２は、符号語のデータビットのバイト
【数７０】
2019186939.tif 000072
を、メモリセル値のバイト
【数７１】
2019186939.tif 000073
に変換する。
【０２２２】
この例では、バイトＸ０〜ＸＬ−１がそれぞれ同じ個数のμ個のデータビットを有する。また例示的に、バイトＷ０〜ＷＬ−１は、それぞれ同じ個数のｖ個のメモリセル値を有する。メモリセル値は例示的にバイナリである。
【０２２３】
さらに、例示的に、ブロック誤り符号ＣＦ０〜ＣＦＬ−１に対して、同じブロック誤り符号ＣＦが使用され、その結果、バイトＸ０〜ＸＬ−１それぞれを、その都度、機能的に同じ変換によって、メモリセル値のバイトに変換することができる。この意味において、図５ａは、機能的に同じ変換回路５１０〜５１Ｌ−１を示している。つまり、バイトＸ０〜ＸＬ−１それぞれに関して、印加されたμ個のビットが、それぞれｖ個のメモリセル値（ここでは例示的にバイナリのメモリセル値）を有するそれぞれ１つのバイトＷ０〜ＷＬ−１に変換される。
【０２２４】
図５ｂは、図２ｂに示した逆変換回路２５の例示的な実現形態を示す。既に説明したように、逆変換回路２５は、メモリセル値の読み出されたバイト
【数７２】
2019186939.tif 000074
を、符号語の読み出されたバイト
【数７３】
2019186939.tif 000075
に変換する。
【０２２５】
メモリセル値の読み出されたバイトＷ’も、符号語の読み出されたバイトＸ’も、誤りを有する可能性がある。それらの誤りは、例えば、符号語が存在しないことによって検出される。
【０２２６】
逆変換回路２５は、機能的に同じ逆変換回路５２０〜５２Ｌ−１を有している。読み出された（場合によっては誤りのある）バイトＷ０’〜ＷＬ−１’それぞれに関して、印加されたｖ個のビットが、場合によっては誤りのある符号語のそれぞれμ個のビットを有する、読み出されたバイトのそれぞれ１つのバイトＸ０’〜ＸＬ−１’に変換される。
【０２２７】
例：３−ｏｕｔ−ｏｆ−６符号：
例として、それぞれμ＝４個のビットを有する符号語のバイトＸ０〜ＸＬ−１およびそれぞれｖ＝６（バイナリ）個のメモリセル値を有するバイトＷ０〜ＷＬ−１を考察する。ブロック誤り符号ＣＦとして、１６個の６ビット語の部分集合が使用され、この場合、それらの語はそれぞれ、１と０とを３つずつ有する。
【０２２８】
３−ｏｕｔ−ｏｆ−６符号では、値１および値０が３回ずつ現れる、それぞれ６個のビットを有する、
【数７４】
2019186939.tif 000076
個の語が存在する。これら２０個の語の集合は、３−ｏｕｔ−ｏｆ−６符号とも表される。
【０２２９】
この例において使用されるブロック誤り符号ＣＦは、それら２０個の考えられる符号語のうちの１６個だけを有する部分集合である。
【０２３０】
下記の表１は、バイトＸ０〜ＸＬ−１の４個のビットの１６個の考えられる割り当ての、６個のビット・メモリセル・バイトＷ０〜ＷＬ−１の全部で２０個の考えられる符号語のうちの１６個への例示的な変換Ｔを示し、この変換によって、ブロック誤り符号ＣＦの１６個の符号語が得られる。４個のデータビットの１６個の割り当てはそれぞれ、ブロック誤り符号ＣＦの１６個の符号語のうちの１つに可逆的かつ一義的に対応付けられている。ブロック誤り符号ＣＦの符号語は、３−ｏｕｔ−ｏｆ−６符号の符号語であり、メモリセル値のバイトを形成する。
【表１】
2019186939.tif 000077
【０２３１】
表１によって表される変換Ｔは、以下の特性を有している。つまり、バイトＸ０〜ＸＬ−１のうちの１つのビットｘ１〜ｘ４が、メモリセル値のバイトＷ０〜ＷＬ−１のうちの１つのメモリセル値ｗ１〜ｗ６に変換されると、反転されたビット
【数７５】
2019186939.tif 000078
も反転されたメモリセル値
【数７６】
2019186939.tif 000079
に変換される。
【０２３２】
この例においては、メモリから読み出されたバイトＷ０’〜ＷＬ−１’それぞれが、場合によっては誤りのある６個のビット
【数７７】
2019186939.tif 000080
を有しており、また場合によっては誤りのある変換されたバイトＸ０’〜ＸＬ−１’それぞれが、場合によっては誤りのある４個のビット
【数７８】
2019186939.tif 000081
を有することを言及しておく。
【０２３３】
下記の表２は、（バイナリの）メモリセル値
【数７９】
2019186939.tif 000082
の読み出されたバイト毎の、場合によっては誤りのあるビット
【数８０】
2019186939.tif 000083
のバイトへの考えられる逆変換Ｔ−１を表す。ここで、表２は、ビット
【数８１】
2019186939.tif 000084
の全部で６４個の考えられる割り当てのうちの１６個を抜粋したものに過ぎないことを言及しておく。ビット
【数８２】
2019186939.tif 000085
の表２に示した全ての割り当ては符号語である。ビット
【数８３】
2019186939.tif 000086
の残りの６４−１６＝４８個の割り当て（図示せず）は符号語ではない。それら４８個の割り当てに関して、ビット
【数８４】
2019186939.tif 000087
はそれぞれ０である。
【表２】
2019186939.tif 000088
【０２３４】
メモリセル値
【数８５】
2019186939.tif 000089
の表２には記載していない値に関しては、ビット
【数８６】
2019186939.tif 000090
の所属の値を、逆変換回路Ｔ−１の合成のために任意に設定することができる。例えば、それらの値を不定値（「冗長（ｄｏｎ’ｔ−ｃａｒｅ）」値とも称される）として、合成ツールによる最適化の際に規定することも可能である。例えば、それらの値を０にセットすることも可能である。
【０２３５】
図６：ブロック誤り符号のための誤り検出回路
図６は、上記の例に従い、場合によっては誤りのある６個のメモリセル値
【数８７】
2019186939.tif 000091
のバイトＷ１’のための、例示的な誤り検出回路６１を示す。ここでは、ブロック誤り符号ＣＦが、１６個の符号語を有する３−ｏｕｔ−ｏｆ−６符号である。
【０２３６】
誤り検出回路６１の入力側には、メモリセル値Ｗ１’が印加される。誤り検出回路６１は、例示的に、自身の入力側にブロック誤り符号ＣＦの符号語が印加された場合には、誤りは存在しないことを示す誤り信号Ｅ１＝０を出力するように構成されている。誤り検出回路６１の入力側に、ブロック誤り符号ＣＦの符号語が印加されない場合には、誤り検出回路６１は、誤り信号Ｅ１＝１を出力し、この誤り信号Ｅ１に基づき、誤りの存在が示される。
【０２３７】
表３は、誤り信号Ｅ１が０である（ブール関数のオフセット）場合のメモリセル値
【数８８】
2019186939.tif 000092
の１６個の割り当てを示す。表３には記載していない、メモリセル値の他の全ての割り当てに関しては、誤り信号Ｅ１は１である。つまりこのことは、ブール関数のオンセットに相当する（このオンセットは、表３には示していない）。
【表３】
2019186939.tif 000093
【０２３８】
表３に従い、誤り検出回路６１は、
−ブロック誤り符号ＣＦの１６個の符号語のうちの１つが、符号語ではない６ビット語に改ざんされた場合、または
−ブロック誤り符号ＣＦの１６個の符号語のうちの１つが、それぞれがブロック誤り符号の符号語ではない、４個の３−ｏｕｔ−ｏｆ−６語のうちの１つに改ざんされた場合には、
誤りを示す。
【０２３９】
図７：１ビット誤りのための誤り検出回路
図７は、バイトＷ１’のビットにおける奇数の全てのビット誤りを検出する例示的な誤り検出回路７１を示す。誤り検出回路７１は、このために反転ＸＯＲ回路を含んでいるので、誤り検出回路７１の出力側に印加される誤り信号
【数８９】
2019186939.tif 000094
に対しては、以下の関係が成り立つ。
【数９０】
2019186939.tif 000095
【０２４０】
ここで「＋」はモジュロ２加算を表す。
【０２４１】
表３に示した、メモリセル値
【数９１】
2019186939.tif 000096
の割り当てに関して、またそれらのメモリセル値における奇数個のビット誤りに関して、誤り信号Ｅ１および誤り信号
【数９２】
2019186939.tif 000097
は一致する。これに対して、３−ｏｕｔ−ｏｆ−６符号の符号語をその３−ｏｕｔ−ｏｆ−６符号の符号語ではないビット組合せに改ざんする偶数個のビット誤りに関しては、以下の関係が成り立つ。
【数９３】
2019186939.tif 000098
誤り検出回路７１は、有利には、（ほぼ）１ビット誤りしか生じない場合に適用することができる。
【０２４２】
図８：訂正が可能であるか否かの検査
図８は、誤り訂正を検査するための例示的な回路装置を示す。特に、この回路装置でもって、訂正値
【数９４】
2019186939.tif 000099
を決定するためのバイト訂正値生成器２６が正しく機能するか否かを検査することができる。
【０２４３】
このために、図８に示した回路装置は、複数Ｌ個のＮＯＲ回路（否定論理和回路とも記す）８１０〜８１Ｌ−１と、複数のＡＮＤ回路８２０〜８２Ｌ−１と、１つのＯＲ回路８３と、を有している。
【０２４４】
以下では、ＡＮＤ結合が、記号「∧」によっても略記される。相応に、ＯＲ結合が記号「∨」によって略記される。
【０２４５】
各バイト訂正値
【数９５】
2019186939.tif 000100
は、所属のＮＯＲ回路８１０〜８１Ｌ−１の入力側に供給される。このＮＯＲ回路８１０〜８１Ｌ−１の出力側は、所属のＡＮＤ回路８２０〜８２Ｌ−１の第１の入力側に接続されている。誤り信号Ｅ０〜ＥＬ−１は、それぞれ１つずつ、ＡＮＤ回路８２０〜８２Ｌ−１の第２の入力側に印加される。ＡＮＤ回路８２０〜８２Ｌ−１の出力側は、ＯＲ回路８３の入力側に接続されている。ＯＲ回路８３の出力側には、組合せ誤り信号Ｅが供給される。
【０２４６】
誤り信号Ｅ０，Ｅ１，．．．，ＥＬ−１は、図２ｂに示した誤り検出回路２４０〜２４Ｌ−１の誤り信号である。
【０２４７】
例えば、値Ｅ０＝１を有する誤り信号Ｅ０が、バイトＸ０’のデータビットはブロック誤り符号ＣＦ０の符号語ではないことを示す場合には、誤り訂正を成功させるためには、バイトＸ０’がバイト訂正値
【数９６】
2019186939.tif 000101
でもって訂正されなければならない。訂正は、訂正値生成器２６がバイト訂正値
【数９７】
2019186939.tif 000102
を提供し、それによってＸＯＲ回路２７０が訂正されたバイト値
【数９８】
2019186939.tif 000103
を提供する場合にのみ成功すると考えられる。発生した誤りを誤り符号Ｃ１によって訂正できる場合には、以下の関係が成り立つ。
【数９９】
2019186939.tif 000104
【０２４８】
誤り信号に関してＥ０＝１が成り立ち、かつバイト訂正値に関して
【数１００】
2019186939.tif 000105
が成り立つ場合には、Ｘ０’における誤りが誤り検出回路２４０によって検出され、またバイト訂正値生成器２６がＸ０’に対して、訂正信号
【数１０１】
2019186939.tif 000106
を生成する。この場合、ＡＮＤ回路８２０は、自身の出力側に値０を供給する。
【０２４９】
誤り信号に関してＥ０＝１が成り立ち、かつバイト訂正値に関して
【数１０２】
2019186939.tif 000107
が成り立つ場合には、Ｘ０’における誤りが誤り検出回路２４０によって検出され、またバイト訂正値生成器２６がＸ０’に対して、訂正信号
【数１０３】
2019186939.tif 000108
を生成するので、バイトＸ０’は、誤りがあるにもかかわらず、訂正されない。この場合、誤りは確かに検出されるが、しかしながら訂正は実現されない。ＡＮＤ回路８２０は、自身の出力側に値１を供給する。組合せ誤り信号Ｅは、値Ｅ＝１を取る。これによって、値１を有する組合せ誤り信号は、訂正に誤りが存在すること、もしくはバイトＸ０’〜ＸＬ−１’のうちの少なくとも１つの訂正が不可能であることを示す。考えられる１つの原因として、バイト訂正値生成器２６に誤りがある、かつ／または誤り符号Ｃ１を使用して訂正できない誤りが存在することが挙げられる。
【０２５０】
誤りが誤り検出回路２４０によって検出されず、かつ誤り信号がＥ１＝０である場合には、ＡＮＤ回路８２０の出力側にも、値０が印加される。
【０２５１】
上記の説明は、回路８１１〜８１Ｌ−１、８２１〜８２Ｌ−１および８３に関する別の誤り信号Ｅ２〜ＥＬ−１ないし別のバイト訂正値
【数１０４】
2019186939.tif 000109
についても相応に当てはまる。
【０２５２】
したがって、ＯＲ回路８３が、自身のＬ個全ての入力側に値０が印加される場合にのみ、自身の出力側に組合せ誤り信号Ｅに対して値０を出力する。ＯＲ回路８３が自身の出力側に値１を供給する場合、このことは、誤り検出回路２４０〜２４Ｌ−１のうちの１つによって、バイトＸ０’〜ＸＬ−１’のうちの少なくとも１つに誤りがあることが検出されたこと、またそのバイトをバイト訂正値生成器２６によって訂正できないことを意味している。これによって、例えば、バイト訂正値生成器２６の機能を実行中の動作において検査することができる。
【０２５３】
この説明は、バイト訂正値生成器３７についても同様に適用することができる。
【０２５４】
リード・ソロモン符号
以下では、例としてリード・ソロモン符号を使用する。
【０２５５】
１バイト誤り訂正リード・ソロモン符号を、例えば［１］に記載されているように、Ｈ行列
【数１０５】
2019186939.tif 000110
ただし、ｎ＝２ｍ−１、によって表すことができ、この場合
【数１０６】
2019186939.tif 000111
かつ
【数１０７】
2019186939.tif 000112
が成り立つ。この場合、αｉは、例えばべき表現でのガロア体ＧＦ（２ｒ）の元である。αは、ガロア体の生成元であり、またここでは、ガロア体ＧＦ（２ｒ）の原始元として選択されている。式（５）においては、ガロア体の１元がα０で表されている。ガロア体の１元を、１で表すこともできる。
【０２５６】
式（５）に従ったＨ行列によって表されるリード・ソロモン符号は、バイト位置が既知でない１バイト誤り、または２つの既知の誤りのあるバイト位置における２バイト誤りもしくは２つのグループ誤りを訂正することができる。
【０２５７】
αの累乗は、モジュロ２ｒ−１と解することができ、また累乗ｉは、値０，１，．．．，２ｒ−２を取ることができる。
【０２５８】
１つの実施例において、ｒ＝４とし、それによって、ガロア体は２４＝１６個の元から成る。αｉの累乗は、モジュロ１５と解することができ、また式（５）に従うＨ行列は、２４−１＝１５個の列を有する。１つの列はそれぞれ４ビット・バイトに相当する。誤り符号Ｃ１の符号語ｘ＝ｘ１，．．．，ｘｋ（ただし、ｋ＝６０）のデータビットは、それぞれ４個のビットを有する１５個のバイトＸ０，Ｘ１，．．．，Ｘ１４を形成する。したがって、以下の関係が成り立つ。
【数１０８】
2019186939.tif 000113
【０２５９】
誤りがない場合には、ｘ＝Ｘ０，．．．，Ｘ１４は、リード・ソロモン符号の符号語であるので、誤りシンドロームｓ（ただし、ｓ＝［ｓ１，ｓ２］Ｔ）に対して
【数１０９】
2019186939.tif 000114
が成り立ち、ここでｓ１は、誤りシンドロームｓの第１の部分シンドロームとして表され、またｓ２は、誤りシンドロームｓの第２の部分シンドロームとして表される。
【０２６０】
あるベクトルが右から行列と乗算される場合には、これは列ベクトルと解することができる。あるベクトルに関して、特にそれが列ベクトルであることが強調される場合には、このベクトルを転置ベクトルと称することができる。あるベクトルが左から行列と乗算される場合には、これは行ベクトルと解することができる。
【０２６１】
バイトＸ０〜Ｘ１４を、ガロア体ＧＦ（２４）の元として、そのベクトル表現で４ビット・ベクトルと表すことができる。式（６）および式（７）に従い部分シンドロームｓ１およびｓ２を計算するために、それらのバイトを多項式表現またはべき表現で使用することができる。
【０２６２】
ガロア体ＧＦ（２４）の元の種々の表現、およびガロア体上の乗算ならびに加算のためのそれらの元の使用は、例えば［２］に記載されている。
【０２６３】
例えば、符号語ｘが、次式に従い誤りｅ≠０でもって改ざんされている可能性がある。
【数１１０】
2019186939.tif 000115
【０２６４】
したがって、Ｈ１×ｘＴ＝０かつＨ２×ｘＴ＝０に基づき、式（６）および式（７）から次式が得られる。
【数１１１】
2019186939.tif 000116
【０２６５】
ここで、４ビット・バイトｅ０，．．．，ｅ１４は、バイト位置０〜１４のバイト訂正値を表す。
【０２６６】
バイト位置ｉにおいて、あるバイトの１個のビット、２個のビット、３個のビットまたは４個のビットに誤りがある１バイト誤りに関しては、次式が成り立つ。
【数１１２】
2019186939.tif 000117
【０２６７】
相応のことが、バイト位置ｉおよびｊにおける２バイト誤りに対しても当てはまる。
【数１１３】
2019186939.tif 000118
【０２６８】
１バイト誤りの場合には、誤りのあるバイト位置ｉおよびバイト訂正値ｅｉを、式（１０）および（１１）に応じて、２つの部分シンドロームから決定することができる。
【０２６９】
バイト訂正値ｅｉは、第１のシンドローム成分ｓ１と同じであり、またべき表現αｉの誤りのあるバイト位置ｉを、例えば、式
【数１１４】
2019186939.tif 000119
の解ｙとして決定することができる。２つの式（１０）および（１１）からは、２つの未知数αｉおよびｅｉを決定することができる。
【０２７０】
２バイト誤りの場合には、２つのバイト訂正値ｅｉおよびｅｊと、２つの誤りのあるバイト位置ｉおよびｊとを、例えばべき表現αｉおよびαｊで２つの式（１２）および（１３）から決定することは不可能である。何故ならば、２つだけの式に対して４つの未知数が存在するからである。
【０２７１】
しかしながら、誤りのあるバイト位置ｉおよびｊが既知であり、したがってべき表現αｉおよびαｊが既知である場合には、対応するバイト訂正値ｅｉおよびｅｊを２つの式（１２）および（１３）を使用して決定することができる。誤りのあるバイト位置が既知であり、さらには対応するバイト訂正値を決定できる場合、これはグループ誤りに相当する。
【０２７２】
例えば、図１に示した誤り検出回路１４０〜１４Ｌ−１のブロック誤り信号によって、誤りのあるバイト位置を検出することができる。誤りのある例えば２つのバイト位置ｉおよびｊの既知の誤りのあるバイト位置でもって、バイト訂正値ｅｉおよびｅｊを既に２つの式（１２）および（１３）によって決定することができる。この例において、誤りシンドロームｓ１およびｓ２は、それぞれ４個のビットしか有しておらず、したがって２個のバイト、全部で８個のビットが存在する。
【０２７３】
バイト位置ｉおよびｊにおける２バイト誤りに対して、またはバイト位置ｉおよびｊにおける２つのグループ誤りに対して、バイト訂正値ｅｉおよびｅｊについては次式が成り立つ。
【数１１５】
2019186939.tif 000120
【０２７４】
式（１４）を以下のように導き出すことができる。
【数１１６】
2019186939.tif 000121
【０２７５】
これと同様にして式（１５）が得られる。
【０２７６】
バイト位置ｉにおける１バイト誤りに対して、バイト訂正値ｅｉを
【数１１７】
2019186939.tif 000122
によって決定することができる。これは、ｓ１＝ｅｉかつｓ２＝αｉ×ｅｉから直接的に従う。
【０２７７】
和Σ、ただし
【数１１８】
2019186939.tif 000123
は、バイト位置ｉにおける１バイト誤りに対しては
【数１１９】
2019186939.tif 000124
であり、またバイト位置ｉおよびｊにおける２バイト誤りに対しては
【数１２０】
2019186939.tif 000125
である。
【０２７８】
和Σの逆数Σ−１を使用して、バイト位置ｉにおけるバイト訂正値ｅｉに対しては、バイト位置ｉにおける１バイト誤りについても、バイト位置ｉおよびｊにおける２バイト誤りについても
【数１２１】
2019186939.tif 000126
が成り立つので、バイト位置ｉにおけるバイト誤りの場合には、そのバイト位置ｉにおける１バイト誤りまたはそのバイト位置ｉおよび他のバイト位置における２バイト誤りに基づいて、バイト訂正値ｅｉは式（１７）に従い、部分シンドロームｓ１ならびにｓ２、Σ−１の値および誤り位置ｉによって、べき表現αｉで決定されている。
【０２７９】
３つのグループ誤り
誤りのある３つのバイト位置が既知である３つのバイト誤りを訂正するためのリード・ソロモン符号に対しては、Ｈ行列
【数１２２】
2019186939.tif 000127
ただしｎ＝２ｍ−１、が利用され、これは例えば、［Ｆｕｊｉｗａｒａ，Ｅ．：「Ｃｏｄｅ  Ｄｅｓｉｇｎ  ｆｏｒ  Ｄｅｐｅｎｄａｂｌｅ  Ｓｙｓｔｅｍｓ」，Ｗｉｌｅｙ，２００６，６５頁］にリード・ソロモン符号のＨ行列に関する一般的な形態も含めて説明されている。
【０２８０】
Ｈ行列における列が式（１８）に従い削除される場合には、これを短縮された符号と称することができる。使用される符号の長さを必要な語幅に適合させるために、そのように短縮された符号を使用することができる。
【０２８１】
［１］においては１で表されている、ガロア体の１元は、式（１８）においてα０で表されている。
【０２８２】
誤りのあるバイト位置が既知であるバイト誤りを、既に説明したように、グループ誤りと称することができる。
【０２８３】
３つのグループ誤り、すなわち誤りのあるバイト位置ｉ，ｊおよびｋにおけるバイト誤りの場合には、バイト訂正値ｅｉ，ｅｊおよびｅｋでもって、次式が成り立つ。
【数１２３】
2019186939.tif 000128
【０２８４】
ｅｉ、ｅｊおよびｅｋについて式（１９）〜（２１）を解くことによって、次式が得られる。
【数１２４】
2019186939.tif 000129
【０２８５】
式（２４）を、以下のように導き出すことができる。
式（１９）からｅｉについて次式が得られる。
【数１２５】
2019186939.tif 000130
【０２８６】
式（２５）が、式（２０）において使用されると、それにより次式が得られる。
【数１２６】
2019186939.tif 000131
【０２８７】
相応に、式（２５）が、式（２１）において使用されると、それにより次式が得られる。
【数１２７】
2019186939.tif 000132
【０２８８】
ここで、式（２７）を式（２６）で除算することができ、それによって
【数１２８】
2019186939.tif 000133
でもって、次式が得られる。
【数１２９】
2019186939.tif 000134
【０２８９】
【数１３０】
2019186939.tif 000135
でもって、ｅｋについて乗算し、まとめ、解くと次式が得られる。
【数１３１】
2019186939.tif 000136
【０２９０】
このことは式（２４）にも当てはまる。他の２つの式（２２）および（２３）を相応に導き出すことができる。
【０２９１】
和Σ、ただし
【数１３２】
2019186939.tif 000137
は、バイト位置ｉ，ｊ，ｋにおける３バイト誤りに関して
【数１３３】
2019186939.tif 000138
となる。
【０２９２】
３つのバイト位置ｉ，ｊおよびｋにおけるバイト誤りの場合には、誤りのあるバイト位置の積Πも、べき表現で使用することができる。
【数１３４】
2019186939.tif 000139
【０２９３】
以下では、べき表現αｉ，αｊ，αｋを有する３つのバイト位置ｉ，ｊ，ｋに誤りがある場合を考察する。
【０２９４】
和Σおよびべき表現αｋの誤りのあるバイト位置ｋから、誤りのある２つの別のバイト位置ｉおよびｊに関する和αｉ＋αｊを
【数１３５】
2019186939.tif 000140
に従い決定することができる。
【０２９５】
和Σおよびべき表現αｊの誤りのあるバイト位置ｊから、誤りのある２つの別のバイト位置ｉおよびｋに関する和αｉ＋αｋを
【数１３６】
2019186939.tif 000141
に従い決定することができる。
【０２９６】
和Σおよびべき表現αｉの誤りのあるバイト位置ｉから、誤りのある２つの別のバイト位置ｊおよびｋに関する和αｊ＋αｋを
【数１３７】
2019186939.tif 000142
に従い決定することができる。
【０２９７】
積Πおよびべき表現αｋの誤りのあるバイト位置ｋから、誤りのある２つの別のバイト位置ｉおよびｊに関する積αｉ×αｊを
【数１３８】
2019186939.tif 000143
に従い決定することができる。
【０２９８】
積Πおよびべき表現αｊの誤りのあるバイト位置ｊから、誤りのある２つの別のバイト位置ｉおよびｋに関する積αｉ×αｋを
【数１３９】
2019186939.tif 000144
に従い決定することができる。
【０２９９】
積Πおよびべき表現αｉの誤りのあるバイト位置ｉから、誤りのある２つの別のバイト位置ｊおよびｋに関する積αｊ×αｋを
【数１４０】
2019186939.tif 000145
に従い決定することができる。
【０３００】
例示的に、式（２４）
【数１４１】
2019186939.tif 000146
に従った、誤りのあるバイト位置ｋにおけるバイト訂正値ｅｋの表現を考察する。式（２４）の分母に関しては、次式が成り立ち、
【数１４２】
2019186939.tif 000147
したがって、バイト訂正値ｅｋに対しては、次式が成り立つ。
【数１４３】
2019186939.tif 000148
【０３０１】
したがって、式（３６）に従い、ｋ番目のバイトに対するバイト訂正値ｅｋをシンドローム成分ｓ１，ｓ２，ｓ３、ΣならびにΠの値によって、および決定すべきバイト誤り位置ｋによって決定することができる。誤りのあるバイト位置ｉおよびｊは、ｋ番目のバイトに対するバイト訂正値ｅｋの決定には必要ない。
【０３０２】
したがって、例えば中央で決定されて提供される、シンドローム成分ｓ１，ｓ２，ｓ３の値、および値ΣならびにΠを用いて、局所的に、考えられる各バイト誤り位置ｋに対して相応のバイト訂正値を決定し、相応のバイト誤り位置信号の値に基づいて、そのように決定されたバイト訂正値ｅｋが実際に誤り訂正使用されるべきか否かを決定することができる。バイト（例えばビットのグループ）のバイト誤り位置信号は、その場合、このバイトに関してグループ誤りが存在するか（または存在しないか）を示す。
【０３０３】
３つのグループ誤りにおける１つのグループ誤りの訂正
図９ａは、誤りのあるｋ番目のバイトを訂正するためのバイト訂正値ｅｋを決定するための例示的な回路装置を示す。この回路装置でもって、グループ誤りが全部で３つ存在する場合に、１つのグループ誤りが訂正される。
【０３０４】
例示的に、ｉ番目、ｊ番目およびｋ番目のバイトに誤りがある。したがって、誤り信号Ｅｉ＝Ｅｊ＝Ｅｋ＝１は、３つのグループ誤りが存在することを示す。この例では、その他の誤り信号は０である。つまり別のグループ誤りは存在しない。例として、ガロア体ＧＦ（２４）を考察する。
【０３０５】
図９ａに示した装置は、
−それぞれが第１の４ビット幅の入力側、第２の４ビット幅の入力側および４ビット幅の出力側を１つずつ備えた、４つの定数乗算器９１、９４、９７および９９、
−それぞれが第１の４ビット幅の入力側、第２の４ビット幅の入力側および４ビット幅の出力側を１つずつ備えた、３つのＸＯＲ回路９２、９５、９８、
−４ビット幅の入力側および４ビット幅の出力側を１つずつ備えた、ガロア体ＧＦ（２４）上の反転器９６、
−第１の４ビット幅の入力側、第２の４ビット幅の入力側および４ビット幅の出力側を１つずつ備えた、ガロア体乗算器９３、および
−値ｓ２、Π、Π×ｓ１、Σ、Σ×ｓ２が印加される、それぞれ４ビット幅の５つの入力側９１０、９１１、９１２、９１３、９１４、
を含んでいる。
【０３０６】
入力側９１２は、定数乗算器９１の第１の入力側に接続されており、この定数乗算器９１の第２の入力側には値α−ｋが印加され、また定数乗算器９１の出力側は、ＸＯＲ回路９２の第１の入力側に案内されている。
【０３０７】
入力側９１０は、定数乗算器９４の第１の入力側に接続されており、この定数乗算器９４の第２の入力側には値αｋが印加され、また定数乗算器９４の出力側は、ＸＯＲ回路９５の第１の入力側に接続されている。
【０３０８】
入力側９１４は、ＸＯＲ回路９５の第２の入力側に接続されており、このＸＯＲ回路９５の出力側は、ＸＯＲ回路９２の第２の入力側に接続されている。ＸＯＲ回路９２の出力側は、ガロア体乗算器９３の第１の入力側に接続されている。
【０３０９】
入力側９１３は、定数乗算器９７の第１の入力側に接続されており、この定数乗算器９７の第２の入力側には値αｋが印加され、また定数乗算器９７の出力側は、ＸＯＲ回路９８の第１の入力側に接続されている。
【０３１０】
入力側９１１は、定数乗算器９９の第１の入力側に接続されており、この定数乗算器９９の第２の入力側には値α−ｋが印加され、また定数乗算器９９の出力側は、ＸＯＲ回路９８の第２の入力側に接続されている。ＸＯＲ回路９８の出力側は、反転器９６の入力側に接続されている。
【０３１１】
反転器９６の出力側は、ガロア体乗算器９３の第２の入力側に接続されており、ガロア体乗算器９３の出力側は、バイト訂正値ｅｋを供給する。
【０３１２】
回路入力側９１０、９１１、９１２、９１３および９１４に印加される値ｓ２、Π、Π×ｓ１、Σ、Σ×ｓ２を、種々のバイト訂正値ｅ０，ｅ１，．．．，ｅｋ，．．．を形成するために使用することができる。したがって、これらの値を１回だけ決定することは効率的であると考えられる。
【０３１３】
図９ｂには、ｉ番目、ｊ番目およびｋ番目のバイトにおけるバイト誤りが誤り信号Ｅｉ＝Ｅｊ＝Ｅｋ＝１によって示される場合の、積
【数１４４】
2019186939.tif 000149
を形成するための例示的な回路装置が示されている。すなわち、例示的に、上記における図９ａについての例と同じ誤りが存在している。
【０３１４】
図９ｂに示した装置は、
−誤り信号Ｅ０〜Ｅ７を入力するための８ビット幅の入力側および４ビット幅の信号ＥＳｕ０，７を出力するための４ビット幅の出力側を備えた部分回路９１５、
−誤り信号Ｅ８，Ｅ９，．．．，Ｅ１４を入力するための７ビット幅の入力側および４ビット幅の信号ＥＳｕ８，１４を出力するための４ビット幅の出力側を備えた部分回路９１６、
−第１の４ビット幅の入力側、第２の４ビット幅の入力側、および値
【数１４５】
2019186939.tif 000150
を提供する４ビット幅の出力側を備えた加算器９１７、
−４ビット幅の入力側および値Π＝αｉ×αｊ×αｋを出力するための４ビット幅の出力側を備えた組合せ回路９１８、
を含んでいる。
【０３１５】
部分回路９１５の出力側は、加算器９１７の第１の入力側に接続されている。部分回路９１６の出力側は、加算器９１７の第２の入力側に接続されている。加算器９１７の出力側は、組合せ回路９１８の入力側に接続されている。
【０３１６】
加算器９１７は、モジュロ１５加算を実施する。例えば、この加算器９１７を、４ビット加算器として、４番目の加算ステージの桁上げキャリービットを、第１の加算ステージの入力キャリービットとなるように実装することができる。加算器９１７は、いわゆる循環桁上げ加算器として形成することができる。
【０３１７】
第１の部分回路９１５は、誤り信号Ｅ０〜Ｅ７が入力されると、信号
【数１４６】
2019186939.tif 000151
を自身の出力側に提供するように構成されている。
【０３１８】
式（３７）によって、バイナリの各８個組Ｅ０，Ｅ１，．．．，Ｅ７には、４ビット値ないし４個組ＥＳｕ０，７が対応付けられ、この対応付けをテーブルとして表すことができ、また組合せ回路として、例えば統合ツールを用いて作成することができる。
【０３１９】
第２の部分回路９１６は、誤り信号Ｅ８〜Ｅ１４が入力されると、自身の出力側に
【数１４７】
2019186939.tif 000152
を出力するように構成されている。
【０３２０】
式（３８）によって、バイナリの各７個組Ｅ８，Ｅ９，．．．，Ｅ１４には、４ビット値ないし４個組ＥＳｕ８，１４が対応付けられ、この対応付けをテーブルとして表すことができ、また組合せ回路として、例えば統合ツールを用いて行うことができる。
【０３２１】
加算器９１７は、自身の出力側に、値
【数１４８】
2019186939.tif 000153
を提供する。誤り信号に関してＥｉ＝Ｅｊ＝Ｅｋ＝１かつＥｌ＝０（ただし、ｌ≠ｉ，ｊ，ｋ）が成り立つ場合には、加算器９１７の出力側には、値
【数１４９】
2019186939.tif 000154
が印加され、この値は
【数１５０】
2019186939.tif 000155
の累乗に相当する。
【０３２２】
組合せ回路９１８は、自身の入力側に印加された値［ＥＳｕ０，７＋ＥＳｕ８，１４］ｍｏｄ１５に、べき表現の元
【数１５１】
2019186939.tif 000156
を対応付けることによって、自身の出力側に値
【数１５２】
2019186939.tif 000157
を提供するように構成されている。
【０３２３】
図１０：１つのグループ誤りまたは２つのグループ誤りの訂正
図１０は、誤りのある１つのバイト位置または誤りのある２つのバイト位置が既知であり、したがって１つのグループ誤りまたは２つのグループ誤りが生じているという前提のもとで、任意の、場合によっては誤りのあるｌ番目のバイトに対するバイト訂正値を決定する例示的な回路装置を示す。誤りのある少なくとも１つのバイト位置は、ここでは、誤り信号の値によって既知である。
【０３２４】
訂正すべき各バイトに対して、バイト訂正値は２つの値
【数１５３】
2019186939.tif 000158
を使用して求められ、それらの値はそれぞれ（例えば中央で）一度だけ決定されればよく、また全てのバイトの訂正に使用することができる。これらの値の形成は、ガロア体乗算器の形態の比較的高いハードウェアコストを必要とする。有利には、異なるバイト位置における全てのバイト訂正のために、全部で２つのガロア体乗算器だけを使用すればよい。
【０３２５】
異なるバイト位置に関する異なるバイト訂正値は、単に、各バイト位置に対応する定数乗算器を使用することで得られ、この定数乗算器は、ガロア体乗算器よりも低いハードウェアコストで実現することができる（ｌ番目のバイトに対して、定数乗算器１０２に基づいてαｌとの乗算が実施される）。
【０３２６】
また１つの利点として、同じ回路を、バイト誤り位置が既知である１バイト誤りに対しても、バイト誤り位置が既知である２バイト誤りに対しても利用できることが挙げられる。したがって、１つまたは２つのグループ誤りが訂正される。既に説明したように、１つのグループ誤りは、バイト位置が既知であり、また訂正値（すなわち、誤りのあるバイト位置におけるビットの訂正の訂正値）が決定されるべきバイト誤りである。
【０３２７】
図１０とは異なり、図９ａによる３つのグループ誤りの訂正は、訂正すべきバイト位置毎に１つのガロア体乗算器９３を必要とする。
【０３２８】
図１０は、場合によっては誤りのあるｌ番目のデータバイトＸｌ’を訂正するバイト訂正値ｅｌを決定するための式（１７）を基礎とする例示的な実現形態を示す。この例では、１つのデータバイトが４つのビットを含んでおり、またガロア体はＧＦ（２４）である。図１０には、定数乗算器１０２、ＸＯＲ回路１０３およびＡＮＤ回路１０４を備えたバイト訂正値生成器１０１が含まれている。さらに図１０には、ＸＯＲ回路１０５が示されている。
【０３２９】
入力線１０６には、４ビット幅の信号ｓ１＋ｓ２×Σ−１が印加される。入力線１０６は、ＸＯＲ回路１０３の第１の４ビット幅の入力側に接続されている。
【０３３０】
入力線１０７には、４ビット幅の信号ｓ１×Σ−１が印加される。入力線１０７は、定数乗算器１０２の第１の入力側に接続されている。定数乗算器１０２の第２の入力側には、定数αｌが印加される。
【０３３１】
したがって、定数乗算器１０２の４ビット幅の出力側には、値
【数１５４】
2019186939.tif 000159
が提供される。定数乗算器１０２の出力側は、ＸＯＲ回路１０３の第２の入力側に接続されている。ＸＯＲ回路１０３の４ビット幅の出力側には、信号
【数１５５】
2019186939.tif 000160
が提供される。
【０３３２】
ＸＯＲ回路１０３の出力側は、ＡＮＤ回路１０４の第１の４ビット幅の入力側に接続されている。ＡＮＤ回路１０４の第２の入力側には、誤り信号Ｅｌが印加される。ＡＮＤ回路１０４の４ビット幅の出力側には、場合によっては誤りのあるｌ番目のバイトＸｌ’を訂正するためのバイト訂正値ｅｌが提供され、ここでは、次式が成り立つ。
【数１５６】
2019186939.tif 000161
【０３３３】
ＡＮＤ回路１０４の出力側は、ＸＯＲ回路１０５の第１の４ビット幅の入力側に接続されている。ＸＯＲ回路１０５の第２の４ビット幅の入力側には、訂正すべきバイトＸｌ’が印加される。ＸＯＲ回路１０５の４ビット幅の出力側には、訂正されたｌ番目のバイト
【数１５７】
2019186939.tif 000162
が出力される。
【０３３４】
誤り信号Ｅｌが０である場合には、ｌ番目のバイトの訂正は行われない。
【０３３５】
ＸＯＲ回路は、自身の入力側にそれぞれ印加された４ビット幅の入力信号の成分毎のＸＯＲ和を形成する。
【０３３６】
ＡＮＤ回路１０４は、自身の第１の入力側に印加された４つのバイナリ値と誤り信号Ｅｌとの成分毎のＡＮＤ結合を実現する。誤り信号Ｅｌが０である場合には、ＡＮＤ回路１０４は自身の４ビット幅の出力側にその都度値０を出力する。誤り信号Ｅｌが１である場合には、ＡＮＤ回路１０４は、自身の第１の入力側に印加された値を、自身の４ビット幅の出力側に出力する。
【０３３７】
バイト訂正値生成器１０１は、信号ｓ１×Σ−１と定数αｌとのガロア体乗算を実現する。そのようなガロア体乗算は、ＸＯＲゲートを使用した線形回路を用いて実現することができ、これを下記においてさらに詳細に説明する。
【０３３８】
したがって、バイト訂正値生成器１０１は、ｌ番目のバイトに対するバイト訂正の機能を提供する。バイト訂正値生成器は、誤り信号Ｅｌ＝１がｌ番目のバイトに対して、すなわちｌ番目のバイト位置に対して誤りを示す場合には、バイト訂正値ｅｌを自身の出力側に提供する。誤り信号Ｅｌが０である場合には、バイト訂正値ｅｌは０である。
【０３３９】
入力すべき信号ｓ１＋ｓ２×Σ−１およびｓ１×Σ−１は、一度だけ決定されればよく、また複数のバイト訂正値生成器に対して、したがって場合によっては訂正する必要がある種々のバイトに対して使用することができる。
【０３４０】
また１つの利点として、誤りのある１つのバイトまたは誤りのある２つのバイトの誤りのある少なくとも１つのバイト位置が誤り信号の値に基づき既知である場合には、回路装置を、１バイト誤りを訂正するためにも、２バイト誤りを訂正するためにも使用することができる。
【０３４１】
したがって、場合によっては誤りのある種々のバイトに対して、バイト訂正値を効率的に並列に決定することができる。
【０３４２】
この関係において、並列とは、特に、バイト訂正値の決定および／または提供を少なくとも部分的に時間的に重畳して、特に実質的に同時に行えることを意味している。したがって、１つの有利なオプションでは、図１０において例示的にｌ番目のバイトについて説明したように、バイト毎に、訂正のために１つの定数乗算器、２つのＸＯＲ回路および１つのＡＮＤ回路だけが必要とされる。
【０３４３】
特に、複数のバイト訂正値生成器を、訂正すべきバイトに関して並列に実装することができる。特に、バイト訂正値を、少なくとも１つのタスク中に、例えば共通のタスクのシーケンス中に、または共通のタスクの一部のシーケンス中に（すなわち、時間的に重畳して）決定することができる。少なくとも部分的かつ時間的に重畳することによって、並列な処理が実現される。ここで、並列に決定するという概念には、特に部分的に並列な処理（すなわち、例えば部分的に同時の処理）も含まれることを言及しておく。
【０３４４】
誤りが存在しない場合には、全ての誤り信号Ｅ０，．．．，Ｅ１４は０であり、かつ全てのバイト訂正値は０であるので、誤り訂正は行われない。
【０３４５】
図１１：訂正値生成器の並列の実現
図１１は、１５個のバイト訂正値生成器を並列に実現するための例示的な回路装置を示す。したがって、場合によっては誤りのある１５個のバイトＸ０’Ｘ１’，．．．，Ｘ１４’を訂正することができる。各バイトは、例示的に４の語幅を有する。
【０３４６】
１５個のバイトＸ０’，Ｘ１’，．．．，Ｘ１４’それぞれに対して、図１１には、バイト訂正値ｅ０〜ｅ１４を形成するためのバイト訂正値生成器ＢＫ０１１１、ＢＫ１１１２〜ＢＫ１４１１３が示されている。バイト訂正値ｅ０〜ｅ１４は、読み出された、場合によっては誤りのあるバイトＸ０’〜Ｘ１４’と、１５個のＸＯＲ回路１１４、１１５、１１６において成分毎に結合され、訂正されたバイト
【数１５８】
2019186939.tif 000163
となる。
【０３４７】
ここで、それぞれ１５個のバイト訂正値生成器および１５個のＸＯＲ回路が設けられているが、見やすくするために、それらのうちそれぞれ３つが図示されていることを言及しておく。バイト訂正値生成器１１１〜１１３を、図１０に示したバイト訂正値生成器１０１に従い構成することができる。
【０３４８】
図１２：Σ−１の形成
図１２は、Σ−１を決定するための例示的な回路装置を示し、ここでΣ−１は、例示として想定するガロア体ＧＦ（２４）におけるΣの逆数である。
【０３４９】
図１２には、組合せ回路１２１および反転器１２２が含まれている。
【０３５０】
組合せ回路１２１は、自身の４ビット幅の出力側に、ここでは例示として表されたバイナリの誤り信号Ｅ０〜Ｅ１４に依存する、
【数１５９】
2019186939.tif 000164
による値Σを供給する。ここで、α０〜α１４は、それぞれのベクトル表現で４成分のバイナリベクトルである。
【０３５１】
組合せ回路１２１の出力側は、反転器１２２の４ビット幅の入力側に接続されている。反転器１２２は、ガロア体ＧＦ（２４）上の反転器である。反転器の４ビット幅の出力側には、
【数１６０】
2019186939.tif 000165
による４ビット幅の値Σ−１が提供される。ガロア体ＧＦ（２４）上の反転器１２２を、４つの入力側および４つの出力側を備えた組合せ回路として実現することができる。
【０３５２】
図１３：Σの形成
図１３は、ＸＯＲ回路を用いて誤り信号Ｅ０〜Ｅ１４からΣを形成するための、図１２に示した組合せ回路１２１の例示的な実現形態を示す。ここに図示した例は、やはりガロア体ＧＦ（２４）に関する。
【０３５３】
【数１６１】
2019186939.tif 000166
の４つの成分Σ０，Σ１，Σ２，Σ３は、誤り信号Ｅ０〜Ｅ１４のＸＯＲ結合によって決定される。
【０３５４】
図１３の装置には４つの出力側が示されており、第１の出力側には信号Σ０が提供され、第２の出力側には信号Σ１が提供され、第３の出力側には信号Σ２が提供され、また第４の出力側には信号Σ３が提供される。
【０３５５】
０≦ｉ≦１４とした場合の誤り信号Ｅｉが１である場合には、１であるαｉの成分は、式（４０）において、Σの相応の成分に寄与する。０である成分αｉは、Σの相応の成分に寄与しない。
【０３５６】
例えば、誤り信号に関して、Ｅ０＝１、ただしα０＝［１０００］Ｔが成り立つ場合には、誤り信号Ｅ０は、Σの第１の成分Σ０についてのＸＯＲ和に寄与する。したがって、Ｅ０が供給される入力側は第１の出力側に接続されている。誤り信号Ｅ０は、Σの第２の成分Σ１、第３の成分Σ２および第４の成分Σ３についてのＸＯＲ和に寄与しない。相応に、誤り信号Ｅ０が供給される線路は、それらの出力側には接続されていない。
【０３５７】
例えば、誤り信号に関して、Ｅ５＝１、ただしα５＝［０１１０］Ｔが成り立つ場合には、誤り信号Ｅ５は、Σの第２の成分Σ１および第３の成分Σ２に関して寄与する。相応に、誤り信号Ｅ５が供給される線路は、ＸＯＲ回路１３２５を介して、値Σ１をもたらす第２の出力側に接続されており、またＸＯＲ回路１３３５を介して、値Σ２をもたらす第３の出力側に接続されている。誤り信号Ｅ５は、Σの第１の成分Σ０および第４の成分Σ３についてのＸＯＲ和に寄与しない。相応に、誤り信号Ｅ５が供給される線路は、それらの出力側には接続されていない。
【０３５８】
Σ０に関しては、次式が成り立つ。
【数１６２】
2019186939.tif 000167
【０３５９】
Σ０についての式（４２）に従った誤り信号Ｅ０，Ｅ４，Ｅ７，Ｅ８，Ｅ１０，Ｅ１２，Ｅ１３，Ｅ１４のＸＯＲ結合は、それぞれが２つの入力側および１つの出力側を備えたＸＯＲ回路１３１４、１３１７、１３１８、１３１１０、１３１１２、１３１１３、１３１１４によって行われる。
【０３６０】
Σ１に関しては、次式が成り立つ。
【数１６３】
2019186939.tif 000168
【０３６１】
Σ１についての式（４３）に従った誤り信号Ｅ１，Ｅ４，Ｅ５，Ｅ７，Ｅ９，Ｅ１０，Ｅ１１，Ｅ１２のＸＯＲ結合は、それぞれが２つの入力側および１つの出力側を備えたＸＯＲ回路１３２４、１３２５、１３２８、１３２９、１３２１０、１３２１１、１３２１２によって行われる。
【０３６２】
Σ２に関しては、次式が成り立つ。
【数１６４】
2019186939.tif 000169
【０３６３】
Σ２についての式（４４）に従った誤り信号Ｅ２，Ｅ５，Ｅ６，Ｅ８，Ｅ１０，Ｅ１１，Ｅ１２，Ｅ１３のＸＯＲ結合は、それぞれが２つの入力側および１つの出力側を備えたＸＯＲ回路１３３５、１３３６、１３３８、１３３１０、１３３１１、１３３１２、１３３１３によって行われる。
【０３６４】
Σ３に関しては、次式が成り立つ。
【数１６５】
2019186939.tif 000170
【０３６５】
Σ３についての式（４５）に従った誤り信号Ｅ３，Ｅ６，Ｅ７，Ｅ９，Ｅ１１，Ｅ１２，Ｅ１３，Ｅ１４のＸＯＲ結合は、それぞれが２つの入力側および１つの出力側を備えたＸＯＲ回路１３４６、１３４７、１３４９、１３４１１、１３４１２、１３４１３、１３４１４によって行われる。
【０３６６】
図１４：バイト訂正信号の形成
以下では、誤りのあるバイト位置が既知である場合のバイト誤りの訂正（グループ誤り訂正）と、誤りのあるバイト位置が既知でない場合のバイト誤りの訂正（一般的なバイト誤りの訂正）との組合せを説明する。
【０３６７】
誤りのあるバイト位置がグループ誤りによって既知である場合には、誤りのあるバイトに対するバイト訂正値を決定するだけで十分である。
【０３６８】
誤りのあるバイト位置が既知でない場合には、バイト位置に誤りがあるか否かを検査することができ、またバイト位置に誤りがある場合には、バイト訂正値も決定することができる。
【０３６９】
例示的に、２つのグループ誤りまたは１つのバイト誤りを訂正することができるリード・ソロモン符号が使用される。グループ誤りが検出されなかった場合には、バイト誤りが訂正される。
【０３７０】
ここで使用する例においては、組合せ誤り信号Ｅが誤り信号Ｅ０〜Ｅ１４から形成される。組合せ誤り信号Ｅは、何らかの誤り信号がバイトのうちの１つに対してグループ誤りを示すか否かを示す。グループ誤りが示される場合には、１つのグループ誤りまたは２つのグループ誤りが訂正される。
【０３７１】
誤り信号Ｅ０〜Ｅ１４のうちの１つによってグループ誤りが決定されなかったことが、組合せ誤り信号Ｅによって示される場合には、バイト誤り位置が決定されないまま誤り訂正が行われる。つまり、誤りが存在しない場合には、訂正は行われない。
【０３７２】
１つの例によれば、ブロック誤り符号ＣＦ０〜ＣＦ１４と組み合わされた誤り符号Ｃ１によって、以下の誤りを訂正することができる。
−ブロック誤り符号によって検出された１つまたは２つのグループ誤りを以下のように訂正することができる。
図１による誤り検出回路１３０〜１３Ｌ−１（ただし、Ｌ＝１４）の誤り信号Ｅ０〜Ｅ１４が、１つのバイトの位置、または（それぞれが）１つのグループ誤りを有する２つのバイトの位置を決定する。
グループ誤りが決定されたバイト位置に対して、バイト訂正値（すなわち、誤りがあると識別された、該当するバイトに対する訂正値）の誤り符号Ｃ１を使用して決定される。特に、そのような誤りが、グループ誤りの事前に決定された位置において訂正される場合には有利である。
−誤り検出回路１３０〜１３Ｌ−１のうちの１つによってグループ誤りとして検出されなかった単一のバイト誤りも、誤り符号Ｃ１を使用して訂正することができる。
この場合には、誤り符号Ｃ１を用いて、誤りのあるバイトのバイト位置も、対応するバイト訂正値も決定され、また誤りが訂正される。
この場合には、誤り符号Ｃ１を用いて、誤りのあるバイトのバイト位置も、誤りのあるバイトに対するバイト訂正値も決定されなければならない。これによって、誤りのある１つのバイトまたは誤りのある２つのバイトの位置がグループ誤りとして決定された既述の場合とは異なり、単一のバイト誤りもこの誤り符号Ｃ１を用いて訂正することができる。
この際、誤り検出回路ＦＥ０〜ＦＥ１４の誤り信号Ｅ０〜Ｅ１４は誤りを示さない。考えられる１つの原因として、ブロック誤り符号の符号語がこのブロック誤り符号の別の符号語に改ざんされたことが挙げられる。例えば、ブロック誤り符号が３−ｏｕｔ−ｏｆ−６符号である場合には、決定された符号語がこの３−ｏｕｔ−ｏｆ−６符号の別の符号語に変化すると、誤り検出回路は誤りを確認することができない。
【０３７３】
ここで詳細に説明する例においては、組合せ誤り信号が誤り信号Ｅ０〜Ｅ１４のＯＲ結合から形成され、誤り信号はそれぞれ、誤りがある場合には値１を取り、誤りが検出されなかった場合には値０を取る。
【０３７４】
したがって、組合せ誤り信号
【数１６６】
2019186939.tif 000171
は、誤り信号Ｅ０〜Ｅ１４のうちのいずれかがグループ誤りを決定したか否かを示す。
【０３７５】
１つのグループ誤りが示される場合には、このグループ誤りは、誤り符号Ｃ１を用いて訂正される。２つのグループ誤りが示される場合には、それら２つのグループ誤りは、誤り符号Ｃ１に基づいて訂正される。
【０３７６】
誤り信号Ｅ０〜Ｅ１４のいずれによってもグループ誤りが示されない場合には、組合せ誤り信号Ｅも誤りを示さない。この場合には、誤りが存在しないか、または少なくとも１つのバイト誤りが既知でない誤り位置に存在し、後者の場合には、ブロック誤り符号の符号語が、このブロック誤り符号の別の符号語に改ざんされている。
【０３７７】
少なくとも１つのそのようなバイト誤りが存在する場合には、そのバイト誤りは、訂正が可能である限り、誤り符号Ｃ１を使用するだけで訂正される。説明したように、誤りのあるバイト位置も対応するバイト訂正値も、（ブロック誤り符号によって確かにグループ誤りは示されなかったので）誤り符号Ｃ１を用いるだけで決定される。
【０３７８】
誤り検出回路ＦＥ０〜ＦＥ１４によって決定された誤り信号Ｅ０〜Ｅ１４、およびそれらの誤り信号Ｅ０〜Ｅ１４から導出された組合せ誤り信号Ｅは、単一のグループ誤りの訂正または２つのグループ誤りの訂正、もしくは１つのバイト誤りの訂正が、決定すべきバイト位置でもって行えるか否かを決定する。
【０３７９】
ブロック符号の符号語を、同じブロック符号の非符号語に改ざんし、したがってグループ誤りとしてブロック誤り符号の誤り検出回路に基づいて検出することができる誤りが、ブロック誤り符号の符号語を同じブロック誤り符号の別の符号語に改ざんする誤りよりも多く発生する場合には、固定数の検査ビットを用いて、誤りのあるバイト位置が予め決定されていないバイト誤りよりも多くのグループ誤りを訂正することができる回路装置を使用することが有利であると考えられる。換言すれば、ブロック誤り符号を用いて検出された少なくとも１つのグループ誤りでは、誤り符号Ｃ１が、その誤り符号Ｃ１だけによって検出および訂正されなければならない（少なくとも１つの）バイト誤りが存在するにもかかわらずグループ誤りが検出されなかった場合よりも多くの数のバイト誤りを訂正できることは有利である。
【０３８０】
誤り符号Ｃ１の比較的少ない数の検査ビットを用いることで、ここで説明する例では、したがって２つまでのグループ誤り、または１つのバイト誤りを、誤り位置が事前に既知でなくても訂正することができる。
【０３８１】
下記において例示的に説明する、図１４に示した回路装置においては、誤り検出回路１３０〜１３Ｌ−１によって決定された誤り信号Ｅ０〜ＥＬ−１に依存して、いわゆるグループ誤りである第１の個数の誤りと、誤り検出回路１３０〜１３Ｌ−１によってグループ誤りとして検出することができない第２の個数の誤りと、が誤り符号Ｃ１を使用して訂正される。
【０３８２】
オプションとして、２つより多くの誤り信号Ｅ０〜Ｅ１４が誤りを示すか否かを決定することができる。そのような場合には、少なくとも３つのグループ誤りが検出され、またこの例によれば、訂正できない誤りを示すことができる（ここで選択した例では、グループ誤りとして検出された２つまでのバイト誤り、またはグループ誤りとして検出されなかった場合には１つのバイト誤りが、誤り符号Ｃ１を用いて訂正される）。
【０３８３】
基本的に、例、使用分野および選択されたブロック誤り符号ならび誤り符号に応じて、複数の検出されたグループ誤り、検出されなかったグループ誤りおよびバイト誤りの種々の組合せを検出する、かつ／または訂正することができる。
【０３８４】
例えば、誤り符号Ｃ１に関して、誤り信号Ｅ０〜ＥＬ−１を用いる回路装置を使用して、以下の訂正のうちの少なくとも１つが実現される。
−第１の個数までのグループ誤りの訂正、さらなるバイト誤りの訂正は行われない、
−第２の個数までのグループ誤りおよび第３の個数までのバイト誤りの訂正、この場合、第３の個数のバイト誤りに関してグループ誤りは示されない、
−グループ誤りが示されない第４の個数までのバイト誤りの訂正。
【０３８５】
図１４は、場合によっては誤りのあるデータバイトＸｌ’に対するバイト訂正信号を形成するための例示的な回路装置を示す。例示的に、式（５）によるＨ行列を用いたバイト誤り訂正符号が使用される。さらに例示的に、ガロア体ＧＦ（２４）が想定される。
【０３８６】
誤り信号Ｅｌが、ｌ番目のバイトの誤りを示すことができ、またバイト訂正値生成器１０１に即した、図１０において説明したバイト訂正値生成器ＫＢｌが、訂正すべきデータバイトＸｌ’との成分毎のＸＯＲ結合によって
【数１６７】
2019186939.tif 000172
となるバイト訂正信号ｅｌを提供することによって、この誤りの訂正を行うことができる。
【０３８７】
例示的に、Ｅｌ＝１の場合にはｌ番目のバイトの誤りが示され、またＥｌ＝０の場合にはｌ番目のバイトの誤りが示されないことを想定する。
【０３８８】
組合せ誤り信号Ｅを、図４に応じて、誤り検出回路４１の出力信号として提供することができる。この場合、誤り検出回路４１は、組合せ誤り信号Ｅに関して、
【数１６８】
2019186939.tif 000173
が成り立つように構成されている。
【０３８９】
誤り信号に関してＥｌ＝１が成り立つ場合、組合せ誤り信号に関してもＥ＝１が得られる。データバイトＸｌはここでは、例えばメモリセル値の３−ｏｕｔ−ｏｆ−６符号の符号語Ｗｌにブロック誤り符号ＢＦｌを使用してコーディングされている４ビット・バイトである。誤り信号Ｅｌは、値１によって、３−ｏｕｔ−ｏｆ−６符号の符号語Ｗｌが誤りによって、３−ｏｕｔ−ｏｆ−６符号の符号語ではないビット列Ｗｌ’に改ざんされたことを示す。
【０３９０】
特に、１ビット誤りが存在し、バイトＷｌ’が３つの１の代わりに１を２つしか有していない場合には、誤り信号Ｅｌ＝１によって誤りが示される。
【０３９１】
しかしながら、バイトＷｌが、ブロック誤り符号ＢＣｌの符号語である誤りのあるバイトＷｌ’に改ざんされることも考えられる。例えば、正しいバイトＷｌ＝１１１０００が、誤りのあるバイトＷｌ’＝１００１０１に改ざんされる可能性がある。つまり、これら２つのバイトはいずれもブロック誤り符号ＢＣｌの符号語である。この場合、誤り信号Ｅｌは０であり、誤りは検出されない。メモリセル値の誤りのあるバイトＷｌ’が、相応の変換回路によって、誤りのあるデータバイトＸｌ’に変換される可能性がある。
【０３９２】
誤り符号Ｃ１がバイト誤り訂正符号である場合には、場合によっては誤りのあるデータバイトＸｌ’を、この誤り符号を使用して、誤り信号Ｅｌが０であるにもかかわらず訂正することができる。
【０３９３】
バイト誤り位置が既知でない、場合によっては誤りのあるバイトＸｌ’の訂正は、バイト誤り信号Ｅｌ＝０であり、かつ別のバイト誤り信号が０でない場合には、誤り符号Ｃ１を使用して行うことができる。
【０３９４】
組合せ誤り信号Ｅが式（４６）によって決定されている場合には、組合せ誤り信号Ｅに関する値０は、誤り信号Ｅ０〜Ｅ１４のいずれも、メモリセル値のバイトのうちの１つにおける誤りを示さないことを示す。
【０３９５】
図１４に示した回路装置に基づいて、ブロック誤り符号ＣＦｌの相応のバイト誤り信号Ｅｌがメモリセル値のｌ番目の読み出されたバイトＷｌ’におけるバイト誤りを示す場合には、ｌ番目の誤りのあるデータバイトＸｌ’における誤りを訂正することができる。この場合には、最大でも１つの別のバイト誤り信号がｌ番目のバイトとは異なるバイトにおける１つのバイト誤りを示すか、または別のブロック誤り符号の別のバイト誤り信号がバイト誤りを示さないことが考えられる。誤り符号Ｃ１を使用した誤りのあるバイトＸｌ’の訂正に関して、ここでは、誤り信号Ｅｌの値によって、ｌ番目のデータバイトにおいて誤りを訂正できることが既知である。このことは、グループ誤りの訂正に相当する。ここで例示的に使用するバイト誤り訂正符号でもって、１つまたは２つのグループ誤りを訂正することができる。
【０３９６】
ブロック誤り符号ＣＦｌを用いて、ｌ∈｛０，．．．，Ｌ−１｝の場合の誤り信号Ｅｌは、誤り検出回路ＦＥｌによって決定されている（例えば、図１を参照されたい）。バイト訂正値ｅｌないしバイト訂正値ｅｌ’は、誤り符号Ｃ１を使用して決定されている。誤り信号がＥｌ＝１である場合には、グループ誤りが存在し、また誤り符号Ｃ１は、この場合、バイト訂正値生成器１０１の出力側に提供されるバイト訂正値ｅｌ≠０だけを決定する。誤り信号Ｅｌ＝０である場合には、バイト訂正値生成器１０１は、バイト訂正値ｅｌ＝０を出力する。
【０３９７】
誤り信号がＥｌ＝０である場合に、ｌ＋１番目のバイト位置にバイト誤りが存在するならば、誤りがない場合にはブロック誤り符号ＣＦｌの所定の符号語であるそのｌ＋１番目のバイトは、このブロック誤り符号ＣＦｌの別の符号語に誤って改ざんされている。ＮＯＲ回路１４４は値１を出力し、この値１は、組合せ誤り信号がＥ＝０であることから、ＡＮＤ回路１４８を介して案内される。したがって、ＡＮＤ回路１４５は、自身の出力側に、バイト訂正値ｅｌ’と同じ値ｓ１を提供し、この値ｓ１は、ｅｌ＝０であることから、ＸＯＲ回路１４６の出力側において出力され、ＸＯＲ回路１４７において、訂正すべきバイトＸｌ’とＸＯＲ結合され、訂正されたバイト
【数１６９】
2019186939.tif 000174
となる。
【０３９８】
さらに、ｌ番目のデータバイトが誤ってＸｌ’に改ざんされている場合、またブロック誤り符号のバイト誤り信号がバイト誤りを示さない場合には、誤り符号Ｃ１を使用して誤りを訂正できる場合には、誤りのあるデータバイトを訂正することができる。この場合には、図１４に示した回路装置を用いて、誤りがｌ番目のバイト位置に存在していることが決定される。ここで例示的に使用するバイト誤り訂正誤り符号Ｃ１を用いて、決定すべきバイト位置におけるバイト誤りを訂正することができる。
【０３９９】
バイト訂正値ｅｌを用いたｌ番目のデータバイトＸｌ’の誤り訂正は、誤り信号Ｅｌが１である場合に行われる。したがって、組合せ誤り信号Ｅが０であり、かつ
【数１７０】
2019186939.tif 000175
が成り立つ場合には、バイト訂正値ｅｌ’を用いて訂正が行われる。
【０４００】
図１４には、
−２つの４ビット幅の入力側、誤り信号Ｅｌが印加される１つの１ビット幅の入力側およびバイト訂正値ｅｌを提供する１つの４ビット幅の出力側を備えたバイト訂正値生成器、
−４ビット幅の入力線１４１０〜１４１３、
−１つの４ビット幅の第１の入力側、１つの１ビット幅の第２の入力側および４ビット幅の出力側を備えた定数乗算器１４２、
−それぞれが２つの４ビット幅の入力側および１つの４ビット幅の出力側を備えたＸＯＲ回路１４３、１４６および１４７、
−１つの４ビット幅の入力側および１つの１ビット幅の出力側を備えたＮＯＲ回路１４４、
−１つの４ビット幅の第１の入力側、１つの１ビット幅の第２の入力側および４ビット幅の出力側を備えたＡＮＤ回路１４５、
−２つの１ビット幅の入力側および１つの１ビット幅の出力側を備えたＡＮＤ回路１４８、
−１つの１ビット幅の入力側および１つの１ビット幅の出力側を備えた反転器１４９、
が含まれている。
【０４０１】
バイト訂正値生成器１０１は、例えば図１０にも示されている。
【０４０２】
誤り信号に関してＥｌ＝０が成り立つ場合には、４ビット幅のバイト訂正値ｅｌは００００である。
【０４０３】
入力線１４１０〜１４１３には、（記載した端子の順序で）４ビット幅の信号値：ｓ１＋ｓ２×Σ−１、ｓ１×Σ−１、ｓ２およびｓ１が印加される。
【０４０４】
バイト訂正値生成器１０１の２つの入力側は、入力線１４１０および１４１１に接続されている。
【０４０５】
入力線１４１２は、ＸＯＲ回路１４３の第１の入力側に接続されており、このＸＯＲ回路１４３の第２の入力側には、定数乗算器１４２の出力側が接続されている。定数乗算器１４２の第１の入力側は、入力線１４１３に接続されており、また定数乗算器１４２の第２の入力側には、定数αｌが印加される。ＸＯＲ回路１４３の出力側は、ＮＯＲ回路１４４の入力側に接続されている。
【０４０６】
ＮＯＲ回路１４４は、自身の入力側に値００００が印加されると値１を出力し、また自身の入力側に００００ではない値が印加されると値０を出力する。
【０４０７】
ＮＯＲ回路１４４の出力側は、ＡＮＤ回路１４８の第１の入力側に接続されており、ＡＮＤ回路１４８の第２の入力側は、反転器１４９の出力側に接続されており、この反転器１４９の入力側には、組合せ誤り信号Ｅが印加される。
【０４０８】
ＡＮＤ回路１４８の出力側は、ＡＮＤ回路１４５の１ビット幅の第２の入力側に接続されており、このＡＮＤ回路１４５の４ビット幅の第１の入力側は、入力線１４１３に接続されている。ＡＮＤ回路１４５の出力側は、ＸＯＲ回路１４６の第１の入力側に接続されている。ＸＯＲ回路１４６の第２の入力側は、バイト訂正値生成器１０１の出力側に接続されている。
【０４０９】
ＡＮＤ回路１４５は、自身の第２の入力側にバイナリ信号０が印加されると、自身の４ビット幅の出力側に値００００を出力するように構成されている。相応に、ＡＮＤ回路１４５は、自身の第２の入力側にバイナリ信号１が印加されると、自身の出力側に値ｓ１を提供する。
【０４１０】
ＸＯＲ回路１４６の出力側は、ＸＯＲ回路１４７の第１の入力側に接続されている。ＸＯＲ回路１４７の第２の入力側には、場合によっては誤りのある、訂正すべきデータバイトＸｌ’が印加される。ＸＯＲ回路１４７の出力側には、訂正されたデータバイト
【数１７１】
2019186939.tif 000176
が出力される。
【０４１１】
誤り信号Ｅｌ＝１の値が、メモリセル値のｌ番目のバイトＷｌ’の誤りを示す場合には、対応するｌ番目のデータバイトＸｌ’の訂正を、バイト訂正値生成器１０１によって決定されたバイト訂正値ｅｌに基づいて行うことができる。この場合には、組合せ誤り信号はＥ＝１であり、またＡＮＤ回路１４５は値００００を出力する。メモリセル値のｌ番目のバイトに１つの誤りしか存在しないか、またはメモリセル値のｌ番目のバイトにおける誤りおよび別のバイトにおける誤りが存在する場合には、訂正された値
【数１７２】
2019186939.tif 000177
は、誤りのない値Ｘｌと同じである。何故ならば、ここで例示的に使用する誤り符号Ｃ１は、誤りのあるバイト位置が既知である１つまたは２つのバイト誤り、換言すれば２つのグループ誤りを訂正することができるバイト訂正符号だからである。
【０４１２】
誤り信号の値がＥｌ＝０である場合には、ブロック誤り符号ＣＦｌによって、ｌ番目のバイトに誤りはないことが検出され、またバイト誤り訂正値ｅｌは００００である。
【０４１３】
すなわち、組合せ誤り信号に関してＥ＝０が成り立つ場合には、メモリセル値のバイトのいずれにおいても、対応するブロック誤り符号によって誤りは検出されていない。さらに、式（４７）による条件が満たされている場合には、ＡＮＤ回路１４５の第２の１ビット幅の入力側には値１が印加されるので、ＡＮＤ回路１４５は、自身の出力側に値ｅｌ’＝ｓ１を提供する。この場合には、データバイトＸｌ’に誤りがあり、またメモリセル値の読み出されたバイトＷｌ’はブロック誤り符号ＣＦｌの誤りのある符号語（すなわち、複数のビット誤りによって本来正しい符号語から生じているブロック誤り符号の符号語）であるので、誤りをブロック誤り符号ＣＦｌによって検出することはできない。ＸＯＲ回路１４６は、値ｅｌ’＝ｓ１を出力し、この値ｅｌ’は、ＸＯＲ回路１４７において訂正すべきデータバイトＸｌ’と結合されて、
【数１７３】
2019186939.tif 000178
となる。この実施例では、使用されるデータビット誤り符号Ｃ１が、別の誤りが存在しない場合には、誤りのあるデータバイトＸｌ’を誤りのない値Ｘｌに訂正する１バイト誤り訂正符号である。
【０４１４】
訂正すべきバイト位置０，．．．，１４に関して、図１４においてｌ（ただし、０≦ｌ≦１４）について説明した、場合によっては誤りのあるバイトＸ０’〜Ｘ１４’を訂正するための回路装置を並列に提供するか、または並列に実装することが可能であるので、必要とされるバイト訂正値の決定が種々のバイトに対して並列に実施される。「並列」と言う語句の解釈については、上記の説明を参照されたい。
【０４１５】
誤り信号に関してＥｌ＝１が成り立ち、かつ別のバイトに関する誤り信号が０である場合には、ｌ番目の回路装置は、自身の出力側にバイト訂正値ｅｌ≠００００を提供し、その一方で、残りの全ての回路装置は、並列にバイト訂正値００００を提供する。
【０４１６】
以下の関係、すなわち、
−誤り信号に関して、Ｅｌ＝１、
−別の誤り信号に関して、ＥＫ＝１、ただしｌ≠Ｋ、かつ
−他の全ての誤り信号は０である、
が成り立つ場合には、
−ｌ番目の回路装置は、自身の出力側にバイト訂正値ｅｌ≠００００を提供し、
−Ｋ番目の回路装置は、自身の出力側にバイト訂正値ｅＫ≠００００を提供し、
−これに対して、残りの他の全ての回路装置は、バイト訂正値００００を（並列に）提供する。
【０４１７】
全ての誤り信号Ｅ０，．．．，Ｅ１４が０であり、かつＮ番目のバイトＸＮ’に１バイト誤りが存在する場合には、Ｎ番目の回路装置が自身の出力側にバイト訂正値ｅＮ’≠００００を提供し、その一方で、残りの全ての回路装置がバイト訂正値００００を並列に提供する。
【０４１８】
この例では、例示的に、４ビットの語幅およびガロア体ＧＦ（２４）を前提とした。これは、単に説明を目的として使用される例である。したがって、別の語幅および別のガロア体を利用することもできる。さらに、別の誤り符号、特に複数のバイト誤りを検出する、かつ／または訂正する誤り符号を使用することができる。
【０４１９】
さらに例示的に、短縮されていない符号が誤り符号として使用された。したがって、短縮されていない符号のＨ行列の列が消去された短縮された符号を使用することもできる。
【０４２０】
ガロア体
以下の例では、特に、ここでは例として挙げるガロア体ＧＦ（２４）を参照する。
【０４２１】
この例ではｒ＝４であるガロア体ＧＦ（２ｒ）に関して、以下では、ガロア体の幾つかの基本概念、例えば、ガロア体の元の種々の表示およびガロア体上での演算の幾つかの基本概念を説明する。例えば、この関係においては、［３］を参照されたい。この文献には、リードオンリメモリ（ＲＯＭ）を使用したガロア体演算の実現形態が記載されている。
【０４２２】
ガロア体ＧＦ（２４）に関して、表４は、ガロア体の（２４＝）１６個の元が、生成元αの累乗としてのべき表現、３次多項式としての多項式表現、および４つの成分を有するバイナリベクトルとしてのベクトル表現で示されている。モジュラ多項式として、多項式
【数１７４】
2019186939.tif 000179
が使用される。
【表４】
2019186939.tif 000180
【０４２３】
例示的な原始モジュラ多項式の同伴行列の累乗としてのガロア体の元の表現は、例えば［４］から公知である。これによって、特別な適用事例においては、バイト誤り検出符号およびバイト誤り訂正符号のＨ行列およびＧ行列の有利な表現が実現される。
【０４２４】
バイナリ係数を用いる全部で１６個の３次多項式は、それぞれ、ガロア体ＧＦ（２４）の１つの元を表す。それらは、表４の第２列において多項式としてｚで記載されている。多項式の累乗ｚ０、ｚ１、ｚ２、ｚ３のバイナリ係数は、ベクトル表現の成分である。
【０４２５】
表４の第１列は、生成元αの累乗α０〜α１４としての、ガロア体ＧＦ（２４）における元のべき表現を示す。多項式表現の元０またはベクトル表現の００００については、べき表現での表現は存在しない。
【０４２６】
多項式表現の多項式
【数１７５】
2019186939.tif 000181
は、べき表現の元αｉに対応し、ここでＭ（ｚ）は、ガロア体のモジュラ多項式、ここではモジュラ多項式Ｍ（ｚ）＝ｚ４＋ｚ＋１、である。
【０４２７】
つまり、例えばべき表現のα３は、多項式表現の多項式
【数１７６】
2019186939.tif 000182
に対応する。
【０４２８】
べき表現の２つの元αｉおよびαｊの乗算に関しては、
【数１７７】
2019186939.tif 000183
が成り立つので（ただし、２ｒ−１＝１５）、べき表現の２つの元の乗算は、モジュロ（２ｒ−１）指数部加算に対応する。つまり例えば、次式も成り立つ。
【数１７８】
2019186939.tif 000184
【０４２９】
元αｉの逆元αｑは、以下の関係
【数１７９】
2019186939.tif 000185
によって決定されているか、または
【数１８０】
2019186939.tif 000186
によって決定されている。元αｉの逆元を、α−ｉとも記す。
【０４３０】
つまり例えば、
【数１８１】
2019186939.tif 000187
【０４３１】
表５は、ガロア体ＧＦ（２４）に関するベクトル表現の相互の逆元の表現を示す。ただし、ベクトル表現の元００００は逆元を有していない。
【表５】
2019186939.tif 000188
【０４３２】
つまり例えば、表５の４行目に応じて、「０００１」および「１１１１」は、相互に逆元のベクトル表現である。表４によれば、０００１のベクトル表現はα３であり、また１１１１のベクトル表現はα１２であり、したがって、
【数１８２】
2019186939.tif 000189
が成り立つ。
【０４３３】
表６は、ガロア体ＧＦ（２４）の元のベクトル表現に関して、べき表現の元の累乗の値を示す。この対応付けは、関数ＬＯＧとして表される。表６によるべき表現の元の累乗に、対応するベクトル表現を対応付ける逆の対応付けは、関数ＥＸＰとして表される。
【表６】
2019186939.tif 000190
【０４３４】
つまり、例えば、ベクトル表現の元０００１には、α３がベクトル表現０００１を有することから、関数ＬＯＧ（０００１）＝３によって値３が対応付けられている。相応に、ＬＯＧ（０００１）＝３なので、ＥＸＰ（３）＝０００１が成り立つ。
【０４３５】
したがって関数ＬＯＧは、元のベクトル表現をべき表現の累乗に写像する。関数ＥＸＰは、変換ＬＯＧの逆変換である。この関数ＥＸＰは、べき表現の元の累乗を、その元のベクトル表現に写像する。
【０４３６】
多項式表現では、１６個の元がバイナリ係数を用いる１６個の３次多項式によって表される。ガロア体上の２つの元の乗算を、多項式表現でも実施することができる。モジュラ多項式Ｍ（ｚ）の多項式モジュロの乗算は、多項式表現の２つの元Ｐ１（ｚ）およびＰ２（ｚ）の乗算に対応するので、Ｍ（ｚ）＝ｚ４＋ｚ＋１では、
【数１８３】
2019186939.tif 000191
が成り立つ。
【０４３７】
つまり例えば、次式が成り立つ。
【数１８４】
2019186939.tif 000192
【０４３８】
ベクトル表現の２つの元の加算は、成分の成分毎のモジュロ２加算に対応する。多項式の係数のモジュロ２加算は、多項式表現の２つの元の加算に対応する。
【０４３９】
図１５：ＧＦ（２４）上のガロア体乗算器
以下では、ＧＦ（２４）上のガロア体乗算器の例示的な実現形態を説明する。ベクトル表現のべき表現への変換、モジュロ１５指数部加算、および累乗のベクトル表現への逆変換が行われる。べき表現が存在しない元０を個別に考慮することができる。
【０４４０】
図１５は、ベクトル表現で与えられている、ガロア体の２つの元を乗算するための例示的な回路装置を示す。例として、ここでもまたガロア体ＧＦ（２４）が使用される。そのような回路装置を、ガロア体乗法器またはガロア体乗算器と称することができる。
【０４４１】
図１５に示した回路装置は、
−それぞれが１つの４ビット幅の入力側、および関数ＬＯＧを実現するための１つの４ビット幅の出力側を備えた、２つの変換回路１５１、１５２、
−２つの４ビット幅の入力側および１つの４ビット幅の出力側を備えた、１つの加算回路１５３、
−１つの４ビット幅の入力側、および関数ＥＸＰを実現するための１つの４ビット幅の出力側を備えた、変換回路１５６、
−１つの第１の４ビット幅の入力側、１つの第２の１ビット幅の入力側および１つの４ビット幅の出力側を備えた、１つのＡＮＤ回路１５８、
−それぞれが１つの４ビット幅の入力側および１つの１ビット幅の出力側を備えた、２つのＮＯＲ回路１５４、１５５、
−２つの１ビット幅の入力側および１つの１ビット幅の出力側を備えた、１つのＮＯＲ回路１５７、
を含んでいる。
【０４４２】
変換回路１５１の入力側は、ＮＯＲ回路１５４の入力側に接続されている。変換回路１５１の入力側には、ベクトル表現のガロア体ＧＦ（２４）の元
【数１８５】
2019186939.tif 000193
の４つの成分ｖ１，ｖ２，ｖ３，ｖ４が印加される。変換回路１５１は、加算回路１５３の第１の入力側に接続されている自身の出力側に、４ビット幅の信号ＬＯＧ（ｖ）を出力する。
【０４４３】
変換回路１５２の入力側は、ＮＯＲ回路１５５の入力側に接続されている。変換回路１５２の入力側には、ベクトル表現のガロア体ＧＦ（２４）の元
【数１８６】
2019186939.tif 000194
の４つの成分
【数１８７】
2019186939.tif 000195
が印加される。変換回路１５２は、加算回路１５３の第２の入力側に接続されている自身の出力側に、４ビット幅の信号ＬＯＧ（ｖ＊）を出力する。
【０４４４】
加算回路１５３は、
【数１８８】
2019186939.tif 000196
の場合に、和
【数１８９】
2019186939.tif 000197
を形成して、自身の出力側に提供するように構成されている。加算回路１５３の出力側は、変換回路１５６の入力側に接続されており、この変換回路１５６は、
【数１９０】
2019186939.tif 000198
の場合に、値
【数１９１】
2019186939.tif 000199
を形成して、自身の出力側に提供する。この値は、ｖ，ｖ＊≠０が成り立つ場合には、ガロア体ＧＦ（２４）上のｖおよびｖ＊の積と同じである。
【０４４５】
変換回路１５６の出力側は、ＡＮＤ回路１５８の第１の入力側に接続されており、このＡＮＤ回路１５８は、自身の出力側において、ガロア体ＧＦ（２４）上の乗算ｖ×ｖ＊の結果を提供する。
【０４４６】
ＮＯＲ回路１５４の出力側は、ＮＯＲ回路１５７の第１の入力側に接続されており、またＮＯＲ回路１５５の出力側は、ＮＯＲ回路１５７の第２の入力側に接続されている。ＮＯＲ回路１５７の出力側は、ＡＮＤ回路１５８の第２の入力側に接続されている。
【０４４７】
したがってＡＮＤ回路１５８は、自身の第２の入力側にバイナリ値０が印加された場合には、自身の出力側に値００００を出力するか、または自身の第２の入力側にバイナリ値１が印加された場合には、第１の入力側に印加された値を自身の出力側に提供するように構成されている。
【０４４８】
ｖ＝００００である場合には、ＮＯＲ回路１５４は値１を出力し、またＮＯＲ回路１５７は、自身の出力側に信号０を出力し、それによってＡＮＤ回路１５８は値００００を出力する。
【０４４９】
ｖ＊＝００００である場合には、ＮＯＲ回路１５５は値１を出力し、またＮＯＲ回路１５７は、自身の出力側に信号０を出力し、それによってＡＮＤ回路１５８は値００００を出力する。
【０４５０】
２つの乗算ｖおよびｖ＊が値００００とは異なる場合には、ＮＯＲ回路１５４および１５５はそれぞれ値０を供給する。その結果、ＮＯＲ回路１５７は自身の出力側にバイナリ値１を供給するので、ＡＮＤ回路１５８は自身の出力側に、自身の第１の入力側に印加された値を出力する。
【０４５１】
したがって、換言すれば、ＮＯＲ回路１５４、１５５および１５７に基づき、乗算のうちの少なくとも１つが００００となる未定義のケースがマスキングされる。
【０４５２】
乗算ｖ＊の値が一定である場合には、ｖと定数との乗算はガロア体上で行われる。
【０４５３】
ガロア体上の定数乗算器
以下では、線形回路としてＸＯＲ回路を用いて形成されている、ガロア体上の定数乗算器についての例を説明する。
【０４５４】
任意の元と定数との乗算は、多項式表現で表される。任意の元の多項式および定数の多項式は、ガロア体のモジュロ多項式のモジュロと乗算される。結果として生じた多項式の成分は、積のベクトル表現の成分を形成する。積のベクトル表現の成分は、以下に説明するように、係数のＸＯＲ結合である。
【０４５５】
したがって、定数乗算器を線形回路として表すことができる。ここでは、各定数乗算器の出力側を、複数の入力側のＸＯＲ結合として決定することができる。
【０４５６】
ガロア体上で定数と乗算すべき、ガロア体ＧＦ（２ｒ）の任意の元を、例示的にｖと記す。ベクトル表現では、以下の関係が成り立つ。
【数１９２】
2019186939.tif 000200
【０４５７】
ガロア体の例として、ＧＦ（２４）が選択される。したがって、４ビット幅のベクトル（バイナリベクトル）としてのベクトル表現のｖは、
【数１９３】
2019186939.tif 000201
となる。
【０４５８】
ここで、ｖ１〜ｖ４は、ｖの成分として表される。ｖと乗算される定数はａで表され、ベクトル表現では、
【数１９４】
2019186939.tif 000202
が成り立ち、またべき表現では、
【数１９５】
2019186939.tif 000203
が成り立つ。
【０４５９】
乗算の積は、ベクトル表現で
【数１９６】
2019186939.tif 000204
でもって表され、ここでｙ１〜ｙ４は、積ｙの成分である。
【０４６０】
既に説明したように、ガロア体ＧＦ（２ｒ）上の２つの元の乗算は、多項式表現を使用しても実現することができる。例示的に、ここでもまたガロア体ＧＦ（２４）を考察する。
【０４６１】
以下では、元ｖが一定の元ａ（いずれもベクトル表現）と乗算される。多項式表現では、次式が成り立つ。
【数１９７】
2019186939.tif 000205
【０４６２】
元ｖとａとの乗算によって次式が得られる。
【数１９８】
2019186939.tif 000206
【０４６３】
ここで、成分ａ１〜ａ４は、バイナリ値、すなわち０または１である。
【０４６４】
例えば、ａ１，ａ２，ａ３，ａ４＝１，０，０，０がα０のベクトル表現である場合には、α０の多項式表現は１である。つまり多項式表現では、
【数１９９】
2019186939.tif 000207
が成り立ち、したがって
【数２００】
2019186939.tif 000208
となるので、この場合には、ベクトルｖは変更されないままであり、ｙ＝ｖが成り立つ。定数α０に関する定数乗算器の出力側は、対応する入力側に直接的に接続されている。
【０４６５】
図１６ａは、ベクトル表現ａ＝１０００を用いる定数α０に関する式（５３）に応じた定数乗算器の１つの考えられる実現形態を示す。
【０４６６】
ここでは、定数α０と乗算すべき、ガロア体の元ｖのベクトル表現の成分ｖ１、ｖ２、ｖ３、ｖ４が供給される定数乗算器の入力側は、積ｙの成分ｙ１、ｙ２、ｙ３、ｙ４を提供する出力側に直接的に接続されている。
【０４６７】
別の例として、定数α１との乗算を考察する。α１のベクトル表現はａ＝０１００であり、α１の多項式表現はｚである。したがって、多項式表現では次式が成り立つ。
【数２０１】
2019186939.tif 000209
【０４６８】
これによって、以下の関係が生じる。
【数２０２】
2019186939.tif 000210
【０４６９】
図１６ｂは、ベクトル表現ａ＝０１００を用いる定数α１に関する式（５４）に応じた定数乗算器の１つの考えられる実現形態を示す。
【０４７０】
成分ｖ１が供給される入力側は、ＸＯＲ回路１６１の第１の入力側に接続されている。ＸＯＲ回路１６１の第２の入力側は、成分ｖ４に接続されている。成分ｖ４は、成分ｙ１を供給する出力側にも印加される。ＸＯＲ回路１６１の出力側は、成分ｙ２を供給する出力側に接続されている。
【０４７１】
成分ｖ２が供給される入力側は、成分ｙ３を供給する出力側に接続されており、また成分ｖ３が供給される入力側は、成分ｙ４を供給する出力側に接続されている。
【０４７２】
付加的な例として、定数α６との乗算を考察する。α６のベクトル表現はａ＝００１１であり、α６の多項式表現はｚ２＋ｚ３である。したがって、多項式表現では次式が成り立つ。
【数２０３】
2019186939.tif 000211
【０４７３】
これによって、以下の関係が生じる。
【数２０４】
2019186939.tif 000212
【０４７４】
図１６ｃは、ベクトル表現ａ＝００１１を用いる定数α６に関する式（５５）に応じた定数乗算器の１つの考えられる実現形態を示す。
【０４７５】
これに関して、定数乗算器は５個のＸＯＲ回路１６２、１６３、１６４、１６５、１６６を含んでいる。
【０４７６】
成分ｖ１が供給される入力側は、ＸＯＲ回路１６４の第１の入力側およびＸＯＲ回路１６５の第１の入力側に接続されている。ＸＯＲ回路１６５の出力側は、ＸＯＲ回路１６６の第１の入力側に案内されている。成分ｖ２が供給される入力側は、ＸＯＲ回路１６２の第１の入力側、ＸＯＲ回路１６３の第１の入力側、およびＸＯＲ回路１６５の第２の入力側に接続されている。成分ｖ３が供給される入力側は、ＸＯＲ回路１６２の第２の入力側およびＸＯＲ回路１６４の第２の入力側に接続されている。成分ｖ４が供給される入力側は、ＸＯＲ回路１６３の第２の入力側およびＸＯＲ回路１６６の第２の入力側に接続されている。
【０４７７】
ＸＯＲ回路１６２の出力側は、成分ｙ１を供給する定数乗算器の出力側に接続されている。ＸＯＲ回路１６３の出力側は、成分ｙ２を供給する定数乗算器の出力側に接続されている。ＸＯＲ回路１６４の出力側は、成分ｙ３を供給する定数乗算器の出力側に接続されている。ＸＯＲ回路１６６の出力側は、成分ｙ４を供給する定数乗算器の出力側に接続されている。
【０４７８】
アドレス誤り検出
１つのオプションでは、データビットがアドレス情報を含んでいる。アドレス情報として、アドレスビット、アドレスビットのグループ、アドレスビットから導出されたビット、またはアドレスビットから導出されたビットのグループが考えられる。アドレスビットのグループを、アドレスバイトと称することもできる。
【０４７９】
これによって、アドレス誤りも効率的に検出することができる。
【０４８０】
メモリアドレスａｄは、特にｎ個のアドレスビットａｄ０，．．．，ａｄｎ−１を有することができるので、
【数２０５】
2019186939.tif 000213
（ただし、ｎは例えば２×ｍ以上）が成り立つ。ここで、ｍはバイトにおけるビットの個数である。
【０４８１】
メモリアドレスａｄは、変換ＴｒによってＬ個のアドレスバイト
【数２０６】
2019186939.tif 000214
に変換される。ただし、Ｌ≧２である。さらに、
【数２０７】
2019186939.tif 000215
が成り立つ。
【０４８２】
ここではアドレスバイトが、例示的にｍ個のビットを有する。
【０４８３】
記憶すべきデータビットはデータバイトＵを形成する。それらのデータバイトＵおよびアドレスバイトＡｄからは、データバイト、アドレスバイトおよび検査バイトが誤り符号Ｃｏｄの符号語を形成するように検査バイトＣが決定される。したがって、検査バイトＣは、データバイトＵにもアドレスバイトＡｄにも依存する。
【０４８４】
誤り符号Ｃｏｄは、バイト誤りを訂正するか、またはバイト誤りを検出して訂正する誤り符号であってよい。例えば、誤り符号はリード・ソロモン符号であってもよいし、一般化リード・ソロモン符号であってもよい。
【０４８５】
アドレッシング可能なメモリへの書き込みの際に、データバイトＵおよび対応する検査バイトＣがアドレスａｄに記憶される。検査バイトＣは、データバイトＵ、アドレスバイトＡｄおよび検査バイトＣが、誤り符号Ｃｏｄの符号語を形成するように決定されている。
【０４８６】
この際、書き込みアドレスａｄのアドレスビットａｄ０，．．．，ａｄｎ−１は、変換Ｔｒによって、Ｌ個のアドレスバイトＡｄ０，．．．，ＡｄＬ−１に変換される。
【０４８７】
ここでは例示的に、アドレスバイトまたはアドレスビットまたはアドレスビットから導出されたビットは記憶されない。何故ならば、アドレスは読み出しアクセスの際に提供され、したがって、逆変換の際に相応に考慮することができるからである。
【０４８８】
読み出しアクセスの際に、メモリにおいて読み出しアドレスａｄ’へのアクセスが行われる。この際、場合によっては誤りのあるデータバイトＵ’と、場合によっては誤りのある対応する検査バイトＣ’とが読み出される。読み出しアドレスａｄ’のアドレスビット
【数２０８】
2019186939.tif 000216
は、読み出しアクセスの際に提供され、変換ＴｒによってＬ個のアドレスバイトＡｄ’に変換される。ここでもまた、やはりＬ≧２である。
【０４８９】
データバイトに誤りが存在する際に、その誤りを誤り符号に基づき訂正できる場合には（また訂正されるべき場合には）、データバイトのうちの少なくとも１つにおける誤りが訂正される。
【０４９０】
検査バイトに誤りが存在する際に、１つのオプションでは、その誤りが誤り符号によって訂正できる場合には、少なくとも１つの検査バイトにおける誤りも訂正される。
【０４９１】
付加的に、Ｌ個のアドレスバイトにおける任意の誤りも、誤り符号を使用して検出される。
【０４９２】
メモリアドレスａｄへの読み出しアクセスが行われるべきであるが、しかしながら実際にはメモリアドレスａｄ’≠ａｄにアクセスが行われる場合には、アドレス誤りが存在する。この場合には、コーディングされたメモリアドレスａｄは実際に使用されるメモリアドレスａｄ’と同じではないので、そのような誤りは検出される。すなわち換言すれば、２つのメモリアドレスａｄおよびａｄ’が同じでない場合には、アドレス誤りを確認することができる。
【０４９３】
誤り符号Ｃｏｄがτバイト誤り訂正符号（ただし、τ≧２）であり、かつ誤りのあるアドレスビットが変換Ｔｒによって変換されるＬ＝τ個のアドレスバイトが存在する場合には、アドレス誤りは以下のようにして検出される。つまり、τ個のアドレスバイトのうちの少なくとも１つに対して、バイト誤りを示すバイト誤り位置信号が決定されると、誤りが検出される。誤り符号がτバイト誤り訂正符号であるので、Ｌ＝τ個のアドレスバイトのうちの少なくとも１つを改ざんするあらゆるアドレス誤りが検出される。
【０４９４】
アドレスバイトは、バイト誤り位置信号が決定され、かつバイト訂正値を決定する必要がない、誤り符号のバイトである。
【０４９５】
アドレスバイトのうちの少なくとも１つを改ざんするアドレス誤りが発生した場合には、そのアドレス誤りを、そのアドレスバイトに対するバイト誤り位置信号に基づいて、一義的にアドレス誤りとして識別することができる。
【０４９６】
誤り符号Ｃｏｄがｔ個のバイト誤り訂正符号および（ｔ＋１）個のバイト誤り検出符号（ただし、ｔ≧１かつＬ＝ｔ＋１≧２）であり、かつ誤りのあるアドレスビットが変換Ｔｒによって変換されたものである、Ｌ＝ｔ＋１個のアドレスバイトが存在する場合には、アドレス誤りを以下のように検出することができる。
１．ｔ＋１個のアドレスバイトのうちの少なくとも１つに対して、バイト誤りを示すバイト誤り位置信号が決定される場合には、誤りが検出される。誤り符号はｔバイト誤り訂正符号であるので、最大でｔ個のアドレスバイトを改ざんするあらゆるアドレス誤りが検出される。
２．全部でＬ＝ｔ＋１個のアドレスバイトがアドレス誤りによって改ざんされる場合には、（ｔ＋１）個のバイト誤りが存在する。誤り符号は（ｔ＋１）個のバイト誤り検出符号であるので、この場合には、（ｔ＋１）個のバイト誤りが検出される。この場合には、例えばデータバイトまたは検査バイトにおける他の考えられる（ｔ＋１）個のバイト誤りと、アドレスバイトにおける誤りと、は区別されない。これは検出できるが、しかしながら訂正できない誤りであるので、そのような区別も必要ない。
【０４９７】
既に説明したように、アドレスバイトは、バイト誤り位置信号が決定されるが、しかしながらバイト訂正値を決定する必要はない誤り符号のバイトである。この場合には、アドレス誤り、すなわち誤ったアドレスへのアクセスが存在することが検出されれば十分である。
【０４９８】
Ｌ個のアドレスバイトに対するバイト誤り位置信号を、少なくとも部分的に同時に（すなわち広義の意味で時間的に並列に）決定することができる。相応に、バイト誤り位置信号のうちの少なくとも２つを同時に決定することもできる。
【０４９９】
これまでは、アドレスビットａｄが変換ＴｒによってＬ個のアドレスバイトＡｄに変換され、また変換されたアドレスバイトのアドレスビットがメモリに格納されないヴァリエーションを説明した。むしろ、アドレスは、データの読み出しの際に、例えばアドレス発生器によって提供される。
【０５００】
１つの別のヴァリエーションでは、アドレスビットも（完全にまたは部分的に）メモリに記憶される。代替的または付加的に、アドレスビットから導出されたビットも、例えばアドレスビットのパリティビットもメモリに格納することができる。
【０５０１】
さらに１つのオプションでは、アドレスビットに由来するバイトおよび／またはアドレスビットから導出されたビットを基礎とするバイトがメモリに記憶される。
【０５０２】
さらに１つのオプションでは、アドレスバイトのビットがデータバイトのビットと、かつ／または検査ビットのビットと、例えば成分毎のＸＯＲ演算によって論理結合され、また結合されたビットがメモリに記憶される。
【０５０３】
メモリアドレスのアドレスバイトへの変換を、種々の回路、例えば組合せ回路またはシーケンシャル回路によって、例えばフィードバックシフトレジスタを使用して、または処理ユニット、例えばプロセッサユニット、マイクロプロセッサおよび／またはマイクロコントローラを用いて行うことができる。
【０５０４】
つまり１つのオプションでは、アドレスビットが線形回路によってＸＯＲゲートを使用してアドレスバイトに変換される。
【０５０５】
また１つのオプションでは、アドレスビットがリードオンリメモリ（ＲＯＭ）の形態の非線形回路によってアドレスバイトに変換される。
【０５０６】
さらに１つのオプションでは、アドレスビットがプロセッサユニット、マイクロプロセッサおよび／またはマイクロコントローラを使用してアドレスバイトに変換される。
【０５０７】
さらに１つのオプションでは、アドレスビットがコンピュータプログラムを用いてアドレスバイトに変換される。
【０５０８】
すなわちこれによって、例えばデータビットを処理することで、アドレス誤りの検出を実現する方法も提案することができ、この方法では、
−第１の変換によって、データビットが第１のデータバイトに変換され、
−第１のメモリアドレスのアドレスビットが第１のアドレスバイトに変換され、
−第１のデータバイトおよび第１のアドレスバイトを使用して、第１のデータバイト、第１のアドレスバイトおよび第１の検査バイトが誤り符号の符号語を形成するように第１の検査バイトが決定され、
−第１のデータバイトおよび第１の検査バイトがメモリに記憶され、
−所定の第２のメモリアドレスにおける第２のデータバイトおよび第２の検査バイトがメモリから読み出され、
−第２のメモリアドレスのアドレスビットが第２のアドレスバイトに変換され、
−第２のデータバイト、第２のアドレスバイトおよび第２の検査バイトが誤り符号の符号語を形成するか否かが検査され、
−符号語が存在しない場合には、アドレスバイトに対してバイト誤り位置信号が決定される。
【０５０９】
アドレスバイトに対するバイト誤り位置信号に基づき、アドレス誤りが存在するか否かを決定することができる。
【０５１０】
１つのオプションでは、少なくとも２つのアドレスバイトに対してバイト誤り位置信号が決定される。
【０５１１】
１つの別のオプションでは、バイト誤り位置信号のうちの少なくとも２つが少なくとも部分的に時間的に重畳されて、または同時に決定される。相応に、バイト誤り位置信号のうちの少なくとも２つを時間的に連続して決定することもできる。
【０５１２】
さらに１つのオプションでは、アドレスビットのアドレスバイトへの変換が、線形変換を使用して行われる。線形変換を、組合せ回路として実現することができる。
【０５１３】
この場合、有利には、既述のアドレス誤り検出によって、誤りのあるアドレスに基づいて誤ったデータへのアクセスが行われることが効率的に阻止される。そうでなければ、このことは、誤って選択されたデータそれ自体は確かに正しいものなので、後段の誤り検出回路によって発見されない虞がある。
【０５１４】
本明細書において説明したアプローチによって、付加的に、アドレスビットのグループにおける複数の誤りまたはアドレスビットの複数のグループにおける誤りを検出することができる。
【０５１５】
術語
以下に、本明細書において使用した符号および関係の一部を一覧表で再度示す。
【表７】
2019186939.tif 000217
【０５１６】
参考文献目録：
［１］Ｆｕｊｉｗａｒａ，Ｅ．：「Ｃｏｄｅ  Ｄｅｓｉｇｎ  ｆｏｒ  Ｄｅｐｅｎｄａｂｌｅ  Ｓｙｓｔｅｍｓ」、Ｗｉｌｅｙ  ２００６、第６５頁
［２］Ｌｉｎ，Ｓ．；Ｃｏｓｔｅｌｌｏ，Ｄ．：「Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ」、Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ  １９８３、第３２頁および第３３頁
［３］Ｏｋａｎｏ，Ｈ．；Ｉｍａｉ，Ｈ．：「Ａ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｄｅｃｏｄｅｒｓ  Ｕｓｉｎｇ  ＲＯＭ’ｓ  ｆｏｒ  Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ  ａｎｄ  Ｒｅｅｄ−Ｓｏｌｏｍｏｎ  Ｃｏｄｅｓ」、Ｔｒａｎｓ．Ｃｏｍｐｕｔｅｒｓ、Ｃ−３６、第１１６５頁〜第１１７１頁、１９８７
［４］Ｒａｏ，Ｔ．；Ｆｕｊｉｗａｒａ，Ｅ．：「Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  ｃｏｄｅｓ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ」，Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ  １９８９、第２２２頁〜第２２６頁
【符号の説明】
【０５１７】
１１  メモリ
１２  変換回路
１３０〜１３Ｌ−１  誤り検出回路
２１  コーディングユニット
２２  変換回路
２３  メモリ
２４０〜２４Ｌ−１  誤り検出回路
２５  逆変換回路
２６  バイト訂正値生成器
２７０〜２７Ｌ−１  ＸＯＲ回路
３１  変換回路
３２  検査ビット生成器
３３  検査ビット変換回路
３４  メモリ
３５０〜３５Ｌ−１  誤り検出回路
３６  逆検査ビット変換回路
３７  バイト訂正値生成器
３８０〜３８Ｌ−１  ＸＯＲ回路
３９  逆変換回路
４０  誤り検出回路
４１  誤り検出回路
５１０〜５１Ｌ−１  変換回路（バイト毎）
５２０〜５２Ｌ−１  逆変換回路（バイト毎）
６１  誤り検出回路
７１  誤り検出回路
８１０〜８１Ｌ−１  ＮＯＲ回路
８２０〜８２Ｌ−１  ＡＮＤ回路
８３  ＯＲ回路
９１０  入力側
９１１  入力側
９１２  入力側
９１３  入力側
９１４  入力側
９１  定数乗算器
９２  ＸＯＲ回路
９３  ガロア体乗算器
９４  定数乗算器
９５  ＸＯＲ回路
９６  反転器
９７  定数乗算器
９８  ＸＯＲ回路
９９  定数乗算器
９１５  部分回路
９１６  部分回路
９１７  加算器
９１８  組合せ回路
１０１  バイト訂正値生成器
１０２  定数乗算器
１０３  ＸＯＲ回路
１０４  ＡＮＤ回路
１０５  ＸＯＲ回路
１０６  入力線
１０７  入力線
１１１  バイト訂正値生成器
１１２  バイト訂正値生成器
１１３  バイト訂正値生成器
１１４  ＸＯＲ回路
１１５  ＸＯＲ回路
１１６  ＸＯＲ回路
１２１  組合せ回路
１２２  反転器
１３１４  ＸＯＲ回路
１３１７  ＸＯＲ回路
１３１８  ＸＯＲ回路
１３２４  ＸＯＲ回路
１３２５  ＸＯＲ回路
１３２８  ＸＯＲ回路
１３２９  ＸＯＲ回路
１３３５  ＸＯＲ回路
１３３６  ＸＯＲ回路
１３３８  ＸＯＲ回路
１３４６  ＸＯＲ回路
１３４７  ＸＯＲ回路
１３４９  ＸＯＲ回路
１３１１０  ＸＯＲ回路
１３１１２  ＸＯＲ回路
１３１１３  ＸＯＲ回路
１３１１４  ＸＯＲ回路
１３２１０  ＸＯＲ回路
１３２１１  ＸＯＲ回路
１３２１２  ＸＯＲ回路
１３３１０  ＸＯＲ回路
１３３１１  ＸＯＲ回路
１３３１２  ＸＯＲ回路
１３３１３  ＸＯＲ回路
１３２１１  ＸＯＲ回路
１３４１１  ＸＯＲ回路
１３４１２  ＸＯＲ回路
１３４１３  ＸＯＲ回路
１３４１４  ＸＯＲ回路
１４１０  入力線
１４１１  入力線
１４１２  入力線
１４１３  入力線
１４２  定数乗算器
１４３  ＸＯＲ回路
１４４  ＮＯＲ回路
１４５  ＡＮＤ回路
１４６  ＸＯＲ回路
１４７  ＸＯＲ回路
１４８  ＡＮＤ回路
１４９  反転器
１５１  変換回路
１５２  変換回路
１５３  加算回路
１５４  ＮＯＲ回路（否定論理和回路）
１５５  ＮＯＲ回路（否定論理和回路）
１５６  変換回路
１５７  ＮＯＲ回路（否定論理和回路）
１５８  ＡＮＤ回路
１６１  ＸＯＲ回路
１６２  ＸＯＲ回路
１６３  ＸＯＲ回路
１６４  ＸＯＲ回路
１６５  ＸＯＲ回路
１６６  ＸＯＲ回路
【図１】
2019186939.tif 000221
【図２ａ】
2019186939.tif 000222
【図２ｂ】
2019186939.tif 000223
【図３ａ】
2019186939.tif 000224
【図３ｂ】
2019186939.tif 000225
【図４】
2019186939.tif 000226
【図５ａ】
2019186939.tif 000227
【図５ｂ】
2019186939.tif 000228
【図６】
2019186939.tif 000229
【図７】
2019186939.tif 000230
【図８】
2019186939.tif 000231
【図９ａ】
2019186939.tif 000232
【図９ｂ】
2019186939.tif 000233
【図１０】
2019186939.tif 000234
【図１１】
2019186939.tif 000235
【図１２】
2019186939.tif 000236
【図１３】
2019186939.tif 000237
【図１４】
2019186939.tif 000238
【図１５】
2019186939.tif 000239
【図１６ａ】
2019186939.tif 000240
【図１６ｂ】
2019186939.tif 000241
【図１６ｃ】
2019186939.tif 000242
【外国語明細書】
2019186939.tif 000243
2019186939.tif 000244
2019186939.tif 000245
2019186939.tif 000246
2019186939.tif 000247
2019186939.tif 000248
2019186939.tif 000249
2019186939.tif 000250
2019186939.tif 000251
2019186939.tif 000252
2019186939.tif 000253
2019186939.tif 000254
2019186939.tif 000255
2019186939.tif 000256
2019186939.tif 000257
2019186939.tif 000258
2019186939.tif 000259
2019186939.tif 000260
2019186939.tif 000261
2019186939.tif 000262
2019186939.tif 000263
2019186939.tif 000264
2019186939.tif 000265
2019186939.tif 000266
2019186939.tif 000267
2019186939.tif 000268
2019186939.tif 000269
2019186939.tif 000270
2019186939.tif 000271
2019186939.tif 000272
2019186939.tif 000273
2019186939.tif 000274
2019186939.tif 000275
2019186939.tif 000276
2019186939.tif 000277
2019186939.tif 000278
2019186939.tif 000279
2019186939.tif 000280
2019186939.tif 000281
2019186939.tif 000282
2019186939.tif 000283
2019186939.tif 000284
2019186939.tif 000285
2019186939.tif 000286
2019186939.tif 000287
2019186939.tif 000288
2019186939.tif 000289
2019186939.tif 000290
2019186939.tif 000291
2019186939.tif 000292
2019186939.tif 000293
2019186939.tif 000294
2019186939.tif 000295
2019186939.tif 000296
2019186939.tif 000297
2019186939.tif 000298
2019186939.tif 000299
2019186939.tif 000300
2019186939.tif 000301
2019186939.tif 000302
2019186939.tif 000303
2019186939.tif 000304
2019186939.tif 000305
2019186939.tif 000306
2019186939.tif 000307
2019186939.tif 000308
2019186939.tif 000309
2019186939.tif 000310
2019186939.tif 000311
2019186939.tif 000312
2019186939.tif 000313
2019186939.tif 000314
2019186939.tif 000315
2019186939.tif 000316
2019186939.tif 000317
2019186939.tif 000318
2019186939.tif 000319
2019186939.tif 000320
2019186939.tif 000321
2019186939.tif 000322
2019186939.tif 000323
2019186939.tif 000324
2019186939.tif 000325
2019186939.tif 000326
2019186939.tif 000327
2019186939.tif 000328
2019186939.tif 000329
2019186939.tif 000330
2019186939.tif 000331
2019186939.tif 000332
2019186939.tif 000333
2019186939.tif 000334
2019186939.tif 000335
2019186939.tif 000336
2019186939.tif 000337
2019186939.tif 000338
2019186939.tif 000339
2019186939.tif 000340
2019186939.tif 000341
2019186939.tif 000342
2019186939.tif 000343
2019186939.tif 000344
2019186939.tif 000345
2019186939.tif 000346
2019186939.tif 000347
2019186939.tif 000348
2019186939.tif 000349
2019186939.tif 000350
2019186939.tif 000351
2019186939.tif 000352
2019186939.tif 000353
2019186939.tif 000354
2019186939.tif 000355
2019186939.tif 000356
2019186939.tif 000357
2019186939.tif 000358
2019186939.tif 000359
2019186939.tif 000360
2019186939.tif 000361
2019186939.tif 000362
2019186939.tif 000363
2019186939.tif 000364