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
Links
- 238000012545 processing Methods 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000008859 change Effects 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 43
- 230000015654 memory Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 22
- 230000003068 static effect Effects 0.000 claims description 17
- 230000003252 repetitive effect Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 abstract description 2
- 230000007246 mechanism Effects 0.000 description 13
- 241001522296 Erithacus rubecula Species 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012913 prioritisation Methods 0.000 description 2
- 238000007616 round robin method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101001005708 Homo sapiens MARVEL domain-containing protein 1 Proteins 0.000 description 1
- 102100025069 MARVEL domain-containing protein 1 Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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
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
Description
野ではマルチストリーミングプロセッサと呼ばれている、複数のプロセッシング
ストリームで動作可能な装置に関わるものである。
は知られており、活発な研究開発の対象になっている。本発明はこの分野での従
来の成果に注目し、その上に機構や方法においてさらに新しいまた自明のもので
はない改善を提供するものである。発明者は、この本願において、本発明のいく
つかの面に対し追加の背景とコンテキストを提供する、マルチストリーミングプ
ロセッサの専門分野に属するいくつかの公開論文を一覧にした情報開示説明を提
供する。
トし処理できるプロセッサに関するハードウェア構造を指す語として使用する。
スレッドは、ソフトウェアまたはアプリケーションコンテキストによって定義さ
れる。たとえば、デスクトップコンピュータを動かすCPUとして実装されてい
るマルチストリーミングプロセッサは、同時にワードプロセッサプログラムやオ
ブジェクト指向作図プログラムのような複数のアプリケーションのスレッドを処
理することができる。また、マルチストリーム対応プロセッサは、データパケッ
トネットワークのルータのように、定期的に人間が介在しなくてもマシーンを駆
動することができる。このコンテキストにおいては、例えば、ネットワークでの
データパケットの処理と転送のために1つまたは複数のアプリケーション(コー
ドセット)が存在し、ネットワークに接続されている他のルータやサーバとのQ
uality of Service(QoS)ネゴシエーションのために別の
アプリケーションが存在していると言うことができる。内部機能のためのプログ
ラム済みスケジューリングと共に、処理のために受け取られるデータの性質が、
アプリケーションルーチンの呼び出しとサービス提供を規定する。
ドウェアによって決まるストリームの数に固定されている。したがって、シング
ルスレッドを実行するマルチストリーミングプロセッサは、シングルストリーム
プロセッサとして動作する。
、スーパースケーラプロセッサも広く知られている。この用語は、プロセッサチ
ップに実装されている複数の機能ユニットと、利用可能な個別機能ユニットに命
令を発行する能力を、持つプロセッサを指している。現在製造されているほとん
どのCPUプロセッサは、複数の機能ユニットを持っている。浮動小数点演算ユ
ニット、整数演算ユニット、ロジックユニット、ブランチ予測ユニット、ロード
/ストアユニットなど多数のユニットを持っているプロセッサもある。マルチス
トリーミングスーパースケーラプロセッサも現在知られている。
ジューリング命令に関して、ほとんど無視されている分野があると考える。すな
わち、どのストリームに機能リソースへのプライオリティが与えられるかという
、プライオリティの問題である。これは、すべてのマルチストリーミングプロセ
ッサで問題となり、複数の命令スレッドを実行するスーパースケーラプロセッサ
ではより複雑な問題となりうる。現在ほとんどの開発において、スケジューリン
グはプロセッサ使用効率を最大化するように開発されている。発明者は、急速に
成長している技術分野へのデジタル処理の急速な普及によって、スレッド処理や
プロセッサリソースへのアクセスの動的優先順位付けが緊急に必要になったこと
を発見した。
、プロセッサの可用性よりもアプリケーションをどう処理するかの方が重大な問
題であることが発明者に明らかとなった。これまでは、プロセッサの可用性ばか
りに注意が向けられていた。たとえば、理論的またはアカデミックな使用は別と
して、マルチストリーミングプロセッサ向けのほとんどの実際のアプリケーショ
ンでは、リアルタイムな要求というものが存在する。さらに、実行数に依存して
、実行中に、アプリケーションスレッドの緊急性が、他のスレッドと関連して変
わることがある。現在利用されている単純なシェアリングやスケジューリングの
手法は、実時間の問題に対応していない。
サを含む、マルチストリーミングプロセッサ向けのタスクやスレッドを高度にま
た動的にスケジューリングし優先順位付けするための機構や方法である。本発明
は、以下で詳細に説明するように、この機構や方法を明らかにする。
ングするための複数のストリーム、ストリームからの命令を処理するための機能
リソースセット、機能リソースへのストリームのアクセスを管理する命令スケジ
ューラ、ストリームと関連したプライオリティコードのプライオリティレコード
から構成されるマルチストリーミングプロセッサが提供される。いかなる時点で
も、命令スケジューラは、プライオリティレコードに従って機能リソースへのス
トリームのアクセスを管理する。
結び付けられている1つまたは複数のプライオリティコードから構成され、プラ
イオリティレコードは静的であり一定である。また、ある実施形態では、プライ
オリティレコードが一貫した反復的なやり方で変化する実施形態も考えうる。ま
た、プライオリティコントローラが処理中に1つまたは複数のプライオリティコ
ードを動的に変えるような、プライオリティレコードと結合されているプライオ
リティコントローラをプロセッサが持つこともある。プライオリティコードの変
更は、少なくともその一部がチップ上の処理利統計情報の変更によって決められ
るやり方で実現されることもある。また、プライオリティコードの決定が、ある
実施形態では、少なくともチップ外で決められ、プライオリティコントローラに
伝えられることもあるかもしれない。また、更に別の実施形態では、プライオリ
ティコントローラが、ストリーム命令負荷のその時の状態に従ってプライオリテ
ィコードを変えることもある。
ムを無効化し、機能リソースへのストリームのアクセスを阻止する。また、プラ
イオリティコントローラが、プライオリティレコードを変更し、オンチップイベ
ント、処理統計情報、または外部入力に応答して、またはプロセッサへの割り込
みに従って、ストリームを有効化/無効化することもある。
イオリティを持っている複数のストリームに対して、機能リソースへのアクセス
を解決する、同点決着機能を更に持つ。
めの複数のストリーム、ストリームリソースからの命令を処理するための機能リ
ソースセット、命令をストリームにフェッチするフェッチユニット、機能リソー
スへのストリームのアクセスを管理する命令スケジューラ、ストリームと結び付
けられているプライオリティコードのプライオリティレコード、そしてプライオ
リティを動的に決め、処理中にプライオリティレコードを動的に変更するプライ
オリティコントローラから構成されるマルチストリーミングプロセッサが提供さ
れる。
ップ上の処理統計情報によって決められるやり方で実施される。そして、ある実
施形態では、少なくともプライオリティレコードの変更の一部がチップ外で実施
され、プライオリティコントローラに伝えられることもある。ある実施形態では
、特定のプライオリティコードを使って、効果的にストリームを無効化し、その
ストリームが機能リソースにアクセスすることを阻止することもできる。有効化
/無効化は、オンチップイベント、処理統計情報、または外部入力への応答にお
いて、あるいはプロセッサへの割り込みによって実施することもできる。プライ
オリティがストリーム命令負荷に従って変わることもある。他の場合と同様この
場合でも、同点解決機能、すなわちプライオリティレコードに同一のプライオリ
ティを持つ複数のストリームに対して機能リソースへのアクセスを解決する、同
点解決機能が提供されることもある。
イオリティによってストリームからの命令を処理する方法が提供され、該方法は
以下のステップを含む:(a)プライオリティコードを1つまたは複数のストリ
ームと結び付け、コードをプライオリティレコードに保存するステップ、(b)
処理中に命令スケジューラによってプライオリティレコードのプライオリティコ
ードをチェックするステップ、(c)特にプライオリティコードを基にして機能
リソースへのストリームのアクセスを管理するステップ。この方法ではプライオ
リティレコードのプライオリティコードは静的で変わらないことも、また一貫し
た反復的やり方で変わることもある。
オリティコントローラによる処理中にプライオリティレコードのプライオリティ
コードを動的に変更するステップも更に存在することもある。プライオリティコ
ードの変更は、少なくともその一部はチップ上の処理統計情報の変更によって決
まるやり方で実施され、あるいは、少なくともその一部はチップ外で実施され、
プライオリティコントローラに伝えられることもある。
ームを無効化し、ストリームが機能リソースにアクセスするのを阻止する。
への応答において実施される。あるいは、プロセッサ割り込みに従って行われる
。プライオリティコードは、ストリーム命令負荷の現在の状態によって変えられ
ることもある。この方法では、同点決着機能、すなわちプライオリティレコード
に同一のプライオリティを持っている複数のストリームに対して機能リソースへ
のアクセスを解決するためのステップが提供される。
プライオリティによってストリームからの命令を処理する方法が提供さ、以下の
ステップから構成される、(a)プライオリティコードを1つまたは複数のスト
リームと結び付け、プライオリティレコードにコードを保存するステップ、(b
)処理中に命令スケジューラによってプライオリティレコードのプライオリティ
コードをチェックするステップ、(c)特にプライオリティコードを基にしてス
トリームの機能リソースへのアクセスを管理するステップ、(d)処理中にプラ
イオリティコントローラによってプライオリティレコードのプライオリティコー
ドを動的に変更するステップ。
その一部はチップ上の処理統計情報の変化によって決まるやり方で実施される。
あるいは、プライオリティコードの決定の少なくともその一部は、チップ外で実
施され、プライオリティコントローラに伝えられる。また、この方法では、特殊
なプライオリティコードを使って、効果的にストリームを無効化し、そのストリ
ームが機能リソースにアクセスするのを阻止することができる。この有効化/無
効化は、オンチップイベント、処理統計情報、または外部入力への応答において
実施される。あるいは、プロセッサ割り込みに従って実施される。
に従って変更される。また、この方法では、同点決着機能、すなわちプライオリ
ティレコードで同一のプライオリティを持つ複数のストリームに対して機能リソ
ースへのアクセスを解決する機能が提供できる。
するためのメモリ、メモリと結合され、複数の命令スレッドを処理するための複
数のストリームを持つマルチストリーミングプロセッサ、ストリームからの命令
を処理する機能リソースセット、機能リソースへのストリームのアクセスを管理
する命令スケジューラ、そしてストリームと結合されたプライオリティコードの
プライオリティレコードから構成されるコンピュータが提供される。いかなる時
点でも、命令スケジューラは、プライオリティレコードに従って、ストリームの
機能リソースへのアクセスを管理する。
つのストリームと結び付けられた1つまたは複数のプライオリティコードから構
成され、プライオリティレコードが静的であり変化しない。また、別の実現では
、プライオリティレコードは、一貫した反復的やり方で変更される。また、プラ
イオリティレコードが、1つまたは複数のストリームと結び付けられた1つまた
は複数のプライオリティコードから構成され、さらにプロセッサはプライオリテ
ィレコードと結合されたプライオリティコントローラを持つことがある。この場
合、プライオリティコントローラが処理中に1つまたは複数のプライオリティコ
ードを動的に変更する。プライオリティコードの変更は、少なくとも一部はチッ
プ上の処理統計情報の変化によって決まるようなやり方で実施されることもある
。この実施形態あるいは他の実施形態では、プライオリティコードの決定は、少
なくともその一部はチップ外で実施され、それがプライオリティコントローラに
伝えられる。
にストリームを無効化し、そのストリームが機能リソースにアクセスするのを阻
止する。あるいは、プライオリティコントローラがプライオリティレコードを変
更し、オンチップイベント、処理統計情報、または外部入力に対する応答でスト
リームを有効化/無効化する。プロセッサ割り込みに従って実行されることもあ
る。
って、プライオリティコードを変更することもできる。同点決着機能、すなわち
プライオリティレコードで同一のプライオリティを持つ複数のストリームの場合
に機能リソースへのアクセスを解決する機能が存在することもある。
リ、メモリと結合され、複数の命令スレッドを処理するための複数のストリーム
を持つマルチストリーミングプロセッサ、ストリームリソースからの命令を処理
する機能リソースセット、機能リソースへのストリームのアクセスを管理する命
令スケジューラ、そしてストリームと結合されたプライオリティコードのプライ
オリティレコードから構成されるコンピュータが提供される。プライオリティコ
ントローラは、処理中にプライオリティコードを動的に決定し、それに従ってプ
ライオリティレコードを変更する。
くともその一部がチップ上の処理統計情報によって決まるやり方で実施される。
また、プライオリティレコードの変更が、少なくともその一部はチップ外で実施
され、プライオリティコントローラに伝えられることもある。実施形態によって
は、特定のプライオリティコードが効果的にストリームを無効化し、そのストリ
ームが機能リソースにアクセスするのを阻止する。プライオリティコントローラ
は、プライオリティレコードを変更してオンチップイベント、処理統計情報、ま
たは外部入力に対する応答でストリームを有効化/無効化することができる。こ
れは、プロセッサ割り込みに従って実施されることもある。
従って、プライオリティコードを変更することもある。このコンピュータでは、
同点決着機能、すなわちプライオリティレコードで同一のプライオリティを持つ
複数のストリームに対して機能リソースへのアクセスを解決する機能が提供され
ることもある。
とも1つのポート、アプリケーションコードを保存するためのメモリ、メモリと
結合され、複数の命令スレッドをストリーミングするための複数のストリームを
持つマルチストリーミングプロセッサ、ストリームリソースからの命令を処理す
る機能リソースセット、ストリームの機能リソースへのアクセスを管理する命令
スケジューラ、そしてストリームと結び付けられているプライオリティコードの
プライオリティレコードから構成される、パケットデータネットワークのための
パケットデータルータが提供される。プライオリティコントローラは、処理中に
プライオリティコードを動的に決定しし、それに従ってプライオリティレコード
を変更する。
複数のストリーム、シグナル処理のための機能リソース、シグナルの機能リソー
スへのアクセスを管理するスケジューラ、ストリームと結び付けられているプラ
イオリティコードのプライオリティレコードから構成される、デジタルシグナル
プロセッサが提供される。プライオリティコントローラは、処理中にプライオリ
ティコードを動的に決定しし、それに従いプライオリティレコードを変更する。
ロジにおいて初めて、ストリームのプロセッサ機能リソースへのアクセスが選択
的に管理され、機能リソースへのストリームのアクセスプライオリティが動的に
管理され、処理パワーが向上し、リソースをより効果的に使用でき、特にリアル
タイム処理ニーズに応える、マルチストリーミングプロセッサが提供される。
用可能なプログラムスレッドからの複数の命令ストリームを同時に実行できるリ
ソースを持つプロセッサである。本発明は、ある面から見れば、競合するストリ
ームの、機能ユニットを含む1つまたは複数の処理リソースへの効率的でタイム
リーな割当てに優先順位を付け、調整するプライオリティコントローラと結合さ
れた命令スケジューラを構成するものである。
する関連するストリームの処理リソースへの要求を表している、プライオリティ
が割り当てられる。プライオリティは、すべてのプロセッサリソースに関する関
連するストリームの要求を表す1つの数によって、またはいくつかのリソースの
夫々に対するプライオリティを含むリストによって実装される。さらに、プライ
オリティは、利用可能なリソースへのアクセス等級や利用可能なリソースの間で
のアクセス制限を含むことが出来る。本発明の様々な実施形態でプライオリティ
を決定し発行するロジックは、以下で説明するように様々な方法で実装できる。
プライオリティアクセスの他にリソースへのアクセスが管理されることもある。
他の形態ではプライオリティはストリームによって変化し、アクセスを動的に管
理することもできる。これらアクセスとプライオリティ決定のための基準は、現
在のキャッシュやメモリ要求のようなオンチップ統計情報、中でも、機能ユニッ
ト利用率、またはブランチ予測に従って、またはデータの到着と利用可能性、ま
たオフチップからの入力、そしてこれらの基準の組み合わせなどの様々なソース
から得られる。好適実施形態では、プライオリティ発行ロジックは、現在のプラ
イオリティに従って、各ストリームのプロセッサ機能リソースへのアクセスを制
御し管理する。また、好適実施形態では、プライオリティコントロールと命令発
行機能が動的に変わり、各スレッドはタイムリにサービスを受けることができる
ばかりでなく、実際のプライオリティの制約内でプロセッサリソースの利用状況
を効率的に管理することができる。
てる命令スケジューラ5への優先順位付けを含め、本発明の実施形態におけるマ
ルチストリーミングプロセッサ14の命令のフローとオペレーションの例を示し
ている。この例のスレッド1、スレッド2、スレッド3は、競合プロセッサスト
リームとして実行され、メモリ上に保存されているプログラムを表している。ス
レッドは、個々のアプリケーションプログラム、単一ののマルチスレッドプログ
ラムの一部、または割り込みサービスルーチンの結果としてフェッチされた命令
スレッドのような様々なソースから来るが、ソースはこれらに限られるものでは
ない。この例でのプロセッサは、アクティブスレッド1と2から命令をフェッチ
してデコードし、いつでも実行できる命令を含んでいるストリームのプール4を
集める。この例のスレッド3は、インアクティブとして扱われる。スケジューラ
5は、ストリームをリソース10−13に割り当てる。
る、すなわちスレッド1を実行しているストリームと結び付けられているプライ
オリティ7、そしてスレッド2を実行しているストリームと結び付けられている
プライオリティ8として示されているものである。各ストリームのプライオリテ
ィがリソース10−13への現在のアクセスを決定し、本発明の追加的特徴では
、このプライオリティがリソース10−13に関連する要求を決める。プライオ
リティ発行ネットワーク6は、プライオリティ7と8を使って、1つまたは複数
のメカニズムに従い、各優先順位付けされたストリームからの命令をリソース1
0−13に割り当てる。
ータスを監視し、たとえばキャッシュやメモリ要求、リソースの利用率などのよ
うな処理活動の履歴を含む利用可能な基準に従ってプライオリティを決定または
修正し、必要なだけ、ある実施形態では、プロセッササイクルと同じ回数プライ
オリティを動的に変更して、スレッドのタイミング要求を満たし処理リソースの
利用率を最適化する。高度な実施形態では、プライオリティコントロールユニッ
ト9のロジックは、スレッド1−3の要求に応じて、動的にスケジューリングメ
カニズムを切り替える。
キテクチャを示すブロック図である。実線は、命令とデータのパスを表しており
、鎖線は制御のパスを示している。この例でのメモリ201は、プロセッサにお
いて同時に実行されるプログラムまたはプログラムの一部である、1つまたは複
数スレッドのための命令を含んでいる。プロセッサは、複数のスレッドからの命
令を命令キャッシュ202に読み込み、命令と結び付けられているデータをデー
タキャッシュ211に読み込む。典型的には、マルチスレッドのフェッチユニッ
ト203の制御下では、命令キャッシュ202からの命令は、マルチスレッドの
フェッチユニット203に移され、プリフェッチバッファに蓄積され、デコード
され、1つまたは複数のキューに入れられる。様々な実施形態では、単一のキュ
ーはストリーム間で共有されるかまたは、各ストリームのためのユニットに分け
られることがある。場合によっては、キューは1つまたはリソースセットに、あ
るいはストリームとリソースの組に専用となることもある。
格な命令が機能リソースに発行される。実行できるプロセッサを持つ各ストリー
ムは、そのストリームのプログラムカウンタとレジスタファイルを含むコンテキ
ストフレームを持つ。スレッドは、スレッドのプログラムカウンタアドレスとレ
ジスタ値を持つ、利用可能なコンテキストフレームをロードし、それにアクティ
ブプライオリティを割り当てることによってアクティブになる。実行すべきスレ
ッドが1つしかないこともある。その場合、実行すべき命令のストリームは1つ
である。スレッドを実行するのに利用できるストリームより多くのアクティブス
レッドが存在する場合、利用可能なコンテキストフレームの数までのスレッドが
アクティブになり、他のスレッドは一時的にインアクティブのままである。典型
的には、オペレーティングシステムの機能がスレッドをマルチストリーミングプ
ロセッサのストリームに割り当てる。
ば、遅いメモリでは、それより低い頻度で実行に組み込まれることがある。命令
スケジューラ5は、複数のストリームからの命令を実行する順序を決め、選択し
た命令をプライオリティ発行ネットワーク6に送る。メモリからのロード・スト
ア命令は命令スケジューラ5によって監視され、メモリ201、データキャッシ
ュ211、命令キャッシュ202、その他のリソースのオペレーションは207
−210の機能ユニットと同様に制御される。
、依存性が評価され、他の命令の先行実行に依存している命令は適切に遅延され
る。プライオリティ発行ネットワーク6は、各命令の実行を適切な機能ユニット
207−210に割り当てる。機能ユニットは、1つまたは複数の整数演算ユニ
ット208から構成され、ブランチユニット207、浮動小数点演算ユニット2
09、ロード/ストアユニット210を含む。いずれかの種類の複数の機能ユニ
ットが利用可能である場合、命令スケジューラ204とプライオリティ発行ネッ
トワーク206は、利用可能な機能ユニットへの命令の割り当てを管理する。命
令スケジューラ5はプライオリティレコードを持ち、このプライオリティレコー
ドは1つまたは複数のストリーム向けに記録されているプライオリティを持つフ
ァイルあるいはレジスタセットである。したがって、ストリームよりも少ない数
のプライオリティが存在し、アクティブプライオリティを持っていないストリー
ムはデフォルトレベルで処理されることがある。または、各ストリームが特定の
プライオリティを持つこともある。
許すかを決めるメカニズムが存在しなければならない。ストリームの間でのアク
セスを管理する方法はどの方法でも広い意味でプライオリティスキームと見なす
ことができる。これまでは、降順に静的プライオリティをストリームに割り当て
るのが一般的であった。しかし、このスキームでは、1つのストリームは常に一
番高いプライオリティを持ち、その他のストリームは降順により低いプライオリ
ティを持つ。以下の表1は、A、B、C、Dという4つのストリームがある静的
なケースの場合のプライオリティテーブルである。0は最高位のプライオリティ
を示し、以下1、2と低くなり、3が最下位のプライオリティを示している。
最高位のプライオリティを持ち、ストリームAに待機命令が存在しなくなるまで
、待機命令はストリームAから機能ユニットに発行される、その時点で、ストリ
ームAよりも1つ低いプライオリティを持つストリームBに機能ユニットへのア
クセス権が保証され、ストリームBを待っている命令が存在しなくなるまで、命
令がストリームBから発行される。当然、アクセス権がストリームBにシフトし
たときにストリームBに命令が存在しないということもありうる。その場合、ア
クセス権はストリームCに移る(以下同様)。しかし、これには各ストリームの
プライオリティが一定、すなわち静的であるという制約がある。
リティを持つストリームに割り当てるスレッドの不足という問題が発生すること
が分かっている。これに対し、機能リソースへのアクセスの公平性を促進するた
めに、現在プライオリティが定期的にストリームの間でシフトするラウンドロビ
ン方式が提案され、実装されている。このラウンドロビン方式を以下の表2に示
した。
ティはT2タイムまで適用される。T2タイム時に、その行のプライオリティが
適用される(以下同様)。ラウンドロビン方式では、プライオリティは表に示す
ように一定の間隔で回転し、少なくとも理論的には各ストリームは機能リソース
への同一のアクセス権が与えられる。
つ静的スキームやラウンドロビン方式には多くのまた重大な欠陥があることを発
見した。これらの技術は、変化する条件、リアルタイム要求、そして一つ、二つ
の支配的なクラスのリソースに対するニーズを持つ様々なスレッドの構造的性質
に対応していない。したがって、発明者はプライオリティスケジューリングと命
令の発行を劇的に改善する機構および方法を提供した。
ライオリティだけの問題ではないことが明らかになった。問題を次のように記述
することができる。 1.どのストリームに機能リソースへのアクセス権が与えられるべきか? 2.どれだけのアクセス権が与えられるべきか? 3.次にどのストリームがアクセス権を取得するのか? 4.同点の場合はどうなるのか? 現在の、そして、従来の方式では、これらの問題にはほとんど対応していない
。本発明の様々な実施形態では、これらの問題(問題点)のすべてに、様々な方
法でまた様々な目的のために対応している。
して1つの数が使われ、その数が、機能ユニット、メモリ、キャッシュのような
リソース(しかし、これらに限られるものではない)へのアクセス権を割り当て
るためにスケジューラによって使われている。他の形態では、数のリストがスト
リームへの複数のプライオリティを保存しており、各数が、整数演算ユニット、
浮動小数点演算ユニットのセットなどのリソースクラスへの関連ストリームのプ
ライオリティ要求を表している。あるいは、他の形態では、あるストリームには
、現在の最高位のプライオリティストリームとしてのアクセス権が与えられるが
、そのアクセスは1つの機能ユニットのみに制限されている。
ストリームの要求を保存している。たとえば、複数の整数演算ユニットや浮動小
数点演算ユニットを持つプロセッサでは、プライオリティ数は、各整数演算ユニ
ットおよび各浮動小数点演算ユニットとの関連で使われる。より厳しいタイミン
グ要求を満たしたり、より完全なリソース利用を保証するためにリソースに対す
る精緻なコントロールが必要な場合、より複雑なプライオリティ表現が使われる
。
に、ラウンドロビン方式と静的スキームがなお交互に使われている。しかし、現
在のものよりもより高度なプライオリティメカニズムが実装されている。たとえ
ば、本発明の1実施形態では、静的プライオリティは表1に示すように4つのス
トリームの間に割り当てられる。しかし、命令を発行するメカニズムが、ストリ
ームからの命令へのアクセスを1つまたは特定の組のリソースクラスに制限する
ことがある。このリソースクラスの選択性は、特定の条件の元で許される制限付
きクラス以外のリソースへのアクセス権を伴うただ1つのストリーム、たとえば
、複数の、またはすべてのストリームにとっての最高位のプライオリティを持つ
ストリームのプライオリティの特徴である。
、アクセスにおける排他性やある程度の重なりを含め、機能リソースへの異なる
アクセス権を持つことがある。このユニークな方式では、同点決着が必要な衝突
が発生するので、チップでの最近の処理履歴(だれが最後にアクセスしたか)や
他の基準では、条件の指示に従って、同点の場合のアクセス権を決定するために
同点決着ユニットが提供される。たとえば、同点の場合に、同点のストリームの
間でアクセス権を平等に分けることも可能である。
に対して)割り込みが優先される。すなわち、割り込みとは、プロセッサに現在
実行していることを止めさせ、そのアクティビティを割り込みサービスルーチン
に向けさせることである。本発明の実施形態では、割り込みサービスルーチンが
少数のサイクル内にサービスを受けなければならない場合、高いプライオリティ
が与えられ、すべての必要なリソースが利用できるようになる。しかし、通常の
ストリームが、ある割り込みよりもより厳しいタイミング要求を持っていること
もあり、その場合には、割り込みよりも高いプライオリティが割り当てられる。
他に、本発明の特定の実施形態では、マルチストリーミングプロセッサにおける
プライオリティの動的決定と管理という新しい強力なコンセプトが提供される。
ライオリティが解釈されるコンテキストを、プライオリティコントロールユニッ
ト9が決める。たとえば、最高位のプライオリティを持っているストリームは、
低いプライオリティを持っているストリームよりも優先される。あるいは、スケ
ジューラがすべてのストリームに最低限のアクセス権を保証するが、ストリーム
のプライオリティに比例してアクセス権を高める。先に説明したように、各スト
リームに順に割り当てられるプロセッササイクル数がストリームのプライオリテ
ィに従って変動するラウンドロビンやランダムスケジューリングが使われる。す
なわち、従来の制限付きラウンドロビン方式では、ストリームが順に選択され、
選択された各ストリームには、同じプライオリティをもち、同じ量のリソースが
割り当てられる。しかし、本発明の実施形態では、ストリームはラウンドロビン
方式でサービスを受けるが、各ストリームには現在のプライオリティに従ってリ
ソースが割り当てられる。
リームには、そのストリームの現在のプライオリティによって決まるサイクル数
の間、全てのリソースに対するアクセス権が与えられる。あるいは、アクセスさ
れる各ストリームには、現在のプライオリティに従って機能ユニットへのアクセ
ス権が割り当てられる。たとえば、静的スキームでは、あるストリームはある機
能ユニットを使うことが許されるが、そのプライオリティが変わると、より多く
のあるいはより少ない機能ユニットへのアクセスが許される。ここで重要なこと
は、発行の順番とアクセス権がプライオリティコントローラ9によって動的に変
わることである。
トリームが希望する平均利用率を表わす割合として解釈されることもある。特に
高度な実施形態では、プロセッサが、先に説明した複数のスケジューリング方法
の組を持っていることもあり、その場合、プライオリティコントロールユニット
9は動的に複数の方法の中から選択したり、複数の方法を様々な組合わせで使う
。他の形態では、スケジューリング方法と個別プライオリティがソフトウェアの
制御下で選択されることもある。ソフトウェアが方法を指定しない場合、プライ
オリティコントロール9はラウンドロビンや静的スケジューリングのような、旧
来の方法にデフォルト設定される。
9は各リソースクラスまたは各リソースを個別に管理する。リソースやリソース
クラスに対する要求が衝突する場合、各ストリームのプライオリティリストのエ
ントリを比較して、先に説明したスケジューリング方法のいずれか単独、あるい
は複数の組合に従って衝突が解決される。
場合、命令スケジューラ5は、先に説明した同点決着メカニズムを持つ。同点決
着メカニズムは、動的または静的な方法を使って衝突を解決することができる。
たとえば、ラウンドロビンスケジューリングが使われている場合、同じプライオ
リティを持っている各ストリームは、同一の割合のリソース割り当てを受け取る
。あるいは、ストリームの現在の命令がどのリソースを要求しているか、あるい
は様々なリソースの利用率を基にして、あるいはランダムスケジューリングによ
り衝突が解決されることもある。
でも変えることができる。このような変更は、たとえば各メモリサイクルに対し
てはプロセッササイクルの一部と同じ頻度で、、あるいは長いレイテンシーメモ
リ命令が発行されたときにはより少ない頻度で、実行される。プライオリティの
変更は、ソフトウェアの制御の下で、あるいはプロセッサやその他のシステムコ
ンポーネント内の条件に応じて行われる。ある形態では、プライオリティコント
ロールユニット9が、機能ユニット、メモリ、キャッシュへのアクセス頻度のよ
うな、1つまたは複数の処理リソースの利用率を監視する。その場合、プライオ
リティは変化し、ストリームのスループットを最適化したり、1つまたは複数の
リソースの利用率を最大化するように、あるいはスループットと利用率の間のバ
ランスを取る。メモリが監視されているとき、プライオリティは、アドレスの範
囲またはアクセスされるメモリセグメントを基にして変わることもある。メモリ
201がセグメント化されている実施形態の場合、メモリサイクルはプロセッサ
サイクルよりも遅いので、複数のセグメントが同時にアクセスされる。その際、
命令スケジューラ5は複数のセグメントへのアクセスをインタリーブし、メモリ
利用率を最大化する。複数のリソースを監視しているような場合、プライオリテ
ィは1つのリソースの利用率を最適化するように、あるいは複数リソースの利用
のバランスを取るように設定され、このバランスが動的に変更されることもある
。
リソースが動的に再構成され、特定の命令でデータパスがより効率的になるよう
にデータパスが変更されるという実施形態も考えられる。たとえば、2つの数を
掛けるあるいは足すために、整数演算ユニットが命令と命令の間で再構成される
こともありうる。そのような実施形態では、命令スケジューラ5は予約ステーシ
ョン及び/又はマルチスレッドフェッチユニット203の命令キューの命令を調
査し、最適機能ユニット構成を決定し、プライオリティ発行ネットワーク206
が必要な再構成を実施する。
当てを許さない固定したスケジューリングメカニズムを使ってきた。ストリーム
の動的優先順位付けにより、処理リソースの動的構成が可能になり、いずれの時
点でも競合するストリームの組合わせのニーズに応えられるようになる。たとえ
ば、厳しいタイミング要求を持っているリアルタイムスレッドには高いプライオ
リティが与えられ、その要求が満たされることが保証される。これに対し、要求
のあまり厳しくないストリームにはバックグランドでサービスが提供される。さ
らに、プライオリティコントロールユニットは命令キャッシュの内容のような、
処理の様々な側面を監視することができるので、実行時にプライオリティを変更
し、可変速度で到着する入力データストリームへのサービス提供のような処理目
標を達成することができる。あるいは、どのスレッドも厳しい要求を持っていな
い場合、すべての利用可能なリソースがビジーになり、それによってプロセッサ
スループット全体を最適化するようにスケジューリングが再構成される。リソー
スのより効率的な利用を可能にすることによって、従来技術ではなく現在の優先
順位付きスケジューラを使って、小型で安価なプロセッサを設計できるようにな
る。
リームを再有効化するまで、ユニークなプライオリティ数をストリームに割り当
て発行順にそのストリームを無効にする。たとえば、そのような実施形態では、
4つのストリームを持っているマルチストリーミングプロセッサは、5つのプラ
イオリティ0−4を持ち、ゼロのプライオリティがあるストリームに設定され、
ゼロはシステムによりストリームの無効化と解釈される。その場合、プライオリ
ティ1が一番低いプライオリティであり、次が2であり、4が最も高いプライオ
リティである。
てが、データや命令の利用可能性、オフチップからの入力、スレッドの特定の組
み合わせ他を含む様々な基準を基にして行えることが望まれている。ある実施形
態では、プロセッサ割り込みを使ってストリームの有効化/無効化が行われる。
その場合、無効にされたストリームは、割り込みによって目覚めさせられる。こ
の場合プライオリティコントローラは、プライオリティファイルを変更して、無
効にされている(眠っている)ストリームにゼロ以外のプライオリティを割り当
てる。
とができる。この方式では、閾値が設定される。ストリームが発行可能な命令を
フェッチする時、プライオリティはその閾値に従って割り当てられる。この方式
での粒度を、必要に応じて粗くすることも細かくすることもできる。
リティを管理し、必要な基準を命令スケジューラ5のプライオリティファイルに
入れるものとして記述されていた。プライオリティやアクセスのための基準テー
ブルが他の場所にあり、プライオリティコントロールを、技術的知識を持ってい
る有能なエンジニアのスキルの範囲内で、様々な方法で実装できることは、有能
な技術者には明白である。したがって、ここで示された特定のアーキテクチャは
、一例にすぎない。
や基準がプライオリティコントローラ9の機能として開示されている。プライオ
リティコントローラ9は、様々な方法で実装でき、ハードウェアやソフトウェア
技術の併用によってその機能を実行できる。ある実施形態では、たとえば、コン
トローラ9がカウンタによって指示されるレジスタにアクセスし、整数演算ユニ
ットではなくFPユニットの使用のような最近の処理履歴に関する統計情報を確
認し、その結果としてプライオリティ権を管理することも可能である。またある
実施形態では、プライオリティコントローラが、プライオリティやアクセス権を
決めるのに1つまたは複数のコードルーチン(アルゴリズム)を実行することも
可能である。他の実施形態では、プライオリティコントローラがある程度プログ
ラム可能であり、オフチップから入力を受け付け、プライオリティやアクセス権
を決定し、設定することもできる。
なる。たとえば、現在のネットワークルータやスイッチは、複数のストリームま
たは入ってくるデータのパケットフローを処理し、それをネットワーク上の様々
な宛先にディスパッチする必要がある。非同期転送モードのようなある種のネッ
トワークプロトコルはデータフローに対するサービスを保証し、ネットワークデ
バイスを通したデータのタイムリーな転送を保証する。本発明を使えば、たとえ
ばサービスの品質をネゴシエートしたり、データがデバイスを通るパスを再構成
するスレッドではなく、ネットワークデータを扱うスレッドにより高いプライオ
リティを与えることにより上記デバイスにおける処理を最適化できる。各データ
フローのサービス品質が異なるとき、異なるプライオリティを持つストリームを
使ってサービス保証を満たすことができる。
の機能を高度化することができる。通常、ワークステーションは多種多様な競合
するプログラムを処理することを求められる汎用コンピュータである。たとえば
、ワークステーションは、MPEGビデオの再生、プリンタへのデータの送信、
ユーザからのタイピングやその他の入力への応答、Webブラウザやワードプロ
セッサプログラムのようなアプリケーションプログラムを同時に実行する必要が
ある。ワークステーション用のプロセッサに本発明を使えば、各ストリームの様
々な要求に対する応答を改善することができる。たとえば、MPEGビデオスト
リームは、フレームをデコードするのに必要なリソースやビデオメモリに対する
高いプライオリティアクセスを与え、これに対し、プリンタ向けの割り込みサー
ビスルーチンは、最大印刷速度で現在のプリンタを駆動するのに十分なプライオ
リティを与えられる。アプリケーションプログラムには、ビデオメモリに次ぐ第
2レベルのプライオリティが与えられる。
入力に対してリアルタイムに応答しなければならないことが分かっている。その
ような装置用のオペレーティングシステムをスレッドに分け、適切にプライオリ
ティを割り当てることによって、複数のタイミング要求セットを同時に満たすこ
とができ、ロボット装置は現在使われているものほどの能力を必要とせず、従っ
て安価なプロセッサでより効率的に動作するようになる。
サ(DSP)と呼ばれる特殊プロセッサに実装される。このDSPとは、デジタ
ルプロトコルでデータを表し、データを事前に定義されている方法で処理するこ
とにより、通常アナログ方式でストリーミングされる、「ナチュラルデータ」と
呼ばれているものを処理するための特殊プロセッサである。そのようなプロセッ
サは電話やその他のオーディオストリームを利用するシステムでのオーディオ処
理に利用されている。この技術をビデオの世界にも拡張することが可能になる。
マルチスレッド、マルチストリーム、そして本発明に従ったプライオリティコン
トロール用のシステムに、多くの可能性が存在している。
あったとしても少ししか制限がないことを強調しておく。複数のスレッドが処理
できれば、アクセスの難しい装置用の組み込みコントローラのような、単一の機
能ユニットを持つ小さなプロセッサの機能を強化することができる。応用は、A
SICとして実装されている特殊マイクロプロセッサや、基本的にその他すべて
のデジタルプロセッサに広げることができる。ここで述べたのは、多数の例の一
部にすぎない。
加えることができることは、有能な技術者には明白である。たとえば、ハードウ
ェア機能がプロセッサで提供され、基本的に同じ目的や機能を実施するような方
法が多数存在する。同様に、ソフトウェアやファームウェアを異なるプログラマ
または同じプログラマが構造化し、なお同じ目的または機能を実行できるような
方法が多数存在する。さらに、本発明の実施形態に従うプロセッサは、ストリー
ムリソースの数、機能ユニットの数などで大きく異なるアーキテクチャを持つこ
ともありうる。そうしたバリエーションは本発明の展望の範囲内に入ると見なさ
れなければならず、発明は上記の請求項によってのみ制限される。
を割り当てる優先順位付き命令スケジューラの役割を示す図である。
むマルチストリーミングプロセッサのシステムアーキテクチャを示しているブロ
ック図である。
Claims (59)
- 【請求項1】 1つまたは複数の命令スレッドをストリーミングするための
複数のストリームと、ストリームからの命令を処理する機能リソースセットと、
機能リソースへのストリームのアクセスを管理する命令スケジューラと、ストリ
ームと結び付けられているプライオリティコードのプライオリティレコード、と
から構成されるマルチストリーミングプロセッサであって、いかなる時点でも命
令スケジューラは、プライオリティレコードに従って機能リソースへのストリー
ムのアクセスを管理する、マルチストリーミングプロセッサ。 - 【請求項2】 プライオリティレコードが少なくとも1つのストリームと結
び付けられている1つまたは複数のプライオリティコードから構成され、プライ
オリティレコードが静的で一定であるような、請求項1に記載のマルチストリー
ミングプロセッサ。 - 【請求項3】 プライオリティレコードが一貫した反復的なやり方で変わる
、請求項1に記載のマルチストリーミングプロセッサ。 - 【請求項4】 プライオリティレコードが1つまたは複数のストリームと結
び付けられている1つまたは複数のプライオリティコードから構成され、さらに
プライオリティコントローラが処理中に1つまたは複数のプライオリティコード
を動的に変更するような、プライオリティレコードと結合されたプライオリティ
コントローラから構成される、請求項1に記載のマルチストリーミングプロセッ
サ。 - 【請求項5】 プライオリティコードの変更が少なくとも一部はオンチップ
処理統計情報での変更によって決まるやり方で実施される、請求項4に記載のマ
ルチストリーミングプロセッサ。 - 【請求項6】 プライオリティコードの決定が少なくともその一部はオフチ
ップで実施され、プライオリティコントローラに伝えられる、請求項4に記載の
マルチストリーミングプロセッサ。 - 【請求項7】 特定のプライオリティコードがストリームを効果的に無効化
し、ストリームの機能リソースへのアクセスを阻止する、請求項4に記載のマル
チストリーミングプロセッサ。 - 【請求項8】 プライオリティコントローラがプライオリティレコードを変
更してオンチップイベント、処理統計情報、または外部入力に対する応答でスト
リームを有効化/無効化する、請求項7に記載のマルチストリーミングプロセッ
サ。 - 【請求項9】 プライオリティコントローラがプライオリティレコードを変
更してプロセッサ割り込みに対する応答でストリームを有効化/無効化する、請
求項7に記載のマルチストリーミングプロセッサ。 - 【請求項10】 プライオリティコントローラがストリーム命令負荷の現在
の状態に従ってプライオリティコードを変更する、請求項5に記載のマルチスト
リーミングプロセッサ。 - 【請求項11】 同点決着機能、すなわちプライオリティレコードで同一の
プライオリティを持つ複数のストリームに対して機能リソースへのアクセスを解
決する同点決着機能から更に構成される、請求項4に記載のマルチストリーミン
グプロセッサ。 - 【請求項12】 複数の命令スレッドをストリーミングする複数のストリー
ムと、ストリームリソースからの命令を処理する機能リソースセットと、機能リ
ソースへのストリームのアクセスを管理する命令スケジューラと、ストリームと
結び付けられているプライオリティコードのプライオリティレコードと、動的に
プライオリティを決定し、処理中にプライオリティレコードを変更するプライオ
リティコントローラとから構成される、マルチストリーミングプロセッサ。 - 【請求項13】 プライオリティレコードの変更が少なくとも一部はオンチ
ップ処理統計情報によって決められるやり方で実施される、請求項12に記載の
マルチストリーミングプロセッサ。 - 【請求項14】 プライオリティレコードの変更が少なくとも一部はオフチ
ップで実施され、それがプライオリティコントローラに伝えられる、請求項12
に記載のマルチストリーミングプロセッサ。 - 【請求項15】 特定のプライオリティコードが効果的にストリームを無効
化し、そのストリームの機能リソースへのアクセスを阻止する、請求項12に記
載のマルチストリーミングプロセッサ。 - 【請求項16】 プライオリティコントローラがプライオリティレコードを
変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
トリームを有効化/無効化する、請求項15に記載のマルチストリーミングプロ
セッサ。 - 【請求項17】 プライオリティコントローラがプライオリティレコードを
変更し、プロセッサ割り込みに従ってストリームを有効化/無効化する、請求項
15に記載のマルチストリーミングプロセッサ。 - 【請求項18】 プライオリティコントローラがストリーム命令負荷の現在
の状態に従ってプライオリティコードを変更する、請求項13に記載のマルチス
トリーミングプロセッサ。 - 【請求項19】 同点決着機能、すなわちプライオリティレコードで同一の
プライオリティを持っている複数のストリームに対して機能リソースへのアクセ
スを解決する同点決着機能から構成される、請求項12に記載のマルチストリー
ミングプロセッサ。 - 【請求項20】 (a)プライオリティコードを1つまたは複数のストリー
ムに結び付け、コードをプライオリティレコードに保存するステップと、 (b)処理中に命令スケジューラによってプライオリティレコードのプライオリ
ティコードをチェックするステップと、 (c)主にプライオリティコードを基にしてストリームの機能リソースへのアク
セスを管理するステップとから構成される、マルチストリーミングプロセッサで
のプライオリティによってストリームからの命令を処理する方法。 - 【請求項21】 ステップ(a)において、プライオリティレコードのプラ
イオリティコードが静的であり一定である、請求項20に記載の方法。 - 【請求項22】 ステップ(a)において、プライオリティレコードのプラ
イオリティコードが一貫した反復的なやり方で変わる、請求項20に記載の方法
。 - 【請求項23】 プライオリティレコードに結合されているプライオリティ
コントローラによる、処理中のプライオリティレコードのプライオリティコード
を動的に変更するステップから更に構成される、請求項20に記載の方法。 - 【請求項24】 プライオリティコードの変更が少なくとも一部はオンチッ
プ処理統計情報の変更によって決まるやり方で実施される、請求項20に記載の
方法。 - 【請求項25】 プライオリティコードの決定が少なくとも一部はオフチッ
プで実行され、それがプライオリティコントローラに伝えられる、請求項23に
記載の方法。 - 【請求項26】 特定のプライオリティコードが効果的にストリームを無効
化し、そのストリームが機能リソースにアクセスするのを阻止する、請求項20
に記載の方法。 - 【請求項27】 プライオリティコントローラがプライオリティレコードを
変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
トリームを有効化/無効化する、請求項26に記載の方法。 - 【請求項28】 プライオリティコントローラがプライオリティレコードを
変更し、プロセッサ割り込みに対する応答でストリームを有効化/無効化する、
請求項26に記載の方法。 - 【請求項29】 プライオリティコントローラがストリーム命令負荷の現在
の状態に従ってプライオリティコードを変更する、請求項23に記載の方法。 - 【請求項30】 同点決着機能、すなわちプライオリティレコードで同一の
プライオリティを持つ複数のストリームに対して機能リソースへのアクセスを解
決する同点決着機能から更に構成される、請求項20に記載の方法。 - 【請求項31】 (a)プライオリティコードを1つまたは複数のストリー
ムに結び付け、コードをプライオリティコードに保存するステップと、 (b)処理中に命令スケジューラによってプライオリティレコードのプライオリ
ティコードをチェックするステップと、 (c)主にプライオリティコードを基にしてストリームの機能リソースへのアク
セスを管理するステップと、 (d)処理中にプライオリティコントローラによってプライオリティレコードの
プライオリティコードを動的に変更するステップとから構成される、マルチスト
リーミングプロセッサでのプライオリティによってストリームからの命令を処理
する方法。 - 【請求項32】 ステップ(d)において、プライオリティコードの変更が
少なくとも一部はオンチップ処理統計情報の変化によって決まるやり方で実行さ
れる、請求項31に記載の方法。 - 【請求項33】 ステップ(d)において、プライオリティコードの決定が
少なくとも一部はオフチップで実行され、それがプライオリティコントローラに
伝えられる、請求項31に記載の方法。 - 【請求項34】 特定のプライオリティコードが効果的にストリームを無効
化し、そのストリームの機能リソースへのアクセスを阻止する、請求項31に記
載の方法。 - 【請求項35】 プライオリティコントローラがプライオリティレコードを
変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
トリームを有効化/無効化する、請求項34に記載の方法。 - 【請求項36】 プライオリティコントローラがプライオリティレコードを
変更してプロセッサ割り込みに対する応答でストリームを有効化/無効化する、
請求項34に記載の方法。 - 【請求項37】プライオリティコントローラがストリーム命令負荷の現在の
状態に従ってプライオリティコードを変更する、請求項31に記載の方法。 - 【請求項38】 同点決着機能、すなわちプライオリティレコードで同一の
プライオリティを持つ複数のストリームに対して機能リソースへのアクセスを解
決する同点決着機能から更に構成される、請求項31に記載の方法。 - 【請求項39】 アプリケーションプログラムとデータを保存するためのメ
モリと、メモリと結合され、複数の命令スレッドを処理する複数のストリーム、
ストリームからの命令を処理する機能リソースセット、ストリームの機能リソー
スへのアクセスを管理する命令スケジューラ、そしてストリームと結び付けられ
ているプライオリティコードのプライオリティレコードを持つマルチストリーミ
ングプロセッサとから構成されるコンピュータであって、 いずれの時点でも、命令スケジューラはプライオリティレコードに従ってストリ
ームの機能リソースに対するアクセスを管理する、コンピュータ。 - 【請求項40】 プライオリティレコードが少なくとも1つのストリームと
結び付けられている1つまたは複数のプライオリティコードから構成され、プラ
イオリティレコードが静的であり一定である、請求項39に記載のコンピュータ
。 - 【請求項41】 プライオリティレコードが一貫した反復的なやり方で変わ
る、請求項39に記載のコンピュータ。 - 【請求項42】 プライオリティレコードが1つまたは複数のストリームと
結び付けられている1つまたは複数のプライオリティコードから構成され、さら
にプライオリティレコードに結合されているプライオリティコントローラからな
り、プライオリティコントローラが処理中に1つまたは複数のプライオリティコ
ードを動的に変更するような、プライオリティレコードと結合されたプライオリ
ティコントローラから構成される、請求項39に記載のコンピュータ。 - 【請求項43】 プライオリティコードの変更が少なくとも一部はオンチッ
プ処理統計情報での変更によって決まるやり方で実施される、請求項42に記載
のコンピュータ。 - 【請求項44】 プライオリティコードの決定が少なくともその一部はオフ
チップで実施され、それがプライオリティコントローラに伝えられる、請求項4
2に記載のコンピュータ。 - 【請求項45】 特定のプライオリティコードがストリームを効果的に無効
化し、ストリームの機能リソースへのアクセスを阻止する、請求項42に記載の
コンピュータ。 - 【請求項46】 プライオリティコントローラがプライオリティレコードを
変更してオンチップイベント、処理統計情報、または外部入力に対する応答でス
トリームを有効化/無効化する、請求項45に記載のコンピュータ。 - 【請求項47】 プライオリティコントローラがプライオリティレコードを
変更し、プロセッサ割り込みに対する応答でストリームを有効化/無効化する、
請求項45に記載のコンピュータ。 - 【請求項48】 プライオリティコントローラがストリーム命令負荷の現在
の状態に従ってプライオリティコードを変更する、請求項42に記載のコンピュ
ータ。 - 【請求項49】 同点決着機能、すなわちプライオリティレコードで同一の
プライオリティを持っている複数のストリームに対して機能リソースへのアクセ
スを解決する同点決着機能から更に構成される、請求項38に記載のコンピュー
タ。 - 【請求項50】 アプリケーションプログラムとデータを保存するためのメ
モリと、メモリと結合され、複数の命令スレッドをストリーミングする複数のス
トリーム、ストリームリソースからの命令を処理する機能リソースセット、スト
リームの機能リソースへのアクセスを管理する命令スケジューラ、そしてストリ
ームと結び付けられているプライオリティコードのプライオリティレコードを持
つマルチストリーミングプロセッサとから構成されるコンピュータであって、 プライオリティコントローラは処理中に動的にプライオリティコードを決定し、
それに従いプライオリティレコードを変更する、コンピュータ。 - 【請求項51】 プライオリティコードの変更が少なくとも一部はオンチッ
プ処理統計情報によって決まるやり方で実施される、請求項50に記載のコンピ
ュータ。 - 【請求項52】 プライオリティレコードの変更が少なくともその一部はオ
フチップで実施され、それがプライオリティコントローラに伝えられる、請求項
50に記載のコンピュータ。 - 【請求項53】 特定のプライオリティコードがストリームを効果的に無効
化し、ストリームの機能リソースへのアクセスを阻止する、請求項50に記載の
コンピュータ。 - 【請求項54】 プライオリティコントローラがプライオリティレコードを
変更し、オンチップイベント、処理統計情報、または外部入力に対する応答でス
トリームを有効化/無効化する、請求項53に記載のコンピュータ。 - 【請求項55】 プライオリティコントローラがプライオリティレコードを
変更してプロセッサ割り込みに対する応答でストリームを有効化/無効化する、
請求項53に記載のコンピュータ。 - 【請求項56】 プライオリティコントローラがストリーム命令負荷の現在
の状態に従ってプライオリティコードを変更する、請求項50に記載のコンピュ
ータ。 - 【請求項57】 同点決着機能、すなわちプライオリティレコードで同一の
プライオリティを持っている複数のストリームに対して機能リソースへのアクセ
スを解決する同点決着機能から更に構成される、請求項50に記載のコンピュー
タ。 - 【請求項58】 パケットデータネットワークに接続するための少なくとも
1つのポートと、アプリケーションコードを保存するためのメモリと、 メモリと結合され、複数の命令スレッドをストリーミングするための複数のスト
リーム、ストリームリソースからの命令を処理する機能リソースセット、 ストリームの機能リソースへのアクセスを管理する命令スケジューラ、そしてス
トリームと結び付けられているプライオリティコードのプライオリティレコード
を持つマルチストリーミングプロセッサ、とから構成される、パケットデータネ
ットワーク用のパケットデータルータであって、 プライオリティコントローラは、処理中に動的にプライオリティコードを決定し
、それに従いプライオリティレコードを変更する、パケットデータネットワーク
用のパケットデータルータ。 - 【請求項59】 複数のシグナルを別個のスレッドとしてストリーミングす
る複数のストリームと、シグナルを処理する機能リソースセットと、シグナルの
機能リソースへのアクセスを管理するスケジューラと、ストリームと結び付けら
れているプライオリティコードのプライオリティレコードと、から構成されるデ
ジタルシグナルプロセッサであって、プライオリティコントローラは処理中に動
的にプライオリティコードを決定し、それに従いプライオリティコードを変更す
る、デジタルシグナルプロセッサ。
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)
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)
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)
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 |
-
1998
- 1998-12-16 US US09/216,017 patent/US6477562B2/en not_active Expired - Lifetime
-
1999
- 1999-12-13 EP EP99966217A patent/EP1141821A4/en not_active Withdrawn
- 1999-12-13 WO PCT/US1999/029645 patent/WO2000036487A2/en not_active Application Discontinuation
- 1999-12-13 JP JP2000588668A patent/JP3877527B2/ja not_active Expired - Fee Related
- 1999-12-13 AU AU21816/00A patent/AU2181600A/en not_active Abandoned
- 1999-12-13 CA CA002355250A patent/CA2355250A1/en not_active Abandoned
Cited By (3)
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 |