(57)【要約】【課題】本発明は、ＮＡＮＤ−ＦＬＡＳＨメモリのように書換え回数、又は、消去回数に制限のあるメモリデバイスを用いた半導体ストレージドライブに関する。従来はドライブのページデータを二重化した記憶デバイスに格納する際、アドレス変換テーブルが膨大になってしまう問題があった。【解決手段】二重化されたペアの対応を記憶する手段を設け、アドレス変換テーブルを半分にした。【効果】これにより、本発明によれば必要十分なハードウェア量で高信頼、かつ、長寿命な半導体ストレージデバイスを実現できる。【選択図】  図１
2011154578.tif 000002
【特許請求の範囲】
【請求項１】
ページアドレスを与え、該ページアドレスに対応するページデータを複数の記憶素子に書き込む、あるいは読み出すことのできる半導体ストレージドライブにおいて、
コントローラと、
複数個の記憶素子で構成されるページデータ記憶部と、
アドレス変換テーブルと、
ペア管理テーブルを備え、
前記アドレス変換テーブルは、前記ページアドレスに対応するページデータが格納されている該ページデータ記憶部の中の記憶素子のアドレスと、同じページデータが格納されている記憶素子の仮想的なペア番号を記憶し、
前記ペア管理テーブルは、前記仮想的なペア番号から、前記ページデータを書き込んだ前記複数の記憶素子の対応を記憶し、
前記コントローラは、与えられたページアドレスに対応する記憶素子のアドレスと複数の記憶素子を前記アドレス変換テーブルと前記ペア管理テーブルから求め、求めた記憶素子に対して読み出しを行うことを特徴とする半導体ストレージドライブ。
【請求項２】
請求項１の半導体ストレージドライブにおいて、
前記記憶素子が不揮発性の半導体デバイスであることを特徴とする半導体ストレージドライブ。
【請求項３】
請求項１の半導体ストレージドライブにおいて、
記憶素子が異常になったグループの記憶素子の構成を変更することを特徴とする半導体ストレージドライブ。
【請求項４】
請求項１の半導体ストレージドライブにおいて、
前記複数個の記憶素子は複数組みのグループから構成され、
あるグループの中の任意の記憶素子が異常になった時、残る正常な記憶素子に格納されたページデータを、別のグループの記憶素子に対して多重化して書き込むことを特徴とする半導体ストレージドライブ。
【請求項５】
ページアドレスを与え、該ページアドレスに対応するページデータを複数の記憶素子に書き込む、あるいは読み出すことのできる半導体ストレージドライブの制御方法において、
コントローラと、
複数個の記憶素子で構成されるページデータ記憶部と、
アドレス変換テーブルと、
ペア管理テーブルを備え、
前記アドレス変換テーブルは、前記ページアドレスに対応するページデータが格納されている該ページデータ記憶部の中の記憶素子のアドレスと、同じページデータが格納されている記憶素子の仮想的なペア番号を記憶し、
前記ペア管理テーブルは、前記仮想的なペア番号から、前記ページデータを書き込んだ前記複数の記憶素子の対応を記憶し、
前記コントローラは、与えられたページアドレスに対応する記憶素子のアドレスと複数の記憶素子を前記アドレス変換テーブルと前記ペア管理テーブルから求め、求めた記憶素子に対して読み出しを行うことを特徴とする半導体ストレージドライブの制御方法。
【請求項６】
請求項５の半導体ストレージドライブの制御方法において、
前記記憶素子が不揮発性の半導体デバイスであることを特徴とする半導体ストレージドライブの制御方法。
【請求項７】
請求項５の半導体ストレージドライブの制御方法において、
記憶素子が異常になったグループの記憶素子の構成を変更することを特徴とする半導体ストレージドライブの制御方法。
【請求項８】
請求項５の半導体ストレージドライブの制御方法において、
前記複数個の記憶素子は複数組みのグループから構成され、
あるグループの中の任意の記憶素子が異常になった時、残る正常な記憶素子に格納されたページデータを、別のグループの記憶素子に対して多重化して書き込むことを特徴とする半導体ストレージドライブの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤ−ＦＬＡＳＨメモリのように書換え回数、又は、消去回数に制限のあるメモリデバイスを用いた半導体ストレージドライブに関する。
【背景技術】
【０００２】
最近まで、ハードディスクドライブ（以下ＨＤＤ）のみがストレージドライブとして一般的に用いられてきた。ＨＤＤは磁性体が塗布された円盤を回転させ、磁気ヘッドによりデータの書き込み，読み出しを行う記憶装置である。機械的な部品が多いことから、耐震性や寿命に課題があることが指摘されてきた。しかしながら、これまでは、コスト的に代替手段がなかったためＨＤＤを使用せざるを得ず、多重化，冗長化することで信頼性の課題を克服してきた。
【０００３】
一方最近では、不揮発性メモリであるＮＡＮＤ−ＦＬＡＳＨメモリデバイスが安価になり、ストレージとして使用できるようになってきた。機械部品がほとんどないことから耐震性の課題は無くなった。しかし、ＮＡＮＤ−ＦＬＡＳＨメモリはフローティングゲートを用い、トンネル効果による電子の移動により記憶を行っているため、酸化膜が劣化する課題があり、消去回数が１０万回以下というような制限が設けられている。即ち、寿命の課題が存在する。
【０００４】
ストレージの寿命を延ばす方法としては一般にＲＡＩＤと呼ばれる多重化，冗長化する方式が知られている。ＲＡＩＤには様々な方式があるが、本発明と近い方式として二重化（あるいはミラーと呼ばれる）方式がある。〔特許文献１〕には、一つのデータを複数のＨＤＤに格納し、複数の読み出し要求に対して高速なアクセスを行う方式が記載されている。〔特許文献１〕は高速化を目的とした多重化であるが、構造としては高信頼化，長寿命化を目的とした場合と同じになる。図２は、〔特許文献１〕の内容を模式的に表記した図である。ホストコンピュータ１０２がファイルシステム１０５に対してファイルデータの書き込みあるいは読み出しを要求すると、複数のＨＤＤ１６１，１６２に対して該ファイルデータの書き込みあるいは読み出しを実行する。このファイルシステム１０５はファイル管理テーブルを持っており、ＨＤＤ１６１とＨＤＤ１６２の何処に該当するデータが格納されているか、これから格納するかを管理している。一般的に一方のＨＤＤが故障したときは、故障していないＨＤＤで稼働を継続し、一定時間内に故障したＨＤＤを交換する。交換完了後システムは再度二重化した状態とすることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１５７５１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＮＡＮＤ−ＦＬＡＳＨメモリを用いた半導体ストレージドライブの長寿命化を考えたとき、半導体ストレージドライブ自体を多重化する方式や、そこに使用するＮＡＮＤ−ＦＬＡＳＨメモリを多重化する方式が考えられる。故障の状況を考えると、前者は、半導体ストレージドライブの交換をしないと二重化されていない状態の時間が発生してしまう。後者は、メモリ素子自体の交換が難しい。もともと、高信頼性，長寿命を必要とする応用分野には無人運転や、保守作業の難しいケースも多く、メモリ素子や、ドライブ自体の交換作業を行わないで高信頼性，長寿命を達成できることが望ましい。
【０００７】
そこで、本発明の目的は、複数のＮＡＮＤ−ＦＬＡＳＨメモリを多重化することで高信頼な半導体ストレージドライブを構築することであり、また、１個またはそれ以上のＮＡＮＤ−ＦＬＡＳＨメモリが故障した時においても多重化された半導体ストレージドライブとして動作を継続できるようにすることである。また、上記を実現しようとすると、膨大な管理テーブルが必要になるが、必要十分なハードウェア量で高信頼、かつ、長寿命な半導体ストレージデバイスを実現できるようにすることが本願の目的である。
【課題を解決するための手段】
【０００８】
上記課題を達成するために、本発明はページアドレスを与え、該ページアドレスに対応するページデータを複数の記憶素子に書き込む、あるいは読み出すことのできる半導体ストレージドライブにおいて、コントローラと、複数個の記憶素子で構成されるページデータ記憶部と、アドレス変換テーブルと、ペア管理テーブルを備え、前記アドレス変換テーブルは、前記ページアドレスに対応するページデータが格納されている該ページデータ記憶部の中の記憶素子のアドレスと、同じページデータが格納されている記憶素子の仮想的なペア番号を記憶し、前記ペア管理テーブルは、前記仮想的なペア番号から、前記ページデータを書き込んだ前記複数の記憶素子の対応を記憶し、前記コントローラは、与えられたページアドレスに対応する記憶素子のアドレスと複数の記憶素子を前記アドレス変換テーブルと前記ペア管理テーブルから求め、求めた記憶素子に対して読み出しを行うことを特徴とするものである。
【０００９】
更に、本発明は半導体ストレージドライブにおいて、前記記憶素子が不揮発性の半導体デバイスであることを特徴とするものである。
【００１０】
更に、本発明は半導体ストレージドライブにおいて、記憶素子が異常になったグループの記憶素子の構成を変更することを特徴とするものである。
【００１１】
更に、本発明は半導体ストレージドライブにおいて、前記複数個の記憶素子は複数組みのグループから構成され、あるグループの中の任意の記憶素子が異常になった時、残る正常な記憶素子に格納されたページデータを、別のグループの記憶素子に対して多重化して書き込むことを特徴とするものである。
【００１２】
また、上記課題を達成するために、本発明はページアドレスを与え、該ページアドレスに対応するページデータを複数の記憶素子に書き込む、あるいは読み出すことのできる半導体ストレージドライブの制御方法において、コントローラと、複数個の記憶素子で構成されるページデータ記憶部と、アドレス変換テーブルと、ペア管理テーブルを備え、前記アドレス変換テーブルは、前記ページアドレスに対応するページデータが格納されている該ページデータ記憶部の中の記憶素子のアドレスと、同じページデータが格納されている記憶素子の仮想的なペア番号を記憶し、前記ペア管理テーブルは、前記仮想的なペア番号から、前記ページデータを書き込んだ前記複数の記憶素子の対応を記憶し、前記コントローラは、与えられたページアドレスに対応する記憶素子のアドレスと複数の記憶素子を前記アドレス変換テーブルと前記ペア管理テーブルから求め、求めた記憶素子に対して読み出しを行うことを特徴とするものである。
【００１３】
更に、本発明は半導体ストレージドライブの制御方法において、前記記憶素子が不揮発性の半導体デバイスであることを特徴とするものである。
【００１４】
更に、本発明は半導体ストレージドライブの制御方法において、記憶素子が異常になったグループの記憶素子の構成を変更することを特徴とするものである。
【００１５】
更に、本発明は半導体ストレージドライブの制御方法において、前記複数個の記憶素子は複数組みのグループから構成され、あるグループの中の任意の記憶素子が異常になった時、残る正常な記憶素子に格納されたページデータを、別のグループの記憶素子に対して多重化して書き込むことを特徴とするものである。
【発明の効果】
【００１６】
本発明は、上記ペア管理テーブルにより容易に多重化の管理を行うことが可能である。即ち、あるＮＡＮＤ−ＦＬＡＳＨメモリが故障した時、該メモリが正常なペアでないという登録はペア管理テーブルを書き換えるだけで即座に行うことができる。故障したメモリとペアになっていたメモリに残るデータは二重系になっていないが、これを退避しているときにも多重化したメモリに書き込みを行うことが可能となる。
【００１７】
本発明におけるアドレス変換テーブルは１つのアドレス、即ちＮＡＮＤ−ＦＬＡＳＨメモリチップの内部のアドレスと、前記仮想チップ番号を出力する手段であり、ペアとなっている複数のＮＡＮＤ−ＦＬＡＳＨメモリの内部アドレスは共通にしている。通常であれば、１つのアドレスに対して２個のＮＡＮＤ−ＦＬＡＳＨメモリチップの内部のアドレスが必要であるから、これによって、アドレス変換テーブルのサイズは少なくとも半分にすることができる。
【００１８】
これにより、本発明によれば、複数のＮＡＮＤ−ＦＬＡＳＨメモリを多重化することで高信頼な半導体ストレージドライブを構築することが実現できる。そして、１個またはそれ以上のＮＡＮＤ−ＦＬＡＳＨメモリが故障した時においても多重化された半導体ストレージドライブとして動作を継続できるようになる。
【００１９】
また、従来技術では膨大な管理テーブルが必要になるが、本発明によれば、必要十分なハードウェア量で高信頼、かつ、長寿命な半導体ストレージデバイスを実現できる。
【図面の簡単な説明】
【００２０】
【図１】本発明における半導体ストレージデバイスの構成を示す図。
【図２】ミラー構成にしたストレージを示す図。
【図３】論理アドレスから物理アドレスへの変換を示す図。
【図４】ページデータ記憶部の構成を示す図。
【図５】二重化したページデータの配置を示す図。
【図６】格納されているページデータのフォーマットを示す図。
【図７】ブロック管理テーブルの構成を示す図。
【図８】メモリが１個故障した時のペア管理テーブルの更新を示す図。
【図９】メモリが更に１個故障した時のペア管理テーブルの更新を示す図。
【図１０】救済メモリがある時のペア管理テーブルの更新を示す図。
【図１１】半導体ストレージドライブコントローラの制御フローを示す図。
【発明を実施するための形態】
【００２１】
以下、本発明の実施例を図面を用いて説明する。
【実施例１】
【００２２】
以下、本発明を実施するための最良の一実施形態を図１と、図３から図１１を用いて説明する。
【００２３】
図１は、本発明における半導体ストレージドライブを用いたコンピュータシステムの構成を示している。ホストコンピュータ１０２は半導体ストレージドライブのコントローラ１０１に対して論理的なページアドレス（ＬＰＡ）を与え、書き込み時は加えてページデータを与える。読み出し時は前記コントローラ１０１が読み出したページデータをホストコンピュータ１０２に出力する。
【００２４】
さて、前記コントローラ１０１は、あるＬＰＡに対する書き込みコマンドを受けるとペア管理テーブル１３３とブロック管理テーブル１３２を参照して書き込み可能なページを求め、与えられたページデータをページデータ記憶部１０４のＮＡＮＤ−ＦＬＡＳＨメモリチップの求めた場所に格納する。アドレス変換テーブル１３１には新しく書き込んだＮＡＮＤ−ＦＬＡＳＨメモリのアドレスと、仮想ペア番号を格納する。
【００２５】
さて、前記コントローラ１０１は、あるＬＰＡに対する読み出しコマンドを受けるとアドレス変換テーブル１３１を参照してＮＡＮＤ−ＦＬＡＳＨメモリのアドレスと、仮想ペア番号を求め、さらに、ペア管理テーブル１３３を参照して、実際のＮＡＮＤ−ＦＬＡＳＨメモリチップの番号を求める。この読み出し時のＬＰＡから物理ページアドレス，物理チップ番号Ａ／Ｂを求めるアドレス変換の関係を図３に示した。ここで、ペア管理テーブル１３３はメモリ１０３上に配置しているが、情報量は大きくないのでコントローラ１０１の内部にレジスタとして配置することができる。
【００２６】
コントローラ１０１とページデータ記憶部１０４は、高速化のため４つのレーンでバス接続している。例えば、ＮＦ０，ＮＦ４，ＮＦ８は第１のレーンに接続し、ＮＦ３，ＮＦ７，ＮＦ１１を第４のレーンに接続している。従ってＮＦ０と、ＮＦ１，ＮＦ２，ＮＦ３は並列に動作させることが可能である。各レーンの信号は、一般的なＮＡＮＤ−ＦＬＡＳＨメモリのインタフェース信号そのものであり、書き込み時はアドレスをセットし、書き込みデータをセットし、書き込み終了をビジー信号で認識し、ステータスで正常終了を確認する。読み出し時は、アドレスをセット後データ出力の準備をビジー信号で確認し、レディ状態でデータを取得する。
【００２７】
次に、図４を用いてページデータ記憶部４の論理的な構造を説明する。図１からも判るように、本実施例では、ＮＡＮＤ−ＦＬＡＳＨメモリ１４１を１２個用いている。それをＮＦ０，ＮＦ１，・・・，ＮＦ１１と表記した。各ＮＡＮＤ−ＦＬＡＳＨメモリの中は例えば８１９２個のブロック１４２からなり、１個のブロックは６４個のページ１４３から成り立っている。１個のブロックの０ページ目はブロックのヘッダとして使用されており、不良ブロックのマークがセットされている。１ページ目から６３ページ目までの６３ページが実際にページデータを格納するページとなる。
【００２８】
図５は、二重化したページデータの配置を示す図である。ホストからのページアドレスは、図３に示したアドレス変換により物理ページアドレス（ＰＰＡ）と物理チップ番号Ａ（ＰＣＮＡ），物理チップ番号Ｂ（ＰＣＮＢ）に変換される。物理チップ番号Ａと物理チップ番号Ｂは２個のＮＡＮＤ−ＦＬＡＳＨメモリを選択し、物理ページアドレスは、該選択したＮＡＮＤ−ＦＬＡＳＨメモリの同じページアドレスを指している。
【００２９】
図６は、ＮＡＮＤ−ＦＬＡＳＨメモリ内部の１ページのデータフォーマットを示す図である。実際のＮＡＮＤ−ＦＬＡＳＨメモリにはさまざまなサイズのものがあるが、ここでは、現在一般的な１ページが４ｋＢのものを用いて説明する。さて、実際のＮＡＮＤ−ＦＬＡＳＨメモリは１ページが４ｋＢとはいっても、エラー訂正などに用いるため冗長ビットが用意されている。例えば４０９６Ｂのデータエリアに対して１２８Ｂの冗長ビットが用意されている。本実施例では、この４０９６Ｂと１２８Ｂからなる１ページデータを図のように書き込まれているページデータのＬＰＡと、ホストから書き込まれた４０９６Ｂのページデータと、エラー訂正符号のデータから構成する。
【００３０】
ＬＰＡはこのページを別のチップなどにコピーする場合に論理ページアドレスとして必要となる情報である。エラー訂正符号のデータとは、ＮＡＮＤ−ＦＬＡＳＨメモリの仕様として、エラー訂正機能が必須である。エラー訂正は、ＢＣＨ符号を用いた場合５１２Ｂに対して４ビット訂正できるようにすると１３Ｂ必要で、４０９６Ｂ分で１０４Ｂとなる。冗長ビットが１２８Ｂであるから、ＬＰＡ用として２４Ｂ残る。ＬＰＡは３２ビットあれば十分である（３２ビットで１６ＴＢのストレージまで使用可能）。このＬＰＡに対してもエラー訂正を行う必要はあるが、十分に余裕があるので、ＢＣＨ符号他どのようなエラー訂正符号も用いることが可能である。例えば同じ値を３個格納し、多数決により決定する手法などである。
【００３１】
次に図７を用いてブロック管理テーブル１３２を説明する。ブロック管理テーブル１３２は、全ＮＡＮＤ−ＦＬＡＳＨメモリチップの全ブロックに対してバッドブロック、消去済み、格納されている有効なページを管理するテーブルである。
【００３２】
まず、ブロック管理テーブル１３２は、ホストコンピュータ１０２からページ書き込み要求が来たとき、参照，更新する。即ち、前述したようにコントローラ１０１は、ホストコンピュータ１０２から１ページの書き込み要求を受けるとペア管理テーブル１３３を参照しペアとして有効なＮＡＮＤ−ＦＬＡＳＨメモリのペアを求める。そして、ブロック管理テーブル１３２によりそのＮＡＮＤ−ＦＬＡＳＨメモリの書き込み可能な任意のブロック，ページを求める。より具体的には、コントローラ１０１には、仮想チップ番号と、ブロックと、ページアドレスを順に書き込みページアドレスの候補として出力する書き込みアドレス管理手段がある。仮想チップ番号は、本実施例の場合６ペアまで選択できるので０，１，２，３，４，５と増やし、後述する有効フラグを見て無効の場合スキップする。ブロックは、予めＮＡＮＤ−ＦＬＡＳＨメモリに格納されているバッドブロックフラグをコピーしており、バッドブロックならスキップする。ページアドレスは、０ページがリザーブであり、１から順にしかアクセスできない。そして、１から６３まで増やすことが可能である。
【００３３】
このようにすれば、１ページライトするごとに仮想チップ番号が０の０ブロック，１ページ目から始まり、仮想チップ番号が１，２，３，４，５と書き込まれ、次の、仮想チップ番号が０の０ブロック２ページ目と続かせることができる。
【００３４】
ページ書き込みを行った後は、ブロック管理テーブル１３２の該当するページの有効フラグをセットする。さらに、書き込んだＬＰＡに格納されていたページデータは上書きされてしまうので、ブロック管理テーブルの該当するビットはリセットする。より具体的には、アドレス変換テーブルとペア管理テーブルから求められる物理ページアドレスと、物理チップ番号ＡとＢに該当するブロック管理テーブルのページ有効フラグを０にすればよい。
【００３５】
次に、図８を用いてＮＡＮＤ−ＦＬＡＳＨメモリが１個故障した時のペア管理テーブル１３３の更新方法を説明する。図８の上の図は、正常動作時のペア管理テーブルの状態の例を示している。６個の仮想チップ番号に対してそれぞれ２個のＮＡＮＤ−ＦＬＡＳＨメモリが割り当てられ、有効ビット（ＶＡＬＩＤ）を１にしている。もし、ここでＮＦ６に故障が発生しアクセス不能になったとする。具体的には、ＮＡＮＤ−ＦＬＡＳＨメモリに対してビジー信号がレディ状態にならないタイムアウトを検出した時や、ＮＡＮＤ−ＦＬＡＳＨメモリのステータスがライトエラーになることが一定回数以上起きた時や、リードしたページデータがエラー訂正できない時に故障があるとアクセス不能と判定する。
【００３６】
そのように判定した時、コントローラ１０１は、ペア管理テーブル１３３を図８の下のようにして仮想チップ番号０２の有効ビットを０にする。同時にペアであったＮＦ４に残っている有効なデータをブロック管理テーブル１３２を参照して読み出し、ペア有効となっているＮＡＮＤ−ＦＬＡＳＨメモリに書き込みする動作を行う。
【００３７】
図９は、この状態から更にＮＦ８が故障した時のペア管理テーブルの更新内容を示している。図８と同様に、ＮＦ８が故障すると、仮想チップ番号０４の有効ビットを０にし、ＮＦ１０の有効ページを仮想チップ番号００，０１，０３，０５のＮＡＮＤ−ＦＬＡＳＨメモリにコピーする。このコピーが終了した時点でＮＦ４と、ＮＦ１０は故障していないＮＡＮＤ−ＦＬＡＳＨメモリであるからペアとして登録する。その結果が図９の下であり、仮想チップ番号０２にＮＦ４と、ＮＦ１０を登録する。
【００３８】
このように、本発明によれば、ＮＡＮＤ−ＦＬＡＳＨメモリが故障しても残っているＮＡＮＤ−ＦＬＡＳＨメモリで最適な二重化した半導体ストレージドライブを構成可能である。即ち、１個のＮＡＮＤ−ＦＬＡＳＨメモリが故障しても（ペア数−１）分の容量で二重化動作を継続し、２個のＮＡＮＤ−ＦＬＡＳＨメモリが故障しても（ペア数−１）分の容量で二重化動作を継続可能である。
【実施例２】
【００３９】
図１０は、図８，図９と構成は同じであるが考え方が少し異なる実施例である。即ち、初めから仮想チップ番号０５はペア有効とはせずＮＦ９，ＮＦ１１は救済用のＮＡＮＤ−ＦＬＡＳＨメモリであるという考え方をした時のペア管理テーブルの更新状態を示したものである。図１０の上は、ＮＦ６に故障を検出した時の状態で、前述の如くＮＦ４の有効ページをコピーする。それが完了したところで救済用として用意してあるＮＦ１１（ＮＦ９でも良い）を仮想チップ番号０２のＢ系として割り当てる。
【００４０】
この図の場合は、図８，図９とは大きな違いはないが、ＮＦ１１を搭載しない構成をとることが可能で、１個の故障までは、仕様を縮退しないで対応できるメリットがある。
【００４１】
図１１は、本発明によるホストコンピュータ１０２からのページ書き込み（ライト）と、読み出し（リード）の処理内容を説明するフローチャートである。
【００４２】
まず、ホストコンピュータ１０２から読み出しの要求がある場合、ステップＳＲ１からステップＳＲ３の処理を行う。即ち、指定された論理アドレスをアドレス変換し物理ページアドレスを取得する。求めた物理ページアドレスに基づいてページデータ記憶部１０４上のＮＡＮＤ−ＦＬＡＳＨメモリをアクセスしそのデータをホストコンピュータ１０２に送る。このとき、片系でタイムアウトエラーが発生した場合チップのエラー処理ステップＳＥ１にジャンプする。ここでは、タイムアウトをエラーとしたが、前述のように、エラー訂正不能なリードエラーも含む。
【００４３】
次に、ホストコンピュータ１０２から書き込みの要求がある場合は、ステップＳＷ１からステップＳＷ３の処理を行う。即ち、現在のデータが書き込まれている物理ページアドレスを求め、ブロック管理テーブルの該当する有効フラグをクリアする。次に、前述の記書き込みアドレス管理手段により新しく書き込む物理ページアドレスを生成し、ブロック管理テーブルの該当する有効フラグをセットする。同時に書き込むページデータを指定されたページデータ記憶部１０４の指定されたＮＡＮＤ−ＦＬＡＳＨメモリに格納し、アドレス変換テーブル１３１のＬＰＡにその仮想チップ番号と物理ページアドレスを格納する。
【００４４】
もし、この書き込みでライトエラーが発生した場合は、ステップＳＷ４，ステップＳＷ５処理しステップＳＷ２に戻る。即ち、ライトエラーはページに対応するエラーであり、該当するブロックをバッドブロック指定する。ステップＳＷ５では登録だけでなく該当ブロックに残っている有効ページのコピーを行う。その後ステップＳＷ２に戻ることによって別のチップペアの別のブロックの別のページに書き込みを行う。
【００４５】
ＳＷ３のライトがタイムアウトになった場合は、リードと同様にエラー処理ステップＳＥ１に進む。
【００４６】
ステップＳＥ１では、ペア管理テーブルを更新し、ステップＳＥ２では、故障していないＮＡＮＤ−ＦＬＡＳＨメモリの有効ページをコピーし、ステップＳＥ３で故障していないＮＡＮＤ−ＦＬＡＳＨメモリを救済チップとして登録する処理を行う。ステップＳＥ４で救済用チップが２個見つかればステップＳＥ５でそれらを初期化し、ペアとして登録する処理を行う。
【００４７】
以上示してきたように、本実施例を用いれば、二重化していない時のアドレス変換テーブルと同じ容量のアドレス変換テーブルで二重化した管理を行わせることが可能である。また、ペア管理テーブルを変更することで任意の記憶素子をペアとすることが可能であり、最適なペア割り当てを容易に行うことができる。
【符号の説明】
【００４８】
１０１  コントローラ
１０２  ホストコンピュータ
１０３  メモリ
１０４  ページデータ記憶部
１３１  アドレス変換テーブル
１３２  ブロック管理テーブル
１３３  ペア管理テーブル
【図１】
2011154578.tif 000003
【図２】
2011154578.tif 000004
【図３】
2011154578.tif 000005
【図４】
2011154578.tif 000006
【図５】
2011154578.tif 000007
【図６】
2011154578.tif 000008
【図７】
2011154578.tif 000009
【図８】
2011154578.tif 000010
【図９】
2011154578.tif 000011
【図１０】
2011154578.tif 000012
【図１１】
2011154578.tif 000013