JP3559046B2 - データ処理マネージメントシステム - Google Patents
データ処理マネージメントシステム Download PDFInfo
- Publication number
- JP3559046B2 JP3559046B2 JP53596997A JP53596997A JP3559046B2 JP 3559046 B2 JP3559046 B2 JP 3559046B2 JP 53596997 A JP53596997 A JP 53596997A JP 53596997 A JP53596997 A JP 53596997A JP 3559046 B2 JP3559046 B2 JP 3559046B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data processing
- management system
- thread
- operations
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 174
- 238000007726 management method Methods 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims 3
- 230000005055 memory storage Effects 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
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)
- Multimedia (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、リアルタイムマルチメディア入力及び処理に使用できる形式のデータ処理マネージメントシステムに係る。
先行技術の説明
コンピュータのユーザインターフェイスは、テレタイプからキーボードへそしてキャラクタターミナルからGUI(グラフィックユーザインターフェイス)へと連続的に進化し、現在では、GUIが大部分のコンピュータユーザの標準的なインターフェイスとなっている。この進化は、サウンド及び3Dグラフィックスが次第に一般的となりそして3Dサウンド及びバーチャルリアリティが出現するというように続いている。その共通の脈絡は、ユーザに与えられるデータの形式が付随的に増加するために人間とコンピュータとのインターフェイスが益々複雑化することである。PC(パーソナルコンピュータ)アプリケーションは、この移行の利点を取り上げ、そしてそれらの完全な潜在能力を引き出すためにサウンド及び3Dグラフィックスを利用することに益々依存している。
その結果、チップ及びボード供給者は、2つ以上のデータ形式、例えば、2Dグラフィックス及びサウンド、又は2D及びMPEG(動画専門グループ)再生を取り扱うように設計された複合機能をもつ製品を提供するようになった。今日までのこれらの製品は、各データ形式ごとに個別の機能的ユニットを使用していることに注目するのが重要である。
最近、プログラマブルSIMD(単一命令多データ)アーキテクチャー(例えば、クロマティックMPACT)が出現している。これらアーキテクチャーは、同じ命令を実行する同一の処理要素を使用して、多数のデータブロックに対して同じ処理を並列して実行する。この解決策は、例えば、MPEGのようなデータ圧縮におけるブロック処理のような共通の機能を実行できるように容易に分割できるデータについては充分に機能するが、データ処理内で条件付きの流れ制御をしばしば必要とする完全な汎用アルゴリズムを実行するに充分な融通性がない。
又、DSP(デジタル信号プロセッサ)の売り主は、種々のデータ形式を処理するに必要な融通性を与えるMIMD(多命令多データ)デバイス(例えばテキサスインスツルーメント社のTI320C80)をこのマーケットに向けるように努めた。しかしながら、そのアーキテクチャーは、アプリケーションに必要とされるものよりも遙に大きな融通性を保持する汎用DSPコアの複製であるために、それにより形成されるチップは、一般的なPC及び消費者向けとしては非常にコストの高いデバイスとなってしまう。
汎用プログラム及びマルチメディア処理の両方について高速RISC CPUをプロモートするCPU(中央処理ユニット)の売り主は、数個以上のマルチメディア特有の命令をサポートするようにそれらのアーキテクチャーを妥協することができず(そしてそのように望まず)、それ故、妥当なコストで所要の性能レベルを得ることができない。又、CPUは、一般に、非リアルタイムのオペレーティングシステムを実行するのに使用されるので、待ち時間の短い処理を与えることもできない。
多数の処理ユニットを制御するVLIW(非常に長い命令ワード)命令を使用する専用のマルチメディアCPU(例えばフィリップス社のトリメディア)は、それらの処理能力を効率的に使用することができない。というのは、各命令が単一のタスク(及びデータ形式)に専用のものであり、それ故、使用できる全ての処理ユニットを最適に活用することができないからである。例えば、3Dグラフィックオペレーションに専用のVLIW命令は、MPEG運動推定に設計されたハードウェアの利点を取り入れることができない。又、処理ユニットの個数、ひいては、拡張性も、VLIWワードの長さにより制限される。
発明の要旨
本発明の好ましい実施形態は、システムコストを最小限にすると共に、マルチメディア及び関連工業規格の将来の進展に備えるように、全てのマルチメディアデータ形式を処理するデバイスの要求に向けられる。本発明の実態形態は、処理能力、リアルタイムI/Oサポート、及び実行できる同時アクティビティの数について拡張性のあるアーキテクチャーを提供する。
全てのマルチメディアデータ形式は、ベクトル処理解決策に適したデータの流れとしてみることができる。これら流れの幾つかは、リアルタイムであり(例えば、音声又は映像入力からの流れ)、従って、データロスを回避するために専用のバッファ又は低待ち時間処理を必要とする。又、各データ流は、それを処理するのに何らかのハードウェアリソースを必要とする。
本発明の好ましい実施形態は、データIO及びタスクスケジューリングのみを遂行する低待ち時間のリアルタイム処理を含む。これは、不要で且つコストのかかるバッファの必要性を回避する。又、必要なリソースが使用できるタスクのみが実行されるよう確保するための動的なリソースチェック方法も含む。
ホストの処理能力と、メモリのコストと、シリコンのコストとのバランスは、常時変化している。これは、ホストプロセッサとマルチメディア共通プロセッサとの間の最適な作業分担も、時間と共に変化することを意味する。このデバイスは、必要に応じて作業分担を変更できるようにプログラム可能である。
並列処理デバイスの拡張性は、ハードウェア設計及びサポートソフトウェアの両方にとって問題である。より多くの処理ユニットがデバイスに追加されたときには、処理ユニット間のタスクの振り分けが益々困難になり、利益の減少を招くか、又は機能ユニット間の相互接続数の指数関数的な増加を招く。又、このような変化は、一般に、サポートソフトウェアの大規模な変更を必要とするデバイスに対しプログラミングモデルの変更を招く。本発明の好ましい実施形態は、機能ユニット間の相互接続の急増を生じることなく且つデバイスへのソフトウェアインターフェイスに与えられるプログラミングモデルの変更を伴うことなく全ての要素を拡張できる一貫した拡張可能なアーキテクチャーによってこれらの問題に対処する。
図1は、デバイスの基本的なアーキテクチャーを示す。
デバイスは、マルチメディアデータを処理するのに必要な現在及び将来の全てのアルゴリズムに適合できる再構成可能なエンジンと考えられている。これによって行われる作業は、2つの分類に分けられる。リアルタイムスケジューリング及びIO処理の両方は、メディアコントロールコアにより実行され、一方、計算能力の高いデータ処理は、1つ以上の付加的なデータ処理ユニットにより実行される。
この作業分割は、アーキテクチャーの基本的特徴の1つである。
データ処理は、次のような多数のステップより成る。
パラメータフェッチ及び設定;
データフェッチ及び設定;及び
データ記憶。
高いデータ処理スループットを効率的に達成するために、プロセッサは、適度な大きさのデータセットに対して上記オペレーションを行うことが必要である。データセットがあまりに小さいと、プロセッサは、タスク間のコンテクスト切り換えと、それに伴うスレッド状態のセーブ及び再記憶の必要性とにその能力のほとんどの部分を費やすことになる。
メディアコントロールコアは、IOポートとメモリとの間にデータを移動する(データ処理を行えるようにするために)要求に応じるためにのみ必要とされるので、各クロックサイクルにコンテクスト切り換えすることができ、これは、次いで、リアルタイムIOをサポートするための大きなデータバッファの必要性を排除する。データ処理ユニットは、データに対してアルゴリズムの重要な部分を中断なしに実行することにより効率的にデータを処理することができる。
これらの処理要素は、アクティブなアルゴリズムを実行するのに必要なデータセットをキャッシュ処理することにより効率的なデータ移動及び処理をサポートする拡張可能なマルチバンクキャッシュによりサポートされる。
本発明は、その種々の特徴について、請求の範囲に詳細に規定される。
【図面の簡単な説明】
添付図面を参照し、本発明の好ましい実施形態を一例として詳細に説明する。
図1は、本発明の実施形態のブロック図である。
図2は、図1のメディアコントロールコアのブロック図である。
図3は、本発明の第2の実施形態のブロック図である。
図4は、メディアコントロールコアのコントロールユニット命令パイプラインを示すブロック図である。
図5は、図4のデータバンクの1つの内部アーキテクチャーを示すブロック図である。
図6は、メディアコントロールコアによりリソースチェック、ひいては、プロセス選択をいかに実行するか示すブロック図である。
図7は、図1のバンク型キャッシュメモリへいかにアクセスするかを示すブロック図である。
好ましい実施形態の詳細な説明
本発明の実施形態の基本的なアーキテクチャーが図1に示されている。システムの中心は、メディアコントロールコア(MCC)2である。これは、微細粒度のマルチスレッディングプロセッサである。これは、リアルタイムデータ入力及び出力デバイス4に接続できる複数の入力及び出力を有する。デバイス4は、例えば、ビデオソース、オーディオソース、ビデオ出力、オーディオ出力、データソース、記憶装置等である。簡単な例では、1つの入力及び1つの出力のみが与えられる。
又、メディアコントロールコア2には、複数のデータ処理ユニット6も接続される。これらの各々は、データパイプライン10を経てデータの処理を制御するデータ処理コア8を含む。コア8は、パイプライン10のマイクロ命令をデコードしそしてシーケンスする。
又、メディアコントロールコア2には、マルチバンク型キャッシュメモリ12も接続され、このメモリからメディアコントロールコア2及びデータ処理ユニット6によりデータが検索されると共に、メディアコントロールコア2及びデータ処理ユニット6によりこのメモリにデータが書き込まれる。
メディアコントロールコアは、入力からデータ処理コア又は記憶装置へデータを導くと共に出力へデータ供給する微細粒度のマルチスレッディング処理ユニットである。これは、各クロックサイクルにタスクを切り換えできるように構成される。これは、各クロックサイクルに、それが実行できる考えられるオペレーションのどれが、実行されるべきタスクに対して使用可能な全てのリソースを有するか、そしてその中でどれが最も高い優先順位を有するかをチェックすることにより達成される。充分な処理能力が与えられる場合には、各クロックサイクルに2つ以上のオペレーションを開始するように構成することができる。
このリソースチェックは、特定のタスクを実行するに必要な全てのものが存在するよう確保する。これは、データが入力ポートに得られるかどうか(EGビデオデータ)、或いはデータ記憶装置又は出力が使用できるかどうかといった外部リソースを含む。又、一時的な記憶のためのデータバンクや、特定の新たな処理動作に必要な他のデータ又は既に処理されたデータに現在作用していない使用可能な処理コアのような内部リソースも含む。メディアコントロールコアは、入力から適当なデータ処理ユニット6へデータを送って処理を実行し、そして必要なときに必要に応じてキャッシュを使用して出力へデータをルート指定するように動作する。1組の命令の実行が処理ユニットにおいて開始されると、MCCは、それが実行できる種々のスレッド及びそれに対して使用できるリソースを再び探すことができ、その間に、プログラムはデータ処理ユニットにおいて実行を続ける。
メディアコントロールコアのリソース及び優先順位チェックは、ビデオ入力のようなリアルタイムデータとして働くタスクを、現在のリアルタイム入力に通常必要とされる大きなメモリバッファを伴わずに実行できることを意味する。ビデオ入力のようなオペレーションでは、メディアコントロールコアは、IOポートにデータが得られるかどうかを調べ、もしそうであれば、そのデータを受け取って、マルチバンク型キャッシュの一部分又はデータ記憶レジスタへ送り、データ処理ユニット6の1つで処理するための準備をする。
全てのデータ処理ユニット6は、メディアコントロールコア2の制御及びスケジューリングのもとにある。図1に示す例では、これらのユニットは、その関連するデータ処理コア8の制御のもとで、乗算器、加算器、シフタ等の多数の処理要素で作り上げられる処理パイプライン(データパイプライン10)より成り、処理コア8は、一連の命令を実行してデータ処理アルゴリズムを実行する。これらデータ処理コアの各々は、特定のデータ処理を実行するための一連の命令を記憶するそれ自身のマイクロ命令ROM及び/又はRAMを有する。メディアコントロールコアは、データ処理ユニット6を呼び出し、例えばアドレスオフセットをそのマイクロ命令ROMに通して実行の開始を命令することによりその特定のオペレーションシーケンスを実行する。次いで、マルチバンク型キャッシュからのデータ、又は1つの入力からメディアコントロールコアへ通されたデータに対して特定のプロセスを完了まで実行し、その際に、処理が完了したことをメディアコントロールコアに通知する。
図1のマルチバンク型キャッシュ12は、メモリアクセスに対して使用され、これらは全てこのバンクを通してキャッシュ処理される。キャッシュは、複数のバンク14に分割され、その各々は、行われる1つのデータ処理タスクの要件に適合するようにプログラムすることができる。例えば、キャッシュバンクは、3Dグラフィックレンダリングに使用するためにメインメモリからのテクスチャマップをキャッシュ処理するのに専用としてもよい。キャッシュバンクのこのプログラム特性を使用すると、オンチップメモリを最大限に使用できると共に、動的なキャッシュ割り当てを実行することができ、これにより、特定の条件のもとで最良の性能を得ることができる。
更に、多数のキャッシュバンクの使用は、キャッシュを非ブロッキングにすることができる。即ち、キャッシュバンクの1つが、現在満足することのできない要求、例えば、データが現在得られないような読み取り命令を処理している場合には、個別のキャッシュバンクを使用する別の処理スレッドを動作することができる。
図1に示す全デバイスは、拡張可能であり、シリコンの単一断片上に集積チップとして構成することができる。メディアコントロールコア2は、図2を参照して以下に述べるように拡張できる。メディアコントロールコアのサイズが増加するにつれて、メディアコントロールのための同じプログラミングモデルを使用しながらも更に別のデータ処理ユニット6をサポートすることができる。又、更に多数のキャッシュバンクを追加して、更に別のデータ処理ユニットをサポートすることにより、メディアコントロールコア及びデータ処理ユニットに対するデータスループットの有効性を高めることができる。デバイスのプログラムモデルが変化しないので、これは、高度の下位互換性を得られるようにする。
メディアコントロールコアが図2に詳細に示されている。これは、コントロールユニット16と、1組の読み取り/書き込みユニット18と、1組のプログラムカウンタバンク20と、1組のアドレスバンク22と、1組のデータバンク24と、1組の入力/出力バンク26とで構成される。これらのバンクは、全て、メディアコントロールコア状態バス28、メディアコントロールコア制御バス29及びメディアコントロールコアデータ相互接続部30によって互いに接続される。メディアコントロールコアデータ相互接続部は、種々の異なるバンク間にデータを送信するのに使用され、そして状態バスは、入力/出力ポートの状態や、メディアコントロールコアが命令及びデータを送信できるところのデータ処理ユニットの状態のようなデータを供給する。
更に、ROM及びRAMにマイクロ命令を記憶するメモリブロック32は、コントロールユニット16及び上記のユニット18−26に接続される。
コントロールユニットを除いて全てのコア要素18−26は、それらからデータを読み取ったり、それらにデータを書き込んだり、それらに記憶されたデータ間でオペレーションを実行したりすることのできる同じ基本的インターフェイスモデルを有する。各バンクは、処理ユニット及び演算論理ユニット(ALU)と共に、密接接続のローカル記憶レジスタファイルで構成される。
コントロールユニット16は、メディアコントロールコアの実行を制御するのに使用される。これは、各クロックサイクルごとに、メディアコントロール状態バス28により供給される状態情報を使用して、全てのリソースの利用性(例えば入力/出力ポート状態、データ処理ユニットの状態等)を、その制御のもとで各プログラムを実行するのに必要なリソースに対してチェックする。次いで、全てのリソースが使用できる最も優先順位の高いプログラムスレッドに対して命令の実行を開始する。
プログラムカウンタバンクは、メディアコントロールコアによってサポートされる各処理スレッドごとにプログラムカウンタを記憶するのに使用される。これは、メディアコントロールコアがサポートできる各処理スレッドに対するレジスタと、プログラムの進行、ループ動作、分岐等のためにプログラムカウンタに対して全てのオペレーションを実行するAULとで構成される。データバンク24は、メディアコントロールコア内のプログラムの流れを制御するためにデータに対する汎用動作に使用される。それらは、MMCにおいて動作する処理スレッドにより必要に応じて使用できる一般的なリソースである。
アドレスバンク22は、命令及びデータの両方に対するアドレスを記憶しそして操作するのに使用されると共に、データバンク24と同様の一般的なMMCリソースでもある。
入力/出力バンク26は、MCCによりサポートされる入力/出力に対しメディアコントロールコアとリアルタイムデータ流との間のインターフェイスを形成する。それらの状態は、例えばビデオ入力のようなポートにおけるデータの入手性、又は出力のためのデータを取り出すポートの能力を指示する。それらは、オプションとして、データが取り込まれ又は取り出されるときにデータを変換する能力、例えば、データ流のビットスタフィングを含むことができる。
読み取り/書き込みバンク18は、メディアコントロールコアとメモリとの間のインターフェイスを形成する(マルチバンクキャッシュを経て)。一度に2つ以上の処理スレッドを動作できるときには、メモリ要求のブロッキングを回避するために2つ以上の読み取り/書き込みユニットが必要とされる。
メディアコントロールコアは、全ての重要な観点で拡張可能である。これは、記憶(レジスタファイル)及び処理(ALU)をローカライズするバンクから構成されるので、ルート及び相互接続を管理できないという問題を生じることなく付加的なバンクを追加することができる。サポートできる処理スレッドの数は、プログラムカウンタバンクにレジスタを追加しそしてそれに応じてコントロールユニットを変更することにより増加することができる。MCCによりサポートできる入力/出力流の数は、更に別のIOバンクを追加することにより増加することができる。
データスループットは、更に別の読み取り/書き込みユニット18を追加することにより増加できると共に、全MCC処理能力は、更に別のデータ及びアドレスバンク24、22を追加することにより増加できる。
図3は、データ処理マネージメントシステムの特定の実施形態を示すブロック図である。このシステムのMCCは、複数のリアルタイムデータ入力/出力ポートとして働き、そしてそこから受け取った及びそこに出力されるデータを処理するようにデータ処理ユニットを制御する。
図示されたように、ビデオ入力34及びオーディオ入力36が、関連する前プロセッサ38及び40を経てメディアコントロールコアに接続される。対応するビデオ出力42及びオーディオ出力44は、各後プロセッサ46及び48を経てメディアコントロールコア2に接続される。ビデオ及びオーディオ入力及び出力は、デジタル入力及び出力である。
図1の場合と同様に、メディアコントロールコア2は、この場合にメインキャッシュバンクと称するマルチバンク型キャッシュ12に接続される。二次コア8及びデータ(メディア)パイプライン10を含むデータ処理ユニット6は、メディアコントロールコアに直接接続され、そしてそれらに供給されるべきデータを処理するのに使用される。
又、メディアコア2には、処理ユニット50も接続され、これは、デジタル/アナログコンバータ供給コア(DAC供給コア)52と、DAC供給パイプライン54とを備え、このパイプラインは、デジタル/アナログコンバータ56にデータを供給する。その目的は、グラフィック出力を供給することである。このため、処理ユニット50は、フレームバッファインターフェイス58を経てデータをフェッチし、そしてホストコンピュータ映像グラフィックアダプタ(VGA62)用のシステムバス60は、互換性のためにのみ保持される。従って、リアルタイムデータは、ビデオ及びオーディオ入力に送られ、そしてビデオ及びオーディオ出力を経て送り出すことができるが、グラフィック出力は、DAC56により送信することができる。
グラフィック出力のためのデータは、図3ではフレームバッファインターフェイス58を経て接続が示されたグラフィックフレームバッファのようなソースからの非リアルタイムデータ、3Dデータ、又はリアルタイムビデオを処理することにより発生できる。
二次コア8及びメディアパイプライン10は、音声、3D、2D、映像スケーリング、映像デコード等の処理を行うことのできるデータ処理ユニットの一例である。これは、何らかの形式の汎用プロセッサで形成することができる。
DAC供給コア及びDAC供給パイプラインは、DACのためのRGBデータを発生するために多数のフレームバッファからのデータを専用に処理する。これは、ピクセルごとにソースバッファ間で切り換わることができ、従って、YUVを含む多数の映像フォーマットから得られたデータを変換し、そして多数のフレームバッファからのソースデータを混合によるか或いはカラー又はクロマキー動作により合成することができる。
各コアは、ROM及びRAMで形成された関連するマイクロコード記憶装置を有し、これは、明瞭化のためにここには示さないが、プロセッサにより実行されるべき命令を記憶する。キャッシュバンク12は、メディアコントロールコア及びデータ処理ユニット6、50にインターフェイスする。それらは、アドレス変換ユニット64を経てシステムバスにもインターフェイスする。又、それらは、1つ以上のフレームバッファにデータを書き込んだりそこからデータを読み取ったりするためにフレームバッファインターフェイス58にもリンクされる。
データバンク24が図5に示されている。これは、レジスタファイル72と、ALU74と、マルチプレクスユニット76とを含む。データバンクのオペレーションは、レジスタファイルへ入力されるWE、W、R1及びR2と示されたマイクロ命令の多数のビットにより制御される。ALUにより実行されるマイクロ命令の結果は、状態ビットH、S、Zとして得ることができ、これらは、分岐及び条件付き命令を実行するためにメディアコントロールコアのコントロールユニットにルート指定される。
レジスタファイルは、各クロックサイクルに、2つのオペランドを入力からフェッチしそして1つのオペランドを出力に書き込むことができるように構成される。データ入力ポート78及びデータ出力ポート80は、それらが接続されたメディアコントロールコアデータバス30を経て他のデータと通信することができる。従って、図5のデータ流は、図を通して垂直方向下降し、一方、制御情報の流れは、左から右へと進み、コントロールユニットからの制御ビットと、コントロールユニットへ返送されるデータバンクの状態を表す状態ビットとで形成される。
複数のこれらデータバンクが使用され、その各々は同じ形態であり、即ちその各々は、図5に示すようにALUに密接に接続されたそれ自身のレジスタファイルを有する。複数の密接に接続されたレジスタ及びALUを好ましくは1対1の関係で使用するこの構成体は、レジスタバンクと多数のALUとの間の複雑なマルチプレクスが必要とされた多数のALUの公知の構成体とは異なる。
一般に、これらのデータバンクは、MCC内のプログラムの流れを制御するようにデータに対して汎用のオペレーションを実行し、そしてMCCにおいて動作する処理スレッドにより使用することができる。
アドレスバンク22、プログラムカウンタバンク20、IOバンク26、及び読み取り/書き込みユニット18は、全て、同様に構成されて動作するが、それらの実施を最適化して、それらが使用される方法を反映するように、個別のユニットで設けられる。
アドレスバンクは、メモリ(図示せず)へデータアクセスするためのアドレスを記憶しそして操作する。それらは、非符号化アキュムレータを使用し、そして状態バスを経てコントロールユニット16に変更される条件コードを発生しないという点で、データバンクより若干簡単である。
プログラムカウンタバンクは、メディアコントロールコアによってサポートされるスレッドを各々処理するためのプログラムカウンタを記憶するのに使用される。従って、図5に示された形式のバンクにおけるレジスタの数は、MCCがサポートできる処理スレッドの数に等しい。アドレスバンクの場合と同様に、ALUは、プログラムカウンタ動作に使用され、そして非符号化される。これは、コントロールユニット2に返送される条件コードを発生しない。
IOバンクは、IOポートにインターフェイスするのに使用され、レジスタもALUも含まない。それらは、MCCによりサポートされるリアルタイムデータ流とインターフェイスする。状態信号は、ポートにおけるデータの入手性、又はデータを採取するポートの能力を指示する。それらは、データが転送されるときにデータを変換する能力を任意に含むことができる。
読み取り/書き込みユニットは、キャッシュバンク12にインターフェイスする。それらは、レジスタもALUも有していない。読み取りユニットは、アドレスを受け入れ、そしてデータが返送されないときに、データ有効状態ビットをセットする。書き込みユニットは、アドレス及びデータを受け入れる。多数の読み取り及び書き込みユニットを使用し、1つのキャッシュがブロックをアクセスする場合に、別のスレッドが別の読み取り/書き込みユニットを介して実行を継続できるよう確保する。
各データ処理スレッドごとにコントロールユニット(図示せず)をもつ命令バッファは、そのスレッドの次のマイクロ命令及び命令オペランドを記憶する。命令及びオペランドは、その命令を実行するのに必要なリソースを示すビットを含む。これらのリソース要求は、メディアコントロールコア2、外部IOポート20及びデータ処理ユニット6、50の現在状態を示す状態ビットと共にコントロールユニットのリソースチェックロジックへと供給される。ロジックゲートのアレーのような簡単な組合せロジックは、命令を実行できるかどうか決定し、そしてコントロールユニット16の固定優先順位セレクタは、最も優先順位の高い実行可能なスレッドをデータ経路制御パイプライン(図4に示す)へ送り出し、そのプログラムスレッドの実行をスタートする。スレッドタスクは、「受信ビデオデータ」、「プロセス記憶オーディオデータ」等である。
通常、命令は、それが実行されるときに、そのスレッドの次の命令をメモリから読み取ることを必要とする。命令は、命令opコード及びオペランドを含むメモリ(プログラムカウンタで指示された)から読み取られる。命令のopコードフィールドは、次の命令を検索するためにマイクロコードROMをインデックスするのに使用され、それにより得られるマイクロ命令は、命令オペランドフィールドと共にスレッドの命令バッファに記憶される。
リソースチェック及び優先順位が図6に完全に示されている。図示された3つのスレッドに対し、全体的な状態情報は、必要なデータバンク及び必要なアドレスバンクから受け取られ、ルートコントロールデータは、コントロールユニットから、コントロール状態情報は、コントロールユニット16から、そして実行依存性データは、特定のスレッドが依存する他のプロセスから受け取られる。この全ての情報は、リソースチェッカ80へ送られ、該チェッカは、それをIOポートからのデータ、種々のパイプラインデータバンク状態、及び種々のデータ処理ユニットの状態と合成する。これは、考えられる各スレッドに対して行われる。そのデータ処理スレッドを実行できる場合には、優先順位セレクタ82へ出力が発生される。これは、サポートされるデータ処理スレッドの各々の優先順位に関する情報を有し、その結果、最も優先順位の高いスレッドを実行のために選択することができる。例えば、映像のようなリアルタイムデータ入力には高い優先順位が与えられ、これは、バックグランド処理動作より高い優先度をとる。
スレッドの次の命令は既に命令バッファに与えられているので、その命令は、常にリソースチェック及び優先順位選択に使用できる。従って、各クロックサイクルの状態をチェックすることにより実行時間のロスがなくなる。
図4に示すデータ経路コントロールパイプラインは、マイクロ命令のフィールドを異なる深さでパイプラインに入れられるようにすることにより動作する。これは、マイクロ命令が多数のクロックにわたりパイプラインを通るデータの流れを制御できるようにし、ひいては、データのパイプライン処理を制御できるようにする。
図4の回路は、アンドゲート92の出力をそのイネーブル入力に受け取る1対4デコーダ90を備えている。アンドゲート92の入力は、マイクロコード命令からの制御ビットと、命令の条件付き実行に使用される条件コードである。出力選択であるマイクロコード命令からの一対のタイミングヒットがデコーダ90に入力される。デコーダ90の4つの出力は、オアゲート94を経て、シフトレジスタとして構成された4つのD型フリップ−フロップ96への入力を形成する。デコーダ90からの出力は、ゲート94において、レジスタの手前のフリップ−フロップ96の出力(第1フリップ−フロップ96からの出力)とオアされる。ビットは、マイクロコード命令の実行を開始する出力制御ビットとして出現するまで、クロック98によりレジスタに沿ってクロックされる。
従って、制御ビットは、必要なクロックサイクルで行先バンクに到達するようにそのスケジューリングパイプラインの正しい位置に挿入される。概念的には、このような命令ビットパイプラインは、全てのマイクロコード制御ビットに対して存在するが、コントロールパイプラインを実施するのに必要なロジックの量を制限するために、マイクロコードのあるフィールドを配することのできるクロックサイクルに限度が設けられる。
条件付き実行は、条件付きオペレーションを特定しそして条件ビットを発生することにより達成される。2つの形式の条件付きオペレーションがサポートされる。第1の形式は、同じ又は別のバンクからの条件コードでバンクへの書き込みイネーブルパルスを定質化することである。第2の形式は、ある条件コードが真である場合にマイクロ命令ワードが再び実行される(プログラムカウンタからの次の命令ではなく)ことを特定することである。条件コードに対する可能性の数を制限するために、これらの条件付きオペレーションにおいてデータバンク条件コードしか使用できない。
マイクロ命令フォーマットの例
このアーキテクチャーに対するマイクロ命令フォーマットの例を以下に示し、サイクルごとにマルチスレッド処理を達成するためにこれをいかに使用するかについて説明する。
図6には、多数のスレッドのマイクロ命令が示されている。その各々は、次のものを含む。
各バンクに対するコントロールフィールド、例えば、レジスタ選択ビット及びALU制御ビット;
各バンクに対する命令タイミングビット−これらは以下で説明する;
バンク間のデータのルートを制御するルートコントロールビット;
命令を条件付きで繰り返すべきか及びそれが即時データオペランドを含むかどうかを示すコアコントロールビット。
性能のために、命令は、多数のクロックサイクルにわたって実行することが許される。命令の一部分が実行される時間は、コントロールユニット命令パイプライン(図6)に制御ビットを入れる位置を制御するバンクコントロールフィールド内の遅延ビットによりセットされる。
制御ビットは、メディアコントロールコアの将来の状態を表す命令パイプラインに入れられるので、コントロールユニットロジックは、命令遅延がリソースチェック時に準備されそして命令がそれが実行されるいかなるクロックサイクルにも矛盾を生じないよう確保することができる。
実行依存性
ハードウェア設計の複雑さを低く保つために、命令は、多数のクロックサイクルにわたって実行することが許される。命令の一部分が実行される時間は、バンクコントロールフィールド内の遅延ビットにより制御される。
リソースチェックが行われるときにこの命令遅延が各クロックに対して準備され、そしてオペレーションが正しいサイクルで行われるように確保するために、遅延ビットに対応するopコードが、各サイクルにクロックされる1組のラッチへ供給される。これらのラッチの出力は、データパイプラインの将来の状態を表し、そしてリソースチェックロジックへ供給されて、命令がそれが実行されるいかなるクロックサイクルにおいても矛盾を生じないように確保する。
バンク型キャッシュ
マルチバンク型キャッシュは、多数のキャッシュバンクで形成され、図7に示すように処理ユニット及びメモリにインターフェイスする。任意に拡張できるデバイスをサポートするために、多数のキャッシュバンクが使用される。各バンクの使用は、読み取りユニット又は書き込みユニットのようなキャッシュユーザに関連したキャッシュアロケータ86により制御される。これらは、キャッシュバンクを異なる構成で使用するためにプログラム可能に制御される。例えば、コマンドデータに1つのバンクを使用し、3Dテクスチャマップに別のバンクを使用し、そして2Dパラメータに第3のバンクを使用する。キャッシュバンクを構成する機能は、良好なメモリ性能を達成する上で重要である。
キャッシュへアクセスを要求する読み取りユニット88又は書き込みユニット90のような各ポートは、アロケータモジュール86に接続される。これらのモジュールは、ポートによってなされるメモリ要求を検討し、そして適当なキャッシュバンクにその要求をルート指定する。ポートから送られるアドレスは、書き込みアロケータにおいてベースレンジレジスタ対と比較され、アドレスが所与の領域内に入るかどうか決定する。一致が生じた場合には、要求がキャッシュバンクに送られる。一致が生じない場合には、デフォールトキャッシュバンクが使用される。これは、メモリサブシステムへ要求を単に通すことより成る。
ポートに接続されたモジュールのメモリ要求に基づいて2組以上のベース及びレンジレジスタが使用される。
所与の各アロケータから全てのキャッシュバンクにアクセスできるようにする必要はない。ある部分は、他の部分より融通性がなければならない。これは、キャッシュバンクの数を容易に拡張(増加)できるようにする一方、アロケータとキャッシュバンクとの間に必要とされる相互接続の増加を制限する。従って、1組のキャッシュは、ビデオ入力要求並びにオーディオ入力及び出力を処理するように割り当てられる一方、他のキャッシュは、メインメモリからのデータフェッチを主として処理するように割り当てることができる。
各キャッシュバンクは、アービタ94を経て読み取り及び書き込みアロケータに接続される。アービタは、全てのアロケータからアクセスのための要求を受け取り、そしてどのアロケータがその特定のキャッシュバンクへのアクセスを得るべきかを決定することができる。これは、各ポートに優先順位を指定し、そして単純に保留中の最も優先順位の高い要求をアービタが処理するように構成することにより行われる。
システムは、MPEG及びビデオ会議のような他の形式の入力を使用するように拡張することができる。
Claims (31)
- 独立命令スレッドを実行するためのデータ処理マネージメントシステムにおいて、複数のデータ入力と、複数のデータ出力と、各々が上記命令スレッドの少なくとも1つを構成する命令を実行するためのデータ処理動作を実行できる複数のデータ処理手段と、データ記憶手段と、コントロール手段とを備えており、
上記コントロール手段は、
1つ以上のプログラム可能なルート指定動作において、上記データ入力のうちの選択された1つと、上記データ出力のうちの選択された1つと、上記データ処理手段のうちの選択された1つと、データ記憶手段との間に、複数のルート指定動作の中から選択されたルート指定動作にて、データを選択的にルート指定するための手段と、
データがルート指定された各データ処理手段が上記命令スレッドのうちの1つからの命令に基づいて多数の所定のデータ処理動作の1つを開始するようにさせる手段と、
どのルート指定動作及びどのデータ処理動作を実行できるか繰り返し決定するための手段と、
実行できると決定されたルート指定動作またはデータ処理動作のうちの少なくとも1つの実行を開始するための手段と、
を備えたことを特徴とするデータ処理マネージメントシステム。 - 実行できる各ルート指定動作及びデータ処理動作に優先順位を指定するための手段と、実行できるルート指定動作及びデータ処理動作のどれに最も高い優先順位が指定されたかを決定するための手段とを備え、実行を開始する上記手段は、最も高い優先順位が指定された動作の実行を開始するように制御される請求項1に記載のデータ処理マネージメントシステム。
- 少なくとも1つのデータ入力はリアルタイム入力であり、そしてその入力にデータを受信する動作に最も高い優先順位が指定される請求項1又は2に記載のデータ処理マネージメントシステム。
- データ入力はビデオデータ入力である請求項3に記載のデータ処理マネージメントシステム。
- データ入力はオーディオ入力である請求項3に記載のデータ処理マネージメントシステム。
- どのルート指定動作及びどのデータ処理動作を実行できるか繰り返し決定する上記手段、及びそのように決定された動作のどれに最も高い優先順位が指定されたかを決定する上記手段は、上記コントロール手段に関連したクロック手段の各クロックサイクルにこの決定を行う請求項2ないし5のいずれかに記載のデータ処理マネージメントシステム。
- 上記のように決定されて最も高い優先順位が指定された動作の開始は、その後のクロックサイクルに行われる請求項6に記載のデータ処理マネージメントシステム。
- どのルート指定動作及びデータ処理動作を実行できるか決定する上記手段は、状態バスを経て受け取られそして内部及び/又は外部リソースにより発生されたリソース状態ビットからこの決定を行う請求項1ないし7のいずれかに記載のデータ処理マネージメントシステム。
- 上記データ処理手段は、その処理手段により実行されるべき処理動作に関連したマイクロコード命令の記憶を含む請求項1ないし8のいずれかに記載のデータ処理マネージメントシステム。
- 実行を開始する上記手段は、動作を実行すべき上記データ処理手段のマイクロコード命令記憶にアドレスオフセットを与えることにより処理動作の実行を開始する請求項9に記載のデータ処理マネージメントシステム。
- 上記データ記憶手段は、キャッシュメモリ手段を含む請求項1ないし10のいずれかに記載のデータ処理マネージメントシステム。
- 上記キャッシュメモリ手段は、キャッシュメモリ記憶装置の複数のバンクを含む請求項11に記載のデータ処理マネージメントシステム。
- 上記キャッシュメモリへのアクセスを有するシステムの各部分は、上記キャッシュメモリの異なるバンクへのアクセスを許すようにプログラムできるキャッシュメモリ割り当て手段に関連される請求項1に記載のデータ処理マネージメントシステム。
- 上記コントロール手段は、そのコントロール手段内でデータに対して動作を実行するための1組のデータバンクを含む請求項1ないし13のいずれかに記載のデータ処理マネージメントシステム。
- 上記コントロール手段は、システムにより実行されるべきデータ処理動作の各々に対して1つづつ、1組のアドレスバンクを含む請求項1ないし14のいずれかに記載のデータ処理マネージメントシステム。
- 上記コントロール手段は、システムにより実行されるべきデータ処理動作の各々に対して現在プログラムアドレスを記憶するためのプログラムカウンタバンクを含む請求項1ないし15のいずれかに記載のデータ処理マネージメントシステム。
- 上記コントロール手段は、上記入力及び出力手段とインターフェイスするための1組の入力/出力バンクを含む請求項1ないし16のいずれかに記載のデータ処理マネージメントシステム。
- 上記コントロール手段は、上記データ記憶手段とインターフェイスするための読み取り/書き込みユニットを含む請求項1ないし17のいずれかに記載のデータ処理マネージメントシステム。
- 各データバンクは、演算論理ユニット(ALU)と、そのALUのみに関連したレジスタファイルとを含む請求項12に記載のデータ処理マネージメントシステム。
- 上記データバンク、アドレスバンク、プログラムカウンタバンク、入力/出力バンク、及び読み取り/書き込みバンクは、全て、共通の状態バス、共通のデータ相互接続部及び共通のコントロールバスに接続される請求項14ないし19のいずれかに記載のデータ処理マネージメントシステム。
- 実行されるべきルート指定動作またはデータ処理動作の実行を開始する上記手段は、その動作が実行でき且つ最も高い優先順位を有すると決定された後、続くクロックサイクルにてその最も高い優先順位を有する実行できるそのルート指定動作またはデータ処理動作を開始させるように構成されている請求項6に記載のデータ処理マネージメントシステム。
- データ処理マネージメントシステムにおいて、複数のデータ入力と、複数のデータ出力と、複数のデータ処理手段と、データ記憶手段と、コントロール手段とを備えており、
上記コントロール手段は、
複数のルート指定動作にて上記データ処理手段のうちの選択された1つを通して上記データ入力の各々から上記データ出力のうちの選択された1つへとデータをルート指定する手段と、
データがルート指定される上記データ処理手段の各々がそのデータに対するデータ処理動作を実行するようにさせる手段と、
複数のルート指定動作の中からどのルート指定動作が実行できるか及び複数のデータ処理動作の中からどのデータ処理動作が実行できるかを繰り返し決定する手段と、
どの動作が実行できるかを決定する上記手段が実行できると決定したルート指定動作及びデータ処理動作の実行を開始する手段と、
を備えることを特徴とするデータ処理マネージメントシステム。 - 各ルート指定動作及びデータ処理動作に優先順位を指定するための手段と、実行できるルート指定動作及びデータ処理動作のどれに最も高い優先順位が指定されたかを決定するための手段とを備え、動作の実行を開始する上記手段は、最も高い優先順位が指定されたルート指定動作またはデータ処理動作の実行を開始するように構成されている請求項22に記載のデータ処理マネージメントシステム。
- どの動作が実行できるかを繰り返し決定する上記手段及び実行できるどの動作が最も高い優先順位を有しているかを決定する上記手段は、どのルート指定動作及びデータ処理動作が実行できるか、且つそれらの動作のうちのどれが最も高い優先順位を有するかを、上記コントロール手段と一体的なクロック手段の各クロックサイクル中に決定するようにまとめて構成されている請求項23に記載のデータ処理マネージメントシステム。
- 上記複数のデータ処理手段は、別々の命令スレッドの一部分を構成する別々の命令を実行するため、データに対するデータ処理動作を独立的且つ同時に実行するように構成されており、上記コントロール手段は、上記複数のデータ処理手段がデータ処理動作を実行している間に、上記コントロール手段がどのルート指定動作及びデータ処理動作が実行できるか且つ実行できる動作のうちのどの動作が最も高い優先順位を有するかを同時に決定するように構成されている請求項24に記載のデータ処理マネージメントシステム。
- どの動作が実行できるかを繰り返し決定する上記手段は、上記コントロール手段と一体的なクロック手段の各クロックサイクル中に、どのルート指定動作及びデータ処理動作が実行できるかを決定するように構成されている請求項22に記載のデータ処理マネージメントシステム。
- 別々の命令スレッドを独立的に実行する方法であって、各命令スレッドに基づいて処理されるべきデータは、複数のデータ入力のうちの1つから与えられ、上記命令スレッドの処理の結果として生成されるデータは、複数のデータ出力のうちの1つへと送られるような方法において、
各命令スレッドについて、そのスレッドにて実行されるべき次の処理ステップのために、実行されるべき処理ステップを指示するオプコードと、該処理ステップが実行されるべきデータ及びその命令を実行するのに必要とされるリソースを記述または定義する少なくとも1つのオペランドとを含むスレッドマイクロ命令をアセンブルし、
上記複数のスレッドマイクロ命令について、そのマイクロ命令が実行されるべき相対的優先順位を確立し、
各スレッドマイクロ命令について、そのマイクロ命令が実行できるかの決定がなされるように、その必要とされるリソースを定義するマイクロ命令に対するデータ及びそれらリソースの使用可能性のチェックに基づいてリソースがそのマイクロ命令を実行するのに使用可能であるかを決定し、
実行できるスレッドマイクロ命令について、どのスレッドマイクロ命令が最も高い優先順位を有するかを決定し、
最も高い優先順位を有するスレッドマイクロ命令について、そのスレッドマイクロ命令のオプコードに基づいて、上記データ入力の選択された1つから処理されるべきデータを検索し、該データをデータ処理手段にて処理し、及び/又は上記データ入力の選択された1つへ該データを送る、
という各段階を含むことを特徴とする方法。 - 上記データ処理手段がマイクロ命令を実行している間、次のスレッドマイクロ命令を実行するためのリソースの使用可能性を決定する上記段階及びすべてのリソースが使用可能であるスレッドマイクロ命令について最も高い優先順位を有するスレッドマイクロ命令を決定する上記段階を同時に実行する請求項27に記載の方法。
- 複数の別々のデータ処理手段が与えられ、最も高い優先順位を有するスレッドマイクロ命令を決定する上記段階の後、その最も高い優先順位を有するスレッドマイクロ命令が実行のため多数の上記データ処理手段のうちのどれかに送られ、上記個々のデータ処理手段が異なる命令スレッドのスレッドマイクロ命令を同時に実行する請求項28に記載の方法。
- キャッシュメモリが与えられ、上記データ入力から上記キャッシュメモリへデータが書き込まれ、上記個々のデータ処理手段は、スレッドマイクロ命令の処理中に上記キャッシュメモリからデータを読み取り、また上記キャッシュメモリへデータを書き込み、データは、上記キャッシュメモリから上記データ出力へ読み出され、上記キャッシュメモリは、上記データ入力の複数のものがデータを書き込むことができ、上記データ処理手段の複数のものがデータを読み出したり書き込んだりすることができ、及び/又はデータが上記データ出力の複数のものへと読み出されうる複数のメモリ場所を有している請求項29に記載の方法。
- 上記データ処理手段は、該データ処理手段によって実行されるマイクロ命令が記憶されるメモリを有しており、データ処理手段でデータを処理する上記段階が実行されるべき時、そのデータ処理手段のマイクロ命令メモリにおけるオフセットアドレスがそのデータ処理手段へ供給され、上記オフセットアドレスは、実行すべきスレッドマイクロ命令に基づいており、上記オフセットアドレスがデータ処理手段によって受け取られることにより、該データ処理手段が該オフセットアドレスによって特定されたデータ処理手段マイクロ命令に従ってそのデータを処理するようにさせられる請求項27に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9607153A GB2311882B (en) | 1996-04-04 | 1996-04-04 | A data processing management system |
GB9607153.5 | 1996-04-04 | ||
PCT/GB1997/000972 WO1997038372A1 (en) | 1996-04-04 | 1997-04-04 | A data processing management system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000509528A JP2000509528A (ja) | 2000-07-25 |
JP3559046B2 true JP3559046B2 (ja) | 2004-08-25 |
Family
ID=10791630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53596997A Expired - Lifetime JP3559046B2 (ja) | 1996-04-04 | 1997-04-04 | データ処理マネージメントシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US5968167A (ja) |
EP (1) | EP0891588B1 (ja) |
JP (1) | JP3559046B2 (ja) |
DE (1) | DE69709078T2 (ja) |
ES (1) | ES2171919T3 (ja) |
GB (1) | GB2311882B (ja) |
WO (1) | WO1997038372A1 (ja) |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
DE19817024A1 (de) * | 1998-04-17 | 1999-10-21 | Alcatel Sa | Integrierte Schaltung |
FI107365B (fi) * | 1998-04-27 | 2001-07-13 | Nokia Mobile Phones Ltd | Menetelmä ja järjestelmä muuttuvan datankäsittelyn ilmaisemiseksi tiedonsiirtoyhteydessä |
US6505228B1 (en) | 1998-07-22 | 2003-01-07 | Cisco Technology, Inc. | Dynamic determination of execution sequence |
US6205465B1 (en) * | 1998-07-22 | 2001-03-20 | Cisco Technology, Inc. | Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information |
US6041400A (en) * | 1998-10-26 | 2000-03-21 | Sony Corporation | Distributed extensible processing architecture for digital signal processing applications |
US6300962B1 (en) * | 1998-12-23 | 2001-10-09 | Scientific-Atlanta, Inc. | Method and apparatus for providing reliable graphic memory operations in a set-top box environment |
US6209078B1 (en) * | 1999-03-25 | 2001-03-27 | Lsi Logic Corporation | Accelerated multimedia processor |
US20080184017A1 (en) * | 1999-04-09 | 2008-07-31 | Dave Stuttard | Parallel data processing apparatus |
WO2000079395A1 (en) * | 1999-06-21 | 2000-12-28 | Bops Incorporated | Methods and apparatus for establishing port priority functions in a vliw processor |
US6542921B1 (en) * | 1999-07-08 | 2003-04-01 | Intel Corporation | Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor |
US6606704B1 (en) * | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
US6678277B1 (en) * | 1999-11-09 | 2004-01-13 | 3Com Corporation | Efficient means to provide back pressure without head of line blocking in a virtual output queued forwarding system |
US6898617B2 (en) * | 1999-11-18 | 2005-05-24 | International Business Machines Corporation | Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations by dynamically altering eligible thread pools |
US7518993B1 (en) * | 1999-11-19 | 2009-04-14 | The United States Of America As Represented By The Secretary Of The Navy | Prioritizing resource utilization in multi-thread computing system |
US7793076B1 (en) * | 1999-12-17 | 2010-09-07 | Intel Corporation | Digital signals processor having a plurality of independent dedicated processors |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US7093109B1 (en) | 2000-04-04 | 2006-08-15 | International Business Machines Corporation | Network processor which makes thread execution control decisions based on latency event lengths |
US6931641B1 (en) | 2000-04-04 | 2005-08-16 | International Business Machines Corporation | Controller for multiple instruction thread processors |
US20060036756A1 (en) * | 2000-04-28 | 2006-02-16 | Thomas Driemeyer | Scalable, multi-user server and method for rendering images from interactively customizable scene information |
GB2367913A (en) * | 2000-09-16 | 2002-04-17 | Motorola Inc | Processor resource scheduler |
AU2001296604A1 (en) * | 2000-10-04 | 2002-04-15 | Pyxsys Corporation | Simd system and method |
US6684262B1 (en) | 2000-10-25 | 2004-01-27 | International Business Machines Corporation | Method and system for controlling peripheral device interface behavior using thread registration |
US7225320B2 (en) * | 2000-12-28 | 2007-05-29 | Koninklijke Philips Electronics N.V. | Control architecture for a high-throughput multi-processor channel decoding system |
GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US7320065B2 (en) | 2001-04-26 | 2008-01-15 | Eleven Engineering Incorporated | Multithread embedded processor with input/output capability |
US7548586B1 (en) | 2002-02-04 | 2009-06-16 | Mimar Tibet | Audio and video processing apparatus |
US8024735B2 (en) | 2002-06-14 | 2011-09-20 | Intel Corporation | Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution |
ITTO20020570A1 (it) * | 2002-07-01 | 2004-01-02 | St Microelectronics Srl | Procedimento e dispositivo per elaborare segnali video per la visualizzazione su un display e relativo prodotto informatico. |
JP2006506349A (ja) * | 2002-09-13 | 2006-02-23 | メットコン・メディシン・アクチボラゲット | 腸洗浄法における使用のための組成物および方法 |
US6925643B2 (en) * | 2002-10-11 | 2005-08-02 | Sandbridge Technologies, Inc. | Method and apparatus for thread-based memory access in a multithreaded processor |
US7395408B2 (en) * | 2002-10-16 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Parallel execution processor and instruction assigning making use of group number in processing elements |
US20040225840A1 (en) * | 2003-05-09 | 2004-11-11 | O'connor Dennis M. | Apparatus and method to provide multithreaded computer processing |
US20050050310A1 (en) * | 2003-07-15 | 2005-03-03 | Bailey Daniel W. | Method, system, and apparatus for improving multi-core processor performance |
US7003640B2 (en) * | 2003-07-28 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Power-aware adaptation in an information server |
US8463996B2 (en) * | 2003-08-19 | 2013-06-11 | Oracle America, Inc. | Multi-core multi-thread processor crossbar architecture |
US7239322B2 (en) | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US7472390B2 (en) * | 2003-10-01 | 2008-12-30 | Intel Corporation | Method and apparatus to enable execution of a thread in a multi-threaded computer system |
US6897871B1 (en) | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
AU2003295276A1 (en) * | 2003-12-24 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | System with centralized resource manager |
US9047094B2 (en) | 2004-03-31 | 2015-06-02 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor |
US8484441B2 (en) * | 2004-03-31 | 2013-07-09 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths |
US7949856B2 (en) * | 2004-03-31 | 2011-05-24 | Icera Inc. | Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit |
GB2415060B (en) * | 2004-04-16 | 2007-02-14 | Imagination Tech Ltd | Dynamic load balancing |
US20050268019A1 (en) * | 2004-06-01 | 2005-12-01 | Che-Hui Chang Chien | [interface and system for transmitting real-time data ] |
EP1605354A1 (en) * | 2004-06-10 | 2005-12-14 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for improved synchronization of a processing unit for multimedia streams in a multithreaded environment |
GB0415851D0 (en) | 2004-07-15 | 2004-08-18 | Imagination Tech Ltd | Microprocessor output ports and control of instructions provided therefrom |
US7552316B2 (en) * | 2004-07-26 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for compressing instructions to have consecutively addressed operands and for corresponding decompression in a computer system |
US7418576B1 (en) * | 2004-11-17 | 2008-08-26 | Nvidia Corporation | Prioritized issuing of operation dedicated execution unit tagged instructions from multiple different type threads performing different set of operations |
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US7644221B1 (en) | 2005-04-11 | 2010-01-05 | Sun Microsystems, Inc. | System interface unit |
GB0519597D0 (en) * | 2005-09-26 | 2005-11-02 | Imagination Tech Ltd | Scalable multi-threaded media processing architecture |
US20070101332A1 (en) * | 2005-10-28 | 2007-05-03 | International Business Machines Corporation | Method and apparatus for resource-based thread allocation in a multiprocessor computer system |
US7656409B2 (en) * | 2005-12-23 | 2010-02-02 | Intel Corporation | Graphics processing on a processor core |
GB2435116B (en) | 2006-02-10 | 2010-04-07 | Imagination Tech Ltd | Selecting between instruction sets in a microprocessors |
US7802073B1 (en) | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
JP4878487B2 (ja) * | 2006-03-30 | 2012-02-15 | キヤノン株式会社 | 情報配信装置、情報配信システム、情報処理方法、およびプログラム |
GB0613289D0 (en) * | 2006-07-04 | 2006-08-16 | Imagination Tech Ltd | Synchronisation of execution threads on a multi-threaded processor |
US7685409B2 (en) * | 2007-02-21 | 2010-03-23 | Qualcomm Incorporated | On-demand multi-thread multimedia processor |
JP5223220B2 (ja) * | 2007-03-30 | 2013-06-26 | 日本電気株式会社 | ベクトル処理装置及びベクトル処理システム |
US8219788B1 (en) * | 2007-07-23 | 2012-07-10 | Oracle America, Inc. | Virtual core management |
GB2451845B (en) * | 2007-08-14 | 2010-03-17 | Imagination Tech Ltd | Compound instructions in a multi-threaded processor |
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
GB2457265B (en) | 2008-02-07 | 2010-06-09 | Imagination Tech Ltd | Prioritising of instruction fetching in microprocessor systems |
GB2458487B (en) * | 2008-03-19 | 2011-01-19 | Imagination Tech Ltd | Pipeline processors |
US8458380B2 (en) * | 2008-03-26 | 2013-06-04 | Qualcomm Incorporated | Off-line task list architecture utilizing tightly coupled memory system |
US8520571B2 (en) | 2008-03-26 | 2013-08-27 | Qualcomm Incorporated | Reconfigurable wireless modem sub-circuits to implement multiple air interface standards |
US8787433B2 (en) * | 2008-03-28 | 2014-07-22 | Qualcomm Incorporated | Wall clock timer and system for generic modem |
ES2341414B1 (es) * | 2008-06-10 | 2011-05-23 | Francisco Vega Quevedo | Medios y procedimiento de control de explotaciones agricolas agrupadas. |
US9026424B1 (en) * | 2008-10-27 | 2015-05-05 | Juniper Networks, Inc. | Emulation of multiple instruction sets |
GB2466984B (en) | 2009-01-16 | 2011-07-27 | Imagination Tech Ltd | Multi-threaded data processing system |
JP4878054B2 (ja) * | 2009-03-03 | 2012-02-15 | 日本電信電話株式会社 | 映像解析装置,映像解析方法および映像解析プログラム |
GB2469822B (en) | 2009-04-28 | 2011-04-20 | Imagination Tech Ltd | Method and apparatus for scheduling the issue of instructions in a multithreaded microprocessor |
GB2486485B (en) | 2010-12-16 | 2012-12-19 | Imagination Tech Ltd | Method and apparatus for scheduling the issue of instructions in a microprocessor using multiple phases of execution |
US9424685B2 (en) | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
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 |
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 |
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 |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US9146747B2 (en) | 2013-08-08 | 2015-09-29 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing configurable computational imaging pipeline |
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 |
US10445240B2 (en) * | 2014-08-01 | 2019-10-15 | Analog Devices Global Unlimited Company | Bus-based cache architecture |
US10460704B2 (en) | 2016-04-01 | 2019-10-29 | Movidius Limited | Systems and methods for head-mounted display adapted to human visual mechanism |
US10122642B2 (en) * | 2016-09-29 | 2018-11-06 | Intel IP Corporation | Managing a data stream in a multicore system |
US10949947B2 (en) | 2017-12-29 | 2021-03-16 | Intel Corporation | Foveated image rendering for head-mounted display devices |
US10614406B2 (en) | 2018-06-18 | 2020-04-07 | Bank Of America Corporation | Core process framework for integrating disparate applications |
US10691490B2 (en) * | 2018-07-06 | 2020-06-23 | Apple Inc. | System for scheduling threads for execution |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2457521B1 (fr) * | 1979-05-23 | 1985-12-27 | Thomson Csf | Systeme multiprocesseur de traitement de signal |
US4985831A (en) * | 1988-10-31 | 1991-01-15 | Evans & Sutherland Computer Corp. | Multiprocessor task scheduling system |
CA2016348C (en) * | 1989-05-10 | 2002-02-05 | Kenichi Asano | Multiprocessor type time varying image encoding system and image processor |
US5487153A (en) * | 1991-08-30 | 1996-01-23 | Adaptive Solutions, Inc. | Neural network sequencer and interface apparatus |
JPH05173989A (ja) * | 1991-12-24 | 1993-07-13 | Kawasaki Steel Corp | 計算機及びマルチプロセッサ計算装置 |
JP3776449B2 (ja) * | 1992-12-23 | 2006-05-17 | セントル エレクトロニク オルロジェール ソシエテ アノニム | マルチタスク低電力制御装置 |
US5511002A (en) * | 1993-09-13 | 1996-04-23 | Taligent, Inc. | Multimedia player component object system |
JP3501485B2 (ja) * | 1993-12-24 | 2004-03-02 | キヤノン株式会社 | マルチメディア機器の管理システムおよび管理方法 |
US5689674A (en) * | 1995-10-31 | 1997-11-18 | Intel Corporation | Method and apparatus for binding instructions to dispatch ports of a reservation station |
US5748921A (en) * | 1995-12-11 | 1998-05-05 | Advanced Micro Devices, Inc. | Computer system including a plurality of multimedia devices each having a high-speed memory data channel for accessing system memory |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
-
1996
- 1996-04-04 GB GB9607153A patent/GB2311882B/en not_active Revoked
-
1997
- 1997-04-03 US US08/834,808 patent/US5968167A/en not_active Expired - Lifetime
- 1997-04-04 DE DE69709078T patent/DE69709078T2/de not_active Expired - Lifetime
- 1997-04-04 WO PCT/GB1997/000972 patent/WO1997038372A1/en active IP Right Grant
- 1997-04-04 ES ES97915617T patent/ES2171919T3/es not_active Expired - Lifetime
- 1997-04-04 EP EP97915617A patent/EP0891588B1/en not_active Expired - Lifetime
- 1997-04-04 JP JP53596997A patent/JP3559046B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000509528A (ja) | 2000-07-25 |
GB9607153D0 (en) | 1996-06-12 |
GB2311882B (en) | 2000-08-09 |
ES2171919T3 (es) | 2002-09-16 |
EP0891588B1 (en) | 2001-12-12 |
GB2311882A (en) | 1997-10-08 |
US5968167A (en) | 1999-10-19 |
WO1997038372A1 (en) | 1997-10-16 |
EP0891588A1 (en) | 1999-01-20 |
DE69709078T2 (de) | 2002-10-31 |
DE69709078D1 (de) | 2002-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3559046B2 (ja) | データ処理マネージメントシステム | |
KR100236527B1 (ko) | 벡터 레지스터의 복수 뱅크를 사용한 단일 명령복수 데이터 처 리 | |
US7159099B2 (en) | Streaming vector processor with reconfigurable interconnection switch | |
JP4879307B2 (ja) | プロセッサでの条件付き実行をサポートする装置及びその方法 | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US6826674B1 (en) | Program product and data processor | |
US6581152B2 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
JP4657455B2 (ja) | データプロセッサ | |
US6330657B1 (en) | Pairing of micro instructions in the instruction queue | |
JP2014501009A (ja) | データを移動させるための方法及び装置 | |
JP2002536738A (ja) | 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム | |
JP2010009610A (ja) | プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法 | |
TW201346733A (zh) | 具有為向量衝突指令與置換指令所共享的全連接互連的處理器 | |
Pechanek et al. | The ManArray/sup TM/embedded processor architecture | |
EP0952528A2 (en) | Information processing apparatus and storage medium | |
US6948049B2 (en) | Data processing system and control method | |
US6782470B1 (en) | Operand queues for streaming data: A processor register file extension | |
US20100281234A1 (en) | Interleaved multi-threaded vector processor | |
KR100267092B1 (ko) | 멀티미디어신호프로세서의단일명령다중데이터처리 | |
US7577824B2 (en) | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution | |
JPH10143494A (ja) | スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理 | |
JP5372307B2 (ja) | データ処理装置およびその制御方法 | |
US20100281236A1 (en) | Apparatus and method for transferring data within a vector processor | |
KR20010072490A (ko) | 레지스터 스택을 포함하는 데이터 프로세서, 그 처리방법, 컴퓨터 프로그램 제품 및 멀티미디어 장치 | |
JP2004102988A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20031202 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040302 |
|
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: 20040420 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040520 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 9 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |