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
Application number
JP2002099202A
Other languages
English (en)
Other versions
JP3719509B2 (ja
JP2003296096A5 (ja
Inventor
Junichi Naoi
純一 直井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2002099202A priority Critical patent/JP3719509B2/ja
Priority to EP03006757A priority patent/EP1351134A3/en
Priority to US10/404,182 priority patent/US7171535B2/en
Publication of JP2003296096A publication Critical patent/JP2003296096A/ja
Publication of JP2003296096A5 publication Critical patent/JP2003296096A5/ja
Application granted granted Critical
Publication of JP3719509B2 publication Critical patent/JP3719509B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent 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

(57)【要約】 【課題】 様々なデータサイズに対して突発的かつ爆発
的な演算量を伴う複雑な処理フローを実現する汎用的な
パイプラインを提供する。 【解決手段】 各々独立に制御され他の算術論理演算回
路(SALC)1と同時に動作可能な複数のSALCを
カスケード接続してシリアル演算パイプラインを構成す
る。複数のSALC1の全部又は一部は、前段から後段
へデータを出力するためのラインと、後段から前段へデ
ータをフィードバックするためのラインと、各ライン上
のデータをラッチするラッチ回路11〜13とを有し、
任意のSALC1から他のSALC1へデータをフィー
ドバックできるようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば頻繁に動く
オブジェクトをコンピュータ・グラフィクスによって表
現するような、突発的かつ爆発的に膨らむ離散演算を必
要とする用途に適したシリアル演算パイプライン(pipe
line)及びその構成要素に関する。ここで、シリアル演
算パイプラインは、命令取り出し(fetch)、命令解読
(decode)、その実行(execute)のような、別々の作
業を順次同時に行なうことによって処理の高速化を図る
ものであり、少数の命令群を扱う演算器をカスケード接
続して構成される。カスケード接続された複数の演算器
のうち使用するものの組み合わせを適宜変えることによ
り、加減剰、浮動小数点演算、比較、ブール代数、選択
(IF文)等、様々な演算処理を実現することができる。
【0002】
【発明の背景】コンピュータ・グラフィクスの作成に際
しては、通常、2次元ピクセル内・ピクセル間の演算、
空間把握(コリジョン・デテクション等)、オブジェク
ト生成・合成、ジオメトリ演算等、多種の離散的演算を
伴う。このような用途では、コンピュータのメインCP
Uだけでは、到底不可能なほどの大量演算パワーが必要
となる。例えば、しばしば数100[Mpolygon /sec]、
数10[Gpixel / sec]のオーダのレンダリング処理
能力が必要になる。そのため、従来より、演算パイプラ
インを搭載した専用のプロセッサが使用されてきた。
【0003】従来のこの種のプロセッサの殆どは、単一
のデバイスで構成され、見込まれる演算量に応じて演算
パイプラインを並列化して組み込まれている。演算パイ
プラインを構築する個々の演算器にも所定の機能が固定
的に割り当てられている。いわゆる「1機能1演算器」
である。このような1機能1演算器によるパイプライン
は、例えば固定長のデータサイズを短スループットで処
理する用途には、非常に適している。
【0004】しかし、「1機能1演算器」では、多様的
な用途には、使い回しが利きにくい。例えば用途に応じ
てパイプライン構成を変更しようとする場合は、演算対
象となるデータの通り道と割り当てられた機能とを結び
つけるためのセレクタ(バス)が別途必要となる。その
ため、単一デバイス内での並列化には限界があった。ま
た、演算器又は演算パイプラインを一定数以上並列化す
るとクラスタ化が避けられず、そのための制御やデータ
パス(キャッシュ又はバス)がそれぞれ必要となって、
集積効率が悪化してしまう。
【0005】用途の多様化に対応するために、プログラ
マブル・データ・フロー・グラフ(DFG)を構成する
ことが考えられる。しかし、プログラマブルDFGは、
演算器に対して、セレクタのような非演算要素の占める
割合が比較的高い。演算のプログラマビリティを上げる
ほど、その比率が高まることは、よく知られていること
である。プログラマブルDFGは、また、機能(functi
on)が細分化されているため、すべての機能を常時稼動
させることは困難である。稼働効率を上げるためには、
ある程度固定された機能の塊にせざるを得ず、様々なタ
イプのデータを処理すること用途には不向きとなる。
【0006】一方、より高い演算能力を確保する観点か
らは、演算器の2次元並列化も考えられる。「2次元的
並列化」とは、演算器をパラレル及びカスケードに並列
化することである。いわば、深パイプラインによるデー
タフローの並列化である。特殊なインプリメントとして
は、並列化されたレンダリング・パイプラインがある。
2次元並列化に際してはパイプライン内で必要な機能の
みを盛り込み、プログラマビリティを極力排除して、専
用演算器のカスケード接続で効率を上げている。
【0007】今後は、離散演算の多様化が予想される。
その際、様々なデータサイズに対して突発的かつ爆発的
な演算量を伴う複雑な処理フローを実現する汎用的なパ
イプラインが望まれる。汎用的な演算パイプラインを構
築するためには、データパスを単純(一直線)にし、無
駄なくカスケード接続する必要がある。また、多種多様
な演算を1演算器で実現できるような仕組みが必要とな
る。
【0008】本発明は、このような仕組みを、コスト上
昇を伴わずに実現しようとするものである。
【0009】
【課題を解決するための手段】本発明は、各々独立に制
御され他の算術論理演算回路と同時に動作可能な複数の
算術論理演算回路をカスケード接続して成るシリアル演
算パイプラインを提供する。このシリアル演算パイプラ
インにおいて、複数の算術論理演算回路の全部又は一部
は、前段から後段へデータを出力するための第1ライン
と、後段から前段へデータをフィードバックするための
第2ラインと、各ライン上のデータをラッチするラッチ
回路とを有するものである。この算術論理演算回路にお
ける好ましい実施の形態では、第1ラインを前段から受
け取ったデータないしそれに基づく演算結果を後段に出
力するための順方向ライン、第2ラインを後段から受け
取ったデータないしそれに基づく演算結果を前段に出力
するための逆方向ラインとする。
【0010】前記複数の算術論理演算回路の各々は、外
部から入力されたインストラクション(命令)の内容に
応じた演算を含む処理を実行し、その実行結果を所望の
ライン宛に出力するデコーダを有するものである。ま
た、前記ラッチ回路は、後段に出力する第1の出力デー
タをラッチする第1のデータラッチ回路と、後段に出力
する第2の出力データをラッチする第2のデータラッチ
回路と、前記デコーダによる演算の結果生じたキャリー
を次の桁の演算のためにラッチするキャリーラッチ回路
と、第1の出力データおよび第2の出力データの一方を
所定期間遅延させて他方との参照を可能にするシフトラ
ッチ回路とを含むものである。前段にフィードバックす
るリバースデータをラッチするリバースラッチ回路と、
前記第1および第2のデータラッチ回路およびリバース
ラッチ回路にラッチされているデータの出力タイミング
を決めるコントロールデータをラッチするコントロール
ラッチ回路とをさらに含むようにしてもよい。
【0011】回路面積を縮小とするとともに、パイプラ
イン全体の処理速度を高める観点からは、前記デコーダ
により処理されるデータを、単位処理サイズのデータ、
例えば、前記複数の算術論理演算回路の動作タイミング
を定める一つのクロックで処理可能な最低ビット長ない
し同等のビット長のデータとする。
【0012】本発明は、また、複数系統のデータ入出力
ラインを切替接続する切替接続手段と、この切替接続手
段に対して並列に接続された複数のシリアル演算パイプ
ラインと、外部から入力された前記複数のシリアル演算
パイプライン宛のインストラクションを受け付けるイン
ストラクション受付機構とを備えた演算装置を提供す
る。この演算装置において、前記複数のシリアル演算パ
イプラインの各々は、他の算術論理演算回路と同時に動
作可能な複数の算術論理演算回路をカスケード接続して
構成されたシリアル演算パイプラインであり、前記複数
の算術論理演算回路の各々は、前段から受け取ったデー
タないしそれに基づく演算結果を後段に出力するための
順方向ラインと、後段から受け取ったデータないしそれ
に基づく演算結果を前段にフィードバックするための逆
方向ラインと、入力された前記インストラクションに応
じた処理を実行し実行結果を所望のラインに出力するデ
コーダと、他の算術論理演算回路との間で各ライン上の
データ出力の同期をとるためのラッチ回路とを有するも
のである。
【0013】この演算装置にコントローラを備え、n行
m列の前記インストラクションの集合であるインストラ
クションアレイをコントローラに保持しておき、コント
ローラで、インストラクションアレイを列毎にm回前記
複数の算術論理演算回路宛に出力するとともにパイプラ
インが後段に1段ずつn回移行させる際に、実行済みの
インストラクションを1段毎に1つ減ずるようにしても
よい。前記インストラクションアレイは、好ましくは、
1パスで演算を実行するための演算手順が定められるよ
うにする。
【0014】また、前記複数の算術論理演算回路の各々
のラッチ回路は、後段に出力する第1の出力データをラ
ッチする第1のデータラッチ回路と、後段に出力する第
2の出力データをラッチする第2のデータラッチ回路
と、前段に出力するデータをラッチするリバースラッチ
回路と、演算結果のキャリーを次の桁の演算のためにラ
ッチするキャリーラッチ回路と、第1の出力データおよ
び第2の出力データの一方を所定期間遅延させて他方と
の参照を可能にするシフトラッチ回路と、前記第1およ
び第2のデータラッチ回路およびリバースラッチ回路に
ラッチされているデータの演算を制御するためのコント
ロールデータをラッチするコントロールラッチ回路とを
含むものである。この演算装置においても、装置全体の
処理速度を高める観点からは、前記複数の算術論理演算
回路の各々のデコーダにおける順方向ライン上のデータ
および逆方向ライン上のデータを単位処理サイズのデー
タとする。
【0015】この演算装置は、前記切替接続手段、前記
複数のシリアル演算パイプライン、および前記インスト
ラクション受付機構を一つの半導体デバイスの中に組み
込んでおき、用途に応じて切替接続手段の制御信号とイ
ンストラクションアレイを入力することにより、用途の
汎用性を持たせることができる。
【0016】本発明は、シリアル演算パイプラインによ
る演算方法を提供する。この方法は、後段にデータを出
力するための1又は複数の第1ラインと、前段にデータ
をフィードバックするための第2ラインとを有し、シリ
アル演算を行うとともに演算結果を表すデータの出力対
象となるラインを各々独立に選択することができる算術
論理演算回路を複数段カスケード接続してシリアル演算
パイプラインを構築し、前記シリアル演算パイプライン
に接続された外部コントローラで、前記複数の算術論理
演算回路による1パスによる同時実行の手順を反映した
n行m列のインストラクションの集合であるインストラ
クションアレイを列毎にm回前記複数の算術論理演算回
路宛に個別に出力するとともに、パイプラインが後段に
1段ずつn回移行させる際に、実行済みのインストラク
ションを1段毎に1つ減ずる制御を行うことを特徴とす
る演算方法である。
【0017】
【発明の実施の形態】本発明の実施形態を説明するに当
たり、図1を参照して、本発明の基本原理について説明
する。シリアル演算器は、例えば1〜3ビット程度のシ
リアル演算を行うもので、16ビット程度の多ビット演
算を行うパラレル演算器と比較して、スループットが、
データ幅分の1(1ビットのシリアル演算の場合)とな
るが、演算器面積もその分小さい。スループットが小さ
い分をパイプラインの並列度を上げるようにすれば、両
者の製造コストは実質的に変わらない。例えば、図1
(a)のように、16ビットレジスタを二つパラレルに
し、その出力を一つの16ビットアダーで加算して、加
算結果を一つの16ビットレジスタに格納する構成の1
6ビット演算器と、(b)のように1ビットレジスタを
32個並列にし、それぞれ2つの1ビットレジスタの出
力を加算する1ビット加算器を16個設け、各々の加算
機の出力を格納する16個の1ビットレジスタからなる
16個の1ビット演算器とは実質的に同一コストとな
る。後者の場合は、パイプの各ステージが短くなるた
め、その分高速化が可能になる利点もある。
【0018】この実施形態では、以上の原理に基づき、
様々な多ビット演算命令の実行環境を、単位処理サイズ
のフィードバック付シリアル算術論理演算回路(Serial
-ALCell、以下「SALC」と称する)の組み合せによ
って実現する場合の例を挙げる。単位処理サイズとは、
SALCにおいて一つのクロックで処理可能な最低ビッ
ト長であり、最も単純な例では1ビット、上記のよう
に、通常は1〜3ビット程度である。
【0019】<SALC>SALCの構成例を図2に示
す。図2からわかるように、この実施形態によるSAL
C1は、2系統のデータ入力端D1i、D2iおよび2系統の
データ出力端D1o、D2oと、1系統のリバースデータ入力端
Riおよびリバースデータ出力端Roとを有し、前段(図の
左側)から後段(図の右側)へ2系統のデータを出力す
るための順方向ラインと、後段から前段へデータをフィ
ードバックするための逆方向ラインとが形成されてい
る。以後の説明では、データ出力端D1oから出力される
ライン上のデータを「出力データ」、データ出力端D2o
から出力されるライン上のデータを「参照データ」、リ
バースデータ出力端Roから出力(フィードバック)され
るライン上のデータを「リバースデータ」とする。SA
LC1において、後述するシリアル演算パイプラインを
構成する他のSALCとの同期をとるため、出力データ
はデータラッチ回路11でラッチされ、参照データはリ
ファレンスラッチ回路12でラッチされ、リバースデー
タはリバースラッチ回路12でラッチされる。
【0020】SALC1は、また、インストラクション
入力端CONから入力されるインストラクションの内容を
デコードし、デコード結果に応じた処理を実行するとと
もに、実行結果を出力するラインの選定等を行うための
デコーダ10を有する。処理の例としては、例えば、四
則演算、論理演算のような演算処理のほか、パス制御、
ラッチ制御、条件付命令等の制御処理が挙げられる。デ
コーダ10は、また、前段から受け取ったデータが後段
の方向に向かう順方向ラインと、後段から受け取ったデ
ータが前段の方向に向かう逆方向ラインとの選択も行
う。他の複数のSALC1のデコーダとの協働によっ
て、マクロ命令の実行を行うことができる。
【0021】デコーダ10には、上記の演算等を容易に
するための種々のラッチ回路、すなわち、シフトラッチ
回路14と、コントロールラッチ回路15と、キャリー
ラッチ回路16とが接続されている。シフトラッチ回路
14は、出力データのラインよりも参照データのライン
が所定時間だけ遅れるようにするために、参照データを
ラッチし、例えば演算の際に次の桁でこれを出力するよ
うに動作する。キャリーラッチ回路15は、演算結果の
キャリーを次の桁の演算時までラッチする。コントロー
ルラッチ回路15は、出力データ、参照データ、リバー
スデータの出力タイミングをコントロールするコントロ
ールデータをデコーダ10から出力の指示が出されるま
でラッチする。
【0022】以上のように構成されるSALC1では、
デコーダ10によって順方向と逆方向の入れ替えができ
るため、複数のSALC1をカスケード接続してシリア
ル演算パイプラインを構築した場合に、順方向ラインと
逆方向ラインとを適宜セレクトしてフレキシブルなデー
タレンジで論理演算を行うことができる。また、乗算器
や除算器、積和演算器、フロート演算器(指数・仮数を
分けて演算し、それらの結果を互いに反映させる)など
を容易に構築できるようになる。
【0023】<SALP>次に、上記のSALC1を用
いたシリアル演算パイプラインの実施形態を説明する。
図3は、複数のSALC1をカスケード接続してなるシ
リアル演算パイプライン(Serial - ALPipeline、以
下、「SALP」と称する)の構成例を示した図であ
る。SALP2は、様々な多ビット演算命令を単純なシ
リアル命令の組み合わせで実現するものである。なお、
1パスで論理演算を完了させる場合、SALC1の連結
数は、加算器では1以上あれば済むが、乗算器では、桁
数分のSALC1が必要となる。さらに、多項式演算な
どを行わせる場合は、同時演算分やデータラッチ分(こ
れらは共通化できる場合がある)が必要である。
【0024】多項式を実現する場合は、SALP2を図
4のように、SALC1の出力を数段前のSALC1の
データ入力端にフィードバックすればよい。これによ
り、前に演算した結果と新たに投入するデータ間で、論
理演算ができるようになり、各々の中間値(入出力間の
中間のデータ)同士を演算させるなどの複雑な多項式を
1パスで演算することができるようになる。
【0025】SALP2では、複数のSALC1の協働
によって種々のマクロ命令を実行することができる。こ
の場合の動作例を具体的に説明する。ここでは、単純な
例として、4ビット乗算(Multiplier)の例を挙げる。
【0026】図5〜図7は、4つのSALC1をカスケ
ード接続した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に
ラッチされるキャリービットを表している。
【0027】最初のサイクル(0サイクル)で最初のデ
ータ(0,A0)が初段のSALC1に入力され、デコーダ
10でインストラクション解読および論理演算がなされ
た後(スルーを含む)、演算結果データ(スルーを含
む)が後段のSALC1に出力される。この動作をすべ
てのSALC1に共通のクロックタイミングで同時に入
力されるインストラクションに従って繰り返し、最終的
に4ビット乗算の結果が最終段のSALC1からSM1
〜SM7として出力される。
【0028】マクロ命令の中には、フロート加算(Floa
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で
実行可能な処理の種類に応じて任意に選定することがで
きる。
【0029】本実施形態のSALP2は、SALC1を
基本構成とし、その連結状態を適宜変えながらフレキシ
ブルなデータレンジで論理演算を行うことができるの
で、データレンジに比例した処理性能を実現することが
できる(例えば、8ビット演算は16ビット演算の倍の
性能)。また、入出力間の中間データなどのビットを膨
らませ,精度を保つことができるようになる。また、処
理途上の上位・下位ビットを削除することで,データの
質に合わせ効率的な有効桁数を持てるようになる。さら
に、指数,仮数を別処理することで、フロート(floa
t)演算が可能となる。上述したように、SALP2で
は、パラレル演算パイプラインに比べてスループットが
データ幅分の1となるが、演算器面積もその分少ない。
スループットが減少した分をパイプラインの並列度に割
り振れば、原理的に(制御を考えなければ)コストは変
わらない。その上、パイプ各ステージは短くなるため、
その分を高速化できる。
【0030】本実施形態のSALP2では、割り算、飽
和演算、積和演算、多項式など、ほとんどの論理演算を
実行することができる。単演算子としてのコストパフォ
ーマンスをカスケード接続の演算器と比較すると、1要
素の演算に対する比較では、スループットがデータ幅分
の1であるためコスト上昇を伴うように見えるが、多量
なデータに対する演算では、演算素子を並列に割り振る
ことによって同一コストとなる。また、クロック間のロ
ジックは、単位処理サイズ(例えば1〜3ビット)毎で
切ることができ、また、いわゆるファンアウトが非常に
小さいので、周波数を大幅に上げることができる。ま
た、都合のいいことに、パイプラインの先頭に、非常に
小さい構成のクロスバを接続することができる。これに
より、演算要素の並列ラインの判定、パイプライン末尾
ラインのビット判定を非常に小さい構成で実現すること
ができる。アドレス計算、ブランチの条件を算出する等
のスカラ処理、処理領域が小領域でパラメータがその領
域ごとに変化するような処理に対しては、領域をバイン
ドすることによって実現することができる。そのため、
このようなSALP2を複数用いることにより、効率的
な論理演算を行う演算装置を構成することができる。
【0031】<演算装置>図8は、32個のSALC
(図1に示したSALC1)をカスケード接続したSA
LP2を256個含んでなる演算装置の構成図である。
各SALP2は、例えば外部コントローラ、あるいはネ
ットワーク等と接続されるシリアルクロスバ(SCB)
3に対して、並列に接続されている。SCB3は、アド
レスデコーダと複数のクロスバスイッチとを有し、小面
積で256ラインの交換を行うもので、外部コントロー
ラ等からのバスのアドレス投入(コントロールフェー
ズ)とデータ投入(データフェーズ)の2フェーズで、
所望のラインにデータを分配することができる。
【0032】256個の各々のSALP2には、インス
トラクションコントローラ(iCON)4からn行m列
のインストラクションの集合であるインストラクション
アレイが入力され、このインストラクションアレイによ
って、論理演算およびデータの入出力ラインがそれぞれ
独立に制御されるようになっている。インストラクショ
ンアレイは、すべてのSALP2に共通内容のものを同
時に入力してもよく、個々のSALP2のアドレスを指
定したうえで共通内容のインストラクションアレイを同
時に入力してもよく、個々のSALP2に個別的に個別
内容のインストラクションアレイを入力してもよい。i
CON4は、インストラクションアレイを列毎にm回、
各SALP2の個々のSALC宛に出力するとともにパ
イプラインが後段にn回移行する際に、実行済みのイン
ストラクションを減ずる。
【0033】このことを、1つのSALP2の場合の例
を挙げた図9により説明する。図9下段のインストラク
ションアレイは、iCON4のメモリに保持されてお
り、1クロック毎に、図右列から順次読み出されてSA
LP2のSALCに入力される。先頭のインストラクシ
ョンが実行されると、そのインストラクションが1つ削
除されて後段のSALCに入力され、前段のSALCに
は、次の列のインストラクションのすべてが入力され
る。これをインストラクションがなくなるまで繰り返
す。インストラクションアレイには、フェッチやデータ
ループを埋め込むことができる。この場合には、従来技
術において説明した複雑なDFGを1パスで記述するこ
とができるようになり、演算パイプライン動作の制御形
態を簡略化させることができる。
【0034】次に、この演算装置の動作例を説明する。
ここでは、一例として、ある一つのSALP2を用いて
図10(a)に示す「1010」(Aデータ)×「11
00」(Bデータ)+「00101101」(Cデー
タ)の乗算および加算を行う場合の例を挙げる。出力さ
れる演算結果データは「01000101」となるので
あるが、その演算過程が特徴的なので、最初のサイクル
から演算結果データが出力されるまでの過程を図示して
説明する。用意されるデータは、図10(b)のよう
に、2段に並べられ、その右側から順次演算装置(SA
LP2)に入力される。なお、データサイズを合わせる
ために、データ取得時にMSBを4回取得し、これをA
データの先頭に付加する。この付加したデータは、演算
結果には影響を及ぼさないものである。図10(b)右
側のデータ説明において「intermediatedata」は、演算
過程で使用するいわゆる中間データであり、これも演算
結果に影響を及ぼさないものである。
【0035】インストラクションアレイは、図10
(c)のようなものが用意される。この例において乗算
と加算に使用するインストラクションは、「SET」
(データセット)、「ADS」(加算およびシフト)、
「THR」の3種類である。「SET」は、シフトラッ
チ回路14に参照データ(下段のデータ入力端に入力さ
れたデータ)、コントロールラッチ回路15に出力デー
タ(上段のデータ入力端に入力されたデータ)、キャリ
ーラッチ回路16に「0」をセットすることを、その内
容とする。「ADS」はコントロールラッチ回路15に
ラッチされているデータが「0」の場合にはシフトの
み、それ以外は加算およびシフトを行うことを、その内
容とする。シフトとは、参照データとしてシフトラッチ
回路14にラッチされているデータを使用することをい
う。加算のときには、キャリービットのチェンジが行わ
れる(change carry)。「THR]は入力されたデータ
(出力データおよび参照データ)をそのまま後段に送る
ことを、その内容とする。
【0036】最初のサイクルでは、図11に示すよう
に、その先頭に「SET」が割り当てられた8個インス
トラクションの列が初段のSALCのインストラクショ
ン入力端CONに入力され、また、図10(b)の最右列
の2つのデータがデータ入力端D1i、D2iの各々に入力さ
れる。インストラクションが「SET」なので、これら
の2つのデータ「0」、「0」が、SALCのシフトラ
ッチ回路14およびコントロールラッチ回路15にセッ
トされる。キャリーラッチ回路16には、キャリービッ
トが発生しないので、「0」がセットされる。
【0037】2番目のサイクルでは、図12に示すよう
に、次の列の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にそのまま送られる。
【0038】3番目のサイクルでは、図13に示すよう
に、さらに次の列の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による
演算実行およびデータ移動が行われる。
【0039】5番目のサイクルでは、図15に示すよう
に、「ADS」のインストラクションが初段のSALC
が入力される点以外は、上記と同様の手順でSALC間
による演算実行およびデータ移動が行われる。初段のS
ALCでは、コントロールラッチ回路15にラッチされ
ているデータが「0」なので、シフトのみとなる。6番
目のサイクル(図16)〜11番目のサイクル(図2
2)についても、上記と同様の手順で、SALCによる
演算実行およびデータ移動が行われる。
【0040】12番目のサイクル(図23)からは、初
段のSALCに入力されるデータがなくなり、前段のS
ALC(図23の場合は初段のSALC)のデータラッ
チ回路11およびリファレンスラッチ回路12にラッチ
されているデータが後段のSALC(図23の場合は2
段目のSALC)に入力されるようになる。インストラ
クションについては、上記と同様、実行された分が削除
されて、後段のSALCに入力される。最終段のSAL
Cのデータラッチ回路11にラッチされているデータが
最終演算結果を表すデータのLSBとなる。
【0041】13番目のサイクル(図24)から20番
目のサイクル(図31)まで、上記の動作を繰り返し、
それぞれ最終段のSALC1のデータラッチ回路11に
ラッチされているデータを取り出すことにより、図31
の上段に示される最終演算結果が得られる。
【0042】このように、本実施形態の演算装置では、
フィードバック機能付きのSALCが複数段カスケード
接続されたSALP2をSCB3に対して複数ライン並
列に接続し、個々のSALCによる演算動作をiCON
4からのインストラクションアレイによって個別的に制
御できるようにしたので、多種多様な論理演算(四則演
算およびその組合せ、飽和演算、積和演算、多項式等)
を共通のハードウエアによって容易且つフレキシブルに
実現することができる。そのため、論理演算の用途が変
わったときでもコストの増加を伴わずにそれに対応する
ことができる。
【0043】また、個々のSALC1がフィードバック
機能を有しているので(ひいては、SALP2がそのよ
うな機能を有しているので)、様々なデータサイズに対
して突発的かつ爆発的な演算量を伴う複雑な処理フロー
を実現する汎用的なシリアル演算パイプラインを容易に
構築することができる。
【0044】また、インストラクションアレイの中に、
データの並び、その実行手順等を任意に組み込むことが
できるので、データパスを単純(一直線)にすることが
できる利点がある。
【0045】上記の演算装置は、入出力データに対して
インストラクションの量が相対的に多い論理演算に対し
ては、特に有効なツールとなり得る。この演算装置は、
例えばテクスチャマッピングのような複雑な演算を何ら
のハードウエアを代えずに実施することができる。この
場合、テクスチャが1フラグメントに収まらない場合
は、周囲フラグメントが複数回投入される。
【0046】演算装置は、また、複数の関数を定義した
ルックアップテーブルと、アドレスサイクル分のスルー
プットでルックアップテーブルの内容を書き換える機能
とを有し、様々な関数を多重に演算することもできる。
【0047】
【発明の効果】以上の説明から明らかなように、本発明
によれば、様々なデータサイズに対して突発的かつ爆発
的な演算量を伴う複雑な処理フローを実現する汎用的な
シリアル演算パイプラインを構築することができる。
【図面の簡単な説明】
【図1】 本発明の原理を示す図で、(a)は1つの1
6ビット演算器、(b)は16個の1ビット演算器の例
を示す。
【図2】本発明の一実施形態による算術論理演算回路
(SALC)の構成図。
【図3】本発明の一実施形態によるシリアル演算パイプ
ライン(SALP)の構成図。
【図4】多項式を実行するときのSALPの構成例を示
した図。
【図5】(a)〜(f)はシリアル演算パイプラインの
動作の一例を示す説明図。
【図6】(g)〜(l)はシリアル演算パイプラインの
動作の一例を示す説明図。
【図7】(m)〜(p)はシリアル演算パイプラインの
動作の一例を示す説明図。
【図8】本発明の演算装置の一実施形態を表す構成図。
【図9】本発明の演算装置に含まれるシリアル演算パイ
プライン(SALP)の動作概要図。
【図10】(a)は本発明の演算装置の動作例を説明す
るための論理演算式、(b)は入力するデータ列の構造
説明図、(c)は入力するインストラクションアレイの
構造説明図。
【図11】本発明の演算装置の動作状態説明図(最初の
サイクル)。
【図12】本発明の演算装置の動作状態説明図(2番目
のサイクル)。
【図13】本発明の演算装置の動作状態説明図(3番目
のサイクル)。
【図14】本発明の演算装置の動作状態説明図(4番目
のサイクル)。
【図15】本発明の演算装置の動作状態説明図(5番目
のサイクル)。
【図16】本発明の演算装置の動作状態説明図(6番目
のサイクル)。
【図17】本発明の演算装置の動作状態説明図(7番目
のサイクル)。
【図18】本発明の演算装置の動作状態説明図(8番目
のサイクル)。
【図19】本発明の演算装置の動作状態説明図(9番目
のサイクル)。
【図20】本発明の演算装置の動作状態説明図(10番目
のサイクル)。
【図21】本発明の演算装置の動作状態説明図(11番目
のサイクル)。
【図22】本発明の演算装置の動作状態説明図(12番目
のサイクル)。
【図23】本発明の演算装置の動作状態説明図(13番目
のサイクル)。
【図24】本発明の演算装置の動作状態説明図(14番目
のサイクル)。
【図25】本発明の演算装置の動作状態説明図(15番目
のサイクル)。
【図26】本発明の演算装置の動作状態説明図(16番目
のサイクル)。
【図27】本発明の演算装置の動作状態説明図(17番目
のサイクル)。
【図28】本発明の演算装置の動作状態説明図(18番目
のサイクル)。
【図29】本発明の演算装置の動作状態説明図(19番目
のサイクル)。
【図30】本発明の演算装置の動作状態説明図(20番目
のサイクル)。
【図31】本発明の演算装置の動作状態説明図(21番目
のサイクル)。
【符号の説明】
1 算術論理演算回路(SALC) 10 デコーダ 11 データラッチ回路 12 リファレンスラッチ回路 13 リバースラッチ回路 14 シフトラッチ回路 15 コントロールラッチ回路 16 キャリーラッチ回路 2 シリアル演算パイプライン(SALP) 3 シリアル・クロスバ(SCB) 4 インストラクションコントローラ(iCON)
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B013 AA18 DD04 5B022 AA01 BA00 CA07 CA08 EA09 FA01 5B033 AA13 DD06 DD09

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 各々独立に制御され他の算術論理演算回
    路と同時に動作可能な複数の算術論理演算回路をカスケ
    ード接続して成るシリアル演算パイプラインであって、 前記複数の算術論理演算回路の全部又は一部が、後段へ
    データを出力するための第1ラインと、前段へデータを
    フィードバックするための第2ラインと、各ライン上の
    データをラッチするラッチ回路とを有することを特徴と
    する、 シリアル演算パイプライン。
  2. 【請求項2】 前記複数の算術論理演算回路の各々が、
    外部から入力されたインストラクションの内容に応じた
    演算を含む処理を実行し、その実行結果を表すデータを
    所望のライン宛に出力するデコーダを有することを特徴
    とする、 請求項1記載のシリアル演算パイプライン。
  3. 【請求項3】 前記第1ラインが、第1の出力データお
    よび第2の出力データを後段に出力するための一対のラ
    インであり、 前記ラッチ回路が、前記第1の出力データをラッチする
    第1のデータラッチ回路と、前記第2の出力データをラ
    ッチする第2のデータラッチ回路と、前記デコーダによ
    る演算の結果生じるキャリーを次の桁の演算のためにラ
    ッチするキャリーラッチ回路と、前記第1の出力データ
    および前記第2の出力データの一方を所定期間遅延させ
    て他方との参照を可能にするシフトラッチ回路と、を含
    むことを特徴とする、 請求項2記載のシリアル演算パイプライン。
  4. 【請求項4】 前記ラッチ回路が、さらに、前段にフィ
    ードバックするリバースデータをラッチするリバースラ
    ッチ回路と、前記第1および第2のデータラッチ回路お
    よび前記リバースラッチ回路にラッチされているデータ
    の演算を制御するコントロールデータをラッチするコン
    トロールラッチ回路とを含むことを特徴とする、 請求項3記載のシリアル演算パイプライン。
  5. 【請求項5】 前記デコーダにより処理されるデータ
    が、単位処理サイズのデータであることを特徴とする、 請求項2記載のシリアル演算パイプライン。
  6. 【請求項6】 前記単位処理サイズが、前記複数の算術
    論理演算回路の動作タイミングを定める一つのクロック
    で処理可能な最低ビット長ないし同等のビット長である
    ことを特徴とする、 請求項5記載のシリアル演算パイプライン。
  7. 【請求項7】 前記第1ラインが前段から受け取ったデ
    ータないしそれに基づく演算結果を後段に出力するため
    の順方向ラインであり、前記第2ラインが後段から受け
    取ったデータないしそれに基づく演算結果を前段に出力
    するための逆方向ラインであることを特徴とする、 請求項1ないし6のいずれかの項記載のシリアル演算パ
    イプライン。
  8. 【請求項8】 複数系統のデータ入出力ラインを切替接
    続する切替接続手段と、この切替接続手段に対して並列
    に接続された複数のシリアル演算パイプラインと、外部
    から入力された前記複数のシリアル演算パイプライン宛
    のインストラクションを受け付けるインストラクション
    受付機構とを備え、 前記複数のシリアル演算パイプラインの各々は、他の算
    術論理演算回路と同時に動作可能な複数の算術論理演算
    回路をカスケード接続して構成されたシリアル演算パイ
    プラインであり、 前記複数の算術論理演算回路の各々は、前段から受け取
    ったデータないしそれに基づく演算結果を後段に出力す
    るための順方向ラインと、後段から受け取ったデータな
    いしそれに基づく演算結果を前段にフィードバックする
    ための逆方向ラインと、入力された前記インストラクシ
    ョンに応じた処理を実行し実行結果を所望のラインに出
    力するデコーダと、他の算術論理演算回路との間で各ラ
    イン上のデータ出力の同期をとるためのラッチ回路とを
    有するものである、 演算装置。
  9. 【請求項9】 n行m列の前記インストラクションの集
    合であるインストラクションアレイを保持し、このイン
    ストラクションアレイを列毎にm回前記複数の算術論理
    演算回路宛に出力するとともにパイプラインが後段に1
    段ずつn回移行させる際に、実行済みのインストラクシ
    ョンを1段毎に1つ減ずるコントローラをさらに備えて
    なる、 請求項8記載の演算装置。
  10. 【請求項10】 前記インストラクションアレイには、
    1パスで演算を実行するための演算手順が定められてい
    る、 請求項9記載の演算装置。
  11. 【請求項11】 前記順方向ラインが、第1の出力デー
    タおよび第2の出力データを後段に出力するための一対
    のライン、前記逆方向ラインがリバースデータを出力す
    るラインであり、 前記複数の算術論理演算回路の各々のラッチ回路が、後
    段に出力する第1の出力データをラッチする第1のデー
    タラッチ回路と、 後段に出力する第2の出力データをラッチする第2のデ
    ータラッチ回路と、 前段に出力するデータをラッチするリバースラッチ回路
    と、 演算結果のキャリーを次の桁の演算のためにラッチする
    キャリーラッチ回路と、 前記第1の出力データおよび前記第2の出力データの一
    方を所定期間遅延させて他方との参照を可能にするシフ
    トラッチ回路と、 前記第1および前記第2のデータラッチ回路および前記
    リバースラッチ回路にラッチされているデータの演算を
    制御するためのコントロールデータをラッチするコント
    ロールラッチ回路と、を含むことを特徴とする、 請求項8記載の演算装置。
  12. 【請求項12】 前記複数の算術論理演算回路の各々の
    デコーダにおける順方向ライン上のデータおよび逆方向
    ライン上のデータが、単位処理サイズのデータであるこ
    とを特徴とする、 請求項8記載の演算装置。
  13. 【請求項13】 前記切替接続手段、前記複数のシリア
    ル演算パイプライン、および前記インストラクション受
    付機構が一つの半導体デバイスの中に組み込まれている
    ことを特徴とする、 請求項12記載の演算装置。
  14. 【請求項14】 シリアル演算パイプラインの構成要素
    となるカスケード接続可能な算術論理演算回路であっ
    て、 前記シリアル演算パイプラインの前段から受け取ったデ
    ータないしそれに基づく演算結果を後段に出力するため
    の1又は複数の順方向ラインと、 後段から受け取ったデータないしそれに基づく演算結果
    を前段にフィードバックするための逆方向ラインと、 外部から入力されたインストラクションに応じた処理を
    実行し実行結果を表すデータを所望のラインに出力する
    デコーダと、 他の算術論理演算回路との間で各ライン上のデータ出力
    のタイミングを同期させるためのラッチ回路とを備えて
    なる、 算術論理演算回路。
  15. 【請求項15】 前記順方向ラインが、第1の出力デー
    タおよび第2の出力データを出力する一対のライン、前
    記逆方向ラインがリバースデータを一つの出力するライ
    ンであり、 前記ラッチ回路が、 前記第1の出力データをラッチする第1のデータラッチ
    回路と、 前記第2の出力データをラッチする第2のデータラッチ
    回路と、 前記リバースデータをラッチするリバースラッチ回路
    と、 前記デコーダによる演算結果のキャリーを次の桁の演算
    のためにラッチするキャリーラッチ回路と、 第1の出力データおよび第2の出力データの一方を所定
    期間遅延させて他方との参照を可能にするシフトラッチ
    回路と、 前記第1および第2のデータラッチ回路およびリバース
    ラッチ回路にラッチされているデータの演算を制御する
    ためのコントロールデータをラッチするコントロールラ
    ッチ回路とを含んで成る、 請求項14記載の算術論理演算回路。
  16. 【請求項16】 後段にデータを出力するための1又は
    複数の第1ラインと、前段にデータをフィードバックす
    るための第2ラインとを有し、シリアル演算を行うとと
    もに演算結果を表すデータの出力対象となるラインを各
    々独立に選択することができる算術論理演算回路を複数
    段カスケード接続してシリアル演算パイプラインを構築
    し、 前記シリアル演算パイプラインに接続された外部コント
    ローラで、 前記複数の算術論理演算回路による1パスによる同時実
    行の手順を反映したm行n列のインストラクションの集
    合であるインストラクションアレイを列毎にm回前記複
    数の算術論理演算回路宛に個別に出力するとともに、 パイプラインが後段に1段ずつn回移行させる際に、実
    行済みのインストラクションを1段毎に1つ減ずる制御
    を行うことを特徴とする、 シリアル演算パイプラインによる演算方法。
  17. 【請求項17】 前記複数の算術論理演算回路の各々の
    デコーダにおける各ライン上のデータが、単位処理サイ
    ズのデータであることを特徴とする、 請求項16記載の演算方法。
JP2002099202A 2002-04-01 2002-04-01 シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 Expired - Fee Related JP3719509B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 データ処理装置の制御方法、データ処理装置、電子線描画装置

Cited By (4)

* Cited by examiner, † Cited by third party
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