(57)【特許請求の範囲】
【請求項１】
各々に物理アドレスが割り当てられた複数の領域に分割され、アドレス信号線より与えられるアドレス値に従って特定の前記領域のデータの格納および読み出しが可能で、少なくとも前記領域ごとに電気的に書き換え可能な不揮発性半導体メモリにおいて、
前記領域ごとに設けられ、前記領域に格納した格納データの論理アドレス値を登録し、前記領域に格納した格納データの消去と共に、該登録した論理アドレス値が消去される記憶領域と、
前記記憶領域および前記アドレス信号線に前記不揮発性半導体メモリ内部で接続され、前記記憶領域に登録した論理アドレス値と前記アドレス信号線より与えられる論理アドレス値とを直接比較するアドレス比較手段とを備え、
前記領域に格納された前記データの読み出しの際、前記アドレス比較手段により、前記記憶領域に登録した論理アドレス値と前記アドレス信号線より与えられる論理アドレス値が一致する前記記憶領域を検出し、その一致が検出された前記記憶領域に対応する領域のアクセスを行うことを特徴とする不揮発性半導体メモリ。
【請求項２】
請求項１記載の不揮発性半導体メモリを搭載した半導体記憶装置において、
前記領域に対して書き換えが指示された場合には、消去が行われている領域への書き込みを行い、
前記論理アドレス値を登録可能な領域に、格納データの論理アドレス値を登録し、
該論理アドレス値の格納データが以前に格納されていた領域は、格納データおよび論理アドレス値の登録を消去することを特徴とする半導体記憶装置。
【請求項３】
請求項２記載の半導体記憶装置において、
当該半導体記憶装置としての記憶容量より搭載する前記不揮発性半導体メモリによる記憶容量の総量が多いようにすることにより、格納データが存在しない領域を確保し、前記領域に対する書き換えが指示された場合には、前記格納データが存在しない領域への書き込みを行うことを特徴とする半導体記憶装置。
【請求項４】
請求項２記載の半導体記憶装置において、
前記領域に対する書き換えにより、以前に格納されていた格納データと論理アドレスの登録値の消去は、書き換えの指示を行ったホストに対して、書き換えの完了を報告した後に行うことを特徴とする半導体記憶装置。
【請求項５】
請求項２記載の半導体記憶装置において、
前記領域に対する書き換えにより、以前に格納されていた格納データと論理アドレスの登録値が消去されるべき状態であることと、消去が行われたことを示すフラグを各領域に設け、消去が完了したことを示された領域を新規の書き込みにおいて選択する、書き込み領域選択手段を設けたことを特徴とする半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体メモリを記憶媒体とする記憶装置に関連し、特にアクセスを高速化するためのアドレス変換とデータ転送方式、およびそれを実現するための構成に関する。
【０００２】
【従来の技術】
電気的に書き換え可能な不揮発性メモリ、特にフラッシュメモリは、衝撃や振動に強く、低消費電力、高速アクセスなどの特性から、磁気ディスクに置き換わり得る記憶媒体として、着目されている。
【０００３】
しかし半導体記憶装置の不利な点として容量価格比が挙げられる。半導体の集積度が年々向上しているとはいえ、記憶１ビットごとにトランジスタを少なくとも一つ必要とする半導体メモリと、単なる磁気平面上に磁気を帯びさせる磁気ディスクとでは１ビットに必要なコストに大きな隔たりがある。さらに半導体メモリでは磁気ディスクと比較して不良ビットの発生率が高く、歩留まりの悪化を招き、価格低下を容易にできない。そこで、従来より、不良を持つ半導体メモリでも使用可能となるような不良救済処理を記憶装置内で行い、メモリチップの歩留まりを向上させ、価格低下を促進している。
【０００４】
不良救済の方式としては、特開平3-310848に開示されている。これによると、不良のある不揮発性メモリを記憶媒体とする場合、不良の領域を代替する領域を備え、また不良の場所とその代替え場所を特定できる情報を記憶しておき、不良の領域に該当する記憶データをアクセスする際には、不良場所をアクセスせずに代替え場所をアクセスするよう制御する、というものである。この場合、マイクロプロセッサなどのコントロールユニットが存在し、アクセスする領域が不良の領域に該当しないか、の判断、および不良に該当する領域であった場合には割り当てられている代替え領域を探し出してアクセスするように制御することとなる。そのためには、不良の領域とその代替え領域を示すアドレス変換テーブルを備える必要があり、マイクロプロセッサはそれをもとにアクセス箇所を特定する。また、書き込み時にも、書き込む領域が不良の領域に該当しないか確認し、不良の領域であった場合には別の代替え領域に書き込みを行う。その際、フラッシュメモリにおいては書き込もうとするセクタの消去処理が必要であり、消去処理が終了してから格納データをメモリに転送し、書き込み処理を行う。
【０００５】
【発明が解決しようとする課題】
上記従来技術では、マイクロプロセッサなどの制御ユニットにより判断、およびアドレス変換処理などが必要となり、処理時間が必要となる。また書き込みアクセスの際には使用可能領域か不良領域かに関わらず、以前の格納データを消去してから書き込むという動作が必要になる。以上の点でアクセスの高速化という課題に関しては考慮がされておらず、問題となった。
【０００６】
【課題を解決するための手段】
上記課題は、不良か否かの判断、および代替え処理をメモリチップ内部で行うことにより高速化する。また、これによりホストより指定される論理アドレスと実際の記憶媒体の記憶場所を示す物理アドレスの相関を考慮したアドレス設定をする必要がないため、書き込みにおいて、任意の消去済み物理アドレスの領域に書き込めるようになる。
【０００７】
具体的には、各々に物理アドレスが割り当てられた複数の領域に分割され、アドレス信号線より与えられるアドレス値に従って特定の前記領域のデータの格納および読み出しが可能で、少なくとも前記領域ごとに電気的に書き換え可能な不揮発性半導体メモリにおいて、前記領域ごとに論理アドレス値を登録可能な記憶領域と、該登録した論理アドレス値と前記アドレス信号線より与えられる論理アドレス値とを比較するアドレス比較手段とを備え、該アドレス比較手段により一致が検出された領域のアクセスを行う。
【０００８】
また上記記載の不揮発性半導体メモリを搭載した半導体記憶装置において、ある領域の書き換えが指示された場合には、消去が行われている領域への書き込みを行い、その際前記論理アドレス値を登録可能な領域に、格納データの論理アドレス値を登録し、該論理アドレス値の格納データが以前に格納されていた領域は、格納データおよび論理アドレス値の登録を消去する。
【０００９】
また、上記記載の不揮発性半導体メモリを搭載した半導体記憶装置において、該半導体記憶装置としての記憶容量より搭載する前記不揮発性半導体メモリによる記憶容量の総量が多いようにすることにより、常に格納データが存在しない領域を確保し、ある領域の書き換えが指示された場合には、前記格納データが存在しない領域への書き込みを行う。
【００１０】
また記載の不揮発性半導体メモリを搭載した半導体記憶装置において、ある領域の書き換えにより、以前に格納されていた格納データと論理アドレスの登録値の消去は、書き換えの指示を行ったホストに対して、書き換えの完了を報告した後に行う。
【００１１】
さらに、上記記載の不揮発性半導体メモリを搭載した半導体記憶装置において、ある領域の書き換えにより、以前に格納されていた格納データと論理アドレスの登録値が消去されるべき状態であることと、消去が行われたことを示すフラグを各領域に設け、消去が完了したことを示された領域を新規の書き込みにおいて選択する、書き込み領域選択手段を設ける。
【００１２】
また、不揮発性半導体メモリを１以上と、磁気ディスクインターフェース手段を備えた半導体記憶装置でもある。
【００１３】
【発明の実施の形態】
本発明の実施の携帯の１例を図１を用いて説明する。図１は本発明を実現する半導体メモリ内部の構成例である。図中、１０１はメモリチップ、１０２はメモリチップ内部で複数の領域に分割されたデータ格納領域、１０３はデータ格納領域１０２の格納データの論理アドレス値を格納する論理アドレス値格納領域、１０４はホストよりアクセス要求のある論理アドレス値を入力するアドレスバス線、１０５は論理アドレス格納領域１０３に格納された論理アドレス値とホストよりアクセス要求された論理アドレス値１０４を比較するアドレス比較回路、１０６はデータ格納領域１０２をアクセスするための制御回路、１０７はアクセス制御回路１０６から出力されるアクセス制御信号であり、通常複数のデータ格納領域より一つが選ばれ、選ばれたデータ格納領域は格納データを出力する。１０８は本メモリチップに与えられるアクセス制御信号、１０９は比較回路１０５の結果より一致したデータ格納領域にのみアクセス制御信号１０７を与えるための選択回路、１１０は選択されたデータ格納領域１０２のアクセスデータ出力である。
【００１４】
なお、論理アドレス格納領域１０３に格納される論理アドレス値は常に同一チップ内では唯一のものであり、従って、アドレス比較回路１０５で一致が検出されるデータ格納領域は常に一つ以下（どれも選択されないこともあり得る）である。もし論理アドレス格納領域１０３に格納される論理アドレス値が同一チップ内で同じものが２つあり、かつそのアドレスがアドレスバス線１０４により選択された場合には、複数のデータ格納領域をアクセスすることによるデータの衝突を防ぐため、物理アドレスの大小により優先順位がつけられる、オープンドレインなどで異なるレベルのデータ出力の衝突でも電流が流れないようにする、などの工夫が必要である。また、このような時にはエラーであることを示すステータスレジスタ、信号出力などを設定することも有効である。
【００１５】
また１１１はフラグレジスタであり、無効となったデータが格納されていることを示すフラグと、無効なデータの消去が完了して書き込み可能な状態であることを示す２つのフラグが設定されている。フラグレジスタ１１１の値はアドレス比較による選択回路１０７において、無効なデータが格納されている場合には、アクセスがマスクされるように用いられる。また、書き込みを行う領域の選択において、消去が完了した領域だけを選択するように用いることができる。以上の構成のメモリチップを実現し、図２に示した手順によれば、高速アクセスが可能になる。（１）はある時点におけるメモリチップ内のデータ格納状況であり、データ格納領域１０２のうちaとbにそれぞれ論理アドレス１、２のデータが格納されており、論理アドレス格納領域１０３にはそれぞれ１、２というアドレス値が格納されている。またc、dには何も格納されておらず、あらかじめ消去された状態になっている。（２）では（１）の状態にここまでで書き込まれていなかった論理アドレス３のデータが書き込まれたことを示しており、cのデータ格納領域に３のデータが、論理アドレス格納領域には３が書き込まれたことを示す。この時cはあらかじめ消去されていたため、書き込み動作しか行う必要がない。（３）は（２）の状態ですでに書き込まれている１の書き換えを行ったことを示している。書き込む場所は、何も書き込まれていないdの領域に対して行われ、この時も消去動作を行わないで書き込みだけが行われる。（４）は（３）に引き続いて行われる動作であり、dへの論理アドレス１の書き込みにより無効となったaに書き込まれているデータの消去を行ったものである。この動作はもしdへの論理アドレス１のデータの書き込みが行われているのと平行して行うことができるのであれば、（３）と平行して行う。そのためには複数チップ使用時であればa、dを別チップとなるように割り当てればよい。
【００１６】
もし、これをしない場合には、dへの論理アドレス１のデータの書き込みが終了してホストに処理終了を知らせた後に行うようにする。一方読み出し時にはアドレスバス線１０４で指定されたアクセス論理アドレス値と一致するアドレス値が格納されているアドレス格納領域１０３を検出し、対応するデータ格納領域１０２のデータを出力する。以上の動作により、書き込みにおいては消去動作に要する時間が書き込み性能に影響を与えないため、書き込み性能を向上させると同時に、読み出し時にはデータが格納されている物理アドレスをマイクロプロセッサなどで演算して求めたり検索したりする時間が不要になるため、読み出し性能を向上させる。そしてこれは不良ビットを含むメモリを使用した場合にも、その領域を書き込み時に選択しなければ問題が起きないため、メモリの歩留まりも向上する。
【００１７】
図３は、本メモリチップを用いた記憶装置の全体構成図である。図中３０１は本発明のメモリチップを記憶媒体とする記憶装置、３０２は記憶装置３０１のホストとなる情報機器の制御バスおよび信号、３０３はホストとのインターフェースを行うためのレジスタや信号を送受するインターフェース回路で、例えば磁気ディスクインターフェースとして一般的なATAインターフェースや、周辺機器インターフェースとして一般的なSCSI、またシリアルのUSBなどのインターフェースが考えられる。３０４は図１に示したメモリチップ、３０５はホストからのデータや、記憶装置から読み出されるデータを一時的に格納するバッファメモリ、３０６はバッファメモリ３０５とインターフェース回路３０３、およびメモリチップ３０４のアクセスデータの転送を制御するための転送制御回路、３０７はホストから指定された論理アドレスのデータが格納されているメモリチップ３０４を特定してアクセス制御を行うためのチップ選択回路である。次に読み出し動作について図４を参照しながら説明する。
【００１８】
ホストはアクセスしたいデータに対応する論理アドレスを制御信号３０２により指定する（a）。これを受けたインターフェース回路３０１は、チップ選択回路３０７に論理アドレスを送る。チップ選択回路３０７では論理アドレス値よりチップの特定を行う（b）が、最も単純な方法では論理アドレス値の上位ビットをデコードしてメモリチップを特定する。しかし前述のように高速化のために書き換え時にはそれまで格納していたメモリチップとは別のメモリチップを割り当てるような場合には、メモリチップ内部にチップ選択の機能を持たせる必要があり、このような場合にはチップ選択回路３０７は不要になる。もちろん１チップしか用いない装置ではチップ回路３０７は不要である。メモリチップ内部にチップ選択の機能を持たせるためには、使用するチップ数のエンコードビット分だけ余分にアドレス入力ビット数と論理アドレス格納領域のビット数を備えることにより実現できる。
【００１９】
例えば１メモリチップで１K個のデータ領域の容量を持っているとすれば、アドレスビット数は１０ビットで必要十分であるが、４チップ同時使用を考慮する場合アドレスビット数を１２ビット備えておく。また論理アドレス格納領域のビット数も同様の１２ビット備え、データ格納時には１２ビットのアドレス値として登録する。これにより１２ビット論理アドレス指定で４チップ分の４Kデータ格納領域から一つのデータ格納領域を特定することができるようになる。この場合使用しているメモリチップの全ての領域の論理アドレス格納領域の論理アドレス値は異なっていなければならない。以上によりチップ選択、というよりアクセスするデータ格納領域の特定が完了したら、該データ格納領域のデータをアクセスする。このアクセスはメモリチップが内部で自動的に格納領域を特定して行われることになる（c）。そして自動的に読み出されたデータはデータ転送制御回路３０６の制御のもとにメモリチップ３０４よりバッファメモリ３０５に転送される（d）。
【００２０】
このとき、データ信頼性向上のために誤り検出や訂正を行う機能が付加されることは記憶装置として有効な方法である。もちろんこの場合にはメモリチップのデータ格納領域に併せて誤り訂正、検出コードを格納する領域を確保し、データ格納時に算出したコードを格納しておく必要がある。バッファ３０５に転送され格納された読み出しデータは転送制御回路によりインターフェース回路を通してホストに転送される（e）。
【００２１】
以上により読み出し処理が完了する。一方書き込み処理は、ホストからアクセスする論理アドレス値の指定（f）と、書き込みデータが転送される（g）。転送されたデータはバッファメモリ３０５に格納され、その間チップ選択回路３０７が論理アドレス値からチップの特定を行う（h）。ただし、読み出しアクセス時と同様単純にアドレス値によりチップ選択ができないようにしている場合には、一定の規則を作ってメモリチップを選択する方法が良い。例えば書き込み順にメモリチップを順番に巡回して割り当てていくようにすれば、一部のメモリチップに書き換えが集中して劣化が偏って進行するというようなことがなくなる。メモリチップが特定され、選択されたメモリチップは、消去済みの領域の一つを選択し（i）、バッファ３０５から送られてくるデータを格納する（j）。また、もし可能であれば、これと平行して、同論理アドレス値の以前のデータが書き込まれていたデータ格納領域に消去動作を行う（k）。もし平行動作が不可能であれば、先の書き込み動作が終了した後、消去動作を行う（m）。このとき書き込み動作が終了した時点でホストに書き込み終了を知らせる（l）ことにより、書き込み処理の消去動作時間分の短縮が可能となる。なお、あらかじめ消去した部分に書き込みを行うことを確実にするためには、ホストから認識されている記憶容量よりも、実際に記憶媒体上に存在する記憶容量の方が大きいように設定を行い、ホストから全容量分の書き込みを行っていても、書き換えを行う場合にはすでに消去してある領域が存在するようにすることにより、書き込みの高速化を確実にすることができる。
【００２２】
しかしここで問題となるのは、消去処理を行っているときにホストは書き込み処理が終了したということで電源を遮断するなどの終了処理を行ってしまう可能性があるということである。消去動作途中で電源が遮断されると、格納データは曖昧な状態となり、次に読み出された時にどのようなデータとなるか不明である。
【００２３】
これは特に論理アドレス格納領域の格納データにおいて深刻である。つまり、論理アドレス値に信頼性がなくなり、他の正常な領域のアドレス値と一致してアクセスの障害になる可能性がある。そのため消去動作途中で電源が遮断された、あるいはそれに類することが起きて消去が完了していない場合にはそれを示すフラグがその領域に立つようにし、格納データが書き換えられて無効になったことを示すフラグと組み合わせるて以降のアクセスに識別子として用いられると上記問題が解決する（図７参照）。図７に示されているように、例えばフラグが立っている領域はアドレスの一致検出を行わない、電源投入時の初期処理時に消去を再度行って完全に消去が行われるようにする、などの方法が有効である。
【００２４】
また書き込み場所の特定も考慮する必要がある。つまり、書き込み時にはそれ以前の格納領域とは異なり、また、他のデータが書き込まれていない、消去がすでに行われている領域を選択しなければならない。これには消去が行われている領域にフラグを立てておき、書き込み領域の選択に用いるようにし、物理アドレスの小さい方から検索していって選択する、という方法が単純である。
【００２５】
しかし、この方式によれば物理アドレスの小さい領域が頻繁に選択されることになり、使用頻度による劣化の進行に偏りが生じてしまう。そこで、例えば当該論理アドレス値のデータが以前に格納されていた領域から検索を開始するようにすれば、一様に使用されることが期待できる。
【００２６】
なお、上記発明のメモリチップは、消去できるデータの最小単位が、ホストが記憶装置に対して扱うデータの単位容量に等しいものとすると非常に簡単で制御が単純化するが、一致しない場合にも本発明の適用は可能である。特にメモリチップ面積の縮小を目的として、メモリ上で消去できるデータの最小単位がホスト間で扱うデータ単位より大きい場合が考えられるが、制御の複雑化を招くものの消去できる領域の一部だけを書き換えるということことにより、十分可能である。図５はこのようなメモリを想定した構成を示している。５０１はホスト間で扱うデータ容量の４倍の容量が最小消去単位であるメモリチップ、５０２はメモリチップ５０１の最小消去単位、５０３はホスト間で扱うデータの最小単位、５０４はホスト間で扱うデータの最小単位５０３ごとに設けられた論理アドレス格納領域である。ホストからのデータ書き込みではデータ単位５０３の容量で書き込みが行われるため、書き込み単位ごとに論理アドレス値を登録する必要がある。そのためリードアクセス時のアドレス比較もこの単位で行われる必要がある。書き換えが行われる際には、ホストの単位５０３で行われることになるため、最小消去単位５０２の一部だけを消去することとなる。ただし、部分的に消去できるわけではないため、最小消去単位５０２に格納されているデータを一旦読み出して退避して該領域を消去し、消去したい部分のデータだけ消去状態のままにして退避したデータを書き戻す、という処理が必要になる。
【００２７】
図６にはその処理の１例を示している。図では、論理アドレス３が書き換えられて、別の領域に新たに書き込まれたために、このブロックのアドレス３のデータは無効で不要になり、この部分だけ消去を行ったものである。この後、書き込み可能となった領域には他の論理アドレスの書き換え時に新規書き込み領域として使用することになる。このため、一つの消去領域全体を消去状態にしたとき、異なる場所であれば部分的に複数回に分けて書き込みを行うことが可能なメモリチップであることが前提となる。
【００２８】
【発明の効果】
本発明により、不良ビットや不良領域を持つメモリを記憶媒体に使った場合でも、書き込みにおいては消去に要する時間を節約することができ、読み出しにおいては不良の発生したセクタをアクセスすることなくアドレス変換、アドレス検索などの時間のかかる処理を一切不要としてデータをアクセスすることができ、性能を向上させることができる。またアドレス変換において、複雑な処理を不要とするため、外部にマイクロプロセッサなどの複雑な処理を実行できる手段が必要でなく、構成の単純化が図れる効果もある。
【図面の簡単な説明】
【図１】本発明のメモリチップの内部構成例
【図２】メモリチップ内のブロックへの書き込み手順例
【図３】本発明のフラッシュメモリチップを用いた記憶装置のブロック図
【図４】ホスト間のアクセス時タイムチャート
【図５】メモリチップの最小消去容量単位がホスト間で扱われるデータの最小単位より大きなチップの構成例
【図６】メモリの１つの消去単位が、ホストで扱う単位の４つ分にあたる場合の書き換え処理手順
【図７】各領域に備えたフラグの使用例
【符号の説明】
１０１…メモリチップ、１０２…データ格納領域、１０３…論理アドレス格納領域、１０４…論理アドレス入力、１０５…アドレス値比較回路、１０７…メモリ制御信号、１０９…アクセス選択回路、１１０…読み出しデータ、３０１…記憶装置、３０４…メモリチップ、３０５…データバッファ、３０６…転送制御回路、３０７…チップ選択回路
【図１】
0003865530.tif 000002
【図２】
0003865530.tif 000003
【図３】
0003865530.tif 000004
【図４】
0003865530.tif 000005
【図５】
0003865530.tif 000006
【図６】
0003865530.tif 000007
【図７】
0003865530.tif 000008