JP2023553072A - 変化する温度下で制御のスパンを構成するための方法 - Google Patents
変化する温度下で制御のスパンを構成するための方法 Download PDFInfo
- Publication number
- JP2023553072A JP2023553072A JP2023534608A JP2023534608A JP2023553072A JP 2023553072 A JP2023553072 A JP 2023553072A JP 2023534608 A JP2023534608 A JP 2023534608A JP 2023534608 A JP2023534608 A JP 2023534608A JP 2023553072 A JP2023553072 A JP 2023553072A
- Authority
- JP
- Japan
- Prior art keywords
- signal path
- change
- memory
- processing circuitry
- processing unit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 131
- 230000008859 change Effects 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 126
- 230000007423 decrease Effects 0.000 claims description 34
- 239000000523 sample Substances 0.000 claims description 23
- 230000004913 activation Effects 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 230000014759 maintenance of location Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- IJGRMHOSHXDMSA-UHFFFAOYSA-N Atomic nitrogen Chemical compound N#N IJGRMHOSHXDMSA-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- SWQJXJOGLNCZEY-UHFFFAOYSA-N helium atom Chemical compound [He] SWQJXJOGLNCZEY-UHFFFAOYSA-N 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000724291 Tobacco streak virus Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 239000001307 helium Substances 0.000 description 1
- 229910052734 helium Inorganic materials 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40626—Temperature related aspects of refresh operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
方法は、処理ユニットの動作パラメータの変化に応じて、処理ユニットの処理回路構成要素への信号経路を変更することと、信号経路を介して処理回路構成要素と通信することと、を含み得る。【選択図】図2
Description
ワイヤ抵抗は、動作温度の低下とともに減少し、したがって、低温でワイヤを介して送信される信号の伝搬遅延も減少し、一方で、相補型金属酸化膜半導体(complementary metal-oxide semiconductor、CMOS)スイッチング速度が増加する。したがって、極低温領域においてコンピューティング構成要素を動作させることは、CMOSスケーリングのボトルネックを克服するために使用され得る。例えば、液体窒素(liquid nitrogen、LN2)を用いた極低温冷却は、より高い周波数での動作のために、処理装置をオーバークロックするために使用することができる。一般に、極低温CMOS設計は、LN2(77K)から液体ヘリウム(4K)までの温度で動作することができ、データセンタ及び他のコンピューティングシステムを動作させるコストを削減するために使用することができる。
本開示は、添付の図面の図において、限定としてではなく例として示される。
以下の説明では、実施形態の理解を深めるために、特定のシステム、構成要素、方法等の例のような多数の具体的な詳細を記載する。しかしながら、少なくともいくつかの実施形態がこれらの具体的な詳細なしに実施され得ることは、当業者には明らかである。他の例では、実施形態を不必要に曖昧にすることを回避するために、周知の構成要素又は方法は詳細に記載されないか又は簡易ブロック図の形式で提示される。したがって、記載された具体的な詳細は単なる例示にすぎない。特定の実装形態は、これらの例示的な詳細とは異なっていてもよく、依然として実施形態の範囲内にあると考えられる。
物理設計及びレイアウトを実行する場合、中央処理ユニット(central processing unit、CPU)及びグラフィックス処理ユニット(graphics processing unit、GPU)の設計者は、ワイヤ長を設定するために静的及び動的タイミング分析に依拠する。これらの分析は、通常約0℃の下限を有すると想定される動作温度によって制約される。しかしながら、通常の動作温度に対する最悪の場合の境界は、極低温領域における動作温度に対するものとは大きく異なる。極低温で動作するように設計された回路は、通常の動作温度(例えば、室温付近)に対して最適化されない。
コンピューティングシステムの一実施形態では、極低温での動作のために最適化された通信信号経路が、極低温で動作している場合に有効化され、より高い温度(例えば、室温)では無効化されるように、特定のブロック又はパイプラインステージの制御のスパン(span of control)がランタイム中に構成可能である。低温で動作する場合の増加したCMOSスイッチング周波数及び減少したワイヤ抵抗は、低減されたパイプライン長、より大きなキャッシュ、又は、そうでなければ室温での最悪の場合のタイミング制約のために実行不可能であるハードウェア最適化を可能にする。動作温度に基づいてこれらの構成要素及び信号経路を動的に有効化及び無効化することは、同じ装置が、より高い温度で動作する場合にタイミング制約に違反することなく、低温でのその性能を高めることを可能にする。
また、低温動作は、非常に大きなデータセットに対して計算を実行するデータセンタ等の大きなコンピューティング設備を動作させる場合に使用することができる。そのようなデータセンタでは、ノード密度及び電力消費は、不動産コスト及びエネルギーコストの両方に関して、データセンタを所有及び運用するコストに直接影響を及ぼし、これらは、データセンタ内のメモリ装置による電力消費及び占有される空間によって影響を受ける。したがって、高密度メモリをオンチップに又は計算チップの近くに配置することは、これらの制限に対処する助けとなり得る。
埋め込みDRAM(embedded DRAM、eDRAM)セルは、論理互換性があり、オンチップキャッシュのために一般に使用されるスタティックランダムアクセスメモリ(static random-access memory、SRAM)セルよりもはるかに高密度であるが、eDRAMセルは、短いデータ保持時間に悩まされる。したがって、eDRAMセルは、常温で高速でリフレッシュされ、電力消費の増加につながる。しかしながら、温度が低下すると、データ保持時間が劇的に増加する。動作温度が極低温範囲(約77K)又はその付近である場合、温度が低下するにつれて漏れが急激に減少するので、データ保持時間を大幅に延長することができる。低温では、したがって電力消費が低減され、一方、速度が増加する。
コンピューティングシステムの一実施形態は、温度とともに変化するアプリケーション挙動、コヒーレンス状態及びデータ保持時間に基づいて、DRAMにおけるリフレッシュオーバーヘッドの低減を低減する。これは、そうでなければキャッシュ又はオンチップデバイスとしてのDRAMの使用を妨げる、DRAMにおける高いリフレッシュオーバーヘッドの問題を克服する。これらの技術は、大きなオンチップDRAM又はDRAMキャッシュに拡張することができる。キャッシュコヒーレントDRAMキャッシュの場合、個々のブロックのキャッシュコヒーレント状態を使用してラインを選択的にリフレッシュすることができ、これは、リフレッシュオーバーヘッドを更に低減する。
図1は、低い(例えば、極低温の)温度で動作する場合に上記のような最適化を可能にするコンピューティングシステム100の実施形態を示している。概して、コンピューティングシステム100は、ラップトップコンピュータ又はデスクトップコンピュータ、携帯端末、サーバ等を含むがこれらに限定されない、多数の異なる種類の装置の何れかとして具現化される。コンピューティングシステム100は、バス101を介して互いに通信する多数の構成要素102~108を含む。コンピューティングシステム100において、構成要素102~108の各々は、バス101を介して直接又は他の構成要素102~108のうち1つ以上を介して、他の構成要素102~108の何れかと通信することができる。コンピューティングシステム100内の構成要素101~108は、ラップトップコンピュータ若しくはデスクトップコンピュータのシャーシ、又は、携帯電話のケーシング等の単一の物理的エンクロージャ内に収容される。代替の実施形態では、コンピューティングシステム100の構成要素のうちいくつかは、コンピューティングシステム100全体が単一の物理的エンクロージャ内に存在しないように、周辺装置として具現化される。
また、コンピューティングシステム100は、ユーザから情報を受信する又はユーザに情報を提供するためのユーザインターフェース装置を含む。具体的には、コンピューティングシステム100は、キーボード、マウス、タッチスクリーン、又は、ユーザから情報を受け取るための他の装置等の入力装置102を含む。コンピューティングシステム100は、モニタ、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ、又は、他の出力装置等のディスプレイ105を介してユーザに情報を表示する。
コンピューティングシステム100は、有線ネットワーク又は無線ネットワークを介してデータを送受信するためのネットワークアダプタ107を更に含む。また、コンピューティングシステム100は、1つ以上の周辺装置108を含む。周辺装置108は、大容量記憶装置、位置検出装置、センサ、入力装置、又は、コンピューティングシステム100によって使用される他のタイプの装置を含んでもよい。
コンピューティングシステム100は、1つ以上の処理ユニット104を含み、複数の処理ユニット104の場合には、並列に動作することができる。処理ユニット104は、メモリサブシステム106に記憶された命令109を受信して実行する。一実施形態では、処理ユニット104の各々は、共通の集積回路基板上に存在する複数のコンピューティングノードを含む。メモリサブシステム106は、ランダムアクセスメモリ(random-access memory、RAM)モジュール、読み出し専用メモリ(read-only memory、ROM)モジュール、ハードディスク、及び、他の非一時的なコンピュータ可読媒体等のように、コンピューティングシステム100によって使用されるメモリ装置を含む。
コンピューティングシステム100のいくつかの実施形態は、図1に示されるような実施形態よりも少ない又は多い構成要素を含んでもよい。例えば、特定の実施形態は、ディスプレイ105又は入力装置102なしで実装される。他の実施形態は、2つ以上の特定の構成要素を有し、例えば、コンピューティングシステム100の一実施形態は、複数のバス101、ネットワークアダプタ107、メモリ装置106等を有することができる。
図2は、一実施形態による、処理ユニット104のうち何れかを表す、処理ユニット200内のハードウェア構成要素を示している。処理ユニット200は、単一の集積回路ダイ上に存在する、1つ以上のプロセッサコア210、制御のスパンコントローラ220、及び、共有キャッシュ230(例えば、レベル3(level 3、L3)キャッシュ)のセットを含む。代替の実施形態では、構成要素210~230の一部又は全部は、個別のダイ上又は個別のデバイスパッケージ内に配置される。構成要素210~230は、ハードウェア回路を使用して、又は、ハードウェア、ソフトウェア及び/又はファームウェア構成要素の組合せを使用して実装される。命令109によって提供される作業負荷は、処理ユニット200内の1つ以上のプロセッサコア210内で実行される。プロセッサコア210の各々は、機能ユニット214、1つ以上のキャッシュ212(例えば、レベル1(level 1、L1)キャッシュ及びレベル2(level 2、L2)キャッシュ)、及び、それらのそれぞれのキャッシュコントローラ等のように、命令109を実行するデジタル論理回路を含む。センサ231は、動作温度等のような各プロセッサコアの動作パラメータを測定するためにプロセッサコア210の各々に存在する。また、処理ユニット200は、処理ユニット200内の他の場所から動作パラメータを測定するための追加のセンサ(図示せず)、及び、コンピューティングシステム100内の他の場所からパラメータ(例えば、温度)を測定するためのセンサ230を含み得る。
制御のスパンコントローラ220は、処理ユニット200と結合され、処理ユニット200の構成要素と同じダイ上に存在するか、又は、代替の実施形態では、個別のダイ若しくは集積回路パッケージ上に存在する。「制御のスパン」という用語は、2つの構成要素が、クロックサイクル又はクロックサイクル数等の所定の時間制約内で通信することができる距離を指す。例えば、より低い温度で動作することによるワイヤ抵抗及びスイッチング速度の減少は、ワイヤ、スイッチング及び計算論理等を含み得る固定長通信経路を介して送信される信号の速度を増加させる。代替的に、制御のスパンは、信号が同じ量の時間内でより長い距離送信され得るように増加することができる。したがって、制御のスパンコントローラ220は、処理ユニット200において計算を実行するために使用されるより長い信号経路及び/又は他の特徴を有効化及び無効化することによって、センサ230~231又は他のセンサによって測定される動作パラメータ(例えば、温度)の変化に応答する。一般に、より長い信号経路は、ディスパッチユニット、機能ユニット、キャッシュセット、追加のメモリブロック、又は、処理ユニット200において計算を実行するために使用される他のデバイス等の回路ブロックである2つの処理回路構成要素間で有効化され得る。信号経路が有効化されると、構成要素は、処理タスクを実行する場合に、有効化された経路を介して互いに通信することができる。有効化された信号経路によって接続される構成要素は、同じ集積回路ダイ上に又は同じデバイスパッケージ内に存在する必要はない。すなわち、信号経路は、1つの集積回路ダイ又はデバイスパッケージにおいて開始し、別の集積回路ダイ又はデバイスパッケージにおいて終了することができる。
一般に、制御のスパンコントローラ220は、センサ230及び/又は231によって測定される動作パラメータの変化に応答する。制御のスパンコントローラ220は、動作パラメータの各々を1つ以上の閾値と比較し、パラメータがその対応する閾値のうち何れかを上回って増加するか又は下回って減少する場合に、通信経路又は他の特徴のセットを有効化又は無効化する。一実施形態では、センサ230~231は、動作温度の変化を制御のスパンコントローラ220に示す温度センサを含む。例えば、センサ230又は231が動作温度の低下を示す場合、制御のスパンコントローラ220は、信号経路のセットを有効化することによって応答する。コントローラ220によって観察される温度閾値は、例えば、室温と極低温領域における異なる温度との間の変化を表すことができる。温度のより小さな変化は、信号伝搬時間に影響を及ぼす可能性があるので、閾値は、動作温度のより小さな変化を線引きすることができる。一実施形態では、制御のスパン構成は、実行時に動的に決定される。代替的に、制御のスパンは、ユーザが低温動作のためにシステムを手動で構成することができるように、ユーザ構成設定から決定することができる。次いで、コントローラ220は、ユーザの構成設定に従って、増加した制御のスパン機能を可能にすることができる。
温度が低下する(又はシステムが低温動作のために構成されている)場合に有効化された信号経路は、温度低下の前に使用されている信号経路(又はシステムが常温での動作のために構成される場合)よりも長い。より低い温度のために、信号は、回路のクロック周波数によって決定されるタイミング制約に違反することなく、より長い経路の長さを伝搬することができる。同様の効果は、タイミング制約を同じ信号伝搬時間でも満たすことができるように、クロック周波数を下げることによっても達成することができる。一実施形態では、制御のスパンコントローラ220が応答する動作パラメータは、回路のクロック周波数である。すなわち、コントローラ220は、クロック周波数の変化に応じて信号経路を有効化又は無効化し、その変化は、コントローラ220に報告され得るか、又は、コントローラ220によってレジスタから読み出され得る。
一実施形態では、制御のスパンコントローラ220又は別のデバイスは、回路の現在のクロック周波数に基づいて信号経路のセットを有効化するための温度閾値を計算する。したがって、温度の低下又はクロック周波数の低下の何れかは、コントローラ220がより長い信号経路を有効化することを引き起こすことができる。したがって、温度の上昇又はクロック周波数の上昇は、コントローラ220がより長い経路を無効化することを引き起こすことができる。
計算スループットを増加させるための1つの機構は、低温で追加のメモリ(例えば、追加のキャッシュ又はメインメモリ領域)を有効化することによるものである。追加のメモリは、通常の室温で横切るには時間がかかりすぎる、より長い信号経路を介してアクセスされ、しかしながら、より低い(例えば、極低温の)温度では、信号は、回路設計のタイミング制約内で追加のメモリに到達することができる。
制御のスパンコントローラ220は、追加メモリ及び追加メモリにアクセスするための信号経路を有効化することによって、温度の低下に応答する。追加のメモリは、メインメモリ、キャッシュデバイス又は他のメモリ装置内に存在することができる。したがって、低温で有効化された信号経路は、メモリコントローラ又はキャッシュコントローラ等のコントローラデバイスを追加のメモリと結合する。次いで、コントローラデバイスは、有効化された信号経路を介して追加のメモリにデータを読み書きすることによって、メモリアクセス要求に応答することができる。
図3は、一実施形態による、制御のスパンコントローラ220によって有効化又は無効化され得る信号経路及びキャッシュセットを有するキャッシュデバイス300を示している。キャッシュデバイス300は、プロセッサコア210内のキャッシュ212、共有キャッシュ230、又は、コンピューティングシステム100内の他のキャッシュデバイスのうち何れかを表すことができる。
キャッシュのサイズを制限する要因の1つは、キャッシュの最も遠い部分との間でデータを配信するワイヤの長さである。室温で動作する場合、多くのキャッシュセットを有するより大きなキャッシュは、より長いワイヤで横断される領域を占有するので、所定のタイミング制約でデータを配信することができることを保証しながら、より多くの容量を追加することが可能でない場合がある。したがって、キャッシュは、キャッシュの外部の回路ブロックと通信する場合に、より長いワイヤを介して信号を送信するためのタイミング遅延のためにサイズが制約される。
しかしながら、所定の長さのワイヤについて、信号伝搬遅延は、低温で動作する場合に減少する。したがって、温度認識する制御のスパンコントローラ220は、現在の動作温度、温度閾値(クロック周波数に基づいて動的に調整され得る)、過去の温度履歴、及び/又は、他の温度情報を含む温度情報301に基づいて、キャッシュサイズを増加することができるかどうかを決定する。キャッシュサイズは、低温動作が検出された場合に追加のキャッシュ領域を有効化することによって低温で増加される。
図3に示されるように、キャッシュデバイス300は、全ての動作温度に対して有効化されたn個のキャッシュセット310~311と、現在の動作温度が、追加セット312~313をキャッシュコントローラ320に接続する信号経路330を介して送信される信号に対してタイミング制約が満たされることを可能にすることをコントローラ220が検出した場合に有効化される2つの追加セット312~313と、を含む。したがって、極低温又は他の低温動作の下では、増加した制御のスパンは、キャッシュデバイス300の容量が増加されること可能にする。温度が上昇し、その結果タイミング制約がもはや満たされなくなる場合、制御のスパンコントローラ220が温度変化を検出し、信号経路330及び追加キャッシュセット312~313を無効化する。
キャッシュセット312~313は、クロック又はパワーゲーティングによって有効化及び無効化される。キャッシュセット312~313が無効化される場合、信号経路330がアクティブな宛先を有さず、信号が経路330を介して送信されないので、信号経路330も無効化される。代替の実施形態では、セット以外のキャッシュ構造(例えば、バンク)が、キャッシュ300の編成に応じて、コントローラ220によって有効化又は無効化される。
キャッシュセット312~313を有効化又は無効化する場合、制御のスパンコントローラ220は、それに応じて、キャッシュセット312~313が有効化又は無効化されていることをキャッシュコントローラ320に通知する。キャッシュコントローラ320は、キャッシュデバイス300のどの部分が極低温動作及び常温でアドレス指定されるかを変更することによって応答する論理を含む。加えて、セット312~313内の任意のダーティデータは、バッキングメモリ106に書き戻され、その結果、データは、セット312~313が無効化された場合に失われない。
低温動作において、追加されたキャッシュ容量は、大きなキャッシュを必要とする多くの作業負荷に対する性能を改善することができる。加えて、キャッシュデバイス300がSRAMを用いて実装される場合、リークによる電力消費は低温で減少し、したがって、より大きなキャッシュが、通常の室温よりも低い温度でより効率的に動作することができる。
図4は、一実施形態による、制御のスパンコントローラ220によって有効又は無効化することができる信号経路及びメモリ装置を含むメモリスタック400を示している。メモリスタック400は、コンピューティングシステム100内のメインメモリ106を実装するために使用される高帯域幅メモリ(high bandwidth memory、HBM)DRAMダイ411~415のスタックを含む。DRAMダイ411~415は、互いにスタックされ、マイクロバンプ(例えば、421)及びシリコン貫通ビア(through-silicon via、TSV、例えば、422)によってスタック内の下部デバイスに接続されている。メモリコントローラ及び他の論理は、メモリスタック400の底部にある論理ダイ403上に存在する。論理ダイ403は、論理ダイ403からパッケージの外部ピンへの接続をルーティングするインターポーザ402を介してパッケージ基板401と結合されている。また、パッケージは、制御のスパン(span of control、SOC)コントローラ220も存在するGPU又はCPUダイ404を含む。代替の実施形態では、制御のスパンコントローラ220は、別のダイ(例えば、論理ダイ403)上に又は別のパッケージ内に存在してもよい。
スタックされ得るダイの数を制約する1つの要因は、スタック内のより高く位置付けられたダイ(例えば、414、415)と論理ダイ403との間でデータを転送するレイテンシである。メモリダイ411~415は、異なる長さを有する信号経路を介して論理ダイ403に接続されるので、メモリスタック400は、スタック内の全てのダイの均一なビューを保証するために最悪の場合のレイテンシに適応するように設計される。
メモリスタック400は、論理ダイ403からのそれらの距離に起因して室温でタイミング制約を満たすことができない追加のメモリダイ414及び415を含む。したがって、ダイ414~415は、通常の室温で動作している場合に無効化される。動作温度が十分に低い場合、ダイ414~415は、タイミング制約を満たすことができ、制御のスパンコントローラ220によって有効化される。また、コントローラ220は、有効化されたダイ414~415のタイミングパラメータ及びクロック周波数を調整する。したがって、低温動作は、処理ユニットが増大した量の高速メモリを利用することを可能にする。同時に、低温動作は、熱がチップからより速く外へ伝達されることを可能にする。加えて、温度が低下するにつれてDRAM内のデータ保持時間が増加するので、リフレッシュレートを低下させることができる。
通常の室温動作に戻ると、追加のメモリダイ414及び415が無効化される。ダイ414及び415が作業データを記憶するので、これらのダイに記憶されたデータは、室温動作において依然として有効化されているダイ411~413のうち何れかに、又は、スワップファイル若しくはハードディスクドライブ内の他の場所等の別のメモリにコピーされる。また、データ配置は、制御のスパンコントローラ220及び/又は論理ダイ403内の論理によって処理されて、メモリダイを有効化及び無効化することによる性能への影響を最小限にすることができる。一実施形態では、より頻繁にアクセスされるデータは、常に有効化されているより近いメモリダイ(例えば、411~413)に記憶され、その結果、追加のメモリダイ414~415の有効化及び無効化は、ダイ414~415の無効化時にコピーされるデータがより少ないので、システム性能に対する影響がより小さくなる。低温動作中、論理は、十分に利用されていないデータをより遠いダイ414~415に移動させ、頻繁にアクセスされるデータをより近いダイ411~413に移動させることによって、データ配置を能動的に管理する。
また、制御のスパンコントローラ220は、動作温度又は他の動作パラメータに基づいて、何れのダイを有効化又は無効化するかを決定するための何らかの論理を含む。例えば、コントローラ220は、メモリ要求に応じて、現在の動作温度でタイミング制約を満たすことができる追加のメモリダイの総数よりも少ない数を有効化し得る。すなわち、既に有効化されたダイ411~413が完全に利用されていない場合、コントローラ220は、低温であっても追加のメモリダイ414~415を有効化しない。また、制御のスパンコントローラ220は、ウェアレベリング、熱又は他の要因のために、論理ダイ403により近いダイを有効化する前に、より遠く離れた(すなわち、より長い信号経路によって接続された)ダイを有効化することができる。一実施形態では、コントローラ220は、異なる閾値に基づいて異なる距離にあるダイを有効化し、例えば、ダイ414は、ダイ415よりも高い温度閾値で有効化され得る。
一実施形態では、制御のスパンコントローラ220は、クロックゲーティング又はパワーゲーティングによって追加のメモリダイ414~415を無効化し、ダイ414~415による電力消費を低減する。代替的に、ダイ414~415は、メモリセルがそれらの内容を保持するが、読み出し又は書き込みができないスリープ又はドラウジー低電力状態に遷移される。
ダイを無効化する異なる方法は、電力消費及び再有効化時間に対して異なる影響を有することができる。多くの場合、より多くの電力を節約するモードは、遷移するのにより長い時間がかかる。例えば、追加のダイ414~415は、低電力状態(例えば、スリープ又はドラウジーモード)に置かれた場合、より迅速に再有効化することができ、しかしながら、クロックゲート又はパワーゲート(登録商標)状態にあるダイ414~415は、低電力状態よりも少ない電力を消費する。したがって、制御のスパンコントローラ220によって選択される無効化(例えば、クロックゲーティング、パワーゲーティング、低電力状態等)の方法は、動作温度、電力消費及び性能目標、ユーザ構成設定等の要因に基づく。
一実施形態では、制御のスパンコントローラ220は、追加のメモリダイ、キャッシュセット又は他の制御のスパン機能をいつ有効化又は無効化するかを決定するために、これらの要因に関連する性能関連メトリックを収集する。例えば、コントローラ220は、低温動作のために有効化されているが、十分に利用されていないキャッシュセットを識別し得る。したがって、コントローラ220は、キャッシュコントローラで受信されたアドレスを監視して、有効化されたキャッシュセットの利用レベルを決定する。十分に利用されていないと識別されたキャッシュセットは、電力消費を低減するために無効化される。
性能及び電力消費目標を満たすために、制御のスパンコントローラ220は、制御のスパン機能の異なるセットを有効化又は無効化する利益を、遷移の性能影響と比較検討する。制御のスパン機能の所定のセットを有効化するか無効化するかを決定する場合、コントローラ220は、システムが新しい状態でどれだけ長く動作することができるかを推定し、次いで、推定持続時間の間に新しい状態で動作することの利益を遷移の性能コスト(例えば、データを移動させるコスト、コントローラを再構成するコスト等)と比較する。
プローブフィルタベースのキャッシュコヒーレンシ機構を使用するシステムでは、温度に基づいてキャッシュ容量を動的に増加させることは、追加のキャッシュラインを追跡するためにプローブフィルタのサイズを増加させること、又は、各エントリが増加した数のキャッシュラインを追跡するように各プローブフィルタエントリの粒度を増加させることの何れかをもたらす。プローブフィルタメッセージのサイズを増加させることは、メッセージを送信及び処理するコストを増加させ、一方、粗粒度のエントリを有するプローブフィルタを使用することは、プローブエントリ追い出し時の誤った共有によるキャッシュ追い出しをもたらす可能性がある。スヌーピングベースのキャッシュコヒーレンシプロトコルは、キャッシュバスを介してアクセスされている物理アドレスをブロードキャストすることによってコヒーレント実行を可能にする別の代替案である。しかしながら、スヌーピングプロトコルは、処理コアの数が増加する場合、うまくスケーリングしない。
スヌーピングは、より低いキャッシュアクセス及びオンチップリンクレイテンシに起因して、より低い(例えば、極低温の)温度において実用的になり得る。したがって、スヌーピングベースのプロトコル実装は、特定の物理アドレス範囲に対して実用的になり、一方、プローブフィルタプロトコルは、低温で動作する場合に他の物理アドレス範囲に対して使用される。したがって、制御のスパンコントローラ220は、低温動作を検出し、スヌーピングの使用とプローブフィルタベースのコヒーレンシ機構の使用とを動的に切り替える。低温において、キャッシュ容量が増加する場合、スヌーピングベースのコヒーレンシ機構が使用される。常温において、キャッシュ容量が小さい場合、プローブフィルタ機構が使用される。
一実施形態では、処理回路構成要素は、1つ以上の信号経路を介してメッセージをキャッシュデバイスに送信することによってキャッシュコヒーレンシ検査を実行する。プロセッサコア210等の処理回路構成要素は、常温で動作している場合にシステム100内のキャッシュデバイスへのそのアクセスを示すために、有向プローブメッセージングプロトコルを使用することによって、プローブフィルタ機構に従ってそのコヒーレンシ検査を実行する。低温動作への変更後、制御のスパンコントローラ220は、追加のキャッシュセット(例えば、キャッシュセット312~313)を有効化し、ブロードキャストメッセージングプロトコル(すなわち、スヌーピング)を使用するように特定の物理アドレスの1つ以上の範囲に対してコヒーレンシ機構を切り替える。こうして、制御のスパンコントローラ220は、低温で動作している場合に、1つ以上の処理回路構成要素とキャッシュデバイスとの間の信号経路を介したブロードキャストコヒーレンシメッセージの送信を可能にする。このハイブリッドキャッシュコヒーレンシ方式の実施形態は、より大きいキャッシュサイズが有効化される場合、プローブフィルタエントリの数を増加させることなく、且つ、各プローブフィルタエントリの追跡粒度を増加させることなく、コヒーレンシをサポートする。こうして、いくつかの実施形態では、制御のスパンコントローラ220は、他のタイプの通信に対して既に有効化されている信号経路を介して通信チャネル(例えば、ブロードキャストコヒーレンシメッセージング)を有効化することによって、温度又は他の動作パラメータの変化に応答する。
図5A及び図5Bは、一実施形態による、機能ユニットデータフローを変更するための低温動作下での増加した制御のスパンの使用を示している。各プロセッサコア210は、命令109を実行するための計算を実行する論理を含むいくつかの機能ユニット214を含む。低温動作は、より速い信号伝搬をもたらすので、タイミング制約に違反することなく信号経路をより長くすることができる。したがって、GPU、CPU、加速処理ユニット(accelerated processing unit、APU)、アクセラレータデバイス等における機能ユニット間でルーティングされる信号経路は、より長く、より複雑になり得る。
図5Aは、CPU、GPU等等の処理ユニット内の2つのパイプライン500及び510を示している。パイプライン500及び510の各々は、それぞれのディスパッチユニット501及び511を含む。ディスパッチユニット501及び511は、命令フェッチユニットから命令を受け取り、その命令を適切な機能ユニットにディスパッチする。例えば、「加算」、「乗算」等の命令は、指定された機能を実行することができる特定の機能ユニットにマッピングされる。各パイプライン内で、ディスパッチユニットは、命令を機能ユニットのセットにディスパッチすることができ、パイプライン500において、ディスパッチユニット501は、機能ユニット502~503に命令をディスパッチすることができ、パイプライン501において、ディスパッチユニット511は、機能ユニット512~513に命令をディスパッチすることができる。機能ユニットの各セット(例えば、502~503又は512~514)は、同じタイプの1つ以上のユニット(例えば、1つ以上の乗算ユニット、加算ユニット等)を含むことができる。
常温での動作中、ディスパッチユニット(例えば、501)は、各サイクルでディスパッチされている1つ以上の命令に対応するそのセット内の機能ユニット(例えば、502~503)を選択する。次いで、ディスパッチユニットは、選択された機能ユニットのセットに命令を通信し、各命令は、それを実行することができる機能ユニットにディスパッチされる(例えば、「加算」命令が加算器機能ユニットにディスパッチされる)。ディスパッチユニットが命令を送ることができる機能ユニットのセットのサイズは、信号タイミング、及び、ディスパッチユニットから機能ユニットへの信号経路の長さによって制約される。より低い温度では、より長い信号経路を使用することができ、その結果、所定のディスパッチユニットは、より遠い機能ユニットを使用することができる。
一実施形態では、制御のスパンコントローラ220は、ディスパッチユニットと他のパイプライン内の機能ユニットとの間のより長い信号経路を有効化する。例えば、制御のスパンコントローラ220は、信号経路520を有効化することによって温度の低下に応じて、ディスパッチユニット501からの命令が、遠く離れた異なる隣接パイプライン510内の機能ユニット512にディスパッチされることを可能にする。ディスパッチユニット501が通常利用可能な機能ユニット502~503が過剰利用されている状況では、ディスパッチユニット501は、経路520が有効化されている場合に、別のパイプライン510内の空き又は十分に利用されていない機能ユニット512に命令をディスパッチすることができる。常温では、ディスパッチされた命令は時間制約内に機能ユニット512に到達しないが、低温では、時間制約を満たすことができる。こうして、動作温度の低下後、ディスパッチユニット501は、命令をディスパッチすることができる機能ユニットのより大きなセットを有する。制御のスパンコントローラ220は、温度の低下に応じて、ディスパッチユニット501とより大きなセット内の追加機能ユニットの各々との間の信号経路を有効化する。増加した制御のスパンは、動作温度の低下によって達成されるものとしてここで説明されているが、同じ効果は、信号が伝搬するのにより多くの時間を可能にするクロック周波数を低下させることによって達成され得る。
いくつかの実施形態では、制御のスパンコントローラ220は、より複雑なデータフロー構成が構築され得るように、パイプラインスケジューラ、レジスタファイル等の他のタイプの構成要素間の経路を有効化するために使用される。これは、レジスタファイルからのデータ移動を減少させ、スループットを増加させる。
いくつかの実施形態では、特定の動作(単一又は複数の命令に対応することができる)は、機能ユニットのシーケンスによって実行される。例えば、累算関数に続く乗算、又は、加算演算に続く乗算を実行することによって、演算を実行することができる。したがって、1つの機能ユニット(例えば、乗算器)によって生成された結果は、別の機能ユニット(例えば、加算器)への入力として使用される。同様の方法でより多くの数の機能ユニットを連鎖させることによって、より複雑な演算を実行することができる。機能ユニットのチェーンの長さが所定の動作温度で実現可能であるかどうかを決定する1つの要因は、信号が時間制約内で機能ユニットを接続する信号経路の長さを伝わることができるかどうかである。より低い動作温度は、減少した信号伝搬遅延及びより速いCMOSスイッチング速度をもたらすので、機能ユニットのより長いチェーンを使用して、低温で単一クロックサイクル内でより複雑な動作を実行することができる。
図5Bは、一実施形態による、処理ユニット200内のデータに対して演算を実行するために使用される機能ユニット531~533のセットを示している。機能ユニット531~533の各々は、それらの入力において受信したオペランドに対して機能を実行し、その出力において結果を生成する。1つの機能ユニットの出力を別の機能ユニットの入力に接続して、より複雑な演算を実行するために機能ユニットを互いに連鎖させることができる。
通常の動作温度では、各サイクルの終わりに、レジスタファイル540に中間結果を記憶することによって、単一サイクルよりも長くかかる一連の演算が実行される。次のサイクルでは、中間結果がレジスタファイル540から読み出され、シーケンス内の次の機能ユニットの入力に提供される。低温では、機能ユニットのより長いチェーンは、同じサイクル時間内にそれらの演算を完了することができ、その結果、中間結果は、所定の長さの計算ごとに、より少ない回数レジスタファイル540に記憶され、そこから取り出される。
図5Bに示すように、機能ユニット531は、その入力531A及び531Bで受信したオペランドに対して演算を実行し、その出力531Cに結果を生成する。常温では、結果は単一サイクル内に生成され、結果はレジスタファイル540に記憶される。次のサイクルでは、結果がレジスタファイル540から取り出され、機能ユニット532の入力に提供され、これがシーケンス内の次の演算を実行する。
低温(例えば、極低温)動作が検出されると、制御のスパンコントローラ220は、信号経路541及び542を有効化する。機能ユニット531の出力531Cで生成された結果は、レジスタファイル540にアクセスすることなく、一連の動作における次の機能ユニット532の入力532Aに提供される。同様に、出力532Cで生成された結果は、有効化された経路542を介してシーケンス内の次の機能ユニット533の入力533Aに提供される。通常の動作温度では、経路541及び542を介して送信される信号は、タイミング要件を満たすのに十分な速さで伝わらず、しかしながら、低温動作ではこれらの経路を通るより速い信号伝搬時間に起因して、より多数の機能ユニットが、レジスタファイルアクセスなしに、タイミング制約内で(例えば、単一サイクル内で)それらの動作を実行することができる。
一実施形態では、制御のスパンコントローラ220は、図6に示されるように、連続するパイプラインステージにおいて論理を結合することによって、動作パラメータの変化(例えば、低温動作、より低いクロック周波数等)に応答する。図6において、パイプラインステージ631及び632は、同じパイプラインにおける連続したステージであり、各々が、そのそれぞれの論理ブロック611又は612を使用してより大きな計算の一部を実行する。ステージ631及び632は、パイプラインラッチ601~603によって他のステージから分離されており、これらのパイプラインラッチは、あるサイクルから次のサイクルまでの各ステージにおいて計算された中間値を記憶する。
通常の動作温度では、論理611によって実行される計算は、第1のクロックサイクルで完了し、論理612による計算は、次の後続のクロックサイクルで完了する。論理611は、それが動作するデータをラッチ601から受け取り、単一サイクル内で、次のラッチ602に記憶される出力を生成する。次のサイクルにおいて、論理612は、ラッチ602からデータを受け取り、1サイクル内に、ラッチ603に記憶される出力を生成する。通常の動作温度では、信号伝搬遅延は十分に大きいので、ステージ631及び632の両方における論理611及び612は、単一サイクル内でそれらの計算を完了することができない(例えば、ラッチセットアップ及び/若しくは保持時間が破られる可能性があるか、又は、ラッチがクロックされる時間までに出力が生成されない)。
しかしながら、低い(例えば、極低温の)温度では、信号伝搬遅延は減少され、その結果、両方のステージ631及び632は、タイミング制約を満たし、単一サイクル内でそれらの計算を完了することができる。したがって、制御のスパンコントローラ220は、動作温度が十分に低い場合を検出し、スイッチ620を動作させることによって経路621がステージ631及び632を互いに接続することを可能にする。こうして、低温では、論理611は出力を生成し、有効化された経路621及びスイッチ620は、出力を論理612の入力に伝達し、論理612は、ラッチ603に記憶される出力を生成する。ステージ631及び632の両方によって実行される計算は、スイッチング速度及び信号伝搬遅延が低温動作のために減少されるので、且つ、有効化された経路621が、中間値がラッチ602をバイパスすることを可能にするので、単一クロックサイクル内で完了することができる。したがって、低温における2つのステージ631及び632の出力は、通常の動作温度における2つのクロックサイクルと比較して、単一のクロックサイクルにおいて生成される。
代替の実施形態では、制御のスパンコントローラ220は、複数の経路が複数のそれぞれのラッチをバイパスし、複数のパイプラインステージを結合することを可能にすることができる。コントローラ220によって互いに結合される連続するステージの数は、検出される温度に依存する。すなわち、より低い温度では、より高い温度よりも、パイプラインラッチ間のより長い経路が有効化される(すなわち、より多くの数のパイプラインステージが結合される)。
一実施形態では、温度情報301は、図7に示されるように、コンピューティングシステム100内のメモリのリフレッシュ信号712を制御するためにも使用される。メモリ装置700は、コンピューティングシステム100内のメモリ106の一部であり、メモリアレイ701内のメモリセルのセットを制御するためのメモリコントローラ710を含む。メモリセルは、DRAMセルである。DRAMセルにデータを記憶する容量性素子のリークのために、セルは周期的にリフレッシュされ、その結果、セルは時間とともにその内容を保持する。通常の動作温度では、リフレッシュ周期は、セルに記憶されたデータが最悪の場合に予想される条件で失われないように選択される。しかしながら、低温ではリーク量が大幅に減少し(かつデータ保持時間が長くなり)、したがって、メモリセルがより少ない頻度でリフレッシュされる、より緩和されたリフレッシュポリシーを、低温で動作する場合に可能にすることができる。また、メモリリフレッシュ時間は、メモリの特定の部分がリフレッシュされるかどうかを決定するために使用される、メモリ状態及び/又は使用履歴に基づいて調整され得る。例えば、リフレッシュ時間は、メモリライン再利用、再利用距離情報、共有及び/又はコヒーレンス状態、並びに、メモリに記憶されたデータに関する他の情報に基づいて調整され得る。
図7に示されるように、メモリコントローラ710は、リフレッシュコントローラ711を含み、これは、一実施形態では、上述したように、温度に基づいてメモリ領域への経路を有効化及び無効化する等の制御のスパン機能を実行することもできる。温度センサ703は、温度情報301に含まれるメモリアレイ701の動作温度を測定する。リフレッシュコントローラ711は、メモリアレイ701内のDRAMセルに印加されるリフレッシュ信号712のレートを変更することによって、動作温度(又はメモリセルリークに影響を及ぼし得る他の動作パラメータ)の変化に応答する。リフレッシュコントローラ711は、メモリ装置700の現在の動作温度を1つ以上の温度閾値と比較し、閾値若しくは超えられた閾値、メモリセルの特性、及び/又は、他のパラメータに基づいて、最悪の場合のリフレッシュ周期を計算する。検出された動作温度でDRAMが動作している間に、タイミング制約が満たされ、データ損失が発生しないことを保証するリフレッシュレートが計算される。したがって、メモリ装置700が常温から低温(例えば、極低温)動作に切り替わる場合、メモリリフレッシュレートは減少し、低温動作からより高い温度動作に切り替わる場合、メモリリフレッシュレートは増加する。代替の実施形態では、動作温度は、処理ユニット200又はコンピューティングシステム100内の他の場所にある1つ以上のセンサから得られる。
低温で動作する場合、メモリ保持時間が増加し、したがって、リフレッシュ周期も大幅に増加させることができる。より長いリフレッシュ周期は、メモリ装置700による電力消費の低減をもたらす。通常の動作温度では、DRAMデバイスは、メモリをリフレッシュするために大量の電力が消費されるため、コヒーレントキャッシュデバイスとして使用されない。しかしながら、低温では、より長いリフレッシュ周期から生じるより低い電力消費のために、DRAMメモリ装置700をコヒーレントキャッシュとして動作させることがより実現可能である。
リフレッシュコントローラ711は、加えて、メモリの何れの部分をリフレッシュするかを、それらの部分に記憶されたデータに関する情報に基づいて決定する。メモリ装置がキャッシュシステムの一部として使用される場合、コヒーレンス状態(例えば、変形、所有、共有、無効等)が、装置に記憶されたデータの各部分(例えば、ライン)に対して記録される。リフレッシュコントローラ711は、これらのコヒーレンス状態を記述するメタデータ702Aを読み出して、何れのデータをリフレッシュするかを決定する。したがって、メモリコントローラ710は、メモリアレイ701内のラインのキャッシュコヒーレンス状態を認識し、個々のラインのコヒーレンス状態に基づいて、そのリフレッシュ戦略を最適化する。ラインがメインメモリに関してクリーンである場合(例えば、ラインが共有(S)、排他(E)、無効(I)等の状態にある場合)、ラインはリフレッシュされる必要がない場合があり、メモリコントローラ710が、ラインがすぐにアクセスされる可能性が低いと決定した場合、ラインを無効化することができる。データがメインメモリに関してダーティであるコヒーレンシ状態、例えば、所有(O)、変形(M)等の状態にある場合、メモリコントローラは、データをリフレッシュするか、又は、データを無効にしてリフレッシュしない前にラインをメインメモリに書き戻すかを決定することができる。メモリコントローラは、キャッシュ内にラインを保持することが有益であるかどうかを決定し(例えば、ラインが頻繁にアクセスされる場合、ラインは保持され得る)、そうである場合、メモリコントローラはラインをリフレッシュする。
一実施形態では、メタデータ702Aは、各メモリラインのためのダーティマスクを含み、ダーティマスクは、どれだけの有効データがライン内にあるかを決定するために使用され、したがって、ラインは、リフレッシュされるか又は書き戻され、無効化されることができる。ダーティマスクが、ライン内のダーティバイトの数が閾値未満であることを示す場合、そのラインは書き戻され、リフレッシュなしに無効化される。そうではなく、ダーティバイトの数が閾値を上回る場合、ラインはリフレッシュされる。このポリシーは、性能に悪影響を与えることなく実行されるリフレッシュの数を低減する。
一実施形態では、リフレッシュコントローラ711は、メモリの一部をリフレッシュするかどうかを決定する場合に、メタデータ702B(例えば、最近のアクセス履歴、再使用距離、過去のメモリ参照ストリーム情報等)、及び、追加の温度情報301(例えば、過去の動作温度)を使用する。例えば、リフレッシュコントローラ711は、最後のN回のアクセスにおいてアクセスされていない任意のラインはリフレッシュされないというポリシーを実装し得る。
別の例として、リフレッシュコントローラ711は、コヒーレンス状態及び履歴情報を同時に使用して、(例えば、履歴情報に基づいて、最後のN回のアクセス以内で)最近アクセスされていないラインをリフレッシュすることを回避し、(コヒーレンス状態に従って)書き戻しを必要としないラインのみを無効化することができる。例えば、予測器も使用されて、何れのラインが再びアクセスされる可能性が低く、したがってリフレッシュされる必要がないかを予測することができる。
いくつかのタイプの作業負荷に対して、リフレッシュコントローラ711は、メタデータ702Bを使用して、再び使用されない非アクティブ又はデッドデータを含むラインを識別する。例えば、機械学習推論作業負荷では、前のプロデューサ層によって生成された中間データは、後続の層によって消費されると、一時データが後でアプリケーションによって使用されないので、死んでいるとみなされる。したがって、そのような一時中間データを含むラインのリフレッシュは、キャッシュラインがダーティコヒーレンス状態にあってもスキップされる。
一実施形態では、ポリシーは、検出された動作温度に基づいて実装するために選択される。例えば、メモリ装置700が極低温の温度で動作している場合、データ保持時間は長くなり得るが、一方で電力消費は低い。したがって、リフレッシュコントローラ711が、より複雑な分析を実行することにより多くの時間及びエネルギーを費やして、より効果的な決定を行うことを可能にするポリシーが選択される。メモリ装置700が低温で動作しているが、必ずしも極低温範囲ではない場合、リフレッシュコントローラは、より単純であり、依然として効果的である、適応リフレッシュ方式を実装する。
図8は、一実施形態による、動作パラメータ(例えば、温度、クロック周波数)の変化に応じてコンピューティングシステム100における制御の拡張されたスパンを可能にするためのプロセス800を示している。プロセス800は、制御のスパンコントローラ220、リフレッシュコントローラ711及び処理ユニット200又はコンピューティングシステム100内の他の場所における他の構成要素等のような、コンピューティングシステム100内の構成要素によって実行される。プロセス800は、実行時に信号経路及び構成要素を動的に有効化及び無効化するために自動的に実行されてもよく、代替的に、プロセス800における動作の一部又は全部は、ユーザ入力によってトリガ又は確認され得る。
ブロック801において、コンピューティングシステム100は、センサ230~231によって監視されている動作温度(例えば、室温)の初期範囲内で動作する。監視される動作パラメータは、本明細書では動作温度であるとして説明されているが、タイミング制約を満たす信号の能力に影響を及ぼす他のパラメータが、動作温度の代わりに又は動作温度に加えて監視され得る(例えば、特定の構成要素の温度、クロック周波数等)。初期温度範囲で動作している間、システム100内の構成要素は、初期範囲内での動作のために有効化された信号経路の特定のセットを使用して通信する。例えば、常温範囲内で動作する場合、タイミング制約を満たすことができる経路を含む信号経路のサブセットが有効化されるが、常温ではタイミングを満たすことができないより長い経路は除外される。経路は、経路の一端又は両端で構成要素又はデバイスを有効化することによって(例えば、クロック信号又は電力を印加することによって)、1つ以上のスイッチ等を介して経路への導電パスを確立することよって、有効化することができる。
一実施形態では、常温において、有効化された信号経路のセットは、キャッシュコントローラ320に最も近いキャッシュセット310~311のサブセットにキャッシュコントローラ320を接続する経路、及び/又は、メモリコントローラ320に最も近いメモリダイ411~414のサブセットにメモリコントローラ403を接続する経路を含むが、より遠いキャッシュセット(例えば312~313)及びより遠いメモリダイ(例えば415)への経路はそれぞれ除外される。したがって、低温で動作している場合、有効化されたメモリダイ及びキャッシュセットは、有効化された経路を介してアクセスされ、一方で、より遠いメモリダイ(例えば、415)及びキャッシュセットは無効化される(例えば、312~313)。
一実施形態では、常温では、有効化された信号経路のセットは、同じパイプライン内のディスパッチユニット501と機能ユニット502~503との間の信号経路を含み、異なるパイプライン内の機能ユニット間のより長い経路(例えば、520)を除外する。したがって、常温で動作している場合、通信は、同じパイプライン内の機能ユニットのセット間で行われ、異なるパイプライン内の機能ユニットのセット間では行われない。
一実施形態では、常温において、有効化された経路は、2つ以上の連続する機能ユニット(例えば、531~532)のセットを直列に接続するより短い経路(例えば、541)を含む。いくつかの実施形態では、有効化された経路は、タイミング制約が依然として満たされ得る限り、互いに接続された一連の複数のより短い経路及び機能ユニットを含むことができる。タイミング制約を満たすことができない、より長い全長を有するより長い経路は、常温では無効化される。
通常の動作温度では、2つ以上のパイプラインステージ(例えば、631及び632)を結合する経路は、タイミング制約が、同じサイクルにおいて直列に関連付けられた論理ブロック(例えば、611及び612)の全てにおいて計算を実行するために満たされ得ないので、有効化されない。例えば、パイプラインステージ631及び632は、サイクル間にラッチ602に中間結果を記憶することによって、論理611及び612を使用して計算を実行するのに少なくとも2サイクルかかる。
通常の動作温度では、キャッシュコヒーレンシ検査は、スヌーピング等のブロードキャストベースのプロトコルの代わりに、プローブメッセージがコンピューティングシステム100内の特定のコンピューティングノード(例えば、処理ノード又はメモリノード)にアドレス指定される直接プローブメッセージングプロトコル(すなわち、プローブフィルタ)を使用して実行される。メモリリフレッシュ信号は、通常の動作温度で予想される最悪の場合の条件下でデータ保持を保証するレートで、コンピューティングシステム100内のDRAMに周期的に印加される。様々な実施形態は、上記の制御のスパン及び/又は温度認識機能の任意の組合せを実装することができる。
任意の温度範囲での動作中、制御のスパンコントローラ220は、温度(及び/又はクロック周波数等、信号タイミング制約が満たされ得るかどうかに影響を及ぼす他の動作パラメータ)の変化を監視する。パラメータの変化は、閾値を超える増加又は減少として検出することができ、例えば、変化は、動作温度が特定の限界を下回った場合に検出することができる。変化が生じていない(例えば、温度がその現在の範囲内に留まっている)場合、変化がタイミングヘッドルームを増加させていないので、プロセス800はブロック811に進む。変化がタイミングヘッドルームを減少させていないので、プロセス800はブロック811からブロック801に戻る。したがって、プロセス800は、監視された動作温度及び/又は他のパラメータに変化が検出されるまで、有効化された経路、構成要素及び温度認識機能の現在のセットを使用してデータを処理するようにコンピューティングシステム100を動作させ続けるために、ブロック801、803、811を繰り返す。
ブロック803において、監視された1つ以上の動作パラメータの変化がタイミングヘッドルームを増加させ、タイミング制約を満たすことをより容易にする場合、プロセス800はブロック805に続く。例えば、温度又はクロック周波数の減少は、タイミングヘッドルームを増加させる傾向があり、プロセス800をブロック805に継続させることになる。ブロック805において、追加の信号経路及び/又は処理回路構成要素が、変化したパラメータ及び超えられた閾値に従って選択され、有効化される。制御のスパンコントローラ220は、信号経路の長さに従って有効化する信号経路を選択する。一実施形態では、信号経路は、温度閾値及び/又は温度範囲に関連付けられ、それにより、有効化する信号経路のセットが、変化したパラメータ(例えば、動作温度)及びそれが超えた閾値(例えば、室温と低温との間の閾値)のルックアップに基づいて選択される。
一実施形態では、経路の複数のサブセットが定義されてもよく、各サブセットは、特定の範囲内の長さ(物理的長さ又は信号伝搬時間によって測定されるような)を有する経路を含み、各々は、異なる温度閾値又は温度範囲に対応する。次いで、サブセットは、温度がそれらの対応する温度閾値を漸進的に下回って低下するにつれて、順番に有効化され得る。したがって、タイミングが満たされ得る信号経路の長さは、動作温度が低下するにつれて増加するので、漸進的により低温の各温度閾値において有効化される経路は、現在無効化されている信号経路のセットから選択された最短の経路を含む。
制御のスパンコントローラ220によって有効化され得るキャッシュセット312及び313又は追加メモリ414~415を含む実施形態では、有効化されるキャッシュセット又はメモリは、キャッシュコントローラ320又はメモリコントローラ403からのそれらの距離に従って選択される。例えば、メモリダイ414が通常動作温度で無効化されている場合、コントローラ220は、メモリスタック400内のメモリコントローラ403から現在最も遠い有効化されたダイであるダイ413を越える次のダイとして、それらの位置に基づいて有効化するためにダイ414を選択する。追加のキャッシュセット312及び313又はメモリダイ414等のように、有効化するために選択される構成要素は、クロック信号又は電力をこれらの構成要素に印加することによって有効化される。選択された信号経路及び構成要素を有効化することは、構成要素を処理ユニット200内の1つ以上の機能ユニットと接続し、その結果、有効化された構成要素は、命令109に従ってデータを処理するために使用することができる。
ブロック807において、処理ユニット200は、有向メッセージングベースのコヒーレンシ検査プロトコル(例えば、プローブフィルタ)からブロードキャストベースのコヒーレンシ検査プロトコル(例えば、スヌーピング)に切り替える。ブロック809において、温度の低下は、リフレッシュコントローラ711にシステム100内のDRAMセルのリフレッシュレートを調整させる。キャパシタンスリークは低温で減少するので、リフレッシュ信号は、メモリがより少ない頻度でリフレッシュされるように調整される。様々な実施形態では、ブロック805~809において行われる変更は、異なる温度又は動作パラメータ閾値によって独立してトリガされ、代替的に、有効化される特徴、構成要素、及び、経路の一部又は全部は、同じ閾値によってトリガされる。例えば、DRAMリフレッシュレートは、プロセッサコア210の動作温度ではなく、DRAM動作温度の低下によってトリガされ得る。
ブロック809から、プロセス800はブロック801に戻る。ブロック801において、処理ユニット200は、制御のスパンコントローラ220によって有効化された追加の信号経路及び構成要素を使用して、新しい低温範囲で動作しながら命令109を実行し続ける。処理コア210内のディスパッチユニット、機能ユニット214、キャッシュ及びメモリ領域、並びに、他の処理回路構成要素は、より低い温度によるタイミング制約に違反することなく、有効化されたより長い経路を介して互いに通信する。ディスパッチユニット501等のディスパッチユニットは、他のパイプライン内の機能ユニット(例えば、512)を更に含む機能ユニットの拡張セットに命令を通信することができる。ユニット531~533等の機能ユニットは、有効化された経路541及び542を介してより長いチェーンにアセンブルされて、レジスタファイル540の読み出し及び書き込みアクセスを低減する。パイプラインステージラッチ(例えば、602)をバイパスするために有効化された621等の経路は、それぞれのパイプラインステージ631及び632内の論理611及び612が単一のステージに組み合わせられることを可能にする。常温での動作と比較して、論理611及び612による計算は、タイミング制約に違反することなく、より少ないクロックサイクルで完了することができる。
また、コヒーレンシ検査は、低温範囲での動作中にキャッシュスヌーピング等のブロードキャストベースのメッセージングプロトコルを使用して実行され、DRAMは、常温よりも低いレートでリフレッシュされ、電力消費を低減する。制御のスパンコントローラ220は、低温範囲での動作中に温度及び他の動作パラメータを監視し続ける。
ブロック811において、動作温度が上昇する場合、タイミングヘッドルームは減少する。したがって、制御のスパンコントローラ220がタイミングヘッドルームを減少させる変化を検出するので、プロセス800はブロック813に続く。ブロック813において、制御のスパンコントローラ220は、新しい温度範囲で動作する場合にタイミングを十分な確実性で満たすことができない信号経路及び/又は構成要素を無効化するよう選択する。一実施形態では、無効化される経路及び/又は構成要素は、変更された動作パラメータ又は超過したパラメータ及び閾値に基づいて選択される。無効化される経路及び構成要素は、キャッシュ又はメモリ領域、異なるパイプラインにおけるディスパッチユニットと機能ユニットとの間の経路等のように、ブロック805において以前に有効化された経路及び構成要素の一部又は全部を含むことができる。
キャッシュセット、メモリダイ又は他のメモリ構成要素が無効化されている場合、ブロック815で提供されるように、データは、これらの構成要素が無効化された場合にデータが失われないことを保証するために、適切なときに無効化する前にメモリ構成要素からコピーされる。また、コピーは、データのコヒーレンシ状態に基づいて実行することもできる。例えば、無効化されているキャッシュセットでは、ダーティデータはメインメモリに書き戻されるが、クリーン又は無効データは書き戻されない。メモリダイ等のメモリ領域が無効化される場合、領域に記憶されたデータは、温度変化のために無効化されない別のメモリ領域に移動される。
ブロック817において、選択された構成要素及び信号経路が無効化される。無効化される構成要素は、クロック又はパワーゲーティングによって無効化され、低電力消費状態(例えば、スリープ状態)に遷移され得る。信号経路は、例えば、経路の何れかの端にある構成要素を無効化することによって、スイッチを使用して経路を切断することによって、又は、他の方法で経路上の通信を停止することによって、無効化される。
ブロック819において、処理ユニット200は、ブロードキャストベースのコヒーレンシ検査プロトコル(例えば、スヌーピング)から有向メッセージングベースのコヒーレンシ検査プロトコル(例えば、プローブフィルタ)に切り替える。ブロック821において、温度の上昇は、リフレッシュコントローラ711にシステム100内のDRAMセルのリフレッシュレートを調整させる。キャパシタンスリークはより高い温度で増加するので、リフレッシュ信号は、メモリがより頻繁にリフレッシュされるように調整される。様々な実施形態では、ブロック813~819において行われる変更は、異なる温度又は動作パラメータ閾値によって独立してトリガされ、代替的に、有効化される特徴、構成要素、及び、経路の一部又は全部は、同じ閾値によってトリガされる。一実施形態では、経路、構成要素、又は、動作モードの無効化は、同じ経路、構成要素、又は、動作モードの有効化と同じ閾値又は異なる閾値によってトリガされ得る。
ブロック821から、プロセス800はブロック801に戻る。ブロック801において、コンピューティングシステム100は、先行するブロック813~821において行われたように、信号経路、構成要素、及び、動作モードの有効化されたセットを用いて動作する。したがって、プロセス800は、信号タイミングヘッドルームを増加又は減少させる変化について動作温度又は他のパラメータを(それぞれブロック803及び811において)監視しながら繰り返し、それに応じて、より長い信号経路、より離れた構成要素、及び、他の動作モードを有効化又は無効化する。
方法は、処理ユニットの動作パラメータの変化に応じて、処理ユニットの処理回路構成要素への信号経路を変更することと、信号経路を介して処理回路構成要素と通信することと、を含み得る。
方法において、動作パラメータの変化は、処理ユニットの動作温度の低下であってもよく、信号経路を変更することは、信号経路を有効化することを含み得る。
また、方法は、動作パラメータの変化に応じて、複数の無効化された信号経路から有効化するための信号経路を選択することを含み得る。選択された信号経路は、複数の無効化された信号経路のうち最も短い長さを有してもよく、処理回路構成要素は、複数の信号経路のうち何れかによって処理ユニットの機能ユニットに各々結合された複数の処理回路構成要素のうち何れかであり得る。
また、方法は、動作パラメータの変化が動作パラメータの増加である場合、処理回路構成要素からデータをコピーすることと、処理回路構成要素への信号経路を無効化することによって信号経路を変更することと、を含み得る。
方法では、処理回路構成要素は、処理ユニット内のキャッシュデバイスと結合されたキャッシュ領域を含み得る。
また、方法は、処理ユニットと結合されたメモリスタック内のメモリダイの位置に基づいて、有効化するためのメモリダイを識別することと、動作パラメータの変化に応じて、メモリダイに電力を供給することによってメモリダイを有効化することと、を含み得る。処理回路構成要素は、メモリダイ上に存在するメモリ装置を含み得る。
また、方法は、動作パラメータの変化の前に、ディスパッチユニットから1つ以上の機能ユニットの第1のセットに1つ以上の命令を通信することを含み得る。処理回路構成要素は、1つ以上の機能ユニットの第2のセットを含んでもよく、信号経路は、ディスパッチユニットを1つ以上の機能ユニットの第2のセットと結合し、信号経路は、ディスパッチユニットと機能ユニットの第1のセットの何れかとの間の信号経路よりも長くなり得る。また、方法は、信号経路を介してディスパッチユニットから機能ユニットの第2のセットに1つ以上の命令を通信することを含み得る。
また、方法は、信号経路を変更する前に、第1のサイクル数で処理ユニットの連続するパイプラインステージを使用して第1の出力を生成することと、信号経路を変更した後に、第1のサイクル数よりも少ないサイクル数で連続するパイプラインステージを使用して第2の出力を生成することと、を含み得る。信号経路は、連続するパイプラインステージ内の論理を結合することによって、連続するパイプラインステージ間の1つ以上のパイプラインラッチをバイパスし得る。
また、方法は、動作パラメータの変化の前に、有向プローブメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第1のセットを実行することと、動作パラメータの変化の後に、信号経路を介してブロードキャストメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第2のセットを実行することと、を含み得る。
また、方法は、動作温度の変化が、動作温度の低下である場合、ダイナミックランダムアクセスメモリ(DRAM)デバイスに印加されるリフレッシュ信号のレートを変更することと、1つ以上の部分に記憶されたデータを記述するメタデータに基づいて、DRAMデバイスの1つ以上の部分にリフレッシュ信号を印加することと、を含み得る。動作パラメータの変化は、DRAMデバイスの動作温度の低下であってもよい。
コンピューティング装置は、処理ユニットの動作パラメータの変化に応じて、処理ユニットの第1の処理回路構成要素への信号経路を変更するコントローラ回路と、信号経路を介して第1の処理回路構成要素と通信する第2の処理回路構成要素と、を含み得る。
コンピューティング装置において、動作パラメータの変化は、処理ユニットの動作温度の低下であってもよく、コントローラ回路は、信号経路を有効化することによって信号経路を変更し得る。
コンピューティング装置において、処理回路構成要素は、処理ユニットと結合された追加のメモリを含んでもよく、第2の処理回路構成要素は、信号経路を介して追加のメモリにデータを記憶するためのコントローラデバイスを含み得る。
コンピューティング装置において、第2の処理回路構成要素は、動作パラメータの変化の前に、1つ以上の機能ユニットの第1のセットに1つ以上の命令を通信するディスパッチユニットを含んでもよく、第1の処理回路構成要素は、1つ以上の機能ユニットの第2のセットを含んでもよく、ディスパッチユニットは、動作パラメータの変化の後に、有効化された信号経路を介して機能ユニットの第2のセットに1つ以上の命令を更に通信し得る。
また、コンピューティング装置は、信号経路を変更する前に、第1のサイクル数で第1の出力を生成し、信号経路を変更した後に、第1のサイクル数よりも少ないサイクル数で第2の出力を生成するための複数の連続するパイプラインステージを含み得る。第1の処理回路構成要素は、連続するパイプラインステージのうち第1のパイプラインステージ内に論理を含んでもよく、第2の処理回路構成要素は、連続するパイプラインステージのうち第2のパイプラインステージ内に論理を含んでもよく、信号経路は、連続するパイプラインステージ間の1つ以上のパイプラインラッチをバイパスし得る。
コンピューティング装置において、第2の処理回路構成要素は、動作パラメータの変化の前に、有向プローブメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第1のセットを実行してもよく、動作パラメータの変化の後に、信号経路を介してブロードキャストメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第2のセットを実行し得る。
また、コンピューティング装置は、動作パラメータの変化に応じて、ダイナミックランダムアクセスメモリ(DRAM)デバイスに印加されるリフレッシュ信号のレートを変化させ、1つ以上の部分に記憶されたデータを記述するメタデータに基づいて、DRAMデバイスの1つ以上の部分にリフレッシュ信号を印加するためのメモリコントローラを含み得る。動作パラメータの変化は、DRAMデバイスの動作温度の低下であってもよい。
コンピューティングシステムは、処理ユニットと、処理ユニットの動作パラメータの変化に応じて、処理ユニットの第1の処理回路構成要素から第2の処理回路構成要素への信号経路を変更するために処理ユニットと結合されたコントローラ回路と、を含み得る。第1の処理回路構成要素は、信号経路を介して第2の処理回路構成要素と通信し得る。
コンピューティングシステムにおいて、動作パラメータの変化は、処理ユニットの動作温度の低下であってもよく、コンピューティングシステムは、コントローラ回路に変化を示すための1つ以上の温度センサのセットを含み得る。第2の処理回路構成要素は、第1の処理回路構成要素とは異なる集積回路ダイ上に存在し得る。
また、コンピューティングシステムは、処理ユニットと結合されたメモリ装置を含み得る。第1の処理回路構成要素は、メモリ装置の一部分を含み得る。
本明細書で使用される場合、「に結合される」という用語は、1つ以上の介在する構成要素を介して直接的又は間接的に結合されることを意味し得る。本明細書で説明する様々なバスを介して提供される信号の何れも、他の信号と時分割され、1つ以上の共通バスを介して提供され得る。更に、回路構成要素間又はブロック間の相互接続は、バス又は単一の信号線として示され得る。バスの各々は、代替的に、1つ以上の単一の信号線であってもよく、単一の信号線の各々は、代替的に、バスであってもよい。
特定の実施形態は、非一時的なコンピュータ可読記憶媒体に記憶された命令を含み得るコンピュータプログラム製品として実装され得る。これらの命令は、説明された動作を実行するように汎用プロセッサ又は専用プロセッサをプログラムするために使用され得る。コンピュータ可読記憶媒体は、機械(例えば、コンピュータ)によって可読な形態(例えば、ソフトウェア、処理アプリケーション)で情報を記憶又は送信するための任意の機構を含む。非一時的なコンピュータ可読記憶媒体は、磁気記憶媒体(例えば、フロッピー(登録商標)ディスケット)と、光記憶媒体(例えば、CD-ROM)と、光磁気記憶媒体と、読み出し専用メモリ(ROM)と、ランダムアクセスメモリ(RAM)と、消去可能なプログラマブルメモリ(例えば、EPROM及びEEPROM)と、フラッシュメモリ、又は、電子命令を記憶するのに適した別のタイプの媒体と、を含んでもよいが、それに限定されない。
加えて、いくつかの実施形態は、コンピュータ可読記憶媒体が2つ以上のコンピュータシステムに記憶され、及び/又は、2つ以上のコンピュータシステムによって実行される分散コンピューティング環境において実施されてもよい。更に、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する伝送媒体を介してプル又はプッシュされてもよい。
概して、コンピュータ可読記憶媒体に搭載されるコンピューティングシステム100及び/又はその一部を表すデータ構造は、プログラムによって読み取られることができ、コンピューティングシステム100を含むハードウェアを製造するために、直接又は間接的に使用され得るデータベース又は他のデータ構造であり得る。例えば、データ構造は、Verilog又はVHDL等の高レベル設計言語(high-level design language、HDL)におけるハードウェア機能の行動レベルの記述又はレジスタ転送レベル(register-transfer level、RTL)の記述であり得る。記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成することができる合成ツールによって読み取られることができる。ネットリストは、コンピューティングシステム100を含むハードウェアの機能も表すゲートのセットを含む。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために配置され、ルーティングされ得る。次いで、マスクは、コンピューティングシステム100に対応する半導体回路(複数可)を製造するために、様々な半導体製造工程において使用され得る。代替的に、コンピュータ可読記憶媒体上のデータベースは、所望に応じて、ネットリスト(合成ライブラリの有無にかかわらず)若しくはデータセット、又は、グラフィックデータシステム(Graphic Data System、GDS)IIデータであり得る。
本明細書における方法の動作は特定の順序で示され説明されているが、各方法の動作の順序は、特定の動作が逆の順序で実行され得るように、又は、特定の動作が少なくとも部分的に他の動作と同時に実行され得るように変更され得る。別の実施形態では、個別の動作の命令又はサブ動作は、断続的及び/又は交互に行われてもよい。
上述した明細書において、実施形態は、その特定の例示的な実施形態を参照して説明された。しかしながら、添付の特許請求の範囲に記載された実施形態のより広い範囲から逸脱することなく、様々な修正及び変更がそれらになされ得ることは明らかであろう。したがって、本明細書及び図面は、限定的な意味ではなく例示的な意味で捉えられるべきである。
Claims (20)
- 処理ユニットの動作パラメータの変化に応じて、前記処理ユニットの処理回路構成要素への信号経路を変更することと、
前記信号経路を介して前記処理回路構成要素と通信することと、を含む、
方法。 - 前記動作パラメータの変化は、前記処理ユニットの動作温度の低下であり、
前記信号経路を変更することは、前記信号経路を有効化することを含む、
請求項1の方法。 - 前記動作パラメータの変化に応じて、複数の無効化された信号経路から変更するための信号経路を選択することを更に含み、
選択された信号経路は、前記複数の無効化された信号経路のうち最も短い長さを有し、
前記処理回路構成要素は、前記複数の信号経路のうち何れかによって前記処理ユニットの機能ユニットにそれぞれ結合された複数の処理回路構成要素のうち何れかである、
請求項1の方法。 - 前記動作パラメータの変化が、前記動作パラメータの増加である場合に、
前記処理回路構成要素からデータをコピーすることと、
前記処理回路構成要素への信号経路を無効化することによって、前記信号経路を変更することと、を更に含む、
請求項1の方法。 - 前記処理回路構成要素は、前記処理ユニット内のキャッシュデバイスと結合されたキャッシュ領域を含む、
請求項1の方法。 - 前記処理ユニットと結合されたメモリスタック内のメモリダイの位置に基づいて、有効化するための前記メモリダイを識別することと、
前記動作パラメータの変化に応じて、前記メモリダイに電力を供給することによって前記メモリダイを有効化することと、を更に含み、
前記処理回路構成要素は、前記メモリダイ上に存在するメモリ装置を備える、
請求項1の方法。 - 前記動作パラメータの変化の前に、ディスパッチユニットから1つ以上の機能ユニットの第1のセットに1つ以上の命令を通信することを更に含み、
前記処理回路構成要素は、1つ以上の機能ユニットの第2のセットを備え、
前記信号経路は、前記ディスパッチユニットを前記1つ以上の機能ユニットの第2のセットと結合し、
前記信号経路は、前記ディスパッチユニットと前記機能ユニットの第1のセットの何れかとの間の信号経路よりも長く、
前記方法は、前記信号経路を介して前記ディスパッチユニットから前記機能ユニットの第2のセットに1つ以上の命令を通信することを更に含む、
請求項1の方法。 - 前記信号経路を変更する前に、第1のサイクル数で前記処理ユニットの連続するパイプラインステージを使用して第1の出力を生成することと、
前記信号経路を変更した後に、前記第1のサイクル数よりも少ないサイクル数で前記連続するパイプラインステージを使用して第2の出力を生成することと、を更に含み、
前記信号経路は、前記連続するパイプラインステージ内の論理を結合することによって、前記連続するパイプラインステージ間の1つ以上のパイプラインラッチをバイパスする、
請求項1の方法。 - 前記動作パラメータの変化の前に、有向プローブメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第1のセットを実行することと、
前記動作パラメータの変化の後に、前記信号経路を介してブロードキャストメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第2のセットを実行することと、を更に含む、
請求項1の方法。 - 前記動作パラメータの変化が動作温度の低下である場合に、ダイナミックランダムアクセスメモリ(DRAM)デバイスに印加されるリフレッシュ信号のレートを変更することと、
前記DRAMデバイスの1つ以上の部分に記憶されたデータを記述するメタデータに基づいて、前記1つ以上の部分に前記リフレッシュ信号を印加することと、を更に含み、
前記動作パラメータの変化は、前記DRAMデバイスの動作温度の低下である、
請求項1の方法。 - コンピューティング装置であって、
処理ユニットの動作パラメータの変化に応じて、前記処理ユニットの第1の処理回路構成要素への信号経路を変更するように構成されたコントローラ回路と、
前記信号経路を介して前記第1の処理回路構成要素と通信するように構成された第2の処理回路構成要素と、を備える、
コンピューティング装置。 - 前記動作パラメータの変化は、前記処理ユニットの動作温度の低下であり、
前記コントローラ回路は、前記信号経路を有効化することによって前記信号経路を変更するように構成されている、
請求項11のコンピューティング装置。 - 前記処理回路構成要素は、前記処理ユニットと結合された追加のメモリを備え、
前記第2の処理回路構成要素は、前記信号経路を介して前記追加のメモリにデータを記憶するように構成されたコントローラデバイスを備える、
請求項11のコンピューティング装置。 - 前記第2の処理回路構成要素は、前記動作パラメータの変化の前に、1つ以上の機能ユニットの第1のセットに1つ以上の命令を通信するように構成されたディスパッチユニットを備え、
前記第1の処理回路構成要素は、1つ以上の機能ユニットの第2のセットを備え、
前記ディスパッチユニットは、前記動作パラメータの変化の後に、前記信号経路を介して前記機能ユニットの第2のセットに1つ以上の命令を通信するように構成されている、
請求項11のコンピューティング装置。 - 複数の連続するパイプラインステージを備え、
前記複数の連続するパイプラインステージは、
前記信号経路を変更する前に、第1のサイクル数で第1の出力を生成することと、
前記信号経路を変更した後に、前記第1のサイクル数よりも少ないサイクル数で第2の出力を生成することと、
を行うように構成されており、
前記第1の処理回路構成要素は、前記連続するパイプラインステージのうち第1のパイプラインステージの論理を備え、
前記第2の処理回路構成要素は、前記連続するパイプラインステージのうち第2のパイプラインステージの論理を備え、
前記信号経路は、前記連続するパイプラインステージ間の1つ以上のパイプラインラッチをバイパスする、
請求項11のコンピューティング装置。 - 前記第2の処理回路構成要素は、
前記動作パラメータの変化の前に、有向プローブメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第1のセットを実行することと、
前記動作パラメータの変化の後に、前記信号経路を介してブロードキャストメッセージングプロトコルを使用してキャッシュコヒーレンシ検査の第2のセットを実行することと、
を行うように構成されている、
請求項11のコンピューティング装置。 - メモリコントローラを備え、
前記メモリコントローラは、
前記動作パラメータの変化に応じて、ダイナミックランダムアクセスメモリ(DRAM)デバイスに印加されるリフレッシュ信号のレートを変化させることと、
前記DRAMデバイスの1つ以上の部分に記憶されたデータを記述するメタデータに基づいて、前記1つ以上の部分に前記リフレッシュ信号を印加することと、
を行うように構成されており、
前記動作パラメータの変化は、前記DRAMデバイスの動作温度の低下である、
請求項11のコンピューティング装置。 - コンピューティングシステムであって、
処理ユニットと、
前記処理ユニットと結合され、処理ユニットの動作パラメータの変化に応じて、前記処理ユニットの第1の処理回路構成要素から第2の処理回路構成要素への信号経路を変更するように構成されたコントローラ回路と、を備え、
前記第1の処理回路構成要素は、前記信号経路を介して前記第2の処理回路構成要素と通信するように構成されている、
コンピューティングシステム。 - 前記動作パラメータの変化は、前記処理ユニットの動作温度の低下であり、
前記コンピューティングシステムは、前記コントローラ回路に前記変化を示すように構成された1つ以上の温度センサのセットを備え、
前記第2の処理回路構成要素は、前記第1の処理回路構成要素とは異なる集積回路ダイ上に存在する、
請求項18のコンピューティングシステム。 - 前記処理ユニットと結合されたメモリ装置を備え、
前記第1の処理回路構成要素は、前記メモリ装置の一部を備える、
請求項18のコンピューティングシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/118,404 | 2020-12-10 | ||
US17/118,404 US20220188208A1 (en) | 2020-12-10 | 2020-12-10 | Methods for configuring span of control under varying temperature |
PCT/US2021/060905 WO2022125315A1 (en) | 2020-12-10 | 2021-11-27 | Methods for configuring span of control under varying temperature |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023553072A true JP2023553072A (ja) | 2023-12-20 |
Family
ID=79170896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023534608A Pending JP2023553072A (ja) | 2020-12-10 | 2021-11-27 | 変化する温度下で制御のスパンを構成するための方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220188208A1 (ja) |
EP (1) | EP4226249A1 (ja) |
JP (1) | JP2023553072A (ja) |
KR (1) | KR20230111211A (ja) |
CN (1) | CN116830197A (ja) |
WO (1) | WO2022125315A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11989445B2 (en) * | 2021-05-13 | 2024-05-21 | Micron Technology, Inc. | Automatic operating mode management for memory using workload profile data |
US11886260B2 (en) * | 2022-05-19 | 2024-01-30 | Western Digital Technologies, Inc. | Thermal management of storage devices increasing host write performance |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928365A (en) * | 1995-11-30 | 1999-07-27 | Kabushiki Kaisha Toshiba | Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states |
CA2261828A1 (en) * | 1998-04-03 | 1999-10-03 | Lucent Technologies Inc. | Calibration technique |
US20020087904A1 (en) * | 2000-12-28 | 2002-07-04 | Zhong-Ning (George) Cai | Method and apparatus for thermal sensitivity based dynamic power control |
US7107409B2 (en) * | 2002-03-22 | 2006-09-12 | Newisys, Inc. | Methods and apparatus for speculative probing at a request cluster |
US7991955B2 (en) * | 2006-12-13 | 2011-08-02 | Advanced Micro Devices, Inc. | Method and apparatus to achieve more level thermal gradient |
US7760569B2 (en) * | 2007-04-05 | 2010-07-20 | Qimonda Ag | Semiconductor memory device with temperature control |
JP5532724B2 (ja) * | 2009-07-30 | 2014-06-25 | 株式会社リコー | インタフェース回路及びそれを備えた半導体装置 |
JP2013523014A (ja) * | 2010-03-15 | 2013-06-13 | ナショナル アクイジション サブ インク | デバイス周波数応答を改変するように再プログラムすることができる構成可能な電子デバイス |
US9658678B2 (en) * | 2011-03-31 | 2017-05-23 | Intel Corporation | Induced thermal gradients |
US9442816B2 (en) * | 2011-11-30 | 2016-09-13 | International Business Machines Corporation | Implementing memory performance management and enhanced memory reliability accounting for thermal conditions |
DE112011106032B4 (de) * | 2011-12-22 | 2022-06-15 | Intel Corporation | Energieeinsparung durch Speicherkanal-Abschaltung |
US9396787B2 (en) * | 2011-12-23 | 2016-07-19 | Intel Corporation | Memory operations using system thermal sensor data |
US8918576B2 (en) * | 2012-04-24 | 2014-12-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Selectively placing data in thermally constrained memory systems to dynamically adapt to changing environmental conditions |
WO2013169249A1 (en) * | 2012-05-09 | 2013-11-14 | Intel Corporation | Scheduling tasks among processor cores |
US9075611B2 (en) * | 2012-09-12 | 2015-07-07 | Htc Corporation | Electronic device with power management mechanism and power management method thereof |
KR102223158B1 (ko) * | 2014-09-12 | 2021-03-05 | 삼성전자주식회사 | 넓은 온도 범위에서 작동할 수 있는 메모리 장치와 이를 포함하는 데이터 처리 시스템 |
US9651969B2 (en) * | 2015-07-30 | 2017-05-16 | Qualcomm Incorporated | Adaptive voltage scaling using analytical models for interconnect delay |
US10353841B2 (en) * | 2016-12-08 | 2019-07-16 | International Business Machines Corporation | Optimizing routing of a signal path in a semiconductor device |
US11086370B2 (en) * | 2018-11-02 | 2021-08-10 | Dell Products L.P. | Activity-light-based parameter reporting system |
US11321008B2 (en) * | 2018-11-15 | 2022-05-03 | Micron Technology, Inc. | Temperature-based memory management |
US20220382581A1 (en) * | 2019-10-18 | 2022-12-01 | Minima Processor Oy | Method, arrangement, and computer program product for organizing the excitation of processing paths for testing a microelectric circuit |
US11132201B2 (en) * | 2019-12-23 | 2021-09-28 | Intel Corporation | System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit |
-
2020
- 2020-12-10 US US17/118,404 patent/US20220188208A1/en active Pending
-
2021
- 2021-11-27 JP JP2023534608A patent/JP2023553072A/ja active Pending
- 2021-11-27 KR KR1020237019597A patent/KR20230111211A/ko unknown
- 2021-11-27 WO PCT/US2021/060905 patent/WO2022125315A1/en active Application Filing
- 2021-11-27 EP EP21835462.9A patent/EP4226249A1/en active Pending
- 2021-11-27 CN CN202180083122.XA patent/CN116830197A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022125315A1 (en) | 2022-06-16 |
CN116830197A (zh) | 2023-09-29 |
KR20230111211A (ko) | 2023-07-25 |
EP4226249A1 (en) | 2023-08-16 |
US20220188208A1 (en) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8335122B2 (en) | Cache memory system for a data processing apparatus | |
KR101840238B1 (ko) | 데이터 저장 장치 및 방법 | |
US8103894B2 (en) | Power conservation in vertically-striped NUCA caches | |
US8621157B2 (en) | Cache prefetching from non-uniform memories | |
US9075730B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
TW201738731A (zh) | 多處理器系統及快取共用方法 | |
JP2023553072A (ja) | 変化する温度下で制御のスパンを構成するための方法 | |
US20090006756A1 (en) | Cache memory having configurable associativity | |
US12014213B2 (en) | Active hibernate and managed memory cooling in a non-uniform memory access system | |
WO2023081054A1 (en) | Performance management during power supply voltage droop | |
Tran et al. | Heterogeneous memory management for 3D-DRAM and external DRAM with QoS | |
US20210325956A1 (en) | Techniques to reduce memory power consumption during a system idle state | |
Manohar et al. | Dynamic reconfiguration of embedded-DRAM caches employing zero data detection based refresh optimisation | |
Wang et al. | Optimization of communication schemes for DMA-controlled accelerators | |
Dani et al. | Toward a scalable working set size estimation method and its application for chip multiprocessors | |
Asad et al. | Exploiting heterogeneity in cache hierarchy in dark-silicon 3d chip multi-processors | |
US11874774B2 (en) | Mechanism to efficiently rinse memory-side cache of dirty data | |
US11822484B2 (en) | Low power cache | |
Das | Role of cache replacement policies in high performance computing systems: a survey | |
Bhebhe et al. | A survey of emerging architectural techniques for improving cache energy consumption | |
Hadeed | Energy-Efficient Hybrid Unicore Architecture In Future Embedded Chip-Multiprocessor | |
Asad et al. | Power Modeling and Runtime Performance Optimization of Power Limited Many-Core Systems Based on a Dynamic Adaptive Approach | |
WO2023048811A1 (en) | Reducing memory power usage in far memory | |
CN117581179A (zh) | 低功率状态之后基于需求的探针过滤器初始化 | |
Jevdic | Exploiting Bandwidth in 3D-Integrated Chip Multiprocessors |