JP3555881B2 - 演算回路とそのエラー検出方法 - Google Patents
演算回路とそのエラー検出方法 Download PDFInfo
- Publication number
- JP3555881B2 JP3555881B2 JP2001122141A JP2001122141A JP3555881B2 JP 3555881 B2 JP3555881 B2 JP 3555881B2 JP 2001122141 A JP2001122141 A JP 2001122141A JP 2001122141 A JP2001122141 A JP 2001122141A JP 3555881 B2 JP3555881 B2 JP 3555881B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- unit
- floating
- arithmetic
- fixed
- 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
Images
Landscapes
- Hardware Redundancy (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の属する技術分野】
本発明は、演算回路による演算結果のエラー検出に関し、特に、同一の演算を並行して多重に(又、2重に)実行し各演算結果が一致するかどうかを比較することにより演算結果のエラーを検出する演算回路とそのエラー検出方法に関する。
【0002】
【従来の技術】
従来では、演算回路の演算結果のエラーを検出するためには、検査対象の演算回路に対してエラー検出のためのエラー検出の回路や装置を取り付けることにより、エラーの検出を行る。この従来の演算回路のエラー検出方法においては、具体的には例えば、演算対象データにパリティを付加し、演算機能におけるパリティ予測を行ない、その演算結果パリティと比較する等の方法によりエラーの検出を行っている。
【0003】
【発明が解決しようとする課題】
上述したように従来の演算回路による演算結果のエラー検出では、以下に述べるような問題点があった。
【0004】
近年LSIは、更なる高集積、高速化が要求されており、従来のエラー検出機能を備えるハードウェアを用いる方法では、検査対象の演算回路から外部のエラー検出回路等への分配遅延が増加することとなり、演算回路に要求される高い処理性能の達成に対して大きな障害となっている。
【0005】
本発明の目的は、上記従来技術の欠点を解決し、従来の演算回路の設計を大きく変更することなく、演算結果のエラー検出のための機能を内蔵し、正確なエラー検出と高速な演算を実現する演算回路とそのエラー検出方法を提供することである。
【0006】
【課題を解決するための手段】
上記目的を達成するため本発明の演算回路は、演算対象の1つ又は複数個のオペランドの入力を受け付けて定められた演算を実行し、演算結果を出力する演算回路において、浮動小数点演算を実行する浮動小数点演算部と、固定小数点演算を実行する固定小数点演算部を備え、前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方により予め定められた同一の演算を実行し、前記浮動小数点演算部と前記固定小数点演算部とのそれぞれによる演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする。
【0007】
請求項2の本発明の演算回路は、前記演算対象のオペランドを2種類の数値とし、前記浮動小数点演算部と前記固定小数点演算部との双方により実行する前記演算を、前記2種類の数値による加減算とすることを特徴とする。
【0008】
請求項3の本発明の演算回路は、前記浮動小数点演算部と前記固定小数点演算部との双方により同一のオペランドにより行われた演算が、同符号の数値の加算処理及び異符号の数値の減算処理である場合に限り、前記浮動小数点演算部及び前記固定小数点演算部のそれぞれの演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする。
【0009】
請求項4の本発明の演算回路は、前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方が、前記予め定められた同一の演算を並列処理するベクトル演算を実行することを特徴とする。
【0010】
請求項5の本発明のエラー検出方法は、演算対象の1つ又は複数個のオペランドの入力を受け付けて定められた演算を実行し演算結果を出力する演算回路の、前記演算結果の不正を検出するエラー検出方法において、前記演算回路は、浮動小数点演算を実行する浮動小数点演算部と、固定小数点演算を実行する固定小数点演算部を備え、前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方により予め定められた同一の演算を実行し、前記浮動小数点演算部と前記固定小数点演算部とのそれぞれによる演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする。
【0011】
請求項6の本発明のエラー検出方法は、前記演算対象のオペランドを2種類の数値とし、前記浮動小数点演算部と前記固定小数点演算部との双方により実行する前記演算を、前記2種類の数値による加減演算とすることを特徴とする。
【0012】
請求項7の本発明のエラー検出方法は、前記浮動小数点演算部と前記固定小数点演算部との双方により同一のオペランドにより行われた演算が、同符号の数値の加算処理及び異符号の数値の減算処理である場合に限り、前記浮動小数点演算部及び前記固定小数点演算部のそれぞれの演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0014】
図1は、本発明の第1の実施の形態による演算回路100の構成を示すブロック図である。
【0015】
本実施の形態の演算回路100は、図1に示されるように、浮動小数点演算を行なう浮動小数点演算部10と、固定小数点演算を行なう固定小数点演算部20とを備える。
【0016】
本実施の形態の演算回路100は、指定された演算を、浮動小数点演算部10と固定小数点演算部20との双方により実行し、そして不一致検索部40は、浮動小数点演算部10と固定小数点演算部20とのそれぞれによる演算結果を比較して、各演算結果が不一致の場合には異常検出を通知する信号を出力する。選択部30は、浮動小数点演算部10と固定小数点演算部20とのそれぞれによる演算結果のいずれか一方を選択して、この演算回路100による演算結果として出力する。
【0017】
また、全ての演算をこの浮動小数点演算部10と固定小数点演算部20との双方により実行するのではなく、指定された演算のみを浮動小数点演算部10と固定小数点演算部20との双方により実行し、不一致検索部40は、この浮動小数点演算部10と固定小数点演算部20とにおいて同一の演算が実行された場合に限り、その双方による演算結果の比較を行なうものとしてもよい。
【0018】
更に、不一致検索部40は、この浮動小数点演算部10と固定小数点演算部20の双方により同一の演算が実行された場合であって、かつ“真の加算処理”等の予め指定した種類の演算が実行された場合に限り、その双方の演算部による演算結果の比較を行なうものとしてもよい。
【0019】
以下本明細書においては、“真の加算処理”とは、2つの数値(オペランド)の加減演算における、同符号の数値の加算処理及び異符号の数値の減算処理を意味するものとする。つまり、真の加算処理は、数値の絶対値が増加する加減演算である。これは、真の加算処理ではない加減演算(つまり、異符号の加算処理と同符号の減算処理)においては、オペランドの有効桁数が大きく減少する場合(オペランドの絶対値がほぼ等しい場合)があるため、演算結果の不一致の比較対象から除外するのである。
【0020】
なお、図1の演算回路100においては、オペランドAとオペランドBの2つのオペランドを用いる二項演算を行なう場合を例に示しているが、本発明の演算回路が実行する演算は二項演算に限る必要はなく、そのオペランドの数も2種類に限定する必要はない。
【0021】
以下に述べる本発明の実施例においては、演算回路100内の浮動小数点演算部10と固定小数点演算部20を、オペランドAとオペランドBの加減演算を行なう回路とし、この双方の演算部10、20が真の加算処理である同一の演算を行なう場合に限り、不一致検索部40が演算結果のエラー検出を行なう方式を例に、本発明を説明する。
【0022】
図1を参照すると、本実施例の演算回路100は、浮動小数点演算部10と固定小数点演算部20を備える。
【0023】
2つのオペランドA、Bを示す信号は、浮動小数点演算部10と固定小数点演算部20に入力される。浮動小数点演算部10は、浮動小数点加算処理順に、桁あわせ処理を行なう前処理部11、演算器12、正規化処理を行なう後処理部13を備えており、2つのオペランドA、Bの入力を受けて浮動小数点演算(本実施例では加減算)を実行する。浮動小数点演算部10における、前処理部11の浮動小数点加算処理における桁あわせ処理の詳細、及び演算器12の浮動小数点加算処理における絶対値演算処理の詳細は、当業者によく知られているため、その詳細な説明は省略する。
【0024】
固定小数点演算部20は、減算処理であれば減算のための2の補数を行なう前処理部21と、前処理済みデータを固定小数点加算する演算器22を備えており、2つのオペランドA、Bの入力を受けて固定小数点演算(本実施例では加減算)を実行する。
【0025】
浮動小数点演算部10と固定小数点演算部20のそれぞれの演算結果は、選択部30と不一致検出部40とのそれぞれに出力される。そして、選択部30は、演算結果を受け付けて処理命令に従いどちらか一方を選択し、本実施例の演算回路100による演算結果として出力する。
【0026】
一方、不一致検出部40は、浮動小数点演算部10と固定小数点演算部20のそれぞれの演算結果を比較して、不一致であるかどうかを調べることによりエラー検出を行なう。ただし、本実施例においては、不一致検出部40によるエラー検出の処理は、双方の演算部10、20が真の加算処理である同一の演算を行なう場合に限り行なう。
【0027】
この条件を満たすかどうかを判断するためには、例えば、不一致検出部40が、浮動小数点演算部10と固定小数点演算部20により演算された2つのオペランドの値が等しいことと、それぞれの演算器12により同一の真の加算処理(同符号の加算処理、又は異符号の減算処理)が行われたことを検出する等の方法により判断することができる。
【0028】
そして、不一致検出部40は、このエラー検出を実行する条件が成立する場合においては、浮動小数点演算部10と固定小数点演算部20のそれぞれの演算結果を比較して不一致であるかどうかを調べ、もしそれぞれの演算結果が不一致の場合には、これをエラーと判断し異常検出を通知する信号(エラー検出信号)を出力する。
【0029】
以上説明したように、本実施例の演算回路100によれば、浮動小数点と固定小数点との異種の演算処理部において共通する演算を行なう場合に、その双方の演算結果を用いてエラー検出を行なうため、専用のエラー検出回路を設ける必要なく、他に特別のハードウェアを備える必要がない。このため、これらの外部のエラー検出回路への分配遅延が増加することなくエラーを検出することができる。また、選択部30による演算結果の出力は、不一致検出部40によるエラー検出の処理やその判定結果により遅延されないため、高速の演算が実現される。
【0030】
以下、本実施例の演算回路100によるエラー検出の動作を説明する。
【0031】
ここでは、オペランドA、Bによる数値の浮動小数点加算処理命令を処理する場合を例に説明する。つまり、浮動小数点演算の命令であるため、演算回路100からの出力には浮動小数点演算部10の演算結果を用い、固定小数点演算部20の演算結果はそのエラー検出のために用いる。
【0032】
2つのオペランドA、Bを示す信号は、浮動小数点演算部10と固定小数点演算部20に供給される。そして、浮動小数点演算部10は、2つのオペランドA、Bのそれぞれを浮動小数点データと見なして、“符号部―指数部―仮数部”の形式により構成されるデータとして認識する。
【0033】
浮動小数点演算部10の前処理部11は、2つのオペランドの指数部の差分だけ指数部の小さい方のオペランドの仮数部を右シフトして桁あわせし、演算器12に供給する。このとき2つのオペランドの指数部に差がない場合は、仮数部は右シフトしない状態により演算器12に供給する。
【0034】
浮動小数点演算部10の演算器12は、桁あわせ後の2つのオペランドの仮数部を、浮動小数点加算命令でかつ2つのオペランドが同符号の場合、及び浮動小数点減算命令でかつ2つのオペランドが異符号の場合に、加算処理(真の加算処理)する。また、浮動小数点加算命令で2つのオペランドが異符号の場合、及び浮動小数点減算命令で2つのオペランドが同符号の場合には減算処理(真の減算処理)して正の値に変換する。このように本実施例の浮動小数点演算部10の演算器12は、2つのオペランドの絶対値演算処理を行なう。
【0035】
そして、浮動小数点演算部10の後処理部13は、演算器12による演算が真の加算処理であったのか真の減算処理であったのかを不一致検出部40において識別させるために、絶対値演算の結果を、真の減算処理をした場合に仮数部先頭ビットを“1”とし、真の加算処理をした場合に仮数部先頭ビットを“0”として正規化処理する。後処理部13は、この正規化処理した浮動小数点加算結果を、選択部30と不一致検出部40に供給する。
【0036】
次に、固定小数点演算部20においては、2つの入力オペランドA、Bを固定小数点データと見なす。固定小数点演算部20の前処理部21は、もし減算命令の場合には減算のための2の補数を取り、また加算命令の場合には入力オペランドA、Bを加工せずに、これを演算器22に供給する。演算器22は、前処理部21から供給されるの2つのオペランドを、固定小数点演算し、演算結果を選択部30と不一致検出部40に供給する。
【0037】
選択部30は、浮動小数点演算部10の浮動小数点演算結果と、固定小数点演算部20からの固定小数点演算結果の入力を受け付けて、出力する加算結果を選択し、本演算回路100の演算結果として出力する。ここで、演算回路100が受けた命令は、浮動小数点演算命令であったのであるから、この場合においては浮動小数点演算部10の浮動小数点演算結果を選択して出力する。また、同様に固定小数点命令を受けた場合には、固定小数点演算部20からの固定小数点演算結果を選択して出力する。
【0038】
本実施例の不一致検出部40は、上記の選択部30の動作と並行して、浮動小数点演算部10の演算結果と、固定小数点演算部20の演算結果とを比較しその不一致を検出する。この不一致検出部40による、演算結果の不一致の検出方法としては、例えば、浮動小数点演算部10の浮動小数点加算結果の仮数部加算結果部分と、固定小数点演算部20からの固定小数点加算結果の内の浮動小数点加算結果の仮数部加算結果部分と同等ビット幅とを比較する等の方法が可能である。
【0039】
不一致検出部40は、ここで演算結果の不一致が検出され、かつ浮動小数点演算部10と固定小数点演算部20がいずれも、同一の真の加算処理を行った演算結果である場合には、異常検出を通知するための不一致信号を生成し出力する。この不一致検出部40による、浮動小数点演算部10と固定小数点演算部20において同一の真の加算処理が行われたことの判定方法としては、浮動小数点演算部10において2つのオペランドの指数部に差がなく真の加算処理を行われたことと、固定小数点演算部20において固定小数点加算処理が行われたことを検出する等の方法が可能である。
【0040】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0041】
【発明の効果】
以上説明したように本発明の演算回路によれば、以下のような効果が達成される。
【0042】
第1に、本発明の演算回路は、入力されるオペランドに対して、浮動小数点演算処理及び固定小数点演算処理の双方を並行して実行し、双方の検算結果を比較することによりエラーを検出する方式のた、従来の演算回路の設計を大きく変更する必要がなく、従来の演算回路において備える浮動小数点演算機能及び固定小数点演算機能をそのまま用いて、演算結果のエラー検出の機能を実現することができる。
【0043】
第2に、本発明の演算回路は、演算結果の出力をそのエラー検出の処理のために遅延させることなく、演算部から出力された演算結果を直ちに出力する方式のため、きわめて高速な演算を実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態による演算回路の構成を示すブロック図である。
【符号の説明】
100 演算回路
10 浮動小数点演算部
11 前処理部
12 演算器
13 後処理部
20 固定小数点演算部
21 前処理部
22 演算器
30 選択部
40 不一致検出部
Claims (7)
- 演算対象の1つ又は複数個のオペランドの入力を受け付けて定められた演算を実行し、演算結果を出力する演算回路において、
浮動小数点演算を実行する浮動小数点演算部と、
固定小数点演算を実行する固定小数点演算部を備え、
前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方により予め定められた同一の演算を実行し、前記浮動小数点演算部と前記固定小数点演算部とのそれぞれによる演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする演算回路。 - 前記演算対象のオペランドを2種類の数値とし、
前記浮動小数点演算部と前記固定小数点演算部との双方により実行する前記演算を、前記2種類の数値による加減算とすることを特徴とする請求項1に記載の演算回路。 - 前記浮動小数点演算部と前記固定小数点演算部との双方により同一のオペランドにより行われた演算が、同符号の数値の加算処理及び異符号の数値の減算処理である場合に限り、前記浮動小数点演算部及び前記固定小数点演算部のそれぞれの演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする請求項2に記載の演算回路。
- 前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方が、前記予め定められた同一の演算を並列処理するベクトル演算を実行することを特徴とする請求項1から請求項3のいずれか一つに記載の演算回路。
- 演算対象の1つ又は複数個のオペランドの入力を受け付けて定められた演算を実行し演算結果を出力する演算回路の、前記演算結果の不正を検出するエラー検出方法において、
前記演算回路は、浮動小数点演算を実行する浮動小数点演算部と、固定小数点演算を実行する固定小数点演算部を備え、
前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方により予め定められた同一の演算を実行し、前記浮動小数点演算部と前記固定小数点演算部とのそれぞれによる演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とするエラー検出方法。 - 前記演算対象のオペランドを2種類の数値とし、
前記浮動小数点演算部と前記固定小数点演算部との双方により実行する前記演算を、前記2種類の数値による加減演算とすることを特徴とする請求項5に記載のエラー検出方法。 - 前記浮動小数点演算部と前記固定小数点演算部との双方により同一のオペランドにより行われた演算が、同符号の数値の加算処理及び異符号の数値の減算処理である場合に限り、前記浮動小数点演算部及び前記固定小数点演算部のそれぞれの演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする請求項6に記載のエラー検出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001122141A JP3555881B2 (ja) | 2001-04-20 | 2001-04-20 | 演算回路とそのエラー検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001122141A JP3555881B2 (ja) | 2001-04-20 | 2001-04-20 | 演算回路とそのエラー検出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002318706A JP2002318706A (ja) | 2002-10-31 |
JP3555881B2 true JP3555881B2 (ja) | 2004-08-18 |
Family
ID=18971901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001122141A Expired - Fee Related JP3555881B2 (ja) | 2001-04-20 | 2001-04-20 | 演算回路とそのエラー検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3555881B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007047893A (ja) * | 2005-08-08 | 2007-02-22 | Fujitsu Ltd | プロセッサの動作を検証する動作検証方法及び動作検証プログラム |
JP4645519B2 (ja) * | 2006-04-27 | 2011-03-09 | 株式会社デンソー | 演算処理装置,制御装置およびプログラム |
-
2001
- 2001-04-20 JP JP2001122141A patent/JP3555881B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002318706A (ja) | 2002-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5357237A (en) | In a data processor a method and apparatus for performing a floating-point comparison operation | |
EP0359809B1 (en) | Apparatus and method for floating point normalization prediction | |
US7461117B2 (en) | Floating point unit with fused multiply add and method for calculating a result with a floating point unit | |
JP3076046B2 (ja) | 例外検出回路 | |
JP6001276B2 (ja) | 浮動小数点加算を実行するための装置および方法 | |
US5204825A (en) | Method and apparatus for exact leading zero prediction for a floating-point adder | |
CA1324217C (en) | Pipelined floating point adder for digital computer | |
US11226791B2 (en) | Arithmetic processing device and method of controlling arithmetic processing device that enables suppression of size of device | |
US7634527B2 (en) | Reciprocal estimate computation methods and apparatus | |
Tao et al. | Three-operand floating-point adder | |
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
EP0328619B1 (en) | Apparatus and method for using a single carry chain for leading one detection and for ''sticky'' bit calculation | |
US7373369B2 (en) | Advanced execution of extended floating-point add operations in a narrow dataflow | |
US20060206556A1 (en) | Data processing apparatus and method for performing floating point addition | |
US7290023B2 (en) | High performance implementation of exponent adjustment in a floating point design | |
JP3555881B2 (ja) | 演算回路とそのエラー検出方法 | |
Tsen et al. | A combined decimal and binary floating-point multiplier | |
JPH04350724A (ja) | シフト量検出回路 | |
KR101922462B1 (ko) | 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법 | |
US8244783B2 (en) | Normalizer shift prediction for log estimate instructions | |
JP2919386B2 (ja) | 浮動小数点数検出装置および浮動小数点数検出回路 | |
JP4439060B2 (ja) | 浮動小数点加算器 | |
CN114371827A (zh) | 一种高性能浮点加法器的设计方法 | |
US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
US7599974B2 (en) | Data processing apparatus and method for comparing floating point operands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040415 |
|
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: 20040430 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040507 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |