JP2022514128A - メモリコントローラのリフレッシュスキーム - Google Patents

メモリコントローラのリフレッシュスキーム Download PDF

Info

Publication number
JP2022514128A
JP2022514128A JP2020564249A JP2020564249A JP2022514128A JP 2022514128 A JP2022514128 A JP 2022514128A JP 2020564249 A JP2020564249 A JP 2020564249A JP 2020564249 A JP2020564249 A JP 2020564249A JP 2022514128 A JP2022514128 A JP 2022514128A
Authority
JP
Japan
Prior art keywords
refresh
memory
access
type
arbiter
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
Application number
JP2020564249A
Other languages
English (en)
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 JP2022514128A publication Critical patent/JP2022514128A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • 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/40618Refresh operations over multiple banks or interleaving
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

一形態では、メモリコントローラは、コマンドキュー、アービタ、リフレッシュ論理回路、及び最終アービタを含む。コマンドキューは、メモリに対するメモリアクセス要求を受信し格納する。アービタは、第1のタイプのアクセス及び第2のタイプのアクセスにしたがって、コマンドキューからアクセスを選択的に選択する。第1のタイプのアクセス及び第2のタイプのアクセスは、メモリにおける対応するメモリアクセスの異なるページステータスに対応する。リフレッシュ論理回路は、メモリのバンクに対してリフレッシュコマンドを生成し、保留中のリフレッシュの数にしたがってその値が設定される優先度インジケータをリフレッシュコマンドとともに提供する。最終アービタは、優先度インジケータに基づいて、第1のタイプのアクセス及び第2のタイプのアクセスのメモリアクセス要求に関してリフレッシュコマンドを選択的に順序付ける。【選択図】図5

Description

