(57)【要約】      （修正有）【課題】インピーダンス補償の必要性を監視するメモリデバイスによってメモリＩ／Ｏインピーダンス補償を管理するメモリサブシステムを提供する。【解決手段】メモリコントローラが、変更が必要とされない場合にメモリデバイスにインピーダンス補償を更新させる信号を規則的に送信する代わりに、メモリデバイスは、インピーダンス補償変更を実行する準備がいつできるかを示すことができる。メモリコントローラは、メモリによって設定される補償フラグに応答するか又はセンサ値が閾値を超えて変わったとの決定に応答して、メモリデバイスにインピーダンス補償信号を送信することができる。【選択図】図４
2020170532.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
当該メモリデバイスにおいてインピーダンスキャリブレーションの更新の準備ができていることをメモリコントローラに示すインピーダンスキャリブレーション更新フラグとして、当該メモリデバイスにより選択的に書き込み可能なフィールドを格納するレジスタと、
前記メモリコントローラに結合された場合に、前記インピーダンスキャリブレーション更新フラグが設定されていることを前記メモリコントローラが検出したことに応じて、当該メモリデバイスに新たなキャリブレーション設定を設定するためのインピーダンスキャリブレーションラッチ信号（ＺＱＣＡＬ  ＬＡＴＣＨ）を含むコマンドを前記メモリコントローラから受信するＩ／Ｏ（入力／出力）ハードウェアと、
を備えるメモリデバイス。
【請求項２】
前記Ｉ／Ｏハードウェアは、前記インピーダンスキャリブレーション更新フラグをチェックするためのポーリング要求を前記メモリコントローラから周期的に受信する、請求項１に記載のメモリデバイス。
【請求項３】
前記レジスタはモードレジスタを有し、
前記Ｉ／Ｏハードウェアは、前記モードレジスタを読み取り前記インピーダンスキャリブレーション更新フラグをチェックするためのコマンドを周期的に受信する、請求項１または２に記載のメモリデバイス。
【請求項４】
前記Ｉ／Ｏハードウェアは、第１のインピーダンスキャリブレーション起動信号（ＺＱＣＡＬ  ＳＴＡＲＴ）の受信とともに、前記インピーダンスキャリブレーションラッチ信号を受信する、請求項１から３の何れか一項に記載のメモリデバイス。
【請求項５】
当該メモリデバイスは、以前のインピーダンスキャリブレーション設定と更新されたキャリブレーション設定とを比較演算し、前記更新されたキャリブレーション設定が前記以前のインピーダンスキャリブレーション設定から閾値よりも大きく異なる場合に、前記インピーダンスキャリブレーション更新フラグのみを設定する、請求項１から４のいずれか一項に記載のメモリデバイス。
【請求項６】
前記新たなキャリブレーション設定は、ドライバインピーダンスの設定を含む、請求項１から５のいずれか一項に記載のメモリデバイス。
【請求項７】
前記新たなキャリブレーション設定は、オンダイターミネーション（ＯＤＴ）設定を含む、請求項１から６のいずれか一項に記載のメモリデバイス。
【請求項８】
当該メモリデバイスの性能状態の変化を検出するオンダイセンサをさらに備え、
当該メモリデバイスは、前記オンダイセンサを用いた前記変化の検出に基づいて前記インピーダンスキャリブレーションを設定する、請求項１から７のいずれか一項に記載のメモリデバイス。
【請求項９】
ローパワーダブルデータレート（ＬＰＤＤＲ）規格と互換性を有するダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスをさらに備える、請求項１から８のいずれか一項に記載のメモリデバイス。
【請求項１０】
メモリコントローラであって、
メモリデバイスに結合して前記メモリデバイスからインピーダンスキャリブレーション更新フラグを読み取るＩ／Ｏ（入力／出力）ハードウェアであって、前記インピーダンスキャリブレーション更新フラグは前記メモリデバイスにおいてインピーダンスキャリブレーションの更新の準備ができていることを示す、Ｉ／Ｏハードウェアと、
設定された前記インピーダンスキャリブレーション更新フラグの検出に応じて、固定スケジュールでのインピーダンスキャリブレーション信号に代えてインピーダンスキャリブレーションラッチ信号（ＺＱＣＡＬ  ＬＡＴＣＨ）をスケジューリングするスケジューラと、
を備え、
前記Ｉ／Ｏハードウェアは、前記メモリデバイスに新たなキャリブレーション設定を設定するための前記インピーダンスキャリブレーションラッチ信号を前記メモリデバイスに送信する、メモリコントローラ。
【請求項１１】
前記Ｉ／Ｏハードウェアは、前記インピーダンスキャリブレーション更新フラグをチェックするためのポーリング要求を前記メモリデバイスに周期的に送信する、請求項１０に記載のメモリコントローラ。
【請求項１２】
前記メモリデバイスはモードレジスタを有し、
前記Ｉ／Ｏハードウェアは、前記モードレジスタを読み取り前記インピーダンスキャリブレーション更新フラグをチェックするためのコマンドを周期的に送信する、請求項１０または１１に記載のメモリコントローラ。
【請求項１３】
前記Ｉ／Ｏハードウェアは、始めにインピーダンスキャリブレーション起動信号（ＺＱＣＡＬ  ＳＴＡＲＴ）を送信することなく、前記インピーダンスキャリブレーションラッチ信号を送信する、請求項１０から１２の何れか一項に記載のメモリコントローラ。
【請求項１４】
前記メモリデバイスは、以前のインピーダンスキャリブレーション設定と更新されたキャリブレーション設定とを比較演算し、前記更新されたキャリブレーション設定が前記以前のインピーダンスキャリブレーション設定から閾値よりも大きく異なる場合に、前記インピーダンスキャリブレーション更新フラグのみを設定する、請求項１０から１３のいずれか一項に記載のメモリコントローラ。
【請求項１５】
前記新たなキャリブレーション設定は、ドライバインピーダンスの設定を含む、請求項１０から１４のいずれか一項に記載のメモリコントローラ。
【請求項１６】
前記新たなキャリブレーション設定は、オンダイターミネーション（ＯＤＴ）設定を含む、請求項１０から１５のいずれか一項に記載のメモリコントローラ。
【請求項１７】
前記メモリデバイスの性能状態の変化を検出するオンダイセンサをさらに備え、
前記メモリデバイスは、前記オンダイセンサを用いた前記変化の検出に基づいて前記インピーダンスキャリブレーションを設定する、請求項１０から１６のいずれか一項に記載のメモリコントローラ。
【請求項１８】
前記メモリデバイスは、当該メモリコントローラに並列に結合された複数のメモリデバイスのうちの１つであり、
当該メモリコントローラは、複数の異なるメモリデバイスからの複数の異なるインピーダンスキャリブレーション更新フラグに基づいて、複数の異なるインピーダンスキャリブレーション更新を管理する、請求項１０から１７のいずれか一項に記載のメモリコントローラ。
【請求項１９】
前記メモリデバイスは、ローパワーダブルデータレート（ＬＰＤＤＲ）規格と互換性を有するダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスを備える、請求項１０から１８のいずれか一項に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して、デバイス間のＩ／Ｏインピーダンス補償に関し、より詳細には、センサデータの検出に基づくインピーダンス補償の管理に関する。
［著作権表示／許可］
【０００２】
本特許書類の開示の部分は、著作権保護の対象となる材料を含み得る。著作権の所有者は、特許商標庁の特許ファイルまたは記録に見られる特許書類または特許開示の何人かによる複写に不服を申し立てないが、それ以外の全ての著作権に係る一切の権利を保留する。「著作権、２０１５年、インテル（登録商標）コーポレーション、無断複写・転載禁止」という著作権の通知は、以下に説明される全てのデータ、本明細書の添付の図面、ならびに以下に説明されるいずれのソフトウェアにも適用される。
【背景技術】
【０００３】
メモリを使用するシステムはストレージ要求が増大するにつれて、メモリデバイスはより高い密度にスケーリングし続けている。たとえメモリ量が増大するとしても、サーバ、デスクトップまたはラップトップコンピュータ、モバイルデバイスならびに消費者およびビジネス電子機器などのコンピューティングプラットフォームは、性能が向上するだろうという期待がある。メモリサイズを増大させながらも性能の向上により、バンド幅のスケーリングの向上という結果になっている。向上されたメモリバンド幅スケーリングは、十分な信号品位を維持することが可能であるＩ／Ｏ（入出力）インピーダンス補償（ＺＱ  ｃｏｍｐ）を要求してきた。前のメモリ世代において、抵抗補償またはＺＱ  ｃｏｍｐの様々な形式は主に、要求される許容範囲を維持すべくメモリデバイス（例えば、ＤＲＡＭ（ダイナミックランダムアクセスメモリ））のモードを使用するメモリコントローラにより管理される。モードは、異なる構成設定下の動作を指す。
【０００４】
周波数が増大するにつれて、許容マージンは精度が向上し続け、メモリコントローラに要求されるオーバヘッドもそのＩ／Ｏインターフェースアイドル期間の点から増大し続ける。メモリコントローラに要求されるオーバヘッドがより大きくなればなるほど、より大きなバンド幅がＩ／Ｏ許容範囲の管理に特化され、それが性能に悪影響を与える場合がある。インピーダンス補償に対する従来のアプローチは、最悪のケースのシステム仮定に基づくＩ／Ｏ終端を周期的に管理するようにメモリコントローラに要求する。多くの場合において、メモリデバイスの電圧および温度が安定している場合、インピーダンス補償動作を実行するように要求されないかもしれない。より具体的には、アクティブ期間の間、メモリデバイスの温度および電圧にかかる動作状態は、合理的に安定し得、インピーダンス補償調整を必要とし得ない。従って、メモリコントローラは不必要に、ＺＱ  ｃｏｍｐ信号をメモリデバイスに発行することになる。ＺＱ  ｃｏｍｐ信号の不必要な発行は、ＤＲＡＭが調整の間で長い期間にわたり動作する場合がある最悪のケースにより、メモリコントローラは複数のＤＲＡＭの負荷を管理するために、性能の低下と複雑さの増大とをもたらす。
【図面の簡単な説明】
【０００５】
以下の説明は、図示が本発明の実施形態の実装の例として与えられた実例を有する図面の検討を含む。図面は、限定としてではなく例として理解されるべきである。本明細書において用いられるように、１または複数の「実施形態」への言及は、本発明の少なくとも１つの実装に含まれる特定の特徴、構造、および／または特性を説明するものと理解されたい。従って、本明細書に見られる「１つの実施形態において」または「代替的な実施形態において」等の文言は、本発明における様々な実施形態および実装を説明するものであり、全てが必ずしも同一の実施形態を指すわけではない。しかしながら、これらはまた必ずしも相互に排他的ではない。
【０００６】
【図１】インピーダンス補償がメモリデバイスのセンサデータに基づくシステムの実施形態のブロック図である。
【０００７】
【図２】メモリデバイスセンサデータが、リフレッシュ制御設定に加えてインピーダンス補償のために使用され得るメモリサブシステムの実施形態のブロック図である。
【０００８】
【図３】調整可能なインピーダンス補償のためのコマンド／アドレスタイミングのタイミング図の実施形態である。
【０００９】
【図４】メモリデバイスのセンサデータに基づくインピーダンス補償を実行するためのプロセスの実施形態のフロー図である。
【００１０】
【図５】セルフリフレッシュ制御およびインピーダンス補償のためにメモリデバイスセンサデータを適用するためのプロセスの実施形態のフロー図である。
【００１１】
【図６】メモリデバイスのセンサデータに基づくインピーダンス補償が実装され得るコンピューティングシステムの実施形態のブロック図である。
【００１２】
【図７】メモリデバイスのセンサデータに基づくインピーダンス補償が実装され得るモバイルデバイスの実施形態のブロック図である。
【００１３】
以下に説明される実施形態のうちのいくつかまたは全てを図示し得る図面の説明を含み、ならびに本明細書において提示される発明概念の他の可能な実施形態または実装を検討する、特定の詳細および実装の説明を後述する。
【発明を実施するための形態】
【００１４】
本明細書に説明されるように、メモリサブシステムが、メモリＩ／Ｏ（入出力）インピーダンス補償を管理すべく、メモリデバイスのセンサデータを利用する。従って、メモリコントローラおよびメモリデバイスは、最悪のケースのシナリオによるインピーダンス補償の管理の代わりにインピーダンス補償の必要性を監視することができる。従って、メモリコントローラは、変更が必要とされない場合にメモリコントローラにＺＱ  ｃｏｍｐ（インピーダンス補償）信号を規則的に送信させる代わりに、メモリデバイスが更新の準備ができている場合、ＺＱ  ｃｏｍｐ信号を送信することができる。ＺＱ  ｃｏｍｐ信号は、メモリデバイスによるインピーダンス補償に対する更新を引き起こす、メモリコントローラによって発行される全ての信号を指し得る。１つの実施形態において、ＺＱ  ｃｏｍｐ信号は、ＺＱＣａｌ起動信号（例えば、インピーダンスキャリブレーションを開始する信号）および／またはＺＱＣａｌラッチ信号（例えば、インピーダンス補償のための構成を設定する信号）を含むことができる。１つの実施形態において、メモリデバイスは、インピーダンス補償変更を実行する準備がいつできるかを示す。１つの実施形態において、メモリコントローラは、メモリデバイスによって設定される補償フラグまたは他の指標に応答して、ＺＱ  ｃｏｍｐ信号をメモリデバイスに送信することができる。１つの実施形態において、メモリコントローラは、メモリデバイスによって記録されるセンサ値が閾値を超えて変わったという決定に応答して、ＺＱ  ｃｏｍｐ信号を送信することができる。
【００１５】
センサデータのインピーダンス補償への適用により、調整可能なインピーダンス補償管理を可能にする。例えば、メモリデバイスは、閾値より大きい変化がいつ動作状態に生じたかを示すセンサデータを記録することができる。変化を示すフラグが、フラグに応答して、ＺＱ  ｃｏｍｐ信号を選択的に送信させるようにメモリコントローラを始動させることができる。メモリコントローラは、コマンド／アドレス（Ｃ／Ａ）バス上のダウン時間を管理すべく、ＺＱ  ｃｏｍｐ信号を複数のメモリデバイスに選択的に発行することができ、このようにしてＣ／Ａバスのバンド幅の利用を改善することができる。１つの実施形態において、メモリコントローラは、センサデータに応答してＺＱＣａｌラッチコマンドのみを発行する。１つの実施形態において、メモリコントローラは、センサデータに応答してＺＱＣａｌ起動コマンドおよびＺＱＣａｌラッチコマンドの両方を発行する。
【００１６】
１つの実施形態において、メモリデバイスは、温度センサなどを用いて、温度もしくは熱性能状態、または動作状態の変化の検出に応答してフラグを生成する。１つの実施形態において、メモリデバイスは、電圧センサなどを用いて、動作電圧の変化の検出に応答してフラグを生成する。現代のメモリデバイスは、性能状態の変化を検出するために複数のオンダイセンサを含むことが理解されよう。従来、そのような情報は、セルフリフレッシュの動作または他の動作を調整するために使用される。従って、メモリデバイスは、既に存在するが、他の目的のために従来使用されるセンサを用いてＩ／Ｏインピーダンスに影響を与える状態を監視することができる。
【００１７】
１つの実施形態において、メモリデバイスは、メモリデバイス上のモードレジスタまたは他のレジスタにセンサデータを記録する。１つの実施形態において、メモリデバイス上のコントローラそれ自体が、いつセンサデータが閾値よりも大きく変わったかを決定し、モードレジスタにフラグを設定する。１つの実施形態において、メモリデバイスは、センサデータを周期的にメモリコントローラに提供し、その結果、メモリコントローラは次に変化が閾値を超えるかどうかを決定し、インピーダンス補償を実行する必要性を示す。１つの実施形態において、メモリコントローラは、インピーダンス補償調整の必要性を示すフラグが設定されているかどうかを決定するために、モードレジスタを周期的に監視またはチェックする。１つの実施形態において、メモリコントローラとメモリデバイスとの間のコネクタが、インピーダンス補償用のフラグとして使用され得る。コネクタは、複数の状態フラグのために使用され得、フラグが設定された場合、レジスタを読み取ることにより、フラグが何を示すかを決定する。
【００１８】
１つの実施形態において、メモリコントローラは、メモリデバイスＩ／Ｏ設定の変更を始動させるインピーダンス補償信号を発行する。例えば、インピーダンス補償信号は、ドライバインピーダンスに対する調整を行わせるようにメモリデバイスを始動させることができる。別の例において、インピーダンス補償信号は、オンダイターミネーション設定に対する調整を行わせるようにメモリデバイスを始動させることができる。
【００１９】
メモリデバイスへの言及は、異なるメモリタイプに適用し得る。メモリデバイスは、概して、揮発性メモリ技術を指す。揮発性メモリは、電力がデバイスに遮断されたならば、その状態（ひいては、それに格納されたデータ）が不定であるメモリである。不揮発性メモリは、たとえ電力がデバイスに遮断されたとしても、その状態が確定するメモリを指す。ダイナミック揮発性メモリは、状態を維持するためにデバイス内に格納されたデータをリフレッシュすることを必要とする。ダイナミック揮発性メモリの１つの例は、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）、またはシンクロナスＤＲＡＭ（ＳＤＲＡＭ）などのなんらかの変形を含む。本明細書に説明されるようなメモリサブシステムは、ＤＤＲ３（２００７年６月２７日にＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ：電子機器技術評議会）によって元々リリースされ、目下リリース２１である、二重データ速度（ｄｕａｌ  ｄａｔａ  ｒａｔｅ）バージョン３）、ＤＤＲ４（ＤＤＲバージョン４、ＪＥＤＥＣによって２０１２年９月に公表された初期の仕様）、ＬＰＤＤＲ３（ＪＥＤＥＣによる２０１３年８月の低電力ＤＤＲバージョン３、ＪＥＳＤ２０９−３Ｂ）、ＬＰＤＤＲ４（２０１４年８月にＪＥＤＥＣによって元々公表されたＬＰＤＤＲ（ＬＯＷ  ＰＯＷＥＲ  ＤＯＵＢＬＥ  ＤＡＴＡ  ＲＡＴＥ（低電力二重データ速度）バージョン４、ＪＥＳＤ２０９−４）、ＷＩＯ２（２０１４年８月にＪＥＤＥＣによって元々公表されたワイドＩ／Ｏ２（ワイドＩＯ２）、ＪＥＳＤ２２９−２）、ＨＢＭ（２０１３年１０月にＪＥＤＥＣによって元々公表されたＨＩＧＨ  ＢＡＮＤＷＩＤＴＨ  ＭＥＭＯＲＹ  ＤＲＡＭ（高帯域メモリＤＲＡＭ）、ＪＥＳＤ２３５）、ＤＤＲ５（ＤＤＲバージョン５、ＪＥＤＥＣによって目下検討中）、ＬＰＤＤＲ５（ＪＥＤＥＣによって目下検討中）、ＷＩＯ３（ワイドＩ／Ｏ３、ＪＥＤＥＣによって目下検討中）、ＨＢＭ２（ＨＢＭバージョン２、ＪＥＤＥＣによって目下検討中）、および／またはその他、ならびにそのような仕様の派生物もしくは拡張に基づく技術等の複数のメモリ技術と互換性を有し得る。
【００２０】
揮発性メモリに加えて、または、それの代わりに、１つの実施形態において、メモリデバイスへの言及は、たとえ不揮発性メモリデバイスへの電力が遮断されたとしても、その状態が確定する不揮発性メモリデバイスを指し得る。１つの実施形態において、不揮発性メモリデバイスは、ＮＡＮＤまたはＮＯＲ技術等のブロックアドレス指定可能メモリデバイスである。このように、メモリデバイスはまた、３次元クロスポイントメモリデバイスまたは他のバイトアドレス指定可能な不揮発性メモリデバイス等の将来世代の不揮発性デバイスを含むことができる。１つの実施形態において、メモリデバイスは、マルチ閾値レベルのＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、シングルまたはマルチレベルの相変化メモリ（ＰＣＭ）、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ（ＦｅＴＲＡＭ）、メモリスタ技術を組み入れる磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、またはスピントランスファトルク（ＳＴＴ）ＭＲＡＭ、または上記のいずれか、もしくは他のメモリの組み合わせであるか、あるいは、それを含むことができる。
【００２１】
図１は、インピーダンス補償がメモリデバイスのセンサデータに基づくシステムの実施形態のブロック図である。システム１００は、本明細書に説明されている任意の実施形態によるメモリデバイス１２０のインピーダンス補償を管理するメモリコントローラ１１０を有するメモリサブシステムのコンポーネントを表す。システム１００は、Ｉ／Ｏインピーダンス補償を実行する任意のタイプのコンピューティングデバイスまたは電子回路に含まれ得、メモリサブシステムは至る所に使用される例であるが、必ずしもメモリサブシステムに限定されない。システム１００は、メモリ１２０に格納されるデータに基づき動作を実行するか、またはメモリ１２０に格納すべきデータを生成する処理ロジックであるホストまたはプロセッサからメモリアクセス要求を受信する。そのようなプロセッサは、ホストプロセッサ、中央処理ユニット（ＣＰＵ）、マイクロコントローラもしくはマイクロプロセッサ、グラフィックプロセッサ、周辺機器プロセッサ、特定用途向けプロセッサ、または他のプロセッサ（シングルコアまたはマルチコアプロセッサにかかわらず）であり得、またはそれを含み得る。
【００２２】
メモリコントローラ１１０は、メモリ１２０とインターフェースで接続し、メモリに格納されるデータへのアクセスを管理するロジックを表す。１つの実施形態において、メモリコントローラ１１０は、ホストプロセッサのハードウェアへと統合される。１つの実施形態において、メモリコントローラ１１０は、ホストプロセッサから分離したスタンドアロンハードウェアである。メモリコントローラ１１０は、プロセッサを含む基板上の個別の回路であり得る。メモリコントローラ１１０は、（例えば、システムオンチップ（ＳｏＣ）として）プロセッサダイと共に共通基板上に統合される個別ダイまたはチップであり得る。１つの実施形態において、メモリ１２０の少なくともいくつかはＳｏＣ上にメモリコントローラ１１０および／またはホストプロセッサと共に含まれ得る。
【００２３】
１つの実施形態において、メモリ１２０は、揮発性メモリリソースを含む。１つの実施形態において、メモリ１２０は、ＤＲＡＭを含む。メモリ１２０のメモリリソースは、例えば、ＤＩＭＭ（デュアルインラインメモリモジュール）、ランク、ＤＲＡＭ，バンク、ページ、行、キャッシュライン、および／または他のアーキテクチャなどの、個別のチャネルを有する異なるメモリレベルとして、管理され得る。各々のメモリレベルおよびリソースは、独立してアドレス指定可能であり得る。１つの実施形態において、システム１００は、複数のメモリ１２０［０］...１２０［Ｎ−１］を含み、Ｎは、整数（通常、バイナリ整数または２Ｎ＋１グループ）である。
【００２４】
メモリ１２０はＩ／Ｏ１２２を含み、メモリコントローラ１１０の対応するＩ／Ｏ１１２と相互接続するハードウェアリソースを含む。Ｉ／Ｏ１１２、１２２は、ドライバ、ＯＤＴ（オンダイターミネーション）、ピン、コネクタ、トレース、パッド、配線、および／または他のハードウェアを含むことができる。Ｉ／Ｏ１２２および１１２は通常、アクセスコマンドおよびアドレス情報を送信するためのメモリコントローラ１１０用のコマンド／アドレス（Ｃ／Ａ）バスと、メモリコントローラ１１０およびメモリ１２０がデータを交換することを可能にするデータバス用のコマンド／アドレスとなどの１または複数の信号線のバスに編成される。データは、読み出しコマンドで異なるメモリリソースから読み出され、または書き込みコマンドでメモリリソースへと書き込まれる。Ｉ／Ｏ１１２およびＩ／Ｏ１２２は、ｘ４、ｘ８またはｘ１６インターフェース等の異なるサイズのデータインターフェースを含むことができ、そこで、「ｘ」は、インターフェースを表し、「ｘ」の後ろの数字は、インターフェースのデータビット幅（例えば、ｘ４は、４ビット幅のインターフェースを有するなど）を表す。
【００２５】
１つの実施形態において、各メモリ１２０は、少なくとも１つのセンサ１２４を含む。センサ１２４は、熱センサ、電流センサ、電圧センサ、またはメモリの動作状態を監視する他のデバイスを含むことができる。異なるＩ／Ｏインピーダンスは、異なる動作状態に対して有用であることが理解されよう。従って、１つの実施形態において、メモリ１２０は、センサ１２４によって検出される動作状態の変化をメモリコントローラ１１０に報告する。動作状態の変化に応答して、メモリコントローラ１１０は、メモリ１２０の（入力かまたは出力かの）Ｉ／Ｏインピーダンスを構成するハードウェア機構を表すＺＱ  ｃｏｍｐ１２８に関連した１または複数の設定を調整することができる。１つの実施形態において、メモリ１２０が、動作状態が閾値よりも大きく変わったことをセンサ１２４の測定値から決定した場合、メモリ１２０はフラグ１２６を設定することができる。
【００２６】
メモリ１２０［Ｎ−１：０］ごとに共通のコンポーネント番号付けが示されているが、各コンポーネントは、各メモリデバイス内で独立して動作することが理解されよう。従って、メモリ１２０［０］のセンサ１２４は、同じ動作状態が、メモリ１２０［Ｎ−１］内にてまだ始動されていない間に、動作状態の変化を示すフラグ１２６を始動させ得る。そのため、各メモリ１２０は、その動作状態をメモリコントローラ１１０に個別に示すことができる。１つの実施形態において、メモリコントローラ１１０は、個々のメモリ１２０のＺＱ  ｃｏｍｐ１２８を個別に管理する。１つの実施形態において、例えば、ＬＰＤＤＲ４の実装などにおいて、各メモリ１２０は、同じメモリダイ上に２つの独立したチャネルを含み得る。そのような実装において、同じダイ上の各チャネルの近接度により同じ動作状態を受けるものと仮定すると、ＺＱ  ｃｏｍｐ１２８は、単一のダイの両方のチャネルに適用され得る。
【００２７】
メモリコントローラ１１０は、スケジューラ１３０を含み、そのことはメモリ１２０に関してアクセス動作およびコマンドのタイミングを管理するメモリコントローラ１１０内のロジックを表す。スケジューラ１３０は、ホストプロセッサによって生成されるデータ要求をサービス提供すべく、どのようにコマンドをオーダするかを生成および決定することができる。１つの実施形態において、スケジューラ１３０は、インピーダンス補償スケジューラ１３２を含む。１つの実施形態において、スケジューラ１３２は、スケジューラ１３０のロジックの一部である。スケジューラ１３２は、様々なメモリ１２０のＺＱ  ｃｏｍｐ１２８の設定の調整に関連した動作を管理するメモリコントローラ１１０の能力を参照して具体的に説明される。
【００２８】
各メモリ１２０が、熱センサを含むセンサ１２４を有するＤＲＡＭであり、フラグ１２６が、ＤＲＡＭのモードレジスタのビットである例を考える。１つの実施形態において、ＤＲＡＭはその既存のオンダイ熱センサを利用し、メモリコントローラ１１０にＺＱ  ｃｏｍｐ設定に対する調整がいつ要求されるかを通知する。１つの実施形態において、メモリコントローラ１１０は、１２６によって表わされるモードレジスタビットを監視する（例えば、その状態を決定すべくそのビットを周期的に読み取る）。各ＤＲＡＭ１２０は、最後の通知からの温度の差に基づきフラグ１２６を設定することができる。従って、ＤＲＡＭは、一度フラグ１２６を設定すると、ＺＱ  ｃｏｍｐ１２８を調整する必要性を示す後続のフラグのためのベースラインとして、その値を格納することができる。センサ測定値の変化は、正か、負のどちらかの変化であり得ることが理解されよう。１つの実施形態において、センサ１２４は、比較を内部制御し、ＺＱキャリブレーションラッチコマンド（例えば、ＺＱＣａｌラッチ）を発行するようにメモリコントローラ１１０を始動させるフラグ１２６を設定する。
【００２９】
１つの実施形態において、比較それ自体を実行するのではなく、メモリ１２０は、センサ１２４の前のおよび現在の測定値（値）を格納し得、値を読み取り比較するようにメモリコントローラ１１０を始動させ得る。フラグ１２６、またはメモリ１２０からの他の指標に対して、ホストまたはメモリコントローラ１１０は、ＺＱＣａｌラッチコマンドを周期的に発行することと関連したタイミングを管理する必要はないであろう。従って、メモリ１２０は、コマンドが発行される必要がある場合、コマンドを発行するようにメモリコントローラ１１０を始動させることができ、メモリコントローラ１１０は、タイミングを管理する必要はないか、またはメモリ１２０によって無視される（ＺＱ  ｃｏｍｐの変更または更新が必要ないので無視される）こととなるコマンドを送信するＣ／Ａバスバンド幅を使い尽くす必要はないだろう。
【００３０】
単一のメモリデバイス１２０に関する利点に加えて、コンピューティングデバイスにおけるシステム１００の多くの用途が複数のメモリデバイス１２０を含むこととなることが理解されよう。複数のメモリデバイス１２０に対して、メモリコントローラ１１０は、ＺＱ  ｃｏｍｐ信号を全てのメモリ１２０に発行するタイミングを管理するように従来要求される。そのようなプロセスは従来、たとえ個々のデバイスに対するタイミングが従来、１マイクロ秒（μｓ）のオーダであるとしても、ミリ秒（ｍｓ）以上にわたって時間がかかる。メモリコントローラ１１０が、各メモリデバイスについてのセンサデータに応答して、ＺＱ  ｃｏｍｐ信号を発行するのを可能にすることによって、メモリコントローラ１１０は、相当なバンド幅を節約することができる。
【００３１】
また、１つの実施形態において、ＺＱ  ｃｏｍｐスケジューラ１３２は、ＺＱ  ｃｏｍｐ信号を発行するために好適なタイミングを決定するロジックを含むことができる。例えば、１つの実施形態において、スケジューラ１３２は、閾値数のメモリ１２０（例えば、１よりも大きいなんらかの数字）が、任意のＺＱ  ｃｏｍｐ信号を生成する前にフラグ１２６を設定するまで、待機する。従って、スケジューラ１３２が、ＺＱ  ｃｏｍｐ信号をスケジューリングすべくＣ／Ａバス上のアクセストラフィックコマンドを無効にする場合、スケジューラ１３２は、複数のデバイスに対して信号を発行し得、複数のデバイスにわたってオーバヘッドを広げ得る。１つの実施形態において、スケジューラ１３２は、第１のフラグが検出されてから閾値期間が過ぎていない限り、閾値数のメモリ１２０がフラグ１２６を始動させるまで待機し、それから、とにかくＺＱ  ｃｏｍｐ信号を発行するロジックを含む。１つの実施形態において、メモリコントローラは、設定されている１または複数のフラグ１２６に応答して、複数の並列メモリ１２０に一連のＺＱ  ｃｏｍｐ信号を送信する。１つの実施形態において、メモリコントローラ１１０は、メモリの１つによる第１のフラグ１２６の検出に応答して、メモリ１２０のサブセットまたは全てに対して、インピーダンス補償用の一連のコマンドを送信する。
【００３２】
各々の異なるメモリ１２０からのフラグ１２６を個別に監視することにより、メモリコントローラ１１０は、必要とされないＺＱ  ｃｏｍｐ信号の送信を回避することができる。要求されない場合にメモリコントローラ１１０およびメモリ１２０の両方にＺＱ  ｃｏｍｐ動作を先制して実行させる際、メモリコントローラ１１０にオーバヘッドを受けさせる代わりに、システム１００がそのような動作の必要性に応答することができる。そのような動作により、インピーダンス補償がどのように管理され得るかについての調整を可能にすることによって、システム性能を改善するための複数の経路を提供することができる。例えば、１つの実施形態において、各メモリ１２０は、閾値がシステムの速度を改善する許容範囲に適合するように最適化すべく、閾値はいつ設定され得るかを（例えば、そのことを表示する値で構成されるなどで）知ることができる。そのような構成は、使用中の一般的なシステム幅の最悪のケースの許容範囲に依存するのではなく、各メモリベンダがそれらの具体的なプロセスおよび／またはメモリ実装に対するインピーダンス補償のタイミングを制御することに起因して、Ｉ／Ｏに対するより良好な許容範囲をもたらし得る。
【００３３】
１つの実施形態において、メモリコントローラ１１０は、各メモリ１２０からセンサデータを読み取る。１つの実施形態において、センサデータを読み取ることは、フラグ１２６を読み取ること、および／またはセンサ１２４の値を読み取ることとして理解され得る。スケジューラ１３２は、フラグ１２６を読み取るか、センサデータを読み取り、それを前に格納された測定値に対して比較するかのどちらかによって性能状態が閾値を超えて変わったことを決定することができる。メモリコントローラ１１０は、前の測定値を格納することができ、および／またはメモリ１２０は、前の測定値を格納することができる。メモリコントローラ１１０は、ＺＱ  ｃｏｍｐ１２８に関連する少なくとも１つの設定を調整するようにメモリ１２０を始動させるべく、インピーダンス補償信号を生成する。
【００３４】
図２は、メモリデバイスセンサデータが、リフレッシュ制御設定に加えてインピーダンス補償のために使用され得るメモリサブシステムの実施形態のブロック図である。システム２００は、図１のシステム１００によるメモリサブシステムの１つの例であり得る。より具体的には、システム２００は、システム１００の１つの実施形態により実装され得る特定の特徴を示す。メモリコントローラ２１０は、メモリ２２０へのアクセスを管理する。メモリ２２０は、システム２００における複数のメモリデバイスの１つであり得る。メモリコントローラ２１０は、メモリ２２０のＩ／Ｏ２３０を経由してメモリ２２０とインターフェースで接続するＩ／Ｏ２１２を含む。
【００３５】
１つの実施形態において、メモリコントローラ２１０は、リフレッシュコントロール２１４を含む。リフレッシュコントロール２１４は、揮発性メモリ２２０のリフレッシュを管理するメモリコントローラ２１０内のロジックを表す。リフレッシュコントロール２１４は、メモリ２２０用のセルフリフレッシュ設定を管理するための、および／またはメモリコントローラがリフレッシュコマンドを発行する通常リフレッシュのためのロジックを含み得る。１つの実施形態において、リフレッシュコントロール２１４は、その動作をメモリ２２０におけるセンサからの情報に基づき調整する。
【００３６】
１つの実施形態において、メモリコントローラ２１０は、ＺＱ補償コントロール２１６を含む。ＺＱ  ｃｏｍｐコントロール２１６は、メモリ２２０（Ｉ／Ｏ２３０）のＩ／Ｏインターフェースのためのインピーダンス補償を管理するロジックを表す。ＺＱ  ｃｏｍｐコントロール２１６は、本明細書に説明されている任意の実施形態による補償制御を実行することができる。ＺＱ  ｃｏｍｐコントロール２１６は、システム２００の補償制御のタイミングを管理するスケジューラであり得、またはそれを含み得る。ＺＱ  ｃｏｍｐコントロール２１６は、センサが動作状態の変化を検出したことを示すセンサデータに基づき、インピーダンス補償信号をメモリ２２０および他のメモリデバイスにいつ送信するかを決定する。１つの実施形態において、メモリ２２０は変化をフラグするだろうが、メモリコントローラ２１０はまだ、そのＩ／Ｏ補償を調整すべくメモリデバイスを始動させる信号をいつ発行するかを決定するだろう。たとえメモリコントローラ２１０が、補償信号をいつ送信するかの決定を行うとしても、メモリコントローラは、メモリによるフラグまたは指標の検出または決定に応答して、信号を生成することが理解されよう。
【００３７】
メモリ２２０は、アレイ２４２を含み、それはメモリ２２０のメモリリソースを表わす。メモリリソースは、複数行のデータを含み得、行および列によってアドレス指定可能である。ロジック２４４は、読み取りまたは書き込み等のメモリアクセスコマンドによって特定されるアレイ２４２内の位置をアドレスするメモリ２２０内のデコードロジックを表す。コントローラ２２２は、メモリ２２０のコントローラを表す。メモリコントローラ２１０は、システム２００用のコントローラであり、ホストのためにメモリ２２０へのアクセスを制御することが理解されよう。コントローラ２２２は、メモリ２２０内の処理リソースを表し、メモリが、メモリコントローラ２１０から受信されるメモリアクセスコマンドを処理するそれ自身の動作を管理およびスケジューリングするのを可能にする。
【００３８】
１つの実施形態において、メモリ２２０は、１または複数のセンサ２２６を含む。センサ２２６は、Ｉ／Ｏ２３０のインピーダンスに影響を与える性能状態の変化を検出することができる電圧センサ、温度センサ、電流センサまたは他のセンサを含むことができる。多くの現代のメモリがオンダイセンサを含むことは、理解されよう。センサは、オーバエイジ（ｏｖｅｒａｇｅ）状態に関連した状態を検出するために従来使用されていた。センサ２２６によって検出される状態の特定の変化はまた、Ｉ／Ｏ２３０の入力および出力インピーダンスに影響を与える状態を示し得る。１つの実施形態において、コントローラ２２２は、状態が閾値を超えて変わったことをセンサ２２６からの測定値に基づいて決定する。閾値が、システムアーキテクチャ、メモリタイプ、Ｉ／Ｏタイプ、メモリサイズおよび他の要因に基づき設定されることとなることは、理解されよう。閾値は、性能状態がＩ／Ｏ２３０のＩ／Ｏインピーダンスに望ましくない影響を及ぼすのにいつ十分に変わるかを決定する。Ｉ／Ｏインピーダンスの変化は、送信および受信のマージン化（ｍａｒｇｉｎｉｎｇ）および／またはタイミングに影響を与え得る。
【００３９】
Ｉ／Ｏ２３０は、メモリ２２０がデータをメモリコントローラ２１０に送信するためのＩ／Ｏ信号線を駆動するドライバ２３２を含む。１つの実施形態において、Ｉ／Ｏ２３０は、メモリコントローラ２１０からデータを受信するためのメモリ２２０用の入力インピーダンスを制御するＯＤＴ（オンダイターミネーション）２３４を含む。ドライバ２３２およびＯＤＴ２３４は、メモリ２２０との設定によって構成可能であり、まとめてＩ／Ｏ設定と呼ばれ得る。ドライバ２３２およびＯＤＴ２３４の設定は、メモリコントローラ２１０およびメモリ２２０間の交換（送信か、受信のどちらか）にかかる信号品位のタイミング、反射および他の態様に影響を与え得る。１つの実施形態において、レジスタ２２４はＩ／Ｏ２３０に対するＩ／Ｏ設定を含むレジスタを表す。動作電圧および動作温度などの特定の性能状態の変化は、たとえＩ／Ｏ設定を変更しなくても、インピーダンスをドリフトさせ得る。Ｉ／Ｏ設定（ＺＱ  ｃｏｍｐ）に対する調整により、変更状態を補償することができる。１つの実施形態において、メモリ２２０は、単一のメモリダイ上の２つのチャネルを含み、Ｉ／Ｏ設定は、チャネルの全域で共用される。
【００４０】
１つの実施形態において、Ｉ／Ｏ設定は、メモリ２２０用の異なるＩ／Ｏに適用される。例えば、ドライバ２３２は、双方向信号線（データバスなど）に適用され得るが、一方向バス（コマンド／アドレスバスなど）には適用されないだろう。ＯＤＴ２３４は、一方向信号線および双方向信号線の両方に適用され得る。１つの実施形態において、当技術分野に理解されるように、ＯＤＴはプルアップレッグおよびプルダウンレッグの両方を含み、プルアップおよびプルダウンの組み合わせが構成され得る。Ｉ／Ｏ設定により、ドライバ２３２が信号線をどれくらい激しく（例えば、使用する電流がどれくらい大きいか）駆動するかと、ＯＤＴが信号線を終端するようにどのように構成されるかと、を決定することができる。メモリコントローラ２１０からのＺＱｃａｌ信号または他の補償信号は、メモリ２２０内のＩ／Ｏ設定に対する調整を開始することができる。
【００４１】
１つの実施形態において、レジスタ２２４は、メモリ２２０用のモードレジスタを表すか、または含む。モードレジスタは、メモリ２２０用の様々な動作設定を制御するメモリ２２０内のレジスタである。異なる設定は、異なる動作モードと対応することができる。１つの実施形態において、メモリコントローラ２１０は、メモリ２２０を特定のモードに置くように、特定のビットパターンをモードレジスタのレジスタ要素に設定するに過ぎない。どんなモードのメモリ２２０が内部にあるかに応じて、コントローラ２２２は、特定の設定をＩ／Ｏ２３０および／またはメモリ２２０の他のコンポーネントに適用し得、および／または特定のタイミングパラメータをその動作に適用し得る。
【００４２】
１つの実施形態において、メモリ２２０は、センサ２２６の変化の検出に応答して、（メモリコントローラ２１０によりアクセス可能なモードレジスタまたは他のレジスタであり得る）レジスタ２２４のフラグを設定する。例えば、コントローラ２２２は、センサ２２６からの測定値の１または複数の値を（その動作のためにコントローラ２２２によって使用されるレジスタまたはメモリ位置に）格納することができる。メモリ２２０は、前のまたは格納された測定値と比較して新たなセンサ測定値の変化を検出することができる。１つの実施形態において、レジスタ２２４は、１または複数のセンサ値が格納され得るストレージを表す。１つの実施形態において、メモリコントローラ２１０は、レジスタ２２４のメモリ２２０によって設定される値またはフラグを周期的に読み取り、メモリがそのＩ／Ｏインピーダンス設定に対する調整の準備ができたかどうかを決定する。システム２００は、割り込みベースの機構で代わりに構成され得る。しかしながら、割り込み機構は、メモリ２２０からの割り込みをメモリコントローラ２１０に伝達するために専用信号線または多重化／再利用化信号線を必要とする場合がある。
【００４３】
図３は、調整可能なインピーダンス補償のためのコマンド／アドレスタイミングのタイミング図の実施形態である。Ｃ／Ａ信号３１０は、インピーダンス補償への従来のアプローチを表し、それは最悪のケースのシステム状態に基づく。最悪のケースのアプローチに対して、Ｃ／Ａ３１０は、メモリコントローラが、ＺＱＣａｌ起動信号で（図３のためにＺＱ  ｃｏｍｐと呼ばれる）インピーダンス補償を開始する繰り返しスケジュールを説明する。ＺＱｃａｌの開始とＺＱ  ｃｏｍｐラッチ信号（ＺＱＣａｌラッチ）の発行との間のタイミングは、ｔＺＱＣａｌであり、それは最小で１マイクロ秒（μｓ）となるようにスケジューリングされる。従って、メモリコントローラは従来、ＺＱ  ｃｏｍｐのために準備をするようにメモリを始動させるＺＱキャリブレーションを開始し、次にメモリにＺＱ  ｃｏｍｐをラッチさせるラッチ信号を発行しなくてはならない。メモリデバイスがＺＱ  ｃｏｍｐをラッチする時間は、ｔＺＱＬａｔであり、それはおよそ３０ナノ秒（ｎｓ）である。
【００４４】
いくつかの場合において、メモリコントローラは、調整中にＣ／Ａバスをアイドルに保持（バスを停止）しておくこととなり、従ってＣ／Ａ３１０は、メモリデバイスごとに、実行されるキャリブレーションごとにｔＺＱＣａｌ＋ｔＺＱＬａｔのオーバヘッドを受けることとなる。メモリコントローラは従来、メモリがそのＺＱ  ｃｏｍｐ設定を調整する必要があるかどうかにかかわらず、メモリデバイスごとにＣ／Ａ３１０についてのスケジュールを繰り返さなければならない。システム構成に応じて、Ｃ／Ａバスのアイドル時間、その結果としてアクティブバンド幅の損失は、秒当たり数ミリ秒のアイドル時間へと拡張する場合がある。他の場合には、メモリコントローラは、他のコマンドを発行し続けることによって背景のｔＺＱＣａｌ  レイテンシを隠すことができる。しかしながら、タイミングは、メモリデバイスが更新される必要があるか否かにかかわらず、定期的なスケジュールにわたってデバイスごとにまだ監視およびスケジューリングされなければならず、それによりメモリコントローラリソースを不必要に拘束する場合がある。
【００４５】
Ｃ／Ａ３２０は、本明細書に説明されている任意の実施形態によるＺＱ  ｃｏｍｐの発行に対するフラグチェック機構を説明する。Ｃ／Ａ３２０によるＺＱ  ｃｏｍｐの発行により、ＺＱ  ｃｏｍｐと関連付けられるオーバヘッドは著しく低減され得る。ＺＱ  ｃｏｍｐコマンドを周期的に発行し、１μｓ期間後にＺＱＣａｌラッチをスケジューリングする必要がある代わりに、メモリコントローラは、必要に応じてＺＱ  ｃｏｍｐコマンドを発行するに過ぎない。性能状態に対する検出変化はないので、または、性能状態に対する変化は、補償を調整する必要性を示す閾値を超えないので、Ｃ／Ａ３２０は、インピーダンス設定に対する変更が必要とされない期間を示し始める。変更後のある期間は必要とされないと仮定して、１つの実施形態において、メモリコントローラは、センサが閾値を超える性能状態の変化を示すかどうかをメモリが設定することとなるフラグをチェックする。そのような決定は、本明細書に説明される任意の実施形態に従って行われ得る。
【００４６】
Ｃ／Ａ３２０のフラグチェックが、ＺＱ  ｃｏｍｐを実行する必要性を示さないことを仮定すると、メモリコントローラは、ＺＱ  ｃｏｍｐコマンドを発行することなく動作を継続するだろう。Ｃ／Ａ３２０のフラグチェックがＺＱ  ｃｏｍｐを実行する必要性を示すことを仮定すると（図３に示される状態）、メモリコントローラは、ＺＱＣａｌラッチ信号を発行する。時間ｔＺＱＣｈｋ（フラグのチェックとラッチ信号の発行との間の時間）は、少なくとも２つの方法にて調整可能であることが理解されよう。メモリコントローラは、その時間の少なくとも一部でフラグが設定されないので、チェックを実行した直後にＺＱＣａｌラッチ信号を必ずしも発行しないこととなることが予想されるので、ｔＺＱＣｈｋは、調整可能である。１つの実施形態において、たとえフラグが設定されたとしても、メモリコントローラは、少なくともある期間にＺＱＣａｌラッチ信号をいつ発行するかを制御することができる点でも、ｔＺＱＣｈｋは、調整可能である。例えば、メモリコントローラは、ＺＱＣａｌラッチを発行する前に特定の数のメモリデバイスがフラグを設定するまで待機することができる。Ｃ／Ａ３２０についてのＺＱＣａｌラッチの発行後に、同じ期間、およそ３０ｎｓのｔＺＱＬａｔが存在することが理解されよう。メモリコントローラは、Ｃ／Ａ３２０にて必要とされるに過ぎないＺＱＣａｌラッチのチェックおよび発行を繰り返すだろう。
【００４７】
１つの実施形態において、フラグをチェックし、ＺＱＣａｌラッチを発行するように決定する時間は、時間ｔＺＱＬａｔに相当する。従って、フラグチェックからＺＱＣａｌラッチまでのタイミングは、数十ナノ秒のオーダであり得、これはメモリコントローラが従来管理しなければならない１μｓより著しく低い。また、複数のラッチが、複数の異なるメモリデバイスから検出される実施形態において、複数のデバイスは、ＺＱ  ｃｏｍｐ調整の準備が可能となり得、全てが順にラッチされ得、そのことは、それらのインピーダンス補償を更新する必要がない複数のメモリデバイスのＺＱ  ｃｏｍｐを開始する必要はないことから、かなりのオーバヘッドを低減する。そのようなアプローチは、Ｃ／Ａ３２０上のＺＱ  ｃｏｍｐ信号のスケジューリングを最大化し得る。
【００４８】
１つの実施形態において、メモリデバイスが、リフレッシュ状態のタイミング構成（例えば、セルフリフレッシュ用のメモリデバイスそれ自体によるスケジューリングのタイミングおよび／または自動リフレッシュ用のメモリコントローラによるスケジューリングのタイミング）を設定するためにそれが監視するセンサを含む。１つの実施形態において、メモリコントローラは、リフレッシュタイミングを構成するために、センサデータを周期的にチェックする。従って、１つの実施形態において、メモリコントローラは、リフレッシュ用にチェックされる同じセンサデータに基づいて、インピーダンス補償チェックを追加で実行することができる。そのような実装において、ＺＱ  ｃｏｍｐフラグの読み出しまたはチェックは、リフレッシュ読み出しまたはリフレッシュ監視動作中に生じ得る。従って、ＺＱ  ｃｏｍｐフラグをチェックすることは、最小限のオーバヘッドで実装され得る。
【００４９】
図４は、メモリデバイスのセンサデータに基づくインピーダンス補償を実行するためのプロセスの実施形態のフロー図である。インピーダンス補償を実行するためのシステム４００は、図１のシステム１００および／または図２のシステム２００など、本明細書に説明されている任意の実施形態によるシステムによって実行され得る。１つの実施形態において、インピーダンス補償動作は、メモリコントローラおよびメモリデバイスにおける並列動作を含む。１つの実施形態において、メモリコントローラは、メモリにより設定されるべきフラグを監視し、フラグがメモリはインピーダンス補償調整のために読み取られることを示すかどうかを決定する（４０２）。フラグが補償を変更する必要性を示さない場合（４０４ＮＯ分岐）、メモリコントローラは、インピーダンス補償コマンドを発行しないで、フラグを監視し続ける。
【００５０】
メモリコントローラがフラグを監視している間、メモリは、フラグを設定するかどうかを決定すべく１または複数のセンサを監視する（４１２）。センサは、メモリのＩ／Ｏインピーダンスに影響を与える１または複数の性能状態を監視する。１つの実施形態において、センサから読み取られた値に基づき、メモリは、性能状態の変化が閾値を超えるかどうかを決定する（４１４）。１つの実施形態において、メモリコントローラは、値を読み取り、決定を行う。状態の変化が、ある閾値Ｘほど大きくない場合、４１６ＮＯ分岐、メモリは、センサを監視し続ける（４１２）。性能状態の変化は、正または負であり得ることが理解されよう。従って、Ｘは、正の数か、負の数のどちらかを表し得、あるいは、４１６の状態は、変化の絶対値が、Ｘを超えるかどうかであり得る。
【００５１】
１つの実施形態において、状態の変化が閾値を超えない場合（４１６ＹＥＳ分岐）、メモリは、補償フラグまたは他の指標を更新する（４１８）。フラグは、メモリがインピーダンス補償を実行する準備ができていることを示す。１つの実施形態において、メモリは、センサからの後続の測定値と比較するために使用する状態値を格納する（４２０）。メモリがフラグを設定する場合に（４１８）、メモリコントローラは、それが次にフラグを評価する場合にフラグを検出することとなる。１つの実施形態において、フラグが設定された場合、４０４ＹＥＳ分岐、メモリコントローラは、インピーダンス補償コマンドを発行するかどうかを決定する（４２２）。１つの実施形態において、メモリコントローラは、コマンドを発行する前に複数のメモリデバイスが補償の準備ができるまで、待機することとなる。１つの実施形態において、メモリコントローラは、時間依存メモリアクセスコマンドを発行した後までコマンドの発行を遅延することとなる。
【００５２】
従って、メモリコントローラは、メモリのインピーダンス補償を更新しないことを決定した場合（４２４ＮＯ分岐）、メモリコントローラが、コマンドを発行する前に実行し得る複数の動作のいずれかがあり得る。最終的に、メモリコントローラは、インピーダンス補償を更新するだろう。メモリコントローラは、インピーダンス補償を更新する場合（４２４ＹＥＳ分岐）、メモリコントローラは、フラグをリセットすることができる（４２６）。１つの実施形態において、メモリコントローラは、フラグの値を直接書き込むことができる。１つの実施形態において、メモリコントローラは、メモリにフラグをリセットさせる信号を発行する。
【００５３】
メモリコントローラは、１または複数のメモリに発行すべき１または複数のインピーダンス補償信号またはコマンドを生成する（４２８）。メモリコントローラは、メモリに信号を送信するか、またはメモリにコマンドを発行する（４３０）。メモリは、ＺＱ  ｃｏｍｐ信号を受信し、信号をデコードする（４３２）。１つの実施形態において、メモリはどんな更新を行うかを決定する（４３４）。１つの実施形態において、ＺＱ  ｃｏｍｐ信号は、どんな変更を行うかを示す。１つの実施形態において、メモリは、センサによって示される状態の検出とフラグの設定とに関連して、どんな変更を行うかを決定する。１つの実施形態において、メモリは、Ｉ／Ｏインピーダンスの異なる態様を更新することができる。
【００５４】
１つの実施形態において、メモリは、ＯＤＴに関連した設定を更新する（４３６ＯＤＴ分岐）。メモリは、読み取りインピーダンスおよび／または書き込みインピーダンスなどの、１または複数のＯＤＴ態様に対する新たな設定を設定することができる（４３８）。１つの実施形態において、メモリは、出力ドライバに関連した設定を更新する（４３６ドライバ分岐）。メモリは、出力ドライバ用の新たな設定を設定することができる（４４０）。
【００５５】
図５は、セルフリフレッシュ制御およびインピーダンス補償のためにメモリデバイスセンサデータを適用するためのプロセスの実施形態のフロー図である。プロセス５００は、メモリがセンサデータをどのように適用し得るかについての実施形態を説明する。図４のプロセス４００は、メモリデバイスそれ自体が、そのセンサの測定値に基づきフラグを設定する決定を行うプロセスを示すが、プロセス５００は、メモリコントローラが、決定を計算することができるプロセスを示す。メモリは、変化に対するモニタである１または複数のセンサを含む（５０２）。１つの実施形態において、メモリは、センサ測定値を周期的に取得および記録する。１つの実施形態において、メモリは、メモリコントローラにアクセス可能なレジスタにセンサデータを記録する（５０４）。
【００５６】
１つの実施形態において、メモリコントローラは、センサデータのためにレジスタを読み取る時であるかどうかを決定する（５０６）。メモリコントローラがレジスタを読み取る時である場合（５０８ＹＥＳ分岐）、メモリは、レジスタデータを提供する（５１０）。１つの実施形態において、メモリコントローラは、リフレッシュおよび／またはセルフリフレッシュのために、メモリにどんな設定を適用するかを決定すべく、センサ測定値と共にレジスタデータを使用する。従って、メモリコントローラは、センサデータに基づき１または複数のリフレッシュ設定を設定することができる（５１２）。１つの実施形態において、メモリコントローラは、メモリにＺＱ補償コマンドを発行するかどうかをまた決定すべく、センサデータを適用する。１つの実施形態において、そのような動作は、メモリコントローラに従来の１μｓのｔＺＱＣａｌタイミングを管理することを要求する場合があるが、補償の変更がいつ必要とされるかのようなタイミングを管理する必要があるに過ぎないだろう。従って、メモリコントローラは、ＺＱ  ｃｏｍｐへのそのようなアプローチによってＣ／Ａバス上のバンド幅をまだ保持することができる。従って、メモリコントローラは、センサデータがメモリのインピーダンス補償の必要性を示すかどうかを決定することができる（５１４）。１つの実施形態において、インピーダンス補償の決定および発行は、４２４にて開始したプロセス４００に従って実行され得る。その相違は、メモリコントローラが、ＺＱｃａｌ開始（または起動）コマンド、ならびにＺＱ  ｃｏｍｐ信号またはコマンドとしてのラッチの両方を発行する必要があり得ることとなるであろう。
【００５７】
図６は、メモリデバイスのセンサデータに基づくインピーダンス補償が実装され得るコンピューティングシステムの実施形態のブロック図である。システム６００は、本明細書に説明されている任意の実施形態によるコンピューティングデバイスを表し、それは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲームもしくはエンタテインメント制御システム、スキャナ、コピー機、プリンタ、ルーティングもしくはスイッチングデバイス、または他の電子デバイスであり得る。システム６００は、プロセッサ６２０を含み、それは、システム６００に対する命令の処理、動作管理、および実行を提供する。プロセッサ６２０は、システム６００用の処理を提供するために、任意のタイプのマイクロプロセッサ、中央処理装置（ＣＰＵ）、処理コア、または他の処理ハードウェアを含み得る。プロセッサ６２０は、システム６００の動作全体を制御し、１または複数のプログラム可能な汎用もしくは専用マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、プログラム可能なコントローラ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ロジックデバイス（ＰＬＤ）等、またはそのようなデバイスの組み合わせであり得、またはそれらを含み得る。
【００５８】
メモリサブシステム６３０は、システム６００のメインメモリを表し、プロセッサ６２０により実行されるべきコード、またはルーチンを実行するのに用いられるべきデータ値のための一時的なストレージを提供する。メモリサブシステム６３０は、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、１または複数の様々なランダムアクセスメモリ（ＲＡＭ）または他のメモリデバイス、あるいはそのようなデバイスの組み合わせ等の１または複数のメモリデバイスを含み得る。メモリサブシステム６３０は、特に、システム６００において命令を実行するためのソフトウェアプラットフォームを提供するためのオペレーティングシステム（ＯＳ）６３６を格納してホスティングする。さらに、他の命令６３８が、システム６００のロジックおよび処理を提供するべく、メモリサブシステム６３０から格納され、実行される。ＯＳ６３６および命令６３８は、プロセッサ６２０により実行される。メモリサブシステム６３０は、データ、命令、プログラム、または他のアイテムを格納するメモリデバイス６３２を含む。１つの実施形態において、メモリサブシステムは、メモリコントローラ６３４を含み、これは、メモリデバイス６３２にコマンドを生成して発行するメモリコントローラである。メモリコントローラ６３４が、プロセッサ６２０の物理的な部分であり得ることが、理解されよう。
【００５９】
プロセッサ６２０およびメモリサブシステム６３０は、バス／バスシステム６１０に結合される。バス６１０は、適切なブリッジ、アダプタ、および／またはコントローラにより接続された任意の１または複数の別個の物理的バス、通信ライン／インターフェース、および／またはポイントツーポイント接続を表す抽象物である。従って、バス６１０は、システムバス、周辺構成要素相互接続（ＰＣＩ）バス、ハイパートランスポートもしくは業界標準アーキテクチャ（ＩＳＡ）バス、小型コンピュータシステムインターフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、または米国電気電子学会（ＩＥＥＥ）規格１３９４バス（一般に「ファイヤワイヤ」と呼ばれる）のうちの１または複数を、例えば、含み得る。バス６１０のバスはまた、ネットワークインターフェース６５０におけるインターフェースに対応し得る。
【００６０】
システム６００はまた、バス６１０に結合された１または複数の入出力（Ｉ／Ｏ）インターフェース６４０、ネットワークインターフェース６５０、１または複数の内部大容量ストレージデバイス６６０、および周辺機器インターフェース６７０を含む。Ｉ／Ｏインターフェース６４０は、１または複数のインターフェースコンポーネントを含み得、ユーザはこれらを介してシステム６００とインタラクトする（例えば、ビデオ、オーディオ、および／または英数字のインターフェース）。ネットワークインターフェース６５０は、１または複数のネットワークを通じてリモートデバイス（例えば、サーバ、他のコンピューティングデバイス）と通信する能力をシステム６００に提供する。ネットワークインターフェース６５０は、イーサネット（登録商標）アダプタ、無線相互接続コンポーネント、ＵＳＢ（ユニバーサルシリアルバス）、または他の有線もしくは無線規格ベースのインターフェースまたは独自のインターフェースを含み得る。
【００６１】
ストレージ６６０は、１または複数の磁気、ソリッドステートもしくは光学ベースのディスク、または組み合わせ等の不揮発性の態様で大量のデータを格納する任意の従来媒体であり得、またはこれらを含み得る。ストレージ６６０は、コードまたは命令およびデータ６６２を永続的状態に保つ（すなわち、値はシステム６００への電力の遮断にもかかわらず保持される）。ストレージ６６０は、一般的には「メモリ」と見なされ得るが、メモリ６３０は、命令をプロセッサ６２０に提供する実行メモリまたは動作メモリである。ストレージ６６０は、不揮発性であるが、メモリ６３０は、揮発性メモリを含み得る（すなわち、システム６００への電力が遮断されると、データの値または状態が不定になる）。
【００６２】
周辺機器インターフェース６７０は、具体的に上述されていない任意のハードウェアインターフェースを含み得る。一般に、周辺機器は、従属的にシステム６００に接続するデバイスを指す。従属的接続は、その上で動作が実行され、それを用いてユーザがインタラクトするソフトウェアおよび／またはハードウェアプラットフォームを、システム６００が提供する接続である。１つの実施形態において、システム６００は、サーバ装置である。サーバ装置の１つの実施形態において、システム６００は、サーバ構成にて共に組み合わされる複数のシステムのうちの１つであり得る。例えば、サーバは、シャーシシステムの他のブレードサーバと組み合わされるブレードサーバとして実装され得る。
【００６３】
１つの実施形態において、メモリサブシステム６３０は、ＺＱ  ｃｏｍｐコントロール６８０を含み、そのことは、センサデータに基づきメモリ６３２用のＩ／Ｏインピーダンス制御を実装するシステム６００内のロジックを表す。ＺＱ  ｃｏｍｐコントロール６８０は、システム６００の別個の要素として示されるが、本明細書に説明されている任意の実施形態によるＺＱ  ｃｏｍｐを実装するメモリコントローラ６３４およびメモリ６３２のロジックを表す。１つの実施形態において、メモリ６３２は、それがいつＺＱ  ｃｏｍｐを必要とし、それがいつＺＱ  ｃｏｍｐコマンドを発行させるようにメモリコントローラ６３４を始動するフラグを設定するかを決定する。
【００６４】
図７は、メモリデバイスのセンサデータに基づくインピーダンス補償が実装され得るモバイルデバイスの実施形態のブロック図である。デバイス７００は、コンピューティングタブレット、携帯電話もしくはスマートフォン、無線機能付き電子書籍リーダ、ウェアラブルコンピューティングデバイス、または他のモバイルデバイス等のモバイルコンピューティングデバイスを表す。コンポーネントのうちの特定のものが全体として示されており、そのようなデバイスの全てのコンポーネントがデバイス７００に示されているわけではないことが理解されよう。
【００６５】
デバイス７００は、デバイス７００の主要な処理動作を実行するプロセッサ７１０を含む。プロセッサ７１０は、マイクロプロセッサ、用途プロセッサ、マイクロコントローラ、プログラム可能ロジックデバイス、または他の処理手段等の１または複数の物理的デバイスを含み得る。プロセッサ７１０により実行される処理動作は、その上で用途および／またはデバイスの機能が実行されるオペレーティングプラットフォームまたはオペレーティングシステムの実行を含む。処理動作は、人間ユーザまたは他のデバイスとのＩ／Ｏ（入出力）に関連する動作、電力管理に関連する動作、および／またはデバイス７００を別のデバイスに接続することに関連した動作を含む。処理動作はまた、オーディオＩ／Ｏおよび／またはディスプレイＩ／Ｏに関連した動作を含み得る。
【００６６】
１つの実施形態において、デバイス７００は、オーディオ機能をコンピューティングデバイスに提供することに関連したハードウェア（例えば、オーディオハードウェアおよびオーディオ回路）およびソフトウェア（例えば、ドライバ、コーデック）のコンポーネントを表すオーディオサブシステム７２０を含む。オーディオ機能は、スピーカおよび／またはヘッドフォン出力、ならびにマイク入力を含み得る。そのような機能のためのデバイスは、デバイス７００へ統合され、またはデバイス７００に接続され得る。１つの実施形態において、ユーザは、プロセッサ７１０によって受信および処理されるオーディオコマンドを提供することにより、デバイス７００とインタラクトする。
【００６７】
ディスプレイサブシステム７３０は、ユーザがコンピューティングデバイスとインタラクトするための視覚および／または触覚ディスプレイを提供する、ハードウェア（例えば、ディスプレイデバイス）およびソフトウェア（例えば、ドライバ）のコンポーネントを表す。ディスプレイサブシステム７３０は、ユーザにディスプレイを提供するために使用される特定のスクリーンまたはハードウェアデバイスを含むディスプレイインターフェース７３２を含む。１つの実施形態において、ディスプレイインターフェース７３２は、ディスプレイに関連した少なくともいくつかの処理を実行する、プロセッサ７１０と別個のロジックを含む。１つの実施形態において、ディスプレイサブシステム７３０は、ユーザに出力および入力の両方を提供するタッチスクリーンデバイスを含む。１つの実施形態において、ディスプレイサブシステム７３０は、ユーザに出力を提供する高解像度（ＨＤ）ディスプレイを含む。高解像度とは、およそ１００ＰＰＩ（ピクセル・パー・インチ）またはそれより大きな画素密度を有する表示を指し得、フルＨＤ（例えば、１０８０ｐ）、網膜ディスプレイ、４Ｋ（超高解像度もしくはＵＨＤ）、または他のもののようなフォーマットを含み得る。
【００６８】
Ｉ／Ｏコントローラ７４０は、ユーザとのインタラクションに関連したハードウェアデバイスおよびソフトウェアコンポーネントを表す。Ｉ／Ｏコントローラ７４０は、オーディオサブシステム７２０および／またはディスプレイサブシステム７３０の一部であるハードウェアを管理するように動作し得る。さらに、Ｉ／Ｏコントローラ７４０は、デバイス７００に接続する追加のデバイスに関する接続ポイントを図示し、ユーザはデバイス７００を介してシステムとインタラクトし得る。例えば、デバイス７００に取り付けられ得るデバイスとしては、マイクデバイス、スピーカもしくはステレオシステム、ビデオシステムもしくは他のディスプレイデバイス、キーボードもしくはキーパッドデバイス、またはカードリーダもしくは他のデバイス等の特定のアプリケーションと共に使用するための他のＩ／Ｏデバイスを含み得る。
【００６９】
上記のように、Ｉ／Ｏコントローラ７４０は、オーディオサブシステム７２０および／またはディスプレイサブシステム７３０とインタラクトし得る。例えば、マイクまたは他のオーディオデバイスを介した入力は、デバイス７００の１または複数の用途または機能のための入力またはコマンドを提供し得る。さらに、ディスプレイ出力の代わりに、またはこれに加えてオーディオ出力が提供され得る。別の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスはまた、Ｉ／Ｏコントローラ７４０によって少なくとも部分的に管理され得る入力デバイスとして機能する。Ｉ／Ｏコントローラ７４０によって管理されるＩ／Ｏ機能を提供すべく、デバイス７００上に追加のボタンまたはスイッチも存在し得る。
【００７０】
１つの実施形態において、Ｉ／Ｏコントローラ７４０は、加速度計、カメラ、光センサもしくは他の環境センサ、ジャイロスコープ、全地球測位システム（ＧＰＳ）、またはデバイス７００に含まれ得る他のハードウェア等のデバイスを管理する。入力は、直接のユーザインタラクションの一部であり得ると共に、システムの動作（ノイズに対するフィルタリング、輝度検出のためのディスプレイの調整、カメラのフラッシュの適用、または他の機能等）に影響するように、システムへの環境入力に提供し得る。１つの実施形態において、デバイス７００は、バッテリ電力使用量、バッテリの充電、および省電力動作に関連した機能を管理する電力管理７５０を含む。
【００７１】
メモリサブシステム７６０は、デバイス７００に情報を格納するためのメモリデバイス７６２を含む。メモリサブシステム７６０は、不揮発性（メモリデバイスへの電力が遮断されても状態が変化しない）および／または揮発性（メモリデバイスへの電力が遮断されると、状態が不定になる）メモリデバイスを含み得る。メモリ７６０は、システム７００の用途および機能の実行に関連する用途データ、ユーザデータ、音楽、写真、文書、または他のデータ、ならびにシステムデータ（長期的または一時的であるかに関係なく）を格納し得る。１つの実施形態において、メモリサブシステム７６０は、メモリコントローラ７６４（また、システム７００のコントロールの一部とみなされ得ると共に、潜在的にプロセッサ７１０の一部とみなされ得る）を含む。メモリコントローラ７６４は、メモリデバイス７６２にコマンドを生成して発行するスケジューラを含む。
【００７２】
接続７７０は、デバイス７００が外部デバイスと通信することを可能にするハードウェアデバイス（例えば、無線および／または有線コネクタ、ならびに通信ハードウェア）およびソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）を含む。外部デバイスは、他のコンピューティングデバイス、無線アクセスポイントまたは基地局等の別個のデバイス、ならびにヘッドセット、プリンタ、または他のデバイス等の周辺機器であり得る。
【００７３】
接続７７０は、複数の異なるタイプの接続を含み得る。一般化すると、デバイス７００は、セルラ接続７７２および無線接続７７４と共に図示されている。セルラ接続７７２は一般に、無線キャリアが提供するセルラーネットワーク接続を指し、例えば、ＧＳＭ（登録商標）（グローバルシステム・フォー・モバイルコミュニケーション）またはその変形規格または派生規格、ＣＤＭＡ（符号分割多重アクセス）またはその変形規格または派生規格、ＴＤＭ（時分割多重）またはその変形規格または派生規格、ＬＴＥ（ロングタームエボリューション、「４Ｇ」とも呼ばれる）またはその他のセルラ方式サービス規格を介して提供される。無線接続７７４は、セルラでない無線接続を指し、パーソナルエリアネットワーク（Ｂｌｕｅｔｏｏｔｈ（登録商標）など）、ローカルエリアネットワーク（ＷｉＦｉ（登録商標）など）、および／またはワイドエリアネットワーク（ＷｉＭａｘ（登録商標）など）、または他の無線通信を含み得る。無線通信は、非固体媒体を介して変調電磁放射の使用によるデータ転送を指す。有線通信は、固体通信媒体を介して存在する。
【００７４】
複数の周辺接続７８０は、周辺接続を行うべく、ハードウェアインターフェースおよびコネクタ、ならびにソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）を含む。デバイス７００は、他のコンピューティングデバイスに対する周辺デバイス（「ｔｏ」７８２）であり得ると共に、それに接続された周辺デバイスを有するもの（「ｆｒｏｍ」７８４）でもあり得ることが理解されよう。一般に、デバイス７００は、デバイス７００上のコンテンツの管理（例えば、ダウンロードおよび／またはアップロード、変更、同期）などを目的として他のコンピューティングデバイスに接続する「ドッキング」コネクタを有する。さらに、ドッキングコネクタは、デバイス７００がコンテンツの出力を制御することを可能にする特定の周辺機器、例えば、オーディオビジュアルシステムまたは他のシステムに、デバイス７００が接続することを可能にし得る。
【００７５】
独自のドッキングコネクタまたは他の独自の接続ハードウェアに加えて、デバイス７００は一般的または規格ベースのコネクタにより周辺接続７８０を行い得る。一般的なタイプは、（複数の異なるハードウェアインターフェースのうちのいずれかを含み得る）ユニバーサルシリアルバス（ＵＳＢ）コネクタ、ＭｉｎｉＤｉｓｐｌａｙＰｏｒｔ（ＭＤＰ）を含むＤｉｓｐｌａｙＰｏｒｔ、高解像度マルチメディアインターフェース（ＨＤＭＩ（登録商標））、ファイヤワイヤ、または他のタイプを含み得る。
【００７６】
１つの実施形態において、メモリサブシステム７６０は、ＥＣＣ７６６を含む。ＥＣＣ７６６は、別個の要素として示されるが、メモリデバイス７６２の内部ＥＣＣと、メモリコントローラ７６４のシステムレベルＥＣＣとを表す。内部ＥＣＣは、読み取り要求に応答してエラー検出および訂正を実行した後に内部チェックビットを生成する。メモリコントローラ７６４の外部ＥＣＣは、システムレベルにてエラー訂正を増大すべく、チェックビットをメタデータとして使用することができる。
【００７７】
１つの実施形態において、メモリサブシステム７６０は、ＺＱ  ｃｏｍｐコントロール７６６を含み、そのことはセンサデータに基づくメモリ７６２用のＩ／Ｏインピーダンス制御を実装するシステム７００内のロジックを表す。ＺＱ  ｃｏｍｐコントロール７６６は、システム７００の別個の要素として示されるが、本明細書に説明される任意の実施形態によるＺＱ  ｃｏｍｐを実装するメモリコントローラ７６４およびメモリ７６２のロジックを表す。１つの実施形態において、メモリ７６２は、それがいつＺＱ  ｃｏｍｐを必要とし、メモリコントローラ７６４にＺＱ  ｃｏｍｐコマンドを発行させるように始動するフラグをいつ設定するかを決定する。
【００７８】
１つの態様において、Ｉ／Ｏ（入出力）インターフェースのインピーダンス補償のための方法は、
メモリデバイスに対するＩ／Ｏインピーダンスに影響を与える性能状態の変化を、メモリデバイス上のロジックによって検出する工程と、
変化を検出する工程に応答して、関連したメモリコントローラに対する補償フラグ信号を始動する工程と、
補償フラグ信号に応答して、メモリデバイスのＩ／Ｏインピーダンス補償の変更を始動するインピーダンス補償信号を、メモリコントローラからメモリデバイスにて受信する工程と
を含む。
【００７９】
１つの実施形態において、性能状態の変化を検出する工程は、閾値を超える動作温度の変化を検出する工程を有する。１つの実施形態において、性能状態の変化を検出する工程は、閾値を超える動作電圧の変化を検出する工程を有する。１つの実施形態において、性能状態の変化を検出する工程は、オンダイセンサを用いて変化を検出する工程を有する。１つの実施形態において、補償フラグ信号を始動する工程は、メモリコントローラによって周期的にチェックされるべきメモリデバイスのモードレジスタの値を設定する工程を有する。１つの実施形態において、インピーダンス補償信号が、Ｉ／Ｏインピーダンス補償の変更を始動させることは、ドライバインピーダンスに対する調整を始動させることを有する。１つの実施形態において、インピーダンス補償信号は、Ｉ／Ｏインピーダンス補償の変更を始動させるオンダイターミネーション値に対する調整を始動させることを有する。１つの実施形態において、メモリデバイスはメモリコントローラに並列に結合される複数のメモリデバイスのうちの１つであり、補償フラグ信号に応答して、インピーダンス補償信号を受信する段階は、メモリコントローラが複数のメモリデバイスの閾値数から補償フラグを受信した後にのみメモリコントローラからインピーダンス補償信号を受信する工程を有する。１つの実施形態において、メモリデバイスはメモリコントローラに並列に結合される複数のメモリデバイスうちの１つであり、Ｉ／Ｏインピーダンス補償の変更を始動するインピーダンス補償信号を受信する工程は、メモリコントローラによって順に送信される連続する一連のインピーダンス補償信号の１つを受信する工程をさらに有する。１つの実施形態において、インピーダンス補償信号は、インピーダンス補償構成を設定するようにメモリデバイスを始動させるＺＱＣａｌラッチ信号を有する。１つの実施形態において、インピーダンス補償信号は、インピーダンス補償キャリブレーションルーチンを開始するようにメモリデバイスを始動させるＺＱＣａｌ起動信号と、インピーダンス補償構成を設定するようにメモリデバイスを始動させるＺＱＣａｌラッチ信号とを有する。
【００８０】
１つの態様において、メモリのインピーダンス補償を管理するメモリコントローラは、
センサ測定値の変化を示すメモリデバイスからのデータを読み取る、メモリデバイスに結合されるＩ／Ｏ（入出力）ハードウェアと、
メモリデバイスに対するＩ／Ｏインピーダンスに影響を与える性能状態が、メモリデバイスからのデータの読み取りに基づく閾値を超えて変わったことを決定し、性能状態が閾値を超えて変わったとの決定に応答して、メモリデバイスのＩ／Ｏインピーダンス補償の変更を始動させるメモリデバイスに対するインピーダンス補償信号を生成するスケジューラと
を含む。
【００８１】
１つの実施形態において、Ｉ／Ｏハードウェアは、性能状態が閾値を超えて変わったことを示すメモリデバイスによって設定されるフラグに対するものである。１つの実施形態において、Ｉ／Ｏハードウェアは、メモリデバイスによって設定されるフラグに応答してセンサからデータを読み取る。１つの実施形態において、Ｉ／Ｏハードウェアは、性能状態が閾値を超えて変わったことを示すメモリデバイスによって設定されるフラグに応答してセンサからのデータを読み取る。１つの実施形態において、スケジューラは、動作温度の変化がメモリ内の閾値を超えることを決定する。１つの実施形態において、スケジューラは、動作電圧の変化がメモリ内の閾値を超えることを決定する。１つの実施形態において、センサは、メモリデバイスに対するリフレッシュ用のパラメータを設定すべく、性能状態を監視するメモリデバイスのオンダイセンサを含む。１つの実施形態において、Ｉ／Ｏハードウェアは、メモリデバイスのモードレジスタからの１または複数の値を読み取る。１つの実施形態において、Ｉ／Ｏハードウェアは、モードレジスタの１または複数の値を周期的にチェックする。１つの実施形態において、スケジューラは、メモリデバイスＩ／Ｏのドライバインピーダンスに対する調整を始動するインピーダンス補償信号を生成する。１つの実施形態において、スケジューラは、メモリデバイスＩ／Ｏのオンダイターミネーション値に対する調整を始動するインピーダンス補償信号を生成する。１つの実施形態において、Ｉ／Ｏは、複数の並列メモリデバイスに結合し、スケジューラは、メモリデバイスの少なくとも閾値数が、閾値を超えて変わったＩ／Ｏインピーダンスに影響を与える性能状態を有するように決定されるまで、メモリデバイスに対するインピーダンス補償信号の生成を遅延する。１つの実施形態において、Ｉ／Ｏは、複数の並列メモリデバイスに結合し、スケジューラは、複数の並列メモリデバイスのうちの少なくとも複数に順に送信される連続する一連のインピーダンス補償信号をスケジューリングする。１つの実施形態において、Ｉ／Ｏは、複数の並列メモリデバイスに結合し、スケジューラは、全てのメモリデバイスに対するコマンド／アドレス（Ｃ／Ａ）バス上のアクセスコマンドの送信を中止し、アクセスコマンドトラフィックがＣ／Ａバスにわたって送信されない間にメモリデバイスのうち少なくとも２つに一連のインピーダンス補償信号を送信するように期間をスケジューリングする。１つの実施形態において、スケジューラは、インピーダンス補償構成を設定するようにメモリデバイスを始動させるＺＱＣａｌラッチ信号を生成する。１つの実施形態において、スケジューラは、インピーダンス補償キャリブレーションルーチンを開始させるようにメモリデバイスを始動するＺＱＣａｌ起動信号と、インピーダンス補償構成を設定するようにメモリデバイスを始動させるＺＱＣａｌラッチ信号とを生成する。
【００８２】
１つの態様において、メモリサブシステムを有する電子デバイスは、ＬＰＤＤＲ（低電力デュアルデータレート）ＤＲＡＭ（ダイナミックランダムアクセスメモリ）に対するＩ／Ｏインピーダンスに影響を与える性能状態に対する変化を検出するオンダイセンサと、性能状態についてのデータを記録するレジスタとを含むＬＰＤＤＲ  ＤＲＡＭと、ＬＰＤＤＲ  ＤＲＡＭへのアクセスを制御するメモリコントローラと、ＤＲＡＭからアクセスされるデータに基づく表示を生成すべく結合されるタッチスクリーンディスプレイとを備え、
メモリコントローラは、センサ測定値の変化を示すＤＲＡＭからのデータを読み取るＤＲＡＭに結合されるＩ／Ｏ（入出力）ハードウェアと、ＤＲＡＭに対するＩ／Ｏインピーダンスに影響を与える性能状態が、メモリデバイスからのデータの読み取りに基づく閾値を超えて変わったことを決定し、性能状態が閾値を超えて変わったとの決定に応答して、ＤＲＡＭのＩ／Ｏインピーダンス補償の変更を始動させるＤＲＡＭに対するインピーダンス補償信号を生成するスケジューラとを有する。電子デバイスは、メモリデバイスに結合されるメモリコントローラに関して上記に説明される任意の実施形態によるＤＲＡＭに結合されるメモリコントローラを含み得る。
【００８３】
１つの態様において、Ｉ／Ｏ（入出力）インターフェースのインピーダンス補償のための装置は、メモリデバイスに対するＩ／Ｏインピーダンスに影響を与える性能状態の変化を、メモリデバイス上のロジックによって検出する手段と、変化を検出することに応答して、関連したメモリコントローラに対する補償フラグ信号を始動する手段と、補償フラグ信号に応答して、メモリデバイスのＩ／Ｏインピーダンス補償の変更を始動するインピーダンス補償信号をメモリコントローラからメモリデバイスにて受信する手段とを含む。装置は、上記に説明される方法の任意の実施形態を実行するための手段を含み得る。
【００８４】
１つの態様において、コンテンツをそれに格納したコンピュータ可読記憶媒体を含む製造物品は、アクセスされた場合に、メモリデバイスに対するＩ／Ｏインピーダンスに影響を与える性能状態の変化を、メモリデバイス上のロジックによって検出する工程と、変化を検出する工程に応答して、関連したメモリコントローラに対する補償フラグ信号を始動する工程と、補償フラグ信号に応答して、メモリデバイスのＩ／Ｏインピーダンス補償の変更を始動するインピーダンス補償信号をメモリコントローラからメモリデバイスにて受信する工程と
を含む動作を機械に実行させる。製造物品は、上記に説明される方法の任意の実施形態による動作を実行するためのコンテンツを含み得る。
【００８５】
本明細書において図示される複数のフロー図は、一連の様々なプロセス動作の例を提供する。フロー図は、ソフトウェアまたはファームウェアルーチンにより実行されるべき動作、ならびに物理的動作を示し得る。１つの実施形態において、フロー図は、ハードウェアおよび／またはソフトウェアの形で実装され得る有限ステートマシン（ＦＳＭ）の状態を示し得る。特定のシーケンスまたは順序で示されているが、別途指定されない限り、動作の順序は変更され得る。このように、図示される実施形態は、例としてのみ理解されるべきであり、プロセスは異なる順序で実行され得、いくつかの動作は並行して実行され得る。さらに、１または複数の動作は、様々な実施形態において省略され得る。従って各実施形態において、全ての動作が必要とされるわけではない。他のプロセスフローも可能である。
【００８６】
様々な動作または機能が本明細書に説明される限りにおいて、動作または機能は、ソフトウェア、コード、命令、構成、および／またはデータとして説明され、または定義され得る。コンテンツは、直接に実行可能なもの（「オブジェクト」または「実行可能な」形式）、ソースコード、または差分コード（「デルタ」または「パッチ」コード）であり得る。本明細書に説明される実施形態におけるソフトウェアコンテンツは、コンテンツがそれに格納された製造物品、または通信インターフェースを介してデータを送信するように通信インターフェースを動作させる方法により提供され得る。機械可読記憶媒体は、説明される機械に機能または動作を実行させ得、記録可能／記録不可能な媒体（例えば、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光記憶媒体、フラッシュメモリデバイスなど）のような機械（例えば、コンピューティングデバイス、電子システムなど）によりアクセス可能な形態で情報を格納する任意の機構を含む。通信インターフェースは、メモリバスインターフェース、プロセッサバスインターフェース、インターネット接続、ディスクコントローラなどのような別のデバイスに通信するハードワイヤード、無線、光などの媒体のいずれかにインターフェースで接続する任意の機構を含む。通信インターフェースは、構成パラメータを提供し、および／または信号を送信して、通信インターフェースがソフトウェアコンテンツを記述するデータ信号を提供するように準備することにより構成され得る。通信インターフェースは、通信インターフェースに送信される１または複数のコマンドまたは信号によりアクセスされ得る。
【００８７】
本明細書に説明される様々なコンポーネントは、説明される動作または機能を実行するための手段であり得る。本明細書に説明される各コンポーネントは、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む。これらのコンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア（例えば、特定用途向けハードウェア、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）など）、エンベデッドコントローラ、ハードワイヤード回路などとして実装され得る。
【００８８】
本明細書において説明されるもの以外にも、本発明において開示される実施形態および実装に対して、それらの範囲を逸脱することなく様々な変更が行われ得る。従って、本明細書における図示および例は、限定的な意味ではなく例示の意味に解釈されるべきである。本発明の範囲は、以下の特許請求の範囲を参照することのみにより評価されるべきである。
【図１】
2020170532.tif 000003
【図２】
2020170532.tif 000004
【図３】
2020170532.tif 000005
【図４】
2020170532.tif 000006
【図５】
2020170532.tif 000007
【図６】
2020170532.tif 000008
【図７】
2020170532.tif 000009
【外国語明細書】
2020170532000001.pdf