JP6933810B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6933810B2 JP6933810B2 JP2018009607A JP2018009607A JP6933810B2 JP 6933810 B2 JP6933810 B2 JP 6933810B2 JP 2018009607 A JP2018009607 A JP 2018009607A JP 2018009607 A JP2018009607 A JP 2018009607A JP 6933810 B2 JP6933810 B2 JP 6933810B2
- Authority
- JP
- Japan
- Prior art keywords
- bqx
- input
- bit
- coefficient
- output
- 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
Images
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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/04—Trigonometric functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Description
レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビットと、前記第2の入力の最下位ビット(rs2[0]=bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の第1ビット(rs2[1]=bqx[1])と前記第1のセレクタの出力の符号ビットとの排他的論理和を演算する排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビット(rs2[0]=bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有し、
三角関数sin(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビット(bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納し前記第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、当該選択されたデータの符号ビット([63])と前記展開点識別データの第1ビット(bqx[1])との排他的論理和を前記排他的論理和回路により求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数sin(x)を算出する、演算処理装置である。
レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の最下位ビット(rs2[0]=bqx[0])と第1ビット(rs2[1]=bqx[1])との第1の排他的論理和を演算する第1の排他的論理和回路と、
前記第1の排他的論理和のビットと前記第1のセレクタの出力の符号ビットとの第2の排他的論理和を演算する第2の排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])を前記係数セレクタに供給する第2のバイパス経路(BYP_2)とを有し、
三角関数cos(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビットの反転ビット(~bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納して第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、前記第1の排他的論理和回路により、前記展開点識別データの最下位ビット(bqx[0])と第1ビット(bqx[1])の第1の排他的論理和を求め、前記第2の排他的論理和回路により、前記第1の排他的論理和と前記第1のセレクタで選択されたデータの符号ビット([63])との第2の排他的論理和を求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数cos(x)を算出する、演算処理装置である。
図1は、演算処理装置の概略を示す図である。この演算処理装置は、前述の補助命令を実行するための構成を有する。まず、概略構成を説明すると、演算処理装置1は、積和演算器100と、積和演算器の演算結果を一時的に格納するリネーミングレジスタ130と、リネーミングレジスタ130に格納した演算結果を演算結果の順番が来た時に格納する格納レジスタ140とを有する。これらのレジスタは、複数のレジスタを有するレジスタファイルである。以下簡略的にレジスタと称する。また、外部のメインメモリ111のデータの一部を記憶するキャッシュメモリを有するキャッシュ120から読み出されたデータが、リネーミングレジスタ130または格納レジスタ140に格納される。
次に、三角関数のテイラー級数の展開式と、上記の2つの補助命令Ftrismuld、Ftrisseldと、テイラー級数の積和演算命令Ftrimadddと、乗算命令Fmuldについて説明する。図3にて数学関数f(x)のテイラー級数の展開式を、図4にて三角関数sin(y),cos(y)のテイラー級数の展開式をそれぞれすでに説明した。
(1)x0=0, 2π, 4π…の場合、sin(x) = sin (x-x0) = sin(y)
(2)x0=0+π/2, 2π+π/2, 4π+π/2…の場合、sin(x) = cos (x-x0) = cos(y)
(3)x0=0+π, 2π+π, 4π+π…の場合、sin(x) = -sin (x-x0) = -sin(y)
(4)x0=0+3π/2, 2π+3π/2, 4π+3π/2…の場合、sin(x) = -cos (x-x0) = -cos(y)
そこで、入力xが上記4種類の展開点x0を中心とする前後±π/4の範囲、(2qx-1)π/4<x≦(2qx+1)π/4 (qxは整数)、内の場合、それぞれsin(x) を以下のようにして演算することができる。
(1)-π/4 < x ≦ +π/4(qx=4N,Nは整数)では、x0=0等, sin(x) = sin (x-x0) = sin(y)
(2)+π/4 < x ≦ +3π/4 (qx=4N+1)では、x0=π/2等, sin(x) = cos (x-x0) = cos(y)
(3)+3π/4 < x ≦ +5π/4 (or -5π/4 < y=x-x0 < -3π/4) (qx=4N+2)では、
x0=π or -π等, sin(x) = -sin (x-x0) = -sin(y)
(4)-3π/4 < x ≦ -π/4 (qx=4N+3)では、x0=3π/2 or -π/2等,
sin(x) = -cos (x-x0) = -cos(y)
上記のように入力xを4つ展開点x0と4つの狭い範囲に分けることで、それぞれの範囲内の入力xに対する三角関数sin(x)の値は、テイラー級数を少ない級数までの展開で、高い精度の値を得ることができる。
qx = int(x/(π/2)) : int(k)はkの小数点以下を切り捨てた整数
bqx = qx mod 4 = qx % 4 :mod, %は剰余である。
そして、x0 = qx * π/2であるので、
y = x - x0 = x - (qx * π/2)
そこで、以下、bqx、特にその下位2ビットbqx[1:0]を展開点識別データと定義する。
(1)bqx[1:0] = 00の場合のsin(y)は、括弧の多項式にyを乗じる。
(2)bqx[1:0] = 01の場合のcos(y)は、括弧の多項式に1.0を乗じる。
(3)bqx[1:0] = 10の場合の-sin(y)は、括弧の多項式に(-y)を乗じる。
(4)bqx[1:0] = 11の場合の-cos(y)は、括弧の多項式に(-1.0)を乗じる。
(1)bqx[1:0]=00の場合は、sin(x)の係数と乗数yを使用し
(2)bqx[1:0]=01の場合は、cos(x)の係数と乗数1.0を使用し
(3)bqx[1:0]=00の場合は、sin(x)の係数と乗数-yを使用し
(4)bqx[1:0]=01の場合は、cos(x)の係数と乗数-1.0を使用する。
図8は、第1、第2の補助命令Ftrismuld、Ftrisseldのアセンブリ言語表記と、三角関数sin(x)に適用した場合のそれぞれの具体例とを示す図表である。
Ftrismuld rs1,rs2,rd
そして、処理内容は、以下の通りである。
rd = (rs1 * rs1) | (rs2[0] << 63)
つまり、処理内容は、rs1で指定されるレジスタ(例えば倍精度浮動小数点レジスタ)の値を二乗し、rs2で指定されるレジスタの最下位ビットrs2[0]を符号ビット[63]とする結果を、rdで指定されるレジスタに格納する、である。
Ftrismuld y,bqx,y2t
rd = (y * y) | (bqx[0] << 63)
つまり、処理内容は、y2を演算し、その最上位ビットである符号ビットを展開点識別データbqxの最下位ビットbqx[0]で置換する、である。y2は正であるので、bqxの最下位ビットbqx[0]で置換する処理は、y2の符号ビット(正)とbqx[0]の論理和演算で良い。
図8に示されるとおり、第2の補助命令Ftrisseldのアセンブリ言語表記は、以下のとおりである。
Ftrisseld rs1,rs2,rd
そして、処理内容は、以下の通りである。
rd = ((rs2[0] ? 1.0 : rs1) ^ (rs2[1] << 63)
つまり、処理内容は、rs1で指定されるレジスタの値か1.0を、rs2で指定されるレジスタの値の最下位ビットrs2[0]で選択し、その値の符号ビットをrs2レジスタの値のビット1、rs2[1]と排他的論理和をとり、rdで指定されるレジスタに格納する、である。^は排他的論理和(EOR)である。
Ftrisseld y,bqx,ys
rd = ((bqx[0] ? 1.0 : y) ^ (bqx[1] << 63)
つまり、処理内容は、bqx[0]=0の場合入力yを、bqx[0]=1の場合1.0をそれぞれ選択し、選択した値の符号ビットとbqx[1]と排他的論理和をとり、rdで指定されるレジスタに格納する、である。つまり、排他的論理和によりbqx[1]=1の場合、選択した値(y又は1.0)の符号ビットが反転される。
図11は、テイラー級数の積和演算命令Ftrimadddと乗算命令Fmuldのアセンブリ言語表記と、三角関数sin(x), cos(x)に適用した場合のそれぞれの具体例とを示す図表である。
Ftrimaddd rs1,rs2,index, rd
そして、処理内容は、以下の通りである。
rd = rs1 * Fabs(rs2) + T[rs2[63]][index]
つまり、処理内容は、rs1で指定される倍精度浮動小数点レジスタの値とrs2で指定される倍精度浮動小数点レジスタの値の絶対値を乗じ、さらに、演算器内にあるテーブルメモリからindexで指定される倍精度数を取り出して加算し、結果をrdで指定される倍精度浮動小数点レジスタに格納する、である。Ftrimadddはsin(x), cos(x)の級数部分の計算を行う。
Ftrimaddd c0,y2t,7, r
r = c0 * Fabs(y2t) + T[y2t[63]][7]
つまり、処理内容は、関数Fabsは絶対値を意味するので、定数c0=0.0に変数y2t=y2の絶対値を乗じ、テーブルTのindex=7(図2の次数番号162)と, y2t[63]=bqx[0](図2のセット番号164)とで選択される係数を加算し、変数rのレジスタに格納する処理である。sin(x)の場合y2t[63]=bqx[0]=0であるので、T[y2t[63]][7]として図2の係数メモリ160内のsin(x)のテイラー級数の15次の係数が選択される。
Ftrimaddd r,y2t,index, r (index=6〜0)
r = r * Fabs(y2t) + T[y2t[63]][index]
つまり、処理内容は、前回の処理結果rに変数y2t=y2の絶対値を乗じ、テーブルTのindex(図2の次数番号162)と, y2t[63]=bqx[0](図2のセット番号164)で選択される係数を加算し、変数rのレジスタに格納する処理である。sin(x)の場合y2t[63]=0であるので、T[y2t[63]][index]として図2の係数メモリ160内のsin(x)のindexに対応するテイラー級数の係数が選択される。
次に、第4の補助命令である乗算命令Fmuldのアセンブリ言語表記は、以下のとおりである。
Fmuld rs1,rs2,rd
そして、処理内容は、以下の通りである。
rd = rs1 * rs2
つまり、処理内容は、rs1で指定される倍精度浮動小数点レジスタの値とrs2で指定される倍精度浮動小数点レジスタの値とを乗算し、rdで指定される倍精度浮動小数点レジスタに格納する、である。
Fmuld r, ys, r
r = r * ys
つまり、第3の補助命令Ftrimadddの演算結果rに、第2の補助命令Ftrisseldの演算結果ysを乗算して変数rのレジスタに格納する処理である。
図12は、三角関数sin(x)のテイラー級数展開の演算の前処理のアセンブラ言語記述によるオペレーションコードと演算内容を示す図表である。図1の演算器の構成も参照して、前処理を具体的に説明する。
次に、三角関数演算の第3の補助命令Ftrimaldddと第4の補助命令である乗算命令Fmuldを用いた後処理を説明する。第3の補助命令Ftrimaldddを繰り返し実行することで、三角関数sin(x)のテイラー展開の演算を高速化できる。
r = 0.0 * y2t[62:0] + 係数7 = 係数7
ここで、fabs(rs2) = fabs(y2t)は、y2t[63:0]の絶対値であるので、図1のAND回路174が、レジスタrs2(nd2)のy2tの符号ビット[63]を、命令種別コードFtrimaddd=1の反転ビット「0」と論理積演算し、符号ビット[63]を必ず「0」(正)に反転する。これは、第1の補助命令Ftrismuldによりy2t[63:0]の符号ビット[63]にbqx[0]が格納され、y2tの符号ビットが係数メモリ160のセレクタ170の選択ビットとして利用されていたからである。そのため、積和演算器100には、AND回路174によりy2tの符号ビット[63]を「0」に変更したy2t[63:0]が入力される。
Ftrimaddd r, y2t, 6, r
この演算処理では、前回のFtrismadddの結果rを積和演算器100の第1の乗算オペランド(第1の入力オペランド)に入力し、AND回路174で絶対値に変更されたy2t[63:0]を第2の乗算オペランド(第2の入力オペランド)に入力する。さらに、係数メモリ係数メモリ160からindex=6, y2t[63]=bqx[0]で抽出された係数(1/13!)を、セレクタ172,180を経由して積和演算器の加算オペランド(第3の入力オペランド)に入力する。そして、積和演算器が以下の演算を実行し、演算結果をレジスタrに格納する。
r = r * y2t[62:0] + 係数6(1/13!)
以下同様にして、次数(index)を順次、5,4,3,2,1,0と下げ、第3の補助命令Ftrimadddと対応するオペレーションコードにより、同様に演算を繰り返し行う。これにより、図13の最後から3段目の演算結果rが得られる。
Fmuld r, ys, r
この演算処理では、補助命令Ftrimadddの繰り返しで求めたレジスタrの値に、前処理で第2の補助命令Ftrisseldで演算していた変数ys(=y, 1.0, -y, -1.0)の値を乗算して、レジスタrに格納する。この演算により、図14の最下行の多項式に、変数ys(=y, 1.0, -y, -1.0)のいずれかが乗算される。その結果、図7に示したとおり、sin(x),-sin(x)の場合は奇関数になり、cos(x), -cos(x)の場合は偶関数になる。
図1の演算処理装置において、三角関数sin(x)をテイラー展開の演算を行う場合、図12に示した前処理で第1、第2の補助命令Ftrismuld、Ftisseldを実行し、次に、図13に示した後処理で第3の補助命令Ftrimadddを繰り返し実行し、更に乗算命令Fmuldを実行する。前処理と後処理との間にはデータの依存関係があり、後処理での第3の補助命令Ftrimadddと乗算命令Fmuldを実行するためには、前処理での第1の補助命令Ftrismuldの結果y2tと第2の補助命令Ftrisseldの結果ysがそれぞれ必要である。
上記では、三角関数sin(x)の例について演算処理装置の改良構造について説明した。それに対して、三角関数cos(x)の場合も同様にして演算処理装置を改良して、クリティカルパスを短縮することができる。
(1)-π/4 < x ≦ +π/4(qx=4N,Nは整数)では、x0=0等, cos(x) = cos (x-x0) = cos(y)
(2)+π/4 < x ≦ +3π/4 (qx=4N+1)では、x0=π/2等, cos(x) = -sin (x-x0) = -sin(y)
(3)+3π/4 < x ≦ +5π/4 (or -5π/4 < y=x-x0 < -3π/4) (qx=4N+2)では、
x0=π or -π等, cos(x) = -cos (x-x0) = -cos(y)
(4)-3π/4 < x ≦ -π/4 (qx=4N+3)では、x0=3π/2 or -π/2等,
cos(x) = sin(x-x0) = sin(y)
図22によれば、bqx[0]=0の場合はcos(x)の係数を選択し、bqx[0]=1の場合はsin(x)の係数を選択すればよい。つまり、反転ビットであれば~bqx[0]=0ではsin(x)の係数、~bqx[0]=1ではcos(x)の係数を選択する。~は反転を意味する。また、後処理の補助命令Ftimadddでは、bqx[0]=0の場合は1.0を選択し、bqx[0]=1の場合はyを選択し、bqx[0]^bqx[1]=0の場合に符号ビットをy2t[63]=0(正)に、bqx[0]^bqx[1]=1の場合に符号ビットをy2t[63]=1(負)にすればよい。
図23は、三角関数cos(x)の場合の前処理の補助命令Ftricmuld、Ftricseldのアセンブリ言語表記と、三角関数cos(x)に適用した場合のそれぞれの具体例とを示す図表である。
Ftricmuld rs1,rs2,rd
そして、処理内容は、以下の通りである。
rd = (rs1 * rs1) | (~rs2[0] << 63)
つまり、処理内容は、rs1で指定されるレジスタ(例えば倍精度浮動小数点レジスタ)の値を二乗し、rs2で指定されるレジスタの最下位ビットの反転~rs2[0]を符号ビット[63]とする結果を、rdで指定されるレジスタに格納する、である。
Ftricmuld y,bqx,y2t
rd = (y * y) | (~bqx[0] << 63)
つまり、処理内容は、y2を演算子、その最上位ビットである符号ビットをbqxの最下位ビットの反転~bqx[0]で置換する、である。y2は正であるので、bqxの最下位ビットの反転~bqx[0]で置換する処理は、y2の符号ビット(正)と~bqx[0]の論理和演算で良い。
第2の補助命令Ftricseldのアセンブリ言語表記は、以下のとおりである。
Ftrisseld rs1,rs2,rd
そして、処理内容は、以下の通りである。
rd = ((rs2[0] ? rs1 : 1.0) ^ ((rs2[1]^rs2[0]) << 63)
つまり、処理内容は、rs1で指定されるレジスタの値か1.0を、rs2で指定されるレジスタの値の最下位ビットrs2[0]で選択し、その値の符号ビット[63]を、rs2レジスタの値の第1ビットrs2[1]と最下位ビットrs2[0]の排他的論理和と、排他的論理和をとり、rdで指定されるレジスタに格納する、である。
Ftricseld y,bqx,ys
rd = ((bqx[0] ? y : 1.0) ^ ((bqx[1]^ bqx[0]) << 63)
つまり、処理内容は、bqx[0]=0の場合1.0を、bqx[0]=1の場合yを選択し、選択した値の符号ビット[63]と、bqx[1]とbqx[0]の排他的論理和と、排他的論理和をとり、rdで指定されるレジスタに格納する、である。つまり、排他的論理和によりbqx[1]^bqx[0]=1の場合、選択した値の符号ビット[63]が反転される。
レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビット(rs2[0]=bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の第1ビット(rs2[1]=bqx[1])と前記第1のセレクタの出力の符号ビットとの排他的論理和を演算する排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビット(rs2[0]=bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有し、
三角関数sin(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビット(bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納し前記第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、当該選択されたデータの符号ビット([63])と前記展開点識別データの第1ビット(bqx[1])との排他的論理和を前記排他的論理和回路により求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数sin(x)を算出する、演算処理装置。
レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の最下位ビット(rs2[0]=bqx[0])と第1ビット(rs2[1]=bqx[1])との第1の排他的論理和を演算する第1の排他的論理和回路と、
前記第1の排他的論理和のビットと前記第1のセレクタの出力の符号ビットとの第2の排他的論理和を演算する第2の排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有し、
三角関数cos(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビットの反転ビット(~bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納して第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、前記第1の排他的論理和回路により、前記展開点識別データの最下位ビット(bqx[0])と第1ビット(bqx[1])の第1の排他的論理和を求め、前記第2の排他的論理和回路により、前記第1の排他的論理和と前記第1のセレクタで選択されたデータの符号ビット([63])との第2の排他的論理和を求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数cos(x)を算出する、演算処理装置。
前記係数メモリは、前記係数インデックスに基づいて前記三角関数のテイラー展開演算式の次数に対応する係数を選択し、前記係数セレクタが前記展開点識別データの最下位ビットに基づいてsin(x)の係数またはcos(x)の係数のいずれかを選択する、付記1または2に記載の演算処理装置。
レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビット(rs2[0]=bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の第1ビット(rs2[1]=bqx[1])と前記第1のセレクタの出力の符号ビットとの排他的論理和を演算する排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビット(rs2[0]=bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有する演算制御装置の制御方法であって、
三角関数sin(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビット(bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納し前記第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、当該選択されたデータの符号ビット([63])と前記展開点識別データの第1ビット(bqx[1])との排他的論理和を前記排他的論理和回路により求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数sin(x)を算出する、演算処理装置の制御方法。
レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の最下位ビット(rs2[0]=bqx[0])と第1ビット(rs2[1]=bqx[1])との第1の排他的論理和を演算する第1の排他的論理和回路と、
前記第1の排他的論理和のビットと前記第1のセレクタの出力の符号ビットとの第2の排他的論理和を演算する第2の排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有する演算制御装置の制御方法であって、
三角関数cos(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビットの反転ビット(~bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納して第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、前記第1の排他的論理和回路により、前記展開点識別データの最下位ビット(bqx[0])と第1ビット(bqx[1])の第1の排他的論理和を求め、前記第2の排他的論理和回路により、前記第1の排他的論理和と前記第1のセレクタで選択されたデータの符号ビット([63])との第2の排他的論理和を求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数cos(x)を算出する、演算処理装置の制御方法。
160:係数メモリ
100:積和演算器
BYP_1:第1のバイパス経路
BYP_2:第2のバイパス経路
188:論理和回路
194、186:排他的論理和回路
bqx:展開点識別データ
qx:第2の展開点識別データ
x0:展開点
y2t:第1変数、yの二乗値
ys:第2変数、yまたは1.0
Ftrismuld、Ftricmuld:第1の補助命令
Ftrisseld、Ftricseld:第2の補助命令
Ftrimaddd:第3の補助命令、テイラー級数展開式の演算命令
Claims (4)
- レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビット(rs2[0]=bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の第1ビット(rs2[1]=bqx[1])と前記第1のセレクタの出力の符号ビットとの排他的論理和を演算する排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビット(rs2[0]=bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有し、
三角関数sin(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビット(bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納し前記第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、当該選択されたデータの符号ビット([63])と前記展開点識別データの第1ビット(bqx[1])との排他的論理和を前記排他的論理和回路により求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数sin(x)を算出する、演算処理装置。 - レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の最下位ビット(rs2[0]=bqx[0])と第1ビット(rs2[1]=bqx[1])との第1の排他的論理和を演算する第1の排他的論理和回路と、
前記第1の排他的論理和のビットと前記第1のセレクタの出力の符号ビットとの第2の排他的論理和を演算する第2の排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有し、
三角関数cos(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビットの反転ビット(~bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納して第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、前記第1の排他的論理和回路により、前記展開点識別データの最下位ビット(bqx[0])と第1ビット(bqx[1])の第1の排他的論理和を求め、前記第2の排他的論理和回路により、前記第1の排他的論理和と前記第1のセレクタで選択されたデータの符号ビット([63])との第2の排他的論理和を求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数cos(x)を算出する、演算処理装置。 - レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビット(rs2[0]=bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の第1ビット(rs2[1]=bqx[1])と前記第1のセレクタの出力の符号ビットとの排他的論理和を演算する排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビット(rs2[0]=bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有する演算制御装置の制御方法であって、
三角関数sin(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビット(bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納し前記第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、当該選択されたデータの符号ビット([63])と前記展開点識別データの第1ビット(bqx[1])との排他的論理和を前記排他的論理和回路により求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数sin(x)を算出する、演算処理装置の制御方法。 - レジスタファイルと、
三角関数のテイラー級数展開の係数を記憶し、係数選択信号により選択される係数を出力する係数セレクタを有する係数メモリと、
第1、第2、第3の入力に対して積和演算を行う積和演算器と、
前記積和演算器の出力を前記レジスタファイルに供給する第1のバイパス経路と、
前記レジスタファイルと前記第1のバイパス経路のいずれかを選択し、前記積和演算器の第1、第2、第3の入力にそれぞれ出力する第1、第2、第3のマルチプレクサと、
前記積和演算器の出力の符号ビット([63])と、前記第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])との論理和を演算する論理和回路と、
前記第1の入力と、値「1.0」とのいずれかを選択する第1のセレクタと、
前記第2の入力の最下位ビット(rs2[0]=bqx[0])と第1ビット(rs2[1]=bqx[1])との第1の排他的論理和を演算する第1の排他的論理和回路と、
前記第1の排他的論理和のビットと前記第1のセレクタの出力の符号ビットとの第2の排他的論理和を演算する第2の排他的論理和回路と、
前記積和演算器の第2の入力の最下位ビットの反転ビット(~rs2[0]=~bqx[0])を前記係数セレクタに供給する第2のバイパス経路とを有する演算制御装置の制御方法であって、
三角関数cos(x)の演算を実行する場合、
前記三角関数の入力xをπ/2で除算した整数(qx)の4の剰余(qx%4)である展開点識別データ(bqx=qx%4)と、前記入力xから前記展開点識別データにπ/2を乗じた展開点x0(bqx*π/2)を減じたy=x-x0とを予め算出し、
前記yと展開点識別データbqxを第1、第2の入力とし、第1変数y2tを出力とする第1の補助命令を実行して、前記積和演算器が前記第1の入力yを二乗して二乗値(y2t)を求め、前記論理和回路により、前記第2の入力である展開点識別データbqxの最下位ビットの反転ビット(~bqx[0])と前記二乗値の符号ビット(y2t[63])との論理和を求め、前記論理和を前記二乗値(y2t)の符号ビットに格納して第1変数y2tを求め、
前記yと展開点識別データbqxを第1、第2の入力とし、第2変数ysを出力とする第2の補助命令を実行して、前記第1のセレクタにより、前記第1の入力yまたは値「1.0」のいずれかを前記展開点識別データの最下位ビット(bqx[0])に基づいて選択し、前記第1の排他的論理和回路により、前記展開点識別データの最下位ビット(bqx[0])と第1ビット(bqx[1])の第1の排他的論理和を求め、前記第2の排他的論理和回路により、前記第1の排他的論理和と前記第1のセレクタで選択されたデータの符号ビット([63])との第2の排他的論理和を求め、前記選択されたデータの符号ビットに格納して前記第2変数ysを求め、
前回の演算出力(r)と前記第1変数(y2t)と係数インデックスを第1、第2、第3の入力とし積和演算を行う第3の補助命令を、係数インデックスを最大値から最小値まで変更して繰り返し前記積和演算器で実行し、さらに、前記繰り返し実行した第3の補助命令の出力に、前記第2の補助命令で求めた前記第2変数ysを乗算して、前記三角関数cos(x)を算出する、演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018009607A JP6933810B2 (ja) | 2018-01-24 | 2018-01-24 | 演算処理装置および演算処理装置の制御方法 |
US16/243,133 US10824395B2 (en) | 2018-01-24 | 2019-01-09 | Arithmetic processing device and control method for arithmetic processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018009607A JP6933810B2 (ja) | 2018-01-24 | 2018-01-24 | 演算処理装置および演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019128763A JP2019128763A (ja) | 2019-08-01 |
JP6933810B2 true JP6933810B2 (ja) | 2021-09-08 |
Family
ID=67298671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018009607A Active JP6933810B2 (ja) | 2018-01-24 | 2018-01-24 | 演算処理装置および演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10824395B2 (ja) |
JP (1) | JP6933810B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11423313B1 (en) * | 2018-12-12 | 2022-08-23 | Amazon Technologies, Inc. | Configurable function approximation based on switching mapping table content |
US11269630B2 (en) * | 2019-03-29 | 2022-03-08 | Intel Corporation | Interleaved pipeline of floating-point adders |
CN112650973B (zh) * | 2019-10-11 | 2022-05-20 | 珠海格力电器股份有限公司 | 三角函数计算装置及电子设备 |
CN111402873B (zh) * | 2020-02-25 | 2023-10-20 | 北京声智科技有限公司 | 语音信号处理方法、装置、设备及存储介质 |
US11671239B2 (en) * | 2020-05-08 | 2023-06-06 | Samsung Electronics Co., Ltd. | Encryption method and apparatus based on homomorphic encryption using odd function property |
US10942204B1 (en) * | 2020-10-27 | 2021-03-09 | North China Electric Power University | Taylor weighted least squares method for estimating synchrophasor |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4755129B2 (ja) | 2007-03-16 | 2011-08-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP2009169767A (ja) | 2008-01-17 | 2009-07-30 | Toshiba Corp | パイプライン型プロセッサ |
JP5304483B2 (ja) | 2009-06-30 | 2013-10-02 | 富士通株式会社 | 演算処理装置 |
CN104169866B (zh) * | 2012-03-30 | 2017-08-29 | 富士通株式会社 | 运算处理装置以及运算处理装置的控制方法 |
-
2018
- 2018-01-24 JP JP2018009607A patent/JP6933810B2/ja active Active
-
2019
- 2019-01-09 US US16/243,133 patent/US10824395B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10824395B2 (en) | 2020-11-03 |
US20190227771A1 (en) | 2019-07-25 |
JP2019128763A (ja) | 2019-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6933810B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
CN107077416B (zh) | 用于以选择性舍入模式进行向量处理的装置和方法 | |
US20170199726A1 (en) | Multiply add functional unit capable of executing scale, round, getexp, round, getmant, reduce, range and class instructions | |
JP4418578B2 (ja) | 第1、第2、第3オペランドに浮動小数点演算を適用するためのデータ処理装置および方法 | |
JP4388980B2 (ja) | 浮動小数点数の除算または平方根演算を行う演算装置及び演算方法 | |
JPH08185309A (ja) | 4倍精度演算の実行方法 | |
JP2012084142A (ja) | 融合型積和演算機能ユニット | |
Joldeş et al. | Arithmetic algorithms for extended precision using floating-point expansions | |
JPH0863353A (ja) | 掛け算累算命令を使用したデータ処理 | |
JP5304483B2 (ja) | 演算処理装置 | |
JP4755129B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP4601544B2 (ja) | 入力値に逆数演算を実施して結果値を作り出すデータ処理装置および方法 | |
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 | |
JP5794385B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US5805489A (en) | Digital microprocessor device having variable-delay division hardware | |
GB2549153A (en) | Apparatus and method for supporting a conversion instruction | |
Iordache et al. | An Overview of Floating-point Support and Math Library on the Intel/spl reg/XScale/spl trade/architecture | |
TWI822952B (zh) | 迭代運算的處理 | |
Hellström et al. | Assessing RISC-V Vector Extension for Machine Learning | |
US20240202160A1 (en) | Processor, computer-readable recording medium storing instruction execution program, and information processing device | |
US7237000B2 (en) | Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly | |
Pedone | Design and characterization of Variable Latency adders for floating-point arithmetic units | |
Fahmy | Decimal Floating Point Number System | |
Kusswurm et al. | Armv8-32 Floating-Point Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201008 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210630 |
|
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: 20210720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210802 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6933810 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |