JP2002532801A - マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング - Google Patents

マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング

Info

Publication number
JP2002532801A
JP2002532801A JP2000588668A JP2000588668A JP2002532801A JP 2002532801 A JP2002532801 A JP 2002532801A JP 2000588668 A JP2000588668 A JP 2000588668A JP 2000588668 A JP2000588668 A JP 2000588668A JP 2002532801 A JP2002532801 A JP 2002532801A
Authority
JP
Japan
Prior art keywords
priority
stream
record
code
streams
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000588668A
Other languages
English (en)
Other versions
JP3877527B2 (ja
Inventor
ネミロフスキイ,マリオ・デイ
ネミロフスキイ,アドルフオ・エム
サンカー,ナレンドラ
Original Assignee
クリアウオーター・ネツトワークス・インコーポレイテツド
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 クリアウオーター・ネツトワークス・インコーポレイテツド filed Critical クリアウオーター・ネツトワークス・インコーポレイテツド
Publication of JP2002532801A publication Critical patent/JP2002532801A/ja
Application granted granted Critical
Publication of JP3877527B2 publication Critical patent/JP3877527B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 マルチストリーミングプロセッサ14は、複数のスレッド1−3を処理するために複数のストリーム4、1つまたは複数のストリーム4のためのプライオリティコード7、8のプライオリティレコードを含む命令スケジューラ5を持つ。プライオリティコード7、8は、いくつかの実施形態では、どのストリーム4がいかなる時点でアクセス権を持つかを決めるばかりでなく、リソース10−13への相対的アクセス権を決定する。その他の実施形態では、プライオリティは、動的に決定され、即座に変更される、すなわち、オンチップ処理統計情報のような様々な基準によって、1つまたは複数のプライオリティアルゴリズムを実行することにより、オフチップ9からの入力によって、ストリーム負荷に従って、あるいはこれらの方法の組合わせにより決定、変更が行われる。ある実施形態では、特殊コードがストリームの無効化に使われ、ストリームがオンチップイベント、処理統計情報、オフチップ入力、プロセッサ割り込みなどの様々な方法によって動的に有効化/無効化されることもある。IPルータやデジタルマイクロプロセッサを含む、いくつかの特定の応用例を示す。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、デジタルマイクロプロセッサの分野に関わるものであり、特に当分
野ではマルチストリーミングプロセッサと呼ばれている、複数のプロセッシング
ストリームで動作可能な装置に関わるものである。
【0002】 (発明の背景) 現在複数のスレッドを処理できるマルチストリーミングプロセッサが当分野で
は知られており、活発な研究開発の対象になっている。本発明はこの分野での従
来の成果に注目し、その上に機構や方法においてさらに新しいまた自明のもので
はない改善を提供するものである。発明者は、この本願において、本発明のいく
つかの面に対し追加の背景とコンテキストを提供する、マルチストリーミングプ
ロセッサの専門分野に属するいくつかの公開論文を一覧にした情報開示説明を提
供する。
【0003】 定義のために、本明細書では、ストリームを、主として命令スレッドをサポー
トし処理できるプロセッサに関するハードウェア構造を指す語として使用する。
スレッドは、ソフトウェアまたはアプリケーションコンテキストによって定義さ
れる。たとえば、デスクトップコンピュータを動かすCPUとして実装されてい
るマルチストリーミングプロセッサは、同時にワードプロセッサプログラムやオ
ブジェクト指向作図プログラムのような複数のアプリケーションのスレッドを処
理することができる。また、マルチストリーム対応プロセッサは、データパケッ
トネットワークのルータのように、定期的に人間が介在しなくてもマシーンを駆
動することができる。このコンテキストにおいては、例えば、ネットワークでの
データパケットの処理と転送のために1つまたは複数のアプリケーション(コー
ドセット)が存在し、ネットワークに接続されている他のルータやサーバとのQ
uality of Service(QoS)ネゴシエーションのために別の
アプリケーションが存在していると言うことができる。内部機能のためのプログ
ラム済みスケジューリングと共に、処理のために受け取られるデータの性質が、
アプリケーションルーチンの呼び出しとサービス提供を規定する。
【0004】 いずれの場合でも、複数のスレッドを処理するプロセッサの最大能力は、ハー
ドウェアによって決まるストリームの数に固定されている。したがって、シング
ルスレッドを実行するマルチストリーミングプロセッサは、シングルストリーム
プロセッサとして動作する。
【0005】 先に説明し、この場合はIDSが提供している論文でも説明されているように
、スーパースケーラプロセッサも広く知られている。この用語は、プロセッサチ
ップに実装されている複数の機能ユニットと、利用可能な個別機能ユニットに命
令を発行する能力を、持つプロセッサを指している。現在製造されているほとん
どのCPUプロセッサは、複数の機能ユニットを持っている。浮動小数点演算ユ
ニット、整数演算ユニット、ロジックユニット、ブランチ予測ユニット、ロード
/ストアユニットなど多数のユニットを持っているプロセッサもある。マルチス
トリーミングスーパースケーラプロセッサも現在知られている。
【0006】 発明者は、機能ユニットの数に拘らず、ストリームから機能リソースへのスケ
ジューリング命令に関して、ほとんど無視されている分野があると考える。すな
わち、どのストリームに機能リソースへのプライオリティが与えられるかという
、プライオリティの問題である。これは、すべてのマルチストリーミングプロセ
ッサで問題となり、複数の命令スレッドを実行するスーパースケーラプロセッサ
ではより複雑な問題となりうる。現在ほとんどの開発において、スケジューリン
グはプロセッサ使用効率を最大化するように開発されている。発明者は、急速に
成長している技術分野へのデジタル処理の急速な普及によって、スレッド処理や
プロセッサリソースへのアクセスの動的優先順位付けが緊急に必要になったこと
を発見した。
【0007】 多くのアプリケーションの処理において、どちらも重視しなければならないが
、プロセッサの可用性よりもアプリケーションをどう処理するかの方が重大な問
題であることが発明者に明らかとなった。これまでは、プロセッサの可用性ばか
りに注意が向けられていた。たとえば、理論的またはアカデミックな使用は別と
して、マルチストリーミングプロセッサ向けのほとんどの実際のアプリケーショ
ンでは、リアルタイムな要求というものが存在する。さらに、実行数に依存して
、実行中に、アプリケーションスレッドの緊急性が、他のスレッドと関連して変
わることがある。現在利用されている単純なシェアリングやスケジューリングの
手法は、実時間の問題に対応していない。
【0008】 したがって、現在、明らかに求められているのは、スーパースケーラプロセッ
サを含む、マルチストリーミングプロセッサ向けのタスクやスレッドを高度にま
た動的にスケジューリングし優先順位付けするための機構や方法である。本発明
は、以下で詳細に説明するように、この機構や方法を明らかにする。
【0009】 (発明の要約) 本発明の好適実施形態において、1つまたは複数の命令スレッドをストリーミ
ングするための複数のストリーム、ストリームからの命令を処理するための機能
リソースセット、機能リソースへのストリームのアクセスを管理する命令スケジ
ューラ、ストリームと関連したプライオリティコードのプライオリティレコード
から構成されるマルチストリーミングプロセッサが提供される。いかなる時点で
も、命令スケジューラは、プライオリティレコードに従って機能リソースへのス
トリームのアクセスを管理する。
【0010】 ある実施形態では、プライオリティレコードが少なくとも1つのストリームと
結び付けられている1つまたは複数のプライオリティコードから構成され、プラ
イオリティレコードは静的であり一定である。また、ある実施形態では、プライ
オリティレコードが一貫した反復的なやり方で変化する実施形態も考えうる。ま
た、プライオリティコントローラが処理中に1つまたは複数のプライオリティコ
ードを動的に変えるような、プライオリティレコードと結合されているプライオ
リティコントローラをプロセッサが持つこともある。プライオリティコードの変
更は、少なくともその一部がチップ上の処理利統計情報の変更によって決められ
るやり方で実現されることもある。また、プライオリティコードの決定が、ある
実施形態では、少なくともチップ外で決められ、プライオリティコントローラに
伝えられることもあるかもしれない。また、更に別の実施形態では、プライオリ
ティコントローラが、ストリーム命令負荷のその時の状態に従ってプライオリテ
ィコードを変えることもある。
【0011】 本発明のある実施形態では、特定のプライオリティコードが効果的にストリー
ムを無効化し、機能リソースへのストリームのアクセスを阻止する。また、プラ
イオリティコントローラが、プライオリティレコードを変更し、オンチップイベ
ント、処理統計情報、または外部入力に応答して、またはプロセッサへの割り込
みに従って、ストリームを有効化/無効化することもある。
【0012】 本発明の他の実施形態では、プロセッサは、プロセッサレコードで同一のプラ
イオリティを持っている複数のストリームに対して、機能リソースへのアクセス
を解決する、同点決着機能を更に持つ。
【0013】 また本発明の別の態様において、複数の命令スレッドをストリーミングするた
めの複数のストリーム、ストリームリソースからの命令を処理するための機能リ
ソースセット、命令をストリームにフェッチするフェッチユニット、機能リソー
スへのストリームのアクセスを管理する命令スケジューラ、ストリームと結び付
けられているプライオリティコードのプライオリティレコード、そしてプライオ
リティを動的に決め、処理中にプライオリティレコードを動的に変更するプライ
オリティコントローラから構成されるマルチストリーミングプロセッサが提供さ
れる。
【0014】 同態様において、プライオリティレコードの変更は、少なくともその一部はチ
ップ上の処理統計情報によって決められるやり方で実施される。そして、ある実
施形態では、少なくともプライオリティレコードの変更の一部がチップ外で実施
され、プライオリティコントローラに伝えられることもある。ある実施形態では
、特定のプライオリティコードを使って、効果的にストリームを無効化し、その
ストリームが機能リソースにアクセスすることを阻止することもできる。有効化
/無効化は、オンチップイベント、処理統計情報、または外部入力への応答にお
いて、あるいはプロセッサへの割り込みによって実施することもできる。プライ
オリティがストリーム命令負荷に従って変わることもある。他の場合と同様この
場合でも、同点解決機能、すなわちプライオリティレコードに同一のプライオリ
ティを持つ複数のストリームに対して機能リソースへのアクセスを解決する、同
点解決機能が提供されることもある。
【0015】 本発明の他の態様に従って、マルチストリーミングプロセッサにおいて、プラ
イオリティによってストリームからの命令を処理する方法が提供され、該方法は
以下のステップを含む:(a)プライオリティコードを1つまたは複数のストリ
ームと結び付け、コードをプライオリティレコードに保存するステップ、(b)
処理中に命令スケジューラによってプライオリティレコードのプライオリティコ
ードをチェックするステップ、(c)特にプライオリティコードを基にして機能
リソースへのストリームのアクセスを管理するステップ。この方法ではプライオ
リティレコードのプライオリティコードは静的で変わらないことも、また一貫し
た反復的やり方で変わることもある。
【0016】 この方法の実施形態によっては、プライオリティレコードと結合されたプライ
オリティコントローラによる処理中にプライオリティレコードのプライオリティ
コードを動的に変更するステップも更に存在することもある。プライオリティコ
ードの変更は、少なくともその一部はチップ上の処理統計情報の変更によって決
まるやり方で実施され、あるいは、少なくともその一部はチップ外で実施され、
プライオリティコントローラに伝えられることもある。
【0017】 本発明の実施形態によっては、特定のプライオリティコードが効果的にストリ
ームを無効化し、ストリームが機能リソースにアクセスするのを阻止する。
【0018】 この有効化/無効化は、オンチップイベント、処理統計情報、または外部入力
への応答において実施される。あるいは、プロセッサ割り込みに従って行われる
。プライオリティコードは、ストリーム命令負荷の現在の状態によって変えられ
ることもある。この方法では、同点決着機能、すなわちプライオリティレコード
に同一のプライオリティを持っている複数のストリームに対して機能リソースへ
のアクセスを解決するためのステップが提供される。
【0019】 また、本発明の別の態様において、マルチストリーミングプロセッサにおいて
プライオリティによってストリームからの命令を処理する方法が提供さ、以下の
ステップから構成される、(a)プライオリティコードを1つまたは複数のスト
リームと結び付け、プライオリティレコードにコードを保存するステップ、(b
)処理中に命令スケジューラによってプライオリティレコードのプライオリティ
コードをチェックするステップ、(c)特にプライオリティコードを基にしてス
トリームの機能リソースへのアクセスを管理するステップ、(d)処理中にプラ
イオリティコントローラによってプライオリティレコードのプライオリティコー
ドを動的に変更するステップ。
【0020】 この方法のステップ(d)では、プライオリティコードの変更は、少なくとも
その一部はチップ上の処理統計情報の変化によって決まるやり方で実施される。
あるいは、プライオリティコードの決定の少なくともその一部は、チップ外で実
施され、プライオリティコントローラに伝えられる。また、この方法では、特殊
なプライオリティコードを使って、効果的にストリームを無効化し、そのストリ
ームが機能リソースにアクセスするのを阻止することができる。この有効化/無
効化は、オンチップイベント、処理統計情報、または外部入力への応答において
実施される。あるいは、プロセッサ割り込みに従って実施される。
【0021】 さらに、この方法では、プライオリティは、ストリーム命令負荷の現在の状態
に従って変更される。また、この方法では、同点決着機能、すなわちプライオリ
ティレコードで同一のプライオリティを持つ複数のストリームに対して機能リソ
ースへのアクセスを解決する機能が提供できる。
【0022】 さらに、本発明の別の態様では、アプリケーションプログラムやデータを保存
するためのメモリ、メモリと結合され、複数の命令スレッドを処理するための複
数のストリームを持つマルチストリーミングプロセッサ、ストリームからの命令
を処理する機能リソースセット、機能リソースへのストリームのアクセスを管理
する命令スケジューラ、そしてストリームと結合されたプライオリティコードの
プライオリティレコードから構成されるコンピュータが提供される。いかなる時
点でも、命令スケジューラは、プライオリティレコードに従って、ストリームの
機能リソースへのアクセスを管理する。
【0023】 このコンピュータの実現においては、プライオリティレコードが少なくとも1
つのストリームと結び付けられた1つまたは複数のプライオリティコードから構
成され、プライオリティレコードが静的であり変化しない。また、別の実現では
、プライオリティレコードは、一貫した反復的やり方で変更される。また、プラ
イオリティレコードが、1つまたは複数のストリームと結び付けられた1つまた
は複数のプライオリティコードから構成され、さらにプロセッサはプライオリテ
ィレコードと結合されたプライオリティコントローラを持つことがある。この場
合、プライオリティコントローラが処理中に1つまたは複数のプライオリティコ
ードを動的に変更する。プライオリティコードの変更は、少なくとも一部はチッ
プ上の処理統計情報の変化によって決まるようなやり方で実施されることもある
。この実施形態あるいは他の実施形態では、プライオリティコードの決定は、少
なくともその一部はチップ外で実施され、それがプライオリティコントローラに
伝えられる。
【0024】 このコンピュータのある実施形態では、特定のプライオリティコードが効果的
にストリームを無効化し、そのストリームが機能リソースにアクセスするのを阻
止する。あるいは、プライオリティコントローラがプライオリティレコードを変
更し、オンチップイベント、処理統計情報、または外部入力に対する応答でスト
リームを有効化/無効化する。プロセッサ割り込みに従って実行されることもあ
る。
【0025】 また、プライオリティコントローラは、ストリーム命令負荷の現在の状態に従
って、プライオリティコードを変更することもできる。同点決着機能、すなわち
プライオリティレコードで同一のプライオリティを持つ複数のストリームの場合
に機能リソースへのアクセスを解決する機能が存在することもある。
【0026】 本発明の別の態様では、アプリケーションプログラムやデータを保存するメモ
リ、メモリと結合され、複数の命令スレッドを処理するための複数のストリーム
を持つマルチストリーミングプロセッサ、ストリームリソースからの命令を処理
する機能リソースセット、機能リソースへのストリームのアクセスを管理する命
令スケジューラ、そしてストリームと結合されたプライオリティコードのプライ
オリティレコードから構成されるコンピュータが提供される。プライオリティコ
ントローラは、処理中にプライオリティコードを動的に決定し、それに従ってプ
ライオリティレコードを変更する。
【0027】 このコンピュータの実現によっては、プライオリティレコードの変更は、少な
くともその一部がチップ上の処理統計情報によって決まるやり方で実施される。
また、プライオリティレコードの変更が、少なくともその一部はチップ外で実施
され、プライオリティコントローラに伝えられることもある。実施形態によって
は、特定のプライオリティコードが効果的にストリームを無効化し、そのストリ
ームが機能リソースにアクセスするのを阻止する。プライオリティコントローラ
は、プライオリティレコードを変更してオンチップイベント、処理統計情報、ま
たは外部入力に対する応答でストリームを有効化/無効化することができる。こ
れは、プロセッサ割り込みに従って実施されることもある。
【0028】 さらに、プライオリティコントローラは、ストリーム命令負荷の現在の状態に
従って、プライオリティコードを変更することもある。このコンピュータでは、
同点決着機能、すなわちプライオリティレコードで同一のプライオリティを持つ
複数のストリームに対して機能リソースへのアクセスを解決する機能が提供され
ることもある。
【0029】 本発明の別の態様では、パケットデータネットワークに接続するための少なく
とも1つのポート、アプリケーションコードを保存するためのメモリ、メモリと
結合され、複数の命令スレッドをストリーミングするための複数のストリームを
持つマルチストリーミングプロセッサ、ストリームリソースからの命令を処理す
る機能リソースセット、ストリームの機能リソースへのアクセスを管理する命令
スケジューラ、そしてストリームと結び付けられているプライオリティコードの
プライオリティレコードから構成される、パケットデータネットワークのための
パケットデータルータが提供される。プライオリティコントローラは、処理中に
プライオリティコードを動的に決定しし、それに従ってプライオリティレコード
を変更する。
【0030】 さらにまた、複数のシグナルを個別スレッドとしてストリーミングするための
複数のストリーム、シグナル処理のための機能リソース、シグナルの機能リソー
スへのアクセスを管理するスケジューラ、ストリームと結び付けられているプラ
イオリティコードのプライオリティレコードから構成される、デジタルシグナル
プロセッサが提供される。プライオリティコントローラは、処理中にプライオリ
ティコードを動的に決定しし、それに従いプライオリティレコードを変更する。
【0031】 以下で詳細に説明する本発明のいくつかの実施形態では、コンピュータテクノ
ロジにおいて初めて、ストリームのプロセッサ機能リソースへのアクセスが選択
的に管理され、機能リソースへのストリームのアクセスプライオリティが動的に
管理され、処理パワーが向上し、リソースをより効果的に使用でき、特にリアル
タイム処理ニーズに応える、マルチストリーミングプロセッサが提供される。
【0032】 (好適実施形態の説明) マルチストリーミングプロセッサとは、複数の利
用可能なプログラムスレッドからの複数の命令ストリームを同時に実行できるリ
ソースを持つプロセッサである。本発明は、ある面から見れば、競合するストリ
ームの、機能ユニットを含む1つまたは複数の処理リソースへの効率的でタイム
リーな割当てに優先順位を付け、調整するプライオリティコントローラと結合さ
れた命令スケジューラを構成するものである。
【0033】 本発明の好適実施形態では、各ストリームには、競合する命令ストリームに対
する関連するストリームの処理リソースへの要求を表している、プライオリティ
が割り当てられる。プライオリティは、すべてのプロセッサリソースに関する関
連するストリームの要求を表す1つの数によって、またはいくつかのリソースの
夫々に対するプライオリティを含むリストによって実装される。さらに、プライ
オリティは、利用可能なリソースへのアクセス等級や利用可能なリソースの間で
のアクセス制限を含むことが出来る。本発明の様々な実施形態でプライオリティ
を決定し発行するロジックは、以下で説明するように様々な方法で実装できる。
【0034】 ある実施形態では、プライオリティはストリームによって固定されているが、
プライオリティアクセスの他にリソースへのアクセスが管理されることもある。
他の形態ではプライオリティはストリームによって変化し、アクセスを動的に管
理することもできる。これらアクセスとプライオリティ決定のための基準は、現
在のキャッシュやメモリ要求のようなオンチップ統計情報、中でも、機能ユニッ
ト利用率、またはブランチ予測に従って、またはデータの到着と利用可能性、ま
たオフチップからの入力、そしてこれらの基準の組み合わせなどの様々なソース
から得られる。好適実施形態では、プライオリティ発行ロジックは、現在のプラ
イオリティに従って、各ストリームのプロセッサ機能リソースへのアクセスを制
御し管理する。また、好適実施形態では、プライオリティコントロールと命令発
行機能が動的に変わり、各スレッドはタイムリにサービスを受けることができる
ばかりでなく、実際のプライオリティの制約内でプロセッサリソースの利用状況
を効率的に管理することができる。
【0035】 図1は、利用可能なプロセッサ機能リソース10−13にストリームを割り当
てる命令スケジューラ5への優先順位付けを含め、本発明の実施形態におけるマ
ルチストリーミングプロセッサ14の命令のフローとオペレーションの例を示し
ている。この例のスレッド1、スレッド2、スレッド3は、競合プロセッサスト
リームとして実行され、メモリ上に保存されているプログラムを表している。ス
レッドは、個々のアプリケーションプログラム、単一ののマルチスレッドプログ
ラムの一部、または割り込みサービスルーチンの結果としてフェッチされた命令
スレッドのような様々なソースから来るが、ソースはこれらに限られるものでは
ない。この例でのプロセッサは、アクティブスレッド1と2から命令をフェッチ
してデコードし、いつでも実行できる命令を含んでいるストリームのプール4を
集める。この例のスレッド3は、インアクティブとして扱われる。スケジューラ
5は、ストリームをリソース10−13に割り当てる。
【0036】 各アクティブストリームは、関連図けられた現在のプライオリティを持ってい
る、すなわちスレッド1を実行しているストリームと結び付けられているプライ
オリティ7、そしてスレッド2を実行しているストリームと結び付けられている
プライオリティ8として示されているものである。各ストリームのプライオリテ
ィがリソース10−13への現在のアクセスを決定し、本発明の追加的特徴では
、このプライオリティがリソース10−13に関連する要求を決める。プライオ
リティ発行ネットワーク6は、プライオリティ7と8を使って、1つまたは複数
のメカニズムに従い、各優先順位付けされたストリームからの命令をリソース1
0−13に割り当てる。
【0037】 プライオリティコントロールユニット9は、ストリームのプライオリティステ
ータスを監視し、たとえばキャッシュやメモリ要求、リソースの利用率などのよ
うな処理活動の履歴を含む利用可能な基準に従ってプライオリティを決定または
修正し、必要なだけ、ある実施形態では、プロセッササイクルと同じ回数プライ
オリティを動的に変更して、スレッドのタイミング要求を満たし処理リソースの
利用率を最適化する。高度な実施形態では、プライオリティコントロールユニッ
ト9のロジックは、スレッド1−3の要求に応じて、動的にスケジューリングメ
カニズムを切り替える。
【0038】 図2は、図1のマルチストリーミングプロセッサ14の好適実施形態でのアー
キテクチャを示すブロック図である。実線は、命令とデータのパスを表しており
、鎖線は制御のパスを示している。この例でのメモリ201は、プロセッサにお
いて同時に実行されるプログラムまたはプログラムの一部である、1つまたは複
数スレッドのための命令を含んでいる。プロセッサは、複数のスレッドからの命
令を命令キャッシュ202に読み込み、命令と結び付けられているデータをデー
タキャッシュ211に読み込む。典型的には、マルチスレッドのフェッチユニッ
ト203の制御下では、命令キャッシュ202からの命令は、マルチスレッドの
フェッチユニット203に移され、プリフェッチバッファに蓄積され、デコード
され、1つまたは複数のキューに入れられる。様々な実施形態では、単一のキュ
ーはストリーム間で共有されるかまたは、各ストリームのためのユニットに分け
られることがある。場合によっては、キューは1つまたはリソースセットに、あ
るいはストリームとリソースの組に専用となることもある。
【0039】 実質的なキューの効果により、命令の競合するストリームの存在が発生し、適
格な命令が機能リソースに発行される。実行できるプロセッサを持つ各ストリー
ムは、そのストリームのプログラムカウンタとレジスタファイルを含むコンテキ
ストフレームを持つ。スレッドは、スレッドのプログラムカウンタアドレスとレ
ジスタ値を持つ、利用可能なコンテキストフレームをロードし、それにアクティ
ブプライオリティを割り当てることによってアクティブになる。実行すべきスレ
ッドが1つしかないこともある。その場合、実行すべき命令のストリームは1つ
である。スレッドを実行するのに利用できるストリームより多くのアクティブス
レッドが存在する場合、利用可能なコンテキストフレームの数までのスレッドが
アクティブになり、他のスレッドは一時的にインアクティブのままである。典型
的には、オペレーティングシステムの機能がスレッドをマルチストリーミングプ
ロセッサのストリームに割り当てる。
【0040】 複数のストリームからの命令は、サイクルベースで実行に組み込まれ、たとえ
ば、遅いメモリでは、それより低い頻度で実行に組み込まれることがある。命令
スケジューラ5は、複数のストリームからの命令を実行する順序を決め、選択し
た命令をプライオリティ発行ネットワーク6に送る。メモリからのロード・スト
ア命令は命令スケジューラ5によって監視され、メモリ201、データキャッシ
ュ211、命令キャッシュ202、その他のリソースのオペレーションは207
−210の機能ユニットと同様に制御される。
【0041】 命令スケジューラ5の内部では、命令は一時的に予約ステーションに蓄積され
、依存性が評価され、他の命令の先行実行に依存している命令は適切に遅延され
る。プライオリティ発行ネットワーク6は、各命令の実行を適切な機能ユニット
207−210に割り当てる。機能ユニットは、1つまたは複数の整数演算ユニ
ット208から構成され、ブランチユニット207、浮動小数点演算ユニット2
09、ロード/ストアユニット210を含む。いずれかの種類の複数の機能ユニ
ットが利用可能である場合、命令スケジューラ204とプライオリティ発行ネッ
トワーク206は、利用可能な機能ユニットへの命令の割り当てを管理する。命
令スケジューラ5はプライオリティレコードを持ち、このプライオリティレコー
ドは1つまたは複数のストリーム向けに記録されているプライオリティを持つフ
ァイルあるいはレジスタセットである。したがって、ストリームよりも少ない数
のプライオリティが存在し、アクティブプライオリティを持っていないストリー
ムはデフォルトレベルで処理されることがある。または、各ストリームが特定の
プライオリティを持つこともある。
【0042】 複数のストリームが存在する場合、どのストリームにリソースへのアクセスを
許すかを決めるメカニズムが存在しなければならない。ストリームの間でのアク
セスを管理する方法はどの方法でも広い意味でプライオリティスキームと見なす
ことができる。これまでは、降順に静的プライオリティをストリームに割り当て
るのが一般的であった。しかし、このスキームでは、1つのストリームは常に一
番高いプライオリティを持ち、その他のストリームは降順により低いプライオリ
ティを持つ。以下の表1は、A、B、C、Dという4つのストリームがある静的
なケースの場合のプライオリティテーブルである。0は最高位のプライオリティ
を示し、以下1、2と低くなり、3が最下位のプライオリティを示している。
【表1】
【0043】 表1に示されている静的プライオリティスキームの場合、ストリームAは常に
最高位のプライオリティを持ち、ストリームAに待機命令が存在しなくなるまで
、待機命令はストリームAから機能ユニットに発行される、その時点で、ストリ
ームAよりも1つ低いプライオリティを持つストリームBに機能ユニットへのア
クセス権が保証され、ストリームBを待っている命令が存在しなくなるまで、命
令がストリームBから発行される。当然、アクセス権がストリームBにシフトし
たときにストリームBに命令が存在しないということもありうる。その場合、ア
クセス権はストリームCに移る(以下同様)。しかし、これには各ストリームの
プライオリティが一定、すなわち静的であるという制約がある。
【0044】 多くの場合、特にストリームの数が増えると、静的スキームでは低いプライオ
リティを持つストリームに割り当てるスレッドの不足という問題が発生すること
が分かっている。これに対し、機能リソースへのアクセスの公平性を促進するた
めに、現在プライオリティが定期的にストリームの間でシフトするラウンドロビ
ン方式が提案され、実装されている。このラウンドロビン方式を以下の表2に示
した。
【表2】
【0045】 表2の行はタイムスライスを示している。T1タイム時にその行のプライオリ
ティはT2タイムまで適用される。T2タイム時に、その行のプライオリティが
適用される(以下同様)。ラウンドロビン方式では、プライオリティは表に示す
ように一定の間隔で回転し、少なくとも理論的には各ストリームは機能リソース
への同一のアクセス権が与えられる。
【0046】 発明者は、従来技術には、先に説明したような、無限のリソースアクセスを持
つ静的スキームやラウンドロビン方式には多くのまた重大な欠陥があることを発
見した。これらの技術は、変化する条件、リアルタイム要求、そして一つ、二つ
の支配的なクラスのリソースに対するニーズを持つ様々なスレッドの構造的性質
に対応していない。したがって、発明者はプライオリティスケジューリングと命
令の発行を劇的に改善する機構および方法を提供した。
【0047】 広く検討されているプライオリティの問題を詳細に調査して、問題は単なるプ
ライオリティだけの問題ではないことが明らかになった。問題を次のように記述
することができる。 1.どのストリームに機能リソースへのアクセス権が与えられるべきか? 2.どれだけのアクセス権が与えられるべきか? 3.次にどのストリームがアクセス権を取得するのか? 4.同点の場合はどうなるのか? 現在の、そして、従来の方式では、これらの問題にはほとんど対応していない
。本発明の様々な実施形態では、これらの問題(問題点)のすべてに、様々な方
法でまた様々な目的のために対応している。
【0048】 本発明のいくつかの実施形態では、ストリームのプライオリティを示すものと
して1つの数が使われ、その数が、機能ユニット、メモリ、キャッシュのような
リソース(しかし、これらに限られるものではない)へのアクセス権を割り当て
るためにスケジューラによって使われている。他の形態では、数のリストがスト
リームへの複数のプライオリティを保存しており、各数が、整数演算ユニット、
浮動小数点演算ユニットのセットなどのリソースクラスへの関連ストリームのプ
ライオリティ要求を表している。あるいは、他の形態では、あるストリームには
、現在の最高位のプライオリティストリームとしてのアクセス権が与えられるが
、そのアクセスは1つの機能ユニットのみに制限されている。
【0049】 別の実施形態では、各ストリームに対する数のリストが個別リソースに対する
ストリームの要求を保存している。たとえば、複数の整数演算ユニットや浮動小
数点演算ユニットを持つプロセッサでは、プライオリティ数は、各整数演算ユニ
ットおよび各浮動小数点演算ユニットとの関連で使われる。より厳しいタイミン
グ要求を満たしたり、より完全なリソース利用を保証するためにリソースに対す
る精緻なコントロールが必要な場合、より複雑なプライオリティ表現が使われる
【0050】 特に、本発明の実施形態において、ストリームの間でポインタを移動するため
に、ラウンドロビン方式と静的スキームがなお交互に使われている。しかし、現
在のものよりもより高度なプライオリティメカニズムが実装されている。たとえ
ば、本発明の1実施形態では、静的プライオリティは表1に示すように4つのス
トリームの間に割り当てられる。しかし、命令を発行するメカニズムが、ストリ
ームからの命令へのアクセスを1つまたは特定の組のリソースクラスに制限する
ことがある。このリソースクラスの選択性は、特定の条件の元で許される制限付
きクラス以外のリソースへのアクセス権を伴うただ1つのストリーム、たとえば
、複数の、またはすべてのストリームにとっての最高位のプライオリティを持つ
ストリームのプライオリティの特徴である。
【0051】 本発明の他の実施形態では、複数のストリームが同じプライオリティであるが
、アクセスにおける排他性やある程度の重なりを含め、機能リソースへの異なる
アクセス権を持つことがある。このユニークな方式では、同点決着が必要な衝突
が発生するので、チップでの最近の処理履歴(だれが最後にアクセスしたか)や
他の基準では、条件の指示に従って、同点の場合のアクセス権を決定するために
同点決着ユニットが提供される。たとえば、同点の場合に、同点のストリームの
間でアクセス権を平等に分けることも可能である。
【0052】 従来のプロセッサでは、(割り込みが使われるプロセッサやアプリケーション
に対して)割り込みが優先される。すなわち、割り込みとは、プロセッサに現在
実行していることを止めさせ、そのアクティビティを割り込みサービスルーチン
に向けさせることである。本発明の実施形態では、割り込みサービスルーチンが
少数のサイクル内にサービスを受けなければならない場合、高いプライオリティ
が与えられ、すべての必要なリソースが利用できるようになる。しかし、通常の
ストリームが、ある割り込みよりもより厳しいタイミング要求を持っていること
もあり、その場合には、割り込みよりも高いプライオリティが割り当てられる。
【0053】 プライオリティや同点決着ロジックの一部としてのアクセス権の新しい特徴の
他に、本発明の特定の実施形態では、マルチストリーミングプロセッサにおける
プライオリティの動的決定と管理という新しい強力なコンセプトが提供される。
【0054】 本発明の実施形態では、命令を割り当てるために命令スケジューラによってプ
ライオリティが解釈されるコンテキストを、プライオリティコントロールユニッ
ト9が決める。たとえば、最高位のプライオリティを持っているストリームは、
低いプライオリティを持っているストリームよりも優先される。あるいは、スケ
ジューラがすべてのストリームに最低限のアクセス権を保証するが、ストリーム
のプライオリティに比例してアクセス権を高める。先に説明したように、各スト
リームに順に割り当てられるプロセッササイクル数がストリームのプライオリテ
ィに従って変動するラウンドロビンやランダムスケジューリングが使われる。す
なわち、従来の制限付きラウンドロビン方式では、ストリームが順に選択され、
選択された各ストリームには、同じプライオリティをもち、同じ量のリソースが
割り当てられる。しかし、本発明の実施形態では、ストリームはラウンドロビン
方式でサービスを受けるが、各ストリームには現在のプライオリティに従ってリ
ソースが割り当てられる。
【0055】 先に説明したように、プライオリティ管理の例として、アクセスされる各スト
リームには、そのストリームの現在のプライオリティによって決まるサイクル数
の間、全てのリソースに対するアクセス権が与えられる。あるいは、アクセスさ
れる各ストリームには、現在のプライオリティに従って機能ユニットへのアクセ
ス権が割り当てられる。たとえば、静的スキームでは、あるストリームはある機
能ユニットを使うことが許されるが、そのプライオリティが変わると、より多く
のあるいはより少ない機能ユニットへのアクセスが許される。ここで重要なこと
は、発行の順番とアクセス権がプライオリティコントローラ9によって動的に変
わることである。
【0056】 ある実施形態では、プライオリティが、1つまたは複数のリソースに対してス
トリームが希望する平均利用率を表わす割合として解釈されることもある。特に
高度な実施形態では、プロセッサが、先に説明した複数のスケジューリング方法
の組を持っていることもあり、その場合、プライオリティコントロールユニット
9は動的に複数の方法の中から選択したり、複数の方法を様々な組合わせで使う
。他の形態では、スケジューリング方法と個別プライオリティがソフトウェアの
制御下で選択されることもある。ソフトウェアが方法を指定しない場合、プライ
オリティコントロール9はラウンドロビンや静的スケジューリングのような、旧
来の方法にデフォルト設定される。
【0057】 各プライオリティに数のリストが使われる場合、プライオリティコントローラ
9は各リソースクラスまたは各リソースを個別に管理する。リソースやリソース
クラスに対する要求が衝突する場合、各ストリームのプライオリティリストのエ
ントリを比較して、先に説明したスケジューリング方法のいずれか単独、あるい
は複数の組合に従って衝突が解決される。
【0058】 複数のストリームのプライオリティが同一であるということもありうる。この
場合、命令スケジューラ5は、先に説明した同点決着メカニズムを持つ。同点決
着メカニズムは、動的または静的な方法を使って衝突を解決することができる。
たとえば、ラウンドロビンスケジューリングが使われている場合、同じプライオ
リティを持っている各ストリームは、同一の割合のリソース割り当てを受け取る
。あるいは、ストリームの現在の命令がどのリソースを要求しているか、あるい
は様々なリソースの利用率を基にして、あるいはランダムスケジューリングによ
り衝突が解決されることもある。
【0059】 プライオリティコントロールユニット9は、どのストリームのプライオリティ
でも変えることができる。このような変更は、たとえば各メモリサイクルに対し
てはプロセッササイクルの一部と同じ頻度で、、あるいは長いレイテンシーメモ
リ命令が発行されたときにはより少ない頻度で、実行される。プライオリティの
変更は、ソフトウェアの制御の下で、あるいはプロセッサやその他のシステムコ
ンポーネント内の条件に応じて行われる。ある形態では、プライオリティコント
ロールユニット9が、機能ユニット、メモリ、キャッシュへのアクセス頻度のよ
うな、1つまたは複数の処理リソースの利用率を監視する。その場合、プライオ
リティは変化し、ストリームのスループットを最適化したり、1つまたは複数の
リソースの利用率を最大化するように、あるいはスループットと利用率の間のバ
ランスを取る。メモリが監視されているとき、プライオリティは、アドレスの範
囲またはアクセスされるメモリセグメントを基にして変わることもある。メモリ
201がセグメント化されている実施形態の場合、メモリサイクルはプロセッサ
サイクルよりも遅いので、複数のセグメントが同時にアクセスされる。その際、
命令スケジューラ5は複数のセグメントへのアクセスをインタリーブし、メモリ
利用率を最大化する。複数のリソースを監視しているような場合、プライオリテ
ィは1つのリソースの利用率を最適化するように、あるいは複数リソースの利用
のバランスを取るように設定され、このバランスが動的に変更されることもある
【0060】 また、整数演算ユニット208または浮動小数点演算ユニット209のような
リソースが動的に再構成され、特定の命令でデータパスがより効率的になるよう
にデータパスが変更されるという実施形態も考えられる。たとえば、2つの数を
掛けるあるいは足すために、整数演算ユニットが命令と命令の間で再構成される
こともありうる。そのような実施形態では、命令スケジューラ5は予約ステーシ
ョン及び/又はマルチスレッドフェッチユニット203の命令キューの命令を調
査し、最適機能ユニット構成を決定し、プライオリティ発行ネットワーク206
が必要な再構成を実施する。
【0061】 これまで、プロセッサは複数のプログラムスレッドへのリソースの柔軟な割り
当てを許さない固定したスケジューリングメカニズムを使ってきた。ストリーム
の動的優先順位付けにより、処理リソースの動的構成が可能になり、いずれの時
点でも競合するストリームの組合わせのニーズに応えられるようになる。たとえ
ば、厳しいタイミング要求を持っているリアルタイムスレッドには高いプライオ
リティが与えられ、その要求が満たされることが保証される。これに対し、要求
のあまり厳しくないストリームにはバックグランドでサービスが提供される。さ
らに、プライオリティコントロールユニットは命令キャッシュの内容のような、
処理の様々な側面を監視することができるので、実行時にプライオリティを変更
し、可変速度で到着する入力データストリームへのサービス提供のような処理目
標を達成することができる。あるいは、どのスレッドも厳しい要求を持っていな
い場合、すべての利用可能なリソースがビジーになり、それによってプロセッサ
スループット全体を最適化するようにスケジューリングが再構成される。リソー
スのより効率的な利用を可能にすることによって、従来技術ではなく現在の優先
順位付きスケジューラを使って、小型で安価なプロセッサを設計できるようにな
る。
【0062】 本発明のある好適実施形態では、事前定義済みのイベントや条件セットがスト
リームを再有効化するまで、ユニークなプライオリティ数をストリームに割り当
て発行順にそのストリームを無効にする。たとえば、そのような実施形態では、
4つのストリームを持っているマルチストリーミングプロセッサは、5つのプラ
イオリティ0−4を持ち、ゼロのプライオリティがあるストリームに設定され、
ゼロはシステムによりストリームの無効化と解釈される。その場合、プライオリ
ティ1が一番低いプライオリティであり、次が2であり、4が最も高いプライオ
リティである。
【0063】 現在いろいろな理由で、ストリームを無効化し、無効プライオリティの割り当
てが、データや命令の利用可能性、オフチップからの入力、スレッドの特定の組
み合わせ他を含む様々な基準を基にして行えることが望まれている。ある実施形
態では、プロセッサ割り込みを使ってストリームの有効化/無効化が行われる。
その場合、無効にされたストリームは、割り込みによって目覚めさせられる。こ
の場合プライオリティコントローラは、プライオリティファイルを変更して、無
効にされている(眠っている)ストリームにゼロ以外のプライオリティを割り当
てる。
【0064】 また他の実施形態では、プライオリティをストリーム負荷に従って管理するこ
とができる。この方式では、閾値が設定される。ストリームが発行可能な命令を
フェッチする時、プライオリティはその閾値に従って割り当てられる。この方式
での粒度を、必要に応じて粗くすることも細かくすることもできる。
【0065】 先に説明した実施形態では、コントローラ9はアクセス権等々を含めプライオ
リティを管理し、必要な基準を命令スケジューラ5のプライオリティファイルに
入れるものとして記述されていた。プライオリティやアクセスのための基準テー
ブルが他の場所にあり、プライオリティコントロールを、技術的知識を持ってい
る有能なエンジニアのスキルの範囲内で、様々な方法で実装できることは、有能
な技術者には明白である。したがって、ここで示された特定のアーキテクチャは
、一例にすぎない。
【0066】 さらに、プライオリティやアクセスの動的管理のためのいくつかのメカニズム
や基準がプライオリティコントローラ9の機能として開示されている。プライオ
リティコントローラ9は、様々な方法で実装でき、ハードウェアやソフトウェア
技術の併用によってその機能を実行できる。ある実施形態では、たとえば、コン
トローラ9がカウンタによって指示されるレジスタにアクセスし、整数演算ユニ
ットではなくFPユニットの使用のような最近の処理履歴に関する統計情報を確
認し、その結果としてプライオリティ権を管理することも可能である。またある
実施形態では、プライオリティコントローラが、プライオリティやアクセス権を
決めるのに1つまたは複数のコードルーチン(アルゴリズム)を実行することも
可能である。他の実施形態では、プライオリティコントローラがある程度プログ
ラム可能であり、オフチップから入力を受け付け、プライオリティやアクセス権
を決定し、設定することもできる。
【0067】 本発明の特徴により、複数のストリームを使う様々なデバイスの改善が可能に
なる。たとえば、現在のネットワークルータやスイッチは、複数のストリームま
たは入ってくるデータのパケットフローを処理し、それをネットワーク上の様々
な宛先にディスパッチする必要がある。非同期転送モードのようなある種のネッ
トワークプロトコルはデータフローに対するサービスを保証し、ネットワークデ
バイスを通したデータのタイムリーな転送を保証する。本発明を使えば、たとえ
ばサービスの品質をネゴシエートしたり、データがデバイスを通るパスを再構成
するスレッドではなく、ネットワークデータを扱うスレッドにより高いプライオ
リティを与えることにより上記デバイスにおける処理を最適化できる。各データ
フローのサービス品質が異なるとき、異なるプライオリティを持つストリームを
使ってサービス保証を満たすことができる。
【0068】 発明の別の側面では、発明の実施形態に従うプロセッサはワークステーション
の機能を高度化することができる。通常、ワークステーションは多種多様な競合
するプログラムを処理することを求められる汎用コンピュータである。たとえば
、ワークステーションは、MPEGビデオの再生、プリンタへのデータの送信、
ユーザからのタイピングやその他の入力への応答、Webブラウザやワードプロ
セッサプログラムのようなアプリケーションプログラムを同時に実行する必要が
ある。ワークステーション用のプロセッサに本発明を使えば、各ストリームの様
々な要求に対する応答を改善することができる。たとえば、MPEGビデオスト
リームは、フレームをデコードするのに必要なリソースやビデオメモリに対する
高いプライオリティアクセスを与え、これに対し、プリンタ向けの割り込みサー
ビスルーチンは、最大印刷速度で現在のプリンタを駆動するのに十分なプライオ
リティを与えられる。アプリケーションプログラムには、ビデオメモリに次ぐ第
2レベルのプライオリティが与えられる。
【0069】 また別の側面では、ロボット装置は、センサ、アクチュエータ、コントロール
入力に対してリアルタイムに応答しなければならないことが分かっている。その
ような装置用のオペレーティングシステムをスレッドに分け、適切にプライオリ
ティを割り当てることによって、複数のタイミング要求セットを同時に満たすこ
とができ、ロボット装置は現在使われているものほどの能力を必要とせず、従っ
て安価なプロセッサでより効率的に動作するようになる。
【0070】 また、発明の別の実施形態では、本発明の特徴が、デジタルシグナルプロセッ
サ(DSP)と呼ばれる特殊プロセッサに実装される。このDSPとは、デジタ
ルプロトコルでデータを表し、データを事前に定義されている方法で処理するこ
とにより、通常アナログ方式でストリーミングされる、「ナチュラルデータ」と
呼ばれているものを処理するための特殊プロセッサである。そのようなプロセッ
サは電話やその他のオーディオストリームを利用するシステムでのオーディオ処
理に利用されている。この技術をビデオの世界にも拡張することが可能になる。
マルチスレッド、マルチストリーム、そして本発明に従ったプライオリティコン
トロール用のシステムに、多くの可能性が存在している。
【0071】 本発明の応用によって、その機能が改善されるプロセッサの種類やサイズには
あったとしても少ししか制限がないことを強調しておく。複数のスレッドが処理
できれば、アクセスの難しい装置用の組み込みコントローラのような、単一の機
能ユニットを持つ小さなプロセッサの機能を強化することができる。応用は、A
SICとして実装されている特殊マイクロプロセッサや、基本的にその他すべて
のデジタルプロセッサに広げることができる。ここで述べたのは、多数の例の一
部にすぎない。
【0072】 本発明の精神と展望の範囲内で記述されている発明の実施形態に様々な変更を
加えることができることは、有能な技術者には明白である。たとえば、ハードウ
ェア機能がプロセッサで提供され、基本的に同じ目的や機能を実施するような方
法が多数存在する。同様に、ソフトウェアやファームウェアを異なるプログラマ
または同じプログラマが構造化し、なお同じ目的または機能を実行できるような
方法が多数存在する。さらに、本発明の実施形態に従うプロセッサは、ストリー
ムリソースの数、機能ユニットの数などで大きく異なるアーキテクチャを持つこ
ともありうる。そうしたバリエーションは本発明の展望の範囲内に入ると見なさ
れなければならず、発明は上記の請求項によってのみ制限される。
【図面の簡単な説明】
【図1】 図1は、本発明のある実施形態に従って、プロセッサ機能リソースにスレッド
を割り当てる優先順位付き命令スケジューラの役割を示す図である。
【図2】 図2は、本発明のある実施形態に従って、優先順位付き命令スケジューラを含
むマルチストリーミングプロセッサのシステムアーキテクチャを示しているブロ
ック図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,UZ,VN,YU,ZA,ZW (72)発明者 サンカー,ナレンドラ アメリカ合衆国、カリフオルニア・95054、 サンタ・クララ、オーク・グローブ・ドラ イブ・450、ナンバー・313 Fターム(参考) 5B013 AA05 AA12 DD00 DD03 5B098 AA02 CC01 GA04 GA05 GA08 GB14 GC02 GC03 GD02 GD03 GD05 GD15 【要約の続き】 つかの特定の応用例を示す。

Claims (59)

    【特許請求の範囲】
  1. 【請求項1】 1つまたは複数の命令スレッドをストリーミングするための
    複数のストリームと、ストリームからの命令を処理する機能リソースセットと、
    機能リソースへのストリームのアクセスを管理する命令スケジューラと、ストリ
    ームと結び付けられているプライオリティコードのプライオリティレコード、と
    から構成されるマルチストリーミングプロセッサであって、いかなる時点でも命
    令スケジューラは、プライオリティレコードに従って機能リソースへのストリー
    ムのアクセスを管理する、マルチストリーミングプロセッサ。
  2. 【請求項2】 プライオリティレコードが少なくとも1つのストリームと結
    び付けられている1つまたは複数のプライオリティコードから構成され、プライ
    オリティレコードが静的で一定であるような、請求項1に記載のマルチストリー
    ミングプロセッサ。
  3. 【請求項3】 プライオリティレコードが一貫した反復的なやり方で変わる
    、請求項1に記載のマルチストリーミングプロセッサ。
  4. 【請求項4】 プライオリティレコードが1つまたは複数のストリームと結
    び付けられている1つまたは複数のプライオリティコードから構成され、さらに
    プライオリティコントローラが処理中に1つまたは複数のプライオリティコード
    を動的に変更するような、プライオリティレコードと結合されたプライオリティ
    コントローラから構成される、請求項1に記載のマルチストリーミングプロセッ
    サ。
  5. 【請求項5】 プライオリティコードの変更が少なくとも一部はオンチップ
    処理統計情報での変更によって決まるやり方で実施される、請求項4に記載のマ
    ルチストリーミングプロセッサ。
  6. 【請求項6】 プライオリティコードの決定が少なくともその一部はオフチ
    ップで実施され、プライオリティコントローラに伝えられる、請求項4に記載の
    マルチストリーミングプロセッサ。
  7. 【請求項7】 特定のプライオリティコードがストリームを効果的に無効化
    し、ストリームの機能リソースへのアクセスを阻止する、請求項4に記載のマル
    チストリーミングプロセッサ。
  8. 【請求項8】 プライオリティコントローラがプライオリティレコードを変
    更してオンチップイベント、処理統計情報、または外部入力に対する応答でスト
    リームを有効化/無効化する、請求項7に記載のマルチストリーミングプロセッ
    サ。
  9. 【請求項9】 プライオリティコントローラがプライオリティレコードを変
    更してプロセッサ割り込みに対する応答でストリームを有効化/無効化する、請
    求項7に記載のマルチストリーミングプロセッサ。
  10. 【請求項10】 プライオリティコントローラがストリーム命令負荷の現在
    の状態に従ってプライオリティコードを変更する、請求項5に記載のマルチスト
    リーミングプロセッサ。
  11. 【請求項11】 同点決着機能、すなわちプライオリティレコードで同一の
    プライオリティを持つ複数のストリームに対して機能リソースへのアクセスを解
    決する同点決着機能から更に構成される、請求項4に記載のマルチストリーミン
    グプロセッサ。
  12. 【請求項12】 複数の命令スレッドをストリーミングする複数のストリー
    ムと、ストリームリソースからの命令を処理する機能リソースセットと、機能リ
    ソースへのストリームのアクセスを管理する命令スケジューラと、ストリームと
    結び付けられているプライオリティコードのプライオリティレコードと、動的に
    プライオリティを決定し、処理中にプライオリティレコードを変更するプライオ
    リティコントローラとから構成される、マルチストリーミングプロセッサ。
  13. 【請求項13】 プライオリティレコードの変更が少なくとも一部はオンチ
    ップ処理統計情報によって決められるやり方で実施される、請求項12に記載の
    マルチストリーミングプロセッサ。
  14. 【請求項14】 プライオリティレコードの変更が少なくとも一部はオフチ
    ップで実施され、それがプライオリティコントローラに伝えられる、請求項12
    に記載のマルチストリーミングプロセッサ。
  15. 【請求項15】 特定のプライオリティコードが効果的にストリームを無効
    化し、そのストリームの機能リソースへのアクセスを阻止する、請求項12に記
    載のマルチストリーミングプロセッサ。
  16. 【請求項16】 プライオリティコントローラがプライオリティレコードを
    変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
    トリームを有効化/無効化する、請求項15に記載のマルチストリーミングプロ
    セッサ。
  17. 【請求項17】 プライオリティコントローラがプライオリティレコードを
    変更し、プロセッサ割り込みに従ってストリームを有効化/無効化する、請求項
    15に記載のマルチストリーミングプロセッサ。
  18. 【請求項18】 プライオリティコントローラがストリーム命令負荷の現在
    の状態に従ってプライオリティコードを変更する、請求項13に記載のマルチス
    トリーミングプロセッサ。
  19. 【請求項19】 同点決着機能、すなわちプライオリティレコードで同一の
    プライオリティを持っている複数のストリームに対して機能リソースへのアクセ
    スを解決する同点決着機能から構成される、請求項12に記載のマルチストリー
    ミングプロセッサ。
  20. 【請求項20】 (a)プライオリティコードを1つまたは複数のストリー
    ムに結び付け、コードをプライオリティレコードに保存するステップと、 (b)処理中に命令スケジューラによってプライオリティレコードのプライオリ
    ティコードをチェックするステップと、 (c)主にプライオリティコードを基にしてストリームの機能リソースへのアク
    セスを管理するステップとから構成される、マルチストリーミングプロセッサで
    のプライオリティによってストリームからの命令を処理する方法。
  21. 【請求項21】 ステップ(a)において、プライオリティレコードのプラ
    イオリティコードが静的であり一定である、請求項20に記載の方法。
  22. 【請求項22】 ステップ(a)において、プライオリティレコードのプラ
    イオリティコードが一貫した反復的なやり方で変わる、請求項20に記載の方法
  23. 【請求項23】 プライオリティレコードに結合されているプライオリティ
    コントローラによる、処理中のプライオリティレコードのプライオリティコード
    を動的に変更するステップから更に構成される、請求項20に記載の方法。
  24. 【請求項24】 プライオリティコードの変更が少なくとも一部はオンチッ
    プ処理統計情報の変更によって決まるやり方で実施される、請求項20に記載の
    方法。
  25. 【請求項25】 プライオリティコードの決定が少なくとも一部はオフチッ
    プで実行され、それがプライオリティコントローラに伝えられる、請求項23に
    記載の方法。
  26. 【請求項26】 特定のプライオリティコードが効果的にストリームを無効
    化し、そのストリームが機能リソースにアクセスするのを阻止する、請求項20
    に記載の方法。
  27. 【請求項27】 プライオリティコントローラがプライオリティレコードを
    変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
    トリームを有効化/無効化する、請求項26に記載の方法。
  28. 【請求項28】 プライオリティコントローラがプライオリティレコードを
    変更し、プロセッサ割り込みに対する応答でストリームを有効化/無効化する、
    請求項26に記載の方法。
  29. 【請求項29】 プライオリティコントローラがストリーム命令負荷の現在
    の状態に従ってプライオリティコードを変更する、請求項23に記載の方法。
  30. 【請求項30】 同点決着機能、すなわちプライオリティレコードで同一の
    プライオリティを持つ複数のストリームに対して機能リソースへのアクセスを解
    決する同点決着機能から更に構成される、請求項20に記載の方法。
  31. 【請求項31】 (a)プライオリティコードを1つまたは複数のストリー
    ムに結び付け、コードをプライオリティコードに保存するステップと、 (b)処理中に命令スケジューラによってプライオリティレコードのプライオリ
    ティコードをチェックするステップと、 (c)主にプライオリティコードを基にしてストリームの機能リソースへのアク
    セスを管理するステップと、 (d)処理中にプライオリティコントローラによってプライオリティレコードの
    プライオリティコードを動的に変更するステップとから構成される、マルチスト
    リーミングプロセッサでのプライオリティによってストリームからの命令を処理
    する方法。
  32. 【請求項32】 ステップ(d)において、プライオリティコードの変更が
    少なくとも一部はオンチップ処理統計情報の変化によって決まるやり方で実行さ
    れる、請求項31に記載の方法。
  33. 【請求項33】 ステップ(d)において、プライオリティコードの決定が
    少なくとも一部はオフチップで実行され、それがプライオリティコントローラに
    伝えられる、請求項31に記載の方法。
  34. 【請求項34】 特定のプライオリティコードが効果的にストリームを無効
    化し、そのストリームの機能リソースへのアクセスを阻止する、請求項31に記
    載の方法。
  35. 【請求項35】 プライオリティコントローラがプライオリティレコードを
    変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
    トリームを有効化/無効化する、請求項34に記載の方法。
  36. 【請求項36】 プライオリティコントローラがプライオリティレコードを
    変更してプロセッサ割り込みに対する応答でストリームを有効化/無効化する、
    請求項34に記載の方法。
  37. 【請求項37】プライオリティコントローラがストリーム命令負荷の現在の
    状態に従ってプライオリティコードを変更する、請求項31に記載の方法。
  38. 【請求項38】 同点決着機能、すなわちプライオリティレコードで同一の
    プライオリティを持つ複数のストリームに対して機能リソースへのアクセスを解
    決する同点決着機能から更に構成される、請求項31に記載の方法。
  39. 【請求項39】 アプリケーションプログラムとデータを保存するためのメ
    モリと、メモリと結合され、複数の命令スレッドを処理する複数のストリーム、
    ストリームからの命令を処理する機能リソースセット、ストリームの機能リソー
    スへのアクセスを管理する命令スケジューラ、そしてストリームと結び付けられ
    ているプライオリティコードのプライオリティレコードを持つマルチストリーミ
    ングプロセッサとから構成されるコンピュータであって、 いずれの時点でも、命令スケジューラはプライオリティレコードに従ってストリ
    ームの機能リソースに対するアクセスを管理する、コンピュータ。
  40. 【請求項40】 プライオリティレコードが少なくとも1つのストリームと
    結び付けられている1つまたは複数のプライオリティコードから構成され、プラ
    イオリティレコードが静的であり一定である、請求項39に記載のコンピュータ
  41. 【請求項41】 プライオリティレコードが一貫した反復的なやり方で変わ
    る、請求項39に記載のコンピュータ。
  42. 【請求項42】 プライオリティレコードが1つまたは複数のストリームと
    結び付けられている1つまたは複数のプライオリティコードから構成され、さら
    にプライオリティレコードに結合されているプライオリティコントローラからな
    り、プライオリティコントローラが処理中に1つまたは複数のプライオリティコ
    ードを動的に変更するような、プライオリティレコードと結合されたプライオリ
    ティコントローラから構成される、請求項39に記載のコンピュータ。
  43. 【請求項43】 プライオリティコードの変更が少なくとも一部はオンチッ
    プ処理統計情報での変更によって決まるやり方で実施される、請求項42に記載
    のコンピュータ。
  44. 【請求項44】 プライオリティコードの決定が少なくともその一部はオフ
    チップで実施され、それがプライオリティコントローラに伝えられる、請求項4
    2に記載のコンピュータ。
  45. 【請求項45】 特定のプライオリティコードがストリームを効果的に無効
    化し、ストリームの機能リソースへのアクセスを阻止する、請求項42に記載の
    コンピュータ。
  46. 【請求項46】 プライオリティコントローラがプライオリティレコードを
    変更してオンチップイベント、処理統計情報、または外部入力に対する応答でス
    トリームを有効化/無効化する、請求項45に記載のコンピュータ。
  47. 【請求項47】 プライオリティコントローラがプライオリティレコードを
    変更し、プロセッサ割り込みに対する応答でストリームを有効化/無効化する、
    請求項45に記載のコンピュータ。
  48. 【請求項48】 プライオリティコントローラがストリーム命令負荷の現在
    の状態に従ってプライオリティコードを変更する、請求項42に記載のコンピュ
    ータ。
  49. 【請求項49】 同点決着機能、すなわちプライオリティレコードで同一の
    プライオリティを持っている複数のストリームに対して機能リソースへのアクセ
    スを解決する同点決着機能から更に構成される、請求項38に記載のコンピュー
    タ。
  50. 【請求項50】 アプリケーションプログラムとデータを保存するためのメ
    モリと、メモリと結合され、複数の命令スレッドをストリーミングする複数のス
    トリーム、ストリームリソースからの命令を処理する機能リソースセット、スト
    リームの機能リソースへのアクセスを管理する命令スケジューラ、そしてストリ
    ームと結び付けられているプライオリティコードのプライオリティレコードを持
    つマルチストリーミングプロセッサとから構成されるコンピュータであって、 プライオリティコントローラは処理中に動的にプライオリティコードを決定し、
    それに従いプライオリティレコードを変更する、コンピュータ。
  51. 【請求項51】 プライオリティコードの変更が少なくとも一部はオンチッ
    プ処理統計情報によって決まるやり方で実施される、請求項50に記載のコンピ
    ュータ。
  52. 【請求項52】 プライオリティレコードの変更が少なくともその一部はオ
    フチップで実施され、それがプライオリティコントローラに伝えられる、請求項
    50に記載のコンピュータ。
  53. 【請求項53】 特定のプライオリティコードがストリームを効果的に無効
    化し、ストリームの機能リソースへのアクセスを阻止する、請求項50に記載の
    コンピュータ。
  54. 【請求項54】 プライオリティコントローラがプライオリティレコードを
    変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
    トリームを有効化/無効化する、請求項53に記載のコンピュータ。
  55. 【請求項55】 プライオリティコントローラがプライオリティレコードを
    変更してプロセッサ割り込みに対する応答でストリームを有効化/無効化する、
    請求項53に記載のコンピュータ。
  56. 【請求項56】 プライオリティコントローラがストリーム命令負荷の現在
    の状態に従ってプライオリティコードを変更する、請求項50に記載のコンピュ
    ータ。
  57. 【請求項57】 同点決着機能、すなわちプライオリティレコードで同一の
    プライオリティを持っている複数のストリームに対して機能リソースへのアクセ
    スを解決する同点決着機能から更に構成される、請求項50に記載のコンピュー
    タ。
  58. 【請求項58】 パケットデータネットワークに接続するための少なくとも
    1つのポートと、アプリケーションコードを保存するためのメモリと、 メモリと結合され、複数の命令スレッドをストリーミングするための複数のスト
    リーム、ストリームリソースからの命令を処理する機能リソースセット、 ストリームの機能リソースへのアクセスを管理する命令スケジューラ、そしてス
    トリームと結び付けられているプライオリティコードのプライオリティレコード
    を持つマルチストリーミングプロセッサ、とから構成される、パケットデータネ
    ットワーク用のパケットデータルータであって、 プライオリティコントローラは、処理中に動的にプライオリティコードを決定し
    、それに従いプライオリティレコードを変更する、パケットデータネットワーク
    用のパケットデータルータ。
  59. 【請求項59】 複数のシグナルを別個のスレッドとしてストリーミングす
    る複数のストリームと、シグナルを処理する機能リソースセットと、シグナルの
    機能リソースへのアクセスを管理するスケジューラと、ストリームと結び付けら
    れているプライオリティコードのプライオリティレコードと、から構成されるデ
    ジタルシグナルプロセッサであって、プライオリティコントローラは処理中に動
    的にプライオリティコードを決定し、それに従いプライオリティコードを変更す
    る、デジタルシグナルプロセッサ。
JP2000588668A 1998-12-16 1999-12-13 マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング Expired - Fee Related JP3877527B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/216,017 US6477562B2 (en) 1998-12-16 1998-12-16 Prioritized instruction scheduling for multi-streaming processors
US09/216,017 1998-12-16
PCT/US1999/029645 WO2000036487A2 (en) 1998-12-16 1999-12-13 Prioritized instruction scheduling for multi-streaming processors

Publications (2)

Publication Number Publication Date
JP2002532801A true JP2002532801A (ja) 2002-10-02
JP3877527B2 JP3877527B2 (ja) 2007-02-07

Family

ID=22805346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000588668A Expired - Fee Related JP3877527B2 (ja) 1998-12-16 1999-12-13 マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング

Country Status (6)

Country Link
US (1) US6477562B2 (ja)
EP (1) EP1141821A4 (ja)
JP (1) JP3877527B2 (ja)
AU (1) AU2181600A (ja)
CA (1) CA2355250A1 (ja)
WO (1) WO2000036487A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512917A (ja) * 2005-09-26 2009-03-26 イマジネイション テクノロジーズ リミテッド スケーラブルなマルチスレッド型メディア処理アーキテクチャ
JP2010527071A (ja) * 2007-05-10 2010-08-05 フリースケール セミコンダクター インコーポレイテッド マルチスレッド型プロセッサのためのスレッドデエンファシス命令

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6398726B1 (en) 1998-11-20 2002-06-04 Intuitive Surgical, Inc. Stabilizer for robotic beating-heart surgery
US6852107B2 (en) 2002-01-16 2005-02-08 Computer Motion, Inc. Minimally invasive surgical training using robotics and tele-collaboration
US6659939B2 (en) 1998-11-20 2003-12-09 Intuitive Surgical, Inc. Cooperative minimally invasive telesurgical system
US6951535B2 (en) * 2002-01-16 2005-10-04 Intuitive Surgical, Inc. Tele-medicine system that transmits an entire state of a subsystem
US8527094B2 (en) 1998-11-20 2013-09-03 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US7020879B1 (en) 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
JP2001022600A (ja) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
WO2001013590A1 (en) * 1999-08-17 2001-02-22 Conexant Systems, Inc. Integrated circuit with a core processor and a co-processor to provide traffic stream processing
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US7250028B2 (en) 1999-11-09 2007-07-31 Intuitive Surgical Inc Endoscopic beating-heart stabilizer and vessel occlusion fastener
US6912586B1 (en) * 1999-11-12 2005-06-28 International Business Machines Corporation Apparatus for journaling during software deployment and method therefor
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
US8429699B2 (en) * 1999-12-14 2013-04-23 Arturo A. Rodriguez Systems and methods for resource-adaptive processing of scaled video and graphics
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
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6952824B1 (en) * 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7480706B1 (en) * 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US7649901B2 (en) 2000-02-08 2010-01-19 Mips Technologies, Inc. Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing
US7058064B2 (en) 2000-02-08 2006-06-06 Mips Technologies, Inc. Queueing system for processors in packet routing operations
US7155516B2 (en) 2000-02-08 2006-12-26 Mips Technologies, Inc. Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory
US7082552B2 (en) 2000-02-08 2006-07-25 Mips Tech Inc Functional validation of a packet management unit
US7032226B1 (en) 2000-06-30 2006-04-18 Mips Technologies, Inc. Methods and apparatus for managing a buffer of events in the background
US7165257B2 (en) 2000-02-08 2007-01-16 Mips Technologies, Inc. Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7856633B1 (en) 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
US7149883B1 (en) * 2000-03-30 2006-12-12 Intel Corporation Method and apparatus selectively to advance a write pointer for a queue based on the indicated validity or invalidity of an instruction stored within the queue
US7162540B2 (en) * 2000-05-15 2007-01-09 Catchfire Systems, Inc. Method and system for prioritizing network services
US7162615B1 (en) * 2000-06-12 2007-01-09 Mips Technologies, Inc. Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch
US8290768B1 (en) 2000-06-21 2012-10-16 International Business Machines Corporation System and method for determining a set of attributes based on content of communications
US6408277B1 (en) 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US9699129B1 (en) 2000-06-21 2017-07-04 International Business Machines Corporation System and method for increasing email productivity
WO2002006959A1 (en) * 2000-07-14 2002-01-24 Clearwater Networks, Inc. Instruction fetch and dispatch in multithreaded system
JP2002164790A (ja) * 2000-11-28 2002-06-07 Canon Inc 圧縮ストリーム復号化装置及び方法並びに記憶媒体
US7363339B2 (en) * 2000-12-22 2008-04-22 Oracle International Corporation Determining group membership
US7475151B2 (en) * 2000-12-22 2009-01-06 Oracle International Corporation Policies for modifying group membership
US7213249B2 (en) * 2000-12-22 2007-05-01 Oracle International Corporation Blocking cache flush requests until completing current pending requests in a local server and remote server
US8015600B2 (en) 2000-12-22 2011-09-06 Oracle International Corporation Employing electronic certificate workflows
US7085834B2 (en) * 2000-12-22 2006-08-01 Oracle International Corporation Determining a user's groups
US7711818B2 (en) * 2000-12-22 2010-05-04 Oracle International Corporation Support for multiple data stores
US7581011B2 (en) * 2000-12-22 2009-08-25 Oracle International Corporation Template based workflow definition
US7937655B2 (en) * 2000-12-22 2011-05-03 Oracle International Corporation Workflows with associated processes
US7415607B2 (en) * 2000-12-22 2008-08-19 Oracle International Corporation Obtaining and maintaining real time certificate status
US7802174B2 (en) 2000-12-22 2010-09-21 Oracle International Corporation Domain based workflows
US6675261B2 (en) * 2000-12-22 2004-01-06 Oblix, Inc. Request based caching of data store data
US7145913B2 (en) * 2001-02-15 2006-12-05 The Board Of Trustees Of The University Of Illinois Thread based scalable routing for an active router
US7165094B2 (en) * 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
US6996838B2 (en) * 2001-06-12 2006-02-07 Scientific Atlanta, Inc. System and method for media processing with adaptive resource access priority assignment
US7487339B2 (en) * 2001-10-12 2009-02-03 Mips Technologies, Inc. Method and apparatus for binding shadow registers to vectored interrupts
US7552261B2 (en) * 2001-10-12 2009-06-23 Mips Technologies, Inc. Configurable prioritization of core generated interrupts
US7159216B2 (en) * 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US6976154B1 (en) * 2001-11-07 2005-12-13 Juniper Networks, Inc. Pipelined processor for examining packet header information
US7225256B2 (en) 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US7274857B2 (en) * 2001-12-31 2007-09-25 Scientific-Atlanta, Inc. Trick modes for compressed video streams
US7069424B2 (en) * 2002-01-02 2006-06-27 Intel Corporation Placing front instruction in replay loop to front to place side instruction into execution stream upon determination of criticality
US7032101B2 (en) * 2002-02-26 2006-04-18 International Business Machines Corporation Method and apparatus for prioritized instruction issue queue in a processor
US7840658B2 (en) * 2002-05-15 2010-11-23 Oracle International Corporation Employing job code attributes in provisioning
US7216163B2 (en) * 2002-05-15 2007-05-08 Oracle International Corporation Method and apparatus for provisioning tasks using a provisioning bridge server
US6920632B2 (en) * 2002-08-23 2005-07-19 Xyron Corporation Dynamic multilevel task management method and apparatus
FR2845224B1 (fr) * 2002-09-26 2004-12-17 Cit Alcatel Dispositif ordonnanceur pour un systeme a ressources partagees asymetriquement
US20040073941A1 (en) * 2002-09-30 2004-04-15 Ludvig Edward A. Systems and methods for dynamic conversion of web content to an interactive walled garden program
AU2003282365A1 (en) * 2002-11-26 2004-06-18 Mplicity Ltd. A processor capable of multi-threaded execution of a plurality of instruction-sets
US20040139441A1 (en) * 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method
US7278141B2 (en) * 2003-04-23 2007-10-02 International Business Machines Corporation System and method for adding priority change value corresponding with a lock to a thread during lock processing
US7401208B2 (en) * 2003-04-25 2008-07-15 International Business Machines Corporation Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor
US7360062B2 (en) * 2003-04-25 2008-04-15 International Business Machines Corporation Method and apparatus for selecting an instruction thread for processing in a multi-thread processor
US7401207B2 (en) * 2003-04-25 2008-07-15 International Business Machines Corporation Apparatus and method for adjusting instruction thread priority in a multi-thread processor
US20050187913A1 (en) 2003-05-06 2005-08-25 Yoram Nelken Web-based customer service interface
US7966642B2 (en) * 2003-09-15 2011-06-21 Nair Ajith N Resource-adaptive management of video storage
FI20031414A (fi) * 2003-09-30 2005-03-31 Nokia Corp Datan siirtäminen langattoman pakettivälitteisen datajärjestelmän matkaviestimessä
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7882132B2 (en) 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7360064B1 (en) 2003-12-10 2008-04-15 Cisco Technology, Inc. Thread interleaving in a multithreaded embedded processor
US7441101B1 (en) 2003-12-10 2008-10-21 Cisco Technology, Inc. Thread-aware instruction fetching in a multithreaded embedded processor
US7206922B1 (en) 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US20050210472A1 (en) * 2004-03-18 2005-09-22 International Business Machines Corporation Method and data processing system for per-chip thread queuing in a multi-processor system
US7877484B2 (en) * 2004-04-23 2011-01-25 International Business Machines Corporation System and method for bulk processing of semi-structured result streams from multiple resources
US8600217B2 (en) * 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
CN100468345C (zh) * 2004-07-28 2009-03-11 松下电器产业株式会社 冲突解决装置
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
US7634773B2 (en) * 2004-11-24 2009-12-15 Hewlett-Packard Development Company, L.P. Method and apparatus for thread scheduling on multiple processors
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7853777B2 (en) * 2005-02-04 2010-12-14 Mips Technologies, Inc. Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7506140B2 (en) 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7490230B2 (en) 2005-02-04 2009-02-10 Mips Technologies, Inc. Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
US7657883B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor
US7681014B2 (en) 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7752627B2 (en) * 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
US7631130B2 (en) * 2005-02-04 2009-12-08 Mips Technologies, Inc Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
US7627770B2 (en) * 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US8726292B2 (en) * 2005-08-25 2014-05-13 Broadcom Corporation System and method for communication in a multithread processor
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
US20070150585A1 (en) * 2005-12-28 2007-06-28 Microsoft Corporation Multi-dimensional aggregation on event streams
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
US20070277177A1 (en) * 2006-05-29 2007-11-29 Takuji Kawamoto Information processing device, information processing method, and computer-readable information recording medium recorded with information processing program
US7961745B2 (en) * 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
US7990989B2 (en) 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
US7773621B2 (en) 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US7859548B1 (en) 2006-10-19 2010-12-28 Nvidia Corporation Offloading cube map calculations to a shader
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
US8799902B2 (en) * 2007-04-09 2014-08-05 Intel Corporation Priority based throttling for power/performance quality of service
GB2449106B (en) 2007-05-10 2011-07-27 Advanced Risc Mach Ltd Issue policy control within a multi-threaded in-order superscalar processor
US7676461B2 (en) 2007-07-18 2010-03-09 Microsoft Corporation Implementation of stream algebra over class instances
US20090037918A1 (en) * 2007-07-31 2009-02-05 Advanced Micro Devices, Inc. Thread sequencing for multi-threaded processor with instruction cache
US7877573B1 (en) 2007-08-08 2011-01-25 Nvidia Corporation Work-efficient parallel prefix sum algorithm for graphics processing units
US7725518B1 (en) * 2007-08-08 2010-05-25 Nvidia Corporation Work-efficient parallel prefix sum algorithm for graphics processing units
US20090044159A1 (en) * 2007-08-08 2009-02-12 Mplicity Ltd. False path handling
JP5043560B2 (ja) * 2007-08-24 2012-10-10 パナソニック株式会社 プログラム実行制御装置
US8301605B2 (en) * 2007-12-17 2012-10-30 International Business Machines Corporation Managing maintenance tasks for computer programs
US8300696B2 (en) * 2008-07-25 2012-10-30 Cisco Technology, Inc. Transcoding for systems operating under plural video coding specifications
US20100088325A1 (en) 2008-10-07 2010-04-08 Microsoft Corporation Streaming Queries
US8640133B2 (en) 2008-12-19 2014-01-28 International Business Machines Corporation Equal duration and equal fetch operations sub-context switch interval based fetch operation scheduling utilizing fetch error rate based logic for switching between plurality of sorting algorithms
JP5330507B2 (ja) * 2009-05-18 2013-10-30 パナソニック株式会社 プロセッサ
JP5463076B2 (ja) * 2009-05-28 2014-04-09 パナソニック株式会社 マルチスレッドプロセッサ
JP5452125B2 (ja) * 2009-08-11 2014-03-26 クラリオン株式会社 データ処理装置及びデータ処理方法
US9158816B2 (en) 2009-10-21 2015-10-13 Microsoft Technology Licensing, Llc Event processing with XML query based on reusable XML query template
US8589936B2 (en) * 2010-03-16 2013-11-19 Alcatel Lucent Method and apparatus for managing reallocation of system resources
US9402207B2 (en) * 2010-05-07 2016-07-26 Zte Corporation Priority based service selection methods and apparatus
JP5548037B2 (ja) 2010-06-11 2014-07-16 パナソニック株式会社 命令発行制御装置及び方法
WO2012037491A2 (en) 2010-09-17 2012-03-22 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
US20120137289A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Protecting high priority workloads in a virtualized datacenter
US9766893B2 (en) 2011-03-25 2017-09-19 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
KR101636602B1 (ko) 2011-03-25 2016-07-05 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
CN103562866B (zh) 2011-03-25 2018-03-30 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
CN103649932B (zh) 2011-05-20 2017-09-26 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
EP2710480B1 (en) 2011-05-20 2018-06-20 Intel Corporation An interconnect structure to support the execution of instruction sequences by a plurality of engines
CN104040491B (zh) 2011-11-22 2018-06-12 英特尔公司 微处理器加速的代码优化器
EP2783280B1 (en) 2011-11-22 2019-09-11 Intel Corporation An accelerated code optimizer for a multiengine microprocessor
US20130179371A1 (en) * 2012-01-05 2013-07-11 Microsoft Corporation Scheduling computing jobs based on value
US20140325185A1 (en) * 2012-01-31 2014-10-30 Siemens Aktiengesellschaff Method for Operating a Processor
US9632977B2 (en) * 2013-03-13 2017-04-25 Nxp Usa, Inc. System and method for ordering packet transfers in a data processor
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
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
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
CN105247484B (zh) 2013-03-15 2021-02-23 英特尔公司 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
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
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10318294B2 (en) 2016-06-20 2019-06-11 International Business Machines Corporation Operation of a multi-slice processor implementing dependency accumulation instruction sequencing
US11068274B2 (en) * 2017-12-15 2021-07-20 International Business Machines Corporation Prioritized instructions in an instruction completion table of a simultaneous multithreading processor
US11367160B2 (en) * 2018-08-02 2022-06-21 Nvidia Corporation Simultaneous compute and graphics scheduling
US10996957B1 (en) * 2019-06-20 2021-05-04 Marvell Asia Pte, Ltd. System and method for instruction mapping in an out-of-order processor
US11036515B1 (en) 2019-06-20 2021-06-15 Marvell Asia Pte, Ltd. System and method for instruction unwinding in an out-of-order processor
EP4198724A1 (en) * 2021-12-20 2023-06-21 Airbus SAS Processing device and method for distributing data to a plurality of processing units

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2845646B2 (ja) 1990-09-05 1999-01-13 株式会社東芝 並列演算処理装置
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
FR2705804B1 (fr) 1993-05-27 1995-08-11 Sgs Thomson Microelectronics Architecture de processeur multi-tâches.
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US5542088A (en) * 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method
US5815733A (en) * 1996-02-01 1998-09-29 Apple Computer, Inc. System for handling interrupts in a computer system using asic reset input line coupled to set of status circuits for presetting values in the status circuits
US5867725A (en) * 1996-03-21 1999-02-02 International Business Machines Corporation Concurrent multitasking in a uniprocessor
US5826081A (en) * 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
KR100500002B1 (ko) * 1996-08-27 2005-09-08 마츠시타 덴끼 산교 가부시키가이샤 복수의명령흐름을독립적으로처리하고,명령흐름단위로처리성능을유연하게제어하는멀티스레드프로세서
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US5987492A (en) * 1997-10-31 1999-11-16 Sun Microsystems, Inc. Method and apparatus for processor sharing
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512917A (ja) * 2005-09-26 2009-03-26 イマジネイション テクノロジーズ リミテッド スケーラブルなマルチスレッド型メディア処理アーキテクチャ
JP2010527071A (ja) * 2007-05-10 2010-08-05 フリースケール セミコンダクター インコーポレイテッド マルチスレッド型プロセッサのためのスレッドデエンファシス命令
US8832702B2 (en) 2007-05-10 2014-09-09 Freescale Semiconductor, Inc. Thread de-emphasis instruction for multithreaded processor

Also Published As

Publication number Publication date
WO2000036487A3 (en) 2000-11-23
EP1141821A2 (en) 2001-10-10
AU2181600A (en) 2000-07-03
CA2355250A1 (en) 2000-06-22
WO2000036487A2 (en) 2000-06-22
US20020062435A1 (en) 2002-05-23
EP1141821A4 (en) 2005-06-01
JP3877527B2 (ja) 2007-02-07
US6477562B2 (en) 2002-11-05

Similar Documents

Publication Publication Date Title
JP3877527B2 (ja) マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング
US6389449B1 (en) Interstream control and communications for multi-streaming digital processors
CA2704269C (en) Uniform synchronization between multiple kernels running on single computer systems
EP1435039B1 (en) Method and apparatus for scheduling of requests to a dynamic random access memory device
EP1846836B1 (en) Multi-threaded packeting processing architecture
EP1435044B1 (en) Method and apparatus for scheduling requests using ordered stages of scheduling criteria
US7467385B2 (en) Interrupt and exception handling for multi-streaming digital processors
US8539498B2 (en) Interprocess resource-based dynamic scheduling system and method
US20030069920A1 (en) Multi-threaded packet processing engine for stateful packet processing
JP2002342163A (ja) マルチスレッドプロセッサ用キャッシュ制御方式
EP2946528A2 (en) Scheduling and traffic management with offload processors
JP5891284B2 (ja) コンピュータシステム、カーネルスケジューリングシステム、リソース割当方法及びプロセス実行共有方法
JP2005505854A (ja) 構成可能なしきい値を使用して1つの資源への要求をスケジュールする方法及び装置
US20090183166A1 (en) Algorithm to share physical processors to maximize processor cache usage and topologies
JP2002366507A (ja) 複数チャネルdmaコントローラおよびプロセッサシステム
JP5676845B2 (ja) コンピュータシステム、カーネルスケジューリングシステム、リソース割当方法及びプロセス実行共有方法
WO2000070482A1 (en) Interrupt and exception handling for multi-streaming digital processors
CA2316643C (en) Fair assignment of processing resources to queued requests
US20060048156A1 (en) Unified control store
JPH05233572A (ja) マルチプロセッサに於けるプロセスディスパッチ方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050516

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060404

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060710

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061031

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3877527

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091110

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Year of fee payment: 5

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

Year of fee payment: 6

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

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 7

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees