(57)【要約】【課題】  アクティブ及び非アクティブ実行コアを有するマルチコアプロセッサを提供する。【解決手段】  一実施形態に係る装置は、複数の実行コアを単一の集積回路に備えるプロセッサ、及び複数のコア識別レジスタであって、各々のコア識別レジスタが前記複数の実行コアの１つに対応し、前記複数の実行コアの前記対応する１つがアクティブか否かを識別する、複数のコア識別レジスタを有する。【選択図】図１
2006260568.tif 000002
【特許請求の範囲】
【請求項１】
複数の実行コアを単一の集積回路に備えるプロセッサ；及び
複数のコア識別レジスタであって、各々のコア識別レジスタが前記複数の実行コアの１つに対応し、前記複数の実行コアの前記対応する１つがアクティブか否かを識別する、複数のコア識別レジスタ；
を有する装置。
【請求項２】
請求項１に記載の装置であって、前記複数の実行コアが複数の相等しい実行コアである、ところの装置。
【請求項３】
請求項１に記載の装置であって、前記複数の実行コアの１つが非アクティブに設定される、ところの装置。
【請求項４】
請求項３に記載の装置であって、前記プロセッサによって実行されるとき前記複数の実行コアの１つをアクティブに再設定する命令を記憶するための不揮発性メモリーをさらに有する装置。
【請求項５】
請求項１に記載の装置であって、前記複数のコア識別レジスタの第１の１つが前記複数の実行コアの第１の１つを非アクティブからアクティブにプログラム可能である、ところの装置。
【請求項６】
請求項５に記載の装置であって、前記複数のコア識別レジスタの第２の１つが前記複数の実行コアの第２の１つをアクティブから非アクティブにプログラム可能である、ところの装置。
【請求項７】
マルチコアプロセッサの予備のコアがアクティブにされるべきことを決定する工程；及び
前記予備のコアをアクティブにするように前記マルチコアプロセッサを設定する工程；
を有する方法。
【請求項８】
請求項７に記載の方法であって、前記予備のコアがアクティブにされるべきことを決定する工程が、マルチコアプロセッサのアクティブコアが置換されるべきことを決定することを有する、ところの方法。
【請求項９】
請求項８に記載の方法であって、前記アクティブコアを非アクティブにするように前記マルチコアプロセッサを設定する工程をさらに有する方法。
【請求項１０】
請求項９に記載の方法であって、前記アクティブコアを不良品としてラベリングする工程をさらに有する方法。
【請求項１１】
請求項９に記載の方法であって、前記アクティブコアの状態を保存する工程をさらに有する方法。
【請求項１２】
請求項１１に記載の方法であって、前記アクティブコアの状態を前記予備のコアにロードする工程をさらに有する方法。
【請求項１３】
請求項７に記載の方法であって、前記予備のコアがアクティブにされるべきことを決定する工程が、マルチコアプロセッサのアクティブコアが前記予備のコアとロックステップで実行することを決定することを有する、ところの方法。
【請求項１４】
請求項１３に記載の方法であって、前記予備のコアをアクティブにするように前記マルチコアプロセッサを設定する工程が、前記アクティブコア及び前記予備のコアをロックステップで実行するように設定することを有する、ところの方法。
【請求項１５】
請求項７に記載の方法であって、前記予備のコアをアクティブにするように前記マルチコアプロセッサを設定する工程が、前記予備のコアに対応するコア識別レジスタの内容を変更することを有する、ところの方法。
【請求項１６】
第１のプログラムをマルチコアプロセッサの第１のコア上で実行するように予定を決める工程；
前記第１のプログラムを前記第１のコア上で実行する工程；
前記第１のコアの識別表示を第２のコアにマッピングするようにマルチコアプロセッサを再設定する工程；
第２のプログラムをマルチコアプロセッサの前記第１のコア上で実行するように予定を決める工程；及び
前記第２のプログラムを前記第２のコア上で実行する工程；
を有する方法。
【請求項１７】
請求項１６に記載の方法であって、前記第１のコアの識別表示を第２のコアにマッピングするようにマルチコアプロセッサを再設定する工程が、前記第２のコアに対応するコア識別レジスタの内容を変更することを有する、ところの方法。
【請求項１８】
請求項１６に記載の方法であって、前記第１のコアが置換されるべきことを決定する工程をさらに有する方法。
【請求項１９】
請求項１８に記載の方法であって、前記第１のコアが置換されるべきことを決定する工程が、前記第１のプログラムの実行においてエラーを検出することを有する、ところの方法。
【請求項２０】
ダイナミックＲＡＭ；
複数の実行コアを単一の集積回路に備えるプロセッサ；及び
複数のコア識別レジスタであって、各々のコア識別レジスタが前記複数の実行コアの１つに対応し、前記複数の実行コアの前記対応する１つがアクティブか否かを識別する、複数のコア識別レジスタ；
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理分野、特に、データ処理装置の冗長性の分野に関する。
【背景技術】
【０００２】
一般に、データ処理装置の冗長性は耐障害性、信頼性及び製造歩留まりを改善するために用いられてきた。コンピュータは、ハードウェア障害の場合であってもデータロスが起こらないように、データ記憶ディスク等の冗長な要素とともに構築されてきた。また、コンピュータはプロセッサチップ等の冗長な要素とともに構築されてきた。それは、使用中に故障した要素の自動置換を実現するため、或いは命令を“ロックステップ”で実行すること、すなわち命令を重複して実行すること、により誤り検出を実現するためである。メモリー等の配列状に配置される回路を含むコンピュータチップは、製造上の欠陥を有する列、又は使用の結果として機能しなくなった列を置換するために用いられ得る冗長な列とともに構築されてきた。しかしながら、プロセッサチップ内で冗長性を用いることは、プロセッサのトランジスタ配置の高密度で不規則な性質によって制限されてきた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、アクティブ実行コア及び非アクティブ実行コアを有するマルチコアプロセッサを提供することである。
【課題を解決するための手段】
【０００４】
一実施形態に係る装置は、複数の実行コアを単一の集積回路に備えるプロセッサ、及び
複数のコア識別レジスタであって、各々のコア識別レジスタが前記複数の実行コアの１つに対応し、前記複数の実行コアの前記対応する１つがアクティブか否かを識別する、複数のコア識別レジスタを有する。
【発明を実施するための最良の形態】
【０００５】
以下、アクティブ及び非アクティブ実行コアを有するマルチコアプロセッサを含むデータ処理装置、方法、及びシステムの実施形態について述べる。以下の記載では、発明のより完全な理解のため、構成要素及びシステム構成等の多くの具体的詳細事項が説明される。しかしながら、本発明がこのような具体的詳細事項をなくしても実行可能であることは当業者に認識されるであろう。さらに、幾つかの周知の構造、回路、技術及びそれらに類するものについては、不必要に本発明を不明瞭としないために省略することとする。
【０００６】
図１は本発明の実施形態に従ったマルチコアプロセッサ100を例示している。通常、マルチコアプロセッサは１より多い実行コアを有する単一の集積回路である。１つの実行コアは実行命令の論理を有する。マルチコアプロセッサは本発明の範囲内で、実行コアに加えて専用資源又は共有資源の任意の組み合わせを有してもよい。専用資源は、専用１次キャッシュ等の単一のコアに専用の資源でもよいし、コアの任意のサブセットに専用の資源であってもよい。共有資源は、共有２次キャッシュ、又はマルチコアプロセッサと他の構成要素との間のインターフェースを支援する共有外部バスユニット等の、全コアに共有される資源でもよいし、コアの任意のサブセットに共有される資源でもよい。
【０００７】
マルチコアプロセッサ100は５つの実行コア110、120、130、140及び150、並びに５つのコア識別（ＩＤ）レジスタ111、121、131、141及び151を有する。マルチコアプロセッサ100はまた、キャッシュ160及び外部バスユニット170を有し、これらは内部バス180を介してコア110、120、130、140及び150に共有される。
【０００８】
実行コア110、120、130、140及び150は相等しく設計される。各々はマルチコアプロセッサ100に適合する命令を独立して実行することが可能である。しかし本実施形態では、マルチコアプロセッサ100は３つのみの実行コアを備えるシステム環境に向けて設計されている。マルチコアプロセッサ100の５つの実行コアの２つは、後述されるように、耐障害性、信頼性、製造歩留まり又はその他のパラメータを改善するために備えられている。故に、コア識別レジスタ111、121、131、141及び151はコア110、120、130、140及び150の何れがアクティブであるかを識別し得る。
【０００９】
例えば、システム環境でマルチコアプロセッサ100内に備えられることが期待される３つの実行コアが、残りのチップ、その他のハードウェア又はソフトウェアによってアドレス“0”、“1”及び“2”を有する実行コアとして識別可能な実施形態において、コアアドレス“0”がコア識別レジスタ111に記憶され、コアアドレス“1”がコア識別レジスタ121に記憶され、そしてコアアドレス“2”がコア識別レジスタ141に記憶され得る。故に、この場合には、コア識別レジスタ111はコア110をアクティブとして識別し、コア識別レジスタ121はコア120をアクティブとして識別し、そしてコア識別レジスタ141はコア140をアクティブとして識別する。コア識別レジスタ111、121、131、141及び151は、コアアドレス“0”、コアアドレス“1”及びコアアドレス“2”の各々が任意のコア識別レジスタに記憶され得るようにプログラム可能である。こうして、マルチコアプロセッサ100の５つのコアの各々及び任意のものがアクティブコアとして識別され得る。アクティブでないコアは、デフォルト設定により非アクティブとして識別され得る、或いはその代わりに、対応するコア識別レジスタの“ダミー”値によって非アクティブとして識別され得る。
【００１０】
他の例として、システム上でマルチコアプロセッサ100を用いて作動するように設計された、オペレーションシステム（“ＯＳ”）又は仮想計算機モニター（“ＶＭＭ”）等のソフトウェアがプログラム若しくは命令を起動する予定を決めること、又は、計算機若しくはその内部のモデルスペシフィックレジスタ（“ＭＳＲ”）にアクセスすることが可能な実施形態における、コアを識別するパラメータ、オペランド又はアドレスを含む命令又はコマンドを備える特定のコアである。その場合、そのパラメータ又はオペランドに対応する情報が特定のコアのコア識別レジスタに記憶され、それによってそのコアをアクティブとして識別し得る。これに代わる実施形態では、ソフトウェアと実行コアとの間に、マイクロコード又はプロセッサアブストラクションレイヤー（“ＰＡＬ”）等の、不揮発性メモリーに記憶されたファームウェア又はその他コードのレイヤーが存在してもよい。それらは、コアを識別するパラメータ、オペランド又はアドレスを、アクティブコアのコア識別レジスタに記憶された情報に対応する他のパラメータ、オペランド又はアドレスに言い換え又はマッピングする。さらにこれに代わる実施形態において、ソフトウェアが特定コアの予定を決めること又はそのコアにアクセスすることができない場合には、代わりにＰＡＬが特定コアの予定決め、設定及びその他のアクセスを、それらのコア識別レジスタの内容に基づいてアクティブコアにアドレスすることにより実行し得る。
【００１１】
他の実施形態において、ソフトウェア、ＰＡＬ、又はその他のファームウェアによる特定コアへのアクセス性の共有又は分割の任意の組み合わせがあり得る。例えば、ＭＳＲ内の特有のビットがコアをＯＳ又はＰＡＬに確認してもよいが、プログラム可能設定レジスタの書き込み又は読み取りによってＰＡＬがＭＳＲアドレスを異なるコアにマッピング又は言い換えを行ってもよい。図１の実施形態において、コア130内のＭＳＲの内容はコア130をそのダイ上の位置に基づいてコア130として識別し、コア140内のＭＳＲの内容はコア140をコア140として同様に識別する。しかしながら、コアアドレス130へのアクセスをコア140へのアクセスに再配置するように、ＰＡＬが設定レジスタ、この場合コア識別レジスタ131をプログラムしてもよい。これにより、ＰＡＬによって、その後のコア130へアドレスする命令がコア130の代わりにコア140へアクセスする命令に言い換えられる結果となる。このようにして、コア130は非アクティブコアとして識別され、コア140はアクティブコアとして識別される。
【００１２】
先述の各々の実施形態において、アクティブコアとは少なくともある特定の時点に命令を実行している或いは実行するために利用可能なコアであり、非アクティブ、すなわち予備の、すなわち冗長なコアとは、ある特定の時点に命令を実行していない或いは実行するために利用可能でないコアである。アクティブコアは対応するコア識別レジスタの内容に基づいて、非アクティブコアと区別可能であり、或いは、命令を実行するために利用可能にされる。
【００１３】
図１の実施形態では、コア識別レジスタ111、121、131、141及び151はプログラム可能である。故に、ＰＡＬ又は他のファームウェアが、１以上のコア識別レジスタの内容を変更することによってマルチコアプロセッサ100を再設定する。この再設定は本発明の範囲内で、如何なるときにも、すなわちマルチコアプロセッサ100が販売され或いはシステムに組み込まれる前後に拘わらず、為され得る。もし、再設定がプログラム又はプロセスが起動されている最中のアクティブコアを含む場合には、ＰＡＬは古いアクティブコアから新しいアクティブコアへとコンテキストスイッチをエミュレートしてもよい。あるいは、ＰＡＬは古いアクティブコアから新しいアクティブコアへとコンテキストスイッチを実行するようにＯＳに要求してもよい。
【００１４】
マルチコアプロセッサ100において、実行コアを非アクティブからアクティブに再設定すること及び同様に逆に再設定することは、単独又は組み合わせで実現され得る多数の利点をもたらし、マルチコアプロセッサ100を多数のアプリケーションに望ましいものにし得る。
【００１５】
第１にマルチコアプロセッサ100の製造業者は、製造上の欠陥に対して各々のコアを検査し、不具合のある如何なるコアをも非アクティブとして構成することにより、製造歩留まりを改善し得る。ＰＡＬにアクセス可能なオンパッケージのフラッシュメモリー等の不揮発性メモリーが、何れのコアが動作しないかどうかを示す状態ビットを記憶するために使用され得る。不揮発性メモリーは本発明の範囲内のＰＡＬを含むことも含まないこともあり得る。ダイ当たりのトランジスタ総数が増加し、単一のダイ上に置かれるコア、キャッシュ、及びその他の資源をより多く許容するにつれて、この利点はますます有益となる。非アクティブコアを追加することの相対コストは減少し、増大するトランジスタ密度及びダイサイズから見込まれる製造歩留まり低下を相殺するために用いられ得る。
【００１６】
第２に、マルチコアプロセッサ100で構築されたシステムの信頼性、可用性及び有用性が向上され得る。この向上は、現場で不良となるアクティブコアを動作する非アクティブコアで自動的に置換するように整えることにより為される。コアの不良、又はコア不良が差し迫っていることを示す高い誤り率を自動的に検査する、或いはその報告を受け、かつ、不良が検出又は予測される場合にマルチコアプロセッサ100を自動的に再設定するＰＡＬ又はその他のファームウェアを用いることによって、この置換はユーザに見える形で為されてもよい。マルチコアプロセッサ100の製造業者は、製造業者が初期不良を減少させるために実施する“通電試験（バーンイン）”工程の時間、温度、電圧又はその他のストレスを軽減するために、この利点を利用し得る。このようなバーンインにおける軽減は、トランジスタの大きさ及び動作電圧が現場における製品寿命を有意に縮めない程度まで減少するにつれて有益となる。
【００１７】
第３に、マルチコアプロセッサの販売業者は、アプリケーション毎に異なる数のコアをアクティブにすることによって、単一部品から製品ラインアップを構築し得る。例えば、製品ラインアップは３つのアクティブコアを備える高価な高性能版のマルチコアプロセッサ100、及び、１つのアクティブコアを備える安価な低性能版を含み得る。
【００１８】
第４に、マルチコアプロセッサ100で構築されたシステムは、アクティブにさせるコア数をユーザに動的に選択させることによって“要求に応じた能力”に対応し得る。例えば、顧客の追加コアの購入に、暗号化されたＰＡＬ構成ファイルをシステムに送信することによって対応し得る。
【００１９】
第５に、マルチコアプロセッサ100へのＰＡＬコードは、任意の公知技術に従ってロックステップで動作する２つのコアを構成してもよい。ロックステップのコードの極めて重要な部分を選択的に実行するために利用可能な非アクティブコアを有することは、耐障害性の改善をもたらし得る。このように選択的に実行するとき、ロックステップでコードを連続して実行する場合にパワー及び性能にもたらされる影響と比較して、小さな影響しか及ぼさない。
【００２０】
第６に、マルチコアプロセッサ100がサーバシステムで用いられるとき、非アクティブコアはサービスプロセッサとしてアクティブにして用い得る。このサービスプロセッサは、システム動作を監視し、並びに、起動、初期化、検査、エラー、再設定、システムのパーティション設定及びユーザ間での資源の割り振りを扱うためのサービス管理を行い得る。マルチコアプロセッサ100の予備のコアの１つを使用することにより、別個のチップ上の追加プロセッサを用いるときと比較して、アクティブコア、及びマルチコアプロセッサ100のその他資源の動作への、より大きな視認性がもたらされる。
【００２１】
これらの利点及びアプリケーション、又は如何なる他の利点、アプリケーション若しくは要因が、本発明の実施形態におけるアクティブコア及び非アクティブコアの数を選択するために考慮されてもよい。図１の実施形態は３つのアクティブコア及び２つの非アクティブコアを有しているものの、任意の数のコア、任意の数のアクティブコア、及び任意の数の非アクティブコアが本発明の範囲内で可能である。例えば、他の実施形態は８つのアクティブコア及び１つの非アクティブコアを有する。
【００２２】
さらに、本発明の実施形態は冗長で、非アクティブな、又は選択的若しくは動的にアクティブな回路若しくは特徴に関連する公知技術を含んでもよい。例えば、ある実施形態では、非アクティブコアへのクロック又は電力をゲートでオフにするために公知の電力管理技術が用いられてもよい。
【００２３】
図２は本発明の実施形態に従って予備のコアをアクティブにするようにマルチコアプロセッサを再設定することを含む方法を例示している。ブロック210にて、マルチコアプロセッサの実行コアの機能性を検査するテストルーチンが初期化される。テストルーチンは、マルチコアプロセッサ内の若しくはマルチコアプロセッサにアクセス可能な、テスターメモリー、ＰＡＬ若しくはマイクロコード等の不揮発性メモリー、又は任意の他のメモリーからロードされてもよいし、起動されてもよい。ブロック211にて、第１の実行コアの不良が検出される。ブロック212にて、第１の実行コアが不良であることを示すために、ある値が不揮発性メモリーに書き込まれる。ブロック213にてテストルーチンが終了する。
【００２４】
ブロック220にて、マルチコアプロセッサのアクティブ及び非アクティブコアを設定するために設定ルーチンが開始される。設定ルーチンはマルチコアプロセッサに適合するＰＡＬ、ＯＳ、又はその他のファームウェア若しくはソフトウェアのルーチンであってもよい。ブロック221にて、第１のコアが不良であることを決定するために不揮発性メモリーが読み取られる。ブロック222にて、第１の実行コアが非アクティブに設定される。例えば非アクティブコアのアドレスに対応する値を第１のコア識別レジスタに書き込むことによって、ブロック222は実行される。ブロック223にて、第２の実行コアがアクティブに設定される。例えばアクティブコアのアドレスに対応する値を第２のコア識別レジスタに書き込むことによって、ブロック223が実行される。ブロック224にて、第３の実行コアが非アクティブに設定される。例えば、非アクティブコアのアドレスに対応する値を第３のコア識別レジスタに書き込むことによって、ブロック224は実行される。ブロック225にて設定ルーチンが終了する。
【００２５】
ブロック230にて、アクセスがマルチコアプロセッサのアクティブコアに対して初期化される。ここで、アクセスとは、ＯＳ、ＶＭＭ、ＰＡＬ又は任意の他のソフトウェア若しくはファームウェアにより実行されるプログラム若しくはプロセス、ＭＳＲの読み取り若しくは書き込み、又は任意の他の型のアクセスの予定を決めることである。ブロック231にて、アクセスが第２のコアに命令される。ブロック231は、例えば、第２のコア識別レジスタの内容に従って第２のコアをアドレスすることによって果たされる。ブロック232にて、例えば、第２のコアに予定が決められたプログラムを第２のコア上で実行することによって、アクセスが完了する。
【００２６】
ブロック240にて、ＯＳ、ＶＭＭ、ＰＡＬ又は他のソフトウェア若しくはファームウェアが、マルチコアプロセッサ上で実行されるべき命令がロックステップで実行されることを要求又は決定する。ブロック241にて、第３の実行コアがアクティブに設定される。例えば、アクティブコアのアドレスに対応する値を第３のコア識別レジスタに書き込むＰＡＬ又は他のファームウェアによって、ブロック241が実行される。ブロック242にて、マルチコアプロセッサが第２及び第３の実行コアをロックステップで起動するように設定される。ブロック243にて、命令が第２及び第３の実行コアにてロックステップで起動される。ブロック244にて、第３の実行コアが非アクティブに設定される。例えば、非アクティブコアのアドレスに対応する値を第３のコア識別レジスタに書き込むＰＡＬ又は他のファームウェアによって、ブロック244が実行される。
【００２７】
ブロック250にて、プログラム又はプロセスが第２のコアで初期化される。このプログラム又はプロセスは、マルチコアプロセッサ上で起動されるように設計された、コアの機能性をテストするＰＡＬテストルーチンを含む任意のプログラム又はプロセスである。ブロック251にて、プログラム又はプロセスにエラーが発生する。ブロック252にて、エラーがＰＡＬ又は他のファームウェアに報告される。
【００２８】
ブロック260にて、ＰＡＬ又は他のファームウェアが第３のコアがアクティブにされるべきことを決定する。この決定はブロック252のように第２のコアでのエラー報告を受信したＰＡＬ、第２のコアでのエラー報告の度合いを監視するＰＡＬ、第２コアでの過渡的エラー数が所定の閾値を超えたことを決定するＰＡＬ、第２のコアでのエラー若しくは閾値を超えるエラーをその他の方法で検出するＰＡＬ、第２のコア若しくは他の任意のアクティブコアが非アクティブにされるべきことを決定する任意のハードウェア、ファームウェア、ソフトウェア、若しくはユーザ、追加のコアがアクティブにされるべきことを決定する任意のハードウェア、ファームウェア、ソフトウェア、若しくはユーザ、又はその他の任意の要因に基づく。ブロック261にて、第２の実行コアで起動している如何なるプログラム、プロセス又は命令ストリームもが停止され、第２の実行コアの状態が抽出されてメモリーに保存され、かつ、第２の実行コアが非アクティブに設定される。ブロック261は、例えば、ＰＡＬ又は他のファームウェアによって非アクティブコアのアドレスに対応する値を第２のコア識別レジスタに書き込むことを含んでもよいし、第２の実行コアが不良であることの表示を不揮発性メモリーに記憶することを含んでもよい。ブロック262にて、第３の実行コアがアクティブに設定される。ブロック262は、例えば、ＰＡＬ又は他のファームウェアによってアクティブコアのアドレスに対応する値を第３のコア識別レジスタに書き込むことを含んでもよい。例えば、ブロック262にて第３のコア識別レジスタに書き込まれる値は、ブロック223にて第２のコア識別レジスタに書き込まれた値と同一でもよい。言い換えれば、或いは任意の他の手法では、第３の実行コアはそれまで第２の実行コアに関連していた識別性が与えられる。その代わりに、第３のコア識別レジスタに書き込まれる値は、第２のコアのアドレスに関連していた値以外の任意の他の値、又は、アクティブコアに関連する任意の他の値でもよい。ブロック262はまた、保存された状態を第２の実行コアから第３の実行コアにロードすることを含んでもよい。
【００２９】
ブロック270にて、アクセスはマルチコアプロセッサのアクティブコアに初期化される。アクセスとは、ＯＳ、ＶＭＭ、ＰＡＬ又は任意の他のソフトウェア若しくはファームウェアにより実行されるプログラム若しくはプロセス、ＭＳＲの読み取り若しくは書き込み、又は任意の他の型のアクセスの予定を決めることである。特に、アクセスは、ブロック230で予定が決められたコアと同じコアでプログラムを実行する予定を決めるＯＳ、ブロック230でアクセスされたコアと同じＭＳＲにアクセスするＰＡＬ、又はブロック230と同じコアへの他の任意のアクセス等の、ブロック230でのアクセスと同一のものでもよい。代わりの方法として、アクセスは特定コアの識別性を参照することを含まなくてもよい。ブロック271にて、アクセスは第３のコアに向けられる。ブロック271は、例えば、第３のコア識別レジスタの内容に従って第３のコアをアドレスすることによって実行される。あるいは、又は共同して、ＰＡＬ又は他のファームウェアが、第２のコア識別レジスタの内容を読み取ること、第２のコアが非アクティブであることを決定すること、アクセスに関連するアドレスを第２のコアから第３のコアに変換すること、第３のコアへのアクセスを再マッピングすること、又は、これらの処置の任意の組み合わせによって、ブロック271は実行されてもよい。ブロック272にて、例えば、第２のコアに向けて予定を決められたプログラムを第３のコアで実行することによって、アクセスが完了する。
【００３０】
本発明の範囲内で、図２に例示された方法は、異なる順番で、例示された工程を省略して、追加工程を付加して、あるいは再順序付け、省略若しくは追加の工程を組み合わせて実行され得る。
【００３１】
図３は本発明の実施形態に従ったアクティブ及び非アクティブコアを有するマルチコアプロセッサ100を含むシステム300を例示している。システム300はまた、バス若しくはバス群を介して、メモリー制御器若しくはシステム論理等の任意の他の構成要素を介して、又は直接接続、バス群若しくは構成要素の任意の組み合わせを介して、マルチコアプロセッサ100と直接結合し得る不揮発性メモリー310及びシステムメモリー320を有する。
【００３２】
不揮発性メモリー310は、半導体を基礎とするプログラム可能読み出し専用メモリー又はフラッシュメモリー等の任意の形式の不揮発性又は持続性記憶装置でよい。不揮発性メモリーは、システム300の電源が入っていない期間にも保存されるべきＰＡＬ、実行コアが不良か否かを示す状態レジスタ、及び任意の他の命令若しくは情報を記憶するために用いられ得る。
【００３３】
システムメモリー320は、スタティック若しくはダイナミックなランダムアクセスメモリー（ＲＡＭ）又は磁気式若しくは光学式のディスクメモリー等の任意の形式の記憶装置でよい。システムメモリー320は、マルチコアプロセッサ100によって実行されるべき命令若しくは操作されるべきデータ、又は、ＯＳのソフトウェア、アプリケーションソフトウェア若しくはユーザデータ等の任意の形態のこのような情報を記憶するために用いられ得る。
【００３４】
システム300はまた、プロセッサ100、不揮発性メモリー310及びシステムメモリー320に加えて、周辺バス等の任意のその他のバス群、又は入力／出力デバイス等の構成要素を有してもよい。
【００３５】
本発明の実施形態に従って設計されたプロセッサ100、又は任意のその他の構成要素若しくは構成要素の部分は、シミュレーションのための創作から製造まで様々な段階で設計され得る。設計を表すデータは多数の方法でその設計を表し得る。先ず、シミュレーションで便利なように、ハードウェアはハードウェア記述言語又は他の機能的記述言語を用いて表されてもよい。加えて、又は代わりに、論理及び／又はトランジスタゲートを用いた回路レベルのモデルが設計過程のある段階で作成されてもよい。さらに、ある段階において、大抵の設計が様々なデバイスの物理配置を表すデータでモデル化され得る水準に達する。従来からの半導体製造技術が用いられる場合、デバイス配置モデルを表すデータは、集積回路を作成するためのマスクの異なるマスクレイヤー上に、様々な特徴部が存在すること又は存在しないことを特定するデータであってもよい。
【００３６】
如何なる設計表現であっても、データは機械読み取り可能媒体の任意の形態で記憶され得る。そのような情報を伝達するために変調され、或いはその他の方法で生成された光学的若しくは電気的な波形、メモリー、又はディスク等の磁気式若しくは光学式の記憶媒体は機械読み取り可能媒体であり得る。これらの媒体の如何なるものも設計、又はエラー修復ルーチンにおける命令等の本発明の実施形態において用いられるその他の情報を運び得るし、指し示し得る。情報を指し示している或いは運んでいる電気的搬送波が伝達されるとき、その電気信号の複製、バッファリング、再伝達が実行される範囲において、新しい複製が作成される。故に、通信プロバイダー又はネットワークプロバイダーの行為は、例えば搬送波等の物件の複製を作成する行為であり、本発明に係る技術を具現化する行為である。
【００３７】
このように、アクティブ実行コア及び非アクティブ実行コアを有するマルチコアプロセッサが開示された。ここでは、ある特定の実施形態が記述され、添付の図面に示されてきたが、これらの実施形態は本発明の範囲を単に例示するものであり、限定するものでない。また、この開示を受けた当業者には様々な変形が思い付くものであり、本発明は示され記述された具体的な構造及び配置に限定されるものではない。このような成長が早く、さらなる進歩が容易に予見できない技術分野においては、開示された実施形態は、ここで開示された原理又は添付の請求項の範囲を逸脱することなく、可能となる技術進歩によって促進されるように、容易に配置及び詳細の変更が可能である。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施形態に従ったアクティブ及び非アクティブ実行コアを有するマルチコアプロセッサを例示する図である。
【図２】本発明の実施形態に従って予備のコアをアクティブにするようにマルチコアプロセッサを再設定することを含む方法を例示する図である。
【図３】本発明の実施形態に従ったアクティブ及び非アクティブ実行コアを有するマルチコアプロセッサを有するシステムを例示する図である。
【符号の説明】
【００３９】
100  マルチコアプロセッサ
110、120、130、140、150  実行コア
111、121、131、141、151  コア識別レジスタ
160  キャッシュ
170  外部バスユニット
180  内部バス
300  システム
310  不揮発性メモリー
320  システムメモリー
【図１】
2006260568.tif 000003
【図２】
2006260568.tif 000004
【図３】
2006260568.tif 000005
【外国語明細書】
2006260568000001.pdf
2006260568000002.pdf
2006260568000003.pdf
2006260568000004.pdf