(57)【要約】【課題】書き換え命令に対する処理に要する時間を短縮する。【解決手段】半導体ディスク装置は、ホストインタフェース１２、マイクロコントローラ１４、バッファメモリ１６、記憶媒体１８及びブロック位置管理部２０とを含んで構成されている。記憶媒体１８は、１対の半導体メモリチップＡ1 、Ｂ1 が複数組（Ｎ組）設けられている。一方の半導体メモリチップに書き換え命令が入力されると、書き換え対象のセクタを含むブロックを構成する全てのセクタのデータをバッファメモリ１６に転送する。バッファメモリ１６では書き換え対象のセクタのデータを書き換え、バッファメモリ１６に転送されたデータは、他方の半導体メモリチップの消去済み領域のブロックに転送する。【選択図】図２
2008251056.tif 000002
【特許請求の範囲】
【請求項１】
複数のセクタによって構成されるブロック単位で各々データ消去が可能な１対の不揮発性半導体メモリと、
前記不揮発性半導体メモリに記憶されたデータのブロック位置を示すブロック位置管理情報を記憶するブロック位置管理部と、
データを一時的に記憶するセクタ単位での書き換えが可能な１つのバッファメモリと、
一方の不揮発性半導体メモリのブロック内のセクタに対する書き換え命令が入力された場合に、前記ブロック位置管理部のブロック位置管理情報に基づいて書き換え対象のセクタを含むブロック位置を判断し、前記一方の不揮発性半導体メモリの書き換え対象のセクタを含むブロックのデータを前記バッファメモリへ転送し、前記書き換え対象のセクタのデータを前記バッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータと書き換え対象のセクタ以外のセクタのデータとを前記バッファメモリから他方の不揮発性半導体メモリの消去済みブロックへのデータの転送を行った後、前記一方の不揮発性半導体メモリにおける前記書き換え対象のセクタを含むブロックのデータをブロック単位で消去するように制御する制御部と、
前記一方の不揮発性半導体メモリの前記消去済みブロックのブロック数と前記他方の不揮発性半導体メモリの消去済みブロックのブロック数との均等化を実行する消去済みブロック制御手段と、
を有する半導体記憶装置。
【請求項２】
前記消去済みブロックのブロック数の均等化を所定時間以上のアイドル状態を認識した場合に実行することを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記制御部は、前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータを前記バッファメモリから前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴とする請求項１又は請求項２記載の半導体記憶装置。
【請求項４】
前記制御部は、前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータか否かを判定し、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータであると判定した場合、前記書き換え対象のセクタのデータを前記バッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記制御部は、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータでないと判定した場合、前記バッファメモリへ転送された１セクタ分のデータの書き換えを行わずに前記バッファメモリへ転送した１セクタ分のデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴とする請求項４記載の半導体装置。
【請求項６】
複数のセクタによって構成されるブロック単位で各々データ消去が可能な１対の不揮発性半導体メモリの一方の不揮発性半導体メモリのセクタに対する書き換え命令が入力され、他方の不揮発性半導体メモリに消去済みブロックが存在する場合には、
前記一方の不揮発性半導体メモリの書き換え対象のセクタを含むブロックのデータを一時的にデータを記憶するセクタ単位での書き換えが可能な１つのバッファメモリに転送しながら、前記バッファメモリ内で前記書き換え対象のセクタのデータを書き換え、かつ前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを書き換え対象のセクタ以外のセクタのデータと共に他方の不揮発性半導体メモリの消去済みブロックに転送し、
前記他方の不揮発性半導体メモリへのデータの転送終了後に前記一方の不揮発性半導体メモリにおける転送済みの前記書き換え対象のセクタを含むブロックのデータをブロック単位で消去し、
前記一方の不揮発性半導体メモリのセクタに対する書き換え命令が入力され、前記他方の不揮発性半導体メモリに消去済みブロックが存在しない場合には、
前記他方の不揮発性半導体メモリに消去済みブロックを生成した後に、前記一方の不揮発性半導体メモリの書き換え対象のセクタを含むブロックのデータを前記バッファメモリに転送しながら、前記バッファメモリ内で前記書き換え対象のセクタのデータを書き換え、かつ前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを前記書き換え対象のセクタ以外のセクタのデータと共に前記他方の不揮発性半導体メモリの消去済みブロックに転送し、
前記他方の不揮発性半導体メモリへのデータの転送終了後に前記一方の不揮発性半導体メモリにおける転送済みの前記書き換え対象のセクタを含むブロックのデータをブロック単位で消去する、
ことを特徴とする半導体記憶装置の書き換え制御方法。
【請求項７】
所定時間以上のアイドル状態を認識した場合には、前記一方の不揮発性半導体メモリの前記消去済みブロックのブロック数と前記他方の不揮発性半導体メモリの消去済みブロックのブロック数との均等化を実行することを特徴とする請求項６記載の半導体記憶装置の書き換え制御方法。
【請求項８】
前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータを前記バッファメモリから前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴とする請求項６又は請求項７記載の半導体記憶装置の書き換え制御方法。
【請求項９】
前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータか否かを判定し、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータであると判定した場合、前記書き換え対象のセクタのデータを前記バッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴とする請求項８記載の半導体記憶装置の書き換え制御方法。
【請求項１０】
前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータでないと判定した場合、前記バッファメモリへ転送された１セクタ分のデータの書き換えを行わずに前記バッファメモリへ転送した１セクタ分のデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴とする請求項９記載の半導体記憶装置の書き換え制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置及び半導体記憶装置の書き換え制御方法に関する。
【背景技術】
【０００２】
従来より、主記憶装置の補助記憶装置として電源を切った場合でも記憶されている情報が保持されるフラッシュメモリ等の不揮発性半導体メモリを用いた半導体ディスク装置が提案されている。図１４（Ａ）に示されるように、半導体ディスク装置は、ホストインタフェース１２、マイクロコントローラ１４、バッファメモリ１６及びフラッシュメモリで構成された記憶媒体１５を含んで構成されている。
【０００３】
マイクロコントローラ１４は、ホストと半導体ディスク装置との間でホストインタフェース１２を介して行うデータ授受を制御する。
【０００４】
記憶媒体１５は、図１４（Ｂ）に示されるように、複数（例えば８個）のセクタ３０Ａ〜３０Ｈで構成されるブロックが複数備えられており、消去動作はブロック単位で行われる。なお、１個のセクタは、データの書き換え等を行うときの最小単位であり、例えば５１２バイトで構成されている。
【０００５】
ホストからデータの書き換え命令が出力された場合の半導体ディスク装置の動作を図１５を参照して説明する。
【０００６】
ホストから出力されたデータの書き換え命令が入力されると、マイクロコントローラ１４は書き換え対象のセクタを算出する。すなわち、書き換え対象のセクタが記憶媒体１５のいずれのブロックに存在しているかを特定する。
【０００７】
次に、書き換え対象のセクタを含むブロックを構成する全てのセクタ３０Ａ〜３０Ｈのデータをバッファメモリ１６に転送する。これにより、書き換え対象のセクタを含むブロックのデータが読み出され、バッファメモリ１６に書き込まれる。書き換え対象のセクタを含むブロックを構成する全てのセクタ３０Ａ〜３０Ｈのデータがバッファメモリ１６に転送された後、バッファメモリ１６内で書き換え対象のセクタのデータをホストからの指示に従って書き換える。
【０００８】
続いて、バッファメモリ１６にデータを転送した記憶媒体１５のブロックのデータを消去する。この記憶媒体１５は、消去動作がブロック単位で行われるため、例えば１個のブロックが８個のセクタ３０Ａ〜３０Ｈで構成されている場合には、８セクタ分のデータが同時に消去される。
【０００９】
さらに、バッファメモリ１６に転送されたデータを記憶媒体１５の該当ブロックに転送する。すなわち、一旦データを消去したブロックに再度転送する。これにより、データが書き換えられたセクタを含むブロックのデータが書き換えられる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術では、バッファメモリ内でデータが書き換えられたセクタを含むブロックのデータを再度転送する前に、転送先であるブロックのデータを一旦消去し、その後転送しなければならない。これにより、データの書き換え命令に対する処理に多大な時間を要する、という問題がある。
【００１１】
本発明は上記問題点を解消するためになされたもので、書き換え命令に対する処理に要する時間を短縮することができる半導体記憶装置及び半導体記憶装置の書き換え制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために請求項１に記載の発明は、複数のセクタによって構成されるブロック単位で各々データ消去が可能な１対の不揮発性半導体メモリと、前記不揮発性半導体メモリに記憶されたデータのブロック位置を示すブロック位置管理情報を記憶するブロック位置管理部と、データを一時的に記憶するセクタ単位での書き換えが可能な１つのバッファメモリと、一方の不揮発性半導体メモリのブロック内のセクタに対する書き換え命令が入力された場合に、前記ブロック位置管理部のブロック位置管理情報に基づいて書き換え対象のセクタを含むブロック位置を判断し、前記一方の不揮発性半導体メモリの書き換え対象のセクタを含むブロックのデータを前記バッファメモリへ転送し、前記書き換え対象のセクタのデータを前記バッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータと書き換え対象のセクタ以外のセクタのデータとを前記バッファメモリから他方の不揮発性半導体メモリの消去済みブロックへのデータの転送を行った後、前記一方の不揮発性半導体メモリにおける前記書き換え対象のセクタを含むブロックのデータをブロック単位で消去するように制御する制御部と、前記一方の不揮発性半導体メモリの前記消去済みブロックのブロック数と前記他方の不揮発性半導体メモリの消去済みブロックのブロック数との均等化を実行する消去済みブロック制御手段と、を有している。消去済みブロック制御手段は、制御部内に設けてもよく、また制御部と別体に設けてもよい。
【００１３】
請求項１に記載の発明の不揮発性半導体メモリは、複数のセクタから構成されるブロックに対し、ブロック単位でデータの消去が可能となっている。不揮発性半導体メモリとしては、フラッシュメモリを使用することができる。また、半導体記憶装置には、不揮発性半導体メモリに記憶されたデータのブロック位置を示すブロック位置管理情報を記憶するブロック位置管理部、及びデータを一時的に記憶するセクタ単位での書き換えが可能な１つのバッファメモリが設けられている。ブロック位置管理部は、各々のデータが記憶されたブロック位置管理情報を記憶している。バッファメモリに一時的に記憶されるデータとしては、書き換え命令に関するデータ（例えば、コマンド、書き換え対象のセクタ番号、書き換えデータ等）や不揮発性半導体メモリに記憶されたデータがある。
【００１４】
さらに、半導体記憶装置には、１対の不揮発性半導体メモリの一方の不揮発性半導体メモリのセクタに対する書き換え命令が入力された場合に、書き換え命令に対する処理を制御する制御部が設けられている。この制御部はブロック位置管理部のブロック位置管理情報に基づいて書き換え対象のセクタを含むブロック位置を判断し、一方の不揮発性半導体メモリにおける書き換え対象のセクタを含むブロックのデータをバッファメモリへ転送し、書き換え対象のセクタのデータをバッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータと書き換え対象のセクタ以外のセクタのデータとをバッファメモリから他方の不揮発性半導体メモリの消去済みブロックへのデータの転送を行った後、一方の不揮発性半導体メモリからバッファメモリに転送された書き換え対象のセクタを含むブロックのデータをブロック単位で消去するように制御する。
【００１５】
請求項１に記載の発明では、データを書き換えるときに、一方の半導体記憶媒体からデータを読み出し、バッファメモリでデータを書き換え、他方の半導体記憶媒体に書き換えたデータを転送できるので、ホストからのデータの書き換え命令に対する処理に要する時間を短縮することができる。
【００１６】
１対の不揮発性半導体メモリの一方の不揮発性半導体メモリのセクタに対する書き換え命令が連続して入力された場合等には、書き換え対象のセクタを含むブロックのデータを転送するべき消去済みブロックが他方の不揮発性半導体メモリに存在しないことがある。この場合には、一方の不揮発性半導体メモリからバッファメモリに転送されたデータを他方の不揮発性半導体メモリに転送することができない。そこで、請求項１に記載の発明の半導体記憶装置には、一方の不揮発性半導体メモリにおける消去済みブロックのブロック数と他方の不揮発性半導体メモリの消去済みブロックのブロック数との均等化を実行する消去済みブロック制御手段が設けられている。
【００１７】
消去済みブロック制御手段は、消去済みブロックが存在しない他方の不揮発性半導体メモリのブロックのデータを一方の不揮発性半導体メモリの消去済みブロックに転送し、その後他方の不揮発性半導体メモリの一方の不揮発性半導体メモリにデータを転送したブロックのデータをブロック単位で消去して消去済みブロックを生成する。これにより、消去済みブロックのブロック数の均等化を図ることができる。
【００１８】
請求項２に記載の発明は、請求項１の発明において、前記消去済みブロックのブロック数の均等化を所定時間以上のアイドル状態を認識した場合に実行することを特徴としている。
【００１９】
書き換え命令が入力された後に消去済みブロックのブロック数の均等化を実行する場合には、均等化の実行中は入力された書き換え命令に対する処理が中断されることになる。そこで、請求項２に記載の発明では、所定時間以上のアイドル状態を認識した場合に、すなわちホストから半導体記憶装置へのアクセスが所定時間以上ない場合に、消去済みブロックのブロック数の均等化を実行する。すなわち、書き換え命令が入力される前に消去済みブロックのブロック数の均等化を実行する。これにより、書き換え命令に対する処理を中断させることなく書き換え命令に対する処理を行うことができる。
【００２０】
請求項３に記載の発明は、請求項１又は請求項２記載の発明において、前記制御部は、前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータを前記バッファメモリから前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴としている。
【００２１】
一方の不揮発性半導体メモリからバッファメモリへ１セクタ分のデータの転送、及びバッファメモリから他方の不揮発性半導体メモリの消去済みブロックへの１セクタ分のデータの転送は、セクタ毎に実行される。これにより、一方の不揮発性半導体メモリからバッファメモリへの１ブロックのデータの転送、及びバッファメモリから他方の不揮発性半導体メモリの消去済みブロックへの１ブロックのデータの転送は、並行して行われる。
【００２２】
請求項４に記載の発明は、請求項３の発明において、前記制御部は、前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータか否かを判定し、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータであると判定した場合、前記書き換え対象のセクタのデータを前記バッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴としている。
【００２３】
バッファメモリへ転送したデータが書き換え対象のセクタのデータであると判定された場合には、ホストからの書き換え命令に従い、書き換え対象のセクタのデータを書き換えてから、バッファメモリ内で書き換えられた書き換え対象のセクタのデータを他方の不揮発性半導体メモリの消去済み領域に転送する。
【００２４】
請求項５に記載の発明は、請求項４の発明において、前記制御部は、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータでないと判定した場合、前記バッファメモリへ転送された１セクタ分のデータの書き換えを行わずに前記バッファメモリへ転送した１セクタ分のデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴としている。
【００２５】
バッファメモリへ転送したデータが書き換え対象のセクタのデータでないと判定された場合には、データの書き換えを行わずに、バッファメモリへ転送した１セクタ分のデータを他方の不揮発性半導体メモリの消去済み領域に転送する。
【００２６】
請求項６に記載の発明は、複数のセクタによって構成されるブロック単位で各々データ消去が可能な１対の不揮発性半導体メモリの一方の不揮発性半導体メモリのセクタに対する書き換え命令が入力され、他方の不揮発性半導体メモリに消去済みブロックが存在する場合には、前記一方の不揮発性半導体メモリの書き換え対象のセクタを含むブロックのデータを一時的にデータを記憶するセクタ単位での書き換えが可能な１つのバッファメモリに転送しながら、前記バッファメモリ内で前記書き換え対象のセクタのデータを書き換え、かつ前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを書き換え対象のセクタ以外のセクタのデータと共に他方の不揮発性半導体メモリの消去済みブロックに転送し、前記他方の不揮発性半導体メモリへのデータの転送終了後に前記一方の不揮発性半導体メモリにおける転送済みの前記書き換え対象のセクタを含むブロックのデータをブロック単位で消去し、前記一方の不揮発性半導体メモリのセクタに対する書き換え命令が入力され、前記他方の不揮発性半導体メモリに消去済みブロックが存在しない場合には、前記他方の不揮発性半導体メモリに消去済みブロックを生成した後に、前記一方の不揮発性半導体メモリの書き換え対象のセクタを含むブロックのデータを前記バッファメモリに転送しながら、前記バッファメモリ内で前記書き換え対象のセクタのデータを書き換え、かつ前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを前記書き換え対象のセクタ以外のセクタのデータと共に前記他方の不揮発性半導体メモリの消去済みブロックに転送し、前記他方の不揮発性半導体メモリへのデータの転送終了後に前記一方の不揮発性半導体メモリにおける転送済みの前記書き換え対象のセクタを含むブロックのデータをブロック単位で消去する、ことを特徴としている。
【００２７】
請求項６に記載の発明によれば、１対の不揮発性半導体メモリの一方の不揮発性半導体メモリのセクタに対する書き換え命令が入力され、他方の不揮発性半導体メモリに消去済みブロックが存在しない場合には、該他方の不揮発性半導体メモリに消去済みブロックを生成した後に、書き換え対象のセクタを含むブロックを構成する全てのセクタのデータを順次バッファメモリに転送する処理を開始する。バッファメモリに転送されたデータが書き換え対象のセクタのデータである場合には書き換え命令によって指示された書き換えデータに基づいてデータを書き換え、書き換えたデータを他方の不揮発性半導体メモリの消去済みブロックに転送し、書き換え対象外である場合には書き換えずに他方の不揮発性半導体メモリの消去済みブロックに転送する。これにより、一方の不揮発性半導体メモリにおけるブロックの消去動作の終了を待たずに消去済みブロックに書き換えたデータを書き込むことができる。また、このとき書き換え対象のセクタを含むブロックのバッファメモリへのデータの転送は、バッファメモリから他方の半導体記憶媒体の消去済みブロックへのデータの転送と並行して行われる。これにより、書き換え命令に対する処理に要する時間を短縮することができる。
【００２８】
請求項６に記載の発明は、請求項１に記載の発明と同様に、データを転送するべき不揮発性半導体メモリに消去済みブロックが存在しない場合に、１対の不揮発性半導体メモリにおけるそれぞれの消去済みブロックのブロック数の均等化を実行する。均等化を実行することにより、データを転送するべき不揮発性半導体メモリに消去済みブロックが生成される。こうして消去済みブロックのブロック数の均等化を実行した後にデータの転送を開始する。
【００２９】
従って、常時、一方の不揮発性半導体メモリにおけるブロックの消去動作の終了を待たずに消去済みブロックにデータを書き込むことができると共に、書き換え対象のセクタを含むブロックのバッファメモリへのデータの転送がバッファメモリから他方の不揮発性半導体メモリの消去済みブロックへのデータの転送と並行して行われるので、書き換え命令に対する処理に要する時間を短縮することができる。
【００３０】
請求項７に記載の発明は、請求項６の発明において、所定時間以上のアイドル状態を認識した場合に、前記一方の不揮発性半導体メモリの前記消去済みブロックのブロック数と前記他方の不揮発性半導体メモリの消去済みブロックのブロック数との均等化を実行することを特徴としている。
【００３１】
請求項７に記載の発明は、請求項２に記載の発明と同様に、書き換え命令が入力される前のアイドル状態が所定時間以上継続したことを認識した場合に、１対の不揮発性半導体メモリのそれぞれの消去済みブロックのブロック数の均等化を実行する。これにより、書き換え命令に対する処理実行時に書き換え対象のセクタを含むブロックのデータを転送するべき不揮発性半導体メモリに消去済みブロックが存在しないことがないので、書き換え命令に対する処理を円滑に行うことができる。これにより、書き換え命令に対する処理が中断されることがないので、処理に要する時間をより短縮することができる。
【００３２】
請求項８に記載の発明は、請求項６又は請求項７記載の発明において、前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータを前記バッファメモリから前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴としている。
【００３３】
請求項８に記載の発明は、請求項３に記載の発明と同様に、一方の不揮発性半導体メモリからバッファメモリへ１セクタ分のデータの転送、及びバッファメモリから他方の不揮発性半導体メモリの消去済みブロックへの１セクタ分のデータの転送は、セクタ毎に実行される。これにより、一方の不揮発性半導体メモリからバッファメモリへの１ブロックのデータの転送、及びバッファメモリから他方の不揮発性半導体メモリの消去済みブロックへの１ブロックのデータの転送は、並行して行われる。
【００３４】
請求項９に記載の発明は、請求項８の発明において、前記一方の不揮発性半導体メモリのブロック内のセクタから前記バッファメモリへ１セクタ分のデータを転送した後、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータか否かを判定し、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータであると判定した場合、前記書き換え対象のセクタのデータを前記バッファメモリ内で書き換え、前記バッファメモリ内で書き換えられた前記書き換え対象のセクタのデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴としている。
【００３５】
請求項９に記載の発明は、請求項４に記載の発明と同様に、バッファメモリへ転送したデータが書き換え対象のセクタのデータであると判定された場合には、ホストからの書き換え命令に従い、書き換え対象のセクタのデータを書き換えてから、バッファメモリ内で書き換えられた書き換え対象のセクタのデータを他方の不揮発性半導体メモリの消去済み領域に転送する。
【００３６】
請求項１０に記載の発明は、請求項９の発明において、前記バッファメモリへ転送された１セクタ分のデータが前記書き換え対象のセクタのデータでないと判定した場合、前記バッファメモリへ転送された１セクタ分のデータの書き換えを行わずに前記バッファメモリへ転送した１セクタ分のデータを前記他方の不揮発性半導体メモリの消去済みブロックへ転送することを特徴としている。
【００３７】
請求項１０に記載の発明は、請求項５に記載の発明と同様に、バッファメモリへ転送したデータが書き換え対象のセクタのデータでないと判定された場合には、データの書き換えを行わずに、バッファメモリへ転送した１セクタ分のデータを他方の不揮発性半導体メモリの消去済み領域に転送する。
【発明の効果】
【００３８】
以上説明したように請求項１、６の発明によれば、１対の半導体記憶媒体を備えたので、一方の半導体記憶媒体におけるデータの消去動作の終了を待たずに、バッファメモリから他方の半導体記憶媒体の消去済みブロックへのデータの転送を開始することができると共に、一方の半導体記憶媒体からバッファメモリへのデータ転送がバッファメモリから他方の半導体記憶媒体の消去済みブロックへのデータ転送と並行して行われるので、ホストから出力される書き換え命令に対する処理に要する時間を短縮することができ、また、１対の半導体記憶媒体における消去済みブロックを生成する均等化処理を行うようにしたので、消去済みブロックが存在しなくてもデータの転送を行うことができる、という優れた効果を有する。
【００３９】
また、請求項２、７の発明によれば、所定時間以上のアイドル状態を認識したときに消去済みブロックを生成する均等化処理を行うようにしたので、書き換え命令に対する処理を円滑に行うことができる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００４０】
［参考例］
以下、図面を参照して本発明の参考例及び実施の形態を詳細に説明する。
【００４１】
図１に示されるように、本参考例に係る半導体ディスク装置１０は、ホストインタフェース１２、マイクロコントローラ１４、バッファメモリ１６、記憶媒体１８及びブロック位置管理部２０とを含んで構成されている。
【００４２】
マイクロコントローラ１４は、ホストと半導体ディスク装置１０との間でホストインタフェース１２を介して行うデータ授受を制御する。
【００４３】
図２に示されるように、記憶媒体１８には、１対の半導体メモリチップＡ1 、Ｂ1 が複数組（Ｎ組）設けられている。これらの半導体メモリチップＡ1 〜ＡN 、Ｂ1 〜ＢN は、電源を切った場合にでも記憶されているデータを保持することができるフラッシュメモリ等の不揮発性半導体メモリチップで構成されている。
【００４４】
また、１対の半導体メモリチップＡ1 〜ＡN 、Ｂ1 〜ＢN は、それぞれ異なるポート２２Ａ、２２Ｂを介してバッファメモリ１６に接続されている。
【００４５】
半導体メモリチップＡ1 〜ＡN 、Ｂ1 〜ＢN は、データが記憶された記憶済み領域２６と、データが記憶されていない消去済み領域２８を備えている。これらの記憶済み領域２６及び消去済みブロック２８のそれぞれには、図３に示されるように複数（本参考例では８個）のセクタ３０Ａ〜３０Ｈによって構成されたブロック２６Ａ、２６Ｂ、・・・、２８Ａ、２８Ｂ、・・・が設けられている。なお、図３及び後述する図５では、データが記憶されたセクタ３０Ａ〜３０Ｈを斜線で示している。
【００４６】
次に、本参考例のマイクロコントローラ１４による制御ルーチンを図４を参照して説明する。
【００４７】
まず、ステップ１００では、ホストから出力された書き換え命令を取り込み、バッファメモリ１６に記憶する。これにより、バッファメモリ１６には書き換え命令のコマンド、書き換え対象のセクタ番号、及び書き換えデータが記憶される。次のステップ１０２では、ブロック位置管理部２０のブロック位置管理情報に基づき、書き換え対象のセクタを算出する。すなわち、書き換え対象のセクタが記憶済み領域２６のブロック２６Ａ、２６Ｂ、・・・のいずれに存在しているかを特定する。
【００４８】
以下では、図６（Ａ）、（Ｂ）に示されるように、書き換え対象のセクタが半導体メモリチップＡ1 のブロック２６Ａに含まれており、このブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈのデータをバッファメモリ１６を介して半導体メモリチップＢ1 の消去済み領域２８のブロック２８Ａに転送する場合を例として説明する。
【００４９】
ステップ１０４では、書き換え対象のセクタを含むブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈのデータのバッファメモリ１６への転送を開始する。これにより、ブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈのデータは順次セクタ毎にバッファメモリ１６に転送される。
【００５０】
続いて、ステップ１０６では、書き換え対象のセクタを含むブロック２６Ａが存在する半導体メモリチップＡ1 と対となっている半導体メモリチップＢ1 に消去済み領域２８が存在するか否かを判定する。このステップ１０６において、半導体メモリチップＢ1 に消去済み領域２８が存在していると判定された場合には、ステップ１０８に移行する。
【００５１】
ステップ１０８では、１セクタ分のデータの転送が終了したか否かを判定する。ステップ１０８において、１セクタ分のデータの転送が終了したと判定された場合には、ステップ１１０で転送されたデータが書き換え対象のセクタのデータであるか否かを判定する。ステップ１１０において、バッファメモリ１６に書き換え対象のセクタのデータが転送されたと判定された場合には、ホストからの書き換え命令に従い、ステップ１１２で書き換え対象のセクタのデータを書き換えてステップ１１４に移行する。一方、ステップ１１０において、バッファメモリ１６に書き換え対象のセクタ以外のセクタのデータが転送されたと判定された場合には、データの書き換えを行わずにステップ１１４に移行する。
【００５２】
次のステップ１１４では、バッファメモリ１６に転送されたセクタのデータを半導体メモリチップＢ1 の消去済み領域２８のブロック２８Ａに転送する。
【００５３】
ステップ１１６では、データの書き換えが施された書き換え対象のセクタを含むブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈの全てのデータが半導体メモリチップＢ1 のブロック２８Ａに転送されたか否かを判定する。このステップ１１６でデータの転送が終了していないセクタが存在すると判定された場合には、次のセクタのデータのバッファメモリ１６への転送を指示してステップ１０８に移行する。一方、書き換え対象のセクタを含むブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈの全てのデータがブロック２８Ａに転送されたと判定された場合には、ステップ１１８に移行する。バッファメモリ１６からブロック２８Ａへのデータの転送が終了することにより、このブロック２８Ａには書き換えられたデータが書き込まれ、記憶済み領域２６の一部を形成する（図６（Ｂ）では、記憶済み領域２６の一部として形成されたブロックを符号２６Ｘで図示）。
【００５４】
なお、半導体メモリチップＡ1 のブロック２６Ａからバッファメモリ１６へのデータの転送、及びバッファメモリ１６から半導体メモリチップＢ1 のブロック２８Ａへのデータの転送はセクタ毎に実行されるため、半導体メモリチップＡ1 からバッファメモリ１６への１ブロックのデータの転送、及びバッファメモリ１６から半導体メモリチップＢ1 への１ブロックのデータの転送は並行して行われる（図５参照）。
【００５５】
次のステップ１１８では、バッファメモリ１６に転送した半導体メモリチップＡ1 のブロック２６Ａのデータを消去する。これにより、ブロック２６Ａはデータが記憶されていない状態となり、新たに消去済み領域２８の一部として形成される（図６（Ｂ）では、消去済み領域２８の一部として形成されたブロックを符号２８Ｘで図示）。ステップ１２０では、ブロック位置管理部２０によるブロック位置管理情報を更新する。すなわち、転送されたデータが半導体メモリチップＢ1 のブロック２６Ｘに格納されていることを記憶して本制御ルーチンを終了する。
【００５６】
これに対して、ステップ１０６において書き換え対象のセクタを含むブロック２６Ａが存在する半導体メモリチップＡ1 と対となっている半導体メモリチップＢ1 に消去済み領域２８が存在しないと判定された場合には、ステップ１２２に移行する。ステップ１２２乃至ステップ１２６については、前述したステップ１０８乃至ステップ１１２と同様であるので説明を省略する。
【００５７】
ステップ１２８では、半導体メモリチップＡ1 の書き換え対象のセクタを含むブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈの全てのデータがバッファメモリ１６に転送されたか否かを判定する。このステップ１２８でデータの転送が終了していないセクタが存在すると判定された場合には、次のセクタのデータのバッファメモリ１６への転送を指示してステップ１２２に移行し、前述した処理を繰り返し実行する。一方、書き換え対象のセクタを含むブロック２６Ａを構成するセクタ３０Ａ〜３０Ｈの全てのデータが転送されたと判定された場合には、ステップ１３０に移行する。
【００５８】
ステップ１３０では、バッファメモリ１６に転送した半導体メモリチップＡ1 の記憶済み領域２６のブロック２６Ａのデータを消去する。次のステップ１３２では、バッファメモリ１６に記憶されたセクタ３０Ａ〜３０Ｈのデータを半導体メモリチップＡ1 のブロック２６Ａに転送する。すなわち、ブロック２６Ａのデータを消去した後に、再度同一のブロック２６Ａにデータを転送して書き込む。
【００５９】
以上のように、記憶媒体１８は１対の半導体メモリチップＡ1 、Ｂ1 が複数組（Ｎ組）設けられていることにより、対となった半導体メモリチップの一方の半導体メモリチップの記憶済み領域のブロックにおけるデータの消去動作の終了を待たずに、バッファメモリ１６から対となった半導体メモリチップの他方の半導体メモリチップの消去済み領域のブロックへのデータの転送を開始することができると共に、一方の半導体メモリチップの記憶済み領域のブロックからバッファメモリへのデータ転送がバッファメモリから他方の半導体メモリチップの消去済み領域のブロックへのデータ転送と並行して行われるので、ホストから出力される書き換え命令に対する処理に要する時間を短縮することができる。
［第１の実施の形態］
次に、第１の実施の形態を説明する。本第１の実施の形態は、参考例と略同様の構成であるため、図７乃至図１０において同一構成部分には同一符号を付し、詳細な説明を省略する。
【００６０】
図８（Ａ）に示されるように、参考例において例えば一方の半導体メモリチップＡ1 からバッファメモリ１６を介して他方の半導体メモリチップＢ1 に連続してデータを転送した場合等には、他方の半導体メモリチップＢ1 の消去済み領域２８のブロック２８Ａ、２８Ｂ、・・・が徐々に減少する。最終的には、図８（Ｂ）に示されるように、他方の半導体メモリチップＢ1 に消去済み領域２８が存在しなくなる。そこで、本第１の実施の形態に係る半導体ディスク装置では、図７に示されるように、以下で説明する書き換えを制御するマイクロコントローラ１４Ａと、消去済みブロック制御部４０とを設けている。
【００６１】
続いて、第１の実施の形態のマイクロコントローラ１４Ａによる制御ルーチンを図９を参照して説明する。なお、図９の制御ルーチンにおいて参考例の制御ルーチン（図４参照）と同一部分には同一符号を付し、説明を省略する。また、第１の実施の形態においても参考例と同様の例を用いて説明する。
【００６２】
ステップ１０２において、書き換え対象のセクタを算出した後、次のステップ１０６では、書き換え対象のセクタを含むブロック２６Ａが存在する半導体メモリチップＡ1 と対となっている半導体メモリチップＢ1 に消去済み領域２８が存在するか否かを判定する。このステップ１０６において、半導体メモリチップＢ1 に消去済み領域２８が存在していないと判定された場合には、ステップ１３０に移行する。ステップ１３０では、マイクロコンピュータ等で構成された消去済みブロック制御部４０に均等化処理の実行を指示する信号を出力する。
【００６３】
ここで、図１０を参照して均等化処理について説明する。
【００６４】
マイクロコントローラ１４Ａから出力された信号が消去済みブロック制御部４０に入力されると、図１０に示すルーチンが起動され、ステップ１４０では消去済み領域２８が存在しない半導体メモリチップＢ1 からデータが記憶された複数のブロック２６Ａ、２６Ｂ、２６Ｃのデータをバッファメモリ１６に転送する。次に、ステップ１４２では、バッファメモリ１６に転送されたブロック２６Ａ、２６Ｂ、２６Ｃのデータを半導体メモリチップＡ1 の消去済み領域２８のブロック２８Ａ、２８Ｂ、２８Ｃに転送する。続いて、ステップ１４４では、バッファメモリ１６にデータを転送した半導体メモリチップＢ1 のブロック２６Ａ、２６Ｂ、２６Ｃのデータを消去すると共に、ブロック位置管理部２０のブロック位置管理情報を更新する。これにより、半導体メモリチップＢ1 には新たに消去済み領域が形成される（図８（Ｃ）参照）。なお、データを転送して消去するブロックの数は、データの書き換えを行うブロックの数以上であればよい。
【００６５】
図９の制御ルーチンのステップ１３２では、均等化処理が終了したか否かを判定する。これは、消去済みブロック制御部４０における均等化処理の実行中は、書き換え命令に対する処理が一時的に中断することを考慮している。ステップ１３２において均等化処理が終了していると判定された場合には、ステップ１０４に移行して参考例と同様の処理を実行する。
【００６６】
こうしてデータを転送するべき半導体メモリチップＢ1 に消去済み領域２８が存在しない場合には、均等化処理を実行することによって消去済み領域２８が生成されるので、常時、対となる半導体メモリチップの一方の半導体メモリチップの記憶済み領域のブロックにおけるデータの消去動作の終了を待たずに、バッファメモリから他方の半導体メモリチップの消去済み領域のブロックへのデータの転送を開始することができると共に、一方の半導体メモリチップの記憶済み領域のブロックからバッファメモリへのデータ転送がバッファメモリから他方の半導体メモリチップの消去済み領域のブロックへのデータ転送と並行して行われるので、ホストから出力される書き換え命令に対する処理に要する時間を短縮することができる。
【００６７】
なお、上記では、消去済みブロック制御部４０をマイクロコントローラ１４Ａとは別体として設けた例について説明したが、消去済みブロック制御部４０の均等化処理をマイクロコントローラ１４Ａで実行するようにしてもよい。
［第２の実施の形態］
次に、第２の実施の形態を説明する。本第２の実施の形態は、参考例及び第１の実施の形態と略同様の構成であるため、同一構成部分には同一符号を付し、詳細な説明を省略する。
【００６８】
前述した第１の実施の形態では、書き換え対象のセクタを含むブロックが存在する半導体メモリチップと対となっている半導体メモリチップに消去済み領域が存在しない場合に消去済みブロック制御部によって消去済み領域のブロック数の均等化処理を実行している。しかし、書き換え命令を入力した後に均等化処理を実行しているため、均等化処理の実行中は書き換え命令に対する処理を一時中断する必要がある。そこで、第２の実施の形態に係る半導体ディスク装置では、図１１に示されるように、以下で説明する書き換え処理を実行するマイクロコントローラ１４Ｂを設けると共に、マイクロコンピュータ等で構成された消去済みブロック制御部４０にタイマー４２を配設し、消去済み領域２８のブロック数の均等化処理を所定以上のアイドル状態を認識した場合に実行している。
【００６９】
本第２の実施の形態のマイクロコントローラ１４Ｂの制御ルーチンを図１２を参照して説明する。なお、図４及び図９における制御ルーチンと同一部分には同一符号を付し、説明を省略する。
【００７０】
まず、ステップ１５０では、書き換え命令が入力されたか否かを判定する。このステップ１５０において書き換え命令が入力されていないと判定された場合、すなわち半導体ディスク装置がアイドル状態である場合には、ステップ１５２に移行する。ステップ１５２では、消去済みブロック制御部４０にアイドル信号を出力する。これにより、図１３に示されるルーチンが起動する。
【００７１】
ここで、図１３を参照してアイドル信号出力後の消去済みブロック制御部４０の作動について説明する。
【００７２】
まず、ステップ１６０では、アイドル信号の出力後、タイマー４２等により所定時間が経過したか否かを判定する。これにより、半導体ディスク装置におけるアイドル状態の継続時間を判定することができる。このステップ１６０において所定時間が経過していると判定された場合には、ステップ１６２に移行して半導体メモリチップＡ1 の消去済み領域２８のブロック数と、半導体メモリチップＢ1 の消去済み領域２８のブロック数の均等化処理を実行する。均等化処理については、第１の実施の形態（図１０参照）と同様であるので説明を省略する。
【００７３】
図１２の制御ルーチンのステップ１５４では、均等化処理が終了したか否かを判定する。このステップ１５４で均等化処理が終了していると判定された場合には、ステップ１００に移行して前述と同様の処理を行う。すなわち、本第２の実施の形態に係る半導体ディスク装置では、書き換え命令が入力される前に均等化処理を実行するようになっている。
【００７４】
これにより、ホストからの書き換え命令に対する処理を一時中断することなく、処理を円滑に行うことができる。従って、書き換え命令に対する処理に要する時間を更に短縮することができる。
【００７５】
なお、本第２の実施の形態では、半導体ディスク装置のアイドル状態の継続を認識するタイマー４２によって消去済みブロック制御部４０の作動を直接制御する例について説明したが、タイマーをマイクロコントローラに設け、アイドル状態が所定時間経過したか否かを判断し、経過したときに消去済みブロック制御部４０に均等化処理を実行させる信号を出力してもよい。また、アイドル状態が所定時間経過したかの判断と均等化処理とをマイクロコントローラで実行するようにしてもよい。
【００７６】
また、本実施の形態では、１対の半導体メモリのそれぞれにおける消去済み領域のブロックの数が同一になるように均等化処理を実行する場合を例として説明したが、ブロック数は必ずしも同一に限定されるものではない。
【００７７】
さらに、半導体メモリチップの記憶済み領域及び消去済み領域のブロックが８個のセクタで構成された場合を例として説明したが、数値はこれに限定されるものではない。
【図面の簡単な説明】
【００７８】
【図１】参考例に係る半導体ディスク装置の概略ブロック図である。
【図２】記憶媒体の内部構成を示す概略構成図である。
【図３】記憶媒体に備えられた半導体メモリチップの詳細を示す構成図である。
【図４】参考例に係る半導体ディスク装置の制御ルーチンを示すフローチャートである。
【図５】書き換え命令に対する処理を示す説明図である。
【図６】（Ａ）は書き換え命令出力前の半導体メモリを示しており、（Ｂ）は書き換え命令に対する処理終了後の半導体メモリを示す概略構成図である。
【図７】第１の実施の形態に係る半導体ディスク装置の概略ブロック図である。
【図８】（Ａ）は書き換え命令出力前の半導体メモリを示しており、（Ｂ）は一方の半導体メモリチップから他方の半導体メモリチップへのデータ転送が連続して行われた場合の半導体メモリを示しており、（Ｃ）は消去済みブロック制御部による均等化処理実行後の半導体メモリを示す概略構成図である。
【図９】第１の実施の形態に係る半導体ディスク装置の制御ルーチンを示すフローチャートである。
【図１０】消去済みブロック制御部における均等化処理ルーチンを示すフローチャートである。
【図１１】第２の実施の形態に係る半導体ディスク装置の概略ブロック図である。
【図１２】第２の実施の形態に係る半導体ディスク装置の制御ルーチンを示すフローチャートである。
【図１３】消去済みブロック制御部の作動ルーチンを示すフローチャートである。
【図１４】従来の半導体ディスク装置の概略ブロック図である。
【図１５】従来の半導体ディスク装置における書き換え命令に対する処理を示す説明図である。
【符号の説明】
【００７９】
１８    記憶媒体（半導体記憶媒体）
２０    ブロック位置管理部
２６    記憶済み領域
２８    消去済み領域（消去済みブロック）
４０    消去済みブロック制御部（消去済みブロック制御手段）
４２    タイマー
Ａ1 〜ＡN 、Ｂ1 〜ＢN     半導体メモリチップ
【図１】
2008251056.tif 000003
【図２】
2008251056.tif 000004
【図３】
2008251056.tif 000005
【図４】
2008251056.tif 000006
【図５】
2008251056.tif 000007
【図６】
2008251056.tif 000008
【図７】
2008251056.tif 000009
【図８】
2008251056.tif 000010
【図９】
2008251056.tif 000011
【図１０】
2008251056.tif 000012
【図１１】
2008251056.tif 000013
【図１２】
2008251056.tif 000014
【図１３】
2008251056.tif 000015
【図１４】
2008251056.tif 000016
【図１５】
2008251056.tif 000017