(57)【特許請求の範囲】
【請求項１】
不揮発性メモリに接続する揮発性の固体デバイス（ＳＳＤ）を制御するための装置であって、
前記ＳＳＤにおける、前記不揮発性メモリでのデータの保管位置を指示するデータ検索テーブルの破損による故障を検出するように動作可能な故障検出器と、
前記故障検出器が前記データ検索テーブルの破損による故障を検出したことに応答して、前記ＳＳＤのためのＳＣＳＩログ・センス・コマンドに対応したテーブル中に前記データ検索テーブルの破損による故障に対応する固有のイベント・パラメータを追加するイベント追加器と、
追加された前記固有のイベント・パラメータに応答して、前記データ検索テーブルの再構築が終わるまでの前記ＳＳＤの動作において、ベンダー固有のＳＣＳＩログ・ページを維持するコントローラと、
を含む、装置。
【請求項２】
不揮発性メモリに接続する揮発性の固体デバイス（ＳＳＤ）を制御するための方法であって、
故障検出器によって前記ＳＳＤにおける、前記不揮発性メモリでのデータの保管位置を指示するデータ検索テーブルの破損によるデータ検索テーブルの故障を検出することと、
前記データ検索テーブルの破損による故障を検出するステップに応答して、前記ＳＳＤのためのＳＣＳＩログ・センス・コマンドに対応したテーブル中に前記データ検索テーブルの破損による故障に対応する固有のイベント・パラメータを追加することと、
追加された前記固有のイベント・パラメータに応答して、前記データ検索テーブルの再構築が終わるまでの前記ＳＳＤの動作において、ベンダー固有のＳＣＳＩログ・ページを維持することと、
を含む、方法。
【請求項３】
コンピュータ・プログラム・コードを含むコンピュータ・プログラムであって、コンピュータ・システムにロードされてこのコンピュータ・システム上で実行された場合に、請求項２に記載の方法のステップを前記コンピュータ・システムに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固体ディスク（ＳＳＤ：ｓｏｌｉｄ  ｓｔａｔｅ  ｄｉｓｋ）を制御する分野に関し、更に具体的には、ＳＳＤを含むシステムにおいて故障を処理するための自動化された装置および方法に関する。
【背景技術】
【０００２】
記憶装置の技術における近年の進展によって、固体ドライブ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いてデータを記憶することが可能になりつつある。この場合、固体メモリを含むデバイスを用いて従来の回転ディスク記憶デバイスに置き換える。しかしながら、ＳＳＤ技術は、従来の回転ディスク技術には見られない特有のデバイス故障関連の問題を有し、これらの問題が要因となって、特に重要な環境においてそれらの使用を妨げる恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、本出願人は、上述の問題に対処しこれを軽減するような方法で、ＳＳＤを含むシステムにおいて故障を処理するための自動化された装置および方法を有することが望ましいと考える。
【課題を解決するための手段】
【０００４】
このため本発明は、第１の態様において、固体ディスクを制御するための装置を提供する。この装置は、固体ディスクにおける故障を検出するように動作可能な故障検出器と、故障検出器が故障を検出したことに応答して、固体ディスクのための低下ステータス指示器をセットするように動作可能なステータス低下器と、低下ステータス指示器に応答して、固体ディスクを低下動作モードにおいて動作中に維持する低下ステータス・コントローラと、を含む。
【０００５】
この装置は、好ましくは、低下動作モード中に故障を分析するための診断分析器と、低下動作モード中に固体ディスクの内容を修理するための修理コントローラと、固体ディスクを故障から回復させるための回復コントローラと、を更に含み、回復コントローラは、低下ステータス指示器をリセットするように動作可能である。
【０００６】
第２の態様においては、固体ディスクを制御するための方法が提供される。この方法は、故障検出器によって固体ディスクにおける故障を検出することと、この故障を検出するステップに応答して、ステータス低下器によって固体ディスクのための低下ステータス指示器をセットすることと、低下ステータス指示器に応答して、低下ステータス・コントローラによって固体ディスクを低下動作モードにおいて動作中に維持することと、を含む。
【０００７】
この方法は、好ましくは、診断分析器によって低下動作モード中に故障を分析することと、修理コントローラによって低下動作モード中に固体ディスクの内容を修理することと、回復コントローラによって固体ディスクを故障から回復させることと、回復コントローラによって低下ステータス指示器をリセットすることと、を更に含む。
【０００８】
第３の態様においては、コンピュータ・プログラムが提供される。これは、コンピュータ・プログラム・コードを含み、コンピュータ・システムにロードされてこのコンピュータ・システム上で実行された場合に、第２の態様の方法のステップ全てをこのコンピュータ・システムに実行させる。
【０００９】
従って、本発明の好適な実施形態は、ＳＳＤを含むシステムにおいて故障を処理するための自動化された装置および方法を提供するという利点がある。
【００１０】
これより本発明の一実施形態について、添付図面を参照して、一例としてのみ説明する。
【図面の簡単な説明】
【００１１】
【図１】本発明の好適な実施形態に従った例示的な装置の概略図を示す。
【図２】本発明の好適な実施形態に従った例示的な方法のフロー・チャート図を示す。
【発明を実施するための形態】
【００１２】
固体ドライブ（ＳＳＤ）技術は、従来のディスク・ドライブ（すなわち回転ディスク）技術では見られない特有の故障モードを有する。いくつかの故障によって、ＳＳＤは、回復を試みる間に長期間にわたって予想外に記憶サブシステムからオフラインとなり、揮発性メモリに保持されたいくつかのユーザ・データに永久的にアクセスを失い、または電力損失の場合に破局的な故障に露呈されたままとなる恐れがある。これらの故障は、本来ＳＳＤデバイスが意図されていた重要でない環境では許容することができるが、今日ＳＳＤが展開されている重要な状況においては許容することができない。これらの故障の根本的な原因（すなわち構成要素の故障、予想外の電力損失等）の発生を防ぐことは不可能であるかもしれないが、制御された方法で故障を管理し、ＳＳＤ故障によるシステム損傷を最小限に抑え、システム・レベルで一般的なエラー回復を可能とすることが望ましいであろう。重要な状況でＳＳＤデバイスを用いることは比較的新しいので、既知の技術ではこれらの故障に対して利用可能な保護はほとんど無い。
【００１３】
重大な故障モードは、本質的に、事前の警告なくデバイスを使用不可能にするものである。ここに２つの特定の例示的な事例を挙げる。双方ともＳＳＤデバイスの一般的な設計に関連する。すなわち、大きい揮発性メモリを用いて、永久フラッシュ・メモリにセーブする前にデバイスに送信された書き込みデータ、および、書き込みデータが後にセーブされる永久メモリ内の位置を指し示す動的テーブルの双方を保持する。通常、ＳＳＤは、バッテリまたはスーパーキャパシタの形態でバックアップ電力を提供して、主電力が損失した場合に揮発性メモリの内容を保護する。
【００１４】
例示的な既知の故障モードは以下の通りである。
１．ＳＳＤに論理またはファームウェアのエラーが発生し、揮発性メモリに保持されたデータ・テーブルが破損したことが考えられる。もはや、セーブされたデータを検索するためまたは新しい書き込みデータをセーブするためにテーブルを用いることができないので、永久記憶装置内の全ての位置を読み取ることによって動的テーブルを再構成しなければならない。これは長時間（典型的に３０分）を要し、これによってシステムはドライブを「故障した」と見なす。
【００１５】
２．ＳＳＤバックアップ電力供給が故障して、実際の電力損失の場合に揮発性記憶装置が露呈したままとなる。実際の電力損失が発生した場合、ＳＳＤはキャッシュした書き込みデータの全てを永久記憶装置にセーブする機会がないので、この不確かな量のデータは永久的に失われる。
【００１６】
本発明の実施形態は、これらの問題を軽減する手法を提供する際に、ＳＳＤが故障条件を検出してこの故障を示す固有の指示を記憶システムに与えることに基づいている。これによってシステムは回復プロセスを制御し損傷を抑えることができる。この解決策の著しい利点は、発生した破局的な故障の種類が速やかにシステムへ通知されることであり、ＳＳＤは、未知の症状によってオフラインになるのではなく、回復アクションの間システムに利用可能であり応答可能なままである。
【００１７】
本発明の一実施形態に従ったエラー処理ルーチンに対して３つの主な概念的要素がある。
１．エラー検出および報告
２．回復制御
３．外部記録
【００１８】
要素１では、ＳＳＤが、既知の故障モードの１つが発生したことを認識する必要がある。「テーブル再構築が必要」または「バックアップ電力が故障」イベントのいずれかが検出された場合、デバイスはその内部イベント・ログに対して固有のイベントを追加し、次いで「フォーマット低下」ステータスに入らなければならない。このステータスでは、デバイスは依然としてオンラインであり、例えばＬｏｇ  Ｓｅｎｓｅ、Ｉｎｑｕｉｒｙ等の媒体にアクセスしないＳＣＳＩコマンドを処理することができる。このため、システムは一群の非媒体コマンドの選択肢を用いて故障の原因に関する情報を収集することができる。
【００１９】
要素２では、ＳＳＤは、システムからのベンダー固有のＳＣＳＩコマンドに応答して低下ステータスを処理することができる。このため、システムはデバイスの回復を制御することができ、緊急修理のために必要な場合には媒体に対して限定されたアクセスを得ることができる。
【００２０】
ここで述べる実施において、以下のテーブルによって示すように、ＳＣＳＩフォーマット・コマンドのためのコマンド記述子ブロック（ＣＤＢ）のバイト２に２つのパラメータを追加する。
【表１】
0005607725.tif 000002
【００２１】
上のテーブルにおいて、Ｄａｔａ＿ＯＫパラメータ（Ｄａｔａ＿ＯＫ＝‘１’ｂ）を用いて、フォーマット低下ドライブ（テーブル再構築保留）がここでフォーマット低下条件をクリアしテーブル再構築アクションを開始することを信号で知らせる。以下を用いる。
ＣＤＢ＝０４  ００  ８０  ００  ００  ００
【００２２】
Ｐｗｒ＿ＯＫパラメータ（Ｐｗｒ＿ＯＫ＝‘１’ｂ）を用いて、電力低下ドライブ（バックアップ電力が故障した）がここで電力低下条件をクリアし（だがログ・ページ３Ｆｈに示す値ではない）、書き込み保護条件をクリアすることを信号で知らせる。以下を用いる。
ＣＤＢ＝０４  ００  ４０  ００  ００  ００
【００２３】
要素３では、ＳＳＤは、ベンダー固有のログ・ページを維持してこれらの低下モードを反映させる必要がある。これによってシステムは、低下モード・イベントが最初に報告された後に変更された可能性があるＳＳＤの現在のステータスをチェックすることができる。
【００２４】
ここで述べる実施において、ベンダー固有のログ・ページ３Ｆｈは、以下のテーブルに示すように規定される。
【表２】
0005607725.tif 000003
【００２５】
上のテーブルにおいて、データ・フォーマット・ステータス＝８０ｈは、テーブル再構築が必要であることを示す。これは、テーブル再構築またはＳＣＳＩフォーマット・ユニットが完了した場合にのみ４０ｈにリセットすることができる。電力バックアップ・ステータス＝８０ｈは、バックアップ電力が故障したことを示す。これは、バックアップ電力構成要素の電力サイクルおよびテストの成功の後でのみ４０ｈにリセットすることができる。
【００２６】
ここで図１を参照すると、固体ディスク１０２における故障を検出するように動作可能な故障検出器１０４を含む、固体ディスク１０２を制御するための例示的な装置１００が示されている。ステータス低下器１０６は、故障検出器１０４が故障を検出したことに応答して、固体ディスク１０２のための低下ステータス指示器１０８をセットするように動作可能であり、低下ステータス・コントローラ１１０は、低下ステータス指示器１０８に応答して、固体ディスク１０２を低下動作モードにおいて動作中に維持する。また、図１には、低下動作モード中に故障を分析する診断分析器１１２も図示されている。修理コントローラ１１４は、低下動作モード中に固体ディスク１０２の内容を修理するように動作可能である。回復コントローラ１１６は、固体ディスク１０２を故障から回復させると共に、修理および回復アクションの完了時に低下ステータス指示器１０８をリセットするように動作可能である。
【００２７】
図２に移ると、本発明の好適な実施形態に従った固体ディスクを制御するための例示的な方法がフロー・チャートの形態で示されている。
【００２８】
開始ステップ２００の後、テスト・ステップ２０２では、低下ステータス指示器がセットされているか否かを判定し、低下ステータス指示器がセットされている場合には、プロセスは直ちにプロセス・ステップ２１０に進む。テスト・ステップ２０２において、低下ステータス指示器がセットされていないと判定された場合には、システムは進んでステップ２０４においてＳＳＤの監視動作を行う。テスト・ステップ２０６では、ＳＳＤが故障したか否かを判定する。故障していない場合、システムは続けてステップ２０４において監視を行い、ステップ２０６においてテストを行う。テスト・ステップ２０６においてＳＳＤが故障したと判定された場合には、プロセス・ステップ２０８において低下ステータス指示器がセットされ、ステップ２１０において、ＳＳＤを低下ステータス・モードで動作させる。ステップ２１２において故障を分析する。ステップ２１４においてＳＳＤの内容を修理し、ステップ２１６においてＳＳＤに回復アクションを実行する。テスト・ステップ２１８において、ステップ２１６における回復アクションが不成功の結果を戻した場合、プロセスは終了ステップ２２０で終了する。テスト・ステップ２１８において、ステップ２１６における回復アクションが成功の結果を戻した場合、ステップ２２２において低下ステータス指示器をリセットし、プロセスは開始ステップ２００に戻る。
【００２９】
本発明の好適な実施形態の方法の全てまたは一部が、この方法のステップを実行するように構成された論理要素を含む論理装置または複数の論理装置において適切かつ有用に具現化可能であること、および、かかる論理要素がハードウェア構成要素、ファームウェア構成要素、またはそれらの組み合わせを含むことができることは、当業者には明らかであろう。
【００３０】
本発明の好適な実施形態に従った論理機構の全て又は一部が、この方法のステップを実行するための論理要素を含む論理装置において適切に具現化可能であること、および、かかる論理要素が、例えばプログラマブル論理アレイまたは特定用途向け集積回路における論理ゲート等の構成要素を含むことができることも、当業者には等しく明らかであろう。かかる論理機構は更に、例えば、固定または伝送可能キャリア媒体を用いて記憶または伝送することができる仮想ハードウェア記述言語を用いたアレイまたは回路において論理構造を一時的または永久的に確立するためのイネーブル要素（ｅｎａｂｌｉｎｇ  ｅｌｅｍｅｎｔ）において具現化することができる。
【００３１】
また、上述した方法および機構は、１つ以上のプロセッサ（図には示していない）上で動作するソフトウェアにおいて全体的または部分的に適切に実行可能であり、更に、このソフトウェアは、磁気または光ディスク等のいずれかの適切なデータ・キャリア（これも図には示していない）上で担持される１つ以上のコンピュータ・プログラム要素の形態で提供可能であることは認められよう。同様に、データ伝送のためのチャネルは、全ての記述の記憶媒体ならびに有線または無線信号担持媒体等の信号担持媒体を含むことができる。
【００３２】
方法は、一般的に、所望の結果に至る首尾一貫したステップ・シーケンスであると考えられる。これらのステップでは、物理量の物理操作が必要である。通常、必須ではないが、これらの量は、記憶、転送、結合、比較、または他の方法で操作することができる電気的または磁気的信号の形態を取る。特に一般的な使用の理由で、これらの信号を、ビット、値、パラメータ、アイテム、要素、オブジェクト、シンボル、文字、用語、数字等と称することが時として便利である。しかしながら、これらの用語および同様の用語は全て、適切な物理量に関連付けられ、これらの量に適用される単に便利な標示であることに留意すべきである。
【００３３】
本発明は、更に、コンピュータ・システムと共に用いられるコンピュータ・プログラムとして適切に具現化することができる。かかる実施は一連のコンピュータ読み取り可能命令を含むことができ、これは、例えばディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、もしくはハード・ディスクのようなコンピュータ読み取り可能媒体等のタンジブルな媒体上に固定されるか、または、モデムもしくは他のインタフェース・デバイスを介して、光もしくはアナログ通信線を含むがこれらに限定されないタンジブルな媒体上で、もしくはマイクロ波、赤外線、もしくは他の伝送技法を含むがこれらに限定されない無線技法を用いてインタンジブルに、コンピュータ・システムに伝送可能である。一連のコンピュータ読み取り可能命令は、本明細書に前述した機能の全てまたは一部を具現化する。
【００３４】
かかるコンピュータ読み取り可能命令は、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムと共に用いられる多数のプログラミング言語で記述することができることは、当業者には認められよう。更に、かかる命令は、半導体、磁気、もしくは光を含むがこれらには限定されない現在および将来のいずれかのメモリ技術を用いて記憶するか、または、光、赤外線、もしくはマイクロ波を含むがこれらには限定されない現在または将来のいずれかの通信技術を用いて伝送することができる。かかるコンピュータ・プログラムは、例えば収縮包装されたソフトウェアのような印刷文書もしくは電子文書が付属する着脱可能媒体として分配し、例えばシステムＲＯＭもしくは固定ディスク上にコンピュータ・システムによって予めロードし、または、例えばインターネットもしくはワールド・ワイド・ウェブのようなネットワーク上でサーバもしくは電子掲示板から分配することが考えられる。
【００３５】
代替案において、本発明の好適な実施形態は、コンピュータ・プログラム・コードを展開するステップを含む、サービスを展開するコンピュータ実施方法の形態で実現することができる。このコードは、コンピュータ・インフラストラクチャに展開されてそこで実行されると、前記コンピュータ・システムにこの方法のステップを全て実行させる。
【００３６】
別の代替案において、本発明の好適な実施形態は、機能データを有するデータ・キャリアの形態で実現することができる。前記機能データは、機能コンピュータ・データ構造を含み、コンピュータ・システムにロードされてそれによって動作されると、前記コンピュータ・システムはこの方法のステップを全て実行することができる。
【図１】
0005607725.tif 000004
【図２】
0005607725.tif 000005