(57)【要約】      （修正有）【課題】内部ロウハンマ緩和を有するメモリデバイスを提供する。【解決手段】ホスト支援によりロウハンマ緩和を実行するシステム１００において、メモリコントローラまたはホスト装置は、メモリデバイスに追加のリフレッシュサイクルまたはリフレッシュコマンドを送信することによって、ロウハンマ緩和を支援する。追加のリフレッシュコマンドに応答して、メモリデバイスは、標準的なデータ完全性のためのリフレッシュではなく、ロウハンマ緩和のためのリフレッシュを実行する。メモリコントローラは、メモリデバイスに送信されたアクティブ化コマンドの数を追跡し、アクティブ化コマンドの閾値数に応答して、追加のリフレッシュコマンドを送信する。追加のリフレッシュコマンドを使用すると、メモリデバイスは、一定期間アクセスされていない行を単にリフレッシュする代わりに、潜在的な攻撃行の潜在的な被害行をリフレッシュする。【選択図】図１
2020166832.tif 000002
【特許請求の範囲】
【請求項１】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスであって、
複数行のメモリを有するメモリアレイと、
複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含むコマンドを、関連するメモリコントローラから受信するための入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の受信に応答して、前記メモリコントローラが、リフレッシュウィンドウ内の前記複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、前記ＤＲＡＭデバイスが、前記超過したリフレッシュコマンドに応答して、ロウハンマ（ｒｏｗ  ｈａｍｍｅｒ）リフレッシュを実行し、潜在的な攻撃行（ａｇｇｒｅｓｓｏｒ  ｒｏｗ）の潜在的な被害行（ｖｉｃｔｉｍ  ｒｏｗ）をリフレッシュする、入力／出力（Ｉ／Ｏ）ハードウェアとを
備える、ＤＲＡＭデバイス。
【請求項２】
前記アクティブ化コマンドの閾値数の受信が、特定の時間ウィンドウ内での前記アクティブ化コマンドの閾値数の受信を含む、請求項１に記載のＤＲＡＭデバイス。
【請求項３】
前記特定の時間ウィンドウ内での前記アクティブ化コマンドの閾値数の受信がスライディングウィンドウを有し、各アクティブ化コマンドがカウントを増加させ、時間が前記カウントを減少させる、請求項２に記載のＤＲＡＭデバイス。
【請求項４】
前記アクティブ化コマンドの閾値数が、チャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する、請求項１から３のいずれか一項に記載のＤＲＡＭデバイス。
【請求項５】
前記アクティブ化コマンドの閾値数が、バンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する、請求項１から３のいずれか一項に記載のＤＲＡＭデバイス。
【請求項６】
前記超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む、請求項１から５のいずれか一項に記載のＤＲＡＭデバイス。
【請求項７】
メモリコントローラであって、
複数行のメモリを有するメモリデバイスに送信するコマンドをキューに入れるバッファと、
前記メモリデバイスに対するアクティブ化コマンドの数を追跡するカウンタと、
複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含む前記コマンドを前記メモリデバイスに送信する入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の検出に応答して、前記Ｉ／Ｏハードウェアが、リフレッシュウィンドウ内の前記複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、前記超過したリフレッシュコマンドが、前記メモリデバイスをトリガして、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、入力／出力（Ｉ／Ｏ）ハードウェアとを
備える、メモリコントローラ。
【請求項８】
前記アクティブ化コマンドの閾値数の検出が、特定の時間ウィンドウ内での前記アクティブ化コマンドの閾値数の検出を含む、請求項７に記載のメモリコントローラ。
【請求項９】
前記特定の時間ウィンドウ内での前記アクティブ化コマンドの閾値数の検出がスライディングウィンドウを有し、各アクティブ化コマンドが前記カウンタを増加させ、時間が前記カウンタを減少させる、請求項８に記載のメモリコントローラ。
【請求項１０】
前記アクティブ化コマンドの閾値数が、前記メモリデバイスを含む複数のメモリデバイスのチャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する、請求項７から９のいずれか一項に記載のメモリコントローラ。
【請求項１１】
前記アクティブ化コマンドの閾値数が、前記メモリデバイスのバンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する、請求項７から９のいずれか一項に記載のメモリコントローラ。
【請求項１２】
前記超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む、請求項７から１１のいずれか一項に記載のメモリコントローラ。
【請求項１３】
メモリデバイスを有するシステムであって、
複数行のメモリを有する複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスと、
前記複数のＤＲＡＭデバイスに結合されたメモリコントローラであって、前記メモリコントローラが、
前記メモリデバイスに対するアクティブ化コマンドの数を追跡するカウンタと、
複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含む複数のコマンドを前記メモリデバイスに送信する入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の検出に応答して、前記Ｉ／Ｏハードウェアが、リフレッシュウィンドウ内の前記複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、前記超過したリフレッシュコマンドが、ＤＲＡＭデバイスをトリガして、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、入力／出力（Ｉ／Ｏ）ハードウェアと
を含む、メモリコントローラとを
備えるシステム。
【請求項１４】
前記アクティブ化コマンドの閾値数の検出が、特定の時間ウィンドウ内での前記アクティブ化コマンドの閾値数の検出を含む、請求項１３に記載のシステム。
【請求項１５】
前記特定の時間ウィンドウ内での前記アクティブ化コマンドの閾値数の検出がスライディングウィンドウを有し、各アクティブ化コマンドが前記カウンタを増加させ、時間が前記カウンタを減少させる、請求項１４に記載のシステム。
【請求項１６】
前記アクティブ化コマンドの閾値数が、ＤＲＡＭデバイスのチャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する、請求項１３から１５のいずれか一項に記載のシステム。
【請求項１７】
前記アクティブ化コマンドの閾値数が、ＤＲＡＭデバイスごとに、アクティブ化コマンドの閾値数を有する、請求項１３から１５のいずれか一項に記載のシステム。
【請求項１８】
前記アクティブ化コマンドの閾値数が、特定のＤＲＡＭデバイスのバンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する、請求項１３から１５のいずれか一項に記載のシステム。
【請求項１９】
前記超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む、請求項１３から１８のいずれか一項に記載のシステム。
【請求項２０】
前記メモリコントローラに結合されたホストプロセッサデバイス、
ホストプロセッサに通信可能に結合されたディスプレイ、
ホストプロセッサに通信可能に結合されたネットワークインターフェイス、または
前記システムに電力を供給するバッテリ
のうちの１つまたは複数をさらに備える、請求項１３から１９のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
説明は、一般に、コンピュータメモリシステムに関し、より詳細な説明は、ロウハンマ（ｒｏｗ  ｈａｍｍｅｒ）イベントの緩和に関する。
【背景技術】
【０００２】
コンピュータデバイスのサイズが縮小し続け、容量および機能が増加するにつれて、構成要素の製造に使用される最小デバイス形状は減少し続ける。メモリデバイス形状の減少により、継続的なシステムスケーリングが可能になるが、ロウハンマまたは行妨害イベントによるデータ損失の可能性が生じる。「ロウハンマ」とは、一定期間内に目標行（ｔａｒｇｅｔ  ｒｏｗ）または攻撃行（ａｇｇｒｅｓｓｏｒ  ｒｏｗ）に繰り返しアクセスすることによって引き起こされる故障を指す。攻撃行にアクセスするためにアクティブ化を繰り返すと、目標行／攻撃行に隣接または近接する被害行（ｖｉｃｔｉｍ  ｒｏｗ）で故障を引き起こす可能性があり、目標行のアクティブ化が繰り返されると、被害行のパスゲートを横切る電荷の移動を引き起こし、被害行の非決定論的状態がもたらされる。ロウハンマは、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）デバイスの既知の問題である。
【０００３】
デバイス形状が減少すると、ロウハンマイベントを引き起こす可能性のある特定の行に対するアクティブ化の数が５００Ｋから３００Ｋになる。現在は１００Ｋになると予測され、さらにアクティブ化の範囲が約３０Ｋから５０Ｋになることもある。少ないアクティブ化によって引き起こされたロウハンマイベントの場合、リフレッシュウィンドウ内でより多くの行が攻撃者になる可能性があり、データ損失のリスクを減らすために、より多くのロウハンマ緩和が必要になる。
【０００４】
メモリコントローラによって管理される従来のロウハンマ緩和は、メモリコントローラに大きな負担をかけ、メモリコントローラとＤＲＡＭとの間の管理の調整は、メモリバスの帯域幅に負担をかける。現在、ほとんどのＤＲＡＭデバイスは、典型的には、ロウハンマリフレッシュを実行するために「スチーリング」リフレッシュサイクルによって、ロウハンマ緩和を内部的に処理する。したがって、ＤＲＡＭデバイス自体が、ロウハンマ緩和のために使用されるメモリコントローラによって発行されるリフレッシュサイクルの回数を決定する。
【０００５】
しかし、ロウハンマの閾値が低下すると、メモリデバイスは、デバイスのデータ完全性を損なうことなく合理的に取得できるリフレッシュよりも多くのリフレッシュをスチールする必要がある。選択肢の１つは、リフレッシュレートを上げることである。しかし、リフレッシュレートを上げると、ロウハンマリフレッシュが不要な場合でも、電力および帯域幅のメモリサブシステムに一定の要件が課せられる。したがって、リフレッシュレートを変更することは、ロウハンマ状態が存在しないときに、超過したリフレッシュのリスクがあるために非効率的である。
【図面の簡単な説明】
【０００６】
以下の説明は、実装の例として与えられた例示を有する図の議論を含む。図面は、例として理解されるべきであり、限定するものではない。本明細書で使用される場合、１つまたは複数の例への言及は、本発明の少なくとも１つの実装に含まれる特定の特徴、構造、または特性を説明するものとして理解されるべきである。本明細書に現れる「一例では」または「代替例では」などの語句は、本発明の実装の例を提供し、必ずしもすべてが同じ実装を指すとは限らない。しかし、それらは必ずしも相互に排他的ではない。
【０００７】
【図１】ホスト支援によりロウハンマ緩和を実行するシステムの実施形態のブロック図である。
【０００８】
【図２】ロウハンマ緩和リフレッシュのための超過した外部リフレッシュのコマンドシーケンスの一例のタイミング図である。
【０００９】
【図３】ロウハンマ緩和を支援するためにホストからの追加の外部リフレッシュを実装できるメモリサブシステムの一例のブロック図である。
【００１０】
【図４】異なるメモリ部分のロウハンマ緩和情報を追跡するための複数のカウンタの一例を示すブロック図である。
【００１１】
【図５】ホスト支援ロウハンマ緩和をサポートするシステムのコマンド真理値表で選択されたコマンドの一例を示す。
【００１２】
【図６】ホスト支援ロウハンマ緩和のためのプロセスの一例の流れ図である。
【００１３】
【図７】ホスト支援ロウハンマ緩和を実装できるメモリサブシステムの一例を示すブロック図である。
【００１４】
【図８】ホスト支援ロウハンマ緩和を実装できるコンピューティングシステムの一例を示すブロック図である。
【００１５】
【図９】ホスト支援ロウハンマ緩和を実装できるモバイルデバイスの一例を示すブロック図である。
【００１６】
一部のまたはすべての例を示し得る図の非限定的な説明、ならびに他の可能な実装を含む、特定の詳細および実装の説明が続く。
【発明を実施するための形態】
【００１７】
本明細書で説明するように、ロウハンマ緩和はホスト支援およびメモリデバイス管理である。メモリデバイスは内部のロウハンマ緩和を実行し、メモリコントローラまたはホストは、追加のリフレッシュサイクルまたはリフレッシュコマンドを送信することにより、ロウハンマ緩和を支援することができる。システムは、不必要なリフレッシュに電力および帯域幅を使用するのを防ぐために、追加のリフレッシュサイクルを送信する必要性を追跡することができる。
【００１８】
例えば、メモリコントローラは、メモリデバイスに送信されたアクティブ化コマンドの数を追跡でき、アクティブ化コマンドの閾値数に応答して、メモリコントローラは追加のリフレッシュコマンドを送信する。追加のリフレッシュコマンドに応答して、メモリデバイスは、標準的なデータ完全性のためのリフレッシュではなく、ロウハンマ緩和のためのリフレッシュを実行することができる。追加のリフレッシュコマンドを使用すると、メモリデバイスは、一定期間アクセスされていない行を単にリフレッシュする代わりに、潜在的な攻撃行の潜在的な被害行をリフレッシュすることができる。そのような実装では、メモリデバイスは、ロウハンマ緩和を実行するのに利用可能なリフレッシュサイクルを十分に有するが、超過したサイクルは、単にリフレッシュレートを上げるのではなく、依然として効果的に要求に応じることができる。追加のリフレッシュコマンドは、超過したリフレッシュコマンドと呼ぶことができる。一例では、追加のリフレッシュコマンドは、ロウハンマの問題に対処するように設計されたホストからリフレッシュ管理（ＲＦＭ）コマンドとして発行することができる。
【００１９】
ホストコントローラまたはメモリコントローラは、ロウハンマ緩和に必要な追加のリフレッシュを補償するために、メモリデバイス、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスに追加のリフレッシュコマンドを送信する。追加のリフレッシュサイクルを提供することで、メモリデバイスは、標準的なリフレッシュ動作のために十分なリフレッシュサイクルを依然として提供することによってデータ完全性を損なうことなく、サイクルをスチールすることが可能になる。一例では、メモリコントローラは、メモリデバイスに送信されたアクティブ化コマンドの数によって、送信する追加のリフレッシュコマンドの数を決定する。メモリデバイスに送信されるアクティブ化の数と、ロウハンマ緩和を実行するためにメモリデバイスがスチールする必要があるリフレッシュの数との間には、高い相関関係がある。
【００２０】
提供されるようなホスト支援ロウハンマ緩和により、ホストコントローラでは目標行リフレッシュ（ＴＲＲ）プロトコルが不要になる。ＴＲＲは、コントローラがそれ自体の監視またはメモリデバイスからのシグナリングによって、潜在的なロウハンマイベントを認識したときに発生する。ＴＲＲを使用すると、コントローラは目標行を示す特定のリフレッシュコマンドを送信でき、メモリデバイスは１つまたは複数の被害行をリフレッシュする。ホスト支援ロウハンマ緩和では、コントローラがＴＲＲコマンドの目標行を知る必要はない。さらに、ホスト支援ロウハンマ緩和は、特定の目標行がアクティブ化の閾値数の対象であるかどうかを考慮することなく、一般にアクティブ化の数を監視することで、ロウハンマ緩和の必要性を簡単に見積もることができる。
【００２１】
ホスト支援ロウハンマ緩和では、どの行をリフレッシュするかという意思決定をメモリデバイスの制御に残すことができる。リフレッシュの内部動作にはかなりのマージンがある傾向があり、メモリデバイスメーカは、単に最悪のシナリオで動作するということではなく、自社のデバイスの特定の機能およびニーズを把握している。そのような機能により、メモリデバイスは、デバイス固有またはメーカ固有の方法でロウハンマ緩和およびリフレッシュ制御を実行することができる。したがって、例えば、ＤＲＡＭメーカは、データ完全性に影響を与えることなく安全にスチールすることができるリフレッシュの数を把握しており、特定のデバイスに対して意味のある緩和であれば何でも実行することができる。
【００２２】
図１（ＷＡＳ１）は、ホスト支援によりロウハンマ緩和を実行するシステムの実施形態のブロック図である。システム１００は、ホストコントローラまたは単にコントローラとも呼ばれるメモリコントローラ１１０に結合されたメモリデバイス１２０を含む。メモリデバイス１２０は、メモリセルの隣接行を有する任意のタイプのメモリ技術を含むことができ、データはワード線または同等物を介してアクセス可能である。一例では、メモリデバイス１２０はＤＲＡＭ技術を含む。メモリデバイス１２０の行は、決定論的状態を維持するためにリフレッシュされる必要がある。
【００２３】
メモリデバイス１２０は、メモリセルまたは記憶セルのアレイを表すメモリアレイ１３０を含む。メモリセルは、１ビットのデータ、またはマルチレベルセル用に複数のビットを格納する。メモリアレイ１３０は、潜在的なロウハンマ状況の表現を含む。例として、メモリアレイ１３０はバンク１４０およびバンク１５０を示す。メモリアレイ１３０は複数のバンクを含むことができることが理解されるであろう。一般に、メモリのバンクまたはサブバンクは、別のバンクまたはサブバンクのメモリセルから別々にアドレス指定可能なメモリセルを含み、したがって、メモリアレイ１３０の別の部分に並列にアクセス可能である。メモリアレイ１３０は、システム１００に図示されていない部分を含むことができる。
【００２４】
メモリデバイス１２０は、アクセスコマンドに基づいて列に電荷を印加するための回路を表す列デコーダ（ｄｅｃ）１３２を含む。一例では、回路は、列アドレスストローブ（ＣＡＳ）コマンドに応答して列を選択する。メモリデバイス１２０は、メモリアクセスコマンドに基づいて行に選択電圧を印加するための回路を表す行デコーダ（ｄｅｃ）１３４を含む。一例では、回路は、行アドレスストローブ（ＲＡＳ）コマンドに応答して列を選択する。
【００２５】
メモリコントローラ１１０は、メモリデバイス１２０のためのコマンドを生成するコマンドロジック１１２を含む。コマンドは、書き込み（Ｗｒｉｔｅ）コマンドまたは読み出し（Ｒｅａｄ）コマンドなどのコマンドを含むことができる。コマンドは、アクティブ化（Ａｃｔｉｖａｔｅ）コマンド、プリチャージ（Ｐｒｅｃｈａｒｇｅ）コマンド、リフレッシュ（Ｒｅｆｒｅｓｈ）コマンド、またはその他のコマンドを含むこともできる。一例では、メモリコントローラ１１０は、メモリデバイス１２０のリフレッシュを制御するロジックを表すリフレッシュロジック１７２を含む。リフレッシュロジック１７２は、メモリデバイス１２０のリフレッシュの必要性を判定するための１つまたは複数のカウンタおよび、リフレッシュコマンドの送信を追跡するためのレジスタスペースを含むことができる。リフレッシュコマンドは外部リフレッシュコマンド（例えば、ＲＥＦ、ＲＥＦｐｂ）を含むことができ、この場合、メモリデバイスはメモリコントローラ１１０からのクロック信号に従って動作し続ける。リフレッシュコマンドはセルフリフレッシュコマンド（例えば、ＳＲＥ）を含むことができ、この場合、メモリデバイスは、メモリコントローラからのクロック信号に基づくのではなく、内部クロックで動作する。外部リフレッシュは、コマンドを完了するための特定のウィンドウを有し、セルフリフレッシュとは、メモリデバイスが非特定の時間の間存在できる状態のことである。
【００２６】
メモリコントローラ１１０は、メモリデバイス１２０へのコマンド列のスケジューリングおよび送信を管理するためのスケジューラ１１６を含む。スケジューラ１１６は、コマンドの順序、ならびにコマンドのタイミング要件を決定するためのロジックを含む。メモリコントローラ１１０は、送信するコマンドの決定を行わなければならない。また、タイミング要件への準拠を保証するために、コマンドの順序も決定する。スケジューラ１１６は、メモリコントローラ１１０がコマンドおよびタイミングに関する特定の決定を行うことを可能にすることができる。一例では、スケジューラ１１６は、リフレッシュウィンドウの間に送信する外部リフレッシュコマンドの数を決定する。スケジューラ１１６は、ロウハンマ緩和を可能にするために、追加のリフレッシュコマンドを生成することができる。
【００２７】
一例では、メモリコントローラ１１０は、アクティブ化コマンドまたはアクティブ化の閾値数がメモリデバイス１２０に送信された時点をコントローラが判定できるようにするために、ロウハンマ（ＲＨ）ロジック１７４を含む。例えば、ロウハンマロジック１７４は、潜在的なロウハンマ状態を監視するための１つもしくは複数のカウンタまたは他のロジックを含むことができる。一例では、ロウハンマロジック１７４は、アクティブ化カウンタが閾値数に達した時点を判定するコンパレータを含む。一例では、閾値数は、モードレジスタまたは他のレジスタまたはコンフィグレーションなどによって、レジスタ１２２などにプログラム可能である。メモリコントローラ１１０は、コンフィグレーションを読み取り、それをメモリコントローラ１１０の内部のレジスタまたは他のデバイス（具体的に図示せず）に格納することができる。
【００２８】
メモリコントローラ１１０は、Ｉ／Ｏ（入力／出力）ハードウェア１１４を含む。Ｉ／Ｏ１１４は、トランシーバと、メモリコントローラ１１０が１つまたは複数のバスを介してメモリデバイス１２０に接続することを可能にする信号線インターフェイスハードウェアとを表す。Ｉ／Ｏ１１４は、メモリコントローラ１１０がコマンドをメモリデバイス１２０に送信することを可能にする。メモリコントローラ１１０は、メモリデバイス１２０に送信する一連のコマンドをバッファリングするバッファ１７６を含む。一例では、バッファ１７６はスケジューラ１１６の一部である。スケジューラ１１６は、コマンドおよびコマンドの送信順序を決定し、次いで、Ｉ／Ｏ１１４を介した送信のためにバッファ１７６のキューに入れられ得る。
【００２９】
ロウハンマ状態の例示のために、メモリアレイ１３０はバンク１４０内に目標行１４２を含む。物理的に近接した行または物理的に隣接した行は、行に対するリフレッシュ動作の前の一定期間内に目標行１４２に繰り返しアクセスすることに基づいて、行に格納された１つまたは複数の値の意図しないプログラミングまたは妨害を受ける可能性がある。被害行１４４は、目標行１４２が繰り返しアクセスされるときにロウハンマの影響を受ける行を表す。被害行１４４がロウハンマイベントのリスクにさらされている場合、目標行１４２は攻撃行と呼ばれ得る。バンク１４０には、目標行１４２に対する被害行である別の行があり得る。
【００３０】
一例では、バンク１４０は目標行１４６も含む。目標行１４６がバンク境界またはその近くにあると考える。メモリアレイ１３０内の行は、行が異なるバンクにある場合でも、変わらない空間を有し得ることが理解されるであろう。むしろ、あるバンクから別のバンクへの分離は、ハードウェア要素の選択またはデコードによって定めることができる。したがって、行の物理レイアウトのアーキテクチャに応じて、バンク１５０の境界上の行も、目標行１４６へのアクセスに基づいてロウハンマイベントのリスクにさらされる可能性がある。一例では、目標行に繰り返しアクセスすると、複数の隣接行の妨害が発生する可能性がある。図示されているように、目標行１４６は、バンク１４０の被害行１４８およびバンク１５０の被害行１５２の両方にロウハンマイベントをもたらす可能性がある。
【００３１】
メモリデバイス１２０は、メモリコントローラ１１０のＩ／Ｏ１１４とインターフェイスするＩ／Ｏ１２６を含む。Ｉ／Ｏ１２６は、コマンドを受信するためのＩ／Ｏ１１４への対応する信号線と、他のコマンドの中でも特にアクティブ化コマンドおよびリフレッシュコマンドを受信するためのアドレス情報とを有する。一例では、Ｉ／Ｏ１２６は、メモリコントローラ１１０とデータを交換するために、データバスに対するインターフェイスを含む。
【００３２】
メモリデバイス１２０は、メモリデバイス１２０の動作に関連するコンフィグレーション情報または値を格納するための１つまたは複数のレジスタまたは記憶場所を表すレジスタ１２２を含む。一例では、レジスタ１２２は１つまたは複数のモードレジスタを含む。一例では、レジスタ１２２は、メモリデバイス１２０に対する内部的なリフレッシュの適用を制御するためのコンフィグレーション情報を含む。一例では、レジスタ１２２は、ロウハンマ状態の前のアクティブ化の閾値数などのロウハンマ動作に関連する情報を含む。
【００３３】
メモリデバイス１２０は、メモリデバイスに対してローカルなコントローラを表すコントローラ１８０を含む。コントローラ１８０は、コマンドに応答して動作を実行するハードウェアロジックを含む。コントローラ１８０は、ハードウェアロジックを制御し、メモリデバイス内の動作および動作の順序を制御するソフトウェアまたはファームウェアロジックを含む。一例では、コントローラ１８０はリフレッシュロジック１６０を含む。一例では、コントローラ１８０はＲＨカウンタ１２４を含む。コントローラ１８０は、Ｉ／Ｏ１２６を管理する。
【００３４】
一例では、メモリデバイス１２０は、メモリアレイ１３０のリフレッシュを管理するためのメモリデバイス１２０内のロジックを表すリフレッシュロジック１６０を含む。一例では、リフレッシュロジック１６０は、リフレッシュ（ｒｅｆ）カウンタ１６２およびロウハンマ（ＲＨ）ロジック１６４を含む。リフレッシュカウンタ１６２は、リフレッシュされる行のアドレスを示すことができる。リフレッシュカウンタ１６２は、異なるバンクまたはサブバンクが、リフレッシュのために識別された異なるアドレスを有し得るため、複数のカウンタを表すことができる。ロウハンマロジック１６４は、メモリデバイス１２０がロウハンマ緩和を管理することを可能にする。ロウハンマロジック１６４は、１つまたは複数のカウンタ、潜在的な攻撃行のリスト、またはロウハンマ緩和を実行する他のロジックを含むことができる。一例では、ロウハンマ緩和は、アクティブ化コマンドを受信するために最後の行アドレスの潜在的な被害行のリフレッシュを実行することによって行われる。そのような手法に含まれるヒューリスティックは、ある行がハンマされているときに、その行のアドレスが、ロウハンマ緩和に使用するためのリフレッシュコマンドを受信する前に、アクティブ化コマンドを受信したばかりである可能性が最も高いことを認識している。概して、そのような手法は、十分なロウハンマ緩和動作が実行される場合、潜在的な被害行をリフレッシュするはずである。
【００３５】
一例では、メモリデバイス１２０は、１つまたは複数のロウハンマ（ＲＨ）カウンタ１２４を含む。カウンタ１２４は、ロウハンマ検出ロジックであってもよいし、それを含んでもよい。一例では、メモリデバイス１２０は、潜在的なロウハンマ状態を検出し、ロウハンマイベントに関連するリスクを緩和する動作を実行する。一例では、カウンタ１２４は、繰り返しアクセスされている１つまたは複数の行に関連するカウントを保持する。例えば、カウンタ１２４は、リフレッシュウィンドウ内で最も高いアクティブ化カウントを有する行のオプションのアドレス（ａｄｄｒ）リストを保持することができる。カウントは、リフレッシュ後にリセットすることができる。
【００３６】
行ごとにアクティブ化の数を追跡することは、特定のメモリデバイスでは、バンクごとに１００万以上のカウンタが必要になるため、実用的ではないことが理解されるであろう。メモリデバイスは、典型的には、ヒューリスティックを採用するか、またはロウハンマ緩和を適用する確率に基づいて機能する。すべての行のアクティブ化を追跡する代わりに、選択した行のみを追跡することができる。カウンタが閾値数に達すると、リフレッシュロジック１６０はロウハンマリフレッシュを実行することができる。そのような実装では、新しい行がアクティブ化されるたびに、最も低いカウントを置き換えることができる。一例では、カウンタ１２４は、アクティブ化の数が最も高い行のリストを保持し、外部リフレッシュコマンドが受信されたときに、アクティブ化の数が最も高い１つまたは複数の行に対してロウハンマ緩和を実行する。したがって、リフレッシュロジック１６０は、ロウハンマリフレッシュ緩和を実行する前に、閾値数に達するまで必ずしも待つ必要はない。
【００３７】
別のヒューリスティック手法は、アクティブ化を受信したランダム選択行にロウハンマリフレッシュをランダムに割り当てることである。そのような実装では、最近アクティブ化された行のアドレスを任意選択で格納するために、カウンタ１２４を必要とするだけかもしれない。理論的には、繰り返しアクティブ化される行が、ロウハンマ緩和リフレッシュのためにランダムに選択される可能性が高い。したがって、確率的に、繰り返しハンマされるかアクセスされる行は、ロウハンマ緩和のために選択される可能性が高い行でもある。そのような手法のロジックおよび回路要件は、行のリストを保持するために必要とされるものよりも単純であるが、ロウハンマ緩和の精度は低いものになる。
【００３８】
リフレッシュロジック１６０は、メモリアレイ１３０内の行のリフレッシュを制御するためのメモリデバイス１２０内のロジックを表す。リフレッシュロジック１６０は、メモリコントローラ１１０のリフレッシュロジック１７２によって送信された外部リフレッシュコマンドに応答する。リフレッシュロジック１６０は、メモリデバイス１２０のセルフリフレッシュ動作の際にリフレッシュ動作を制御する。リフレッシュロジック１６０は、スケジュールされたリフレッシュ動作のために行アドレスを追跡するためのリフレッシュ（ｒｅｆ）カウンタ１６２を含む。スケジュールされたリフレッシュ動作には、リフレッシュ期間内にすべての行がリフレッシュされるように、連続する行のリフレッシュが含まれる。メモリコントローラ１１０のリフレッシュロジック１６０は、十分なリフレッシュ動作が、リフレッシュ要件を満たすためにメモリデバイス１２０に対してスケジュールされることを確実にする役割を果たす。
【００３９】
一例では、リフレッシュロジック１７２は、リフレッシュ期間に必要とするよりも多くのリフレッシュ動作をスケジュールする。説明したように、ロウハンマロジック１７４は、メモリデバイス１２０に送信されたアクティブ化の数に基づいて、ロウハンマ緩和に使用するために、リフレッシュロジック１６０に追加のリフレッシュまたは超過したリフレッシュを提供することができる。メモリコントローラ１１０によって提供される追加のロウハンマ緩和リフレッシュを用いると、ヒューリスティックな手法であっても、ロウハンマによるデータ損失の可能性を大幅に低減させることが理解されるであろう。
【００４０】
一例では、リフレッシュロジック１６０は、ロウハンマ緩和のためのリフレッシュ動作を提供するロウハンマロジック１６４を含む。ロウハンマ緩和とは、行の妨害を回避するための潜在的な被害行のリフレッシュを指す。動作時に、カウンタ１２４は、リフレッシュロジック１６０によって「リフレッシュスチーリング」をトリガすることができるロウハンマロジック１６４に目標行を示すことができる。リフレッシュスチーリングとは、リフレッシュカウンタ１６２に示された行のリフレッシュを実行する代わりに、示された目標行に関連付けられた被害行のリフレッシュを実行するリフレッシュロジック１６０を指す。したがって、ロウハンマ緩和リフレッシュ動作は、リフレッシュ行ポインタまたはカウンタに関して順不同である。ロウハンマ緩和には、リフレッシュ動作全体またはリフレッシュサイクルのすべてのリフレッシュ、または単にリフレッシュ動作の１つまたは複数のリフレッシュをスチールすることが含まれる。ロウハンマリフレッシュ（以下で詳細に説明する）としてタグ付けされているか、または示されているコマンドの場合、または、アクティブ化閾値に達するのに合わせてリフレッシュコマンドが対応するとリフレッシュロジック１６０が判定した場合、ロジックは、すべてのサイクルをロウハンマ緩和に使用しても安全であると判定することができる。
【００４１】
外部リフレッシュコマンドに応答して、メモリデバイス１２０は、典型的には、複数行のリフレッシュを実行する。リフレッシュ動作とは、単一のリフレッシュコマンドに応答してリフレッシュされるすべての行のリフレッシュを指す。リフレッシュ動作には時間ｔＲＦＣ（行リフレッシュサイクルタイム）があり、リフレッシュ期間またはリフレッシュウィンドウ内のリフレッシュ動作の間にはｔＲＥＦＩ（リフレッシュ間隔時間）という平均リフレッシュ間隔がある。リフレッシュ期間とは、行のデータが失われないようにするための、任意の所与の行のリフレッシュ間の時間を指す。リフレッシュは、リフレッシュコマンドに応答してリフレッシュされるすべての行の単一行のリフレッシュを指すことができ、単一のリフレッシュ動作には、複数のリフレッシュが含まれるため、ｔＲＦＣよりも短い時間を有する。
【００４２】
バンク１４０に示されているように、同じバンクに複数の目標行が存在することが可能であることが理解されるであろう。ロウハンマの臨界数が減少するにつれて、行妨害を引き起こすために必要なアクティブ化の数が減少し続けるため、潜在的な攻撃行の数が増加する。したがって、リフレッシュ期間ごとに必要なロウハンマ緩和動作の数は増え続けている。より多くのロウハンマ緩和動作を許可するために、メモリコントローラ１１０は、具体的には、送信されたアクティブ化コマンドの数を決定することに基づいて、より多くの外部リフレッシュコマンドを送信する。リフレッシュ（外部でも内部でも）は、メモリコントローラおよびメモリデバイスが行にアクセスしていないことを保証できる唯一の時間である。様々なバンクが様々な時間にリフレッシュされる可能性があるため、様々な時間にアクセスすることができないことが理解されるであろう。リフレッシュされていないバンクがアクセスする可能性があるため、スケジューラ１１６が様々なバンクのリフレッシュのスケジューリングを管理する。
【００４３】
メモリコントローラ１１０のロウハンマロジック１７４は、追加のリフレッシュコマンドの送信をトリガするために、メモリデバイス１２０に送信されるアクティブ化コマンドの数を追跡することができる。そのような機構は、メモリデバイス１２０に追加のリフレッシュの必要性を追跡させ、メモリコントローラに信号を送ることを試みることよりもはるかに簡単である。ロウハンマロジック１７４が超過したリフレッシュを送信するための閾値を追跡している場合、アクティブ化閾値などの構成可能なパラメータに基づいて動作を実行することができる。そのような手法により、様々な動作状態、様々なデバイスまたはメーカ、または追加のロウハンマ緩和の必要性に影響を与える可能性のある他の変数の設定可能性が有効になる。
【００４４】
ロウハンマロジック１７４の動作は、異なる実装に対して変わり得る。一例では、ロウハンマロジック１７４は、時間ウィンドウに関係なく、プログラム可能な閾値に達するたびに追加のリフレッシュコマンドを送信する。一例では、ロウハンマロジック１７４は、特定の時間セグメント内でカウントに到達した場合にのみ追加のリフレッシュを送信する。例えば、カウントは通常のリフレッシュ期間ごとにリセットされ得て、カウントは、リフレッシュウィンドウ内で閾値に達した場合にのみ、追加の外部リフレッシュをトリガする。
【００４５】
一例では、追加のリフレッシュコマンドを送信する関心期間は、スライディングウィンドウである。スライディングウィンドウは、例えば、リーキーバケット手法を使用して設定することができる。リーキーバケット手法では、ロウハンマロジック１７４は、各アクティブ化コマンドに応答してカウントをデクリメント（または手法に応じてインクリメント）する。デクリメント手法では、カウントがゼロになると、追加のリフレッシュの送信がトリガされる。一例では、ロウハンマロジック１７４は時間ベースでデクリメントし、追加のリフレッシュサイクルを引き起こさない、μｓ（マイクロ秒）当たりのアクティブ化の公称レートをもたらす。そのような手法では、公称レートを超えるサイクルが検出されたときのみ、ロウハンマロジック１７４に追加のリフレッシュを送信させる。そのような手法は、単に全体のアクティブ化ではなく、特定の時間にわたるアクティブ化のレートのみがロウハンマイベントをトリガするという仮定に基づき得る。
【００４６】
カウンタアップ手法では、リフレッシュは、例えば、通常のリフレッシュ時間の１／４または１／２になり得るサブリフレッシュ期間で行われ得る。したがって、各固定期間に、ロウハンマロジック１７４は、追加のリフレッシュコマンドの送信をトリガすることができる。行妨害を引き起こす１０万の一例を考えると、ロウハンマロジック１７４は、８万回のアクティブ化の後か、または６万回のアクティブ化の後か、あるいは行妨害値より低い他の何らかのプログラム可能なカウントの後に、追加のリフレッシュコマンドの送信をトリガすることができる。
【００４７】
追加のリフレッシュを送信するタイミングは、複数の異なる方法のいずれかで調整することができる。一例では、追加のリフレッシュの頻度は、プログラム可能性またはコンフィグレーションによって調整される。一例では、追加のリフレッシュの頻度は、追加のリフレッシュ監視が実行される方法に依存する。頻度は、監視方法とプログラム可能性との組み合わせによって調整することができる。上述したように、監視方法は、時間ウィンドウに関係なくアクティブ化の閾値数、または固定時間ウィンドウ内でのアクティブ化の数、またはスライディングウィンドウ内でのアクティブ化の数の検出に応答して追加のリフレッシュが送信されるかどうかに依存する。一例では、期間はリフレッシュ期間で固定されるのではなく、プログラム可能である。一例では、スライディングウィンドウはプログラム可能である。リーキーバケット手法の一例では、リーキーバケットが満たされるレートはプログラム可能である。
【００４８】
ロウハンマ緩和の追跡の粒度は、実装に依存する可能性がある。追跡の粒度については、以下で詳しく説明する。一般に、粒度は監視が実行されるレベルに依存する。一例では、監視はデバイスレベルで実行される。一例では、監視はチャネルレベルで実行される。一例では、監視はランクで実行される。一例では、監視はバンクグループで実行される。一例では、監視はバンクで実行される。
【００４９】
図２は、ロウハンマ緩和リフレッシュのための超過した外部リフレッシュのコマンドシーケンスの一例のタイミング図である。図表２００は、ロウハンマ緩和によるリフレッシュのタイミング図を表す。図表２００は、ホストまたはメモリコントローラと関連するメモリデバイスとの間の複数の相互接続、ならびにメモリデバイス内の特定の内部機能を表す。相互接続は、１つまたは複数の信号線を介して提供される。
【００５０】
ＣＬＫ２１０はシステムのクロックを表し、クロック（ＣＫ＿ｔ）および補完クロック（ＣＫ＿ｃ）の両方が示されている。図表２００の例では、クロックは、立ち上がりエッジを示す矢印を有する実線の信号である。補完クロックは破線で示されている。ＣＡ２１２は、コマンド／アドレス（Ｃ／Ａ）信号線上で送信されるＣ／Ａ信号を表し、ホストによって提供されるコマンド符号化を示す。ＣＭＤ２１６は、コマンド符号化の復号化を表し、したがって、コマンドを実行するために生成された動作のためのメモリデバイス内部の信号を表すことができる。ＲＨ  ＣＴＲ２１４は、メモリコントローラのロウハンマカウンタを表す。リフレッシュ２１８は、メモリデバイス内のリフレッシュの動作を表す。
【００５１】
ＣＡ２１２は、２２０でＲＥＦコマンドを示す。リフレッシュコマンドは、メモリコントローラからの標準的な外部リフレッシュコマンドを表す。２２２で、メモリデバイスはコマンドをＣＭＤ２１６上の外部（ＥＸＴ）リフレッシュコマンドとして解釈し、２２４で内部動作を生成してリフレッシュを実施する。リフレッシュ２１８は、外部リフレッシュコマンドに対応して行がリフレッシュされるまで、ＣＴＲ０のＲＥＦ、それに続くＣＴＲ１などを含むことができる一連のリフレッシュコマンドを示す。ＣＴＲ０およびＣＴＲ１はリフレッシュする行を示す値を表し、この値は、内部リフレッシュ動作を追跡するためのカウンタまたはポインタになり得る。一例では、具体的に示されていないが、メモリデバイスは、１つまたは複数のリフレッシュサイクルをスチールしてロウハンマ緩和リフレッシュを実行する。
【００５２】
破線２２６は、タイムブレークを表す。ＣＡ２１２は、２２８でＡＣＴコマンドを示す。一例では、ＡＣＴコマンドの後に、２３０でロウハンマインクリメント（ＲＨ  ＩＮＣＲ）を実行するロウハンマカウンタ２１４が続く。インクリメントは、メモリコントローラによるアクティブ化コマンドの追跡を表すが、ロウハンマ緩和の追跡の実施に応じて、インクリメントの代わりにデクリメントとすることもできることが理解されるであろう。また、ＣＭＤ２１６では、アクティブ化コマンドの後に１つまたは複数の内部動作が続き、２３２でアクティブ化コマンドを実行する。一例では、メモリデバイスは、２３４でリフレッシュ２１８上のアクティブ化コマンドのロウハンマ影響も追跡する。ロウハンマ追跡は、アクティブ化コマンドに付随するアドレスによって示される行でアクティブ化コマンドを実行することに加えて行われることが理解されるであろう。ロウハンマ緩和のために複数のカウンタを追跡するシステムでは、ロウハンマの追跡にカウンタ情報の更新を含めることができる。
【００５３】
破線２３６は、タイムブレークを表す。ＣＡ２１２は、２３８で後続のＡＣＴコマンドを示す。後続のアクティブ化コマンドは、２４０でロウハンマカウンタ２１４に上のＲＨ  ＩＮＣＲ、２４２でＣＭＤ２１６上のＡＣＴ、および２４４でリフレッシュ２１８上のＲＨ追跡によって示されているのと同じ動作をトリガできることが観察されるであろう。アクティブ化コマンドが受信されると、メモリコントローラはそのコマンドを追跡できるが、閾値に達しない限り、ロウハンマ緩和をトリガできないことがこの部分から理解されるであろう。
【００５４】
破線２４６は、タイムブレークを表す。タイムブレーク後、ＣＡ２１２上ではどのようなことでも起こり得て、一例では、ロウハンマ検出へのリーキーバケット手法を実行するシステムにおいて時間閾値に達している。達した時間に応答して、一例では、メモリコントローラは、２４８でロウハンマカウンタ２１４上のロウハンマデクリメント（ＲＨ  ＤＥＣＲ）を実行する。
【００５５】
破線２５０は、タイムブレークを表す。ＣＡ２１２は、２５２で後続のＡＣＴコマンドを示す。後続のアクティブ化コマンドが、ロウハンマ緩和の閾値をトリガすることが観察されるであろう。したがって、２５４でＲＨ  ＩＮＣＲがロウハンマカウンタ２５４に発生すると、メモリコントローラは追加のリフレッシュコマンドをトリガすることを決定する。ＣＡ２１２上のＡＣＴに応答して、ＣＭＤ２１６の２５６で示されるように、メモリデバイスはアクティブ化動作を復号し、リフレッシュ２１８上の２５８にあるＲＨ追跡は、内部ロウハンマ追跡を実行する。閾値アクティブ化コマンドに応答して、アクティブ化コマンドの後のある時点で、ＣＡ２１２では、メモリコントローラは、２６０でロウハンマリフレッシュコマンド（ＲＨ  ＲＥＦ）を送信する。ロウハンマ状態をトリガしたＡＣＴコマンドに隣接して示されているが、リフレッシュコマンドはＡＣＴコマンドに直接隣接して送信されてもよいし、送信されなくてもよい。一例では、ＲＥＦコマンドは、例えば、状態を検出し、ＲＥＦコマンドをスケジューリングし、そのコマンドをメモリデバイスに送信するためにバッファリングするメモリコントローラ内のロジックによって、ＡＣＴコマンドに隣接して送信される。
【００５６】
アクティブ化コマンドがロウハンマ緩和をトリガする場合、ＣＭＤ２１６は、２６２でメモリデバイスによるロウハンマ緩和（ＲＨ  ＭＩＴ）選択を示す。ロウハンマ緩和選択は、リフレッシュのために被害行を選択するメモリデバイスを含むことができる。１つまたは複数の被害行の選択に応答して、メモリデバイスは、２６４でリフレッシュ２１８上のＲＨ  ＲＥＦによって表されるロウハンマ緩和リフレッシュを実行することができる。リフレッシュは、ホストがメモリデバイスへのアクセスを試みないことをメモリデバイスが保証する唯一の時間であり、この時間によって、メモリデバイスは、リフレッシュカウンタに従う代わりに、ロウハンマ被害に対してリフレッシュを実行することが可能になる。したがって、リフレッシュサイクル中に実行されるロウハンマ緩和リフレッシュは、メモリデバイスによる他の動作またはメモリコントローラによるアクセス試行がないことを保証する動作を提供する。
【００５７】
図３は、ロウハンマ緩和を支援するためにホストからの追加の外部リフレッシュを実装できるメモリサブシステムの一例のブロック図である。システム３００は、コンピューティングシステムの要素を表す。システム３００は、システム１００を含むことができるシステムの一例を提供する。システム３００は、メモリコントローラ３２０およびメモリ３３０を有するメモリサブシステムを有すると考えることができる。ホスト３１０は、メモリサブシステムを制御するハードウェアプラットフォームを表す。ホスト３１０は、メモリ３３０に格納されたデータに対する要求を生成する１つまたは複数のプロセッサ３１２（例えば、中央処理装置（ＣＰＵ）またはグラフィック処理装置（ＧＰＵ））を含む。
【００５８】
ホスト３１０は、プロセッサデバイスに統合可能なメモリコントローラ３２０を含む。メモリコントローラ３２０は、メモリ３３０に接続するためのＩ／Ｏ（入力／出力）３２６を含む。Ｉ／Ｏには、メモリデバイスをホスト３１０に相互接続するためのコネクタ、信号線、ドライバ、およびその他のハードウェアが含まれる。Ｉ／Ｏ３２６は、コマンド（ＣＭＤ）バス３１４によって表されるコマンドＩ／Ｏおよび、ＤＱ（データ）バス（具体的に図示せず）によるデータＩ／Ｏを含むことができる。ＣＭＤバス３１４は、メモリコントローラ３２０がアクティブ化コマンド（ＡＣＴ）およびリフレッシュコマンド（ＲＥＦ）を含むコマンドをメモリ３３０に送信することを可能にするコマンド信号線を含む。
【００５９】
メモリコントローラ３２０は、プロセッサ３１２による動作に応答してメモリに対するコマンドを生成するコマンド（ＣＭＤ）ロジック３２２を含む。コマンドは、データアクセス用のコマンド（Ｒｅａｄ、Ｗｒｉｔｅ、Ｒｅｆｒｅｓｈ、またはその他のコマンドなど）、またはコンフィグレーション用のコマンド（モードレジスタコマンドなど）とすることができる。メモリコントローラ３２０は、一連の動作でコマンドをいつ送信するかをスケジュールするスケジューラ３２４を含む。スケジューラ３２４は、既知のタイミングに従ってＩ／Ｏのタイミングを制御して、Ｉ／Ｏにエラーがなくなる可能性を高めることができる。タイミングはトレーニングによって設定される。
【００６０】
メモリ３３０は、個々のメモリデバイスを含むことができるか、またはメモリモジュールを表すことができる。システム３００は、メモリ３３０内のメモリデバイスの２つのランク、ランク［０］およびランク［１］を示す。ランクとは、選択線（例えば、ＣＳ信号線）を共有するメモリデバイスの集合またはグループを指す。したがって、ランク内のメモリデバイスは、並列に動作を実行する。ランク［０］およびランク［１］は、Ｎ個のＤＲＡＭデバイスまたはＤＲＡＭを含むように示されている。典型的には、複数のランクを有するシステムは、各ランクに同じ数のＤＲＡＭを有する。
【００６１】
ランク［０］のＤＲＡＭ［０］およびランク［１］のＤＲＡＭ［０］は、Ｉ／Ｏ３３２、制御（ＣＴＲＬ）３３６、およびレジスタ（ＲＥＧ）３３４を含むように示されている。そのような構成要素は、他のＤＲＡＭにも含まれることが理解されるであろう。Ｉ／Ｏ３３２は、メモリコントローラ３２０のＩ／Ｏ３２６と同等の接続ハードウェアを表す。Ｉ／Ｏ３３２は、ＤＲＡＭのメモリコントローラ３２０への接続を可能にする。レジスタ３３４は、モードレジスタなどの１つまたは複数のコンフィグレーションレジスタを含む、ＤＲＡＭ内の１つまたは複数のレジスタを表す。レジスタ３３４は、コンフィグレーション情報ならびにコマンドおよびデータ信号線上の信号に応答して、ＤＲＡＭによる動作モードを決定する情報を格納することができる。一例では、ＤＲＡＭは、ロウハンマ緩和閾値を示すプログラム可能な値を格納するレジスタ３３４を含む。
【００６２】
制御ロジック３３６は、コマンドおよびアクセス動作を復号化し実行するためのＤＲＡＭ内の制御構成要素を表す。制御３３６は、メモリコントローラ３２０によって開始されたアクセスを実行するために必要な内部動作をＤＲＡＭに実行させる。一例では、ＤＲＡＭは、本明細書に記載される内容に従うロウハンマロジックを表すロウハンマ（ＲＨ）ロジック３３８を含む。一例では、ロウハンマロジック３３８は制御ロジック３３６の一部である。ロウハンマロジック３３８は、ＤＲＡＭがロウハンマ緩和を管理するために、どのようにリフレッシュを実行するかを決定することを可能にする。例えば、ロウハンマロジック３３８は、リフレッシュサイクルスチーリングを制御して、ロウハンマ緩和を実行することができる。
【００６３】
一例では、メモリコントローラ３２０は、ロウハンマ緩和の状態を監視するために、１つまたは複数のロウハンマカウンタ（ＲＨ  ＣＴＲ）３２８を含む。一例では、カウンタ３２８は、メモリ３３０に送信されたアクティブ化コマンドの数を検出する。メモリ３３０に送信されるようにスケジュールされたコマンドを追跡することは、ロウハンマ緩和のために追加のリフレッシュが必要になり得るときの良い指標となる。
【００６４】
一例では、メモリコントローラ３２０は、システム３００において所望される追跡粒度のレベルを提供するのに十分な複数のカウンタ３２８を含む。最も高い粒度はチャネルである。システム３００は、第２のチャネルを具体的に示していない。チャネルとは、同じコマンドバスに接続するすべてのメモリデバイスを指す。コマンドバス３１４は、図示されたすべてのＤＲＡＭデバイスに接続し、したがって、単一のチャネルであると仮定される。
【００６５】
ＤＲＡＭデバイスは、複数のバンク（バンク［０：７］）を有するものとして示されている。８つのバンクは一例であり、限定するものではないことが理解されるであろう。他のシステムは、４バンク、１６バンク、３２バンク、または他の何らかの数のバンクを含み得る。２進数のバンクはアドレス指定の観点からはより単純であるが、動作の目的のためには必須ではなく、任意の数のバンクを使用することができる。バンク３４０は、バンク番号によって別個にアドレス指定可能な別個のバンクとして利用することができる。一例では、バンク３４０は、ＢＧ０（バンクグループ０）としてバンク［０：３］およびＢＧ１としてバンク［４：７］などのバンクグループに編成される。バンクグループは、代替的に、例えば、バンク［０，２，４，６］を有するＢＧ０であっても、または他の何らかのグループ化であってもよい。バンクグループは、典型的には、別個にアクセスすることができ、例えば、同じバンクグループのバンクへの連続アクセスよりも短いアクセス時間を可能にすることができる。
【００６６】
粒度のより低いレベルはランクレベルとすることができ、各ランクは別個に追跡することができる。追加のリフレッシュコマンドは、アクティブ化コマンドの閾値数を有することが検出されたランクにのみ送信される。粒度の別のレベルは、メモリデバイスダイまたはパッケージのパッケージまたはダイベースとすることができる。そのようなレベルは、メモリコントローラ３２０による追跡がＤＲＡＭデバイスによって実行される追跡と一致するため、システム３００のバランスを提供することができる。以前と同様に、追加のリフレッシュは、必要なときに送信されるように制限でき、追加のリフレッシュが必要であると検出されたデバイス（複数可）のみに送信することができる。
【００６７】
より低いレベルの粒度（より細かい粒度）は、メモリ３３０の特定のＤＲＡＭ技術のリフレッシュコマンドの粒度に基づくことができる。例えば、様々なＤＲＡＭ技術により、バンクセット、バンクグループ、またはバンクごとに基づいてリフレッシュを実行することができる。バンクとは、行デコーダおよび列デコーダと共にアドレス指定される行のグループを指す。バンクグループとは、バンクグループアドレスに基づくバンクグループデコーダに基づいて共にアクセスできるバンクのグループを指す。バンクセットは、バンクグループ内の共通のバンクアドレスを有するバンクグループ全体でのバンクの識別を指すことができる。
【００６８】
より細かい粒度の利点は、チップまたはチャネル全体ではなく、影響を受ける領域にのみ追加のリフレッシュコマンドが送信されることである。より細かい粒度の欠点は、カウンタ３２８などのメモリコントローラ３２０の追跡ロジックが追加されることである。どのようなレベルの粒度が使用されても、追加のリフレッシュコマンドは、アクティブ化閾値が検出された特定のセグメントのみに送信される。
【００６９】
バンクまたはバンクセットごとにリフレッシュを許可するＤＲＡＭデバイスの現在の実装では、共通の行カウンタが存在するため、特定のバンクまたはバンクセットに対する追加のリフレッシュは通常許可されない。記載されているロウハンマ緩和の実装では、ＤＲＡＭが特定のバンクセットまたはバンクに対する追加のリフレッシュを検出し、それをロウハンマ緩和のために使用することができる、典型的なルールに対する例外を必要とし得る。
【００７０】
図４は、異なるメモリ部分のロウハンマ緩和情報を追跡するための複数のカウンタの一例を示すブロック図である。システム４００は、本明細書の任意の例に従ったメモリコントローラの要素を表す。システム４００は、コマンドをスケジュールしてメモリデバイスに送信するスケジューラ４３０を含む。
【００７１】
一例では、システム４００は複数のロウハンマカウンタ４１０を含む。システム４００は、Ｎ個のカウンタを示し、ここでＮは、ロウハンマ状態について追跡される要素の数を表す値である。例えば、ロウハンマ緩和の監視レベルがメモリデバイスダイのレベルで発生する場合、Ｎはメモリコントローラに接続されているデバイスダイの数に等しくすることができる。
【００７２】
一例では、システム４００は、メモリのどの部分が追加のリフレッシュコマンドを送信するかをカウンタ４１０から決定することができる、ロウハンマデコード４２０を含む。ロウハンマデコード４２０は、スケジューラ４３０が、潜在的なロウハンマ状態を示すカウンタのための追加のリフレッシュをスケジュールすることを保証することができる。追跡されるより細かい粒度により、メモリコントローラがロウハンマ緩和状態を識別するためにより多くのカウンタ４１０を必要とすることが理解されるであろう。
【００７３】
図５は、ホスト支援ロウハンマ緩和をサポートするシステムのコマンド真理値表で選択されたコマンドの一例を示す。コマンドテーブル７００は、本明細書の任意の説明に従ってロウハンマ緩和リフレッシュを実行するメモリデバイスのコマンド符号化の一例を示す。
【００７４】
コマンドテーブル５００の場合、コマンドバス信号は、チップ選択用のＣＳ、およびＣＡ［０：１３］として識別される複数のＣＡ（コマンド／アドレス）信号を含むことができる。ＣＡ信号線の数は、図示されているものより多くても少なくてもよい。信号線の値の凡例は次のとおりである。ＢＧ＝バンクグループアドレス、ＢＡ＝バンクアドレス、Ｒ＝行アドレス、Ｃ＝列アドレス、ＢＣ８＝バーストチョップ８、ＭＲＡ＝モードレジスタアドレス、ＯＰ＝オペコード、ＣＩＤ＝チップ識別子、ＣＷ＝制御ワード、Ｈ＝ロジックハイ、Ｌ＝ロジックロー、Ｘ＝ドントケアまたは信号の状態に関係なく、信号はフロートし得る。Ｖ＝有効は、任意の有効な信号状態、より具体的には、ハイまたはローを意味する。
【００７５】
ＡＣＴは、メモリアレイアクセスで使用できるＡｃｔｉｖａｔｅコマンドを表す。上記で示したように、閾値以上のアクティブ化の数は、ロウハンマイベントを引き起こす可能性がある。一例では、メモリコントローラはアクティブ化の数をカウントし、追加のリフレッシュコマンドを送信して、メモリデバイスがロウハンマ緩和を実行できるように追加のリフレッシュサイクルを提供する。
【００７６】
コマンドテーブル５００は、すべての行をリフレッシュするために、すべてをリフレッシュするコマンドのＲＥＦを含む。ＲＥＦコマンドにより、メモリデバイスはリフレッシュカウンタに示された行アドレスに従って行をリフレッシュする。一例では、上記の内容に従って、メモリデバイスは、リフレッシュカウンタから行を順不同でリフレッシュして、ロウハンマイベントによるデータ損失のリスクがある被害行のリフレッシュを実行できる。メモリデバイスは、選択された行のランダム化を実行する。
【００７７】
一例では、コマンドテーブル５００は、異なるグループ内の同じバンクをリフレッシュするための同じバンクをリフレッシュするＲＥＦｓｂコマンドを含む。一例では、メモリデバイスは、ＲＥＦコマンドまたはＲＥＦｓｂコマンドによりスチールされたリフレッシュサイクルとしてロウハンマ緩和リフレッシュを実行できる。一例では、コマンドテーブル５００は、メモリデバイスを低電力状態にしてセルフリフレッシュを実行させるセルフリフレッシュエントリのＳＲＥコマンドを含む。ＳＲＥは、ＲＥＦまたはＲＥＦｓｂとは別のタイプのコマンドであることが理解されるであろう。ＲＥＦおよびＲＥＦｓｂコマンドは、外部リフレッシュコマンドと呼ぶことができる。
【００７８】
一例では、メモリコントローラによって１つまたは複数のリフレッシュコマンドにタグが付けられ、追加のリフレッシュコマンドまたはロウハンマリフレッシュコマンドとしてマークされる。メモリデバイスはビットを検出し、リフレッシュコマンドがロウハンマ緩和のためのものであると判定することができる。一例では、リフレッシュコマンドは、ロウハンマ緩和を示すために、ヘッダまたは他のビットで拡張することができる。コマンドテーブル５００には、領域５１０によって指定されているように、コマンド符号化に準拠するために有効な信号のみを必要とするビットＣＡ８およびＣＡ９があることが観察されるであろう。したがって、これらのビットは、例えば、メモリコントローラがビットの１つの値を設定してロウハンマ緩和リフレッシュを示し、メモリデバイスがビットの論理値を検出して、それが標準的なリフレッシュコマンドであるか、ロウハンマリフレッシュコマンドであるかを判定するタグとして使用できる。一例では、ビット許容の情報を有するように修正されていても、メモリデバイスの仕様（例えば、ダブルデータレート（ＤＤＲ）規格のＣＡ８およびＣＡ９など）に従っていないコマンドは、リフレッシュ管理コマンドと考えることができる。
【００７９】
図示されたタグ付けは、１つの可能な例にすぎないことが理解されるであろう。他の方法で、コマンドをロウハンマ緩和用としてタグ付けすることができる。
【００８０】
図６は、ホスト支援ロウハンマ緩和のためのプロセスの一例の流れ図である。プロセス６００は、本明細書の任意の例に従ったホスト支援ロウハンマ緩和を有するシステムによって実施することができる。
【００８１】
一例では、メモリコントローラは、６０２で、メモリデバイスに送信するアクティブ化コマンドがあるかどうかを判定する。アクティブ化コマンドがある場合（６０２で、「はい」の分岐）、メモリコントローラは６０４でカウンタをインクリメントすることができる。一例では、アクティブ化コマンドが検出されない場合（６０２で、「いいえ」の分岐）、メモリコントローラはカウンタをインクリメントしない。
【００８２】
アクティブ化コマンドを確認した後、一例では、メモリコントローラは６０６でタイマが時間切れかどうかを判定する。一例では、タイマが時間切れになっている場合（６０６で、「はい」の分岐）、メモリコントローラはカウンタをデクリメントする。そのような実装は、ロウハンマの状態を確認するためのスライディングウィンドウを作成するリーキーバケット実装と呼ぶことができる。リーキーバケット手法では、アクティブ化コマンドの検出によりカウンタがインクリメントされ、タイマの時間切れによりカウンタがデクリメントされる。デクリメントは、タイマの時間切れの頻度に応じて単一のデクリメントにすることも、またはより遅いカウンタの場合は複数の単位とすることもできる。タイマの時間切れが検出されない場合（６０６で、「いいえ」の分岐）、カウンタは変更されない。
【００８３】
一例では、アクティブ化コマンドおよびタイマの時間切れを確認した後、メモリコントローラは、６０８でカウンタが、閾値に達したことを示す時間切れの制限を超えているかどうかを判定することができる。閾値に達すると、一例では、メモリコントローラは、６１０で追加のリフレッシュコマンドを送信し、カウンタをリセットする。一例では、カウンタが閾値に達していない場合、メモリシステムは６０２でアクティブ化コマンドを監視し続ける。
【００８４】
図７は、ホスト支援ロウハンマ緩和を実装できるメモリサブシステムの一例を示すブロック図である。システム７００は、コンピューティングデバイスのプロセッサおよびメモリサブシステムの要素を含む。システム７００は、図１のシステム１００の一例に従うことができる。
【００８５】
一例では、メモリデバイス７４０は、メモリデバイスがメモリデバイスの内部でロウハンマ緩和を管理することを可能にするロウハンマロジックを表すロウハンマロジック７８０を含む。一例では、メモリコントローラ７２０は、本明細書で提供される任意の例に従ってホスト支援ロウハンマ緩和を提供するロウハンマロジック７９０を含む。ロウハンマロジック７９０は、ロウハンマロジック７８０を介して潜在的な被害行のリフレッシュをメモリデバイス７４０が実行することを可能にする追加のリフレッシュコマンドをコントローラが送信することを可能にする。
【００８６】
一例では、メモリモジュール７７０はＤＩＭＭを表し、レジスタ（例えば、ＲＤＩＭＭ、すなわち、レジスタードＤＩＭＭ）を含む。一例では、メモリモジュール７７０は、別個にアドレス指定可能な複数のバッファを含む。ＲＤＩＭＭでは、レジスタはＣ／Ａバスをバッファリングするだけでなく、データ線をバッファリングすることができる。本明細書に記載されるコマンドバス固有のＰＤＡ動作は、レジスタまたはバッファまたはレジスタードクロックデバイスの有無にかかわらず、システム７００で利用できる。
【００８７】
プロセッサ７１０は、オペレーティングシステム（ＯＳ）およびアプリケーションを実行し得るコンピューティングプラットフォームの処理ユニットを表し、処理ユニットは集合的にメモリのホストまたはユーザと呼ぶことができる。ＯＳおよびアプリケーションは、メモリアクセスに至る動作を実行する。プロセッサ７１０は、１つまたは複数の別個のプロセッサを含むことができる。各別個のプロセッサには、単一の処理ユニット、マルチコア処理ユニット、またはその組み合わせを含めることができる。処理装置は、ＣＰＵ（中央処理装置）などのプライマリプロセッサ、ＧＰＵ（グラフィック処理装置）などの周辺プロセッサ、またはその組み合わせとすることができる。メモリアクセスはまた、ネットワークコントローラまたはハードディスクコントローラなどのデバイスによって開始され得る。このようなデバイスは、一部のシステムのプロセッサと統合され得るか、またはバス（例えば、ＰＣＩエクスプレス）、またはそれらの組み合わせを介してプロセッサに接続され得る。システム７００は、ＳＯＣ（システムオンチップ）として実装するか、またはスタンドアロン構成要素で実装できる。
【００８８】
メモリデバイスへの言及は、様々なメモリタイプに適用できる。メモリデバイスは、多くの場合、揮発性メモリ技術を指す。揮発性メモリとは、デバイスへの電力が遮断された場合に状態（およびそれに格納されるデータ）が不定になるメモリである。不揮発性メモリとは、デバイスへの電力が遮断された場合でも状態が確定しているメモリのことである。動的揮発性メモリでは、状態を維持するためにデバイスに格納されているデータをリフレッシュする必要がある。ダイナミック揮発性メモリの一例には、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）、またはシンクロナスＤＲＡＭ（ＳＤＲＡＭ）などの何らかの派生形がある。本明細書で説明されるメモリサブシステムは、ＤＤＲ４（ＤＤＲバージョン４、ＪＥＳＤ７９、２０１２年９月にＪＥＤＥＣにより公開された初期仕様）、ＬＰＤＤＲ４（低電力ＤＤＲバージョン４、ＪＥＳＤ２０９−４、２０１４年８月にＪＥＤＥＣにより最初に公開される）、ＷＩＯ２（Ｗｉｄｅ  Ｉ／Ｏ  ２（ＷｉｄｅＩＯ２）、ＪＥＳＤ２２９−２、２０１４年８月にＪＥＤＥＣにより最初に公開される）、ＨＢＭ（高帯域幅メモリＤＲＡＭ、ＪＥＳＤ２３５Ａ、２０１５年１１月にＪＥＤＥＣにより最初に公開される）、ＤＤＲ５（ＤＤＲバージョン５、現在ＪＥＤＥＣで議論中）、ＬＰＤＤＲ５（現在ＪＥＤＥＣで議論中）、ＨＢＭ２（（ＨＢＭバージョン２）、現在ＪＥＤＥＣで議論中）、またはその他またはメモリ技術の組み合わせ、およびそのような仕様の派生物または拡張に基づく技術などの複数のメモリ技術と互換性があり得る。
【００８９】
一例では、揮発性メモリに加えて、または代替的に、メモリデバイスへの言及は、デバイスへの電力が遮断された場合でも状態が確定する不揮発性メモリデバイスを指すことができる。一例では、不揮発性メモリデバイスは、ＮＡＮＤまたはＮＯＲ技術などのブロックアドレス可能なメモリデバイスである。したがって、メモリデバイスは、三次元クロスポイントメモリデバイス、他のバイトアドレス指定可能な不揮発性メモリデバイス、またはカルコゲナイド相変化材料（例えば、カルコゲナイドガラス）を使用するメモリデバイスなど、次世代の不揮発性デバイスも含むことができる。一例では、メモリデバイスは、多閾値レベルのＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、シングルまたはマルチレベルの相変化メモリ（ＰＣＭ）またはスイッチ付き相変化メモリ（ＰＣＭＳ）、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ（ＦｅＴＲＡＭ）、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）メモリ、またはスピントランスファトルク（ＳＴＴ）−ＭＲＡＭ、または上記のいずれかの組み合わせ、またはその他のメモリとすることができるか、あるいはそれらを含むことができる。
【００９０】
本明細書で「ＲＡＭ」または「ＲＡＭデバイス」を言及する説明は、揮発性であるか不揮発性であるかにかかわらず、ランダムアクセスを可能にする任意のメモリデバイスに適用することができる。「ＤＲＡＭ」または「ＤＲＡＭデバイス」を言及する説明は、揮発性ランダムアクセスメモリデバイスを指すことができる。メモリデバイスまたはＤＲＡＭは、ダイ自体、１つまたは複数のダイを含むパッケージメモリ製品、またはその両方を指すことができる。一例では、リフレッシュする必要のある揮発性メモリを有するシステムは、不揮発性メモリも含むことができる。
【００９１】
メモリコントローラ７２０は、システム７００用の１つまたは複数のメモリコントローラ回路またはデバイスを表す。メモリコントローラ７２０は、プロセッサ７１０による動作の実行に応答して、メモリアクセスコマンドを生成する制御ロジックを表す。メモリコントローラ７２０は、１つまたは複数のメモリデバイス７４０にアクセスする。メモリデバイス７４０は、上記で言及したいずれかに従うＤＲＡＭデバイスとすることができる。一例では、メモリデバイス７４０は、異なるチャネルとして編成および管理され、各チャネルは、複数のメモリデバイスに並列に結合するバスおよび信号線に結合する。各チャネルは独立して動作可能である。したがって、各チャネルは独立してアクセスおよび制御され、タイミング、データ転送、コマンドおよびアドレス交換、およびその他の動作はチャネルごとに別個である。結合とは、電気的結合、通信的結合、物理的結合、またはこれらの組み合わせを指すことができる。物理的結合は直接接触を含むことができる。電気的結合は、構成要素間の電気的な流れを可能にする、または構成要素間の信号伝達を可能にする、またはその両方を可能にするインターフェイスまたは相互接続を含む。通信的結合は、構成要素がデータを交換することを可能にする、有線または無線を含む接続を含む。
【００９２】
一例では、チャネルごとの設定は、別個のモードレジスタまたはその他のレジスタ設定によって制御される。一例では、各メモリコントローラ７２０は別個のメモリチャネルを管理するが、システム７００は単一のコントローラにより管理される複数のチャネルを有するように、または単一のチャネル上に複数のコントローラを有するように構成することができる。一例では、メモリコントローラ７２０は、同じダイ上に実装されるか、またはプロセッサと同じパッケージスペースに実装されるロジックなど、ホストプロセッサ７１０の一部である。
【００９３】
メモリコントローラ７２０は、上記で言及したメモリチャネルなどのメモリバスに結合するためのＩ／Ｏインターフェイスロジック７２２を含む。Ｉ／Ｏインターフェイスロジック７２２（ならびにメモリデバイス７４０のＩ／Ｏインターフェイスロジック７４２）は、ピン、パッド、コネクタ、信号線、トレース、またはワイヤ、またはデバイスを接続する他のハードウェア、またはこれらの組み合わせを含むことができる。Ｉ／Ｏインターフェイスロジック７２２は、ハードウェアインターフェイスを含むことができる。図示されているように、Ｉ／Ｏインターフェイスロジック７２２は、少なくとも信号線用のドライバ／トランシーバを含む。一般に、集積回路インターフェイス内のワイヤは、パッド、ピン、またはコネクタと結合して、デバイス間の信号線またはトレースまたは他のワイヤをインターフェイスする。Ｉ／Ｏインターフェイスロジック７２２は、ドライバ、レシーバ、トランシーバ、または終端部、または他の回路または回路の組み合わせを含み、デバイス間で信号線上の信号を交換することができる。信号の交換は、送信または受信の少なくとも１つを含む。メモリコントローラ７２０からメモリデバイス７４０のＩ／Ｏ７４２へＩ／Ｏ７２２を結合するように示されているが、メモリデバイス７４０のグループが並列にアクセスされるシステム７００の実装では、複数のメモリデバイスがメモリコントローラ７２０の同じインターフェイスへのＩ／Ｏインターフェイスを含むことができることが理解されるであろう。１つまたは複数のメモリモジュール７７０を含むシステム７００の実装では、Ｉ／Ｏ７４２は、メモリデバイス自体のインターフェイスハードウェアに加えて、メモリモジュールのインターフェイスハードウェアを含むことができる。他のメモリコントローラ７２０は、他のメモリデバイス７４０への別個のインターフェイスを含む。
【００９４】
メモリコントローラ７２０とメモリデバイス７４０との間のバスは、メモリコントローラ７２０をメモリデバイス７４０に結合する複数の信号線として実装することができる。バスは、典型的には、少なくともクロック（ＣＬＫ）７３２、コマンド／アドレス（ＣＭＤ）７３４、書き込みデータ（ＤＱ）および読み取りデータ（ＤＱ）７３６、ならびにゼロ以上の他の信号線７３８を含み得る。一例では、メモリコントローラ７２０とメモリとの間のバスまたは接続は、メモリバスと呼ぶことができる。ＣＭＤの信号線は、「Ｃ／Ａバス」（またはＡＤＤ／ＣＭＤバス、またはコマンド（ＣまたはＣＭＤ）およびアドレス（ＡまたはＡＤＤ）情報の転送を示す他の何らかの名称）と呼ぶことができ、書き込みおよび読み取りＤＱの信号線は「データバス」と呼ぶことができる。一例では、独立したチャネルは、異なるクロック信号、Ｃ／Ａバス、データバス、およびその他の信号線を有する。したがって、システム７００は、独立したインターフェイス経路を別個のバスと考えることができるという意味で、複数の「バス」を有すると考えることができる。明示的に示された線に加えて、バスは、ストローブ信号線、警告線、補助線、または他の信号線、またはそれらの組み合わせのうちの少なくとも１つを含むことができることが理解されるであろう。また、メモリコントローラ７２０とメモリデバイス７４０との間の接続にシリアルバス技術を使用できることも理解されるであろう。シリアルバス技術の一例としては、８Ｂ１０Ｂ符号化および各方向の単一の差動ペア信号を介した埋め込みクロックによる高速データの送信がある。一例では、ＣＭＤ７３４は、複数のメモリデバイスと並列に共有される信号線を表す。一例では、複数のメモリデバイスは、ＣＭＤ７３４の符号化コマンド信号線を共有し、それぞれが個々のメモリデバイスを選択するための別個のチップ選択（ＣＳ＿ｎ）信号線を有する。
【００９５】
システム７００の例では、メモリコントローラ７２０とメモリデバイス７４０との間のバスは、補助コマンドバスＣＭＤ７３４および書き込みデータおよび読み取りデータＤＱ７３６を伝送する補助バスを含むことが理解されるであろう。一例では、データバスは、読み取りデータおよび書き込み／コマンドデータ用の双方向線を含むことができる。別の例では、補助バスＤＱ７３６は、ホストからメモリへの書き込みおよびデータのための一方向書き込み信号線を含むことができ、メモリからホストへのデータの読み取りのための一方向線を含むことができる。選択されたメモリ技術およびシステム設計に従って、他の信号７３８は、ストローブ線ＤＱＳなどのバスまたはサブバスに付随し得る。システム７００の設計、または設計が複数の実装をサポートする場合の実装に基づいて、データバスは、メモリデバイス７４０ごとに、より多いまたはより少ない帯域幅を有することができる。例えば、データバスは、ｘ３２インターフェイス、ｘ１６インターフェイス、ｘ８インターフェイス、またはその他のインターフェイスのいずれかを有するメモリデバイスをサポートすることができる。命名規則「ｘＷ」のＷは、メモリデバイス７４０のインターフェイスのインターフェイスサイズまたは幅を指す整数であり、メモリコントローラ７２０とデータを交換するための信号線の数を表す。メモリデバイスのインターフェイスサイズは、システム７００内のチャネルごとに同時に使用できる、または同じ信号線に並列に結合できるメモリデバイスの数に関する制御因子である。一例では、高帯域幅メモリデバイス、ワイドインターフェイスデバイス、または積層メモリ構成、またはそれらの組み合わせは、ｘ１２８インターフェイス、ｘ２５６インターフェイス、ｘ５１２インターフェイス、ｘ１０２４インターフェイス、または他のデータバスインターフェイス幅などのより幅広いインターフェイスを使用可能にすることができる。
【００９６】
一例では、メモリデバイス７４０およびメモリコントローラ７２０は、バーストで、または連続する一連のデータ転送で、データバスを介してデータを交換する。バーストは、バス周波数に関連する転送サイクルの数に対応する。一例では、転送サイクルは、同じクロックまたはストローブ信号エッジ（例えば、立ち上がりエッジ）で発生する転送の全クロックサイクルとすることができる。一例では、システムクロックのサイクルを参照するすべてのクロックサイクルは、複数のユニットインターバル（ＵＩ）に分割され、各ＵＩは転送サイクルである。例えば、ダブルデータレート転送は、クロック信号の両方のエッジでトリガする（例えば、立ち上がりおよび立ち下がり）。バーストは、構成された数のＵＩの間持続でき、これは、レジスタに格納されるコンフィグレーションでもよいし、オンザフライでトリガされるコンフィグレーションでもよい。例えば、８つの連続する一連の転送期間は、バースト長８（ＢＬ８）と考えることができ、各メモリデバイス７４０は、各ＵＩでデータを転送できる。したがって、ＢＬ８で動作するｘ８メモリデバイスは、６４ビットのデータを転送することができる（［８データ信号線］×［バーストを介して線ごとに転送される８データビット］）。この単純な例は単なる例示であり、限定するものではないことが理解されるだろう。
【００９７】
メモリデバイス７４０は、システム７００のメモリリソースを表す。一例では、各メモリデバイス７４０は別個のメモリダイである。一例では、各メモリデバイス７４０は、デバイスごとまたはダイごとに複数の（例えば、２つの）チャネルとインターフェイスすることができる。各メモリデバイス７４０は、デバイスの実装によって決定される帯域幅（例えば、ｘ１６またはｘ８または他の何らかのインターフェイス帯域幅）を有するＩ／Ｏインターフェイスロジック７４２を含む。Ｉ／Ｏインターフェイスロジック７４２は、メモリデバイスがメモリコントローラ７２０とインターフェイスすることを可能にする。Ｉ／Ｏインターフェイスロジック７４２は、ハードウェアインターフェイスを含むことができ、メモリコントローラのＩ／Ｏ７２２に沿ってもよいが、メモリデバイスの端部にあってもよい。一例では、複数のメモリデバイス７４０が同じコマンドおよびデータバスに並列に接続される。別の例では、複数のメモリデバイス７４０が同じコマンドバスに並列に接続され、異なるデータバスに接続される。例えば、システム７００は、並列に結合された複数のメモリデバイス７４０で構成することができ、各メモリデバイスはコマンドに応答し、各内部のメモリリソース７６０にアクセスする。Ｗｒｉｔｅ動作の場合、個々のメモリデバイス７４０は、データワード全体の一部を書き込むことができ、Ｒｅａｄ動作の場合、個々のメモリデバイス７４０は、データワード全体の一部をフェッチすることができる。非限定的な例として、特定のメモリデバイスは、それぞれ、ＲｅａｄまたはＷｒｉｔｅトランザクション用の１２８ビットデータワードの８ビット、または２５６ビットデータワードの８ビットまたは１６ビット（ｘ８またはｘ１６デバイスに依存）を提供または受信することができる。ワードの残りのビットは、他のメモリデバイスによって並列に提供または受信される。
【００９８】
一例では、メモリデバイス７４０は、コンピューティングデバイスのマザーボードまたはホストシステムプラットフォーム（例えば、プロセッサ７１０が配置されるＰＣＢ（プリント回路基板））上に直接配置される。一例では、メモリデバイス７４０は、メモリモジュール７７０に編成することができる。一例では、メモリモジュール７７０はデュアルインラインメモリモジュール（ＤＩＭＭ）を表す。一例では、メモリモジュール７７０は、ホストシステムプラットフォームからの別個の回路、別個のデバイス、または別個のボードとすることができる、アクセスまたは制御回路の少なくとも一部を共有する複数のメモリデバイスの他の編成を表す。メモリモジュール７７０は、複数のメモリデバイス７４０を含むことができ、メモリモジュールは、それらに配置された包含済みのメモリデバイスへの複数の別個のチャネルのサポートを含むことができる。別の例では、メモリデバイス７４０は、マルチチップモジュール（ＭＣＭ）、パッケージオンパッケージ、シリコン貫通ビア（ＴＳＶ）、または他の技術またはそれらの組み合わせなどの技術によって、メモリコントローラ７２０と同じパッケージに組み込まれ得る。同様に、一例では、それ自体をメモリコントローラ７２０と同じパッケージに組み込み得る、メモリモジュール７７０に複数のメモリデバイス７４０を組み込み得る。これらおよび他の実装では、メモリコントローラ７２０はホストプロセッサ７１０の一部であり得ることが理解されるであろう。
【００９９】
メモリデバイス７４０はそれぞれ、メモリリソース７６０を含む。メモリリソース７６０は、データのメモリ場所または記憶場所の個々のアレイを表す。典型的に、メモリリソース７６０は、ワード線（行）およびビット線（行内の個々のビット）制御を介してアクセスされるデータの行として管理される。メモリリソース７６０は、別個のチャネル、ランク、およびメモリバンクとして編成することができる。チャネルは、メモリデバイス７４０内の記憶場所への独立した制御パスを指し得る。ランクは、複数のメモリデバイスの共通の場所を指し得る（例えば、異なるデバイス内の同じ行アドレス）。バンクは、メモリデバイス７４０内のメモリ場所のアレイを指し得る。一例では、メモリのバンクは、サブバンク用の共有回路（例えば、ドライバ、信号線、制御ロジック）の少なくとも一部を有するサブバンクに分割され、別個のアドレス指定およびアクセスを可能にする。チャネル、ランク、バンク、サブバンク、バンクグループ、またはメモリ場所の他の組織、およびそれら組織の組み合わせは、物理リソースへの適用において重複する可能性があることが理解されるであろう。例えば、同じ物理メモリの場所に、ランクに属することもできる、特定のバンクとして特定のチャネルを介してアクセスすることができる。したがって、メモリリソースの編成は、排他的な方法ではなく、包括的な方法で理解されるであろう。
【０１００】
一例では、メモリデバイス７４０は、１つまたは複数のレジスタ７４４を含む。レジスタ７４４は、メモリデバイスの動作のためのコンフィグレーションまたは設定を提供する１つまたは複数の記憶装置または記憶場所を表す。一例では、レジスタ７４４は、制御または管理動作の一部として、メモリコントローラ７２０によるアクセスのためのデータを格納するメモリデバイス７４０の記憶場所を提供することができる。一例では、レジスタ７４４は１つまたは複数のモードレジスタを含む。一例では、レジスタ７４４は１つまたは複数の多目的レジスタを含む。レジスタ７４４内の場所のコンフィグレーションは、異なる「モード」で動作するようにメモリデバイス７４０を構成することができ、コマンド情報は、モードに基づいてメモリデバイス７４０内の異なる動作をトリガすることができる。追加的または代替的に、異なるモードは、モードに応じてアドレス情報または他の信号線から異なる動作をトリガすることもできる。レジスタ７４４の設定は、Ｉ／Ｏ設定のコンフィグレーション（例えば、タイミング、ターミネーションまたはＯＤＴ（オンダイターミネーション）７４６、ドライバコンフィグレーション、または他のＩ／Ｏ設定）を示すことができる。
【０１０１】
一例では、メモリデバイス７４０は、Ｉ／Ｏ７４２に関連するインターフェイスハードウェアの一部としてＯＤＴ７４６を含む。ＯＤＴ７４６は上記のように構成でき、特定の信号線へのインターフェイスに適用されるインピーダンスの設定を提供する。一例では、ＯＤＴ７４６はＤＱ信号線に適用される。一例では、ＯＤＴ７４６はコマンド信号線に適用される。一例では、ＯＤＴ７４６はアドレス信号線に適用される。一例では、ＯＤＴ７４６は上記の任意の組み合わせに適用することができる。ＯＤＴ設定は、メモリデバイスがアクセス動作の選択されたターゲットであるか、非ターゲットデバイスであるかに基づいて変更することができる。ＯＤＴ７４６の設定は、終端回線でのシグナリングのタイミングおよび反映に影響を与える可能性がある。ＯＤＴ７４６を慎重に制御することにより、印加されるインピーダンスおよび負荷の整合性を向上させ、高速動作を可能にすることができる。ＯＤＴ７４６は、Ｉ／Ｏインターフェイス７４２、７２２の特定の信号線に適用することができるが、必ずしもすべての信号線に適用されるわけではない。
【０１０２】
メモリデバイス７４０は、メモリデバイス内の内部動作を制御するためのメモリデバイス内の制御ロジックを表すコントローラ７５０を含む。例えば、コントローラ７５０は、メモリコントローラ７２０によって送信されたコマンドを復号化し、コマンドを実行または満たすための内部動作を生成する。コントローラ７５０は、内部コントローラと呼ぶことができ、ホストのメモリコントローラ７２０とは別個のものである。コントローラ７５０は、レジスタ７４４に基づいて、どのモードが選択されるかを決定し、選択されたモードに基づいてメモリリソース７６０へのアクセスのための動作または他の動作ための内部実行を構成することができる。コントローラ７５０は、メモリデバイス７４０内のビットのルーティングを制御する制御信号を生成して、選択されたモードに適切なインターフェイスを提供し、コマンドを適切なメモリ場所またはアドレスに送る。コントローラ７５０は、コマンドおよびアドレス信号線で受信したコマンド符号化を復号化することができるコマンドロジック７５２を含む。したがって、コマンドロジック７５２は、コマンドデコーダとすることができるか、またはコマンドデコーダを含むことができる。コマンドロジック７５２を使用すると、メモリデバイスはコマンドを識別し、要求されたコマンドを実行するための内部操作を生成することができる。
【０１０３】
再びメモリコントローラ７２０を参照すると、メモリコントローラ７２０は、メモリデバイス７４０に送信するコマンドを生成するロジックまたは回路を表すコマンド（ＣＭＤ）ロジック７２４を含む。コマンドの生成は、スケジューリングの前のコマンド、または送信する準備ができているキューに入れられたコマンドの準備を指すことができる。一般に、メモリサブシステムにおけるシグナリングは、メモリデバイスがコマンドを実行すべき１つまたは複数のメモリ位置を指示または選択するために、コマンド内またはコマンドに付随するアドレス情報を含む。メモリデバイス７４０のトランザクションのスケジューリングに応答して、メモリコントローラ７２０は、メモリデバイス７４０にコマンドを実行させるために、Ｉ／Ｏ７２２を介してコマンドを発行することができる。一例では、メモリデバイス７４０のコントローラ７５０は、メモリコントローラ７２０からＩ／Ｏ７４２を介して受信したコマンドおよびアドレス情報を受信および復号化する。受信したコマンドおよびアドレス情報に基づいて、コントローラ７５０は、メモリデバイス７４０内のロジックおよび回路の動作のタイミングを制御して、コマンドを実行することができる。コントローラ７５０は、タイミングおよびシグナリング要件など、メモリデバイス７４０内の規格または仕様に準拠する役割を果たす。メモリコントローラ７２０は、アクセスのスケジューリングおよび制御により、規格または仕様への準拠を実装することができる。
【０１０４】
メモリコントローラ７２０は、メモリデバイス７４０に送信するトランザクションを生成し順序付けるためのロジックまたは回路を表すスケジューラ７３０を含む。一つの観点から、メモリコントローラ７２０の主な機能は、メモリデバイス７４０へのメモリアクセスおよび他のトランザクションをスケジュールすることであると言うことができる。そのようなスケジューリングは、プロセッサ７１０によるデータの要求を実施し、データの整合性を（例えば、リフレッシュに関連するコマンドなどで）維持するために、トランザクション自体を生成することを含むことができる。トランザクションには、１つまたは複数のコマンドを含めることができ、その結果、クロックサイクルまたは単位間隔などの１つまたは複数のタイミングサイクルにわたってコマンドまたはデータ、あるいはその両方が転送される。トランザクションは、読み取りまたは書き込み、または関連コマンド、またはそれらの組み合わせなどのアクセス用であり、他のトランザクションは、コンフィグレーション、設定、データ完全性、または他のコマンドまたはそれらの組み合わせのためのメモリ管理コマンドを含むことができる。
【０１０５】
メモリコントローラ７２０は、典型的には、システム７００の性能を向上させるために、トランザクションの選択および順序付けを可能にするスケジューラ７３０などのロジックを含む。したがって、メモリコントローラ７２０は、未処理のトランザクションのうちのどれをメモリデバイス７４０にどの順序で送信すべきかを選択することができ、これは、典型的には、単純な先入れ先出しアルゴリズムよりもはるかに複雑なロジックで実現される。メモリコントローラ７２０は、メモリデバイス７４０へのトランザクションの送信を管理し、トランザクションに関連するタイミングを管理する。一例では、トランザクションは、メモリコントローラ７２０によって管理され、スケジューラ７３０を使用してトランザクションをスケジュールする方法を決定する際に使用できる、決定論的タイミングを有する。
【０１０６】
一例では、メモリコントローラ７２０はリフレッシュ（ＲＥＦ）ロジック７２６を含む。リフレッシュロジック７２６は、揮発性であり、決定論的状態を保持するためにリフレッシュする必要があるメモリリソースに使用することができる。一例では、リフレッシュロジック７２６は、リフレッシュの場所、および実行するリフレッシュのタイプを示す。リフレッシュロジック７２６は、リフレッシュコマンドまたはその組み合わせを送信することによって、メモリデバイス７４０内のセルフリフレッシュをトリガするか、または自動リフレッシュコマンドと呼ぶことができる外部リフレッシュを実行することができる。一例では、システム７００は、すべてのバンクリフレッシュならびにバンクごとのリフレッシュをサポートする。すべてのバンクリフレッシュにより、並列に結合されたすべてのメモリデバイス７４０内のバンクがリフレッシュされる。バンクごとのリフレッシュにより、特定のメモリデバイス７４０内の特定のバンクがリフレッシュされる。一例では、メモリデバイス７４０内のコントローラ７５０は、メモリデバイス７４０内にリフレッシュを適用するためのリフレッシュロジック７５４を含む。一例では、リフレッシュロジック７５４は、メモリコントローラ７２０から受信した外部リフレッシュに従ってリフレッシュを実行するための内部動作を生成する。リフレッシュロジック７５４は、リフレッシュがメモリデバイス７４０に指示されているかどうか、およびコマンドに応答してどのメモリリソース７６０をリフレッシュするかを決定することができる。
【０１０７】
図８は、ホスト支援ロウハンマ緩和を実装できるコンピューティングシステムの一例を示すブロック図である。システム８００は、本明細書の任意の例に従ったコンピューティングデバイスを表し、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバ、ゲームまたはエンターテイメント制御システム、組み込みコンピューティングデバイス、または他の電子デバイスとすることができる。システム８００は、システム１００に従ったシステムの一例を提供する。
【０１０８】
一例では、メモリサブシステム８２０は、本明細書の任意の例に従ったホスト支援ロウハンマ緩和を可能にするロウハンマロジックを表すロウハンマロジック８９０を含む。ロウハンマロジックは、メモリデバイスの内部でロウハンマ緩和を管理するために、メモリデバイス内のロジックを含むことができる。一例では、ロウハンマロジック８９０は、本明細書で提供される任意の例に従ってホスト支援ロウハンマ緩和を提供するために、メモリコントローラ８２２にロウハンマロジックを含む。ロウハンマロジック８９０は、コントローラが追加のリフレッシュコマンドを送信することを可能にし、メモリ８３０がアクティブ化コマンドの数に基づいて潜在的な被害行のリフレッシュを実行できるようにする。
【０１０９】
システム８００は、システム８００に対する命令の処理または実行を提供するために、任意のタイプのマイクロプロセッサ、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、処理コア、または他の処理ハードウェア、またはそれらの組み合わせを含むことができるプロセッサ８１０を含む。プロセッサ８１０は、システム８００の全体的な動作を制御し、１つまたは複数のプログラム可能な汎用または専用マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、プログラマブルコントローラ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、またはそのようなデバイスの組み合わせとすることができるか、または含むことができる。
【０１１０】
一例では、システム８００は、メモリサブシステム８２０またはグラフィックスインターフェイス構成要素８４０など、より高い帯域幅の接続を必要とするシステム構成要素の高速インターフェイスまたは高スループットインターフェイスを表すことができる、プロセッサ８１０に結合されたインターフェイス８１２を含む。インターフェイス８１２は、スタンドアロンの構成要素とすることができる、またはプロセッサダイ上に統合させることができる、インターフェイス回路を表す。インターフェイス８１２は、回路としてプロセッサダイに統合することができるか、またはシステムオンチップの構成要素として統合することができる。存在する場合、グラフィックスインターフェイス８４０は、システム８００のユーザに視覚表示を提供するためにグラフィックス構成要素にインターフェイスする。グラフィックスインターフェイス８４０は、スタンドアロン構成要素とすることができるか、またはプロセッサダイまたはシステムオンチップに統合することができる。一例では、グラフィックスインターフェイス８４０は、ユーザに出力を提供する高精細（ＨＤ）ディスプレイを駆動することができる。一例では、ディスプレイはタッチスクリーンディスプレイを含むことができる。一例では、グラフィックスインターフェイス８４０は、メモリ８３０に格納されたデータに基づいて、またはプロセッサ８１０によって実行される動作に基づいて、あるいは両方に基づいてディスプレイを生成する。
【０１１１】
メモリサブシステム８２０は、システム８００のメインメモリを表し、プロセッサ８１０によって実行されるコード、またはルーチンを実行する際に使用されるデータ値のための記憶装置を提供する。メモリサブシステム８２０は、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ＤＲＡＭなどの１つまたは複数のランダムアクセスメモリ（ＲＡＭ）、または他のメモリデバイス、あるいはそのようなデバイスの組み合わせなど、１つまたは複数のメモリデバイス８３０を含むことができる。メモリ８３０は、とりわけ、オペレーティングシステム（ＯＳ）８３２を格納およびホストし、システム８００で命令を実行するためのソフトウェアプラットフォームを提供する。さらに、アプリケーション８３４は、メモリ８３０のＯＳ８３２のソフトウェアプラットフォームで実行することができる。アプリケーション８３４は、１つまたは複数の機能の実行を実行するための独自の動作ロジックを有するプログラムを表す。プロセス８３６は、ＯＳ８３２または１つまたは複数のアプリケーション８３４あるいはその組み合わせに補助機能を提供するエージェントまたはルーチンを表す。ＯＳ８３２、アプリケーション８３４、およびプロセス８３６は、システム８００に機能を提供するソフトウェアロジックを提供する。一例では、メモリサブシステム８２０は、コマンドを生成してメモリ８３０に発行するメモリコントローラであるメモリコントローラ８２２を含む。メモリコントローラ８２２は、プロセッサ８１０の物理的な部分、またはインターフェイス８１２の物理的な部分とすることができることが理解されるであろう。例えば、メモリコントローラ８２２は、プロセッサダイまたはシステムオンチップに統合されるようなプロセッサ８１０を有する回路に統合される統合メモリコントローラとすることができる。
【０１１２】
具体的に示されていないが、システム８００は、メモリバス、グラフィックスバス、インターフェイスバスなどのデバイス間の１つまたは複数のバスまたはバスシステムを含むことができることが理解されるであろう。バスまたは他の信号線は、構成要素を互いに通信可能にまたは電気的に結合するか、または構成要素を通信可能にも電気的にも両方で結合することができる。バスには、物理通信回線、ポイントツーポイント接続、ブリッジ、アダプタ、コントローラ、またはその他の回路、あるいはそれらの組み合わせを含めることができる。バスには、例えば、システムバス、ペリフェラル  コンポーネント  インターコネクト（ＰＣＩ）バス、ハイパートランスポートまたは業界標準アーキテクチャ（ＩＳＡ）バス、小型コンピュータシステムインターフェイス（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、またはその他のバス、あるいはそれらの組み合わせのうちの１つまたは複数を含むことができる。
【０１１３】
一例では、システム８００は、インターフェイス８１２に結合することができる、インターフェイス８１４を含む。インターフェイス８１４は、インターフェイス８１２よりも低速のインターフェイスとすることができる。一例では、インターフェイス８１４は、スタンドアロン構成要素および集積回路を含むことができるインターフェイス回路を表す。一例では、複数のユーザインターフェイス構成要素または周辺構成要素、あるいはその両方がインターフェイス８１４に結合する。ネットワークインターフェイス８５０は、システム８００に、１つまたは複数のネットワークを介してリモートデバイス（例えば、サーバまたは他のコンピューティングデバイス）と通信する能力を提供する。ネットワークインターフェイス８５０は、イーサネット（登録商標）アダプタ、無線相互接続構成要素、セルラネットワーク相互接続構成要素、ＵＳＢ（ユニバーサルシリアルバス）、または他の有線規格または無線規格に基づくインターフェイスまたは専用インターフェイスを含むことができる。ネットワークインターフェイス８５０は、メモリに格納されたデータを送信すること、またはメモリに格納されたデータを受信することを含むことができるリモートデバイスとデータを交換することができる。
【０１１４】
一例では、システム８００は、１つまたは複数の入力／出力（Ｉ／Ｏ）インターフェイス８６０を含む。Ｉ／Ｏインターフェイス８６０は、ユーザがシステム８００と相互作用する１つまたは複数のインターフェイス構成要素（例えば、音声、英数字、触覚／タッチ、または他のインターフェイス）を含むことができる。周辺インターフェイス８７０は、上記で具体的に言及されていない任意のハードウェアインターフェイスを含むことができる。周辺機器は一般に、システム８００に依存して接続するデバイスを指す。依存接続とは、動作を実行し、ユーザが相互作用する、ソフトウェアプラットフォームまたはハードウェアプラットフォーム、あるいはその両方をシステム８００が提供する接続である。
【０１１５】
一例では、システム８００は、データを不揮発的な方法で格納するための記憶装置サブシステム８８０を含む。一例では、特定のシステム実装で、記憶装置８８０の少なくとも特定の構成要素は、メモリサブシステム８２０の構成要素とオーバーラップすることができる。記憶装置サブシステム８８０は、１つまたは複数の磁気ディスク、ソリッドステートディスク、または光学ベースのディスク、またはそれらの組み合わせなど、不揮発性の方法で大量のデータを格納するための任意の従来の媒体とすることができるか、または含むことができる記憶装置（複数可）８８４を含む。記憶装置８８４は、コードまたは命令およびデータ８８６を永続的状態で保持する（すなわち、システム８００への電力供給の遮断にかかわらず、値は保持される）。記憶装置８８４は、一般に「メモリ」であると考えることができるが、メモリ８３０は、典型的には、プロセッサ８１０に命令を提供する実行メモリまたは動作メモリである。記憶装置８８４は不揮発性であるが、メモリ８３０は揮発性メモリを含むことができる（すなわち、システム８００への電力供給が遮断された場合、データの値または状態は不定である）。一例では、記憶装置サブシステム８８０は、記憶装置８８４とインターフェイスするコントローラ８８２を含む。一例では、コントローラ８８２は、インターフェイス８１４またはプロセッサ８１０の物理的部分であるか、またはプロセッサ８１０およびインターフェイス８１４の両方に回路またはロジックを含むことができる。
【０１１６】
電源８０２は、システム８００の構成要素に電力を提供する。より具体的には、電源８０２は、典型的には、システム８００の構成要素に電力を供給するために、システム８００の１つまたは複数の電力供給８０４とインターフェイスする。一例では、電力供給８０４は、壁コンセントに差し込むためのＡＣ−ＤＣ（交流から直流）アダプタを含む。そのようなＡＣ電力は、再生可能エネルギー（例えば、太陽光発電）電源８０２とすることができる。一例では、電源８０２は、外部ＡＣ−ＤＣコンバータなどのＤＣ電源を含む。一例では、電源８０２または電力供給８０４は、充電フィールドに近接して充電するための無線充電ハードウェアを含む。一例では、電源８０２は、内部バッテリまたは燃料電池電源を含むことができる。
【０１１７】
図９は、ホスト支援ロウハンマ緩和を実装できるモバイルデバイスの一例を示すブロック図である。システム９００は、コンピューティングタブレット、携帯電話またはスマートフォン、ウェアラブルコンピューティングデバイス、または他のモバイルデバイス、あるいは組み込みコンピューティングデバイスなどのモバイルコンピューティングデバイスを表す。特定の構成要素が一般的に示されており、そのようなデバイスのすべての構成要素がシステム９００に示されているわけではないことが理解されるであろう。システム９００は、システム１００に従ったシステムの一例を提供する。
【０１１８】
一例では、メモリサブシステム９６０は、リフレッシュを必要とする任意のメモリ９６２について本明細書の任意の例に従ったホスト支援ロウハンマ緩和を可能にするロウハンマロジックを表すロウハンマロジック９９０を含む。ロウハンマロジックは、メモリデバイスの内部でロウハンマ緩和を管理するために、メモリデバイス内のロジックを含むことができる。一例では、ロウハンマロジック９９０は、本明細書で提供される任意の例に従ってホスト支援ロウハンマ緩和を提供するために、メモリコントローラ９６４にロウハンマロジックを含む。ロウハンマロジック９９０は、コントローラが追加のリフレッシュコマンドを送信することを可能にし、メモリ９６２がアクティブ化コマンドの数に基づいて潜在的な被害行のリフレッシュを実行できるようにする。
【０１１９】
デバイス９００は、システム９００の主な処理動作を実行するプロセッサ９１０を含む。プロセッサ９１０は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、または他の処理手段などの１つまたは複数の物理デバイスを含むことができる。プロセッサ９１０によって実行される処理動作は、アプリケーションおよびデバイス機能が実行されるオペレーティングプラットフォームまたはオペレーティングシステムの実行を含む。処理動作は、人間のユーザまたは他のデバイスとのＩ／Ｏ（入力／出力）に関連する動作、電力管理に関連する動作、システム９００を別のデバイスに接続することに関連する動作、またはそれらの組み合わせを含む。処理動作は、音声Ｉ／Ｏ、ディスプレイＩ／Ｏ、またはその他のインターフェイス、あるいはそれらの組み合わせに関連する動作も含む。プロセッサ９１０は、メモリに格納されたデータを実行することができる。プロセッサ９１０は、メモリに格納されたデータを書き込むかまたは編集することができる。
【０１２０】
一例では、システム９００は１つまたは複数のセンサ９１２を含む。センサ９１２は、埋め込みセンサまたは外部センサへのインターフェイス、あるいはそれらの組み合わせを表す。センサ９１２は、システム９００が実装される環境またはデバイスの１つまたは複数の状態を、システム９００が監視または検出することを可能にする。センサ９１２は、環境センサ（温度センサ、動作検出器、光検出器、カメラ、化学センサ（例えば、一酸化炭素センサ、二酸化炭素センサ、または他の化学センサ）など）、圧力センサ、加速度計、ジャイロスコープ、医学または生理学センサ（例えば、生理学的属性を検出するためのバイオセンサ、心拍数モニタ、またはその他のセンサ）、またはその他のセンサ、またはそれらの組み合わせを含むことができる。センサ９１２は、ユーザの特徴を検出または認識する指紋認識システム、顔検出または認識システム、または他のシステムなどの生体認証システム用のセンサも含むことができる。センサ９１２は幅広く理解されるべきであり、システム９００で実装できる多くの異なるタイプのセンサを制限するものではない。一例では、１つまたは複数のセンサ９１２は、プロセッサ９１０と統合されたフロントエンド回路を介してプロセッサ９１０に結合する。一例では、１つまたは複数のセンサ９１２は、システム９００の別の構成要素を介してプロセッサ９１０に結合する。
【０１２１】
一例では、システム９００は、音声機能をコンピューティングデバイスに提供することに関連するハードウェア（例えば、音声ハードウェアおよび音声回路）およびソフトウェア（例えば、ドライバ、コーデック）構成要素を表す音声サブシステム９２０を含む。音声機能は、スピーカまたはヘッドフォン出力、ならびにマイクロフォン入力を含むことができる。そのような機能のためのデバイスは、システム９００に統合するか、またはシステム９００に接続することができる。一例では、ユーザは、プロセッサ９１０によって受信および処理される音声コマンドを提供することにより、システム９００と相互作用する。
【０１２２】
ディスプレイサブシステム９３０は、ユーザに提示するための視覚表示を提供するハードウェア（例えば、ディスプレイデバイス）およびソフトウェア構成要素（例えば、ドライバ）を表す。一例では、ディスプレイは、ユーザがコンピューティングデバイスと相互作用するための触覚構成要素またはタッチスクリーン要素を含む。ディスプレイサブシステム９３０は、ユーザにディスプレイを提供するために使用される特定のスクリーンまたはハードウェアデバイスを含む、ディスプレイインターフェイス９３２を含む。一例では、ディスプレイインターフェイス９３２は、ディスプレイに関連する少なくともいくつかの処理を実行するプロセッサ９１０（グラフィックプロセッサなど）とは別個のロジックを含む。一例では、ディスプレイサブシステム９３０は、出力および入力の両方をユーザに提供するタッチスクリーンデバイスを含む。一例では、ディスプレイサブシステム９３０は、出力をユーザに提供する高精細（ＨＤ）または超高精細（ＵＨＤ）ディスプレイを含む。一例では、ディスプレイサブシステムは、タッチスクリーンディスプレイを含むか、それを駆動する。一例では、ディスプレイサブシステム９３０は、メモリに格納されたデータに基づいて、またはプロセッサ９１０によって実行される動作に基づいて、あるいはその両方に基づいて、表示情報を生成する。
【０１２３】
Ｉ／Ｏコントローラ９４０は、ユーザとの相互作用に関連するハードウェアデバイスおよびソフトウェア構成要素を表す。Ｉ／Ｏコントローラ９４０は、音声サブシステム９２０またはディスプレイサブシステム９３０、あるいはその両方の一部であるハードウェアを管理するように動作することができる。さらに、Ｉ／Ｏコントローラ９４０は、ユーザがシステムと相互作用することができるシステム９００に接続する追加のデバイスのための接続ポイントを示す。例えば、システム９００に接続できるデバイスは、マイクロフォンデバイス、スピーカまたはステレオシステム、ビデオシステムまたはその他のディスプレイデバイス、キーボードまたはキーパッドデバイス、あるいはカードリーダまたはその他のデバイスなどの特定のアプリケーションで使用するためのその他のＩ／Ｏデバイスを含むことができる。
【０１２４】
上述したように、Ｉ／Ｏコントローラ９４０は、音声サブシステム９２０またはディスプレイサブシステム９３０またはその両方と相互作用することができる。例えば、マイクロフォンまたは他の音声デバイスを介した入力は、システム９００の１つまたは複数のアプリケーションまたは機能に入力またはコマンドを提供することができる。さらに、ディスプレイ出力の代わりに、またはディスプレイ出力に加えて、音声出力を提供することができる。別の例では、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスは、Ｉ／Ｏコントローラ９４０によって少なくとも部分的に管理できる入力デバイスとしても機能する。Ｉ／Ｏコントローラ９４０によって管理されるＩ／Ｏ機能を提供するために、システム９００上に追加のボタンまたはスイッチが存在する場合もある。
【０１２５】
一例では、Ｉ／Ｏコントローラ９４０は、加速度計、カメラ、光センサまたは他の環境センサ、ジャイロスコープ、全地球測位システム（ＧＰＳ）、またはシステム９００に含めることができる他のハードウェア、あるいはセンサ９１２などのデバイスを管理する。入力は、システムの動作に影響を与える環境入力（ノイズのフィルタリング、輝度検出用のディスプレイの調整、カメラのフラッシュの適用、またはその他の機能など）をシステムに提供するだけでなく、ユーザとの直接的な相互作用の一部とすることができる。
【０１２６】
一例では、システム９００は、バッテリ電力使用量、バッテリの充電、および省電力動作に関連する機能を管理する電力管理９５０を含む。電力管理９５０は、システム９００の構成要素に電力を供給する電源９５２からの電力を管理する。一例では、電源９５２は、壁コンセントに差し込むためのＡＣ−ＤＣ（交流から直流）アダプタを含む。そのようなＡＣ電力は、再生可能エネルギー（例えば、太陽光発電、モーションベースの電力）とすることができる。一例では、電源９５２は、外部ＡＣ−ＤＣコンバータなどのＤＣ電源によって提供することができるＤＣ電力のみを含む。一例では、電源９５２は、充電フィールドに近接して充電するための無線充電ハードウェアを含む。一例では、電源９５２は、内部バッテリまたは燃料電池電源を含むことができる。
【０１２７】
メモリサブシステム９６０は、システム９００に情報を格納するためのメモリデバイス（複数可）９６２を含む。メモリサブシステム９６０は、不揮発性メモリデバイス（メモリデバイスへの電力供給が遮断された場合でも状態は変化しない）または揮発性メモリデバイス（メモリデバイスへの電力供給が遮断された場合、状態は不定）、あるいはそれらの組み合わせを含むことができる。メモリ９６０は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、または他のデータ、ならびにシステム９００のアプリケーションおよび機能の実行に関連するシステムデータ（長期的でも一時的でも）を格納することができる。一例では、メモリサブシステム９６０は、メモリコントローラ９６４（システム９００の制御の一部と考えることができ、プロセッサ９１０の一部と考えられる可能性がある）を含む。メモリコントローラ９６４は、メモリデバイス９６２へのアクセスを制御するコマンドを生成および発行するスケジューラを含む。
【０１２８】
接続機能９７０は、システム９００が外部デバイスと通信することを可能にするためのハードウェアデバイス（例えば、無線コネクタまたは有線コネクタおよび通信ハードウェア、または有線ハードウェアおよび無線ハードウェアの組み合わせ）およびソフトウェア構成要素（例えば、ドライバ、プロトコルスタック）を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイントまたはベースステーション、ならびにヘッドセット、プリンタ、またはその他のデバイスなどの周辺機器などの別個のデバイスにすることもできる。一例では、システム９００は、メモリに記憶するために、またはディスプレイデバイスに表示するために、外部デバイスとデータを交換する。交換されたデータには、データを読み取り、書き込み、または編集するために、メモリに格納されるデータ、または既にメモリに格納されているデータを含めることができる。
【０１２９】
接続機能９７０は、複数の異なるタイプの接続機能を含めることができる。一般化するために、システム９００は、セルラ接続機能９７２および無線接続機能９７４と共に示される。セルラ接続機能９７２は、一般に、ＧＳＭ（登録商標）（移動通信用グローバルシステム）または変形物もしくは派生物、ＣＤＭＡ（コード分割多重アクセス）または変形物もしくは派生物、ＴＤＭ（時分割多重）または変形物もしくは派生物、ＬＴＥ（ロングタームエボリューション、「４Ｇ」とも呼ばれる）、またはその他のセルラサービス規格を介して提供されるなど、無線通信事業者によって提供されるセルラネットワーク接続機能を指す。無線接続機能９７４は、セルラではない無線接続機能を指し、パーソナルエリアネットワーク（Ｂｌｕｅｔｏｏｔｈ（登録商標）など）、ローカルエリアネットワーク（ＷｉＦｉなど）、ワイドエリアネットワーク（ＷｉＭａｘなど）、またはその他の無線通信、あるいはそれらの組み合わせを含めることができる。無線通信とは、非固体媒体を介した変調電磁放射の使用によるデータの転送を指す。有線通信は、固定通信媒体を介して行われる。
【０１３０】
周辺接続９８０は、ハードウェアインターフェイスおよびコネクタ、ならびに周辺接続を行うためのソフトウェア構成要素（例えば、ドライバ、プロトコルスタック）を含む。システム９００は、他のコンピューティングデバイスへの（「外へ」９８２）周辺デバイスとすることも、システム９００に接続される周辺デバイス（「外から」９８４）を有することもできることが理解されるであろう。デバイス９００は通常、システム９００上のコンテンツの管理（例えば、ダウンロード、アップロード、変更、同期）などの目的で他のコンピューティングデバイスに接続するための「ドッキング」コネクタを有する。さらに、ドッキングコネクタは、システム９００が、例えば、オーディオビジュアルまたは他のシステムへのコンテンツ出力を制御することを可能にする特定の周辺機器に、システム９００を接続することを可能にすることができる。
【０１３１】
専用ドッキングコネクタまたは他の専用接続ハードウェアに加えて、システム９００は、一般的なまたは規格に基づくコネクタを介して周辺接続９８０を行うことができる。一般的なタイプには、ユニバーサルシリアルバス（ＵＳＢ）コネクタ（複数の異なるハードウェアインターフェイスのいずれかを含むことがきる）、ミニディスプレイポート（ＭＤＰ）を含むディスプレイポート、高精細度マルチメディアインターフェイス（ＨＤＭＩ（登録商標））、またはその他のタイプが含まれる。
【０１３２】
一般に、本明細書の説明に関して、一例では、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスが、複数行のメモリを有するメモリアレイおよび、アクティブ化コマンドの閾値数の受信に応答して、メモリコントローラが、リフレッシュウィンドウ内の複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、ＤＲＡＭデバイスが、超過したリフレッシュコマンドに応答して、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含むコマンドを、関連するメモリコントローラから受信する入力／出力（Ｉ／Ｏ）ハードウェアを含む。
【０１３３】
一例では、アクティブ化の閾値数の受信は、特定の時間ウィンドウ内でのアクティブ化の閾値数の受信を含む。一例では、特定の時間ウィンドウ内でのアクティブ化の閾値数の受信がスライディングウィンドウを有し、各アクティブ化コマンドがカウントを増加させ、時間がカウントを減少させる。一例では、アクティブ化コマンドの閾値数が、チャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する。一例では、アクティブ化コマンドの閾値数が、バンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する。一例では、超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む。
【０１３４】
一般に、本明細書の説明に関連して、一例では、メモリコントローラは、複数行のメモリを有するメモリデバイスに送信するコマンドをキューに入れるバッファ、メモリデバイスに対するアクティブ化コマンドの数を追跡するカウンタ、およびアクティブ化コマンドの閾値数の検出に応答して、入力／出力（Ｉ／Ｏ）ハードウェアが、リフレッシュウィンドウ内の行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、超過したリフレッシュコマンドが、メモリデバイスをトリガして、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含むコマンドをメモリデバイスに送信するＩ／Ｏハードウェアを含む。
【０１３５】
一例では、アクティブ化の閾値数の検出が、特定の時間ウィンドウ内でのアクティブ化の閾値数の検出を含む。一例では、特定の時間ウィンドウ内でのアクティブ化の閾値数の検出がスライディングウィンドウを有し、各アクティブ化コマンドがカウンタを増加させ、時間がカウンタを減少させる。一例では、アクティブ化コマンドの閾値数が、メモリデバイスを含む複数のメモリデバイスのチャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する。一例では、アクティブ化コマンドの閾値数が、メモリデバイスのバンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する。一例では、超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む。
【０１３６】
一般に、本明細書の説明に関連して、一例では、システムは、複数行のメモリを有する複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスと、複数のＤＲＡＭデバイスに結合されたメモリコントローラであって、メモリデバイスに対するアクティブ化コマンドの数を追跡するカウンタを含むメモリコントローラと、複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含む複数のコマンドをメモリデバイスに送信する入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の検出に応答して、Ｉ／Ｏハードウェアが、リフレッシュウィンドウ内の行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、超過したリフレッシュコマンドが、ＤＲＡＭデバイスをトリガして、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、Ｉ／Ｏハードウェアとを含む。
【０１３７】
一例では、アクティブ化の閾値数の検出が、特定の時間ウィンドウ内でのアクティブ化の閾値数の検出を含む。一例では、特定の時間ウィンドウ内でのアクティブ化の閾値数の検出がスライディングウィンドウを有し、各アクティブ化コマンドがカウンタを増加させ、時間がカウンタを減少させる。一例では、アクティブ化コマンドの閾値数が、ＤＲＡＭデバイスのチャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する。一例では、アクティブ化コマンドの閾値数が、ＤＲＡＭデバイスごとに、アクティブ化コマンドの閾値数を有する。一例では、アクティブ化コマンドの閾値数が、特定のＤＲＡＭデバイスのバンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する。一例では、超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む。一例では、システムは、メモリコントローラに結合されたホストプロセッサデバイス、ホストプロセッサに通信可能に結合されたディスプレイ、ホストプロセッサに通信可能に結合されたネットワークインターフェイス、またはシステムに電力を供給するバッテリのうちの１つまたは複数を含む。
【０１３８】
本明細書に示される流れ図は、様々なプロセスアクションのシーケンスの例を提供する。流れ図は、ソフトウェアまたはファームウェアルーチン、ならびに物理的な動作によって実行される動作を示すことができる。流れ図は、ハードウェアおよび／またはソフトウェアで実装できる、有限状態機械（ＦＳＭ）の状態の実装の一例を示すことができる。特定のシーケンスまたは順序で示されているが、特に明記しない限り、アクションの順序は変更できる。したがって、図示された図表は単なる例として理解されるべきであり、プロセスは異なる順序で実行でき、いくつかのアクションは並列に実行することができる。さらに、１つまたは複数のアクションを省略でき、したがって、すべての実装がすべてのアクションを実行するわけではない。
【０１３９】
様々な動作または機能が本明細書に記載されている限り、それらはソフトウェアコード、命令、コンフィグレーション、および／またはデータとして記載または定義することができる。コンテンツは、直接実行可能（「オブジェクト」または「実行可能」形式）、ソースコード、または差分コード（「デルタ」または「パッチ」コード）にすることができる。本明細書に記載されているソフトウェアコンテンツは、コンテンツが格納された製品を介して、または通信インターフェイスを介してデータを送信するための通信インターフェイスを動作させる方法を介して提供することができる。機械可読記憶媒体は、記述された機能または動作を機械に実行させることができ、記録可能／記録不可能なメディア（例えば、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなど）などの機械（例えば、コンピューティングデバイス、電子システムなど）によってアクセス可能な形式で情報を格納する任意の機構を含む。通信インターフェイスは、メモリバスインターフェイス、プロセッサバスインターフェイス、インターネット接続、ディスクコントローラなど、別のデバイスと通信するためのハードワイヤード、無線、光などの媒体のいずれかとインターフェイスする任意の機構を含む。通信インターフェイスは、ソフトウェアコンテンツを記述するデータ信号を提供するために、コンフィグレーションパラメータを提供すること、および／または通信インターフェイスを準備する信号を送信することによって構成することができる。通信インターフェイスは、通信インターフェイスに送信される１つまたは複数のコマンドまたは信号を介してアクセスすることができる。
【０１４０】
本明細書に記載される様々な構成要素は、記載される動作または機能を実行するための手段とすることができる。本書に記載される各構成要素は、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む。構成要素は、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア（例えば、特定用途向けハードウェア、特定用途向け集積回路（ＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）など）、組み込みコントローラ、ハードワイヤード回路などとして実装することができる。
【０１４１】
本明細書に記載される内容に加えて、開示される内容および本発明の実装に対して、それらの範囲から逸脱することなく様々な修正を行うことができる。したがって、本明細書の例示および例は、限定的な意味ではなく、例示的な意味で解釈されるべきである。本発明の範囲は、以下の特許請求の範囲を参照することによってのみ測定されるべきである。（項目１）
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスであって、
複数行のメモリを有するメモリアレイと、
複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含むコマンドを、関連するメモリコントローラから受信する入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の受信に応答して、上記メモリコントローラが、リフレッシュウィンドウ内の上記複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、上記ＤＲＡＭデバイスが、上記超過したリフレッシュコマンドに応答して、ロウハンマ（ｒｏｗ  ｈａｍｍｅｒ）リフレッシュを実行し、潜在的な攻撃行（ａｇｇｒｅｓｓｏｒ  ｒｏｗ）の潜在的な被害行（ｖｉｃｔｉｍ  ｒｏｗ）をリフレッシュする、入力／出力（Ｉ／Ｏ）ハードウェアとを
備える、ＤＲＡＭデバイス。
（項目２）
上記アクティブ化の閾値数の受信が、特定の時間ウィンドウ内での上記アクティブ化の閾値数の受信を含む、項目１に記載のＤＲＡＭデバイス。
（項目３）
上記特定の時間ウィンドウ内の上記アクティブ化の閾値数の受信がスライディングウィンドウを有し、各アクティブ化コマンドがカウントを増加させ、時間が上記カウントを減少させる、項目２に記載のＤＲＡＭデバイス。
（項目４）
上記アクティブ化コマンドの閾値数が、チャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する、項目１に記載のＤＲＡＭデバイス。
（項目５）
上記アクティブ化コマンドの閾値数が、バンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する、項目１に記載のＤＲＡＭデバイス。
（項目６）
上記超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む、項目１に記載のＤＲＡＭデバイス。
（項目７）
メモリコントローラであって、
複数行のメモリを有するメモリデバイスに送信するコマンドをキューに入れるバッファと、
上記メモリデバイスに対するアクティブ化コマンドの数を追跡するカウンタと、
複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含むコマンドを上記メモリデバイスに送信する入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の検出に応答して、上記Ｉ／Ｏハードウェアが、リフレッシュウィンドウ内の上記複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、上記超過したリフレッシュコマンドが、上記メモリデバイスをトリガして、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、入力／出力（Ｉ／Ｏ）ハードウェアとを
備える、メモリコントローラ。
（項目８）
上記アクティブ化の閾値数の検出が、特定の時間ウィンドウ内の上記アクティブ化の閾値数の検出を含む、項目７に記載のメモリコントローラ。
（項目９）
上記特定の時間ウィンドウ内での上記アクティブ化の閾値数の検出がスライディングウィンドウを有し、各アクティブ化コマンドがカウンタを増加させ、時間が上記カウンタを減少させる、項目８に記載のメモリコントローラ。
（項目１０）
上記アクティブ化コマンドの閾値数が、メモリデバイスを含む複数のメモリデバイスのチャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する、項目７に記載のメモリコントローラ。
（項目１１）
上記アクティブ化コマンドの閾値数が、上記メモリデバイスのバンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する、項目７に記載のメモリコントローラ。
（項目１２）
上記超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む、項目７に記載のメモリコントローラ。
（項目１３）
システムであって、
複数のメモリ行を有する複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスと、
上記複数のＤＲＡＭデバイスに結合されたメモリコントローラであって、上記メモリコントローラが、
上記メモリデバイスに対するアクティブ化コマンドの数を追跡するカウンタと、
複数のアクティブ化コマンドおよび複数のリフレッシュコマンドを含む複数のコマンドを上記メモリデバイスに送信する入力／出力（Ｉ／Ｏ）ハードウェアであって、アクティブ化コマンドの閾値数の検出に応答して、上記Ｉ／Ｏハードウェアが、リフレッシュウィンドウ内の上記複数行をリフレッシュするために必要なリフレッシュコマンドの数を超えて、超過したリフレッシュコマンドを送信し、上記超過したリフレッシュコマンドが、ＤＲＡＭデバイスをトリガして、ロウハンマリフレッシュを実行し、潜在的な攻撃行の潜在的な被害行をリフレッシュする、入力／出力（Ｉ／Ｏ）ハードウェアとを含む、メモリコントローラとを
備えるシステム。
（項目１４）
上記アクティブ化の閾値数の検出が、特定の時間ウィンドウ内での上記アクティブ化の閾値数の検出を含む、項目１３に記載のシステム。
（項目１５）
上記特定の時間ウィンドウ内での上記アクティブ化の閾値数の検出がスライディングウィンドウを有し、各アクティブ化コマンドがカウンタを増加させ、時間が上記カウンタを減少させる、項目１４に記載のシステム。
（項目１６）
上記アクティブ化コマンドの閾値数が、ＤＲＡＭデバイスのチャネルごとまたはランクごとに、アクティブ化コマンドの閾値数を有する、項目１３に記載のシステム。
（項目１７）
上記アクティブ化コマンドの閾値数が、ＤＲＡＭデバイスごとに、アクティブ化コマンドの閾値数を有する、項目１３に記載のシステム。
（項目１８）
上記アクティブ化コマンドの閾値数が、特定のＤＲＡＭデバイスのバンクごとまたはバンクグループごとに、アクティブ化コマンドの閾値数を有する、項目１３に記載のシステム。
（項目１９）
上記超過したリフレッシュコマンドが、ロウハンマリフレッシュ用であることを示すタグを有するリフレッシュコマンドを含む、項目１３に記載のシステム。
（項目２０）
上記メモリコントローラに結合されたホストプロセッサデバイス、
ホストプロセッサに通信可能に結合されたディスプレイ、
ホストプロセッサに通信可能に結合されたネットワークインターフェイス、または
上記システムに電力を供給するバッテリ
のうちの１つまたは複数をさらに備える、項目１３に記載のシステム。
【図１】
2020166832.tif 000003
【図２】
2020166832.tif 000004
【図３】
2020166832.tif 000005
【図４】
2020166832.tif 000006
【図５】
2020166832.tif 000007
【図６】
2020166832.tif 000008
【図７】
2020166832.tif 000009
【図８】
2020166832.tif 000010
【図９】
2020166832.tif 000011
【外国語明細書】
2020166832000001.pdf