JP2007004782A - 半導体メモリカード - Google Patents

半導体メモリカード Download PDF

Info

Publication number
JP2007004782A
JP2007004782A JP2006143844A JP2006143844A JP2007004782A JP 2007004782 A JP2007004782 A JP 2007004782A JP 2006143844 A JP2006143844 A JP 2006143844A JP 2006143844 A JP2006143844 A JP 2006143844A JP 2007004782 A JP2007004782 A JP 2007004782A
Authority
JP
Japan
Prior art keywords
file
erase
command
semiconductor memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006143844A
Other languages
English (en)
Inventor
Yoshitaka Yaguchi
義孝 矢口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006143844A priority Critical patent/JP2007004782A/ja
Publication of JP2007004782A publication Critical patent/JP2007004782A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】フラッシュメモリに代表される不揮発性半導体メモリを用いたカードは、データを上書きする場合に一旦初期化を行う必要があり、書き込み性能が低下する。
【解決手段】ホストインターフェース部を介して前記アクセス装置から入力されたコマンドに基づいて前記不揮発性メモリ上のファイルに対するオープン、クローズ、リード、ライト、デリートを含むファイルアクセス処理を実施するファイルシステムインターフェース制御部と、前記データ消去の最小単位である消去ブロックの状態を示す消去ブロック状態テーブルとを具備することにより、外部のアクセス機器に負担をかけることなく、高速にデータを記録可能な半導体メモリカードを提供する。
【選択図】図1

Description

