(57)【要約】【課題】ランダムライトアクセス速度が速いメモリカード１を提供する。【解決手段】ホスト機器２と接続可能なＮＡＮＤ型フラッシュメモリからなるメモリ部１１を有するメモリカード１であって、メモリ部１１が、オリジナルブロックＯＢのみからなる通常アクセス領域１１Ａと、オリジナルブロックＯＢとサブブロックＳＢとからなる高速アクセス領域１１Ｂとから構成可能であり、ホスト機器２から入力されたユーザデータを、ホスト機器２からのコマンドに従い、通常アクセス領域１１Ａまたは高速アクセス領域１１Ｂのいずれかに記憶するように制御を行うメモリコントローラ１２を具備する。【選択図】図５
2009265839.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器と接続可能な、ＮＡＮＤ型フラッシュメモリからなるメモリ部を有する、記憶装置であって、
前記メモリ部が、オリジナルブロックのみからなる通常アクセス領域と、オリジナルブロックとサブブロックとからなる高速アクセス領域とから構成可能であり、
前記ホスト機器から入力されたユーザデータを、前記ホスト機器からのコマンドに従い、前記通常アクセス領域または前記高速アクセス領域のいずれかに記憶するように制御を行うメモリコントローラを具備することを特徴とする記憶装置。
【請求項２】
前記メモリコントローラは、前記ホスト機器を介することなく、前記高速アクセス領域に記憶された前記ユーザデータを前記通常アクセス領域に移動可能であることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記メモリコントローラが、前記ホスト機器からのコマンドに従い、
前記高速アクセス領域の容量を変更可能なことを特徴とする請求項１または請求項２に記載の記憶装置。
【請求項４】
前記メモリコントローラが、前記通常アクセス領域と前記高速アクセス領域とを、ひとつの論理アドレス空間により管理することを特徴とする請求項１から請求項３のいずれか１項に記載の記憶装置。
【請求項５】
前記メモリコントローラは、前記ホスト機器から入力された新規ユーザデータの容量が、前記高速アクセス領域の空容量を超えている場合、
前記高速アクセス領域の前記空容量が、前記新規ユーザデータの前記容量を超えるように、前記高速アクセス領域に記憶されている前記ユーザデータを前記通常アクセス領域に移動し、
前記新規ユーザデータを、前記高速アクセス領域に記憶することを特徴とする請求項４に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤ型フラッシュからなるメモリ部を有するホスト機器と接続可能な記憶装置に関し、特に通常アクセス領域と、ランダムライトアクセス速度が速い高速アクセス領域とを有する記憶装置に関する。
【背景技術】
【０００２】
近年、メモリカード、特に、不揮発性の半導体記憶媒体であるフラッシュメモリカードの開発が行われ、ホスト機器であるデジタルカメラ等の情報機器の記憶媒体として普及している。ホスト機器が扱うデータが大容量化したことに伴い、フラッシュメモリの大容量化および高密度化が進んでいる。
【０００３】
ＮＡＮＤ型フラッシュメモリは、大容量であることを特徴とし、近年特に多く用いられるフラッシュメモリの一種である。  
ＮＡＮＤ型フラッシュメモリは、電荷蓄積層にチャネルから絶縁膜を介してトンネル電流によって注入した電荷をデジタルビットの情報格納部として用い、その電荷量に応じた電界効果トランジスタのコンダクタンス変化を測定し、情報を読み出す。ＮＡＮＤ型フラッシュメモリは、ＤＲＡＭと異なりデータ破壊を伴わずに複数回読み出すことが可能である。
【０００４】
メモリ内のデータの管理は、メモリカードが挿入されたホスト機器のファイルシステムが、アプリケーション等からの書き込み要求に応じて行う。ファイルシステムは、書き込まれるファイルをクラスタ単位の大きさのデータに分割し、クラスタにデータを割り当てる。メモリカードは、各データの論理アドレスと、この論理アドレスのデータを書き込む物理アドレスの対応をメモリ上に実現された表等で管理しながら、メモリにデータを書き込む。
【０００５】
しかし、ＮＡＮＤ型フラッシュメモリは、１）データの書き込みはページと呼ばれる単位で行われる、２）データの消去はブロックと呼ばれる複数のページをまとめた単位で行われる、３）データの上書きができない、という特徴を有する。このため、ページ単位にデータを更新する場合、消去済みのブロックを用いて、以下の処理が行われる。すなわち、更新されるデータ（新データ）がデータの書き込まれていない新ブロックに書き込まれ、次に、旧データ（新データに書き換えられるデータ）を含んでいる旧ブロックから、更新されない残りのデータが新ブロックにコピーされる。このため、１つのページのデータの更新にかなりの時間がかかる場合がある。
【０００６】
特に、書き換えの回数が多い、いわゆるランダムライトとなるＦＡＴファイルシステム等の管理データに対しては、書き込み速度の低下を回避するために、キャッシュブロック（以下、「サブブロック」とも言う。）と呼ばれる追記専用のブロックが設けられることがある。キャッシュブロックは、各論理アドレスのデータが本来書き込まれるブロックであるオリジナルブロックに付加して、メモリ部に設けられる。あるデータの書き込み要求が初めて来た際には、このデータは、オリジナルブロックに書き込まれる。そして、オリジナルブロックに書き込み済みのデータの更新要求、すなわち、一部のデータの更新要求、が来る度に、このデータはサブブロックに順次書き込まれる。このとき、メモリカードは、ある論理アドレスの最新のデータがサブブロックのどこのページに書き込まれているかを示す対応表を作成しておく。
【０００７】
上記のような、オリジナルブロックに付加してサブブロックを併用したメモリ部の領域は、高速アクセス領域と呼ばれている。すなわち、高速アクセス領域における書き込み処理は、更新データがサブブロックに書き込まれ、オリジナルブロックに書き込み済みのデータは操作されないために、高速処理となる。
【０００８】
そして、例えば、特開２００７−９４７６４号公報には、高速アクセス領域における処理を更に高速化するために、ひとつのオリジナルブロックに付加して、複数のサブブロックを併用したメモリ部を有するメモリカードも提案されている。
【０００９】
しかし、従来のメモリカードにおいては、高速アクセス領域は管理データに対してのみ使用される極めて特殊なメモリ領域であり、かつ高速アクセス領域のサイズは予め定められた容量に固定されていた。
【００１０】
一方、一部の動画像データの転送においては、所定単位のデータ転送が完了する度に、転送済みのデータの先頭の一部のデータを更新処理することで、転送が正常に行われたこと等を確認する。このため、このようなランダムライトな動画像データを、メモリカードに記憶する場合には、データの先頭のごく一部のデータの更新のためにブロック単位での更新処理が必要となり、処理が遅延することがある。そして、メモリカードのメモリコントローラは更新処理中は、いわゆるＢＵＳＹ信号をホスト機器に出力するため、ホスト機器は新規なデータを記憶装置に転送することができない。このため、ホスト機器がエラーを起こしたり、いわゆるフリーズ状態となってしまうことがあった。
【特許文献１】特開２００７−９４７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、ランダムライトアクセス速度が速い記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願発明の一態様によれば、ホスト機器と接続可能なＮＡＮＤ型フラッシュメモリからなるメモリ部を有する記憶装置であって、メモリ部が、オリジナルブロックのみからなる通常アクセス領域と、オリジナルブロックとサブブロックとからなる高速アクセス領域とから構成可能であり、ホスト機器から入力されたユーザデータを、ホスト機器からのコマンドに従い、通常アクセス領域または高速アクセス領域のいずれかに記憶するように制御を行うメモリコントローラを具備することを特徴とする記憶装置が提供される。
【発明の効果】
【００１３】
本発明はランダムライトアクセス速度が速い記憶装置を提供するものである。
【発明を実施するための最良の形態】
【００１４】
＜第１の実施の形態＞  
以下、本発明の第１の実施の形態の記憶装置であるメモリカード１について図面を参照して説明する。図１は、本実施の形態の記憶装置であるメモリカード１の構成を示す概略図である。メモリカード１は、ホスト機器２に装着されて使用され、ホスト機器２の外部記憶装置として用いられる、例えばＳＤメモリカード（登録商標）である。ホスト機器２としては、画像データまたは音楽データなどの各種データを処理するパーソナルコンピュータやデジタルカメラ等を含む情報処理装置が挙げられる。
【００１５】
メモリカード１は、ホスト機器２との間でバスインタフェース１４を介してデータの送受信を行う。このメモリカード１は、メモリ部１１、メモリ部１１を制御するメモリコントローラ１２およびコネクタ１３（ピン１乃至ピン９を含む）を備えている。
【００１６】
コネクタ１３は、メモリカード１がホスト機器２に装着されると、ホスト機器２と電気的に接続される。コネクタ１３に含まれるピン１乃至ピン９に対する信号の割り当ては、規格により定められている。メモリ部１１は、不揮発性半導体メモリであり、例えば複数のＮＡＮＤ型のフラッシュメモリにより構成される。ホスト機器２から送信されたデータなどは、メモリコントローラ１２の制御により、メモリ部１１に記憶される。
【００１７】
次に図２は、本実施の形態の記憶装置であるメモリカード１の構成を示すブロック図である。  
ホスト機器２は、バスインタフェース１４を介して接続されるメモリカード１に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。メモリカード１は、ホスト機器２に接続されると、ホスト機器２から電源供給を受けて動作し、ホスト機器２からのコマンドに従い処理を行う。
【００１８】
メモリカード１は、前述したように、メモリ部１１およびメモリコントローラ１２を含む。メモリ部１１は、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が、所定サイズ（例えば、２５６ｋＢ）に定められている。また、このメモリ部１１に対して、ページ単位（例えば、２ｋＢ）でデータの書き込みおよび読み出しが行われる。
【００１９】
メモリコントローラ１２は、メモリ部１１内部の物理状態（例えば、どこの物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、どこのブロックが未使用状態であるか）を管理する。メモリコントローラ１２は、ホストインタフェースモジュール２１、ＭＰＵ（Micro Processing Unit）２２、フラッシュコントローラ２３、ＲＯＭ（Read-Only Memory）２４、ＲＡＭ（Random Access Memory）２５、およびバッファ２６を有する。
【００２０】
ホストインタフェースモジュール２１は、メモリコントローラ１２とホスト機器２との間のインタフェース処理を行い、レジスタ部２７を含む。  
ＭＰＵ２２は、メモリカード１全体の動作を制御する。ＭＰＵ２２は、例えばメモリカード１が電源供給を受けたときに、ＲＯＭ２４に格納されているファームウェア（制御プログラム）を読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ２５上に作成する。ＭＰＵ２２は、また、ホスト機器２から書き込みコマンド、読み出しコマンド、または消去コマンドを受け取り、メモリ部１１に対して所定の処理を実行したり、バッファ２６を通じたデータ転送処理を制御する。
【００２１】
ＲＯＭ２４は、ＭＰＵ２２により制御される制御プログラムなどを格納する。ＲＡＭ２５は、ＭＰＵ２２の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する。フラッシュコントローラ２３は、メモリコントローラ１２とメモリ部１１との間のインタフェース処理を行う。  
バッファ２６は、ホスト機器２から送られてくるデータをメモリ部１１へ書き込む際に、一定量のデータ（例えば、１ページ分）を一時的に記憶したり、メモリ部１１から読み出されるデータをホスト機器２へ送り出す際に、一定量のデータを一時的に記憶したりする。
【００２２】
ここで、図２に示すように、メモリ部１１は、保存されるデータの種類に応じて複数の領域に区分けされている。メモリ部１１は、データ記憶領域として、管理データ領域３１と、機密データ領域３２と、保護データ領域３３と、ユーザデータ領域３４と、を備えている。
【００２３】
管理データ領域３１は、主にメモリカードに関する管理情報を格納し、すなわち、メモリカード１のセキュリティ情報やメディアＩＤなどのカード情報を格納する。機密データ領域３２は、暗号化に用いる鍵情報や認証時に使用する機密データを格納し、ホスト機器２からはアクセス不可能な領域である。保護データ領域３３は、重要なデータを格納し、メモリカード１に接続されたホスト機器２との相互認証によりホスト機器２の正当性が証明された場合にのみアクセスが可能となる領域である。そして、ユーザデータ領域３４は、ユーザデータを格納し、メモリカード１を使用するユーザが自由にアクセスして使用することが可能な領域である。
【００２４】
そして、ホスト機器２は、ファイルシステムを搭載している。ファイルシステムは、メモリカード１に記憶されているファイル（データ）を管理する方式であり、メモリ部１１に設けられた管理領域および管理情報を示している。また、ファイルシステムには、メモリカード１におけるファイルおよびフォルダなどのディレクトリ情報の作成方法、ファイルおよびフォルダなどの移動方法および削除方法、データの記憶方式、管理領域の場所および利用方法などが定められている。
【００２５】
次に、図３は、メモリ部１１のユーザデータ領域３４におけるデータ配置例を示す説明図である。ユーザデータ領域３４は書き込み単位であるページと、複数のページからなる消去単位であるブロックにより構成されている。この例では、各ページは、２１１２Ｂ（５１２Ｂ分のデータ記憶部×４＋１０Ｂ分の冗長部×４＋２４Ｂ分の管理データ記憶部）の容量を有しており、例えば１２８ページ分が１つの消去単位（２５６ｋＢ＋８ｋＢ（ここで、ｋは１０２４を意味する））のブロックである。なお、以下の説明においては、便宜上、このメモリ部１１の消去単位、すなわちブロックサイズを２５６ｋＢとする。
【００２６】
そして、図３に示すように、ユーザデータ領域３４の記憶容量が例えば１Ｇバイトである場合、ブロックは、ブロック０からブロック５１１の合計５１２個となる。なお、図３においてはブロックが２５６ｋＢである場合を例示しているが、ブロックが例えば１６ｋＢとなるように構築することも実用上有効である。この場合、各ページは５２８Ｂ（５１２Ｂ分のデータ記憶部＋１６Ｂ分の冗長部）を有しており、３２ページ分が１つの消去単位（１６ｋＢ＋０．５ｋＢ）のブロックとなる。なお、メモリ部１１のユーザデータ領域３４以外の領域についても、ユーザデータ領域３４と類似の構造で管理されているが、ここではユーザデータ領域３４についてのみ説明する。
【００２７】
次に、図４を用いて、従来のメモリカードにおけるユーザデータ領域に対するユーザデータの記憶方法について説明する。図４は、従来のメモリカードにおけるユーザデータの記憶方法について説明するための説明図である。  
なお、以下の説明では、説明を簡単にするために、消去単位である１ブロックが、書き込み単位であるページが６ページにて、構成されているものとする。
【００２８】
図４（Ａ）に示すように、一般に、ブロックＯＢ１には、アドレス順に、ブロックＯＢ１内の低位のアドレスのページＯＰ１０から高位のアドレスのページＯＰ１５に向かってデータが書き込まれている。そして、図４（Ｂ）に示すように、ブロックＯＢ１内に記憶されていたデータ０〜６の６ページのデータの中で、ページＯＰ１４に記憶されていたデータ４のみをデータ４ａに更新するコマンドがホスト機器２からメモリコントローラ１２に入力された場合を例に説明する。
【００２９】
ＮＡＮＤ型フラッシュメモリをメモリ部とするメモリカードでは、すでに説明したように、データのオーバーライト、すなわち、上書きはできない。このため、従来のメモリカードのメモリコントローラにおいては、図４（Ｂ）に示すように、消去状態のブロックＯＢ２を準備する。そして、図４（Ｃ）に示すように、更新データ４ａを、ブロックＯＢ２のページＯＰ２４に記憶するとともに、ブロックＯＢ１に記憶されていた未更新のＯＰ１０、ＯＰ１１、ＯＰ１２、ＯＰ１３、ＯＰ１５のデータを、それぞれ初期状態のブロックＯＢ２のＯＰ２０、ＯＰ２１、ＯＰ２２、ＯＰ２３、ＯＰ２５に記憶する。その後、図４（Ｄ）に示すように、メモリコントローラは、次の書き込み処理のために、ブロックＯＢ１を消去する。このように、従来のメモリカードにおいては、書き込み処理の際に、更新されないデータを、いわゆる「引っ越し」する必要があった。このため、ランダムライトアクセス処理の処理速度が遅くなることがあった。
【００３０】
次に、図５、図６および図７を用いて、本実施の形態のメモリカード１におけるメモリコントローラ１２の動作について説明する。図５は、本実施の形態のメモリカード１におけるメモリ部１１の構成を説明するための説明図であり、図６は、メモリカード１におけるユーザデータの記憶方法について説明するための説明図であり、図７は、メモリカード１におけるユーザデータの記憶の際の処理の流れを説明するためのフローチャートである。
【００３１】
図５（Ａ）に示すように、メモリカード１においては、メモリ部１１のユーザデータを記憶するユーザデータ領域３４を、オリジナルブロックＯＢのみからなる通常アクセス領域１１Ａと、オリジナルブロックＯＢとサブブロックＳＢとからなる高速アクセス領域１１Ｂとから構成することができる。ここで、サブブロックＳＢとは、オリジナルブロックＯＢに記憶されているデータの一部を更新する場合に、更新データのみを記憶するための専用の特殊なブロックである。言い換えれば、サブブロックＳＢは、オリジナルブロックＯＢの補助記憶のための領域である。
【００３２】
ここで、図５（Ｂ）に示すように、本実施の形態のメモリカード１に対して、従来のメモリカードにおいては、ユーザデータ領域３４は通常アクセス領域１１Ａのみしかなかった。なお、図５に示したように、高速アクセス領域１１Ｂは、オリジナルブロックＯＢとサブブロックＳＢとからなるため、高速アクセス領域１１Ｂの容量を増加すると、ユーザデータ領域３４の容量は減少する。このため、本実施の形態のメモリカード１のメモリコントローラ１２は、高速アクセス領域１１Bの容量を、変更可能であるが、これについては後に詳細に説明する。
【００３３】
サブブロックＳＢは、各ユーザデータが本来書き込まれるブロック（オリジナルブロックＯＢ）に加えて設けられる。ある新規なデータの書き込み要求がホスト機器２から来た際、この新規データは、最初は、オリジナルブロックＯＢに書き込まれる。そして、オリジナルブロックＯＢに書き込み済みのデータの更新要求がホスト機器２から来る度に、この更新データはサブブロックＳＢに順次書き込まれる。このとき、メモリコントローラ１２は、あるアドレスの最新のデータがサブブロックＳＢのどこのページに書き込まれているかを示す対応表を作成する。
【００３４】
そして、メモリコントローラ１２は、所定のタイミングで、オリジナルブロックＯＢの再構成を行う。再構成とは、対応表を参照しながら、サブブロックＳＢ内の最新のデータを、新規なオリジナルブロックＯＢにまとめる作業である。  
すなわち、図６（Ａ）に示すように、本実施の形態のメモリカード１のユーザデータ領域３４の高速アクセス領域１１Ｂは、オリジナルブロックＯＢ１とサブブロックＳＢ１とから構成されている。そして、オリジナルブロックＯＢ１には、アドレス順に、オリジナルブロックＯＢ１内の低位のアドレスのページＯＰ１０から高位のアドレスのページＯＰ１５に向かってデータが書き込まれている。そして、図４（Ａ）に示すように、ブロックＯＢ１内に記憶されていたデータ０〜５の６ページのデータの中で、ページＯＰ１４に記憶されていたデータ４のみをデータ４ａ更新するコマンドがホスト機器２からメモリコントローラ１２に入力された場合を例に説明する。
【００３５】
メモリカード１のメモリコントローラ１２は、図６（Ａ）に示すように、更新するデータ４ａを、サブブロックＳＢ１の内の低位のアドレスのページＳＰ１０に書き込む。そして、アドレスページＯＰ１４の最新のデータがサブブロックＳＢのＳＰ１０に書き込まれていることを示す対応表を作成する。
【００３６】
そして、図６（Ｂ）に示すように、メモリコントローラ１２は、データ４ａを更に更新するデータ４ｂは、サブブロックＳＢ１の内の低位のアドレスのページＳＰ１１に書き込む。同様に、メモリコントローラ１２は、データ１を更新するデータ１ａをＳＰ１２に、データ４ｂを更新するデータ４ｃをＳＰ１３に、データ２を更新するデータ２ａをＳＰ１４に、データ４ｃを更新するデータ４ｄをＳＰ１５に書き込む。
【００３７】
すなわち、本実施の形態のメモリカード１においては、更新データを記憶する場合に、新規なオリジナルブロックＯＢに更新データおよび未更新のデータを引っ越しして記憶する替わりに、サブブロックＳＢに更新データのみを記憶する。このため、本実施の形態のメモリカード１は、ユーザデータを高速アクセス領域１１Ｂに記憶することで、ホスト機器２は高速でのランダムライトアクセス処理が可能である。
【００３８】
なお、サブブロックＳＢ１の残りの記憶可能容量、すなわち空き容量、が所定の容量以下となった場合に、メモリコントローラ１２は図６（Ｃ）に示すように、再構成を行う。再構成においては、メモリコントローラ１２は初期状態のオリジナルブロックＯＢ２を準備し、対応表を参照しながら、サブブロックＳＢ１内の最新のデータを、新規なオリジナルブロックＯＢ２にまとめる。その後、図６（Ｄ）に示すように、メモリコントローラ１２はオリジナルブロックＯＢ１およびサブブロックＳＢ１のデータを消去して、次のユーザデータの記憶処理、すなわち、書き込み処理に備える。
【００３９】
ここで、サブブロックＳＢの容量は適宜、決定することができる。例えば容量が少ない場合は、再構成処理が多くなり、アクセス速度が遅くなることがあり、容量を大きく設定した場合、ユーザデータ領域３４の減少の影響が大きくなり、かつ、アクセス速度向上への効果が小さくなる。なお、多値記録のフラッシュメモリをメモリ部１１に用いる場合には、ページによってプログラム時間が異なることがある。その場合、サブブロックＳＢとして、アクセス速度の速いページを用いることが好ましい。
【００４０】
次に、図７のフローチャートを用いて、ホスト機器２、および、メモリコントローラ１２の動作について説明する。最初のステップＳ１１において、記憶装置であるメモリカード１がホスト機器２と接続されることで、メモリカード１に電源が投入され、メモリカード１のＲＯＭ２４から制御プログラムなどがＭＰＵ２２等に送信され、メモリカード１が初期化される。なお、ここでの初期化はメモリ部１１の初期化とは異なり、メモリ部１１に記憶されていたユーザデータ等は記憶された状態を維持している。
【００４１】
メモリカード１が正常に起動すると、ステップＳ１２において、ホスト機器２のホストコントローラ（不図示）は、メモリカード１が、ユーザデータ領域３４に高速アクセス領域１１Ｂを有するメモリカードであるかどうかを、メモリカード１のメモリコントローラ１２に対して、問い合わせのコマンドを発行する。
【００４２】
そして、ステップＳ１３において、ホスト機器２は、メモリコントローラ１２から高速アクセス領域１１Ｂを有する（Ｙｅｓ）とのフラグ（ステータス信号）を受信した場合（Ｙｅｓ）には、ステップＳ１４において、ユーザデータを書き込むユーザデータ領域を、通常アクセス領域から高速アクセス領域に切り替える切り替え処理を行うための領域切り替えコマンドをメモリコントローラ１２に対して発行することができる（Ｙｅｓ）。メモリコントローラ１２は、ホスト機器２からの高速アクセス領域１１Ｂへの領域切り替えコマンドを受けて、ステップＳ１５で、記憶する領域を切り替える。そして、メモリコントローラ１２は、ステップＳ１６で、高速アクセス領域１１Ｂにユーザデータのライト処理を行う。
【００４３】
すなわち、本実施の形態のメモリカード１においては、ホスト機器２はコマンドを発行することにより、ユーザデータを通常アクセス領域１１Ａまたは高速アクセス領域１１Ｂに記憶することができる。このため、ホスト機器２は例えば、ユーザデータの種類等に応じて、ユーザデータを通常アクセス領域１１Ａまたは高速アクセス領域１１Ｂに記憶することができる。
【００４４】
なお、ホスト機器２が、ステップＳ１３において、メモリコントローラ１２から高速アクセス領域１１Ｂを有するとのステータス信号を受信できなかった場合（Ｎｏ）、または、ステップＳ１４で高速アクセス領域１１Ｂを使用するためのコマンドを発行しなかった（Ｎｏ）場合には、メモリコントローラ１２は、通常アクセス領域１１Ａに書き込み（ライト）処理を行う。そして、ホスト機器２およびメモリコントローラ１２は、再び、ステップＳ１４からの処理を、ライト要求が終了するまで継続（ステップＳ１７）する。本実施例では、ライト処理毎に領域切り替えコマンドを発行しているが、領域切り替えコマンドが発行されなかった場合は、以前のライト処理を継続することにしてもよい。
【００４５】
すなわち、本実施の形態の記憶装置であるメモリカード１は、ホスト機器２と接続可能なＮＡＮＤ型フラッシュメモリからなるメモリ部１１を有する記憶装置であって、メモリ部１１が、オリジナルブロックＯＢのみからなる通常アクセス領域１１Ａと、オリジナルブロックＯＢとサブブロックＳＢとからなる高速アクセス領域１１Ｂとから構成可能であり、ホスト機器２から入力されたユーザデータを、ホスト機器２からのコマンドに従い、通常アクセス領域１１Ａまたは高速アクセス領域１１Ｂのいずれかに記憶するように制御を行うメモリコントローラ１２を具備する。
【００４６】
メモリカード１は、ホスト機器２がユーザデータをメモリ部１１に記憶する際にランダムライトアクセス速度が速い。このため、ホスト機器２がエラーを起こしたり、いわゆるフリーズ状態となってしまうことがない。
【００４７】
＜第２の実施の形態＞  
以下、本発明の第２の実施の形態の記憶装置であるメモリカード１Ｂについて説明する。メモリカード１Ｂの構成および動作は、第１の実施の形態のメモリカード１と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【００４８】
メモリカード１Ｂのメモリコントローラ１２は、ホスト機器２を介することなく、高速アクセス領域１１Ｂに記憶されたユーザデータを通常アクセス領域１１Ａに移動可能である。ここで、「ホスト機器２を介することなく」、とは、データがメモリカード１Ｂとホスト機器２の間のバスインタフェース１４を介することないこと、すなわち、データがメモリカード１Ｂの内部のみで処理されることを意味する。
【００４９】
すでに説明したように、高速アクセス領域１１Ｂは、オリジナルブロックＯＢとサブブロックＳＢとからなるため、高速アクセス領域１１Ｂの容量を増加すると、ユーザデータ領域３４の容量が減少する。このため、高速アクセス領域１１Ｂの容量を適度に設定しておく必要がある。しかし、その場合でも、高速アクセス領域１１Ｂの空き容量を確保するためには、ホスト機器２は、高速アクセス領域１１Ｂからデータを移動することが好ましい。すなわち、高速アクセス領域１１Ｂを用いてランダムライトを行った結果、高速アクセス領域１１Ｂに記憶されたデータが、所定のサイズ以上になった場合には、通常アクセス領域１１Ａに当該データを移動し、高速アクセス領域１１Ｂに空き容量を作成することが好ましい。
【００５０】
ここで、図８を用いて、高速アクセス領域１１Ｂに記憶されたデータを、通常アクセス領域１１Ａに移動する際の処理の流れについて説明する。
【００５１】
図８（Ａ）に示すように、メモリカード１では、高速アクセス領域１１Ｂに記憶されたデータを、通常アクセス領域１１Ａに移動する際には、ホスト機器２に、高速アクセス領域１１Ｂに記憶されたデータを、いったん、転送する必要があった。すなわち、ステップＳ２１で、ホスト機器２から記憶装置であるメモリカード１へ対して、高速アクセス領域１１Ｂのユーザデータに対するリード（読み出し）要求のコマンドが発行される。ホスト機器２からのコマンドを受けて、ステップＳ２２で、メモリカード１は高速アクセス領域１１Ｂに記憶されていたユーザデータを、バスインタフェース１４を介してホスト機器２に出力する。ホスト機器２に出力されたユーザデータは、ステップＳ２３で、ホスト機器２のバッファに記憶される。ホスト機器２のバッファの空き容量がなくなるまで、ユーザデータがバッファに蓄積されたら（ステップＳ２４：Ｎｏ）、ステップＳ２５において、ホスト機器２のバッファから再びバスインタフェース１４を介して、メモリカードにユーザデータが出力され、そして、ステップＳ２６において、通常アクセス領域１１Ａに記憶される。予め定められた容量のユーザデータが、高速アクセス領域１１Ｂから通常アクセス領域１１Ａに移動したとステップＳ２７で判断されるまで、上記のコピー処理が継続する。
【００５２】
このように、メモリカード１では、高速アクセス領域１１Ｂのユーザデータを、通常アクセス領域１１Ａ移動するためには、ホスト機器２が、ある程度以上の容量のバッファメモリを有している必要があった。また、前記コピー処理では、バスインタフェース１４を介するため処理に時間を要することがあった。
【００５３】
これに対して、図８（Ｂ）に示すように、本実施の形態のメモリカード１Ｂにおいては、メモリカード１Ｂの内部で高速アクセス領域１１Ｂのユーザデータを、通常アクセス領域１１Ａ移動することができる。すなわち、ステップＳ３１において、ホスト機器２からコピー指示コマンドが発行されると、メモリカード１Ｂのメモリコントローラ１２は、高速アクセス領域１１Ｂに記憶されたユーザデータを、メモリカード１Ｂの内部の処理のみで、通常アクセス領域１１Ａに移動、すなわち、コピー処理をステップＳ３２で開始し、ステップＳ３３でコピー終了と判断されるまで、コピー処理を継続する。
【００５４】
なお、ホスト機器２からのコピー指示コマンドにおいては、コピー元である高速アクセス領域１１Ｂの開始アドレスおよび終了アドレスと、コピー先である通常アクセス領域１１Ａの開始アドレスおよび終了アドレスとが、コマンドの引数として含まれている。なお、メモリカード１Ｂはホスト機器２を介することなく、通常アクセス領域１１Ａに記憶されたユーザデータを、高速アクセス領域１１Ｂに移動することも可能である。
【００５５】
メモリカード１Ｂは、メモリカード１が有する効果に加えて、ホスト機器２を介することなく、高速アクセス領域１１Ｂのユーザデータを、通常アクセス領域１１Ａ移動できるため、ホスト機器２にバッファメモリが不要であり、かつ、バスインタフェース１４を介さないため、高速でのユーザデータの移動処理が可能である。
【００５６】
＜第３の実施の形態＞  
以下、本発明の第３の実施の形態の記憶装置であるメモリカード１Ｃについて説明する。メモリカード１Ｃの構成および動作は、第１の実施の形態のメモリカード１と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【００５７】
メモリカード１Ｃにおいては、メモリコントローラ１２が、ホスト機器２からのコマンドに従い、通常アクセス領域１１Ａの容量、および、高速アクセス領域１１Bの容量を、変更可能である。  
すでに図５を用いて説明したように、高速アクセス領域１１Ｂは、オリジナルブロックＯＢとサブブロックＳＢとからなるため、高速アクセス領域１１Ｂの容量を増加すると、ユーザデータ領域３４が記憶できる容量が減少する。
【００５８】
ここで、ユーザデータの種類によっては、ランダムライト処理が殆ど行われないデータもある。また、ホスト機器２の種類によっては高速処理が要求されず、ランダムライト処理により処理速度が低下しても、問題がない場合もある。あるいは、大容量のユーザデータを記憶するために、大容量のユーザデータ領域３４が必要となる場合もある。
【００５９】
ホスト機器２は、メモリカード１Ｃのメモリコントローラ１２に、コマンドを発行することで、高速アクセス領域１１Ｂの容量を、増減すること、あるいは、高速アクセス領域１１Ｂを無くすることもできる。  
すなわち、ホスト機器２は、高速アクセス領域１１Ｂの容量を引数としてコマンドをメモリコントローラ１２に送信すると、メモリコントローラ１２は高速アクセス領域１１Ｂの容量を増減する、すなわち、通常アクセス領域１１Ａの容量を増減する。そして、メモリコントローラ１２は変更後の、ユーザデータ領域３４の容量、高速アクセス領域１１Ｂの容量等をホスト機器２に返す。
【００６０】
なお、図５（Ｂ）は図５（Ａ）の状態から、ホスト機器２のコマンドにより高速アクセス領域１１Ｂの容量をゼロとした場合、逆に、図５（Ｃ）は図５（Ａ）の状態から、ホスト機器２のコマンドにより高速アクセス領域１１Ｂの容量を増加した場合の、メモリ容量のイメージを示している。
【００６１】
メモリカード１Ｃは、メモリカード１等が有する効果に加えて、ホスト機器２は、必要な容量の高速アクセス領域１１Ｂを、必要なときに、コマンドを発行することで確保することができるため、利便性がよい。
【００６２】
＜第４の実施の形態＞  
以下、図９を用いて、本発明の第４の実施の形態の記憶装置であるメモリカード１Ｄについて説明する。図９は、メモリカードにおけるアドレス空間を説明するための説明図である。なお、メモリカード１Ｄの構成および動作は、第１の実施の形態のメモリカード１と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【００６３】
メモリカード１Ｄにおいては、メモリコントローラ１２が、通常アクセス領域１１Ａと高速アクセス領域１１Ｂとを、ひとつの論理アドレス空間により管理する。  
図９（Ａ）に示すように、メモリカード１においては、メモリコントローラ１２は、メモリ部１１を通常アクセス領域１１Ａと高速アクセス領域１１Ｂとを異なるアドレス空間で管理していた。すなわち、通常アクセス領域１１ＡはアドレスＡ０を開始番地とし、アドレスＡｎ−１を最終番地とした論理アドレス空間で、高速アクセス領域１１ＢはアドレスＢ０を開始番地とし、アドレスＢｋを最終番地とした論理アドレス空間で、管理していた。このため、ホスト機器２は、アクセスする領域を切り替えるためには、アクセス領域切り替えコマンドを発行していた。
【００６４】
これに対して、図９（Ｂ）に示すように、メモリカード１Ｄにおいては、メモリコントローラ１２は、通常アクセス領域１１Ａと高速アクセス領域１１Ｂとを、ひとつの論理アドレス空間により管理している。すなわち、通常アクセス領域１１Ａの開始番地をアドレスＡ０とし、アドレスＡｎ−１を最終番地としながら、高速アクセス領域１１Ｂの開始番地をアドレスＡｎ、最終番地をＡｍとしている。言い換えれば、メモリカード１Ｄにおいては、高速アクセス領域１１Ｂが、通常アクセス領域１１Ａにマッピングされている。
【００６５】
このため、メモリカード１Ｄにおいては、ホスト機器２は、アクセスする領域を切り替えるために、アクセス領域切り替えコマンドを発行する必要がなく、ユーザデータを記憶するアドレスを指定するだけでよい。メモリコントローラ１２は、ホスト機器２が指定したアドレスが高速アクセス領域１１Ｂの番地の場合には、高速アクセス処理を行う。
【００６６】
このため、メモリカード１Ｄは、メモリカード１等が有する効果に加えて、ホスト機器２の制御が容易である。
【００６７】
なお、メモリカード１Ｄのメモリコントローラ１２は、ホスト機器２が新規に記憶しようとする新規ユーザデータの容量が、高速アクセス領域１１Ｂの空容量を超えている場合、高速アクセス領域１１Ｂの空容量が、新規ユーザデータの容量を超えるように、高速アクセス領域１１Ｂに記憶されているユーザデータを通常アクセス領域１１Ａに移動し、新規ユーザデータを、高速アクセス領域１１Ｂに記憶することも可能である。
【００６８】
すなわち、ホスト機器２が指定したアドレスが高速アクセス領域１１Ｂの番地であるが、高速アクセス領域１１Ｂの空き容量が記憶すべきユーザデータより小さい場合には、すでに高速アクセス領域１１Ｂに記憶されていたユーザデータを通常アクセス領域１１Ａにコピーし、高速アクセス領域１１Ｂに空き容量を作成する。
【００６９】
このため、メモリカード１Ｄは、ホスト機器２が、高速アクセス領域１１Ｂの空容量が比較的少なくても、所望サイズのユーザデータを高速アクセス領域１１Ｂにランダムライトできるため、ランダムライトアクセス速度が速い記憶装置である。
【００７０】
なお、本実施形態ではメモリカードを一例として説明したが、同様のメモリ構造を持つ他のメモリデバイス等の記憶装置にも適用可能である。
【００７１】
また、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００７２】
【図１】第１の実施の形態にかかるメモリカードの構成を示す概略図である。
【図２】第１の実施の形態にかかるメモリカードの構成を示すブロック図である。
【図３】メモリ部のユーザデータ領域におけるデータ配置例を示す説明図である。
【図４】従来のメモリカードにおけるユーザデータの記憶方法について説明するための説明図である。
【図５】第１の実施の形態にかかるメモリカードにおけるメモリ部の構成を説明するための説明図で
【図６】第１の実施の形態にかかるメモリカードにおけるユーザデータの記憶方法について説明するための説明図である。
【図７】第１の実施の形態にかかるメモリカードにおけるユーザデータの記憶の際の処理の流れを説明するためのフローチャートである。
【図８】第２の実施の形態にかかるメモリカードにおける高速アクセス領域に記憶されたデータを、通常アクセス領域に移動する際のフローチャートを示す。
【図９】第４の実施の形態にかかるメモリカードにおけるアドレス空間を説明するための説明図である。
【符号の説明】
【００７３】
１…メモリカード    １Ｂ…メモリカード    １Ｃ…メモリカード    １Ｄ…メモリカード    ２…ホスト機器    １１…メモリ部    １１Ａ…通常アクセス領域    １１Ｂ…高速アクセス領域    １２…メモリコントローラ    １３…コネクタ    １４…バスインタフェース    ２１…ホストインタフェースモジュール    ２３…フラッシュコントローラ    ２６…バッファ    ２７…レジスタ部    ３１…管理データ領域    ３２…機密データ領域    ３３…保護データ領域    ３４…ユーザデータ領域
【図１】
2009265839.tif 000003
【図２】
2009265839.tif 000004
【図３】
2009265839.tif 000005
【図４】
2009265839.tif 000006
【図５】
2009265839.tif 000007
【図６】
2009265839.tif 000008
【図７】
2009265839.tif 000009
【図８】
2009265839.tif 000010
【図９】
2009265839.tif 000011