Nothing Special   »   [go: up one dir, main page]

JP7506272B2 - メモリコントローラ電力状態 - Google Patents

メモリコントローラ電力状態 Download PDF

Info

Publication number
JP7506272B2
JP7506272B2 JP2023560428A JP2023560428A JP7506272B2 JP 7506272 B2 JP7506272 B2 JP 7506272B2 JP 2023560428 A JP2023560428 A JP 2023560428A JP 2023560428 A JP2023560428 A JP 2023560428A JP 7506272 B2 JP7506272 B2 JP 7506272B2
Authority
JP
Japan
Prior art keywords
memory
controller
power state
phy
dram
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
JP2023560428A
Other languages
English (en)
Other versions
JP2024512682A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2024512682A publication Critical patent/JP2024512682A/ja
Application granted granted Critical
Publication of JP7506272B2 publication Critical patent/JP7506272B2/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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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/3243Power saving in microcontroller unit
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2227Standby or low power modes
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Description

コンピュータシステムは、一般に、メインメモリ用の安価で高密度のダイナミックランダムアクセスメモリ(DRAM)チップを使用する。今日販売されている殆どのDRAMチップは、Joint Electron Devices Engineering Council(JEDEC)によって広められた様々なダブルデータ速度(DDR)DRAM規格と適合する。メモリバスを介してDRAMに出入りするデータの流れは、通常、メモリコントローラによって管理される。メモリコントローラは、ホストシステムからメモリアクセス要求を受信し、それらをキューに記憶し、アービタによって選択された順序でそれらをDRAMにディスパッチする。
メモリコントローラ及びそれに関連するDRAMメモリは、性能を向上させるために又はそれらの電力消費を低減するために、異なる電力モードに置かれてもよい。このような電力モードは、コンピュータシステムの多くの部分で使用され、異なるモードは、プロセッサコアの処理電力又は通信バスのシグナリングデータレート等の異なる動作容量を提供する。そのような電力モードを管理するための1つの一般的な規格は、Advanced Configuration and Power Interface(ACPI)であり、これは、パーソナルコンピュータ(PC)及びサーバ等のコンピュータのための電力管理及び構成規格である。ACPIは、コンピュータオペレーティングシステムが、限られたセットのモードの中からデバイスの動作モードを変更することによって、各デバイスが与える電力量を制御することを可能にする。例えば、そのような変更は、デバイスのクロック速度をより高い周波数若しくはより低い周波数に変更すること、又は、デバイスをスタンバイモード若しくは電源オフモードにすることを含み得る。ACPIは、オペレーティングシステムに公開される制御の一般化されたセットを提供する業界標準であるが、特定のデータ処理システムの電力消費又は性能を最適化することを目的とした特定の機能を含まない。
先行技術で知られている加速処理ユニット(accelerated processing unit、APU)及びメモリシステムのブロック図である。 いくつかの実施形態に係る、図1と同様のAPUで用いるのに適したメモリコントローラのブロック図である。 例示的な実施形態に係る、メモリコントローラの電力状態を制御するための要素を示すAPUの一部のブロック図である。 例示的な実施形態に係る、低電力状態に入るようにメモリコントローラを動作させるためのプロセスのフローチャートである。 例示的な実施形態に係る、低電力状態から出るようにメモリコントローラを動作させるためのプロセスのフローチャートである。
以下の説明において、異なる図面における同一の符号の使用は、同様の又は同一のアイテムを示す。別段言及されなければ、「結合される」という単語及びその関連する動詞形は、当技術分野で知られている手段による直接接続及び間接電気接続の両方を含み、また、別段言及されなければ、直接接続の任意の記述は、好適な形態の間接電気接続を使用する代替の実施形態も意味する。
メモリコントローラは、コマンドキュー、アービタ、DRAM物理層インターフェース(PHY)及びローカル電力状態コントローラを含む。コマンドキューは、第1のメモリチャネルに対するメモリアクセス要求を受信する。アービタは、コマンドキューからエントリを選択し、エントリをメモリインターフェースキューに配置して、第1のメモリチャネル上で送信させる。コマンドキュー及びアービタは、両方とも第1の電圧ドメインで動作し、DRAM PHYは第2の電圧ドメインで動作する。DRAM PHYは、メモリコントローラを第1のメモリチャネルに関連付けられたDRAMメモリに結合し、DRAM PHYを第1の電圧ドメインから分離するように動作可能な分離セルを含む。ローカル電力状態コントローラは、第1の電力状態コマンドに応じて、オンチップRAMメモリに記憶するための構成及び状態データを提供し、メモリコントローラを電源切断状態に入らせ、メモリコントローラが電源切断状態にある間に第2の電圧ドメインが電力供給される低電力状態にDRAM PHYを維持する。
方法は、第1のメモリコントローラのローカル電力状態コントローラにおいて、第1の電力状態コマンドを受信することと、それに応じて、メモリコントローラ内の制御レジスタからの構成及び状態データをオンチップRAMメモリ内に記憶させることと、を含む。更に、第1の電力状態コマンドを受信したことに応じて、方法は、第1のメモリコントローラを電源切断状態に入らせることと、第1のメモリコントローラが電源切断状態にある間にPHYの第2の電圧ドメインが電力供給される低電力状態にPHYを維持することとを含む。
データ処理システムは、データファブリックと、システム電力状態コントローラと、第1のメモリチャネルと、第1のメモリコントローラと、を含む。システム電力状態コントローラは、データファブリック及びオンチップRAMメモリに結合されている。第1のメモリチャネルは、関連するDRAMメモリに接続されている。第1のメモリコントローラは、少なくとも1つのメモリアクセスエンジンからデータファブリックを介して受信されたメモリアクセス要求を満たすために、データファブリック及び第1のメモリチャネルに接続されている。第1のメモリコントローラは、コマンドキュー、アービタ、DRAM PHY及びローカル電力状態コントローラを含む。コマンドキューは、第1のメモリチャネルに対するメモリアクセス要求を受信する。アービタは、コマンドキューからエントリを選択し、エントリをメモリインターフェースキューに配置して、第1のメモリチャネル上で送信させる。コマンドキュー及びアービタは、両方とも第1の電圧ドメインで動作し、DRAM PHYは第2の電圧ドメインで動作する。DRAM PHYは、メモリコントローラをDRAMメモリに結合し、DRAM PHYを第1の電圧ドメインから分離するように動作可能な分離セルを含む。ローカル電力状態コントローラは、第1の電力状態コマンドに応じて、オンチップRAMメモリに記憶するための構成及び状態データを提供し、メモリコントローラを電源切断状態に入らせ、メモリコントローラが電源切断状態にある間に第2の電圧ドメインが電力供給される低電力状態にDRAM PHYを維持する。
図1は、従来技術において知られている加速処理ユニット(APU)100及びメモリシステム130のブロック図である。APU100は、ホストデータ処理システムにおけるプロセッサとして用いるのに適した集積回路であり、概して、中央処理ユニット(central processing unit、CPU)コア複合体110と、グラフィックスコア120と、ディスプレイエンジン122のセットと、データファブリック125と、メモリ管理ハブ140と、周辺コントローラ160のセットと、周辺バスコントローラ170のセットと、システム管理ユニット(system management unit、SMU)180と、を含む。
CPUコア複合体110は、CPUコア112及びCPUコア114を含む。この例では、CPUコア複合体110が2つのCPUコアを含むが、他の実施形態では、CPUコア複合体110が任意の数のCPUコアを含むことができる。CPUコア112、114のそれぞれは、制御ファブリックを形成するシステム管理ネットワーク(system management network、SMN)及びデータファブリック125に対して双方向で接続されると共に、データファブリック125にメモリアクセス要求を与えることができる。CPUコア112、114の各々は、単体のコアであってもよく、又は、更にキャッシュ等の特定のリソースを共有する2つ以上の単体のコアを有するコア複合体であってもよい。
グラフィックスコア120は、頂点処理、フラグメント処理、シェーディング、テクスチャブレンディング等のグラフィックス処理を高度に統合された並列方式で実行することができる高性能グラフィックス処理ユニット(graphics processing unit、GPU)である。グラフィックスコア120は、SMN及びデータファブリック125に双方向に接続され、メモリアクセス要求をデータファブリック125に提供することができる。これに関して、APU100は、CPUコア複合体110とグラフィックスコア120とが同じメモリ空間を共有する統合メモリアーキテクチャ、又は、CPUコア複合体110とグラフィックスコア120とがメモリ空間の一部を共有する一方でグラフィックスコア120がCPUコア複合体110によりアクセスできないプライベートグラフィックスメモリも使用するメモリアーキテクチャの何れかをサポートすることができる。
ディスプレイエンジン122は、モニタ上に表示するためにグラフィックスコア120によって生成されたオブジェクトをレンダリングしてラスタライズする。グラフィックスコア120及びディスプレイエンジン122は、メモリシステム130内の適切なアドレスへの一様な変換のために、データファブリック125を介して共通メモリ管理ハブ140に双方向に接続されている。
データファブリック125は、任意のメモリアクセスエージェントとメモリ管理ハブ140との間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。また、データファブリックは、システム構成に基づいてメモリアクセスの送信先を決定するために、基本入力/出力システム(basic input/output system、BIOS)によって規定されるシステムメモリマップ、及び、各仮想接続のためのバッファも含む。
周辺コントローラ160は、ユニバーサルシリアルバス(universal serial bus、USB)コントローラ162及びシリアルアドバンストテクノロジーアタッチメント(Serial Advanced Technology Attachment、SATA)インターフェースコントローラ164を含み、これらのそれぞれは、システムハブ166及びSMNバスに対して双方向で接続されている。これらの2つのコントローラは、APU100で使用され得る周辺コントローラの単なる典型例である。
周辺バスコントローラ170は、システムコントローラ又は「サウスブリッジ」(Southbridge、SB)172と、周辺構成要素相互接続エクスプレス(Peripheral Component Interconnect Express、PCIe)コントローラ174と、を含み、これらのそれぞれは、入力/出力(input/output、I/O)ハブ176及びSMNバスに対して双方向で接続されている。また、I/Oハブ176は、システムハブ166及びデータファブリック125に対して双方向で接続されている。したがって、例えば、CPUコアは、データファブリック125がI/Oハブ176を介してルーティングするアクセスにより、USBコントローラ162、SATAインターフェースコントローラ164、SB172、又は、PCIeコントローラ174内のレジスタをプログラムすることができる。APU100のためのソフトウェア及びファームウェアは、リードオンリーメモリ(read-only memory、ROM)、フラッシュ電気的消去可能プログラマブルROM(electrically erasable programmable ROM、EEPROM)等の様々な不揮発性メモリタイプの何れかであり得るシステムデータドライブ又はシステムBIOSメモリ(図示せず)に記憶される。一般に、BIOSメモリはPCIeバスを介してアクセスされ、システムデータドライブはSATAインターフェースを介してアクセスされる。
SMU180は、APU100上のリソースの動作を制御してそれらの間の通信を同期させるローカルコントローラである。SMU180は、APU100上の様々なプロセッサのパワーアップシーケンシングを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップデバイスを制御する。SMU180は、APU100の構成要素のそれぞれにクロック信号を与えるために、位相ロックループ(phase locked loop、PLL)等の1つ以上のクロックソース(図示せず)を含む。また、SMU180は、様々なプロセッサ及び他の機能ブロックのための電力を管理し、適切な電力状態を判定するためにCPUコア112、114及びグラフィックスコア120から測定された電力消費値を受信することができる。
メモリ管理ハブ140及びその関連する物理インターフェース(physical interface、PHY)151、152は、この実施形態ではAPU100と統合される。メモリ管理ハブ140は、メモリチャネル141、142とパワーエンジン149とを含む。メモリチャネル141は、ホストインターフェース145と、メモリチャネルコントローラ143と、物理インターフェース147と、を含む。ホストインターフェース145は、メモリチャネルコントローラ143を、シリアル存在検出リンク(serial presence detect、SDP)を介してデータファブリック125に対して双方向で接続する。物理インターフェース147は、メモリチャネルコントローラ143をPHY151に対して双方向で接続し、PHY151を構成するためのDDR PHYインターフェース(DDR PHY Interface、DFI)仕様に準拠する。メモリチャネル142は、ホストインターフェース146、メモリチャネルコントローラ144及び物理インターフェース148を含む。ホストインターフェース146は、他のSDPを介してメモリチャネルコントローラ144をデータファブリック125に対して双方向で接続する。物理インターフェース148は、メモリチャネルコントローラ144をPHY152に対して双方向で接続し、DFI仕様に準拠する。パワーエンジン149は、SMNバスを介してSMU180に対して、アドバンスト周辺バス(APB)インターフェース254を介してPHY151及び152に対して双方向で接続されると共に、メモリチャネルコントローラ143及び144に対して双方向で接続される。PHY151は、メモリチャネル131への双方向接続を有する。PHY152は、双方向接続メモリチャネル133を有する。
メモリ管理ハブ140は、2つのメモリチャネルコントローラを有するメモリコントローラのインスタンス化であり、共有パワーエンジン149を使用して、以下で更に説明する態様でメモリチャネルコントローラ143及びメモリチャネルコントローラ144の両方の動作を制御する。メモリチャネル141、142のそれぞれは、DDRバージョン5(DDR 5)、DDRバージョン4(DDR 4)、低電力DDR 4(LPDDR 4)、グラフィックスDDRバージョン5(GDDR 5)、及び、高帯域幅メモリ(HBM)等の最先端DDRメモリに接続することができ、将来のメモリ技術に適合され得る。これらのメモリは、高いバス帯域幅及び高速動作をもたらす。同時に、それらのメモリは、ラップトップコンピュータ等のバッテリ駆動用途のための電力を節約するための低電力モードを与えると共に、内蔵熱監視も行う。
メモリシステム130は、メモリチャネル131及びメモリチャネル133を含む。メモリチャネル131は、DDRxバス132に接続されるデュアルインラインメモリモジュール(dual inline memory module、DIMM)のセットを含み、これには、本実施例では個別のランクに対応する代表的なDIMM134、136、138が含まれる。同様に、メモリチャネル133は、代表的なDIMM135、137、139を含む、DDRxバス129に接続されるDIMMのセットを含む。
APU100は、ホストデータ処理システムの中央処理ユニット(CPU)として動作し、最新のコンピュータシステムにおいて有用な様々なバス及びインターフェースを与える。これらのインターフェースは、2つのダブルデータレート(double data rate、DDRx)メモリチャネル、PCIeリンクへの接続のためのPCIeルート複合体、USBネットワークへの接続のためのUSBコントローラ、及び、SATA大容量記憶デバイスへのインターフェースを含む。
また、APU100は、様々なシステム監視機能及び節電機能も実装する。特に、1つのシステム監視機能は熱監視である。例えば、APU100が高温になる場合、SMU180は、CPUコア112、114及び/又はグラフィックスコア120の周波数及び電圧を低減することができる。APU100が高温になり過ぎる場合、SMUを完全にシャットダウンすることができる。SMNバスを介してSMU180によって外部センサから熱イベントを受けることもでき、SMU180は、それに応じてクロック周波数及び/又は電源電圧を低減することができる。
図2は、図1のようなAPUで用いるのに適したメモリコントローラ200のブロック図である。メモリコントローラ200は、概して、メモリチャネルコントローラ210及びパワーコントローラ250を含む。メモリチャネルコントローラ210は、概して、インターフェース212と、メモリインターフェースキュー214と、コマンドキュー220と、アドレス生成器222と、コンテントアドレッサブルメモリ(CAM)224と、リプレイ制御ロジック231と、リフレッシュ制御ロジックブロック232と、タイミングブロック234と、ページテーブル236と、アービタ238と、誤り訂正符号(ECC)チェック回路242と、ECC生成ブロック244と、データバッファ246と、リフレッシュ制御ロジック232と、分離セル290と、を含む。
インターフェース212は、外部バスを介したデータファブリックに対する第1の双方向接続を有し、出力を有する。メモリコントローラ200において、この外部バスは、「AXI4」として知られている英国ケンブリッジのARM Holdings,PLCによって指定された高度拡張可能インターフェースバージョン4と適合するが、他の実施形態では他のタイプのインターフェースとなり得る。インターフェース212は、メモリアクセス要求を、FCLK(又はMEMCLK)ドメインとして知られている第1のクロックドメインから、UCLKドメインとして知られているメモリコントローラ200の内部の第2のクロックドメインに変換する。同様に、メモリインターフェースキュー214は、UCLKドメインからDFIインターフェースに関連付けられるDFICLKドメインへのメモリアクセスを与える。
アドレス生成器222は、AXI4バスを介してデータファブリックから受信されるメモリアクセス要求のアドレスを復号する。メモリアクセス要求は、正規化フォーマットで表された物理アドレス空間内のアクセスアドレスを含む。アドレス生成器222は、正規化されたアドレスを、メモリシステム130内の実際のメモリデバイスをアドレス指定するために及び関連するアクセスを効率的にスケジュールするために使用され得るフォーマットに変換する。このフォーマットは、メモリアクセス要求を特定のランク、行アドレス、列アドレス、バンクアドレス、及び、バンクグループと関連付ける領域識別子を含む。起動時に、システムBIOSは、メモリシステム130内のメモリデバイスに問い合わせてそれらのサイズ及び構成を決定し、アドレス生成器222に関連付けられた構成レジスタのセットをプログラムする。アドレス生成器222は、構成レジスタに記憶された構成を使用して、正規化されたアドレスを適切なフォーマットに変換する。コマンドキュー220は、CPUコア112、114及びグラフィックスコア120等のAPU100内のメモリアクセスエージェントから受信されるメモリアクセス要求のキューである。コマンドキュー220は、アドレス生成器222によって復号されたアドレスフィールド、並びに、アービタ238がアクセスタイプ及びサービス品質(quality of service、QoS)識別子を含むメモリアクセスを効率的に選択できるようにする他のアドレス情報を記憶する。CAM224は、書き込み後の書き込み(write after write、WAW)及び書き込み後の読み取り(read after write、RAW)順序規則等の順序規則を実施するための情報を含む。
エラー訂正コード(ECC)生成ブロック244は、メモリに送られる書き込みデータのECCを決定する。次いで、このECCデータは、データバッファ246内の書き込みデータに追加される。ECCチェック回路242は、受信されたECCを着信ECCと照合してチェックする。ECCチェック回路242は、読み出し要求に応じて入ってくる読み出しデータを受信するために分離セル290を介してPHY151に接続される入力と、ECCチェックがパスした後又は訂正可能なエラーが訂正された後に読み出しデータを提供するためにメモリインターフェースキューに接続される出力と、を有する。また、ECCチェック回路242は、ECCチェックの失敗に応じてエラーをシグナリングするための他の接続(図示せず)を含む。
リプレイキュー230は、アドレス及びコマンドパリティ応答等の応答を待っているアービタ238によって選択されたメモリアクセスを記憶するための一時的なキューである。リプレイ制御ロジック231は、ECCチェック回路242にアクセスして、戻されたECCが正しいか又はエラーを示すかを決定する。リプレイ制御ロジック231は、これらのサイクルのうち何れかのパリティ又はECCエラーの場合にアクセスが再生される再生シーケンスを開始して制御する。リプレイされたコマンドは、メモリインターフェースキュー214に配置される。
リフレッシュ制御ロジック232は、メモリアクセスエージェントから受信した通常の読み取り及び書き込みメモリアクセス要求とは別に生成される様々な電源断、リフレッシュ及び終端抵抗(ZQ)較正サイクルのためのステートマシンを含む。例えば、メモリランクがプリチャージパワーダウンにある場合、リフレッシュ制御ロジックは、リフレッシュサイクルを実行するために定期的に起動されなければならない。リフレッシュ制御ロジック232は、DRAMチップ内のメモリセルの蓄積キャパシタからの電荷の漏れによって引き起こされるデータエラーを防止するために、定期的に、定められた条件に応じて、リフレッシュコマンドを生成する。リフレッシュ制御ロジック232はアクティブ化カウンタ248を含み、この実施形態において、アクティブ化カウンタ248は、メモリチャネルを介してメモリ領域に送信されるアクティブ化コマンドのローリング数をカウントするカウンタをメモリ領域ごとに有する。メモリ領域は、以下で更に説明するように、いくつかの実施形態ではメモリバンクであり、他の実施形態ではメモリサブバンクである。更に、リフレッシュ制御ロジック232は、システム内の熱変化に起因するオンダイ終端抵抗の不一致を防止するために、ZQを定期的に較正する。
アービタ238は、コマンドキュー220に双方向に接続され、メモリチャネルコントローラ210の心臓部であり、メモリバスの使用を改善するためにアクセスのインテリジェントスケジューリングを実行する。この実施形態では、アービタ238は、いくつかの最近発行された書き込みコマンドのバンクグループ番号を追跡し、以下で更に説明するように、ある条件下で指定された時間期間の間、それらのバンクグループへのコマンドのディスパッチを防止することによってそれらを「マスク」するためのバンクグループ追跡回路235を含む。アービタ238は、タイミングブロック234を使用して、コマンドキュー220内の特定のアクセスがDRAMタイミングパラメータに基づいて発行に適格であるかどうかを判定することによって、適切なタイミング関係を実施する。例えば、各DRAMは、「tRC」として知られるアクティブ化コマンド間の最小指定時間を有する。タイミングブロック234は、JEDEC仕様で定められたこのタイミングパラメータ及び他のタイミングパラメータに基づいて適格性を決定するカウンタのセットを維持し、リプレイ制御ロジック231に対して双方向で接続される。ページテーブル236は、アービタ238のためのメモリチャネルの各バンク及びランクにおけるアクティブページに関する状態情報を維持し、リプレイ制御ロジック231に対して双方向で接続される。
ECC生成ブロック244は、インターフェース212から受信した書き込みメモリアクセス要求に応じて、書き込みデータに従ってECCを計算する。データバッファ246は、受信したメモリアクセス要求に関する書き込みデータ及びECCを記憶する。データバッファは、アービタ238がメモリチャネルへのディスパッチのために対応する書き込みアクセスを選択すると、組み合わされた書き込みデータ/ECCをメモリインターフェースキュー214に出力する。
メモリチャネルコントローラ210は、関連するメモリチャネルへのディスパッチのためのメモリアクセスを選択することを可能にする回路を含む。所望のアービトレーション決定を行うために、アドレス生成器222は、アドレス情報を、メモリシステム内のランク、行アドレス、列アドレス、バンクアドレス、及び、バンクグループを含むプリデコードされた情報に復号し、コマンドキュー220がプリデコードされた情報を記憶する。構成レジスタ262は、アドレス生成器222が受信したアドレス情報をどのように復号するかを決定するための構成情報を記憶する。アービタ238は、復号されたアドレス情報、タイミングブロック234によって示されるタイミング適格性情報、及び、ページテーブル236によって示されるアクティブページ情報を使用して、サービス品質(QoS)要件等の他の基準を遵守しながら、メモリアクセスを効率的にスケジュールする。例えば、アービタ238は、メモリページを変更するために必要なプリチャージコマンド及びアクティブ化コマンドのオーバーヘッドを回避するために、オープンページへのアクセスの優先度を実装し、あるバンクへのオーバーヘッドアクセスを別のバンクへの読み取り及び書き込みアクセスとインターリーブすることによって隠す。特に、通常動作中、アービタ238は、通常、ページを、これらのページが異なるページを選択する前にプリチャージされる必要があるまで、異なるバンクで開いたままにする。アービタ238は、いくつかの実施形態では、それぞれのコマンドのターゲットとなるメモリ領域に関するアクティブ化カウンタ248の少なくともそれぞれの値に基づいて、コマンド選択の適格性を決定する。
分離セル290は、メモリインターフェースキュー214への双方向リンクと、PHY151への双方向リンクと、SMNを介して、又は、システム電力状態コントローラへの直接の側波帯接続を介してシステム電力状態コントローラ302(図3)に接続された入力と、を有する。各分離セルは、メモリインターフェースキュー214のそれぞれの接続とPHY151との間に接続されたANDゲート又はORゲート等のデジタルクランプ回路を含む。メモリチャネルコントローラ210が電源切断状態にあり、PHY151が電力供給状態にある場合に、PHYクロック及び電力ドメイン信号の破損を防止するために、分離セル290は、システム電力状態コントローラ302によってアクティブ化され、接続の値を所望のレベル(ハイ又はロー)にクランプする。
パワーコントローラ250は、概して、アドバンスト拡張可能インターフェース、バージョン1(AXI)へのインターフェース252、アドバンスト周辺バス(advanced peripheral bus、APB)インターフェース254、パワーエンジン260、及び、ローカル電力状態コントローラ270を含む。インターフェース252は、図2に別々に示される「EVENT_n」とラベル付けされるイベント信号を受信するための入力と、出力と、を含む、SMNへの第1の双方向接続を有する。APBインターフェース254は、インターフェース252の出力に接続された入力と、APBを介してPHYに接続するための出力と、を有する。
パワーエンジン260は、インターフェース252への双方向接続と、メモリインターフェースキュー214の入力に接続された出力と、ローカル電力状態コントローラ270への双方向接続と、を有する。パワーエンジン260は、構成レジスタ262のセットと、マイクロコントローラ(microcontroller、μC)264と、セルフリフレッシュコントローラ(self refresh controller、SLFREF/PE)266と、信頼性のある読み取り/書き込みタイミングエンジン(read/write timing engine、RRW/TE)268と、を含む。構成レジスタ262は、AXIバスを介してプログラムされ、限定された数の異なる電力状態のうち選択された1つにおいてメモリコントローラ200内の様々なブロックの動作を制御するための構成情報を記憶する。SLFREF/PE266は、リフレッシュ制御ロジック232によるリフレッシュの自動生成に加えて、リフレッシュの手動生成を可能にするエンジンである。信頼性のある読み取り/書き込みタイミングエンジン268は、DDRインターフェース最大読み取りレイテンシ(maximum read latency、MRL)トレーニング及びループバック試験のような目的のために、メモリ又はI/Oデバイスへ連続的なメモリアクセスストリームを与える。
ローカル電力状態コントローラ270は、インターフェース252への双方向接続、パワーエンジン260への双方向接続、及び、メモリチャネルコントローラ210への双方向接続を有する。ローカル電力状態コントローラ270は、メモリコントローラ200によってサポートされる様々な低電力状態及びアイドル状態のための構成及び状態データを保存する際に使用されるローカルスタティックRAM(SRAM)メモリ272を含む。概して、ローカル電力状態コントローラ270は、命令RAM及びデータRAMを有するローカルSRAM272を含むプログラム可能ハードウェアシーケンサである。ローカル電力状態コントローラは、以下で更に説明されるように、1つ以上の電力ドメインの電源を切断することを含むメモリコントローラ200の電力状態変化を加速する際に使用される。ローカル電力状態コントローラは、データを迅速に保存及び復元することができるように、構成レジスタ262内の全ての構成データへの読み取り及び書き込みアクセスを有する。また、ローカル電力状態コントローラは、メモリコントローラ200内の様々な論理ブロック及び回路、例えば、様々な図示された論理ブロック、並びに、クロック及び電源回路を制御する能力を有する。また、ローカル電力状態コントローラは、電力状態を管理するためにPHY151にコマンドを送信する能力を有する。この実施形態では、ローカル電力状態コントローラ270は、μC264とは別のハードウェアシーケンサであるが、他の実施形態では、これらの2つのブロックの機能は、単一のプログラム可能ハードウェアシーケンサ内で組み合わされてもよい。
動作中、パワーコントローラ250は、SMU180(図1)からACPIプロセッサ状態コマンド等の電力状態コマンドを受信し、それに応じて、通常はDFICLKドメイン及びUCLKドメインのための異なるクロック速度を含む新しい電力状態に入るように、メモリコントローラ200及び取り付けられたDRAM(複数可)の電力状態を変更する。ACPI電力状態の場合、μC264は、SMU180からのコマンドに応じて電力状態を出入りするように、メモリコントローラ200の遷移を制御する。様々な他の電力状態に対して、ローカル電力状態コントローラ270は、システム電力状態コントローラ(図3の302)と協調して、メモリコントローラ200を低電力状態に遷移させ、低電力状態から遷移させる機能を実行する。使用される低電力状態は、典型的には、オペレーティングシステムに公開されない、又は、ACPI仕様下でそのOSPM(Operating System-directed Configuration and Power Management)システムを介して制御可能である追加の電力状態であるという点で、ACPI仕様で定義されるような様々なACPI(Advanced Configuration and Power Interface)プロセッサ状態及びパフォーマンス状態とは異なる。ローカル電力状態コントローラ270によって制御される電力状態は、以下で更に説明するように、システム電力状態コントローラ302によってAPU100内の他のブロックの電力状態と調整される(指定された回路ブロックの電源を切断することを含む)メモリコントローラアイドル状態及び「ディープアイドル」状態を含む。
メモリコントローラ200は、構成データを保存及び復元するためにDRAMにアクセスすることによってAPU100の他のブロックを低電力状態から復元することに関与するため、メモリコントローラ200に短待ち時間の出入りを提供することは、システムの他の部分のためのより速い全体的な電力状態調整を可能にする。この速度の改善は、アイドル状態及び「ディープアイドル」状態等の低電力状態がより長い間アクティブのままであることを可能にし、電力節約の改善をもたらす。この実施形態では、ローカル電力状態コントローラ270は、構成レジスタ262及びメモリコントローラ200の様々なブロックからの構成及び状態データをSRAM272に保存し、以下で説明するプロセスに従ってこのデータのオンチップSRAMへのロードを調整する。この実施形態では、分離セル290は、システム電力状態コントローラによって制御されるが、他の実施形態では、ローカル電力状態コントローラ270は、以下で更に説明するように、電力状態遷移中の指定された時点で分離セル290を直接制御することができる。
図3は、例示的な実施形態に係る、メモリコントローラの電力状態を制御するための要素を示すAPU300の一部のブロック図である。APU300の図示された部分は、データファブリック125、SMU180、システム電力状態コントローラ302、オンチップスタティックランダムアクセスメモリ(SRAM)304、SMN、「メモリコントローラ1」とラベル付けされた第1のメモリコントローラ200、「メモリコントローラ2」とラベル付けされた第2のメモリコントローラ200、及び、PHY320を含む。この実施形態では2つのメモリコントローラ200が示されているが、他の実施形態は、3つ以上のメモリコントローラ及び2つ以上のPHYを含んでもよい。
システム電力状態コントローラ302は、APU300の様々な部分でローカル電力状態コントローラと通信するために、SMNに双方向に接続されて、SMU180によって制御されるACPI電力状態とは無関係に電力状態を制御する。また、システム電力状態コントローラ302は、分離セル290等の特定の回路への直接側波帯接続を含むことができる。ここでは2つのメモリコントローラのローカル電力状態コントローラ270のみが示されているが、様々な他のシステムブロックも、システム電力状態コントローラ302からのコマンドに応じてそれぞれのシステムブロックの構成及び状態データを保存及び復元することを含めて、電力状態の開始及び終了を制御するように構成されたローカル電力状態コントローラを含む。システム電力状態コントローラ302は、システムDRAMに保存することによって又はオンチップSRAM304に保存することによって、構成及び状態データを保存及び復元する2つの方法を提供する。以下で説明するように、メモリコントローラのための保存及び復元プロセスは、オンチップSRAM304への保存を含む。
オンチップSRAM304は、メモリコントローラ200の一部の電源が切断される低電力状態中に記憶される構成及び状態データをメモリコントローラ200のローカル電力状態コントローラ270から受信するために、SMNへの双方向接続を有する。この実施形態ではSRAMが使用されているが、SRAM速度程度の速度で動作する任意の適切な形態のRAMを使用して、構成及び状態データを保存することができる。他の実施形態では、オンチップSRAM304は、SMNではなくデータファブリック125に接続される。しかしながら、SMNを使用することは、電力状態を出る際にデータを再ロードするためにオンチップSRAM304への迅速なアクセスを可能にしつつ、データファブリックを様々なモードで電源切断又はアイドル状態にすることを可能にする。
この実施形態では、各メモリコントローラ200は、図2の設計の例示であり、図2に示すように、メモリチャネルコントローラ210及びパワーコントローラ250を含む。位相ロックループ(PLL)306は、メモリチャネルコントローラ210の論理回路が動作するメモリコントローラクロックドメインにクロック信号UCLKを供給する。いくつかのブロックが動作可能であるが、他のブロックが様々な低電力状態及びアイドル状態にないように、様々なクロックゲーティング機能を使用して、UCLKドメイン内のブロックのためのUCLK信号をゲーティングすることができる。パワーコントローラ250は、UCLK信号の周波数を制御して電力状態及びアイドル状態を実現するために、PLL306に接続される。ローカル電源308は、メモリチャネルコントローラ210に電力を供給する。パワーコントローラ250はまた、メモリチャネルコントローラ210への電源電圧を制御して電力状態及びアイドル状態を実現するために、ローカル電源308に接続される。
各メモリコントローラ200は、PHY320に接続されたDRAMメモリへのAPUアクセスを提供するためにPHY320に接続される。分離セル290は、メモリコントローラの電源が切断される電力状態中にPHY320からメモリコントローラ200を分離するためにアクティブ化され、そのような電力状態を出る場合に分離を解消する。通常、各メモリコントローラ200は、1つのDDRxメモリチャネル又はサブチャネルを制御するが、2つのチャネルを制御するデュアルチャネルメモリコントローラが使用されてもよい。PHY320は、PHYが動作するDFICLKドメインのための所望の周波数に基づいてクロック信号を提供するためのPLL322を含む。パワーコントローラ250は、以下で更に説明するように、電力状態及びアイドル状態を実装するためにDFICLKドメインの周波数を調整することができる。
各ローカル電力状態コントローラ270は、以下で更に説明するように、電力状態コマンドを受信し、応答及び同期信号を送信するために、システム電力状態コントローラ302への双方向接続を有する。各ローカル電力状態コントローラは、図2に関して説明したようなローカルSRAM272を含む。
図4は、例示的な実施形態に係る、低電力状態に入るようにメモリコントローラを動作させるためのプロセスのフローチャート400を示す。このプロセスは、図3のAPU300及びローカル電力状態コントローラを含む他のデータ処理システムと共に使用するのに適している。このプロセスは、ブロック402に示すように、メモリコントローラがアイドル電力状態又はシステム電力状態コントローラ302によって制御される他の低電力状態に入るべきであるとシステム電力状態コントローラ302が判定する毎に使用される。この判定は、典型的には、システム作業負荷に基づいており、メモリチャネルを通るトラフィックのレベル及び他の考慮事項に基づいていてもよい。メモリコントローラの低電力状態は、例えば、データファブリック125等の他のシステム要素の低電力状態を伴うことが多い。
ブロック404において、システム電力状態コントローラ302は、各メモリコントローラ200におけるローカル電力状態コントローラ270に電力状態コマンドを送信する。典型的には、システム内の全てのメモリコントローラ200は、特定の電力状態に入るように命令されるが、電力状態コマンドは、特定の状況において、全てのメモリコントローラよりも少ない数のメモリコントローラに送信されてもよい。好ましくは、APU100全体にわたる様々な論理ブロックに対する異なるアイドルレベル及び「ディープアイドル」レベルを含むいくつかの異なる電力モードがサポートされる。
ブロック406において、ローカル電力状態コントローラは、電力状態コマンドに応じて、メモリコントローラの電力状態を変更するプロセスを開始する。これは、通常動作中にメモリチャネルコントローラを典型的に指示するアービタ238からメモリチャネルコントローラ210の制御を取得することを含む。次いで、インターフェース212が停止され、新しい着信コマンドがデータファブリック125から渡されるのを停止する。この工程は、典型的には、インターフェース212が停止されていることをコヒーレントスレーブエージェントに通知するために、データファブリック125上のメモリコントローラ200専用のコヒーレントスレーブエージェントにシグナリングすることを含む。
ブロック408において、電力状態コマンドに応じたアクティビティを継続して、ローカル電力状態コントローラ270は、メモリコントローラのための構成及び状態データをオンチップSRAM304(図3)に保存する。保存されたデータは、メモリチャネルコントローラの電源を切断する場合に失われる現在の構成及び状態データを含む。また、保存された状態データは、メモリチャネルコントローラの電源を切断する場合に失われるキュー及びレジスタの内容と、様々な動作のためにDRAMに命令するためにμC264が実行するためのコマンドのシーケンスと、を含んでもよい。この実施形態では、保存プロセスは、最初に、メモリコントローラレジスタ及び回路ブロックから構成及び状態データを読み取り、ローカル電力状態コントローラ270の制御下で、それをローカルSRAM272にロードすることを含む。次いで、データは、低電力状態中に記憶するためにオンチップSRAM304に送信され、ローカルSRAM272の電源を切断することを可能にする。このデータを保存するためにオンチップSRAMを使用することにより、データを再ロードすることができ、メモリチャネルコントローラは、低電力状態から出る場合に迅速に動作を再開することができる。ブロック408は、通常、SMNを介してオンチップSRAM304にアクセスするローカル電力状態コントローラ270の制御下で実行される。いくつかの実施形態では、システム電力状態コントローラ302は、ローカルSRAM272からデータを読み出す。
ブロック410において、それぞれのメモリチャネルコントローラに関連付けられたDRAMは、セルフリフレッシュ状態に入るように命令される。次いで、ブロック412において、PHYは、低電力状態に入るように命令される。DDR5 DRAMを使用するいくつかの実施形態では、ブロック410で使用される低電力状態は、「低電力2」状態である。他のDDRx DRAM又はHBMモジュール等の他のタイプのメモリモジュールを使用する実施形態では、他の低電力状態を使用することができる。
次に、ブロック414において、ローカル電力状態コントローラ270は、メモリコントローラがPHYを分離する準備ができていることをシステム電力状態コントローラ302にシグナリングする。この実施形態では、シグナリングは、システム電力状態コントローラ302におけるレジスタに書き込むことによって実行されるが、任意の適切なシグナリング方法が使用されてもよい。この時点で、システム電力状態コントローラ302は、低電力状態に入ることを中断する能力を有し、これは、ブロック402でメモリコントローラにおいて低電力状態に入るという判定がなされてから、データファブリック125又はシステムの他の部分上の条件が変化した場合に行われ得る。
ブロック414において、PHYに関連付けられた全てのメモリコントローラが準備完了を信号で通知すると、システム電力状態コントローラ302は、ブロック416を実行する。ブロック416において、システム電力状態コントローラ302は、各メモリコントローラにおける分離セル290を有効にして、メモリチャネルコントローラをPHYから分離する。分離セル290は、メモリチャネルコントローラの電源切断又は電源投入中に発生し得るスプリアス信号(spurious signals)がPHYに悪影響を及ぼすことを防止する。いくつかの実施形態では、ローカル電力状態コントローラ270は、分離セル290を制御する。しかしながら、システム電力状態コントローラ302からの直接接続の使用は、ローカル電力状態コントローラが、メモリコントローラの低電力モード中に電源切断されることを可能にする。
ブロック416においてPHYがメモリチャネルコントローラから分離された後、ブロック418において、各メモリコントローラにおける電力状態コントローラは、メモリコントローラを電源切断状態に入らせる。UCLK PLL306(図3)は、電源オフされるか、あるいは、PLLが電源オンのままである間、クロックゲーティングを使用してメモリチャネルコントローラ内の各種回路から分離される。いくつかの実施形態では、全てのUCLK信号がメモリチャネルコントローラ210から除去されるが、他の実施形態では、クロックゲーティングが、メモリチャネルコントローラ内の論理のかなりの部分からUCLK信号を除去する。メモリチャネルコントローラのためのメモリチャネルコントローラローカル電源308(図3)は、メモリチャネルコントローラ又はその中の論理の重要な部分から非アクティブ化されるか又は切断される。
ブロック420に示すように、PHYは、メモリコントローラが電源切断状態にある間、ブロック410で設定された低電力状態に維持される。PHYは、低電力状態から出るプロセスを高速化するために、低電力状態では電源が切断されない。PHYを低電力状態で電源投入したままにさせるための分離セルのこの使用は、PHYによって使用される多くの構成レジスタ及び電圧レベル、並びに、PHYの電源投入に関与するトレーニング及び同期に起因して、大量の待ち時間をプロセスに追加するであろうPHYの電源切断を回避するという利点を有する。したがって、低電力状態において節減される電力量は、PHYの構成及び状態データを保存し、PHYを電源切断し、PHY構成及び状態データを再ロードし、PHYを電源投入し、それをメモリチャネルコントローラ及びDRAMと同期させるために必要とされる時間を含まずに、状態をより長い期間継続させることによって増加される。
図5は、例示的な実施形態に係る、低電力状態から出るようにメモリコントローラを動作させるためのプロセスのフローチャート500を示す。図示されたプロセスは、システム電力状態コントローラ302が、メモリコントローラ200が低電力状態でアクティブに保たれているPHYを有する図4のような低電力状態から出るべきであると判定する毎に使用される。
ブロック502において、システム電力状態コントローラ302は、システムが現在の低電力状態から出るべきであると判定する。低電力状態に入る判定と同様に、この判定は、システム作業負荷、様々なメモリチャネルの作業負荷、電力状態、及び、他の要因等の様々な要因を含み得る。ブロック504において、システム電力状態コントローラ302は、第2の電力状態コマンドを各メモリコントローラにおけるローカル電力状態コントローラに送信し、ローカル電力状態コントローラが現在の低電力状態を出るべきであることを示す。
第2の電力状態コマンドに応じて、各ローカル電力状態コントローラは、ブロック506において、メモリコントローラ電圧ドメインの電源を投入する。ブロック506は、各メモリチャネルコントローラへの給電を再アクティブ化すること、各メモリチャネルコントローラを再接続すること、又は、さもなければメモリチャネルコントローラ内の様々な論理回路に電力が送達されることを可能にすることを含み得る。プロセスは、各メモリコントローラに対して別々であることが好ましい。また、ブロック506は、メモリチャネルコントローラの電源切断状態において電源切断された様々な論理回路に対してUCLK PLLを再アクティブ化する又は再接続することを含む。このブロックは、UCLK PLL及びメモリチャネルコントローラのためのクロックゲーティング回路を制御することによって実行される。
ブロック508において、ローカル電力状態コントローラ270は、低電力状態に入る場合にオンチップSRAM304に保存された構成及び状態データを受信する。構成及び状態データを保存するプロセスと同様に、ブロック508は、通常、ローカル電力状態コントローラ270の制御下で実行され、データファブリック125又はSMNを介してオンチップSRAM304にアクセスすることを含む。あるいは、システム電力状態コントローラ302は、オンチップSRAM304からデータを読み出し、それをローカル電力状態コントローラ270に送信する。データは、メモリコントローラ200のレジスタ及び他の回路にロードされる前に、最初にローカルSRAM272に保存することができる。
ブロック510において、ローカル電力状態コントローラ270は、構成及び状態データをメモリコントローラレジスタ及びバッファ等の他の回路にロードする。いくつかの実施形態では、ブロック510においてデータをロードすることは、μC264のためのRAMメモリにコマンドのシーケンスをロードすることを含む。
次に、ブロック512において、ローカル電力状態コントローラ270は、メモリコントローラがPHYにアクセスする準備ができていることをシステム電力コントローラ302にシグナリングする。2つ以上のメモリコントローラ間でPHYへのアクセスを同期させるために、システム電力状態コントローラ302は、ブロック514において、全ての関連するメモリコントローラ、すなわちPHYにアクセスする全てのメモリコントローラがPHYアクセスの準備ができていることをシグナリングするのを待つ。次に、ブロック516において、システム電力コントローラ302は、分離セルを無効にする。これを達成するために、信号は、図2に示されるように、分離セルへの直接接続を通して送信することができる、又は、信号は、ローカル電力状態コントローラ270に送信することができ、次いで、分離セルを制御する。
ブロック518において、分離セルが無効にされてPHYへのアクセスを可能にした後、ローカル電力状態コントローラ270は、PHYに、低電力状態を出て通常動作状態に入るように命令する。入る動作状態は、典型的には、低電力状態への遷移を開始する前のPHY動作状態と同じである。
PHYが動作可能である場合、ブロック520において、メモリコントローラは、そのメモリチャネルに関連付けられたDRAMに対して、セルフリフレッシュ状態から出るように命令する。この時点で、低電力状態から通常動作状態への遷移が完了する。
図2のメモリコントローラ200又はアービタ238及びリフレッシュ制御ロジック232等のその任意の部分は、プログラムによって読み取られ、集積回路を製造するために直接的又は間接的に使用され得るデータベース又は他のデータ構造の形態のコンピュータアクセス可能データ構造によって記述又は表現され得る。例えば、このデータ構造は、Verilog又はVHDL等の高レベル設計言語(high level design language、HDL)におけるハードウェア機能の挙動レベル記述又はレジスタ転送レベル(register-transfer level、RTL)記述であってもよい。記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成することができる合成ツールによって読み取られ得る。ネットリストは、集積回路を含むハードウェアの機能も表すゲートのセットを含む。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために配置され、ルーティングされ得る。次いで、マスクを様々な半導体製造工程で使用して、集積回路を製造することができる。代替的に、コンピュータアクセス可能格納媒体上のデータベースは、所望に応じて、ネットリスト(合成ライブラリの有無にかかわらず)若しくはデータセット、又は、グラフィックデータシステム(Graphic Data System、GDS)IIデータであり得る。
特定の実施形態を説明してきたが、これらの実施形態に対する様々な修正が当業者には明らかである。例えば、メモリチャネルコントローラ210及び/又はパワーコントローラ250の内部アーキテクチャは、異なる実施形態において異なり得る。メモリコントローラ200は、高帯域幅メモリ(HBM)、RAMbus DRAM(RAMbus DRAM、RDRAM)等のような、DDRx以外の他のタイプのメモリとインターフェースすることができる。図示した実施形態は、個別のDIMM又はSIMMに対応するメモリの各ランクを示したが、他の実施形態では、各モジュールは複数のランクをサポートすることができる。更に他の実施形態は、ホストマザーボードに取り付けられたDRAM等のように、特定のモジュールに含まれていない他のタイプのDRAMモジュール又はDRAMを含むことができる。したがって、添付の特許請求の範囲は、開示された実施形態の範囲内に含まれる開示された実施形態の全ての変更を網羅することを意図している。

