(58)【調査した分野】(Int.Cl.,DB名)
コンピュータシステムであって、前記コンピュータシステムは、メモリコントローラと、ハイブリッドメモリとを備え、前記ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、ストレージクラスメモリSCMとを備え、
前記メモリコントローラは、前記DRAMおよび前記メモリコントローラに接続された前記SCMに第1のアクセス命令を送信するように構成され、前記第1のアクセス命令は、第1のアドレスを搬送し、かつ前記第1のアドレスは、前記DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用され、
前記DRAMは、前記第1のアクセス命令に応じて前記第1のメモリセルセット内のメモリセルにアクセスするように構成され、かつ
前記SCMは、
前記メモリコントローラによって送信された前記第1のアクセス命令を受信すること、
前記第1のメモリセルセットが、保持時間が前記DRAMのリフレッシュサイクルより短いメモリセルを備えると決定することであって、前記DRAMの前記リフレッシュサイクルは、標準のリフレッシュサイクルより長い、決定すること、
前記第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、前記第2のアドレスは、前記SCMの第2のメモリセルセットをポイントするのに使用される、獲得すること、
前記第1のアクセス命令を、前記第2のアドレスに応じて第2のアクセス命令に変換することであって、前記第2のアクセス命令は、前記第2のアドレスを備える、変換すること、および
前記第2のアクセス命令に応じて前記第2のメモリセルセット内のメモリセルにアクセスすることを行うように構成されることを特徴とするコンピュータシステム。
前記メモリコントローラは、前記DRAMおよび前記SCMに第3のアクセス命令を送信するようにさらに構成され、前記第3のアクセス命令は、第3のアドレスを搬送し、かつ前記第3のアドレスは、前記DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
前記DRAMは、前記第3のアクセス命令に応じて前記第3のメモリセルセット内のメモリセルにアクセスするようにさらに構成され、かつ
前記SCMは、
前記メモリコントローラによって送信された前記第3のアクセス命令を受信すること、
前記第3のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えないと決定すること、および
前記第3のアクセス命令を削除することを行うようにさらに構成されることを特徴とする請求項1または2に記載のコンピュータシステム。
前記第2のメモリセルセット内の前記メモリセルの合計ストレージ容量は、前記第1のメモリセルセット内の前記メモリセルの合計ストレージ容量以上であることを特徴とする請求項1乃至4のいずれか一項に記載のコンピュータシステム。
ストレージクラスメモリSCMであって、前記SCMは、ハイブリッドメモリを備えるコンピュータシステムに適用され、前記ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、メモリコントローラに接続された前記SCMとを備え、前記SCMは、
前記コンピュータシステムの前記メモリコントローラによって送信された第1のアクセス命令を受信するように構成されたSCMコントローラであって、前記第1のアクセス命令は、第1のアドレスを搬送し、かつ前記第1のアドレスは、前記DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用される、SCMコントローラと、
前記第1のメモリセルセットが、保持時間が前記DRAMのリフレッシュサイクルより短いメモリセルを備えると決定すること、および前記第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することを行うように構成された連想メモリCAMであって、前記DRAMの前記リフレッシュサイクルは、標準のリフレッシュサイクルより長く、かつ前記第2のアドレスは、前記SCMの第2のメモリセルセットをポイントするのに使用される、連想メモリCAMとを備え、
前記SCMコントローラは、前記第1のアクセス命令を、前記第2のアドレスに応じて第2のアクセス命令に変換すること、および前記第2のアクセス命令に応じて前記第2のメモリセルセット内のメモリセルにアクセスすることを行うようにさらに構成され、前記第2のアクセス命令は、前記第2のアドレスを備え、かつ前記SCMは、
データを記憶するように構成されたメモリセルをさらに備えることを特徴とするストレージクラスメモリSCM。
前記第2のメモリセルセット内の前記メモリセルの合計ストレージ容量は、前記第1のメモリセルセット内の前記メモリセルの合計ストレージ容量以上であることを特徴とする請求項6乃至9のいずれか一項に記載のSCM。
メモリアクセス方法であって、前記方法は、ハイブリッドメモリを備えるコンピュータシステムに適用され、前記ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、メモリコントローラに接続されたストレージクラスメモリSCMとを備え、前記方法は、前記SCMによって実行され、
前記コンピュータシステムの前記メモリコントローラによって送信された第1のアクセス命令を受信するステップであって、前記第1のアクセス命令は、第1のアドレスを搬送し、かつ前記第1のアドレスは、前記DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用される、ステップと、
前記第1のメモリセルセットが、保持時間が前記DRAMのリフレッシュサイクルより短いメモリセルを備えると決定するステップであって、前記DRAMの前記リフレッシュサイクルは、標準のリフレッシュサイクルより長い、ステップと、
前記第1のアドレスとのマッピング関係を有する第2のアドレスを獲得するステップであって、前記第2のアドレスは、前記SCMの第2のメモリセルセットをポイントするのに使用される、ステップと、
前記第1のアクセス命令を、前記第2のアドレスに応じて第2のアクセス命令に変換するステップであって、前記第2のアクセス命令は、前記第2のアドレスを備える、ステップと、
前記第2のアクセス命令に応じて前記第2のメモリセルセット内のメモリセルにアクセスするステップと
を備えることを特徴とするメモリアクセス方法。
前記メモリコントローラによって送信された第3のアクセス命令を受信するステップであって、前記第3のアクセス命令は、第3のアドレスを搬送し、かつ前記第3のアドレスは、前記DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用される、ステップと、
前記第3のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えないと決定するステップと、
前記第3のアクセス命令を削除するステップと
をさらに備えることを特徴とする請求項11に記載の方法。
前記第1のアクセス命令が読取り命令である場合、前記第1のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えると決定された後、前記ハイブリッドメモリ内のマルチプレクサMUXに第1の命令信号を送信するステップであって、前記第1の命令信号は、前記SCMに記憶されたデータを前記メモリコントローラに出力するよう前記MUXに命令するのに使用される、ステップをさらに備えることを特徴とする請求項11に記載の方法。
【発明の概要】
【0004】
本発明の実施形態は、システム電力消費を低減する一方で、メモリ内のデータの正しさを確実にすることができる、メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステムを提供する。
【0005】
第1の態様によれば、本発明の実施形態が、コンピュータシステムを提供し、コンピュータシステムは、メモリコントローラと、ハイブリッドメモリとを含み、ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、ストレージクラスメモリSCMとを含み、
メモリコントローラは、DRAMおよびSCMに第1のアクセス命令を送信するように構成され、第1のアクセス命令は、第1のアドレスを搬送し、かつ第1のアドレスは、DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用され、
DRAMは、第1のアクセス命令に応じて第1のメモリセルセット内のメモリセルにアクセスするように構成され、かつ
SCMは、
メモリコントローラによって送信された第1のアクセス命令を受信すること、
第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長い、決定すること、
第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、第2のアドレスは、SCMの第2のメモリセルセットをポイントするのに使用される、獲得すること、
第1のアクセス命令を、第2のアドレスに応じて第2のアクセス命令に変換することであって、第2のアクセス命令は、第2のアドレスを含む、変換すること、および
第2のアクセス命令に応じて第2のメモリセルセット内のメモリセルにアクセスすることを行うように構成される。
【0006】
第1の態様を参照すると、第1の態様の第1の可能な実施様態において、SCMは、
連想メモリCAMに記憶された第1のアドレスに応じて、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、CAMは、第1のアドレスを含め、DRAMに入っており、かつ保持時間がDRAMのリフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定すること、および
第1のアドレス、および第1のアドレスと第2のアドレスの間のCAMに記憶されたマッピング関係に応じて、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される、獲得することを行うように特に構成される。
【0007】
第1の態様、または第1の態様の第1の可能な実施様態を参照して、第1の態様の第2の可能な実施様態において、メモリコントローラは、DRAMおよびSCMに第3のアクセス命令を送信するようにさらに構成され、第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
DRAMは、第3のアクセス命令に応じて第3のメモリセルセット内のメモリセルにアクセスするようにさらに構成され、かつ
SCMは、
メモリコントローラによって送信された第3のアクセス命令を受信すること、
第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定すること、および
第3のアクセス命令を削除することを行うようにさらに構成される。
【0008】
第1の態様の第2の可能な実施様態を参照して、第1の態様の第3の可能な実施様態において、ハイブリッドメモリは、
第1のアクセス命令が読取り命令である場合、SCMの第2のメモリセルセット内のメモリセルに記憶されたデータをメモリコントローラに出力すること、または
第3のアクセス命令が読取り命令である場合、DRAMの第3のメモリセルセット内のメモリセルに記憶されたデータをメモリコントローラに出力することを行うように構成されたマルチプレクサMUXをさらに含む。
【0009】
第2の態様によれば、本発明の実施形態が、ストレージクラスメモリSCMを提供し、SCMは、ハイブリッドメモリを含むコンピュータシステムに適用され、ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、SCMとを含み、SCMは、
コンピュータシステムのメモリコントローラによって送信された第1のアクセス命令を受信するように構成されたSCMコントローラであって、第1のアクセス命令は、第1のアドレスを搬送し、かつ第1のアドレスは、DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用される、SCMコントローラと、
第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定すること、および第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することを行うように構成された連想メモリCAMであって、DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長く、かつ第2のアドレスは、SCMの第2のメモリセルセットをポイントするのに使用される、連想メモリCAMとを含み、
SCMコントローラは、第1のアクセス命令を、第2のアドレスに応じて第2のアクセス命令に変換すること、および第2のアクセス命令に応じて第2のメモリセルセット内のメモリセルにアクセスすることを行うようにさらに構成され、第2のアクセス命令は、第2のアドレスを含み、かつSCMは、
データを記憶するように構成されたメモリセルをさらに含む。
【0010】
第2の態様を参照して、第2の態様の第1の可能な実施様態において、CAMは、
CAMに事前記憶された第1のアドレスに応じて、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、CAMは、第1のアドレスを含め、DRAMに入っており、かつ保持時間がDRAMのリフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定すること、および
第1のアドレス、および第1のアドレスと第2のアドレスの間のCAMに記憶されたマッピング関係に応じて、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される、獲得することを行うように特に構成される。
【0011】
第2の態様、または第2の態様の第1の可能な実施様態を参照して、第2の態様の第2の可能な実施様態において、SCMコントローラは、メモリコントローラによって送信された第3のアクセス命令を受信するようにさらに構成され、第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
CAMは、第3のアドレスに応じて、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定するようにさらに構成され、かつ
SCMコントローラは、第3のアクセス命令を削除するようにさらに構成される。
【0012】
第2の態様の第2の可能な実施様態を参照して、第2の態様の第3の可能な実施様態において、ハイブリッドメモリは、マルチプレクサMUXをさらに含み、CAMは、
第1のアクセス
命令が読取り
命令である場合、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定された後、ハイブリッドメモリ内のMUXに第1の命令信号を送信することであって、第1の命令信号は、SCMに記憶されたデータをメモリコントローラに出力するようMUXに命令するのに使用される、送信することを行うようにさらに構成される。
【0013】
第3の態様によれば、本発明の実施形態が、メモリアクセス方法を提供し、方法は、ハイブリッドメモリを含むコンピュータシステムに適用され、ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、ストレージクラスメモリSCMとを含み、方法は、SCMによって実行され、かつ方法は、
コンピュータシステムのメモリコントローラによって送信された第1のアクセス命令を受信することであって、第1のアクセス命令は、第1のアドレスを搬送し、かつ第1のアドレスは、DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用される、受信すること、
第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長い、決定すること、
第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、第2のアドレスは、SCMの第2のメモリセルセットをポイントするのに使用される、獲得すること、
第1のアクセス命令を、第2のアドレスに応じて第2のアクセス命令に変換することであって、第2のアクセス命令は、第2のアドレスを含む、変換すること、および
第2のアクセス命令に応じて第2のメモリセルセット内のメモリセルにアクセスすることを含む。
【0014】
第3の態様を参照して、第3の態様の第1の可能な実施様態において、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することは、
連想メモリCAMに記憶された第1のアドレスに応じて、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、CAMは、第1のアドレスを含め、DRAMに入っており、かつ保持時間がDRAMのリフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定することを含む。
【0015】
第3の態様の第1の可能な実施様態を参照して、第3の態様の第2の可能な実施様態において、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することは、
CAMに記憶された、第1のアドレスと第2のアドレスの間のマッピング
関係に応じて、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される、獲得することを含む。
【0016】
第3の態様を参照して、第3の態様の第3の可能な実施様態において、方法は、
メモリコントローラによって送信された第3のアクセス命令を受信することであって、第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用される、受信すること、
第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定すること、および
第3のアクセス命令を削除することをさらに含む。
【0017】
第3の態様を参照して、第3の態様の第4の可能な実施様態において、方法は、
第1のアクセス
命令が読取り
命令である場合、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定された後、ハイブリッドメモリ内のマルチプレクサMUXに第1の命令信号を送信することであって、第1の命令信号は、SCMに記憶されたデータをメモリコントローラに出力するようMUXに命令するのに使用される、送信することをさらに含む。
【0018】
第4の態様によれば、本発明の実施形態が、プログラムコードを記憶するコンピュータ可読ストレージ媒体を含むコンピュータプログラム製品であって、プログラムコードに含まれる命令は、第3の態様による方法を実行するのに使用されるコンピュータプログラム製品を提供する。
【0019】
本発明の実施形態において提供されるコンピュータシステムにおいて、ダイナミックランダムアクセスメモリDRAMとストレージクラスメモリSCMが、コンピュータシステムのハイブリッドメモリを一緒に構成し、DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長い。DRAMのものであり、かつ受信された第1のアクセス命令内の第1のアドレスがポイントする第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定した場合、SCMは、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得し得る。さらに、SCMは、第2のアドレスに応じて、第1のアクセス命令を、SCMにアクセスするための第2のアクセス命令に変換して、SCMに対するアクセスを実施する。本発明の実施形態において提供されるコンピュータシステムは、DRAMリフレッシュのための電力消費を低減する一方で、データの正しさを確実にすることができる。
【発明を実施するための形態】
【0021】
当業者に本発明における技術的解決策をよりよく理解させるのに、以下が、本発明の実施形態における添付の図面を参照して本発明の実施形態における技術的解決策を明確に、かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく、一部分に過ぎない。
【0022】
本発明の実施形態が、ハイブリッドメモリを有するシステムアーキテクチャに基づいて、メモリリフレッシュのための電力消費を低減する一方で、メモリに記憶されたデータの正しさを確実にすることができるメモリアクセス方法を提供する。
図1−A、
図1−B、および
図1−Cは、本発明のこの実施形態によるハイブリッドメモリに基づくコンピュータシステムアーキテクチャの概略図である。
図1−A、
図1−B、および
図1−Cに示されるコンピュータシステムアーキテクチャにおいて、ダイナミックランダムアクセスメモリDRAMとストレージクラスメモリ(Storage−Class Memory、SCM)は、全体として見られ、コンピュータシステム100のメインメモリとして一緒に扱われる。
図1−A、
図1−B、および
図1−Cに示されるコンピュータシステムアーキテクチャは同様であるので、本発明のこの実施形態において提供されるコンピュータシステム100を、
図1−Aを主に参照して、以下詳細に説明する。
【0023】
図1−Aに示すように、中央処理ユニット(Central Processing Unit、CPU)10は、コンピュータシステム100の計算コア(Core)および制御コア(Control
core)である。CPU10は、超超大規模集積回路であり得る。オペレーティングシステムおよび別のソフトウェアプログラムがCPU10にインストールされて、それによりCPU10がメモリ、キャッシュ、および磁気ディスクにアクセスすることができるようになる。本発明のこの実施形態において、CPU10は、プロセッサの例に過ぎないことが理解されることができる。CPU10に加えて、プロセッサは、あるいは、別の特定用途向け集積回路ASIC(Application
−Specific Integrated Circuit)であってよく、または本発明のこの実施形態を実施する1もしくは複数の集積回路として構成されてよい。CPU10は、メモリ管理ユニット(Memory Management Unit、MMU)を含むことがあり、MMUは、論理アドレスから物理メモリアドレスへの変換を実施するように構成される。
【0024】
メモリコントローラ(Memory Controller)20は、メモリ30を制御し、かつメモリ30からCPU10へのデータ伝送のレートを管理し、かつ計画するように構成された、コンピュータシステム100内のバス回路コントローラである。メモリコントローラ20を使用することによって、メモリ30とCPU10は、データを交換し得る。メモリコントローラ20は、1つの独立したチップであることがあり、システムバスを使用することによってCPU10に接続される。当業者は、メモリコントローラ20が関係付けられた大型チップに集積されてもよいことを知り得る。例えば、メモリコントローラ20は、マイクロプロセッサ(例えば、CPU10)に集積されてよく、またはノースブリッジに組み込まれてよい。メモリコントローラ20の特定の位置は、本発明のこの実施形態において限定されない。説明を容易にするため、
図1−Aに示されるシステムアーキテクチャにおいて、メモリコントローラ20が独立に構成される例が、説明のために使用される。メモリコントローラ20は、メモリ30にデータを書き込むのに必要なロジック、またはメモリ30からデータを読み取るのに必要なロジックを制御する。
【0025】
メモリ30は、コンピュータシステム100のメインメモリである。メモリ30は、オペレーティングシステム上で実行している様々なソフトウェア、入力データおよび出力データ、外部メモリと交換される情報などを記憶するように一般に構成される。CPU10のアクセス速度を増加させるのに、メモリ30は、高速アクセスの利点を持っている必要がある。従来のコンピュータシステムアーキテクチャにおいて、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)が、メモリ30として一般に使用される。ストレージクラスメモリ(Storage−Class Memory、SCM)が発展するにつれ、高速アクセスおよび不揮発性の特性のおかげで、SCMもメモリとして徐々に使用される。
【0026】
図1−Aに示すように、
図1−Aに示されるハイブリッドメモリを有するシステムアーキテクチャにおいて、メモリ30は、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)40と、ストレージクラスメモリ(Storage−Class Memory、SCM)50とを含み得る。CPU10は、メモリコントローラ20を使用することによってDRAM40およびSCM50に高い速度でアクセスすることができ、かつDRAM40またはSCM50内の任意のメモリセルに対して読取り操作または書込み操作を実行することができる。
【0027】
前述されたとおり、DRAM40は、キャパシタに記憶された電気の量を使用して0または1を示す。キャパシタは電気漏洩を受けるため、キャパシタ内の電荷が不十分である場合、記憶されたデータが誤りになり得る。したがって、メモリコントローラ20が、DRAM40内のデータを規則的間隔でリフレッシュして、DRAM40がデータを失うことを防止する。さらに、DRAM40は、揮発性である。コンピュータシステム100の電源が切られた場合、DRAM40内の情報は、ストレージから消失する。DRAM40は、複数のDRAMチップ(DRAM chip)を含み得る。実際の適用において、DRAM40は、デュアルインラインメモリモジュール(
Dual In−line Memory Modules、DIMM)の形態で存在し得る。
【0028】
SCM50は、新世代の不揮発性メモリである。SCM50は、従来のメモリ(例えば、DRAM40)のアクセス速度に匹敵するアクセス速度を有し、半導体製品の信頼性によってさらに特徴付けられる。さらに、データが書き込まれる場合、データは、SCM50内の前のデータが消去されること(erase)なしに、SCM50に直接に書き込まれることができる。SCM50は、相変化メモリ(Phase Change Memory、PCM)、抵抗変化メモリ(Resistive Random Access Memory、RRAM(登録商標))、磁気ランダムアクセスメモリ(Magnetic Random Access Memory、MRAM)、強誘電体メモリ(Ferroelectric Random Access Memory、FRAM(登録商標))などを代表する次世代の不揮発性メモリ(Non−Volatile Memory、NVM)を含む。次世代NVMは、高速アクセスによって特徴付けられ、かつバイト(Byte)によってアドレス指定可能であり、データが、ビット(bit)の単位で不揮発性メモリに書き込まれる。したがって、SCM50は、メモリバスにマウントされることができ、かつCPU10による直接のアクセスのためのメモリとして使用されることができる。従来のDRAMとは異なり、SCM50は、不揮発性(Non−Volatile)である。コンピュータシステム100の電源が切られた場合、SCM50内の情報は、依然として存在する。
【0029】
SCM50は、ストレージクラスメモリSCMコントローラ52と、ストレージモジュール54とを含み得る。SCMコントローラ52は、ストレージモジュール54にアクセスすること、ストレージモジュール54に記憶されたデータを管理することなどを行うように構成される。例えば、SCMコントローラ52は、メモリコントローラ20によって転送された、受信されたメモリアクセス命令に応じてストレージモジュール54にアクセスして、ストレージモジュール54にデータを書き込むこと、またはストレージモジュール54からデータを読み取ることがある。さらに、SCMコントローラ52は、ストレージモジュール54に書き込まれるデータの時間系列を制御することなどを行うようにさらに構成され得る。SCMコントローラ52は、制御回路と、中央処理ユニットCPUと、特定用途向け集積回路(Application−Specific Integrated Circuit、ASIC)とを含むことがあり、または本発明のこの実施形態を実施する1もしくは複数の集積回路として構成されることがある。
【0030】
ストレージモジュール54は、データを記憶するように構成される。ストレージモジュール54は、複数のメモリセルを含み得る。例えば、ストレージモジュール54は、複数のメモリセルを含むストレージアレイであり得る。本発明のこの実施形態において、ストレージモジュール54内のメモリセルは、データを記憶するために使用される最小のメモリセルを参照する。メモリセルは、ストレージアレイを構成する最小単位でもある。一般に、1つのメモリセルは、1ビット(bit)のデータを記憶することができる。無論、いくつかのメモリセルが、多値ストレージを実施することができる。多値ストレージを実施することができるメモリセルに関して、1つのメモリセルは、あるいは、2ビットのデータを記憶してよい。メモリセルに記憶されるデータのビットの特定の量は、本明細書において限定されない。本発明のこの実施形態において、ストレージモジュール54内のメモリセルは、相変化メモリセル、磁気メモリセル、または抵抗メモリセルなどの新世代新タイプの不揮発性メモリセルを含み得る。
【0031】
本発明のこの実施形態において、説明を容易にするため、DRAM40またはSCM50に対する読取り操作および書込み操作によってもたらされるエネルギーオーバヘッドは、動的電力消費と称され、DRAM40またはSCM50に対する読取り操作または書込み操作がない周期中にもたらされるエネルギーオーバヘッドは、静的電力消費と称される。SCM50に対する読取り操作によってもたらされるエネルギーオーバヘッドは、DRAM40に対する読取り操作によってもたらされるエネルギーオーバヘッドに匹敵する一方で、SCM50に対する書込み操作によってもたらされるエネルギーオーバヘッドは、DRAM40に対する
書込み操作によってもたらされるエネルギーオーバヘッドよりはるかに大きい。したがって、SCM50の動的電力消費は、DRAM40の動的電力消費より大きい。しかし、DRAM40は、リフレッシュされる必要があるが、SCM50は、リフレッシュされる必要がない。したがって、DRAM40の静的電力消費は、SCM50の静的電力消費より大きい。実際の適用において、メモリ30がSCM50だけを含む、または大量のSCM50を含む場合、システムの過度に高い動的電力消費がもたらされ、システム費用も比較的高い。システム電力消費およびシステム費用を低減するのに、本発明のこの実施形態において説明されるコンピュータシステム100において、メモリ30において使用されるDRAM40の量は、メモリ30において使用されるSCM50の量より大きい。このようにして、DRAM40の容量は、SCM50の容量より大きい。例えば、メモリ30において、使用されるDRAM40の量対使用されるSCM50の量の比は、10:1、20:1などであり得る。使用されるDRAM40の量対使用されるSCM50の量の特定の比は、使用されるDRAM40の量が、使用されるSCM50の量より大きいという条件付きで、本発明のこの実施形態において限定されない。実際の適用において、DRAM40は、実際の要件に応じてSCM50と併せて使用され得る。DRAM40の容量は、SCM50の容量より大きい。したがって、DRAM40は、メインメモリとして使用されてよく、SCM50は、補助メモリとして使用されてよい。このようにして、大量のデータがDRAM40に記憶され、少量だけのデータがSCM50に記憶される。
【0032】
当業者は、現在、DRAMチップがほとんどすべて、64msの標準規定されるリフレッシュサイクルに準拠して製造されることを知り得る。リフレッシュサイクルは、DRAMチップ内の各メモリセル(
例えば、DRAM cell)の保持時間(retention time)と関連付けられる。保持時間は、メモリセルがデータを保つ時間を指す。保持時間を超過すると、メモリセルに記憶されたデータは、失われる。DRAMチップに記憶されたデータが失われるのを防止するのに、DRAMチップは、リフレッシュサイクルに応じてリフレッシュされる必要がある。しかし、実際の適用において、DRAMチップ内の各メモリセル(
例えば、DRAM cell)の保持時間(retention time)が変動するため、64msは、実際には、メモリセルの最も貧弱な保持時間であることが見出される。したがって、本発明のこの実施形態において、DRAMリフレッシュによってもたらされるシステム電力消費および遅延時間は、リフレッシュサイクルを長くすることによって低減され得る。しかし、DRAMチップのリフレッシュサイクルを単に長くすることは、データに誤りをもたらし得る。
【0033】
システム電力消費を低減する一方で、データの正しさを確実にするのに、本発明のこの実施形態において示されるコンピュータシステムアーキテクチャにおいて、メモリ30は、連想メモリ(content addressable memory、CAM)60をさらに含み得る。CAM60は、専用ストレージデバイスであり、多くの並行探索を迅速に実行することができる。CAM60は、不揮発性ストレージデバイスから構成されて、CAM60が不揮発性であるようにし得る。無論、CAM60は、本明細書において限定されない、揮発性ストレージデバイスから構成されてもよいことが理解されることができる。本発明のこの実施形態において、CAM60が不揮発性ストレージデバイスから構成される例が、説明のために使用される。CAM60は、不適格なDRAM40アドレスとSCM50アドレスの間のマッピング関係を記憶し得る。不適格なDRAMアドレスは、DRAM40に入っており、かつ
保持時間がリフレッシュサイクルより短いメモリセル(
例えば、DRAM cell)のアドレスを指す。複数の不適格なDRAMアドレスが存在し得る。本発明のこの実施形態において、保持時間が短いメモリセルのアドレスが、SCM50にマップされて、保持時間が短いメモリセルに対するアクセスが、SCM50に対するアクセスに変換されて、データの正しさを確実にするようにすることがある。CAM60が揮発性ストレージデバイスから構成される場合、不適格なDRAM40アドレスとSCM50アドレスの間のマッピング関係は、外部メモリに事前記憶され得ることが理解されることができる。システムの電源が投入された場合、不適格なDRAM40アドレスとSCM50アドレスの間のマッピング関係が、外部メモリから獲得されることがあり、マッピング関係が、CAM60に書き込まれる。
【0034】
本発明のこの実施形態は、ハイブリッドメモリに基づいてコンピュータシステムアーキテクチャに適用されるため、メモリ30は、マルチプレクサ(multiplexer、MUX)70をさらに含み得る。MUX70は、選択信号の制御下で、データの複数のラインからデータの1つのラインを出力信号として選択し得る。本発明のこの実施形態において、MUX70の入力終端が、DRAM40とSCM50の両方に接続され、かつMUX70の出力終端が、メモリコントローラ20に接続される。データがメモリ30から読み取られる必要がある場合、MUX70は、DRAM40に記憶されたデータをメモリコントローラ20に出力すること、またはSCM50に記憶されたデータをメモリコントローラ20に出力することを選択し得る。例えば、MUX70は、DRAM40から出力されたデータをバッファリングするために使用されるバッファ(buffer)と、SCM50から出力されたデータをバッファリングするために使用されるバッファ(buffer)とを含み得る。
【0035】
CAM60の特定の位置は、本発明のこの実施形態において限定されないことに留意されたい。例えば、1つの事例において、
図1−Aおよび
図1−Cに示されるコンピュータシステムにおいて、CAM60は、SCM50に位置付けられ、かつSCM50の構成要素として使用されてよい。別の事例において、
図1−Bに示されるコンピュータシステムにおいて、CAM60は、SCM50とは独立のストレージ構成要素であり得る。さらに、CAM60と別の構成要素の間の接続関係は、本発明のこの実施形態において限定されない。例えば、1つの事例において、
図1−Aおよび
図1−Bに示されるとおり、CAM60は、メモリコントローラ20、SCMコントローラ52、およびマルチプレクサ70のすべてに接続され得る。別の事例において、
図1−Cに示されるとおり、CAM60は、あるいは、SCMコントローラ52およびMUX70だけに接続されてよい。
【0036】
実際の適用において、1つの事例において、
図1−Aおよび
図1−Cに示されるとおり、SCMコントローラ52、ストレージモジュール54、およびCAM60は、1つのチップに集積され得る。別の事例において、
図1−Bに示されるとおり、CAM60は、独立したチップであってよく、SCMコントローラ52とストレージモジュール54は、1つのチップに集積され得る。さらに別の事例において、CAM60とSCMコントローラ52は、1つのチップに集積されてよく、ストレージモジュール54は、独立したチップであり得る。CAM60、SCMコントローラ52、およびストレージモジュール54のハードウェア形態は、本発明のこの実施形態において限定されない。さらに、SCMコントローラ52、ストレージモジュール54、CAM60、およびMUX70が1つのチップに集積されて、DRAM40と一緒にDIMMを構成してもよい。DRAM40、CAM60、SCM50、およびMUX70のハードウェア形態も、本発明のこの実施形態において限定されない。
【0037】
本発明のこの実施形態による
図1−Aから
図1−Cに示されるコンピュータシステムアーキテクチャにおいて、システム費用およびシステム電力消費を低減する一方で、データの正しさを確実にするのに、メモリコントローラ20が、DRAM40に主にアクセスしてよく、SCMコントローラ52は、CAM60が、SCM50に対するアクセスが必要とされると決定した場合だけ、メモリコントローラ20のアクセス命令に応じてアクセス操作を実行する。言い換えると、メモリ30に対するアクセスが必要とされる場合、SCM50は、メモリコントローラ20によって与えられるすべてのアクセス命令を実行するのではなく、CAM60が、SCM50に対するアクセスが必要とされると決定した場合だけ、CAM60によって出力される信号に応じてメモリコントローラ20によって与えられるアクセス命令を実行する。
【0038】
本発明のこの実施形態において提供されるコンピュータシステムにおいて、
図1−A、
図1−B、および
図1−Cに示される構成要素に加えて、コンピュータシステム100は、本明細書において限定されない、通信インターフェース、および外部メモリとして使用される磁気ディスクなどの他の構成要素をさらに含み得ることに留意されたい。本発明のこの実施形態によるハイブリッドメモリに基づくコンピュータシステムアーキテクチャについての前述の説明に基づいて、以下は、本発明の実施形態において提供されるメモリアクセス方法を詳細に説明する。
図1−A、
図1−B、および
図1−Cに示されるコンピュータシステムアーキテクチャは同様であるため、説明を容易にするため、以下は、
図1−Aに示されるコンピュータシステムアーキテクチャを主に参照することによって、本発明の実施形態において提供されるメモリアクセス方法を詳細に説明する。
【0039】
図2は、本発明の実施形態によるメモリアクセス方法の流れ図である。方法は、
図1−Aに示されるコンピュータシステム100に適用され得る。方法は、
図1−AにおけるSCM50によって実行され得る。特に、方法は、SCM50内のSCMコントローラ52によって実行され得る。
図2に示されるとおり、方法は、以下のステップを含み得る。
【0040】
ステップ200において、SCMコントローラ52が、メモリコントローラ20によって送信された第1のアクセス命令を受信し、第1のアクセス命令は、第1のアドレスを含む。第1のアクセス命令は、メモリ30にアクセスするために使用され、第1のアドレスは、DRAM40のアクセスされるべきメモリセルセットをポイントするのに使用される。当業者は、CPU10がメモリにアクセスする必要がある場合、CPU10内のMMUを使用することによって、論理アドレスがメモリの物理アドレスに変換され得ることを知り得る。メモリコントローラ20は、MMUによる変換からもたらされる物理アドレスに応じてメモリ30をアドレス指定して、メモリ30に記憶されたデータを獲得するようにする、またはメモリ30にデータを書き込むようにすることがある。本発明の実施形態による
図1−Aに示されるコンピュータシステムアーキテクチャにおいて、DRAM40の容量は、SCM50の容量より大きいため、DRAM40は、メインメモリとして使用されてよく、SCM50は、補助メモリとして使用されてよい。メモリコントローラ20がメモリ30にアクセスすることになる場合、メモリコントローラ20は、DRAM40およびSCM50にアクセス命令を送信することがある。このようにして、メモリコントローラ20にCPU10によって送信されるアクセス命令において搬送されるすべてのアドレスは、DRAM40によって提供される物理スペースをポイントするアドレスであり得る。本発明のこの実施形態において、第1のアドレスは、DRAM40内の複数のアクセスされるべきメモリセルセットによって提供される物理スペースをポイントし得る。
【0041】
前述されるとおり、DRAM40内のDRAMセルは、配列され、マトリックスに区分され、マトリックスは、DRAMバンクと称される。メモリ30に対するアクセスが必要とされる場合、メモリコントローラ20が、対応する行デコーダおよび列デコーダを使用することによって、第1のアドレスに応じてDRAMバンク内の任意のDRAMセルを位置特定し得る。第1のアドレスは、1つのアドレスであってよく、またはアドレス範囲であってよいことに留意されたい。例えば、メモリアクセス命令が書込み命令である場合、第1のアドレスは、書き込まれるべきデータの開始アドレスであり得る。メモリアクセス命令が読取り命令である場合、第1のアドレスは、アクセスされるべき開始アドレスと、アクセスされるべきアドレススペースのサイズ(size)とを含み得る。本発明のこの実施形態において、メモリのものであり、かつ第1のアドレスがポイントするストレージスペースの粒度は、バイト(Byte)、またはライン(line)、またはページ(page)であり得る。このようにして、メモリのものであり、かつ第1のアドレスがポイントするストレージスペースは、少なくとも1バイトを含むことがあり、または少なくとも1ライン、または少なくとも1ページを含むことがある。第1のアドレスがポイントするメモリセルセットは、1つのメモリセルを含んでよく、または複数のメモリセルを含んでよく、このことは、本明細書において限定されない。
【0042】
ステップ205において、SCMコントローラ52が、DRAM40のものであり、かつ第1のアドレスがポイントするメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定する。DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長い。本発明のこの実施形態において、DRAM40は、メインメモリとして使用される。さらに、技術研究中、DRAM40内のほとんどのDRAMセルの保持時間は、DRAMの標準のリフレッシュサイクルより長いことが見出される。したがって、DRAM40の静的電力消費を低減するのに、DRAM40がリフレッシュされる回数は、DRAM40のリフレッシュサイクルを長くすることによって減らされ得る。従来技術において、合同電子デバイス技術委員会(Joint Electron Device Engineering Council、JEDEC)によって規定されたDRAMの標準のリフレッシュサイクルは、64msであり、DRAMは、標準のリフレッシュサイクルに準拠して製造される。本発明のこの実施形態において、DRAM40に関して新たなリフレッシュサイクルが規定されて、DRAM40がリフレッシュされる回数を減らし得る。DRAM40に関する規定されたリフレッシュサイクルは、DRAMの標準規定されるリフレッシュサイクルより長い。例えば、標準のリフレッシュサイクルが64msである場合、本発明のこの実施形態において規定されるDRAM40のリフレッシュサイクルは、128msまたは256msであり得る。技術の発展とともに、DRAMの標準のリフレッシュサイクルは、あるいは、現在、規定される64msより長くてよいことが理解されることができる。この事例において、本発明のこの実施形態において規定されるDRAM40のリフレッシュサイクルは、より長くてもよい。DRAM40の規定されるリフレッシュサイクルは、DRAM40の規定されるリフレッシュサイクルが、DRAMの標準規定されるリフレッシュサイクルより長いという条件付きで、本明細書において特に限定されない。
【0043】
本発明のこの実施形態において、DRAM40のリフレッシュサイクルは長くされるため、DRAM40に入っており、かつ保持時間がDRAM40の規定されるリフレッシュサイクルより短いメモリセル(cell)は、結果としてデータ損失を被ることがあることが理解されることができる。したがって、本発明のこの実施形態において、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルは、前もって検出されてよく、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスが、
図1−Aから
図1−Cに示されるCAM60に記憶される。したがって、ステップ205において、SCMコントローラ52は、CAM60を使用することによって、DRAM40のものであり、かつ第1のアドレスがポイントする第1のメモリセルセットが、保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルを含むかどうかを特に決定し得る。例えば、CAM60が、CAM60に記憶されたデータ項目が第1のアドレスを含むかどうかのクエリを行い、CAM60に記憶されたデータ項目が第1のアドレスを含む場合、そのことは、第1のアドレスがCAM60にヒットすること、およびDRAM40のものであり、かつ第1のアドレスがポイントする第1のメモリセルセットが、保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルを含むことを示す。
【0044】
実際の適用において、1つの事例において、
図1−Aおよび
図1−Bに示されるコンピュータシステムアーキテクチャにおいて、CAM60は、メモリコントローラ20とSCMコントローラ52の両方に接続される。メモリコントローラ20が、DRAM40およびSCM50に第1のアクセス命令を送信する場合、メモリコントローラ20は、第1のアクセス命令において第1のアドレスをCAM60に同時に送信し得る。CAM60は、メモリコントローラ20によって入力された第1のアドレスを、CAM60に記憶されたデータ項目と比較する。CAM60に記憶されたデータ項目が第1のアドレスを含むと決定された場合、CAM60は、SCM52に、第1のアドレスとのマッピング関係を有し、かつCAM60に記憶された第2のアドレスを出力し得る。さらに別の事例において、
図1−Cに示されるコンピュータシステムアーキテクチャにおいて、CAM60は、メモリコントローラ20に直接に接続されない。SCMコントローラ52が、メモリコントローラ20によって送信された第1のアクセス命令を受信した場合、SCMコントローラ52は、第1のアクセス命令において搬送される第1のアドレスをCAM60に送信して、CAM60が、第1のアドレスを含むデータ項目を記憶するかどうかのクエリを行うようにし得る。CAM60が、CAM60に記憶されたデータ項目が第1のアドレスを含むと決定した場合、CAM60は、SCM52に、第1のアドレスとのマッピング関係を有し、かつCAM60に記憶された第2のアドレスを出力し得る。
【0045】
実際の適用において、CAM60が、CAM60に記憶されたデータ項目が第1のアドレスを含むと決定した場合、CAM60は、MUX70に第1の命令信号をさらに送信し得る。第1の命令信号は、SCM50がデータを出力するのを待つようMUX70に命令するのに使用される。第1のアクセス命令が読取り命令である場合、MUX70は、CAM60によって送信された第1の命令信号に応じて、SCM50に記憶されたデータをメモリコントローラ20に出力し得ることが理解されることができる。第1のアクセス命令が書込み命令である場合、MUX70は、データが事前設定された時間に受信されない場合、メモリコントローラ20にデータを出力しなくてよい。
【0046】
さらに、DRAMがデータを読み取る速度は、SCMが読取り操作を実行する速度より高く、かつ本発明のこの実施形態において、DRAM40は、メインメモリとして使用され、かつメモリアクセス命令に関する時間系列は、DRAMに関するアクセス時間限度に応じて決定され得る。したがって、第1のアクセス命令が読取り命令である場合、データの正しさを確実にするために、CAM60が、第1のアドレスに応じて、DRAM40のものであり、かつ第1のアドレスがポイントするメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定した場合、CAM60は、メモリコントローラ20にホールド(hold)命令をさらに送信し得る。ホールド命令は、SCM50によって出力されたデータを受信するのを事前設定された待機時間、ホールドするようメモリコントローラ20に命令するのに使用される。
図1−Aおよび
図1−Bに示されるコンピュータシステムアーキテクチャにおいて、CAM60は、メモリコントローラ20に
ホールド命令を直接に送信し得ることが理解されることができる。
図1−Cに示されるコンピュータシステムアーキテクチャにおいて、CAM60が、SCMコントローラ52を使用することによってメモリコントローラ20に
ホールド命令を送信することがあり、または、SCMコントローラ52がCAM60によって送信された第2のアドレスを受信した場合、SCMコントローラ52がメモリコントローラに
ホールド命令を能動的な様態で送信し、このことは、本明細書において限定されない。
【0047】
実際の適用において、第1のアドレスは、第1のアクセス命令内のアクセスされるべきアドレス範囲内のいくつかのアドレスであり得ることが理解されることができる。第1のアクセス命令は、第1のアドレス以外であり、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルをポイントしないアドレスをさらに含み得る。
【0048】
ステップ210において、SCMコントローラ52が、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得する。第2のアドレスは、SCM50の第2のメモリセルセットをポイントするのに使用される。前述されるとおり、本発明のこの実施形態において、DRAM40のものであり、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスは、CAM60に事前記憶され得る。保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルは、データ損失をもたらすため、メモリ30に記憶されたデータの正しさおよび完全性を確実にするのに、本発明のこの実施形態において、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルによって提供される物理スペースが、SCM50において提供される物理スペースにマップされ得る。すなわち、SCM50内のメモリセルが、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのバックアップメモリセルとして使用される。このようにして、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルに書き込まれる必要があるデータが、SCM50内のメモリセルに書き込まれて、データのこの部分の損失を防止してもよい。
【0049】
特に、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短い検出されたメモリセルのアドレスとSCM50内のアドレスの間のマッピング関係が確立され得る。相互マッピング関係を有するDRAM40のアドレスとSCM50内のアドレスは、同一のデータを記憶するのに使用される。実際の適用において、システム初期化プロセス中、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いことが検出されたメモリセルのアドレスは、CAM60に書き込まれてよく、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いことが検出されたメモリセルのアドレスとSCM50内のメモリセルのアドレスの間のマッピング関係は、CAM60に記憶されてよい。説明を容易にするため、本発明のこの実施形態において、保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスは、不適格なDRAMアドレスと称される。本発明のこの実施形態において、不適格なDRAMアドレスとSCMアドレスの間のマッピング関係が、CAM60に記憶され得る。例えば、不適格なDRAMアドレスとSCMアドレスの間のマッピング関係は、表1に示され得る。
【0051】
表1において、不適格なDRAMアドレスは、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスを示すのに使用される。SCMアドレスは、不適格なDRAMアドレスとのマッピング関係を有し、かつSCM50内の物理スペースをポイントするアドレスを示すのに使用される。表1に示されるとおり、ADDR0とSCM_ADDR0は、マッピング関係を有するアドレスのペアである。ADDR0とSCM_ADDR0は、同一のデータを記憶するのに使用される。同様に、ADDR1とSCM_ADDR1もマッピング関係を有し、同一のデータを記憶するのに使用される。さらなる説明は、本明細書において提供されない。本発明のこの実施形態において、不適格なDRAMアドレスは、少なくとも1バイトのアドレスであり得る。不適格なDRAMアドレスは、あるいは、アドレス範囲であってよい。アドレス範囲は、保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスを含め、1ラインまたは複数のラインのアドレスを含み得る。無論、DRAMの不適格なアドレスは、あるいは、1ページ(page)または複数のページをポイントしてよく、このことは、本明細書において限定されない。
【0052】
このステップにおいて、CAM60が、前述の表1により、第1のアドレスが不適格なDRAMアドレスであるかどうかを決定し得る。第1のアドレスが不適格なDRAMアドレスである場合、表1により、第1のアドレスとのマッピング関係を有する第2のアドレスがさらに決定され得る。第2のアドレスは、SCM50の第2のメモリセルセット内のメモリセルのアドレスである。
図2に示される実施形態において、第1のアドレスが不適格なDRAMアドレスである例が使用される。例えば、第1のアドレスは、表1におけるADDR1であり、CAM60が、SCMコントローラ52に、第1のアドレスとのマッピング関係を有する第2のアドレス、すなわち、SCM_ADDR1を出力し得る。
【0053】
本発明のこの実施形態において、データの正しさを確実にするのに、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される。さらに、第2のメモリセルセット内のメモリセルの合計ストレージ容量は、第1のメモリセルセット内のメモリセルの合計ストレージ容量以上である。例えば、第1のメモリセルセット内のメモリセルの合計ストレージ容量が、1kB(Byte)であり得る。すると、第2のメモリセルセット内のメモリセルの合計ストレージ容量は、1kB以上である。
【0054】
CAM60に記憶された不適格なDRAMアドレスは、DRAMが工場を離れる際、長くされたリフレッシュサイクルに応じて検出され得ることに留意されたい。1つのDRAMに関して、不適格なDRAMアドレスが確定的である。システム初期化プロセス中、不適格なDRAMアドレスとのマッピング関係を有するSCMアドレスが調整され得る。すなわち、前述の表1におけるマッピング関係は、固定されていない。例えば、マッピング関係が調整された後、SCM_ADDR3とADDRA0の間のマッピング関係が確立されてよく、このことは、本明細書において限定されない。
【0055】
ステップ215において、SCMコントローラ52が、第1のアクセス命令を、第2のアドレスに応じて第2のアクセス命令に変換する。第2のアクセス命令は、第2のアドレスを含む。特に、メモリコントローラ20によって送信された第1のアクセス命令を受信した後、SCMコントローラ52は、第1のアクセス命令をまずバッファリングしてよく、CAM60によって出力された第2のアドレスを受信した後、SCMコントローラ52は、第1のアドレスの代わりに第2のアドレスを、第1のアクセス命令内のアクセスされるべきアドレスとして使用して、第1のアクセス命令が第2のアクセス命令に変換されることができるようにしてよい。第2のアクセス命令において搬送されるアクセスされるべきアドレスは、第2のアドレスである。例えば、第1のアクセス命令が読み取り(ADDR1、1kB)、変換からもたらされる第2のアクセス命令が読み取り(SCM_ADDR1、1kB)である。ADDR1が、アクセスされるべき第1のアドレスを示すのに使用され、SCM_ADDR1が、第2のアドレスを示すのに使用され、1kBが、読み取られるべきデータのサイズを示すのに使用される。
【0056】
ステップ220において、SCMコントローラ52が、第2のアクセス命令に応じて第2のメモリセルセット内のメモリセルにアクセスする。例えば、メモリアクセス命令がデータを書き込むための命令である場合、メモリコントローラ20は、第2のアドレスに応じて、SCM50のものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルにデータを書き込み得る。メモリアクセス命令がデータを読み取るための命令である場合、メモリコントローラ20は、SCM50のものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルからデータを読み取り得る。
【0057】
本発明のこの実施形態において提供されるメモリアクセス方法において、DRAM40のリフレッシュサイクルは、標準規定されるリフレッシュサイクルより長く、保持時間がDRAM40のリフレッシュサイクルより短いメモリセルのアドレスとSCM50内のメモリセルのアドレスの間のマッピング関係は、CAM60において事前確立される。したがって、アクセス命令が、不適格なDRAMメモリセル(
すなわちDRAM cell)に対するアクセスを含むと決定した場合、SCMコントローラ52は、DRAMに対するアクセスをSCM50に対するアクセスに変換し得る。本発明のこの実施形態において提供される方法では、DRAMリフレッシュのための電力消費が低減される一方で、データの正しさが確実にされることができる。
【0058】
さらに、本発明のこの実施形態において提供されるメモリアクセス方法において、DRAM40が、アクセスするためのメインメモリとして使用される。したがって、DRAM40は、メモリコントローラ20によって与えられるすべての命令を実行する。このようにして、
SCMコントローラ52が、メモリコントローラによって与えられるアクセス命令に応じてSCM50にアクセスするプロセス中、DRAM40もアクセス命令を実行する。DRAM40に入っており、かつ保持時間がDRAM40のリフレッシュサイクルより短いメモリセルは、DRAM40内のすべてのメモリセルの小さい部分に過ぎない。したがって、本発明のこの実施形態に示される方法では、
SCMコントローラ52は、
図2に示される方法により、いくつかの命令だけに関してSCM50に対してアクセス操作を実行する。さらに、DRAM40の読取り速度および書込み速度は比較的高いため、本発明のこの実施形態において示される方法は、システムアクセス速度を低くすることなしに、システム費用を低減することができ、かつシステム電力消費を低減する一方で、システムアクセス速度を確実にすることもできる。
【0059】
図3は、本発明の実施形態による方法の流れ図である。方法は、
図1−Aから
図1−Cに示されるコンピュータシステム100に依然として適用され得る。以下は、
図1−Aを主に参照することによって、
図3に示されるメモリアクセス方法を詳細に説明する。方法は、
図1−AにおけるSCM50によって実行され得る。特に、方法は、SCM50内のSCMコントローラ52によって実行され得る。
図3に示されるとおり、方法は、以下のステップを含み得る。
【0060】
ステップ300において、SCMコントローラ52が、メモリコントローラによって送信された第3のアクセス命令を受信する。第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用される。実際の適用において、メモリコントローラ20は、第3のアクセス命令をDRAM40とSCM50に同時に送信し得る。本発明の実施形態において示されるシステムアーキテクチャにおいて、DRAM40が、メインメモリとして使用される。したがって、DRAM40は、メモリコントローラによって与えられるすべてのアクセス命令を実行する必要があり、すると、第3の命令内の第3のアドレスは、DRAM40内のメモリセルをポイントするアドレスである。ステップ300は、
図2に示されるステップ200と同様であり、詳細に関して、ステップ200の説明を参照されたく、さらなる説明は、本明細書において提供されない。
【0061】
ステップ305において、SCMコントローラ52が、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むかどうかを決定する。DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長い。SCMコントローラ52が、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定した場合、方法は、ステップ310に進み、さもなければ、方法は、ステップ315に進む。特に、SCMコントローラ52は、CAM60を使用することによって、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むかどうかを決定し得る。第3のアドレスがCAM60にヒットした場合、CAM60は、SCMコントローラ52に、第3のアドレスとのマッピング関係を有する第4のアドレスを出力し、このことは、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むことを示す。第3のアドレスがCAM60にヒットしない場合、そのことは、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないことを示す。ステップ305は、
図2に示されるステップ205と同様であり、詳細に関して、ステップ205の説明を参照されたい。さらなる説明は、本明細書において提供されない。
【0062】
ステップ310において、SCMコントローラ52が、第3のアクセス命令を削除する。実際の適用において、メモリコントローラ20によって送信された第3のアクセス命令を受信した後、SCMコントローラ52は、第3のアクセス命令を即時に実行するのではなく、第3のアクセス命令をまずバッファリングする。したがって、ステップ305において、SCMコントローラ52が、CAM60によって送信された第4のアドレスを受信しない場合、そのことは、SCMコントローラ52が、CAM60を使用することによって、第3のアクセス命令内の第3のアドレスがポイントする第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定することを示す。この事例において、SCMコントローラ52は、第3のアクセス命令を削除してよく、第3のアクセス命令に応じてSCMにアクセスすることはしない。
【0063】
ステップ315において、SCMコントローラ52が、第3のアドレスとのマッピング関係を有する第4のアドレスを獲得する。第4のアドレスは、SCM50の第4のメモリセルセットをポイントするのに使用される。ステップ320において、SCMコントローラ52が、第3のアクセス命令を、第4のアドレスに応じて第4のアクセス命令に変換する。第4のアクセス命令は、第4のアドレスを含む。ステップ325において、SCMコントローラ52が、第4のアクセス命令に応じてSCM50にアクセスする。特に、SCMコントローラ52は、第4のアクセス命令に応じてSCM50内の第4のメモリセルセット内のメモリセルにアクセスする。ステップ315からステップ325は、それぞれ、
図2に示されるステップ210からステップ220と同様であることが理解されることができ、詳細に関して、
図2に示される実施形態における関連付けられたステップの説明をそれぞれ参照されたい。さらなる説明は、本明細書において提供されない。
【0064】
本発明の実施形態が、プログラムコードを記憶するコンピュータ可読ストレージ媒体を含む、データ処理のためのコンピュータプログラム製品であって、プログラムコードに含まれる命令は、前述の方法実施形態のいずれか1つにおいて説明される方法プロセスを実行するのに使用される、コンピュータプログラム製品をさらに提供する。当業者は、前述のストレージ媒体が、USBフラッシュドライブ、リムーバブルハードディスク、磁気ディスク、光ディスク、ランダムアクセスメモリ(Random Access Memory、RAM)、ソリッドステートディスク(Solid State Disk、SSD)、または不揮発性メモリ(non−volatile memory)などの、プログラムコードを記憶することができる任意の非一時的(non−transitory)マシン可読媒体を含み得ることを理解し得る。
【0065】
本出願によって提供される実施形態は、例示的であるに過ぎないことに留意されたい。当業者は、説明の便宜と簡潔のため、前述の実施形態において、実施形態は、異なる強調で説明されることを明確に知ることがあり、1つの実施形態において詳細には説明されない部分に関して、別の実施形態の関係のある説明を参照されたい。本発明の実施形態、特許請求の範囲、および添付の図面において開示される特徴は、独立に存在してよく、または組合せで存在してよい。本発明の実施形態においてハードウェア形態で説明される特徴はソフトウェアによって実行されてよく、またその逆も同様であり、このことは、本明細書において限定されない。