JP2008250471A - 再構成可能なsimd型プロセッサ - Google Patents
再構成可能なsimd型プロセッサ Download PDFInfo
- Publication number
- JP2008250471A JP2008250471A JP2007088656A JP2007088656A JP2008250471A JP 2008250471 A JP2008250471 A JP 2008250471A JP 2007088656 A JP2007088656 A JP 2007088656A JP 2007088656 A JP2007088656 A JP 2007088656A JP 2008250471 A JP2008250471 A JP 2008250471A
- Authority
- JP
- Japan
- Prior art keywords
- selector
- result
- control circuit
- control
- group
- 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.)
- Granted
Links
- 101001123492 Homo sapiens Prolactin-releasing peptide receptor Proteins 0.000 claims description 42
- 102100029002 Prolactin-releasing peptide receptor Human genes 0.000 claims description 42
- 101001098560 Homo sapiens Proteinase-activated receptor 2 Proteins 0.000 claims description 37
- 102100037132 Proteinase-activated receptor 2 Human genes 0.000 claims description 37
- 238000010606 normalization Methods 0.000 claims description 27
- 101001071363 Homo sapiens Probable G-protein coupled receptor 21 Proteins 0.000 claims description 22
- 102100036934 Probable G-protein coupled receptor 21 Human genes 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 21
- 238000000465 moulding Methods 0.000 claims description 17
- 102100036940 G-protein coupled receptor 22 Human genes 0.000 claims description 15
- 101001071360 Homo sapiens G-protein coupled receptor 22 Proteins 0.000 claims description 15
- 102100039196 CX3C chemokine receptor 1 Human genes 0.000 claims description 6
- 101000746022 Homo sapiens CX3C chemokine receptor 1 Proteins 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 9
- 238000007792 addition Methods 0.000 description 42
- 239000006145 Eagle's minimal essential medium Substances 0.000 description 23
- 102100036939 G-protein coupled receptor 20 Human genes 0.000 description 23
- 101001071355 Homo sapiens G-protein coupled receptor 20 Proteins 0.000 description 23
- 102100033012 G-protein coupled receptor 12 Human genes 0.000 description 16
- 101001015106 Homo sapiens G-protein coupled receptor 12 Proteins 0.000 description 16
- 241000702244 Orthoreovirus Species 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 2
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 1
- 102100030768 ETS domain-containing transcription factor ERF Human genes 0.000 description 1
- 101001038043 Homo sapiens Lysophosphatidic acid receptor 4 Proteins 0.000 description 1
- 102100040405 Lysophosphatidic acid receptor 4 Human genes 0.000 description 1
- 101710113223 Pectinesterase 2 Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
【解決手段】PE−1の各汎用レジスタのGPR10を除算に要するサイクル数で、GPR11を1で、GPR20を被除数で、GPR21を除数で初期化し、加減算器Add/Sub−1により、GPR10からGPR11を減算し、除算に要するサイクル数をカウントし、カウント値が規定値に達するまで、加減算器Add/Sub−2により、GPR20からGPR21を減算し、減算結果が正であった場合には、減算結果を、減算結果が負であった場合には、GPR20を1bit左シフトした値でGPR20を更新し、GPR22からMSBを取り除き、LSBに減算結果のMSBを反転した値を加えたビット列でGPR22を更新する。
【選択図】図2
Description
複数のPEよりなる1グループとして演算可能な複数のPEを備え、
命令に応じて、前記グループを構成するPEの数を変える。
前記命令に応じて、前記情報に基づき、PEの構成を変化させる。
前記PEは、前記PEの演算結果を格納する汎用レジスタを備え、
前記1グループが、前記マルチサイクル命令を実行する複数PEで構成される場合、
前記汎用レジスタを、パイプラインレジスタとして利用する。
前記マルチサイクル命令を実現する演算器、及びパイプラインレジスタの少なくとも一部を構成する。
前記1グループは複数PEで構成され、
前記1グループ内の第1のPEは、
前記マルチサイクル整数除算命令のサイクルをカウントするカウンタとして動作し、
前記1グループ内の第1とは異なる第2のPEは、
前記カウンタに応じて、前記サイクルの回数、前記マルチサイクル整数除算命令の被除数から除数を減算する。
加減算器と、
汎用レジスタと、
を備え、
前記マルチサイクル整数除算命令を実行する場合に、
前記第1のPEにおいて、
サイクルのカウンタ値を前記第1のPEの前記汎用レジスタに保存し、前記カウンタ値を、前記加減算器により更新する。
加減算器と、
汎用レジスタと、
を備え、
前記マルチサイクル整数除算命令を実行する場合に、
前記第2のPEにおいて、
前記汎用レジスタに、除数、被除数、除算途中結果を保存し、
前記加減算器により前記除数から前記被除数を減算し、減算結果を前記汎用レジスタに前記除算途中結果として保存する。
前記1グループは複数PEで構成され、
前記1グループ内の第1のPEは、
浮動小数点オペランドの加減算を行い、
前記1グループ内の第1とは異なる第2のPEは、
前記加減算結果の正規化処理を行う。
加減算器と、
差分器と、
バレルシフタと、
汎用レジスタと、
を備え、
前記マルチサイクル浮動小数点加減算命令を実行する場合に、
前記第1のPEにおいて、
前記差分器と前記バレルシフタにより、オペランドの小数点位置合わせを行い、
前記加減算器により、前記位置合わせ結果を加減算し、
前記汎用レジスタを、前記小数点位置合わせ結果と前記加減算結果の一次保存場所とする。
加減算器と、
差分器と、
バレルシフタと、
汎用レジスタと、
正規化制御器と、
を備え、
前記マルチサイクル浮動小数点加減算命令を実行する場合に、
前記第2のPEにおいて、
前記正規化制御器の制御に基づき、前記加減算器と前記差分器と前記バレルシフタにより、前記第1のPEの加減算結果を正規化し、
前記汎用レジスタを、正規化の途中結果の一次保存場所とする。
前記1グループは複数PEで構成され、
前記1グループ内の第1のPEは、
2つの浮動小数点オペランドの乗算と、前記乗算結果の正規化処理の一部を行い、
前記グループ内の第1とは異なる第2のPEは、
前記第1のPEと協調して、前記乗算結果の正規化を行う。
乗算器と、
バレルシフタと、
リーディングワン回路と、
汎用レジスタと、
を備え、
前記マルチサイクル浮動小数点乗算命令を実行する場合には、
前記第1のPEにおいて、
前記乗算器は、オペランドの仮数部の乗算を行い、
前記バレルシフタは、前記乗算結果の正規化の一部を行い、
前記汎用レジスタを、乗算結果と正規化の途中結果の一次保存場所とする。
加算器と、
バレルシフタと、
汎用レジスタと、
正規化制御器と、
を備え、
前記マルチサイクル浮動小数点乗算命令を実行する場合には、
前記第1のPEにおいて、
前記正規化制御器の制御に基づき、前記加減算器と、前記バレルシフタと、前記第1のPEのバレルシフタにより、前記乗算結果の正規化を行い、
前記汎用レジスタを、正規化の途中結果の一次保存場所とする。
前記1グループは複数PEで構成され、
前記1グループ内の第1のPEは、
2つの浮動小数点オペランドの除算を行い、
前記1グループ内の第1とは異なる第2のPEは、
前記除算を実行するサイクルのカウントと、前記除算結果の正規化を行う。
加算器と、
汎用レジスタと、
を備え、
前記マルチサイクル浮動小数点除算命令を実行する場合には、
前記第1のPEにおいて、
前記汎用レジスタに、除数、非除数、除算途中結果を保存し、
前記加減算器により、前記除数から前記被除数を減算し、減算結果を、前記除算途中結果に保存する。
加算器と、
バレルシフタと、
汎用レジスタと、
正規化制御器と、
を備え、
前記マルチサイクル浮動小数点除算命令を実行する場合には、
前記第2のPEにおいて、
サイクルのカウンタ値を、前記汎用レジスタに保存し、
前記カウンタ値を前記加減算器により更新し、
前記正規化制御器の制御に基づき、前記加算器と前記バレルシフタにより、前記第1のPEの除算結果を正規化し、
前記汎用レジスタを、正規化の途中結果の一次保存場所とする。
制御回路と、
複数のレジスタを含む汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群の出力は、前記制御回路によって制御された第1のセレクタ(mux1−0)で選択され、演算命令のオペランドとして、前記演算器群と前記データメモリに供給され、
前記演算器群は、
加減算器と、
乗算器と、
バレルシフタと、
を備え、それぞれ、前記制御回路の制御に基づき、前記第1のセレクタ(mux1−0)から供給されたオペランドに対する演算を行い、演算結果は、前記制御回路によって制御された第2のセレクタ(mux1−1)で選択されて第3のセレクタ(mux5)に供給され、
前記データメモリには、前記制御回路の制御に基づき、前記第1のセレクタ(mux1−0)の出力、及び、外部メモリに接続されるデータ転送網からのデータが書き込まれ、
前記データメモリから読み出されたデータは、前記第3のセレクタ(mux5)及び前記外部メモリに接続されるデータ転送網に供給され、
前記第3のセレクタ(mux5)は、前記制御回路の制御に基づき、前記第2のセレクタ(mux1−1)の選択結果、前記データメモリの読み出し結果、前記PE演算器間接続50を介して提供される第2のPEのレジスタのいずれか1つを選択し、選択結果を、前記汎用レジスタ群に供給して値を更新する。
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記演算器群は、
加減算器と、
乗算器と、
バレルシフタと、
を備え、
前記汎用レジスタ群の出力は、前記制御回路によって制御された第1のセレクタ(mux2−0)で選択され、演算命令のオペランドとして、前記演算器群と前記データメモリに供給され、
前記制御回路の制御に基づき、第6のセレクタ(mux4)の選択結果と、第5のセレクタ(mux3)の選択結果を選択して、前記レジスタ群の第1のレジスタに供給する第2のセレクタ(mux0)と、
前記制御回路の制御に基づき、前記第6のセレクタ(mux4)の選択結果と、前記レジスタ群の第2のレジスタから読み出したビット列からLSB(Least Significant Bit)を取り除き、MSB(Most Significant Bit)に0を加えた値を選択して、前記第2のレジスタに供給する第3のセレクタ(mux1)と、
前記制御回路の制御に基づき、前記第6のセレクタ(mux4)の選択結果と、前記レジスタ群の第3のレジスタから読み出したビット列からMSBを取り除き、LSBに前記加減算器の減算結果のMSBを加えた値を選択して、前記第3のレジスタに供給する第4のセレクタ(mux2)と、
を備え、
前記演算器群は、前記制御回路の制御に基づき、前記第1のセレクタ(mux2−0)から供給されたオペランドに対する演算を行い、演算結果は、前記制御回路によって制御された第7のセレクタ(mux2−1)で選択されて第6のセレクタ(mux4)に供給され、
前記データメモリには、前記制御回路の制御に基づき、前記第1のセレクタ(mux2−0)の出力、及び、外部メモリに接続されるデータ転送網からのデータが書き込まれ、
前記データメモリから読み出されたデータは、前記第6のセレクタ(mux4)及び前記外部メモリに接続されるデータ転送網に供給され、
前記第5のセレクタ(mux3)は、前記制御回路の制御に基づき、前記加減算器の演算結果と、前記第1のセレクタ(mux2−0)で選択された一方のオペランドを選択し、第2のセレクタ(mux0)に供給し、
前記第6のセレクタ(mux4)は、前記制御回路の制御に基づき、前記第7のセレクタ(mux2−1)の選択結果、前記データメモリの読み出し結果の一方を選択し、選択結果を汎用レジスタ群に供給し更新する構成としてもよい。
実施の形態1では、1グループが複数のPEで構成された際に、グループがマルチサイクル型整数除算命令を実行する再構成可能なSIMD型プロセッサについて説明する。
セレクタmux1−1の選択結果、
RAM−1の読み出し結果、
PE演算器間接続50を介して提供されるPE−2のレジスタGPR22
のうちのいずれか1つを選択し、選択結果を、汎用レジスタ群RegFiles−1に供給する。
セレクタmux2−1の選択結果、
RAM−2の読み出し結果
の一方を選択し、
選択結果を汎用レジスタ群RegFiles−2に提供する。
本発明の第2の実施の形態では、1グループが複数のPEで構成された際に、前記グループがマルチサイクル型浮動小数点加減算命令を実行する再構成可能なSIMD型プロセッサについて、詳細に説明する。ここでは、浮動小数点数の表現形式として、IEEE754の単精度を用いる。
加減算器Add/Sub−1、
乗算器Mul−1、
差分器Abs−1、
バレルシフタBarrel Shifter−1
を備えている。
浮動小数点加減算命令の実行のみに使用するリーディングワンLeadingOne、加算器Add、丸め検出器Round、を備えている。
または、記憶素子から読み出したデータをセレクタmux15およびEMEMデータ転送網40に提供する。
E0>E1
であった場合には、PE Ctr−1の制御に基づき、セレクタmux1−0により、
GPR10をopr0、
GPR11をopr1
として選択する(ステップ2003)。
セレクタmux1−0により、
GPR11をopr0、
GPR10をopr1
として選択して、その選択結果を演算器群−1に提供する(ステップ2003)。
加減算器Add/Sub−1の演算結果の正負と、
PE Ctr−1内に保存された符号部(S0、S1)と、
から、
浮動小数点加減算の演算結果の符合を決定し、その符号をPE Ctr−1内に新設したレジスタ(不図示)に保存する。
セレクタmux07は、PE Ctr−1の制御に基づき、セレクタmux1−1の選択結果を選択し、その選択結果により、GPR13を更新する(ステップ2005)。
GPR12の上位8ビットに格納された指数部の差分tmpeと、
GPR13に格納された仮数部の加減算結果tmpfと、
演算結果の符合signとを、
PE演算器間接続50を介して、PE−2に提供し、
PE Ctr−2の制御に基づき、
セレクタmux12は、tmpfを選択し、
セレクタmux13は0を選択し、
差分器Abs−2は、選択結果の差分を計算する(ステップ2006)。
セレクタmux08は、PE−1より提供された指数途中結果tmpeの上位ビット側に、符号結果signを加えたビット列を選択し、
セレクタmux09は、差分器Abs−2の演算結果を選択し、
それぞれの選択結果をGPR20とGPR21に保存する(ステップ2007)。
セレクタmux14は、リーディングワンLeadingOneの演算結果を選択し、
バレルシフタBarrel Shifter−2は、opr0を選択結果に基づきビットシフトする(ステップ2010)。
セレクタmux10は、バレルシフタBarrel Shifter−2の演算結果を選択し、
セレクタmux11は1を選択し、
加減算器Add/Sub−2は、それらの選択結果を加算する(ステップ2012)。
セレクタmux2−1は、
丸めが必要であった場合には、加減算器Add/Sub−2の演算結果を選択し、
丸めが不要であった場合には、バレルシフタBarrel Shifter−2の演算結果を選択する(ステップ2014)。
セレクタmux15は、セレクタmux2−1の選択結果を選択し、
形式成型器formは、
opr1のsign部分を演算結果の符号部とし、
加算器Addの演算結果を演算結果の指数部とし、
セレクタmux15の選択結果の下位23bitを演算結果の仮数部
として選択し、IEEE754の単精度の形式に整え、その結果を汎用レジスタ群RegFiles−2の任意のレジスタに保存する(ステップ2015)。
複数セレクタ(mux00〜mux06、mux08〜mux14)と、
リーディングワンLeadingOneと、
加算器Addと、
丸め検出器Roundと、
を前記実施の形態に追加し、
PE Ctr−1、PE Ctr−2の制御回路を拡張することで、マルチサイクル型浮動小数点加減算命令を実現することができる。
実施の形態3では、前記実施の形態の一例として、1グループが複数のPEで構成された際に、グループがマルチサイクル型浮動小数点乗算命令を実行する再構成可能なSIMD型プロセッサについて、詳細に説明する。なお本発明は、下記の実施の形態の構成に限定されるものでないことは勿論である。ここでは、実施の形態2と同様に、浮動小数点数の表現形式としてIEEE754の単精度を用いて、実施の形態3の説明を行う。ここでは、浮動小数点数の表現形式としてIEEE754の単精度を用いているが、他の表現形式を用いたとしても、本発明の実施には、なんら影響を与えない。
セレクタmux1−0により、GPR10とGPR11をopr0とopr1として選択し、
セレクタmux01とセレクタmux02により、opr0とopr1の指数部(E0、E1)を選択し、
加減算器Add/Sub−1により、指数部を加算する(ステップ3001)。
セレクタmux05はtmpfの上位16bitを選択し、
セレクタmux06はリーディングワンLeadingOneの演算結果を選択し、
PE Ctr−2の制御に基づき、
セレクタmux10はtmpfの下位32bitを選択し、
セレクタmux11はPE演算器間接続50を介して提供されたリーディングワンLeadingOneの演算結果swを選択する。そして、PE Ctr−1/2の制御に基づき、バレルシフタBarrel Shifter−1/2の間で、シフトデータをPE演算器間接続50を介して交換し、tmpfをsw分だけ、ビットシフトする。(ステップ3006)。
セレクタmux08は、バレルシフタBarrel Shifter−2の演算結果を選択し、
セレクタmux09は1を選択し、加減算器Add/Sub−2は、それらの選択結果を加算する(ステップ3009)。
丸めが必要であった場合には、加減算器Add/Sub−2の演算結果を選択し、
丸めが不要であった場合には、バレルシフタBarrel Shifter−2の演算結果を選択する(ステップ3011)。
セレクタmux12は、セレクタmux2−1の選択結果を選択し、
形式成型器formは、PE演算器間接続50を介してPE−1より提供されたSignを演算結果の符号部として選択し、減算器Subの減算結果を演算結果の指数部として選択し、セレクタmux12の選択結果の下位23ビットを演算結果の仮数部として選択し、IEEE754の単精度の形式に整え、その結果を汎用レジスタ群RegFiles−2の任意のレジスタに保存する(ステップ3012)。
レイテンシが2サイクル、
スループットが1サイクルで実現する例を示したが、対象となるアプリケーションによって、レイテンシ、スループットは最適な構成を選択し、それらに合わせて、1グループを構成するPE数、およびPE内の構成を自由に変更するなど、本発明の技術的範囲に属する限り様々な形態を取り得る。
実施の形態4では、本発明の実施の形態の一例として、1グループが複数のPEで構成された際に、グループがマルチサイクル型浮動小数点除算命令を実行する再構成可能なSIMD型プロセッサについて、詳細に説明する。なお、本発明は、下記実施の形態に限定されるものでない。本実施の形態では、前記実施の形態2、3と同様に、浮動小数点数の表現形式としてIEEE754の単精度を用いるが、本発明においおいては、浮動小数点数の他の表現形式を用いたとしてもよいことは勿論である。
乗算器Mul−2はopr0とopr1を、
バレルシフタBarrel Shifter−2は、opr0とセレクタmux07の選択結果を、
オペランドとして、PE Ctr−2の制御に基づいた演算を行う。
PE−2では、GPR21を除算に要するサイクル数で、GPR22を1で初期化する(ステップ4000)。
セレクタmux00は、GPR10の仮数部(F0)とF0のMSB側に1を加え、その上位側を0としたビット列を選択し、GPR10を更新し、
セレクタmux01は、GPR11の仮数部(F1)とF1のMSB側に1を加え、その上位側を0としたビット列を選択し、GPR11を更新し、
セレクタmux02は、指数部の減算結果のMSB側に、符号部の排他的論理和結果を加えたビット列を選択し、GPR12を更新する(ステップ4003)。
セレクタmux00は、セレクタmux03の選択結果を選択しGPR10を更新し、
セレクタmux01は、GPR11の値を選択しGPR11を更新し、
セレクタmux02は、GPR12の値を選択しGPR12を更新する(ステップ4008)。
セレクタmux2−1は、加減算器Add/Sub−2の演算結果を選択し、
セレクタmux08は、セレクタmux2−1の選択結果を選択し、
形式成型器formは、選択結果を選択し、選択結果により、GPR21を更新し、
セレクタmux05は、GPR20の値からMSBを取り除き、PE演算器間接続50を介して、PE−1から提供された除算結果一桁QUOをLSBに加えたビット列を選択し、当該ビット列によりGPR20を更新する(ステップ4008)。
PE−2では、PE Ctr−2の制御に基づき、セレクタmux2−0により、GPR20とGPR22をオペランド(opr0、opr1)として選択し、
opr0をリーディングワンLeadingOneに入力し、opr0のビット列のMSB側からLSB側へビット列を走査し、MSBから最初に1であったビットまでのビット数を計算する(ステップ4009)。
セレクタmux07は、リーディングワンLeadingOneの演算結果を選択し、
バレルシフタBarrel Shifter−2は、opr0を選択結果に基づきビットシフトする(ステップ4010)。
セレクタmux06は、バレルシフタBarrel Shifter−2の演算結果を選択し、
加減算器Add/Sub−2は、セレクタmux06の選択結果とopr1を加算する(ステップ4012)。
セレクタmux08は、セレクタmux2−1の選択結果を選択し、
形式成型器formは、PE演算器間接続50を介してPE−1より提供された符号結果signを演算結果の符号部とし、
加算器Addの演算結果を演算結果の指数部とし、
セレクタmux08の選択結果の下位23bitを演算結果の仮数部として選択し、
IEEE754の単精度の形式に整え、その結果を汎用レジスタ群RegFiles−2の任意のレジスタに保存する(ステップ4015)。
加減算器Add/Sub−1の演算結果が負である場合に、実行され、マルチサイクル型浮動小数点除算命令の実行が終了する。
サイクル後に算出する除算結果の桁数、
レイテンシは最適な構成を選択し、それらに合わせて、1グループを構成するPE数、およびPE内の構成を自由に変更するようにしてもよい。
複数セレクタ(mux00〜mux03、mux05〜mux07)と、リーディングワンLeadingOneと、加算器Addと、減算器Subと、丸め検出器Roundを追加し、
PE Ctr−1、PE Ctr−2の制御回路を拡張することで、マルチサイクル型浮動小数点除算命令を実現することができる。
11−1〜11−m PE Ctr−1〜PE Ctr−m(プロセッシングエレメント制御回路)
12−1〜12−m RegFiles−1〜RegFiles−m(汎用レジスタファイル群)
13−1〜13−m 演算器群−1〜演算器群−m
14−1〜14−m RAM−1〜RAM−m(データメモリ)
20 CP(コントロールプロセッサ)
21 PC Ctr(制御情報生成回路)
22 REgFiles−0
23 演算器群−0
24 PRAM(プログラムメモリ)
25 DRAM(データメモリ)
30 EMEM(外部メモリ)
40 EMEMデータ転送網
50 PE演算器間接続
60 PE制御情報パス
GPR10〜GPR1p PE−1の各汎用レジスタ
mux1−0 PE−1の汎用レジスタファイル選択回路
mux1−1 PE−1の演算結果選択回路
Add/Sub−1 PE−1の加減算器
Mul−1 PE−1の乗算器
Barrel Shifter−1 PE−1のバレルシフタ
Abs−1 PE−1の差分器
GPR20〜GPR2p PE−2の各汎用レジスタ
mux2−0 PE−2の汎用レジスタファイル選択回路
mux2−1 PE−2の演算結果選択回路
Add/Sub−2 PE−2の加減算器
Mul−2 PE−2の乗算器
Barrel Shifter−2PE−2のバレルシフタ
Abs−2 PE−2の差分器
mux0〜mux15 セレクタ
LeadingOne リーディングワン回路
Add 加算器
Sub 減算器
Round 丸め検出器
form 形式成型器
Claims (29)
- 1命令を実行する演算単位を1グループとし、
1グループが複数のプロセッシングエレメント(PE)から構成される場合、該1グループの演算単位は、1つのPEが1グループを構成する場合に実行可能な命令単位よりも、複雑な命令を実行する単位であり、
複数のPEよりなる1グループとして演算可能な複数のPEを備え、
命令に応じて、前記グループを構成するPEの数を変える、
並列演算プロセッサ。 - 前記命令に応じて、前記グループを構成するPEの構成の情報を予め保持し、
前記命令に応じて、前記情報に基づき、PEの構成を変化させる、
請求項1の並列演算プロセッサ。 - 前記命令が、前記PEの複数サイクルで実行されるマルチサイクル命令であるときに、前記情報に、パイプラインレジスタの構成が記載される、
請求項2の並列演算プロセッサ。 - 前記1グループが1個のPEで構成される場合、前記PEは、前記PEの演算結果を格納する汎用レジスタを備え、
前記1グループが、前記マルチサイクル命令を実行する複数のPEで構成される場合、前記汎用レジスタをパイプラインレジスタとして利用する、
請求項3の並列演算プロセッサ。 - 前記1グループがマルチサイクル命令を実行する複数のPEで構成される場合、
前記各PEが備える演算器、及び汎用レジスタは、それぞれ、前記マルチサイクル命令を実現する演算器、及びパイプラインレジスタの少なくとも一部を構成する、
請求項4の並列演算プロセッサ。 - 前記マルチサイクル命令がマルチサイクル整数除算命令であるときに、
前記1グループは複数のPEで構成され、
前記1グループ内の第1のPEは、前記マルチサイクル整数除算命令のサイクルをカウントするカウンタとして動作し、
前記1グループ内の第1とは異なる第2のPEは、前記カウンタに応じて、前記サイクルの回数、前記マルチサイクル整数除算命令の被除数から除数を減算する、
請求項5の並列演算プロセッサ。 - 前記第1のPEは、
加減算器と、
汎用レジスタと、
を備え、
前記マルチサイクル整数除算命令を実行する場合に、
前記第1のPEにおいて、サイクルのカウンタ値を前記第1のPEの前記汎用レジスタに保存し、前記カウンタ値を、前記加減算器により更新する、
請求項6の並列演算プロセッサ。 - 前記第2のPEは、
加減算器と、
汎用レジスタと、
を備え、
前記マルチサイクル整数除算命令を実行する場合に、
前記第2のPEにおいて、前記汎用レジスタに、除数、被除数、除算途中結果を保存し、
前記加減算器により前記除数から前記被除数を減算し、減算結果を前記汎用レジスタに前記除算途中結果として保存する、
請求項6の並列演算プロセッサ。 - 前記マルチサイクル命令がマルチサイクル浮動小数点加減算命令である場合に、
前記1グループは複数のPEで構成され、
前記1グループ内の第1のPEは、
浮動小数点オペランドの加減算を行い、
前記1グループ内の第1とは異なる第2のPEは、
前記加減算結果の正規化処理を行う、
請求項5の並列演算プロセッサ。 - 前記第1のPEは、
加減算器と、
差分器と、
バレルシフタと、
汎用レジスタと、
を備え、
前記マルチサイクル浮動小数点加減算命令を実行する場合に、
前記第1のPEにおいて、
前記差分器と前記バレルシフタにより、オペランドの小数点位置合わせを行い、
前記加減算器により、前記位置合わせ結果を加減算し、
前記汎用レジスタを、前記小数点位置合わせ結果と前記加減算結果の一次保存場所とする、
請求項9の並列演算プロセッサ。 - 前記第2のPEは、
加減算器と、
差分器と、
バレルシフタと、
汎用レジスタと、
正規化制御器と、
を備え、
前記マルチサイクル浮動小数点加減算命令を実行する場合に、
前記第2のPEにおいて、
前記正規化制御器の制御に基づき、前記加減算器と前記差分器と前記バレルシフタにより、前記第1のPEの加減算結果を正規化し、
前記汎用レジスタを、正規化の途中結果の一次保存場所とする、
請求項9の並列演算プロセッサ。 - 前記マルチサイクル命令がマルチサイクル浮動小数点乗算命令である場合に、
前記1グループは複数のPEで構成され、
前記1グループ内の第1のPEは、
2つの浮動小数点オペランドの乗算と、前記乗算結果の正規化処理の一部を行い、
前記グループ内の第1とは異なる第2のPEは、
前記第1のPEと協調して、前記乗算結果の正規化を行う、
請求項5の並列演算プロセッサ。 - 前記第1のPEは、
乗算器と、
バレルシフタと、
リーディングワン回路と、
汎用レジスタと、
を備え、
前記マルチサイクル浮動小数点乗算命令を実行する場合には、
前記第1のPEにおいて、
前記乗算器は、オペランドの仮数部の乗算を行い、
前記バレルシフタは、前記乗算結果の正規化の一部を行い、
前記汎用レジスタを、乗算結果と正規化の途中結果の一次保存場所とする、
請求項12の並列演算プロセッサ。 - 前記第1のPEは、
加算器と、
バレルシフタと、
汎用レジスタと、
正規化制御器と、
を備え、
前記マルチサイクル浮動小数点乗算命令を実行する場合には、
前記第1のPEにおいて、
前記正規化制御器の制御に基づき、前記加減算器と、前記バレルシフタと、前記第1のPEのバレルシフタにより、前記乗算結果の正規化を行い、
前記汎用レジスタを、正規化の途中結果の一次保存場所とする、
請求項12の並列演算プロセッサ。 - 前記マルチサイクル命令がマルチサイクル浮動小数点除算命令である場合に、
前記1グループは複数のPEで構成され、
前記1グループ内の第1のPEは、
2つの浮動小数点オペランドの除算を行い、
前記1グループ内の第1とは異なる第2のPEは、
前記除算を実行するサイクルのカウントと、前記除算結果の正規化を行う、
請求項5の並列演算プロセッサ。 - 前記第1のPEは、
加算器と、
汎用レジスタと、
を備え、
前記マルチサイクル浮動小数点除算命令を実行する場合には、
前記第1のPEにおいて、
前記汎用レジスタに、除数、非除数、除算途中結果を保存し、
前記加減算器により、前記除数から前記被除数を減算し、減算結果を、前記除算途中結果に保存する、
請求項15の並列演算プロセッサ。 - 前記第2のPEは、
加算器と、
バレルシフタと、
汎用レジスタと、
正規化制御器と、
を備え、
前記マルチサイクル浮動小数点除算命令を実行する場合には、
前記第2のPEにおいて、
サイクルのカウンタ値を、前記汎用レジスタに保存し、
前記カウンタ値を前記加減算器により更新し、
前記正規化制御器の制御に基づき、前記加算器と前記バレルシフタにより、前記第1のPEの除算結果を正規化し、
前記汎用レジスタを、正規化の途中結果の一次保存場所とする、
請求項15の並列演算プロセッサ。 - 前記1グループ内の第1のPEと第2のPEの演算器はPE演算器間接続を介して接続されている、請求項1の並列演算プロセッサ。
- 前記第1のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群の出力は、前記制御回路によって制御されたセレクタ(mux1−0)で選択され、演算命令のオペランド(opr0、opr1)として、前記演算器群と前記データメモリに供給され、
前記演算器群は、加減算器と、乗算器と、バレルシフタと、を備え、それぞれの演算器は、前記制御回路の制御に基づき、前記セレクタ(mux1−0)から供給されたオペランド(opr0、opr1)に対する演算を行い、
前記演算器群の演算結果は、前記制御回路によって制御されたセレクタ(mux1−1)で選択されてセレクタ(mux5)に供給され、
前記データメモリは、前記制御回路の制御に基づき、前記セレクタ(mux1−0)の出力、及び、外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータを、前記セレクタ(mux5)及び前記外部メモリデータ転送網に提供し、
前記セレクタ(mux5)は、前記制御回路の制御に基づき、
前記セレクタ(mux1−1)の選択結果、
前記データメモリの読み出し結果、
前記PE演算器間接続を介して提供される前記第2のPEのレジスタの内容の
うちのいずれか1つを選択し、選択結果を、前記汎用レジスタ群に供給する、
請求項18の並列演算プロセッサ。 - 前記第2のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記演算器群は、加減算器と、乗算器と、バレルシフタと、を備え、
前記汎用レジスタ群の出力は、前記制御回路によって制御されたセレクタ(mux2−0)で選択され、演算命令のオペランド(opr0、opr1)として、前記演算器群と前記データメモリに供給され、
前記制御回路の制御に基づき、セレクタ(mux4)の選択結果と、セレクタ(mux3)の選択結果を選択して、前記レジスタ群の第1のレジスタ(GPR20)に供給するセレクタ(mux0)と、
前記制御回路の制御に基づき、前記セレクタ(mux4)の選択結果と、前記レジスタ群の第2のレジスタ(GPR21)から読み出したビット列からLSB(Least Significant Bit)を取り除き、MSB(Most Significant Bit)に0を加えた値を選択して前記第2のレジスタ(GPR21)に供給するセレクタ(mux1)と、
前記制御回路の制御に基づき、前記セレクタ(mux4)の選択結果と、前記レジスタ群の第3のレジスタ(GPR22)から読み出したビット列からMSBを取り除き、LSBに前記加減算器の減算結果のMSBを加えた値を選択して、前記第3のレジスタ(GPR22)に供給するセレクタ(mux2)と、
を備え、
前記演算器群の演算器は、前記制御回路の制御に基づき、前記セレクタ(mux2−0)から供給されたオペランド(opr0、opr1)に対する演算を行い、演算結果は、前記制御回路によって制御されたセレクタ(mux2−1)で選択されてセレクタ(mux4)に供給され、
前記データメモリは、前記制御回路の制御に基づき、前記セレクタ(mux2−0)の出力、及び、外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータを、前記セレクタ(mux4)及び前記外部メモリデータ転送網に提供し、
前記セレクタ(mux3)は、前記制御回路の制御に基づき、前記加減算器の演算結果と、前記セレクタ(mux2−0)で選択された一方のオペランドを選択してセレクタ(mux0)に供給し、
前記セレクタ(mux4)は、前記制御回路の制御に基づき、前記セレクタ(mux2−1)の選択結果と、前記データメモリの読み出し結果の一方を選択し、選択結果を前記汎用レジスタ群に供給する、
請求項19の並列演算プロセッサ。 - 前記第1のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群の第1、第2、第3のレジスタ(GPR10、GPR11、GPR12)は、それぞれ対応するセレクタ(mux00、mux01、mux02)の選択結果により更新され、前記汎用レジスタ群の残りのレジスタは、セレクタ(mux07)の選択結果により更新され、
前記汎用レジスタ群の出力は、前記制御回路に制御されたセレクタ(mux1−0)で選択され、オペランド(opr0、opr1)として、前記演算器群及び前記データメモリに供給され、
前記セレクタ(mux00)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第2のPEより提供された、浮動小数点加減算命令の第1のオペランド(fopr1)と、前記セレクタ(mux07)の選択結果を選択して、前記第1のレジスタ(GPR10)に提供し、
前記セレクタ(mux01)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第2のPEより提供された浮動小数点加減算命令の第2のオペランド(fopr1)と、前記セレクタ(mux07)の選択結果の一方を選択して、前記第2のレジスタ(GPR11)に提供し、
前記セレクタ(mux02)は、前記制御回路の制御に基づき、前記演算器群の前記差分器の演算結果の下位半分を下位、レジスタ(GPR12)の下位半分を上位とするビット列と、前記セレクタ(mux07)の選択結果の一方を選択して、前記レジスタ(GPR12)に提供し、
前記演算器群は、加減算器と、乗算器と、差分器と、バレルシフタと、を備え、
前記加減算器は、セレクタ(mux03)の選択結果と前記opr1をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記乗算器は、前記オペランド(opr0、opr1)に関して、前記制御回路の制御に基づいた演算を行い、
前記差分器は、セレクタ(mux04)及びセレクタ(mux05)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記バレルシフタは、前記オペランド(opr0)と、セレクタ(mux06)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記演算器群の演算結果は、前記制御回路に制御されたセレクタ(mux1−1)で選択されて、前記セレクタ(mux07)に提供され、
前記セレクタ(mux03)は、前記制御回路の制御に基づき、前記バレルシフタの演算結果と、オペランド(opr0)を選択して、前記加減算器に提供し、
前記セレクタ(mux04)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第2のPEより提供された、浮動小数点加減算命令のオペランド(fopr0)の指数部(E0)と、オペランド(opr0)を選択して、前記差分器に提供し、
前記セレクタ(mux05)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第2のPEより提供された浮動小数点加減算命令のオペランド(fopr1)の指数部と、オペランド(opr1)を選択して、前記差分器に提供し、
前記セレクタ(mux06)は、前記制御回路の制御に基づき、前記レジスタ(GPR12)の下位半分とその上位半分に0を埋めたビット列と、オペランド(opr1)を選択して、前記バレルシフタに提供し、
前記データメモリは、前記制御回路の制御に基づき、前記汎用レジスタ群及び前記外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータをセレクタ(mux07)及び前記外部メモリデータ転送網に提供し、
前記セレクタ(mux07)は、前記制御回路の制御に基づき、前記セレクタ(mux1−1)の選択結果、前記データメモリの読み出し結果を選択し、選択結果を前記汎用レジスタ群に提供する、
請求項18の並列演算プロセッサ。 - 前記第2のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群の第1、第2のレジスタ(GPR20、GPR21)はそれぞれ、セレクタ(mux08、mux09)の選択結果により更新され、第3のレジスタ(GPR22)と残りのレジスタは、形式成型器の選択結果により更新され、
前記汎用レジスタ群の出力は、前記制御回路に制御されたセレクタ(mux2−0)で選択され、オペランド(opr0、opr1)として演算器群及び前記データメモリに供給され、
前記セレクタ(mux08)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第1のPEより提供された指数途中結果(tmpe)を下位に、符号結果(sign)を上位としたビット列と、セレクタ(mux15)の選択結果の一方を選択して、前記汎用レジスタ群の第1のレジスタ(GPR20)に提供し、
前記セレクタ(mux09)は、前記制御回路の制御に基づき、演算器群の差分器の演算結果と、セレクタ(mux15)の選択結果を選択して、前記汎用レジスタ群のレジスタ(GPR21)に提供し、
前記演算器群は、加減算器と、乗算器と、差分器と、バレルシフタと、を備え、
前記加減算器は、セレクタ(mux10)とセレクタ(mux11)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
乗算器は、前記opr0とopr1をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記差分器は、セレクタ(mux12)とセレクタ(mux13)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
バレルシフタは、オペランド(opr0)とセレクタ(mux14)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記演算器群の演算結果は、前記制御回路に制御されたセレクタ(mux2−1)で選択され、セレクタ(mux15)に提供され、
前記セレクタ(mux10)は、前記制御回路の制御に基づき、前記バレルシフタの演算結果と、オペランド(opr0)を選択して、前記加減算器に提供し、
セレクタ(mux11)は、前記制御回路の制御に基づき、値1と、オペランド(opr1)を選択して、前記加減算器に提供し、
セレクタ(mux12)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第1のPEより提供された仮数途中結果(tmpf)と、オペランド(opr0)を選択して、前記差分器に提供し、
セレクタ(mux13)は、前記制御回路の制御に基づき、値0と、オペランド(opr1)を選択して、前記差分器に提供し、
セレクタ(mux14)は、前記制御回路の制御に基づき、リーディングワンの演算結果と、オペランド(opr1)を選択して、前記バレルシフタに提供し、
前記演算器群は、浮動小数点加減算命令の実行のみに使用する前記リーディングワンと、加算器と、丸め検出器と、を備え、
前記リーディングワンは、オペランド(opr0)のビット列をMSB側から検索し、MSBから最初に現れた1までの距離を計算し、前記加算器と前記セレクタ(mux14)に提供し、
前記加算器は、オペランド(opr1)の部分ビット列と、前記リーディングワンの検索結果を加算して前記形式成型器に提供し、
前記丸め検出器は、前記バレルシフタの演算結果が丸めを必要とするかを判定し、判定結果を、セレクタ(mux2−1)に提供し、
前記データメモリは、前記制御回路の制御に基づき、前記汎用レジスタ群及び外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータをセレクタ(mux15)及び前記外部メモリデータ転送網に提供し、
前記セレクタ(mux15)は、前記制御回路の制御に基づき、前記セレクタ(mux2−1)の選択結果、データメモリの読み出し結果を選択し、選択結果を前記形式成型器に提供し、
前記形式成型器は、前記制御回路の制御に基づき、前記セレクタ(mux15)の選択結果を仮数部、前記加算器の演算結果を指数部、符号結果(sign)を符号部として選択して形式に整え、汎用レジスタ群に提供する、
請求項21の並列演算プロセッサ。 - 前記第1のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群は、複数のレジスタ(GPR10〜GPR1p)を備え、レジスタ(GPR12)はセレクタ(mux00)の選択結果により更新され、残りのレジスタ(GPR10〜GPR11)及びレジスタ(GPR13〜GPR1p)は、セレクタ(mux07)の選択結果により更新され、
前記汎用レジスタ群の出力は、前記制御回路に制御されたセレクタ(mux1−0)で選択され、オペランド(opr0、opr1)として前記演算器群及び前記データメモリに供給され、
セレクタ(mux00)は、前記制御回路の制御に基づき、加減算器の演算結果と、セレクタ(mux07)の選択結果を選択して、選択結果を、前記レジスタ(GPR12)に提供し、
前記演算器群は、加減算器と、乗算器と、バレルシフタと、を備え、
前記加減算器は、セレクタ(mux01)の選択結果とセレクタ(mux02)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記乗算器は、セレクタ(mux03)の選択結果とセレクタ(mux04)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記バレルシフタは、セレクタ(mux05)の選択結果とセレクタ(mux06)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記演算結果は、前記制御回路に制御されたセレクタ(mux1−1)で選択されセレクタ(mux07)に提供され、
セレクタ(mux01)は、前記制御回路の制御に基づき、オペランド(opr0)の指数部分を下位ビットとし、上位側に0を組み合わせたビット列と、オペランド(opr0)を選択して、選択結果を、前記加減算器に提供し、
セレクタ(mux02)は、前記制御回路の制御に基づき、オペランド(opr1)のうちの指数部分を下位ビットとし、上位側に0を組み合わせたビット列と、オペランド(opr1)を選択して、選択結果を、前記加減算器に提供し、
セレクタ(mux03)は、前記制御回路の制御に基づき、オペランド(opr0)のうち単精度の仮数部分を下位ビットとし、上位ビットに1、その上位側に0を組み合わせたビット列と、オペランド(opr0)を選択して、選択結果を、前記乗算器に提供し、
セレクタ(mux04)は、前記制御回路の制御に基づき、オペランド(opr1)のうち単精度の仮数部分を下位ビットとし、上位ビットに1、その上位側に0を組み合わせたビット列と、opr1を選択して、選択結果を、前記乗算器に提供し、
セレクタ(mux05)は、前記制御回路の制御に基づき、前記レジスタ(GPR1p−1)の下位ビットを上位、前記レジスタ(GPR1p)の所定ビットを下位としたビット列(tmpf)の上位ビットと、その上位側に0を組み合わせたビット列と、オペランド(opr0)を選択して、選択結果を前記バレルシフタに提供し、
セレクタ(mux06)は、前記リーディングワンの演算結果と、オペランド(opr1)を選択して、前記バレルシフタに提供し、
前記演算器群は、浮動小数点加減算命令の実行のみに使用するリーディングワンと、加算器を備え、
前記リーディングワンは仮数途中結果(tmpf)のビット列をMSB側から検索し、MSBから最初に現れた1までの距離(sw)を計算し、前記加算器とセレクタ(mux06)と前記第2のPEに提供し、
前記加算器は、前記レジスタ(GPR12)に格納された仮数部の途中結果(tmpe0)と、前記リーディングワンの検索結果を加算し、前記第2のPEに提供し、
前記データメモリは、前記制御回路の制御に基づき、前記汎用レジスタ群及び外部メモリデータ転送網からのデータを記憶素子に書き込み、前記データから読み出したデータをセレクタ(mux07)及び前記外部メモリデータ転送網に提供し、
前記セレクタ(mux07)は、前記制御回路の制御に基づき、前記セレクタ(mux1−1)の選択結果、前記データメモリの読み出し結果を選択し、選択結果を、前記汎用レジスタ群に提供する、
請求項18の並列演算プロセッサ。 - 前記第2のPEは、前記PE演算器間接続を介して、前記第1のPEから、浮動小数点乗算命令の途中結果である仮数途中結果(tmpf)と指数途中結果(tmpe1)と符号結果(sign)とシフト途中結果の上位データ(hdata)を受け取り、前記第2のPEから前記第1のPEに、シフト途中結果の下位データ(ldata)を提供する。請求項18の並列演算プロセッサ。
- 前記第2のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群は、複数のレジスタ(GPR20〜GPR2p)を備え、形式成型器の選択結果により更新され、
前記汎用レジスタ群の出力は、前記制御回路に制御されたセレクタ(mux2−0)で選択され、オペランド(opr0、opr1)として演算器群及びデータメモリに供給され、
前記演算器群は、加減算器と、乗算器と、バレルシフタと、を備え、
前記加減算器は、セレクタ(mux08)とセレクタ(mux09)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記乗算器は、それぞれ前記opr0とopr1をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記バレルシフタは、セレクタ(mux10)とセレクタ(mux11)の選択結果をオペランドとして、前記制御回路の制御に基づいた演算を行い、
前記演算器群の演算結果は、前記制御回路に制御されたセレクタ(mux2−1)で選択され、セレクタ(mux12)に提供され、
前記セレクタ(mux08)は、前記制御回路の制御に基づき、前記バレルシフタの演算結果と、オペランド(opr0)を選択して、前記加減算器に提供し、
前記セレクタ(mux09)は、前記制御回路の制御に基づき、値1と、オペランド(opr1)を選択して、前記加減算器に提供し、
前記セレクタ(mux10)は、前記制御回路の制御に基づき、浮動小数点乗算命令の途中結果である仮数途中結果(tmpf)の下位側所定ビットと、オペランド(opr0)を選択して、前記バレルシフタに提供し、
セレクタ(mux11)は、前記制御回路の制御に基づき、前記PE演算器間接続を介して、前記第1のPEより提供されたシフト幅と前記オペランド(opr1)を選択して、前記バレルシフタに提供し、
前記演算器群は、浮動小数点加減算命令の実行のみに使用する減算器と、丸め検出器と、をさらに備え
前記減算器は、指数途中結果(tmpe1)から所定値を減算し、減算結果を前記形式成型器に提供し、
前記丸め検出器は、前記バレルシフタの演算結果が丸めを必要とするかを判定し、判定結果をセレクタ(mux2−1)に提供し、
前記データメモリは、前記制御回路の制御に基づき、前記汎用レジスタ群及び外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータをセレクタ(mux12)及び外部メモリデータ転送網に提供し、
前記セレクタ(mux12)は、前記制御回路の制御に基づき、セレクタ(mux2−1)の選択結果、前記データメモリの読み出し結果を選択し、選択結果を形式成型器に提供し、
前記形式成型器は、前記制御回路の制御に基づき、前記セレクタ(mux12)の選択結果と、前記減算器の演算結果と、前記第1のPEより提供された符号結果(sign)を選択し、選択結果を、前記汎用レジスタ群に提供し、
前記形式成型器は、前記制御回路の制御に基づき、前記セレクタ(mux12)の選択結果を仮数部とし、前記減算器の演算結果を指数部とし、前記第1のPEより提供された符号結果(sign)を符号として選択して形式に整え、前記汎用レジスタ群に提供する、
請求項23の並列演算プロセッサ。 - 前記PE演算器間接続を介して、前記第1のPEは前記第2のPEから、マルチサイクル型浮動小数点命令の終了信号を受け取り、前記第1のPEから前記第2のPEに、演算結果の符号(sign)と指数途中結果(tmpe)、演算結果一桁(QUO)を提供する、請求項18の並列演算プロセッサ。
- 前記第1のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群は、複数のレジスタ(GPR10〜GPR1p)を備え、レジスタ(GPR10、GPR11、GPR12)はそれぞれ、対応するセレクタ(mux00、mux01、mux02)の選択結果により更新され、残りのレジスタ(GPR13〜GPR1p)は、セレクタ(mux04)の選択結果により更新され、
前記汎用レジスタ群の出力は、前記制御回路に制御されたセレクタ(mux1−0)で選択され、オペランド(opr0、opr1)として、演算器群及びデータメモリに供給され、
前記セレクタ(mux00)は、前記制御回路の制御に基づき、レジスタ(GPR10)のうち仮数部分の上位ビットを1とし、さらに上位ビット側を0としたビット列と、セレクタ(mux03)の選択結果と、セレクタ(mux04)の選択結果を選択して、選択結果をレジスタ(GPR10)に提供し、
セレクタ(mux01)は、前記制御回路の制御に基づき、前記レジスタ(GPR11)のうち仮数部分の上位ビットを1とし、さらに上位ビット側を0としたビット列と、セレクタ(mux0)4の選択結果を選択して、選択結果を前記レジスタ(GPR11)に提供し、
前記セレクタ(mux0)は、前記制御回路の制御に基づき、前記演算器群の減算器の減算結果と、セレクタ(mux04)の選択結果を選択して、選択結果を、前記レジスタ(GPR11)に提供し、
前記汎用レジスタ群は、浮動小数点除算命令の実行のみに使用する減算器を備え、
前記減算器は、前記レジスタ(GPR10)のうち指数部から、前記レジスタ(GPR11)のうち指数部を減算し、減算結果をセレクタ(mux02)に提供し、
前記演算器群は、加減算器と、乗算器と、バレルシフタと、を備え、それぞれの演算器は、前記制御回路の制御に基づき、セレクタ(mux1−0)から供給されたオペランド(opr0とopr1)に対する演算を行い、
前記演算器群の演算結果は、前記制御回路に制御されたセレクタ(mux1−1)で選択され、セレクタ(mux04)に提供され、
前記データメモリは、前記制御回路の制御に基づき、前記汎用レジスタ群及び外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータをセレクタ(mux04)及び前記外部データ転送網に提供し、
セレクタ(mux04)は、前記制御回路の制御に基づき、前記セレクタ(mux1−1)の選択結果、前記データメモリの読み出し結果を選択し、選択結果を前記汎用レジスタ群に提供する、請求項18の並列演算プロセッサ。 - 前記PE演算器間接続を介して、前記第2のPEは、前記第1のPEから、演算の結果(QUO)と、浮動小数点命令の途中結果である指数途中結果(tmpe)と符号結果(sign)を受け取り、前記第2のPEから前記第1のPEに、浮動小数演算の終了信号(END)を提供する請求項18の並列演算プロセッサ。
- 前記第2のPEは、
制御回路と、
汎用レジスタ群と、
演算器群と、
データメモリと、
を備え、
前記汎用レジスタ群は、複数のレジスタ(GPR20〜GPR2p)を備え、
前記レジスタ(GPR20)は、セレクタ(mux05)の選択結果により更新され、他のレジスタ(GPR21〜GPR2p)は形式成型器の選択結果により更新され、
前記汎用レジスタ群の出力は、制御回路に制御されたセレクタ(mux2−0)で選択され、オペランド(opr0、opr1)として前記演算器群及びデータメモリに供給され、
セレクタ(mux05)は、前記制御回路の制御に基づき、レジスタ(GPR20)のビット列からMSBを取り除き、LSBに前記PE演算器間接続を介して第1のPEから提供された浮動小数点命令の結果一桁(QUO)を加えたビット列と、前記形式成型器の選択結果を選択し、選択結果を前記レジスタ(GPR20)に提供し、
前記演算器群は、
加減算器と、
乗算器と、
バレルシフタと、
を備え、
前記加減算器は、セレクタ(mux06)の選択結果と前記オペランド(opr1)を、オペランドとして、制御回路の制御に基づいた演算を行い、
前記乗算器は、前記オペランド(opr0とopr1)を、オペランドとして、制御回路の制御に基づいた演算を行い、
前記バレルシフタは、オペランド(opr0)とセレクタmux07の選択結果を、オペランドとして、前記制御回路の制御に基づいた演算を行い、
演算結果は、前記制御回路に制御されたセレクタ(mux2−1)で選択され、セレクタ(mux08)に提供され、
セレクタ(mux06)は、前記制御回路の制御に基づき、前記バレルシフタの演算結果とオペランド(opr0)を選択し、選択結果を前記加減算器に提供し、
セレクタ(mux07)は、前記制御回路の制御に基づき、リーディングワン演算結果とオペランド(opr1)を選択し、選択結果を前記バレルシフタに提供し、
前記演算器群は、浮動小数点命令の実行のみに使用するリーディングワンと加算器と丸め検出器を備え、
前記リーディングワンは、前記オペランド(opr0)のビット列をMSB側からLSB側へ検索し、MSBから最初に現れた1までの距離を計算し、前記加算器とセレクタ(mux07)に提供し、
前記加算器は、前記PE演算器間接続を介して前記第1のPEから提供された指数途中結果(tmp)と、前記リーディングワンの演算結果を加算し、加算結果を、前記形式成型器に提供し、
前記丸め検出器は、前記バレルシフタの演算結果が丸めを必要とするかを判定し、判定結果をセレクタ(mux2−1)に提供し、
前記データメモリは、前記制御回路の制御に基づき、前記汎用レジスタ群及び外部メモリデータ転送網からのデータを記憶素子に書き込み、前記記憶素子から読み出したデータをセレクタ(mux08)及び前記外部メモリデータ転送網に提供し、
前記セレクタmux08は、前記制御回路の制御に基づき、前記セレクタ(mux2−1)の選択結果、前記データメモリの読み出し結果を選択し、選択結果を前記形式成型器に提供し、
前記形式成型器は、前記制御回路の制御に基づき、前記セレクタ(mux08)の選択結果と、前記加算器の加算結果と、前記第1のPEより提供された符号結果(sign)を選択し、選択結果を前記汎用レジスタ群に提供し、
前記形式成型器は、前記制御回路の制御に基づき、前記セレクタ(mux08)の選択結果を仮数部とし、前記加算器の加算結果を指数部とし、前記第1のPEより提供された符号結果(sign)を符号部として選択し、形式を整え、前記汎用レジスタ群に提供する請求項27の並列演算プロセッサ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007088656A JP4232838B2 (ja) | 2007-03-29 | 2007-03-29 | 再構成可能なsimd型プロセッサ |
EP08739014.2A EP2144158B1 (en) | 2007-03-29 | 2008-03-27 | Reconfigurable simd processor and its execution control method |
PCT/JP2008/055885 WO2008123361A1 (ja) | 2007-03-29 | 2008-03-27 | 再構成可能なsimd型プロセッサ及びその命令実行制御の方法 |
US12/593,498 US20100174891A1 (en) | 2007-03-29 | 2008-03-27 | Reconfigurable simd processor and method for controlling its instruction execution |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007088656A JP4232838B2 (ja) | 2007-03-29 | 2007-03-29 | 再構成可能なsimd型プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008250471A true JP2008250471A (ja) | 2008-10-16 |
JP4232838B2 JP4232838B2 (ja) | 2009-03-04 |
Family
ID=39830850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007088656A Expired - Fee Related JP4232838B2 (ja) | 2007-03-29 | 2007-03-29 | 再構成可能なsimd型プロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100174891A1 (ja) |
EP (1) | EP2144158B1 (ja) |
JP (1) | JP4232838B2 (ja) |
WO (1) | WO2008123361A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013140472A (ja) * | 2012-01-04 | 2013-07-18 | Fujitsu Ltd | ベクトルプロセッサ |
CN106528044A (zh) * | 2010-09-24 | 2017-03-22 | 英特尔公司 | 处理器、指令执行方法和计算系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4424443B2 (ja) * | 2006-08-23 | 2010-03-03 | 日本電気株式会社 | 混合モード並列プロセッサシステム、混合モード並列プロセッサ方法、および、混合モード並列プロセッサプログラム |
KR101098758B1 (ko) * | 2007-09-20 | 2011-12-26 | 서울대학교산학협력단 | Fp-ra를 구성하는 pe 구조 및 그 fp-ra제어하는 fp-ra 제어 회로 |
GB0907559D0 (en) * | 2009-05-01 | 2009-06-10 | Optos Plc | Improvements relating to processing unit instruction sets |
JP5397061B2 (ja) * | 2009-07-21 | 2014-01-22 | 富士通株式会社 | 演算処理装置、その制御方法および演算処理プログラム |
US9274752B2 (en) * | 2012-12-28 | 2016-03-01 | Intel Corporation | Leading change anticipator logic |
JP6308095B2 (ja) * | 2014-10-08 | 2018-04-11 | 富士通株式会社 | 演算回路及び演算回路の制御方法 |
US9735953B2 (en) * | 2015-03-06 | 2017-08-15 | Qualcomm Incorporated | Side channel analysis resistant architecture |
FR3083351B1 (fr) * | 2018-06-29 | 2021-01-01 | Vsora | Architecture de processeur asynchrone |
FR3083350B1 (fr) * | 2018-06-29 | 2021-01-01 | Vsora | Acces memoire de processeurs |
CN109976705B (zh) * | 2019-03-20 | 2020-06-02 | 上海燧原智能科技有限公司 | 浮点格式数据处理装置、数据处理设备及数据处理方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218709A (en) * | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
JP2508912B2 (ja) * | 1990-10-31 | 1996-06-19 | 日本電気株式会社 | 浮動小数点加算装置 |
US5809292A (en) * | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5241490A (en) * | 1992-01-06 | 1993-08-31 | Intel Corporation | Fully decoded multistage leading zero detector and normalization apparatus |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
JPH0651984A (ja) | 1992-06-05 | 1994-02-25 | Hitachi Ltd | マイクロプロセッサ |
JPH1091439A (ja) * | 1996-05-23 | 1998-04-10 | Matsushita Electric Ind Co Ltd | プロセッサ |
US6044448A (en) * | 1997-12-16 | 2000-03-28 | S3 Incorporated | Processor having multiple datapath instances |
US6175847B1 (en) * | 1998-07-22 | 2001-01-16 | Intrinsity, Inc. | Shifting for parallel normalization and rounding technique for floating point arithmetic operations |
JP3983394B2 (ja) | 1998-11-09 | 2007-09-26 | 株式会社ルネサステクノロジ | 幾何学処理プロセッサ |
US6622234B1 (en) * | 1999-06-21 | 2003-09-16 | Pts Corporation | Methods and apparatus for initiating and resynchronizing multi-cycle SIMD instructions |
JP3940542B2 (ja) | 2000-03-13 | 2007-07-04 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
JP2002229962A (ja) * | 2001-02-06 | 2002-08-16 | Ricoh Co Ltd | 総和値とピーク値を検出するsimd型マイクロプロセッサ |
JP4712247B2 (ja) * | 2001-08-31 | 2011-06-29 | 富士通セミコンダクター株式会社 | 整数除算または整数剰余算を含むアプリケーションプログラム向けのマイクロプロセッサの開発システム |
US20070067380A2 (en) * | 2001-12-06 | 2007-03-22 | The University Of Georgia Research Foundation | Floating Point Intensive Reconfigurable Computing System for Iterative Applications |
GB0224023D0 (en) * | 2002-10-16 | 2002-11-27 | Roysmith Graeme | Reconfigurable integrated circuit |
JP2007088656A (ja) | 2005-09-21 | 2007-04-05 | Sony Corp | ラジオ受信機及びラジオ受信機の制御方法 |
WO2009035185A1 (en) * | 2007-09-11 | 2009-03-19 | Core Logic Inc. | Reconfigurable array processor for floating-point operations |
KR101098758B1 (ko) * | 2007-09-20 | 2011-12-26 | 서울대학교산학협력단 | Fp-ra를 구성하는 pe 구조 및 그 fp-ra제어하는 fp-ra 제어 회로 |
-
2007
- 2007-03-29 JP JP2007088656A patent/JP4232838B2/ja not_active Expired - Fee Related
-
2008
- 2008-03-27 EP EP08739014.2A patent/EP2144158B1/en not_active Not-in-force
- 2008-03-27 WO PCT/JP2008/055885 patent/WO2008123361A1/ja active Application Filing
- 2008-03-27 US US12/593,498 patent/US20100174891A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528044A (zh) * | 2010-09-24 | 2017-03-22 | 英特尔公司 | 处理器、指令执行方法和计算系统 |
JP2013140472A (ja) * | 2012-01-04 | 2013-07-18 | Fujitsu Ltd | ベクトルプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
JP4232838B2 (ja) | 2009-03-04 |
US20100174891A1 (en) | 2010-07-08 |
EP2144158A1 (en) | 2010-01-13 |
WO2008123361A1 (ja) | 2008-10-16 |
EP2144158B1 (en) | 2015-01-07 |
EP2144158A4 (en) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4232838B2 (ja) | 再構成可能なsimd型プロセッサ | |
TWI784980B (zh) | 用於執行算術運算以累加浮點數的裝置及方法 | |
TWI625671B (zh) | 微處理器與在微處理器中執行之方法 | |
US6049865A (en) | Method and apparatus for implementing floating point projection instructions | |
KR20240011204A (ko) | 행렬 연산 가속기의 명령어들을 위한 장치들, 방법들, 및 시스템들 | |
WO2019005088A1 (en) | HETEROGENEOUS MULTIPLIER | |
CN106528044A (zh) | 处理器、指令执行方法和计算系统 | |
JPH0863353A (ja) | 掛け算累算命令を使用したデータ処理 | |
CN105335127A (zh) | Gpdsp中支持浮点除法的标量运算单元结构 | |
US9703626B2 (en) | Recycling error bits in floating point units | |
TWI724545B (zh) | 用於影像處理之設備及方法 | |
US11188305B2 (en) | Computation device having a multiplexer and several multipliers and computation system | |
GB2423386A (en) | Performing a reciprocal operation on an input value to produce a result value | |
US20220156567A1 (en) | Neural network processing unit for hybrid and mixed precision computing | |
KR20140138053A (ko) | 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 | |
US9361267B2 (en) | Splitable and scalable normalizer for vector data | |
Jeon et al. | M3FPU: Multiformat Matrix Multiplication FPU Architectures for Neural Network Computations | |
JPH10207863A (ja) | 演算処理装置 | |
GB2537524A (en) | Variable length execution pipeline having an odd number of stages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081027 |
|
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: 20081118 |
|
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: 20081201 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131219 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |