JP2014120179A - 停電障害状況におけるイベントトレース情報の復旧 - Google Patents

停電障害状況におけるイベントトレース情報の復旧 Download PDF

Info

Publication number
JP2014120179A
JP2014120179A JP2013260888A JP2013260888A JP2014120179A JP 2014120179 A JP2014120179 A JP 2014120179A JP 2013260888 A JP2013260888 A JP 2013260888A JP 2013260888 A JP2013260888 A JP 2013260888A JP 2014120179 A JP2014120179 A JP 2014120179A
Authority
JP
Japan
Prior art keywords
host
memory
event
trace information
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013260888A
Other languages
English (en)
Inventor
Michael Anderson
アンダーソン マイケル
Bottemiller Kraig
ボッテミラー クレイグ
Espeseth Adam
エスペセス アダム
Sendelbach Lee
センデルバッハ リー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HGST Netherlands BV
Original Assignee
HGST Netherlands BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of JP2014120179A publication Critical patent/JP2014120179A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • G11C5/144Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 停電障害状況におけるイベントトレース情報の復旧を提供する。
【解決手段】 ソリッドステートドライブ(SSD)及びハードディスクドライブ(HDD)ストレージデバイスにおいて使用するために、停電障害(PLI)状況においてイベントトレース情報を復旧する。不注意による停電後に復旧される揮発性状態情報がイベントトレース情報を含むこととなっている場合は、このような情報は、貴重なデバッグリソースを提供することができる。揮発性メモリからのイベントトレース情報は、PLIイベントに対する応答である電源オン時に、第2のメモリにコピーされる。不揮発性メモリに保存されたコンテキスト復元データの破損状態が検出され、破損状態の表示が設定される。イベントトレース情報は、表示に基づいて要求されると、ホストに渡される。
【選択図】 図2

Description

本発明の実施形態は、ソリッドステートドライブ(SSD)及びハードディスクドライブ(HDD)と共に使用される、停電障害(PLI)による故障をデバッグするために使用されるフォールトトレラントトレースツールに関する。
ソリッドステートドライブ(SSD)は、データを永続的に保存するためのメモリユニットとして集積回路部品を使用するデータストレージデバイスである。SSD技術は、従来のブロック入出力(I/O)ハードディスクドライブ(HDD)と互換性のある電子インタフェースを用いる。SSDは、動く機械部品を用いず、これにより、可動読み書きヘッドを用いて回転磁気ディスク上にデータを保存する従来のHDDとは区別される。
現在、殆どのSSDは、電力が存在しない時にデータを保持し、電気的な消去及び再プログラミングが可能な(フラッシュメモリは、EEPROMから開発されたため)不揮発性メモリの一種であるNANDベースのフラッシュメモリを使用する。更に、ハイブリッドドライブは、同一ユニット内にSSD及びHDD双方の特徴を組み合わせ、一般的に、ハードディスクドライブと、頻繁にアクセスされるデータの性能を向上させるためにSSDキャッシュとを含む。フラッシュメモリは、フローティングゲートトランジスタから製造されたメモリセルアレイに情報を保存する。
フラッシュ(NAND)メモリベースのソリッドステートドライブ(SSD)は、電力障害に耐性があり、そのような電力障害を経験した際にデータを全く失わないように設計されている。SSDドライブは、一般的に、DRAM等のデータが保持される不揮発性キャッシュを有し、このデータは、停電障害(PLI)イベント時にNANDメモリに保存される必要がある。一般的に、SSDは、PLI割り込み信号が受信された際にNANDにデータを保存するのに十分な電力を供給するコンデンサまたは意図的に持続して充電された他のストレージデバイスを含む。PLIイベントに応答して保存されたデータは、一般的に、ダーティ書き込みキャッシュデータ及びLBAマッピングテーブル情報(例えばインディレクションテーブル)を含み、これは、ジャーナリングデータを含み得る。
しかしながら、PLI問題は、一般的に、多大な診断努力を必要とし、これは、電源オフシーケンス中に何が起こったかのトラブルシューティングを行うためにドライブ上でツールを実行させるために、デベロッパ/トラブルシュータがドライブを所有することを必要とする。一般的に、データ一貫性サニティチェックにより電源オン時にドライブが「準備が整った」状態にならず、従って、完全なデータロスという結果になり得る故障の重症度を考えると、この長い診断所要時間は、顧客にとって許容できるとは考えられない。
本発明の実施形態は、ソリッドステートドライブ(SSD)及びハードディスクドライブ(HDD)ストレージデバイスにおいて使用するための、停電障害(PLI)状況におけるイベントトレース情報の復旧に関する。例えば、不注意による停電後に復旧されるDRAM状態情報がイベントトレース情報を含むこととなっている場合は、このような情報は、貴重なデバッグリソースを提供することができる。
ある実施形態によれば、揮発性メモリからのイベントトレース情報は、PLIイベントに対する応答である電源オン時に、第2のメモリにコピーされる。不揮発性メモリに保存されたコンテキスト復元データの破損状態が検出され、破損状態の表示が設定される。ある実施形態によれば、イベントトレース情報は、表示に基づいて要求されると、ホストに渡され得る。
任意選択の改善として、フォールトトレラントデバッグツールと共に使用するために、ホストからの要求に応答して、イベントトレース情報がホストに渡される。デバッグツールは、不正形式のトレース文字から正規トレース文字を推論するように構成されるので、ある程度フォールトトレラントである。
発明の概要のセクションに記載した実施形態は、本明細書に記載した全ての実施形態を示唆、記述、または教示するものではない。従って、本発明の実施形態は、このセクションに記載のもの以外の、付加的または異なる特徴を含み得る。
本発明の実施形態を、一例として、限定する目的ではなく、同様の参照符号が同様の要素を指す添付図面の図に示す。
本発明の実施形態が実施され得る動作環境例を示すブロック図である。 本発明の一実施形態による、停電障害(PLI)状況においてイベントトレース情報を復旧させる方法を示すフロー図である。
ソリッドステートドライブ(SSD)ストレージデバイスにおける停電障害(PLI)による故障をデバッグするために使用されるフォールトトレラントトレースツールへの取り組みを記載する。以下の記載では、本明細書に記載の本発明の実施形態の完全な理解を提供するために、説明目的で、多数の具体的な詳細を記載する。しかしながら、本明細書に記載の本発明の実施形態は、これらの特定の詳細なしに実施可能であることは明白であろう。他の例では、本明細書に記載の本発明の実施形態を不必要に分かりにくくすることを避けるために、周知の構造及びデバイスは、ブロック図形式で示す。
[ソリッドステートドライブ構成]
本発明の実施形態を用いて、ソリッドステートドライブ(SSD)ストレージデバイスを管理することができる。図1は、本発明の実施形態が実施され得る動作環境例を示すブロック図である。図1は、主要通信インタフェース106を介してホストデバイス104と通信接続されたSSD102を備えた一般的SSDアーキテクチャ100を示す。本発明の実施形態は、図1に図示されるような構成に限定されず、実施形態は、ハードディスクドライブ(HDD)におけるような、SSD以外の動作環境にも適用可能であり、図1に示される以外のSSD構成において実施することができる。例えば、実施形態は、重要な動作情報の一時的なストレージを行うために、揮発性メモリのストレージコンポーネントに依存する他の環境において動作するように実施されてもよい。
ホストデバイス104(または単純に「ホスト」)は、特に、1つ以上のメモリデバイスに対してデータI/O要求またはコールを行う、いかなるタイプのコンピュータハードウェアまたはソフトウェアも広く意味する。例えば、ホスト104は、コンピュータ、タブレット、携帯電話、またはメモリを含む、またはメモリとインタラクトする概ねあらゆるタイプのコンピュータデバイス上で実行されるオペレーティングシステムでもよい。ホストデバイス104をSSD102に接続する主要インタフェース106は、例えば、コンピュータの内部バスまたは通信ケーブルまたは無線通信リンク等でもよい。
図1に示されるSSD例102は、インタフェース110、コントローラ112(例えば、内部にファームウェアロジックを有するコントローラ)、アドレッシング114機能ブロック、データバッファキャッシュ116、エラー訂正符号(ECC)118、及び1つ以上の不揮発性メモリコンポーネント120a、120b、120nを含む。アドレッシング114機能ブロック、データバッファキャッシュ116、及びECC118のいずれも、システムオンチップ(SOC)構成において見られるように、コントローラ112の一部として機能的に統合されてもよい。
インタフェース110は、コンポーネント、つまり、この文脈では、SSD102及びホストデバイス104間のインタラクションの場所であり、ハードウェア及びソフトウェア双方のレベルで適用可能である。これにより、入出力システム及び関連のプロトコルを介して、あるコンポーネントが他のコンポーネントと通信することが可能となる。ハードウェアインタフェースは、一般的に、インタフェースにおける機械的、電気的、及び論理的な信号と、それらを順序付けるためのプロトコルとによって表される。一般的及び標準的なインタフェースの幾つかの非限定的例には、SCSI(スモールコンピュータシステムインタフェース)、SAS(シリアル接続SCSI)、及びSATA(シリアルATA)が含まれる。
SSD102は、不揮発性メモリコンポーネント(例えば、NANDフラッシュ)をホストに、例えば、不揮発性メモリ120a、120b、120nをホストデバイス104にブリッジする電子機器を内蔵したコントローラ112を含む。コントローラは、一般的に、ファームウェアレベルのコードを実行する組み込みプロセッサを含む。
コントローラ112は、アドレッシング114機能ブロックを介して、不揮発性メモリ120a、120b、120nとインタフェースをとる。アドレッシング114機能ブロックは、例えば、ホスト104からSSD102上、即ち、SSD102の不揮発性メモリ120a、120b、120n上の対応する物理ブロックアドレスへの論理ブロックアドレス(LBA)のマッピングを管理するように動作する。不揮発性メモリページとホストセクタはサイズが異なるので、SSDは、セクタへの、またはセクタからの、ホスト書き込みデータまたは読み取りデータと、データが実際に存在する物理的不揮発性メモリページとの変換を可能にするデータ構造の構築及び維持を行う必要がある。このテーブル構造または「マッピング」は、DRAMまたはコントローラ112及びアドレッシング114にアクセス可能な他のローカル揮発性メモリコンポーネント等のSSDの揮発性メモリ122におけるセッションのために構築及び維持され得る。
アドレッシング114は、不揮発性メモリ120a、120b、120nに加えて、データバッファキャッシュ116及びエラー訂正符号(ECC)118とインタフェースをとる。SSD102のデータバッファキャッシュ116は、非限定的例として、キャッシュとしてSRAMまたはDRAMを使用してもよい。データバッファキャッシュ116は、不揮発性メモリコンポーネントへの、または不揮発性メモリコンポーネントからのデータ送信のためのバッファまたは中継地として機能するだけでなく、キャッシュしたデータに対する今後の要求のスピードアップをはかるためのキャッシュとしても機能する。データバッファキャッシュ116は、一般的に、揮発性メモリが用いられるので、内部に保存されたデータは、キャッシュに永久的に保存されない、即ち、データは永続的ではない。
ECC118は、送信プロセス中または保存の際に多数のエラーが生じたとしても、受信者によって回復できるように、冗長データまたはパリティデータをメッセージに加えるシステムである。
最後に、SSD102は、1つ以上の不揮発性メモリ120a、120b、120nコンポーネントを含む。非限定的な例として、不揮発性メモリコンポーネント120a、120b、120nは、フラッシュメモリ(例えば、NANDまたはNORフラッシュ)、または現在あるいは将来入手可能な他のタイプのソリッドステートメモリとして実施可能である。不揮発性メモリ120a、120b、120nコンポーネントは、データが永続的に保存される実際のメモリ電子部品である。SSD102の不揮発性メモリ120a、120b、120nコンポーネントは、ハードディスクドライブ(HDD)ストレージデバイスにおけるハードディスクの類似物であると見なすことができる。
SSDストレージデバイスに加えて、本発明の実施形態を用いて、ハードディスクドライブ(HDD)ストレージデバイスを管理することもできる。例えば、一般的HDDアーキテクチャは、SSD102が主要通信インタフェース106を介してホスト104と接続される図1に示されるSSD構成100に類似して、主要通信インタフェースを介してホストデバイスに通信接続されるHDDを含み得る。更に、HDDは、SSD102のコントローラ112及び揮発性メモリ122に類似して、揮発性メモリに通信接続されたファームウェアを有するコントローラを含む。HDDコンポーネント及びSSDコンポーネント間の比較は、同一であるというよりも、概念的なものである。従って、HDDコントローラは、SSDコントローラ112とは異なり、一部の類似した機能だけでなく、一部の異なる機能を行うように設計されていることに留意されたい。しかしながら、HDD及びSSDは共に、DRAM等のある形態の揮発性メモリと通信する、内部に組み込まれた/符号化されたあるファームウェアを備えたコントローラを含む。
[導入部]
停電障害(PLI)状況におけるイベントトレース情報の復旧技術に関する本発明の実施形態を記載する。実施形態は、ソリッドステートドライブ(SSD)ストレージデバイス及びハードディスクドライブ(HDD)ストレージデバイスに適用可能で、それらにおいて、及び/または、それらのために実施され得る。結果的に、これらの技術の使用により、単純なメモリダンプのみを用いて、顧客のHDDまたはSSDドライブから有効なトレースを取得し、解析のために顧客がドライブを工場に送付する必要性を回避することができる。イベントトレース情報の復旧は、一般的に、非限定的例として、ファームウェア開発及びドライブの検証及び認定試験に関連し、適用可能である。
組み込みシステムのための従来のコードデバッグプロセスは、通常、命令メモリ、データメモリ、DRAM等の内部システムメモリの状態のスナップショットであるメモリダンプを行うことである。基本的に、スナップショットは、デベロッパまたはデバッガが、システム内の問題を理解しようするために使用し得るシステムの状態を提供する。このようなメモリダンプは、一般的に、周期的に、または割り込みイベントに応答して行われる。
ファームウェアデベロッパがサポートするファームウェアを必要とし得るという比較的新しい種類の課題は、停電障害(PLI)イベント及びそれに対応する応答及び回復である。例えば、PLIイベントのサポートは、一般的に、ライトキャッシュされ、既にホストには認識されているが、不揮発性媒体にはまだ保存されていない「ダーティ書き込みデータ」を取り扱う必要がある。更に、SSDの場合、論理データアドレスを物理的記憶場所にマッピングするインディレクションデータテーブルを保存する必要がある。本質的に、PLIイベントは、時間的に予測がつかず、従って、このようなイベントの対応サポートは、容易ではなく、困難なプロセスである。従って、ファームウェアは、まず第1に、PLIイベントに対して必ずしも最適に反応するとは限らない場合がある。
従って、ファームウェアトレーシング情報は、デベロッパにとって、より価値のあるデバッグツールの1つである。イベントトレース情報は、以前の何百または何千という実行済みコマンドに関連した実行情報をリストしたログに例えられる。トレース情報は、例えば、実行された最後のコード行の識別、コード変数等を含むことができ、これらは全て、デバッガにとって、重要な情報である。しかしながら、メモリダンプは、一般的に、ファームウェアデータ構造と、場合によってはユーザデータを優先するが、トレーシング情報は、システム故障の際にシステムから抽出するべき優先順位の低い情報として扱われる。従って、システムが停電を経験した際に処理用に利用可能な短期持続充電は、トレーシング情報に到達するのにさえ十分ではない可能性があるので、トレーシング情報は、決して永続的に保存されない可能性がある。
先に述べたように、従来のメモリダンプ処理の欠点の幾つかは、メモリダンプが周期的に行われること、及びデータ構造及びユーザデータが優先されることである。更に、1つ以上の割り込みシーケンスが無効になり、結果的に、状態データが永続的に全く保存されない時にシステム故障が生じる場合がある。
[ダイナミックランダムアクセスメモリ(DRAM)]
DRAMは、幾つかの興味深い固有の物理的性質を持つ。揮発性と見なされるが、DRAMは、比較的短期間、不揮発性メモリの幾つかの特徴を実際に示すことが知られている。即ち、システムの電源を切って入れ直した後、内部DRAMは、ある期間、例えば、場合により30秒から最大2〜3分間、電力なしでその状態を保持することができる。幾つかのビットが落ちるまたは反転する場合があるが、DRAM内のデータは、停電直後の期間はまだ比較的完全なままである。更に、コントローラメモリマネージャは、DRAMに対して、データ中の一部のエラーを訂正可能なECC保護(シングルビット訂正、ダブルビット検出)を用いてもよい。
[イベントトレース情報の復旧方法]
DRAMの上記の特徴に基づいて、電源ダウンイベント後の電源アップ状況において(電源アップは、一般的に、電源ダウンの2〜3秒以内に生じる)、基本的に、電源ダウン時のDRAM状態を時がたって回顧することができ、最後のDRAMリフレッシュまで戻ることができる。不注意による停電後に復旧されるDRAM状態情報がイベントトレース情報を含むこととなっている場合は、このような情報は、貴重なデバッグリソースを提供することができる。例えば、このようなイベントトレース情報を用いて、どのようにファームウェアが特定のイベント、即ち、停電障害による故障等の故障イベントに応答しているかを理解し、デバッグすることができる。
図2は、本発明の一実施形態による、停電障害(PLI)状況においてイベントトレース情報を復旧させる方法を示すフロー図である。図2に示すプロセスは、SSD102(図1)等のSSDにおいて実施され得る。更に具体的には、図2に示されるプロセスは、ある実施形態によれば、SSD102のコントローラ112(図1)において実施され得る。このプロセスロジックは、SSD102内のアナログまたはデジタルハードウェア回路として、または、好ましくは、SSD102内のCPUまたはMPU等のプロセッサによって実行されるファームウェア命令として実施され得る。
図2のブロック202において、揮発性メモリからのイベントトレース情報は、第2のメモリにコピーされる。例えば、イベントトレース情報は、揮発性メモリ122(図1)から揮発性メモリ122の専用部分、あるいは1つ以上の不揮発性メモリ120a、120b、120n(図1)へとコピーされる。揮発性メモリから第2のメモリへのイベントトレース情報のコピーは、ある実施形態においては、停電障害イベントに応答した電源オン時に行われる。これは、応答による電源オンサイクル時にデータがリセットまたは上書きされる前のイベントトレース情報をメモリにコピーする最適な時であり、なぜなら、最新の情報が再キャプチャされる、即ち、最後の周期的なトレース保存以降に生じたいずれの処理も反映されるからである。更に、このイベントトレース情報のコピーは、電源オフ状況に対する応答ではない「ウォーム」リセットではなく、電源が実際にオフであった「コールド」リセットと併用される。
ブロック204では、不揮発性メモリに保存されたコンテキスト復元データの破損状態が検出される。一般的に、電源オンシーケンス時に、ファームウェアは、不揮発性または永続的媒体でどんな情報が入手可能であるかに基づいて、その状態を復元しようとする。このプロセスは、ファームウェアが故障時に実行していたコンテキストまたは状態を復元しようと試みることから、本明細書ではコンテキスト復元と呼ぶ。更に、ファームウェアは、復元目的で使用するようにプログラムされたデータの破損状態を検出するように構成される。非限定的例として、ファームウェアは、インディレクション(LBA)テーブルを完全に再構築することが不可能であること、または永続的メモリに記録されていないダーティ書き込みデータが存在すること等を検出し得る。
ブロック206では、破損状態の表示が設定される。例えば、データの破損状態を検出する際に、ファームウェアは、破損状態が存在することを示すフラグまたはビットを設定し得る。ホストが設定された表示にアクセスして、読み取ることができることから、この表示を設定することにより、ファームウェアは、ホストに対して効果的に破損状態について知らせる。例えば、ストレージデバイスに対して外部のプログラム(例えば、テストまたは検証プログラム)は、フラグを読み取り、ストレージデバイスからホストに対して、PLIイベント時からのイベントトレース情報を要求する。なお、これは、保存プロセスが情報の現在の状態を実際に変更し得ることから、イベントトレース情報を不揮発性メモリに保存するのに適した時ではない。
ブロック208において、イベントトレース情報は、例えば破損状態表示に応答した、ホストまたはホストで実行されるアプリケーションプログラムからの要求に応答して、ホストに渡される。この情報は、従来のストレージデバイスインタフェース(例えばSAS)を用いて、または側波帯デバッグインタフェースを介してホストに渡すことができる。
[フォールトトレラントデバッグツール]
デバッグプロセスに関しては、基本的にどれだけの量の正規形式のトレース情報でも、解析中の問題についてのある程度の洞察力の提供に役立ち得る。従って、利用可能な正規形式のトレース情報を多く持つ程、より良い問題解析を行うことができる。
ある実施形態によれば、イベントトレース情報は、ホストで実行され得るフォールトトレラントデバッグツールに渡される。デバッグツールは、イベントトレースデータをパース及び解析する後処理ツールである。イベントトレース情報は、通常、適格な形式であるが、ロバストなデバッグツールは、不正形式のイベントトレース情報及び文字を許容するべきである。このようなデバッグツールは、ツールが破損データに遭遇したとしてもその処理を継続し、不正形式の情報に関して知的な推定を行うことにより、不正形式の情報をどのように正規形式にするべきかに関して「最も妥当な推測」に到達するべき点で、少なくともある程度フォールトトレラントである。代替的に、かつ、おそらくより一般的に、トレース情報が取り出されると(通常、顧客ドライブ認定エンジニアによって)、それはSSD開発チームに渡され、オフラインでパースされる。
ある実施形態によれば、フォールトトレラントデバッグツールは、不正形式のトレース文字から正規トレース文字を推論するように構成された推論エンジンを含む。この推論は、システム及び構成要素である揮発性メモリがPLIイベントにより電力を失っていく際に、イベントトレース情報を表す各ビットが、通常、「1」から「0」へと低下するという仮定または認識に基づく。デバッグツールでこのようなフォールトトレランスを的確に実施することは、多くの要素に基づいて、例えば、対応するファームウェアの実施に基づいて、対応するイベントトレース情報の形成に基づいて、及びデバッグツール自体の実施等に基づいて、異なり得る。
上記の明細書では、実施ごとに異なり得る多数の具体的な詳細に関連して、本発明の実施形態を記載した。従って、何が発明であるか、及び発明であると出願人によって意図されたものの唯一かつ排他的な指標は、本出願が公表する一組の請求項であり、後の補正を含む、当該請求項が公表する特定の形式のものである。当該請求項に含まれる用語に関して本明細書に明確に記載した定義はいずれも、請求項において使用される当該用語の意味を支配するものとする。従って、請求項に明確に記載されていない限定、要素、性質、特徴、利点、または特性は、当該請求項の範囲を決して限定するものではない。従って、本明細書及び図面は、限定的な意味ではなく、例示的に捉えられるものである。
100 SSD構成
104 ホストデバイス
106 主要通信インタフェース
110 インタフェース
112 コントローラ
114 アドレッシング
116 データバッファキャッシュ
120a 不揮発性メモリ
120b 不揮発性メモリ
122 揮発性メモリ
202 ブロック
204 ブロック
206 ブロック
208 ブロック
ATA シリアル
SCSI シリアル接続

Claims (20)

  1. ストレージデバイスにおける停電障害イベントに応答して電源をオンにする際に、第1の揮発性メモリから第2のメモリへとイベントトレース情報をコピーするステップと、
    不揮発性メモリに保存されたコンテキスト復元データの破損状態を検出するステップと、
    前記破損状態の表示を設定するステップと、
    を含む方法。
  2. ホストからの要求に応答して、前記イベントトレース情報を前記ホストに渡すステップを更に含む、
    請求項1に記載の方法。
  3. 前記第1の揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)である、
    請求項1に記載の方法。
  4. 前記第2のメモリは、前記第1の揮発性メモリと同じメモリである、
    請求項1に記載の方法。
  5. 前記第2のメモリは、NANDフラッシュメモリである、
    請求項1に記載の方法。
  6. 不正形式のトレース文字から正規トレース文字を推論するように構成された推論エンジンを含むフォールトトレラントデバッグツールと共に使用するために、ホストからの要求に応答して、前記イベントトレース情報を前記ホストに渡すステップを更に含む、
    請求項1に記載の方法。
  7. ホストからの要求に応答して、前記ホストで実行されるフォールトトレラントデバッグツールに前記イベントトレース情報を渡すステップを更に含み、
    前記フォールトトレラントデバッグツールは、不正形式のトレース文字から正規トレース文字を推論するように構成された推論エンジンを含む、
    請求項1に記載の方法。
  8. 前記推論エンジンは、前記イベントトレース情報を表す各ビットが、前記第1の揮発性メモリが前記停電障害イベントにより電力を失っていく際に、「1」から「0」へと低下するという仮定に基づいて、不正形式のトレース文字から正規トレース文字を推論するように構成される、
    請求項7に記載の方法。
  9. 1つ以上の命令シーケンスを保存するソリッドステートドライブコントローラであって、前記1つ以上の命令シーケンスは、1つ以上のプロセッサによって実行されると、
    ストレージデバイスにおける停電障害イベントに応答して電源をオンにする際の、第1の揮発性メモリから第2のメモリへのイベントトレース情報のコピーと、
    不揮発性メモリに保存されたコンテキスト復元データの破損状態の検出と、
    前記破損状態の表示の設定と、
    を生じさせる、ソリッドステートドライブコントローラ。
  10. 前記1つ以上の命令シーケンスは、前記1つ以上のプロセッサによって実行されると、ホストからの要求に応答して、前記イベントトレース情報を前記ホストに渡させる、
    請求項9に記載のコントローラ。
  11. 前記第1の揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)である、
    請求項9に記載のコントローラ。
  12. 前記1つ以上の命令シーケンスは、前記1つ以上のプロセッサによって実行されると、
    不正形式のトレース文字から正規トレース文字を推論するように構成された推論エンジンを含むフォールトトレラントデバッグツールと共に使用するために、ホストからの要求に応答して、前記イベントトレース情報を前記ホストに渡させる、
    請求項9に記載のコントローラ。
  13. 前記1つ以上の命令シーケンスは、前記1つ以上のプロセッサによって実行されると、
    ホストからの要求に応答して、前記ホストで実行されるフォールトトレラントデバッグツールに前記イベントトレース情報を渡させ、
    前記フォールトトレラントデバッグツールは、不正形式のトレース文字から正規トレース文字を推論するように構成された推論エンジンを含む、
    請求項9に記載のコントローラ。
  14. ホストと通信するための通信インタフェースと、
    1つ以上の不揮発性媒体と、
    揮発性媒体と、
    1つ以上の命令シーケンスを保存するコントローラであって、前記1つ以上の命令シーケンスは、1つ以上のプロセッサによって実行されると、
    ストレージデバイスにおける停電障害イベントに応答して電源をオンにする際の、前記揮発性メモリから第2のメモリへのイベントトレース情報のコピーと、
    前記不揮発性媒体に保存されたコンテキスト復元データの破損状態の検出と、
    前記破損状態の表示の設定と、
    を生じさせるコントローラと、
    を含むストレージデバイス。
  15. 前記1つ以上の命令シーケンスは、前記1つ以上のプロセッサによって実行されると、前記ホストからの要求に応答して、前記イベントトレース情報を前記ホストに渡させる、
    請求項14に記載のストレージデバイス。
  16. 前記揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)である、
    請求項14に記載のストレージデバイス。
  17. 前記第2のメモリは、前記揮発性メモリである、
    請求項14に記載のストレージデバイス。
  18. 前記第2のメモリは、NANDフラッシュメモリである、
    請求項14に記載のストレージデバイス。
  19. 前記1つ以上の命令シーケンスは、前記1つ以上のプロセッサによって実行されると、
    フォールトトレラントデバッグツールと共に使用するために、前記ホストからの要求に応答して、前記イベントトレース情報を前記ホストに渡させ、
    前記フォールトトレラントデバッグツールは、不正形式のトレース文字から正規トレース文字を推論するように構成された推論エンジンを含む、
    請求項14に記載のストレージデバイス。
  20. 前記推論エンジンは、前記イベントトレース情報を表す各ビットが、前記揮発性メモリが前記停電障害イベントにより電力を失っていく際に、「1」から「0」へと低下するという仮定に基づいて、不正形式のトレース文字から正規トレース文字を推論するように構成される、
    請求項19に記載のストレージデバイス。
