JP2010067278A - プロセッサでの条件付き実行をサポートする装置及びその方法 - Google Patents
プロセッサでの条件付き実行をサポートする装置及びその方法 Download PDFInfo
- Publication number
- JP2010067278A JP2010067278A JP2009241873A JP2009241873A JP2010067278A JP 2010067278 A JP2010067278 A JP 2010067278A JP 2009241873 A JP2009241873 A JP 2009241873A JP 2009241873 A JP2009241873 A JP 2009241873A JP 2010067278 A JP2010067278 A JP 2010067278A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- acf
- condition
- 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 22
- 238000005311 autocorrelation function Methods 0.000 claims abstract description 14
- 230000015654 memory Effects 0.000 claims description 22
- 230000007246 mechanism Effects 0.000 claims description 17
- 238000012360 testing method Methods 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 13
- 150000001875 compounds Chemical class 0.000 claims description 11
- 239000002131 composite material Substances 0.000 claims description 5
- 230000009291 secondary effect Effects 0.000 claims 2
- 238000012546 transfer Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 230000009467 reduction Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 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
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 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
- 230000002093 peripheral effect Effects 0.000 description 1
Images
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
【解決手段】汎用フラグ(ACF)(571又は561)は、階層1,2または3ビットエンコーディングを使用して定義され、エンコードされる。加えられた各ビットは、前の機能性のスーパーセットを提供する。ACFの生成(578又は568)は、プログラマによって指定することができる。プログラマが、条件を転送するための処理要素の間の通信インターフェースを使用して、異なるプロセッサ中で生成された条件に基づいて1つのプロセッサ中の条件付き実行を指定することを可能にして、多数のPEは、条件情報を同時に生成することができる。多数のプロセッサアレイ中の各プロセッサは、異なるユニットをそれらのACFに基づいて条件付きで独立に動作させることができる。
【選択図】図5B
Description
本出願は、「Method and Apparatus to Support Conditional Execution in a VLIW-Based Array Processor with Subword Execution」という名称の米国仮出願第60/072915号の特典を主張する。
ManArrayアーキテクチャは、例えば比較命令の結果など、命令実行の指定した結果を格納する1組の算術条件フラグ(ACF)を定義する。これらのACFは、一般化条件付き実行に対して使用される。分岐待ち時間を最小にするために、ほぼ全ての命令は、ACFに基づいて条件付きで実行することができる。PEのアレイ中の各PE中で条件付きで実行すべき命令に対しては、テスト可能条件は、各PE中でローカルに生成しなければならない。このローカルテスト可能条件は、iVLIWがパック化データタイプに関して実行するために各PE中で実行することができる多数の条件から導出される。命令ストリームのサイクルごとの条件付き実行に対しては、命令コーディングは、命令を実行するかどうかを決定するために、どの条件を使用するかを指定できなければならない。多くのタイプの条件があるので、各命令フォーマット中で指定を適切に行うために4つ以上のビットを確保しなければならないことになる。条件付き分岐は一般に単一条件テストを指定し、マルチメディアデータ依存コードは、主に単一条件テスティングを利用することが予想されるので、本明細書では、単一レベルの条件付き実行は、より複雑なネストされた条件付き実行のシナリオに亙って最良の性能利得を提供することになると仮定する。しかし、本明細書で論じる本発明の概念は、単一レベルの条件付き実行の状況のもとで作成されるものの、条件フラグの多数のセットを有する、より複雑にネストされた条件は、この教示によって除外されない。これを念頭におくと、ManArray条件付き実行についてのプログラミングモデルでは、パック化データiVLIWオペレーションの後に得られる条件状態情報の量を軽減するために、どのようにACFを設定すべきかについての指定が必要となる。
命令セットの特性は、ある命令を使用する際に、プログラマがACF条件フラグをどのように設定するかを指定する必要があることである。図2Aに示すような命令20などのALU比較命令については、プログラマは、どの図2Bの条件テストCC202を、ACF F7〜F0をセットする際に使用するかを指定しなければならない。例えば、「以上(GE)」205或いは「以下(LE)」207などの有効条件結果を、適切なACFを設定するために指定することができる。図2Bで示すように、記号は論理ORオペレーションを表す。&&記号はANDオペレーションを表し、!記号は等しくないことを表す。
条件付き実行の仕様についての階層フォーマットは、命令ビットのより良い使用法を可能にする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に影響を与える。
以下の表3に示すようなCE1 1ビット拡張フィールドを有するオペコードは、ACFに影響を与えずに、真のときに条件付きで実行するか、無条件で実行することができる。ASFは、命令によって定義されるように設定される。例えば、図4Aの命令400などのロード及びストア命令は、ACFフラグに決して影響を与えず、真の条件時に条件付きで実行することができる。
以下の表4に示すようなCE2の2ビット拡張フィールドを有するオペコードは、真または偽に対して条件付きで実行したり、無条件で実行し、かつACFに影響を与えない、または命令特有の条件付き実行機能を提供することができる。ASFは、命令によって定義されるように設定される。ビット0及び1でCE2の2ビット拡張フィールドを有する例示的コピー命令エンコーディング410を図4Bに示す。
以下の表5に示すような条件付き実行CE3aの3ビット実行フィールドを用いたDSU固有命令シフト/回転、受信タイプ、浮動小数点/整数変換命令、及び他を選択(select others)は、命令をどのように実行すべきか、ACFがどのように影響を受けるかを指定する。C,N,Z,及びVフラグは、実行中の命令からの副次効果を表す。□が+,−,×,論理ORなどの算術関数であるとして、A←X□YまたはX←X□Y□Zの形の算術命令は、フラグに影響を与えることなく、真または偽条件に対して条件付きで実行することができる。それらは、フラグに影響を与えることなく無条件で実行、または無条件で実行し、条件C,V,N又はZフラグのうちの1つに基づくフラグに影響を与えることができる。
CE3bの3ビットアーキテクチャでアドレス指定される3つの状況がある。第1の状況は、オペレーションを無条件で実行することである。第2は、全てのパック化データ要素に対するオペレーションを条件付きで実行することである。第3は、どのデータ要素を条件付きで実行すべきかを選択することである。この第1ケースでは、オペレーションは、いつでも全てのデータ要素に対して実行される。第2ケースでは、オペレーションは、全てのデータ要素に対して実行されるか、全く実行されないかのいずれかである。第3ケースでは、オペレーションはいつでも実行されるが、指定した真又は偽コーディングについての適切な値の対応するACFを有するデータ要素に対してのみ実行される。この第3のケースでは、パック化データ命令は、SP中の宛先レジスタの更新の点で部分的に実行するか、又は対応するACFが指定された条件の場合だけ、PE中で並列に実行すると考えられる。全ての3つの手法は、CE3bエンコーディングを使用することによって利用可能である。CE3bの3ビット実行フィールドを備えるビット3,4,及び5を有する例示的な論理命令エンコーディング420を図4Cに示す。
本明細書で説明するManArrayアーキテクチャは、スカラ条件フラグC,V,N,またはZ,ならびにACFに基づくSP中の無条件及び条件付き分岐タイプ命令をサポートする。ACFを設定するための条件コードは、比較命令、ならびに図2Bに示す他の具体的に定義された命令中で指定されるので、制御コードがスカラ条件付き分岐命令を利用することができるものの、条件付き分岐は、真に対する分岐または偽に対する分岐だけしか指定する必要がない。パック化データに対する命令によって生成された多数の条件を収容するために、分岐命令は、全て(AND縮小)又は任意(OR縮小)の縮小オペレーションも指定しなければならない。1つのオペレーションだけがあるときに、2つの縮小は等しいものの、非パック化単一データ(MONO)オペレーションに対する命令は、直交性に対するパック化データオペレーションのサブセットとして扱われる。
比較命令は、いつでも実行され、いつでもフラグに影響を与える。汎用フラグ(ACF)は、比較命令の一部として指定される条件コードに基づいて影響を受ける。条件の組合せを使用して、フラグの前の状態は、現行比較命令によって指定される条件コードテストの結果と共に組み合わせることができる。この手法により、複合条件を多重分岐に復元することなく作成することが可能となる。図2Bでは、CCは、「より大(GT)」206、「より小(LT)」208、「等しい(EQ)」204、または「以下(LEQ)」207などの条件コード202を表す。図2Aの比較(CMPcc)命令200は、テストすべき所望の条件CC(図2B)、比較すべき2つのソースレジスタ、パック化形態をカバーするデータタイプ、及びCCombと符号を付けたブール組合せ指定フィールドを指定する。
VLIWメモリ(VIM)中に格納される各命令は、そのCE1、CE2又はCE3a/b仕様を含む。VLIWが実行VLIW(XV)命令に応答して実行されるために読み出されるとき、個々のユニット内に多数のフラグを生成することができる。ACFの1つのセットがあり、潜在的にVLIW中の各命令がフラグに影響を与える可能性があるので、どの算術ユニットがある所与のサイクルのためのフラグに対して影響を与えることになるかを選ぶための選択機構が必要である。本発明によるManArrayの1つの実施形態では、これを達成するための2つの機構がある。これらの機構は、それぞれSIMD及び同期多重命令多重データストリーム(SMIMD)コードの必要を満たす。
PE DSU受信命令(PEXCHG)は、PE間の通信オペレーションを指定する。このPEXCHG命令により、ACF及びASFを含むプログラマ可視ステータスレジスタにアクセス可能にすることによって、1つのPEから別のPEに条件状態情報を効果的に転送することが可能となる。SP受信命令(SPRECV)は、条件をPEとSPとの間で伝送するために使用することができる。条件状態は、異なるPEの計算レジスタファイル中に受信されることになり、次いで、それ自体のプログラマ可視フラグレジスタにコピーすることができ、条件付き実行のために使用される。
現在、図4CのCE3フィールド422、又は図4BのCE2フィールド412を有する各命令は、それぞれ表5及び6及び表4に示すように予約される少なくとも1つのエンコーディングを有する。以下の機構は、命令が算術条件フラグ(F7〜F0)を「SetCC」命令によって特定されるプログラム可能「複合条件」で更新することが可能となるように、この予約エンコーディングを使用することになる。例として、予約フィールドを使用するためのCE2のエンコーディングを以下の表9に示す。CE3a及びCE3bフィールドはどちらも、それらの等しい予約エンコーディングに対する同じエンコーディング定義を使用することになる。
図5Aは、本発明による条件付き処理の実装に適する条件付き処理ハードウェア500の態様を示す。ハードウェア500は、例えば算術論理ユニット(ALU)、または図1のManArrayアーキテクチャの他の実行ユニットなどの算術ユニット510を含む。ALU510は、ManArrayレジスタファイルからオペランド507及び509を受け取る。命令制御線501は、プロセッサパイプライン中の登録した命令から導出される。この命令制御線は、命令中で指定されたように条件付きオペレーションを制御するために、条件付き実行制御線503を含む。図4Aは、ビット22がCE1フィールド402を有する例示的ロード直接命令400を示す。図4Bは、ビット1及び0がCE2フィールド412を表す例示的コピー命令410を示す。図4Cは、ビット5〜3がCE3bフィールド422を表す例示的論理命令420を示す。例えば加算器502などの算術ユニット510内の動作ユニットは、結果515及びラッチされた算術スカラ条件状態519を生成する。ラッチ512及び514は、実行サイクルの終わりでのラッチ入力値を保持し、したがって実行サイクルの終了した命令に対する算術スカラ条件及び命令制御信号を表す。実行ユニットに対するパイプラインは、実装に依存して変動する可能性があり、その結果、所望の条件付きオペレーションを達成するために、パイプライン効果を調節しなければならないことに留意されたい。結果515は、プロセッサまたは処理要素のレジスタファイルに送られる。算術スカラ条件信号519は、ACF生成ユニット508中で、信号選択及び条件組合せユニット506によって、実行された命令に対する制御505によって指示される通りにさらに処理される。ACF生成ユニットの出力521は、プログラマ可視レジスタ518中に格納される前のACF生成信号F7〜F0を表す。選択された命令に対するACF生成ユニットは、前の状態525と共に現在の選択された状態のブール組合せも提供する。前で示したように、多くの命令は、アーキテクチャによって指定されるように、フラグに影響を与えないことに留意されたい。これらの影響なし(no-affect)の場合では、フラグは、依然として前にセットされたのと同様である。マルチプレクサ520は、実行中の命令中で指定されるテストの結果に依存してレジスタファイル中に結果出力515を書き込むかどうかを制御するために、算術ユニット中の条件付きテストのための出力527として使用されるACF生成信号521またはACFラッチ518出力525のいずれかを選択する。マルチプレクサ520の出力527は、SP中の分岐ロジックのみに送られ、プログラマ可視ステータスビットを表すラッチ518中に次のサイクルでラッチされる。同様に、マルチプレクサ522は、ラッチされたCNVZラッチ出力517の部分、又はCNVZラッチ516の出力523のいずれかを、SP中の分岐ロジックのみに送り、プログラマ可視ステータスビットを表すラッチ516中に次のサイクルでラッチするために選択する。以下の表11に示すように、ラッチ中のこれらのビット516及び518は、CNVZ516の値がプログラマの可視ステータス及び制御レジスタ0(SCR0)のビット19〜16中にそれぞれ位置付けられる共通プログラマ可視ステータスレジスタ中で組み合わせることができ、ACF F7〜F0 518の値は、ビット7〜0中にそれぞれ位置付けられる。
Claims (55)
- 少なくとも1つの処理要素(PE)を備えるアレイ及びアレイ制御プロセッサを備えるSIMD機器であって、
前記アレイ制御プロセッサ及び前記PEのそれぞれが、
算術ユニット条件レジスタと、
分岐または条件付き実行のために使用される減縮条件情報を含む複数の汎用フラグ(ACF)と、
を有することを特徴とするSIMD機器。 - 前記複数のACFが、並行して動作するいくつかの実行ユニットからの条件情報を格納する1つまたは複数のビットを具備するフォーマットを有することを特徴とする請求項1に記載のSIMD機器。
- 条件付きで実行される命令を格納するための命令メモリを更に備え、前記命令の実行がACFに影響を与えないことを特徴とする請求項1に記載のSIMD機器。
- 前記SIMD機器がパック化データ命令に関して動作し、1つのACFが各パック化データオペレーションに対して影響を受けることを特徴とする請求項1に記載のSIMD機器。
- その中で多数のPEが利用され、異なるPEがACFに影響を与えるための異なるユニットを選択することを特徴とする請求項1に記載の装置。
- 条件付き実行をサブワード実行を伴う超長命令語(VLIW)ベースのアレイプロセッサでサポートする方法であって、
分岐または条件付き実行に対して使用される減縮条件情報を含む汎用フラグビット(ACF)を提供する工程と、
ACF中の条件を、条件を生成する命令中でエンコードされる条件コード仕様に基づいて指定し、設定する工程と、
を有することを特徴とする方法。 - 前記条件付き実行の命令がACFに影響を与えないことを特徴とする請求項6に記載の方法。
- 前記ACFに影響を与える命令が無条件で実行することを特徴とする請求項6に記載の方法。
- パック化データオペレーションの各サブワードの実行が、関連するサブワードACFに依存するパック化データ命令を実行する工程を更に含むことを特徴とする請求項6に記載の方法。
- 階層条件付き実行命令フォーマットであって、
命令を定義する複数の命令ビットと、
条件付き実行をサポートする各命令に対してオペコード拡張エンコーディングを提供する前記複数の命令ビットの3ビット、2ビット又は1ビットのサブセットと、
命令実行からの指定した結果を格納する1組の汎用算術条件フラグ(ACF)と、
1組の算術スカラ・フラグ(ASF)と、
を有することを特徴とする階層条件付き実行命令フォーマット。 - 前記1ビットのオペコード拡張が利用され、前記1ビットが1の場合に、前記命令が真のAFC条件に関して条件付きで実行するか、又は前記命令が前記1ビットがゼロの場合に前記AFCに影響を与えることなく、偽のAFC条件に関して条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 前記2ビットのオペコード拡張が利用され、両方のビットが真である場合に前記命令が無条件で実行され、前記ACFがSetCC命令によって定義されるように影響を受けることを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 前記SetCC命令が、指定された条件がどの実行ユニットに当てはまるかを指定する第1オペコード・エンコーディングフィールドを含むことを特徴とする請求項12に記載の階層条件付き実行命令フォーマット。
- 前記SetCC命令が、複数のテスト条件を指定する第2オペコード・エンコーディング・フィールドを含むことを特徴とする請求項13に記載の階層条件付き実行命令フォーマット。
- 各実行ユニットが異なる指定された条件を有するか、前記SetCC命令のALLエンコーディングが選ばれる場合に、全ての実行ユニットが同じ指定された条件を使用することを特徴とする請求項13に記載の階層条件付き実行命令フォーマット。
- オーバーフローがパック化データ実行内の何らかのデータオペレーションに関して生じたかどうかを検出するためにテスト条件を指定することができることを特徴とする請求項14に記載の階層条件付き実行命令フォーマット。
- 前記2ビットオペコード拡張が利用され、前記ビットのうちの一方が真、前記ビットの他方が偽である場合に、前記命令を前記ACFの状態に依存して前記ACFに影響を与えることなく条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 前記2ビットオペコード拡張が利用され、両方のビットが偽の場合に、前記命令を、前記ACFに影響を与えることなく無条件で実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 前記3ビットオペコード拡張が利用され、前記命令を、どのように前記ACFに基づいて無条件で、または条件付きで実行すべきか、どのように前記3ビットオペコード拡張のビットを使用することにより前記ACFが影響を受けるかを指定することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 前記ASFフラグの組が、実行中の命令からの副次効果を表し、前記3ビットのオペコード拡張の2つ以上のビットが真である場合に、前記AFCが前記ASFの組の条件のうちの1つに基づいて影響を受けることを特徴とする請求項15に記載の階層条件付き実行命令フォーマット。
- 前記ASFが桁上げ(C)、オーバーフロー(V)、符号(N)、及びゼロ(Z)フラグを含むことを特徴とする請求項20に記載の階層条件付き実行命令フォーマット。
- 前記3ビット・オペコード拡張が、パック化データ命令の1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利用され、前記3ビット・オペコード拡張中の全てのビットが偽である場合に、前記命令が、全ての前記データ要素上の命令によって指定されるオペレーションをACFに影響を与えることなく無条件に実行する請求項10に記載の階層条件付き実行命令フォーマット。
- 前記3ビットのオペコード拡張が、パック化データ命令の1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利用され、前記命令が、全ての前記データ要素上の命令によって指定されるAFCオペレーションの状態に基づいて条件付きで実行するか、又はオペレーショが全く行われないことを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 前記3ビットのオペコード拡張が、パック化データ命令の1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利用され、前記命令が、前記3ビットのオペコード拡張の指定された真または偽コーディングに対する適切な値の対応するACFフラグを有するデータ要素のみを条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。
- 条件生成の方法であって、
1組の算術条件フラグ(ACF)を定義する工程と、
命令に関する複数のスカラ条件の副次効果を命令ごとに決定する工程と、
前記決定した副次効果を保存するために1組の算術スカラフラグ(ASF)を設定する工程と、
比較命令を使用する条件コードを指定する工程と、
指定した条件コードに基づいて前記ACFを更新する工程と、
を有することを特徴とする方法。 - 前記ACFの前の状態を、複合条件を作成するために現行比較命令によって指定された条件コードテストの結果と組み合わせる工程を更に含むことを特徴とする請求項25に記載の方法。
- 前記条件コードが、より大(GT)、より小(LT)、等しい(EQ)、または以下(LEQ)などの条件を指定することを特徴とする請求項25に記載の方法。
- 前記比較命令が、テストすべき所望の条件と、比較すべき2つのソースレジスタとを指定するために更に使用されることを特徴とする請求項27に記載の方法。
- 前記比較命令が、パック化データ形態をカバーするデータタイプを指定するために更に使用されることを特徴とする請求項28に記載の方法。
- 前記比較命令が、ブール組合せ指定フィールドを指定するためにさらに使用されることを特徴とする請求項28に記載の方法。
- 作成された複合条件に基づいて、シーケンスプロセッサ(SP)中の分岐を制御する工程を更に有することを特徴とする請求項26に記載の方法。
- 作成された複合条件に基づく多数の条件のブール組合せからなる作成されたカプレックス(couplex)に基づいて、シーケンスプロセッサ(SP)及び少なくとも1つの処理要素(PE)中で条件付き実行を行う工程をさらに含むことを特徴とする請求項26に記載の方法。
- 作成された複合条件に基づいて、多数の条件の組合せに関して条件付きで実行する工程を更に含むことを特徴とする請求項26に記載の方法。
- 関係のブール組合せによって形成される複合条件を生成するためのシステムであって、
レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、
プロセッサパイプライン中の登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、
結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、
命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、
命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、
現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラグ(ACF)生成ユニットと、
前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、
を有することを特徴とするシステム。 - 前記ACFラッチは、プログラマ可視ラッチであることを特徴とする請求項34に記載のシステム。
- 前記ブール組合せを前記ACF生成ユニットから受け取り、前記ブール組合せ又は前記AFCラッチをシーケンスプロセッサ(SP)中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に有することを特徴とする請求項34に記載のシステム。
- 前記算術ユニットの前記第1ラッチ算術スカラ条件状態出力に切り替え可能に接続される算術スカラフラグ(ASF)ラッチを更に備えることを特徴とする請求項34に記載のシステム。
- 前記算術ユニット及び前記ASFラッチの前記第1ラッチ算術スカラ条件状態出力の切り替え可能接続が、制御可能マルチプレクサを備えることを特徴とする請求項37に記載のシステム。
- 前記制御可能マルチプレクサの出力が、前記算術スカラ条件状態またはASFラッチ出力を、前記シーケンスプロセッサ(SP)中の分岐ロジックへ制御可能に切り替えることを特徴とする請求項38に記載のシステム。
- 前記ASFラッチがプログラマ可視ラッチであることを特徴とする請求項37に記載のシステム。
- コントローラ(SP)及び少なくとも2つの処理要素(PE)を備える単一命令多重データストリーム(SIMD)機器であって、
前記SIMD機器の各PEが、
レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、
プロセッサパイプライン中の、前記SPから受け取られた登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、
結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、
命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、
命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、
現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラグ(ACF)生成ユニットと、
前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、
を有することを特徴とするSIMD機器。 - 各PEのACFラッチがプログラマ可視ラッチであることを特徴とする請求項41に記載のSIMD機器。
- 各PEが、前記ブール組合せを前記ACF生成ユニットから受け取り、前記ブール組合せ又は前記ACFラッチをシーケンスプロセッサ(SP)中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に有することを特徴とする請求項41に記載のSIMD機器。
- 各PEが、前記算術ユニットの前記第1ラッチ算術スカラ条件状態出力に切り替え可能に接続される算術スカラフラグ(ASF)ラッチを更に備えることを特徴とする請求項41に記載のSIMD機器。
- 各PEの算術ユニット及び前記ASFラッチの前記第1ラッチ算術スカラ条件状態出力の切り替え可能接続が、制御可能マルチプレクサを備えることを特徴とする請求項44に記載のSIMD機器。
- 各PEの制御可能マルチプレクサの出力が、前記算術スカラ条件状態又は前記ASFラッチ出力を、前記シーケンスプロセッサ(SP)中の分岐ロジックへ制御可能に切り替えることを特徴とする請求項45に記載のSIMD機器。
- 各PEの算術ユニットが、それぞれ関連する算術条件フラグ(ACF)生成ユニットを有する乗算累算ユニット(MAU)、算術論理ユニット(ALU)、及びデータ選択ユニット(DSU)を備える1組の実行ユニットのうちの1つであることを特徴とする請求項41に記載のSIMD機器。
- MAU、ALU、DSU及びACFラッチについてのACF生成ユニットからの出力が、マルチプレクサによって前記シーケンスプロセッサ中の分岐ロジックに制御可能に切り替えられることを特徴とする請求項47に記載のSIMD機器。
- 間接超長命令語(VLIW)処理システムであって、
VIMメモリ内のスロット中に命令を格納するためのVLIW命令メモリ(VIM)を有する第1処理要素(PE)と、
命令タイプを定義する複数のグループビットと、実行ユニットタイプを定義する複数のユニットフィールドビットとを有する機能命令を格納するための第1レジスタと、
複数のグループビット及び複数のユニットフィールドビットをデコードするための事前デコーダと、
前記デコーディングに基づいて機能命令をVIM中の前記スロットのうちの適切な1つにロードするためのロード機構とを備え、
第1プロセッサ更には、
少なくとも2つの実行ユニットを備え、各実行ユニットがレジスタファイルから少なくとも2つのオペランドを受け取り、
各実行ユニットが、プロセッサパイプライン中の登録された命令から導出される命令制御線を有し、命令制御線が、実行すべき命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含み、
各実行ユニットが、結果及びラッチされた算術スカラ条件状態を生成し、
各実行ユニットが、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチを有し、
各実行ユニットが、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチを有し、
各実行ユニットが、現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラグ(ACF)生成ユニットを有し、
前の状態を格納し、前の状態を各ACF生成ユニットにフィードバックするための全ての実行ユニットについての単一ACFラッチを備えることを特徴とするシステム。 - 前記ACFラッチがプログラマ可視ラッチであることを特徴とする請求項49に記載のシステム。
- 前記PEが、前記ブール組合せを各ACF生成ユニットから受け取り、前記ブール組合せをシーケンスプロセッサ(SP)中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に備えることを特徴とする請求項49に記載のシステム。
- 前記PEが、各実行ユニットの出力に切り替え可能に接続される算術スカラフラグ(ASF)ラッチを更に備えることを特徴とする請求項49に記載のシステム。
- 複合条件を生成するためのシステムであって、
レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、
プロセッサパイプライン中の登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、
結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、
命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、
命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、
複数の算術条件フラグ(ACF)の現在選択した状態を提供するための算術条件フラグ(ACF)生成ユニットと、
ACF用に前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、
を有することを特徴とするシステム。 - コントローラ(SP)及び少なくとも2つの処理要素(PE)を備える単一命令多重データストリーム(SIMD)機器であって、
前記SIMDマシン中の各PEが、
レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、
プロセッサパイプライン中の、前記SPから受け取られた登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、
結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、
命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、
命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、
複数の算術条件フラグ(ACF)の現在選択した状態を提供するための算術条件フラグ(ACF)生成ユニットと、
ACF用に前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、
を有することを特徴とするマシン。 - 間接超長命令語(VLIW)処理システムであって、
VIMメモリ内のスロット中に命令を格納するためのVLIW命令メモリ(VIM)を有する第1処理要素(PE)と、
命令タイプを定義する複数のグループビットと、実行ユニットタイプを定義する複数のユニットフィールドビットとを有する機能命令を格納するための第1レジスタと、
複数のグループビット及び複数のユニットフィールドビットをデコードするための事前デコーダと、
前記デコーディングに基づいて機能命令をVIM中の前記スロットのうちの適切な1つにロードするためのロード機構とを備え、
第1プロセッサが、
少なくとも2つの実行ユニットを備え、各実行ユニットがレジスタファイルから少なくとも2つのオペランドを受け取り、
各実行ユニットが、プロセッサパイプライン中の登録された命令から導出される命令制御線を有し、命令制御線が、実行すべき命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含み、
各実行ユニットが、結果及びラッチされた算術スカラ条件状態を生成し、
各実行ユニットが、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチを有し、
各実行ユニットが、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチを有し、
各実行ユニットが、複数の算術条件フラグ(ACF)の現在選択した状態を提供するための算術条件フラグ(ACF)生成ユニットを有し、
ACF用に前の状態を格納し、前の状態を各ACF生成ユニットにフィードバックするための全ての実行ユニットについての単一ACFラッチを備えることを特徴とするシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/238,446 | 1999-01-28 | ||
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 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000596471A Division JP4943584B2 (ja) | 1999-01-28 | 2000-01-24 | 超長命令語の条件付き実行をサポートする方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010067278A true JP2010067278A (ja) | 2010-03-25 |
JP4879307B2 JP4879307B2 (ja) | 2012-02-22 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000596471A Expired - Fee Related JP4943584B2 (ja) | 1999-01-28 | 2000-01-24 | 超長命令語の条件付き実行をサポートする方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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) |
Families Citing this family (97)
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 |
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 |
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 |
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 |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
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 |
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 |
US20040133745A1 (en) | 2002-10-28 | 2004-07-08 | Quicksilver Technology, Inc. | Adaptable datapath for a digital processing system |
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 |
US7127593B2 (en) * | 2001-06-11 | 2006-10-24 | Broadcom Corporation | Conditional execution with multiple destination stores |
US7861071B2 (en) * | 2001-06-11 | 2010-12-28 | Broadcom Corporation | Conditional branch instruction capable of testing a plurality of indicators in a predicate register |
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 |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
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 |
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 |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
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 |
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 |
US7194609B2 (en) * | 2002-08-08 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | Branch reconfigurable systems and methods |
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 |
CN100342328C (zh) * | 2002-11-20 | 2007-10-10 | 皇家飞利浦电子股份有限公司 | 带有复制寄存器文件的vliw处理器 |
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 |
CN1826583A (zh) * | 2003-04-29 | 2006-08-30 | 皇家飞利浦电子股份有限公司 | 时间-固定处理器中零开销的分支和循环 |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
GB2409064B (en) * | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing in parallel a data processing operation on data elements |
JP4283131B2 (ja) * | 2004-02-12 | 2009-06-24 | パナソニック株式会社 | プロセッサ及びコンパイル方法 |
GB2411745B (en) * | 2004-03-02 | 2006-08-02 | Imagination Tech Ltd | Method and apparatus for management of control flow in a simd device |
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 | 재단법인서울대학교산학협력재단 | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 |
CN101120310B (zh) | 2005-02-14 | 2010-06-09 | 皇家飞利浦电子股份有限公司 | 一种用于并行地处理多个操作数的电子电路 |
WO2006112045A1 (ja) * | 2005-03-31 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | 演算処理装置 |
US20060294345A1 (en) * | 2005-06-23 | 2006-12-28 | Tellabs Operations, Inc. | Methods and apparatus for implementing branching instructions within a processor |
JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
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 |
US9436468B2 (en) | 2005-11-22 | 2016-09-06 | Intel Corporation | Technique for setting a vector mask |
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 프로세서 및 그 방법 |
JP5495707B2 (ja) * | 2009-10-16 | 2014-05-21 | 三菱電機株式会社 | 並列信号処理装置 |
KR101814221B1 (ko) | 2010-01-21 | 2018-01-02 | 스비랄 인크 | 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치 |
US9678754B2 (en) * | 2010-03-03 | 2017-06-13 | Qualcomm Incorporated | System and method of processing hierarchical very long instruction packets |
JP5813484B2 (ja) | 2011-11-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | Vliwプロセッサと命令構造と命令実行方法 |
US9652242B2 (en) * | 2012-05-02 | 2017-05-16 | Apple Inc. | Apparatus for predicate calculation in processor instruction set |
US9575755B2 (en) | 2012-08-03 | 2017-02-21 | International Business Machines Corporation | Vector processing in an active memory device |
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 |
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 |
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 |
GB2514397B (en) | 2013-05-23 | 2017-10-11 | Linear Algebra Tech Ltd | Corner detection |
US9727113B2 (en) | 2013-08-08 | 2017-08-08 | Linear Algebra Technologies Limited | Low power computational imaging |
US9910675B2 (en) | 2013-08-08 | 2018-03-06 | Linear Algebra Technologies 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 |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
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 (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6254359A (ja) * | 1985-06-24 | 1987-03-10 | ピクサ− | コンピユ−タ装置 |
JPH07302199A (ja) * | 1994-04-28 | 1995-11-14 | Internatl Business Mach Corp <Ibm> | 複数の処理要素による多重条件コードに基づく1命令分岐に適応したデータ処理装置及び方法 |
JPH08249293A (ja) * | 1995-01-17 | 1996-09-27 | Internatl Business Mach Corp <Ibm> | 代理命令を用いる並列処理システム及び方法 |
JPH08305563A (ja) * | 1995-05-11 | 1996-11-22 | Hitachi Ltd | データ処理装置 |
JPH09106346A (ja) * | 1995-10-11 | 1997-04-22 | Oki Electric Ind Co Ltd | 並列計算機 |
JPH09134288A (ja) * | 1995-11-08 | 1997-05-20 | Oki Electric Ind Co Ltd | 並列命令処理装置 |
JPH1049368A (ja) * | 1996-07-30 | 1998-02-20 | Mitsubishi Electric Corp | 条件実行命令を有するマイクロプロセッサ |
WO1998033115A1 (fr) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | Processeur de donnees |
JPH113226A (ja) * | 1996-10-10 | 1999-01-06 | Sun Microsyst Inc | 統合グラフィックス機能を有するcpu用のビジュアル命令セット |
JP2001523023A (ja) * | 1997-11-07 | 2001-11-20 | ボプス インコーポレイテッド | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
DE69129569T2 (de) * | 1990-09-05 | 1999-02-04 | Philips Electronics N.V., Eindhoven | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen |
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 | 日本電気株式会社 | マイクロプロセッサ |
WO1995009399A1 (fr) * | 1993-09-27 | 1995-04-06 | Ntt Mobile Communications Network Inc. | Multiprocesseur |
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 |
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 |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
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 |
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 |
WO1997027537A2 (en) * | 1996-01-24 | 1997-07-31 | Sun Microsystems, Inc. | A processor for executing instruction sets received from a network or from a local memory |
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 | 株式会社日立製作所 | 演算処理装置 |
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 |
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 DE DE60044460T patent/DE60044460D1/de not_active Expired - Lifetime
- 2000-01-24 EP EP00911637A patent/EP1196855B1/en not_active Expired - Lifetime
- 2000-01-24 JP JP2000596471A patent/JP4943584B2/ja not_active Expired - Fee Related
- 2000-01-24 IL IL14456200A patent/IL144562A0/xx unknown
- 2000-01-24 AT AT00911637T patent/ATE469391T1/de not_active IP Right Cessation
- 2000-01-24 WO PCT/US2000/001803 patent/WO2000045282A1/en active Application Filing
-
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 (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6254359A (ja) * | 1985-06-24 | 1987-03-10 | ピクサ− | コンピユ−タ装置 |
JPH07302199A (ja) * | 1994-04-28 | 1995-11-14 | Internatl Business Mach Corp <Ibm> | 複数の処理要素による多重条件コードに基づく1命令分岐に適応したデータ処理装置及び方法 |
JPH08249293A (ja) * | 1995-01-17 | 1996-09-27 | Internatl Business Mach Corp <Ibm> | 代理命令を用いる並列処理システム及び方法 |
JPH08305563A (ja) * | 1995-05-11 | 1996-11-22 | Hitachi Ltd | データ処理装置 |
JPH09106346A (ja) * | 1995-10-11 | 1997-04-22 | Oki Electric Ind Co Ltd | 並列計算機 |
JPH09134288A (ja) * | 1995-11-08 | 1997-05-20 | Oki Electric Ind Co Ltd | 並列命令処理装置 |
JPH1049368A (ja) * | 1996-07-30 | 1998-02-20 | Mitsubishi Electric Corp | 条件実行命令を有するマイクロプロセッサ |
JPH113226A (ja) * | 1996-10-10 | 1999-01-06 | Sun Microsyst Inc | 統合グラフィックス機能を有するcpu用のビジュアル命令セット |
WO1998033115A1 (fr) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | Processeur de donnees |
JP2001523023A (ja) * | 1997-11-07 | 2001-11-20 | ボプス インコーポレイテッド | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4879307B2 (ja) | 2012-02-22 |
IL144562A0 (en) | 2002-05-23 |
US6366999B1 (en) | 2002-04-02 |
JP5474014B2 (ja) | 2014-04-16 |
US6954842B2 (en) | 2005-10-11 |
US20040039899A1 (en) | 2004-02-26 |
US20040049664A1 (en) | 2004-03-11 |
EP1196855A4 (en) | 2007-02-21 |
JP2012033176A (ja) | 2012-02-16 |
US20020178345A1 (en) | 2002-11-28 |
EP1196855A1 (en) | 2002-04-17 |
DE60044460D1 (de) | 2010-07-08 |
US7146487B2 (en) | 2006-12-05 |
EP1196855B1 (en) | 2010-05-26 |
US6760831B2 (en) | 2004-07-06 |
WO2000045282A1 (en) | 2000-08-03 |
JP4943584B2 (ja) | 2012-05-30 |
JP2003520360A (ja) | 2003-07-02 |
US7010668B2 (en) | 2006-03-07 |
ATE469391T1 (de) | 2010-06-15 |
US20040107333A1 (en) | 2004-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4879307B2 (ja) | プロセッサでの条件付き実行をサポートする装置及びその方法 | |
US6356994B1 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
JP3149348B2 (ja) | 代理命令を用いる並列処理システム及び方法 | |
JP4156794B2 (ja) | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 | |
JP3120152B2 (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 | |
JP3559046B2 (ja) | データ処理マネージメントシステム | |
JP4657455B2 (ja) | データプロセッサ | |
JP4500363B2 (ja) | プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法 | |
US9021236B2 (en) | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution | |
US7574583B2 (en) | Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor | |
JP2001134436A (ja) | 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法 | |
JP2003005954A (ja) | データ処理装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20100901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110428 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110726 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110729 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111013 |
|
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: 20111031 |
|
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: 20111129 |
|
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: 20141209 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 |