(57)【特許請求の範囲】
【請求項１】
複数の浮動小数点演算器を備えた浮動小数点演算装置であって、
前記浮動小数点演算器が、
オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、
この特殊数判定回路から出力された前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した
ことを特徴とする浮動小数点演算装置。
【請求項２】
前記複数の浮動小数点演算器のオペランドがいずれも空きとなるタイミングでパトロールチェック用信号を送出する命令発行部を備え、
前記特殊数判定回路が、前記パトロールチェック用信号を入力したタイミングで、予め用意された特殊数パタンをセットし、この特殊数パタンに対する特殊数ステータスを出力する
ことを特徴とする請求項１記載の浮動小数点演算装置。
【請求項３】
前記パトロールチェック用信号を入力したタイミングで、予め用意された特殊数パタンを前記特殊数判定回路にセットする特殊数差替回路を有し、
前記特殊数判定回路が、前記特殊数パタンがセットされて、この特殊数パタンに対する前記特殊数ステータスを生成し出力するオペランドステータス生成回路を有した
ことを特徴とする請求項２記載の浮動小数点演算装置。
【請求項４】
前記特殊数差替回路が、
前記パトロールチェック用信号の入力数をカウントする加算器と、
複数種類の特殊数のうちの一つを選択し前記特殊数パタンとして出力するセレクタと、
前記加算器でのカウント数にもとづき、前記セレクタにおける選択処理を制御する制御回路とを有した
ことを特徴とする請求項３記載の浮動小数点演算装置。
【請求項５】
前記加算器が、カウンタ又はシフトレジスタを含む
ことを特徴とする請求項４記載の浮動小数点演算装置。
【請求項６】
浮動小数点演算を実行する浮動小数点演算器であって、
オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、
この特殊数判定回路から出力された前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した
ことを特徴とする浮動小数点演算器。
【請求項７】
特殊数判定回路の故障を検出する特殊数判定回路故障検出方法であって、
一の浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、
前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを有した
ことを特徴とする特殊数判定回路故障検出方法。
【請求項８】
特殊数判定回路の故障を検出する処理を浮動小数点演算装置に実行させるための特殊数判定回路故障検出プログラムであって、
一の浮動小数点演算器にて、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、
前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理と
を前記浮動小数点演算装置に実行させる
ことを特徴とする特殊数判定回路故障検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コプロセッサとしてＣＰＵから利用される浮動小数点演算装置、この浮動小数点演算装置に搭載された浮動小数点演算器、この浮動小数点演算器において実行される特殊数判定回路故障検出方法、及び、この方法を実現するための特殊数判定回路故障検出プログラムに関し、特に、浮動小数点演算器に備えられた特殊数判定回路の故障を検出する浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムに関する。
【背景技術】
【０００２】
浮動小数点演算装置（ＦＰＵ：Floating  Point  number  processing  Unit）は、実数を浮動小数点数で表現する場合に、この浮動小数点演算を専門に行うための処理装置である。
浮動小数点演算については、ＩＥＥＥ−７５４（ＩＥＥＥ二進化浮動小数点数演算標準）という標準規格があり、多くのＣＰＵやＦＰＵに実装されている。
ＩＥＥＥ−７５４は、浮動小数点数の表現形式（＋０，−０，非正規化数を含む）を規定するとともに、特殊な値（無限大，ＮａＮなど）も規定し、浮動小数点演算でのこれらの値の扱い方を規定している。
【０００３】
浮動小数点演算装置でＩＥＥＥ−７５４形式のデータを扱う場合に、０、無限大、非数、デノーマル数といった特殊数が入力となるときには、浮動小数点演算器内にある特殊数判定回路にて特殊数判定を行い、演算結果を特殊数入力に対応したデータパタンに差し替える処理が行われている（例えば、特許文献１参照。）。
【０００４】
ところで、特殊数判定回路が故障していないかどうかを動作中に確認する手法として、一般に、２重化によりチェックするという手法がある。
ここで、特殊数判定回路が２重化された浮動小数点演算装置の構成を、図７に示す。
同図に示すように、浮動小数点演算装置１００において、特殊数判定回路１３０は、二つ（同図においては、１３０−１と１３０−２）備えられている（２重化）。そして、特殊数判定回路１３０のそれぞれから出力された特殊ステータスを比較回路１４０で比較し、一致／不一致を判定する。
【０００５】
２重化された特殊数判定回路１３０のそれぞれは、いずれも同じ構成となっているため、入力が同じであれば出力も同じになる。このため、比較回路１４０では、通常時は、比較結果が一致となり、エラー通知は出力されない。これに対し、いずれかの特殊数判定回路１３０で故障が生じると、比較回路１４０における比較結果が不一致となり、エラー通知が出力される。これにより、特殊数判定回路１３０の故障が検出できる。
【特許文献１】特開昭５９−０７９３５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、図７に示す浮動小数点演算装置においては、浮動小数点演算器に入力されるオペランド毎に特殊数判定回路を用意し、さらに特殊数判定回路が故障していないかどうかを動作中に確認するために同回路を２重化していることから、浮動小数点演算器の数に比例してハードウエア量が増大していた。
【０００７】
本発明は、上記の事情にかんがみなされたものであり、ハードウエア量が増大することなく、特殊数判定回路の故障チェックを可能とする浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムの提供を目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するため、本発明の浮動小数点演算装置は、複数の浮動小数点演算器を備えた浮動小数点演算装置であって、浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、この特殊数判定回路から出力された特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した構成としてある。
【０００９】
また、本発明の浮動小数点演算器は、浮動小数点演算を実行する浮動小数点演算器であって、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、この特殊数判定回路から出力された特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した構成としてある。
【００１０】
また、本発明の特殊数判定回路故障検出方法は、特殊数判定回路の故障を検出する特殊数判定回路故障検出方法であって、一の浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを有した方法としてある。
【００１１】
また、本発明の特殊数判定回路故障検出プログラムは、特殊数判定回路の故障を検出する処理を浮動小数点演算装置に実行させるための特殊数判定回路故障検出プログラムであって、一の浮動小数点演算器にて、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを浮動小数点演算装置に実行させる構成としてある。
【発明の効果】
【００１２】
本発明の浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムによれば、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、この特殊数判定回路から出力された特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有したので、特殊数判定回路を２重化してチェックする手法を取る必要がない。つまり、特殊数判定回路は、一つだけ備えればよいことから、ハードウエア量を削減しつつ、特殊数判定回路の故障を検出できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明に係る浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムの好ましい実施形態について、図面を参照して説明する。
なお、以下の各実施形態における浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法は、プログラムに制御されたコンピュータにより実現することができる。プログラムは、例えば、記録媒体により提供される。記録媒体としては、たとえば、磁気ディスク，光ディスク，半導体メモリ，その他コンピュータで読み取り可能な任意の手段を使用することができる。
また、記録媒体に記録されたプログラムは、記録媒体を直接コンピュータに装着して当該コンピュータに読み込ませることができ、また、通信回線を介してコンピュータに読み込ませるようにしても良い。
【００１４】
［浮動小数点演算装置］
まず、本発明の浮動小数点演算装置の実施形態について、図１を参照して説明する。
同図は、本実施形態の浮動小数点演算装置の構成を示すブロック図である。
同図に示すように、本実施形態の浮動小数点演算装置１は、命令発行部１０と、レジスタファイル２０と、浮動小数点演算器３０（３０ａ，３０ｂ）とを備えている。
【００１５】
命令発行部１０は、レジスタファイル２０及び浮動小数点演算器３０と接続されている。この命令発行部１０は、オペランドの要素が有効であるときに、タイミング有効信号をレジスタファイル２０へ送出する。また、タイミング有効信号及びバイパス制御信号を浮動小数点演算器３０へ送出する。さらに、チェック対象となる対の浮動小数点演算器３０へのオペランドがともに空きとなるタイミングで、パトロールチェック用信号をそれら浮動小数点演算器３０に送出する。
なお、「チェック対象となる対の浮動小数点演算器３０へのオペランドがともに空きとなるタイミング」とは、オペランドの要素が有効でないとき、すなわち、浮動小数点演算器３０ａ及び浮動小数点演算器３０ｂへ送出するタイミング有効信号がともに０である場合をいう。
【００１６】
レジスタファイル（ＲＦ）２０は、命令発行部１０及び浮動小数点演算器３０と接続されている。このレジスタファイル２０は、命令発行部１０からタイミング有効信号を受け取るとともに、オペランドＹ及びオペランドＺを浮動小数点演算器３０に送出し、それら浮動小数点演算器３０より演算結果を受け取って保存する。
【００１７】
浮動小数点演算器３０は、命令発行部１０及びレジスタファイル２０と接続されている。この浮動小数点演算器３０は、レジスタファイル２０からオペランドＹ及びオペランドＺを受け取る。また、命令発行部１０からタイミング有効信号、バイパス制御信号及びパトロールチェック用信号を受け取る。さらに、他方の浮動小数点演算器３０からバイパス出力データ及び特殊数ステータスを受け取る。
また、浮動小数点演算器３０は、タイミング有効信号が有効である場合にオペランドＹ及びオペランドＺの浮動小数点演算を行って演算結果をレジスタファイル２０へ送出する。さらに、バイパス出力データ及び特殊数ステータスを他方の浮動小数点演算器３０へ送出する。そして、パトロールチェック用信号が有効である場合に自演算器内の特殊数ステータスと他方の浮動小数点演算器３０より受け取った特殊数ステータスとを比較し、一致しない場合にエラー通知を行う。
【００１８】
次に、本実施形態の浮動小数点演算装置を構成する浮動小数点演算器の詳細な構成について、図２を参照して説明する。
同図に示す浮動小数点演算器３０は、同種の演算を行う浮動小数点演算器４０を複数実装しており、互いの演算結果とともにＩＥＥＥ浮動小数点標準（ＩＥＥＥ−７４５）形式の特殊数を示す特殊数ステータスファイル２０を介さずにやり取りするバイパス演算機能を有している。
【００１９】
同図に示すように、浮動小数点演算器３０は、演算回路３１と、セレクタ３２（３２ａ，３２ｂ）と、特殊数ステータス比較回路３３と、特殊数判定回路４０と、特殊数差替回路５０ａとを有している。
演算回路３１は、セレクタ３２、特殊数差替回路５０ａ及び他方の浮動小数点演算器３０と接続されている。この演算回路３１は、セレクタ３２から受け取った浮動小数点データを演算し、演算結果を特殊数差替回路５０ａ、セレクタ３２及び他方の浮動小数点演算器３０へ送出する。
【００２０】
セレクタ３２は、演算回路３１、レジスタファイル２０及び他方の浮動小数点演算器３０と接続されている。このセレクタ３２は、命令発行部１０より受け取ったバイパス制御信号にもとづいて、レジスタファイル２０から受け取ったオペランドＹまたはオペランドＺと他方の浮動小数点演算器３０から受け取ったバイパス入力データと演算回路３１から受け取った演算結果のうちの一つを選択し、結果の浮動小数点データを演算回路３１へ送出する。
【００２１】
特殊数ステータス比較回路３３は、特殊数判定回路４０、命令発行部１０及び他方の浮動小数点演算器３０と接続されている。この特殊数ステータス比較回路３３は、命令発行部１０から受け取ったパトロールチェック用信号が有効である場合に、特殊数判定回路４０から受け取った特殊数ステータスと他方の浮動小数点演算器３０から受け取った特殊数ステータスとの比較を行い、一致しない場合に命令発行部１０へエラー通知を行う。
【００２２】
特殊数判定回路４０は、特殊数差替回路５０ａ、特殊数ステータス比較回路３３、命令発行部１０、レジスタファイル２０及び他方の浮動小数点演算器３０と接続されている。この特殊数判定回路４０は、命令発行部１０から受け取ったパトロールチェック用信号が有効である場合に、レジスタファイル２０から受け取ったオペランドＹ及びオペランドＺの代わりに特殊数差替回路５０ａから受け取った特殊数パタンを入力として特殊数ステータスを生成し、この生成した特殊数ステータスを、特殊数差替回路５０ａ、特殊数ステータス比較回路３３及び他方の浮動小数点演算器３０へ送出する。
【００２３】
特殊数差替回路５０ａは、特殊数判定回路４０、演算回路３１、命令発行部１０及びレジスタファイル２０と接続されている。この特殊数差替回路５０ａは、命令発行部１０から受け取ったパトロールチェック用信号が有効である場合に、特殊数パタンを特殊数判定回路４０へ送出する。一方、パトロールチェック用信号が有効でない場合には、特殊数判定回路４０から受け取った特殊数ステータスに対応する特殊数パタンを選択し、演算回路３１から受け取った演算結果（通常数）との選択処理を行い、結果をレジスタファイル２０へ送出する。
【００２４】
次に、特殊数判定回路の詳細な構成について、図２を参照して説明する。
同図に示すように、特殊数判定回路４０は、オペランドステータス生成回路４１（４１ａ，４１ｂ）と、セレクタ４２と、出力ステータス判定回路４３とを有している。
【００２５】
オペランドステータス生成回路４１は、命令発行部１０、レジスタファイル２０、特殊数差替回路５０ａ及びセレクタ４２と接続されている。このオペランドステータス生成回路４１は、命令発行部１０から受け取ったパトロールチェック用信号が有効である場合には、特殊数差替回路５０ａから受け取った特殊数パタンに対する特殊数ステータスを生成し、セレクタ４２へ送出する。一方、パトロールチェック用信号が有効でない場合には、レジスタファイル２０から受け取ったオペランドＹまたはオペランドＺに対する特殊数ステータスを生成し、セレクタ４２へ送出する。
【００２６】
セレクタ４２は、オペランドステータス生成回路４１、出力ステータス判定回路４３、命令発行部１０及び他方の浮動小数点演算器３０と接続されている。このセレクタ４２は、命令発行部１０から受け取ったバイパス制御信号に従って、オペランドステータス生成回路４１から受け取った特殊数ステータスと他方の浮動小数点演算器３０から受け取った特殊数ステータスと出力ステータス判定回路４３から受け取った特殊数ステータスとの選択処理を行い、選択の結果を出力ステータス判定回路４３へ送出する。
【００２７】
出力ステータス判定回路４３は、セレクタ４２、特殊数差替回路５０ａ、特殊数ステータス比較回路３３及び他方の浮動小数点演算器３０と接続されている。この出力ステータス判定回路４３は、２つのセレクタ４２から受け取った特殊数ステータスの組み合わせにもとづいて出力となる特殊数ステータスを判定し、この判定結果である特殊数ステータスを、特殊数差替回路５０ａ、特殊数ステータス比較回路３３、セレクタ４２及び他方の浮動小数点演算器３０へ送出する。
【００２８】
次に、特殊数差替回路の詳細な構成について、図３を参照して説明する。
特殊数差替回路５０ａは、カウンタ５１と、制御回路５２と、セレクタ５３と、セレクタ５４とを有している。
カウンタ（３ｂｉｔカウンタ、加算器）５１は、命令発行部１０及び制御回路５２と接続されている。このカウンタ５１は、命令発行部１０から受け取ったパトロールチェック用信号が有効である場合に＋１カウント処理を行い、結果の３ｂｉｔを制御回路５２に送出する。
【００２９】
制御回路５２は、命令発行部１０、特殊数判定回路４０、カウンタ５１及びセレクタ５４と接続されている。この制御回路５２は、命令発行部１０から受け取ったパトロールチェック用信号が有効である場合には、カウンタ５１から受け取った３ｂｉｔの信号を用いてセレクタ５３の選択処理を行う。一方、パトロールチェック用信号が有効でない場合には、特殊数判定回路４０から受け取った特殊数ステータスを用いてセレクタ５３の選択処理を行う。
【００３０】
セレクタ５３は、制御回路５２、セレクタ５４及び特殊数判定回路４０と接続されている。このセレクタ５３は、制御回路５２から受け取った制御信号にもとづいて５種類の特殊数パタンのうちの一つを選択し、セレクタ５４及び特殊数判定回路４０へ送出する。
セレクタ５４は、セレクタ５３、演算回路３１、特殊数判定回路４０及びレジスタファイル２０と接続されている。このセレクタ５４は、特殊数判定回路４０から受け取った特殊数ステータスを用いて、セレクタ５３から受け取った特殊数パタンと演算回路３１から受け取った演算結果（通常数）のいずれかを選択し、結果をレジスタファイル２０へ送出する。
【００３１】
［特殊数判定回路故障検出方法］
次に、本実施形態の浮動小数点演算装置の動作（特殊数判定回路故障検出方法）について、図１〜図５を参照して説明する。
本実施形態の浮動小数点演算装置１は、図４に示すように、ＩＥＥＥ浮動小数点標準（ＩＥＥＥ−７５４）形式の倍精度データを扱う。ＩＥＥＥ−７５４形式では、図５に示すように、通常数と５種類の特殊数（０、無限大、シグナル型非数、クワイエット型非数、デノーマル数）を定義している。
【００３２】
浮動小数点演算器３０に入力されるオペランドについて通常数であるか特殊数であるかを判別し、特殊数である場合にはその組み合わせに応じて演算回路３１の出力結果を特殊数パタンに差し替える必要がある。
これは、演算回路３１が、通常数の入力を前提として演算を行うため、ＩＥＥＥ−７５４形式における特殊数の入力に対して正しい特殊数の結果を演算動作で算出することができないためである。
特殊数パタンへの差し替えは、例えば何れかのオペランドのデータパタンが図５に示す「ｑＮａＮ」のパタンである場合には、演算結果は「ｑＮａＮ」となるため、演算結果をＩＥＥＥ−７５４形式の「ｑＮａＮ」のデータパタンに差し替える、というように行われる。各特殊数を表すステータスは、図５に示すように５ｂｉｔの信号で表現する。
【００３３】
（オペランドが通常数の場合）
ここで、浮動小数点演算装置の通常の動作について、図１、図２を参照して説明する。
図１に示す浮動小数点演算装置１において、命令発行部１０からレジスタファイル２０及び各浮動小数点演算器３０ａ，３０ｂへ、タイミング有効信号が送出される。これと同時に、命令発行部１０から、対象となる浮動小数点演算器３０へ、バイパス制御信号が発行される。
レジスタファイル２０は、通常数であるオペランドＹ及びオペランドＺを各浮動小数点演算器３０に送出する。
【００３４】
図２に示す浮動小数点演算器３０において、命令発行部１０からタイミング有効信号及びバイパス制御信号を受け取ると、セレクタ３２は、オペランドＹまたはオペランドＺと他方の浮動小数点演算器３０から受け取ったバイパス入力データと演算回路３１から受け取った演算結果のうち、命令発行部１０から受け取ったバイパス制御信号にもとづいてオペランドＹまたはオペランドＺを選択し、選択結果の浮動小数点データを演算回路３１へ送出する。
演算回路３１は、オペランドＹ及びオペランドＺを入力すると、これらの演算を行い、演算結果（通常数）を特殊数差替回路５０ａへ送出するとともに、この演算結果をバイパス出力データとして、他方の浮動小数点演算器３０へ送出する。
【００３５】
オペランドステータス生成回路４１は、オペランドＹ及びオペランドＺに対する特殊数ステータス（通常数を表す“０００００”）を生成し、セレクタ４２へ送出する。
セレクタ４２は、命令発行部１０から受け取ったバイパス制御信号に従って、オペランドステータス生成回路４１から受け取った特殊数ステータスを選択し、出力ステータス判定回路４３へ送出する。
【００３６】
出力ステータス判定回路４３は、セレクタ４２ａ，４２ｂから受け取った特殊数ステータスがともに通常数を表す“０００００”であるため、出力ステータスも通常数を表す“０００００”を特殊数差替回路５０ａ及び他方の浮動小数点演算器３０へ出力する。
特殊数差替回路５０ａは、出力ステータス判定回路４３から受け取った特殊数ステータスが通常数を表す“０００００”であるため、演算回路３１より受け取った演算結果（通常数）を選択し、演算結果出力としてレジスタファイル２０へ送出する。
レジスタファイル２０は、浮動小数点演算器３０より受け取った演算結果を保存する。
【００３７】
以上が、レジスタファイル２０からオペランドＹ及びオペランドＺを入力して浮動小数点演算器３０にて通常の演算を行う場合の動作であるが、浮動小数点演算器３０は、オペランドＹ及びオペランドＺだけでなく、他方の浮動小数点演算器３０からの演算結果出力をバイパス入力データとして、レジスタファイル２０を介さずに直接入力して演算することを可能とする。
その際には、命令発行部１０より発行されるバイパス制御信号によって、セレクタ３２で他方の浮動小数点演算器３０からのバイパス入力データを選択し、セレクタ４２にて他方の浮動小数点演算器からの特殊数ステータスを選択することで、レジスタファイル２０を介さないバイパス演算を可能とする。
【００３８】
さらに、セレクタ３２及びセレクタ４２は、自演算器３０の結果も入力としているため、命令発行部１０より発行されるバイパス制御信号によって、セレクタ３２で自演算器３０の演算回路３１の出力を選択し、セレクタ４２にて自演算器３０の出力ステータス判定回路４３からの特殊数ステータスを選択することで、自演算器３０の結果を直接利用するバイパス演算をも可能とする。
【００３９】
（オペランドが特殊数の場合）
次に、特殊数を入力として演算結果を特殊数に差し替える動作について、図１、図２を参照して説明する。
ここでは、例として、オペランドＹがｑＮａＮ、オペランドＺが通常数の場合について説明する。なお、この場合の演算結果は、ｑＮａＮとなる。
【００４０】
図１に示す浮動小数点演算装置１において、命令発行部１０からレジスタファイル２０及び各浮動小数点演算器３０ａ，３０ｂへ、タイミング有効信号が送出される。これと同時に、命令発行部１０から、対象となる浮動小数点演算器３０へ、バイパス制御信号が発行される。
レジスタファイル２０は、特殊数（例としてｑＮａＮ）であるオペランドＹ及び通常数であるオペランドＺを各浮動小数点演算器３０に送出する。
【００４１】
図２に示す浮動小数点演算器３０において、命令発行部１０からタイミング有効信号及びバイパス制御信号を受け取ると、オペランドステータス生成回路４１は、オペランドＹに対する特殊数ステータス（ｑＮａＮを表す“０１０００”）及びオペランドＺに対する特殊数ステータス（通常数を表す“０００００”）を生成し、セレクタ４２へ送出する。
セレクタ４２は、命令発行部１０から受け取ったバイパス制御信号に従って、オペランドステータス生成回路４１より受け取った特殊数ステータスを選択し、出力ステータス判定回路４３へ送出する。
【００４２】
出力ステータス判定回路４３は、セレクタ４２ａ，４２ｂから受け取った特殊数ステータスがｑＮａＮを表す“０１０００”と、通常数を表す“０００００”であるため、ｑＮａＮを表す“０１０００”を出力ステータスとして、特殊数差替回路５０ａ及び他方の浮動小数点演算器３０へ出力する。
特殊数差替回路５０ａは、出力ステータス判定回路４３から受け取った特殊数ステータスがｑＮａＮを表す“０１０００”であるため、セレクタ５３にてｑＮａＮパタンを選択し、セレクタ５４にてセレクタ５３の出力であるｑＮａＮパタンを選択し演算結果としてレジスタファイル２０へ送出する。
レジスタファイル２０は、浮動小数点演算器３０から受け取った演算結果を保存する。
【００４３】
（特殊数ステータスのチェック動作）
次に、特殊数ステータスのチェック動作について、図１、図２を参照して説明する。
図１に示す浮動小数点演算装置１において、各浮動小数点演算器３０への入力オペランドがともに空きとなるタイミングで、パトロールチェック用信号が命令発行部１０から各浮動小数点演算器３０へ発行される。
パトロールチェック用信号は、命令発行部１０がオペランドの要素毎に各浮動小数点演算器３０に送出するタイミング有効信号（有効時１）のＮＯＲ論理で実現できる（ともに０のときに１となる）。
【００４４】
図２に示す浮動小数点演算器３０は、パトロールチェック用信号を受け取ると、オペランドステータス生成回路４１に特殊数パタンをセットする。
特殊数パタンは、図６に示す特殊数差替回路５０ａにて生成される。
特殊数差替回路５０ａの内部では、パトロールチェック用信号を受けるたびに、＋１動作を行うカウンタ５１の出力にて５種の特殊数パタンのいずれかをセレクタ５３にて選択し、選択した特殊数パタンをオペランドステータス生成回路４１へ送出する。
【００４５】
オペランドステータス生成回路４１は、入力された特殊数パタンに対して該当する特殊数ステータスを生成してセレクタ４２へ送出する。
セレクタ４２は、オペランドステータス生成回路４１より受け取った特殊数ステータスを選択し、出力ステータス判定回路４３へ送出する。
出力ステータス判定回路４３は、セレクタ４２より受け取った特殊数ステータスの組み合わせから出力ステータスを判定し、判定結果の特殊数ステータスを特殊数ステータス比較回路３３と他方の浮動小数点演算器３０へ送出する。
【００４６】
特殊数ステータス比較回路３３は、出力ステータス判定回路４３から受け取った自演算器３０の特殊数ステータスと他方の浮動小数点演算器３０から受け取った特殊数ステータスとを比較し、同一かどうかチェックする。
特殊数ステータスは、各種別毎に１ｂｉｔなので、特殊数の種別分（５種＋通常数）のＸＯＲ回路６ヶのみでチェックを実現できる。
各浮動小数点演算器３０では、それぞれ同じ特殊数パタンに対する特殊数ステータスを出力しているはずなので、比較した結果が一致しなかった場合は、特殊数判定回路４０の故障とみなしてエラー通知を命令発行部１０に送出する。
【００４７】
以上説明したように、本実施形態の浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムによれば、チェック対象となる対の浮動小数点演算器のオペランドの空きのタイミングで命令発行部からパトロールチェック用信号を受け取り、特殊数差替回路にて予め用意してある特殊数パタンをパトロールタイミングで特殊数判定回路にセットし、特殊数判定の処理を行い、バイパス演算用パスを用いて自演算器へのフィードバックと他方の演算器からの特殊数ステータスフラグとを比較ので、特殊数判定回路を２重化してチェックする手法を取る必要がない。つまり、特殊数判定回路は、一つだけ備えればよいことから、ハードウエア量を削減しつつ、特殊数判定回路の故障を検出できる。
【００４８】
以上、本発明の浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムの好ましい実施形態について説明したが、本発明に係る浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムは上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
【００４９】
例えば、上述した実施形態では、特殊数差替回路の加算器として３ｂｉｔカウンタを用いる構成としたが、これに限るものではなく、例えば、図６に示すように、シフトレジスタ５５を用いることができる。
シフトレジスタ５５は、予め何れか一つのレジスタに“１”を、その他のレジスタに“０”をセットしておき、命令発行部１０から受け取ったパトロールチェック用信号をトリガとしてシフト動作を行う。
【００５０】
シフトレジスタ５５の出力である５ｂｉｔの信号を用いてセレクタ５３の特殊数パタンの選択処理を行うことで、パトロールチェック用信号を受け取るたびに異なる特殊数パタンを選択して特殊数判定回路４０へ送出することができる。
このように、パトロールチェック用信号を受け取るたびにセレクタの特殊数パタン選択を切り替えることのできる回路であれば、本発明の実施形態に記載したカウンタの代用となりえる。
【産業上の利用可能性】
【００５１】
本発明は、特殊数判定回路の故障検出に関する発明であるため、特殊数判定回路を備えた装置や機器に利用可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態における浮動小数点演算装置の構成を示すブロック図である。
【図２】本発明の実施形態における浮動小数点演算器の構成を示すブロック図である。
【図３】特殊数差替回路の構成を示すブロック図である。
【図４】ＩＥＥＥ浮動小数点倍精度データ形式を示す図である。
【図５】ＩＥＥＥ浮動小数点データの特殊数ステータスを示す図表である。
【図６】特殊数差替回路の他の構成を示すブロック図である。
【図７】関連する浮動小数点演算器の構成を示すブロック図である。
【符号の説明】
【００５３】
１  浮動小数点演算装置
１０  命令発行部
２０  レジスタファイル
３０ａ、３０ｂ  浮動小数点演算器
３３  特殊数ステータス比較回路
４０  特殊数判定回路
４１ａ、４１ｂ  オペランドステータス生成回路
４２ａ，４２ｂ  セレクタ
４３  出力ステータス判定回路
５０ａ、５０ｂ  特殊数差替回路
５１  ３ｂｉｔかウンタ
５２  制御回路
５３  セレクタ
５５  シフトレジスタ
【図１】
0004729770.tif 000002
【図２】
0004729770.tif 000003
【図３】
0004729770.tif 000004
【図４】
0004729770.tif 000005
【図５】
0004729770.tif 000006
【図６】
0004729770.tif 000007
【図７】
0004729770.tif 000008