(57)【要約】複数のメモリのランクを有するメモリ機能ブロックと、メモリに接続されたメモリコントローラ機能ブロックと、を備える電子デバイスを提供する。メモリコントローラは、メモリのランク毎のバッファリング済みのメモリアクセスに基づいて、リフレッシュ間隔中にリフレッシュが実行されるメモリの２つ以上のランクを検出するリフレッシュロジックを含む。リフレッシュロジックは、メモリの２つ以上のランクに対するバッファリング済みのメモリアクセスの１つ以上の特性に少なくとも部分的に基づいて、リフレッシュ間隔中にメモリの２つ以上のランクに対してリフレッシュを実行するためのリフレッシュ順序を決定する。次に、メモリコントローラは、リフレッシュ順序で、リフレッシュ間隔中にメモリの２つ以上のランクに対してリフレッシュを実行する。【選択図】図２
2021530808.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリのランクを含むメモリ機能ブロックと、
前記メモリに接続されたメモリコントローラ機能ブロックと、を備え、
メモリコントローラは、
前記メモリのランク毎のバッファリング済みのメモリアクセスに基づいて、リフレッシュ間隔中にリフレッシュが実行されるメモリの２つ以上のランクを検出することと、
前記メモリの２つ以上のランクに対するバッファリング済みのメモリアクセスの１つ以上の特性に少なくとも部分的に基づいて、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行するためのリフレッシュ順序を決定することと、
前記リフレッシュ順序で、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行することと、
を行うように構成されたリフレッシュロジックを含む、
電子デバイス。
【請求項２】
前記リフレッシュ順序で、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行する場合に、
前記リフレッシュロジックは、
前記メモリの２つ以上のランクのうち前記リフレッシュ順序の１番目である所定のランクについて、対応するバッファリング済みのメモリアクセスを停止することと、前記リフレッシュ間隔の開始とほぼ同時にメモリの前記所定のランクに対してリフレッシュを実行することと、を行うように構成されている、
請求項１の電子デバイス。
【請求項３】
前記リフレッシュ順序で、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行する場合に、
前記リフレッシュロジックは、
前記リフレッシュ順序で前記メモリのランクのうち前のランクに対してリフレッシュが実行されている間、前記メモリのランクのうち所定のランクについて対応するバッファリング済みのメモリアクセスを実行することによって、後続のリフレッシュのためにメモリの前記所定のランクを準備することを行うように構成されている、
請求項１の電子デバイス。
【請求項４】
前記リフレッシュロジックは、
前記リフレッシュ順序で前記メモリのランクのうち前記前のランクに対してリフレッシュが実行されている間、特定のメモリコマンドをメモリの前記所定のランクに送信することを停止することによって、前記後続のリフレッシュのためにメモリの前記所定のランクを準備することを行うように構成されている、
請求項３の電子デバイス。
【請求項５】
前記リフレッシュロジックは、
前記リフレッシュ間隔中にリフレッシュが実行される前記メモリのランクの数に少なくとも部分的に基づいて、前記リフレッシュ間隔を複数のサブ間隔に分割することであって、各サブ間隔中に前記メモリの２つ以上のランクのうち異なるランクに対してリフレッシュが実行される、ことを行うように構成されている、
請求項１の電子デバイス。
【請求項６】
前記バッファリング済みのメモリアクセスの特性は、前記バッファリング済みのメモリアクセスのカウントを含み、
より多くのバッファリング済みのメモリアクセスを有するメモリのランクは、前記リフレッシュ順序において、より少ないバッファリング済みのメモリアクセスを有するメモリのランクよりも後の順序に含まれる、
請求項１の電子デバイス。
【請求項７】
前記バッファリング済みのメモリアクセスの特性は、前記メモリアクセスの各々のタイプを含み、
より多くの所定のタイプのバッファリング済みのメモリアクセスを有するメモリのランクは、前記リフレッシュ順序において、より少ない前記所定のタイプのバッファリング済みのメモリアクセスを有するメモリのランクよりも先の順序に含まれる、
請求項１の電子デバイス。
【請求項８】
前記メモリアクセスの各々のタイプは、メモリ読み出し又はメモリ書き込みのうち一方を含む、
請求項７の電子デバイス。
【請求項９】
前記バッファリング済みのメモリアクセスの特性は、前記メモリアクセスの優先度を含み、
より高い優先度のバッファリング済みのメモリアクセスをより多く有するメモリのランクは、前記リフレッシュ順序において、より高い優先度のバッファリング済みのメモリアクセスをより少なく有するメモリのランクよりも先の順序に含まれる、
請求項１の電子デバイス。
【請求項１０】
前記リフレッシュロジックは、
前記バッファリング済みのメモリアクセスの前記１つ以上の特性に加えて、前記メモリコントローラによって実行された又は実行される動作に基づいて、前記メモリのランクのうち少なくとも１つについてのリフレッシュ間隔中にリフレッシュを実行するためのリフレッシュ順序を決定することを行うように構成されている、
請求項１の電子デバイス。
【請求項１１】
特定の数のメモリアクセスがメモリの所定のランク内にバッファリングされている場合に、前記メモリの所定のランクに対してリフレッシュが実行される、
請求項１の電子デバイス。
【請求項１２】
各ランクは、１つ以上のメモリのバンクを含み、
前記検出することと、前記決定することと、前記実行することと、が前記メモリのランク内のメモリのバンクの分解能で実行されることによって、メモリの所定のランク内の前記１つ以上のメモリのバンクの一部のみが前記リフレッシュ間隔中にリフレッシュされる、
請求項１の電子デバイス。
【請求項１３】
複数のメモリのランクを含むメモリ機能ブロックと、リフレッシュロジックを含むメモリコントローラ機能ブロックと、を有する電子デバイスを動作させるための方法であって、
前記リフレッシュロジックによって、前記メモリのランク毎のバッファリング済みのメモリアクセスに基づいて、リフレッシュ間隔中にリフレッシュが実行されるメモリの２つ以上のランクを検出することと、
前記メモリの２つ以上のランクに対するバッファリング済みのメモリアクセスの１つ以上の特性に少なくとも部分的に基づいて、前記リフレッシュロジックによって、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行するためのリフレッシュ順序を決定することと、
前記メモリコントローラによって、前記リフレッシュ順序で、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行することと、を含む、
方法。
【請求項１４】
前記リフレッシュ順序で、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行することは、
前記メモリの２つ以上のランクのうち前記リフレッシュ順序の１番目である所定のランクについて、対応するバッファリング済みのメモリアクセスを停止することと、前記リフレッシュ間隔の開始とほぼ同時にメモリの前記所定のランクに対してリフレッシュを実行することと、を含む、
請求項１３の方法。
【請求項１５】
前記リフレッシュ順序で、前記リフレッシュ間隔中に前記メモリの２つ以上のランクに対してリフレッシュを実行することは、
前記リフレッシュ順序で前記メモリのランクのうち前のランクに対してリフレッシュが実行されている間、前記メモリのランクのうち所定のランクについて対応するバッファリング済みのメモリアクセスを実行することによって、後続のリフレッシュのためにメモリの前記所定のランクを準備することを含む、
請求項１３の方法。
【請求項１６】
前記リフレッシュ順序で前記メモリのランクのうち前記前のランクに対してリフレッシュが実行されている間、特定のメモリコマンドをメモリの前記所定のランクに送信することを停止することによって、前記後続のリフレッシュのためにメモリの前記所定のランクを準備することをさらに含む、
請求項１５の方法。
【請求項１７】
前記リフレッシュ間隔中にリフレッシュが実行される前記メモリのランクの数に少なくとも部分的に基づいて、前記リフレッシュ間隔を複数のサブ間隔に分割することであって、各サブ間隔中に前記メモリの２つ以上のランクのうち何れかのランクに対してリフレッシュが実行される、ことをさらに含む、
請求項１３の方法。
【請求項１８】
前記バッファリング済みのメモリアクセスの特性は、前記バッファリング済みのメモリアクセスのカウントを含み、
より多くのバッファリング済みのメモリアクセスを有するメモリのランクは、前記リフレッシュ順序において、より少ないバッファリング済みのメモリアクセスを有するメモリのランクよりも後の順序に含まれる、
請求項１３の方法。
【請求項１９】
前記バッファリング済みのメモリアクセスの特性は、前記メモリアクセスの各々のタイプを含み、
より多くの所定のタイプのバッファリング済みのメモリアクセスを有するメモリのランクは、前記リフレッシュ順序において、より少ない前記所定のタイプのバッファリング済みのメモリアクセスを有するメモリのランクよりも先の順序に含まれる、
請求項１３の方法。
【請求項２０】
前記バッファリング済みのメモリアクセスの特性は、前記メモリアクセスの優先度を含み、
より高い優先度のバッファリング済みのメモリアクセスをより多く有するメモリのランクは、前記リフレッシュ順序において、より高い優先度のバッファリング済みのメモリアクセスをより少なく有するメモリのランクよりも先の順序に含まれる、
請求項１３の方法。
【請求項２１】
前記リフレッシュロジックは、
前記バッファリング済みのメモリアクセスの前記１つ以上の特性に加えて、前記メモリコントローラによって実行された又は実行される動作に基づいて、前記メモリのランクのうち少なくとも１つについてのリフレッシュ間隔中にリフレッシュを実行するためのリフレッシュ順序を決定することを行うように構成されている、
請求項１３の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連技術）
一部の電子デバイスは、ダブルデータレート第４世代（ＤＤＲ４）同期ＤＲＡＭ等のダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。例えば、デスクトップコンピュータは、各種の計算処理の情報（すなわち、データ、命令等）を記憶するために使用されるメインメモリとして、数ギガバイトのＤＤＲ４  ＳＤＲＡＭを含むことができる。一般に、ＤＲＡＭは、半導体集積回路チップ上に製造された集積回路要素を用いて情報を記憶する半導体メモリである。例えば、一部のＤＲＡＭは、情報のビットを記憶するためにキャパシタを使用し、キャパシタは、論理値１を記憶するために充電され、論理値０を記憶するために放電される。ＤＲＡＭは、情報を記憶するために使用される回路要素によって時間の経過と共に電荷が消失するという意味で「ダイナミック」である。これは、回路要素が周期的に再充電されない場合、ＤＲＡＭに記憶された情報が最終的に消失することを意味する。例えば、キャパシタを記憶要素として使用するＤＲＡＭの場合、キャパシタの充電状態がリークによって失われる。したがって、記憶された情報を保持するために、キャパシタを再充電、すなわち「リフレッシュ」しなければならない。
【０００２】
一部の電子デバイスは、大量のＤＲＡＭを有するメモリを含む。このメモリは、通常、メモリを形成するために組み合わされた複数の個別のＤＲＡＭ集積回路チップ（或いは、より簡単に言えば「ＤＲＡＭチップ」）上に実装される。これらの電子デバイスでは、複数のＤＲＡＭチップの個別のＤＲＡＭチップを、電力制御、アドレス指定／メモリアクセス等の問題に対して論理的及び／又は物理的なグループに分割することができる。例えば、一部の電子デバイスでは、複数のＤＲＡＭチップがメモリモジュール（例えば、デュアルインラインメモリモジュール、すなわちＤＩＭＭ等）に取り付けられ、メモリモジュールは、電子デバイス内の通信バスに接続されたソケットに取り付けられる。このような電子デバイスでは、電源接続、チップセレクト、並びに、他の電力、制御及びアクセス信号を、メモリモジュール上のＤＲＡＭ集積回路チップのサブセットに接続することにより、ＤＲＡＭチップ又はその一部を論理的及び／又は物理的にグループ化することができる。例えば、一部の電子デバイスでは、メモリモジュール上のＤＲＡＭチップは、Ｎ個のランク（例えば、４ランク、８ランク等）のうち何れかに含まれるか、そのようなランクとして動作することができ、各チップは、Ｍ個のバンク（例えば、３２バンク）を含み、各バンクは、情報を記憶するためのＤＲＡＭ回路要素のいくつかのアレイを含む。
【０００３】
複数のＤＲＡＭチップを含む電子デバイスでは、上述したリフレッシュ動作を、ＤＲＡＭチップの論理的及び／又は物理的なグループに対して実行することができる。例えば、これらの電子デバイスの一部は、ランクレベルでリフレッシュを実行する。すなわち、リフレッシュ動作を実行してＤＲＡＭチップ内の回路要素を再充電する場合に、これらの電子デバイスは、ランク内の１つ以上のＤＲＡＭチップをグループとしてリフレッシュする。このような電子デバイスでは、ランクをリフレッシュするために、ランクは、先ず、ランク内のＤＲＡＭチップのチップ可用性信号（chip availability signal）をデアサートする等によって、メモリアクセス（読み出し、書き込み等）を実行するための使用から除去又はブロックされる。次に、ランク内のＤＲＡＭチップ内の回路要素がリフレッシュされる（すなわち、既存の情報をリフレッシュするために、その既存の情報によって書き換えられる）。リフレッシュした後、そのランクのＤＲＡＭチップは、メモリアクセスの実行に使用するためにリストアされる。
【０００４】
ランク内のＤＲＡＭチップ内の回路要素をリフレッシュするためのプロセスは、数百クロックサイクルを必要とする。これは、数百ナノ秒に相当し、その間、ランク内のＤＲＡＭチップをメモリアクセスの実行に利用することができない。したがって、メモリアクセス動作及びそれによって実行される動作の結果に依存する電子デバイス内のエンティティは、リフレッシュ動作によって、メモリアクセス動作が完了する前に大幅な時間の遅延が生じる可能性がある。ＤＲＡＭリフレッシュ動作によって電子デバイスの他の動作の遅延が引き起こされるので、ＤＲＡＭリフレッシュ動作を改善することは、電子デバイスにとって有益である。
【図面の簡単な説明】
【０００５】
【図１】いくつかの実施形態による、電子デバイスを示すブロック図である。
【図２】いくつかの実施形態による、メモリのランクに対してリフレッシュを実行するために使用されるリフレッシュ順序を選択するためのプロセスを示すフローチャートである。
【図３】いくつかの実施形態による、リフレッシュ順序を使用してメモリのランクに対してリフレッシュを実行するためのプロセスを示すフローチャートである。
【図４】いくつかの実施形態による、メモリのランクに対するリフレッシュ動作の実行を示すタイムライン図である。
【発明を実施するための形態】
【０００６】
図面及び説明全体を通して、同様の符号は、同じ要素を指す。
【０００７】
以下の説明は、当業者が、説明する実施形態を作成及び使用するのを可能にするために提示され、特定の用途及びその要件に照らして提供される。説明する実施形態に対する様々な変更は、当業者には容易に明らかであり、本明細書で定義される一般的原理は、他の実施形態及び用途に適用されてもよい。したがって、説明する実施形態は、示された実施形態に限定されるものではなく、本明細書に開示される原理及び特徴と一致する最も広い範囲で許容されることとなる。
【０００８】
（用語）
以下の説明では、実施形態を説明するために様々な用語が使用される。以下に、これらの用語を簡略化して一般的に説明する。用語は、明確及び簡潔にするために本明細書に記載されていない重要な追加態様を有してもよく、したがって、説明は、用語を限定することを意図していないことに留意されたい。
【０００９】
機能ブロック：機能ブロックは、集積回路要素、ディスクリート回路要素等のように、１つ以上の相互に関連する回路要素のグループ、集合及び／又はセットを指す。回路要素は、回路要素が少なくとも１つの特性を共有するという点で「相互に関連する」。例えば、集積回路要素は、特定の集積回路チップ又はその一部に含まれてもよく、その上に製造されてもよく、それに結合されてもよく、所定の機能（計算又は処理機能、メモリ機能等）の実行に関与してもよく、共通の制御要素によって制御されてもよい。機能ブロックは、単一の回路要素（例えば、単一の集積回路論理ゲート）から数百万又は数十億の回路要素（例えば、集積回路メモリ）までの任意の数の回路要素等を含むことができる。
【００１０】
（概要）
説明する実施形態は、メモリ機能ブロック及びメモリコントローラ機能ブロックを有する電子デバイスを含む。メモリ機能ブロックは、複数ランクのダイナミックランダムアクセス（ＤＲＡＭ）メモリ回路を含む。メモリ回路は、時間の経過と共に電荷が消失するという点で「ダイナミック」であり、したがって、記憶された情報の消失を回避するために周期的にリフレッシュされなければならない。メモリコントローラ機能ブロックは、リフレッシュ間隔中にメモリの個々のランクに対してリフレッシュ動作をどのように実行するか、及び、そのようなリフレッシュ動作をいつ実行するかを決定するリフレッシュロジックを含む。例えば、メモリコントローラは、指定された基準に基づいて、リフレッシュされるメモリの特定のランク、及び、リフレッシュ間隔中にメモリのランクがリフレッシュされるリフレッシュ順序を決定することができる。
【００１１】
いくつかの実施形態では、リフレッシュ間隔の前に、リフレッシュロジックは、リフレッシュ間隔に対するリフレッシュ順序を決定するための動作を実行する。一般に、リフレッシュ順序は、識別されたメモリのランク（或いは、より簡単に言えば「ランク」）がリフレッシュ間隔中にリフレッシュされる順序である。リフレッシュ順序を決定する場合、リフレッシュロジックは、最初に、リフレッシュ間隔中にリフレッシュが実行されるランクを識別する。例えば、リフレッシュロジックは、指定された数を超えるメモリアクセスが現在メモリコントローラによってバッファリングされているランクを識別することができる（ここで、「アクセス」には、メモリの読み出し、書き込み、移動、削除等が含まれる）。次に、リフレッシュロジックは、識別されたランクの数に少なくとも部分的に基づいて、リフレッシュ間隔をサブ間隔に分割する。各サブ間隔は、識別されたランクのうち１つに対してリフレッシュを実行するために使用される。例えば、識別されたランクが５つある場合、リフレッシュロジックは、リフレッシュ間隔を５つのサブ間隔に分割してもよい。次いで、バッファリング済みのメモリアクセスの特性及び／又はメモリコントローラと識別されたランクとの間の相互作用に関連する１つ以上の基準に基づいて、リフレッシュロジックは、識別されたランクに対してリフレッシュを実行するためのリフレッシュ順序を決定する。これらの動作の最後に、リフレッシュロジックは、リフレッシュ間隔のサブ間隔の数と、サブ間隔においてリフレッシュが実行されるリフレッシュ順序と、の両方を決定する。
【００１２】
いくつかの実施形態では、リフレッシュ順序を決定するために使用されるバッファリング済みのメモリアクセスの１つ以上の特性に関連する基準は、各ランクに対するバッファリング済みのメモリアクセスのカウント（すなわち、各ランクに対してメモリコントローラ内で保留されているメモリアクセスの総数）、タイプのセット（例えば、読み出し、書き込み、移動、削除等）の中からのバッファリング済みのメモリアクセスの各々のタイプ、優先度のセットの中からのバッファリング済みのメモリアクセスの優先度等の基準を含む。例えば、いくつかの実施形態では、メモリコントローラは、複数の優先度レベルの各々でのバッファリング済みのメモリアクセスの数のランク毎の記録を保持し、基準は、指定された優先度のバッファリング済みのメモリアクセスの数、各ランクに対するバッファリング済みのメモリアクセスの平均優先度レベル等である。いくつかの実施形態では、メモリコントローラと識別されたランクとの間の相互作用に関連する基準は、ランクに既に送信された又は送信されるコマンドのタイプ、ランク間の相互関係等の基準を含む。例えば、基準は、識別されたランク及び／又は他のランクへのメモリコントローラによるそのようなコマンドの以前の送信（又は非送信）の相対的なタイミングであってもよい。いくつかの実施形態では、メモリコントローラは、対応する基準が満たされているかどうかを判別するために使用される値のうち１つ以上の実行レコード（すなわち、リアルタイムで且つイベントが発生したときに更新されるレコード）を保持する。
【００１３】
いくつかの実施形態では、リフレッシュ順序を決定した後、リフレッシュロジックは、メモリコントローラに、リフレッシュ順序でリフレッシュ動作を実行させる。リフレッシュ順序の１番目のランクに対して、メモリコントローラは、１番目のサブ間隔においてリフレッシュを送信する。これは、１番目のランクに対するバッファリング済みのメモリアクセスを停止し、リフレッシュ間隔の開始とほぼ同時に１番目のランクに対してリフレッシュを実行することを意味する。リフレッシュ順序の２番目のランク及びその後続のランクに対しては、リフレッシュ順序の１つ以上前のランクに対してリフレッシュが実行されている間、メモリコントローラは、そのランクに対してバッファリング済みのメモリアクセスを実行する。このように、１番目のランク以降の各ランクに対してリフレッシュを実行するためのサブ間隔が発生すると、そのランクがリフレッシュのために準備される。換言すれば、メモリコントローラは、ランクをリフレッシュする前に、ランクに対するバッファリング済みのメモリアクセスを（可能な範囲で）クリアしている。説明するように、リフレッシュを実行する前にバッファリング済みのメモリアクセスを実行することによって、メモリコントローラは、バッファリング済みのメモリアクセスに依存するエンティティ（例えば、プロセッサ、入出力デバイス等）の遅延を回避するのに役立つことができる。いくつかの実施形態では、メモリコントローラは、指定されたコマンドを、ランクが発生するサブ間隔の指定された時間内に当該ランクに送信することを回避し、それによって、サブ間隔中のリフレッシュの対応する遅延を回避する。
【００１４】
説明するように、リフレッシュ順序を決定し、リフレッシュ順序を使用してリフレッシュを実行する前にバッファリング済みのメモリアクセスを実行することによって、説明する実施形態は、リフレッシュ動作の性能を改善する。より具体的には、説明する実施形態は、リフレッシュ動作がリアクティブ（reactive）且つリフレッシュ順序を使用せずに実行され、その後、それぞれのリフレッシュ動作を実行した後に、停止されたバッファリング済みのメモリ動作を送信することによってメモリアクセスが遅延する場合に、既存のシステムに生じる遅延の一部を回避することができる。これは、ＤＲＡＭリフレッシュを実行する既存の電子デバイスにおいて発生するプログラムコードの実行、アイドルな計算要素及び他の非効率性のための不要な遅延を回避するのに役立つことができる。電子デバイスの機能の改善は、ユーザの満足度をより高めることに寄与することができる。
【００１５】
（電子デバイス）
図１は、いくつかの実施形態による、電子デバイス１００を示すブロック図である。図１に示すように、電子デバイス１００は、処理機能ブロック１０２と、メモリ機能ブロック１１０と、を含む。一般に、処理機能ブロック１０２及びメモリ機能ブロック１１０は、ハードウェア、すなわち、様々な回路要素及びデバイスを使用して実装される。例えば、処理機能ブロック１０２及びメモリ機能ブロック１１０を、機能ブロックの各々について１つ以上の個別の半導体チップを含む１つ以上の半導体チップ上に完全に製造すること、ディスクリート回路要素と組み合わせて半導体チップから形成すること、ディスクリート回路要素単体から製造すること等が可能である。本明細書で説明するように、処理機能ブロック１０２及びメモリ機能ブロック１１０は、メモリ機能ブロック１１０内のダイナミックランダムアクセスメモリ（ＤＲＡＭ）のリフレッシュを処理するための動作を実行する。
【００１６】
処理機能ブロック１０２は、電子デバイス１００内で計算及び他の動作（例えば、制御動作、構成動作等）を実行する機能ブロックである。図１に示すように、処理機能ブロック１０２は、処理複合体１０４〜１０６を含む。処理複合体１０４〜１０６は、計算及び他の動作を実行するための中央処理ユニット（ＣＰＵ）又はＣＰＵコア、特定用途向け集積回路（ＡＳＩＣ）、汎用グラフィックス処理ユニット（ＧＰＧＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の要素を含む機能ブロックである。例えば、いくつかの実施形態では、処理複合体１０４〜１０６の一方又は両方は、高速相互接続を介して互いに結合された複数のＣＰＵコア、キャッシュ及び他の要素を含む。処理機能ブロック１０２は、以下により詳細に説明するメモリコントローラ１０８も含む。
【００１７】
メモリ機能ブロック１１０は、電子デバイス１００用のメモリ（例えば、「メイン」メモリ）の動作を実行する電子デバイス１００内の機能ブロックである。メモリ機能ブロック１１０は、第４世代ダブルデータレート同期ＤＲＡＭ（ＤＤＲ４  ＳＤＲＡＭ）等のメモリ回路、及び／又は、電子デバイス１００内の機能ブロックによる使用のためにデータ及び命令を記憶するための他のタイプのメモリ回路と、メモリ回路に記憶されたデータ及び命令のアクセスを処理するための、さらには、他の制御又は構成動作を実行するための制御回路と、を含む。説明する実施形態では、メモリ機能ブロック１１０内のメモリ回路の少なくとも一部は、「ダイナミック」メモリ回路である。ダイナミックメモリ回路は、リーク及び／又は他の電荷消失メカニズムによって経時的に電荷が消失するキャパシタ等の回路要素を使用して情報（例えば、データ、命令等の情報のビット）を記憶する。回路要素によって電荷が消失するため、周期的にリフレッシュ動作を実行して回路要素を再充電することにより、記憶された情報の消失を回避する。例えば、いくつかの実施形態では、回路要素に記憶された情報がリーク及び／又は他の電荷消失メカニズムによって消失しないことを確実にするために、所定の回路要素をＮマイクロ秒毎にリフレッシュする必要があり得る。
【００１８】
図１に示すように、メモリ機能ブロック１１０は、メモリモジュール１１２〜１１８を含む。これらのメモリモジュール１１２〜１１８は、回路基板の両側に取り付けられた（メモリモジュール１１２〜１１８の片側のみが図１に示されている）複数のメモリ集積回路チップ（ＭＥＭチップ）１２０（例えば、ＤＤＲ  ＳＤＲＡＭ集積回路チップ）を含むデュアルインラインメモリモジュール（ＤＩＭＭ）等のモジュールである。説明する実施形態では、各メモリチップ１２０は、バンク１２２等の複数のバンクを含み（明確にするために、バンクは、図１のメモリチップ１２０のうち１つのみについて符号が付されている）、各バンクは、メモリ回路の複数のアレイを含む（図示省略）。メモリモジュール１１２〜１１８上のメモリチップ１２０は、破線を使用して示すように、図１に示すメモリモジュール１１２〜１１８の側で、論理的及び／又は物理的に８つのランクに分割される（明確にするために、ランク１２４〜１２６は、図１のメモリモジュールの一部のみについて符号が付されている）。いくつかの実施形態では、制御信号、電力信号、アドレス信号、チップセレクト及び／又は他の信号は、各ランクに別々に結合されており、ランクを別々にアドレス指定／アクセス、制御、電源投入及び切断、並びに／又は、相互作用させることが可能である。説明する実施形態は、ランクの分解能でメモリ機能ブロック１１０内のメモリ回路のリフレッシュを実行する。換言すれば、ＤＲＡＭメモリ回路をリフレッシュする場合、説明する実施形態は、ランクを選択し、そのランクのメモリ回路に対してリフレッシュを実行する。
【００１９】
いくつかの実施形態では、メモリチップ１２０の一部又は全ては、スタックに配置された少なくとも２つの個別のＤＲＡＭメモリチップを含む。換言すれば、バンクのセットを含む複数の個別のメモリチップがスタックに物理的に配置されており、これを「３Ｄスタック」と呼ぶことができる。これらの実施形態では、メモリチップは、スタック内のメモリチップと通信、及び、メモリチップ間の通信を行うためのシリコン貫通ビア等の通信メカニズムを含み、スタック内の少なくとも１つのチップは、メモリコントローラ１０８及びスタックの外部の他のエンティティとの通信を行うためのインタフェース回路を含む。いくつかの実施形態では、上述したランクは、メモリチップの単一スタック内のチップの少なくとも一部であるか、そのチップの少なくとも一部を含む。
【００２０】
メモリコントローラ１０８は、処理機能ブロック１０２とメモリ機能ブロック１１０との間の相互作用を管理、制御及び他の方法で処理する機能ブロックである。例えば、メモリコントローラ１０８は、処理機能ブロック１０２に代わってメモリアクセス（すなわち、読み出し、書き込み、削除、移動等）を実行し、メモリ機能ブロック１１０の構成及び制御動作、及び／又は、他の動作を実行する。いくつかの実施形態では、メモリコントローラ１０８は、メモリ機能ブロック１１０内のＤＲＡＭメモリ回路に対するリフレッシュの実行をスケジューリングし、引き起こし、及び／又は、制御する。いくつかの実施形態では、メモリコントローラ１０８は、バス、ワイヤ、ガイド、及び／又は、他の通信要素及び回路を含むチャネル１２８〜１３０等のチャネルを介して、メモリモジュール１１２〜１１８内の個々のメモリモジュールと通信する。
【００２１】
いくつかの実施形態では、メモリアクセスは、メモリコントローラ１０８によってバッファリングされる。換言すれば、メモリアクセスが処理複合体１０４等のエンティティから実行されるという要求、コマンド又は他の指示を受信すると、メモリコントローラ１０８は、メモリアクセス（すなわち、要求、コマンド等、又は、これらに基づく情報）が、メモリコントローラ１０８内のバッファ、キュー又は別のメモリ要素に保持され、解決のためにメモリ機能ブロック１１０に直ちに送信されないことを決定する。例えば、メモリコントローラ１０８は、メモリアクセスの（再）順序付けを可能にすること、アクセスされるランクによって実行される他の動作との競合を回避すること、対応するチャネル上の他のトラフィックとの干渉を回避すること等のために、メモリアクセスをバッファリングしてもよい。これらの実施形態のいくつかでは、メモリコントローラ１０８は、アーキテクチャ仕様又は他のシステムルール等によって、各ランクに対して、所定の時間（例えば、７、８等）で所定数のメモリアクセスのみをバッファリングするように、及び／又は、メモリアクセスがメモリ機能ブロック１１０に送信される前にバッファリング済みのメモリアクセスを指定された時間のみ保持するように制限される。
【００２２】
メモリコントローラ１０８は、リフレッシュロジック（ＲＥＬＯ）１３２を含む。リフレッシュロジック１３２は、リフレッシュ間隔中にメモリのランクをリフレッシュするリフレッシュ順序を決定するための動作を実行するメモリコントローラ１０８内の機能ブロックである。本明細書で説明するように、リフレッシュロジック１３２は、バッファリング済みのメモリアクセスの特性及び／又はメモリコントローラ１０８とメモリのランクとの間の相互作用に基づいて、リフレッシュ順序を決定し、次に、メモリコントローラに、リフレッシュ順序に基づいてリフレッシュされる各ランクに対して各々のリフレッシュを送信させる。
【００２３】
電子デバイス１００は、説明の目的で簡略化されている。しかしながら、いくつかの実施形態では、電子デバイス１００は、追加又は異なる機能ブロック、サブシステム、要素及び／又は通信経路を含む。例えば、電子デバイス１００は、表示サブシステム、電力サブシステム、入出力（Ｉ／Ｏ）サブシステム等を含んでもよい。電子デバイス１００は、一般に、本明細書で説明する動作を実行するのに十分な機能ブロック等を含む。
【００２４】
電子デバイス１００は、コンピュータ動作を実行する任意のデバイスとすることができ、又は、このような任意のデバイスに含まれてもよい。例えば、電子デバイス１００は、デスクトップコンピュータ、ラップトップコンピュータ、ウェアラブルコンピューティングデバイス、タブレットコンピュータ、仮想現実若しくは拡張現実機器の一部、スマートフォン、人工知能（ＡＩ）若しくは機械学習デバイス、サーバ、ネットワークアプライアンス、玩具、オーディオビジュアル機器の一部、家電製品、車両等、及び／又は、これらの組み合わせであってもよいし、これらに含まれてもよい。
【００２５】
（リフレッシュ動作）
説明する実施形態では、メモリ機能ブロック内のダイナミックメモリ回路は、「リフレッシュ動作」中に、記憶された情報の消失を回避するためにリフレッシュされる。いくつかの実施形態では、リフレッシュ動作は、メモリのランクの分解能で実行されるため、メモリのランク内の全てのメモリ回路が、単一のリフレッシュ動作中にリフレッシュされる。いくつかの実施形態では、リフレッシュ動作中に、リフレッシュされるメモリのランクが最初に除去されるか、アクティブな使用からブロックされるため、メモリアクセス及びメモリのランクのメモリ回路に記憶された情報を必要とする他の動作は、リフレッシュ動作の期間中、停止、終了又は遅延される。例えば、いくつかの実施形態では、メモリコントローラは、リフレッシュ動作が完了するまで、保留中のメモリアクセス動作を、ランクに関連するバッファ、キュー又は他のメモリ回路に記憶する。次に、メモリのランクがリフレッシュされる。例えば、いくつかの実施形態では、ランク内のメモリ要素のロウのセットについて、リフレッシュ動作中、各ロウがリフレッシュされるまで、メモリコントローラは、メモリ回路の次のロウ内のビットのセットからの値をロウバッファに記憶し、メモリ回路のそのロウのメモリ回路をプリチャージし、記憶された値をロウバッファからメモリ回路のそのロウに書き戻す。リフレッシュ動作が完了すると、すなわち、ランク内のメモリ回路が全てリフレッシュされると、メモリのランクが解放されてアクティブな使用に戻るため、メモリアクセス、及び、バッファリング済みのメモリアクセスを含むメモリ回路に記憶された情報を必要とする他の動作が、正常に実行される。
【００２６】
（リフレッシュ順序を使用した複数のメモリのランクに対するリフレッシュの実行）
説明する実施形態では、メモリコントローラ内のリフレッシュロジックは、複数のメモリのランクの中から、メモリのランク内のダイナミックメモリ回路がリフレッシュされる順序を決定する。図２は、いくつかの実施形態による、メモリのランクに対してリフレッシュを実行するために使用されるリフレッシュ順序を選択するためのプロセスを示すフローチャートである。図２に示す動作は、いくつかの実施形態によって実行される動作の一般的な例として示されていることに留意されたい。他の実施形態によって実行される動作は、異なる動作及び／又は異なる順序で実行される動作を含む。図２の例では、電子デバイス１００と同様の内部構成を有する電子デバイスが、様々な動作を実行するものとして説明する。しかしながら、いくつかの実施形態では、異なる構成の電子デバイスが、説明する動作を実行する。例えば、異なる数のランク、メモリモジュール等が電子デバイス内に存在してもよい。
【００２７】
図２に示す動作は、メモリコントローラ（例えば、メモリコントローラ１０８）内のリフレッシュロジック（例えば、リフレッシュロジック１３２）が、リフレッシュが実行されるメモリのランクを検出したときに開始する（ステップ２００）。この動作について、リフレッシュロジックは、メモリのランクについての情報や、メモリのランクに関連する情報に基づいて、次のリフレッシュ間隔中にリフレッシュが実行されることを決定するために、１つ以上のチェックを実行する。例えば、いくつかの実施形態では、リフレッシュロジックは、メモリコントローラが、対応するメモリアクセスルールに違反することを回避するために、バッファリング済みのメモリアクセスのうち少なくともいくつかが次のリフレッシュ間隔中に送信される必要のある十分な数のメモリアクセスをバッファリングした（及び、場合によっては意図的にバッファリングした／遅延させた）ランク等のように、指定された状態にあるか、その状態に近いメモリのランクを検出する。この場合、バッファリングされたメモリアクセスの許容数の制限は、アーキテクチャ仕様、電子デバイス内のルール、及び／又は、タイミング制約によって定められてもよく、バッファリング済みのメモリアクセスは、失効する前、要求側デバイスがタイムアウトする前等に送信される必要がある。
【００２８】
次に、リフレッシュロジックは、リフレッシュが実行されるメモリのランクの数に少なくとも部分的に基づいて、リフレッシュ間隔を複数のサブ間隔に分割する（ステップ２０２）。この動作中、いくつかの実施形態では、リフレッシュロジックは、リフレッシュ間隔を、リフレッシュが実行されるメモリのランクの数に等しい数のサブ間隔に分割する。例えば、８つのランクのうち５つがリフレッシュ間隔中にリフレッシュされる場合、リフレッシュロジックは、リフレッシュ間隔を５つの等しいサブ間隔に分割してもよい。その結果、Ｎマイクロ秒（例えば、４マイクロ秒、２マイクロ秒等）のリフレッシュ間隔が、Ｎ／５マイクロ秒のサブ間隔に分割される。いくつかの実施形態では、リフレッシュロジックは、リフレッシュが実行されるメモリのランクの数に加えて、サブ間隔の数、期間及び／又は配置を決定するための１つ以上の他の入力又は要因を使用する。例えば、メモリの各ランクの現在の状態（例えば、バッファリング済みのメモリアクセスの数等）を使用して、リフレッシュ間隔を、それぞれ異なる時間長のサブ間隔に分割してもよい。
【００２９】
いくつかの実施形態では、最小数及び／又は最大数のサブ間隔が使用される。例えば、ステップ２００で少なくとも最小数のランクがリフレッシュを必要とすると決定されたかどうかに関係なく、指定された最小数のメモリのランクを、リフレッシュが実行されるメモリのランクとして選択してもよい。この場合、ステップ２００〜２０２は、少なくとも最小数のランク、したがってサブ間隔を含む。これらの実施形態では、以下により詳細に説明するように、デフォルト又は初期のリフレッシュ順序を使用して、最小数未満のランクがリフレッシュを必要とすると決定された場合にリフレッシュされるメモリのランクのうち少なくともいくつかを定めてもよい。別の例として、（例えば、リフレッシュ間隔内で各ランクをリフレッシュするのに要する時間によって制限されるような）指定された最大数のランクが、リフレッシュが実行されるメモリのランクとして選択されてもよく、ステップ２００〜２０２は、多くとも最大数のランク、したがってサブ間隔を含む。
【００３０】
次に、リフレッシュロジックは、メモリのランクに対するバッファリング済みのメモリアクセスの１つ以上の特性、及び／又は、メモリコントローラの動作に基づいて、メモリのランクに対してリフレッシュを実行するためのリフレッシュ順序を決定する（ステップ２０４）。一般に、この動作について、リフレッシュロジックは、バッファリング済みのメモリアクセス、ランク及び／又はメモリコントローラの現在の状態に基づいてリフレッシュ順序を決定（すなわち、生成、選択等）する。決定されたリフレッシュ順序は、バッファリング済みのメモリアクセス及び他の現在の状態を考慮して、リフレッシュを実行する電子デバイスの全体的な性能に対する影響を低減するのに役立つように順序付けられたランクに対するリフレッシュ動作を有する。換言すれば、リフレッシュ順序は、何れのリフレッシュ（特に、既存の電子デバイスでは、バッファリング済みのメモリアクセスの実行を妨げる可能性がある）が、バッファリング済みのメモリアクセスを実行する際の遅延を低減するように実行されるかについて決定される。これは、バッファリング済みのメモリアクセスに依存するエンティティ（例えば、処理複合体１０４〜１０６等）が、リフレッシュによって遅延されるバッファリング済みのメモリアクセスの完了を待機して、全体的又は部分的にアイドル状態になる可能性が低いことを意味する。
【００３１】
いくつかの実施形態では、リフレッシュ順序を決定するために使用されるバッファリング済みのメモリアクセスの特性は、リフレッシュされるメモリのランク毎にバッファリングされるメモリアクセスの数である。例えば、いくつかの実施形態では、Ｎを超えるバッファリング済みのメモリアクセス（例えば、５、７等）を有するメモリのランクがリフレッシュされ、リフレッシュ順序は、メモリの各ランクに対するバッファリング済みのメモリアクセスの実際の数に基づいて選択される。例えば、Ｎ＝５と仮定すると、アーキテクチャ仕様に従って、メモリの任意のランクに対して最大７個のバッファリング済みのメモリアクセスが保持されてもよく、メモリの４つのランクは、以下の数のバッファリング済みのメモリアクセスを有する。ランク０＝５、ランク１＝７、ランク２＝６、ランク３＝５。この場合、可能なリフレッシュ順序は、ランク０、ランク３、ランク２、ランク１である。その結果、ランク０がリフレッシュ順序の１番目、ランク３がリフレッシュ順序の２番目等となる。
【００３２】
いくつかの実施形態では、リフレッシュ順序を決定するために使用されるバッファリング済みのメモリアクセスの特性は、リフレッシュされるメモリのランク毎にバッファリングされるメモリアクセスの優先度である。例えば、いくつかの実施形態では、電子デバイス内の様々なエンティティからのメモリアクセスには、メモリコントローラによって、２つ以上の優先度のセットの中から対応する優先度が割り当てられる。例えば、これらの実施形態では、Ｉ／Ｏサブシステムからのメモリアクセスに対して、処理複合体からのメモリアクセスよりも低い優先度が割り当てられてもよく、特定のソフトウェアエンティティ（例えば、ブラウザ、ワードプロセッサ等）からのメモリアクセスに対して、他のソフトウェアエンティティ（例えば、オペレーティングシステム、ファームウェア等）からのメモリアクセスよりも低い優先度が割り当てられてもよい等である。これらの実施形態では、リフレッシュ順序は、特定の優先度を有するバッファリング済みのメモリアクセスのカウント、バッファリング済みのメモリアクセスの優先度の平均若しくは合計、及び／又は、バッファリングリング済みのメモリアクセスの優先度の別の特徴に基づいて選択される。例えば、メモリの４つのランクがリフレッシュされ、優先度が少なくとも最低の優先度及び最高の優先度を含み、４つのメモリのランクが以下のように最高の優先度のメモリアクセスをバッファリングしたと仮定する。ランク０＝０、ランク１＝３、ランク２＝１、ランク３＝１。この場合、可能なリフレッシュ順序は、ランク１、ランク２、ランク３、ランク０である。その結果、ランク１がリフレッシュ順序の１番目、ランク２がリフレッシュ順序の２番目等となる。
【００３３】
いくつかの実施形態では、リフレッシュ順序を決定するために使用されるバッファリング済みのメモリアクセスの特性は、リフレッシュされるメモリのランク毎にバッファリングされるメモリアクセスのタイプである。例えば、いくつかの実施形態では、メモリアクセスは、メモリ読み出し、メモリ書き込み、メモリ削除、メモリ移動等を含むタイプである。これらの実施形態では、リフレッシュ順序は、特定のタイプを有するバッファリング済みのメモリアクセスのカウント、１つ以上のタイプを有するバッファリング済みのメモリアクセスの平均若しくはは合計、及び／又は、バッファリング済みのメモリアクセスのタイプの別の特徴に基づいて選択される。例えば、メモリの５つのランクがリフレッシュされ、タイプが少なくとも書き込みタイプ及び読み出しタイプを含み、５つのメモリのランクが以下のように書き込みタイプのメモリアクセスをバッファリングしたと仮定する。ランク０＝５、ランク１＝２、ランク２＝６、ランク３＝２、ランク４＝３。この場合、可能なリフレッシュ順序は、ランク２、ランク０、ランク４、ランク１、ランク３である。その結果、ランク２がリフレッシュ順序の１番目、ランク０がリフレッシュ順序の２番目等となる。
【００３４】
いくつかの実施形態では、リフレッシュ順序を決定するために使用されるメモリコントローラの動作は、メモリコントローラによってメモリのランクに以前に送信されたコマンドである。例えば、いくつかの実施形態では、メモリコントローラがコマンド（例えば、ページオープンコマンド等）をメモリのランクに送信する場合、メモリのランクは、複数の動作を実行し、次に、後続の動作、したがってコマンドがメモリのランクによって処理可能になる前に遅延時間（例えば、Ｎマイクロ秒）を待機する。いくつかの実施形態では、リフレッシュ順序は、遅延期間内にコマンドがメモリのランクに送信されたか否かに基づいて選択される。例えば、メモリの３つのランク（ランク０、ランク１、ランク２）がリフレッシュされ、特定のコマンドのうち１つがＭナノ秒前にランク０に送信されたと仮定する。ここで、Ｍ＜＜Ｎである。この場合、可能なリフレッシュ順序は、ランク１、ランク２、ランク３、ランク０である。その結果、ランク１がリフレッシュ順序の１番目、ランク２がリフレッシュ順序の２番目等となる。
【００３５】
いくつかの実施形態では、メモリのランクに対するバッファリング済みのメモリアクセスの上記の特性及び／又はメモリコントローラの動作のうち２つ以上の組み合わせが、リフレッシュ順序を決定するために使用される。例えば、いくつかの実施形態では、複数の特性（例えば、バッファリング済みのメモリアクセスのカウント、及び、各ランクに対するバッファリング済みのメモリアクセスの優先度）の組み合わされた値又は平均値が、リフレッシュ順序を決定する際に使用される。いくつかの実施形態では、数学的、論理的及び／又は他の関数が、組み合わされた値を決定するために使用される。
【００３６】
いくつかの実施形態では、リフレッシュロジック又は別のエンティティは、リフレッシュ順序を決定するために使用されるメモリのランクに対するバッファリング済みのメモリアクセスの１つ以上の特性及び／又はメモリコントローラの動作の実行レコードを保持する。例えば、バッファリング済みのメモリアクセスの特性が、メモリのランク毎にバッファリング済みのメモリアクセスの数を含む実施形態を仮定すると、リフレッシュロジック、メモリコントローラ及び／又は別のエンティティは、メモリのランク毎にバッファリング済みのメモリアクセスのカウンタを保持することができる。このカウンタは、メモリアクセスがバッファリングされる（例えば、メモリコントローラ内のバッファ又はキューに記憶される）とインクリメントされ、メモリアクセスがバッファリング解除されて実行されるか他の方法で処理されるとデクリメントされる。別の例として、メモリコントローラの動作を使用してリフレッシュ順序を決定する実施形態を仮定すると、リフレッシュロジック、メモリコントローラ及び／又は別のエンティティは、特定のコマンド（複数可）がメモリの各ランクに送信されるときに開始され、特定のコマンド（複数可）がメモリの各ランクに送信されたときのタイムスタンプを記憶する等のタイマを保持してもよい。いくつかの実施形態では、リフレッシュロジック又は別のエンティティは、必要に応じてリフレッシュ順序を決定するために使用されるメモリのランクに対するバッファリング済みのメモリアクセスの１つ以上の特性及び／又はメモリコントローラの動作のレコードを生成するか他の方法で決定する。例えば、リフレッシュロジック又は他のエンティティは、必要に応じて、メモリアクセスが記憶されているバッファのテールポインタ等を使用して、バッファリング済みのメモリアクセスのカウントを計算してもよい。
【００３７】
いくつかの実施形態では、静的／不変のデフォルト又は初期のリフレッシュ順序を、いくつか又は全てのリフレッシュ間隔に使用することができる。例えば、対応するメモリアクセスルールに違反することを回避するためにバッファリング済みのメモリアクセスのうち少なくともいくつかが次のリフレッシュ間隔中に送信される必要がある上記の指定された状態又はそれに近い状態で動作しているランクがない状況において、デフォルトのリフレッシュ順序を使用することができる。いくつかの実施形態では、デフォルト又は初期のリフレッシュ順序は、外部エンティティによって、構成ファイル又はファームウェア等に提供される。いくつかの実施形態では、図２で決定されたリフレッシュ順序は、デフォルト又は初期のリフレッシュ順序の変形である。
【００３８】
いくつかの実施形態では、１つ以上のルール、ガイドライン、閾値、関数等が、メモリのランクに対するバッファリング済みのメモリアクセスの上記の特性及び／又はメモリコントローラの動作に基づいてリフレッシュ順序を決定するために使用される。これらの実施形態のいくつかでは、１つ以上のルール、ガイドライン、閾値、関数等を、ソフトウェアエンティティ、構成ファイル、ファームウェア等の外部ソースから受信することができる。
【００３９】
次に、リフレッシュロジックは、リフレッシュ順序で、メモリのランクに対するリフレッシュをメモリコントローラに実行させる（ステップ２０６）。この動作について、リフレッシュロジックは、メモリコントローラにリフレッシュ順序を通信する。次いで、メモリコントローラは、対応するリフレッシュ間隔中にリフレッシュを実行するために、リフレッシュ順序を使用する。図３は、いくつかの実施形態による、リフレッシュ順序を使用してメモリのランクに対してリフレッシュを実行するためのプロセスを示すフローチャートである。図３に示す動作は、いくつかの実施形態によって実行される動作の一般的な例として示されていることに留意されたい。他の実施形態によって実行される動作は、異なる動作及び／又は異なる順序で実行される動作を含む。図３の例の場合、電子デバイス１００と同様の内部構成を有する電子デバイスが様々な動作を実行するものとして説明する。しかしながら、いくつかの実施形態では、異なる構成の電子デバイスが、説明する動作を実行する。
【００４０】
図３に示す動作は、メモリコントローラが、リフレッシュ順序の１番目のメモリのランクに対して、バッファリング済みのメモリアクセスを停止し、リフレッシュ間隔におけるサブ間隔のセットのうち１番目のサブ間隔においてリフレッシュを実行するときに開始する（ステップ３００）。一般に、本明細書でより詳細に説明するように、説明する実施形態の利点の１つは、リフレッシュが実行されるサブ間隔の前に対応するバッファリング済みのメモリアクセスを送信することによって、メモリのランクを保留中のリフレッシュのために準備できることである。しかしながら、いくつかの実施形態では、リフレッシュ順序の１番目のメモリのランクについては、対応するバッファリング済みのメモリアクセスを送信するためのリフレッシュ間隔の時間が存在しない。その代わりに、バッファリング済みのメモリアクセスは、メモリコントローラ内のバッファに保持されることによって「停止」され、リフレッシュが完了するまで実行されない。リフレッシュは、リフレッシュ間隔の開始時又はその直後（すなわち、リフレッシュ間隔の１番目のサブ間隔の開始時）にリフレッシュ順序の１番目のメモリのランクに対してリフレッシュが実行されるという点で「ほぼ同時に（substantially immediately）」実行される。いくつかの実施形態では、図２の動作は、リフレッシュ間隔中にリフレッシュ順序でメモリのランクのリフレッシュを開始するのにちょうど間に合うようにリフレッシュ順序が生成／準備されるような方法及びタイミングで実行されてもよい。したがって、リフレッシュ順序が準備され次第、１番目のサブ間隔において１番目のメモリのランクに対してリフレッシュが実行されてもよく、すなわち、「ほぼ同時に」実行されてもよい。
【００４１】
図４は、いくつかの実施形態による、メモリのランクに対するリフレッシュ動作の実行を示すタイムライン図である。より具体的には、図４は、図３に示すように、リフレッシュ順序に基づいて実行されるリフレッシュの例示である。図４は、一実施形態のリフレッシュ動作の一例として示されているが、他の実施形態では、異なる数のメモリのランクのリフレッシュ及び／又は異なる順序でのメモリのランクのリフレッシュ、異なる時間でのバッファリング済みのメモリアクセスの実行等のように、異なるように動作することに留意されたい。図４に示すように、リフレッシュ順序は、（１）メモリランク（ランク）４００、（２）メモリランク４０２、（３）メモリランク４０６、（４）メモリランク４０４である。図３のステップ３００で説明したように、リフレッシュ間隔の開始とほぼ同時に、すなわち、サブ間隔（サブＩＮＴ）４０８において、リフレッシュ順序のメモリの１番目のランクであるメモリランク（ランク）４００に対してリフレッシュ動作が実行される。メモリランク４００に対するバッファリング済みのメモリアクセスの実行は、リフレッシュ間隔内のサブ間隔４０８の後、すなわち、サブ間隔４１０中（又は、場合によってはそれ以降）まで発生しない。
【００４２】
図３に戻ると、リフレッシュ順序の２番目及びその後続のメモリのランクに対して、メモリコントローラは、対応するバッファリング済みのメモリアクセスを、メモリの前のランクに対してリフレッシュが実行されている間に実行する（ステップ３０２）。この動作中、メモリコントローラは、メモリの所定のランクに対して、メモリの所定のランクに対してリフレッシュを開始する前に実行可能な限り多くのバッファリング済みのメモリアクセスを実行する。換言すれば、バッファリング済みのメモリ読み出し、書き込み等が、実行されるメモリのランクに送信され、それによってメモリアクセスを完了させる。場合によっては、全てではないにしても殆どの、メモリの所定のランクに対するバッファリング済みのメモリアクセスは、対応するサブ間隔中にメモリの所定のランクに対するリフレッシュを開始する前に実行される。図４に戻り、図３のステップ３０２について上述したように、サブ間隔４０８中にランク４０２に対してバッファリング済みのメモリアクセスが実行され、サブ間隔４１０〜４１２中にランク４０４に対してバッファリング済みのメモリアクセスが実行され、サブ間隔４０８〜４１０中にランク４０６に対してバッファリング済みのメモリアクセスが実行される。
【００４３】
図３〜図４に示すように、リフレッシュの開始前にバッファリング済みのメモリアクセスを実行することによって、説明する実施形態は、バッファリング済みのメモリアクセスの結果に依存する電子デバイス内の他のエンティティ（例えば、処理複合体１０４〜１０６等）の動作の遅延を回避することができる。しかしながら、電子デバイス内の他のエンティティは、メモリの所定のランクに対するリフレッシュ中にメモリコントローラによってバッファリングされる新たなメモリアクセスを生成することができ、これには、サブ間隔より前であるがサブ間隔の閾値時間以内に生成されるメモリアクセスを生成することが含まれることに留意されたい。このようにして、これらの時間に生成されたメモリアクセスが、リフレッシュ中に停止される。
【００４４】
図３に戻ると、メモリの２番目以降のランクに対して、メモリコントローラは、リフレッシュ間隔内のサブ間隔のセットのうち対応するサブ間隔においてリフレッシュを実行する（ステップ３０４）。図４に示すように、さらには図３のステップ３０４について説明したように、サブ間隔４１０において、リフレッシュ順序の２番目のメモリのランクであるメモリランク４０２に対してリフレッシュ動作が実行され、サブ間隔４１２において、リフレッシュ順序の３番目のメモリのランクであるメモリランク４０６に対してリフレッシュ動作が実行され、サブ間隔４１４において、リフレッシュ順序の４番目のメモリのランクであるメモリランク４０４に対してリフレッシュ動作が実行される。
【００４５】
説明する実施形態は、複数のランクがメモリアクセスの処理に関して最大能力付近で動作しているときに（既存の電子デバイスとは対照的に）電子デバイスの性能を改善することができる。これは、図２〜図４に示すように、リフレッシュが体系化され、その結果、対応するリフレッシュが実行される前に、可能な範囲でバッファリング済みのメモリストアが実行されるからであると言える。これは、バッファリング済みのメモリアクセスを送信しなければならない状態にランクが到達したことにリアクティブであり、リフレッシュに対するアプローチにおいて殆ど体系化されておらず、効率も劣る既存の電子デバイスとは対照的である。
【００４６】
（バンク毎のリフレッシュ）
本明細書で説明する実施形態、及び、図２〜図４の例では、リフレッシュ動作は、ランクレベルで（すなわち、ランクの分解能によって）実行される。しかしながら、ランク毎のバンク及びＤＲＡＭチップの特定の数は、電子デバイスの構成、使用中のＤＲＡＭメモリ技術又はアーキテクチャ、メモリモジュールの配置等に応じて変化する。例えば、いくつかの実施形態では、ランクは、１つのＤＲＡＭチップのみ、１つ以上のバンク等を含む。したがって、「ランク」をリフレッシュする場合、ランク内の１つ以上のバンクをリフレッシュすることができる。いくつかの実施形態では、リフレッシュ動作中にリフレッシュされるバンクの数及び配置は、ランク内の全てのバンクよりも少ないバンク、すなわち、ランク内の一部のバンクのみが、所定のリフレッシュ間隔（又は、サブ間隔）中にリフレッシュされる。例えば、いくつかの実施形態では、複数のバンクのランク内の１つ以上のバンクを個別にリフレッシュすることができる。これらの実施形態では、ランクのリフレッシュについて説明した動作を、ランク内の１つ以上のバンクに適用するように対応させることができる。例えば、リフレッシュ間隔及び／又はリフレッシュ順序は、バンクレベル、並びに／又は、ランク及びバンクレベルで決定することができ、それに応じてリフレッシュを実行することができる。
【００４７】
いくつかの実施形態では、電子デバイス（例えば電子デバイス１００及び／又はその一部）は、非一時的なコンピュータ可読記憶媒体に記憶されたコード及び／又はデータを使用して、本明細書に説明する一部又は全ての動作を実行する。より具体的には、電子デバイスは、説明する動作を実行する場合に、コンピュータ可読記憶媒体からコード及び／又はデータを読み出し、コードを実行し、及び／又は、データを使用する。コンピュータ可読記憶媒体は、電子デバイスによって使用されるコード及び／又はデータを記憶する任意のデバイス、媒体又はこれらの組み合わせとすることができる。例えば、コンピュータ可読記憶媒体は、フラッシュメモリ、ランダムアクセスメモリ（ｅＤＲＡＭ、ＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、ＤＤＲ、ＤＤＲ２／ＤＤＲ３／ＤＤＲ４  ＳＤＲＡＭ等）、リードオンリーメモリ（ＲＯＭ）、及び／又は、磁気若しくは光学記憶媒体（例えば、ディスクドライブ、磁気テープ、ＣＤ、ＤＶＤ）を含む揮発性メモリ又は不揮発性メモリを含むことができるが、これらに限定されない。
【００４８】
いくつかの実施形態では、１つ以上のハードウェアモジュールが、本明細書で説明する動作を実行するように構成される。例えば、ハードウェアモジュールは、１つ以上のプロセッサ／コア／中央処理装置（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、計算ユニット、組み込みプロセッサ、グラフィックプロセッサ（ＧＰＵ）／グラフィックコア、パイプライン、加速処理ユニット（ＡＰＵ）、システム管理ユニット、電力コントローラ、及び／又は、他のプログラマブルロジックデバイスを含むことができるが、これらに限定されない。このようなハードウェアモジュールが起動されると、ハードウェアモジュールは、一部又は全ての動作を実行する。いくつかの実施形態では、ハードウェアモジュールは、命令（プログラムコード、ファームウェア等）を実行することによって動作を実行するように構成された１つ以上の汎用回路を含む。
【００４９】
いくつかの実施形態では、本明細書で説明する構造及びメカニズムのうち一部又は全てを表すデータ構造（例えば、処理機能ブロック１０２、メモリ機能ブロック１１０、及び／又は、これらの一部）は、電子デバイスによって読み出し可能であり、構造及びメカニズムを含むハードウェアを製造するために直接的又は間接的に使用可能なデータベース又は他のデータ構造を含む非一時的なコンピュータ可読記憶媒体に記憶される。例えば、データ構造は、Ｖｅｒｉｌｏｇ又はＶＨＤＬ等の高水準設計言語（ＨＤＬ）におけるハードウェア機能の動作レベルの記述又はレジスタ転送レベル（ＲＴＬ）の記述であってもよい。記述は、合成ツールによって読み出され、合成ツールは、記述を合成して、上述した構造及びメカニズムを含むハードウェアの機能を表す合成ライブラリからゲート／回路要素のリストを含むネットリストを生成する。次に、ネットリストを配置し、ルーティングして、マスクに適用される幾何学的形状を記述するデータセットを生成することができる。次いで、様々な半導体製造ステップでマスクを使用して、上述した構造及びメカニズムに対応する１つ以上の半導体回路（例えば、集積回路）を製造することができる。或いは、コンピュータがアクセス可能な記憶媒体上のデータベースは、必要に応じて、ネットリスト（合成ライブラリの有無に関わらず）若しくはデータセット又はグラフィックデータシステム（ＧＤＳ）ＩＩデータであってもよい。
【００５０】
本説明では、変数又は不特定の値（すなわち、値の特定の例のない、値の一般的な説明）は、Ｎ等の文字によって表される。同様の文字が本説明の他の箇所で使用され得るが、本明細書で使用されるように、各例の変数及び不特定の値は、必ずしも同じではない。すなわち、一般変数及び不特定値の一部又は全てに対して、様々な変数量及び値が存在し得る。換言すれば、本説明で変数及び不特定の値を表すのに使用されるＮ及び任意の他の文字は、必ずしも互いに関連するわけではない。
【００５１】
本明細書で使用される「等（et cetera）」又は「等（etc.）」という表現は、及び／又はケース、すなわち、「等」に関連するリスト内の要素のうち「少なくとも１つ」に相当するものを提示することを意図している。例えば、「システムは、第１の動作、第２の動作等を実行する」という文において、システムは、第１の動作、第２の動作、及び、他の動作のうち少なくとも１つを実行する。加えて、「等」に関連するリスト内の要素は、実施例のセットの中の単なる例に過ぎず、実施例の少なくともいくつかは、いくつかの実施形態において現れない場合がある。
【００５２】
以上の実施形態の説明は、例示及び説明のためにのみ提示されている。これらは、包括的であること、又は、実施形態を開示された形態に限定することを意図するものではない。したがって、当業者には、多くの変更及び変形が明らかであろう。さらに、上記の開示は、実施形態を限定することを意図していない。実施形態の範囲は、添付の特許請求の範囲によって定義される。
【図１】
2021530808.tif 000003
【図２】
2021530808.tif 000004
【図３】
2021530808.tif 000005
【図４】
2021530808.tif 000006
【国際調査報告】
2021530808.tif 000007
2021530808.tif 000008
2021530808.tif 000009