JP2016523411A - ハイブリッドメモリデバイス - Google Patents

ハイブリッドメモリデバイス Download PDF

Info

Publication number
JP2016523411A
JP2016523411A JP2016521887A JP2016521887A JP2016523411A JP 2016523411 A JP2016523411 A JP 2016523411A JP 2016521887 A JP2016521887 A JP 2016521887A JP 2016521887 A JP2016521887 A JP 2016521887A JP 2016523411 A JP2016523411 A JP 2016523411A
Authority
JP
Japan
Prior art keywords
memory
volatile memory
page
logic
controller
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.)
Granted
Application number
JP2016521887A
Other languages
English (en)
Other versions
JP6112594B2 (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2016523411A publication Critical patent/JP2016523411A/ja
Application granted granted Critical
Publication of JP6112594B2 publication Critical patent/JP6112594B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

複数のメモリデバイスと、複数のコントローラと、複数のメモリデバイスを備える複数の電子デバイスとが説明される。一実施形態において、メモリデバイスは、揮発性メモリと、不揮発性メモリと、コントローラとを有し、コントローラは、メモリバッファおよびロジックを含む。ロジックは、アプリケーションからの複数の要求に応答して、メモリバッファを介して不揮発性メモリと揮発性メモリとの間でデータを移転させる。メモリバッファ内のデータはアプリケーションにアクセス可能なものである。複数の他の実施形態も開示され、特許請求の範囲に記載される。

Description

本開示は、概して、エレクトロニクスの分野に関する。特に、本発明のいくつかの実施形態は概して、ハイブリッドメモリデバイスに関する。
例えば、マルチコア処理のような、システムアーキテクチャにおける複数の継続的改良およびアプリケーションにおける複数の改良は、複数のメモリシステムにおいて複数の対応する改良を要する。例えば、複数のインメモリデータベースと複数の仮想化サーバのような、プロセッサシステムにおける実質的により大きいメモリ容量を要するコアの数およびアプリケーションの数の増加に伴い、大きいメモリ容量は、ますます重要となっている。複数の既存のメモリシステム(例えば、複数のダブルデータレートデュアルインラインメモリモジュール(DDR‐DIMMs))を拡張する能力は、コスト、電力消費、密度および性能を含むいくつかの要因によって限定される。典型的な大きいメモリプラットホームは、16DIMMsまたはそれより大きい程度の大きい容量を含んでよい。これは、コンポーネントの配置、冷却、複数の信号のルーティングと同様に、複数の課題を生み、これらの全ては、それらのシステムの複数のコストに加わる。
容量に加えて、永続メモリは、複数の特定のアプリケーションにおいてますます有用である。典型的な例は、インメモリデータベースであり、データベースのサイズが大きくなるにつれて、メモリイメージを構築する時間はかなり長くなり得る。パワーサイクリング中で複数のメモリコンテンツを維持する能力は、起動時間を減少し得て、複数の冗長運用系または待機系サーバの要件を取り除き得る。
従って、複数のハイブリッドメモリデバイスのユーティリティは期待できる。
本詳細な説明は添付の複数の図を参照して提供される。複数の図において、参照番号の最も左の桁は、その参照番号が最初に登場する図を特定する。異なる複数の図に同じ複数の参照番号が用いられる場合、同様のまたは同一の複数の要素を示す。
本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装する装置の複数のコンポーネントの概略ブロック図を示す。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスが実装され得る典型的なアーキテクチャの概略ブロック図を示す。 本明細書において説明する複数の様々な実施形態に係る揮発性メモリの概略図を示す。 本明細書において説明する複数の様々な実施形態に係るメモリマッピングの概略図を示す。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装する方法における複数の動作を示す複数のフローチャートである。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装する方法における複数の動作を示す複数のフローチャートである。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装するのに適合し得る複数の電子デバイスの概略ブロック図を示す。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装するのに適合し得る複数の電子デバイスの概略ブロック図を示す。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装するのに適合し得る複数の電子デバイスの概略ブロック図を示す。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装するのに適合し得る複数の電子デバイスの概略ブロック図を示す。 本明細書において説明する複数の様々な実施形態に係るハイブリッドメモリデバイスを実装するのに適合し得る複数の電子デバイスの概略ブロック図を示す。
いくつかのメモリシステムは、揮発性メモリとして頻繁に具現化され、キャッシュメモリとして機能し得るローカルな高速アクセスメモリ、および、例えば、磁気または光学メモリなどの不揮発性メモリを備え得る1つまたは複数の遠隔メモリデバイスを用いて、実装され得る。例として、複数の遠隔メモリデバイスは、1つまたは複数のデュアルインラインメモリモジュール(DIMMs)を備えてよく、これらの各々は、1つまたは複数のメモリランクを有してよい。1つまたは複数のメモリランクは、逐次に1つまたは複数のダイナミックランダムアクセスメモリ(DRAM)チップを含んでよく、例えば、3次元クロスポイントメモリ、フラッシュメモリ、強誘電体メモリ、シリコン‐酸化物‐窒化物‐酸化物‐シリコン構造(SОNОS)メモリ、ポリマーメモリ、メモリ、ナノワイヤ、強誘電体トランジスタ、ランダムアクセスメモリ(FeTRAMまたはFeRAM)、ナノワイヤまたは電気的消去可能でプログラマブルな読み取り専用メモリ(EEPRОM)のような、不揮発性メモリを有してよい。いくつかの電子デバイス(例えば、複数のスマートフォン、複数のタブレットコンピュータなど)は、1つまたは複数のDRAMを含む複数のより簡易な遠隔メモリシステムを有してよい。
揮発性メモリ(例えば、DRAM)および不揮発性メモリを含む複数のハイブリッドメモリデバイスは、本明細書において説明される。複数のデバイスは、コントローラをさらに備え、コントローラは、メモリバッファと、アプリケーションからの複数の要求に応答してメモリバッファを介して不揮発性メモリと揮発性メモリの間でメモリバッファにおけるアプリケーションにアクセス可能なデータを移転させるロジックと、を有する。メモリデバイスを組み込む電子デバイスは、オペレーティングシステムおよび1つまたは複数のアプリケーションを実行するプロセッサと、少なくとも1つのアプリケーションとメモリデバイスの間の複数のメモリアクセス動作を管理するオペレーティングシステムデバイスドライバと、を有してよい。
本明細書において説明される複数の技術は、複数の様々なコンピューティングシステム(例えば、複数のサーバ、複数のデスクトップコンピュータ、複数のノートブック、複数のスマートフォン、複数のポータブルゲームコンソールなどを含む)に提供されてよく、複数の様々なコンピューティングシステムは、一般にデュアルインラインメモリモジュール(DIMM)および不揮発性メモリに組み込まれる複数のDRAMチップを含むメモリシステムを備えてよい。そのような複数の実施形態において、1つまたは複数のDIMMは、別々の制御ロジックを含んでよい。
以下の説明において、複数の様々な実施形態の十分な理解を提供すべく、多数の具体的な詳細が記載される。しかし、本発明の複数の様々な実施形態は、具体的な詳細がなくても実施され得る。複数の他の例において、本発明の複数の特定の実施形態を曖昧にしないように、複数の周知の、方法、手順、コンポーネントおよび回路は、詳細には説明されていない。さらに、本発明の複数の実施形態の複数の様々な態様は、複数の集積半導体回路(「ハードウェア」)、1つまたは複数のプログラムにまとめられた複数のコンピュータ可読命令(「ソフトウェア」)、またはハードウェアおよびソフトウェアのある組み合わせのような、複数の様々な手段を用いて実行されてよい。この開示の複数の目的として、「ロジック」の参照は、ハードウェア、ソフトウェア、またはそれらのある組み合わせのいずれかを意味するものとする。
図1は、本明細書において説明されるように、いくつかの実施形態に係るハイブリッドメモリデバイスを組み込むのに適合し得る典型的な電子デバイス100の概略図を示す。複数の様々な実施形態において、電子デバイス100は、パーソナルコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、携帯電話、娯楽デバイス、タブレットコンピュータ、電子リーダ、または他のコンピューティングデバイスとして、具現化されてよい。
電子デバイス100は、ランダムアクセスメモリおよび/または読み取り専用メモリとして、実装され得る、システムハードウェア120およびメモリ130を備える。バッテリ180のような電力ソースは、電子デバイス100に連結されてよい。
システムハードウェア120は、1つまたは複数のプロセッサ122、複数のバス構造123、1つまたは複数のグラフィックスプロセッサ124、複数のメモリシステム125、複数のネットワークインタフェース126、および複数の入力/出力インタフェース127を有してよい。一実施形態において、プロセッサ122は、アメリカ合衆国カリフォルニア州サンタクララのインテル・コーポレーション社より入手可能なインテル(登録商標)Core2 Duo(登録商標)プロセッサとして具現化されてよい。本明細書において用いられるように、用語「プロセッサ」は、マイクロプロセッサ、マイクロコントローラ、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または任意の他の種類のプロセッサもしくは処理回路のような、任意の種類の計算要素を意味するものとするが、それらに限定されるものではない。
複数のバス構造123は、システムハードウェア120の複数の様々なコンポーネントを接続する。一実施形態において、複数のバス構造128は、メモリバス、周辺バスまたは外部バス、および/または任意の様々な利用可能バスアーキテクチャを使用したローカルバスを含む、1つまたは複数のいくつかの種類のバス構造であってよく、これらに限定されないが、11ビットバス、工業規格アーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、ペリフェラルコンポーネントインターコネクト(PCI)、ユニバーサルシリアルバス(USB)、アドバンスグラフィックスポート(AGP)、パーソナルコンピュータメモリカード国際協会(PCMCIA)バス、およびスモールコンピュータシステムインターフェース(SCSI)を含んでよい。
グラフィックスプロセッサ124は、グラフィックスおよび/または複数のビデオオペレーションを管理する付属プロセッサとして機能してよい。グラフィックスプロセッサ124は、電子デバイス100のマザーボード上に集積させられてよく、または、拡大スロットを介してマザーボード上に連結されてよい。
複数のメモリシステム125は、上述のように、例えば、キャッシュメモリ、揮発性メモリと不揮発性メモリのうちの1つまたは複数の形態のようなローカルメモリを有してよい。
一実施形態において、ネットワークインタフェース126は、イーサネット(登録商標)インタフェースのような有線インタフェース(例えば、電気電子技術者協会/IEEE802.3‐2002を参照)であってよく、または、IEEE802.11a,bまたはgに準拠するインタフェース(例えば、システムLAN/MAN間のIT通信および情報交換のためのIEEE規格−パートII:無線LAN媒体アクセス制御(MAC)および物理層(PHY)規格修正4:2.4GHz帯におけるさらなる高データレート拡張、802.11G−2003を参照)などの無線インタフェースであってよい。無線インタフェースの別の例は、汎用パケット無線サービス(general packet radio service,GPRS)インタフェース(例えば、GPRSハンドセットの複数の要件に関する複数のガイドライン、Global System for Mobile Communications/GSM(登録商標)アソシエーション Ver.3.0.1、2002年12月を参照)であってよい。
I/Oインタフェース127は、例えば、ディスプレイ、タッチスクリーン、1つまたは複数のスピーカ、キーボード、マウス、タッチパッドなどの、1つまたは複数のI/Oデバイス上に実装されてよい。
メモリ130は、電子デバイス100の複数の動作を管理するオペレーティングシステム140を格納してよい。一実施形態において、オペレーティングシステム140は、例えば、1つまたは複数のオペレーティングシステムデバイスドライバのような、システムハードウェア120にインタフェースを提供するハードウェアインタフェースモジュール154を含む。また、オペレーティングシステム140は、電子デバイス100の動作に用いられる複数のファイルを管理するファイルシステム150および電子デバイス100上で実行する複数の処理を管理する処理制御サブシステム152を含んでよい。
オペレーティングシステム140は、遠隔ソースから複数のデータパケットおよび/または複数のデータストリームを送受信するシステムハードウェア120と連携して動作し得る1つまたは複数の通信インタフェースを含んで(または、管理して)よい。オペレーティングシステム140は、オペレーティングシステム140とメモリ130に内蔵する1つまたは複数のアプリケーションモジュールとの間でインタフェースを提供するシステムコールインタフェースモジュール142をさらに含んでよい。オペレーティングシステム140は、UNIX(登録商標)オペレーティングシステム、または、それらの派生システム(例えば、Linux(登録商標)、Solarisなど)、もしくは、Windows(登録商標)ブランドのオペレーティングシステム、または、複数の他のオペレーティングシステムとして具現化されてよい。
いくつかの実施形態において、メモリ130は、オペレーティングシステム140の監視の下、1つまたは複数のプロセッサ122上で実行し得る1つまたは複数のアプリケーション160と、1つまたは複数のメモリドライバ162とを格納してよい。アプリケーション160およびドライバ162は、1つまたは複数のプロセッサ122上で実行可能な有形の非一時的コンピュータ可読媒体(すなわち、ソフトウェアまたはファームウェア)に格納される複数のロジック命令として、具現化されてよい。代替的に、これらのアプリケーションは、例えば、フィールドプログラマブルゲートアレイ(FPGA)などのプログラマブルデバイス上のロジックとして、具現化されてよい。代替的に、これらのアプリケーションは、集積回路内にハードワイヤされ得るロジックに変えられてよい。
図2Aは、本明細書において説明される複数の様々な実施形態に従ってハイブリッドメモリデバイスが中に実装され得る典型的なアーキテクチャの概略ブロック図である。図2Aを参照すれば、いくつかの実施形態において、中央処理装置(CPU)パッケージ200は、制御ハブ220およびローカルメモリ230に連結される1つまたは複数のCPU210を含んでよい。制御ハブ220は、メモリコントローラ222およびメモリインタフェース224を含む。
メモリインタフェース224は、通信バス235によって1つまたは複数の遠隔メモリデバイス240に連結される。一例として、通信バス235は、ダブルデータレートメモリバスであってよい。
メモリデバイス240は、コントローラ242と、不揮発性メモリ250と、揮発性メモリ260と、電力格納280とを有してよい。コントローラ242は、1つまたは複数のコントローラレジスタ244と、複数のメモリバッファ246と、マルチプレクサ248のような入力/出力インタフェースとを含む。
複数の様々な実施形態において、不揮発性メモリ250は、例えば、相変化メモリ、NAND(フラッシュ)メモリ、強誘電体ランダムアクセスメモリ(FeTRAM)、ナノワイヤベースの不揮発性メモリ、メモリスタ技術を組み込むメモリ、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)のような3次元(3D)クロスポイントメモリ、スピン注入メモリ(STT‐RAM)またはNANDメモリを用いて実装されてよい。
複数の様々な実施形態において、揮発性メモリ260は、1つまたは複数のDRAMメモリモジュールを用いて実装されてよい。例として、図2Bを参照すれば、いくつかの実施形態において、揮発性メモリ260は、メモリコントローラ122に通信リンクを提供するメモリチャネル272に連結される1つまたは複数のデュアルインラインメモリモジュール(DIMM)270を含んでよい。図2Bに示される実施形態において、各DIMM270は、第1ランク274および第2ランク276を含み、第1ランク274と第2ランク276の各々が複数のDRAMモジュール278を含む。当業者は、揮発性メモリ260はより多くのまたはより少ないDIMM270を含んでよく、各DIMMはより多くのまたはより少ないランクを含んでよいことを認識するであろう。さらに、いくつかの電子デバイス(例えば、複数のスマートフォン、複数のタブレットコンピュータなど)は、1つまたは複数のDRAMを含む複数のより簡易なメモリシステムを有してよい。
図3を参照すれば、いくつかの実施形態において、不揮発性メモリ250は、揮発性メモリ260より大きい。これは、オペレーティングシステム140に提示されるシステム物理メモリが揮発性メモリ260のサイズによって限定されるアドレッシングスキームを可能にする。不揮発性メモリ250は、揮発性メモリ260の不揮発性メモリバックアップを提供するバックアップ領域を含む。残りの不揮発性メモリアドレス空間は、ドライバ162によって管理されるページング空間として利用可能である。つまり、アプリケーション160に利用可能な全体の仮想アドレス空間は、総計の不揮発性物理メモリアドレス空間であり得る。
通常、オペレーティングシステムは、支援する適切なシステム物理メモリを有する割り当てられた仮想メモリを確保することによって、例えば、ハードディスクドライブまたはソリッドステートドライブのような不揮発性ストレージデバイスから仮想メモリへのページングを限定する。ページングは、通常、非アクティブ期間後に処理を再開するように限定される。メモリデバイス240において、不揮発性メモリ250から揮発性メモリへのコピーは、例えば、DIMMのような同一のメモリデバイス上で発生し、非常に急速に発生し得る。また、アプリケーション160は、不揮発性メモリから揮発性メモリへのコピーが継続すると同時に、データにアクセスすることが許可され得る。これは、アプリケーション160とドライバ162とが同時に複数のページフォルトを処理することを可能にする。
さらに、不揮発性メモリ250と揮発性メモリ260との間の全てのデータ移動はメモリデバイス240上で保たれるので、通信チャネル235は、実際のデータアクセスについてプロセッサによってのみ利用される。 この限定されたデータ移動プロファイルは、仮想メモリページングを実装するのに要される電力を実質的に低減できる。
これらの要因は、不揮発性メモリ250と揮発性メモリ260との間のより多くの動的ページングを可能にし、つまり、アプリケーション160に用いられるより大きい仮想アドレス空間を提供する。複数のアプリケーションによる複数のメモリアクセスは、揮発性メモリに向けられ、よって、高メモリ性能を取得する。
上述のように、いくつかの実施形態において、メモリデバイス240内のコントローラ242は、電子デバイス100内のドライバ162と協働してメモリデバイス240内の複数のメモリオペレーションを管理する。コントローラ242および/またはドライバ162によって実装された複数の動作については、図4から5を参照して説明される。図4は、不揮発性メモリ250から揮発性メモリ260に1つまたは複数のページのコピーを管理する実装された複数の動作(すなわち、ページインオペレーション)を示し、一方で、図5は、揮発性メモリから不揮発性メモリに1つまたは複数のページのコピーを管理する実装された複数の動作(すなわち、ページアウトオペレーション)を示す。
まず、図4を参照すれば、オペレーション410では、アプリケーション160は、オペレーティングシステム140に送信されるページフォルトになるページフォルトをもたらすページを読み取る。オペレーション415では、オペレーティングシステム140は、アプリケーション160からのページフォルト要求を受信し、ページフォルト要求に応答して、アプリケーション160に要求されたページデータ(すなわち、ページイン要求)を不揮発性メモリ250から揮発性メモリ260に移転させるようにドライバ162を呼ぶ(オペレーション420)。オペレーション425では、ドライバ162は、ページ移転要求を受信し、オペレーション430では、ドライバ162は、不揮発性メモリ250からメモリバッファ246にページを移転させるようにコントローラ242をプログラムする。データ要求は、バス235を介してメモリデバイス240内のコントローラ242に転送される。オペレーション435では、ドライバ162は、複数のCPU210内のページ用にキャッシュラインを無効化する。
オペレーション440では、コントローラ242は、ページイン要求を受信し、オペレーション445では、コントローラ242は、不揮発性メモリ250からコントローラ242内の複数のメモリバッファ246に要求されたページデータをコピーする。オペレーション450では、コントローラ242は、ドライバ162に戻される完了状態信号をセットする。オペレーション455では、ドライバ162は、オペレーティングシステム140に渡される状態信号を読み取る。
オペレーション460では、オペレーティングシステム140は、ドライバ162から信号完了を受信し、オペレーション465では、オペレーティングシステム140は、アプリケーション160にページをリリースする。オペレーション470では、アプリケーションは、オペレーティングシステム140がページフォルトを処理するまで待つ。ページがアプリケーションにリリースされたとき、制御がオペレーション470に移り、アプリケーション160は複数のメモリバッファ246からのページデータを読み取る(オペレーション475)。オペレーション480では、コントローラ242は、読み取り要求を受信し、オペレーション485では、コントローラ242は、読み取り要求に応答して、メモリバッファ246から揮発性メモリ260にページを供給してバッファをリリースする。アプリケーションがデータを読み取ったとき、コントローラ242は、揮発性メモリ260にページデータを書き込み(オペレーション455)、キャッシュライン毎にバッファを無効化する。つまり、ページインオペレーションは、不揮発性メモリ260に対するアドレスコンフリクトがないことを確保する。以後の複数のページフォルトオペレーションにおいて、ドライバ162がメモリバッファ246内に使用されていないメモリがないと発見した場合、次にドライバ162は、例えば、揮発性メモリ260に単一メモリラインになるように複数のダミーの上書きを行うことによって、揮発性メモリ260に複数のバッファをフラッシュすることができる。これは、CPU210とバッファ移転との間の不揮発性メモリアクセスにコンフリクトがないことを確保する。オペレーション490では、アプリケーション160は、新しいデータを用いる。
図5を参照すれば、ページアウトオペレーションにおいて、アプリケーションまたはオペレーティングシステム140は、アプリケーション160に使用されべく、揮発性メモリ260のページを利用可能にする必要がある(オペレーション510)。オペレーション515では、オペレーティングシステム140は、ドライバ162に揮発性メモリ260から不揮発性メモリ250にページデータを移動するように要求する。オペレーション520では、ドライバ162は、要求を受信してメモリバッファ246が読み取り動作に利用可能であることを確保するチェックを行う(オペレーション525)。オペレーション530では、ドライバ162は、複数のメモリバッファ246を通じて揮発性メモリ260から不揮発性メモリ250にページのコピーをするようにコントローラ242をプログラムする。
オペレーション535では、ドライバ162は、コントローラ242のメモリバッファ246内の「ダミー」位置に対して複数の一連の読み取り動作を実行する。例として、ドライバ162は、4KBのページに対して複数の64キャッシュライン読み取り動作を実行してよい。コントローラが揮発性メモリ260から不揮発性メモリ250にページをコピーすると同時に、複数の「ダミー」読み取り動作は、CPU210を複数のダミー位置を読み取るようにビジー状態に保持させる。これは、揮発性メモリ260からメモリバッファ246にページを読み取ることと、CPU210が別のアプリケーション用に揮発性メモリ260を読み取ろうとすることとの間の潜在的コンフリクトを回避する。
オペレーション540では、コントローラ242は、ページアウト要求を受信する。オペレーション545では、コントローラ242は、ドライバ162にダミーデータを提供し、オペレーション550では、コントローラ242は、バックグラウンドオペレーションとして、揮発性メモリ260からメモリバッファ246にページデータをコピーする。複数のダミー読み取り動作は、ページデータがコピーされるまで、複数のメモリバッファ246をビジー状態に保持させる。いくつかの実施形態において、コントローラ242は、オペレーション530において実行された全てのダミー読み取り動作について揮発性メモリ260から読み取り動作を実装し、揮発性メモリ260にアクセスする時のコンフリクトを回避する。
オペレーション555では、ドライバ162は、CPU210内のキャッシュメモリからのページを無効化し、オペレーション560では、ドライバ162は、揮発性メモリ260からオペレーティングシステム140にページをリリースする。オペレーション565では、オペレーティングシステム140は、ドライバ162からページデータが揮発性メモリに使用されていないという信号を受信する。
上述のように、いくつかの実施形態において、電子デバイスは、コンピュータシステムとして具現化されてよい。図6は、本発明の実施形態に係るコンピューティングシステム600のブロック図を示す。コンピューティングシステム600は、1つまたは複数の中央処理装置CPU602または相互接続ネットワーク(またはバス)604を介して通信を行う複数のプロセッサを含んでよい。プロセッサ602は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク603経由で通信を行われたデータを処理する)、または複数の他の種類のプロセッサ(縮小命令セットコンピューティング(RISC)プロセッサまたは複合命令セットコンピューティング(CISC)プロセッサを含む)を含んでよい。さらに、プロセッサ602は、単一または複数コア設計を含んでよい。複数コア設計を含むプロセッサ602は、同一の集積回路(IC)ダイ上の複数の異なる種類のプロセッサコアを集積し得る。また、複数コア設計を有するプロセッサ602は、複数の対称的または非対称的マルチプロセッサとして、実装されてよい。一実施形態において、1つまたは複数のプロセッサ602は、図1の複数のプロセッサ102と同一または同様であってよい。例えば、1つまたは複数のプロセッサ602は、図1から3を参照して説明された制御ユニット120を含んでよい。また、図3から5を参照して説明された複数の動作は、システム600の1つまたは複数のコンポーネントによって実行されてよい。
チップセット606はまた、相互接続ネットワーク604と通信を行ってよい。チップセット606は、メモリ制御ハブ(MCH)608を含んでよい。MCH608は、メモリ612(図1のメモリ130と同一または同様であってよい)と通信を行うメモリコントローラ610を含んでよい。メモリ412は、CPU602またはコンピューティングシステム600に含まれる任意の他のデバイスによって実行されてよい、複数の命令のシーケンスを含むデータを格納してよい。本発明の一実施形態において、メモリ612は、ランダムアクセスメモリ(RAM)、動的RAM(DRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)または複数の他の種類のストレージデバイスなど、1つまたは複数の揮発性ストレージ(またはメモリ)デバイスを含んでよい。不揮発性メモリはまた、ハードディスクのように利用されてもよい。複数の追加デバイスは、複数のCPUおよび/または複数のシステムメモリのように、相互接続ネットワーク604を介して通信を行ってよい。
MCH608はまた、ディスプレイデバイス616と通信を行うグラフィックスインタフェース614を含んでよい。本発明の一実施形態において、グラフィックスインタフェース614は、アクセラレーテッドグラフィックスポート(AGP)を介してディスプレイデバイス616と通信を行ってよい。本発明の一実施形態において、(フラットパネルディスプレイのような)ディスプレイ616は、例えば、ビデオメモリまたはシステムメモリのようなストレージデバイスに格納された画像のデジタル表現を、ディスプレイ616によって解読および表示される複数の表示信号に変換する信号コンバータを通じて、グラフィックスインタフェース614と通信を行ってよい。ディスプレイデバイスによって生成される複数の表示信号は、ディスプレイ616によって解読され、次にその上に表示される前に、複数の様々な制御デバイスを渡されてよい。
ハブインタフェース618は、MCH608と入力/出力制御ハブ(ICH)620とが通信を行うことを可能にし得る。ICH620は、コンピューティングシステム600と通信を行うI/Oデバイスにインタフェースを提供してよい。ICH620は、ペリフェラルコンポーネントインターコネクト(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、または複数の他の種類の周辺ブリッジもしくは複数のコントローラのような周辺ブリッジ(またはコントローラ)624を通じてバス622と通信を行ってよい。ブリッジ624は、CPU602と複数の周辺デバイスとの間でデータパスを提供してよい。複数の他の種類の複数のトポロジは利用されてよい。また、複数のバスは、例えば、複数のブリッジ又は複数のコントローラを通じて、ICH620と通信を行ってよい。さらに、本発明の複数の様々な実施形態において、ICH620と通信を行う複数の他の周辺機器は、統合ドライブエレクトロニクス(IDE)、またはスモールコンピュータシステムインタフェース(SCSI)ハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタルビデオインタフェース(DVI))、もしくは複数の他のデバイスを含んでよい。
バス622は、オーディオデバイス626と、1つまたは複数のディスクドライブ628と、ネットワークインタフェースデバイス630(コンピュータネットワーク603と通信を行う)と通信を行ってよい。複数の他のデバイスは、バス622を介して通信を行ってよい。また、本発明のいくつかの実施形態において、(ネットワークインタフェースデバイス630のような)複数の様々なコンポーネントは、MCH608と通信を行ってよい。さらに、本明細書で説明される、プロセッサ602と1つまたは複数の他のコンポーネントは、単一のチップを形成(例えば、システムオンチップ(SoC)を提供)するように組み合わせられてよい。さらに、本発明の複数の他の実施形態において、グラフィックスアクセラレータ616は、MCH608内に含まれてよい。
さらに、コンピューティングシステム600は、揮発性および/または不揮発性メモリ(またはストレージ)を含んでよい。例えば、不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、628)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、光磁気ディスク、または電子データ(例えば、複数の命令を含む)を格納可能な複数の他の種類の不揮発性機械可読メディアのうち1つまたは複数を含んでよい。
図7は、本発明の実施形態に係るコンピューティングシステム700のブロック図を示す。システム700は、1つまたは複数のプロセッサ702‐1から702‐N(概して、本明細書では「複数のプロセッサ702」または「プロセッサ702」と称される)を含んでよい。複数のプロセッサ702は、相互接続ネットワークまたはバス704を介して通信を行ってよい。各プロセッサは、複数の様々なコンポーネントを含んでよい。それらのコンポーネントのうちのいくつかについては、明確にすべく、プロセッサ702‐1のみを参照して説明される。従って、残りのプロセッサ702‐2から702‐Nの各々は、プロセッサ702‐1を参照して説明される複数のコンポーネントと同一または同様なものを含んでよい。
一実施形態において、プロセッサ702‐1は、1つまたは複数のプロセッサコア706‐1から706‐M(本明細書では「複数のコア706」、またはより概しては「コア706」と称される)、共有キャッシュ708、ルータ710、および/またはプロセッサ制御ロジックもしくはユニット720を含んでよい。複数のプロセッサコア706は、単一の集積回路(IC)チップ上に実装されてよい。さらに、チップは、1つまたは複数の共有および/または専用キャッシュ(例えば、キャッシュ708)、複数のバスまたは複数の相互接続(例えば、バスまたは相互接続ネットワーク712)、複数のメモリコントローラまたは複数の他のコンポーネントを含んでよい。
一実施形態において、ルータ710は、プロセッサ702‐1および/またはシステム700の複数の様々なコンポーネントの間で通信を行うように用いられてよい。さらに、プロセッサ702‐1は、1つより多くのルータ710を含んでよい。さらに、多数のルータ710は、プロセッサ702‐1内または外の複数の様々なコンポーネントの間でデータルーティングを可能にするように通信を行ってよい。
共有キャッシュ708は、複数のコア706のようなプロセッサ702‐1の1つまたは複数のコンポーネントによって利用されるデータ(例えば、複数の命令を含む)を格納してよい。例えば、共有キャッシュ708は、プロセッサ702の複数のコンポーネントによるアクセスをより高速にすべく、メモリ714内に格納されるデータをローカルにキャッシュしてよい。一実施形態において、キャッシュ708は、中レベルキャッシュ(例えば、レベル2(L2)、レベル3(L3)、レベル4(L4)または複数の他のレベルのキャッシュ)、ラストレベルキャッシュ(LLC)、および/またはそれらの複数の組み合わせを含んでよい。さらに、プロセッサ702‐1の複数の様々なコンポーネントは、バス(例えば、バス712)、および/またはメモリコントローラもしくはハブを通じて直接に共有キャッシュ708と通信を行ってよい。図7に示されるように、いくつかの実施形態において、複数のコア706のうち1つまたは複数は、レベル1(L1)キャッシュ716‐1(概して、本明細書では「L1キャッシュ716」と称される)を含んでよい。一実施形態において、制御ユニット720は、図2Aのメモリコントローラ222を参照して上述された複数の動作を実装するロジックを含んでよい。
図8は、本発明の実施形態に係るコンピューティングシステムのプロセッサコア706および複数の他のコンポーネントの一部のブロック図を示す。一実施形態において、図8に示される複数の矢印は、コア706を通じた複数の命令のフローの方向を示す。1つまたは複数のプロセッサコア(例えば、プロセッサコア706)は、図7を参照して説明されたもののような単一の集積回路チップ(またはダイ)上に実装されてよい。さらに、チップは、1つまたは複数の、共有および/または専用キャッシュ(例えば、図7のキャッシュ708)、複数の相互接続(例えば、図7の相互接続704および/または712)、複数の制御ユニット、複数のメモリコントローラまたは複数の他のコンポーネントを含んでよい。
図8に示されるように、プロセッサコア706は、コア706による実行を目的とする複数の命令(複数の条件付き分岐を有する複数の命令を含む)をフェッチするフェッチユニット802を含んでよい。複数の命令は、メモリ714のような複数の任意のストレージデバイスからフェッチされてよい。コア706はまた、フェッチされた命令をデコードするデコードユニット804を含んでよい。例えば、デコードユニット804は、フェッチされた命令を複数のuop(複数のマイクロオペレーション)にデコードしてよい。
また、コア706は、スケジューリングユニット806を含んでよい。スケジューリングユニット806は、複数の命令がディスパッチ可能となるまで、例えば、デコードされた命令の全てのソース値が適用可能となるまで、複数のデコードされた命令(例えば、デコードユニット804から受信されたもの)の格納に関連付けられた複数の様々な動作を実行してよい。一実施形態において、スケジューリングユニット806は、複数のデコードされた命令をスケジューリングし、および/またはこれらを実行すべく、実行ユニット808に発し(または、ディスパッチし)てもよい。実行ユニット808は、複数のディスパッチされた命令が(例えば、デコードユニット804によって)デコードされ、(例えば、スケジューリングユニット806によって)ディスパッチされた後、これらを実行してよい。一実施形態において、実行ユニット808は、1つより多くの実行ユニットを含んでよい。実行ユニット808はまた、加算、減算、乗算、および/または除算のような複数の様々な算術演算を実行してよく、1つまたは複数の論理演算ユニット(ALU)を含んでよい。一実施形態において、コプロセッサ(図示せず)は、実行ユニット808と共に複数の様々な算術演算を実行してよい。
さらに、実行ユニット808は、複数の命令をアウトオブオーダで実行してよい。よって、一実施形態において、プロセッサコア706は、アウトオブオーダプロセッサコアであってよい。コア706はまた、リタイアメントユニット810を含んでよい。リタイアメントユニット810は、実行された複数の命令がコミットされた後でこれらをリタイアしてよい。一実施形態において、実行された複数の命令のリタイアは、プロセッサの状態が複数の命令の実行からコミットされること、複数の命令によって用いられる複数の物理レジスタが割り当て解除されることなどをもたらしてよい。
コア706はまた、1つまたは複数のバス(例えば、バス804および/または812)を介して、プロセッサコア706の複数のコンポーネントと(図8を参照して説明された複数のコンポーネントのような)複数の他のコンポーネントとの間の通信を行うことを可能にするバスユニット712を含んでよい。コア706はまた、コア706の複数の様々なコンポーネントによってアクセスされるデータ(例えば、複数の電力消費状態設定に関する複数の値)を格納する1つまたは複数のレジスタ816を含んでよい。
さらに、図7は、制御ユニット720が相互接続712を介してコア706に連結されるものとして示すが、複数の様々な実施形態においては、制御ユニット720は、バス704などを介してコアに連結されるコア706の内部のような他の箇所に配置され得る。
いくつかの実施形態において、本明細書で説明される複数のコンポーネントのうち1つまたは複数は、システムオンチップ(SoC)デバイスとして具現化されてよい。図9は、一実施形態に係るSoCパッケージのブロック図を示す。図9に示めされるように、SoCパッケージ902は、1つまたは複数の中央処理装置(CPU)コア920、1つまたは複数のグラフィックスプロセッサユニット(GPU)コア930、入力/出力(I/O)インタフェース940、およびメモリコントローラ942を含む。SoCパッケージ902の複数の様々なコンポーネントは、本明細書において複数の他の図を参照して説明されるもののような相互接続またはバスに連結されてよい。また、SoCパッケージ902は、本明細書において複数の他の図を参照して説明されるもののような、より多くのまたはより少ない複数のコンポーネントを含んでよい。さらに、SoCパッケージ902の各コンポーネントは、例えば、本明細書において複数の他の図を参照して説明されるような、1つまたは複数の他のコンポーネントを含んでよい。一実施形態において、SoCパッケージ902(およびその複数のコンポーネント)は、例えば、単一の半導体デバイス内にパッケージ化される1つまたは複数の集積回路(IC)ダイ上に提供される。
図9に示めされるように、SoCパッケージ902は、メモリコントローラ942を介して、(本明細書において複数の他の図を参照して説明されるメモリと同様のまたは同一のものであってよい)メモリ960に連結される。一実施形態において、メモリ960(またはその一部)は、SoCパッケージ902上に集積され得る。
I/Oインタフェース940は、例えば、本明細書において複数の他の図を参照して説明されるような相互接続および/またはバスを介して、1つまたは複数のI/Oデバイス970に連結されてよい。I/Oデバイス970は、1つまたは複数のキーボード、マウス、タッチパッド、ディスプレイ、画像/ビデオキャプチャデバイス(カメラまたはカムコーダ/ビデオレコーダなど)、タッチスクリーン、スピーカなどを含んでよい。
図10は、本発明の実施形態に係るポイントツーポイント(PtP)構成において設置されるコンピューティングシステム1000を示す。特に、図10は、複数のプロセッサ、メモリおよび複数の入力/出力デバイスが多数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。
図10に示めされるように、システム1000は、いくつかのプロセッサを含んでよく、明確にすべく、プロセッサ1002および1004の2つのみが示される。プロセッサ1002および1004は、それぞれ、メモリ1010および1012と通信を行うことを可能にするローカルメモリコントローラハブ(MCH)1006および1008を含んでよい。いくつかの実施形態において、MCH1006および1008は、図1のメモリコントローラ120および/またはロジック125を含んでよい。
一実施形態において、プロセッサ1002および1004は、図7を参照して説明された複数のプロセッサ702のうちの1つであってよい。プロセッサ1002および1004は、それぞれ、PtPインタフェース回路1016および1018を用いてポイントツーポイント(PtP)インタフェース1014を介してデータを交換してよい。また、プロセッサ1002および1004は、それぞれ、ポイントツーポイントインタフェース回路1026、1028、1030および1032を用いて、個々のPtPインタフェース1022および1024を介して、チップセット1020とデータを交換してよい。チップセット1020は、さらに、例えば、PtPインタフェース回路1037を用いて、高性能グラフィックスインタフェース1036を介して、高性能グラフィックス回路1034とデータを交換してよい。
図10に示されるように、図1の1つまたは複数のコア106および/またはキャッシュ108は、複数のプロセッサ1004内に配置されてよい。しかし、本発明の複数の他の実施形態は、図10のシステム1000内の複数の他の回路、複数の論理ユニット、または複数のデバイスに存在してよい。さらに、本発明の複数の他の実施形態は、図10に示されるいくつかの回路、論理ユニット、またはデバイス全体に分散されてよい。
チップセット1020は、PtPインタフェース回路1041を用いてバス1040と通信を行ってよい。バス1040は、バスブリッジ1042と複数のI/Oデバイス1043のような、それ自体と通信を行う1つまたは複数のデバイスを含んでよい。バスブリッジ1044は、バス1040を介して、キーボード/マウス1045、複数の通信デバイス1046(コンピュータネットワーク1003と通信を行い得る、複数のモデム、複数のネットワークインタフェースデバイス、または複数の他の通信デバイスなど)、オーディオI/Oデバイス、および/またはデータストレージデバイス1048のような、複数の他のデバイスと通信を行ってよい。データストレージデバイス1048(ハードディスクドライブまたはNANDフラッシュベースソリッドステートドライブであってよい)は、プロセッサ1004によって実行され得るコード1049を格納してよい。
以下の複数の例は、さらなる複数の実施形態に関する。
例1は、揮発性メモリと不揮発性メモリとコントローラとを有するメモリデバイスである。コントローラは、メモリバッファと、アプリケーションからの複数の要求に応答してメモリバッファを介して不揮発性メモリと揮発性メモリとの間でデータを移転させるロジックと、を含み、メモリバッファ内のデータは、アプリケーションにアクセス可能である。
例2において、例1の揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)を任意選択的に含んでよく、不揮発性メモリは、3次元クロスポイントメモリを含む。
例3において、例1から2の何れか1つの主題は、揮発性メモリにバックアップを提供する不揮発性メモリを任意選択的に含むことができる。
例4において、例1から3の何れか1つの主題は、ページイン要求を受信し、ページイン要求に応答して不揮発性メモリからメモリバッファにページデータを移動し、ページデータが利用可能なアプリケーションに信号を提供し、アプリケーションからの読み取り動作に応答してメモリバッファから揮発性メモリにページデータを書き込むロジックを任意選択的に含むことができる。
例5において、例1から4の何れか1つの主題は、複数のキャッシュラインを含むメモリバッファを任意選択的に含むことができ、コントローラは、キャッシュラインが揮発性メモリに書き込まれた場合、メモリバッファ内の複数のキャッシュラインを無効化するロジックをさらに含むことができる。
例6において、例1から5の何れか1つの主題は、ページアウト要求を受信し、ページアウト要求に応答して予め定められたアドレスに対する読み取り動作を受信し、読み取り動作に応答して不揮発性メモリからメモリバッファにページデータを読み取り、不揮発性メモリにページデータを書き込むロジックを任意選択的に含むことができる。
例7において、例1から6の何れか1つの主題は、電力格納を任意選択的に含むことができる。
例8は、オペレーティングシステムおよび少なくとも1つのアプリケーションを実行するプロセッサと、揮発性メモリおよび不揮発性メモリ並びにコントローラを有するメモリデバイスと、少なくとも1つのアプリケーションとメモリデバイスとの間の複数のメモリアクセス動作を管理するドライバとを備える電子デバイスである。コントローラは、メモリバッファと、アプリケーションからの複数の要求に応答してメモリバッファを介して不揮発性メモリと揮発性メモリとの間でデータを移転させるロジックとを有し、メモリバッファ内のデータは、アプリケーションにアクセス可能である。
例9において、例8の揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)を任意選択的に含むことができ、不揮発性メモリは、3次元クロスポイントメモリを含む。
例10において、例8から9の何れか1つの主題は、揮発性メモリにバックアップを提供する不揮発性メモリを任意選択的に含むことができる。
例11において、例8から10の何れか1つの主題は、不揮発性メモリから揮発性メモリにページデータを移動するページイン要求を生成し、ページ用にプロセッサ内の1つまたは複数のキャッシュラインを無効化するロジックを任意選択的に含むことができる。
例12において、例8から11の何れか1つの主題は、ページイン要求を受信し、ページイン要求に応答して不揮発性メモリからメモリバッファにページデータを移動し、ページデータが利用可能なアプリケーションに信号を提供し、アプリケーションからの読み取り動作に応答してメモリバッファから揮発性メモリにページデータを書き込むロジックを任意選択的に含むことができる。
例13において、例8から12の何れか1つの主題は、複数のキャッシュラインを含むメモリバッファと、キャッシュラインが揮発性メモリに書き込まれた場合、メモリバッファ内の複数のキャッシュラインを無効化するロジックとを任意選択的に含むことができる。
例14において、例8から13の何れか1つの主題は、不揮発性メモリから揮発性メモリにページデータを移動するページアウト要求を生成するロジックを任意選択的に含むことができる。
例15において、例8から14の何れか1つの主題は、ページアウト要求を受信し、ページアウト要求に応答して予め定められたアドレスに対する読み取り動作を受信し、読み取り動作に応答して不揮発性メモリからメモリバッファにページデータを読み取り、不揮発性メモリにページデータを書き込むロジックを任意選択的に含むことができる。
例16において、例8から15の何れか1つの主題は、電力格納を任意選択的に含むことができる。
例17は、揮発性メモリおよび不揮発性メモリを含むメモリデバイス用のコントローラである。コントローラは、メモリバッファと、アプリケーションからの複数の要求に応答してメモリバッファを介して不揮発性メモリと揮発性メモリとの間でデータを移転させるロジックとを含み、メモリバッファ内のデータは、アプリケーションにアクセス可能である。
例18において、例17の揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)を任意選択的に含むことができ、不揮発性メモリは、3次元クロスポイントメモリを含む。
例19において、例17から18の何れか1つの主題は、揮発性メモリにバックアップを提供する不揮発性メモリを任意選択的に含むことができる。
例20において、例17から19の何れか1つの主題は、ページイン要求を受信し、ページイン要求に応答して不揮発性メモリからメモリバッファにページデータを移動し、ページデータが利用可能なアプリケーションに信号を提供し、アプリケーションからの読み取り動作に応答してメモリバッファから揮発性メモリにページデータを書き込むロジックを任意選択的に含むことができる。
例21において、例17から20の何れか1つの主題は、複数のキャッシュラインを含むメモリバッファと、キャッシュラインが揮発性メモリに書き込まれた場合、メモリバッファ内の複数のキャッシュラインを無効化するロジックとを任意選択的に含むことができる。
例22において、例17から21の何れか1つの主題は、ページアウト要求を受信し、ページアウト要求に応答して予め定められたアドレスに対する読み取り動作を受信し、読み取り動作に応答して不揮発性メモリからメモリバッファにページデータを読み取り、不揮発性メモリにページデータを書き込むロジックを任意選択的に含むことができる。
例23は、非一時的コンピュータ可読媒体上に格納された複数のロジック命令を備えるコンピュータプログラム製品である。複数のロジック命令は、それら自身が揮発性メモリおよび不揮発性メモリを含むメモリデバイス用のコントローラによって実行された場合、アプリケーションからの複数の要求に応答してメモリバッファを介して不揮発性メモリと揮発性メモリとの間でメモリバッファにおけるアプリケーションにアクセス可能なデータを移転させるロジックをするようにコントローラを構成する。
例24において、例23の主題は、非一時的コンピュータ可読媒体上に格納された複数のロジック命令を任意選択的に含むことができる。複数のロジック命令は、それら自身が揮発性メモリおよび不揮発性メモリを含むメモリデバイス用のコントローラによって実行された場合、ページイン要求を受信し、ページイン要求に応答して不揮発性メモリからメモリバッファにページデータを移動し、ページデータが利用可能なアプリケーションに信号を提供し、アプリケーションからの読み取り動作に応答してメモリバッファから揮発性メモリにページデータを書き込むようにコントローラを構成する。
例25において、例23から24の何れか1つの主題は、複数のキャッシュラインを含むメモリバッファと、非一時的コンピュータ可読媒体上に格納される複数のロジック命令とを任意選択的に含むことができる。複数のロジック命令は、それら自身が揮発性メモリおよび不揮発性メモリを含むメモリデバイス用のコントローラによって実行された場合、キャッシュラインが揮発性メモリに書き込まれたときにはメモリバッファ内の複数のキャッシュラインを無効化するようにコントローラを構成する。
例26において、例23から25の何れか1つの主題は、非一時的コンピュータ可読媒体上に格納される複数のロジック命令を任意選択的に含むことができる。複数のロジック命令は、それら自身が揮発性メモリおよび不揮発性メモリを含むメモリデバイス用のコントローラによって実行された場合、ページアウト要求を受信し、ページアウト要求に応答して予め定められたアドレスに対する読み取り動作を受信し、読み取り動作に応答して不揮発性メモリからメモリバッファにページデータを読み取り、不揮発性メモリにページデータを書き込むようにコントローラを構成する。
本発明の複数の様々な実施形態において、本明細書において説明されている複数の動作は、ハードウェア(例えば、回路)、ソフトウェア、ファームウェア、マイクロコード、またはそれらの複数の組み合わせとして、実装されてよく、例えば、有形の(例えば、非一時的な)機械可読またはコンピュータ可読なメディアを含み、メディアはその上に格納された、本明細書において説明されている処理を実行するコンピュータのプログラムに用いられる複数の命令(または複数のソフトウェア手順)を有する、コンピュータプログラム製品として提供されてよい。また、用語「ロジック」は、例として、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの複数の組み合わせを含んでよい。機械可読メディアは、本明細書において説明されるもののようなストレージデバイスを含んでよい。
本明細書における「一実施形態」または「実施形態」という記載は、実施形態に関連して説明された特定の機能、構造、または特性が、少なくとも1つの実装に含まれてよいことを意味する。本明細書の様々な複数の箇所における「一実施形態において」という表現の出現は、全て同一の実施形態を参照してもよく、しなくてもよい。
また、説明および特許請求の範囲において、「連結」および「接続」という用語は、これらの複数の活用形と共に用いられてよい。本発明のいくつかの実施形態において、「接続」は、2つまたはそれより多くの要素が互いに直接物理的にまたは電気的に接触することを示すべく、用いられてよい。「連結」は、2つまたはそれより多くの要素が直接物理的にまたは電気的に接触することを意味してよい。しかし、「連結」はまた、2つまたはそれより多くの要素は互いに直接に接触しなくてよいが、依然と互いに協調又は相互作用してよいことを意味してもよい。
つまり、本発明の複数の実施形態は、複数の構造的な特徴および/または複数の方法論的な動きに固有の記載で説明されているが、特許請求の範囲に係る主題は、説明された複数の具体的な特徴または複数の動きに限定されなくてよいことを理解されたい。むしろ、複数の具体的な特徴および複数の動きは、特許請求の範囲に係る主題を実施すべく、複数の例示的な形式として開示される。

Claims (22)

  1. 揮発性メモリと、
    不揮発性メモリと、
    コントローラと、
    を備える
    メモリデバイスであって、
    前記コントローラは、
    メモリバッファと、
    アプリケーションからの複数の要求に応答して前記メモリバッファを介して前記不揮発性メモリと前記揮発性メモリとの間でデータを移転させるロジックと、を有し、
    前記メモリバッファ内の前記データは、前記アプリケーションにアクセス可能である、
    メモリデバイス。
  2. 前記揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)を有し、
    前記不揮発性メモリは、3次元クロスポイントメモリを有する、
    請求項1に記載のメモリデバイス。
  3. 前記不揮発性メモリは、前記揮発性メモリにバックアップを提供する、
    請求項1または2に記載のメモリデバイス。
  4. 前記コントローラは、ページイン要求を受信するロジックを有し、
    前記ロジックは、前記ページイン要求に応答して、
    前記不揮発性メモリから前記メモリバッファにページデータを移動し、
    前記ページデータが利用可能な前記アプリケーションに信号を提供し、
    前記アプリケーションからの読み取り動作に応答して、前記メモリバッファから前記揮発性メモリにページデータを書き込む、
    請求項1から3の何れか一項に記載のメモリデバイス。
  5. 前記メモリバッファは、複数のキャッシュラインを含み、
    前記コントローラは、前記キャッシュラインが前記揮発性メモリに書き込まれた場合、前記メモリバッファ内の複数の前記キャッシュラインを無効化するロジックをさらに有する、
    請求項4に記載のメモリデバイス。
  6. 前記コントローラは、
    ページアウト要求を受信するロジックを有し、
    前記ロジックは、前記ページアウト要求に応答して、
    予め定められたアドレスに対する読み取り動作を受信し、
    前記読み取り動作に応答して前記不揮発性メモリから前記メモリバッファにページデータを読み取り、
    前記不揮発性メモリに前記ページデータを書き込む、
    請求項1から5の何れか一項に記載のメモリデバイス。
  7. 電力格納をさらに備える、
    請求項1から6の何れか一項に記載のメモリデバイス。
  8. オペレーティングシステムおよび少なくとも1つのアプリケーションを実行するプロセッサと、
    揮発性メモリ、
    不揮発性メモリ、及び、
    コントローラを有する
    メモリデバイスと、
    前記少なくとも1つのアプリケーションと前記メモリデバイスとの間で複数のメモリアクセス動作を管理するドライバと、
    を備える
    電子デバイスであって、
    前記コントローラは、
    メモリバッファと、
    前記アプリケーションからの複数の要求に応答して前記メモリバッファを介して前記不揮発性メモリと前記揮発性メモリとの間でデータを移転させるロジックと、
    を有し、
    前記メモリバッファ内の前記データは前記アプリケーションにアクセス可能である、
    電子デバイス。
  9. 前記揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)を含み、
    前記不揮発性メモリは、3次元クロスポイントメモリを含む、
    請求項8に記載の電子デバイス。
  10. 前記不揮発性メモリは、前記揮発性メモリにバックアップを提供する、
    請求項8または9に記載の電子デバイス。
  11. 前記ドライバは、ロジックを含み、
    前記ロジックは、
    前記不揮発性メモリから前記揮発性メモリにページデータを移動するページイン要求を生成し、
    前記ページ用に前記プロセッサ内の1つまたは複数のキャッシュラインを無効化する、
    請求項8から10の何れか一項に記載の電子デバイス。
  12. 前記コントローラは、前記ページイン要求を受信するロジックを含み、
    前記ロジックは、前記ページイン要求に応答して、
    前記不揮発性メモリから前記メモリバッファにページデータを移動し、
    前記ページデータが利用可能な前記アプリケーションに信号を提供し、
    前記アプリケーションからの読み取り動作に応答して前記メモリバッファから前記揮発性メモリにページデータを書き込む、
    請求項11に記載の電子デバイス。
  13. 前記メモリバッファは、複数のキャッシュラインを含み、
    前記コントローラは、前記キャッシュラインが前記揮発性メモリに書き込まれた場合、前記メモリバッファ内の複数の前記キャッシュラインを無効化するロジックを含む、
    請求項12に記載の電子デバイス。
  14. 前記ドライバは、ロジックを含み、
    前記ロジックは、
    前記不揮発性メモリから前記揮発性メモリにページデータを移動するページアウト要求を生成する、
    請求項8から10の何れか一項に記載の電子デバイス。
  15. 前記コントローラは、前記ページアウト要求を受信するロジックを含み、
    前記ロジックは、前記ページアウト要求に応答して、
    予め定められたアドレスに対する読み取り動作を受信し、
    前記読み取り動作に応答して、前記不揮発性メモリから前記メモリバッファにページデータを読み取り、
    前記不揮発性メモリに前記ページデータを書き込む、
    請求項14に記載の電子デバイス。
  16. 前記メモリデバイスは、電力格納を備える
    請求項1に記載のメモリデバイス。
  17. 揮発性メモリおよび不揮発性メモリを有するメモリデバイス用のコントローラであって、
    前記コントローラは、
    メモリバッファと
    ロジックとを有し、
    前記ロジックは、アプリケーションからの複数の要求に応答して前記メモリバッファを介して前記不揮発性メモリと前記揮発性メモリとの間でデータを移転させ、
    前記メモリバッファ内の前記データは、前記アプリケーションにアクセス可能である、
    コントローラ。
  18. 前記揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)を含み、
    前記不揮発性メモリは、3次元クロスポイントメモリを含む、
    請求項17に記載のコントローラ。
  19. 前記不揮発性メモリは、前記揮発性メモリにバックアップを提供する、
    請求項17または18に記載のコントローラ。
  20. 前記コントローラは、ページイン要求を受信するロジック
    をさらに含み、
    前記ロジックは、前記ページイン要求に応答して、
    前記不揮発性メモリから前記メモリバッファにページデータを移動し、
    前記ページデータが利用可能な前記アプリケーションに信号を提供し、
    前記アプリケーションからの読み取り動作に応答して前記メモリバッファから前記揮発性メモリにページデータを書き込む、
    請求項17から19の何れか一項に記載のコントローラ。
  21. 前記メモリバッファは、複数のキャッシュラインを含み、
    前記コントローラは、前記キャッシュラインが前記揮発性メモリに書き込まれた場合、前記メモリバッファ内の複数の前記キャッシュラインを無効化するロジック
    をさらに含む
    請求項20に記載のコントローラ。
  22. 前記コントローラは、ページアウト要求を受信するロジックをさらに備え、
    前記ロジックは、前記ページアウト要求に応答して
    予め定められたアドレスに対する読み取り動作を受信し、
    前記読み取り動作に応答して前記不揮発性メモリから前記メモリバッファにページデータを読み取り、
    前記不揮発性メモリに前記ページデータを書き込む、
    請求項17から21の何れか一項に記載のコントローラ。
