JP6124366B2 - 方法、プロセッサ、システム、およびプログラム - Google Patents

方法、プロセッサ、システム、およびプログラム Download PDF

Info

Publication number
JP6124366B2
JP6124366B2 JP2015002760A JP2015002760A JP6124366B2 JP 6124366 B2 JP6124366 B2 JP 6124366B2 JP 2015002760 A JP2015002760 A JP 2015002760A JP 2015002760 A JP2015002760 A JP 2015002760A JP 6124366 B2 JP6124366 B2 JP 6124366B2
Authority
JP
Japan
Prior art keywords
cache line
cache
ulpm
way
processor
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.)
Active
Application number
JP2015002760A
Other languages
English (en)
Other versions
JP2015092397A (ja
Inventor
ウィルカーソン、クリストファー
エム. ケラー、ムハマド
エム. ケラー、ムハマド
デー、ヴィヴェック
ザン、ミング
アベッラ、ジャウム
カサド、ジャヴィアー カッレテロ
カサド、ジャヴィアー カッレテロ
モンフェラー、ペドロ チャパロ
モンフェラー、ペドロ チャパロ
ヴェラ、シャヴィアー
ゴンザレス、アントニオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2015092397A publication Critical patent/JP2015092397A/ja
Application granted granted Critical
Publication of JP6124366B2 publication Critical patent/JP6124366B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本開示は概して、電子機器に関する。より具体的には、本発明の実施形態は、低電圧動作時に1以上のキャッシュ部分をディセーブルすることに関する。
今日の大量生産のシリコンには、製造時に起因するパラメータのバラツキが数多く存在するという問題があり得る。このバラツキは、さまざまな種類のメモリセルを製造する際に問題を引き起こす可能性がある。このバラツキは、メモリセルが正確に動作する最低電圧を左右するVccminとして知られている現象の原因である。通常のマイクロプロセッサはさまざまな種類のメモリセルを用いて実現される構造を数多く含むので、このような構造は通常、マイクロプロセッサ全体が確実に動作する最低電圧を左右する。電圧スケーリングはマイクロプロセッサの消費電力を低減するのに有効であるので、特定の設計は低電圧で利用する際にVccminが障害となる可能性がある。
添付図面を参照しつつ詳細に説明する。図中、参照番号の最大桁は当該参照番号が最初に使用される図面の番号を表す。複数の異なる図面において同じ参照番号が用いられている場合は、同様または同一の構成要素であることを示す。
本明細書に記載するさまざまな実施形態を実現するべく利用されるコンピューティングシステムの実施形態を示すブロック図である。 一部の実施形態に係るキャッシュの実施形態を示す図である。 一部の実施形態に係るキャッシュの実施形態を示す図である。 一部の実施形態に係る、ディセーブルビット試験の電圧ソーティング(sorting)状態図を示す図である。 一部の実施形態に係る、ディセーブルビット試験の電圧ソーティング(sorting)状態図を示す図である。 実施形態に係る、キャッシュでの読出動作を説明するための概略図である。 実施形態に係る、アドレス再マッピングロジックを示すブロック図である。 本発明の実施形態に係る方法を説明するためのフローチャートである。 本明細書に記載するさまざまな実施形態を実現するべく利用されるコンピューティングシステムの実施形態を示すブロック図である。 本明細書に記載するさまざまな実施形態を実現するべく利用されるコンピューティングシステムの実施形態を示すブロック図である。
以下の説明では、さまざまな実施形態を完全に説明するべく具体的且つ詳細な内容を数多く記載する。しかし、本発明のさまざまな実施形態は、そのような具体的且つ詳細な内容を利用せずとも実施し得る。また、公知の方法、手順、構成要素、および、回路は、本発明の具体的な実施形態をあいまいにすることを避けるべく、詳細な説明を省略している。さらに、本発明の実施形態のさまざまな側面は、半導体集積回路(ハードウェア)、1以上のプログラムに編成されたコンピュータ可読命令(ソフトウェア)、または、ハードウェアおよびソフトウェアの組み合わせ等のさまざまな手段を用いて実現し得る。本開示では、「ロジック」という用語は、ハードウェア、ソフトウェア、または、これらの組み合わせを意味するものとする。また、本明細書で説明する一部の実施形態では設定値を論理0、および、クリア値を論理1とするが、例えば、実施例によっては逆にすることができる。
一部の実施形態によると、低電圧動作時に1以上のキャッシュ部分(キャッシュラインまたはキャッシュラインのサブブロック)をディセーブルする。(上述した)Vccminの問題を解決することによって、メモリデバイスは、消費電力を低減するVccminレベル以下で動作することができ、例えば、携帯可能なコンピューティングデバイスの電池の寿命が長くなる。また、一部の実施形態によると、性能損失は、低電圧動作時にキャッシュラインよりも低い粒度でキャッシュ内のメモリセルの動作を維持することによって、軽減され得る。さらに、本発明の一実施形態は、例えば、Intel(登録商標)が実証した信頼性基準で保証されている条件下で、メモリセルがある期間にわたって格納している情報を確実に保持するように、メモリセル電圧をある電圧レベルで維持する。一般的に、メモリセルは、所与の電圧レベルでの一連の試験に合格すると、当該電圧レベルで確実に動作すると見なされる。試験では、メモリセルの読出機能、書込機能、および、保持機能を評価するとしてよい。例えば、試験時にエラーが見つからないセルのみ、信頼性があると見なされる。
ある実施形態によると、例えば、超低動作電圧(ULOV)において1以上のキャッシュラインが機能しない(または、動作の信頼性が低い)という判断(例えば、1以上のキャッシュラインに対応するビット値によって示される)に基づいて、ULOVでの動作時にこれらの1以上のキャッシュラインをディセーブルするとしてよい。ULOVは、現在の低電圧レベルである約750mV(本明細書では「最低電圧レベル」とも呼ぶ場合がある)よりも、例えば、約150mV低い電圧レベルであってよい。一実施形態によると、プロセッサは、ULOVで動作することが不可能な1以上のキャッシュラインがフラッシュされた(例えば、無効化された、および/または、必要であれば、メインメモリ等の別のメモリデバイスに書き込まれた)という判断に応じて、超低電力モード(ULPM)(例えば、ULOVで動作する)に移行するとしてよい。
一実施形態によると、(キャッシュラインをディセーブルした結果)キャッシュサイズが小さくなったことによる性能損失は、例えば、高性能アウト・オブ・オーダ・プロセッサにおいて軽減され得る。例えば、不良ビットの割合が中程度になっても、性能に対して比較的低コストであること、複雑でないこと、および、性能予測可能性が高いことを考慮すると、許容され得る。このような解決策は、高いVccで動作している場合には性能に影響がない一方、Vccmin動作レベル以下の場合に効果的であると考えられる。ある実施形態によると、Vccmin以下での動作の場合、高い粒度(例えば、64ビット)で不良サブブロックをディセーブルする際には、1または少数の不良サブブロックを持つキャッシュラインを依然として利用するので、キャッシュライン・ディセーブル方法で生じる性能オーバーヘッドが低減されるとしてよい。さらに、チップのビニングについて鍵となる高い性能予測可能性は、性能を左右するキャッシュ群がほとんどないプログラムが、キャッシュ内の不良サブブロックの位置に関係なく同様にパフォーマンスヒットを受け取るようにキャッシュラインに対するアドレスマッピングをローテーションさせることによって、実現される。このような技術は、高いVccで動作している際の性能には、ほとんどまたは全く影響がないと考えられている。
本明細書で説明する技術によれば、例えば、図1から図7に基づき説明するものを始めとしてさまざまなコンピューティングデバイスの性能が改善され得る。より具体的には、図1は、本発明の実施形態に係るコンピューティングシステム100を示すブロック図である。システム100は、1以上のプロセッサ102−1から102−N(本明細書では「プロセッサ102」と総称する)を備えるとしてよい。プロセッサ102は、インターコネクトネットワークまたはバス104を介して通信するとしてよい。各プロセッサはさまざまな構成要素を有するとしてよく、分かりやすいように、一部の構成要素はプロセッサ102−1についてのみ説明する。したがって、残りのプロセッサ102−2から102−Nはそれぞれ、プロセッサ102−1に関して説明した構成要素と同一または同様の構成要素を有するとしてよい。
実施形態によると、プロセッサ102−1は、1以上のプロセッサコア106−1から106−M(本明細書では「コア106」と総称する)、共有キャッシュ108、および/または、ルータ110を有するとしてよい。プロセッサコア106は、1つの集積回路(IC)チップによって実現されるとしてよい。当該チップはさらに、1以上の共有キャッシュおよび/あるいは私有キャッシュ(例えば、キャッシュ108)、バスあるいはインターコネクト(例えば、バスあるいはインターコネクトネットワーク112)、メモリコントローラ(例えば、図6および図7を参照しつつ説明するメモリコントローラ)、または、その他の構成要素を含むとしてよい。
一実施形態によると、ルータ110は、プロセッサ102−1および/またはシステム100のさまざまな構成要素同士を通信させるべく利用されるとしてよい。さらに、プロセッサ102−1は、複数のルータ110を有するとしてよい。また、複数のルータ110は、プロセッサ102−1の内部または外部のさまざまな構成要素間のデータルーティングを可能とするべく互いに通信し合うとしてもよい。
共有キャッシュ108は、プロセッサ102−1の1以上の構成要素、例えば、コア106が利用するデータ(例えば、命令を含む)を格納するとしてよい。例えば、共有キャッシュ108は、メモリ114に格納されているデータにプロセッサ102の構成要素がより早くアクセスできるように、当該データをローカルにキャッシュするとしてよい。実施形態によると、キャッシュ108は、ミッドレベルキャッシュ(例えば、レベル2(L2)、レベル3(L3)、レベル4(L4)、または、その他のレベルのキャッシュ)、ラストレベルキャッシュ(LLC)、および/または、これらの組み合わせを含むとしてよい。また、プロセッサ102−1のさまざまな構成要素は、バス(例えば、バス112)および/または、メモリコントローラあるいはメモリハブを介して、共有キャッシュ108と直接通信するとしてもよい。図1に示すように、一部の実施形態によると、コア106のうち1以上は、レベル1(L1)キャッシュ(116−1)(本明細書では「L1キャッシュ116」と総称)および/またはL2キャッシュ(不図示)を含むとしてよい。
図2Aおよび図2Bは、一部の実施形態に係るキャッシュの実施形態を示す図である。一部の実施形態によると、図2Aおよび図2Bに示すキャッシュは、図1、図6または図7といった本願のほかの図面を参照しつつ説明するキャッシュとして利用され得る。より具体的には、一部の実施形態によると、コンピューティングデバイスでは設定可能なキャッシュを利用するとしてよい。設定可能なキャッシュは、低電圧での動作を可能とするべく、容量を犠牲にするとしてよい。
一部の実施形態によると、以下に説明する3つの特徴のうち1以上を利用するとしてよい。第1に、ULOVと呼ばれる電圧レベルを利用する低電力状態(本明細書では、ULPMと呼ぶ)を追加で導入する。一実施形態によると、ULOVは、Vccminの現在値(約750mVと仮定している)よりも約150mV低い電圧である。第2に、ULOVにおいてどのキャッシュラインが機能するかを判断するべく電圧ソーティングアルゴリズムを利用するとしてよい。第3に、キャッシュライン群はそれぞれ、ディセーブルビットまたはdビットに対応付けられている。電圧ソーティングアルゴリズムは、超低動作電圧で完全には機能しないキャッシュライン群のそれぞれに対応付けられているdビットを設定する。
また、ULPMは、現在の電力状態(power state)の拡張と見なされるとしてよい。例えば、マイクロプロセッサが超低電力モードに移行する場合、dビットが設定されているキャッシュラインは全て、低電圧に移行することによって影響を受けるキャッシュからフラッシュされる。LLC、DCU(L1データキャッシュ)、および、IFU(L1命令キャッシュ)が移行の後ULOVで動作すると仮定すると、dビットが設定されているDCUおよびICUのキャッシュラインは全てフラッシュされる(例えば、必要であれば、無効化されてメモリ114に書き戻される)。次に、dビットが設定されている各キャッシュラインをフラッシュすることによって、LLCをULOV動作に備えさせる。dビットが設定されているキャッシュラインが全てシステムから除外されると、対応するプロセッサがULPMに移行するとしてよい。
キャッシュは通常、複数の群から編成されており、それぞれの群が複数の経路で構成される。それぞれの経路は、通常32−64バイトの1つのキャッシュラインに対応する。プロセッサがキャッシュにアドレスを提示すると、キャッシュルックアップ(検索)が行われる。アドレスは、ラインオフセット、群選択、および、タグという3つの部分に分割され得る。1024個の群を有し、それぞれの群が8個の経路を有し、それぞれの経路が1個の64バイトラインを有するキャッシュ設計を考える。キャッシュ全体では、512KBの格納容量を持つ(1024×8×64)。キャッシュは、50ビットのアドレスを処理するように設計されている場合、以下のようにインデックスが割り振られるとしてよい。ビット0−5は、64バイトライン内でのバイトを特定するラインオフセットである。一部の実施形態によると、ビット0−5は、先頭バイトを特定するとしてもよい。この理由の1つとしては、ロード/格納命令によっては複数のバイトにアクセスする場合がある点が挙げられる。例えば、指定されたバイト等から始まる1バイト(または2バイト等)を読み出すとしてよい。ビット6−15は、ラインを格納する群を特定する群選択である。残りのビット(16−49)は、タグとして格納される。群選択のビットが同じであるキャッシュラインは全て、特定されている群が有する8個の経路のうちのいずれかを構成する。
実施形態によると、キャッシュライン群は、低電圧において当該キャッシュライン群が機能するか否かを特定するdビットに対応付けられているとしてよい。図2Aおよび図2Bに示すように、dビットは、置換ロジック202で判断されるが、プロセッサがULPMである場合、または、ULPMに移行する場合以外は、何の影響も及ぼさない。したがって、ロジック202は、1以上のキャッシュ部分(例えば、キャッシュライン)へのアクセスを検出して、当該キャッシュ部分がVccmin以下で動作可能か否かを判断するとしてよい。ULPMへ移行する際、dビットが設定されているキャッシュラインは全てフラッシュされる。これは、ULPMへ移行した後でデータが失われてしまうことを避けるためである。ULPMでは、0に設定されているdビットに対応付けられているキャッシュラインのみが有効と見なされることを除いて、キャッシュは通常通りに機能する。ULPMにおいてアドレスに基づいて群を検索する場合、dビットによって、ディセーブルされたラインに誤って一致することが避けられる。本明細書で説明する実施形態では設定値を0、および、クリア値を1とするが、実施例によっては逆にすることもできる。例えば、クリアされたdビットが、1以上の対応するキャッシュラインのディセーブルを示すとしてもよい。
また、キャッシュミスが発生すると、置換ロジック202はキャッシュから除外するキャッシュラインを選択する。選択されたキャッシュラインは、メモリからフェッチされた新しいデータで上書きされる。ULPMにおいて、ディセーブルされたキャッシュラインへの割り当てを防ぐべく、置換ロジック202(図2B)によってdビットが参照される。ディセーブルされたキャッシュラインは、置換プロセスによってMRU(Most Recently Used:前回の使用から経過した期間が最も短いもの)として扱われることによって、割り当てを防ぐとしてよい。このような期間の長さに基づくベクトル置換プロセスは、例えば、各キャッシュラインをディセーブルする際に利用されるとしてよい。このプロセスでは、ビットベクトル(キャッシュライン毎に1ビット)を走査して、0が付与されている最初のラインをLRU(Least Recently Used:前回の使用から経過した期間が最も長いもの)と特定して、置換する。キャッシュラインは、対応付けられているビットを1に設定することによって、常にMRUとして扱われ、置換対象として選択されることはない。
dビットでの不良について、dビットがキャッシュの機能に影響を及ぼすULPMでは、dビットの不良は2通りのうちいずれか一方で表れるとしてよい。dビット値が0の場合は、低電圧において機能するキャッシュラインを意味する。逆に、dビット値が1の場合は、低電圧において機能しないキャッシュラインを意味する。第1のケースは、dビットが1に固定されてしまい、対応するキャッシュラインがディセーブルされるケースである。この場合、dビットが損傷している以外は全てのビットが機能しているキャッシュラインがディセーブルされる。この場合には正しく機能する。第2のケースは、dビットが0に固定されてしまうケースである。このケースは、損傷しているdビットが誤ってキャッシュラインが機能していると示すので、当該キャッシュラインに不良がある場合に問題となってしまう。正しく機能させるべく、本発明の実施形態では、dビットが誤って0に固定されてしまうことを確実になくす。この問題を解決する方法の1つに、セル設計を変更して、dビットが上記のような不良を持つ可能性を無くす。2つ目の方法は、1以上の冗長dビットを追加する方法である。例えば、3つのdビットを利用するとしてよい。3つのビットは全て、同じ値に書き込まれる(全て1、または、全て0)。dビットが読み出されて、いずれか1つのビットが1に設定されていれば、ディセーブルされたキャッシュラインとして扱われるとしてよい。0を3つ含むと正しく読み出されたdビットのみが、超低動作電圧で利用可能なキャッシュラインとして扱われる。この場合、dビットのエラーが発生するのは3つのビットが全て損傷した場合のみであるので、dビットのエラーが発生する可能性は非常に低くなる。
図3Aおよび図3Bはそれぞれ、一部の実施形態に係る、製造時およびPOST(パワー・オン・セルフ・テスト)時に行われるdビット試験の電圧ソーティング状態図である。より具体的には、電圧ソーティングは、2つの方法のうちいずれか一方で実行されるとしてよい。1つ目の方法としては、図3Aに示すようにプロセッサが製造される場合に電圧ソーティングが実行されるとしてよい。dビットは、電源を一旦切って再度電源を入れた後も有効な状態を維持するので、ヒューズまたはその他の種類の不揮発性メモリ、例えば、BIOS(ベーシック・インプット・アウトプット・システム)メモリまたはオンパッケージフラッシュに格納される。別の方法としては、キャッシュラインに対応付けられているタグまたは状態ビット(例えば、MESI(モディファイド・エクスクルーシブ・シェアド・インバリッド)ビット)に含まれている追加ビットにdビットを格納する方法が考えられる。このようにdビットを格納する場合には、電源を切る度に、新たに電圧ソーティングを実行してdビットを再生成する必要がある。この方法の場合さらに、低電圧においてその場でメモリ構造にメモリ試験を実行する機能がプロセッサに必要になる。この構成を実現する方法の1つとして、図3Bに示すように(適切なdビットを設定する)POSTを利用する方法が考えられる。より具体的には、図3Bは、POSTによってdビットが設定され、電源が一旦切られて再度電源が入れられる度にdビットが再生成される場合に、HFM(高周波数モード)、LFM(低周波数モード)、ULPM、オフという4つの異なる状態を持つプロセッサがある状態から別の状態へと移行する様子を説明するための図である。さらに、POSTは、オフ状態から3つのオン状態のうちの1つに移行する際には毎回行われる。
図2Aから図3Bを参照しつつ説明したように、キャッシュは、性能レベルに応じて容量が異なるように、および、電力バジェットに応じてVccminが異なるように構成可能である。また、一部の実施形態によると、市場毎に電力要件が異なる点を考慮して部品を設計することが可能となるとしてよい。この結果、多種多様な市場に対応するように設計される製品を減らすことができるので、コストが削減される。
実施形態によると、不良キャッシュエントリは、エントリを完全に破棄するのではなく、そのうち不良でないビットを利用する。また、Vccminが低くてもキャッシュを動作させるべく、Vccを下げたことに起因して不良ビットの割合が中程度になっても、これは許容される。この方法によればさらに性能予測可能性が向上するという効果が得られ、2つのプロセッサが任意の所与のプログラムについて同一の性能を確実に得ることができるようになる。性能のバラツキは、チップ試料毎に不良箇所が異なり、性能への影響が異なることが原因である。
図4Aは、実施形態に係るキャッシュでの読出動作を説明するための概略図である。図示されているキャッシュは二方向のセット連想キャッシュであり、各キャッシュラインは4つのサブブロックを含む。実施形態によると、各キャッシュラインは、キャッシュタグと共に格納される数ビットで拡張されている(図4Aに示すように、例えば、ビット1011はタグ1と共に格納されており、または、ビット0111はタグ2と共に格納されている)。各キャッシュラインは、論理上複数のサブブロックに分割されている。サブブロックのサイズは、ラインのうち、パリティまたはECC(誤り訂正符号)で保護される最小部分と同じとしてよい。例えば、64ビットの粒度で内容がECCによって保護され、且つ、キャッシュラインが8個のサブブロックを有するDL0キャッシュは、8個の追加ビットを利用して、各サブブロックが使用されているか否かを示す。この追加ビットは全て、対応するサブブロックが許容数よりも多くの不良ビットを含むビット以外は、設定される。例えば、SECDED(シングルエラー訂正・ダブルエラー検出)保護ブロックは、不良ビットが2つ含まれる場合、対応するビットがリセットされているはずである。
図4Aに示すキャッシュは、以下に説明するように動作する。アクセスが実行されると、タグ402および403が読み出されて、必要であれば、群404の全てのラインからのデータが取り出される。尚、アドレスオフセットはどのサブブロックが必要であるかを示している。オフセット406は、群の各キャッシュラインについて必要なサブブロックに対応するビットを指定するために利用される。キャッシュタグは、(例えば、比較器408および410によって)必要なアドレスと比較される。タグヒット411(ANDゲート414および422の出力に基づくORゲート412からの出力)が得られる場合もあるが、そのサブブロックに対応する追加ビットが当該サブブロックが不良であると示す場合がある。このような場合、偽のヒット418(例えば、ANDゲート416および424の出力に基づくORゲート420からの出力)が得られる。この場合の対応として、以下のものが挙げられ得る。(i)データがないので、ミスと報告する。(ii)キャッシュラインは除外して、損傷データは書き戻しキャッシュのために上位キャッシュレベルに更新される。更新が必要なのは有効なサブブロックのみであることに留意されたい。ライトスルーキャッシュは、キャッシュラインを除外してロードに備え、上位キャッシュレベルを更新して格納に備える。(iii)キャッシュラインは、群においてMRU(前回の利用から経過している時間が最も短い)ラインとしてマーキングされ、上位キャッシュレベルからデータが要求されると、必要なデータを保持する不良の無いブロックを含む可能性が非常に高い、別のキャッシュラインに入れられる。可能性は低いが、選択されたキャッシュラインの同じ位置に不良サブブロックがある場合、当該プロセスが繰り返されて、要求された位置に不良の無いサブブロックを持つキャッシュラインが群に少なくとも1つあれば、そのキャッシュラインを特定する。不良ビットの割合が許容レベル以上に高い場合(例えば、所与の設計について定められているしきい値に基づいて決まる)のみ、所与の群のキャッシュラインの同じ位置にある全てのサブブロックがエラーとなる。
したがって、ある実施形態によると、キャッシュへのアクセスは、キャッシュラインの一部を特定している追加ビットが不良を示すので、タグでヒットしてもミスとして扱われる場合がある。上述したように、dビットを利用して任意のキャッシュラインをディセーブルする方法があるものと理解されたい。このようなメカニズムを利用して、不良ダーティー損傷ビット、偽有効ビット、不良タグを持つキャッシュラインの利用を避けるとしてよい。実施形態によると、追加ビットが不良ビットである場合、キャッシュラインも不良キャッシュラインとマーキングする。また、図4Aに示した追加メカニズム(例えば、追加ビット、および、比較ロジック、および、対応付けられているANDゲートおよびORゲート)は、高いVccで動作している場合は、例えば、追加ビットを全て「1」に設定するか、または、追加ビットを単に無視することで、省略されるとしてよい。
図4Bは、実施形態に係るアドレス再マッピングロジックを示すブロック図である。性能のバラツキに対応するべく、所与のアドレスが複数の異なる時間間隔で複数の異なるキャッシュ群にマッピングされるように、動的アドレス再マッピングを(例えば、ラウンドロビン方式で)利用するとしてよい。このような構成とすることによって、プログラムおよび不良ビットの割合を所与とすれば、不良ビットの箇所がどこであろうと、プロセッサ毎の性能のバラツキはほとんどなくなる。
図4Bに示すように、Nビットカウンタ452を利用するとしてよい。尚、Nは、1からキャッシュ群を特定するために必要なビット数までの任意の値であってよい。例えば、1ライン当たり64バイトで経路を8個備える32KBのキャッシュの場合、群の数は64個であり、6ビットでインデックスが割り振られる。このため、6ビット以下のカウンタで十分である。図示している具体的な実施例によると、4ビットのカウンタ452を利用する。当該カウンタは、周期的、または、時折(例えば、1000万サイクル毎に)更新される。カウンタのNビットは、XORゲート454によってXOR演算がビット単位で行われ、ビットのうちNビットが群に対してインデックスを割り振っている。したがって、実施形態によると、所与のアドレスは、その時々によって異なるキャッシュ群にマッピングされるとしてよい。
また、アドレス再マッピングは、キャッシュアクセス時、または、アドレス算出時のいずれかに実行されるとしてよい。レイテンシの影響は、追加されたXORゲートレベルは1つであり、入力の半分(カウンタから出力されるもの)は前もって設定されているので、小さいはずである。実施形態によると、キャッシュの内容は、不一致となることを避けるべくカウンタが更新されると常に、フラッシュされる。しかし、カウンタは滅多に更新されないので、性能に対する影響は無視できる程度である。また、図4Bに示すメカニズムは、単にカウンタの更新を停止することによって、高いVccで動作している場合には無効化されるとしてよい。
図5は、本発明の実施形態に係る、低電圧動作時にキャッシュの一部分をディセーブルする方法500を説明するためのフローチャートである。一部の実施例によると、図1から図4Bおよび図6から図7を参照しつつ説明するさまざまな構成要素を用いて、図5を参照しつつ説明する動作のうち1以上を実行するとしてよい。
図1から図5を参照しつつ説明すると、動作502において、(例えば、図4Aに示すロジックまたはロジック202によって)キャッシュの一部分に対するアクセス要求を受信または検出するか否かを判断する。アクセスを受信すると、動作504において、例えば図1から図4Bを参照しつつ本明細書で説明したように、このキャッシュの一部分がVccmin以下で動作可能か否かを判断する。動作504の判断結果が否定的である場合、(例えば図1から図4Bを参照しつつ説明したように)ミスと返される。動作504の判断結果が肯定的である場合、動作508において、(例えば図1から図4Bを参照しつつ説明したように)ヒットと返す。
図6は、本発明の実施形態に係るコンピューティングシステム600を示すブロック図である。コンピューティングシステム600は、インターコネクトネットワーク(またはバス)604を介して通信する1以上の中央演算処理装置(CPU)602またはプロセッサを備えるとしてよい。プロセッサ602は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク603を介してやり取りされるデータを処理するもの)、または、その他の種類のプロセッサ(縮小命令セットコンピュータ(RISC)プロセッサまたは複合命令セットコンピュータ(CISC)を含む)を含むとしてよい。また、プロセッサ602は、シングルコア構成またはマルチコア構成であってよい。マルチコア構成のプロセッサ602は、複数種類のプロセッサコアを同じ集積回路(IC)ダイに集積化するとしてよい。また、マルチコア構成のプロセッサ602は、対称型マルチプロセッサまたは非対称型マルチプロセッサとして実現されるとしてよい。実施形態によると、プロセッサ602のうち1以上のプロセッサは、図1に示すプロセッサ102と同一または同様のプロセッサであってよい。例えば、プロセッサ602のうち1以上のプロセッサは、図1から図5を参照しつつ説明したキャッシュのうち1以上を有するとしてよい。また、図1から図5を参照しつつ説明した動作は、システム600の構成要素のうち1以上によって実行されるとしてよい。
チップセット606もまた、インターコネクトネットワーク604と通信するとしてよい。チップセット606は、メモリコントロールハブ(MCH)608を有するとしてよい。MCH608は、メモリ612と通信するメモリコントローラ610を含むとしてよい。メモリ612は、図1に示すメモリ114と同一または同様のメモリであってよい。メモリ612は、CPU602またはコンピューティングシステム600が備える任意のその他のデバイスが実行する命令列を始めとするデータを格納するとしてよい。本発明の一実施形態によると、メモリ612は、1以上の揮発性ストレージ(または、メモリ)デバイス、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、または、その他の種類のストレージデバイスを含むとしてよい。また、ハードディスク等の不揮発性メモリを利用するとしてもよい。複数のCPUおよび/または複数のシステムメモリ等のその他のデバイスもインターコネクトネットワーク604を介して通信を行うとしてよい。
MCH608はさらに、ディスプレイデバイス616と通信するグラフィクスインターフェース614を含むとしてよい。本発明の一実施形態によると、グラフィクスインターフェース614は、アクセラレーテッド・グラフィクス・ポート(AGP)を介してディスプレイデバイス616と通信するとしてよい。本発明の実施形態によると、ディスプレイ616(フラットパネルディスプレイ等)は、例えば、ビデオメモリまたはシステムメモリ等のストレージデバイスに格納されているデジタル画像を、ディスプレイ616によって解釈および表示される表示信号に変換する信号変換器を介して、グラフィクスインターフェース614と通信するとしてよい。ディスプレイデバイスが生成する表示信号は、ディスプレイ616で解釈および表示される前に、さまざまな制御デバイスに送信されるとしてもよい。
ハブインターフェース618によって、MCH608および入出力制御ハブ(ICH)620は互いに通信できるようになるとしてよい。ICH620は、コンピューティングシステム600と通信するI/Oデバイスに対するインターフェースとなるとしてよい。ICH620は、周辺機器ブリッジ(またはコントローラ)624を介してバス622と通信するとしてよい。周辺機器ブリッジ624は、例えば、ペリフェラル・コンポーネント・インターコネクト(PCI)ブリッジ、ユニバーサル・シリアル・バス(USB)コントローラ、または、その他の種類の周辺機器ブリッジまたはコントローラであってよい。ブリッジ624は、CPU602と周辺機器との間のデータ経路となるとしてよい。その他の種類のトポロジーを利用するとしてもよい。また、ICH620とは、例えば、複数のブリッジまたはコントローラを介して、複数のバスが通信するとしてよい。さらに、ICH620と通信するその他の周辺機器としては、本発明のさまざまな実施形態によると、IDE(インテグレーテッド・ドライブ・エレクトロニクス)またはSCSI(スモール・コンピュータ・システム・インターフェース)方式のハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタル・ビデオ・インターフェース(DVI))またはその他のデバイスを含むとしてよい。
バス622は、オーディオデバイス626、1以上のディスクドライブ628、および、ネットワークインターフェースデバイス630(コンピュータネットワーク603と通信している)と通信するとしてよいその他のデバイスが、バス622を介して通信するとしてよい。また、本発明の一部の実施形態によると、さまざまな構成要素(例えば、ネットワークインターフェースデバイス630)がMCH608と通信するとしてよい。また、図6に示すプロセッサ602およびその他の構成要素(これらに限定されないが、MCH608、MCH608の1以上の構成要素等を含む)は、単一チップを形成するように組み合わせられるとしてよい。また、本発明のほかの実施形態によると、MCH608にはグラフィクスアクセラレータが備えられるとしてよい。
また、コンピューティングシステム600は、揮発性および/または不揮発性のメモリ(または、ストレージ)を備えるとしてよい。不揮発性メモリの例としては、リードオンリーメモリ(ROM)、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)(登録商標)、ディスクドライブ(例えば、628)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル・バーサティル・ディスク(DVD)、フラッシュメモリ、光磁気ディスク、または、電子データ(例えば、命令を含む)を格納可能なその他の種類の不揮発性機械可読媒体のうち1以上が含まれるとしてよい。
図7は、本発明の実施形態に係るポイント・ツー・ポイント(PtP)方式で構成されたコンピューティングシステム700を示す図である。具体的には、図7は、プロセッサ、メモリ、および、入出力デバイスが複数のポイント・ツー・ポイントインターフェースで相互接続されているシステムを示す。図1から図6を参照しつつ説明した動作は、システム700の1以上の構成要素によって実行されるとしてよい。
図7に示すように、システム700は、複数のプロセッサを備えるとしてよく、分かりやすいように、そのうち2つのプロセッサ702および704のみを図示している。プロセッサ702および704はそれぞれ、メモリ710および712と通信できるように、ローカルメモリコントローラハブ(MCH)706および708を有するとしてよい。メモリ710および/または712は、図6のメモリ612を参照して説明したようなさまざまなデータを格納するとしてよい。
実施形態によると、プロセッサ702および704は、図6を参照しつつ説明した複数のプロセッサ602のうちの1つであってよく、例えば、図1から図6を参照しつつ説明したキャッシュのうち1以上を有するとしてよい。プロセッサ702および704はそれぞれ、ポイント・ツー・ポイント(PtP)インターフェース回路716および718を用いて、PtPインターフェース714を介して、データをやり取りするとしてよい。また、プロセッサ702および704はそれぞれ、ポイント・ツー・ポイントインターフェース回路726、728、730、および、732を用いて、対応するPtPインターフェース722および724を介して、チップセット720との間でデータのやり取りをするとしてよい。チップセット720はさらに、例えば、PtPインターフェース回路737を用いて、グラフィクスインターフェース736を介して、グラフィクス回路734との間でデータをやり取りするとしてよい。
本発明の少なくとも1つの実施形態がプロセッサ702および704に設けられるとしてよい。例えば、図1に示すコア106のうち1以上がプロセッサ702および704に配されるとしてよい。しかし、本発明のほかの実施形態は、図7に示すシステム700が備えるその他の回路、ロジックユニット、または、デバイスに設けられるとしてもよい。また、本発明の別の実施形態は、図7に示す複数の回路、複数のロジックユニット、または、複数のデバイスに分散して設けられるとしてもよい。
チップセット720は、PtPインターフェース回路741を用いて、バス740と通信するとしてよい。バス740は、バスブリッジ742およびI/Oデバイス743等の1以上のデバイスと通信するとしてよい。バスブリッジ742は、バス744を介して、キーボード/マウス745、通信デバイス746(例えば、モデム、ネットワークインターフェースデバイス、または、コンピュータネットワーク603と通信するその他の通信デバイス)、オーディオI/Oデバイス747、および/または、データストレージデバイス748等の別のデバイスと通信するとしてよい。データストレージデバイス748は、プロセッサ702および/または704によって実行されるコード749を格納するとしてよい。
本発明のさまざまな実施形態によると、本明細書で、例えば、図1から図7を参照しつつ説明した処理は、ハードウェア(例えば、ロジック回路)、ソフトウェア、ファームウェア、または、これらの組み合わせとして実現されるとしてよい。例えば、本明細書に記載したプロセスを実行するようコンピュータをプログラムする際に利用される命令(または、ソフトウェアプロシージャ)を格納している機械可読媒体またはコンピュータ可読媒体等のコンピュータプログラム製品として提供されるとしてよい。機械可読媒体は、本明細書で説明したような格納装置を含むとしてよい。
また、上述したような有形のコンピュータ可読媒体は、コンピュータプログラム製品としてダウンロードされるとしてよい。この場合、プログラムは、遠隔コンピュータ(例えば、サーバ)から要求元コンピュータ(例えば、クライアント)へと、通信リンク(例えば、バス、モデム、または、ネットワーク接続)を介して伝播媒体を移動するデータ信号によって転送されるとしてよい。
明細書において「一実施形態」、「実施形態」、または、「一部の実施形態」といった表現を用いるが、当該実施形態に関連付けて説明した具体的な特徴、構造、または、特性が少なくとも1つの実施例に含まれることを意味する。「一実施形態」という表現は明細書において何度も使用されるが、全てが同じ実施形態を指しているとは限らない。
また、明細書および請求項において、「結合」および「接続」といった用語が用いられている場合がある。本発明の一部の実施形態によると、「接続」とは、2つ以上のものが互いに物理的または電気的に直接接触している状態を意味するとしてよい。「結合」とは、2つ以上のものが物理的または電気的に直接接触している状態を意味するとしてよい。しかし、「結合」はさらに、2つ以上のものが互いに直接接触していないが、協働または相互作用することを意味するとしてよい。
このように、構造の特徴および/または方法の段階に特有の用語を用いて本発明の実施形態を説明してきたが、請求の対象となる主題は、説明した具体的な特徴または段階に限定されないものと理解されたい。逆に、具体的な特徴および段階は、請求の対象となる主題を実現する形態の例として開示されているものである。

Claims (21)

  1. 複数のキャッシュライン群における1つのキャッシュライン群に超低電力モード(ULPM)でアクセスする要求を受信する段階であって、前記ULPMでは前記キャッシュの全てのメモリセルが正確に動作する最低の電圧レベル以下の電圧レベルでキャッシュラインにアクセスするための超低電圧レベルを使用する、受信する段階と、
    前記キャッシュライン群における第1ウェイのキャッシュラインが前記ULPMで動作可能であるか否かを、前記第1ウェイの前記キャッシュラインに対応する1または複数のディセーブルビットに少なくとも部分的に基づいて決定する段階と、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ミスを返す段階と、
    前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ヒットを返す段階と、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを防ぎ、前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを可能とする段階と、
    を備える、方法。
  2. ULPMへ入る要求を受信する段階と、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイに応答して、前記キャッシュライン群の前記第1ウェイの前記キャッシュラインをフラッシュする段階と、
    を更に備える、請求項1に記載の方法。
  3. ULPMへ入る要求を受信する段階と、
    前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイに応答して、前記キャッシュライン群の前記第1ウェイの前記キャッシュラインをフラッシュしない段階と、
    を更に備える、請求項1または2に記載の方法。
  4. 前記超低電圧レベルで前記キャッシュの一部分が動作可能であるかを決定すべく、前記キャッシュの前記一部分を試験する段階を更に備え、前記試験する段階は、製造時またはパワー・オン・セルフ・テスト(POST)時に実行される、請求項3に記載の方法。
  5. 前記試験する段階に応じて前記1または複数のディセーブルビットを更新する段階を更に備える、請求項4に記載の方法。
  6. 共有L2キャッシュと、
    前記共有L2キャッシュに結合された複数のプロセッサコアと、
    ロジック回路と、
    を備え、
    前記複数のプロセッサコアは単一の集積回路チップに実装され、前記複数のプロセッサコアのそれぞれが複数のキャッシュライン群を含むL1キャッシュを有し、
    前記L1キャッシュは、
    前記複数のキャッシュライン群における1つのキャッシュライン群に超低電力モード(ULPM)でアクセスする要求を受信し、前記ULPMでは全てのメモリセルが正確に動作する最低の電圧レベル以下の電圧レベルでキャッシュラインにアクセスするための超低電圧レベルが使用され、
    前記ロジック回路は、
    前記キャッシュライン群における第1ウェイのキャッシュラインが前記ULPMで動作可能であるか否かを、前記第1ウェイの前記キャッシュラインに対応する1または複数のディセーブルビットに少なくとも部分的に基づいて決定し、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ミスを返し、
    前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ヒットを返し、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを防ぎ、前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを可能とする、プロセッサ。
  7. 前記複数のプロセッサコアの間における通信を可能とするルータを更に備える、請求項6に記載のプロセッサ。
  8. 前記複数のキャッシュライン群は、第1の最小動作電圧で正確に動作する第1の複数のキャッシュラインのグループと、第2の最小動作電圧で正確に動作する第2の複数のキャッシュラインのグループとを有し、
    前記第2の最小動作電圧は前記第1の最小動作電圧よりも低く、
    前記第1の最小動作電圧は、前記全てのメモリセルが正確に動作する前記最低の電圧レベルに対応し、
    前記第2の最小動作電圧は、前記超低電圧レベルに対応する、請求項6または7に記載のプロセッサ。
  9. 前記ロジック回路は、前記第2の複数のキャッシュラインのグループをディセーブルする、請求項8に記載のプロセッサ。
  10. キャッシュミスに応答してキャッシュラインを選択し除外するための置換ロジックを更に備える、請求項6から9のいずれか1項に記載のプロセッサ。
  11. 前記複数のプロセッサコアは、前記L1キャッシュにおいてMESIプロトコルを実装する、請求項6から10のいずれか1項に記載のプロセッサ。
  12. 命令列を含むデータを格納するメモリと、
    前記メモリと通信すべく前記メモリに結合されたメモリコントローラと、
    前記メモリコントローラに結合されたプロセッサと、
    を備え、
    前記プロセッサは、共有L2キャッシュと前記共有L2キャッシュに結合された複数のプロセッサコアと、ロジック回路とを備え、
    前記複数のプロセッサコアは単一の集積回路チップに実装され、前記複数のプロセッサコアのそれぞれが複数のキャッシュライン群を含むL1キャッシュを有し、
    前記L1キャッシュは、
    前記複数のキャッシュライン群における1つのキャッシュライン群に超低電力モード(ULPM)でアクセスする要求を受信し、前記ULPMでは全てのメモリセルが正確に動作する最低の電圧レベル以下の電圧レベルでキャッシュラインにアクセスするための超低電圧レベルが使用され、
    前記ロジック回路は、
    前記キャッシュライン群における第1ウェイのキャッシュラインが前記ULPMで動作可能であるか否かを、前記第1ウェイの前記キャッシュラインに対応する1または複数のディセーブルビットに少なくとも部分的に基づいて決定し、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ミスを返し、
    前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ヒットを返し、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを防ぎ、前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを可能とする、システム。
  13. 前記プロセッサに結合された、グラフィクス回路、通信デバイス、オーディオI/Oデバイス、およびデータストレージデバイスを、1つまたは複数個更に備える、請求項12に記載のシステム。
  14. 前記プロセッサが、前記複数のプロセッサコアの間における通信を可能とするルータを更に備える、請求項12または13に記載のシステム。
  15. 前記複数のキャッシュライン群は、第1の最小動作電圧で正確に動作する第1の複数のキャッシュラインのグループと、第2の最小動作電圧で正確に動作する第2の複数のキャッシュラインのグループとを有し、
    前記第2の最小動作電圧は前記第1の最小動作電圧よりも低く、
    前記第1の最小動作電圧は、前記全てのメモリセルが正確に動作する前記最低の電圧レベルに対応し、
    前記第2の最小動作電圧は、前記超低電圧レベルに対応する、請求項12から14のいずれか1項に記載のシステム。
  16. 前記ロジック回路は、前記第2の複数のキャッシュラインのグループをディセーブルする、請求項15に記載のシステム。
  17. 前記プロセッサが、キャッシュミスに応答してキャッシュラインを選択し除外するための置換ロジックを更に備える、請求項12から16のいずれか1項に記載のシステム。
  18. 前記複数のプロセッサコアは、前記L1キャッシュにおいてMESIプロトコルを実装する、請求項12から17いずれか1項に記載のシステム。
  19. 命令を有するプログラムであって、前記命令が実行されるとプロセッサに手順を実行させ、前記手順が、
    プロセッサ内の複数のキャッシュライン群における1つのキャッシュライン群に超低電力モード(ULPM)でアクセスする要求を受信する段階であって、前記ULPMでは前記プロセッサの全てのキャッシュラインが正確に動作することのできる最低の電圧レベルよりも低い電圧レベルでキャッシュラインにアクセスするための超低電圧レベルを使用する、受信する段階と、
    前記キャッシュライン群における第1ウェイのキャッシュラインが前記ULPMで動作可能であるか否かを、前記第1ウェイの前記キャッシュラインに対応する1または複数のディセーブルビットに少なくとも部分的に基づいて決定する段階と、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ミスを返す段階と、
    前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインに少なくとも部分的に応答して、ヒットを返す段階と、
    前記ULPMで動作不可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを防ぎ、前記ULPMで動作可能であると決定された前記キャッシュライン群における前記第1ウェイの前記キャッシュラインへの、置換プロセスによる割り当てを可能とする段階と、
    を備える、プログラム。
  20. 前記手順が、前記要求に応じてキャッシュミスが発生した場合に、メモリからフェッチした新しいデータで、選択したキャッシュラインを上書きする段階を更に備える、請求項19に記載のプログラム。
  21. 前記手順が、前記プロセッサ内の置換ロジックによって、前記選択されたキャッシュラインを選択する段階を更に備える、請求項20に記載のプログラム。