Claims (15)

  1. メモリコントローラであって、
    第1の電圧ドメインにおいて動作するコマンドキュー及びアービタであって、前記コマンドキューは、第1のメモリチャネルに対するメモリアクセス要求を受信し、前記アービタは、前記第1のメモリチャネルを介して送信するためのエントリを前記コマンドキューから選択する、コマンドキュー及びアービタと、
    第2の電圧ドメインにおいて動作するDRAM物理層インターフェース(DRAM PHY)であって、前記メモリコントローラを、前記第1のメモリチャネルに関連付けられたDRAMメモリに結合するためのDRAM PHYと、
    第1の電力状態コマンドに応じて、オンチップRAMメモリに記憶するための構成及び状態データを提供するローカル電力状態コントローラと、
    前記第1の電圧ドメインから前記DRAM PHYを分離するように動作可能な分離セルと、を備え、
    前記ローカル電力状態コントローラは、前記第1の電力状態コマンドに応じて、前記分離セルが前記第1の電圧ドメインから前記DRAM PHYを分離する準備ができていることを示す信号を提供する、
    メモリコントローラ。
  2. 前記ローカル電力状態コントローラは、前記第1の電力状態コマンドに応じて、前記メモリコントローラを電源切断状態に入らせ、前記DRAM PHYを、前記メモリコントローラが前記電源切断状態にある間に前記第2の電圧ドメインが給電される低電力状態に維持する、
    請求項1のメモリコントローラ。
  3. 前記ローカル電力状態コントローラは、前記分離セルが前記DRAM PHYを分離する準備ができていることを示す信号を提供する前に、前記第1のメモリチャネルに関連付けられた前記DRAMメモリをセルフリフレッシュ状態に入らせる、
    請求項のメモリコントローラ。
  4. 前記ローカル電力状態コントローラは、第2の電力状態コマンドに応じて、前記オンチップRAMメモリから前記構成及び状態データを受信し、前記メモリコントローラを前記電源切断状態から出させ、前記メモリコントローラの制御レジスタに前記構成及び状態データをロードし、前記DRAM PHYにアクセスする準備ができていることを示す第1の同期信号をシステム電力状態コントローラに送信し、分離セルの非アクティブ化に続いて、前記DRAM PHYを前記低電力状態から出させる、
    請求項のメモリコントローラ。
  5. 前記DRAMメモリのサポートされた低電力モードへの出入りを開始する、前記第1のメモリチャネルに関連付けられた前記DRAMメモリに対するコマンドのシーケンスを記憶するようにプログラム可能なメモリ動作アレイを更に備え、
    前記ローカル電力状態コントローラは、前記第1の電力状態コマンドに応じて、1つ以上の前記コマンドのシーケンスを前記オンチップRAMメモリに保存し、前記第2の電力状態コマンドに応じて、前記1つ以上の前記コマンドのシーケンスを前記メモリ動作アレイに復元する、
    請求項4のメモリコントローラ。
  6. 前記ローカル電力状態コントローラは、システム電力状態コントローラから前記第1の電力状態コマンドを受信し、前記分離セルが前記DRAM PHYを分離する準備ができていることを示す信号を前記システム電力状態コントローラに提供し、
    前記分離セルは、前記システム電力状態コントローラから信号を受信して、前記第1の電圧ドメインから前記DRAM PHYを分離させる、
    請求項1のメモリコントローラ。
  7. 前記オンチップRAMメモリは、前記システム電力状態コントローラによってアクセス可能なSRAMメモリである、
    請求項6のメモリコントローラ。
  8. 第1のメモリコントローラのローカル電力状態コントローラにおいて、第1の電力状態コマンドを受信することと、
    前記第1の電力状態コマンドを受信することに応じて、
    構成及び状態データを前記メモリコントローラ内の制御レジスタからオンチップRAMメモリに記憶することと、
    前記第1のメモリコントローラを、第1の電圧ドメインの電源が切断される電源切断状態に入らせることと、
    前記第1のメモリコントローラ内の分離セルが、前記第1のメモリコントローラの前記第1の電圧ドメインから物理層インターフェース(PHY)を分離する準備ができていることを示す信号を前記第1のメモリコントローラに提供することと、を含む、
    方法。
  9. 前記第1の電力状態コマンドを受信することに応じて、
    前記第1のメモリコントローラが前記電源切断状態にある間、物理層インターフェース(PHY)を、前記PHYの第2の電圧ドメインが給電される低電力状態に維持することを更に含む、
    請求項8の方法。
  10. 前記第1のメモリコントローラの前記ローカル電力状態コントローラにおいて、第2の電力状態コマンドを受信することと、
    前記第2の電力状態コマンドに応じて、
    前記オンチップRAMメモリから前記構成及び状態データを受信することと、
    前記第1のメモリコントローラを前記電源切断状態から出させて、前記構成及び状態データを前記制御レジスタにロードすることと、
    前記PHYにアクセスする準備ができていることを示す第1の同期信号を送信することと、
    前記第1のメモリコントローラ内の分離セルの非アクティブ化に続いて、前記PHYを前記低電力状態から出させることと、を更に含む、
    請求項の方法。
  11. 前記ローカル電力状態コントローラは、システム電力状態コントローラから前記第1の電力状態コマンドを受信し、分離セルが前記PHYを分離する準備ができていることを示す信号を前記システム電力状態コントローラに提供し、
    前記分離セルは、前記システム電力状態コントローラから信号を受信して、前記第1の電圧ドメインから前記PHYを分離する、
    請求項8の方法。
  12. 第2のDRAMメモリのための第2のメモリコントローラにおいて、前記PHYにアクセスする準備ができていることを示す第2の同期信号を前記第2のメモリコントローラからシステム電力状態コントローラに送信することと、
    前記第2のメモリコントローラの分離セルを無効にして、前記第2のメモリコントローラが前記PHYにアクセスするのを可能にすることと、を更に含む、
    請求項11の方法。
  13. DRAMメモリのサポートされた低電力モードへの出入りを開始する、前記DRAMメモリに対する異なるコマンドのシーケンスをメモリ動作アレイに記憶することと、
    前記第1の電力状態コマンドに応じて、1つ以上の前記コマンドのシーケンスを前記オンチップRAMメモリに保存することと、前記第2の電力状態コマンドに応じて、前記1つ以上の前記コマンドのシーケンスを前記メモリ動作アレイに復元することと、を更に含む、
    請求項10の方法。
  14. データ処理システムであって、
    データファブリックと、
    関連付けられたDRAMメモリに結合された第1のメモリチャネルと、
    前記データファブリック及び前記第1のメモリチャネルに結合され、前記データファブリックを介して受信したメモリアクセス要求を実行する第1のメモリコントローラと、を備え、
    前記第1のメモリコントローラは、
    第1の電圧ドメインにおいて動作するコマンドキュー及びアービタであって、前記コマンドキューは、第1のメモリチャネルに対するメモリアクセス要求を受信し、前記アービタは、前記第1のメモリチャネルを介して送信するためのエントリを前記コマンドキューから選択する、コマンドキュー及びアービタと、
    第2の電圧ドメインにおいて動作するDRAM物理層インターフェース(DRAM PHY)であって、前記第1のメモリコントローラを、前記第1のメモリチャネルに関連付けられたDRAMメモリに結合するためのDRAM PHYと、
    第1の電力状態コマンドに応じて、オンチップRAMメモリに記憶するための構成及び状態データを提供するローカル電力状態コントローラと、
    前記第1の電圧ドメインから前記DRAM PHYを分離するように動作可能な分離セルと、を備え、
    前記ローカル電力状態コントローラは、前記第1の電力状態コマンドに応じて、前記分離セルが前記第1の電圧ドメインから前記DRAM PHYを分離する準備ができていることを示す信号を提供する、
    データ処理システム。
  15. 前記ローカル電力状態コントローラは、前記第1の電力状態コマンドに応じて、前記第1のメモリコントローラを電源切断状態に入らせ、前記DRAM PHYを、前記第1のメモリコントローラが前記電源切断状態にある間に前記第2の電圧ドメインが給電される低電力状態に維持する、
    請求項14のデータ処理システム。
