(57)【特許請求の範囲】
【請求項１】
ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算を行う際に前記丸め処理後の商と前記丸め処理で発生する商加算指示とを考慮してモジュロ３生成を行う回路を有することを特徴とする除算器障害検出回路。
【請求項２】
被除数と除数とから減算シフト法によって商を生成する商生成手段と、丸めモードにしたがって前記商生成手段の商結果に対する丸め処理を行う丸め処理手段と、前記丸め処理手段による丸め処理にしたがって前記商生成手段の商結果に丸め補正加算を行う丸め補正加算手段と、前記被除数のモジュロ３を生成する被除数モジュロ３生成手段と、前記除数のモジュロ３を生成する除数モジュロ３生成手段と、最終部分剰余からモジュロ３を生成する部分剰余モジュロ３生成手段と、前記丸め補正加算手段の丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成するモジュロ３生成手段と、前記除数モジュロ３生成手段で生成されたモジュロ３と前記モジュロ３生成手段で生成されたモジュロ３とを乗算する積のモジュロ３生成手段と、前記部分剰余モジュロ３生成手段で生成されたモジュロ３と前記積のモジュロ３生成手段で生成されたモジュロ３との和をとる和のモジュロ３生成手段と、前記被除数モジュロ３生成手段で生成されたモジュロ３と前記和のモジュロ３生成手段で生成されたモジュロ３との比較を行う比較手段とを有することを特徴とする除算器障害検出回路。
【請求項３】
被除数と除数とから減算シフト法によって商を生成する商生成手段と、丸めモードにしたがって前記商生成手段の商結果に対する丸め処理を行う丸め処理手段と、前記丸め処理手段による丸め処理にしたがって前記商生成手段の商結果に丸め補正加算を行う丸め補正加算手段と、前記被除数のモジュロ３を生成する被除数モジュロ３生成手段と、前記除数のモジュロ３を生成する除数モジュロ３生成手段と、最終部分剰余からモジュロ３を生成する部分剰余モジュロ３生成手段と、前記商生成手段の商結果のモジュロ３を生成する商のモジュロ３生成手段と、前記除数モジュロ３生成手段で生成されたモジュロ３と前記商のモジュロ３生成手段で生成されたモジュロ３とを乗算する積のモジュロ３生成手段と、前記部分剰余モジュロ３生成手段で生成されたモジュロ３と前記積のモジュロ３生成手段で生成されたモジュロ３との和をとる和のモジュロ３生成手段と、前記被除数モジュロ３生成手段で生成されたモジュロ３と前記和のモジュロ３生成手段で生成されたモジュロ３との比較を行う手段と、前記丸め補正加算手段の丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成するモジュロ３生成手段と、前記商のモジュロ３生成手段で生成されたモジュロ３と前記モジュロ３生成手段で生成されたモジュロ３との比較を行う手段とを有することを特徴とする除算器障害検出回路。
【請求項４】
ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算器全体のチェックを行うようにしたことを特徴とする請求項２または請求項３記載の除算器障害検出回路。
【請求項５】
被除数をＹ、除数をＺ、商をＱ、最終剰余をＲとし、被除数のモジュロ３であるＭｏｄ３（Ｙ）を求めておき、丸め処理結果から生成される商のモジュロ３であるＭｏｄ３（Ｒ）’と、第（Ｎ＋１）番目の部分剰余ＲN+1 モジュロ３であるＭｏｄ３（Ｒ）’とを使用し、
Ｍｏｄ３（Ｙ）＝Ｍｏｄ３｛Ｍｏｄ３（Ｑ）’×Ｍｏｄ３（Ｚ）＋Ｍｏｄ３（Ｒ）’｝
という式によって丸め回路及び丸め加算も含めた除算器全体のチェックを行うようにしたことを特徴とする請求項２から請求項４のいずれか記載の除算器障害検出回路。
【請求項６】
ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算を行う際に前記丸め処理後の商と前記丸め処理で発生する商加算指示とを考慮してモジュロ３生成を行うようにしたことを特徴とする除算器障害検出方法。
【請求項７】
被除数と除数とから減算シフト法によって商を生成する第１のステップと、丸めモードにしたがって前記第１のステップの商結果に対する丸め処理を行う第２のステップと、前記第２のステップによる丸め処理にしたがって前記第１のステップの商結果に丸め補正加算を行う第３のステップと、前記第３のステップの丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成する第４のステップと、前記除数のモジュロ３を生成する第５のステップと、前記第４のステップで生成されたモジュロ３と前記第５のステップで生成されたモジュロ３とを乗算する第６のステップと、最終部分剰余からモジュロ３を生成する第７のステップと、前記第６のステップで生成されたモジュロ３と前記第７のステップで生成されたモジュロ３との和をとる第８のステップと、前記被除数のモジュロ３を生成する第９のステップと、前記第８のステップで生成されたモジュロ３と前記第９のステップで生成されたモジュロ３との比較を行う第１０のステップとを有することを特徴とする除算器障害検出方法。
【請求項８】
被除数と除数とから減算シフト法によって商を生成する第１のステップと、丸めモードにしたがって前記第１のステップの商結果に対する丸め処理を行う第２のステップと、前記第２のステップによる丸め処理にしたがって前記第１のステップの商結果に丸め補正加算を行う第３のステップと、前記第１のステップの商結果のモジュロ３を生成する第４のステップと、前記除数のモジュロ３を生成する第５のステップと、前記第４のステップで生成されたモジュロ３と前記第５のステップで生成されたモジュロ３とを乗算する第６のステップと、最終部分剰余からモジュロ３を生成する第７のステップと、前記第６のステップで生成されたモジュロ３と前記第７のステップで生成されたモジュロ３との和をとる第８のステップと、前記被除数のモジュロ３を生成する第９のステップと、前記第８のステップで生成されたモジュロ３と前記第９のステップで生成されたモジュロ３との比較を行う第１０のステップと、前記第３のステップの丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成する第１１のステップと、前記第４のステップで生成されたモジュロ３と前記第１１のステップで生成されたモジュロ３との比較を行う第１２のステップとを有することを特徴とする除算器障害検出方法。
【請求項９】
ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算器全体のチェックを行うようにしたことを特徴とする請求項７または請求項８記載の除算器障害検出方法。
【請求項１０】
被除数をＹ、除数をＺ、商をＱ、最終剰余をＲとし、被除数のモジュロ３であるＭｏｄ３（Ｙ）を求めておき、丸め処理結果から生成される商のモジュロ３であるＭｏｄ３（Ｒ）’と、第（Ｎ＋１）番目の部分剰余ＲN+1 モジュロ３であるＭｏｄ３（Ｒ）’とを使用し、
Ｍｏｄ３（Ｙ）＝Ｍｏｄ３｛Ｍｏｄ３（Ｑ）’×Ｍｏｄ３（Ｚ）＋Ｍｏｄ３（Ｒ）’｝
という式によって丸め回路及び丸め加算も含めた除算器全体のチェックを行うようにしたことを特徴とする請求項７から請求項９のいずれか記載の除算器障害検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は除算器障害検出回路及びそれに用いる除算器障害検出方法に関し、特にＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算器の障害検出に関する。
【０００２】
【従来の技術】
従来、除算器の障害検出方法としては、除算器での被除数のモジュロ３を生成する手段によって生成されるＭｏｄ３（Ｙ）と、除数のモジュロ３を生成する手段によって生成されるＭｏｄ３（Ｚ）と、商のモジュロ３を生成する手段によって生成されるＭｏｄ３（Ｑ）と、第（Ｎ＋１）番目の部分剰余ＲN+1 モジュロ３を生成する手段によって生成されるＭｏｄ３（Ｒ）とから、
Ｍｏｄ３（Ｙ）＝Ｍｏｄ３｛Ｍｏｄ３（Ｑ）×Ｍｏｄ３（Ｚ）＋Ｍｏｄ３（Ｒ）｝
という式によって除算器全体のチェックを行っている。この除算器全体のチェックについては、特開昭６０−１１７３３２号公報に開示されている。
【０００３】
近年、ＩＥＥＥ  Ｐ７５４規格に対応した除算器では、丸め処理部および丸め処理内で使用する加算器の障害検出として、回路２重化によるチェックが行われている。
【０００４】
すなわち、ＩＥＥＥ  Ｐ７５４規格に対応した除算器では、図９に示すように、丸め回路（Ｒｏｕｎｄ）１２−１，１２−２と、丸め加算回路（Ａｄｄｅｒ）１３−１，１３−２とが二重化されており、比較回路（Ｃｏｍｐａｒｅ）４１によって丸め回路１２−１，１２−２各々の出力を比較し、比較回路４２によって丸め加算回路１３−１，１３−２各々の出力を比較することで、丸め回路１２−１，１２−２及び丸め加算回路１３−１，１３−２の障害検出を行っている。
【０００５】
尚、図９において、１は被除数レジスタを、２は除数レジスタを、３は被除数用モジュロ３生成回路（Ｍｏｄｕｌｏ３  Ｇｅｎｅｒａｔｅ）を、４は除数用モジュロ３生成回路を、５は積のモジュロ３生成回路を、６は和のモジュロ３生成回路を、７は比較回路を、１０は商生成部（Ｄｉｖｉｄｅｒ）を、１４は部分剰余モジュロ３生成回路を、２０は商レジスタを、３１は商のモジュロ３生成回路をそれぞれ示している。
【０００６】
【発明が解決しようとする課題】
上述した従来の除算器の障害検出方法では、ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算器において、丸め処理前の商及び最終部分剰余からモジュロ３生成を行い、モジュロ３チェックを行っているので、丸め回路及び丸め加算回路がモジュロ３チェック対象外となり、回路２重化によってチェックを行っていたので、障害検証のハードウェア量が大きいという問題がある。
【０００７】
そこで、本発明の目的は上記の問題点を解消し、除算チェックのためのハードウェア量を大幅に減少させることができ、除算器全体のチェックを行うことができる除算器障害検出回路及びそれに用いる除算器障害検出方法を提供することにある。
【０００８】
【課題を解決するための手段】
本発明による除算器障害検出回路は、ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算を行う際に前記丸め処理後の商と前記丸め処理で発生する商加算指示とを考慮してモジュロ３生成を行う回路を備えている。
【０００９】
本発明による他の除算器障害検出回路は、被除数と除数とから減算シフト法によって商を生成する商生成手段と、丸めモードにしたがって前記商生成手段の商結果に対する丸め処理を行う丸め処理手段と、前記丸め処理手段による丸め処理にしたがって前記商生成手段の商結果に丸め補正加算を行う丸め補正加算手段と、前記被除数のモジュロ３を生成する被除数モジュロ３生成手段と、前記除数のモジュロ３を生成する除数モジュロ３生成手段と、最終部分剰余からモジュロ３を生成する部分剰余モジュロ３生成手段と、前記丸め補正加算手段の丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成するモジュロ３生成手段と、前記除数モジュロ３生成手段で生成されたモジュロ３と前記モジュロ３生成手段で生成されたモジュロ３とを乗算する積のモジュロ３生成手段と、前記部分剰余モジュロ３生成手段で生成されたモジュロ３と前記積のモジュロ３生成手段で生成されたモジュロ３との和をとる和のモジュロ３生成手段と、前記被除数モジュロ３生成手段で生成されたモジュロ３と前記和のモジュロ３生成手段で生成されたモジュロ３との比較を行う比較手段とを備えている。
【００１０】
本発明による別の除算器障害検出回路は、被除数と除数とから減算シフト法によって商を生成する商生成手段と、丸めモードにしたがって前記商生成手段の商結果に対する丸め処理を行う丸め処理手段と、前記丸め処理手段による丸め処理にしたがって前記商生成手段の商結果に丸め補正加算を行う丸め補正加算手段と、前記被除数のモジュロ３を生成する被除数モジュロ３生成手段と、前記除数のモジュロ３を生成する除数モジュロ３生成手段と、最終部分剰余からモジュロ３を生成する部分剰余モジュロ３生成手段と、前記商生成手段の商結果のモジュロ３を生成する商のモジュロ３生成手段と、前記除数モジュロ３生成手段で生成されたモジュロ３と前記商のモジュロ３生成手段で生成されたモジュロ３とを乗算する積のモジュロ３生成手段と、前記部分剰余モジュロ３生成手段で生成されたモジュロ３と前記積のモジュロ３生成手段で生成されたモジュロ３との和をとる和のモジュロ３生成手段と、前記被除数モジュロ３生成手段で生成されたモジュロ３と前記和のモジュロ３生成手段で生成されたモジュロ３との比較を行う手段と、前記丸め補正加算手段の丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成するモジュロ３生成手段と、前記商のモジュロ３生成手段で生成されたモジュロ３と前記モジュロ３生成手段で生成されたモジュロ３との比較を行う手段とを備えている。
【００１１】
本発明による除算器障害検出方法は、ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算を行う際に前記丸め処理後の商と前記丸め処理で発生する商加算指示とを考慮してモジュロ３生成を行うようにしている。
【００１２】
本発明による他の除算器障害検出方法は、被除数と除数とから減算シフト法によって商を生成する第１のステップと、丸めモードにしたがって前記第１のステップの商結果に対する丸め処理を行う第２のステップと、前記第２のステップによる丸め処理にしたがって前記第１のステップの商結果に丸め補正加算を行う第３のステップと、前記第３のステップの丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成する第４のステップと、前記除数のモジュロ３を生成する第５のステップと、前記第４のステップで生成されたモジュロ３と前記第５のステップで生成されたモジュロ３とを乗算する第６のステップと、最終部分剰余からモジュロ３を生成する第７のステップと、前記第６のステップで生成されたモジュロ３と前記第７のステップで生成されたモジュロ３との和をとる第８のステップと、前記被除数のモジュロ３を生成する第９のステップと、前記第８のステップで生成されたモジュロ３と前記第９のステップで生成されたモジュロ３との比較を行う第１０のステップとを備えている。
【００１３】
本発明による別の除算器障害検出方法は、被除数と除数とから減算シフト法によって商を生成する第１のステップと、丸めモードにしたがって前記第１のステップの商結果に対する丸め処理を行う第２のステップと、前記第２のステップによる丸め処理にしたがって前記第１のステップの商結果に丸め補正加算を行う第３のステップと、前記第１のステップの商結果のモジュロ３を生成する第４のステップと、前記除数のモジュロ３を生成する第５のステップと、前記第４のステップで生成されたモジュロ３と前記第５のステップで生成されたモジュロ３とを乗算する第６のステップと、最終部分剰余からモジュロ３を生成する第７のステップと、前記第６のステップで生成されたモジュロ３と前記第７のステップで生成されたモジュロ３との和をとる第８のステップと、前記被除数のモジュロ３を生成する第９のステップと、前記第８のステップで生成されたモジュロ３と前記第９のステップで生成されたモジュロ３との比較を行う第１０のステップと、前記第３のステップの丸め補正加算結果から生成したモジュロ３と丸め補正分とを考慮したモジュロ３を生成する第１１のステップと、前記第４のステップで生成されたモジュロ３と前記第１１のステップで生成されたモジュロ３との比較を行う第１２のステップとを備えている。
【００１４】
すなわち、本発明の除算器障害検出方法は、丸め処理後の最終処理結果からの商及び部分剰余からモジュロ３生成を行うことによって、従来の除算器に比べて除算チェックのためのハードウェア量が減少するとともに、除算器全体のチェックが可能となる。
【００１５】
より具体的に説明すると、本発明の除算器障害検出方法では、被除数をＹ、除数をＺ、商をＱ、最終剰余をＲとし、被除数のモジュロ３であるＭｏｄ３（Ｙ）を求めておき、丸め処理結果から生成される商のモジュロ３であるＭｏｄ３（Ｒ）’と、第（Ｎ＋１）番目の部分剰余ＲN+1 モジュロ３であるＭｏｄ３（Ｒ）’とを使用し、
Ｍｏｄ３（Ｙ）＝Ｍｏｄ３｛Ｍｏｄ３（Ｑ）’×Ｍｏｄ３（Ｚ）＋Ｍｏｄ３（Ｒ）’｝
という式によって丸め回路及び丸め加算も含めた除算器全体のチェックを行うことで、従来の除算器に比べて除算チェックのためのハードウェア量を減少させ、除算器全体のチェックが可能となる。
【００１６】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例による除算器の構成を示すブロック図である。図１において、本発明の一実施例による除算器は被除数レジスタ１と、除数レジスタ２と、商生成部（Ｄｉｖｉｄｅｒ）１０と、被除数用モジュロ３生成回路（Ｍｏｄｕｌｏ３  Ｇｅｎｅｒａｔｅ）３と、除数用モジュロ３生成回路４と、積のモジュロ３生成回路５と、和のモジュロ３生成回路６と、部分剰余モジュロ３生成回路１４と、丸め回路（Ｒｏｕｎｄ）１２と、丸め加算回路（Ａｄｄｅｒ）１３と、商のモジュロ３生成回路１１と、商レジスタ２０と、比較回路（Ｃｏｍｐａｒｅ）７とから構成されている。
【００１７】
モジュロ３はデータを３で割った剰余のことであり、ａのモジュロ３をＭｏｄ３（ａ）とすると、
Ｍｏｄ３（ａ＋ｂ）＝Ｍｏｄ３｛Ｍｏｄ３（ａ）＋Ｍｏｄ３（ｂ）｝
Ｍｏｄ３（ａ×ｂ）＝Ｍｏｄ３｛Ｍｏｄ３（ａ）×Ｍｏｄ３（ｂ）｝
というような法則が成立する。
【００１８】
除算器のモジュロ３は被除数をＹ、除数をＺ、商をＱ、最終剰余をＲとし、被除数のモジュロ３［Ｍｏｄ３（Ｙ）］を求めておき、
0003645830.tif 000002
という式によってＭｏｄ３（Ｙ）’を求める。
【００１９】
Ｍｏｄ３（Ｙ）とＭｏｄ３（Ｙ）’とは、上式から等しいことが示されるので、この二値を比較し、違いがあれば除算器にエラーがあると判定することができる。但し、除算器では各要素のモジュロ３を求める際、小数点位置を起点として演算を行うが、実際には小数点の位置が各々のデータで異なるので、データによってはシフト処理が必要となる。
【００２０】
被除数のモジュロ３［Ｍｏｄｕｌｏ３（Ｙ）］結果２０１は被除数レジスタ１から被除数用モジュロ３生成回路３で求め、除数のモジュロ３［Ｍｏｄｕｌｏ３（Ｚ）］結果２０２は被除数レジスタ２から除数用モジュロ生成回路４で求める。商生成部１０では乗算型除算法あるいは減算シフト型方式によって商（Ｑ）２１０と部分剰余（Ｒ）２１１とを生成する。
【００２１】
本実施例ではハードウェア量と性能とのバランスがよい減算シフト法のＳＲＴ（スエニー・ロバートソン・タッカー）除算方式を採用している。ＳＲＴ除算方式の場合、商の小数点以下ｊ桁目のｑj として、｛−１，０，１｝の３値をとることを許しているので、最終部分剰余が負の場合もあり得る。最終部分剰余が負の場合には引きすぎているので、部分剰余が負にならないように補正する。
【００２２】
次に、丸め処理について説明する。浮動小数点形式の世界標準であるＩＥＥＥＰ７５４規格では、（１）最も近い値に丸める（Ｒｏｕｎｄ  ｔｏ  Ｎｅａｒｅｓｔ：ＲＮ）、（２）＋∞に向かって丸める（Ｒｏｕｎｄ  ｔｏ  ＋∞：ＲＰ）、（３）−∞に向かって丸める（Ｒｏｕｎｄ  ｔｏ  −∞：ＲＭ）、（４）零に向かって丸める（ＲＺ）という４種の丸めモード（ＲＮ，ＲＰ，ＲＭ，ＲＺ）が義務付けられている。
【００２３】
上記の４種の丸め処理は正規化シフト後に行われ、丸め処理を行うには演算・正規化シフト処理において、データの精度をあげておく必要があり、図２に示すように、ＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）（以下、Ｌビットとする）の下位にさらに３ビット余分に設けた内部フォーマットを用いて、処理を実行する。
【００２４】
図２に示す内部フォーマットにおいて、Ｇはガードビット、Ｒは丸めビット、Ｓはスティッキービットと呼ばれる。スティッキービットはそのビット以下の全ビットの論理和である。すなわち、スティッキービットが１のデータは丸め以前にすでに誤差が含まれている可能性がある。
【００２５】
スティッキービットが一種のフラグと見なせるのに対して、ガードビットと丸めビットとは精度向上のための数値ビットである。丸めモード（ＲＮ，ＲＰ，ＲＭ，ＲＺ）とＬ，Ｇ，Ｒ，Ｓとの値が、（１）ＲＮ：（Ｇ，Ｓ，Ｒ）＝（１，０，０）かつＬ＝１の場合，（２）ＲＰ：ＳＧＮ＝０の場合、（３）ＲＭ：ＳＧＮ＝１の場合、ＬＳＢに１を加える処理（図１のＩｃａｒｒｙ信号１０１で指示）を行う。Ｉｃａｒｒｙ信号１０１で指示が出た場合、商の結果に対して、＋１加算を丸め加算回路１３で行い、丸め後の商２０７を商レジスタ２０に格納する。
【００２６】
商生成部１０で生成された部分剰余２１１の結果から部分剰余モジュロ３生成回路１４で部分剰余モジュロ３［Ｍｏｄｕｌｏ３（Ｒ）］結果２０３を生成する。丸め後の商２０７は商生成部１０で生成された商２１０に丸め補正されているので、丸め後の商２０７から生成したモジュロ３に、丸め補正分を考慮してモジュロ３生成を行う必要がある。
【００２７】
本実施例では減算シフト法のＳＲＴ除算を採用しているので、部分剰余の値として負を許している。最終の部分剰余＝負の場合、商が＋１大きいので、商を−１補正する。部分剰余の正負は部分剰余の符号（ＲＴＯＰ）で判定する。
【００２８】
具体的には、ＩＥＥＥ倍精度演算時に、図３に示すように、（Ｉｃａｒｒｙ，ＲＴＯＰ）と商補正モジュロ値との関係が、（０，０）の時に「００」、（０，１）の時に「０１」、（１，０）の時に「１０」、（１，１）の時に「００」となる。
【００２９】
また、ＩＥＥＥ単精度演算時に、図４に示すように、（Ｉｃａｒｒｙ，ＲＴＯＰ）と商補正モジュロ値との関係が、（０，０）の時に「００」、（０，１）の時に「０１」、（１，０）の時に「０１」、（１，１）の時に「１０」となる。
【００３０】
丸め後の商２０７のモジュロ３［ｍｏｄｕｌｏ３（Ｑ）’］結果２０４は、
0003645830.tif 000003
という式で算出される。Ｍｏｄｕｌｏ３（Ｉｃａｒｒｙ，ＲＴＯＰ）は、図３及び図４に示す商補正モジュロ値であり、信号１００で商のモジュロ３生成回路１１に伝達される。
【００３１】
補正されたＭｏｄｕｌｏ３（Ｑ）が生成されたら、積のモジュロ３生成回路５でモジュロ３結果同士の乗算が行われ、その乗算結果２０５と、部分剰余のモジュロ３結果２０３とを和のモジュロ３生成回路６で加算する。
【００３２】
加算したモジュロ３結果２０６は、（Ａ）式のＭｏｄ３（Ｙ）’に相当するので、予め生成しておいた被除数のモジュロ３結果２０１と比較回路７で比較を行い、商生成部１０及び丸め回路１２、丸め加算回路１３で障害があるか否かを判定する。
【００３３】
被除数のモジュロ３［Ｍｏｄｕｌｏ３（Ｙ）］結果２０１は被除数レジスタ１から被除数用モジュロ３生成回路３で求め、除数のモジュロ３［Ｍｏｄｕｌｏ３（Ｚ）］結果２０２は被除数レジスタ２から除数用モジュロ３生成回路４で求める。
【００３４】
商生成部１０では乗算型除算法あるいは減算シフト型方式によって商（Ｑ）２１０と部分剰余（Ｒ）２１１とを生成する。本実施例では、ハードウェア量と性能とのバランスがよい減算シフト法のＳＲＴ除算方式を採用している。ＳＲＴ除算方式の場合、商の小数点以下ｊ桁目のｑj として、｛−１，０，１｝の３値をとることを許しているので、最終部分剰余が負の場合もあり得る。最終部分剰余が負の場合には引きすぎているので、部分剰余が負にならないように補正する。
【００３５】
丸めモードにしたがって丸め処理を行い、丸め加算指示が出た場合、Ｉｃａｒｒｙ信号１０１＝１となる。Ｉｃａｒｒｙ信号１０１＝１の指示が出た場合、商の結果に対して、＋１加算を丸め加算回路１３で行い、丸め後の商２０７を商レジスタ２０に格納する。
【００３６】
商生成部１０で生成された部分剰余２１１の結果から部分剰余モジュロ３生成回路１４で部分剰余モジュロ３［Ｍｏｄｕｌｏ３（Ｒ）］結果２０３を生成する。丸め後の商２０７は商生成部１０で生成された商２１０に丸め補正されているので、丸め後の商２０７から生成したモジュロ３に、丸め補正分を考慮してモジュロ３生成を行う必要がある。
【００３７】
本実施例では減算シフト法のＳＲＴ除算を採用しているので、部分剰余の値として負を許している。最終の部分剰余＝負の場合、商が＋１大きいので、商を−１補正する。部分剰余の正負は符号（ＲＴＯＰ）で判定する。具体的には、ＩＥＥＥ倍精度演算時に図３に示す内容となり、ＩＥＥＥ単精度演算時に図４に示す内容となる。
【００３８】
丸め後の商２０７のモジュロ３［ｍｏｄｕｌｏ３（Ｑ）’］結果２０４は、
0003645830.tif 000004
という式で算出される。Ｍｏｄｕｌｏ３（Ｉｃａｒｒｙ，ＲＴＯＰ）は図３及び図４に示す商補正モジュロ値であり、信号１００で商のモジュロ３生成回路１１に伝達される。
【００３９】
補正されたモジュロ３［Ｍｏｄｕｌｏ３（Ｑ）］結果２０４が生成されたら、積のモジュロ３生成回路５でモジュロ３結果同士の乗算が行われ、その乗算結果２０５と部分剰余のモジュロ３結果２０３とを和のモジュロ３生成回路６で加算する。加算したモジュロ３結果２０６は、（Ａ）式のＭｏｄ３（Ｙ）’に相当するので、予め生成しておいた被除数のモジュロ３結果２０１と比較回路７で比較を行い、商生成部１０及び丸め回路１２、丸め加算回路１３で障害があるか否かを判定する。
【００４０】
本発明では丸め回路１２及び丸め加算回路１３による丸め処理結果から生成される商のモジュロ３であるＭｏｄ３（Ｒ）’と、部分剰余モジュロ３であるＭｏｄ３（Ｒ）’とを使用し、
Ｍｏｄ３（Ｙ）＝Ｍｏｄ３｛Ｍｏｄ３（Ｑ）’×Ｍｏｄ３（Ｚ）＋Ｍｏｄ３（Ｒ）’｝
という式によって除算器全体のチェックを行うことで、従来の除算器に比べて除算チェックのためのハードウェア量を大幅に減少させることができ、除算全体のチェックを行うことができる。
【００４１】
図５は本発明の一実施例による除算器の動作を示すフローチャートである。これら図１及び図５を参照して本発明の一実施例による除算器の動作について説明する。
【００４２】
商生成部１０は被除数レジスタ１の被除数と除数レジスタ２の除数とから減算シフト法によって商を生成する（図５ステップＳ１）。丸め回路１２は丸めモードにしたがって商生成部１０の商結果に対する丸め処理を行い（図５ステップＳ２）、丸め加算回路１３は丸め回路１２による丸め処理にしたがって商生成部１０の商結果に丸め補正加算を行う（図５ステップＳ３）。丸め後の商は商レジスタ２０に格納される。
【００４３】
商のモジュロ３生成回路１１は丸め加算回路１３の丸め補正加算結果から生成したモジュロ３及び丸め補正分を考慮したモジュロ３を生成する（図５ステップＳ４）。除数用モジュロ３生成回路４は除数レジスタ２の除数のモジュロ３を生成し（図５ステップＳ５）、積のモジュロ３生成回路５は除数用モジュロ３生成回路４で生成されたモジュロ３と商のモジュロ３生成回路１１で生成されたモジュロ３とを乗算する（図５ステップＳ６）。
【００４４】
部分剰余モジュロ３生成回路１４は最終部分剰余からモジュロ３を生成し（図５ステップＳ７）、和のモジュロ３生成回路６は積のモジュロ３生成回路５で生成されたモジュロ３と部分剰余モジュロ３生成回路１４で生成されたモジュロ３との和をとる（図５ステップＳ８）。
【００４５】
被除数用モジュロ３生成回路３は被除数レジスタ１の被除数のモジュロ３を生成し（図５ステップＳ９）、比較回路７は被除数用モジュロ３生成回路３で生成されたモジュロ３と和のモジュロ３生成回路６で生成されたモジュロ３との比較を行う（図５ステップＳ１０）。比較回路７の比較結果が一致を示す場合には（図５ステップＳ１１）、障害なしと判定され（図５ステップＳ１２）、不一致を示す場合には（図５ステップＳ１１）、障害ありと判定される（図５ステップＳ１３）。
【００４６】
図６は本発明の他の実施例による除算器の構成を示すブロック図である。図６において、本発明の他の実施例による除算器は商のモジュロ３生成回路３１と、比較回路３２とを設けた以外は図１に示す本発明の一実施例と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の一実施例と同様である。但し、和のモジュロ３生成回路６は商のモジュロ３生成回路１１の出力の代わりに商のモジュロ３生成回路３１の出力を入力とし、商のモジュロ３生成回路１１の出力は比較回路３２に入力される。
【００４７】
本発明の一実施例では丸め回路１２及び丸め加算回路１３をも含んだモジュロ３チェックを行っている。従来の除算器では丸め回路１２−１，１２−２や丸め加算回路１３−１，１３−２を２重化することで、２重化回路で故障が発生した場合に、丸め処理回路１２−１，１２−２か丸め加算回路１３−１，１３−２かの故障を特定している。
【００４８】
しかしながら、本発明の一実施例によるチェックでは丸め回路１２及び丸め加算回路１３を含んだ除算器全体でチェックを行っているので、丸め回路１２や丸め加算回路１３で故障が発生した場合、故障の発生を指摘することはできるが、どこで故障したかを指摘することができない。
【００４９】
そこで、本発明の他実施例では、従来、２重化によってチェックしている丸め回路１２や丸め加算回路１３を商のモジュロ３生成回路１１及び比較回路３２によるチェックとすることで、２重化チェックに比べて、少ないハードウェア量で同じ故障分解能を有する回路を提供することができる。
【００５０】
丸め回路１２や丸め加算回路１３に対する商のモジュロ３生成回路１１及び比較回路３２によるチェックでは、商生成部１０から生成された商のモジュロ３［Ｍｏｄｉｌｏ３（Ｑ）］結果２０４を商のモジュロ３生成回路３１で予め生成しておく。丸めモードにしたがって丸め処理を行い、丸め加算指示が出た場合、Ｉｃａｒｒｙ信号１０１＝１となる。Ｉｃａｒｒｙ信号１０１＝１の指示が出た場合、商の結果に対して、＋１加算を丸め加算回路１３で行い、丸め後の商２０７を商レジスタ２０に格納する。
【００５１】
丸め後の商２０７は商生成部１０で生成された商２１０に丸め補正されているので、丸め後の商２０７から生成したモジュロ３に、丸め補正分を考慮してモジュロ３生成を行う必要がある。
【００５２】
本実施例では減算シフト法のＳＲＴ除算方式を採用しているので、部分剰余の値として負を許している。最終の部分剰余＝負の場合、商が＋１大きいので、商を−１補正する。部分剰余の正負は符号（ＲＴＯＰ）で判定する。具体的には、ＩＥＥＥ倍精度演算時に図３に示す内容となり、ＩＥＥＥ単精度演算時に図４に示す内容となる。
【００５３】
丸め後の商２０７のモジュロ３［Ｍｏｄｕｌｏ３（Ｑ）’］結果２０４は、
0003645830.tif 000005
という式で算出される。Ｍｏｄｕｌｏ３（Ｉｃａｒｒｙ，ＲＴＯＰ）は図３及び図４に示す商補正モジュロ値であり、信号１００で商のモジュロ３生成回路１１に伝達される。
【００５４】
商のモジュロ３生成回路１１で補正されたＭｏｄｕｌｏ３（Ｑ）’が生成されると、予め生成されている商のモジュロ３［Ｍｏｄｕｌｏ３（Ｑ）］結果２０４との比較を比較回路３２で行い、不一致した場合、丸め回路１２か丸め加算回路１３かの障害となる。
【００５５】
図７及び図８は本発明の他の実施例による除算器の動作を示すフローチャートである。これら図６〜図８を参照して本発明の他の実施例による除算器の動作について説明する。
【００５６】
商生成部１０は被除数レジスタ１の被除数と除数レジスタ２の除数とから減算シフト法によって商を生成する（図７ステップＳ２１）。商のモジュロ３生成回路３１は商生成部１０の商結果のモジュロ３を生成し（図７ステップＳ２２）、除数用モジュロ３生成回路４は除数レジスタ２の除数のモジュロ３を生成する（図７ステップＳ２３）。
【００５７】
積のモジュロ３生成回路５は除数用モジュロ３生成回路４で生成されたモジュロ３と商のモジュロ３生成回路３１で生成されたモジュロ３とを乗算する（図７ステップＳ２４）。部分剰余モジュロ３生成回路１４は最終部分剰余からモジュロ３を生成し（図７ステップＳ２５）、和のモジュロ３生成回路６は積のモジュロ３生成回路５で生成されたモジュロ３と部分剰余モジュロ３生成回路１４で生成されたモジュロ３との和をとる（図７ステップＳ２６）。
【００５８】
被除数用モジュロ３生成回路３は被除数レジスタ１の被除数のモジュロ３を生成し（図７ステップＳ２７）、比較回路７は被除数用モジュロ３生成回路３で生成されたモジュロ３と和のモジュロ３生成回路６で生成されたモジュロ３との比較を行う（図７ステップＳ２８）。比較回路７の比較結果が一致を示す場合には（図７ステップＳ２９）、障害なしと判定され（図５ステップＳ３０）、不一致を示す場合には（図７ステップＳ２９）、障害ありと判定される（図５ステップＳ３１）。
【００５９】
一方、丸め回路１２は丸めモードにしたがって商生成部１０の商結果に対する丸め処理を行い（図８ステップＳ３２）、丸め加算回路１３は丸め回路１２による丸め処理にしたがって商生成部１０の商結果に丸め補正加算を行う（図８ステップＳ３３）。丸め後の商は商レジスタ２０に格納される。
【００６０】
商のモジュロ３生成回路１１は丸め加算回路１３の丸め補正加算結果から生成したモジュロ３及び丸め補正分を考慮したモジュロ３を生成する（図８ステップＳ３４）。比較回路３２は商のモジュロ３生成回路１１で生成されたモジュロ３と商のモジュロ３生成回路３１で生成されたモジュロ３との比較を行う（図８ステップＳ３５）。比較回路３２の比較結果が一致を示す場合には（図８ステップＳ３６）、丸め回路１２や丸め加算回路１３に障害なしと判定され（図８ステップＳ３７）、不一致を示す場合には（図８ステップＳ３６）、丸め回路１２や丸め加算回路１３に障害ありと判定される（図８ステップＳ３８）。
【００６１】
【発明の効果】
以上説明したように本発明によれば、ＩＥＥＥ  Ｐ７５４規格の丸め処理に対応した除算を行う際に丸め処理後の商と丸め処理で発生する商加算指示とを考慮してモジュロ３生成を行うことによって、除算チェックのためのハードウェア量を大幅に減少させることができ、除算器全体のチェックを行うことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例による除算器の構成を示すブロック図である。
【図２】本発明の一実施例で用いる内部フォーマットを示す図である。
【図３】本発明の一実施例におけるＩＥＥＥ倍精度演算時の（Ｉｃａｒｒｙ，ＲＴＯＰ）と商補正モジュロ値との関係を示す図である。
【図４】本発明の一実施例におけるＩＥＥＥ単精度演算時の（Ｉｃａｒｒｙ，ＲＴＯＰ）と商補正モジュロ値との関係を示す図である。
【図５】本発明の一実施例による除算器の動作を示すフローチャートである。
【図６】本発明の他の実施例による除算器の構成を示すブロック図である。
【図７】本発明の他の実施例による除算器の動作を示すフローチャートである。
【図８】本発明の他の実施例による除算器の動作を示すフローチャートである。
【図９】従来例による除算器の構成を示すブロック図である。
【符号の説明】
１  被除数レジスタ
２  除数レジスタ
３  被除数用モジュロ３生成回路
４  除数用モジュロ３生成回路
５  積のモジュロ３生成回路
６  和のモジュロ３生成回路
７，３２  比較回路
１０  商生成部
１１，３１  商のモジュロ３生成回路
１２  丸め回路
１３  丸め加算回路
１４  部分剰余モジュロ３生成回路
２０  商レジスタ
【図１】
0003645830.tif 000006
【図２】
0003645830.tif 000007
【図３】
0003645830.tif 000008
【図４】
0003645830.tif 000009
【図５】
0003645830.tif 000010
【図６】
0003645830.tif 000011
【図７】
0003645830.tif 000012
【図８】
0003645830.tif 000013
【図９】
0003645830.tif 000014