JP6130594B2 - 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法 - Google Patents

信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法 Download PDF

Info

Publication number
JP6130594B2
JP6130594B2 JP2016519863A JP2016519863A JP6130594B2 JP 6130594 B2 JP6130594 B2 JP 6130594B2 JP 2016519863 A JP2016519863 A JP 2016519863A JP 2016519863 A JP2016519863 A JP 2016519863A JP 6130594 B2 JP6130594 B2 JP 6130594B2
Authority
JP
Japan
Prior art keywords
memory
row
time
access
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.)
Active
Application number
JP2016519863A
Other languages
English (en)
Other versions
JP2016536666A (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 JP2016536666A publication Critical patent/JP2016536666A/ja
Application granted granted Critical
Publication of JP6130594B2 publication Critical patent/JP6130594B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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
    • 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/1668Details of memory controller
    • 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

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)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本開示は、概してデータ処理システムに関し、より具体的には、メモリコントローラを有するデータプロセッサに関する。
コンピュータシステムは、通常、安価で高密度なダイナミックランダムアクセスメモリ(DRAM)チップで構成されたメインメモリを利用している。DRAMチップの第1のロウ(ROW)がアクティベートされると、第1のロウのメモリセルのコンテンツがページバッファに読み出される。これ以降の第1のロウのメモリセルに対する読み出し及び書き込みアクセスは、第1のロウに再度アクセスすることなく、全てページバッファにおいて行われ得る。その後、データプロセッサが同じメモリバンクの第2のロウにアクセスする場合には、第1のロウのメモリセルは、第2のロウがアクティベートされる前にプリチャージ動作においてリストアされる。そして、データプロセッサは、同じメモリバンクの第1のロウに再度アクセス可能となる。
最新のDRAMチップは、一般的に、ディープサブミクロン技術を使用して、1〜8ギガバイト(Gb)のデータを記憶する。メモリの各ロウは、高密度かつ小さいフィーチャサイズのために、他のロウと物理的に非常に接近している。このため、特定のロウがアクティベートされると、隣接するロウにおけるメモリセルキャパシタの電荷が変更され、隣接するロウに記憶されたデータを狂わせ(アップセット(upset)し)得る。通常、かかるアップセットは、メモリセルが定期的にリフレッシュされるので、無害である。しかしながら、いくつかのメモリアクセスパターンは、不定期に、あるロウを次のリフレッシュサイクルよりも前に何回もアクティベート及びプリチャージさせるので、隣接するロウ内のメモリセルが破損されて逆の論理状態となる。破損後には、元のデータが失われ、以降のリフレッシュサイクルにおいて復元不可能となる。
データのアップセットに影響を受けやすいダイナミックランダムアクセスメモリ(DRAM)を示すブロック図である。 いくつかの実施形態による、図1のメモリを組込むことの可能なデュアルインラインメモリモジュール(DIMM)の平面図である。 いくつかの実施形態による、メモリコントローラを有するマイクロプロセッサを示すブロック図である。 いくつかの実施形態による、図3のメモリコントローラを示すブロック図である。 いくつかの実施形態による、図4のメモリコントローラ等のメモリコントローラの一部を示すブロック図である。 図4のメモリコントローラの動作を理解する上で役立つタイミング図である。 いくつかの実施形態による、データ処理システムを示すブロック図である。 図4のメモリコントローラに使用される方法のフローチャートを示す図である。
以降の説明では、異なる図面において同一の符号を使用することによって、同様または同一のアイテムを示す。特に断りのない限り、「接続された(coupled)」という単語及びこれに関連する動詞には、当該技術分野において周知の手段によって直接接続及び間接的な電気接続の両方の意味が含まれている。そして、特に断りのない限り、直接接続に関する任意の説明には、好適な形態の間接的な電気接続を用いた代替的な実施形態も含まれる。
以降に開示されるデータプロセッサは、ロウサイクルページ時間(tRCPAGE)を考慮してアクセスをスケジュールするメモリコントローラにおけるデータ破損問題に対処する。ロウサイクルページ時間は、所定の時間窓における、メモリ内のロウに対するアクティベートコマンド(activate commands)の許容数を示している。データプロセッサは、メモリコントローラに提供するメモリアクセスを生成するメモリアクセスエージェントを備える。メモリコントローラは、メモリアクセスエージェントに接続されており、ロウサイクルページ時間を含むアクセススケジュールを、メモリの特性に基づく順序で生成する。
一形態において、メモリの第1のページに対する第1のメモリアクセスがディスパッチされる。メモリの第1のページに対する第2のメモリアクセスが受信されたときに、第2のメモリアクセスのディスパッチは、第1のメモリアクセスのディスパッチからの経過時間がロウサイクルページ時間より長くなるまで禁止される。
図1は、データのアップセットに影響を受けやすいメモリ100を示すブロック図である。メモリ100は、ダイナミックランダムアクセスメモリ(DRAM)であって、概して、ロウパス(row path)110と、8つのメモリバンク120と、カラム回路140と、データパス150と、「DQ」と表示された代表的な1つのデータパッドセット160と、を備えている。
ロウパス110は、例えば、「バンク0」と表示された第1のバンクに対するロウアドレスラッチデコーダ(row address latch and decoder)112や、「バンク7」と表示された最後のバンクに対するロウアドレスラッチデコーダ114等のように、各バンクに対するロウアドレスラッチデコーダを備える。ロウパス110は、「A[13:0]」と表示されたロウアドレスと「BA[2:0]」と表示されたバンクアドレスとを受信するためのインプットセットと、アウトプットセットと、を有している。8つのメモリバンク120の各々は、例えばバンク0のメモリアレイ122及びページバッファ124等のように、関連するメモリアレイ及びページバッファを備えている。8つのメモリバンク120の各々は、対応するロウアドレスラッチデコーダのアウトプットセットに接続されたインプットセットを有している。
カラム回路140は、カラムスイッチ142のセットと、カラムデコーダ144と、を備えている。カラムスイッチ142のセットは、各メモリバンク120のページバッファに接続されており、カラム選択信号を受信するためのインプットセットを有している。カラムデコーダ144は、8つのバンクのうちBA[2:0]によって選択された1つのカラムを選択するためにインプットA[13:0]上で実行されるカラムアドレスを受信するインプットセットと、カラムスイッチ142のインプットに接続されたアウトプットセットと、を有している。
データパス150は、読出しデータパス152と、書込みデータパス154と、を備えている。読出しデータパス152は、カラムスイッチ142に接続されたインプットセットと、データパッド160に接続されたアウトプットセットと、を有している。書込みデータパス154は、データパッド160に接続されたインプットセットと、カラムスイッチ142に接続されたアウトプットセットと、を有している。
メモリ100は、動作中、一実施形態においてメモリバンクでの並行動作を許可する。メモリ100は、例えばDDR3またはDDR4等のように電子素子技術連合評議会(JEDEC)が公表したダブルデータレート(DDR)規格のうち1つの規格に対する互換性を有する。例えばデータプロセッサ等のメモリアクセスエージェントは、データにアクセスするために、アクティベート(ACT)コマンドを発行してメモリバンク内のロウをアクティベートする。選択されたロウ(例えば、バンク0内のロウ125等)のメモリセルのデータは、ACTコマンドに応じて、対応するページバッファ(例えば、ページバッファ124等)に記憶される。DRAMでは、データ読出しがメモリセルのコンテンツに対して破壊的である一方で、データのコピーがページバッファ124に記憶される。メモリアクセスエージェントは、ロウ125内のデータへのアクセスを終了した後に、プリチャージ(PRE)コマンドを発行してロウを閉じる。ページバッファ124内のデータは、PREコマンドによって、ロウ125のダイナミックメモリセルに復元される。
メモリ100がDRAMであることから、メモリセルの電荷はゆっくりと漏電する。このため、データは定期的にリフレッシュされる必要がある。リフレッシュ間隔(tREFI)は、脆弱なメモリセルが漏電によって保有コンテンツを失うであろう時間に基づくものである。例えば、DDR4 DRAMにおいて、tREFIは、通常の環境では7.8マイクロ秒(μs)に等しい。
先進的なディープサブミクロン製造プロセスを用いて構成されたDRAMにおいて、所定のロウの度重なるアクティベーションは、物理的に隣接するロウのメモリセルに記憶されたデータをアップセットし得る。例えば、ロウ125がアクティベート及びプリチャージされる度に、隣接するロウ126,127のメモリセルの電荷が変更される。ロウ126,127のメモリセルがリフレッシュされる前にロウ125があまりにも頻繁にアクティベート及びプリチャージされると、ロウ126,127のデータが破損する場合がある。
メモリを再設計することなくデータ破損問題を緩和するために、発明者は、1つのリフレッシュ間隔内に所定のロウのメモリセルがアクティベートされる回数を考慮して、アクセススケジュールを生成するメモリコントローラを有するデータプロセッサを開発した。例えば、メモリコントローラは、アクセス率が高すぎる場合に、特定の時間が経過するまでアクセスを遅延させる。この時間は、リフレッシュ時間窓においてメモリが安全にアクセスできる回数に関連する。
図2は、いくつかの実施形態による、図1のメモリを組込むことが可能なデュアルインラインメモリモジュール(DIMM)200の平面図である。DIMM200は、概して、メモリチップ210のセットと、直列プレゼンス検出(SPD)読出し専用メモリ(ROM)220と、を多層プリント配線基板(PCB)上に備えている。メモリチップ210は、それぞれ図1のメモリ100に対応し得る8つのx8メモリチップを備えている。いくつかの実施形態において、メモリチップ210は、DDR3 SDRAMである。いくつかの実施形態において、メモリチップ210は、DDR4 SDRAMである。
いくつかの実施形態において、DIMM200は、メモリチップ210のように配置された第2のメモリデバイスセットを基板の裏側に有してもよいことに留意されたい。いくつかの実施形態において、各メモリチップは、チップ毎に複数のランクを形成するために、チップオンチップ又は積層ダイ技術が用いられた複数のメモリダイを有する半導体パッケージを含み得る。さらに、DIMM200は、図1のメモリ100のようなメモリチップを使用可能なメモリシステムの代表的なものである。別の実施形態において、メモリ100は、シングルインラインメモリモジュール(SIMM)に用いられてもよいし、データプロセッサチップとして同一のPCBに搭載されてもよい。
SPD ROM220は、DIMM200の様々な特性を示す値を記憶する。JEDECは、これらのビットの位置と意味を、例えばDDR3 DRAMに関する規格JESD21−Cの添付Kに定めている。最近では、データアップセット問題に対するメモリチップ210の感受性(susceptibility)を製造者が明示することを可能にする、SPD規格に対する追加が提案されている。従って、図2に示すように、SPD ROM220は、メモリのデータアップセット特性値に関連するフィールドを有するバイト222を備えている。バイト222は、以前のバージョンのSPD ROMの仕様によって確保されていたSPD ROM220内のアドレス(例えば、バイト$41等)に配置されている。
バイト222は、予備のビット[7:6]と、最大アクティベートウィンドウ(tMAW)を定義するビット[5:4]と、「無制限MAC」と表されたビット[3]と、最大アクティビティカウント(MAC)を定義する[2:0]と、を含む。これらのビットの意味は、以下の通りである。ビット[3]が「1」に設定される場合には、メモリチップ210内のロウは、データを破損することなく無制限の回数でアクティベート可能であり、ビット[2:0]には000が設定される。この設定は、例えば、ACT率に関わらずエラーが全く予期されないほど、データアップセットの十分小さい設計に対応している。ビット[3]が「0」に設定される場合には、ビット[2:0]は、ビット[5:4]においてtMAWにより定義される期間にわたるMACを定義する。例えば、図2に示すように、ビット[5:4]が00、ビット[3]が0、ビット[2:0]が100に設定される場合には、メモリチップ210内のロウは、データアップセット問題による破損なしに、64ミリ秒(ms)時間窓内で400,000回までアクティベート可能である。SPD ROM220のバイト222にこれらの特性値を記憶することは、ACT率を特定する技術の一つに過ぎないことが理解されるべきである。
後述するように、メモリコントローラは、MAC及びtMAWに基づくロウページサイクル時間(tRCPAGE)として知られる値に応じて、最後のアクティベートからロウページサイクル時間が経過するまで、同一のロウに対するアクティベートを選択的に禁止する。メモリコントローラは、アクティベートが頻繁に行らないことを確実にすることによって、データアップセット問題によるデータ破損を回避できる。
図3は、いくつかの実施形態による、メモリコントローラ342を有するデータプロセッサ300を示すブロック図である。データプロセッサ300は、概して、CPU部310と、GPUコア320と、相互接続回路330と、メモリアクセスコントローラ340と、入出力コントローラ350と、を備えている。
CPU部310は、それぞれ「コア0」、「コア1」、「コア2」、「コア3」と表されたCPUコア311〜314と、共有3次(L3)キャッシュ316と、を備えている。各CPUコアは、命令セットからの命令を実行可能であり、一意のプログラムスレッドを実行し得る。各CPUコアは、自ら1次(L1)及び2次(L2)キャッシュを備えるが、共有L3キャッシュ316は、全てのCPUコアに共通であって、共有される。共有L3キャッシュ316は、メモリアクセスエージェントとして動作し、キャッシュラインフィルに関するメモリ読出しバーストと、キャッシュラインライトバックに関するメモリ書込みバーストと、を含むメモリアクセス要求を提供する。
GPUコア320は、オンチップグラフィックプロセッサであって、メモリアクセスエージェントとして動作する。
相互接続回路330は、概して、システム要求インターフェイス(SRI)/ホストブリッジ332と、クロスバー334と、を一般に備える。SRI/ホストブリッジ332は、共有L3キャッシュ316及びGPUコア320からのアクセス要求のキューを生成し、未処理のトランザクション及びこれらのトランザクションの完了を管理する。クロスバー334は、5つの双方向ポート間のクロスポイントスイッチであり、そのうち1つのポートは、SRI/ホストブリッジ332に接続されている。
メモリアクセスコントローラ340は、オフチップDRAMに接続するために、クロスバー334に接続された双方向ポートを有している。メモリアクセスコントローラ340は、概して、メモリコントローラ342と、「PHY」と表された物理インターフェース回路344と、を備えている。メモリコントローラ342は、CPUコア311〜314及びGPUコア320からの要求に対して特定の読出し及び書込しトランザクションを生成し、関連するアドレスに関してトランザクションをまとめる。メモリコントローラ342は、DRAMの初期化、リフレッシュ、ページの開閉、メモリバスの効率的な使用のためのトランザクションのグループ化等のオーバーヘッドに対処する。物理インターフェース回路344は、物理的シグナリングを管理することによって、例えばDIMM等の外部DRAMに対してインターフェースを提供する。メモリコントローラ342及び物理インターフェース回路344は共に、少なくとも1つの特定のメモリタイプをサポートしており、例えばDDR3及びDDR4の両方に対応してもよい。
入出力コントローラ350は、1つ以上の高速インターフェースコントローラを備えている。例えば、入出力コントローラは、ハイパートランスポートリンクプロトコルに応じた3つのインターフェースコントローラを備えてもよい。
データプロセッサ300は、CPUコア及びGPUコアの両方を備えていることから、加速処理ユニット(APU)として知られている。この多様なデータアクセスエージェントは、データアップセット問題を引き起こす可能性のあるいくつかのアクセスパターンを生成し得る。例えば、CPUコア311〜314のうち1つのCPUコアは、同一のメモリロウの頻繁なアクティベーションを引き起こすパターンにおいて、メモリに記憶されたデータをストライドするプログラムスレッドを実行し得る。別の例では、CPUコア311〜314のうち1つのCPUコアまたはGPUコア320は、同一のロウのデータ及びキャッシュ不可領域のデータにアクセスを繰り返し得る。さらに別の例では、CPUコア311〜314のうち複数のCPUコアまたはGPUコア320は、同一のデータ要素にアクセスして修正を行い得る。この場合、共有L3キャッシュ316は、1つのコアによって修正されたデータに対して別のコアがアクセスする度に、メインメモリを更新するポリシーに従い得る。他のシナリオも可能である。
図4は、いくつかの実施形態による、図3のメモリコントローラ342を示すブロック図である。メモリコントローラ342は、キュー410と、アービタ420と、マルチプレクサ430と、を備える。キュー410は、クロスバー334から受信したメモリアクセス要求を記憶する。メモリアクセス要求は、メモリの任意のバンクに対する読出し又は書込みサイクルとなり得る。また、メモリアクセス要求は、データプロセッサ300の何れか1つのメモリアクセスエージェントによって生成される。図4の例において、キュー410は、全てのバンク及びランクに対する合計16のエントリを有しており、各エントリは、アクセスアドレスと、書込みサイクルの場合にはデータと、その相対年代(relative age)を示すタグと、を記憶する。アービタ420は、エントリの属性を読み出すためにキュー410の各エントリに双方向に接続されており、ディスパッチされたアクセスを受信する追加インプットと、ACT及びPREコマンド等のプロトコルコマンドを提供するアウトプットと、物理インターフェース回路344に対して送信する16エントリのうち1つのエントリを選択する制御アウトプットと、を有している。マルチプレクサ430は、キュー410の各エントリに接続された16のインプットと、アービタ420のアウトプットに接続された追加インプットと、アービタ420のアウトプットに接続された制御インプットと、物理インターフェース回路344に対してディスパッチされたアクセスを提供するアウトプットと、を有している。
動作中、キュー410は、クロスバー334から受信したアクセスを記憶し、その相対年代を示すようにタグを割当てる。アービタ420は、キュー410の何れの保留中アクセスを次のスケジュール対象として物理インターフェース回路344にディスパッチするかを、タイミング適格性、経過時間、公平性等のポリシーのセットに基づいて決定する。このため、アービタ420は、メモリシステムの各バンク及びランク内で開かれているページを示すページテーブルを備え得る。一般的に、アービタ420は、同一のロウに対する複数のアクセスを一緒にスケジュールする一方で、同一のバンク内の別のロウに対するより古いアクセスを遅らせることによって、メモリシステムバスの効率性を向上させることが可能である。従って、アービタ420は、アクティベート中のロウとは異なるロウに対するアクセスを選択的に延期することにより、効率性を向上させる。また、アービタ420は、アクセスの待ち時間を制限するために、エントリの年代タグを使用する。従って、アービタ420は、メモリ内のあるページへのアクセスが特定の時間保留されている場合に、メモリ内の別の開いたページに対する一連のアクセスを中断する。また、アービタ420は、オーバーヘッドに対処するために、所定のメモリバンクに対するACT及びPREコマンドの間に別のメモリバンクに対するアクセスをスケジュールする。
また、アービタ420は、同一のロウに対して繰り返されるACT及びPREサイクルによって生じるデータアップセット問題によるデータ破損を回避するために、タイミング適格性を判定する。アービタ420は、データ破損を回避するために、所定の時間窓(tMAW)内における、メモリ内のロウに対するアクティベートコマンドの許容数(すなわち、MAC)に反比例するロウサイクルページ時間(tRCPAGE)という新たなタイミングパラメータを定義する。
いくつかの実施形態において、tRCPAGEは、MAC数によって分割された時間窓tMAWと近似可能であり、すなわちtRCPAGE=tMAW/MACと表される。例えば、リフレッシュ間隔が64msであって、MAC数が400Kである場合には、tRCPAGE=64ms/400,000=160ナノ秒(ns)となる。アービタ420は、160ナノ秒の時間窓において同一のロウに対してACTコマンドとなる命令をディスパッチしないことによって、データアップセット問題によるデータ破損を回避し得る。
別の実施形態において、tRCPAGEは、リフレッシュ時間を考慮した2次計算に従って決定され得る。各リフレッシュ(REF)コマンドがtRFCと等しい時間を消費する場合には、tMAWは、tRFCに対してtMAW内のリフレッシュサイクルの回数を掛けた時間分削減され得る。すなわち、tRCPAGE=(tMAW−tRFC*(tMAW/tREFI))/MACと表される。DDR4 DRAMの異なるDRAM密度に関するtRCPAGEの例示的計算を、以下の表1に示す。
Figure 0006130594
例えば、リフレッシュ間隔(tREFI)が7.8μs(7.8125μs)である場合、64msの基準間隔において、各ロウは、8192回リフレッシュされ得る。リフレッシュ時間が160nsの場合には、64msの間隔において、1,310,720nsがリフレッシュに費やされる。従って、有効基準間隔は、62,689,280nsである。当該間隔において可能なACTの理論値は、62,689,280/tRC=1,319,774である。一方、tRCPAGEは、62,689,280/100,000=626.89nsである。従って、DRAM製造者が64msの基準窓において100Kアクセスのみを許可する場合には、メモリアクセスコントローラ340は、同一のロウに対するACTが626.89nsごとに2度以上起こらないことを確実にしなければならない。
図5は、いくつかの実施形態による、図4のメモリコントローラ400等のメモリコントローラの一部500を示すブロック図である。一部500は、マルチプレクサ430と、代表適格性回路(representative eligibility circuit)510及び代表エントリ準備回路(representative entry ready circuit)520を備えるアービタ420の一部と、を示している。
適格性回路510は、j番目の適格性回路であり、適格性回路セットの代表である。アービタ420は、経過時間がtRCPAGEよりも短い可能ACTの数に対して十分なアドレスレジスタ及びカウンタのみを必要とする。このため、アービタ420は、tRCPAGE/tRC分の回路を備える(tRCPAGE/tRCは整数に切り上げられる)。適格性回路510は、カウンタ512と、任意のハッシュ回路514と、アドレスレジスタ516と、を備える。カウンタ512は、「ACT」と表された信号を受信するロードインプットと、データインプットと、「READY(準備完了)」と表されたアウトプットと、を有する。ハッシュ回路514は、マルチプレクサ430のアウトプットから出力されたmビットのアドレスを受信するmビットインプットと、アウトプットと、を有している。アクセスの一意的なバンク及びロウを特定するには、mビットで十分である。アドレスレジスタ516は、ハッシュ回路514のアウトプットに接続されたnビットインプットと、nビットアウトプットと、を有しており、アービタ420が最近発行した特定のACTコマンドに関するアドレス値を記憶する。
エントリ準備回路520は、i番目のエントリ準備回路であり、キュー410の各エントリに対応するエントリ準備回路セットの代表である。エントリ準備回路520は、コンパレータ522と、ORゲート524と、ANDゲート526と、を備える。コンパレータ522は、アドレスレジスタ516のアウトプットに接続された第1のインプットと、エントリのアドレスを受信するためにキュー410の各エントリに接続された第2のインプットと、「MATCH[i,j]」と表された信号を提供するアウトプットと、を有している。ORゲート524は、カウンタ512のアウトプットに接続された第1のインプットと、コンパレータ522のアウトプットに接続された第2のインプットと、アウトプットと、を有している。ANDゲート526は、ORゲート526のアウトプットに接続された第1のインプットと、別の対応するORゲートのアウトプットに接続された追加インプットと、「「ENTRY[i]READY」と表された信号を提供するためのアウトプットと、を有している。
レジスタ530は、カウンタ512のデータインプットに接続されたアウトプットを有する。レジスタ530は、後述する方法でtRCPAGE値を記憶する。
動作中、ACTがキュー410からマルチプレクサ430を介してディスパッチされる度に、マルチプレクサ430は、例えば輪番するtRCPAGE/tRC分の適格性回路セットのカウンタ512等のカウンタに対してtRCPAGEの値をロードするACT信号をアクティベートする。カウンタ512は、ゼロまでカウントダウンし、ゼロになった時点でREADY信号をアクティベートする。コンパレータ522は、キュー410のi番目のエントリにおけるアドレスがj番目の適格性回路に対応付けられたアドレスと一致する場合に、( ̄MATCH[i,j])信号を出力する。ORゲート524は、j番目のACTが現時点からtRCPAGEより前に生じた場合、又は、ENTRY[i]のアドレスがj番目の適格性回路のアドレスと一致しない場合に、ロジックハイ値を出力する。エントリ準備回路520内の全てのORゲートのアウトプットがロジックハイの場合に、ANDゲート526は、ENTRY[i]に対応するロウがアクティベートされる準備が整ったことを示すために、ロジックハイの状態でENTRY[i]READY信号をアクティベートする。
アービタ420の残りのロジックは、ENTRY[i]READY信号を受信し、ENTRY[i]READY信号がアクティベートされているか否か、及び、他のスケジュール制約が満たされた場合の両方に基づいて、アクセスの実行を選択的に許可する。
ハッシュ回路514は任意に設けられてよい。ハッシュ回路514が設けられている場合には、ハッシュ回路514は、インプットアドレスのmビットを、適格性回路のより小さな数のnビットに関連付ける。例えば、tRCPAGEがtRCと比べて大きくなった場合、設計者は、tRCPAGE/tRCセット分のカウンタ及びコンパレータを実装すると費用がかかりすぎると感じるであろう。ハッシュ機能は、実装されたハードウェアに基づいて選択され及びサイズ変更可能であってよい。よって、回路サイズと不定期な誤検知の間のトレードオフが可能になる。誤検知は、ロウアドレスXとロウアドレスZの両方が同一のnビットアドレスにハッシュされる場合に起こり得る。例えば、ロウXに関してtRCPAGEがまだ終了しておらず、且つ、ロウXとロウZのハッシュ機能が同等である場合に、ロウZに対するアクセスは、ロウアドレスが実際違っているにも関わらず誤って待つ必要があり得る。誤検知は、スケジュール上の不利益を生じる。
図6は、図4のメモリコントローラ400の動作を理解する上で役立つタイミング図600である。図6において、横軸は時間をnsで表し、縦軸は様々な信号の振幅をボルトで表す。図6は、CK/( ̄CK)信号対610と、コマンド(CMD)信号セット620と、を含む2つの注目信号グループを示している。DDR DRAMにおいて、CMD信号は、( ̄RAS)、( ̄CAS)、( ̄CE)、( ̄WE)を含む様々な制御信号により構成されており、DDR規格に従う特定のコマンドに対応付けられている。また、図6には、「t」、「t」、「t」、「t」、「t」、「t」、「t」と表された時点を含むいくつかの注目時点が示されている。
DDR DRAMにおいて、コマンドは、CKの立上がりエッジと( ̄CK)の立下りエッジに登録される。メモリ100は、時点tにおいて、「ACTX」と表されたロウXに対するアクティベートコマンドを登録する。tRCは、DDR規格に従い、アクティベートコマンド間の最短時間を特定する。図6の例において、別のアクティベートコマンドが発生可能となる最も早い時点は、tである。メモリ100は、時点tにおいて、ロウXに対するPREコマンドを受信する。ロウXは、DDR規格に従い、tからtRCが経過した後に再びアクティベート可能となり得る。
しかしながら、アービタ420は、tRCPAGEパラメータに基づいて適格性を強制する。従って、アービタ420は、tからtRCPAGEが経過するまで、ロウXがアクティベートされないようにする。この場合、ロウXは、tまで再びアクティベートされないので、ロウXのアクティベートに対して、tからtまでの時間に等しい追加の遅延時間が挿入される。同様に、アービタ420は、tからtRCPAGEが経過するまで、ロウYがアクティベートされないようにする。この場合、ロウYは、tまで再びアクティベートされないので、時点tがtからtRCが経過した時点を表す場合には、アービタ420は、ロウYのアクティベートに対して、tからtまでの時間に等しい追加の遅延時間を挿入する。
特定のロウが新たなACTコマンドを受けられない間にメモリコントローラ400が有用な追加作業を実行できるので、tRCPAGEに基づく新たなACTコマンドの発行の遅延は、大抵のメモリアクセスパターンに関するパフォーマンスを著しく低下させない。一方、これにより、tMAW内のMACを超え得る頻繁なロウアクティベートの持続パターンを含む不定期なメモリアクセスパターンにおけるロウアップセット問題に起因するデータ破損を、低減又は除去し得る。当シナリオにおいて、データ破損を防ぐためには、わずかに低下したパフォーマンスを容認し得る。
図7は、いくつかの実施形態による、データ処理システム700を示すブロック図である。データ処理システム700は、加速処理ユニット(APU)710で形成されたデータプロセッサと、メモリシステム720と、「サウスブリッジ」として知られる入出力(I/O)コントローラ730と、基本入出力システム(BIOS)読出し専用メモリ(ROM)740と、を備えている。データプロセッサ710は、メモリアクセス動作を実行するためにメモリシステム720に接続されたPHY712を有している。この例において、メモリシステム720は、DIMM(例えば、ロウアップセット問題に関連するデータを記憶する図2のDIMM200等)である。また、データプロセッサ710は、高速I/O回路714を介してI/Oコントローラ730に接続されており、I/Oコントローラ730は、メモリシステム720及びBIOS ROM740の両方に接続されている。
初期化において、データプロセッサ710は、BIOS ROM740に記憶された命令をI/Oコントローラ730を介して読出すことにより、データ処理システム700を初期化する。BIOS ROM740は、メモリシステム初期化部742を備える。メモリシステム初期化部742は、メモリシステム720のSPD ROMに記憶されたロウアップセットパラメータをデータプロセッサ710に読出させ、tRCPAGEを計算させ、そして、tRCPAGEをレジスタ530に記憶させる。
図8は、図4のメモリコントローラ400に使用される方法800のフローチャートを示す図である。ステップ810において、例えばBIOSの制御の下でDIMMのSPD ROMを読出し、上記の表1に関して説明したようにtRCPAGEを計算することにより、tRCPAGEが決定される。ステップ820において、ロウ125は、時点tにおいてアクティベートされる。アクティベートは、アービタ420によってキュー410から選択された読出し又は書込みアクセスの後に、ロウ125を開くために行われる。ステップ830において、例えば、同一のバンク内の別のページに対する介入アクセス、又は、同一のバンクに対する介入リフレッシュ動作のために、ロウ125がプリチャージされる。ステップ840において、ロウ125に対する第2のメモリアクセスを受信する。この第2のメモリアクセスは、ステップ830におけるロウ125に対する介入PREコマンドに起因して、新たなACTコマンドを必要とする。ループ850は、ロウ125がアクティベートするのに適しているか否かを判定する。デシジョンボックス852において、経過時間(すなわち、時点tから現時点までの継続時間)がtRCPAGEと比較される。例えば、上記の図5に関して説明したように、ステップ820においてtRCPAGEの値でカウンタを開始し、ステップ840において第2のメモリアクセスを受信する時点までに当該カウンタがゼロまでカウントダウンしたか否かを検出することによって、比較が行われ得る。tRCPAGEの時間が経過していない場合には、ステップ854において、ロウ125のアクティベートを禁止する。経過している場合には、ステップ860において、メモリシステム内の他の条件が満たされているか否かを判別する。例えば、ある公平性基準を前提にすると、開かれているページに対するアクセスは、ACTコマンドを要する新たなページに対するアクセスと比べて一般的に優先される。最終的に他の基準が1度満たされると、ステップ870において、ロウ125が再びアクティベートされ、ステップ880において、ロウ125に対する第2のメモリアクセスがディスパッチされる。
データプロセッサ300は、アドレスレジスタ、カウンタ、比較ロジック等のハードウェア回路を使用して適格性を判別するメモリコントローラ342を備えているが、これらの機能は、ハードウェアとソフトウェアの様々な組合せにより実行され得る。ソフトウェアコンポーネントのいくつかは、少なくとも1つのプロセッサにより実行されるために、コンピュータ可読記憶媒体に記憶され得る。さらに、図8に示された一部又は全ての方法は、コンピュータ可読記憶媒体に記憶された命令によって管理され、且つ、少なくとも1つのプロセッサによって実行される。図8に示された各動作は、非一時的(non−transitory)コンピュータメモリ又はコンピュータ可読記憶媒体に記憶された命令に対応し得る。様々な実施形態において、非一時的コンピュータ可読記憶媒体には、磁気若しくは光ディスク記憶装置、例えばフラッシュメモリ等の固体記憶装置、又は、他の不揮発性メモリ装置が含まれる。非一時的コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1以上のプロセッサにより解釈及び/若しくは実行可能な他の命令フォーマットであり得る。
さらに、図3のデータプロセッサ300又はその任意の一部は、データベースの形態のコンピュータアクセス可能データ構造、又は、プログラムにより読出し可能な他のデータ構造であって、集積回路を製造するのに直接若しくは間接的に使用可能な他のデータ構造によって、説明又は表され得る。例えば、このデータ構造は、例えばVerilog(ベリログ)又はVHDL等の高次設計言語(HDL)によるハードウェア機能の動作レベル記述又はレジスタ転送レベル(RTL)記述であってよい。この記述は、合成ライブラリのゲートのリストを含むネットリストを生成するために、記述を合成しし得る合成ツールにより読出され得る。ネットリストには、集積回路を備えるハードウェアの機能性を表すゲートセットが含まれる。そして、マスクに適用する幾何学形状を記述するデータセットを生成するために、ネットリストが配置され、ルートが決定される。その後、集積回路を製造するために、様々な半導体製造ステップにおいてマスクが使用されうる。あるいは、コンピュータアクセス可能記憶媒体上のデータベースは、所望に応じてネットリスト(合成ライブラリを含む又は含まない)若しくはデータセット、又は、グラフィックデータシステム(GDS)IIデータであって良い。
特定の実施形態が説明されたが、これらの実施形態に対する様々な修正が当業者には明らかであろう。例示されたデータプロセッサは、4つのCPUコアと、1つのGPUコアと、を備えるが、別の実施形態においては、データプロセッサは、違う数のメモリアクセスエージェントを備え得る。さらに、例示されたデータプロセッサは、1つのメモリコントローラと、関連するメモリチャネルと、を備えるが、別の実施形態においては、データプロセッサは、複数のメモリコントローラと、これらに対応するメモリチャネルと、を備え得る。上述したように、任意のハッシュ回路は、いくつかの実施形態において回路領域を減らすために含められているが、別の実施形態においては、誤検知を避けて高いパフォーマンスを維持するために、除外されてもよい。別の実施形態において、メモリコントローラは、各メモリバンク用に個別のキューを保持することが可能である。これらの実施形態において、適格性回路及びエントリ準備回路の数は、比例的に増加し得る。さらに、tRCPAGE値は、MAC数により分割されたリフレッシュ間隔である1次近似として、又は、リフレッシュ時間を考慮した2次近似として計算され得る。さらにまた、いくつかの実施形態において、メモリコントローラは、tRCPAGEメモリアクセススケジュールの生成を比較的長い時間窓に対し実施しながら、通常のtRC率であるアクティビティの小さいバーストの追跡を引続き許可する。
従って、添付の請求項には、開示された実施形態の範囲に属し、開示された実施形態に対する全ての修正を含む意図がある。