JP2016521887A 2013-06-27 2014-06-23 ハイブリッドメモリデバイス、メモリデバイスを含む電子デバイス、および、メモリデバイス用のコントローラ Active JP6112594B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/928,694 2013-06-27
US13/928,694 US9129674B2 (en) 2013-06-27 2013-06-27 Hybrid memory device
PCT/US2014/043678 WO2014209891A1 (en) 2013-06-27 2014-06-23 Hybrid memory device

Publications (2)

Publication Number Publication Date
JP2016523411A true JP2016523411A (ja) 2016-08-08
JP6112594B2 JP6112594B2 (ja) 2017-04-12

Family

ID=52115471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016521887A Active JP6112594B2 (ja) 2013-06-27 2014-06-23 ハイブリッドメモリデバイス、メモリデバイスを含む電子デバイス、および、メモリデバイス用のコントローラ

Country Status (9)

Country Link
US (1) US9129674B2 (ja)
EP (1) EP3014623B1 (ja)
JP (1) JP6112594B2 (ja)
KR (1) KR101719092B1 (ja)
CN (1) CN105247617B (ja)
BR (1) BR112015029848B1 (ja)
RU (1) RU2627100C2 (ja)
TW (1) TWI537725B (ja)
WO (1) WO2014209891A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586367B2 (en) 2016-05-03 2023-02-21 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10380022B2 (en) * 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) * 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US9129674B2 (en) 2013-06-27 2015-09-08 Intel Corporation Hybrid memory device
US11182284B2 (en) * 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10248328B2 (en) * 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
EP3066570A4 (en) 2013-11-07 2017-08-02 Netlist, Inc. Hybrid memory module and system and method of operating the same
US20150347151A1 (en) * 2014-05-28 2015-12-03 Diablo Technologies Inc. System and method for booting from a non-volatile memory
CN106155926B (zh) * 2015-04-09 2019-11-26 澜起科技股份有限公司 存储器及存储器的数据交互方法
WO2016171934A1 (en) 2015-04-20 2016-10-27 Netlist, Inc. Memory module and system and method of operation
US10573385B2 (en) 2015-05-28 2020-02-25 Intel Corporation Ferroelectric based memory cell with non-volatile retention
US9799402B2 (en) 2015-06-08 2017-10-24 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof
US10078448B2 (en) 2015-07-08 2018-09-18 Samsung Electronics Co., Ltd. Electronic devices and memory management methods thereof
US10725689B2 (en) 2015-08-31 2020-07-28 Hewlett Packard Enterprise Development Lp Physical memory region backup of a volatile memory to a non-volatile memory
US10303372B2 (en) 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
WO2018067168A1 (en) * 2016-10-07 2018-04-12 Hewlett-Packard Development Company, L.P. Hybrid memory devices
KR20180078512A (ko) * 2016-12-30 2018-07-10 삼성전자주식회사 반도체 장치
US20180239725A1 (en) * 2017-02-17 2018-08-23 Intel Corporation Persistent Remote Direct Memory Access
US11175853B2 (en) * 2017-05-09 2021-11-16 Samsung Electronics Co., Ltd. Systems and methods for write and flush support in hybrid memory
KR102427323B1 (ko) * 2017-11-08 2022-08-01 삼성전자주식회사 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
US10705963B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
TW202014898A (zh) 2018-10-04 2020-04-16 宏碁股份有限公司 電腦系統、其遊戲載入方法及電腦程式產品
US11537521B2 (en) 2019-06-05 2022-12-27 Samsung Electronics Co., Ltd. Non-volatile dual inline memory module (NVDIMM) for supporting dram cache mode and operation method of NVDIMM
CN113050874A (zh) * 2019-12-26 2021-06-29 华为技术有限公司 一种内存设置方法以及装置
US11954358B2 (en) * 2020-06-23 2024-04-09 Micron Technology, Inc. Cache management in a memory subsystem

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62224845A (ja) * 1986-03-26 1987-10-02 Hitachi Ltd 仮想記憶方式
JPH04195442A (ja) * 1990-11-28 1992-07-15 Fujitsu Ltd アドレス変換機構を利用したメモリ管理方式
JPH07230411A (ja) * 1994-02-18 1995-08-29 Fujitsu Ltd フラッシュメモリカード装置
JP2007188499A (ja) * 2006-01-13 2007-07-26 Samsung Electronics Co Ltd デマンドページング技法を適用したシステムでページ置換実行時間を短縮させる方法および装置
JP2009104687A (ja) * 2007-10-22 2009-05-14 Fujitsu Ltd 記憶装置及び制御回路
JP2009540431A (ja) * 2006-06-07 2009-11-19 マイクロソフト コーポレーション 1つのインターフェースを有するハイブリッド・メモリ・デバイス

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000251035A (ja) 1999-02-26 2000-09-14 Hitachi Ltd メモリカード
JP4211254B2 (ja) * 2001-12-04 2009-01-21 関西電力株式会社 固体酸化物形燃料電池
US20060294295A1 (en) * 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
KR101197556B1 (ko) 2006-01-09 2012-11-09 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100699893B1 (ko) * 2006-01-23 2007-03-28 삼성전자주식회사 하이브리드 디스크 드라이브 및 하이브리드 디스크드라이브의 데이터 제어방법
US7564722B2 (en) 2007-01-22 2009-07-21 Micron Technology, Inc. Memory system and method having volatile and non-volatile memory devices at same hierarchical level
US7855916B2 (en) 2007-10-24 2010-12-21 Rao G R Mohan Nonvolatile memory systems with embedded fast read and write memories
US8041895B2 (en) * 2008-01-28 2011-10-18 Spansion Llc Translation table coherency mecahanism using cache way and set index write buffers
US8560761B2 (en) * 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
JP5085446B2 (ja) * 2008-07-14 2012-11-28 株式会社東芝 三次元メモリデバイス
KR101547326B1 (ko) * 2008-12-04 2015-08-26 삼성전자주식회사 트랜지스터 및 그 제조방법
KR101715048B1 (ko) * 2010-09-13 2017-03-13 삼성전자주식회사 부스팅 전하 누설을 감소시키기 위한 메모리 장치 및 이를 포함하는 시스템
US8567475B2 (en) * 2011-05-04 2013-10-29 Kenneth Eugene Boone Overhead gate systems
US9129674B2 (en) 2013-06-27 2015-09-08 Intel Corporation Hybrid memory device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62224845A (ja) * 1986-03-26 1987-10-02 Hitachi Ltd 仮想記憶方式
JPH04195442A (ja) * 1990-11-28 1992-07-15 Fujitsu Ltd アドレス変換機構を利用したメモリ管理方式
JPH07230411A (ja) * 1994-02-18 1995-08-29 Fujitsu Ltd フラッシュメモリカード装置
JP2007188499A (ja) * 2006-01-13 2007-07-26 Samsung Electronics Co Ltd デマンドページング技法を適用したシステムでページ置換実行時間を短縮させる方法および装置
JP2009540431A (ja) * 2006-06-07 2009-11-19 マイクロソフト コーポレーション 1つのインターフェースを有するハイブリッド・メモリ・デバイス
JP2009104687A (ja) * 2007-10-22 2009-05-14 Fujitsu Ltd 記憶装置及び制御回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586367B2 (en) 2016-05-03 2023-02-21 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions

Also Published As

Publication number Publication date
TWI537725B (zh) 2016-06-11
BR112015029848B1 (pt) 2022-12-13
EP3014623B1 (en) 2019-03-13
EP3014623A4 (en) 2017-03-01
KR20150140361A (ko) 2015-12-15
WO2014209891A1 (en) 2014-12-31
BR112015029848A2 (pt) 2017-07-25
CN105247617A (zh) 2016-01-13
RU2015151127A (ru) 2017-05-31
CN105247617B (zh) 2020-06-12
EP3014623A1 (en) 2016-05-04
JP6112594B2 (ja) 2017-04-12
US9129674B2 (en) 2015-09-08
US20150003175A1 (en) 2015-01-01
BR112015029848A8 (pt) 2019-12-24
KR101719092B1 (ko) 2017-04-04
RU2627100C2 (ru) 2017-08-03
TW201508483A (zh) 2015-03-01

Similar Documents

Publication Publication Date Title
JP6112594B2 (ja) ハイブリッドメモリデバイス、メモリデバイスを含む電子デバイス、および、メモリデバイス用のコントローラ
KR102500661B1 (ko) 다중 레벨 셀 모드 비휘발성 메모리를 위한 비용 최적화된 단일 레벨 셀 모드 비휘발성 메모리
US10296217B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US9250999B1 (en) Non-volatile random access memory in computer primary memory
JP6373559B2 (ja) メモリ装置及びメモリ装置の動作方法
US10956323B2 (en) NVDIMM emulation using a host memory buffer
EP3161622B1 (en) Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology
CN113448504A (zh) 具有用于实现内部固态驱动器操作的外部软件执行的固态驱动器
JP6231194B2 (ja) 電子デバイス、メモリコントローラ、装置
US20190042415A1 (en) Storage model for a computer system having persistent system memory
JP2018152112A (ja) メモリ装置及びメモリ装置の動作方法
EP4060505A1 (en) Techniques for near data acceleration for a multi-core architecture
US20180004657A1 (en) Data storage in a mobile device with embedded mass storage device
KR102518010B1 (ko) 휘발성 메모리에 대한 극성 기반 데이터 트랜스퍼 기능
US20170153994A1 (en) Mass storage region with ram-disk access and dma access

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161228

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: 20170214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170308

R150 Certificate of patent or registration of utility model

Ref document number: 6112594

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250