JP5378197B2 - メモリコントローラ、メモリカード、不揮発性メモリシステム - Google Patents

メモリコントローラ、メモリカード、不揮発性メモリシステム Download PDF

Info

Publication number
JP5378197B2
JP5378197B2 JP2009500656A JP2009500656A JP5378197B2 JP 5378197 B2 JP5378197 B2 JP 5378197B2 JP 2009500656 A JP2009500656 A JP 2009500656A JP 2009500656 A JP2009500656 A JP 2009500656A JP 5378197 B2 JP5378197 B2 JP 5378197B2
Authority
JP
Japan
Prior art keywords
memory
writing
channel
data
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009500656A
Other languages
English (en)
Other versions
JPWO2009013877A1 (ja
Inventor
利行 本多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009500656A priority Critical patent/JP5378197B2/ja
Publication of JPWO2009013877A1 publication Critical patent/JPWO2009013877A1/ja
Application granted granted Critical
Publication of JP5378197B2 publication Critical patent/JP5378197B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • 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/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、不揮発性メモリへ性能を低下させることなくデータの書き込みを行う技術に関する。
近年、不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。そして、メモリカードに使用されている不揮発性メモリであるNANDタイプのフラッシュメモリは、半導体プロセスの微細化に伴い、その容量を増加させている。
容量の増加に伴い、メモリカードに記録されるファイルもより大容量のものを記録可能になっている。そのため、従来は使用されていなかったデジタルムービーにも使用されて動画ファイルのような大きなファイルが記録されるようになっている。ムービーにおける動画ファイルの記録は、動画を撮影しつつメモリカードに記録を行う必要があるので、1つのファイルでありながら一定の時間間隔をおいて複数回の書き込みによって大きなサイズのファイルを書き込むという動作が行われる。
また、不揮発性メモリの容量の増加に伴い、NANDタイプのフラッシュメモリでは、消去単位である物理ブロックの容量を増加させる大ブロック化が進んでいる。
この書き込むファイルの大サイズ化とNANDフラッシュメモリの大ブロック化とは互いに独立な事象であるため、メモリカードに対する書き込み性能の低下を引き起こすことになる。この性能低下の要因と性能低下を回避する方法については特許文献1に開示されている。
また、カードの大容量化によって今後は種々の情報を単一のメモリカードに格納することを可能にし、その結果、複数種類のファイルを並列して書き込むようなシステムへのメモリカードの使用を可能にしている。例えば、動画ファイルを記録しつつ、音声は別のファイルでさらに記録しつつ、ユーザの任意のタイミングで静止画を記録したりするシステムが考えられる。また、別のシステムでは、複数の監視カメラからの動画ファイルを並列して複数のファイルに書き込むシステムも考えられる。これらのシステムは、メモリカードにデータを書き込むホスト機器側としては論理的な意味(種別)があるデータを並行して書き込んでいるだけであるが、メモリカード側としては複数のファイルがバラバラに混在して書き込まれることになる。特許文献1で示されている解ではこういったシステムに対しては性能を維持することができない。
特開2002-366423号公報 特開平9-128155号公報 特開2001-325128号公報 特開2006-65505号公報 国際公開第2005/106673号パンフレット
以上のように、従来のホストとメモリカード間ではあまり発生しなかった複数ファイルを並列に記録するといった書き込みは、メモリカードの書き込み性能を極端に低下させることになる。
つまり、複数のファイルを並列して書き込むとフラグメンテーションを発生させるため、読み出し時の性能低下につながる。また、このファイルのフラグメンテーションに対応するためにホスト側でファイルの書き込みアドレスが連続するように操作して書き込む場合には、メモリカードに書き込みを行うアドレスが連続ではなくなり、やはり性能低下につながる。また、特許文献1においては、書き込みを高速化するための仕組みの中で「ブロック併合処理」が必要なため、結果として一時的に処理時間がかかってしまう。これは、書き込むデータの種別とは無関係にメモリカード内部で発生する処理であるため、ホスト側が予測できないタイミングでの書き込み性能低下という新たな課題にもつながっている。
本発明の目的は、複数のファイルを並列に書き込みしても書き込み性能が低下しない不揮発性メモリシステム、不揮発性メモリ、メモリコントローラを提供することである。
本発明によるメモリコントローラは、論理アドレスとチャネル番号とを指定した外部からのアクセス指示に従って不揮発性メモリにデータを書き込むメモリコントローラであって、前記論理アドレスを前記不揮発性メモリの物理アドレスに変換するアドレス変換機能と、前記チャネル番号に応じて前記不揮発性メモリにおける書き込み先の物理アドレスを決定する書き込み先決定機能とを有する、ことを特徴とする。
また、前記不揮発性メモリは、消去単位である物理ブロックを複数備えており、前記アドレス変換機能は、前記物理ブロック単位で前記論理アドレスを前記物理アドレスに変換する、ことを特徴とする。
また、前記物理ブロックよりも容量の小さなデータの書き込み状況を前記チャネル番号別に独立して管理するチャネル管理機能をさらに有する、ことを特徴とする。
本発明によるメモリカードは、複数の物理ブロックを有する不揮発性メモリと、上記のメモリコントローラとを有する、ことを特徴とする。
本発明による不揮発性メモリシステムは、複数の物理ブロックを含む不揮発性メモリと前記不揮発性メモリにデータを書き込むメモリコントローラとを有するメモリカードと、前記メモリカードに対して論理アドレスとチャネル番号とを指定したアクセス指示を行うホスト機器とを備える、ことを特徴とする。
また、前記メモリコントローラは、前記論理アドレスを前記不揮発性メモリの物理アドレスに変換するアドレス変換機能と、前記チャネル番号に応じて前記不揮発性メモリにおける書き込み先の物理アドレスを決定する書き込み先決定機能とを有する、ことを特徴とする。
また、前記メモリコントローラはさらに、前記物理ブロックよりも容量の小さなデータの書き込み状況を前記チャネル番号別に独立して管理するチャネル管理機能を有する、ことを特徴とする。
また、前記ホスト機器は、同一のファイルに属するデータの書き込みについては同一のチャネル番号を指定する、ことを特徴とする。
また、前記ホスト機器は、ファイルの管理情報であるファイルシステム情報の書き込みについては固有のチャネル番号を指定する、ことを特徴とする。
本発明では、ホストは、論理アドレスに加えてチャネル番号を指定してメモリカードに書き込みを行う。このチャネル番号を指定した書き込みに対してメモリコントローラは、不揮発性メモリの物理ブロック以下のサイズの書き込みの状況をチャネル番号別に管理し、ホストからの書き込みに対して、対応するチャネル番号の書き込み状況から書き込み先となる物理ブロックを決定してデータを書き込む。
したがって、あるチャネル番号に着目したときに、データの書き込みが複数回に分割されていても論理アドレスの順に行われるものであれば、一連の書き込みの間に他のチャネル番号に対する書き込みがどのように行われていようと、性能低下の要因である集約処理は発生しない。あるチャネル番号に対する書き込みが物理ブロックの途中までの状態であったとして、別のチャネル番号に対してどのような書き込みがどれだけ行われようと、その物理ブロックの途中の状態は維持されたままであり、集約処理が行われることはない。
このように本発明によれば、別々のチャネル同士での集約処理等の無駄な集約処理が発生することがないため、複数のファイルを並列に書き込んでも性能は低下しない。
本発明の実施形態による不揮発性記憶システムおよび不揮発性記憶装置について説明する。
図1は、本発明の実施形態による不揮発性記憶システムの構成を示したブロック図である。この不揮発性記憶システムは、ホスト101と、メモリカード102とを備えている。ホスト101は、メモリカード102に対してアドレスを指定してデータの読み出し・書き込みを行う。メモリカード102は、ホスト101から書き込まれたデータを不揮発に記憶することができるので、電源が印加されない状態になっても書き込まれたデータを記憶しており、再度電源が印加された後にメモリカード102からデータを読み出すことができる。なお、メモリカード102はホスト101に対して着脱可能な構成となっており、ホスト101はメモリカード102に対して電源を印加している。
図1には、ホスト101内部のソフトウェアの構成を示している。103はアプリケーションソフトであり、アプリA〜nまでの複数のアプリケーションソフトウェアがホスト101内部で動作している。104はメモリカード102に対するインターフェースを制御するドライバであり、アプリケーションソフト103はドライバ104を経由してメモリカード102に対してデータの読み出し・書き込みを行うことができる。
メモリカード102は、メモリコントローラ105と、不揮発性メモリ106とを備えている。不揮発性メモリ106内部のメモリセルアレイは複数の物理ブロック(図示せず)からなる。物理ブロックはデータの消去単位であり、複数の物理ページ(図示せず)からなる。物理ページは、データを同時に書き込むことのできる書き込み単位である。メモリコントローラ105は、メモリカード102内部においてホスト101から書き込みされるデータを不揮発性メモリ106に書き込むとともに、ホスト101へ読み出すデータを不揮発性メモリ106から読み出す。
メモリコントローラ105内部においてメモリコントローラ105全体の動作を制御するのが制御部107である。ホスト101と不揮発性メモリ106の間で読み出し・書き込みのために転送されるデータは、ホストI/F108とバッファ109とメモリI/F110を経由する。ホストI/F108は、ホスト101とのインターフェースの制御を行うとともに、ホスト101がデータを読み出すときにバッファ109のデータをホスト101に転送し、ホスト101からの書き込みデータをバッファ109に転送する。バッファ109は、ホストI/F108とメモリI/F110との間に設けられ、ホスト101が読み出し・書き込みするデータを一時保持しておくための揮発性メモリからなる。メモリI/F110は、不揮発性メモリ106とのインターフェースの制御を行うとともに、不揮発性メモリ106への書き込みデータをバッファ109から不揮発性メモリ106に転送したり、不揮発性メモリ106からの読み出しデータをバッファ109へ転送したりする。ホストI/F108とバッファ109とメモリI/F110はいずれも制御部107によって制御される。
制御部107は、アドレス変換テーブル111とチャネル管理テーブル112とチャネル保持部113を使用することによって、ホスト101からの書き込みデータを不揮発性メモリ106のどのアドレス位置に書き込むかを決定する。アドレス変換テーブル111は、ホスト101の指定する論理ブロックのアドレスと不揮発性メモリ106の物理ブロックのアドレスとの対応関係を示すテーブルである。本実施形態では、アドレス変換テーブル111に登録されている物理ブロックに既に書き込み済みであるデータと同じ論理ブロックアドレスに対して上書きされたデータを、アドレス変換テーブル111に登録されている物理ブロックとは別の物理ブロックに書き込むことを許容する。この上書きされたデータが書き込まれた物理ブロックについてはチャネル管理テーブル112で管理する。チャネル管理テーブル112の構成については後で説明する。チャネル保持部113は、ホスト101から発行されるチャネル指定コマンドで指定されるチャネル番号を保持しておく。
図2は、継続的な書き込みが必要な大サイズのファイル(たとえば動画ファイル等)をホスト101からメモリカード102にチャネル指定して書き込む時の、ホスト101とメモリカード102との間のシーケンス図である。以下、図2を参照しつつ説明する。
最初にステップ201で、ホスト101はメモリカード102に対してチャネル指定コマンドを発行する。このチャネル指定コマンドの発行は、従来は行われていない。ホスト101がメモリカード102に対して書き込むデータ種別(後で説明するがホスト101のアプリケーションソフト103の種類と関連付けられる)の情報をチャネルという形で通知する、本実施形態の効果を得るために欠くことのできない必要なステップである。
次にステップ202で、ホスト101はメモリカード102に対して書き込みコマンドを発行する。
次にステップ203で、ホスト101はメモリカード102に対して書き込みデータの転送を開始する。以降、ホスト101は必要な容量のデータをメモリカード102に対して転送する。このデータの転送開始を受けてメモリカード102では書き込みの処理204を開始する。
ホスト101は、メモリカード102への書き込みデータを転送し終えたら、ステップ205でメモリカード102に対して書き込み終了コマンドを発行する。
メモリカード102は、ホスト101からの書き込みデータをメモリカード102内部の不揮発性メモリ106に書き込む処理を行っているが、ステップ205の書き込み終了コマンドを受けて、書き込みデータの転送が終了したことを認識して、既に転送済みのデータの書き込みが終了するまで書き込みの処理204を行う。この書き込みの処理204の期間中はメモリカード102はホスト101に対してビジー信号を出力することで、書き込みの処理204を実行中であることをホスト101に対して通知する。
メモリカード102は、書き込みの処理204を終了したら、ホスト101に対して出力しているビジー信号を解除する。そうすることによりステップ206でホスト101は、メモリカード102への書き込みが終了したことを認識する。
次に、図3〜5を参照してメモリカード102側の処理を、図6〜9を参照してホスト101側の処理を説明する。
図3は、図2のステップ201のチャネル指定コマンド発行時の、メモリコントローラ105内部の制御部107の処理を示したフローチャートである。
状態301では制御部107は、ホスト101からのコマンド発行を待つコマンド待ちのステートである。
判定302では、ホスト101からのコマンド入力があったかどうかを判定しているが、ホスト101からのコマンドが入力されない間は、制御部107はコマンド待ちのステート301の状態を保ち続ける。
ホスト101からメモリカード102に対してコマンドが発行されると、判定302でコマンド入力ありと判定し、判定303へと遷移する。判定303ではコマンドの内容を判定する。ここでは図2のステップ201でチャネル指定コマンドが発行されたときの処理を示しているので状態304へと遷移する。チャネル指定コマンド以外のコマンドが発行された場合については図3では省略している。
状態304では制御部107は、チャネル指定コマンドで指定されたチャネル番号をチャネル保持部113に保持する。
その後、状態301へと遷移して、制御部107はまたコマンド待ちの状態になる。つまりメモリコントローラ105は、ホスト101からチャネル指定コマンドで指定されたチャネル番号を保持する機能を有する。
図4はチャネル管理テーブル112の構成の一例を示したものである。
チャネル管理テーブル112は複数のレコードから構成される。図4のテーブルのひとつの行がひとつのレコードに対応している。それぞれのチャネルに対してひとつずつレコードがあり、各レコードはチャネル番号のフィールドを必ず持つ。つまり、チャネル番号が決定されると、チャネル管理テーブル112のなかの1つのレコードを決定することができる。各レコードは、論理ブロックアドレス(論理アドレスのうちアドレス変換テーブル111で管理されている部分)と、物理ブロックアドレス(物理アドレスのうちアドレス変換テーブル111で管理されている部分)と、先頭論理ページ(物理ブロックアドレスで示される物理ブロックの先頭のページに書き込まれたデータの論理ページアドレス)と、次書き込みページ(物理ブロックアドレスで示される物理ブロックの次に書き込みを行う物理ページ)とを有している。チャネル管理テーブル112は、アドレス変換テーブル111とは異なり、チャネル変換テーブル112の物理ブロックアドレスで示される物理ブロックには未書き込みの物理ページが含まれる。次書き込みページでどの物理ページまでが書込みされているかを管理している。未書き込みの物理ページを含む物理ブロックの管理という点では、特許文献1に示されるログポインタテーブルに近い役割を担う。ただし、チャネル管理テーブル112では、メモリーカード101外部から指示されるチャネル番号に対してひとつのレコードを持つことが特徴である。なお、先頭論理ページや次書き込みページの概念は特許文献5に記載されている。
図5は、図2の書き込みの処理204の詳細を示したフローチャートである。
状態501、判定502はそれぞれ図3の状態301、判定302と同じである。
判定503では、図3の判定303と同じくコマンドの内容を判定するが、ここでは書き込みコマンドの時に状態504へと遷移する。書き込みコマンド以外のコマンドが発行された場合については図5では省略している。
状態504では、制御部107は、チャネル保持部113に保持されたチャネル番号を基にしてチャネル管理テーブル112の対応するレコードを検索して、判定505へ遷移する。
判定505では書き込み判定を行う。この処理は、特許文献1に記載の「ブロック併合処理」を行うかどうかの判定と同じであり、ここでは「集約」と表現する。集約が必要な場合には状態506へと遷移して集約処理を行った後に状態507へと遷移してデータの書き込み処理を行う。判定505で集約が不要でありデータ書き込みが可能と判定された場合には、そのまま状態507へと遷移してデータの書き込み処理を行う。
状態507でデータの書き込みを行った後は、判定508で、書き込みを終了できるか、つまり、ホスト101からの書き込みデータをすべて書き終えたかどうかを判定する。そして未書き込みのデータがあれば判定505へと遷移して書き込みの処理を継続する。
書き込み終了コマンド205が発行された後で、ホスト101からの書き込みデータをすべて不揮発性メモリ106に書き終えたら、判定508で書き込み終了と判定して状態501へと戻る。
本実施形態においては、以上のような方法でホスト101からのデータの書き込みを行うが、メモリカード102内部において図5に示すような書き込み処理、即ちホスト101が指定したチャネルのチャネル管理テーブル112に基づいてデータを書き込むというルールによって、ホスト101が指定していないチャネルに対応する書き込み状態は保持し続けることができる。つまり、従来例では、本実施形態のチャネルに相当する概念を用いていないため、別々のチャネル同士での集約処理が行われる等の無駄な集約処理が発生する可能性があったが、本実施形態では、チャネルに対応する集約処理が行われるため、無断な集約が発生する可能性がなく一定の性能を保証できることになる。
次にホスト101側の処理について説明する。
図6は、ドライバ104がアプリケーションソフト103からの読み出し・書き込みのタスク発行を受けて処理を行う際に使用するチャネル変換テーブルである。ドライバ104は、アプリケーションソフト103に対して0から31の論理チャネル番号(ホスト101とメモリカード102との間で使用されるチャネルとは別である)を準備している。ドライバ104は、アプリケーションソフト103からの論理チャネル番号の指定に従いデータの読み出し・書き込みを行うことで、アプリケーションソフト103内の複数のアプリA〜アプリnからの読み出し・書き込みのタスクが発行されてもそれぞれ適切に対応したアプリのデータの読み出し・書き込みを行うことができる。
図6のテーブルは複数のレコードから構成され、論理チャネル毎に1つのレコードを持つ。各レコードは、論理チャネル番号のフィールド601と、論理チャネルの使用状況を示すフィールド602と、メモリカード102へのチャネル指定を行うチャネル番号のフィールド603とを持つ。フィールド601には、アプリケーションソフト103から指定される論理チャネル番号が保持されている。フィールド602には、当該論理チャネル番号がオープンされていて“使用中”であるか、それとも未使用またはクローズされている“空き”であるかを示す情報が保持されている。フィールド603には、当該論理チャネル番号を指定したデータの書き込みをメモリカード102に対して行うときに指定するメモリカード102へのチャネル番号が保持されている。フィールド603には、チャネル0を除き同じチャネル番号が複数箇所に存在することはない。チャネル0だけは複数設定することが可能な特別なチャネル番号である。
図7は、継続的な書き込みが必要な大サイズのファイル(たとえば動画ファイル等)の書き込みにおけるアプリケーションソフト103とドライバ104との間の論理チャネルの割り当てを示すシーケンス図である。
最初にステップ701で、アプリケーションソフト103の中の1つのアプリがドライバ104に対してストリーム指定の入出力オープンを行う。
それを受けて処理702でドライバ104は、図6のチャネル変換テーブルのフィールド602の論理チャネル使用状況が“空き”のレコードを検索する。
次に処理703でドライバ104は、チャネル変換テーブルのフィールド603のメモリカード102へのチャネル番号のチャネル番号から使用されていないチャネル番号を検索する。
ドライバ104は、処理702で検索したフィールド602が“空き”のレコードに対応する論理チャネル番号をステップ704でアプリに通知するとともに、同レコードのフィールド603に、処理703で検索した使用されていないメモリカード102へのチャネル番号を記録する。
アプリはステップ705では、ステップ704で通知された論理チャネル番号を指定してデータの書き込みを行う。
処理706ではドライバ104は、アプリからステップ705で指定された論理チャネルに対応するチャネル変換テーブルレコードのフィールド603のメモリカード102へのチャネル番号を使用してメモリカード102にデータを書き込む。このチャネル番号を指定した書き込みは図2のシーケンス図で説明したものに相当する。
ステップ707でアプリは、ドライバ104が書き込み終了したことを認識する。アプリは必要に応じて同じ論理チャネルを使用して書き込み(ステップ705,処理706,ステップ707)を複数回行うことによって、動画ファイル等の書き込みを行う。
アプリはファイルの書き込みを終了するとステップ708で論理チャネルを指定して入出力をクローズする。
ドライバ104は入出力のクローズを受けて、チャネル変換テーブルのステップ708で指定された論理チャネルに対応するレコードのフィールド602を“空き”に、フィールド603を“チャネル指定無し”にする処理709を行う。
図8は、図7の場合よりも相対的に小サイズのファイル書き込みにおけるアプリケーションソフト103とドライバ104との間の論理チャネルの割り当てを示すシーケンス図である。
最初にステップ801でアプリケーションソフト103の中の1つのアプリがドライバ104に対してストリーム指定しない入出力オープンを行う。
それを受けて処理802ではドライバ104は、図6のチャネル変換テーブルのフィールド602の論理チャネル使用状況が“空き”のレコードを検索する。
ドライバ104は、処理802で検索したフィールド602が“空き”のレコードに対応する論理チャネル番号をステップ803でアプリに通知するとともに、同レコードのフィールド603には特別なチャネル番号である“チャネル0(指定無し)”を記録する。
アプリはステップ804では、ステップ803で通知された論理チャネル番号を指定してデータの書き込みを行う。
処理805ではドライバ104は、チャネル指定を行わずにメモリカード102にデータを書き込む。
ステップ806でアプリは、ドライバ104が書き込み終了したことを認識する。アプリは必要に応じて同じ論理チャネルを使用して書き込み(ステップ804,処理805,ステップ806)を複数回行う。
アプリはファイルの書き込みを終了するとステップ807で論理チャネルを指定して入出力をクローズする。
ドライバ104は入出力のクローズを受けて、チャネル変換テーブルのステップ807で指定された論理チャネルに対応するレコードのフィールド602を“空き”に、フィールド603を“チャネル指定無し”にする処理808を行う。
図9は、図7のシーケンス図での論理チャネルを指定した書き込み(ステップ705,処理706,ステップ707)に対応するドライバ104の処理のフローチャートである。
状態901ではドライバ104は、アプリケーションソフト103からのタスクが発行されるのを待つタスク待ちのステートである。
判定902ではアプリケーションソフト103からのタスクがあったかどうかを判定しているが、アプリケーションソフト103からのタスクが入力されない間は、ドライバ104はタスク待ちのステート901の状態を保ち続ける。
アプリケーションソフト103からドライバ104に対してタスクが発行されると、判定902でタスクありと判定されて判定903へと遷移し、判定903でそのタスクが書き込みテスクであると判定されると判定904へ遷移する。判定904でその書き込みタスクがストリーム指定の論理チャネルへの書き込みかストリーム指定でない論理チャネルへの書き込みかを判定し、ストリーム指定の書き込みと判定すると判定905へと遷移する。
判定905で、FAT上に既に予約領域があり書き込み可能かどうかを判定する。ストリーム指定の最初の書き込みでは予約領域は存在しないので、この場合は予約領域なしと判定されて状態906へ遷移する。
状態906では、これから書き込みのタスクがアプリケーションソフト103から連続して発行されることが予想されるので、あらかじめFAT上に書き込み用の予約領域を確保しておく。予約領域の確保とは、本来はFAT上の情報が未書き込みの領域に対してデータを書き込んだ後に、データを書き込んだ領域に対応するFAT上の情報を書き込み済みとするところを、FAT上の情報が未書き込みの領域の複数を、“予約領域の確保”として予め書き込み済みとしておき、その後対応する複数の領域にデータを書き込むことで、FAT上での連続した領域に対してデータを書き込むための処理である。そして状態907へと遷移する。
一方、判定905で予約領域ありと判定された場合は状態907へ遷移する。
状態907ではドライバ104は、メモリカード102に対してチャネル指定のデータ書き込みを行う。この書き込みは図2のシーケンス図で説明したものに相当する。
次に判定908で書き込みが終了したかどうかを判定し、終了していないと判定すれば判定905へと遷移し、書き込みが終了したと判定すれば状態909へと遷移する。
状態909ではドライバ104は、メモリカード102に対して特別なチャネルであるチャネル0を指定した書き込みで、既に状態907で書き込んだデータに対応した管理情報(FAT、ディレクトリエントリなど)を書き込み、状態901へと遷移する。
以上説明してきたように、本実施形態の不揮発性記憶システムでは、アプリ103が継続的な書き込みが行われる大ファイルの書き込みであるか、小サイズのファイル書き込みであるかを区別してドライバ104に対する入出力オープンを切り替える(大ファイルはストリーム指定、小ファイルをストリーム指定をしない)ことによって、ホスト101は従来の論理アドレスに加えてチャネル番号を指定してメモリカード102に対して書き込みを行う。
そういうチャネル番号を指定した書き込みに対してメモリコントローラ105は、不揮発性メモリ106の物理ブロック以下のサイズの書き込みの状況をチャネル別に管理して、ホスト101からの書き込みに対して、対応するチャネルの書き込み状況から書き込み先となる物理ブロックを決定してデータを書き込む。ホスト101からのデータの書き込みに対して集約処理が行われて書き込み性能が落ちることはあるが、それはあくまでもホスト101からのこれまでの書き込みに起因することである。つまり、あるチャネルに着目したときにデータの書き込みが複数回に分割されていても論理アドレスの順に行われるものであれば、一連の書き込みの間に他のチャネルに対する書き込みがどのように行われていようと、性能低下の要因である集約処理は発生しない。別の見方をすれば、あるチャネルの書き込みが物理ブロックの途中までの状態であったとして、別のチャネルに対してどのような書き込みがどれだけ行われようと、その物理ブロックの途中の状態は維持されたまま集約処理が行われることはない。
本発明は、複数のファイルの書き込みを、個々のファイルの書き込み性能を低下させることなく、並列に不揮発性記憶装置へ書き込む不揮発性メモリシステムに有用である。
図1は、本発明の実施形態による不揮発性記憶システムの構成を示したブロック図である。 図2は、書き込みのホストとメモリカード間のシーケンス図である。 図3は、メモリカードのチャネル識別のフローチャートである。 図4は、チャネル管理テーブルの構成例である。 図5は、メモリカードの書き込みのフローチャートである。 図6は、ドライバのチャネル変換テーブルである。 図7は、ホストのストリーム指定の論理チャネル割り当てのシーケンス図である。 図8は、ホストのストリーム指定をしない論理チャネル割り当てのシーケンス図である。 図9は、ドライバの書き込みのフローチャートである。
101 ホスト
102 メモリカード
103 アプリケーションソフト
104 ドライバ
105 メモリコントローラ
106 不揮発性メモリ
107 制御部
108 ホストI/F
109 バッファ
110 メモリI/F
111 アドレス変換テーブル
112 チャネル管理テーブル
113 チャネル保持部

Claims (5)

  1. 論理アドレスとチャネル番号とを指定した外部からのアクセス指示に従って不揮発性メモリにデータを書き込むメモリコントローラであって、
    前記論理アドレスを前記不揮発性メモリの物理アドレスに変換するアドレス変換機能と、
    前記チャネル番号に応じて前記不揮発性メモリにおける書き込み先の物理アドレスを決定する書き込み先決定機能とを有し、
    前記不揮発性メモリは、消去単位である物理ブロックを複数備えており、
    前記アドレス変換機能は、前記物理ブロック単位で前記論理アドレスを前記物理アドレスに変換し、
    前記物理ブロックよりも容量の小さなデータの書き込み状況を前記チャネル番号別に独立して管理するチャネル管理機能をさらに有する、
    ことを特徴とするメモリコントローラ。
  2. 複数の物理ブロックを有する不揮発性メモリと、
    請求項1に記載のメモリコントローラとを有する、
    ことを特徴とするメモリカード。
  3. 複数の物理ブロックを含む不揮発性メモリと
    前記不揮発性メモリにデータを書き込む請求項1に記載のメモリコントローラとを有するメモリカードと、
    前記メモリカードに対して論理アドレスとチャネル番号とを指定したアクセス指示を行うホスト機器とを備える、
    ことを特徴とする不揮発性メモリシステム。
  4. 請求項において、
    前記ホスト機器は、
    同一のファイルに属するデータの書き込みについては同一のチャネル番号を指定する、ことを特徴とする不揮発性メモリシステム。
  5. 請求項において、
    前記ホスト機器は、
    ファイルの管理情報であるファイルシステム情報の書き込みについては固有のチャネル番号を指定する、
    ことを特徴とする不揮発性メモリシステム。
JP2009500656A 2007-07-20 2008-07-15 メモリコントローラ、メモリカード、不揮発性メモリシステム Active JP5378197B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009500656A JP5378197B2 (ja) 2007-07-20 2008-07-15 メモリコントローラ、メモリカード、不揮発性メモリシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007189345 2007-07-20
JP2007189345 2007-07-20
PCT/JP2008/001898 WO2009013877A1 (ja) 2007-07-20 2008-07-15 メモリコントローラ、メモリカード、不揮発性メモリシステム
JP2009500656A JP5378197B2 (ja) 2007-07-20 2008-07-15 メモリコントローラ、メモリカード、不揮発性メモリシステム

Publications (2)

Publication Number Publication Date
JPWO2009013877A1 JPWO2009013877A1 (ja) 2010-09-30
JP5378197B2 true JP5378197B2 (ja) 2013-12-25

Family

ID=40281139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009500656A Active JP5378197B2 (ja) 2007-07-20 2008-07-15 メモリコントローラ、メモリカード、不揮発性メモリシステム

Country Status (3)

Country Link
US (1) US8572307B2 (ja)
JP (1) JP5378197B2 (ja)
WO (1) WO2009013877A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI461909B (zh) * 2007-08-31 2014-11-21 Thomson Licensing 大量儲存系統及在其中之資料轉移方法
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
JP5485163B2 (ja) * 2009-03-13 2014-05-07 パナソニック株式会社 アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP5362010B2 (ja) * 2009-07-29 2013-12-11 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム
JP5481493B2 (ja) 2009-11-11 2014-04-23 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
JP2011175615A (ja) * 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
JP5793712B2 (ja) 2010-03-01 2015-10-14 パナソニックIpマネジメント株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP6691669B2 (ja) 2015-07-06 2020-05-13 日本電気株式会社 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2007241896A (ja) * 2006-03-10 2007-09-20 Sony Corp 不揮発性メモリシステムおよび不揮発性メモリの管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128155A (ja) 1995-10-27 1997-05-16 Sony Corp ファイル管理方法及びディスク型記録再生装置
JP2001325128A (ja) 2000-05-15 2001-11-22 Sony Corp ファイル管理方法、記録又は再生装置
JP3692313B2 (ja) * 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
KR20070005730A (ko) 2004-04-28 2007-01-10 마츠시타 덴끼 산교 가부시키가이샤 불휘발성 기억장치 및 데이터 기록방법
JP2006065505A (ja) 2004-08-25 2006-03-09 Sony Corp メモリーカード及び再生装置
JP4254930B2 (ja) * 2004-10-29 2009-04-15 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4151644B2 (ja) * 2004-11-29 2008-09-17 松下電器産業株式会社 メモリカードドライブ
EP2074544A2 (en) * 2006-10-09 2009-07-01 SanDisk IL Ltd. Application dependent storage control
US7822887B2 (en) * 2006-10-27 2010-10-26 Stec, Inc. Multi-channel solid-state storage system
US7660911B2 (en) * 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2007241896A (ja) * 2006-03-10 2007-09-20 Sony Corp 不揮発性メモリシステムおよび不揮発性メモリの管理方法

Also Published As

Publication number Publication date
JPWO2009013877A1 (ja) 2010-09-30
US8572307B2 (en) 2013-10-29
US20100228905A1 (en) 2010-09-09
WO2009013877A1 (ja) 2009-01-29

Similar Documents

Publication Publication Date Title
JP5378197B2 (ja) メモリコントローラ、メモリカード、不揮発性メモリシステム
USRE49921E1 (en) Memory device and controlling method of the same
US5513138A (en) Memory card having a plurality of EEPROM chips
TWI381272B (zh) 快閃記憶體裝置及快閃記憶體的存取方法
US9026722B2 (en) Storing/reading several data streams into/from an array of memories
US20090310412A1 (en) Methods of data management in non-volatile memory devices and related non-volatile memory systems
WO2010146767A1 (ja) 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
JPWO2005103903A1 (ja) 不揮発性記憶システム
WO2005096220A1 (ja) メモリカード及びメモリカードシステム
US20050278480A1 (en) Method of writing data into flash memory
KR101581311B1 (ko) 플래시 메모리 장치 및 그 제어 방법
KR20120054502A (ko) 반도체 기억 장치
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP2010237907A (ja) ストレージ装置および記録方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP4372168B2 (ja) 半導体メモリ情報蓄積装置とその蓄積データ処理方法
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP5178355B2 (ja) 記録装置
JP2007249662A (ja) メモリカード及びメモリカードの制御方法
JP2006277736A (ja) 不揮発性記憶装置の書込み方法
JP2008033379A (ja) 不揮発性記憶装置
JPWO2008102610A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
KR101214784B1 (ko) 녹화 및 재생 속도 개선을 위한 다채널 녹화 및 재생 장치
JP4219299B2 (ja) 記録デバイスのキャッシュ方法及びデータ記録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110624

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130409

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130925

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