JP3555881B2 - 演算回路とそのエラー検出方法 - Google Patents

演算回路とそのエラー検出方法 Download PDF

Info

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
Application number
JP2001122141A
Other languages
English (en)
Other versions
JP2002318706A (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 JP2001122141A priority Critical patent/JP3555881B2/ja
Publication of JP2002318706A publication Critical patent/JP2002318706A/ja
Application granted granted Critical
Publication of JP3555881B2 publication Critical patent/JP3555881B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、演算回路による演算結果のエラー検出に関し、特に、同一の演算を並行して多重に(又、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. 演算対象の1つ又は複数個のオペランドの入力を受け付けて定められた演算を実行し、演算結果を出力する演算回路において、
    浮動小数点演算を実行する浮動小数点演算部と、
    固定小数点演算を実行する固定小数点演算部を備え、
    前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方により予め定められた同一の演算を実行し、前記浮動小数点演算部と前記固定小数点演算部とのそれぞれによる演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする演算回路。
  2. 前記演算対象のオペランドを2種類の数値とし、
    前記浮動小数点演算部と前記固定小数点演算部との双方により実行する前記演算を、前記2種類の数値による加減算とすることを特徴とする請求項1に記載の演算回路。
  3. 前記浮動小数点演算部と前記固定小数点演算部との双方により同一のオペランドにより行われた演算が、同符号の数値の加算処理及び異符号の数値の減算処理である場合に限り、前記浮動小数点演算部及び前記固定小数点演算部のそれぞれの演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする請求項2に記載の演算回路。
  4. 前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方が、前記予め定められた同一の演算を並列処理するベクトル演算を実行することを特徴とする請求項1から請求項3のいずれか一つに記載の演算回路。
  5. 演算対象の1つ又は複数個のオペランドの入力を受け付けて定められた演算を実行し演算結果を出力する演算回路の、前記演算結果の不正を検出するエラー検出方法において、
    前記演算回路は、浮動小数点演算を実行する浮動小数点演算部と、固定小数点演算を実行する固定小数点演算部を備え、
    前記演算対象のオペランドに対して、前記浮動小数点演算部と前記固定小数点演算部との双方により予め定められた同一の演算を実行し、前記浮動小数点演算部と前記固定小数点演算部とのそれぞれによる演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とするエラー検出方法。
  6. 前記演算対象のオペランドを2種類の数値とし、
    前記浮動小数点演算部と前記固定小数点演算部との双方により実行する前記演算を、前記2種類の数値による加減演算とすることを特徴とする請求項5に記載のエラー検出方法。
  7. 前記浮動小数点演算部と前記固定小数点演算部との双方により同一のオペランドにより行われた演算が、同符号の数値の加算処理及び異符号の数値の減算処理である場合に限り、前記浮動小数点演算部及び前記固定小数点演算部のそれぞれの演算結果を比較して、各前記演算結果が不一致の場合には異常検出を通知する信号を出力することを特徴とする請求項6に記載のエラー検出方法。
JP2001122141A 2001-04-20 2001-04-20 演算回路とそのエラー検出方法 Expired - Fee Related JP3555881B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 株式会社デンソー 演算処理装置,制御装置およびプログラム

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