(57)【要約】【課題】  不揮発性半導体メモリの効率の良い制御を行うことが可能な半導体メモリカード、半導体メモリカードのデータ管理方法、及びデータベースエンジンを提供する。【解決手段】  半導体メモリカード１は、データベースエンジン１００を具備する。データベースエンジン１００は、アプリケーションインタフェース部１０１、データ管理システム部１０２、ファイルシステム部１０３を有する。アプリケーションインタフェース部１０１は、ホスト装置２のアプリケーションプログラム２１から受信したデータベース問い合わせ操作文を、データベースエンジン１００内で実行解釈可能な内部形式へと変換する。データ管理システム部１０２は、データベース１０４内部のテーブル１０５に対して、画像ファイルの各種情報の追加、更新、削除等の操作を行う。ファイルシステム部１０３は、ＮＡＮＤ型フラッシュメモリ１２に記憶されるデータの読み書きを制御する。【選択図】  図３
2008181381.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に着脱自在に取り付け可能な半導体メモリカードにおいて、
前記ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリと、
前記半導体メモリカードの動作を制御するカードコントローラとを具備し、
前記ホスト装置から受信したデータ及び前記不揮発性半導体メモリに記憶されるファイルの情報は、前記カードコントローラに組み込まれたデータベースエンジンにより管理され、当該データベースエンジンは前記ホスト装置から受信したデータベース問い合わせ操作文を解釈することにより動作することを特徴とする半導体メモリカード。
【請求項２】
前記データベースエンジンは、
前記ホスト装置から受信したデータベース問い合わせ操作文を解釈するアプリケーションインタフェース部と、
前記不揮発性半導体メモリに記憶されるファイルの情報を、データベースを使用して管理するデータ管理システム部と、
前記ホスト装置から受信したデータの前記不揮発性半導体メモリへの書き込み及び前記不揮発性半導体メモリに記憶されるデータの前記ホスト装置への読み出しを制御するファイルシステム部とを具備することを特徴とする請求項１に記載の半導体メモリカード。
【請求項３】
前記不揮発性半導体メモリはＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１または請求項２に記載の半導体メモリカード。
【請求項４】
前記データベース問い合わせ操作文はＳＱＬ言語により記述されることを特徴とする請求項１乃至請求項３のいずれか１項に記載の半導体メモリカード。
【請求項５】
ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリと、当該ホスト装置から受信したデータ及び当該不揮発性半導体メモリに記憶されるファイルの情報をデータベースエンジンにより管理するカードコントローラとを具備する半導体メモリカードのデータ管理方法であって、
前記データベースエンジンが有するアプリケーションインタフェース部が、前記ホスト装置から受信したデータベース問い合わせ操作文を解釈し、
前記アプリケーションインタフェース部により解釈されたデータベース問い合わせ操作文に従って、前記データベースエンジンが有するデータ管理システム部が、前記不揮発性半導体メモリに記憶されるファイルの情報をデータベースを使用して管理し、
前記データ管理システム部の指示に従って、前記データベースエンジンが有するファイルシステム部が、前記ホスト装置から受信したデータの前記不揮発性半導体メモリへの書き込み及び前記不揮発性半導体メモリに記憶されるデータの前記ホスト装置への読み出しを制御することを特徴とする半導体メモリカードのデータ管理方法。
【請求項６】
ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリを有する半導体メモリカードに、
前記ホスト装置から受信したデータベース問い合わせ操作文を解釈するアプリケーションインタフェース機能と、
前記アプリケーションインタフェース機能により解釈されたデータベース問い合わせ操作文に従って、前記不揮発性半導体メモリに記憶されるファイルの情報をデータベースを使用して管理するデータ管理システム機能と、
前記データ管理システム機能からの指示に従って、前記ホスト装置から受信したデータの前記不揮発性半導体メモリへの書き込み及び前記不揮発性半導体メモリに記憶されるデータの前記ホスト装置への読み出しを制御するファイルシステム機能とを実現させることを特徴とするデータベースエンジン。
【請求項７】
ホスト装置に取り付け可能な半導体メモリシステムにおいて、
前記ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリと、
前記半導体メモリカードの動作を制御するカードコントローラとを具備し、
前記ホスト装置から受信したデータ及び前記不揮発性半導体メモリに記憶されるファイルの情報は、前記カードコントローラに組み込まれたデータベースエンジンにより管理され、当該データベースエンジンは前記ホスト装置から受信したデータベース問い合わせ操作文を解釈することにより動作することを特徴とする半導体メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種電子機器に取り付けて使用可能な半導体メモリカード、半導体メモリカードのデータ管理方法、半導体メモリカードのデータ管理を行うデータベースエンジン、及び半導体メモリシステムに関する。
【背景技術】
【０００２】
現在、音楽データや映像データの記録メディアとして、ＮＡＮＤ型フラッシュメモリを用いた半導体メモリカードが使用されている。ＮＡＮＤ型フラッシュメモリは、１）データの書き込みはページ単位で行われる、２）データの消去は複数ページをまとめたブロック単位で行われる、という特徴を有する。このため、書き込み済みのページを有するブロック内に含まれるページ内のデータがランダムに更新される場合、以下に述べる「引越し書き込み」という処理が行われる。引越し書き込みでは、書き込まれるデータ（新データ）がデータの書き込まれていない新ブロックに書き込まれ、旧データ（新データに書き換えられるデータ）を含む旧ブロックから、書き換えられない残りのデータが新ブロックにコピーされる。
【０００３】
一方、半導体メモリカードのデータ管理を行うファイルシステムとして、ハードディスク等と同様のＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）ファイルシステムが採用されている（例えば、特許文献１参照。）。
【０００４】
半導体メモリカードが挿入されるホスト装置中のＦＡＴファイルシステムは、書き込みファイルをクラスタと呼ばれる論理単位の大きさのデータに分割し、空きクラスタを順方向に検索して、分割された各データに論理アドレスを割り当てることでファイルを構成する。ファイルを構成するクラスタがどの順番で連なっているかという連鎖情報は、ＮＡＮＤ型フラッシュメモリ内部の特定のブロックにＦＡＴと呼ばれるテーブルとして書き込まれ管理される。半導体メモリカードは、各データの論理アドレスとＮＡＮＤ型フラッシュメモリ内部の物理的位置情報を示す物理アドレスとの対応を、ＮＡＮＤ型フラッシュメモリ内部の特定のブロックに設定された論理−物理アドレス対応表で管理しながらデータを書き込む。
【０００５】
上記のようなＦＡＴファイルファイルシステムを使用した場合、ファイルの削除、作成を繰り返すことにより、１つのファイルを構成するクラスタの割り当てが不連続になり、通常ＮＡＮＤ型フラッシュメモリ内部において１つのブロックに収まるデータサイズのファイルが、２つ以上のブロックに跨って格納される場合がある。
【０００６】
従って、ＦＡＴファイルファイルシステムとＮＡＮＤ型フラッシュメモリを併用した半導体メモリカードでは、通常、引越し書き込みが発生する頻度が高く、ファイルの書き込み、書き換え速度が低下する場合があるという問題点があった。
【特許文献１】特開２００１−１８８７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明では、不揮発性半導体メモリの効率の良い制御を行うことが可能な半導体メモリカード、半導体メモリカードのデータ管理方法、及びデータベースエンジンを提供する。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る半導体メモリカードは、ホスト装置に着脱自在に取り付け可能な半導体メモリカードにおいて、前記ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリと、前記半導体メモリカードの動作を制御するカードコントローラとを具備し、前記ホスト装置から受信したデータ及び前記不揮発性半導体メモリに記憶されるファイルの情報は、前記カードコントローラに組み込まれたデータベースエンジンにより管理され、当該データベースエンジンは前記ホスト装置から受信したデータベース問い合わせ操作文を解釈することにより動作することを特徴とする。
【０００９】
また、本発明の別態様に係る半導体メモリカードのデータ管理方法は、ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリと、当該ホスト装置から受信したデータ及び当該不揮発性半導体メモリに記憶されるファイルの情報をデータベースエンジンにより管理するカードコントローラとを具備する半導体メモリカードのデータ管理方法であって、前記データベースエンジンが有するアプリケーションインタフェース部が、前記ホスト装置から受信したデータベース問い合わせ操作文を解釈し、前記アプリケーションインタフェース部により解釈されたデータベース問い合わせ操作文に従って、前記データベースエンジンが有するデータ管理システム部が、前記不揮発性半導体メモリに記憶されるファイルの情報をデータベースを使用して管理し、前記データ管理システム部の指示に従って、前記データベースエンジンが有するファイルシステム部が、前記ホスト装置から受信したデータの前記不揮発性半導体メモリへの書き込み及び前記不揮発性半導体メモリに記憶されるデータの前記ホスト装置への読み出しを制御することを特徴とする。
【００１０】
また、本発明の更に別態様に係るデータベースエンジンは、ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリを有する半導体メモリカードに、前記ホスト装置から受信したデータベース問い合わせ操作文を解釈するアプリケーションインタフェース機能と、前記アプリケーションインタフェース機能により解釈されたデータベース問い合わせ操作文に従って、前記不揮発性半導体メモリに記憶されるファイルの情報をデータベースを使用して管理するデータ管理システム機能と、前記データ管理システム機能からの指示に従って、前記ホスト装置から受信したデータの前記不揮発性半導体メモリへの書き込み及び前記不揮発性半導体メモリに記憶されるデータの前記ホスト装置への読み出しを制御するファイルシステム機能とを実現させることを特徴とする。
【００１１】
また、本発明の更に別態様に係る半導体メモリシステムは、ホスト装置に取り付け可能な半導体メモリシステムにおいて、前記ホスト装置から受信したデータを記憶可能な不揮発性半導体メモリと、前記半導体メモリカードの動作を制御するカードコントローラとを具備し、前記ホスト装置から受信したデータ及び前記不揮発性半導体メモリに記憶されるファイルの情報は、前記カードコントローラに組み込まれたデータベースエンジンにより管理され、当該データベースエンジンは前記ホスト装置から受信したデータベース問い合わせ操作文を解釈することにより動作することを特徴とする。
【発明の効果】
【００１２】
本発明では、不揮発性半導体メモリの効率の良い制御を行うことが可能な半導体メモリカード、半導体メモリカードのデータ管理方法、データベースエンジン、及び半導体メモリシステムを提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態について図面を参照して説明する。
【００１４】
図1は、本実施形態に係る半導体メモリカード（以下、メモリカードと称す）１とホスト装置２との関係を示すブロック図である。本実施形態では、ホスト装置２としてデジタルスチルカメラを想定し、メモリカード１として画像ファイルの名前、撮影日時等の情報をデータベースで管理するデジタルスチルカメラ専用メモリカードを想定する。
【００１５】
メモリカード１は、メモリカード１の動作を制御するカードコントローラ１１、及びホスト装置２から送信されるデータ（画像ファイル等）を記憶する不揮発性半導体メモリ、例えばＮＡＮＤ型フラッシュメモリ１２を有する。ホスト装置２から受信したデータ及びＮＡＮＤ型フラッシュメモリ１２に記憶されるファイルの情報は、カードコントローラ１１に組み込まれたデータベースエンジン１００により管理される。
【００１６】
ホスト装置２は、メモリカード１をデータベース問い合わせ操作文により制御するアプリケーションプログラム２１、及び撮影した画像等を表示する液晶ディスプレイ２２を有する。また、アプリケーションプログラム２１は、メモリカード１から受信した情報をユーザーが認識し易い形に処理して液晶ディスプレイ２２上に表示する機能を有する。
【００１７】
図１に示すように、ホスト装置２はアプリケーションプログラム２１によりメモリカード１に対する問い合わせを行い、メモリカード１は、回答が必要な問い合わせについて、データベースエンジン１００によりホスト装置２に対する回答を行う。
【００１８】
次に、メモリカード１内部のハード構成に関して説明する。図２は、メモリカード１内部のハード構成を示すブロック図である。
【００１９】
図２に示すように、カードコントローラ１１はホストインタフェース部１３、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４、メモリインタフェース部１５、ＲＯＭ１６（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ１７（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、及びバッファ１８を有する。
【００２０】
ホストインタフェース部１３は、カードコントローラ１１とホスト装置２との間のインタフェース処理を行い、メモリインタフェース部１５は、カードコントローラ１１とＮＡＮＤ型フラッシュメモリ１２との間のインタフェース処理を行う。
【００２１】
ＭＰＵ１４は、カードコントローラ１１の動作を制御し、例えばメモリカード１が電源供給を受けた際に、ＲＯＭ１６に格納される制御プログラムをＲＡＭ１７上に読み出して所定の処理を実行する。
【００２２】
ＲＯＭ１６は、ＭＰＵ１４により制御される制御プログラム等を格納し、ＲＡＭ１７は、ＭＰＵ１４の作業エリアとして使用される。
【００２３】
バッファ１８は、ホスト装置２から送信されるデータをＮＡＮＤ型フラッシュメモリ１２へ書き込む際に、一定量のデータを一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ１２から読み出されるデータをホスト装置２へ送り出す際に一定量のデータを一時的に記憶したりする。
【００２４】
ＮＡＮＤ型フラッシュメモリ１２は、消去時のブロックが例えば１２８ページからなり、２５６ｋＢのデータサイズを有している（ここでは冗長部の容量は無視している）。尚、これに限らず、ブロックサイズが１６ｋＢ等のＮＡＮＤ型フラッシュメモリを使用することも可能である。
【００２５】
また、ＮＡＮＤ型フラッシュメモリ１２は、１つのメモリセルに１ビットの情報を記憶する２値メモリであっても良いし、１つのメモリセルに２ビット以上の情報を記憶する多値メモリであっても良い。また、ＮＡＮＤ型フラッシュメモリ１２及びカードコントローラ１１は、基板上に個別に設けられていても良いし、同一のＬＳＩ基板上に配置されていても良い。
【００２６】
本実施形態においては、ＭＰＵ１４が、ＲＯＭ１６にプログラムとして格納されるデータベースエンジン１００をＲＡＭ１７上に読み出し、ホスト装置２から受信したデータ及びＮＡＮＤ型フラッシュメモリ１２に記憶されるファイルの情報を管理する。
【００２７】
尚、メモリカード１内部のハード構成は上記の構成に限るものではない。従って、データベースエンジン１００が格納される記録媒体も当然上記ＲＯＭ１６に限定されるものではない。
【００２８】
次に、メモリカード１内部で動作するデータベースエンジン１００の構成について説明する。図３は、データベースエンジン１００と、ホスト装置２から受信したデータ及びＮＡＮＤ型フラッシュメモリ１２に記憶されるファイルの情報との関係を示す。データベースエンジン１００は、アプリケーションインタフェース部１０１、データ管理システム部１０２、ファイルシステム部１０３を有する。また、ＮＡＮＤ型フラッシュメモリ１２内部には後述するデータベース１０４を構成するデータベースファイル、及び画像ファイル等が記憶されている。
【００２９】
アプリケーションインタフェース部１０１は、ホスト装置２のアプリケーションプログラム２１から受信したデータベース問い合わせ操作文を、データベースエンジン１００内で実行解釈可能な内部形式へと変換する。データベース問い合わせ操作文は、任意の文字列等で適宜定義された言語を使用すれば良く、例えばＳＱＬ言語等により記述しても良い。ＳＱＬ言語は、リレーショナルデータベースの管理を行うデータベースエンジンに対して一般的に使用される言語であり、データ定義言語、データ操作言語、及びデータ制御言語に分類される。
【００３０】
データ管理システム部１０２は、アプリケーションインタフェース部１０１で内部形式へ変換されたデータベース問い合わせ操作文に従って、図４に示すデータベース１０４内部のテーブル１０５に対して、ＮＡＮＤ型フラッシュメモリ１２内部に記憶される画像ファイルの各種情報の追加、更新、削除等の操作を行う。データベース１０４は、図４に示すように、例えばファイル名、撮影日時、及び後述するＮＡＮＤ型フラッシュメモリ１２内部での画像ファイルの格納位置を示すアドレスを項目に設定したテーブル１０５を含む。尚、テーブル１０５の項目はファイル名、撮影日時、アドレスに限る必要は無く、ファイルサイズやファイル属性等の各種情報を必要に応じて項目に設定すれば良い。
【００３１】
更に、データ管理システム部１０２は、ＮＡＮＤ型フラッシュメモリ１２に記憶されるデータベース１０４内の情報の更新、及びＮＡＮＤ型フラッシュメモリ１２に対する画像ファイルの書き込み、読み出し等を行うようファイルシステム部１０３に指示する。
【００３２】
また、データベース１０４には任意の項目を設定した複数のテーブル１０５が存在し、これらが互いに関連付けられることでリレーショナルデータベースを構成している。
【００３３】
ファイルシステム部１０３は、データ管理システム部１０２の指示に従って、ホスト装置２から受信したデータのＮＡＮＤ型フラッシュメモリ１２への書き込み及びＮＡＮＤ型フラッシュメモリ１２に記憶されるデータのホスト装置２への読み出しを制御する。また、ファイルシステム部１０３は、ファイルの入出力の単位となるデータ管理サイズを決め、データベース１０４を構成するファイルや画像ファイルのＮＡＮＤ型フラッシュメモリ１２内部における格納位置の管理を行う。
【００３４】
次に、メモリカード１の動作に関して説明する。
【００３５】
図５は、ＮＡＮＤ型フラッシュメモリ１２に記憶されている画像ファイルのリスト読出し動作を示す。ホスト装置２のアプリケーションプログラム２１からメモリカード１の図示せぬデータベースエンジン１００に送信されるデータベース問い合わせ操作文には、全ファイルリスト読出し要求が含まれる。図５において、“ＲＡ”は全ファイルリスト読出し要求を示す。
【００３６】
データベースエンジン１００内のアプリケーションインタフェース部１０１は、受信したデータベース問い合わせ操作文を、データベースエンジン１００で実行解釈可能な内部形式へと変換する。データ管理システム部１０２は、アプリケーションインタフェース部１０１で内部形式に変換された指示に従い、データベース１０４内部のテーブル１０５からファイル名、撮影日時の項目を検索し、ファイルシステム部１０３に対しデータベース１０４からのデータ読み出しを指示する。ファイルシステム部１０３は、データ管理システム部１０２の指示に従い、ＮＡＮＤ型フラッシュメモリ１２内のデータベース１０４からデータの読み出しを行う。読み出されたデータは、全ファイルリストを含む回答としてホスト装置２のアプリケーションプログラム２１に送信される。
【００３７】
ホスト装置２のアプリケーションプログラム２１は、受信した全ファイルリストをユーザーが認識し易い形に加工し、液晶ディスプレイ２２に表示する。以上の動作により、ユーザーはメモリカード１に記憶された画像ファイルの情報を確認することができる。
【００３８】
次に、図６を用いてメモリカード１への画像ファイル追加動作を説明する。ユーザーが撮影を終えると、アプリケーションプログラム２１は撮影した画像の保存の要否の選択を要求する。ユーザーが保存を選択した場合は、画像ファイルをメモリカード１に追加する動作を実行する。この時、アプリケーションプログラム２１から図示せぬデータベースエンジン１００に送信されるデータベース問い合わせ操作文には、データ追加要求であること、ファイル名、撮影日時、及び追加画像データに関する情報が含まれる。
【００３９】
図６において、“Ｗ”はデータ追加要求、“０００１０．ｊｐｇ”はファイル名、“２００６０７２０１５１２３０”は撮影日時、及び“画像データＡ”は追加画像データを示す。データベースエンジン１００内のアプリケーションインタフェース部１０１は、このデータベース問い合わせ操作文をデータベースエンジン１００内部で実行解釈可能な内部形式に変換する。データ管理システム部１０２は、アプリケーションインタフェース部１０１で変換された情報に従い、データベース１０４内のテーブル１０５にファイル情報を追加し、ＮＡＮＤ型フラッシュメモリ１２内のデータベース１０４の更新、及びＮＡＮＤ型フラッシュメモリ１２への画像ファイルの書き込みをファイルシステム部１０３に対し指示する。
【００４０】
ファイルシステム部１０３はデータ管理システム部１０２の指示に従い、ＮＡＮＤ型フラッシュメモリ１２内のデータベース１０４の更新、及びＮＡＮＤ型フラッシュメモリ１２への画像ファイルの書き込みを行う。ファイルシステム部１０３がＮＡＮＤ型フラッシュメモリ１２に記憶されるデータの格納位置を管理する方法に関しては後述する。
【００４１】
次に、図７を用いてメモリカード１からの画像ファイル読出し動作を説明する。ユーザーは、全ファイルリスト読み出し操作文により液晶ディスプレイ２２に表示されたファイルリストから、表示したい画像ファイルを選択する。この時、アプリケーションプログラム２１から図示せぬデータベースエンジン１００に送信されるデータベース問い合わせ操作文には、読出し要求であること、読み出したい画像データのファイル名が含まれる。
【００４２】
図７において、“Ｒ”は読出し要求、“００００９．ｊｐｇ”は読み出したいファイル名を示す。アプリケーションインタフェース部１０１はこのデータベース問い合わせ操作文をデータベースエンジン１００内部で実行解釈可能な内部形式に変換する。データ管理システム部１０２は、アプリケーションインタフェース部１０１で変換された情報に従い、データベース１０４内のテーブル１０５の検索を行う。
【００４３】
データ管理システム部１０２は、テーブル１０５からファイル名の合致する行を探し出し、対応するアドレスを参照してＮＡＮＤ型フラッシュメモリ１２からの画像ファイルの読み出しをファイルシステム部１０３に対し指示する。ファイルシステム部１０３はデータ管理システム部１０２の指示に従い、画像ファイルの読み出しを行う。読み出された画像ファイルは回答としてアプリケーションプログラム２１に送信される。アプリケーションプログラム２１は、受け取った情報をユーザーの認識しやすい形に加工し、液晶ディスプレイ２２に表示する。
【００４４】
次に、図８を用いてメモリカード１からの画像ファイル削除動作を説明する。ユーザーは全ファイルリスト読み出し操作文により液晶ディスプレイ２２に表示されたファイルリストの中から、削除したい画像ファイルを選択する。この時、アプリケーションプログラム２１から図示せぬデータベースエンジン１００に送信されるデータベース問い合わせ操作文には、削除要求であること、削除したい画像データのファイル名が含まれる。
【００４５】
図８において、“Ｄ”は削除要求、“００００８．ｊｐｇ”は削除したいファイル名を示す。アプリケーションインタフェース部１０１はこのデータベース問い合わせ操作文を内部形式に変換する。データ管理システム部１０２は、アプリケーションインタフェース部１０１で変換された情報に従い、データベース１０４内のテーブル１０５の検索を行う。データ管理システム部１０２は、テーブル１０５からファイル名の合致する行を探し出し、対応するアドレスを参照してＮＡＮＤ型フラッシュメモリ１２からの画像ファイルの削除をファイルシステム部１０３に対し指示する。ファイルシステム部１０３はデータ管理システム部１０２の指示に従い、画像ファイルの削除を行う。
【００４６】
次に、ファイルシステム部１０３がＮＡＮＤ型フラッシュメモリ１２に記憶されるデータの格納位置を管理する方法について説明する。ファイルシステム部１０３は、ＮＡＮＤ型フラッシュメモリ１２の記憶領域を消去可能単位であるブロックＢＫのサイズの１／４倍、即ち６４ｋＢのサイズを有する記録ユニットＲＵで管理する。即ち、ファイルシステム部１０３はファイルを記録ユニットＲＵの大きさのデータに分割して書き込みを行う。尚、記録ユニットＲＵのサイズはブロックＢＫのサイズの１／４倍に限るものではなく、ブロックＢＫのサイズの１／ｎ（ｎは偶数）倍であれば良い。
【００４７】
以下、画像ファイルのデータ格納位置の管理に関して説明する。データベース１０４を構成する各種ファイルは同様に管理されるため省略する。まず、画像ファイルＡ、画像ファイルＢ、画像ファイルＣ、及び画像ファイルＤをＮＡＮＤ型フラッシュメモリ１２に書き込む場合を考える。画像ファイルＡは記録ユニットＲＵ３個分、画像ファイルＢは記録ユニットＲＵ２個分、画像ファイルＣは記録ユニットＲＵ２個分、及び画像ファイルＤは記録ユニットＲＵ１個分であり、これらはそれぞれ１個のブロックＢＫに収まるとする。
【００４８】
図９に示すように、これらのファイルをＮＡＮＤ型フラッシュメモリ１２に書き込む場合、ファイルシステム部１０３は各ファイルを記録ユニットＲＵのサイズに分割し、分割された各データを空いているブロックＢＫの先頭に配置していく。このように、ブロックＢＫのサイズ以下のファイルが、複数のブロックＢＫに跨って配置されないようにデータの書き込みが行われる。
【００４９】
次に、１個のブロックＢＫに収まらないサイズであるファイルＥの書き込みが発生した場合を考える。ファイルＥは、記録ユニットＲＵ９個分のサイズである。まず、ＮＡＮＤ型フラッシュメモリ１２の記憶領域に記録ユニットＲＵ９個分の連続した空き領域を確保できる場合は、その領域に対し分割した各データを配置する。
【００５０】
一方、ＮＡＮＤ型フラッシュメモリ１２の記憶領域に記録ユニットＲＵ９個分の連続した領域を確保できない場合、画像ファイルＡ乃至画像ファイルＤを構成するデータを、各ファイルサイズを考慮して再配置し、空きとなったブロックに連続してファイルＥを構成するデータを書き込む。
【００５１】
このように、ファイルシステム部１０３は、１個のファイルを構成する記録ユニットＲＵのサイズに分割されたデータが、複数の連続しないブロックＢＫに跨って配置されないように書き込みを制御しているため、従来に比べファイル書き換え時にアクセスしなければならないブロックＢＫの数が減少し、書き換え時の効率が良くなる。
【００５２】
以上のように、本実施形態に係るメモリカード１では、カードコントローラ１１にデータベースエンジン１００を組み込んだことにより、ホスト装置２がファイルシステムを実装する必要が無く、データベース問い合わせ操作文により簡単な定義文や操作文を与えるだけでメモリカード１にアクセスすることが可能となり、また、ＮＡＮＤ型フラッシュメモリ１２に記憶された画像ファイルを効率良く検索できる。
【００５３】
また、データベースエンジン１００は独自のファイルシステム部１０３を有するので、従来ホスト装置が半導体メモリカードを制御する為に使用していたＦＡＴファイルシステムを用いる必要は無く、上述したようなＮＡＮＤ型フラッシュメモリ１２の特性に適した制御を行うことが可能であり、高速なデータ書き換えを実現できる。
【００５４】
また、データベースエンジン１００は独自のファイルシステム部１０３を有するので、例えば半導体メモリカードに内蔵されるＮＡＮＤ型フラッシュメモリの仕様が変わった場合でも、ホスト装置に影響を及ぼすこと無く、ＮＡＮＤ型フラッシュメモリに適した制御方法を採用することができる。
【００５５】
また、従来半導体メモリカードで使用されていたＦＡＴファイルシステムの利用に適するための複雑な機能は不要となる。
【００５６】
また、ＮＡＮＤ型フラッシュメモリ１２に対するデータ書き込み方法は、本実施形態において説明した方法に限らず、同じブロックＢＫ内で先頭ページから連続したページに順次シーケンシャルにデータが書き込まれるような方法等であっても良く、適宜ファイルシステムを設計することが可能である。
【００５７】
また、本実施形態に係るメモリカード１では、データベースエンジン１００がファイルシステム部１０３を有していたが、これに限らず、データベースエンジン１００がＮＡＮＤ型フラッシュメモリ１２をＲａｗデバイスとして直接制御しても良い。
【００５８】
また、本実施形態に係るメモリカード１では、データベース１０４はリレーショナルデータベースであるとしたが、これに限らず、階層型、ネットワーク型等、他の種類のデータベースを使用しても良い。
【００５９】
また、本実施形態に係るメモリカード１では、画像データをデータベース１０４に含まない場合について説明したが、これに限らず、画像データをデータベース１０４内部で管理するようにデータベースエンジン１００を設計しても良い。
【００６０】
また、全ファイルリスト読み出し操作時に、同時に対応する画像データのサムネイル画像を読み出し、液晶ディスプレイ２２上に表示する等の改良を加えても良い。
【００６１】
また、データベース１０４に対するアクセス権の設定、データベースエンジン１００内部への暗号化エンジンの実装等によりセキュリティ機能を高める等の改良を加えても良い。
【００６２】
また、ファイル名を指定した検索以外にも、撮影日時の範囲を指定した検索、日付を指定した検索等の機能を適宜加えても良い。
【００６３】
また、本実施形態に係るメモリカード１では、ＮＡＮＤ型フラッシュメモリを有する半導体メモリカードについて説明したが、これに限らず、ＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ等の不揮発性半導体メモリを有する半導体メモリカードに対しても本発明は適用可能である。この場合、それぞれのメモリの特性に適したデータベースエンジンを半導体メモリカード内部に組み込めば良い。
【００６４】
また、本実施形態に係るメモリカード１では、デジタルスチルカメラで使用した際の動作について説明を行ったが、他にも音楽プレイヤー、小型ノートパソコン、PDA、携帯電話等の各種電子機器に対しても用いることができる。この場合、それぞれの用途に応じたデータベースエンジンを半導体メモリカード内部に組み込めば良い。
【００６５】
また、データベースエンジン１００を組み込んだカードコントローラ１１及びカードコントローラ１１により制御されるＮＡＮＤ型フラッシュメモリ１２を有するメモリカード１を各種電子機器に取り付けて使用する場合に限らず、今後ＮＡＮＤ型フラッシュメモリ１２の更なる大容量化が進んだ場合には、カードコントローラ１１及びＮＡＮＤ型フラッシュメモリ１２を有する半導体メモリシステムを各種電子機器に直接組み込んで使用することも可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態に係る半導体メモリカード及びホスト装置の構成を示す概略図。
【図２】本発明の実施形態に係る半導体メモリカードのハード構成を示すブロック図。
【図３】本発明の実施形態に係る半導体メモリカードのデータベースエンジンの構成を示すブロック図。
【図４】本発明の実施形態に係る半導体メモリカードのファイル情報管理に使用されるテーブルを示す概略図。
【図５】本発明の実施形態に係る半導体メモリカードのファイルリスト読み出し動作を示す概念図。
【図６】本発明の実施形態に係る半導体メモリカードのデータ書き込み動作を示す概念図。
【図７】本発明の実施形態に係る半導体メモリカードのデータ読み出し動作を示す概念図。
【図８】本発明の実施形態に係る半導体メモリカードのデータ削除動作を示す概念図。
【図９】本発明の実施形態に係る半導体メモリカードのデータ格納位置の管理方法を説明する概念図。
【符号の説明】
【００６７】
１  半導体メモリカード
２  ホスト装置
１１  カードコントローラ
１２  ＮＡＮＤ型フラッシュメモリ
１３  ホストインタフェース部
１４  ＭＰＵ
１５  メモリインタフェース部
１６  ＲＯＭ
１７  ＲＡＭ
１８  バッファ
２１  アプリケーションプログラム
２２  液晶ディスプレイ
１００  データベースエンジン
１０１  アプリケーションインタフェース部
１０２  データ管理システム部
１０３  ファイルシステム部
１０４  データベース
１０５  テーブル
ＢＫ  ブロック
ＲＵ  記録ユニット
【図１】
2008181381.tif 000003
【図２】
2008181381.tif 000004
【図３】
2008181381.tif 000005
【図４】
2008181381.tif 000006
【図５】
2008181381.tif 000007
【図６】
2008181381.tif 000008
【図７】
2008181381.tif 000009
【図８】
2008181381.tif 000010
【図９】
2008181381.tif 000011