JP2015002760A 2008-09-30 2015-01-09 方法、プロセッサ、システム、およびプログラム Active JP6124366B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/242,321 2008-09-30
US12/242,321 US8103830B2 (en) 2008-09-30 2008-09-30 Disabling cache portions during low voltage operations

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013222377A Division JP5681778B2 (ja) 2008-09-30 2013-10-25 プロセッサ、システムおよび方法

Publications (2)

Publication Number Publication Date
JP2015092397A JP2015092397A (ja) 2015-05-14
JP6124366B2 true JP6124366B2 (ja) 2017-05-10

Family

ID=42058825

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2011528093A Active JP5479479B2 (ja) 2008-09-30 2009-09-23 超低電圧動作時にキャッシュラインが動作可能かを判断する装置、方法、及びコンピューティングシステム
JP2013222377A Expired - Fee Related JP5681778B2 (ja) 2008-09-30 2013-10-25 プロセッサ、システムおよび方法
JP2015002760A Active JP6124366B2 (ja) 2008-09-30 2015-01-09 方法、プロセッサ、システム、およびプログラム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2011528093A Active JP5479479B2 (ja) 2008-09-30 2009-09-23 超低電圧動作時にキャッシュラインが動作可能かを判断する装置、方法、及びコンピューティングシステム
JP2013222377A Expired - Fee Related JP5681778B2 (ja) 2008-09-30 2013-10-25 プロセッサ、システムおよび方法

