(57)【特許請求の範囲】
【請求項１】
データを記憶するデータメモリ領域と、上記データメモリ領域のエラーとなったブロックを代替する代替メモリ領域と、上記データメモリ領域のエラーとなったブロックに対応する上記代替メモリ領域のブロックのアドレスを記憶するエラーメモリ領域とを有するフラッシュメモリと、
上記エラーメモリ領域に記憶された上記代替メモリ領域のブロックのアドレスを参照して、上記代替メモリ領域をアクセスするメモリコントローラとを有し、
上記フラッシュメモリは、上記ブロック単位で書替え可能であり、
上記データメモリ領域と上記代替メモリ領域と上記エラーメモリ領域とは、それぞれ、上記フラッシュメモリ上の異なるブロックに割り当てられていること
を特徴とする半導体記憶装置。
【請求項２】
請求項１記載の半導体記憶装置であって、
上記エラーメモリ領域は、上記データメモリ領域に含まれるブロックにエラーがない場合は、上記代替メモリ領域のブロックのアドレスの代わりに上記データメモリ領域に含まれるブロックにエラーがないことを示す情報を記憶し、
上記メモリコントローラは、上記エラーメモリ領域をアクセスして、上記代替メモリ領域のブロックにエラーがないか判別し、上記データメモリ領域にエラーがない場合は、データメモリ領域をアクセスし、上記データメモリ領域にエラーがある場合は、上記エラーメモリ領域に記憶された上記代替メモリ領域のブロックのアドレスを参照して上記代替メモリをアクセスすること
を特徴とする半導体記憶装置。
【請求項３】
請求項１記載の半導体記憶装置であって、
上記フラッシュメモリへ書き込むべきデータおよび上記フラッシュメモリから読み出されたデータを記憶するバッファメモリを、さらに有すること
を特徴とする半導体記憶装置。
【請求項４】
請求項１記載の半導体記憶装置であって、
外部のホストシステムからの命令に従って前記メモリコントローラを制御するマイコンを、さらに有すること
を特徴とする半導体記憶装置。
【請求項５】
請求項１記載の半導体記憶装置であって、
磁気ディスクに対する操作のための電気信号と同一の電気信号を受付可能な、磁気ディスクと同一の電気的インタフェースを、さらに有すること
を特徴とする半導体記憶装置。
【請求項６】
請求項５記載の半導体記憶装置であって、
前記電気的インタフェースは、外部のホストシステムからの磁気ディスク用の命令を受付け、受付けた上記磁気ディスク用の命令を上記半導体記憶装置用の命令に変換すること
を特徴とする半導体記憶装置。
【請求項７】
請求項５記載の半導体記憶装置であって、
上記ブロックのサイズは、上記磁気ディスクのセクタサイズと同一であることを特徴とする半導体記憶装置。
【請求項８】
請求項７記載の半導体記憶装置であって、
上記ブロックのサイズは、５１２バイトであること
を特徴とする半導体記憶装置。
【請求項９】
データを記憶するデータメモリ領域と、上記データメモリ領域のエラーとなったブロックを代替する代替メモリ領域と、上記データメモリ領域のエラーとなったブロックに対応する上記代替メモリ領域のブロックの第１のアドレスを記憶するエラーメモリ領域とを有するフラッシュメモリと、
上記データメモリ領域のブロックがエラーとなった場合に外部のホストシステムからのデータを書き込むべき上記代替メモリ領域のブロックの第２のアドレスを記憶するメモリと、
上記第１のアドレスを参照して、上記代替メモリ領域をアクセスするメモリコントローラとを有し、
上記フラッシュメモリは、上記ブロック単位で書替え可能であり、
上記データメモリ領域と上記代替メモリ領域と上記エラーメモリ領域とは、それぞれ、上記フラッシュメモリ上の異なるブロックに割り当てられ、
上記メモリコントローラは、上記ホストシステムからの書き込み命令に応答して、上記第２のアドレスを参照して、上記ホストシステムからのデータを上記代替メモリ領域へ書き込み、上記第２のアドレスを上記第１のアドレスとして上記エラーメモリ領域に記憶すると共に、上記第２のアドレスに１を加算すること
を特徴とする半導体記憶装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
フラッシュメモリを記憶媒体とした半導体ディスクに係り、特に、長寿命化を図る方法に関する。
【０００２】
【従来の技術】
従来、半導体ディスクの媒体として、ＤＲＡＭ、ＳＲＡＭが用いられている。ＤＲＡＭまたはＳＲＡＭを用いた半導体ディスクは磁気ディスクに比べて高速であり、また小型化が容易である。しかしながら、ＤＲＡＭ、ＳＲＡＭとも揮発メモリでありバッテリーバックアップが必要であること、ＤＲＡＭはメモリリフレッシュが必要なため制御が複雑になること、またＳＲＡＭは低消費電力であるが高価であることから一般には普及していない。しかしながらフラッシュメモリを半導体ディスクの記憶媒体に使用した場合、不揮発メモリなのでバッテリーバックアップが不要であること、また構造が簡単なのでチップ面積がＤＲＡＭよりも小さくできるので大量生産に向き安価にできることから半導体ディスクの記憶媒体として期待されている。
【０００３】
【発明が解決しようとする課題】
フラッシュメモリはデータの読み出しはＤＲＡＭやＳＲＡＭと同様にバイトやワード単位のように小さいデータ単位で読み出し可能であるが、書き込みは書換え回数に制限があるため、書換え単位を５１２バイトのようなブロック単位とし書換え回数の削減を行なっている。
【０００４】
また、構造上書換えの前にデータの消去が必要である。そのためフラッシュメモリには消去などのコマンド処理機能を設けているものもある。
【０００５】
しかし、フラッシュメモリを半導体ディスクの記憶媒体に用いる場合に最も問題となるのは書換え回数の制限である。例えば、ディレクトリーやＦＡＴ領域のような領域は他の領域に比べて書換え回数が多いので、ディレクトリーやＦＡＴ領域に使用されるフラッシュメモリの特定のブロックのみフラッシュメモリの書換え回数の制限を越える可能性が高い。従って、特定のブロックのみ異常となっただけで、半導体ディスク全てが使用できなくなり、信頼性が低い。
【０００６】
本発明の目的はフラッシュメモリを記憶媒体とした半導体ディスクにおいて、半導体ディスクの寿命をのばすことにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、フラッシュメモリを記憶媒体とした半導体ディスクにおいて、上記フラッシュメモリは、データを記憶するデータメモリ領域と、上記データメモリのエラーとなった領域を代替する代替メモリ領域と、上記データメモリのうちエラーとなったデータメモリの代替メモリのアドレスをエラー情報として有するエラーメモリ領域とを有し、上記データメモリ領域と代替メモリ領域とエラーメモリ領域への読み出し及び書き込みを行なうメモリコントローラを有することとしたものである。
【０００８】
【作用】
フラッシュメモリを記憶媒体とした半導体ディスクにおいて、メモリコントローラはエラーメモリ領域のエラー情報を読み取る。次に、エラー情報により、データメモリ領域が正常なときはデータメモリ領域、異常なときは代替メモリ領域へ読みだしまたは書き込みを行う。書き込み時において、エラーが発生した場合は、代替メモリ領域の空き領域を捜し、空き領域へデータを書き込むと共に、エラーの合ったメモリ領域のエラー情報を更新する。
【０００９】
【実施例】
図１に本発明の一実施例の構成図を示す。図１において１は半導体ディスクでホストシステム２のホストバス３に接続する。半導体ディスク１はマイコン４、メモリコントローラ５、バッファメモリ６、エラーメモリ７、データメモリ８からなる。バッファメモリ６はデータメモリ８とエラーメモリ７に書き込むデータ、または読み出したデータを一時記憶しておくメモリで読み書きが容易なＳＲＡＭを用いる。データメモリ８は２Ｍバイトのフラッシュメモリを１６個持ちいる。従って、半導体ディスクの記憶容量は３２Ｍバイトである。エラーメモリ７は５１２ｋバイトのフラッシュメモリを用い、データメモリ８のエラー情報とエラーの発生したデータメモリ８のブロックのデータを記憶する。データメモリ８とエラーメモリ７はどちらも５１２バイト単位のブロックで書き込みを行なうものとする。マイコン４はホストバス３からの命令を受け取り、この命令に従ってメモリコントローラ５を制御する。メモリコントローラ５はバッファメモリ６、エラーメモリ７、データメモリ８の読み出し、書き込みをアドレス９、データ１０、制御信号１１を用いて制御する。また、エラーメモリ７とデータメモリ８は消去も必要なのでこれも制御する。
【００１０】
図２にエラーメモリ７のメモリマップの例を示す。領域はエラー情報領域７１、使用情報領域７２、代替メモリ領域７３の３つの領域からなる。これらの領域は書き込みのブロック境界に合わせて分ける必要がある。エラー情報領域７１はデータメモリ８の各ブロックに対応するエラー情報を記憶する領域で、エラー情報はブロックにエラーがない場合はＦＦＦＦｈで表し、エラーの場合は代替する代替メモリのブロック番号を表す。使用情報領域７２は代替メモリ領域７３の各代替ブロックに対応する使用情報を記憶する領域である。使用情報は各代替ブロックに対し、１ビット割り当てる。代替ブロックを代替として使用している場合は１、使用していない場合は０で表す。この領域の０のビットを捜すことにより代替メモリ領域７３の空きブロックを見つけることができる。代替メモリ領域７３はデータメモリ８のエラーとなったブロックを代替する領域で、データメモリ８と同様な５１２バイトのブロックで構成し、それぞれのブロックに対し２００００ｈ番地から順番に代替ブロックの番号をつけるものとする。
【００１１】
次に本例の半導体ディスク１の動作について説明する。最初にホストバス３からファイルデータの読み出し命令を受けたとする。この場合、まずマイコン４はこの命令を処理するが命令の与えられ方によって制御内容も異なってくる。例えば、読み出しを行なうファイルデータのアロケーション情報を磁気ディスクなどと同様にセクタ番号やトラック番号で与えられた場合にはこれをデータメモリ８の物理アドレスに変換する必要がある。本例では簡単化のため、ホストバス３からのアロケーション情報はデータメモリ８のブロック番号とする。ブロック番号は物理アドレスの上位ビットに相当する。マイコン４の読み出し時の処理手順を図３に示す。まず１００においてホストバス３から与えられたブロック番号のエラー情報をエラーメモリ７のエラー情報領域７１から読みとる。例えばブロック１を読み出す場合はエラーメモリ７の００００２ｈ番地、ブロック２は００００４ｈ番地のエラー情報を読みとる。次に１０１において読みとったエラー情報からブロックが正常かどうかチェックする。ブロック１の読み出しの場合、エラー情報はＦＦＦＦｈなのでブロック１は正常であり、ブロック２の場合エラー情報は００００ｈなので異常であることがわかる。ブロック１のように正常な場合は１０２においてデータメモリ８のブロック１から５１２バイトのデータを読みとり、ホストバス３へ転送する。ブロック２のように異常なブロックの場合は１０３においてエラー情報の００００ｈが表す代替メモリ領域７３の代替ブロック０から５１２バイトのデータを読みとり、ホストバス３へ転送する。ここでエラーメモリ７とデータメモリ８の読み出し及びホストバス３へのデータ転送はメモリコントローラ５がマイコンの制御を受けて行なう。このようにファイルデータを読みとる動作は、目的のブロックを読み出す前にエラー情報を読みとり、目的のブロックが正常かどうかチェックする。正常な場合はデータメモリ８のブロック、異常な場合は代替メモリ領域７３の代替ブロックを読みとる。
【００１２】
次にホストバス３からファイルデータの書き込み命令を受けた場合について説明する。図４に書き込み時のマイコン４の処理手順を示す。まず、マイコン４は２００においてホストバス３から与えられるファイルデータをバッファメモリ６へ転送する。これはフラッシュメモリへの書き込みが読み出しに比べ時間がかかるため、ホストシステム２の待ち時間を軽減させるために行なう。次に２０１において書き込みを行なうブロック番号のエラー情報をエラーメモリ７のエラー情報領域７１から読みとる。読み出し時と同様に２０２においてエラー情報をチェックする。例えば、ブロック１のエラー情報はＦＦＦＦｈなので正常のブロックであり、ブロック２のエラー情報は００００ｈなので異常なブロックである。ブロック１へファイルデータを書き込む場合は正常なブロックへの書き込みなので２０３においてデータメモリ８のブロック１のデータを消去し、２０４においてバッファメモリ６に記憶してあるファイルデータをデータメモリ８のブロック１へ書き込む。ブロック２への書き込みの場合はデータメモリ８のブロック２が異常なので２０５においてエラー情報の値００００ｈが表す代替メモリ領域７３の代替ブロック０のデータを消去し、２０６においてバッファメモリ６のファイルデータを代替ブロック０へ書き込む。次に２０７においてデータメモリ８またはエラーメモリ７への書き込みが正常に行なわれたかどうかチェックする。フラッシュメモリにおいて書き込みのエラーが発生するのは特定のブロックにのみ書き込みが頻発し、フラッシュメモリの書換え回数の制限を越えた場合である。２０７のチェックにおいて正常な書き込みが行なわれていた場合はホストバス３からのファイルデータ書き込み命令の処理は終了する。一方、このチェックにおいて書き込みが正常にできなかった場合は２０８の手順によりエラー情報の更新、代替ブロックの割付けを行なう。
【００１３】
図５にエラー処理の手順を示す。まず、２０９においてエラーメモリ７の使用情報領域７２の使用情報を読みとり、２１０において使用情報から未使用の代替ブロックを捜す。図２では第０から３ビットが１で使用中であり、第４ビットすなわち代替ブロック４が未使用であることがわかる。従って、書き込みエラーの発生したブロックの代替は代替ブロック４で行なう。よって、２１１において代替ブロック４のデータを消去し、２１２においてバッファメモリ６のファイルデータを代替ブロック４に書き込む。次に２１３においてエラー情報領域７１のうち書き込みエラーの発生したブロックのエラー情報を記憶してあるブロックをバッファメモリ６に転送する。そして、２１４においてバッファメモリ６に記憶したエラー情報を新しいエラー情報に書き換える。例えばブロック１の書き込みエラーの場合は００００２ｈ番地のＦＦＦＦｈを代替ブロック４のブロック番号０００４ｈに書き換える。そして、２１５においてエラー情報領域７１の書換えが必要なブロックのデータを消去し、２１６においてバッファメモリ６のデータを元のエラー情報領域７１のブロックへ書き込む。また、同様に２１７において使用情報領域７２のブロックをバッファメモリ６に転送し、２１８において今回新たに代替として用いる代替ブロックのビットを１に書き換える。そして２１９において使用情報領域７２のブロックのデータを消去した後、２２０においてバッファメモリ６のデータを使用情報領域７２のブロックへ書き込む。以上のエラー処理手順でエラーブロックの代替ブロックへの置き換えと、エラー情報の更新を行なう。
【００１４】
また、本例では２０７において書き込みのチェックのみ行なったが２０３及び２０５の消去の次の処理において消去が正常に行なわれたかどうかのチェックを加えてもよい。この場合も２０８のエラー処理を行なう。
【００１５】
本例ではエラーメモリ７に代替メモリ領域７３とエラー情報領域７１を設けたが個別のメモリチップとしてもよい。またこれとは逆にデータメモリ８の中にエラー情報領域と代替メモリ領域を設けてもよい。この場合の構成図を図６に示す。図６では図１と異なりエラーメモリ７が不要となるのでチップ数の削減が行える。
【００１６】
図６の実施例のデータメモリ８のメモリマップの例を図７に示す。図７に示すようにデータメモリ８を初期化情報領域８１、エラー情報領域８２、代替メモリ領域８３、データ領域８４の４つの領域に分ける。代替メモリ領域８３はデータ領域８４のエラーとなったブロックを代替する領域で、エラー情報領域８２はデータ領域８４の各ブロックのアドレス情報、あるいはデータ領域８２のブロックがエラーの場合は代替ブロックのアドレス情報を記憶する。ここでアドレス情報はデータメモリ８の物理アドレスの上位ビットまたは物理ブロック番号を表す。初期化情報領域８１は代替メモリ領域８３、及びエラー情報領域８２、データ領域８４の開始アドレスと容量を記憶しておく領域で、未使用の代替メモリのアドレス情報も記憶しておく。ユーザは半導体ディスクを初期化するときにこの初期化情報領域８１に設定することで代替メモリ領域８３の大きさを自由に設定できる。
【００１７】
次に本例の動作について説明する。まず、ホストバス３から読みだし命令を受けた場合のマイコン４の処理手順を図８に示す。ホストバス３からはデータ領域８４のブロック番号を与えるものとする。最初に、マイコン４は３００においてエラー情報領域８２からエラー情報を読み取る。エラー情報のアドレスは初期化情報領域８１のエラー情報開始アドレスとホストバス３から与えられるブロック番号から計算して得る。例えば読みだすブロック番号が０の場合、エラー情報のアドレスはエラー情報開始アドレス０００１を５１２倍した２００ｈの最初のアドレスである。次に３０１において３００で読みだしたエラー情報に対応する物理ブロックを読みだす。読みだすブロック番号が０の場合はエラー情報が２００ｈなので２００ｈを５１２倍したデータ領域８４の４０００ｈ番地から読みだす。また読みだすブロック番号が２の場合エラー情報は１００ｈなので代替メモリ領域８３の２０００ｈ番地から読みだす。このように本例ではエラー情報がそのままデータメモリの物理アドレスを表すので、図３の実施例と異なり１０１のエラーチェック処理が不要となるという利点がある。
【００１８】
次にホストバス３から書き込み命令を受けた場合について説明する。図９に書き込み時の処理手順を示す。まず４００においてバッファメモリ６にホストバス３から与えられるデータを書き込む。次に読みだし時と同様に書き込むブロックのエラー情報をエラー情報領域８２から読みだす。そして４０２において読みだしたエラー情報から書き込むブロックの物理アドレスを計算し、その物理アドレスのブロックのデータを消去する。そして４０３においてバッファメモリ６に記憶した書き込みデータを４０２で計算した物理アドレスが表すデータメモリ８のブロックへ書き込む。次に書き込み４０４において４０３の書き込みが正常に行なわれたかチェックする。正常な書き込みの場合は書き込み処理は終了するが正常でなかった場合は４０５のエラー処理を行なう。エラー処理４０５では書き込みエラーとなったブロックの代替ブロックを確保し、その代替ブロックへ書き込みデータを転送すると共にエラー情報と初期化情報を更新する。まず４０６において初期化情報領域８１から代替メモリ未使用アドレスを読み込む。代替メモリ未使用アドレスの値が新しい代替ブロックのアドレスを表す。次に４０７において代替メモリ未使用アドレスが表すブロックのデータを消去する。図７の例では１０４ｈを５１２倍した２０８００ｈ番地のブロックを消去する。次に４０８においてバッファメモリ６の書き込みデータを２０８ｈ番地のブロックへ書き込む。次に４０９において書き込みエラーとなったエラー情報のブロックのデータをエラー情報領域８２から読み取ってバッファメモリ６へ転送する。転送したエラー情報は４１０において新しいエラー情報に更新する。更新は例えばブロック０への書き込みエラーの場合はブロック０のエラー情報２００ｈを新しい代替ブロックのアドレス情報１０４ｈへ書き替える。次に４１１において書替えを行なうエラー情報領域８２のブロックのデータを消去し、４１２においてバッファメモリ６の更新したエラー情報をエラー情報領域８２の書換えを行なうブロックへ書き込む。次に初期化情報領域８１の代替ブロック未使用アドレスの更新を行なうため、まず４１３において初期化情報領域８１のデータをバッファメモリ６へ転送する。そして、４１４において転送した初期化情報のうち代替メモリ未使用アドレスの値を１加算する。この値は次回書き込みエラーが発生した場合に新しい代替ブロックのアドレス情報となる。次に４１５において初期化情報領域８１のデータを消去し、４１６においてバッファメモリ６の更新した初期化情報を初期化情報領域８１へ書き込む。以上の手順で書き込み及びエラー処理を行なう。
【００１９】
また、本例では代替メモリ領域８３とデータ領域８４はそれぞれ１領域のみであるが、初期化情報領域に新たに他のアドレス情報と容量を加えることで複数の代替メモリ領域８３とデータ領域８４を設けても差し支えない。
【００２０】
この様に、フラッシュメモリを記憶媒体とした半導体ディスクにおいて、フラッシュメモリの書替え回数の制限によるエラーを救済できるので半導体ディスクの寿命をのばすことができる。
【００２１】
次に、図１、２、６、７の実施例における代替メモリ領域７３、８３とエラー情報領域７１、８２の容量の決定方法について説明する。
【００２２】
まず、代替メモリ領域７３、８３の容量は、ホストシステム２がもっとも頻繁に書換えを行う領域、例えばＦＡＴやディレクトリー領域としてデータメモリ８のうちいくつのブロック数を用いるかによる。本例ではデータメモリ８は３２ＭＢのうち、ＦＡＴ及びディレクトリー領域として１２８ｋＢ用いるとする。この場合、代替メモリ領域７３、８３に１２８ｋＢの３倍、３８４ｋＢの容量をとれば、ＦＡＴとディレクトリー領域がすべてエラーとなっても３回置き替えが可能になるため、半導体ディスク１の寿命は４倍になる。
【００２３】
従って、代替メモリ領域７３、８３はシリコンディスク１の寿命をｎ倍にしたい時、データメモリ８のうち頻繁に書換えを行う領域の容量のｎ−１倍の容量を持てばよい。図７の実施例の場合には代替メモリ領域８３として１２８ｋＢ用いているので寿命は２倍となる。一般にはＦＡＴ及びディレクトリー領域のすべてにおいて書換えが頻繁に行われることはないので寿命は更に伸びると予想されるが、これは代替メモリ領域７３、８３の容量の目安と考える。
【００２４】
次にエラー情報領域７１、８２の容量について説明する。図１の実施例の場合は代替メモリ領域７３の各ブロック番号を記憶する領域をデータメモリ８のブロック数分必要である。すなわち、本例では代替メモリ領域７３が７６８ブロック（３８４ｋＢ）、データメモリ８が６４ｋブロック（３２ＭＢ）あるので、７６８を表す１０ビットのアドレス情報を６４ｋ個記憶する容量、８０ｋＢは少なくとも必要である。
【００２５】
図７の実施例の場合はエラー情報領域８２には代替メモリ領域８３またはデータ領域８４のブロック番号を記憶する領域をデータ領域８４のブロック数分必要である。本例では代替メモリ領域８３に２５６ブロック、データ領域８４に６５０２４ブロックを与えているので、ブロック番号を表す１６ビットの情報を６５０２４個分記憶する容量が必要である。
【００２６】
使用情報領域７２および初期化情報領域８１は残りの容量を割り当てる。
【００２７】
これら各領域を分けるときはフラッシュメモリの書替え単位であるブロック単位で分けると都合がよい。
【００２８】
このように本発明によれば、フラッシュメモリの全容量に対し、２％以下の容量をエラー情報領域７１、８２や代替メモリ領域７３、８３に用いることで、半導体ディスク１の寿命を２倍以上にすることが可能である。また、寿命を更に延ばしたいときには代替メモリ領域７３、８３の容量を増やせば、その分だけ寿命が延びる。
【００２９】
次に、ホストシステム２と半導体ディスク１のインターフェースについて補足説明する。ホストシステム２はパーソナルコンピューターやワードプロセッサ等の情報処理装置であり、ホストバス３はこれらのホストシステム２が通常、磁気ディスクなどのファイル装置を接続するバスである。一般的に、磁気ディスクを接続するホストバス３にはＳＣＳＩやＩＤＥインターフェースがある。本発明の半導体ディスク１も磁気ディスクと同様にＳＣＳＩやＩＤＥインターフェース等のホストバス３に接続すると磁気ディスクなどから半導体ディスク１への移行が行いやすい。
【００３０】
半導体ディスク１をＳＣＳＩやＩＤＥインターフェースへ接続するには磁気ディスクのインターフェースと同一にする必要がある。そのためにはまず、フラッシュメモリのブロックの大きさを磁気ディスクのセクタに対応させる必要がある。本実施例ではブロックサイズを５１２バイトとしたが、これは磁気ディスクのセクタサイズにあわせたものである。ブロックサイズが磁気ディスクのセクタサイズよりも小さい場合には複数のブロックを１セクタとして用いれば問題ないが、大きい場合にはブロックをいくつかのセクタサイズに分けて使用する必要がある。また、磁気ディスクのトラックやヘッドに相当するものはフラッシュメモリを論理的にトラックやヘッドに割り振ればよい。また、各制御レジスタや割込みなどのインターフェースを同一にし、ホストバス３から与えられる磁気ディスクの入出力命令で半導体ディスク１の制御を行うようにする。しかし、磁気ディスク特有の命令、例えばモーターの制御などの処理を別の処理に置き換える必要がある。
【００３１】
下記の表１は磁気ディスクへの命令とその命令に対する磁気ディスクの処理、及び、磁気ディスクの命令をそのまま半導体ディスク１へ流用した場合の半導体ディスク１の処理の例を示したものである。
【００３２】
【表１】
0003609739.tif 000002
【００３３】
これはＩＤＥインターフェースの例である。表１においてＮｏ．１およびＮｏ．６はヘッドの移動命令であるが、半導体ディスク１にはヘッドがないのでこの処理は行わない。また、フラッシュメモリは磁気ディスクよりもエラー率が格段に低いためＥＣＣを設ける必要がない。そのため、Ｒｅａｄ  Ｖｅｒｉｆｙ  Ｓｅｃｔｏｒ命令は処理を行わない。その他の命令は表１に示す通りである。
【００３４】
また、表１において処理を行わない場合でも、磁気ディスクで割込みなどを発生する場合は半導体ディスク１でも同様に割込みを発する。すなわち、ホストバス３から見れば磁気ディスクと半導体ディスク１の区別がないようにインターフェースを取る。
【００３５】
以上のように磁気ディスクのインターフェースと半導体ディスク１のインターフェースを同一にすることにより、磁気ディスクから半導体ディスク１への置き換えが容易になる。
【００３６】
ＳＣＳＩインターフェースについてもＩＤＥインターフェースと同様に磁気ディスクと同じインターフェースにすれば置き換えが容易に行える。しかし、ＳＣＳＩインターフェースには磁気ディスク以外に光磁気ディスクなど他の装置の接続が可能なため、ファイル装置個別の命令体系を持っており、半導体ディスク１も専用の命令体系を組んだ方がむだな処理もなく、高速化が行える。但し、基本的には磁気ディスクと同じ命令体系で、モーター制御コマンドなどがないものである。この場合、フラッシュメモリのブロックサイズは何バイトでもよく、フラッシュメモリの１ブロックを１セクタとして処理すればよい。また、図１および図６の実施例で示したマイコン４の処理、図３、４、５、８、９のフローチャートの処理はホストシステム２で行ってもよい。
【００３７】
また、標準のＩＣカードインターフェース仕様としてＪＥＩＤＡやＰＣＭＣＩＡがあるが、本発明の半導体ディスク１をＩＣカード化し、インターフェースをＪＥＩＤＡまたはＰＣＭＣＩＡに準拠させて半導体ファイル１を構築してもよい。この場合、半導体ディスク１はＩＯ装置として扱う。
【００３８】
磁気ディスクと比較して半導体ディスク１の有利な点は、表１に示したように半導体ディスク１の処理は磁気ディスクよりも少なくてすむため、高速化が行えること、モーターなどのメカ部分がないため、低消費電力であること、また、振動などに対する耐衝撃性があること、また、信頼性が高いのでＥＣＣが必要ないことなどがあげられる。
【００３９】
また、記憶媒体としてフラッシュメモリを用いたのは、不揮発性なので電源オフ時にもデータを保持し、ＳＲＡＭやＤＲＡＭのようにバッテリーによるバックアップが必要ないこと、ＥＥＰＲＯＭに比べて構造が簡単なので大容量化が容易で、大量生産に向き安価にできることなどの利点があるからである。
【００４０】
また、本発明においては、フラッシュメモリは、複数の領域に分けられていて、データを記憶し上記の領域に対応して設けられた複数のデータメモリ領域と、エラーとなったデータメモリ領域を代替し上記の領域に対応して設けられた複数の代替メモリ領域と、データメモリ領域のエラー情報を記憶し上記の領域に対応して設けられた複数のエラーメモリ領域と、各領域の開始アドレスと容量とを記憶する初期化情報領域とを有することとしても良い。これによれば、あらたにフラッシュメモリを増設し記憶容量を拡張する場合、新規に３種のメモリ領域を増設すれば、今までのエラーメモリ領域やデータメモリ領域の記憶した内容を変更せずに、増設ができる。初期化情報領域に拡張したメモリの情報を記憶するようにすれば良い。
【００４１】
また、本発明においては、エラーメモリ領域は、エラーの発生した代替メモリ領域のエラー情報をも有することとしても良い。こうすれば、データメモリ領域のエラーに限らず、一度データメモリ領域を置き換えた代替メモリ領域にエラーが発生した場合にもさらにエラーの救済を行うことができる。代替の仕方は、データメモリ領域にエラーが発生した場合と同じようにすれば良い。代替メモリ領域の代替を行うことで、寿命を伸ばすことができる。
【００４２】
また、本発明においては、代替メモリ領域の容量は、上記データメモリ領域のうち予め定められた一部の領域であることとしても良い。領域の選択方法としては、最も頻繁に書替が行われる領域を選べば良い。そうすると、少ない代替領域があれば、寿命を飛躍的に伸ばすことができる。
【００４３】
【発明の効果】
本発明により、フラッシュメモリを記憶媒体とした半導体ディスクにおいて、半導体ディスクの寿命をのばすことができる。
【図面の簡単な説明】
【図１】本発明の一実施例の半導体ディスクおよびホストシステムの構成図
【図２】エラーメモリ７のメモリマップの説明図
【図３】読みだし時のマイコン４のフローチャート
【図４】書き込み時のマイコン４のフローチャート
【図５】マイコン４のエラー時のフローチャート
【図６】本発明の他の一実施例の半導体ディスクおよびホストシステムの構成図
【図７】本発明の他の実施例のデータメモリ８のメモリマップの説明図
【図８】読みだし時の他の実施例のマイコン４のフローチャート
【図９】書き込み時の他の実施例のマイコン４のフローチャート
【符号の説明】
１．．．半導体ディスク
２．．．ホストシステム
３．．．ホストバス
４．．．マイコン
５．．．メモリコントローラ
６．．．バッファメモリ
７．．．エラーメモリ
８．．．データメモリ
７１．．．エラー情報領域
７２．．．使用情報領域
７３．．．代替メモリ領域
８１．．．初期化情報領域
８２．．．エラー情報領域
８３．．．代替メモリ領域
８４．．．データ領域
【図１】
0003609739.tif 000003
【図２】
0003609739.tif 000004
【図３】
0003609739.tif 000005
【図４】
0003609739.tif 000006
【図５】
0003609739.tif 000007
【図６】
0003609739.tif 000008
【図７】
0003609739.tif 000009
【図８】
0003609739.tif 000010
【図９】
0003609739.tif 000011