(57)【要約】【課題】浮動小数点数フォーマット以外の数値フォーマットでインターフェースでき、浮動小数点数で演算部を動作させ、正しい演算結果を得るだけでなく、オーバーフローの様な、エラーのハンドリングを最小時間で実現できる数値演算プロセッサを提供する。【解決手段】数値演算プロセッサ３は、内部データバスＳ４に接続された変換部８およびリミット部１２を備え、入力がローカルデータバスＳ１０であると共に出力がリミット部となる逆変換部９を備え、制御レジスタ部５に、変換部と逆変換部の動作を制御する変換制御ビット１０と、逆変換部の状態出力を保持する変換状態ビット１１と、リミット部の動作を制御するリミット部制御ビット１３と、リミット部に与える境界値であるリミットデータ１４を備えており、そして変換制御ビットとリミット部制御ビットの論理積をとるＡＮＤ１５を備える。【選択図】　　　図１
2004110665.tif 000002
【特許請求の範囲】
【請求項１】
データバス（Ｓ１）、アドレスバス（Ｓ２）およびストローブバス（Ｓ３）を用いてマイクロプロセッサ（１）とメモリ（２）に接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部（４）と、命令に従ってデータを演算する演算部（７）と、データを書き込むデータレジスタ部（６）と、当該演算部（７）などの内部の演算の動作モードを決定する制御レジスタ部（５）とを備えた数値演算プロセッサ（３）において、
前記制御レジスタ部（５）に、前記マイクロプロセッサ（１）からアクセス可能である、変換部（８）と逆変換部（９）の動作を制御する変換制御ビット（１０）と、逆変換部（９）の状態出力を保持する変換状態ビット（１１）と、リミット部（１２）の動作を制御するリミット部制御ビット（１３）と、リミット部（１２）に与える境界値であるリミットデータ（１４）を備え、内部データバス（Ｓ４）を入力とし、データレジスタ部（６）や演算部（７）が接続されたローカルデータバス（Ｓ１０）を出力とし、変換制御ビット（１０）の出力とマイクロプロセッサアクセス信号（Ｓ１１）の状態により、入力された数値フォーマットを浮動小数点フォーマットに変換する変換部（８）を備え、ローカルデータバスを入力とし、出力がリミット部（１２）への入力となり変換制御ビット（１０）の出力とマイクロプロセッサアクセス信号（Ｓ１１）の状態により、入力された浮動小数点フォーマットを数値フォーマットへ逆変換し、かつ、逆変換時にオーバーフロー等の状態を出力する逆変換部（９）を備え、逆変換部（９）の出力を入力とし、内部データバスを出力とし、リミット部制御ビット（１３）と変換制御ビット（１０）の論理積をとるＡＮＤ（１５）を備え、ＡＮＤの状態により、入力がリミットデータを越えない場合はそのまま出力し、リミットデータを越える場合はリミットデータに置き換え出力するリミット部（１２）を備えることを特徴とする数値演算プロセッサ。
【請求項２】
データバス（Ｓ１）、アドレスバス（Ｓ２）およびストローブバス（Ｓ３）を用いてマイクロプロセッサ（１）とメモリ（２）に接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部（４）と、命令に従ってデータを演算する演算部（７）と、データを書き込むデータレジスタ部（６）と、当該演算部（７）などの内部の演算の動作モードを決定する制御レジスタ部（５）とを備えた数値演算プロセッサ（３）において、
前記制御レジスタ部（５）に、前記マイクロプロセッサ（１）からアクセス可能である、変換部（８）と逆変換部（９）の動作を制御する変換制御ビット（１０）と、逆変換部（９）の状態出力を保持する変換状態ビット（１１）と、スケーリング部（１６）の動作を制御するスケーリング部制御ビット（１７）と、スケーリング部に与える指数のバイアス値であるスケーリングデータ（１８）を備え、内部データバス（Ｓ４）を入力とし、データレジスタ部（６）や演算部（７）が接続されたローカルデータバス（Ｓ１０）を出力とし、変換制御ビット（１０）の出力とマイクロプロセッサアクセス信号（Ｓ１１）の状態により、入力された数値フォーマットを浮動小数点フォーマットに変換する変換部（８）を備え、ローカルデータバスを入力とし、出力が逆変換部（９）の入力となり、スケーリング部制御ビット（１７）と変換制御ビット（１０）との論理積をとるＡＮＤ（１９）を備え、ＡＮＤの状態により、入力された浮動小数点数の指数部分とスケーリングデータを加算処理するスケーリング部（１６）を備え、スケーリング部（１６）の出力を入力とし、出力を内部データバスとし、変換制御ビット（１０）の出力とマイクロプロセッサアクセス信号（Ｓ１１）の状態により、入力された浮動小数点フォーマットを数値フォーマットへ逆変換し、かつ、逆変換時にオーバーフロー等の状態を出力する逆変換部（９）を備えることを特徴とする数値演算プロセッサ。
【請求項３】
データバス（Ｓ１）、アドレスバス（Ｓ２）およびストローブバス（Ｓ３）を用いてマイクロプロセッサ（１）とメモリ（２）に接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部（４）と、命令に従ってデータを演算する演算部（７）と、データを書き込むデータレジスタ部（６）と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部（５）とを備えた数値演算プロセッサ（３）において、
前記制御レジスタ部（５）に、前記マイクロプロセッサ（１）からアクセス可能である、リミット部（１２）の動作を制御するリミット部制御ビット（１３）と、リミット部（１２）に与える境界値であるリミットデータ（１４）と、スケーリング部（１６）の動作を制御するスケーリング部制御ビット（１７）と、スケーリング部（１６）に与えるバイアス値であるスケーリングデータ（１８）を備え、逆変換部（９）の出力を入力とし、内部データバスを出力とし、リミット部制御ビット（１３）と変換制御ビット（１０）の論理積をとる第１ＡＮＤ（１５）を備え、ＡＮＤの状態により、入力がリミットデータを越えない場合はそのまま出力し、リミットデータを越える場合はリミットデータに置き換え出力するリミット部（１２）を備え、ローカルデータバスを入力とし、出力が逆変換部の入力となり、スケーリング部制御ビット（１７）と変換制御ビット（１０）との論理積をとる第２ＡＮＤ（１９）を備え、ＡＮＤの状態により、入力された浮動小数点数の指数部分とスケーリングデータを加算処理するスケーリング部（１６）を備えることを特徴とする数値演算プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は数値演算プロセッサに関し、特に異なる数値フォーマット間の変換回路を備える数値演算プロセッサに関するものである。
【０００２】
【従来の技術】
従来の数値演算プロセッサは、例えば図４のようになっている。図４は従来技術を示す数値演算プロセッサのブロック図である。図において、マイクロプロセッサ１とメモリ２、数値演算プロセッサ３はデータバスＳ１とアドレスバスＳ２、ストローブバスＳ３で接続されている。数値演算プロセッサ３は、データバスＳ１と接続された内部データバスＳ４に命令もしくはデータを読込み数値演算を制御する制御部４と、命令に従ってデータを演算する演算部７、データを書き込むデータレジスタ部６、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部５、がそれぞれ接続されている。アドレスバスと接続された内部アドレスバスとＳ５と、ストローブバスＳ３と接続された内部ストローブバスＳ４は、制御部４と接続されている。
【０００３】
数値演算プロセッサ３はコプロセッサ、Ｉ／Ｏデバイスのどちらで動作していても、内部のリソースの制御と、マイクロプロセッサ１とのインターフェースは制御部４で行なわれる。演算部７の動作モードなどを設定する制御レジスタ部５へのデータのリード、ライトは、制御レジスタ部ストローブバスＳ７で制御される。同様に、演算部７のデータとなるデータレジスタ部へのデータのリード、ライトは、データレジスタ部ストローブバスＳ８で制御される。演算部７のデータの入出力等の動作は、演算部ストローブバスＳ９で制御される。
【０００４】
上記の構成において、数値演算プロセッサ３はデータレジスタ部６に書き込まれたデータを入力として演算部で浮動小数点数による演算を実行し、結果をデータレジスタ部６に書き込む。しかし、演算部７は浮動小数点数を演算するためのハードウェアであり、２進整数など、そのほかのフォーマットはそのままでは利用できない。そのため、フォーマット変換命令を用意し、命令で変換作業を行なった後、浮動小数点数による演算を実行させていた。そして、演算結果もフォーマット変換命令により逆変換を行なった後に取得していた。ここで、その他の数値フォーマットから浮動小数点数フォーマットへは変換、浮動小数点数からその他の数値フォーマットへは逆変換と定義し、本明細書ではこの定義に従い説明する。
浮動小数点数を扱うことができないマイクロプロセッサでは、演算のダイナミックレンジはレジスタが取り扱えるサイズで決定される。このようなマイクロプロセッサで、複数の演算式を処理する場合、最終的な結果は整数のサイズにはいるが、途中の結果がオーバーフローをするようなことがある。この場合、演算式の順番の変更や、データをスケーリングして演算するといった調整を行ない、さらにエラーチェックし、演算の途中でのオーバーフローを防いでいる（例えば、特許文献１に記載）。
【０００５】
【特許文献１】
特許第３２８６９９０号（第３頁、第１図）
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の数値演算プロセッサにおいては、例えば、整数が表現できる数を越える浮動小数点数から、整数への逆変換でオーバーフローを生じると、例外を発生し、著しく処理性能を低下させることになる。また、組み込み機器での演算処理では、得られた結果をある境界値以内に制限をかけることを良く行なうが、数値演算プロセッサ単体でこのような処理を行なうことができなかったので、変換後の演算結果をマイクロプロセッサが読み、マイクロプロセッサで制限処理を実行していた。さらに、ｓｉｎ関数など結果が小さな数となることが予測される場合には、演算結果を逆変換した後に精度を確保することが出来ないので、マイクロプロセッサは、要求する精度の演算結果を得ることが出来なかった。このような場合、ある乗数をかけスケーリングする事になるが、この処理は余分な数値演算プロセッサでの乗算が必要になり、無駄な処理時間を消費していた。
【０００７】
したがって、本発明の第１の目的は、浮動小数点数フォーマット以外の数値フォーマットでインターフェースでき、浮動小数点数で演算部を動作させ、正しい演算結果を得るだけでなく、オーバーフローの様な、エラーのハンドリングを最小時間で実現できる数値演算プロセッサを提供することである。
また、本発明の第２の目的は、浮動小数点数フォーマットから任意の数値フォーマットへの変換時に、ある境界値で制限をかける様な後処理を行えること、あらかじめ結果の値域とその大きさが予測される場合には、演算後の浮動小数点数にスケーリングを行ない、逆変換時にも十分な精度を確保できる数値演算プロセッサを提供することである。
【０００８】
【課題を解決するための手段】
上記問題を解決するため、請求項１記載の数値演算プロセッサは、データバス、アドレスバスおよびストローブバスを用いてマイクロプロセッサとメモリに接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部と、命令に従ってデータを演算する演算部と、データを書き込むデータレジスタ部と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部とを備えた数値演算プロセッサにおいて、制御レジスタ部に、マイクロプロセッサからアクセス可能である、変換部と逆変換部の動作を制御する変換制御ビットと、逆変換部の状態出力を保持する変換状態ビットと、リミット部の動作を制御するリミット部制御ビットと、リミット部に与える境界値であるリミットデータを備え、内部データバスを入力とし、データレジスタ部や演算部が接続されたローカルデータバスを出力とし、変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された数値フォーマットを浮動小数点フォーマットに変換する変換部を備え、ローカルデータバスを入力とし、出力がリミット部への入力となり変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された浮動小数点フォーマットを数値フォーマットへ逆変換し、かつ、逆変換時にオーバーフロー等の状態を出力する逆変換部を備え、逆変換部の出力を入力とし、内部データバスを出力とし、リミット部制御ビットと変換制御ビットの論理積をとるＡＮＤを備え、ＡＮＤの状態により、入力がリミットデータを越えない場合はそのまま出力し、リミットデータを越える場合はリミットデータに置き換え出力するリミット部を備えたものである。
【０００９】
また、請求項２記載の数値演算プロセッサは、データバス、アドレスバスおよびストローブバスを用いてマイクロプロセッサとメモリに接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部と、命令に従ってデータを演算する演算部と、データを書き込むデータレジスタ部と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部とを備えた数値演算プロセッサにおいて、前記制御レジスタ部に、前記マイクロプロセッサからアクセス可能である、変換部と逆変換部の動作を制御する変換制御ビットと、逆変換部の状態出力を保持する変換状態ビットと、スケーリング部の動作を制御するスケーリング部制御ビットと、スケーリング部に与える指数のバイアス値であるスケーリングデータを備え、内部データバスを入力とし、データレジスタ部６や演算部７が接続されたローカルデータバスを出力とし、変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された数値フォーマットを浮動小数点フォーマットに変換する変換部を備え、ローカルデータバスを入力とし、出力が逆変換部の入力となり、スケーリング部制御ビットと変換制御ビットとの論理積をとるＡＮＤを備え、ＡＮＤの状態により、入力された浮動小数点数の指数部分とスケーリングデータを加算処理するスケーリング部を備え、スケーリング部の出力を入力とし、出力を内部データバスとし、変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された浮動小数点フォーマットを数値フォーマットへ逆変換し、かつ、逆変換時にオーバーフロー等の状態を出力する逆変換部を備えたものである。
【００１０】
請求項３記載の数値演算プロセッサは、データバス、アドレスバスおよびストローブバスを用いてマイクロプロセッサとメモリに接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部と、命令に従ってデータを演算する演算部と、データを書き込むデータレジスタ部と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部とを備えた数値演算プロセッサにおいて、前記制御レジスタ部に、前記マイクロプロセッサからアクセス可能である、リミット部の動作を制御するリミット部制御ビットと、リミット部に与える境界値であるリミットデータと、スケーリング部の動作を制御するスケーリング部制御ビットと、スケーリング部に与えるバイアス値であるスケーリングデータを備え、逆変換部の出力を入力とし、内部データバスを出力とし、リミット部制御ビットと変換制御ビットの論理積をとる第１ＡＮＤを備え、ＡＮＤの状態により、入力がリミットデータを越えない場合はそのまま出力し、リミットデータを越える場合はリミットデータに置き換え出力するリミット部を備え、ローカルデータバスを入力とし、出力が逆変換部の入力となり、スケーリング部制御ビットと変換制御ビットとの論理積をとる第２ＡＮＤを備え、ＡＮＤの状態により、入力された浮動小数点数の指数部分とスケーリングデータを加算処理するスケーリング部を備えたものである。
【００１１】
【発明の実施の形態】
以下、本発明の実施例について図に基づいて説明する。
図１は本発明の第１実施例を示す数値演算プロセッサのブロック図である。なお、本発明の構成要素が従来技術と同じものについては同一符号を付してその説明を省略し、異なる点のみ説明する。
図１において、８は変換部、９は逆変換部、１０は変換制御ビット、１１は変換状態ビット、１２はリミット部、１３はリミット部制御ビット、１４はリミットデータ、１６はＡＮＤ、Ｓ１０はローカルデータバスである。
第１実施例が従来技術と異なる点は以下のとおりである、
すなわち、数値演算プロセッサ３において、内部データバスＳ４に接続された変換部８およびリミット部１２を備え、また、入力がローカルデータバスＳ１０であると共に出力がリミット部となる逆変換部９を備え、さらに制御レジスタ部５に、変換部と逆変換部の動作を制御する変換制御ビット１０と、逆変換部の状態出力を保持する変換状態ビット１１と、リミット部の動作を制御するリミット部制御ビット１３と、リミット部に与える境界値であるリミットデータ１４を備えており、そして変換制御ビットとリミット部制御ビットの論理積をとるＡＮＤ１５を備える点が、従来と異なっている。
【００１２】
本発明の数値演算プロセッサ３で、整数を与え、浮動小数点数で演算し、結果を整数で得る様子を、データの流れを中心に説明する。
そのためには、変換制御ビット１０を設定して、変換部８と逆変換部９を動作させる必要がある。リミット部制御ビット１３は設定せずに説明する。まず、マイクロプロセッサ１が演算部７の入力となる整数データをデータレジスタ部６に書き込む。制御部４は変換部８の動作許可信号である、マイクロプロセッサアクセス信号Ｓ１１をアクティブにする。変換部８では、マイクロプロセッサアクセス信号Ｓ１１と変換制御ビット１０の論理積をとり、真の時に変換作業を行ない、整数データから符号と、指数、仮数を計算し、
符号×１．仮数×２ｎ　　　　　（但し、ｎ：指数）
のフォーマットの浮動小数点数に変換する。この変換後の浮動小数点数を用いて、演算部７は演算を行ない、結果をデータレジスタ部６に格納する。マイクロプロセッサ１がこのデータレジスタ部６の結果を読み出すときも、マイクロプロセッサアクセス信号Ｓ１１がアクティブになる。逆変換部９でも、マイクロプロセッサアクセス信号Ｓ１１と変換制御ビット１０の論理積をとり、真の時に浮動小数点数の符号と、指数、仮数を利用して逆変換作業を行ない、浮動小数点数を整数データに変換する。例えば単精度の浮動小数点数フォーマットでは、
１．仮数×２１２７≧単精度浮動小数点フォーマット≧―１．仮数×２―１２６
の範囲の大きさを扱えるが、符号付３２ビット整数の場合には、
２３２−１≧符号付３２ビット整数≧―２３２＋１
の範囲の大きさしか扱えない。そのため、逆変換しようとする浮動小数点数が、整数データで表現できない場合、逆変換部９はオーバーフローを出力する。これは変換状態ビット１１に結果として保持される。逆変換部９はオーバーフローが生じたときには、オーバーフローした結果の代わりに、最大の整数データを出力する。つぎに、リミット部制御ビット１３を設定した場合である。この場合、逆変換部９までは動作は等しい。リミット部１２では、逆変換された整数データをリミットデータ１４と比較し、小さければそのまま出力し、大きい場合はリミットデータ１４をかわりに出力する。
【００１３】
本発明の題１実施例における数値演算プロセッサは上記構成にしたので、オーバーフロー時のエラー処理とリミット処理を、数値演算プロセッサで実行するため、従来プロセッサにより行なわれていた処理を省略でき、処理時間の短縮が行なえるという効果を有する。さらに、リミット処理により、マイクロプロセッサの要求する精度を持ったダイナミックレンジを簡単に得られるという効果を併せ持っている。
【００１４】
本発明の第２実施例の数値演算プロセッサを図２で説明する。
図２は本発明の第２実施例を示す数値演算プロセッサのブロック図である。
図において、１６はスケーリング部、１７はスケーリング部制御ビット、１８はスケーリングデータ、１９はＡＮＤである。
第２実施例が従来技術と異なる点は以下のとおりである、
すなわち、数値演算プロセッサ３において、内部データバスＳ４とローカルデータバスＳ１０に接続された変換部８と、ローカルデータバスＳ１０を入力とするスケーリング部１６と、内部データバスとスケーリング部１６に接続された逆変換部９を備え、また、制御レジスタ部に、変換部と逆変換部の動作を制御する変換制御ビット１０と、逆変換部の状態出力を保持する変換状態ビット１１と、スケーリング部の動作を制御するスケーリング部制御ビット１７と、スケーリング部に与える指数のバイアス値であるスケーリングデータ１８を備え、さらにスケーリング部制御ビットと変換制御ビットの論理積をとるＡＮＤ１９を備える点が、従来と異なっている。
【００１５】
本発明の数値演算プロセッサ３で、整数を与え、浮動小数点数で演算し、結果を整数で得る様子を、データの流れを中心に説明する。
そのためには、変換制御ビット１０を設定して、変換部８と逆変換部９を動作させる必要がある。スケーリング部制御ビット１７は設定せずに説明する。まず、マイクロプロセッサ１が演算部７の入力となる整数データをデータレジスタ部６に書き込む。制御部４は変換部８の動作許可信号である、マイクロプロセッサアクセス信号Ｓ１１をアクティブにする。変換部８では、マイクロプロセッサアクセス信号Ｓ１１と変換制御ビット１０の論理積をとり、真の時に変換作業を行ない、整数データを浮動小数点数に変換する。この変換後の浮動小数点数を用いて、演算部７は演算を行ない、結果をデータレジスタ部６に格納する。マイクロプロセッサ１がこのデータレジスタ部６の結果を読み出すときも、マイクロプロセッサアクセス信号Ｓ１１がアクティブになる。スケーリング部１６は動作しないため、データレジスタのデータはスルーされ逆変換部９に入力される。逆変換部９でも、マイクロプロセッサアクセス信号Ｓ１１と変換制御ビット１０の論理積をとり、真の時に逆変換作業を行ない、浮動小数点数を整数データに変換する。ここで、浮動小数点数が整数データで表現できるよりも大きい場合、逆変換部９はオーバーフローを出力する。これは変換状態ビット１１に結果として保持される。逆変換部９はオーバーフローが生じたときには、オーバフローした結果のかわりに最大の整数データを出力する。つぎに、スケーリング部制御ビット１７を設定した場合である。例えば、ｓｉｎ関数のように、値域が
−１　≦　ｓｉｎ　≦　１
となる関数の場合、そのまま逆変換した場合結果は±１と０になり、精度が落ちるだけでなく、正しい結果を得ることができない。スケーリング部１６によりスケーリングを行なうことでこれを防止する。スケーリング部１６では浮動小数点フォーマットの指数部分を取り扱う。スケーリングを行ないたい浮動小数点数の指数に、スケーリングデータ１８を加算することにより、２のｎ乗でスケーリングしたことになる。
【００１６】
本発明の題３実施例における数値演算プロセッサは上記構成にしたので、オーバーフロー時のエラー処理とスケーリング処理を、数値演算プロセッサで実行するため、従来プロセッサにより行なわれていた処理を省略でき、処理時間の短縮が行なえるという効果を有する。さらに、ｓｉｎ関数のように、結果の値域と大きさがあらかじめ予測できる場合には、演算後の浮動小数点数に２のｎ乗をかけるスケーリングを行えるので、逆変換時にも十分な精度を得ることができるという効果を併せ持っている。
【００１７】
本発明の第３実施例の数値演算プロセッサを図３で説明する。
図３は本発明の第３実施例を示す数値演算プロセッサのブロック図である。
図において、１６はスケーリング部、１７はスケーリング部制御ビット、１８はスケーリングデータ、１９はＡＮＤである。
第３実施例が従来技術と異なる点は以下のとおりである、
すなわち、数値演算プロセッサ３において、内部データバスＳ４とローカルデータバスＳ１０に接続された変換部８と、ローカルデータバスを入力とするスケーリング部１６と、内部データバスに接続されたリミット部１２と、リミット部１２とスケーリング部１６に接続された逆変換部９とを備え、また、制御レジスタ部に、変換部８と逆変換部９の動作を制御する変換制御ビット１０と、逆変換部９の状態出力を保持する変換状態ビット１１と、リミット部１２の動作を制御するリミット部制御ビット１３と、リミット部１２に与える境界値であるリミットデータ１４と、スケーリング部１６の動作を制御するスケーリング部制御ビット１７と、スケーリング部１６に与える指数のバイアス値であるスケーリングデータ１８を備え、さらに変換制御ビットとリミット部制御ビットの論理積をとるＡＮＤ１５を備え、そして、スケーリング部制御ビット１７と変換制御ビットの論理積をとるＡＮＤ１９を備える点が、従来と異なっている。
【００１８】
本発明の数値演算プロセッサで、整数を与え、浮動小数点数で演算し、結果を整数で得る様子をデータの流れを中心に説明する。
そのためには、変換制御ビット１０を設定して、変換部８と逆変換部９を動作させる必要がある。リミット部制御ビット１３とスケーリング部制御ビット１７は設定せずに説明する。まず、マイクロプロセッサ１が演算部７の入力となる整数データをデータレジスタ部６に書き込む。制御部４は変換部８の動作許可信号である、マイクロプロセッサアクセス信号Ｓ１１をアクティブにする。変換部８では、マイクロプロセッサアクセス信号Ｓ１１と変換制御ビット１０の論理積をとり、真の時に変換作業を行ない、整数データを浮動小数点数に変換する。この変換後の浮動小数点数を用いて、演算部７は演算を行ない、結果をデータレジスタ部６に格納する。マイクロプロセッサ１がこのデータレジスタ部６の結果を読み出すときも、マイクロプロセッサアクセス信号Ｓ１１がアクティブになる。逆変換部９でも、マイクロプロセッサアクセス信号Ｓ１１と変換制御ビット１０の論理積をとり、真の時に逆変換作業を行ない、浮動小数点数を整数データに変換する。ここで、浮動小数点数が整数データで表現できるよりも大きい場合、逆変換部９はオーバーフローを出力する。これは変換状態ビット１１に結果として保持される。逆変換部９はオーバーフローが生じたときには、オーバーフローした結果の代わりに、最大の整数データを出力する。リミット部制御ビット１３のみを設定した場合は、逆変換部９までは動作は同じである。リミット部１２では、逆変換された整数データをリミットデータ１４と比較し、小さければそのまま出力し、大きい場合はリミットデータ１４を変わりに出力する。つぎに、スケーリング部制御ビット１７のみを設定した場合である。スケーリング部１６では浮動小数点フォーマットの指数部分を取り扱う。スケーリングを行ないたい浮動小数点数の指数に、スケーリングデータ１８を加算することにより、２のｎ乗でスケーリングしたことになる。最後に、リミット部制御ビット１３とスケーリング部制御ビット１７を両方とも設定した場合である。スケーリングを行ないたい浮動小数点数の指数に、スケーリングデータ１８を加算することにより、２のｎ乗でスケーリングする。このスケーリングされたデータを逆変換し、リミット部１２では逆変換された整数データをリミットデータ１４と比較し、小さければそのまま出力し、大きい場合はリミットデータ１４を変わりに出力する。
【００１９】
本発明の題３実施例における数値演算プロセッサは上記構成にしたので、オーバーフロー時のエラー処理とリミット処理、スケーリング処理を、数値演算プロセッサで実行するため、従来プロセッサにより行なわれていた処理を省略でき、処理時間の短縮が行えるという効果を有する。
さらに、リミット処理により、マイクロプロセッサ１の要求する精度を持ったダイナミックレンジを簡単に得られるとと共に、ｓｉｎ関数のように、結果の値域と大きさがあらかじめ予測できる場合には、演算後の浮動小数点数に２のｎ乗をかけるスケーリングを行えるので、逆変換時にも十分な精度を得ることができるという効果を併せ持っている。
【００２０】
【発明の効果】
請求項１記載の数値演算プロセッサによれば、データバス、アドレスバスおよびストローブバスを用いてマイクロプロセッサとメモリに接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部と、命令に従ってデータを演算する演算部と、データを書き込むデータレジスタ部と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部とを備えた数値演算プロセッサにおいて、制御レジスタ部に、マイクロプロセッサからアクセス可能である、変換部と逆変換部の動作を制御する変換制御ビットと、逆変換部の状態出力を保持する変換状態ビットと、リミット部の動作を制御するリミット部制御ビットと、リミット部に与える境界値であるリミットデータを備え、内部データバスを入力とし、データレジスタ部や演算部が接続されたローカルデータバスを出力とし、変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された数値フォーマットを浮動小数点フォーマットに変換する変換部を備え、ローカルデータバスを入力とし、出力がリミット部への入力となり変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された浮動小数点フォーマットを数値フォーマットへ逆変換し、かつ、逆変換時にオーバーフロー等の状態を出力する逆変換部を備え、逆変換部の出力を入力とし、内部データバスを出力とし、リミット部制御ビットと変換制御ビットの論理席をとるＡＮＤを備え、ＡＮＤの状態により、入力がリミットデータを越えない場合はそのまま出力し、リミットデータを越える場合はリミットデータに置き換え出力するリミット部を備えたため、オーバーフロー時のエラー処理とリミット処理を、数値演算プロセッサで実行するため、従来プロセッサにより行なわれていた処理を省略でき、処理時間の短縮が行なうことができる。
さらに、リミット処理により、マイクロプロセッサの要求する精度を持ったダイナミックレンジを簡単に得ることが可能な数値演算プロセッサを提供することができる。
【００２１】
請求項２記載の数値演算プロセッサによれば、データバス、アドレスバスおよびストローブバスを用いてマイクロプロセッサとメモリに接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部と、命令に従ってデータを演算する演算部と、データを書き込むデータレジスタ部と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部とを備えた数値演算プロセッサにおいて、前記制御レジスタ部に、前記マイクロプロセッサからアクセス可能である、変換部と逆変換部の動作を制御する変換制御ビットと、逆変換部の状態出力を保持する変換状態ビットと、スケーリング部の動作を制御するスケーリング部制御ビットと、スケーリング部に与える指数のバイアス値であるスケーリングデータを備え、内部データバスを入力とし、データレジスタ部６や演算部７が接続されたローカルデータバスを出力とし、変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された数値フォーマットを浮動小数点フォーマットに変換する変換部を備え、ローカルデータバスを入力とし、出力が逆変換部の入力となり、スケーリング部制御ビットと変換制御ビットとの論理席をとるＡＮＤを備え、ＡＮＤの状態により、入力された浮動小数点数の指数部分とスケーリングデータを加算処理するスケーリング部を備え、スケーリング部の出力を入力とし、出力を内部データバスとし、変換制御ビットの出力とマイクロプロセッサアクセス信号の状態により、入力された浮動小数点フォーマットを数値フォーマットへ逆変換し、かつ、逆変換時にオーバーフロー等の状態を出力する逆変換部を備えたため、オーバーフロー時のエラー処理とスケーリング処理を、数値演算プロセッサで実行するため、従来プロセッサにより行なわれていた処理を省略でき、処理時間の短縮が行なうことができる。
さらに、ｓｉｎ関数のように、結果の値域と大きさがあらかじめ予測できる場合には、演算後の浮動小数点数に２のｎ乗をかけるスケーリングを行えるので、逆変換時にも十分な精度を得ることが可能な数値演算プロセッサを提供することができる。
【００２２】
請求項３記載の数値演算プロセッサによれば、データバス、アドレスバスおよびストローブバスを用いてマイクロプロセッサとメモリに接続されると共に、命令もしくはデータを読込み数値演算を制御する制御部と、命令に従ってデータを演算する演算部と、データを書き込むデータレジスタ部と、当該演算部などの内部の演算の動作モードを決定する制御レジスタ部とを備えた数値演算プロセッサにおいて、前記制御レジスタ部に、前記マイクロプロセッサからアクセス可能である、リミット部の動作を制御するリミット部制御ビットと、リミット部に与える境界値であるリミットデータと、スケーリング部の動作を制御するスケーリング部制御ビットと、スケーリング部に与えるバイアス値であるスケーリングデータを備え、逆変換部の出力を入力とし、内部データバスを出力とし、リミット部制御ビットと変換制御ビットの論理席をとる第１ＡＮＤを備え、ＡＮＤの状態により、入力がリミットデータを越えない場合はそのまま出力し、リミットデータを越える場合はリミットデータに置き換え出力するリミット部を備え、ローカルデータバスを入力とし、出力が逆変換部の入力となり、スケーリング部制御ビットと変換制御ビットとの論理席をとる第２ＡＮＤを備え、ＡＮＤの状態により、入力された浮動小数点数の指数部分とスケーリングデータを加算処理するスケーリング部を備えたため、オーバーフロー時のエラー処理とリミット処理、スケーリング処理を、数値演算プロセッサで実行するため、従来プロセッサにより行なわれていた処理を省略でき、処理時間の短縮が行なうことができる。
さらに、リミット処理により、マイクロプロセッサの要求する精度を持ったダイナミックレンジを簡単に得られると共に、ｓｉｎ関数のように、結果の値域と大きさがあらかじめ予測できる場合には、演算後の浮動小数点数に２のｎ乗をかけるスケーリングを行えるので、逆変換時にも十分な精度を得ることが可能な数値演算プロセッサを提供することができる。
【図面の簡単な説明】
【図１】本発明の第１実施例を示す数値演算プロセッサのブロック図
【図２】本発明の第２実施例を示す数値演算プロセッサのブロック図
【図３】本発明の第３実施例を示す数値演算プロセッサのブロック図
【図４】従来技術を示す数値演算プロセッサのブロック図
【符号の説明】
１：マイクロプロセッサ
２：メモリ
３：数値演算プロセッサ
４：制御部
５：制御レジスタ部
６：データレジスタ部
７：演算部
８：変換部
９：逆変換部
１０：変換制御ビット
１１：変換状態ビット
１２：リミット部
１３：リミット部制御ビット
１４：リミットデータ
１５：ＡＮＤ（第１ＡＮＤ）
１６：スケーリング部
１７：スケーリング部制御ビット
１８：スケーリングデータ
１９：ＡＮＤ（第２ＡＮＤ）
Ｓ１：データバス
Ｓ２：アドレスバス
Ｓ３：ストローブバス
Ｓ４：内部データバス
Ｓ５：内部アドレスバス
Ｓ６：内部ストローブバス
Ｓ７：制御レジスタ部ストローブバス
Ｓ８：データレジスタ部ストローブバス
Ｓ９：演算部ストローブバス
Ｓ１０：ローカルデータバス
Ｓ１１：マイクロプロセッサアクセス信号
【図１】
2004110665.tif 000003
【図２】
2004110665.tif 000004
【図３】
2004110665.tif 000005
【図４】
2004110665.tif 000006