(57)【要約】本願発明の情報処理装置は、情報の書込みおよび情報の読出しが可能な複数の記憶領域を有する不揮発性半導体メモリと、記憶領域に記憶された情報についてセクタ毎に誤り訂正を行う第１の誤り訂正処理と記憶領域に記憶された情報についてクラスタ毎に誤り訂正を行う第２の誤り訂正処理とを実行制御し、この第１の誤り訂正処理および第２の誤り訂正処理によっては訂正できないエラーが発生した場合、当該エラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とをホスト装置に送信して誤り訂正を依頼する制御部とを備えたＳＳＤを有する。
2010513994.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
情報処理装置本体と、
前記情報処理装置本体に収容される不揮発性半導体メモリドライブと、
を具備し、
前記情報処理装置本体は、前記不揮発性半導体メモリドライブからエラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを受信して、前記誤り訂正符号を用いて前記情報に含まれるエラーを訂正し、訂正後の情報を前記不揮発性半導体メモリドライブに返却する主制御手段を有し、
前記不揮発性半導体メモリドライブは、
情報の書込みおよび情報の読出しが可能な複数の記憶領域を有する不揮発性半導体メモリと、
前記記憶領域に記憶された情報についてセクタ毎に誤り訂正を行う第１の誤り訂正処理と、前記記憶領域に記憶された情報についてクラスタ毎に誤り訂正を行う第２の誤り訂正処理とを実行制御し、前記第１の誤り訂正処理および前記第２の誤り訂正処理によっては訂正できないエラーが発生した場合、当該エラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを前記情報処理装置本体に送信すると共に、前記記憶領域に記憶された当該エラーを含む情報を、前記情報処理装置本体から返却された訂正後の情報に更新するメモリ制御手段と、
を有する、
情報処理装置。
【請求項２】
前記不揮発性半導体メモリドライブの前記不揮発性半導体メモリは、複数のブロックからなり、前記ブロックは１０２４個のクラスタで構成され、前記クラスタは８個のセクタを含む請求項１記載の情報処理装置。
【請求項３】
前記不揮発性半導体メモリドライブの前記メモリ制御手段は、前記エラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを前記情報処理装置本体に送信した後、前記情報処理装置本体から訂正後の情報が返却されるまでの間、前記不揮発性半導体メモリに対するアクセスを伴うコマンドを受けた場合、当該コマンドに関する処理が異常終了したことを示す回答を返却する請求項１記載の情報処理装置。
【請求項４】
情報処理装置本体に収容される不揮発性半導体メモリドライブであって、
情報の書込みおよび情報の読出しが可能な複数の記憶領域を有する不揮発性半導体メモリと、
前記記憶領域に記憶された前記情報についてセクタ毎に誤り訂正を行う第１の誤り訂正処理と、前記記憶領域に記憶された前記情報についてクラスタ毎に誤り訂正を行う第２の誤り訂正処理とを実行制御し、前記第１の誤り訂正処理および前記第２の誤り訂正処理によっては訂正できないエラーが発生した場合、当該エラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを前記情報処理装置本体に送信すると共に、前記記憶領域に記憶された当該エラーを含む情報を、前記情報処理装置本体から返却された訂正後の情報に更新するメモリ制御手段と、
を具備する不揮発性半導体メモリドライブ。
【請求項５】
前記不揮発性半導体メモリは、複数のブロックからなり、前記ブロックは１０２４個のクラスタで構成され、前記クラスタは８個のセクタを含む請求項４記載の不揮発性半導体メモリドライブ。
【請求項６】
前記メモリ制御手段は、前記エラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを前記情報処理装置本体に送信した後、前記情報処理装置本体から訂正後の情報が返却されるまでの間、前記不揮発性半導体メモリに対するアクセスを伴うコマンドを受けた場合、当該コマンドに関する処理が異常終了したことを示す回答を返却する請求項４記載の不揮発性半導体メモリドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および不揮発性半導体メモリドライブに関する。
【背景技術】
【０００２】
従来の技術として、不揮発性のメモリに誤り訂正符号で符号化した情報の書込みを行うと共に、不揮発性のメモリの未使用領域に誤り訂正符号を付加した情報の書き込みを行うメモリデータ保護方式が知られている（例えば、特許文献１参照）。
【０００３】
このメモリデータ保護方式は、定期的に不揮発性メモリの全領域に対して情報の書込みおよび読出しを行ってエラーの検出を行い、エラー発生情報を記録する。また、このメモリデータ保護方式は、エラー発生情報に基づいてエラーの発生した領域には情報の書込みを行わないので、エラーの発生した領域を有する不揮発性メモリを破棄することなく継続して使用することができる。
【０００４】
ところで、この誤り訂正符号を使って不揮発性半導体メモリドライブ自身が行う誤り訂正処理は、比較的軽度のエラーにのみ対応可能である。一方で、最近では、この誤り訂正符号を使ってより高度な誤り訂正処理が可能な誤り訂正処理手法が種々開発されている。よって、この高度な誤り訂正処理を実行可能なホストたる情報処理装置との間で誤り訂正のためのインタフェースを備えれば、信頼性の向上と製品寿命の改善が期待できる。
【０００５】
この発明は、このような事情を考慮してなされたものであり、誤り訂正を適宜に行うことによって、信頼性の向上と製品寿命の改善を実現する情報処理装置および不揮発性半導体メモリドライブを提供することを目的とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−５０６２号公報
【発明の概要】
【０００７】
一例によれば、この発明の情報処理装置は、情報処理装置本体と、情報処理装置本体に収容される不揮発性半導体メモリドライブとを有する。情報処理装置本体は、不揮発性半導体メモリドライブからエラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを受信して、前記誤り訂正符号を用いて前記情報に含まれるエラーを訂正し、訂正後の情報を前記不揮発性半導体メモリドライブに返却する主制御手段を有する。不揮発性半導体メモリドライブは、情報の書込みおよび情報の読出しが可能な複数の記憶領域を有する不揮発性半導体メモリと、記憶領域に記憶された情報についてセクタ毎に誤り訂正を行う第１の誤り訂正処理と記憶領域に記憶された情報についてクラスタ毎に誤り訂正を行う第２の誤り訂正処理とを実行制御し、この第１の誤り訂正処理および第２の誤り訂正処理によっては訂正できないエラーが発生した場合、当該エラーを含む情報と当該情報に含まれるエラーを訂正するための誤り訂正符号とを情報処理装置本体に送信すると共に、記憶領域に記憶された当該エラーを含む情報を、情報処理装置本体から返却された訂正後の情報に更新するメモリ制御手段とを有する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施形態に係る情報処理装置の外観を示す概略図である。
【図２】図２は、同実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図３】図３は、同実施形態に係るＳＳＤの概略構成を示すブロック図である。
【図４】図４は、同実施形態に係るＳＳＤの記憶容量および記憶領域を示す概略図である。
【図５】図５は、同実施形態に係るＮＡＮＤメモリの概略構成図である。
【図６】図６は、同実施形態に係るＢＣＴの概略構成図である。
【図７】図７は、同実施形態に係るファイルシステムドライバの階層構造を示す概略図である。
【図８】図８は、同実施形態に係るＳＳＤの製品寿命についての概略図である。
【図９Ａ】図９Ａは、同実施形態に係るオンライン訂正動作に関する第１のフローチャートである。
【図９Ｂ】図９Ｂは、同実施形態に係るオンライン訂正動作に関する第２のフローチャートである。
【図１０Ａ】図１０Ａは、同実施形態に係るオフライン訂正動作に関する第１のフローチャートである。
【図１０Ｂ】図１０Ｂは、同実施形態に係るオフライン訂正動作に関する第２のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の実施形態を説明する。
【００１０】
（情報処理装置の構成）
図１は、本発明の実施形態に係る情報処理装置１の外観を示す概略図である。
【００１１】
この情報処理装置１は、図１に示すように、本体２と、本体２に取り付けられた表示ユニット３とから構成されている。
【００１２】
本体２は、箱状の筐体４を有し、その筐体４は、上壁４ａ、周壁４ｂおよび下壁４ｃを備える。筐体４の上壁４ａは、情報処理装置１を操作するユーザに近い側から順にフロント部４０、中央部４１およびバック部４２を有する。下壁４ｃは、この情報処理装置１が置かれる設置面に対向する。周壁４ｂは、前壁４ｂａ、後壁４ｂｂおよび左右の側壁４ｂｃ、４ｂｄを有する。
【００１３】
フロント部４０は、ポインティングデバイスであるタッチパッド２０と、パームレスト２１と、情報処理装置１の各部の動作に連動して点灯するＬＥＤ２２とを備える。
【００１４】
中央部４１は、文字情報等を入力可能なキーボード２３ａが取り付けられるキーボード載置部２３を備える。
【００１５】
バック部４２は、着脱可能に取り付けられたバッテリパック２４と、バッテリパック２４の右側に情報処理装置１の電源を投入するための電源スイッチ２５と、バッテリパック２４の左右に表示ユニット３を回転可能に支持する一対のヒンジ部２６ａ、２６ｂとを備える。
【００１６】
筐体４の左の側壁４ｂｃには、筐体４内から外部に対して風を排出する排出口（図示せず）が設けられている。また、右の側壁４ｂｄには、例えば、ＤＶＤ等の光記憶媒体にデータを読み書き可能なＯＤＤ（Optical Disc Drive）２７と、各種のカードが出し入れされるカードスロット２８とが配置されている。
【００１７】
筐体４は、周壁４ｂの一部および上壁４ａを含む筐体カバーと、周壁４ｂの一部および下壁４ｃを含む筐体ベースとにより形成されている。筐体カバーは、筐体ベースに対して着脱自在に組み合わされ、筐体ベースとの間に収容空間を形成する。この収容空間には、不揮発性半導体メモリドライブとしてのＳＳＤ（Solid State Drive）１０等が収容される。なお、ＳＳＤ１０の詳細は後述する。
【００１８】
表示ユニット３は、開口部３０ａを有するディスプレイハウジング３０と、表示画面３１ａに画像を表示可能なＬＣＤ等からなる表示部３１とを備える。表示部３１はディスプレイハウジング３０に収容され、表示画面３１ａは開口部３０ａを通じてディスプレイハウジング３０の外部に露出している。
【００１９】
筐体４内には、上述のＳＳＤ１０、バッテリパック２４、ＯＤＤ２７およびカードスロット２８の他に、図示しないメイン回路基板、拡張モジュールおよびファン等が収容されている。
【００２０】
図２は、本発明の実施の形態に係る情報処理装置１の概略構成を示すブロック図である。
【００２１】
この情報処理装置１は、図２に示すように、上述のＳＳＤ１０、拡張モジュール１２、ファン１３、タッチパッド２０、ＬＥＤ２２、キーボード２３ａ、電源スイッチ２５、ＯＤＤ２７、カードスロット２８および表示部３１の他に、各部を制御する組込システムであるＥＣ（Embedded Controller）１１１と、ＢＩＯＳ（Basic Input Output System）１１２ａを格納するフラッシュメモリ１１２と、ＬＳＩ（Large Scale Integration）チップであり各種バスおよびＩ／Ｏコントローラとして機能するサウスブリッジ１１３と、ＬＳＩチップであり後述するＣＰＵ（Central Processing Unit）１１５、ＧＰＵ（Graphic Processing Unit）１１６、メインメモリ１１７および各種バスとの接続を制御するノースブリッジ１１４と、各種信号を演算処理する主制御部としてのＣＰＵ１１５と、映像信号を演算処理して表示制御するＧＰＵ１１６と、ＣＰＵ１１５により読み書きされるメインメモリ１１７とを有する。
【００２２】
なお、図２に示す光メディア（記憶媒体）２７１には、誤り訂正処理を行うアプリケーションであるリフレッシュツール２７１が記憶されているが、これに限定されず、リフレッシュツール２７１は、カードスロット２８または拡張モジュール１２から読出し可能な記憶媒体に記憶されていても良い。
【００２３】
拡張モジュール１２は、拡張回路基板と、拡張回路基板に設けられたカードソケットと、カードソケットに挿入された拡張モジュール基板とを備える。カードソケットは、例えば、Ｍｉｎｉ−ＰＣＩ等の規格に基づいており、拡張モジュール基板は、例えば、３Ｇ（3rd Generation）モジュール、テレビチューナー、ＧＰＳモジュール、およびＷｉｍａｘ(登録商標)モジュール等が挙げられる。
【００２４】
ファン１３は、筐体４内を送風に基づいて冷却する冷却部であり、筐体４内の空気を排出口（図示せず）を介して外部に排出する。
【００２５】
なお、ＥＣ１１１、フラッシュメモリ１１２、サウスブリッジ１１３、ノースブリッジ１１４、ＣＰＵ１１５、ＧＰＵ１１６およびメインメモリ１１７は、メイン回路基板に実装された電子部品である。
【００２６】
（ＳＳＤの構成）
図３は、本発明の実施の形態に係るＳＳＤ１０の概略構成を示すブロック図である。ＳＳＤ１０は、図３に示すように、コネクタ１０２と、制御部１０３と、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈと、ＤＲＡＭ１０５と、電源回路１０６と、を備えて概略構成されており、データやプログラムを記憶し、電源を供給しなくても記録が消えない外部記憶装置である。従来のハードディスクドライブのような磁気ディスクやヘッド等の駆動機構を持たないが、ＮＡＮＤメモリの記憶領域に、後述するＯＳ（所定のアプリケーション；Operating System）等のプログラム、ユーザやソフトウェアの実行に基づいて作成されたデータ等を従来のハードディスクドライブと同様に読み書き可能に長期的に保存でき、情報処理装置１の起動ドライブとして動作することのできる不揮発性半導体メモリからなるドライブである。
【００２７】
メモリコントローラとしての制御部１０３は、コネクタ１０２、８つのＮＡＮＤメモリ１０４Ａ〜１０４Ｈ、ＤＲＡＭ１０５、および電源回路１０６にそれぞれ接続されている。また、制御部１０３は、コネクタ１０２を介してホスト装置８に接続され、必要に応じて外部装置９に接続される。
【００２８】
電源７は、バッテリパック２４または図示しないＡＣアダプタであり、例えば、ＤＣ３．３Ｖがコネクタ１０２を介して電源回路１０６に供給される。また、電源７は、情報処理装置１全体に対して電力を供給する。
【００２９】
ホスト装置８は、本実施の形態ではメイン回路基板であり、メイン回路基板に実装されたサウスブリッジ１１３と制御部１０３との間が接続されている。サウスブリッジ１１３と制御部１０３との間は、例えば、シリアルＡＴＡ等の規格に基づいてデータの送受信が行われる。
【００３０】
外部装置９は、情報処理装置１とは異なる他の情報処理装置である。外部装置９は、情報処理装置１から取り外されたＳＳＤ１０に対して、例えば、ＲＳ−２３２Ｃ等の規格に基づいて制御部１０３に接続され、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈに記憶されたデータを読み出す機能を有する。
【００３１】
ＳＳＤ１０が実装される基板は、例えば、１．８インチタイプまたは２．５インチタイプのＨＤＤ（Hard disk drive）と同等の外形サイズを有する。なお、本実施の形態では、１．８インチタイプと同等である。
【００３２】
制御部１０３は、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対する動作を制御する。具体的には、制御部１０３は、ホスト装置８からの要求に応じて、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対するデータの読出し（リード）、書込み（ライト）を制御する。データの転送速度は、例えば、データリード時で１００ＭＢ／Ｓｅｃ、ライト時で４０ＭＢ／Ｓｅｃである。
【００３３】
ＮＡＮＤメモリ１０４Ａ〜１０４Ｈは、１つの記憶容量が、例えば、１６ＧＢの不揮発性の半導体メモリであって、例えば、１つのメモリセルに２ビットを記録可能なＭＬＣ（Multi Level Cell）−ＮＡＮＤメモリ（多値ＮＡＮＤメモリ）である。ＭＬＣ−ＮＡＮＤメモリは、ＳＬＣ（Single Level Cell）−ＮＡＮＤメモリに比較して、一般に書き換え可能回数は劣るが、記憶容量の大容量化は容易である。
【００３４】
ＤＲＡＭ１０５は、制御部１０３の制御によりＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対するデータのリードおよびライトが行われる際に一時的にデータが格納されるバッファである。
【００３５】
コネクタ１０２は、シリアルＡＴＡ等の規格に基づいた形状を有する。なお、制御部１０３および電源回路１０６は、別々のコネクタによりホスト装置８および電源７にそれぞれ接続されていてもよい。
【００３６】
電源回路１０６は、電源７から供給されたＤＣ３．３Ｖを、例えば、ＤＣ１．８Ｖ、１．２Ｖ等に変換するとともに、それら３種類の電圧をＳＳＤ１０の各部の駆動電圧に合わせて各部に供給する。
【００３７】
（ＳＳＤの記憶容量について）
図４は、本発明の実施の形態に係るＳＳＤ１０の記憶容量および記憶領域を示す概略図である。ＳＳＤ１０の記憶容量は、図４に示すように、記憶容量１０４ａ〜１０４ｇで構成される。
【００３８】
記憶容量１０４ａは、ＮＡＮＤ  Ｃａｐａｃｉｔｙであり、すべてのＮＡＮＤメモリ１０４Ａ〜１０４Ｈの記憶領域を用いた最大の記憶容量である。例えば、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈの記憶容量がそれぞれ１６ＧＢであるとき、記憶容量１０４ａは、１２８ＧＢである。また、記憶容量１０４ａは、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）の製造情報ライトコマンドのＮＡＮＤ構成情報で与えられる。
【００３９】
記憶容量１０４ｂは、Ｍａｘ  Ｌｏｇｉｃａｌ  Ｃａｐａｃｉｔｙであり、ＬＢＡ（Logical Block Addressing）でアクセスできる最大の記憶容量である。
【００４０】
ここでＬＢＡとは、後述するＳＳＤ１０内のすべてのセクタに通し番号を振り、その通し番号によってセクタを指定する方式のことである。
【００４１】
記憶容量１０４ｃは、Ｓ．Ｍ．Ａ．Ｒ．Ｔログ領域開始ＬＢＡであり、記憶容量１０４ｂと以下に説明する記憶容量１０４ｄとを分割するために設けられる。詳細は後述する。
【００４２】
記憶容量１０４ｄは、Ｖｅｎｄｅｒ  Ｎａｔｉｖｅ  Ｃａｐａｃｉｔｙであり、ユーザ使用領域として与えられる最大の記憶容量である。ＡＴＡ特殊コマンドの初期Ｉｄｅｎｔｉｆｙ  Ｄｅｖｉｃｅデータで与えられる。また、記憶容量１０４ｄは、ＩＤＥＭＡ（The International Disk Drive Equipment and Materials Association）標準に基づき、製造元（Ｖｅｎｄｅｒ）においてＳＳＤ１０の設計段階で決定され、以下の式１で表される。
【００４３】
LBA = 97,696,368 + (1,953,504 × ((Capacity in GB) - 50))  …  式１
記憶容量１０４ｅは、ＯＥＭ  Ｎａｔｉｖｅ  Ｃａｐａｃｉｔｙであり、ＯＥＭ（Original Equipment Manufacturer）の要求により製造時に決定する記憶容量である。ＡＴＡ特殊コマンドの固有情報ライトで与えられる。また、記憶容量１０４ｅは、Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｖｅｒｌａｙ  Ｆｅａｔｕｒｅ  Ｓｅｔがサポートされたとき、Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｉｄｅｎｔｉｆｙコマンドで返される値である。
【００４４】
記憶容量１０４ｆは、Ｎａｔｉｖｅ  Ｃａｐａｃｉｔｙであり、初期値は記憶容量１０４ｅと同値である。Ｆｅａｔｕｒｅ  ｓｅｔがサポートされたときは、Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅｔコマンドで変更することができる値である。また、記憶容量１０４ｆは、Ｒｅａｄ  Ｎａｔｉｖｅ  Ｍａｘ  Ａｄｄｒｅｓｓ（ＥＸＴ）コマンドで返される値である。
【００４５】
記憶容量１０４ｇは、Ｃｕｒｒｅｎｔ  Ｃａｐａｃｉｔｙであり、ユーザの使用中における記憶容量で、初期値は記憶容量１０４ｆと同値である。Ｓｅｔ  Ｍａｘ  Ａｄｄｒｅｓｓコマンドで変更することができる。Ｉｄｅｎｔｉｆｙ  ＤｅｖｉｃｅコマンドのＷｏｒｄ６１：６０、Ｗｏｒｄ１０３：１００で返される値である。
【００４６】
また、ＳＳＤ１０の記憶領域は、各記憶容量１０４ａ〜１０４ｇの間にそれぞれ存在する。
【００４７】
記憶容量１０４ａと１０４ｂとの間の記憶領域には、ＳＳＤ１０を動作させるための管理データ１０７ａと、ＬＢＡから変換されたデータの論理アドレスをＮＡＮＤメモリ１０４Ａ〜１０４Ｈの記憶単位であるセクタに対応する物理アドレスに変換するための論理／物理テーブル１０８ａと、後述するＢＣＴ（Bad Cluster Table）１０９ａとが格納される。また、管理データ１０７ａ、論理／物理テーブル１０８ａおよびＢＣＴ１０９ａは、ＬＢＡをキーとしてアクセスできず、固定アクセスパスを有して、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈ内の固定領域に記録されるデータである。
【００４８】
記憶容量１０４ｂと１０４ｃとの間の記憶領域には、上述した温度情報等の統計情報であるＳ．Ｍ．Ａ．Ｒ．Ｔ．（Self-Monitoring Analysis and Reporting Technology）ログデータ１０７ｂが格納される。また、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．ログデータ１０７ｂは、ファームウェア（ＦＷ）内部で記録される際、ＬＢＡをキーにしてアクセスされるものであり、ホスト８から通常のリードまたはライトコマンドでアクセスされることはない。
【００４９】
ここで、ファームウェア（ＦＷ）とは、ＳＳＤ１０を制御するためにＳＳＤ１０に組み込まれたソフトウェアである。
【００５０】
記憶容量１０４ｃと１０４ｄとの間の記憶領域には、例えば、記憶容量２ＭＢの未使用の記憶領域が設定される。これは、ＬＢＡの最小記憶単位が８セクタであり、４ｋＢに相当する記憶単位（大きな記憶単位は１ＭＢ）であるのに対して、実際のデータの最小記録単位は当然１セクタであるため、１ＭＢ以上の記憶容量の空き記憶領域を設けることで、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．ログデータ１０７ｂと、記憶容量１０４ｄ以下に記録されるデータとをそれぞれ独立して扱うためである。
【００５１】
記憶容量１０４ｄと１０４ｅとの間の記憶領域は、未使用であり特別な場合を除いて記憶容量１０４ｄと１０４ｅは同値である。
【００５２】
記憶容量１０４ｅと１０４ｆとの間の記憶領域は、ＯＥＭに使用される記憶領域であり、上述したようにＯＥＭの要求で決定される固有情報１０７ｅが書き込まれる。
【００５３】
記憶容量１０４ｆと１０４ｇとの間の記憶領域は、ＯＥＭまたはユーザに使用される記憶領域であり、ＯＥＭまたはユーザの設定によりデータの書込みが行われる。
【００５４】
記憶容量１０４ｇの記憶領域は、ユーザに使用される記憶領域であり、ユーザの設定によりデータの書込みが行われる。
【００５５】
なお、記憶容量１０４ａ〜１０４ｇは、以下の式２で表される関係を満たす。
【００５６】
記憶容量１０４ａ＞記憶容量１０４ｂ＞記憶容量１０４ｃ＞記憶容量１０４ｄ
≧記憶容量１０４ｅ≧記憶容量１０４ｆ≧記憶容量１０４ｇ  …  式２
製造元（Ｖｅｎｄｅｒ）からの出荷時、記憶容量１０４ｄ〜１０４ｇは同値となる。
【００５７】
（ＮＡＮＤメモリの構成）
図５は、本発明の実施の形態に係るＮＡＮＤメモリの概略構成図である。ＮＡＮＤメモリ１０４Ａ〜１０４Ｈは、同じ機能および構成を有しているのでＮＡＮＤメモリ１０４Ａについて説明する。
【００５８】
ＮＡＮＤメモリ１０４Ａは、複数のブロック１０４０から構成されている。また、ブロック１０４０は、１０２４個のクラスタ１０４１から構成されており、クラスタ１０４１は、さらに８個のセクタ１０４２から構成されている。
【００５９】
ブロック１０４０に満たないデータの書込みを行うとき、ＳＤＤ１０の制御部１０３は、管理データ１０７ａに基づいてブロック１０４０を構成する１０２４個のクラスタ１０４１の読出しを行って一時的にＤＲＡＭ１０５に格納し、ＤＲＡＭ１０５内において読出しを行ったクラスタ１０４１にデータの書込みを行い、ＤＲＡＭ１０５から該当するＮＡＮＤメモリのクラスタ１０４１に書込みを行う。
【００６０】
（ＢＣＴの構成）
図６は、本発明の実施の形態に係るＢＣＴの概略構成図である。ＢＣＴ（管理テーブル）１０９ａは、複数のエントリ１０９０からなるテーブルである。１エントリ１０９０は、クラスタアドレス（４バイト）とブロック１０４０内ビットマップ（１バイト）の計５バイトで、１セクタ１０４２（１Ｋクラスタ）の不良（エラー）が発生しても動作できるように４Ｋエントリ１０９０程度確保される。
【００６１】
図６に示すＢＣＴ１０９ａには、一例として、２つの不良セクタ（不良記憶単位）１０４５および１０４６がエントリ１０９０に登録されている。ＢＣＴ１０９ａは、ＳＳＤ１０のリフレッシュ時に制御部１０３によって作成され、管理データ１０７ａの中に記憶されている。また、ＢＣＴ１０９ａは、ＳＳＤ１０のフラッシュ時のリードエラーが発生したとき、制御部１０３によって作成される。
【００６２】
制御部１０３は、一例として図５および６に示すように、誤り訂正処理によって誤りの訂正ができない、またはフラッシュ時のリードエラーである不良セクタ１０４５を含むクラスタ１０４１を不良クラスタ１０４４として、ＢＣＴ１０９ａに登録する。
【００６３】
ＢＣＴ１０９ａにおいては、一例として不良セクタの情報が格納されていないエントリ１０９０は、空エントリ１０９１と呼ぶものとする。
【００６４】
また、制御部１０３は、一例として、不良セクタ１０４５および１０４６にデータの書込みが正常に行われたとき、ＢＣＴ１０９ａの該当するエントリ１０９０を削除するものとする。
【００６５】
これは、不良セクタ１０４５および１０４６は、電荷の抜けを原因とするリードエラーの場合、データの書込みが正常に終了した後、読出しを正常に行うことができるからである。よって不良セクタ１０４５および１０４６は再利用されるので、情報処理装置１およびＳＳＤ１０の本来の機能を長期間に渡って利用することができる。
【００６６】
（ファイルシステムドライバの階層構造について）
図７は、本発明の実施の形態に係るファイルシステムドライバの階層構造を示す概略図である。アプリケーション１１３Ａは、情報処理装置１が起動される際、ＣＰＵ１１５によってＳＳＤ１０から読出しが行われ、サウスブリッジ１１３内のキャッシュに格納され、実行される。
【００６７】
このアプリケーション１１３Ａは、ＯＳ１１３０と、ファイルシステムを管理するファイルシステムドライバ１１３１と、インターページＥＣＣ（誤り訂正符号；Error Check and Correct）と呼ばれる誤り訂正処理を行うフィルタドライバ１１３２と、ファイルシステムに含まれるデータを、例えば、ＳＳＤ１０等に書込みを行うためのコントローラを操作するデバイスドライバ１１３３と、を備えている。
【００６８】
フィルタドライバ１１３２は、ファイルシステムドライバ１１３１とデバイスドライバ１１３３の間に位置し、情報処理装置１の起動とともに、ＣＰＵ１１５によって実行される。
【００６９】
ＳＳＤ１０に記憶されるデータに対する誤り訂正処理は、Ｌ１ＥＣＣおよびＬ２ＥＣＣと呼ばれる第１の誤り訂正処理と、インターページＥＣＣと呼ばれる第２の誤り訂正処理とがある。
【００７０】
Ｌ１ＥＣＣは、セクタ１０４２単位で行われ、ＳＳＤ１０に内蔵されているハードウェア（ＨＷ）によって行われる誤り訂正処理であり、小規模のＥＣＣエラーに適している。また、Ｌ２ＥＣＣは、クラスタ１０４１単位で行われ、ＳＳＤ１０のファームウェア（ＦＷ）によって行われる誤り訂正処理であり、中規模のＥＣＣエラーに適している。つまり、第１の誤り訂正処理は、ＳＳＤ１０自身が行うものである。
【００７１】
一方、第２の誤り訂正処理であるインターページＥＣＣは、Ｌ１ＥＣＣおよびＬ２ＥＣＣによっては誤り訂正ができない重度のエラーに対処すべく、情報処理装置１とＳＳＤ１０とが協働して行うものであり、以下、このインターページＥＣＣによる誤り訂正処理について詳述する。
【００７２】
インターページＥＣＣは、例えば１Ｍバイト単位（所定の記憶単位群）で行われ、情報処理装置１によって起動されたソフトウェア（ＳＷ）によって行われる誤り訂正処理であり、大規模なＥＣＣエラーに適している。この誤り訂正処理には、オンライン訂正およびオフライン訂正の２種類がある。
【００７３】
また、インターページＥＣＣは、１Ｍバイト当たり３２Ｋバイトの冗長部を含めた誤り訂正処理を行うことができる。冗長部とは、ＳＳＤ１０に記憶されるデータ本体（データ部）とは別に記憶されるデータのことであり、誤り訂正処理に関するデータを格納している。
【００７４】
オンライン訂正は、ＳＳＤ１０から情報処理装置１が起動できる場合に行われる誤り訂正処理であり、Ｌ１ＥＣＣおよびＬ２ＥＣＣによる誤り訂正処理によっても誤り訂正ができないとき、ＣＰＵ１１５が図７に示すフィルタドライバ１１３２を制御することによって行われる。
【００７５】
オフライン訂正は、ＳＳＤ１０から情報処理装置１が起動できない場合に行なわれる誤り訂正処理であり、例えば、図２に示す光メディア２７０から情報処理装置１を起動し、光メディア２７０に記憶されたリフレッシュツール２７１を起動することによって実行される。
【００７６】
（動作）
以下に、本発明の実施の形態における情報処理装置１の動作を各図を参照し、図９および１０のフローチャートに従って説明する。
【００７７】
（オンライン訂正動作について）
図８は、本発明の実施の形態に係るＳＳＤの製品寿命についての概略図であり、図９Ａおよび図９Ｂは、本発明の実施の形態に係るオンライン訂正動作に関するフローチャートである。以下の説明では、情報処理装置１の動作について、特に説明を付したものを除き、主としてＣＰＵ１１５がドライバー、アプリケーション等の動作を制御するものである。
【００７８】
まず、ユーザが電源スイッチ２５を押下すると、その電源スイッチ２５の押下を検出したＥＣ１１１は、電源７から情報処理装置１の各部に電力の供給を開始する。そして、ＥＣ１１１は、ＢＩＯＳ１１２ａに基づいて情報処理装置１の起動を行う。この情報処理装置１の起動に伴ってＯＳ１１３０等とともにサウスブリッジ１１３に格納されたフィルタドライバ１１３２が起動する（Ｓ１）。そして、フィルタドライバ１１３２が起動されると、情報処理装置１のＣＰＵ１１５から誤り訂正処理動作開始がＳＳＤ１０に通知される（Ｓ２）。
【００７９】
情報処理装置１は、リードのＵＮＣ（Uncorrectable Error）、またはＳＳＤ１０からのライトのＷＰ（ライトプロテクト）を検出したとき、すべてのコマンドが返信されるまで待機する（Ｓ３）。
【００８０】
ここで、リードのＵＮＣとは、例えば、情報処理装置１とネットワークによって接続された外部の装置からＳＳＤ１０に対して、ＳＳＤ１０に記憶されたファイルのリードコマンドがＬ１およびＬ２の誤り訂正ができずにエラーになったことを示している。
【００８１】
このとき、情報処理装置１は、上位層からのコマンドを下位層に発行せずに保持する。これは、例えば、ＯＳ１１３０等から下位層にコマンドを発行せずに保持することに相当する。
【００８２】
続いて、情報処理装置１は、保守モードに移行し、ＳＳＤ１０からＥＣＣ情報のリードを行う（Ｓ４）。保守モードとは、コマンドを受け付けずにＳＳＤ１０の誤り訂正処理を行うモードをいい、インターページＥＣＣは、保守モードでのみ動作が可能となる。
【００８３】
ここで、ＥＣＣ情報とは、Ｌ１ＥＣＣおよびＬ２ＥＣＣによる誤り訂正処理によっても誤り訂正ができない不良セクタ１０４５に基づく情報のことである。
【００８４】
情報処理装置１は、ＥＣＣ情報があるとき（Ｓ５のＹｅｓ）、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈから該当するデータ部（データ本体）とＥＣＣ部（冗長部）のリードを行い、誤り訂正処理を行う（Ｓ６）。
【００８５】
情報処理装置１は、ステップ６において、誤り訂正できなかった不良セクタ１０４５をＳＳＤ１０の制御部１０３を介してＢＣＴ１０９ａに登録させる（Ｓ７）。続いて情報処理装置１は、誤り訂正処理開始をＳＳＤ１０に通知する（Ｓ８）。
【００８６】
ＳＳＤ１０の制御部１０３によって実行されているＦＷ（ファームウェア）は、この通知を受けて、誤り訂正処理済みデータを一時格納するＲＡＭエリアをＤＲＡＭ１０５内に４ＭＢ分確保し、ＤＲＡＭ１０５の初期化を行う。
【００８７】
制御部１０３は、訂正済みデータをＤＲＡＭ１０５からリードを行い、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈの対応する領域にすべてにライトを行う（Ｓ９）。
【００８８】
情報処理装置１は、１ブロック１０４０の誤り訂正処理の完了をＳＳＤ１０に通知し、保守モードから通常モードに戻る（Ｓ１０）。
【００８９】
ここで、ステップ５において、ＥＣＣ情報がない場合（Ｓ５のＮｏ）、情報処理装置１は、保守モードから通常モードに戻り（Ｓ１１）、ステップ１２に処理を進める。
【００９０】
ステップ１０において、通常モードに戻った情報処理装置１は、待機中だったコマンドを１コマンドずつ再発行する（Ｓ１２）。なお、ライトは、ＦＵＡ（Forced Unit Access）ライトと同等な動作とする。
【００９１】
ここで、ＦＵＡライトとは、電源障害時のデータ消失を防止する機能である。通常のＳＳＤ１０では、ライトコマンドの終了通知は、ＳＳＤ１０のＤＲＡＭ１０５に書込みが行われた時点で通知される。ＮＡＮＤメモリ１０４Ａ〜１０４Ｈへは書込みが行われていないので、この時点で停電が起きた場合は、ＤＲＡＭ１０５内のデータは失われる。ＦＵＡライトでは、データをＮＡＮＤメモリ１０４Ａ〜１０４Ｈへ書き込んだ時点で終了通知を情報処理装置１へ返すため、停電などによるデータ消失の可能性を軽減できる。
【００９２】
続いて、情報処理装置１は、再発行したコマンドがＵＮＣまたはＷＰのとき、ＥＣＣ情報をリードする（Ｓ１３）。
【００９３】
情報処理装置１は、ＥＣＣ情報があるとき（Ｓ１４のＹｅｓ）、ステップ７〜１１を実行する（Ｓ１５）。
【００９４】
また情報処理装置１は、ＥＣＣ情報がないとき（Ｓ１４のＮｏ）、当該コマンドをエラーでＳＳＤ１０に返信する（Ｓ１６）。
【００９５】
ユーザの操作によって情報処理装置１の稼動停止が指示され、ＯＳ１１３０を停止するとき、情報処理装置１は、ＳＳＤ１０にフラッシュコマンドを発行してから、誤り訂正処理の終了をＳＳＤ１０に通知する（Ｓ１７）。
【００９６】
ここで、フラッシュコマンドとは、ＤＲＡＭ１０５には格納されているが、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈへはいまだ書き込まれていないデータのライトを指示するコマンドのことである。
【００９７】
（オフライン訂正動作について）
図１０Ａおよび図１０Ｂは、本発明の実施の形態に係るオフライン訂正動作に関するフローチャートである。
【００９８】
ユーザは、情報処理装置１のＯＳが起動しない状態であるとき、電源スイッチ２５を押下した後、光メディア２７０をＯＤＤ２７に挿入する。光メディア２７０には情報処理装置１を起動させる起動プログラムとリフレッシュツール２７１が記録されている。ＯＤＤ２７は、光メディア２７０の挿入を検出すると、光メディア２７０に記録された起動プログラムとリフレッシュツール２７１の読込みを行う。
【００９９】
電源スイッチ２５の押下を検出したＥＣ１１１は、電源７から情報処理装置１の各部に電力の供給を開始する。そして、ＥＣ１１１は、ＢＩＯＳ１１２ａに基づいて光メディア２７０に記録された起動プログラムから情報処理装置１の起動を行い、続いてリフレッシュツール２７１を起動させる（Ｓ２０）。このリフレッシュツール２７１が起動されると、情報処理装置１のＣＰＵ１１５から誤り訂正処理動作開始がＳＳＤ１０に通知される（Ｓ２１）。
【０１００】
情報処理装置１は、ＳＳＤ１０のＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対してＬＢＡ（Logical Block Addressing）０から順次Ｒｅａｄ  Ｖｅｒｉｆｙ  Ｓｅｃｔｏｒ  ＥＸＴを発行する（Ｓ２２）。
【０１０１】
情報処理装置１は、このリードについてＵＮＣを検出したとき、保守モードに移行し、ＳＳＤ１０からＥＣＣ情報のリードを行う（Ｓ２３）。
【０１０２】
ここで、情報処理装置１は、ＥＣＣ情報があるとき（Ｓ２４のＹｅｓ）、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈから該当するデータ部とＥＣＣ部のリードを行い、誤り訂正処理を行う（Ｓ２５）。
【０１０３】
情報処理装置１は、ステップ２５において、誤り訂正できなかった不良セクタ１０４５をＳＳＤ１０の制御部１０３を介してＢＣＴ１０９ａに登録する（Ｓ２６）。
【０１０４】
続いて情報処理装置１は、誤り訂正処理開始をＳＳＤ１０に通知する（Ｓ２７）。
【０１０５】
ＳＳＤ１０の制御部１０３によって実行されているＦＷ（ファームウェア）は、この通知を受けて、誤り訂正処理済みデータを一時格納するＲＡＭエリアをＤＲＡＭ１０５内に４ＭＢ分確保し、ＤＲＡＭ１０５の初期化を行う。
【０１０６】
制御部１０３は、訂正済みデータをＤＲＡＭ１０５からリードを行い、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈの対応する領域のすべてにライトを行う（Ｓ２８）。
【０１０７】
情報処理装置１は、１ブロック１０４２の誤り訂正処理の完了をＳＳＤ１０に通知し、保守モードから通常モードに戻る（Ｓ２９）。
【０１０８】
誤り訂正処理が終了した後、リフレッシュツール２７１を終了するとき、情報処理装置１は、フラッシュコマンドをＳＳＤ１０に発行してから、誤り訂正処理の終了をＳＳＤ１０に通知する（Ｓ３０）。
【０１０９】
ここでステップ２４において、ＥＣＣ情報がない場合（Ｓ２４のＮｏ）、情報処理装置１は、保守モードから通常モードに戻り（Ｓ３１）、次のＬＢＡにＥＣＣ情報があるか否かを検索するため、ステップ２４に処理を進める。
【０１１０】
情報処理装置１が上記したインターページＥＣＣを実行しているとき、ＳＳＤ１０のＦＷ（ファームウェア）は、誤り訂正を期待してエラーを情報処理装置１に送信した後、誤り訂正処理が終了するまでに受け付けたライト系（書込みコマンド）、リード系（読出しコマンド）、およびフラッシュを伴うコマンドに対してＡＢＲＴ（異常終了コマンド）を返信する。ただし誤り訂正処理とは関連性のないコマンドに対しては、通常通り応答を行う。ＡＢＲＴで返信されたコマンドは、フィルタドライバ１１３２による誤り訂正処理が終了した後、再発行される。
【０１１１】
ＳＳＤ１０は、図８に示すように、軽度のエラーであれば、通常行われるＬ１ＥＣＣおよびＬ２ＥＣＣによる誤り訂正処理によって、製品寿命を延ばすことができる。しかし、Ｌ１ＥＣＣおよびＬ２ＥＣＣによる誤り訂正処理によって訂正できないエラーがあるとき、より高度な誤り訂正処理を行うことのできる情報処理装置１によって上記のオンライン訂正、およびオフライン訂正を行うことで、信頼性が向上し、また、製品寿命を延ばすことができる。
【０１１２】
（実施の形態の効果）
上記した実施の形態によると、ＳＳＤ１０による誤り訂正処理とは別に、情報処理装置１側からＳＳＤ１０の誤り訂正処理を行うことができるので、信頼性が向上し、また、ＳＳＤ１０の製品寿命を延ばすことができる。
【０１１３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【０１１４】
この発明によれば、信頼性の向上と製品寿命の改善を実現することができる。
【図１】
2010513994.tif 000003
【図２】
2010513994.tif 000004
【図３】
2010513994.tif 000005
【図４】
2010513994.tif 000006
【図５】
2010513994.tif 000007
【図６】
2010513994.tif 000008
【図７】
2010513994.tif 000009
【図８】
2010513994.tif 000010
【図９Ａ】
2010513994.tif 000011
【図９Ｂ】
2010513994.tif 000012
【図１０Ａ】
2010513994.tif 000013
【図１０Ｂ】
2010513994.tif 000014
【国際調査報告】
2010513994.tif 000015