(57)【特許請求の範囲】
【請求項１】
記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホストシステムからの指示に従い、前記不揮発性半導体メモリに対する読み出し又は書き込みを制御するメモリ制御部と、
を具備する記憶装置であって、
前記不揮発性半導体メモリの記憶領域は、１又は複数の前記物理ブロックからなるデータブロックと、１又は複数の前記物理ブロックからなる交替ブロックとから構成され、
前記データブロックは、前記所定の単位で書き込まれたデータを記憶するデータ領域と、同じデータブロック内の前記データ領域に記憶したデータの再書き込みが前記所定の単位で可能な交替領域とから構成され、
前記メモリ制御部は、前記ホストシステムからの指示に係わる論理アドレスに対応する前記不揮発性半導体メモリの物理アドレスを格納するテーブルのうち、前記ホストシステムからのデータの書き込み要求時に示される論理アドレスに対応する物理アドレスを書換え、さらに、次回の前記データの書き込み要求時にデータの書き込みが行われるべき物理アドレスを管理する、次回書込み領域管理テーブルにおける、次回書込みページを更新することにより前記交替領域を管理し、
前記データブロックにおいて交替領域への新たな書き込みができない場合、又は新たな書き込みができなくなる可能性がある場合に、前記再書き込みがされた前記交替領域内のデータと、前記再書き込みがされていない前記データ領域内のデータとを、前記交替ブロックに書き写し、前記データが書き移された交替ブロックをデータブロックとして使用することを特徴とする
記憶装置。
【請求項２】
請求項１記載の記憶装置において、
前記交替ブロックに再書き込み後に、その再書き込みされたデータが記憶されていた前記データブロックは、前記交替ブロックの候補となるように前記データ領域と前記交替領域とを前記メモリ制御部が消去することを特徴とする
記憶装置。
【請求項３】
請求項１記載の記憶装置において、
前記物理ブロックの各ブロック毎の消去回数を記載した手段を持ち、消去回数を一括管理することを可能とすることを特徴とする
記憶装置。
【請求項４】
請求項１記載の記憶装置において、
前記物理ブロックの消去予定のブロックを管理する手段を持ち、前記メモリ制御部のマイクロプロセッサの空き時間に、消去処理を行うことを特徴とする
記憶装置。
【請求項５】
請求項１記載の記憶装置において、
前記次回書込み領域管理テーブルに保持されている情報を更新した後に、新たな交替領域にデータの書き込みを行うことを特徴とする
記憶装置。
【請求項６】
請求項１記載の記憶装置において、
前記交替ブロックのデータ領域にデータの書込み後の前記データブロックのうちの有効なデータを移す際に、前記ホストシステムからの論理アドレスの順に最新のデータを並び替えることを特徴とする
記憶装置。
【請求項７】
データの書き込みを行う所定の単位に比べ、よりデータ量の大きな物理ブロックの単位でデータの消去を行う記憶領域を備えた不揮発性半導体メモリに対して、
外部のホストシステムからの指示に従い、メモリ制御部により読み出し又は書き込みを行うメモリ制御方法であって、
前記不揮発性半導体メモリの記憶領域は、１又は複数の前記物理ブロックからなるデータブロックと、１又は複数の前記物理ブロックからなる交替ブロックとから構成され、
前記データブロックは、前記所定の単位で書き込まれたデータを記憶するデータ領域と、同じデータブロック内の前記データ領域に記憶したデータの再書き込みが前記所定の単位で可能な交替領域とから構成され、
前記ホストシステムからの指示に係わる論理アドレスに対応する前記不揮発性半導体メモリの物理アドレスを格納するテーブルのうち、前記ホストシステムからのデータの書込み要求時に示される論理アドレスに対応する物理アドレスを書換え、さらに、次回の前記データの書き込み要求時にデータの書き込みが行われるべき物理アドレスを管理する、次回書込み領域管理テーブルにおける、次回書込みページを更新することにより前記交替領域を管理し、
前記それぞれのデータブロックにおいて交替領域への新たな書き込みができない場合、又は新たな書き込みができなくなる可能性がある場合に、前記再書き込みがされた前記交替領域内のデータと、前記再書き込みがされていない前記データ領域内のデータとを、前記交替ブロックに書き写し、前記データが書き写された交替ブロックをデータブロックとして使用することを特徴とする
メモリ制御方法。
【請求項８】
請求項７記載のメモリ制御方法において、
前記交替ブロックに再書き込み後に、その再書き込みされたデータが記憶されていた前記データブロックは、前記交替ブロックの候補となるように前記データ領域と前記交替領域とが消去されることを特徴とする
メモリ制御方法。
【請求項９】
請求項７記載のメモリ制御方法において、
前記物理ブロックの各ブロック毎の消去回数を記載することにより、消去回数を一括管理することを可能とすることを特徴とする
メモリ制御方法。
【請求項１０】
請求項７記載のメモリ制御方法において、
前記物理ブロックの消去予定のブロックを管理することにより、前記メモリ制御部のマイクロプロセッサの空き時間に、消去処理を行うことを特徴とする
メモリ制御方法。
【請求項１１】
請求項７記載のメモリ制御方法において、
前記次回書込み領域管理テーブルに保持されている情報を更新した後に、新たな交替領域にデータの書き込みを行うことを特徴とする
メモリ制御方法。
【請求項１２】
請求項７記載のメモリ制御方法において、
前記交替ブロックのデータ領域にデータの書込み後の前記データブロックのうちの有効なデータを移す際に、前記ホストシステムからの論理アドレスの順に最新のデータを並び替えることを特徴とする
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置及びメモリ制御方法に係り、特に不揮発性の半導体メモリを用いた比較的小規模のデータのライト／リードを行う記憶装置及びその制御方法に関するものである。
【背景技術】
【０００２】
一般に、情報機器の補助記憶装置として、従来から磁気ディスク記憶装置が用いられている。この磁気ディスク記憶装置では、データの書込みや読出しの単位をセクタと呼ばれる記憶単位に分割し、磁気円盤上に記憶するものである。
【０００３】
この従来型の磁気ディスク記憶装置では、データの書き換えにおいて、基本的に磁気円盤上の同一の記録位置に書き換えが行われるようになっている。また、磁気ディスク記憶装置は、記憶媒体となる磁気円盤を回転させた状態で磁気ヘッドを磁気円盤上の記録位置にアクセスさせることにより記憶している。
【０００４】
これに対し、近年、半導体メモリを記憶媒体とする補助記憶装置が脚光を浴びている。特に電気的に消去可能で再書込み可能な不揮発性半導体メモリ（例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）やその一種であるフラッシュメモリ）を用いたものが、情報機器の補助記憶装置の主流となっている。
【０００５】
従来、このような不揮発性半導体メモリのメモリ制御方式として、消去単位である物理ブロックの書換え回数をカウントし、一定回数になった場合に予備のブロックに移行する方式が知られている。このメモリ制御方式は、上記ブロック内を更に分割し、各々の領域の書換え回数をカウントし、一定回数になった場合に予備領域に移行する制御を施すものである（特許文献１参照）。
【０００６】
また、フラッシュメモリに接続され、フラッシュメモリに対するホストシステムからのアクセスを制御するメモリコントローラが提案されている。このフラッシュメモリは、複数ページからなる物理ブロックが複数含まれる記憶領域を有し、データの消去が物理ブロック単位で行われるとともに、物理ブロックのデータの消去済の部分にページ単位でデータの書き込みが可能なメモリである。これらのデータの消去あるいは書き込み制御がメモリコントローラによって行われるのである。
【０００７】
また、このフラッシュメモリは、各物理ブロックの複数のページのうちの一部のページを、書き替え前のデータを書き込むためのオリジナルデータ記憶部としている。また、オリジナルデータ記憶部以外のページを、書き替え後のデータを書き込むための更新データ記憶部としており、書き替えデータがホストシステムから与えられたときに、これを更新データ記憶部に書き込むようにしている（特許文献２参照）。
【特許文献１】特開２０００−２０２５２号公報
【特許文献２】特開２００７−９４５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した不揮発性メモリの一種であるフラッシュメモリは、電気的に消去可能でかつ再書き込みが可能なＰＲＯＭ（Programmable Read Only Memory）であり、上述したＥＥＰＲＯＭ（Electrically Erasable PROM）もその一種である。このため、データの書込み単位と消去（書換え）単位が同一ではなく、消去単位の方が極めて大きいという特徴がある。
【０００９】
従って、一度書込んだデータを書換えるためには、他の多くのデータも同時に消去しなければならない。そこで、特許文献１記載の技術のように大容量のデータを取り扱う場合は、消去単位を気にせずに、特定エリアの書換え回数を管理し、その書き換えの頻度が高い場合に交替エリアへ移行するようにする。
【００１０】
しかし、小容量のデータを取り扱う場合に上記同様の管理を行うと、書換えの度に、書換えするメモリ領域より大きな領域を消去することになる。このため、その都度発生する、消去動作や書き込み位置の特定動作により応答性能が低下するという問題が生じる。また、メモリ装置の許容書換え回数が十分に確保できないという問題も発生する。
【００１１】
また、特許文献２記載の技術では、書き替えデータの書き込みの際に、オリジナルデータ記憶部のページに対応する更新データ記憶部のページに、書き替えデータを書き込むため、更新データ記憶部のページ数をオリジナルデータ記憶部のページ数と同じだけ用意しなければならないという問題が起こる。
【００１２】
このため、オリジナルデータ記憶部の特定ページに書き替えが集中した場合、更新のないデータ部分は、書き替えがされないまま、ブロック交替されるため、無駄があるという問題がある。
【００１３】
そこで、本発明の目的は、書換えによる応答性能を落とすことなく、半導体メモリの消去回数の制約による影響を小さくし、かつ書換え後の不要な占有領域を低減させることができる記憶装置及びメモリ制御方法を提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明の記憶装置は、記憶領域に対するデータの書き込み及び読み出しの単位より大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、外部のホストシステムからの指示に従い、半導体メモリに対する読み出し又は書き込みを制御するメモリ制御部とを具備する。
【００１５】
ここで、記憶領域は、１又は複数の物理ブロックからなるデータブロックと１又は複数の物理ブロックからなる交替ブロックとから構成されており、データブロックは、データを記憶するデータ領域と、消去済みでデータ領域に記憶したデータの再書き込みが可能な交替領域とから構成されている。そして、交替ブロックは、消去済み領域を有するようにメモリ制御装置によって制御される。
【００１６】
ここで、交替ブロックは、データブロックのうちの有効データを消去済み領域に書き込み可能に制御される。
また、交替ブロックに有効データが書き込まれた後に、データブロックは、交替ブロックの候補となるようにデータ領域と交替領域とを消去済み領域とするように制御される。
【発明の効果】
【００１７】
本発明によれば、使用する半導体メモリがデータの書き込み、読み出しの単位に比べ、より大きな物理ブロックの単位でデータの消去を行う場合であっても、書込み毎に半導体メモリの消去を行う必要がなくなるため、書込み時の応答性能を飛躍的に向上させることができる。
【００１８】
また、半導体メモリの消去が書き込み毎に発生しないため、半導体メモリの消去回数の制約を緩和することができる。
また、書込み毎に“リード・モディファイ・ライト”をしないため、応答性能を向上できる。また、オリジナルデータ毎に更新データを対応付けしていないため、全体的なメモリ容量の使用性を向上できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態例を図１〜図１１を用いて説明する。
図１は本発明の実施の形態を実現するためのハードウェア構成例を示す図である。
最初に図１に基づいて本実施例のハードウェア構成について説明する。
【００２０】
図１に示す記憶装置６は、ホスト装置３とデータバス４を介してアクセス可能に接続される。
記憶装置６は、メモリ制御部１と半導体メモリ２とから構成される。メモリ制御部１は、マイクロプロセッサ１１と、メモリＩ／Ｆ（インターフェース）制御部１２と、ホストＩ／Ｆ制御部１３と、メモリ１４とを有している。
【００２１】
マイクロプロセッサ１１は、半導体メモリ２内に、記憶装置６の物理的記憶領域に対応する論理的記憶領域を構築すると共に、この論理的記憶領域へのデータの書き込み及び読み出しを制御する。
【００２２】
メモリＩ／Ｆ制御部１２は、マイクロプロセッサ１１からの指示により半導体メモリ２とのアクセス制御を行う。なお、マイクロプロセッサ１１から半導体メモリ２を直接制御可能であれば、メモリＩ／Ｆ制御部１２は必ずしも必要ではない。
【００２３】
ホストＩ／Ｆ制御部１３は、ホスト装置３からのデータの書き込み及び読み出し要求に従って、ホスト装置３とのデータの送受を制御する。ホスト装置３からのデータの書き込み及び読み出し要求は、半導体メモリ２内に構築された論理的記憶領域に対して行われるものである。
【００２４】
メモリ１４は、論理／物理変換テーブル１４１と、次回書込みページ管理テーブル１４２と、交替ブロックリストテーブル１４３と、消去回数管理テーブル１４４と、消去候補管理テーブル１４５とを有している。
本発明の実施の形態においては、メモリの種類については言及しないが、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic RAM）又はＭＲＡＭ（Magneto-resistive RAM）等のメモリ素子を使用することができる。
【００２５】
本実施の形態例では、説明に必要な各種テーブルの構成のみを記載する。テーブルの内容は、記憶装置６自体の初期化時にマイクロプロセッサ１１が設定するものとする。また、各テーブルの更新方法の詳細については、ここでは言及しない。
【００２６】
メモリ１４中の論理／物理変換テーブル１４１は、ホスト装置３からのアクセスによって示される論理アドレスと半導体メモリ２上の物理アドレスとの対応付けを行うテーブルである。
【００２７】
ここで、図２以降の説明に入る前に、図７〜図１１に基づいて、上述した図１のメモリ１４中のテーブル構成について説明しておく。
図７は、論理／物理変換テーブル１４１の構成例を示した図である。図７Ａは初期状態、図７Ｂはページ書き換え後、図７Ｃはブロック交替後の状態を示している。
論理／物理変換テーブル１４１は、ホスト装置３からのアクセスにて示される論理アドレス１４１０と半導体メモリ２上のブロック番号とページ番号からなる物理アドレス１４１１で構成される。
【００２８】
なお、ブロック番号とページ番号の他にチップ番号を追加することで半導体メモリ２が複数ある場合にも、図７に示す論理／物理変換テーブル１４１の構成を容易に拡張することができる。
【００２９】
図７に示す物理アドレス１４１１は、後述する動作によって物理アドレス１４１１の値が変わり、例えば図７Ａに示す初期状態や、図７Ｂに示すページ書換え後や、図７Ｃに示すブロック交替後のような状態に移り変わる。
【００３０】
次回書込みページ管理テーブル１４２は、各ブロックの次に書込むページの先頭アドレスを格納するテーブルである。図８に次回書込みページ管理テーブル１４２の構成例を示す。図８Ａは初期状態、図８Ｂはページ書き換え後、図８Ｃはブロック交替後である。
【００３１】
次回書込みページ管理テーブル１４２は、各ブロックの番号を示すブロック番号１４２０と各々の次回書込むべきページを示す次回書込みページ１４２１で構成されている。次回書込みページ管理テーブル１４２は、例えば図８Ａに示す初期状態や、図８Ｂに示すページ書換え後や、図８Ｃに示すブロック交替後のような状態に移り変わる。
【００３２】
交替ブロックリストテーブル１４３は、図３に示した交替ブロック２３中の次に使用するブロックを並べたテーブルである。図９に交替ブロックリストテーブル１４３の構成例を示す。図９Ａは初期状態、図９Ｂはブロック交替後である。
交替ブロックリストテーブル１４３は使用可能な交替ブロックの番号が使用する順番に並んでおり、交替ブロックが使用されると、例えば図９Ａに示す初期状態から図９Ｂに示すブロック交替後のような状態に移り変わる。
【００３３】
消去回数管理テーブル１４４は、各ブロックの消去回数を保持するテーブルである。図１０に消去回数管理テーブル１４４の構成例を示す。図１０Ａは初期状態、図１０Ｂはブロック交替処理後である。
消去管理テーブル１４４は各ブロックのブロック番号１４４０と対応するブロックの消去回数１４４１から構成される。各ブロックに存在しているデータの消去が行われると、例えば、図１０Ａに示す初期状態から図１０Ｂに示す交替処理後のような状態に移り変わる。
【００３４】
消去候補管理テーブル１４５は、消去待ちブロックのブロック番号を消去順に並べたテーブルである。図１１に消去候補管理テーブル１４５の構成例を示す。図１１Ａは初期状態（一度も消去されていない状態）、図１１Ｂはブロック交替処理後である。
消去候補管理テーブル１４５は、ブロックの消去がなされると、図１１Ａに示す初期状態から図１１Ｂに示すブロック交替処理後の状態に移り変わる。
【００３５】
以上、図１のメモリ１４の中の各テーブルの構成である。なお、図１中の半導体メモリ２は、説明の簡単化のため１個の半導体メモリ２しか記載していないが、上述のように記憶装置６の論理的記憶領域に対応して、半導体メモリ２の物理的記憶領域を管理することにより、複数個の半導体メモリを接続して使用できることはいうまでもない。
【００３６】
図２は、本発明の実施の形態で前提とする半導体メモリ２の内部構成を示した図である。図２では、半導体メモリ２内に構築されている論理的記憶領域を示している。図１に示したホスト装置３からは、記憶装置６に対しては、この論理的記憶領域のみが認識されることになる。
【００３７】
図中の番号２１はデータ消去の最小単位を示し、これをブロックと呼ぶ。同様に番号２１１はデータ読み出し及び書き込みの最小単位を示し、これをページと呼ぶこととする。図２においては、半導体メモリ２の論理的記憶領域は、一つ以上のブロック２１で構成されており、ブロック２１は一つ以上のページ２１１により構成されている。すなわち、半導体メモリ２の論理的記憶領域は、ブロック１からブロックｍ（整数）までのｍ個の各ブロック２１を有し、それぞれのブロックは、ページ１からページｎ（整数）までのｎ個のページを有している。
【００３８】
上述したように、ホスト装置３は、データバス４を介して、記憶装置６との間でデータのやり取りを行っているが、ここで、データバス４としては、例えばＳＣＳＩ（Small Computer System Interface）やＡＴＡ（Advanced Technology Attachment）などが用いられる。しかし、本発明の実施の形態例では、これらのデータバスに限定されるものではなく、他のデータバスによって代用できることは勿論である。
また、半導体メモリ２とメモリ制御部１とのデータのやり取りは、データバス５によって行われる。記憶装置６はホスト装置３からの指示に基づいてデータの記憶を行う装置である。
【００３９】
次に、本発明の実施の形態の特徴であるメモリ制御方式を実現するためのメモリの使用態様を、図３に基づいて説明する。
図３は、本発明の実施の形態の特徴であるメモリ制御方式を実現するためのメモリの使用態様を示す図であり、メモリ制御部１の制御により半導体メモリ２内に構築される論理的記憶領域を示している。
【００４０】
図の番号２はメモリチップ全体の論理的記憶領域を示しており、その中部構造は、データブロック２２と交替ブロック２３から構成されている。
データブロック２２は、データを記憶する一つあるいは複数のブロックからなるブロックであり、ブロック１からブロックｐ（整数）までの論理ブロックを有している。各ブロックは、図示のようにデータページ２２２と交替ページ２２３で構成されている。
【００４１】
データページ２２２は、ページ１からページｑ（整数）までのデータを保持するページを有していて、交替ページ２２３は、ページ（ｑ＋１）からページｎ（整数）までを有している。この交替ページ２２３は、消去済みの再書込み可能なページである。
【００４２】
また、交替ブロック２３は、ブロック（ｐ＋１）からブロックｍ（整数）までの消去済みの交替用のブロックであり、各ブロックは、ページ１からページｎ（整数）までの消去済みページ２３２で構成されている。
【００４３】
ここで、データページ２２２は、ユーザがホスト装置からの指示に従いデータを読み書きすることができる領域である。このデータページ２２２には、半導体メモリ２の制約上から上書きができないため、メモリ制御部１の制御による上書き処理後の上書きデータは交替ページ２２３に記憶される。
【００４４】
そして、交替ページ２２３に記憶できないときは、新たに交替ブロック２３を割り当て書き込みをする。このとき、上書き処理後の有効部分である、交替ページ２２３の上書きデータ及びデータページ２２２の非上書きデータを交替ブロック２３に書き写して交替させる。さらに、交替後の交替ページ２２３及びデータページ２２２はデータ消去して交替ブロック２３の候補とする。
【００４５】
図３中のブロックｐ及びページｑは、本実施の形態例では記憶装置６の製造時に初期値として設定するものである。このブロックｐとページｑの設定方法については、特に限定しないが、メモリ上に予め設定しておくことや、マイクロプロセッサ１１へデバッガを接続して行うようにしてもよい。
【００４６】
また、ホスト装置３から予め決められたコマンドを発行して設定する等で実現可能である。また、ブロックｐ、ページｑを可変としてテーブル管理することも可能であるが、本実施の形態例では簡単化のために固定値として扱う。
【００４７】
以上を踏まえ、図４〜図６のフローチャートに基づいて、本実施の形態例の動作について説明する。
図４〜図６に示したフローチャートでは、本発明の実施の形態の特徴である、書込み処理とそれに関連したブロック交替処理、及びブロック消去処理の手順を示している。
まず、ホスト装置３からデータの書込み要求があった場合の処理について、図４、図５を用いて説明する。
【００４８】
［書込み処理］
図４のフローチャートは、マイクロプロセッサ１１の半導体メモリ２への書込み処理のフローチャートである。以下その処理の流れを説明する。
まず、マイクロプロセッサ１１は、ホストＩ／Ｆ制御部１３を介して、ホスト装置３から論理アドレス、データ、データサイズを受信する（ステップＳ７００）。
【００４９】
次に、マイクロプロセッサ１１は、書込み対象となる半導体メモリ２の物理アドレスを確認するために、図７に示す論理／物理変換テーブル１４１を参照し、論理アドレス１４１０から該当するブロック番号を示す物理アドレス１４１１を特定する（ステップＳ７０１）。
【００５０】
例えば、論理／物理変換テーブル１４１の状態が図７Ａの初期状態のときにホスト装置３からの論理アドレス１４１０が１であった場合、ブロック番号は１４１のブロック１となる。
【００５１】
次に、マイクロプロセッサ１１は、特定したブロック内のどこのページに書込めば良いかを確認するために、図８に示す次回書込みページ管理テーブル１４２を参照し、先頭の次回書込みページ１４２１を特定する（ステップＳ７０２）。
例えば、次回書込みページ管理テーブル１４２が図８Ａに示す初期状態であったとき、ステップＳ７０１にてブロック１を特定した場合、１４２１の次回書込みページはｑ＋１となる。
【００５２】
次に、マイクロプロセッサ１１は、特定したブロック内の交替ページの空き容量が十分であるかを確認するために、特定した先頭の次回書込みページと書込むデータの必要ページ数の和と、最大ページ数ｎを比較する（ステップＳ７０３）。
【００５３】
ステップＳ７０３で比較した結果、特定した先頭の次回書込みページと書込むデータの必要ページ数の和が最大ページ数ｎより小さいか、又は等しい場合、マイクロプロセッサ１１は、重複書込み防止のために先ず、次回書込みページ管理テーブル１４２の値を、書込むページ数を加算した値へ更新する（ステップＳ７０４）。
【００５４】
例えば、ステップＳ７０２で特定した次回書込みページがｑ＋１であり、書込むデータの必要ページ数が１ページであれば、和はｑ＋２となる。このｑ＋２の値を図８Ｂのページ書換え後の１４２２のように書き換える。
【００５５】
次に、マイクロプロセッサ１１は、交替ページ２２３の中のステップＳ７０２にて特定した次回書込みページにデータを書込む（ステップＳ７０５）。
次に、マイクロプロセッサ１１は、書込み後の物理アドレスとの関連付けのために、論理／物理変換テーブル１４１を書込み完了した物理アドレスへ更新する（ステップＳ７０６）。
【００５６】
例えば、ステップＳ７０２にて特定した次回書込みページがｑ＋１であれば、図７Ｂのページ書換え後の１４１２に示すように書き換える。
次に、マイクロプロセッサ１１は、ホストＩ／Ｆ制御部１３を介して、ホスト装置３に書込み終了を報告する（ステップＳ７０７）。
【００５７】
なお、ステップＳ７０３で比較した結果、特定した先頭の次回書込みページと書込むデータの必要ページ数の和が最大ページ数ｎより大きい場合、マイクロプロセッサ１１は、ブロック交替処理を実行し（ステップＳ７１０）、ホスト装置３に書込み終了を報告する（ステップＳ７０７）。
【００５８】
［ブロック交替処理］
次に、上述した図４に示すステップ７１０のブロック交替処理について、図５のフローチャートを用いて説明する。
まず、マイクロプロセッサ１１は、交替元ブロックの有効なデータを交替先のブロックへコピーするために、論理／物理変換テーブル１４１を参照して、該当する物理アドレスから該当のブロックに関連付けられた全ページのデータを読み出す（ステップＳ７１１）。
【００５９】
例えば、ブロック１を交替しなければならないのであれば、論理／物理変換テーブル１４１の状態が図７Ｂのページ書換え後の状態のときは、物理アドレス１４１１のブロック１に関連付けされている全ページのデータを読み出す。
【００６０】
次に、マイクロプロセッサ１１は、読み出したデータに対して、図４内ステップＳ７００の処理において受信したデータに該当するページのデータを更新する（ステップＳ７１２）。
次に、マイクロプロセッサ１１は、交替先のブロックを確認するために、交替ブロックリストテーブル１４３を参照し、交替ブロック２３の中の一つのブロックを特定する。
【００６１】
特定したブロックを重複して使用しないようにするために、交替ブロックリストテーブル１４３の内容はひとつ更新する（ステップＳ７１３）。
例えば、交替ブロックリストテーブル１４３の状態が図９Ａの初期状態であれば、ブロックｐ＋１を特定し、図９Ｂのブロック交替後の１４３１に示す状態に更新する。
【００６２】
ここで、マイクロプロセッサ１１は、特定したブロック内のどこのページに書込めば良いかを確認するために、書込みページ管理テーブル１４２を参照し、特定したブロックの次回書込みページを特定する（ステップＳ７１４）。
【００６３】
例えば、ステップＳ７１３にてブロックｐ＋１と特定したとき、書込みページ管理テーブル１４２が図８Ｂのページ書換え後であるならば、次回書込みページは１となる。なお、ブロック交替の場合、交替先ブロックは消去後の状態のため無条件でページ１から書込むことも可能である。
【００６４】
次に、マイクロプロセッサ１１は、特定した交替先ブロックの次回書込みページからデータを書込む（ステップＳ７１５）。
ステップＳ７１５でデータ書込みが終了したら、マイクロプロセッサ１１は、次回書込みページ管理テーブル１４２の内容に書込み完了したページ数を加算することで、テーブルを更新する（ステップＳ７１６）。
【００６５】
例えば、次回書込みページ管理テーブル１４２の状態が図８Ｂのページ書換え後に示す状態であれば、テーブル更新後は図８Ｃのブロック交替後の１４２３に示すような状態となる。
【００６６】
次に、マイクロプロセッサ１１は、書込み後の物理アドレスとの関連付けのために、論理／物理変換テーブル１４１の該当する論理アドレス１４１０の物理アドレス１４１１を更新する（ステップＳ７１７）。
【００６７】
例えば、論理／物理変換テーブル１４１の状態が図７Ｂのページ書換え後であれば、テーブルを更新後は図７Ｃのブロック交替後の１４１３に示すような状態となる。ここでは、ブロック交替後のｐ＋１は、元のページの順番に並べ替えられている。
【００６８】
次に、マイクロプロセッサ１１は、交替元のブロックを再度使用可能とするために、消去候補管理テーブル１４５に交替元のブロックを追加する（ステップＳ７１８）。例えば、消去候補管理テーブル１４５が図１１Ａの初期状態であれば、図１１Ｂのブロック交替処理後の１４５１のようにブロック１を追加する。
【００６９】
［読出し処理］
ホスト装置３からデータの読出し要求に対しては、処理数が少ないので、フローチャートなしで、以下に文章で示す。
まず、マイクロプロセッサ１１は、ホストＩ／Ｆ制御部１３を介して、ホスト装置３から論理アドレス、データサイズを受信する。
【００７０】
そして、マイクロプロセッサ１１は、読み出す物理アドレスを特定するために、論理／物理変換テーブル１４１を参照し、ホスト装置３から指定された論理アドレス１４１０から物理アドレス１４１１を特定する。
【００７１】
次に、マイクロプロセッサ１１は、該当するページのデータをメモリＩ／Ｆ制御部１２を介して読出し、ホストＩ／Ｆ制御部１３を介してホスト装置３に読み出したデータを送信する。以上のステップを経て、読出し処理が実現される。
【００７２】
［消去処理］
次に、図６のフローチャートに基づいて、ブロック消去処理の流れを説明する。
マイクロプロセッサ１１は、ホスト装置３からデータの書込みや読出しの要求が無いときに、消去候補管理テーブル１４５に関連付けされているブロックの消去処理を実施する。
【００７３】
まず、マイクロプロセッサ１１は、消去候補管理テーブル１４５を参照し、消去対象となるブロックがあるか否かを判定する（ステップＳ８００）。
ステップＳ８００で判定した結果、消去対象となるブロックがない場合は処理を終了する。
消去対象となるブロックがある場合は、マイクロプロセッサ１１は、消去回数管理テーブル１４４に対し、当該ブロックの消去回数を一つ加算する（ステップＳ８０１）。
【００７４】
例えば、マイクロプロセッサ１１は、ステップＳ８００にて消去候補管理テーブル１４５を参照したとき図１１Ｂのブロック交替処理後の状態であれば、１４５１にて示されるブロック１を特定する。消去回数管理テーブル１４４の状態が図１０Ａの初期状態であれば、図１０Ｂの交替処理後の１４４２のようにブロック１の消去回数を１とする。
【００７５】
次に、マイクロプロセッサ１１は、当該ブロックのデータを消去する（ステップＳ８０２）。
次に、マイクロプロセッサ１１は、消去候補管理テーブル１４５にある、消去済みブロックの情報を削除し、テーブルを更新する（ステップＳ８０３）。
【００７６】
例えば、マイクロプロセッサ１１は、消去候補管理テーブル１４５が図１１のＢブロック交替処理後であれば、図１１Ａの初期状態のように更新する。
次に、マイクロプロセッサ１１は、同図内ステップＳ８００の判定処理に戻り、消去候補管理テーブル１４５の該当するブロックが無くなるまで処理を続ける。
【００７７】
なお、本発明は、上述した実施の形態例に限らず、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、上述の実施形態例を適宜変更して用いることができることはいうまでもない。
【産業上の利用可能性】
【００７８】
本発明は、計算機システムに接続した記憶装置に係るものであり、産業上の利用可能性があることは明らかである。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態を実現するためのハードウェア構成例を示す説明図である。
【図２】半導体メモリの内部構成図である。
【図３】メモリ制御方式を実現するためのメモリの使用態様を示す図である。
【図４】書込み処理のフローチャートである。
【図５】ブロック交替処理のフローチャートである。
【図６】ブロック消去処理のフローチャートである。
【図７】論理／物理変換テーブルの構成例を示す図であり、図７Ａは初期状態、図７Ｂはページ書き換え後、図７Ｃはブロック交替後である。
【図８】次回書込みページ管理テーブルの構成例を示す図であり、図８Ａは初期状態、図８Ｂはページ書き換え後、図８Ｃはブロック交替後である。
【図９】交替ブロックリストテーブルの構成例を示す図であり、図９Ａは初期状態、図９Ｂはブロック交替後である。
【図１０】消去回数管理テーブルの構成例を示す図であり、図１０Ａは初期状態、図１０Ｂはブロック交替処理後である。
【図１１】消去候補管理テーブルの構成例を示す図であり、図１１Ａは初期状態、図１１Ｂはブロック交替処理後である。
【符号の説明】
【００８０】
１…メモリ制御部、２…半導体メモリ、３…ホスト装置、４…データバス、５…メモリバス、６…記憶装置、１１…マイクロプロセッサ、１２…メモリＩ／Ｆ制御部、１３…ホストＩ／Ｆ制御部、１４…メモリ、１４１…論理／物理変換テーブル、１４２…次回書込みページ管理テーブル、１４３…交替ブロックリストテーブル、１４４…消去回数管理テーブル、１４５…消去候補管理テーブル、２１…ブロック、２１１…ページ、２２…データブロック、２３…交替ブロック、２２２…データページ、２２３…交替ページ、２３２…消去済みページ、１４１０…論理アドレス、１４１１…物理アドレス、１４２０…ブロック番号、１４２１…次回書き込みページ、１４４０…ブロック番号、１４４１…消去回数
【図１】
0004829202.tif 000002
【図２】
0004829202.tif 000003
【図３】
0004829202.tif 000004
【図４】
0004829202.tif 000005
【図５】
0004829202.tif 000006
【図６】
0004829202.tif 000007
【図７】
0004829202.tif 000008
【図８】
0004829202.tif 000009
【図９】
0004829202.tif 000010
【図１０】
0004829202.tif 000011
【図１１】
0004829202.tif 000012