JP4755129B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP4755129B2 JP4755129B2 JP2007069614A JP2007069614A JP4755129B2 JP 4755129 B2 JP4755129 B2 JP 4755129B2 JP 2007069614 A JP2007069614 A JP 2007069614A JP 2007069614 A JP2007069614 A JP 2007069614A JP 4755129 B2 JP4755129 B2 JP 4755129B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- product
- taylor series
- information
- arithmetic processing
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/548—Trigonometric functions; Co-ordinate transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Description
図8に示す従来の演算処理装置2000は、図8の左側に示す浮動小数点積和演算命令2010を実行することで、数学関数のテーラー級数演算を行っていた。浮動小数点積和演算命令2010は、5つのフィールド2011〜2015で構成されている。フィールド2011には「命令種別コード(浮動小数点積和演算命令コード)」が設定され、フィールド2012には「積和演算の積演算の一方の入力レジスタ番号」が設定され、フィールド2013には「積和演算の積演算の他方の入力レジスタ番号」が設定される。また、フィールド2014には「積和演算の和演算の入力レジスタ番号」が設定され、フィールド2015には「積和演算の演算結果の出力レジスタ番号」が設定される。レジスタ番号は、各レジスタに一意的に割り当てられた番号である。
)がレジスタ2020から読み出され、そのデータyがマルチプレクサ2031を介して浮動小数点積和演算器2040に入力する。また、フィールド2013に設定されたレジスタ番号r2のレジスタ(以後、レジスタr2と記載)の値(データzとする)がレジスタ2020から読み出され、そのデータzがマルチプレクサ2032を介して浮動小数点積和演算器2040に入力する。さらに、フィールド2014に設定されたレジスタ番号r3のレジスタ(以後、レジスタr3と記載)の値(データaiとする)がレジスタ2020から読み出され、そのデータaiがマルチプレクサ2033を介して浮動小数点積和演算器2040に入力する。
本発明の演算処理装置の第3態様は、上記演算処理装置の第2態様において、前記奇関数は正弦関数(sin(x))であり、前記偶関数は余弦関数(cos(x))であり、前記係数テーブルセット記憶手段は、前記正弦関数の係数テーブルと前記余弦関数の係数テーブルを備える。
本発明の演算処理装置の第4態様は、前記正弦関数または前記余弦関数をテーラー級数演算で演算する際、それらの数学関数の入力引数xの値の範囲に応じて、前記正弦関数の係数テーブルと前記余弦関数の係数テーブルを使い分ける。
本発明の演算処理装置の第6態様は、前記演算処理装置の第1態様において、さらに、前記係数データ読み出し手段により読み出された前記係数テーブルセット記憶手段内の係数データと、前記レジスタデータ読み出し手段により読み出された前記レジスタ手段に格納されたデータもしくはバイパスデータを入力し、浮動小数点演算命令の種別を示す命令種別コードに応じて、前記2つの入力データの内、いずれか一方の入力データを前記浮動小数点積和演算器に選択出力する選択出力手段を備え、該選択出力手段は、前記命令種別コードがテーラー級数積和演算命令を示している場合には、前記係数データを前記浮動小数点積和演算器に出力する。
演算命令を備え、該テーラー級数積和演算命令のデコード結果に応じて、前記レジスタデータ読み出し手段と前記係数データ読み出し手段により、前記レジスタ手段と前記係数テーブルセット記憶手段から、前記浮動小数点積和演算器がテーラー級数演算を実行する際に必要なデータを読み出し、該データを前記浮動小数点積和演算器に供給する。
本発明の演算処理装置の第10態様によれば、浮動小数点積和演算の積演算で使用され
る2つの被演算値のいずれか一方の符号ビットを、係数テーブルの指定情報として利用する。このため、テーラー級数積和演算命令のフィールド数を少なくできる。
本発明の演算処理装置の第13態様によれば、係数テーブルの指定情報とし、前記指定されるレジスタのデータの仮数部の下位ビットを使用する。このため、浮動小数点積和演算器の積演算で使用される該レジスタのデータの精度は多少犠牲になるが、該レジスタのデータの仮数部の下位ビットを、係数テーブルの指定情報として利用できる。
本発明の演算処理装置の第17態様は、前記演算処理装置の第1乃至15態様のいずれか1態様の演算処理装置において、前記係数テーブルセット記憶手段は、データの書き換えが可能なメモリである。
本発明の演算処理装置の第18態様は、前記演算処理装置の第17態様において、さらに、係数テーブルを指定する係数テーブル指定情報と、テーラー級数の次数を指定する次数指定情報により、前記係数テーブルセット記憶手段内の係数データの設定位置を指定することを特徴とする。
本発明の演算処理装置の第19態様は、上記演算処理装置の第18態様の演算処理装置において、さらに、前記係数テーブルセット記憶手段内の前記設定位置に、係数データを設定する係数テーブルセット更新手段を備える。
3の情報を設定するフィールドと、テーラー級数の次数情報を指定する第4の情報を設定するフィールドをから成る係数テーブルセット更新命令を備え、前記係数テーブルセット更新手段は、前記係数テーブルセット更新命令のデコード結果に応じて、前記第1の情報で指定される第1のレジスタの値と前記第2の情報で指定される第2のレジスタの値の積演算を前記浮動小数点積和演算器に実行させ、その積演算結果を、前記第3の情報で指定される第3のレジスタの値によって指定される係数テーブルの、前記第4の情報によって指定される次数の係数データの格納領域に書き込むことを特徴とする。
[本発明の概要]
本発明の演算処理装置は、任意の数学関数のテーラー級数演算の係数データを格納する係数テーブルを各数学関数毎に用意し、それら複数の係数テーブルのセットである係数テーブルセットを、専用のメモリ(ROMまたはRAMなど)に格納する。そして、テーラー級数演算で必要となる係数データを、直接、前記係数テーブルから読み出して浮動小数点積和演算器に供給し、該浮動小数点積和演算器によりテーラー級数演算を実行する。
図1は、本発明の第1の実施形態である演算処理装置のシステム構成を示すブロック図である。
いる。また、さらに、前記係数テーブルセット10内の係数データを選択するための情報として、「テーラー級数の次数番号21(以下、次数番号21と記載する場合もある)」、「係数テーブルのセット番号22(以下、セット番号22と記載する場合もある)」及び「命令種別コード23」を用いることである。
方を、浮動小数点積和演算器1050に出力する。本実施形態では、命令種別コード23がテーラー級数積和演算命令である場合には、マルチプレクサ27は、前記係数データを浮動小数点積和演算器1050に選択出力する。
図2は、図1の演算処理装置1が、sin(x)とcos(x)の2つの数学関数を取り扱う場合における、テーラー級数演算の係数テーブルセット10の具体的な配置構成例を示す図である。
図3は、本発明の第2実施形態である演算処理装置の主要部の構成を示す図である。尚、図3のマルチプレクサ2033と浮動小数点積和演算器1050を接続している破線は、浮動小数点積和演算器1050が従来の浮動小数点積和演算を実行する場合に使用するオペランドデータの信号線を示す。これは、以後に述べる実施形態の図面についても同様である。
図3に示すテーラー級数積和演算命令30は、6つのフィールド31〜36から構成されている。命令種別コード設定フィールド31にはテーラー級数積和演算命令コードが設定される。
2013、2015と同様なオペランドデータが設定される。すなわち、フィールド32には「積和演算の積演算の一方の入力レジスタ番号(r1)」が、フィールド33には「積和演算の積演算の他方の入力レジスタ番号(r2)」が、フィールド34には「積和演算の積演算の出力レジスタ番号(w1)」が設定される。
sin関数は、周期性のある関数(周期が2πの関数)であるので、{−π/4+2nπ〜+7π/4+2nπ}の区間を、下記1.〜4.に示すように4つの領域に分けて、計算式を構成することができる。
2. x = +π/4+2nπ〜+3π/4+2nπ sin(x) = cos(x−π/2−2nπ)
3. x = +3π/4+2nπ〜+5π/4+2nπ sin(x) = −sin(x−π−2nπ)
4. x = +5π/4+2nπ〜+7π/4+2nπ sin(x) = −cos(x−3π/2−2nπ)
たしており、cos(y)(=sin(x))は引数yの高次で収束することがわかる。
5. y=−π/4〜+π/4
その他の領域についても、sin(x)(=±sin(y), ±cos(y))の入力引数x(y)は、−π/4〜+π/4の値の範囲を満たすので、sin(x)は高次で収束することが示される。
7. x = +π/4+2nπ〜+3π/4+2nπ cos(x)のテーラー級数演算の係数テーブル
8. x = +3π/4+2nπ〜+5π/4+2nπ sin(x)のテーラー級数演算の係数テーブル
9. x = +5π/4+2nπ〜+7π/4+2nπ cos(x)のテーラー級数演算の係数テーブル
以上により、テーラー級数積和演算命令30において、係数テーブルのセット番号が、レジスタ間接指定であることの必要性が示された。
Instruction stream-Multiple Data stream)化を適用することが可能になる。
sin(x)の入力引数判定により、x = -π/4+2nπ〜+π/4++2nπの範囲であることが判明したとすると、sin(x)は、入力引数変換を経て、下記のようなテーラー級数演算で表現される。
うことができる。
12. 積和演算の積演算の他方の入力レジスタ番号33:0またはy2 を格納しているレジスタ番号
13. 積和演算の演算結果の出力レジスタ番号34:zを収めたレジスタ番号
14. 係数テーブルのセット番号を収めたレジスタ番号セット番号35:0を収めたレジスタ番号
15. テーラー級数の次数番号36:0〜7の値
入力引数xの範囲が{x = -π/4+2nπ〜+π/4+2nπ}以外のケースについても、同様に、入力引数判定、入力引数変換を経て、テーラー級数演算で表現することができる。
この例では、前記テーラー級数積和演算命令30のアセンブラ命令を、以下のように定義する。尚、ftrimaaddは、前記テーラー級数積和演算命令30の命令種別コード31のアセンブラ命令における表記である。また、このアセンブラ命令のオペランド・フィールド(< >部分)は、図2のテーラー級数積和演算命令30のオペランド・フィールドと一部順序が異なっている。
<積和演算の積演算の他方の入力レジスタ番号>,
<係数テープルのセット番号を収めたレジスタ番号>,
<テーラー級数の次数番号>,
<積和演算の演算結果の出力レジスタ番号>
本例では、積和演算の積演算の一方の入力レジスタ番号32を“8”、積和演算の積演算の他方の入力レジスタ番号33を“0”もしくは“2”、係数テーブルのセット番号を
収めたレジスタ番号35を“6”、積和演算の演算結果の出力レジスタ番号34を“8”に設定する。そして、レジスタ番号iを%fiで表記する。
ftrimaddd %f8, %f0, %f6, 7, %f8
ftrimaddd %f8, %f2, %f6, 6, %f8
ftrimaddd %f8, %f2, %f6, 5, %f8
ftrimaddd %f8, %f2, %f6, 4, %f8
ftrimaddd %f8, %f2, %f6, 3, %f8
ftrimaddd %f8, %f2, %f6, 2, %f8
ftrimaddd %f8, %f2, %f6, 1, %f8
ftrimaddd %f8, %f2, %f6, 0, %f8
fmuld %f8, %f4, %f8
となる。
ここで、fmuldは、z=z・yの積演算を実行するアセンブラ命令である。
図4は、本発明の第3実施形態である演算処理装置の主要部の構成を示すブロック図である。
このアンドゲート61を設けた理由を、より詳しく説明する。
sin(x)の入力引数判定により、x = +π/4+2nπ〜+3π/4++2nπの範囲であることが判明したとすると、sin(x)は、入力引数変換を経て、下記のようなテーラー級数演算で表現される。
2.積和演算の積演算の他方の入力レジスタ番号53:“−0”または“−y2 ”を格納しているレジスタ番号
3.積和演算の演算結果の出力レジスタ番号54:zを収めたレジスタ番号
4.テーラー級数の次数番号56:0〜7の値
入力引数xの範囲が +π/4+2nπ〜+3π/4+2nπ以外のケースについても、同様に、入力引数判定、入力引数変換を経て、テーラー級数演算で表現することができる。
前記テーラー級数積和演算命令50のアセンブラ命令の表記を、前記第2の実施形態と同様に、下記のように定義する。ftrimaddはテーラー級数積和演算命令50のアセンブラ命令表記、< >内はアセンブラ命令ftrimaddのオペランドである。
<積和演算の積演算の他方の入力レジスタ番号>
<テーラー級数の次数番号>
<積和演算の演算結果の出力レジスタ番号>
ここで、積和演算の積演算の一方の入力レジスタ番号32を“6”、積和演算の積演算の他方の入力レジスタ番号33を“0”もしくは“2”、積和演算の演算結果の出力レジスタ番号34を“6”に設定する。そして、レジスタ番号iを%fiで表記し、%f0=−0、%f2=−y2、%f4=1、%f6=zであるとする。
ftrimaddd %f6, %f0, 7, %f6
ftrimaddd %f6, %f2, 6, %f6
ftrimaddd %f6, %f2, 5, %f6
ftrimaddd %f6, %f2, 4, %f6
ftrimaddd %f6, %f2,3, %f6
ftrimaddd %f6, %f2,2, %f6
ftrimaddd %f6, %f2,1, %f6
ftrimaddd %f6, %f2,0, %f6
fmuld %f6, %f4, %f6
fmuldは、z=z・1の積演算を実行するアセンブラ命令である。
図5は、本発明の第4実施形態である演算処理装置の主要部の構成を示す図である。図5において、図3の構成要素と同じ構成要素には同じ符号を付与している。
本実施形態のテーラー級数積和演算命令70は、5つのフィールド71〜75から構成される。フィールド71には「命令種別コード(テーラー級数積和演算命令コート゛)が、フィールド72には「積和演算の積演算の他方の入力レジスタ番号」が、フィールド73には「積和演算の演算結果の出力レジスタ番号」が設定される。また、フィールド74には「係数テーブルのセット番号を収めたレジスタ番号」が、フィールド75には「テーラー級数の次数番号」が設定される。
定フィールドを削減できるという効果が得られる。
図6は、本発明の第5実施形態である演算処理装置のシステム構成を示すブロック図である。図6において、図1と同じ構成要素には同一の符号を付与している。
図7は、本発明の第6の実施形態である演算処理装置の主要部を示す図である。図7において、図3及び図6の構成要素と同一の構成要素には同じ符号を付与している。
係数テーブルセット更新命令100は、浮動小数点積和演算器1050に積演算を実行させ、その演算結果を、係数テーブルセット内の指定された係数テーブルの指定されたテーラー級数の次数番号の記憶領域に書き込ませる命令である。演算処理装置6は、この係数テーブルセット更新命令100を実行して、係数テーブルセット90の係数データを更新する。
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々に変形して実施することができる。
オペランドのデータを格納するレジスタ手段と、
該レジスタ手段に格納されたオペランドのデータを読み出すレジスタデータ読み出し手段と、
数学関数のテーラー級数演算の係数データを格納する係数テーブルを記憶する係数テーブルセット記憶手段と、
前記数学関数のテーラー級数の次数情報と前記係数テーブルの識別情報を用いて、前記係数テーブルセット記憶手段から、前記数学関数のテーラー級数の係数データを読み出す係数データ読み出し手段と、
該係数データ読み出し手段により読み出された前記係数データと前記レジスタ手段から読み出されたデータもしくはバイパスデータを用いて、前記数学関数のテーラー級数演算を実行する浮動小数点積和演算器と、
を備えることを特徴とする演算処理装置。
(付記2)
付記1記載の演算処理装置であって、
前記係数テーブルは、偶関数である数学関数については偶数の次数の係数データのみを格納し、奇関数である数学関数については奇数の次数の係数データのみを格納することを特徴とする。
(付記3)
付記2記載の演算処理装置であって、
前記奇関数は正弦関数(sin(x))であり、前記偶関数は余弦関数(cos(x))であり、
前記係数テーブルセット記憶手段は、前記正弦関数の係数テーブルと前記余弦関数の係数テーブルを備えることを特徴とする。
(付記4)
付記3記載の演算処理装置であって、
前記正弦関数または前記余弦関数をテーラー級数演算で演算する際、それらの数学関数の入力引数xの値の範囲に応じて、前記正弦関数の係数テーブルと前記余弦関数の係数テーブルを使い分けることを特徴とする。
(付記5)
付記4記載の演算処理装置であって、
前記正弦関数または前記余弦関数の入力引数xが−π/4〜+π/4の範囲外である場合には、前記正弦関数または前記余弦関数の入力引数xが−π/4〜+π/4の範囲内となるような入力引数変換を行い、該入力引数変換により得られる正弦関数または余弦関数の係数テーブルの係数データを用いてテーラー級数演算を実行することを特徴とする。
(付記6)
付記1記載の演算処理装置であって、さらに、
前記係数データ読み出し手段により読み出された前記係数テーブルセット記憶手段内の係数データと、前記レジスタデータ読み出し手段により読み出された前記レジスタ手段に
格納されたデータもしくはバイパスデータを入力し、浮動小数点演算命令の種別を示す命令種別コードに応じて、前記2つの入力データの内、いずれか一方の入力データを前記浮動小数点積和演算器に選択出力する選択出力手段を備え、
該選択出力手段は、前記命令種別コードがテーラー級数積和演算命令を示している場合には、前記係数データを前記浮動小数点積和演算器に出力することを特徴とする。
(付記7)
付記1または6記載の演算処理装置であって、さらに、
テーラー級数積和演算命令を示す命令種別コードを設定するフィールドと、浮動小数点積和演算の積演算の一方の被演算値を格納するレジスタを指示する第1の情報を設定するフィールドと、前記浮動小数点積和演算の積演算の他方の被演算値を格納するレジスタを指定する第2の情報を設定するフィールドと、
前記浮動小数点積和演算の演算結果を出力すべきレジスタを指定する第3の情報を設定するフィールドと、前記係数テーブルの識別情報を格納しているレジスタを指定する第4の情報を設定するフィールドと、テーラー級数の次数を指定する第5の情報を設定するフィールドから成るテーラー級数積和演算命令を備え、
該テーラー級数積和演算命令のデコード結果に応じて、前記レジスタデータ読み出し手段と前記係数データ読み出し手段により、前記レジスタ手段と前記係数テーブルセット記憶手段から、前記浮動小数点積和演算器がテーラー級数演算を実行する際に必要なデータを読み出し、該データを前記浮動小数点積和演算器に供給することを特徴とする。
(付記8)
付記1または6記載の演算処理装置であって、さらに、
テーラー級数積和演算命令を示す命令種別コードを設定するフィールドと、浮動小数点積和演算の積演算の一方の被演算値を格納するレジスタを指示する第1の情報を設定するフィールドと、前記浮動小数点積和演算の積和演算の積演算の他方の被演算値を格納するレジスタを指定する第2の情報を設定するフィールドと、前記浮動小数点積和演算の演算結果を出力すべきレジスタを指定する第3の情報を設定するフィールドと、テーラー級数の次数を指定する第4の情報を設定するフィールドから成るテーラー級数積和演算命令を備え、
前記第2の情報で指定されるレジスタのデータの一部のビットを、前記係数テーブルの識別情報を指定する情報として用い、前記テーラー級数積和演算命令のデコード結果に応じて、前記レジスタデータ読み出し手段と前記係数データ読み出し手段により、前記レジスタ手段と前記係数テーブルセット記憶手段から、前記浮動小数点積和演算器がテーラー級数演算を実行する際に必要なデータを読み出し、該データを前記浮動小数点積和演算器に供給することを特徴とする。
(付記9)
付記1または6記載の演算処理装置であって、さらに、
テーラー級数積和演算命令を示す命令種別コードを設定するフィールドと、浮動小数点積和演算の積演算の一方の被演算値を格納するレジスタを指示する第1の情報を設定するフィールドと、前記浮動小数点積和演算の積和演算の積演算の他方の被演算値を格納するレジスタを指定する第2の情報を設定するフィールドと、前記浮動小数点積和演算の演算結果を出力すべきレジスタを指定する第3の情報を設定するフィールドと、テーラー級数の次数を指定する第4の情報を設定するフィールドから成るテーラー級数積和演算命令を備え、
前記第1の情報で指定されるレジスタのデータの一部のビットを、前記係数テーブルの識別情報を指定する情報として用い、前記テーラー級数積和演算命令のデコード結果に応じて、前記レジスタデータ読み出し手段と前記係数データ読み出し手段により、前記レジスタ手段と前記係数テーブルセット記憶手段から、前記浮動小数点積和演算器がテーラー級数演算を実行する際に必要なデータを読み出し、該データを前記浮動小数点積和演算器に供給することを特徴とする。
(付記10)
付記8または9記載の演算処理装置であって、
前記指定されるレジスタのデータの一部のビットは、符号ビットであることを特徴とする。
(付記11)
付記10記載の演算処理装置であって、さらに、
前記指定されるレジスタのデータの符号ビットを所定の値に設定し、該設定後のレジスタのデータを前記浮動小数点積和演算器に出力する符号ビット設定手段を備えることを特徴とする。
(付記12)
付記11記載の演算処理装置であって、
前記符号ビット設定手段は、
前記命令種別コードと前記指定されるレジスタのデータの符号ビットを入力し、前記命令種別コードがテーラー級数積和演算命令であるときにのみ、前記所定の値を出力するアンドゲート手段と、
前記指定されるレジスタのデータの符号ビットを、前記アンドゲート手段の出力するビットに置き換える符号ビット置き換え手段と、
を備えることを特徴とする。
(付記13)
付記8または9記載の演算処理装置であって、
前記指定されるレジスタのデータの一部のビットは仮数部の下位ビットであることを特徴とする。
(付記14)
付記7、8記載の演算処理装置であって、さらに、
浮動小数点積和演算の積演算の一方の被演算値を格納するレジスタの番号を指定する付記7、8記載の第1の情報を設定するフィールドを省略し、
代わりに、浮動小数点積和演算の演算結果を出力すべきレジスタを指定する付記7、8記載の第3の情報を設定するフィールドを、前記浮動小数点積和演算の積演算の一方の被演算値を格納するレジスタを指定する情報に用い、
該テーラー級数積和演算命令のデコード結果に応じて、前記レジスタデータ読み出し手段と前記係数データ読み出し手段により、前記レジスタ手段と前記係数テーブルセット記憶手段から、前記浮動小数点積和演算器がテーラー級数演算を実行する際に必要なデータを読み出し、該データを前記浮動小数点積和演算器に供給することを特徴とする。
(付記15)
付記7、9記載の演算処理装置であって、さらに、
浮動小数点積和演算の積演算の他方の被演算値を格納するレジスタの番号を指定する付記7、9記載の第2の情報を設定するフィールドを省略し、
代わりに、浮動小数点積和演算の演算結果を出力すべきレジスタを指定する付記7、9記載の第3の情報を設定するフィールドを、前記浮動小数点積和演算の積演算の他方の被演算値を格納するレジスタを指定する情報に用い、
該テーラー級数積和演算命令のデコード結果に応じて、前記レジスタデータ読み出し手段と前記係数データ読み出し手段により、前記レジスタ手段と前記係数テーブルセット記憶手段から、前記浮動小数点積和演算器がテーラー級数演算を実行する際に必要なデータを読み出し、該データを前記浮動小数点積和演算器に供給することを特徴とする。
(付記16)
付記1乃至15のいずれか1項に記載の演算処理装置であって、
前記係数テーブルセット記憶手段は、データ読み出し専用のメモリであることを特徴とする。
(付記17)
付記1乃至15のいずれか1項に記載の演算処理装置であって、
前記係数テーブルセット記憶手段は、データの書き換えが可能なメモリであることを特
徴とする。
(付記18)
付記17記載の演算処理装置であって、さらに、
係数テーブルを指定する係数テーブル指定情報と、テーラー級数の次数を指定する次数指定情報により、前記係数テーブルセット記憶手段内のデータの設定位置を指定次数指定することを特徴とする。
(付記19)
付記18記載の演算処理装置であって、さらに、
前記係数テーブルセット記憶手段内の前記設定位置に、係数データを設定する係数テーブルセット更新手段を備えることを特徴とする。
(付記20)
付記19記載の演算処理装置であって、さらに、
前記係数テーブルのデータ更新を指示する命令種別コードを設定するフィールドと、積和演算の積演算の一方の被演算値を格納するレジスタを指定する第1の情報を設定するフィールドと、積和演算の積演算の他方の被演算値を格納するレジスタを指定する第2の情報を設定するフィールドと、前記係数テーブルの識別情報を格納しているレジスタを指定する第3の情報を設定するフィールドと、テーラー級数の次数情報を指定する第4の情報を設定するフィールドから成る係数テーブルセット更新命令を備え、
前記係数テーブルセット更新手段は、前記係数テーブルセット更新命令のデコード結果に応じて、前記第1の情報で指定される第1のレジスタの値と前記第2の情報で指定される第2のレジスタの値の積演算を前記浮動小数点積和演算器に実行させ、その積演算結果を、前記第3の情報で指定されるレジスタの値によって指定される係数テーブルの、前記第4の情報によって指定される次数の係数データの格納領域に書き込むことを特徴とする。
10 係数テーブルセット(ROM)
11 sin(x) の係数テーブル
12 cos(x)の係数テーブル
21 テーラー級数の次数番号
22 係数テーブルのセット番号
23 命令種別コード
26、27 マルチプレクサ
2 第2の実施形態の演算処理装置
30 第2の実施形態のテーラー級数積和演算命令
31 命令種別コード(テーラー級数積和演算命令コート゛)の設定フィールド
32 積和演算の積演算の一方の入力レジスタ番号の設定フィールド
33 積和演算の積演算の他方の入力レジスタ番号の設定フィールド
34 積和演算の演算結果の出力レジスタ番号の設定フィールド
35 係数テーブルのセット番号を収めたレジスタ番号の設定フィールド
36 テーラー級数の次数番号の設定フィールド
40 レジスタ
2031〜2034 マルチプレクサ
3 第3の実施形態の演算処理装置
50 第3の実施形態のテーラー級数積和演算命令
51 命令種別コード(テーラー級数積和演算命令コート゛)の設定フィールド
52 積和演算の積演算の一方の入力レジスタ番号の設定フィールド
53 積和演算の積演算の他方の入力レジスタ番号の設定フィールド
54 積和演算の演算結果の出力レジスタ番号の設定フィールド
55 テーラー級数の次数番号の設定フィールド
61 アンドゲート
61a アンドゲート61の一方の入力端子
61b アンドゲート61の他方の入力端子
65 レジスタr2のデータが流れる信号線
4 第4の実施形態の演算処理装置
70 第4の実施形態のテーラー級数積和演算命令
71 命令種別コード(テーラー級数積和演算命令コート゛)の設定フィールド
72 積和演算の積演算の他方の入力レジスタ番号の設定フィールド
73 積和演算の演算結果の出力レジスタ番号の設定フィールド
74 係数テーブルのセット番号を収めたレジスタ番号の設定フィールド
75 テーラー級数の次数番号の設定フィールド
5 本発明の第5実施形態の演算処理装置
90 係数テーブルセット(RAM)
91 マルチプレクサ
6 本発明の第6実施形態の演算処理装置
93 マルチプレクサ
100 係数テーブルセット更新命令
101 命令種別コード(係数テーブル更新命令コード)の設定フィールド
102 積和演算の積演算の一方の入力レジスタ番号の設定フィールド
103 積和演算の積演算の他方の入力レジスタ番号の設定フィールド
104 係数テーブルのセット番号を収めたレジスタ番号の設定フィールド
105 テーラー級数の次数番号の設定フィールド
r1、r2、r2、W11 レジスタ番号
Claims (15)
- 積和演算の乗数である第1のオペランドと被乗数である第2のオペランドと加算数である第3のオペランドを保持するレジスタと、
前記レジスタに保持された第1乃至第3のオペランドを読出すオペランド読出部と、
テーラー級数の各項の係数を表す係数データを格納する係数テーブルを関数毎に記憶するテーブル記憶部と、
前記テーラー級数の各項の次数を表す次数情報と演算対象である関数に対応した係数テーブルを識別する識別情報を用いて、前記テーブル記憶部から係数データを読出す係数データ読出部と、
入力した演算命令の種別を示す命令種別コードが前記テーラー級数の積和演算を行うテーラー級数積和演算命令を示している場合には、前記テーブル記憶部から読み出された係数データと前記レジスタから読み出された第1及び第2のオペランドを出力するとともに、前記命令種別コードが前記テーラー級数積和演算命令以外の積和演算命令を示している場合には、前記レジスタから読み出された第1乃至第3のオペランドを出力する選択部と、
前記命令種別コードが前記テーラー級数積和演算命令を示している場合には、前記テーブル記憶部から読み出された係数データと前記レジスタから読み出された第1及び第2のオペランドを用いて前記関数のテーラー級数演算を実行し、前記命令種別コードが前記テーラー級数積和演算命令以外の積和演算命令を示している場合には、前記レジスタから読み出された第1乃至第3のオペランドを用いて、前記テーラー級数積和演算命令以外の積和演算命令を実行する演算器を有することを特徴とする演算処理装置。 - 前記演算処理装置において、
前記係数テーブルは、偶関数である数学関数については偶数の次数の係数データのみを格納し、奇関数である数学関数については奇数の次数の係数データのみを格納することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において、
前記奇関数は正弦関数sin(x)であり(xは引数)、前記偶関数は余弦関数cos(x)であり、
前記テーブル記憶部は、前記正弦関数の係数テーブルと前記余弦関数の係数テーブルを有することを特徴とする請求項2記載の演算処理装置。 - 前記演算処理装置において、
前記係数データ読出部は、
前記正弦関数又は前記余弦関数をテーラー級数演算で演算する場合、引数xの値が取り得る範囲に応じて、関数に対応する係数テーブルから係数データを読出すことを特徴とする請求項3記載の演算処理装置。 - 前記演算処理装置はさらに、
前記正弦関数又は前記余弦関数の引数xが−π/4〜+π/4(πは円周率)の範囲外である場合には、前記正弦関数又は前記余弦関数の引数xが−π/4〜+π/4の範囲内となるように前記引数xから所定値を加減算した引数yを新たな引数とする引数の変換を行う変換部を有し、
前記演算部は、前記新たな引数の変換により得られた関数に対応する係数テーブルの係数データを用いて前記関数のテーラー級数演算を実行することを特徴とする請求項4記載の演算処理装置。 - 前記演算処理装置において、
前記テーラー級数積和演算命令は、前記テーラー級数積和演算命令を示す命令種別コードを含むフィールドと、前記第1のオペランドを保持するレジスタを指定する第1の情報を含むフィールドと、前記第2のオペランドを保持するレジスタを指定する第2の情報を含むフィールドと、前記テーラー級数積和演算命令の演算結果を出力するレジスタを指定する第3の情報を含むフィールドと、前記係数テーブルの識別情報を保持するレジスタを指定する第4の情報を含むフィールドと、テーラー級数の次数を指定する第5の情報を含むフィールドを有し、
前記テーラー級数積和演算命令のデコード結果に応じて、前記テーブル記憶部から読み出された係数データを前記演算器に供給することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において、
前記テーラー級数積和演算命令は、前記テーラー級数積和演算命令を示す命令種別コードを含むフィールドと、前記第1のオペランドを保持するレジスタを指定する第1の情報を含むフィールドと、前記第2のオペランドを保持するレジスタを指定する第2の情報を含むフィールドと、前記テーラー級数積和演算命令の演算結果を出力するレジスタを指定する第3の情報を含むフィールドと、テーラー級数の次数を指定する第4の情報を含むフィールドを有し、
前記第1の情報又は前記第2の情報で指定されるレジスタが保持するオペランドの一部の情報を、前記係数テーブルの識別情報として用い、前記テーラー級数積和演算命令のデコード結果に応じて、前記テーブル記憶部から読み出された係数データを前記演算器に供給することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において、
前記第1の情報又は前記第2の情報で指定されるレジスタが保持するオペランドの一部の情報は、前記オペランドの符号ビットであることを特徴とする請求項7記載の演算処理装置。 - 前記演算処理装置はさらに、
前記第1の情報又は前記第2の情報で指定されるレジスタが保持するオペランドの符号ビットを所定の値に設定したオペランドを前記演算器に出力する符号ビット設定部を有することを特徴とする請求項8記載の演算処理装置。 - 前記演算処理装置において、
前記符号ビット設定部は、
前記命令種別コードと前記第1の情報又は前記第2の情報で指定されるレジスタが保持するオペランドの符号ビットを入力する論理積回路と、
前記命令種別コードと前記第1の情報又は前記第2の情報で指定されるレジスタが出力するオペランドの符号ビットを、前記論理積回路が出力する値に置き換える符号ビット置換部を有することを特徴とする請求項9記載の演算処理装置。 - 前記演算処理装置において、
前記第1の情報又は前記第2の情報で指定されるレジスタが保持するオペランドの一部の情報は、仮数部に含まれるいずれかのビットであることを特徴とする請求項7記載の演算処理装置。 - 前記演算処理装置において、
前記テーラー級数積和演算命令は、前記テーラー級数積和演算命令を示す命令種別コードを含むフィールドと、前記第2のオペランドを保持するレジスタを指定する第1の情報を含むフィールドと、前記テーラー級数積和演算命令の演算結果を出力するレジスタを指定する第2の情報を含むフィールドと、前記係数テーブルの識別情報を保持するレジスタを指定する第3の情報を含むフィールドと、テーラー級数の次数を指定する第4の情報を含むフィールドを有し、
前記第2の情報を含むフィールドを、前記積和演算の積演算の一方のオペランドを保持するレジスタを指定する情報に用い、前記テーラー級数積和演算命令のデコード結果に応じて、前記テーブル記憶部から読み出された係数データ又は前記レジスタから読み出されたオペランドを前記演算器に供給することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置はさらに、
前記係数テーブルが格納する係数データを更新する係数テーブル更新部を有することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において、
前記テーラー級数積和演算命令は、前記テーラー級数積和演算命令の実行及び前記係数テーブルのデータ更新を指示する命令種別コードを含むフィールドと、前記第1のオペランドを保持するレジスタを指定する第1の情報を含むフィールドと、前記第2のオペランドを保持するレジスタを指定する第2の情報を含むフィールドと、前記係数テーブルの識別情報を保持するレジスタを指定する第3の情報を含むフィールドと、テーラー級数の次数を指定する第4の情報を含むフィールドを有し、
前記係数テーブル更新部は、前記第3の情報で指定されるレジスタの値によって指定される係数テーブルが保持する係数データのうち、前記第4の情報で指定される次数の係数データを、前記命令種別コードのデコード結果に応じて、前記第1の情報で指定される第1のレジスタの値と前記第2の情報で指定される第2のレジスタの値の積演算の積演算結果で更新することを特徴とする請求項13記載の演算処理装置。 - 積和演算の乗数である第1のオペランドと被乗数である第2のオペランドと加算数である第3のオペランドを保持するレジスタと、テーラー級数の各項の係数を表す係数データを格納する係数テーブルを関数毎に記憶するテーブル記憶部を有する演算処理装置の制御方法において、
前記レジスタに保持された第1乃至第3のオペランドを読出し、
前記テーラー級数の各項の次数を表す次数情報と演算対象である関数に対応した係数テーブルを識別する識別情報を用いて、前記テーブル記憶部から係数データを読出し、
入力した演算命令の種別を示す命令種別コードが前記テーラー級数の積和演算を行うテーラー級数積和演算命令を示している場合には、前記テーブル記憶部から読み出された係数データと前記レジスタから読み出された第1及び第2のオペランドを出力するとともに、前記命令種別コードが前記テーラー級数積和演算命令以外の積和演算命令を示している場合には、前記レジスタから読み出された第1乃至第3のオペランドを出力し、
前記命令種別コードが前記テーラー級数積和演算命令を示している場合には、前記テーブル記憶部から読み出された係数データと前記レジスタから読み出された第1及び第2のオペランドを用いて前記関数のテーラー級数演算を実行し、前記命令種別コードが前記テーラー級数積和演算命令以外の積和演算命令を示している場合には、前記レジスタから読み出された第1乃至第3のオペランドを用いて、前記テーラー級数積和演算命令以外の積和演算命令を実行することを特徴とする演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007069614A JP4755129B2 (ja) | 2007-03-16 | 2007-03-16 | 演算処理装置及び演算処理装置の制御方法 |
US12/047,782 US8655935B2 (en) | 2007-03-16 | 2008-03-13 | Processing apparatus and control method performing taylor series operation associated with executing floating point instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007069614A JP4755129B2 (ja) | 2007-03-16 | 2007-03-16 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008234076A JP2008234076A (ja) | 2008-10-02 |
JP4755129B2 true JP4755129B2 (ja) | 2011-08-24 |
Family
ID=39763743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007069614A Active JP4755129B2 (ja) | 2007-03-16 | 2007-03-16 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8655935B2 (ja) |
JP (1) | JP4755129B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5304483B2 (ja) | 2009-06-30 | 2013-10-02 | 富士通株式会社 | 演算処理装置 |
US9015217B2 (en) * | 2012-03-30 | 2015-04-21 | Apple Inc. | Transcendental and non-linear components using series expansion |
CN104169866B (zh) * | 2012-03-30 | 2017-08-29 | 富士通株式会社 | 运算处理装置以及运算处理装置的控制方法 |
US9606796B2 (en) * | 2013-10-30 | 2017-03-28 | Texas Instruments Incorporated | Computer and methods for solving math functions |
JP6933810B2 (ja) | 2018-01-24 | 2021-09-08 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
CN108388446A (zh) | 2018-02-05 | 2018-08-10 | 上海寒武纪信息科技有限公司 | 运算模块以及方法 |
WO2023120403A1 (ja) * | 2021-12-23 | 2023-06-29 | 国立大学法人奈良先端科学技術大学院大学 | Cgraによる疎行列計算とマージソートに関する演算ユニット |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034603A (ja) * | 1999-07-22 | 2001-02-09 | Matsushita Electric Ind Co Ltd | 積和演算処理装置 |
JP2005174077A (ja) * | 2003-12-12 | 2005-06-30 | Fujitsu Ltd | 関数演算方法及び関数演算回路 |
JP2005338929A (ja) * | 2004-05-24 | 2005-12-08 | Renesas Technology Corp | 半導体装置 |
JP2006005915A (ja) * | 2004-05-18 | 2006-01-05 | Rohm Co Ltd | 三角関数波生成回路、およびそれを用いたdtmf信号生成回路、音信号生成回路、ならびに通信装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5042001A (en) * | 1989-10-02 | 1991-08-20 | Cyrix Corporation | Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier |
JPH1055343A (ja) * | 1996-08-13 | 1998-02-24 | Fuji Xerox Co Ltd | 演算装置及び演算システム |
JP3790307B2 (ja) * | 1996-10-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
US5963460A (en) * | 1996-12-17 | 1999-10-05 | Metaflow Technologies, Inc. | Apparatus for computing transcendental functions quickly |
US7509363B2 (en) * | 2001-07-30 | 2009-03-24 | Ati Technologies Ulc | Method and system for approximating sine and cosine functions |
US7117238B1 (en) * | 2002-09-19 | 2006-10-03 | Nvidia Corporation | Method and system for performing pipelined reciprocal and reciprocal square root operations |
-
2007
- 2007-03-16 JP JP2007069614A patent/JP4755129B2/ja active Active
-
2008
- 2008-03-13 US US12/047,782 patent/US8655935B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034603A (ja) * | 1999-07-22 | 2001-02-09 | Matsushita Electric Ind Co Ltd | 積和演算処理装置 |
JP2005174077A (ja) * | 2003-12-12 | 2005-06-30 | Fujitsu Ltd | 関数演算方法及び関数演算回路 |
JP2006005915A (ja) * | 2004-05-18 | 2006-01-05 | Rohm Co Ltd | 三角関数波生成回路、およびそれを用いたdtmf信号生成回路、音信号生成回路、ならびに通信装置 |
JP2005338929A (ja) * | 2004-05-24 | 2005-12-08 | Renesas Technology Corp | 半導体装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2008234076A (ja) | 2008-10-02 |
US8655935B2 (en) | 2014-02-18 |
US20080228846A1 (en) | 2008-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9916130B2 (en) | Apparatus and method for vector processing | |
US10216479B2 (en) | Apparatus and method for performing arithmetic operations to accumulate floating-point numbers | |
JP4755129B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US11188330B2 (en) | Vector multiply-add instruction | |
US7236995B2 (en) | Data processing apparatus and method for converting a number between fixed-point and floating-point representations | |
US7996662B2 (en) | Floating point status/control register encodings for speculative register field | |
US10489153B2 (en) | Stochastic rounding floating-point add instruction using entropy from a register | |
US7565513B2 (en) | Processor with power saving reconfigurable floating point unit decoding an instruction to single full bit operation or multiple reduced bit operations | |
US6295597B1 (en) | Apparatus and method for improved vector processing to support extended-length integer arithmetic | |
JPH0863353A (ja) | 掛け算累算命令を使用したデータ処理 | |
JP6933810B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
WO2018138469A1 (en) | An apparatus and method for processing input operand values | |
US9703626B2 (en) | Recycling error bits in floating point units | |
US20060184594A1 (en) | Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation | |
US20060184602A1 (en) | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value | |
US10445066B2 (en) | Stochastic rounding floating-point multiply instruction using entropy from a register | |
US20100115232A1 (en) | Large integer support in vector operations | |
US8604946B2 (en) | Data processing device and data processing method | |
US20080209185A1 (en) | Processor with reconfigurable floating point unit | |
JP2021507348A (ja) | ベクトル・キャリー付き加算命令 | |
JP2003241960A (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
JP2001092633A (ja) | 複数の結果を出力する命令を有する演算装置 | |
Smith et al. | 64 Bits | |
JP3547316B2 (ja) | プロセッサ | |
JP2011145886A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110426 |
|
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: 20110524 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110526 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4755129 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |