JP6408712B2 - メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム - Google Patents

メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム Download PDF

Info

Publication number
JP6408712B2
JP6408712B2 JP2017535038A JP2017535038A JP6408712B2 JP 6408712 B2 JP6408712 B2 JP 6408712B2 JP 2017535038 A JP2017535038 A JP 2017535038A JP 2017535038 A JP2017535038 A JP 2017535038A JP 6408712 B2 JP6408712 B2 JP 6408712B2
Authority
JP
Japan
Prior art keywords
address
memory
dram
scm
memory cell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017535038A
Other languages
English (en)
Other versions
JP2018500695A (ja
Inventor
任花 ▲楊▼
任花 ▲楊▼
俊峰 ▲趙▼
俊峰 ▲趙▼
▲偉▼ ▲楊▼
▲偉▼ ▲楊▼
元▲鋼▼ 王
元▲鋼▼ 王
殷茵 林
殷茵 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Huawei Technologies Co Ltd
Original Assignee
Fudan University
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University, Huawei Technologies Co Ltd filed Critical Fudan University
Publication of JP2018500695A publication Critical patent/JP2018500695A/ja
Application granted granted Critical
Publication of JP6408712B2 publication Critical patent/JP6408712B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、コンピュータ技術の分野に関し、詳細には、メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステムに関する。
システムの従来のメインメモリは、一般に、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)を含む。DRAMは、簡単な構造と、高い読取り速度とによって特徴付けられる。DRAMの基本メモリセルは、DRAMセルであり、各DRAMセルは、1つのトランジスタと、1つのキャパシタとを含む。DRAMセルは、キャパシタに記憶された電気の量を使用して0または1を示す。このようにして、1つのDRAMセルは、1ビット(bit)を記憶し得る。キャパシタは電気漏洩を受けるため、キャパシタ内の電荷が不十分である場合、記憶されたデータが誤りになり得る。したがって、実際の適用において、キャパシタは、周期的に充電される必要がある。キャパシタを充電すること、および放電させることによって、DRAMセルは、読み取られること、および書き込まれることができ、かつ、これにより、更新されることができる。すなわち、DRAMは、周期的にリフレッシュされる。実際の適用においては、DRAM内のDRAMセルは、配列され、マトリックスに区分され、そしてマトリックスは、DRAMバンクと称される。対応する行デコーダおよび列デコーダを使用することによって、DRAMバンク内の任意のビットが位置特定されることができる。複数のDRAMバンクが、1つのDRAMチップを構成することがあり、複数のDRAMチップが1つのDRAMランクを構成することがあり、複数のDRAMランクが1つのデュアルインラインメモリモジュール(Dual In−line Memory Modules、DIMM)にさらに集積されることがある。
合同電子デバイス技術委員会(Joint Electron Device Engineering Council、JEDEC)は、ソリッドステートおよび半導体業界内の標準化組織である。JEDECによってリリースされたメモリ関連の標準に応じて、DRAMは、64ミリ秒に少なくとも1回、あらゆるラインをリフレッシュすることを要求される。すなわち、JEDECによって規定されるDRAMのリフレッシュサイクルは、64ミリ秒である。したがって、現在、DRAMはほとんどすべて、データ損失がないことを確実にする64ミリ秒ごとにリフレッシュする標準に準拠して製造される。実際の適用において、DRAMコントローラは、7.8μsごとにリフレッシュ命令を送信することを要求され、各命令は、DRAMバンク内の1つのライン、または複数のラインをリフレッシュすることを担って、DRAM内のすべてのラインが64ms内にリフレッシュされることを確実にするようにする。DRAMの容量が増大し、かつラインの量が増加するにつれ、各リフレッシュ操作によってリフレッシュされる必要があるラインの量が相応して増加し、そしてその結果、システム電力消費もより高くなる。したがって、DRAMの容量が絶えず増大するにつれ、DRAMのリフレッシュ周波数を低くすることが、システム電力消費を低減することに極めて重要である。しかし、DRAMのリフレッシュサイクルが、システム電力消費を低減するために長くされた場合、メモリ内のデータに誤りがもたらされ得る。
本発明の実施形態は、システム電力消費を低減する一方で、メモリ内のデータの正しさを確実にすることができる、メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステムを提供する。
第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のメモリセルセット内のメモリセルにアクセスすることを行うように構成される。
第1の態様を参照すると、第1の態様の第1の可能な実施様態において、SCMは、
連想メモリCAMに記憶された第1のアドレスに応じて、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、CAMは、第1のアドレスを含め、DRAMに入っており、かつ保持時間がDRAMのリフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定すること、および
第1のアドレス、および第1のアドレスと第2のアドレスの間のCAMに記憶されたマッピング関係に応じて、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される、獲得することを行うように特に構成される。
第1の態様、または第1の態様の第1の可能な実施様態を参照して、第1の態様の第2の可能な実施様態において、メモリコントローラは、DRAMおよびSCMに第3のアクセス命令を送信するようにさらに構成され、第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
DRAMは、第3のアクセス命令に応じて第3のメモリセルセット内のメモリセルにアクセスするようにさらに構成され、かつ
SCMは、
メモリコントローラによって送信された第3のアクセス命令を受信すること、
第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定すること、および
第3のアクセス命令を削除することを行うようにさらに構成される。
第1の態様の第2の可能な実施様態を参照して、第1の態様の第3の可能な実施様態において、ハイブリッドメモリは、
第1のアクセス命令が読取り命令である場合、SCMの第2のメモリセルセット内のメモリセルに記憶されたデータをメモリコントローラに出力すること、または
第3のアクセス命令が読取り命令である場合、DRAMの第3のメモリセルセット内のメモリセルに記憶されたデータをメモリコントローラに出力することを行うように構成されたマルチプレクサMUXをさらに含む。
第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は、
データを記憶するように構成されたメモリセルをさらに含む。
第2の態様を参照して、第2の態様の第1の可能な実施様態において、CAMは、
CAMに事前記憶された第1のアドレスに応じて、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、CAMは、第1のアドレスを含め、DRAMに入っており、かつ保持時間がDRAMのリフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定すること、および
第1のアドレス、および第1のアドレスと第2のアドレスの間のCAMに記憶されたマッピング関係に応じて、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される、獲得することを行うように特に構成される。
第2の態様、または第2の態様の第1の可能な実施様態を参照して、第2の態様の第2の可能な実施様態において、SCMコントローラは、メモリコントローラによって送信された第3のアクセス命令を受信するようにさらに構成され、第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
CAMは、第3のアドレスに応じて、第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定するようにさらに構成され、かつ
SCMコントローラは、第3のアクセス命令を削除するようにさらに構成される。
第2の態様の第2の可能な実施様態を参照して、第2の態様の第3の可能な実施様態において、ハイブリッドメモリは、マルチプレクサMUXをさらに含み、CAMは、
第1のアクセス命令が読取り命令である場合、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定された後、ハイブリッドメモリ内のMUXに第1の命令信号を送信することであって、第1の命令信号は、SCMに記憶されたデータをメモリコントローラに出力するようMUXに命令するのに使用される、送信することを行うようにさらに構成される。
第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のメモリセルセット内のメモリセルにアクセスすることを含む。
第3の態様を参照して、第3の態様の第1の可能な実施様態において、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することは、
連想メモリCAMに記憶された第1のアドレスに応じて、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定することであって、CAMは、第1のアドレスを含め、DRAMに入っており、かつ保持時間がDRAMのリフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定することを含む。
第3の態様の第1の可能な実施様態を参照して、第3の態様の第2の可能な実施様態において、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することは、
CAMに記憶された、第1のアドレスと第2のアドレスの間のマッピング関係に応じて、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得することであって、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される、獲得することを含む。
第3の態様を参照して、第3の態様の第3の可能な実施様態において、方法は、
メモリコントローラによって送信された第3のアクセス命令を受信することであって、第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用される、受信すること、
第3のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含まないと決定すること、および
第3のアクセス命令を削除することをさらに含む。
第3の態様を参照して、第3の態様の第4の可能な実施様態において、方法は、
第1のアクセス命令が読取り命令である場合、第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定された後、ハイブリッドメモリ内のマルチプレクサMUXに第1の命令信号を送信することであって、第1の命令信号は、SCMに記憶されたデータをメモリコントローラに出力するようMUXに命令するのに使用される、送信することをさらに含む。
第4の態様によれば、本発明の実施形態が、プログラムコードを記憶するコンピュータ可読ストレージ媒体を含むコンピュータプログラム製品であって、プログラムコードに含まれる命令は、第3の態様による方法を実行するのに使用されるコンピュータプログラム製品を提供する。
本発明の実施形態において提供されるコンピュータシステムにおいて、ダイナミックランダムアクセスメモリDRAMとストレージクラスメモリSCMが、コンピュータシステムのハイブリッドメモリを一緒に構成し、DRAMのリフレッシュサイクルは、標準のリフレッシュサイクルより長い。DRAMのものであり、かつ受信された第1のアクセス命令内の第1のアドレスがポイントする第1のメモリセルセットが、保持時間がDRAMのリフレッシュサイクルより短いメモリセルを含むと決定した場合、SCMは、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得し得る。さらに、SCMは、第2のアドレスに応じて、第1のアクセス命令を、SCMにアクセスするための第2のアクセス命令に変換して、SCMに対するアクセスを実施する。本発明の実施形態において提供されるコンピュータシステムは、DRAMリフレッシュのための電力消費を低減する一方で、データの正しさを確実にすることができる。
本発明の実施形態における、または従来技術における技術的解決策をより明確に説明するのに、以下が、実施形態を説明するために要求される添付の図面を簡単に説明する。明らかに、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すに過ぎない。
本発明の実施形態によるハイブリッドメモリに基づくコンピュータシステムアーキテクチャを示す概略図である。 本発明の実施形態によるハイブリッドメモリに基づく別のコンピュータシステムアーキテクチャを示す概略図である。 本発明の実施形態によるハイブリッドメモリに基づくさらに別のコンピュータシステムアーキテクチャを示す概略図である。 本発明の実施形態によるメモリアクセス方法を示す概略流れ図である。 本発明の実施形態によるメモリアクセス方法を示す概略流れ図である。
当業者に本発明における技術的解決策をよりよく理解させるのに、以下が、本発明の実施形態における添付の図面を参照して本発明の実施形態における技術的解決策を明確に、かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく、一部分に過ぎない。
本発明の実施形態が、ハイブリッドメモリを有するシステムアーキテクチャに基づいて、メモリリフレッシュのための電力消費を低減する一方で、メモリに記憶されたデータの正しさを確実にすることができるメモリアクセス方法を提供する。図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を主に参照して、以下詳細に説明する。
図1−Aに示すように、中央処理ユニット(Central Processing Unit、CPU)10は、コンピュータシステム100の計算コア(Core)および制御コア(Control core)である。CPU10は、超超大規模集積回路であり得る。オペレーティングシステムおよび別のソフトウェアプログラムがCPU10にインストールされて、それによりCPU10がメモリ、キャッシュ、および磁気ディスクにアクセスすることができるようになる。本発明のこの実施形態において、CPU10は、プロセッサの例に過ぎないことが理解されることができる。CPU10に加えて、プロセッサは、あるいは、別の特定用途向け集積回路ASIC(ApplicationSpecific Integrated Circuit)であってよく、または本発明のこの実施形態を実施する1もしくは複数の集積回路として構成されてよい。CPU10は、メモリ管理ユニット(Memory Management Unit、MMU)を含むことがあり、MMUは、論理アドレスから物理メモリアドレスへの変換を実施するように構成される。
メモリコントローラ(Memory Controller)20は、メモリ30を制御し、かつメモリ30からCPU10へのデータ伝送のレートを管理し、かつ計画するように構成された、コンピュータシステム100内のバス回路コントローラである。メモリコントローラ20を使用することによって、メモリ30とCPU10は、データを交換し得る。メモリコントローラ20は、1つの独立したチップであることがあり、システムバスを使用することによってCPU10に接続される。当業者は、メモリコントローラ20が関係付けられた大型チップに集積されてもよいことを知り得る。例えば、メモリコントローラ20は、マイクロプロセッサ(例えば、CPU10)に集積されてよく、またはノースブリッジに組み込まれてよい。メモリコントローラ20の特定の位置は、本発明のこの実施形態において限定されない。説明を容易にするため、図1−Aに示されるシステムアーキテクチャにおいて、メモリコントローラ20が独立に構成される例が、説明のために使用される。メモリコントローラ20は、メモリ30にデータを書き込むのに必要なロジック、またはメモリ30からデータを読み取るのに必要なロジックを制御する。
メモリ30は、コンピュータシステム100のメインメモリである。メモリ30は、オペレーティングシステム上で実行している様々なソフトウェア、入力データおよび出力データ、外部メモリと交換される情報などを記憶するように一般に構成される。CPU10のアクセス速度を増加させるのに、メモリ30は、高速アクセスの利点を持っている必要がある。従来のコンピュータシステムアーキテクチャにおいて、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)が、メモリ30として一般に使用される。ストレージクラスメモリ(Storage−Class Memory、SCM)が発展するにつれ、高速アクセスおよび不揮発性の特性のおかげで、SCMもメモリとして徐々に使用される。
図1−Aに示すように、図1−Aに示されるハイブリッドメモリを有するシステムアーキテクチャにおいて、メモリ30は、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)40と、ストレージクラスメモリ(Storage−Class Memory、SCM)50とを含み得る。CPU10は、メモリコントローラ20を使用することによってDRAM40およびSCM50に高い速度でアクセスすることができ、かつDRAM40またはSCM50内の任意のメモリセルに対して読取り操作または書込み操作を実行することができる。
前述されたとおり、DRAM40は、キャパシタに記憶された電気の量を使用して0または1を示す。キャパシタは電気漏洩を受けるため、キャパシタ内の電荷が不十分である場合、記憶されたデータが誤りになり得る。したがって、メモリコントローラ20が、DRAM40内のデータを規則的間隔でリフレッシュして、DRAM40がデータを失うことを防止する。さらに、DRAM40は、揮発性である。コンピュータシステム100の電源が切られた場合、DRAM40内の情報は、ストレージから消失する。DRAM40は、複数のDRAMチップ(DRAM chip)を含み得る。実際の適用において、DRAM40は、デュアルインラインメモリモジュール(Dual In−line Memory Modules、DIMM)の形態で存在し得る。
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内の情報は、依然として存在する。
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もしくは複数の集積回路として構成されることがある。
ストレージモジュール54は、データを記憶するように構成される。ストレージモジュール54は、複数のメモリセルを含み得る。例えば、ストレージモジュール54は、複数のメモリセルを含むストレージアレイであり得る。本発明のこの実施形態において、ストレージモジュール54内のメモリセルは、データを記憶するために使用される最小のメモリセルを参照する。メモリセルは、ストレージアレイを構成する最小単位でもある。一般に、1つのメモリセルは、1ビット(bit)のデータを記憶することができる。無論、いくつかのメモリセルが、多値ストレージを実施することができる。多値ストレージを実施することができるメモリセルに関して、1つのメモリセルは、あるいは、2ビットのデータを記憶してよい。メモリセルに記憶されるデータのビットの特定の量は、本明細書において限定されない。本発明のこの実施形態において、ストレージモジュール54内のメモリセルは、相変化メモリセル、磁気メモリセル、または抵抗メモリセルなどの新世代新タイプの不揮発性メモリセルを含み得る。
本発明のこの実施形態において、説明を容易にするため、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に記憶される。
当業者は、現在、DRAMチップがほとんどすべて、64msの標準規定されるリフレッシュサイクルに準拠して製造されることを知り得る。リフレッシュサイクルは、DRAMチップ内の各メモリセル(例えば、DRAM cell)の保持時間(retention time)と関連付けられる。保持時間は、メモリセルがデータを保つ時間を指す。保持時間を超過すると、メモリセルに記憶されたデータは、失われる。DRAMチップに記憶されたデータが失われるのを防止するのに、DRAMチップは、リフレッシュサイクルに応じてリフレッシュされる必要がある。しかし、実際の適用において、DRAMチップ内の各メモリセル(例えば、DRAM cell)の保持時間(retention time)が変動するため、64msは、実際には、メモリセルの最も貧弱な保持時間であることが見出される。したがって、本発明のこの実施形態において、DRAMリフレッシュによってもたらされるシステム電力消費および遅延時間は、リフレッシュサイクルを長くすることによって低減され得る。しかし、DRAMチップのリフレッシュサイクルを単に長くすることは、データに誤りをもたらし得る。
システム電力消費を低減する一方で、データの正しさを確実にするのに、本発明のこの実施形態において示されるコンピュータシステムアーキテクチャにおいて、メモリ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に書き込まれる。
本発明のこの実施形態は、ハイブリッドメモリに基づいてコンピュータシステムアーキテクチャに適用されるため、メモリ30は、マルチプレクサ(multiplexer、MUX)70をさらに含み得る。MUX70は、選択信号の制御下で、データの複数のラインからデータの1つのラインを出力信号として選択し得る。本発明のこの実施形態において、MUX70の入力終端が、DRAM40とSCM50の両方に接続され、かつMUX70の出力終端が、メモリコントローラ20に接続される。データがメモリ30から読み取られる必要がある場合、MUX70は、DRAM40に記憶されたデータをメモリコントローラ20に出力すること、またはSCM50に記憶されたデータをメモリコントローラ20に出力することを選択し得る。例えば、MUX70は、DRAM40から出力されたデータをバッファリングするために使用されるバッファ(buffer)と、SCM50から出力されたデータをバッファリングするために使用されるバッファ(buffer)とを含み得る。
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だけに接続されてよい。
実際の適用において、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のハードウェア形態も、本発明のこの実施形態において限定されない。
本発明のこの実施形態による図1−Aから図1−Cに示されるコンピュータシステムアーキテクチャにおいて、システム費用およびシステム電力消費を低減する一方で、データの正しさを確実にするのに、メモリコントローラ20が、DRAM40に主にアクセスしてよく、SCMコントローラ52は、CAM60が、SCM50に対するアクセスが必要とされると決定した場合だけ、メモリコントローラ20のアクセス命令に応じてアクセス操作を実行する。言い換えると、メモリ30に対するアクセスが必要とされる場合、SCM50は、メモリコントローラ20によって与えられるすべてのアクセス命令を実行するのではなく、CAM60が、SCM50に対するアクセスが必要とされると決定した場合だけ、CAM60によって出力される信号に応じてメモリコントローラ20によって与えられるアクセス命令を実行する。
本発明のこの実施形態において提供されるコンピュータシステムにおいて、図1−A、図1−B、および図1−Cに示される構成要素に加えて、コンピュータシステム100は、本明細書において限定されない、通信インターフェース、および外部メモリとして使用される磁気ディスクなどの他の構成要素をさらに含み得ることに留意されたい。本発明のこの実施形態によるハイブリッドメモリに基づくコンピュータシステムアーキテクチャについての前述の説明に基づいて、以下は、本発明の実施形態において提供されるメモリアクセス方法を詳細に説明する。図1−A、図1−B、および図1−Cに示されるコンピュータシステムアーキテクチャは同様であるため、説明を容易にするため、以下は、図1−Aに示されるコンピュータシステムアーキテクチャを主に参照することによって、本発明の実施形態において提供されるメモリアクセス方法を詳細に説明する。
図2は、本発明の実施形態によるメモリアクセス方法の流れ図である。方法は、図1−Aに示されるコンピュータシステム100に適用され得る。方法は、図1−AにおけるSCM50によって実行され得る。特に、方法は、SCM50内のSCMコントローラ52によって実行され得る。図2に示されるとおり、方法は、以下のステップを含み得る。
ステップ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内の複数のアクセスされるべきメモリセルセットによって提供される物理スペースをポイントし得る。
前述されるとおり、DRAM40内のDRAMセルは、配列され、マトリックスに区分され、マトリックスは、DRAMバンクと称される。メモリ30に対するアクセスが必要とされる場合、メモリコントローラ20が、対応する行デコーダおよび列デコーダを使用することによって、第1のアドレスに応じてDRAMバンク内の任意のDRAMセルを位置特定し得る。第1のアドレスは、1つのアドレスであってよく、またはアドレス範囲であってよいことに留意されたい。例えば、メモリアクセス命令が書込み命令である場合、第1のアドレスは、書き込まれるべきデータの開始アドレスであり得る。メモリアクセス命令が読取り命令である場合、第1のアドレスは、アクセスされるべき開始アドレスと、アクセスされるべきアドレススペースのサイズ(size)とを含み得る。本発明のこの実施形態において、メモリのものであり、かつ第1のアドレスがポイントするストレージスペースの粒度は、バイト(Byte)、またはライン(line)、またはページ(page)であり得る。このようにして、メモリのものであり、かつ第1のアドレスがポイントするストレージスペースは、少なくとも1バイトを含むことがあり、または少なくとも1ライン、または少なくとも1ページを含むことがある。第1のアドレスがポイントするメモリセルセットは、1つのメモリセルを含んでよく、または複数のメモリセルを含んでよく、このことは、本明細書において限定されない。
ステップ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の標準規定されるリフレッシュサイクルより長いという条件付きで、本明細書において特に限定されない。
本発明のこの実施形態において、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の規定されるリフレッシュサイクルより短いメモリセルを含むことを示す。
実際の適用において、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のアドレスを出力し得る。
実際の適用において、CAM60が、CAM60に記憶されたデータ項目が第1のアドレスを含むと決定した場合、CAM60は、MUX70に第1の命令信号をさらに送信し得る。第1の命令信号は、SCM50がデータを出力するのを待つようMUX70に命令するのに使用される。第1のアクセス命令が読取り命令である場合、MUX70は、CAM60によって送信された第1の命令信号に応じて、SCM50に記憶されたデータをメモリコントローラ20に出力し得ることが理解されることができる。第1のアクセス命令が書込み命令である場合、MUX70は、データが事前設定された時間に受信されない場合、メモリコントローラ20にデータを出力しなくてよい。
さらに、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がメモリコントローラにホールド命令を能動的な様態で送信し、このことは、本明細書において限定されない。
実際の適用において、第1のアドレスは、第1のアクセス命令内のアクセスされるべきアドレス範囲内のいくつかのアドレスであり得ることが理解されることができる。第1のアクセス命令は、第1のアドレス以外であり、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルをポイントしないアドレスをさらに含み得る。
ステップ210において、SCMコントローラ52が、第1のアドレスとのマッピング関係を有する第2のアドレスを獲得する。第2のアドレスは、SCM50の第2のメモリセルセットをポイントするのに使用される。前述されるとおり、本発明のこの実施形態において、DRAM40のものであり、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスは、CAM60に事前記憶され得る。保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルは、データ損失をもたらすため、メモリ30に記憶されたデータの正しさおよび完全性を確実にするのに、本発明のこの実施形態において、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルによって提供される物理スペースが、SCM50において提供される物理スペースにマップされ得る。すなわち、SCM50内のメモリセルが、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのバックアップメモリセルとして使用される。このようにして、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルに書き込まれる必要があるデータが、SCM50内のメモリセルに書き込まれて、データのこの部分の損失を防止してもよい。
特に、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短い検出されたメモリセルのアドレスとSCM50内のアドレスの間のマッピング関係が確立され得る。相互マッピング関係を有するDRAM40のアドレスとSCM50内のアドレスは、同一のデータを記憶するのに使用される。実際の適用において、システム初期化プロセス中、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いことが検出されたメモリセルのアドレスは、CAM60に書き込まれてよく、DRAM40に入っており、かつ保持時間がDRAMの規定されるリフレッシュサイクルより短いことが検出されたメモリセルのアドレスとSCM50内のメモリセルのアドレスの間のマッピング関係は、CAM60に記憶されてよい。説明を容易にするため、本発明のこの実施形態において、保持時間がDRAMの規定されるリフレッシュサイクルより短いメモリセルのアドレスは、不適格なDRAMアドレスと称される。本発明のこの実施形態において、不適格なDRAMアドレスとSCMアドレスの間のマッピング関係が、CAM60に記憶され得る。例えば、不適格なDRAMアドレスとSCMアドレスの間のマッピング関係は、表1に示され得る。
Figure 0006408712
表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)または複数のページをポイントしてよく、このことは、本明細書において限定されない。
このステップにおいて、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を出力し得る。
本発明のこの実施形態において、データの正しさを確実にするのに、DRAMのものであり、かつ第1のアドレスがポイントする第1のメモリセルセット内のメモリセルと、SCMのものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルは、同一のデータを記憶するように構成される。さらに、第2のメモリセルセット内のメモリセルの合計ストレージ容量は、第1のメモリセルセット内のメモリセルの合計ストレージ容量以上である。例えば、第1のメモリセルセット内のメモリセルの合計ストレージ容量が、1kB(Byte)であり得る。すると、第2のメモリセルセット内のメモリセルの合計ストレージ容量は、1kB以上である。
CAM60に記憶された不適格なDRAMアドレスは、DRAMが工場を離れる際、長くされたリフレッシュサイクルに応じて検出され得ることに留意されたい。1つのDRAMに関して、不適格なDRAMアドレスが確定的である。システム初期化プロセス中、不適格なDRAMアドレスとのマッピング関係を有するSCMアドレスが調整され得る。すなわち、前述の表1におけるマッピング関係は、固定されていない。例えば、マッピング関係が調整された後、SCM_ADDR3とADDRA0の間のマッピング関係が確立されてよく、このことは、本明細書において限定されない。
ステップ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が、読み取られるべきデータのサイズを示すのに使用される。
ステップ220において、SCMコントローラ52が、第2のアクセス命令に応じて第2のメモリセルセット内のメモリセルにアクセスする。例えば、メモリアクセス命令がデータを書き込むための命令である場合、メモリコントローラ20は、第2のアドレスに応じて、SCM50のものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルにデータを書き込み得る。メモリアクセス命令がデータを読み取るための命令である場合、メモリコントローラ20は、SCM50のものであり、かつ第2のアドレスがポイントする第2のメモリセルセット内のメモリセルからデータを読み取り得る。
本発明のこの実施形態において提供されるメモリアクセス方法において、DRAM40のリフレッシュサイクルは、標準規定されるリフレッシュサイクルより長く、保持時間がDRAM40のリフレッシュサイクルより短いメモリセルのアドレスとSCM50内のメモリセルのアドレスの間のマッピング関係は、CAM60において事前確立される。したがって、アクセス命令が、不適格なDRAMメモリセル(すなわちDRAM cell)に対するアクセスを含むと決定した場合、SCMコントローラ52は、DRAMに対するアクセスをSCM50に対するアクセスに変換し得る。本発明のこの実施形態において提供される方法では、DRAMリフレッシュのための電力消費が低減される一方で、データの正しさが確実にされることができる。
さらに、本発明のこの実施形態において提供されるメモリアクセス方法において、DRAM40が、アクセスするためのメインメモリとして使用される。したがって、DRAM40は、メモリコントローラ20によって与えられるすべての命令を実行する。このようにして、SCMコントローラ52が、メモリコントローラによって与えられるアクセス命令に応じてSCM50にアクセスするプロセス中、DRAM40もアクセス命令を実行する。DRAM40に入っており、かつ保持時間がDRAM40のリフレッシュサイクルより短いメモリセルは、DRAM40内のすべてのメモリセルの小さい部分に過ぎない。したがって、本発明のこの実施形態に示される方法では、SCMコントローラ52は、図2に示される方法により、いくつかの命令だけに関してSCM50に対してアクセス操作を実行する。さらに、DRAM40の読取り速度および書込み速度は比較的高いため、本発明のこの実施形態において示される方法は、システムアクセス速度を低くすることなしに、システム費用を低減することができ、かつシステム電力消費を低減する一方で、システムアクセス速度を確実にすることもできる。
図3は、本発明の実施形態による方法の流れ図である。方法は、図1−Aから図1−Cに示されるコンピュータシステム100に依然として適用され得る。以下は、図1−Aを主に参照することによって、図3に示されるメモリアクセス方法を詳細に説明する。方法は、図1−AにおけるSCM50によって実行され得る。特に、方法は、SCM50内のSCMコントローラ52によって実行され得る。図3に示されるとおり、方法は、以下のステップを含み得る。
ステップ300において、SCMコントローラ52が、メモリコントローラによって送信された第3のアクセス命令を受信する。第3のアクセス命令は、第3のアドレスを搬送し、かつ第3のアドレスは、DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用される。実際の適用において、メモリコントローラ20は、第3のアクセス命令をDRAM40とSCM50に同時に送信し得る。本発明の実施形態において示されるシステムアーキテクチャにおいて、DRAM40が、メインメモリとして使用される。したがって、DRAM40は、メモリコントローラによって与えられるすべてのアクセス命令を実行する必要があり、すると、第3の命令内の第3のアドレスは、DRAM40内のメモリセルをポイントするアドレスである。ステップ300は、図2に示されるステップ200と同様であり、詳細に関して、ステップ200の説明を参照されたく、さらなる説明は、本明細書において提供されない。
ステップ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の説明を参照されたい。さらなる説明は、本明細書において提供されない。
ステップ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にアクセスすることはしない。
ステップ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に示される実施形態における関連付けられたステップの説明をそれぞれ参照されたい。さらなる説明は、本明細書において提供されない。
本発明の実施形態が、プログラムコードを記憶するコンピュータ可読ストレージ媒体を含む、データ処理のためのコンピュータプログラム製品であって、プログラムコードに含まれる命令は、前述の方法実施形態のいずれか1つにおいて説明される方法プロセスを実行するのに使用される、コンピュータプログラム製品をさらに提供する。当業者は、前述のストレージ媒体が、USBフラッシュドライブ、リムーバブルハードディスク、磁気ディスク、光ディスク、ランダムアクセスメモリ(Random Access Memory、RAM)、ソリッドステートディスク(Solid State Disk、SSD)、または不揮発性メモリ(non−volatile memory)などの、プログラムコードを記憶することができる任意の非一時的(non−transitory)マシン可読媒体を含み得ることを理解し得る。
本出願によって提供される実施形態は、例示的であるに過ぎないことに留意されたい。当業者は、説明の便宜と簡潔のため、前述の実施形態において、実施形態は、異なる強調で説明されることを明確に知ることがあり、1つの実施形態において詳細には説明されない部分に関して、別の実施形態の関係のある説明を参照されたい。本発明の実施形態、特許請求の範囲、および添付の図面において開示される特徴は、独立に存在してよく、または組合せで存在してよい。本発明の実施形態においてハードウェア形態で説明される特徴はソフトウェアによって実行されてよく、またその逆も同様であり、このことは、本明細書において限定されない。

