(57)【要約】  【課題】従来の演算処理装置は、複数の演算種別が必要であった場合に個別に回路を構成していたために、回路規模が大であった。また、１つの演算種別のみの場合であっても、演算個所により演算精度が異なる場合は個別に回路を構成しているため、同様に回路規模が増大する傾向があった。  【解決手段】演算処理の過程を前処理、近似多項式選択、近似演算処理、後処理の各工程に分割し、入力される演算種別信号に適合した前処理、近似多項式群および後処理を選択し、さらに選択された近似多項式群の中から入力された演算精度信号に相当する精度の近似多項式を選択して近似演算処理を行う。【選択図】図１
2005275626.tif 000002
【特許請求の範囲】
【請求項１】
演算対象となる入力データおよび演算種別を示す演算種別信号を入力し、
前記演算種別信号が示す演算種別に適合する前処理を行い、
前記演算種別信号が示す演算種別に対応する近似多項式を選択し、
前記前処理の結果を基に、前記選択された近似多項式を用いて近似演算処理を行い、
前記近似演算処理の結果に対して前記演算種別信号が示す演算種別に適合する後処理を行う、
ことを特徴とする近似演算処理方法。
【請求項２】
請求項１に記載の近似演算処理方法において、
前記演算種別信号が示す演算種別に対応して複数の近似多項式についての係数データを保持する係数テーブルを備え、
近似演算処理の精度を示す演算精度信号を入力し、
前記近似多項式の選択は、前記係数テーブルの中から前記演算精度信号が示す精度に相当する精度の近似多項式に対応する係数データを選択することにより行う、
ことを特徴とする近似演算処理方法。
【請求項３】
請求項１に記載の近似演算処理方法において、
前記入力データを仮数部と２を底とする指数部に分解し、
前記入力データの値をｘ、前記仮数部の値をｍ、２を底とする指数部の値をｅ、底２をｅ乗した値をｚとすると、値ｍは0.5以上かつ1未満の値をとり、値ｍと値ｚとを乗算した値ｍ＊ｚが、前記入力データの値ｘに等しくなるように値ｍおよび値ｅを正規化し、
前記正規化された値ｍおよび値ｅを基に、前記前処理、前記近似演算処理、および、前記後処理を行う、
ことを特徴とする近似演算処理方法。
【請求項４】
請求項１に記載の近似演算処理方法において、
前記近似演算処理の結果に対して、さらに、ニュートン法による近似演算処理を行い、
前記ニュートン法による近似演算処理の結果に対して前記後処理を行う
ことを特徴とする近似演算処理方法。
【請求項５】
演算対象となる入力データおよび演算種別を示す演算種別信号を入力する入力部と、
前記演算種別信号が示す演算種別に適合する前処理を行う前処理部と、
前記演算種別信号が示す演算種別に対応する近似多項式を選択する近似多項式選択部と、
前記前処理の結果を基に、前記選択された近似多項式を用いて近似演算処理を行う近似演算処理部と、
前記近似演算処理部の処理結果に対して前記演算種別信号が示す演算種別に適合する後処理を行う後処理部を備える、
ことを特徴とする近似演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関し、特に、演算の種別および演算精度を指定することにより、それに適合した近似多項式を選択して近似値演算を行う近似演算処理方法および近似演算処理装置に関する。
【背景技術】
【０００２】
従来の演算処理装置では、乗算を使用しないで関数演算を行う方法や各種演算テーブルを使用して演算処理装置の簡素化を図る技術が提案されている。従来の近似値計算による演算処理装置は、対数演算のみや平方根演算のみなど演算種別に特化しており、１つの演算処理装置で複数種類の演算を行う場合は、種類に対応した専用の回路を組み込んでいる。また、ニュートン法などを使用した繰り返し演算回路による従来の技術では、精度は高いが繰り返し乗算する必要がある為に時間がかかると共に、所要する時間が不定となり一定時間内で処理を行う必要がある場合には向いていなかった（特許文献１〜４参。）。
【特許文献１】特開昭６１−２８３９６２号公報（第４頁、第１図）
【特許文献２】特開平２−２１６５８３号公報（第７〜１０頁、第１〜９図）
【特許文献３】特開平５−６３９３号公報（第４〜１０頁、第１〜６図）
【特許文献４】特開２００２−２０７５９２号公報（第３〜８頁、第１〜１２図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、１つの演算処理装置で複数種類の演算が必要であった場合には個別に回路を構成していたために、回路規模が大であった。また、１つの演算処理装置に１つの演算種別のみが必要であっても、演算個所により演算精度が異なる場合は、演算箇所別に回路を構成していたため、同様に回路規模の増大に繋がっていた。
【０００４】
本発明は、演算処理装置に関し、演算の種別および演算精度を指定することにより、それに適合する近似演算を行うことができる近似演算処理方法および近似演算処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
第一の発明は、演算対象となる入力データおよび演算種別を示す演算種別信号を入力し、前記演算種別信号が示す演算種別に適合する前処理を行い、前記演算種別信号が示す演算種別に対応する近似多項式を選択し、前記前処理の結果を基に、前記選択された近似多項式を用いて近似演算処理を行い、前記近似演算処理の結果に対して前記演算種別信号が示す演算種別に適合する後処理を行う、ように構成した。
【０００６】
第一の発明によれば、従来は平方根演算、対数演算、逆数演算等の演算種別毎に専用の回路を用いて個別に演算処理部を設計していたものが、演算種別に固有な処理は前処理、および後処理として行い、核となる近似演算処理は演算種別に対応して選択された近似多項式を用いて演算処理を行うために共通化することが可能となり、演算処理装置のコスト削減および小型化を図ることができる。
【０００７】
第二の発明は、上記第一の発明で、前記演算種別信号が示す演算種別に対応して複数の近似多項式についての係数データを保持する係数テーブルを備え、近似演算処理の精度を示す演算精度信号を入力し、前記近似多項式の選択は、前記係数テーブルの中から前記演算精度信号が示す精度に相当する精度の近似多項式に対応する係数データを選択することにより行う、ように構成した。
【０００８】
第二の発明によれば、これまで演算装置毎に演算精度が固定だったものを、演算種別毎に複数の近似多項式についての係数データを保持し、指定演算精度を指定することにより、その精度に相当する近似多項式を選択して近似演算を行うことができ、演算装置の使用条件に応じた柔軟な近似演算処理が可能となる。
【０００９】
第三の発明は、上記第一の発明で、前記入力データを仮数部と２を底とする指数部に分解し、前記入力データの値をｘ、前記仮数部の値をｍ、２を底とする指数部の値をｅ、底２をｅ乗した値をｚとすると、値ｍは0.5以上かつ1未満の値をとり、値ｍと値ｚとを乗算した値ｍ＊ｚが、前記入力データの値ｘに等しくなるように値ｍおよび値ｅを正規化し、前記正規化された値ｍおよび値ｅを基に、前記前処理、前記近似演算処理、および、前記後処理を行う、ように構成した。
【００１０】
第三の発明によれば、入力データを正規化された仮数部と指数部に分解し、それらのデータを基に以降の前処理、近似演算処理、および後処理を行うもので、入力データの値に依存した特殊処理を排除することができ、演算処理を効率化できる。
【００１１】
第四の発明は、上記第一の発明で、前記近似演算処理の結果に対して、さらに、ニュートン法による近似演算処理を行い、前記ニュートン法による近似演算処理の結果に対して前記後処理を行う、ように構成した。
【００１２】
第四の発明によれば、上記の発明により実現される演算精度では不足がある場合は、処理時間の余裕の範囲内で、ニュートン演算処理を追加して必要な精度まで近似演算の精度を上げることが可能となる。
【発明の効果】
【００１３】
本発明によれば、演算種別に固有な処理は前処理および後処理として行い、近似演算処理としては演算種別に対応して選択された近似多項式を用いて演算処理を行うことにより、演算処理装置の核となる近似演算処理部を共通化して演算処理装置のコスト削減および小型化を図ると同時に、種々の演算種別に対応できる汎用性のある演算処理装置を構成することができる。
【００１４】
また、演算精度を指定することにより、その精度に相当する近似多項式を選択して近似演算を行うことができ、演算装置の使用条件に応じた柔軟な近似演算処理が可能となる。
【００１５】
さらに、必要ならば処理時間の余裕の範囲内でニュートン演算処理を追加して、必要な精度まで近似演算の精度を上げることが可能となる。
【発明を実施するための最良の形態】
【００１６】
【実施例】
【００１７】
図１は、本発明の近似演算処理装置の全体構成である。
【００１８】
入力部１０は、演算処理の対象となる入力データおよび演算処理の種別と精度を選択するための信号を入力するもので、第一の入力データS01、第二の入力データS02、演算種別信号S0３、要求精度信号S0４を設定して入力する。
【００１９】
第一の入力データS01は演算処理の対象となるデータで、それぞれ、符号ビット、仮数部、指数部を含んでいるが、小数点位置などは演算種別に応じて異なっており、以降の演算処理を統一的に行うためには、何らかの正規化が必要な場合が多い。この第一の入力データS01は正規化処理が必要な演算の場合に使用され、正規化部２０へ引き渡される。
【００２０】
第二の入力データS02は正規化処理が不要な演算、例えば２の指数演算などの場合に使用され、直接前処理部３０へ引き渡される。
【００２１】
演算種別信号S0３は近似演算の種別を示し、演算装置はこの信号を基に演算処理の内容を切り替えて実行するもので、例えば、平方根演算、対数演算、逆数演算、指数演算等の演算種別がある。
【００２２】
要求精度信号S0４は近似演算の精度を示す信号で、例えば、近似演算処理で使用する近似多項式の次数とすることができる。
【００２３】
正規化部２０は、入力された第一の入力データS01を正規化し、その結果を正規化データS0５として前処理部３０へ引き渡す。このとき、第一の入力データS01の符号ビット情報を抽出し、符号データS0６としてエラー判定部８０へ引き渡す。また、第一の入力データS01が負数の場合は、それを正数に変換した後に正規化処理を行う。従って、前処理部３０へ渡される正規化データS05の値は常に正数となっている。
【００２４】
前処理部３０は、演算種別に対応した個別の前処理部を備えており、正規化部２０から引き渡された正規化データS05を、演算種別信号S0３が示す演算種別に対応する前処理部を用いて処理する。その処理結果は演算種別の特徴を生かした形で仮数部と指数部に分解した後、以後の演算処理手段に引き渡される。つまり、処理結果のデータの中の仮数部を前処理済仮数データS0７として近似演算処理部５０へ引き渡し、指数部を指数調整データS09として後処理部６０へ引き渡す。
【００２５】
近似多項式選択部４０は、近似値の演算の際に使用する近似多項式の係数を演算種別毎および近似多項式の次数毎に保持しており、演算種別信号S0３が示す演算種別に対応する近似多項式群の中から、要求精度信号S04が示す精度に相当する精度の近似多項式を選択し、その選択した近似多項式の係数データを近似係数情報S0８として近似演算処理部５０へ引き渡す。例えば要求精度信号S04として近似多項式の次数を用いる場合は、該次数の近似多項式の係数データが近似係数情報S0８として近似演算処理部５０へ引き渡される。以下の記述では、要求精度信号S04として近似多項式の次数を用いた場合を代表例として説明する。
【００２６】
近似演算処理部５０は、要求精度信号S04として近似多項式の次数iを指定されたとすると、近似多項式選択部４０から引き渡された近似係数情報S0８に含まれる係数データを基に、i次の近似多項式
【００２７】
【数１】
2005275626.tif 000003
を用いて近似値の演算を行う。ここで、a0〜aiは近似多項式の係数値であり、ｍは前処理部３０から引き渡される前処理済仮数データS0７の値を示している。
【００２８】
近似多項式による近似演算の処理結果は、第一の演算済仮数データS10として後処理部６０へ引き渡される。
【００２９】
また、必要ならば、さらに近似演算処理を追加する時間的余裕があるか否かを判断し、余裕があるときには、演算処理結果を第二の演算済仮数データS11としてニュートン法演算部９０へ引き渡してニュートン法による近似演算を追加して演算結果の精度をさらに上げるように構成することもできる。
【００３０】
ここで、ニュートン法による近似演算処理の追加の判断は、例えば、本近似演算処理装置内の各処理部毎の所要時間が予め分かっている場合は、ニュートン法による演算を行うか否かのフラグ情報と実施回数の情報を予めメモリ内に設定しておき、その内容を判定して行うように構成することができる。また、本近似演算処理装置内の各処理部毎の所要時間が予め分からない場合は、処理時間を測定する処理カウンタを設けて、各処理部で要した時間分だけカウンタアップして処理カウンタにカウンタ値を蓄積し、所定のカウント値までの残りのカウンタ値の大きさ判定することにより、ニュートン法による近似演算の追加の可否を判断するように構成することもできる。
【００３１】
後処理部６０は、演算種別に対応した個別の後処理部を備えており、近似演算処理部５０から渡される第一の演算済仮数データS10、または、ニュートン法演算処理部９０から渡される第二の演算済仮数データS11と、前処理部３０から引き渡される指数調整データS09とに対して、演算種別信号S0３が示す演算種別に対応する後処理部を用いて後処理を行う。その処理結果は、後処理済仮数データS13、後処理済指数データS16、および演算完了信号S15として出力される。
【００３２】
符号付加部７０は、後処理部６０から引き渡された後処理済仮数データS13を、エラー判定部８０から引き渡された符号データS14が示す符号値に補正して、最終的な補正済仮数データS17を出力する。つまり、エラー判定部８０から引き渡された符号データS14が負の数を示している場合は、後処理部６０から引き渡された後処理済仮数データS13を負の数に変換する。例えば、逆数の演算等で入力データの符号が負の場合は、正規化部２０の中で正の数に変換してから以降の演算処理を行い、その演算処理の結果である後処理済仮数データS13に対して符号付加部７０がさらに2の補数をとって負の数にする補正を行い、その補正後の仮数データを最終的な補正済仮数データS17として出力する。
【００３３】
エラー判定部８０は、正規化部２０から引き渡された符号データS0６を符号付加部７０へ引き渡すと同時に、符号データS0６が演算種別信号S0３が示す演算種別で許容される符号値になっているかどうかを判定し、許容されない符号値の場合は符号エラー信号S18を出力する。例えば、演算種別が平方根演算の場合は、符号データS06が負を示している場合は、符号エラーと判定される。
【００３４】
ニュートン法演算処理部９０は、近似演算処理部５０の処理結果である第二の演算済仮数データS11に対して、さらに精度を上げるためにニュートン法による近似演算を行い、その処理結果をニュートン法演算済仮数データS12として後処理部６０へ渡す。
【００３５】
一般にニュートン法は、変数ｘについての関数f(x)に関して、f(x)=0が成立する解ｘの近似値を求めるもので、初期値ｘ0を設定した後、下記の式２を用い、ｎ＝0から初めて順次ｘ1、ｘ2、ｘ3、・・・、を求めながら実際の解ｘに近づけていき、必要な精度がえられた時点で処理を終了する。
【００３６】
【数２】
2005275626.tif 000004
これにより、上記の近似演算処理部５０で行う近似多項式を用いた近似値の演算では精度が足らない場合でも、処理時間が許される範囲で、目的とする精度の近似値に達するまで近似演算を行うことができる。また、近似多項式による近似計算後にニュートン法による近似計算を行うことにより、ニュートン法演算の初期値がより目的の演算結果と近くなりため、トータルの近似演算処理の時間を短縮することができる。
【００３７】
ニュートン法による演算処理の精度の指定については、例えば、入力される要求精度信号S0４に、小数点以下の有効桁数を指定するようにして構成することができる。
【００３８】
図２は、本発明の近似演算処理装置の正規化部の構成である。
【００３９】
符号判定部２２は第一の入力データS01の仮数部の符号ビットを抽出し、最上位ビットの上に小数点位置を配置するようにした符号なし仮数データS01aとして正規化処理部２１へ渡す。ここで、第一の入力データS01の仮数部の符号ビットが"1"で負数を示している場合は、該仮数部を正数に変換した後に、最上位ビットの直前に小数点位置を配置した数値を符号なし仮数データS01aとして正規化処理部２１へ引き渡す。
【００４０】
正規化処理部２１は符号なし仮数データS01aと第一の入力データS01の指数部の値を基に正規化データS0５を生成して、前処理部３０へ引き渡す。この正規化処理は、その処理後の正規化データS0５が示す値をｘ、正規化データS05の仮数部の値をｍ、指数部の値をｅとすると、
【００４１】
【数３】
2005275626.tif 000005
の関係が成り立つように行われる。ここで、＊は乗算を示し、ｍは  0.5≦ｍ＜1.0  の範囲の値をとる。
【００４２】
図３は、仮数部の正規化の概念図で、第一の入力データS01の仮数部と、それが正規化された後の正規化データS05の仮数部のデータ形式を比較して示している。
【００４３】
第一の入力データS01の仮数部が負数、つまり、符号ビットが"1"の場合は正数に変換される。そして、小数点のビット位置は仮数部のデータの最上位ビットの直前、つまり、最上位ビットが少数点以下第１位のビットとなり、しかも、最上位ビットが有効ビット、つまり、"1"となるように正規化される。
【００４４】
図４は、本発明の近似演算処理装置の前処理部の構成である。
【００４５】
前処理選択部３１は正規化部２０から渡された正規化データS0５に対して、入力された演算種別信号S0３が示す演算種別に対応する前処理部を、個別前処理部３２の中から選択して実行する。
【００４６】
個別前処理部３２は、演算種別１〜ｎにそれぞれ対応して、３２−１〜ｎで示す演算種別毎の前処理部を備えている。前処理選択部３１で選択された演算種別に対応する前処理部を用いて前処理を行い、その処理結果を仮数部と指数部に分離し、仮数部については前処理済仮数データS0７として近似演算処理部５０へ引き渡し、指数部については指数調整データS09として後処理部６０へ引き渡す。
【００４７】
演算定数記憶部３３は、演算種別対応の各前処理部で共通に使用する定数を保持する。
【００４８】
図５は、本発明の近似演算処理装置の近似多項式選択部の構成である。
【００４９】
係数テーブル領域４２は、各演算種別に対応する係数テーブルの集まりとして構成される。つまり、演算種別１、演算種別２、演算種別ｎに、それぞれ、演算種別１係数テーブル42-1、演算種別２係数テーブル42-2、演算種別ｎ係数テーブル42-nが対応する形で記憶されている。そして、各係数テーブルは１以上の近似多項式に関する係数データを記憶している。
【００５０】
係数テーブル選択部４１は、まず、係数テーブル領域４２の中から、入力された演算種別信号S0３が示す演算種別に対応する係数テーブルを選択する。次に、上記で選択した係数テーブルに記憶されている１以上の近似多項式についての係数レコードの中から、入力された要求精度信号S0４に相当する次数の近似多項式についての係数レコードを選択し、選択された係数レコードに含まれている係数データを近似係数情報S0８として近似演算処理部５０へ引き渡す。
【００５１】
図６は、本発明の係数テーブルのレコード構成（１）で、図５に示した係数テーブル領域４２の中の、演算種別ｋ係数テーブル42-ｋのレコード構成を代表として示している。ここで、ｋは演算種別を示す識別番号で、ｋ＝１〜ｎの値をとる。
【００５２】
図６に示す係数テーブル４２−ｋは、１〜ｐ次の近似多項式の係数データを保持する
ｋ−１〜ｋ−ｐのｐ個の可変長の係数レコードで構成される。各係数レコードには、対応する近似多項式の変数項に付与される係数値を示す等サイズの係数データが、その変数項の次数の昇順に配置されている。近似多項式の変数をｍで表すと、係数レコードk-1には１次近似多項式a1,1ｍ＋a1,0の係数値a1,0、a1,1をそれぞれ含む係数データがこの順に格納され、係数レコードk-2には２次近似多項式a2,2ｍ2＋a2,1ｍ＋a2,0の係数値a2,0、a2,1、a2,2をそれぞれ含む係数データがこの順に格納され、レコードk-pにはｐ次近似多項式
ap,pｍp＋・・・＋ap,1ｍ＋ai,0の係数値ap,0、ap,1、ap,2、・・・、ap,pをそれぞれ含む係数データがこの順に格納される。
【００５３】
係数テーブル選択部４１は、係数テーブル42-kの中から、要求精度信号S04が示す次数の近似多項式に対応する係数レコードを選択し、その選択した係数レコードに含まれる係数データを近似係数情報S08として近似演算処理部５０へ引き渡す。例えば、要求精度信号S04が2次の近似多項式を示しているときは、係数レコードk-2を選択し、その係数レコードに記憶されている係数値a2,0、a2,1、a2,2をそれぞれ含む係数データを近似係数情報S08として近似演算処理部５０へ引き渡す。
【００５４】
上記のように、近似演算処理に用いる近似多項式の係数値が、近似多項式の次数に対応した係数レコードに記憶されており、入力される要求精度信号S0４に応じた次数の近似多項式の係数値を容易に抽出でき、使用条件に応じて柔軟に精度を変更しながら近似演算を行うことができる。例えば、ある個所の平方根の演算は処理時間がかかっても良いから精度高くし、別の個所の対数の演算は処理時間を短くする必要があるので精度を落として演算する、などの処理時間見合いの演算精度の調整が、要求精度信号S0４をコントロールすることで可能となる。
【００５５】
図７は、本発明の係数テーブルのレコード構成（２）である。
【００５６】
図７に示すレコード構成は、係数テーブル42-kの先頭レコードに、前処理部３０で使用する演算定数記憶部３３を配置するものである。つまり、図６に示した本発明の係数テーブルのレコード構成（１）の先頭に、実際は近似多項式としては使用されない０次近似多項式の係数値のための係数レコードk-0を追加し、そこに演算定数を格納する。
【００５７】
このテーブルはｐ＋１個のレコードで構成され、i次の近似多項式に対応する係数レコードには、i次の近似多項式の各係数値aj0〜ajjをそれぞれ含む等サイズの係数データがこの配置順に格納されているのは、上記図６に示した本発明の係数テーブルのレコード構成（１）と同様である。
【００５８】
この係数テーブルの構成によると、i次の近似多項式の中のj次の変数項に対応する係数データの配置アドレスは、先頭係数レコードの領域アドレスをベースアドレスbase(ｋ)とし、１個の係数データのサイズを"1"とすると、階差数列の和の公式を用いて
【００５９】
【数４】
2005275626.tif 000006
として計算できる。
【００６０】
この時i＝０に対応する0次の近似多項式は実際には使用されないので、ここに演算定数(例えば、平方根の場合はsqrt(2)/2、対数の場合はlog(2)等)を格納しておくことで、図４に示した本発明の近似演算処理装置の前処理部の構成の中の演算定数記憶部３３をなくして、演算定数を係数テーブルの中に含めることが出来る。この場合は、式４において、i=0、j=0としたアドレスに演算定数を置くことになるので、他の係数レコードの検索処理に影響を与えることなく、容易にこの演算定数が格納されているアドレスを算出でき、演算定数を用いた演算処理を効率化することができる。
【００６１】
図８は、本発明の係数テーブルのレコード構成（３）である。
【００６２】
使用する近似多項式の最大次数ｐが同一となる２種類の演算種別ａおよびｂを組にして、１つの係数テーブルを構成するもので、ｐ＋１個の係数レコードから成り、係数レコードは固定長で、それぞれ、ｐ＋２個の等サイズの係数データを含んでいる。そして、ｋ−i の係数レコードには、演算種別ａのi 次の近似多項式の係数データと、演算種別ｂのｐ−i 次の近似多項式の係数データとが混在して格納される。係数レコードｋ−iには、まず、演算種別ａのi 次の近似多項式の係数データ（i＋１個）が、それらが付加される変数項の次数の昇順に配置され、その後ろに、演算種別ｂのｐ−i 次の近似多項式の係数データ（ｐ−i＋１個）が、それらが付加される変数項の次数の降順に配置される。例えば、係数レコードｋ-2には、演算種別ａの２次の近似多項式の係数データが、係数レコードｋ-2の領域の先頭から、近似多項式の係数値a2,0、a2,1、a2,2の順に対応するように配置され、続いて、演算種別ｂのｐ−２次の近似多項式の係数値ｂp-2,0、ｂp-2,1、・・・、ｂp-2,p-2の順に対応するように配置される。
【００６３】
これにより、係数テーブル42-kの領域の先頭アドレスをbase(ｋ)とすると、演算種別ａのi 次の近似多項式のｊ次の変数項に付加される係数データの格納アドレスは、
【００６４】
【数５】
2005275626.tif 000007
で算出できる。
【００６５】
また、係数テーブル42-kの次に配置される係数テーブル42-(k+1)の領域の先頭アドレスをbase(k+1)とすると、演算種別ｂのi 次の近似多項式のｊ次の変数項に付加される係数データの格納アドレスは、
【００６６】
【数６】
2005275626.tif 000008
で算出できる。
【００６７】
これにより、各近似多項式の係数データのアドレス計算が簡素化され、効率よい係数データの抽出が可能となる。
【００６８】
また、図８の係数レコード構成の中で、係数値ａ0,0およびｂ0,0に対応する係数データは、演算定数として使用される。
【００６９】
図９は、本発明の近似演算処理装置の後処理部の構成である。
【００７０】
後処理選択部６１は、入力された演算種別信号S03が示す演算種別に対応する個別の後処理部を選択し、前処理部３０から渡される指数調整データS09、近似演算処理部５０から渡される第一の演算済仮数データS10、ニュートン法演算処理部９０から渡されるニュートン演算済仮数データS12に対して、その選択した後処理部を用いて後処理を行う。
【００７１】
個別後処理部６２は演算種別毎の後処理を行うもので、演算種別１〜ｎに対応して、それぞれ６２−１〜６２−ｎで示す演算種別毎の後処理部を備えている。後処理選択部６１で選択された演算種別に対応する後処理部で後処理を行い、その処理結果を、後処理済仮数データS13、後処理済指数データS16、演算完了信号S15として出力する。
【００７２】
上記の本発明の構成において示したように、演算種別に依存する処理を、前処理部３０、近似多項式選択部４０、後処理部６０で行い、また、演算精度に依存する処理を近似多項式選択部４０で行うことにより、近似演算処理の核となる近似演算処理部５０、および、ニュートン法演算処理部９０は演算種別および演算精度に依存せずに共通化できる構成とした。
【００７３】
これにより、使用する条件に応じて、演算種別および演算精度を調整しながら柔軟な近似演算処理が行えると同時に、核となる近似演算処理部を共通化して演算装置の規模の増大を抑制した汎用的な近似演算処理装置を構成することができる。
【００７４】
次に、各演算種別毎の近似演算処理の手順を示す。
【００７５】
まず、第一の入力データS01を正規化部２０で正規化した後の正規化データS05が示す値をｘとし、正規化データS05に含まれる仮数部の値をｍ、指数部の値をｅで表すと、上記の式３で示したように、
ｘ ＝ ｍ＊２e     (0.5≦m＜1.0)
となる。この関係式を用いて、以下前処理部以降の処理を演算種別毎に場合分けして説明する。
（１）平方根演算の場合
平方根演算をsqrtで表し、乗算を＊で表すと、前記の数式２より、
【００７６】
【数７】
2005275626.tif 000009
が得られ、ｘの平方根sqrt(x)を算出するためにはsqrt(m) および sqrt(2e)を演算した後に、その結果を乗算すればよいことが分かる。
【００７７】
まず、sqrt(2e)の演算を、前処理部３０の中の平方根演算に対応する個別の前処理部で行う。この演算は、ｅの値に応じて場合分けして次のように行う。
【００７８】
【数８】
2005275626.tif 000010
ここで、sqrt(2)は演算定数として前処理部３０の中の演算定数記憶部３３の中か、または、係数テーブルの中に保持しておく。
【００７９】
sqrt(m)の演算は近似多項式を用いて行う。つまり、近似多項式選択部４０に保持されている係数テーブル領域４２の中から、演算種別信号S0３が示す演算種別、つまり、平方根演算に対応する係数テーブルを選択し、その選択した係数テーブルから、要求精度信号S0４が示す次数に対応する近似多項式の係数レコードを抽出し、近似演算処理部５０は該係数レコード内に格納されている係数データを基に構成される近似多項式を用いて平方根の近似値を算出する。
【００８０】
後処理部６０は、近似演算処理部５０で算出されたsqrt(m)の近似値と、前処理部３０にて算出されたsqrt(2e)を乗算して、sqrt(x)を得る。
（２）対数演算の場合
対数演算をlogで表すと、前記の数式 2から、
【００８１】
【数９】
2005275626.tif 000011
が得られ、ｘの対数log(x)を求めるためには、log(m)およびe*log(2)を演算した後に、それらの結果を加算すればよいことが分かる。
【００８２】
まず、e*log(2)の演算を、前処理部３０の中の対数演算に対応する個別の前処理部で行う。ここで、log(2)は演算定数として前処理部３０の中の演算定数記憶部３３、または、係数テーブルの中に保持しておく。
【００８３】
log(m)の演算は近似多項式を用いて行う。つまり、近似多項式選択部４０に保持されている係数テーブル領域４２の中から、演算種別信号S0３が示す演算種別、つまり、対数演算に対応する係数テーブルを選択し、その選択したテーブルから、要求精度信号S0４が示す次数に対応する近似多項式の係数レコードを抽出し、近似演算処理部５０は該係数レコード内に格納されている係数データを基に構成される近似多項式を用いて対数の近似値を演算する。
【００８４】
後処理部６０は、近似演算処理部５０で算出されたlog(m)の近似値と、前処理部３０にて算出されたe*log(2)を加算して、log(x)を得る。
（３）逆数演算の場合
前記の数式 2から、
【００８５】
【数１０】
2005275626.tif 000012
が得られ、ｘの逆数1/xを求めるためには、1/mおよび2-e を演算した後に、それらの結果を乗算すればよいことが分かる。
【００８６】
まず、2-e の演算を、前処理部３０の中の逆数演算に対応する個別の前処理部で行うが、この場合はビットシフト処理を行えばよい。
【００８７】
1/m の演算は近似多項式を用いて行う。つまり、近似多項式選択部４０に保持されている係数テーブル領域４２の中から、演算種別信号S0３が示す演算種別、つまり、逆数演算に対応する係数テーブルを選択し、その選択した係数テーブルから、要求精度信号S0４が示す次数に対応する近似多項式の係数レコードを抽出し、近似演算処理部５０は該係数レコードに格納されている係数データを基に構成される近似多項式を用いて逆数の近似値を算出する。
【００８８】
後処理部６０は、近似演算処理部５０で算出された1/m の近似値と、前処理部３０にて算出された2-e を乗算して、ｘの逆数1/x を得る。
（４）２の指数演算の場合
演算種別が２の指数演算の場合は、入力データが示す値xを整数部ｒと小数部ｆに分解し、
【００８９】
【数１１】
2005275626.tif 000013
とする。ここで、fは0≦f＜1.0の値をとる。
【００９０】
これを基に2の指数計算をすると、
【００９１】
【数１２】
2005275626.tif 000014
となることから、ｘの２の指数２xを求めるためには、2rおよび2fを演算した後に、その結果を乗算すればよい。つまり、2f上を近似多項式で演算し、その結果に2rを乗算つまりビットシフト処理すればよく、前記の数式２のような正規化処理は特に必要がないことが分かる。
【００９２】
このため、２の指数演算の場合は、入力データを正規化が不要な第二の入力データS02として入力し、正規化部２０を経由せずに直接前処理部３０に引き渡す。
【００９３】
前処理部３０は、第二の入力データS02が示す値ｘを、上記の数式１１のように整数部ｒと小数部ｆに分解する。そして、ｆを前処理済仮数データS0７として近似演算処理部５０へ引き渡し、整数部ｒはそのまま後処理部６０へ引き渡す。
【００９４】
近似演算処理部５０は2f の演算は近似多項式を用いて行う。つまり、近似多項式選択部４０は保持されている係数テーブル領域４２の中から、演算種別信号S0３が示す演算種別（２の指数演算）に対応する係数テーブルを選択し、その選択したテーブルから、要求精度信号S0４が示す次数に対応する近似多項式の係数レコードを抽出して近似演算処理部５０へ渡す。近似演算処理部５０は、該係数レコードに格納されている係数データを基にして構成される近似多項式を用いて2fの近似値を算出する。
【００９５】
後処理部６０は、近似演算処理部５０または必要に応じてニュートン法演算処理部９０から引き渡された2fの近似値を、前処理部３０から引き渡された整数部ｒが示すビット数だけ左シフトする、つまり、2fの近似値に2rを乗算する。
【００９６】
次に、複数の演算種別が組み合わされた演算処理の実施例を示す。
【００９７】
図１０は、本発明による近似演算の処理手順であり、平方根演算と常用対数演算を組み合わせたlog10(sqrt(x))の演算の処理手順を示す。
【００９８】
まず、平方根演算と常用対数演算は並行して行われず、平方根演算を行った結果に対して常用対数演算を行うので、１台の近似演算処理装置で処理が可能である。この演算を行う際の精度が予め分かっていて、平方根演算は２次の近似多項式を用い、常用対数演算は２次の近似多項式を用いるように要求精度信号S04を設定しておき、入力データS01は値x=29.137(10進数)を示しているものとする。
【００９９】
また、本実施例では、後述する図１１の本発明の係数テーブルのレコード設定例に示すように、平方根演算と常用対数演算の二つの演算種別についての近似多項式の係数データを組にして、上記の図８に示した本発明の係数テーブルのレコード構成（３）のように係数テーブルを構成する。
【０１００】
上記の条件で近似演算処理を行う場合の処理手順を、本発明の近似演算処理装置の各処理部分と対応付けた点線枠が示す処理手順P01〜P13に沿って説明する。
【０１０１】
P01.  演算種別信号S0３を平方根演算を示す値に設定し、要求精度信号S0４を３次の近似多項式を示す値に設定し、さらに、演算対象となるデータの値ｘ＝29.137（10進表示）を既知の手段で仮数部と指数部に分解して、第一の入力データS01として正規化部２０へ引き渡す。
【０１０２】
P02.  正規化部２０は第一の入力データS01を正規化し、
x=0x748C*25・・・<s,0,15>
となる。ここで、"0x748C"は１６進数の"748C"を示すもので、１０進数表示と区別するために先頭に"0x"を付加して表現する。また、<  >内の数値はｘが実際の処理装置内に格納されるときの形式であるビット形式で表現した際のビット配置を表現するもので、第１番目の記号"s"は最上位ビットが符号ビットであることを示し、第２番目の数値は整数部ｒを表すためのビット数を示し、第３番目の数値は仮数部の小数点以下の部分を表すためのビット数を示している。これらの表現方法は本発明の本質には関係しないが、本実施例の詳細説明の便宜上、以下の記述においても同様の表現を用いる。
【０１０３】
従って、仮数部の値ｍは"0x748C"、指数部の値ｅは"5"となり、この値ｍおよび値ｅは正規化データS05として前処理部３０へ引き渡される。
【０１０４】
同時に、正規化部２０は第一の入力データS01の符号ビットを抽出して符号データS06としてエラー判定部８０へ引き渡す。この例では、正規化部２０の符号判定処理により正の符号ビット、つまり、"0"がエラー判定部８０へ出力される。
【０１０５】
P03.  前処理部３０は、引き渡された正規化データS05に対して、演算種別信号S03が示す演算種別の前処理を行う。この場合は演算種別が平方根演算であるため、平方根演算に対応する前処理部が選択されて処理を行う。つまり、指数部25の演算を行うが、指数部の値ｅが"5"で奇数であることから、上記の数式４の中の
sqrt(2)*2(e-1)/2  (eが奇数の時) 
に従って演算を行う。ここでsqrt(2)=1.41421356…の演算定数であるが、後処理部６０での演算を簡素化するために小数点位置を合わせてsqrt(2)=0.70710678 * 2と変形して調整すると、0.70710678=0x5A82・・<s,0,15>であることから、
sqrt(25) = sqrt(2)*22 = 0x5A82*23
となり、" 0x5A82"と底２の指数部の値"3"を指数調整データS09として後処理部６０へ引き渡す。ここで、0x5A82は平方根演算の演算定数として、例えば、係数テーブルに前もって保持しておく。
【０１０６】
P04.  一方、近似演算処理部５０は前処理部３０から引き渡された前処理済仮数データS07（0x748C）に対して平方根の近似演算を行う。この場合は、引き渡された仮数データ"0x748C"に対して、要求精度信号S04が示す精度である２次の近似多項式を用いて平方根演算を行う。
【０１０７】
平方根の２次近似多項式を、
【０１０８】
【数１３】
2005275626.tif 000015
(a2,2=-0.203125, a2,1=0.890625, a2,0=0.3125)
とすると、近似多項式選択部４０の係数テーブルには図１１に示す本発明の係数テーブルのレコード設定例で示すように係数データが格納されており、この場合は、要求精度信号S04が2次の近似多項式を示しているため、2次の近似多項式の係数値ａ2,0、ａ2,1、
ａ2,2が抽出されて上記の数式９の近似多項式が構成され、近似演算に使用される。つまり、ビット配置<s,0,15>で表すと、ａ2,0=0x2800、 a2,1=0x7200、 a2,2=0xE60Aが使用される。
【０１０９】
また、符号演算を行う必要があることと小数点位置を合わせることを考慮すると、実際の演算処理の過程ではこれらの係数データは、
ｍ=0x748C  ・・・<s,0,15>
ａ2,2=0xE600  ・・・<s,0,15>
ａ2,1=0x7200  ・・・<s,0,15>
ａ2,0=0x28000000  ・・・<s,0,31>
として一時記憶される。
また、演算処理を行う過程で、乗算結果は２ワード長になり、さらに小数点位置を揃えるために乗算結果に対してビットシフト演算を行う必要があるが、それらの詳細については、本発明の本質には関係がないため、以降の記述ではその説明を割愛する。
【０１１０】
最終的には、
sqrt(m) =  0x7A3E
が得られる。
【０１１１】
上記の近似演算終了時点で処理時間に余裕がある場合は、ニュートン法を用いてさらに演算精度を上げることが可能であり、その場合は処理手順P05が示すニュートン法演算処理部９０の処理を行う。
【０１１２】
処理時間の余裕がないときは、処理手順P06へ移行する。
【０１１３】
P05.  ニュートン法演算処理部９０は、平方根演算の場合は、sqrt(ｍ)の近似値を求めるものとすると、前記の数式２において、
ｆ(ｘ)＝ｘ2−ｍ
と考えればよく、このときはｆ'(x)＝2ｘとなり、前記の数式２は、
【０１１４】
【数１４】
2005275626.tif 000016
となる。ここでは、初期値ｘ0をｘ0＜１となるように設定し、さらに演算処理を簡素化するために、本来はf'(xn)=2xnで除算すべきところを、f'(x)=2とみなして近似演算すると、
【０１１５】
【数１５】
2005275626.tif 000017
が得られる。
【０１１６】
上記処理手順P04の2次の近似多項式演算で得られたsqrt(m)の近似値0x7A3Eを初期値ｘ0として、ｍ=0x748Cとして上記の数式１４を用いて演算を行うと、
初期値……x0=0x7A3E, f(x0)=(0x7A3E)2-0x748C=0x74BE-0x748C=0x0032
1回目……x1=0x7A25, f(x1)=(0x7A25)2-0x748C=0x748E-0x748C=0x0002
2回目……x2=0x7A24, f(x2)=(0x7A24)2-0x748C=0x748C-0x748C=0x0000
となり、ビット配置<s,0,15>で表現できる最大の精度である0x0001以下となった為にここで処理を終了する。
【０１１７】
よって、sqrt(m)=0x7A24の近似値を得る。
【０１１８】
P06.  後処理部６０では、上記処理手順P04の結果（ニュートン法の追加演算を行わない場合）、または、処理手順P05の結果（ニュートン法の追加演算を行った場合）に対して、演算種別信号S03が示す演算種別（平方根演算）に対応する後処理、つまり、
sqrt(x) = sqrt(m) * sqrt(2e)
の演算を行う。
【０１１９】
この後処理の演算結果は、上記の処理手順P05のニュートン法の演算を行わない場合は、
0x7A3E*0x5A82*23=0x566F*23・・・<s,0,15>
となり、後処理済仮数データS13として"0x566F"を、また、後処理済指数データS16として"3"を出力し、同時に演算完了信号S15を出力する。
【０１２０】
上記の演算結果の精度を検証するため、実際の値と比較しやすい形に出力データを変換すると、後処理済仮数データS13の値"0x566F"は<s,0,15>のフォーマットであるので、小数点位置（最上位ビットにある符号ビットの直後）を考慮して２15で割り算すると（以下同様）、
0x566F*23/215≒5.4021
となる。実際の値は、
sqrt(29.137)≒5.3979≒0x565D*23/215
であることから、この例では２次の近似多項式による精度および計算途中の精度の問題で誤差が発生していることが分かる。
【０１２１】
一方、上記の処理手順P05のニュートン法の演算を行った場合は、上記のニュートン法の演算を行わない場合と同様にビットシフト処理を行って、
0x7A24*0x5A82*23=0x565D*23
が得られる。この結果は実際の値
sqrt(29.137)≒5.3979≒0x565D*23/215
と一致し、ニュートン法の近似演算により高精度の近似演算が行えることがわかる。
【０１２２】
P07.   エラー判定部８０は演算種別信号S03の内容から、入力された符号データが正しいか否かを判定する。この場合は、演算種別信号S03が平方根演算を示しており、負の平方根の演算は出来ないので、符号データS06が負、つまり、"1"の場合はエラーと判定し、符号エラー信号S18を出力するが、ここでは、第一の入力データS01の値は"29.137"で正となっているため、符号データS14として"0"が符号付加部７０へ渡され、符号付加部７０は符号が正であることから、後処理部６０から渡された後処理済仮数データS13をそのまま補正済仮数データS17として出力する。
【０１２３】
P08.  次に、上記の処理手順P07で得られた平方根演算処理の結果に対して、さらに常用対数演算を行うために、入力データの設定を行う。演算種別信号S03が常用対数演算を示し、演算精度信号S04が２次の近似多項式を示し、第一の入力データS01が上記プロセスP07で得た結果である仮数ｍ＝0x565Dおよび指数e＝３となるように入力データを設定する。
【０１２４】
P09.  正規化部２０は、上記処理手順P08で設定されたに第一の入力データS01（仮数m=0x565Dおよび指数e=3）に対して正規化処理を行い、正規化データS05を前処理部３０へ渡す。
【０１２５】
P10.  前処理部３０は、演算種別信号S03が示す常用対数演算用の前処理部を選択し、前処理を行う。つまり、前記の数式９に従って3*log10(2)演算する。
【０１２６】
ここでlog10(2) = 0.301029995…の定数であるので、後処理部６０での演算を行うた  めにビット配置を合わせて0.30103000=0x2688（<s,0,15>）とすると、
log10(23) =3* log10(2) = 3*0x2688
となる。0x2688は平方根演算の演算定数として係数テーブル内に前もって保持しておく。
【０１２７】
P11.  次に、近似演算処理部５０は、前処理部３０から渡された前処理済仮数データS07に対して近似演算処理を行う。この場合は、要求精度信号S04が２次の近似多項式を示しているため、近似多項式選択部４０は、図１１に示す係数テーブルから２次の近似多項式の係数値ｂ2,0、ｂ2,1、ｂ2,2を抽出して近似係数情報S08として近似演算処理部５０へ引き渡し、近似演算処理部５０はそれらの係数値を係数とする近似多項式を構成し、その近似多項式を用いて、前処理済仮数データS07が示す値についての近似演算を行う。
【０１２８】
つまり、係数値を１６進表示で示すと、
ｂ2,2=0xE780<s,1,14>
ｂ2,1=0x4B00<s,1,14>
ｂ2,0=xCD800000<s,1,30>
となり、これらを係数値とする近似多項式
【０１２９】
【数１６】
2005275626.tif 000018
を用いて、前処理済仮数データS07が示す値m=0x565D <s,0,15>について近似演算を行うと、
log10(m) = 0xE780*0x565D2 + 0x4B00*0x565D + 0xCD800000
=  0xFFFFE9D1 ・・・<s,16,15>
が得られる。ここで、演算の過程で必要となる少数点の位置合わせのためのビットシフトについては説明を割愛している。
【０１３０】
ここで、処理時間に余裕がある場合は、次ニュートン法による演算を行うことにより、さらに演算精度を上げることができるが、この実施例では行わないものとする。
【０１３１】
P12.  次に後処理部６０では、上記プロセスP11の演算結果に対して、演算種別信号S03が示す演算種別（対数演算）の後処理を行う。
【０１３２】
つまり前記の数式９により
log10(x) = log10(m*2e) = log10(m) + e*log10(2)
であり、この演算を行う。
【０１３３】
上記処理手順P11の処理結果に対して上記の後処理を行った場合を考えると、
0xFFFFE9D1 + 3*0x00002688=0x00005D69・・・<s,16,15>
となり、後処理済仮数データS13として"0x5D69"(<s,0,15>)を出力し、後処理済指数データS16として"0"を出力し、同時に演算完了信号S15を出力する。
【０１３４】
演算結果の精度を検証するために、理論上の値と比較すると、後処理済仮数データS13は<s,0,15>のフォーマットであるので、
0x5D69/215≒0.7298
となるのに対して、理論上の値は、
log10(5.3979)≒0.7322≒0x5DB9/215
であることから、この例では２次の近似多項式による精度および計算途中の精度の問題で誤差が発生していることが分かる。
【０１３５】
P13.  処理手順P12の後処理の結果に対しては、平方根演算の場合と同様に、入力データが負数だった場合の補正処理を行うが、この例では正数であるため、そのまま最終的な結果として出力される。
【０１３６】
図１１は、本発明の係数テーブルのレコード設定例で、上記図１０に示した平方根と常用対数演算を組み合わせた演算処理の実施例で用いた係数テーブルの実施例を示している。
【０１３７】
前記の図８の本発明の係数テーブルのレコード構成（３）で示した係数テーブルの構成において、使用する近似多項式の最大次数ｐを"3"とし、演算種別ａが平方根演算で、演算種別ｂが常用対数演算とした場合に相当する。従って、本係数テーブルの構成については説明済みのため、ここでは構成についての説明を割愛する。ここでは、平方根演算で使用する演算定数"0x5A82"をａ0,0に設定し、常用対数演算で使用する演算定数"0x2688"をｂ0,0に設定している。また、平方根の近似演算処理に用いる２次の近似多項式の係数値ａ2,0、ａ2,1、ａ2,0には、それぞれ、"0x2800"、"0x7200"、"0xE600"を設定し、常用対数の近似演算処理に用いる２次の近似多項式の係数値ｂ2,0、ｂ2,1、ｂ2,2には、それぞれ、"0xCD80"、"0x4B00"、"0xE780"を設定している。
【０１３８】
上記の実施例では、本発明の本質に関係ないこと、および、説明の煩雑さを避けるために、演算に使用するデータのサイズを１ワード長（１６ビット）をベースにし、また近似多項式の次数は２としたために誤差がかなり大きく現れているが、データのサイズを長くし近似多項式の次数を大にすれば誤差をより少なくできることはいうまでもない。
【０１３９】
以上詳述した本発明の実施の態様においては、演算種別として平方根演算、対数演算、逆数演算、２の指数演算を例にして説明したが、他の演算種別についても、前処理部、係数テーブル、後処理部を変更追加することにより対応可能である。
【０１４０】
また、本発明の実施例では、前処理部３０と後処理部６０の処理分担については、演算種別毎に代表的な例を記載したが、別な形に変形することも容易にできる。
【０１４１】
以上述べた本発明の実施の態様は、以下の付記の通りである。
（付記１）
演算対象となる入力データおよび演算種別を示す演算種別信号を入力し、
前記演算種別信号が示す演算種別に適合する前処理を行い、
前記演算種別信号が示す演算種別に対応する近似多項式を選択し、
前記前処理の結果を基に、前記選択された近似多項式を用いて近似演算処理を行い、
前記近似演算処理の結果に対して前記演算種別信号が示す演算種別に適合する後処理を行う、
ことを特徴とする近似演算処理方法。
（付記２）付記１に記載の近似演算処理方法において、
前記演算種別信号が示す演算種別に対応して１以上の近似多項式についての係数データを保持する係数テーブルを備え、
近似演算処理の精度を示す演算精度信号を入力し、
前記近似多項式の選択は、前記係数テーブルの中から前記演算精度信号が示す精度に相当する精度の近似多項式に対応する係数データを選択することにより行う、
ことを特徴とする近似演算処理方法。
（付記３）付記２に記載の近似演算処理方法において、
前記係数テーブルは、１から所定次数ｐまでの識別番号を割り付けたｐ個の可変長の係数レコードで構成され、
前記係数テーブル内の識別番号ｉの係数レコードは、ｉ次の近似多項式の係数値を示すｉ＋１個の等サイズの係数データを、前記係数値が付加される近似多項式内の変数項の次数の昇順に対応するように配置して構成され、
前記近似演算処理は、前記係数テーブルの中から要求精度信号が示す次数ｊに対応する識別番号ｊの係数レコードを抽出し、前記抽出された係数レコードに含まれるｊ＋１個の係数データが示す係数値を各変数項に付加した近似多項式を用いて前記近似演算処理を行う、
ことを特徴とする近似演算処理方法。
（付記４）付記３に記載の近似演算処理方法において、
前記係数テーブルに１個の係数データから成る識別番号０の係数レコードを追加し、
前記演算種別に対応する近似演算処理で共通に使用する演算定数を前記識別番号０の係数レコードに含まれる係数データとして格納する、
ことを特徴とする近似演算処理方法。
（付記５）付記２に記載の近似演算処理方法において、
前記係数テーブルは、０から所定次数ｐまでの識別番号を割り振られたｐ＋１個の固定長の係数レコードで構成され、
前記係数テーブルの識別番号ｉの係数レコードは、第一の演算種別に対応するｉ次の近似多項式を構成するｉ＋１個の等サイズの係数データから成る第一の係数データ領域の後に、第二の演算種別に対応するｐ−ｉ次の近似多項式を構成するｐ−ｉ＋１個の等サイスの係数データから成る第二の係数データ領域を配置して構成され、
前記第一の係数データ領域には、前記係数データが、前記係数データが示す係数値が付加される近似多項式内の変数項の次数の昇順に対応するように配置され、前記第二の係数データ領域には、前記係数データが、前記係数データが示す係数値が付加される近似多項式内の変数項の次数の降順に対応するように配置され、
前記近似演算処理は、第一の演算種別については、前記係数テーブルの中から要求精度信号が示す次数ｊに対応する識別番号ｊの係数レコードを抽出し、前記抽出された識別番号ｊの係数レコードに含まれる前記第一の係数データ領域内の係数データが示す係数値を各変数項に付加した近似多項式を用いて前記近似演算処理を行い、
第二の演算種別については、前記係数テーブルの中から要求精度信号が示す次数ｊに対応する識別番号ｐ−ｊの係数レコードを抽出し、前記抽出された識別番号ｐ−ｊの係数レコードに含まれる第二の係数データ領域内の係数データが示す係数値を各変数項に付加した近似多項式を用いて前記近似演算処理を行う、
ことを特徴とする近似演算処理方法。
（付記６）付記５に記載の近似演算処理方法において、
前記係数テーブルの識別番号０の係数レコード内の前記第一の係数データ領域は、第一の演算種別に対応する近似演算処理で共通に使用する演算定数を前記係数データとして保持し、
前記係数テーブルの識別番号ｐの係数レコード内の前記第二の係数データ領域は、第二の演算種別に対応する近似演算処理で共通に使用する演算定数を前記係数データとして保持する
ことを特徴とする近似演算処理方法。
（付記７）付記１に記載の近似演算処理方法において、
前記入力データを仮数部と２を底とする指数部に分解し、
前記入力データの値をｘ、前記仮数部の値をｍ、２を底とする指数部の値をｅ、底２をｅ乗した値をｚとすると、値ｍは0.5以上かつ1未満の値をとり、値ｍと値ｚとを乗算した値ｍ＊ｚが、前記入力データの値ｘに等しくなるように値ｍおよび値ｅを正規化し、
前記正規化された値ｍおよび値ｅを基に、前記前処理、前記近似演算処理、および、前記後処理を行う、
ことを特徴とする近似演算処理方法。
（付記８）付記７に記載の近似演算処理方法において、
演算種別が平方根演算の場合は、平方根演算をsqrtで表すと、
前記底２をｅ乗した値ｚの平方根sqrt(ｚ)の演算を前処理として行い、
前記仮数部の値ｍの平方根sqrt(ｍ)の演算を近似多項式を用いた近似演算処理として行い、
前記前処理の結果であるsqrt(ｚ)と、前記近似演算処理の結果であるsqrt(ｍ)との乗算を後処理として行う、
ことを特徴とする近似演算処理方法。
（付記９）付記７に記載の近似演算処理方法において、
前記演算種別が対数演算の場合は、
前記指数部の値ｅと、log2との乗算ｅ*log2の演算を前処理として行い、
前記仮数部の値ｍの対数値log(ｍ)を求める演算を近似多項式を用いた近似演算処理として行い、
前記前処理の結果であるｅ*log2と、前記近似演算処理の結果であるlog(ｍ)との加算を後処理として行う、
ことを特徴とする近似演算処理方法。
（付記１０）付記７に記載の近似演算処理方法において、
前記演算種別が逆数演算の場合は、
前記底２を-ｅ乗した値ｚの演算を前処理として行い、
前記仮数部の値ｍの逆数１／ｍを求める演算を近似多項式を用いた近似演算処理として行い、
前記前処理の結果である値ｚと、前記近似演算処理の結果である値１／ｍとの乗算を後処理として行う、
ことを特徴とする近似演算処理方法。
（付記１１）付記１に記載の近似演算処理方法において、
前記演算種別が２の指数演算の場合は、
前記入力データの値ｘを整数部の値ｒと小数部の値ｆに分解し、
ｘ＝ｒ＋ｆ、かつ、ｆは０以上かつ１未満の値となるようにし、
底２のｒ乗した結果の値をｙとし、底２のｆ乗した結果の値をｚとすると、
値ｚを算出するための演算を近似多項式を用いた近似演算処理として行い、
値ｙを算出するための演算、および、値ｚと値ｙの乗算を後処理として行う
ことを特徴とする近似演算処理方法。
（付記１２）付記１に記載の近似演算処理方法において、
前記近似演算処理の結果に対して、さらに、ニュートン法による近似演算処理を行い、
前記ニュートン法による近似演算処理の結果に対して前記後処理を行う
ことを特徴とする近似演算処理方法。
（付記１３）付記１１に記載の近似演算処理方法において、
演算種別毎に、前処理、近似演算処理および後処理に要した時間を測定する処理カウンタを備え、
近似演算処理の完了時点で前記処理カウンタの値と所定のカウンタ値との差がニュートン法による演算処理に必要な範囲内の場合に、前記ニュートン法の演算処理を行う
ことを特徴とする近似演算処理方法。
【０１４２】
（付記１４）演算対象となる入力データおよび演算種別を示す演算種別信号を入力する入力部と、
前記演算種別信号が示す演算種別に適合する前処理を行う前処理部と、
前記演算種別信号が示す演算種別に対応する近似多項式を選択する近似多項式選択部と、
前記前処理の結果を基に、前記選択された近似多項式を用いて近似演算処理を行う近似演算処理部と、
前記近似演算処理部の処理結果に対して前記演算種別信号が示す演算種別に適合する後処理を行う後処理部を備える、
ことを特徴とする近似演算処理装置。
（付記１５）付記１４に記載の近似演算処理装置において、
前記近似多項式選択部は前記演算種別に対応して１以上の近似多項式の係数データを保持する係数テーブルを備え、
前記入力部は近似演算処理の精度を指定する演算精度信号を入力する手段を備え、
前記近似多項式選択部は前記演算種別に対応する前記係数テーブルの中から、前記演算精度信号が示す精度に相当する近似多項式の係数データを選択する手段を備える、
ことを特徴とする近似演算処理装置。
（付記１６）付記１５に記載の近似演算処理装置において、
前記係数テーブルは、１から所定次数ｐまでの識別番号を割り付けたｐ個の可変長の係数レコードで構成され、
前記係数テーブル内の識別番号ｉの係数レコードは、ｉ次の近似多項式の係数値を示すｉ＋１個の等サイズの係数データを、前記係数値が付加される近似多項式内の変数項の次数の昇順に対応するように配置して構成され、
前記近似演算処理部は、前記係数テーブルの中から前記要求精度信号が示す次数ｊに対応する識別番号ｊの係数レコードを抽出し、前記抽出された係数レコードに含まれるｊ＋１個の係数データが示す係数値を各変数項に付加した近似多項式を用いて前記近似演算処理を行う手段を備える、
ことを特徴とする近似演算処理装置。
（付記１７）付記１６に記載の近似演算処理装置において、
前記係数テーブルは、さらに１個の係数データから成る識別番号０の係数レコードを保持し、
前記演算種別に対応する近似演算処理で共通に使用する演算定数を前記識別番号０の係数レコードに含まれる係数データとして保持する、
ことを特徴とする近似演算処理装置。
（付記１８）付記１５に記載の近似演算処理装置において、
前記係数テーブルは、０から所定次数ｐまでの識別番号を割り振られたｐ＋１個の固定長の係数レコードで構成され、
前記係数テーブルの識別番号ｉのレコードは、第一の演算種別のｉ次の近似多項式の係数値を示すｉ＋１個の等サイズの係数データから成る第一の係数データ領域の後に、第二の演算種別のｐ−ｉ次の近似多項式の係数値を示すｐ−ｉ＋１個の等サイスの係数データから成る第二の係数データ領域を配置して構成され、
前記第一の係数データ領域には、前記係数データが示す係数値が付加される近似多項式内の変数項の次数の昇順に対応するよう前記係数データが配置され、前記第二の係数データ領域には、前記係数データが示す係数値が付加される近似多項式内の変数項の次数の降順に対応するように前記係数データが配置され、
前記近似演算処理部は、第一の演算種別については、前記係数テーブルの中から要求精度信号が示す次数ｊに対応する識別番号ｊの係数レコードを抽出し、前記抽出された識別番号ｊの係数レコードに含まれる前記第一の係数データ領域内の係数データが示す係数値を各変数項に付加した近似多項式を用いて近似演算処理を行う手段と、第二の演算種別については、前記係数テーブルの中から要求精度信号が示す次数ｊに対応する識別番号ｐ−ｊの係数レコードを抽出し、前記抽出された識別番号ｐ−ｊの係数レコードに含まれる第二の係数データ領域内の係数データが示す係数値を各変数項に付加した近似多項式を用いて近似演算処理を行う手段を備える、
ことを特徴とする近似演算処理装置。
（付記１９）付記１８に記載の近似演算処理装置において、
前記係数テーブルの識別番号０の係数レコード内の前記第一の係数データ領域は、第一の演算種別に対応する近似演算処理で共通に使用する演算定数を前記係数データとして保持し、
前記係数テーブルの識別番号ｐの係数レコード内の前記第二の係数データ領域は、第二の演算種別に対応する近似演算処理で共通に使用する演算定数を前記係数データとして保持する
ことを特徴とする近似演算処理装置。
（付記２０）付記１４に記載の近似演算処理装置において、
前記入力データを仮数部と２を底とする指数部に分解する手段と、
前記入力データの値をｘ、前記仮数部の値をｍ、２を底とする指数部の値をｅ、底２をｅ乗した値をｚとすると、値ｍは0.5以上かつ1未満の値をとり、値ｍと値ｚとを乗算した値ｍ＊ｚが、前記入力データの値ｘに等しくなるように値ｍおよび値ｅを正規化する手段と、
前記正規化された値ｍおよび値ｅを基に、前記前処理部、前記近似演算処理部、および、前記後処理部の処理を行う手段を備える、
ことを特徴とする近似演算処理装置。
（付記２１）付記２０に記載の近似演算処理装置において、
平方根演算をsqrtで表すと、
前記底２をｅ乗した値ｚの平方根sqrt(ｚ)の演算を行う前処理部と、
前記仮数部の値ｍの平方根sqrt(ｍ)の演算を近似多項式を用いて行う近似演算処理部と、
前記前処理部の処理結果であるsqrt(ｚ)と、前記近似演算処理部の処理結果であるsqrt(ｍ)との乗算を行う後処理部を備える、
ことを特徴とする近似演算処理装置。
（付記２２）付記２０に記載の近似演算処理装置において、
前記指数部の値ｅとlog2との乗算ｅ*log2の演算を行う前処理部と、
前記仮数部の値ｍの対数値log(ｍ)を求める演算を近似多項式を用いて行う近似演算処理部と、
前記前処理部の処理結果であるｅ*log2と、前記近似演算処理部の処理結果であるlog(ｍ)との加算を行う後処理部を備える、
ことを特徴とする近似演算処理装置。
（付記２３）付記２０に記載の近似演算処理装置において、
前記底２を-ｅ乗した値ｚの演算を行う前処理部と、
前記仮数部の値ｍの逆数１／ｍを求める演算を近似多項式を用いて行う近似演算処理部と、
前記前処理部の処理結果である値ｚと、前記近似演算処理部の処理結果である値１／ｍとの乗算を行う後処理部を備える、
ことを特徴とする近似演算処理装置。
（付記２４）付記１４に記載の近似演算処理装置において、
前記演算種別が２の指数演算の場合は、
前記入力データの値ｘを整数部の値ｒと小数部の値ｆに分解する手段と、
ｘ＝ｒ＋ｆ、かつ、ｆは０以上かつ１未満の値となるようにする手段と、
底２をｒ乗した結果の値をｙとし、底２をｆ乗した結果の値をｚとすると、
値ｚを算出するための演算を近似多項式を用いて行う近似演算処理部と、
値ｙを算出するための演算、および、値ｚと値ｙの乗算を行う後処理部を備える、
ことを特徴とする近似演算処理装置。
（付記２５）付記１に記載の近似演算処理装置において、
前記近似演算処理部の処理結果に対して、さらに、ニュートン法による近似演算を行う手段を備える、
ことを特徴とする近似演算処理装置。
（付記２６）付記２５に記載の近似演算処理装置において、
演算種別毎に、前記前処理部、前記近似演算処理部および前記後処理部の処理に要した時間を累積して測定する処理カウンタと、
近似演算処理の完了時点で前記処理カウンタの値と所定のカウンタ値との差がニュートン法による演算処理に必要な時間の範囲内にある場合に、さらにニュートン法による演算処理を行う手段を備える、
ことを特徴とする近似演算処理装置。
【図面の簡単な説明】
【０１４３】
【図１】本発明の近似演算処理装置の全体構成
【図２】本発明の近似演算処理装置の正規化部の構成
【図３】仮数部の正規化の概念図
【図４】本発明の近似演算処理装置の前処理部の構成
【図５】本発明の近似演算処理装置の近似多項式選択部の構成
【図６】本発明の係数テーブルのレコード構成（１）
【図７】本発明の係数テーブルのレコード構成（２）
【図８】本発明の係数テーブルのレコード構成（３）
【図９】本発明の近似演算処理装置の後処理部の構成
【図１０】本発明による近似演算の処理手順
【図１１】本発明による係数テーブルのレコード設定例
【符号の説明】
【０１４４】
10    入力部
20    正規化部
21    正規化処理部
22    符号判定部
30    前処理部
31    前処理選択部
32    個別前処理部
33    演算定数記憶部
40    近似多項式選択部
41    係数テーブル選択部
42    係数テーブル領域
42-1〜n    演算種別対応の係数テーブル
50    近似演算処理部
60    後処理部
61    後処理選択部
62    個別後処理部
70    符号付加部
80    エラー判定部
90    ニュートン法演算処理部
100    近似演算処理装置
P01〜P14    近似演算の処理手順番号
S01    第一の入力データ
S02    第二の入力データ
S03    演算種別信号
S04    要求精度信号
S05    正規化データ
S06    符号データ
S07    前処理済仮数データ
S08    近似係数情報
S09    指数調整データ
S10    第一の演算済仮数データ
S11    第二の演算済仮数データ
S12    ニュートン法演算済仮数データ
S13    後処理済仮数データ
S14    符号データ
S15    演算完了信号
S16    後処理済指数データ
S17    補正済仮数データ
S18    符号エラー信号
【図１】
2005275626.tif 000019
【図２】
2005275626.tif 000020
【図３】
2005275626.tif 000021
【図４】
2005275626.tif 000022
【図５】
2005275626.tif 000023
【図６】
2005275626.tif 000024
【図７】
2005275626.tif 000025
【図８】
2005275626.tif 000026
【図９】
2005275626.tif 000027
【図１０】
2005275626.tif 000028
【図１１】
2005275626.tif 000029