本発明は、高速にデータを記録することが可能な半導体メモリカードに関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリカード等、様々な種類の記録媒体が存在する。
半導体メモリカードは、記録素子としてFlashROM等の半導体不揮発性メモリを使用しており、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及しつつある。
しかしながら、フラッシュメモリは、その特性により上書きすることができないことから、ある記憶領域の画像データを削除して、異なる画像データを記録する際には、当該領域をひとまず初期化する必要がある。したがって、この初期化を記録時に行うと、すでに初期化済みの領域に記憶を行う際の記憶終了までの時間に比べ、見かけ上データの削除は行われているが初期化されていない領域に記憶を行う際は記憶終了まで初期化時間の分だけ多く時間を要することになり、特に映像をリアルタイムに記録する機器の記録メディアとして用いた場合は、記録動作が間に合わず最悪の場合、記録停止になる可能性もある。
また、たとえば機器の使用者がメモリーカードを使用するに先立ってメモリカードの全消去行うとすると、長時間にわたって消去完了を待つことになり、機器の利便性が損なわれることになる。
この課題の解決を図る方法として、フラッシュメモリ上の記録領域が“消去状態”であるか“未消去状態”であるかを示すイレーステーブルをデータ領域上に設け、記録メディアの装着時や記録処理の開始時に、外部アクセス装置が必要に応じて所定のデータサイズ分の“消去状態”のデータ領域を作成する方法がある(たとえば、特許文献1参照)。
また、記録ユニット自体がイレーステーブルを元に“消去”動作を行う方法もある(たとえば、特許文献1参照)。
特許第3507121号公報
しかしながら、前者の方法では外部のアクセス機器がカード内部のフラッシュメモリの状態に応じてイレーステーブルを作成し内容を更新し必要に応じて消去処理を実施する必要があり、外部アクセス機器の負担が大きいという課題がある。
後者の方法では、記録ユニットが消去実行対象の複数のデータ領域のうち一部を消去する場合、どの領域を選択するのが最良であるか判断ができず、効率的な消去が行えない、という課題がある。
この課題を解決するために、本発明の記録装置は、半導体メモリカードの外部に存在するアクセス装置と制御信号及びデータを送受信するホストインターフェース部と、
複数のセクタからなり、前記複数のセクタのうち連続する特定個のセクタがデータ消去
の最小単位であるブロックとしてグループ化され、前記ホストインターフェース部を介し
て前記アクセス装置からデータが読み書きされる不揮発性メモリと、
前記ホストインターフェース部を介して前記制御信号を含むコマンドが入力されたと
き、前記不揮発性メモリに対するデータの消去、書き込み、読み出しを制御するメモリコ
ントローラと、
前記不揮発性メモリの消去ブロックサイズを含む半導体メモリカードの物理的特性に関
するカード情報を格納するカード情報格納部と、
前記カード情報格納部に格納されたカード情報に基づいて前記不揮発性メモリ内に格納
したデータをファイルとして管理し、前記ホストインターフェース部を介して前記アクセ
ス装置から入力されたコマンドに基づいて前記不揮発性メモリ上のファイルに対するオー
プン、クローズ、リード、ライトを含むファイルアクセス処理を実施するファイルシステ
ムインターフェース制御部と、を具備することを特徴とするものである。
本発明によれば、外部のアクセス機器が半導体メモリカード内の不揮発性メモリに対するイレーステーブルの作成や該テーブルに基づく消去動作を行う必要なく、記録動作を高速に行うことが可能になる。
また、カード内部で実施される不揮発性メモリに対する消去動作を効率的に実施することができる。
すなわち、外部のアクセス機器に負担をかけることなく、高速にデータを記録可能な半導体メモリカードを提供することが可能になる。
以下、本発明にかかわる半導体メモリカードの実施の形態を図面に基づいて詳細に説明する。図1は本発明の実施の形態1における半導体メモリカード及びアクセス装置の要部構成図である。図1においてアクセス装置100は、CPU101、RAM102、スロット103、ROM104を含む。ROM104にはアクセス装置100を制御するプログラムが格納されている。このプログラムはアプリケーションプログラム105とカードインターフェース制御部(カードI/F制御部)106の機能を達成するための制御プログラムとを含み、RAM102を一時記憶メモリの領域として使用し、CPU101上で動作する。
スロット103は、半導体メモリカード110とアクセス装置100との接続部であり、スロット103を経由してアクセス装置100と半導体メモリカード110間で制御信号及びデータが送受信される。ROM104内のアプリケーションプログラム105は、アクセス装置100全体の制御を行い、カードインターフェース制御部106は、アクセス装置100から半導体メモリカード110に対するアクセスの制御を行う。
一方、図1において半導体メモリカード110は、ホストインターフェース部(ホストI/F部)111、CPU112、RAM113、メモリコントローラ114、不揮発性メモリ115、メモリ116、ROM117を含む。ホストインターフェース部111は、半導体メモリカード110の外部に存在するアクセス装置100と制御信号を含むコマンドとデータとを受信すると共に、アクセス装置100に対して応答を送受するインターフェースである。ROM117には半導体メモリカード110を制御するプログラムが格納されており、このプログラムはRAM113を一時記憶領域として使用し、CPU112上で動作する。ROM117は更に、不揮発性メモリ115上のデータをファイルとして管理するためのファイルシステム制御を行うファイルシステムインターフェース制御部(ファイルシステムI/F制御部)120を含む。
メモリコントローラ114は、ホストインターフェース部111を介してアクセス装置100から制御信号を含むコマンドが入力されたとき、不揮発性メモリ115に対するデータの消去、書き込み、読み出しを制御するものである。不揮発性メモリ115は、ユーザデータ等が格納されるデータ記憶領域を有し、ファイルシステムインターフェース制御部120により制御されるファイルシステム管理領域118を含む。メモリ116は更新可能な不揮発性メモリであり、半導体メモリカード110のカード情報を格納するカード情報格納部119を有している。カード情報は、不揮発性メモリ115の消去ブロックサイズを含む半導体メモリカードの物理的特性に関する情報である。
続いて、半導体メモリカード110の記録素子として使用する半導体メモリの特徴について説明する。半導体メモリは、小型及び軽量な情報記録媒体を構成することが可能であり、様々な技術分野における情報記録媒体としての確固たる地位を築きつつある。半導体メモリはEEPROM又はFlashROMと呼ばれる不揮発性メモリを情報記録用の素子として使用している(以下、Flashメモリという)。本実施の形態の不揮発性メモリ115は、複数のセクタからなり、複数のセクタのうち連続する特定個のセクタがデータ消去の最小単位であるブロックとしてグループ化され、ホストインターフェース部111を介してアクセス装置100からデータが読み書きされる。
特に多くの不揮発性メモリで使用されるNAND型のFlashメモリには、データを書き込む前に一旦書き込み先に記録されているデータを消去して、未記録の状態に戻してからデータの書き込みを行わなければならないという特徴がある。ここでデータを消去する単位は消去ブロックと呼ばれ、アクセスの最小単位であるセクタが複数個、例えば複数のセクタのうち連続する2のi乗個のセクタ(iは0以上の整数)が集まったブロックとして管理されている。図2はFlashメモリにおける消去ブロックとセクタとの関係の一例を示した説明図である。図2の例では、1つの消去ブロックはi=5即ち32セクタから構成されており、アクセスはセクタ(例えば512バイト)単位で行うことが可能であるが、書き込みに先立ち必要となるデータの消去処理は消去ブロック(16KB)単位で行われる。
この半導体メモリカード110におけるデータ消去及び書き込み処理の例を、図3及び図4を用いて説明する。図3及び図4は書き込み処理の一例を示すフローチャートである。特に図3は消去ブロックの倍数長のデータを書き込む場合における半導体メモリカード110内部の処理手順を示し、図4は1セクタのデータを書き込む場合における半導体メモリカード110内部の処理手順を示している。
図3におけるデータ記録処理では、まずアクセス装置100から送信されたコマンドと引数を、ホストインターフェース部111を介して受信する(S301)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S302)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S303)。認識可能なコマンドの場合、そのコマンドが書き込みコマンドであるかを判定する(S304)。書き込みコマンド以外の場合、各コマンドに対応した他の処理を実施する(S305)。書き込みコマンドの場合、コマンドと共に指定された引数が正しいかを判定する(S306)。不正な引数と判定した場合、アクセス装置100にエラーを通知して処理を終了する(S307)。
引数が正しいと判定した場合、引数に格納された書き込み位置や書き込みサイズの情報から、実際にFlashメモリにデータを書き込む消去ブロックの物理アドレスを決定する(S308)。次いで、書き込みに先立ち、メモリコントローラ114を介して、Flashメモリに存在し、S308で決定した消去ブロック(物理ブロック)に存在するデータを消去する(S309)。次に、アクセス装置100から1セクタ分のデータを、ホストインターフェース部111を介して受信する(S310)。データの受信を完了すると、受信した1セクタ分のデータを、メモリコントローラ114を介してFlashメモリへ書き込む(S311)。S310のデータ受信処理及びS311の書き込み処理を、1消去ブロック分のデータ書き込みが完了するまで繰り返し実施する(S312)。S308からS312までの1消去ブロック分のデータ書き込み処理を、アクセス装置100から指定された書き込みサイズ分のデータ書き込みが完了するまで繰り返し実施する(S313)。アクセス装置100から指定された書き込みサイズ分のデータ書き込みが完了した場合は処理を終了する。
図4におけるデータ記録処理において、S401〜S411の処理は図3のS301〜S311の処理と同じである。図3の処理と異なる点は、S412において書き込みを行う消去ブロックに含まれるデータのうち、アクセス装置100からデータを受信する1セクタ以外のデータを、S408で決定した消去ブロックに書き込む点である。NAND型のFlashメモリでは、データ書き込みに先立ち一旦データを消去する必要があり、この消去処理は消去ブロック単位でしか行えないため、1セクタのデータだけを書き込む場合でも、1消去ブロック分のデータ消去が必要である。更にS412の処理に示すようにデータ更新セクタと同一消去ブロックに含まれる既存データを新しい消去ブロックに書き戻す必要がある。
図3及び図4で示したようにデータ記録処理では、大きく分けてコマンド解釈処理、データ消去処理、データ書き込み処理の3つの処理が存在する。例えば、コマンド解釈のオーバーヘッドに3m秒、1セクタの書き込み処理に200μ秒、1消去ブロック(16KB)の消去処理に2m秒かかるFlashメモリを想定する。このFlashメモリの1消去ブロック(16KB)の書き込みでは図3に示す処理が実行され、コマンド解釈に3m秒、消去処理に2m秒、書き込み処理に32×200μ秒かかり、合計11.4m秒となる。
同様に1セクタ(512B)の書き込みでは図4に示す処理が実行され、コマンド解釈に3m秒、消去処理に2m秒、書き込み処理に200μ秒+31×200μ秒かかり、合計11.4m秒となる。すなわち、16KBのデータを書き込んだ場合と1セクタのデータを書き込んだ場合でほぼ同じ時間がかかることになる。この例ではデータ転送時間等を考慮せず極端に性能差が出る場合について説明したが、実際のFlashメモリにおいても消去ブロック単位で書き込みを行った場合に書き込み時間が最短になる。
また、半導体メモリカード110の記録素子として使用するFlashメモリの枚数は1枚とは限らず、複数枚使用して並列処理することにより、アクセス性能を高めた半導体メモリカード110が存在する。このような半導体メモリカード110では、複数の消去ブロックを管理単位としてFlashメモリを制御しており、この管理単位で書き込みを行った場合に書き込み時間が最短となる。このように半導体メモリカード110のアクセス特性は、使用するFlashメモリの種類や枚数、Flashメモリの管理方法等に依存し、半導体メモリカード110の世代や製造者の違いにより、アクセス特性は異なる。カード情報格納部119に格納されるカード情報は、物理的特性とカード種別情報を有する。物理的特性はコマンド解釈のオーバヘッド、1セクタの書き込み処理時間、1消去ブロックの消去時間、消去ブロックサイズ等を含み、カード種別情報は半導体メモリカードのバージョン情報を含む。
続いて、半導体メモリカード110内の不揮発性メモリ115に格納されたデータを管理するファイルシステムの一例として、FATファイルシステムを説明する。図5にFATファイルシステムの構成を示す。ファイルシステム管理領域118は、半導体メモリカード110内の不揮発性メモリ115におけるファイルシステムで管理する領域を意味する。FATファイルシステムでは、ファイルシステム管理領域118の先頭にファイルシステム管理領域の全体を管理するための管理情報領域501が存在し、引き続いてファイル内のユーザデータ等を格納するデータ領域502が存在する。管理情報領域501は、マスターブートレコード・パーティションテーブル(MBR・PT)503、パーティションブートセクタ(PBS)504、FAT505、FAT506、ルートディレクトリエントリ(RDE)507から構成される。
マスターブートレコード・パーティションテーブル503は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。パーティションブートセクタ504は、1つのパーティション内の管理情報を格納する部分である。FAT505、506は、ファイルに含まれるデータの物理的な格納位置を示す部分である。ルートディレクトリエントリ507は、ルートディレクトリ直下に存在するファイルやディレクトリの情報を格納する部分である。また、FAT505、506は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常はファイルシステム管理領域118内に2つの同じ情報を持つFAT505、506を設けることにより二重化されている。
データ領域502は複数のクラスタに分割され管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイル等は、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT505、506に格納されたリンク情報により管理されている。
次に図6、図7、図8を用いてFATファイルシステムにおけるファイルデータの書き込み例を説明する。図6はFATファイルシステムにおけるファイルデータの書き込み処理手順を示したフローチャートである。図7、図8はそれぞれ書き込み処理前、書き込み処理後のディレクトリエントリ701、FAT505、506、データ領域502の一例を示した説明図である。FATファイルシステムでは、ルートディレクトリエントリ507やデータ領域502の一部に、ファイル名やファイルサイズ、ファイル属性等の情報を格納したディレクトリエントリ701が格納されており、図7(a)にディレクトリエントリ701の一例が示されている。このディレクトリエントリ701で示されるファイル例では、ファイル名がFILE1.TXTであり、クラスタ番号10からのファイルのデータが格納されている。また、ファイルサイズは16000バイトである。図7では1クラスタの大きさを4096バイトと仮定しており、4クラスタに跨ってファイルのデータが格納されている。
図6を用いてファイルデータの書き込み処理を説明する。ファイルデータ書き込み処理では、まず始めに対象ファイルのディレクトリエントリ701を読み込む(S601)。次に、読み込んだディレクトリエントリ701に格納されたファイルの開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する(S602)。次に、FAT505、506を読み出し、S602で取得したファイルデータの先頭位置から順にFAT505、506上でリンクを辿り、書き込み位置のクラスタ番号を取得する(S603)。
次に、データ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する(S604)。空き領域の割り当てが不要な場合S606の処理に進む。空き領域の割り当てが必要な場合、FAT505、506上で空き領域を検索し、1クラスタの空き領域をファイルの終端に割り当てる(S605)。次に、現在参照しているクラスタ内に書き込めるだけのデータをデータ領域502に書き込む(S606)。次に、全データの書き込みが完了したかを判定する(S607)。まだデータが残っている場合、S604の処理に戻る。全データの書き込みが完了した場合、ディレクトリエントリ701内に格納されたファイルサイズやタイムスタンプ等を更新し、半導体メモリカード110に書き込む(S608)。最後にFAT505、506を半導体メモリカード110に書き込み、処理を完了する(S609)。
このようなファイルデータの書き込み処理により、図7に示された16000バイトのデータを持つFILE1.TXTに1000バイトのデータを更に書き込んだ場合、図8に示されるような17000バイトのデータを持つファイルに変化する。
このようにFATファイルシステムでは、ファイルデータの格納領域としてクラスタ単位で領域割り当てが行われ、データが格納される。また、1つのファイルに割り当てられる複数のクラスタは必ずしも連続しているとは限らず、不連続な領域が割り当てられる可能性がある。最悪の場合、クラスタ単位に分割された不連続領域にファイルデータを書き込まれることになる。この場合、半導体メモリカード110に対する1回のアクセスサイズは1クラスタ以下の大きさとなり、半導体メモリカード110に対して最も高速にアクセスするために必要なアクセス単位がクラスタサイズよりも大きい場合、半導体メモリカード110の最高性能でアクセスすることができなくなる。このような問題はFATファイルシステムに限らず、他のファイルシステムにおいても発生する。
そのため本実施の形態では、半導体メモリカード110の物理的特性を含むカード情報を格納するカード情報格納部119を設け、カード情報を基に半導体メモリカード110の物理的特性に適したファイルアクセスを行うために、ファイルシステムインターフェース制御部120を半導体メモリカード110内に備える。このことにより、アクセス装置100が半導体メモリカード110のアクセス特性を意識することなく、最適なファイルアクセスを行うことができる。
続いて本実施の形態におけるファイルシステムインターフェース制御部120の機能について説明する。本実施の形態では、半導体メモリカード110内の不揮発性メモリ115上に構築されたファイルシステムを、半導体メモリカード110内のファイルシステムインターフェース制御部120が制御する。そのため、アクセス装置100は、半導体メモリカード110内の不揮発性メモリ115に格納されたファイルにアクセスするために、ファイルアクセス要求を半導体メモリカード110に発行する。
図9は、ファイルシステムインターフェース制御部120がアクセス装置100から受け付ける上位のコマンド群(以下、ファイルシステムAPIという)の一覧を示した図である。同図に示すように、ファイルシステムインターフェース制御部120は、アクセス装置100から、OPEN(ファイルのオープン)や、CLOSE(ファイルのクローズ)、READ(ファイルからデータを読み込む)、WRITE(ファイルへデータを書き込む)、DELETE(ファイルを削除する)等のファイルアクセス要求を受け付け、アクセス装置100に対してファイルシステムの機能を提供する。即ちファイルシステムインターフェース制御部120は、カード情報格納部119に格納されたカード情報に基づいて、不揮発性メモリ115内に格納したデータをファイルとして管理し、ホストインターフェース部111を介してアクセス装置100から入力されたコマンドに基づいて、不揮発性メモリ115上のファイルに対するオープン、クローズ、リード、ライトを含むファイルアクセス処理を実施する。
このような方法により、アクセス装置100側にはファイルシステムを備える必要がなくなり、ファイルシステムの機能は全て半導体メモリカード110側から提供されることになる。
次に図10〜図14を用いて、アクセス装置100がファイルシステムインターフェース制御部120を介してファイルにアクセスする例を説明する。ここでは、ファイルにアクセスする例として、ルートディレクトリ直下にファイルを作成し、データを書き込む例について説明する。図10はアクセス装置100側の処理手順を示すフローチャートである。図11、図12、図13、図14は夫々アクセス装置100が半導体メモリカード110に発行するカード種別取得コマンド、OPENコマンド、WRITEコマンド、CLOSEコマンドにおける半導体メモリカード110側の処理手順を示したフローチャートである。
まず始めに図10を用いてアクセス装置100側の処理手順を説明する。まずアクセス装置100は半導体メモリカード110に対し、半導体メモリカード110のバージョン等の情報であるカード種別情報を取得するために、カード種別取得コマンドを発行する(S1001)。次に、発行したコマンドにより半導体メモリカード110からカード種別情報が取得できたかを判定する(S1002)。取得に失敗した場合はエラーが発生したと判断し、処理を終了する(S1003)。
取得に成功した場合、半導体メモリカード110がファイルシステムAPIに対応しているかを判定する(S1004)。対応していない半導体メモリカード110であれば、ファイルシステムAPIを用いたアクセスが行えないため、処理を終了する(S1005)。対応している半導体メモリカード110であれば、ファイルを作成するために、半導体メモリカード110に対し、ファイル名を指定してOPENコマンドを発行する(S1006)。
次に、発行したOPENコマンドによる処理が成功したかを判定する(S1007)。処理に失敗した場合はエラー終了する(S1008)。処理に成功した場合、OPENコマンドのレスポンスとして、作成したファイルにアクセスするために使用するファイルハンドルを半導体メモリカード110から取得する。次にファイルに格納するデータを作成する(S1009)。次に、作成したデータをファイルに書き込むために、OPENコマンドにより取得したファイルハンドル、書き込みサイズ、作成したデータ等を指定し、半導体メモリカード110に対しWRITEコマンドを発行する(S1010)。
次に、発行したWRITEコマンドによる処理が成功したかを判定する(S1011)。処理に失敗した場合はエラー終了する(S1012)。処理に成功した場合、ファイルハンドルを指定し、半導体メモリカード110に対しCLOSEコマンドを発行する(S1013)。次に、発行したCLOSEコマンドによる処理が成功したかを判定する(S1014)。処理に失敗した場合はエラー終了する(S1015)。処理に成功した場合はファイル作成及びデータ書き込み処理を終了する。
上記処理手順の内、S1001、S1006、S1010、S1013のコマンド発行処理は、アクセス装置100内のカードインターフェース制御部106が実施し、その他の処理はアプリケーションプログラム105が実施する。
次に、図11から図14を用いて半導体メモリカード110側の処理手順を説明する。図11はカード種別取得コマンド発行時の半導体メモリカード110側の処理手順を示したフローチャートである。まず半導体メモリカード110はアクセス装置100からコマンドを受信する(S1101)。次に、受信したコマンドを参照し、自身が認識できない
不正コマンドか否かを判定する(S1102)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S1103)。認識可能なコマンドの場合、そのコマンドがカード種別取得コマンドであるかを判定する(S1104)。カード種別取得コマンド以外の場合、各コマンドに対応した他の処理を実施する(S1105)。カード種別取得コマンドの場合、カード情報格納部119に格納されたカード種別情報を読み出す(S1106)。最後に読み出したカード種別情報をアクセス装置100に送信し、ここでの処理を終了する(S1107)。
図12はOPENコマンド発行時の半導体メモリカード110側の処理手順を示したフローチャートである。まず半導体メモリカード110はアクセス装置100からコマンドを受信する(S1201)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1202)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S1203)。認識可能なコマンドの場合、そのコマンドがOPENコマンドであるかを判定する(S1204)。
OPENコマンド以外の場合、各コマンドに対応した他の処理を実施する(S1205)。OPENコマンドの場合、コマンドと共に渡された引数が正しいか判定する(S1206)。引数で不正なファイル名を指定した場合等、OPEN処理を実施できないと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S1207)。引数が正しい場合、ルートディレクトリエントリ領域をRAM113に読み込む(S1208)。
次に、RAM113に読み込んだルートディレクトリエントリ領域内で空きディレクトリエントリを取得する(S1209)。取得に失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S1211)。取得に成功した場合、OPENコマンドの引数で指定されたファイル名を持つファイルのディレクトリエントリをRAM113上に作成する(S1212)。次に、RAM113上に作成したディレクトリエントリを不揮発性メモリ115に書き込む(S1213)。
次に、作成したファイルにアクセスするために必要な情報をオープンファイル情報としてRAM113上に作成する(S1214)。このオープンファイル情報には、ファイル名、ファイルサイズ、ディレクトリエントリの位置、読み出し専用オープン・書き込み専用オープン等のオープン属性、ファイル内の現在参照位置等が含まれる。最後に、オープンファイル情報を一意に識別するファイルハンドルを作成し、アクセス装置100に通知して処理を終了する(S1215)。OPEN処理後のファイルアクセスは、このファイルハンドルを使用してアクセスする。
図13はWRITEコマンド発行時の半導体メモリカード110側の処理手順を示した図である。まず半導体メモリカード110はアクセス装置100からコマンドを受信する(S1301)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1302)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S1303)。認識可能なコマンドの場合、そのコマンドがWRITEコマンドであるかを判定する(S1304)。WRITEコマンド以外の場合、各コマンドに対応した他の処理を実施する(S1305)。
WRITEコマンドの場合、コマンドと共に渡された引数が正しいか判定する(S1306)。引数で不正なファイルハンドルを指定した場合等、WRITE処理を実施できないと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S1307)。引数が正しい場合、ファイルハンドルを基にRAM113上のオープンファイル情報を特定する(S1308)。次に、特定したオープンファイル情報を参照し、ファイル内の現在参照位置を確認する(S1309)。
次に、データ書き込みに先立ち、空き領域の取得が必要かを判定する(S1310)。空き領域の取得が不要な場合、S1315の処理に進む。空き領域の取得が必要な場合、RAM113上のFATを参照し、空きクラスタを取得する(S1311)。ここでは、FATが予め不揮発性メモリ115からRAM113に読み込まれていると想定する。取得に失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S1313)。取得に成功した場合、RAM113上でFATを更新し、S1311で取得した空きクラスタを使用中クラスタに変更する(S1314)。
次に、不揮発性メモリ115内のS1311で取得した空きクラスタ位置に、データを書き込む(S1315)。S1310からS1315までの処理を、全データの書き込みが完了するまで繰り返す(S1316)。全データの書き込みが完了した場合、RAM113上のオープンファイル情報に格納されたファイルサイズ等の情報を更新する(S1317)。最後に処理完了をアクセス装置100に通知して処理を終了する(S1318)。
図14はCLOSEコマンド発行時の半導体メモリカード110側の処理手順を示したフローチャートである。まず半導体メモリカード110はアクセス装置100からコマンドを受信する(S1401)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1402)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S1403)。認識可能なコマンドの場合、そのコマンドがCLOSEコマンドであるかを判定する(S1404)。
CLOSEコマンド以外の場合、各コマンドに対応した他の処理を実施する(S1405)。CLOSEコマンドの場合、コマンドと共に渡された引数が正しいかを判定する(S1406)。引数で不正なファイルハンドルを指定した場合等、CLOSE処理を実施できないと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S1407)。引数が正しい場合、ファイルハンドルを基にRAM113上のオープンファイル情報を特定する(S1408)。次に、特定したオープンファイル情報を参照し、オープンファイルのディレクトリエントリの格納位置を特定し、ディレクトリエントリを含む1セクタ分のデータをRAM113に読み込む(S1409)。
次に、オープンファイルのディレクトリエントリに格納されたファイルサイズやタイムスタンプ等をRAM113上で更新する(S1410)。次に、RAM113上のディレクトリエントリを不揮発性メモリ115に書き込む(S1411)。次に、RAM113上のFATを不揮発性メモリ115に書き込む(S1412)。ディレクトリエントリ、FATの書き込みを完了した後、RAM113上のオープンファイル情報をクリアし、ファイルがオープンされていない状態に変更する(S1413)。最後に処理完了をアクセス装置100に通知して処理を終了する(S1414)。
次に図15〜図17を用いて、アクセス装置100がファイルシステムインターフェース制御部120を介してファイルにアクセスする別の例を説明する。ここでは、ファイルにアクセスする例として、ルートディレクトリ直下にあるファイルを削除する例について説明する。図15はアクセス装置100側の処理手順を示すフローチャートである。図16はアクセス装置100が半導体メモリカード110に発行するカード種別取得コマンド、DELETEコマンドにおける半導体メモリカード110側の処理手順を示したフローチャートである。図17は消去ブロック状態テーブルの一例であり、各消去ブロックの状態を示している。消去ブロックの状態が“0”とは未使用ブロックかつ消去済であり即座にデータを書き込むことのできる状態であることを示し、“1”とは未使用ブロックではあるが消去が行われておらずデータを書き込む前に消去動作が必要であることを示し、“2”とは現在有効なデータが書き込まれており使用中であることを示す。
まず始めに図15を用いてアクセス装置100側の処理手順を説明する。アクセス装置100は半導体メモリカード110に対し、半導体メモリカード110のバージョン等の情報であるカード種別情報を取得するために、カード種別取得コマンドを発行する(S1501)。次に、発行したコマンドにより半導体メモリカード110からカード種別情報が取得できたかを判定する(S1502)。取得に失敗した場合はエラーが発生したと判断し、処理を終了する(S1503)。
取得に成功した場合、半導体メモリカード110がファイルシステムAPIに対応しているかを判定する(S1504)。対応していない半導体メモリカード110であれば、ファイルシステムAPIを用いたアクセスが行えないため、処理を終了する(S1505)。対応している半導体メモリカード110であれば、ファイルを削除するために、半導体メモリカード110に対し、ファイル名を指定してDELETEコマンドを発行する(S1506)。
次に、発行したDELETEコマンドによる処理が成功したかを判定する(S1507)。処理に失敗した場合はエラー終了する(S1508)。
上記処理手順の内、S1501、S1506のコマンド発行処理は、アクセス装置100内のカードインターフェース制御部106が実施し、その他の処理はアプリケーションプログラム105が実施する。
次に、図16と図17を用いて半導体メモリカード110側の処理手順を説明する。
図16はDELETEコマンド発行時の半導体メモリカード110側の処理手順を示したフローチャートである。まず半導体メモリカード110はアクセス装置100からコマンドを受信する(S1601)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1602)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S1603)。認識可能なコマンドの場合、そのコマンドが消去コマンドであるかを判定する(S1604)。
DELETEコマンド以外の場合、各コマンドに対応した他の処理を実施する(S1605)。DELETEコマンドの場合、コマンドと共に渡された引数が正しいか判定する(S1606)。引数で不正なファイル名を指定した場合等、DELETE処理を実施できないと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S1607)。引数が正しい場合、ルートディレクトリエントリ領域をRAM113に読み込む(S1608)。
次に、RAM113に読み込んだルートディレクトリエントリ領域内でDELETEコマンドの引数で指定されたファイル名に対応するファイルのディレクトリエントリを取得する(S1609)。取得に失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S1611)。取得に成功した場合、FATをRAM113に読み込み、リンクを辿り当該ファイルの使用しているクラスタ番号を取得する(S1612)。次に、RAM113上にS1609で取得したディレクトリエントリを削除しS1612で取得したクラスタ番号を未使用状態に変更する(S1613)。未使用状態に変更したクラスタを含む
消去ブロックは“使用”状態から”不使用かつ未消去“状態に変更するために消去ブロック状態テーブルの値を”2“から”1“に変更する(S1614)。次にRAM113上のディレクトリエントリを不揮発性メモリ115に書き込む(S1615)。次に、RAM113上のFATを不揮発性メモリ115に書き込む(S1616)。最後に処理完了をアクセス装置100に通知して処理を終了する(S1617)。
なお、S1614で行う処理の代わりに、未使用状態に変更したクラスタを含む消去ブロックに対して消去動作を行い、消去ブロック状態テーブルの値を”2“から”0“に変更してもよい。このようにすることで、たとえば次にWRITEコマンドを受信した場合はDELETEしたファイルの領域を即座にデータ書き込み領域として利用することができるようになる。
ここで、アクセス装置100側および半導体メモリカード110が具備する消去コマンドおよび消去停止コマンドについて図18〜図20を用いて動作の一例を説明する。
図18はアクセス装置100側の処理手順を示すフローチャートである。図20はアクセス装置100が半導体メモリカード110に発行する消去コマンドにおける半導体メモリカード110側の処理手順を示したフローチャートである。
まず始めに図18を用いてアクセス装置100側の処理手順を説明する。アクセス装置100は半導体メモリカード110に対し、ファイルを削除するために、半導体メモリカード110に対し、消去コマンドを発行する(S1806)。
次に、発行した消去コマンドによる処理が成功したかを判定する(S1807)。処理に失敗した場合はエラー終了する(S1808)。
図19は消去停止コマンドについて同様の手順を示したものであるため説明を省略する。
次に、図20を用いて半導体メモリカード110側の処理手順を説明する。
図20は消去コマンド発行時の半導体メモリカード110側の処理手順を示したフローチャートである。まず半導体メモリカード110はアクセス装置100からコマンドを受信する(S2001)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S2002)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S2003)。認識可能なコマンドの場合、そのコマンドが消去コマンドであるかを判定する(S2004)。
消去コマンド以外の場合、各コマンドに対応した他の処理を実施する(S2005)。消去コマンドの場合、コマンドと共に渡された引数が正しいか判定する(S2006)。引数で不正なファイル名を指定した場合等、消去処理を実施できないと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S2007)。引数が正しい場合、消去ブロック状態テーブルを読み出して“未使用かつ未消去”のブロックがあるかどうか判定する(S2008)。“未使用かつ未消去”のブロックが存在しなければ処理完了をアクセス装置100に通知して終了する(S2009)。存在する場合は、消去コマンド受信後に、消去停止コマンドを受信したかどうか判定する(S2010)。受信していれば処理を中断しアクセス装置100に通知して終了する(S2011)。
次に、受信していなければ消去対象となる“未使用かつ未消去”のブロックを選択し(S2012)、消去を実行する(S2013)。そして消去ブロック状態テーブルを更新する(S2014)。次はS2008に戻り“未使用かつ未消去”のブロックがあるかどうか判定する。この処理を、“未使用かつ未消去”のブロックが無くなるか、あるいは消去停止コマンドを受信するまで実行される。
なお、消去停止コマンドを使用しなければ消去コマンド実行後はすべての“未使用かつ未消去”のブロックがなくなるまで消去が実行されるのは言うまでもない。
また、たとえば非常に多くの“未使用かつ未消去”のブロックがメモリカード内に存在する場合に消去コマンドを実行した場合には、実行完了までには長い時間がかかる可能性がある。その場合は消去停止コマンドを実行して消去コマンドを一度終了させて、他のコマンド等を実行し、その後消去コマンドを再度実行してもよい。
このような本実施の形態によれば、アクセス装置100はファイルシステムAPIのコマンドを発行するのみであり、ファイルシステムの制御は半導体メモリカード110側で実施される。そのため、アクセス装置100が半導体メモリカード110の特性を認識する必要はなく、半導体メモリカード110内で最適なファイルアクセスを実施することができる。
以上のように、本発明に関わる半導体メモリカードは、外部のアクセス機器が半導体メモリカード内の不揮発性メモリに対するイレーステーブルの作成や該テーブルに基づく消去動作を行う必要なく、記録動作を高速に行うことが可能になる。
また、カード内部で実施される不揮発性メモリに対する消去動作を効率的に実施することができる。
このような半導体メモリカードは、デジタルAV機器や携帯電話端末、PC等の情報記録媒体として利用することができる。また、転送レートの高い高品質AVデータを記録する機器の情報記録媒体として利用する場合は特に好適に機能する。
本発明の実施の形態1における半導体メモリカード及びアクセス装置の構成図 実施の形態1における消去ブロックとセクタとの関係例を示した説明図 実施の形態1における半導体メモリカードへの消去ブロック倍数長のデータ書き込み処理を示したフローチャート 実施の形態1における半導体メモリカードへの1セクタ分のデータ書き込み処理を示したフローチャート 実施の形態1におけるFATファイルシステムの構成図 実施の形態1におけるFATファイルシステムのデータ書き込み処理を示したフローチャート 実施の形態1におけるFATファイルシステムのデータ書き込み前の状態を示した説明図 実施の形態1におけるFATファイルシステムのデータ書き込み後の状態を示した説明図 実施の形態1におけるファイルシステムAPIの一覧を示した説明図 実施の形態1におけるアクセス装置の内部処理を示したフローチャート 実施の形態1における半導体メモリカード内部のカード種別取得コマンド処理を示したフローチャート 実施の形態1における半導体メモリカード内部のOPENコマンド処理を示したフローチャート 実施の形態1における半導体メモリカード内部のWRITEコマンド処理を示したフローチャート 実施の形態1における半導体メモリカード内部のCLOSEコマンド処理を示したフローチャート 実施の形態1におけるアクセス装置の内部処理を示したフローチャート 実施の形態1における半導体メモリカード内部のDELETEコマンド処理を示したフローチャート 実施の形態1における半導体メモリカード内部の消去ブロック状態テーブルの説明図 実施の形態1におけるアクセス装置の内部の消去コマンド処理を示したフローチャート 実施の形態1におけるアクセス装置の内部の消去停止コマンド処理を示したフローチャート 実施の形態1における半導体メモリカード内部の消去コマンド処理を示したフローチャート
符号の説明
100 アクセス装置
101,112 CPU
102,113 RAM
103 スロット
104,117 ROM
105 アプリケーションプログラム
106 カードインターフェース制御部
110 半導体メモリカード
111 ホストインターフェース部
114 メモリコントローラ
115 不揮発性メモリ
116 メモリ
118,1601,1602 ファイルシステム管理領域
119 カード情報格納部
120,2901,2902,2903 ファイルシステムインターフェース制御部
501 管理情報領域
502 データ領域
503 マスターブートレコード・パーティションテーブル
504 パーティションブートセクタ
505,506 FAT
507 ルートディレクトリエントリ
701 ディレクトリエントリ
1603 低レベルIOインターフェース制御部
1701 ファイルシステム制御部
2501 同期制御部
2601 FAT(RAM上)
2602,2603,2604,2605 オープンファイル情報

Claims (8)

  1. 半導体メモリカードの外部に存在するアクセス装置と制御信号及びデータを送受信するホストインターフェース部と、
    複数のセクタからなり、前記複数のセクタのうち連続する特定個のセクタがデータ消去の最小単位であるブロックとしてグループ化され、前記ホストインターフェース部を介して前記アクセス装置からデータが読み書きされる不揮発性メモリと、
    前記ホストインターフェース部を介して前記制御信号を含むコマンドが入力されたとき、前記不揮発性メモリに対するデータの消去、書き込み、読み出しを制御するメモリコントローラと、
    前記不揮発性メモリの消去ブロックサイズを含む半導体メモリカードの物理的特性に関するカード情報を格納するカード情報格納部と、
    前記カード情報格納部に格納されたカード情報に基づいて前記不揮発性メモリ内に格納したデータをファイルとして管理し、前記ホストインターフェース部を介して前記アクセス装置から入力されたコマンドに基づいて前記不揮発性メモリ上のファイルに対するオープン、クローズ、リード、ライトを含むファイルアクセス処理を実施するファイルシステムインターフェース制御部と、を具備することを特徴とする半導体メモリカード。
  2. 前記ファイルシステムインタフェース制御部は、前記ホストインターフェース部を介して前記アクセス装置から入力されたファイル削除コマンドに基づいて前記不揮発性メモリ上のファイルを削除することを特徴とする請求項1記載の半導体メモリカード。
  3. 前記データ消去の最小単位である消去ブロックの状態を示す消去ブロック状態テーブルを備え、
    前記ファイル削除コマンドを受信した場合は、前記不揮発性メモリ上の指定ファイルを削除し、かつ前記ファイルが使用していたセクタを含む消去ブロックの消去ブロック状態テーブルを未消去の状態に変更した後に、前記アクセス装置に前記ファイル削除コマンドの完了を通知することを特徴とする請求項2記載の半導体メモリカード。
  4. 前記データ消去の最小単位である消去ブロックの状態を示す消去ブロック状態テーブルを備え、
    前記ファイル削除コマンドを受信した場合は、前記不揮発性メモリ上の指定ファイルを削除し、かつ前記ファイルが使用していたセクタを含む消去ブロックを消去した後に、前記アクセス装置に前記ファイル削除コマンドの完了を通知することを特徴とする請求項2記載の半導体メモリカード。
  5. 前記データ消去の最小単位である消去ブロックの状態を示す消去ブロック状態テーブルを備え、
    前記ファイルシステムインタフェース制御部は、前記ホストインターフェース部を介して前記アクセス装置から入力された消去コマンドに対して、前記消去ブロック状態テーブルの内容にもとづき未消去の状態の消去ブロックを消去することを特徴とする請求項1または2記載の半導体メモリカード。
  6. 前記データ消去の最小単位である消去ブロックの状態を示す消去ブロック状態テーブルを備え、
    前記ファイルシステムインタフェース制御部は、前記ホストインターフェース部を介して前記アクセス装置から入力された消去コマンドに対して、前記消去ブロック状態テーブルの内容にもとづき未消去の状態の消去ブロックを消去し、すべての未消去状態の消去ブロックの消去が完了した後に、前記アクセス装置に前記消去コマンドの完了を通知することを特徴とする請求項1または2記載の半導体メモリカード。
  7. 前記ファイルシステムインタフェース制御部は、前記ホストインターフェース部を介して前記アクセス装置から入力された消去停止コマンドに対して、前記消去コマンドにもとづき消去を行っている場合は、現在の消去中の消去ブロックへの消去が完了次第、前記消去動作を停止することを特徴とする請求項5または6記載の半導体メモリカード。
  8. 前記ファイルシステムインタフェース制御部は、前記ホストインターフェース部を介して前記アクセス装置から入力された消去停止コマンドに対して、消去動作を行っている場合は、現在の消去中の消去ブロックへの消去が完了次第、前記消去動作を停止することを特徴とする請求項1から6記載の半導体メモリカード。
