JP4500363B2 - プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法 - Google Patents

プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法 Download PDF

Info

Publication number
JP4500363B2
JP4500363B2 JP2009176971A JP2009176971A JP4500363B2 JP 4500363 B2 JP4500363 B2 JP 4500363B2 JP 2009176971 A JP2009176971 A JP 2009176971A JP 2009176971 A JP2009176971 A JP 2009176971A JP 4500363 B2 JP4500363 B2 JP 4500363B2
Authority
JP
Japan
Prior art keywords
processor
instruction
register file
mode
processing element
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.)
Expired - Fee Related
Application number
JP2009176971A
Other languages
English (en)
Other versions
JP2010009610A (ja
Inventor
ジェラルド, ジー. ペカネック,
ジュアン, ジー レヴィッラ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of JP2010009610A publication Critical patent/JP2010009610A/ja
Application granted granted Critical
Publication of JP4500363B2 publication Critical patent/JP4500363B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Description

本発明は、一般的には、アレイ処理の改善に関し、特に、アレイに対する制御要素及びアレイ中の処理要素としてのプロセッサのデュアルモード動作を提供するのに好都合な技術に関する。
多様な並列処理アレイにおいては、独立した制御要素及び処理要素がある。このような要素は、通常、限定された制御タスク又は処理タスク専用である。このような構成の様々な面により、その結果的として、システム全体が非効率的なものとなっている。
通常、従来の技術において、単一命令複数データ流(SIMD)命令が実行される場合、コントローラシーケンスプロセッサ(SP)のアドレス生成リソースを除き、アレイの処理要素(PE)のリソースのみが使用され、また、単一命令単一データ(SISD)命令が実行される場合、コントローラSPのリソースのみが使用されるので、コントローラリソースとSIMDアレイリソースとを分離している。
本発明は、PEとコントローラSPとを組み合わせて単一のデバイスにし、これを利用して専用のPE−SPデータバスを除去し、この複合ユニットが1組の実行ユニットを共用できるようにして実現コストを削減する。この本発明により、SPコントローラのSISD命令は、SIMD PE命令と並列に実行することができる。
本発明の上記の特徴、面及び利点、並びにその他の特徴、面及び利点は添付の図面と合わせて以下の詳細な説明を参照することにより当業者には明らかであろう。
専用のPE−SPデータバスを有するコントローラSPにより制御されるPEのSIMDアレイを示す図である。 デュアルプロセッサを含み、図1の専用のPE−SPデータバスを除いた本発明に係るアレイの第1実施の形態を示す図である。 図2のアレイと関連して使用される命令フォーマットを示す図である。 本発明に係る第1のレジスタファイル選択メカニズムを示す図である。 本発明に係るアレイの第2実施の形態を示す図である。 本発明に係る第2のレジスタファイル選択メカニズムを示す図である。 図5のアレイ及び図6のレジスタファイル選択メカニズムと関連して使用される命令フォーマットを示す図である。 別のレジスタファイル選択メカニズムを示す図である。 アレイコントローラのアレイ処理要素との動的なVLIW併合機能を示す図である。
図1に示すアレイ100において、高度並列プロセッサは、複数の処理要素(PE)110、120、130及び140のアレイならびにコントローラシーケンサプロセッサ(SP)150を具備する。各PE及びコントローラSPは、自身のレジスタファイル及び少なくとも1つの実行ユニット(通常、整数型又は浮動小数点型の装置)、ロード/格納ユニット又はPE間の相互接続ネットワークを含む。命令復号及び制御ロジックも含まれる。さらに、コントローラSPは、SP150の機能ユニット152の1つとして含まれるのが好ましい命令シーケンサ151において、命令アドレス生成、命令フェッチ及び復号、PEアレイ100への命令ディスパッチを支援し、プログラム全体の制御を提供するために必要なハードウェアも含む。PEは、相互接続ネットワーク160に依存して、レジスタファイルと専用のデータバス170との間でデータを交換させ、そのレジスタファイルとコントローラSPのレジスタファイルとの間でデータを交換できるようにする。
コントローラSPにより常に実行されるアドレス生成機能を除いて、アレイ命令は、PEのアレイ及びコントローラSP中の制御命令において実行されるが、通常のSIMD型のシステムにおいては、両方で同時に実行されるわけではない。すなわち、PE並列SIMD命令は、PEのアレイにおいて実行され、SISD命令は、コントローラSPにおいて実行される。アレイ100は、以下でさらに説明するように、本発明で使用するために採用してもよい。
現時点で好ましく、本発明で使用してもよいマンアレイアーキテクチャ(ManArray architecture)の更に詳細な説明は、それぞれ1997年6月30日と1997年10月10日に出願された米国特許出願第08/885,310号及び08/949,122号、1997年11月7日出願、名称「Methods and Apparatus for Efficient Synchronous MIMD VLIW Communications」の仮出願第60/064,619号、1997年12月4日出願、名称「Method and Apparatus for Dynamically Modifying Instructions in a Very Long Instruction Word Processor」の仮出願第60/067,511号、1997年12月18日出願、名称「Methods and Apparatus for Scalable Instruction Set Architecture」の仮出願第60/068,021号、1998年1月12日出願、名称「Methods and Apparatus to Dynamically Expand the Instruction Pipeline of a Very Long Instruction Word Processor」の仮出願第60/071,248号、1998年1月28日出願、名称「Methods and Apparatus to Support Conditional Execution in a VLIW−Based Array Processor with Subword Execution」の仮出願第60/072,915号、1998年6月5日出願、名称「Methods and Apparatus for ManArray PE-PE Switch Control」の仮出願第60/088,148号、1998年7月9日出願、名称「Methods and Apparatus for Dynamic Instruction Controlled Reconfigurable Register file with Extended Precision」の仮出願第60/092,148号、並びに1998年7月9日出願、名称「Methods and Apparatus for Instruction Addressing in Indirect VLIW Processors」の仮出願第60/092,130号に記載されており、これらの出願は全て本発明の譲受人に譲渡されており、また、全体として、参考のため、本明細書に取り入れられている。
一面において、本発明は、処理要素のアレイを具備する高度並列プロセッサにおいて、2つの独立した動作モード及び独自の第3の複合動作モードを支援することが可能な動的併合プロセッサ(DP)を提供する。本発明を考慮に入れると、第3の複合動作モードは、超長命令語(VLIW)アーキテクチャを伴う高度並列プロセッサにおいて使用することができる。動的な動作モードの変更は、プログラマーの制御の下で、サイクルごとに変更可能なモードとして定義される。複合動作モードとは、2つの独立した動作モードが間接VLIW(iVLIW)アーキテクチャにより管理されることで、いずれのサイクルにおいても有効になり得ることを意味する。
第1の動作モードにおいて、DPは、アレイ中の処理要素の1つとして動作し、単一命令複数データ(SIMD)命令の実行に加わる。第2の動作モードにおいて、DPはアレイに対する制御要素として動作し、単一命令単一データ(SISD)命令を実行する。第3の動作モードにおいて、DPは同時に、アレイに対する制御要素として且つアレイ中の処理要素の1つとして動作する。これは、DPがSPのSISD型の命令とPEのSIMD型の命令との組み合わせを含むiVLIW命令を実行するときに達成される。
これらの3つの動作モードを支援するために、本発明の現時点で好適な一実施の形態において、図2に示すアレイ200は、DP210ならびにPE220、230及び240を含む。DP210は、複数の実行ユニット、或いは、命令シーケンサ214を含む機能ユニット211を有する。DP210は、それぞれPEレジスタファイル212及びSPレジスタファイル213とラベル付けされた2つの汎用レジスタファイルも含む。プロセッサが、最初の2つの動作モードのいずれか片方のみであるか、又は2つを組み合わせた第3の動作モードである一方、実行ユニットは命令を実行することができるという点で、実行ユニットは「共用」である。レジスタファイルは、通常、2つの別々の動作モードにおいて、「非共用」である。しかしながら、2つのレジスタファイルはいずれの動作モードにおいても、アレイの相互接続ネットワークを介したデータ通信に利用可能である。アレイの相互接続ネットワークを、PEレジスタファイルのいずれかとSPレジスタファイルとの間の直接通信経路として使用する可能にすると、この構造により専用のPE−SPデータバスが不要になる。マンアレイ相互接続ネットワークの場合、SPは、PEにデータを一斉送信し、ネットワーク中の個々のPEからのデータを受信することができる。第3の複合動作モードは、VLIWでのSP命令及びPE命令を相互に混合することにより得ることができる。
このように、実行ユニットは、動作のハザードを発生させることなく、プログラマの完全な制御の下で、サイクルごとのベースで同時に、SIMD PE動作とSP SISD動作との間で共用することができる。この実行ユニットの共用は、実現コストにおける重要な節減を意味する。アプリケーションの要求により、SP−PEロード一斉送信バスをもつことは可能であるが、それでも、PE−SPバス経路を必要とはしない。これは、PEのアレイへのデータ分布動作の同時性を改善するためであり、それにより性能を向上させるためである。
命令処理は、命令をフェッチするDPの、図2に示す命令シーケンサ214で開始される。各命令がフェッチされると、DP及びアレイ中の各PEで並行して復号される。なお、SP/PEビットを予め復号して、命令を残りのPEにディスパッチするべきか否かを決定する他の方法も存在する。いずれにしても、各デバイスにおいて、命令語中の「動作モード」ビットを調べて命令が実行されるべき動作モード(即ち、「PE」又は「SP」)を決定する。命令フォーマットの一例が図3に示される。
動作モードビットが論理「1」に設定される場合はPE動作モードを表わす。動作モードビットが論理「0」に設定される場合はSP動作モードを表わす。PE動作モードを表わす場合、アレイ中のすべてのPE、及びアレイの別の処理要素として動作するDPが、命令を実行する。SP動作モードを表わす場合、アレイの制御要素として動作するDPのみが命令を実行する。
図3に示すフォーマット300の複数の命令を含むVLIWプロセッサ又はiVLIWプロセッサにおいて、SP動作モード及びPE動作モードは混合されて、iVLIWアーキテクチャ又はVLIWアーキテクチャの性能の範囲内で、無制限のプログラミング柔軟性を生み出すことができる。
DPにおいて命令が復号される場合、動作モードビットは、その動作に対してどのレジスタが使用されるかを選択するためにも使用される。例えば、命令が整数型のADD命令である場合、動作モードビットは、ソースレジスタ及び宛先レジスタが位置するレジスタファイルを決定するために使用される。このレジスタファイル選択メカニズム400の論理回路(ロジック)が図4に示される。
図5に示す本発明の第2実施の形態において、アレイ500は、DP510ならびにPE520、530及び540を含む。DP510は、複数の実行ユニット及び1つの汎用レジスタファイルを含む。この実行ユニットは、プロセッサがいずれかの動作モードである一方で命令を実行することができるという点で、「共用」である。レジスタファイルは、2つのバンク、即ち、PEバンクとSPバンクに分割され、これら2つのバンクは、通常、ともに別々の動作モードであり、「非共用」である。しかしながら、両バンクは、いずれの動作モードにおいても、アレイの相互接続ネットワークを介したデータ通信に利用可能であり、複数又は1つのPEとSPとの間のデータ交換を可能にする。
命令処理は、命令をフェッチするべく動作するDP510の、機能ユニットブロック512の一部をなす命令シーケンサ511で開始される。各命令がフェッチされると、DP及びアレイ中の各PEで並行して復号される。各デバイスにおいて、命令語中の「動作モード」ビットを調べて命令が実行されるべき動作モード(即ち、「PE」又は「SP」)を決定する。動作モードビットが論理「1」に設定される場合、PE動作モードを表わす。動作モードビットが論理「0」に設定される場合、SP動作モードを表わす。PE動作モードが表わされている場合、アレイ中のすべてのPE及びアレイの別の処理要素として動作するDPが、命令を実行する。SP動作モードを表わす場合、アレイの制御要素として動作するDPのみが命令を実行する。
DPにおいて命令が復号される場合、動作モードビットは、その動作に対する適切なレジスタバンクをイネーブルにするためにも使用される。例えば、命令が整数型のADD命令である場合、動作モードビットは、ソースレジスタ及び宛先レジスタが位置するレジスタバンクをイネーブルにするために使用される。適切なレジスタバンク選択メカニズム600の論理回路が図6に示される。レジスタファイルは、通常、図4の手法と比較して、図6の手法に有利になるように注文設計される。これは、実施及び技術プロセスの決定である。
本発明の第3及び第4実施の形態において、DP、PEのアレイ及びこれらの相互接続ネットワークは、本発明の第1及び第2実施の形態においてそれぞれ説明したのと同様の方法で実現される。しかしながら、最初の2つの実施の形態の実現とは異なり、動作中にDP(又はPE)によりアクセスされるレジスタファイル又はレジスタバンクを判定するために、命令中で「動作モード」ビットを使用する代りに、命令中に含まれるソースレジスタアドレス及び/又は宛先レジスタアドレスの最上位ビット(MSB)が使用される。第3及び第4実施の形態の動作に対する命令フォーマットの一例が、図7に示される。
命令処理は、命令をフェッチするDP中の命令シーケンサで開始される。各命令がフェッチされると、DP及びアレイ中の各PEで並行して復号される。各デバイスにおいて、命令語中のソースレジスタアドレス及び/又はターゲットレジスタアドレスのMSBを調べて命令が実行されるべき動作モード(即ち、「PE」又は「SP」)を決定する。全てのMSBが論理「1」に設定される場合はPE動作モードを表わす。全てのMSBが論理「0」に設定される場合はSP動作モードを表わす。PE動作モードを表わす場合、アレイ中の全てのPE及びアレイの別の処理要素として動作するDPが、命令を実行する。SP動作モードを表わす場合、アレイの制御要素として動作するDPのみが、その命令を実行する。
しかしながら、命令が1つ以上のレジスタアドレス(例えば、1つのソースアドレス及び1つの宛先アドレス、又は2つのソースアドレス及び1つの宛先アドレス)を含み、少なくとも2つのアドレスのMSBが同じでない場合、DP及び複数のPEから構成されるアレイプロセッサにおいて、宛先レジスタアドレスのMSBは、命令が制御命令であるか又はPE命令であるかを判定する。そのような命令がDPで復号される場合、MSBは、その動作に対する適切なファイル(又はバンク)を選択(又はイネーブルに)するために使用される。例えば、整数型のADD命令の場合、MSBビットは、ソースレジスタ及び宛先レジスタが位置するレジスタファイル(又はバンク)を選択(又はイネーブルに)するために使用される。適切なレジスタファイル選択メカニズム800の論理回路が図8に示される。
アレイ処理要素と組み合わされたコントローラにおいて実行ユニットを共用することができるので、コントローラのSISD命令をSIMD PE命令と同時に実行することが可能になる。これは、マンアレイiVLIWアーキテクチャを用いて達成されるのが好ましい。各単一命令中のSP/PE動作モードビットを使用することにより、少なくとも2つの単一命令を含むiVLIWは、SP命令をPE命令と混合することができる。この効果的な特徴により、シーケンシャルコードを高度並列コードと相互に混合することができ、更にアレイプロセッサにおける性能を最適化することができる。
これを実現する適切な装置は、図9に示す2つの単一命令920、925を伴って図9に示される。この図9においては、2つの機能ユニット945及び955も示されている。
図9において、最小限である2つの登録された単一命令を含むVLIW復号及び制御ロジックブロック910は、SPレジスタファイル970及びPEレジスタファイル980に、ライトイネーブル制御信号912から914を供給する。信号912及び916は、復号及び制御ロジックブロック930より生成され、信号914及び918は、復号及び制御ロジックブロック935より生成される。iVLIW単一命令動作モードビット915(SP/PE)は、機能1である945、又は機能2である955からの出力結果が、実行終了時にどちらのレジスタファイルに書込まれるかを制御する。インバータ960は、どちらのレジスタファイルに書込まれるかに関する単一レベル制御を論理的に示し、1つのレジスタファイルのみが一度に書込まれるように動作を制御する。マルチプレクサ940及び950は、マルチプレクサイネーブル信号916及び918のそれぞれに基づいて、適切なレジスタファイルから機能ユニットの入力へのソースデータ経路を制御する。
この種のメカニズム、複合コントローラ及び処理要素があるので、シーケンシャルコントローラ命令と高度並列SIMDアレイPE命令とを相互に混合することが可能である。
本発明を現時点で好ましい幾つかの実施の形態の状況において説明したが、以下に示す請求の範囲と矛盾しないその他の状況に合わせて、本発明の教示に様々な変更を行なってもよいことは認められるであろう。

Claims (15)

  1. 処理要素と併合された制御プロセッサである併合プロセッサを動作させる方法であって、
    (a)前記併合プロセッサにより超長命令語(VLIW)をフェッチし、
    前記超長命令語は、
    (i) 第1の単一命令を制御プロセッサの命令として定義する動作モードビットを含む第1の単一命令と、
    (ii) 第2の単一命令を処理要素の命令として定義する動作モードビットを含む第2の単一命令とを有し、
    (b)前記併合プロセッサにより各単一命令の動作ビットを調べて、前記単一命令が制御プロセッサの命令か、処理要素の命令であるかを判定し、
    (c)前記第1の単一命令を前記制御プロセッサで実行させ、
    (d)前記第2の単一命令を前記処理要素で実行させ、
    前記工程(c)と(d)は前記併合プロセッサで並行して実行されることを特徴とする方法。
  2. 前記併合プロセッサは更に制御プロセッサレジスタファイルと処理要素レジスタファイルとを含み、前記工程(b)は、更に、前記併合プロセッサにより各単一命令の動作モードビットを調べ、各単一命令のために、前記制御プロセッサレジスタファイル或いは前記処理要素レジスタファイル選択することを特徴とする請求項1に記載の方法。
  3. 前記併合プロセッサは更に、制御プロセッサバンクと処理要素バンクとを含むレジスタファイルを含み、前記工程(b)は、更に、前記併合プロセッサにより各単一命令の動作モードビットを調べ、各単一命令のために、前記制御プロセッサバンク或いは前記処理要素バンク選択することを特徴とする請求項1に記載の方法。
  4. プロセッサ装置であって、
    処理要素と併合された制御プロセッサである併合プロセッサと、
    前記併合プロセッサと通信可能に接続され、超長命令語を記憶するメモリとを有し、
    前記超長命令語は、動作モードビットを含む第1及び第2の単一命令を含み、前記第1の単一命令の動作ビットは、前記制御プロセッサで実行される単一命令単一データ(SISD)動作を指定し、前記第2の単一命令の動作ビットは、前記処理要素で実行される単一命令複数データ(SIMD)動作を指定し、前記第1及び第2の単一命令は前記併合プロセッサで並行して実行されることを特徴とするプロセッサ装置。
  5. 前記超長命令語の復号及び論理制御ブロックを更に有することを特徴とする請求項4に記載のプロセッサ装置。
  6. 前記超長命令語の復号及び前記論理制御ブロックからの制御信号を受け取るために接続された制御プロセッサレジスタファイルと処理要素レジスタファイルとを更に有することを特徴とする請求項5に記載のプロセッサ装置。
  7. 前記動作モードビットは、前記制御プロセッサレジスタファイル或いは処理要素レジスタファイルを選択するために使用されることを特徴とする請求項6に記載のプロセッサ装置。
  8. 制御プロセッサバンクと処理要素バンクとを含むレジスタファイルを更に含むことを特徴とする請求項5に記載のプロセッサ装置。
  9. 前記併合プロセッサは、前記超長命令語を実行可能であることを特徴とする請求項5に記載のプロセッサ装置。
  10. 前記制御プロセッサは、処理要素(SIMD)命令を実行する前記処理要素と並行して制御プロセッサ(SISD)命令を実行できることを特徴とする請求項9に記載のプロセッサ装置。
  11. 制御プロセッサと合体してデュアルモードプロセッサを形成する少なくとも1つの処理要素と、前記デュアルモードプロセッサと相互接続バスによって接続された1つ或はそれ以上の追加された処理要素とを具備するアレイプロセッサの動作方法において、
    前記デュアルモードプロセッサが、2つの単一命令を有する第1の超長命令語(VLIW)をフェッチし、前記アレイプロセッサ中の前記処理要素の1つとして動作して、第1の動作モードにおいて1組の機能ユニット上で前記第1の超長命令語を実行する工程と、
    前記デュアルモードプロセッサが、2つの単一命令を有する第2の超長命令語をフェッチし、前記アレイプロセッサに対する制御要素として動作し、第2の動作モードにおいて前記1組の機能ユニット上で前記第2の超長命令語を実行する工程と、
    前記第1及び第2の超長命令語の各単一命令で動作モードビットを調べ、前記処理要素の動作として前記第1の超長命令語或いは前記制御要素の動作として前記第2の超長命令語を実行するために、前記デュアルモードプロセッサで前記1組の機能ユニットの共用を制御する動作モードを決定することを特徴とする方法。
  12. 前記第1及び第2の超長命令語の各単一命令の最上位ビットの調査に基づいて、前記デュアルモードプロセッサの前記動作モードを決定する工程を更に含むことを特徴とする請求項11に記載の方法。
  13. 前記第1及び第2の超長命令語の各単一命令の最上位ビットの調査に基づいて、前記デュアルモードプロセッサの前記動作モードを決定する工程を更に含むことを特徴とする請求項11に記載の方法。
  14. 単一命令の1つのレジスタ選択フィールド中の最上位ビットを使用して前記デュアルモードプロセッサ中の2つのレジスタファイルの1つを選択する工程を更に含み、前記2つのレジスタファイルの1つは、前記処理要素の1つとして動作している前記デュアルモードプロセッサに関連し、他のレジスタファイルは、前記制御要素として動作している前記デュアルモードプロセッサに関連していることを特徴とする請求項11に記載の方法。
  15. 前記アレイプロセッサが、前記デュアルモードプロセッサ中のレジスタファイルを編成してバンクをなす工程と、
    前記デュアルモードプロセッサ内で処理要素レジスタファイルと、制御プロセッサレジスタファイルと、1組の機能ユニットに接続されたレジスタファイルバンク選択メカニズムを使用して、前記デュアルモードプロセッサ中のレジスタファイルバンクを選択する工程とを更に含み、前記レジスタファイルバンク選択メカニズムにより前記処理要素レジスタファイル又は前記制御プロセッサレジスタファイルから1つのレジスタが選択されて、前記1組の機能ユニットに提供されることを特徴とする請求項11に記載の方法。
JP2009176971A 1998-10-09 2009-07-29 プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法 Expired - Fee Related JP4500363B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/169,072 US6219776B1 (en) 1998-03-10 1998-10-09 Merged array controller and processing element
US09/169,072 1998-10-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000576374A Division JP4417567B2 (ja) 1998-10-09 1999-10-08 デュアルモードプロセッサ

Publications (2)

Publication Number Publication Date
JP2010009610A JP2010009610A (ja) 2010-01-14
JP4500363B2 true JP4500363B2 (ja) 2010-07-14

Family

ID=22614163

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000576374A Expired - Fee Related JP4417567B2 (ja) 1998-10-09 1999-10-08 デュアルモードプロセッサ
JP2009176971A Expired - Fee Related JP4500363B2 (ja) 1998-10-09 2009-07-29 プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000576374A Expired - Fee Related JP4417567B2 (ja) 1998-10-09 1999-10-08 デュアルモードプロセッサ

Country Status (5)

Country Link
US (3) US6219776B1 (ja)
EP (2) EP1127316B1 (ja)
JP (2) JP4417567B2 (ja)
AT (1) ATE534073T1 (ja)
WO (1) WO2000022535A1 (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3541669B2 (ja) 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
AU2001245520A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
JP3987784B2 (ja) * 2002-10-30 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
KR20050089084A (ko) * 2002-12-30 2005-09-07 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 클러스터 명령어 수준 병렬성 프로세서 및 클러스터 명령어수준 병렬성 프로세서에서의 버스 액세스 방법
US7788465B2 (en) * 2002-12-30 2010-08-31 Silicon Hive B.V. Processing system including a reconfigurable channel infrastructure comprising a control chain with combination elements for each processing element and a programmable switch between each pair of neighboring processing elements for efficient clustering of processing elements
US7263543B2 (en) * 2003-04-23 2007-08-28 Micron Technology, Inc. Method for manipulating data in a group of processing elements to transpose the data using a memory stack
US7472392B2 (en) * 2003-04-23 2008-12-30 Micron Technology, Inc. Method for load balancing an n-dimensional array of parallel processing elements
US7913062B2 (en) * 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US7373645B2 (en) * 2003-04-23 2008-05-13 Micron Technology, Inc. Method for using extrema to load balance a loop of parallel processing elements
US7448038B2 (en) * 2003-04-23 2008-11-04 Micron Technology, Inc. Method for using filtering to load balance a loop of parallel processing elements
US7676648B2 (en) * 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
US7430742B2 (en) 2003-04-23 2008-09-30 Micron Technology, Inc. Method for load balancing a line of parallel processing elements
US7437726B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for rounding values for a plurality of parallel processing elements
US7437729B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for load balancing a loop of parallel processing elements
US7503046B2 (en) * 2003-04-23 2009-03-10 Micron Technology, Inc. Method of obtaining interleave interval for two data values
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
US7447720B2 (en) 2003-04-23 2008-11-04 Micron Technology, Inc. Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
US7574466B2 (en) * 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
US7383427B2 (en) * 2004-04-22 2008-06-03 Sony Computer Entertainment Inc. Multi-scalar extension for SIMD instruction set processors
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
JP4477959B2 (ja) * 2004-07-26 2010-06-09 独立行政法人理化学研究所 ブロードキャスト型並列処理のための演算処理装置
DE602005019180D1 (de) * 2004-09-22 2010-03-18 Koninkl Philips Electronics Nv Datenverarbeitungsschaltung mit funktionseinheiten mit gemeinsamen leseports
US7493474B1 (en) * 2004-11-10 2009-02-17 Altera Corporation Methods and apparatus for transforming, loading, and executing super-set instructions
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
US7730280B2 (en) * 2006-06-15 2010-06-01 Vicore Technologies, Inc. Methods and apparatus for independent processor node operations in a SIMD array processor
US8572354B2 (en) * 2006-09-28 2013-10-29 3Dlabs Inc., Ltd. Programmable logic unit and method for translating and processing instructions using interpretation registers
CN101627365B (zh) 2006-11-14 2017-03-29 索夫特机械公司 多线程架构
KR100896269B1 (ko) 2006-12-05 2009-05-08 한국전자통신연구원 SIMD/SISD/Row/Column 동작을 할 수있는 SIMD 병렬 프로세서
US20080133879A1 (en) * 2006-12-05 2008-06-05 Electronics And Telecommunications Research Institute SIMD parallel processor with SIMD/SISD/row/column operation modes
US7739481B1 (en) * 2007-09-06 2010-06-15 Altera Corporation Parallelism with variable partitioning and threading
US7809925B2 (en) * 2007-12-07 2010-10-05 International Business Machines Corporation Processing unit incorporating vectorizable execution unit
US9164945B2 (en) * 2008-12-01 2015-10-20 Micron Technology, Inc. Devices, systems, and methods to synchronize parallel processing of a single data stream
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US8140780B2 (en) * 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
EP2254280A1 (en) * 2009-05-19 2010-11-24 Electrolux Home Products Corporation N.V. Bus control for a domestic appliance
TWI414994B (zh) * 2009-09-24 2013-11-11 Ind Tech Res Inst 可重組態處理裝置及其系統
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
KR101738941B1 (ko) * 2010-03-23 2017-05-24 삼성전자주식회사 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법
WO2012037491A2 (en) 2010-09-17 2012-03-22 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
KR101620676B1 (ko) 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
CN103635875B (zh) 2011-03-25 2018-02-16 英特尔公司 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
WO2012162189A1 (en) 2011-05-20 2012-11-29 Soft Machines, Inc. An interconnect structure to support the execution of instruction sequences by a plurality of engines
TWI666551B (zh) 2011-05-20 2019-07-21 美商英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
EP2783280B1 (en) 2011-11-22 2019-09-11 Intel Corporation An accelerated code optimizer for a multiengine microprocessor
CN104040491B (zh) 2011-11-22 2018-06-12 英特尔公司 微处理器加速的代码优化器
SE1151231A1 (sv) * 2011-12-20 2013-05-07 Mediatek Sweden Ab Digital signalprocessor och basbandskommunikationsanordning
US20130275709A1 (en) 2012-04-12 2013-10-17 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
KR101708591B1 (ko) 2013-03-15 2017-02-20 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
KR102083390B1 (ko) 2013-03-15 2020-03-02 인텔 코포레이션 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US10769099B2 (en) 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
WO2016109570A1 (en) 2014-12-30 2016-07-07 Micron Technology, Inc Systems and devices for accessing a state machine
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US10175961B2 (en) * 2015-06-10 2019-01-08 International Business Machines Corporation Joining operator graph elements via whole program optimization
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10372507B2 (en) * 2016-12-31 2019-08-06 Intel Corporation Compute engine architecture to support data-parallel loops with reduction operations
US12013809B2 (en) * 2020-09-30 2024-06-18 Beijing Tsingmicro Intelligent Technology Co., Ltd. Computing array and processor having the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146154A (ja) * 1986-09-27 1988-06-18 スー・ツアオ・チャン 共働動作機能を有するホモジェニアス・マルチ・コンピュータ・システムとその共働動作の方法
JPH02297684A (ja) * 1989-05-11 1990-12-10 Nec Corp マイクロコンピュータ
JPH05233569A (ja) * 1991-11-27 1993-09-10 Internatl Business Mach Corp <Ibm> 動的に複数モードで動作するコンピュータ・システム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558411A (en) * 1969-05-19 1985-12-10 Burroughs Corp. Polymorphic programmable units employing plural levels of sub-instruction sets
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
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
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5511212A (en) * 1993-06-10 1996-04-23 Rockoff; Todd E. Multi-clock SIMD computer and instruction-cache-enhancement thereof
US5682491A (en) * 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5649135A (en) 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions
US5805486A (en) * 1995-11-28 1998-09-08 Intel Corporation Moderately coupled floating point and integer units
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
GB9622660D0 (en) 1996-10-31 1997-01-08 Biocine Spa Immunogenic detoxified mutant toxin
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
KR20010031884A (ko) * 1997-11-07 2001-04-16 추후제출 iVLIW PE 대 PE 통신으로 효율적인 동기식MIMD 연산을 위한 방법 및 장치
US6081884A (en) * 1998-01-05 2000-06-27 Advanced Micro Devices, Inc. Embedding two different instruction sets within a single long instruction word using predecode bits
JP2000124914A (ja) 1998-10-19 2000-04-28 Sony Corp 情報処理装置および方法、並びに提供媒体
WO2000042028A1 (en) 1999-01-14 2000-07-20 Monsanto Technology Llc Triazole sulfones having herbicidal activity
US7124898B2 (en) 2001-04-26 2006-10-24 Dci Marketing, Inc. Merchandising system
AR032233A1 (es) 2002-01-09 2003-10-29 Maria Eugenia Barrera Un procedimiento para conformar un envase de alta resistencia, particularmente un envase para aerosoles y a un envase obtenido mediante dicho procedimiento
US7291598B2 (en) 2005-01-04 2007-11-06 Gp Medical, Inc. Nanoparticles for protein drug delivery
BR112014020188B1 (pt) 2012-02-21 2022-06-28 Allurion Technologies, Inc Dispositivo médico para uso com um material de enchimento para ocupar temporariamente um espaço dentro de um corpo do paciente para tratar obesidade
US9213098B2 (en) 2012-09-12 2015-12-15 Moises Jaime RODRICH Method and device for detecting presence of vehicle in parking space
TWI517557B (zh) 2013-01-31 2016-01-11 瑞昱半導體股份有限公司 三級電晶體串疊之功率放大器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146154A (ja) * 1986-09-27 1988-06-18 スー・ツアオ・チャン 共働動作機能を有するホモジェニアス・マルチ・コンピュータ・システムとその共働動作の方法
JPH02297684A (ja) * 1989-05-11 1990-12-10 Nec Corp マイクロコンピュータ
JPH05233569A (ja) * 1991-11-27 1993-09-10 Internatl Business Mach Corp <Ibm> 動的に複数モードで動作するコンピュータ・システム

Also Published As

Publication number Publication date
US6219776B1 (en) 2001-04-17
JP2010009610A (ja) 2010-01-14
ATE534073T1 (de) 2011-12-15
US6874078B2 (en) 2005-03-29
JP4417567B2 (ja) 2010-02-17
EP2336879B1 (en) 2013-03-06
EP2336879A3 (en) 2011-07-06
US20040148488A1 (en) 2004-07-29
US20010032303A1 (en) 2001-10-18
EP1127316B1 (en) 2011-11-16
JP2002527823A (ja) 2002-08-27
EP1127316A4 (en) 2008-11-19
US6606699B2 (en) 2003-08-12
EP1127316A1 (en) 2001-08-29
WO2000022535A1 (en) 2000-04-20
EP2336879A2 (en) 2011-06-22

Similar Documents

Publication Publication Date Title
JP4500363B2 (ja) プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法
JP3149348B2 (ja) 代理命令を用いる並列処理システム及び方法
US6467036B1 (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
US6128720A (en) Distributed processing array with component processors performing customized interpretation of instructions
JP4879307B2 (ja) プロセッサでの条件付き実行をサポートする装置及びその方法
JP4156794B2 (ja) iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置
EP0426393B1 (en) Instructing method and execution system
JP2918631B2 (ja) デコーダ
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
JPH05233569A (ja) 動的に複数モードで動作するコンピュータ・システム
JP2000227858A (ja) プロセッサおよびその命令処理方法
US9021236B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
JP3866513B2 (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
Pechanek et al. The ManArray/sup TM/embedded processor architecture
US20010037441A1 (en) Method and apparatus for adding user-defined execution units to a processor using configurable long instruction word (CLIW)
JP3524240B2 (ja) 並列命令処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100302

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: 20100323

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: 20100416

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 4

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