JP2023560428A 2021-03-31 2022-03-18 メモリコントローラ電力状態 Active JP7506272B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/219,273 US11636054B2 (en) 2021-03-31 2021-03-31 Memory controller power states
US17/219,273 2021-03-31
PCT/US2022/020930 WO2022212089A1 (en) 2021-03-31 2022-03-18 Memory controller power states

Publications (2)

Publication Number Publication Date
JP2024512682A JP2024512682A (ja) 2024-03-19
JP7506272B2 true JP7506272B2 (ja) 2024-06-25

Family

ID=83448067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023560428A Active JP7506272B2 (ja) 2021-03-31 2022-03-18 メモリコントローラ電力状態

Country Status (6)

Country Link
US (1) US11636054B2 (ja)
EP (1) EP4314992A4 (ja)
JP (1) JP7506272B2 (ja)
KR (1) KR102719996B1 (ja)
CN (1) CN117099071A (ja)
WO (1) WO2022212089A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972140B2 (en) * 2021-04-26 2024-04-30 Apple Inc. Hashing with soft memory folding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013239179A (ja) 2012-05-16 2013-11-28 Samsung Electronics Co Ltd チップ・ツー・チップリンクを通じて共有メモリへのアクセスを支援するシステムオンチップ、その動作方法、及び該システムオンチップを含む電子システム
JP2015094945A (ja) 2013-11-08 2015-05-18 インテル・コーポレーション ディスプレイパネルをディスプレイ送信エンジンに接続する物理層インターフェースについての電力管理
US20160239060A1 (en) 2015-02-13 2016-08-18 Qualcomm Incorporated Independent power collapse methodology
JP2018081688A (ja) 2016-11-10 2018-05-24 アップル インコーポレイテッド 周辺サブシステム用に個別の電力制御を提供するための方法及び装置
JP2018180963A (ja) 2017-04-14 2018-11-15 キヤノン株式会社 情報処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134167A (en) * 1998-06-04 2000-10-17 Compaq Computer Corporation Reducing power consumption in computer memory
CN201004633Y (zh) * 2007-01-30 2008-01-09 深圳市共进电子有限公司 一种电力线通讯网络适配器
US8775839B2 (en) * 2008-02-08 2014-07-08 Texas Instruments Incorporated Global hardware supervised power transition management circuits, processes and systems
CN201274496Y (zh) * 2008-09-24 2009-07-15 中国北车股份有限公司大连电力牵引研发中心 Wtb-以太网网关设备
US8639874B2 (en) * 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
US8824222B2 (en) * 2010-08-13 2014-09-02 Rambus Inc. Fast-wake memory
US10817043B2 (en) * 2011-07-26 2020-10-27 Nvidia Corporation System and method for entering and exiting sleep mode in a graphics subsystem
US9052899B2 (en) * 2011-08-10 2015-06-09 Intel Corporation Idle power reduction for memory subsystems
US9063734B2 (en) * 2012-09-07 2015-06-23 Atmel Corporation Microcontroller input/output connector state retention in low-power modes
US9305632B2 (en) 2013-04-29 2016-04-05 Qualcomm Incorporated Frequency power manager
US9383802B1 (en) 2013-06-20 2016-07-05 Altera Corporation Integrated circuit with state and data retention
US10198204B2 (en) * 2016-06-01 2019-02-05 Advanced Micro Devices, Inc. Self refresh state machine MOP array
US11675659B2 (en) * 2016-07-15 2023-06-13 Advanced Micro Devices, Inc. DDR memory error recovery
US10007311B2 (en) * 2016-08-15 2018-06-26 Sandisk Technologies Llc Adaptive temperature and memory parameter throttling
CN109829343A (zh) * 2019-01-25 2019-05-31 江苏徐工信息技术股份有限公司 一种高抗扰等级的usb通信隔离系统及方法
US11200106B2 (en) 2019-08-12 2021-12-14 Advanced Micro Devices, Inc. Data integrity for persistent memory systems and the like

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013239179A (ja) 2012-05-16 2013-11-28 Samsung Electronics Co Ltd チップ・ツー・チップリンクを通じて共有メモリへのアクセスを支援するシステムオンチップ、その動作方法、及び該システムオンチップを含む電子システム
JP2015094945A (ja) 2013-11-08 2015-05-18 インテル・コーポレーション ディスプレイパネルをディスプレイ送信エンジンに接続する物理層インターフェースについての電力管理
US20160239060A1 (en) 2015-02-13 2016-08-18 Qualcomm Incorporated Independent power collapse methodology
JP2018081688A (ja) 2016-11-10 2018-05-24 アップル インコーポレイテッド 周辺サブシステム用に個別の電力制御を提供するための方法及び装置
JP2018180963A (ja) 2017-04-14 2018-11-15 キヤノン株式会社 情報処理装置

