(57)【要約】【課題】従来装置のパフォーマンス、つまり読み出し速度と略同程度の読み出し速度を維持し、かつメモリ管理用のアドレス変換テーブルの容量を小さくできる半導体ディスク装置を得る。【解決手段】当該消去ブロックの消去回数を格納する消去ブロック情報格納領域１０と、データを格納する複数のデータ格納領域１１と、論理セクタアドレスを格納するデータ格納領域毎の論理セクタアドレス格納領域１２とから構成される消去ブロック９を複数有するフラッシュメモリ８Ａと、論理セクタアドレスを物理消去ブロック番号へ変換するアドレス変換テーブル５Ａと、アドレス変換テーブル５Ａに基づき入力した論理セクタアドレスを物理消去ブロック番号へ変換し、フラッシュメモリ８Ａ上の該当物理消去ブロック内で入力した論理セクタアドレスに基づき最新の該当データ格納領域１１を捜し出し、最新の該当データ格納領域１１の内容を読み出すＣＰＵ４とを設けた。【選択図】図１
2005332415.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスに対応する複数の領域を含むブロックを複数有するフラッシュメモリと、
外部から入力される論理アドレスをブロック番号へ変換するためのアドレス変換テーブルと、
前記外部から入力される論理アドレスを前記アドレス変換テーブルに基づきブロック番号に変換し、変換したブロック番号に基づいて前記フラッシュメモリにアクセスする制御手段と
を備えことを特徴とする半導体ディスク装置。
【請求項２】
前記アドレス変換テーブルが揮発性メモリに格納される
ことを特徴とする請求項１記載の半導体ディスク装置。
【請求項３】
前記領域はセクタである
ことを特徴とする請求項１又は２記載の半導体ディスク装置。
【請求項４】
前記ブロックは、データの消去単位である
ことを特徴とする請求項１から請求項３までのいずれかに記載の半導体ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フラッシュメモリを記憶媒体として用いた半導体ディスクカード等の半導体ディスク装置に関するものである。
【背景技術】
【０００２】
今日、パーソナルコンピュータの分野において比較的大容量のデータを記憶させておく際には、ハードディスク装置などの磁気記憶媒体が用いられることが多い。これは、消費電力こそ大きいがコストパフォーマンスが非常によいためである。
【０００３】
一方、フラッシュメモリ等の半導体メモリを上記ハードディスク装置のように動作させる半導体ディスク装置が出現した。この半導体ディスク装置は上記ハードディスク装置と違いモーターなどのメカニカルな部分が存在しないため、コストパフォーマンスは磁気記憶媒体に遅れをとるものの低消費電力、高信頼性という面を生かし携帯情報端末などに普及しつつある。
【０００４】
なお、フラッシュメモリの特徴は以下のとおりである。第１に、電気的にデータの書き込み、消去が可能な不揮発性メモリである。第２に、データが既に書き込まれているメモリセルにデータを上書きすることはできない（このため、常に消去動作がつきまとう）。第３に、データの消去単位は、数Ｋ〜数十ＫＢｙｔｅ単位である。第４に、書き込み、消去回数に制限がある。
【０００５】
従来の半導体ディスク装置の構成について図１４、図１５、図１６及び図１７を参照しながら説明する。図１４は、従来の半導体ディスク装置の全体構成を示すブロック図である。図１５は、図１４のアドレス変換テーブルの内部構成を示す図である。図１６は、図１４のフラッシュメモリの内部構成を示す図である。また、図１７は、図１６の消去ブロックの内部構成を示す図である。
【０００６】
図１４において、従来の半導体ディスク装置２は、インターフェース回路３と、ＣＰＵ４と、アドレス変換テーブル５と、フラッシュ制御回路６と、データ入出力用セクタバッファ７と、フラッシュメモリ８とを備える。
【０００７】
半導体ディスク装置２と接続するホスト１の代表的な例は、ノートパソコンや携帯情報端末である。リムーバブルタイプの半導体ディスク装置２は、現在の所、カード型が主流である。インターフェース回路３は、ホスト１との情報をやりとりする。ＣＰＵ４は、データの入出力及びフラッシュメモリ８への命令を出力する。
【０００８】
論理セクタ／物理セクタアドレス変換テーブル５は、論理セクタアドレスを物理セクタアドレスに変換するためのテーブルである。論理セクタアドレス（ＬＳＡ：Logical Sector Address）とはホスト１が半導体ディスク装置２に指定するセクタアドレスのことである。また、物理セクタアドレス（ＰＳＡ：Physical Sector Address）とは、半導体ディスク装置２内で使用されるフラッシュメモリ８のアドレスのことである。
【０００９】
フラッシュ制御回路６は、複雑でないフラッシュメモリ８のデータ処理を行う。単純なデータの受け渡し等はフラッシュ制御回路６で行い、他の処理はＣＰＵ４で行う。データ入出力用セクタバッファ７は、データをフラッシュメモリ８からインターフェース回路３を通して出力、あるいはインターフェース回路３を通してフラッシュメモリ８にデータを入力する際に用いられる。
【００１０】
図１５において、アドレス変換テーブル５は、論理セクタアドレス（ＬＳＡ）格納部と物理セクタアドレス（ＰＳＡ）格納部とから構成される。
【００１１】
ＬＳＡ格納部には論理セクタアドレスが保存されている。内容は固定されている。なお、実際は、論理セクタアドレスがホスト１から送られてくると、論理セクタアドレスデータに基づき変換テーブル用の揮発性ＲＡＭのアドレスピンに電圧がかかりＰＳＡデータがでてくる構造になっている。説明しやすくするために、ＰＳＡ格納部との対応でＬＳＡ格納部があるとしている。ＰＳＡ格納部には任意の（図では１〜ｎ）フラッシュメモリ８のセクタ番号が保存される。このアドレス変換テーブル５を用いることで、ホスト１が指定する論理セクタアドレスに左右されることなく内部管理に都合のよい物理セクタアドレスにデータを保存することができる。このアドレス変換テーブル５は、頻繁に書き込み・消去されるのでＳＲＡＭやＤＲＡＭなどの揮発性のＲＡＭで構成するのが一般的である。
【００１２】
このアドレス変換テーブル５の容量は、次のような条件のとき以下のようになる。２０メガバイト（ＭByte）のフラッシュメモリ８を使用し、データの入出力単位（セクタ）を５１２バイト（Byte）とすると、半導体ディスク装置２内のセクタ数は次のようになる。
半導体ディスク装置２内のセクタ数＝２０メガバイト÷５１２バイト
＝４０９６０セクタ
【００１３】
次に、「４０９６０」を２進数表現する際に必要なビット数は、
ｌｎ４０９６０÷ｌｎ２＝１５.３となり、
１６桁必要となる。
【００１４】
これにより必要なアドレス変換テーブル５の容量は、
４０９６０×１６＝６５５３６０ビットとなり、
最終的に、８０キロバイト（ＫByte）必要となる。
【００１５】
図１６において、フラッシュメモリ８は、複数の消去ブロック９と、予備の複数の消去ブロック９とから構成される。
【００１６】
フラッシュメモリ８は電気的に書き込み消去可能な不揮発メモリである。不揮発であるためＤＲＡＭ・ＳＲＡＭのように電池によるバックアップの必要もなく、また電気的にデータの消去が可能なのでＥＰＲＯＭと違いボードから外すことなくデータを変更することができる。１セルで１ビットのデータを記憶することができるため、ＥＥＲＲＯＭより安価にメモリを作製することができる。以上の点がフラッシュメモリ８の長所にあたる。短所としては、消去回数に１万回〜１０万回程度の上限があること、書き込みの際には必ず消去動作が必要なこと（このためデータがすでに書き込まれているセルに上書きすることは不可能）、消去単位は数Ｋ〜数十ＫByteのブロック単位であること、等が上げられる。
【００１７】
図１７において、１つの消去ブロック９は、先頭に消去ブロック情報格納領域１０と、複数のデータ格納領域１１と、データ格納領域１１毎のＬＳＡ格納領域１２とを有する。
【００１８】
消去ブロック情報格納領域１０に現在のブロック消去回数を格納しておく。データ格納領域１１は、通常５１２バイト（＝１セクタ）の大きさである。ＬＳＡ格納領域１２はセクタごとに存在し、データを書き込む際にホスト１が指定したＬＳＡを格納しておく。これは、論理セクタ／物理セクタアドレス変換テーブル５を揮発性ＲＡＭで構成した際、電源オフと同時にデータが消えてしまうためである。電源をオンにしたときに全てのセクタのＬＳＡ格納領域１２を検索し揮発性ＲＡＭテーブル５を再構築する際に用いられる。
【００１９】
つぎに、従来の半導体ディスク装置の動作について図１８、図１９及び図２０を参照しながら説明する。図１８は、従来の半導体ディスク装置の読み出し動作を説明するための図である。また、図１９及び図２０は、従来の半導体ディスク装置の書き込み動作を説明するための図である。
【００２０】
フラッシュメモリ８を用いた半導体ディスク装置２はハードディスク装置とは異なり、データを上書きすることができない。従って、ホスト１から送られてくるデータの論理セクタアドレスとそのデータをフラッシュメモリ８のどの物理セクタアドレスに書き込むかを示すアドレス変換テーブル５を揮発性ＲＡＭ内に記憶させておくことが行われる。このアドレス変換テーブル５を用いることでＬＳＡに左右されることなくフラッシュメモリ８の記憶領域を有効に使用することが可能となる。
【００２１】
まず、半導体ディスク装置２からのデータの読み出し動作を図１８で説明する。ホスト１は読み出したいデータのセクタアドレスを半導体ディスク装置２に送る。ホスト１から送られてくるアドレスデータには２種類ある。ＬＳＡ形式とＣＨＳ形式である。ＬＳＡ形式が１〜ｎまでの通し番号でセクタを指定するのに対し、ＣＨＳ形式はハードディスク装置で使用されるシリンダ・ヘッド・セクタという３つのデータの組み合わせでデータ領域を指定する。半導体ディスク装置２内ではＬＳＡ／ＰＳＡアドレス変換テーブル５を用いるため、ホスト１からＣＨＳ形式のデータが入力された場合は、例えばインターフェース回路内でＬＳＡに変換し次の作業に移る。
【００２２】
ＣＰＵ４は、アドレス変換テーブル５を用いてホスト１が指定したＬＳＡをＰＳＡにアドレス変換する。最後にＰＳＡに対応したフラッシュメモリ８内からデータが読み出される。
【００２３】
例えば、ホスト１が指定したＬＳＡが「２」であった場合、アドレス変換テーブル５により「６」というＰＳＡに変換される。これにより、図１８に示すように、「Ａ」というデータが読み出されることになる。ＬＳＡ格納領域１２にはＬＳＡである「２」が格納されている。
【００２４】
次に、半導体ディスク装置２へのデータの書き込み動作を図１９及び図２０で説明する。「Ａ」、「Ｂ」、「Ｃ」というデータがＰＳＡの「１」、「３」、「７」に格納されている状態を初期状態とする。データを書き込む際に注意しなければならないのはフラッシュメモリ８はデータの再書き込みができないという点である。上記初期状態の場合、ＰＳＡ「１」、「３」、「７」の領域が該当する。
【００２５】
データが書き込まれていないＬＳＡをホスト１が指定してきた場合は、ＣＰＵ４は、フラッシュメモリ８内の適当な空き領域（ＰＳＡ「２」、「４」〜「６」、「８」〜「１２」）にデータを書き込み、アドレス変換テーブル５内のデータを更新する。図１９は、ＬＳＡ「４」へ「Ｄ」というデータの書き込みをホストが指定した場合の例である。データ「Ｄ」とホスト１が指定したＬＳＡを空き領域ＰＳＡ「４」に書き込み、アドレス変換テーブル５のＬＳＡ「４」に対応したＰＳＡの部分にＰＳＡの値「４」を書き込む。
【００２６】
ホスト１から、既にデータが書き込まれている領域への再書き込みが要求された場合（例えば、同名ファイルの上書き保存）であっても、再書き込みデータをフラッシュメモリ８の空き領域に書き込み、アドレス変換テーブル５を更新する。図２０は、ＬＳＡ「２」のデータを再書き込みした際の結果である。更新データ「Ｂ’」を空き領域ＰＳＡ「５」に書き込み、アドレス変換テーブル５のＬＳＡ「２」に対応するＰＳＡを「５」と更新する。なお、ＰＳＡ「３」が使用済みデータであることは、カード内のＣＰＵ４は認識しておかなければならない。
【００２７】
【特許文献１】特開平５−２７９２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
上述したような従来の半導体ディスク装置では、アドレス変換テーブル５がセクタ（データ管理の最小単位）ごとに１つのＰＳＡを格納するメモリ領域が必要となるため、フラッシュメモリ８が大容量になるにつれアドレス変換テーブル５も大容量となるという問題点があった。
【００２９】
この発明は、前述した問題点を解決するためになされたもので、従来装置のパフォーマンス、つまり読み出し速度と略同程度の読み出し速度を維持し、かつメモリ管理用のアドレス変換テーブルの容量を小さくできる半導体ディスク装置を得ることを目的とする。
【課題を解決するための手段】
【００３０】
この発明に係る半導体ディスク装置は、論理アドレスに対応する複数の領域を含むブロックを複数有するフラッシュメモリと、外部から入力される論理アドレスをブロック番号へ変換するためのアドレス変換テーブルと、前記外部から入力される論理アドレスを前記アドレス変換テーブルに基づきブロック番号に変換し、変換したブロック番号に基づいて前記フラッシュメモリにアクセスする制御手段とを設けたものである。
【発明の効果】
【００３１】
この発明に係る半導体ディスク装置は、データ管理用のアドレス変換テーブルを小さくできるという効果を奏する。
【発明を実施するための最良の形態】
【００３２】
実施の形態１．
以下、この発明の実施の形態１の構成について図１、図２、図３及び図４を参照しながら説明する。図１は、この発明の実施の形態１の全体構成を示すブロック図である。図２は、図１のアドレス変換テーブルの内部構成を示す図である。図３は、図１のフラッシュメモリの内部構成を示す図である。図４は、図３の消去ブロックの内部構成を示す図である。なお、各図中、同一符号は同一又は相当部分を示す。
【００３３】
図１において、この実施の形態１に係る半導体ディスク装置２Ａは、インターフェース回路３と、ＣＰＵ４と、アドレス変換テーブル５Ａと、フラッシュ制御回路６Ａと、データ入出力用セクタバッファ７と、フラッシュメモリ８Ａとを備える。
【００３４】
従来の半導体ディスク装置２との違いは、アドレス変換テーブル５Ａの容量が小さい点であり、その分、フラッシュメモリ８Ａを大きくできる。また、フラッシュ制御回路６Ａは、従来のフラッシュ制御回路６の機能に加えて、ハード的な論理セクタアドレス比較回路６１を含む。さらに、ＣＰＵ４は、読み出し用と書き込み用のアドレスポインタを用いてフラッシュメモリ８Ａ上のデータ管理を行う。すなわち、半導体ディスク装置２Ａは、上記論理セクタアドレス比較回路６１と、アドレスポインタとを使用することで、従来と略同程度のパフォーマンスを維持しながら、アドレス変換テーブル５Ａの容量を小さくできる。なお、この発明に係る制御手段は、この実施の形態１では読み出し用と書き込み用のアドレスポインタを用いるＣＰＵ４と、論理セクタアドレス比較回路６１を含むフラッシュ制御回路６Ａと、データ入出力用セクタバッファ７とから構成される。
【００３５】
アドレス変換テーブル５Ａは、論理セクタアドレスを物理消去ブロック番号に変換するためのテーブルである。物理消去ブロック番号（ＰＢＮ：Physical Block Number）とは、半導体ディスク装置２Ａ内で使用されるフラッシュメモリ８Ａのブロックアドレスのことである。
【００３６】
図２において、アドレス変換テーブル５Ａは、論理セクタアドレス（ＬＳＡ）格納部と物理消去ブロック番号（ＰＢＮ）格納部とから構成される。
【００３７】
ＬＳＡ格納部には論理セクタアドレスが保存されている。内容は固定されている。なお、実際は、論理セクタアドレスがホスト１から送られてくると、論理セクタアドレスデータに基づき変換テーブル用の揮発性ＲＡＭのアドレスピンに電圧がかかりＰＢＮデータがでてくる構造になっている。説明をしやすくするために、ＰＢＮ格納部との対応でＬＳＡ格納部があるとしている。ＰＢＮ格納部には任意のフラッシュメモリ８Ａの物理消去ブロック番号が保存される。このアドレス変換テーブル５Ａを用いることで、ホスト１が指定する論理セクタアドレスに左右されることなく内部管理に都合のよい物理消去ブロックにデータを保存することができる。このアドレス変換テーブル５Ａは、頻繁に書き込み・消去されるのでＳＲＡＭやＤＲＡＭなどの揮発性のＲＡＭで構成するのが一般的である。
【００３８】
ただ、このアドレス変換テーブル５Ａでは、従来と違いＬＳＡのデータからＰＢＮしか解らない。例えば、消去ブロックのサイズが６４キロバイトのフラッシュメモリを用いた場合、内部にはおよそ１００前後のセクタ（＝５１２バイト）が存在する（消去ブロック情報格納領域１０、ＬＳＡ格納領域１２等がなければ最大１２８セクタが存在する）。このため目的のデータを検索するための工夫が必要となる。これについては後述する。
【００３９】
このアドレス変換テーブル５Ａの容量は、以下のようになる。２０メガバイトのフラッシュメモリ８Ａを使用し、１セクタを５１２バイトとすると、半導体ディスク装置２Ａ内のセクタ数は従来と同様に４０９６０となる。しかしながら、アドレス変換テーブル５ＡのＰＢＮ格納部にはブロック番号を記憶させるので、半導体ディスク装置２Ａ内のブロック数は、１ブロック（消去ブロック）を６４キロバイトとすると以下のようになる。
半導体ディスク装置２Ａ内のブロック数＝２０メガバイト÷６４キロバイト＝３２０ブロック
【００４０】
次に、「３２０」を２進数表現する際に必要なビット数は、ｌｎ３２０÷ｌｎ２＝８．３となり、９桁必要となる。これにより必要なアドレス変換テーブル５Ａの容量は、４０９６０×９＝３６８６４０ビットとなり、最終的に、４５キロバイト必要となる。これは、従来の約１／２である。
【００４１】
図３において、フラッシュメモリ８Ａは、複数の消去ブロック９Ａと、予備の複数の消去ブロック９Ａとから構成される。なお、データ（メモリ）管理の対象ブロックのサイズが消去単位と同じであるので、消去ブロックと称する。メインメモリに使用するフラッシュメモリ８Ａは、従来と同様ブロック消去型（消去ブロック単位は数Ｋ〜数十Ｋバイト）のフラッシュメモリを用いる。
【００４２】
図４において、１つの消去ブロック９Ａは、先頭に消去ブロック情報格納領域１０と、複数のデータ格納領域１１と、データ格納領域１１毎のＬＳＡ（論理セクタアドレス）格納領域１２と、データ格納領域１１毎の有効データ確認フラグ１３とを有する。有効データ確認フラグ１３以外は、従来と同様である。この有効データ確認フラグ１３は、ＣＰＵ４が有効データか、いつでも消去可能な無効データかを区別するためのものである。有効データは「ＦＦ」（１１１１１１１１）、無効データは「００」（００００００００）で表す。なお、逆の表現でもよい。ＣＰＵ４は、データの上書きや消去を行った場合、必要なくなったデータ格納領域１１に対応する有効データ確認フラグ１３を「ＦＦ」から「００」へ書き換える。
【００４３】
つぎに、この実施の形態１の動作について図５から図１３までを参照しながら説明する。図５〜図８は、この実施の形態１の書き込み動作を説明するための図である。図９及び図１０は、この実施の形態１の読み出し動作を説明するための図である。図１１及び図１２は、この実施の形態１の読み出し動作を示すフローチャートである。図１３は、この実施の形態１の書き込み動作を示すフローチャートである。
【００４４】
まず、半導体ディスク装置２Ａへのデータ書き込み動作を図５〜図８で説明する。従来との違いは、１つの消去ブロック内のセクタ（データ格納領域１１）が全て書き込み済みになるまで他の消去ブロックにはデータを書き込まないことである。また、データは、消去ブロックの上から下に連続して書き込む（ランダムに書き込まない）。これは、「書き込み用アドレスポインタ」を用い、書き込みの度に１つづつ更新（インクリメント）していく。ここで、「アドレスポインタ」とは、任意の物理セクタアドレス（ＰＳＡ）を記憶しておくためのものである。この実施の形態１では、データの読み出し時と、書き込み時にそれぞれ１つの「読み出し用アドレスポインタ」、「書き込み用アドレスポインタ」を使用する。
【００４５】
半導体ディスク装置２Ａ内のフラッシュメモリ８Ａ内にデータが全く無い状態から動作の説明を進める。このとき、書き込み用アドレスポインタは「１」を指し示している。データ書き込みの際には、まずホスト１から書き込むべきデータと書き込みアドレスが送られてくる。アドレスは、ＣＨＳ形式の場合が考えられるので従来と同様に全てＬＳＡ形式に変換する。アドレス形式情報もホスト１から送られてくるため半導体ディスク装置２Ａ側で容易にＣＨＳ形式かＬＳＡ形式かを区別することができる。
【００４６】
ＬＳＡがランダムに送られてきても、図５に示すように、書き込みはＰＢＮ「１」から行う。例えば、ホスト１からＬＳＡ「３」にデータ「Ａ」の書き込み要求があった場合、ＣＰＵ４は書き込み用アドレスポインタに従い、ＰＢＮ「１」の先頭のデータ格納領域１１にデータ「Ａ」を書き込み、対応する論理セクタアドレス格納領域１２にＬＳＡ「３」を書き込む。そして、書き込みアドレスポインタを更新する。つまり、書き込みアドレスポインタを「２」とする。さらに、アドレス変換テーブル５ＡのＬＳＡ「３」に対応するＰＢＮ格納部に「１」を書き込む。なお、図５〜図９において、フラッシュメモリ８Ａの消去ブロック９Ａは、説明しやすいようにデータ格納領域１１を３つとしている。
【００４７】
図６は、クリーンな消去ブロックがあと１ブロックになった状態である。このとき、書き込み用アドレスポインタは、「１」→「２」→「３」→「…」→「８」→「９」と更新されて、ＰＢＮ「４」の先頭のデータ格納領域１１である「１０」を指し示している。ここで、これ以上書き込むと、クリーンな消去ブロックを確保することができないためフラッシュメモリ８Ａの消去ブロックのクリーニングを行う。
【００４８】
ＣＰＵ４は、全ての消去ブロック内の状態を確認し消去に最適なブロックを決定する。最適なブロックとは、有効データ確認フラグ１３に基づく、有効なデータがあまり存在しない消去ブロックや、消去ブロック情報格納領域１０の内容に基づく、消去回数が少ない消去ブロックなどである。図６では、各消去ブロックの消去回数は「０」で同じであり、ＰＢＮ「１」が有効なデータが少ないため、つまりＰＢＮ「１」のデータ「Ａ’」はデータ「Ａ」の上書きを意味しているため、このブロックを消去し、クリーンなセクタを確保することにする。
【００４９】
まず、図７に示すように、有効なデータをクリーンなＰＢＮ「４」に退避し、次にアドレス変換テーブル５Ａを更新する。その後、図８に示すように、ＰＢＮ「１」をブロック消去し、ブロック消去回数を「１」だけ増やす。この作業により、クリーンなブロック１つと、クリーンなセクタ１つが確保されたことになる。このとき、書き込み用アドレスポインタは「１２」を指し示している。
【００５０】
次に、半導体ディスク装置２Ａからのデータ読み出し動作を図９及び図１０で説明する。まず、ホスト１から送られてきたアドレスをＬＳＡ形式に統一する。次に、アドレス変換テーブル５Ａを用いてＬＳＡからＰＢＮを割り出す。
【００５１】
次に、得られたＰＢＮ内の論理セクタアドレス格納領域１２に格納されたＬＳＡを下から順に確認していく。この際、図１０に示すように、フラッシュ制御回路６Ａ内の論理セクタアドレス比較回路６１で、ホスト１から送られてきたＬＳＡと、該当ＰＢＮ内の論理セクタアドレス格納領域１２に格納されたＬＳＡとを比較する。一致したときのデータ格納領域１１（セクタ）の内容が読み出すべきデータである。このとき、読み出し用アドレスポインタに一致したときのＰＳＡにプラス１した値をセットする。読み出しデータが複数のセクタの場合、次の読み出し時は読み出し用アドレスポインタが指し示すセクタアドレスからデータを読み出す。
【００５２】
例えば、ホスト１からＬＳＡが「２」というデータが送られてきた場合、図９に示すように、アドレス変換テーブル５Ａにより、ＰＢＮ「３」を得る。次に、ＰＢＮ「３」の消去ブロック内の論理セクタアドレスを下から順に確認する。一番下のＬＳＡは「６」であるから該当せず。次に、次のＬＳＡが「２」であるから一致する。従って、読み出すべきデータは「Ｈ」ということになる。このとき、読み出し用アドレスポインタは「９」である。
【００５３】
従来と違い、消去ブロックが大きくなると検索に要する時間がかかることになる。しかし、一般にデータは５１２バイト（１セクタ）以上のサイズのものが多いため、初めてのデータ検索には、１つの消去ブロック内に約１００セクタのデータエリアがあるため、最高１００ステップ程度の検索を必要とするが、２回目以降は前回読み出したセクタの次のセクタにデータがある可能性が極めて高いため、前回読み出したセクタの次のセクタのアドレスを読み出し用アドレスポインタに記憶しておくことで検索回数を大幅に減少させることができる。
【００５４】
つづいて、半導体ディスク装置２Ａからのデータ読み出し動作を図１１及び図１２のフローチャートで説明する。１〜数十のセクタからなるファイル（データ）を扱う場合、ファイルの先頭のセクタを読み出す際は読み出し用アドレスポインタが決定していないので、図１１の検索処理を行う。また、上記ファイルの次のセクタのデータを読み出すときには読み出し用アドレスポインタが設定されているので、図１２の処理を行う。図１１の検索処理との違いは、図１２の処理はホスト１から読み出すべきデータのアドレス（ＬＳＡ）を受け取るが、ホスト１からのＬＳＡを使用することなくデータを読み出すことである。図１１の検索処理は、ファイルの先頭セクタのデータを読み出す場合の他に、読み出し用アドレスポインタが消去ブロック内の最終セクタアドレスまできた場合にも行う。これは、次に読み出すセクタが存在する消去ブロックが解らなくなるためである。ＣＰＵ４は、ファイル名等に基づきファイルの先頭とそれ以外を認識し、また、ブロックサイズ等に基づき最終セクタアドレスを認識する。
【００５５】
初めに、ホスト１から読み出すべきデータのセクタ情報を受け取る（ステップ２０）。これはＬＳＡの形式かもしくはＣＨＳ形式で送られてくる。ＬＳＡ形式に統一するためにＣＨＳデータ形式で送られてきた場合はＬＳＡ形式に変換する（ステップ２１〜２２）。この変換は、半導体ディスク装置２Ａ内のＣＰＵ４を用いてもかまわないし、専用の回路を半導体ディスク装置内部に持たせてもかまわない。
【００５６】
次に、ＬＳＡをＰＢＮに変換する（ステップ２３）。これは、アドレス変換テーブル５Ａを用いる。次に、決定したＰＢＮ内の論理セクタアドレス格納領域１２内に格納されたＬＳＡを読み出す。この読み出したＬＳＡと、ホスト１からのＬＳＡとを論理セクタアドレス比較回路６１で比較し、不一致ならば次の論理セクタアドレス格納領域１２内に格納されたＬＳＡを読み出し、上記ＰＢＮ内を下から検索し、同様の比較を一致するまで行う。なお、検索の方向は、場合によっては上から行ってもよい（ステップ２４〜２６）。
【００５７】
ＬＳＡ同士が一致したら、対応するデータ格納領域１１からデータを読み出す（ステップ２７）。そして、読み出し用アドレスポインタに、上記のデータを読み出した次のセクタアドレスをセットする（ステップ２８）。
【００５８】
つづいて、次のセクタアドレスのデータを読み出す場合は以下のとおりである。ステップ４０〜４２は、上記ステップ２０〜２２と同様である。これは、インターフェースの互換性を保つために、ホスト１からのＬＳＡを受け取り、処理した形にしなければならないからである。
【００５９】
次に、読み出し用アドレスポインタが指し示すセクタアドレスからデータを読み出す（ステップ４３）。そして、読み出し用アドレスポインタに「１」を加算して更新する。ある１つのファイルを読み出す場合、従来の半導体ディスク装置ではファイルを構成しているセクタ数だけアドレス変換テーブル５を参照する。しかし、この実施の形態１では、初回の消去ブロック内のデータ検索に時間をとるものの、それ以降のセクタに関しては読み出し用アドレスポインタに従ってデータを読み出すため、２つ目以降のセクタに関しては上記従来装置よりも高速に処理できる。
【００６０】
また、読み出し速度を犠牲にし、データ読み出しの信頼度を上げる場合には、ステップ４３の次で、ホスト１から受け取ったＬＳＡと、読み出し用アドレスポインタが指し示すセクタのＬＳＡ格納領域１２内のＬＳＡとを比較して確認する。なお、ここで不一致のときはステップ２３以降の検索処理を行う。
【００６１】
つづいて、半導体ディスク装置２Ａへのデータ書き込み動作を図１３のフローチャートで説明する。図１３のステップ３０〜３２は、図１１のステップ２０〜２２と同様であるので説明を省略する。まず、書き込み用アドレスポインタの指示に基づき空きセクタを確認する（ステップ３３）。
【００６２】
空きセクタがある場合は、そこにデータを書き込むとともに、アドレス変換テーブル５Ａを更新する（ステップ３４〜３５）。つまり、データを書き込んだＰＢＮを該当するＬＳＡのＰＢＮ格納部に保存する。
【００６３】
ステップ３４において、書き込み用アドレスポインタに基づき空きセクタがない場合には以下のように処理する（ステップ３６〜３８）。まず、消去回数や無効データ数等に基づき消去するブロックを決定する。次に、有効データを空きブロックにコピーする。その後、決定したブロックを消去し、消去したブロックの消去回数を更新する。そして、ステップ３５に進む。
【００６４】
データ更新の場合は、旧データの有効データ確認フラグ１３を「ＦＦ」から「００」へ更新する。また、書き込み用アドレスポインタを更新する（ステップ３９）。この実施の形態１では連続してデータを書き込むため、書き込み用アドレスポインタはデータ書き込み終了後、次のセクタアドレスを指し示すことになる。なお、１つの消去ブロック内のセクタ全てがデータで埋まったときは、次に書き込むべき消去ブロックをＣＰＵ４が決定し指し示すセクタアドレスを決める。例えば、複数の空きの（クリーンな）消去ブロックが存在する場合、ＣＰＵ４は、消去回数等に基づき次に書き込むべき空きの消去ブロックを決定する。
【００６５】
この実施の形態１は、従来の半導体ディスクカード（装置）の読み出し速度等のパフオーマンスを落とすことなく、読み出し用及び書き込み用アドレスポインタと論理セクタアドレス比較回路６１を使用することにより、アドレス変換テーブル５Ａの容量を小さくすることができる。アドレス変換テーブル５Ａの容量を小さくすることで、無理なく半導体ディスクカードの大容量化を進めることができる。従来のアドレス変換テーブル５を用いると２０ＭＢの半導体ディスクで８０ＫＢのサイズが、４０ＭＢの半導体ディスクで１６０ＫＢ（１.２５Ｍｂｉｔ）のサイズが必要となる。これがおよそ１／２のサイズに小さくなれば揮発性ＲＡＭにかかっていたコストを削減することができ、またアドレス変換テーブル用揮発性ＲＡＭメモリが搭載されていたスペースにフラッシュメモリを増設して搭載できるため半導体ディスク装置の容量を増大させることができる。
【図面の簡単な説明】
【００６６】
【図１】この発明の実施の形態１の全体構成を示すブロック図である。
【図２】この発明の実施の形態１のアドレス変換テーブルの構成を示す図である。
【図３】この発明の実施の形態１のフラッシュメモリの構成を示す図である。
【図４】この発明の実施の形態１の消去ブロックの内部構成を示す図である。
【図５】この発明の実施の形態１のデータ書き込み動作を説明するための図である。
【図６】この発明の実施の形態１のデータ書き込み動作を説明するための図である。
【図７】この発明の実施の形態１のデータ書き込み動作を説明するための図である。
【図８】この発明の実施の形態１のデータ書き込み動作を説明するための図である。
【図９】この発明の実施の形態１のデータ読み出し動作を説明するための図である。
【図１０】この発明の実施の形態１のデータ読み出し動作を説明するための図である。
【図１１】この発明の実施の形態１のデータ読み出し動作を示すフローチャートである。
【図１２】この発明の実施の形態１のデータ読み出し動作を示すフローチャートである。
【図１３】この発明の実施の形態１のデータ書き込み動作を示すフローチャートである。
【図１４】従来の半導体ディスク装置の全体構成を示すブロック図である。
【図１５】従来の半導体ディスク装置のアドレス変換テーブルの構成を示す図である。
【図１６】従来の半導体ディスク装置のフラッシュメモリの構成を示す図である。
【図１７】従来の半導体ディスク装置のフラッシュメモリ内の消去ブロックの構成を示す図である。
【図１８】従来の半導体ディスク装置のデータ読み出し動作を説明するための図である。
【図１９】従来の半導体ディスク装置のデータ書き込み動作を説明するための図である。
【図２０】従来の半導体ディスク装置のデータ書き込み動作を説明するための図である。
【符号の説明】
【００６７】
１  ホスト、２Ａ  半導体ディスク装置、３  インターフェース回路、４  ＣＰＵ、５Ａ  アドレス変換テーブル、６Ａ  フラッシュ制御回路、６１  論理セクタアドレス比較回路、７  データ入出力用セクタバッファ、８Ａ  フラッシュメモリ。
【図１】
2005332415.tif 000003
【図２】
2005332415.tif 000004
【図３】
2005332415.tif 000005
【図４】
2005332415.tif 000006
【図５】
2005332415.tif 000007
【図６】
2005332415.tif 000008
【図７】
2005332415.tif 000009
【図８】
2005332415.tif 000010
【図９】
2005332415.tif 000011
【図１０】
2005332415.tif 000012
【図１１】
2005332415.tif 000013
【図１２】
2005332415.tif 000014
【図１３】
2005332415.tif 000015
【図１４】
2005332415.tif 000016
【図１５】
2005332415.tif 000017
【図１６】
2005332415.tif 000018
【図１７】
2005332415.tif 000019
【図１８】
2005332415.tif 000020
【図１９】
2005332415.tif 000021
【図２０】
2005332415.tif 000022