JP2013260888A 2012-12-18 2013-12-18 停電障害状況におけるイベントトレース情報の復旧 Pending JP2014120179A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/719,209 2012-12-18
US13/719,209 US9690642B2 (en) 2012-12-18 2012-12-18 Salvaging event trace information in power loss interruption scenarios

Publications (1)

Publication Number Publication Date
JP2014120179A true JP2014120179A (ja) 2014-06-30

Family

ID=50030823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013260888A Pending JP2014120179A (ja) 2012-12-18 2013-12-18 停電障害状況におけるイベントトレース情報の復旧

Country Status (5)

Country Link
US (1) US9690642B2 (ja)
JP (1) JP2014120179A (ja)
KR (1) KR20140079285A (ja)
DE (1) DE102013021679A1 (ja)
GB (1) GB2511391B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474618B2 (en) * 2014-09-04 2019-11-12 Western Digital Technologies, Inc. Debug data saving in host memory on PCIE solid state drive
US9836108B2 (en) 2014-09-10 2017-12-05 Toshiba Memory Corporation Memory system and controller
US10055377B2 (en) 2016-02-24 2018-08-21 Western Digital Technologies, Inc. Using a proprietary framework on a standards-based embedded device
US9946489B2 (en) 2016-07-27 2018-04-17 Western Digital Technologies, Inc. Multi-stream journaled replay
US10678924B2 (en) * 2016-08-10 2020-06-09 Qualcomm Incorporated Hardware-based software-resilient user privacy exploiting ephemeral data retention of volatile memory
CN106951354B (zh) * 2017-03-20 2020-08-18 湖南磐石科技有限公司 固态硬盘及其故障检测装置和方法
KR102467842B1 (ko) 2017-10-13 2022-11-16 삼성전자주식회사 인스트럭션을 실행하는 코어 및 그것을 포함하는 시스템
KR102415218B1 (ko) * 2017-11-24 2022-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US20190042460A1 (en) * 2018-02-07 2019-02-07 Intel Corporation Method and apparatus to accelerate shutdown and startup of a solid-state drive
US10636495B2 (en) 2018-06-12 2020-04-28 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
CN109086168A (zh) * 2018-07-13 2018-12-25 深圳忆联信息系统有限公司 一种利用硬件备份固态硬盘写速度的方法及其系统
CN110989918B (zh) 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器
CN110990175B (zh) 2018-10-03 2023-03-14 慧荣科技股份有限公司 错误处置方法以及数据存储装置及其控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05210595A (ja) * 1991-09-05 1993-08-20 Internatl Business Mach Corp <Ibm> メモリシステム
JP2004152301A (ja) * 2002-10-28 2004-05-27 Sandisk Corp 不揮発性メモリシステムにおいて用いられる電力管理ブロック
JP2007286937A (ja) * 2006-04-18 2007-11-01 Hitachi Ltd ストレージ装置及びストレージ装置の電源障害管理方法
JP2012078941A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 情報処理装置及びキャッシュ制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02151913A (ja) 1988-12-02 1990-06-11 Meidensha Corp 電源断検出方法
US6502208B1 (en) * 1997-03-31 2002-12-31 International Business Machines Corporation Method and system for check stop error handling
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
DE10227255B4 (de) 2002-06-19 2008-06-26 Hyperstone Gmbh Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
US6889341B2 (en) * 2002-06-28 2005-05-03 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining data integrity using a system management processor
US6988175B2 (en) 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7181672B2 (en) 2003-09-25 2007-02-20 Intel Corporation Method, system, and apparatus for supporting power loss recovery in ECC enabled memory devices
US20050138302A1 (en) * 2003-12-23 2005-06-23 Intel Corporation (A Delaware Corporation) Method and apparatus for logic analyzer observability of buffered memory module links
US7308609B2 (en) * 2004-04-08 2007-12-11 International Business Machines Corporation Method, data processing system, and computer program product for collecting first failure data capture information
US7424643B2 (en) 2004-12-30 2008-09-09 Intel Corporation Device, system and method for power loss recovery procedure for solid state non-volatile memory
US7610445B1 (en) * 2005-07-18 2009-10-27 Palm, Inc. System and method for improving data integrity and memory performance using non-volatile media
JP2008004011A (ja) 2006-06-26 2008-01-10 Canon Inc 不揮発メモリのデータ復旧方法を備えたコンピュータ装置
JP2009122819A (ja) 2007-11-13 2009-06-04 Fuji Electric Systems Co Ltd メモリバックアップ装置
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
JP2010004293A (ja) 2008-06-19 2010-01-07 Ricoh Co Ltd 画像形成装置、画像形成装置の書き込みエラー検知方法
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US9003118B2 (en) 2009-01-09 2015-04-07 Dell Products L.P. Systems and methods for non-volatile cache control
CN103399813B (zh) 2013-06-30 2016-05-11 惠州市德赛西威汽车电子股份有限公司 一种基于Trace信息的嵌入式系统离线跟踪分析方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05210595A (ja) * 1991-09-05 1993-08-20 Internatl Business Mach Corp <Ibm> メモリシステム
JP2004152301A (ja) * 2002-10-28 2004-05-27 Sandisk Corp 不揮発性メモリシステムにおいて用いられる電力管理ブロック
JP2007286937A (ja) * 2006-04-18 2007-11-01 Hitachi Ltd ストレージ装置及びストレージ装置の電源障害管理方法
JP2012078941A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 情報処理装置及びキャッシュ制御方法