JP2006143844A 2005-05-24 2006-05-24 半導体メモリカード Pending JP2007004782A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006143844A JP2007004782A (ja) 2005-05-24 2006-05-24 半導体メモリカード

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005150380 2005-05-24
JP2006143844A JP2007004782A (ja) 2005-05-24 2006-05-24 半導体メモリカード

Publications (1)

Publication Number Publication Date
JP2007004782A true JP2007004782A (ja) 2007-01-11

Family

ID=37690289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006143844A Pending JP2007004782A (ja) 2005-05-24 2006-05-24 半導体メモリカード

Country Status (1)

Country Link
JP (1) JP2007004782A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2009001514A1 (ja) * 2007-06-22 2010-08-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
JP2011205295A (ja) * 2010-03-25 2011-10-13 Canon Inc 情報処理装置、データ処理方法、プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2009001514A1 (ja) * 2007-06-22 2010-08-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
JP2011205295A (ja) * 2010-03-25 2011-10-13 Canon Inc 情報処理装置、データ処理方法、プログラム

Similar Documents

Publication Publication Date Title
JP4773828B2 (ja) 半導体メモリ装置
JP4722704B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
JP4679512B2 (ja) 情報記録媒体、アクセス装置及び情報記録媒体の処理方法
EP1650665A1 (en) File management method and information processing device
JP5485163B2 (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP4859837B2 (ja) 情報記録媒体アクセス装置、及びデータ記録方法
WO2010134300A1 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
EP2096546A1 (en) Write once recording device
JP6112461B2 (ja) 記録装置、アクセス装置、記録システム、及び記録方法
JPWO2009107393A1 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
JP4608434B2 (ja) 情報記録媒体のデータ処理装置及びデータ記録方法
JP5378604B2 (ja) ThinProvisioningが適用された、メインフレーム系のストレージ装置
JP2007004782A (ja) 半導体メモリカード
JP4391793B2 (ja) ファイル更新装置
JP2008176455A (ja) 情報記録装置、コントローラ、アクセス装置、及びアクセス速度保証システム
JP4648196B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及び領域設定方法
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
JP2006127401A (ja) 媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
KR100775885B1 (ko) 데이터 액세스 방법 및 그 방법이 실시되는 장치와 기록매체
JP2005174316A (ja) 情報記録媒体、データ処理装置及び情報記録媒体の記録領域設定方法