JP2018022497A - 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 - Google Patents

不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 Download PDF

Info

Publication number
JP2018022497A
JP2018022497A JP2017155752A JP2017155752A JP2018022497A JP 2018022497 A JP2018022497 A JP 2018022497A JP 2017155752 A JP2017155752 A JP 2017155752A JP 2017155752 A JP2017155752 A JP 2017155752A JP 2018022497 A JP2018022497 A JP 2018022497A
Authority
JP
Japan
Prior art keywords
memory
data
host device
memory module
command
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
JP2017155752A
Other languages
English (en)
Other versions
JP6442009B2 (ja
Inventor
イー.ミュッリ キモ
J Mylly Kimmo
イー.ミュッリ キモ
イー.クリント ヤニ
J Klint Jani
イー.クリント ヤニ
ヒュボネン ヤニ
Hyvoenen Jani
ヒュボネン ヤニ
ヒル タピオ
Hill Tapio
ヒル タピオ
ビーマロ ユッカ−ペッカ
Vihmalo Jukka-Pekka
ビーマロ ユッカ−ペッカ
フロマン マッティ
Matti Floman
フロマン マッティ
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.)
Memory Technologies LLC
Original Assignee
Memory Technologies LLC
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 Memory Technologies LLC filed Critical Memory Technologies LLC
Publication of JP2018022497A publication Critical patent/JP2018022497A/ja
Application granted granted Critical
Publication of JP6442009B2 publication Critical patent/JP6442009B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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/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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7202Allocation control and policies
    • 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
    • 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/7206Reconfiguration of flash memory system
    • 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)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法。【解決手段】ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリに書き込む、イニシエータから発せられるコマンドを、前記ホスト装置に連結した前記不揮発性大容量メモリに対応付けられたコントローラで受信すること、前記ホスト装置のメモリに現在常駐するデータを少なくとも前記不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、ならびに、前記不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことを前記イニシエータに肯定応答すること、を含む方法。および、この方法を実行するように構成された装置。【選択図】図7

Description

本発明の例示的かつ非限定的な実施形態は、概ね、メモリ・ストレージ・システム、方法、デバイス、およびコンピュータ・プログラムに関し、より詳しくは、大容量メモリ・デバイス、例えば不揮発性のフラッシュ・メモリを含む大容量メモリ装置に関する。
このセクションは、特許請求の範囲に記載されている本発明の背景または状況を提供することを意図している。本明細書における説明には、追求し得る概念が含まれると思われるが、必ずしも以前に着想、実現、または説明されたものであるとは限らない。したがって、本明細書中で他に示されない限り、このセクションで説明されることが本明細書における説明や請求の範囲に対する従来技術ではなく、このセクションに包含されることによって従来技術であると認められるものではない。
本明細書および/または図面に見出されると思われる以下の略語を、以下のとおり定義する。
ASIC 特定用途向け集積回路
CPU 中央処理装置
DMA ダイレクト・メモリ・アクセス
eMMC 組込み型マルチメディア・カード
exFAT 拡張ファイル・アロケーション・テーブル
HW ハードウェア
JEDEC 電子素子技術連合評議会
LBA 論理ブロック・アドレス
MMC マルチメディア・カード
MRAM 磁気ランダム・アクセス・メモリ
RAM ランダム・アクセス・メモリ
SCSI 小型コンピュータ・システム・インタフェース
SD セキュア・デジタル
SW ソフトウェア
UFS ユニバーサル・フラッシュ・ストレージ
現在、様々なタイプのフラッシュ・ベースの大容量メモリが存在している。大容量メモリの基本的な前提は、フラッシュ技術の複雑さをホスト・システムから見えないようにするeMMC等の技術は一例である。マネージドNANDタイプのメモリは、例えばeMMC、SSD、UFS、またはマイクロSDである。
図1Aは、『JEDEC規格、組込み型マルチメディア・カード(eMMC)製品規格、大容量(JEDEC Standard, Embedded MultiMediaCard(eMMC)Product Standard, High Capacity)、JESD84−A42』(2007年6月、JEDECソリッドステート技術協会(JEDEC Solid State Technology Association)の図2を転載したもので、eMMCの機能的ブロック図を示す。JEDEC eMMCは、フラッシュ・メモリ自体に加えて、MMC通信プロトコルを管理するインテリジェントなオンボード・コントローラを有している。コントローラは、さらに論理ブロック割付けおよびウェア・レベリング等のブロック管理機能を扱う。インタフェースにはクロック(CLK)入力が含まれる。さらに含まれるものはコマンド(CMD)であり、これはデバイスの初期化およびコマンドの転送に使用される双方向コマンド・チャンネルである。コマンドは、バス・マスタからデバイスへ送られ、このデバイスからのレスポンスがホストへ送られる。さらに、双方向データ・バス(DAT[7:0])が含まれる。DAT信号はプッシュプル・モードで動作する。デフォルトでは、電源投入またはリセットの後、DAT0のみがデータ転送に使用される。メモリ・コントローラは、DAT [3:0](4ビット・モード)またはDAT [7:0]( 8ビットモード)のいずれかを使用して、データ転送のためのより広いデータ・バスを構成することができる。
フラッシュ・メモリ・コントローラ構成の非限定的一例は、『SD / MMCのフラッシュメモリカード用のNAND型フラッシュ・メモリ・コントローラ(A NAND Flash Memory Controller for SD/MMC Flash Memory Card)』(チュアン−シェン・リン(Chuan−Sheng Lin)およびラン−ロン・ダン(Lan−Rong Dung)、 IEEEトランザクション・オブ・マグネティックス(IEEE Transactions of Magnetics))、第43巻第2号、2007年2月、933−935ページ(以下、Linらという)に記載されている。図1Bは、Linらの図1を転載したものであり、SD/MMCカード用のNANDフラッシュ・コントローラ・アーキテクチャの全体的なブロック図を示す。図示された特定のコントローラは、コード・バンキング・メカニズムと連動して、フラッシュ・メモリのランダム・ビット誤りを訂正するために設計されたwビット・パラレルボーズ・チョドーリ・オッケンジェム(Bose−Chaudhuri−Hocquengham)(BCH)誤り訂正コード(ECC)をたまたま使用している。
米国特許出願第12/455,763号 US2010/0312947 A1
『JEDEC規格、組込み型マルチメディア・カード(eMMC)製品規格、大容量(JEDEC Standard, Embedded MultiMediaCard(eMMC)Product Standard, High Capacity)、JESD84−A42』(2007年6月、JEDECソリッドステート技術協会(JEDEC Solid State Technology Association) 『SD / MMCのフラッシュメモリカード用のNAND型フラッシュ・メモリ・コントローラ(A NAND Flash Memory Controller for SD/MMC Flash Memory Card)』(チュアン−シェン・リン(Chuan−Sheng Lin)およびラン−ロン・ダン(Lan−Rong Dung)、 IEEEトランザクション・オブ・マグネティックス(IEEE Transactions of Magnetics))、第43巻第2号、2007年2月、933−935ページ
本発明の一態様では、本発明の例示的な実施形態は方法を提供するもので、該方法は、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリに書き込む、イニシエータから発せられるコマンドを、ホスト装置に連結した不揮発性大容量メモリに対応付けられたコントローラで受信すること、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答すること、を含む。
本発明の別の態様において、本発明の例示的実施形態は装置を提供するもので、該装置は、ホスト装置に結合した不揮発性メモリ・モジュールに対応付けられたコントローラと、不揮発性大容量メモリ・モジュールに対するインタフェースとを有する。コントローラは、イニシエータにより発せられる、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリ・モジュールに書き込むコマンドを、処理するように構成可能である。さらに、コントローラは、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させ、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答するように、構成可能である。
本発明の別の態様において、本発明の例示的実施形態は方法を提供するもので、該方法は、少なくとも1つのデータ処理装置とダイナミック・ランダム・アクセス・メモリから構成される少なくとも1つのメモリとを有するデータ処理システムを提供すること、および、メモリ内で基本メモリ動作を自律的に実行すること、を含む。
本発明のさらに別の態様において、本発明の例示的実施形態は、メモリ・モジュールを提供するもので、該メモリ・モジュールは、コントローラと、コントローラによって読み書き可能な不揮発性大容量メモリと、メモリ・モジュールをホスト装置に接続するためのインタフェースとを有する。コントローラは、イニシエータから発せられる、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリ・モジュールに書き込むコマンドを、受信するように構成可能である。さらに、コントローラは、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させることを開始させ、不揮発性大容量メモリにデータを書き込むコマンドが実行されたことをイニシエータに肯定応答するように、構成可能である。
添付された図面において、
『JEDEC規格、組み込み型マルチメディア・カード(eMMC)製品規格、大容量(JEDEC Standard, Embedded MultiMediaCard (eMMC) Product Standard, High Capacity)、JESD84−A42』(2007年6月、JEDECソリッドステート技術協会(JEDEC Solid State Technology Association)の図2を転載したものであり、eMMCの機能的ブロック図を示す。 Linらの図1を転載したものであり、SD/MMCカード用のNANDフラッシュ・コントローラ・アーキテクチャの全体的なブロック図の一例を示す。 大容量記憶メモリ・デバイスが接続されているホスト装置の簡略ブロック図であり、本発明の例示的実施形態を説明する際に有用である。 米国特許出願第12/455,763号に記載された発明の一実施形態を説明する信号/メッセージのフロー図であり、図2の大容量記憶メモリ・デバイスはホスト装置のRAMを割り当て、使用、および割当解除することができる。 米国特許出願第12/455,763号に記載された発明の別の実施形態を説明する信号/メッセージのフロー図であり、図2の大容量記憶メモリ・デバイスは内蔵ファイル・システムを有する。 集合的に図5と呼ばれ、本発明の実施形態に基づく図2のホスト装置および大容量記憶メモリ・デバイスの一実施形態を示す。 集合的に図5と呼ばれ、本発明の実施形態に基づく図2のホスト装置および大容量記憶メモリ・デバイスの一実施形態を示す。 集合的に図5と呼ばれ、本発明の実施形態に基づく図2のホスト装置および大容量記憶メモリ・デバイスの一実施形態を示す。 無線通信装置として具現化された場合おけるホスト装置の1つの例示的実施形態のブロック図を示す。 本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。 さらに本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。
本発明の例示的実施形態に関する以下の説明にとって興味深いのは、本発明の譲受人に譲渡された米国特許出願第12/455,763号(出願日2009年6月4日)『ホスト・システムRAMを大容量メモリRAMと共有するための装置および方法(Apparatus and Method to Share Host System RAM with Mass Storage Memory RAM)』オリイ・ルウカイネン(Olli Luukkainen)、キモ・マイリ(Kimmo Mylly)、およびジャニ・ハイホネン(Jani Hyvonen) (US2010/0312947 A1)であり、この文献を本明細書中に援用する。本発明の例示的実施形態について詳細に説明する前に、本発明の譲受人に譲渡された米国特許出願第12/455,763号の記載の少なくとも一部を再検討することが有用であろう。
上述のように、現在、ほとんどの大容量記憶メモリはLBAベースのアクセスを提供するもので、例えばeMMCや異なるタイプの外部メモリ・カード(SD等)である。しかし、それはまた、ファイル・システム(FS)SW全体が大容量記憶メモリ・デバイスに組み込まれている場合もある。
大容量記憶メモリが移動無線通信装置等、高容量のコンジューマ・デバイスで用いられる場合、1つの重要な検討事項はコストであり、またこのコストに影響を与えるものが大容量記憶メモリ・デバイスそれ自体のRAMの量である。
別の重要な検討事項は、性能である。総合的な性能は、多くの要因に依存する。例えば、長い(時間のかかる)動作(具体的には、大容量記憶メモリ・デバイスがファイル・システムSW全体を含んでいる場合)、相当な量のRAMを大容量記憶メモリ・デバイスに持たせることに利点があるだろう。しかし、このことはコスト面でマイナスの影響を与えることになり得る。
システム・コンテクスト(メタデータ)を大容量記憶メモリ・デバイスのフラッシュ・メモリに格納する場合も考えられる。しかし、このアプローチには、いくつかの関連する欠点がある。例えば、システム・コンテクスト(メタデータ)を大容量記憶メモリ・デバイスに対して繰り返し書き込むことは、大容量記憶メモリ・デバイスの使用寿命に影響を与え得る疲労の問題を引き起こす。さらに、フラッシュ・メモリにデータを書くことは比較的遅いプロセスになり得る。
別の重要な検討事項は電力効率である。良好なパワー効率を提供するために、必要とされない場合に大容量メモリは、好ましくはシャットダウン(電源オフ)される(このデバイスの内部RAMも好ましくは同様にシャットダウンすることも意味している)。しかし、そしてRAMが本来揮発性であると仮定すると、RAMに格納されていたデータが何であれ、RAMから電力が取り除かれた場合にこのデータは消失する。次いで、電源投入後の再初期化を実行するために、必要なすべての情報(例えば、論理物理間マッピング情報および/またはファイル・システム構造)が復元される必要がある。LBA大容量記憶メモリの完全な再初期化は、実質的な(かつユーザが気付くことが可能な)時間(例えば、SDカードで最大1秒)が必要であり、ファイル・システム全体の初期化(ファイル・システムが大容量メモリにある場合)がさらに長くかかると思われる。したがって、電源切断/電源投入のサイクルに係る内部デバイス・コンテキストを保持することが望ましい。
図2は、マスストレージメモリ・バス(MSMB)18を介して大容量メモリ20に接続されたホスト・システムまたはデバイス10の簡略ブロック図である。MSMB18は、MMCなどの任意の適当な大容量メモリ・インターフェース規格(例えば、非限定的な2つの例として、MMCまたはUFS)と互換性があってもよい。MSMB18は、eMMCの実施形態に関する図1Aに示すような信号線を有してもよい。ホスト装置10は、格納されたプログラム命令に従って動作するCPU12として、少なくとも1つのコントローラを有する。プログラム命令は、RAM14または別のメモリもしくは複数の別のメモリに格納されてもよい。CPU12には、少なくとも1つの内部バス17を介して、RAM14およびMSMBインタフェース(I/F)16が接続されている。MSMBインタフェース16は、メモリ・コントローラ(MC)を有してもよく、またはCPU12に関連付けられたMCユニットと連結されてもよい。ホスト装置10は、いくつかの非限定的な例として、コンピュータ、携帯電話、デジタル・カメラ、ゲーム機、またはPDAであってもよい。留意すべき点は、RAM14が半導体メモリまたはディスク・ベースのメモリ等の任意の読出し/書込みメモリまたはメモリ・デバイスであってもよいことである。
大容量メモリ20は、マイクロコントローラ、または簡単に言えばコントローラ22を有し、該コントローラ22が少なくとも一つの内部バス27を介して揮発性RAM24、不揮発性大容量メモリ26(例えば、マルチギガバイトのフラッシュ・メモリ型大容量記憶装置)、およびMSMBインタフェース(I/F)28に接続される。コントローラ22は、格納されたプログラム命令に従って動作する。プログラム命令は、RAM24もしくはROM、または大容量メモリ26に格納されてもよい。大容量メモリ20は、非限定的な例として、MMC、eMMC、またはSDデバイスとして具現化され、ホスト装置10の外側の(接続された)もの、またはホスト装置10内に設置されたものであってもよい。留意すべき点は、いくつかの実施形態において、大容量メモリ26がファイル・システム(FS)26Aを格納する場合もある点である。この場合、次いで、RAM24は、ビットマップ、ファイル・アロケーション・テーブル・データ、および(または)他のFSに関連付けられた情報から構成される1つ以上のデータ構造のような、FS関連メタデータ24Aを格納してもよい。
本発明の譲受人に譲渡された米国特許出願第12/455,763号の実施形態は、ホスト装置10のRAM14を大容量記憶メモリ・デバイス20と共有する技術を提供している。ホスト装置10(例えば、モバイル・コンピュータ、携帯電話、デジタル・カメラ、ゲーム機、PDA、その他)がRAM14を割り当ておよび割当解除を行う能力を有すると仮定することができる。RAM14の割り当ては動的に行われてもよく、または静的に行われてもよい。RAMの一部の割り当ては、ホスト装置10またはホスト装置10の主導で受け取られた要求に応じて行われてもよい。
本発明の譲受人に譲渡された米国特許出願第12/455,763号の実施形態では、大容量記憶メモリ20が自己のRAM24空間を拡張する必要がある場合および/または大容量記憶メモリ20が不揮発性RAM(その内容が大容量記憶メモリ20の電源切断の際に消失しない)を必要とする場合に、大容量メモリ20(MSMB18を介してホストCPU12に結合)にRAM14が割り当てられる。大容量記憶メモリ20もまた、ホスト装置10内の割り当てられたRAM14を読み出し/書き込み(R/W)することができる。割り当て/割当解除およびR/Wアクセス方法を、適当な大容量メモリ・プロトコルを介して大容量記憶メモリ20との通信に利用されるコマンド・セットを拡張することで、実装することができる。
本発明の譲受人に譲渡された米国特許出願第12/455,763号に記載された発明の特定の実施形態によれば、大容量記憶メモリ・デバイス20には、RAM14内での空間の割り当てを開始させるためのホスト装置10に対するメッセージを中断/送信する機構が設けられている。割込み/メッセージは、MSMB18上で送られ、現在の命令セットに対する拡張として見なされてもよい。図3を参照すると、割当てメモリ・コマンドが動作3−1の過程で送られる。割当て要求が続いて起こる場合(動作3−2中に示される)、コントローラ22はホスト装置10のRAM14により自己のRAM24を拡張することが可能になる。大容量記憶メモリ・デバイス20は、例えば、RAMの書込み(WRITE)コマンドを用いて大きなテーブルをRAM14に格納してもよく、または、RAMの読み出し(READ)コマンドを用いてホスト装置RAM14からのデータをフェッチしてもよい。読出しまたは書込み動作は、インタリーブされた動作3−3、3−4、3−5、3−6、3−(N−1)、3Nとして示される。大容量記憶メモリ・デバイス20がRAM14による動作を完了した場合、ホスト10のRAMメモリが割当解除になることを要求する別のコマンドを用いて、ホスト装置のRAM14を解放してもよい(動作3−(N+1))。
図4は、本発明の譲受人に譲渡された米国特許出願第12/455,763号に記載された、さらなる例示的実施形態を示すもので、この実施形態では図2に示すFS26A等の内蔵ファイル・システムを持つ大容量メモリ26のためにホスト・システムのRAM14を使用する。第一に、ホスト・システム10は遮断(SHUTDOWN)コマンドを大容量記憶メモリ・デバイス20に送る(動作4−1)。次に、大容量記憶メモリ・デバイス20がホスト10からのRAM14を割り当て、その後に重要な「静的」ファイル・システム関連データ(メタデータ24A)の全てをホストRAM14(動作4−2)にロードする(RAM書込みコマンドを使用して格納する)。このコンテキスト中の「静的」データは、例えば、exFATまたはext3ファイル・システム内の割当てビットマップのような様々なビットマップであってもよい。このデータは、ホスト装置のCPU12(コントローラ)によって処理(例えば、ソート、配置、およびフィルタリングの少なくとも1つがなされた)ものであってもよく、ならびに大容量メモリ26の多くのセクタからのデータを含むものであってもよい。その後、大容量記憶メモリ・デバイス20は電源遮断OKの命令を送ってもよい(動作4−3)。ホスト10は、大容量記憶メモリ・デバイス20から電力を取り除くことができ、この大容量記憶メモリ・デバイス20がMSMB18から物理的に取り除かれてもよい。大容量記憶メモリ・デバイス20の再初期化(動作4−4、4−5、4−6)は、ホスト装置10が大容量記憶メモリ・デバイス20から、または大容量記憶メモリ・デバイス20へ、特定のデータを得ること/入力することが必要である場合に、実行される。大容量記憶メモリ26(およびファイル・システム26A)の再初期化を、RAM14からソート/配置/フィルタリングされた読出しデータを用いることによって、促進してもよい。再初期化の動作が完了した場合、大容量記憶メモリ・デバイス20はホスト装置10内の使用済みRAM14を割当解除してもよく、またはRAM14を割当解除しなくてもよく、それによって大容量記憶メモリ・デバイス20により将来使用されるRAM空間が確保される。
ホストRAM14の割り当てがいくつかの実施形態で異なった形で生じてもよい。例えば、ホスト装置10は動的にRAM14を割り当て、この割り当てられたRAMに対する「ポインタ」を大容量記憶メモリ・デバイス20へ渡してもよい。次に、割り当てられたホストRAM14をどのように利用するかは、大容量記憶メモリ・デバイス20のコントローラ22次第である。留意すべき点は、この実施形態において、大容量記憶メモリ・デバイス20からの明示的な割り当て要求がホスト装置10へ送信されなくてもよいことである。その代わりに、ホスト装置10は、それ自身のイニシアチブにより、例えばそれが最初に大容量記憶メモリ・デバイス20の存在を検出した際に、RAM14の一部を割り当ててもよい。もちろん、初期の割当てがコントローラ22の要求に十分ではない場合、大容量記憶メモリ・デバイス20とホスト装置10との間のシグナリングを用いて、割当てRAM14の大きさを変えてもよい。RAM14割当ての別の例として、RAM14の一部を静的な方法でホスト10により割り当ててもよく、その後、大容量記憶メモリ・デバイス20を該RAM14の同一部分を、RAM24の拡張を必要とするたびにそのまま用いてもよい。この場合、大容量記憶メモリ・デバイス20は、既に、割り当てRAM14の位置/大きさについての知識を持っていてもよく、ポインタをホスト装置10から送信する必要はない。
留意すべき点は、大容量記憶メモリ・デバイス20がホスト・メモリの割当てを受信して揮発性RAM24の内容を格納することが典型的であり得る一方で、一般に、この割り当ては大容量記憶メモリ・デバイス20内に含まれる任意の読出し/書込みメモリのデータを格納するためのものであってもよいことである。
本発明の譲受人に譲渡された米国特許出願第12/455,763号に記載された発明の種々の非限定的かつ例示的実施形態の概観を提供することで、本発明の例示的実施形態が作られる。
マネージドNANDメモリ(例えばeMMC、SSD、UFS、マイクロSD)では、メモリ・コントローラ(例えば、図2に示されるコントローラ22)は、不良ブロック管理およびウェア・レベリングのようなフラッシュ管理機能を管理する。典型的な低価格の実装では、マネージドNANDに小さな入出力(10)バッファSRAMがあるだけである。SSD等の高額なマネージドNANDのコントローラに実装する場合、数十ないし数百メガバイトのディスクリートDRAMがキャッシュとして存在してもよい。今後、MRAM等、いくつかの新しい技術が非常に高速な不揮発性キャッシュとして役立つと考えられる。
現代のマルチタスク・モバイル装置の環境では、同時に大容量ストレージに対して、キューされる数多くの異なるイニシエータからの様々な種類のアクセスが存在してもよい。eMMCの場合では、eMMCデバイスが一度に単一のスレッドのみを扱うことができるため、待機アクセスは1つずつ対応されると思われる。UFSの場合では、UFSデバイス・キューにアクセス/コマンドを送ることが可能である。しかし、コマンドをキューに入れることができるにもかかわらず、必ずしも、キューイングされたアクセスに関連したデータの全てを直ちに収容するためのUFSデバイス(特にコスト最適化モデルにおいて)に十分なリソースがあるとは限らない。
上記の、本発明の譲受人に譲渡された米国特許出願第12/455,763号は、大容量記憶メモリ20がシステムDRAM 14への読出し/書込みアクセスを備えるモデルを提供する。この概念は、本発明の例示的実施形態によって拡張され、論理的(ポインタの使用により)または物理的に、大容量記憶メモリ20がシステムDRAM内にデータを移動することを可能にする。実際の移動がDRAM14内に生じたり、またはデータがシステムDRAMバス17(例えば、システムDRAM14と大容量メモリ・ホスト・コントローラ13DMAバッファとの間)上を往復移動する可能性がある。図5に示され、かつ以下に詳細に説明される大容量メモリ・ホスト・コントローラ13は、この点に関して、DMAマスタとして機能すると考えられるので、この目的上それ自身の関連DMAデータ・バッファを有することができる。
前述の特徴を、いくつかの実施形態の使用を介して実現することができる。
第1の実施形態では、システムDRAM14内の個別の物理アドレス空間が大容量記憶メモリ20用に確保され、または、システムDRAM14が論理アドレス空間で動作する場合、論理空間が確保される。大容量記憶メモリ(例えば、UFS大容量記憶メモリ20)は、このアドレス空間を自由に利用することができ、割当て/割当解除機能および他の機能等のアドレス空間の管理機能を担う。
図2を参照して説明されるこれらの構成要素がそれに応じて番号付けされている図5を参照することができる。図5A、5B、および5Cでは、大容量メモリ・モジュール20(非限定的実施形態においてUFSメモリ・モジュールとして説明)によって使用されるために、システムDRAM14の一部分14Gが割り当てられている。ホスト装置10は、CPU12として具現化され得るアプリケーション・プロセッサを有する。このアプリケーション・プロセッサ12とともに含まれるか、またはそれに連結されているものが、DRAMコントローラ11であってもよい。さらに存在するものが上記の大容量メモリ・モジュール(例えばUFS)ホスト・コントローラ13である。ホスト・コントローラ13は、CPU12として具現化し得、または個別のデバイスとして具現化し得る。図5Bは、システムDRAM14がオペレーティング・システム(OS)14Aと複数のアプリケーション・プログラム(アプリケーション)14Bとを格納することを示す。複数のアプリケーション14Bの少なくとも1つがデータ14B’を生成する。システムDRAM14は、概ね、ファイル・システム(OS14Aの一部)に関連したファイル・システム・キャッシュ14Cも格納する。図5Bの実施形態では、システムDRAM14の一部がトランスファ・バッファ14Dとして割り当てられ、このトランスファ・バッファ14Dにアプリケーション・データ14B’が移動してトランスファ・バッファ・データ14Eになり得る。システムDRAM14の別の部分は、アクセス・リスト14Fを格納するために割り当てられる。UFSメモリ・モジュール20に割り当てられたDRAM部分14Gも含まれ、この部分にトランスファ・データ・バッファ14Eが移動してデータ14E’になり得る。ここで、図5A、5B、および5Cに示すこれらの構成要素の動作を、より詳細に説明する。
アプリケーション14B等のデータ・ソース、またはファイル・システム・キャッシュ、またはファイル・キャッシュ実体(非限定的な例として)は、大容量メモリ・モジュール20に格納されるデータ14B’を有する。このデータ14B’は、大容量メモリ・モジュール20へのその後の配信のためのシステム・ドライバによって、トランスファ・データ14Eとして、トランスファ・バッファ14Dに移動される。必要に応じて、図5Cに示すとともに以下でさらに詳細に説明されるように、データ14B’は、その本来の位置から直接移動される場合があり、それによってトランスファ・バッファ14Dが迂回される。アクセス・リスト14Fは、システムDRAM14において、OSユーティリティ等によりアプリケーション14B向けに作られ、データ14Eの位置を指し示す。この点に関して留意すべき点は、「アプリケーション」(ここで従来の感覚でサード・パーティ・アプリケーションとして理解する場合)は、それ自身ではいかなるアクセス・リストも作ることができないということである。アクセス・リストは、フィルム・システム層から入ってくるアクセスに基づいて、いくつかのOSサーバ・メモリ・サブシステム(例えば、あるドライバ層またはあるOSユーティリティ)によって、概ね作られる。実際には、アクセス・リストが構築されるか、またはアプリケーション用に構築される。イニシエータは、非限定的な例として、アプリケーション、ファイル・システム、ドライバ、またはOSユーティリティであってもよい。
本発明の態様によれば、大容量メモリ(UFS)に割り当てられた部分14Gへデータ14Eを移動させて、以下に述べるようにデータ14E’にすることができる。
アクセスは、以下のように、ホスト装置10によって行ってもよい(ホスト装置10が既に現在、大容量記憶メモリ20を初期化していると仮定)。
(1)イニシエータ(例えば、CPU12によって実行されているシステムDRAM14に常駐するアプリケーション・プログラム14B)は、それ自身のために(例えば、OSユーティリティによって)、システムDRAM14内のUFSメモリ・モジュール20に対するアクセス・テーブル(アクセス・リスト14F)を構築している。この例では、これらのアクセスの実行がある期間にわたってUFSメモリ・モジュール20のリソースを消費するであろうと仮定する。
(2)イニシエータ(例えば、アプリケーション・プログラム14BまたはOSユーティリティ)がアクセス・テーブル(アクセス・リスト14F)の存在をUFSホスト・コントローラ13に通知することで、ホスト・コントローラ13はコマンドおよび関連データをUFSメモリ・モジュール20に送り始める。
(3)同一または別のイニシエータ(例えば、同一または異なるアプリケーション・プログラム14B)は、それ自身のために、システムDRAM14内のUFSメモリ・モジュール20に対する別の書込みアクセス・テーブル(別のアクセス・リスト14F)を構築し、UFSホスト・コントローラ13はアクセス・テーブルの存在を通知される。
(4)UFSホスト・コントローラ13は、この(書込み)コマンド・セットをUFSメモリ・モジュール20に転送する。UFSメモリ・モジュール20に局在的に書き込まれたコマンドに関連するデータを処理することができないとUFSメモリ・モジュール20が判断すると、仮定する。この点に関して、留意すべき点は、例えば、書込みコマンド(複数の書込みコマンド)の実行の緊急性を強調するために、コマンドに関連するイニシエータによるキュー指示のヘッドがあり、UFSメモリ・モジュール20は、現在のところ、指示された緊急レベルを満たすことができないと判断する場合があるということである。
(5)書込みコマンドに関連するデータを受信する代わりに、UFSメモリ・モジュール20はデータを、例えばトランスファ・バッファ14D(または14B/14C)からシステムDRAM14の予約された個別の物理アドレス空間(割り当てられた部分14G)へ、移動する。移動動作およびシステムDRAM14の割り当てられた部分14Gは、UFSホスト・コントローラ13を介して、UFSメモリ・モジュール20によって制御される。UFSホスト・コントローラ13はシステムDRAM14またはシステムDRAMコントローラ11を制御することで、データ14Eの、例えばトランスファ・バッファ14Dから割り当てられた部分14Gへのデータ14E’としての移動を実行する。UFSホスト・コントローラ13は、例えば、DMAマスタ(専用UFS DMAまたはシステムDMAのいずれかのDMAマスタ)として直接動作する手段によってこの動作を行うことができると仮定することができ、ホストCPU12を迂回することができる。
(6) 割り当てられた部分14Gへのデータ14Eの物理的移動が生じた後、あたかも不揮発性メモリ(NVM)(すなわち、大容量メモリ26)へ実際にデータを移動させたかのように、UFSメモリ・モジュール20は本来の(書込み)コマンドに応答することができる。その結果、たとえ書込みデータがシステムDRAM 14の割り当てられた部分14Gの中にデータ14E’として現在常駐していようとも、第2のイニシエータは、大容量メモリ20への書込みコマンドが実行されたと見なすことができるとともに、処理動作を継続することができる。
(7)ある将来時刻では、UFSメモリ・モジュール20は、第2のイニシエータからの書込みコマンドを処理するために、十分なリソースを有している。この時、それは、それぞれ独立してシステムDRAM14(システムDRAM14の割り当てられた部分14G)からのデータをフェッチし、NVM大容量メモリ26にそれを格納する。OS14Aのファイル・システム層またはイニシエータの観点から、この動作には透明性があり、あたかも物理的なDRAM/SRAMキャッシュがUFSメモリ・モジュール20内にあるように見える。すなわち、システムDRAM14の外部の割り当てられた部分14Gは、UFSメモリ・モジュール20の仮想DRAM/SRAMキャッシュと類似したやり方で機能することができる。
留意すべき点は、UFSメモリ・モジュール20が受信アクセス・コマンドを連続して処理する必要はないことである。例えば、より高い指示された優先度がある別の書込みコマンドが、書込みデータも割り当てられた部分14Gに保存されている第3のイニシエータから到着する場合、第2のイニシエータからの書込みコマンドを処理する前に、UFSメモリ・モジュール20は、第3のイニシエータからの書込みコマンドを処理し、次に、第2のイニシエータからの書込みコマンドを処理することもあり得る。
別の実施形態では、大容量メモリ・モジュール20のシステムDRAM14に確保された特定の個別の記憶アドレスを必要としない。代わりに、大容量メモリ・モジュール20はシステムDRAM14に任意の(またはほぼ任意の)位置にアクセスできる。この場合、システムDRAM14にデータを物理的に移動させる代わりに、大容量メモリ・モジュール20は、ホストCPU12によって作製されたメモリ・ポインタのリストを制御することができる。ポインタのリスト(ホスト用のポインタ・リスト1つと大容量メモリ・モジュール20用の別のリスト)を修正することで、大容量メモリ・モジュール20は、ホストCPU制御論理メモリ空間から大容量メモリ・モジュール20によって制御された空間に、事実上、データを「移動」させることができる。留意すべき点は、この場合、トランスファ・バッファ14Dは依然として存在するか、または存在してもよいが、大容量メモリ・モジュール20に割り当てられた物理的部分14Gに対する必要性はないことである。
あるいは、大容量メモリ・モジュール20は、ホストCPU12によって作製されたヘッダ情報を用いることができる。ヘッダ情報は、ホストの有効/無効、確保済み、および大容量メモリの有効/無効割当てに、個別のビットを用いることができるとともに、システムDRAM14に格納することができる。この場合、ヘッダ情報(例えば、割り当てられた/フリーのもの)を修正することによって、大容量メモリ・モジュール20は、CPU12によって制御されたアドレスから大容量メモリ・モジュール20によって制御されたアドレスへ、データを「移動」させることもあり得る。
これらの動作のいずれか、または両方は、ホスト・コントローラ13によって媒介することができる。
不揮発性モジュール14Gのために確保されたシステムDRAM14の一領域にデータが依然として位置するアドレスへのアプリケーションからの読出しコマンドが存在し得る。すなわち、以前に保存されたデータは、不揮発性メモリ・モジュール20によって不揮発性メモリ26にまだ移動されていない。そのような場合、メモリ・コントローラ22はこの読出しコマンドを検知することになり。そして(読出しコマンドを供給する前に不揮発性メモリ26へ忠実にデータを移動させて格納する代わりに)、ファイル・キャッシュ/ファイル・システム・キャッシュ14C/トランスファ・バッファ14Dまたはアプリケーション領域14Bにおいてメモリ領域14Gからのデータを該データ用に確保された位置へコピー(移動ではない)することになる。確保された位置の宛先アドレスは、ホスト・コンピュータ13によって少なくとも知られるように、アクセス・リスト14Fに含まれる場合もある。
ポインタおよびヘッダのリストの修正に相応して関係する他の実施形態において、上述の読み出しは、新しい宛先位置へのデータ(読み出しリクエストに関係する)をコピーし、コピーされたデータが直ちにアクセス可能になり、かつホスト・システム10の管理下に置かれるように、メモリ・モジュール/ホスト・コントローラによってポインタ/ヘッダを調整することとして、実現され得る。
これらの読出し関連の実施形態のすべてにおいて、認識すべきことは、読出しデータがコピーされるとともに、データ14E’が依然として存在し、メモリ・コントローラ22が書込み動作を行なうためにリソースを持つとすぐに、メモリ・モジュール20の不揮発性メモリ26に書き込まれるということである。
図5Cは、この発明の一実施形態を示すもので、上記したように、アクセス・リスト14Fはデータ14B’を参照し、この参照されたデータが次に直接、割り当てられた部分に移動(データ14E’)し、それによってトランスファ・バッファ14Dを迂回する(すなわち、直接移動した後にデータ14B’はデータ14Eになる)。
ホストCPU 12以外(例えばアプリケーション・プロセッサ以外)の供給源からデータが生じることも例示的実施形態の範囲内である。例えば、データは、有線接続または無線接続のいずれかによってホスト装置10に接続される周辺機器60として具現化されるイニシエータから生じる場合もある。この場合、周辺機器60から大容量メモリ・モジュール20にデータを直接移動させる代わりに、大容量メモリ・モジュール20は、システムDRAM14(例えば、割り当てられた部分14G)に格納されるデータを生じる。周辺機器60で生じるデータは、このようにシステムDRAM14に一時的に(かつ周辺機器60に対してトランスパレントに)キャッシュに入れられる。
さらに、本発明の例示的実施形態に基づいて、DRAM14の動作は、機能性を追加することで強化され、動作が局所的にDRAM14内で実行される。
前置きとして、無線端末(例えば、スマートフォン)の処理能力のボトルネックの一つは、実行メモリ、特にメモリ・バスである。また、ワークメモリとしても知られている実行メモリは、別個の構成要素(例えば、外部DRAM)である一方で、限られた伝送容量(帯域幅)を有するバスによりホスト・バスASICに接続されている。
メモリ帯域幅を改善する手段は、制限されている。ほとんどの場合、一部のメモリ・バスおよびメモリ装置のコストはそれぞれが高額すぎる。さらに、バス自体は、ホストASICのピン/パッド予算の大部分を占めており、このことが意味することは、所定のパッド・ピッチでホストASICシリコンを含むパッケージが多数のバスによって不必要に大型化し、小型化への取り組みに対して問題を生じていることである。
共通する問題としては、所望される多くの使用において、メモリ帯域幅(すなわちトランザクション・キャパシティ)が不十分であるということである。ホストASICは、いくつかのメモリ・マスタ(例えばプロセッサ、アクセラレータ、およびDMAエンジン)、ならびに外部記憶バスを提供する1つのDRAMコントローラ11を含むことができる。このバスの他端に、メモリ装置(DRAM構成要素)がある。メモリ・マスタは、読み出しおよび書き込みのリクエストをメモリに対して出す。DRAMは、並行して動作するいくつかのバンク(通常4〜8)から構成されている。したがって、並列がメモリ・バスの両端で存在している間、メモリ・バス自体はシングル・スレッドの配置である。
本発明の例示的態様は、内部動作が局所的に行われることを可能にすることにより、メモリ装置を完全に利用する手段を提供することを含む。これは全面的なメモリ・サブシステムの性能を改善し、CPUからのいくつかの動作をオフ・ロードすることによりCPUキャパシティを高め、電力消費を減少させる。本発明の例示的態様では、改善されたコマンド・セットの使用を介したメモリ装置により実行されるいくつかの基本動作が提供される。
留意すべき点は、本発明の例示的実施形態のこれらの態様がシステムDRAM14の動作を向上させるという文脈で記述される一方で、本発明のこれらの態様が大容量記憶メモリ装置20の動作を向上させることにも適用し得ることである。例えば、大容量メモリ26内の局所的な自律的動作を提供するようにメモリ・モジュール20の常駐するメモリ・コントローラ22を変更することが可能である。
さらに、本発明の例示的実施形態に基づいて、メモリ・フィルおよびメモリ移動のようないくつかの基礎的で基本的な機能は、システムDRAM14に対して内部的に処理される。これらの動作は、例えば、システムDRAMメモリ・コントローラならびに/あるいはシステムDRAM14に具現化されたコントロール・モジュールまたは機能15によって、処理される(図5Aに示す)。
この実施形態では、システムDRAM14は、システムDRAMメモリ・コントローラ11の支援下または支援無しで、例えば、CPU12による積極的な介入/制御なしに独立的かつ自律的に、メモリ・フィルを実行するとともに機能(複数の機能)を移動させる。このことは、少なくとも、バッファ14B/14Dから割り当てられた部分14Gへの物理データの移動を制御する大容量メモリ・モジュール/大容量メモリ・ホスト・コントローラ13に起因する、CPU12およびシステムDRAMバス17の荷重を減少させる。
明らかなことは、多くのメモリ・トランザクションがデータ(例えば、ゼロ)によるメモリアドレス空間の単純な充填、あるいは1つの記憶場所から別の記憶場所へデータ・チャンクを移動させることであり、該位置を同一メモリ装置内部または2つの異なるメモリ装置内部とすることができる。これは従来、CPUレベルでの活動を必要とし、このことはシステム処理効率および消費電力が最適未満であることを意味している。
本発明のこれらのさらなる態様に基づいて、少なくともいくつかの基本的なインメモリ動作がCPU12の責任から外され、システムDRAM14により具現化し得るコントローラ15等のシステムDRAM14に転送される。
この例示的実施形態では、コントローラ15の機能には「スマート・メモリ」機能が含まれる。あるいは、これらのスマート・メモリ機能を、図5Aに示されるホスト・コントローラ13に持たせることができる。あるいは、また上述したように、これらのスマート・メモリ機能もまた、ホスト装置10のシステムDRAM14のためのシステムDRAMメモリ・コントローラ11機能に包含させることが可能である。
これらの実施形態において、システムDRAMコントローラ11またはシステムDRAMモジュール(制御15)は、そのために出されたコマンドを分析し、メモリ・フィルまたはメモリ移動動作等の「スマート・メモリ」動作を開始してもよい。
例えばコントローラ15に加えられた付加的な機能には、少なくともデータ・フィル機能およびデータ移動機能が含まれてもよい。必要に応じて、付加的機能には、システムDRAM14のセキュリティー機能、システムDRAM14とメモリ26との間のパック/アンパック機能、さらに、例えば、大容量メモリ関連エラー検出および補正やウェア・レベリング機能が含まれる。
スマート・メモリ機能使用の一例として、メモリ・ブロック・リセットが通常、そのメモリにゼロを書き込むことによって行われる。本発明によれば、「データ・フィル」機能は、任意の特定ビット・パターンを用いた少なくとも1つのフィル(Fill)動作を支持するもので、データ(Data)を任意の特定ビット・パターン、例えば“0000”、“1111”、“0101”等とすることが可能である。
データ移動動作は、データが移動された(読み出された)システムDRAM14の領域に対するフィル(Fill)動作が後に続く読出し/書込み(コピー)シーケンスになり得る。フィル動作は、メモリ位置をある所定値(例えば、ゼロ)に設定したり、または上記で議論されたフィル動作と類似したやり方でデータ移動動作コマンドにより指定された値に設定することが可能である。データ移動(Data Move)動作がデータ・コピー(Data Copy)動作として機能することができる(すなわち、オリジナル・データが不変である一方で、そのデータが別の場所に複製される)ように、フィル動作は任意のものであってもよい。
コマンド・レベルでスマート・メモリ機能を実装する非限定的な例は、以下のとおりである。
JEDEC規格の低消費電力ダブル・データ・レート(Low Power Double Data Rate)(LPDDR1(LP1))(例えば、『JEDEC規格、低消費電力ダブル・データ・レート(LPDDR)、SDRAM標準、JESD209B』(JEDEC Standard, Low Power Double Data Rate (LPDDR)SDRAM Standard, JESD209B)、2010年2月を参照)は、これらのタイプのスマート機能を付加する簡単で明瞭な方法を提供していない。例示的な実装は、以下の情報をメモリ装置に送るためにアドレス・ピンA0−Axを用いる、複数の従来のモード・レジスタ・セット(Mode Register Set)(MRS)コマンド(バンクアドレスBA0=BA1=“1”のMRSを利用可能)の配列を用いることであってもよい。
1) コマンドの種類(移動(move)、フィル(fill));
2) フィル・データ(全(all)0,全(all)1,01シーケンス(sequence)、...)、オプション;
3) 宛先アドレス(フィル、移動)および送信元アドレス(移動)、アドレスは実装に依存;
4) 動作サイズ(細分性は実装に依存)。
シーケンスの必要MRSコマンド数は、アドレッシング、データ細分性、および動作サイズに依存するもので、これらは実装依存因子である。LPDDR2およびLPDDR3において、モード・レジスタ書込み(Mode Resister Write)コマンドを同様に用いることが可能である。理解すべきことは、従来のLPDDRxソリューションがDRAMアイドル状態のみからのMRSおよびMRW動作を許容するが、他のソリューションも技術的に可能であるということである。そのような1つの実装は、移動またはフィル動作の送信元または宛先であるデータがオープンDRAM頁に位置するよう必要とすることかもしれない。
理解すべきことは、将来のDRAMインタフェースによって、これらの動作に新たな専用コマンドが使用され、これらの動作がより一層効率的になり得るということである。基本的に、システムの観点から、次の動作のうちのいくつかあるいはすべてはメモリに配信されてもよい:
1) コマンド(フィル(fill)0、フィル(fill)1、...、フィル_パターン(fill_pattern)、移動(move)を配信;
2) 宛先アドレス(バンク(bank)、ロー(row)、カラム(column)、バイト(byte))を配信;
3) 送信元アドレス(バンク(bank)、ロー(row)、カラム(column)、バイト(byte))を配信;
4) 動作サイズを配信。
完全なコマンドおよびアドレス配信は、単一または複数のコマンド・シーケンスで生じてもよく、特定のコマンド・コードは、例えば、実装に合うように、cmd/アドレス/データ・バスを介して、マルチサイクル配信を示すものであってもよい。特定の実装は、データおよびアドレス細分性の要件、スマート・メモリ機能動作の前後後のメモリ状態の要件(メモリがデータを移動またはフィルするためにいくつかの中間バッファを内部で用いるかどうか、あるいはオープン・ロー(DRAMセンス・アンプ)が動作全体中、確保されているかどうか)、任意のタイミング要件、その他を要求する。
コマンドは、例えば、CPU12(例えば、OSまたはファイル・システム・ユーティリティ)または大容量メモリ・ホスト・コントローラ13によって送出された後、システムDRAM14に関連したコントローラ15またはDRAMメモリ・コントローラ11によって自律的に実行され得る。
本発明の例示的実施形態によって実現され得るいくつかの利点および技術的効果は、上述のとおりである。例えば、イニシエータ(ホストCPU12、プロセス、イニシエータ、アプリケーション)に対するより速いレスポンスは、アクセスがなされた(実際に、さらなる処理のためにマネージドNANDサイドに取り入れられる)と規定することができる。このことは、ユーザ経験を向上させる。さらに、ハードウェア/ソフトウェアの下位層でデータの移動が生じるので、上位層のソフトウェア(例えば、ファイル・システムおよび/またはアプリケーション)に対して変更を加える必要はない。さらに、マネージドNAND機能用のシステムDRAM14の割り当てられた部分14Gを過度に大きくする必要はない。例えば、多くの興味のある用途のために、数百キロバイトが十分であると思われる。なぜなら、多くの場合、単に小さなランダム・アクセスを一時的にキャッシュしたり、より大きな順次アクセスを不揮発性大容量メモリ26に直接格納したりする上で最も有利であるからである。さらに、本発明のさらなる態様を用いることで、CPU12の活発な関与なしで、特定の基本的メモリ動作(例えば、フィル、移動)が局所的に遂行されるのを可能にする(例えば、システムDRAMモジュール14内で)。
図6は、図6で単にメモリ・カード20として呼ばれる大容量記憶メモリ装置20とともに使用されるホスト装置10の1つの非限定的な実施形態を示す。大容量記憶メモリ装置20は取外し可能、またはデバイス10に組み込むことができる。この例示的実施形態では、ホスト装置10はユーザ機器(UE)として組み込まれており、平面図(左)および断面図(右)の両方で示される。図6では、ホスト装置(UE)10は、グラフィック表示インタフェース120と、キーボードとして示されているがグラフィック表示インタフェース120でのタッチ・スクリーン技術およびマイクロホン124で受け取られる音声認識技術も包含するものとして理解されるユーザ・インタフェース122とを、有する。パワー・アクチュエータ126は、ユーザによってオン・オフされる装置を制御する。典型的なUE10は、前向きなものとして示されているが、あるいは、またはそれに加えて、後ろ向き(例えば、よびローカル・ストレージ用の画像およびビデオの撮像)であってもよいカメラ128(例えば、ビデオ通話用)を有するものであってもよい。カメラ128は、シャッタ・アクチュエータ30により制御され、必要に応じて、カメラ128がアクティブモードでないときにスピーカ(複数のスピーカ)34の音量調整としても機能することができるズーム・アクチュエータ32により、制御される。
例として、カメラ128によって撮像されたイメージ・データを、カメラ・アプリケーションの管理下で、大容量記憶メモリ装置20に格納することができるので、本発明の実施例の使用から利益を得ることができる。別の例として、マイクロホン124によって取り込まれたオーディオ情報を、オーディオ・アプリケーションの管理下で、大容量記憶メモリ装置20に格納することができるので、同様に、本発明の実施例の使用から利益を得ることができる。
移動体通信に通常用いられる多数の送信/受信アンテナ36を図6の断面図に示す。アンテナ36は、UE内の他の無線機で使用するためにマルチバンドであってもよい。アンテナ36の操作可能な接地面は、UEハウジングで囲まれた空間全体に及ぶものとして網掛けで示されているが、いくつかの実施形態では、接地面は、例えばパワー・チップ38が形成されるプリント配線基板上に配置されるように、小さな領域に限定されるものであってもよい。パワー・チップ38は、送信されるチャンネル上および/またはアンテナを横切る電力増幅を制御するもので、アンテナは空間的多様性が使用される場合に同時に送信し、受信信号を増幅する。パワー・チップ38は、増幅された受信信号を無線周波数(RF)チップ40に出力する。この無線周波数(RF)チップ40は、ベースバンド処理のために、この信号を復調かつダウンコンバートする。ベースバンド(BB)チップ42は、その後、ビット・ストリームに変換され、最後に復号化される信号を検知する。ホスト装置10で生じ、かつそこから送信された信号に対して、同様の処理が逆方向で行われる。
カメラ128を行き来する信号は、様々なイメージ・フレームを符号化および復号化する画像/ビデオ処理部44を通過することができる。個別の音声処理部46もまた存在し、スピーカ34およびマイクロホン124を行き来する信号を制御する。グラフィック表示インタフェース120は、ユーザ・インタフェース・チップ50によって制御されるようなフレーム・メモリ48からリフレッシュされ、このユーザ・インタフェース・チップ50は、ディスプレイ・インタフェース20を行き来する信号を処理し、さらに/またはキーパッド22および別の場所からのユーザ入力をさらに処理することが可能である。
UE10の特定の実施形態もまた、1つ以上の第2の無線機、例えば無線ローカル・エリア・ネットワークWLAN37およびブルートゥース(Bluetooth(登録商標))7無線39を有し、該無線機はチップ上のアンテナを取り入れてもよく、あるいはチップから外されたアンテナに連結してもよい。装置の全体にわたって、ランダム・アクセス・メモリRAMのような様々なメモリがあり、該メモリとして、システムDRAM14、読出し専用メモリROM45が挙げられ、さらにいくつかの実施形態では、種々のプログラムおよびデータが格納可能である図示したメモリ・カード20等のリムーバブル・メモリを挙げることができる。UE10内のこれらの構成要素全ての電源は通常、バッテリー49等の携帯用電源から供給される。
プロセッサ38、40、42、44、46、50は、別個の存在としてUE10に組み込まれた場合、主動作処理装置(CPU)12とのスレーブ関係で動作してもよく、その後、それらに対してマスタ関係にあってもよい。特定の実施形態は、示されるように種々のチップおよびメモリを横切るようにして配置されてもよく、または、図6に関して上述されたいくつかの機能を組み合わせる別の実施形態に配置されてもよい。図6のこれらの種々のプロセッサのいずれかまたは全ては、様々なメモリの1つ以上にアクセスする。これらのメモリはプロセッサとともにチップ上にあってもよく、またはプロセッサを有するチップとは離れていてもよい。留意すべき点は、上述した種々の集積回路(例えば、チップ38、40、42等)を、記述した数よりも少なく組み合わせたり、もっともコンパクトな場合では、全てを物理的に1つのチップに組み込まれるようにしてもよいことである。
この例示的実施形態では、UE10(ホスト装置)のCPU12は、図5A、5B、および5Cを参照しながら説明されたようにメモリ・カード20(大容量記憶メモリ装置)を用いて動作するので、メモリ・カード20が拡張されて上述のようにUE10のシステム・ダイナミックRAM14の少なくとも一部分が用いられる。
本発明の例示的実施形態の一態様は、図7に示すように、方法であり、該方法は、(7A)ホスト装置に連結した不揮発性大容量メモリに関連するコントローラ(例えば、メモリ・コントローラ)で、イニシエータから生じるコマンド(該コマンドは、例えば、ファイル・システム層(SW)およびドライバ層(SW)およびホスト・コントローラ(HW)を介して到着し得る)を受信すること、を含む。コマンドは、ホスト装置のメモリにおいて現在常駐するデータを不揮発性大容量メモリへ書き込むコマンドである。ホスト装置のメモリとして、非限定的な例として、DRAM、MRAM、PCM(相変化メモリ)、RRAM(抵抗ランダム・アクセス・メモリ)、磁気ランダム・アクセス・メモリ、強誘電体ランダム・アクセス・メモリ、およびその他のものが挙げられる。上記方法は、さらに、(7B)ホスト装置のメモリに現在常駐するデータを、少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、を含む。上記方法は、さらに、(7C)不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答すること、を含む。
図7および先行する段落で説明された方法は、肯定応答に続いて、ホスト装置のメモリから不揮発性大容量メモリへデータを移動させること、をさらに含む。
図7および先行する段落で説明された方法では、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分に対して、データを物理的に移動させる。
図7および先行する段落で説明された方法では、データへのメモリ・アドレス・ポインタ値またはデータのヘッダ値の変更によって、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分に対して、データを論理的に移動させる。
図7および先行する段落で説明された方法では、データはイニシエータによって生じ、そして該イニシエータがホスト装置に常駐する。
図7および先行する段落で説明された方法では、イニシエータは、アプリケーション・プログラム、ファイル・システム、ドライバ、およびオペレーティング・システム・ユーティリティの少なくとも1つを含む。
図7および先行する段落で説明された方法では、データは、イニシエータによって生じ、そして該イニシエータがホスト装置の外側にある。
図7および先行する段落で説明された方法では、イニシエータは、ホスト装置に接続された周辺機器として具現化される。
図7および先行する段落で説明された方法では、ホスト装置のメモリは、ダイナミック・ランダム・アクセス・メモリを含み、さらに、ホスト装置のメモリ中の基本メモリ動作を自律的に行うことを含む。
図7および先行する段落で説明された方法では、基本メモリ動作は、所定値に複数の指定されたメモリ・ロケーションを設定するためのデータ・フィル動作である。
図7および先行する段落で説明された方法では、基本メモリ動作は、第1の複数の指定されたメモリ・ロケーションからのデータを第2の複数の指定されたメモリ・ロケーションに移動させるデータ移動動作である。
図7および先行する段落で説明された方法では、データ移動動作は所定値に第1の複数の指定されたメモリ・ロケーションを設定することをさらに含む。
図7および先行する段落で説明された方法は、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分にデータが常駐する一方で、不揮発性大容量メモリによる使用に割り当てられたメモリの部分に常駐するデータを読み込むためにデータの書込みコマンドに応答すること、および読出しコマンドのイニシエータに読出しデータをコピーすることを、さらに含む。
図7および先行する段落で説明された方法では、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させることが、不揮発性大容量メモリに関連したコントローラによって開始される。
図7および先行する段落で説明された方法では、該方法はコントローラによってコンピュータ・プログラム命令の実行の結果として行なわれる。
図8は、さらに本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。これらの例示的実施形態に基づいて、方法は、ブロック8Aで、少なくとも1つのデータ処理装置とダイナミック・ランダム・アクセス・メモリから構成される少なくとも1つのメモリとを有するデータ処理システムを提供することを、行う。ブロック8Bでは、メモリ中の基本メモリ動作を自主的に行なうステップがある。
図8および先行する段落で説明された方法では、基本メモリ動作は、所定値に複数の指定されたメモリ・ロケーションを設定するためのデータ・フィル動作である。
図8および先行する段落で説明された方法では、基本メモリ動作は、第1の複数の指定されたメモリ・ロケーションからのデータを、第2の複数の指定されたメモリ・ロケーションに移動させるデータ移動動作である。
図8および先行する段落で説明された方法では、データ移動動作は所定値に第1の複数の指定されたメモリ・ロケーションを設定することをさらに含む。
図7および8に示す種々のブロックを、方法のステップとして、および/またはコンピュータ・プログラム・コードの動作の結果である動作として、および/または関連する機能を実行するように構成された複数の連結論理回路素子として、見ることが可能である。
一般に、種々の例示的実施形態を、ハードウェアまたは専用の回路、ソフトウェア、論理、もしくはそれらの組み合わせとして、実装してもよい。例えば、一部の態様をハードウェアに実装し、一方、他の態様をコントローラ、マイクロプロセッサ、または他のコンピューティング・デバイスによって実行され得るファームウェアまたはソフトウェアとして実装してもよいが、本発明はそれらに限定されるものではない。本発明の例示的実施形態の種々の態様がブロック図、フローチャートとして、またはいくつかの他の図的表現を用いて、例証かつ説明可能である一方で、本明細書中で説明したこれらのブロック、装置、システム、技術、または方法を、非限定的例として、ハードウェア、ソフトウェア、ファームウェア、特殊目的回路またはロジック、汎用ハードウェアまたはコントローラ、または他のコンピューティング・デバイス、あるいはそれらの組み合わせに実装してもよいことが、十分に理解されよう。
したがって、本発明の例示的実施形態の少なくとも一部の態様は、集積回路チップおよびモジュール等の種々の構成要素で実行されてもよく、この発明の例示的実施形態が集積回路として具現化される装置で実現されてもよいことが認識されるべきである。本発明の例示的実施形態に基づいて動作するように構成可能である集積回路または複数の集積回路は、少なくとも1つ以上のデータ・プロセッサまたは複数のデータ・プロセッサ、デジタル信号プロセッサまたは複数のデジタル信号プロセッサ、ベースバンド回路、および無線周波数回路を組み込むための回路(おそらくはファームウェアも)を含むものであってもよい。
例示的実施形態に基づく装置は、ホスト装置のメモリにおいて現在常駐するデータを不揮発性大容量メモリへ書き込むコマンドであるコマンドを、ホスト装置から該ホスト装置に連結した不揮発性大容量メモリに関連したコントローラへ送るための手段と、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させる手段と、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをホスト装置に肯定応答する手段、を含む。
添付の図面と併せて読む時に前述の説明に関して、本発明の前述の例示的実施形態への様々な修正および改造が、関連技術分野の当業者には明らかになるであろう。しかしながら、任意のおよびすべての修正は、依然として本発明の非限定的な例示的実施形態の範囲内に収まるものである。
留意すべき点は、用語「接続(connected)」、「連結(coupled)」、またはそれらの任意の変形は、2つ以上の要素間の直接または間接的な任意の接続または連結を意味するものであり、さらに「接続(connected)」または「連結(coupled)」された2つの要素間に1つ以上の中間要素が存在することも包含することが可能である。要素間の連結または接続は、物理的、論理的、またはそれらの組み合わせとすることができる。本明細書中で使用されるように、2つの要素は、いくつかの非限定的および非網羅的な例として、1本以上のワイヤ、ケーブル、および/または印刷電気接続の使用によって、無線周波数領域、マイクロウェーブ涼気、および光学(可視または不可視の両方の)領域内の波長を有する電磁エネルギー等の電磁エネルギーの使用によって、「接続(connected)」または「連結(coupled)」すると考えてもよい。
さらに、本発明の種々の非限定的かつ例示的な実施形態の特徴のいくつかは、他の特徴の対応する使用がなくとも有利に使用することができる。このように、上述の説明は、本発明の原理、教示、および例示的実施形態の単なる例示として考えられるべきであり、それらを限定するものとしては考えるべきではない。

Claims (25)

  1. メモリ・モジュールのメモリ・コントローラでコマンドを受信するステップであって、前記コマンドは、ホスト装置のメモリに存在するデータを、ホスト装置に結合された前記メモリ・モジュールの不揮発性大容量メモリに書き込むためのものである、ステップと、
    前記メモリ・モジュールの前記メモリ・コントローラにより、前記ホスト装置の前記メモリの第1の場所に存在する前記データを、前記ホスト装置の前記メモリの第2の場所へ書き込みすることを開始するステップであって、前記ホスト装置の前記メモリの前記第2の場所が、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、ステップと、
    前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという肯定応答を、前記メモリ・モジュールの前記メモリ・コントローラによって、提供するステップと、
    を含む方法。
  2. 前記肯定応答を提供する前記ステップに続いて、前記ホスト装置の前記メモリの前記第2の場所に存在する前記データを、前記不揮発性大容量メモリに、さらに書き込みをすることを開始するステップをさらに含む、請求項1に記載の方法。
  3. 前記データの前記書き込みをすることは、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、前記ホスト装置の前記メモリの前記第2の場所への前記データの移動を含む、請求項1に記載の方法。
  4. 前記コマンドのイニシエータが、前記ホスト装置に接続された周辺機器として具現化される、請求項1に記載の方法。
  5. ホスト・コントローラと、装置を不揮発性大容量メモリ・モジュールに接続するためのインタフェースと、を備えた装置であって、
    前記ホスト・コントローラが、ホスト装置のメモリに存在するデータを、前記不揮発性大容量メモリ・モジュールに書き込むために第1コマンドを処理し、
    前記ホスト装置の前記メモリの第1の場所に存在する前記データを、前記不揮発性大容量メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、前記ホスト装置の前記メモリの第2の場所に書き込むために、前記不揮発性大容量メモリ・モジュールのメモリ・コントローラからの第2コマンドを処理し、
    前記データを前記不揮発性大容量メモリ・モジュールに書き込むための前記コマンドが
    実行されたことを示す肯定応答を受信するように構成されている、
    装置。
  6. 前記ホスト・コントローラが、前記データを前記不揮発性大容量メモリ・モジュールに書き込むための前記コマンドが実行されたという前記肯定応答の前記受信に続いて、前記データを前記不揮発性大容量メモリ・モジュールに実際に書き込むようにさらに構成されている、請求項5に記載の装置。
  7. 前記データの前記不揮発性大容量メモリ・モジュールへの前記書き込みが、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項6に記載の装置。
  8. 前記メモリの動作は、
    所定値に複数の指定されたメモリ・ロケーションを設定するデータ・フィル動作、
    第1の複数の指定されたメモリ・ロケーションから第2の複数の指定されたメモリ・ロケーションに移動するデータ移動動作
    のうち1つであり、
    前記データ移動動作が、前記第1の複数の指定されたメモリ・ロケーションを所定値に設定することをさらに含む、請求項5に記載の装置。
  9. 前記ホスト・コントローラが、少なくとも前記不揮発性大容量メモリ・モジュールによって使用される前記ホスト装置の前記メモリの前記第2の場所へ前記データを物理的または論理的のいずれかで移動するようにさらに構成される、請求項5に記載の装置。
  10. イニシエータは、前記ホスト装置に接続された周辺機器として具現化される、請求項5に記載の装置。
  11. 前記ホスト装置の前記メモリが、前記ホスト装置の前記メモリにおいて、メモリの動作を自律的に実行するように構成されたダイナミック・ランダム・アクセス・メモリを備える、請求項5に記載の装置。
  12. 前記ホスト・コントローラが、前記不揮発性大容量メモリ・モジュールに割り当てられた前記ホスト装置の前記メモリの前記第2の場所に存在する前記データを、前記ホスト装置の前記メモリの第3の場所にさらに書き込むようにさらに構成され、
    前記さらなる書き込みが、前記不揮発性大容量メモリ・モジュールから前記データを読み取るための別のコマンドに応答する、請求項5に記載の装置。
  13. 前記さらなる書き込みが、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項12に記載の装置。
  14. 前記肯定応答が、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項5に記載の装置。
  15. 前記ホスト装置の前記メモリの前記第1の場所に存在する前記データの、少なくとも前記不揮発性大容量メモリによって使用される前記ホスト装置の前記メモリの前記第2の場所への書き込みが、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項5に記載の装置。
  16. 前記ホスト装置が、双方向無線通信を実行するように構成された携帯装置を含む、請求項5に記載の装置。
  17. 書き込みのための前記第1コマンドの処理は、書き込みのための前記第1コマンドを前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラに、送ることを含む、
    請求項5に記載の装置。
  18. メモリ・コントローラと、前記メモリ・コントローラによって読み取りおよび書き込みが可能な不揮発性大容量メモリと、メモリ・モジュールをホスト装置に接続するためのインタフェースと、を備えるメモリ・モジュールであって、
    前記メモリ・コントローラが、
    前記ホスト装置の前記メモリからのデータを前記不揮発性大容量メモリに書き込むコマンドを受信し、
    前記ホスト装置の前記システム・メモリの第1の場所に存在する前記データを、前記ホスト装置の前記システム・メモリの第2の場所へ書き込みすることを開始し、ここで、前記第2の場所は、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられたものであり、
    前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという肯定応答を送るように構成される、
    メモリ・モジュール。
  19. 前記メモリ・コントローラが、前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという前記肯定応答の前記提供に続いて、前記データの前記メモリ・モジュールへの書き込みを開始するようにさらに構成される、請求項18に記載のメモリ・モジュール。
  20. 前記第2の場所への前記データの前記書き込みは、少なくとも、前記メモリ・モジュールによる使用に割り当てられた前記ホスト装置の前記システム・メモリの前記第2の場所への前記データの移動を含む、請求項18に記載のメモリ・モジュール。
  21. 前記第2の場所への前記データの前記書き込みは、少なくとも前記メモリ・モジュールによる使用に割り当てられた前記ホスト装置の前記システム・メモリの前記第2の場所への前記データの論理的移動を含み、
    前記論理的移動は、
    前記データを指し示すポインターのメモリ・アドレス・ポインター値の変更、および、
    前記データのヘッダのヘッダ値の変更
    のうちの少なくとも1つを含む、
    請求項18に記載のメモリ・モジュール。
  22. 前記メモリ・コントローラが、
    前記不揮発性大容量メモリからの前記データを読み取るための別のコマンドに応答して、前記不揮発性大容量メモリによる使用に割り当てられた前記ホスト装置の前記システム・メモリの前記第2の場所から、前記別のコマンドのイニシエータと関連する前記ホスト装置の前記システム・メモリの第3の場所への、前記データのさらなる書き込みを開始するようにさらに構成される、
    請求項18に記載のメモリ・モジュール。
  23. 前記コマンドのイニシエータと、前記別のコマンドの前記イニシエータと
    が同じである、請求項22に記載のメモリ・モジュール。
  24. 前記第1の場所と前記第3の場所とが同じである、請求項22に記載のメモリ・モジュール。
  25. 前記コマンドのイニシエータは、前記ホスト装置に接続された周辺機器として具現化される、請求項18に記載のメモリ・モジュール。
