JP5443998B2 - 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム - Google Patents
不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム Download PDFInfo
- Publication number
- JP5443998B2 JP5443998B2 JP2009545754A JP2009545754A JP5443998B2 JP 5443998 B2 JP5443998 B2 JP 5443998B2 JP 2009545754 A JP2009545754 A JP 2009545754A JP 2009545754 A JP2009545754 A JP 2009545754A JP 5443998 B2 JP5443998 B2 JP 5443998B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- host device
- command
- nonvolatile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
Description
近年では、内蔵する不揮発性メモリの容量が増加し、不揮発性メモリの動画記録用途への応用が広がっている。不揮発性メモリを搭載した装置に対して動画を記録する場合には、一定の書き込み速度を保証しながら書き込みを行う、いわゆるリアルタイム記録が必要となる。特許文献1には、このような不揮発性メモリを用いたメモリ装置へリアルタイム記録を行う方法が開示されている。
図11に、従来技術におけるデータとファイル管理情報との書き込みシーケンスを示す。
図11に示すように、従来技術では、通常データDATの書き込み処理とファイル管理情報FATの書き込み処理とが交互に行われる。ファイル管理情報FATは、例えば、FATファイルシステムにおけるファイル管理情報であり、ファイル管理情報FATの書き込み処理は、二重化されたファイルアロケーションテーブルFAT1およびFAT2の書き込み処理と、ディレクトリエントリDIRの書き込み処理とで構成される。従来技術におけるメモリ装置では、通常データDATの書き込み処理とファイル管理情報FAT(FAT1、FAT2、DIR)の書き込み処理とを、アドレス、サイズ、シーケンスで判別して不揮発性メモリ上の異なる領域へ記録し、ファイル管理情報の書き込みが通常のデータ書き込み性能に影響しないようにしている。
また、不揮発性メモリの大容量化が更に進むと、記録したファイルへのアクセスを効率よく行うための付加的な管理情報(以下、「付加情報」という)を書き込むことが考えられる。このような付加情報として、例えば、数GBの動画ファイル中の特定の位置(例えば、特定の再生時間)のデータに素早くアクセスするための連続領域の管理情報などが考えられる。
本発明は、以上の問題点を解決し、通常のデータの書き込み処理とファイル管理情報および付加情報の書き込み処理とが交互に行われる場合においても、リアルタイム記録(一定の書き込み速度を保証したデータ書き込み処理)を行うことが可能なメモリコントローラ、メモリ装置、ホスト装置およびメモリシステムを提供することを目的とする。
メモリ制御情報保持部は、不揮発性メモリに書き込まれたデータのデータタイプを管理するメモリ制御情報を保持する。アドレス管理部は、メモリ制御情報保持部の保持するメモリ制御情報の登録、更新、およびクリアを行うことができる。メモリ制御部は、ホスト装置が発行する、一定の書き込み速度を保証したデータ書き込み処理であるリアルタイム記録の開始を指示するメモリ管理コマンドを受信すると、少なくとも当該メモリ管理コマンドを受信した以降リアルタイム記録が終了するまでの間、ホスト装置が不揮発性記憶装置に連続して書き込むべきデータを第1のデータタイプと判別し、ホスト装置が管理する論理アドレス空間において同じ領域に書き込まれるデータを第2のデータタイプと判別する。
なお、「連続して書き込むべきデータ」とは、例えば、動画データのように、連続的に、ホスト装置から不揮発性記憶装置に書き込み処理を行うことで、効率良くデータ書き込み処理を実行することができるデータのことをいう。
第2の発明は、第1の発明であって、メモリ制御部は、第1のデータタイプのデータを不揮発性メモリ上の第1メモリ領域に記録し、第2のデータタイプのデータを不揮発性メモリ上の第1メモリ領域とは異なる領域である第2メモリ領域に記録する。
この不揮発性記憶装置では、ホスト装置が発行するリアルタイム記録の開始を指示するメモリ管理コマンドを受信すると、少なくとも当該メモリ管理コマンドを受信した以降リアルタイム記録が終了するまでの間、メモリ制御部により、ホスト装置が不揮発性記憶装置に連続して書き込むべきデータが第1のデータタイプと判別され、ホスト装置が管理する論理アドレス空間において同じ領域に書き込まれるデータが第2のデータタイプと判別される。したがって、この不揮発性記憶装置では、データタイプの異なるデータまたは情報が不揮発性メモリの所定の領域に混在して書き込まれるようなことはなく、不揮発性メモリへの書き込みを適切に制御できる。その結果、この不揮発性記憶装置により、データタイプの誤判定・ミスマッチによる性能低下を予防して、安定したリアルタイム記録が可能となる。
この不揮発性記憶装置では、リアルタイム記録の開始を指示するメモリ管理コマンドを受信すると、メモリ制御情報に基づいて不揮発性メモリに対するガーベジコレクション処理および/またはメモリ制御情報のクリアが実行されるため、不揮発性記憶装置をリアルタイム記録に適した状態にした後、リアルタイム記録を実行することができる。このため、この不揮発性記憶装置では、安定したリアルタイム記録を実行することができる。
第4の発明は、第1から第3のいずれかの発明であって、メモリ制御部は、ファイルデータを、第1のデータタイプとして判別し、ファイル管理情報を、第2のデータタイプとして判別する。
第6の発明は、第1から第5のいずれかの発明であって、メモリ制御部は、データタイプを、データを書き込むアドレスで判別する。
第7の発明は、第1から第5のいずれかの発明であって、メモリ制御部は、データタイプを、書き込むデータのサイズで判別する。
第8の発明は、第1から第7のいずれかの発明であって、メモリ管理コマンドを受け取ると、アドレス管理部は、メモリ制御情報保持部が保持するすべてのメモリ制御情報をクリアする。
第9の発明は、第1から第7のいずれかの発明であって、メモリ管理コマンドを受け取ると、アドレス管理部は、メモリ制御情報保持部が保持する第1のメモリ制御情報をクリアする。
第11の発明は、第1から第7のいずれかの発明であって、メモリ管理コマンドを受け取ると、メモリ制御部は、不揮発性メモリに対するガーベジコレクション処理を行う。
第12の発明は、第1から第11のいずれかの発明であって、メモリ管理コマンドは、引数を含み、メモリ管理コマンドの引数には、リアルタイム書き込み開始を示すフラグが含まれる。
第13の発明は、第1から第11のいずれかの発明であって、メモリ管理コマンドの引数には、メモリ制御情報クリア指示フラグが含まれる。
第15の発明は、第1から第14のいずれかの発明であって、メモリ管理コマンドを受信すると、不揮発性記憶装置側の処理が完了するまでホスト装置にビジーを通知する。
なお、「前記不揮発性記憶装置側の処理」とは、不揮発性記憶装置をリアルタイム記録が可能な状態にするための処理であり、例えば、不揮発性メモリに対するガーベジコレクション処理および/またはメモリ制御情報のクリア処理である。
第16の発明は、第1から第15のいずれかの発明であって、ホスト装置と着脱可能なリムーバブルメモリ装置である。
第17の発明は、第1から第16のいずれかの発明である不揮発性記憶装置と通信することができるように接続されており、不揮発性記憶装置と、コマンド、応答、データの送受信を行うホスト装置であって、不揮発性記憶装置に連続して書き込む第1のデータタイプのデータと、ホスト装置が管理する論理アドレス空間において同じ領域に書き込む第2のデータタイプのデータとを、一定の書き込み速度を保証して、不揮発性記憶装置に書き込むホスト装置である。そして、このホスト装置は、不揮発性記憶装置をリアルタイム記録可能な状態とするためのメモリ管理コマンドを、リアルタイム記録を開始する前に、不揮発性記憶装置に対して発行するホスト制御部を備える。
第18の発明は、第17の発明であって、ホスト制御部は、メモリ管理コマンドを、リアルタイム記録を終了する時に、不揮発性記憶装置に発行する。
第19の発明は、第17または第18の発明であって、第2のデータタイプには、ディレクトリエントリおよび/または付加情報が含まれる。
第20の発明は、第19の発明であって、ホスト制御部は、第2のデータタイプのうち、リアルタイム記録処理が実行されている期間において、前記不揮発性記憶装置に書き込むデータがディレクトリエントリおよび/または付加情報であることを通知するコマンドを不揮発性記憶装置に対して発行する。
第21の発明は、第1から第16のいずれかの発明である不揮発性記憶装置と、第17から第20のいずれかの発明であるホスト装置と、を備える不揮発性記憶システムである。
第22の発明は、ホスト装置と通信することができるように接続されており、ホスト装置からのコマンドに従って、データの読み書きおよび/またはデータの読み出しを行う不揮発性記憶装置であって、不揮発性メモリと、不揮発性メモリに書き込まれたデータのデータタイプを管理するメモリ制御情報を保持するメモリ制御情報保持部と、メモリ制御情報保持部が保持するメモリ制御情報の登録、更新、およびクリアを行うことができるアドレス管理部と、を備える不揮発性記憶装置に用いられるデータ記録方法である。このデータ記録方法は、データ判別ステップと、記録ステップと、を備える。
これにより、第2の発明と同様の効果を奏するデータ記録方法を実現することができる。
データ判別ステップでは、ホスト装置が発行する、一定の書き込み速度を保証したデータ書き込み処理であるリアルタイム記録の開始を指示するメモリ管理コマンドを受信すると、少なくとも当該メモリ管理コマンドを受信した以降リアルタイム記録が終了するまでの間、ホスト装置が不揮発性記憶装置に連続して書き込むべきデータを第1のデータタイプと判別し、ホスト装置が管理する論理アドレス空間において同じ領域に書き込まれるデータを第2のデータタイプと判別する。記録ステップでは、第1のデータタイプのデータを不揮発性メモリ上の第1メモリ領域に記録し、第2のデータタイプのデータを不揮発性メモリ上の第1メモリ領域とは異なる領域である第2メモリ領域に記録する。
これにより、不揮発性記憶システムにおいて、リアルタイム記録を行う場合であって、通常のデータの書き込みとファイル管理情報および付加情報の書き込み処理とが交互に行われる場合においても、メモリコントローラは、書き込み処理の都度、データタイプに応じたメモリ制御情報を新たにメモリ制御情報保持部に登録できる。その結果、不揮発性記憶システムでは、データタイプの異なるデータまたは情報が不揮発性メモリの所定の領域に混在して書き込まれるようなことはなく、不揮発性メモリへの書き込みを適切に制御できる。
[第1実施形態]
<1.1:不揮発性記憶システムの構成>
図1は、本発明の第1実施形態に係る不揮発性記憶システム(メモリシステム)1000の構成を示すブロック図である。
図1に示すように、不揮発性記憶システム1000は、メモリ装置(不揮発性記憶装置)1とホスト装置2とを備え、メモリ装置1とホスト装置2とがバス3により接続されている。
(1.1.1:メモリ装置)
メモリ装置1は、図1に示すように、メモリコントローラ11と、1以上の不揮発性メモリ12とを備える。
ホストIF部110は、ホスト装置2とバス3を介して接続されており、ホスト装置2と通信を行うことが可能である。ホストIF部110は、バス3を介して、ホスト装置2からコマンドを受信したり、ホスト装置2に対して応答(レスポンス)を送信したりする。また、ホストIF部110は、バス3を介して、ホスト装置2とデータの送受信を行う。また、ホストIF部110は、ホスト装置2から受信したコマンドをコマンド処理部111に出力し、ホスト装置2から受信したデータをデータ制御部113に出力する。また、ホストIF部110は、コマンド処理部111から出力される応答(レスポンス)等を入力し、当該応答(ホストIF部110、レスポンス)等を、バス3を介して、ホスト装置2に送信する。
メモリ制御部112は、不揮発性メモリ12のデータの入出力や不揮発性メモリ12のメモリ領域管理を行う。
メモリ制御部112は、メモリ装置1の処理全般を制御するCPU1121と、制御情報を保持するレジスタ1122と、ホスト装置2の発行するコマンドに含まれる論理アドレスと不揮発性メモリ12上の物理アドレスとの対応付けを管理するアドレス管理部1123と、不揮発性メモリ12上の領域121に書き込まれたデータのタイプや書き込み領域などを管理するためのメモリ制御情報を保持するメモリ制御情報保持部1124と、備える。
データ制御部113は、ホストIF部110と不揮発性メモリ12との間のデータの入出力を行うためのバッファRAMを備えており、データ制御部113は、当該バッファRAMを用いて、メモリ制御部112の指示に従い、不揮発性メモリ12に対してデータの書き込み処理/読み出し処理を行う。
なお、メモリコントローラ11の各機能部は、その全部または一部を、個別に接続してもよいし、内部バスにより接続してもよい。
ホスト装置2は、図1に示すように、ホスト装置2全体の制御を行うCPU21と、ROM22と、RAM23と、メモリ装置1とデータの送受信を行うためのバッファRAM24と、メモリ装置1とバス3を介してコマンド・応答やデータの送受信を行うホストコントローラ25と、を備える。
なお、ホスト装置2の各機能部は、その全部または一部を、個別に接続してもよいし、内部バス(例えば、図1のバスB1)により接続してもよい。
また、CPU21と、ROM22と、RAM23と、バッファRAM24と、ホストコントローラ25と、により、ホスト制御部の機能が実現される。
(1.1.3:バス)
バス3は、例えば、メモリ装置1とホスト装置2とがコマンド・応答、データの送受信を行うための1以上の信号線の組により構成される。本実施形態に係る不揮発性記憶システム1000において、バス3は、クロック信号CLKを伝送するためのクロックラインと、コマンド・応答信号CMDを伝送するためのコマンドラインと、データ信号DATを伝送するためのデータ信号ラインと、を含んで構成される。なお、バス3のデータ信号ラインは、必ずしも1本である必要はなく、バス3が、複数のデータ信号ラインを含むものであってもよい。
図2は、不揮発性記憶システム1000において、バス3を介して行われるメモリ装置1とホスト装置2とのバストランザクションを説明する図である。
図2において、コマンドCMDは、ホスト装置2がメモリ装置1に対してデータの読み出しや書き込みなどの指示を行うために送信する信号である。
応答RESは、コマンドCMDを受信したメモリ装置1が各種ステータス情報などを応答するために送信する信号である。
データDATは、メモリ装置1への書き込みの場合、ホスト装置2がメモリ装置1に対して送信するものであり、メモリ装置1からの読み出しの場合、メモリ装置1がホスト装置2に対して送信するものである。
ホスト装置2が発行するコマンドの内容によって、複数種類のバストランザクションが存在し、図2(a)では、コマンドCMDと応答RESのみで完結する。これは、主に不揮発性メモリ12のデータ入出力を行わないコマンドの場合に使われる。
図2(b)では、コマンドCMDと応答RESに加えてデータDATAの転送が行われる。このバストランザクションでは、主に不揮発性メモリ12へのデータの書き込みおよび不揮発性メモリ12からのデータの読み出しの場合のバストランザクションである。
図2(c)に示すバストランザクションは、コマンドCMDと応答RESに加えて、データ信号DATを使ってメモリ装置1が内部処理中であることを示す状態信号Busy(Busy信号)をメモリ装置1がホスト装置2に対して送信するバストランザクションである。
図2(c)および(d)のように、状態信号Busy(Busy信号)をメモリ装置1が送信するのは、ホスト装置2との間でデータの入出力は行わず、メモリ装置1の内部でメモリコントローラ11が不揮発性メモリ12のデータの入出力を行うためである。このような場合、不揮発性記憶システム1000では、図2(c)および(d)に示したバストランザクションが使われる。
≪データフォーマット≫
図3は、メモリ装置1とホスト装置2との間で送受信されるコマンドCMD、応答RES、データDATの構成を示す図である。
CMDは、ホスト装置2の指示する処理内容を識別するための識別子と引数とを含む。CMDの引数には、各種制御用のフラグやデータの読み出しおよびデータの書き込みを行うためのアドレス情報が含まれ、その内容は識別子により異なる。
RESは、識別子とステータスとを含む。RESの識別子は、ホスト装置2が発行したコマンドCMDの識別子と同じ値である。また、ステータスは、メモリ装置1の内部状態を示す状態信号であり、例えば、エラーの有無やメモリ装置1の状態遷移を示す情報が含まれる。
≪メモリ管理コマンド≫
メモリ装置1とホスト装置2とは、1以上のメモリ管理コマンドを処理する機能を有する。図4は、メモリ管理コマンドの構成を示す図である。
メモリ管理コマンドの引数には、
(1)リアルタイム記録の開始および終了フラグ(“開始/終了”)、
(2)メモリ装置1内部のメモリ制御情報のクリアフラグ(“メモリ制御情報クリア”)、
(3)リアルタイム記録を行う際の付加情報書き込みの有無を示すフラグ(“付加情報記録ON/OFF”)、および
(4)ガーベジコレクション実行フラグ(“ガーベジコレクション”)
の各種制御フラグが含まれる。
“メモリ制御情報クリア”フラグが設定された場合、あるいは“付加情報記録ON/OFF”フラグの状態によって、ホスト装置2が付加情報を書き込むかどうかが分かると、
メモリコントローラ11は、後述するメモリ制御情報保持部の状態を更新してリアルタイム記録が可能な状態を設定する。
“ガーベジコレクション”フラグが設定されると、メモリコントローラ11は、後述するガーベジコレクションを実施する。
これら制御フラグは、それぞれ1ビットでもよく、また、何らかの制御の目的のため複数ビットで構成してもよい。また、これらの制御フラグは、図4(a)に示すように、異なるコマンドの引数に割り当ててもよく、また、図4(b)に示すように、同じコマンドの引数に複数の制御フラグが含まれるようにしてもよい。メモリ装置1は、該コマンドを受信すると、引数に含まれるフラグの状態に従って、指示された処理を実行する。
当該コマンドをメモリ装置1とホスト装置2とで処理する場合のバス3上のトランザクションは、前述した図2(a)〜(d)のいずれかに従う。メモリ装置1は、コマンドを受信し不揮発性メモリ12へのデータ入出力処理が必要と判定すると、該入出力処理中は、図2(c)または(d)にあるように、状態信号Busy(Busy信号)をホスト装置2に対して送信する。
<1.2:不揮発性記憶システムの動作>
次に、不揮発性記憶システム1000の動作について、図面を参照しながら、以下、説明する。
まず、不揮発性記憶システム1000におけるリアルタイム記録シーケンスについて、説明する。
図5は、本実施形態に係る不揮発性記憶システム(メモリシステム)1000においてホスト装置2がメモリ装置1に対してリアルタイム記録(一定の書き込み速度を保証したデータ書き込み処理)を行う場合のシーケンスを説明する図である。
図5において、CMD_Sは、前述したメモリ管理コマンドを示す。
図5に示すように、不揮発性記憶システム1000において、ホスト装置2がメモリ装置1に対してリアルタイム記録を行う場合、1回の記録シーケンス中で1回以上メモリ管理コマンドを発行する。
図5(b)は、リアルタイム記録開始前にCMD_Sを発行する場合のリアルタイム記録シーケンスを示している。
図5(c)は、リアルタイム記録終了後にCMD_Sを発行する場合リアルタイム記録シーケンスを示している。
なお、図5で、CMD_Sは、リアルタイム記録開始前および終了後に複数回発行してもよい。その場合、複数回発行されるCMD_Sのそれぞれにおいて、コマンド識別子や引数の制御フラグは、異なっていてもよい。また、図5において、連続するリアルタイム記録シーケンスは、同一のホスト装置2により実行されるものであってもよく、メモリ装置1がホスト装置2と着脱可能な場合には、異なるホスト装置2により実行されるものであってもよい。例えば、図5(b)に示すリアルタイム記録シーケンス1およびリアルタイム記録シーケンス2の両方が、同一のホスト装置2により実行されるものであってもよいし、また、リアルタイム記録シーケンス1は、あるホスト装置(これを「ホスト装置A」という)により実行され、リアルタイム記録シーケンス2は、ホスト装置Aとは異なるホスト装置Bにより実行されるものであってもよい。
図6と図7とは、次の点で異なる。すなわち、図6では、ホスト装置2が付加情報Contを書き込む場合を示しているが、図7では、ホスト装置2が付加情報Contを書き込まない場合を示している。それ以外については、図6に示した場合と図7に示した場合とは同様である。
図6および図7において、CMD_S、DAT、FAT、およびContは、以下のことを示している。すなわち、
(1)CMD_Sは、メモリ管理コマンド送信のバストランザクションを示しており、例えば、メモリ管理コマンド(以下、「メモリ管理コマンドCMD_S」ということがある)が、ホスト装置2からメモリ装置1に送信され、メモリ管理コマンドCMD_Sに対する応答(レスポンス)が、メモリ装置1からホスト装置2に送信されるバストランザクションが、これに該当する。
(2)DATは、通常のデータ書き込み処理のバストランザクションを示しており、例えば、ライトコマンドによる通常のデータ書き込み処理のバストランザクションが、これに該当する。
(3)FATは、ファイル管理情報書き込み処理のバストランザクションを示しており、例えば、ライトコマンドによるファイル管理情報書き込み処理のバストランザクションが、これに該当する。
(4)Contは、付加情報書き込み処理のバストランザクションを示しており、例えば、ライトコマンドによる付加情報書き込み処理のバストランザクションが、これに該当する。
例えば、図6および図7において、FATには、ファイルアロケーションテーブルFAT1、FAT2およびディレクトリエントリDIRを書き込む処理(ホスト装置2からメモリ装置1に送信されるライトコマンドにより、メモリ装置1に、ファイルアロケーションテーブルFAT1、FAT2およびディレクトリエントリDIRを書き込む処理)が含まれ、メモリコントローラ11は、FAT1、FAT2を書き込みアドレス(ホスト装置2からメモリ装置1に送信されるライトコマンドで指定されている書き込みアドレス(論理アドレス))で識別し、DIR、Cont、およびDATの識別については、書き込みデータのサイズで識別することが可能である。
このようにすることで、不揮発性記憶システム1000において、ディレクトリエントリDIRのサイズと付加情報Contのサイズとが同じ場合であっても、適切に、ディレクトリエントリDIRの書き込み処理および付加情報Contの書き込み処理を行うことができる。
(a)リアルタイム記録開始前と終了後に、CMD_Sを発行する場合、
(b)リアルタイム記録開始前に、CMD_Sを発行する場合、
(c)リアルタイム記録終了後に、CMD_Sを発行する場合、
を示している。
≪メモリ制御情報≫
メモリ装置1内のメモリコントローラ11は、不揮発性記憶システム1000においてリアルタイム記録を行う場合、ホスト装置2がメモリ装置1に対して書き込むデータのタイプを判別して、不揮発性メモリ12上の異なる領域(不揮発性メモリ12上で物理的に区別された異なる領域)にデータを書き込む。また、メモリコントローラ11は、不揮発性記憶システム1000においてリアルタイム記録を行う場合、データのタイプ(不揮発性メモリ12に書き込むデータのタイプ)や不揮発性メモリ12上の書き込み領域の情報を、メモリ制御情報として内部に保持し、ホスト装置2からの書き込みが行われると適宜、このメモリ制御情報を更新する。
図8に示すように、メモリコントローラ11は、不揮発性メモリ12へデータを書き込む場合、通常のデータDAT、ディレクトリエントリDIR、および付加情報Contを判別し、通常のデータDATを領域121へ書き込み、ディレクトリエントリDIRを領域122へ書き込み、付加情報Contを領域123へ書き込む。また、書き込んだデータのタイプと書き込み領域を管理するため、アドレス管理部1123は、メモリ制御情報保持部1124の中で、通常のデータDATのメモリ制御情報を第1のメモリ制御情報11241として保持し、ディレクトリエントリDIRおよび付加情報Contのメモリ制御情報を第2のメモリ制御情報11242として保持する。すなわち、本実施形態に係る不揮発性記憶システム1000において、メモリコントローラ11は、通常のデータDATを第1のタイプのデータとし、ディレクトリエントリDIRおよび付加情報Contを第2のタイプのデータとして区別する。
なお、通常のデータDATを第1のメモリ制御情報とし、ディレクトリエントリDIRおよび付加情報Contを第2のメモリ制御情報として、分けて管理するのは、以下の理由による。すなわち、不揮発性記憶システム1000において、通常のデータDATが比較的大きなデータサイズ(数+KB〜数百KB)の単位で連続する領域(ホスト装置2が管理する論理アドレス空間において論理アドレスが連続する領域)にシーケンシャルに書き込まれるのに対して、ディレクトリエントリDIRや付加情報Contは、比較的小さなデータサイズ(数百B〜数KB)で同じ領域(ホスト装置2が管理する論理アドレス空間において論理アドレスが同一の領域)を繰り返し上書きするように書き込まれるという違いを考慮して、不揮発性記憶システム1000において、リアルタイム記録を実現するためである。
図9に示すように、メモリ制御情報MNG1は、データタイプ、論理アドレスLBA、物理アドレスPBA、および、その他管理情報を含んで構成される。
データタイプ(データ種別)は、書き込まれたデータのタイプを示す情報であり、この場合は、「通常のデータ」であることが示される。
論理アドレスLBAは、ホスト装置2が書き込みアドレスとして指定したアドレス(論理アドレス)であり、単位はバイト、ワード、セクタなどである。
物理アドレスPBAは、不揮発性メモリ12上でデータが書き込まれている領域121の物理アドレスであり、単位はバイト、ページ、ブロックなどである。
なお、第1のメモリ制御情報および第2のメモリ制御情報に含まれる情報は、同じでもよく(同形式でもよく)、また、異なっていてもよい(異なる形式でもよい)。
なお、図8では、ディレクトリエントリDIRと付加情報Contとは、同じ第2のタイプのデータとして扱われているが、例えば、ディレクトリエントリDIRを第2のタイプのデータとし、付加情報Contを第3のタイプのデータとしてメモリ制御情報も分けて制御することも可能であり、この場合も本発明に開示された内容が適用可能である。
次に、不揮発性記憶システム1000におけるメモリ管理コマンドの処理について、説明する。
図10は、不揮発性記憶システム1000において、メモリ装置1が前述したメモリ管理コマンドをホスト装置2から受信した場合に、メモリコントローラ11が行う処理を説明する図である。
図10(a)では、メモリ装置1は、ホスト装置2が発行したメモリ管理コマンドCMD_Sを受信すると、応答RESをホスト装置2に向けて送信すると共に、メモリコントローラ11内のアドレス管理部1123が、メモリ制御情報保持部1124の保持する第1のメモリ制御情報および第2のメモリ制御情報をクリアし、“未登録”の状態とする。
なお、図10(a)および(b)に示した場合において、メモリ装置1がホスト装置2からメモリ管理コマンドを受信した場合、メモリコントローラ11は、第2のメモリ制御情報だけをクリアして“未登録”としてもよい。
このように、本実施形態に係る不揮発性記憶システム1000では、ホスト装置2は、リアルタイム記録の開始前、終了後、または、その双方で、メモリ管理コマンドをメモリ装置1へ発行し、メモリ装置1は、メモリ管理コマンドを受信すると、メモリ制御情報保持部1124に保持された情報をクリアして“未登録”状態とし、必要に応じてガーベジコレクションを行う。
以上、図面を用いて第1実施形態に係る不揮発性記憶システムについて説明したが、本発明の適用範囲はこれに限定されるものではなく、例えば、ホスト装置は、メモリ管理コマンドを任意のタイミングでメモリ装置に対して発行することも可能である。この場合、メモリ装置がホスト装置からメモリ管理コマンドを受信すると、メモリ装置がガーベジコレクションを行うようにすれば、後続するデータの書き込み性能を向上させることが可能となる。
また、不揮発性メモリは、フラッシュメモリに限定されるのではなく、本発明は、ハードディスクや不揮発性RAMなど他の不揮発性メモリを用いる場合にも適用することができる。
[他の実施形態]
なお、上記実施形態で説明した不揮発性記憶システム、ホスト装置およびメモリ装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、ホスト装置およびメモリ装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
1 メモリ装置(不揮発性記憶装置)
11 メモリコントローラ
110 ホストIF部
111 コマンド処理部
112 メモリ制御部
1121 CPU
1122 レジスタ
1123 アドレス管理部
1124 メモリ制御情報保持部
113 データ制御部
12 不揮発性メモリ
2 ホスト装置
21 CPU
22 ROM
23 RAM
24 バッファRAM
25 ホストコントローラ
3 バス
Claims (3)
- ホスト装置からのコマンドに従って、データの読み書きを行う不揮発性記憶装置であって、
不揮発性メモリと、
前記ホスト装置が発行する、一定の書き込み速度を求めるデータ書き込み処理の開始を指示するメモリ管理コマンドを受信すると、前記データから、前記不揮発性メモリに連続して書き込む第1のデータタイプと、前記第1のデータタイプのデータをファイルシステムにおいて管理する情報である第2のデータタイプとを、書き込むデータのサイズで識別し、それぞれのデータタイプに応じて前記不揮発性メモリに前記データを記録するメモリ制御部と、
を備え、
前記メモリ制御部は、前記メモリ管理コマンドを受信すると、前記不揮発性メモリに対するガーベジコレクション処理を行うとともに、前記ホスト装置へBusy状態を通知する、
不揮発性記憶装置。 - 前記メモリ制御部は、ディレクトリエントリおよび付加情報を、前記第2のデータタイプとして識別する、
請求項1に記載の不揮発性記憶装置。 - 前記メモリ制御部は、前記データタイプを、データを書き込むアドレスで判別する、
請求項1または2に記載の不揮発性記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009545754A JP5443998B2 (ja) | 2008-07-30 | 2009-07-28 | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008196083 | 2008-07-30 | ||
JP2008196083 | 2008-07-30 | ||
JP2009545754A JP5443998B2 (ja) | 2008-07-30 | 2009-07-28 | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム |
PCT/JP2009/003545 WO2010013445A1 (ja) | 2008-07-30 | 2009-07-28 | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010013445A1 JPWO2010013445A1 (ja) | 2012-01-05 |
JP5443998B2 true JP5443998B2 (ja) | 2014-03-19 |
Family
ID=41610159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009545754A Active JP5443998B2 (ja) | 2008-07-30 | 2009-07-28 | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8266371B2 (ja) |
JP (1) | JP5443998B2 (ja) |
WO (1) | WO2010013445A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5362010B2 (ja) * | 2009-07-29 | 2013-12-11 | パナソニック株式会社 | メモリ装置、ホスト装置およびメモリシステム |
US8271719B2 (en) * | 2009-10-29 | 2012-09-18 | Freescale Semiconductor, Inc. | Non-volatile memory controller device and method therefor |
TWI496458B (zh) * | 2011-12-30 | 2015-08-11 | Amtran Technology Co Ltd | 提供即時直播視訊資料流檔案的電視接收裝置與其方法 |
US9032235B2 (en) * | 2012-07-31 | 2015-05-12 | Kabushiki Kaisha Toshiba | Semiconductor storage device and method for controlling the semiconductor storage device |
KR101932920B1 (ko) * | 2012-09-14 | 2019-03-18 | 삼성전자 주식회사 | 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법 |
JP6193189B2 (ja) * | 2014-08-20 | 2017-09-06 | 株式会社東芝 | Nandバックグラウンド処理制御装置 |
KR102295223B1 (ko) | 2015-01-13 | 2021-09-01 | 삼성전자주식회사 | 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치 |
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
TWI584289B (zh) * | 2016-01-20 | 2017-05-21 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102664665B1 (ko) * | 2016-08-22 | 2024-05-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
JP2008010109A (ja) * | 2006-06-30 | 2008-01-17 | Canon Inc | データ記憶装置 |
JP2008117491A (ja) * | 2006-11-07 | 2008-05-22 | Sony Corp | 記録装置、記録方法、およびプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4238514B2 (ja) * | 2002-04-15 | 2009-03-18 | ソニー株式会社 | データ記憶装置 |
JP4157501B2 (ja) | 2004-06-30 | 2008-10-01 | 株式会社東芝 | 記憶装置 |
JP4874588B2 (ja) | 2004-07-12 | 2012-02-15 | 株式会社東芝 | 記憶デバイスおよびホスト機器 |
CA2682814C (en) | 2004-07-12 | 2011-11-08 | Kabushiki Kaisha Toshiba | Storage device and host apparatus |
JP2006285669A (ja) * | 2005-03-31 | 2006-10-19 | Toshiba Corp | ホスト機器 |
JP5014344B2 (ja) * | 2006-08-08 | 2012-08-29 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム |
-
2009
- 2009-07-28 US US12/670,454 patent/US8266371B2/en active Active
- 2009-07-28 WO PCT/JP2009/003545 patent/WO2010013445A1/ja active Application Filing
- 2009-07-28 JP JP2009545754A patent/JP5443998B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
JP2008010109A (ja) * | 2006-06-30 | 2008-01-17 | Canon Inc | データ記憶装置 |
JP2008117491A (ja) * | 2006-11-07 | 2008-05-22 | Sony Corp | 記録装置、記録方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20100191901A1 (en) | 2010-07-29 |
WO2010013445A1 (ja) | 2010-02-04 |
US8266371B2 (en) | 2012-09-11 |
JPWO2010013445A1 (ja) | 2012-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5443998B2 (ja) | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム | |
US8356134B2 (en) | Memory device with non-volatile memory buffer | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
JP5400875B2 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム | |
JP5362010B2 (ja) | メモリ装置、ホスト装置およびメモリシステム | |
US20080028132A1 (en) | Non-volatile storage device, data storage system, and data storage method | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
JP6734768B2 (ja) | 二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 | |
TWI607448B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI420308B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
CN110908927A (zh) | 数据储存装置及其删除命名空间的方法 | |
CN114371812B (zh) | 控制器及其操作方法 | |
CN107797755B (zh) | 固态硬盘***的原子写入方法以及使用该方法的装置 | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
CN106919343B (zh) | 周边接口电路与周边存储器*** | |
JP2011095853A (ja) | 不揮発性記憶装置、ホスト装置および不揮発性記憶システム | |
TWI715408B (zh) | 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法 | |
WO2011007511A1 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム | |
JP2004139353A (ja) | ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステム | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI584292B (zh) | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8544424B2 (en) | System, controller and method thereof for transmitting and distributing data stream | |
CN117632809B (zh) | 存储器控制器、数据读取方法及存储装置 | |
KR102343600B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130409 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131112 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20131119 |
|
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: 20131210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131220 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |