(57)【特許請求の範囲】
【請求項１】
仮数部と指数部で表現された浮動小数点数の積和演算における乗算処理を行う乗算部と、前記乗算部の乗算結果を受けて累積処理を行う加算部とを有する浮動小数点演算器において、
前記加算部は、先行する積和演算結果の仮数部と前記乗算部における乗算結果の仮数部の桁合わせを桁合わせ数に基づいて行うシフタと、
前記シフタにより桁合わせされた仮数部の和を求める仮数部加算器と、
前記仮数部加算器の加算結果を受けて、加算結果の桁落ちした桁数を検出して正規化数を求める先行０検出回路と、
前記仮数部加算器の加算結果を受けて、前記先行０検出回路により求められた正規化数に基づいて加算結果を正規化し、積和演算の仮数部を求める正規化回路を備えた仮数演算部と、
先行する積和演算における累積処理の指数部の中間値又は前記乗算部における乗算結果の指数部の大きい方を累積処理の指数部の中間値として選択するセレクタと、
前記乗算部における乗算結果の指数部と前記セレクタにより選択された中間値を受けて両値の差を算出する第１の指数部加算器と、
前記第１の指数部加算器の演算結果と前記先行０検出回路で求められた正規化数を受けて両値の差を算出し桁合わせ数を求め、求めた桁合わせ数を前記シフタに与え、演算結果のキャリーにより前記セレクタの選択を制御する第２の指数部加算器と、
前記セレクタにより選択された中間値と前記先行０検出回路により求められた正規化数を受けて両値の差を算出し、積和演算の指数部を求める第３の指数部加算器を備えた指数演算部とを有し、
連続した積和演算ｎ，（ｎ＋１）の実行において、積和演算（ｎ＋１）の累積処理における桁合わせ数を、前記第１の指数部加算器により積和演算ｎの指数部の中間値と積和演算（ｎ＋１）の乗算結果の指数部との差を算出し、前記第２の指数部加算器により前記第１の指数部加算器の演算結果と前記正規化回路で求められた積和演算ｎの正規化数との差を算出することにより求める
ことを特徴とする浮動小数点積和演算器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、浮動小数点の積和演算を乗算処理と累積を行う加算処理によって実現する浮動小数点演算器に関する。
【０００２】
【従来の技術】
近年、マルチメディアの急速な普及、高度なＧＵＩ（Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）、またグラフィックを用いたＴＶゲームの普及などにより、コンピュータ・グラフィック（ＣＧ）が大変重要になってきている。特にパソコンの家庭への急激な普及、ＴＶゲーム機の普及により高性能プロセッサ上で走らせるアプリケーションとして３次元コンピュータ・グラフィックス（３Ｄ−ＣＧ）、特に高い品位の動画の要求が高まっている。この処理には膨大な計算量、計算能力が要求される。ＣＧにおけるジオメトリカル処理は、座標変換、視点変換などの幾何学的なグラフィックモデルの変換処理や照光処理を行うフェイズである。これらの処理には行列演算、ベクトル演算が行われるため、内積の演算が多く用いられる。以上のような３Ｄ−ＣＧ処理以外にも、従来からの科学技術計算における数値計算においても同様に内積の計算は多用されている。
【０００３】
以上のような要求により高速な積和演算器の実現が望まれている。以下に、従来の浮動小数点積和演算器の構成を具体的に説明する。積和演算器の構成のタイプには、大きく分けて２つのタイプがある。
【０００４】
第１のタイプは、独立した乗算部および加算部を実装し、積和演算はこれらの演算部を縦列接続、あるいは演算結果をオペランドとしてバイパスすることにより実現するタイプであり、その構成を図７に示す。第２のタイプの浮動小数点積和演算器の構成は、積和演算器を直接構成する方法であり、図８にその構成を示す。積和演算が処理の多くを占めるグラフィック専用器では第２のタイプの構成をとることが多いが、一般のＭＰＵ（マイクロ・プロセッシング・ユニット）では、このような専用の演算器を設ける構成はコストが大きいため、構成が単純でありかつ多くのＭＰＵの浮動小数点演算器と親和性の良い第１のタイプの構成が採用されることが多い。
【０００５】
ここでは、第１のタイプの構成における処理の詳細を以下に述べ、この構成における問題点を明らかにする。また、第２の構成に関しても簡単に説明し、同様の問題が生じることを示す。なお、以下に説明する浮動小数点演算器は、すべて浮動小数点数の演算規格であるＩＥＥＥ７５４規格に準拠しているものとする。
【０００６】
図７において、第１のタイプの演算器は、乗算部１００と加算部２００とから構成される。乗算部１００の仮数部は、乗算ツリー１０１、ブースデコーダ１０２、最終加算器１０３、正規化回路１０４ならびにレジスタ１０５〜１０９を備えて構成される。また、指数部は、２つの加算器１１０、１１１、ならびにレジスタ１１２〜１１５を備えて構成される。乗算は、まず仮数部の乗算が実行される。２つのオペランドの仮数部Ｆａ、Ｆｂの乗算は、ブースデコーダ１０２と乗算ツリー１０１を用いて実行され、さらに最終加算器１０３で最終的な積を算出する。一方、指数部は２つのオペランドの指数部Ｅａ、Ｅｂを加算器１１０により加算することで求める（より厳密には、指数部は下駄履き表現されているので、指数部の和を求め、さらにバイアス値を引くことにより求める）。前記乗算の結果、仮数部で桁上げが生じている場合には、仮数部を正規化回路１０４により１ビットだけシフトし、指数部を加算器１１１によりインクリメントして正規化を行う。この従来例では、図９に示す上記処理を２段のステージ（ステージＸ１、ステージＸ２）でパイプライン処理している。ステージＸ１では乗算、ステージＸ２では最終加算、正規化である。この構成は、現在の技術では典型的な構成である。
【０００７】
次に、加算部２００の構成と動作について述べる。仮数部は、オペランドＦｍ、Ｆｎの桁合わせを行うシフタ２０１、和を求める加算器２０２、正規化回路２０３、先行０検出回路２０４ならびにレジスタ２０５〜２０９を備えて構成される。また、指数部は、２つの加算器２１０、２１１、セレクタ２１２およびレジスタ２１３〜２１５を備えて構成される。このような構成において、加算は、（１）桁合わせ数算出、（２）スワップ、（３）桁合わせ、（４）加算減算、（５）正規化数の算出、（６）正規化、のステップにしたがって処理される。まず、（１）桁合わせ数算出では、２つのオペランドの仮数部Ｆｍ、Ｆｎの桁あわせを行うために何ビットだけシフトすればよいかを算出する。これは、オペランドの指数部Ｅｍ、Ｅｃの差を絶対値で求めることであり、加算器２１０で実行される。（２）スワップでは、２つの指数部Ｅｍ、Ｅｃのうち大きいほうを加算器２１０による加算結果のキャリーにしたがって加算演算の中間値Ｅｄとして選択する。また、仮数部Ｆｍ、Ｆｎは指数部Ｅｍ、Ｅｃの小さいほうの仮数部を桁あわせのためシフタ２０１に送るべく、必要ならばオペランドの入れ替えを行う。（３）桁合わせでは、（１）の結果に基づいて、シフタ２０１において指数部の小さいほうの仮数部が必要な数だけ右にシフトされて桁合わせが行われる。（４）加算減算では、加算器２０２で仮数部の加算を行う。（５）正規化数算出では、（４）の結果において、何桁の桁落ちが生じたのかを先行０検出回路２０４によって先行０の数をカウントすることにより検出を行う。（６）正規化では、（５）の結果により正規化を行う。すなわち、指数部では加算器２１１を用いて指数部の中間値Ｅｄから正規化数Ｎを引き、また仮数部では正規化回路２０３を用いて正規化数分だけ仮数部を左にシフトする。この従来例では、図１０に示す上記処理を２段のステージ（ステージＡ１、ステージＡ２）でパイプライン処理している。ステージＡ１では（１）から（３）、ステージＡ２では（４）から（６）を実行している。この構成は、現在の技術では典型的な構成である。
【０００８】
以上、第１のタイプの構成における乗算、加減算の処理に関して説明したが、積和演算を行うには、これら２つの演算器を縦続接続することによって、積和演算を行う。積和演算Ａ×Ｂ＋Ｃ（ここではＣは先行する積和演算の答えとする）を行う場合には、まず２つのオペランドＡ及びＢが乗算部１００に入力され、乗算が実行される。演算結果は図７において＊１、＊２で示すパスを用いて、加算部２００にオペランドの１つとして入力される。また、先行する積和演算の演算結果は、図７において＊３、＊４で示すパスを用いてもう一方のオペランドとして加算部２００に入力され、加減算が行われる。
【０００９】
図１１に上記パイプラインの処理の流れをを示す。図１１から明らかであるが、第１のタイプの演算器を実現した場合は、依存関係のある積和演算は連続して実行することができない。すなわち、スループット“１”で演算を実行することができない。これは、一般に浮動小数点数の演算には複数サイクル、上記従来例では２サイクルを必要とするためであった。
【００１０】
一方、グラフィック処理、数値演算などで多用される内積演算は、一般に連続した依存関係のある積和演算によって実現される。この場合に、積和演算毎にＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ：演算を行わない状態）が生じ、演算の効率が著しく悪化する。この問題は、命令のスケジューリングによりある程度軽減することが可能であるが、すべての場合に有効なわけではない。すなわち、偶然にもＮＯＰの部分を埋めることのできる依存関係のない命令が存在する場合に限られる。
【００１１】
このような不具合を完全に解決するには、積和演算のスループットを“１”にすることである。すなわち、上記（１）から（６）の処理を１サイクルで実行する必要がある。この場合、クリティカルパスは（１）〜（６）であり、１サイクルの時間は、（１）から（６）までの全ての処理に掛かる時間となる。これは非常に長い時間となり現実的ではない。
【００１２】
次に、図８を参照して第２のタイプの構成と動作について説明し、上述したと同じような問題が生じることを説明する。
【００１３】
図８において、積和演算器３００の仮数部は、第１，第２のオペランドの仮数部Ｆａ、Ｆｂの積を求めるための乗算ツリー３０１、ブースデコーダ３０２、第３のオペランドの桁合わせを行う双方向シフタ３０３、乗算ツリー３０１による乗算結果および桁合わせ結果の和（積和）を求める加算器３０４、３０５、加算器３０５による積和演算結果の正規化を行う正規化回路３０６、正規化数を求める先行０検出回路３０７、及びレジスタ３０８〜３１３を備えて構成され、指数部は、第１，第２のオペランドの指数部Ｅａ、Ｅｂの積の値（指数部同士の和）を計算する加算器３１４、桁合わせの桁数（第３のオペランドの指数部と前記第１，第２のオペランドの積の指数部の差）を求める加算器３１５、第３のオペランドと前記第１，第２のオペランドの積との和（積和）の指数部（第３のオペランドの指数部と前記第１，第２のオペランドの積の指数部の内、大きい方の値）を加算器３１５の演算結果のキャリーに基づいて求めるセレクタ３１６と、正規化を行う加算器３１７及びレジスタ３１９〜３２２を備えて構成される。
【００１４】
このような構成において、積和演算器３００では積和を一度に求める。積和演算は、次のように実行される。すなわち、第１，第２のオペランドの仮数部は、第１，第２のオペランドの積を求める乗算ツリー３０１、ブースデコーダ３０２に入力されて乗算が行われる。この処理と並行して、第３のオペランドの桁合わせが双方向シフタ３０３により行われる。左右どちらに何ビットシフトされるかは、第１と第２のオペランドの指数の和と第３のオペランドの指数の差として求められる。これらの算出は、加算器３１４，３１５によって行われる。また、第１と第２のオペランドの指数の和と第３のオペランドの指数の内、大きい方の値を指数部中間値とする。第１，第２のオペランドの積と第３のオペランドの桁合わせ結果の和（積和）は、加算器３０４、３０５によって求められる。加算器３０４、３０５による積和演算結果は、正規化回路３０７で正規化が行われる。正規化において何ビットシフトするかは、先行０検出回路３０８によって求められる。指数部では加算器３１７により先行０検出回路３０８によって求められた正規化数を指数部の中間値より加算あるいは減算することにより正規化を行う。これらの一連の処理は２ステージのパイプライン処理によって実行される。
【００１５】
この構成は、第２のタイプの積和演算器において最も典型的な構成である。したがって、あるオペランドの演算結果は、２クロック後にならないと次の演算のオペランドとして用いることができない。すなわち、依存関係のある演算は２クロック毎にしか実行することができず、前述した第１のタイプの積和演算器と同様の不具合を招いていた。
【００１６】
【発明が解決しようとする課題】
以上説明したように、従来の浮動小数点積和演算器は、整数積和演算器と異なり、レイテンシが多く、依存のある積和演算を毎クロックごとに実行することができず、演算時間が長くなるといった不具合を招いていた。
【００１７】
そこで、この発明は、上記に鑑みてなされたものであり、その目的とするところは、連続した積和演算の繰り返し実行における累積処理のクリティカルパスを短縮し、演算時間の短縮を達成し得る浮動小数点演算器を提供することにある。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の発明は、仮数部と指数部で表現された浮動小数点数の積和演算における乗算処理を行う乗算部と、前記乗算部の乗算結果を受けて累積処理を行う加算部とを有する浮動小数点演算器において、前記加算部は、先行する積和演算結果の仮数部と前記乗算部における乗算結果の仮数部の桁合わせを桁合わせ数に基づいて行うシフタと、前記シフタにより桁合わせされた仮数部の和を求める仮数部加算器と、前記仮数部加算器の加算結果を受けて、加算結果の桁落ちした桁数を検出して正規化数を求める先行０検出回路と、前記仮数部加算器の加算結果を受けて、前記先行０検出回路により求められた正規化数に基づいて加算結果を正規化し、積和演算の仮数部を求める正規化回路とを備えた仮数演算部と、先行する積和演算における累積処理の指数部の中間値又は前記乗算部における乗算結果の指数部の大きい方を累積処理の指数部の中間値として選択するセレクタと、前記乗算部における乗算結果の指数部と前記セレクタにより選択された中間値を受けて両値の差を算出する第１の指数部加算器と、前記第１の指数部加算器の演算結果と前記先行０検出回路で求められた正規化数を受けて両値の差を算出し桁合わせ数を求め、求めた桁合わせ数を前記シフタに与え、演算結果のキャリーにより前記セレクタの選択を制御する第２の指数部加算器と、前記セレクタにより選択された中間値と前記先行０検出回路により求められた正規化数を受けて両値の差を算出し、積和演算の指数部を求める第３の指数部加算器とを備えた指数演算部とを有し、連続した積和演算ｎ，（ｎ＋１）の実行において、積和演算（ｎ＋１）の累積処理における桁合わせ数を、前記第１の指数部加算器により積和演算ｎの指数部の中間値と積和演算（ｎ＋１）の乗算結果の指数部との差を算出し、前記第２の指数部加算器により前記第１の指数部加算器の演算結果と前記正規化回路で求められた積和演算ｎの正規化数との差を算出することにより求めることを特徴とする。
【００１９】
【発明の実施の形態】
以下、図面を用いてこの発明の実施形態を説明する。
【００２０】
図１は請求項１記載の発明の一実施形態に係る浮動小数点演算器の構成を示す図である。
【００２１】
図１において、この実施形態の特徴とするところは、図７に示す従来の演算器に比べて、加算部２に加算器３、レジスタ４、レジスタ５の構成を追加し、セレクタ２１２の出力を加算器２１０の入力の一方に与え、加算器３は加算器２１０の加算結果と先行０検出回路２０４で得られた正規化数Ｎを加算して桁合わせ数Ｓを算出し、算出された桁合わせ数Ｓがレジスタ５で保持され、レジスタ５で保持された桁合わせ数Ｓでシフタ２０１をシフト制御し、加算器３の加算結果のキャリーをレジスタ４で保持し、レジスタ４で保持されたキャリーでセレクタ２１２とスワップ動作を制御するようにしたことにあり、図７に示す従来と同符号のものは同一機能を有するものである。
【００２２】
この実施形態の積和演算器は、乗算部１００と加算部２とから構成され、上述したように、図７に示す従来の積和演算器と多くの部分で共通である。図１に示す積和演算器は３ステージ、すなわちＸステージ、Ｙステージ、Ｚステージで構成されている。Ｘステージは、乗算部１００の仮数部の乗算ツリー１０１とブースデコーダ１０２及び指数部の加算器１１４を含んで構成される。Ｙステージは乗算部１００の仮数部の最終加算器１０３、正規化回路１０４、指数部の加算器１１１、加算部２の指数部の２つの加算器３、２１０を含んで構成される。Ｚステージは、加算部２の仮数部のオペランドの桁合わせを行うシフタ２０１、和を求める加算器２０２、正規化回路２０３、先行０検出回路２０４及び指数部のセレクタ２１２、加算器２１１を含んで構成される。
【００２３】
ここで特徴的なのは、加算部２に加算器３が追加されている点である。加算器３は、本発明の要点である後続の積和演算のための桁合わせ桁数Ｓを現行の積和演算の正規化の終了前に計算するための演算器である。また、本積和演算器が３ステージで構成されている点にも注意されたい。
【００２４】
以下、図１の構成図、図２〜図６のタイミング図を参照して本演算器の動作を、Ｙステージの後半、およびＺステージにおける累積加算処理の動作に注目して説明する
まず、Ｘステージでは従来と同様にして乗算を行う。仮数部のオペランドＦａ，Ｆｂの乗算は、ブースデコーダ１０２と乗算ツリー１０１を用いて実行される。一方、指数部は２つのオペランドＥａ，Ｅｂの指数部を加算することにより求める（より厳密には、指数部は下駄履き表現されているので、指数部の和を求め、さらにバイアス値を引くことにより求める）。
【００２５】
Ｙステージでは、最終加算器１０３で最終的な積を算出する。仮数部で桁上げが生じている場合には、仮数部を１ビットだけシフトし、指数部をインクリメントして正規化を行う。さらに、Ｙステージでは、加算処理における、（１）桁合わせ数の算出を行う。この算出は２つの指数部の加算器２１０、３によって行われる。
【００２６】
図２は下記のような依存関係のある積和演算を連続して実行している場合のタイミング図であり、図３は従来の積和演算における加算部２００で行われる加算処理の動作タイミングを示す図であり、図４はこの実施形態の積和演算における加算部２で行われる加算処理の動作タイミングを示す図である。
【００２７】
図２において、現在時刻Ｔでは、積和演算ｎの加算処理をＺステージで実行中であるとする。このとき後続の積和演算（ｎ＋１）は、Ｙステージで乗算の最終加算と次の時刻（Ｔ＋１）におけるＺステージでの加算処理で桁合わせを行うための桁合わせ数の算出を行う。
【００２８】
先行  積和演算（ｎ−１）  Ａ’      ←  Ａ    ＋  Ｂ×Ｃ
現在  積和演算    ｎ      Ａ’’    ←  Ａ’  ＋  Ｄ×Ｅ
後続  積和演算（ｎ＋１）  Ａ’’’  ←  Ａ’’＋  Ｆ×Ｇ
一般に桁合わせ数Ｓの算出は、（Ｔ＋１）の時刻に時刻ＴのＺステージで求められた積和演算ｎの指数部Ｅｎの値から時刻Ｔで求められた積和演算（ｎ＋１）の積の指数の値Ｅｍ（ｎ＋１）（以下、Ｅｍ（ｎ＋１）は現在の積和演算ｎの後続の積和演算（ｎ＋１）におけるＥｍの値を表す）を引くことにより求められる。これは、積和演算ｎの指数部の値Ｅｎは、先行０検出回路２０４で求めた正規化数Ｎを加算器２１１によって指数部の中間値Ｅｄから引くことで求まるため、時刻Ｔの終わりで確定するためである。すなわち、
【数１】
時刻  Ｔ      ：  Ｅｎ＝Ｅｄ−Ｎ              …（１）
時刻（Ｔ＋１）：    Ｓ＝Ｅｎ−Ｅｍ（ｎ＋１）  …（２）
となる。この実施形態ではこの演算を時刻（Ｔ＋１）ではなく、まだ積和演算ｎの指数部の結果が確定していない時刻Ｔの前半に開始する。桁合わせ数Ｓは、上式（１）（２）より、
【数２】
Ｓ＝（Ｅｄ−Ｎ）−Ｅｍ（ｎ＋１）
＝（Ｅｄ−Ｅｍ（ｎ＋１））−Ｎ    …（３）
となる。ここで、Ｎは時刻Ｔの後半でないと確定されないが、Ｅｄ、Ｅｍ（ｎ＋１）は、時刻Ｔの比較的早い時期に確定している。そこで、上式（３）に示すように演算の順番を入れ替えて、加算器２１０で（Ｅｄ−Ｅｍ（ｎ＋１））の実行を行い、その後正規化数Ｎが求まり次第、加算器３で正規化数Ｎの減算を行うことにより桁合わせ数Ｓを求める。ここで、（１）−ａ桁合わせ数算出における（Ｅｄ−Ｅｍ（ｎ＋１））の実行、（１）−ｂ桁合わせ数算出における（Ｅｄ−Ｅｍ（ｎ＋１））−Ｎの実行とする。
【００２９】
Ｚステージでは、（２）スワップ、（３）桁合わせ、（４）加算減算、（５）正規化数の算出、（６）正規化を実行する。（２）スワップ、（３）桁合わせでは、２つの指数部のうち大きいほうを加算演算の中間値Ｅｄとしてセレクタ２１２により選択する。また、仮数部は指数部の小さいほうの仮数部を桁合わせのためシフタ２０１に送るべく、必要ならばオペランドの入れ替えを行い、シフタ２０１において指数部の小さいほうの仮数部が必要な数だけ右にシフトされ、桁合わせが行われる。これらの処理は、Ｙステージで先に算出した桁合わせ数Ｓに基づいて行われる。また、選択された指数部の中間値Ｅｄは、さらに後続の積和演算（ｎ＋２）の桁合わせ数を算出するために転送される。（４）加算減算では、加算器２０２で仮数部の加算を行う。（５）正規化数算出では、（４）加算減算の結果において、何桁の桁落ちが生じたのかを先行０検出回路２０４によって先行０の検出を行う。また、この値は、さらに後続の積和演算（ｎ＋２）の桁合わせ数を算出するために転送される。（６）正規化では、（５）の結果により正規化を行う。すなわち、指数部では加算器２１１を用いて指数部の中間値Ｅｄから正規化数Ｎを引き、また仮数部ではシフタ２０１を用いて正規化数分だけ仮数部を左にシフトする。
【００３０】
以上、本実施形態の動作について説明したが、ここでは、さらに本実施形態の効果に焦点を当てて説明する。本発明の目的は、依存関係のある積和演算のスループットを“１”にするため、連続した積和演算における加算（累積）処理のクリティカルパスを短縮する点である。図７に示した従来例において、連続した積和演算における加算（累積）処理のクリティカルパスは、図５の累積加算の実行の様子に示すように、（１）桁合わせ算出→（２）スワップ→（３）桁合わせ→（４）加算減算→（５）正規化数算出→（６）正規化である。すなわち、（１）〜（６）の処理が終了するまで、次の累積加算を実行することができなかった。一方、この実施形態では、連続した積和演算における加算（累積）処理のクリティカルパスは、図６の累積加算の実行の様子に示すように、（１）−ｂ桁合わせ数算出における（Ｅｄ−Ｅｍ（ｎ＋１））−Ｎの実行→（２）スワップ→（３）桁合わせ→（４）加算減算→（５）正規化数算出、又は（２）スワップ→（３）桁合わせ→（４）加算減算→（５）正規化数算出→（６）正規化となる。これは、桁合わせ数の算出を先行して実行するため正規化と並列実行できるためである。すなわち、図６に示すように（１）桁合わせ数の算出と（６）正規化の処理が並行に実行される。このように本実施形態によれば、連続した積和演算における加算（累積）処理のクリティカルパスを短縮することができる。
【００３１】
これにより、スループット“１”の積和演算器を構成した場合のクリティカルパスが短縮でき、浮動小数点積和演算の演算時間を従来に比べて短縮することができるようになる。
【００３２】
【発明の効果】
以上説明したように、本発明によれば、先行する積和演算の正規化処理が完了する前に、この正規化処理と並行して次に実行する積和演算に必要な桁合わせ数の算出の実行を開始するようにしたので、連続した積和演算における加算（累積）処理のクリティカルパスを短縮することができる。これにより、スループット１の積和演算器を構成した場合のクリティカルパスが短縮され、浮動小数点積和演算の演算時間を短縮することができる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係わる浮動小数点積和演算器の構成を示す図である。
【図２】積和演算の実行のタイミングを示す図である。
【図３】従来の積和演算における加算処理の動作タイミングを示す図である。
【図４】この実施形態における積和演算における加算処理の動作タイミングを示す図である。
【図５】従来における累積加算の実行のタイミングを示す図である。
【図６】この実施形態における累積加算の実行のタイミングを示す図である。
【図７】従来の浮動小数点積和演算器の構成を示す図である。
【図８】従来の他の浮動小数点積和演算器の構成を示す図である。
【図９】従来の積和演算における乗算処理の内容を示す図である。
【図１０】従来の積和演算における加算処理の内容を示す図である。
【図１１】従来の積和演算の実行のタイミングを示す図である。
【符号の説明】
２，３，１１０，１１１，２０２，２１０，２１１  加算器
４，５，１０５〜１０８，１１２〜１１４，２０５，２０６，２０９，２１３〜２１５  レジスタ
１００  乗算器
１０１  乗算ツリー
１０２  ブースデコーダ
１０３  最終加算器
１０４，２０３  正規化回路
２０１  シフタ
２０４  先行０検出回路
２１２  セレクタ
【図１】
0003600026.tif 000002
【図２】
0003600026.tif 000003
【図３】
0003600026.tif 000004
【図４】
0003600026.tif 000005
【図５】
0003600026.tif 000006
【図６】
0003600026.tif 000007
【図７】
0003600026.tif 000008
【図８】
0003600026.tif 000009
【図９】
0003600026.tif 000010
【図１０】
0003600026.tif 000011
【図１１】
0003600026.tif 000012