(57)【要約】メモリカードは、ホスト機器に装着されてデータ記録に利用され、フラッシュメモリを内蔵し、内部ＲＯＭに、予めフラッシュメモリ固有の消去ブロックサイズの整数倍の所定値であるライト可能ブロックサイズを記録しており、ホスト機器から発行されたライトコマンドのライトブロックサイズつまり書き込むデータのサイズを検出して、ＲＯＭ内のライト可能ブロックサイズと照らし合わせることにより、ライトブロックサイズがライト可能ブロックサイズの整数倍か否かにより書き込み許否を判定し、書き込み許可と判定した場合にのみホスト機器からのデータをフラッシュメモリに書き込み、書き込み不許可と判定した場合にはホスト機器にエラー応答を返す。【特許請求の範囲】
【請求項１】
フラッシュメモリと、
ホスト機器との間でデータの授受を行う外部インターフェイス手段と、
所定のライト可能ブロックサイズを記憶している記憶手段と、
ホスト機器から、ライトブロックサイズの指定を伴い前記フラッシュメモリへのデータの書き込みを指示するライトコマンドを、前記外部インターフェイス手段を介して受け取った場合に、当該ライトブロックサイズが前記ライト可能ブロックサイズと所定の関係を有するか否かを判定し、判定結果に応じて前記フラッシュメモリへのデータ書き込みの許否に係る制御を行う制御手段とを備える
ことを特徴とするメモリカード。
【請求項２】
前記所定のライト可能ブロックサイズは、前記フラッシュメモリについての消去ブロックのサイズの所定整数倍のサイズであり、
前記制御手段の判定基準となる前記所定の関係は、前記ライトブロックサイズが前記ライト可能ブロックサイズの整数倍になっているという関係であり、
前記制御手段は、前記所定の関係を有する場合にのみフラッシュメモリへデータを書き込むよう制御する
ことを特徴とする請求項１記載のメモリカード。
【請求項３】
前記メモリカードは更に、
前記記憶手段からライト可能ブロックサイズを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する伝達手段を備える
ことを特徴とする請求項２記載のメモリカード。
【請求項４】
前記記憶手段は、更に、前記ライト可能ブロックサイズと同サイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている保証ライトレートを記憶しており、
前記伝達手段は、更に、前記記憶手段から保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する
ことを特徴とする請求項３記載のメモリカード。
【請求項５】
前記記憶手段は、前記ライト可能ブロックサイズの特定の整数倍であるサイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている条件付保証ライトレートを記憶しており、
前記伝達手段は、更に、前記記憶手段から条件付保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する
ことを特徴とする請求項４記載のメモリカード。
【請求項６】
前記記憶手段は、更に、前記保証ライトレートにより示される最低記録レートを保証するために、前記外部インターフェイス手段にデータを伝達するためのホスト機器側のバッファーメモリに必要とされる容量を示すものとして予め定められているバッファーメモリ容量データを記憶しており、
前記伝達手段は、更に、前記記憶手段からバッファーメモリ容量データを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する
ことを特徴とする請求項４記載のメモリカード。
【請求項７】
前記メモリカードは、更に、
前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換え、これに対応して前記保証ライトレートを書き換える更新手段を備える
ことを特徴とする請求項４記載のメモリカード。
【請求項８】
前記メモリカードは、更に、
前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換えるライト可能ブロックサイズ更新手段を備える
ことを特徴とする請求項３記載のメモリカード。
【請求項９】
請求項１記載のメモリカードと、当該メモリカードとの間でデータの授受を行うホスト機器とを備えるメモリカードシステムであって、
前記ホスト機器は、前記メモリカードへの書きこみが必要とされる第１データのサイズが、前記ライト可能ブロックサイズ未満である場合には、前記外部インターフェイス手段を介して前記メモリカードのフラッシュメモリから第２データを読み出して、第１データと第２データとを合わせることにより当該ライトブロックサイズと同サイズの第３データを構築して、第３データを前記フラッシュメモリに書き込むべく前記メモリカードにライトコマンドを伝達するリードモディファイライト手段を備える
ことを特徴とするメモリカードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、フラッシュメモリを含むメモリカード、及びメモリカードにデータを記録するためのメモリカードシステムに関する。
【背景技術】
【０００２】  フラッシュメモリが内蔵されたカード型の記録媒体であるＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード等のメモリカードは、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ等のディジタル機器においてデータを記録するために広く利用されている。例えば、メモリカードは、ＭＰＥＧ４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ４）のような比較的低い転送レートの動画を記録するための記録媒体として用いられている。【０００３】  このメモリカードに内蔵されているフラッシュメモリは、記録されたデータを消去するための最低単位となる一定サイズのブロック（以下、「消去ブロック」という。）が複数集まって構成されている。データを消去する場合は消去ブロック単位で消去動作が実施される。この消去ブロックは、通常は、一定サイズの複数のページ（以下、「ライトページ」という。）により構成されており、データの書き込みは、必ずライトページ単位で、消去済みのライトページに対して行われる。【０００４】  図１は、メモリカードへのデータの書き込みの様子を示す図である。
同図は、状態９０１ａ〜９０１ｄにより、５１２バイトのライトページ２個により１個の消去ブロックを構成しているフラッシュメモリにおける２個の消去ブロックを書き換え対象として、消去ブロックを構成している２個のライトページに一度書き込まれたデータのうち一方のライトページのデータのみを書き換える場合の状態変化例を示している。【０００５】  状態９０１ａは、２つの消去ブロックの内、一方（図１において上段）の消去ブロックにはデータＡとデータＢとが書き込み済みで、他方（図１において下段）の消去ブロックは消去済みという状態である。
状態９０１ａであるフラッシュメモリにおけるデータＢを書き換える必要がある場合は、まず、下段の消去済みの１つのライトページに、新たに変化させたデータＢ（ＮＥＷ）を書き込む。この結果、フラッシュメモリは状態９０１ｂに変化する。【０００６】  次に上段において書き込み済みのデータＡを、下段の消去ブロック中にコピーして、状態９０１ｃとし、その後、上段の消去ブロックを消去する。この結果、フラッシュメモリは状態９０１ｄに変化する。
消去ブロックの一部のライトページを書き換える必要があるときの、上述の一連の動作を、ここでは「巻き込み退避」と呼ぶ。【０００７】  この巻き込み退避が発生することにより、例えばホスト機器が、１ライトページ分の書き込みを指示するライトコマンドを発行した際に、その指示したライトページ数より、実際にフラッシュメモリにおいて書き込まれる対象となるライトページの数は多くなり、この結果として、ホスト機器の把握できる以上に書き込み速度が低下してしまう。
このようなメモリカードに対して、高速記録を実現するために、本出願に係る発明者らは、メモリカードを構成するフラッシュメモリの消去ブロックの整数倍のブロック単位でメモリカードにライトコマンドを発行してデータを記録する方式を案出し、既に日本国で特許出願（特願２００３−１２１１７８号）を行っている。【０００８】  また、高速記録を実現するための方式として、複数のフラッシュメモリで構成されているメモリカードにおける消去ブロックのうち、構成要素である全てのライトページが記録可能な状態である消去ブロックをサーチして、複数の消去ブロックに対して並列記録する方式が日本国の特許公開公報で示されている（特許文献１参照）。
ところで、ディジタル映像機器からのＤＶ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ）フォーマットでの出力のように、４ＭＢ／ｓｅｃといった高い転送レートで出力される動画を長時間記録するための記録媒体としてメモリカードを用いるためには、メモリカードへの記録レートが、ある一定レート以上であることが保証されている必要がある。【０００９】  しかしながら、従来のメモリカードの高速記録のための方式は、メモリカードの記録速度性能として記録レートの下限値（以下、「最低記録レート」という。）を保証するようなものではない。この最低記録レートの保証とは、ホスト機器がその最低記録レートでデータをメモリカードに書き込み続けることができることの保証をいう。
なお、メモリカードでは最大記録レートとして、例えば約１０ＭＢ／ｓｅｃを公表している商品も従来市販されているが、内蔵するフラッシュメモリのバラツキを想定したスペックではなく、最低記録レートを保証しているものではない。【００１０】  以下、従来の高速記録のための方式によっても、最低記録レートを保証することが困難である理由を説明する。
一般に、パーソナルコンピュータ（ＰＣ）ではファイルシステムとしてファイルアロケーションテーブル（ＦＡＴ）システムが採用されており、ＦＡＴシステムでは基本的にはアクセス単位となるセクタを５１２バイトとして定義していることから、通常はＰＣからのライトコマンドは、５１２バイトをライトブロックサイズとして、つまり５１２バイト単位で、発行される。このことを前提として、５１２バイトのライトページを８個含んで構成された消去ブロックを複数含むメモリカードに対してＰＣがデータを記録する場合を想定して説明する。【００１１】  消去ブロックが、８個のライトページで構成されているメモリカードでは、以下のようなアルゴリズムが採用されることが多い。
メモリカードは、一般に、保証する記録容量を実現するのに要する消去ブロック数とは別に、作業用の所定数（例えば４０個）の消去ブロックを余分に有する。この余分に有している消去ブロックを、作業用のブロック（以下、「ワ−クブロック」という。）として扱う。【００１２】  ＰＣが同一のセクタを繰り返し書き換える必要がある際に、それをフラッシュメモリの同一のライトページを書き換えるように実現すると、そのライトページの記録回数が集中的に増大し、フラッシュメモリの寿命が短縮されるので、これを回避すべくワークブロックを用いた制御が行われる。
例えば、全記録容量に相当する消去ブロックが記録済みのメモリカードに、データを繰り返し上書きする場合、その４０個のワークブロックに順次記録していき、全てのワークブロックが記録済みに遷移した後に、そのワークブロックつまり消去ブロックを消去してからまた記録するといった手順でその上書き動作が行われる。【００１３】  図２は、５１２バイトの８個のライトページを含む消去ブロックを有するメモリカードの状態変化を示す図である。
状態９０２ａは、セクタ１を１回書き換えた状態、詳しくは、もとのライトページとは別のワークブロック内のライトページを書き換えることでセクタ１を１回書き換えた状態である。状態９０２ｂは、セクタ１を８回まで書き換えた状態、状態９０２ｃは、更にセクタ３、セクタ５、セクタ７を８回書き換えた状態を示している。【００１４】  なお、同図中、ｘの記号は、ライトページの内容が無効化されたことを示しており、例えば、１ｘは、セクタ１の内容を有するライトページが無効化された状態を示す。なお、メモリカードにおいて各ライトページについて有効か無効かがテーブルを用いて管理されている。
以後、書き込み済みであって無効化されたライトページを「無効ページ」、書き込み済みであって無効化されていないライトページを「有効ページ」と呼ぶ。また、同図中、Ｎｅｗの記号は、セクタ内容が更新されたことを示しており、例えば、１（Ｎｅｗ）は、内容が更新されたセクタ１を示している。【００１５】  従来の高速記録のための方式では、状態９０２ａにおいて、図１の状態９０１ｃで示したような巻き込み退避動作を実施しない。巻き込み退避動作を実施すれば、５１２バイトの１つのライトページへの書き込みのために、必ず５１２バイト×８、つまり４キロバイトのライトが発生し、記録の速度が大幅に低下するので、これを避けるためである。
ワークブロックの数について考察すると、当初４０個あったワークブロックは状態９０２ｃにおいては、３６個になり、更に、同様にセクタ２、セクタ４、セクタ６も８回書き換えると、ワークブロックの数は３３個となる。【００１６】  ８個のライトページで１消去ブロックを構成している場合、当初１個の消去ブロックに対応したものであった各セクタ（例えばセクタ１〜セクタ８）は、最大８個の消去ブロックに分散してしまう。この現象を「論理分散」と呼ぶ。
この論理分散が発生すると、ワークブロックの数は急激に減少し、ワークブロックの最低数（例えば１という設定値）に到達する可能性がある。ワークブロックが最低数に到達すると、ワークブロックを新たに作成するために空きブロックサーチのタスクを実行する。【００１７】  ここで、空きブロックサーチのタスクとは、記録済みの消去ブロックを、ワークブロックとして扱えるようにするために、即ち有効なデータが記録されていない状態にするために、全ての消去ブロックから図２のｘで示した無効ページをサーチするタスクである。そして、無効ページを有する消去ブロックにおいて、有効ページをワークブロックに退避し、前記消去ブロックを消去することで新しいワークブロックを作成する。【００１８】  以上の動作を図３に示す。即ち、図３は、無効ページを有する消去ブロックから有効ページをワークブロックに退避する前後の状態を示す図である。
同図中、上段は空きブロックサーチのタスクにより検出された、新しいワークブロックに変換可能な記録済みの消去ブロック、下段はワークブロックを示している。状態９０３ｂは、状態９０３ａから有効ページをワークブロックに退避させた状態を示している。【００１９】  状態９０３ｂにおいては、上段の３個の消去ブロックは全て無効ページで構成されているので、これらを消去することによって新たに３個のワークブロックの作成が可能となる。
このような空きブロックサーチの発生は、メモリカードの記録速度を低下させる。
そして、メモリカードは、複数のホスト機器に随時装着されて利用され得るため、たとえ、メモリカードに消去ブロック単位で書き込み動作を行うホスト機器であっても、以前にメモリカードに書き込みをしたホスト機器が特定できない以上、空きブロックサーチのタスクを実行する必要が生じる可能性がある。例えばＰＣによりセクタ単位で記録されたメモリカードに対して、専用のホスト機器で、消去ブロック単位で書き込みをした場合等では、空きブロックサーチが発生してメモリカードの記録速度が低下してしまう可能性がある。このことが、メモリカードの最低記録レートの保証を困難にしている。
【特許文献１】特開２０００−１２２９２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】  そこで、本発明は、上述した問題に鑑みてなされたものであり、ある一定の最低記録レートを保証可能なメモリカードと、そのメモリカードを使用してデータを記録するメモリカードシステムを提供することを目的とする。
【課題を解決するための手段】
【００２１】  上記目的を達成すべく本発明は、フラッシュメモリと、ホスト機器との間でデータの授受を行う外部インターフェイス手段と、所定のライト可能ブロックサイズを記憶している記憶手段と、ホスト機器から、ライトブロックサイズの指定を伴い前記フラッシュメモリへのデータの書き込みを指示するライトコマンドを、前記外部インターフェイス手段を介して受け取った場合に、当該ライトブロックサイズが前記ライト可能ブロックサイズと所定の関係を有するか否かを判定し、判定結果に応じて前記フラッシュメモリへのデータ書き込みの許否に係る制御を行う制御手段とを備えることを特徴とする。【００２２】  ここで、ライトコマンドは、フラッシュメモリにデータを書き込む旨の指示であり、書き込むべきブロックのデータサイズつまり一塊のデータのデータサイズであるライトブロックサイズの指定を伴い、ホスト機器からメモリカードに伝えられるものである。また、ライト可能ブロックサイズは、ライトコマンドについての許否判定用のデータであり、所定のデータサイズを示す。なお、データ書き込みの許否に係る制御は、書き込みを実行するかしないかという制御であり、書き込みを実行しない場合としては、例えばライトコマンドに対して拒絶の旨を示すエラー応答を返すこと等を想定している。
【発明の効果】
【００２３】  上述の構成を備える本発明に係るメモリカードは、ホスト機器がライトコマンドにより書き込むデータのサイズであるライトブロックサイズが、ある最低記録レートを保証するために必要となる所定の条件を満たすか否かを判定して、データの書き込みを実行するか否かに係る制御を行うことができる。このため、その条件を満たさない場合には、ライトコマンドに対してエラー応答を返す等により、データの書き込みを実行しないので、このメモリカードが順次複数のホスト機器により記録に用いられることとなっても、その最低記録レートの保証が可能になる。【００２４】  なお、その条件判定の材料として本発明に係るメモリカードは、内蔵するフラッシュメモリの消去ブロックサイズに鑑みて予め設定されたライト可能ブロックサイズを不揮発性メモリ等に記憶する構成となっている。フラッシュメモリへの書き込み速度性能をある一定レベル以上に保つと保証するためにはライトブロックサイズが、フラッシュメモリの消去ブロックのサイズとの間で一定の関係を満たすべきとの観点から、メモリカード内に記憶さいるライト可能ブロックサイズのデータ値が、消去ブロックのサイズを考慮して定められれば、ある最低記録レートでの書き込みが保証できるようになる。【００２５】  また、前記所定のライト可能ブロックサイズは、前記フラッシュメモリについての消去ブロックのサイズの所定整数倍のサイズであり、前記制御手段の判定基準となる前記所定の関係は、前記ライトブロックサイズが前記ライト可能ブロックサイズの整数倍になっているという関係であり、前記制御手段は、前記所定の関係を有する場合にのみフラッシュメモリへデータを書き込むよう制御することとしてもよい。【００２６】  これにより、ライトブロックサイズが、消去ブロックの整数倍の所定値であるライト可能ブロックを最小単位として、そのライト可能ブロックの整数倍である場合にのみ、フラッシュメモリに、そのライトブロックサイズ分のデータが書き込まれるようになるため、このメモリカードが複数のホスト機器に順次装着され書き込まれたような場合であっても、フラッシュメモリへのデータ記録に際しては巻き込み退避が起こらず、いずれのホスト機器も、ある最低記録レートでの書き込みを継続的に行うことができるようになる。従って、このメモリカードは、最低記録レートの保証が可能になるため、動画等のリアルタイム記録に適したものとなる。【００２７】  また、前記メモリカードは更に、前記記憶手段からライト可能ブロックサイズを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する伝達手段を備えることとしてもよい。
これにより、ホスト機器は、メモリカードからライト可能ブロックサイズを取得することができ、これに基づいてライトコマンドに伴うライトブロックサイズ、つまり一度に書き込むデータサイズを、適切に定めることができるようになる。【００２８】  また、前記記憶手段は、更に、前記ライト可能ブロックサイズと同サイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている保証ライトレートを記憶しており、前記伝達手段は、更に、前記記憶手段から保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達することとしてもよい。【００２９】  これにより、ホスト機器は、メモリカードからライト可能ブロックサイズを取得してそれを最小単位としてデータを書き込む限り、保証される最低記録レートである保証ライトレートをも、メモリカードから取得することができるようになる。つまり、ホスト機器が予め記憶されているライト可能ブロックサイズの異なる複数のメモリカードを逐次切り替えて利用している場合であっても、利用中のメモリカードから適切にライト可能ブロックサイズを取得することができ、そのサイズに合わせて、ホスト機器は適切なライトブロックサイズでのデータ書き込みを行うことができるようになる。例えば映像信号を圧縮してメモリカードに記録する処理を行うようなホスト機器においては、メモリカード毎に取得したライト可能ブロックサイズに応じて、圧縮率を変更して適切にライトブロックサイズを調整しさえすれば、最低記録レートを保ってリアルタイムにデータを書き込むことができるようになる。【００３０】  また、前記記憶手段は、前記ライト可能ブロックサイズの特定の整数倍であるサイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている条件付保証ライトレートを記憶しており、前記伝達手段は、更に、前記記憶手段から条件付保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達することとしてもよい。【００３１】  これにより、メモリカードのライト可能ブロックサイズが例えば１２８キロバイト（ＫＢ）である場合において、その１２８ＫＢ単位でデータを書き込んだ場合に保証されることとなる最低記録レートを示す保証ライトレートの他に、例えばその２倍の２５６ＫＢ単位でデータを書き込んだ場合に保証されることとなる最低記録レートを示す条件付保証ライトレートをホスト機器が取得することができ、ホスト機器は必要となる最低記録レートに応じて、書き込むデータサイズであるライトブロックサイズを適切に定めることができるようになる。【００３２】  また、前記記憶手段は、更に、前記保証ライトレートにより示される最低記録レートを保証するために、前記外部インターフェイス手段にデータを伝達するためのホスト機器側のバッファーメモリに必要とされる容量を示すものとして予め定められているバッファーメモリ容量データを記憶しており、前記伝達手段は、更に、前記記憶手段からバッファーメモリ容量データを読み出して前記外部インターフェイス手段を介��てホスト機器に伝達することとしてもよい。【００３３】  これにより、ホスト機器は、メモリカードからバッファーメモリ容量データを取得することができ、これに基づいて、最低記録レートで継続的にデータを書き込む必要がある場合に、バッファーメモリの容量を調整することができるようになる。なお、バッファーメモリは、メモリカードの記録レート揺らぎやエラーリトライ等を考慮すれば一定の記録レートを保証するために有効に働く。【００３４】  また、前記メモリカードは、更に、前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換えるライト可能ブロックサイズ更新手段を備えることとしてもよい。
これにより、メモリカードにおいて当初定められている最低記録レートの保証が不要な用途にメモリカードを用い続ける場合等においては、ホスト機器はライト可能ブロックサイズを小さいものに変更して、小さいライトブロックサイズでデータを記録することができるようになる。但し、この変更までは、当初の最低記録レートは保証されたものの、変更後は当初の最低記録レートは保証されなくなる。【００３５】  また、前記メモリカードは、更に、前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換え、これに対応して前記保証ライトレートを書き換える更新手段を備えることとしてもよい。
これにより、例えば、消去ブロックサイズが１２８ＫＢであり、メモリカードの当初のライト可能ブロックサイズが２５６ＫＢであった場合に、ホスト機器からの要求に応じて１２８ＫＢにライト可能ブロックサイズを変更したときにおいては、これに応じて予めメモリカード内部に保持しておいた、１２８ＫＢに対応する最低記録レートを、新たに保証ライトレートとして、メモリカードを装着したホスト機器に伝達可能にすることができるようになる。また、ホスト機器からの要求に応じてライト可能ブロックサイズを変更したときにおいては、当初の保証ライトレートによる最低記録レートの保証が不可能になったことを示すため、予め規定しておいた保証不可能を示す値（例えば０）となるように、保証ライトレートを変更し、それ以後にメモリカードを装着した各ホスト機器にその旨を伝達することができるようになる。【００３６】  また、本発明に係るメモリカードシステムは、請求項１記載のメモリカードと、当該メモリカードとの間でデータの授受を行うホスト機器とを備えるメモリカードシステムであって、前記ホスト機器は、前記メモリカードへの書きこみが必要とされる第１データのサイズが、前記ライト可能ブロックサイズ未満である場合には、前記外部インターフェイス手段を介して前記メモリカードのフラッシュメモリから第２データを読み出して、第１データと第２データとを合わせることにより当該ライトブロックサイズと同サイズの第３データを構築して、第３データを前記フラッシュメモリに書き込むべく前記メモリカードにライトコマンドを伝達するリードモディファイライト手段を備えることを特徴とする。【００３７】  これにより、ホスト機器がメモリカードに書き込むべきデータがライト可能ブロックサイズに満たない場合は、メモリカードから予めデータを読み出し、合わせることでライト可能ブロックサイズになるように書き込むべきデータを再構築して、その再構築したデータを書き込むためにメモリカードにライトコマンドを発行するため、最低記録レートを保証してメモリカードへのデータの書き込みを行うことができるようになる。従って、このメモリカードシステムは、例えば、受信したディジタル放送番組や、ＤＶで撮像した動画等を、リアルタイムにメモリカードに録画するための記録システムとして活用できる。
【図面の簡単な説明】
【００３８】［図１］メモリカードへのデータの書き込みの様子を示す図である。
［図２］ライトページを含む消去ブロックを有するメモリカードの状態変化を示す図である。
［図３］無効ページを有する消去ブロックから有効ページをワークブロックに退避する前後の状態を示す図である。
［図４］実施の形態１に係るメモリカードの構成図である。
［図５］ホスト機器とメモリカードとの間で伝送される、ライトコマンドに係る信号及びデータの伝送タイミングを示す図である。
［図６Ａ］セクタとフラッシュメモリの消去ブロックとの関係を示す図である。
［図６Ｂ］セクタと複数のフラッシュメモリの消去ブロックとの関係を示す図である。
［図７］メモリカードを構成する消去ブロックについての状態遷移図である。
［図８］必要バッファーメモリ容量を求める待ち行列計算のシステム図である。
［図９］実施の形態２に係るメモリカードシステムの構成図である。
［図１０］リードモディファイライトの動作イメージを示す図である。
［図１１］実施の形態３に係るメモリカードの構成図である。
［図１２］ライト可能ブロックサイズ更新要求コマンド対応処理を示すフローチャートである。
【符号の説明】
【００３９】  １、４１  外部インターフェイス部
２、４２  コマンド解析部
３  制御部
４  ライトブロックサイズ判定部
５  データライト部
６  フラッシュメモリ
７、４７  ライト可能ブロックサイズ格納領域
８  保証ライトレート格納領域
９  バッファーメモリ容量格納領域
１０  画像データ入力部
１１  圧縮部
１２  バッファーメモリ
１３  リードモディファイライト部
１４  制御部
１９、４９  ＲＯＭ
２０、３０  メモリカード
２１  ホスト機器
【発明を実施するための最良の形態】
【００４０】＜実施の形態１＞
以下、本発明の実施の形態１に係るメモリカードについて説明する。
図４は、実施の形態１に係るメモリカードの構成図である。
なお、同図中、太い矢線は、メモリカード２０に対してホスト機器から送られる記録対象となるデータの流れを示し、細い矢線は、制御信号又は制御データの流れを示している。【００４１】  同図に示すように、実施の形態１に係るメモリカード２０は、外部インターフェイス部１、コマンド解析部２、制御部３、フラッシュメモリ６、並びに、ライト可能ブロックサイズ格納領域７、保証ライトレート格納領域８及びバッファーメモリ容量格納領域９を有するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１９を備える。
ここで、外部インターフェイス部１は、ホスト機器からのコマンドの受信、ホスト機器コマンドに対するホスト機器への応答の送信、及びデータの転送を行う機能を有する。【００４２】  コマンド解析部２は、外部インターフェイス部１によって受信されたコマンドを解析する機能を有する。コマンドには、メモリカードに内蔵されているフラッシュメモリへデータを書き込むための指示であるライトコマンドや、フラッシュメモリからデータを読み出すための指示であるリードコマンドや、ライト可能ブロックサイズ格納領域７、保証ライトレート格納領域８又はバッファーメモリ容量格納領域９といったＲＯＭ１９の各内容を読み出すためのコマンド等がある。なお、ホスト機器か受信するライトコマンドは、書き込むデータの量であるライトブロックサイズと、データを書き込む先頭セクタとを指定するライトコマンドの指定を伴う。【００４３】  リードコマンドに係る制御機構及び制御動作については従来のメモリカードと同様であるため、ここでは説明を省略する。なお、コマンド解析部２は、コマンドを解析した結果、コマンドがＲＯＭ１９の各内容を読み出すためのコマンドである場合には、ホスト機器へその各内容を読み出して、外部インターフェイス部１を介して、コマンドへの応答として伝送する。【００４４】  また、ライト可能ブロックサイズ格納領域７は、ホスト機器に記録を許容するところのブロックサイズを示すライト可能ブロックサイズが予め記録されている領域であり、保証ライトレート格納領域８は、保証する最低記録レートを示す保証ライトレートが予め記録されている領域であり、バッファーメモリ容量格納領域９は、その保証ライトレートを満たすためにホスト機器に要求するバッファーメモリ容量データが予め記録されている領域である。【００４５】  制御部３は、コマンド解析部２による解析結果に応じて、フラッシュメモリ６へのアクセス即ちデータの読み出し及び書き込みを行うものであり、ライトブロックサイズ判定部４及びデータライト部５を有する。
ライトブロックサイズ判定部４は、ライト可能ブロックサイズ格納領域７に記録されているライト可能ブロックサイズを参照して、コマンド解析手段２で解析されたライトコマンドで指定されるライトブロックサイズ等が適切か否かを判定し、適切であればライトコマンドに応じたデータの書き込みをデータライト部５に実行させ、不適切であれば、外部インターフェイス部１等を介してエラー応答をホスト機器に返信する機能を有する。なお、ホスト機器側では、ライトコマンドに対してのエラー応答を受信した場合には、データの書き込みを中止し、エラー応答を受信しなかった場合においてライトブロックサイズ分のデータをメモリカードに連続的に伝達する。【００４６】  以下、上記構成を備えるメモリカードのデータ書き込み動作について説明する。
まず、ホスト機器は、外部インターフェイス部１を介して制御コマンドであるライトコマンドをメモリカードに発行する。ここでは、０番のセクタから連続して８セクタにデータを書くライトコマンドが発行される場合を想定して説明する。
図５は、ホスト機器とメモリカードとの間で伝送されるライトコマンドに係る信号及びデータの伝送タイミングを示す図である。【００４７】  図５中、コマンド／応答１１１の段は、ホスト機器からメモリカード２０へのコマンドと、メモリカード２０からの、コマンドに対する応答との遷移を示す。ホスト機器からのライトコマンドの発行から後に書き込むためのデータの転送が開始され、正常に転送がなされた場合においては、転送終了後に、転送完了の状態を示すステータス値がメモリカード２０からホスト機器に通知される。【００４８】  図５中、転送データ１１２の段は、書き込むためのデータとして、５１２バイト（５１２Ｂ）単位の８セクタ分のデータがホスト機器からメモリカード２０へと転送される様子を示す。
図５中、割込信号１１３の段は、メモリカードがホスト機器に返す割込信号の様子を示しており、ホスト機器から５１２バイトのデータを受信可能になる毎に割込信号をアサートしている。また、８セクタの転送が終了してステータスの準備が完了した時にも、ホスト機器にステータス値を読み取るタイミングを知らせるべく割込信号をアサートしている。ホスト機器側では、この割込信号に従ったタイミングで書き込むべきデータの転送や、ステータスの読み取りを行う必要がある。【００４９】  ホスト機器がライトコマンドを発すると、メモリカード２０は、外部インターフェイス部１を介してこのライトコマンドを受け取ってコマンド解析部２に伝え、コマンド解析部２では、「０番目のセクタからの８連続セクタの書き込み動作」と解析して、その解析結果であるデータはライトブロックサイズ判定部４に入力される。
ライトブロックサイズ判定部４では、ライト可能ブロックサイズ格納領域７に記録されているライト可能ブロックサイズと、コマンド解析部２による解析結果のデータとを参照して、ライトコマンドの指定が、ライト可能ブロックサイズで定まる条件を満たしているかどうかを判定する。【００５０】  ここでは、ライトブロックサイズがセクタ数で示され、ライト可能ブロックサイズとしてセクタ数（１セクタ＝５１２バイト）を記録する形式であるとして説明すると、ライト可能ブロックサイズが８であれば、条件は次のようになる。
条件：｛（先頭セクタ番号）％８＝０｝かつ｛（ライトブロックサイズであるセクタ数）％８＝０｝
つまり、ライトコマンドで指定される、データを書き込む先頭セクタが、ライト可能ブロックサイズで示される単位毎に区分されたセクタ群の境界位置上にあり、かつ、ライトコマンドで指定される、ライトブロックサイズが、ライト可能ブロックサイズで示される単位量の整数倍であれば、条件が満たされる。【００５１】  従って、ライトブロックサイズ判定部４は、ライトコマンドに伴う先頭セクタ番号を８で割った場合の剰余が０であり、かつ、ライトコマンドに伴うライトブロックサイズであるセクタ数を８で割った場合の剰余が０であるという条件を満たす場合にのみ、発行されたライトコマンドを実行し、それ以外のライトコマンドをエラーとしてホストに通知する。なお、ライトブロックサイズ判定部４でライトコマンドが実行可能と判定された場合に、それに後続するホスト機器からの、書き込まれるべきデータは、データライト部５を介してフラッシュメモリ６にライトされる。【００５２】  ところで、上述したライト可能ブロックサイズ格納領域７には、フラッシュメモリ６の消去ブロックに相当するセクタ数が、ライト可能ブロックサイズとして記録されている。以下、このライト可能ブロックサイズについて更に説明する。
ここでは、メモリカードに１個のフラッシュメモリが内蔵されている場合を想定しており、１消去ブロックが８セクタで構成されていて、フラッシュメモリのライトページがセクタと同サイズである状態で、ライト可能ブロックサイズとして８が記録されていることを想定している。仮にメモリカードにフラッシュメモリが複数個内蔵されていて、ホスト機器が発行するライトコマンドにおける連続セクタ番号が複数のフラッシュメモリにまたがってインターリーブされている場合には、（フラッシュメモリの消去ブロックに相当するセクタ数）×（フラッシュメモリ数）が、ライト可能ブロックサイズとして記録されるようにすればよい。【００５３】  図６Ａ及び図６Ｂは、セクタとフラッシュメモリの消去ブロックとの関係を示す図である。
図６Ａは、メモリカードが１個のフラッシュメモリで構成されている場合を示し、図６Ｂは、フラッシュメモリ１２１及びフラッシュメモリ１２２なる２個のフラッシュメモリで構成されている場合を示す。図６Ａ及び図６Ｂ中の各数値は、セクタ番号であり、破線で囲まれた各矩形はセクタを、実線で囲まれた各矩形は消去ブロックをそれぞれ示す。図６Ｂでは、セクタ番号が２個のフラッシュメモリにインターリーブされているので、メモリカードの消去ブロックを構成しているセクタ数は１６個になる。【００５４】  本実施の形態では、このライト可能ブロックサイズに基づく条件判断の結果として消去ブロックの整数倍のブロック単位でしか書き込まないようにしている。
以下、消去ブロックの整数倍のブロック単位以外で書き込みを行うこととした場合の問題点について図７を用いて詳細に説明する。
図７は、メモリカードを構成する消去ブロックの状態遷移図である。同図に示すように、各消去ブロックの状態は以下の６状態に分類される。【００５５】  「状態Ａ」：消去ブロックを構成する全ライトページに記録可能である。この状態の消去ブロックは、ワークブロックとして扱うことのできるものである。
「状態Ｂ」：消去ブロックを構成する一部のライトページに書き込み可能であり、記録済みライトページには有効ページが存在する。
「状態Ｃ」：消去ブロックを構成する一部のライトページに書き込み可能であり、記録済みライトページは全て無効ページである。【００５６】  「状態Ｄ」：消去ブロックを構成する全ライトページは書き込み不可（全ライトページが無効ページ）である。
「状態Ｅ］：消去ブロックを構成する全ライトページは書き込み不可（一部のライトページが有効ページ）である。
「状態Ｆ］：消去ブロックを構成する全ライトページは書き込み不可（全ライトページが有効ページ）である。【００５７】  なお、図７において、矢線は遷移が可能なことを示しており、波線で表した矢線は、遷移に巻き込み退避の動作が発生する場合を示しており、太線で表した矢線は、消去ブロック単位でのみデータを書き込んだ場合の遷移を示している。
図７に示すように、状態Ａの消去ブロックは、その消去ブロックを構成する全ライトページに書き込み可能であり、状態Ｂおよび状態Ｆに遷移可能である。【００５８】  状態Ｂの消去ブロックはその消去ブロックを構成する一部のライトページに書き込み可能であるが、既に書き込まれているライトページの中に有効ページが含まれているので消去することはできない。よって、状態Ｃおよび状態Ｅ、状態Ｆに遷移可能である。
また、状態Ｃの消去ブロックはその消去ブロックを構成する一部のライトページに書き込み可能であり、かつ書き込み済みのライトページは全て無効ページであるため消去が可であり、状態Ａ、状態Ｅに遷移可能である。【００５９】  また、状態Ｄの消去ブロックはその消去ブロックを構成する全ライトページが書き込み不可であるが、全ライトページが無効ページなので、つまり消去されるべき消去ブロックなので、その消去ブロックを消去すれば状態Ａに遷移する。
また、状態Ｅの消去ブロックはその消去ブロックを構成する全ライトページが書き込み不可であり、一部のライトページが有効ページなので消去も不可である。但し、本状態Ｅの有効ページであるライトページを、状態Ａまたは状態Ｂまたは状態Ｃの消去ブロックを構成する消去済みのライトページに退避すれば状態Ｄに遷移する。【００６０】  更に、状態Ｆの消去ブロックはその消去ブロックを構成する全ライトページが書き込み不可であり全ライトページが有効ページなので、その消去ブロックを構成する一部のライトページを別の消去ブロックに退避すれば状態Ｅに遷移し、全部のライトページを別の消去ブロックに退避すれば状態Ｄに遷移する。
ここで、空きブロックサーチが発生する状態を図７に示した状態遷移図に関連づけて説明する。まず３つの状態、Ｓ１、Ｓ２、Ｓ３を定義する。【００６１】  メモリカードに消去ブロック単位で満杯書きした状態（Ｓ１）は、状態Ａと状態Ｄと状態Ｆとで構成される。
小ブロック単位でデータをライトしていく状態（Ｓ２）は、Ｓ１の状態から状態Ａのブロックが状態Ｂ、状態Ｅに遷移した状態であり、さらに、状態Ｂのブロックが状態Ｅに遷移する。【００６２】  空きブロックサーチが発生する状態（Ｓ３）は、状態Ａがない状態である。
小ブロックでライトしていくと、メモリカードの状態がＳ１→Ｓ２→Ｓ３のように遷移していき、空きブロックサーチが発生する状態になる。
Ｓ３の状態で、全ての消去ブロックから無効ページをサーチするタスクが発生するために、高速ライトが困難になる。【００６３】  無効ページをサーチする場合、サーチした消去ブロックに無効ページが含まれていることが即検出できれば比較的時間がかからないが、最悪全ての消去ブロックをサーチした後に検出される場合があり、空きブロックサーチ検出に要する時間は揺らぎが大きい。
上述したことから、メモリカードにおいて、高速記録を実現するために、空きブロックサーチの動作が発生しないように、状態Ａ→状態Ｆ→状態Ｄ→状態Ａという遷移を繰り返すことが望ましい。【００６４】  本実施の形態では、ライトブロックサイズ判定部４によりライト可能ブロックサイズ７に基づく条件を満たさないライトコマンドをエラーとしてホスト機器に通知している。ゆえに、消去ブロック単位以外での書き込みを排除できるので、メモリカードの記録状態を一定に保持することができ、メモリカードの過去の記録状態によって、それ以後の書き込みにおける記録レートが劣化することを防止することができる。ゆえに、以前にメモリカードに記録したホスト機器を特定しなくても、メモリカードの記録レートが保証できるようになる。【００６５】  以下、メモリカード２０の保証ライトレート格納領域８に記録されている保証ライトレートについて説明する。
保証ライトレートは、詳しくは、メモリカード２０へのデータ書き込みに際して保証される最低記録レートと、その保証の前提となるライトブロックサイズとの組を示しており、ホスト機器は、ライト可能ブロックサイズや、この保証ライトレートをメモリカードから読み出すことができるので、例えば、カメラレコーダで映像信号を圧縮してメモリカードに記録する場合に、保証ライトレートを満たすように圧縮率を変更すれば、より柔軟なシステムが構築できる。【００６６】  以下、メモリカード２０のバッファーメモリ容量格納領域９に記録されているバッファーメモリ容量データについて説明する。
このバッファーメモリ容量データは、ホスト機器側に備えられるべきバッファーメモリの容量を示すものであるところ、かかるバッファーメモリは以下の目的で使用される。
第１の目的は、フラッシュメモリが書き込み時にエラーを発生した場合にホスト機器が行うべきとなるエラー処理と書き込みのリトライ処理の時間を吸収するためであり、第２の目的は、メモリカードへの書き込みアルゴリズムにおいて、書き込み処理時間の多少の変動を平滑化するためである。【００６７】  バッファーメモリの第１の目的が想定するエラーを発生した場合とは、主にフラッシュメモリに不良セクタが発生した場合であり、不良セクタは約１０００００回のライトで１回の確率で発生する。
メモリカード２０では、不良セクタが発生した場合のエラー登録処理と書き込みのリトライ処理に要する時間に１００ｍｓ要する。例えば、メモリカードへのデータ記録に際して３回発生することを想定すれば、３００ｍｓ分に相当するバッファーメモリが必要である。また、この場合の保証ライトレートは、エラーを考慮しない場合のライトレートより若干低く設定することが必要である。メモリカードにエンドレス記録をする場合を想定すると前記バッファーメモリがオーバーフローする場合があるからである。前記バッファーメモリ容量データと保証ライトレートの関係は、図８に示すシステムにおいて、待ち行列計算を使用して求めることができる。【００６８】  即ち、エラーが発生する確率（ρ）とメモリカードがエラー処理に要する時間（Ｔｂ）、エラーがない場合のメモリカードのライト処理時間（Ｔａ）、所定ブロックのデータがバッファーメモリに入力される時間（Ｔｃ）から、所定のバッファーメモリ容量データに対する入力レートの最大レートを求め、前記バッファーメモリ容量データ、前記最大レートを保証ライトレートとしてメモリカードに予め登録しておければよい。【００６９】  バッファーメモリの第２の目的について言えば、メモリカードへの書き込みアルゴリズムとしては、様々なアルゴリズムが想定されるが、例えば、所定数のブロックの書き込みをした後に、論理アドレスと物理アドレスの変換テーブルをフラッシュメモリに書き込むようなアルゴリズムでは、その変換テーブルの書き込み時間が周期的に加算されることになる。【００７０】  例えば、１０００個の消去ブロックをライトする毎に変換テーブルを登録する場合は、保証ライトレートを平均値で登録し、バッファーメモリ容量データに、変換テーブルの登録に要する時間に相当する容量を登録すればよい。
以上説明したように、メモリカードのエラー特性、制御アルゴリズムに対応して、必要バッファーメモリ容量データ、保証ライトレートをメモリカード自体に登録することにより、リアルタイム記録を行うメモリカードシステムにおいて、メモリカードの性能を最大限発揮できるシステムが構築できる。また、特性の違うメモリカードを装着した場合でも、ホスト機器側が、バッファーメモリ容量データや保証ライトレートといった必要情報をメモリカードのＲＯＭ１９等から読み出して参考にすることによって、メモリの割り当ての変更や、映像信号の圧縮率を変更する等の柔軟な対応が可能となる。
＜実施の形態２＞
以下、本発明の実施の形態２に係るメモリカードシステムについて説明する。【００７１】  図９は、実施の形態２に係るメモリカードシステムの構成図である。
同図に示すように、このメモリカードシステムは、実施の形態１で示したメモリカード２０と、このメモリカードにデータの記録を行うホスト機器２１とから構成される。ここでは、ホスト機器２１を、カメラレコーダであるものとして説明する。
ホスト機器２１は、画像データ入力部１０、圧縮部１１、バッファーメモリ１２、リードモディファイライト部１３及び制御部１４を備える。【００７２】  画像データ入力部１０は、ディジタル画像データが入力される入力部である。
圧縮部１１は、画像データ入力部１０を介して入力された画像データを圧縮する機能を有する。
バッファーメモリ１２は、画像データを一時的に記憶するためのメモリである。
リードモディファイライト部１３は、バッファーメモリ１２から読み出したデータをメモリカード２０に記録し、この記録に際して後述するリードモディファイライトを行う機能を有する。【００７３】  制御部１４は、メモリカード２０をホスト機器２１へ装着する時に、メモリカード２０に予め記録されているライト可能ブロックサイズ、保証ライトレート、及びバッファーメモリ容量データを読み出すためのコマンドを発行することを通じて、これらを読み出して制御パラメータとして保持し、その制御パラメータに応じて、圧縮部１１、バッファーメモリ１２及びリードモディファイライト部１３を制御する機能を有する。【００７４】  以下、上記構成を備えるメモリカードシステムにおいて、カメラレコーダであるホスト機器２１が、撮像機構により入力されるディジタル画像データをメモリカード２０にリアルタイム記録する動作について説明する。
制御部１４では、メモリカード２０から読み出して保持している制御パラメータに従って次の動作を行う。即ち、保証ライトレートを満たすように、圧縮部１１の圧縮率を変更し、また、バッファーメモリ容量データを満たすように、ホスト機器に実装されているメモリを、装着したメモリカード用のバッファーメモリとして割り当て、実施の形態１で示したライト可能ブロックサイズに関する条件を満たすようなライトコマンドを発行する。なお、ライトコマンドの発行に際しては、ライト可能ブロックサイズの示すブロック単位で、データの書き込みを行うライトコマンドをメモリカードに発行するようにリードモディファイライト部１３を制御する。【００７５】  ここで、この制御部１４による制御を受けてのリードモディファイライト部１３の動作について説明する。
制御パラメータとして保持したライト可能ブロックサイズの示す値が８であった場合は、８セクタ（＝４キロバイト）単位で書き込むことが要求されていることになる。この場合、メモリカードに記録するデータが４キロバイトの整数倍である場合は実現容易である。しかしながら、２２キロバイトの画像データを記録する場合は、５個の４キロバイトのブロックと、１個の２キロバイトのブロックに分割せざるを得ない。もちろん、２キロバイトのブロックにダミーデータを付加して４キロバイトのブロックにして記録してもよいが、この手法では、ＦＡＴのようなシステムデータを記録する必要がある場合には、ダミーデータを付加することができないので適応できない。【００７６】  このため、８セクタの整数倍の量のデータしか書き込めないメモリカードでＦＡＴを更新する場合は、メモリカードのＦＡＴデータをミラーリングしたデータをホスト機器に持たざるを得なくなるといった課題がある。リードリードモディファイライト部はリードモディファイライトを行うことによりこの課題を解決する。
図１０は、セクタ番号が８であるセクタから連続して４セクタに書き込む必要がある場合におけるリードモディファイライトの動作イメージを示す図である。【００７７】  同図中、データ２０１は、書き込みが要求されているセクタ群へ書き込まれるべきデータを示し、データ２０２は、メモリカードから読み出したセクタ群のデータを示し、データ２０３は、リードモディファイライトにより実際にメモリカードのセクタ群に書き込まれるデータを示している。
同図に示すように、書き込みの際に、ライト可能ブロックサイズが示すセクタ数に基づいてメモリカードからのデータの読み出しを行い、即ち、書き込む必要があるセクタと、それ以外のセクタ（以下、「ペアとなるセクタ」という。）とのセクタ数の合計が、ライト可能ブロックサイズの示すセクタ数と一致するように、ペアとなるセクタを特定してそのペアとなるセクタのデータ２０２の読み出しを行い、そして書き込む必要がある４セクタのデータ２０１と、その読み出した４セクタのデータ２０２とを合わせて合計８セクタのデータ２０３を構築してメモリカードに書き込むという手順により、リードモディファイライトは実現される。【００７８】  このように、リードモディファイライトを行うことによって、ＦＡＴのようなシステムデータの更新においても、ミラーリングデータをホスト機器に持つ必要はなくなる。
また、ダミーデータを付加する手法を用いることができないＦＡＴの更新時にのみ、このリードモディファイライトを適用すれば、書き込む前に一旦読み出さなければならないことによる記録レートの劣化も僅かでしかない。【００７９】  以上説明したように、本実施の形態のメモリカードシステムにおいては、メモリカードに予め記録されているライト可能ブロックサイズ、保証ライトレート、バッファーメモリ容量データを参照した制御をすることによって、メモリカードへの記録レートの保証が実現される。
＜実施の形態３＞
以下、実施の形態１に係るメモリカード２０を部分的に変形したものであるメモリカード３０について説明する。【００８０】  メモリカード２０は、記録速度をある速度以下に低下させないようにするために、フラッシュメモリを消去ブロックの整数倍であるライト可能ブロックサイズ単位で区分して、そのライト可能ブロックサイズ単位の整数倍でしかホスト機器からの書き込みを認めない、つまりエラーと扱うこととし、そのためＲＯＭ１９内のライト可能ブロックサイズ７をホスト機器が読み出せるようにしている。これに対してメモリカード３０は、ライト可能ブロックサイズを、ＲＯＭ１９ではなく、フラッシュメモリ６とは別の書き換え可能な不揮発性メモリに記憶させておき、一定条件下でライト可能ブロックサイズを更新する機能を有している。【００８１】  図１１は、実施の形態３に係るメモリカード３０の構成図である。なお、同図中、実施の形態１で示したメモリカード２０の構成要素と同一のものには、同じ符号を付してあり、これらについては説明を適宜省略する。また、同図中、太い矢線は、メモリカード３０に対してホスト機器から送られる記録対象となるデータの流れを示し、細い矢線は、制御信号又は制御データの流れを示している。【００８２】  図１１に示すように、実施の形態３に係るメモリカード３０は、外部インターフェイス部４１、コマンド解析部４２、制御部３、フラッシュメモリ６、不揮発性メモリであるライト可能ブロックサイズ格納領域４７、並びに、保証ライトレート格納領域８及びバッファーメモリ容量格納領域９を有するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｌｙ）４９を備える。
ここで、外部インターフェイス部４１は、実施の形態１で示した外部インターフェイス部１の機能に加えて、ホスト機器からライト可能ブロックサイズの更新要求コマンドを受け付け、これに応答する機能を有する。【００８３】  コマンド解析部４２は、外部インターフェイス部４１によって受信されたコマンドを解析する機能を有する。なお、コマンド解析部４２は、コマンドを解析した結果、コマンドがＲＯＭ４９の各内容やライト可能ブロックサイズ格納領域の内容を読み出すためのコマンドである場合には、ホスト機器へその各内容を読み出して、外部インターフェイス部１を介して、コマンドへの応答として伝送する。また、コマンドが、ライト可能ブロックサイズの更新要求コマンドである場合には、後述するライト可能ブロックサイズ更新要求コマンド対応処理を行う。【００８４】  ライト可能ブロックサイズ格納領域４７は、ホスト機器に記録を許容するところのブロックサイズを示すライト可能ブロックサイズを格納するための、書き換え可能な不揮発性メモリ中の一領域であり、初期値として、実施の形態１におけるライト可能ブロックサイズ格納領域７と同様の値が設定されている。
また、ＲＯＭ４９内の保証ライトレート格納領域８は、保証する最低記録レートを示す保証ライトレートが予め記録されている領域であり、バッファーメモリ容量格納領域９は、その保証ライトレートを満たすためにホスト機器に要求するバッファーメモリ容量データが予め記録されている領域である。【００８５】  制御部３のライトブロックサイズ判定部４は、ライト可能ブロックサイズ格納領域４７に記録されているライト可能ブロックサイズを参照して、コマンド解析手段４２で解析されたライトコマンドで指定されるライトブロックサイズ等が適切か否かを判定し、適切であればライトコマンドに応じたデータの書き込みをデータライト部５に実行させ、不適切であれば、外部インターフェイス部１等を介してエラーをホスト機器に返信する機能を有する。なお、この制御部３の制御によるデータの書き込み動作については、実施の形態１で示した動作と同じである。【００８６】  以下、ライト可能ブロックサイズ更新要求コマンド対応処理について説明する。
図１２は、ライト可能ブロックサイズ更新要求コマンド対応処理を示すフローチャートである。
ライト可能ブロックサイズの更新要求コマンドは、更新するための指定値を伴ってホスト機器により発行される。【００８７】  コマンド解析部４２は、ライト可能ブロックサイズの更新要求コマンドを受けると、指定値を取得し（ステップＳ５１）、その指定値が、所定条件を満たすかを判定し（ステップＳ５２）、所定条件を満たさなければ、外部インターフェイス部１等を介してエラーをホスト機器に返信し（ステップＳ５４）、所定条件を満たせば、その指定値を新たなライト可能ブロックサイズとしてライト可能ブロックサイズ格納領域４７に記録する（ステップＳ５３）。【００８８】  ステップＳ５２の判定に係る所定条件は、消去ブロックサイズが２セクタであることを前提とした場合においては、ライト可能ブロックサイズ格納領域４７の初期値が８セクタを示す８であるとし、指定値がセクタ数により指定されるものとすれば、その指定値が、ライト可能ブロックサイズ格納領域４７にその指定された時点で格納されているライト可能ブロックサイズよりも小さく、かつ、４又は２であることである。【００８９】  従って、ホスト機器は、ライト可能ブロックサイズの指定値として４又は２を指定して、メモリカード３０におけるライト可能ブロックを更新させることができるが、一旦４に更新した後においては、もう８には戻せず、更に更新する場合には２にしかできないし、一旦２に更新した後においては、もう８や４に更新することはできない。
このようにあるホスト機器が、メモリカード３０のライト可能ブロックサイズを４に更新すると、８セクタ単位で書き込むよりも記録レートは低下するものの、そのメモリカード３０を後に装着した別のホスト機器においても、そのライト可能ブロックサイズが４セクタであることをメモリカード３０から読み出して知ることも可能であり、また、８セクタ単位で書き込むよりは低速とはなるが、ある程度の記録レートは保証されるようになる。なお、保証ライトレート格納領域８には、当初のライト可能ブロックサイズに対応する保証ライトレートの他に、変更後の各ライト可能ブロックサイズとなり得るサイズ毎に応じて、保証可能な最低記録レートを示す保証ライトレート、いわば条件付保証ライトレートを、予め記録しておくこととしてもよい。
＜補足＞
以上、本発明に係るメモリカード及びメモリカードシステムの実施の形態について説明したが、上記実施の形態として示したメモリカードを以下に示すように部分的に変形することもできる。
（１）各実施の形態で示したライト可能ブロックサイズは、消去ブロックのサイズと同一としたが、消去ブロックのサイズの２倍や４倍等、整数倍であれば最低記録レートの保証は可能となる。なお、実施の形態において示したライト可能ブロックサイズの値については単なる例示であり、例えばフラッシュメモリで消去ブロックが１２８キロバイトであり、１セクタが５１２バイトである場合においてライト可能ブロックサイズを、セクタ数を単位として表現するとしたら、その値は、２５６となる。
（２）実施の形態１で示したライトブロックサイズ及び書き込み先頭セクタ番号が、ライト可能ブロックサイズとの関係において満たすべき条件としては、書き込み先頭セクタ番号がライト可能ブロックサイズで示されるセクタ数で割り切れるものであることをも条件としたが、ライトコマンドの発行元となるホスト側で、書き込み先頭セクタ番号をライトブロックサイズで示されるセクタ数の整数倍となるように定めるようにすれば、メモリカード側では、この先頭セクタ番号に係る条件の判断は行わないようにしてもよい。また、ライト可能ブロックサイズやライトブロックサイズの値については、必ずしもセクタ数で表されなくてもよく、バイト数等であってもよい。
（３）実施の形態１で示した保証ライトレートに加えて、ライト可能ブロックサイズの整数倍のブロックサイズにあたる各ライトブロックサイズに対応した各保証ライトレートデータ、つまり条件付保証ライトデータをメモリカードに保持させておき、ホスト機器がその条件付保証ライトデータを取得できるようにしてもよい。
（４）各実施の形態では、消去ブロックのサイズに鑑みてライト可能ブロックサイズを定めている例を示しているが、変形例として、ライトページの整数倍になるようにライト可能ブロックサイズを定めることとしてもよい。また、将来的に、消去ブロックが、比較的少ないライトページで構成されるようなフラッシュメモリが開発された場合は、データを記録する毎に退避処理をする可能性が高いため、上記した空きブロックサーチによる記録レートの劣化は発生しない可能性があるため、ライト可能ブロックサイズは１セクタに相当する５１２バイトとし、メモリカードの特性に応じた最適なライトブロックサイズ毎にそのサイズとそのサイズで書き込んだ条件付での条件付保証ライトレートを予め登録しておくこととしてもよい。
（５）実施の形態３では、ホスト機器がライト可能ブロックサイズの更新要求コマンドを発行することを契機としてメモリカードがライト可能ブロックサイズの更新可否判断や更新を行うこととしたが、このような更新要求コマンドを用いない方式であってもよい。例えば、ホスト機器から、ライト可能ブロックサイズよりも小さいライトブロックサイズを指定したライトコマンドを発行したことを契機として、メモリカードが、一旦ホスト機器にエラーを返却した後にホスト機器からライトコマンドを強行する旨の応答を受けた場合には、ライト可能ブロックサイズの更新可否判断や更新を行うこととしてもよい。
（６）実施の形態３で示したメモリカードを変形し、保証ライトレートも書き換え可能な不揮発性メモリに格納することとし、ライト可能ブロックサイズの更新要求コマンドにより、ライト可能ブロックサイズが一旦更新された後は、保証ライトレートの値を、保証不能を示す値に書き換えるようにしてもよい。これにより、メモリカードを、最低記録レートの保証が必要ない用途に利用するホスト機器が一旦ライト可能ブロックサイズを更新した場合には、その後そのメモリカードを装着した別のホスト機器等は、そのメモリカードついては、最低記録レートが保証されないものであると、保証ライトレートを読み出すことにより識別可能となり、例えばユーザに報知することやその他の処理を行うことが可能になる。
（７）実施の形態３で示したメモリカードにおいて、フラッシュメモリ中の全消去ブロックの消去コマンドを受け付けることとし、そのコマンドを受け付けた場合には全ての消去ブロックを消去した後に、ライト可能ブロックサイズとして初期設定値（例えば８）を再び設定するようにしてもよい。これにより、あるホスト機器がメモリカードのライト可能ブロックサイズを初期設定値より小さい値に更新してデータ書き込み等をしていた場合に、その後にそのメモリカードを装着したホスト機器等において、全消去を行えば、再び、当初の最低記録レートを保証した書き込みが行えるようになる。
【産業上の利用可能性】
【００９０】  本発明に係るメモリカード及びメモリカードシステムは、データの記録レートの保証をすることが可能であるため、連続的にデータを高速記録する用途に適し、高レートでのリアルタイム記録を確実に行うことが必要とされる業務用映像分野等において利用され得る。
【図１】
2005096220.tif 000002
【図２】
2005096220.tif 000003
【図３】
2005096220.tif 000004
【図４】
2005096220.tif 000005
【図５】
2005096220.tif 000006
2005096220.tif 000007
2005096220.tif 000008
【図７】
2005096220.tif 000009
【図８】
2005096220.tif 000010
【図９】
2005096220.tif 000011
【図１０】
2005096220.tif 000012
【図１１】
2005096220.tif 000013
【図１２】
2005096220.tif 000014
【手続補正書】
【提出日】平成17年11月8日(2005.11.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フラッシュメモリと、
ホスト機器との間でデータの授受を行う外部インターフェイス手段と、
所定のライト可能ブロックサイズを記憶している記憶手段と、
ホスト機器から、ライトブロックサイズの指定を伴い前記フラッシュメモリへのデータの書き込みを指示するライトコマンドを、前記外部インターフェイス手段を介して受け取った場合に、当該ライトブロックサイズが前記ライト可能ブロックサイズと所定の関係を有するか否かを判定し、判定結果に応じて前記フラッシュメモリへのデータ書き込みの許否に係る制御を行う制御手段とを備える
ことを特徴とするメモリカード。
【請求項２】
前記所定のライト可能ブロックサイズは、前記フラッシュメモリについての消去ブロックのサイズの所定整数倍のサイズであり、
前記制御手段の判定基準となる前記所定の関係は、前記ライトブロックサイズが前記ライト可能ブロックサイズの整数倍になっているという関係であり、
前記制御手段は、前記所定の関係を有する場合にのみフラッシュメモリへデータを書き込むよう制御する
ことを特徴とする請求項１記載のメモリカード。
【請求項３】
前記メモリカードは更に、
前記記憶手段からライト可能ブロックサイズを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する伝達手段を備える
ことを特徴とする請求項２記載のメモリカード。
【請求項４】
前記記憶手段は、更に、前記ライト可能ブロックサイズと同サイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている保証ライトレートを記憶しており、
前記伝達手段は、更に、前記記憶手段から保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する
ことを特徴とする請求項３記載のメモリカード。
【請求項５】
前記記憶手段は、前記ライト可能ブロックサイズの特定の整数倍であるサイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている条件付保証ライトレートを記憶しており、
前記伝達手段は、更に、前記記憶手段から条件付保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する
ことを特徴とする請求項４記載のメモリカード。
【請求項６】
前記記憶手段は、更に、前記保証ライトレートにより示される最低記録レートを保証するために、前記外部インターフェイス手段にデータを伝達するためのホスト機器側のバッファーメモリに必要とされる容量を示すものとして予め定められているバッファーメモリ容量データを記憶しており、
前記伝達手段は、更に、前記記憶手段からバッファーメモリ容量データを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する
ことを特徴とする請求項４記載のメモリカード。
【請求項７】
前記メモリカードは、更に、
前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換え、これに対応して前記保証ライトレートを書き換える更新手段を備える
ことを特徴とする請求項４記載のメモリカード。
【請求項８】
前記メモリカードは、更に、
前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換えるライト可能ブロックサイズ更新手段を備える
ことを特徴とする請求項３記載のメモリカード。
【請求項９】
請求項１記載のメモリカードと、当該メモリカードとの間でデータの授受を行うホスト機器とを備えるメモリカードシステムであって、
前記ホスト機器は、前記メモリカードへの書きこみが必要とされる第１データのサイズが、前記ライト可能ブロックサイズ未満である場合には、前記外部インターフェイス手段を介して前記メモリカードのフラッシュメモリから第２データを読み出して、第１データと第２データとを合わせることにより当該ライトブロックサイズと同サイズの第３データを構築して、第３データを前記フラッシュメモリに書き込むべく前記メモリカードにライトコマンドを伝達するリードモディファイライト手段を備える
ことを特徴とするメモリカードシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを含むメモリカード、及びメモリカードにデータを記録するためのメモリカードシステムに関する。
【背景技術】
【０００２】
フラッシュメモリが内蔵されたカード型の記録媒体であるＳＤ（Secure Digital）カード等のメモリカードは、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ等のディジタル機器においてデータを記録するために広く利用されている。例えば、メモリカードは、ＭＰＥＧ４（MovingPicture Experts Group 4）のような比較的低い転送レートの動画を記録するための記録媒体として用いられている。
【０００３】
このメモリカードに内蔵されているフラッシュメモリは、記録されたデータを消去するための最低単位となる一定サイズのブロック（以下、「消去ブロック」という。）が複数集まって構成されている。データを消去する場合は消去ブロック単位で消去動作が実施される。この消去ブロックは、通常は、一定サイズの複数のページ（以下、「ライトページ」という。）により構成されており、データの書き込みは、必ずライトページ単位で、消去済みのライトページに対して行われる。
【０００４】
図１は、メモリカードへのデータの書き込みの様子を示す図である。
同図は、状態９０１ａ〜９０１ｄにより、５１２バイトのライトページ２個により１個の消去ブロックを構成しているフラッシュメモリにおける２個の消去ブロックを書き換え対象として、消去ブロックを構成している２個のライトページに一度書き込まれたデータのうち一方のライトページのデータのみを書き換える場合の状態変化例を示している。
【０００５】
状態９０１ａは、２つの消去ブロックの内、一方（図１において上段）の消去ブロックにはデータＡとデータＢとが書き込み済みで、他方（図１において下段）の消去ブロックは消去済みという状態である。
状態９０１ａであるフラッシュメモリにおけるデータＢを書き換える必要がある場合は、まず、下段の消去済みの１つのライトページに、新たに変化させたデータＢ（ＮＥＷ）を書き込む。この結果、フラッシュメモリは状態９０１ｂに変化する。
【０００６】
次に上段において書き込み済みのデータＡを、下段の消去ブロック中にコピーして、状態９０１ｃとし、その後、上段の消去ブロックを消去する。この結果、フラッシュメモリは状態９０１ｄに変化する。
消去ブロックの一部のライトページを書き換える必要があるときの、上述の一連の動作を、ここでは「巻き込み退避」と呼ぶ。
【０００７】
この巻き込み退避が発生することにより、例えばホスト機器が、１ライトページ分の書き込みを指示するライトコマンドを発行した際に、その指示したライトページ数より、実際にフラッシュメモリにおいて書き込まれる対象となるライトページの数は多くなり、この結果として、ホスト機器の把握できる以上に書き込み速度が低下してしまう。
このようなメモリカードに対して、高速記録を実現するために、本出願に係る発明者らは、メモリカードを構成するフラッシュメモリの消去ブロックの整数倍のブロック単位でメモリカードにライトコマンドを発行してデータを記録する方式を案出し、既に日本国で特許出願（特願２００３−１２１１７８号）を行っている。
【０００８】
また、高速記録を実現するための方式として、複数のフラッシュメモリで構成されているメモリカードにおける消去ブロックのうち、構成要素である全てのライトページが記録可能な状態である消去ブロックをサーチして、複数の消去ブロックに対して並列記録する方式が日本国の特許公開公報で示されている（特許文献１参照）。
ところで、ディジタル映像機器からのＤＶ（Digital Video）フォーマットでの出力のように、４ＭＢ／ｓｅｃといった高い転送レートで出力される動画を長時間記録するための記録媒体としてメモリカードを用いるためには、メモリカードへの記録レートが、ある一定レート以上であることが保証されている必要がある。
【０００９】
しかしながら、従来のメモリカードの高速記録のための方式は、メモリカードの記録速度性能として記録レートの下限値（以下、「最低記録レート」という。）を保証するようなものではない。この最低記録レートの保証とは、ホスト機器がその最低記録レートでデータをメモリカードに書き込み続けることができることの保証をいう。
なお、メモリカードでは最大記録レートとして、例えば約１０ＭＢ／ｓｅｃを公表している商品も従来市販されているが、内蔵するフラッシュメモリのバラツキを想定したスペックではなく、最低記録レートを保証しているものではない。
【００１０】
以下、従来の高速記録のための方式によっても、最低記録レートを保証することが困難である理由を説明する。
一般に、パーソナルコンピュータ（ＰＣ）ではファイルシステムとしてファイルアロケーションテーブル（ＦＡＴ）システムが採用されており、ＦＡＴシステムでは基本的にはアクセス単位となるセクタを５１２バイトとして定義していることから、通常はＰＣからのライトコマンドは、５１２バイトをライトブロックサイズとして、つまり５１２バイト単位で、発行される。このことを前提として、５１２バイトのライトページを８個含んで構成された消去ブロックを複数含むメモリカードに対してＰＣがデータを記録する場合を想定して説明する。
【００１１】
消去ブロックが、８個のライトページで構成されているメモリカードでは、以下のようなアルゴリズムが採用されることが多い。
メモリカードは、一般に、保証する記録容量を実現するのに要する消去ブロック数とは別に、作業用の所定数（例えば４０個）の消去ブロックを余分に有する。この余分に有している消去ブロックを、作業用のブロック（以下、「ワ−クブロック」という。）として扱う。
【００１２】
ＰＣが同一のセクタを繰り返し書き換える必要がある際に、それをフラッシュメモリの同一のライトページを書き換えるように実現すると、そのライトページの記録回数が集中的に増大し、フラッシュメモリの寿命が短縮されるので、これを回避すべくワークブロックを用いた制御が行われる。
例えば、全記録容量に相当する消去ブロックが記録済みのメモリカードに、データを繰り返し上書きする場合、その４０個のワークブロックに順次記録していき、全てのワークブロックが記録済みに遷移した後に、そのワークブロックつまり消去ブロックを消去してからまた記録するといった手順でその上書き動作が行われる。
【００１３】
図２は、５１２バイトの８個のライトページを含む消去ブロックを有するメモリカードの状態変化を示す図である。
状態９０２ａは、セクタ１を１回書き換えた状態、詳しくは、もとのライトページとは別のワークブロック内のライトページを書き換えることでセクタ１を１回書き換えた状態である。状態９０２ｂは、セクタ１を８回まで書き換えた状態、状態９０２ｃは、更にセクタ３、セクタ５、セクタ７を８回書き換えた状態を示している。
【００１４】
なお、同図中、ｘの記号は、ライトページの内容が無効化されたことを示しており、例えば、1ｘは、セクタ１の内容を有するライトページが無効化された状態を示す。なお、メモリカードにおいて各ライトページについて有効か無効かがテーブルを用いて管理されている。
以後、書き込み済みであって無効化されたライトページを「無効ページ」、書き込み済みであって無効化されていないライトページを「有効ページ」と呼ぶ。また、同図中、Ｎｅｗの記号は、セクタ内容が更新されたことを示しており、例えば、１（Ｎｅｗ）は、内容が更新されたセクタ１を示している。
【００１５】
従来の高速記録のための方式では、状態９０２ａにおいて、図１の状態９０１ｃで示したような巻き込み退避動作を実施しない。巻き込み退避動作を実施すれば、５１２バイトの１つのライトページへの書き込みのために、必ず５１２バイト×８、つまり４キロバイトのライトが発生し、記録の速度が大幅に低下するので、これを避けるためである。
ワークブロックの数について考察すると、当初４０個あったワークブロックは状態９０２ｃにおいては、３６個になり、更に、同様にセクタ２、セクタ４、セクタ６も８回書き換えると、ワークブロックの数は３３個となる。
【００１６】
８個のライトページで１消去ブロックを構成している場合、当初１個の消去ブロックに対応したものであった各セクタ（例えばセクタ１〜セクタ８）は、最大８個の消去ブロックに分散してしまう。この現象を「論理分散」と呼ぶ。
この論理分散が発生すると、ワークブロックの数は急激に減少し、ワークブロックの最低数（例えば１という設定値）に到達する可能性がある。ワークブロックが最低数に到達すると、ワークブロックを新たに作成するために空きブロックサーチのタスクを実行する。
【００１７】
ここで、空きブロックサーチのタスクとは、記録済みの消去ブロックを、ワークブロックとして扱えるようにするために、即ち有効なデータが記録されていない状態にするために、全ての消去ブロックから図２のｘで示した無効ページをサーチするタスクである。そして、無効ページを有する消去ブロックにおいて、有効ページをワークブロックに退避し、前記消去ブロックを消去することで新しいワークブロックを作成する。
【００１８】
以上の動作を図３に示す。即ち、図３は、無効ページを有する消去ブロックから有効ページをワークブロックに退避する前後の状態を示す図である。
同図中、上段は空きブロックサーチのタスクにより検出された、新しいワークブロックに変換可能な記録済みの消去ブロック、下段はワークブロックを示している。状態９０３ｂは、状態９０３ａから有効ページをワークブロックに退避させた状態を示している。
【００１９】
状態９０３ｂにおいては、上段の３個の消去ブロックは全て無効ページで構成されているので、これらを消去することによって新たに３個のワークブロックの作成が可能となる。
このような空きブロックサーチの発生は、メモリカードの記録速度を低下させる。
そして、メモリカードは、複数のホスト機器に随時装着されて利用され得るため、たとえ、メモリカードに消去ブロック単位で書き込み動作を行うホスト機器であっても、以前にメモリカードに書き込みをしたホスト機器が特定できない以上、空きブロックサーチのタスクを実行する必要が生じる可能性がある。例えばＰＣによりセクタ単位で記録されたメモリカードに対して、専用のホスト機器で、消去ブロック単位で書き込みをした場合等では、空きブロックサーチが発生してメモリカードの記録速度が低下してしまう可能性がある。このことが、メモリカードの最低記録レートの保証を困難にしている。
【特許文献１】特開２０００−１２２９２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
そこで、本発明は、上述した問題に鑑みてなされたものであり、ある一定の最低記録レートを保証可能なメモリカードと、そのメモリカードを使用してデータを記録するメモリカードシステムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記目的を達成すべく本発明は、フラッシュメモリと、ホスト機器との間でデータの授受を行う外部インターフェイス手段と、所定のライト可能ブロックサイズを記憶している記憶手段と、ホスト機器から、ライトブロックサイズの指定を伴い前記フラッシュメモリへのデータの書き込みを指示するライトコマンドを、前記外部インターフェイス手段を介して受け取った場合に、当該ライトブロックサイズが前記ライト可能ブロックサイズと所定の関係を有するか否かを判定し、判定結果に応じて前記フラッシュメモリへのデータ書き込みの許否に係る制御を行う制御手段とを備えることを特徴とする。
【００２２】
ここで、ライトコマンドは、フラッシュメモリにデータを書き込む旨の指示であり、書き込むべきブロックのデータサイズつまり一塊のデータのデータサイズであるライトブロックサイズの指定を伴い、ホスト機器からメモリカードに伝えられるものである。また、ライト可能ブロックサイズは、ライトコマンドについての許否判定用のデータであり、所定のデータサイズを示す。なお、データ書き込みの許否に係る制御は、書き込みを実行するかしないかという制御であり、書き込みを実行しない場合としては、例えばライトコマンドに対して拒絶の旨を示すエラー応答を返すこと等を想定している。
【発明の効果】
【００２３】
上述の構成を備える本発明に係るメモリカードは、ホスト機器がライトコマンドにより書き込むデータのサイズであるライトブロックサイズが、ある最低記録レートを保証するために必要となる所定の条件を満たすか否かを判定して、データの書き込みを実行するか否かに係る制御を行うことができる。このため、その条件を満たさない場合には、ライトコマンドに対してエラー応答を返す等により、データの書き込みを実行しないので、このメモリカードが順次複数のホスト機器により記録に用いられることとなっても、その最低記録レートの保証が可能になる。
【００２４】
なお、その条件判定の材料として本発明に係るメモリカードは、内蔵するフラッシュメモリの消去ブロックサイズに鑑みて予め設定されたライト可能ブロックサイズを不揮発性メモリ等に記憶する構成となっている。フラッシュメモリへの書き込み速度性能をある一定レベル以上に保つと保証するためにはライトブロックサイズが、フラッシュメモリの消去ブロックのサイズとの間で一定の関係を満たすべきとの観点から、メモリカード内に記憶さいるライト可能ブロックサイズのデータ値が、消去ブロックのサイズを考慮して定められれば、ある最低記録レートでの書き込みが保証できるようになる。
【００２５】
また、前記所定のライト可能ブロックサイズは、前記フラッシュメモリについての消去ブロックのサイズの所定整数倍のサイズであり、前記制御手段の判定基準となる前記所定の関係は、前記ライトブロックサイズが前記ライト可能ブロックサイズの整数倍になっているという関係であり、前記制御手段は、前記所定の関係を有する場合にのみフラッシュメモリへデータを書き込むよう制御することとしてもよい。
【００２６】
これにより、ライトブロックサイズが、消去ブロックの整数倍の所定値であるライト可能ブロックを最小単位として、そのライト可能ブロックの整数倍である場合にのみ、フラッシュメモリに、そのライトブロックサイズ分のデータが書き込まれるようになるため、このメモリカードが複数のホスト機器に順次装着され書き込まれたような場合であっても、フラッシュメモリへのデータ記録に際しては巻き込み退避が起こらず、いずれのホスト機器も、ある最低記録レートでの書き込みを継続的に行うことができるようになる。従って、このメモリカードは、最低記録レートの保証が可能になるため、動画等のリアルタイム記録に適したものとなる。
【００２７】
また、前記メモリカードは更に、前記記憶手段からライト可能ブロックサイズを読み出して前記外部インターフェイス手段を介してホスト機器に伝達する伝達手段を備えることとしてもよい。
これにより、ホスト機器は、メモリカードからライト可能ブロックサイズを取得することができ、これに基づいてライトコマンドに伴うライトブロックサイズ、つまり一度に書き込むデータサイズを、適切に定めることができるようになる。
【００２８】
また、前記記憶手段は、更に、前記ライト可能ブロックサイズと同サイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている保証ライトレートを記憶しており、前記伝達手段は、更に、前記記憶手段から保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達することとしてもよい。
【００２９】
これにより、ホスト機器は、メモリカードからライト可能ブロックサイズを取得してそれを最小単位としてデータを書き込む限り、保証される最低記録レートである保証ライトレートをも、メモリカードから取得することができるようになる。つまり、ホスト機器が予め記憶されているライト可能ブロックサイズの異なる複数のメモリカードを逐次切り替えて利用している場合であっても、利用中のメモリカードから適切にライト可能ブロックサイズを取得することができ、そのサイズに合わせて、ホスト機器は適切なライトブロックサイズでのデータ書き込みを行うことができるようになる。例えば映像信号を圧縮してメモリカードに記録する処理を行うようなホスト機器においては、メモリカード毎に取得したライト可能ブロックサイズに応じて、圧縮率を変更して適切にライトブロックサイズを調整しさえすれば、最低記録レートを保ってリアルタイムにデータを書き込むことができるようになる。
【００３０】
また、前記記憶手段は、前記ライト可能ブロックサイズの特定の整数倍であるサイズを単位として前記フラッシュメモリへのデータの書き込みを行う限りにおいて保証される最低記録レートを示すべきものとして予め定められている条件付保証ライトレートを記憶しており、前記伝達手段は、更に、前記記憶手段から条件付保証ライトレートを読み出して前記外部インターフェイス手段を介してホスト機器に伝達することとしてもよい。
【００３１】
これにより、メモリカードのライト可能ブロックサイズが例えば１２８キロバイト（ＫＢ）である場合において、その１２８ＫＢ単位でデータを書き込んだ場合に保証されることとなる最低記録レートを示す保証ライトレートの他に、例えばその２倍の２５６ＫＢ単位でデータを書き込んだ場合に保証されることとなる最低記録レートを示す条件付保証ライトレートをホスト機器が取得することができ、ホスト機器は必要となる最低記録レートに応じて、書き込むデータサイズであるライトブロックサイズを適切に定めることができるようになる。
【００３２】
また、前記記憶手段は、更に、前記保証ライトレートにより示される最低記録レートを保証するために、前記外部インターフェイス手段にデータを伝達するためのホスト機器側のバッファーメモリに必要とされる容量を示すものとして予め定められているバッファーメモリ容量データを記憶しており、前記伝達手段は、更に、前記記憶手段からバッファーメモリ容量データを読み出して前記外部インターフェイス手段を介してホスト機器に伝達することとしてもよい。
【００３３】
これにより、ホスト機器は、メモリカードからバッファーメモリ容量データを取得することができ、これに基づいて、最低記録レートで継続的にデータを書き込む必要がある場合に、バッファーメモリの容量を調整することができるようになる。なお、バッファーメモリは、メモリカードの記録レート揺らぎやエラーリトライ等を考慮すれば一定の記録レートを保証するために有効に働く。
【００３４】
また、前記メモリカードは、更に、前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換えるライト可能ブロックサイズ更新手段を備えることとしてもよい。
これにより、メモリカードにおいて当初定められている最低記録レートの保証が不要な用途にメモリカードを用い続ける場合等においては、ホスト機器はライト可能ブロックサイズを小さいものに変更して、小さいライトブロックサイズでデータを記録することができるようになる。但し、この変更までは、当初の最低記録レートは保証されたものの、変更後は当初の最低記録レートは保証されなくなる。
【００３５】
また、前記メモリカードは、更に、前記外部インターフェイス手段を介してのホスト機器からの要求に応じて、前記記憶手段に記憶されている前記ライト可能ブロックサイズを、元より小さいサイズへと書き換え、これに対応して前記保証ライトレートを書き換える更新手段を備えることとしてもよい。
これにより、例えば、消去ブロックサイズが１２８ＫＢであり、メモリカードの当初のライト可能ブロックサイズが２５６ＫＢであった場合に、ホスト機器からの要求に応じて１２８ＫＢにライト可能ブロックサイズを変更したときにおいては、これに応じて予めメモリカード内部に保持しておいた、１２８ＫＢに対応する最低記録レートを、新たに保証ライトレートとして、メモリカードを装着したホスト機器に伝達可能にすることができるようになる。また、ホスト機器からの要求に応じてライト可能ブロックサイズを変更したときにおいては、当初の保証ライトレートによる最低記録レートの保証が不可能になったことを示すため、予め規定しておいた保証不可能を示す値（例えば０）となるように、保証ライトレートを変更し、それ以後にメモリカードを装着した各ホスト機器にその旨を伝達することができるようになる。
【００３６】
また、本発明に係るメモリカードシステムは、請求項１記載のメモリカードと、当該メモリカードとの間でデータの授受を行うホスト機器とを備えるメモリカードシステムであって、前記ホスト機器は、前記メモリカードへの書きこみが必要とされる第１データのサイズが、前記ライト可能ブロックサイズ未満である場合には、前記外部インターフェイス手段を介して前記メモリカードのフラッシュメモリから第２データを読み出して、第１データと第２データとを合わせることにより当該ライトブロックサイズと同サイズの第３データを構築して、第３データを前記フラッシュメモリに書き込むべく前記メモリカードにライトコマンドを伝達するリードモディファイライト手段を備えることを特徴とする。
【００３７】
これにより、ホスト機器がメモリカードに書き込むべきデータがライト可能ブロックサイズに満たない場合は、メモリカードから予めデータを読み出し、合わせることでライト可能ブロックサイズになるように書き込むべきデータを再構築して、その再構築したデータを書き込むためにメモリカードにライトコマンドを発行するため、最低記録レートを保証してメモリカードへのデータの書き込みを行うことができるようになる。従って、このメモリカードシステムは、例えば、受信したディジタル放送番組や、ＤＶで撮像した動画等を、リアルタイムにメモリカードに録画するための記録システムとして活用できる。
【発明を実施するための最良の形態】
【００３８】
＜実施の形態１＞
以下、本発明の実施の形態１に係るメモリカードについて説明する。
図４は、実施の形態１に係るメモリカードの構成図である。
なお、同図中、太い矢線は、メモリカード２０に対してホスト機器から送られる記録対象となるデータの流れを示し、細い矢線は、制御信号又は制御データの流れを示している。
【００３９】
同図に示すように、実施の形態１に係るメモリカード２０は、外部インターフェイス部１、コマンド解析部２、制御部３、フラッシュメモリ６、並びに、ライト可能ブロックサイズ格納領域７、保証ライトレート格納領域８及びバッファーメモリ容量格納領域９を有するＲＯＭ（ReadOnly Memory）１９を備える。
ここで、外部インターフェイス部１は、ホスト機器からのコマンドの受信、ホスト機器コマンドに対するホスト機器への応答の送信、及びデータの転送を行う機能を有する。
【００４０】
コマンド解析部２は、外部インターフェイス部１によって受信されたコマンドを解析する機能を有する。コマンドには、メモリカードに内蔵されているフラッシュメモリへデータを書き込むための指示であるライトコマンドや、フラッシュメモリからデータを読み出すための指示であるリードコマンドや、ライト可能ブロックサイズ格納領域７、保証ライトレート格納領域８又はバッファーメモリ容量格納領域９といったＲＯＭ１９の各内容を読み出すためのコマンド等がある。なお、ホスト機器か受信するライトコマンドは、書き込むデータの量であるライトブロックサイズと、データを書き込む先頭セクタとを指定するライトコマンドの指定を伴う。
【００４１】
リードコマンドに係る制御機構及び制御動作については従来のメモリカードと同様であるため、ここでは説明を省略する。なお、コマンド解析部２は、コマンドを解析した結果、コマンドがＲＯＭ１９の各内容を読み出すためのコマンドである場合には、ホスト機器へその各内容を読み出して、外部インターフェイス部１を介して、コマンドへの応答として伝送する。
【００４２】
また、ライト可能ブロックサイズ格納領域７は、ホスト機器に記録を許容するところのブロックサイズを示すライト可能ブロックサイズが予め記録されている領域であり、保証ライトレート格納領域８は、保証する最低記録レートを示す保証ライトレートが予め記録されている領域であり、バッファーメモリ容量格納領域９は、その保証ライトレートを満たすためにホスト機器に要求するバッファーメモリ容量データが予め記録されている領域である。
【００４３】
制御部３は、コマンド解析部２による解析結果に応じて、フラッシュメモリ６へのアクセス即ちデータの読み出し及び書き込みを行うものであり、ライトブロックサイズ判定部４及びデータライト部５を有する。
ライトブロックサイズ判定部４は、ライト可能ブロックサイズ格納領域７に記録されているライト可能ブロックサイズを参照して、コマンド解析手段２で解析されたライトコマンドで指定されるライトブロックサイズ等が適切か否かを判定し、適切であればライトコマンドに応じたデータの書き込みをデータライト部５に実行させ、不適切であれば、外部インターフェイス部１等を介してエラー応答をホスト機器に返信する機能を有する。なお、ホスト機器側では、ライトコマンドに対してのエラー応答を受信した場合には、データの書き込みを中止し、エラー応答を受信しなかった場合においてライトブロックサイズ分のデータをメモリカードに連続的に伝達する。
【００４４】
以下、上記構成を備えるメモリカードのデータ書き込み動作について説明する。
まず、ホスト機器は、外部インターフェイス部１を介して制御コマンドであるライトコマンドをメモリカードに発行する。ここでは、０番のセクタから連続して８セクタにデータを書くライトコマンドが発行される場合を想定して説明する。
図５は、ホスト機器とメモリカードとの間で伝送されるライトコマンドに係る信号及びデータの伝送タイミングを示す図である。
【００４５】
図５中、コマンド／応答１１１の段は、ホスト機器からメモリカード２０へのコマンドと、メモリカード２０からの、コマンドに対する応答との遷移を示す。ホスト機器からのライトコマンドの発行から後に書き込むためのデータの転送が開始され、正常に転送がなされた場合においては、転送終了後に、転送完了の状態を示すステータス値がメモリカード２０からホスト機器に通知される。
【００４６】
図５中、転送データ１１２の段は、書き込むためのデータとして、５１２バイト（５１２Ｂ）単位の８セクタ分のデータがホスト機器からメモリカード２０へと転送される様子を示す。
図５中、割込信号１１３の段は、メモリカードがホスト機器に返す割込信号の様子を示しており、ホスト機器から５１２バイトのデータを受信可能になる毎に割込信号をアサートしている。また、８セクタの転送が終了してステータスの準備が完了した時にも、ホスト機器にステータス値を読み取るタイミングを知らせるべく割込信号をアサートしている。ホスト機器側では、この割込信号に従ったタイミングで書き込むべきデータの転送や、ステータスの読み取りを行う必要がある。
【００４７】
ホスト機器がライトコマンドを発すると、メモリカード２０は、外部インターフェイス部１を介してこのライトコマンドを受け取ってコマンド解析部２に伝え、コマンド解析部２では、「０番目のセクタからの８連続セクタの書き込み動作」と解析して、その解析結果であるデータはライトブロックサイズ判定部４に入力される。
ライトブロックサイズ判定部４では、ライト可能ブロックサイズ格納領域７に記録されているライト可能ブロックサイズと、コマンド解析部２による解析結果のデータとを参照して、ライトコマンドの指定が、ライト可能ブロックサイズで定まる条件を満たしているかどうかを判定する。
【００４８】
ここでは、ライトブロックサイズがセクタ数で示され、ライト可能ブロックサイズとしてセクタ数（１セクタ＝５１２バイト）を記録する形式であるとして説明すると、ライト可能ブロックサイズが８であれば、条件は次のようになる。
条件：｛（先頭セクタ番号）％８＝０｝かつ｛（ライトブロックサイズであるセクタ数）％８＝０｝
つまり、ライトコマンドで指定される、データを書き込む先頭セクタが、ライト可能ブロックサイズで示される単位毎に区分されたセクタ群の境界位置上にあり、かつ、ライトコマンドで指定される、ライトブロックサイズが、ライト可能ブロックサイズで示される単位量の整数倍であれば、条件が満たされる。
【００４９】
従って、ライトブロックサイズ判定部４は、ライトコマンドに伴う先頭セクタ番号を８で割った場合の剰余が０であり、かつ、ライトコマンドに伴うライトブロックサイズであるセクタ数を８で割った場合の剰余が０であるという条件を満たす場合にのみ、発行されたライトコマンドを実行し、それ以外のライトコマンドをエラーとしてホストに通知する。なお、ライトブロックサイズ判定部４でライトコマンドが実行可能と判定された場合に、それに後続するホスト機器からの、書き込まれるべきデータは、データライト部５を介してフラッシュメモリ６にライトされる。
【００５０】
ところで、上述したライト可能ブロックサイズ格納領域７には、フラッシュメモリ６の消去ブロックに相当するセクタ数が、ライト可能ブロックサイズとして記録されている。以下、このライト可能ブロックサイズについて更に説明する。
ここでは、メモリカードに１個のフラッシュメモリが内蔵されている場合を想定しており、１消去ブロックが８セクタで構成されていて、フラッシュメモリのライトページがセクタと同サイズである状態で、ライト可能ブロックサイズとして８が記録されていることを想定している。仮にメモリカードにフラッシュメモリが複数個内蔵されていて、ホスト機器が発行するライトコマンドにおける連続セクタ番号が複数のフラッシュメモリにまたがってインターリーブされている場合には、（フラッシュメモリの消去ブロックに相当するセクタ数）×（フラッシュメモリ数）が、ライト可能ブロックサイズとして記録されるようにすればよい。
【００５１】
図６Ａ及び図６Ｂは、セクタとフラッシュメモリの消去ブロックとの関係を示す図である。
図６Ａは、メモリカードが１個のフラッシュメモリで構成されている場合を示し、図６Ｂは、フラッシュメモリ１２１及びフラッシュメモリ１２２なる２個のフラッシュメモリで構成されている場合を示す。図６Ａ及び図６Ｂ中の各数値は、セクタ番号であり、破線で囲まれた各矩形はセクタを、実線で囲まれた各矩形は消去ブロックをそれぞれ示す。図６Ｂでは、セクタ番号が２個のフラッシュメモリにインターリーブされているので、メモリカードの消去ブロックを構成しているセクタ数は１６個になる。
【００５２】
本実施の形態では、このライト可能ブロックサイズに基づく条件判断の結果として消去ブロックの整数倍のブロック単位でしか書き込まないようにしている。
以下、消去ブロックの整数倍のブロック単位以外で書き込みを行うこととした場合の問題点について図７を用いて詳細に説明する。
図７は、メモリカードを構成する消去ブロックの状態遷移図である。同図に示すように、各消去ブロックの状態は以下の６状態に分類される。
【００５３】
「状態Ａ」：消去ブロックを構成する全ライトページに記録可能である。この状態の消去ブロックは、ワークブロックとして扱うことのできるものである。
「状態Ｂ」：消去ブロックを構成する一部のライトページに書き込み可能であり、記録済みライトページには有効ページが存在する。
「状態Ｃ」：消去ブロックを構成する一部のライトページに書き込み可能であり、記録済みライトページは全て無効ページである。
【００５４】
「状態Ｄ」：消去ブロックを構成する全ライトページは書き込み不可（全ライトページが無効ページ）である。
「状態Ｅ］：消去ブロックを構成する全ライトページは書き込み不可（一部のライトページが有効ページ）である。
「状態Ｆ］：消去ブロックを構成する全ライトページは書き込み不可（全ライトページが有効ページ）である。
【００５５】
なお、図７において、矢線は遷移が可能なことを示しており、波線で表した矢線は、遷移に巻き込み退避の動作が発生する場合を示しており、太線で表した矢線は、消去ブロック単位でのみデータを書き込んだ場合の遷移を示している。
図７に示すように、状態Ａの消去ブロックは、その消去ブロックを構成する全ライトページに書き込み可能であり、状態Ｂおよび状態Ｆに遷移可能である。
【００５６】
状態Ｂの消去ブロックはその消去ブロックを構成する一部のライトページに書き込み可能であるが、既に書き込まれているライトページの中に有効ページが含まれているので消去することはできない。よって、状態Ｃおよび状態Ｅ、状態Ｆに遷移可能である。
また、状態Ｃの消去ブロックはその消去ブロックを構成する一部のライトページに書き込み可能であり、かつ書き込み済みのライトページは全て無効ページであるため消去が可であり、状態Ａ、状態Ｅに遷移可能である。
【００５７】
また、状態Ｄの消去ブロックはその消去ブロックを構成する全ライトページが書き込み不可であるが、全ライトページが無効ページなので、つまり消去されるべき消去ブロックなので、その消去ブロックを消去すれば状態Ａに遷移する。
また、状態Ｅの消去ブロックはその消去ブロックを構成する全ライトページが書き込み不可であり、一部のライトページが有効ページなので消去も不可である。但し、本状態Ｅの有効ページであるライトページを、状態Ａまたは状態Ｂまたは状態Ｃの消去ブロックを構成する消去済みのライトページに退避すれば状態Ｄに遷移する。
【００５８】
更に、状態Ｆの消去ブロックはその消去ブロックを構成する全ライトページが書き込み不可であり全ライトページが有効ページなので、その消去ブロックを構成する一部のライトページを別の消去ブロックに退避すれば状態Ｅに遷移し、全部のライトページを別の消去ブロックに退避すれば状態Ｄに遷移する。
ここで、空きブロックサーチが発生する状態を図７に示した状態遷移図に関連づけて説明する。まず３つの状態、Ｓ１、Ｓ２、Ｓ３を定義する。
【００５９】
メモリカードに消去ブロック単位で満杯書きした状態（Ｓ１）は、状態Ａと状態Ｄと状態Ｆとで構成される。
小ブロック単位でデータをライトしていく状態（Ｓ２）は、Ｓ１の状態から状態Ａのブロックが状態Ｂ、状態Ｅに遷移した状態であり、さらに、状態Ｂのブロックが状態Ｅに遷移する。
【００６０】
空きブロックサーチが発生する状態（Ｓ３）は、状態Ａがない状態である。
小ブロックでライトしていくと、メモリカードの状態がＳ１→Ｓ２→Ｓ３のように遷移していき、空きブロックサーチが発生する状態になる。
Ｓ３の状態で、全ての消去ブロックから無効ページをサーチするタスクが発生するために、高速ライトが困難になる。
【００６１】
無効ページをサーチする場合、サーチした消去ブロックに無効ページが含まれていることが即検出できれば比較的時間がかからないが、最悪全ての消去ブロックをサーチした後に検出される場合があり、空きブロックサーチ検出に要する時間は揺らぎが大きい。
上述したことから、メモリカードにおいて、高速記録を実現するために、空きブロックサーチの動作が発生しないように、状態Ａ→状態Ｆ→状態Ｄ→状態Ａという遷移を繰り返すことが望ましい。
【００６２】
本実施の形態では、ライトブロックサイズ判定部４によりライト可能ブロックサイズ７に基づく条件を満たさないライトコマンドをエラーとしてホスト機器に通知している。ゆえに、消去ブロック単位以外での書き込みを排除できるので、メモリカードの記録状態を一定に保持することができ、メモリカードの過去の記録状態によって、それ以後の書き込みにおける記録レートが劣化することを防止することができる。ゆえに、以前にメモリカードに記録したホスト機器を特定しなくても、メモリカードの記録レートが保証できるようになる。
【００６３】
以下、メモリカード２０の保証ライトレート格納領域８に記録されている保証ライトレートについて説明する。
保証ライトレートは、詳しくは、メモリカード２０へのデータ書き込みに際して保証される最低記録レートと、その保証の前提となるライトブロックサイズとの組を示しており、ホスト機器は、ライト可能ブロックサイズや、この保証ライトレートをメモリカードから読み出すことができるので、例えば、カメラレコーダで映像信号を圧縮してメモリカードに記録する場合に、保証ライトレートを満たすように圧縮率を変更すれば、より柔軟なシステムが構築できる。
【００６４】
以下、メモリカード２０のバッファーメモリ容量格納領域９に記録されているバッファーメモリ容量データについて説明する。
このバッファーメモリ容量データは、ホスト機器側に備えられるべきバッファーメモリの容量を示すものであるところ、かかるバッファーメモリは以下の目的で使用される。
第１の目的は、フラッシュメモリが書き込み時にエラーを発生した場合にホスト機器が行うべきとなるエラー処理と書き込みのリトライ処理の時間を吸収するためであり、第２の目的は、メモリカードへの書き込みアルゴリズムにおいて、書き込み処理時間の多少の変動を平滑化するためである。
【００６５】
バッファーメモリの第１の目的が想定するエラーを発生した場合とは、主にフラッシュメモリに不良セクタが発生した場合であり、不良セクタは約１０００００回のライトで１回の確率で発生する。
メモリカード２０では、不良セクタが発生した場合のエラー登録処理と書き込みのリトライ処理に要する時間に１００ｍｓ要する。例えば、メモリカードへのデータ記録に際して３回発生することを想定すれば、３００ｍｓ分に相当するバッファーメモリが必要である。また、この場合の保証ライトレートは、エラーを考慮しない場合のライトレートより若干低く設定することが必要である。メモリカードにエンドレス記録をする場合を想定すると前記バッファーメモリがオーバーフローする場合があるからである。前記バッファーメモリ容量データと保証ライトレートの関係は、図８に示すシステムにおいて、待ち行列計算を使用して求めることができる。
【００６６】
即ち、エラーが発生する確率（ρ）とメモリカードがエラー処理に要する時間（Ｔｂ）、エラーがない場合のメモリカードのライト処理時間（Ｔａ）、所定ブロックのデータがバッファーメモリに入力される時間（Ｔｃ）から、所定のバッファーメモリ容量データに対する入力レートの最大レートを求め、前記バッファーメモリ容量データ、前記最大レートを保証ライトレートとしてメモリカードに予め登録しておければよい。
【００６７】
バッファーメモリの第２の目的について言えば、メモリカードへの書き込みアルゴリズムとしては、様々なアルゴリズムが想定されるが、例えば、所定数のブロックの書き込みをした後に、論理アドレスと物理アドレスの変換テーブルをフラッシュメモリに書き込むようなアルゴリズムでは、その変換テーブルの書き込み時間が周期的に加算されることになる。
【００６８】
例えば、１０００個の消去ブロックをライトする毎に変換テーブルを登録する場合は、保証ライトレートを平均値で登録し、バッファーメモリ容量データに、変換テーブルの登録に要する時間に相当する容量を登録すればよい。
以上説明したように、メモリカードのエラー特性、制御アルゴリズムに対応して、必要バッファーメモリ容量データ、保証ライトレートをメモリカード自体に登録することにより、リアルタイム記録を行うメモリカードシステムにおいて、メモリカードの性能を最大限発揮できるシステムが構築できる。また、特性の違うメモリカードを装着した場合でも、ホスト機器側が、バッファーメモリ容量データや保証ライトレートといった必要情報をメモリカードのＲＯＭ１９等から読み出して参考にすることによって、メモリの割り当ての変更や、映像信号の圧縮率を変更する等の柔軟な対応が可能となる。
＜実施の形態２＞
以下、本発明の実施の形態２に係るメモリカードシステムについて説明する。
【００６９】
図９は、実施の形態２に係るメモリカードシステムの構成図である。
同図に示すように、このメモリカードシステムは、実施の形態１で示したメモリカード２０と、このメモリカードにデータの記録を行うホスト機器２１とから構成される。ここでは、ホスト機器２１を、カメラレコーダであるものとして説明する。
ホスト機器２１は、画像データ入力部１０、圧縮部１１、バッファーメモリ１２、リードモディファイライト部１３及び制御部１４を備える。
【００７０】
画像データ入力部１０は、ディジタル画像データが入力される入力部である。
圧縮部１１は、画像データ入力部１０を介して入力された画像データを圧縮する機能を有する。
バッファーメモリ１２は、画像データを一時的に記憶するためのメモリである。
リードモディファイライト部１３は、バッファーメモリ１２から読み出したデータをメモリカード２０に記録し、この記録に際して後述するリードモディファイライトを行う機能を有する。
【００７１】
制御部１４は、メモリカード２０をホスト機器２１へ装着する時に、メモリカード２０に予め記録されているライト可能ブロックサイズ、保証ライトレート、及びバッファーメモリ容量データを読み出すためのコマンドを発行することを通じて、これらを読み出して制御パラメータとして保持し、その制御パラメータに応じて、圧縮部１１、バッファーメモリ１２及びリードモディファイライト部１３を制御する機能を有する。
【００７２】
以下、上記構成を備えるメモリカードシステムにおいて、カメラレコーダであるホスト機器２１が、撮像機構により入力されるディジタル画像データをメモリカード２０にリアルタイム記録する動作について説明する。
制御部１４では、メモリカード２０から読み出して保持している制御パラメータに従って次の動作を行う。即ち、保証ライトレートを満たすように、圧縮部１１の圧縮率を変更し、また、バッファーメモリ容量データを満たすように、ホスト機器に実装されているメモリを、装着したメモリカード用のバッファーメモリとして割り当て、実施の形態１で示したライト可能ブロックサイズに関する条件を満たすようなライトコマンドを発行する。なお、ライトコマンドの発行に際しては、ライト可能ブロックサイズの示すブロック単位で、データの書き込みを行うライトコマンドをメモリカードに発行するようにリードモディファイライト部１３を制御する。
【００７３】
ここで、この制御部１４による制御を受けてのリードモディファイライト部１３の動作について説明する。
制御パラメータとして保持したライト可能ブロックサイズの示す値が８であった場合は、８セクタ（＝４キロバイト）単位で書き込むことが要求されていることになる。この場合、メモリカードに記録するデータが４キロバイトの整数倍である場合は実現容易である。しかしながら、２２キロバイトの画像デ−タを記録する場合は、５個の４キロバイトのブロックと、１個の２キロバイトのブロックに分割せざるを得ない。もちろん、２キロバイトのブロックにダミーデータを付加して４キロバイトのブロックにして記録してもよいが、この手法では、ＦＡＴのようなシステムデータを記録する必要がある場合には、ダミーデータを付加することができないので適応できない。
【００７４】
このため、８セクタの整数倍の量のデータしか書き込めないメモリカードでＦＡＴを更新する場合は、メモリカードのＦＡＴデータをミラーリングしたデータをホスト機器に持たざるを得なくなるといった課題がある。リードリードモディファイライト部はリードモディファイライトを行うことによりこの課題を解決する。
図１０は、セクタ番号が８であるセクタから連続して４セクタに書き込む必要がある場合におけるリードモディファイライトの動作イメージを示す図である。
【００７５】
同図中、データ２０１は、書き込みが要求されているセクタ群へ書き込まれるべきデータを示し、データ２０２は、メモリカードから読み出したセクタ群のデータを示し、データ２０３は、リードモディファイライトにより実際にメモリカードのセクタ群に書き込まれるデータを示している。
同図に示すように、書き込みの際に、ライト可能ブロックサイズが示すセクタ数に基づいてメモリカードからのデータの読み出しを行い、即ち、書き込む必要があるセクタと、それ以外のセクタ（以下、「ペアとなるセクタ」という。）とのセクタ数の合計が、ライト可能ブロックサイズの示すセクタ数と一致するように、ペアとなるセクタを特定してそのペアとなるセクタのデータ２０２の読み出しを行い、そして書き込む必要がある４セクタのデータ２０１と、その読み出した４セクタのデータ２０２とを合わせて合計８セクタのデータ２０３を構築してメモリカードに書き込むという手順により、リードモディファイライトは実現される。
【００７６】
このように、リードモディファイライトを行うことによって、ＦＡＴのようなシステムデータの更新においても、ミラーリングデータをホスト機器に持つ必要はなくなる。
また、ダミーデータを付加する手法を用いることができないＦＡＴの更新時にのみ、このリードモディファイライトを適用すれば、書き込む前に一旦読み出さなければならないことによる記録レートの劣化も僅かでしかない。
【００７７】
以上説明したように、本実施の形態のメモリカードシステムにおいては、メモリカードに予め記録されているライト可能ブロックサイズ、保証ライトレート、バッファーメモリ容量データを参照した制御をすることによって、メモリカードへの記録レートの保証が実現される。
＜実施の形態３＞
以下、実施の形態１に係るメモリカード２０を部分的に変形したものであるメモリカード３０について説明する。
【００７８】
メモリカード２０は、記録速度をある速度以下に低下させないようにするために、フラッシュメモリを消去ブロックの整数倍であるライト可能ブロックサイズ単位で区分して、そのライト可能ブロックサイズ単位の整数倍でしかホスト機器からの書き込みを認めない、つまりエラーと扱うこととし、そのためＲＯＭ１９内のライト可能ブロックサイズ７をホスト機器が読み出せるようにしている。これに対してメモリカード３０は、ライト可能ブロックサイズを、ＲＯＭ１９ではなく、フラッシュメモリ６とは別の書き換え可能な不揮発性メモリに記憶させておき、一定条件下でライト可能ブロックサイズを更新する機能を有している。
【００７９】
図１１は、実施の形態３に係るメモリカード３０の構成図である。なお、同図中、実施の形態１で示したメモリカード２０の構成要素と同一のものには、同じ符号を付してあり、これらについては説明を適宜省略する。また、同図中、太い矢線は、メモリカード３０に対してホスト機器から送られる記録対象となるデータの流れを示し、細い矢線は、制御信号又は制御データの流れを示している。
【００８０】
図１１に示すように、実施の形態３に係るメモリカード３０は、外部インターフェイス部４１、コマンド解析部４２、制御部３、フラッシュメモリ６、不揮発性メモリであるライト可能ブロックサイズ格納領域４７、並びに、保証ライトレート格納領域８及びバッファーメモリ容量格納領域９を有するＲＯＭ（ReadOnly Memory）４９を備える。
ここで、外部インターフェイス部４１は、実施の形態１で示した外部インターフェイス部１の機能に加えて、ホスト機器からライト可能ブロックサイズの更新要求コマンドを受け付け、これに応答する機能を有する。
【００８１】
コマンド解析部４２は、外部インターフェイス部４１によって受信されたコマンドを解析する機能を有する。なお、コマンド解析部４２は、コマンドを解析した結果、コマンドがＲＯＭ４９の各内容やライト可能ブロックサイズ格納領域の内容を読み出すためのコマンドである場合には、ホスト機器へその各内容を読み出して、外部インターフェイス部１を介して、コマンドへの応答として伝送する。また、コマンドが、ライト可能ブロックサイズの更新要求コマンドである場合には、後述するライト可能ブロックサイズ更新要求コマンド対応処理を行う。
【００８２】
ライト可能ブロックサイズ格納領域４７は、ホスト機器に記録を許容するところのブロックサイズを示すライト可能ブロックサイズを格納するための、書き換え可能な不揮発性メモリ中の一領域であり、初期値として、実施の形態１におけるライト可能ブロックサイズ格納領域７と同様の値が設定されている。
また、ＲＯＭ４９内の保証ライトレート格納領域８は、保証する最低記録レートを示す保証ライトレートが予め記録されている領域であり、バッファーメモリ容量格納領域９は、その保証ライトレートを満たすためにホスト機器に要求するバッファーメモリ容量データが予め記録されている領域である。
【００８３】
制御部３のライトブロックサイズ判定部４は、ライト可能ブロックサイズ格納領域４７に記録されているライト可能ブロックサイズを参照して、コマンド解析手段４２で解析されたライトコマンドで指定されるライトブロックサイズ等が適切か否かを判定し、適切であればライトコマンドに応じたデータの書き込みをデータライト部５に実行させ、不適切であれば、外部インターフェイス部１等を介してエラーをホスト機器に返信する機能を有する。なお、この制御部３の制御によるデータの書き込み動作については、実施の形態１で示した動作と同じである。
【００８４】
以下、ライト可能ブロックサイズ更新要求コマンド対応処理について説明する。
図１２は、ライト可能ブロックサイズ更新要求コマンド対応処理を示すフローチャートである。
ライト可能ブロックサイズの更新要求コマンドは、更新するための指定値を伴ってホスト機器により発行される。
【００８５】
コマンド解析部４２は、ライト可能ブロックサイズの更新要求コマンドを受けると、指定値を取得し（ステップＳ５１）、その指定値が、所定条件を満たすかを判定し（ステップＳ５２）、所定条件を満たさなければ、外部インターフェイス部１等を介してエラーをホスト機器に返信し（ステップＳ５４）、所定条件を満たせば、その指定値を新たなライト可能ブロックサイズとしてライト可能ブロックサイズ格納領域４７に記録する（ステップＳ５３）。
【００８６】
ステップＳ５２の判定に係る所定条件は、消去ブロックサイズが２セクタであることを前提とした場合においては、ライト可能ブロックサイズ格納領域４７の初期値が８セクタを示す８であるとし、指定値がセクタ数により指定されるものとすれば、その指定値が、ライト可能ブロックサイズ格納領域４７にその指定された時点で格納されているライト可能ブロックサイズよりも小さく、かつ、４又は２であることである。
【００８７】
従って、ホスト機器は、ライト可能ブロックサイズの指定値として４又は２を指定して、メモリカード３０におけるライト可能ブロックを更新させることができるが、一旦４に更新した後においては、もう８には戻せず、更に更新する場合には２にしかできないし、一旦２に更新した後においては、もう８や４に更新することはできない。
このようにあるホスト機器が、メモリカード３０のライト可能ブロックサイズを４に更新すると、８セクタ単位で書き込むよりも記録レートは低下するものの、そのメモリカード３０を後に装着した別のホスト機器においても、そのライト可能ブロックサイズが４セクタであることをメモリカード３０から読み出して知ることも可能であり、また、８セクタ単位で書き込むよりは低速とはなるが、ある程度の記録レートは保証されるようになる。なお、保証ライトレート格納領域８には、当初のライト可能ブロックサイズに対応する保証ライトレートの他に、変更後の各ライト可能ブロックサイズとなり得るサイズ毎に応じて、保証可能な最低記録レートを示す保証ライトレート、いわば条件付保証ライトレートを、予め記録しておくこととしてもよい。
＜補足＞
以上、本発明に係るメモリカード及びメモリカードシステムの実施の形態について説明したが、上記実施の形態として示したメモリカードを以下に示すように部分的に変形することもできる。
（１）各実施の形態で示したライト可能ブロックサイズは、消去ブロックのサイズと同一としたが、消去ブロックのサイズの２倍や４倍等、整数倍であれば最低記録レートの保証は可能となる。なお、実施の形態において示したライト可能ブロックサイズの値については単なる例示であり、例えばフラッシュメモリで消去ブロックが１２８キロバイトであり、１セクタが５１２バイトである場合においてライト可能ブロックサイズを、セクタ数を単位として表現するとしたら、その値は、２５６となる。
（２）実施の形態１で示したライトブロックサイズ及び書き込み先頭セクタ番号が、ライト可能ブロックサイズとの関係において満たすべき条件としては、書き込み先頭セクタ番号がライト可能ブロックサイズで示されるセクタ数で割り切れるものであることをも条件としたが、ライトコマンドの発行元となるホスト側で、書き込み先頭セクタ番号をライトブロックサイズで示されるセクタ数の整数倍となるように定めるようにすれば、メモリカード側では、この先頭セクタ番号に係る条件の判断は行わないようにしてもよい。また、ライト可能ブロックサイズやライトブロックサイズの値については、必ずしもセクタ数で表されなくてもよく、バイト数等であってもよい。
（３）実施の形態１で示した保証ライトレートに加えて、ライト可能ブロックサイズの整数倍のブロックサイズにあたる各ライトブロックサイズに対応した各保証ライトレートデータ、つまり条件付保証ライトデータをメモリカードに保持させておき、ホスト機器がその条件付保証ライトデータを取得できるようにしてもよい。
（４）各実施の形態では、消去ブロックのサイズに鑑みてライト可能ブロックサイズを定めている例を示しているが、変形例として、ライトページの整数倍になるようにライト可能ブロックサイズを定めることとしてもよい。また、将来的に、消去ブロックが、比較的少ないライトページで構成されるようなフラッシュメモリが開発された場合は、データを記録する毎に退避処理をする可能性が高いため、上記した空きブロックサーチによる記録レートの劣化は発生しない可能性があるため、ライト可能ブロックサイズは１セクタに相当する５１２バイトとし、メモリカードの特性に応じた最適なライトブロックサイズ毎にそのサイズとそのサイズで書き込んだ条件付での条件付保証ライトレートを予め登録しておくこととしてもよい。
（５）実施の形態３では、ホスト機器がライト可能ブロックサイズの更新要求コマンドを発行することを契機としてメモリカードがライト可能ブロックサイズの更新可否判断や更新を行うこととしたが、このような更新要求コマンドを用いない方式であってもよい。例えば、ホスト機器から、ライト可能ブロックサイズよりも小さいライトブロックサイズを指定したライトコマンドを発行したことを契機として、メモリカードが、一旦ホスト機器にエラーを返却した後にホスト機器からライトコマンドを強行する旨の応答を受けた場合には、ライト可能ブロックサイズの更新可否判断や更新を行うこととしてもよい。
（６）実施の形態３で示したメモリカードを変形し、保証ライトレートも書き換え可能な不揮発性メモリに格納することとし、ライト可能ブロックサイズの更新要求コマンドにより、ライト可能ブロックサイズが一旦更新された後は、保証ライトレートの値を、保証不能を示す値に書き換えるようにしてもよい。これにより、メモリカードを、最低記録レートの保証が必要ない用途に利用するホスト機器が一旦ライト可能ブロックサイズを更新した場合には、その後そのメモリカードを装着した別のホスト機器等は、そのメモリカードついては、最低記録レートが保証されないものであると、保証ライトレートを読み出すことにより識別可能となり、例えばユーザに報知することやその他の処理を行うことが可能になる。
（７）実施の形態３で示したメモリカードにおいて、フラッシュメモリ中の全消去ブロックの消去コマンドを受け付けることとし、そのコマンドを受け付けた場合には全ての消去ブロックを消去した後に、ライト可能ブロックサイズとして初期設定値（例えば８）を再び設定するようにしてもよい。これにより、あるホスト機器がメモリカードのライト可能ブロックサイズを初期設定値より小さい値に更新してデータ書き込み等をしていた場合に、その後にそのメモリカードを装着したホスト機器等において、全消去を行えば、再び、当初の最低記録レートを保証した書き込みが行えるようになる。
【産業上の利用可能性】
【００８８】
本発明に係るメモリカード及びメモリカードシステムは、データの記録レートの保証をすることが可能であるため、連続的にデータを高速記録する用途に適し、高レートでのリアルタイム記録を確実に行うことが必要とされる業務用映像分野等において利用され得る。
【図面の簡単な説明】
【００８９】
【図１】メモリカードへのデータの書き込みの様子を示す図である。
【図２】ライトページを含む消去ブロックを有するメモリカードの状態変化を示す図である。
【図３】無効ページを有する消去ブロックから有効ページをワークブロックに退避する前後の状態を示す図である。
【図４】実施の形態１に係るメモリカードの構成図である。
【図５】ホスト機器とメモリカードとの間で伝送される、ライトコマンドに係る信号及びデータの伝送タイミングを示す図である。
【図６Ａ】セクタとフラッシュメモリの消去ブロックとの関係を示す図である。
【図６Ｂ】セクタと複数のフラッシュメモリの消去ブロックとの関係を示す図である。
【図７】メモリカードを構成する消去ブロックについての状態遷移図である。
【図８】必要バッファーメモリ容量を求める待ち行列計算のシステム図である。
【図９】実施の形態２に係るメモリカードシステムの構成図である。
【図１０】リードモディファイライトの動作イメージを示す図である。
【図１１】実施の形態３に係るメモリカードの構成図である。
【図１２】ライト可能ブロックサイズ更新要求コマンド対応処理を示すフローチャートである。
【符号の説明】
【００９０】
１、４１    外部インターフェイス部
２、４２    コマンド解析部
３    制御部
４    ライトブロックサイズ判定部
５    データライト部
６    フラッシュメモリ
７、４７    ライト可能ブロックサイズ格納領域
８    保証ライトレート格納領域
９    バッファーメモリ容量格納領域
１０  画像データ入力部
１１  圧縮部
１２  バッファーメモリ
１３  リードモディファイライト部
１４  制御部
１９、４９  ＲＯＭ
２０、３０  メモリカード
２１  ホスト機器
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005096220.tif 000015
【図２】
2005096220.tif 000016
【図３】
2005096220.tif 000017
【図４】
2005096220.tif 000018
【図５】
2005096220.tif 000019
【図６Ａ】
2005096220.tif 000020
【図６Ｂ】
2005096220.tif 000021
【図７】
2005096220.tif 000022
【図８】
2005096220.tif 000023
【図９】
2005096220.tif 000024
【図１０】
2005096220.tif 000025
【図１１】
2005096220.tif 000026
【図１２】
2005096220.tif 000027
【国際調査報告】
2005096220.tif 000028
2005096220.tif 000029
2005096220.tif 000030
2005096220.tif 000031