(57)【要約】【課題】  高い処理条件及び通信条件をサポートする改良した処理アーキテクチャを提供する。【解決手段】  ハイパープロセッサは、複数個のプロセッサコアにより実行されるタスクを制御する制御プロセッサを包含しており、各プロセッサコアは複数個の実行ユニット又は特別ハードウエアユニットを包含することが可能である。該制御プロセッサは、コンパイル期間中に発生され且つ夫々のタスクに対してのレジスタファイル、プログラムカウンタ、ステータスビットを包含するハードウエアコンテキストを包含しているタスクに対する制御スレッドに従ってタスクをスケジュールする。該タスクは並列、逐次的、順番外又は投機的実行のために、プロセッサコア又は特別ハードウエアユニットへディスパッチされる。ユニバーサルレジスタファイルは該タスクにより処理されるデータを包含しており、且つ相互接続体が少なくとも該プロセッサコア又は特別ハードウエアユニットを互いに且つユニバーサルレジスタファイルへ結合させ、各ノードがその他のノードと通信することを可能とする。【選択図】      図１
2004152305.tif 000002
【特許請求の範囲】
【請求項１】
処理システムにおいて、
タスクを実行するために１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットを包含している１つ又はそれ以上の特別目的処理ユニット、
前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによって実行されるタスクを制御する制御プロセッサ、
前記制御プロセッサによるスケジューリングに従って前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクをディスパッチするタスクディスパッチャー、
タスク間のデータ通信を受付けるユニバーサルレジスタファイル、
を有していることを特徴とするシステム。
【請求項２】
請求項１において、各タスクが実行時間において有界変化を有する命令からなる有限シーケンスを有していることを特徴とするシステム。
【請求項３】
請求項１において、前記タスクに対する命令メモリを前記プロセッサコア又は特別ハードウエアユニットにわたって分布させることが可能であることを特徴とするシステム。
【請求項４】
請求項１において、前記タスクディスパッチャーが前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによる並列又は逐次的実行のために前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクを送信することを特徴とするシステム。
【請求項５】
請求項１において、前記タスクディスパッチャーが、前記タスクを包含する逐次的に特定したプログラムの正しさを維持しながら、前記１つ又はそれ以上のプロセッサコアへ順番外で又は投機的にタスクを送信することを特徴とするシステム。
【請求項６】
請求項１において、前記１つ又はそれ以上のプロセッサコアのうちの少なくとも１つが多重実行ユニットを包含していることを特徴とするシステム。
【請求項７】
請求項１において、前記制御プロセッサが、前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットに関して並列、パイプライン型、又は混合型実行のためにタスクをスケジュールすることを特徴とするシステム。
【請求項８】
請求項１において、前記制御プロセッサが、同時的に又は逐次的にインターリーブして、多重コンテキストからタスクレベル命令をフェッチすることにより多重プログラムに対してタスクをスケジュールすることを特徴とするシステム。
【請求項９】
請求項１において、前記特別目的処理ユニットのうちの少なくとも１つが、前記処理システムの構成に適合する構成を有しており、前記処理システムの構成が入れ子型であることを特徴とするシステム。
【請求項１０】
埋込型処理システムにおいて、
タスクを実行するための１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニット、
前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットにより実行されるタスクを制御する制御プロセッサ、
前記制御プロセッサによるスケジューリングに従って前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクをディスパッチするタスクディスパッチャー、
前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットにより実行されるタスクにより処理されるべきデータを包含するユニバーサルレジスタファイル、
少なくとも前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニット及び前記ユニバーサルレジスタファイルを結合する相互接続体、
を有していることを特徴とするシステム。
【請求項１１】
請求項１０において、各タスクが、実行時間において有界変化を有する命令の有限シーケンスを有していることを特徴とするシステム。
【請求項１２】
請求項１０において、前記タスクディスパッチャーが、前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによる並列又は逐次的実行のいずれかのために前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクを送信することを特徴とするシステム。
【請求項１３】
請求項１０において、前記相互接続体が、所定数のノードの複数個のセルの形態とされており、且つ前記相互接続体の１つのセル内の全てのノードはそのセル内のその他のセルを介して所定数未満のホップで同一のセル内の任意のその他のノードと選択的に通信することが可能であることを特徴とするシステム。
【請求項１４】
請求項１０において、前記ユニバーサルレジスタファイル内のデータへのアクセスが、選択的に前記プロセッサコア又は特別ハードウエアユニット間で共用されるか又は単一のプロセッサコア又は特別ハードウエアユニットに対して専用とさせることが可能であることを特徴とするシステム。
【請求項１５】
プログラムを実行する方法において、
各タスクが実行時間において有界変化を有する命令の有限シーケンスを有している複数個のタスクの各々を１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットによる実行のためにスケジュールし、
前記スケジュールに従って前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットへタスクをディスパッチし、
前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニット内のタスクを実行する、
ことを包含しており、各プロセッサコアが異なるタスク部分の並列実行のために複数個の実行パイプラインを包含していることを特徴とする方法。
【請求項１６】
請求項１５において、前記タスクが前記プロセッサコア又は特別ハードウエアユニットにわたって分布されている命令メモリからディスパッチされることを特徴とする方法。
【請求項１７】
請求項１５において、前記タスクが、前記プロセッサコア又は特別ハードウエアユニットによる並列又は逐次的実行のいずれかのために選択的にスケジュールされることを特徴とする方法。
【請求項１８】
請求項１５において、前記タスクが、前記タスクを包含する逐次的に特定されたプログラムの正しさを維持しながら、順番外又は投機的のいずれか選択的にスケジュールされることを特徴とする方法。
【請求項１９】
請求項１５において、前記タスクのうちの少なくとも１つが複数個の実行ユニットを包含するプロセッサコアへ実行のためにディスパッチされることを特徴とする方法。
【請求項２０】
請求項１５において、前記タスクが前記１つ又はそれ以上のプロセッサコア又は特別ハードウエアユニットに関して並列、パイプライン型、又は混合型実行のために選択的にスケジュールされることを特徴とする方法。
【請求項２１】
請求項１５において、多重プログラム用のタスクが、同時的に又は逐次的にインターリーブして多重コンテキストからタスクレベル命令をフェッチすることによりスケジュールされることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大略、プロセッサデザインに関するものであって、更に詳細には、ハイレベルマルチスレッド型並列性を有する高性能プロセッサに関するものである。本発明は、埋込型システム及び汎用計算器に適用することが可能である。
【背景技術】
【０００２】
埋込型システム及び汎用計算器の両方において、計算器パワーに対する高い要求が存在している。この要求は、システムの複雑性が増加し且つデジタルソリューションでより多くの問題に対処する傾向と共に継続して増加している。
【０００３】
このような要求を満足させる１つのソリューションは、例えば、超長命令語（ＶＬＩＷ）プロセッサ、単一命令マルチデータ（ＳＩＭＤ）プロセッサ、スーパースカラープロセッサ、及びそれらの変形物における命令レベル並列性（ＩＬＰ）を使用することである。これらのアプローチは、逐次的に書かれたプログラムにおいて使用可能な並列性により制限される。一般的に、命令レベル並列性は、サイクル当たり約６個の命令のレベルを超えるものでないことが判明している。
【０００４】
処理要求を満足させるための別のソリューションは、同種又は異種並列プロセッサに対して並列プログラムを書くことである。長年の間実施されているが、このアプローチは並列プログラムの複雑性に起因しその開発が著しくコスト高なものであるので広く受け入れられているものではない。高い開発コストはこのアプローチを経済的に使用することが可能なアプリケーション範囲を著しく制限する。更に、異種プロセッサの使用は、各プロセッサ形態に対するプログラムの完全な書き直しを必要とし、且つこのタイプのアーキテクチャは、典型的に、プロセッサとメモリとの間の帯域幅制限により典型的に制限されている。
【０００５】
高性能システムに対する更に別のソリューションは、計算の幾つかのステージをパイプライン化することであり、これは効率的なアプローチであるが、柔軟性を欠如しており、より重要な点であるが、スケーラビリティを欠如している。
【０００６】
別に、実時間オペレーティングシステム（ＲＴＯＳ）を使用する埋込型システムに対する処理のスケジューリングは、ＲＴＯＳにより導入されるオーバーヘッド及びＲＴＯＳによる非効率的なスケジューリングの両方に起因して、アプリケーションをサポートするのに必要なハードウエアのかなりの過剰なエンジニアリングを必要とすることが判明している。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、高い処理及び通信条件をサポートする改良した処理アーキテクチャに対する必要性が存在している。更に、該アーキテクチャが多様なシステム条件を満足するために組立て且つ拡縮させることが可能なモジュール型コンポーネントのプラットフォームを提供することが望ましい。本発明のソリューション即ち解決手段は、逐次的に書かれたプログラムをタスクレベル並列性（ＴＬＰ）に対して開発された技術から利点が得られるような態様で稼動することに関与するものであり、各タスクは、命令レベル並列性において開発された経験から利点を享受し、従って並列プログラムを書くことの必要性なしに粗粒度及び細粒度並列性の両方から利点を享受する。更に、本発明は、タスク及び資源のスケジューリングのためにＲＴＯＳスケジューラーを使用することの必要性を取除いており、且つ並列及びパイプライン型実行を動的に結合させることにより柔軟且つスケーラブルな態様で異種並列処理を編成させることが可能である。
【課題を解決するための手段】
【０００８】
上述した従来技術の欠点に対処するために、本発明の主要な目的とするところは、汎用コンピュータ及び埋込型システムにおいて使用するためのハイパープロセッサを提供することであり、該ハイパープロセッサは、各々が多重実行ユニット又は特別ハードウエアユニットを包含することが可能な複数個のプロセッサコアにより実行されるタスクを制御する制御プロセッサと、ユニバーサルレジスタファイルと、該プロセッサコア又は特別ハードウエアユニットを互いに且つ該制御プロセッサへ結合させる相互接続体とを有している。該制御プロセッサは、コンパイル期間中に形成されるタスクに対する制御スレッドに従ってタスクをスケジュールし、且つレジスタファイルと、プログラムカウンタと、夫々のタスクに対するステータスビットとを包含するハードウエアコンテキストを有している。該タスクは、並列又は逐次的のいずれかの実行のために、該プロセッサコア又は特別ハードウエアユニットへディスパッチ即ちタスク指名される。
【発明を実施するための最良の形態】
【０００９】
以下に説明する図１及び２及び本明細書において本発明の原理を説明するために使用する種々の実施例は単に例示的なものであって、本発明の技術的範囲を制限する態様で解釈すべきものではない。当業者は、本発明の原理を任意の適宜構成した装置において実現することが可能であることを理解するものである。
【００１０】
図１は本発明の１実施例に基づくハイパープロセッサに対するマクロ及びマイクロアーキテクチャの概略図である。ハイパープロセッサ１００はマクロアーキテクチャ１０１を有しており、それは制御プロセッサ１０２と、タスクディスパッチャー１０３と、１つ又はそれ以上の特別目的処理ユニット（ＳＰＰＵ）１０４と、ユニバーサルレジスタファイル（ＵＲＦ）１０５とを有している。ＳＰＰＵはプロセッサ又は応用特定集積回路（ＡＳＩＣ）アーキテクチャを使用することが可能であり、且つ同種（全てが同じ）又は異種（異なるもの、即ち、モーション・ピクチャ・エキスパート・グループ即ち「ＭＰＥＧ」デコーダー、デジタル信号プロセッサ、ペンチアムプロセッサ等）とすることが可能である。
【００１１】
ハイパープロセッサアーキテクチャは複数個のイベントからなるシーケンスにおけるステージとして全てのシステムコンポーネントを使用する。プログラムは多数のタスク及びサブタスクに分割される。これらのタスク及びサブタスクは、各々が夫々の能力に従ってシステムコンポーネント（ＳＰＰＵ１０４）により実行される。本明細書においては、「タスク」という用語は永続的な通信用逐次的プロセスと対比して複数個の命令からなる有限シーケンスのことを意味し、且つ実行時間において有界変化を有している。これらのタスク及びサブタスクは、制御プロセッサ１０２及び／又はタスクディスパッチャー１０３により動的にスケジュールされ、且つ夫々の能力に従ってシステムコンポーネント（ＳＰＰＵ１０４）へ実行のためにディスパッチされる。１つのタスクのＳＰＰＵ１０４により受取られると、ＳＰＰＵ１０４は内部プログラム命令システムを使用してシステム１００の残部と独立的に割り当てられたタスクに対する必要な命令を検索する。
【００１２】
ハイパープロセッサの基礎を成す簡単な概念は、プログラムの統一性を達成するために、マイクロプロセッサアーキテクチャにおいて得られた知識及びタスクレベル並列性（及び資源最適化）に対するシステムレベルにおけるアプリケーションにおいての命令レベル並列性を使用する。以下の簡単な性能方程式はハイパープロセッサアーキテクチャを示している。
【００１３】
【数１】
2004152305.tif 000003
【００１４】
この方程式はより複雑で且つ独立変数を著しく簡単化したものである。例えば、この方程式の右側における４番目の項は、命令レベル並列性（ＩＬＰ）又はサイクル当たりに開始させることが可能な命令の数に関するものであり、プロセッサの技術及び周波数、マイクロアーキテクチャ、実行される命令のタイプ及び命令を発生し且つ最適化させるコンパイラーに依存するファクターである。残りの項は同様に複雑なものである。
【００１５】
一般的に、上の方程式における右側の最初の２つの項は、システムレベルの問題に関するものであり、一方残りの３つはプロセッサ問題に関するものである。最初の項は実行中のプログラムに関するものであり、且つ時間従属性、資源従属性、又はその他の論理的条件等の幾つかの所望の条件に従ってアプリケーションの区画化のために識別することが可能なタスクに関するものである。２番目の項は、どのようにして且つ何時タスクをハイパープロセッサの種々のコンポーネント間において分布させるかに関するものであり、プログラム統一化、性能達成、及びシステムコンポーネントのモジュール性において重要な問題である。３番目の項はプロセッサ又はコンポーネントの使用に関するものであり、一方４番目の項は上述したような命令レベル並列性に関するものであり且つ５番目の項はどの程度速くプロセッサを稼動させることが可能であるか及びどれ程の論理がダイ上にフィットさせることが可能であるかの技術ステートメントである。
【００１６】
ハイパープロセッサ１００内において、プログラムが識別され且つタスクが制御プロセッサ１０２により洗練化されると、古典的なマイクロプロセッサによる命令の実行と同様の態様でこれらのタスクが実行される。スーパースカラーマイクロプロセッサ１０６（例示的な実施例におけるＳＰＰＵ１０４のうちの１つ）が命令をフェッチし且つデコードした後に、該命令は適宜の実行ユニット１０９へディスパッチされ、且つ少なくとも、動的スケジューリングにおいて、プログラムの順番で結果が回収される。ハイパープロセッサ１００は同じことをタスクに対して行う。タスクがプログラムメモリ（それは、ハイパープロセッサ１００のコンポーネント間に分散されている場合がある）からフェッチされるや否や、制御プロセッサ１０２によりそのタスクについて何を行うかに関しての判別が行われ、次いでそのタスクはタスクディスパッチャー１０３によって実行のために適宜のコンポーネント／プロセッサ１０４へディスパッチされる。
【００１７】
個別的なＳＰＰＵプロセッサ１０４は、例えば、命令格納部１０７、フェッチ／デコードユニット１０８、１つ又はそれ以上の実行ユニット１０９、汎用レジスタ（ＧＰＲ）ファイル１１０を包含するスーパースカラーマイクロアーキテクチャ１０６を有することが可能である。タスクがプロセッサ１０４へディスパッチされると、そのプロセッサは、実行を完了するためにプログラムメモリから適宜の命令をフェッチする。上述したように、これらのプロセッサ１０４は同種のものである必要はなく、その代わりに、２つ又はそれ以上の幾つかの異なるプロセッサとすることが可能であり、又は１つの機能に対して特定のハードウエアを有することが可能である。実行ユニット１０９はプロセッサ１０４内のサブユニットであるので、各プロセッサ１０４はそれ自身、図示した如く、ハイパープロセッサ１００におけるサブユニットである。
【００１８】
注意すべきことであるが、ハイパープロセッサ１００のアーキテクチャは入れ子型とすることが可能であり、その場合には、１つ又はそれ以上のＳＰＰＵ１０４がハイパープロセッサ１００のアーキテクチャを有することとなる。
【００１９】
タスクレベル並列性は、主に、タスク間におけるデータ及び制御従属性を包含する種々の理由により以前においては成功裡に実現されていない。タスクレベル並列性及び投機的マルチスレッディングにおける従来の試みはマイクロプロセッサ内の古いパラダイムに依存していた。マイクロプロセッサ内のコンポーネントにより共用されるデータ空間（ＧＰＲファイル）が全ての実行ユニットを供給するように、ハイパープロセッサ１００内のすべてのプロセッサ１０４がユニバーサルレジスタファイル１０５を共有する。この空間の場合、ハイパープロセッサ１００は順番外、並列及び投機的タスク実行を達成することが可能である。データキャッシュはタスク従属性問題を緩和するためにサポートされている。
【００２０】
タスクを実行する場合のユニバーサルレジスタファイル１０５の役割はマイクロプロセッサにおけるレジスタファイル１１０の役割に類似しており、即ちユニバーサルレジスタファイルは、汎用レジスタファイルが命令を実行する場合に通信及び同期を供給するのと同じように、通信及びタスク間の同期に対するメカニズムを与える。
【００２１】
ユニバーサルレジスタファイル１０５は読取又は書込ノードにおいてどのプロセッサ１０４によりどのエントリが使用中であるかを追跡し、データ従属性を追跡する。ユニバーサルレジスタファイル１０５により与えられるコフィーレンシー即ち一貫性メカニズムが、並列実行のスケーラビリティを改善し、従って、より大きな数のＳＰＰＵ１０４を使用することを可能とする。
【００２２】
ハイパープロセッサアーキテクチャのその他のコンポーネントの場合におけるように、ユニバーサルレジスタファイル１０５は異なるアプリケーションに対して異なって実現させることが可能である。何故ならば、エントリの寸法も数も固定されているからである。高性能アプリケーションにおいて、ユニバーサルレジスタファイル１０５は非常に高速のメモリ及び共用するバッファとローカルキャッシュとの間において幅広の転送を使用し、一方ローエンドのアプリケーションにおいては、ユニバーサルレジスタファイル１０５は、単に、共用されるオフチップメモリに対してマッピングさせるだけである。
【００２３】
埋込型システムにおいて、制御プロセッサ１０２は全体的なシステムアーキテクチャを知得しており、且つ、上にリストした機能に加えて、ファンクションコールを介してホストプロセッサ及び／又はサービスプロセッサの間で通信トランズアクションを取扱う。
【００２４】
制御プロセッサ１０２は、同時的に又は逐次的にインターリーブして複数個のコンテキストからタスクレベル命令をフェッチすることにより複数個のプログラムを稼動させることが可能である。
【００２５】
ハイパープロセッサ１００におけるタスクスケジューリングがマイクロプロセッサ内のスケジューリング命令よりもよりグローバルなものであったとしても、多くの特性が同じままである。従って、命令レベル並列性に対して適用した最適化と同様の態様で、制御プロセッサ１０２及び／又はタスクディスパッチャー１０３によりタスクレベル並列性に対して有用に最適化を適用することが可能である。タスクディスパッチメカニズムは可及的に最も高い処理能力に近付くべく動作する。
【００２６】
タスクディスパッチャー１０３の実現は異なるアプリケーションに対して異なるものとなる。例えば、ネットワーク処理コアルーター埋込型アプリケーションにおいては、タスクディスパッチャーはプロセッサ１０４内の中央ディスパッチャー及び論理とユニバーサルレジスタファイル１０５との間に分布させることが可能であり、一方フォームゲートウエイアプリケーションにおいては、タスクディスパッチャー１０３は制御プロセッサ１０２内のソフトウエアモジュールである場合がある。
【００２７】
ハイパープロセッサモデルは単一中央処理ユニット（ＣＰＵ）をプログラミングするのと類似的に、高度に同時的なマシンのプログラミングを１つのエンティティとすることを可能とする。同時並行性は多数のスーパースカラープロセッサ１０４により達成され、中央タスクスケジューラー（タスクディスパッチャー１０３）がハイレベルプログラムを実行し且つタスクをプロセッサ１０４に割当て、該プロセッサが独立的にタスクを稼動する。ユニバーサルレジスタファイル１０５はプロセッサ１０４上で稼動するタスク間で共用されるデータを保持し、且つ通信及び同期の主要な手段として機能する。
【００２８】
並列処理は帯域集中的であり、通信ボトルネックが発生する。既存のネットワークプロセッサは共用バス又はクロスバースイッチの変形例に基づく通信を使用する。然しながら、共用バスは将来の高性能ルーターの帯域幅条件を取扱うためにスケーリングするものではなく、一方クロスバースイッチの複雑性は、接続されたプロセッサコアの数が増加するに従い実施不可能なものとなる。特定のアプリケーションに対するカスタム化した相互接続は時間及びコストの点から望ましいものではない。従って、ハイパープロセッサ１００の実施例は、好適には、米国特許出願番号第１０／０９０，８９９号「ＳＯＣ装置上の処理ノードをリンクするための八角形相互接続ネットワーク及びその動作（ＯＣＴＡＧＯＮＡＬ  ＩＮＴＥＲＣＯＮＮＥＣＴＩＯＮ  ＮＥＴＷＯＲＫ  ＦＯＲ  ＬＩＮＫＩＮＧ  ＰＲＯＣＥＳＳＩＮＧ  ＮＯＤＥＳ  ＯＮ  ＡＮ  ＳＯＣ  ＤＥＶＩＣＥ  ＡＮＤ  ＭＥＴＨＯＤ  ＯＦ  ＯＰＥＲＡＴＩＮＧ  ＳＡＭＥ）」、２００２年３月５日出願に記載されている八角形相互接続を使用する。尚、この特許出願を引用によって本明細書に取込む。この八角形相互接続は多くのアプリケーションに対して必要な帯域幅を提供するものである。
【００２９】
図２は本発明の１実施例に基づくハイパープロセッサにおいて使用する例示的な制御プロセッサマイクロアーキテクチャの模式図である。このマイクロアーキテクチャはパラメータ駆動型であり、数個のパラメータを修正することにより発行及び実行ユニットの数を変化させることが可能である。プロセッサ２００は最適化させたパイプライン（初期分岐検知）を有しており且つハードウエアマルチスレッディング（ハードウエアにおける２つの完全なコンテキスト）を実現する。
【００３０】
任意のスーパースカラーアーキテクチャにより実現することが可能なプロセッサ２００用のマイクロアーキテクチャは簡単であり、その場合に、パイプラインステージは図２における点線により示してある。第一ステージは制御ストア（格納部）２０１を包含しており、それはタスク又は操作を第二ステージへ分配し且つ第二ステージから分岐制御信号を受取る。第二ステージはフェッチ／分岐ユニット２０２、デコードユニット２０３、Ｋテーブルユニット２０４により占有されている。フェッチ／分岐ユニット２０２は制御信号を制御ストア２０１及びデコードユニット２０３へ送信し、デコードユニット２０３は制御信号をＫテーブルユニット２０４へ送信し且つＫテーブルユニット２０４からステータスデータを受取る。
【００３１】
第三ステージは、フェッチ／分岐ユニット２０２へ双方向に結合されているユニバーサルレジスタファイル１０５を包含すると共に、デコードユニット２０３から命令を受取り且つ制御信号をレジスタファイル２０５へ送信するディスパッチユニット２０６を包含している。ディスパッチユニット２０６はハイパープロセッサＳ１００内のＳＰＰＵ１０４へタスクを送り、且つこれらのタスクの実行の状態を表わす信号を受取る。これらの信号が到着すると、Ｋテーブルユニット２０４は実行の正しさを保持するために結果をコミットする。
【００３２】
マイクロアーキテクチャ２００は単純であり、レジスタ名称変更（Ｋテーブル及びスケジューリングメカニズムを介し）且つユニバーサルレジスタファイル１０５において使用可能なデータが有効であるか否かを表わすためにレジスタにタグ付けを行うことによりデータ従属性即ち依存性を取扱う。マイクロアーキテクチャの初期分岐検知はより良好な順番外実行を与える。更に、タスクの効果がユニバーサルレジスタファイル１０５内に拘束される限り、タスクのスコッシング（ｓｑｕａｓｈｉｎｇ）即ち押し潰すことは簡単で且つ効率的であり、効率的な投機的タスク実行を可能とする。
【００３３】
タスク間の通信及び同期は、主に、ユニバーサルレジスタファイル１０５を介して達成される。長期データを共用するための共用グローバルメモリも存在することが可能であり、従ってグローバルメモリに関してのテスト・アンド・セット等のボトルネック操作は必要ではない。簡単なハードウエアを基礎としたタスクスケジューリングが制御プロセッサ及びタスクディスパッチャーが短期間のタスクのスケジューリングについての自立性の度合い、アーキテクチャの異なる実施例の条件を受付けるのに必要な調節を変化させることを可能とする。
【００３４】
マイクロアーキテクチャ２００に対する命令セットはタスクを効率的に稼動するのに必要な最小のものとすべきであり、それは、タスクスケジューリング、アップデート、サスペンド、タスクのスコッシング又は再開始、分岐点及びその他の制御動作、ユニバーサルレジスタファイルアクセス、マルチスレッディング及び条件付き命令に対する特別の命令を包含する場合がある。ユニバーサルレジスタファイルと対構成とされた場合に、タスクレベルプログラムセグメント割当ては制御プロセッサに関し効率的に稼動させることが可能である。
【００３５】
簡単性に加えて（命令の数を最小に維持）、命令はデコーディングを容易なものとさせるために可及的に通常のものとすべきである。
【００３６】
応用特定システムをハイパープロセッサプラットフォームアーキテクチャを使用して容易に例示化させることが可能であり、該アーキテクチャはタスク間の同期及び通信と共に、プログラムの流れの制御を与えるための構成、即ち制御プロセッサのコンポーネント、ユニバーサルレジスタファイル、及びタスクディスパッチャーを与える。従って、応用特定システムの例示化は、ＳＰＰＵの適宜の数及び混合物を選択することにより、且つ形態特定可能な制御プロセッサ、ユニバーサルレジスタファイル、ディスパッチャーをスケーリングすることにより実施される。
【００３７】
本発明のハイパープロセッサアーキテクチャは多様性があり且つスケーラブルであり、グラフィックスサブシステム、フォームゲートウエイ、エッジ／コアルーター、ウエブスイッチ等のアプリケーション内に挿入させることが可能である。ハイパープロセッサはＡＳＩＣと関連する高性能をプロセッサのプログラム可能性と結合させ、そのプログラム可能性をコンフィギュレーションアプリケーション開発者にとって親密なものとさせることにより新たなレベルへ拡張させる。ハイパープロセッサプラットフォームは、アプリケーション及び性能条件の多数の組合わせを受付けるために製品のファミリーを開発することを可能とする。例えば、ＳＰＰＵの数を変えること、特別ハードウエアユニットを付加／除去すること、又はユニバーサルレジスタファイルの寸法を変化させることは全て簡単である。ビルディングブロックは変化するが、ハードウエア及びソフトウエアアーキテクチャは同じままである。
【００３８】
本ハイパープロセッサは設計空間探査を高速且つ効率的なものとさせる態様で異種計算器要素の能力を利用するためのプラットフォームを提供し、且つオンチップ相互接続体、専用プロセッサ、制御プロセッサを包含する幾つかの重要なブロックを提供する。本ハイパープロセッサは、又、プログラム及びデバッグが容易であるスケーラブルなシステム・オン・チップ（ＳｏＣ）プラットフォームアーキテクチャを提供しており、増加させた並列性オプション、順番外及び投機的タスク実行、及びプログラムメモリ分布の全てが性能を改善するためにアプリケーションに対して使用可能である。
【００３９】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【００４０】
【図１】本発明の１実施例に基づくハイパープロセッサに対するマクロ及びマイクロアーキテクチャの概略図。
【図２】本発明の１実施例に基づくハイパープロセッサにおいて使用する例示的な制御プロセッサマイクロアーキテクチャを示した概略図。
【符号の説明】
【００４１】
１００  ハイパープロセッサ
１０１  マクロアーキテクチャ
１０２  制御プロセッサ
１０３  タスクディスパッチャー
１０４  特別目的処理ユニット（ＳＰＰＵ）
１０５  ユニバーサルレジスタファイル
１０６  スーパースカラーマイクロプロセッサ
１０７  命令ストア
１０８  フェッチ／デコードユニット
１０９  実行ユニット
１１０  汎用レジスタファイル
【図１】
2004152305.tif 000004
【図２】
2004152305.tif 000005