Also Published As

Publication number Publication date
US11636054B2 (en) 2023-04-25
US20220318161A1 (en) 2022-10-06
EP4314992A4 (en) 2024-06-12
KR102719996B1 (ko) 2024-10-22
EP4314992A1 (en) 2024-02-07
WO2022212089A1 (en) 2022-10-06
CN117099071A (zh) 2023-11-21
JP2024512682A (ja) 2024-03-19
KR20230160854A (ko) 2023-11-24

Similar Documents

Publication Publication Date Title
US11221772B2 (en) Self refresh state machine mop array
KR102235055B1 (ko) 미세 입도의 리프레시
CN109863481B (zh) 用于平台裕度调节和调试的软件模式寄存器访问
KR102714770B1 (ko) 저 전력 메모리 스로틀링
US20210201986A1 (en) Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
JP7521132B2 (ja) アービトレーション中の書き込みバンクグループのマスク
JP7506272B2 (ja) メモリコントローラ電力状態
US11934251B2 (en) Data fabric clock switching
US11379388B1 (en) Credit scheme for multi-queue memory controllers
KR102728013B1 (ko) 자동 리프레시 상태 머신 mop 어레이

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231109

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20231109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240513

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: 20240528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240613

R150 Certificate of patent or registration of utility model

Ref document number: 7506272

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150