JP2017155752A 2012-01-26 2017-08-10 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 Active JP6442009B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/358,806 US9417998B2 (en) 2012-01-26 2012-01-26 Apparatus and method to provide cache move with non-volatile mass memory system
US13/358,806 2012-01-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014553773A Division JP6193886B2 (ja) 2012-01-26 2013-01-02 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018219218A Division JP6817273B2 (ja) 2012-01-26 2018-11-22 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法

Publications (2)

Publication Number Publication Date
JP2018022497A true JP2018022497A (ja) 2018-02-08
JP6442009B2 JP6442009B2 (ja) 2018-12-19

Family

ID=48871320

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014553773A Active JP6193886B2 (ja) 2012-01-26 2013-01-02 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
JP2017155752A Active JP6442009B2 (ja) 2012-01-26 2017-08-10 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
JP2018219218A Active JP6817273B2 (ja) 2012-01-26 2018-11-22 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014553773A Active JP6193886B2 (ja) 2012-01-26 2013-01-02 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018219218A Active JP6817273B2 (ja) 2012-01-26 2018-11-22 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法

Country Status (6)

Country Link
US (4) US9417998B2 (ja)
EP (2) EP3493066B1 (ja)
JP (3) JP6193886B2 (ja)
KR (4) KR102317152B1 (ja)
CN (2) CN104081366B (ja)
WO (1) WO2013110847A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019146497A1 (ja) 2018-01-24 2019-08-01 株式会社Nttドコモ ユーザ端末及び無線通信方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156415B1 (en) * 2007-12-26 2012-04-10 Marvell International Ltd. Method and system for command queuing in disk drives
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8370717B1 (en) 2008-04-08 2013-02-05 Marvell International Ltd. Method and apparatus for flexible buffers in an XOR engine
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US9081665B2 (en) * 2012-02-02 2015-07-14 OCZ Storage Solutions Inc. Apparatus, methods and architecture to increase write performance and endurance of non-volatile solid state memory components
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
TWI459201B (zh) * 2012-04-27 2014-11-01 Toshiba Kk Information processing device
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
EP2960801B1 (en) * 2013-02-20 2018-07-18 Panasonic Intellectual Property Management Co., Ltd. Wireless access device and wireless access system
BR112015019459B1 (pt) * 2013-03-15 2021-10-19 Intel Corporation Dispositivo para uso em um módulo de memória e método realizado em um módulo de memória
KR20150041873A (ko) * 2013-10-10 2015-04-20 에스케이하이닉스 주식회사 데이터 처리 시스템
US9665533B2 (en) 2013-12-20 2017-05-30 Rambus Inc. Blob pools, selectors, and command set implemented within a memory appliance for accessing memory
US9092362B1 (en) * 2014-03-13 2015-07-28 NXGN Data, Inc. Programmable data write management system and method for operating the same in a solid state drive
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
WO2016033539A1 (en) 2014-08-29 2016-03-03 Memory Technologies Llc Control for authenticated accesses to a memory device
JP6248921B2 (ja) * 2014-12-22 2017-12-20 ソニー株式会社 メモリコントローラ、記憶装置、および、情報処理システム
US10101918B2 (en) * 2015-01-21 2018-10-16 Sandisk Technologies Llc Systems and methods for generating hint information associated with a host command
WO2016182753A1 (en) * 2015-05-08 2016-11-17 Sandisk Technologies Llc Data mapping for non-volatile storage
KR102337044B1 (ko) * 2015-07-27 2021-12-09 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
WO2017073127A1 (ja) * 2015-10-30 2017-05-04 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
US10203888B2 (en) * 2015-12-18 2019-02-12 Intel Corporation Technologies for performing a data copy operation on a data storage device with a power-fail-safe data structure
CN107515723B (zh) * 2016-06-16 2020-04-24 伊姆西Ip控股有限责任公司 用于管理存储系统中的存储器的方法和系统
KR102683728B1 (ko) * 2016-07-22 2024-07-09 삼성전자주식회사 데이터 스토리지 시스템의 낮은 쓰기 레이턴시를 얻는 방법
US10354716B2 (en) * 2016-09-16 2019-07-16 Aspiring Sky Co. Limited SRAM based memory structures and methods thereof
US10304418B2 (en) * 2016-09-27 2019-05-28 Intel Corporation Operating system transparent system memory abandonment
US10785301B2 (en) * 2017-08-03 2020-09-22 Toshiba Memory Corporation NVM express over fabrics
US10620870B2 (en) 2017-12-08 2020-04-14 Intel Corporation Data storage device with bytewise copy
US10782916B2 (en) * 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US10910048B1 (en) 2020-01-16 2021-02-02 Micron Technology, Inc. Extended memory communication
US11287987B2 (en) 2020-03-04 2022-03-29 Micron Technology, Inc. Coherency locking schemes
US20230129363A1 (en) * 2020-08-07 2023-04-27 Micron Technology, Inc. Memory overlay using a host memory buffer
US11449419B2 (en) * 2020-08-17 2022-09-20 Micron Technology, Inc. Disassociating memory units with a host system
US11733884B2 (en) * 2021-03-19 2023-08-22 Micron Technology, Inc. Managing storage reduction and reuse with failing multi-level memory cells
CN113760189B (zh) * 2021-08-19 2024-04-09 上海卫星工程研究所 载荷数据填充存储方法和系统
CN117931720B (zh) * 2024-03-22 2024-07-19 南京大学 基于局部总线结构改进的串行总线及数据交互方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161216A (ja) * 1994-12-09 1996-06-21 Toshiba Corp メモリ高速クリア機能を持つ情報処理装置
JP2007052717A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム

Family Cites Families (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1293819C (en) 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
JPS6464073A (en) 1987-09-03 1989-03-09 Minolta Camera Kk Image memory
JP2661224B2 (ja) 1988-12-23 1997-10-08 株式会社リコー メモリ増設方式
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JP3038781B2 (ja) 1989-04-21 2000-05-08 日本電気株式会社 メモリアクセス制御回路
US5680570A (en) 1991-06-12 1997-10-21 Quantum Corporation Memory system with dynamically allocatable non-volatile storage capability
JP3407317B2 (ja) * 1991-11-28 2003-05-19 株式会社日立製作所 フラッシュメモリを使用した記憶装置
WO1993018461A1 (en) * 1992-03-09 1993-09-16 Auspex Systems, Inc. High-performance non-volatile ram protected write cache accelerator system
CN1287377C (zh) 1994-06-07 2006-11-29 日立环球储存科技日本有限公司 对多种运作模式进行选择后进行记录/再生的信息存储设备
US5710931A (en) 1994-09-07 1998-01-20 Canon Kabushiki Kaisha Suspension state control for information processing devices such as battery powered computers
JP3687115B2 (ja) 1994-10-27 2005-08-24 ソニー株式会社 再生装置
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
EP0749063A3 (en) 1995-06-07 1999-01-13 International Business Machines Corporation Method and apparatus for suspend/resume operation in a computer
IT235879Y1 (it) 1995-06-14 2000-07-18 Olivetti & Co Spa Tastiera per l'introduzione di dati con posizionatore di traccia
US6393492B1 (en) 1995-11-03 2002-05-21 Texas Instruments Incorporated Method and arrangement for operating a mass memory storage peripheral computer device connected to a host computer
US5802069A (en) * 1995-11-13 1998-09-01 Intel Corporation Implementing mass storage device functions using host processor memory
US5822553A (en) 1996-03-13 1998-10-13 Diamond Multimedia Systems, Inc. Multiple parallel digital data stream channel controller architecture
US5838873A (en) 1996-05-31 1998-11-17 Thomson Consumer Electronics, Inc. Packetized data formats for digital data storage media
US5805882A (en) 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US5933626A (en) 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions
US6226710B1 (en) 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
JP4310821B2 (ja) 1997-12-24 2009-08-12 ソニー株式会社 情報記録装置および方法
JP3990485B2 (ja) 1997-12-26 2007-10-10 株式会社ルネサステクノロジ 半導体不揮発性記憶装置
JPH11259357A (ja) * 1998-03-09 1999-09-24 Seiko Epson Corp 半導体集積装置及び不揮発性メモリ書き込み方式
US6173425B1 (en) 1998-04-15 2001-01-09 Integrated Device Technology, Inc. Methods of testing integrated circuits to include data traversal path identification information and related status information in test data streams
US6067300A (en) 1998-06-11 2000-05-23 Cabletron Systems, Inc. Method and apparatus for optimizing the transfer of data packets between local area networks
JP2000057039A (ja) * 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置
US6721288B1 (en) 1998-09-16 2004-04-13 Openwave Systems Inc. Wireless mobile devices having improved operation during network unavailability
EP1125290A4 (en) 1998-09-28 2007-01-17 Squared G Inc T MULTI-BYBASS MASS MEMORY / MEMORY SYSTEM WITH OPTIONAL ACCESS
US6279114B1 (en) 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
JP2001006379A (ja) 1999-06-16 2001-01-12 Fujitsu Ltd 複写、移動機能を有するフラッシュメモリ
US7889544B2 (en) 2004-04-05 2011-02-15 Super Talent Electronics, Inc. High-speed controller for phase-change memory peripheral device
US6513094B1 (en) * 1999-08-23 2003-01-28 Advanced Micro Devices, Inc. ROM/DRAM data bus sharing with write buffer and read prefetch activity
JP2001067786A (ja) 1999-08-30 2001-03-16 Matsushita Electric Ind Co Ltd 記録再生装置
US6757797B1 (en) 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US6665747B1 (en) * 1999-10-22 2003-12-16 Sun Microsystems, Inc. Method and apparatus for interfacing with a secondary storage system
WO2001035200A1 (en) 1999-11-09 2001-05-17 Advanced Micro Devices, Inc. Dynamically adjusting a processor's operational parameters according to its environment
US7552251B2 (en) * 2003-12-02 2009-06-23 Super Talent Electronics, Inc. Single-chip multi-media card/secure digital (MMC/SD) controller reading power-on boot code from integrated flash memory for user storage
US20060075395A1 (en) 2004-10-01 2006-04-06 Lee Charles C Flash card system
US6609182B1 (en) 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
JP3955712B2 (ja) 2000-03-03 2007-08-08 株式会社ルネサステクノロジ 半導体装置
US6785764B1 (en) 2000-05-11 2004-08-31 Micron Technology, Inc. Synchronous flash memory with non-volatile mode register
US20020000931A1 (en) 2000-04-14 2002-01-03 Mark Petronic User interface for a two-way satellite communication system
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
JP2002023962A (ja) 2000-07-07 2002-01-25 Fujitsu Ltd ディスク装置及び制御方法
JP3965874B2 (ja) 2000-07-17 2007-08-29 セイコーエプソン株式会社 記録媒体に二液を用いて印刷する記録方法、この記録方法によって印刷された記録物、およびこの記録方法を実行する手段を備えた記録装置
US6804763B1 (en) 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US6801994B2 (en) * 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
US6990571B2 (en) 2001-04-25 2006-01-24 Intel Corporation Method for memory optimization in a digital signal processor
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US6920540B2 (en) * 2001-10-22 2005-07-19 Rambus Inc. Timing calibration apparatus and method for a memory device signaling system
JP2003150445A (ja) * 2001-11-13 2003-05-23 Fujitsu Ltd 外部記憶装置を有するコンピュータシステム
US6842829B1 (en) * 2001-12-06 2005-01-11 Lsi Logic Corporation Method and apparatus to manage independent memory systems as a shared volume
US6754129B2 (en) 2002-01-24 2004-06-22 Micron Technology, Inc. Memory module with integrated bus termination
US7085866B1 (en) 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
FI115562B (fi) 2002-03-27 2005-05-31 Nokia Corp Menetelmä ja järjestelmä tehonkulutuksen määrittämiseksi elektroniikkalaitteen yhteydessä ja elektroniikkalaite
US6892311B2 (en) 2002-05-08 2005-05-10 Dell Usa, L.P. System and method for shutting down a host and storage enclosure if the status of the storage enclosure is in a first condition and is determined that the storage enclosure includes a critical storage volume
AU2002304404A1 (en) 2002-05-31 2003-12-19 Nokia Corporation Method and memory adapter for handling data of a mobile device using non-volatile memory
JP2004062928A (ja) 2002-07-25 2004-02-26 Hitachi Ltd 磁気ディスク装置及び記憶システム
JP4111789B2 (ja) 2002-09-13 2008-07-02 富士通株式会社 半導体記憶装置の制御方法及び半導体記憶装置
US6901298B1 (en) 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
EP1552411A2 (en) * 2002-10-08 2005-07-13 Koninklijke Philips Electronics N.V. Integrated circuit and method for exchanging data
US20040088474A1 (en) 2002-10-30 2004-05-06 Lin Jin Shin NAND type flash memory disk device and method for detecting the logical address
KR20050075764A (ko) 2002-10-31 2005-07-21 링 테크노로지 엔터프라이즈, 엘엘씨 스토리지 시스템에 관한 방법 및 시스템
US7949777B2 (en) 2002-11-01 2011-05-24 Avid Technology, Inc. Communication protocol for controlling transfer of temporal data over a bus between devices in synchronization with a periodic reference signal
US7290093B2 (en) 2003-01-07 2007-10-30 Intel Corporation Cache memory to support a processor's power mode of operation
US7181574B1 (en) 2003-01-30 2007-02-20 Veritas Operating Corporation Server cluster using informed prefetching
FI117489B (fi) 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
TWI220733B (en) * 2003-02-07 2004-09-01 Ind Tech Res Inst System and a method for stack-caching method frames
WO2004084231A1 (en) 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Universal memory device having a profil storage unit
US7233335B2 (en) 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource
US6981123B2 (en) 2003-05-22 2005-12-27 Seagate Technology Llc Device-managed host buffer
US7822105B2 (en) 2003-09-02 2010-10-26 Sirf Technology, Inc. Cross-correlation removal of carrier wave jamming signals
US20050071570A1 (en) * 2003-09-26 2005-03-31 Takasugl Robin Alexis Prefetch controller for controlling retrieval of data from a data storage device
US7321958B2 (en) * 2003-10-30 2008-01-22 International Business Machines Corporation System and method for sharing memory by heterogeneous processors
US7120766B2 (en) * 2003-12-22 2006-10-10 Inernational Business Machines Corporation Apparatus and method to initialize information disposed in an information storage and retrieval system
US20050204113A1 (en) 2004-03-09 2005-09-15 International Business Machines Corp. Method, system and storage medium for dynamically selecting a page management policy for a memory controller
JP4402997B2 (ja) 2004-03-26 2010-01-20 株式会社日立製作所 ストレージ装置
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
JP2005309653A (ja) 2004-04-20 2005-11-04 Hitachi Global Storage Technologies Netherlands Bv ディスク装置及びキャッシュ制御方法
US20070234006A1 (en) * 2004-04-26 2007-10-04 Koninklijke Philips Electronics, N.V. Integrated Circuit and Metod for Issuing Transactions
US7877569B2 (en) 2004-04-28 2011-01-25 Panasonic Corporation Reduction of fragmentation in nonvolatile memory using alternate address mapping
US7480749B1 (en) * 2004-05-27 2009-01-20 Nvidia Corporation Main memory as extended disk buffer memory
US7958292B2 (en) 2004-06-23 2011-06-07 Marvell World Trade Ltd. Disk drive system on chip with integrated buffer memory and support for host memory access
JP4768237B2 (ja) * 2004-06-25 2011-09-07 株式会社東芝 携帯可能電子装置及び携帯可能電子装置の制御方法
US7380095B2 (en) 2004-06-30 2008-05-27 Intel Corporation System and method for simulating real-mode memory access with access to extended memory
US8490102B2 (en) 2004-07-29 2013-07-16 International Business Machines Corporation Resource allocation management using IOC token requestor logic
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US20060120235A1 (en) * 2004-12-06 2006-06-08 Teac Aerospace Technologies System and method of erasing non-volatile recording media
CN101111825A (zh) * 2004-12-06 2008-01-23 Teac宇航技术公司 擦除非易失性记录介质的系统和方法
US20060119602A1 (en) * 2004-12-07 2006-06-08 Fisher Andrew J Address based graphics protocol
US7243173B2 (en) 2004-12-14 2007-07-10 Rockwell Automation Technologies, Inc. Low protocol, high speed serial transfer for intra-board or inter-board data communication
US7275140B2 (en) 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
KR100706246B1 (ko) 2005-05-24 2007-04-11 삼성전자주식회사 읽기 성능을 향상시킬 수 있는 메모리 카드
JP2006343923A (ja) 2005-06-08 2006-12-21 Fujitsu Ltd ディスク記録装置
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7610445B1 (en) * 2005-07-18 2009-10-27 Palm, Inc. System and method for improving data integrity and memory performance using non-volatile media
US7571295B2 (en) 2005-08-04 2009-08-04 Intel Corporation Memory manager for heterogeneous memory control
JP4305429B2 (ja) 2005-08-18 2009-07-29 トヨタ自動車株式会社 インホイールサスペンション
JP4685567B2 (ja) 2005-09-15 2011-05-18 株式会社日立製作所 情報処理装置によるサービス提供システム
KR100673013B1 (ko) * 2005-09-21 2007-01-24 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
CN107358974A (zh) 2005-09-30 2017-11-17 考文森智财管理公司 多个独立的串行链接存储器
JP4903415B2 (ja) * 2005-10-18 2012-03-28 株式会社日立製作所 記憶制御システム及び記憶制御方法
US7533242B1 (en) * 2005-10-31 2009-05-12 Sun Microsystems, Inc. Prefetch hardware efficiency via prefetch hint instructions
US7783845B2 (en) 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
JP2007156597A (ja) 2005-12-01 2007-06-21 Hitachi Ltd ストレージ装置
US20070136523A1 (en) 2005-12-08 2007-06-14 Bonella Randy M Advanced dynamic disk memory module special operations
US20070147115A1 (en) 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7492368B1 (en) 2006-01-24 2009-02-17 Nvidia Corporation Apparatus, system, and method for coalescing parallel memory requests
US20070226795A1 (en) 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
JP4167695B2 (ja) 2006-03-28 2008-10-15 株式会社Snkプレイモア 遊技機
US7925860B1 (en) 2006-05-11 2011-04-12 Nvidia Corporation Maximized memory throughput using cooperative thread arrays
KR101392609B1 (ko) 2006-05-23 2014-05-08 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 직렬로 상호접속된 장치에 대해 장치 식별자를 확립하는 기기 및 방법
US7753281B2 (en) * 2006-06-01 2010-07-13 Hewlett-Packard Development Company, L.P. System and method of updating a first version of a data file in a contactless flash memory device
JP4182993B2 (ja) 2006-06-30 2008-11-19 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
WO2008016170A1 (en) 2006-07-31 2008-02-07 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US9798528B2 (en) 2006-09-13 2017-10-24 International Business Machines Corporation Software solution for cooperative memory-side and processor-side data prefetching
US20080081609A1 (en) 2006-09-29 2008-04-03 Motorola, Inc. Method and system for associating a user profile to a sim card
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
TWM317043U (en) 2006-12-27 2007-08-11 Genesys Logic Inc Cache device of the flash memory address transformation layer
TWI463321B (zh) 2007-01-10 2014-12-01 Mobile Semiconductor Corp 用於改善外部計算裝置效能的調適性記憶體系統
KR100849182B1 (ko) 2007-01-22 2008-07-30 삼성전자주식회사 반도체 카드 패키지 및 그 제조방법
US8312559B2 (en) 2007-01-26 2012-11-13 Hewlett-Packard Development Company, L.P. System and method of wireless security authentication
KR100881052B1 (ko) 2007-02-13 2009-01-30 삼성전자주식회사 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법
US20080235477A1 (en) * 2007-03-19 2008-09-25 Rawson Andrew R Coherent data mover
JP2008250961A (ja) 2007-03-30 2008-10-16 Nec Corp 記憶媒体の制御装置、データ記憶装置、データ記憶システム、方法、及び制御プログラム
CA2686313C (en) * 2007-05-07 2012-10-02 Vorne Industries, Inc. Method and system for extending the capabilities of embedded devices through network clients
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
WO2009016832A1 (ja) * 2007-07-31 2009-02-05 Panasonic Corporation 不揮発性記憶装置および不揮発性記憶システム
US8166238B2 (en) 2007-10-23 2012-04-24 Samsung Electronics Co., Ltd. Method, device, and system for preventing refresh starvation in shared memory bank
US7730248B2 (en) 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
US8185685B2 (en) * 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
KR101077339B1 (ko) * 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
US8892831B2 (en) * 2008-01-16 2014-11-18 Apple Inc. Memory subsystem hibernation
EP2274676A1 (en) * 2008-01-31 2011-01-19 Oracle International Corporation System and method for transactional cache
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8209463B2 (en) 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8180975B2 (en) 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
JP4672742B2 (ja) 2008-02-27 2011-04-20 株式会社東芝 メモリコントローラおよびメモリシステム
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
JP4643667B2 (ja) 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
US8775718B2 (en) 2008-05-23 2014-07-08 Netapp, Inc. Use of RDMA to access non-volatile solid-state memory in a network storage system
US8099522B2 (en) 2008-06-09 2012-01-17 International Business Machines Corporation Arrangements for I/O control in a virtualized system
KR101456976B1 (ko) * 2008-06-09 2014-11-03 삼성전자 주식회사 메모리 테스트 디바이스 및 메모리 테스트 방법
EP2304571A1 (en) * 2008-06-17 2011-04-06 Nxp B.V. Multiprocessor system with mixed software hardware controlled cache management
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8166229B2 (en) 2008-06-30 2012-04-24 Intel Corporation Apparatus and method for multi-level cache utilization
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
WO2010020992A1 (en) * 2008-08-21 2010-02-25 Xsignnet Ltd. Storage system and method of operating thereof
CN101667103B (zh) 2008-09-01 2011-05-04 智微科技股份有限公司 磁盘阵列5控制器及存取方法
US8103830B2 (en) 2008-09-30 2012-01-24 Intel Corporation Disabling cache portions during low voltage operations
US8181046B2 (en) * 2008-10-29 2012-05-15 Sandisk Il Ltd. Transparent self-hibernation of non-volatile memory system
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8639874B2 (en) 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
CN101571835B (zh) * 2009-03-26 2011-01-26 浙江大学 基于程序的需求来改变Cache组相联度的实现方法
DE112009004621B4 (de) * 2009-05-04 2018-08-23 Hewlett-Packard Development Company, L.P. Speichervorrichtungs-LöschbefehI mit einem Steuerfeld, das durch eine Anforderer-Vorrichtung steuerbar ist
US8806144B2 (en) * 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US8250282B2 (en) 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US8533437B2 (en) * 2009-06-01 2013-09-10 Via Technologies, Inc. Guaranteed prefetch instruction
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US8244981B2 (en) * 2009-07-10 2012-08-14 Apple Inc. Combined transparent/non-transparent cache
JP2011022657A (ja) * 2009-07-13 2011-02-03 Fujitsu Ltd メモリシステムおよび情報処理装置
JP2011028537A (ja) * 2009-07-27 2011-02-10 Buffalo Inc 外部記憶装置へのアクセスを高速化する方法および外部記憶システム
US8453021B2 (en) * 2009-07-29 2013-05-28 Stec, Inc. Wear leveling in solid-state device
US8266481B2 (en) * 2009-07-29 2012-09-11 Stec, Inc. System and method of wear-leveling in flash storage
JP2011039849A (ja) * 2009-08-12 2011-02-24 Canon Inc 情報処理装置及びその制御方法、並びにプログラム
US8667225B2 (en) 2009-09-11 2014-03-04 Advanced Micro Devices, Inc. Store aware prefetching for a datastream
US9952977B2 (en) 2009-09-25 2018-04-24 Nvidia Corporation Cache operations and policies for a multi-threaded client
US9003159B2 (en) 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
JP2011082911A (ja) * 2009-10-09 2011-04-21 Sony Corp 周辺機器および機器接続システム
JP5526697B2 (ja) * 2009-10-14 2014-06-18 ソニー株式会社 ストレージ装置およびメモリシステム
KR101602939B1 (ko) 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8452946B2 (en) * 2009-12-17 2013-05-28 Intel Corporation Methods and apparatuses for efficient load processing using buffers
US8364886B2 (en) 2010-01-26 2013-01-29 Seagate Technology Llc Verifying whether metadata identifies a most current version of stored data in a memory space
US8255617B2 (en) 2010-01-26 2012-08-28 Seagate Technology Llc Maintaining data integrity in a data storage device
US9128718B1 (en) 2010-03-29 2015-09-08 Amazon Technologies, Inc. Suspend using internal rewriteable memory
US8291172B2 (en) 2010-04-27 2012-10-16 Via Technologies, Inc. Multi-modal data prefetcher
JP4988007B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ
US8966176B2 (en) * 2010-05-27 2015-02-24 Sandisk Il Ltd. Memory management storage to a host device
KR101734204B1 (ko) 2010-06-01 2017-05-12 삼성전자주식회사 프로그램 시퀀서를 포함하는 플래시 메모리 장치 및 시스템, 그리고 그것의 프로그램 방법
US8397101B2 (en) 2010-06-03 2013-03-12 Seagate Technology Llc Ensuring a most recent version of data is recovered from a memory
US8826051B2 (en) 2010-07-26 2014-09-02 Apple Inc. Dynamic allocation of power budget to a system having non-volatile memory and a processor
US8938574B2 (en) 2010-10-26 2015-01-20 Lsi Corporation Methods and systems using solid-state drives as storage controller cache memory
TWI417727B (zh) * 2010-11-22 2013-12-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法
EP2652623B1 (en) * 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
GB2486738B (en) 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
US20120179874A1 (en) 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
US10631246B2 (en) 2011-02-14 2020-04-21 Microsoft Technology Licensing, Llc Task switching on mobile devices
US8694764B2 (en) 2011-02-24 2014-04-08 Microsoft Corporation Multi-phase resume from hibernate
CN102156629A (zh) * 2011-05-04 2011-08-17 苏州国芯科技有限公司 32位指令扩展的方法
US8706955B2 (en) 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
US9645758B2 (en) 2011-07-22 2017-05-09 Sandisk Technologies Llc Apparatus, system, and method for indexing data of an append-only, log-based structure
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
JP5762930B2 (ja) * 2011-11-17 2015-08-12 株式会社東芝 情報処理装置および半導体記憶装置
EP2631916B1 (en) * 2011-09-06 2015-08-26 Huawei Technologies Co., Ltd. Data deletion method and apparatus
US8719464B2 (en) * 2011-11-30 2014-05-06 Advanced Micro Device, Inc. Efficient memory and resource management
US20130145055A1 (en) * 2011-12-02 2013-06-06 Andrew Kegel Peripheral Memory Management
CN103975287B (zh) 2011-12-13 2017-04-12 英特尔公司 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持
KR101915073B1 (ko) 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단
US9069551B2 (en) 2011-12-22 2015-06-30 Sandisk Technologies Inc. Systems and methods of exiting hibernation in response to a triggering event
US8879346B2 (en) 2011-12-30 2014-11-04 Intel Corporation Mechanisms for enabling power management of embedded dynamic random access memory on a semiconductor integrated circuit package
CN102609378B (zh) 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
JP2014044490A (ja) 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
CA2891355C (en) 2012-11-20 2022-04-05 Charles I. Peddle Solid state drive architectures
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
US10248587B2 (en) * 2013-11-08 2019-04-02 Sandisk Technologies Llc Reduced host data command processing
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
CN103761988B (zh) * 2013-12-27 2018-01-16 华为技术有限公司 固态硬盘及数据移动方法
US10249351B2 (en) * 2016-11-06 2019-04-02 Intel Corporation Memory device with flexible internal data write control circuitry
KR20180055297A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 언맵 리드를 수행하는 메모리 장치 및 메모리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161216A (ja) * 1994-12-09 1996-06-21 Toshiba Corp メモリ高速クリア機能を持つ情報処理装置
JP2007052717A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019146497A1 (ja) 2018-01-24 2019-08-01 株式会社Nttドコモ ユーザ端末及び無線通信方法

Also Published As

Publication number Publication date
KR102458334B1 (ko) 2022-10-24
KR102127327B1 (ko) 2020-06-29
US20130198434A1 (en) 2013-08-01
JP2019061699A (ja) 2019-04-18
US20210191618A1 (en) 2021-06-24
US10877665B2 (en) 2020-12-29
CN104081366B (zh) 2018-03-27
JP6442009B2 (ja) 2018-12-19
WO2013110847A1 (en) 2013-08-01
EP2795470A1 (en) 2014-10-29
KR102317152B1 (ko) 2021-10-27
JP6193886B2 (ja) 2017-09-06
CN108470007B (zh) 2022-06-17
KR20210130829A (ko) 2021-11-01
CN108470007A (zh) 2018-08-31
EP3493066A1 (en) 2019-06-05
EP3493066B1 (en) 2023-03-01
KR20140116408A (ko) 2014-10-02
KR20200079558A (ko) 2020-07-03
US11797180B2 (en) 2023-10-24
KR20220143972A (ko) 2022-10-25
JP2015511350A (ja) 2015-04-16
CN104081366A (zh) 2014-10-01
EP2795470B1 (en) 2019-03-06
US20170038975A1 (en) 2017-02-09
US20240152274A1 (en) 2024-05-09
JP6817273B2 (ja) 2021-01-20
US9417998B2 (en) 2016-08-16
EP2795470A4 (en) 2015-09-30

Similar Documents

Publication Publication Date Title
JP6442009B2 (ja) 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
US11782647B2 (en) Managing operational state data in memory module
US20230297271A1 (en) Nand-based storage device with partitioned nonvolatile write buffer
CN108780423B (zh) 多级存储器管理电路、管理方法和管理设备
US11036412B2 (en) Dynamically changing between latency-focused read operation and bandwidth-focused read operation
CN117032970A (zh) 负载减少的非易失性存储器接口
KR20190051530A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180327

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181122

R150 Certificate of patent or registration of utility model

Ref document number: 6442009

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