Claims (17)

  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のメモリセルセット内のメモリセルにアクセスすることを行うように構成されることを特徴とするコンピュータシステム。
  2. 前記SCMは、
    連想メモリCAMに記憶された第1のアドレスに応じて、前記第1のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えると決定することであって、前記CAMは、前記第1のアドレスを含め、前記DRAMに入っており、かつ保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定すること、および
    前記第1のアドレス、および前記第1のアドレスと前記第2のアドレスの間の前記CAMに記憶されたマッピング関係に応じて、前記第1のアドレスとのマッピング関係を有する前記第2のアドレスを獲得することであって、前記DRAMのものであり、かつ前記第1のアドレスがポイントする前記第1のメモリセルセット内の前記メモリセルと、前記SCMのものであり、かつ前記第2のアドレスがポイントする前記第2のメモリセルセット内の前記メモリセルは、同一のデータを記憶するように構成される、獲得することを行うように特に構成されることを特徴とする請求項1に記載のコンピュータシステム。
  3. 前記メモリコントローラは、前記DRAMおよび前記SCMに第3のアクセス命令を送信するようにさらに構成され、前記第3のアクセス命令は、第3のアドレスを搬送し、かつ前記第3のアドレスは、前記DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
    前記DRAMは、前記第3のアクセス命令に応じて前記第3のメモリセルセット内のメモリセルにアクセスするようにさらに構成され、かつ
    前記SCMは、
    前記メモリコントローラによって送信された前記第3のアクセス命令を受信すること、
    前記第3のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えないと決定すること、および
    前記第3のアクセス命令を削除することを行うようにさらに構成されることを特徴とする請求項1または2に記載のコンピュータシステム。
  4. 前記ハイブリッドメモリは、
    前記第1のアクセス命令が読取り命令である場合、前記SCMの前記第2のメモリセルセット内の前記メモリセルに記憶されたデータを前記メモリコントローラに出力すること、または
    前記第3のアクセス命令が読取り命令である場合、前記DRAMの前記第3のメモリセルセット内の前記メモリセルに記憶されたデータを前記メモリコントローラに出力することを行うように構成されたマルチプレクサMUXをさらに備えることを特徴とする請求項3に記載のコンピュータシステム。
  5. 前記第2のメモリセルセット内の前記メモリセルの合計ストレージ容量は、前記第1のメモリセルセット内の前記メモリセルの合計ストレージ容量以上であることを特徴とする請求項1乃至4のいずれか一項に記載のコンピュータシステム。
  6. ストレージクラスメモリ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。
  7. 前記CAMは、
    前記CAMに事前記憶された前記第1のアドレスに応じて、前記第1のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えると決定することであって、前記CAMは、前記第1のアドレスを含め、前記DRAMに入っており、かつ保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルのアドレスを記憶する、決定すること、および
    前記第1のアドレス、および前記第1のアドレスと前記第2のアドレスの間の前記CAMに記憶されたマッピング関係に応じて、前記第1のアドレスとのマッピング関係を有する前記第2のアドレスを獲得することであって、前記DRAMのものであり、かつ前記第1のアドレスがポイントする前記第1のメモリセルセット内のメモリセルと、前記SCMのものであり、かつ前記第2のアドレスがポイントする前記第2のメモリセルセット内の前記メモリセルは、同一のデータを記憶するように構成される、獲得することを行うように特に構成されることを特徴とする請求項6に記載のSCM。
  8. 前記SCMコントローラは、前記メモリコントローラによって送信された第3のアクセス命令を受信するようにさらに構成され、前記第3のアクセス命令は、第3のアドレスを搬送し、かつ前記第3のアドレスは、前記DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用され、
    前記CAMは、前記第3のアドレスに応じて、前記第3のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを含まないと決定するようにさらに構成され、かつ
    前記SCMコントローラは、前記第3のアクセス命令を削除するようにさらに構成されることを特徴とする請求項6または7に記載のSCM。
  9. 前記ハイブリッドメモリは、マルチプレクサMUXをさらに備え、
    前記CAMは、
    前記第1のアクセス命令が読取り命令である場合、前記第1のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えると決定された後、前記ハイブリッドメモリ内の前記MUXに第1の命令信号を送信することであって、前記第1の命令信号は、前記SCMに記憶されたデータを前記メモリコントローラに出力するよう前記MUXに命令するのに使用される、送信することを行うようにさらに構成されることを特徴とする請求項6に記載のSCM。
  10. 前記第2のメモリセルセット内の前記メモリセルの合計ストレージ容量は、前記第1のメモリセルセット内の前記メモリセルの合計ストレージ容量以上であることを特徴とする請求項6乃至9のいずれか一項に記載のSCM。
  11. メモリアクセス方法であって、前記方法は、ハイブリッドメモリを備えるコンピュータシステムに適用され、前記ハイブリッドメモリは、ダイナミックランダムアクセスメモリDRAMと、メモリコントローラに接続されたストレージクラスメモリSCMとを備え、前記方法は、前記SCMによって実行され、
    前記コンピュータシステムの前記メモリコントローラによって送信された第1のアクセス命令を受信するステップであって、前記第1のアクセス命令は、第1のアドレスを搬送し、かつ前記第1のアドレスは、前記DRAMのアクセスされるべき第1のメモリセルセットをポイントするのに使用される、ステップと、
    前記第1のメモリセルセットが、保持時間が前記DRAMのリフレッシュサイクルより短いメモリセルを備えると決定するステップであって、前記DRAMの前記リフレッシュサイクルは、標準のリフレッシュサイクルより長い、ステップと、
    前記第1のアドレスとのマッピング関係を有する第2のアドレスを獲得するステップであって、前記第2のアドレスは、前記SCMの第2のメモリセルセットをポイントするのに使用される、ステップと、
    前記第1のアクセス命令を、前記第2のアドレスに応じて第2のアクセス命令に変換するステップであって、前記第2のアクセス命令は、前記第2のアドレスを備える、ステップと、
    前記第2のアクセス命令に応じて前記第2のメモリセルセット内のメモリセルにアクセスするステップと
    を備えることを特徴とするメモリアクセス方法。
  12. 前記第1のメモリセルセットが、保持時間が前記DRAMのリフレッシュサイクルより短いメモリセルを備えると決定する前記ステップは、
    連想メモリCAMに記憶された前記第1のアドレスに応じて、前記第1のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えると決定するステップであって、前記CAMは、前記第1のアドレスを含め、前記DRAMに入っており、かつ保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルのアドレスを記憶する、ステップを備えることを特徴とする請求項11に記載の方法。
  13. 前記第1のアドレスとのマッピング関係を有する第2のアドレスを獲得する前記ステップは、
    前記CAMに記憶された、前記第1のアドレスと前記第2のアドレスの間のマッピング関係に応じて、前記第1のアドレスとのマッピング関係を有する前記第2のアドレスを獲得するステップであって、前記DRAMのものであり、かつ前記第1のアドレスがポイントする前記第1のメモリセルセット内のメモリセルと、前記SCMのものであり、かつ前記第2のアドレスがポイントする前記第2のメモリセルセット内の前記メモリセルは、同一のデータを記憶するように構成される、ステップを備えることを特徴とする請求項12に記載の方法。
  14. 前記メモリコントローラによって送信された第3のアクセス命令を受信するステップであって、前記第3のアクセス命令は、第3のアドレスを搬送し、かつ前記第3のアドレスは、前記DRAMのアクセスされるべき第3のメモリセルセットをポイントするのに使用される、ステップと、
    前記第3のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えないと決定するステップと、
    前記第3のアクセス命令を削除するステップと
    をさらに備えることを特徴とする請求項11に記載の方法。
  15. 前記第1のアクセス命令が読取り命令である場合、前記第1のメモリセルセットが、保持時間が前記DRAMの前記リフレッシュサイクルより短いメモリセルを備えると決定された後、前記ハイブリッドメモリ内のマルチプレクサMUXに第1の命令信号を送信するステップであって、前記第1の命令信号は、前記SCMに記憶されたデータを前記メモリコントローラに出力するよう前記MUXに命令するのに使用される、ステップをさらに備えることを特徴とする請求項11に記載の方法。
  16. 前記第2のメモリセルセット内の前記メモリセルの合計ストレージ容量は、前記第1のメモリセルセット内の前記メモリセルの合計ストレージ容量以上であることを特徴とする請求項11乃至15のいずれか一項に記載の方法。
  17. 1または複数のコンピュータ実行可能命令を含むコンピュータプログラムであって、
    前記1または複数のコンピュータ実行可能命令は、ストレージシステムのプロセッサ上で実行されたときに前記ストレージシステムに請求項11乃至16のいずれか一項に記載の方法を実行させるコンピュータプログラム。
JP2017535038A 2014-12-31 2015-12-18 メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム Active JP6408712B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410856607.XA CN105808455B (zh) 2014-12-31 2014-12-31 访问内存的方法、存储级内存及计算机系统
CN201410856607.X 2014-12-31
PCT/CN2015/097961 WO2016107429A1 (zh) 2014-12-31 2015-12-18 访问内存的方法、存储级内存及计算机系统

Publications (2)

Publication Number Publication Date
JP2018500695A JP2018500695A (ja) 2018-01-11
JP6408712B2 true JP6408712B2 (ja) 2018-10-17

Family

ID=56284220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017535038A Active JP6408712B2 (ja) 2014-12-31 2015-12-18 メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム

Country Status (6)

Country Link
US (1) US10223273B2 (ja)
EP (1) EP3220277B1 (ja)
JP (1) JP6408712B2 (ja)
KR (1) KR101968433B1 (ja)
CN (1) CN105808455B (ja)
WO (1) WO2016107429A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277677B2 (en) * 2016-09-12 2019-04-30 Intel Corporation Mechanism for disaggregated storage class memory over fabric
EP3557422A4 (en) * 2018-03-09 2020-01-08 Shenzhen Goodix Technology Co., Ltd. METHOD FOR ACCESSING CODE SRAM AND ELECTRONIC DEVICE
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
KR102505913B1 (ko) 2018-04-04 2023-03-07 삼성전자주식회사 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템
KR102583266B1 (ko) 2018-10-24 2023-09-27 삼성전자주식회사 스토리지 모듈, 스토리지 모듈의 동작 방법, 및 스토리지 모듈을 제어하는 호스트의 동작 방법
US11061828B1 (en) 2020-02-25 2021-07-13 International Business Machines Corporation Using multi-tiered cache to satisfy input/output requests
CN113312275A (zh) * 2020-02-27 2021-08-27 华为技术有限公司 内存设备的数据处理方法、装置和系统
JP2022050017A (ja) 2020-09-17 2022-03-30 キオクシア株式会社 キャッシュメモリシステムおよびキャッシュメモリ制御方法
CN112257363B (zh) * 2020-10-30 2023-04-18 上海兆芯集成电路有限公司 内存的选择方法及装置
CN115794692A (zh) * 2021-09-09 2023-03-14 瑞昱半导体股份有限公司 存取内存的电子装置及数据写入方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197026A (en) * 1989-04-13 1993-03-23 Microchip Technology Incorporated Transparent EEPROM backup of DRAM memories
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5758056A (en) * 1996-02-08 1998-05-26 Barr; Robert C. Memory system having defective address identification and replacement
JP2003308691A (ja) 2002-04-11 2003-10-31 Elpida Memory Inc 半導体記憶装置
JP2005285190A (ja) * 2004-03-29 2005-10-13 Sanyo Electric Co Ltd メモリ
JP5049733B2 (ja) 2007-10-17 2012-10-17 株式会社東芝 情報処理システム
JP2009252005A (ja) * 2008-04-08 2009-10-29 Kawasaki Microelectronics Inc 不良アドレス変換装置
US8626997B2 (en) * 2009-07-16 2014-01-07 Micron Technology, Inc. Phase change memory in a dual inline memory module
WO2011081232A1 (ko) * 2009-12-29 2011-07-07 주식회사 프롬나이 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US9245653B2 (en) * 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
JP5553309B2 (ja) 2010-08-11 2014-07-16 国立大学法人 東京大学 データ処理装置
US8521981B2 (en) 2010-12-16 2013-08-27 Microsoft Corporation Memory power tokens
WO2013100936A1 (en) 2011-12-28 2013-07-04 Intel Corporation A method and device to distribute code and data stores between volatile memory and non-volatile memory
US9257169B2 (en) 2012-05-14 2016-02-09 Samsung Electronics Co., Ltd. Memory device, memory system, and operating methods thereof
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
CN102831087B (zh) * 2012-07-27 2016-05-11 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据读写处理方法和装置
DE112015000378T5 (de) * 2014-01-09 2016-09-22 Sandisk Technologies Inc. Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
CN103810126B (zh) * 2014-01-27 2017-06-13 上海新储集成电路有限公司 混合dram存储器及降低该dram存储器刷新时功耗的方法
CN103810112B (zh) * 2014-01-28 2016-08-17 华中科技大学 一种非易失性内存系统及其管理方法
CN103811048B (zh) * 2014-02-26 2017-01-11 上海新储集成电路有限公司 一种混合存储器结构的低功耗刷新方法
US10559344B2 (en) * 2016-09-16 2020-02-11 Aspiring Sky Co. Limited Hybrid non-volatile memory devices with static random access memory (SRAM) array and non-volatile memory (NVM) array

