(57)【要約】【課題】高いＣＰＵ処理能力や広大なメモリ領域を有さないホスト機器に対しても、ファイルのアクセス状況を提示することができるメモリカード及びアクセス回数取得方法を提供する。【解決手段】メモリカード１００は、ホスト機器２００からユーザデータ領域１１３へアクセスが発生した場合、当該ユーザデータ領域１１３における特定のブロック単位毎のアクセス回数をカウントするアクセス回数カウント手段１２１と、アクセス回数を格納するアクセス回数格納領域１１４と、コントローラ１１６とを備える。コントローラ１１６は、ホスト機器２００から指定された論理アドレスに対応する、アクセス回数格納領域に格納されたアクセス回数を当該指定したホスト機器２００へ返信する。【選択図】図１
2006031106.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器から不揮発性メモリのユーザデータ領域へアクセスが発生した場合、当該ユーザデータ領域における特定のブロック単位毎のアクセス回数をカウントするアクセス回数カウント手段と、  前記不揮発性メモリ内に設けられた、前記アクセス回数を格納するアクセス回数格納領域と、  ホスト機器から指定された論理アドレスに対応する前記アクセス回数に関する情報を当該指定したホスト機器へ返信するコントローラと  を備えることを特徴とするメモリカード。
【請求項２】
前記コントローラは、前記アクセス回数に関する情報として、前記アクセス回数格納領域に格納されたアクセス回数を返信することを特徴とする請求項１に記載のメモリカード。
【請求項３】
前記アクセス回数格納領域に格納されたアクセス回数毎に、前記特定のブロック単位のアドレスを分類するアクセス回数ソート手段と、  前記不揮発性メモリ内に設けられた、前記アクセス回数と前記分類されたブロック単位のアドレスとを対応付して格納するアクセス回数ソート結果格納領域とを更に備え、  前記コントローラは、前記アクセス回数に関する情報として、前記アクセス回数ソート結果格納領域に格納された、前記ホスト機器から指定されたアクセス回数に応じた前記分類されたブロック単位のアドレスを返信することを特徴とする請求項１に記載のメモリカード。
【請求項４】
前記アクセス回数格納領域に格納されたアクセス回数を複数のレベルに分け、当該レベル別に前記特定のブロック単位のアドレスを分類するレベル別アクセス回数ソート手段と、  前記不揮発性メモリ内に設けられた、前記レベルと前記分類されたブロック単位のアドレスとを対応付けて格納するレベル別アクセス回数格納領域とを更に備え、  前記コントローラは、前記アクセス回数に関する情報として、前記レベル別アクセス回数格納領域に格納された、前記ホスト機器から指定されたレベルに応じた前記分類されたブロック単位のアドレスを返信することを特徴とする請求項１に記載のメモリカード。
【請求項５】
ホスト機器から不揮発性メモリのユーザデータ領域へアクセスが発生した場合、当該ユーザデータ領域における特定のブロック単位毎のアクセス回数をカウントするステップと、  前記アクセス回数を格納するステップと、  ホスト機器から指定された論理アドレスに対応する前記アクセス回数に関する情報を当該指定したホスト機器へ返信するステップと  を含むことを特徴とするアクセス回数取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、メモリカード及びメモリカード内に保存されたファイルへのアクセス回数を取得する方法に関する。
【背景技術】
【０００２】  近年、携帯電話やモバイル機器などの市場が急速に拡大しているが、それに伴いオーディオデータなどのデジタルコンテンツを記録するためのストレージデバイスとして、コンパクトで大容量なメモリカードの市場も拡大している。これは、昨今発展が著しく、販売量も伸びているデジタルスチルカメラやデジタルムービー、ボイスレコーダといった小型携帯機器に採用されていることが理由の一つとして挙げられる。又、携帯デジタル機器の性能向上や機能拡大により、今まで以上に高精細な静止画や高品質で長時間記録された動画やデジタルオーディオデータといった大容量コンテンツの種類や数が増えていることから、ユーザが購入するメモリカードが大容量化してきている。【０００３】  このような大容量メモリカードにおいて、ユーザによるメモリカードの利用期間は、小容量メモリカードに比べ、はるかに長期間となる。そして、長期間データを利用することにより、データの劣化が生じることとなる。このため、データの劣化をユーザに提示するべく、記憶媒体の使用状況を記憶媒体側に記憶させる技術が開示されている（例えば、特許文献１参照）。【０００４】  一方で、大量のコンテンツを記録した大容量メモリカードでは、個々のメモリカードのコンテンツを管理するという面で問題が出てきている。即ち、メモリカードに記憶しているデータの数が増え過ぎてしまうことで、ユーザはどれが残しておきたいコンテンツなのか判らなくなる。又、新たな記録を行うために不要なコンテンツを削除してメモリカードの空容量を増やそうと思っても、どれを消したらよいかの判断に迷ってしまうことがある。ここでコンテンツの１つずつを対応するアプリケーションを使用して確認してゆくことは時間がかかりすぎて適当ではない。このため、幾つかの機器ではユーザに対して不要なファイルの検出・削除を支援する操作が設定されている。【０００５】  例えば、従来のパーソナルコンピュータ（以下「パソコン」という。）でメモリカードを操作する場合は、不要なファイルの検出・削除支援ソフトウェアとしてディスククリーンナップソフトウェアを使用することができる。こういったソフトウェアでは、オペレーションシステム（以下「ＯＳ」という。）が記録した最終ファイルアクセス日の記録をもとに現在の日時と当該ファイルに最終アクセスした日付から不使用期間の長短を判断する。そして、ユーザには不使用期間が長いことをもってそのファイルが不要なファイルであり削除してもよい可能性が高いのではないかということを提示する。これにより、ユーザに対する利便性を向上させている。【特許文献１】特開２０００−７６０２０号公報（段落「０１１７」、図７）
【発明の開示】
【発明が解決しようとする課題】
【０００６】  上述したソフトウェアの動作概要は、メモリカード内すべてのコンテンツ、即ち、各ファイルに対して最終アクセス日付情報の取得操作や不使用期間の長短による並べ替え操作をホスト上で行い、更に、ユーザに判断を促すための情報（日付や不使用期間など）も提示する必要がある。例えば、１ＧＢのメモリカードの場合には、１万以上のファイルを扱わなければならない場合もある。このような膨大な数のファイルについて、ユーザに対する利便性を向上させるために各々のファイルの日付情報を取得して現在日時と比較するといった処理を行うには、ＣＰＵのクロック周波数が数百ＭＨｚ以上の強力な処理能力を持つことやデータ処理のために広大なメモリ空間を持つことなどが要求される。しかしながら、オーディオプレーヤや携帯電話といったパソコンよりもはるかに非力なＣＰＵ処理能力しか持たないホストや、日付情報を比較するために必要な現在日時を計時する手段を持たないホストでは、このような利便性をユーザに提供できないという問題がある。【０００７】  そこで、本発明は、高いＣＰＵ処理能力や広大なメモリ領域を有さないホスト機器に対しても、ファイルのアクセス状況を提示することができるメモリカード及びアクセス回数取得方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】  本発明の第１の特徴は、（イ）ホスト機器から不揮発性メモリのユーザデータ領域へアクセスが発生した場合、当該ユーザデータ領域における特定のブロック単位毎のアクセス回数をカウントするアクセス回数カウント手段と、（ロ）不揮発性メモリ内に設けられた、アクセス回数を格納するアクセス回数格納領域と、（ハ）ホスト機器から指定された論理アドレスに対応するアクセス回数に関する情報を当該指定したホスト機器へ返信するコントローラとを備えるメモリカードであることを要旨とする。【０００９】  本発明の第２の特徴は、（イ）ホスト機器から不揮発性メモリのユーザデータ領域へアクセスが発生した場合、当該ユーザデータ領域における特定のブロック単位毎のアクセス回数をカウントするステップと、（ロ）アクセス回数を格納するステップと、（ハ）ホスト機器から指定された論理アドレスに対応する前記アクセス回数に関する情報を当該指定したホスト機器へ返信するステップとを含むアクセス回数取得方法であることを要旨とする。
【発明の効果】
【００１０】  本発明によると、高いＣＰＵ処理能力や広大なメモリ領域を有さないホスト機器に対しても、ファイルのアクセス状況を提示することができるメモリカード及びアクセス回数取得方法を提供することができる。
【発明を実施するための最良の形態】
【００１１】  次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率等は現実のものとは異なることに留意すべきである。従って、具体的な寸法等は以下の説明を参酌して判断すべきものである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。【００１２】  本発明の実施の形態に係るメモリカードは、メモリカード内に記憶されたデータに対してアクセスした回数を、特定のブロック単位毎にメモリカード内に記憶する。この記憶したアクセス回数を利用することにより、データの使用頻度を判断し、ホスト機器でのデータ処理上の負担を軽減することができる。【００１３】  又、本発明の実施の形態では、メモリカード内に記憶されたアクセス回数などを読み出す際、そのアドレスを参照する。アドレスには、プログラム上で仮想的に使用するアドレスである論理アドレス（仮想アドレス）と、プログラムが実際に格納されている主記憶上のアドレスでえある物理アドレス（実アドレス）がある。本発明の実施の形態では、論理アドレスを用いて、アクセス回数に関する情報を管理する。【００１４】  （第１の実施の形態）  第１の実施の形態に係るアクセス回数取得システムは、図１に示すように、半導体メモリカード（以下、「メモリカード」という。）１００と、ホスト機器２００とを備える。【００１５】  まず、ホスト機器２００について説明する。ホスト機器２００は、ＳＤオーディオプレーヤを始めとするデジタル機器など、メモリカード１００に記憶されたデータにアクセスすることが可能な機器を指す。ホスト機器２００は、メモリカード１００が複数装着可能なカードインタフェース２０１と、ホスト機器２００の制御中枢をなすＣＰＵ２０２と、ＲＡＭ等で構成されるシステムメモリ２０３と、ホストの動作等を表示する表示装置２０４とを備える。【００１６】  システムメモリ２０３は、ファイルへのアクセス回数取得処理などをＣＰＵ２０２に実行させるためのプログラムを保存する記憶媒体である。記憶媒体は、例えば、ＲＡＭ、ハードディスク、フレキシブルディスク、コンパクトディスク、ＩＣチップ、カセットテープなどが挙げられる。このようなプログラムを保持した記憶媒体によれば、プログラムの保存、運搬、販売などを容易に行うことができる。【００１７】  表示装置２０４は、タッチパネル、モニタなどの画面を指し、液晶表示装置（ＬＣＤ）、発光ダイオード（ＬＥＤ）パネル、エレクトロルミネッセンス（ＥＬ）パネル等が使用可能である。【００１８】  その他、ホスト機器２００は、タッチパネル、キーボード、マウス等の機器である入力部を備えてもよい。入力部から入力操作が行われると対応するキー情報や位置情報がＣＰＵ２０２に伝達される。【００１９】  次に、メモリカード１００について説明する。メモリカード１００は、メモリコントローラを内蔵した半導体メモリカードであり、図１に示すように、インタフェース用信号端子１１０と、不揮発性メモリであるＮＡＮＤメモリ１０９と、プロセッサモジュール１０８とを備える。以下において、メモリ���ード１００の構成については、ＳＤメモリカードを例にとり、説明する。ＳＤメモリカードとは、具体的には、２４×３２×２．１ｍｍの大きさで、ＳＤＭＩ規格に対応した著作権保護機能を持ち、ＭＭＣ（Multi Media Card）の上位互換を可能とするメモリカードである。又、ＳＤメモリカードは、（株）東芝、松下電器産業（株）、サンディスクコーポレーション３社の共同開発によるＳＤＭＩ規格のメモリカードである。【００２０】  インタフェース用信号端子１１０は、クロック端子としてのＣＬＫ、コマンド転送と該当コマンドに対するレスポンス転送のためのＣＭＤ、データ端子としてのＤＡＴ０、ＤＡＴ１、ＤＡＴ２、ＤＡＴ３、電源端子としてのＶＤＤ、グランド端子ＧＮＤの合計９個の信号端子から構成される。【００２１】  ＮＡＮＤメモリ１０９は、主にメモリカードに関する情報を格納するための管理データ領域１１１と、機密データを格納するためのセキュリティ領域１１２と、ユーザのデータを格納するためのユーザデータ領域１１３と、アクセス回数格納領域１１４とに分割されている。その他、図示していないが、ＮＡＮＤメモリ１０９には、暗号用鍵データなどの重要情報を格納するための機密領域などが含まれる。尚、機密領域は、管理データ領域１１１に含まれてもよい。【００２２】  管理データ領域１１１は、メモリカード１００のセキュリティ情報やメディアＩＤなどのカード情報などが格納されており、ユーザは使用することができない領域である。【００２３】  セキュリティ領域１１２は、接続されたホスト機器と相互認証を行い、ホスト機器の正当性が証明された場合にのみアクセスできる領域である。【００２４】  ユーザデータ領域１１３は、メモリカード１００を使用するユーザが自由に使用できる領域であり、画像データ、音楽データ、文書データなど一般的なデータを格納する領域である。【００２５】  アクセス回数格納領域１１４は、ユーザデータ領域１１３のセクター（例えば、512Byte）や消去ブロック（例えば、16Kbyte）といった任意の単位（以下「ブロック単位」という。）毎に対して行なわれた“読み出し操作”、“書き込み操作”、“消去操作”の回数（以下「アクセス回数」という。）を格納する。アクセス回数格納領域１１４の詳細について、図２を用いて説明する。ここでは、ＮＡＮＤフラッシュメモリの消去ブロックに合わせ、ブロック単位を16Kbyteとする。列１１４ｂに示すように、ユーザデータ領域１１３を16Kbyte毎に分割し、ユーザデータ領域１１３の先頭から順にアドレスを0x0001，0x0002，0x0003，・・・と2Byte長で割り付ける。又、列１１４ａに示すように、ブロック単位あたりのアクセス回数を1Byteで保持する。例えば、行１１４ｃ（図２の網掛け部分）では、アドレス0x0003、即ち、ユーザデータ領域１１３の先頭から３番目のブロック単位は、今までに0x3F回アクセスされたことを示す。尚、ブロック単位のアドレス（列１１４ｂ）は、アクセス回数格納領域１１４のアドレスから算出可能なので、必ずしもアクセス回数格納領域１１４に格納する必要はなく、アクセス回数の列１１４ａが格納されていればよい。【００２６】  プロセッサモジュール１０８は、メモリカード１００の主制御部をなすコントローラ１１６と、アクセス回数取得プログラムなどの制御プログラムが格納されているＲＯＭ１１７と、メモリカード１００のインタフェース用端子９個と接続され、メモリカード１００とホスト機器２００とのインタフェースをなすＩＯインタフェース１２０と、アクセス回数格納領域１１４のデータを演算するアクセス回数カウント手段１２１と、コントローラ１１６やアクセス回数カウント手段１２１のワーク・バッファメモリとして使用されるＳＲＡＭ１１８とを備える。【００２７】  コントローラ１１６は、ＮＡＮＤメモリ１０９の各領域に対してメモリインタフェース１１５を介してデータのやりとりを行う。又、コントローラ１１６はホスト機器２００から受信したコマンドを解析し、コマンドに応じた指示をアクセス回数カウント手段１２１へ送信する。又、コントローラ１１６はアクセス回数カウント手段１２１によって取得された、受信したコマンドに付して指定された論理アドレスに対応するアクセス回数をホスト機器２００へ返信する。【００２８】  アクセス回数カウント手段１２１は、ホスト機器２００からユーザデータ領域１１３へアクセスが発生した場合、コントローラ１１６の指示に従い、当該ユーザデータ領域１１３における特定のブロック単位毎のアクセス回数をカウントする。具体的には、アクセス回数カウント手段１２１は、ユーザデータ領域１１３に発生したアクセスがどこのブロック単位に発生したかを特定し、アクセスが発生したブロック単位のアクセス回数をアクセス回数格納領域１１４から読み出す。読み出されたアクセス回数はアクセスの種類によってカウントアップされるか、もしくは特定の値にセットされる。アクセス回数カウント手段１２１は新しいアクセス回数をアクセス回数格納領域１１４内のアクセスが発生したブロック単位のアドレスが示すアドレスに格納する。【００２９】  又、アクセス回数カウント手段１２１は、ホスト機器２００から送信されたコマンドに応じて、指定されたアドレスのアクセス回数情報をアクセス回数格納領域１１４から取得する。【００３０】  ここで、図３を用いて、ブロック単位の読み出し操作時の動作例を説明する。ユーザデータ領域１１３に発生した読み出し操作はコントローラ１１６からアクセス回数カウント手段１２１へ通知され、読み出し操作されたアドレスからブロック単位のアドレスに変換を行う。この時、行１１４ｃで示すように、ブロック単位のアドレス0x0003で読み出し操作が発生したとする。アクセス回数カウント手段１２１はアクセス回数格納領域１１４からブロック単位のアドレス0x0003が示すアクセス回数0x3Fを読み出す。ここでは、読み出し操作時にはアクセス回数を１カウントアップしているため、アクセス回数は0x3Fから0x40にカウントアップされてアクセス回数格納領域１１４に格納される。尚、アクセス回数は、0x01から0xFEまでの値であり、0x01から順にアクセス頻度・使用頻度が高いことを示す。又、0x00と0xFFは特別の意味を持たせてアクセス回数としての大小表現には使用しないものとする。例えば、0x00は消去を示す値とし、0xFFは読み出し不可を示す値とする。【００３１】  一方、ユーザデータ領域１１３に対する書き込み操作時には、アクセス回数カウント手段１２１は、アクセスが発生したブロック単位のアクセス回数を0x01にセットしてアクセス回数格納領域１１４に格納する。【００３２】  更に、ユーザデータ領域１１３に対する消去操作時には、アクセス回数カウント手段１２１は、アクセスが発生したブロック単位のアクセス回数を0x00にリセットしてアクセス回数格納領域１１４に格納する。即ち、アクセス回数0x00はそれが示すユーザデータ領域１１３のブロックが使用されていないことを表す。【００３３】  次に、ホスト機器２００がアクセス回数を取得するためのコマンド（以下「アクセス回数取得コマンド」という。）について、図４を用いて説明する。アクセス回数取得コマンドには、512アドレス分（512Byte）のアクセス回数を取得するアクセス回数シングルリードコマンドと、512Byteを１単位としてアクセス回数を連続的に取得するアクセス回数マルチリードコマンドの２通りがある。ここで、アクセス回数シングルリードコマンド及びアクセス回数マルチリードコマンドは、それぞれSDメモリカードのシングルセクターリードコマンドとマルチセクターリードコマンドに類似したものとすることができる。【００３４】  アクセス回数シングルリードコマンド及びアクセス回数マルチリードコマンドは、ホスト機器２００からアクセス回数取得コマンドに引数としてブロック単位のアドレスを付してメモリカード１００へ送信される。メモリカード１００は、アクセス回数取得コマンドと引数を解釈し、対応するアクセス回数を返信する。【００３５】  ホスト機器２００が、アクセス回数シングルリードコマンド３０３（図４では、CMDxx）の後に引数（図４では、0x0001）を付して送信すると、メモリカード１００は、ブロック単位のアドレス0x0001をスタートとする512アドレス分のアクセス回数の情報を512Byteのデータとしてホスト機器２００へ返信する。又、ホスト機器２００が、アクセス回数マルチリードコマンド３０４（図４では、CMDxx）の後に引数（図４では、0x0001）を付して送信すると、メモリカード１００は、ブロック単位のアドレス0x0001をスタートとして、返信すべきアクセス回数のデータが存在する限り512アドレス毎のアクセス回数情報が512Byteのデータとして連続してホスト機器２００へ返信する。ここで、メモリカード１００が返信するアクセス回数データが512Byteに満たない場合、つまりメモリカードの容量を超えたアドレスのアクセス回数を返信することになった場合には、残りのデータ値は0xFFで埋められて512Byte単位で返信する。これはアクセス回数シングルリードコマンド及びアクセス回数マルチリード共に同じである。又、特定アドレスのみのアクセス回数を取得するには、予めホスト機器２００とメモリカード１００の両方に対して必要な転送データサイズを設定した後に、アクセス回数リードコマンド（図４では、CMDxx）を送信すれば良い。1Byteリードコマンド３０５は、転送データサイズを１Byteとしてアクセス回数を取得した例である。【００３６】  次に、第１の実施の形態に係るアクセス回数取得方法について、図５〜８を用いて説明する。図５〜８のフローチャートは、それぞれ、ホスト機器２００からユーザデータを読み出す処理、ユーザデータを書き込む処理、ユーザデータを消去する処理、アクセス回数情報を取得する処理を示す。尚、図５〜８に示す処理では、メモリカード１００は、既に初期化ステップを終了しているものとする。【００３７】  まず、ユーザデータを読み出す処理について、図５を用いて説明する。【００３８】  （イ）ステップＳ１０１において、ホスト機器２００は、データ読み出しコマンドをメモリカード１００へ送信する。ここでは、データ読み出しコマンドとして、ユーザデータ領域１１３から512Byte のユーザデータを読み出すシングルセクターリードコマンドを用いる。ステップＳ１０２において、メモリカード１００は、データ読み出しコマンドをコントローラ１１６によって受信する。【００３９】  （ロ）ステップＳ１０３において、コントローラ１１６は、データ読み出しコマンドを解析し、ＮＡＮＤメモリ１０９のユーザデータ領域１１３から読み出すべきユーザデータのアドレスを確認する。そして、ステップＳ１０４において、アクセス回数カウント手段１２１は、確認したユーザデータのアドレスからブロック単位のアドレスへ変換し、アクセス回数格納領域１１４から当該ブロック単位のアクセス回数を取得する。【００４０】  （ハ）次に、ステップＳ１０５において、アクセス回数カウント手段１２１は、取得したアクセス回数を１カウントアップする。そして、ステップＳ１０６において、アクセス回数カウント手段１２１は、新たなアクセス回数を当該ブロック単位のアクセス回数格納領域１１４に格納する。【００４１】  （ニ）次に、ステップＳ１０７において、コントローラ１１６はNANDメモリ１０９のユーザデータ領域１１３から指定された512Byte分のユーザデータを読み出し、ステップＳ１０８において、ホスト機器２００へ送信する。ステップＳ１０９において、ホスト機器２００はメモリカード１００からユーザデータを受信する。尚、ここではデータ読み出しコマンドとして、シングルセクターリードコマンドを用いた場合を説明したが、マルチセクターリードコマンドを用いてもよい。マルチセクターリードコマンドを用いた場合は、ユーザデータ領域１１３から読み出されたブロック単位のすべてのアクセス回数をカウントアップしてアクセス回数格納領域１１４に格納する。【００４２】  次に、ユーザデータを書き込む処理について、図６を用いて説明する。【００４３】  （イ）まず、ステップＳ２０１において、ホスト機器２００は、データ書き込みコマンドをメモリカード１００へ送信する。ここでは、データ書き込みコマンドとして、ユーザデータ領域１１３に対して512Byte のユーザデータを書き込むシングルセクターライトコマンドを用いる。ステップＳ２０２において、メモリカード１００は、データ書き込みコマンドをコントローラ１１６によって受信する。【００４４】  （ロ）ステップＳ２０３において、コントローラ１１６はデータ書き込みコマンドを解析し、ＮＡＮＤメモリ１０９のユーザデータ領域１１３に書き込むべきユーザデータのアドレスを確認する。続いて、ステップＳ２０４において、コントローラ１１６はホスト機器２００へレスポンスを返信する。ステップＳ２０５において、ホスト機器２００はレスポンスを受信すると、ステップＳ２０６において、512Byteのユーザデータをメモリカード１００へ送信する。【００４５】  （ハ）次に、ステップＳ２０７において、メモリカード１００はホスト機��２００から受信したユーザデータをコントローラ１１６によって受信し、ステップＳ２０８において、ユーザデータ領域１１３にステップＳ２０３で確認したアドレスに512Byte分 のユーザデータを書き込む。【００４６】  （ニ）次に、ステップＳ２０９において、アクセス回数カウント手段１２１は、ステップＳ２０３で確認したアドレスからブロック単位のアドレスに変換したのち、アクセス回数格納領域１１４から当該ブロック単位のアクセス回数を取得する。そして、ステップＳ２１０において、アクセス回数カウント手段１２１は、アクセス回数を0x01にセットする。続いて、ステップＳ２１１において、アクセス回数カウント手段１２１は、アクセス回数格納領域１１４にアクセス回数0x01を格納する。ここでは、ステップＳ２０９でアクセス回数を取得しているが必ずしもアクセス回数を取得する必要はない。例えば、アクセス回数カウント手段１２１はステップＳ２０８からステップＳ２１０へスキップし、予めセットされたアクセス回数0x01をアクセス回数格納領域１１４に格納しても良い。尚、ここではデータ書き込みコマンドとして、シングルセクターライトコマンドを用いた場合を説明したが、マルチセクターライトコマンドを用いてもよい。マルチセクターライトコマンドを用いた場合は、ユーザデータ領域１１３に書きこまれたブロック単位すべてのアクセス回数を0x01にセットしてアクセス回数格納領域１１４に格納する。【００４７】  次に、ユーザデータを消去する処理について、図７を用いて説明する。【００４８】  （イ）まず、ステップＳ３０１において、ホスト機器２００はユーザデータ消去コマンドをメモリカード１００へ送信する。ステップＳ３０２において、メモリカード１００は、コントローラ１１６によってユーザデータ消去コマンドを受信すると、ステップＳ３０３において、ユーザデータ領域１１３の消去すべきユーザデータのアドレスを確認したのち、当該ユーザデータの消去を行う。【００４９】  （ロ）次に、ステップＳ３０４において、アクセス回数カウント手段１２１は、アクセス回数格納領域１１４に格納するためのアクセス回数の値を0x00にリセットする。そして、ステップＳ３０５において、アクセス回数カウント手段１２１は、消去したユーザデータのアドレスから変換したブロック単位のアクセス回数として0x00をアクセス回数格納領域１１４に格納する。【００５０】  次に、アクセス回数情報を取得する処理について、図８を用いて説明する。【００５１】  （イ）まず、ステップＳ４０１において、ホスト機器２００は、アクセス回数取得コマンドをメモリカード１００へ送信する。ここでは、アクセス回数取得コマンドとして、アクセス回数シングルリードコマンドを用いる。ステップＳ４０２において、メモリカード１００は、アクセス回数取得コマンドをコントローラ１１６によって受信する。【００５２】  （ロ）次に、アクセス回数カウント手段１２１は、ホスト機器２００から引数として指定されたアドレスをブロック単位のスタートアドレスとして512アドレス分（512Byte分）のアクセス回数情報を取得する。続いて、ステップＳ４０４において、コントローラ１１６は取得した512Byteのアクセス回数情報をホスト機器２００へ返信する。そして��ホスト機器２００は、メモリカード１００からアクセス回数情報を受信する。【００５３】  尚、図５に示すユーザデータを読み出す処理と、図７に示すユーザデータを消去する処理と、図８に示すアクセス回数情報を取得する処理においては、ホスト機器２００とメモリカード１００の間で行われるユーザデータの受け渡しタイミングは重要ではないため、レスポンスに関しては記述していないが、実際の処理手順としては、図６に示す書き込み処理と同様に、ホスト機器がコマンドを発行した後にレスポンスの送受が行われる。【００５４】  又、ＲＯＭ１１７には、アクセス回数取得プログラムが格納されており、このアクセス回数取得プログラムを読み出すことにより、メモリカード１００に上述したアクセス回数取得方法の各手順を実行させることができる。【００５５】  次に、ユーザに対する不要ファイルの検出・削除支援をする場合の例として、ホスト機器２００としてオーディオプレーヤを用いた場合の動作について説明する。【００５６】  オーディオプレーヤは、図１に示すホスト機器２００の構成を有し、アクセス回数取得コマンドを送信することができる。メモリカード１００は、１ＧＢの容量を持ち、ユーザデータ領域１１３はセクターサイズが512byte、クラスタサイズ16KbyteのＦＡＴ１６形式でフォーマットされており、多数のファイルが記録されているものとする。又、ブロック単位はユーザデータ領域１１３におけるＦＡＴのユーザデータエリアのクラスタサイズと同じく16Kbyteとし、ブロック単位のアドレスの値がユーザデータエリアのクラスタ番号と一致しているものとする。【００５７】  記録されたデータの１つは○○○○○○○．ｍｐ３というファイル名が付与され、セクター 0x0200から0x023Fにかけてデータが記録され、かつブロック単位のアドレス 0x0010，0x0011，0x0012で示されるアクセス回数格納領域１１４にアクセス回数 0x01が格納されているものとする。オーディオプレーヤが○○○○○○○．ｍｐ３を再生した結果、ユーザデータ領域１１３の読み出しが発生するとブロック単位アドレス 0x0010，0x0011，0x0012に相当するアクセス回数がカウントアップされて、それぞれに0x02が格納される。【００５８】  ホスト機器２００は、メモリカード１００内のアクセス回数格納領域１１４に格納されているアクセス回数情報を、先に説明したアクセス回数マルチリードコマンドを用いてすべて取得し、ホスト機器２００のシステムメモリ２０３上にブロック単位のアドレスと関連づけて展開する。続いて展開したデータをアクセス回数順にソートしてブロック単位のアドレスを並べ替える。ここでアクセス回数0x01はデータが記録された後に一度もアクセスされていないことを示し、アクセス回数0x02はデータ記録後に１回アクセスされたことを示すことになる。【００５９】  不要ファイル検出・削除支援を行うには、アクセス回数が少ないファイルほど不要である可能性が高いためアクセス回数が少ないものからファイル名を検索することにする。そのためにはブロック単位のアドレスからファイル名を取得する操作が必要になる。例えばソート結果から アクセス回数 0x02 を持つブロック単位のアドレスを取り出したときに、0x0011，0x0012，0x0010，0x0022，0x0021，0x0023の順で６つのアドレスが取得できたものとする。ここでブロック単位のアドレス 0x0011に注目すると、ブロック単位のアドレス値がユーザデータ領域１１３のクラスタ番号と同一であるという前提からブロック単位のアドレス 0x0011はクラスタ番号 0x0011を示している。続いてクラスタ番号0x0011のFATチェーンをたどり先頭クラスタ番号を見つけだす。即ち、ユーザデータ領域１１３のFATテーブルから 0x0011 の値をサーチし、ヒットした結果が示すクラスタ番号を再びFATテーブルからサーチすることを繰り返して、ヒットしなくなったクラスタ番号を取得する。今回は0x0010から記録しているので0x0010が最終的に取得できる。これがアクセス回数0x02である１つのファイルの先頭クラスタ番号である。【００６０】  次に、ルートディレクトリエントリから先頭クラスタ番号を示すフィールドをサーチして0x0010を見つけ出す。そしてヒットしたエントリからアクセス回数0x02であるファイル名を取得することができる。尚、ルートディレクトリエントリをサーチしてもヒットしない場合は、サブディレクトリエントリをサーチしてゆくことでファイル名を取得できる。【００６１】  このようにして残ったブロック単位のアドレスについて同様の処理を繰り返すことで、アクセス回数0x02のファイル名をすべて取得することができる。ここでクラスタ番号0x0011，0x0012，0x0010からファイル名○○○○○○○．ｍｐ３を取得し、クラスタ番号0x0022，0x0021，0x0023からファイル名ＸＸＸＸＸＸＸ．ＪＰＧの２つを取得した場合のオーディオプレーヤ画面表示例を図９に示す。これにより多くのファイルの中からアクセス回数が少なくて不要と思われる可能性が高いファイルを効率よくユーザに提示することができる。ユーザは提示されたファイルについて削除や移動といったファイルへの操作を指示することで、メモリカードの管理が簡単にできるようになる。【００６２】  第１の実施の形態に係るメモリカード１００及びアクセス回数取得方法によると、メモリカード１００のユーザデータ領域１１３を区分けし、区分けしたそれぞれの部分に対して、読み出し回数と書き込みや消去が行われたことをメモリカード１００内にアクセス回数として記憶させておくことにより、ホスト機器２００からの要求に応じてアクセス回数情報を返信することができる。このため、ホスト機器２００は、アクセス回数の大小からユーザの使用頻度が少ないファイル名を見つけだすことができる。又、計時手段や過大なＣＰＵ処理能力、広大なメモリ空間を持たない、オーディオプレーヤや携帯電話のような小型携帯デジタル機器においても、ユーザに対する利便性を向上させることができる。【００６３】  又、第１の実施の形態に係るメモリカード１００及びアクセス回数取得方法では、ユーザデータの書き込み及び消去時にアクセス回数の値を固有の値にセットするため、アクセス回数を正確にカウントすることができ、ユーザが不要と思われるファイルをより正確に検索することができる。【００６４】  又、第１の実施の形態に係るメモリカード１００では、アクセス回数格納領域１１４のサイズを不揮発性メモリの消去ブロックのサイズ（例えば、１６Kbytes）の整数倍とすることが望ましい。ユーザデータの書き込み及び消去が行われる場合、メモリカードは、消去ブロック単位で書き換えが行われるので、当該消去ブロックを消去する際、他のアクセス回数が記憶されているエリアを消去することがないためである。【００６５】  又、第１の実施の形態に係るメモリカード１００では、論理アドレスに基づいてメモリを管理しているため、実アドレスではなく、特定のファイルに対して何回アクセスが行われたかを把握することができる。【００６６】  （第２の実施の形態）  第１の実施の形態では、アクセス回数毎の分類（以下「アクセス回数情報のソート」という。）をメモリカード１００外のホスト機器２００で行っていたが、第２の実施の形態では、メモリカード１００内でソート処理を行い、ソート済みのアクセス回数をホスト機器２００へ送信する。【００６７】  第２の実施の形態に係るアクセス回数取得システムは、図１０に示すように、メモリカード１００と、ホスト機器２００とを備える。ホスト機器２００の構成は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００６８】  メモリカード１００は、インタフェース用信号端子１１０と、不揮発性メモリであるＮＡＮＤメモリ１０９と、プロセッサモジュール１０８とを備える。インタフェース用信号端子１１０は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００６９】  ＮＡＮＤメモリ１０９は、主にメモリカードに関する情報を格納するための管理データ領域１１１と、機密データを格納するためのセキュリティ領域１１２と、ユーザのデータを格納するためのユーザデータ領域１１３と、アクセス回数格納領域１１４と、アクセス回数ソート結果格納領域１３０とに分割されている。その他、図示していないが、ＮＡＮＤメモリ１０９には、暗号用鍵データなどの重要情報を格納するための機密領域などが含まれる。尚、機密領域は、管理データ領域１１１に含まれてもよい。管理データ領域１１１、セキュリティ領域１１２、ユーザデータ領域１１３、アクセス回数格納領域１１４は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００７０】  アクセス回数ソート結果格納領域１３０は、アクセス回数格納領域１１４に格納されたアクセス回数をソートした結果、即ち、アクセス回数とアクセス回数毎に分類されたブロック単位のアドレスとを対応付して格納する。アクセス回数ソート結果結格納領域１３０は、図１１に示すように、アクセス回数が格納された複数の行１３０ａとブロック単位のアドレスが格納された複数の列１３０ｂとのマトリクス構造となっている。ここで、行１３０ａは0x01から0xFEまでの254行で構成され、列１３０ｂはブロック単位のアドレスの数だけ存在する。【００７１】  マトリクスの各セルには1bitのデータを付与する。ここでセルのデータ値として二進数の0をbit0、二進数の1をbit1と表記する。列１３０ｂの個々のアドレス列ではセル値bit0がただ１つしか存在せず、行１３０ａのセル値bit0が存在するアクセス回数の値が当該ブロック単位のアクセス回数を示すものとする。又、それぞれのアクセス回数を表すデータは、アドレスの数だけのビット列が必要であり、基本的に固定長である。このため、実際のメモリ内では前出のマトリクス（セルの集合）のみが格納されればよい。即ち、アクセス回数0x01、0x02、…、アドレス0x0001、0x0002、…はマトリクスから算出可能なので格納されない。【００７２】  プロセッサモジュール１０８は、メモリカード１００の主制御部をなすコントローラ１１６、アクセス回数取得プログラムなどの制御プログラムが格納されているＲＯＭ１１７、メモリカード１００のインタフェース用端子９個と接続されメモリカード１００とホスト機器２００とのインタフェースをなすＩＯインタフェース１２０と、アクセス回数格納領域１１４のデータを演算するアクセス回数カウント手段１２１と、アクセス回数格納領域１３０のデータをソートするアクセス回数ソート手段１３１と、コントローラ１１６やアクセス回数カウント手段１２１のワーク・バッファメモリとして使用されるＳＲＡＭ１１８とを備える。ＲＯＭ１１７、ＩＯインタフェース１２０、アクセス回数カウント手段１２１、ＳＲＡＭ１１８は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００７３】  アクセス回数ソート手段１３１は、コントローラ１１６によってアクセス回数格納領域１３０から読み出された特定のブロック単位のアクセス回数を受け取り、アクセス回数毎に、特定のブロック単位のアドレスを分類する（ソート演算）する。ソート演算した結果はコントローラ１１６を介してアクセス回数ソート結果結格納領域１３０に格納する。【００７４】  又、アクセス回数ソート手段１３１は、ホスト機器２００から送信されたコマンドに応じて、指定されたアドレスの指定されたアクセス回数に該当する情報をアクセス回数ソート結果格納領域１３０から取得する。【００７５】  コントローラ１１６は、ＮＡＮＤメモリ１０９の各領域に対してメモリインタフェース１１５を介してデータのやりとりを行う。又、コントローラ１１６はホスト機器２００から受信したコマンドを解析し、コマンドに応じた指示をアクセス回数カウント手段１２１、アクセス回数ソート手段１３１へ送信する。又、コントローラ１１６は、アクセス回数ソート結果格納領域１３０に格納された、ホスト機器２００から指定されたアクセス回数に応じた分類されたブロック単位のアドレスを返信する。【００７６】  ここで、図１２を用いて、ソート演算の概念について説明する。ソート演算では、アクセス回数ソート結果結格納領域１３０のアクセス回数を受け取ったブロック単位のアドレスの列と、受け取ったアクセス回数を示す行とが交差するセルに値bit0を格納し、その他のセル列には値bit1を格納する処理を行う。例えば、行１３０ｅに示すように、以前のソート結果としてアクセス回数0x02にブロック単位のアドレス0x0002が含まれており、ソート結果が更新されてアドレス0x0002のアクセス回数が0x03に変化したとする。アクセス回数ソート手段１３１は、アドレス列0x0002とアクセス回数行0x02（行１３０ｅ）が交差するセル値をbit1に変更し、続いてアドレス列0x0002とアクセス回数行0x03（行１３０ｆ）が交差するセル値をbit0に変更した結果が格納される。【００７７】  続いて、図１１を用いて、マトリクスから指定されたアクセス回数におけるブロック単位のアドレスのソート結果を取得するアルゴリズムについて説明する。例として、アクセス回数0x02でのアドレスを取得する。アクセス回数ソート結果結格納領域１３０のアクセス回数0x02を表す行１３��ｅについて、アドレス0x0001から順にセル値bit0をサーチするとセル１３０ｃとセル１３０ｄが発見される。即ち、アクセス回数0x02のソート結果としてブロック単位のアドレス0x0002と0x0003を取得したこととなる。【００７８】  次に、ホスト機器２００がアクセス回数ソート結果を取得するためのコマンド（以下「アクセス回数ソート結果取得コマンド」という。）について、図１３を用いて説明する。アクセス回数ソート結果取得コマンドには、256アドレス分（512Byte）のブロック単位のアドレスを取得するアクセス回数ソート結果シングルリードコマンドと、256アドレスを１単位として連続的に取得するアクセス回数マルチリードコマンドの２通りがある。ここでアクセス回数ソート結果シングルリードコマンド及びアクセス回数ソート結果マルチリードコマンドとは、SDメモリカードのシングルセクターリードコマンド及びマルチセクターリードコマンドに類似したものとすることができる。【００７９】  アクセス回数ソート結果を取得するには、ホスト機器２００からアクセス回数ソート結果取得コマンド（図１３では、CMDxy）に引数１（図１３では、Arg.1）としてソート結果を取得開始するアドレスと、引数２（図１３では、Arg.2）として取得するアクセス回数を付してメモリカード１００へ送信する。メモリカード１００は、コマンドと引数とを解釈して指定されたアクセス回数に対応するアドレスをホスト機器２００に対して返信する。【００８０】  アクセス回数ソート結果シングルリード３１３においてホスト機器２００からCMDxyの引数としてスタートアドレス0x0001，アクセス回数0x01を付して送信されると、メモリカード１００からはブロック単位のアドレス0x0001をスタートとしてアクセス回数0x01に核当するアドレスを取得した結果が、1アドレスあたり2Byteのデータとして256アドレス分（512Byte）のデータとしてホスト機器２００へ返信される。ここで、メモリカード１００が返信するアドレスデータが512Byteに満たない場合には、残りのデータ値は0xFFFFで埋められて512Byte単位で返信される。これはアクセス回数ソート結果シングルリード及びアクセス回数ソート結果マルチリード共に同じである。【００８１】  この結果、メモリカード１００が返信するアドレスデータ内に0xFFFFが存在しなかった場合に残りのアドレスデータを取得する方法について説明する。図１３では、アクセス回数ソート結果シングルリード３１３の結果がデータ３２３として現れ、アドレス0x0169までの256アドレス分が取得済みだったとする。続くアドレスの取得には引数１に0x0169の次の0x016Aを入れてアクセス回数ソート結果マルチリード３１４を送信する。その結果がデータ３２４だとすると、これはアクセス回数0x01の残りのアドレスは0x0281，0x03B2，0x08C3だけであった例を示す。又、指定したアクセス回数のデータを特定の数だけ取得するには、予めホスト機器２００とメモリカード１００との両方に対して必要な転送データサイズを設定した後に、アクセス回数ソート結果リードコマンドを送信すればよい。2Byteシングルリード３１５は、転送データサイズを2Byteとして1つのアドレス（データ３２５）のみを取得した例である。【００８２】  次に、第２の実施の形態に係るアクセス回数取得方法について、図１４を用いて説明する。【００８���】  （イ）まず、ステップＳ５０１において、ホスト機器２００は、アクセス回数ソート結果取得コマンドをメモリカード１００へ送信する。ステップＳ５０２において、メモリカード１００は、アクセス回数ソート結果取得コマンドをコントローラ１１６によって受信する。ステップＳ５０３において、コントローラ１１６はアクセス回数カウント手段１２１と連携してNANDメモリ４０９のアクセス回数格納領域１１４からブロック単位のアドレスとアクセス回数を読み出す。【００８４】  （ロ）次に、ステップＳ５０４において、アクセス回数ソート手段１３１は読み出されたブロック単位のアドレスとアクセス回数に対してソート演算を行い、ステップＳ５０５において、コントローラ１１６を介して演算結果をアクセス回数ソート結果格納領域１３０に格納する。【００８５】  （ハ）次に、アクセス回数ソート手段１３１は、ホスト機器２００から引数として指定されたアドレスをブロック単位のスタートアドレスとして、アクセス回数ソート結果格納領域１３０からアクセス回数ソート結果を取得し、ステップＳ５０６において、ホスト機器２００へ送信する。ステップＳ５０７において、ホスト機器２００はアクセス回数ソート結果を受信する。【００８６】  ここで、アクセス回数のソートタイミングは、上述したステップＳ５０４に示すように、アクセス回数ソート結果取得コマンド受信時に行っているが、アクセス回数カウント手段１３１がアクセス回数をカウントアップもしくは特定の値にセットするタイミングと同時に、毎回アクセス回数のソート処理を行ってその結果をアクセス回数ソート結果格納領域１１４に格納しても良い。【００８７】  尚、ホスト機器２００がメモリカード１００のユーザデータを読み出す処理、ユーザデータを書き込む処理、ユーザデータを消去する処理については、第１の実施の形態で説明した図５〜７と同様であるので、ここでは説明を省略する。【００８８】  又、ＲＯＭ１１７には、アクセス回数取得プログラムが格納されており、このアクセス回数取得プログラムを読み出すことにより、メモリカード１００に上述したアクセス回数取得方法の各手順を実行させることができる。【００８９】  第２の実施の形態に係るメモリカード１００及びアクセス回数取得方法によると、アクセス回数のソート処理をメモリカード１００内で行うことによってホスト機器２００側でアクセス回数のソートを実施する必要が無く、ホスト機器２００側での処理を相当に軽減することができる。このため、ＣＰＵ処理能力が低く、メモリ空間が小さいホスト機器２００であっても、ユーザに対する利便性を向上させることができる。【００９０】  又、第２の実施の形態に係るメモリカード１００では、アクセス回数カウント手段１２１のカウント処理と並行して、アクセス回数ソート手段１３１のソート演算を行ってもよい。このとき、アクセス回数格納領域１１４とアクセス回数ソート結果格納領域１３０とを同一の領域とすることができ、１回の操作でアクセス回数とアクセス回数ソート結果を得ることができる。【００９１】  （第３の実施の形態）  第２の実施の形態では、メモリカード１００内でアクセス回数情報のソート処理を行っていたが、第３の実施の形態では、ア���セス回数毎にレベルに分け、そのレベル別に分けられたソート結果をホスト機器２００へ送信する。【００９２】  第３の実施の形態に係るアクセス回数取得システムは、図１５に示すように、メモリカード１００と、ホスト機器２００とを備える。ホスト機器２００の構成は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００９３】  メモリカード１００は、インタフェース用信号端子１１０と、不揮発性メモリであるＮＡＮＤメモリ１０９と、プロセッサモジュール１０８とを備える。インタフェース用信号端子１１０は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００９４】  ＮＡＮＤメモリ１０９は、主にメモリカードに関する情報を格納するための管理データ領域１１１と、機密データを格納するためのセキュリティ領域１１２と、ユーザのデータを格納するためのユーザデータ領域１１３と、アクセス回数格納領域１１４と、レベル別アクセス回数格納領域１４０とに分割されている。その他、図示していないが、ＮＡＮＤメモリ１０９には、暗号用鍵データなどの重要情報を格納するための機密領域などが含まれる。尚、機密領域は、管理データ領域１１１に含まれてもよい。管理データ領域１１１、セキュリティ領域１１２、ユーザデータ領域１１３、アクセス回数格納領域１１４は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００９５】  レベル別アクセス回数格納領域１４０は、アクセス回数格納領域１１４に格納されたアクセス回数をレベルに分け、レベル別にソートした結果、即ち、レベルと分類されたブロック単位のアドレスとを対応付して格納する。レベル別アクセス回数格納領域１４０は、図１６に示すように、レベルが格納された列１４０ａと、ブロック単位のアドレスが格納された列１４０ｂと、アクセス回数が格納された列１４０ｃとからなる。アクセス回数が格納された列１４０ｃは、説明の便宜上図示したが、レベル別アクセス回数格納領域１４０に含まれなくてもよい。ここでは、図２に示すアクセス回数格納領域１１４のアクセス回数ごとに４つのレベルに分けて、そのレベル別にブロック単位のアドレスを格納する。例えば、    レベル  0x0000      ＝  未使用領域    レベル  0x0001      ＝  使用頻度小    レベル  0x0002      ＝  使用頻度中    レベル  0x0003      ＝  使用頻度大  と定義することができる。【００９６】  例えば、１ＧＢのメモリを搭載したメモリカード１００で、ブロック単位を16KByte、アクセス回数を直接カウントする回数を256回(8bit)とすると、アクセス回数格納領域１１４は64Kbyte必要である。このとき、レベル別アクセス回数格納領域１４０は、レベル別に128Kbyteを割り当てたとすると、４レベルでトータル512Kbyte程度の容量を持つことになる。【００９７】  プロセッサモジュール１０８は、メモリカード１００の主制御部をなすコントローラ１１６、アクセス回数取得プログラムなどの制御プログラムが格納されているＲＯＭ１１７、メモリカード１００のインタフェース用端子９個と接続されメモリカード１００とホスト機器２００とのインタフェースをなすＩＯインタフェース１２０と、アクセス回数格納領域１１４のデータを演算するアクセス回数カウント手段１２１と、アクセス回数格納領域１３０のデータをレベル別にソートするレベル別アクセス回数ソート手段１４１と、コントローラ１１６やアクセス回数カウント手段１２１のワーク・バッファメモリとして使用されるＳＲＡＭ１１８とを備える。ＲＯＭ１１７、ＩＯインタフェース１２０、アクセス回数カウント手段１２１、ＳＲＡＭ１１８は、第１の実施の形態と同様であるので、ここでは説明を省略する。【００９８】  レベル別アクセス回数ソート手段１４１は、コントローラ１１６によってアクセス回数格納領域１１４から読み出されたブロック単位のアクセス回数を受け取り、アクセス回数を複数のレベルに分け、レベル別に特定のブロック単位のアドレスを分類する（ソート演算）する。ソート演算した結果は、コントローラ１１６を介してレベル別アクセス回数格納領域１４０に格納される。【００９９】  又、レベル別アクセス回数ソート手段１４１は、ホスト機器２００から送信されたコマンドに応じて、指定されたアドレスの指定されたレベルに該当する情報をレベル別アクセス回数格納領域１４０から取得する。【０１００】  コントローラ１１６は、ＮＡＮＤメモリ１０９の各領域に対してメモリインタフェース１１５を介してデータのやりとりを行う。又、コントローラ１１６はホスト機器２００から受信したコマンドを解析し、コマンドに応じた指示をアクセス回数カウント手段１２１、レベル別アクセス回数ソート手段１４１へ送信する。又、コントローラ１１６は、レベル別アクセス回数格納領域１４０に格納された、ホスト機器２００から指定されたレベルに応じた分類されたブロック単位のアドレスを返信する。【０１０１】  次に、ホスト機器２００がレベル別アクセス回数ソート結果を取得するためのコマンド（以下「レベル別アクセス回数取得コマンド」という。）について、説明する。レベル別アクセス回数取得コマンドには、256アドレス分（512Byte）のレベル単位のアドレスを取得するレベル別アクセス回数シングルリードコマンドと、256アドレスを１単位としてレベル別アクセス回数を連続的に取得するレベル別アクセス回数マルチリードコマンドの２通りがある。ここで、レベル別アクセス回数シングルリードコマンド及びレベル別アクセス回数マルチリードコマンドは、それぞれSDメモリカードのシングルセクターリードコマンドとマルチセクターリードコマンドに類似したものとすることができる。【０１０２】  レベル別アクセス回数ソート結果を取得するには、図１３に示すアクセス回数ソート結果取得コマンドと同様の構成のレベル別アクセス回数ソート結果取得コマンドに、引数１としてソート結果を取得開始するアドレスと、引数２として取得するレベルを付してメモリカード１００へ送信する。メモリカード１００は、コマンドと引数とを解釈して指定されたレベルに対応するアドレスをホスト機器２００に対して返信する。【０１０３】  又、引数２として付されるレベルは、例えば、未使用領域を0x0000、使用頻度小を0x0001、使用頻度中を0x0002、使用頻度大を0x0003とすることができる。【０１０４】  次に、第３の実施の形態に係るアクセス回数取得方法について、図１７を用いて説明する。【０１０５】  （イ）まず、ステップＳ６０１において、ホスト機器２００は、レベル別アクセス取得コマ��ドをメモリカード１００へ送信する。ステップＳ６０２において、メモリカード１００は、レベル別アクセス回数取得コマンドをコントローラ１１６によって受信する。ステップＳ６０３において、コントローラ１１６はアクセス回数カウント手段１２１と連携してNANDメモリ４０９のアクセス回数格納領域１１４からブロック単位のアドレスとアクセス回数を読み出す。【０１０６】  （ロ）次に、ステップＳ６０４において、レベル別アクセス回数ソート手段１４１は読み出されたブロック単位のアドレスとアクセス回数に対してソート演算を行い、ステップＳ６０５において、コントローラ１１６を介して演算結果をレベル別アクセス回数格納領域１４０に格納する。【０１０７】  （ハ）次に、レベル別アクセス回数ソート手段１４１は、ホスト機器２００から引数として指定されたアドレスをブロック単位のスタートアドレスとして、レベル別アクセス回数格納領域１４０からレベル別アクセス回数ソート結果を取得し、ステップＳ６０６において、ホスト機器２００へ送信する。ステップＳ６０７において、ホスト機器２００はレベル別アクセス回数ソート結果を受信する。【０１０８】  ここで、レベル別アクセス回数のソートタイミングは、上述したステップＳ６０４に示すように、レベル別アクセス回数取得コマンド受信時に行っているが、アクセス回数カウント手段１３１がアクセス回数をカウントアップもしくは特定の値にセットするタイミングと同時に、毎回アクセス回数のソート処理を行ってその結果をレベル別アクセス回数格納領域１４０に格納しても良い。【０１０９】  尚、ホスト機器２００がメモリカード１００のユーザデータを読み出す処理、ユーザデータを書き込む処理、ユーザデータを消去する処理については、第１の実施の形態で説明した図５〜７と同様であるので、ここでは説明を省略する。【０１１０】  又、ＲＯＭ１１７には、アクセス回数取得プログラムが格納されており、このアクセス回数取得プログラムを読み出すことにより、メモリカード１００に上述したアクセス回数取得方法の各手順を実行させることができる。【０１１１】  第３の実施の形態に係るメモリカード及びアクセス回数取得方法によると、特定のレベル別に占有しているデータ容量が取得できる。このため、当該メモリカードの中で「使用頻度少レベル」などがどれだけあるかを容易に把握することができる。【０１１２】  又、第３の実施の形態に係るメモリカード及びアクセス回数取得方法によると、特定レベルに属するデータのみを削除する際、少ない操作回数ですばやく空き領域を作り出すことができる。【０１１３】  又、第３の実施の形態に係るメモリカード及びアクセス回数取得方法によると、複数のメモリカードが存在する場合、これらの中から、必要な空容量を確保できるメモリカードを容易に選択することができる。【０１１４】  （その他の実施の形態）  本発明は上記の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。【０１１５】  又、第１の実施の形態では、アクセス回数カウント手段１２１はアクセス回数をカウントアップ方式で管理しているが、カウントダウン方式であっても構わない。【０１１６】  又、図５において、ユーザデータを読み出す処理の中で、ユーザデータの返信の前にアクセス回数を変更したが、ユーザデータを返信した後にアクセス回数を変更してもよい。【０１１７】  又、第２の実施の形態において、アクセス回数ソート結果格納領域１３０のセル値bit0とセル値bit1の持つ意味を逆にしてもよい。即ち、セル値bit1をもって任意のアドレスのアクセス回数を示すことにしても良い。【０１１８】  又、第２の実施の形態において、ＮＡＮＤメモリ１０９内にアクセス回数を格納する領域としてアクセス回数格納領域１１４とアクセス回数ソート結果格納領域１３０の２つの領域を備えているが、アクセス回数ソート結果格納領域１３０にアクセス回数を保持する機能を持たせることにして、アクセス回数を格納する領域を１つだけ持つことにしても構わない。【０１１９】  同様に、第３の実施の形態において、ＮＡＮＤメモリ１０９内にアクセス回数を格納する領域としてアクセス回数格納領域１１４とレベル別アクセス回数格納領域１４０の２つの領域を備えているが、レベル別アクセス回数格納領域１４０にアクセス回数を保持する機能を持たせることにして、アクセス回数を格納する領域を１つだけ持つことにしても構わない。【０１２０】  又、図１、図１０、図１５において、アクセス回数格納領域１１４、アクセス回数ソート結果格納領域１３０、レベル別アクセス回数格納領域１４０を、管理データ領域、セキュリティ領域、ユーザデータ領域鍵データとは異なる領域として示したが、これらの領域は、管理データ領域、セキュリティ領域、あるいはユーザデータ領域の一部に配置されても構わない。【０１２１】  又、第１〜第３の実施の形態において、メモリカードとしてＳＤメモリカードを例に挙げ説明したが、ROMカードなどその他の半導体メモリカードでも構わない。【０１２２】  このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【０１２３】
【図１】第１の実施の形態に係るアクセス回数取得システムの構成ブロック図である。
【図２】図１のアクセス回数格納領域の内部構成を示す図である。
【図３】図１のアクセス回数格納領域の変化を示す図である。
【図４】第１の実施の形態に係るアクセス回数取得コマンドの構成を示す図である。
【図５】第１の実施の形態に係るデータ読み出し方法を示すフローチャートである。
【図６】第１の実施の形態に係るデータ書き込み方法を示すフローチャートである。
【図７】第１の実施の形態に係るデータ消去方法を示すフローチャートである。
【図８】第１の実施の形態に係るアクセス回数取得方法を示すフローチャートである。
【図９】第１の実施の形態に係るホスト機器の表示画面の例である。
【図１０】第２の実施の形態に係るアクセス回数取得システムの構成ブロック図である。
【図１１】図１０のアクセス回数ソート結果格納領域の内部構成を示す図である。
【図１２】図１０のアクセス回数ソート結果格納領域の変化を示す図である。
【図１３】第２の実施の形態に係るアクセス回数ソート結果取得コマンドの構成を示す図である。
【図１４】第２の実施の形態に係るアクセス回数ソート結果取得方法を示すフローチャートである。
【図１５】第３の実施の形態に係るアクセス回数取得システムの構成ブロック図である。
【図１６】図１５のレベル別アクセス回数格納領域の内部構成を示す図である。
【図１７】第３の実施の形態に係るレベル別アクセス回数取得方法を示すフローチャートである。
【符号の説明】
【０１２４】  １００  メモリカード  １０８  プロセッサモジュール  １０９  ＮＡＮＤメモリ  １１０  インタフェース用信号端子  １１１  管理データ領域  １１２  セキュリティ領域  １１３  ユーザデータ領域  １１４  アクセス回数格納領域  １１５  メモリインタフェース  １１６  コントローラ  １１７  ＲＯＭ  １１８  ＳＲＡＭ  １２０  ＩＯインタフェース  １２１  アクセス回数カウント手段  １３０  アクセス回数ソート結果格納領域  １３１  アクセス回数ソート手段  １４０  レベル別アクセス回数格納領域  １４１  レベル別アクセス回数ソート手段  ２００  ホスト機器  ２０１  カードインタフェース  ２０２  ＣＰＵ  ２０３  システムメモリ  ２０４  表示装置 
【図１】
2006031106.tif 000003
【図２】
2006031106.tif 000004
【図３】
2006031106.tif 000005
【図４】
2006031106.tif 000006
【図５】
2006031106.tif 000007
【図６】
2006031106.tif 000008
【図７】
2006031106.tif 000009
【図８】
2006031106.tif 000010
【図９】
2006031106.tif 000011
【図１０】
2006031106.tif 000012
【図１１】
2006031106.tif 000013
【図１２】
2006031106.tif 000014
【図１３】
2006031106.tif 000015
【図１４】
2006031106.tif 000016
【図１５】
2006031106.tif 000017
【図１６】
2006031106.tif 000018
【図１７】
2006031106.tif 000019