JP2004152305A - ハイパープロセッサ - Google Patents
ハイパープロセッサ Download PDFInfo
- Publication number
- JP2004152305A JP2004152305A JP2003370500A JP2003370500A JP2004152305A JP 2004152305 A JP2004152305 A JP 2004152305A JP 2003370500 A JP2003370500 A JP 2003370500A JP 2003370500 A JP2003370500 A JP 2003370500A JP 2004152305 A JP2004152305 A JP 2004152305A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- special hardware
- processor
- processor cores
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 5
- 235000008694 Humulus lupulus Nutrition 0.000 claims 1
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000013459 approach Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/30098—Register arrangements
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
【課題】 高い処理条件及び通信条件をサポートする改良した処理アーキテクチャを提供する。
【解決手段】 ハイパープロセッサは、複数個のプロセッサコアにより実行されるタスクを制御する制御プロセッサを包含しており、各プロセッサコアは複数個の実行ユニット又は特別ハードウエアユニットを包含することが可能である。該制御プロセッサは、コンパイル期間中に発生され且つ夫々のタスクに対してのレジスタファイル、プログラムカウンタ、ステータスビットを包含するハードウエアコンテキストを包含しているタスクに対する制御スレッドに従ってタスクをスケジュールする。該タスクは並列、逐次的、順番外又は投機的実行のために、プロセッサコア又は特別ハードウエアユニットへディスパッチされる。ユニバーサルレジスタファイルは該タスクにより処理されるデータを包含しており、且つ相互接続体が少なくとも該プロセッサコア又は特別ハードウエアユニットを互いに且つユニバーサルレジスタファイルへ結合させ、各ノードがその他のノードと通信することを可能とする。
【選択図】 図1
【解決手段】 ハイパープロセッサは、複数個のプロセッサコアにより実行されるタスクを制御する制御プロセッサを包含しており、各プロセッサコアは複数個の実行ユニット又は特別ハードウエアユニットを包含することが可能である。該制御プロセッサは、コンパイル期間中に発生され且つ夫々のタスクに対してのレジスタファイル、プログラムカウンタ、ステータスビットを包含するハードウエアコンテキストを包含しているタスクに対する制御スレッドに従ってタスクをスケジュールする。該タスクは並列、逐次的、順番外又は投機的実行のために、プロセッサコア又は特別ハードウエアユニットへディスパッチされる。ユニバーサルレジスタファイルは該タスクにより処理されるデータを包含しており、且つ相互接続体が少なくとも該プロセッサコア又は特別ハードウエアユニットを互いに且つユニバーサルレジスタファイルへ結合させ、各ノードがその他のノードと通信することを可能とする。
【選択図】 図1
Description
本発明は、大略、プロセッサデザインに関するものであって、更に詳細には、ハイレベルマルチスレッド型並列性を有する高性能プロセッサに関するものである。本発明は、埋込型システム及び汎用計算器に適用することが可能である。
埋込型システム及び汎用計算器の両方において、計算器パワーに対する高い要求が存在している。この要求は、システムの複雑性が増加し且つデジタルソリューションでより多くの問題に対処する傾向と共に継続して増加している。
このような要求を満足させる1つのソリューションは、例えば、超長命令語(VLIW)プロセッサ、単一命令マルチデータ(SIMD)プロセッサ、スーパースカラープロセッサ、及びそれらの変形物における命令レベル並列性(ILP)を使用することである。これらのアプローチは、逐次的に書かれたプログラムにおいて使用可能な並列性により制限される。一般的に、命令レベル並列性は、サイクル当たり約6個の命令のレベルを超えるものでないことが判明している。
処理要求を満足させるための別のソリューションは、同種又は異種並列プロセッサに対して並列プログラムを書くことである。長年の間実施されているが、このアプローチは並列プログラムの複雑性に起因しその開発が著しくコスト高なものであるので広く受け入れられているものではない。高い開発コストはこのアプローチを経済的に使用することが可能なアプリケーション範囲を著しく制限する。更に、異種プロセッサの使用は、各プロセッサ形態に対するプログラムの完全な書き直しを必要とし、且つこのタイプのアーキテクチャは、典型的に、プロセッサとメモリとの間の帯域幅制限により典型的に制限されている。
高性能システムに対する更に別のソリューションは、計算の幾つかのステージをパイプライン化することであり、これは効率的なアプローチであるが、柔軟性を欠如しており、より重要な点であるが、スケーラビリティを欠如している。
別に、実時間オペレーティングシステム(RTOS)を使用する埋込型システムに対する処理のスケジューリングは、RTOSにより導入されるオーバーヘッド及びRTOSによる非効率的なスケジューリングの両方に起因して、アプリケーションをサポートするのに必要なハードウエアのかなりの過剰なエンジニアリングを必要とすることが判明している。
従って、高い処理及び通信条件をサポートする改良した処理アーキテクチャに対する必要性が存在している。更に、該アーキテクチャが多様なシステム条件を満足するために組立て且つ拡縮させることが可能なモジュール型コンポーネントのプラットフォームを提供することが望ましい。本発明のソリューション即ち解決手段は、逐次的に書かれたプログラムをタスクレベル並列性(TLP)に対して開発された技術から利点が得られるような態様で稼動することに関与するものであり、各タスクは、命令レベル並列性において開発された経験から利点を享受し、従って並列プログラムを書くことの必要性なしに粗粒度及び細粒度並列性の両方から利点を享受する。更に、本発明は、タスク及び資源のスケジューリングのためにRTOSスケジューラーを使用することの必要性を取除いており、且つ並列及びパイプライン型実行を動的に結合させることにより柔軟且つスケーラブルな態様で異種並列処理を編成させることが可能である。
上述した従来技術の欠点に対処するために、本発明の主要な目的とするところは、汎用コンピュータ及び埋込型システムにおいて使用するためのハイパープロセッサを提供することであり、該ハイパープロセッサは、各々が多重実行ユニット又は特別ハードウエアユニットを包含することが可能な複数個のプロセッサコアにより実行されるタスクを制御する制御プロセッサと、ユニバーサルレジスタファイルと、該プロセッサコア又は特別ハードウエアユニットを互いに且つ該制御プロセッサへ結合させる相互接続体とを有している。該制御プロセッサは、コンパイル期間中に形成されるタスクに対する制御スレッドに従ってタスクをスケジュールし、且つレジスタファイルと、プログラムカウンタと、夫々のタスクに対するステータスビットとを包含するハードウエアコンテキストを有している。該タスクは、並列又は逐次的のいずれかの実行のために、該プロセッサコア又は特別ハードウエアユニットへディスパッチ即ちタスク指名される。
以下に説明する図1及び2及び本明細書において本発明の原理を説明するために使用する種々の実施例は単に例示的なものであって、本発明の技術的範囲を制限する態様で解釈すべきものではない。当業者は、本発明の原理を任意の適宜構成した装置において実現することが可能であることを理解するものである。
図1は本発明の1実施例に基づくハイパープロセッサに対するマクロ及びマイクロアーキテクチャの概略図である。ハイパープロセッサ100はマクロアーキテクチャ101を有しており、それは制御プロセッサ102と、タスクディスパッチャー103と、1つ又はそれ以上の特別目的処理ユニット(SPPU)104と、ユニバーサルレジスタファイル(URF)105とを有している。SPPUはプロセッサ又は応用特定集積回路(ASIC)アーキテクチャを使用することが可能であり、且つ同種(全てが同じ)又は異種(異なるもの、即ち、モーション・ピクチャ・エキスパート・グループ即ち「MPEG」デコーダー、デジタル信号プロセッサ、ペンチアムプロセッサ等)とすることが可能である。
ハイパープロセッサアーキテクチャは複数個のイベントからなるシーケンスにおけるステージとして全てのシステムコンポーネントを使用する。プログラムは多数のタスク及びサブタスクに分割される。これらのタスク及びサブタスクは、各々が夫々の能力に従ってシステムコンポーネント(SPPU104)により実行される。本明細書においては、「タスク」という用語は永続的な通信用逐次的プロセスと対比して複数個の命令からなる有限シーケンスのことを意味し、且つ実行時間において有界変化を有している。これらのタスク及びサブタスクは、制御プロセッサ102及び/又はタスクディスパッチャー103により動的にスケジュールされ、且つ夫々の能力に従ってシステムコンポーネント(SPPU104)へ実行のためにディスパッチされる。1つのタスクのSPPU104により受取られると、SPPU104は内部プログラム命令システムを使用してシステム100の残部と独立的に割り当てられたタスクに対する必要な命令を検索する。
ハイパープロセッサの基礎を成す簡単な概念は、プログラムの統一性を達成するために、マイクロプロセッサアーキテクチャにおいて得られた知識及びタスクレベル並列性(及び資源最適化)に対するシステムレベルにおけるアプリケーションにおいての命令レベル並列性を使用する。以下の簡単な性能方程式はハイパープロセッサアーキテクチャを示している。
この方程式はより複雑で且つ独立変数を著しく簡単化したものである。例えば、この方程式の右側における4番目の項は、命令レベル並列性(ILP)又はサイクル当たりに開始させることが可能な命令の数に関するものであり、プロセッサの技術及び周波数、マイクロアーキテクチャ、実行される命令のタイプ及び命令を発生し且つ最適化させるコンパイラーに依存するファクターである。残りの項は同様に複雑なものである。
一般的に、上の方程式における右側の最初の2つの項は、システムレベルの問題に関するものであり、一方残りの3つはプロセッサ問題に関するものである。最初の項は実行中のプログラムに関するものであり、且つ時間従属性、資源従属性、又はその他の論理的条件等の幾つかの所望の条件に従ってアプリケーションの区画化のために識別することが可能なタスクに関するものである。2番目の項は、どのようにして且つ何時タスクをハイパープロセッサの種々のコンポーネント間において分布させるかに関するものであり、プログラム統一化、性能達成、及びシステムコンポーネントのモジュール性において重要な問題である。3番目の項はプロセッサ又はコンポーネントの使用に関するものであり、一方4番目の項は上述したような命令レベル並列性に関するものであり且つ5番目の項はどの程度速くプロセッサを稼動させることが可能であるか及びどれ程の論理がダイ上にフィットさせることが可能であるかの技術ステートメントである。
ハイパープロセッサ100内において、プログラムが識別され且つタスクが制御プロセッサ102により洗練化されると、古典的なマイクロプロセッサによる命令の実行と同様の態様でこれらのタスクが実行される。スーパースカラーマイクロプロセッサ106(例示的な実施例におけるSPPU104のうちの1つ)が命令をフェッチし且つデコードした後に、該命令は適宜の実行ユニット109へディスパッチされ、且つ少なくとも、動的スケジューリングにおいて、プログラムの順番で結果が回収される。ハイパープロセッサ100は同じことをタスクに対して行う。タスクがプログラムメモリ(それは、ハイパープロセッサ100のコンポーネント間に分散されている場合がある)からフェッチされるや否や、制御プロセッサ102によりそのタスクについて何を行うかに関しての判別が行われ、次いでそのタスクはタスクディスパッチャー103によって実行のために適宜のコンポーネント/プロセッサ104へディスパッチされる。
個別的なSPPUプロセッサ104は、例えば、命令格納部107、フェッチ/デコードユニット108、1つ又はそれ以上の実行ユニット109、汎用レジスタ(GPR)ファイル110を包含するスーパースカラーマイクロアーキテクチャ106を有することが可能である。タスクがプロセッサ104へディスパッチされると、そのプロセッサは、実行を完了するためにプログラムメモリから適宜の命令をフェッチする。上述したように、これらのプロセッサ104は同種のものである必要はなく、その代わりに、2つ又はそれ以上の幾つかの異なるプロセッサとすることが可能であり、又は1つの機能に対して特定のハードウエアを有することが可能である。実行ユニット109はプロセッサ104内のサブユニットであるので、各プロセッサ104はそれ自身、図示した如く、ハイパープロセッサ100におけるサブユニットである。
注意すべきことであるが、ハイパープロセッサ100のアーキテクチャは入れ子型とすることが可能であり、その場合には、1つ又はそれ以上のSPPU104がハイパープロセッサ100のアーキテクチャを有することとなる。
タスクレベル並列性は、主に、タスク間におけるデータ及び制御従属性を包含する種々の理由により以前においては成功裡に実現されていない。タスクレベル並列性及び投機的マルチスレッディングにおける従来の試みはマイクロプロセッサ内の古いパラダイムに依存していた。マイクロプロセッサ内のコンポーネントにより共用されるデータ空間(GPRファイル)が全ての実行ユニットを供給するように、ハイパープロセッサ100内のすべてのプロセッサ104がユニバーサルレジスタファイル105を共有する。この空間の場合、ハイパープロセッサ100は順番外、並列及び投機的タスク実行を達成することが可能である。データキャッシュはタスク従属性問題を緩和するためにサポートされている。
タスクを実行する場合のユニバーサルレジスタファイル105の役割はマイクロプロセッサにおけるレジスタファイル110の役割に類似しており、即ちユニバーサルレジスタファイルは、汎用レジスタファイルが命令を実行する場合に通信及び同期を供給するのと同じように、通信及びタスク間の同期に対するメカニズムを与える。
ユニバーサルレジスタファイル105は読取又は書込ノードにおいてどのプロセッサ104によりどのエントリが使用中であるかを追跡し、データ従属性を追跡する。ユニバーサルレジスタファイル105により与えられるコフィーレンシー即ち一貫性メカニズムが、並列実行のスケーラビリティを改善し、従って、より大きな数のSPPU104を使用することを可能とする。
ハイパープロセッサアーキテクチャのその他のコンポーネントの場合におけるように、ユニバーサルレジスタファイル105は異なるアプリケーションに対して異なって実現させることが可能である。何故ならば、エントリの寸法も数も固定されているからである。高性能アプリケーションにおいて、ユニバーサルレジスタファイル105は非常に高速のメモリ及び共用するバッファとローカルキャッシュとの間において幅広の転送を使用し、一方ローエンドのアプリケーションにおいては、ユニバーサルレジスタファイル105は、単に、共用されるオフチップメモリに対してマッピングさせるだけである。
埋込型システムにおいて、制御プロセッサ102は全体的なシステムアーキテクチャを知得しており、且つ、上にリストした機能に加えて、ファンクションコールを介してホストプロセッサ及び/又はサービスプロセッサの間で通信トランズアクションを取扱う。
制御プロセッサ102は、同時的に又は逐次的にインターリーブして複数個のコンテキストからタスクレベル命令をフェッチすることにより複数個のプログラムを稼動させることが可能である。
ハイパープロセッサ100におけるタスクスケジューリングがマイクロプロセッサ内のスケジューリング命令よりもよりグローバルなものであったとしても、多くの特性が同じままである。従って、命令レベル並列性に対して適用した最適化と同様の態様で、制御プロセッサ102及び/又はタスクディスパッチャー103によりタスクレベル並列性に対して有用に最適化を適用することが可能である。タスクディスパッチメカニズムは可及的に最も高い処理能力に近付くべく動作する。
タスクディスパッチャー103の実現は異なるアプリケーションに対して異なるものとなる。例えば、ネットワーク処理コアルーター埋込型アプリケーションにおいては、タスクディスパッチャーはプロセッサ104内の中央ディスパッチャー及び論理とユニバーサルレジスタファイル105との間に分布させることが可能であり、一方フォームゲートウエイアプリケーションにおいては、タスクディスパッチャー103は制御プロセッサ102内のソフトウエアモジュールである場合がある。
ハイパープロセッサモデルは単一中央処理ユニット(CPU)をプログラミングするのと類似的に、高度に同時的なマシンのプログラミングを1つのエンティティとすることを可能とする。同時並行性は多数のスーパースカラープロセッサ104により達成され、中央タスクスケジューラー(タスクディスパッチャー103)がハイレベルプログラムを実行し且つタスクをプロセッサ104に割当て、該プロセッサが独立的にタスクを稼動する。ユニバーサルレジスタファイル105はプロセッサ104上で稼動するタスク間で共用されるデータを保持し、且つ通信及び同期の主要な手段として機能する。
並列処理は帯域集中的であり、通信ボトルネックが発生する。既存のネットワークプロセッサは共用バス又はクロスバースイッチの変形例に基づく通信を使用する。然しながら、共用バスは将来の高性能ルーターの帯域幅条件を取扱うためにスケーリングするものではなく、一方クロスバースイッチの複雑性は、接続されたプロセッサコアの数が増加するに従い実施不可能なものとなる。特定のアプリケーションに対するカスタム化した相互接続は時間及びコストの点から望ましいものではない。従って、ハイパープロセッサ100の実施例は、好適には、米国特許出願番号第10/090,899号「SOC装置上の処理ノードをリンクするための八角形相互接続ネットワーク及びその動作(OCTAGONAL INTERCONNECTION NETWORK FOR LINKING PROCESSING NODES ON AN SOC DEVICE AND METHOD OF OPERATING SAME)」、2002年3月5日出願に記載されている八角形相互接続を使用する。尚、この特許出願を引用によって本明細書に取込む。この八角形相互接続は多くのアプリケーションに対して必要な帯域幅を提供するものである。
図2は本発明の1実施例に基づくハイパープロセッサにおいて使用する例示的な制御プロセッサマイクロアーキテクチャの模式図である。このマイクロアーキテクチャはパラメータ駆動型であり、数個のパラメータを修正することにより発行及び実行ユニットの数を変化させることが可能である。プロセッサ200は最適化させたパイプライン(初期分岐検知)を有しており且つハードウエアマルチスレッディング(ハードウエアにおける2つの完全なコンテキスト)を実現する。
任意のスーパースカラーアーキテクチャにより実現することが可能なプロセッサ200用のマイクロアーキテクチャは簡単であり、その場合に、パイプラインステージは図2における点線により示してある。第一ステージは制御ストア(格納部)201を包含しており、それはタスク又は操作を第二ステージへ分配し且つ第二ステージから分岐制御信号を受取る。第二ステージはフェッチ/分岐ユニット202、デコードユニット203、Kテーブルユニット204により占有されている。フェッチ/分岐ユニット202は制御信号を制御ストア201及びデコードユニット203へ送信し、デコードユニット203は制御信号をKテーブルユニット204へ送信し且つKテーブルユニット204からステータスデータを受取る。
第三ステージは、フェッチ/分岐ユニット202へ双方向に結合されているユニバーサルレジスタファイル105を包含すると共に、デコードユニット203から命令を受取り且つ制御信号をレジスタファイル205へ送信するディスパッチユニット206を包含している。ディスパッチユニット206はハイパープロセッサS100内のSPPU104へタスクを送り、且つこれらのタスクの実行の状態を表わす信号を受取る。これらの信号が到着すると、Kテーブルユニット204は実行の正しさを保持するために結果をコミットする。
マイクロアーキテクチャ200は単純であり、レジスタ名称変更(Kテーブル及びスケジューリングメカニズムを介し)且つユニバーサルレジスタファイル105において使用可能なデータが有効であるか否かを表わすためにレジスタにタグ付けを行うことによりデータ従属性即ち依存性を取扱う。マイクロアーキテクチャの初期分岐検知はより良好な順番外実行を与える。更に、タスクの効果がユニバーサルレジスタファイル105内に拘束される限り、タスクのスコッシング(squashing)即ち押し潰すことは簡単で且つ効率的であり、効率的な投機的タスク実行を可能とする。
タスク間の通信及び同期は、主に、ユニバーサルレジスタファイル105を介して達成される。長期データを共用するための共用グローバルメモリも存在することが可能であり、従ってグローバルメモリに関してのテスト・アンド・セット等のボトルネック操作は必要ではない。簡単なハードウエアを基礎としたタスクスケジューリングが制御プロセッサ及びタスクディスパッチャーが短期間のタスクのスケジューリングについての自立性の度合い、アーキテクチャの異なる実施例の条件を受付けるのに必要な調節を変化させることを可能とする。
マイクロアーキテクチャ200に対する命令セットはタスクを効率的に稼動するのに必要な最小のものとすべきであり、それは、タスクスケジューリング、アップデート、サスペンド、タスクのスコッシング又は再開始、分岐点及びその他の制御動作、ユニバーサルレジスタファイルアクセス、マルチスレッディング及び条件付き命令に対する特別の命令を包含する場合がある。ユニバーサルレジスタファイルと対構成とされた場合に、タスクレベルプログラムセグメント割当ては制御プロセッサに関し効率的に稼動させることが可能である。
簡単性に加えて(命令の数を最小に維持)、命令はデコーディングを容易なものとさせるために可及的に通常のものとすべきである。
応用特定システムをハイパープロセッサプラットフォームアーキテクチャを使用して容易に例示化させることが可能であり、該アーキテクチャはタスク間の同期及び通信と共に、プログラムの流れの制御を与えるための構成、即ち制御プロセッサのコンポーネント、ユニバーサルレジスタファイル、及びタスクディスパッチャーを与える。従って、応用特定システムの例示化は、SPPUの適宜の数及び混合物を選択することにより、且つ形態特定可能な制御プロセッサ、ユニバーサルレジスタファイル、ディスパッチャーをスケーリングすることにより実施される。
本発明のハイパープロセッサアーキテクチャは多様性があり且つスケーラブルであり、グラフィックスサブシステム、フォームゲートウエイ、エッジ/コアルーター、ウエブスイッチ等のアプリケーション内に挿入させることが可能である。ハイパープロセッサはASICと関連する高性能をプロセッサのプログラム可能性と結合させ、そのプログラム可能性をコンフィギュレーションアプリケーション開発者にとって親密なものとさせることにより新たなレベルへ拡張させる。ハイパープロセッサプラットフォームは、アプリケーション及び性能条件の多数の組合わせを受付けるために製品のファミリーを開発することを可能とする。例えば、SPPUの数を変えること、特別ハードウエアユニットを付加/除去すること、又はユニバーサルレジスタファイルの寸法を変化させることは全て簡単である。ビルディングブロックは変化するが、ハードウエア及びソフトウエアアーキテクチャは同じままである。
本ハイパープロセッサは設計空間探査を高速且つ効率的なものとさせる態様で異種計算器要素の能力を利用するためのプラットフォームを提供し、且つオンチップ相互接続体、専用プロセッサ、制御プロセッサを包含する幾つかの重要なブロックを提供する。本ハイパープロセッサは、又、プログラム及びデバッグが容易であるスケーラブルなシステム・オン・チップ(SoC)プラットフォームアーキテクチャを提供しており、増加させた並列性オプション、順番外及び投機的タスク実行、及びプログラムメモリ分布の全てが性能を改善するためにアプリケーションに対して使用可能である。
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
100 ハイパープロセッサ
101 マクロアーキテクチャ
102 制御プロセッサ
103 タスクディスパッチャー
104 特別目的処理ユニット(SPPU)
105 ユニバーサルレジスタファイル
106 スーパースカラーマイクロプロセッサ
107 命令ストア
108 フェッチ/デコードユニット
109 実行ユニット
110 汎用レジスタファイル
101 マクロアーキテクチャ
102 制御プロセッサ
103 タスクディスパッチャー
104 特別目的処理ユニット(SPPU)
105 ユニバーサルレジスタファイル
106 スーパースカラーマイクロプロセッサ
107 命令ストア
108 フェッチ/デコードユニット
109 実行ユニット
110 汎用レジスタファイル
Claims (21)
- 処理システムにおいて、
タスクを実行するために1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットを包含している1つ又はそれ以上の特別目的処理ユニット、
前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによって実行されるタスクを制御する制御プロセッサ、
前記制御プロセッサによるスケジューリングに従って前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクをディスパッチするタスクディスパッチャー、
タスク間のデータ通信を受付けるユニバーサルレジスタファイル、
を有していることを特徴とするシステム。 - 請求項1において、各タスクが実行時間において有界変化を有する命令からなる有限シーケンスを有していることを特徴とするシステム。
- 請求項1において、前記タスクに対する命令メモリを前記プロセッサコア又は特別ハードウエアユニットにわたって分布させることが可能であることを特徴とするシステム。
- 請求項1において、前記タスクディスパッチャーが前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによる並列又は逐次的実行のために前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクを送信することを特徴とするシステム。
- 請求項1において、前記タスクディスパッチャーが、前記タスクを包含する逐次的に特定したプログラムの正しさを維持しながら、前記1つ又はそれ以上のプロセッサコアへ順番外で又は投機的にタスクを送信することを特徴とするシステム。
- 請求項1において、前記1つ又はそれ以上のプロセッサコアのうちの少なくとも1つが多重実行ユニットを包含していることを特徴とするシステム。
- 請求項1において、前記制御プロセッサが、前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットに関して並列、パイプライン型、又は混合型実行のためにタスクをスケジュールすることを特徴とするシステム。
- 請求項1において、前記制御プロセッサが、同時的に又は逐次的にインターリーブして、多重コンテキストからタスクレベル命令をフェッチすることにより多重プログラムに対してタスクをスケジュールすることを特徴とするシステム。
- 請求項1において、前記特別目的処理ユニットのうちの少なくとも1つが、前記処理システムの構成に適合する構成を有しており、前記処理システムの構成が入れ子型であることを特徴とするシステム。
- 埋込型処理システムにおいて、
タスクを実行するための1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニット、
前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットにより実行されるタスクを制御する制御プロセッサ、
前記制御プロセッサによるスケジューリングに従って前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクをディスパッチするタスクディスパッチャー、
前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットにより実行されるタスクにより処理されるべきデータを包含するユニバーサルレジスタファイル、
少なくとも前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニット及び前記ユニバーサルレジスタファイルを結合する相互接続体、
を有していることを特徴とするシステム。 - 請求項10において、各タスクが、実行時間において有界変化を有する命令の有限シーケンスを有していることを特徴とするシステム。
- 請求項10において、前記タスクディスパッチャーが、前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによる並列又は逐次的実行のいずれかのために前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクを送信することを特徴とするシステム。
- 請求項10において、前記相互接続体が、所定数のノードの複数個のセルの形態とされており、且つ前記相互接続体の1つのセル内の全てのノードはそのセル内のその他のセルを介して所定数未満のホップで同一のセル内の任意のその他のノードと選択的に通信することが可能であることを特徴とするシステム。
- 請求項10において、前記ユニバーサルレジスタファイル内のデータへのアクセスが、選択的に前記プロセッサコア又は特別ハードウエアユニット間で共用されるか又は単一のプロセッサコア又は特別ハードウエアユニットに対して専用とさせることが可能であることを特徴とするシステム。
- プログラムを実行する方法において、
各タスクが実行時間において有界変化を有する命令の有限シーケンスを有している複数個のタスクの各々を1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによる実行のためにスケジュールし、
前記スケジュールに従って前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクをディスパッチし、
前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニット内のタスクを実行する、
ことを包含しており、各プロセッサコアが異なるタスク部分の並列実行のために複数個の実行パイプラインを包含していることを特徴とする方法。 - 請求項15において、前記タスクが前記プロセッサコア又は特別ハードウエアユニットにわたって分布されている命令メモリからディスパッチされることを特徴とする方法。
- 請求項15において、前記タスクが、前記プロセッサコア又は特別ハードウエアユニットによる並列又は逐次的実行のいずれかのために選択的にスケジュールされることを特徴とする方法。
- 請求項15において、前記タスクが、前記タスクを包含する逐次的に特定されたプログラムの正しさを維持しながら、順番外又は投機的のいずれか選択的にスケジュールされることを特徴とする方法。
- 請求項15において、前記タスクのうちの少なくとも1つが複数個の実行ユニットを包含するプロセッサコアへ実行のためにディスパッチされることを特徴とする方法。
- 請求項15において、前記タスクが前記1つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットに関して並列、パイプライン型、又は混合型実行のために選択的にスケジュールされることを特徴とする方法。
- 請求項15において、多重プログラム用のタスクが、同時的に又は逐次的にインターリーブして多重コンテキストからタスクレベル命令をフェッチすることによりスケジュールされることを特徴とする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/283,653 US7533382B2 (en) | 2002-10-30 | 2002-10-30 | Hyperprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004152305A true JP2004152305A (ja) | 2004-05-27 |
Family
ID=32093503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003370500A Pending JP2004152305A (ja) | 2002-10-30 | 2003-10-30 | ハイパープロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US7533382B2 (ja) |
EP (1) | EP1416377B1 (ja) |
JP (1) | JP2004152305A (ja) |
DE (1) | DE60322648D1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533716B2 (en) | 2004-03-31 | 2013-09-10 | Synopsys, Inc. | Resource management in a multicore architecture |
US7743376B2 (en) * | 2004-09-13 | 2010-06-22 | Broadcom Corporation | Method and apparatus for managing tasks in a multiprocessor system |
US7823158B2 (en) * | 2005-08-18 | 2010-10-26 | International Business Machines Corporation | Adaptive scheduling and management of work processing in a target context in resource contention |
FR2893156B1 (fr) | 2005-11-04 | 2008-02-15 | Commissariat Energie Atomique | Procede et systeme de calcul intensif multitache et multiflot en temps reel. |
US7525548B2 (en) * | 2005-11-04 | 2009-04-28 | Nvidia Corporation | Video processing with multiple graphical processing units |
US7768517B2 (en) * | 2006-02-21 | 2010-08-03 | Nvidia Corporation | Asymmetric multi-GPU processing |
CN101165655A (zh) * | 2006-10-20 | 2008-04-23 | 国际商业机器公司 | 多处理器计算系统及其任务分配方法 |
US7949887B2 (en) * | 2006-11-01 | 2011-05-24 | Intel Corporation | Independent power control of processing cores |
US7814374B2 (en) | 2007-01-19 | 2010-10-12 | International Business Machines Corporation | System and method for the capture and preservation of intermediate error state data |
US20090133022A1 (en) * | 2007-11-15 | 2009-05-21 | Karim Faraydon O | Multiprocessing apparatus, system and method |
WO2010001353A1 (en) | 2008-07-02 | 2010-01-07 | Nxp B.V. | A multiprocessor circuit using run-time task scheduling |
US8261117B2 (en) * | 2008-09-11 | 2012-09-04 | International Business Machines Corporation | Virtualization in a multi-core processor (MCP) |
US8056080B2 (en) | 2009-08-31 | 2011-11-08 | International Business Machines Corporation | Multi-core/thread work-group computation scheduler |
US20140317389A1 (en) * | 2011-11-18 | 2014-10-23 | The Trustees Of The University Of Pennsylvania | Computational sprinting using multiple cores |
US9886072B1 (en) | 2013-06-19 | 2018-02-06 | Altera Corporation | Network processor FPGA (npFPGA): multi-die FPGA chip for scalable multi-gigabit network processing |
US9459900B2 (en) | 2014-01-13 | 2016-10-04 | Red Hat Israel, Ltd. | Hypervisor-based balloon page initialization |
FR3087907B1 (fr) * | 2018-10-24 | 2021-08-06 | St Microelectronics Grenoble 2 | Microcontroleur destine a executer un traitement parametrable |
CN110990151A (zh) * | 2019-11-24 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种基于异构计算平台的业务处理方法 |
US11645212B2 (en) * | 2020-11-02 | 2023-05-09 | Rambus Inc. | Dynamic processing speed |
US11775310B2 (en) * | 2021-11-16 | 2023-10-03 | Nxp B.V. | Data processing system having distrubuted registers |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4333144A (en) * | 1980-02-05 | 1982-06-01 | The Bendix Corporation | Task communicator for multiple computer system |
US4805107A (en) * | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
US5867725A (en) * | 1996-03-21 | 1999-02-02 | International Business Machines Corporation | Concurrent multitasking in a uniprocessor |
US6094430A (en) * | 1997-09-24 | 2000-07-25 | Xylan Corporation | Switching fabric for a digital traffic switch |
US6279106B1 (en) * | 1998-09-21 | 2001-08-21 | Advanced Micro Devices, Inc. | Method for reducing branch target storage by calculating direct branch targets on the fly |
US7162620B2 (en) * | 2002-03-13 | 2007-01-09 | Sony Computer Entertainment Inc. | Methods and apparatus for multi-processing execution of computer instructions |
-
2002
- 2002-10-30 US US10/283,653 patent/US7533382B2/en not_active Expired - Lifetime
-
2003
- 2003-10-29 DE DE60322648T patent/DE60322648D1/de not_active Expired - Fee Related
- 2003-10-29 EP EP03256839A patent/EP1416377B1/en not_active Expired - Lifetime
- 2003-10-30 JP JP2003370500A patent/JP2004152305A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE60322648D1 (de) | 2008-09-18 |
EP1416377B1 (en) | 2008-08-06 |
US7533382B2 (en) | 2009-05-12 |
EP1416377A1 (en) | 2004-05-06 |
US20040088519A1 (en) | 2004-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027807B (zh) | 基于块的处理器核拓扑寄存器 | |
CN108027771B (zh) | 基于块的处理器核复合寄存器 | |
TWI628594B (zh) | 用戶等級分叉及會合處理器、方法、系統及指令 | |
CN108027769B (zh) | 使用寄存器访问指令发起指令块执行 | |
US6718457B2 (en) | Multiple-thread processor for threaded software applications | |
JP2004152305A (ja) | ハイパープロセッサ | |
EP3314401B1 (en) | Block-based architecture with parallel execution of successive blocks | |
CN108027772B (zh) | 用于逻辑处理器的不同的系统寄存器 | |
US11531552B2 (en) | Executing multiple programs simultaneously on a processor core | |
CN108027770B (zh) | 用于数据流isa的密集读取编码 | |
CN107810477B (zh) | 解码的指令的重复使用 | |
US7490228B2 (en) | Processor with register dirty bit tracking for efficient context switch | |
CN108027773B (zh) | 存储器访问指令顺序编码的生成和使用 | |
US10452399B2 (en) | Broadcast channel architectures for block-based processors | |
US20160378491A1 (en) | Determination of target location for transfer of processor control | |
CN108027733B (zh) | 在目标字段中存储无效 | |
US10437638B2 (en) | Method and apparatus for dynamically balancing task processing while maintaining task order | |
US20180032335A1 (en) | Transactional register file for a processor | |
US20030046517A1 (en) | Apparatus to facilitate multithreading in a computer processor pipeline | |
CN108027735B (zh) | 用于操作处理器的装置、方法和计算机可读存储介质 | |
JPH10187464A (ja) | マルチスカラ・プログラムを作成する方法およびシステム | |
Fasiku et al. | A review of architectures-Intel single core, Intel dual core and AMD dual core processors and the benefits | |
Adda et al. | A Simulator for a Multithreaded Processor. |