Country Status (7)

Country Link
US (2) US8103830B2 (ja)
JP (3) JP5479479B2 (ja)
KR (1) KR101252367B1 (ja)
CN (2) CN103455441B (ja)
BR (1) BRPI0913782A2 (ja)
TW (3) TWI525426B (ja)
WO (1) WO2010039532A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US8341355B2 (en) * 2010-05-25 2012-12-25 International Business Machines Corporation Reducing energy consumption of set associative caches by reducing checked ways of the set association
US8631198B2 (en) * 2010-08-06 2014-01-14 Seagate Technology Llc Dynamic cache reduction utilizing voltage warning mechanism
JP2013003793A (ja) * 2011-06-15 2013-01-07 Toshiba Corp マルチコアプロセッサシステムおよびマルチコアプロセッサ
US8700972B2 (en) 2011-08-17 2014-04-15 Broadcom Corporation Adaptive ultra-low voltage memory
US8700864B2 (en) * 2011-11-11 2014-04-15 Microsoft Corporation Self-disabling working set cache
WO2013100940A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Cache memory staged reopen
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US8943274B2 (en) 2012-05-22 2015-01-27 Seagate Technology Llc Changing power state with an elastic cache
US9275696B2 (en) 2012-07-26 2016-03-01 Empire Technology Development Llc Energy conservation in a multicore chip
US9256544B2 (en) * 2012-12-26 2016-02-09 Advanced Micro Devices, Inc. Way preparation for accessing a cache
US9075904B2 (en) 2013-03-13 2015-07-07 Intel Corporation Vulnerability estimation for cache memory
US9176895B2 (en) 2013-03-16 2015-11-03 Intel Corporation Increased error correction for cache memories through adaptive replacement policies
US9223710B2 (en) 2013-03-16 2015-12-29 Intel Corporation Read-write partitioning of cache memory
US9360924B2 (en) * 2013-05-29 2016-06-07 Intel Corporation Reduced power mode of a cache unit
KR102031606B1 (ko) * 2013-07-31 2019-10-14 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 버저닝된 메모리 구현
US10204056B2 (en) * 2014-01-27 2019-02-12 Via Alliance Semiconductor Co., Ltd Dynamic cache enlarging by counting evictions
US9626297B2 (en) 2014-10-08 2017-04-18 Wisconsin Alumni Research Foundation Memory fault patching using pre-existing memory structures
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9959075B2 (en) 2015-08-05 2018-05-01 Qualcomm Incorporated System and method for flush power aware low power mode control in a portable computing device
CN111471961A (zh) 2015-09-11 2020-07-31 学校法人冲绳科学技术大学院大学学园 形成无铅钙钛矿膜的方法和包含该无铅钙钛矿膜的太阳能电池装置
US10185619B2 (en) * 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
US10318428B2 (en) 2016-09-12 2019-06-11 Microsoft Technology Licensing, Llc Power aware hash function for cache memory mapping
US10241561B2 (en) 2017-06-13 2019-03-26 Microsoft Technology Licensing, Llc Adaptive power down of intra-chip interconnect
US10884940B2 (en) * 2018-12-21 2021-01-05 Advanced Micro Devices, Inc. Method and apparatus for using compression to improve performance of low voltage caches
US11106594B2 (en) 2019-09-05 2021-08-31 Advanced Micro Devices, Inc. Quality of service dirty line tracking
CN111930575B (zh) * 2020-07-01 2024-06-18 联想(北京)有限公司 一种固件获取方法、装置及电子设备
US11720444B1 (en) * 2021-12-10 2023-08-08 Amazon Technologies, Inc. Increasing of cache reliability lifetime through dynamic invalidation and deactivation of problematic cache lines

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01255944A (ja) * 1988-04-05 1989-10-12 Mitsubishi Electric Corp キャッシュメモリ
JPH0291742A (ja) * 1988-09-29 1990-03-30 Toshiba Corp 仮想アドレスキャッシュ制御方式
US5371709A (en) 1993-04-01 1994-12-06 Microchip Technology Incorporated Power management system for serial EEPROM device
JPH0773057A (ja) * 1993-06-03 1995-03-17 Kano Densan Hongkong Yugenkoshi 電子機器
JP2701703B2 (ja) * 1993-09-03 1998-01-21 日本電気株式会社 キャッシュメモリ
KR100212420B1 (ko) * 1995-09-25 1999-08-02 김영환 테스트회로를 내장한 캐쉬 스태틱램
JP2000010668A (ja) * 1998-06-18 2000-01-14 Hitachi Ltd メモリカード供給電圧制御方式
US6845432B2 (en) 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
US20020103977A1 (en) 2001-01-30 2002-08-01 Andy Ewoldt Low power consumption cache memory structure
CN1482546A (zh) * 2002-09-10 2004-03-17 连邦科技股份有限公司 免充电式超低功率虚拟动态随机存取内存
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7221613B2 (en) * 2004-05-26 2007-05-22 Freescale Semiconductor, Inc. Memory with serial input/output terminals for address and data and method therefor
US20060005053A1 (en) * 2004-06-30 2006-01-05 Jones Oscar F Jr Cache and tag power-down function during low-power data retention standby mode technique for cached integrated circuit memory devices
JP4676723B2 (ja) * 2004-07-30 2011-04-27 富士通株式会社 キャッシュメモリ、プロセッサ、キャッシュメモリの製造方法、プロセッサの製造方法
JP2006120098A (ja) * 2004-10-25 2006-05-11 Toshiba Microelectronics Corp キャッシュメモリ装置およびその管理方法
WO2006082551A1 (en) * 2005-02-07 2006-08-10 Nxp B.V. Data processing system and method of cache replacement
US7620778B2 (en) 2005-05-25 2009-11-17 Qualcomm Incorporated Low power microprocessor cache memory and method of operation
US20060280019A1 (en) * 2005-06-13 2006-12-14 Burton Edward A Error based supply regulation
US7809890B2 (en) * 2005-07-06 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for increasing yield of devices having cache memories by inhibiting use of defective cache entries
US7904658B2 (en) * 2005-11-30 2011-03-08 International Business Machines Corporation Structure for power-efficient cache memory
US7512029B2 (en) * 2006-06-09 2009-03-31 Micron Technology, Inc. Method and apparatus for managing behavior of memory devices
US20080010566A1 (en) 2006-06-21 2008-01-10 Chang Tsung-Yung Jonathan Disabling portions of memory with non-deterministic errors
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7941683B2 (en) 2007-05-02 2011-05-10 Advanced Micro Devices, Inc. Data processing device with low-power cache access mode
US8868836B2 (en) * 2007-12-31 2014-10-21 Intel Corporation Reducing minimum operating voltage through hybrid cache design
US8156357B2 (en) * 2009-01-27 2012-04-10 Freescale Semiconductor, Inc. Voltage-based memory size scaling in a data processing system
US20100228922A1 (en) * 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines

Also Published As

Publication number Publication date
JP5681778B2 (ja) 2015-03-11
TW201627811A (zh) 2016-08-01
TWI420294B (zh) 2013-12-21
US20100082905A1 (en) 2010-04-01
WO2010039532A3 (en) 2010-07-01
US8103830B2 (en) 2012-01-24
JP5479479B2 (ja) 2014-04-23
TW201028839A (en) 2010-08-01
JP2012503263A (ja) 2012-02-02
US20120110266A1 (en) 2012-05-03
CN101714106A (zh) 2010-05-26
JP2014041647A (ja) 2014-03-06
TW201423371A (zh) 2014-06-16
CN103455441B (zh) 2016-08-24
KR20110061598A (ko) 2011-06-09
CN101714106B (zh) 2013-09-25
WO2010039532A2 (en) 2010-04-08
TWI592795B (zh) 2017-07-21
US8291168B2 (en) 2012-10-16
KR101252367B1 (ko) 2013-04-08
CN103455441A (zh) 2013-12-18
BRPI0913782A2 (pt) 2019-09-24
JP2015092397A (ja) 2015-05-14
TWI525426B (zh) 2016-03-11

Similar Documents

Publication Publication Date Title
JP6124366B2 (ja) 方法、プロセッサ、システム、およびプログラム
CN109983536B (zh) 响应标签匹配命令的存储电路
US9418700B2 (en) Bad block management mechanism
JP5328748B2 (ja) キャッシュメモリにおけるキャッシュラインの置き換え
US10528473B2 (en) Disabling cache portions during low voltage operations
CN109952565B (zh) 内存访问技术
US9424195B2 (en) Dynamic remapping of cache lines
US10185619B2 (en) Handling of error prone cache line slots of memory side cache of multi-level system memory
US10496546B2 (en) Cache memory and processor system
US7649764B2 (en) Memory with shared write bit line(s)
US9141552B2 (en) Memory using voltage to improve reliability for certain data types
JP6039772B1 (ja) メモリシステム
CN117435381B (zh) 用于缓存的检测和填充方法及装置、电子设备与存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160613

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170330

R150 Certificate of patent or registration of utility model

Ref document number: 6124366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250