コンピュータシステムは通常、メインメモリに、安価で高密度のダイナミックランダムアクセスメモリ(DRAM)チップを使用する。今日販売されているほとんどのDRAMチップは、Joint Electron Devices Engineering Council(JEDEC)によって公布されている様々なダブルデータレート(DDR)DRAM規格と互換性がある。DRAMチップは、永続的なメモリデバイスではない。したがって、コンピュータシステムの通常の動作中に、データを保持するために、DRAMチップによる周期的なメモリリフレッシュが必要とされる。メモリリフレッシュは、半導体DRAMの動作中に必要なバックグラウンドメンテナンスプロセスである。メモリデータの各ビットは、DRAMチップを形成する小さなコンデンサ上の電荷の有無として格納される。コンデンサ上の電荷は、時間の経過とともに漏出し、メモリリフレッシュを行わないと、格納されているデータは失われる。データの損失を防ぐために、外部回路はコマンドを送信して、メモリに周期的に行を読み取らせ行を書き換えさせ、行のメモリセルのコンデンサ上の電荷を元の電荷レベルに戻す。リフレッシュが行われている間、メモリは、通常の読み取り及び書き込み操作には利用不可能である。
DRAM帯域幅に対するリフレッシュ動作の影響を仲介する試みがなされてきた。既知のメモリコントローラは、DRAMをリフレッシュするための2つのプロセスのいずれかを採用している。第1の例では、メモリコントローラは、メモリへの他のアクセスが保留中でなくなるまで待機し、それから、メモリコントローラが、メモリに対してリフレッシュを行う。これらはカジュアルリフレッシュと呼ばれる。別の例において、メモリコントローラが長く待機しすぎて、メモリのリフレッシュの必要性が非常に高く、メモリコントローラが緊急リフレッシュを提供する場合がある。前述の各例では、メモリトランザクションが停止し、その結果、メモリパフォーマンスが低下する場合がある。
一部の実施形態によるデータ処理システムのブロック図形式である。 図1のデータ処理システムに用いるのに適したアクセラレーテッドプロセッシングユニット(APU)のブロック図形式である。 一部の実施形態による図2のAPUに用いるのに適したメモリコントローラ及び関連する物理インターフェース(PHY)のブロック図形式である。 一部の実施形態による図2のAPUに用いるのに適した別のメモリコントローラ及び関連するPHYのブロック図形式である。 一部の実施形態によるメモリコントローラのブロック図形式である。 一部の実施形態によるメモリコントローラの一部のブロック図形式である。 一部の実施形態による図5及び6のリフレッシュ論理回路に使用され得るリフレッシュ論理回路のブロック図である。
以下の説明において、異なる図面での同じ参照番号の使用は、類似または同一の項目を示す。別段に注記されない限り、単語「結合される」及びその関連する動詞の活用形は、当該技術分野において知られている手段による、直接的な接続及び間接的な電気接続の両方を含み、別段に注記されない限り、直接的な接続のいずれかの説明は、間接的な電気接続の適切な形態を用いる代替の実施形態も黙示する。
以下に一形式で説明するように、メモリコントローラは、コマンドキュー、アービタ、リフレッシュ論理回路、及び最終アービタを含む。コマンドキューは、メモリに対するメモリアクセス要求を受信し格納する。アービタは、第1のタイプのアクセス及び第2のタイプのアクセスにしたがって、コマンドキューからアクセスを選択的に選択する。第1のタイプのアクセス及び第2のタイプのアクセスは、メモリにおける対応するメモリアクセスの異なるページステータスに対応する。リフレッシュ論理回路は、メモリのバンクに対してリフレッシュコマンドを生成する。リフレッシュ論理回路は、リフレッシュコマンドとともに、保留中のリフレッシュの数に応じてその値が設定される優先度インジケータを提供する。最終アービタは、第1のタイプのアクセス及び第2のタイプのアクセスのメモリアクセス要求に関して、リフレッシュコマンドを選択的に順序付ける。順序付けは、優先度インジケータに基づく。
別の形式において、データ処理システムは、メモリアクセスエージェント、メモリシステム、及びメモリコントローラを含む。メモリアクセスエージェントは、メモリに対するメモリアクセス要求を提供する。メモリシステムは、メモリアクセスエージェントに結合されている。メモリコントローラは、メモリシステムに結合されており、メモリアクセスエージェントは、コマンドキュー、アービタ、及び最終アービタを含む。コマンドキューは、メモリアクセスエージェントから受信したメモリアクセスコマンドを格納する。アービタは、第1のタイプのアクセス及び第2のタイプのアクセスにしたがって、コマンドキューからメモリアクセスを選択的に選択する。アクセスの各タイプは、メモリにおけるバンクの異なるページステータスに対応する。最終アービタは、リフレッシュ論理回路から受信した入力に基づいて調停を行う。リフレッシュ論理回路は、メモリのバンクに対してリフレッシュコマンドを生成し、リフレッシュコマンドに優先度インジケータを提供する。優先度インジケータの値は、保留中のリフレッシュの数に応じて設定されて、第1のタイプのアクセス及び第2のタイプのアクセスに関してリフレッシュコマンドを選択的に順序付ける。
さらに別の形式では、メモリコントローラを介してメモリシステムにおけるメモリのリフレッシュを管理する方法。複数のメモリアクセス要求が受信され、コマンドキューに格納される。メモリアクセス要求は、第1のタイプのアクセス及び第2のタイプのアクセスにしたがって、コマンドキューから選択的に選択される。第1のタイプのアクセス及び第2のタイプのアクセスは、メモリにおける対応するメモリアクセスの異なるページステータスに対応する。リフレッシュコマンドが、メモリのバンクに対して生成される。優先度インジケータが、リフレッシュコマンドとともに提供される。リフレッシュコマンドは、優先度インジケータに基づいて、第1のタイプのアクセス及び第2のタイプのアクセスのメモリアクセス要求に関して選択的に順序付けられる。
図1は、一部の実施形態によるデータ処理システム100をブロック図形式で示す。データ処理システム100は、一般に、アクセラレーテッドプロセッシングユニット(APU)の形態のデータプロセッサ110、メモリシステム120、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)システム150、ユニバーサルシリアルバス(USB)システム160、及びディスクドライブ170を含む。データプロセッサ110は、データ処理システム100の中央処理装置(CPU)として動作し、現代のコンピュータシステムにおいて有用である様々なバス及びインターフェースを提供する。これらのインターフェースには、2つのダブルデータレート(DDRx)メモリチャネル、PCIeリンクへの接続用のPCIeルートコンプレックス、USBネットワークへの接続用のUSBコントローラ、及びシリアルアドバンスドテクノロジーアタッチメント(SATA)マスストレージデバイスへのインターフェースが含まれる。
メモリシステム120は、メモリチャネル130及びメモリチャネル140を含む。メモリチャネル130は、この実施例において別々のランクに対応する代表的なDIMM134、136、及び138を含む、DDRxバス132に接続されているデュアルインラインメモリモジュール(DIMM)のセットを含む。同様に、メモリチャネル140は、代表的なDIMM144、146、及び148を含む、DDRxバス142に接続されているDIMMのセットを含む。
PCIeシステム150は、データプロセッサ110のPCIeルートコンプレックスに接続されているPCIeスイッチ152、PCIeデバイス154、PCIeデバイス156、及びPCIeデバイス158を含む。PCIeデバイス156は、今度は、システム基本入出力システム(BIOS)メモリ157に接続されている。システムBIOSメモリ157は、読み出し専用メモリ(ROM)、フラッシュ電気的消去可能プログラマブルROM(EEPROM)、及び同様のものなどの、様々な不揮発性メモリタイプのうちのいずれかであり得る。
USBシステム160は、データプロセッサ110のUSBマスタに接続されているUSBハブ162、ならびにUSBハブ162にそれぞれ接続されている代表的なUSBデバイス164、166、及び168を含む。USBデバイス164、166、及び168は、キーボード、マウス、フラッシュEEPROMポート、及び同様のもののようなデバイスであり得る。
ディスクドライブ170は、SATAバス経由でデータプロセッサ110に接続されており、オペレーティングシステム、アプリケーションプログラム、アプリケーションファイル、及び同様のものに対するマスストレージを提供する。
データ処理システム100は、メモリチャネル130及びメモリチャネル140を提供することによって現代のコンピューティングアプリケーションにおける使用に適する。メモリチャネル130及び140のそれぞれは、最先端のDDRメモリ、例えばDDRバージョン4(DDR4)、低電力DDR4(LPDDR4)、グラフィックスDDRバージョン5(GDDR5)、及び高帯域幅メモリ(HBM)などに接続することができ、かつ、未来のメモリ技術に適合させることができる。これらのメモリは、高いバス帯域幅及び高速動作を提供する。同時に、それらはまた、低電力モードをも提供して、ラップトップコンピュータなどのバッテリ駆動のアプリケーションに対する電力を節約し、かつ、ビルトイン温度監視をも提供する。
図2は、図1のデータ処理システム100に用いるのに適したAPU200をブロック図形式で示す。APU200は、一般に、中央処理装置(CPU)コアコンプレックス210、グラフィックスコア220、ディスプレイエンジンのセット230、メモリ管理ハブ240、データファブリック250、ペリフェラルコントローラのセット260、ペリフェラルバスコントローラのセット270、システム管理ユニット(SMU)280、及びメモリコントローラのセット290を含む。
CPUコアコンプレックス210は、CPUコア212及びCPUコア214を含む。この実施例において、CPUコアコンプレックス210は、2つのCPUコアを含むが、他の実施形態において、CPUコアコンプレックス210は、任意の数のCPUコアを含み得る。各CPUコア212及び214は、制御ファブリックを形成するシステム管理ネットワーク(SMN)に、かつ、データファブリック250に双方向接続されており、メモリアクセス要求をデータファブリック250に提供することが可能である。各CPUコア212及び214は、単一コアであり得、または、さらに、キャッシュなどの特定のリソースを共有する2つ以上の単一コアを含むコアコンプレックスであり得る。
グラフィックスコア220は、頂点処理、フラグメント処理、シェーディング、テクスチャブレンディング、及び同様のものなどのグラフィックス動作を高度に統合的かつ並列的に実行可能な高性能のグラフィックスプロセッシングユニット(GPU)である。グラフィックスコア220は、SMNに、かつ、データファブリック250に双方向接続されており、メモリアクセス要求をデータファブリック250に提供することが可能である。これに関連して、APU200は、CPUコアコンプレックス210及びグラフィックスコア220が同一のメモリ空間を共有するユニファイドメモリアーキテクチャ、または、CPUコアコンプレックス210及びグラフィックスコア220がメモリ空間の一部を共有する一方、グラフィックスコア220は、CPUコアコンプレックス210がアクセス不可能なプライベートグラフィックスメモリも使用するメモリアーキテクチャのいずれかをサポートし得る。
ディスプレイエンジン230は、モニタに表示するためにグラフィックスコア220によって生成されたオブジェクトをレンダリングし、ラスタライズする。グラフィックスコア220及びディスプレイエンジン230は、メモリシステム120における適切なアドレスへの均一な変換のために共通メモリ管理ハブ240に双方向接続されており、メモリ管理ハブ240は、そうしたメモリアクセスを生成し、メモリシステムから返された読み出しデータを受信するためにデータファブリック250に双方向接続されている。
データファブリック250は、任意のメモリアクセスエージェントとメモリコントローラ290の間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。データファブリック250はまた、システム構成に基づいてメモリアクセスの宛先を判定するためにBIOSによって定義されるシステムメモリマップ、ならびに各仮想接続のためのバッファも含む。
ペリフェラルコントローラ260は、USBコントローラ262及びSATAインターフェースコントローラ264を含み、これらのそれぞれは、システムハブ266にかつSMNバスに双方向接続されている。これら2つのコントローラは、APU200で使用され得るペリフェラルコントローラの例示に過ぎない。
ペリフェラルバスコントローラ270は、システムコントローラまたは「サウスブリッジ」(SB)272及びPCIeコントローラ274を含み、これらのそれぞれは、入力/出力(I/O)ハブ276にかつSMNバスに双方向接続されている。I/Oハブ276はまた、システムハブ266にかつデータファブリック250に双方向接続されている。したがって、例えば、CPUコアは、データファブリック250がI/Oハブ276を介してルーティングするアクセスを通して、USBコントローラ262、SATAインターフェースコントローラ264、SB272、またはPCIeコントローラ274のレジスタをプログラミングすることができる。
SMU280は、APU200上でリソースの動作を制御し、それらの間で通信を同期させるローカルコントローラである。SMU280は、APU200上で様々なプロセッサのパワーアップシーケンスを管理し、複数のオフチップデバイスを、リセット、イネーブル、及び他の信号を介して制御する。SMU280は、図2に示されない、位相ロックループ(PLL)などの1つ以上のクロック源を含み、これらクロック源は、APU200の各コンポーネントに対するクロック信号を提供する。SMU280はまた、様々なプロセッサ及び他の機能ブロックに対する電力を管理し、CPUコア212及び214ならびにグラフィックスコア220から測定消費電力値を受信して、適切な電力状態を判定し得る。
APU200はまた、様々なシステム監視及び節電機能を実装する。特に、1つのシステム監視機能は、温度監視である。例えば、APU200が高温になった場合、SMU280は、CPUコア212及び214ならびに/またはグラフィックスコア220の周波数及び電圧を低下させることができる。APU200が高温になりすぎた場合、APUを完全にシャットダウンすることができる。温度イベントは、外部センサからSMU280によってSMNバスを介して受信することもでき、SMU280は、それに応答して、クロック周波数及び/または電源電圧を低下させることができる。
図3は、一部の実施形態による図2のAPU200で用いるのに適したメモリコントローラ300及び関連する物理インターフェース(PHY)330をブロック図形式で示す。メモリコントローラ300は、メモリチャネル310及び電源エンジン320を含む。メモリチャネル310は、ホストインターフェース312、メモリチャネルコントローラ314、及び物理インターフェース316を含む。ホストインターフェース312は、メモリチャネルコントローラ314をデータファブリック250にスケーラブルデータポート(SDP)経由で双方向接続する。物理インターフェース316は、DDR-PHYインターフェース仕様(DFI)に準拠するバス経由で、メモリチャネルコントローラ314をPHY330に双方向接続する。電源エンジン320は、SMNバス経由でSMU280、アドバンストペリフェラルバス(APB)経由でPHY330に双方向接続されており、そしてまた、メモリチャネルコントローラ314にも双方向に接続されている。PHY330は、図1のメモリチャネル130またはメモリチャネル140などのメモリチャネルへの双方向接続を有する。メモリコントローラ300は、単一のメモリチャネルコントローラ314を使用する単一のメモリチャネル用のメモリコントローラのインスタンス化であり、かつ、さらに後述される方式でメモリチャネルコントローラ314の動作を制御する電源エンジン320を有する。
図4は、一部の実施形態による図2のAPU200で用いるのに適した別のメモリコントローラ400ならびに関連するPHY440及び450をブロック図形式で示す。メモリコントローラ400は、メモリチャネル410及び420、ならびに電源エンジン430を含む。メモリチャネル410は、ホストインターフェース412、メモリチャネルコントローラ414、及び物理インターフェース416を含む。ホストインターフェース412は、メモリチャネルコントローラ414をデータファブリック250にSDP経由で双方向接続する。物理インターフェース416は、メモリチャネルコントローラ414をPHY440に双方向接続し、DFI仕様に準拠するものである。メモリチャネル420は、ホストインターフェース422、メモリチャネルコントローラ424、及び物理インターフェース426を含む。ホストインターフェース422は、メモリチャネルコントローラ424をデータファブリック250に別のSDP経由で双方向接続する。物理インターフェース426は、メモリチャネルコントローラ424をPHY450に双方向接続し、DFI仕様に準拠するものである。電源エンジン430は、SMNバス経由でSMU280に、APB経由でPHY440及び450に双方向接続されており、またメモリチャネルコントローラ414及び424に双方向接続されている。PHY440は、図1のメモリチャネル130などのメモリチャネルへの双方向接続を有する。PHY450は、図1のメモリチャネル140などのメモリチャネルへの双方向接続を有する。メモリコントローラ400は、2つのメモリチャネルコントローラを有するメモリコントローラのインスタンス化であり、かつ、さらに後述される方式でメモリチャネルコントローラ414及びメモリチャネルコントローラ424の両方の動作を制御する共有電源エンジン430を使用する。
図5は、一部の実施形態によるメモリコントローラ500をブロック図形式で示す。メモリコントローラ500は、メモリチャネルコントローラ510及び電源コントローラ550を含む。メモリチャネルコントローラ510は、インターフェース512、キュー514、コマンドキュー520、アドレス生成器522、連想メモリ(CAM)524、リプレイキュー530、リフレッシュ論理回路ブロック532、タイミングブロック534、ページテーブル536、アービタ538、誤り訂正符号(ECC)チェックブロック542、ECC生成ブロック544、及びデータバッファ(DB)546を含む。
インターフェース512は、データファブリック250への外部バス経由での第1の双方向接続を有し、かつ出力を有する。メモリコントローラ500において、この外部バスは、ARM Holdings、PLC of Cambridge、Englandによって指定された「AXI4」として知られているアドバンストエクステンシブルインターフェースバージョン4と互換性があるが、他の実施形態において他の種類のインターフェースであり得る。インターフェース512は、メモリアクセス要求を、FCLK(またはMEMCLK)ドメインとして知られている第1のクロックドメインから、UCLKドメインとして知られているメモリコントローラ500内部の第2のクロックドメインに移動させる。同様に、キュー514は、メモリアクセスを、UCLKドメインからDFIインターフェースと関連するDFICLKドメインに提供する。
アドレス生成器522は、AXI4バス経由でデータファブリック250から受信したメモリアクセス要求のアドレスを復号する。メモリアクセス要求は、正規化されたアドレスとして表現される物理アドレス空間におけるアクセスアドレスを含む。アドレス生成器522は、正規化されたアドレスを、メモリシステム120における実際のメモリデバイスをアドレス指定し、そして関連するアクセスを効率的にスケジューリングするのに用いることができるフォーマットに変換する。このフォーマットは、メモリアクセス要求を特定のランク、行アドレス、列アドレス、バンクアドレス、及びバンクグループと関連付けるリージョン識別子を含む。スタートアップ時に、システムBIOSは、メモリシステム120におけるメモリデバイスにクエリを行ってそれらのサイズ及び構成を判定し、アドレス生成器522と関連する構成レジスタのセットをプログラミングする。アドレス生成器522は、構成レジスタに格納されている構成を使用して、正規化されたアドレスを適切なフォーマットに変換する。コマンドキュー520は、CPUコア212及び214ならびにグラフィックスコア220などの、データ処理システム100におけるメモリアクセスエージェントから受信したメモリアクセス要求のキューである。コマンドキュー520は、アドレス生成器522によって復号されたアドレスフィールド、加えて、アクセスタイプ及びサービス品質(QoS)識別子を含む、アービタ538がメモリアクセスを効率的に選択することを可能にする他のアドレス情報を格納する。CAM524は、ライトアフターライト(WAW)及びリードアフターライト(RAW)の順序付け規則といった順序付け規則を実行する情報を含む。
リプレイキュー530は、アドレス及びコマンドパリティ応答、DDR4 DRAMに対する書き込み巡回冗長検査(CRC)応答、またはGDDR5 DRAMに対する書き込み及び読み出しCRC応答などの応答を待機している、アービタ538によって選択されたメモリアクセスを格納するための一時キューである。リプレイキュー530は、ECCチェックブロック542にアクセスして、返されたECCが正しいかそれともエラーを示すかを判定する。リプレイキュー530は、これらのサイクルのうちの1つのパリティまたはCRCエラーの場合、これらのアクセスがリプレイされることを可能にする。
リフレッシュ論理回路532は、メモリアクセスエージェントから受信した通常の読み出し及び書き込みメモリアクセス要求から別々に生成される様々なパワーダウン、リフレッシュ、及び終端抵抗(ZQ)較正サイクルに対する状態機械を含む。例えば、メモリランクがプリチャージパワーダウンにある場合、そのメモリランクは、リフレッシュサイクルを実行するために周期的に起動されなければならない。リフレッシュ論理回路532は、自動リフレッシュコマンドを周期的に生成して、DRAMチップにおけるメモリセルのストレージコンデンサからの電荷漏れによって引き起こされるデータエラーを防ぐ。加えて、リフレッシュ論理回路532は、ZQを周期的に較正して、システムにおける温度変化によるオンダイ終端抵抗における不整合を防ぐ。リフレッシュ論理回路532はまた、いつDRAMデバイスを異なるパワーダウンモードにするかも決定する。
アービタ538は、コマンドキュー520に双方向接続されており、メモリチャネルコントローラ510の心臓部である。アービタ538は、アクセスの知的スケジューリングによって効率を向上させて、メモリバスの使用率を高める。アービタ538は、タイミングブロック534を使用して、コマンドキュー520における特定のアクセスが発行に適格であるかどうかをDRAMタイミングパラメータに基づいて判定することによって、適切なタイミング関係を強化する。例えば、各DRAMには、「tRC」として知られる、同じバンクに対するアクティブコマンド間の最小指定時間がある。タイミングブロック534は、このタイミングパラメータ及びJEDEC仕様に指定される他のタイミングパラメータに基づいて適格性を判定するカウンタのセットを保持し、リプレイキュー530に双方向接続されている。ページテーブル536は、アービタ538に対するメモリチャネルの各バンク及びランクにおけるアクティブページに関する状態情報を保持し、リプレイキュー530に双方向接続されている。
インターフェース512から受信した書き込みメモリアクセス要求に応答して、ECC生成ブロック544は、書き込みデータにしたがいECCを計算する。DB546は、受信したメモリアクセス要求に対する書き込みデータ及びECCを格納する。DB546は、アービタ538が、メモリチャネルへディスパッチする対応する書き込みアクセスを選択すると、組み合わされた書き込みデータ/ECCをキュー514に出力する。
電源コントローラ550は、アドバンストエクステンシブルインターフェース、バージョン1(AXI)へのインターフェース552、APBインターフェース554、及び電源エンジン560を含む。インターフェース552は、図5に別に示される「EVENT_n」とラベル付けされているイベント信号を受信する入力を含む、SMNへの第1の双方向接続、及び出力を有する。APBインターフェース554は、インターフェース552の出力に接続されている入力、及びAPB経由でのPHYへの接続のための出力を有する。電源エンジン560は、インターフェース552の出力に接続されている入力、及びキュー514の入力に接続されている出力を有する。電源エンジン560は、構成レジスタのセット562、マイクロコントローラ(μC)564、セルフリフレッシュコントローラ(SLFREF/PE)566、及び信頼性に優れた読み出し/書き込みトレーニングエンジン(RRW/TE)568を含む。構成レジスタ562は、AXIバス経由でプログラミングされ、メモリコントローラ500における様々なブロックの動作を制御する構成情報を格納する。したがって、構成レジスタ562は、図5に詳細に示されていないこれらのブロックに接続されている出力を有する。セルフリフレッシュコントローラ566は、リフレッシュ論理回路532によるリフレッシュの自動生成に加えて、手動でのリフレッシュの生成を可能にするエンジンである。信頼性に優れた読み出し/書き込みトレーニングエンジン568は、DDRインターフェース読み出しレイテンシトレーニング及びループバックテストなどの目的のために、メモリまたはI/Oデバイスに連続的なメモリアクセスストリームを提供する。
メモリチャネルコントローラ510は、関連するメモリチャネルへのディスパッチのためにメモリアクセスを選択することを可能にする回路を含む。所望の調停決定を行うために、アドレス生成器522は、アドレス情報を、メモリシステムにおけるランク、行アドレス、列アドレス、バンクアドレス、及びバンクグループを含むプリデコード情報に復号し、コマンドキュー520は、プリデコード情報を格納する。構成レジスタ562は、アドレス生成器522が、受信したアドレス情報を復号する方法を判定するための構成情報を格納する。アービタ538は、復号されたアドレス情報、タイミングブロック534によって示されるタイミング適格性情報、及びページテーブル536によって示されるアクティブページ情報を使用して、QoS要件などの他の基準にしたがいながらメモリアクセスを効率的にスケジューリングする。例えば、アービタ538は、メモリページを変更するのに必要とされるプリチャージ及びアクティブ化コマンドのオーバーヘッドを回避するようにオープンページへのアクセスについて選好を実施し、かつ、1つのバンクへのオーバーヘッドアクセスを、それらを別のバンクへの読み出し及び書き込みアクセスを用いてインターリーブすることによって隠す。特に、通常の動作中に、アービタ538は、異なるページを選択する前にプリチャージされることを要求されるまで、ページを異なるバンクにおいて開いたままにすることを決定し得る。
図6は、一部の実施形態による図5のメモリコントローラ500の一部600のブロック図を示す。部分600は、アービタ538、リフレッシュ論理回路532、及びアービタ538の動作に関連する制御回路のセット660を含む。アービタ538は、サブアービタのセット605及び最終アービタ650を含む。サブアービタ605は、サブアービタ610、サブアービタ620、及びサブアービタ630を含む。サブアービタ610は、「PH ARB」とラベル付けされたページヒットアービタ612、及び出力レジスタ614を含む。ページヒットアービタ612は、コマンドキュー520に接続されている第1の入力、第2の入力、及び出力を有する。レジスタ614は、ページヒットアービタ612の出力に接続されているデータ入力、UCLK信号を受信するためのクロック入力、及び出力を有する。サブアービタ620は、「PC ARB」とラベル付けされたページ競合アービタ622、及び出力レジスタ624を含む。ページ競合アービタ622は、コマンドキュー520に接続されている第1の入力、第2の入力、及び出力を有する。レジスタ624は、ページ競合アービタ622の出力に接続されているデータ入力、UCLK信号を受信するためのクロック入力、及び出力を有する。サブアービタ630は、「PM ARB」とラベル付けされたページミスアービタ632、及び出力レジスタ634を含む。ページミスアービタ632は、コマンドキュー520に接続されている第1の入力、第2の入力、及び出力を有する。レジスタ634は、ページミスアービタ632の出力に接続されているデータ入力、UCLK信号を受信するためのクロック入力、及び出力を有する。最終アービタ650は、ページクローズ予測子662の出力に接続されている第1の入力、リフレッシュ論理回路532の出力に接続されている第2の入力、出力レジスタ614の出力に接続されている第3の入力、出力レジスタ624の出力に接続されている第4の入力、レジスタ634の出力に接続されている第5の入力、及びキュー514に調停の勝者を提供するための第1の出力を有する。
リフレッシュ論理回路532の出力は、優先度インジケータを、関連するリフレッシュコマンドとともに提供する。リフレッシュ論理回路532はまた、最終アービタ650の出力に接続されている入力を有する。
制御回路660は、図5に関して前述したようなタイミングブロック534及びページテーブル536、ならびにページクローズ予測子662を含む。タイミングブロック534は、入力、ならびにページヒットアービタ612、ページ競合アービタ622、及びページミスアービタ632の第1の入力に接続されている出力を有する。ページテーブル536は、リプレイキュー530の出力に接続されている入力、リプレイキュー530の入力に接続されている出力、コマンドキュー520の入力に接続されている出力、タイミングブロック534の入力に接続されている出力、及びページクローズ予測子662の入力に接続されている出力を有する。ページクローズ予測子662は、ページテーブル536の1つの出力に接続されている入力、出力レジスタ614の出力に接続されている入力、及び最終アービタ650の第2の入力に接続されている出力を有する。
動作中、アービタ538は、コマンドキュー520及びリフレッシュ論理532からメモリアクセス要求(コマンド)を、各エントリのページステータス及び各リフレッシュコマンドの優先度を考慮に入れることによって選択する。メモリアクセスの優先度は、中間リフレッシュ間隔に基づくが、メモリアクセス要求のページステータスにかつリフレッシュコマンドの優先度インジケータのステータスに基づいて変更することができる。アービタ538は、リフレッシュ論理回路532と並列して動作して、既存の集積回路技術の処理限界と送信限界の不一致に対処する3つのサブアービタを含む。それぞれのサブ調停の勝者は、優先度インジケータを有するリフレッシュコマンドとともに、最終アービタ650に提示される。最終アービタ650は、これら3つのサブ調停の勝者とリフレッシュ論理532からのリフレッシュ動作の間で、キュー514に出力するための選択を行う。
ページヒットアービタ612、ページ競合アービタ622、及びページミスアービタ632のそれぞれは、これらのそれぞれのカテゴリに収まるコマンドキュー520におけるコマンドのタイミング適格性を判定するために、タイミングブロック534の出力に接続されている入力を有する。タイミングブロック534は、各ランクの各バンクに対する特定の動作に関連する期間をカウントするバイナリカウンタのアレイを含む。ステータスを判定するために必要とされるタイマーの数は、タイミングパラメータ、所与のメモリタイプのバンク数、及び所与のメモリチャネルでシステムがサポートするランク数に依存する。順番に実装されるタイミングパラメータの数は、システムに実装されているメモリのタイプに依存する。例えば、GDDR5メモリは、他のDDRxメモリタイプよりも多くのタイミングパラメータに準拠するために、より多くのタイマーを必要とする。バイナリカウンタとして実装された汎用タイマーのアレイを含めることにより、タイミングブロック534は、スケーリングして、異なるメモリタイプに再利用することができる。
ページヒットは、オープンページに対する読み取りまたは書き込みサイクルである。ページヒットアービタ612は、オープンページに対するコマンドキュー520におけるアクセス間で調停を行う。ページ競合は、バンクにおける1つの行が現在アクティブ化されているときのバンクにおける別の行へのアクセスである。ページ競合アービタ622は、対応するバンク及びランクで現在オープンであるページと競合するページに対するコマンドキュー520におけるアクセス間で調停を行う。ページ競合アービタ622は、サブ調停の勝者を選択し、これは、プリチャージコマンドの発行を引き起こす。ページミスは、プリチャージ状態にあるバンクへのアクセスである。ページミスアービタ632は、プリチャージされたメモリバンクに対するコマンドキュー520におけるアクセス間で調停を行う。アービタ538は、メモリアクセスのタイプにしたがって、コマンドキュー520からアクセスを選択的に選択する。ページヒットアービタ612、ページ競合アービタ622、及びページミスアービタ632のそれぞれは、第1のタイプのアクセスまたは第2のタイプのアクセスを出力する。
第1のタイプのアクセス及び第2のタイプのアクセスは、メモリにおける対応するメモリアクセスの異なるページステータスに対応する。より具体的には、ページヒットアービタ612は、第1のタイプのアクセスを出力する。ページ競合アービタ622及びページミスアービタ632はそれぞれ、第2のタイプのアクセスを出力する。3つのサブ調停の勝者間で相対的な優先度を判定した後、最終アービタ650は、サブ調停の勝者がリフレッシュコマンドと競合するかどうか(すなわち、それらが同じバンク及びランクを対象とするかどうか)を判定する。そのような競合がなく、かつ、リフレッシュ時間間隔が満たされているとき、最終アービタ650は、リフレッシュコマンドを選択する。競合があるとき、最終アービタ650は、以下の規則に準拠する。リフレッシュコマンドに対する優先度インジケータが第1の優先度ステータス(中間優先度)であり、かつ、ページヒットアービタ612が保留中のページヒットを選択するとき、最終アービタ650は、ページヒットアービタ612によって示されるアクセスを選択する。リフレッシュコマンドに対する優先度インジケータが第2の優先度ステータス(緊急優先度)であり、かつ、サブ調停の勝者がページヒットアービタ612からのものであるとき、最終アービタ650は、リフレッシュ論理回路532によって示されるアクセスを選択し、それによって、実行するのに、ページヒットではなくリフレッシュコマンドを優先する。場合によっては、リフレッシュ論理回路532は、リフレッシュコマンドの優先度ステータスを、緊急リフレッシュカウント閾値に基づいて緊急ステータスに昇格させる。
リフレッシュ論理回路532は、リフレッシュコマンドとともに優先度インジケータを提供して、リフレッシュコマンドの優先度ステータスを最終アービタ650に対して指定する。リフレッシュ論理回路532は、保留中のリフレッシュの数にしたがって、優先度インジケータの値を設定する。リフレッシュ論理回路532は、優先度インジケータに第1の優先度ステータスまたは第2の優先度ステータスを割り当てる。リフレッシュ論理532は、バンクごとのリフレッシュサイクルを、所定の期間に基づいて均等に分散させる。所定の期間は、タイミング依存リフレッシュ間隔である中間リフレッシュ間隔であり、これは、リフレッシュ時間間隔(tREFI)及びメモリコントローラに割り当てられているメモリバンクの数に基づく。中間リフレッシュのトリガーは、未実行のリフレッシュの閾値に依存する。
リフレッシュ論理回路532内で、優先度は、保留中のリフレッシュの数に基づいて初期設定される。一般に、リフレッシュ論理回路532は、第1のタイプのアクセスと第2のタイプのアクセスの間で実行するように、リフレッシュコマンドを昇格させる。より具体的には、最終アービタ650は、ターゲットメモリバンクに対するページヒットトランザクションがないときにリフレッシュコマンドを送信する。第2の優先度ステータスに応答して、最終アービタ650は、リフレッシュコマンドを、第1のタイプのアクセス及び第2のタイプのアクセスよりも上に昇格させる。それによって、場合によっては、最終アービタ650は、実行するのに、メモリバンクに対する保留中の要求ではなく、リフレッシュコマンドを優先する。
ページヒット、ページ競合、及びページミスに対するサブアービタを使用することにより、アービタ538は、サブ調停に基づきアクセスを選択的に選択し、それらを、第1のタイプのアクセス及び第2のタイプのアクセスとしてカテゴライズすることができる。最終アービタ650は、保留中のリフレッシュの数に基づきメモリ132のバンク134に対してリフレッシュコマンドを生成するリフレッシュ論理回路532から受信した入力に基づいて、リフレッシュコマンドを選択することができる。最終アービタ650は、第1のタイプのアクセス及び第2のタイプのアクセスに関して、リフレッシュコマンドを順序付ける。中間リフレッシュ時間間隔は、tREFI未満の期間である。メモリアクセスのタイプに基づいてかつ保留中のリフレッシュの数にしたがってリフレッシュコマンドを順序付けることにより、リフレッシュコマンドを、リフレッシュ時間間隔よりも高い頻度で、かつ緊急リフレッシュによる不利益を回避するのに十分な量の時間で送信することが可能になる。
他の実施形態では、アービタ538は、異なる数のサブアービタを含み得る。例えば、アービタ538は、2つのサブアービタを含み得、1つはページヒット用のアービタであり、もう1つはページ競合及びページミス用のアービタである。この場合、アービタ538は、2つのサブ調停に基づくページタイプにアクセス可能である。
一部の実施形態では、リフレッシュ論理回路532は、1つのtREFIにおいてバンクごとにリフレッシュコマンドを生成し、その結果、一部のバンクがリフレッシュしている高作業負荷中に、他のトランザクションが、メモリ132を備えた他のバンクを利用して、メモリ132のバス帯域幅をより完全に利用するようにする。一般に、トランザクション中に中間リフレッシュコマンドを送信するために、最終アービタ650は、所定のクロックサイクルが満了し、バンクのページが閉じられたときに、第1のまたは第2の優先度ステータスを有する中間リフレッシュコマンドに、緊急リフレッシュステータスをアサートする。これにより、バンクごとの中間リフレッシュコマンドをメモリ132に対して均等かつ一貫して生成することが可能になる。最終アービタ650は、ページヒットとページミスの間でバンクに対して生成するバンクごとの中間リフレッシュコマンドを調停する。ページヒットとページミスの間で生成するバンクごとの中間リフレッシュコマンドの優先度を昇格させると、さらに、ページを閉じることから生じる不利益からメモリ132が守られる。有利には、バンクごとの中間リフレッシュコマンドは、メモリの行を開いてから行内の列にアクセスするまでに必要なクロックサイクル(trcd)を軽減し、プリチャージコマンドを発行してから次の行を開くまでに必要なクロックサイクル(trp)を軽減する。
一部の実施形態では、アービタ538は、優先度インジケータを用いてメモリバンクの優先度を下げる。同等の優先度インジケータを備えた少なくとも2つのメモリバンクに対するリフレッシュコマンドを同時に受信したことに応答して、アービタ538は、リフレッシュコマンドの最新の受信者であるメモリバンクを、リフレッシュコマンドの最古の受信者であるメモリのバンクより下に降格させる。リフレッシュ論理回路532から緊急リフレッシュコマンドを受信したことに応答して、アービタ538は、対応するバンクの行のアクティブ化をブロックして、バンクにおいて新しいアクティビティが開始されないようにする。バンクに対する緊急リフレッシュコマンドを受信した後、アービタ538は、リフレッシュ要求を2つの状況でバンクに送信する。第1に、アービタ538は、緊急リフレッシュコマンドが生成されたと同時にリフレッシュタイミングが満たされた場合、緊急リフレッシュコマンドをバンクに直ちに送信する。第2に、緊急リフレッシュコマンドが生成されたと同時にリフレッシュタイミングが満たされたわけではない場合、アービタ538は、リフレッシュタイミングが満たされるのを待ってから、リフレッシュ要求を対応するバンクに送信する。
図7は、一部の実施形態による図5及び6のリフレッシュ論理回路532に使用され得るリフレッシュ論理回路700のブロック図を示す。リフレッシュ論理回路700は、一般に、リフレッシュ内部タイマー705、バンクごとのタイマーアレイ710、保留中のリフレッシュキュー720、未実行のリフレッシュカウンタ730、第1の比較器740、及び第2の比較器750を含む。
リフレッシュ内部タイマー705は、クロックソースに接続されている入力、及び未実行のリフレッシュカウンタ730に増分カウントを提供するための出力を有する。バンクごとのタイマーアレイ710は、クロック信号を受信するための入力、及び保留中のリフレッシュキュー720にバンクごとのリフレッシュを提供するための出力を有する。保留中のリフレッシュキュー720は、バンクごとのタイマーアレイ710に接続されている第1の入力、第2の入力、及び最終アービタ650にリフレッシュコマンドを提供するための出力を有する。未実行のリフレッシュカウンタ730は、「INC」とラベル付けされた第1の入力、最終アービタ650の出力に接続されている「DEC」とラベル付けされた第2の入力、及び出力を有する。未実行のリフレッシュカウンタ730の出力は、第1の比較器740及び第2の比較器750に、未実行のリフレッシュカウントを提供する。第1の比較器740はまた、プログラム可能な緊急リフレッシュリミットを受信するための第2の入力、及びリフレッシュコマンドに優先度インジケータを提供するための出力も含む。第2の比較器750はまた、プログラム可能な中間リフレッシュリミットを受信するための第2の入力、及び最終アービタ650にリフレッシュコマンド信号とともに優先度インジケータを提供するための「緊急」とラベル付けされた出力も含む。最終アービタ650は、保留中のリフレッシュキュー720及び未実行のリフレッシュカウンタ730に「リフレッシュ送信済み」信号を提供して、保留中のリフレッシュの数を追跡する。
動作中、リフレッシュ論理回路700は、tREFIを追跡するためのクロック信号を受信する。リフレッシュ論理回路700は、tREFIに基づいて中間リフレッシュ時間間隔を判定し、クロック信号及びメモリコントローラに割り当てられているバンクの総数に基づいてリフレッシュコマンドを提供する。各サイクルは、リフレッシュが送信されることなく中間期間が経過し、リフレッシュ内部タイマー705は、未実行のリフレッシュカウンタ730を増分するように信号を送る。バンクごとのタイマーアレイ710は、クロック信号を受信し、各メモリバンクに対応する保留中のリフレッシュキュー720にリフレッシュコマンドを提供する。保留中のリフレッシュキュー720は、リフレッシュコマンド及び優先度インジケータを最終アービタ650に提供する。リフレッシュ論理回路700は、保留中のリフレッシュの数にしたがって優先度インジケータの値を設定する。第1の比較器740は、未実行のリフレッシュの数を緊急リフレッシュリミットと比較し、未実行のリフレッシュカウンタ730が緊急リフレッシュリミットを超えると、保留中のリフレッシュコマンドに対する優先度インジケータを昇格させる。第2の比較器750は、未実行のリフレッシュの数を中間リフレッシュリミットと比較し、未実行のリフレッシュカウンタ730が中間リフレッシュカウント閾値を超えると、優先度インジケータを第1の優先度ステータスに設定する。
一部の実施形態では、リフレッシュ論理回路700は、2つのバンクごとのリフレッシュコマンドを生成する。リフレッシュ論理回路700は、優先度インジケータが第1の優先度ステータスであり、かつ、リフレッシュタイマーがリフレッシュタイミング間隔を超えたときに、ペアになっているバンクに対する保留中のリフレッシュコマンドに対する優先度インジケータを昇格させる。したがって、ペアになっているバンクの1つがページを閉じており、かつ、中間リフレッシュ間隔が経過しているとき、ペアになっているバンクの両方に対する優先度インジケータは、緊急リフレッシュステータスに昇格される。ターゲットバンクにおいてページが開かれていることに応答して、最終アービタ650は、両方のバンクをプリチャージする。
バンクごとのリフレッシュコマンドに対する中間優先度を示すことを選択することにより、リフレッシュ論理回路700は、アービタ538が、時間内に大部分のリフレッシュを送信して、緊急リフレッシュによるレイテンシの不利益を回避することが可能になる。さらに、メモリ帯域幅が増加するため、プロセッサのパフォーマンスを向上させることが可能となる。一例では、メモリ帯域幅の使用率は、バンクごとの中間リフレッシュが使用される場合、バンクごとのカジュアルなまたは緊急のリフレッシュのみのスキームが利用される場合と比べて、ダブルデータレートタイプの6つの同期グラフィックスランダムアクセスメモリ(GDDR6)において、約3%増大する。
図5、6、及び7の回路は、ハードウェア及びソフトウェアの様々な組み合わせにより実装され得る。例えば、ハードウェア回路は、プライオリティエンコーダ、有限状態機械、プログラマブル論理アレイ(PLA)などを含み得、アービタ538は、保留中のコマンドの相対的なタイミング適格性を評価するために格納されたプログラム命令を実行するマイクロコントローラとともに実装され得る。この場合、命令のいくつかは、マイクロコントローラによる実行のために、非一時的なコンピュータメモリまたはコンピュータ可読記憶媒体に格納され得る。様々な実施形態では、非一時的なコンピュータ可読記憶媒体は、磁気もしくは光ディスク記憶装置、フラッシュメモリなどのソリッドステート記憶装置、または他の不揮発性メモリデバイスもしくはデバイス(複数可)を含む。非一時的なコンピュータ可読記憶媒体に格納されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または1つ以上のプロセッサによって解釈されかつ/もしくは実行可能な他の命令フォーマットにあってもよい。
図1のAPU110または図5のメモリコントローラ500またはアービタ538といったその任意の部分は、プログラムによって読み取ることができ、集積回路を製造するために直接的または間接的に使用することができるデータベースまたは他のデータ構造の形式にあるコンピュータアクセス可能データ構造によって記述されまたは表されてもよい。例えば、このデータ構造は、VerilogまたはVHDLなどの高レベル設計言語(HDL)においてハードウェア機能性の動作レベル記述またはレジスタ転送レベル(RTL)記述であってもよい。記述は、合成ライブラリからのゲートのリストを含むネットリストを生成するために記述を合成し得る合成ツールによって読み取られてもよい。ネットリストは、集積回路を含むハードウェアの機能性をも表すゲートのセットを含む。それから、ネットリストは、マスクに適用されることになる幾何学的形状を記述したデータセットを生成するように配置かつ経路指定されてもよい。マスクは次いで、集積回路を生成するために様々な半導体製造工程において使用されてもよい。あるいは、コンピュータアクセス可能記憶媒体上のデータベースは、必要に応じてネットリスト(合成ライブラリの有無にかかわらず)もしくはデータセット、またはグラフィックデータシステム(GDS)IIデータであり得る。
特定の実施形態が説明されてきたが、これらの実施形態に対する様々な変更例が、当業者には明らかであろう。例えば、メモリコントローラ500の内部アーキテクチャ及び/またはアービタ538は、異なる実施形態において変化し得る。メモリコントローラ500は、例えば高帯域幅メモリ(HBM)、RAMバスDRAM(RDRAM)、同期グラフィックスランダムアクセスメモリなどの、DDRxメモリ以外の他のタイプのメモリにインターフェースし得る。図示の実施形態は、バンクごとの中間リフレッシュ時間間隔に対応するメモリの各バンクを示したが、他の実施形態では、メモリのペアになっているバンクの両方のバンクが、バンクごとの中間リフレッシュ時間間隔への応答をサポートすることができる。
したがって、開示された実施形態の範囲内に入る開示された実施形態の全ての変更例を網羅することが、添付の特許請求の範囲によって意図される。

