JP2003520360A - サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 - Google Patents
サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置Info
- Publication number
- JP2003520360A JP2003520360A JP2000596471A JP2000596471A JP2003520360A JP 2003520360 A JP2003520360 A JP 2003520360A JP 2000596471 A JP2000596471 A JP 2000596471A JP 2000596471 A JP2000596471 A JP 2000596471A JP 2003520360 A JP2003520360 A JP 2003520360A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- acf
- conditional
- arithmetic
- 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 44
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000005311 autocorrelation function Methods 0.000 claims abstract 4
- 230000015654 memory Effects 0.000 claims description 19
- 238000012360 testing method Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 17
- 150000001875 compounds Chemical class 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 7
- 239000002131 composite material Substances 0.000 claims description 4
- 238000012546 transfer Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 abstract description 5
- 238000013459 approach Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- NLZUEZXRPGMBCV-UHFFFAOYSA-N Butylhydroxytoluene Chemical compound CC1=CC(C(C)(C)C)=C(O)C(C(C)(C)C)=C1 NLZUEZXRPGMBCV-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000004126 brilliant black BN Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30181—Instruction operation extension or modification
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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]
-
- 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/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
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)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Peptides Or Proteins (AREA)
Abstract
Description
VLIW-Based Array Processor with Subword Execution」という名称の米国仮出
願第60/072915号の特典を主張する。
b-word)実行を用いる超長命令語(VLIW)ベースのアレイプロセッサ中で条
件付き実行をサポートする方法及び装置に関する。
ラマが非分岐タイプの命令を実行すべきかどうかを、前に生成されたマシン状態
に基づいて指定できるようにする。このデータ依存条件付き実行機能は、条件付
き分岐の必要を最小にする。パイプラインプロセッサ上の分岐遅延の犠牲を招く
分岐の使用を回避することによって、性能は向上する。加えて、多くのタイプの
順次制御依存関係は、並列データ依存関係に変えることができることに留意され
たい。したがって、条件付き分岐のみをサポートする単一命令多重データストリ
ーム(SIMD)マシン上で利用不可能な、あるレベルのデータ依存並列性を提
供するために、パイプラインSIMDアレイプロセッサが各処理要素(PE)中
で条件付き実行をサポートすることが望ましい。並列条件付き実行では、多数の
条件付き分岐を回避することができるので、性能利得は重要となる可能性がある
。
アーキテクチャを作成する際、オペレーションを指定するのに必要なフォーマッ
トは、オペレーションのタイプに依存して要件が変わることがわかる。例えば、
並列アレイオペレーションは、制御及び分岐オペレーションと、ロード及び格納
オペレーションと、算術オペレーションの3つのタイプにグループ化することが
できる。これらの各タイプは、最適な実施に対して異なるエンコーディング要件
を有することになる。命令フォーマットは一般に固定のビット数であるので、少
なくとも一部のオペレーションに対して機能的能力を制限することなく、プロセ
ッサ中の全ての命令にわたる条件付き実行について単一の仕様をサポートする機
構を定義することは難しい。命令タイプに依存してサポートの度合いを変えなけ
ればならない場合でも、条件付き実行をサポートすることが望ましいと考えると
、命令タイプに基づく、統一された、しかし可変仕様の条件付き実行機構をどの
ように定義するかについての問題に遭遇する。
ーションが、[a>b OR c<d]などの関係のブール組合せによって形成
される複合条件に基づくことが望ましい。これは、所望の結果を効果的に達成す
る多重単一テスト条件付き分岐を順次使用することによって達成される。多重単
一テスト条件付き分岐を使用することに関連する問題は、分岐遅延の犠牲のため
に、必要な各分岐に対して性能低下効果があることである。この性能低下効果は
、非分岐複合条件付実行を使用して軽減させることができる。
態情報を集めることを可能とするために、PE中の独立な条件付きオペレーショ
ンを生成し、条件情報をPE間で転送することが望ましい。条件がアレイPE中
で作成されるSIMDアレイプロセッサのコントローラ、シーケンス・プロセッ
サ(SP)中で条件付き分岐を提供することも望ましい。条件状態情報をPE間
で移動することを可能にすることによって、条件生成オペレーションを1つのP
E中で実行し、条件付き結果に基づく条件付きオペレーションを別をPE中で実
行することができる。条件付き情報がPE及びSP間で移動することを可能にす
ることによって、条件付きオペレーションをPE条件に基づいてSP中で実行す
ることができる。そのような機能をアーキテクチャ中にどのように最良に加える
かが、更なる問題を提起する。
し、各実行ユニットは、可能な限り多重命令VLIWの各サブ命令についての条
件情報または状態情報を生成する。データ依存条件付き実行の決定を行うために
、マシン状態の合計量を所望のテスト条件に減少させることが必要である。1つ
または複数の他の実行ユニットの実行を制御するために、多数の実行ユニットの
うちの1つから条件結果を選択する機構を有することも望ましい。このタイプの
状況の例は、比較がシフトとは異なる実行ユニットで実行される、比較命令と、
その後に続く条件的依存シフト命令である。したがって、解決すべき問題は、条
件情報の量を指定のテスト条件に低減する方法であり、VLIWマシン中で同期
して動作する多数の実行ユニット間の相互依存の条件実行に対する機構を提供す
る方法である。
小さいデータに関して同時に実行される多数の個々のオペレーションを参照する
。多数のサブワードオペレーションの総計は、パック化データ・オペレーション
と呼ばれ、例えば、カッド(4個)16ビットオペレーションまたはオクタル(
8個)8ビットオペレーションが、パック化64ビットデータタイプ上で並列に
生じる。サブワード実行を条件付き実行をサポートするマシンで実行したとき、
サブワードレベルの条件付き実行細分性を、命令を実行する際に達成することが
望ましい。問題は、そのような機能をアーキテクチャ中でサポートする方法であ
る。
プに基づく階層条件付き実行指定、コントローラ・シーケンスプロセッサ(SP
)及びPEでの現在及び前の条件状態に基づく複合条件に対するサポート、PE
及びSPの間の条件状態情報を配布する機構、VLIWマシン中の多数の実行ユ
ニット間の相互依存条件付き実行に対する機構、及びサブワード条件付き実行に
対する機構を提供することによってそのような問題に有利に対処する。
ルの階層仕様が使用され、それによれば、1,2または3ビット条件付き実行指
定が、命令タイプ及びフォーマット・エンコーディング制限に依存して命令フォ
ーマット中で使用される。操作を加えるべき条件状態は、これら3ビットで指定
されると同様に、命令がパック化データであっても、VLIWオペレーションで
あっても、その命令を実行することによって並列に生成される通常の副次作用状
態から別々に生成される状態情報の縮小セットである。概念的には、命令実行か
ら生成される通常の副次作用状態は、算術スカラフラグ(ASF)、即ち、桁上
げ(C)、オーバーフロー(V)、符号(N)、及びゼロ(Z)フラグ中に保存
される。一部の制限がデータタイプに依存して適用される。別々に生成された条
件付き状態は、算術条件フラグ(ACF)、即ち、F7〜F0中に保存される。
ここでFiはパック化データ要素iに対応している。ASFは、条件付き分岐に
対してのみ使用することができ、一方、ACFは、条件付き分岐及び条件付き実
行の両方で使用される。加えて、ACFは、命令実行の結果として、または現在
の比較命令及び前の命令実行から生成される状態情報のブール組合せの結果とし
て設定される状態情報を含む。これらのACFをSP中で条件付き命令によって
指定し、テストすることができ、それによって条件付き分岐の使用を最小にする
。最も単純なケースでは、PE命令は条件付きで実行することができ、SP命令
は、直前の先行する命令の条件結果に関して、条件付きで実行または分岐するこ
とができる。直前の先行する命令がフラグに影響を与えなかった場合、一般条件
付き実行は、条件状態情報のACFまたはブール組合せに影響を与えたその最後
の命令の条件結果に基づく。
とき、条件に操作を加える命令と共にACFを使用する方法を指定するだけでは
なく、ACFが条件を生成する命令によって設定される方法、またはACFを使
用する方法のいずれかを指定するプログラマの規約を使用する。この規約は、F
nと呼ばれる1又は0を含む単一の真または偽フラグをオペレーションごとに生
成する。比較命令に対しては、プログラマは、ACFのセッティングで使用する
ために、より大、等しい、より小などの、どの条件状態かを指定しなければなら
ない。加えて、算術論理ユニット(ALU)中の比較命令は、フラグのセッティ
ングを、現在の比較結果状態及び過去の命令ACF状態のブール組合せに基づい
て指定することができる。算術オペレーションに対しては、本発明によるMan
Arrayアーキテクチャの1つの実施形態では、C(桁上げフラグ)、V(オ
ーバーフロー・フラグ)、N(負号フラグ)、又はZ(ゼロ・フラグ)の4つの
ASF条件のうちの1つを使用してACF条件フラグを更新する方法を命令ごと
に選択できることが、有利に提供される。
どれが、ACFの単一セットに影響を与えることが可能かを選択しなければなら
ない。フラグの単一セットは、VLIW実行中で、各VLIWユニットの実行を
条件付きで制御するために使用することができる。各サイクルの間、条件フラグ
の所有権及びセッティングは、実行中の命令によって動的に決定される。実行さ
れるがACFに影響を与えるように選択されない、またはプログラマの可視AS
Fに影響を与える条件は、効果を引き起こさず、一般に保存されない。
命令が条件フラグ自体に影響を与えないものである。この特徴により、比較の後
の第1命令がフラグを変更し、望ましくない結果を生成するという心配なしに、
プログラマは、(a>b)?z=x+y:r=q+sの形のCスタイルの条件付
き式演算子を実行できるようになる。命令は、ACFに基づく条件付き実行、ま
たはACFを設定する方法のいずれかを指定することができるが、両方を指定す
ることはできない。
を生成する手段について効果的な機構を有することが望ましい。これは、SP条
件付き分岐を、PEデータ依存実行オペレーションに変更する効果を有する。並
列アレイ条件付き実行についての効果的な手段を有することは、PE条件に基づ
く条件付き分岐をサポートする目的で、時間や実施費用のかかる、PEに条件信
号をコントローラに送り返すようにさせる必要を最小にする。並列アレイ条件付
き実行を有することの含意は、PE条件フィードバックをアレイコントローラに
提供するために選んだ手法を単純な性質にでき、各PEからの条件信号パスを提
供するよりも費用がかからないようにできることである。PEのレジスタファイ
ルにコピーまたは移動することができるプログラマアクセス可能レジスタ空間中
に条件フラグを保存することにより、フラグを容易にPE間で通信することがで
きる。「Methods and Apparatus for Dynamically Merging an Array Controlle
r with an Array Processor Element」という名称の1998年10月9日出願
の米国特許出願第09/169072号により完全に記載されているようなマー
ジされたSP/PEに関連して、PE0中に保存されるフラグは、容易にSPに
転送される。Nをアレイ中のPEの数として、logN縮小方法を使用して、l
ogNステップ中の全てのPEの間で、PEフラグ情報を交換することが可能で
ある。条件情報の転送は、既存のManArrayネットワークの設計と適合し
、PEとSPコントローラの間の条件信号パスの追加を必要としない。
、条件付き実行の3ビット形態は、特定の命令または特定のグループの命令に対
して、命令が真または偽テストと指定される命令に対する適切な値の対応するA
CFを有するパック化データタイプのデータ要素に関してだけ操作すべきである
ことを指定する。
らかとなろう。
クチャのさらなる詳細は、1997年6月30日出願の米国特許出願第08/8
85310号、1997年10月10日出願の米国特許出願第08/94912
2号、1998年10月9日出願の米国特許出願第09/169255号、19
98年10月9日出願の米国特許出願第09/169256号、1998年10
月9日出願の米国特許出願第09/169072号、1998年11月6日出願
の米国特許出願第09/187539号、1998年12月4日出願の米国特許
出願第09/205558号、1998年12月18日出願の米国特許出願第0
9/215081号、「Method and Apparatus to Dynamically Reconfigure th
e Instruction Pipeline of an Indirect Very Long Instruction Word Scalabl
e Processor」という名称の1999年1月12日出願の米国特許出願、「Metho
ds and Apparatus to Dynamically Expand the Instruction Pipeline of a Ver
y Long Instruction Word Processor」という名称の1998年1月12日出願
の仮出願第60/071248号、「Method and Apparatus to Support Condit
ional Execution in a VLIW-Based Array Processor with Subword Execution」
という名称の1998年1月28日出願の仮出願第60/072915号、「Re
gister File Indexing Methods and Apparatus for Providing Indirect Contro
l of Register in a VLIW Processor」という名称の1998年3月12日出願
の仮出願第60/077766号、「Methods and Apparatus for Instruction
Addressing in Indirect VLIW Processors」という名称の1998年7月9日出
願の仮出願第60/092130号、「Efficient Complex Multiplication and
Fast Fourier Transform (FFT) Implementation on the ManArray」という名称
の1998年10月9日出願の仮出願第60/103712号、「Methods and
Apparatus for Improved Motion Estimation for Video Encoding」という名称
の1998年11月3日出願の仮出願第60/106867号、「Method and A
pparatus for Providing Direct Memory Access (DMA) Engine」という名称の1
998年12月23日出願の仮出願第60/113637号、及び「Methods an
d Apparatus Providing Transfer Control」という名称の1998年12月23
日出願の仮出願第60/113555号にそれぞれ記載されており、それら全体
を参照により本明細書に組み込む。
2×2 iVLIW単一命令多重データ・ストリーム(SIMD)プロセッサ1
00は、「Method and Apparatus for Dynamic Merging an Array Controller w
ith an Array Processing Element」という名称の米国出願第09/16907
2号でさらに詳細が記載されている、処理要素0(PE0)SP/PE0 10
1と組み合わされたコントローラ・シーケンス・プロセッサ(SP)を含む。3
つの追加されたPE151,153,155は、本発明による条件付き実行装置
及び方法を実演するのにも使用される。PE0(PE00)101、PE1(P
E01)151、PE2(PE10)153、及びPE3(PE11)155の
括弧に示すように、これらPEは、それらの行列位置に応じて符号をつけること
もできることに留意されたい。SP/PE0 101は、32ビット命令メモリ
105からの短命令語(SIW)のフェッチングを可能とするフェッチコントロ
ーラ103を含む。このフェッチコントローラ103は、プログラムカウンタ(
PC)、分岐機能、デジタル信号処理ループ・オペレーション、割り込みのサポ
ートなどの、プログラム可能プロセッサで必要な典型的な機能を提供し、アプリ
ケーションで必要とされる場合に命令キャッシュを含むことができる命令メモリ
管理制御を提供する。加えて、SIW Iフェッチ・コントローラ103は、3
2ビット命令バス102によって、32ビットSIWをシステム中の他のPEに
ディスパッチする。
される。しかし実際の実装はこの制限に限定されない。例えば、組み合わされた
SP/PE0 101中の実行ユニット131は、制御機能、例えば固定小数点
実行ユニットのために最適化された1組の実行ユニットに分離することができ、
PE0ならびに他のPE151,153,及び155は、浮動小数点アプリケー
ション用に最適化することができる。この説明では、実行ユニット131はSP
/PE0及び他のPEで同じタイプであると仮定する。同様に、SP/PE0及
び他のPEは、超長命令語メモリ(VIM)メモリ109と、SP/PE0のI
フェッチユニット103からディスパッチされる時に命令を受け取り、メモリ1
09中の文字SLAMDで識別され、VIMに格納される、iVLIWにアクセ
スするために必要なVIMアドレス及び制御信号108を生成する命令デコード
及びVIMコントローラ機能ユニット107とを含む5個の命令スロットiVL
IWアーキテクチャを使用する。iVLIWのローディングは、「Method and A
pparatus for Efficient Synchronous MIMD Operations with iVLIW PE-to-PE C
ommunication」という名称の米国特許出願第09/187539号にさらに詳細
に記載されている。同様にSP/PE0及び他のPEには、「Method and Appar
atus for Dynamic Instruction Controlled Reconfiguration Register File wi
th Extended Precision」という名称の米国出願第09/169255号にさら
に詳細に記載されている共通のPE構成可能レジスタファイル127が含まれる
。
コントローラ125は、メモリ121中にSPデータを有するSPコントローラ
と、メモリ123中にPE0データを有するPE0の両方のデータ処理の必要を
扱わなければならない。SP/PE0コントローラ125も、32ビットのブロ
ードキャストデータバス126を介して送られるデータのソースである。他のP
E151,153,及び155は、共通物理データメモリユニット123',1
23'',及び123'''を含むが、それらに格納されるデータは、各PEで行わ
れるローカル処理で必要とされるものとは一般に異なる。これらのPEデータメ
モリへのインターフェースも、PE1,2,及び3で共通の設計であり、PEロ
ーカルメモリ及びデータバス・インターフェースロジック157,157',1
57''によって示される。PEをデータ転送通信のために相互接続することは、
「Manifold Array Processor」という名称の米国特許出願第08/885310
号と、「Methods and Apparatus for Manifold Array Processing」という名称
の米国出願第09/949122号と、「Methods and Apparatus for ManArray
PE-to-PE Switch Control」という名称の米国出願第09/169256号とに
より完全に記載されているクラスタスイッチ171である。ホストプロセッサ、
他の周辺装置、及び/又は外部メモリへのインターフェースは、多くの方式で行
うことができる。完全を期するために示す主機構は、ManArrayコアの外
部の装置及びインターフェースユニットに接続するスケーラブルManArra
yデータバス183を提供するDMA制御ユニット181中に含まれる。DMA
制御ユニット181は、これらの外部装置がバス185を介してManArra
yコアメモリとインターフェースを取るのに必要なデータフロー及びバスアービ
トレーション機構を提供する。
明細書に組み込む。
じると、この手法は、前述の並列アレイiVLIW条件付き実行問題を、単純な
プログラミングモデルと最小限のハードウェア要件で有利に解決する。
指定した結果を格納する1組の算術条件フラグ(ACF)を定義する。これらの
ACFは、一般化条件付き実行に対して使用される。分岐待ち時間を最小にする
ために、ほぼ全ての命令は、ACFに基づいて条件付きで実行することができる
。PEのアレイ中の各PE中で条件付きで実行すべき命令に対しては、テスト可
能条件は、各PE中でローカルに生成しなければならない。このローカルテスト
可能条件は、iVLIWがパック化データタイプに関して実行するために各PE
中で実行することができる多数の条件から導出される。命令ストリームのサイク
ルごとの条件付き実行に対しては、命令コーディングは、命令を実行するかどう
かを決定するために、どの条件を使用するかを指定できなければならない。多く
のタイプの条件があるので、各命令フォーマット中で指定を適切に行うために4
つ以上のビットを確保しなければならないことになる。条件付き分岐は一般に単
一条件テストを指定し、マルチメディアデータ依存コードは、主に単一条件テス
ティングを利用することが予想されるので、本明細書では、単一レベルの条件付
き実行は、より複雑なネストされた条件付き実行のシナリオに亙って最良の性能
利得を提供することになると仮定する。しかし、本明細書で論じる本発明の概念
は、単一レベルの条件付き実行の状況のもとで作成されるものの、条件フラグの
多数のセットを有する、より複雑にネストされた条件は、この教示によって除外
されない。これを念頭におくと、ManArray条件付き実行についてのプロ
グラミングモデルでは、パック化データiVLIWオペレーションの後に得られ
る条件状態情報の量を軽減するために、どのようにACFを設定すべきかについ
ての指定が必要となる。
号(N)、及びゼロ(Z)は、算術スカラフラグ(ASF)と呼ばれ、F7〜F
0フラグは、算術条件フラグ(ACF)と呼ばれる。プログラマ可視ASFは、
常に各命令実行の後に、命令によって指定される通り、パック化データタイプ、
即ち、バイト0(b0)、半ワード0(H0)、ワード0(W0)、またはダブ
ルワード(D)に関して実行される最小有効オペレーションに基づいて設定され
、従来のオペレーションの副次作用を表す。分岐オペレーション中の条件を指定
することにより、これらのスカラフラグの条件に基づいて、分岐が実行される。
表1は、命令実行の結果として、その命令によって定義されるように生成するこ
とができるスカラ条件の例を示す。
命令の選択されたセットによってのみ変更される。しかし、アーキテクチャ的に
は、この実行は、命令の大部分に拡張することができることに留意されたい。こ
れらのある命令によるACFの生成は、実行の副次作用ではなく、プログラマに
よって指定される。ACFは、条件戻り位相の間に、実行の副次作用から、パイ
プラインの命令中で指定される通りに導出される−−CNVZ−−。加えて、A
CFは、次の命令によって待機の犠牲なしで使用可能である。自明の事として、
VLIWアーキテクチャ中の実行ユニット数と無関係に、図1のSP101と、
図1の各PE101,151,153及び155ごとに1組のACFがある。こ
のようにして、条件は、例えばALU中の比較命令からの、1つの実行ユニット
中で生成することができ、他の実行ユニットは、この条件に基づいて条件付きで
実行することができる。
グをどのように設定するかを指定する必要があることである。図2Aに示すよう
な命令20などのALU比較命令については、プログラマは、どの図2Bの条件
テストCC202を、ACF F7〜F0をセットする際に使用するかを指定し
なければならない。例えば、「以上(GE)」205或いは「以下(LE)」2
07などの有効条件結果を、適切なACFを設定するために指定することができ
る。図2Bで示すように、記号は論理ORオペレーションを表す。&&記号はA
NDオペレーションを表し、!記号は等しくないことを表す。
)、無条件実行、及び他の特定のオペレーションを命令ごとに、階層式に指定す
る。真及び負フラグ・セッティングは、条件が真の場合の実行、及び条件が偽の
場合の実行オペレーションに対して使用される。分岐もこれらのフラグの真また
は偽状態に基づいて実行することができる。あるDSU命令、シフト/回転、P
EXCHG(通信命令)、及び選択された他の命令に対しては、ManArra
yアーキテクチャにより、4つのスカラ条件C、V、N、またはZの副次効果の
うちの1つを使用してACFをどのように更新するかを命令ごとに指定すること
ができる。VLIWオペレーションを実行するとき、プログラマは、算術ユニッ
ト(この機能は拡張することができることを理解されたいが、現在のところAL
UまたはDSUのみである)のうちのどれがフラグの単一セットのセッティング
を制御するかを選択しなければならない。各サイクルでは、条件フラグのセッテ
ィングは命令によって明示的に指定される。
ラグ自体に影響を与えないことである。この特徴により、比較の後の第1命令が
フラグを変更し、望ましくない結果を生成するという心配なしに、プログラマは
、(a>b)?z=x+y:r=q+sの形のCスタイルの条件付き式演算子を
実行できるようになる。命令は、ACFに基づく条件付き実行、またはフラグを
セットする方法のいずれかを指定することができるが、両方を指定することはで
きない。
用法を可能にするManArray命令セットアーキテクチャ中で使用される。
3ビット、2ビット、または1ビットのサブセットオペコード拡張エンコーディ
ングが、条件付き実行をサポートする各命令に対して定義される。ACFが影響
を受けるかどうかに関わりなく、ASFスカラフラグは、常にb0、H0、W0
、及びDオペレーションに関して影響を受けることにやはり留意されたい。
のそれぞれに関して同じオペレーションを実行するように定義される。これらの
個々のデータ要素オペレーションのそれぞれは、パック化データ命令によって定
義されるように適切なASF及び/またはACFをセットすることができる副次
作用を生成することができる。ManArrayアーキテクチャは、最大8つの
同時パック化データ命令をサポートするので、8つの定義されたACF F0〜
F7がある。以下の表2に示すように、フラグとオペレーション並列性との間に
は対応がある。フラグは、比較命令中のCCcodeフィールドと、以下でより
詳細に説明する、選択された命令中のCE3aフィールドとによって指定される
ように影響を受ける。図3A及び図3Bは、パック化データ要素オペレーション
と、その対応するACFとの関係を示す。例えば、64ビットパック化データオ
ペレーション300を示す図3Aのデュアルワード・オペレーションでは、W0
上のオペレーション302はF0に影響を与え、W1上のオペレーション304
はF1に影響を与える。別の例では、32ビットのパック化データオペレーショ
ン350を表す図3Bのカッド(4)バイト・オペレーションでは、b0上のオ
ペレーション352はF0に影響を与え、b1上のオペレーション354はF1
に影響を与え、b2上のオペレーション356はF2に影響を与え、b3上のオ
ペレーション358はF3に影響を与える。
は、ACFに影響を与えずに、真のときに条件付きで実行するか、無条件で実行
することができる。ASFは、命令によって定義されるように設定される。例え
ば、図4Aの命令400などのロード及びストア命令は、ACFフラグに決して
影響を与えず、真の条件時に条件付きで実行することができる。
は、真または偽に対して条件付きで実行したり、無条件で実行し、かつACFに
影響を与えない、または命令特有の条件付き実行機能を提供することができる。
ASFは、命令によって定義されるように設定される。ビット0及び1でCE2
の2ビット拡張フィールドを有する例示的コピー命令エンコーディング410を
図4Bに示す。
いたDSU固有命令シフト/回転、受信タイプ、浮動小数点/整数変換命令、及
び他を選択(select others)は、命令をどのように実行すべきか、ACFがど
のように影響を受けるかを指定する。C,N,Z,及びVフラグは、実行中の命
令からの副次効果を表す。□が+,−,×,論理ORなどの算術関数であるとし
て、A←X□YまたはX←X□Y□Zの形の算術命令は、フラグに影響を与える
ことなく、真または偽条件に対して条件付きで実行することができる。それらは
、フラグに影響を与えることなく無条件で実行、または無条件で実行し、条件C
,V,N又はZフラグのうちの1つに基づくフラグに影響を与えることができる
。
第1の状況は、オペレーションを無条件で実行することである。第2は、全ての
パック化データ要素に対するオペレーションを条件付きで実行することである。
第3は、どのデータ要素を条件付きで実行すべきかを選択することである。この
第1ケースでは、オペレーションは、いつでも全てのデータ要素に対して実行さ
れる。第2ケースでは、オペレーションは、全てのデータ要素に対して実行され
るか、全く実行されないかのいずれかである。第3ケースでは、オペレーション
はいつでも実行されるが、指定した真又は偽コーディングについての適切な値の
対応するACFを有するデータ要素に対してのみ実行される。この第3のケース
では、パック化データ命令は、SP中の宛先レジスタの更新の点で部分的に実行
するか、又は対応するACFが指定された条件の場合だけ、PE中で並列に実行
すると考えられる。全ての3つの手法は、CE3bエンコーディングを使用する
ことによって利用可能である。CE3bの3ビット実行フィールドを備えるビッ
ト3,4,及び5を有する例示的な論理命令エンコーディング420を図4Cに
示す。
。これらは、「真多重(True Multiple)」及び「偽多重(False Multiple)」
を表す。この多重ケースは、オペレーション中で考慮すべきフラグの数を決定す
るために現行命令中のデータ要素カウントを使用する。例えば、「Tm.add
.sa.4h」は、F0,F1,F2及びF3の現在の設定状態に基づいて、各
4半ワードに対する加算命令を実行することになる。この実行は、これらの4つ
のフラグがどのように設定されたかに関わらず実行される。この手法により、1
つのデータ・タイプのテスティングが、第2データ・タイプに対するオペレーシ
ョンと共に可能となる。例えば、カッド(4つの)バイト・セッティングフラグ
F3〜F0に対して操作することができ、次いで条件付きカッド(4)半ワード
オペレーションをフラグF3〜F0に基づいて指定することができる。ある命令
、主にMAU及びALU中の命令により、条件付き実行CE3bの3ビット拡張
フィールドを指定することが可能となる。命令をどのように実行すべきか、AC
Fがどのように影響を受けるかを以下の表6に示す。
「001」及び「010」のエンコーディングと類似している。言い換えれば、
この特徴により、プログラマは、(a>b)?z=x+y:r=q+sの形のC
スタイルの条件付き式演算子を実行できるようになる。但し、a,b,x,y,
z,q,r及びsは、全てパック化データ・ベクトル要素である。
,V,N,またはZ,ならびにACFに基づくSP中の無条件及び条件付き分岐
タイプ命令をサポートする。ACFを設定するための条件コードは、比較命令、
ならびに図2Bに示す他の具体的に定義された命令中で指定されるので、制御コ
ードがスカラ条件付き分岐命令を利用することができるものの、条件付き分岐は
、真に対する分岐または偽に対する分岐だけしか指定する必要がない。パック化
データに対する命令によって生成された多数の条件を収容するために、分岐命令
は、全て(AND縮小)又は任意(OR縮小)の縮小オペレーションも指定しな
ければならない。1つのオペレーションだけがあるときに、2つの縮小は等しい
ものの、非パック化単一データ(MONO)オペレーションに対する命令は、直
交性に対するパック化データオペレーションのサブセットとして扱われる。
。構文フォーマットは、以下の表7に示す通りである。ただし、考慮すべきフラ
グの数は、構文中の2,4,及び8桁によって指定される。
(ACF)は、比較命令の一部として指定される条件コードに基づいて影響を受
ける。条件の組合せを使用して、フラグの前の状態は、現行比較命令によって指
定される条件コードテストの結果と共に組み合わせることができる。この手法に
より、複合条件を多重分岐に復元することなく作成することが可能となる。図2
Bでは、CCは、「より大(GT)」206、「より小(LT)」208、「等
しい(EQ)」204、または「以下(LEQ)」207などの条件コード20
2を表す。図2Aの比較(CMPcc)命令200は、テストすべき所望の条件
CC(図2B)、比較すべき2つのソースレジスタ、パック化形態をカバーする
データタイプ、及びCCombと符号を付けたブール組合せ指定フィールドを指
定する。
(F)を指定する。具体的には、文字「n」は、比較命令がそれぞれモノ、デュ
アル、カッド、またはオクタルであるかに依存して、ACF n=1:F0、n
=2:F1−F0、n=4:F3−F0、またはn=8:F7−F0のセットを
表す。Ft-1,nは、添字t−1によって示されるように、前のサイクルに対する
ACFの状態を指定する。Fnは、比較オペレーションを完了するのに使用され
るnマシンACFのセットである、真/偽値の最後のセットを表す。この条件フ
ラグエンコーディングを以下の表8に示す。
て、SP中で分岐する、又はSP及びPE中で条件付きで実行することが可能と
なる。この手法は、多数の分岐と、条件の組合せなしに同じ効果を達成するため
に必要なそれらの関連する犠牲との代わりに使用することができる。条件付き実
行は、単一条件ではなく、多数の条件の組合せに基づいても実行することができ
る。最終的に、条件の組合せは、算術命令条件コードの限定化セットからは直接
利用可能ではない複合条件を生成するために、先行する算術命令と共に使用する
ことができる。任意の複雑さの組み合わされた条件は、条件フラグを多くのプロ
セッサレジスタのうちのどれか1つにコピーし、次いでそれらに対する論理演算
を算術ユニット中で実行することによって得ることができることに留意されたい
。所望の条件が計算され、レジスタ中に格納された後、所望の条件は、条件付き
実行のために、それに対して使用することができる条件フラグに戻すことができ
る。この方法論を使用して、いくつかのプログラミングのオーバヘッドによって
、複合条件を得る非常に一般的な方法が得られる。この方法論は、計算レジスタ
ファイル中で生成し、常駐することができる条件結果の多数のセットを必要とす
る、Cスタイルの条件付きで実行されるステートメントのネスティングをサポー
トするためにも使用することができる。次いでプロセッサレジスタファイル中に
常駐するこれらの条件結果は、条件付き実行の前にACFにコピーされることに
なる。
CE3a/b仕様を含む。VLIWが実行VLIW(XV)命令に応答して実行
されるために読み出されるとき、個々のユニット内に多数のフラグを生成するこ
とができる。ACFの1つのセットがあり、潜在的にVLIW中の各命令がフラ
グに影響を与える可能性があるので、どの算術ユニットがある所与のサイクルの
ためのフラグに対して影響を与えることになるかを選ぶための選択機構が必要で
ある。本発明によるManArrayの1つの実施形態では、これを達成するた
めの2つの機構がある。これらの機構は、それぞれSIMD及び同期多重命令多
重データストリーム(SMIMD)コードの必要を満たす。
でき、次いでVLIW並列性についての様々な必要を伴う様々なアプリケーショ
ンで性能を最適化する目的で並列に実行することができる。SMIMDコードに
対して、プログラマは、VLIWがロードVLIW(LV)命令の一部としてロ
ードされるときに、どの算術ユニットがフラグに影響を与えるかを指定する。こ
の手法により、異なるPEが、異なるユニットにフラグに影響を与えさせること
が可能となる。SIMDコードに対して、プログラマは、どのユニットが実行時
間にXV命令の一部としてフラグに影響を与えるかを指定する。XV命令指定は
、LV命令で指定されたユニットを上書きすることができる。これにより、プロ
グラマは、多数の非オーバーラッピングVLIWを、VLIWの実行毎に、条件
フラグに影響を与える種々の算術ユニットを用いて、同じVIMアドレスにパッ
クすることが可能となる。
定する。このPEXCHG命令により、ACF及びASFを含むプログラマ可視
ステータスレジスタにアクセス可能にすることによって、1つのPEから別のP
Eに条件状態情報を効果的に転送することが可能となる。SP受信命令(SPR
ECV)は、条件をPEとSPとの間で伝送するために使用することができる。
条件状態は、異なるPEの計算レジスタファイル中に受信されることになり、次
いで、それ自体のプログラマ可視フラグレジスタにコピーすることができ、条件
付き実行のために使用される。
2を有する各命令は、それぞれ表5及び6及び表4に示すように予約される少な
くとも1つのエンコーディングを有する。以下の機構は、命令が算術条件フラグ
(F7〜F0)を「SetCC」命令によって特定されるプログラム可能「複合
条件」で更新することが可能となるように、この予約エンコーディングを使用す
ることになる。例として、予約フィールドを使用するためのCE2のエンコーデ
ィングを以下の表9に示す。CE3a及びCE3bフィールドはどちらも、それ
らの等しい予約エンコーディングに対する同じエンコーディング定義を使用する
ことになる。
定するとき、その実行ユニットの算術条件フラグ(F7〜F0)中で生成され、
保存すべき複合条件を指定する。現在の好ましいCE3aエンコーディングによ
り、4つの可能な条件C(桁上げ)、N(符号)、V(オーバーフロー)、また
はZ(ゼロ)のうちの1つを指定することが可能となる。SetCC命令により
、「より大」、「より小」、「以下」、「以上」などの標準の16個の条件を含
む、最大32個の複合条件を指定することが可能となる。例えば、オーバーフロ
ーがパック化データ実行内で何らかのデータオペレーションに対して生じたかど
うかを検出するために、条件を指定することができる。このようにして、オクタ
ルパック化データ実行内でオーバーフローを有するデータオペレーション6は、
設定すべきフラグACFF6の設定を生じさせることができる。条件に影響を与
えることができるCE3又はCE2エンコーディングを有する命令によって、こ
れらのうちのどれかが選択されても良い。異なる複合条件の選択がデータ依存と
なることができるように、一部のデータに基づいてSetCC命令を条件付きで
実行可能にすることも可能である。例示的SetCC命令を以下の表10に示す
。
下の2つのパラメータを指定する。
ットを指定する。各実行ユニットは、異なる複合条件を有することができるか、
又はALLエンコーディングが選ばれる場合、全てのユニットが同じ複合条件を
使用する。
。命令フォーマットによりそれが可能にになると仮定すると、このフィールドは
テストすべき他の条件が生じる場合に拡張することができる。
ア500の態様を示す。ハードウェア500は、例えば算術論理ユニット(AL
U)、または図1のManArrayアーキテクチャの他の実行ユニットなどの
算術ユニット510を含む。ALU510は、ManArrayレジスタファイ
ルからオペランド507及び509を受け取る。命令制御線501は、プロセッ
サパイプライン中の登録した命令から導出される。この命令制御線は、命令中で
指定されたように条件付きオペレーションを制御するために、条件付き実行制御
線503を含む。図4Aは、ビット22がCE1フィールド402を有する例示
的ロード直接命令400を示す。図4Bは、ビット1及び0がCE2フィールド
412を表す例示的コピー命令410を示す。図4Cは、ビット5〜3がCE3
bフィールド422を表す例示的論理命令420を示す。例えば加算器502な
どの算術ユニット510内の動作ユニットは、結果515及びラッチされた算術
スカラ条件状態519を生成する。ラッチ512及び514は、実行サイクルの
終わりでのラッチ入力値を保持し、したがって実行サイクルの終了した命令に対
する算術スカラ条件及び命令制御信号を表す。実行ユニットに対するパイプライ
ンは、実装に依存して変動する可能性があり、その結果、所望の条件付きオペレ
ーションを達成するために、パイプライン効果を調節しなければならないことに
留意されたい。結果515は、プロセッサまたは処理要素のレジスタファイルに
送られる。算術スカラ条件信号519は、ACF生成ユニット508中で、信号
選択及び条件組合せユニット506によって、実行された命令に対する制御50
5によって指示される通りにさらに処理される。ACF生成ユニットの出力52
1は、プログラマ可視レジスタ518中に格納される前のACF生成信号F7〜
F0を表す。選択された命令に対するACF生成ユニットは、前の状態525と
共に現在の選択された状態のブール組合せも提供する。前で示したように、多く
の命令は、アーキテクチャによって指定されるように、フラグに影響を与えない
ことに留意されたい。これらの影響なし(no-affect)の場合では、フラグは、
依然として前にセットされたのと同様である。マルチプレクサ520は、実行中
の命令中で指定されるテストの結果に依存してレジスタファイル中に結果出力5
15を書き込むかどうかを制御するために、算術ユニット中の条件付きテストの
ための出力527として使用されるACF生成信号521またはACFラッチ5
18出力525のいずれかを選択する。マルチプレクサ520の出力527は、
SP中の分岐ロジックのみに送られ、プログラマ可視ステータスビットを表すラ
ッチ518中に次のサイクルでラッチされる。同様に、マルチプレクサ522は
、ラッチされたCNVZラッチ出力517の部分、又はCNVZラッチ516の
出力523のいずれかを、SP中の分岐ロジックのみに送り、プログラマ可視ス
テータスビットを表すラッチ516中に次のサイクルでラッチするために選択す
る。以下の表11に示すように、ラッチ中のこれらのビット516及び518は
、CNVZ516の値がプログラマの可視ステータス及び制御レジスタ0(SC
R0)のビット19〜16中にそれぞれ位置付けられる共通プログラマ可視ステ
ータスレジスタ中で組み合わせることができ、ACF F7〜F0 518の値は
、ビット7〜0中にそれぞれ位置付けられる。
制御情報を含む。尚、ブランクフィールドは予約済みである。
Wアーキテクチャに拡張される。図5Bでは、データ選択ユニット(DSU)5
60、ALU570、及び乗算加算ユニット(MAU)580の3つの実行ユニ
ットを含む条件付き実行VLIWユニット550を示す。このハードウェアは、
図1に示すプロセッサ100などのManArrayプロセッサのSP及び各P
E中に取り込まれる。これらのユニットの内部には、基本動作要素及びそれらの
ASF生成とラッチユニットが、DSU560中の機能ユニットfn562、A
LU加算器572、及びMAU乗算器582中にある。概念の汎用性を実演する
ために3つのタイプのフラグの機能性を示し、それらは典型的なアプリケーショ
ンの必要を代表する。DSU560では、ASF、(C N V Z)が、DSU
命令の必要に応じて生成される。ACF561は、プログラマ可視ラッチ598
からの格納されたACF状態のフィードバックなしに、AFC生成ユニット56
8で、ASF563に基づいて生成される。ALU570は図5Aで示した手法
の機能性を維持する。ALU570では、ACF571は、プログラマ可視ラッ
チ598からフィードバックされたASF573及び格納されたACF状態59
9に基づいて、ACF生成ユニット578で生成される。MAU580は、MA
U命令の結果として生成されるACFを用いない、比較的単純な機構を使用する
。MAUは、この例示的実施で示すように、ACFのセッティングから一般に排
除されない。これらのフラグに影響を与えるMAU命令の最下位オペレーション
についてアーキテクチャ的に定義されたASF,(C N V Z)587のみが
、マルチプレクサ592に送られ、そこから、選択された場合に、そのASF5
87がマルチプレクサ出力597に進み、プログラマ可視状態ラッチ596中に
ラッチされる。マルチプレクサ592は、CNVZmux制御信号591によっ
て制御されるように、MAU587,ALU577,DSU567、またはCN
VZ状態ラッチ589から生成されたASFを選択する。VLIW実行に対して
は、XV命令のUAFと共に、ロードVLIW(LV)命令中のユニット影響フ
ラグ(UAF)フィールド、このManArrayアーキテクチャでは2ビット
フィールドは、マルチプレクサ制御信号591及びACFMux制御593を以
下のように決定する。LV命令のユニット影響フラグ(UAF)ビットは、どの
算術命令スロット(A=ALU,M=MAU,D=DSU)が、実行時に、指定
したVLIWに対する条件フラグをセットすることが可能かを選択するために使
用される。XV命令のユニット影響フラグ(UAF)ビットは、それがLV命令
を介してロードされたときに、VLIWに対して指定されたUAFを上書きする
。この上書きは、VLIWのこの実行に対してどの算術命令スロット(A=AL
U,M=MAU,D=DSU)が条件フラグをセットすることが可能であるか、
またはどれも可能ではない(N=NONE)かを選択する。この上書きは、これ
らがVIM中の指定されたVLIWアドレスにロードされるので、LV命令を介
して指定されたUAFセッティングに影響を与えない。この命令構文では、命令
のためのUAFを指定するためにフラグパラメータを使用する。ブランクパラメ
ータ、即ち、「F=」は、VLIWがロードされて命令の実行に使用され、後続
のマルチプレクサ592及び594が適切なフラグをプログラマ可視レジスタ5
96及び598中にロードするように制御するために使用されるときに、特定さ
れるUAFを選択する。例えば、MAUがフラグに影響を与えるべきことを示す
UAFと共に、マルチプレクサ592は、CNVZMux制御591信号に応答
して、マルチプレクサ出力597に進むパス587を選択し、生成されたCNV
ZASFをCNVZ状態ラッチ596にロードする。MAUは、例示的MAU5
80に示すように、どんなACFも生成しないので、プログラマ可視ACF状態
ラッチ598中にラッチすべきACFはなく、プログラマ可視ACF状態ラッチ
598は前の状態を保持する。MAUは、依然としてそのパイプラインシーケン
スに従う別の実行ユニット595によって生成されたACF値に基づいて条件付
きで実行することができる。どの命令シーケンスも、CNVZ又はACF状態ラ
ッチ596及び598をそれぞれどの実行ユニットでも更新する必要がない場合
、mux制御信号591及び593は、マルチプレクサ592及び594が、状
態ラッチ出力589及び599を選択し、それらのマルチプレクサ出力597及
び595にそれぞれ進ませるようにする。ManArrayの実施に対して、C
NVZ及びACF信号のためのバス幅を図5Bに示す。図5Bでは、CNVZパ
ス587,577及び567は、全てC,N,V及びZ値に対応する4ビット信
号である。ACFパス571及び561は、それぞれF7〜F0に対応する8ビ
ット信号である。マルチプレクサ592及び594の出力はそれぞれ4ビット信
号及び8ビット信号であり、そのどちらも、分岐ロジックで使用される。ACF
マルチプレクサ出力信号595は、各実行ユニット560,570及び580中
の制御条件付き実行に使用される。SP中では、マルチプレクサ出力信号595
及び597は、条件付き実行のために分岐ロジック中で使用される。
てロードすることができる、メモリからロードすることができる、または計算レ
ジスタからコピーすることができるプログラマ可視ステータス及び制御レジスタ
のうちの1つに格納すべきACF状態ラッチ598及びCNVZ状態ラッチ59
6を定義する。このレジスタをメモリ中に保存し、実行ユニットで利用可能な計
算レジスタのうちの1つにコピーすることもできる。
ーディングを実施するために使用すると、条件付き実行は、1ビットの追加のオ
ペコード空間だけでサポートされ、機能性の程度の変動に伴って最大3ビットで
サポートされることがわかる。加えて、命令機能指定と条件付き実行指定との間
のより良い合致を得ることができる。例えば、1ビット条件付き実行エンコーデ
ィングは、ロード及びストア命令に対して十分であり、機能エンコーディングに
対して最大数のビットが可能となる。各追加された条件実行ビットは、前の機能
性のスーパーセットを提供する。さらに、この手法では、条件ビットの全体数は
減少する。これは、1つのフラグが各サブワードオペレーションに対して定義さ
れるパック化データに対して操作する命令とよくマップし、サブワードごとの命
令の部分的実行が可能となる。
を共用する場合に指定される。ManArrayネットワーク及び通信命令を使
用することによって、異なるPE中で実行する命令が互いの条件情報を使用する
ことが可能となる。加えて、条件組合せでは、複合条件の場合に対して多数の分
岐を使用することを避けることができ、複合条件は、条件付き実行に対して使用
することができる。
示は、添付の請求の範囲と一致する様々な処理アレイに適用することができるこ
とを理解されたい。
。
の例示的に説明する図である。
フラグへのそれらの関係を示す図である。
フラグへのそれらの関係を示す図である。
令エンコーディングシーケンスを示す図である。
ィングシーケンスの一例を示す図である。
ィングシーケンスの一例を示す図である。
の詳細を示す図である。
ェアの1つの適切な実施の別の詳細を示す図である。
Claims (55)
- 【請求項1】 少なくとも1つの処理要素(PE)を備えるアレイ及びアレ
イ制御プロセッサを備えるSIMD機器であって、 前記アレイ制御プロセッサ及び前記PEのそれぞれが、 算術ユニット条件レジスタと、 分岐または条件付き実行のために使用される減縮条件情報を含む複数の汎用フ
ラグ(ACF)と、 を有することを特徴とするSIMD機器。 - 【請求項2】 前記複数のACFが、並行して動作するいくつかの実行ユニ
ットからの条件情報を格納する1つまたは複数のビットを具備するフォーマット
を有することを特徴とする請求項1に記載のSIMD機器。 - 【請求項3】 条件付きで実行される命令を格納するための命令メモリを更
に備え、前記命令の実行がACFに影響を与えないことを特徴とする請求項1に
記載のSIMD機器。 - 【請求項4】 前記SIMD機器がパック化データ命令に関して動作し、1
つのACFが各パック化データオペレーションに対して影響を受けることを特徴
とする請求項1に記載のSIMD機器。 - 【請求項5】 その中で多数のPEが利用され、異なるPEがACFに影響
を与えるための異なるユニットを選択することを特徴とする請求項1に記載の装
置。 - 【請求項6】 条件付き実行をサブワード実行を伴う超長命令語(VLIW
)ベースのアレイプロセッサでサポートする方法であって、 分岐または条件付き実行に対して使用される減縮条件情報を含む汎用フラグビ
ット(ACF)を提供する工程と、 ACF中の条件を、条件を生成する命令中でエンコードされる条件コード仕様
に基づいて指定し、設定する工程と、 を有することを特徴とする方法。 - 【請求項7】 前記条件付き実行の命令がACFに影響を与えないことを特
徴とする請求項6に記載の方法。 - 【請求項8】 前記ACFに影響を与える命令が無条件で実行することを特
徴とする請求項6に記載の方法。 - 【請求項9】 パック化データオペレーションの各サブワードの実行が、関
連するサブワードACFに依存するパック化データ命令を実行する工程を更に含
むことを特徴とする請求項6に記載の方法。 - 【請求項10】 階層条件付き実行命令フォーマットであって、 命令を定義する複数の命令ビットと、 条件付き実行をサポートする各命令に対してオペコード拡張エンコーディング
を提供する前記複数の命令ビットの3ビット、2ビット又は1ビットのサブセッ
トと、 命令実行からの指定した結果を格納する1組の汎用算術条件フラグ(ACF)
と、 1組の算術スカラ・フラグ(ASF)と、 を有することを特徴とする階層条件付き実行命令フォーマット。 - 【請求項11】 前記1ビットのオペコード拡張が利用され、前記1ビット
が1の場合に、前記命令が真のAFC条件に関して条件付きで実行するか、又は
前記命令が前記1ビットがゼロの場合に前記AFCに影響を与えることなく、偽
のAFC条件に関して条件付きで実行することを特徴とする請求項10に記載の
階層条件付き実行命令フォーマット。 - 【請求項12】 前記2ビットのオペコード拡張が利用され、両方のビット
が真である場合に前記命令が無条件で実行され、前記ACFがSetCC命令に
よって定義されるように影響を受けることを特徴とする請求項10に記載の階層
条件付き実行命令フォーマット。 - 【請求項13】 前記SetCC命令が、指定された条件がどの実行ユニッ
トに当てはまるかを指定する第1オペコード・エンコーディングフィールドを含
むことを特徴とする請求項12に記載の階層条件付き実行命令フォーマット。 - 【請求項14】 前記SetCC命令が、複数のテスト条件を指定する第2
オペコード・エンコーディング・フィールドを含むことを特徴とする請求項13
に記載の階層条件付き実行命令フォーマット。 - 【請求項15】 各実行ユニットが異なる指定された条件を有するか、前記
SetCC命令のALLエンコーディングが選ばれる場合に、全ての実行ユニッ
トが同じ指定された条件を使用することを特徴とする請求項13に記載の階層条
件付き実行命令フォーマット。 - 【請求項16】 オーバーフローがパック化データ実行内の何らかのデータ
オペレーションに関して生じたかどうかを検出するためにテスト条件を指定する
ことができることを特徴とする請求項14に記載の階層条件付き実行命令フォー
マット。 - 【請求項17】 前記2ビットオペコード拡張が利用され、前記ビットのう
ちの一方が真、前記ビットの他方が偽である場合に、前記命令を前記ACFの状
態に依存して前記ACFに影響を与えることなく条件付きで実行することを特徴
とする請求項10に記載の階層条件付き実行命令フォーマット。 - 【請求項18】 前記2ビットオペコード拡張が利用され、両方のビットが
偽の場合に、前記命令を、前記ACFに影響を与えることなく無条件で実行する
ことを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。 - 【請求項19】 前記3ビットオペコード拡張が利用され、前記命令を、ど
のように前記ACFに基づいて無条件で、または条件付きで実行すべきか、どの
ように前記3ビットオペコード拡張のビットを使用することにより前記ACFが
影響を受けるかを指定することを特徴とする請求項10に記載の階層条件付き実
行命令フォーマット。 - 【請求項20】 前記ASFフラグの組が、実行中の命令からの副次効果を
表し、前記3ビットのオペコード拡張の2つ以上のビットが真である場合に、前
記AFCが前記ASFの組の条件のうちの1つに基づいて影響を受けることを特
徴とする請求項15に記載の階層条件付き実行命令フォーマット。 - 【請求項21】 前記ASFが桁上げ(C)、オーバーフロー(V)、符号
(N)、及びゼロ(Z)フラグを含むことを特徴とする請求項20に記載の階層
条件付き実行命令フォーマット。 - 【請求項22】 前記3ビット・オペコード拡張が、パック化データ命令の
1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利
用され、前記3ビット・オペコード拡張中の全てのビットが偽である場合に、前
記命令が、全ての前記データ要素上の命令によって指定されるオペレーションを
ACFに影響を与えることなく無条件に実行する請求項10に記載の階層条件付
き実行命令フォーマット。 - 【請求項23】 前記3ビットのオペコード拡張が、パック化データ命令の
1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利
用され、前記命令が、全ての前記データ要素上の命令によって指定されるAFC
オペレーションの状態に基づいて条件付きで実行するか、又はオペレーショが全
く行われないことを特徴とする請求項10に記載の階層条件付き実行命令フォー
マット。 - 【請求項24】 前記3ビットのオペコード拡張が、パック化データ命令の
1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利
用され、前記命令が、前記3ビットのオペコード拡張の指定された真または偽コ
ーディングに対する適切な値の対応するACFフラグを有するデータ要素のみを
条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令
フォーマット。 - 【請求項25】 条件生成の方法であって、 1組の算術条件フラグ(ACF)を定義する工程と、 命令に関する複数のスカラ条件の副次効果を命令ごとに決定する工程と、 前記決定した副次効果を保存するために1組の算術スカラフラグ(ASF)を
設定する工程と、 比較命令を使用する条件コードを指定する工程と、 指定した条件コードに基づいて前記ACFを更新する工程と、 を有することを特徴とする方法。 - 【請求項26】 前記ACFの前の状態を、複合条件を作成するために現行
比較命令によって指定された条件コードテストの結果と組み合わせる工程を更に
含むことを特徴とする請求項25に記載の方法。 - 【請求項27】 前記条件コードが、より大(GT)、より小(LT)、等
しい(EQ)、または以下(LEQ)などの条件を指定することを特徴とする請
求項25に記載の方法。 - 【請求項28】 前記比較命令が、テストすべき所望の条件と、比較すべき
2つのソースレジスタとを指定するために更に使用されることを特徴とする請求
項27に記載の方法。 - 【請求項29】 前記比較命令が、パック化データ形態をカバーするデータ
タイプを指定するために更に使用されることを特徴とする請求項28に記載の方
法。 - 【請求項30】 前記比較命令が、ブール組合せ指定フィールドを指定する
ためにさらに使用されることを特徴とする請求項28に記載の方法。 - 【請求項31】 作成された複合条件に基づいて、シーケンスプロセッサ(
SP)中の分岐を制御する工程を更に有することを特徴とする請求項26に記載
の方法。 - 【請求項32】 作成された複合条件に基づく多数の条件のブール組合せか
らなる作成されたカプレックス(couplex)に基づいて、シーケンスプロセッサ
(SP)及び少なくとも1つの処理要素(PE)中で条件付き実行を行う工程を
さらに含むことを特徴とする請求項26に記載の方法。 - 【請求項33】 作成された複合条件に基づいて、多数の条件の組合せに関
して条件付きで実行する工程を更に含むことを特徴とする請求項26に記載の方
法。 - 【請求項34】 関係のブール組合せによって形成される複合条件を生成す
るためのシステムであって、 レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと
、 プロセッサパイプライン中の登録された命令から導出される命令制御線であっ
て、命令中で指定されるように条件付きオペレーションを制御するために条件付
き実行制御線を含む命令制御線と、 結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、 命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持する
ための第1ラッチと、 命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための
、条件付き実行制御線に接続された第2ラッチと、 現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラ
グ(ACF)生成ユニットと、 前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックする
ためのACFラッチと、 を有することを特徴とするシステム。 - 【請求項35】 前記ACFラッチは、プログラマ可視ラッチであることを
特徴とする請求項34に記載のシステム。 - 【請求項36】 前記ブール組合せを前記ACF生成ユニットから受け取り
、前記ブール組合せ又は前記AFCラッチをシーケンスプロセッサ(SP)中の
分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に有
することを特徴とする請求項34に記載のシステム。 - 【請求項37】 前記算術ユニットの前記第1ラッチ算術スカラ条件状態出
力に切り替え可能に接続される算術スカラフラグ(ASF)ラッチを更に備える
ことを特徴とする請求項34に記載のシステム。 - 【請求項38】 前記算術ユニット及び前記ASFラッチの前記第1ラッチ
算術スカラ条件状態出力の切り替え可能接続が、制御可能マルチプレクサを備え
ることを特徴とする請求項37に記載のシステム。 - 【請求項39】 前記制御可能マルチプレクサの出力が、前記算術スカラ条
件状態またはASFラッチ出力を、前記シーケンスプロセッサ(SP)中の分岐
ロジックへ制御可能に切り替えることを特徴とする請求項38に記載のシステム
。 - 【請求項40】 前記ASFラッチがプログラマ可視ラッチであることを特
徴とする請求項37に記載のシステム。 - 【請求項41】 コントローラ(SP)及び少なくとも2つの処理要素(P
E)を備える単一命令多重データストリーム(SIMD)機器であって、 前記SIMD機器の各PEが、 レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと
、 プロセッサパイプライン中の、前記SPから受け取られた登録された命令から
導出される命令制御線であって、命令中で指定されるように条件付きオペレーシ
ョンを制御するために条件付き実行制御線を含む命令制御線と、 結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、 命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持する
ための第1ラッチと、 命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための
、条件付き実行制御線に接続された第2ラッチと、 現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラ
グ(ACF)生成ユニットと、 前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックする
ためのACFラッチと、 を有することを特徴とするSIMD機器。 - 【請求項42】 各PEのACFラッチがプログラマ可視ラッチであること
を特徴とする請求項41に記載のSIMD機器。 - 【請求項43】 各PEが、前記ブール組合せを前記ACF生成ユニットか
ら受け取り、前記ブール組合せ又は前記ACFラッチをシーケンスプロセッサ(
SP)中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレク
サを更に有することを特徴とする請求項41に記載のSIMD機器。 - 【請求項44】 各PEが、前記算術ユニットの前記第1ラッチ算術スカラ
条件状態出力に切り替え可能に接続される算術スカラフラグ(ASF)ラッチを
更に備えることを特徴とする請求項41に記載のSIMD機器。 - 【請求項45】 各PEの算術ユニット及び前記ASFラッチの前記第1ラ
ッチ算術スカラ条件状態出力の切り替え可能接続が、制御可能マルチプレクサを
備えることを特徴とする請求項44に記載のSIMD機器。 - 【請求項46】 各PEの制御可能マルチプレクサの出力が、前記算術スカ
ラ条件状態又は前記ASFラッチ出力を、前記シーケンスプロセッサ(SP)中
の分岐ロジックへ制御可能に切り替えることを特徴とする請求項45に記載のS
IMD機器。 - 【請求項47】 各PEの算術ユニットが、それぞれ関連する算術条件フラ
グ(ACF)生成ユニットを有する乗算累算ユニット(MAU)、算術論理ユニ
ット(ALU)、及びデータ選択ユニット(DSU)を備える1組の実行ユニッ
トのうちの1つであることを特徴とする請求項41に記載のSIMD機器。 - 【請求項48】 MAU、ALU、DSU及びACFラッチについてのAC
F生成ユニットからの出力が、マルチプレクサによって前記シーケンスプロセッ
サ中の分岐ロジックに制御可能に切り替えられることを特徴とする請求項47に
記載のSIMD機器。 - 【請求項49】 間接超長命令語(VLIW)処理システムであって、 VIMメモリ内のスロット中に命令を格納するためのVLIW命令メモリ(V
IM)を有する第1処理要素(PE)と、 命令タイプを定義する複数のグループビットと、実行ユニットタイプを定義す
る複数のユニットフィールドビットとを有する機能命令を格納するための第1レ
ジスタと、 複数のグループビット及び複数のユニットフィールドビットをデコードするた
めの事前デコーダと、 前記デコーディングに基づいて機能命令をVIM中の前記スロットのうちの適
切な1つにロードするためのロード機構とを備え、 第1プロセッサ更には、 少なくとも2つの実行ユニットを備え、各実行ユニットがレジスタファイルか
ら少なくとも2つのオペランドを受け取り、 各実行ユニットが、プロセッサパイプライン中の登録された命令から導出され
る命令制御線を有し、命令制御線が、実行すべき命令中で指定されるように条件
付きオペレーションを制御するために条件付き実行制御線を含み、 各実行ユニットが、結果及びラッチされた算術スカラ条件状態を生成し、 各実行ユニットが、命令がその実行状態を完了した後に、命令用に算術スカラ
条件状態を保持するための第1ラッチを有し、 各実行ユニットが、命令がその実行状態を完了した後に、命令用に命令制御信
号を保持するための、条件付き実行制御線に接続された第2ラッチを有し、 各実行ユニットが、現在選択した状態と前の状態とのブール組合せを提供する
ための算術条件フラグ(ACF)生成ユニットを有し、 前の状態を格納し、前の状態を各ACF生成ユニットにフィードバックするた
めの全ての実行ユニットについての単一ACFラッチを備えることを特徴とする
システム。 - 【請求項50】 前記ACFラッチがプログラマ可視ラッチであることを特
徴とする請求項49に記載のシステム。 - 【請求項51】 前記PEが、前記ブール組合せを各ACF生成ユニットか
ら受け取り、前記ブール組合せをシーケンスプロセッサ(SP)中の分岐ロジッ
クに制御可能に切り替えるために接続されるマルチプレクサを更に備えることを
特徴とする請求項49に記載のシステム。 - 【請求項52】 前記PEが、各実行ユニットの出力に切り替え可能に接続
される算術スカラフラグ(ASF)ラッチを更に備えることを特徴とする請求項
49に記載のシステム。 - 【請求項53】 複合条件を生成するためのシステムであって、 レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと
、 プロセッサパイプライン中の登録された命令から導出される命令制御線であっ
て、命令中で指定されるように条件付きオペレーションを制御するために条件付
き実行制御線を含む命令制御線と、 結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、 命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持する
ための第1ラッチと、 命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための
、条件付き実行制御線に接続された第2ラッチと、 複数の算術条件フラグ(ACF)の現在選択した状態を提供するための算術条
件フラグ(ACF)生成ユニットと、 ACF用に前の状態を格納し、前の状態を前記ACF生成ユニットにフィード
バックするためのACFラッチと、 を有することを特徴とするシステム。 - 【請求項54】 コントローラ(SP)及び少なくとも2つの処理要素(P
E)を備える単一命令多重データストリーム(SIMD)機器であって、 前記SIMDマシン中の各PEが、 レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと
、 プロセッサパイプライン中の、前記SPから受け取られた登録された命令から
導出される命令制御線であって、命令中で指定されるように条件付きオペレーシ
ョンを制御するために条件付き実行制御線を含む命令制御線と、 結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、 命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持する
ための第1ラッチと、 命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための
、条件付き実行制御線に接続された第2ラッチと、 複数の算術条件フラグ(ACF)の現在選択した状態を提供するための算術条
件フラグ(ACF)生成ユニットと、 ACF用に前の状態を格納し、前の状態を前記ACF生成ユニットにフィード
バックするためのACFラッチと、 を有することを特徴とするマシン。 - 【請求項55】 間接超長命令語(VLIW)処理システムであって、 VIMメモリ内のスロット中に命令を格納するためのVLIW命令メモリ(V
IM)を有する第1処理要素(PE)と、 命令タイプを定義する複数のグループビットと、実行ユニットタイプを定義す
る複数のユニットフィールドビットとを有する機能命令を格納するための第1レ
ジスタと、 複数のグループビット及び複数のユニットフィールドビットをデコードするた
めの事前デコーダと、 前記デコーディングに基づいて機能命令をVIM中の前記スロットのうちの適
切な1つにロードするためのロード機構とを備え、 第1プロセッサが、 少なくとも2つの実行ユニットを備え、各実行ユニットがレジスタファイルか
ら少なくとも2つのオペランドを受け取り、 各実行ユニットが、プロセッサパイプライン中の登録された命令から導出され
る命令制御線を有し、命令制御線が、実行すべき命令中で指定されるように条件
付きオペレーションを制御するために条件付き実行制御線を含み、 各実行ユニットが、結果及びラッチされた算術スカラ条件状態を生成し、 各実行ユニットが、命令がその実行状態を完了した後に、命令用に算術スカラ
条件状態を保持するための第1ラッチを有し、 各実行ユニットが、命令がその実行状態を完了した後に、命令用に命令制御信
号を保持するための、条件付き実行制御線に接続された第2ラッチを有し、 各実行ユニットが、複数の算術条件フラグ(ACF)の現在選択した状態を提
供するための算術条件フラグ(ACF)生成ユニットを有し、 ACF用に前の状態を格納し、前の状態を各ACF生成ユニットにフィードバ
ックするための全ての実行ユニットについての単一ACFラッチを備えることを
特徴とするシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/238,446 US6366999B1 (en) | 1998-01-28 | 1999-01-28 | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US09/238,446 | 1999-01-28 | ||
PCT/US2000/001803 WO2000045282A1 (en) | 1999-01-28 | 2000-01-24 | Methods and apparatus to support conditional execution in a vliw-based array processor with subword execution |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009241873A Division JP4879307B2 (ja) | 1999-01-28 | 2009-10-20 | プロセッサでの条件付き実行をサポートする装置及びその方法 |
JP2011195330A Division JP5474014B2 (ja) | 1999-01-28 | 2011-09-07 | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003520360A true JP2003520360A (ja) | 2003-07-02 |
JP4943584B2 JP4943584B2 (ja) | 2012-05-30 |
Family
ID=22897931
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000596471A Expired - Fee Related JP4943584B2 (ja) | 1999-01-28 | 2000-01-24 | 超長命令語の条件付き実行をサポートする方法 |
JP2009241873A Expired - Fee Related JP4879307B2 (ja) | 1999-01-28 | 2009-10-20 | プロセッサでの条件付き実行をサポートする装置及びその方法 |
JP2011195330A Expired - Fee Related JP5474014B2 (ja) | 1999-01-28 | 2011-09-07 | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009241873A Expired - Fee Related JP4879307B2 (ja) | 1999-01-28 | 2009-10-20 | プロセッサでの条件付き実行をサポートする装置及びその方法 |
JP2011195330A Expired - Fee Related JP5474014B2 (ja) | 1999-01-28 | 2011-09-07 | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (5) | US6366999B1 (ja) |
EP (1) | EP1196855B1 (ja) |
JP (3) | JP4943584B2 (ja) |
AT (1) | ATE469391T1 (ja) |
DE (1) | DE60044460D1 (ja) |
IL (1) | IL144562A0 (ja) |
WO (1) | WO2000045282A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005174293A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
JP2007041781A (ja) * | 2005-08-02 | 2007-02-15 | Fujitsu Ltd | リコンフィグ可能な集積回路装置 |
JP2007141246A (ja) * | 2005-11-22 | 2007-06-07 | Intel Corp | ベクトルマスク設定技術 |
JP2007526571A (ja) * | 2004-03-02 | 2007-09-13 | イマジネイション テクノロジーズ リミテッド | Simdデバイスにおける制御フロー管理のための方法及び装置 |
JP2011086158A (ja) * | 2009-10-16 | 2011-04-28 | Mitsubishi Electric Corp | 並列信号処理装置 |
JP2012033176A (ja) * | 1999-01-28 | 2012-02-16 | Altera Corp | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
EP2600241A2 (en) | 2011-11-30 | 2013-06-05 | Renesas Electronics Corporation | VLIW processor, instruction structure, and instruction execution method |
JP2016504699A (ja) * | 2013-01-29 | 2016-02-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 並列パイプラインにおいてブランチを分岐するためのハードウェアおよびソフトウェアソリューション |
JP2016508640A (ja) * | 2013-01-29 | 2016-03-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ハードウェアポインタを使用したsimdコア内での分岐ブランチに対するソリューション |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE59710317D1 (de) | 1996-12-27 | 2003-07-24 | Pact Inf Tech Gmbh | VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US6826522B1 (en) * | 1999-06-21 | 2004-11-30 | Pts Corporation | Methods and apparatus for improved efficiency in pipeline simulation and emulation |
GB2352536A (en) | 1999-07-21 | 2001-01-31 | Element 14 Ltd | Conditional instruction execution |
US6842811B2 (en) * | 2000-02-24 | 2005-01-11 | Pts Corporation | Methods and apparatus for scalable array processor interrupt detection and response |
WO2001067234A2 (en) * | 2000-03-08 | 2001-09-13 | Sun Microsystems, Inc. | Vliw computer processing architecture having a scalable number of register files |
US7080234B2 (en) * | 2000-03-08 | 2006-07-18 | Sun Microsystems, Inc. | VLIW computer processing architecture having the problem counter stored in a register file register |
TW514931B (en) * | 2000-09-29 | 2002-12-21 | Agilent Technologies Inc | Apparatus and method for performing conditional calculations |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US20020083311A1 (en) * | 2000-12-27 | 2002-06-27 | Paver Nigel C. | Method and computer program for single instruction multiple data management |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US8843928B2 (en) | 2010-01-21 | 2014-09-23 | Qst Holdings, Llc | Method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
US20020184291A1 (en) * | 2001-05-31 | 2002-12-05 | Hogenauer Eugene B. | Method and system for scheduling in an adaptable computing engine |
US7861071B2 (en) * | 2001-06-11 | 2010-12-28 | Broadcom Corporation | Conditional branch instruction capable of testing a plurality of indicators in a predicate register |
US7127593B2 (en) | 2001-06-11 | 2006-10-24 | Broadcom Corporation | Conditional execution with multiple destination stores |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
US6874079B2 (en) * | 2001-07-25 | 2005-03-29 | Quicksilver Technology | Adaptive computing engine with dataflow graph based sequencing in reconfigurable mini-matrices of composite functional blocks |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
GB2382673B (en) * | 2001-10-31 | 2005-10-26 | Alphamosaic Ltd | A vector processing system |
GB2382886B (en) * | 2001-10-31 | 2006-03-15 | Alphamosaic Ltd | Vector processing system |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US7062762B2 (en) * | 2001-12-12 | 2006-06-13 | Texas Instruments Incorporated | Partitioning symmetric nodes efficiently in a split register file architecture |
US7215701B2 (en) * | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
JP3851228B2 (ja) | 2002-06-14 | 2006-11-29 | 松下電器産業株式会社 | プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム |
US7043599B1 (en) | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US7194609B2 (en) * | 2002-08-08 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | Branch reconfigurable systems and methods |
US6865662B2 (en) * | 2002-08-08 | 2005-03-08 | Faraday Technology Corp. | Controlling VLIW instruction operations supply to functional units using switches based on condition head field |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US7299343B2 (en) * | 2002-09-27 | 2007-11-20 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | System and method for cooperative execution of multiple branching instructions in a processor |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US20060095743A1 (en) * | 2002-11-20 | 2006-05-04 | Koninklijke Philips Electronics N.V. | Vliw processor with copy register file |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
TW594570B (en) * | 2003-04-15 | 2004-06-21 | Sunplus Technology Co Ltd | Processor for executing conditional instruction and the method thereof |
EP1620791A2 (en) * | 2003-04-29 | 2006-02-01 | Koninklijke Philips Electronics N.V. | Zero overhead branching and looping in time-stationary processors |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
JP4283131B2 (ja) * | 2004-02-12 | 2009-06-24 | パナソニック株式会社 | プロセッサ及びコンパイル方法 |
US7299339B2 (en) * | 2004-08-30 | 2007-11-20 | The Boeing Company | Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework |
KR100722770B1 (ko) * | 2005-01-31 | 2007-05-30 | 재단법인서울대학교산학협력재단 | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 |
US7904698B2 (en) | 2005-02-14 | 2011-03-08 | Koninklijke Philips Electronics N.V. | Electronic parallel processing circuit for performing jump instructions |
EP1870803A4 (en) * | 2005-03-31 | 2008-04-30 | Matsushita Electric Ind Co Ltd | PROCESSOR |
US20060294345A1 (en) * | 2005-06-23 | 2006-12-28 | Tellabs Operations, Inc. | Methods and apparatus for implementing branching instructions within a processor |
DE102005050382B4 (de) * | 2005-10-20 | 2012-08-09 | Infineon Technologies Ag | Prozessor zum Prüfen einer Bedingung für eine bedingte Ausführung eines Programmbefehls |
AT503171A2 (de) * | 2006-01-16 | 2007-08-15 | On Demand Microelectronics Gmb | Verfahren und prozessoreinrichtung zur bedingten ausführung von instruktionen |
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
US20090046105A1 (en) | 2007-08-15 | 2009-02-19 | Bergland Tyson J | Conditional execute bit in a graphics processor unit pipeline |
US7818552B2 (en) * | 2007-12-20 | 2010-10-19 | The United States Of America As Represented By The Secretary Of The Army | Operation, compare, branch VLIW processor |
US8990543B2 (en) * | 2008-03-11 | 2015-03-24 | Qualcomm Incorporated | System and method for generating and using predicates within a single instruction packet |
US8356162B2 (en) * | 2008-03-18 | 2013-01-15 | International Business Machines Corporation | Execution unit with data dependent conditional write instructions |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
KR101645001B1 (ko) | 2009-02-18 | 2016-08-02 | 삼성전자주식회사 | Vliw 명령어 생성 장치 및 그 방법과 vliw 명령어를 처리하는 vliw 프로세서 및 그 방법 |
US9678754B2 (en) * | 2010-03-03 | 2017-06-13 | Qualcomm Incorporated | System and method of processing hierarchical very long instruction packets |
US9652242B2 (en) | 2012-05-02 | 2017-05-16 | Apple Inc. | Apparatus for predicate calculation in processor instruction set |
US9632777B2 (en) | 2012-08-03 | 2017-04-25 | International Business Machines Corporation | Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry |
US9575755B2 (en) | 2012-08-03 | 2017-02-21 | International Business Machines Corporation | Vector processing in an active memory device |
US9569211B2 (en) * | 2012-08-03 | 2017-02-14 | International Business Machines Corporation | Predication in a vector processor |
US9594724B2 (en) | 2012-08-09 | 2017-03-14 | International Business Machines Corporation | Vector register file |
US9558003B2 (en) * | 2012-11-29 | 2017-01-31 | Samsung Electronics Co., Ltd. | Reconfigurable processor for parallel processing and operation method of the reconfigurable processor |
US9256427B2 (en) | 2012-12-11 | 2016-02-09 | International Business Machines Corporation | Tracking multiple conditions in a general purpose register and instruction therefor |
GB2551291B (en) | 2013-05-23 | 2018-02-14 | Linear Algebra Tech Limited | Corner detection |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US9934043B2 (en) | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
US9910675B2 (en) | 2013-08-08 | 2018-03-06 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for low power computational imaging |
US9727113B2 (en) | 2013-08-08 | 2017-08-08 | Linear Algebra Technologies Limited | Low power computational imaging |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
CN103607195A (zh) * | 2013-10-17 | 2014-02-26 | 陕西万达信息工程有限公司 | 一种二加数时序单元 |
US9196017B2 (en) | 2013-11-15 | 2015-11-24 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for removing noise from an image |
US9270872B2 (en) | 2013-11-26 | 2016-02-23 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for removing shading effect from image |
US9507565B1 (en) | 2014-02-14 | 2016-11-29 | Altera Corporation | Programmable device implementing fixed and floating point functionality in a mixed architecture |
US10460704B2 (en) | 2016-04-01 | 2019-10-29 | Movidius Limited | Systems and methods for head-mounted display adapted to human visual mechanism |
US10949947B2 (en) | 2017-12-29 | 2021-03-16 | Intel Corporation | Foveated image rendering for head-mounted display devices |
CN108804138A (zh) * | 2018-06-05 | 2018-11-13 | Oppo(重庆)智能科技有限公司 | 应用操作优化方法、装置、存储介质及终端设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998033115A1 (fr) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | Processeur de donnees |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2177526B (en) * | 1985-06-24 | 1990-02-14 | Pixar | Selective operation of processing elements in a single instruction, multiple data stream (simd)computer system |
US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
US4827403A (en) * | 1986-11-24 | 1989-05-02 | Thinking Machines Corporation | Virtual processor techniques in a SIMD multiprocessor array |
US4896265A (en) * | 1988-03-28 | 1990-01-23 | General Electric Company | Parallel broadcasting method and apparatus |
US5202967A (en) * | 1988-08-09 | 1993-04-13 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
US5101484A (en) * | 1989-02-14 | 1992-03-31 | Intel Corporation | Method and apparatus for implementing an iterative program loop by comparing the loop decrement with the loop value |
US5349671A (en) * | 1989-03-23 | 1994-09-20 | Matsushita Electric Industrial Co., Ltd. | Microprocessor system generating instruction fetch addresses at high speed |
WO1991004536A1 (en) * | 1989-09-20 | 1991-04-04 | Dolphin Server Technology A/S | Instruction cache architecture for parallel issuing of multiple instructions |
JP2507638B2 (ja) * | 1989-12-01 | 1996-06-12 | 三菱電機株式会社 | デ―タ処理装置 |
US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
EP0474297B1 (en) * | 1990-09-05 | 1998-06-10 | Koninklijke Philips Electronics N.V. | Very long instruction word machine for efficient execution of programs with conditional branches |
JP2984463B2 (ja) * | 1991-06-24 | 1999-11-29 | 株式会社日立製作所 | マイクロコンピュータ |
US5493687A (en) * | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5926644A (en) * | 1991-10-24 | 1999-07-20 | Intel Corporation | Instruction formats/instruction encoding |
US5581773A (en) * | 1992-05-12 | 1996-12-03 | Glover; Michael A. | Massively parallel SIMD processor which selectively transfers individual contiguously disposed serial memory elements |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
GB2273377A (en) * | 1992-12-11 | 1994-06-15 | Hughes Aircraft Co | Multiple masks for array processors |
US5465374A (en) * | 1993-01-12 | 1995-11-07 | International Business Machines Corporation | Processor for processing data string by byte-by-byte |
US5737561A (en) * | 1993-01-22 | 1998-04-07 | Intel Corporation | Method and apparatus for executing an instruction with multiple brancing options in one cycle |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
JPH06314203A (ja) * | 1993-04-28 | 1994-11-08 | Fujitsu Ltd | コンパイラの最適化方法および装置 |
US5528550A (en) * | 1993-05-28 | 1996-06-18 | Texas Instruments Incorporated | Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit |
JP2832899B2 (ja) * | 1993-05-31 | 1998-12-09 | 松下電器産業株式会社 | データ処理装置およびデータ処理方法 |
JP2536726B2 (ja) * | 1993-07-07 | 1996-09-18 | 日本電気株式会社 | マイクロプロセッサ |
US5815680A (en) * | 1993-09-27 | 1998-09-29 | Ntt Mobile Communications Network, Inc. | SIMD multiprocessor with an interconnection network to allow a datapath element to access local memories |
US5537560A (en) * | 1994-03-01 | 1996-07-16 | Intel Corporation | Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
JP3105738B2 (ja) * | 1994-06-10 | 2000-11-06 | 日本電気株式会社 | 情報処理装置 |
US5481693A (en) * | 1994-07-20 | 1996-01-02 | Exponential Technology, Inc. | Shared register architecture for a dual-instruction-set CPU |
US5649135A (en) * | 1995-01-17 | 1997-07-15 | International Business Machines Corporation | Parallel processing system and method using surrogate instructions |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
JP3454393B2 (ja) * | 1995-05-11 | 2003-10-06 | 株式会社日立製作所 | データ処理装置 |
US5768574A (en) * | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor |
US5920713A (en) * | 1995-10-06 | 1999-07-06 | Advanced Micro Devices, Inc. | Instruction decoder including two-way emulation code branching |
JPH09106346A (ja) * | 1995-10-11 | 1997-04-22 | Oki Electric Ind Co Ltd | 並列計算機 |
JP3524240B2 (ja) * | 1995-11-08 | 2004-05-10 | 沖電気工業株式会社 | 並列命令処理装置 |
US5819080A (en) * | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
JP2000515270A (ja) * | 1996-01-24 | 2000-11-14 | サン・マイクロシステムズ・インコーポレイテッド | ネットワークまたはローカルメモリから受け取った命令セットの実行のための二重命令セットプロセッサ |
US5802360A (en) * | 1996-05-01 | 1998-09-01 | Lucent Technologies Inc. | Digital microprocessor device having dnamically selectable instruction execution intervals |
US5860017A (en) * | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
JP3442225B2 (ja) * | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
JPH1049368A (ja) * | 1996-07-30 | 1998-02-20 | Mitsubishi Electric Corp | 条件実行命令を有するマイクロプロセッサ |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US5805850A (en) * | 1997-01-30 | 1998-09-08 | International Business Machines Corporation | Very long instruction word (VLIW) computer having efficient instruction code format |
US5872965A (en) * | 1997-06-30 | 1999-02-16 | Sun Microsystems, Inc. | System and method for performing multiway branches using a visual instruction set |
EP1029266B1 (en) * | 1997-11-07 | 2007-05-16 | Altera Corporation | METHOD AND APPARATUS FOR EFFICIENT SYNCHRONOUS MIMD OPERATIONS WITH iVLIW PE-to-PE COMMUNICATION |
US6061707A (en) * | 1998-01-16 | 2000-05-09 | International Business Machines Corporation | Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
-
1999
- 1999-01-28 US US09/238,446 patent/US6366999B1/en not_active Expired - Lifetime
-
2000
- 2000-01-24 AT AT00911637T patent/ATE469391T1/de not_active IP Right Cessation
- 2000-01-24 JP JP2000596471A patent/JP4943584B2/ja not_active Expired - Fee Related
- 2000-01-24 EP EP00911637A patent/EP1196855B1/en not_active Expired - Lifetime
- 2000-01-24 IL IL14456200A patent/IL144562A0/xx unknown
- 2000-01-24 WO PCT/US2000/001803 patent/WO2000045282A1/en active Application Filing
- 2000-01-24 DE DE60044460T patent/DE60044460D1/de not_active Expired - Lifetime
-
2002
- 2002-04-01 US US10/114,652 patent/US6760831B2/en not_active Expired - Lifetime
-
2003
- 2003-08-28 US US10/650,340 patent/US7010668B2/en not_active Expired - Fee Related
- 2003-08-28 US US10/650,301 patent/US6954842B2/en not_active Expired - Fee Related
- 2003-11-20 US US10/718,415 patent/US7146487B2/en not_active Expired - Fee Related
-
2009
- 2009-10-20 JP JP2009241873A patent/JP4879307B2/ja not_active Expired - Fee Related
-
2011
- 2011-09-07 JP JP2011195330A patent/JP5474014B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998033115A1 (fr) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | Processeur de donnees |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012033176A (ja) * | 1999-01-28 | 2012-02-16 | Altera Corp | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
JP2005174293A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
JP2011048859A (ja) * | 2003-12-09 | 2011-03-10 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
JP2007526571A (ja) * | 2004-03-02 | 2007-09-13 | イマジネイション テクノロジーズ リミテッド | Simdデバイスにおける制御フロー管理のための方法及び装置 |
JP2007041781A (ja) * | 2005-08-02 | 2007-02-15 | Fujitsu Ltd | リコンフィグ可能な集積回路装置 |
JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
JP2012142021A (ja) * | 2005-11-22 | 2012-07-26 | Intel Corp | ベクトルマスク設定技術 |
JP2007141246A (ja) * | 2005-11-22 | 2007-06-07 | Intel Corp | ベクトルマスク設定技術 |
US9436468B2 (en) | 2005-11-22 | 2016-09-06 | Intel Corporation | Technique for setting a vector mask |
JP2011086158A (ja) * | 2009-10-16 | 2011-04-28 | Mitsubishi Electric Corp | 並列信号処理装置 |
EP2600241A2 (en) | 2011-11-30 | 2013-06-05 | Renesas Electronics Corporation | VLIW processor, instruction structure, and instruction execution method |
JP2013114608A (ja) * | 2011-11-30 | 2013-06-10 | Renesas Electronics Corp | Vliwプロセッサと命令構造と命令実行方法 |
KR20130061102A (ko) | 2011-11-30 | 2013-06-10 | 르네사스 일렉트로닉스 가부시키가이샤 | Vliw 프로세서와 명령 구조와 명령 실행 방법 |
US9250898B2 (en) | 2011-11-30 | 2016-02-02 | Renesas Electronics Corporation | VLIW processor, instruction structure, and instruction execution method |
US9606798B2 (en) | 2011-11-30 | 2017-03-28 | Renesas Electronics Corporation | VLIW processor, instruction structure, and instruction execution method |
JP2016504699A (ja) * | 2013-01-29 | 2016-02-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 並列パイプラインにおいてブランチを分岐するためのハードウェアおよびソフトウェアソリューション |
JP2016508640A (ja) * | 2013-01-29 | 2016-03-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ハードウェアポインタを使用したsimdコア内での分岐ブランチに対するソリューション |
US9639371B2 (en) | 2013-01-29 | 2017-05-02 | Advanced Micro Devices, Inc. | Solution to divergent branches in a SIMD core using hardware pointers |
US9830164B2 (en) | 2013-01-29 | 2017-11-28 | Advanced Micro Devices, Inc. | Hardware and software solutions to divergent branches in a parallel pipeline |
Also Published As
Publication number | Publication date |
---|---|
EP1196855A4 (en) | 2007-02-21 |
JP4943584B2 (ja) | 2012-05-30 |
US20040107333A1 (en) | 2004-06-03 |
WO2000045282A1 (en) | 2000-08-03 |
IL144562A0 (en) | 2002-05-23 |
DE60044460D1 (de) | 2010-07-08 |
US7146487B2 (en) | 2006-12-05 |
JP2012033176A (ja) | 2012-02-16 |
US6760831B2 (en) | 2004-07-06 |
JP4879307B2 (ja) | 2012-02-22 |
US6366999B1 (en) | 2002-04-02 |
US7010668B2 (en) | 2006-03-07 |
ATE469391T1 (de) | 2010-06-15 |
JP5474014B2 (ja) | 2014-04-16 |
US6954842B2 (en) | 2005-10-11 |
JP2010067278A (ja) | 2010-03-25 |
US20040049664A1 (en) | 2004-03-11 |
EP1196855B1 (en) | 2010-05-26 |
EP1196855A1 (en) | 2002-04-17 |
US20040039899A1 (en) | 2004-02-26 |
US20020178345A1 (en) | 2002-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5474014B2 (ja) | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 | |
US6356994B1 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
JP4156794B2 (ja) | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 | |
JP3149348B2 (ja) | 代理命令を用いる並列処理システム及び方法 | |
US6851041B2 (en) | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor | |
JP4657455B2 (ja) | データプロセッサ | |
Kuehn et al. | The Horizon supercomputing system: architecture and software | |
JP3120152B2 (ja) | コンピューターシステム | |
US5203002A (en) | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle | |
US20090300337A1 (en) | Instruction set design, control and communication in programmable microprocessor cases and the like | |
US8671266B2 (en) | Staging register file for use with multi-stage execution units | |
JP2003005954A (ja) | データ処理装置およびその制御方法 | |
US7668193B2 (en) | Data processor unit for high-throughput wireless communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051205 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090427 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090721 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100604 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100827 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101203 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110907 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20111114 |
|
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: 20120203 |
|
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: 20120301 |
|
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: 20150309 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |