(57)【要約】【課題】記憶デバイスをコントローラを介して制御する場合でも記憶デバイス性能をある程度推測できる簡便な方法を持った記憶デバイスを提供すること。【解決手段】記憶デバイスは、データを記憶する半導体メモリ２１を含む。コントローラ２２は、外部からの要求に応じて半導体メモリにデータを書き込む指示を行う。レジスタ２４は、性能に応じて規定された複数の性能クラスのうちのサポートしている最大性能を出すために必要な性能クラス情報を保持する。【選択図】図２
2006178923.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する半導体メモリと、
外部からの要求に応じて前記半導体メモリにデータを書き込む指示を行うコントローラと、
性能に応じて規定された複数の性能クラスのうちのサポートしている最大性能を出すために必要な性能クラスを示す性能クラス情報を保持するレジスタと、
を具備することを特徴とする記憶デバイス。
【請求項２】
前記レジスタが、前記半導体メモリおよび前記コントローラの性能に関する性能パラメータ情報をさらに保持することを特徴とする請求項１に記載の記憶デバイス。
【請求項３】
前記性能パラメータ情報は、前記メモリ内でのデータの移動に要する移動速度と、前記記憶デバイスを用いるホスト機器が用いる、記憶領域の管理単位領域の大きさと、の少なくとも１つを含むことを特徴とする請求項２に記載の記憶デバイス。
【請求項４】
前記半導体メモリが、データの書き込み単位である複数の物理領域を含み、
前記コントローラが、連続したデータを連続する前記物理領域に書き込んでいる最中にファイルシステムの更新要求があった場合、書き込み再開後のデータの書き込みを、書き込み中断前に最後に書き込まれた前記物理領域の次の前記物理領域から再開する、
ことを特徴とする請求項１に記載の記憶デバイス。
【請求項５】
前記半導体メモリと、前記コントローラと、前記レジスタと、を覆う外囲器と、
前記外囲器上に設けられ、前記レジスタが保持する前記性能クラス情報が示す前記性能クラスを表示する表示部と、
をさらに具備することを特徴とする請求項１に記載の記憶デバイス。
【請求項６】
性能に応じて規定された複数の性能クラスのうちのサポートしている最大性能を出すために必要な性能クラスを示す性能クラス情報およびデータを記憶する半導体メモリを含んだ記憶デバイスからのデータの読み出し、前記記憶デバイスへのデータの書き込みを行い、
複数の前記性能クラスのうちの自身がサポートしている最大性能を引き出すために必要な性能クラスが設定されている、
ことを特徴とするホスト機器。
【請求項７】
前記記憶デバイスから前記記憶デバイスの性能に関する性能パラメータを読み出し、前記性能パラメータを用いて計算を行うことを特徴とする請求項６に記載のホスト機器。
【請求項８】
前記半導体メモリのメモリ領域を、それぞれが複数の書き込み単位領域からなる複数の管理単位領域によって管理し、
複数の前記管理単位領域内の使用状態に応じて、複数の前記管理単位領域を、前記性能パラメータを用いて、要求される性能でのデータの書き込みが可能な適合管理単位領域と不可能な不適管理単位領域とに分類する、
ことを特徴とする請求項７に記載のホスト機器。
【請求項９】
前記適合管理単位領域をリアルタイム書き込みに用いることを特徴とする請求項８に記載のホスト機器。
【請求項１０】
前記性能パラメータと前記適合管理単位領域の数とを用いて、前記要求される性能でのデータの書き込みが可能な残存記録時間を計算することを特徴とする請求項９に記載のホスト機器。
【請求項１１】
前記記憶デバイスの前記性能クラス情報が“０”の場合、この記憶デバイスに前記性能クラスが定義されていないと判定することを特徴とする請求項６に記載のホスト機器。
【請求項１２】
前記記憶デバイスの性能が前記ホスト機器が求める第１性能を満たすことができない場合、前記第１性能より低い第２性能で前記記憶デバイスにデータを書き込むことを特徴とする請求項６に記載のホスト機器。
【請求項１３】
前記記憶デバイスにデータを書き込めない間、書き込み要求されている書き込みデータをバッファで保存することを特徴とする請求項６に記載にホスト機器。
【請求項１４】
外囲器と、
前記外囲器上に設けられ、ホスト機器に設定された前記性能クラスを表示する表示部と、
をさらに具備することを特徴とする請求項６に記載のホスト機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスおよび記憶デバイスを用いるホスト機器（電子機器）に関するものであり、特に不揮発性半導体記憶装置、それを用いたメモリカード等の記憶デバイス、さらに、その記憶デバイスを実装して使用するデジタルスチルカメラ、デジタルビデオカメラ等の録画装置などの電子機器に関する。また、たとえばＵＳＢ（Universal Serial Bus）フラッシュ等の記憶デバイス、および、ＰＣ（Personal Computer）、ＰＤＡ（Personal Digital Assistant）などの電子機器も本発明の範疇に含まれる。
【背景技術】
【０００２】
近年、画像データや音楽データに代表される種々のデジタル情報を保存する記憶装置として、不揮発性半導体メモリを搭載したメモリカードが広まってきている。不揮発性半導体メモリのデータは、電源がオフされても消失する虞がなく、また、書き換えが可能である。不揮発性メモリとしては、ＮＡＮＤ型などのフラッシュメモリが多用されている（例えば、特開２００３−３０９９３号公報（特許文献１））。
【０００３】
最近は、半導体製造技術の進歩によりフラッシュメモリの記憶容量は増加しており、ＧＢ単位のフラッシュメモリも出現している。
【０００４】
ところで、例えばフラッシュメモリを内蔵した、メモリカード等の記憶デバイスをホスト機器で使用する場合、従来は、ホスト機器が記憶デバイス内のフラッシュメモリを直接制御していた（例えば、特開２００２−７３４０９号公報（特許文献２））。このため、フラッシュメモリのプログラム時間をホスト機器が把握でき、これから、ある程度は記憶性能や記憶可能時間などを予測可能であった。
【０００５】
しかしながら、近年、記憶デバイスがコントローラを内蔵することが多くなり、制御方法が複雑化してきたため、単純な計算では記憶性能が求められなくなった。また、ホスト機器と記憶デバイスを接続するバスの転送速度パラメータは定義されているが、これはホスト機器が記憶デバイスへ書き込む現実の速度ではないため、性能を識別する手段とはなり得なかった。
【０００６】
また、ＮＡＮＤフラッシュTMメモリ等を格納した記憶デバイスの性能を求めるには、ホスト機器によるブロックの処理方法と合わせた計算が必要である。このため、記憶デバイス側だけで性能を決めることはできなかった。
【特許文献１】特開2003-30993号公報
【特許文献２】特開2002-73409号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、大容量の記憶デバイスをコントローラを介して制御する場合でも記憶デバイス性能をある程度推測できる簡便な方法を持った電子機器、性能予測方法、記憶デバイスが望まれている。
【課題を解決するための手段】
【０００８】
本発明の第１の視点による記憶デバイスは、データを記憶する半導体メモリと、外部からの要求に応じて前記半導体メモリにデータを書き込む指示を行うコントローラと、性能に応じて規定された複数の性能クラスのうちのサポートしている最大性能を出すために必要な性能クラスを示す性能クラス情報を保持するレジスタと、を具備することを特徴とする。
【０００９】
本発明の第２の視点によるホスト機器は、性能に応じて規定された複数の性能クラスのうちのサポートしている最大性能を出すために必要な性能クラスを示す性能クラス情報およびデータを記憶する半導体メモリを含んだ記憶デバイスからのデータの読み出し、前記記憶デバイスへのデータの書き込みを行い、複数の前記性能クラスのうちの自身がサポートしている最大性能を引き出すために必要な性能クラスが設定されている、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば大容量の記憶デバイスをコントローラを介して制御する場合でも記憶デバイス性能をある程度推測できる簡便な方法を持った記憶デバイスおよびホスト機器を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明に係る実施形態を説明する。これらの実施形態は、本発明を限定するものではない。
【００１２】
（第１実施形態）
第１実施形態は、不揮発性半導体記憶装置を内蔵する記憶デバイス、および記憶デバイスを用いるホスト機器に関する。
【００１３】
［１］記憶デバイスおよびホスト機器の構成
本発明の第１実施形態に係るホスト機器に用いられる記憶デバイスに内蔵された不揮発性半導体記憶装置として、ＮＡＮＤフラッシュTMメモリが用いられた場合を例にとって説明する。
【００１４】
図１は、本実施形態に係る半導体記憶装置をＮＡＮＤフラッシュTMメモリで実現した場合の、半導体記憶装置（半導体メモリ）全体の構成を示すブロック図である。
【００１５】
図１において、１１はメモリセルアレイである。メモリセルアレイ１１内には、複数のワード線、選択ゲート線およびビット線が設けられている（図示せぬ）。また複数のワード線とビット線には複数のメモリセル（図示せぬ）が接続されている。複数のメモリセルは、後述のように、複数のブロックへと分割されている。
【００１６】
メモリセルアレイ１１には、データ保持回路１２およびロウデコーダ回路１３とが接続されている。データ保持回路１２は、複数のラッチ回路からなる。ロウデコーダ回路１３は、複数のワード線および選択ゲート線を選択的に駆動する。
【００１７】
データ保持回路１２は、メモリセルアレイ１１からのデータ読み出し時にはビット線を介して読み出されるデータを一時的に保持し、メモリセルアレイ１１に対するデータ書き込み時には書き込みデータを一時的に保持しビット線を介してメモリセルアレイ１１に供給する。
【００１８】
データ保持回路１２には入出力バッファ（Ｉ／Ｏバッファ）１４およびカラムデコーダ回路１５が接続されている。データ読み出し時に、データ保持回路１２で保持されている読み出しデータのうち、カラムデコーダ回路１５の出力に応じて選択されたデータのみが入出力バッファ１４を介して半導体記憶装置外部に読み出される。また、データ書き込み時には、入出力バッファ１４を介して半導体記憶装置外部から供給される書き込みデータが、カラムデコーダ回路１５の出力に応じて選択されたデータ保持回路１２内のラッチ回路で保持される。
【００１９】
ロウデコーダ回路１３は、データの読み出し時および書き込み時に、メモリセルアレイ１１内のワード線および選択ゲート線を選択的に駆動し、メモリセルアレイ１１内の１ページ分のメモリセルが同時に選択されるようにする。
【００２０】
アドレスラッチ１６は、アドレス入力をラッチし、ロウアドレスをロウデコーダ回路１３に供給し、カラムアドレスをカラムデコーダ回路１５に供給する。
【００２１】
コマンドラッチ１７は、コマンド入力を受ける。コマンドラッチ１７には、コマンドデコーダ１８が接続されている。コマンドデコーダ１８は、コマンドをデコードして各種制御信号を出力する。そして、コマンドデコーダ１８から出力される制御信号に基づいて、データ保持回路１２、ロウデコーダ回路１３、入出力バッファ１４、カラムデコーダ回路１５、アドレスラッチ１６などの動作が制御される。
【００２２】
ＮＡＮＤフラッシュTMメモリの場合、アドレスラッチやコマンドラッチが入出力バッファ１４に接続されており（図示せず）、ＮＡＮＤフラッシュTMメモリの入出力ピンからアドレスやコマンドが供給される。
【００２３】
なお、この半導体記憶装置には上記した各回路の他に、高電圧・中間電圧発生回路（図示せず）などが設けられる。高電圧・中間電圧発生回路は、データの書き込み時および消去時にロウデコーダ回路１３やメモリセルアレイ１１に供給される高電圧および中間電圧を発生する。
【００２４】
図２に、図１のメモリが内蔵された記憶デバイスの一例、およびその記憶デバイスを用いるホスト機器の一例を図示する。この記憶デバイス１９は、例えばメモリカードである。このメモリカードの一例として、例えば、ＳＤTMメモリカードが考えられる。ＳＤTMメモリカードを用いた場合の詳細については後述する。
【００２５】
メモリカードには、図２に示すようにフラッシュメモリ（図中の記憶領域２１）、および、フラッシュメモリをコントロールするデバイスコントローラ２２が内蔵されている。フラッシュメモリは図１の構成を有する。
デバイスコントローラ２２は、バージョン情報レジスタ２３、性能識別コードレジスタ２４、性能パラメータレジスタ２５を具備している。バージョン情報レジスタ２３は、バージョン情報を保持し、バージョン情報は、メモリカードのバージョンを識別するために用いられる。性能識別コードレジスタ２４は、性能識別コードは保持し、性能識別コードは、性能区分（性能クラス）を識別するために用いられる。性能パラメータレジスタ２５は、記憶デバイスの性能パラメータ（後に詳述）を保持する。
【００２６】
この記憶デバイス１９がホスト機器２０に接続された場合、ホスト機器２０は、内蔵のプロセッサ２８により内蔵のホストコントローラ２６を制御し、記憶デバイス１９との間でデータの授受を行う。
【００２７】
ホスト機器２０からデータを送り出す場合には、まず、内蔵のホストバッファ（バッファメモリ）２７にデータを一時保存し、ホストコントローラ２６を介して記憶デバイス１９にデータを送り出す。ホストバッファ２７により、記憶デバイスの時間による性能の変動をある程度は吸収することができる。
【００２８】
なお、ホストバッファ２７は、システムメモリ２９の一部を利用して実現されても良い。こうすることにより、ホストバッファ２７としての特別なメモリを持つ必要がなく、また、通常、大きなホストバッファ２７が必要なので、システムメモリ２９上に確保することは効率的である。
【００２９】
ホスト機器２０は、１回のマルチブロック書き込みコマンド（連続した複数のブロックを１つの書き込みコマンドで書き込むためのコマンド）でデータを書き込むことができる。
【００３０】
［２］カード規格の性能定義
ホスト機器２０が記憶デバイス１９の性能を知得できるように、記憶デバイス１９は、自身の性能に応じた性能のクラス、および各種の性能パラメ−タの情報を保持している。以下、性能パラメータの定義について説明する。なお、以下、記憶デバイス１９としてメモリカード、特にＳＤTMメモリカードを例に取り説明する。
【００３１】
ホスト機器２０から記憶デバイス（メモリカード）１９へのデータ伝送性能は制御バス上の伝送速度であると仮定する。ここで、制御バス３０は、図２中のホストコントローラ２６とデバイスコントローラ２２を双方向に結ぶ太い矢印に対応する。なお、この伝送速度はホスト機器２０が最適な状態で書き込みをした場合を仮定している。
【００３２】
［２−１］パフォーマンスカーブの定義
［２−１−１］記憶領域の分割
まず、性能クラスの規定に用いられるパフォーマンスカーブの説明に必要な、ホスト機器２０および記憶デバイス１９による記憶領域の分割について説明する。
【００３３】
ホスト機器２０は、記憶領域２１を例えば１６ｋＢの記録ユニット（ＲＵ）と呼ばれる単位に分け、ＲＵごとに動画データ等の書き込みを行う。すなわち、ＲＵ（書き込み単位領域）は、１回のマルチブロック書き込みコマンドで書き込まれる単位に相当する。
【００３４】
ＲＵは例えばＳＤTMファイルシステムで定義されるクラスタと同じ、またはその整数倍の大きさであると考えればよい。
【００３５】
ＲＵの単位は、３２ｋＢ、６４ｋＢ、１２８ｋＢ等、任意である。ホスト機器２０は、後述のように、動画データ等を記録可能なＲＵの数を数えることにより、残存記録時間を計算することができる。
【００３６】
図３は、ホスト機器２０から見た場合の記憶領域２１の分割の概要、およびメモリカード１９が実際に行う記憶領域２１の分割の概要を示している。図３の左側は、ホスト機器２０が想定している記憶領域２１の分割に対応し、図３の右側は、記憶デバイス１９での実際の記憶領域２１の分割に対応する。
【００３７】
図３に示すように、ホスト機器２０から見た場合、ＲＵ３２が記憶単位であり、アロケーションユニット（ＡＵ）３１が、複数のＲＵ３２の集合として定義される。ＡＵ（管理単位領域）は、管理単位であり、記憶デバイス１９の全ての記憶領域２１をＡＵ寸法ＳAUに分けるものとして規定される。
【００３８】
ＲＵ３２とＡＵ３１との関係は図３に示した、記憶デバイス１９（デバイスコントローラ２２）側から記憶領域２１を見た場合のページ３４とブロック３３の関係に類似している。ページ３４はデバイスコントローラ２２が記憶領域２１に対して書き込みまたは読み出しする際のアクセス単位である。ブロック３３は、複数のページ３４からなり、デバイスコントローラ２２が記憶領域２１を消去する際の単位である。
【００３９】
例えば記憶領域２１として東芝のＮＡＮＤフラッシュTMメモリＴＣ５８５１２ＦＴを使用した場合、ページ３４のサイズは５１２Ｂであり、ブロック３３のサイズは１６ｋＢである（なお、ここでは簡便のため冗長部の容量は無視している）。また、これ以外に、ページサイズが２ｋＢ、４ｋＢなどのＮＡＮＤフラッシュTMメモリを使用することも可能である。
【００４０】
ページ３４とＲＵ３２とは一致する必要はなく、ＲＵ３２はページ３４の整数倍にすることができる。同様に、ＡＵ寸法ＳAUはＲＵ寸法の整数倍である。ＡＵ３１はブロック３３の整数倍にすることができる。以下の説明では、ＲＵ３２、ＡＵ３１を基本単位として説明する。
【００４１】
［２−１−２］パフォーマンスカーブの求め方
ホスト機器２０によりＲＵ単位のデータがメモリ領域２１内のＡの場所からＢの場所まで順次記入される場合を例に取って、パフォーマンスカーブについて、図４を用いて説明する。
【００４２】
典型例としては、ＡからＢまでの領域は、ＡＵ３１に対応する。使用済みのＲＵ３１を含んだＡＵ３１に新規にデータを記入する場合について検討する。図４に示すように、このＡＵ３１の論理アドレスをＬＡとする。このＡＵ３１中の各ＲＵ３２に新規にデータを書き込む場合、実際には、データが書き込まれていた物理ブロックＰＡＡ内の既にデータが書き込まれている（使用済みの）ＲＵ（図中Ｕｓｅｄ）３２のデータを別の物理ブロックＰＡＢ内のＲＵ３２に書き写し、さらに新規に書き込むデータを書き込む作業が必要になる。この作業の終了後に新規に物理ブロックＰＡＢを論理アドレスＬＡに対応付ける。
【００４３】
この作業の実施に際して、当初データが記入されていない（図中Ｆｒｅｅ）ＲＵ３２に新規にデータを書き込む時間は、単純に書き込み時間に対応する。この時間を書き込みパフォーマンスＰｗとする。
【００４４】
一方、既に書き込まれているデータを別のＲＵ３２に書き写す場合、新規の物理ブロックＰＡＢ内のＲＵ３２（例えばＲＵ３２ｂ）にデータを書き込む時間に加え、元のＲＵ３２（例えばＲＵ３２ａ）からデータを読み出す時間がかかる。
【００４５】
さらに、旧物理ブロックＰＡＡに使用済みのＲＵ３２がある場合、それをスキップして空いているＲＵ（例えば図中Ｄａｔａ３の付されたＲＵ）３２に書き込む。また、新規のデータを書き込む前に、使用済みのＲＵ３２のデータの移動先のＲＵ３２（例えばＲＵ３２ｂ）に書き込む必要がある。その使用済みのＲＵのデータの移動処理の間、新規のデータの書き込みは停止される。これらに要する時間をデータの移動パフォーマンスＰｍとする。新規データ記入の合計の所要時間は、書き込み時間の総計と、移動時間の総計の合計時間になる。
【００４６】
以上の説明から平均パフォーマンスＰ（Ｎｕ）を数式化すると［数式１］のようになる。
【００４７】
［数式１］
平均パフォーマンス：Ｐ（Ｎｕ）
＝［Ｓｃ×（Ｎｔ−Ｎｕ）］／［Ｓｃ×（Ｎｔ−Ｎｕ）／Ｐｗ＋Ｓｃ×Ｎｕ／Ｐｍ］
＝［（Ｎｔ−Ｎｕ）×Ｐｍ×Ｐｗ］／［（Ｎｔ−Ｎｕ）×Ｐｍ＋Ｎｕ×Ｐｗ］
ここで、
Ｓｃ：ＲＵの寸法
Ｎｔ：ＡからＢに順次書き込むＲＵ数の合計（ＡＵを構成するＲＵ数）
Ｎｕ：ＡからＢの間の使用済みＲＵ数（ＡＵ中の使用済みＲＵ数）
Ｐｗ：書き込みパフォーマンス（ＭＢ／ｓｅｃ単位）
Ｐｍ：移動パフォーマンス（ＭＢ／ｓｅｃ単位）
である。
【００４８】
この式は、書き込みパフォーマンスＰｗと移動パフォーマンスＰｍによりパフォーマンスが決定されることを前提にしている。
【００４９】
書き込みパフォーマンスＰｗは、メモリカード１９（フラッシュメモリ（記憶領域２１））のプログラム時間によって変わる。また、書き込みパフォーマンスＰｗは、あるＡＵ３１内の全てのＲＵ３２が未使用の状態で、ＡＵ３１中の全ＲＵ３２に連続書き込みした場合の、パフォーマンスの平均の最小値として定義される。
【００５０】
なお、書き込みパフォーマンスは、フロントエンド側の処理時間によっても変動する。そして、フロントエンド処理時間は、ＳＤTMメモリカードを例に取れば、ＳＤクロック周波数（SD clock frequency）に依存する。以下、このことについて説明する。図５は、マルチブロック書き込みコマンドを用いたときの書き込み動作タイミングの一例を示している。書き込み動作の第１段階では、バックエンド側は、フロントエンド側から書き込みデータが到着するまで待つ。第２段階ではバックエンド側、フロントエンド側とも動作する。したがって、マルチブロック書き込み時の書き込み時間は、フロントエンド、バックエンドに分けて考察する必要がある。なお、第２段階では、バックエンド側の書き込み時間がフロントエンド側のそれよりも主要となる。
【００５１】
バックエンド書き込み時間ｔWBはフラッシュメモリ（記憶領域２１）への書き込みが開始されてから、全ての書き込みが完了するまでの時間の合計になる。
【００５２】
他方のフロントエンド処理時間ｔWFは、マルチブロック書き込みコマンドの開始からフラッシュメモリの書き込み開始までの合計時間になる。また、上記のように、ＳＤTMメモリカードを例に取れば、フロントエンド処理時間ｔWFはＳＤクロック周波数に依存する。したがって、フロントエンド処理時間ｔWFは、係数ＣSDとＳＤクロック周期ｆSDによって表記できる。このため、ＳＤTMメモリカードでは、ｔWFを［数式２］のように表記できる。
【００５３】
［数式２］
フロントエンド処理時間：ｔWF＝ＣSD／ｆSD
また、１つのＡＵ３１に記録する場合を考えると、フロントエンド処理時間ｔWFは書き込みコマンドの数に比例する。書き込みコマンドの数は、上述したＲＵ３２の数ＮRUと等価である。ＮRUが多くなると、すなわちＲＵ寸法ＳRUが小さくなると、書き込み効率は低下する。
【００５４】
移動パフォーマンスＰｍは、最低移動パフォーマンスの平均の最低値として定義される。これは連続したＲＵ３２を移動操作して１つの完全なＡＵ３１とするときの最低値として計算できる。移動操作の時間はバックエンド側で定義され、ＳＤクロック周波数には左右されない。もしもメモリカード１９が必ずしもＲＵ３２を移動する必要がないときには、移動パフォーマンスＰｍは無限大と考えてよい。これは「１／Ｐｍ＝０」を意味する。
【００５５】
また、移動パフォーマンスＰｍはフラッシュメモリのプログラム時間に加え、後述の読み出し時間、およびデータ移動方法にも依存して変化する。なお、データ移動は、メモリカード１９内部で処理されるものであるため、ホスト機器２０が直接制御するものではない。
【００５６】
読み出し性能については、次の２つが定義される。
【００５７】
１）    データに対する読み出しパフォーマンス
データに対する読み出しパフォーマンス（読み出しパフォーマンスと称してもよい）Ｐｒは、ＲＵ３２単位の読み出しをランダムに行った場合の読み出しパフォーマンスの平均値の最低値として定義される。平均は、ＲＵ３２単位の読み出しを２５６回ランダムに行うことで計算することができる。また、各ブロック３３に対するＥＣＣ（Error Correcting Code）訂正に要する時間は最悪ケースを考慮しておくべきである。読み出しパフォーマンスＰｒは書き込みパフォーマンスＰｗよりも大きいか、少なくとも同等である必要がある。
【００５８】
２）    ファイルシステム（ＦＡＴ）読み出し時間
ＦＡＴ（ファイルアロケーションテーブル）等のファイルシステムの読み出し時間ＴFR(4kB)は、４ｋＢのＦＡＴを読む最大時間として定義される。これは、書き込みの間にＦＡＴ読み出しが可能であるという条件を満足していることが必要である。リアルタイム記録の場合を考慮すれば、ホスト機器２０は、ＲＵ書き込みの相互間にＦＡＴ読み出しを行うしかないからである。また、各ブロック３３に対するＥＣＣ訂正時間は最悪ケースを考慮しておくべきである。ファイルシステム寸法（ＦＲ寸法）ＳFRに対するＦＡＴ読み出し時間はシール関数（ＣＥＩＬ関数）を用いて、以下のように記載できる。
【００５９】
ファイルシステム寸法ＳFR［ｋＢ］に対するＦＡＴ読み出し時間：ＴFR（ＳFR）
【数１】
2006178923.tif 000003
【００６０】
図６は、［数式１］に従って求められた、メモリカード１９のパフォーマンスを示す。図６は、ＡＵ３１を構成するＲＵ３２の数Ｎｔを１６としたときのパフォーマンスである。
【００６１】
図６に示すように、使用済みＲＵ比ｒ（横軸）ごとのパフォーマンス（縦軸）を求め、各使用済みＲＵ比ｒのパフォーマンスを結ぶとパフォーマンスカーブが得られる。パフォーマンスカーブはホスト機器メーカーにとって重要な情報になる。
【００６２】
パフォーマンスカーブは書き込みパフォーマンスＰｗと移動パフォーマンスＰｍで規定される。書き込みパフォーマンスＰｗは使用済みＲＵ比ｒ＝０の場合、すなわちフルパフォーマンスと等価である。
【００６３】
ここで、使用済みＲＵ比ｒは、ＡＵ３１中のＲＵ３２の数Ｎｔと、使用済みＲＵ３２の数Ｎｕを用いると、
ｒ＝Ｎｕ／Ｎｔ
と記載できる。
【００６４】
これは、
Ｎｕ＝ｒ×Ｎｔ
とも記載できる。
【００６５】
使用済みＲＵ比ｒは０から１の範囲で可変である。ｒ＝０はすべてのＲＵ３２が未使用であることを意味し、ｒ＝１はすべてのＲＵ３２が使用済みであること、すなわちパフォーマンスが０であることを意味する。言い換えれば、Ｐ（１）＝０である。
【００６６】
このことから、いかなるパフォーマンスカーブも点（１，０）を通ることがわかる。［数式１］をｒを使って書き直すと、［数式３］となる。
【００６７】
［数式３］
平均パフォーマンスカーブ：Ｐ（ｒ）
＝［（１−ｒ）×Ｐｗ×Ｐｍ］／［ｒ×Ｐｗ＋（１−ｒ）×Ｐｍ］
ただし、０≦ｒ≦１である。この式を利用してプロットされたのが図６である。
【００６８】
［２−１−３］記憶エリアの位置とパフォーマンス精度
データを書き込むＲＵ３２の開始アドレスが記憶領域２１のブロック３３の境界でない場合、書き込み開始位置がブロック３３の境界と一致するように書き込み済みのデータを移動する時間が必要である。このため、このような場合、実際のパフォーマンスは期待パフォーマンスよりも劣る。したがって、正確なパフォーマンスを測定するためには、ＡとＢのアドレスが消去単位（ブロック３３）の境界と一致していることが要件となる。アロケーションユニットを規定するのはこの理由からである。
【００６９】
［２−２］記録中のファイルシステムの更新に関するパラメータ
ファイルシステムの更新が書き込みシーケンスに挿入されることによって、書き込み時の総合的な（実際に得られる）パフォーマンスは低下する。このため、ホスト機器２０が、後述のようにメモリカード１９のパフォーマンスを計算する際、ファイルシステムの更新に関するパラメータを必要とする。そして、ホスト機器２０は、このパラメータを用いて、ファイルシステムの更新が書き込みシーケンスに挿入されることによる、実際のパフォーマンスの低下を計算することができる。
【００７０】
図７はリアルタイム記録中のファイルシステムの更新の典型的なシーケンスを示している。以下、ファイルシステムの典型例としてＦＡＴが用いられた場合を例に取り説明する。
【００７１】
ファイルシステム（ＦＡＴ）の更新はどのＲＵ３２に対する書き込みの間にも起こり得る。ＦＡＴの更新は定期的に行われ、あるファイルシステム更新と次のファイルシステム更新の間に書き込まれるＲＵ３２の数はファイルシステム更新間隔ＴFUによって規定される。このファイルシステム更新の間に書き込まれるＲＵ３２の数は、Ｎｄである。
【００７２】
ＦＡＴ書き込みサイクルは３つの書き込み動作からなる。ＦＡＴ１およびＦＡＴ２は１のマルチブロック書き込みコマンドを用いたＦＡＴ１およびＦＡＴ２それぞれへのＦＡＴ情報書き込みである。ファイルシステム（ＦＡＴ）の書き込みは任意のバイトアドレスから開始可能であり、１６ｋＢまでの任意の長さまでの書き込みとして定義可能である。
【００７３】
図中ＤＩＲはディレクトリエントリ（Directry Entry）であり、これは記録に先立って生成され、ディレクトリエントリの変更した部分の５１２Ｂのみ書き込まれる。ファイルシステム書き込み時間ＴFWは、ファイルシステム書き込みサイクルの合計時間、すなわち、上記のＦＡＴ１、ＦＡＴ２、ＤＩＲの合計書き込み時間として規定される。ファイルシステム書き込み時間ＴFWはデバイスコントローラ２２の仕様によって変わる。
【００７４】
［２−２−１］ファイルシステム書き込み時間ＴFWの平均の測定条件
ファイルシステム書き込み時間ＴFWは、数個の測定値の平均によって得られた値として定義される。［数式４］は平均ファイルシステム書き込み時間ＴFW(ave.)を規定する式である。［数式４］から分かるように、平均ファイルシステム書き込み時間ＴFW(ave.)として、例えば、任意の８回のファイルシステム書き込みサイクルの平均値の最悪値を用いられる。
【００７５】
［数式４］
平均ファイルシステム書き込み時間：（ＴFW(ave.)）
＝［ｍａｘ（ＴFW(１)＋ＴFW(２)＋・・・＋ＴFW(７)＋ＴFW(８)）］／８
［２−２−２］最大ファイルシステム書き込み時間
後述のように、ホスト機器２０は、ファイルシステムの更新の間に、ホストバッファ２７によってデータを一時保存する。このため、ホストバッファ２７のサイズを決める時には、最大ファイルシステム更新時間を考慮する必要がある。ホストバッファ２７のサイズに対する要求に関しては、［４−５］でさらに説明する。
【００７６】
［数式５］はファイルシステム（ＦＡＴ）書き込み時間の最悪値を規定する式である。
【００７７】
［数式５］
ファイルシステム（ＦＡＴ）書き込み時間の最悪値：（ＴFW(max)）≦７５０［ｍｓ］
［２−２−３］データ書き込みとファイルシステム書き込みの独立
ファイルシステム書き込みは、リアルタイム記録中の任意のＲＵ間あるいはＡＵ間に挿入可能である。デバイスコントローラ２２は、ファイルシステム書き込みが、データの書き込みパフォーマンスＰｗそのものに影響しないように制御できる必要がある。
【００７８】
書き込みパフォーマンスＰｗへのファイルシステム書き込みの影響を排除するには、例えば、ファイルシステムの書き込みにより中断されたデータ書き込みの再開時の書き込みを、中断前の最後に書き込まれた物理領域の続きの領域に行うことにより実現できる。
【００７９】
これを実現するために、例えば、ファイルシステム書き込み用のキャッシュブロックを設け、デバイスコントローラ２２が、以下に示す制御を行うことができる。図８（ａ）に示すように、記憶領域２１は、通常物理ブロック領域とキャッシュブロックとを含んでいる。図８（ａ）に示すように、通常物理ブロックに連続的なデータをシーケンシャルに書き込んでいる最中に、ファイルシステムの書き込み要求が来た場合、図８（ｂ）に示すように、ファイル管理情報は、キャッシュブロックの空き領域（ページ３４）に順次書き込まれる。この後、図８（ｃ）に示すように、中断前の最後に書き込まれた領域の続きの領域（ページ３４）からデータの書き込みを再開する。
【００８０】
従来のようにデータ書き込み再開時の書き込み位置を再開前の最後に書き込まれた物理領域の続きではない物理領域（例えば、新たなブロック（ＢＬＯＣＫ２等）内の領域）とすると、引越し書き込みが発生し、書き込みパフォーマンスＰｗそのものがファイルシステム書き込みにより変動する。
【００８１】
なお、通常のデータとファイル管理情報との選別は、例えば、アドレス、サイズ、シーケンスを調べることによって実現できる。
【００８２】
［３］メモリカードの分類
メモリカード１９のパフォーマンスとホスト機器２０が要求する性能との整合を取ることを容易にするために、メモリカード１９は、カードパフォーマンスに応じて複数のクラス（性能クラス）に分類される。各クラスは、例えば、上記のパフォーマンスカーブおよびファイルシステム書き込み時間ＴFW等の性能パラメータに応じて分類される。そして、クラスの情報は、メモリカード１９の性能識別コード２４として、デバイスコントローラにおいて保持される。
【００８３】
メモリカード１９は、目視によって認識可能な方法で、自身のクラスを表示する。図９は、クラス表示を示すラベルを例示している。この図は、記憶デバイス１９が、ＳＤTMメモリカードである場合を例示している。
【００８４】
例えば、図９に示すように、メモリカード１９は、記憶領域２１、デバイスコントローラ２２の少なくとも一部を覆う外囲部７１を有し、外囲部７１上にクラスを表示するラベル７２を有する。
【００８５】
また、ホスト機器２０にも、クラスが設定されている。この場合、同じクラスのメモリカード１９を用いると最大性能が出せることを意味する。下位クラスのメモリカード１９を用いた場合でも最大性能は出せないが記録は可能である。ホストのクラス表示は必須ではないが、図９では、ホスト機器２０の外囲部７３に、クラスを表示するラベル７４が設けられる例を示す。
【００８６】
［３−１］アプリケーションからの要求
ホスト機器２０のアプリケーションは、アプリケーションが用いるメモリカード１９に高性能のパフォーマンスを求めている。以下に代表例を記す。
【００８７】
（１）デジタルビデオ録画
ＭＰＥＧ２やＭｏｔｉｏｎＪＰＥＧではメモリカード１９への直接記録が求められている。標準的なテレビ画像の品質、解像度を得るには、約２ＭＢ／ｓｅｃカード性能が求められる。また、高品質の画像記録には、約４ＭＢ／ｓｅｃのカード性能が求められる。
【００８８】
（２）連写機能を有するデジタルスチルカメラ
デジタルスチルカメラメーカーは連写機能を実現するために高性能のメモリカード１９を必要としている。デジタルスチルカメラメーカーは使用者に可能な連写レートを明示する場合は、カードパフォーマンスとホスト機器２０の制御方法から計算することができる。
【００８９】
［３−２］クラス分け
図１０は、パフォーマンスカーブとクラスとの関係を示している。図１０は、２本のパフォーマンスカーブで区分した場合の３つの領域を示す。図１０に示すように、クラス２およびクラス４のパフォーマンスカーブで、縦軸Ｐ（ｒ）と横軸ｒからなる領域は３領域に区分されている。なお。縦軸Ｐ（ｒ）はパフォーマンスを、横軸ｒは使用済みＲＵ比を示している。
【００９０】
従来のカードは、この３領域のうち、もっとも原点に近い領域、クラス０（図中Class 0）に属する。図中では最も性能の劣った区分である。
【００９１】
クラス１のパフォーマンスカーブはクラス２カードの最低性能を意味する。このカーブは２つのパラメータＰｗ１（クラス２パフォーマンスカーブとＹ軸の交点）とＰｍ１で規定される。
【００９２】
同様に、クラス４のパフォーマンスカーブはクラス４カードの最低性能を意味する。このカーブは２つのパラメータＰｗ２（クラス４パフォーマンスカーブとＹ軸の交点）とＰｍ２で規定される。
【００９３】
アプリケーションの要求がさらに高まればさらに高レベルのクラス８、クラス１０のパフォーマンスカーブを規定する必要が出てくるが、基本的な考え方は変更する必要はない。クラス８のパフォーマンスカーブが定義された場合、このクラス８のパフォーマンスカーブよりも性能が低く、クラス６のパフォーマンスカーブ以上の性能の領域がクラス６の領域となり、クラス８のパフォーマンスカーブ以上の性能の領域がクラス８の領域となる。
【００９４】
図１１は、各クラスに要求される特性の例を示している。クラス２（ＣＬＡＳＳ２）カード、クラス４（ＣＬＡＳＳ４）、クラス６（ＣＬＡＳＳ６）、カードで必要とされるパフォーマンスパラメータの例は、下記および図１１のようになっている。
【００９５】
ＣＬＡＳＳ２：Ｐｗ＝２［MB/sec］、Ｐｍ＝１［MB/sec］、Ｐｒ＝２［MB/sec］
ＣＬＡＳＳ４：Ｐｗ＝４［MB/sec］、Ｐｍ＝２［MB/sec］、Ｐｒ＝４［MB/sec］
ＣＬＡＳＳ６：Ｐｗ＝６［MB/sec］、Ｐｍ＝３［MB/sec］、Ｐｒ＝６［MB/sec］
また、平均ファイルシステム書き込み時間ＴFW(ave.)、最大ファイルシステム書き込み時間ＴFW(max)、ファイルシステム読み出し時間ＴFR(4kB)は、各クラスとも同じで、それぞれ、例えば１００［ｍｓ］、７５０［ｍｓ］、４［ｍｓ］である。
【００９６】
図１１の例によれば、クラス２のカードのパフォーマンスカーブは、Ｙ軸と２［ＭＢ／ｓｅｃ］の点で交わり、Ｘ軸と１の点で交わり、途中で原点側によった曲線になる。その曲線以上の性能の領域で、後述のクラス４カードのパフォーマンスカーブまでの第１象限領域がクラス２カードの領域になる。
【００９７】
同様にクラス４カードのパフォーマンスカーブはＹ軸と４［ＭＢ／ｓｅｃ］の点で交わり、Ｘ軸と１の点で交わり、クラス２カードのパフォーマンスカーブよりもさらに原点から離れた領域に存在する。このクラス４カードのパフォーマンスカーブの原点と逆の側の領域がクラス４カードの領域になる。
【００９８】
同様に、Ｙ軸と６［ＭＢ／ｓｅｃ］の点で交わる、クラス６のパフォーマンスカーブが定義できる。
【００９９】
図１１に例示した各クラスのカード要求特性の測定条件の例を図１２に示す。上記のように、書き込みパフォーマンスＰｗは、フロントエンド処理時間ｔWFおよびＲＵ寸法ＳRUによって影響され、フロントエンド処理時間ｔWFは、ＳＤクロック周波数ｆSDによって影響される。そして、ＳＤクロック周波数ｆSDとＲＵ寸法ＳRUを図１２に示す値に設定して、各クラスの要求特性を測定条件している。なお、パフォーマンスをより高くするためには、ホストは大きなＲＵ寸法でアクセスすることが望ましい。
【０１００】
［３−３］容量とＡＵ最大寸法との関係
ブロックサイズに関係してホスト機器２０から別のパラメータが要求される。メモリカード１９の物理規格によりＡＵ寸法ＳAUを送出するレジスタを規定することによって、ホスト機器２０に対して、メモリカード１９にとって最適なＡＵ寸法ＳAUを明示することができる。この結果、ホスト機器２０は、ＡＵ３１を効率的に利用できる。なお、後述のように、ＡＵ３１の最大値によって、ホストバッファ２７の必要なサイズが規定される。
【０１０１】
メモリカード１９の容量に応じた最大ＡＵ寸法の例をあげる。
【０１０２】
カード容量／最大ＡＵ寸法＝１６乃至１２８ＭＢ／１２８ｋＢ、２５６ＭＢ／２５６ｋＢ、５１２ＭＢ／５１２ｋＢ、１ＧＢ／１ＭＢ、２ＧＢ／２ＭＢ、４乃至３２ＧＢ／４ＭＢ
［３−４］読み出しパフォーマンス要求
クラス２、クラス４、クラス６のカードはＲＵ３２単位の読み出しを行った場合、それぞれ最低２［ＭＢ／ｓｅｃ］、４［ＭＢ／ｓｅｃ］、６［ＭＢ／ｓｅｃ］の読み出し性能が規定されている。ただし、これはホスト機器からの読み出し能力を保証するものではない。上記にはホスト機器の環境を考慮していないからである。
【０１０３】
［３−５］カードの物理規格を規定する要件
以上述べたクラスおよび各種のパラメータにより規定されるパフォーマンスを規格化する際、このパフォーマンス規格が、現行規格と将来規格を包含する必要がある。これらの規格に加えて将来のメモリカードも包含できる必要がある。このため、たとえば現在のＳＤTMメモリカードでは、書き込みパフォーマンスＰｗ、移動パフォーマンスＰｍ、フィルシステム書き込み時間ＴFW等のパラメータは物理規格１．０１、１．１０に合うように規定される必要がある。
【０１０４】
あるクラス（例えば、将来定義されるであろう高クラス）のメモリカード１９は、このクラスを定義するのに必要な条件（例えば、ＳＤクロック周波数等）の制約から、ある物理規格（例えば、物理規格１．０１）に則って製造することができない。このようなクラスのメモリカード１９は、より高度の物理規格に則って製造される必要がある。例えば、クラス６カードは、ハイスピードモード（High Speed Mode）を必要とするため、物理規格１．０１では製造することができない。物理規格１．１０以上である必要がある。
【０１０５】
［３−６］クラスおよび各種パラメータ等のデータの保持
新規規格では、例えば、クラス、ＡＵ寸法ＳAU、移動パフォーマンスＰｍ、係数ＣSDをメモリカードのステータス情報としてレジスタに保持することができる。より具体的には、例えば、クラスは、性能識別コードレジスタ２４に格納されている。ＡＵ寸法ＳAU、移動パフォーマンスＰｍ、係数ＣSDは、性能パラメータレジスタ２５に格納されている。
【０１０６】
このように、クラスおよび各種パラメータを、メモリカード１９が保持することによって、クラスを識別可能なホスト機器２０が、パフォーマンスをさらに正確に計算することを可能とし、さらに効率よくメモリカード１９を利用できる。
【０１０７】
図１３に、ＳＤTMメモリカードの場合の、レジスタ情報のビット幅の例を記載する。ＳＤTMメモリカードの場合、ＡＵ寸法ＳAU、移動パフォーマンスＰｍ、係数ＣSD、を、例えば、レジスタ内のＳＤカードステータスなどに規定することができる。これらのデータは別に用意されているレジスタに記入しても良い。本性能規格をサポートしないカードでは、これらのフィールドを０に設定しておけばよい。そのようなメモリカードはクラス０カードと認識される。
【０１０８】
また、クラスの情報は、従来の記憶デバイスの、例えば固定値が読み出される(例えば０)ところに定義されることができる。これにより、本実施形態に対応できていない従来デバイスを性能分類の対象外であるクラス０カードと識別することもできる。
【０１０９】
なお、書き込みパフォーマンスＰｗは、各クラスに応じて決定されている（クラスが要求する書き込みパフォーマンスが決定されている）。このため、ホスト機器２０は、クラスを読み取ることにより、書き込みパフォーマンスＰｗを知得することができる。
【０１１０】
性能識別コードレジスタ２４および性能パラメータレジスタ２５内の情報は、例えば、ホスト機器２０からの所定のコマンドを受けた際に、ホスト機器２０に対して出力するようにすることができる。
【０１１１】
性能識別コードレジスタ２４および性能パラメータレジスタ２５に設定される値は、製造時にあらかじめ計算された値を書き込むことも、メモリカード１９自体が初期化時に決定することもできる。
【０１１２】
また、現在のＳＤTMメモリカードは、具体的な性能パラメータを示す手段（専用レジスタ）を持たないので、プログラム可能なレジスタのリザーブ領域に性能コードと性能パラメータを追加することにより、ホストは性能コードを見ればカードの性能が分かるようにできる。これにより現在のカードコントローラを変更することなく流用できる。
【０１１３】
［４］リアルタイム記録を行う際のホスト機器の動作シーケンスおよび要件
［４−１］リアルタイム記録を行う際のホスト機器の動作シーケンス
リアルタイム記録を行う際のホスト機器２０は、上記のパフォーマンスカーブ、クラス、各種パラメータを用いて以下に述べるシーケンスによって計算を行いながら、書き込みを行うことができる。そして、ホスト機器２０は、リアルタイム記録の際に、以下に述べるシーケンスを取ることが望ましい。
【０１１４】
（１）ホスト機器２０に搭載されているアプリケーションから要求されるパフォーマンス（以下、アプリケーションパフォーマンス）Ｐａを決定する。
【０１１５】
（２）適当な、ファイルシステム更新間の書き込みＲＵ数Ｎｄを選ぶ。
【０１１６】
（３）ファイルシステム更新を考慮して、アプリケーションパフォーマンスＰａを実現するために必要なカードパフォーマンスＰｃを決定する。
【０１１７】
（４）最大使用済みＲＵ比ｒ（Ｐｃ）を決定する。
【０１１８】
（５）各ＡＵ３１をＡＵfastとＡＵslowに区分する。
【０１１９】
（６）記録可能時間Ｔrecを推定する。
【０１２０】
（７）ファイルシステム更新間の書き込みＲＵ数Ｎｄを調整する。ファイルシステム更新間の書き込みＲＵ数Ｎｄが大きければパフォーマンスは改善される。
【０１２１】
（８）計算の結果、充分なパフォーマンス、充分な記録可能時間が得られなければ、カードの消去が必要になる。
【０１２２】
以下、動作（１）乃至（８）を行うための具体的な方法およびホスト機器２０の要件について説明する。
【０１２３】
［４−２］ファイルシステム更新に伴うパフォーマンス計算方法
リアルタイム記録時の典型的なファイルシステム（ＦＡＴ）更新サイクルのシーケンスは、図７に示した通りである。ホスト機器２０は、ファイルシステム更新時に、このシーケンスを取ることが望ましい。
【０１２４】
［４−２−１］ファイルシステム更新を考慮したカードパフォーマンス条件
ホスト機器２０は、Ｐａを満足するために必要なカードパフォーマンスＰｃを、アプリケーションパフォーマンスＰａ、および平均ファイルシステム書き込み時間ＴFWから決定する。上記のように、ファイルシステム書き込みシーケンスが挿入されることにより、書き込み時の総合的なパフォーマンスは低下する。よって、ホスト機器２０は、一般に、アプリケーションパフォーマンスＰａよりも高いカードパフォーマンスＰｃを有するカードを必要とする。
【０１２５】
また、ホスト機器２０によっては、アプリケーションの種類に応じて数種類の異なったビットレートのモードに対応していることがある。ホスト機器２０は、この場合、利用者が選んだモードに応じて、アプリケーションパフォーマンスＰａを決める。
【０１２６】
なお、ホスト機器２０は、アプリケーションパフォーマンスＰａに合わないメモリカード１９を拒絶するのではなく、メモリカード１９のクラスに合わせて、ホスト機器２０のパフォーマンスを整合するようにすることが望ましい。
【０１２７】
例えば、あるメモリカード１９のカードパフォーマンスがアプリケーションパフォーマンスＰａに対して不足しているときは、ホスト機器２０は、より小さなアプリケーションパフォーマンスＰａを要求するモードに切り替えることが望ましい。例えば、データの圧縮率を上げたり、画像の解像度を下げたり、フレームレートを下げたりすることにより、ホスト機器２０は、より低いアプリケーションパフォーマンスＰａに適合することができる。この手法を実現できるように、ホスト機器２０はパフォーマンスの低いメモリカード１９を利用可能とするために数種類の書き込みモードを持つことが望ましい。
【０１２８】
また、ホスト機器２０が、異なる記録性能を持つ複数のモードを持つことにより、異常事態が発生した場合でもより低速なモードにすることで記録を可能にすることができる。これは、例えば、クラス０カードの場合、ホスト機器２０は、カード性能がわからないため、実際にあるモードで試してみなければ、そのモードが動作するかわからないためである。
【０１２９】
アプリケーションパフォーマンスＰａ、Ｐａを満足するために必要なカードパフォーマンス（以下、カードパフォーマンス）Ｐｃを［数式６］、［数式７］にそれぞれ示す。
【０１３０】
［数式６］
アプリケーションが要求するパフォーマンス：Ｐａ
＝（Ｓｃ×Ｎｄ）／（Ｓｃ×Ｎｄ／Ｐｃ＋ＴFW）
［数式７］
Ｐａを満足するために必要なカードパフォーマンス：Ｐｃ
＝（Ｓｃ×Ｎｄ×Ｐａ）／（Ｓｃ×Ｎｄ−Ｐａ×ＴFW）
カードパフォーマンスＰｃは、ファイルシステム更新間の書き込みＲＵ数Ｎｄによって変化し、図７からも分かるように、ファイルシステム更新間の書き込みＲＵ数Ｎｄは、ファイルシステム更新の頻度によって変化する。よって、カードパフォーマンスＰｃは、ファイルシステムの更新の頻度によって影響される。ファイルシステムの更新の頻度の決定の仕方は、次の［４−２−２］で述べる。
【０１３１】
［４−２−２］ファイルシステム更新期間の条件
ファイルシステム（ＦＡＴ）更新期間（ファイルシステム更新から次のファイルシステム更新までの期間）は、ファイルシステム書き込みシーケンスを各データ転送の間に挿入することにより決定される。したがって、ファイルシステム更新期間は、書き込み速度に依存するが、期間の精度は重要ではない。ホスト機器２０がファイルシステム更新期間を簡単に計算できるように、簡単な方法をとってよい。
【０１３２】
ファイルシステム更新期間の算出式を［数式８］に示す。
【０１３３】
［数式８］
ファイルシステム更新期間：ＴPF
＝Ｓｃ×Ｎｄ／Ｐａ
＝Ｓｃ×Ｎｄ／Ｐｃ＋ＴFW(ave.)
ホスト機器２０は、ファイルシステム書き込みによるカードパフォーマンスの低下の程度を考慮して、ファイルシステム更新の間に書き込まれるＲＵ数Ｎｄを適切な値に調整してよい。ただし、ファイルシステム更新期間ＴPFは１秒以上が望ましい。
【０１３４】
より大きなＲＵ数Ｎｄが選択されたとき、カードパフォーマンスＰｃはアプリケーションパフォーマンスＰａに近づく。こうすることにより、低性能のメモリカード１９でもアプリケーションパフォーマンスＰａを満足しうるようになり得る。
【０１３５】
ファイルシステム更新期間の決め方の別の方法として、ファイルシステム更新間隔ＴFU（ＴPFと等価なもの）をホスト機器２０のタイマーを用いて決めることができる。この場合、ＴFUは一定である。ファイルシステム更新はＲＵ書き込みの間に挿入される。このため、ファイルシステム更新間の書き込みＲＵ数Ｎｄは、ファイルシステム更新間隔ＴFUによって変動する。
【０１３６】
この場合、ファイルシステム更新間隔ＴFUの間のデータ量は、[数式９]のようになる。
【０１３７】
［数式９］
ＴFUの間のデータ量：Ｐａ×ＴFU
＝Ｐｃ×（ＴFU−ＴFW(ave.)）
［数式９］を変形することにより、カードパフォーマンスＰｃが、[数式１０]のように表現される。
【０１３８】
［数式１０］
Ｐａを満足するためのカードパフォーマンス：Ｐｃ
＝（Ｐａ×ＴFU）／（ＴFU−ＴFW(ave.)）
［４−３］アロケーションユニット（ＡＵ）の分類
ホスト機器２０は、どのＡＵ３１がリアルタイム記録に使用可能かを判定する。すなわち、各ＡＵ３１が、求められたカードパフォーマンスＰｃを満たすかを判定する。各ＡＵ３１のパフォーマンスは、図６から分かるように、使用済みＲＵ比ｒによって変化するので、各ＡＵ３１が、使用済みＲＵ比ｒを閾値として用いて判定される。
【０１３９】
［４−３−１］最大使用済みＲＵ比
図４に示したように、書き込み開始位置Ａおよび終了位置ＢがそれぞれＡＵ３１の境界と一致しているとすれば、［数式３］によりＡＵ３１のパフォーマンスの計算を求めることができる。
【０１４０】
そして、カードパフォーマンスＰｃから、最大使用済みＲＵ比ｒ（Ｐｃ）が導ける。すなわち、最大使用済みＲＵ比ｒ（Ｐｃ）は、［数式３］の逆関数として求められる。
【０１４１】
最大使用済みＲＵ比ｒ（Ｐｃ）以下の使用済みＲＵ比ｒを有するＡＵ３１は、カードパフォーマンスＰｃを満たすＡＵである。そして、使用済みＲＵ比ｒが小さいほどリアルタイム記録に適したＡＵであり、最大使用済みＲＵ比ｒ（Ｐｃ）を境界として、後述のように、ＡＵ３１がＡＵfastとＡＵslowに分類される。
【０１４２】
［数式１１］に最大使用済みＲＵ比ｒ（Ｐｃ）の計算式を示す。
【０１４３】
［数式１１］
最大使用済みＲＵ比：ｒ（Ｐｃ）
＝［（Ｐｗ−Ｐｃ）×Ｐｍ］／［（Ｐｗ−Ｐｍ）×Ｐｃ＋Ｐｗ×Ｐｍ］
［４−３−２］２つのカテゴリへのＡＵの分類
ホスト機器２０は、ＡＵ３１を２つのカテゴリに分類する。ひとつはＡＵfast（適合管理単位領域）であり、これはカードパフォーマンスＰｃでリアルタイム記録を行うのに充分対応できる速さを有する。他方はＡＵslow（不適管理単位領域）であり、これはメモリ領域が断片化し過ぎているためにリアルタイム記録に適さないものである。
【０１４４】
ホスト機器２０は、ＡＵ３１ごとに使用済みＲＵ数Ｎｕを数え、使用済みＲＵ数Ｎｕから使用済みＲＵ比ｒを計算する。ＡＵfastかＡＵslowかは［数式１２］により判定できる。
【０１４５】
［数式１２］
Ｎｕ／Ｎｔ＜ｒ（Ｐｃ）であればＡＵはＡＵfast
Ｎｕ／Ｎｔ≧ｒ（Ｐｃ）であればＡＵはＡＵslow
すなわち、（使用済みＲＵ数Ｎｕ）／（ＡＵ中の全ＲＵ数Ｎｔ）が最大使用済みＲＵ比ｒ（Ｐｃ）未満のときはＡＵはＡＵfastに分類され、最大使用済みＲＵ比ｒ（Ｐｃ）以上のときはＡＵslowに分類される。
【０１４６】
図１４は、記憶領域２１におけるＡＵ３１の割り当てを示しており、上記で説明したＡＵ３１の２種類の記憶領域２１内での分布の一例を示している。先頭のＡＵ３１は、ファイルシステムを含むため、リアルタイム記録には適さない領域であり、ＡＵslowに割り当てられる。また、ディレクトリエントリはデータを記録するＡＵ３１と同じＡＵ３１に作成してはならない。
【０１４７】
ＡＵ１およびＡＵ４は、ファイルシステムを含むものではないが、（使用済みＲＵ数Ｎｕ）／（ＡＵ中の全ＲＵ数Ｎｔ）が最大使用済みＲＵ比ｒ（Ｐｃ）以上となっているため断片化していると判断され、ＡＵslowと分類されている。
【０１４８】
［４−４］記録可能時間
ホスト機器２０は、リアルタイム記録が可能な時間を［数式１３］により計算できる。［数式１３］において、Ｎｒは、ＡＵfastと判定された全てのＡＵ３１内の書き込み可能なＲＵ３２の数Ｎｒである。充分な記録可能時間が準備できないときは、ホスト機器２０は、例えばユーザに記録したデータを別のところに移動するように指示するか、メモリカード１９を再フォーマットするように指示する必要がある。
【０１４９】
［数式１３］
記録可能時間：ＴREC
＝Ｓｃ×Ｎｒ／Ｐａ
または、ホスト機器２０は、ファイルシステム更新間の書き込みＲＵ数Ｎｄを大きくした場合、すなわち、ファイルシステム更新期間ＴPFを大きくした場合、記録時間を再度計算する。ファイルシステム更新間の書き込みＲＵ数Ｎｄを大きくすることにより、パフォーマンスが改善されるからである。すなわち、最大使用済みＲＵ比ｒ（Ｐｃ）の値が大きくなり、ＡＵfastの数が増えるため、記録時間が増加する。
【０１５０】
［４−５］ホスト機器のバッファに必要とされる要件
ホストバッファ２７は、データを一時的に保存するために十分な大きさを有する必要がある。ホストバッファ２７には下記の要件が求められる。
【０１５１】
［４−５−１］ホスト機器バッファの寸法要件
ホストバッファ２７は、以下に示す要求を満たす大きさを有している必要がある。
【０１５２】
（１）ファイルシステム（ＦＡＴ）更新に応じた要求
ホスト機器２０がファイルシステムを更新するとき、ホストバッファ２７は、ファイルシステム書き込み中に本来書き込むべきデータを一時的に保存するために用いられる。このため、大きなバッファの大きさが必要とされる。上記のファイルシステム書き込み時間の最悪値ＴFW(max)として規定される。ファイルシステム書き込み時間の最悪値ＴFW(max)は、例えば、［数式５］に示すように、７５０［ｍｓ］である。なお、バッファの大きさは、一般的に、一定時間の記録データを保存可能な領域として記録時間に換算して記述される。
【０１５３】
（２）誤り（エラー）訂正に応じた要求
ホストバッファ２７は、書き込みデータの誤りを訂正しているときの遅延を補完するときにも用いられる。書き込みの誤りが発生したとき、メモリカード１９はＣＲＣステータスを返さないか、エラーを表示してマルチブロック書き込みを停止する。ホストバッファ２７は、誤りが発生した場合に再書き込みを行うことができるように、書き込みが完了するまでデータを保持する必要がある。
【０１５４】
エラーが発生してもホスト機器２０がリアルタイム記録を継続できるようにするため、ホストバッファ２７は、例えば、２５０［ｍｓ］分の大きさを有することが必要である。これは、メモリカード１９の書き込み完了時間の最大値として２５０［ｍｓ］が規定されていることに対応している。したがって、上記のファイルシステム書き込み時間の最悪値ＴFW(max)に要する時間と合わせた大きさが必要である。ファイルシステム書き込み時間の最悪値ＴFW(max)が例えば７５０［ｍｓ］の場合、合わせて１［ｓ］分のデータを貯めるバッファが必要である。
【０１５５】
（３）ＡＵの書き込み遅延補償に応じた要求
使用済みＲＵ３２がＡＵ３１の上部に集まったときも含めてＡＵ３１内に書き込み済みのＲＵ３２がある場合、使用済みＲＵ３２に格納されているデータが他のＲＵ３２へ移動されない限り、書き込みデータを書き込むことができない。したがって、書き込み済みＲＵ３２を移動している間、書き込みデータはホストバッファ２７に保管されなければならない。
【０１５６】
図１５にホストバッファ２７の概念を示す。図１５に示すように、ホスト機器２０からホストバッファ２７に一定のレートＰａで連続的にデータが入力されていると仮定する。また、ホスト機器２０はホストバッファ２７に蓄積されたデータを読んでそれをＡＵ３１に書き込むものとする。
【０１５７】
一方、ホストバッファ２７から出力されるデータのレートは、ＡＵ３１の断片化の状態に依存する。すなわち、上記のように、ＡＵ３１内に書き込み済みのＲＵ３２がある場合、書き込みデータは、ホストバッファ２７において保持され、出力されない。そして、ＡＵ３１内に書き込み済みＲＵ３２が無い場合、またはＲＵ３２の移動が終了すると、ホストバッファ２７は、データをレートＰｗで出力する。
【０１５８】
以上より、ホストバッファ２７の必要な寸法はＡＵ３１中の全使用済みＲＵ３２の移動が行われる時間から求められる。
【０１５９】
なお、ホストバッファ２７のサイズが十分でなくなったときは、ＡＵfast内でのデータの断片化状態に依存してホストバッファ２７のオーバーフロー（バッファの不足)が起こることがある。このため、ホストバッファ２７のサイズと、ＡＵfastの断片化状態とに応じてさらに更なる検討が必要になる場合がある。
【０１６０】
（４）書き込みデータの準備
ホスト機器２０が書き込みデータを準備するにはある程度の時間がかかり、書き込みデータの生成は離散的になってしまう。このデータを一旦ホストバッファ２７を介して、ホストコントローラ２６からデータを書き込むようにすることができる。こうすることにより、空き時間なく転送ができるため、効率の良い転送が可能になる。
【０１６１】
特に、リアルタイム記録の場合、リアルタイムデータをＦＩＦＯとしてのホストバッファ２７に一旦蓄積してからメモリカード１９に書き込みを行うことにより、リアルタイムデータの準備（計算）時間を見えなくすることができる。すなわち、効率良くメモリカード１９にデータを記録できる。
【０１６２】
なお、システムメモリ上で計算してデータをメモリカード１９に直接書き込む場合は、処理がシーケンシャルとなる。このため、データの計算と書き込みを交互に行う必要がある。テータの計算と書き込みを交互に行うと、データ計算中はメモリカード１９には何も書き込まれず無駄な時間となるため、メモリカード１９が示すクラスよりも低い性能しか引き出すことができなくなってしまう。
【０１６３】
必要なバッファサイズはアプリケーションパフォーマンスＰａ、移動パフォーマンスＰｍ、最大使用済みＲＵ比ｒ（Ｐｃ）、ＡＵ寸法ＳAUの関数として記述できる。
【０１６４】
［数式１４］に必要とされるバッファサイズＳBUFを示す。ただし、この式の右辺の第１項（Ｐａ）は、上記の（１）、（２）の記載内容に対応し、右辺の第２項は上記の（３）の記載内容に対応するが、上記の（４）については、［数式１４］に含まれていない。また、ホスト機器２０の規格によってはさらに付加的なバッファが必要になる。
【０１６５】
［数式１４］
必要なバッファサイズ：ＳBUF＞Ｐａ＋［ｒ（Ｐｃ）×ＳAU×Ｐａ］／Ｐｍ
もしもアプリケーションパフォーマンスＰａが移動パフォーマンスＰｍよりも小さく、ホストバッファ２７が、Ｐａ＋ＳAUを上回る充分な大きさを有しているとき、［数式１４］は常に満足される。
【０１６６】
［４−５−２］ホストバッファサイズが小さい場合の取り扱い
以下は、上述の議論とは独立して、ホストバッファ２７の大きさが不十分な場合に、断片化度合いが小さいＡＵfastを見つける方法について述べる。ただし、ここに述べる方法を取るよりも、ホストバッファ２７が十分な大きさを持つことが好ましい。
【０１６７】
図１６は、全ての使用済みＲＵ３２がＡＵ３１の上部に集積している場合を示している。最大使用済みＲＵ比ｒ（Ｐｃ）は使用済みＲＵ３２ｃと未使用ＲＵ３２ｄで分けられる場所を示している。ホスト機器２０が、最初の未使用ＲＵ３２ｄにデータを書き込むとき、メモリカード１９は全ての使用済みＲＵ３２ｃの移動が完了するまで長いビジーを出す。この間、書き込みデータはホストバッファ２７に蓄えられる。このとき、ＡＵ３１中の全ての使用済みＲＵ３２ｃの移動に要する時間は、（ｒ（Ｐｃ）×ＳAU）／Ｐｍである。よって、ホストバッファ２７に求められる大きさを［数式１５］に示す。
【０１６８】
［数式１５］
ホストバッファサイズ：ＳBUF＞Ｐａ×［（ｒ（Ｐｃ）×ＳAU）／Ｐｍ］
［数式１５］より、［数式１６］が得られる。
【０１６９】
［数式１６］
ホストバッファサイズによって限定される使用済みＲＵ比
＝ｒ（Ｐｃ）＜[（Ｐｍ×ＳBUF）／（Ｐａ×ＳAU）]
［数式１６］から分かるように、ホストバッファ２７のサイズが小さい場合、最大使用済みＲＵ比ｒ（Ｐｃ）が、ホストバッファ２７の大きさによって制限される。そして、この場合、ホストバッファ２７の大きさによって制限された最大使用済みＲＵ比ｒ（Ｐｃ）を［数式１２］内のｒ（Ｐｃ）として用いてＡＵ３１を分類する必要がある。
【０１７０】
また、ホストバッファ２７のサイズが小さい場合、リアルタイムデータ記録中にホストバッファ２７に蓄積されたデータの大きさを観測し、その結果に応じて、データのビットレートを一時的に小さく制御するか、ファイルシステムの更新間隔を制御して事前にバッファオーバーフローを回避することができる。ホストバッファ２７がオーバーフローしてデータを喪失してしまうのは問題があるため、データの品質を落としてでもデータ喪失を防ぐことが必要である。
【０１７１】
また、記憶デバイス１９の性能情報（性能パラメータ）に基づいて予測した書き込み性能で記録をしたとき、ホスト機器２０は、バッファオーバーフローの発生や記憶デバイス１９のアクセス中にエラーが頻発した際、記憶デバイス１９の性能情報に基づいた速度よりも低速のモードに切り替えることができる。
【０１７２】
［４−６］その他
ホスト機器２０は、メモリカード１９の性能情報（クラス、性能パラメータ等の情報）と自身の性能情報（クラス、性能パラメータ等の情報）とを比較する手段を有することができる。
【０１７３】
メモリカード１９から読み出した性能情報と自身の性能情報とを比較する比較手段をホスト機器２０に備える。これは、メモリカード１９とホスト機器２０との関係において、一方がどんなに高性能であっても、他方の性能がそれに見合っていない場合には、ホスト機器２０とメモリカード１９とのデータ転送は、結局、遅い方の性能によって律速されてしまうからである。
【０１７４】
より低クラスのメモリカード１９を使用するとユーザが期待する性能を得ることができない虞がある。そこで、ホスト機器２０がメモリカード１９から読み出した性能情報と自身の性能情報とを比較し、その結果を画面表示等によりユーザに通知するようにする。
【０１７５】
例えば、メモリカード１９がホスト機器２０に挿入された後に、「本機器はクラスＭですが、挿入されたメモリカードのクラスはＮ（Ｎ＜Ｍ）であるため、クラスＮでの動作となります。」と画面に表示する。これによりクラスＮのメモリカードを使用しているのに期待した動作速度を何故得られないのかをユーザが把握することができる。この画面表示は、メモリカード１９がホスト機器２０に挿入された後に、自動的になされるものであっても良いし、ユーザが所定の操作をすることにより画面に表示されるようにしても良い。
【０１７６】
なお、ここで説明した性能情報の比較機能は、性能情報を格納したメモリカード１９を使用するホスト機器２０に必須の機能ではない。
【０１７７】
（第２実施形態）
次に上記の第１実施形態を適用することが出来るＳＤTMメモリカードについて詳細に説明する。
【０１７８】
図１７は、第２実施形態のＳＤTMメモリカードの構成を示す概略図である。ＳＤTMメモリカード（以下、単にメモリカードと記載する）４１は、ホスト機器２０とバスインタフェース４５を介して情報の授受を行う。メモリカード４１は、ＮＡＮＤフラッシュTMメモリ（以下、単にフラッシュメモリと記載する）チップ４２、このフラッシュメモリチップ４２を制御するカードコントローラ４３、および複数の信号ピン（第１ピン乃至第９ピン）４４を備えている。４５は、バスインタフェースである。
【０１７９】
カードコントローラ４３は、第１実施形態（図２）のデバイスコントローラ２２に相当する。フラッシュメモリ４２は、図２の記憶領域２１に相当する。
【０１８０】
複数の信号ピン４４は、カードコントローラ４３と電気的に接続されている。複数の信号ピン４４における第１ピン乃至第９ピンに対する信号の割り当ては、例えば図１８に示すようになっている。
【０１８１】
データ０乃至データ３は、第７ピン、第８ピン、第９ピン、および第１ピンにそれぞれ割り当てられている。第１ピンは、また、カード検出信号に対しても割り当てられている。さらに、第２ピンはコマンドに割り当てられ、第３ピンおよび第６ピンは接地電位Ｖssに、第４ピンは電源電位Ｖddに、第５ピンはクロック信号に割り当てられている。
【０１８２】
また、メモリカード４１は、ホスト機器２０に設けられたスロットに対して挿抜可能なように形成されている。ホスト機器２０に設けられたホストコントローラ２６（図示せず）は、これら第１ピン乃至第９ピンを介してメモリカード４１内のカードコントローラ４３と各種信号およびデータを通信する。例えば、メモリカード４１にデータが書き込まれる際には、ホストコントローラ２６は、書き込みコマンドを、第２ピンを介してカードコントローラ４３にシリアルな信号として送出する。このとき、カードコントローラ４３は、第５ピンに供給されているクロック信号に応答して、第２ピンに与えられる書き込みコマンドを取り込む。
【０１８３】
ここで、前述したように、書き込みコマンドは、第２ピンのみを利用してカードコントローラ４３にシリアルに入力される。コマンドの入力に割り当てられている第２ピンは、図１８に示すように、データ３用の第１ピンと接地電位Ｖss用の第３ピンとの間に配置されている。複数の信号ピン４４とそれに対するバスインタフェース４５は、ホスト機器２０内のホストコントローラ２６とメモリカード４１とが通信するのに使用される。
【０１８４】
これに対し、フラッシュメモリ４２とカードコントローラ４３との間の通信は、ＮＡＮＤフラッシュTMメモリ用のインタフェースによって行われる。したがって、ここでは図示しないが、フラッシュメモリ４２とカードコントローラ４３とは８ビットの入出力（Ｉ／Ｏ）線により接続されている。
【０１８５】
例えば、カードコントローラ４３がフラッシュメモリ４２にデータを書き込む際には、カードコントローラ４３は、これらＩ／Ｏ線を介してデータ入力コマンド８０Ｈ、カラムアドレス、ページアドレス、データ、およびプログラムコマンド１０Ｈをフラッシュメモリ４２に順次入力する。ここで、コマンド８０Ｈの“Ｈ”は１６進数を示すものであり、実際には“１０００００００”という８ビットの信号が、８ビットのＩ／Ｏ線にパラレルに与えられる。つまり、このＮＡＮＤフラッシュTMメモリ用のインタフェースでは、複数ビットのコマンドがパラレルに与えられる。
【０１８６】
また、ＮＡＮＤフラッシュTMメモリ用のインタフェースでは、フラッシュメモリ４２に対するコマンドとデータが同じＩ／Ｏ線を共用して通信されている。このように、ホスト機器２０内のホストコントローラ２６とメモリカード４１とが通信するインタフェースと、フラッシュメモリ４２とカードコントローラ４３とが通信するインタフェースとは異なる。
【０１８７】
図１９は、第２実施形態のメモリカードのハード構成を示すブロック図である。
【０１８８】
ホスト機器２０は、バスインタフェース４５を介して接続されるメモリカード４１に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。メモリカード４１は、ホスト機器２０に接続された時に電源供給を受けて動作し、ホスト機器２０からのアクセスに応じた処理を行う。
【０１８９】
メモリカード４１は、前述したように、フラッシュメモリ４２およびカードコントローラ４３を含む。フラッシュメモリ４２は、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が所定サイズ（例えば、２５６ｋＢ）に定められている。また、このフラッシュメモリ４２に対して、ページと称する単位（例えば、２ｋＢ）でデータの書き込みおよび読み出しが行われる。
【０１９０】
カードコントローラ４３は、フラッシュメモリ４２内部の物理状態（例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか）を管理する。カードコントローラ４３は、ホストインタフェースモジュール５３、ＭＰＵ（Micro processing unit）５４、フラッシュコントローラ５５、ＲＯＭ（Read-only memory）５６、ＲＡＭ（Random access memory）５７、およびバッファ５８を有する。
【０１９１】
ホストインタフェースモジュール５３は、カードコントローラ４３とホスト機器２０との間のインタフェース処理を行い、レジスタ部５９を含む。図２０に、レジスタ部５９の詳細な構成を示す。レジスタ部５９は、カードステータスレジスタ、およびＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、ＯＣＲの各種レジスタを有する。
【０１９２】
これらレジスタは、以下のように定義されている。カードステータスレジスタは、通常動作において使用され、例えば後述するエラー情報が記憶される。ＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、およびＯＣＲは、主にメモリカードの初期化時に使用される。
【０１９３】
ＣＩＤ（Card identification number）には、メモリカード４１の個体番号が記憶される。ＲＣＡ（Relative card address）には、相対カードアドレス（初期化時にホスト機器が動的に決める）が記憶される。ＤＳＲ（Driver stage register）には、メモリカード４１のバス駆動力等が記憶される。
【０１９４】
ＣＳＤ（Card specific data）には、メモリカード４１の特性パラメータ値が記憶され、第１実施形態の、バージョン情報、性能識別コード、性能パラメータを保持する。
【０１９５】
ＳＣＲ（SD configuration data register）には、メモリカード４１のデータ配置が記憶される。ＯＣＲ（Operation condition resister）には、動作範囲電圧に制限のあるメモリカードの場合の動作電圧が記憶される。
【０１９６】
ＭＰＵ５４は、メモリカード４１全体の動作を制御する。ＭＰＵ５４は、例えばメモリカード４１が電源供給を受けたときに、ＲＯＭ５６に格納されているファームウェア（制御プログラム）をＲＡＭ５７上に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ５７上に作成する。
【０１９７】
ＭＰＵ５４は、また、ホスト機器２０から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、フラッシュメモリ４２に対して所定の処理を実行したり、バッファ５８を通じたデータ転送処理を制御したりする。
【０１９８】
ＲＯＭ５６は、ＭＰＵ５４により制御される制御プログラムなどを格納する。ＲＡＭ５７は、ＭＰＵ５４の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する。フラッシュコントローラ５５は、カードコントローラ４３とフラッシュメモリ４２との間のインタフェース処理を行う。
【０１９９】
バッファ５８は、ホスト機器２０から送られてくるデータをフラッシュメモリ４２へ書き込む際に、一定量のデータ（例えば、１ページ分）を一時的に記憶したり、フラッシュメモリ４２から読み出されるデータをホスト機器２０へ送り出す際に、一定量のデータを一時的に記憶したりする。
【０２００】
図２１は、メモリカード４１内のフラッシュメモリ４２におけるデータ配置を示している。フラッシュメモリ４２の各ページは、２１１２Ｂ（５１２Ｂ分のデータ記憶部×４＋１０Ｂ分の冗長部×４＋２４Ｂ分の管理データ記憶部）を有しており、１２８ページ分が１つの消去単位（２５６ｋＢ＋８ｋＢ（ここで、ｋは１０２４））である。なお、以下の説明においては、便宜上、このフラッシュメモリ４２の消去単位を２５６ｋＢとする。
【０２０１】
また、フラッシュメモリ４２は、フラッシュメモリ４２へのデータ入出力を行うためのページバッファ４２Ａを備えている。ページバッファ４２Ａの記憶容量は、２１１２Ｂ（２０４８Ｂ＋６４Ｂ）である。データ書き込みなどの際、ページバッファ４２Ａは、フラッシュメモリ４２に対するデータ入出力処理を、自身の記憶容量に相当する１ページ分の単位で実行する。
【０２０２】
フラッシュメモリ４２の記憶容量が例えば１Ｇビットである場合、２５６ｋＢブロック（消去単位）の数は、５１２個となる。
【０２０３】
また、図２１においては消去単位が２５６ｋＢブロックである場合を例示しているが、消去単位が例えば１６ｋＢブロックとなるように構築することも実用上有効である。この場合、各ページは５２８Ｂ（５１２Ｂ分のデータ記憶部＋１６Ｂ分の冗長部）を有しており、３２ページ分が１つの消去単位（１６ｋＢ＋０．５ｋＢ）である。
【０２０４】
フラッシュメモリ４２のデータが書き込まれる領域（データ記憶領域）は、図１９に示すように、保存されるデータに応じて複数の領域に区分けされている。フラッシュメモリ４２は、データ記憶領域として、管理データ領域６１と、機密データ領域６２と、保護データ領域６３と、ユーザデータ領域６４と、を備えている。
【０２０５】
管理データ領域６１は、主にメモリカードに関する管理情報を格納し、すなわち、メモリカード４１のセキュリティ情報やメディアＩＤなどのカード情報を格納する。
【０２０６】
機密データ領域６２は、暗号化に用いる鍵情報や認証時に使用する機密データを格納し、ホスト機器２０からはアクセス不可能な領域である。
【０２０７】
保護データ領域６３は、重要なデータを格納し、メモリカード４１に接続されたホスト機器２０との相互認証によりホスト機器２０の正当性が証明された場合にのみアクセスが可能となる領域である。
【０２０８】
ユーザデータ領域６４は、ユーザデータを格納し、メモリカード４１を使用するユーザが自由にアクセスおよび使用することが可能な領域である。
【０２０９】
また、第２実施形態では、メモリカード４１の動作モードがＳＤ４ｂｉｔモードである場合を例に説明するが、ＳＤ１ｂｉｔモード、ＳＰＩモードである場合にも適用できる。図２２に、ＳＤ４ｂｉｔモード、ＳＤ１ｂｉｔモード、およびＳＰＩモードにおける信号ピンに対する信号割り当てを示す。
【０２１０】
メモリカード４１の動作モードは、ＳＤモードとＳＰＩモードに大別される。ＳＤモードにおいては、メモリカード４１はホスト機器２０からのバス幅変更コマンドによって、ＳＤ４ｂｉｔモードまたはＳＤ１ｂｉｔモードに設定される。
【０２１１】
ここで、４つのデータ０ピン（ＤＡＴ０）乃至データ３ピン（ＤＡＴ３）に着目すると、４ビット幅単位でデータ転送を行うＳＤ４ｂｉｔモードでは、４つのデータ０ピン乃至データ３ピンが全てデータ転送に用いられる。
【０２１２】
１ビット幅単位でデータ転送を行うＳＤ１ｂｉｔモードでは、データ０ピン（ＤＡＴ０）のみがデータ転送に使用され、データ１ピン（ＤＡＴ１）、データ２ピン（ＤＡＴ２）は全く使用されない。また、データ３ピン（ＤＡＴ３）は、例えばメモリカード１９からホスト機器２０への非同期割り込み等のために使用される。
【０２１３】
ＳＰＩモードでは、データ０ピン（ＤＡＴ０）が、メモリカード１９からホスト機器２０へのデータ信号線（ＤＡＴＡ  ＯＵＴ）に用いられる。コマンドピン（ＣＭＤ）はホスト機器２０からメモリカード１９へのデータ信号線（ＤＡＴＡ  ＩＮ）に用いられる。データ１ピン（ＤＡＴ１）、データ２ピン（ＤＡＴ２）は全く使用されない。また、ＳＰＩモードでは、データ３ピン（ＤＡＴ３）は、ホスト機器２０からメモリカード１９へのチップセレクト信号ＣＳの送信に用いられる。
【０２１４】
フラッシュメモリ４２が１チップで構成されている場合、このメモリカード１９は、それほど高速の動作が求められない場合に用いられ、例えばクラスＭ（Ｍはゼロまたは正の整数）に分類される。
【０２１５】
フラッシュメモリ４２が１チップのメモリカード１９よりも高速なクラスＮ（ＮはＭよりも大きい正の整数）のメモリカード１９においては、例えば、複数のフラッシュメモリチップ４２が複数のチップで構成される。このようにすれば、カードコントローラ４３は、一方のフラッシュメモリチップにデータを書き込んでいる間に、他のフラッシュメモリチップにデータを転送することができる。よって、カードコントローラ４３とフラッシュメモリ４２との間の見かけ上のデータ転送レートが向上する。
【０２１６】
あるいは、ページコピー（あるいはコピーバック）機能を備えたフラッシュメモリチップを採用することで、フラッシュメモリチップ内のあるページに格納されたデータを同一のフラッシュメモリチップ内の別のページにコピーすることができる。これによって移動パフォーマンスＰｍを改善することができる。
【０２１７】
なお、本発明を第１実施形態、第２実施形態に沿って説明したが、本発明はこの範囲に限定されるものではない。本発明を適用可能なホスト機器としては、デジタルスチルカメラ、デジタルビデオカメラ、ＰＣ（パーソナルコンピュータ）、およびＰＤＡが考えられる。
【０２１８】
第１実施形態、第２実施形態の記憶デバイス１９として使用される半導体メモリとしては、ＮＡＮＤフラッシュTMメモリの他にＡＮＤフラッシュメモリ、ＮＯＲフラッシュTMメモリなど、同様にフローティングゲートを電荷蓄積層として持つメモリでも良い。あるいは，ＭＯＮＯＳ型など絶縁層を電荷蓄積層として持つものでも良い。さらに、ＭＲＡＭ（Magnetic Random Access Memory）、ＦｅＲＡＭ（Ferromagnetic Random Access Memory）などの不揮発性半導体メモリでもよい。
【図面の簡単な説明】
【０２１９】
【図１】第１実施形態におけるＮＡＮＤフラッシュTMメモリのブロック図。
【図２】第１実施形態におけるメモリが内蔵された記憶デバイスの一例、および、その記憶デバイスを用いるホスト機器の一例を示す図。
【図３】第１実施形態におけるホスト機器から見たときの記憶デバイスの領域分割、および、記憶デバイス内部での実際の記憶領域の分割の一例を示す図。
【図４】第１実施形態におけるデータの移動を説明する図。
【図５】マルチブロック書き込みコマンドを用いたときの書き込み動作タイミングの一例を示す図。
【図６】第１実施形態におけるパフォーマンスカーブの一例を示す図。
【図７】第１実施形態におけるリアルタイム記録中のファイルシステム更新の例を示す図。
【図８】書き込みのシーケンスを例示する図。
【図９】第１実施形態に係るホスト機器および記憶デバイスの外観を例示する図。
【図１０】第１実施形態におけるパフォーマンスカーブ分類を示す図。
【図１１】各クラスのカードの要求特性の例を示す図。
【図１２】各クラスのカード要求特性の測定条件の例を示す図。
【図１３】ＳＤTMメモリカードのレジスタに記憶される内容を例示する図。
【図１４】第１実施形態におけるメモリカード領域に対するＡＵ分類を例示する図。
【図１５】第１実施形態におけるホストバッファの概念を示す図。
【図１６】全ての使用済みＲＵがＡＵの上部に集積している場合の例。
【図１７】この発明の第２実施形態のメモリカードの構成を示す概略図。
【図１８】第２実施形態のメモリカードにおける信号ピンに対する信号割り当てを示す図。
【図１９】第２実施形態のメモリカードのハード構成を示すブロック図。
【図２０】第２実施形態のメモリカードにおけるレジスタ部の詳細な構成を示す図。
【図２１】第２実施形態のメモリカード内のフラッシュメモリにおけるメモリセルとバッファの構造を示す図。
【図２２】各動作モードにおけるＳＤバス信号ピンに対する信号割り当てを示す図。
【符号の説明】
【０２２０】
１９…記憶デバイス、２０…ホスト機器、２１…記憶領域、２２…デバイスコントローラ、２３…バージョン情報レジスタ、２４…性能識別コードレジスタ、２５…性能パラメータレジスタ、２６…ホストコントローラ、２７…ホストバッファ、２８…プロセッサ、２９…システムメモリ。
【図１】
2006178923.tif 000004
【図２】
2006178923.tif 000005
【図３】
2006178923.tif 000006
【図４】
2006178923.tif 000007
【図５】
2006178923.tif 000008
【図６】
2006178923.tif 000009
【図７】
2006178923.tif 000010
【図８】
2006178923.tif 000011
【図９】
2006178923.tif 000012
【図１０】
2006178923.tif 000013
【図１１】
2006178923.tif 000014
【図１２】
2006178923.tif 000015
【図１３】
2006178923.tif 000016
【図１４】
2006178923.tif 000017
【図１５】
2006178923.tif 000018
【図１６】
2006178923.tif 000019
【図１７】
2006178923.tif 000020
【図１８】
2006178923.tif 000021
【図１９】
2006178923.tif 000022
【図２０】
2006178923.tif 000023
【図２１】
2006178923.tif 000024
【図２２】
2006178923.tif 000025