Claims (36)

  1. メモリコントローラ(500)であって、
    メモリ(120)に対するメモリアクセス要求を受信し格納するコマンドキュー(520)と、
    第1のタイプのアクセス(610)及び第2のタイプのアクセスにしたがって、前記コマンドキュー(500)からアクセスを選択的に選択するためのアービタ(538)であって、前記第1のタイプのアクセス(620/630)及び前記第2のタイプのアクセスは、前記メモリ(120)における対応するメモリアクセスの異なるページステータスに対応する、前記アービタ(538)と、
    前記メモリのバンク(134)に対してリフレッシュコマンドを生成し、保留中のリフレッシュの数にしたがってその値が設定される優先度インジケータを前記リフレッシュコマンドとともに提供するためのリフレッシュ論理回路(532)と、
    前記第1のタイプのアクセス(610)及び前記第2のタイプのアクセス(620/630)のメモリアクセス要求に関して前記リフレッシュコマンドを前記優先度インジケータに基づいて選択的に順序付けるための最終アービタ(650)と、を備える、メモリコントローラ(500)。
  2. 前記リフレッシュ論理回路が、
    前記優先度インジケータに、第1の優先度ステータス及び第2の優先度ステータスのいずれかを割り当て、
    前記最終アービタが、前記第1の優先度ステータスに応答して、前記リフレッシュコマンドを、前記第1のタイプのアクセス(610)と前記第2のタイプのアクセス(620/630)の間に昇格させる、請求項1に記載のメモリコントローラ(500)。
  3. 前記最終アービタ(650)が、さらに、前記第2の優先度ステータスに応答して、前記リフレッシュコマンドを、前記第1のタイプのアクセス(610)及び前記第2のタイプのアクセス(620/630)よりも上に昇格させる、請求項2に記載のメモリコントローラ(500)。
  4. 前記リフレッシュ論理回路(532)が、
    バンクごとの保留中のリフレッシュの数をカウントするリフレッシュカウンタ(720)と、
    前記リフレッシュカウンタ(720)が所定の閾値を超えた場合、前記リフレッシュコマンドに前記第1の優先度ステータスを提供する、前記リフレッシュカウンタ(720)に結合されている比較器(750)と、を備える、請求項2に記載のメモリコントローラ(500)。
  5. 周期的期間(534)に基づいて、前記リフレッシュ論理回路(532)が、さらに、前記リフレッシュカウンタ(720)が下限閾値と上限閾値の間にあるときに、保留中のリフレッシュコマンドに対する前記優先度インジケータを昇格させる、請求項4に記載のメモリコントローラ(500)。
  6. 前記周期的期間が、所定のリフレッシュ間隔及び前記メモリコントローラに割り当てられているバンク(120)の総数から生じる、請求項5に記載のメモリコントローラ(500)。
  7. 前記リフレッシュ論理回路(532)が、さらに、プログラマブルカウンタ(730)に基づいて前記優先度インジケータを割り当て、前記プログラマブルカウンタ(730)は、保留中のリフレッシュコマンドの数を追跡する、請求項1に記載のメモリコントローラ(500)。
  8. 前記リフレッシュ論理回路(532)が、さらに、前記プログラマブルカウンタ(730)が緊急リフレッシュカウント閾値を超えたとき、保留中のリフレッシュコマンドに対する前記優先度インジケータを昇格させる、請求項7に記載のメモリコントローラ(500)。
  9. 前記第1のタイプのアクセス(620/630)がページヒットではなく、前記第2のタイプのアクセスがページヒットである(610)、請求項1に記載のメモリコントローラ(500)。
  10. 前記アービタ(538)が、サブ調停に基づいてアクセスを選択的に選択するための複数のサブアービタ(612/622/632)を備え、
    1つのサブ調停はページヒットであり(610)、他の各サブ調停はページヒットではない、請求項1に記載のメモリコントローラ(500)。
  11. 1つより多いバンクに対する優先度インジケータを同時に受信したことに応答して、前記最終アービタが、前記リフレッシュコマンドの最新の受信者である前記メモリ(134)の前記バンクの前記優先度インジケータを、前記リフレッシュコマンドの最古の受信者である前記メモリの前記バンクの下に降格させる、請求項1に記載のメモリコントローラ(500)。
  12. 前記メモリコントローラが、2つのバンクごとのリフレッシュをサポートすることが可能な同期グラフィックスランダムアクセスメモリにインターフェースするように適合されている、請求項1に記載のメモリコントローラ(500)。
  13. 前記リフレッシュ論理回路(532)が、さらに、前記優先度インジケータが第1の優先度ステータスであり、かつ、リフレッシュタイマー(730)がリフレッシュタイミング間隔を超えているとき、ペアになっているバンクにおける保留中のリフレッシュコマンドに対する優先度インジケータを昇格させる(700)、請求項12に記載のメモリコントローラ(500)。
  14. 前記リフレッシュ論理回路(532)が、さらに、プログラマブルカウンタ(730)が緊急リフレッシュカウント閾値を超え、かつ、前記ペアになっているバンクの両方のバンクが第1のタイプのアクセスを有するとき、保留中のリフレッシュコマンドに対する前記優先度インジケータを、前記ペアになっているバンクに対する第2の優先度ステータスへと昇格させる(700)、請求項13に記載のメモリコントローラ。
  15. メモリに対するメモリアクセス要求を提供するためのメモリアクセスエージェント(210/220)と、
    前記メモリアクセスエージェントに結合されているメモリシステム(120)と、
    前記メモリシステム及び前記メモリアクセスエージェント(210/220)に結合されているメモリコントローラ(500)と、を備え、
    前記メモリコントローラは、
    前記メモリアクセスエージェント(210/220)から受信したメモリアクセスコマンドを格納するためのコマンドキュー(520)、
    第1のタイプのアクセス(620/630)及び第2のタイプのアクセス(610)にしたがって、前記コマンドキュー(520)からメモリアクセスを選択的に選択するためのアービタ(538)であって、各タイプのアクセスは、前記メモリ(132)におけるバンク(134)の異なるページステータスに対応する、前記アービタ(538)、及び
    前記メモリ(132)の前記バンク(134)に対してリフレッシュコマンドを生成し、保留中のリフレッシュの数にしたがってその値が設定される優先度インジケータを前記リフレッシュコマンドに提供するリフレッシュ論理回路(532)から受信した入力に基づいて調停を行って、第1のタイプのアクセス及び第2のタイプのアクセスに関して前記リフレッシュコマンドを選択的に順序付ける最終アービタ(650)、を備える、データ処理システム(100)。
  16. 前記メモリコントローラ(500)が、
    前記優先度インジケータに、第1の優先度ステータス及び第2の優先度ステータスのいずれかを割り当て(700)、
    前記第1の優先度ステータスに応答して、前記リフレッシュコマンドを、前記第1のタイプのアクセスと前記第2のタイプのアクセスの間に昇格させる(700)、請求項15に記載のデータ処理システム(100)。
  17. 前記メモリコントローラ(500)が、さらに、クロックに部分的に基づいて前記優先度インジケータに前記第1の優先度ステータスを割り当て、
    前記クロックは、リフレッシュ間隔を追跡するためのものであり、
    前記メモリコントローラ(500)が、リフレッシュ時間間隔及び前記メモリコントローラに割り当てられているバンクの総数に基づいて、中間リフレッシュ時間間隔を判定する(705)、請求項16に記載のデータ処理システム(100)。
  18. 前記中間リフレッシュ時間間隔が、前記リフレッシュ時間間隔よりも短い期間である、請求項17に記載のデータ処理システム(100)。
  19. 前記中間リフレッシュ時間間隔に応答して、前記メモリコントローラ(500)が、前記リフレッシュ間隔よりも高い頻度で前記バンクに対して前記リフレッシュコマンドを生成する、請求項17に記載のデータ処理システム(100)。
  20. 前記メモリコントローラ(500)がさらに、
    リフレッシュカウンタ(720)の所定の閾値に基づいて前記優先度インジケータを割り当て、前記リフレッシュカウンタ(720)は、前記メモリにおけるバンクごとの保留中のリフレッシュの数をカウントするものであり、
    前記リフレッシュカウンタ(720)が下限閾値と上限閾値の間にあるとき、周期的な時間サイクルに基づいて、保留中のリフレッシュコマンドに対する前記優先度インジケータを昇格させる、請求項15に記載のデータ処理システム(100)。
  21. 前記メモリコントローラ(500)が、さらに、プログラマブルカウンタ(730)に基づいて、前記優先度インジケータに第2の優先度ステータスを割り当てる、請求項15に記載のデータ処理システム(100)。
  22. 前記メモリコントローラ(500)が、前記第2の優先度ステータスに応答して、前記リフレッシュコマンドの前記優先度インジケータを、前記第1のタイプのアクセス及び前記第2のタイプのアクセスよりも上に昇格させる、請求項21に記載のデータ処理システム(100)。
  23. 前記メモリコントローラが、前記第2の優先度ステータスのアサーションに応答して、対応するメモリのバンクが開くことをブロックする、請求項21に記載のデータ処理システム(100)
  24. 前記アービタが複数のサブアービタを備え、前記複数のサブアービタは、サブ調停に基づいてアクセスを選択的に選択するためのものであり、1つのサブ調停はページヒットであり、他の各サブ調停はページヒットではない、請求項15に記載のデータ処理システム。
  25. 前記メモリアクセスエージェント(210/220)が、
    中央処理装置コア(210)と、
    グラフィックスプロセッシングユニットコア(220)と、
    前記中央処理装置コア及び前記グラフィックスプロセッシングユニットコアを前記メモリコントローラ(500)に相互接続するためのデータファブリック(250)と、を備える、請求項15に記載のデータ処理システム(100)。
  26. 前記メモリ(120)が高帯域幅メモリである、請求項15に記載のデータ処理システム(100)。
  27. メモリコントローラ(500)を介してメモリシステムにおけるメモリのリフレッシュを管理する方法であって、
    複数のメモリアクセス要求を受信することと、
    前記複数のメモリアクセス要求をコマンドキュー(520)に格納することと、
    前記メモリ(120)における対応するメモリアクセスの異なるページステータスに対応する第1のタイプのアクセス及び第2のタイプのアクセスにしたがって、前記コマンドキュー(520)からメモリアクセス要求を選択的に選択することと、
    前記メモリ(120)のバンク(134)に対してリフレッシュコマンドを生成し、優先度インジケータを前記リフレッシュコマンドとともに提供する(700)ことと、
    前記優先度インジケータに基づいて、前記第1のタイプのアクセス及び前記第2のタイプのアクセスのメモリアクセス要求に関して前記リフレッシュコマンドを選択的に順序付ける(532/650)ことと、を含む、方法。
  28. 前記リフレッシュコマンドに前記優先度インジケータを提供する(532)ことが、さらに、
    前記優先度インジケータに、第1の優先度ステータス及び第2の優先度ステータスのいずれかを割り当てる(700)ことと、
    前記第1の優先度ステータスに応答して、前記リフレッシュコマンドを、前記第1のタイプのアクセスと前記第2のタイプのアクセスの間に昇格させる(700)ことと、
    前記第2の優先度ステータスに応答して、前記リフレッシュコマンドを、前記第1のタイプのアクセス及び前記第2のタイプのアクセスよりも上に昇格させる(700)ことと、を含む、請求項27に記載の方法。
  29. リフレッシュカウンタ(720)の所定の閾値に基づいて前記優先度インジケータを割り当てることをさらに含み、前記リフレッシュカウンタ(720)は、前記メモリにおけるバンクごとの保留中のリフレッシュの数をカウントする(720)、請求項27に記載の方法。
  30. 前記リフレッシュカウンタ(720)が下限閾値と上限閾値の間にあるとき、周期的期間に基づいて、保留中のリフレッシュコマンドに対する前記優先度インジケータを昇格させることをさらに含む、請求項29に記載の方法。
  31. 前記周期的期間が、所定のリフレッシュ間隔及び前記メモリコントローラ(500)に割り当てられているバンクの総数から生じる、請求項30に記載の方法。
  32. プログラマブルカウンタ(730)に基づいて前記優先度インジケータを割り当てることをさらに含み、前記プログラマブルカウンタ(730)は、スケジュールされかつ未完成のリフレッシュコマンドの数を追跡する(700)、請求項27に記載の方法。
  33. 前記プログラマブルカウンタ(730)が緊急リフレッシュカウント閾値を超えたとき、保留中のリフレッシュコマンドに対する前記優先度インジケータを昇格させる(700)ことをさらに含む、請求項32に記載の方法。
  34. 前記第1のタイプのアクセスがページヒットではなく(620/630)、前記第2のタイプのアクセスがページヒットである(610)、請求項27に記載の方法。
  35. サブ調停(610/620/630)に基づいてアクセスを選択的に選択することをさらに含み、アービタは、複数のサブアービタ(612/622/633)を備え、1つのサブ調停はページヒットであり、他の各サブ調停はページヒットではない(612/622/632)、請求項27に記載の方法。
  36. 前記リフレッシュコマンドが、選択されたバンク(134)に対するものである、請求項27に記載の方法。
