(57)【要約】  デバイス・プログラマと、ストアと、複数のコアとを含む装置。デバイス・プログラマは、半導体ヒューズ・アレイを、チップ上に配置された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングする。ストアは、複数のコアのそれぞれにそれぞれが対応する複数のサブストアを有し、複数のコアのうちの１つは、電源投入／リセットが行われると、半導体ヒューズ・アレイにアクセスして、圧縮されたコンフィギュレーションデータを読み取り、伸長して、複数のコアのそれぞれの内部の１つ又は複数のキャッシュ・メモリのための複数の伸長されたコンフィギュレーションデータ・セットを複数のサブストアの中に記憶するように構成される。複数のコアはそれぞれ、複数のサブストアのそれぞれの対応する１つにその後、アクセスして、伸長されたコンフィギュレーションデータ・セットを取り出して、パワー・ゲーティング事象の後に１つ又は複数のキャッシュを初期設定するように使用するように構成されたスリープ・ロジックを有する。
2016526245.tif 000002
【特許請求の範囲】
【請求項１】
集積回路にコンフィギュレーションデータを供給するための装置であって、
チップ上に配置された半導体ヒューズ・アレイに結合され、前記半導体ヒューズ・アレイを、前記チップ上に配置された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングするように構成されたデバイス・プログラマと、
前記複数のコアに結合されたストアであって、前記ストアは、前記複数のコアのそれぞれにそれぞれが対応する複数のサブストアを備え、前記複数のコアのうちの何れかは、電源投入／リセットが行われると、前記半導体ヒューズ・アレイにアクセスし、前記圧縮されたコンフィギュレーションデータを読み取り非圧縮化し、前記複数のコアのそれぞれにおける１つ又は複数のキャッシュ・メモリのための複数の非圧縮化されたコンフィギュレーションデータ・セットを前記複数のサブストアに記憶するように構成されるストアと、
を備え、前記複数のコアはそれぞれ、
前記複数のサブストアの前記それぞれの対応するものにその後にアクセスし、前記非圧縮化されたコンフィギュレーションデータ・セットを取得及び使用して、パワー・ゲーティング事象の後に前記１つ又は複数のキャッシュを初期設定するように構成されたスリープ・ロジックを備える装置。
【請求項２】
前記複数のコアのうちの何れかにおけるキャッシュ・ヒューズ・デコンプレッサは、コンフィギュレーションデータ電源投入／リセット中にマイクロコードを実行することによって、前記圧縮されたコンフィギュレーションデータを非圧縮化する請求項１に記載の装置。
【請求項３】
前記非圧縮化されたコンフィギュレーションデータ・セットのそれぞれは、通常の動作中に使用されるべきでない前記１つ又は複数のキャッシュ・メモリのうちの何れかにおける１つ又は複数のサブユニット・ロケーションを示す第１の複数の半導体ヒューズを備える請求項１に記載の装置。
【請求項４】
前記非圧縮化されたコンフィギュレーションデータ・セットのそれぞれは、前記１つ又は複数のサブユニット・ロケーションのうちの対応するロケーションの代わりに通常の動作中に使用されるべき前記１つ又は複数のキャッシュ・メモリのうちの何れかにおける１つ又は複数の置換サブユニット・ロケーションを示す第２の複数の半導体ヒューズを更に備える請求項３に記載の装置。
【請求項５】
前記サブユニット・ロケーション及び前記置換サブユニット・ロケーションは、前記１つ又は複数のキャッシュ・メモリの何れかの内部に列と冗長な列とをそれぞれ備える請求項４に記載の装置。
【請求項６】
前記サブユニット・ロケーション及び前記置換サブユニット・ロケーションは、前記１つ又は複数のキャッシュ・メモリの何れかの内部に行と冗長な行とをそれぞれ備える請求項４に記載の装置。
【請求項７】
前記集積回路は、ｘ８６互換マルチコア・マイクロプロセッサを備える請求項１に記載の装置。
【請求項８】
集積回路デバイスにコンフィギュレーションデータを供給するための装置であって、
チップ上に配置された半導体ヒューズ・アレイに結合され、前記半導体ヒューズ・アレイを、前記チップ上に配置された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングするように構成されたデバイス・プログラマと、
マルチコア・マイクロプロセッサとを備え、前記マルチコア・マイクロプロセッサは、
前記チップ上に配置され、前記チップ上に配置される前記複数のコアのための前記圧縮されたコンフィギュレーションデータがプログラミングされた前記半導体ヒューズ・アレイであって、前記複数のコアは前記半導体ヒューズ・アレイに結合される、前記半導体ヒューズ・アレイと、
前記複数のコアに結合されたストアであって、前記複数のコアのそれぞれにそれぞれが対応する複数のサブストアを備え、前記複数のコアのうちの何れかは、電源投入／リセットが行われると、前記半導体ヒューズ・アレイにアクセスし、前記圧縮されたコンフィギュレーションデータを読み取り非圧縮化し、前記複数のコアのそれぞれにおける１つ又は複数のキャッシュ・メモリのための複数の非圧縮化されたコンフィギュレーションデータ・セットを前記複数のサブストアに記憶するように構成されるストアと、
前記複数のコアとを備え、前記複数のコアはそれぞれ、
前記複数のサブストアのそれぞれの対応するものにその後にアクセスし、前記非圧縮化されたコンフィギュレーションデータ・セットを取得及び使用して、パワー・ゲーティング事象の後に前記１つ又は複数のキャッシュを初期設定するように構成されたスリープ・ロジックを備える装置。
【請求項９】
前記複数のコアのうちの前記１つの内部の前記キャッシュ・ヒューズ・デコンプレッサは、コンフィギュレーションデータ電源投入／リセット中にマイクロコードを実行することによって、前記圧縮されたコンフィギュレーションデータを非圧縮化する請求項８に記載の装置。
【請求項１０】
前記非圧縮化されたコンフィギュレーションデータ・セットのそれぞれは、通常の動作中に使用されるべきでない前記１つ又は複数のキャッシュ・メモリのうちの何れかにおける１つ又は複数のサブユニット・ロケーションを示す第１の複数の半導体ヒューズを備える請求項８に記載の装置。
【請求項１１】
前記非圧縮化されたコンフィギュレーションデータ・セットのそれぞれは、前記１つ又は複数のサブユニット・ロケーションのうちの対応するロケーションの代わりに通常の動作中に使用されるべき前記１つ又は複数のキャッシュ・メモリのうちの何れかにおける１つ又は複数の置換サブユニット・ロケーションを示す第２の複数の半導体ヒューズを更に備える請求項１０に記載の装置。
【請求項１２】
前記サブユニット・ロケーション及び前記置換サブユニット・ロケーションは、前記１つ又は複数のキャッシュ・メモリの何れかの内部に列と冗長な列とをそれぞれ備える請求項１１に記載の装置。
【請求項１３】
前記サブユニット・ロケーション及び前記置換サブユニット・ロケーションは、前記１つ又は複数のキャッシュ・メモリの何れかの内部に行と冗長な行とをそれぞれ備える請求項１１に記載の装置。
【請求項１４】
前記マルチコア・マイクロプロセッサは、ｘ８６互換マルチコア・マイクロプロセッサを備える請求項８に記載の装置。
【請求項１５】
集積回路を構成するための方法であって、
半導体ヒューズ・アレイをチップ上に第１に配置するステップと、
デバイス・プログラマを介して、前記半導体ヒューズ・アレイを、前記チップ上に配置され、前記半導体ヒューズ・アレイに結合された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングするステップと、
ストアを前記チップ上に第２に配置するステップであって、前記ストアは、前記複数のコアのそれぞれにそれぞれが対応する複数のサブストアを備え、前記複数のコアのうちの何れかは、電源投入／リセットが行われると、前記半導体ヒューズ・アレイにアクセスし、前記圧縮されたコンフィギュレーションデータを読み取り非圧縮化し、前記複数のコアのそれぞれにおける１つ又は複数のキャッシュ・メモリのための複数の非圧縮化されたコンフィギュレーションデータ・セットを前記複数のサブストアに記憶するように構成される、ステップと、
前記複数のコアのそれぞれの内部のスリープ・ロジックを使用して、前記複数のサブストアのそれぞれの対応するものにアクセスし、前記非圧縮化されたコンフィギュレーションデータ・セットを取得及び使用して、パワー・ゲーティング事象の後に前記１つ又は複数のキャッシュを初期設定するステップとを備える方法。
【請求項１６】
前記複数のコアのうちの何れかにおけるキャッシュ・ヒューズ・デコンプレッサは、コンフィギュレーションデータ電源投入／リセット中にマイクロコードを実行することによって、前記圧縮されたコンフィギュレーションデータを非圧縮化する請求項１５に記載の方法。
【請求項１７】
前記非圧縮化されたコンフィギュレーションデータ・セットのそれぞれは、通常の動作中に使用されるべきでない前記１つ又は複数のキャッシュ・メモリのうちの何れかにおける１つ又は複数のサブユニット・ロケーションを示す第１の複数の半導体ヒューズを備える請求項１５に記載の方法。
【請求項１８】
前記非圧縮化されたコンフィギュレーションデータ・セットのそれぞれは、前記１つ又は複数のサブユニット・ロケーションのうちの対応するロケーションの代わりに通常の動作中に使用されるべき前記１つ又は複数のキャッシュ・メモリのうちの何れかにおける１つ又は複数の置換サブユニット・ロケーションを示す第２の複数の半導体ヒューズを更に備える請求項１７に記載の方法。
【請求項１９】
前記サブユニット・ロケーション及び前記置換サブユニット・ロケーションは、前記１つ又は複数のキャッシュ・メモリの何れかの内部に列と冗長な列とをそれぞれ備える請求項１８に記載の方法。
【請求項２０】
前記サブユニット・ロケーション及び前記置換サブユニット・ロケーションは、前記１つ又は複数のキャッシュ・メモリの何れかの内部に行と冗長な行とをそれぞれ備える請求項１８に記載の方法。
【請求項２１】
前記集積回路は、ｘ８６互換マルチコア・マイクロプロセッサを備える請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、以下の米国特許出願の継続出願であり、この米国特許出願の優先権利益を主張する。
【０００２】
【表１】
2016526245.tif 000003
【０００３】
本出願は、それぞれが本発明と同一の譲受人及び同一の発明者を有する、以下の同時係属の米国特許出願及びＰＣＴ特許出願と関係する。
【０００４】
【表２】
2016526245.tif 000004
【０００５】
本発明は、一般に、マイクロエレクトロニクス等の分野に関し、より詳細には、マルチコア・パワー・ゲーティング事象の後に続く圧縮されたキャッシュ修復データを復元するための装置及び方法に関する。
【背景技術】
【０００６】
集積デバイス技術は、過去４０年にわたって指数関数的に進歩している。より具体的にマイクロプロセッサ分野に関して、４ビット、単一命令、１０マイクロメートルのデバイスから始まり、半導体製造技術の進歩は、設計者が、アーキテクチャ及び密度の点でますます複雑なデバイスをもたらすことを可能にしてきた。８０年代及び９０年代、単一のチップ上に数百万のトランジスタを備える、いわゆるパイプライン・マイクロプロセッサ及びスパースカラー・マイクロプロセッサが開発された。２０年後の現在、単一のチップ上に数十億のトランジスタを有し、データの処理のために複数のマイクロプロセッサ・コアを備える６４ビット、３２ナノメートル・デバイスが製造されている。
【０００７】
これらの初期のマイクロプロセッサが製造されて以来、継続されてきた１つの要件が、これらのデバイスに電源が投入された際、又はこれらのデバイスがリセットされた際、これらのデバイスをコンフィギュレーションデータで初期設定する必要性である。たとえば、多くのアーキテクチャは、デバイスが、多くの選択可能な周波数及び／又は電圧のうちの１つで実行されるように構成されることを可能にし得る。他のアーキテクチャは、各デバイスが、命令の実行を介して読み取られ得る通し番号及びその他の情報を有することを要求する。更に他のデバイスは、内部レジスタ及び制御回路のための初期設定データを要求する。更に他のマイクロプロセッサ、特にオンボード・キャッシュ・メモリを有するマイクロプロセッサは、修復データを利用して、これらのメモリ内に冗長な回路を実装して製造誤差を補正する。
【０００８】
当業者には理解されるとおり、設計者は、従来、オンダイの半導体ヒューズ・アレイを使用して、初期コンフィギュレーションデータ及び修復データを記憶し、供給してきた。これらのヒューズ・アレイは、一般に、一部分が製造された後にアレイの中の選択されたヒューズをブローすること(blowing)によってプログラミングされ、それらのアレイは、動作のためにデバイスを初期設定して構成するように電源が投入され／リセットされると、対応するデバイスによって読み取られる数千ビットの情報を包含する。
【０００９】
デバイスの複雑度が、過去数年にわたって増大するにつれ、通常のデバイスに要求される構成／修復データの量もそれに比例して増大している。それでも、当業者には理解されるとおり、トランジスタ・サイズは、使用される半導体製造工程に比例して小さくなるものの、半導体ヒューズ・サイズは、オンダイのヒューズをプログラミングする独特の要件のため、増大する。この現象は、それ自体で、基板占有面積及び電力の配慮によって全般的に制約されている設計者にとって問題である。即ち、所与のチップ上に巨大なヒューズ・アレイを製造するだけの十分な基板占有面積が単に存在しない。
【００１０】
更に、単一のチップ上に複数のデバイス・コアを製造する能力は、それらのコアのそれぞれに関する構成要件が、チップ上に配置されたコアの数に比例する数の、オンダイのヒューズが、単一のアレイ、又は別々のアレイにおいて必要とされることをもたらすため、幾何学的に問題を悪化させてきた。
【００１１】
更に、当業者には理解されるとおり、マルチコア・デバイスは、コアのうちの１つ又は複数が、使用されていない際に、いわゆるパワー・ゲーティング事象（又は「スリープ・モード」）において電源を切られることをもたらす複雑な省電力動作モードを利用する。その結果、パワー・ゲーティング事象の後にコアに電源が投入されると、初期設定速度要件が非常に厳しくなることを除いて、初期設定、構成(設定)及び修復について同一の要件が存続する。
【００１２】
したがって、必要とされているのは、従来、提供されてきたものと比べて、単一のチップ上で要求する基板占有面積及び電力が大幅により小さい、構成／修復データが記憶され、マルチコア・デバイスに供給されることを可能にする装置及び方法である。
【００１３】
更に、必要とされているのは、同一の技法と比べて、大幅により多くの構成／修復データを記憶し、供給することができる一方で、マルチコア・チップ上で同一の、又はより小さい基板占有面積しか要求しないヒューズ・アレイ機構である。
【００１４】
更に、必要とされているのは、パワー・ゲーティング事象の後に続くマルチコア・デバイスの迅速な初期設定、構成、及び修復を円滑にする技法である。
【発明の概要】
【００１５】
本発明は、パワー・ゲーティング事象の後にコンフィギュレーションデータ(又は構成データ又は設定データ)を復元するためのより優れた技法を提供する。一態様において、装置が、集積回路にコンフィギュレーションデータを供給する。装置は、デバイス・プログラマと、ストアと、複数のコアとを含む。デバイス・プログラマは、チップ上に配置された半導体ヒューズ・アレイに結合され、その半導体ヒューズ・アレイを、チップ上に配置された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングするように構成される。ストアは、複数のコアに結合され、ストアは、複数のコアのそれぞれにそれぞれが対応する複数のサブストアを備え、複数のコアのうちの１つは、電源投入／リセットが行われると、半導体ヒューズ・アレイにアクセスして、圧縮されたコンフィギュレーションデータを読み取り、伸長して、複数のコアのそれぞれの内部の１つ又は複数のキャッシュ・メモリのための複数の伸長されたコンフィギュレーションデータ・セットを複数のサブストアの中に記憶するように構成される。複数のコアはそれぞれ、複数のサブストアのそれぞれの対応する１つにその後、アクセスして、伸長されたコンフィギュレーションデータ・セットを取り出して、パワー・ゲーティング事象の後に１つ又は複数のキャッシュを初期設定するように使用するように構成されたスリープ・ロジックを有する。
【００１６】
一態様において、装置が、集積回路デバイスにコンフィギュレーションデータを供給する。装置は、デバイス・プログラマと、マルチコア・マイクロプロセッサとを含む。デバイス・プログラマは、チップ上に配置された半導体ヒューズ・アレイに結合され、その半導体ヒューズ・アレイを、チップ上に配置された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングするように構成される。マルチコア・マイクロプロセッサは、半導体ヒューズ・アレイと、ストアと、複数のコアとを含む。半導体ヒューズ・アレイは、チップ上に配置され、複数のコアのための圧縮されたコンフィギュレーションデータがプログラミングされ、複数のコアは、チップ上に配置され、その半導体ヒューズ・アレイに結合される。ストアは、複数のコアに結合され、複数のコアのそれぞれにそれぞれが対応する複数のサブストアを含み、複数のコアのうちの１つは、電源投入／リセットが行われると、半導体ヒューズ・アレイにアクセスして、圧縮されたコンフィギュレーションデータを読み取り、伸長して、複数のコアのそれぞれの内部の１つ又は複数のキャッシュ・メモリのための複数の伸長されたコンフィギュレーションデータ・セットを複数のサブストアの中に記憶するように構成される。複数のコアはそれぞれ、複数のサブストアのそれぞれの対応する１つにその後、アクセスして、伸長されたコンフィギュレーションデータ・セットを取り出して、パワー・ゲーティング事象の後に１つ又は複数のキャッシュを初期設定するように使用するように構成されたスリープ・ロジックを含む。
【００１７】
別の態様において、集積回路を構成するための方法が提供される。この方法は、半導体ヒューズ・アレイをチップ上に第１に配置するステップ、デバイス・プログラマを介して、半導体ヒューズ・アレイを、チップ上に配置され、半導体ヒューズ・アレイに結合された複数のコアのための圧縮されたコンフィギュレーションデータでプログラミングするステップ、ストアをチップ上に第２に配置するステップであって、ストアは、複数のコアのそれぞれにそれぞれが対応する複数のサブストアを備え、複数のコアのうちの１つは、電源投入／リセットが行われると、半導体ヒューズ・アレイにアクセスして、圧縮されたコンフィギュレーションデータを読み取り、伸長して、複数のコアのそれぞれの内部の１つ又は複数のキャッシュ・メモリのための複数の伸長されたコンフィギュレーションデータ・セットを複数のサブストアの中に記憶するように構成される、ステップ、及び複数のコアのそれぞれの内部のスリープ・ロジックを使用して、複数のサブストアのそれぞれの対応する１つにアクセスして、伸長されたコンフィギュレーションデータ・セットを取り出し、パワー・ゲーティング事象の後に１つ又は複数のキャッシュを初期設定するように使用するステップを含む。
【００１８】
産業上の利用可能性に関して、本発明は、汎用コンピューティング・デバイス又は専用コンピューティング・デバイスにおいて使用され得るマイクロプロセッサ内で実施される。
【００１９】
本発明のこれら、及びその他の目的、特徴、及び利点は、後段の説明、及び添付の図面に関してよりよく理解されよう。
【図面の簡単な説明】
【００２０】
【図１】マイクロプロセッサ・コアにコンフィギュレーションデータを供給するためのヒューズ・アレイを含む今日のマイクロプロセッサ・コアを示すブロック図である。
【図２】ヒューズ・アレイ内の第１のヒューズ・バンクをブローした後にブローされ得る冗長なヒューズ・バンクを含む図１のマイクロプロセッサ・コア内のヒューズ・アレイを示すブロック図である。
【図３】マルチコア・デバイスのためのコンフィギュレーションデータの圧縮及び伸長を可能にする本発明によるシステムを特徴付けるブロック図である。
【図４】本発明によるヒューズ伸長機構を示すブロック図である。
【図５】本発明による圧縮されたコンフィギュレーションデータに関する例示的なフォーマットを示すブロック図である。
【図６】本発明による伸長されたマイクロコード・パッチコンフィギュレーションデータに関する例示的なフォーマットを示すブロック図である。
【図７】本発明による伸長されたマイクロコード・レジスタコンフィギュレーションデータに関する例示的なフォーマットを示すブロック図である。
【図８】本発明による伸長されたキャッシュ補正データに関する例示的なフォーマットを特徴付けるブロック図である。
【図９】本発明による伸長されたヒューズ補正データに関する例示的なフォーマットを示すブロック図である。
【図１０】本発明による伸長されたヒューズ補正データに関する代替の例示的なフォーマットを示すブロック図である。
【図１１】パワー・ゲーティング事象の後にキャッシュ修復データの迅速な復元を可能にする本発明によるマルチコア装置を示すブロック図である。
【発明を実施するための形態】
【００２１】
本発明の例示的で、説明的な実施形態が、以下に説明される。簡明にするため、実際の実施のすべての特徴を、本明細書で説明することはしない。というのは、いずれのそのような実際の実施形態の開発の際にも、実施ごとに異なる、システム関連の制約及びビジネス関連の制約の順守などの特定の目標を実現するように多数の実施特有の決定が行われることが、当業者には理解されるからである。更に、そのような開発の取組みは、複雑で、時間がかかる可能性があるが、それでも、本開示の利益を得る当業者には、定常的な作業であることが理解されよう。好ましい実施形態の様々な変形が、当業者には明白となり、本明細書で定義される一般的な原理は、他の実施形態に適用されることも可能である。したがって、本発明は、本明細書で示され、説明される特定の実施形態に限定されることは意図されず、本明細書で開示される原理及び新規の特徴と合致する最も広い範囲を与えられるべきものとする。
【００２２】
次に、本発明を、添付の図面を参照して説明する。様々な構造、システム、及びデバイスが、単に説明の目的で、本発明を、当業者にはよく知られている詳細で不明瞭にしないように図面に概略で示される。それでも、添付の図面は、本発明の説明的な例を表し、説明するように含められる。本明細書で使用される語及び句は、当業者によるそれらの語及び句の理解と合致する意味を有するように理解され、解釈されなければならない。用語又は句の特別な定義（即ち、当業者によって理解される通常の慣習的な意味と異なる定義）が、本明細書の用語又は句の一貫した用法によって暗示されることが意図されることはまったくない。用語又は句が特別な意味（即ち、当業者によって理解される以外の意味）を有することが意図される限りで、そのような特別な定義は、その用語又は句に関する特別な定義を直接に、明瞭に与える定義の様態で本明細書に明記される。
【００２３】
初期の電源投入中にコンフィギュレーションデータを供給するために今日の集積回路内で使用されるデバイス・ヒューズ・アレイ及び関連する技法に関する以上の背景の説明に鑑みて、それらの技法の限界及び欠点の説明が、図１〜図２を参照して提示される。その後に続いて、本発明の説明が、図３〜図１０を参照して提示される。本発明は、マルチコア・チップ上で利用する電力及び基板占有面積がより小さく、パワー・ゲーティング事象の後にコンフィギュレーションデータ及び修復データの迅速な復元を可能にし、従来、提供されてきたものよりもより信頼性の高い、マルチコア・チップにおいて圧縮された構成を使用するための装置及び方法を提供することによって、後段で説明される限界及び欠点のすべてを克服する。
【００２４】
定義
集積回路（ＩＣ）：小さい半導体材料上に、通常、シリコン上に製造された電子回路のセット。ＩＣは、チップ、マイクロチップ、又はダイとも呼ばれる。
【００２５】
中央処理装置（ＣＰＵ）：コンピュータ・プログラムの命令（「コンピュータ・アプリケーション」、「アプリケーション・プログラム」、「プログラム」、又は「アプリケーション」とも呼ばれる）を、算術演算、論理演算、及び入力／出力動作を含むデータについての動作を実行することによって実行する電子回路（即ち、「ハードウェア」）。
【００２６】
マイクロプロセッサ：単一の集積回路上でＣＰＵとして機能する電子デバイス。マイクロプロセッサは、デジタル・データを入力として受け取り、そのデータを、メモリ（オンダイ又はオフダイの）からフェッチされた命令に従って処理し、それらの命令によって規定される動作の結果を出力として生成する。汎用マイクロプロセッサは、デスクトップ・コンピュータ、モバイル・コンピュータ、又はタブレット・コンピュータを含むが、以上には限定されないデバイスにおいて使用されることが可能であり、計算、テキスト編集、マルチメディア表示、及びインターネット・ブラウジングなどの、ただし、以上には限定されないタスクのために利用されることが可能である。また、マイクロプロセッサは、器具、モバイル電話、スマートフォン、及び産業用制御デバイスを含む多種多様なデバイスを制御するように組込み型システムの中に配置されることも可能である。
【００２７】
マルチコア・プロセッサ：マルチコア・マイクロプロセッサとしても知られ、マルチコア・プロセッサは、単一の集積回路上に製造された複数のＣＰＵ（「コア」としても知られる）を有するマイクロプロセッサである。
【００２８】
命令セット・アーキテクチャ（ＩＳＡ）又は命令セット：データ・タイプ、命令、レジスタ、アドレス指定モード、メモリ・アーキテクチャ、割込み処理及び例外処理、並びに入力／出力を含むプログラミングと関係するコンピュータ・アーキテクチャの一部分。ＩＳＡは、オペコード（即ち、機械言語命令）のセットの仕様、及び特定のＣＰＵによって実施されるネイティブ・コマンドを含む。
【００２９】
ｘ８６互換マイクロプロセッサ：ｘ８６ＩＳＡに準拠してプログラミングされたコンピュータ・アプリケーションを実行することができるマイクロプロセッサ。
【００３０】
マイクロコード：複数のマイクロ命令を指すのに使用される用語。マイクロ命令（「ネイティブ命令」とも呼ばれる）は、マイクロプロセッサ・サブユニットが実行されるレベルにおける命令である。例示的なサブユニットには、整数演算ユニット、浮動小数点演算ユニット、ＭＭＸユニット、及びロード／記憶ユニットが含まれる。たとえば、マイクロ命令は、縮小命令セット・コンピュータ（ＲＩＳＣ）マイクロプロセッサによって直接に実行される。ｘ８６互換マイクロプロセッサなどの複合命令セット・コンピュータ（ＣＩＳＣ）マイクロプロセッサの場合、ｘ８６命令は、関連するマクロ命令に変換され、関連するマクロ命令は、ＣＩＳＣマイクロプロセッサ内のサブユニット又は複数のサブユニットによって直接に実行される。
【００３１】
ヒューズ：フィラメントに電圧を印加すること、及び／又はフィラメントを流れる電流を印加することによって選択された位置で切断され得るフィラメントとして通常、配置された導電性構造。ヒューズは、潜在的なすべてのプログラミング可能な領域においてフィラメントをもたらすようによく知られた製造技法を使用してダイ微細構成にわたる指定された領域に析出させることが可能である。ヒューズ構造は、チップ上に配置された対応するデバイスの所望されるプログラミング可能性をもたらすように製造の後にブローされる（又はブローされない）。
【００３２】
図１を参照すると、マイクロプロセッサ・コア１０１にコンフィギュレーションデータを供給するためのヒューズ・アレイ１０２を含む今日のマイクロプロセッサ・コア１０１を示すブロック図１００が提示されている。ヒューズ・アレイ１０２は、バンクとして知られるグループに通常、構成される複数の半導体ヒューズ（図示せず）を備える。ヒューズ・アレイ１０２は、リセット回路１０４とリセット・マイクロコード１０５とをともに含むリセット・ロジック１０３に結合される。リセット・ロジック１０３は、制御回路１０７、マイクロコード・レジスタ１０８、マイクロコード・パッチ要素１０９、及びキャッシュ補正要素１１０に結合される。外部リセット信号ＲＥＳＥＴが、マイクロプロセッサ・コア１０１に結合され、リセット・ロジック１０３にルーティングされる。
【００３３】
当業者には理解されるとおり、ヒューズ（「リンク」又は「ヒューズ構造」とも呼ばれる）は、膨大な数の今日の集積回路デバイスにおいて、デバイスが製造された後にデバイスの構成を可能にするように使用される。たとえば、図１のマイクロプロセッサ・コア１０１が、選択的にデスクトップ・デバイス又はモバイル・デバイスとしての機能をもたらすように製造されることを想定されたい。したがって、製造の後、ヒューズ・アレイ１０２内の規定されたヒューズが、そのデバイスを、たとえば、モバイル・デバイスとして構成するようにブローされる(又は飛ばされる)ことが可能である。したがって、ＲＥＳＥＴがアサートされると、リセット・ロジック１０３は、ヒューズ・アレイ１０２における規定されたヒューズの状態を読み取り、リセット回路１０４（この例では、リセット・マイクロコード１０５ではなく）が、もっぱらデスクトップ動作だけに関連付けられたコア１０１の要素を不活性化し、もっぱらモバイル動作だけに関連付けられたコア１０１の要素を活性化する、対応する制御回路１０７をイネーブルにする。その結果、コア１０１は、電源投入リセットが行われると、モバイル・デバイスとして構成される。更に、リセット・ロジック１０３が、ヒューズ・アレイ１０２におけるその他のヒューズの状態を読み取り、リセット回路１０４（この例では、リセット・マイクロコード１０５ではなく）が、対応するキャッシュ補正回路１０７が、コア１０１に関連付けられた１つ又は複数のキャッシュ・メモリ（図示せず）に関する補正機構をもたらすことを可能にする。その結果、コア１０１は、電源投入リセットが行われると、モバイル・デバイスとして構成され、そのデバイスのキャッシュ・メモリのための補正機構が整っている。
【００３４】
前述の例は、図１のマイクロプロセッサ・コア１０１のような集積回路デバイスにおける構成ヒューズに関する異なる多くの用法のうちの１つに過ぎない。構成ヒューズの他の用法には、デバイス特有のデータ（たとえば、通し番号(シリアル番号)、一意の暗号化鍵、ユーザによってアクセスされ得るアーキテクチャが義務付けるデータ、速度設定、電圧設定）、初期設定データ、及びパッチ・データの構成が含まれるが、以上には限定されないことが当業者には理解されよう。たとえば、今日の多くのデバイスは、マイクロコードを実行し、しばしば、そのマイクロコードによって読み取られるレジスタ１０８の初期設定を要求する。そのような初期設定データは、ヒューズ・アレイ１０２内のマイクロコード・レジスタ・ヒューズ（図示せず）によって供給されることが可能であり、このデータは、リセットが行われると、リセット・ロジック１０３によって（リセット回路１０４、リセット・マイクロコード１０５、又は両方の要素１０４〜１０５を使用して）読み取られて、マイクロコード・レジスタ１０８に供給される。本出願では、リセット回路１０４は、いくつかのタイプのコンフィギュレーションデータをもたらすハードウェア要素を備え、これらのタイプのコンフィギュレーションデータは、リセット・マイクロコード１０５の実行を介して供給され得ない。リセット・マイクロコード１０５は、コア１０１のリセットが行われると実行されて、コア１０１の初期設定に対応する機能を実行する内部マイクロコード・メモリ（図示せず）内に配置された複数のマイクロ命令を備え、それらの機能は、ヒューズ・アレイから読み取られたコンフィギュレーションデータを、マイクロコード・レジスタ１０８及びマイクロコード・パッチ機構１０９などの要素に供給することを含む。ヒューズを介して供給されるいくつかのタイプのコンフィギュレーションデータが、リセット・マイクロコード１０５を介してコア１０１における様々な要素１０７〜１１０に分配され得るか否かの基準は、コア１０１の特定の設計に主に応じる。集積回路デバイスを初期設定するように使用される特定の構成技法に関する包括的な手引きを提供することは、本出願の意図ではない。というのは、今日のマイクロプロセッサ・コア１０１の場合、構成可能な要素１０７〜１１０のタイプは、一般に、図１に例示されるとおり、４つのカテゴリ、即ち、制御回路、マイクロコード・レジスタ、マイクロコード・パッチ機構、及びキャッシュ補正機構に分類されることが当業者には理解されるからである。更に、コンフィギュレーションデータの特定の値は、データの特定のタイプに基づいて大きく異なることが、当業者には理解されよう。たとえば、６４ビット制御回路１０７は、コア１０１の通し番号を規定するＡＳＣＩＩデータを含み得る。別の６４ビット制御レジスタは、異なる６４の速度設定を有することが可能であり、それらの設定のうちの１つだけが、コア１０１の動作速度を指定するようにアサートされる。マイクロコード・レジスタ１０８は、通常、すべて０（即ち、論理低状態）に、又はすべて１（即ち、論理高状態）に初期設定され得る。マイクロコード・パッチ機構１０９は、１及び０の一様な分布を適切に含んで���マイクロコードＲＯＭ（図示せず）の中でアドレスを示すとともに、それらのアドレスの置換マイクロコード値を示すことが可能である。最後に、キャッシュ補正（即ち、「修復」）機構は、１の非常にまばらな設定を備えて、或るキャッシュ・サブバンク要素（即ち、行又は列）を、１つ又は複数のキャッシュ・メモリの修復を可能にする特定の置換サブバンク要素で置き換える代用制御信号を示すことが可能である。
【００３５】
ヒューズ・アレイ１０２は、マイクロプロセッサ・コア１０１のようなデバイスを、そのデバイスの製造の後に、構成するための優れた手段をもたらす。ヒューズ・アレイ１０２の選択されたヒューズをブローすることによって、コア１０１は、コア１０１の意図される環境における動作のために構成され得る。それでも、当業者には理解されるとおり、動作環境は、ヒューズ・アレイ１０２のプログラミングの後に変わる可能性がある。ビジネス要件が、当初は、たとえば、デスクトップ・デバイス１０１として構成されたデバイス１０１が、モバイル・デバイス１０１として再構成されることを要求する可能性がある。したがって、設計者は、ヒューズ・アレイ１０２内のヒューズの冗長なバンクを利用して、ヒューズ・アレイ１０２内の選択されたヒューズを「ブローしない」ことを可能にして、これにより、デバイス１０１が再構成されること、製造誤差が補正されることなどを可能にする技法を提供してきた。次に、これらの冗長アレイ技法が、図２を参照して説明される。
【００３６】
次に、図２を参照すると、ヒューズ・アレイ２０１内の第１のヒューズ・バンク２０２  ＰＦＢ１〜ＰＦＢＮをブローした後にブローされ得る冗長なヒューズ・バンク２０２  ＲＦＢ１〜ＲＦＢＮを含む、図１のマイクロプロセッサ・コア１０１内のヒューズ・アレイ２０１を示すブロック図２００が提示される。ヒューズ・バンク２０２  ＰＦＢ１〜ＰＦＢＮ、ＲＦＢ１〜ＲＦＢＮのそれぞれが、コア１０１の特定の設計に対応する規定された数の個々のヒューズ２０３を備える。たとえば、所与のヒューズ・バンク２０２におけるヒューズ２０３の数は、コア１０１において容易に実施されるフォーマットでコンフィギュレーションデータを供給することを円滑にするように６４ビット・マイクロプロセッサ・コア１０１における６４個のヒューズ２０３であることが可能である。
【００３７】
ヒューズ・アレイ２０１は、コア１０１におけるリセット・ロジック内に通常、配置されるレジスタ２１０〜２１１のセットに結合される。一次レジスタＰＲ１が、第１のヒューズ・バンクＰＦＢ１〜ＰＦＢＮ（たとえば、図２００に示されるＰＦＢ３）のうちの１つを読み取るのに使用され、冗長なレジスタＲＲ１が、冗長なヒューズ・バンクＲＦＢ１〜ＲＦＢＮのうちの対応する１つを読み取るのに使用される。レジスタ２１０〜２１１は、出力ＦＢ３を生成する排他的論理和ロジック２１２に結合される。
【００３８】
動作の際、コア１０１の製造の後に、第１のヒューズ・バンクＰＦＢ１〜ＰＦＢＮが、知られている技法によって、コア１０１のためのコンフィギュレーションデータでプログラミングされる。冗長なヒューズ・バンクＲＦＢ１〜ＲＦＢＮは、ブローされず、冗長なヒューズ・バンクＲＦＢ１〜ＲＦＢＮにおけるすべてのヒューズに関する論理低状態のままである。コア１０１の電源投入／リセットが行われると、第１のヒューズ・バンクＰＦＢ１〜ＰＦＢＮと冗長なヒューズ・バンクＲＦＢ１〜ＲＦＢＮの両方が、構成のために要求されるとおり一次レジスタ及び冗長なレジスタ２１０〜２１１にそれぞれ読み込まれる。排他的論理和ロジック２１２が、レジスタ２１０〜２１１の内容の排他的論理和結果である出力ＦＢ３を生成する。冗長なヒューズ・バンクのすべてがブローされないまま（即ち、論理低状態）であるので、出力ＦＢ３値は、単に、製造の後に第１のヒューズ・バンクＰＦＢ１〜ＰＦＢＮにプログラミングされていた値である。
【００３９】
次に、設計要件又はビジネス要件が、第１のヒューズ・バンクＰＦＢ１〜ＰＦＢＮにプログラミングされた情報の一部が変更される必要があることを要求することを想定されたい。したがって、電源投入時に読み取られた情報を変更するために冗長なヒューズ・バンクＲＦＢ１〜ＲＦＢＮ内の対応するヒューズ２０３をブローするプログラミング動作が実行される。選択された冗長なバンクＲＦＢ１〜ＲＦＢＮにおけるヒューズ２０３をブローすることによって、一次ヒューズ・バンクＰＦＢ１〜ＰＦＢＮにおける対応するヒューズ２０３の値が、論理補数として返される。
【００４０】
図２の機構は、デバイス１０１内のヒューズ２０３の「再ブロー」を可能にするように使用され得るが、当業者には理解されるとおり、所与のヒューズ２０３は、１セットだけの冗長なヒューズ・バンクＲＦＢ１〜ＲＦＢＮしか存在しないので、１回しか再ブローされ得ない。更なる再ブローを可能にするのに、対応する数の更なるヒューズ・バンク２０２及びレジスタ２１０〜２１１が部品１０１に追加されなければならない。
【００４１】
したがって、図１〜図２に関連して前述したヒューズ・アレイ機構は、マイクロプロセッサ・コア及びその他の関連するデバイスを十分に構成する十分な柔軟性をもたらしながら、限られた回数の再ブローも可能にしている。このことは、主に、従来の製造技術、たとえば、６５ナノメートル工程及び４５ナノメートル工程が、チップ上で、チップ上に配置されたコア１０１の構成を可能にする十分なヒューズを実装するための豊富な基板占有面積を許すという事実による。しかし、本発明者らは、今日の技術が、２つの重要な要因のために先行きが限られていることに注目している。第１に、当技術分野における傾向は、単一のチップ上に複数のデバイス・コア１０１を配置して処理パフォーマンスを向上させることである。これらのいわゆるマルチコア・デバイスは、たとえば、２〜１６個の個々のコア１０１を含むことが可能であり、それらのコア１０１のそれぞれが、電源投入／リセットが行われると、ヒューズ・データで構成されなければならない。したがって、４コア・デバイスの場合、個々のコアに関連付けられたデータの一部が変わる可能性がある（たとえば、キャッシュ補正データ、冗長なヒューズ・データなど）という点で、４つのヒューズ・アレイ２０１が要求される。第２に、当業者には理解されるとおり、製造工程技術が、たとえば、３２ナノメートルまで小さくなる一方で、トランジスタ・サイズがそれに相応して小さくなるにつれ、ヒューズ・サイズは大きくなり、このため、４５ナノメートル・チップとの対比で、３２ナノメートル・チップ上に同一サイズのヒューズ・アレイを実装するのにより多くのチップ基板占有面積が要求される。
【００４２】
前述の限界の両方、及びその他の限界が、デバイス設計者に、より具体的には、マルチコア・デバイス設計者に相当な難題をもたらし、本発明者らは、従来のデバイス構成機構に優る大幅な改良が、本発明により実施され得ることに注目し、本発明は、マルチコア・デバイスにおける個々のコアのプログラミングを可能にするとともに、キャッシュ補正要素及びヒューズ再プログラミング（「再ブロー」）要素の実質的な増加を可能にする。次に、本発明を、図３〜図１２を参照して説明する。
【００４３】
図３を参照すると、マルチコア・デバイスのための構成／修復データの圧縮(compression)及び非圧縮化(decompression)を可能にする本発明によるシステム３００を特徴付けるブロック図が提示されている。このマルチコア・デバイスは、チップ３３０上に配置された複数のコア３３２を備える。例示のため、４つのコア３３２、ＣＯＲＥ１〜ＣＯＲＥ４が、チップ３３０上に示されるものの、本発明は、チップ３３０上に配置された様々な数のコア３３２を企図している。一実施形態において、すべてのコア３３２は、やはりチップ３３０上に配置された単一のキャッシュ・メモリ３３４を共有する。単一のプログラマブル・ヒューズ・アレイ３３６が、やはりチップ３３０上に配置され、コア３３２のそれぞれは、電源投入／リセット中、前述したとおり、ヒューズ・アレイ３３６にアクセスしてコンフィギュレーションデータを取り出し、非圧縮化(又は伸長)するように構成される。
【００４４】
一実施形態において、コア３３２は、マルチコア・マイクロプロセッサ３３０として構成されたマイクロプロセッサ・コアを備える。別の実施形態において、マルチコア・マイクロプロセッサ３３０は、ｘ８６互換マルチコア・マイクロプロセッサとして構成される。更に別の実施形態において、キャッシュ３３４は、マイクロプロセッサ・コア３３２に関連付けられたレベル２（Ｌ２）キャッシュ３３４を備える。一実施形態において、ヒューズ・アレイ３３６は、８１９２（８Ｋ）個の個々のヒューズ（図示せず）を備えるものの、他の数のヒューズも企図される。単一コア実施形態において、１つだけのコア３３２が、チップ３３０上に配置され、コア３３２は、キャッシュ３３４及び物理ヒューズ・アレイ３３６に結合される。本発明者らは、本発明の特徴及び機能が、以降、マルチコア・デバイス３３０の脈絡で説明されるものの、これらの特徴及び機能は、単一コア実施形態にも同様に当てはまることを指摘している。
【００４５】
システム３００は、仮想ヒューズ・アレイ３０３に結合されたコンプレッサ３２０を含むデバイス・プログラマ３１０も含む。一実施形態において、デバイス・プログラマ３１０は、よく知られたプログラミング技法により、チップ３３０の製造の後にコンフィギュレーションデータを処理し、ヒューズ・アレイ３３６をプログラミングするように構成されたＣＰＵ（図示せず）を備え得る。ＣＰＵは、製造の後にデバイス・チップ３３０を試験するのに使用されるウェーハ試験装置に組み込まれ得る。一実施形態において、コンプレッサ３２０は、デバイス・プログラマ３１０上で実行されるアプリケーション・プログラムを備えることが可能であり、仮想ヒューズ・アレイ３０３は、コンプレッサ３２０によってアクセスされるメモリ内のロケーションを備えることが可能である。仮想ヒューズ・アレイ３０３は、複数の仮想ヒューズ３０２をそれぞれが備える複数の仮想ヒューズ・バンク３０１を含む。一実施形態において、仮想ヒューズ・アレイ３０３は、６４個の仮想ヒューズ３０２をそれぞれが備え、サイズが８Ｋｂである仮想アレイ３０３をもたらす１２８個の仮想ヒューズ・バンク３０１を備える
【００４６】
動作の際に、デバイス３３０のための構成情報は、製造プロセスの一環として、図１を参照して前述したとおり、仮想ヒューズ・アレイ３０３に入力される。したがって、その構成情報は、制御回路コンフィギュレーションデータと、マイクロコード・レジスタのための初期設定データと、マイクロコード・パッチ・データと、キャッシュ補正データとを備える。更に、前述したとおり、データ・タイプのそれぞれに関連する値の分布は、タイプごとに実質的に異なる。仮想ヒューズ・アレイ３０３は、チップ３３０上のマイクロプロセッサ・コア３３２のそれぞれのための構成情報と、チップ３３０上のキャッシュ３３４のそれぞれのための補正データとを備えるヒューズ・アレイ（図示せず）の論理表現である。
【００４７】
その情報が仮想ヒューズ・アレイ３０３に入力された後、コンプレッサ３２０は、仮想ヒューズ・バンク３０１のそれぞれにおける仮想ヒューズ３０２の状態を読み取り、データ・タイプのそれぞれに対応する別々の圧縮アルゴリズムを使用してその情報を圧縮して、圧縮されたヒューズ・アレイ・データ３０３をもたらす。一実施形態において、制御回路のためのシステム・データは、圧縮されるのではなく、圧縮されずに転送される。マイクロコード・レジスタ・データを圧縮するのに、マイクロコード・レジスタ・データに対応する状態分布を有するデータを圧縮するために効果的であるマイクロコード・レジスタ・データ圧縮アルゴリズムが使用される。マイクロコード・パッチ・データを圧縮するのに、マイクロコード・パッチ・データに対応する状態分布を有するデータを圧縮するために効果的であるマイクロコード・パッチ・データ圧縮アルゴリズムが使用される。キャッシュ補正データを圧縮するのに、キャッシュ補正データに対応する状態分布を有するデータを圧縮するために効果的であるキャッシュ補正データ圧縮アルゴリズムが使用される。
【００４８】
次に、デバイス・プログラマ３１０が、圧縮されていないヒューズ・アレイ・データ及び圧縮されたヒューズ・アレイ・データを、チップ３３０上の物理ヒューズ・アレイ３３６にプログラミングする。
【００４９】
電源投入／リセットが行われると、コア３３２のそれぞれが、物理ヒューズ・アレイ３３６にアクセスして、圧縮されていないヒューズ・アレイ・データ及び圧縮されたヒューズ・アレイ・データを取り出すことが可能であり、コア３３２のそれぞれの内部に配置されたリセット回路／マイクロコード（図示せず）が、圧縮されていないヒューズ・アレイ・データを分配し、圧縮されたヒューズ・アレイ・データを、前述したデータ・タイプのそれぞれに対応する別々の伸長アルゴリズムにより伸長して、仮想ヒューズ・アレイ３０３に最初に入力された値をもたらす。次に、リセット回路／マイクロコードが、その構成情報を制御回路（図示せず）、マイクロコード・レジスタ（図示せず）、パッチ要素（図示せず）、及びキャッシュ補正要素（図示せず）に入力する。
【００５０】
有利には、本発明によるヒューズ・アレイ圧縮システム３００は、デバイス設計者が、従来、提供されてきたものよりも実質的に少ない数のヒューズを物理ヒューズ・アレイ３３６において使用すること、及び物理ヒューズ・アレイ３３６にプログラミングされた、圧縮された情報を利用して、電源投入／リセット中にマルチコア・デバイス３３０を構成することを可能にする。
【００５１】
次に図４を参照すると、本発明によるヒューズ伸長機構を示すブロック図４００が提示されている。この伸長機構は、図３のマイクロプロセッサ・コア３３２のそれぞれの内部に配置され得る。本発明を明確に教示する目的で、１つだけのコア４２０が、図４に示され、チップ上に配置されたコア３３２のそれぞれは、図示されるコア４２０と実質的に均等の要素を備える。前述したとおりチップ上に配置された物理ヒューズ・アレイ４０１が、コア４２０に結合される。物理ヒューズ・アレイ４０１は、圧縮されたマイクロコード・パッチ・ヒューズ４０３と、圧縮されたレジスタ・ヒューズ４０４と、圧縮されたキャッシュ補正ヒューズ４０５と、圧縮されたヒューズ補正ヒューズ４０６とを備える。また、物理ヒューズ・アレイ４０１は、前述したシステムコンフィギュレーションデータのような圧縮されていないコンフィギュレーションデータ（図示せず）、及び／又はブロック誤り検査−訂正（ＥＣＣ）コード（図示せず）を備えることも可能である。本発明によるＥＣＣフィーチャを含めることは、後段で更に詳細に説明される。
【００５２】
マイクロプロセッサ・コア４２０は、コア４２０に電源が投入された後、及びコア４２０にリセット・シーケンスのステップを開始させる事象に応答して、アサートされるリセット信号ＲＥＳＥＴを受け取るリセット・コントローラ４１７を備える。リセット・コントローラ４１７は、デコンプレッサ４２１を含む。デコンプレッサ４２１は、パッチ・ヒューズ要素４０８と、レジスタ・ヒューズ要素４０９と、キャッシュ・ヒューズ要素４１０とを有する。また、デコンプレッサは、バス４１２を介してパッチ・ヒューズ要素４０８、レジスタ・ヒューズ要素４０９、及びキャッシュ・ヒューズ要素４１０に結合されたヒューズ補正要素４１１も備える。パッチ・ヒューズ・デコンプレッサは、コア４２０におけるマイクロコード・パッチ要素４１４に結合される。レジスタ・ヒューズ要素４０９は、コア４２０におけるマイクロコード・レジスタ４１５に結合される。キャッシュ・ヒューズ要素４１０は、コア４２０におけるキャッシュ補正要素４１６に結合される。一実施形態において、キャッシュ補正要素４１６は、図３のキャッシュ３３４のような、すべてのコア４２０によって共有されるチップ上Ｌ２キャッシュ（図示せず）内に配置される。別の実施形態は、コア４２０内のＬ１キャッシュ（図示せず）内に配置されたキャッシュ補正要素４１６を企図する。更なる実施形態は、前述したＬ２キャッシュとＬ１キャッシュの両方を補正するように配置されたキャッシュ補正要素４１６を考慮する。他の実施形態は、複数のコア上キャッシュ、及びコア上にない共有されるキャッシュを企図する。
【００５３】
動作の際、ＲＥＳＥＴがアサートされると、リセット・コントローラ４１６が、物理ヒューズ・アレイ４０１におけるヒューズ４０２〜４０６の状態を読み取り、圧縮されたシステム・ヒューズ４０２の状態をデコンプレッサ４２１に分配する。ヒューズ・データが読み取られ、分配された後、デコンプレッサ４２１のヒューズ補正要素４１１が、圧縮されたヒューズ補正ヒューズ状態を伸長して、それまでにプログラミングされていた状態から状態が変更されるべき物理ヒューズ・アレイ４０１における１つ又は複数のヒューズ・アドレスを示すデータをもたらす。そのデータは、１つ又は複数のヒューズ・アドレスの各アドレスの値を含むことも可能である。１つ又は複数のヒューズ・アドレス（及びオプションの値）は、バス４１２を介して要素４０８〜４１０にルーティングされて、それらのアドレスにおいて処理される対応するヒューズの状態が、それらのアドレスに対応する圧縮されたデータの伸長に先立って、変更されるようにする。
【００５４】
一実施形態において、パッチ・ヒューズ要素４０８は、圧縮されたマイクロコード・パッチ・ヒューズ４０３の状態を、図３を参照して前述したマイクロコード・パッチ圧縮アルゴリズムに対応するマイクロコード・パッチ伸長アルゴリズムにより伸長するように動作するマイクロコードを備える。一実施形態において、レジスタ・ヒューズ要素４０９は、圧縮されたレジスタ・ヒューズ４０４の状態を、図３を参照して前述したレジスタ・ヒューズ圧縮アルゴリズムに対応するレジスタ・ヒューズ伸長アルゴリズムにより伸長するように動作するマイクロコードを備える。一実施形態において、キャッシュ・ヒューズ要素４１０は、圧縮キャッシュ補正ヒューズ４０５の状態を、図３を参照して前述したキャッシュ補正ヒューズ圧縮アルゴリズムに対応するキャッシュ補正ヒューズ伸長アルゴリズムにより伸長するように動作するマイクロコードを備える。要素４０８〜４１０のそれぞれが、バス４１２を介してヒューズ補正要素４１１からアドレス（及びオプションの値）が供給されたヒューズの状態を変更した後、要素４０８〜４１０のそれぞれのデータが、使用される対応するアルゴリズムにより伸長される。後段で更に詳細に説明されるとおり、本発明は、デコンプレッサ４０７〜４１１のいずれによって実行される伸長プロセスの開始にも先立って、物理ヒューズ・アレイ内の任意のヒューズ・アドレスの複数回の「再ブロー」を企図する。一実施形態において、バス４１２は、それぞれのルーチンの間でデータを転送するのに使用される従来のマイクロコード・プログラミング機構を内部に備えることが可能である。本発明は、コンフィギュレーションデータを、そのコンフィギュレーションデータの特定のタイプに基づいて、認識し、伸長する能力を有する包括的なデコンプレッサ４２１を更に企図する。したがって、デコンプレッサ４２１内の記載される要素４０８〜４１１は、本発明の関係のある態様を教示するために提示されるが、本発明の企図される実装形態は、必ずしも別々の要素４０８〜４１１を含むとは限らず、前述した要素４０８〜４１１のそれぞれに対応する機能を提供する包括的なデコンプレッサ４２１を含む可能性がある。
【００５５】
一実施形態において、リセット・コントローラ４１７が、パッチ・ヒューズ要素４０８内のマイクロコードの実行を開始して、圧縮されたマイクロコード・パッチ・ヒューズ４０３の状態を伸長する。また、リセット・コントローラ４１７は、レジスタ・ヒューズ要素４０９内のマイクロコードの実行も開始して、圧縮されたレジスタ・ヒューズ４０４の状態を伸長する。リセット・コントローラ４１７は、キャッシュ・ヒューズ要素４１０内のマイクロコードの実行を更に開始して、圧縮されたキャッシュ補正ヒューズ４０６の状態を伸長する。また、デコンプレッサ４２１内のマイクロコードは、圧縮されたデータの伸長に先立って、圧縮されたヒューズ補正ヒューズ４０６によって供給されるヒューズ補正データによってアドレス指定される任意のヒューズの状態を変更するようにも動作する。
【００５６】
本発明によるリセット・コントローラ４１７、デコンプレッサ４２１、及びデコンプレッサ４２１内の要素４０８〜４１１は、前述した機能及び動作を実行するように構成される。リセット・コントローラ４１７、デコンプレッサ４２１、及びデコンプレッサ４２１内の要素４０８〜４１１は、記載される本発明による機能及び動作を実行するように使用される、ロジック、回路、デバイス、若しくはマイクロコード、又はロジック、回路、デバイス、若しくはマイクロコードの組合せ、或いは均等の要素を備えることが可能である。リセット・コントローラ４１７、デコンプレッサ４２１、及びデコンプレッサ４２１内の要素４０８〜４１１の内部でこれらの動作及び機能を実現するのに使用される要素は、リセット・コントローラ４１７、デコンプレッサ４２１、及びデコンプレッサ４２１内の要素４０８〜４１１の内部で他の機能及び／又は他の動作を実行するのに使用される他の回路、マイクロコードなどと、又はコア４２０内の他の要素と共有され得る。
【００５７】
物理ヒューズ・アレイ４０１内のヒューズ４０３〜４０６の状態が変更され、伸長された後、伸長された「仮想」ヒューズの状態が、次に、適宜、マイクロコード・パッチ要素４１４、マイクロコード・レジスタ４１５、及びキャッシュ補正要素４１６にルーティングされる。したがって、コア４２０は、リセット・シーケンスの完了の後の動作のために構成される。
【００５８】
本発明者らは、前述した伸長機能は、必ずしも、リセット・シーケンス中に特定の順序で実行されなくてもよいことを指摘している。たとえば、マイクロコード・パッチは、マイクロコード・レジスタ初期設定データの伸長の後に伸長されてもよい。同様に、それらの伸長機能が、並行に、又は設計上の制約を満足させるのに適切な順序で実行されてもよい。
【００５９】
更に、本発明者らは、要素４０８〜４１１の実装形態は、必ずしも、ハードウェア回路と対比されるマイクロコードとして実装されなくてもよいことを指摘している。というのは、通常のマイクロプロセッサ・コア４２０において、マイクロコードによる直接の書き込みではなく、（キャッシュに関連するスキャン設計などの）ハードウェアを介してより容易に初期設定され得るコア４２０の要素が存在するからである。そのような実装の詳細は、設計者の判断に任される。しかし、本発明者らは、キャッシュ補正ヒューズは、従来、マイクロコードの実行を開始することに先立って、リセット中にハードウェア回路によって読み取られて、キャッシュ補正スキャン設計に入力されることを従来技術が教示することを提示する。ハードウェア制御回路ではなく、マイクロコードとしてキャッシュ・ヒューズ・デコンプレッサ４１０を実装することが本発明の特徴であるのは、コアのキャッシュが、一般に、マイクロコードが実行されるまでオンにされないからである。キャッシュ・ヒューズ要素４１０を実装するのにマイクロコードを利用することによって、スキャン設計にキャッシュ補正データを入力するためのより柔軟性のある有利な機構が提供され、相当なハードウェアが節約される。
【００６０】
次に図５を参照すると、本発明による圧縮されたコンフィギュレーションデータ５００に関する例示的なフォーマット５００を示すブロック図が提示されている。圧縮されたコンフィギュレーションデータ５００は、図３のコンプレッサ３２０によって仮想ヒューズ・アレイ３０３の中に存在するデータから圧縮され、マルチコア・デバイス３３０の物理ヒューズ・アレイ３３６にプログラミングされる（即ち、「ブローされている」）。リセット・シーケンス中、前述したとおり、圧縮されたコンフィギュレーションデータ５００は、コア３３２のそれぞれによって物理ヒューズ・アレイ３３６から取り出され、コア４２０のそれぞれの内部のデコンプレッサ４２１の要素４０８〜４１１によって伸長され、補正される。伸長され、補正されたコンフィギュレーションデータが、次に、コア４２０内の様々な要素４１３〜４１６に供給されて、コア４２０が動作のために初期設定される。
【００６１】
圧縮されたコンフィギュレーションデータ５００は、前述したコンフィギュレーションデータ・タイプのそれぞれに関する１つ又は複数の圧縮されたデータ・フィールド５０２を備え、タイプ終了フィールド５０３によって区切られる。プログラミング事象（即ち、「ブロー」）は、ブロー終了フィールド５０４によって区切られる。データ・タイプのそれぞれに関連付けられた圧縮されたデータ・フィールド５０２は、データ・タイプのそれぞれに関連付けられた特定のビット・パターンを記憶するのに要求されるビット（即ち、ヒューズ）の数を最小限に抑えるように最適化された圧縮アルゴリズムにより符号化される。圧縮されたデータ・フィールド５０２のそれぞれを構成する物理ヒューズ・アレイ３３６におけるヒューズの数は、特定のデータ・タイプのために使用される圧縮アルゴリズムに応じる。たとえば、すべて１に、又はすべて０に初期設定されなければならない６４個の６４ビット・マイクロコード・レジスタを備えるコアを想定されたい。最適な圧縮アルゴリズムは、そのデータ・タイプに関して６４個の圧縮されたデータ・フィールド５０２をもたらすように使用されることが可能であり、ここで、圧縮されたデータ・フィールド５０２のそれぞれは、圧縮されたデータ・フィールド５０２がレジスタ番号順序（即ち、１〜６４）で規定される特定のマイクロコード・レジスタのための初期設定データを備える。圧縮されたデータ・フィールド５０２のそれぞれは、対応するマイクロコード・レジスタがすべて１に初期設定されている場合、ブローされ、対応するマイクロコード・レジスタがすべて０に初期設定されている場合、ブローされない単一のヒューズを備える。
【００６２】
コア４２０におけるデコンプレッサ４２１の要素４０８〜４１０は、タイプ終了フィールド５０３を利用して、物理ヒューズ・アレイ３３６内でそれぞれの圧縮されたデータがどこに位置するかを特定するように構成され、ヒューズ補正デコンプレッサ４１１１は、ブロー終了フィールド５０４を利用して、初期プログラミング事象の後にプログラミングされている（即ち、ブローされている）圧縮されたヒューズ補正データを位置特定するように構成される。後段でより詳細に説明されるとおり、物理ヒューズ・アレイ３３６において相当な量の予備のヒューズを提供して、相当な数の後のプログラミング事象を可能にすることが本発明の特徴である。
【００６３】
前述した例示的な圧縮されたタイプ・フォーマットは、コンフィギュレーションデータの圧縮及び伸長に関連する本発明の態様を明確に教示するように提示される。しかし、特定のタイプのデータが圧縮され、区切られる様態、並びにヒューズ・アレイ４０１内で圧縮されるべきデータの数及びタイプは、図５の例に限定されることは意図されない。本発明を、当技術分野に存在する様々なデバイス及びアーキテクチャに仕立てることを可能にする他の数、タイプ、及びフォーマットも企図される。
【００６４】
次に図６を参照すると、本発明による伸長されたマイクロコード・パッチコンフィギュレーションデータ６００のための例示的なフォーマットを示すブロック図が提示されている。リセット・シーケンス中、圧縮されたマイクロコード・パッチコンフィギュレーションデータが、各コア４２０によって物理ヒューズ・アレイ４０１から読み取られる。圧縮されたマイクロコード・パッチコンフィギュレーションデータは、次に、バス４１２を介して供給されるヒューズ補正データにより補正される。次に、その補正された、圧縮されたマイクロコード・パッチコンフィギュレーションデータが、パッチ・ヒューズ・デコンプレッサ４０８によって伸長される。この伸長プロセスの結果が、伸長されたマイクロコード・パッチコンフィギュレーションデータ６００である。データ６００は、初期設定データを要求するコア４２０内のマイクロコード・パッチ要素４１４の数に対応する複数の伸長されたデータ・ブロック６０４を備える。それぞれの伸長されたデータ・ブロック６０４は、コア・アドレス・フィールド６０１と、マイクロコードＲＯＭアドレス・フィールド６０２と、マイクロコード・パッチ・データ・フィールド６０３とを備える。フィールド６０１〜６０３のサイズは、コア・アーキテクチャに応じる。伸長プロセスの一環として、パッチ・ヒューズ・デコンプレッサ４０８が、マイクロコード・パッチ要素４１４を初期設定するのに要求されるターゲット・データの完成イメージを作成する。マイクロコード・パッチコンフィギュレーションデータ６００の伸長の後に、従来の分配機構が、マイクロコード・パッチ要素４１４におけるそれぞれのアドレス指定されたコア及びマイクロコードＲＯＭ置換回路／レジスタにデータ６０３を分配するのに使用され得る。
【００６５】
次に図７を参照すると、本発明による伸長されたマイクロコード・レジスタコンフィギュレーションデータ７００に関する例示的なフォーマットを示すブロック図が提示されている。リセット・シーケンス中、圧縮されたマイクロコード・レジスタコンフィギュレーションデータが、各コア４２０によって物理ヒューズ・アレイ４０１から読み取られる。圧縮されたマイクロコード・レジスタコンフィギュレーションデータは、次に、バス４１２を介して供給されるヒューズ補正データにより補正される。次に、補正された、圧縮されたマイクロコード・レジスタコンフィギュレーションデータが、レジスタ・ヒューズ・デコンプレッサ４０７によって伸長される。この伸長プロセスの結果が、伸長されたマイクロコード・レジスタコンフィギュレーションデータ７００である。データ７００は、初期設定データを要求するコア４２０内のマイクロコード・レジスタ４１５の数に対応する複数の伸長されたデータ・ブロック７０４を備える。それぞれの伸長されたデータ・ブロック７０４は、コア・アドレス・フィールド７０１と、マイクロコード・レジスタ・アドレス・フィールド７０２と、マイクロコード・レジスタ・データ・フィールド７０３とを備える。フィールド７０１〜７０３のサイズは、コア・アーキテクチャに応じる。伸長プロセスの一環として、レジスタ・ヒューズ・デコンプレッサ４０７が、マイクロコード・レジスタ４１５を初期設定するのに要求されるターゲット・データの完成イメージを作成する。マイクロコード・レジスタコンフィギュレーションデータ７００の伸長の後に、従来の分配機構が、それぞれのアドレス指定されたコア及びマイクロコード・レジスタ４１５にデータ７０３を分配するのに使用され得る。
【００６６】
次に図８を参照すると、本発明による伸長されたキャッシュ補正データ８００に関する例示的なフォーマットを特徴付けるブロック図が提示されている。リセット・シーケンス中、圧縮されたキャッシュ補正データが、各コア４２０によって物理ヒューズ・アレイ４０１から読み取られる。圧縮されたキャッシュ補正データは、次に、バス４１２を介して供給されるヒューズ補正データにより補正される。次に、その補正された、圧縮されたキャッシュ補正データが、キャッシュ・ヒューズ・デコンプレッサ４１０によって伸長される。この伸長プロセスの結果が、伸長されたキャッシュ補正データ８００である。様々なキャッシュ機構が、マルチコア・プロセッサ３３０において使用されることが可能であり、伸長されたキャッシュ補正データ８００は、共有されるＬ２キャッシュ３３４の脈絡で提示され、ここで、コア３３２のすべてが、共有される領域を利用して、単一のキャッシュ３３４にアクセスすることが可能である。したがって、記載されるアーキテクチャによる例示的なフォーマットが提供される。データ８００は、補正データを要求するコア４２０内のキャッシュ補正要素４１６の数に対応する複数の伸長されたデータ・ブロック８０４を備える。それぞれの伸長されたデータ・ブロック８０４、サブユニット列アドレス・フィールド８０２、及び置換列アドレス・フィールド８０３。当業者には理解されるとおり、メモリ・キャッシュは、キャッシュのサブユニットにおいて冗長な列（又は行）を有して製造されて、特定のサブユニットにおける機能する冗長な列（又は行）が、機能しない列（又は行）の代わりに使用されることを可能にする。したがって、伸長されたキャッシュ補正データ８００は、機能しない列の代わりに機能する列（図８に示される）を使用することを可能にする。更に、当業者には想起されるとおり、キャッシュ補正に関連する従来のヒューズ・アレイ機構は、冗長なサブユニット列が代わりに使用されることが要求される場合にブローされる各サブユニット列に関連するヒューズを含む。したがって、そのような多数のヒューズが要求される（すべてのサブユニット、及びサブユニットにおける列をアドレス指定するのに）ため、サブユニットの一部分だけが、通常、範囲に含められ、すると、もたらされる従来のキャッシュ補正ヒューズは、非常にまばらにしかブローされない。本発明者らは、置換を要求するサブユニット列に関してだけサブユニット列アドレス及び置換列アドレスをアドレス指定し、圧縮して、これにより、キャッシュ補正データを実装するのに要求されるヒューズの数が最小限に抑えられることが本発明の特徴であることを指摘している。その結果、本発明は、物理ヒューズ・アレイ・サイズ、及びその物理ヒューズ・アレイ・サイズにプログラミングされた更なるコンフィギュレーションデータの量によって制限されて、従来、提供されていたものを超えて、補正され得るキャッシュ３３４におけるサブユニット列（又は行）の数を拡大する可能性をもたらす。図８に示す実施形態では、関連するコア３３２は、Ｌ２キャッシュ３３４を共有するコア３３４の１つだけが修正データ８０２〜８０３にアクセスし、修正データ８０２〜８０３をそのそれぞれのキャッシュ補正要素４１６に提供するように構成されることに留意されたい。フィールド８０２〜８０３のサイズは、コア・アーキテクチャに応じる。伸長プロセスの一環として、キャッシュ補正ヒューズ・デコンプレッサ４１０が、キャッシュ補正要素４１６を初期設定するのに要求されるターゲット・データの完成イメージを作成する。キャッシュ補正データ８００の伸長の後に、担当するコア４２０における従来の分配機構が、それぞれのアドレス指定されたキャッシュ補正要素４１６にデータ８０２〜８０３を分配するのに使用され得る。
【００６７】
図９を参照すると、本発明による伸長されたキャッシュ補正データ９００に関する代替の例示的なフォーマットを特徴付けるブロック図が提示されている。図９の実施形態は、図４のもののようなマルチコア・プロセッサ構成において使用されることが可能であり、この構成では、コア４２０のそれぞれが、レベル１（Ｌ１）データ・キャッシュ及びＬ１命令キャッシュを含むが、以上には限定されない１つ又は複数のコア上のキャッシュ（図示せず）を備える。リセット・シーケンス中、圧縮されたキャッシュ補正データが、各コア４２０によって物理ヒューズ・アレイ４０１から読み取られる。圧縮されたキャッシュ補正データは、次に、バス４１２を介して提供されたヒューズ補正データにより補正される。次に、その補正された、圧縮されたキャッシュ補正データが、キャッシュ・ヒューズ・デコンプレッサ４１０によって伸長される。この伸長プロセスの結果が、伸長されたキャッシュ補正データ９００である。データ９００は、補正データを要求するコア４２０内のキャッシュ補正要素４１６の数に対応する複数の伸長されたデータ・ブロック９０４を備える。それぞれの伸長されたデータ・ブロック９０４は、コア・アドレス・フィールド９０１と、キャッシュ・アドレス（ＣＡＤ）・フィールド９０５と、サブユニット列アドレス・フィールド９０２と、置換列アドレス・フィールド９０３とを有する。したがって、伸長されたキャッシュ補正データ８００は、コア・アドレス・フィールド９０１によって指定されるコア４２０内で、ＣＡＤフィールド９０５によって指定されたキャッシュ内の機能しない列（又は行）の代わりに機能する行（又は列）が使用することを可能にする。コア・アドレス・フィールド９０１内の事前定義されたコア・アドレス値が、コア上にない、Ｌ２キャッシュなどの共有されるキャッシュを指定することを可能にする。フィールド９０１〜９０３、９０５のサイズは、コア・アーキテクチャに応じる。伸長プロセスの一環として、キャッシュ補正ヒューズ・デコンプレッサ４１０が、キャッシュ補正要素４１６を初期設定するのに要求されるターゲット・データの完成イメージを作成する。キャッシュ補正データ９００の伸長の後に、担当するコア４２０における従来の分配機構が、それぞれのアドレス指定されたキャッシュ補正要素４１６にデータ９０１〜９０３、９０５を分配するのに使用され得る。
【００６８】
次に図１０を参照すると、本発明による伸長されたヒューズ補正データ１０００に関する例示的なフォーマットを示すブロック図が提示されている。前述したとおり、リセット中、ヒューズ補正デコンプレッサ４１１が、物理ヒューズ・アレイ４０１内の圧縮されたヒューズ補正データ４０６にアクセスし、その圧縮されたヒューズ補正データを伸長し、もたらされる伸長されたヒューズ補正データ１０００を、コア４２０内のその他のデコンプレッサ４０７〜４１０に供給する。伸長されたヒューズ補正データは、物理ヒューズ・アレイ４０１における連続するプログラミング事象の終わりを示す１つ又は複数のブロー終了フィールド１００１を備える。後のプログラミング事象が生じた場合、再ブロー・フィールド１００２が、プログラミングされて、後に続く１つ又は複数のヒューズ補正フィールド１００３が再ブローされるべき物理ヒューズ・アレイ４０１内のヒューズを示すことを示す。ヒューズ補正フィールドのそれぞれは、再ブローされるべき物理ヒューズ・アレイ４０１内の特定のヒューズのアドレスを、その特定のヒューズの状態（即ち、ブローされている、又はブローされていない）とともに備える。再ブローされるべきヒューズだけが、ヒューズ補正ブロック・フィールド１００３内で与えられ、所与の再ブロー事象内のフィールド１００３の各グループは、ブロー終了フィールド１００１によって区切られる。適切に符号化された再ブロー・フィールド１００２が、所与のブロー終了フィールド１００１の後に存在する場合、後に続く１つ又は複数のヒューズ・ヒューズが、対応するヒューズ補正フィールドによって示されるとおり、再ブローされて構成され得る。したがって、本発明は、アレイ・サイズ、及びそのアレイ・サイズ内で供給される他のデータによって制限されて、同一のヒューズに関する相当な数の再ブローの能力をもたらす。
【００６９】
本発明者らは、圧縮されたコンフィギュレーションデータが記憶された共有される物理ヒューズ・アレイの利用に関連する基板占有面積及び電力の利得が、マルチコア・チップ上に配置される更なるフィーチャのための機会をもたらすという所見も述べた。更に、本発明者らは、当業者には理解されるとおり、今日の半導体ヒューズ構造が、しばしば、いくつかの欠点を抱えていることも指摘しており、それらの欠点のうちの１つが、「グローバック」と呼ばれる。グローバックは、ヒューズが、ブローされた後、いくらかの時間を経て、再接続する、即ち、プログラミングされた（即ち、ブローされた）状態からプログラミングされていない（即ち、ブローされていない）状態に戻るようになるプログラミング工程の逆転である。
【００７０】
別の態様において、前述したとおり、本発明者らは、パワー・ゲーティング技法が、図３のチップ３３０のようなマルチコア・チップの消費電力を最小限に抑えるのに使用される場合、難題が存在し得ることを指摘している。本出願の範囲を超えるそのような技法は、１つ又は複数のコア３３２が利用されていないとき、そのことを検出するのに使用され、いくつもの方法で、その１つ又は複数のコア３３２の電源が切られる（パワー・ゲーティング事象としても知られる）。パワー・ゲーティングされたコア３３２が実行のために要求される場合、コア３３２に電力が復元され、コア３３２が実行を開始する。特に本発明者らの関心対象となるのが、コア３３２が１つ又は複数のコア上のキャッシュを備える事例であり、図９を参照して説明されるとおり、パワー・ゲーティング事象の下で、これらのキャッシュから電力が遮断される。当業者には理解されるとおり、パワー・ゲーティング事象の後にその１つ又は複数のキャッシュに電源を投入するために、その１つ又は複数のキャッシュはまず、前述したとおり、ヒューズ補正データを使用して構成されなければならない。しかし、ヒューズ・アレイの過度の読取りは、ヒューズ・アレイにおけるヒューズの寿命を短くすることも当業者には理解されよう。パワー・ゲーティングに関連する別の問題は、各コアが、キャッシュ補正ヒューズを読み取り、圧縮されたヒューズ修復データを伸長し、各コアのそれぞれのコア上のキャッシュのそれぞれに関して補正を構成するのに要求され得る過度の時間である。したがって、本発明の別の実施形態が、１）すべてのコアが、パワー・ゲーティング事象の後にそれらのコアのそれぞれのコア上のキャッシュを伸長し、構成するのに要求される時間を短縮し、２）パワー・ゲーティング条件の下でコアによるアクセスの回数を減らすことによってヒューズ・アレイの全体的な寿命を延ばすように提供される。
【００７１】
次に図１１に注目すると、初期、及びパワー・ゲーティング事象の後にマルチコア・デバイス１１００にキャッシュ補正データを迅速にロードするための本発明による機構の詳細を示すブロック図が提示されている。デバイス１１００は、実質的に図３〜図１０を参照して前述したとおりに構成された複数のコア１１０１を含む。更に、コア１１０１のそれぞれは、１つ又は複数のコア上のキャッシュＣＡＣＨＥ１〜ＣＡＣＨＥＮ１１０２と、キャッシュ修復ストア１１０３と、コンフィギュレーションデータ・ストア１１０４と、リセット・ロジック１１０５と、スリープ・ロジック１１０６とを含む。コア１１０２のそれぞれは、図３〜図１０を参照して前述したとおり構成された物理ヒューズ・アレイ１１１０、及びコア１１０１と同一のチップ上に配置されるが、コア１１０１のいずれの内部にも配置されないストア（たとえば、ランダム・アクセス・メモリ（ＲＡＭ））１１３０に結合される。このため、ストア１１０５は、以降、「非コア」ストア１１０５と呼ばれる。非コア・ストア１１３０は、コア１１０１のそれぞれにそれぞれが対応する指定されたサブストア１１３１〜１１３４を含む。マルチコア・デバイス１１００は、コア１１０１のそれぞれに結合された電力制御装置１１２０を更に含む。同期バスＳＮＹＣが、コア１１０１のそれぞれに結合されて、電源投入中、リセット中、及びパワー・ゲーティング事象中にコア１１０１の間で同期通信を可能にする。
【００７２】
例示の目的で、４つのコア１１０１、単一の物理ヒューズ・アレイ１１１０、及び単一の非コア・ストア１１３０だけが示されるが、本発明者らは、本発明による新規の独創的な概念が、任意の数の複数のコア１１０１、ヒューズ・アレイ１１１０、及び非コア・ストア１１３０に拡張され得ることを指摘している。一実施形態において、非コア・ストア１１３０は、パワー・ゲーティング事象中に電力を保持するランダム・アクセス・メモリ（ＲＡＭ）を備える。一実施形態において、非コア・ストア１１３０は、４ＫＢのＲＡＭを備え、ただし、他のサイズも企図される。
【００７３】
動作の際、電力制御装置１１２０は、コア１１０１の１つ又は複数に対する電力を遮断するため、及び復元するためにパワー・ゲーティングを実行するように構成される。電源投入／リセット動作中、コア１１０１のそれぞれの上のリセット・ロジック１１０５が、動作のなかでもとりわけ、前述したとおり、コア１１０１の構成を実行するように構成される。更に、リセット・ロジック１０５は、コンフィギュレーションデータ・レジスタ１１０４を読み取って、コア１１０１がマスタ・コアであるか、スレーブ・コアであるかを判定するように構成される。コンフィギュレーションデータが、コア１１０１がスレーブ・コアであることを示す場合、リセット・プロセスの一環として、スレーブ・コアは、コア１１０１のそれぞれのための伸長されたキャッシュ修復データがヒューズ・アレイ１１１０から読み取られ、非コア・ストア１１３０内の対応するサブストア１１３１〜１１３４に書き込まれたことを、マスタ・コアが同期バスＳＹＮＣを介して合図するまで待つ。対応するサブストア１１３１〜１１３４に書き込みが行われたことがＳＹＮＣを介して示されると、スレーブ・コアのそれぞれは、それらのコアのそれぞれの伸長された修復データを、対応するサブストア１１３１〜１１３４から読み取り、前述したとおり、それらのコアのそれぞれのコア上のキャッシュを構成することに取り掛かる。コンフィギュレーションデータが、コア１１０１がマスタ・コアであることを示す場合、電源投入／リセットの一環として、マスタ・コアは、コア１１０１のすべてのためのキャッシュ補正データをヒューズ・アレイ１１１０から読み取り、コア１１０１のすべてのための圧縮された補正データを伸長し、その伸長されたキャッシュ修復データを、コア１１０１のそれぞれに対応するサブストア１１３１〜１１３４に書き込む。次に、マスタ・コアは、その他のコア１１０１にＳＹＮＣを介して、伸長されたキャッシュ修復データの書き込みが完了したことを合図する。
【００７４】
パワー・ゲーティング事象中、電力制御装置１１２０は、コア１１０１の１つ又は複数から電力を、そのコアのコア上のキャッシュ１１０２からも電力が遮断される限りで遮断する。しかし、電力は、非コア・ストア１１３０からは遮断されず、これにより、コア１１０１のそれぞれのための伸長された修復データが保持される。スリープ・ロジック１１０６は、パワー・ゲーティング事象の後にそれぞれのコア１１０１にいつ電力が復元されるかを決定し、そのコア１１０１のコア上のキャッシュのためのキャッシュ修復データをそのコアの各々のサブストア１１３１〜１１３４から直接に読み取り、そのコア１１０１の各々の修復データ・ストア１１０３を、そのコア１１０１のコア上のキャッシュ１１０２の修復のために構成し、これにより、パワー・ゲーティング事象の後に動作に戻るのに要求される時間を劇的に短縮する一方で、それと同時にヒューズ・アレイ１１１０の寿命を実質的に延ばす。
【００７５】
本発明の部分、及び対応する詳細な説明は、ソフトウェア、即ち、コンピュータ・メモリ内のデータ・ビットに対する操作のアルゴリズム及び記号表現に関連して提示される。これらの説明及び表現は、当業者によって、自らの作業の内容を他の当業者に効果的に伝える説明及び表現である。アルゴリズムは、本明細書でこの用語が使用される際、及びこの用語が一般的に使用される際、所望される結果につながるステップの自己矛盾のないシーケンスであると考えられる。それらのステップは、物理量の物理操作を要求するステップである。通常、必然的にではないものの、これらの量は、記憶されること、転送されること、組み合わされること、比較されること、及びそれ以外で操作されることが可能な光信号、電気信号、又は磁気信号の形態をとる。ときとして、主に一般的な用法の理由で、これらの信号をビット、値、要素、シンボル、文字、項、数などと呼ぶことが好都合であることが分っている。
【００７６】
しかし、これら、及び類似した用語のすべては、適切な物理量に関連付けられるべきであり、単に、これらの量に付けられた便利なラベルに過ぎないことに留意されたい。特に明記しない限り、又は説明から明白なとおり、「処理すること」又は「演算すること」又は「計算すること」又は「決定すること」又は「表示すること」などの用語は、コンピュータ・システムのレジスタ及びメモリの内部の物理的な電子量として表されるデータを操作して、コンピュータ・システムのメモリ若しくはレジスタ、又は他のそのような情報記憶デバイス、情報伝送デバイス、若しくは情報表示デバイスの内部の物理量として同様に表される他のデータに変換する、コンピュータ・システム、マイクロプロセッサ、中央処理装置、又は類似した電子コンピューティング・デバイスのアクション及びプロセスを指す。
【００７７】
また、本発明のソフトウェア実施態様は、通常、プログラム記憶媒体の何らかの形態の上に符号化される、又は何らかのタイプの伝送媒体を介して実施されることにも留意されたい。プログラム記憶媒体は、電子媒体（たとえば、読取り専用メモリ、フラッシュ読取り専用メモリ、電気的にプログラミング可能な読取り専用メモリ）、ランダム・アクセス・メモリ磁気媒体（たとえば、フロッピー(登録商標)・ディスク若しくはハードディスク）、又は光媒体（たとえば、コンパクト・ディスク読取り専用メモリ若しくは「ＣＤ  ＲＯＭ」）であることが可能であり、読取り専用であっても、ランダム・アクセスであってもよい。同様に、伝送媒体は、金属トレース、より対線、同軸ケーブル、光ファイバ、又は当技術分野で知られている他の何らかの適切な伝送媒体であることが可能である。本発明は、いずれの所与の実装形態のこれらの態様によっても限定されない。
【００７８】
以上に開示される特定の実施形態は、単に例示的であり、当業者は、開示される概念、及び特定の実施形態を、本発明と同一の目的を実行するために他の構造を設計するため、又は変形するための基礎として直ちに利用することができること、並びに添付の特許請求の範囲に記載される本発明の範囲を逸脱することなく、様々な変更、置換、及び改変が行われ得ることが当業者には理解されよう。
【図１】
2016526245.tif 000005
【図２】
2016526245.tif 000006
【図３】
2016526245.tif 000007
【図４】
2016526245.tif 000008
【図５】
2016526245.tif 000009
【図６】
2016526245.tif 000010
【図７】
2016526245.tif 000011
【図８】
2016526245.tif 000012
【図９】
2016526245.tif 000013
【図１０】
2016526245.tif 000014
【図１１】
2016526245.tif 000015
【国際調査報告】
2016526245.tif 000016
2016526245.tif 000017
2016526245.tif 000018