(57)【特許請求の範囲】
【請求項１】
４ビットで０から９までの数字を表現する第１の形式の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットをそれぞれ生成する複数の第１のXOR生成回路と，
前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成する第２のXOR生成回路と，
前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式の１０進数データのエラー検出用XORビットとして，生成する第３のXOR生成回路とを有し，
前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力するエラー検出コード生成回路。
【請求項２】
複数の第１のXOR生成回路と第２のXOR生成回路と第３のXOR生成回路とを有するエラー検出コード生成回路において，
前記複数の第１のXOR生成回路が，４ビットで０から９までの数字を表現する第１の形式の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットをそれぞれ生成し，
前記第２のXOR生成回路が，前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成し，
前記第３のXOR生成回路が、前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式の１０進数データのエラー検出用XORビットとして生成することにより，前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力するエラー検出コード生成方法。
【請求項３】
４ビットで０から９までの数字を表現する第１の形式の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットを生成する複数の第１のXOR生成回路と，
前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成する第２のXOR生成回路と，
前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式の１０進数データのエラー検出用XORビットとして，生成する第３のXOR生成回路とを有し，
前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力する第１のエラー検出コード生成回路と，
前記第１の形式の１０進数データを前記第２の形式の１０進数データに変換するフォーマット変換回路とを有する，
フォーマット変換装置。
【請求項４】
前記フォーマット変換装置は，さらに，
前記変換された第２の形式の１０進数データのコンビネーションフィールド内の仮数最上位桁の第１のモジュロ３を生成する第１のモジュロ生成回路と，前記変換された第２の形式の１０進数データの後続仮数部フィールドの前記１０進数３桁を表現する１０ビットのデクレットの第２のモジュロ３をそれぞれ生成する複数の第２のモジュロ生成回路と，前記第１のモジュロ３及び複数の第２のモジュロ３の第３のモジュロ３を生成する第３のモジュロ生成回路と，前記第２の形式の１０進数データのエラー検出用XORビットを生成する第４のXOR生成回路とを有する第２のエラー検出コード生成回路と，
前記第１のエラー検出コード生成回路が生成する前記第２の形式の１０進数データのエラー検出用XORビット及び前記第１の形式の１０進数データのモジュロ３と，前記第２のエラー検出コード生成回路が生成する前記第２の形式の１０進数データのエラー検出用XORビットと前記第３のモジュロ３とをそれぞれ比較する比較器とを有する，
請求項３記載のフォーマット変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，エラー検出コード生成回路，エラー検出コード生成方法及びフォーマット変換装置に関する。
【背景技術】
【０００２】
２進の浮動小数点形式では誤差が発生する場合があるため，財務計算などでは１０進の浮動小数点で演算が行われている。１０進数の表現として，BCD（Binary Coded Decimal）形式が広く用いられている。しかし，BCD形式は１０進数の１桁を４ビットの２進数で表現するため，４ビットで表現できる１６種類の数値のうち１０個の数値（０−９）しか使用していない。そのため，BCD形式は，例えば６４ビットでは６４÷４ビット＝１６桁の１０進数しか表現できず，表現できる１０進数の桁数に対してデータ量が大きくなる。
【０００３】
そのため，近年，IEEE浮動小数点演算の標準化（IEEE Standard for Floating-Point Arithmetic (IEEE Std 754-2008)）が，BCD形式の１０進数を圧縮して格納するDPD(Densely-Packed Decimal)形式を提案している。DPD形式の場合は，後述するとおり，１０進数の３桁（０−９９９）を１０ビットの２進数で表現する。１０ビットで表現できる数値は１０２４種類であるが，そのうち１０００種類を使用するので，BCD形式よりもビットの利用効率が高い。
【０００４】
しかし，DPD形式は，１０進数の３桁を表現する１２ビット（１桁４ビット）のBCD形式を特殊なエンコーディングによって１０ビットのDPD形式に変換しているので，DPD形式で演算することはできないまたは困難である。そのため，圧縮されたDPD形式でメモリに記憶したり，送信したりするが，メモリから読み出したり受信した後にDPD形式からBCD形式に変換し，BCD形式で１０進演算を行い，演算結果のBCD形式をDPD形式に再度変換することが行われる。
【０００５】
そこで，DPD形式の１０進浮動小数点数のデータのエラー検出コードを生成して，DPD形式の１０進浮動小数点数のデータにエラー検出コードを付加して記憶したり，送信したりすることが提案されている。例えば，以下の特許文献などである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−３８４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のとおり演算結果のBCD形式の１０進浮動小数点数は，DPD形式にフォーマット変換され，変換後のDPD形式の１０進浮動小数点数がメモリに記憶されたり，送信されたりする。したがって，変換後のDPD形式の１０進浮動小数点数を論理演算してエラー検出コードを生成し，DPD形式の１０進浮動小数点数と共にメモリに記憶したり送信したりする。
【０００８】
しかし，BCD形式からDPD形式へのフォーマット変換演算とDPD形式のデータのエラー検出コード生成の演算とを行うと，演算回路の段数が長くなり，高速処理の妨げになる。また，フォーマット変換後のDPD形式のデータを演算してエラー検出コードを生成すると，フォーマット変換回路でエラーが発生した場合，そのエラーを含んだDPD形式のデータから生成したエラー検出コードでは，そのエラーを検出することができない。
【０００９】
そこで，実施の形態の一つの目的は，演算回路の高速化のためのエラー検出コード生成回路，エラー検出コード生成方法，及びフォーマット変換回路を有するフォーマット変換装置を提供することにある。
【課題を解決するための手段】
【００１０】
実施の形態の第１の側面のエラー検出コード生成回路は，４ビットで０から９までの数字を表現する第１の形式の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットをそれぞれ生成する複数の第１のXOR生成回路と，
前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成する第２のXOR生成回路と，
前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式の１０進数データのエラー検出用XORビットとして，生成する第３のXOR生成回路とを有し，
前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力する。
【発明の効果】
【００１１】
演算回路を高速化することができる。エラー検出コードの信頼性を向上することができる。
【図面の簡単な説明】
【００１２】
【図１】ＤＰＤフォーマットの１０進浮動小数点数を説明するための図である。
【図２】コンビネーションフィールドＧの上位５ビットＧＵのエンコーディングを示す図である。
【図３】DPD形式の１０ビットの組ｄｅｃｌｅt (b[9:0])からBCD形式の３桁の１０進数(100 × h + 10 × t + o)への変換方法を示す図である。
【図４】BCD形式の３桁の１０進数(100 × h + 10 × t + o)からDPD形式の１０ビットの組ｄｅｃｌｅｔ(b[9:0])への変換方法を示す図である。
【図５】DPD形式の単精度と倍精度のフォーマットを示す図である。
【図６】DPDのRAS用冗長データ生成回路の全体構成図である。
【図７】ｐｇｕ及びｐｇｌ生成回路６０１の構成を示す図である。
【図８】ｐｇｕ及びｐｇｌ生成回路６０１内のｐｇｕ生成回路８０１の構成を示す図である。
【図９】ｐｔ生成回路６０２の構成図である。
【図１０】ｐｔ生成回路６０２内の各ｄｅｃｌｅｔのデータＤ０［９：０］−Ｄ４［９：０］のmod3データｐｔＹ［１：０］とxorデータｐｔＸを有するＲＡＳ用冗長データを生成するｐｄ＃生成回路の構成図である。
【図１１】DPD形式とBCD形式の利用の一例を示す図である。
【図１２】本実施の形態におけるエラー検出コード生成回路を有するフォーマット変換装置を示す図である。
【図１３】本実施の形態におけるエラー検出コード生成回路を有するフォーマット変換装置を示す図である。
【図１４】RAS用冗長データ生成回路１２を示す図である。
【図１５】BCD形式のデータのフォーマットを示す図である。
【図１６】pd(i)生成回路12_0〜12_4の論理回路を示す図である。
【図１７】pd(5)生成回路12_5の論理回路を示す図である。
【発明を実施するための形態】
【００１３】
以下，２進数の場合，１０進数と区別するために，２進数のビット列の最後に下付き添字２を付加する場合がある。例えば，１１１１１２のとおりに表記する。
【００１４】
本実施の形態を説明する前に，BCDフォーマット及びDPDフォーマットとの関係と，DPD形式のデータのエラー検出コード生成回路について説明する。
【００１５】
［BCDフォーマット］
BCDフォーマットは，１０進数の１桁を４ビットの２進数で表記する。例えば，３桁の１０進数100×h＋10×t＋oの場合，１００の位をｈ［３：０］，１０の位をｔ［３：０］，１の位をｏ［３：０］で表記する。したがって，３桁の１０進数を，各４ビットの数ｈ［３：０］，ｔ［３：０］，ｏ［３：０］の合計１２ビットで表記する。したがって，BCD形式の場合は，６４ビットで１６桁の１０進数を表記する。
【００１６】
BCD形式の１０進数に，符号ビットと指数データを加えることで，DPD形式の１０進数浮動小数点数にエンコードすることができる。
【００１７】
［DPDフォーマット］
図1（Ａ）〜（Ｃ）は，ＤＰＤフォーマットの１０進浮動小数点数を説明するための図である。図１（Ａ）はＤＰＤフォーマットの１０進浮動小数点数のビット長を示す図であり，図１（Ｂ）は単精度のＤＰＤフォーマットの１０進浮動小数点数のフォーマットを示す図であり，図１（Ｃ）は倍精度のＤＰＤフォーマットの１０進浮動小数点数のフォーマットを示す図である。
【００１８】
DPD形式10進浮動小数点数は，符号フィールドＳ，コンビネーションフィールドＧ，後続仮数部フィールドＴからなる。DPD形式10進浮動小数点数は，符号S(0または1)，指数exponentと仮数significandで表現し，下記の式で示される値を表す。
【００１９】
【数１】
0006344135.tif 000002
【００２０】
そして，指数exponentはコンビネーションフィールドＧに，仮数significandはコンビネーションフィールドＧと後続仮数部フィールドＴに分割して格納される。
【００２１】
図１（Ａ）（Ｂ）に示すように，単精度の１０進浮動小数点数は，１ビットの符号フィールドＳ，１１ビットのコンビネーションフィールドＧ，及び２０ビットの後続仮数部フィールドＴを有し，全データ長が３２ビットである。１１ビットのコンビネーションフィールドＧは，５ビットの上位ビットＧＵ［４：０］と，ｗ（＝６）ビットの下位ビットＧＬ［ｗ−１：０］を有する。
【００２２】
図２（Ｃ）に示すように，倍精度の１０進浮動小数点数は，１ビットの符号フィールドＳ，１３ビットのコンビネーションフィールドＧ，及び５０ビットの後続仮数部フィールドＴを有し，全データ長が６４ビットである。１３ビットのコンビネーションフィールドＧは，５ビットの上位ビットＧＵ［４：０］と，ｗ（＝８）ビットの下位ビットＧＬ［ｗ−１：０］を有する。
【００２３】
符号Ｓは，符号フィールドＳに格納される。指数exponentは，コンビネーションフィールドＧの一部に格納される。仮数significandは，コンビネーションフィールドＧの一部と後続仮数部フィールドＴとに分割して格納される。
【００２４】
図２は，コンビネーションフィールドＧの上位５ビットＧＵのエンコーディングを示す図である。コンビネーションフィールドＧは，５ビットの上位ビットＧＵ［４：０］とｗビットの下位ビットＧＬ［ｗ−１：０］とに分けられる。図２に示すように，５ビットの上位ビットＧＵ［４：０］には，指数部の上位２ビットと仮数部の最上位桁（leftmost digit：ＬＭＤ）の２つの情報が格納される。
【００２５】
図２において，ＧＵ［４：０］＝１１１１１２の場合，ＧＬ［ｗ−１］＝１なら非数ＳＮａＮを，ＧＬ［ｗ−１］＝０なら非数ＱＮａＮを示し，ＧＬ［ｗ−２：０］はdon’t careになる。非数ＱＮａＮは，例えば，±０÷±０，±∞÷±∞， √（−１） 等の演算が行われたときに出力される演算結果の非数である。非数ＳＮａＮは，例えば，ユーザーやソフトウェアが，バグ検出のトリガとして敢えて仕込む場合に使用される非数であり，通常演算（例えば，四則演算）に非数ＳＮａＮの入力があった場合，無効例外が報告される。これに対し，非数ＱＮａＮの入力があった場合，演算結果は各演算仕様に従った非数ＱＮａＮを出力し，非数ＳＮａＮの場合と異なり，無効例外を引き起こすことはない。後続仮数フィールドＴは，非数ＱＮａＮ又はＳＮａＮの診断情報を示すペイロード（payload）になる。
【００２６】
ＧＵ［４：０］＝１１１１０２の場合，＋∞または−∞を示す。この場合ＧＬ［ｗ−１：０］はdon’t careになる。
【００２７】
ＧＵ［４：０］＝１１１０ｘ２または１１０ｘｘ２の場合（ｘは１または０のいずれか），ＧＵ［２：１］は指数部上位２ビットを示し，８＋ＧＵ［０］で仮数部最上位桁LMDの８または９を示す。この場合，指数部上位２ビットは，ＧＵ［２：１］＝００２，０１２，１０２のいずれかになり，仮数部最上行桁LMDはＧＵ［０］＝０なら８に，ＧＵ［０］＝１なら９になる。そして，下位ビットＧＬ［ｗ−１：０］は指数部の下位ビットを示す。
【００２８】
一方，ＧＵ［４：０］＝１０ｘｘｘ２または０ｘｘｘｘ２の場合，上記とはＧＵビットの意味が異なり，ＧＵ［４：３］が指数部上位２ビットを示し，ＧＵ［２：０］で仮数部最上位桁LMDの０−７を示す。この場合，指数部上位２ビットは，ＧＵ［４：３］＝００２，０１２，１０２のいずれかになり，仮数部最上行桁LMDはＧＵ［２：０］の３ビット２進数で０−７のいずれかになる。そして，下位ビットＧＬ［ｗ−１：０］は指数部の下位ビットを示す。
【００２９】
したがって，仮数部最上位桁がゼロになるのは，図２の最下段の場合であり，上位ビットＧＵ［４：０］が０００００２，０１０００２，１００００２のいずれかのときであり，下位３ビットでゼロが表現される。したがって，１０進数の「＋０」は，Ｓ＝０， Ｔ＝０であり，かつ上位ビットＧＵ［４：０］が０００００２，０１０００２，１００００２のいずれかである。すなわち，２ビットＧＵ［４：３］の３パターンと下位ビットＧＬ［ｗ−１：０］のビット幅ｗの分だけゼロのバリエーション (コホート) がある。
【００３０】
このように，コンビネーションフィールドＧの上位ビットＧＵ［４：０］のコードに応じて，非数ＮａＮ情報を示したり，指数部上位２ビットと仮数部最上位桁及び下位ビットを異なるフォーマットで表示する。このようなエンコーディングにより，コンビネーションフィールドＧ＝ＧＵ，ＧＬを少ないビット数でより多くの情報を表現するようにしている。
【００３１】
次に，後続仮数部フィールドＴについて説明する。後続仮数部フィールドＴは，１０ビットの組ｄｅｃｌｅｔが複数個連なる。図１（Ａ）に示すように，単精度では２０ビットの後続仮数部フィールドＴが２個の１０ビットの組ｄｅｃｌｅｔを有し，倍精度では５０ビットの後続仮数部フィールドＴが５個の１０ビットの組ｄｅｃｌｅｔを有する。各１０ビットの組ｄｅｃｌｅｔは，０から９９９までの３桁の１０進数を表現する。図１（Ａ）に示すように，単精度では後続仮数部フィールドＴは３桁×２組＝６桁の１０進数を表現可能であり，倍精度では後続仮数部フィールドＴは３桁×５組＝１５桁の１０進数を表現可能である。
【００３２】
［DPDフォーマットとBCDフォーマット間の変換］
図３は，DPD形式の１０ビットの組ｄｅｃｌｅt (b[9:0])からBCD形式の３桁の１０進数(100 × h + 10 × t + o)への変換方法を示す図である。図４は，BCD形式の３桁の１０進数(100 ×h + 10 × t + o)からDPD形式の１０ビットの組ｄｅｃｌｅｔ(b[9:0])への変換方法を示す図である。ここで，１０ビットの組ｄｅｃｌｅｔは１０ビットのｂ［９：０］で表され，３桁の１０進数は「１００×ｈ＋１０×ｔ＋ｏ」で表される。ｈは，百の位を表す４ビットｈ［３：０］のデータである。ｔは，十の位を表す４ビットｔ［３：０］のデータである。ｏは，一の位を表す４ビットｏ［３：０］のデータである。以下，上記のｂ，ｈ，ｔ，ｏをｂｉのように表記する。
【００３３】
なお，図４の１行目から８行目は，図３の１，２，３，７，４，６，５，８行目に対応している。
【００３４】
前述したとおり，DPD形式における１０ビットのｂ［９：０］で表現できる数は１０２４種類であり，３桁の１０進数で表現できる数は１０００種類であり，両者は異なる。Ｎ組の１０ビットの組ｄｅｃｌｅｔ，ｂ［９：０］が，３Ｎ桁の１０進数に対応している。
【００３５】
図３，４に示したDPD形式の圧縮法では，BCD形式のある１０進の桁の値が３ビットの２進で表現できな８以上の場合は８または９しかないことを利用して，BCD形式の１０進の桁が８または９になる場合は，８または９になる桁の２進の最下位だけを，１０ビットのｂ［９：０］内に含めるようにして，ビット数を節約している。
【００３６】
圧縮法を具体的に説明すると，次のとおりである。
（１）BCD形式の３桁がすべて０−７の場合は，DPDのｂ［３］＝０とし，以下のような対応になる。
DPDのｂ［９：７］＝BCDのｈ［２：０］
DPDのｂ［６：４］＝BCDのｔ［２：０］
DPDのｂ［２：０］＝BCDのｏ［２：０］
【００３７】
（２）BCD形式の３桁のうち１桁が８または９の場合は，DPDのｂ［３］＝１とし，DPDのｂ［２，１］でどの桁が８または９になるかを示す。そして，以下のような対応になる。
BCDの１の位が８または９の場合，DPDのｂ［０］＝０，１でBCDの８，９（８＋ｂ［０］）
BCDの十の位が８または９の場合，DPDのｂ［４］＝０，１でBCDの８，９（８＋ｂ［４］）
BCDの百の位が８または９の場合，DPDのｂ［７］＝０，１でBCDの８，９（８＋ｂ［７］）
【００３８】
（３）BCD形式の３桁のうち複数桁が８または９の場合は，DPDのｂ［３，２，１］＝１１１とし，DPDのｂ［６，５］でどの２桁または３桁が８または９になるかを示す。BCDの８または９の桁とDPDの対応は上記と同じである。
【００３９】
（４）BCD形式で８または９になる桁がある場合の，BCD形式の０−７とDPD形式のビットの位置は，図３，４に示されるとおりである。
【００４０】
［DPD形式の１０進浮動小数点数のエラー検出コード］
DPDフォーマットにすることでデータ量を圧縮できるので，DPD形式の１０進浮動小数点数からエラー検出コードを演算し，エラー検出コードと共にメモリに記憶したり，送信することが行われる。そこで，前述の特許文献１にはDPD形式の１０進浮動小数点数のエラー検出コードを生成する回路が記載されている。
【００４１】
このエラー検出コードは，一種のRAS（信頼性，可用性，保守性：Reliability, Availability and Serviceability）用冗長データである。そこで，以下エラー検出コードをRAS用冗長データと称する。
【００４２】
RAS用冗長データは，DPD形式の１０進浮動小数点数のデータを論理演算して生成される。RAS用冗長データは，１０進浮動小数点数の仮数部のモジュロ３（３で除した余り，以下mod3,%3と称する）と，mod3データでは検出できないエラーを検出するためのXOR値(排他的論理和，以下xorと称する)を有する。一般に，２進数の１ビットが変化すると必ずそのmod3データも変化するので，mod3データは１ビットエラーの存在を検出するために有効なRAS用冗長コードである。但し，DPD形式は符号ビット，指数，仮数を有するためmod3データだけでは検出できない１ビットエラーが存在するので，mod3データに所定のビットのXORビットを付加してRAS用冗長データとしている。
【００４３】
DPD形式の１０進浮動小数点数の仮数部のmod3データは，BCD形式の１０進数のmod3データと一致する。このようにすることで，BCD形式からDPD形式に変換した場合，BDC形式のRAS用冗長データとして有するmod3データを，DPD形式のRAS用冗長データのmod3データに利用することができる。したがって，DPD形式のRAS用冗長データを生成する回路は，DPDフォーマットに基づいて上記のmod3データを生成する。
【００４４】
さらに，BCD形式の１０進数データをDPD形式の１０進浮動小数点数データに変換する場合，BCD形式の１０進数データに，DPD形式に含まれる符号ビットと指数ビットを加えて，フォーマット変換回路に入力する。フォーマット変換により，入力に加えられた符号ビットと指数ビットはそのまま変換後のDPD形式のデータに含まれる。また，DPD形式の仮数部の１０進数の数値と，BCD形式の１０進数の数値は当然に一致する。但し，同じ１０進数の数が両形式のフォーマットに基づいてエンコードされる。
【００４５】
図５は，DPD形式の単精度と倍精度のフォーマットを示す図である。単精度の場合，後続仮数部フィールドＴは，２組のｄｅｃｌｅｔ，ｂ［１１：０］を有する。また，倍精度の場合，後続仮数部フィールドＴは，５組のｄｅｃｌｅｔ，ｂ［１１：０］を有する。また，コンビネーションフィールドの上位ビットＧＵ［４：０］は共に５ビットであり，下位ビットＧＬ［ｗ−１：０］は，単精度は６ビット，倍精度は８ビットである。そして，仮数部の最上位桁ＬＭＤは，上位ビットＧＵ［４：０］にエンコードされている。
【００４６】
［DPDのRAS用冗長データ生成回路］
図６は，DPDのRAS用冗長データ生成回路の全体構成図である。RAS用冗長データ生成回路１１２は，レジスタ１１１に格納されているDPD形式の浮動小数点数から，RAS用冗長データｐ［２：０］を生成する。この３ビットのRAS用冗長データｐ［２：０］は，xorビットｐ［２］と，ｍｏｄ３ビットｐ［１：０］とを有する。以下，図６では，倍精度の場合を例に示すが，単精度の場合も同様である。
【００４７】
前提として，以下のように定義する。
演算記号＾はxorを示す。
演算記号ｘ％３はｘmod３を示し，ｘを３で割った余りである。
（１）符号ビットＳのRAS用冗長データｐｓは，ｐｓ＝Ｓである。
（２）コンビネーションフィールドＧの上位ビットＧＵのRAS用冗長データｐｇｕは，xorビットのｐｇｕＸ（１ビット）とmod3ビットのｐｇｕＹ［１，０］（２ビット）を有する。
（３）下位ビットＧＬのＲＡＳ用冗長データｐｇｌは，xorビットのｐｇｌＸ（１ビット）だけである。
（４）後続仮数部フィールドＴのRAS用冗長データｐｔは，xorビットのｐｔＸと，各ｄｅｃｌｅｔのmod3ビットを合成したｐｔＹ［１：０］を有する。
【００４８】
ＲＡＳ用冗長データ生成回路１１２の論理式は次のとおりである。以下の論理式が生成するＲＡＳ用冗長データは，上記の（１）−（４）のＲＡＳ用冗長データと対応している。
（１）ps（1bit）
ps = S
（２）pgu : pguX（1bit）, pguY[1,0]（図８）
（２−１）GU[4:1] = 11112 のとき，pguX = GU[4] ^ GU[3] ^ GU[2] ^ GU[1] ^ GU[0]
pguY[1,0] = 0
（２−２）GU[4:1] = 11102 or 110x2 のとき，pguX = GU[4] ^ GU[3] ^ GU[2] ^ GU[1]
pguY[1,0] = (2 + GU[0]) %3
（２−３）GU[4:1] = 10xx2 or 0xxx2 のとき，pguX = GU[4] ^ GU[3] ^ GU[2] ^ GU[1] 
pguY[1,0] = (2*GU[1] + GU[2] + GU[0]) %3
（３）pgl：pglX（1bit）
pglX = GL[w-1] ^ GL[w-2] ^ ... ^ GL[1] ^ GL[0]  （図７）
（４）pt : ptX（1bit）, ptY[1,0] 〜 ptY[13:0]  （図９，図１０）
Ｔフィールドは，単精度ならば２個の，倍精度ならば５個のdecletから成る。ptはdeclet単位で計算されたＲＡＳ用冗長データを，さらに加工することで完成する。そして，declet１個のＲＡＳ用冗長データ(=pd(pdX, pdY)とする)の生成方法は以下のとおりである。
e-1)  pd : pdX（1bit）, pdY[1,0]  （図１０）
decletの10bitをb[9:0]とする。
（４−１）pdX = b[6] ^ b[5] ^ b[3] ^ b[2] ^ b[1]
（４−２）b[6,5,3:1] = xx0xx2, xx1012,, 101112 のとき（図３の１，３，７行）
pdY[1,0] = { 2*(b[8] + b[5] + b[1])  + b[9] + b[7] + b[6] + b[4] + b[2] + b[0] } %3
（４−３）b[6,5,3:1] = xx1002, 011112 のとき（図３の２，６行）
pdY[1,0] = { 2*(b[8] + b[5] + b[1])  + b[9] + b[7] + b[6] + b[4] + b[2] + b[0]  + 2 } %3
（４−４）b[6,5,3:1] = xx1102, 001112 のとき（図３の４，５行）
pdY[1,0] = { 2*(b[8] + b[5] + b[1])  + b[9] + b[7] + b[6] + b[4] + b[2] + b[0]  + 1 } %3
（４−５）b[6,5,3:1] = 111112 のとき（図３の８行）
pdY[1,0] = { 2*( b[5] + b[1])  + b[7] + b[6] + b[4] + b[2] + b[0] } %3
上記において，b[6,5,3:1] = 111112 のときb[9,8] はドントケアなデータになる。よって上記方法ではb[6,5,3:1] = 111112 のときにb[9,8]のデータ化けが発生してもエラーを検出しないようにpdY[1:0]の演算式にb[9,8]を含めていない。もしこれもエラーとして検出したい場合は，b[6,5,3:1] = 111112 のときだけ pdX = b[9] ^ b[8] ^ b[6] ^ b[5] ^ b[3] ^ b[2] ^ b[1] とpdXの計算方法を変更する。
【００４９】
上記の演算式（４−１）では，pdXは，b[6], b[5], b[3], b[2], b[1] の xorデータである。このxorデータは，mod3で検出できないエラービットを検出するために必要なxorデータである。
【００５０】
また，上記の演算式（４−２）〜（４−５）で求めるpdY[1,0]は，decletを３桁の１０進数へ変換したときの値を３で割った余り（＝モジュロ３＝mod3=%3）になっている。なお，３桁の１０進数のmod3は，３桁それぞれの数字のmod3を加算したものと等価である。そして，演算式（４−３）（４−４）内の＋２，＋１は，DPD形式のデータに埋め込まれたコードに基づいて求められた値である。以下，演算式（４−２）〜（４−５）について簡単に説明する。
【００５１】
図４の１行目（図３の１行目）のモジュロ３は，次の通りである。
pdY[1,0]={ (4*b[9] + 2*b[8] + b[7]) + (4*b[6] + 2*b[5] + b[4]) + (4*b[2] + 2*b[1] + b[0])} %3
ここで，(4*b) %3 = b %3であるので，上記演算式は次の通り（４−２）と同じになる。
pdY[1,0]={ (b[9] + 2*b[8] + b[7]) + (b[6] + 2*b[5] + b[4]) + (b[2] + 2*b[1] + b[0])} %3
={ 2*(b[8] + b[5] + b[1])  + b[9] + b[7] + b[6] + b[4] + b[2] + b[0] } %3
図４の２行目（図３の２行目）は１の位が８または９であるので，モジュロ３は， 
pdY[1,0]={(4*b[9] + 2*b[8] + b[7]) + (4*b[6] + 2*b[5] + b[4]) + (8 + b[0])} %3
ここで，(4*b) %3 = b %3, 8 %3 = 2 %であるので，上記の演算式は次のとおりになる。
pdY[1,0]={ (b[9] + 2*b[8] + b[7]) + (b[6] + 2*b[5] + b[4]) + (2 + b[0]) } %3
= { 2*(b[8] + b[5])  + b[9] + b[7] + b[6] + b[4] + b[0]  + 2 } %3
そして，b[6,5,3,2,1] = xx100であるので，演算式（４−３）にb[2]=0, b[1]=0を代入すると上記の式と一致する。
【００５２】
図４の３行目（図３の３行目）は１０の位が８または９であり，１の位がb[6]b[5]b[0]で表されるので，モジュロ３は以下のように変形できる。
pdY[1,0] = { (4*b[9] + 2*b[8] + b[7]) + (8 + b[4]) + (4*b[6] + 2*b[5] + b[0])} %3
={ (b[9] + 2*b[8] + b[7]) + (2 + b[4]) + (b[6] + 2*b[5] + b[0])} %3
={ 2*(b[8] + b[5]) + b[9] + b[7] + b[6] + b[4] + b[0] + 2} %3
そして，b[6,5,3,2,1] = xx101であるので，演算式（４−２）にb[2]=0, 2*b[1]=2を代入すると上記の式と一致する。
【００５３】
図４の４行目（図３の７行目）は１０，１の位が８または９であるのでモジュロ３は以下のように変形できる。
pdY[1,0] = { (4*b[9] + 2*b[8] + b[7]) + (8 + b[4]) + (8 + b[0])} %3
= { (b[9] + 2*b[8] + b[7]) + (2 + b[4]) + (2 + b[0])} %3
= { 2*b[8] + b[9] + b[7] + b[4] + b[0] + 4 } %3
そして，b[6,5,3,2,1] = 10111であるので，（４−２）にb[6]=1, 2*b[5]=0, b[2]=1, 2*b[1]=2を代入すると上記の式と一致する。
【００５４】
図４の５行目（図３の４行目）は１００の位が８または９であるのでモジュロ３は以下のように変形できる。
pdY[1,0] ={ (8 + b[7]) + (4*b[6] + 2*b[5] + b[4]) + (4*b[9] + 2*b[8] + b[0])} %3
= { (2 + b[7]) + (b[6] + 2*b[5] + b[4]) + (b[9] + 2*b[8] + b[0])} %3
= { 2*(b[8] + b[5]) + b[9] + b[7] + b[6] + b[4] + b[0] + 1} %3
そして，b[6,5,3,2,1] = xx110であるので，（４−４）にb[2]=1, 2*b[1]=0を代入すると上記の式と一致する。
【００５５】
図４の６行目（図３の６行目）は１００，１の位が８または９であるのでモジュロ３は以下のように変形できる。
pdY[1,0] ={ (8 + b[7]) + (4*b[9] + 2*b[8] + b[4]) + (8 + b[0])} %3
= { (2 + b[7]) + (b[9] + 2*b[8] + b[4]) + (2 + b[0])} %3
= { 2*b[8] + b[9] + b[7] + b[4] + b[0] + 4} %3
そして，b[6,5,3,2,1] = 01111であるので，（４−３）にb[6]=0, 2*b[5]=2, b[2]=1, 2*b[1]=2を代入すると上記の式と一致する。なお，7%3 = 4%3 = 1である。
【００５６】
図４の７行目（図３の５行目）は１００，１０の位が８または９であるのでモジュロ３は以下のように変形できる。
pdY[1,0] ={ (8 + b[7]) + (8 + b[4]) + (4*b[9] + 2*b[8] + b[0])} %3
= { (2 + b[7]) + (2 + b[4]) + (b[9] + 2*b[8] + b[0])} %3
= { 2*b[8] + b[9] + b[7] + b[4] + b[0] + 4} %3
そして，b[6,5,3,2,1] = 00111であるので，（４−４）にb[6]=0, 2*b[5]=0, b[2]=1, 2*b[1]=2を代入すると上記の式と一致する。
【００５７】
最後に，図４の８行目（図３の８行目）は１００，１０，１の位が８または９であるのでモジュロ３は以下のように変形できる。
pdY[1,0] ={ (8 + b[7]) + (8 + b[4]) + (8 + b[0])} %3
= { (2 + b[7]) + (2 + b[4]) + (2 + b[0])} %3
= { b[7] + b[4] + b[0] + 6} %3
そして，b[6,5,3,2,1] = 11111であるので，（４−５）にb[6]=1, 2*b[5]=2, b[2]=1, 2*b[1]=2を代入すると上記の式と一致する。
【００５８】
次に，上記の演算式に基づいて，ＲＡＳ用冗長データ生成回路１１２について説明する。まず，ＲＡＳ用冗長データ生成回路１１２は，ｐｇｕ及びｐｇｌ生成回路６０１，ｐｔ生成回路６０２，モジュロ演算回路６０３及びＸＯＲ演算回路６０４を有する。
【００５９】
ｐｇｕ及びｐｇｌ生成回路６０１は，コンビネーションフィールドＧの上位ビットＧＵに対してモジュロ演算を行い，mod3ビットのｐｇｕＹ［１：０］を出力し，上位ビットＧＵと下位ビットＧＬに対してＸＯＲ演算を行い，１ビットのxorデータｐｇＸを出力する。
【００６０】
ｐｔ生成回路６０２は，後続仮数部フィールドＴの５組のｄｅｃｌｅｔのデータＤ０「９：０」〜Ｄ４［９：０］に対してＸＯＲ演算及びモジュロ演算を行い，１ビットのxorデータｐｔＸ及び２ビットのmod3データｐｔＹ［１：０］を出力する。
【００６１】
モジュロ演算回路６０３は，ｐｇｕ及びｐｇｌ生成回路６０１が生成する上位ビットＧＵのmod3データであるｐｇｕＹ［１：０］と，ｐｔ生成回路６０２が生成する後続仮数部フィールドＴのmod3データであるｐｔＹ［１：０］とをモジュロ演算して，２ビットのmod3データｐ［１：０］を出力する。
【００６２】
一方，ＸＯＲ演算回路６０４は，符号フィールドＳのRAS用冗長データｐｓと，ｐｇｕ及びｐｇｌ生成回路６０１が生成するxorデータｐｇＸと，ｐｔ生成回路６０２が生成するxorデータｐｔＸのＸＯＲ演算を行って，xorデータであるｐ［２］を出力する。
【００６３】
なお，２ビットデータであるmod3データのｐｇｕＹ［１：０］の四則演算上の扱いは，ｐｇｕＹ［１：０］＝２×ｐｇｕＹ［１］＋ｐｇｕＹ［０］である。以下，同様である。上記のとおり，ＲＡＳ用冗長データ生成回路１１２は，１ビットのxorデータｐ［２］及び２ビットのmod3データｐ［１：０］を合成して，３ビットデータｐ［２：０］をエラー検出コードとして出力する。
【００６４】
図７は，ｐｇｕ及びｐｇｌ生成回路６０１の構成を示す図である。図８は，ｐｇｕ及びｐｇｌ生成回路６０１内のｐｇｕ生成回路８０１の構成を示す図である。ｐｇｕ及びｐｇｌ生成回路６０１の論理式は，前述の（２）（２−１）−（２−３），（３）のとおりである。
【００６５】
ｐｇｕ及びｐｇｌ生成回路６０１は，ｐｇｕ生成回路８０１，ＸＯＲ演算回路８０２及び８０３を有する。ｐｇｕ生成回路８０１は，上位ビットＧＵ［４：０］に対してモジュロ演算を行い，２ビットデータｐｇｕＹ［１：０］及び１ビットデータｐｇｕＸを出力する。ＸＯＲ演算回路８０２は，論理式（３）のとおり，ｗビットの下位ビットＧＬ［ｗ−１：０］の各ビットのＸＯＲ演算を行い，１ビットのxorデータｐｇｌＸを出力する。ＸＯＲ回路８０３は，上位ビットＧＵのxorデータｐｇｕＸ及び下位ビットＧＬのxorビットｐｇｌＸのＸＯＲ演算を行い，１ビットのxorデータｐｇｘを出力する。そして，ｐｇｕ及びｐｇｌ生成回路６０１は，上位ビットＧＵの２ビットのmod3データｐｇｕＹ［１：０］及び上位ビットＧＵと下位ビットＧＬの１ビットデータｐｇＸを出力する。
【００６６】
図８は，図７のｐｇｕ生成回路８０１の構成を示す図である。前述の論理式（２−１）−（２−３）に対応付けて説明する。
【００６７】
（２−１）コンビネーションフィールドＧの上位ビットＧＵ［４：０］は，図２に示したとおり，ＧＵ［４：０］＝１１１１１２または１１１１０２の場合は，非数（ＮａＮ，∞）を示すので，論理回路９０８がＧＵ［４：１］＝１１１１の場合に「１」を出力し，ＡＮＤ回路９０９を介してＧＵ［０］をＥＯＲ回路９１０に入力し，ＥＯＲ回路９１０がＧＵ［４：０］の５ビットのxorデータｐｇｕＸを出力する。また，mod3データｐｇｕＹ［１：０］は０になる。
【００６８】
（２−２）コンビネーションフィールドＧの上位ビットＧＵ［４：０］は，図２に示したとおり，ＧＵ［４：０］＝１１１０ｘ２または１１０ｘｘ２の場合は，仮数部最上位桁ＬＭＤが８＋ＧＵ［０］になるので，論理回路９０１がＧＵ［４：０］＝１１１０ｘ２または１１０ｘｘ２の場合に「１」を出力し，ＡＮＤ／ＯＲ回路であるセレクタ回路９０５が，論理回路９０３が出力する仮数部最上位桁のmod3データをmod3データｐｇｕＹ［１：０］として出力する。論理回路９０３の演算式(2+GU[0])%3は，図２の(8+GU[0])%3と等価である。そして，倫理回路９０８は「０」を出力するので，ＥＯＲ回路９１０がＧＵ［４：１］の４ビットのxorデータｐｇｕＸを出力する。
【００６９】
（２−３）同様に，コンビネーションフィールドＧの上位ビットＧＵ［４：０］は，図２に示したとおり，ＧＵ［４：０］＝１０ｘｘｘ２または０ｘｘｘｘ２の場合は，仮数部最上位桁ＬＭＤが４×ＧＵ［２］＋２×ＧＵ［１］＋ＧＵ［０］になるので，論理回路９０２がＧＵ［４：０］＝１０ｘｘｘ２または０ｘｘｘｘ２の場合に「１」を出力し，ＡＮＤ／ＯＲ回路であるセレクタ回路９０５が，論理回路９０４が出力する仮数部最上位桁のmod3データをmod3データｐｇｕＹ［１：０］として出力する。そして，倫理回路９０８は「０」を出力するので，ＥＯＲ回路９１０がＧＵ［４：１］の４ビットのxorデータｐｇｕＸを出力する。
【００７０】
図９は，ｐｔ生成回路６０２の構成図である。図１０は，ｐｔ生成回路６０２内の各ｄｅｃｌｅｔのデータＤ０［９：０］−Ｄ４［９：０］のmod3データｐｔＹ［１：０］とxorデータｐｔＸを有するＲＡＳ用冗長データを生成するｐｄ＃生成回路の構成図である。
【００７１】
後続仮数部フィールドＴは，倍精度の場合，５個の１０ビットデータＤ０［９：０］，Ｄ１［９：０］，Ｄ２［９：０］，Ｄ３［９：０］，Ｄ４［９：０］を有する。図９において，ｐｄ０生成回路１００１は，１０ビットデータＤ０［９：０］に対してモジュロ演算とＸＯＲ演算を行い，１ビットのxorデータｐｄ０Ｘ及び２ビットのmod3データｐｄ０Ｙ［１：０］を出力する。ｐｄ１生成回路１００２−１００５も同様である。モジュロ演算回路１００６は，各ｐｄ＃生成回路１００１−１００５が出力するmod3データｐｄ０Ｙ［１：０］−ｐｄ４Ｙ［１：０］のモジュロ演算を行い，合成された２ビットのmod3データｐｔＹ［１：０］を出力する。ＸＯＲ回路１００７は，各ｐｄ＃生成回路１００１−１００５が出力するxorデータｐｄ０Ｘ−ｐｄ４ＸのＸＯＲ演算を行い，合成された１ビットのxorデータｐｔＸを出力する。すなわち，
ｐｔＸ＝ｐｄ４Ｘ＾ｐｄ３Ｘ＾ｐｄ２Ｘ＾ｐｄ１Ｘ＾ｐｄ０Ｘである。
【００７２】
図１０のｐｄ＃生成回路はｐｄ０−ｐｄ５生成回路１００１−１００５を示す。図１０中には，前述の（４−１）（４−２）（４−３）（４−４）（４−５）の対応が示されている。
【００７３】
まず，論理式（４−１）に基づき，ＸＯＲ回路１１１１は，次式のように，Ｄ０［６］＾Ｄ０［５］＾Ｄ０［３］＾Ｄ０［２］＾Ｄ０［１］のＸＯＲ演算を行い，次の１ビットのxorデータｐｄ０Ｘを出力する。
ｐｄ０Ｘ＝Ｄ０［６］＾Ｄ０［５］＾Ｄ０［３］＾Ｄ０［２］＾Ｄ０［１］
次に，ｐｄ＃生成回路は，図３と図４に基づき，演算式（４−２）（４−３）（４−４）（４−５）にしたがってmod3データｐｄ＃Ｙ［２：０］を生成する。演算式に沿って説明する。
【００７４】
（４−２）モジュロ演算回路１１０５が｛２×（Ｄ０［８］＋Ｄ０［５］＋Ｄ０［１］）＋Ｄ０［９］＋Ｄ０［７］＋Ｄ０［６］＋Ｄ０［４］＋Ｄ０［２］＋Ｄ０［０］｝％３のモジュロ演算を行い，mod3データＡ２を出力する。図３の１，３，７行（図４の右端に示す行）に対応するmod3演算であり，b[6,5,3:1] = xx0xx2, xx1012,, 101112のときに（すなわち，論理回路１１０１，１１０２，１１０３がいずれも真でない場合），ＡＮＤ／ＯＲ回路によるセレクタ１１０６が「０」を出力するので，モジュロ演算回路１１０５のmod3データＡ２がmod3データｐｄ＃Ｙ［２：０］として出力される。
【００７５】
なお，モジュロ演算回路１１０５の出力Ａ２は，演算式（４−３）（４−４）の条件を満たす場合にmod3データＡ２に，セレクタ１１０６が出力する「１」「２」がそれぞれ加算され，mod3データｐｄ＃Ｙが出力される。
【００７６】
（４−４）図３の４，５行に対応するmod3演算であり，論理回路１１０１は，b[6,5,3:1] = xx1102, 001112 のとき，言い換えると３ビットデータＤ０［３：１］が１１０２又は５ビットデータＤ０［６，５，３：１］が００１１１２であるときには「１」を出力し，セレクタ１１０６がmod3データ「１」を選択して出力する。そして，モジュロ演算回路１１１０が，そのmod3データ「１」をモジュロ演算回路１１０５の出力Ａ２に加算してmod3データｐｄ＃Ｙ［２：０］が出力される。その結果，演算式（４−４）に示したmod3データｐｄＹ［１，０］が生成される。
【００７７】
（４−３）図３の２，６行に対応するmod3演算であり，論理回路１１０２は，b[6,5,3:1] = xx1002, 011112 のとき，言い換えると３ビットデータＤ０［３：１］が１００２又は５ビットデータＤ０［６，５，３：１］が０１１１１２であるときには「１」を出力し，セレクタ１１０６がmod3データ「２」を選択して出力する。そして，モジュロ演算回路１１１０が，そのmod3データ「２」をモジュロ演算回路１１０５の出力Ａ２に加算してmod3データｐｄ＃Ｙ［２：０］が出力される。その結果，演算式（４−３）に示したmod3データｐｄＹ［１，０］が生成される。
【００７８】
（４−５）図３の８行に対応するmod3演算であり，論理回路１１０３は，b[6,5,3:1] = 111112のとき，言い換えると５ビットデータＤ０［６，５，３：１］が１１１１１２であるときには「１」を出力し，セレクタ１１０６がモジュロ演算回路１１０４のmod3データ，２×Ｄ０［９］＋Ｄ０［８］）％３を出力する。そして，モジュロ演算回路１１１０が，セレクタ１１０６が選択したmod3データＡ１とモジュロ演算回路１１０５が生成したmod3データＡ２とを加算してmod3データｐｄ＃Ｙ［１：０］を出力する。その結果，演算式（４−５）に示したmod3データｐｄＹ［１，０］が生成される。
【００７９】
なぜなら，この場合のモジュロ演算回路１１１０の演算は，（２＊ｂ［９］＋ｂ［９］）％３＝０であるので，以下のとおりとなる。
（２＊ｂ［９］＋ｂ［８］）％３＋｛２＊（ｂ［８］＋ｂ［５］＋ｂ［１］）＋ｂ［９］＋ｂ［７］＋ｂ［６］＋ｂ［４］＋ｂ［２］＋ｂ［０］）％３＝
{２*(ｂ［５］＋ｂ［１］)＋ｂ［７］＋ｂ［６］＋ｂ［４］＋ｂ［２］＋ｂ［０］}％３
なお，Ｄ０［６，５，３：１］が１１１１１２のとき，Ｄ０［９：８］はドントケアなデータになる。よって，上記の方法ではＤ０［６，５，３：１］が１１１１１２のときに，Ｄ０［９：８］のデータ化けが発生しても，エラーを検出しないようになっている。もし，これもエラーとして検出したい場合は，Ｄ０［６，５，３：１］が１１１１１２のときだけ，次式により，データｐｄ＃Ｘを演算すればよい。
ｐｄ＃Ｘ＝Ｄ０［９］＾Ｄ０［８］＾Ｄ０［６］＾Ｄ０［５］＾Ｄ０［３］＾Ｄ０［２］＾Ｄ０［１］
【００８０】
以上のとおり，pd#Xはb[6], b[5], b[3], b[2], b[1] の xorデータ，pd#Y[1,0]はdecletを３桁の１０進数へ変換したときの値を３で割った余り（＝モジュロ３＝mod3=%3）になっている。
【００８１】
図５で示したとおり，DPD形式のＴフィールドに存在するdecletを，単精度の場合にＤ１，Ｄ０，倍精度の場合にＤ４−Ｄ０とし，それぞれのdecletに対応したRAS用冗長データｐｄを，単精度の場合はｐｄ１，ｐｄ０，倍精度の場合はｐｄ４−ｐｄ０とする。
【００８２】
そして，倍精度で説明すると，各ｄｅｃｌｅｔのＤｉのＲＡＳ用冗長データｐｄｉ（ｉ＝４−０）は以下のようにデータ圧縮できる。すなわち，図９に示されるとおり，各ｄｅｃｌｅｔＤ４−Ｄ０のＲＡＳ用冗長データｐｄ４−ｐｄ０を全て圧縮することで，ＴフィールドのＲＡＳ用冗長データｐｔ（＝ｐｔＸ，ｐｔＹ［１：０］）は，次の通りになる。
ptX = pd4X ^ pd3X ^ pd2X ^ pd1X ^ pd0X
ptY[1,0] = (pd4Y[1,0] + pd3Y[1,0] + pd2Y[1,0] + pd1Y[1,0] + pd0Y[1,0] ) %3
Ｔフィールドで行った圧縮操作は，同様にDPDの各フィールドのＲＡＳ冗長データに対しても行うことができる。具体的には，xorデータのＲＡＳ用冗長データ同士( ps, pguX, pglX, ptX ) はそれらを１ビットにまで圧縮できて，mod3データ同士 (pguY[1,0] , ptY[1,0]) はそれらを２ビットにまで圧縮できる。したがって，図６に示されるとおり，DPD全体のＲＡＳ冗長データをp[2:0]と書くと，以下の式になる。
p[2] = ps ^ pguX ^ pglX ^ ptX
p[1,0] = ( pguY[1,0] + ptY[1,0] ) %3
mod3データｐｇｕＹ［１：０］は，図２，図８に示されるとおり，仮数部最上位桁ＬＭＤのmod3データである。したがって，mod3データｐ［１：０］は，仮数部が１０進の１６桁の場合，最上位桁（１桁）のmod3と，ｄｅｃｌｅｔで表されるそれぞれ１０進の３桁のmod3とを加算したmod3データを意味する。
【００８３】
一方，xorデータｐ［２］は，図７のＧフィールドの下位ビットＧＬ［ｗ−１：０］のxorデータｐｇｌＸと，図８の上位ビットＧＵ［４：０］のxorデータｐｇｕＸと，図１０のＴフィールドのｄｅｃｌｅｔのｂ［６：１］のxorデータｐｄ＃Ｘを図９で圧縮したxorデータｐｔＸとを，図７のＸＯＲ回路８０３と図６のＸＯＲ回路６０４とで圧縮したxorデータである。DPD形式の１０進浮動小数点数を示す６４ビットのうち，上記のビットのxorデータｐ［２］により，mod3データｐ［１：０］では検出できない１ビットエラーを検出することができることを，コンピュータシミュレーションにより確認済みである。
【００８４】
［ＤＰＤ形式とＢＣＤ形式の利用例］
図１１は，DPD形式とBCD形式の利用の一例を示す図である。この利用例によれば，ハードディスクＨＤＤ１に記憶しているDPD形式の１０進浮動小数点数DPD_1とそのRAS用冗長データRAS(DPD_1)とが読み出される（Ｓ１０）。このRAS用冗長データRAS(DPD_1)には，前述のとおり，mod3データとxorデータとが含まれている。
【００８５】
そして，読み出されたDPD形式のデータDPD_1が，フォーマット変換され，BCD形式のデータBCD_1に変換される（Ｓ１１）。そして，この変換後のBCD形式のデータBCD_1のRAS用冗長データRAS(BCD_1)として，DPD形式のデータDPD_1のRAS用冗長データRAS(DPD_1)に含まれているmod3データがそのまま採用される。なぜなら，BCD形式でもDPD形式でも含まれている１６桁の１０進数の値は同じであるので，前述のとおり，最上位桁のmod3と５組の３桁の１０進数のmod3とを圧縮したmod3データは，一致するからである。このmod3データを利用することで，例えば，フォーマット変換処理Ｓ１１で，変換回路の不良動作により１ビットエラーが発生したことを検出することができる。
【００８６】
次に，例えば２組のBCD形式の１０進浮動小数点数BCD_1が，１０進数による四則演算され，BCD形式の演算結果BCD_2が生成される（Ｓ１２）。BCD形式であれば１０進数演算が容易である。この演算Ｓ１２と並行して，２組のRAS用冗長データRAS(BCD_1)のmod3データも同じ演算により，演算後のBCD形式の１０進浮動小数点数BCD_2に対するmod3データが求められる（Ｓ１３）。一般に，A mod3＋A mod3＝（A+B）mod3であるので，mod3データであれば演算後のBCD形式のデータBCD_2に対するmod3データを簡単に求めることができる。
【００８７】
そこで，演算結果のBCD形式のデータBCD_2をフォーマット変換して，対応するDPD形式のデータDPD_2が生成される（Ｓ１４）。これによりデータ量が圧縮される。そして，フォーマット変換されたDPD形式のデータDPD_2について，図６〜図１０のDPD形式のデータのRAS用冗長データ生成回路が，エラー検出コードであるRAS用冗長データを生成する（Ｓ１５）。その結果，DPD形式のデータDPD_2のRAS用冗長データRAS(DPD_2)が，演算結果であるDPD形式のデータDPD_2と共に，ハードディスクＨＤＤ２に記憶される（Ｓ１６）。
【００８８】
上記のとおり，演算結果のBCD形式のデータBCD_2は，DPD形式のデータDPD_2にフォーマット変換されるとともに，そのDPD形式のデータDPD_2からRAS用冗長データRAS(DPD_2)を演算で求めると，２つの演算回路を通過することになり，論理回路の段数が過剰になり，演算時間が長くなる。また，工程Ｓ１４のフォーマット変換回路でエラーが発生した場合，フォーマット変換後のDPD形式のデータDPD_2からRAS用冗長データRAS(DPD_2)を生成すると，フォーマット変換回路で発生したエラーを検出できない。
【００８９】
図１２は，本実施の形態におけるエラー検出コード生成回路を有するフォーマット変換装置を示す図である。本実施の形態におけるフォーマット変換装置は，演算結果のBCD形式のデータBCD_2をDPD形式のデータDPD_2に変換するフォーマット変換回路１０と，BCD形式のデータBCD_2からDPD形式のデータDPD_2のRAS用冗長データRAS(DPD_2)を生成するRAS用冗長データ生成回路１２とを有する。
【００９０】
RAS用冗長データ生成回路１２は，BCD形式データBCD_2のRAS用冗長データRAS(BCD_2)のmod3データをそのままDPD形式データDPD_2のmod3データとして出力する。また，RAS用冗長データ生成回路１２は，BCD形式データBCD_2からxorデータを生成し，DPD形式データDPD_2のxorデータとして出力する。このRAS用冗長データ生成回路１２は，図６〜図１０に示したRAS用冗長データ生成回路が生成するxorデータｐ［２］と同じxorデータを生成する。RAS用冗長データ生成回路１２の演算回路は，BCD形式とDPD形式のフォーマットの違いを考慮して，DPD形式データDPD_2のxorデータｐ［２］と同じデータを生成するように，その回路が構成される。
【００９１】
図１２のような構成にすることで，演算結果であるBCD形式のデータから直接，DPD形式のデータDPD_2のRAS用冗長データRAS(DPD_2)を生成することができるので，演算遅延時間が短くなる。また，フォーマット変換回路１０でのエラーをRAS用冗長データRAS(DPD_2)により検出することができる。
【００９２】
［本実施の形態におけるエラー検出コード生成回路を有するフォーマット変換装置］
図１３は，本実施の形態におけるエラー検出コード生成回路を有するフォーマット変換装置を示す図である。図１３は，図１２に示したフォーマット変換回路１０とRAS生成回路１２に加えて，BCD形式のデータBCD_2からmod3をRAS用冗長データとして生成するRAS生成回路１４と，比較回路１６と，DPD形式のデータDPD_2からxorとmod3をRAS用冗長データとして生成するRAS生成回路１８と，比較回路２０とエラー処理回路２２とを有する。
【００９３】
図１２で説明したとおり，BCD形式のデータBCD_2のmod3データは，演算前のBCD形式のデータBCD_1のmod3データを，１０進数データの演算と同じ演算をして生成され，RASのレジスタRAS(BCD_2)に格納されている。そこで，RAS生成回路１４が演算後のBCD形式のデータBCD_2を入力してmod3データを生成し，比較回路１６が，RASのレジスタRAS(BCD_2)に格納されているmod3データと，RAS生成回路１４が生成したmod3データとを比較してエラー検出を行う。
【００９４】
そして，DPD_RAS生成回路１２は，BCD形式のデータBCD_2（BCD形式の１０進数にDPD形式のための符号ビット及び指数データを追加したデータ）から，xorデータを生成し，レジスタRAS(BCD_2)に格納されているmod3データと共に，レジスタRAS(DPD_2)に格納する。このレジスタRAS(DPD_2)に格納したxorデータとmod3データを有するRAS用冗長データを利用して，フォーマット変換後のDPD形式のデータDPD_2のエラーチェックを行う。すなわち，RAS生成回路１８が，DPD形式のデータDPD_2を入力してxorデータとmod3データを有するRAS用冗長データを生成する。そして，比較回路２０が，RAS生成回路１８が生成したRAS用冗長データと，レジスタRAS(DPD_2)に格納されているRAS用冗長データとを比較しエラー検出を行う。これにより，フォーマット変換回路１０で発生したエラーを検出できる。
【００９５】
２つの比較回路１６，２０は，比較結果であるエラー報告情報をエラー処理回路２２に出力する。そして，エラー処理回路２２がエラー報告情報に基づいてエラー処理を行う。
【００９６】
［本実施の形態におけるエラー検出コード生成回路］
次に，図１２，１３で示したBCD形式の１０進浮動小数点数からDPD形式の１０進浮動小数点数のエラー検出コード（RAS用冗長データ）を生成するエラー検出コード生成回路１２（RAS用冗長データ生成回路）について説明する。このRAS用冗長データ生成回路１２は，BCD形式の１０進浮動小数点数のデータBCD_2から，DPD形式の１０進浮動小数点数のデータDPD_2のxorデータを生成し，既に生成済みのBCD形式のデータBCD_2のmod3データと共にRAS用冗長データpd[2:0]として出力する。ただし，RAS用冗長データ生成回路１２は，BCD形式のデータの仮数の数値からmod3データを生成してもよい。
【００９７】
以下のRAS用冗長データ生成回路１２は，BCDが倍精度の場合を例にして説明する。ただし，BCDが単精度でも同様に適用できる。BCD形式のデータと，そのRAS用冗長データは，次の通りとする。
BCD形式のデータ（仮数）：BCD[63:0]
BCD形式のデータのRAS用冗長データ：pb[1,0]  =BCD %3  =BCD mod3
したがって，BCD形式のデータの１６桁の１０進数を示すBCD[63:0]は６４ビットであり，BCD形式のデータのRAS用冗長データはmod3データpb[1,0]である。
【００９８】
図１４は，BCD形式のデータのフォーマットを示す図である。BCD形式の場合３桁の１０進数は１２ビットで表現され，１桁の１０進数は４ビットで表現される。図１５によれば，BCD形式のデータBCD[63:0]が，５組の３桁の１０進数b0[11:0]-b4[11:0]と，１組の１桁の１０進数b5[3:0]とからなる。
【００９９】
また，BCDのフォーマットには含まれないが，DPD形式では必要になる情報（符号，指数）は，通常はBCD形式のデータに付随して存在しており，以下の記号で表すこととする。
符号：sb (=1bit)
指数：eb[9:0]（倍精度の場合。単精度なら８ビットのeb[7:0]になる）
一方，BCD形式のデータと上記符号と指数とから変換されるDPD形式のデータは64ビットであり，以下のように表す。
DPD[63:0]
DPD形式のデータの仮数部の１６桁の１０進数は，BCD形式の１６桁の１０進数と同じである。そして，BCD形式のデータに付加される符号sbと指数eb[9:0]（単精度ならeb[7:0]）は，DPD形式のデータの符号ｓ，指数GU[2:1]またはGU[4:3]及びGL[w-1:0]と同じである。
【０１００】
そこで，DPD形式のデータのRAS用冗長データをpd[2:0]で表すことにする。このDPDのRAS用冗長データの下位２ビットpd[2:0]は，仮数の各桁のmod3を圧縮したものであるので，BCD形式のデータのRAS用冗長ビットのmod3データをそのまま流用できる。よって，以下のとおりとなる。
pd[1:0] = pb[1:0]
続いて，DPDのRAS用冗長データの残りのxorビットpd[2]の計算方法について以下説明する。図１４に示したとおり，BCD形式の１０進数を下位から３桁（２進数の１２ビット）区切りにし，各３桁のセットはb0[11:0]-b4[11:0]，最上位の桁はb5[3:0]とする。
【０１０１】
図１４は，RAS用冗長データ生成回路１２を示す図である。図１４のRAS用冗長データ生成回路１２では，BCD形式のデータBCD[63:0]の各３桁のセットb0[11:0]-b4[11:0]それぞれを入力してxorデータpb(i) (i=0,1,2,3,4,5)をそれぞれ生成するpb(i)生成回路12_0〜12_4と，最上位桁のセットb5[3:0]を入力してxorデータpb(5)を生成するpb(5)生成回路12_5を有する。さらに，RAS用冗長データ生成回路１２は，符号と指数のxorデータを生成するXOR回路1200と，全てのxorデータを圧縮するXOR回路1201とを有する。
【０１０２】
上記の回路により，DPDのRAS用冗長データの残りのxorビットpd[2]は，各セットbi (i=0,1,2,3,4,5) から算出された１ビットのxorデータpb(i) (i=0,1,2,3,4,5) と，符号sbと指数eb[9:0]のxorデータとを有する全ビットの xorデータから生成される。つまり，演算式は次のとおりである。
（５−１）pd[2] = sb ^ eb[9:0] ^ pb(5) ^ pb(4) ^ pb(3) ^ pb(2) ^ pb(1) ^ pb(0)
次に，各セットbi(i=0,1,2,3,4,5)のxorデータpb(i)うち，例えば最下位セットb0[11:0]のxorデータpb(0)を生成する演算式は，以下のとおりである。同様の演算式で他のセットのxorデータpb(4)〜pb(1)も算出することができる。
（５−２）b0[11]=0, b0[7]=0, b0[3]=0 のとき，pb(0) = b0[6] ^ b0[5] ^ b0[2] ^ b0[1]
（５−３）b0[11]=0, b0[7]=0, b0[3]=1 のとき，pb(0) = ~( b0[6] ^ b0[5] )
（５−４）b0[11]=0, b0[7]=1, b0[3]=0 のとき，pb(0) = b0[2] ^ b0[1]
（５−５）b0[11]=0, b0[7]=1, b0[3]=1 のとき，pb(0) = 0
（５−６）b0[11]=1, b0[7]=0, b0[3]=0 のとき，pb(0) = b0[6] ^ b0[5]
（５−７）b0[11]=1, b0[7]=0, b0[3]=1 のとき，pb(0) = 0
（５−８）b0[11]=1, b0[7]=1, b0[3]=0 のとき，pb(0) = 1
（５−９）b0[11]=1, b0[7]=1, b0[3]=1 のとき，pb(0) = 1
また，最上位桁のpb(5)は1digitなので，以下のようにpb(4)〜pb(0)とは異なる計算式で算出される。
（５−１０）b5[3]=0 のとき     pb(5) = b5[2] ^ b5[1]
（５−１１）b5[3]=1 のとき       pb(5) = 0
なお，b0[11:0]とb[9:0]とは異なり，b0[11:0]はBCD形式の３桁の１０進数を表しており，図７−図１０のRAS用冗長データ生成回路のb[9:0]は，DPD形式の３桁の１０進数を表している。
【０１０３】
上記の演算式（５−２）〜（５−９）は，図４の右端に示した図３の行番号と以下のような対応である。
（５−２）：図４の１行
（５−３）：図４の２行
（５−４）：図４の３行
（５−５）：図４の７行
（５−６）：図４の４行
（５−７）：図４の６行
（５−８）：図４の５行
（５−９）：図４の８行
これらの演算式により生成されるBCD形式のデータb0[11:0]から生成されるxorデータは，図７−図１０のDPD形式のデータb[9:0]から生成したxorデータと一致する。BCD形式とDPD形式の変換論理に基づいて，上記の演算式が導き出されている。但し，回路構成を最小化するために，上記のxorデータを算出する演算式も整理して簡素化されている。
【０１０４】
図１４のRAS用冗長データ生成回路１２は，演算式（５−１）がXOR回路1200,1201により演算されている。また，演算式（５−２）〜（５−１１）が，pb(i)生成回路12_0〜12_5により演算されている。
【０１０５】
図１６は，pd(i)生成回路12_0〜12_4の論理回路を示す図である。論理回路1204はbi[11,7,3]＝000が真の場合に「１」を出力するので，演算式（５−２）に対応する。同様に，論理回路1205〜1209は，図中の条件が真の場合に「１」を出力するので，それぞれの条件式と演算式との対応は次のとおりである。
論理回路1204，bi[11,7,3]＝000：演算式（５−２）
論理回路1205，bi[11,7,3]＝001：演算式（５−３）
論理回路1206，bi[11,7,3]＝010：演算式（５−４）
論理回路1207，bi[11,7,3]＝100：演算式（５−６）
論理回路1208，bi[11,7,3]＝011 or 101：演算式（５−５）（５−７）
論理回路1209，bi[11,7,3]＝110 or 111：演算式（５−８）（５−９）
そして，ANDゲートとORゲートからなるセレクタ1211は，論理回路1204−1209が出力する「１」に対応した値を，xorデータpb(i)として出力する。したがって，上記の演算式（５−２）〜（５−９）の演算結果pb(i)が，条件に対応してセレクタ1211から出力される。
【０１０６】
図１７は，pd(5)生成回路12_5の論理回路を示す図である。この論理回路は，XOR回路1220とAND回路1221とインバータ1222とを有し，上記の演算式（５−１０）（５−１１）に示された演算結果pb(5)を出力する。
【０１０７】
また，上記の演算式（５−１）〜（５−１１）は，BCD形式のデータがBCDフォーマットに従っている場合のみ有効である。具体的には，BCDフォーマットには10進として成り立たないデータがある。例えば，１桁が４ビットの２進数で表現されるので，１００１２＝９１０より大きなデータ（１６進数のA-F）は成り立たない。上記の演算式は，そのような例外がないことが前提となる。もしも例外データを含めた全ケースを見る必要がある場合には，演算式は次のとおりにする。
b0[11]=0,    b0[7]=0,    b0[3]=0     のとき      pb(0) = b0[6] ^ b0[5] ^ b0[2] ^ b0[1]
b0[11]=0,    b0[7]=0,    b0[3:1]=100 のとき       pb(0) = ~( b0[6] ^ b0[5] )
b0[11]=0,    b0[7:5]=100, b0[3]=0     のとき pb(0) = b0[2] ^ b0[1]
b0[11]=0,    b0[7:5]=100, b0[3:1]=100 のとき      pb(0) = 0
b0[11:9]=100, b0[7]=0,    b0[3]=0     のとき    pb(0) = b0[6] ^ b0[5]
b0[11:9]=100, b0[7]=0,    b0[3:1]=100 のとき      pb(0) = 0
b0[11:9]=100, b0[7:5]=100, b0[3]=0     のとき     pb(0) = 1
b0[11:9]=100, b0[7:5]=100, b0[3:1]=100 のとき       pb(0) = 1
b5[3]=0 のとき   pb(5) = b5[2] ^ b5[1]
b5[3:1]=100 のとき      pb(5) = 0
そして，この条件に合わないケースはデータエラーとして相応の処理が必要となる。
【０１０８】
図１４，１６，１７に示されたRAS用冗長データ生成回路１２は，上記の演算式に応じて修正されることが必要になる。
【０１０９】
以上説明したとおり，本実施の形態のRAS用冗長データ生成回路（エラー検出コード生成回路）１２は，DPD形式のデータから生成されるxorデータを，BCD形式のデータから生成する。したがって，BCD形式のデータをDPD形式のデータに変換するフォーマット変換回路と並行して，BCD形式のデータからDPD形式のデータのエラー検出コードであるxorデータを生成することができる。よって，演算遅延時間が短くなり，フォーマット変換回路のエラーを検出できる。
【０１１０】
上記の実施の形態をまとめると以下の付記のとおりである。
【０１１１】
（付記１）
４ビットで０から９までの数字を表現する第１の形式（BCD）の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットをそれぞれ生成する複数の第１のXOR生成回路(12_0〜12_4)と，
前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成する第２のXOR生成回路(12_5)と，
前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式（DPD）の１０進数データのエラー検出用XORビットとして，生成する第３のXOR生成回路(1200,1201)とを有し，
前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力するエラー検出コード生成回路。
【０１１２】
（付記２）
前記第１の形式の１０進数データは，複数桁の１０進数データを有し，
前記第２の形式の１０進数データは，第１のフィールドに格納された符号ビットと，第２のフィールドに格納された指数ビットと最上位桁の仮数ビットと，第３のフィールドに格納された下位の仮数ビットとを有し，
前記第１の形式の１０進数データの１０進数と，前記第２の形式の１０進数データの仮数部の１０進数とが同じ１０進数である付記１に記載のエラー検出コード生成回路。 
【０１１３】
（付記３）
複数の第１のXOR生成回路と第２のXOR生成回路と第３のXOR生成回路とを有するエラー検出コード生成回路において，
前記複数の第１のXOR生成回路が，４ビットで０から９までの数字を表現する第１の形式の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットをそれぞれ生成し，
前記第２のXOR生成回路が，前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成し，
前記第３のXOR生成回路が、前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式の１０進数データのエラー検出用XORビットとして生成することにより，前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力するエラー検出コード生成方法。
【０１１４】
（付記４）
４ビットで０から９までの数字を表現する第１の形式の１０進数データに含まれる，１０進数３桁に割り当てられた１２ビットに対する第１のXORビットを生成する複数の第１のXOR生成回路と，
前記第１の形式の１０進数データに含まれる，１０進数１桁に割り当てられた４ビットに対する第２のXORビットを生成する第２のXOR生成回路と，
前記第１のXORビットと前記第２のXORビットと符号ビットと指数ビットに対する第３のXORビットを，前記第１の形式の１０進数データからフォーマット変換された１０ビットで１０進数３桁を表現する第２の形式の１０進数データのエラー検出用XORビットとして，生成する第３のXOR生成回路とを有し，
前記エラー検出用XORビットと前記第１の形式の１０進数データのモジュロ３とを，前記第２の形式の１０進数データのエラー検出用冗長データとして出力する第１のエラー検出コード生成回路(12)と，
前記第１の形式の１０進数データを前記第２の形式の１０進数データに変換するフォーマット変換回路(10)とを有する，
フォーマット変換装置。
【０１１５】
（付記５）
前記フォーマット変換装置は，さらに，
前記変換された第２の形式（DPD）の１０進数データのコンビネーションフィールド内の仮数最上位桁の第１のモジュロ３を生成する第１のモジュロ生成回路(801)と，前記変換された第２の形式の１０進数データの後続仮数部フィールドの前記１０進数３桁を表現する１０ビットのデクレットの第２のモジュロ３をそれぞれ生成する複数の第２のモジュロ生成回路(1001-1005)と，前記第１のモジュロ３及び複数の第２のモジュロ３の第３のモジュロ３(P[1:0])を生成する第３のモジュロ生成回路(603)と，前記第２の形式の１０進数データのエラー検出用XORビットを生成する第４のXOR生成回路(604)とを有する第２のエラー検出コード生成回路(112)と，
前記第１のエラー検出コード生成回路(12)が生成する前記第２の形式の１０進数データのエラー検出用XORビット(pd[2])及び前記第１の形式の１０進数データのモジュロ３(pd[1:0])と，前記第２のエラー検出コード生成回路(112)が生成する前記第２の形式の１０進数データのエラー検出用XORビット(P[2])と前記第３のモジュロ３(P[1:0])とをそれぞれ比較する比較器(20)とを有する
付記４に記載のフォーマット変換装置。
【０１１６】
（付記６）
前記第１の形式の１０進数データは，複数桁の１０進数データを有し，
前記第２の形式の１０進数データは，第１のフィールドに格納された符号ビットと，第２のフィールドに格納された指数ビットと最上位桁の仮数ビットと，第３のフィールドに格納された下位の仮数ビットとを有し，
前記第１の形式の１０進数データの１０進数と，前記第２の形式の１０進数データの仮数部の１０進数とが同じ１０進数である付記４に記載のフォーマット変換装置。 
【０１１７】
（付記７）
前記フォーマット変換回路には，前記第１の形式の１０進数データと，前記第２の形式の１０進数データに含まれる符号ビットと指数ビットとが入力される付記４に記載のフォーマット変換装置。
【符号の説明】
【０１１８】
１２：第１のエラー検出コード生成回路
１１２，１８：第２のエラー検出コード生成回路
２０：比較回路
BCD：第１の形式
DPD：第２の形式
【図１】
0006344135.tif 000003
【図２】
0006344135.tif 000004
【図３】
0006344135.tif 000005
【図４】
0006344135.tif 000006
【図５】
0006344135.tif 000007
【図６】
0006344135.tif 000008
【図７】
0006344135.tif 000009
【図８】
0006344135.tif 000010
【図９】
0006344135.tif 000011
【図１０】
0006344135.tif 000012
【図１１】
0006344135.tif 000013
【図１２】
0006344135.tif 000014
【図１３】
0006344135.tif 000015
【図１４】
0006344135.tif 000016
【図１５】
0006344135.tif 000017
【図１６】
0006344135.tif 000018
【図１７】
0006344135.tif 000019