JP4729770B2 - 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム - Google Patents

浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム Download PDF

Info

Publication number
JP4729770B2
JP4729770B2 JP2008024314A JP2008024314A JP4729770B2 JP 4729770 B2 JP4729770 B2 JP 4729770B2 JP 2008024314 A JP2008024314 A JP 2008024314A JP 2008024314 A JP2008024314 A JP 2008024314A JP 4729770 B2 JP4729770 B2 JP 4729770B2
Authority
JP
Japan
Prior art keywords
special number
point arithmetic
arithmetic unit
floating point
status
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008024314A
Other languages
English (en)
Other versions
JP2009187133A (ja
Inventor
孝士 長田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008024314A priority Critical patent/JP4729770B2/ja
Publication of JP2009187133A publication Critical patent/JP2009187133A/ja
Application granted granted Critical
Publication of JP4729770B2 publication Critical patent/JP4729770B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

本発明は、コプロセッサとしてCPUから利用される浮動小数点演算装置、この浮動小数点演算装置に搭載された浮動小数点演算器、この浮動小数点演算器において実行される特殊数判定回路故障検出方法、及び、この方法を実現するための特殊数判定回路故障検出プログラムに関し、特に、浮動小数点演算器に備えられた特殊数判定回路の故障を検出する浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムに関する。
浮動小数点演算装置(FPU:Floating Point number processing Unit)は、実数を浮動小数点数で表現する場合に、この浮動小数点演算を専門に行うための処理装置である。
浮動小数点演算については、IEEE−754(IEEE二進化浮動小数点数演算標準)という標準規格があり、多くのCPUやFPUに実装されている。
IEEE−754は、浮動小数点数の表現形式(+0,−0,非正規化数を含む)を規定するとともに、特殊な値(無限大,NaNなど)も規定し、浮動小数点演算でのこれらの値の扱い方を規定している。
浮動小数点演算装置でIEEE−754形式のデータを扱う場合に、0、無限大、非数、デノーマル数といった特殊数が入力となるときには、浮動小数点演算器内にある特殊数判定回路にて特殊数判定を行い、演算結果を特殊数入力に対応したデータパタンに差し替える処理が行われている(例えば、特許文献1参照。)。
ところで、特殊数判定回路が故障していないかどうかを動作中に確認する手法として、一般に、2重化によりチェックするという手法がある。
ここで、特殊数判定回路が2重化された浮動小数点演算装置の構成を、図7に示す。
同図に示すように、浮動小数点演算装置100において、特殊数判定回路130は、二つ(同図においては、130−1と130−2)備えられている(2重化)。そして、特殊数判定回路130のそれぞれから出力された特殊ステータスを比較回路140で比較し、一致/不一致を判定する。
2重化された特殊数判定回路130のそれぞれは、いずれも同じ構成となっているため、入力が同じであれば出力も同じになる。このため、比較回路140では、通常時は、比較結果が一致となり、エラー通知は出力されない。これに対し、いずれかの特殊数判定回路130で故障が生じると、比較回路140における比較結果が不一致となり、エラー通知が出力される。これにより、特殊数判定回路130の故障が検出できる。
特開昭59−079350号公報
しかしながら、図7に示す浮動小数点演算装置においては、浮動小数点演算器に入力されるオペランド毎に特殊数判定回路を用意し、さらに特殊数判定回路が故障していないかどうかを動作中に確認するために同回路を2重化していることから、浮動小数点演算器の数に比例してハードウエア量が増大していた。
本発明は、上記の事情にかんがみなされたものであり、ハードウエア量が増大することなく、特殊数判定回路の故障チェックを可能とする浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムの提供を目的とする。
この目的を達成するため、本発明の浮動小数点演算装置は、複数の浮動小数点演算器を備えた浮動小数点演算装置であって、浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、この特殊数判定回路から出力された特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した構成としてある。
また、本発明の浮動小数点演算器は、浮動小数点演算を実行する浮動小数点演算器であって、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、この特殊数判定回路から出力された特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した構成としてある。
また、本発明の特殊数判定回路故障検出方法は、特殊数判定回路の故障を検出する特殊数判定回路故障検出方法であって、一の浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを有した方法としてある。
また、本発明の特殊数判定回路故障検出プログラムは、特殊数判定回路の故障を検出する処理を浮動小数点演算装置に実行させるための特殊数判定回路故障検出プログラムであって、一の浮動小数点演算器にて、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを浮動小数点演算装置に実行させる構成としてある。
本発明の浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムによれば、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、この特殊数判定回路から出力された特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有したので、特殊数判定回路を2重化してチェックする手法を取る必要がない。つまり、特殊数判定回路は、一つだけ備えればよいことから、ハードウエア量を削減しつつ、特殊数判定回路の故障を検出できる。
以下、本発明に係る浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムの好ましい実施形態について、図面を参照して説明する。
なお、以下の各実施形態における浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法は、プログラムに制御されたコンピュータにより実現することができる。プログラムは、例えば、記録媒体により提供される。記録媒体としては、たとえば、磁気ディスク,光ディスク,半導体メモリ,その他コンピュータで読み取り可能な任意の手段を使用することができる。
また、記録媒体に記録されたプログラムは、記録媒体を直接コンピュータに装着して当該コンピュータに読み込ませることができ、また、通信回線を介してコンピュータに読み込ませるようにしても良い。
[浮動小数点演算装置]
まず、本発明の浮動小数点演算装置の実施形態について、図1を参照して説明する。
同図は、本実施形態の浮動小数点演算装置の構成を示すブロック図である。
同図に示すように、本実施形態の浮動小数点演算装置1は、命令発行部10と、レジスタファイル20と、浮動小数点演算器30(30a,30b)とを備えている。
命令発行部10は、レジスタファイル20及び浮動小数点演算器30と接続されている。この命令発行部10は、オペランドの要素が有効であるときに、タイミング有効信号をレジスタファイル20へ送出する。また、タイミング有効信号及びバイパス制御信号を浮動小数点演算器30へ送出する。さらに、チェック対象となる対の浮動小数点演算器30へのオペランドがともに空きとなるタイミングで、パトロールチェック用信号をそれら浮動小数点演算器30に送出する。
なお、「チェック対象となる対の浮動小数点演算器30へのオペランドがともに空きとなるタイミング」とは、オペランドの要素が有効でないとき、すなわち、浮動小数点演算器30a及び浮動小数点演算器30bへ送出するタイミング有効信号がともに0である場合をいう。
レジスタファイル(RF)20は、命令発行部10及び浮動小数点演算器30と接続されている。このレジスタファイル20は、命令発行部10からタイミング有効信号を受け取るとともに、オペランドY及びオペランドZを浮動小数点演算器30に送出し、それら浮動小数点演算器30より演算結果を受け取って保存する。
浮動小数点演算器30は、命令発行部10及びレジスタファイル20と接続されている。この浮動小数点演算器30は、レジスタファイル20からオペランドY及びオペランドZを受け取る。また、命令発行部10からタイミング有効信号、バイパス制御信号及びパトロールチェック用信号を受け取る。さらに、他方の浮動小数点演算器30からバイパス出力データ及び特殊数ステータスを受け取る。
また、浮動小数点演算器30は、タイミング有効信号が有効である場合にオペランドY及びオペランドZの浮動小数点演算を行って演算結果をレジスタファイル20へ送出する。さらに、バイパス出力データ及び特殊数ステータスを他方の浮動小数点演算器30へ送出する。そして、パトロールチェック用信号が有効である場合に自演算器内の特殊数ステータスと他方の浮動小数点演算器30より受け取った特殊数ステータスとを比較し、一致しない場合にエラー通知を行う。
次に、本実施形態の浮動小数点演算装置を構成する浮動小数点演算器の詳細な構成について、図2を参照して説明する。
同図に示す浮動小数点演算器30は、同種の演算を行う浮動小数点演算器40を複数実装しており、互いの演算結果とともにIEEE浮動小数点標準(IEEE−745)形式の特殊数を示す特殊数ステータスファイル20を介さずにやり取りするバイパス演算機能を有している。
同図に示すように、浮動小数点演算器30は、演算回路31と、セレクタ32(32a,32b)と、特殊数ステータス比較回路33と、特殊数判定回路40と、特殊数差替回路50aとを有している。
演算回路31は、セレクタ32、特殊数差替回路50a及び他方の浮動小数点演算器30と接続されている。この演算回路31は、セレクタ32から受け取った浮動小数点データを演算し、演算結果を特殊数差替回路50a、セレクタ32及び他方の浮動小数点演算器30へ送出する。
セレクタ32は、演算回路31、レジスタファイル20及び他方の浮動小数点演算器30と接続されている。このセレクタ32は、命令発行部10より受け取ったバイパス制御信号にもとづいて、レジスタファイル20から受け取ったオペランドYまたはオペランドZと他方の浮動小数点演算器30から受け取ったバイパス入力データと演算回路31から受け取った演算結果のうちの一つを選択し、結果の浮動小数点データを演算回路31へ送出する。
特殊数ステータス比較回路33は、特殊数判定回路40、命令発行部10及び他方の浮動小数点演算器30と接続されている。この特殊数ステータス比較回路33は、命令発行部10から受け取ったパトロールチェック用信号が有効である場合に、特殊数判定回路40から受け取った特殊数ステータスと他方の浮動小数点演算器30から受け取った特殊数ステータスとの比較を行い、一致しない場合に命令発行部10へエラー通知を行う。
特殊数判定回路40は、特殊数差替回路50a、特殊数ステータス比較回路33、命令発行部10、レジスタファイル20及び他方の浮動小数点演算器30と接続されている。この特殊数判定回路40は、命令発行部10から受け取ったパトロールチェック用信号が有効である場合に、レジスタファイル20から受け取ったオペランドY及びオペランドZの代わりに特殊数差替回路50aから受け取った特殊数パタンを入力として特殊数ステータスを生成し、この生成した特殊数ステータスを、特殊数差替回路50a、特殊数ステータス比較回路33及び他方の浮動小数点演算器30へ送出する。
特殊数差替回路50aは、特殊数判定回路40、演算回路31、命令発行部10及びレジスタファイル20と接続されている。この特殊数差替回路50aは、命令発行部10から受け取ったパトロールチェック用信号が有効である場合に、特殊数パタンを特殊数判定回路40へ送出する。一方、パトロールチェック用信号が有効でない場合には、特殊数判定回路40から受け取った特殊数ステータスに対応する特殊数パタンを選択し、演算回路31から受け取った演算結果(通常数)との選択処理を行い、結果をレジスタファイル20へ送出する。
次に、特殊数判定回路の詳細な構成について、図2を参照して説明する。
同図に示すように、特殊数判定回路40は、オペランドステータス生成回路41(41a,41b)と、セレクタ42と、出力ステータス判定回路43とを有している。
オペランドステータス生成回路41は、命令発行部10、レジスタファイル20、特殊数差替回路50a及びセレクタ42と接続されている。このオペランドステータス生成回路41は、命令発行部10から受け取ったパトロールチェック用信号が有効である場合には、特殊数差替回路50aから受け取った特殊数パタンに対する特殊数ステータスを生成し、セレクタ42へ送出する。一方、パトロールチェック用信号が有効でない場合には、レジスタファイル20から受け取ったオペランドYまたはオペランドZに対する特殊数ステータスを生成し、セレクタ42へ送出する。
セレクタ42は、オペランドステータス生成回路41、出力ステータス判定回路43、命令発行部10及び他方の浮動小数点演算器30と接続されている。このセレクタ42は、命令発行部10から受け取ったバイパス制御信号に従って、オペランドステータス生成回路41から受け取った特殊数ステータスと他方の浮動小数点演算器30から受け取った特殊数ステータスと出力ステータス判定回路43から受け取った特殊数ステータスとの選択処理を行い、選択の結果を出力ステータス判定回路43へ送出する。
出力ステータス判定回路43は、セレクタ42、特殊数差替回路50a、特殊数ステータス比較回路33及び他方の浮動小数点演算器30と接続されている。この出力ステータス判定回路43は、2つのセレクタ42から受け取った特殊数ステータスの組み合わせにもとづいて出力となる特殊数ステータスを判定し、この判定結果である特殊数ステータスを、特殊数差替回路50a、特殊数ステータス比較回路33、セレクタ42及び他方の浮動小数点演算器30へ送出する。
次に、特殊数差替回路の詳細な構成について、図3を参照して説明する。
特殊数差替回路50aは、カウンタ51と、制御回路52と、セレクタ53と、セレクタ54とを有している。
カウンタ(3bitカウンタ、加算器)51は、命令発行部10及び制御回路52と接続されている。このカウンタ51は、命令発行部10から受け取ったパトロールチェック用信号が有効である場合に+1カウント処理を行い、結果の3bitを制御回路52に送出する。
制御回路52は、命令発行部10、特殊数判定回路40、カウンタ51及びセレクタ54と接続されている。この制御回路52は、命令発行部10から受け取ったパトロールチェック用信号が有効である場合には、カウンタ51から受け取った3bitの信号を用いてセレクタ53の選択処理を行う。一方、パトロールチェック用信号が有効でない場合には、特殊数判定回路40から受け取った特殊数ステータスを用いてセレクタ53の選択処理を行う。
セレクタ53は、制御回路52、セレクタ54及び特殊数判定回路40と接続されている。このセレクタ53は、制御回路52から受け取った制御信号にもとづいて5種類の特殊数パタンのうちの一つを選択し、セレクタ54及び特殊数判定回路40へ送出する。
セレクタ54は、セレクタ53、演算回路31、特殊数判定回路40及びレジスタファイル20と接続されている。このセレクタ54は、特殊数判定回路40から受け取った特殊数ステータスを用いて、セレクタ53から受け取った特殊数パタンと演算回路31から受け取った演算結果(通常数)のいずれかを選択し、結果をレジスタファイル20へ送出する。
[特殊数判定回路故障検出方法]
次に、本実施形態の浮動小数点演算装置の動作(特殊数判定回路故障検出方法)について、図1〜図5を参照して説明する。
本実施形態の浮動小数点演算装置1は、図4に示すように、IEEE浮動小数点標準(IEEE−754)形式の倍精度データを扱う。IEEE−754形式では、図5に示すように、通常数と5種類の特殊数(0、無限大、シグナル型非数、クワイエット型非数、デノーマル数)を定義している。
浮動小数点演算器30に入力されるオペランドについて通常数であるか特殊数であるかを判別し、特殊数である場合にはその組み合わせに応じて演算回路31の出力結果を特殊数パタンに差し替える必要がある。
これは、演算回路31が、通常数の入力を前提として演算を行うため、IEEE−754形式における特殊数の入力に対して正しい特殊数の結果を演算動作で算出することができないためである。
特殊数パタンへの差し替えは、例えば何れかのオペランドのデータパタンが図5に示す「qNaN」のパタンである場合には、演算結果は「qNaN」となるため、演算結果をIEEE−754形式の「qNaN」のデータパタンに差し替える、というように行われる。各特殊数を表すステータスは、図5に示すように5bitの信号で表現する。
(オペランドが通常数の場合)
ここで、浮動小数点演算装置の通常の動作について、図1、図2を参照して説明する。
図1に示す浮動小数点演算装置1において、命令発行部10からレジスタファイル20及び各浮動小数点演算器30a,30bへ、タイミング有効信号が送出される。これと同時に、命令発行部10から、対象となる浮動小数点演算器30へ、バイパス制御信号が発行される。
レジスタファイル20は、通常数であるオペランドY及びオペランドZを各浮動小数点演算器30に送出する。
図2に示す浮動小数点演算器30において、命令発行部10からタイミング有効信号及びバイパス制御信号を受け取ると、セレクタ32は、オペランドYまたはオペランドZと他方の浮動小数点演算器30から受け取ったバイパス入力データと演算回路31から受け取った演算結果のうち、命令発行部10から受け取ったバイパス制御信号にもとづいてオペランドYまたはオペランドZを選択し、選択結果の浮動小数点データを演算回路31へ送出する。
演算回路31は、オペランドY及びオペランドZを入力すると、これらの演算を行い、演算結果(通常数)を特殊数差替回路50aへ送出するとともに、この演算結果をバイパス出力データとして、他方の浮動小数点演算器30へ送出する。
オペランドステータス生成回路41は、オペランドY及びオペランドZに対する特殊数ステータス(通常数を表す“00000”)を生成し、セレクタ42へ送出する。
セレクタ42は、命令発行部10から受け取ったバイパス制御信号に従って、オペランドステータス生成回路41から受け取った特殊数ステータスを選択し、出力ステータス判定回路43へ送出する。
出力ステータス判定回路43は、セレクタ42a,42bから受け取った特殊数ステータスがともに通常数を表す“00000”であるため、出力ステータスも通常数を表す“00000”を特殊数差替回路50a及び他方の浮動小数点演算器30へ出力する。
特殊数差替回路50aは、出力ステータス判定回路43から受け取った特殊数ステータスが通常数を表す“00000”であるため、演算回路31より受け取った演算結果(通常数)を選択し、演算結果出力としてレジスタファイル20へ送出する。
レジスタファイル20は、浮動小数点演算器30より受け取った演算結果を保存する。
以上が、レジスタファイル20からオペランドY及びオペランドZを入力して浮動小数点演算器30にて通常の演算を行う場合の動作であるが、浮動小数点演算器30は、オペランドY及びオペランドZだけでなく、他方の浮動小数点演算器30からの演算結果出力をバイパス入力データとして、レジスタファイル20を介さずに直接入力して演算することを可能とする。
その際には、命令発行部10より発行されるバイパス制御信号によって、セレクタ32で他方の浮動小数点演算器30からのバイパス入力データを選択し、セレクタ42にて他方の浮動小数点演算器からの特殊数ステータスを選択することで、レジスタファイル20を介さないバイパス演算を可能とする。
さらに、セレクタ32及びセレクタ42は、自演算器30の結果も入力としているため、命令発行部10より発行されるバイパス制御信号によって、セレクタ32で自演算器30の演算回路31の出力を選択し、セレクタ42にて自演算器30の出力ステータス判定回路43からの特殊数ステータスを選択することで、自演算器30の結果を直接利用するバイパス演算をも可能とする。
(オペランドが特殊数の場合)
次に、特殊数を入力として演算結果を特殊数に差し替える動作について、図1、図2を参照して説明する。
ここでは、例として、オペランドYがqNaN、オペランドZが通常数の場合について説明する。なお、この場合の演算結果は、qNaNとなる。
図1に示す浮動小数点演算装置1において、命令発行部10からレジスタファイル20及び各浮動小数点演算器30a,30bへ、タイミング有効信号が送出される。これと同時に、命令発行部10から、対象となる浮動小数点演算器30へ、バイパス制御信号が発行される。
レジスタファイル20は、特殊数(例としてqNaN)であるオペランドY及び通常数であるオペランドZを各浮動小数点演算器30に送出する。
図2に示す浮動小数点演算器30において、命令発行部10からタイミング有効信号及びバイパス制御信号を受け取ると、オペランドステータス生成回路41は、オペランドYに対する特殊数ステータス(qNaNを表す“01000”)及びオペランドZに対する特殊数ステータス(通常数を表す“00000”)を生成し、セレクタ42へ送出する。
セレクタ42は、命令発行部10から受け取ったバイパス制御信号に従って、オペランドステータス生成回路41より受け取った特殊数ステータスを選択し、出力ステータス判定回路43へ送出する。
出力ステータス判定回路43は、セレクタ42a,42bから受け取った特殊数ステータスがqNaNを表す“01000”と、通常数を表す“00000”であるため、qNaNを表す“01000”を出力ステータスとして、特殊数差替回路50a及び他方の浮動小数点演算器30へ出力する。
特殊数差替回路50aは、出力ステータス判定回路43から受け取った特殊数ステータスがqNaNを表す“01000”であるため、セレクタ53にてqNaNパタンを選択し、セレクタ54にてセレクタ53の出力であるqNaNパタンを選択し演算結果としてレジスタファイル20へ送出する。
レジスタファイル20は、浮動小数点演算器30から受け取った演算結果を保存する。
(特殊数ステータスのチェック動作)
次に、特殊数ステータスのチェック動作について、図1、図2を参照して説明する。
図1に示す浮動小数点演算装置1において、各浮動小数点演算器30への入力オペランドがともに空きとなるタイミングで、パトロールチェック用信号が命令発行部10から各浮動小数点演算器30へ発行される。
パトロールチェック用信号は、命令発行部10がオペランドの要素毎に各浮動小数点演算器30に送出するタイミング有効信号(有効時1)のNOR論理で実現できる(ともに0のときに1となる)。
図2に示す浮動小数点演算器30は、パトロールチェック用信号を受け取ると、オペランドステータス生成回路41に特殊数パタンをセットする。
特殊数パタンは、図6に示す特殊数差替回路50aにて生成される。
特殊数差替回路50aの内部では、パトロールチェック用信号を受けるたびに、+1動作を行うカウンタ51の出力にて5種の特殊数パタンのいずれかをセレクタ53にて選択し、選択した特殊数パタンをオペランドステータス生成回路41へ送出する。
オペランドステータス生成回路41は、入力された特殊数パタンに対して該当する特殊数ステータスを生成してセレクタ42へ送出する。
セレクタ42は、オペランドステータス生成回路41より受け取った特殊数ステータスを選択し、出力ステータス判定回路43へ送出する。
出力ステータス判定回路43は、セレクタ42より受け取った特殊数ステータスの組み合わせから出力ステータスを判定し、判定結果の特殊数ステータスを特殊数ステータス比較回路33と他方の浮動小数点演算器30へ送出する。
特殊数ステータス比較回路33は、出力ステータス判定回路43から受け取った自演算器30の特殊数ステータスと他方の浮動小数点演算器30から受け取った特殊数ステータスとを比較し、同一かどうかチェックする。
特殊数ステータスは、各種別毎に1bitなので、特殊数の種別分(5種+通常数)のXOR回路6ヶのみでチェックを実現できる。
各浮動小数点演算器30では、それぞれ同じ特殊数パタンに対する特殊数ステータスを出力しているはずなので、比較した結果が一致しなかった場合は、特殊数判定回路40の故障とみなしてエラー通知を命令発行部10に送出する。
以上説明したように、本実施形態の浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムによれば、チェック対象となる対の浮動小数点演算器のオペランドの空きのタイミングで命令発行部からパトロールチェック用信号を受け取り、特殊数差替回路にて予め用意してある特殊数パタンをパトロールタイミングで特殊数判定回路にセットし、特殊数判定の処理を行い、バイパス演算用パスを用いて自演算器へのフィードバックと他方の演算器からの特殊数ステータスフラグとを比較ので、特殊数判定回路を2重化してチェックする手法を取る必要がない。つまり、特殊数判定回路は、一つだけ備えればよいことから、ハードウエア量を削減しつつ、特殊数判定回路の故障を検出できる。
以上、本発明の浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムの好ましい実施形態について説明したが、本発明に係る浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及び特殊数判定回路故障検出プログラムは上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、特殊数差替回路の加算器として3bitカウンタを用いる構成としたが、これに限るものではなく、例えば、図6に示すように、シフトレジスタ55を用いることができる。
シフトレジスタ55は、予め何れか一つのレジスタに“1”を、その他のレジスタに“0”をセットしておき、命令発行部10から受け取ったパトロールチェック用信号をトリガとしてシフト動作を行う。
シフトレジスタ55の出力である5bitの信号を用いてセレクタ53の特殊数パタンの選択処理を行うことで、パトロールチェック用信号を受け取るたびに異なる特殊数パタンを選択して特殊数判定回路40へ送出することができる。
このように、パトロールチェック用信号を受け取るたびにセレクタの特殊数パタン選択を切り替えることのできる回路であれば、本発明の実施形態に記載したカウンタの代用となりえる。
本発明は、特殊数判定回路の故障検出に関する発明であるため、特殊数判定回路を備えた装置や機器に利用可能である。
本発明の実施形態における浮動小数点演算装置の構成を示すブロック図である。 本発明の実施形態における浮動小数点演算器の構成を示すブロック図である。 特殊数差替回路の構成を示すブロック図である。 IEEE浮動小数点倍精度データ形式を示す図である。 IEEE浮動小数点データの特殊数ステータスを示す図表である。 特殊数差替回路の他の構成を示すブロック図である。 関連する浮動小数点演算器の構成を示すブロック図である。
符号の説明
1 浮動小数点演算装置
10 命令発行部
20 レジスタファイル
30a、30b 浮動小数点演算器
33 特殊数ステータス比較回路
40 特殊数判定回路
41a、41b オペランドステータス生成回路
42a,42b セレクタ
43 出力ステータス判定回路
50a、50b 特殊数差替回路
51 3bitかウンタ
52 制御回路
53 セレクタ
55 シフトレジスタ

Claims (8)

  1. 複数の浮動小数点演算器を備えた浮動小数点演算装置であって、
    前記浮動小数点演算器が、
    オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、
    この特殊数判定回路から出力された前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した
    ことを特徴とする浮動小数点演算装置。
  2. 前記複数の浮動小数点演算器のオペランドがいずれも空きとなるタイミングでパトロールチェック用信号を送出する命令発行部を備え、
    前記特殊数判定回路が、前記パトロールチェック用信号を入力したタイミングで、予め用意された特殊数パタンをセットし、この特殊数パタンに対する特殊数ステータスを出力する
    ことを特徴とする請求項1記載の浮動小数点演算装置。
  3. 前記パトロールチェック用信号を入力したタイミングで、予め用意された特殊数パタンを前記特殊数判定回路にセットする特殊数差替回路を有し、
    前記特殊数判定回路が、前記特殊数パタンがセットされて、この特殊数パタンに対する前記特殊数ステータスを生成し出力するオペランドステータス生成回路を有した
    ことを特徴とする請求項2記載の浮動小数点演算装置。
  4. 前記特殊数差替回路が、
    前記パトロールチェック用信号の入力数をカウントする加算器と、
    複数種類の特殊数のうちの一つを選択し前記特殊数パタンとして出力するセレクタと、
    前記加算器でのカウント数にもとづき、前記セレクタにおける選択処理を制御する制御回路とを有した
    ことを特徴とする請求項3記載の浮動小数点演算装置。
  5. 前記加算器が、カウンタ又はシフトレジスタを含む
    ことを特徴とする請求項4記載の浮動小数点演算装置。
  6. 浮動小数点演算を実行する浮動小数点演算器であって、
    オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、
    この特殊数判定回路から出力された前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した
    ことを特徴とする浮動小数点演算器。
  7. 特殊数判定回路の故障を検出する特殊数判定回路故障検出方法であって、
    一の浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、
    前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを有した
    ことを特徴とする特殊数判定回路故障検出方法。
  8. 特殊数判定回路の故障を検出する処理を浮動小数点演算装置に実行させるための特殊数判定回路故障検出プログラムであって、
    一の浮動小数点演算器にて、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、
    前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理と
    を前記浮動小数点演算装置に実行させる
    ことを特徴とする特殊数判定回路故障検出プログラム。
JP2008024314A 2008-02-04 2008-02-04 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム Expired - Fee Related JP4729770B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008024314A JP4729770B2 (ja) 2008-02-04 2008-02-04 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008024314A JP4729770B2 (ja) 2008-02-04 2008-02-04 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009187133A JP2009187133A (ja) 2009-08-20
JP4729770B2 true JP4729770B2 (ja) 2011-07-20

Family

ID=41070332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008024314A Expired - Fee Related JP4729770B2 (ja) 2008-02-04 2008-02-04 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4729770B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2868075B2 (ja) * 1996-03-25 1999-03-10 日本電気株式会社 浮動小数点演算処理装置
JP2000040081A (ja) * 1998-07-24 2000-02-08 Nec Kofu Ltd ベクトルデータ処理装置
JP2001188670A (ja) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd 演算装置
JP2001222442A (ja) * 2000-02-08 2001-08-17 Fujitsu Ltd パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体

Also Published As

Publication number Publication date
JP2009187133A (ja) 2009-08-20

Similar Documents

Publication Publication Date Title
US8214417B2 (en) Subnormal number handling in floating point adder without detection of subnormal numbers before exponent subtraction
CN103793203B (zh) 响应于输入数据值降低fma单元中的功率消耗
US8024647B2 (en) Method and system for checking rotate, shift and sign extension functions using a modulo function
US10310818B2 (en) Floating point chained multiply accumulate
CN102855117A (zh) 浮点加法器
KR20130062352A (ko) 벡터 리딩 0, 벡터 트레일링 0, 벡터 오퍼랜드 1 카운트 및 벡터 패리티 계산을 위한 기능 유닛
CN101326486B (zh) 进行浮点数的除法运算或平方根运算的运算装置和运算方法
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
US11294625B2 (en) System and method for rounding reciprocal square root results of input floating point numbers
GB2565385B (en) An apparatus and method for estimating a shift amount when performing floating-point subtraction
CN101689233B (zh) 安全敏感系统中的微处理器
US6947962B2 (en) Overflow prediction algorithm and logic for high speed arithmetic units
JP4729770B2 (ja) 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム
US8745118B2 (en) Verifying floating point square root operation results
US20090216823A1 (en) Method, system and computer program product for verifying floating point divide operation results
CN109977701B (zh) 一种定浮点运算装置
JP4439060B2 (ja) 浮動小数点加算器
CN112394904A (zh) 一种浮点数据处理方法、运算器及电子设备
US20140059105A1 (en) Accuracy configurable adders and methods
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
JP3555881B2 (ja) 演算回路とそのエラー検出方法
JP2006228121A (ja) 演算処理装置
JP2000040081A (ja) ベクトルデータ処理装置
US20150261542A1 (en) Data processing apparatus and method for performing data processing operation with a conditional processing step
WO2006129356A1 (ja) 情報処理装置、および、その誤演算検出方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110401

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4729770

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees