"各バイトがnビットのデータを有するmバイトの情報部データと、前記情報部データの1バイト毎に1ビットずつ設けられた合計mビットのパリティビットとを含むデータの前記情報部データから、前記情報部データの誤りを訂正する誤り符号を構成するビットのうち、前記パリティビットに一致するビット以外のビットを生成する誤り訂正符号生成部と、前記データの排他的論理和を生成して、前記情報部データの誤りを検出する誤り検出部と、前記誤り検出部が前記情報部データの誤りを検出した場合、前記情報部データの誤りの訂正を、前記データに含まれるパリティビットと、前記生成された誤り訂正符号の部分とを用いて行う誤り訂正部と、を有することを特徴とする誤り訂正装置。前記誤り訂正符号生成部は、前記パリティビット付きデータの前記情報部データのi番目のバイトを構成するnビットデータを、n個の要素を有するバイトベクトルviである、で表現すると共に、前記パリティビット付きデータの前記情報部データを、m個のバイトベクトルを要素として有する情報ベクトルVである、で表現し、且つ、行列Bを、但し、bbは、任意の整数i及びj但し、i≠jであって、0≦i≦n-1且つ0≦j≦n-1において、互いに線形独立な、零ベクトルではないd次の列ベクトルとした場合において、但し、Tは行列の転置を表し、は排他的論理和演算を表すに従い、d次のベクトルC2の値を生成する排他的論理和演算回路を有することを特徴とする請求項1記載の誤り訂正装置。前記行列Bにおける列ベクトルbの成分における1の個数が、任意の整数i但し、0≦i≦n-1において偶数であることを特徴とする請求項2記載の誤り訂正装置。前記誤り訂正装置は、前記生成された誤り訂正符号のうち前記一の部分を格納する部分格納部を更に備え、前記パリティビット付きデータは、前記誤り訂正装置に接続された演算器がレジスタに出力したデータであり、前記誤り訂正部は、前記レジスタに格納された前記パリティビット付きデータのパリティビットと、前記部分格納部に格納された前記誤り訂正符号の前記一の部分とを用いて前記誤りの訂正を行うことを特徴とする請求項1から3のいずれか1項記載の誤り訂正装置。各バイトがnビットのデータを有するmバイトの情報部データと、前記情報部データの1バイト毎に1ビットずつ設けられた合計mビットのパリティビットとを含むパリティビット付きデータの前記情報部データから、前記情報部データについての誤り訂正符号の一の部分であり、前記mビットのパリティビットに一致する部分以外の一の部分を生成し、前記パリティビット付きデータの排他的論理和を生成し、前記パリティビット付きデータの情報部データの誤りを検出し、前記パリティビット付きデータの情報部データの誤りを検出した場合、前記パリティビット付きデータの情報部データの誤りの訂正を、前記パリティビット付きデータに含まれるパリティビットと、前記生成された誤り訂正符号の前記一の部分とを用いて行うことを特徴とする誤り訂正方法。各バイトがnビットのデータを有するmバイトの情報部データと、前記情報部データの1バイト毎に設けられた合計mビットのパリティビットとを含むパリティビット付きデータを出力する演算器と、前記演算器から出力されるパリティビット付きデータを格納するレジスタと、前記演算器が前記レジスタから読み出したパリティビット付きデータの排他的論理和を生成して前記読み出したパリティビット付きデータの誤りを検出する誤り検出部と、前記誤り検出部が前記パリティビット付きデータの誤りを検出した場合、前記パリティビット付きデータの情報部データの誤りの訂正を行う誤り訂正装置を備える演算装置において、前記誤り訂正装置は、前記演算器が前記レジスタに格納する前記パリティビット付きデータの前記情報部データから、前記情報部データについての誤り訂正符号の一の部分であり、前記パリティビット付きデータの前記mビットのパリティビットに一致する部分以外の一の部分を生成する誤り訂正符号生成部と、前記誤りが検出されたパリティビット付きデータの情報部データの誤りの訂正を、前記パリティビット付きデータに含まれるパリティビットと、前記生成された誤り訂正符号の前記一の部分とを用いて行う誤り訂正部を有することを特徴とする演算装置。前記誤り訂正符号生成部は、前記パリティビット付きデータの前記情報部分データにおけるi番目のバイトを構成するnビットデータを、n個の要素を有するバイトベクトルviである、で表現すると共に、前記パリティビット付きデータの前記情報部分データを、m個のバイトベクトルを要素として有する情報ベクトルVである、で表現し、且つ、行列Bを、但し、bbは、任意の整数i及びj但し、i≠jであって、0≦i≦n-1且つ0≦j≦n-1において、互いに線形独立な、零ベクトルではないd次の列ベクトルとした場合において、但し、Tは行列の転置を表し、は排他的論理和演算を表すに従い、d次のベクトルC2の値を生成する排他的論理和演算回路を有することを特徴とする請求項6記載の演算装置。前記行列Bにおける列ベクトルbの成分における1の個数が、任意の整数i但し、0≦i≦n-1において偶数であることを特徴とする請求項7記載の演算装置。前記演算装置はさらに、前記誤り訂正符号生成部により生成された誤り訂正符号の前記一の部分を格納する部分格納部を有し、前記誤り訂正部は、前記レジスタに格納される前記パリティビット付きデータのパリティビットと、前記部分格納部に格納される前記誤り訂正符号の前記一の部分とを用いて前記誤りの訂正を行うことを特徴とする請求項6から8のいずれか1項記載の演算装置。例えば、プロセス技術の微細化によるソフトエラーの増加への対応のため、RAS機能が既に装備されている既存の回路におけるRAS機能の能力を向上させる必要が生じる場合がある。図1について説明する。図1は、パリティ検査機能を備える演算装置の構成例を図解したものである。図1の演算装置1は、演算器2と、汎用レジスタGPR:GeneralPurposeRegister3と、1ビットエラー検出回路4とを備えている。演算器2は、パリティ検査機能のための、パリティビットの生成回路及びパリティ検査回路を内蔵している。この演算器2には、パリティビット付きデータが入力され出力される。なお、パリティビット付きデータとは、そのデータが本来有している情報が表されている情報部データと、当該情報部データについてのパリティビットとを含むデータである。なお、以下の説明では、情報部データは、各バイトがnビットのデータで構成されており、バイト数がmバイトのデータ但し、m及びnは、どちらも1以上の整数であるとする。そして、パリティビット付きデータには、情報部データを構成している1バイト毎に1ビットのパリティビットを含むものとする。つまり、パリティビット付きデータは、m×nビットの情報部データとnビットのパリティビットとを含むものとする。汎用レジスタ3は、演算器2に入力される、若しくは演算器2から出力されるパリティビット付きデータを保持しておくレジスタであり、複数用意されている。なお、図3において、dataは情報部データの格納領域を表しており、pは、dataに格納されている情報部データについてのパリティビットの格納領域を表している。1ビットエラー検出回路4は、演算器2が汎用レジスタ3から読み出したパリティビット付きデータの誤りを、パリティ検査により検出する回路である。より具体的には、1ビットエラー検出回路4は、パリティビット付きデータにおける1バイトのデータを構成しているn個のビットデータと当該1バイトのデータについてのパリティビットとのXOR演算を、mバイトの各データについて行う回路である。この図1の演算装置1において演算処理を実行する際には、まず、演算器2が、演算対象の情報部データを含むパリティビット付きデータを汎用レジスタ3から読み込む。このとき、1ビットエラー検出回路4は、演算器2が汎用レジスタ3から読み出したパリティビット付きデータに対してパリティ検査を行う。ここで、パリティビット付きデータにデータ誤りが検出された場合には、1ビットエラー検出回路4は、データ誤りが検出されたことを示す誤り検出信号を、エラー報告として出力する。図1の演算装置1の制御を行っている不図示の制御部は、1ビットエラー検出回路4から出力された誤り検出信号を受け取ると、汎用レジスタ3に格納されているパリティビット付きデータの誤りの修復のための制御処理を行う。より具体的には、制御部は、誤り検出信号を受け取ると、汎用レジスタ3から、データ誤りが検出されたパリティビット付きデータを読み出す処理を再度実行させる。そして、得られたパリティビット付きデータを、汎用レジスタ3に格納させる処理を演算器2に行わせる。一方、演算器2は、自身でも、汎用レジスタ3から読み出したパリティビット付きデータに対してパリティ検査を行う。そして、誤りのないことが判明した場合に、汎用レジスタ3から読み出したパリティビット付きデータから情報部データを取り出して演算処理を実行して、演算結果データを得る。そして、この演算結果データについてのパリティビットの生成を行い、生成されたパリティビットを演算結果データに付加して得られるパリティビット付きデータを、汎用レジスタ3に格納する。ここで、この図1の演算装置1が備えているRAS機能の能力を向上させるべく、演算装置1のパリティ検査機能をSEC機能若しくはSECDED機能に変更する手法を考える。ここで図2について説明する。図2は、RAS機能の能力を、図1の演算装置1から向上させた演算装置の構成の一例である。図2の演算装置5は、図1の既存の構成から、1ビットエラー検出回路4を削除すると共に、エラー検出訂正回路6、パリティ生成回路7、及びECC誤り訂正符号:ErrorCorrectingCode生成回路8を追加して構成されている。更に、この演算装置5では、パリティビット付きデータの代わりに、情報部データに、SEC機能若しくはSECDED機能に使用されるECCが付加されたECC付きデータが、汎用レジスタ3により保持される。エラー検出訂正回路6は、演算器2が汎用レジスタ3から読み出したECC付きデータを受け取り、そこに含まれているECCを用いて、ECC付きデータの誤りの検出及び訂正を行う。ここで、誤りの訂正を行った場合には、エラー検出訂正回路6は、当該ECC付きデータが格納されていた汎用レジスタ3に、訂正されたECC付きデータを格納する。パリティ生成回路7は、誤りのないECC付きデータをエラー検出訂正回路6から受け取って、当該ECC付きデータに含まれている情報部データについてのパリティビットを生成する。そして、情報部データに当該パリティビットを付加したパリティビット付きデータを、演算器2に入力する。このパリティ生成回路7を設けることで、既存の演算器2に対し、パリティ検査機能を変更するための回路構成の変更を行わずに済む。ECC生成回路8は、演算処理の実行結果を汎用レジスタ3に格納するために演算器2から出力されるパリティビット付きデータに含まれているmバイトの情報部データの全体から、SEC機能若しくはSECDED機能に使用されるECCを生成する。そして、生成されたECCを、演算器2からのパリティビット付きデータに含まれている演算結果データに付加して得られるECC付きデータを汎用レジスタ3に格納する。図2の演算装置5の構成では、演算器2と汎用レジスタ3との間に、エラー検出訂正回路6、パリティ生成回路7、及びECC生成回路8が挿入されている。このため、演算器2と汎用レジスタ3との間のデータ伝送にレイテンシが生じてしまう。また、図2の演算装置5の構成では、汎用レジスタ3は、パリティビット付きデータよりもビット数の多いECC付きデータを保持する必要がある。例えば、情報部データが、各バイトが8ビットのデータで構成されている、バイト数が4バイトのデータ、すなわち、ビット数が32ビットのデータであるとする。この場合、パリティビット付きデータに含まれるパリティビットのビット数は4ビットである。これに対し、32ビットの情報部データに対するSEC機能を実現するには、ECCのビット数は少なくとも6ビット必要である。また、32ビットの情報部データに対するSECDED機能を実現するには、ECCのビット数は少なくとも7ビット必要である。このように、RAS機能の能力をパリティ検査からSEC機能若しくはSECDED機能に向上させると、RAS機能のために必要となる冗長データのビット数が増加する。このため、図1の構成を変更して図2の構成とする場合には、汎用レジスタ3を格納ビット数の多いものへ差し替える変更も行われる。このように、図2の演算装置5を構成するためには、図1の演算装置1の既存の構成に対する大幅な変更が必要となる。1つの側面では、本発明は、RAS機能の性能の向上を図ることを目的とする。本明細書で後述する誤り訂正装置のひとつに、誤り訂正符号生成部と、誤り検出部と、誤り訂正部とを有するものがある。ここで、誤り訂正符号生成部は、各バイトがnビットのデータを有するmバイトの情報部データと、その情報部データの1バイト毎に1ビットずつ設けられた合計mビットのパリティビットとを含むデータの情報部データから、情報部データの誤りを訂正する誤り符号を構成するビットのうち、そのパリティビットに一致するビット以外のビットを生成する。誤り検出部は、上述のデータの排他的論理和を生成して、情報部データの誤りを検出する。そして、誤り訂正部は、誤り検出部が情報部データの誤りを検出した場合、情報部データの誤りの訂正を、上述のデータに含まれるパリティビットと、生成された誤り訂正符号の部分とを用いて行う。1態様によれば、RAS機能の性能を向上が図られる。まず図3について説明する。図3は、誤り訂正装置の追加によりRAS機能の性能を向上させた演算装置の構成図である。図3の演算装置10は、図1の演算装置1に、誤り訂正装置100を追加して構成されている。演算器2は、パリティ検査機能のための、パリティビットの生成回路及びパリティ検査回路を内蔵しており、前述した、m×nビットの情報部データとmビットのパリティビットとを含むパリティビット付きデータを入出力する。汎用レジスタ3は、演算器2に入力される、若しくは演算器2から出力されるパリティビット付きデータを保持するレジスタであり、図3の例では複数用意されている。1ビットエラー検出回路4は、演算器2が汎用レジスタ3から読み出したパリティビット付きデータの誤りを、パリティ検査により検出する回路である。より具体的には、1ビットエラー検出回路4は、読み出したパリティビット付きデータにおける1バイトのデータを構成しているn個のビットデータと当該1バイトのデータについてのパリティビットとのXOR演算を、mバイトの各データについて行う回路である。ここで、パリティビット付きデータにデータ誤りが検出された場合には、1ビットエラー検出回路4は、データ誤りが検出されたことを示している誤り検出信号を出力する。以上のように、図3の演算装置10が備えている演算器2、汎用レジスタ3、及び1ビットエラー検出回路4は、図1の演算装置1が備えているものと同一の構成である。誤り訂正装置100は、SEC機能若しくはSECDED機能を用いてデータの訂正を行う装置である。誤り訂正装置100は、1ビットエラー検出回路4から出力された誤り検出信号を受け取ったときに、汎用レジスタ3に格納されているデータの誤りを訂正する。なお、誤り訂正装置100は、RAS機能としてSECDED機能を採用している場合において、訂正することができない2ビットのデータ誤りを検出した場合には、データ誤りを検出したことを示している誤り検出信号を、エラー報告として出力する。この検出信号は、図1の演算装置1と同様の不図示の制御部に送られて、誤りの修復のための制御処理が行われる。図3の演算装置10の制御を行っている不図示の制御部は、誤り訂正装置100から出力された当該誤り検出信号を受け取った場合には、汎用レジスタ3に格納されているパリティビット付きデータの誤りの修復のための制御処理を行う。誤り訂正装置100の構成について更に詳細に説明する。図4は、図3の誤り訂正装置100の構成を表している。誤り訂正装置100は、ECC生成部110、ECCレジスタ120、誤り検出信号取得部130、及びエラー検出訂正部140を備えている。ECC生成部110は、演算処理の実行結果を汎用レジスタ3に格納するために演算器2から出力されるパリティビット付きデータを、図3に示した節点Aから取り込む。そして、このパリティビット付きデータに含まれているmバイトの情報部データの全体から、SEC機能若しくはSECDED機能に使用するECCを生成する。但し、詳細は後述するが、本実施例では、ECC生成部110は、SEC機能若しくはSECDED機能に必要なECCの全部を生成するのではなく、ECCの一部分を生成し、生成されたECCの一部分を、ECCレジスタ120に格納する。ECCレジスタ120は、ECC生成部110で生成されたECCの一部分を保持しておくレジスタである。汎用レジスタ3の個数と同数のレジスタがECCレジスタ120として用意されおり、これらは一対一に対応付けられている。ECC生成部110は、パリティビット付きデータからECCの一部分を生成すると、生成されたECCの一部分を、当該パリティビット付きデータが格納された汎用レジスタ3に対応付けられているECCレジスタ120に格納する。誤り検出信号取得部130は、1ビットエラー検出回路4から出力される誤り検出信号を、図3に示した節点Bから受け取り、この誤り検出信号の受け取りをトリガとして、エラー検出訂正部140の動作を開始させる。エラー検出訂正部140は、誤り検出信号取得部130からの動作開始指示に従い、1ビットエラー検出回路4によって誤りが検出されたパリティビット付きデータにおける情報部データに対する誤りの検出及び訂正を行う。この誤りの検出及び訂正では、エラー検出訂正部140は、まず、1ビットエラー検出回路4によって誤りが検出されたパリティビット付きデータを汎用レジスタ3から読み出す。また、このとき、エラー検出訂正部140は、当該パリティビット付きデータが保持されていた汎用レジスタ3に対応付けられているECCレジスタ120で保持されているECCの一部分を読み出す。そして、パリティビット付きデータに付加されているパリティビットと、ECCレジスタ120から読み出したECCの一部分とを用いて、当該パリティビット付きデータに含まれている情報部データに対するSEC若しくはSECDEDを行う。なお、エラー検出訂正部140は、誤りの訂正を行った場合には、誤りが検出されたパリティビット付きデータが格納されていた汎用レジスタ3に、訂正されたデータを格納する。なお、エラー検出訂正部140は、SECDEDを行っている場合において、訂正することができない2ビットのデータ誤りを検出した場合には、当該データ誤りを検出したことを示している誤り検出信号を出力する。次に、図3の誤り訂正装置100において行われるデータの誤りの検出及び訂正の手法について説明する。一般に、SEC機能若しくはSECDED機能を実現するデータの誤りの検出及び訂正には、通常のハミング符号HammingCodeが使用されることが多い。まず、誤り訂正装置100でのデータの誤りの検出及び訂正の手法の理解を容易にするために、通常のハミング符号を用いて行うデータの誤りの検出及び訂正について簡単に説明する。なお、以下の説明において使用される行列及びベクトル空間は、全て体F2={0,1}上で定義されるものとする。従って、扱われる数量スカラーは0または1のみであり、その加算及び演算は全てXOR演算に置換できる。ハミング符号を用いる誤り訂正では、検査行列Hと生成行列Gとが用いられる。sビットの情報ビットとtビットの検査ビットとによりu=stビットの符号語が形成されている場合、検査行列Hは、t行u列の行列である。また、生成行列Gは、HGT=GHT=0を満たし、且つ零ではない、s行u列の行列である。なお、GT及びHTは、それぞれ生成行列G及び検査行列Hの転置行列である。符号語を組織符号とした場合、検査行列H及び生成行列Gは、それぞれ下記の[数1]式により表される。なお、[数1]式において、Aはt行s列の行列であり、ATは行列Aの転置行列である。また、It及びIsは、それぞれt次の単位行列及びs次の単位行列である。ここで、sビットの情報ビットを、各ビットの値を各成分の値としたs次の行ベクトルaとして表すと、符号語を表すu次の行ベクトルcは、生成行列Gを用いた下記の[数2]式の演算により生成される。また、符号語の検査においては、検査対象の符号語を表すu次の行ベクトルc’と検査行列Hとの積を求める。ここで、行ベクトルc’に誤りがない場合には、c’=cであるので、下記の[数3]式が成立する。つまり、行ベクトルc’と検査行列Hの転置行列との積が零ベクトルである場合には、検査対象の符号語に誤りがないことが分かる。ここで、検査対象の符号語におけるiビット目の値が、元の符号語と異なっているすなわち、ビットの値が反転している場合を考える。この場合は、c’=ceiと表すことができる。但し、行ベクトルeiは、i番目の成分の値のみが1であるu次の基本ベクトルである。このとき、行ベクトルc’と検査行列Hの転置行列との積は、下記の[数4]式のように表される。ここで、[数4]式の右辺は、検査行列Hの第i列を転置して行ベクトルとしたものである。従って、この行ベクトルを転置した列ベクトルに一致する列の位置を、検査行列Hから見い出すことで、検査対象の符号語において誤っているビットの位置を特定することができ、特定されたビットの値を反転することで、誤りを訂正することができる。但し、この列ベクトルに一致する列が検査行列Hに1つのみであるためには、検査行列Hの各列は互いに異なっていることが必要である。また、成分が全て零である列が検査行列Hに存在すると、検査対象の符号語に誤りのない場合との区別が付けられないので、検査行列Hには、成分が全て零である列が存在しないことも必要である。なお、ハミング符号を用いてsビットの情報ビットに対する1ビットの誤りの検出及び訂正を行うために必要とされる検査ビットのビット数tは、t=[log2s1]である。なお、関数[x]は、x以上の大きさである最小の整数を表すものとする。以上のハミング符号は、SEC機能を実現するためのものである。このハミング符号の生成により得られたuビットの符号語の各ビットの排他的論理和演算を行って1ビットのパリティビットを生成して、当該符号語についてのパリティ検査と上述したハミング符号によるSECとを行うと、SECDED機能が実現される。このようにして実現されるSECDED機能は、拡張ハミング符号EnhancedHammingCodeと称されている。なお、拡張ハミング符号を用いてSECDED機能を実現するために必要とされる検査ビットのビット数tは、t=[log2s1]1である。以上のハミング符号についての説明を踏まえて、誤り訂正装置100でのデータの誤りの検出及び訂正の手法について説明する。誤り訂正装置100では、m×nビットの情報部データの誤り及び訂正に使用するECCのうちのmビットを、情報部データを構成しているmバイトのバイトデータの各々についてのパリティビットに一致させる。まず、このようなデータの誤りの検出及び訂正を行う場合の検査行列Hについて説明する。誤り訂正装置100では、下記の[数5]式により定義される検査行列Hを使用する。この検査行列Hは、前述したm×nビットの情報部データと当該情報部データについてのECCとで構成される符号語ECC付きデータの検査に使用される。なお、ここで、このECCにおいてのmビットのパリティビットに一致する部分以外の部分のビット数をdビットとする。従って、この場合のECCのビット数kはk=mdであり、ECC付きデータのビット数はm×nmdビットである。なお、dの値は、SEC機能を実現する場合にはd=[log2n1]とする。また、SECDED機能を実現する場合には、このdの値は、d=[log2n1]1とする。[数5]式において、Im及びIdは、それぞれm次の単位行列及びd次の単位行列であり、O1及びO2は、それぞれm行d列の零行列及びd行m列の零行列である。つまり、[数5]式に示されている行列においてIm及びIdは並びにO1及びO2により構成されている部分は、前掲した[数1]式に示されている検査行列Hにおける単位行列Itに相当する。一方、[数5]式に示されている行列においてA、...、A及びB、...、Bにより構成されている部分は、前掲した[数1]式に示されている検査行列Hにおける行列Aに相当する。[数5]式において、A但し、i=0,1,2,...,m-1は、下記の[数6]式により定義されるm行n列の行列である。なお、[数6]式において、eは、m次の列ベクトルであって先頭行を第0行としたときの第i行の成分の値のみが1である基本ベクトルである。従って、[数6]式のAの各成分き、[数7]式のように表される。[数5]式におけるAの成分として、[数7]式に示したものを用いることによって、ECCのうちのmビットが、情報部データを構成しているmバイトのバイトデータの各々についてのパリティビットに一致するようになる。また、[数5]式におけるA、Im、Id、O1、及びO2が以上のように定義されたことで、検査行列Hに必要とされる前述の2つの条件の一方である、成分が全て零である列が存在しないことが満たされる。[数5]式における、B但し、i=0,1,2,...,m-1は、検査行列Hに必要とされる前述の2つの条件の他方である、検査行列Hの各列が互いに異なっているという条件を満たすように定義する。より具体的には、Bを下記の[数8]式のように定義する。なお、SEC機能を実現する場合には、[数8]式において、b及びbを、零ベクトルではなく、且つ、任意の整数i及びj但し、i≠jであって、0≦i≦n-1且つ0≦j≦n-1において互いに線形独立であるd次の列ベクトルとする。また、SECDED機能を実現する場合には、更に、全てのd次列ベクトルbについて、d個の成分のうち値が1である成分の個数を偶数個とする。なお、このような条件を満たすBは複数存在する。次に、以上のようにして定義される検査行列Hの具体例を挙げる。まず、検査行列Hの第一の例として、n=8であり、m=4である32ビットの情報部データについてSEC機能を実現するための検査行列Hの一例を求める。このとき、dの値は、d=[log2n1]=[log281]=4である。この場合、A、Im、Id、O1、及びO2の各行列の各成分は、下記の[数9]式のように値が定まる。また、行列Bについては、この例では、下記の[数10]式に成分を示した行列Bを、B1、B2、B3、及びB4の全てについて用いることとする。この[数10]式の行列Bは、各列ベクトルが、零ベクトルではなく且つ互いに線形独立であるので、前述した、SEC機能を実現するためのBの条件を満たしている。これらの[数9]式及び[数10]式に示した値を[数5]式に代入すると、下記の[数11]式に値を示す検査行列Hが得られる。次に、検査行列Hの第二の例として、n=8であり、m=4である32ビットの情報部データについてSECDED機能を実現するための検査行列Hの一例を求める。このとき、dの値は、d=[log2n1]1=[log281]1=5である。この場合、A、Im、Id、O1、及びO2の各行列の各成分は、下記の[数12]式のように値が定まる。また、行列Bについては、この例では、下記の[数13]式に成分を示した行列Bを、B1、B2、B3、及びB4の全てについて用いることとする。この[数13]式の行列Bは、各列ベクトルが、零ベクトルではなく且つ互いに線形独立であり、更に、各列ベクトルの5個の成分のうち値が1である成分の個数がいずれも偶数個である。従って、この行列Bは、前述した、SECDED機能を実現するためのBの条件を満たしている。これらの[数12]式及び[数13]式に示した値を[数5]式に代入すると、下記の[数14]式に値を示す検査行列Hが得られる。次に、ECCにおいて、m×nビットの情報部データについてのmビットのパリティビットに一致する部分以外の部分を生成する手法について説明する。まず、m×nビットの情報部データを1行に並べた体F2上のベクトルを考える。前述したように、この情報部データは、各バイトがnビットのデータで構成されているmバイトのデータであるので、この情報部データを、下記の[数15]式に示した情報ベクトルVで表現する。この情報ベクトルVの各成分vijは、値が0又は1であるすなわち、体F2の元である。。ここで、情報ベクトルVの各成分vijをバイト単位で区切って、バイトベクトルviを[数16]式のように定義し、このバイトベクトルを用いて、情報ベクトルVを[数17]式のように表現する。次に、前述したパリティビット付きデータを表すベクトルVpと、SEC機能若しくはSECDED機能に使用するECCを情報部データに付加したECC付きデータを表すベクトルVcとを、体F2上のベクトルとして、[数18]式のように定義する。なお、[数18]式において、Pは、パリティビット付きデータにおけるmビットのパリティビットを1行に並べたパリティビットベクトルであり、piは、このパリティビットベクトルPの各成分である。また、Cは、ECC付きデータにおけるkビットのECCを1行に並べたECCベクトルであり、ciは、このECCベクトルCの各成分である。なお、パリティの定義により、パリティビットベクトルPの各成分piは、情報ベクトルVの各成分vijと、下記の[数19]式の関係を有している。なお、[数19]式において使用されている演算子は、体F2上の加算、すなわちXOR演算を表している。以降の説明においても、演算子はXOR演算を表すものとし、和若しくは加算の語も、XOR演算を表すものとする。なお、以下の説明では、ECCベクトルCを、m次の行ベクトルC1と、d次の行ベクトルC2とを用いて、下記の[数20]式のように表すこともある。次に、ベクトルVcで表される前述したECC付きデータが、検査行列Hによって生成されるための必要十分条件は、下記の[数21]式を満たすことである。なお、[数21]式において、VcTは、前述したベクトルVcを転置した列ベクトルであり、右辺の0は、零ベクトルであるk次の列ベクトルである。なお、この[数21]式は、前掲した[数3]式より明らかである。この[数21]式の左辺を下記の[数22]式のように変形する。この[数22]式の右辺に関して、下記の[数23]式及び[数24]式が成立する。従って、[数22]式から、下記の[数25]式が得られる。この[数25]式と前掲した[数21]式との関係により、ベクトルVcで表される前述したECC付きデータが、検査行列Hによって生成されるための必要十分条件は、下記の[数26]式を満たすことである。この[数26]式の両辺の対応関係を考慮すると、ECCのうちの一部ベクトルC1で表されている部分は、パリティビットベクトルPで表される、パリティビット付きデータにおけるmビットのパリティビットそのものであることが分かる。また、ECCのうちの残りの部分ベクトルC2で表されている部分は、行列Bと、バイトベクトルviで表される、情報部データにおけるi番目の1バイトデータとの積の総和i=1の場合からi=m-1の場合までの総和を求めればよいことが分かる。ここで、前掲した行列Bの値の具体例を[数26]式に代入して、ECCベクトルCの各成分を具体的に算出してみる。始めに、前述した検査行列Hの第一の例[数11]式を求めるために使用した、行例Bの値の具体例[数10]式を代入して、ECCベクトルCの各成分の算出を行う。この検査行列Hの第一の例は、n=8であり、m=4である32ビットの情報部データについてSEC機能を実現するためのものである。まず、この場合の情報ベクトルV、パリティビットベクトルP、ECCベクトルC、並びに、前述のベクトルC1及びベクトルC2の各成分を、[数27]式のように表す。[数10]式の行列Bの値と[数27]式の各ベクトルの各成分とを[数26]式に代入すると、[数28]式のようになる。次に、前述した検査行列Hの第二の例[数14]式を求めるために使用した、行例Bの値の具体例[数13]式を代入して、ECCベクトルCの各成分の算出を行う。この検査行列Hの第二の例は、n=8であり、m=4である32ビットの情報部データについてSECDED機能を実現するためのものである。まず、この場合の情報ベクトルV、パリティビットベクトルP、ECCベクトルC、並びに、前述のベクトルC1及びベクトルC2の各成分を、[数29]式のように表す。[数13]式の行列Bの値と[数29]式の各ベクトルの各成分とを[数26]式に代入すると、[数30]式のようになる。次に、図4の誤り訂正装置100におけるECC生成部110の具体的な回路構成例について説明する。ここでは、[数28]式及び[数30]式に示されている、ECCベクトルCのうちのベクトルC2についての論理を実現する回路について説明する。始めに、n=8であり、m=4である32ビットの情報部データについてSEC機能を実現するためのECC生成部110の回路構成例について説明する。まず、m×nビットの情報部データを表す情報ベクトルVの各成分の添字を、下記の[数31]式のように書き直す。この[数31]式は、添字を書き直す前の各成分に対して添字を書き直した各成分を左から順に対応付けたものである。つまり、[数31]式は、情報ベクトルVの各成分の添字を、下記の[数32]式に従って書き直したものである。なお、[数32]式において、i及びjは整数であって、0≦i≦3且つ0≦j≦7である。この[数31]式を[数28]式に代入すると、ベクトルC2の各成分c4、c5、c6、及びc7について、下記の[数33]式が得られる。ここで図5について説明する。図5は、ECC生成部110の第一の回路構成例である。この回路は、4個のXOR回路121-1、121-2、121-3、及び121-4を用いて、[数33]式におけるベクトルC2の各成分c4、c5、c6、及びc7についての論理を実現する回路である。図3の誤り訂正装置100によりSEC機能を用いてデータの訂正を行う場合には、ECC生成部110は、検査ビットとして、この図5の回路を用いてベクトルC2の各成分の生成を行うようにする。なお、この場合には、エラー検出訂正部140は、[数11]式に示した検査行列Hを用いて、前述した検出訂正を行うように構成する。次に、n=8であり、m=4である32ビットの情報部データについてSECDED機能を実現するためのECC生成部110の回路構成例について説明する。前掲した[数31]式を[数30]式に代入すると、ベクトルC2の各成分c4、c5、c6、c7、及びc8について、下記の[数34]式が得られる。ここで図6について説明する。図6は、ECC生成部110の第二の回路構成例である。この回路は、5個のXOR回路122-1、122-2、122-3、122-4、及び122-5を用いて、[数34]式におけるベクトルC2の各成分c4、c5、c6、c7、及びc8についての論理を実現する回路である。図3の誤り訂正装置100によりSECDED機能を用いてデータの訂正を行う場合には、ECC生成部110は、検査ビットとして、この図6の回路を用いてベクトルC2の各成分の生成を行うようにする。なお、この場合には、エラー検出訂正部140は、[数14]式に示した検査行列Hを用いて、前述した検出訂正を行うように構成する。次に、ECC生成部110を以上のように構成した場合の利点について説明する。まず、比較のために図7を提示する。図7は、前述した拡張ハミング符号を普通に用いたSECDED機能に使用されるECCの全部の生成を行う場合のECC生成部110の回路構成例であり、n=8且つm=4である32ビットの情報部データについてのものである。この場合、SECDED機能を実現するために必要とされる検査ビットのビット数は、[log2321]1=7ビットである。図7の回路は、7個のXOR回路200-1から200-7を用いて、この7ビットの検査ビットを生成する。図6と図7との回路を比較すると分かるように、図6の回路の方が図7の回路よりも回路量が小さい。つまり、ECC生成部110に図6の回路を採用して、ECCである検査ビットのうちの5ビットを生成し、他の4ビットを、情報部データについてのパリティビットを流用するようにしたことで、誤り訂正装置100の回路量が小さくなる。なお、誤り訂正装置100の回路量の削減効果は、ECC生成部110よりも、ECCレジスタ120において寧ろ顕著に表れる。ECCレジスタ120における回路削減の効果について、図8を参照しながら説明する。図8において、Aは、情報部データについてのパリティビットをECCに利用しない場合のECCレジスタ120の回路量を模式的に表現したものであり、ECC生成部110として図7の回路を採用した場合のものである。この場合には、n=8且つm=4である32ビットの情報部データ毎に7ビットの検査ビットがECC生成部110により生成されるので、ECCレジスタ120として、情報部データ毎に7ビットの検査ビットを格納するレジスタが必要になる。一方、図8において、Bは、情報部データについてのパリティビットをECCに利用する場合のECCレジスタ120の回路量を模式的に表現したものであり、ECC生成部110として図6の回路を採用した場合のものである。この場合には、n=8且つm=4である32ビットの情報部データ毎に5ビットの検査ビットがECC生成部110により生成されるので、ECCレジスタ120としては、情報部データ毎に5ビットの検査ビットを格納するレジスタを用意すれば済む。従って、BのECCレジスタ120の回路量は、Aのものよりも少なくなる。図4の誤り訂正装置100において、GPRレジスタ120の回路量は、誤り訂正装置100の大部分を占めている。一例として、誤り訂正装置100拡張ハミング符号を用いてSECDED機能を実現した回路を実際に調べたところ、ECC生成部110と、ECCレジスタ120と、エラー検出訂正部140とでのトランジスタ数の比率は、15:3:1であった。従って、GPRレジスタ120の回路量の削減は、誤り訂正装置100全体での回路量の削減に大きく寄与する。"