Also Published As

Publication number Publication date
DE102013021679A1 (de) 2014-06-18
GB201321990D0 (en) 2014-01-29
GB2511391A (en) 2014-09-03
US9690642B2 (en) 2017-06-27
KR20140079285A (ko) 2014-06-26
GB2511391B (en) 2015-02-18
US20140173357A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
US9690642B2 (en) Salvaging event trace information in power loss interruption scenarios
US8484522B2 (en) Apparatus, system, and method for bad block remapping
US20230016555A1 (en) Data recovery method, apparatus, and solid state drive
TWI479309B (zh) 控制固態硬碟的裝置及方法
TWI490876B (zh) 系統啟動引導處理方法及裝置
US10592134B1 (en) Open block stability scanning
US20130024735A1 (en) Solid-state memory-based storage method and device with low error rate
US20150378642A1 (en) File system back-up for multiple storage medium device
KR20110086725A (ko) 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법
US11294750B2 (en) Media management logger for a memory sub-system
US9619330B2 (en) Protecting volatile data of a storage device in response to a state reset
US20230251931A1 (en) System and device for data recovery for ephemeral storage
CN116414616A (zh) 一种固态硬盘ssd故障恢复方法、ssd及系统
US20100138603A1 (en) System and method for preventing data corruption after power failure
US11928036B2 (en) Recovery from broken mode
US11593209B2 (en) Targeted repair of hardware components in a computing device
US11893275B2 (en) DRAM-less SSD with recovery from HMB loss
US11809742B2 (en) Recovery from HMB loss
US9274709B2 (en) Indicators for storage cells
KR20240003823A (ko) 정정된 에러를 관리하는 전자 장치 및 전자 장치의 동작 방법
CN115687180A (zh) 在具有硬件加速输入/输出路径的存储器子系统上生成系统存储器快照

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150630