Claims (15)

  1. メモリ(100)に対する複数のアクセスを生成するメモリアクセスエージェント(310,320)と、
    前記メモリアクセスエージェント(310,320)に接続され、前記メモリ(100)の特性に基づく順序で前記複数のアクセスをスケジュールするメモリコントローラ(342)と、を備え、
    前記メモリ(100)の特性には、所定の時間窓における前記メモリ(100)のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間が含まれ、
    前記ロウサイクルページ時間は、連続するロウアクティベーション間の最短時間よりも長
    前記メモリコントローラ(342)は、選択の適格性を、前記ロウサイクルページ時間に基づいて判定する、
    データプロセッサ(300)。
  2. 前記順序は、前記所定の時間窓における最近のアクセスの特徴に基づいており、前記最近のアクセスの特徴には、前記所定の時間窓における特定のロウに対するアクティベートコマンドの数が含まれる、請求項1に記載のデータプロセッサ。
  3. 前記メモリアクセスエージェント(310,320)は、前記所定の時間窓から前記所定の時間窓の間の定期的なリフレッシュ時間を差し引いて正味の時間窓を取得し、前記正味の時間窓を前記メモリ(100)の前記ロウに対するアクティベートコマンドの許容数で割って前記ロウサイクルページ時間を取得することによって、前記ロウサイクルページ時間を決定する、請求項1に記載のデータプロセッサ(300)。
  4. 受信したメモリアクセスを記憶する複数のエントリを有するキュー(410)と、
    前記キュー(410)に接続されたアービタ(420)であって、ディスパッチ用のエントリを前記キュー(410)から選択するアービタ(420)と、を備え、
    前記アービタ(420)は、選択の適格性を、所定の時間窓におけるメモリ(100)のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間に基づいて判定し、
    前記ロウサイクルページ時間は、連続するロウアクティベーション間の最短時間よりも長い、
    メモリコントローラ(400)。
  5. 前記アービタは、選択されたアクセスを前記複数のエントリのうち何れのエントリが記憶しているかを示す制御信号を提供し、
    前記メモリコントローラは、前記キューの前記複数のエントリに接続されたインプットと、前記アービタに接続され前記制御信号を受信する制御インプットと、ディスパッチされたメモリアクセスを提供するアウトプットと、を有するマルチプレクサを備え、
    マルチプレクサ(430)は、前記キュー(410)の前記複数のエントリに接続されたインプットと、前記アービタ(420)に接続され前記制御信号を受信する制御インプットと、ディスパッチされたメモリアクセスを提供するアウトプットと、を有する、
    請求項4に記載のメモリコントローラ(400)。
  6. 前記アービタ(420)は適格性回路(510)を備え、
    前記適格性回路(510)は、
    アクティベートコマンドによりアクティベートされるロウを示すアドレスを記憶するアドレスレジスタ(516)と、
    前記ロウがアクティベートされてからの経過時間が前記ロウサイクルページ時間に達したときに準備完了信号を提供するカウンタ(512)と、を備える、請求項4に記載のメモリコントローラ(400)。
  7. 前記アービタ(420)は、前記適格性回路(510)に接続されたエントリ準備回路(520)であって、前記キュー(410)の対応するエントリが選択に適しているか否かを、前記対応するエントリのアドレスが前記アドレスと一致する場合に前記準備完了信号に基づいて判別するエントリ準備回路(520)を備え、前記アービタ(420)は、適しているエントリの中のエントリを前記キュー(410)から選択する、請求項6に記載のメモリコントローラ(400)。
  8. 前記適格性回路(510)は、
    前記アドレスの一部を、ハッシュ関数に従って前記アドレスレジスタ(516)に記憶するハッシュ回路(514)を備える、請求項6に記載のメモリコントローラ(400)。
  9. 前記アービタ(420)は、前記適格性回路(510)を含み、ロウサイクル時間に対する前記ロウサイクルページ時間の比率に対応する数の複数の適格性回路を備える、請求項6に記載のメモリコントローラ(400)。
  10. データプロセッサ(710)と、
    前記データプロセッサ(710)に接続されたメモリシステム(720)と、を備え、
    前記データプロセッサ(710)は、前記メモリシステム(720)の特性に基づく順序で複数のメモリアクセスをスケジュールし、
    前記メモリシステム(720)の特性には、所定の時間窓における前記メモリシステム(720)のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間が含まれ、
    前記ロウサイクルページ時間は、連続するロウアクティベーション間の最短時間よりも長
    前記データプロセッサ(710)は、選択の適格性を、前記ロウサイクルページ時間に基づいて判定する、
    データ処理システム(700)。
  11. 前記順序は、前記所定の時間窓における最近のアクセスの特徴に基づいており、前記最近のアクセスの特徴には、前記所定の時間窓における特定のロウに対するアクティベートコマンドの数が含まれる、請求項10に記載のデータ処理システム。
  12. 前記メモリシステム(720)は、複数のダブルデータレート(DDR)ダイナミックランダムアクセスメモリ(DRAM)(210)を有するデュアルインラインメモリモジュール(DIMM)(200)を備え、
    前記データプロセッサ(710)は、前記DIMM(200)の直列プレゼンス検出(SPD)読出し専用メモリ(ROM)(220)内のレジスタ(222)を読出すことによって、前記ロウサイクルページ時間を決定し、
    前記データプロセッサ(710)は、不揮発性メモリ(740)に記憶された基本入出力システム(BIOS)のメモリシステム初期化部(742)の制御の下で、前記レジスタ(222)を読出す、請求項10に記載のデータ処理システム(700)。
  13. 前記データプロセッサ(710)は、前記所定の時間窓から前記所定の時間窓の間の定期的なリフレッシュ時間を差し引いて正味の時間窓を取得し、前記正味の時間窓を前記ロウに対する前記アクティベートコマンドの許容数で割って前記ロウサイクルページ時間を取得することによって、前記ロウサイクルページ時間を決定する、請求項10に記載のデータ処理システム(700)。
  14. メモリ(100)のロウ(125)を第1の時点でアクティベートし(820)、
    前記メモリ(100)のロウ(125)をプリチャージし(830)、
    前記メモリ(100)のロウ(125)に対する第2のメモリアクセスを受信し(840)、
    前記の第1の時点からの経過時間がロウサイクルページ時間より長くなるまで前記第2のメモリアクセスのアクティベートを禁止する(850)、
    ことを含み、
    前記ロウサイクルページ時間は、所定の時間窓における前記メモリのロウに対するアクティベートコマンドの許容数を示しており、連続するロウアクティベーション間の最短時間よりも長い、
    方法。
  15. 所定の時間窓における許容されたアクセス数に基づいて、前記ロウサイクルページ時間を決定する(810)、
    ことを含む請求項14に記載の方法。
JP2016519863A 2013-10-08 2014-10-06 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法 Active JP6130594B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/048,212 US9281046B2 (en) 2013-10-08 2013-10-08 Data processor with memory controller for high reliability operation and method
US14/048,212 2013-10-08
PCT/US2014/059227 WO2015054093A1 (en) 2013-10-08 2014-10-06 Data processor with memory controller for high reliability operation and method

Publications (2)

Publication Number Publication Date
JP2016536666A JP2016536666A (ja) 2016-11-24
JP6130594B2 true JP6130594B2 (ja) 2017-05-17

Family

ID=52777898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016519863A Active JP6130594B2 (ja) 2013-10-08 2014-10-06 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法

Country Status (6)

Country Link
US (1) US9281046B2 (ja)
EP (1) EP3055863B1 (ja)
JP (1) JP6130594B2 (ja)
KR (1) KR101746735B1 (ja)
CN (1) CN105518784B (ja)
WO (1) WO2015054093A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9269436B2 (en) 2013-03-12 2016-02-23 Intel Corporation Techniques for determining victim row addresses in a volatile memory
US9449671B2 (en) * 2013-03-15 2016-09-20 Intel Corporation Techniques for probabilistic dynamic random access memory row repair
JP6039522B2 (ja) * 2013-09-06 2016-12-07 株式会社東芝 外部入出力装置および調停設定結果格納方法
US10467157B2 (en) 2015-12-16 2019-11-05 Rambus Inc. Deterministic operation of storage class memory
US10198216B2 (en) * 2016-05-28 2019-02-05 Advanced Micro Devices, Inc. Low power memory throttling
US9792975B1 (en) * 2016-06-23 2017-10-17 Mediatek Inc. Dram and access and operating method thereof
US10566040B2 (en) * 2016-07-29 2020-02-18 Micron Technology, Inc. Variable page size architecture
KR102278337B1 (ko) 2017-04-21 2021-07-19 에스케이하이닉스 주식회사 메모리장치의 스케줄러 및 스케줄링 방법
US10503670B2 (en) * 2017-12-21 2019-12-10 Advanced Micro Devices, Inc. Dynamic per-bank and all-bank refresh
US10977854B2 (en) * 2018-02-27 2021-04-13 Stmicroelectronics International N.V. Data volume sculptor for deep learning acceleration
CN110729006B (zh) 2018-07-16 2022-07-05 超威半导体(上海)有限公司 存储器控制器中的刷新方案
KR102679774B1 (ko) * 2019-04-10 2024-06-28 에스케이하이닉스 주식회사 히스토리 기반 메모리 시스템 및 그 제어 방법
CN110399219B (zh) * 2019-07-18 2022-05-17 深圳云天励飞技术有限公司 内存访问方法、dmc及存储介质
KR20210053017A (ko) 2019-11-01 2021-05-11 삼성전자주식회사 프로세싱 소자를 포함하는 메모리 장치 및 상기 메모리 장치를 포함하는 메모리 시스템
US11646066B2 (en) * 2019-12-16 2023-05-09 Etron Technology, Inc. Memory controller and related memory
US11669274B2 (en) * 2021-03-31 2023-06-06 Advanced Micro Devices, Inc. Write bank group mask during arbitration
US11977465B2 (en) * 2022-05-26 2024-05-07 Changxin Memory Technologies, Inc. Method for testing a command, an apparatus for testing a command and a readable storage medium
US12118247B2 (en) * 2022-12-22 2024-10-15 Advanced Micro Devices, Inc. Performance of bank refresh

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1120905A (zh) * 1995-05-11 1996-04-24 彭瑜黔 风味猪肉罐头的制作方法
US6295586B1 (en) 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6788593B2 (en) 2001-02-28 2004-09-07 Rambus, Inc. Asynchronous, high-bandwidth memory component using calibrated timing elements
JP2003132676A (ja) * 2001-10-29 2003-05-09 Mitsubishi Electric Corp 半導体記憶装置
JP4459495B2 (ja) * 2001-12-13 2010-04-28 富士通マイクロエレクトロニクス株式会社 半導体記憶装置のリフレッシュ制御方法、及び該制御方法を有する半導体記憶装置
US7543102B2 (en) * 2005-04-18 2009-06-02 University Of Maryland System and method for performing multi-rank command scheduling in DDR SDRAM memory systems
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US8364918B1 (en) * 2007-04-06 2013-01-29 Marvell International Ltd. Sensed opportunistic garbage collection in memory components
ITMI20070787A1 (it) 2007-04-17 2008-10-18 St Microelectronics Srl Memoria non volatile
US7996642B1 (en) * 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8046559B2 (en) * 2008-03-27 2011-10-25 Intel Corporation Memory rank burst scheduling
JP4843655B2 (ja) * 2008-09-24 2011-12-21 株式会社東芝 半導体記憶装置
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US8127087B2 (en) * 2009-02-12 2012-02-28 International Business Machines Corporation Memory controller for improved read port selection in a memory mirrored system
US8838853B2 (en) * 2010-01-18 2014-09-16 Marvell International Ltd. Access buffer
US8615629B2 (en) 2010-01-18 2013-12-24 Marvell International Ltd. Access scheduler
KR20120067509A (ko) 2010-12-16 2012-06-26 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그 제어 방법
KR101873526B1 (ko) * 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
JP2013004158A (ja) * 2011-06-21 2013-01-07 Elpida Memory Inc 半導体記憶装置及びそのリフレッシュ制御方法
US9141568B2 (en) * 2011-08-25 2015-09-22 Apple Inc. Proportional memory operation throttling
US9257169B2 (en) * 2012-05-14 2016-02-09 Samsung Electronics Co., Ltd. Memory device, memory system, and operating methods thereof
US9032141B2 (en) * 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9325601B2 (en) * 2013-02-20 2016-04-26 Spirent Communications, Inc. Reducing effective cycle time in accessing memory modules
US9349433B2 (en) * 2013-03-13 2016-05-24 Inphi Corporation Hidden refresh of weak memory storage cells in semiconductor memory

