JP2003296096A - シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 - Google Patents
シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法Info
- Publication number
- JP2003296096A JP2003296096A JP2002099202A JP2002099202A JP2003296096A JP 2003296096 A JP2003296096 A JP 2003296096A JP 2002099202 A JP2002099202 A JP 2002099202A JP 2002099202 A JP2002099202 A JP 2002099202A JP 2003296096 A JP2003296096 A JP 2003296096A
- Authority
- JP
- Japan
- Prior art keywords
- data
- arithmetic
- latch circuit
- line
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 22
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000001934 delay Effects 0.000 claims description 3
- 239000004065 semiconductor Substances 0.000 claims description 2
- 239000000470 constituent Substances 0.000 claims 1
- 239000002360 explosive Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 4
- QZOCOXOCSGUGFC-KIGPFUIMSA-N SCB3 Chemical compound CCC(C)CCCC[C@@H](O)[C@H]1[C@H](CO)COC1=O QZOCOXOCSGUGFC-KIGPFUIMSA-N 0.000 description 2
- QZOCOXOCSGUGFC-UHFFFAOYSA-N SCB3 Natural products CCC(C)CCCCC(O)C1C(CO)COC1=O QZOCOXOCSGUGFC-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 101001050607 Homo sapiens KH domain-containing, RNA-binding, signal transduction-associated protein 3 Proteins 0.000 description 1
- 102100023428 KH domain-containing, RNA-binding, signal transduction-associated protein 3 Human genes 0.000 description 1
- 241001415513 Salpida Species 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 235000012237 sodium aluminium phosphate Nutrition 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
的な演算量を伴う複雑な処理フローを実現する汎用的な
パイプラインを提供する。 【解決手段】 各々独立に制御され他の算術論理演算回
路(SALC)1と同時に動作可能な複数のSALCを
カスケード接続してシリアル演算パイプラインを構成す
る。複数のSALC1の全部又は一部は、前段から後段
へデータを出力するためのラインと、後段から前段へデ
ータをフィードバックするためのラインと、各ライン上
のデータをラッチするラッチ回路11〜13とを有し、
任意のSALC1から他のSALC1へデータをフィー
ドバックできるようにした。
Description
オブジェクトをコンピュータ・グラフィクスによって表
現するような、突発的かつ爆発的に膨らむ離散演算を必
要とする用途に適したシリアル演算パイプライン(pipe
line)及びその構成要素に関する。ここで、シリアル演
算パイプラインは、命令取り出し(fetch)、命令解読
(decode)、その実行(execute)のような、別々の作
業を順次同時に行なうことによって処理の高速化を図る
ものであり、少数の命令群を扱う演算器をカスケード接
続して構成される。カスケード接続された複数の演算器
のうち使用するものの組み合わせを適宜変えることによ
り、加減剰、浮動小数点演算、比較、ブール代数、選択
(IF文)等、様々な演算処理を実現することができる。
しては、通常、2次元ピクセル内・ピクセル間の演算、
空間把握(コリジョン・デテクション等)、オブジェク
ト生成・合成、ジオメトリ演算等、多種の離散的演算を
伴う。このような用途では、コンピュータのメインCP
Uだけでは、到底不可能なほどの大量演算パワーが必要
となる。例えば、しばしば数100[Mpolygon /sec]、
数10[Gpixel / sec]のオーダのレンダリング処理
能力が必要になる。そのため、従来より、演算パイプラ
インを搭載した専用のプロセッサが使用されてきた。
のデバイスで構成され、見込まれる演算量に応じて演算
パイプラインを並列化して組み込まれている。演算パイ
プラインを構築する個々の演算器にも所定の機能が固定
的に割り当てられている。いわゆる「1機能1演算器」
である。このような1機能1演算器によるパイプライン
は、例えば固定長のデータサイズを短スループットで処
理する用途には、非常に適している。
な用途には、使い回しが利きにくい。例えば用途に応じ
てパイプライン構成を変更しようとする場合は、演算対
象となるデータの通り道と割り当てられた機能とを結び
つけるためのセレクタ(バス)が別途必要となる。その
ため、単一デバイス内での並列化には限界があった。ま
た、演算器又は演算パイプラインを一定数以上並列化す
るとクラスタ化が避けられず、そのための制御やデータ
パス(キャッシュ又はバス)がそれぞれ必要となって、
集積効率が悪化してしまう。
マブル・データ・フロー・グラフ(DFG)を構成する
ことが考えられる。しかし、プログラマブルDFGは、
演算器に対して、セレクタのような非演算要素の占める
割合が比較的高い。演算のプログラマビリティを上げる
ほど、その比率が高まることは、よく知られていること
である。プログラマブルDFGは、また、機能(functi
on)が細分化されているため、すべての機能を常時稼動
させることは困難である。稼働効率を上げるためには、
ある程度固定された機能の塊にせざるを得ず、様々なタ
イプのデータを処理すること用途には不向きとなる。
らは、演算器の2次元並列化も考えられる。「2次元的
並列化」とは、演算器をパラレル及びカスケードに並列
化することである。いわば、深パイプラインによるデー
タフローの並列化である。特殊なインプリメントとして
は、並列化されたレンダリング・パイプラインがある。
2次元並列化に際してはパイプライン内で必要な機能の
みを盛り込み、プログラマビリティを極力排除して、専
用演算器のカスケード接続で効率を上げている。
その際、様々なデータサイズに対して突発的かつ爆発的
な演算量を伴う複雑な処理フローを実現する汎用的なパ
イプラインが望まれる。汎用的な演算パイプラインを構
築するためには、データパスを単純(一直線)にし、無
駄なくカスケード接続する必要がある。また、多種多様
な演算を1演算器で実現できるような仕組みが必要とな
る。
昇を伴わずに実現しようとするものである。
御され他の算術論理演算回路と同時に動作可能な複数の
算術論理演算回路をカスケード接続して成るシリアル演
算パイプラインを提供する。このシリアル演算パイプラ
インにおいて、複数の算術論理演算回路の全部又は一部
は、前段から後段へデータを出力するための第1ライン
と、後段から前段へデータをフィードバックするための
第2ラインと、各ライン上のデータをラッチするラッチ
回路とを有するものである。この算術論理演算回路にお
ける好ましい実施の形態では、第1ラインを前段から受
け取ったデータないしそれに基づく演算結果を後段に出
力するための順方向ライン、第2ラインを後段から受け
取ったデータないしそれに基づく演算結果を前段に出力
するための逆方向ラインとする。
部から入力されたインストラクション(命令)の内容に
応じた演算を含む処理を実行し、その実行結果を所望の
ライン宛に出力するデコーダを有するものである。ま
た、前記ラッチ回路は、後段に出力する第1の出力デー
タをラッチする第1のデータラッチ回路と、後段に出力
する第2の出力データをラッチする第2のデータラッチ
回路と、前記デコーダによる演算の結果生じたキャリー
を次の桁の演算のためにラッチするキャリーラッチ回路
と、第1の出力データおよび第2の出力データの一方を
所定期間遅延させて他方との参照を可能にするシフトラ
ッチ回路とを含むものである。前段にフィードバックす
るリバースデータをラッチするリバースラッチ回路と、
前記第1および第2のデータラッチ回路およびリバース
ラッチ回路にラッチされているデータの出力タイミング
を決めるコントロールデータをラッチするコントロール
ラッチ回路とをさらに含むようにしてもよい。
イン全体の処理速度を高める観点からは、前記デコーダ
により処理されるデータを、単位処理サイズのデータ、
例えば、前記複数の算術論理演算回路の動作タイミング
を定める一つのクロックで処理可能な最低ビット長ない
し同等のビット長のデータとする。
ラインを切替接続する切替接続手段と、この切替接続手
段に対して並列に接続された複数のシリアル演算パイプ
ラインと、外部から入力された前記複数のシリアル演算
パイプライン宛のインストラクションを受け付けるイン
ストラクション受付機構とを備えた演算装置を提供す
る。この演算装置において、前記複数のシリアル演算パ
イプラインの各々は、他の算術論理演算回路と同時に動
作可能な複数の算術論理演算回路をカスケード接続して
構成されたシリアル演算パイプラインであり、前記複数
の算術論理演算回路の各々は、前段から受け取ったデー
タないしそれに基づく演算結果を後段に出力するための
順方向ラインと、後段から受け取ったデータないしそれ
に基づく演算結果を前段にフィードバックするための逆
方向ラインと、入力された前記インストラクションに応
じた処理を実行し実行結果を所望のラインに出力するデ
コーダと、他の算術論理演算回路との間で各ライン上の
データ出力の同期をとるためのラッチ回路とを有するも
のである。
m列の前記インストラクションの集合であるインストラ
クションアレイをコントローラに保持しておき、コント
ローラで、インストラクションアレイを列毎にm回前記
複数の算術論理演算回路宛に出力するとともにパイプラ
インが後段に1段ずつn回移行させる際に、実行済みの
インストラクションを1段毎に1つ減ずるようにしても
よい。前記インストラクションアレイは、好ましくは、
1パスで演算を実行するための演算手順が定められるよ
うにする。
のラッチ回路は、後段に出力する第1の出力データをラ
ッチする第1のデータラッチ回路と、後段に出力する第
2の出力データをラッチする第2のデータラッチ回路
と、前段に出力するデータをラッチするリバースラッチ
回路と、演算結果のキャリーを次の桁の演算のためにラ
ッチするキャリーラッチ回路と、第1の出力データおよ
び第2の出力データの一方を所定期間遅延させて他方と
の参照を可能にするシフトラッチ回路と、前記第1およ
び第2のデータラッチ回路およびリバースラッチ回路に
ラッチされているデータの演算を制御するためのコント
ロールデータをラッチするコントロールラッチ回路とを
含むものである。この演算装置においても、装置全体の
処理速度を高める観点からは、前記複数の算術論理演算
回路の各々のデコーダにおける順方向ライン上のデータ
および逆方向ライン上のデータを単位処理サイズのデー
タとする。
複数のシリアル演算パイプライン、および前記インスト
ラクション受付機構を一つの半導体デバイスの中に組み
込んでおき、用途に応じて切替接続手段の制御信号とイ
ンストラクションアレイを入力することにより、用途の
汎用性を持たせることができる。
る演算方法を提供する。この方法は、後段にデータを出
力するための1又は複数の第1ラインと、前段にデータ
をフィードバックするための第2ラインとを有し、シリ
アル演算を行うとともに演算結果を表すデータの出力対
象となるラインを各々独立に選択することができる算術
論理演算回路を複数段カスケード接続してシリアル演算
パイプラインを構築し、前記シリアル演算パイプライン
に接続された外部コントローラで、前記複数の算術論理
演算回路による1パスによる同時実行の手順を反映した
n行m列のインストラクションの集合であるインストラ
クションアレイを列毎にm回前記複数の算術論理演算回
路宛に個別に出力するとともに、パイプラインが後段に
1段ずつn回移行させる際に、実行済みのインストラク
ションを1段毎に1つ減ずる制御を行うことを特徴とす
る演算方法である。
たり、図1を参照して、本発明の基本原理について説明
する。シリアル演算器は、例えば1〜3ビット程度のシ
リアル演算を行うもので、16ビット程度の多ビット演
算を行うパラレル演算器と比較して、スループットが、
データ幅分の1(1ビットのシリアル演算の場合)とな
るが、演算器面積もその分小さい。スループットが小さ
い分をパイプラインの並列度を上げるようにすれば、両
者の製造コストは実質的に変わらない。例えば、図1
(a)のように、16ビットレジスタを二つパラレルに
し、その出力を一つの16ビットアダーで加算して、加
算結果を一つの16ビットレジスタに格納する構成の1
6ビット演算器と、(b)のように1ビットレジスタを
32個並列にし、それぞれ2つの1ビットレジスタの出
力を加算する1ビット加算器を16個設け、各々の加算
機の出力を格納する16個の1ビットレジスタからなる
16個の1ビット演算器とは実質的に同一コストとな
る。後者の場合は、パイプの各ステージが短くなるた
め、その分高速化が可能になる利点もある。
様々な多ビット演算命令の実行環境を、単位処理サイズ
のフィードバック付シリアル算術論理演算回路(Serial
-ALCell、以下「SALC」と称する)の組み合せによ
って実現する場合の例を挙げる。単位処理サイズとは、
SALCにおいて一つのクロックで処理可能な最低ビッ
ト長であり、最も単純な例では1ビット、上記のよう
に、通常は1〜3ビット程度である。
す。図2からわかるように、この実施形態によるSAL
C1は、2系統のデータ入力端D1i、D2iおよび2系統の
データ出力端D1o、D2oと、1系統のリバースデータ入力端
Riおよびリバースデータ出力端Roとを有し、前段(図の
左側)から後段(図の右側)へ2系統のデータを出力す
るための順方向ラインと、後段から前段へデータをフィ
ードバックするための逆方向ラインとが形成されてい
る。以後の説明では、データ出力端D1oから出力される
ライン上のデータを「出力データ」、データ出力端D2o
から出力されるライン上のデータを「参照データ」、リ
バースデータ出力端Roから出力(フィードバック)され
るライン上のデータを「リバースデータ」とする。SA
LC1において、後述するシリアル演算パイプラインを
構成する他のSALCとの同期をとるため、出力データ
はデータラッチ回路11でラッチされ、参照データはリ
ファレンスラッチ回路12でラッチされ、リバースデー
タはリバースラッチ回路12でラッチされる。
入力端CONから入力されるインストラクションの内容を
デコードし、デコード結果に応じた処理を実行するとと
もに、実行結果を出力するラインの選定等を行うための
デコーダ10を有する。処理の例としては、例えば、四
則演算、論理演算のような演算処理のほか、パス制御、
ラッチ制御、条件付命令等の制御処理が挙げられる。デ
コーダ10は、また、前段から受け取ったデータが後段
の方向に向かう順方向ラインと、後段から受け取ったデ
ータが前段の方向に向かう逆方向ラインとの選択も行
う。他の複数のSALC1のデコーダとの協働によっ
て、マクロ命令の実行を行うことができる。
するための種々のラッチ回路、すなわち、シフトラッチ
回路14と、コントロールラッチ回路15と、キャリー
ラッチ回路16とが接続されている。シフトラッチ回路
14は、出力データのラインよりも参照データのライン
が所定時間だけ遅れるようにするために、参照データを
ラッチし、例えば演算の際に次の桁でこれを出力するよ
うに動作する。キャリーラッチ回路15は、演算結果の
キャリーを次の桁の演算時までラッチする。コントロー
ルラッチ回路15は、出力データ、参照データ、リバー
スデータの出力タイミングをコントロールするコントロ
ールデータをデコーダ10から出力の指示が出されるま
でラッチする。
デコーダ10によって順方向と逆方向の入れ替えができ
るため、複数のSALC1をカスケード接続してシリア
ル演算パイプラインを構築した場合に、順方向ラインと
逆方向ラインとを適宜セレクトしてフレキシブルなデー
タレンジで論理演算を行うことができる。また、乗算器
や除算器、積和演算器、フロート演算器(指数・仮数を
分けて演算し、それらの結果を互いに反映させる)など
を容易に構築できるようになる。
いたシリアル演算パイプラインの実施形態を説明する。
図3は、複数のSALC1をカスケード接続してなるシ
リアル演算パイプライン(Serial - ALPipeline、以
下、「SALP」と称する)の構成例を示した図であ
る。SALP2は、様々な多ビット演算命令を単純なシ
リアル命令の組み合わせで実現するものである。なお、
1パスで論理演算を完了させる場合、SALC1の連結
数は、加算器では1以上あれば済むが、乗算器では、桁
数分のSALC1が必要となる。さらに、多項式演算な
どを行わせる場合は、同時演算分やデータラッチ分(こ
れらは共通化できる場合がある)が必要である。
4のように、SALC1の出力を数段前のSALC1の
データ入力端にフィードバックすればよい。これによ
り、前に演算した結果と新たに投入するデータ間で、論
理演算ができるようになり、各々の中間値(入出力間の
中間のデータ)同士を演算させるなどの複雑な多項式を
1パスで演算することができるようになる。
によって種々のマクロ命令を実行することができる。こ
の場合の動作例を具体的に説明する。ここでは、単純な
例として、4ビット乗算(Multiplier)の例を挙げる。
ード接続したSALP2における各SALC1の状態と
そのときのデータの内容を示した図である。4ビット乗
算は、図5(a)の0サイクルで最初のデータが入力さ
れ、1クロック毎に次のデータの入力・インストラクシ
ョンのデコード・論理演算・ラッチ・出力が行われた
後、図5(p)の16サイクル目で完結する。図中、個
々のSALC1のうち面積が拾い部分はデコーダ10で
あり、デコーダ10の上部はキャリーラッチ回路16で
あり、デコーダ10の下部左側はシフトラッチ回路1
4、下部右側はコントロールラッチ回路15である。各
々、空白になっている部分および破線部分にはデータ等
が存在しないことを表している。0,A0〜A3,B0
〜B3は演算対象データ、SM0〜SM7は演算結果デ
ータである。デコーダ10の部分に記入されている文字
はインストラクションであり、「SET」はデータセッ
ト(data set:シフトラッチ回路14、コントロールラ
ッチ回路15へのデータ格納)、「THR」はスルー
(through:データを格納せず、そのまま通過させ
る)、「ADS」はデータ加算&シフト(add&shift)
を表している。「carry」はキャリーラッチ回路16に
ラッチされるキャリービットを表している。
ータ(0,A0)が初段のSALC1に入力され、デコーダ
10でインストラクション解読および論理演算がなされ
た後(スルーを含む)、演算結果データ(スルーを含
む)が後段のSALC1に出力される。この動作をすべ
てのSALC1に共通のクロックタイミングで同時に入
力されるインストラクションに従って繰り返し、最終的
に4ビット乗算の結果が最終段のSALC1からSM1
〜SM7として出力される。
t Add)のような特殊な演算形態をとるものもある。こ
の場合は、各SALC1に入力するインストラクション
を変えるだけで、容易にそれを実現することができる。
因みに、フロート加算において用いるインストラクショ
ンは、上記のADSのほか、FSUB(subtract forfl
oat)、SBS(subtract & set)、CCHG(control
ed change)、CSFT(controled shift)、INV
(inverse)、REV(reverse)、SFT(shift)、
OR、SUB(substract&envset)、NSUB(substr
act&RESET)を用いる。なお、上述したインストラクシ
ョンの種類は例示であって、その他にもデコーダ10で
実行可能な処理の種類に応じて任意に選定することがで
きる。
基本構成とし、その連結状態を適宜変えながらフレキシ
ブルなデータレンジで論理演算を行うことができるの
で、データレンジに比例した処理性能を実現することが
できる(例えば、8ビット演算は16ビット演算の倍の
性能)。また、入出力間の中間データなどのビットを膨
らませ,精度を保つことができるようになる。また、処
理途上の上位・下位ビットを削除することで,データの
質に合わせ効率的な有効桁数を持てるようになる。さら
に、指数,仮数を別処理することで、フロート(floa
t)演算が可能となる。上述したように、SALP2で
は、パラレル演算パイプラインに比べてスループットが
データ幅分の1となるが、演算器面積もその分少ない。
スループットが減少した分をパイプラインの並列度に割
り振れば、原理的に(制御を考えなければ)コストは変
わらない。その上、パイプ各ステージは短くなるため、
その分を高速化できる。
和演算、積和演算、多項式など、ほとんどの論理演算を
実行することができる。単演算子としてのコストパフォ
ーマンスをカスケード接続の演算器と比較すると、1要
素の演算に対する比較では、スループットがデータ幅分
の1であるためコスト上昇を伴うように見えるが、多量
なデータに対する演算では、演算素子を並列に割り振る
ことによって同一コストとなる。また、クロック間のロ
ジックは、単位処理サイズ(例えば1〜3ビット)毎で
切ることができ、また、いわゆるファンアウトが非常に
小さいので、周波数を大幅に上げることができる。ま
た、都合のいいことに、パイプラインの先頭に、非常に
小さい構成のクロスバを接続することができる。これに
より、演算要素の並列ラインの判定、パイプライン末尾
ラインのビット判定を非常に小さい構成で実現すること
ができる。アドレス計算、ブランチの条件を算出する等
のスカラ処理、処理領域が小領域でパラメータがその領
域ごとに変化するような処理に対しては、領域をバイン
ドすることによって実現することができる。そのため、
このようなSALP2を複数用いることにより、効率的
な論理演算を行う演算装置を構成することができる。
(図1に示したSALC1)をカスケード接続したSA
LP2を256個含んでなる演算装置の構成図である。
各SALP2は、例えば外部コントローラ、あるいはネ
ットワーク等と接続されるシリアルクロスバ(SCB)
3に対して、並列に接続されている。SCB3は、アド
レスデコーダと複数のクロスバスイッチとを有し、小面
積で256ラインの交換を行うもので、外部コントロー
ラ等からのバスのアドレス投入(コントロールフェー
ズ)とデータ投入(データフェーズ)の2フェーズで、
所望のラインにデータを分配することができる。
トラクションコントローラ(iCON)4からn行m列
のインストラクションの集合であるインストラクション
アレイが入力され、このインストラクションアレイによ
って、論理演算およびデータの入出力ラインがそれぞれ
独立に制御されるようになっている。インストラクショ
ンアレイは、すべてのSALP2に共通内容のものを同
時に入力してもよく、個々のSALP2のアドレスを指
定したうえで共通内容のインストラクションアレイを同
時に入力してもよく、個々のSALP2に個別的に個別
内容のインストラクションアレイを入力してもよい。i
CON4は、インストラクションアレイを列毎にm回、
各SALP2の個々のSALC宛に出力するとともにパ
イプラインが後段にn回移行する際に、実行済みのイン
ストラクションを減ずる。
を挙げた図9により説明する。図9下段のインストラク
ションアレイは、iCON4のメモリに保持されてお
り、1クロック毎に、図右列から順次読み出されてSA
LP2のSALCに入力される。先頭のインストラクシ
ョンが実行されると、そのインストラクションが1つ削
除されて後段のSALCに入力され、前段のSALCに
は、次の列のインストラクションのすべてが入力され
る。これをインストラクションがなくなるまで繰り返
す。インストラクションアレイには、フェッチやデータ
ループを埋め込むことができる。この場合には、従来技
術において説明した複雑なDFGを1パスで記述するこ
とができるようになり、演算パイプライン動作の制御形
態を簡略化させることができる。
ここでは、一例として、ある一つのSALP2を用いて
図10(a)に示す「1010」(Aデータ)×「11
00」(Bデータ)+「00101101」(Cデー
タ)の乗算および加算を行う場合の例を挙げる。出力さ
れる演算結果データは「01000101」となるので
あるが、その演算過程が特徴的なので、最初のサイクル
から演算結果データが出力されるまでの過程を図示して
説明する。用意されるデータは、図10(b)のよう
に、2段に並べられ、その右側から順次演算装置(SA
LP2)に入力される。なお、データサイズを合わせる
ために、データ取得時にMSBを4回取得し、これをA
データの先頭に付加する。この付加したデータは、演算
結果には影響を及ぼさないものである。図10(b)右
側のデータ説明において「intermediatedata」は、演算
過程で使用するいわゆる中間データであり、これも演算
結果に影響を及ぼさないものである。
(c)のようなものが用意される。この例において乗算
と加算に使用するインストラクションは、「SET」
(データセット)、「ADS」(加算およびシフト)、
「THR」の3種類である。「SET」は、シフトラッ
チ回路14に参照データ(下段のデータ入力端に入力さ
れたデータ)、コントロールラッチ回路15に出力デー
タ(上段のデータ入力端に入力されたデータ)、キャリ
ーラッチ回路16に「0」をセットすることを、その内
容とする。「ADS」はコントロールラッチ回路15に
ラッチされているデータが「0」の場合にはシフトの
み、それ以外は加算およびシフトを行うことを、その内
容とする。シフトとは、参照データとしてシフトラッチ
回路14にラッチされているデータを使用することをい
う。加算のときには、キャリービットのチェンジが行わ
れる(change carry)。「THR]は入力されたデータ
(出力データおよび参照データ)をそのまま後段に送る
ことを、その内容とする。
に、その先頭に「SET」が割り当てられた8個インス
トラクションの列が初段のSALCのインストラクショ
ン入力端CONに入力され、また、図10(b)の最右列
の2つのデータがデータ入力端D1i、D2iの各々に入力さ
れる。インストラクションが「SET」なので、これら
の2つのデータ「0」、「0」が、SALCのシフトラ
ッチ回路14およびコントロールラッチ回路15にセッ
トされる。キャリーラッチ回路16には、キャリービッ
トが発生しないので、「0」がセットされる。
に、次の列の2つのデータが初段のSALCのデータ入
力端D1i、D2iの各々に入力され、前のサイクルで入力さ
れた2つのデータ「0」、「0」がデータラッチ回路1
1およびリファレンスラッチ回路12から2段目のSA
LCに入力されるようになる。インストラクションは、
前のサイクルで初段のSALCに入力されたもののうち
既に実行された「SET」が除かれたものが2段目のS
ALCに出力され、初段のSALCには、図10(c)
の次の列のインストラクションが入力される。初段およ
び2段目のSALCのインストラクションとも「TH
R」なので、それぞれ入力された2つのデータ「0」、
「0」は、後段のSALCにそのまま送られる。
に、さらに次の列の2つのデータが初段のSALCのデ
ータ入力端D1i、D2iの各々に入力される。インストラク
ションは、初段のSALC以外のSALCには、2番目
のサイクルで入力されたもののうち既に実行された分が
除かれたものが入力され、初段のSALCには、図10
(c)のさらに次の列のインストラクションが入力され
る。初段および3段目のSALCのインストラクション
は「THR」、2段目のSALCのインストラクション
は「SET」なので、2段目のSALCに入力されたデ
ータ「0」、「0」は、そのSALCのシフトラッチ回
路14およびコントロールラッチ回路15にセットさ
れ、初段および3段目のSALCについては、それぞれ
入力された2つのデータ「0」、「0」が後段のSAL
Cにそのまま送られる。4番目のサイクルでの動作は図
14のようになり、上記と同様の手順でSALCによる
演算実行およびデータ移動が行われる。
に、「ADS」のインストラクションが初段のSALC
が入力される点以外は、上記と同様の手順でSALC間
による演算実行およびデータ移動が行われる。初段のS
ALCでは、コントロールラッチ回路15にラッチされ
ているデータが「0」なので、シフトのみとなる。6番
目のサイクル(図16)〜11番目のサイクル(図2
2)についても、上記と同様の手順で、SALCによる
演算実行およびデータ移動が行われる。
段のSALCに入力されるデータがなくなり、前段のS
ALC(図23の場合は初段のSALC)のデータラッ
チ回路11およびリファレンスラッチ回路12にラッチ
されているデータが後段のSALC(図23の場合は2
段目のSALC)に入力されるようになる。インストラ
クションについては、上記と同様、実行された分が削除
されて、後段のSALCに入力される。最終段のSAL
Cのデータラッチ回路11にラッチされているデータが
最終演算結果を表すデータのLSBとなる。
目のサイクル(図31)まで、上記の動作を繰り返し、
それぞれ最終段のSALC1のデータラッチ回路11に
ラッチされているデータを取り出すことにより、図31
の上段に示される最終演算結果が得られる。
フィードバック機能付きのSALCが複数段カスケード
接続されたSALP2をSCB3に対して複数ライン並
列に接続し、個々のSALCによる演算動作をiCON
4からのインストラクションアレイによって個別的に制
御できるようにしたので、多種多様な論理演算(四則演
算およびその組合せ、飽和演算、積和演算、多項式等)
を共通のハードウエアによって容易且つフレキシブルに
実現することができる。そのため、論理演算の用途が変
わったときでもコストの増加を伴わずにそれに対応する
ことができる。
機能を有しているので(ひいては、SALP2がそのよ
うな機能を有しているので)、様々なデータサイズに対
して突発的かつ爆発的な演算量を伴う複雑な処理フロー
を実現する汎用的なシリアル演算パイプラインを容易に
構築することができる。
データの並び、その実行手順等を任意に組み込むことが
できるので、データパスを単純(一直線)にすることが
できる利点がある。
インストラクションの量が相対的に多い論理演算に対し
ては、特に有効なツールとなり得る。この演算装置は、
例えばテクスチャマッピングのような複雑な演算を何ら
のハードウエアを代えずに実施することができる。この
場合、テクスチャが1フラグメントに収まらない場合
は、周囲フラグメントが複数回投入される。
ルックアップテーブルと、アドレスサイクル分のスルー
プットでルックアップテーブルの内容を書き換える機能
とを有し、様々な関数を多重に演算することもできる。
によれば、様々なデータサイズに対して突発的かつ爆発
的な演算量を伴う複雑な処理フローを実現する汎用的な
シリアル演算パイプラインを構築することができる。
6ビット演算器、(b)は16個の1ビット演算器の例
を示す。
(SALC)の構成図。
ライン(SALP)の構成図。
した図。
動作の一例を示す説明図。
動作の一例を示す説明図。
動作の一例を示す説明図。
プライン(SALP)の動作概要図。
るための論理演算式、(b)は入力するデータ列の構造
説明図、(c)は入力するインストラクションアレイの
構造説明図。
サイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
のサイクル)。
Claims (17)
- 【請求項1】 各々独立に制御され他の算術論理演算回
路と同時に動作可能な複数の算術論理演算回路をカスケ
ード接続して成るシリアル演算パイプラインであって、 前記複数の算術論理演算回路の全部又は一部が、後段へ
データを出力するための第1ラインと、前段へデータを
フィードバックするための第2ラインと、各ライン上の
データをラッチするラッチ回路とを有することを特徴と
する、 シリアル演算パイプライン。 - 【請求項2】 前記複数の算術論理演算回路の各々が、
外部から入力されたインストラクションの内容に応じた
演算を含む処理を実行し、その実行結果を表すデータを
所望のライン宛に出力するデコーダを有することを特徴
とする、 請求項1記載のシリアル演算パイプライン。 - 【請求項3】 前記第1ラインが、第1の出力データお
よび第2の出力データを後段に出力するための一対のラ
インであり、 前記ラッチ回路が、前記第1の出力データをラッチする
第1のデータラッチ回路と、前記第2の出力データをラ
ッチする第2のデータラッチ回路と、前記デコーダによ
る演算の結果生じるキャリーを次の桁の演算のためにラ
ッチするキャリーラッチ回路と、前記第1の出力データ
および前記第2の出力データの一方を所定期間遅延させ
て他方との参照を可能にするシフトラッチ回路と、を含
むことを特徴とする、 請求項2記載のシリアル演算パイプライン。 - 【請求項4】 前記ラッチ回路が、さらに、前段にフィ
ードバックするリバースデータをラッチするリバースラ
ッチ回路と、前記第1および第2のデータラッチ回路お
よび前記リバースラッチ回路にラッチされているデータ
の演算を制御するコントロールデータをラッチするコン
トロールラッチ回路とを含むことを特徴とする、 請求項3記載のシリアル演算パイプライン。 - 【請求項5】 前記デコーダにより処理されるデータ
が、単位処理サイズのデータであることを特徴とする、 請求項2記載のシリアル演算パイプライン。 - 【請求項6】 前記単位処理サイズが、前記複数の算術
論理演算回路の動作タイミングを定める一つのクロック
で処理可能な最低ビット長ないし同等のビット長である
ことを特徴とする、 請求項5記載のシリアル演算パイプライン。 - 【請求項7】 前記第1ラインが前段から受け取ったデ
ータないしそれに基づく演算結果を後段に出力するため
の順方向ラインであり、前記第2ラインが後段から受け
取ったデータないしそれに基づく演算結果を前段に出力
するための逆方向ラインであることを特徴とする、 請求項1ないし6のいずれかの項記載のシリアル演算パ
イプライン。 - 【請求項8】 複数系統のデータ入出力ラインを切替接
続する切替接続手段と、この切替接続手段に対して並列
に接続された複数のシリアル演算パイプラインと、外部
から入力された前記複数のシリアル演算パイプライン宛
のインストラクションを受け付けるインストラクション
受付機構とを備え、 前記複数のシリアル演算パイプラインの各々は、他の算
術論理演算回路と同時に動作可能な複数の算術論理演算
回路をカスケード接続して構成されたシリアル演算パイ
プラインであり、 前記複数の算術論理演算回路の各々は、前段から受け取
ったデータないしそれに基づく演算結果を後段に出力す
るための順方向ラインと、後段から受け取ったデータな
いしそれに基づく演算結果を前段にフィードバックする
ための逆方向ラインと、入力された前記インストラクシ
ョンに応じた処理を実行し実行結果を所望のラインに出
力するデコーダと、他の算術論理演算回路との間で各ラ
イン上のデータ出力の同期をとるためのラッチ回路とを
有するものである、 演算装置。 - 【請求項9】 n行m列の前記インストラクションの集
合であるインストラクションアレイを保持し、このイン
ストラクションアレイを列毎にm回前記複数の算術論理
演算回路宛に出力するとともにパイプラインが後段に1
段ずつn回移行させる際に、実行済みのインストラクシ
ョンを1段毎に1つ減ずるコントローラをさらに備えて
なる、 請求項8記載の演算装置。 - 【請求項10】 前記インストラクションアレイには、
1パスで演算を実行するための演算手順が定められてい
る、 請求項9記載の演算装置。 - 【請求項11】 前記順方向ラインが、第1の出力デー
タおよび第2の出力データを後段に出力するための一対
のライン、前記逆方向ラインがリバースデータを出力す
るラインであり、 前記複数の算術論理演算回路の各々のラッチ回路が、後
段に出力する第1の出力データをラッチする第1のデー
タラッチ回路と、 後段に出力する第2の出力データをラッチする第2のデ
ータラッチ回路と、 前段に出力するデータをラッチするリバースラッチ回路
と、 演算結果のキャリーを次の桁の演算のためにラッチする
キャリーラッチ回路と、 前記第1の出力データおよび前記第2の出力データの一
方を所定期間遅延させて他方との参照を可能にするシフ
トラッチ回路と、 前記第1および前記第2のデータラッチ回路および前記
リバースラッチ回路にラッチされているデータの演算を
制御するためのコントロールデータをラッチするコント
ロールラッチ回路と、を含むことを特徴とする、 請求項8記載の演算装置。 - 【請求項12】 前記複数の算術論理演算回路の各々の
デコーダにおける順方向ライン上のデータおよび逆方向
ライン上のデータが、単位処理サイズのデータであるこ
とを特徴とする、 請求項8記載の演算装置。 - 【請求項13】 前記切替接続手段、前記複数のシリア
ル演算パイプライン、および前記インストラクション受
付機構が一つの半導体デバイスの中に組み込まれている
ことを特徴とする、 請求項12記載の演算装置。 - 【請求項14】 シリアル演算パイプラインの構成要素
となるカスケード接続可能な算術論理演算回路であっ
て、 前記シリアル演算パイプラインの前段から受け取ったデ
ータないしそれに基づく演算結果を後段に出力するため
の1又は複数の順方向ラインと、 後段から受け取ったデータないしそれに基づく演算結果
を前段にフィードバックするための逆方向ラインと、 外部から入力されたインストラクションに応じた処理を
実行し実行結果を表すデータを所望のラインに出力する
デコーダと、 他の算術論理演算回路との間で各ライン上のデータ出力
のタイミングを同期させるためのラッチ回路とを備えて
なる、 算術論理演算回路。 - 【請求項15】 前記順方向ラインが、第1の出力デー
タおよび第2の出力データを出力する一対のライン、前
記逆方向ラインがリバースデータを一つの出力するライ
ンであり、 前記ラッチ回路が、 前記第1の出力データをラッチする第1のデータラッチ
回路と、 前記第2の出力データをラッチする第2のデータラッチ
回路と、 前記リバースデータをラッチするリバースラッチ回路
と、 前記デコーダによる演算結果のキャリーを次の桁の演算
のためにラッチするキャリーラッチ回路と、 第1の出力データおよび第2の出力データの一方を所定
期間遅延させて他方との参照を可能にするシフトラッチ
回路と、 前記第1および第2のデータラッチ回路およびリバース
ラッチ回路にラッチされているデータの演算を制御する
ためのコントロールデータをラッチするコントロールラ
ッチ回路とを含んで成る、 請求項14記載の算術論理演算回路。 - 【請求項16】 後段にデータを出力するための1又は
複数の第1ラインと、前段にデータをフィードバックす
るための第2ラインとを有し、シリアル演算を行うとと
もに演算結果を表すデータの出力対象となるラインを各
々独立に選択することができる算術論理演算回路を複数
段カスケード接続してシリアル演算パイプラインを構築
し、 前記シリアル演算パイプラインに接続された外部コント
ローラで、 前記複数の算術論理演算回路による1パスによる同時実
行の手順を反映したm行n列のインストラクションの集
合であるインストラクションアレイを列毎にm回前記複
数の算術論理演算回路宛に個別に出力するとともに、 パイプラインが後段に1段ずつn回移行させる際に、実
行済みのインストラクションを1段毎に1つ減ずる制御
を行うことを特徴とする、 シリアル演算パイプラインによる演算方法。 - 【請求項17】 前記複数の算術論理演算回路の各々の
デコーダにおける各ライン上のデータが、単位処理サイ
ズのデータであることを特徴とする、 請求項16記載の演算方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002099202A JP3719509B2 (ja) | 2002-04-01 | 2002-04-01 | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 |
EP03006757A EP1351134A3 (en) | 2002-04-01 | 2003-03-25 | Superpipelined arithmetic-logic unit with feedback |
US10/404,182 US7171535B2 (en) | 2002-04-01 | 2003-04-01 | Serial operation pipeline, arithmetic device, arithmetic-logic circuit and operation method using the serial operation pipeline |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002099202A JP3719509B2 (ja) | 2002-04-01 | 2002-04-01 | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003296096A true JP2003296096A (ja) | 2003-10-17 |
JP2003296096A5 JP2003296096A5 (ja) | 2005-04-07 |
JP3719509B2 JP3719509B2 (ja) | 2005-11-24 |
Family
ID=28035903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002099202A Expired - Fee Related JP3719509B2 (ja) | 2002-04-01 | 2002-04-01 | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7171535B2 (ja) |
EP (1) | EP1351134A3 (ja) |
JP (1) | JP3719509B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010539582A (ja) * | 2007-09-11 | 2010-12-16 | コア ロジック,インコーポレイテッド | 浮動小数点演算のための再構成アレイプロセッサ |
JP2011081643A (ja) * | 2009-10-08 | 2011-04-21 | Canon Inc | 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、およびその制御方法 |
EP3223233A1 (en) | 2016-03-25 | 2017-09-27 | Renesas Electronics Corporation | Image processing apparatus; image processing method; and vehicle control apparatus |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1669868A4 (en) * | 2003-09-30 | 2009-03-25 | Sanyo Electric Co | PROCESSOR AND INTEGRATED CIRCUIT WITH CONVERTIBLE CIRCUIT AND PROCESSING PROCESS THEREFORE |
JP4478050B2 (ja) * | 2005-03-18 | 2010-06-09 | 株式会社リコー | Simd型マイクロプロセッサ及びデータ処理方法 |
JP2006287675A (ja) * | 2005-04-01 | 2006-10-19 | Renesas Technology Corp | 半導体集積回路 |
US7681017B2 (en) * | 2005-11-01 | 2010-03-16 | Lsi Corporation | Pseudo pipeline and pseudo pipelined SDRAM controller |
US8024394B2 (en) * | 2006-02-06 | 2011-09-20 | Via Technologies, Inc. | Dual mode floating point multiply accumulate unit |
US8656143B2 (en) * | 2006-03-13 | 2014-02-18 | Laurence H. Cooke | Variable clocked heterogeneous serial array processor |
US20070226455A1 (en) * | 2006-03-13 | 2007-09-27 | Cooke Laurence H | Variable clocked heterogeneous serial array processor |
JP2007249843A (ja) * | 2006-03-17 | 2007-09-27 | Fujitsu Ltd | 再構成可能な演算装置 |
CN103646009B (zh) | 2006-04-12 | 2016-08-17 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
US7870556B2 (en) * | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
US8346831B1 (en) * | 2006-07-25 | 2013-01-01 | Vivante Corporation | Systems and methods for computing mathematical functions |
US20080126472A1 (en) * | 2006-08-28 | 2008-05-29 | Tableau, Llc | Computer communication |
US20080052490A1 (en) * | 2006-08-28 | 2008-02-28 | Tableau, Llc | Computational resource array |
US20080052525A1 (en) * | 2006-08-28 | 2008-02-28 | Tableau, Llc | Password recovery |
US20080052429A1 (en) * | 2006-08-28 | 2008-02-28 | Tableau, Llc | Off-board computational resources |
EP2523101B1 (en) | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
EP2996035A1 (en) | 2008-10-15 | 2016-03-16 | Hyperion Core, Inc. | Data processing device |
WO2012037491A2 (en) | 2010-09-17 | 2012-03-22 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
KR101638225B1 (ko) | 2011-03-25 | 2016-07-08 | 소프트 머신즈, 인크. | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 |
EP2689330B1 (en) | 2011-03-25 | 2022-12-21 | Intel Corporation | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
EP2689326B1 (en) | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
US9442772B2 (en) | 2011-05-20 | 2016-09-13 | Soft Machines Inc. | Global and local interconnect structure comprising routing matrix to support the execution of instruction sequences by a plurality of engines |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
US10191746B2 (en) | 2011-11-22 | 2019-01-29 | Intel Corporation | Accelerated code optimizer for a multiengine microprocessor |
CN104040491B (zh) | 2011-11-22 | 2018-06-12 | 英特尔公司 | 微处理器加速的代码优化器 |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9747104B2 (en) | 2014-05-12 | 2017-08-29 | Qualcomm Incorporated | Utilizing pipeline registers as intermediate storage |
US11340875B2 (en) * | 2020-06-02 | 2022-05-24 | Sri International | Searchable storage of sequential application programs |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179734A (en) * | 1984-03-02 | 1993-01-12 | Texas Instruments Incorporated | Threaded interpretive data processor |
JPH0767063B2 (ja) * | 1990-01-23 | 1995-07-19 | ヤマハ株式会社 | デジタル信号処理回路 |
US5038311A (en) * | 1990-08-10 | 1991-08-06 | General Electric Company | Pipelined fast fourier transform processor |
JP3096387B2 (ja) * | 1994-01-28 | 2000-10-10 | 三菱電機株式会社 | 数値演算処理装置 |
JPH08137819A (ja) * | 1994-11-04 | 1996-05-31 | Hitachi Ltd | 接続制御装置 |
US6044166A (en) * | 1995-01-17 | 2000-03-28 | Sarnoff Corporation | Parallel-pipelined image processing system |
JPH10240558A (ja) * | 1997-02-24 | 1998-09-11 | Hitachi Ltd | データ処理装置の制御方法、データ処理装置、電子線描画装置 |
-
2002
- 2002-04-01 JP JP2002099202A patent/JP3719509B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-25 EP EP03006757A patent/EP1351134A3/en not_active Withdrawn
- 2003-04-01 US US10/404,182 patent/US7171535B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010539582A (ja) * | 2007-09-11 | 2010-12-16 | コア ロジック,インコーポレイテッド | 浮動小数点演算のための再構成アレイプロセッサ |
JP2011081643A (ja) * | 2009-10-08 | 2011-04-21 | Canon Inc | 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、およびその制御方法 |
EP3223233A1 (en) | 2016-03-25 | 2017-09-27 | Renesas Electronics Corporation | Image processing apparatus; image processing method; and vehicle control apparatus |
US10229472B2 (en) | 2016-03-25 | 2019-03-12 | Renesas Electronics Corporation | Image processing apparatus, image processing method, and vehicle control apparatus |
Also Published As
Publication number | Publication date |
---|---|
US7171535B2 (en) | 2007-01-30 |
EP1351134A2 (en) | 2003-10-08 |
JP3719509B2 (ja) | 2005-11-24 |
EP1351134A3 (en) | 2007-11-07 |
US20030200237A1 (en) | 2003-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003296096A (ja) | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 | |
US8024394B2 (en) | Dual mode floating point multiply accumulate unit | |
US9081608B2 (en) | Residue number arithmetic logic unit | |
TWI772978B (zh) | 用於元素近似的計算單元、方法及可重配置處理器 | |
US5946361A (en) | Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation | |
CN111353126A (zh) | 分块矩阵乘法运算*** | |
KR20040048937A (ko) | Mac 연산 방법과 mac 연산을 포함하는 장치, 시스템및 제품 | |
US5633897A (en) | Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm | |
EP2521968A1 (en) | Hardware for performing arithmetic operations | |
US9372665B2 (en) | Method and apparatus for multiplying binary operands | |
US20150106414A1 (en) | System and method for improved fractional binary to fractional residue converter and multipler | |
JP6003744B2 (ja) | 演算処理装置及び演算処理方法 | |
JPH08123769A (ja) | 並列プロセッサ | |
CN112074810B (zh) | 并行处理设备 | |
US10387118B2 (en) | Arithmetic operation unit and method of controlling arithmetic operation unit | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
JP2006065788A (ja) | リコンフィギュラブル回路を備えた処理装置 | |
JP4413052B2 (ja) | データフローグラフ処理装置および処理装置 | |
JP3144859B2 (ja) | 算術論理演算装置 | |
US7007059B1 (en) | Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization | |
WO2008077803A1 (en) | Simd processor with reduction unit | |
Samanth et al. | Design and Implementation of 32-bit Functional Unit for RISC architecture applications | |
KR100900790B1 (ko) | 재구성형 프로세서 연산 방법 및 장치 | |
JP5116499B2 (ja) | 演算処理回路 | |
Kourav et al. | Design and Implementation of 64-Bit Arithmetic Logic Unit on FPGA Using VHDL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040513 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040513 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050427 |
|
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: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050831 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040513 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080916 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130916 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |