"ホスト装置と、外部記憶装置とを備える情報処理装置において、外部記憶装置は、リード及びライト可能な不揮発性メモリと、前記ホスト装置と接続されるインタフェースコントローラであって、前記不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースコントローラと、前記不揮発性メモリのリード及びライト動作のうちのリード動作のみをサポートする第2のインタフェースコントローラとが択一選択可能なインタフェースコントローラと、前記不揮発性メモリにリード及びライト動作のうちのリード動作のみを行わせるリードオンリーモードに移行させる移行条件が成立するか否かを判定し、前記移行条件が成立したとき、第1のインタフェースコントローラから第2のインタフェースコントローラへ前記インタフェースコントローラを切り替える第1の制御部と、を備え、前記ホスト装置は、前記外部記憶装置を動作させるためのインタフェースドライバであって、前記不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースドライバと、前記不揮発性メモリのリード及びライト動作のうちのリード動作のみをサポートする第2のインタフェースドライバとが択一選択可能なインタフェースドライバと、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替える第2の制御部と、を備えることを特徴とする情報処理装置。前記第1の制御部は、外部記憶装置の動作中及び起動時に前記移行条件が成立するか否かを判定することを特徴とする請求項1に記載の情報処理装置。前記第2の制御部は、ホスト装置の動作中及び起動時に、前記不揮発性メモリをリードオンリーメモリとして認識すべきか否かを判定することを特徴とする請求項1または請求項2に記載の情報処理装置。前記第1のインタフェースコントローラは、ホスト装置からのアクセスに応答して自身がリード及びライト可能なデバイスであることをホスト装置に通知し、前記第2のインタフェースコントローラは、ホスト装置からのアクセスに応答して自身がリード及びライト動作のうちのリードのみ可能なデバイスであることをホスト装置に通知することを特徴とする請求項1乃至請求項3の何れか一つに記載の情報処理装置。前記第2のインタフェースコントローラは、ホスト装置からライト要求を受信したとき、エラーを前記ホスト装置に返信し、前記第2の制御部は、外部記憶装置からエラーを受信すると、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替えることを特徴とする請求項1乃至請求項4の何れか一つに記載の情報処理装置。前記第2の制御部は、前記インタフェースドライバを、第1のインタフェースドライバから第2のインタフェースドライバへ切り替えた後、前記不揮発性メモリの記憶データを他の記憶媒体にバックアップするか否かを明示的にユーザに通知し、承認が得られた場合、前記不揮発性メモリの記憶データを他の記憶媒体にバックアップすることを特徴とする請求項1乃至請求項5の何れかに記載の情報処理装置。ホスト装置と、リード及びライト可能な不揮発性メモリを有する外部記憶装置とを備える情報処理装置の制御方法において、前記外部記憶装置は、前記不揮発性メモリにリード及びライト動作のうちのリード動作のみを行わせるリードオンリーモードに移行させる移行条件が成立するか否かを判定し、前記移行条件が成立したとき、前記ホスト装置と接続されるインタフェースコントローラを不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースコントローラから前記不揮発性メモリのリード動作のみをサポートする第2のインタフェースコントローラに切り替え、前記ホスト装置は、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、前記外部記憶装置を動作させるためのインタフェースドライバを前記不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースドライバから前記不揮発性メモリのリード動作のみをサポートする第2のインタフェースドライバに切り替えることを特徴とする情報処理装置の制御方法。前記外部記憶装置は、ホスト装置からライト要求を受信したとき、エラーを前記ホスト装置に返信し、前記ホスト装置は、外部記憶装置からエラーを受信すると、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替えることを特徴とする請求項7に記載の情報処理装置の制御方法。前記ホスト装置は、前記インタフェースドライバを、第1のインタフェースドライバから第2のインタフェースドライバへ切り替えた後、前記外部記憶装置の記憶データを他の記憶媒体にバックアップするか否かを明示的にユーザに通知し、承認が得られた場合、前記外部記憶装置の記憶データを他の記憶媒体にバックアップすることを特徴とする請求項7または請求項8に記載の情報処理装置の制御方法。リード及びライト可能な不揮発性メモリを有する外部記憶装置が接続されるホスト装置であって、前記外部記憶装置を動作させるためのインタフェースドライバであって、前記不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースドライバと、前記不揮発性メモリのリード及びライト動作のうちのリード動作のみをサポートする第2のインタフェースドライバとが択一選択可能なインタフェースコントローラと、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替える制御部と、を備えることを特徴とするホスト装置。前記制御部は、ホスト装置の動作中及び起動時に、前記不揮発性メモリをリードオンリーメモリとして認識すべきか否かを判定することを特徴とする請求項10に記載のホスト装置。前記外部記憶装置は、前記不揮発性メモリにリード動作のみを行わせるリードオンリーモードに移行した後に、ホスト装置からライト要求を受信したとき、エラーを前記ホスト装置に返信し、前記制御部は、外部記憶装置からエラーを受信すると、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替えることを特徴とする請求項10または請求項11に記載のホスト装置。前記制御部は、前記インタフェースドライバを、第1のインタフェースドライバから第2のインタフェースドライバへ切り替えた後、前記外部記憶装置の記憶データを他の記憶媒体にバックアップするか否かを明示的にユーザに通知し、承認が得られた場合、前記外部記憶装置の記憶データを他の記憶媒体にバックアップすることを特徴とする請求項10乃至請求項12の何れか一つに記載のホスト装置。リード及びライト可能な不揮発性メモリを有する外部記憶装置が接続されるホスト装置であって、前記外部記憶装置を動作させるためのインタフェースドライバであって、前記不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースドライバと、前記不揮発性メモリのリード及びライト動作のうちのリード動作のみをサポートする第2のインタフェースドライバとが択一選択可能なインタフェースコントローラを備えるホスト装置にロードされる制御プログラムであって、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替える制御部を備えることを特徴とする制御プログラム。前記制御部は、外部記憶装置の動作中及び起動時に、前記不揮発性メモリをリードオンリーメモリとして認識すべきか否かを判定することを特徴とする請求項14に記載の制御プログラム。前記制御部は、ホスト装置の動作中及び起動時に、前記不揮発性メモリをリードオンリーメモリとして認識すべきか否かを判定することを特徴とする請求項14に記載の制御プログラム。前記制御部は、外部記憶装置に対し統計情報の送信を要求し、外部記憶装置から受信した統計情報と閾値との比較を行い、統計情報が閾値を超過しているとき、外部記憶装置をリードオンリーメモリとして認識すべきと判断することを特徴とする請求項14乃至請求項16の何れか一つに記載の制御プログラム。前記外部記憶装置は、前記不揮発性メモリにリード動作のみを行わせるリードオンリーモードに移行した後に、ホスト装置からライト要求を受信したとき、エラーを前記ホスト装置に返信し、前記制御部は、外部記憶装置からエラーを受信すると、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替えることを特徴とする請求項14乃至請求項17の何れか一つに記載の制御プログラム。前記制御部は、前記インタフェースドライバを、第1のインタフェースドライバから第2のインタフェースドライバへ切り替えた後、前記外部記憶装置の記憶データを他の記憶媒体にバックアップするか否かを明示的にユーザに通知し、承認が得られた場合、前記外部記憶装置の記憶データを他の記憶媒体にバックアップすることを特徴とする請求項14乃至請求項18の何れか一つに記載の制御プログラム。ホスト装置に接続される外部記憶装置であって、リード及びライト可能な不揮発性メモリと、前記ホスト装置と接続されるインタフェースコントローラであって、前記不揮発性メモリのリード及びライト動作をサポートする第1のインタフェースコントローラと、前記不揮発性メモリのリード及びライト動作のうちのリード動作のみをサポートする第2のインタフェースコントローラとが択一選択可能なインタフェースコントローラと、前記不揮発性メモリにリード及びライト動作のうちのリード動作のみを行わせるリードオンリーモードに移行させる移行条件が成立するか否かを判定し、前記移行条件が成立したとき、第1のインタフェースコントローラから第2のインタフェースコントローラへ前記インタフェースコントローラを切り替える制御部と、を備えることを特徴とする外部記憶装置。前記制御部は、外部記憶装置の動作中及び起動時に前記移行条件が成立するか否かを判定することを特徴とする請求項20に記載の外部記憶装置。前記第1のインタフェースコントローラは、ホスト装置からのアクセスに応答して自身がリード及びライト可能なデバイスであることをホスト装置に通知し、前記第2のインタフェースコントローラは、ホスト装置からのアクセスに応答して自身がリードのみ可能なデバイスであることをホスト装置に通知することを特徴とする請求項20または請求項21に記載の外部記憶装置。ホスト装置と、リード及びライト可能な不揮発性メモリを備える外部記憶装置と、ホスト装置と外部記憶装置との間に接続可能であって、前記ホスト装置及び前記外部記憶装置間で情報の中継を行う中継装置とを備える情報処理装置において、前記ホスト装置は、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、前記中継装置をホスト装置と外部記憶装置との間に接続すべきことを明示的にユーザに通知する制御部と、を備え、前記中継装置は、前記ホスト装置の起動検出時、自身がリードのみ可能なデバイスであることをホスト装置に通知する通知部を備え、前記制御部は、中継装置からの前記通知に応答して前記中継装置を動作させるインタフェースドライバとして、外部記憶装置のリード及びライト動作のうちのリード動作のみをサポートするインタフェースドライバを適用することを特徴とする情報処理装置。ホスト装置と、リード及びライト可能な不揮発性メモリを備える外部記憶装置と、ホスト装置と外部記憶装置との間に接続可能であって、前記ホスト装置及び前記外部記憶装置間で情報の中継を行う中継装置とを備える情報処理装置の制御方法において、前記ホスト装置は、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、前記中継装置をホスト装置と外部記憶装置との間に接続すべきことを明示的にユーザに通知し、前記中継装置は、前記ホスト装置の起動検出時、自身がリードのみ可能なデバイスであることをホスト装置に通知し、前記ホスト装置は、中継装置からの前記通知に応答して、前記中継装置を動作させるためのインタフェースドライバとして、外部記憶装置のリード及びライト動作のうちのリード動作のみをサポートするインタフェースドライバを適用することを特徴とする情報処理装置の制御方法。リード及びライト可能な不揮発性メモリを有する外部記憶装置と、前記外部記憶装置から受信した情報に基づき前記不揮発性メモリをリード及びライト動作のうちのリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、前記中継装置をホスト装置と外部記憶装置との間に接続すべきことを明示的にユーザに通知する制御部を有するホスト装置との間に接続可能であって、前記ホスト装置及び前記外部記憶装置間で情報の中継を行う中継装置であって、前記ホスト装置の起動時、自身がリードのみ可能なデバイスであることをホスト装置に通知する通知部を備え、前記通知部によるホスト装置への通知によって、ホスト装置において、中継装置を動作させるインタフェースドライバとして、外部記憶装置のリード及びライト動作のうちのリード動作のみをサポートするインタフェースドライバを適用可能とすることを特徴とする中継装置。本発明の一つの実施形態は、ライト動作不可能になった外部記憶装置をリード動作のみ可能なデバイスとして正常にホスト装置に認識させることが可能な情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法を提供することを目的とする。本発明の一つの実施形態によれば、情報処理装置は、ホスト装置と、外部記憶装置とを備える。外部記憶装置は、リード及びライト可能な不揮発性メモリと、ホスト装置と接続されるインタフェースコントローラと、第1の制御部とを備える。インタフェースコントローラは、第1の制御部は、前記不揮発性メモリにリード動作のみを行わせるリードオンリーモードに移行させる移行条件が成立するか否かを判定し、前記移行条件が成立したとき、第1のインタフェースコントローラから第2のインタフェースコントローラへ前記インタフェースコントローラを切り替える。ホスト装置は、前記外部記憶装置を動作させるためのインタフェースドライバと、第2の制御部とを備える。第2の制御部は、前記外部記憶装置から取得した情報に基づき前記不揮発性メモリをリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、第1のインタフェースドライバから第2のインタフェースドライバへ前記インタフェースドライバを切り替える。不揮発性半導体メモリには、NAND型フラッシュメモリのように、データを記憶させる場合にブロック単位で一度データを消去してからその後に書き込みを行うもの、ページ単位で書き込み/読み出しを行うものなど、消去/書き込み/読み出しの単位が固定されているものがある。一方、パーソナルコンピュータなどのホスト機器がハードディスクをはじめとする2次記憶装置に対してデータの書き込み/読み出しを行う単位は、セクタと呼ばれる。セクタは、半導体記憶装置の消去/書き込み/読み出しの単位とは独立に定められる。例えば、不揮発性半導体メモリの消去/書き込み/読み出しの単位は、ホスト機器の書き込み/読み出しの単位よりも大きい場合がある。また、フラッシュメモリを用いてパーソナルコンピュータの二次記憶装置を構成する場合、誤りが多いなどの理由によって記憶領域として使用できなくなるブロック不良ブロック、バッドブロックや、読み出せなくなる領域不良領域などが生じる場合がある。このような不良ブロック数や不良領域数が上限値を超えた場合には、新たな不良ブロックや不良領域を登録することができないので、バッファメモリキャッシュメモリに格納されているデータとライト要求のあったデータの両方をフラッシュメモリへ書き込むことを保障できない。このため、不良ブロック数や不良領域数が所定値を超えた場合には、フラッシュメモリに空き容量があるにも関わらず、突然データの書き込みが不能になるといった問題があった。それに対する解決策として、NAND型フラッシュメモリで発生したバッドクラスタの数とバッドブロックの数を管理し、バッドクラスタ数、バッドブロック数に応じて、ホスト装置からNAND型フラッシュメモリへのデータの書き込みの際の動作モードを切り替えるという方法がある。クラスタとは、SSDでの論理アドレスとしての管理単位である。クラスタサイズは、セクタサイズの2以上の自然数倍であり、クラスタアドレスは、LBAの所定のビットから上位のビット列で構成される。この方法においては、SSDの動作モードは、例えば以下の3つのモードに分かれる。WBモードWriteBackMode:キャッシュメモリに一旦データを書き込み、所定の条件に基づきNAND型フラッシュメモリへの追い出しを行う通常の動作モード。WTモード:WriteThroughMode:一回のライト要求でキャッシュメモリに書き込まれたデータを、NAND型フラッシュメモリに都度書き込む動作モード。NAND型フラッシュメモリに都度書き込むことで、ホストから書き込まれたデータをできるだけ保障する。SSDは、バッドクラスタテーブルまたはバッドブロックテーブルの残エントリ数が所定数以下になったとき、WTモードへと遷移する。ROモードReadOnlyMode:NAND型フラッシュメモリへの書き込みを伴う処理を全て禁ずるモード。ホストからの全てのライト要求に対してエラーを返し書き込みを行わないようにすることで、SSDが寿命に近づいたときに、ホストからすでに書き込まれていたデータをできるだけ保障できるようにしている。SSDは、バッドクラスタテーブルまたはバッドブロックテーブルの残エントリ数が所定数以下になったとき、またはフリーブロックが不足となったとき、ROモードへと遷移する。WBモード及びWTモードにおいては、SSDはホストからリード要求とライト要求の両方を受け付けて処理をする。一方、ROモードにおいては、SSDはホストからリード要求を受け付けて処理をするが、ホストからのライト要求に対しては処理をせずエラーを返す。Windowsなどのオペレーティングシステムを搭載したホストに対してSSDが接続されたとき、ホストはSSDに対してライト要求を送信し、ライト要求が正常に処理されたとき、ホストはSSDを利用可能な外部記憶装置として認識する。一方、上記ROモードに遷移したSSDがWindowsを搭載したホストに接続されたとき、ホストがSSDに対してライト要求を送信すると、SSDはホストにエラーを返すため、ホストはSSDを利用可能な外部記憶装置として認識しない場合がある。そのため、読み出しは可能なROモードのSSDをホストに接続しても、過去に記録したデータをSSDから読み出せない可能性があった。そこで、本実施形態においては、ROモードに移行したSSDをリード動作のみ可能なデバイスとして正常にホストに認識させることを可能とする。以下に添付図面を参照して、実施形態にかかる情報処理装置、外部記憶装置、ホスト装置、中継装置及び情報処理装置の制御方法を詳細に説明する。なお、これら実施形態により本発明が限定されるものではない。第1の実施形態図1にコンピュータシステムの第1の実施形態の構成を示す。本コンピュータシステム1は、外部記憶装置としてのSSD10と、ホスト100と、SSD10とホスト100とを結ぶメモリインタフェースとしての例えばATAインタフェース90とから構成されている。外部記憶装置として、SSD10以外にハードディスクドライブやハイブリッドハードディスクドライブや、USBメモリや、SDカードなど、他の読み書き可能な不揮発性記憶装置であってもよい。ホスト100としては、パーソナルコンピュータ、スチルカメラあるいはビデオカメラなどの撮像装置などであってもよいし、タブレットコンピュータやスマートフォンやゲーム機器やカーナビゲーションシステムなどであってもよい。図1に示すように、SSD10は、不揮発性半導体メモリとしてのNAND型フラッシュメモリ以下NANDメモリと略す20と、ATAインタフェース90を介してホスト100との信号の送受信を行うインタフェースコントローラ30と、インタフェースコントローラ30とNANDメモリ20との中間バッファとして機能するキャシュメモリCM40aを有する揮発性半導体メモリとしてのRAMRandomAccessMemory40と、NANDメモリ20及びRAM40の管理、制御、及びインタフェースコントローラ30の制御を司るメモリコントローラ50と、SSD10の起動時に初期化等を含む各種起動時処理を行うブートローダとしてのIPLInitialProgramLoader55と、NANDメモリ20から読み出されたデータの誤り訂正処理を実行するECC訂正回路58と、これら構成要素を接続するバス57を備える。IPL55はメモリコントローラ50に含まれてもよい。ATAインタフェース90のかわりに、USBUniversalSerialBusインタフェースなど、その他のインタフェースを用いてもよい。RAM40としては、DRAMDynamicRandomAccessMemory、SRAMStaticRandomAccessMemory、FeRAMFerroelectricRandomAccessMemory、MRAMMagnetoresistiveRandomAccessMemory、PRAMPhaseChangeRandomAccessMemoryなどを採用することができる。RAM40はメモリコントローラ50に含まれてもよい。NANDメモリ20は、ホスト100によって指定されたユーザデータを記憶したり、ユーザデータを管理する管理テーブルを記憶したり、RAM40で管理される管理情報をバックアップ用に記憶したりする。NANDメモリ20は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDメモリ20は、複数のメモリチップによって構成され、各メモリチップは、データ消去の単位であるブロックを複数配列して構成される。また、NANDメモリ20では、ページごとにデータの書き込み及びデータの読み出しが行われる。ブロックは、複数のページによって構成されている。図2にNANDメモリ20を構成するNANDメモリチップの内部構成例を示す。NANDメモリ20は、1以上の個数のNANDメモリチップ20080より成る。NANDメモリチップ20080は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有する。メモリセルアレイを構成するメモリセルトランジスタは、半導体基板上に形成された積層ゲート構造を備えたMOSFETMetalOxideSemiconductorFieldEffectTransistorから構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層浮遊ゲート電極、及び浮遊ゲート電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。本実施形態では、個々のメモリセルが上位ページ及び下位ページを使用しての2bitcellの4値記憶方式の書き込み方式である場合について説明するが、個々のメモリセルが単一ページを使用しての1bitcellの2値記憶方式の書き込み方式、または上位ページ及び中位ページ及び下位ページを使用しての3bitcellの8値記憶方式の書き込み方式である場合、あるいは4bitcell以上の多値記憶方式の書き込み方式を採用する場合であっても本発明の本質は変わらない。また、メモリセルトランジスタは浮遊ゲート電極を有する構造に限らず、MONOSMetalOxideNitrideOxideSilicon型など、電荷蓄積層としての窒化界面に電子をトラップさせることで閾値電圧を調整可能な構造であってもよい。MONOS型のメモリセルトランジスタについても同様に、1ビットを記憶するように構成されていてもよいし、多値を記憶するように構成されていてもよい。また、不揮発性記憶媒体として、特開2010-161199号公報や特開2011-29586号公報に記述されるような3次元的にメモリセルが配置された半導体記憶媒体であってもよい。図2に示すように、NANDメモリチップ20080は、データを記憶するメモリセルをマトリックス状に配置してなるメモリセルアレイ20082を備えている。メモリセルアレイ20082は複数のビット線と複数のワード線と共通ソース線を含み、ビット線とワード線の交点に電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ20082には、ビット線を制御するためのビット制御回路20083、及びワード線電圧を制御するためのワード線制御回路20085が接続されている。すなわち、ビット線制御回路20083は、ビット線を介してメモリセルアレイ20082中のメモリセルのデータを読み出す一方、ビット線を介してメモリセルアレイ20082中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行う。ビット線制御回路20083には、カラムデコーダ20084、データ入出力バッファ20089及びデータ入出力端子20088が接続されている。メモリセルアレイ20082から読み出されたメモリセルのデータは、ビット線制御回路20083、データ入出力バッファ20089を介してデータ入出力端子20088から外部へ出力される。また、外部からデータ入出力端子20088に入力された書き込みデータは、データ入出力バッファ20089を介して、カラムデコーダ20084によってビット線制御回路20083に入力され、指定されたメモリセルへの書き込みが行われる。また、メモリセルアレイ20082、ビット線制御回路20083、カラムデコーダ20084、データ入出力バッファ20089、及びワード線制御回路20085は、制御回路20086に接続されている。制御回路20086は、制御信号入力端子20087に入力される制御信号に従い、メモリセルアレイ20082、ビット線制御回路20083、カラムデコーダ20084、データ入出力バッファ20089、及びワード線制御回路20085を制御するための制御信号及び制御電圧を発生させる。NANDメモリチップ20080のうち、メモリセルアレイ20082以外の回路部分をNANDコントローラNANDC20081と呼ぶ。図3は、図2に示すメモリセルアレイ20082の構成を示している。メモリセルアレイ20082はNANDセル型メモリセルアレイであり、複数のNANDセルを含んで構成されている。1つのNANDセルは、直列接続されたメモリセルからなるメモリストリングMSと、その両端に接続される選択ゲートS1、S2とにより構成されている。選択ゲートS1はビット線BLに接続され、選択ゲートS2はソース線SRCに接続されている。同一のロウに配置されたメモリセルMCの制御ゲートはワード線WL0~WLm1に共通接続されている。また、第1の選択ゲートS1はセレクト線SGDに共通接続され、第2の選択ゲートS2はセレクト線SGSに共通接続されている。メモリセルアレイ20082は、1または複数のプレーンを含んでおり、プレーンは複数のブロックを含んでいる。各ブロックは、複数のNANDセルにより構成され、このブロック単位でデータが消去される。また、1つのワード線に接続された複数のメモリセルは、1物理セクタを構成する。この物理セクタ毎にデータが書き込まれ、読み出されるこの物理セクタは、後述するLBAの論理セクタとは無関係である。1物理セクタには、2bitcell書き込み方式4値の場合例えば2ページ分のデータが記憶される。一方、1bitcell書き込み方式2値の場合は、1物理セクタに例えば1ページ分のデータが記憶され、3bitcell書き込み方式8値の場合、1物理セクタに例えば3ページ分のデータが記憶される。リード動作、プログラムベリファイ動作及びプログラム動作時において、メモリコントローラ50から受信した物理アドレスに応じて、1本のワード線が選択され、1物理セクタが選択される。この物理セクタ内のページの切り替えは物理アドレスによって行われる。本実施形態ではNANDメモリ20は2bitcell書き込み方式であり、メモリコントローラ50は物理セクタには上位ページUpperPageと下位ページLowerPageの2ページが物理ページとして割り当てられていると取扱い、それら全ページに対して物理アドレスが割り当てられている。2bitcellの4値NANDメモリは、1つのメモリセルにおける閾値電圧が、4通りの分布を持ち得るように構成されている。図4は、4値NANDセル型フラッシュメモリのメモリセルに記憶される2ビットの4値データデータ11、01、10、00とメモリセルの閾値電圧分布との関係を示している。なお、図4において、VA1は、下位ページのみ書き込み済みで上位ページが未書き込みの物理セクタについて、2つのデータを読み出す場合に選択ワード線に印加される電圧であり、VA1Vは、A1への書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。また、VA2、VB2、VC2は、下位ページと上位ページが書き込み済みの物理セクタについて、4つのデータを読み出す場合に選択ワード線に印加される電圧であり、VA2V、VB2V、VC2Vは、各閾値電圧分布への書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。また、Vread1、Vread2は、データの読み出しを行う場合に、NANDセル中の非選択メモリセルに対し印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧を示している。さらに、Vev1、Vev2は、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためメモリセルに印加される消去ベリファイ電圧であり、負の値を有する。その大きさは、隣接メモリセルの干渉の影響を考慮して決定される。上述の各電圧の大小関係は、Vev1<VA1<VA1V<Vread1Vev2<VA2<VA2V<VB2<VB2V<VC2<VC2V<Vread2である。なお、消去ベリファイ電圧Vev1、Vev2、Vev3は前述の通り負の値であるが、実際に消去ベリファイ動作においてメモリセルMCの制御ゲートに印加される電圧は、負の値ではなく、ゼロ又は正の値である。すなわち、実際の消去ベリファイ動作においては、メモリセルMCのバックゲートに正の電圧を与え、メモリセルMCの制御ゲートには、ゼロ又はバックゲート電圧より小さい正の値の電圧を印加している。換言すれば、消去ベリファイ電圧Vev1、Vev2、Vev3は、等価的に負の値を有する電圧である。ブロック消去後のメモリセルの閾値電圧分布ERは、その上限値も負の値であり、データ11が割り当てられる。下位ページおよび上位ページ書き込み状態のデータ11、01、10、00のメモリセルは、それぞれ正の閾値電圧分布ER2、A2、B2、C2を有しA2、B2、C2の下限値も正の値である、データ01の閾値電圧分布A2が最も電圧値が低く、データ00の閾値電圧分布C2が最も電圧値が高く、各種閾値電圧分布の電圧値はA2<B2<C2の関係を有する。下位ページ書き込みかつ上位ページ未書き込み状態のデータ10のメモリセルは、正の閾値電圧分布A1を有するA1の下限値も正の値である。なお、図4に示す閾値電圧分布はあくまでも一例であって、本発明はこれに限定されるものではない。例えば、図4では閾値電圧分布A2,B2,C2は全て正の閾値電圧分布であるとして説明したが、閾値電圧分布A2は負の電圧の分布であり、閾値電圧分布B2、C2が正の電圧の分布であるような場合も、本発明の範囲に含まれる。また、閾値電圧分布ER1ER2は正の値であったとしても、本発明はこれに限定されるものではない。また、本実施形態ではER2、A2、B2、C2のデータの対応関係がそれぞれ11、01、10、00であるとしているが、たとえばそれぞれ11、01、00、10であるような他の対応関係であってもよい。1つのメモリセルの2ビットデータは、下位ページデータと上位ページデータからなり、下位ページデータと上位ページデータは別々の書き込み動作、つまり、2回の書き込み動作により、メモリセルに書き込まれる。データをと標記するとき、は上位ページデータを、は下位ページデータを表している。まず、下位ページデータの書き込みを、図4の1段目~2段目を参照して説明する。全てのメモリセルは、消去状態の閾値電圧分布ERを有し、データ11を記憶しているものとする。図14に示すように、下位ページデータの書き込みを行うと、メモリセルの閾値電圧分布ERは、下位ページデータの値1、或いは0に応じて、2つの閾値電圧分布ER1、A1に分けられる。下位ページデータの値が1の場合には、消去状態の閾値電圧分布ERを維持するのでER1=ERであるが、ER1>ERであってもよい。一方、下位ページデータの値が0の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電位VA1Vを設定し、このベリファイ電圧VA1V以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、メモリセルは、書き込み状態データ10に変化する。書き込み動作を所定回繰り返しても閾値電圧に到達しなかった場合または閾値電圧に到達しないメモリセル数が所定値以上の場合、当該物理ページに対する書き込みは書き込みエラーとなる。次に、上位ページデータの書き込みを、図4の2段目~3段目を参照して説明する。上位ページデータの書き込みは、チップの外部から入力される書き込みデータ上位ページデータと、メモリセルに既に書き込まれている下位ページデータとに基づいて行われる。即ち、図4の2段目~3段目に示すように、上位ページデータの値が1の場合には、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Vthの上昇を防止する。その結果、データ11消去状態の閾値電圧分布ER1のメモリセルは、データ11をそのまま維持しER2、データ10閾値電圧分布A1のメモリセルは、データ10をそのまま維持するB2。ただし、各分布間の電圧マージンを確保するという点で、上述のベリファイ電圧VA1Vよりも大きい正のベリファイ電圧VB2Vを用いて閾値電圧分布の下限値を調整し、これにより閾値電圧分布の幅を狭めた閾値電圧分布B2を形成するのが望ましい。下限値調整を所定回繰り返しても敷地電圧に到達しなかった場合または閾値電圧に到達しないメモリセル数が所定値以上の場合、当該物理ページに対する書き込みは書き込みエラーとなる。一方、上位ページデータの値が0の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電位VA2V、VC2Vを設定し、このベリファイ電圧VA1V以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、データ11消去状態の閾値電圧分布ER1のメモリセルは、閾値電圧分布A2のデータ01に変化し、データ10A1のメモリセルは、閾値電圧分布C2のデータ00に変化する。このとき、ベリファイ電圧VA2V、VC2Vが用いられて、閾値電圧分布A2、C2の下限値が調整される。書き込み動作を所定回繰り返しても敷地電圧に到達しなかった場合または閾値電圧に到達しないメモリセル数が所定値以上の場合、当該物理ページに対する書き込みは書き込みエラーとなる。一方、消去動作においては、消去ベリファイ電位Vevを設定し、このベリファイ電圧Vev以下の閾値電圧となるまで消去動作が繰り返される。その結果、メモリセルは、書き込み状態データ00に変化する。消去動作を所定回繰り返しても敷地電圧に到達しなかった場合または閾値電圧に到達しないメモリセル数が所定値以上の場合、当該物理ページに対する消去は消去エラーとなる。以上が、一般的な4値記憶方式におけるデータ書き込み方式の一例である。3ビット以上の多ビット記憶方式においても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を8通り以上に分割する動作が加わるのみであるので、基本的な動作は同様である。RAM40は、ホスト100とNANDメモリ20間でのデータ転送用キャッシュとして機能するキャッシュメモリCM40aを有する。また、RAM40は、管理情報記憶用メモリ及び作業領域用メモリとして機能する。RAM40で管理される管理テーブルは、NANDメモリ20に記憶されている各種管理テーブルが起動時などに展開されたものであり、定期的あるいは電源断時にNANDメモリ20に退避保存される。メモリコントローラ50は、NANDメモリ20に記憶されたシステムプログラムファームウエアを実行するプロセッサと、各種ハードウェア回路などによってその機能が実現され、ホスト100からのライト要求、キャッシュフラッシュ要求、リード要求等の各種コマンドに対するホスト100-NANDメモリ20間のデータ転送制御、RAM40及びNANDメモリ20に記憶された各種管理テーブルの更新管理などを実行する。ホスト100はSSD10に対し、リード要求またはライト要求を発行する際には、ATAインタフェース90を介して論理アドレスとしてのLBALogicalBlockAddressingを入力する。LBAは、セクタサイズ:例えば512Bに対して0からの通し番号をつけた論理アドレスである。また、ホスト100はSSD10に対し、リード要求またはライト要求を発行する際には、LBAと併せて、リード要求またはライト要求の対象となるセクタサイズを入力する。インタフェースコントローラ30は、リード/ライトが可能な通常の動作モードで使用されるATAコントローラなどのリードライトモード用のインタフェースコントローラ以下、RWIFコントローラと略す31と、読み出しのみ許可されるリードオンリーモードにおいて使用される読み出し専用メディアの規格のコントローラである例えばATAPIATAPacketInterfaceコントローラなどのリードオンリーモード用のインタフェースコントローラ以下、ROIFコントローラと略す32と、RWIFコントローラ31及びROIFコントローラ32のいずれかを選択可能な選択スイッチ33,34を含む。選択スイッチ33は、RWIFコントローラ31及びROIFコントローラ32のいずれか一方を排他的に選択してATAインタフェース90と接続し、選択スイッチ34は、RWIFコントローラ31及びROIFコントローラ32のいずれか一方を排他的に選択してバス57と接続する。RWIFコントローラ31の選択状態においては、選択スイッチ33はATAインタフェース90とRWIFコントローラ31を電気的接続状態にしており、スイッチ34はバス57とRWIFコントローラ31を電気的接続状態にしている。ROIFコントローラ32の選択状態においては、選択スイッチ33はATAインタフェース90とROIFコントローラ32を電気的接続状態にしており、スイッチ34はバス57とROIFコントローラ32を電気的接続状態にしている。RWIFコントローラ31はSSD10がATAデバイスであることをホスト100に明示的に示すよう構成されるのが望ましい。たとえば、ATAATAPICommandSet2で記述されているDeviceSignatureにおいて、LBAを01hに、LBAを00hに、LBAを00hとしてホスト100に出力することで、SSD10がATAデバイスであることをホスト100に通知することができる。ROIFコントローラ32はSSD10がATAPIデバイスであることをホスト100に明示的に示すよう構成されるのが望ましい。たとえば、ACS2で記述されているDeviceSignatureにおいて、LBAを01hに、LBAを14hに、LBAをEBhとしてホスト100に出力することで、SSD10がATAPIデバイスであることをホスト100に通知することができる。ROIFコントローラ32は、SSD10が書き込みコマンドをサポートせず読み出し専用であることをホスト100に通知するよう構成される。例えば、ATAインタフェース90を介してホスト100からINCITSMultiMediaCommands6に採用されているコマンドGETCONFIGURATION46hを受信したとき、ROIFコントローラ32は、RandomWritable、IncrementalStreamingWritable、WriteOnceなどのFeaturesにおいて、ライト系機能は全て非サポートであることをホスト100に返信する。これにより、ホスト100側がOSとしてWindows登録商標などを使用している場合でも、SSD10が読み出し可能なデバイスとして認識させることが可能となる。なお、ROIFコントローラ32は、RWIFコントローラ31と同じく、SSD10がATAデバイスであることをホスト100に明示的に示すよう構成され、ATAインタフェース90を介してホスト100からデバイス識別情報、たとえばACS-2記載のコマンドEChIDENTIFYDEVICEを受信したとき、ライト系機能は全て非サポートであることをホスト100に返信するよう構成されてもよい。SSD10がリードオンリデバイスであるか否かの通知方法はこれ以外の様々な形態をとってもよい。なお、インタフェースコントローラ30及びそれに含まれる各種コントローラの機能は、すべてをLSIなどのハードウェアとして実装してもよいし、一部または全部をファームウェアなどのソフトウェアとして実装してもよい。ファームウェアは、SSD電源オフ時はNANDメモリ20上に保存されているが、ファームウェアとして実装する場合は、SSD電源起動時にRAM40上またはメモリコントローラ50上に、IPL55によって読み出されるようにすればよい。RWIFコントローラ31は、ホスト100からのリード要求、ライト要求、その他要求及びデータを受信し、受信した要求やデータをメモリコントローラ50に送信したり、メモリコントローラ50の制御によりRAM40にデータを送信したりする機能を持つ。また、RWIFコントローラ31は、ホスト100からデバイス識別情報の送信要求を受信したときは、自身が読み書き両方可能なデバイスであるという識別情報をホスト100に対して送信する。ROIFコントローラ32は、ホスト100からのリード要求、ライト要求を除くその他要求及びデータを受信し、受信した要求やデータをメモリコントローラ50に送信したり、メモリコントローラ50の制御によりRAM40にデータを送信したりする機能を持つ。また、ROIFコントローラ32は、ホスト100からデバイス識別情報の送信要求を受信したときは、自身が書き込みをサポートしていないというデバイス識別情報をホスト100に対して送信する。これにより、ホスト100はSSD10が書き込みを非サポートであると認識することになるので、ホスト100からSSD10にライト要求が送信されることはない。自身が書き込みをサポートしていないというデバイス識別情報をホスト100に対して送信後に、ホスト100からSSD10にライト要求が送信された場合には、ROIFコントローラ32がホスト100に対してエラーを返すようにしてもよい。ROIFコントローラ32は、NANDメモリ20の書き込み動作を伴わないコマンドに対しては、RWIFコントローラ31と同様の処理を行ってもよい。IPL55は、SSD10の電源投入時に起動され、NANDメモリ20、RAM40、メモリコントローラ50及びインタフェースコントローラ30の初期化処理を行う。その際、IPL55は、NANDメモリ20の管理情報をNANDメモリ20またはRAM40から読み出す。IPL55は、読み出した管理情報に基づきリードオンリーモード移行条件が成立するか否か、すなわちSSD10が通常の動作モードで使用される状態にあるかあるいはリードオンリーモードにおいて使用される状態にあるかを判断する。IPL55は、この判断の結果、通常モードであると判断した場合は、RWIFコントローラ31を選択するように選択スイッチ33、34を設定し、ROIFコントローラ32を非選択状態にする。一方、IPL55は、読み出した管理情報に基づきSSD10がリードオンリーモードにおいて使用される状態にあると判断すると、ROIFコントローラ32を選択するように選択スイッチ33,34を設定し、RWIFコントローラ31を非選択状態にする。リードオンリーモード移行条件については、後で詳述する。また、メモリコントローラ50は、リード/ライト可能な通常の状態でSSD10が動作中においても、リードオンリーモード状態へ移行させるためのリードオンリーモード移行条件が成立するか否かを判定しており、通常の状態でSSD10が動作中にリードオンリーモード移行条件が成立した場合は、後述のリードオンリーモード移行処理を実行する。このリードオンリーモード移行処理によって、結果的にインタフェースコントローラ30はROIFコントローラ32に切り替わる。つぎに、ホスト100の構成について説明する。ホスト100は、オペレーティングシステムOS150と、SSD制御ツール110と、SSD10用のインタフェースドライバ120を含む。インタフェースドライバ120は、SSD10がリード/ライト可能な通常の動作モードであるときに使用されるATAドライバなどのリードライトモード用のインタフェースドライバ以下、RWIFドライバと略す121と、SSD10がリードオンリーモードであるときに使用されるATAPIドライバの読み出し専用ドライバなどのリードオンリーモード用のインタフェースドライバ以下、ROIFドライバと略す122と、SSD10に適用されるドライバをRWIFドライバ121及びROIFドライバ122より選択する選択スイッチ123,124を含む。SSD制御ツール110は、選択スイッチ123,124を介して、SSD10に適用されるドライバをRWIFドライバ121またはROIFドライバ122のいずれか一方から選択するか、あるいはどちらも非選択状態にすることが可能である。ソフトウェア140は、SSD制御ツール110以外のソフトウェアであって、SSD10を使用するソフトウェアである。SSD制御ツール110は、例えば、図5に示すように、ホスト100が電源オフになっているときはSSD10のNANDメモリ20の領域にSSD制御ツール110Aとして格納されているが、ホスト100の起動時またはプログラム起動時に、NANDメモリ20から主メモリ202にロードされる。一方、ホスト100に複数の外部記憶装置が接続されている場合は、図6に示すように、SSD制御ツール110は、SSD制御ツール100Bとして、SSD10とは別の外部記憶装置300の領域に格納されており、ホスト100の起動時またはプログラム起動時に、外部記憶装置300から主メモリ202にロードされるようにしてもよい。特に、外部記憶装置300がOS150を格納するシステムドライブとして使用されており、SSD10が文書や静止画データや動画データなどユーザデータを格納するデータドライブとして使用されている場合は、システムドライブとしての外部記憶装置300にはOSやアプリケーションプログラムを主として格納するドライブとして使用し、データドライブとしてのSSD10にはユーザデータを格納するドライブとして使用するというように、ドライブ10とドライブ300の役割を明確に分ける観点で、システムドライブとしての外部記憶装置300にSSD制御ツール110を格納することが望ましい。SSD制御ツール110のセットアップをユーザが行う労力を省く観点では、例えば図5や図6に示したように、SSD制御ツール110がSSD10や外部記憶装置300に格納された状態でコンピュータシステム1が出荷され、店頭に並び、ユーザの手に渡ることが望ましい。一方、ユーザがSSD制御ツールのインストールの可否を選択できるようにする観点、及びユーザに最新のSSD制御ツールを提供できるようにするという観点では、SSD制御ツールは、WEBからのダウンロード、またはDVD-ROMやUSBメモリなど外部記憶媒体からのインストールによりSSD10や外部記憶装置300に格納できるようにすることが望ましい。図7はSSD制御ツールをWEBからダウンロードする場合の一例を示すものである。図7において、SSD制御ツール110CはWEBサーバ内の記憶媒体400に格納されており、SSD制御ツール110Cはインターネットやローカルネットワークや無線LANなどのネットワークを介して、たとえばLANコントローラ208を経由してSSD10あるいは外部記憶装置300にダウンロードされる。図8はDVD-ROMやCD-ROMなど光学メディアからSSD制御ツールをインストールする場合の一例を示すものである。SSD制御ツール110DはDVD-ROMやCD-ROMなどの光学メディア500に格納されており、光学メディア500が光学ドライブ206にセットされることで、SSD制御ツール110Dは光学ドライブ206を介してSSD10あるいは外部記憶装置300にインストールされる。図9はUSBメモリからSSD制御ツールをインストールする場合の一例を示すものである。SSD制御ツール110EはUSBメモリ600に格納されており、USBメモリ600がUSBコントローラ209に接続されることで、SSD制御ツール110EはUSBコントローラ209を介してSSD10あるいは外部記憶装置300にインストールされる。USBメモリ600のかわりに、SDカードなどその他外部メモリであってもよいのはもちろんである。ユーザによる入手容易性の観点から、光学メディア500やUSBメモリ600はSSD10の出荷時に、付属品としてSSD10と一緒に梱包されていることが望ましい。一方、光学メディア500やUSBメモリ600は、ソフトウェア商品として単独に販売されてもよいし、雑誌や書籍の付録として付属していてもよい。選択スイッチ124は、RWIFドライバ121及びROIFドライバ122のいずれか一方を排他的に選択してATAインタフェース90と接続し、選択スイッチ123は、RWIFドライバ121及びROIFドライバ122のいずれか一方を排他的に選択してソフトウェア140と接続する。RWIFドライバ121の選択状態においては、選択スイッチ124はATAインタフェース90とRWIFドライバ121を接続状態にしており、スイッチ123はソフトウェア140とRWIFドライバ121を接続状態にしている。ROIFドライバ122の選択状態においては、選択スイッチ124はATAインタフェース90とROIFドライバ122を接続状態にしており、選択スイッチ123はソフトウェア140とROIFドライバ122を接続状態にしている。図10に、コンピュータシステム1の外観的構成を示す。図10は、一般的なデスクトップ型のパーソナルコンピュータの構成を示している。SSD10はATAインタフェース90としてのSATAケーブルを介してマザーボード130に物理的に接続され、マザーボード130上に実装されたサウスブリッジを介して、マザーボード130上に取り付けられたCPU図示せずに電気的に接続されている。SSD10は電源ケーブル131を介して電源回路132に接続されている。マザーボード130には、ディスプレイ133、キーボード134、マウス135などが接続されている。コンピュータシステムとしては、デスクトップ型に限らず、ラップトップ型やノート型のパーソナルコンピュータにも適用可能である。図11は、SSD10を搭載したホスト100のシステム構成例を示すものである。ホスト100は、CPU200、ノースブリッジ201、DRAMなどの主メモリ202、表示コントローラ203、ディスプレイ133、サウスブリッジ205、光学ドライブ206、BIOS-ROM207、LANコントローラ208、USBコントローラ209、キーボード134、マウス135等を備えている。CPU200は、コンピュータシステムの動作を制御するために設けられたプロセッサであり、SSD10から主メモリ202にロードされるオペレーティングシステムOSを実行する。更に、光学ドライブ206が、装填された光ディスクに対して読出し処理及び書込み処理の少なくとも1つの処理の実行を可能にした場合に、CPU200は、それらの処理を実行する。また、CPU200は、BIOS-ROM207に格納されたシステムBIOSBasicInputOutputSystemも実行する。尚、システムBIOSは、コンピュータシステム内のハードウェア制御のためのプログラムである。ノースブリッジ201は、CPU200のローカルバスと接続するブリッジデバイスである。ノースブリッジ201には、主メモリ202をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ201は、表示コントローラ203との通信などを実行する機能も有している。主メモリ202は、プログラムやデータを一時的に記憶し、CPU200のワークエリアとして機能する。主メモリ202は、例えばDRAMから構成される。ビデオコントローラ203は、コンピュータシステムのディスプレイ133を制御するビデオ再生コントローラである。サウスブリッジ205は、CPU200のローカルバスと接続するブリッジデバイスである。サウスブリッジ205は、各種ソフトウェア及びデータを格納する記憶装置であるSSD10を、ATAインタフェース90を介して制御する。コンピュータシステムでは、セクタ単位でSSD10へのアクセスを行う。ATAインタフェース90を介して、ライトコマンドライト要求、リードコマンドリード要求、フラッシュコマンド等がSSD10に入力される。また、サウスブリッジ205は、BIOS-ROM207、光学ドライブ206、LANコントローラ208、USBコントローラ209をアクセス制御するための機能も有している。USBコントローラ209にキーボード134、マウス135が接続されている。図11において、OS150、SSD制御ツール110、RWIFドライバ121、ROIFドライバ122などを含むインタフェースドライバ120、ソフトウェア140は、コンピュータシステムの電源がオフの時はSSD10上に保持されており、ホストの電源オン時またはそれらの機能を呼び出した際は、SSD10から主メモリ202上にロードされる。主メモリ202上にロードされたインタフェースドライバ120はノースブリッジ201を介してCPU200に読み出され、読み出されたインタフェースドライバの情報をもとにCPU200がサウスブリッジ205を介してSSD10の制御を行う。図12に、コンピュータシステムの各種要素の階層構造を示す。SSD制御ツール110及びソフトウェア140は、通常はSSD10と直接通信せずに、OS150及びインタフェースドライバ120を経由してSSD10と通信する。SSD制御ツール110やソフトウェア140がSSD10に対しリード要求、ライト要求などの命令を送信する必要が生じた場合、SSD制御ツール110やソフトウェア140は、OS150にファイル単位のアクセス要求を送信する。OS150はOS150に内包されるファイル管理テーブルを参照し、アクセス要求のあったファイルに対応するSSD10の論理アドレスLBAを特定し、対応するLBAを含む命令をインタフェースドライバ120に送信する。インタフェースドライバ120はOS150からの命令を当該インタフェース固有の命令に変換し、SSDに送信する。SSD10から応答が返ってきた場合、インタフェースドライバ120が当該インタフェース固有の応答をOS150の命令に変換してOS150に送信する。OS150は変換後の応答がどのソフトウェアに対する応答かを特定し、特定したソフトウェアに対して応答を返す。一方、SSD制御ツール110は、インタフェースドライバ120に対してOS150を介さずに直接アクセスすることができる。SSD制御ツール110は、インタフェースドライバに直接アクセスすることで、インタフェースドライバのうち、RWIFドライバ121とROIFドライバ122のどちらが有効であるかを排他的に選択することができる。RWIFドライバ121が有効である場合は、RWIFドライバ121がOS150とSSD10との中継をし、ROIFドライバ122は何もしない。ROIFドライバ122が有効である場合は、ROIFドライバ122がOS150とSSD10との中継をし、RWIFドライバ121は何もしない。なお、SSD制御ツール110は、OS150を介して、RWIFドライバ121とROIFドライバ122を択一選択することとしてもよい。SSD制御ツール110は、ホスト起動時またはSSD接続時、SSDのデバイス識別情報をSSD10から取得する。このデバイス識別情報に基づきSSD10が読み書き可能なデバイスであるか書き込み非サポートのデバイスであるかを判定し、この判定結果に基づきインタフェースドライバ120の切り替え設定を行う。SSD10が読み書き可能なデバイスであると判定した場合は、RWIFドライバ121を有効とし、SSD10が書き込み非サポートのデバイスであると判定した場合は、ROIFドライバ122を有効とする。また、SSD制御ツール110は、ライト要求に対するSSD10からの応答がエラーであった場合、SSD10がリードオンリーモードに切り替わったと判断し、SSD10を再起動するとともに、インタフェースドライバ120をRWIFドライバ121からROIFドライバ122に切り替える。SSD10のデータ破壊や故障によるユーザデータ損失を防止する観点では、ROIFドライバ122は、SSD10に対する書き込みコマンドを一切送信しないよう構成されることが望ましい。しかし、ROIFドライバ122は、たとえばオペレーティングシステムのシステム情報など一部のデータをSSD10に書き込む必要がある場合は、例外としてSSD10に当該データを書き込むことを許可してもよいが、当該データはデータ量がNANDメモリ20の容量に対して十分に小さいことが望ましい。さらに望ましくは、ユーザが誤って書き込みコマンドを送信してしまいSSD10に対してデータを書き込んでしまうことを防止するために、ROIFドライバ122は、たとえばACS2記載の35hWRITEDMAEXTや61hWRITEFPDMAQUEUEDのような、SSD10に対する通常の書き込みコマンドは一切送信せず、SSD10に対して例外的にデータを書き込む必要がある場合は、たとえばINCITSACS2に記述されているSCTCommandTransportやその他ベンダー独自のコマンドなど、特殊なコマンドを用いたコマンドのみによりSSD10に対する書き込みを許可するようにすることが望ましい。ROIFドライバ122の適用時ROモード時であっても例外的に特殊コマンドを用いた書き込みを行えるようにする場合、SSD10がROモードである場合であっても、前記した特殊コマンドをホスト100から受理して正常にデータ書き込み処理するようメモリコントローラ50およびROIFコントローラ32が構成される必要がある。図5にSSD10で使用する管理情報の構成を示す。この管理情報は、前述したように、NANDメモリ20で不揮発記憶されている。NANDメモリ20で記憶された管理情報がSSD10の起動時にRAM40に展開されて使用される。RAM40上の管理情報は、定期的あるいは電源断時にNANDメモリ20に退避保存される。RAM40がMRAMやFeRAMなどのような不揮発RAMである場合には、この管理情報はRAM40にのみ記憶されるようにしてもよく、この場合はこの管理情報はNANDメモリ20には記憶されない。図5に示すように、管理情報には、フリーブロックテーブル21と、バッドブロックテーブル22と、アクティブブロックテーブル23と、アクティブページテーブル24、リードオンリーROモードフラグ25と、統計情報26を含む。フリーブロックテーブルFBテーブル21は、NANDメモリ20に書き込みを行うときに書き込み用に新規に割り当てることのできるNANDメモリの物理ブロックフリーブロック:FBのIDを管理する。また、物理ブロックID毎に消去回数を管理している。バッドブロックテーブルBBテーブル22は、誤りが多いなど記憶領域として使用できない物理ブロック物理ブロックとしてのバッドブロックBBのIDを管理する。アクティブブロックテーブルABテーブル23は、用途が割り当てられた物理ブロックであるアクティブブロックABを管理する。ABテーブル23では、LBAと、アクティブブロックABのIDとの対応関係を管理する。また、物理ブロックID毎に消去回数を管理している。アクティブページテーブルAPテーブル24は、LBAと、用途が割り当てられた物理ブロックID及び物理ページIDとの対応関係を管理する。ROモードフラグ25は、出荷時及び通常時は0が書き込まれ、SSDがROモードとして動作するときに1が書き込まれる。統計情報26は、SSD10の信頼性に関わる種々のパラメータX01~X24を格納する。統計情報としては、バッドブロック数総計統計情報X01、消去回数総計統計情報X02、消去回数平均値統計情報X03、NANDメモリの書き込みエラー発生回数累積値統計情報X04、NANDメモリの消去エラー発生回数累積値統計情報X05、読み出し論理セクタ数総計統計情報X06、書き込み論理セクタ数総計統計情報X07、ECC訂正不能回数総計統計情報X08、nビット~mビットECC訂正単位総計数統計情報X09、SATA通信のRエラー発生回数統計情報X10、SATA通信のエラー発生回数統計情報X11、RAM40のエラー発生回数統計情報X12、SSD10の使用時間総計統計情報X13、温度が推奨動作温度の最高値を上回った時間累計統計情報X14、温度が推奨動作温度の最低値を下回った時間累計統計情報X15、コマンドの応答時間最大値統計情報X16、コマンドの応答時間平均値統計情報X17、NANDメモリの応答時間最大値統計情報X18、NANDの応答時間平均値統計情報X19、現在温度統計情報X20、最高温度統計情報X21、最低温度統計情報X22、統計情報増加率統計情報X23、NAND整理失敗フラグ統計情報X24などが含まれる。バッドブロック数総計統計情報X01について説明する。SSD10内のNANDメモリ20の物理ブロックが一つバッドブロックとして追加されるごとに統計情報X01が1インクリメントされる。統計情報X01はSSD10の製造時検査工程前にゼロにリセットされていることが望ましく、検査工程でエラーが発生したり、閾値分布の分布間マージンが少ないことが判明したブロックは、あらかじめバッドブロックに加えておくことがさらに望ましい。統計情報X01は、統計情報26に格納せずBBテーブル22から直接計算してもよい。統計情報X01が大きいほど信頼性が悪化していることを示す。消去回数総計統計情報X02について説明する。統計情報X02はSSD10内のNANDメモリ20の全ブロックの消去回数累計値を示す。SSD10内のNANDメモリ20の物理ブロックが一つ消去されるごとに統計情報X02が1インクリメントされる。統計情報X02はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X02はSSD統計情報26に格納せずFBテーブル21、BBテーブル22、ABテーブル23から直接計算してもよい。統計情報X02が大きいほど信頼性が悪化していることを示す。消去回数平均値統計情報X03について説明する。統計情報X03はSSD10内のNANDメモリ20の全ブロックの消去回数の1ブロックあたり平均値を示す。管理情報を格納するブロックなど一部のブロックを統計情報X03の集計対象から除外してもよい。統計情報X03はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X03は統計情報26に格納せずFBテーブル21、BBテーブル22、ABテーブル23から直接計算してもよい。統計情報X03が大きいほど信頼性が悪化していることを示す。NANDメモリの書き込みエラー発生回数累積値統計情報X04について説明する。統計情報X04はSSD10内のNANDメモリ20で書き込みエラーが1書き込み単位で発生するごとに1加算されるブロック単位で加算してもよい。統計情報X04はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X04が大きいほど信頼性が悪化していることを示す。NANDメモリの消去エラー発生回数累積値統計情報X05について説明する。統計情報X05はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。SSD10内のNANDメモリ20で消去エラーが1ブロックで発生するごとに統計情報X05が1加算される。複数のブロックをまとめて消去単位とし、この消去単位1つで消去エラーが発生するごとに統計情報X05に1加算するようにしてもよい。統計情報X05が大きいほど信頼性が悪化していることを示す。読み出し論理セクタ数総計統計情報X06について説明する。統計情報X06は、インタフェースコントローラ30が読み出しデータとしてホスト装置100に送信したデータの論理セクタ数合計である。統計情報X06はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X06が大きいほど信頼性が悪化していることを示す。書き込み論理セクタ数総計統計情報X07について説明する。統計情報X07は、RWIFコントローラ31が書き込みデータとしてホスト装置100から受信したデータの論理セクタ数合計である。統計情報X07はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X07が大きいほど信頼性が悪化していることを示す。ECC訂正不能回数総計統計情報X08について説明する。ECC訂正回路58が行うECC訂正によりエラービットが修復できなかった場合に、1読み出し単位ごとに統計情報X08を1インクリメントする。メモリコントローラ50がNANDメモリ20からデータを読み出すと、メモリコントローラ50は読み出したデータをECC訂正回路58に送信して、データ誤りがある場合はECC訂正を行い、訂正したデータをインタフェースコントローラ30を介してホストに送信する。データ誤りがECC訂正回路58によって訂正できなかった場合は、メモリコントローラは統計情報X08をカウントアップするか、訂正できなかったデータ誤り量で統計情報X08をインクリメントする。エラー訂正できなかったエラービット数の推定値を加算するようにしてもよいし、エラー訂正できなかったブロックの数を加算するようにしてもよい。統計情報X08はSSD10の製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X08が大きいほど信頼性が悪化していることを示す。nビット~mビットECC訂正単位総計数統計情報X09について説明する。n,mは自然数で、0≦n≦m≦訂正可能最大ビット数である。ECC訂正回路58がECC訂正単位たとえば物理ページに対してECC訂正を行った時、全エラービットが正常に修復され、かつ修復されたエラービット数がn以上m以下である場合、ECC訂正単位1つにつきnビット~mビットECC訂正単位総計数を1加算する。ECC訂正により1訂正単位につき最大64ビット訂正可能である場合、たとえば、1ビット~8ビットECC訂正単位総計数9ビット~16ビットECC訂正単位総計数17ビット~24ビットECC訂正単位総計数25ビット~32ビットECC訂正単位総計数33ビット~40ビットECC訂正単位総計数41ビット~48ビットECC訂正単位総計数49ビット~56ビットECC訂正単位総計数57ビット~64ビットECC訂正単位総計数の8つのパラメータを用意し、ECC訂正が正常に行われた場合、1ECC訂正単位のECC訂正につきこれら8つのパラメータのうちいずれか1つに1がインクリメントされるまたは訂正したデータ誤り量でインクリメントしてもよい。統計情報X09はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X09が大きいほど信頼性が悪化していることを示す。SATA通信のRエラー発生回数統計情報X10について説明する。統計情報X10はSATA規格におけるRエラーReceptionErrorRERRが1回発生するごとに1インクリメントされる。ホストとSSDの間で送受信されるフレームにたとえばCRCエラーなど何らかのエラーがあった場合、Rエラーとしてカウントされる。統計情報X10として、SATA規格のPhyEventCountersのカウンタのいずれかを採用してもよい。統計情報X10はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。統計情報X10が大きいほど信頼性が悪化していることを示す。SATA通信のエラー発生回数統計情報X11について説明する。統計情報X11は、その他のRエラー以外のSATA通信での異常が1回発生するごとに1インクリメントされる。たとえば、ATAインタフェース90やインタフェースコントローラ30やメモリコントローラ50がSATAGeneration3規格として設計されているにも関わらず、実際にSSD10やホスト装置100との間でネゴシエーションされた通信規格がGeneration2のようなGeneration3より低速の通信規格であった場合、SATA通信上のエラーとみなし、統計情報X11を1インクリメントする。統計情報X11はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。RAM40のエラー発生回数統計情報X12について説明する。たとえば、RAM40にECC回路やエラー検知回路を搭載している場合、ECC訂正できなかった旨の信号やエラー検知された旨の信号をRAM40からメモリコントローラ50が受け取った場合、統計情報X12を1インクリメントする。統計情報X12はSSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。SSD10の使用時間総計統計情報X13について説明する。SSD10の電源がONになっている間、メモリコントローラ50がクロックをカウントしたり内部の時計回路から時刻情報を受信することで、経過時間をインクリメントする。あるいは、メモリコントローラ50がホスト装置100から定期的にホスト装置100の時刻情報を受信するようにし、その時刻情報の差分をインクリメントするようにしてもよい。統計情報X13は、SSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。温度が推奨動作温度の最高値を上回った時間累計統計情報X14について説明する。たとえば、SSD10の基板上、メモリコントローラ50内、NANDメモリ20内など、SSD10内に温度計が実装されている場合、メモリコントローラ50は温度計から定期的に温度情報を受信する。受信した温度が推奨動作温度たとえば100°Cを上回った場合、メモリコントローラ50はクロックや内部の時計やホスト装置100から取得する時刻情報をもとに、推定動作温度以上で動作している時間数をインクリメントしていく。SSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。温度が推奨動作温度の最低値を下回った時間累計統計情報X15について説明する。SSD10内に温度計が実装されている場合、メモリコントローラ50は温度計から定期的に温度情報を受信する。受信した温度が推奨動作温度たとえば-40°Cを下回った場合、メモリコントローラ50はクロックや内部の時計やホスト装置100から取得する時刻情報をもとに、推定動作温度以上で動作している時間数をインクリメントしていく。統計情報X15は、SSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。コマンドの応答時間最大値統計情報X16について説明する。統計情報X16は、ホスト装置100からコマンドを受信してから、ホスト装置100へ応答するまでまたはコマンド実行完了するまでに要した時間またはクロック数の最大値である。X16を上回る応答時間が発生した場合は、この応答時間をX16に上書きする。コマンドそれぞれに対して統計情報X16を保持してもよい。SSD10製造時検査工程前またはSSD10出荷時にはX16がゼロにリセットされていることが望ましい。なお、たとえばコマンドの応答時間としては、SSD10の読み出し応答時間:SSD10がホスト100よりリード要求を受信してから、読み出したデータをホスト100に対し送信完了するまでの時間SSD10の書き込み応答時間:SSD10がホスト100よりライト要求を受信してから、書き込み完了通知をホスト100に対し返すまでの時間。または、SSD10がホスト100よりライト要求を受信してから、ホスト100より書き込みデータを受信完了するまでの時間。などがある。応答時間は、例えば、メモリコントローラ50の内部クロックをカウントすることによって計時すればよい。コマンドの応答時間平均値統計情報X17について説明する。統計情報X17は、ホスト装置100からコマンドを受信してから、ホスト装置100へ応答するまでまたはコマンド実行完了するまでに要した時間またはクロック数の平均値である。たとえば応答時間リストを一定数RAM40に保持しておき、その応答時間リストの平均値を算出することにより得られる。コマンドそれぞれに対して統計情報X17を保持してもよい。SSD10製造時検査工程前またはSSD10出荷時にはX17がゼロにリセットされていることが望ましい。NANDメモリの応答時間最大値統計情報X18について説明する。統計情報X18は、メモリコントローラ50がNANDメモリ20に命令してから応答を得るまたはコマンド実行完了通知を受信するまでに要した時間またはクロック数の最大値である。X18を上回る応答時間が発生した場合は、この応答時間をX18に上書きする。コマンドそれぞれに対して統計情報X18を保持してもよい。SSD10製造時検査工程前またはSSD10出荷時にはX18がゼロにリセットされていることが望ましい。なお、たとえばNANDメモリの応答時間としては、NANDメモリ20の読み出し応答時間:メモリコントローラ50がNANDメモリ20に対しリード要求を発行してから、NANDメモリ20からのデータ読み出しが完了するまでの時間NANDメモリ20の書き込み応答時間:メモリコントローラ50がNANDメモリ20に対しライト要求を発行してから、NANDメモリ20へのデータ書き込みが完了するまでの時間NANDメモリ20の消去応答時間:メモリコントローラ50がNANDメモリ20に対し消去命令を発行してから、NANDメモリ20の消去が完了するまでの時間などがある。応答時間は、例えば、メモリコントローラ50の内部クロックをカウントすることによって計時すればよい。NANDメモリの応答時間平均値統計情報X19について説明する。統計情報X19は、メモリコントローラ50がNANDメモリ20に命令してから応答を得るまたはコマンド実行完了通知を受信するまでに要した時間またはクロック数の平均値である。たとえば応答時間リストを一定数RAM40に保持しておき、その応答時間リストの平均値を算出することにより得られる。コマンドそれぞれに対して統計情報X19を保持してもよい。SSD10製造時検査工程前またはSSD10出荷時にはX19がゼロにリセットされていることが望ましい。現在温度統計情報X20について説明する。SSD10内に温度計が実装されている場合、メモリコントローラ50は温度計から定期的に温度情報を受信する。メモリコントローラ50は温度計から最後に受信した温度を現在温度として統計情報X20に保持する。この値が極端に大きいとたとえば85°C以上、SSD10の信頼性に悪影響があり、また、この温度が極端に小さいとたとえば-10°C以下、SSD10の信頼性に悪影響があると判断する。最高温度統計情報X21について説明する。メモリコントローラ50は、現在温度X20の最大値を最高温度として統計情報X21に保持する。この値が極端に大きいとたとえば85°C以上、SSD10の信頼性に悪影響がある。メモリコントローラ50は、X21よりも大きい現在温度を温度計から受信した時、X21を現在温度に書き換える。SSD10製造時検査工程前またはSSD10出荷時にはX21がSSD10の動作温度にくらべて十分に小さい温度たとえば-40°Cにリセットされていることが望ましい。最低温度統計情報X22について説明する。メモリコントローラ50は、現在温度X20の最小値を最低温度として統計情報X22に保持する。この値が極端に小さいとたとえば-40°C以下、SSD10の信頼性に悪影響がある。メモリコントローラ50は、X22よりも小さい現在温度を温度計から受信した時、X22を現在温度に書き換える。SSD10製造時検査工程前またはSSD10出荷時にはX22がSSD10の動作温度にくらべて十分に大きい温度たとえば120°Cにリセットされていることが望ましい。統計情報増加率統計情報X23について説明する。統計情報X01~X19の最新でない情報たとえば一定時刻前や、SSD10をパワーオンした時の値や前回SSD10をパワーダウンしたときの値などを別途保持しておく。統計情報X23は、例えば、下記のいずれかで定義される。統計情報増加率=最新統計情報―旧情報統計情報増加率=最新統計情報―旧情報/旧情報を取得してからの経過時間統計情報増加率=最新統計情報―旧情報/旧情報を取得してからのNANDアクセス回数SSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。NAND整理失敗フラグ統計情報X24について説明する。統計情報X24が1になっていると、NAND整理によっても動作に十分な数のフリーブロック数を確保できないことになる。SSD10製造時検査工程前にゼロにリセットされていることが望ましい。この値が大きいほど信頼性が悪化していることを示す。統計情報26としては、上述したすべてのパラメータを格納してもよいし、これらの一部あるいはどれか一つのみを格納してもよい。統計情報26は最新情報をRAM40上に保持し、定期的にNANDメモリ20にバックアップすることが望ましい。一方、RAM40やNANDメモリ20のどちらか一方にのみ保存するようにしてもよいし、当該統計情報をホスト装置100に送信して、ホスト装置100やホスト装置100に接続された記憶装置に保存するようにしてもよい。つぎに、図14を用いてSSD10での書き込み動作を説明する。SSD10がホスト100からライト要求を受信した場合はステップS100、メモリコントローラ50はRAM40上のフリーブロックテーブル21を検索しステップS101、現在のフリーブロック数を取得する。そして、メモリコントローラ50は、フリーブロック数が所定の閾値より少ない場合はステップS102、後述するNAND整理を行いステップS120、フリーブロック数が所定の閾値より多い場合はステップS102、フリーブロックテーブル21から新たにフリーブロックを確保し、確保したフリーブロックの物理ブロックIDを取得する。そして、メモリコントローラ50は、取得したフリーブロックに対して書き込み動作を行いステップS103、さらにホスト100から受信したLBA及び物理ブロックID及び当該物理ブロックの消去回数をアクティブブロックテーブル23に追加し、さらにLBA、物理ブロックID及び物理ページIDをアクティブページテーブル24に追加しステップS104、書き込みを行った物理ブロックをフリーブロックテーブル21から削除するステップS105。メモリコントローラ50は以上の書き込み処理の内容を統計情報26に反映する。つぎに、図15を用いてSSD10でのNAND整理図14:ステップS120の動作例を説明する。物理ブロックに含まれる全ページのうちアクティブページテーブル24に登録されているページ有効ページはLBAに対応付けられている。一方、物理ブロックに含まれている全てのページが有効ページであるとは限らず、有効ページに該当しないページ無効ページはLBAに対応付けられていない。有効ページとは最新のデータを記憶しているページであり、無効ページとは同一LBAのデータが他の場所に書きこまれ、参照されることがなくなったページである。物理ブロックは無効ページの分だけデータに空きがあることになり、有効ページのデータを集めて違うブロックに書き直すNAND整理を実行することでフリーブロックを確保することができる。まず、行番号i=0にし、空き領域累計数S=0にするステップS121。メモリコントローラ50は、アクティブブロックテーブル23の先頭行i=0を読み出し、先頭行の物理ブロックID現在物理ブロックIDを取得するステップS122。つぎに、アクティブページテーブル24を読み出し、アクティブページテーブル24における現在物理ブロックIDに対応する有効ページのIDをすべて取得するステップS123。そして、メモリコントローラ50は、取得した有効ページIDの個数分のサイズを物理ブロックのサイズから減算することで、現在物理ブロックのうち無効ページのサイズvを求めステップS124、v>0であるときはステップS125、現在物理ブロックをNAND整理対象ブロックリストに加えるステップS127。さらに、メモリコントローラ50は、空き領域累計数Sに現在物理ブロックの無効ページサイズvを加算し、空き領域累計数Sを更新するステップS128。ステップS125でv=0である場合、あるいはステップS125で空き領域累計数Sが物理ブロックサイズに到達していない場合は、メモリコントローラ50は、列番号iを1しステップS126、アクティブブロックテーブル23の次の行i=1を読み出し、次の行の物理ブロックID現在物理ブロックIDを取得するステップS122。以下同様にして、ステップS123~S128の手順を実行する。そして、ステップS129で空き領域累計数Sが物理ブロックサイズに到達するまで、ステップS122~S129の手順を繰り返す。そして、ステップS129において、これまでに取得した無効ページのサイズ総量Sが物理ブロックのサイズより大きくなった場合は、メモリコントローラ50は、NAND整理対象ブロックリスト上の全有効ページのデータをNANDメモリ20から読み出してRAM40に書き込みステップS130、さらに、NAND整理対象ブロックリスト上の全物理ブロックに対して消去処理を行いステップS131、消去処理を行った全物理ブロックをアクティブブロックテーブル23から削除してフリーブロックテーブル21に追加しその際、消去回数をインクリメントする、読み出した全ページをアクティブページテーブル24から削除するステップS132。そして、メモリコントローラ50は、フリーブロックテーブル21から新たなフリーブロックを取得し、取得したフリーブロックに対しRAM40に書き込んだデータを書き込みステップS133、データを書き込んだフリーブロックの物理ブロックID、対応するLBA及び当該ブロックの消去回数をアクティブブロックテーブル23に追加し、さらにデータを書き込んだページ及び対応するLBAをアクティブページテーブル24に追加しステップS134、データが書き込まれたブロックのブロックIDをフリーブロックテーブル21から削除するステップS135。メモリコントローラ50は上記NAND整理の処理内容を統計情報26に反映する。なお、ステップS131の消去処理はステップS120のNAND整理内では行わずに、ステップS103の書き込み動作直前におこなって消去回数をインクリメントするようにしてもよい。このようなNAND整理により、書き込みに対し十分な数のフリーブロックを確保できるのが通常である。NAND整理によっても、書き込みに対し十分な数のフリーブロックを確保できなかった場合はステップS136、後述するROモード移行処理を行うステップS137。上記NAND整理は、ホスト100からライト要求を受信した時だけでなく、ホストから最後に命令を受信してから所定時間経過した時、またはホスト100からスタンバイやアイドル状態に移行するコマンドを受信した時などに実行してもよい。つぎに、図16を用いてSSD10での読み出し処理について説明する。SSD10がホスト100からリード要求を受信した場合はステップS140、メモリコントローラ50は、アクティブブロックテーブル23を検索しステップS141、ホスト100から受信したLBAに対応する物理ブロックIDがアクティブブロックテーブル23に存在するか否かを調べるステップS142。アクティブブロックテーブル23に物理ブロックIDが存在する場合は、メモリコントローラ50は、アクティブページテーブル24の該当物理ブロックIDに含まれる物理ページIDを取得しステップS144、取得した物理ページIDに対応する物理ページからデータを読み出しステップS145、読み出したデータを、RAM40を介してホスト100へ送信するステップS146。メモリコントローラ50は以上の読み出し処理の内容を統計情報26に反映する。ステップS142において、ホスト100から受信したLBAに対応する物理ブロックIDがアクティブブロックテーブル23上に存在しない場合、メモリコントローラ50は、NANDメモリ20からの読み出し動作を行わずに、例えば全ビットが‘0’であるデータを、ホスト100からの要求に対応するデータ長分、ホスト100に送信するステップS143。次に、図17を用いてSSD10でのエラー処理について説明する。ホスト100からのライト要求やリード要求に対する処理は通常は上記のように行われるが、NANDメモリ20に対する書き込み動作プログラム動作で書き込みエラーが発生する場合、NANDメモリ20に対する消去動作で消去エラーが発生する場合、NANDメモリ20に対する読み出し動作の際にECCErrorCorrectingCodeエラー誤り訂正処理の失敗が生じる場合などがあり、これらに対する例外処理が必要となる。メモリコントローラ50は、上記の何れかのエラーが発生した場合ステップS150、エラーが発生した物理ブロックをバッドブロックテーブル22に追加しステップS151、エラーが発生した物理ブロックをアクティブブロックテーブル23及びフリーブロックテーブル21から削除することでステップS152、以後は、エラーが発生した物理ブロックにアクセスできないようにする。この際、エラーが発生した物理ブロックのデータを別の物理ブロックにコピーしてもよい。メモリコントローラ50は上記のエラー処理の内容を統計情報26に反映する。これらエラー処理の一例を、読み出し処理、書き込み処理、NAND整理処理の解説において紹介したが、このエラー処理はこれらの例に限らず、NANDメモリ20に対する全ての読み出し処理、書き込み処理、消去処理に対して適用可能であることは言うまでもない。SSD10を利用しているうちに、例えば、NANDメモリ20の各ブロックの信頼性が劣化していき、バッドブロックの数が増えていき、フリーブロック数とアクティブブロック数の和が減っていくことになる。さらにSSD10を使用していると、NAND整理を行っても、書き込み処理を行うのに十分なフリーブロック数を確保できなくなり、これがSSD10の寿命である。このような場合に、ROモード移行条件が成立したと判断して、ROモード移行処理を行う。次に、図18を用いてSSD10でのROモード移行処理について説明する。SSD10が動作中、メモリコントローラ50は、統計情報26を監視することにより、ROモード移行条件が成立したか否かを判定しているステップS160。ROモード移行のクライテリアとしてのRMAXとして、たとえば、RMAX=信頼性保証できる統計情報の値の上限値を採用する。RMAXは各統計情報X01~X19、X23、X24に対して、それぞれ別の値を採用することができる。RMAXは、たとえば図19に示すように、統計情報の生の値RawDataと、SSD10の不良率の関係を開発段階に導き出し、不良率が許容値たとえば100ppmを超える時の統計情報の生の値をRMAXとして採用することが望ましい。不良率として、SSD10の不良率の代わりにSSD10に書き込まれたデータの不良率や、NANDメモリ20の不良率や、NANDメモリ20のメモリセルの不良率などその他不良率を採用してもよい。たとえば、SSD10の開発段階で、多数個たとえば100個の試験用SSD10群に対して高温で書き込み動作を繰り返しながら、書き込んだデータが一定時間以上正しく記憶され続けるかを検証する摩耗試験を行い、同時に統計情報をモニタしつづけ、不良率が一定割合に到達する時点での前記統計情報の生の値をRMAXとして採用すればよい。たとえば、摩耗したSSD10のLBA全域に対して高温状態たとえば75°Cで初期条件としてデータたとえばランダムデータを書き込み、高温状態たとえば85°Cである時間以上放置して、その後SSD10の温度を下げたとえば25°C、SSD10のLBA全域に対して読み出し動作を行い、読み出したデータがECC訂正できない場合またはECC訂正できないデータが一定数以上の場合、または読み出したデータと初期条件で書き込んだデータが一致しない場合、または読み出しができなかった場合、これをSSD10の不良として定義し、不良したSSD10の数を、試験を行ったSSD10の数で割った値を不良率として採用すればよい。この不良率が、前述した許容できる不良率を統計的に有意に下回る統計情報の生の値をRMAXとして採用すればよい。RMAXにある程度マージンをもたせて、RMAX ́=RMAX-マージンとしたRMAX ́をRMAXとして採用してもよい。また、RMAXは開発時の設計シミュレーションによって求めてもよい。たとえば、設計シミュレーションにより、SSD10の不良率などの不良率がある一定値以上となるような統計情報の値を求めておき、その値をRMAXとして採用する。また、RMAXは、図20に示すように、SSD10の性能読み出し性能や書き込み性能などが所定値以下となる統計情報の値をSSD10の測定やシミュレーションにより特定し、これをRMAXとして採用してもよい。たとえば、NANDメモリの信頼性が悪化するとNANDメモリのメモリセルから読み出されるデータが誤っている確率が増大するため、データ読み出し時のECC訂正に要する時間が増大し、SSD10の信頼性とSSD10の読み出し性能との間には強い相関が現れる可能性がある。たとえば、シーケンシャルな読み出し性能の測定として、以下の性能測定を行う。1.SSD10に対し、ACS2のF4hSECURITYERASEUNITを行う。2.SSD10のLBA全域に対し、データたとえばランダムなデータをシーケンシャルに書き込む。3.全LBAに対してシーケンシャルに読み出しを行い、単位時間あたりに読み出されたデータ量平均値単位MiB/sを求める読み出し速度。その他、性能情報たとえば性能速度の測定には、非特許文献6に記述されるような規格に従い測定を行ってもよい。このようにして、図20に示すように、性能情報の統計情報依存性を求め、たとえばSSD10の出荷時のシーケンシャルな読み出し速度期待値が400MiB/sであって、公開スペックの規定などにより許容できる最低性能が300MiBである場合、読み出し速度期待値が300MiBとなるような統計情報の値を求め、これをRMAXとして採用すればよい。このように、RMAXは開発者が任意に定めることができ、上記に示した以外の方法や基準によっても定めることが可能である。メモリコントローラ50はRMAXと統計情報の値X01~X19、X23、X24のいずれかを比較し、統計情報の値>RMAX、または統計情報の値≧RMAXとなった時、SSD10が寿命に到達しROモードに移行すべきと判断するステップS160:Yes。たとえば、NAND整理失敗フラグ統計情報X24の場合、これが1である場合にSSD10が寿命に到達しROモードに移行すべきと判断する。たとえば、バッドブロック数総計統計情報X01の場合、これが所定値を上回った場合にSSD10が寿命に到達しROモードに移行すべきと判断する。メモリコントローラ50は統計情報の値X01~X19、X23、X24のいずれかのうち複数個をそれぞれRMAXと比較し、いずれか一つがRMAX以上である場合にROモードに移行すべきと判断するようにしてもよい。上記のようにして、メモリコントローラ50はSSD10が寿命に到達したか否かSSD10が異常状態であるか否かを判定し、SSD10が寿命に到達したと判定された場合SSD10が異常状態であると判定された場合、後で詳述するROモード移行処理を行うステップS160:Yes。なお、たとえば統計情報として現在温度X20、最高温度X21を採用する場合、たとえばRMAXとしてRMAX=85°Cを採用し、統計情報の値>RMAX、または統計情報の値≧RMAXのようなたとえば動作保証外の温度になった時、SSD10が異常状態でROモードに移行すべきと判断しステップS160:Yes、その後、統計情報の値≦RMAX-MAXマージン、または統計情報の値<RMAX-MAXマージンとなって正常温度にもどったとき、SSD10が正常状態にもどったためROモードから通常モードに移行すべきと判断することが望ましいステップS160:No。MAXマージンはゼロ以上の値であるが、ROモードと通常モードとの切り替えが頻繁に発生することを防止するために、MAXマージンはゼロより大きい値とすることが望ましいたとえばMAXマージン=5°C。本実施形態において紹介した統計情報X01~X19、X23、X24以外にも、統計情報は種々の形態をとりうるが、本発明はこれらに対しても適用可能である。また、X01~X19、X23、X24と不良率の関係には正の相関関係が存在するが、不良率と負の相関関係が存在する統計情報に対しても本発明は適用可能であるたとえば、SSD10が出荷後に体験した最低温度など。その場合、RMAXの代わりに、信頼性保証できる下限値RMINを採用し、統計情報がRMINを下回った場合にSSD10が寿命に到達したと判断し、ROモードに移行すればよい。特に、たとえば統計情報として現在温度X20、最低温度X22を採用する場合、たとえばRMINとしてRMIN=-10°Cを採用し、統計情報の値<RMIN、または統計情報の値≦RMINのようなたとえば動作保証外の温度になった時、SSD10が異常状態でROモードに移行すべきと判断しステップS160:Yes、その後、統計情報の値≧RMINMINマージン、または統計情報の値>RMINMINマージンとなって正常温度にもどったとき、SSD10が正常状態にもどったためROモードから通常モードに移行すべきと判断することが望ましいステップS160:No。MINマージンはゼロ以上の値であるが、ROモードと通常モードとの切り替えが頻繁に発生することを防止するために、MINマージンはゼロより大きい値とすることが望ましいたとえばMINマージン=5°C。SSD10が寿命に到達していなくても、統計情報があらかじめ定められたRMAXを上回ったり、あるいは通常動作ではありえない異常値を示した場合などにおいても、ROモード移行処理を行うことが望ましい。ROモード移行条件が成立するとステップS160:Yes、つぎのようなROモード移行処理が開始される。まず、メモリコントローラ50は、現在行われているNANDメモリ20に対する書き込み処理を全てキャンセルしステップS161、ホスト100から受信した全てのライト要求に対してエラーを返し、ホスト100から受信したライト要求のキュー全てを削除するのが望ましいステップS162。つぎに、メモリコントローラ50は、NANDメモリ20上の管理情報におけるROモードフラグ25に1を書き込むステップS163。この時、RAM40上の管理情報のうち、ROモードフラグ25以外のテーブルを全てNANDメモリ20上の管理情報に反映させてもよい。その後、SSD10は電源を遮断されるかリセットされるまで、ホスト100から受信したライト要求の全てに対してエラーを返すステップS164、S165。つぎに、図21を用いてSSD10の起動処理について説明する。SSD10が起動すると、IPL55がNANDメモリ20上の管理情報におけるROモードフラグ25を読み出しステップS170、ROモードフラグ25を判別するステップS171。ROモードフラグ25が0である場合はステップS171、IPL55は、通常モードにすべく、インタフェースコントローラ30のRWIFコントローラ31を有効にしステップS172、その後RAM40にNANDメモリ20上の管理情報を読み出すステップS173。一方、ROモードフラグ25が1である場合は、IPL55は、ROモードにすべく、ROIFコントローラ32を有効にしステップS174、その後RAM40にNANDメモリ20上の管理情報を読み出すステップS175。ROモードにおいては、SSD10は書き込みをサポートしない読み出し専用デバイスとして振る舞う。なお、ROモードに移行後は、SSD10は読み出し動作のみを行えばよいので、読み出し動作の速度が速くなるように管理テーブル内の情報を再配置するようにしてもよい。つぎに、ホスト100側の動作について説明する。まず、図22を用いてホスト100の起動時の動作を説明する。ホスト100が起動すると、ホスト100はSSD制御ツール110を起動するステップS201。OS150がWindows登録商標である場合は、SSD制御ツール110を例えばスタートアップ登録したりあるいはサービスプログラム登録したりすることで、SSD制御ツール110を起動時の常駐プログラムに設定しておくことで、SSD制御ツール110を自動起動させることが可能となる。また、ホスト100の起動に用いられるシステムディスクとしては、SSD10でもよいし、予めシステムをインストールされているSSD10とは別に用意されたSSDまたはハードディスクドライブHDDでもよいし、ブートプログラムをインストールされたDVD-ROM、CD-ROM、USBメモリなどでもよい。SSD制御ツール110が起動されると、SSD制御ツールはSSD10のデバイス情報を取得するべく、SSD100に対しデバイス識別情報の送信要求を送信する。前述したように、SSD10において、RWIFコントローラ31が有効である場合、SSD制御ツール110は、たとえばACS2で記述されているDeviceSignatureにおけるLBAやLBAを通じてSSD10がATAデバイスであることを認識でき、RWIFコントローラ31は、ホスト100からたとえばACS-2記載のEChIDENTIFYDEVICEなどのデバイス識別情報の送信要求を受信したときは、自身が読み書き両方可能なデバイスであるという識別情報をホスト100に対して送信する。また、SSD10において、ROIFコントローラ32が有効である場合、SSD制御ツール110は、たとえばACS2で記述されているDeviceSignatureにおけるLBAやLBAを通じてSSD10がATAPIデバイスであることを認識でき、ROIFコントローラ32は、ホスト100からたとえばMMC6記載の46hGETCONFIGURATIONなどのデバイス識別情報の送信要求を受信したときは、自身が書き込みをサポートしていないというデバイス識別情報をホスト100に対して送信する。このようにして、SSD制御ツール110は、SSD10からデバイス識別情報を取得するステップS202。SSD10がリードオンリデバイスであるか否かの通知方法はこれ以外の様々な形態をとってもよい。SSD制御ツール110は、SSD10から返ってきた情報が、書き込み非サポートのデバイスである場合はステップS203、SSD10をROモードとして動作させるべく、選択スイッチ123,124を切り替え設定して、RWIFドライバ121を無効にしステップS206、ROIFドライバ122を有効にするステップS207。一方、SSD10から返ってきた情報が、書き込み非サポートのデバイスでない場合ステップS203、SSD制御ツール110は、SSD10を通常モードとして動作させるべく、選択スイッチ123,124を切り替え設定して、ROIFドライバ122を無効にしステップS204、RWIFドライバ121を有効にするステップS205。つぎに、図23を用いてホスト100が動作中におけるSSD制御ツール110の動作を示す。SSD10がROモードに移行したことを迅速に検知するためには、SSD制御ツール110は、SSD10が通常モードであるときは、ホスト100からのライト要求に対するSSD10からの応答を監視し続けることが望ましいステップS210。なお、SSD10がROモードである時は、SSD10にはライト要求が送信されないため、SSD制御ツール110は、SSD10の応答を監視しなくてもよい。通常モードでSSD10へ送信されたライト要求に関して、エラーが返ってきたとき1回のエラーでもよいし、複数回のエラーでもよい、SSD制御ツール110は、SSD10が図18に示したROモード移行処理を開始して全てのライト要求に対してエラーを返している状態であると判断し、RWIFドライバ121を無効化するステップS211。SSD10を書き込み専用デバイスとして迅速に認識させる観点では、SSD制御ツール110は、SATA規格のCOMRESETや、ACS-2記載のSCTCommandTransportのベンダ独自のコマンドや、その他ベンダ独自のコマンドなどを用いて、SSD10にリセットコマンドを送るなどしてSSD10を再起動させることが望ましいステップS212。この再起動処理またはユーザによるコンピュータシステム1の再起動またはSSD10の電源OFF/ONにより、SSD10は図21に示した処理を行うことで、ROモードに移行する。また、SSD制御ツール110は、ROIFドライバ122を有効化するステップS213。以上のようにして、ホスト100は、SSD10がROモード移行化処理開始直後及びROモード中において、SSD10を利用不可能な外部記憶装置として誤認識することなくSSD10に対する読み出し処理を確実に行うことができる。図24は、ホスト100にOSとしてWindows登録商標が用いられているときのドライブ表示を示すものであり、ドライブDとしてSSDが接続されているとする。SSDが通常の読み書き可能な状態にあるときは、図24aに示すように、ドライブDの種類はローカルディスクと表示される。しかし、SSD制御ツール110が、図22、図23の処理によってドライブDを書き込み非サポートのデバイスであると認識した後は、図24bに示すように、ドライブDの種類は例えばCD-ROMやDVD-ROMやROMドライブと表示される。ところで、上記では、SSD10において、図18におけるROモード移行条件に用いる統計情報として、統計情報X01~X19、X23、X24を採用するようにしたが、他の統計情報を用いて、ROモード移行条件の成立を判定するようにしてもよい。例えば、SSD10において、特開2009-217603号公報に記載されているクラスタという管理単位が導入されている場合、バッドクラスタ数をROモード移行条件に採用してもよい。クラスタサイズは、セクタサイズの2以上の自然数倍であり、クラスタアドレスは、LBAの所定のビットから上位のビット列で構成される。SSD10では、管理情報として、バッドクラスタのクラスタアドレスクラスタIDを管理するバッドクラスタテーブルを保有する。そして、例えば、NANDメモリ20から読み出しを行った時にECC訂正回路58でのECC処理の際にECC訂正エラーが発生すると、メモリコントローラ50はECC訂正エラーが発生したクラスタをバッドクラスタテーブルに登録する。このバッドクラスタテーブルの登録内容に基づきバッドクラスタ数を取得することが可能である。したがって、SSD10が通常モードで動作しているとき、メモリコントローラ50は、RAM40に記憶された管理情報におけるバッドクラスタテーブルの例えばエントリ数に基づき現在のバッドクラスタ数を取得し、取得したバッドクラスタ数を閾値と比較し、バッドクラスタ数が閾値以上である時、ROモード移行条件が成立したと判定する。また、図18、図21のフローチャートでは、SSD10においてROモードフラグ25を介在させることによって、SSD起動時にリードオンリーモード移行条件が成立しているか否かを判定したが、起動時、上述したROモード移行条件に用いる各種管理情報のうちの少なくとも1つがROモード移行条件を満足しているか否かを直接判定することで、リードオンリーモードに移行するか否かを決定するようにしてもよい。つぎに、ホスト100に搭載されるSSD制御ツール110の処理についての変形例について説明する。例えば、図23に示した動作手順に代えて、図25に示すような動作手順を採用してもよい。図25においては、SSD10が通常モードで動作しているとき、SSD制御ツール110は、定期的にSSD10に対してSSD10の統計情報を取得するためのコマンドを発行するステップS220。このコマンドとして、例えば、メモリの自己診断機能であるSMARTSelfMonitoringAnalysisandReportingTechnologyのコマンドであるSMARTREADDATAB0hD0hまたはACS2に記述されているSCTCommandTransportまたはベンダー独自のコマンドを採用してもよい。このSMARTの情報を受信したSSD10においては、メモリコントローラ50が統計情報X01~X19、X23、X24の一つまたは一部または全てを取得し、取得した統計情報をホスト100に返信する。このSSD10から返信された統計情報を受信することで、SSD制御ツール110は、統計情報を取得するステップS221。図26は、統計情報X01~X19、X23、X24に関する管理テーブルを示すものである。例えば、B0hD0hSMARTREADDATAを用いる場合、図26に示すように、統計情報26の構成要素X01~X19、X23、X24などそれぞれに対し、属性IDattributeIDを割り当てるが、属性IDをこれら構成要素の一部のみに割り当ててもよいのはもちろんである。これら統計情報26の構成要素に関し、規格化後、最良値としてSMABを採用し、規格化後の信頼性保証下限値としてSMALSMABAMALR0≦AMALR<1SMALは整数で、四捨五入、小数点以下切り上げ、小数点以下切り上げのいずれかにより少数から整数に変換されるを採用し、attributevalue=SMALSMAB×1AMALR×/RMAXattributeThreshold=30固定値生の値=統計情報の生の値により、メモリコントローラ50は、SMART情報のattributevalue図26のValueを計算してSSD制御ツール110に送信する。attributeThresholdは、図26のThresholdであり、生の値は、図26のRawDataである。規格化後の最良値SMABは任意の自然数であればよく、たとえばSMAB=100を採用してもよい。AMALRは0≦AMALR<1をみたす任意の数であればよく、たとえばAMALR=0.3を採用してもよい。また、RMAX、AMALRおよびSMABは各X01~X19、X23、X24に対して、それぞれ別の値を採用することができる。SMAB=100で、AMALR=0.3を採用した時、採用対象の統計情報に関してattributevalueの最良値が100たとえば出荷直後に100になっており、信頼性が劣化するにつれて徐々に減少していき、SSD10が信頼性保証できなくなったとき統計情報の生の値がRMAXに等しいかそれ以上になったとき、attributevalueが30かそれ以下の値に到達することになる。AttributeValueがThresholdを超過しているか否かを検知する手段として、ACS2に記載のコマンドであるB0hDAhSMARTRETURNSTATUSを用い、当該コマンドのOutputからAttributeValueがThresholdを超過しているか否かを判断してもよい。図26のWorstをSSD制御ツール110がSSD10の寿命を診断する仕様として採用してもよい。Worstはattributevalueの最悪値としてメモリコントローラ50に計算される。たとえば、X01~X19、X23の場合、Worstは、たとえばSSD10が出荷後のまたは製造後の、attributevalueの最小値である。あるいは、Worstとして、過去ある一定時間範囲内のattributevalueの最小値をWorstValueとして採用してもよいし、ある一定回数一定データ量通信または処理が行われた過去にさかのぼって、その過去から現在に至るまでの最小値をworstvalueとして採用してもよい。図26のRawDataRawValueをSSD制御ツール110がSSD10の寿命を診断する仕様として採用してもよい。統計情報たとえば、X01~X19、X23、X24の生の値がRawDataとしてSSD10からSSD制御ツール110に送信される。この場合、SSD制御ツール110は、RMAXをSSD制御ツール110内にすでに保持しているかSSD10から別途読み出すかその他記憶装置から読み出すかしてRMAXを取得し、RMAXとRawDataを比較し、RawData>RMAXまたはRawData≧RMAXとなった時、SSD10が寿命に到達したと判断する。たとえば、NAND整理失敗フラグの場合、これが1である場合にSSD10が寿命に到達したと判断する。たとえば、バッドブロック数総計の場合、これが所定値を上回った場合にSSD10が寿命に到達したと判断する。RawDataとして、必ずしも統計情報の生の値を出力する必要はなく、たとえば、統計情報の生の値を四則演算した値をRawDataとしてメモリコントローラ50がSSD制御ツール110に送信し、同じくRMAXを四則演算した値と比較することで判定を行ってもよい。また、統計情報の生の値を暗号化したデータをRawDataとしてメモリコントローラ50がSSD制御ツール110に送信し、メモリコントローラ50がこれを復号化して復号化後のデータをRMAXと比較することで判定を行ってもよい。SSD制御ツール110は、取得した統計情報を所定の閾値、たとえばRMAXやRMINなどと比較しステップS222、SSD10の統計情報がRMAXを上回っている時またはX24=1である時、または統計情報がRMINを下回っている時などSSD10が寿命に到達したあるいは寿命寸前であるか、あるいは異常状態であるかと判断される場合ステップS222:Yes、図23と同様、RWIFドライバ121を無効化するステップS223。SSD制御ツール110は、SSD10を再起動してもよいステップS224。SSD10再起動後、SSD制御ツール110はROIFドライバ122を有効化するステップS225。また、SSD10が通常モードであるときのホスト100での動作として、図27に示すような動作手順を採用してもよい。この動作手順では、SSD10が通常モードで動作しているとき、SSD制御ツール110は、定期的にSSD10に対してSMARTのコマンドであるSMARTREADDATAまたはベンダー独自のコマンドを発行するステップS240。このSMARTの情報を受信したSSD10においては、メモリコントローラ50がRAM40に記憶された管理情報におけるバッドクラスタテーブルの例えばエントリ数に基づき現在のバッドクラスタ数を取得し、取得したバッドクラスタ数をホスト100に返信する。このSSD10から返信されたバッドクラスタ数を受信することで、SSD制御ツール110は、バッドクラスタ数を取得するステップS241。SSD制御ツール110は、取得したバッドクラスタ数を所定の閾値と比較しステップS242、SSD10のバッドクラスタ数が閾値以上である時、図13と同様、RWIFドライバ121を無効化しステップS243、SSD10を再起動しステップS244、ROIFドライバ122を有効化するステップS245。また、SSD制御ツール110にバックアップ機能を搭載してもよい。SSD10がリードオンリーモードに移行している状態では、SSD10のデータリテンション特性が悪化していると考えられるため、できるだけ早急にSSD10上のユーザデータを他の2次記憶装置に退避させることが必要である。図28は、SSD制御ツール110がバックアップ機能を搭載している場合の、ホスト100の構成を示す図である。ホスト100には、2次記憶装置他のSSD、ハードディスクドライブ、携帯ディスク記憶媒体など130が接続されており、ホスト100のOSと2次記憶装置400とは2次記憶装置用ドライバ401を介して通信を行う。図29は、バックアップを行う場合のSSD制御ツール110の動作例を示すものである。図29では、図22に示したSSD制御ツール110の動作手順にステップS208を追加している。ステップS208でのバックアップの際、SSD制御ツール110は、SSDがリードオンリーモードに移行しています。SSDのデータをバックアップしますかなどのメッセージとバックアップの可否を選択するOKボタン及びキャンセルボタンを表示する。そして、OKボタンがクリックされるとバックアップが開始され、キャンセルボタンがクリックされるとバックアップは行われずにメッセージの表示が消える。ROIFドライバ122に対し、SSD10の全LBAのデータを読み出すよう命令を送る。SSD制御ツール110は、SSD10から読み出したデータのLBASSDのLBAと同一のLBA2次記憶装置400上のLBAに、SSD10から読み出したデータを書き込むように、2次記憶装置用ドライバ401に対して命令を送る。例えば、SSD10上のLBA=0hのデータは2次記憶装置400上のLBA=0hにコピーされる。また、SSD10上のLBA=234c5hのデータは2次記憶装置400上のLBA=234c5hにコピーされる。なお、このバックアップ処理の際、SSD制御ツール110は、ホスト100のOSに対し、SSD10の全ファイルを2次記憶装置400にコピーするよう命令を送るようにしてもよい。この場合、OSはOSに含まれるファイル管理テーブルを参照し、SSD10の全ファイルの全LBAを取得し、取得したLBAの全データを読み出し、読み出したデータを2次記憶装置400に書き込み、書き込んだLBAとファイルのインデックスが対応付けられるようにファイル管理テーブルを更新する。また、SSD10のマスターブートレコードMBR情報をはじめとするパーティションの情報及びファイルシステム管理領域にアクセスし、使用されている領域やファイルの情報を取得し、取得した情報をもとに、SSD10のデータについてのROMイメージを作成し、作成したROMイメージを他の記憶装置に保存するようにしてもよい。また、本実施形態では、簡単のため、NANDメモリ20の物理アドレスは管理情報においてLBAに対して直接関連付けられていたが、たとえば特開2009-217603号のようにセクタサイズの2以上の自然数倍の管理単位を用いてLBAを管理し、LBAではなく、前記管理単位とNANDメモリ20の物理アドレスとの対応関係を管理情報に記述するようにしてもよい。NANDメモリ20の物理アドレスとLBAの対応関係を記述する管理情報は様々な形態をとりうるが、物理アドレスとLBAの対応関係を記述するテーブル論物変換テーブルの取る形態は、本発明の本質には影響しない。NAND型フラッシュメモリ以外の不揮発性メモリに関しても、不揮発性メモリの物理アドレスとLBAの対応関係を記述する管理情報は様々な形態をとりうるが、物理アドレスとLBAの対応関係を記述するテーブル論物変換テーブルの取る形態は、本発明の本質には影響しない。管理情報部で用いる信頼性情報にかかわりのない情報は、本発明の本質には影響しない。以上の信頼性情報についての要件は、第2の実施形態以降の実施形態にも当てはまる。このように第1の実施形態によれば、SSD10において、リードオンリーモード移行条件が成立したか否かを判定し、リードオンリーモード移行条件が成立した場合、インタフェースコントローラを読み出し専用のものに切り替えるとともに、ホスト100において、SSD10から取得した情報に基づきSSD10をリード動作のみ可能なリードオンリーメモリとして認識すべきか否かを判定し、リードオンリーメモリとして認識すべきと判断したとき、SSD制御用のインタフェースドライバを読み出し専用のものに切り替えるようにしているので、リードオンリーモードに移行したSSDをリード動作のみ可能なデバイスとして正常にホストに認識させることを可能とする。第2の実施形態第1の実施形態では、SSD10への機能実装及びホスト100への機能実装の両方を使用した。第2の実施形態では、SSD10への機能実装のみを適用した場合を示す。SSD10及びホスト100の両方に機能を実装すると最も効果的であるが、SSD10のみに機能を実装しても十分に効果を発揮することができる。図30にコンピュータシステムの第2の実施形態の構成を示す。この第2の実施形態においては、SSD10に、第1の実施形態で説明したインタフェースコントローラ30を搭載しており、ホスト100側には、SSD10用のインタフェースドライバ120を切り替えるSSD制御ツール110を搭載してはいない。図30において、図1に示した構成要素と同一機能を有する構成要素については同一符号を付し、重複する説明は省略する。第2の実施形態では、IPL55の機能をメモリコントローラ50に搭載している。第2の実施形態のSSD10においても、先の第1の実施形態で説明したSSD10の機能を全て搭載可能である。この第2の実施形態においては、メモリコントローラ50は、SSD10をリード/ライト可能な通常の状態からリードオンリーモード状態へ移行させる前述したリードオンリーモード移行条件が成立するか否かをSSD起動時あるいはSSDの動作中に前述した管理情報を用いて判定しており、リードオンリーモード移行条件が成立した場合、インタフェースコントローラ30をRWIFコントローラ31からROIFコントローラ32に切り替える。RWIFコントローラ31は、ホスト100から要求があった場合、本ドライブはリードライト可能なドライブである旨を示すデバイス識別情報をホストに送信する。ROIFコントローラ32は、ホスト100から要求があった場合、本ドライブは読み出し専用ドライブである旨を示すデバイス識別情報をホストに送信する。RWIFコントローラ31はSSD10がATAデバイスであることをホスト100に明示的に示すよう構成されるのが望ましい。たとえば、ATAATAPICommandSet2で記述されているDeviceSignatureにおいて、LBAを01hに、LBAを00hに、LBAを00hとしてホスト100に出力することで、SSD10がATAデバイスであることをホスト100に通知することができる。ROIFコントローラ32はSSD10がATAPIデバイスであることをホスト100に明示的に示すよう構成されるのが望ましい。たとえば、前記ACS2で記述されているDeviceSignatureにおいて、LBAを01hに、LBAを14hに、LBAをEBhとしてホスト100に出力することで、SSD10がATAPIデバイスであることをホスト100に通知することができる。ROIFコントローラ32は、SSD10が書き込みコマンドをサポートせず読み出し専用であることをホスト100に通知するよう構成される。例えば、ATAインタフェース90を介してホスト100から、INCITSMultiMediaCommands6に採用されているコマンドGETCONFIGURATION46hを受信したとき、ROIFコントローラ32は、RandomWritable、IncrementalStreamingWritable、WriteOnceなどのFeaturesにおいて、ライト系機能は全て非サポートであることをホスト100に返信する。なお、ROIFコントローラ32は、RWIFコントローラ31と同じく、SSD10がATAデバイスであることをホスト100に明示的に示すよう構成され、ATAインタフェース90を介してホスト100からデバイス識別情報、たとえばACS-2記載のコマンドEChIDENTIFYDEVICEを受信したとき、ライト系機能は全て非サポートであることをホスト100に返信するよう構成されてもよい。SSD10がリードオンリデバイスであるか否かの通知方法はこれ以外の様々な形態をとってもよい。例えば、第1の実施形態で用いた図18を参照すれば、SSD10が動作中、メモリコントローラ50は、ROモード移行条件が成立したか否かを判定している図18:ステップS160。ROモード移行条件の成立の具体例としては、統計情報X01~X19、X23、X24のうち少なくとも一つがRMAXを上回っている時、またはX24=1である時、または統計情報がRMINを下回っている時、などのようにSSD10が寿命に到達したあるいは寿命寸前である、あるいは異常状態であると判断される場合などの条件がある。ROモード移行条件が成立すると、メモリコントローラ50は、現在行われているNANDメモリ20に対する書き込み処理を全てキャンセルしステップS161、ホスト100から受信した全てのライト要求に対してエラーを返し、ホスト100から受信したライト要求のキュー全てを削除するのが望ましいステップS162。つぎに、メモリコントローラ50は、NANDメモリ20上の管理情報におけるROモードフラグ25に1を書き込むステップS163。その後、SSD10は電源を遮断されるかリセットされるまで、ホスト100から受信したライト要求の全てに対してエラーを返すステップS164、S165。また、SSD10の起動時には、例えば、先の第1の実施形態で用いた図21と同様の動作を実行する。すなわち、SSD10が起動すると、メモリコントローラ50内のIPL55がNANDメモリ20上の管理情報におけるROモードフラグ25を読み出しステップS170、ROモードフラグ25を判別するステップS171。ROモードフラグ25が0である場合はステップS171、IPL55は、通常モードにすべく、インタフェースコントローラ30のRWIFコントローラ31を有効にしステップS172、その後RAM40にNANDメモリ20上の管理情報を読み出すステップS173。一方、ROモードフラグ25が1である場合は、IPL55は、ROモードにすべく、ROIFコントローラ32を有効にしステップS174、その後RAM40にNANDメモリ20上の管理情報を読み出すステップS175。ROモードにおいては、SSD10は書き込みをサポートしない読み出し専用デバイスとして振る舞う。ホスト100はホスト起動時、またはデバイス接続時、接続されているデバイスに対して識別情報を要求する。SSD10は、通常モードにおいては、RWIFコントローラ31がホスト100に対してSSD10が読み書き可能であることを示すデバイス識別情報をホストに対して返すので、ホスト100はSSD10を読み書き可能であるデバイスとして認識する。一方、ROモードにおいては、SSD10は、ROIFコントローラ32がホスト100に対してSSD10が書き込み非サポートの読み出し専用ドライブであることを示すデバイス識別情報を返すので、ホスト100はSSD10を書き込み非サポートデバイスとして認識する。よって、ROモード時においては、ホスト100からSSD10にライト要求が送られることはない。このように、ROモードにおいては、SSD10は書き込みをサポートしないデバイスとして振る舞って、ホスト100から書き込み以外のアクセスが可能になる。また、ホスト100にOSとしてWindows登録商標が搭載されている場合でも、SSD10が読み出し可能なデバイスであるとして認識されることが可能になる。このようにして、SSD10の信頼性悪化時にSSD10が書き込み非サポートの外部記憶装置であるという識別情報をSSD10からホスト100に通知することで、ホスト100にとっては、あたかもSSD10が読み書き可能な外部記憶装置から書き込み非サポートの外部記憶装置に切り替わったかのように見える。したがって、ホスト100にとっては、信頼性が悪化したSSD10は読み出しのみ可能なデバイスとして振る舞うために、ホスト100は例えばSSD10をCD-ROMやDVD-ROMのような一般的な読み出し専用外部記憶装置として扱うことができる。第3の実施形態第3の実施形態では、ホスト100への機能実装のみを適用した場合を示す。SSD10及びホスト100の両方に機能を実装すると最も効果的であるが、ホスト100のみに機能を実装しても効果を十分に発揮することができる。図31にコンピュータシステムの第3の実施形態の構成を示す。この第3の実施形態においては、ホスト100に、第1の実施形態で説明したインタフェースドライバ120及びSSD制御ツール110を搭載しており、SSD10側には、RWIFコントローラ31及びROIFコントローラ32が切り替え可能なインタフェースコントローラ30を搭載してはいない。図31において、図1に示した構成要素と同一機能を有する構成要素については同一符号を付し、重複する説明は省略する。インタフェースコントローラ30に代えて、RWIFコントローラ31のみが搭載されたインタフェースコントローラ38が搭載されている。第3の実施形態のホスト100においても、先の第1の実施形態で説明したホスト100の機能を全て搭載可能である。この第3の実施形態においては、SSD制御ツール110は、先の第1の実施形態の図25、図27などで説明した動作と同様の動作を実行する。ホスト100が起動すると、ホスト100はSSD制御ツール110を起動する。SSD制御ツールは、たとえばWindows商標においてスタートアップメニューやサービスやレジストリに登録されるなどして、ホスト100の起動とおもに自動的に起動されることが望ましい。一方、SSD制御ツールは、キーボード134やマウス135などにより、ユーザによって任意に起動されてもよい。SSD制御ツール110が起動されると、例えば図25の場合、SSD制御ツール110はSSD10の統計情報X01~X19、X23、X24などのうち少なくとも一つを取得するべく、SSD100に対し統計情報の送信要求を送信する図25:ステップS220。この送信要求としては、例えば、前述したように、メモリの自己診断機能であるSMARTのコマンドであるSMARTREADDATAまたはACS2に記述されているSCTCommandTransportまたはベンダー独自のコマンドを採用してもよい。このようにして、SSD制御ツール110は、統計情報を取得するステップS221。SSD制御ツール110は、SSD10から返ってきた統計情報を閾値たとえば第1の実施形態で述べたRMAXやRMINと比較するステップS222。例えば、統計情報の取得にACS2記載のB0hD0hSMARTREADDATAを用いる場合、SSD制御ツール110は、統計情報26の構成要素X01~X19、X23、X24などのうち少なくとも一つの統計情報を、図26に示すAttributeValue、Threshold、WorstValueおよびRawDataの形態で取得する。メモリコントローラ50によるAttributeValue、Threshold、WorstValueおよびRawDataの計算方法は第1の実施形態と同じであり、このようにして計算された情報が、B0hD0hSMARTREADDATAに対する読み出しデータとしてSSD10から制御ツール110に送信される。たとえば、SMARTのAttributeValueとThresholdを、SSD10の寿命または異常状態を診断するための比較データとして用いる場合、SSD制御ツール110は、AttributeValueとThresholdの比較を行い、たとえばAttributeValue<ThresholdまたはAttributeValue≦Thresholdであった場合、SSD制御ツールはSSD10が寿命に到達したまたは異常事態であると判定する。第1の実施形態のように、たとえばSMAB=100で、AMALR=0.3を採用した時、採用対象の統計情報に関してattributevalueの最良値が100たとえば出荷直後に100になっており、信頼性が劣化するにつれて徐々に減少していき、SSD10が信頼性保証できなくなったとき統計情報の生の値がRMAXに等しいかそれ以上になったとき、attributevalueが30かそれ未満の値に到達することになり、SSD制御ツール110はSSD10をリードオンリーメモリとして認識すべきと判断するステップS222:Yes。AttributeValueがThresholdを超過しているか否かを検知する手段として、ACS2に記載のコマンドであるB0hDAhSMARTRETURNSTATUSを用い、当該コマンドのOutputからAttributeValueがThresholdを超過しているか否かを判断してもよい。たとえば、SMARTのWorstValueとThresholdを、SSD10の寿命または異常状態を診断するための比較データとして用いる場合、SSD制御ツール110は、WorstValueとThresholdの比較を行い、たとえばWorstValue<ThresholdまたはWorstValue≦Thresholdであった場合、SSD制御ツールはSSD10が寿命に到達したまたは異常事態であると判定する。第1の実施形態のように、たとえばSMAB=100で、AMALR=0.3を採用した時、採用対象の統計情報に関してWorstValueの最良値が100たとえば出荷直後に100になっており、信頼性が劣化するにつれて徐々に減少していき、SSD10が信頼性保証できなくなったとき統計情報の生の値がRMAXに等しいかそれ以上になったとき、WorstValueが30かそれ未満の値に到達することになり、SSD制御ツール110はSSD10をリードオンリーメモリとして認識すべきと判断するステップS222:Yes。たとえば、SSD10の信頼性悪化とともに増大していくようなSMARTのRawDataRawValueを、SSD10の寿命または異常状態を診断するための比較データとして用いる場合、SSD制御ツール110は、RawValueとRMAXの比較を行い、たとえばRawValue≧RMAXまたはRawValue>RMAXであった場合、SSD制御ツールはSSD10が寿命に到達したまたは異常事態であると判定する。RMAXは主メモリ202上、たとえばSSD制御ツール110上に保持されているパラメータである。RMAXはコンピュータシステム1の電源OFF時は不揮発情報としてSSD10に格納されていることが望ましく、電源ON時に例えば図5や図6のようにSSD制御ツールが主メモリ202にロードされる時、主メモリ202にロードされる。RMAXは第1の実施形態のようにSSD10の開発時に決定されることが望ましく、SSD制御ツールのインストール元となる領域、たとえばWEBサーバーの記憶媒体400上の領域や、光学記憶媒体500上の領域や、USBメモリ600の領域に格納されている。RawValueは、SSD10の信頼性が劣化するにつれて徐々に増加していき、SSD10が信頼性保証できなくなったとき、RawValueがRMAXかそれより大きい値に到達することになり、SSD制御ツール110はSSD10をリードオンリーメモリとして認識すべきと判断するステップS222:Yes。RMAXは統計情報X01~X19、X23など構成要素のそれぞれに対し、別々の値を採用してもよい。たとえば、SSD10の信頼性悪化とともに減少していくようなSMARTのRawDataRawValueを、SSD10の寿命または異常状態を診断するための比較データとして用いる場合、SSD制御ツール110は、RawValueとRMINの比較を行い、たとえばRawValue≦RMINまたはRawValue<RMINであった場合、SSD制御ツールはSSD10が寿命に到達したまたは異常事態であると判定する。RMINは主メモリ202上、たとえばSSD制御ツール110上に保持されているパラメータである。RMINはコンピュータシステム1の電源OFF時は不揮発情報としてSSD10に格納されていることが望ましく、電源ON時に例えば図5や図6のようにSSD制御ツールが主メモリ202にロードされる時、主メモリ202にロードされる。RMINは第1の実施形態のようにSSD10の開発時に決定されることが望ましく、SSD制御ツールのインストール元となる領域、たとえばWEBサーバーの記憶媒体400上の領域や、光学記憶媒体500上の領域や、USBメモリ600の領域に格納されている。RawValueは、SSD10の信頼性が劣化するにつれて徐々に減少していき、SSD10が信頼性保証できなくなったとき、RawValueがRMINかそれ未満の値に到達することになり、SSD制御ツール110はSSD10をリードオンリーメモリとして認識すべきと判断するステップS222:Yes。RMINは統計情報X01~X19、X23など構成要素のそれぞれに対し、別々の値を採用してもよい。たとえば、SMARTのRawDataRawValueとして統計情報X24を受信して、SSD10の寿命または異常状態を診断するための比較データとして用いる場合、SSD制御ツール110は、RawValueが1であるか否かの判定を行い、RawValue=1であった場合、SSD制御ツールはSSD10が寿命に到達したまたは異常事態であると判定する。SSD10の信頼性が劣化しNAND整理によっても十分な数のフリーブロックがメモリコントローラ50により確保できなかった場合、メモリコントローラ50によりRawValueが1にセットされ、SSD制御ツール110はSSD10をリードオンリーメモリとして認識すべきと判断するステップS222:Yes。ステップS222の比較の結果、SSD10にROモード移行条件が成立していると判断した場合、すなわちSSD10をリードオンリーメモリとして認識すべきと判断した場合ステップS222:Yes、ROIFドライバ122を有効にするステップS225。また、SSD制御ツール110は図12におけるオペレーティングシステム150内のシステムパラメータを操作することで、オペレーティングシステム150にSSD10をリードオンリーメモリとして認識させてもよい。ステップS225の前に、SSD制御ツール110はリセットコマンド等を送信してSSD10を再起動するのが望ましいS224。なお、SSD制御ツール110は、図25、図27などに示したステップS220、ステップS221及びステップS222図25の場合の手順、すなわちSSD10への統計情報の送信要求、及びSSD10をリードオンリーメモリとして認識すべきとの判断を、ホスト100が動作中も定期的に行うようにするのが望ましい。たとえば、一定時間おきに、SMARTREADDATAを発行し、SSD10をリードオンリメモリとして認識すべきか否かの判断を行うようにするとよい。前記要求及び判断をホスト100の起動時に行うようにしてもよく、SSD制御ツール110の割り込み処理回数を低減するために、前記要求及び判断をホスト100起動後のみに行うようにしてもよい。そして、SSD10をリードオンリーメモリとして認識すべきと判断した場合は、インタフェースドライバ120のROIFドライバ122を有効にする。SSD制御ツール110の割り込み処理回数を低減するために、SSD10をリードオンリメモリとして認識した後は、統計情報の送信要求やROモード移行判断を行わないようにすることが望ましい。また、SSD制御ツール110は、SSD10の起動または接続を認識すると、前記要求および判断を行うようにしてもよい。たとえば、インタフェース90がSATAインタフェースである場合、ホスト100のSSD10に関するステータスレジスタが7Fhから50hになったとき、SSD10が起動または接続されたと判断し、前記要求および判断を行うようにしてもよい。また、前記リードオンリーメモリとして認識すべきとの判断は、メモリコントローラ50が行うようにし、SSD制御ツール110はSMARTREADDATAまたはSCTCommandTransportまたはベンダー独自のコマンドを通じてその判断結果のみを受信するようにしてもよい。たとえば、第1の実施形態と同様の判断基準でメモリコントローラ50によってリードオンリーメモリとして認識すべきと判断された時は、SMARTREADDATAによりSSD制御ツール110はSSD10からAttributeValueとして数値0を受信し、そうでないとき通常時は数値100を受信し、リードオンリーメモリとして認識すべき場合とそうでない場合のどちらにおいてもThresholdとしては数値70を受信し、AttributeValue<Thresholdの時ステップS222:Yes、リードオンリーメモリとして認識すべきと判断し、AttributeValueThresholdのときステップS222:Noは、リードオンリーメモリとして認識すべきでないと判断するようにしてもよい。判断結果の受信にWorstValueやRawValueを用いてもよいのはもちろんである。なお、統計情報として、たとえば現在温度X20、最高温度X21、最低温度X22を採用する場合は、温度異常は一時的なものである可能性があるため、SSD制御ツール110がステップS225によってROIFドライバを有効化した後に、たとえばAttributeValue≧ThresholdまたはAttributeValue>Thresholdとなって通常状態に復帰したと判断されたときは、ROIFドライバを無効化し、RWIFドライバを有効化してもよい。SSD10のデータ破壊や故障によるユーザデータ損失を防止する観点では、ROIFドライバ122は、SSD10に対する書き込みコマンドを一切送信しないよう構成されることが望ましい。一方、ROIFドライバ122は、たとえばオペレーティングシステムのシステム情報など一部のデータをSSD10に書き込む必要がある場合は、例外としてSSD10に当該データを書き込むことを許可してもよいが、当該データはデータ量がNANDメモリ20の容量に対して十分に小さいことが望ましい。さらに望ましくは、ユーザが誤って書き込みコマンドを送信してしまいSSD10に対してデータを書き込んでしまうことを防止するために、IOIFドライバ122は、たとえばACS2記載の35hWRITEDMAEXTや61hWRITEFPDMAQUEUEDのような、SSD10に対する通常の書き込みコマンドは一切送信せず、SSD10に対して例外的にデータを書き込む必要がある場合は、たとえばINCITSACS2に記述されているSCTCommandTransportやその他ベンダー独自のコマンドなど、特殊なコマンドを用いたコマンドのみによりSSD2に対する書き込みを許可するようにすることが望ましい。第3の実施形態においても、SSD制御ツール110は、図5に示したように、ホスト装置100が電源オフになっているときはSSD10のNANDメモリ20の領域110Aに格納されているが、ホスト装置100の起動時またはプログラム起動時に、領域110Aから領域110にロードされる。一方、ホスト装置に複数の不揮発性記憶装置が接続されている場合は、図6に示すように、SSD制御ツールは、SSD10とは別の不揮発性記憶装置300の領域110Bに格納されており、ホスト装置100の起動時またはプログラム起動時に、領域110Bから領域110にロードされるようにしてもよい。特に、不揮発性記憶装置300がOSを格納するシステムドライブとして使用されており、SSD10が文書や静止画データや動画データなどユーザデータを格納するデータドライブとして使用されている場合は、システムドライブ300にはOSやアプリケーションプログラムを主として格納するドライブとして使用し、データドライブ10にはユーザデータを格納するドライブとして使用するというように、ドライブ10とドライブ300の役割を明確に分ける観点で、システムドライブとしての不揮発性記憶装置300に制御ツールを格納することが望ましい。第3の実施形態においても、制御ツールのセットアップをユーザが行う労力を省く観点では、例えば図5や図6のように、SSD制御ツールがSSD10や不揮発性記憶装置300に格納された状態でコンピュータシステム1が出荷され、店頭に並び、ユーザの手に渡ることが望ましい。一方、ユーザがSSD制御ツールのインストールの可否を選択できるようにする観点、およびユーザに最新の制御ツールを提供できるようにするという観点では、制御ツールは、図7に示したWEBからのダウンロード、または図8に示したDVD-ROMからのインストール、さらには図9に示したUSBメモリなど外部記憶媒体からのインストールにより、SSD10や不揮発性記憶装置300に格納できるようにすることが望ましい。第3の実施形態においても、ユーザによる入手容易性の観点から、光学メディア500やUSBメモリ600はSSD10の出荷時に、付属品としてSSD10と一緒に梱包されて販売されることが望ましい。一方、光学メディア500やUSBメモリ600はソフトウェア商品として単独で販売されてもよいし、雑誌や書籍の付録として付属していてもよい。このようにして、ホスト100に搭載されたSSD制御ツール110がSSD10の信頼性状態統計情報を判定し、この判定結果に基づいてSSD用のインタフェースドライバを選択することとしたので、SSD10の信頼性悪化時寿命到達時、異常状態時、OSやその他ソフトウェアにとっては、あたかもSSD10が読み書き可能な外部記憶装置から書き込み非サポートの外部記憶装置に切り替わったかのように見える。したがって、OSやその他ソフトウェアにとっては、信頼性悪化したSSD10は読み出しのみ可能なデバイスとして振る舞うために、ホスト100はSSD10をCD-ROMやDVD-ROMのような一般的な読み出し専用外部記憶装置として扱うことができる。第4の実施形態第1及び第2の実施形態では、SSD10が読み出し専用デバイスであるという情報をSSD10がホスト100に対し送信していた。SSD10とは別に用意されたインタフェース中継デバイス700を用い、インタフェース中継デバイス700がホスト100に対しSSD10が読み出し専用デバイスであるという情報をホスト100に対して送信してもよい。このインタフェース中継デバイス700を読み出し専用ブリッジと呼ぶ。図32は、図10に示したコンピュータシステムに読み出し専用ブリッジ700を接続した状態を示すものである。図33は、読み出し専用ブリッジが接続された第4の実施形態のコンピュータシステムを示すブロック図である。読み出し専用ブリッジ700はホスト100に対して読み出し専用デバイスであるという情報を送信するよう構成される。読み出し専用デバイスであるという情報は、たとえば前述のMMC6に採用されている前述したコマンドGETCONFIGURATION46hを用いてもよいし、他のコマンドを用いてもよい。さらに、読み出し専用ブリッジ700は、ホスト100から受信した各種命令及び応答をSSD10に送信し、SSD10から受信した各種命令及び応答をホストに送信するなど、ホスト側インタフェースとSSD側インタフェースの中継の役割を果たすよう構成される。ホスト側インタフェースとSSD側インタフェースのインタフェース規格が異なる場合は、読み出し専用ブリッジ700は、受信したコマンド及び応答を送信側インタフェースに合うように変換して送信する。ホスト側インタフェースがSATAインタフェースである場合、読み出し専用ブリッジ700はSSD10がATAPIデバイスであることをホスト100に明示的に示すよう構成されてもよい。たとえば、前記ACS2で記述されているDeviceSignatureにおいて、LBAを01hに、LBAを14hに、LBAをEBhとしてホスト100に出力することで、SSD10がATAPIデバイスであることをホスト100に通知することができる。ホスト100の通常利用時は、SSD10は、図10に示したように、ATAインタフェース90としてのSATAケーブルや、USBケーブルによってホスト100のマザーボード130に接続されている。ホスト100に搭載されているSSD制御ツール110が前述したACS-2記載のSMART情報などによって統計情報を取得して、この管理情報と閾値との比較によって、たとえば統計情報>RMAXまたは統計情報<RMINまたはX24=1の条件がを満たされるなどにより、SSD10の信頼性が劣化していると判断すると、SSD制御ツール110は、ディスプレイ133上にSSDの寿命が近づいています。読み出し専用ブリッジのデバイス側端子をSSDに接続し、読み出し専用ブリッジのホスト側端子をパソコンに接続し、SSDのデータをバックアップしてください。などのメッセージを含む警告ウィンドウまたは警告ダイアログを表示する。なお、管理情報と比較する閾値RMAXやRMINなどをホスト100内に保持して信頼性劣化の判断をSSD制御ツール110が行うようにしてもよいし、前記閾値をSSD10内に保持して信頼性劣化の判断をSSD10のメモリコントローラ50が行い、管理情報が閾値を超過したという情報のみをメモリコントローラ50がホスト100に送信することにしてもよい。ディスプレイ133上に表示された警告メッセージに従って、ユーザが、図32に示すように、SSD10と読み出し専用ブリッジ700とをSATAケーブルまたはUSBケーブルなどで接続し、読み出し専用ブリッジ700とマザーボード130をSATAケーブルやUSBケーブルなどで接続する。この後、ホスト100が起動されると、読み出し専用ブリッジ700はホスト100に対して、SSD10が読み出し専用デバイスであるという情報を送信する。これにより、ホスト100は、読み出し専用ブリッジ700のインタフェースドライバ170として読み出し専用の例えばATAPIドライバの読み出し専用ドライバを適用し、またホスト上でSSD10はたとえばCD-ROMやDVD-ROMなどのような読み出し専用デバイスとして認識される。なお、読み出し専用ブリッジ700は、SSD10がATAデバイスであることをホスト100に明示的に示すよう構成され、ATAインタフェースを介してホスト100からデバイス識別情報、たとえばACS-2記載のコマンドEChIDENTIFYDEVICEを受信したとき、ライト系機能は全て非サポートであることをホスト100に返信するよう構成されてもよい。SSD10がリードオンリデバイスであるか否かの通知方法はこれ以外の様々な形態をとってもよい。このようにこの実施形態では、SSDに対して書き込みが不可能な場合、またはSSDに対する書き込み動作が保証されない場合、SSDに対する書き込み動作がSSD内のデータの欠損やSSDの故障を招く恐れがある場合などの状況下においても、ホスト100とSSDとの間に読み出し専用ブリッジ700を接続するだけで、ホスト100はSSD10に対して読み出し動作を行うことができる。なお、読み出し専用ブリッジ700を接続した状況下でホストの起動に用いられるシステムディスクとしては、SSD10でもよいし、予めシステムをインストールされているSSD10とは別に用意されたSSDまたはハードディスクドライブHDDでもよいし、ブートプログラムをインストールされたDVD-ROM、CD-ROM、USBメモリなどでもよい。なお、読み出し専用ブリッジ700が接続された場合においても、ホスト100は、SSDのデータをバックアップするような機能を備えたSSD制御ツール110あるいはその他のソフトウェアを保持していてもよい。このバックアップ機能を備えたソフトウェアは、読み出し専用ブリッジ700が接続されたことを検知すると、このソフトウェアのウィンドウ内に読み出し専用ブリッジが接続されています。SSDのデータをバックアップしますかなどのメッセージとバックアップの可否を選択するOKボタン及びキャンセルボタンが表示される。そして、OKボタンがクリックされるとバックアップが開始され、キャンセルボタンがクリックされるとバックアップは行われずにメッセージの表示が消える。キャンセルボタンが押された場合でも、バックアップは後で行うことができる。なお、第1~第4の実施形態においては、不揮発性メモリとしてNANDメモリを採用した場合について述べたが、不揮発性メモリとして、ハードディスクドライブHDDなどNANDメモリ以外の不揮発性メモリに第1~第4の実施形態を適用してもよい。また、不揮発性メモリとして、特開2011-161199号公報や特開2011-29586号公報で示されているような3次元的にメモリセルが配置された半導体記憶媒体であってもよい。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"