JP2015507798A - メモリ・モジュールにおいてデータ・エンティティを消去するための方法 - Google Patents

メモリ・モジュールにおいてデータ・エンティティを消去するための方法 Download PDF

Info

Publication number
JP2015507798A
JP2015507798A JP2014549505A JP2014549505A JP2015507798A JP 2015507798 A JP2015507798 A JP 2015507798A JP 2014549505 A JP2014549505 A JP 2014549505A JP 2014549505 A JP2014549505 A JP 2014549505A JP 2015507798 A JP2015507798 A JP 2015507798A
Authority
JP
Japan
Prior art keywords
sectors
memory
memory device
data entity
erasing
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.)
Pending
Application number
JP2014549505A
Other languages
English (en)
Other versions
JP2015507798A5 (ja
Inventor
ミリー キンモ
ミリー キンモ
Original Assignee
メモリー テクノロジーズ リミティド ライアビリティ カンパニー
メモリー テクノロジーズ リミティド ライアビリティ カンパニー
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 メモリー テクノロジーズ リミティド ライアビリティ カンパニー, メモリー テクノロジーズ リミティド ライアビリティ カンパニー filed Critical メモリー テクノロジーズ リミティド ライアビリティ カンパニー
Publication of JP2015507798A publication Critical patent/JP2015507798A/ja
Publication of JP2015507798A5 publication Critical patent/JP2015507798A5/ja
Pending legal-status Critical Current

Links

Images

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/285Halt processor DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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

Abstract

【課題】メモリ・モジュールにおけるデータ・エンティティを消去すること。【解決手段】メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納するステップであって、この少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ステップと、メモリ・コントローラにおいて、このメモリ・デバイスの少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持するステップと、を含む方法。この方法は、このコンテキスト情報を使用して、このメモリ・デバイスの少なくとも2つのセクタを消去するステップを更に含む。【選択図】図1

Description

本願発明は、一般に、メモリ・モジュールに関するものである。本願発明は、特に、排他的ではないが、メモリ・モジュールにおけるデータ・エンティティを消去することに関する。
今日のメモリ・モジュール・インタフェースは、使用されているメモリ技術を隠すことができる。ホスト・ソフトウェアは、種々のメモリ技術とアーキテクチャに適応しなければならないことはない。しかしながら、これは、メモリ・モジュールが、損耗平均化および消去機能を効率的に取り扱うことができないという問題を起こす。例えば、メモリー・カードが、一旦、いっぱいに書き込まれたならば、たとえ、それの中に格納されたすべてのファイルが削除されたとしても、いっぱいであるように、内部的には見える。この理由は、通常のファイル・システム・インプリメンテーションにおいて、データは、メモリー・カードへ書き込まれるだけであり、新しいデータは、古いものに上書きするだけであることである。ファイルは、ファイル/クラスタ・エントリを、「予約されていない」と書き込むことによって、ファイル・アロケーション・テーブルだけから削除される。
管理されたNANDメモリ・サブシステムにおいて、メモリ・コントローラは、不良ブロック管理と損耗平均化のようなフラッシュ管理機能の面倒を見る。メモリ・コントローラは、データのファイル・システム・レベルの詳細を知らないが、しかし、(例えば、特定のセクタが、同じであるか異なるファイルに属しているか、など)異なるセクタの間での可能な関係を理解することなく、データのセクタの読み出し/書き込みを管理するだけである。
外部ホストがファイルを削除するときに、ホストは、ファイル・アロケーション・テーブル(FAT)における対応するアロケーションを、フリーとしてマークする。高度なホスト・オペレーティング・システム、および/または、ファイル・システムは、また、そのファイルがカバーしたセクタに、いわゆるトリミング機能を実行することもできる。ファイル・アロケーション・テーブル(FAT)がどれくらい断片的であるか、に依存して、いくつかのコマンドは、ファイルに属しているすべてのセクタのトリミングをすることが必要でありえる。
本願発明の第1の例の態様にしたがって、メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納するステップであって、該少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ステップと、メモリ・コントローラにおいて、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持するステップと、このコンテキスト情報を使用して、このメモリ・デバイスの少なくとも2つのセクタを消去するステップと、を含む方法が提供される。
実施形態においては、この方法は、前記メモリ・コントローラにおいて、前記少なくとも2つのセクタのうちの少なくとも1つを、前記メモリ・デバイスから消去することを示す信号を規定するステップを更に含むことができる。
実施形態においては、この方法は、前記ホストによって、外部ホスト・アプリケーションからの削除信号に応じて、ファイル・アロケーション・テーブルから、データ・エンティティ・エントリを削除するステップと、前記少なくとも2つのセクタのうちの少なくとも1つを、前記ファイル・アロケーション・テーブルから前記データ・エンティティ・エントリの削除に対応して、メモリ・デバイスから、消去することを示す信号を生成するステップとを更に含むことができる。
このポインターは、前記メモリ・デバイスの第1のセクタの論理アドレスを示している開始アドレスと、前記メモリ・デバイスの第2のセクタの論理アドレスを示している開始アドレスと、を含むことができる。このポインターは、また、前記メモリ・デバイスの第1のセクタの物理アドレスを示している開始アドレスと、前記メモリ・デバイスの第2のセクタの物理アドレスを示している開始アドレスと、を含むこともできる。
コンテキスト識別子を、前記コンテキスト情報に対して規定することができる。さらにまた、グループ番号または連想コマンドを、前記コンテキスト情報に対して規定することができる。
実施形態においては、この方法は、前記コンテキスト識別子と結びつけられた、前記少なくとも2つのセクタのうちの少なくとも1つを消去することを示す前記信号に応じて、このメモリ・デバイスの少なくとも2つのセクタを消去するステップを更に含むことができる。
実施形態においては、この方法は、
− ERASE、
− TRIM、
− SecureTRIM、
− SecureERASE、
− DISCARD、
− Sanitize、
− Unmap(UFS)
のコマンドのうちの少なくとも1つを用いた消去機能によって、前記メモリ・デバイスの前記少なくとも2つのセクタを消去するステップを更に含むことができる。
実施形態においては、この方法は、前記消去機能によって、前記第1のセクタを消去することを示す第1の信号と、前記第2のセクタを消去することを示す第2の信号とを生成するステップを更に含むことができる。前記セクタは、
− 消去ブロック、
− 書き込みブロック、
− ページ、
− スーパー・ページ(ページのセット)、
− (例えば、ハードディスクの)セクタ、
のうちの少なくとも1つを含むことができる。
本願発明の第2の例の態様にしたがって、少なくとも1つのメモリ・デバイスと、外部ホストへの、および、前記少なくとも1つのメモリ・デバイスへのインタフェースを有するメモリ・コントローラと、を備えるメモリ・モジュールであって、前記メモリ・デバイスは、コンピュータ・プログラムコードを含み、該コンピュータ・プログラムコードは、前記メモリ・コントローラを用いて、前記メモリ・モジュールに、少なくとも、メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納することであって、該少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ことと、メモリ・コントローラにおいて、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持することと、このコンテキスト情報を使用して、前記メモリ・デバイスの前記少なくとも2つのセクタを消去することと、をさせるように構成されている、メモリ・モジュールが提供される。
実施形態においては、前記コンピュータ・プログラムコードは、前記メモリ・コントローラを用いて、前記メモリ・モジュールに、少なくとも、前記メモリ・コントローラにおいて、前記少なくとも2つのセクタのうちの少なくとも1つを、前記メモリ・デバイスから消去することを示す信号を規定することをさせるように更に構成されている。
データ・エンティティ・エントリは、外部ホスト・アプリケーションからの削除信号に応じて、ホストによって、ファイル・アロケーション・テーブルから、削除することができる。また、前記少なくとも2つのセクタのうちの少なくとも1つを、メモリ・デバイスから、消去することを示す信号は、前記ファイル・アロケーション・テーブルから前記データ・エンティティ・エントリの削除に対応して、生成することができる。
実施形態においては、前記セクタは、
− 消去ブロック、
− 書き込みブロック、
− ページ、
− スーパー・ページ(ページのセット)、
− (例えば、ハードディスクの)セクタ、
のうちの少なくとも1つを含む。
実施形態においては、前記メモリ・モジュールは、
− 埋め込み型マルチ・メディア・カード(eMMC:Embedded MultiMediaCard)、
− メモリー・カード(SD)、
− アドバンスト・テクノロジー・アタッチメント(ATA)、
− ユニバーサル・フラッシュ・ストレージ(UFS:Universal Flash Storage)
のうちの少なくとも1つを含む。
本願発明の第3の例の態様にしたがって、コンピュータ実行可能プログラムコードを含むコンピュータ読取り可能媒体の上で具体化されたコンピュータ・プログラムであって、該コンピュータ実行可能プログラムコードは、メモリ・モジュールの少なくとも1つのコントローラによって実行されるとき、該メモリ・モジュールに、メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納することであって、該少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ことと、メモリ・コントローラにおいて、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持することと、このコンテキスト情報を使用して、前記メモリ・デバイスの前記少なくとも2つのセクタを消去することと、をさせる、コンピュータ・プログラムが提供される。
いかなる前述のメモリ媒体でも、例えば、データ・ディスクまたはディスケットのようなディジタル・データ・ストレージ、光学ストレージ、磁気ストレージ、ホログラフィック・ストレージ、光磁気ストレージ、ソリッド・ステート・メモリ、相変化メモリ、抵抗変化ランダム・アクセス・メモリ、磁気ランダム・アクセス・メモリ、固体電解質メモリ、強誘電体ランダム・アクセス・メモリ、有機メモリまたはポリマー・メモリを含むことができる。メモリ媒体は、メモリを格納するほかの実質的な機能を有することなくデバイスに形成することができる。または、コンピュータのメモリ、チップ・セット、および、電子デバイスのサブ・アセンブリを含むが、これに限らず、他の機能を有するデバイスの一部として形成することができる。
本願発明の異なる拘束力のない例の態様と実施形態が、前述において図示された。上記の実施形態は、単に、本願発明の実現において利用することができるように選ばれた態様またはステップを説明するためだけに用いられる。いくつかの実施形態は、本願発明の特定の例の態様に関してだけ、提示することができる。対応する実施形態は、同様に他の例の態様に適用できることは理解されるべきである。本願発明は、添付の図面を参照して、記述されるが、例としてのみである。
本願発明の種々の実施形態が適用することができるシステムアーキテクチャーのいくらかの詳細を示す。 本願発明の種々の実施形態が適用することができるメモリ・デバイスのいくらかの詳細を示す。 本願発明の種々の実施形態が適用することができるユーザ装置の例のブロック図を提示する。 本願発明の例の実施形態に従って、メモリ・モジュールにおける動作を示すフローチャートを示す。
以下の記載において、同じ数字は、同じ要素を意味する。
図1は、本願発明の種々の実施形態が適用することができるシステム100のいくらかの詳細を示す。このシステムは、例えば、ユーザ装置、ユーザ機器(UE)、および、メモリ・モジュール120のような外部ホスト110を含む。加えて、システムは、ホスト110とメモリ・モジュール120との間のデータ、制御信号およびクロック信号を通信するためのインタフェース130を備える。
メモリ・モジュール120は、たとえば、メモリー・カード、マルチ・メディア・カード(MMC:Multi Media Card)、セキュア・デジタル(SD)カード、あるいは、埋め込みメモリを備えることができる。メモリ・モジュール120は、メモリ・コントローラ121および、少なくとも1つのメモリ・デバイス122を備えることができる。メモリ・デバイス122は、データを格納するための複数のセクタを有するメモリ・ブロックを備えることができる。メモリ・コントローラ120は、ホスト・デバイス110との通信を容易にするためのホスト・インタフェース・コントローラ123、メモリ・デバイス122やメモリ・メンテナンス・コントローラ125との通信、および、動作(例えば、読み取り、書き込み、消去操作)を容易にするためのメモリ・インタフェース・コントローラ124を備えることができる。実施形態においては、コントローラ121、123−125は論理回路であることができる。
実施形態においては、メモリ・モジュール120がホスト(電子)デバイス110に接続しているとき、ホスト・コントローラ113は、インタフェース130を介して、ホスト・インタフェース・コントローラ123へコマンド信号を提供することができる。メモリ・デバイス122において、例えば、ファイルのようなデータ・エンティティは、メモリ・デバイス122の少なくとも2つのセクタを使って格納される。
実施形態においては、セクタは、
− 消去ブロック(NAND)、
− 書き込みブロック(eMMC)、
− ページ(NAND)、
− スーパー・ページ(ページのセット)、
−(例えば、ハードディスクの)セクタ
のうちの少なくとも1つを備えることができる。
よりよく区別するために、大きなシーケンシャル操作と小さなランダム操作との間で、また、マルチタスキングのサポートを改善するために、コンテキストは、読込み、または、書込みコマンドのグループと結びついていることができる。コマンドのグループを単一のコンテキストと結びつけることは、このデバイスが、データのハンドリングを最適化することを許容する。断片化したセクタを消去するために、より速いソリューションもまた、必要である。
コンテキストは、特定の読取り・書込みパターン(例えば、ある粒状度でシーケンシャルな)に対して構成されたアクティブなセッションとみることができる。マルティプルな読込みまたは書込みコマンドは、デバイスにパフォーマンスを最適化することを許容するために、それらの間のある論理的関係をつくる、このコンテキストと結びついている。例えば、大きなシーケンシャル書込みパターンは、デバイスが、内部の局所性を改善し、いくらかのオーバーヘッドを減少することを許容することによって、より良いパフォーマンスを有することができる。(例えば、データのある大規模ユニットが、書き込みが実行されている間の全体として電源異常に影響を受けることが許容されるならば、このユニットを満たすすべてのコマンドは、より速く動作することができる。電源異常の場合には通常、個々の書き込みを各々保護することが要求されるオーバーヘッドを減らすことができるからである。)
デバイスは、1つ以上の並列のコンテキストをサポートすることができ、これは、コンテキスト識別子(コンテキストID)によって識別される。コンテキストを使用するために、利用できるコンテキストIDが選択される。つぎに、それは、構成レジスタに書き込むことによって初期化される。すると、読取り・書込みコマンドを送る前に、コマンドにおけるコンテキストIDを指定することによってそのコンテキストに関連して、データを、読取り・書込みすることができる。そのコンテキストがもはや使用されないとき、コンテキストIDを閉じるために、構成レジスタは更新されなければならない。コンテキストは、別の構成/使用のためにそれを変更する前に、閉じられなければならない。
実施形態においては、例えば、セクタのようなメモリ・デバイス・ロケーションは、ポインターを使用して示すことができる。このポインターは、たとえば、メモリ・デバイス・ロケーションの論理アドレスまたは物理アドレスを含むことができる。
メモリ・モジュール120のメモリ・コントローラ121において、コンテキスト情報は、データ・エンティティについて維持されることができる。コンテキスト情報は、メモリ・デバイス122の少なくとも2つのセクタの論理アドレスを含むことができる。メモリ・コントローラ121において、信号を、少なくとも2つのセクタをメモリ・デバイス122から消去することを示すように規定することができる。メモリ・デバイス122の少なくとも2つのセクタは、つぎに、コンテキスト情報を使って消去することができる。
ここに記載されたように、ホスト110から受信される信号は、少なくとも2つのセクタに含まれる、メモリ・デバイス122から消去されるデータ・エンティティのためのコンテキストIDを含むことができる。コンテキストIDは、ポインターを備えているコンテキスト情報を識別する。ポインターは、メモリ・デバイス122の第1のセクタの論理アドレスを示す開始アドレスと、メモリ・デバイス122の第2のセクタの論理アドレスを示す開始アドレスとを備えることができる。データ・エンティティの消去は、そのデータ・エンティティまたは、そのデータ・エンティティに関係するデータを含む少なくとも1つのセクタに関するデータを含むすべてのセクタを消去することを含むことができる。
実施形態においては、消去は、
− ERASE (eMMC)、
− TRIM(eMMC/ATA)、
− SecureTRIM/SecureERASE(eMMC)、
− DISCARD(eMMC)、
− Sanitize (eMMC)、
− Unmap (UFS)
機能のうちの少なくとも1つを使ってインプリメントすることができる。
実施形態においては、消去可能な単位は、消去グループとして規定することができる。この消去グループは、書き込みブロックにおいて測定される。それは、基本的な書き込み可能な単位である。消去グループのサイズは、デバイスに特有のパラメータである。明示的に消去されたメモリ範囲のコンテンツは、異なるメモリ技術に依存して、「0」または「1」である。ERASEコマンドが正常に完了すると、消去されたマップされたデバイス・アドレス範囲は、異なるメモリ技術に依存して、すべて「0」または、すべて「1」で上書きされたかのようにふるまう。ERASEコマンドの影響は、単にマップされたホスト・アドレス範囲を、マップされていないホスト・アドレス範囲へ動かすことである。ホストは、Eraseグループの隣接する範囲を消去することができる。消去プロセスを始めることは、3つのステップのシーケンスである。まず、ホストは、ERASE_GROUP_STARTコマンドを用いて、その範囲の開始アドレスを規定し、次に、ERASE_GROUP_ENDコマンドを用いて、その範囲の最終アドレスを規定する。最後に、ゼロにセットする引数ビットを有するERASEコマンドを発行することによって、それは消去プロセスを始める。eraseコマンドのアドレス・フィールドは、バイト単位で、2GBまでの密度、セクタ単位で、2GBより大きい密度に対する消去グループアドレスである。
実施形態においては、トリミング機能TRIMは、上述のERASE機能と同様である。その機能は、グループを消去する代わりに、ブロックを書き込むために消去動作を適用する。トリミング機能TRIMは、ホストが、もはや要求されないデータを識別し、バックグラウンド消去イベントの間に、必要に応じてデータを消去することを許容する。トリム機能が適用される書き込みブロックのコンテンツは、異なるメモリ技術に依存して、「0」または「1」であることができる。
トリミング機能が正常に完了すると、トリミングされたマップされたデバイス・アドレス範囲は、異なるメモリ技術に依存して、すべて「0」または、すべて「1」で上書きされたかのようにふるまう。TRIMコマンドの影響は、単にマップされたホスト・アドレス範囲を、マップされていないホスト・アドレス範囲へ動かすことである。TRIMプロセスを完了することは、3つのステップのシーケンスである。まず、ホストは、ERASE_GROUP_STARTコマンドを用いた範囲の開始アドレスを規定することができ、次に、ERASE_GROUP_ENDコマンドを用いて範囲の最終アドレスを規定し、最後に、引数ビット0を、1にセットし、そして、引数の残りをゼロにセットして、ERASEコマンドを発行することにより消去プロセスを開始する。
実施形態においては、SANITIZE機能を、デバイスからデータを取り除くために用いることができる。SANITIZE操作の使用は、デバイスにマップされていないユーザ・アドレス空間から物理的にデータを取り除くことを要求する。SANITIZE操作が完了されたあと、マップされていないホスト・アドレス空間には、データが存在してはならない。操作されている領域は、ホストによりアクセスできないので、この特徴を要求しているアプリケーションは、個々のデバイス・メーカーとともに、この操作が、適切に実行されることを確実とし、デバイス信頼性に対するインパクトを理解するために、機能しなければならない。
実施形態においては、DISCARD機能は、消去のために使用することができる。DISCARDは、TRIMと同様の操作である。DISCARD機能は、ホストが、バックグラウンド消去イベントの間に、デバイスが必要に応じてデータを消去することができるように、もはや要求されないデータを識別することを許容する。DISCARD機能が適用される書き込みブロックのコンテンツは、「ドント・ケア」となる。DISCARD操作の後、オリジナルデータは、部分的に、あるいは、完全に、デバイスに依存するままにすることができる。デバイスは、廃棄された書き込みブロックのコンテンツを決定する。DISCARDとTRIMの区別は、デバイスが、ホストは、読込み操作が指示されるときに、消去としてマークされた1つ以上の論理的ブロック・アドレスからオリジナルデータを取り出さないことを保証することを要求されない、装置の動作である。TRIMは、異なるメモリ技術に依存して、「0」か「1」によって応答する。廃棄プロセスを始めることは、3つのステップのシーケンスである。まず、ホストは、ERASE_GROUP_STARTコマンドを用いて、その範囲の開始アドレスを規定し、次に、ERASE_GROUP_ENDコマンドを用いて、その範囲囲の最終アドレスを規定する。最後に、1にセットされる引数ビット0およびビット1、および、ゼロにセットされる引数の残りを有するERASEコマンドを発行することによって、それは消去プロセスを始める。DISCARD操作の場合には、そのコマンドは、消去グループよりはむしろ書き込みブロックのアドレスを識別することができる。
実施形態においては、SecureERASE機能を使用することができる。セキュアなパージを示すSecureERASEコマンドは、消去グループの上で実行することができる。セキュアな消去は、この消去グループにおけるデータだけにされるのではなく、別の消去グループにおけるこのデータのいかなるコピーおいても行われなければならない。このコマンドは、直ちに実行され、メモリ・デバイスは、必要なすべての消去グループがパージされるまで、ホストに、コントロールを返さない。1つの消去グループは、例えば、特定のNANDフラッシュにおいて消去することができる最小限のメモリ・ブロックである。
実施形態においては、SecureTRIM機能を使用することができる。SecureERASEと同様に、SecureTRIMコマンドは、消去グループではなく、書き込みブロックのうえで動作する。これを適切に取り扱うために、この操作は、2つのステップに分割されることができる。第1のステップは、第2のステップが呼び出される前に、ブロックの複数のセットに行うことができるセキュア・パージのブロックをマークする。第2のステップは、すべての要求されたセキュア・トリミングを実行する別のビット・フラグシーケンスによる消去である。
メモリ・デバイス122のセクタを消去することは、例えば、本願発明の実施形態にしたがうホスト110によって利用されることができる。ここに記載されたように、メモリ・メンテナンス・コントローラ125は、可能性がある消去セクタまたはブロックを備えるメモリ・メンテナンスを管理することができる。ファイル・アロケーション・テーブル(FAT)からファイル・システム・レベルにおいてデータ・アイテムを削除した後に、ホスト110は、削除されたとしてマークされたすべてのセクタを収集すること、削除されたとしてマークされた複数のセクタを、できる限り、論理的ないし物理的に消去することを実行するようにさらに構成することができる。ホスト110は、また、ガーベッジ・コレクション削除した後のメモリ・デバイス122のメモリ損耗平均化を実行することもできる。さらには、メモリ・メンテナンス・コントローラ125は、ホストからの命令に基づいて、消去されるべきとマークされたすべてのセクタを収集すること、その複数のセクタを、できる限り、論理的ないし物理的に消去することを実行するようにさらに構成されることができる。ホスト110からの命令に基づいて、メモリ・メンテナンス・コントローラ125は、消去の後、メモリ・デバイス122のメモリ損耗平均化を実行することができる。
実施形態においては、メモリ・コントローラ121、ホスト・インタフェース・コントローラ123、メモリ・デバイス・コントローラ124、メモリ・メンテナンス・コントローラ125、および、メモリ・デバイス122は、ソフトウェアモジュール、ハードウェアモジュールまたはその組合せとしてインプリメントすることができる。さらには、モジュール121−125の各々は、別々のモジュール/ブロックとしてインプリメントされることができる、あるいは、メモリ・モジュール120の任意の他の標準モジュール/ブロックとも結合することができる、あるいは、それらの機能性によって、数ブロックに分けることができる。すべての、または、選択したメモリ・モジュール120のモジュール/ブロックは、1つの集積回路を使ってインプリメントすることができる。
実施形態においては、図1に示されるレジスタ126は、以前に記載された構成レジスタ等のレジスタ情報を格納するように構成される。レジスタ126は、例えば、メモリ・デバイス122に位置することもできる、レジスタは、メモリ・コントローラ121によってアクセスされることができる。
図2は、本願発明の種々の実施形態が適用することができるメモリ・デバイス122のいくつかの詳細を示す。
実施形態においては、ファイル・システム・インプリメンテーションにおいて、データは、例えば、メモリ・デバイスへ書き込まれ、そして、新しいデータは、古いものに上書きするだけである。ファイルは、ファイル/クラスタ/セクタ・エントリを、「予約されていない」と書き込むことによって、ファイル・アロケーション・テーブル(FAT)から削除されるだけである。データをメモリ・デバイスから消去することは、別の機能である。
論理インタフェースを介して、フラッシュ・メモリにデータを書き込むときに、ホストは、典型的には、メモリ・システムの連続仮想アドレス空間の中で、ユニークな論理アドレスを、セクタに、クラスタまたはデータの他の単位に割り当てる。ホストは、ファイル・システムを典型的には維持し、ファイルデータを論理的クラスタに割り当てる。ここで、クラスタ・サイズは、典型的には固定である。フラッシュ・デバイスは、複数論理セクタに分割され、ホストは、複数の論理セクタを備えるクラスタの中に、スペースを割り当てる。クラスタは、論理アドレスの細区分であり、クラスタ・マップは、ファイル・アロケーション・テーブル(FAT)として指定されることができる。ファイル・アロケーション・テーブル(FAT)は、通常、格納デバイス自体の上に格納される。
連続論理アドレス空間は、メモリ・デバイス122の中に格納することができるデータのすべてに対してアドレスを提供するのに十分大きい。ホスト・アドレス空間は、セクタのインクリメントまたはデータのクラスタに、典型的には分割される。各々のクラスタは、所与のホストシステムにおいて、データのいくつかのセクタ、だいたい、典型的には、4つのセクタと64のセクタとの間のセクタを含むように設計されることができる。標準的なセクタは、例えば、512または4096バイトのデータを含む。
図2は、典型的には、メモリ・デバイス122がどのように分割されるかの例を示す。格納デバイス122は、複数の分割を含むことができる。そして、図2においては、単一の分割210が、単純さのために示される。分割210は、システム領域220とデータエリア230とを含む。システム領域220は、種々のセグメント、例えば、マスター・ブート・レコード(「MBR」)領域、分割ブート・レコード(「PBR」)領域、FAT1領域、FAT2領域、および、ルート・ディレクトリ領域を有する。
MBR領域は、全体的な分割情報を格納し、媒体がブート可能なデバイスである場合には、MBRは、MBR領域からPBR領域にジャンプする命令を含む。MBR領域も、隠された領域を含み、それはMBR領域とPBR領域との間の予約スペースである。
PBR領域は、分割に対する分割/ブート情報を含む。例えば、PBR領域は、ファイル・アロケーション・テーブル(FAT)(たとえば、12/16/32ビット)のタイプ、ラベル(すなわち、ドライブの名前)、ドライブの寸法、クラスタ・サイズ(すなわち、アロケーションユニットごとのセクタの数)、多くのファイル・アロケーション・テーブル(FAT)領域、(図(2)に示される2つのFAT領域、FAT1およびFAT2)、および、ファイル・アロケーション・テーブル(FAT)ごとのセクタ数に対する情報を含む。ファイル・アロケーション・テーブル(FAT)領域は、各々のファイルに対するセクタ/クラスタ情報を含む。例えば、FAT−12に対して、ファイル・アロケーション・テーブル(FAT)域における各々のエントリは12ビットを含み、そして、合計で4096のエントリがある。ルート・ディレクトリは、各々のファイルに対するエントリを含む。各々のディレクトリ・エントリは、ファイル名またはディレクトリに対する特定数のバイト(たとえば、8バイト)、拡張のためのいくつかのバイト(たとえば、3バイト)、ファイル属性(たとえば、ファイルがリードオンリーであるか、隠されているか、システムファイルであるか、ボリュームラベルであるか、ディレクトリであるか、修正されたものであるか、など)に対して、いくつかのバイト(たとえば、1バイト)、ファイルが作成されたときの日時を示しているいくつかのバイト、開始セクタ/クラスタに対する特定数のバイト数(たとえば、2)、および、ファイルの長さを示している特定数のバイト(たとえば4)を含む。開始セクタ/クラスタに対するいくつかのバイトは、ファイル・アロケーション・テーブル(FAT)における第1のセクタ/クラスタを指しており、終了セクタ/クラスタは、例えば、0xFFFまたは0Xffffffにより、示すことができる。
ディレクトリにファイル名を書き込むために、ホストシステムは、フリーのセクタ/クラスタ・スペースをFAT1領域で見つけ、データが、データエリア230で書き込まれる。FAT1およびFAT2のエントリの両方が、つぎに、更新される。ディレクトリ・エントリ、すなわち、日付/時間/開始セクタ/クラスタ/ファイル長も、また更新される。
実施形態においては、データ・エンティティ、たとえば、ファイル、は、パーティション210において、メモリ・デバイス122に格納される。データ・エンティティは、2つのセクタ231、232に格納される。コンテキスト構成を、このデータ・エンティティに対して規定することができ、コンテキストIDによって識別される。構成は、要求された特定のコンテキストIDの構成レジスタに書き込むことによって、なされることができる。つぎに、このコンテキストIDに結びついているすべての読み出しコマンド、または、書き込みコマンドは、そのIDとともに送られる。そのコンテキストが、もはや必要でないとき、それは、「0」バイトを、構成レジスタへ書き込むことによって閉じなければならない。この構成レジスタは、例えば、各コンテキスト(固定、定義済み#0を除いて)につき1つの15バイト・レジスタのアレイである。異なる規則は、また、同じファイル/コンテキストIDに後ほど追加される新しいデータに対して規定することができる。構成レジスタのIDインデックスは、それを閉じた後に再開することができ、IDインデックスは、常に、新しいエンティティをつくることができる。しかしながら、データがIDインデックスへうまく書き込まれて、コンテキストIDは閉じられたあとに、データは、論理的にグループ化される。ホストに対する、このグループの露出はないが、しかし、メモリ・コントローラは、NANDの予備のページから、例えば、ページまたは格納データのヘッダを見つけ出すための手段を有する。
実施形態においては、ホストは、例えば、ファイルのようなデータ・エンティティを削除することに決める。ホスト・アプリケーションから削除信号を受信することに応じて、ホストは、ファイル・アロケーション・テーブル(FAT)において、フリーとして、対応するアロケーションを、マークするさらには、メモリ・デバイスのセクタ231、232に位置するデータ・エンティティを消去することは、また、望ましいことである。セクタ231、232は、セクタ231、232に対して別々のトリミング機能を使用して、消去することができる。
実施形態においては、複数のセクタに含まれるファイルを消去するための、より効率的な方法がホストからメモリ・デバイスに複数のトリミング・コマンドを送ることのオーバーヘッドを減らすことによって、導入される。メモリ・コントローラは、データ・エンティティ(ファイル)の特定の部分が、互いに属しており、特定の単一のトリミング機能は、全体としてそのようなデータに適用するように規定することができることを通知され得る。そのような機能は、そのファイルでおおわれるセクタの数/アドレスから独立している。コンテキストIDの機能は、例えばファイルなど、データ・エンティティを備えているセクタ231、232を消去するために使用することができる。少なくとも、次のようなオプションが存在することができる。
第1のオプションは、特定のコンテキストID消去機能を導入することである。別々の特定のコマンド、あるいは、既存のコマンドにおける特別なパラメータを、使用することができる。さらには、レジスタの設定を用いることができる。第1のオプションは、既存の消去機能をそのまま利用することができる。そのような消去機能は、また、特定のデータ・エンティティの単一のセクタ、IDまたはファイルを消去するために使用することもできる。消去機能は、例えば、JEDEC eMMCおよびUFSメモリ標準の、Erase、SecureErase、TRIM、SecureTRIM、または、Discardコマンドを備えることができる。
第2のオプションは、消去機能により用いられるコンテキストIDのアドレスを導入することである。消去機能は、開始アドレスまたは、コンテキストIDのどんなアドレスでも使うことができ、そして、自動的に、同じコンテキストIDに属しているすべてのセクタを消去する。
第3のオプションは、階層的な消去機能を導入することである。コンテキストは、他のコンテキストIDのスーパーセットを提供しているコンテキストIDに対応する他のコンテキストのスーパーセットを含むことができる。そのような階層は、コンテキストID1へ書き込まれるデータが例えば、データベースであり、コンテキストID2へ書き込まれるデータがID1データベースのアイテムであることを可能にすることができる。結局、ID2のアドレスへの単一のトリミング・コマンドは、このアイテムに属しているセクタの位置がどんなに断片的であっても、このアイテムをデータベースから無効にすることができ、消去することができる。さらには、ID1のアドレスへの単一のトリミング・コマンドは、全部のデータベース、また、ID2に当初書き込まれたもの以外のそれに属しているすべてのアイテムを無効にすることができる、また、インデックスの階層に関係する制御レジスタも存在する。
図3は、本願発明の種々の実施形態が適用することができるユーザ装置300の例のブロック図を提示する。これは、例えば、移動端末、ラップトップ、タブレット、または、他の通信装置のようなユーザ機器(UE)、ユーザ・デバイスまたは装置、であることができる。
ユーザ装置300の一般的な構成は、通信インタフェース・モジュール350、通信インタフェース・モジュール350に結合されたプロセッサ310、および、プロセッサ310に結合されたメモリ320を備える。ユーザ装置は、更に、メモリ・320における格納されたソフトウェア330を備え、プロセッサ310へロードされて、実行されるように動作可能である。ソフトウェア330は、1つ以上のソフトウェアモジュールを含むことができ、コンピュータ・プログラム・プロダクトの形であることができる。ユーザ装置300は、更に、プロセッサ310に結合されたユーザー・インターフェース・コントローラ360を備える。
通信インタフェース・モジュール350は、本願発明の種々の実施形態に関連して議論されたユーザ・データ・ラジオの少なくとも部分的にインプリメントする。通信インタフェース・モジュール350は、例えば、WLAN、ブルートゥース(Bluetooth(登録商標))、GSM/GPRS、CDMA、WCDMA、または、LTE(Long Term Evolution)無線モジュールのようなラジオ・インタフェース・モジュールであることができる。通信インタフェース・モジュール350は、ユーザ装置300に、または、アダプタ、カードまたは、ユーザ装置300の適当なスロットまたはポートに挿入することができるような他のものに統合化することができる。通信インタフェース・モジュール350は、1つのラジオ・インタフェース技術または複数のテクノロジーをサポートすることができる。図3は、1つの通信インタフェース・モジュール350を示すが、しかし、ユーザ装置300は、複数の通信インタフェース・モジュール350を備えることできる。
プロセッサ310は、例えば、中央処理装置(CPU)、マイクロプロセッサー、デジタルシグナルプロセッサ(DSP)、グラフィック処理装置、その他であることができる。図3は、1つのプロセッサ310を示すが、しかし、ユーザ装置300は、複数のプロセッサを備えることができる。
メモリ・320は、たとえば、読取り専用メモリ(ROM)、プログラム可能読取り専用メモリ(PROM)、消去可能・プログラム可能読取り専用メモリ(消去可能PROM)、ランダム・アクセスで・メモリ(RAM)、フラッシュ・メモリ、データ・ディスク、光学ストレージ、磁気ストレージ、スマート・カード、その他のような不揮発性あるいは揮発性メモリであることができる。ユーザ装置300は、複数のメモリを備えることができる。メモリ320は、装置300の一部として構築することができる。あるいは、それは、ユーザによって、スロット、ポート、または、ユーザ装置300のその他に挿入することができる。メモリ320は、データを格納するという唯一の目的に、役立つことができる、または、それは、例えば、データ処理など他の目的に役立つ装置の一部として構成することができる。
メモリ・モジュール340は、ユーザ装置300で使われるスマート・カードとして含まれることができる。メモリ・モジュールは、たとえば、読取り専用メモリ(ROM)、プログラム可能読取り専用メモリ(PROM)、消去可能・プログラム可能読取り専用メモリ(消去可能PROM)、ランダム・アクセスで・メモリ(RAM)、フラッシュ・メモリ、データ・ディスク、光学ストレージ、磁気ストレージ、スマート・カード、その他のような不揮発性あるいは揮発性メモリであることができる。ユーザ装置300は、複数のメモリ・モジュール340を備えることができる。メモリ・モジュール340は、ユーザによって、スロット、ポート、または、ユーザ装置300のその他に挿入することができる。メモリ340は、データを格納するという唯一の目的に、役立つことができる、または、それは、例えば、データ処理など他の目的に役立つ装置の一部として構成することができる。
ユーザ・インターフェース・コントローラ360は、ユーザ装置300のユーザから、例えば、キーボード、ユーザ装置300のディスプレイの上で示されるグラフィカル・ユーザ・インタフェース、音声認識回路、または、例えば、ヘッドセットのようなアクセサリー・デバイスを介して、入力を受信するための回路、および、ユーザに対して、例えば、グラフィカル・ユーザ・インタフェースまたは、ラウド・スピーカを介して出力を提供するための回路を備えることができる。
当業者は、図3に示される要素に加えて、ユーザ装置300は、たとえば、入出力(I/O)回路、メモリー・チップ、特定用途向け集積回路(ASIC)、ソースコーディング/デコーディング回路のような特定の目的のための処理回路、チャネルコーディング/デコーディング回路、暗号化/暗号解読回路、など追加的な回路とならんで、例えば、マイクロフォン、ディスプレイなど他の要素を備えることができることを理解する。加えて、ユーザ装置300は、外部電源もしも外部電源供給が利用できないときに、ユーザ装置300を動かすための使い捨て、または充電式電池(図示せず)を含むことができる。
図4は、本願発明の例の実施形態に従って、メモリ・モジュールにおける動作を示すフローチャートを示す。ステップ400において、この方法は、開始する。ステップ410において、データ・エンティティは、メモリ・デバイスの少なくとも2つのセクタを使って格納され、この少なくとも2つのセクタは、同一のデータ・エンティティに結びついている。ステップ420において、メモリ・モジュールのメモリ・コントローラにおいて、このメモリ・デバイスの少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報が、維持される。ステップ430において、メモリ・コントローラにおいて、信号を、少なくとも2つのセクタを、メモリ・デバイス122から消去することを示すように規定する。ステップ440において、このメモリ・デバイスの少なくとも2つのセクタは、コンテキスト情報を使って消去される。ステップ450において、この方法は終了する。
種々の実施形態は提示された。この文書において、単語は、除外する意図がないオープン・エンドな表現を備え、含み、相当し、そのようなものとして用いられていることは理解されるべきである。
前述の説明は、本願発明の特定のインプリメンテーションと実施形態の非限定的な例として、本願発明を実行するための現在、発明者によって考えられるベスト・モードの完全で有益な説明を提供した。しかしながら、本願発明は、上で提示された実施形態の詳細に制限されず、同等の手段を用いて、または、実施形態の異なる組合せにより、本願発明の特性からそれることなく、他の実施形態においてインプリメントすることができることは、当業者には明らかである。
さらには、上で開示したこの発明の実施形態の特徴のいくつかは、他の特徴に対応したものを使用しなくても、優位なものとして使用することができる。したがって、前述の説明は、単に、本願発明の原理を説明するものであり、それらに、制限されるものではないと考えられるべきである。これゆえに、本願発明の範囲は、添付の特許請求の範囲によってのみ、制限されるものである。

Claims (18)

  1. メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納するステップであって、該少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ステップと、
    メモリ・コントローラにおいて、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持するステップと、
    前記コンテキスト情報を使用して、前記メモリ・デバイスの前記少なくとも2つのセクタを消去するステップと、
    を含む方法。
  2. 前記メモリ・コントローラにおいて、前記少なくとも2つのセクタのうちの少なくとも1つを、前記メモリ・デバイスから消去することを示す信号を規定するステップを更に含む請求項1に記載の方法。
  3. ホストによって、外部ホスト・アプリケーションからの削除信号に応じて、ファイル・アロケーション・テーブルから、データ・エンティティ・エントリを削除するステップと、
    前記少なくとも2つのセクタのうちの少なくとも1つを、前記ファイル・アロケーション・テーブルから前記データ・エンティティ・エントリの削除に対応して、メモリ・デバイスから、消去することを示す信号を生成するステップと
    を更に含む請求項1または2に記載の方法。
  4. 前記ポインターは、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの第1のセクタの論理アドレスを示している開始アドレスと、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの第2のセクタの論理アドレスを示している開始アドレスと、を含む、請求項1ないし3のいずれか1項に記載の方法。
  5. 前記ポインターは、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの第1のセクタの物理アドレスを示している開始アドレスと、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの第2のセクタの物理アドレスを示している開始アドレスと、を含む、請求項1ないし3のいずれか1項に記載の方法。
  6. 前記コンテキスト情報に対するコンテキスト識別子を規定するステップを更に含む請求項1ないし5のいずれか1項に記載の方法。
  7. 前記コンテキスト情報に対するグループ番号を規定するステップを更に含む請求項1ないし5のいずれか1項に記載の方法。
  8. 前記コンテキスト情報に対する連想コマンドを規定するステップを更に含む請求項1ないし5のいずれか1項に記載の方法。
  9. 前記コンテキスト識別子と結びつけられた、前記少なくとも2つのセクタのうちの少なくとも1つを消去することを示す前記信号に応じて、前記メモリ・デバイスの前記少なくとも2つのセクタを消去するステップを更に含む請求項6に記載の方法。
  10. − ERASE、
    − TRIM、
    − SecureTRIM、
    − SecureERASE、
    − DISCARD、
    − Sanitize、
    − Unmap(UFS)
    のコマンドのうちの少なくとも1つを用いる消去機能によって、前記メモリ・デバイスの前記少なくとも2つのセクタを消去するステップを更に含む請求項1ないし9のいずれか1項に記載の方法。
  11. 前記消去機能によって、前記第1のセクタを消去することを示す第1の信号と、前記第2のセクタを消去することを示す第2の信号とを生成するステップを更に含む請求項10に記載の方法。
  12. 前記セクタは、
    − 消去ブロック、
    − 書き込みブロック、
    − ページ、
    − スーパー・ページ、および
    − ハードディスクのセクタ、
    のうちの少なくとも1つを含む、請求項1ないし11のいずれか1項に記載の方法。
  13. 少なくとも1つのメモリ・デバイスと、
    外部ホストへの、および、前記少なくとも1つのメモリ・デバイスへのインタフェースを有するメモリ・コントローラと、
    を備えるメモリ・モジュールであって、
    前記メモリ・デバイスは、コンピュータ・プログラムコードを含み、
    該コンピュータ・プログラムコードは、前記メモリ・コントローラを用いて、前記メモリ・モジュールに、
    少なくとも、メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納することであって、該少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ことと、
    メモリ・コントローラにおいて、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持することと、
    前記コンテキスト情報を使用して、前記メモリ・デバイスの前記少なくとも2つのセクタを消去することと、
    をさせるように構成されている、メモリ・モジュール。
  14. 前記コンピュータ・プログラムコードは、前記メモリ・コントローラを用いて、前記メモリ・モジュールに、少なくとも、
    前記メモリ・コントローラにおいて、前記少なくとも2つのセクタのうちの少なくとも1つを、前記メモリ・デバイスから消去することを示す信号を規定すること
    をさせるように更に構成されている、請求項13に記載のメモリ・モジュール。
  15. 前記コンピュータ・プログラムコードは、前記メモリ・コントローラを用いて、前記メモリ・モジュールに、少なくとも、
    前記ホストによって、外部ホスト・アプリケーションからの削除信号に応じて、ファイル・アロケーション・テーブルから、データ・エンティティ・エントリ削除することと、
    前記少なくとも2つのセクタのうちの少なくとも1つを、前記ファイル・アロケーション・テーブルから前記データ・エンティティ・エントリの削除に対応して、メモリ・デバイスから、消去することを示す信号を生成することと
    をさせるように更に構成されている、請求項13または14に記載のメモリ・モジュール。
  16. 前記セクタは、−消去ブロック、−書き込みブロック、−ページ、−スーパー・ページ、−ハードディスクのセクタ、のうちの少なくとも1つを含む、請求項13ないし15のいずれか1項に記載のメモリ・モジュール。
  17. 前記メモリ・モジュールは、
    − 埋め込み型マルチ・メディア・カード(eMMC:Embedded MultiMediaCard)、
    − メモリー・カード(SD)、
    − アドバンスト・テクノロジー・アタッチメント(ATA)、および
    − ユニバーサル・フラッシュ・ストレージ(UFS:Universal Flash Storage)
    のうちの少なくとも1つを含む、請求項13ないし16のいずれか1項に記載のメモリ・モジュール。
  18. コンピュータ実行可能プログラムコードを含むコンピュータ読取り可能媒体の上で具体化されたコンピュータ・プログラムであって、
    該コンピュータ実行可能プログラムコードは、メモリ・モジュールの少なくとも1つのコントローラによって実行されるとき、該メモリ・モジュールに、
    メモリ・デバイスの少なくとも2つのセクタを使用するデータ・エンティティを格納することであって、該少なくとも2つのセクタは、同一のデータ・エンティティに結びついている、ことと、
    メモリ・コントローラにおいて、前記メモリ・デバイスの前記少なくとも2つのセクタのうちの少なくとも1つへのポインターを含むデータ・エンティティのコンテキスト情報を維持することと、
    前記コンテキスト情報を使用して、前記メモリ・デバイスの前記少なくとも2つのセクタを消去することと、
    をさせる、コンピュータ・プログラム。
JP2014549505A 2011-12-29 2011-12-29 メモリ・モジュールにおいてデータ・エンティティを消去するための方法 Pending JP2015507798A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FI2011/051168 WO2013098463A1 (en) 2011-12-29 2011-12-29 Method for erasing data entity in memory module

Publications (2)

Publication Number Publication Date
JP2015507798A true JP2015507798A (ja) 2015-03-12
JP2015507798A5 JP2015507798A5 (ja) 2015-05-07

Family

ID=45531881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014549505A Pending JP2015507798A (ja) 2011-12-29 2011-12-29 メモリ・モジュールにおいてデータ・エンティティを消去するための方法

Country Status (4)

Country Link
US (1) US10048884B2 (ja)
EP (1) EP2798500A1 (ja)
JP (1) JP2015507798A (ja)
WO (1) WO2013098463A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9329990B2 (en) * 2013-01-11 2016-05-03 Micron Technology, Inc. Host controlled enablement of automatic background operations in a memory device
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9959072B2 (en) * 2013-12-20 2018-05-01 Sandisk Technologies Llc Systems and methods of compressing data
US9286160B2 (en) 2014-02-07 2016-03-15 Stmicroelectronics S.R.L. System and method for phase change memory with erase flag cells
KR102545166B1 (ko) 2016-07-26 2023-06-19 삼성전자주식회사 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법
CN106599699B (zh) * 2016-11-01 2020-06-09 惠州Tcl移动通信有限公司 一种移动终端内实现数据安全删除的方法及系统
US10579288B2 (en) 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
KR102411290B1 (ko) 2017-10-24 2022-06-22 삼성전자주식회사 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템
CN111803915A (zh) * 2020-06-11 2020-10-23 深圳市谷粒科技有限公司 一种游戏手柄的自动学习文件传输方法及其装置
EP3922329B1 (en) * 2020-06-11 2023-10-25 Shenzhen Guli Tech Co., Ltd. Self-learning file transmitting, data reading and writing, app communication reading and writing methods of game handle
JP2022147909A (ja) * 2021-03-24 2022-10-06 キオクシア株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153248A (ja) * 1997-08-04 1999-02-26 Tokyo Electron Ltd データ処理システム、ブロック消去型記憶媒体、及びプログラム記録媒体
JP2000076116A (ja) * 1998-08-31 2000-03-14 Kano Densan Hongkong Yugenkoshi 電子機器及びその制御方法及び記憶媒体
JP2007293917A (ja) * 1997-08-08 2007-11-08 Toshiba Corp メモリシステムの制御方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3653001A (en) 1967-11-13 1972-03-28 Bell Telephone Labor Inc Time-shared computer graphics system having data processing means at display terminals
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5809340A (en) 1993-04-30 1998-09-15 Packard Bell Nec Adaptively generating timing signals for access to various memory devices based on stored profiles
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6279114B1 (en) 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
US6205494B1 (en) * 1998-12-18 2001-03-20 Western Digital Corporation Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers
US6681304B1 (en) 2000-06-30 2004-01-20 Intel Corporation Method and device for providing hidden storage in non-volatile memory
DE60041263D1 (de) 2000-10-18 2009-02-12 St Microelectronics Srl Verschachtelte Speichereinrichtung mit willkürlichem und sequentiellem Zugriff
US7478248B2 (en) 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
DE60307798T2 (de) 2003-05-30 2006-12-14 Agilent Technologies, Inc., Palo Alto Arbitrierung von gemeinsamen Speicher
US7152801B2 (en) 2004-04-16 2006-12-26 Sandisk Corporation Memory cards having two standard sets of contacts
US7395384B2 (en) 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
JP2006343923A (ja) 2005-06-08 2006-12-21 Fujitsu Ltd ディスク記録装置
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US20070079015A1 (en) 2005-09-30 2007-04-05 Intel Corporation Methods and arrangements to interface a data storage device
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
CN100485681C (zh) 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
US7787870B2 (en) 2006-09-29 2010-08-31 Motorola, Inc. Method and system for associating a user profile to a caller identifier
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
CN102696010B (zh) * 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
WO2011095516A1 (en) * 2010-02-05 2011-08-11 St-Ericsson Sa Method and system for mass storage on flash memory
US20120173795A1 (en) * 2010-05-25 2012-07-05 Ocz Technology Group, Inc. Solid state drive with low write amplification
WO2012129191A2 (en) * 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9176810B2 (en) * 2011-05-27 2015-11-03 SanDisk Technologies, Inc. Bit error reduction through varied data positioning
US20130036256A1 (en) * 2011-08-05 2013-02-07 Hitachi, Ltd. Method and apparatus of sanitizing storage device
US9298603B2 (en) * 2011-09-09 2016-03-29 OCZ Storage Solutions Inc. NAND flash-based storage device and methods of using
US9690694B2 (en) * 2011-09-27 2017-06-27 Sandisk Technologies, Llc Apparatus, system, and method for an address translation layer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153248A (ja) * 1997-08-04 1999-02-26 Tokyo Electron Ltd データ処理システム、ブロック消去型記憶媒体、及びプログラム記録媒体
JP2007293917A (ja) * 1997-08-08 2007-11-08 Toshiba Corp メモリシステムの制御方法
JP2000076116A (ja) * 1998-08-31 2000-03-14 Kano Densan Hongkong Yugenkoshi 電子機器及びその制御方法及び記憶媒体

Also Published As

Publication number Publication date
US10048884B2 (en) 2018-08-14
WO2013098463A1 (en) 2013-07-04
US20150052292A1 (en) 2015-02-19
EP2798500A1 (en) 2014-11-05

Similar Documents

Publication Publication Date Title
US10048884B2 (en) Method for erasing data entity in memory module
US11593259B2 (en) Directed sanitization of memory
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
EP2605142B1 (en) Lba bitmap usage
US8521949B2 (en) Data deleting method and apparatus
US9053007B2 (en) Memory system, controller, and method for controlling memory system
JP4238514B2 (ja) データ記憶装置
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP5295778B2 (ja) フラッシュメモリ管理方法
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
US9183136B2 (en) Storage control apparatus and storage control method
US9367451B2 (en) Storage device management device and method for managing storage device
US8516182B2 (en) Controller and memory system for managing data
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
US20220197818A1 (en) Method and apparatus for performing operations to namespaces of a flash memory device
US7702845B2 (en) Method and apparatus for managing blocks according to update type of data in block-type memory
EP2665065A2 (en) Electronic device employing flash memory
JP2008507756A (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US9201784B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
KR20110005817A (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
TW202013183A (zh) 高效能垃圾收集方法以及資料儲存裝置及其控制器
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法
JP2005149620A (ja) 記憶装置およびファイルシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160510