JP4729770B2 - 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム - Google Patents
浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム Download PDFInfo
- 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
Links
- 238000001514 detection method Methods 0.000 title claims description 17
- 238000000034 method Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Description
浮動小数点演算については、IEEE−754(IEEE二進化浮動小数点数演算標準)という標準規格があり、多くのCPUやFPUに実装されている。
IEEE−754は、浮動小数点数の表現形式(+0,−0,非正規化数を含む)を規定するとともに、特殊な値(無限大,NaNなど)も規定し、浮動小数点演算でのこれらの値の扱い方を規定している。
ここで、特殊数判定回路が2重化された浮動小数点演算装置の構成を、図7に示す。
同図に示すように、浮動小数点演算装置100において、特殊数判定回路130は、二つ(同図においては、130−1と130−2)備えられている(2重化)。そして、特殊数判定回路130のそれぞれから出力された特殊ステータスを比較回路140で比較し、一致/不一致を判定する。
なお、以下の各実施形態における浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法は、プログラムに制御されたコンピュータにより実現することができる。プログラムは、例えば、記録媒体により提供される。記録媒体としては、たとえば、磁気ディスク,光ディスク,半導体メモリ,その他コンピュータで読み取り可能な任意の手段を使用することができる。
また、記録媒体に記録されたプログラムは、記録媒体を直接コンピュータに装着して当該コンピュータに読み込ませることができ、また、通信回線を介してコンピュータに読み込ませるようにしても良い。
まず、本発明の浮動小数点演算装置の実施形態について、図1を参照して説明する。
同図は、本実施形態の浮動小数点演算装置の構成を示すブロック図である。
同図に示すように、本実施形態の浮動小数点演算装置1は、命令発行部10と、レジスタファイル20と、浮動小数点演算器30(30a,30b)とを備えている。
なお、「チェック対象となる対の浮動小数点演算器30へのオペランドがともに空きとなるタイミング」とは、オペランドの要素が有効でないとき、すなわち、浮動小数点演算器30a及び浮動小数点演算器30bへ送出するタイミング有効信号がともに0である場合をいう。
また、浮動小数点演算器30は、タイミング有効信号が有効である場合にオペランドY及びオペランドZの浮動小数点演算を行って演算結果をレジスタファイル20へ送出する。さらに、バイパス出力データ及び特殊数ステータスを他方の浮動小数点演算器30へ送出する。そして、パトロールチェック用信号が有効である場合に自演算器内の特殊数ステータスと他方の浮動小数点演算器30より受け取った特殊数ステータスとを比較し、一致しない場合にエラー通知を行う。
同図に示す浮動小数点演算器30は、同種の演算を行う浮動小数点演算器40を複数実装しており、互いの演算結果とともにIEEE浮動小数点標準(IEEE−745)形式の特殊数を示す特殊数ステータスファイル20を介さずにやり取りするバイパス演算機能を有している。
演算回路31は、セレクタ32、特殊数差替回路50a及び他方の浮動小数点演算器30と接続されている。この演算回路31は、セレクタ32から受け取った浮動小数点データを演算し、演算結果を特殊数差替回路50a、セレクタ32及び他方の浮動小数点演算器30へ送出する。
同図に示すように、特殊数判定回路40は、オペランドステータス生成回路41(41a,41b)と、セレクタ42と、出力ステータス判定回路43とを有している。
特殊数差替回路50aは、カウンタ51と、制御回路52と、セレクタ53と、セレクタ54とを有している。
カウンタ(3bitカウンタ、加算器)51は、命令発行部10及び制御回路52と接続されている。このカウンタ51は、命令発行部10から受け取ったパトロールチェック用信号が有効である場合に+1カウント処理を行い、結果の3bitを制御回路52に送出する。
セレクタ54は、セレクタ53、演算回路31、特殊数判定回路40及びレジスタファイル20と接続されている。このセレクタ54は、特殊数判定回路40から受け取った特殊数ステータスを用いて、セレクタ53から受け取った特殊数パタンと演算回路31から受け取った演算結果(通常数)のいずれかを選択し、結果をレジスタファイル20へ送出する。
次に、本実施形態の浮動小数点演算装置の動作(特殊数判定回路故障検出方法)について、図1〜図5を参照して説明する。
本実施形態の浮動小数点演算装置1は、図4に示すように、IEEE浮動小数点標準(IEEE−754)形式の倍精度データを扱う。IEEE−754形式では、図5に示すように、通常数と5種類の特殊数(0、無限大、シグナル型非数、クワイエット型非数、デノーマル数)を定義している。
これは、演算回路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に送出する。
演算回路31は、オペランドY及びオペランドZを入力すると、これらの演算を行い、演算結果(通常数)を特殊数差替回路50aへ送出するとともに、この演算結果をバイパス出力データとして、他方の浮動小数点演算器30へ送出する。
セレクタ42は、命令発行部10から受け取ったバイパス制御信号に従って、オペランドステータス生成回路41から受け取った特殊数ステータスを選択し、出力ステータス判定回路43へ送出する。
特殊数差替回路50aは、出力ステータス判定回路43から受け取った特殊数ステータスが通常数を表す“00000”であるため、演算回路31より受け取った演算結果(通常数)を選択し、演算結果出力としてレジスタファイル20へ送出する。
レジスタファイル20は、浮動小数点演算器30より受け取った演算結果を保存する。
その際には、命令発行部10より発行されるバイパス制御信号によって、セレクタ32で他方の浮動小数点演算器30からのバイパス入力データを選択し、セレクタ42にて他方の浮動小数点演算器からの特殊数ステータスを選択することで、レジスタファイル20を介さないバイパス演算を可能とする。
次に、特殊数を入力として演算結果を特殊数に差し替える動作について、図1、図2を参照して説明する。
ここでは、例として、オペランドYがqNaN、オペランドZが通常数の場合について説明する。なお、この場合の演算結果は、qNaNとなる。
レジスタファイル20は、特殊数(例としてqNaN)であるオペランドY及び通常数であるオペランドZを各浮動小数点演算器30に送出する。
セレクタ42は、命令発行部10から受け取ったバイパス制御信号に従って、オペランドステータス生成回路41より受け取った特殊数ステータスを選択し、出力ステータス判定回路43へ送出する。
特殊数差替回路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となる)。
特殊数パタンは、図6に示す特殊数差替回路50aにて生成される。
特殊数差替回路50aの内部では、パトロールチェック用信号を受けるたびに、+1動作を行うカウンタ51の出力にて5種の特殊数パタンのいずれかをセレクタ53にて選択し、選択した特殊数パタンをオペランドステータス生成回路41へ送出する。
セレクタ42は、オペランドステータス生成回路41より受け取った特殊数ステータスを選択し、出力ステータス判定回路43へ送出する。
出力ステータス判定回路43は、セレクタ42より受け取った特殊数ステータスの組み合わせから出力ステータスを判定し、判定結果の特殊数ステータスを特殊数ステータス比較回路33と他方の浮動小数点演算器30へ送出する。
特殊数ステータスは、各種別毎に1bitなので、特殊数の種別分(5種+通常数)のXOR回路6ヶのみでチェックを実現できる。
各浮動小数点演算器30では、それぞれ同じ特殊数パタンに対する特殊数ステータスを出力しているはずなので、比較した結果が一致しなかった場合は、特殊数判定回路40の故障とみなしてエラー通知を命令発行部10に送出する。
シフトレジスタ55は、予め何れか一つのレジスタに“1”を、その他のレジスタに“0”をセットしておき、命令発行部10から受け取ったパトロールチェック用信号をトリガとしてシフト動作を行う。
このように、パトロールチェック用信号を受け取るたびにセレクタの特殊数パタン選択を切り替えることのできる回路であれば、本発明の実施形態に記載したカウンタの代用となりえる。
10 命令発行部
20 レジスタファイル
30a、30b 浮動小数点演算器
33 特殊数ステータス比較回路
40 特殊数判定回路
41a、41b オペランドステータス生成回路
42a,42b セレクタ
43 出力ステータス判定回路
50a、50b 特殊数差替回路
51 3bitかウンタ
52 制御回路
53 セレクタ
55 シフトレジスタ
Claims (8)
- 複数の浮動小数点演算器を備えた浮動小数点演算装置であって、
前記浮動小数点演算器が、
オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、
この特殊数判定回路から出力された前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した
ことを特徴とする浮動小数点演算装置。 - 前記複数の浮動小数点演算器のオペランドがいずれも空きとなるタイミングでパトロールチェック用信号を送出する命令発行部を備え、
前記特殊数判定回路が、前記パトロールチェック用信号を入力したタイミングで、予め用意された特殊数パタンをセットし、この特殊数パタンに対する特殊数ステータスを出力する
ことを特徴とする請求項1記載の浮動小数点演算装置。 - 前記パトロールチェック用信号を入力したタイミングで、予め用意された特殊数パタンを前記特殊数判定回路にセットする特殊数差替回路を有し、
前記特殊数判定回路が、前記特殊数パタンがセットされて、この特殊数パタンに対する前記特殊数ステータスを生成し出力するオペランドステータス生成回路を有した
ことを特徴とする請求項2記載の浮動小数点演算装置。 - 前記特殊数差替回路が、
前記パトロールチェック用信号の入力数をカウントする加算器と、
複数種類の特殊数のうちの一つを選択し前記特殊数パタンとして出力するセレクタと、
前記加算器でのカウント数にもとづき、前記セレクタにおける選択処理を制御する制御回路とを有した
ことを特徴とする請求項3記載の浮動小数点演算装置。 - 前記加算器が、カウンタ又はシフトレジスタを含む
ことを特徴とする請求項4記載の浮動小数点演算装置。 - 浮動小数点演算を実行する浮動小数点演算器であって、
オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する特殊数判定回路と、
この特殊数判定回路から出力された前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する特殊数ステータス比較回路とを有した
ことを特徴とする浮動小数点演算器。 - 特殊数判定回路の故障を検出する特殊数判定回路故障検出方法であって、
一の浮動小数点演算器が、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、
前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理とを有した
ことを特徴とする特殊数判定回路故障検出方法。 - 特殊数判定回路の故障を検出する処理を浮動小数点演算装置に実行させるための特殊数判定回路故障検出プログラムであって、
一の浮動小数点演算器にて、オペランドが特殊数であるか否かを判定し、この判定結果を示す特殊数ステータスを出力する処理と、
前記特殊数ステータスと、他の浮動小数点演算器から送られてきた特殊数ステータスとを比較して、不一致のときにエラー信号を出力する処理と
を前記浮動小数点演算装置に実行させる
ことを特徴とする特殊数判定回路故障検出プログラム。
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)
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 | パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体 |
-
2008
- 2008-02-04 JP JP2008024314A patent/JP4729770B2/ja not_active Expired - Fee Related
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 |