(57)【特許請求の範囲】
【請求項１】
複数のキャッシュライン群を有するキャッシュと、
各キャッシュライン群における複数のウェイが超低電圧レベルで動作可能か否かを判断すべく前記複数のキャッシュライン群を試験し、当該試験に応答して各キャッシュライン群に対応する１以上のビットを設定する、パワー・オン・セルフ・テスト（ＰＯＳＴ）ロジックと、
前記超低電圧レベルに対応する超低電力モードに移行する場合に、前記複数のキャッシュライン群のそれぞれに対応する前記１以上のビットに基づいて、前記超低電圧レベルでは動作しないウェイのキャッシュラインをフラッシュする置換ロジックと、
を備え、
前記置換ロジックは、前記キャッシュのキャッシュライン群へのアクセスを検出して、前記超低電力モードにおいてアクセスされた前記キャッシュの前記キャッシュライン群に対応する前記１以上のビットに基づき、前記キャッシュの前記キャッシュライン群における第１ウェイのキャッシュラインが前記超低電圧レベルで動作可能か否かを判断し、その一方で、通常の動作モードにおいて、対応する前記キャッシュライン群にアクセスしている間は前記１以上のビットを無視し、
前記超低電圧レベルは、前記キャッシュの全てのメモリセルが正確に動作する電圧レベルに対応する最低電圧レベル以下である装置。
【請求項２】
前記置換ロジックは、前記超低電力モード（ＵＬＰＭ）において置換すべきキャッシュラインを選択する場合に、前記キャッシュの前記ライン群に対応する１以上のビットに少なくとも基づいて、前記第１ウェイの前記キャッシュラインを、ＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ：前回の使用から経過した期間が最も短いもの）として扱うか否かを判断する、請求項１に記載の装置。
【請求項３】
前記パワー・オン・セルフ・テスト（ＰＯＳＴ）ロジックが生成する試験結果に応じて、前記１以上のビットを更新するロジックをさらに備える請求項１に記載の装置。
【請求項４】
前記１以上のビットは、１以上の冗長ビットを含む請求項１から３のいずれか１項に記載の装置。
【請求項５】
前記キャッシュの前記ライン群における前記第１ウェイの前記キャッシュラインへの前記アクセスは、対応するタグでヒットであっても、前記１以上のビットに応じてミスとなる請求項１から４のいずれか１項に記載の装置。
【請求項６】
前記キャッシュの前記ライン群の所与のアドレスは、毎回異なるキャッシュライン群にマッピングされる請求項１から５のいずれか１項に記載の装置。
【請求項７】
前記所与のアドレスを複数の異なるキャッシュライン群にマッピングさせるカウンタをさらに備える請求項６に記載の装置。
【請求項８】
前記キャッシュは、レベル１キャッシュ、ミッドレベルキャッシュ、または、ラストレベルキャッシュを含む請求項１から７のいずれか１項に記載の装置。
【請求項９】
１以上のプロセッサコアをさらに備え、前記１以上のプロセッサコアのうち少なくとも１つは、前記キャッシュを有する請求項１から８のいずれか１項に記載の装置。
【請求項１０】
複数のキャッシュライン群における複数のウェイが超低電圧レベルで動作可能か否かを判断すべく、パワー・オン・セルフ・テスト（ＰＯＳＴ）において、前記複数のキャッシュライン群を試験し、当該試験に応じて各キャッシュライン群に対応する１以上のビットを設定する段階と、
前記超低電圧レベルに対応する超低電力モードに入る要求を受信する段階であって、当該超低電圧レベルは最低電圧レベル以下であり、当該最低電圧レベルとは前記キャッシュの全てのメモリセルが正確に動作する電圧レベルである、超低電力モードに入る要求を受信する段階と、
複数の前記１以上のビットによって、前記複数のキャッシュライン群における前記複数のウェイのキャッシュラインが前記超低電圧レベルで動作できないと判断されることに応じて、対応するキャッシュライン群における該当するウェイのキャッシュラインをフラッシュする段階と、
前記キャッシュのキャッシュライン群にアクセスする要求を受信する段階と、
前記キャッシュがキャッシュライン群にアクセスする間に前記超低電圧レベルで前記キャッシュが動作するか否かを判断する段階と、
前記超低電力モードにおいて前記キャッシュの前記キャッシュライン群に対応する前記１以上のビットに基づき、前記超低電圧レベルで前記キャッシュの前記キャッシュライン群における第１ウェイのキャッシュラインが動作可能か否かを判断し、その一方で、通常の動作モードにおいて、前記最低電圧レベル以上で前記キャッシュライン群にアクセスする間は、対応する前記１以上のビットは無視する段階と
を備える方法。
【請求項１１】
前記試験する段階に応じて、前記１以上のビットを更新する段階をさらに備える請求項１０に記載の方法。
【請求項１２】
超低電力モード（ＵＬＰＭ）において置換すべきキャッシュラインを選択する場合に、前記キャッシュの前記ライン群に対応する１以上のビットに少なくとも基づいて、前記第１ウェイの前記キャッシュラインを、ＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ：前回の使用から経過した期間が最も短いもの）として扱うか否かを判断する段階を更に備える、請求項１０または１１に記載の方法。
【請求項１３】
命令を格納するメモリと、
前記命令を実行するプロセッサコアと
を備え、
前記プロセッサコアは、
複数のキャッシュライン群における複数のウェイが超低電圧レベルで動作可能か否かを判断すべく前記複数のキャッシュライン群を試験し、当該試験に応答して各キャッシュライン群に対応する１以上のビットを設定する、パワー・オン・セルフ・テスト（ＰＯＳＴ）ロジックと、
前記超低電圧レベルに対応する超低電力モードに移行する場合に、前記複数のキャッシュライン群のそれぞれに対応する前記１以上のビットに基づいて、前記超低電圧レベルでは動作しないウェイのキャッシュラインをフラッシュする置換ロジックと、
を備え、
前記置換ロジックは、キャッシュのキャッシュライン群へのアクセスを検出して、前記超低電力モードにおいてアクセスされている前記キャッシュの前記キャッシュライン群に対応する１以上のビットに基づき、前記キャッシュの前記キャッシュライン群における第１ウェイのキャッシュラインが前記超低電圧レベルで動作可能か否かを判断し、その一方で、通常の動作モードにおいて、前記キャッシュの対応する前記キャッシュライン群にアクセスしている間は前記１以上のビットを無視し、
前記超低電圧レベルは、前記キャッシュの全てのメモリセルが正確に動作する電圧レベルに対応する最低電圧レベル以下であるコンピューティングシステム。
【請求項１４】
前記置換ロジックは、超低電力モード（ＵＬＰＭ）においてキャッシュラインをエビクションするべく選択する場合に、前記キャッシュの前記ライン群に対応する１以上のビットに少なくとも基づいて、前記第１ウェイの前記キャッシュラインを、ＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ：前回の使用から経過した期間が最も短いもの）として扱うか否かを判断する、請求項１３に記載のコンピューティングシステム。
【請求項１５】
前記キャッシュは、レベル１キャッシュ、ミッドレベルキャッシュ、または、ラストレベルキャッシュを含む請求項１３または１４に記載のコンピューティングシステム。
【請求項１６】
前記プロセッサコアに結合されているオーディオデバイスをさらに備える請求項１３から１５のいずれか１項に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、電子機器に関する。より具体的には、本発明の実施形態は、低電圧動作時に１以上のキャッシュ部分をディセーブルすることに関する。
【背景技術】
【０００２】
今日の大量生産のシリコンには、製造時に起因するパラメータのバラツキが数多く存在するという問題があり得る。このバラツキは、さまざまな種類のメモリセルを製造する際に問題を引き起こす可能性がある。このバラツキは、メモリセルが正確に動作する最低電圧を左右するＶｃｃｍｉｎとして知られている現象の原因である。通常のマイクロプロセッサはさまざまな種類のメモリセルを用いて実現される構造を数多く含むので、このような構造は通常、マイクロプロセッサ全体が確実に動作する最低電圧を左右する。電圧スケーリングはマイクロプロセッサの消費電力を低減するのに有効であるので、特定の設計は低電圧で利用する際にＶｃｃｍｉｎが障害となる可能性がある。
【図面の簡単な説明】
【０００３】
添付図面を参照しつつ詳細に説明する。図中、参照番号の最大桁は当該参照番号が最初に使用される図面の番号を表す。複数の異なる図面において同じ参照番号が用いられている場合は、同様または同一の構成要素であることを示す。
【図１】本明細書に記載するさまざまな実施形態を実現するべく利用されるコンピューティングシステムの実施形態を示すブロック図である。
【図２Ａ】一部の実施形態に係るキャッシュの実施形態を示す図である。
【図２Ｂ】一部の実施形態に係るキャッシュの実施形態を示す図である。
【図３Ａ】一部の実施形態に係る、ディセーブルビット試験の電圧ソーティング（ｓｏｒｔｉｎｇ）状態図を示す図である。
【図３Ｂ】一部の実施形態に係る、ディセーブルビット試験の電圧ソーティング（ｓｏｒｔｉｎｇ）状態図を示す図である。
【図４Ａ】実施形態に係る、キャッシュでの読出動作を説明するための概略図である。
【図４Ｂ】実施形態に係る、アドレス再マッピングロジックを示すブロック図である。
【図５】本発明の実施形態に係る方法を説明するためのフローチャートである。
【図６】本明細書に記載するさまざまな実施形態を実現するべく利用されるコンピューティングシステムの実施形態を示すブロック図である。
【図７】本明細書に記載するさまざまな実施形態を実現するべく利用されるコンピューティングシステムの実施形態を示すブロック図である。
【発明を実施するための形態】
【０００４】
以下の説明では、さまざまな実施形態を完全に説明するべく具体的且つ詳細な内容を数多く記載する。しかし、本発明のさまざまな実施形態は、そのような具体的且つ詳細な内容を利用せずとも実施し得る。また、公知の方法、手順、構成要素、および、回路は、本発明の具体的な実施形態をあいまいにすることを避けるべく、詳細な説明を省略している。さらに、本発明の実施形態のさまざまな側面は、半導体集積回路（ハードウェア）、１以上のプログラムに編成されたコンピュータ可読命令（ソフトウェア）、または、ハードウェアおよびソフトウェアの組み合わせ等のさまざまな手段を用いて実現し得る。本開示では、「ロジック」という用語は、ハードウェア、ソフトウェア、または、これらの組み合わせを意味するものとする。また、本明細書で説明する一部の実施形態では設定値を論理０、および、クリア値を論理１とするが、例えば、実施例によっては逆にすることができる。
【０００５】
一部の実施形態によると、低電圧動作時に１以上のキャッシュ部分（キャッシュラインまたはキャッシュラインのサブブロック）をディセーブルする。（上述した）Ｖｃｃｍｉｎの問題を解決することによって、メモリデバイスは、消費電力を低減するＶｃｃｍｉｎレベル以下で動作することができ、例えば、携帯可能なコンピューティングデバイスの電池の寿命が長くなる。また、一部の実施形態によると、性能損失は、低電圧動作時にキャッシュラインよりも低い粒度でキャッシュ内のメモリセルの動作を維持することによって、軽減され得る。さらに、本発明の一実施形態は、例えば、Ｉｎｔｅｌ（登録商標）が実証した信頼性基準で保証されている条件下で、メモリセルがある期間にわたって格納している情報を確実に保持するように、メモリセル電圧をある電圧レベルで維持する。一般的に、メモリセルは、所与の電圧レベルでの一連の試験に合格すると、当該電圧レベルで確実に動作すると見なされる。試験では、メモリセルの読出機能、書込機能、および、保持機能を評価するとしてよい。例えば、試験時にエラーが見つからないセルのみ、信頼性があると見なされる。
【０００６】
ある実施形態によると、例えば、超低動作電圧（ＵＬＯＶ）において1以上のキャッシュラインが機能しない（または、動作の信頼性が低い）という判断（例えば、１以上のキャッシュラインに対応するビット値によって示される）に基づいて、ＵＬＯＶでの動作時にこれらの１以上のキャッシュラインをディセーブルするとしてよい。ＵＬＯＶは、現在の低電圧レベルである約７５０ｍＶ（本明細書では「最低電圧レベル」とも呼ぶ場合がある）よりも、例えば、約１５０ｍＶ低い電圧レベルであってよい。一実施形態によると、プロセッサは、ＵＬＯＶで動作することが不可能な１以上のキャッシュラインがフラッシュされた（例えば、無効化された、および／または、必要であれば、メインメモリ等の別のメモリデバイスに書き込まれた）という判断に応じて、超低電力モード（ＵＬＰＭ）（例えば、ＵＬＯＶで動作する）に移行するとしてよい。
【０００７】
一実施形態によると、（キャッシュラインをディセーブルした結果）キャッシュサイズが小さくなったことによる性能損失は、例えば、高性能アウト・オブ・オーダ・プロセッサにおいて軽減され得る。例えば、不良ビットの割合が中程度になっても、性能に対して比較的低コストであること、複雑でないこと、および、性能予測可能性が高いことを考慮すると、許容され得る。このような解決策は、高いＶｃｃで動作している場合には性能に影響がない一方、Ｖｃｃｍｉｎ動作レベル以下の場合に効果的であると考えられる。ある実施形態によると、Ｖｃｃｍｉｎ以下での動作の場合、高い粒度（例えば、６４ビット）で不良サブブロックをディセーブルする際には、１または少数の不良サブブロックを持つキャッシュラインを依然として利用するので、キャッシュライン・ディセーブル方法で生じる性能オーバーヘッドが低減されるとしてよい。さらに、チップのビニングについて鍵となる高い性能予測可能性は、性能を左右するキャッシュ群がほとんどないプログラムが、キャッシュ内の不良サブブロックの位置に関係なく同様にパフォーマンスヒットを受け取るようにキャッシュラインに対するアドレスマッピングをローテーションさせることによって、実現される。このような技術は、高いＶｃｃで動作している際の性能には、ほとんどまたは全く影響がないと考えられている。
【０００８】
本明細書で説明する技術によれば、例えば、図１から図７に基づき説明するものを始めとしてさまざまなコンピューティングデバイスの性能が改善され得る。より具体的には、図１は、本発明の実施形態に係るコンピューティングシステム１００を示すブロック図である。システム１００は、１以上のプロセッサ１０２−１から１０２−Ｎ（本明細書では「プロセッサ１０２」と総称する）を備えるとしてよい。プロセッサ１０２は、インターコネクトネットワークまたはバス１０４を介して通信するとしてよい。各プロセッサはさまざまな構成要素を有するとしてよく、分かりやすいように、一部の構成要素はプロセッサ１０２−１についてのみ説明する。したがって、残りのプロセッサ１０２−２から１０２−Ｎはそれぞれ、プロセッサ１０２−１に関して説明した構成要素と同一または同様の構成要素を有するとしてよい。
【０００９】
実施形態によると、プロセッサ１０２−１は、１以上のプロセッサコア１０６−１から１０６−Ｍ（本明細書では「コア１０６」と総称する）、共有キャッシュ１０８、および／または、ルータ１１０を有するとしてよい。プロセッサコア１０６は、１つの集積回路（ＩＣ）チップによって実現されるとしてよい。当該チップはさらに、１以上の共有キャッシュおよび／あるいは私有キャッシュ（例えば、キャッシュ１０８）、バスあるいはインターコネクト（例えば、バスあるいはインターコネクトネットワーク１１２）、メモリコントローラ（例えば、図６および図７を参照しつつ説明するメモリコントローラ）、または、その他の構成要素を含むとしてよい。
【００１０】
一実施形態によると、ルータ１１０は、プロセッサ１０２−１および／またはシステム１００のさまざまな構成要素同士を通信させるべく利用されるとしてよい。さらに、プロセッサ１０２−１は、複数のルータ１１０を有するとしてよい。また、複数のルータ１１０は、プロセッサ１０２−１の内部または外部のさまざまな構成要素間のデータルーティングを可能とするべく互いに通信し合うとしてもよい。
【００１１】
共有キャッシュ１０８は、プロセッサ１０２−１の１以上の構成要素、例えば、コア１０６が利用するデータ（例えば、命令を含む）を格納するとしてよい。例えば、共有キャッシュ１０８は、メモリ１１４に格納されているデータにプロセッサ１０２の構成要素がより早くアクセスできるように、当該データをローカルにキャッシュするとしてよい。実施形態によると、キャッシュ１０８は、ミッドレベルキャッシュ（例えば、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）、または、その他のレベルのキャッシュ）、ラストレベルキャッシュ（ＬＬＣ）、および／または、これらの組み合わせを含むとしてよい。また、プロセッサ１０２−１のさまざまな構成要素は、バス（例えば、バス１１２）および／または、メモリコントローラあるいはメモリハブを介して、共有キャッシュ１０８と直接通信するとしてもよい。図１に示すように、一部の実施形態によると、コア１０６のうち１以上は、レベル１（Ｌ１）キャッシュ（１１６−１）（本明細書では「Ｌ１キャッシュ１１６」と総称）および／またはＬ２キャッシュ（不図示）を含むとしてよい。
【００１２】
図２Ａおよび図２Ｂは、一部の実施形態に係るキャッシュの実施形態を示す図である。一部の実施形態によると、図２Ａおよび図２Ｂに示すキャッシュは、図１、図６または図７といった本願のほかの図面を参照しつつ説明するキャッシュとして利用され得る。より具体的には、一部の実施形態によると、コンピューティングデバイスでは設定可能なキャッシュを利用するとしてよい。設定可能なキャッシュは、低電圧での動作を可能とするべく、容量を犠牲にするとしてよい。
【００１３】
一部の実施形態によると、以下に説明する３つの特徴のうち１以上を利用するとしてよい。第１に、ＵＬＯＶと呼ばれる電圧レベルを利用する低電力状態（本明細書では、ＵＬＰＭと呼ぶ）を追加で導入する。一実施形態によると、ＵＬＯＶは、Ｖｃｃｍｉｎの現在値（約７５０ｍＶと仮定している）よりも約１５０ｍＶ低い電圧である。第２に、ＵＬＯＶにおいてどのキャッシュラインが機能するかを判断するべく電圧ソーティングアルゴリズムを利用するとしてよい。第３に、キャッシュライン群はそれぞれ、ディセーブルビットまたはｄビットに対応付けられている。電圧ソーティングアルゴリズムは、超低動作電圧で完全には機能しないキャッシュライン群のそれぞれに対応付けられているｄビットを設定する。
【００１４】
また、ＵＬＰＭは、現在の電力状態（ｐｏｗｅｒ  ｓｔａｔｅ）の拡張と見なされるとしてよい。例えば、マイクロプロセッサが超低電力モードに移行する場合、ｄビットが設定されているキャッシュラインは全て、低電圧に移行することによって影響を受けるキャッシュからフラッシュされる。ＬＬＣ、ＤＣＵ（Ｌ１データキャッシュ）、および、ＩＦＵ（Ｌ１命令キャッシュ）が移行の後ＵＬＯＶで動作すると仮定すると、ｄビットが設定されているＤＣＵおよびＩＣＵのキャッシュラインは全てフラッシュされる（例えば、必要であれば、無効化されてメモリ１１４に書き戻される）。次に、ｄビットが設定されている各キャッシュラインをフラッシュすることによって、ＬＬＣをＵＬＯＶ動作に備えさせる。ｄビットが設定されているキャッシュラインが全てシステムから除外されると、対応するプロセッサがＵＬＰＭに移行するとしてよい。
【００１５】
キャッシュは通常、複数の群から編成されており、それぞれの群が複数のウェイで構成される。それぞれのウェイは、通常３２−６４バイトの１つのキャッシュラインに対応する。プロセッサがキャッシュにアドレスを提示すると、キャッシュルックアップ（検索）が行われる。アドレスは、ラインオフセット、群選択、および、タグという３つの部分に分割され得る。１０２４個の群を有し、それぞれの群が８個のウェイを有し、それぞれのウェイが１個の６４バイトラインを有するキャッシュ設計を考える。キャッシュ全体では、５１２ＫＢの格納容量を持つ（１０２４×８×６４）。キャッシュは、５０ビットのアドレスを処理するように設計されている場合、以下のようにインデックスが割り振られるとしてよい。ビット０−５は、６４バイトライン内でのバイトを特定するラインオフセットである。一部の実施形態によると、ビット０−５は、先頭バイトを特定するとしてもよい。この理由の１つとしては、ロード／格納命令によっては複数のバイトにアクセスする場合がある点が挙げられる。例えば、指定されたバイト等から始まる１バイト（または２バイト等）を読み出すとしてよい。ビット６−１５は、ラインを格納する群を特定する群選択である。残りのビット（１６−４９）は、タグとして格納される。群選択のビットが同じであるキャッシュラインは全て、特定されている群が有する８個のウェイのうちのいずれかを構成する。
【００１６】
実施形態によると、キャッシュライン群は、低電圧において当該キャッシュライン群が機能するか否かを特定するｄビットに対応付けられているとしてよい。図２Ａおよび図２Ｂに示すように、ｄビットは、置換ロジック２０２で判断されるが、プロセッサがＵＬＰＭである場合、または、ＵＬＰＭに移行する場合以外は、何の影響も及ぼさない。したがって、ロジック２０２は、１以上のキャッシュ部分（例えば、キャッシュライン）へのアクセスを検出して、当該キャッシュ部分がＶｃｃｍｉｎ以下で動作可能か否かを判断するとしてよい。ＵＬＰＭへ移行する際、ｄビットが設定されているキャッシュラインは全てフラッシュされる。これは、ＵＬＰＭへ移行した後でデータが失われてしまうことを避けるためである。ＵＬＰＭでは、０に設定されているｄビットに対応付けられているキャッシュラインのみが有効と見なされることを除いて、キャッシュは通常通りに機能する。ＵＬＰＭにおいてアドレスに基づいて群を検索する場合、ｄビットによって、ディセーブルされたラインに誤って一致することが避けられる。本明細書で説明する実施形態では設定値を０、および、クリア値を１とするが、実施例によっては逆にすることもできる。例えば、クリアされたｄビットが、１以上の対応するキャッシュラインのディセーブルを示すとしてもよい。
【００１７】
また、キャッシュミスが発生すると、置換ロジック２０２はキャッシュから除外するキャッシュラインを選択する。選択されたキャッシュラインは、メモリからフェッチされた新しいデータで上書きされる。ＵＬＰＭにおいて、ディセーブルされたキャッシュラインへの割り当てを防ぐべく、置換ロジック２０２（図２Ｂ）によってｄビットが参照される。ディセーブルされたキャッシュラインは、置換プロセスによってＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ：前回の使用から経過した期間が最も短いもの）として扱われることによって、割り当てを防ぐとしてよい。このような期間の長さに基づくベクトル置換プロセスは、例えば、各キャッシュラインをディセーブルする際に利用されるとしてよい。このプロセスでは、ビットベクトル（キャッシュライン毎に１ビット）を走査して、０が付与されている最初のラインをＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ：前回の使用から経過した期間が最も長いもの）と特定して、置換する。キャッシュラインは、対応付けられているビットを１に設定することによって、常にＭＲＵとして扱われ、置換対象として選択されることはない。
【００１８】
ｄビットでの不良について、ｄビットがキャッシュの機能に影響を及ぼすＵＬＰＭでは、ｄビットの不良は２通りのうちいずれか一方で表れるとしてよい。ｄビット値が０の場合は、低電圧において機能するキャッシュラインを意味する。逆に、ｄビット値が１の場合は、低電圧において機能しないキャッシュラインを意味する。第１のケースは、ｄビットが１に固定されてしまい、対応するキャッシュラインがディセーブルされるケースである。この場合、ｄビットが損傷している以外は全てのビットが機能しているキャッシュラインがディセーブルされる。この場合には正しく機能する。第２のケースは、ｄビットが０に固定されてしまうケースである。このケースは、損傷しているｄビットが誤ってキャッシュラインが機能していると示すので、当該キャッシュラインに不良がある場合に問題となってしまう。正しく機能させるべく、本発明の実施形態では、ｄビットが誤って０に固定されてしまうことを確実になくす。この問題を解決する方法の１つに、セル設計を変更して、ｄビットが上記のような不良を持つ可能性を無くす。２つ目の方法は、１以上の冗長ｄビットを追加する方法である。例えば、３つのｄビットを利用するとしてよい。３つのビットは全て、同じ値に書き込まれる（全て１、または、全て０）。ｄビットが読み出されて、いずれか１つのビットが１に設定されていれば、ディセーブルされたキャッシュラインとして扱われるとしてよい。０を３つ含むと正しく読み出されたｄビットのみが、超低動作電圧で利用可能なキャッシュラインとして扱われる。この場合、ｄビットのエラーが発生するのは３つのビットが全て損傷した場合のみであるので、ｄビットのエラーが発生する可能性は非常に低くなる。
【００１９】
図３Ａおよび図３Ｂはそれぞれ、一部の実施形態に係る、製造時およびＰＯＳＴ（パワー・オン・セルフ・テスト）時に行われるｄビット試験の電圧ソーティング状態図である。より具体的には、電圧ソーティングは、２つの方法のうちいずれか一方で実行されるとしてよい。１つ目の方法としては、図３Ａに示すようにプロセッサが製造される場合に電圧ソーティングが実行されるとしてよい。ｄビットは、電源を一旦切って再度電源を入れた後も有効な状態を維持するので、ヒューズまたはその他の種類の不揮発性メモリ、例えば、ＢＩＯＳ（ベーシック・インプット・アウトプット・システム）メモリまたはオンパッケージフラッシュに格納される。別の方法としては、キャッシュラインに対応付けられているタグまたは状態ビット（例えば、ＭＥＳＩ（モディファイド・エクスクルーシブ・シェアド・インバリッド）ビット）に含まれている追加ビットにｄビットを格納する方法が考えられる。このようにｄビットを格納する場合には、電源を切る度に、新たに電圧ソーティングを実行してｄビットを再生成する必要がある。この方法の場合さらに、低電圧においてその場でメモリ構造にメモリ試験を実行する機能がプロセッサに必要になる。この構成を実現する方法の１つとして、図３Ｂに示すように（適切なｄビットを設定する）ＰＯＳＴを利用する方法が考えられる。より具体的には、図３Ｂは、ＰＯＳＴによってｄビットが設定され、電源が一旦切られて再度電源が入れられる度にｄビットが再生成される場合に、ＨＦＭ（高周波数モード）、ＬＦＭ（低周波数モード）、ＵＬＰＭ、オフという４つの異なる状態を持つプロセッサがある状態から別の状態へと移行する様子を説明するための図である。さらに、ＰＯＳＴは、オフ状態から３つのオン状態のうちの１つに移行する際には毎回行われる。
【００２０】
図２Ａから図３Ｂを参照しつつ説明したように、キャッシュは、性能レベルに応じて容量が異なるように、および、電力バジェットに応じてＶｃｃｍｉｎが異なるように構成可能である。また、一部の実施形態によると、市場毎に電力要件が異なる点を考慮して部品を設計することが可能となるとしてよい。この結果、多種多様な市場に対応するように設計される製品を減らすことができるので、コストが削減される。
【００２１】
実施形態によると、不良キャッシュエントリは、エントリを完全に破棄するのではなく、そのうち不良でないビットを利用する。また、Ｖｃｃｍｉｎが低くてもキャッシュを動作させるべく、Ｖｃｃを下げたことに起因して不良ビットの割合が中程度になっても、これは許容される。この方法によればさらに性能予測可能性が向上するという効果が得られ、２つのプロセッサが任意の所与のプログラムについて同一の性能を確実に得ることができるようになる。性能のバラツキは、チップ試料毎に不良箇所が異なり、性能への影響が異なることが原因である。
【００２２】
図４Ａは、実施形態に係るキャッシュでの読出動作を説明するための概略図である。図示されているキャッシュは二ウェイのセット連想キャッシュであり、各キャッシュラインは４つのサブブロックを含む。実施形態によると、各キャッシュラインは、キャッシュタグと共に格納される数ビットで拡張されている（図４Ａに示すように、例えば、ビット１０１１はタグ１と共に格納されており、または、ビット０１１１はタグ２と共に格納されている）。各キャッシュラインは、論理上複数のサブブロックに分割されている。サブブロックのサイズは、ラインのうち、パリティまたはＥＣＣ（誤り訂正符号）で保護される最小部分と同じとしてよい。例えば、６４ビットの粒度で内容がＥＣＣによって保護され、且つ、キャッシュラインが８個のサブブロックを有するＤＬ０キャッシュは、８個の追加ビットを利用して、各サブブロックが使用されているか否かを示す。この追加ビットは全て、対応するサブブロックが許容数よりも多くの不良ビットを含むビット以外は、設定される。例えば、ＳＥＣＤＥＤ（シングルエラー訂正・ダブルエラー検出）保護ブロックは、不良ビットが２つ含まれる場合、対応するビットがリセットされているはずである。
【００２３】
図４Ａに示すキャッシュは、以下に説明するように動作する。アクセスが実行されると、タグ４０２および４０３が読み出されて、必要であれば、群４０４の全てのラインからのデータが取り出される。尚、アドレスオフセットはどのサブブロックが必要であるかを示している。オフセット４０６は、群の各キャッシュラインについて必要なサブブロックに対応するビットを指定するために利用される。キャッシュタグは、（例えば、比較器４０８および４１０によって）必要なアドレスと比較される。タグヒット４１１（ＡＮＤゲート４１４および４２２の出力に基づくＯＲゲート４１２からの出力）が得られる場合もあるが、そのサブブロックに対応する追加ビットが当該サブブロックが不良であると示す場合がある。このような場合、偽のヒット４１８（例えば、ＡＮＤゲート４１６および４２４の出力に基づくＯＲゲート４２０からの出力）が得られる。この場合の対応として、以下のものが挙げられ得る。（ｉ）データがないので、ミスと報告する。（ｉｉ）キャッシュラインは除外して、損傷データは書き戻しキャッシュのために上位キャッシュレベルに更新される。更新が必要なのは有効なサブブロックのみであることに留意されたい。ライトスルーキャッシュは、キャッシュラインを除外してロードに備え、上位キャッシュレベルを更新して格納に備える。（ｉｉｉ）キャッシュラインは、群においてＭＲＵ（前回の利用から経過している時間が最も短い）ラインとしてマーキングされ、上位キャッシュレベルからデータが要求されると、必要なデータを保持する不良の無いブロックを含む可能性が非常に高い、別のキャッシュラインに入れられる。可能性は低いが、選択されたキャッシュラインの同じ位置に不良サブブロックがある場合、当該プロセスが繰り返されて、要求された位置に不良の無いサブブロックを持つキャッシュラインが群に少なくとも１つあれば、そのキャッシュラインを特定する。不良ビットの割合が許容レベル以上に高い場合（例えば、所与の設計について定められているしきい値に基づいて決まる）のみ、所与の群のキャッシュラインの同じ位置にある全てのサブブロックがエラーとなる。
【００２４】
したがって、ある実施形態によると、キャッシュへのアクセスは、キャッシュラインの一部を特定している追加ビットが不良を示すので、タグでヒットしてもミスとして扱われる場合がある。上述したように、ｄビットを利用して任意のキャッシュラインをディセーブルする方法があるものと理解されたい。このようなメカニズムを利用して、不良ダーティー損傷ビット、偽有効ビット、不良タグを持つキャッシュラインの利用を避けるとしてよい。実施形態によると、追加ビットが不良ビットである場合、キャッシュラインも不良キャッシュラインとマーキングする。また、図４Ａに示した追加メカニズム（例えば、追加ビット、および、比較ロジック、および、対応付けられているＡＮＤゲートおよびＯＲゲート）は、高いＶｃｃで動作している場合は、例えば、追加ビットを全て「１」に設定するか、または、追加ビットを単に無視することで、省略されるとしてよい。
【００２５】
図４Ｂは、実施形態に係るアドレス再マッピングロジックを示すブロック図である。性能のバラツキに対応するべく、所与のアドレスが複数の異なる時間間隔で複数の異なるキャッシュ群にマッピングされるように、動的アドレス再マッピングを（例えば、ラウンドロビン方式で）利用するとしてよい。このような構成とすることによって、プログラムおよび不良ビットの割合を所与とすれば、不良ビットの箇所がどこであろうと、プロセッサ毎の性能のバラツキはほとんどなくなる。
【００２６】
図４Ｂに示すように、Ｎビットカウンタ４５２を利用するとしてよい。尚、Ｎは、１からキャッシュ群を特定するために必要なビット数までの任意の値であってよい。例えば、１ライン当たり６４バイトでウェイを８個備える３２ＫＢのキャッシュの場合、群の数は６４個であり、６ビットでインデックスが割り振られる。このため、６ビット以下のカウンタで十分である。図示している具体的な実施例によると、４ビットのカウンタ４５２を利用する。当該カウンタは、周期的、または、時折（例えば、１０００万サイクル毎に）更新される。カウンタのＮビットは、ＸＯＲゲート４５４によってＸＯＲ演算がビット単位で行われ、ビットのうちＮビットが群に対してインデックスを割り振っている。したがって、実施形態によると、所与のアドレスは、その時々によって異なるキャッシュ群にマッピングされるとしてよい。
【００２７】
また、アドレス再マッピングは、キャッシュアクセス時、または、アドレス算出時のいずれかに実行されるとしてよい。レイテンシの影響は、追加されたＸＯＲゲートレベルは１つであり、入力の半分（カウンタから出力されるもの）は前もって設定されているので、小さいはずである。実施形態によると、キャッシュの内容は、不一致となることを避けるべくカウンタが更新されると常に、フラッシュされる。しかし、カウンタは滅多に更新されないので、性能に対する影響は無視できる程度である。また、図４Ｂに示すメカニズムは、単にカウンタの更新を停止することによって、高いＶｃｃで動作している場合には無効化されるとしてよい。
【００２８】
図５は、本発明の実施形態に係る、低電圧動作時にキャッシュの一部分をディセーブルする方法５００を説明するためのフローチャートである。一部の実施例によると、図１から図４Ｂおよび図６から図７を参照しつつ説明するさまざまな構成要素を用いて、図５を参照しつつ説明する動作のうち１以上を実行するとしてよい。
【００２９】
図１から図５を参照しつつ説明すると、動作５０２において、（例えば、図４Ａに示すロジックまたはロジック２０２によって）キャッシュの一部分に対するアクセス要求を受信または検出するか否かを判断する。アクセスを受信すると、動作５０４において、例えば図１から図４Ｂを参照しつつ本明細書で説明したように、このキャッシュの一部分がＶｃｃｍｉｎ以下で動作可能か否かを判断する。動作５０４の判断結果が否定的である場合、（例えば図１から図４Ｂを参照しつつ説明したように）ミスと返される。動作５０４の判断結果が肯定的である場合、動作５０８において、（例えば図１から図４Ｂを参照しつつ説明したように）ヒットと返す。
【００３０】
図６は、本発明の実施形態に係るコンピューティングシステム６００を示すブロック図である。コンピューティングシステム６００は、インターコネクトネットワーク（またはバス）６０４を介して通信する１以上の中央演算処理装置（ＣＰＵ）６０２またはプロセッサを備えるとしてよい。プロセッサ６０２は、汎用プロセッサ、ネットワークプロセッサ（コンピュータネットワーク６０３を介してやり取りされるデータを処理するもの）、または、その他の種類のプロセッサ（縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサまたは複合命令セットコンピュータ（ＣＩＳＣ）を含む）を含むとしてよい。また、プロセッサ６０２は、シングルコア構成またはマルチコア構成であってよい。マルチコア構成のプロセッサ６０２は、複数種類のプロセッサコアを同じ集積回路（ＩＣ）ダイに集積化するとしてよい。また、マルチコア構成のプロセッサ６０２は、対称型マルチプロセッサまたは非対称型マルチプロセッサとして実現されるとしてよい。実施形態によると、プロセッサ６０２のうち１以上のプロセッサは、図１に示すプロセッサ１０２と同一または同様のプロセッサであってよい。例えば、プロセッサ６０２のうち１以上のプロセッサは、図１から図５を参照しつつ説明したキャッシュのうち１以上を有するとしてよい。また、図１から図５を参照しつつ説明した動作は、システム６００の構成要素のうち１以上によって実行されるとしてよい。
【００３１】
チップセット６０６もまた、インターコネクトネットワーク６０４と通信するとしてよい。チップセット６０６は、メモリコントロールハブ（ＭＣＨ）６０８を有するとしてよい。ＭＣＨ６０８は、メモリ６１２と通信するメモリコントローラ６１０を含むとしてよい。メモリ６１２は、図１に示すメモリ１１４と同一または同様のメモリであってよい。メモリ６１２は、ＣＰＵ６０２またはコンピューティングシステム６００が備える任意のその他のデバイスが実行する命令列を始めとするデータを格納するとしてよい。本発明の一実施形態によると、メモリ６１２は、１以上の揮発性ストレージ（または、メモリ）デバイス、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、または、その他の種類のストレージデバイスを含むとしてよい。また、ハードディスク等の不揮発性メモリを利用するとしてもよい。複数のＣＰＵおよび／または複数のシステムメモリ等のその他のデバイスもインターコネクトネットワーク６０４を介して通信を行うとしてよい。
【００３２】
ＭＣＨ６０８はさらに、ディスプレイデバイス６１６と通信するグラフィクスインターフェース６１４を含むとしてよい。本発明の一実施形態によると、グラフィクスインターフェース６１４は、アクセラレーテッド・グラフィクス・ポート（ＡＧＰ）を介してディスプレイデバイス６１６と通信するとしてよい。本発明の実施形態によると、ディスプレイ６１６（フラットパネルディスプレイ等）は、例えば、ビデオメモリまたはシステムメモリ等のストレージデバイスに格納されているデジタル画像を、ディスプレイ６１６によって解釈および表示される表示信号に変換する信号変換器を介して、グラフィクスインターフェース６１４と通信するとしてよい。ディスプレイデバイスが生成する表示信号は、ディスプレイ６１６で解釈および表示される前に、さまざまな制御デバイスに送信されるとしてもよい。
【００３３】
ハブインターフェース６１８によって、ＭＣＨ６０８および入出力制御ハブ（ＩＣＨ）６２０は互いに通信できるようになるとしてよい。ＩＣＨ６２０は、コンピューティングシステム６００と通信するＩ／Ｏデバイスに対するインターフェースとなるとしてよい。ＩＣＨ６２０は、周辺機器ブリッジ（またはコントローラ）６２４を介してバス６２２と通信するとしてよい。周辺機器ブリッジ６２４は、例えば、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ブリッジ、ユニバーサル・シリアル・バス（ＵＳＢ）コントローラ、または、その他の種類の周辺機器ブリッジまたはコントローラであってよい。ブリッジ６２４は、ＣＰＵ６０２と周辺機器との間のデータ経路となるとしてよい。その他の種類のトポロジーを利用するとしてもよい。また、ＩＣＨ６２０とは、例えば、複数のブリッジまたはコントローラを介して、複数のバスが通信するとしてよい。さらに、ＩＣＨ６２０と通信するその他の周辺機器としては、本発明のさまざまな実施形態によると、ＩＤＥ（インテグレーテッド・ドライブ・エレクトロニクス）またはＳＣＳＩ（スモール・コンピュータ・システム・インターフェース）方式のハードドライブ、ＵＳＢポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー（登録商標）ディスクドライブ、デジタル出力サポート（例えば、デジタル・ビデオ・インターフェース（ＤＶＩ））またはその他のデバイスを含むとしてよい。
【００３４】
バス６２２は、オーディオデバイス６２６、１以上のディスクドライブ６２８、および、ネットワークインターフェースデバイス６３０（コンピュータネットワーク６０３と通信している）と通信するとしてよいその他のデバイスが、バス６２２を介して通信するとしてよい。また、本発明の一部の実施形態によると、さまざまな構成要素（例えば、ネットワークインターフェースデバイス６３０）がＭＣＨ６０８と通信するとしてよい。また、図６に示すプロセッサ６０２およびその他の構成要素（これらに限定されないが、ＭＣＨ６０８、ＭＣＨ６０８の１以上の構成要素等を含む）は、単一チップを形成するように組み合わせられるとしてよい。また、本発明のほかの実施形態によると、ＭＣＨ６０８にはグラフィクスアクセラレータが備えられるとしてよい。
【００３５】
また、コンピューティングシステム６００は、揮発性および／または不揮発性のメモリ（または、ストレージ）を備えるとしてよい。不揮発性メモリの例としては、リードオンリーメモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）（登録商標）、ディスクドライブ（例えば、６２８）、フロッピー（登録商標）ディスク、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル・バーサティル・ディスク（ＤＶＤ）、フラッシュメモリ、光磁気ディスク、または、電子データ（例えば、命令を含む）を格納可能なその他の種類の不揮発性機械可読媒体のうち１以上が含まれるとしてよい。
【００３６】
図７は、本発明の実施形態に係るポイント・ツー・ポイント（ＰｔＰ）方式で構成されたコンピューティングシステム７００を示す図である。具体的には、図７は、プロセッサ、メモリ、および、入出力デバイスが複数のポイント・ツー・ポイントインターフェースで相互接続されているシステムを示す。図１から図６を参照しつつ説明した動作は、システム７００の１以上の構成要素によって実行されるとしてよい。
【００３７】
図７に示すように、システム７００は、複数のプロセッサを備えるとしてよく、分かりやすいように、そのうち２つのプロセッサ７０２および７０４のみを図示している。プロセッサ７０２および７０４はそれぞれ、メモリ７１０および７１２と通信できるように、ローカルメモリコントローラハブ（ＭＣＨ）７０６および７０８を有するとしてよい。メモリ７１０および／または７１２は、図６のメモリ６１２を参照して説明したようなさまざまなデータを格納するとしてよい。
【００３８】
実施形態によると、プロセッサ７０２および７０４は、図６を参照しつつ説明した複数のプロセッサ６０２のうちの１つであってよく、例えば、図１から図６を参照しつつ説明したキャッシュのうち１以上を有するとしてよい。プロセッサ７０２および７０４はそれぞれ、ポイント・ツー・ポイント（ＰｔＰ）インターフェース回路７１６および７１８を用いて、ＰｔＰインターフェース７１４を介して、データをやり取りするとしてよい。また、プロセッサ７０２および７０４はそれぞれ、ポイント・ツー・ポイントインターフェース回路７２６、７２８、７３０、および、７３２を用いて、対応するＰｔＰインターフェース７２２および７２４を介して、チップセット７２０との間でデータのやり取りをするとしてよい。チップセット７２０はさらに、例えば、ＰｔＰインターフェース回路７３７を用いて、グラフィクスインターフェース７３６を介して、グラフィクス回路７３４との間でデータをやり取りするとしてよい。
【００３９】
本発明の少なくとも１つの実施形態がプロセッサ７０２および７０４に設けられるとしてよい。例えば、図１に示すコア１０６のうち１以上がプロセッサ７０２および７０４に配されるとしてよい。しかし、本発明のほかの実施形態は、図７に示すシステム７００が備えるその他の回路、ロジックユニット、または、デバイスに設けられるとしてもよい。また、本発明の別の実施形態は、図７に示す複数の回路、複数のロジックユニット、または、複数のデバイスに分散して設けられるとしてもよい。
【００４０】
チップセット７２０は、ＰｔＰインターフェース回路７４１を用いて、バス７４０と通信するとしてよい。バス７４０は、バスブリッジ７４２およびＩ／Ｏデバイス７４３等の１以上のデバイスと通信するとしてよい。バスブリッジ７４２は、バス７４４を介して、キーボード／マウス７４５、通信デバイス７４６（例えば、モデム、ネットワークインターフェースデバイス、または、コンピュータネットワーク６０３と通信するその他の通信デバイス）、オーディオＩ／Ｏデバイス７４７、および／または、データストレージデバイス７４８等の別のデバイスと通信するとしてよい。データストレージデバイス７４８は、プロセッサ７０２および／または７０４によって実行されるコード７４９を格納するとしてよい。
【００４１】
本発明のさまざまな実施形態によると、本明細書で、例えば、図１から図７を参照しつつ説明した処理は、ハードウェア（例えば、ロジック回路）、ソフトウェア、ファームウェア、または、これらの組み合わせとして実現されるとしてよい。例えば、本明細書に記載したプロセスを実行するようコンピュータをプログラムする際に利用される命令（または、ソフトウェアプロシージャ）を格納している機械可読媒体またはコンピュータ可読媒体等のコンピュータプログラム製品として提供されるとしてよい。機械可読媒体は、本明細書で説明したような格納装置を含むとしてよい。
【００４２】
また、上述したような有形のコンピュータ可読媒体は、コンピュータプログラム製品としてダウンロードされるとしてよい。この場合、プログラムは、遠隔コンピュータ（例えば、サーバ）から要求元コンピュータ（例えば、クライアント）へと、通信リンク（例えば、バス、モデム、または、ネットワーク接続）を介して伝播媒体を移動するデータ信号によって転送されるとしてよい。
【００４３】
明細書において「一実施形態」、「実施形態」、または、「一部の実施形態」といった表現を用いるが、当該実施形態に関連付けて説明した具体的な特徴、構造、または、特性が少なくとも１つの実施例に含まれることを意味する。「一実施形態」という表現は明細書において何度も使用されるが、全てが同じ実施形態を指しているとは限らない。
【００４４】
また、明細書および請求項において、「結合」および「接続」といった用語が用いられている場合がある。本発明の一部の実施形態によると、「接続」とは、２つ以上のものが互いに物理的または電気的に直接接触している状態を意味するとしてよい。「結合」とは、２つ以上のものが物理的または電気的に直接接触している状態を意味するとしてよい。しかし、「結合」はさらに、２つ以上のものが互いに直接接触していないが、協働または相互作用することを意味するとしてよい。
【００４５】
このように、構造の特徴および／または方法の段階に特有の用語を用いて本発明の実施形態を説明してきたが、請求の対象となる主題は、説明した具体的な特徴または段階に限定されないものと理解されたい。逆に、具体的な特徴および段階は、請求の対象となる主題を実現する形態の例として開示されているものである。
【図１】
0005479479.tif 000002
【図２Ａ】
0005479479.tif 000003
【図２Ｂ】
0005479479.tif 000004
【図３Ａ】
0005479479.tif 000005
【図３Ｂ】
0005479479.tif 000006
【図４Ａ】
0005479479.tif 000007
【図４Ｂ】
0005479479.tif 000008
【図５】
0005479479.tif 000009
【図６】
0005479479.tif 000010
【図７】
0005479479.tif 000011