Also Published As

Publication number Publication date
CN105518784B (zh) 2017-12-12
KR20160067089A (ko) 2016-06-13
EP3055863A1 (en) 2016-08-17
WO2015054093A1 (en) 2015-04-16
JP2016536666A (ja) 2016-11-24
CN105518784A (zh) 2016-04-20
US9281046B2 (en) 2016-03-08
EP3055863A4 (en) 2017-07-05
US20150100723A1 (en) 2015-04-09
EP3055863B1 (en) 2020-02-19
KR101746735B1 (ko) 2017-06-14

Similar Documents

Publication Publication Date Title
JP6130594B2 (ja) 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法
US9293188B2 (en) Memory and memory controller for high reliability operation and method
US11474703B2 (en) Memory system with region-specific memory access scheduling
CN107924375B (zh) 用于高速存储器接口的命令仲裁
CN110729006B (zh) 存储器控制器中的刷新方案
KR102615693B1 (ko) Dram을 위한 리프레시 관리
CN114902198B (zh) 用于异构存储器系统的信令
KR102705923B1 (ko) 중재 동안의 기록 뱅크 그룹 마스크
KR20230017865A (ko) Dram을 위한 리프레시 관리
JP2024528414A (ja) ハイブリッドdram/永続メモリチャネルアービトレーションを有するメモリコントローラ
US11474746B2 (en) Refresh management for DRAM
US20240112722A1 (en) Directed refresh management for dram
Khalifa et al. A novel memory controller architecture

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170413

R150 Certificate of patent or registration of utility model

Ref document number: 6130594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250