JP2020564249A 2018-07-16 2019-06-21 メモリコントローラのリフレッシュスキーム Pending JP2022514128A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201810775044.XA CN110729006B (zh) 2018-07-16 2018-07-16 存储器控制器中的刷新方案
CN201810775044.X 2018-07-16
US16/038,738 2018-07-18
US16/038,738 US10593391B2 (en) 2018-07-16 2018-07-18 Refresh scheme in a memory controller
PCT/US2019/038541 WO2020018234A1 (en) 2018-07-16 2019-06-21 A refresh scheme in a memory controller

Publications (1)

Publication Number Publication Date
JP2022514128A true JP2022514128A (ja) 2022-02-10

Family

ID=69139641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020564249A Pending JP2022514128A (ja) 2018-07-16 2019-06-21 メモリコントローラのリフレッシュスキーム

Country Status (6)

Country Link
US (1) US10593391B2 (ja)
EP (1) EP3824466A4 (ja)
JP (1) JP2022514128A (ja)
KR (1) KR20210021302A (ja)
CN (1) CN110729006B (ja)
WO (1) WO2020018234A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010085405A1 (en) * 2009-01-22 2010-07-29 Rambus Inc. Maintenance operations in a dram
US10475519B2 (en) 2018-03-23 2019-11-12 Micron Technology, Inc. Methods for detecting and mitigating memory media degradation and memory devices employing the same
JP2020170315A (ja) * 2019-04-02 2020-10-15 キヤノン株式会社 アクセス管理装置
CN110265029A (zh) * 2019-06-21 2019-09-20 百度在线网络技术(北京)有限公司 语音芯片和电子设备
KR20210012439A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법
US11222685B2 (en) * 2020-05-15 2022-01-11 Advanced Micro Devices, Inc. Refresh management for DRAM
US11561862B2 (en) * 2020-05-29 2023-01-24 Advanced Micro Devices, Inc. Refresh management for DRAM
US11809743B2 (en) * 2020-09-21 2023-11-07 Advanced Micro Devices, Inc. Refresh management list for DRAM
CN112259141B (zh) * 2020-10-27 2023-11-03 海光信息技术股份有限公司 动态随机存取存储器的刷新方法及内存控制器、电子装置
CN112382321B (zh) * 2020-11-12 2024-05-31 海光信息技术股份有限公司 动态随机存取存储器的刷新方法及内存控制器、电子装置
US11755235B2 (en) * 2020-11-13 2023-09-12 Ciena Corporation Increasing random access bandwidth of a DDR memory in a counter application
CN112650697B (zh) * 2020-12-24 2023-04-18 西安翔腾微电子科技有限公司 一种基于ddr3存储控制器接口的多个主设备的仲裁电路
US11669274B2 (en) * 2021-03-31 2023-06-06 Advanced Micro Devices, Inc. Write bank group mask during arbitration
KR20230045774A (ko) 2021-09-29 2023-04-05 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
WO2023182992A1 (en) * 2022-03-24 2023-09-28 Google Llc Efficient dram refresh management using graded refresh alert levels

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09259031A (ja) * 1996-03-27 1997-10-03 Hitachi Ltd フレームメモリアクセス制御方法
JPH1011964A (ja) * 1996-06-28 1998-01-16 Toshiba Corp メモリ制御装置およびメモリ制御方法
JPH10149311A (ja) * 1996-11-20 1998-06-02 Ricoh Co Ltd メモリ制御装置
JP2004500667A (ja) * 2000-04-03 2004-01-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 改良されたメモリリクエスト調停機構を有するメモリコントローラを含むバスブリッジ
WO2018013157A1 (en) * 2016-07-15 2018-01-18 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179667A (en) * 1988-09-14 1993-01-12 Silicon Graphics, Inc. Synchronized DRAM control apparatus using two different clock rates
KR0142795B1 (ko) * 1994-12-01 1998-08-17 문정환 디램 리프레쉬 회로
US5557578A (en) 1995-05-01 1996-09-17 Apple Computer, Inc. Dynamic memory refresh controller and method
JPH09288614A (ja) 1996-04-22 1997-11-04 Mitsubishi Electric Corp 半導体集積回路装置、半導体記憶装置およびそのための制御回路
US6286083B1 (en) 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6356485B1 (en) 1999-02-13 2002-03-12 Integrated Device Technology, Inc. Merging write cycles by comparing at least a portion of the respective write cycle addresses
FR2797970A1 (fr) * 1999-08-31 2001-03-02 Koninkl Philips Electronics Nv Adressage d'une memoire
US6804758B2 (en) 2001-06-29 2004-10-12 Xgi Technology Inc. Method for adaptive arbitration of requests for memory access in a multi-stage pipeline engine
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7426621B2 (en) 2005-12-09 2008-09-16 Advanced Micro Devices, Inc. Memory access request arbitration
US7617368B2 (en) 2006-06-14 2009-11-10 Nvidia Corporation Memory interface with independent arbitration of precharge, activate, and read/write
US8271746B1 (en) 2006-11-03 2012-09-18 Nvidia Corporation Tiering of linear clients
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US9104599B2 (en) * 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US7734856B2 (en) 2007-08-22 2010-06-08 Lantiq Deutschland Gmbh Method for operating a plurality of arbiters and arbiter system
US9195618B2 (en) 2009-06-16 2015-11-24 Nvidia Corporation Method and system for scheduling memory requests
WO2011033811A1 (ja) * 2009-09-16 2011-03-24 シャープ株式会社 表示装置および表示装置の駆動方法
US8615629B2 (en) 2010-01-18 2013-12-24 Marvell International Ltd. Access scheduler
US8392650B2 (en) * 2010-04-01 2013-03-05 Intel Corporation Fast exit from self-refresh state of a memory device
US8285892B2 (en) 2010-05-05 2012-10-09 Lsi Corporation Quantum burst arbiter and memory controller
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9075710B2 (en) * 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US10956044B2 (en) * 2013-05-16 2021-03-23 Advanced Micro Devices, Inc. Memory system with region-specific memory access scheduling
US9313164B2 (en) * 2013-06-24 2016-04-12 Qualcomm Incorporated Updating rich communication suite capability information over a communications network
US9281046B2 (en) 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method
AR099040A1 (es) * 2014-01-09 2016-06-22 Qualcomm Inc Sistemas y métodos de comunicación de canal de retorno de la memoria dinámica de acceso aleatorio (dram)
WO2016176807A1 (zh) * 2015-05-04 2016-11-10 华为技术有限公司 一种dram刷新方法、装置和系统
KR102321793B1 (ko) * 2015-08-12 2021-11-08 삼성전자주식회사 플렉시블 리프레쉬 스킵 영역을 운영하는 반도체 메모리 장치
KR102399475B1 (ko) * 2015-12-28 2022-05-18 삼성전자주식회사 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치
US9576637B1 (en) 2016-05-25 2017-02-21 Advanced Micro Devices, Inc. Fine granularity refresh
US11675659B2 (en) * 2016-07-15 2023-06-13 Advanced Micro Devices, Inc. DDR memory error recovery
US10402120B2 (en) * 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller arbiter with streak and read/write transaction management
JP6697360B2 (ja) * 2016-09-20 2020-05-20 キオクシア株式会社 メモリシステムおよびプロセッサシステム
KR20180075761A (ko) * 2016-12-26 2018-07-05 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템, 및, 그의 리프레시 동작방법
US9997212B1 (en) * 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10109339B1 (en) * 2017-07-28 2018-10-23 Micron Technology, Inc. Memory devices with selective page-based refresh
JP6806019B2 (ja) * 2017-09-26 2020-12-23 オムロン株式会社 制御装置
US10297304B1 (en) * 2017-11-12 2019-05-21 Nanya Technology Corporation Memory device and operating method thereof
JP6576480B2 (ja) * 2018-01-16 2019-09-18 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリデバイス及びそのデータリフレッシュ方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09259031A (ja) * 1996-03-27 1997-10-03 Hitachi Ltd フレームメモリアクセス制御方法
JPH1011964A (ja) * 1996-06-28 1998-01-16 Toshiba Corp メモリ制御装置およびメモリ制御方法
JPH10149311A (ja) * 1996-11-20 1998-06-02 Ricoh Co Ltd メモリ制御装置
JP2004500667A (ja) * 2000-04-03 2004-01-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 改良されたメモリリクエスト調停機構を有するメモリコントローラを含むバスブリッジ
WO2018013157A1 (en) * 2016-07-15 2018-01-18 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
US20180018291A1 (en) * 2016-07-15 2018-01-18 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces

Also Published As

Publication number Publication date
CN110729006A (zh) 2020-01-24
CN110729006B (zh) 2022-07-05
WO2020018234A1 (en) 2020-01-23
US10593391B2 (en) 2020-03-17
KR20210021302A (ko) 2021-02-25
US20200020384A1 (en) 2020-01-16
EP3824466A4 (en) 2022-04-06
EP3824466A1 (en) 2021-05-26

Similar Documents

Publication Publication Date Title
US10593391B2 (en) Refresh scheme in a memory controller
US10684969B2 (en) Command arbitration for high speed memory interfaces
US10402120B2 (en) Memory controller arbiter with streak and read/write transaction management
JP6761870B2 (ja) 低電力メモリのスロットリング
US11669274B2 (en) Write bank group mask during arbitration
US11625352B2 (en) DRAM command streak management
EP3270294B1 (en) Command arbitration for high-speed memory interfaces
US20210357336A1 (en) Efficient memory bus management
US11687281B2 (en) DRAM command streak efficiency management

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230718

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240131

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20240213

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20240531