Also Published As

Publication number Publication date
EP3220277B1 (en) 2021-10-27
WO2016107429A1 (zh) 2016-07-07
KR101968433B1 (ko) 2019-04-11
JP2018500695A (ja) 2018-01-11
KR20170093211A (ko) 2017-08-14
CN105808455B (zh) 2020-04-28
CN105808455A (zh) 2016-07-27
US10223273B2 (en) 2019-03-05
EP3220277A1 (en) 2017-09-20
US20170300419A1 (en) 2017-10-19
EP3220277A4 (en) 2018-02-21

Similar Documents

Publication Publication Date Title
JP6408712B2 (ja) メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム
US9317461B2 (en) Use of host system resources by memory controller
US10592445B2 (en) Techniques to access or operate a dual in-line memory module via multiple data channels
US20130329491A1 (en) Hybrid Memory Module
US11144386B2 (en) Memory controller storing data in approximate memory device based on priority-based ECC, non-transitory computer-readable medium storing program code, and electronic device comprising approximate memory device and memory controller
US10846220B2 (en) Memory system and operation method thereof
TWI790456B (zh) 記憶體定址方法及相關聯的控制器
US20180032445A1 (en) Memory system having nonvolatile memory and volatile memory
US11726690B2 (en) Independent parallel plane access in a multi-plane memory device
CN108701105B (zh) 存储装置、存储方法及存储系统
CN108351850B (zh) 对存储器设备中的非易失性存储器和易失性存储器进行同时存取的技术
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
KR20190128743A (ko) 프로그래밍 가능한 버퍼 및 캐시 크기의 메모리 프로토콜
US20170236575A1 (en) Memory refresh operation with page open
US20220391321A1 (en) Concurrent page cache resource access in a multi-plane memory device
US20200117391A1 (en) Memory device and operating method thereof
US10185510B2 (en) Bank interleaving controller and semiconductor device including the same
US11189347B2 (en) Resource management for memory die-specific operations
US20240029778A1 (en) Bank selection for refreshing
US20210286727A1 (en) Dynamic random access memory (dram) with scalable meta data
KR20230063857A (ko) 스토리지 장치 및 전자 장치
TW202403556A (zh) 記憶體系統及其操作方法
CN113468082A (zh) 用于ssd的总线多路复用器网格的高级ce编码
KR20110000876A (ko) 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법
KR20160110690A (ko) 디램 메모리 어드레스 맵핑 방법 및 그 방법을 이용하는 메모리 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180920

R150 Certificate of patent or registration of utility model

Ref document number: 6408712

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250