(57)【要約】【課題】  動作停止した原因の解析に利用できる情報を集めることができる電子機器及び情報記録方法を提供することである。【解決手段】  実施形態による電子機器は、外部電源から複数の電源を生成する電源回路と、前記電源回路への前記外部電源の供給が停止した回数を計数する第１カウンタと、前記複数の電源の中の第１電源により動作し、前記複数の電源の生成が停止した回数を計数する第２カウンタと、前記第１電源により動作し、前記複数の電源のいずれかが所定電圧以下となった回数を計数する第３カウンタと、前記電源回路への前記外部電源の供給が正常に停止したか否かを示すステータス情報を記憶する不揮発性の第１メモリと、前記第１メモリに記憶されている前記ステータス情報に基づいて、前記電源回路への前記外部電源の供給が正常に停止した回数及び前記電源回路への前記外部電源の供給が異常に停止した回数を計数する第４カウンタと、を具備する。【選択図】  図９
2020154431.tif 000002
【特許請求の範囲】
【請求項１】
外部電源から複数の電源を生成する電源回路と、
前記電源回路への前記外部電源の供給が停止した回数を計数する第１カウンタと、
前記複数の電源の中の第１電源により動作し、前記複数の電源の生成が停止した回数を計数する第２カウンタと、
前記第１電源により動作し、前記複数の電源のいずれかが所定電圧以下となった回数を計数する第３カウンタと、
前記電源回路への前記外部電源の供給が正常に停止したか否か及び前記電源回路が前記複数の電源の生成を正常に停止したか否かを示すステータス情報を記憶する不揮発性の第１メモリと、
前記ステータス情報に基づいて、前記電源回路への前記外部電源の供給が正常に停止した回数及び前記電源回路への前記外部電源の供給が異常に停止した回数を計数する第４カウンタと、
を具備する電子機器。
【請求項２】
前記第１カウンタは前記外部電源により動作し、
前記第４カウンタは前記電源回路が生成される前記複数の電源により動作する請求項１記載の電子機器。
【請求項３】
前記第１カウンタの計数値と、前記第２カウンタの計数値と、前記第３カウンタの計数値と、前記第４カウンタの計数値と、前記ステータス情報に基づいて、前記電子機器が動作停止した原因が、前記電源回路への前記外部電源の供給の正常停止、前記電源回路への前記外部電源の供給の不正停止、前記電源回路の電源生成の正常停止又は前記電源回路の電源生成の異常停止であるかを判別する判別手段をさらに具備する請求項１記載の電子機器。
【請求項４】
前記第１メモリは、前記電源回路への前記外部電源の供給が正常に停止した回数、前記電源回路への前記外部電源の供給が不正に停止した回数、前記電源回路の電源生成が正常に停止した回数及び前記電源回路の電源生成が異常に停止した回数をさらに記憶する請求項３記載の電子機器。
【請求項５】
前記電源回路への前記外部電源の供給が停止した時、前記ステータス情報を前記第１メモリに書き込む書き込み回路をさらに具備する請求項１記載の電子機器。
【請求項６】
前記電子機器は前記外部電源を生成するホストに接続され、
前記電子機器は、前記ホストから送信されたデータを記憶する揮発性の第２メモリを具備し、
前記電子機器は、前記ホストから送信されたシャットダウンコマンドに応答して前記第２メモリに記憶されている前記データを前記第１メモリに書き込み、書き込み完了を前記ホストに通知し、前記シャットダウンコマンドを受信したことを示すロゴデータを前記第１メモリに書き込み、起動時に前記ロゴデータに基づいて前記電源回路への前記外部電源の供給が正常に停止したか否かを示す前記ステータス情報を前記第１メモリに書き込む請求項１記載の電子機器。
【請求項７】
外部電源から複数の電源を生成する電源回路を具備する電子機器の情報記録方法であって、
前記電源回路への前記外部電源の供給が停止した回数を計数しと、
前記複数の電源の生成が停止した回数を計数し、
前記複数の電源のいずれかが所定電圧以下となった回数を計数し、
前記電源回路への前記外部電源の供給が正常に停止したか否か及び前記電源回路が前記複数の電源の生成を正常に停止したか否かを示すステータス情報を第１メモリに書き込み、
前記ステータス情報に基づいて、前記電源回路への前記外部電源の供給が正常に停止した回数及び前記電源回路への前記外部電源の供給が異常に停止した回数を計数する情報記録方法。
【請求項８】
前記電源回路への前記外部電源の供給が停止した回数と、前記複数の電源の生成が停止した回数と、前記複数の電源のいずれかが所定電圧以下となった回数と、前記ステータス情報と、前記電源回路への前記外部電源の供給が正常に停止した回数と、前記電源回路への前記外部電源の供給が異常に停止した回数に基づいて、前記電子機器が動作停止した原因が、前記電源回路への前記外部電源の供給の正常停止、前記電源回路への前記外部電源の供給の不正停止、前記電源回路の電源生成の正常停止又は前記電源回路の電源生成の異常停止であるかを判別する請求項７記載の情報記録方法。
【請求項９】
前記電源回路への前記外部電源の供給が正常に停止した回数、前記電源回路への前記外部電源の供給が不正に停止した回数、前記電源回路の電源生成が正常に停止した回数及び前記電源回路の電源生成が異常に停止した回数を前記第１メモリに書き込む請求項８記載の情報記録方法。
【請求項１０】
前記電源回路への前記外部電源の供給が停止した時、前記ステータス情報を前記第１メモリに書き込む請求項７記載の情報記録方法。
【請求項１１】
前記電子機器は前記外部電源を生成するホストに接続され、
前記電子機器は、前記ホストから送信されたデータを記憶する揮発性の第２メモリを具備し、
前記ホストから送信されたシャットダウンコマンドに応答して前記第２メモリに記憶されている前記データを前記第１メモリに書き込み、
書き込み完了を前記ホストに通知し、
前記シャットダウンコマンドを受信したことを示すロゴデータを前記第１メモリに書き込み、
起動時に前記ロゴデータに基づいて前記電源回路への前記外部電源の供給が正常に停止したか否かを示す前記ステータス情報を前記第１メモリに書き込む請求項７記載の情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は電子機器及び電子機器の情報記録方法に関する。
【背景技術】
【０００２】
複数の電源が必要な電子機器がある。このような電子機器は、他の機器から供給される外部電源から複数の内部電源を生成する電源回路を備える。外部電源が遮断されると電子機器は動作しない。また、外部電源が供給されている場合でも電源回路の故障等の原因により電源回路が複数の内部電源を正常に生成しない場合も、電子機器は動作しない。
【０００３】
電子機器が動作停止した場合、原因を特定することが困難である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第９５６３２４９号明細書
【特許文献２】米国特許第９７７８９８８号明細書
【特許文献３】米国特許第９３８３７９５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、動作停止した原因の解析に利用できる情報を集めることができる電子機器及び上記電子機器の情報記録方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態による電子機器は、外部電源から複数の電源を生成する電源回路と、第１カウンタと、第２カウンタと、第３カウンタと、不揮発性のメモリと、第４カウンタと、を具備する。前記第１カウンタは、前記電源回路への前記外部電源の供給が停止した回数を計数する。前記第２カウンタは、前記複数の電源の中の第１電源により動作し、前記複数の電源の生成が停止した回数を計数する。前記第３カウンタは、前記第１電源により動作し、前記複数の電源のいずれかが所定電圧以下となった回数を計数する。前記メモリは、前記電源回路への前記外部電源の供給が正常に停止したか否かを示すステータス情報を記憶する。前記第４カウンタは、前記ステータス情報に基づいて、前記電源回路への前記外部電源の供給が正常に停止した回数及び前記電源回路への前記外部電源の供給が異常に停止した回数を計数する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【図２】本発明の実施形態に係るＳＳＤの構成の一例を示すブロック図である。
【図３】本発明の実施形態に係る故障解析データの一例を示す図である。
【図４】本発明の実施形態に係るシャットダウン回数データの一例を示す図である。
【図５】本発明の実施形態に係るＳＳＤの起動処理の一例を示すフローチャートである。
【図６】本発明の実施形態に係るＳＳＤの故障解析データの記録処理の一例を示すフローチャートである。
【図７】本発明の実施形態に係るＳＳＤの故障解析データの記録処理の他の例を示すフローチャートである。
【図８】本発明の実施形態に係るＳＳＤの外部電源の供給が停止されたときの動作の一例を示すフローチャートである。
【図９】ＳＳＤの種々の動作状況における故障解析データの例を示す図である。
【図１０】ある動作状況における電源回路の入出力信号波形の一例を示す図である。
【図１１】他の動作状況における電源回路の入出力信号波形の一例を示す図である。
【図１２】さらに他の動作状況における電源回路の入出力信号波形の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介して接続されることも意味する。
【０００９】
電子機器は特定の装置に限定されないが、実施形態では、ソリッドステートドライブ（Solid State Drive）（以下、ＳＳＤと称する）を電子機器の一例として説明する。
［システム構成］  
図１は、本発明の実施形態に係る情報処理システムの構成の一例を示すブロック図である。情報処理システムは、ホストデバイス（以下、ホストと称する）１０とＳＳＤ２０を含む。ＳＳＤ２０は、記憶部として不揮発性半導体メモリを備える。
【００１０】
ホスト１０は、ＳＳＤ２０にアクセスする情報処理装置である。ホスト１０は、大量且つ多様なデータをＳＳＤ２０に保存するサーバであっても良い。この場合、ＳＳＤ２０は、ケーブルまたはネットワークを介してホスト１０に接続されても良い。また、ホスト１０は、パーソナルコンピュータであっても良い。この場合、ＳＳＤ２０は、ホスト１０に内蔵されても良いし、ケーブルまたはネットワークを介して接続されても良い。
【００１１】
ＳＳＤ２０は、コントローラ２２、フラッシュメモリ２４、ＤＲＡＭ（Dynamic Random Access Memory）２６、温度センサ２８、電源回路３０等を備える。コントローラ２２は、ＣＰＵ３２、ホストインタフェース（ホストＩ／Ｆ）３４、ＮＡＮＤインタフェース（ＮＡＮＤ  Ｉ／Ｆ）３６、ＤＲＡＭインタフェース（ＤＲＡＭ  Ｉ／Ｆ）３８等を備える。ＣＰＵ３２、ホストＩ／Ｆ３４、ＮＡＮＤ  Ｉ／Ｆ３６、ＤＲＡＭ  Ｉ／Ｆ３８はバスライン４２に接続される。コントローラ２２は、Ｓｙｓｔｅｍ−ｏｎ−ｃｈｉｐ（ＳｏＣ）のような回路によって実現され得る。ＣＰＵ３２はフラッシュメモリ２４に記憶されているファームウェアを実行し、種々の機能を実現する。
【００１２】
ホスト１０とＳＳＤ２０とを電気的に相互接続するためのホストＩ／Ｆ３４としては、様々な規格が使用され得る。例えばSmall Computer System Interface（ＳＣＳＩ）（登録商標）、PCI Express（登録商標）（ＰＣＩｅ（登録商標）とも称する）、Serial Attached SCSI（ＳＡＳ）（登録商標）、Serial Advanced Technology Attachment（ＳＡＴＡ）（登録商標）、Non Volatile Memory Express（ＮＶＭｅ（登録商標））、Universal Serial Bus（ＵＳＢ）（登録商標）、Universal Asynchronous Receiver/Transmitter（ＵＡＲＴ）（登録商標）等の規格がホストＩ／Ｆ３４として使用され得る。
【００１３】
フラッシュメモリ２４は不揮発性半導体メモリの一例であり、例えばＮＡＮＤ型のフラッシュメモリからなる。しかし、不揮発性半導体メモリとしては、ＮＡＮＤ型のフラッシュメモリに限らず、ＮＯＲ型等の他の不揮発性半導体メモリが用いられても良い。図示しないが、フラッシュメモリ２４は、複数のフラッシュメモリチップ（すなわち、複数のフラッシュメモリダイ）を含んでいても良い。フラッシュメモリ２４は、メモリセル当たりに１ビット又は複数ビットを格納可能に構成されても良い。フラッシュメモリ２４のリード、ライトはコントローラ２２により制御される。フラッシュメモリ２４はＮＡＮＤ  Ｉ／Ｆ３６に接続される。
【００１４】
揮発性メモリであるランダムアクセスメモリ（RAM）としてのＤＲＡＭ２６は、例えばＤＤＲ３Ｌ（Double Data Rate 3 Low voltage）規格のＤＲＡＭである。ＤＲＡＭ２６には、ライトバッファと、リードバッファと、ルックアップテーブル（ＬＵＴ）のキャッシュ領域と、システム管理情報の格納領域とが設けられても良い。ライトバッファは、フラッシュメモリ２４に書き込まれるデータを一時的に格納するためのバッファ領域である。リードバッファは、フラッシュメモリ２４から読み出したデータを一時的に格納するためのバッファ領域である。ルックアップテーブル（ＬＵＴ）のキャッシュ領域は、アドレス変換テーブル（論理アドレス／物理アドレス変換テーブルとも称する）である。システム管理情報の格納領域は、ＳＳＤ２０の処理中に用いられる各種の値や各種のテーブル等である。ＬＵＴは、論理アドレスそれぞれとフラッシュメモリ２４の物理アドレスそれぞれとの間の対応表である。ＤＲＡＭ２６はＤＲＡＭ  Ｉ／Ｆ３８に接続される。ＤＲＡＭ２６は、コントローラ２２の外部に設けるのだけではなく、コントローラ２２の内に設けてもよい。その場合、ＤＲＡＭ２６の代わりにＳＲＡＭ（Static Random Access Memory）を用いても良い。ＳＲＡＭは、コントローラ２２に内蔵されている、より高速アクセスが可能な揮発性メモリである。
【００１５】
温度センサ２８はＳＳＤ２０の温度を検知する。温度センサ２８の出力は、シリアル通信規格、例えばＩ２Ｃ（Inter-Integrated Circuit）規格に従ってコントローラ２２に送信される。コントローラ２２は、温度センサ２８の出力に応じて電源回路３０を制御し、電源回路３０からＳＳＤ２０の各デバイスへ供給される複数の電源電圧の生成を制御する。
【００１６】
電源回路３０は、単一又は数個の外部電源からＳＳＤ２０の各デバイスで必要な複数の電源を生成する。図１では電源ラインは図示しない。電源回路３０は単一又は数個のＩＣからなっても良い。電源回路３０を制御する制御信号は、シリアル通信規格、例えばＩ２Ｃ規格に従ってコントローラ２２から送信される。コントローラ２２は、ホスト１０からのコマンドに従って電源回路３０を制御し、電源回路３０からＳＳＤ２０の各デバイスへ供給される複数の電源電圧の生成を制御する。
【００１７】
［ＳＳＤ２０の構成］
図２は本発明の実施形態に係るＳＳＤの構成の一例を示すブロック図である。ＳＳＤ２０はホスト１０に電気的に接続されるコネクタ４４を有する。コネクタ４４には外部電源が供給される。外部電源は、例えばＤＣ５Ｖ又はＤＣ３．３Ｖである。外部電源はコネクタ４４からヒューズ４６及びロードスイッチ４８を直列に介して電源回路３０に供給される。
【００１８】
ヒューズ４６は、外部電源が一定電圧以上の場合、溶断される。以降、ヒューズ４６を交換しない限り、外部電源はロードスイッチ４８へ供給されない。ロードスイッチ４８は、オン／オフスイッチであり、通常はオン状態である。オン状態において、ロードスイッチ４８は、供給された外部電源を出力する。外部電源が一定電圧以上の場合、ロードスイッチ４８はオフ状態となる。オフ状態において、ロードスイッチ４８は外部電源を出力しない、すなわち０Ｖを出力する。ヒューズ４６が溶断される一定電圧は、ロードスイッチ４８がオン状態からオフ状態に変化する一定電圧より高くても低くても良いし、同じでも良い。ヒューズ４６とロードスイッチ４８により電源回路３０へ過電流が供給されることが二重に防止される。
【００１９】
電源回路３０には、ロードスイッチ４８から出力される外部電源（以下、外部電源はＤＣ３．３Ｖとする）が供給される。電源回路３０は、ＬＤＯ（Low Dropout）５２、５４、ＤＣ／ＤＣコンバータ５６、５８、外部電源供給停止カウンタ６０、パワーオンリセット（Power On Reset）ＰｏＲ／電圧低下保護（Under Voltage Protection）ＵＶＰ信号発生器６２を備える。
【００２０】
ＬＤＯ５２、５４は、小電流を必要とするデバイスの電源を出力する回路である。ＤＣ／ＤＣコンバータ５６、５８は、大電流を必要とするデバイスの電源を出力する回路である。ＬＤＯ５２、５４、ＤＣ／ＤＣコンバータ５６、５８は個別のＩＣから構成されても良いし、単一のＩＣから構成されても良い。単一のＩＣは電源管理ＩＣ（Power Management IC）ＰＭＩＣと称されることもある。外部電源供給停止カウンタ６０、ＰｏＲ／ＵＶＰ信号発生器６２はＰＭＩＣ内に含まれることもある。
【００２１】
ＬＤＯ５２、５４とＤＣ／ＤＣコンバータ５６、５８は、ともに外部電源を降圧して、または外部電源をそのまま利用して、ＳＳＤ２０内の各デバイスが必要とする複数の電源を生成する。
例えばＬＤＯ５２は、外部電源をそのまま利用して３．３Ｖ電源を生成する。３．３Ｖ電源はコントローラ２２と温度センサ２８に供給される。例えばＬＤＯ５４は、外部電源を降圧して２．５Ｖ電源を生成する。２．５Ｖ電源はコントローラ２２に供給される。例えばＤＣ／ＤＣコンバータ５８は、外部電源を降圧して２．８Ｖ電源を生成する。２．８Ｖ電源はフラッシュメモリ２４に供給される。
【００２２】
例えばＤＣ／ＤＣコンバータ５６は、外部電源を降圧して１．３５Ｖ、１．８Ｖ、１．０Ｖの３チャネルの電源ＰＤ０、ＰＤ１、ＰＤ２を生成する。１．３５Ｖ電源はＤＲＡＭ２６に供給される。１．８Ｖ電源はフラッシュメモリ２４に供給される。１．０Ｖの３チャネルの電源ＰＤ０、ＰＤ１、ＰＤ２はコントローラ２２の種々の部分に供給される。ＤＣ／ＤＣコンバータ５６は、ＳＳＤ２０のパワーステートに応じて電源ＰＤ０、ＰＤ１又はＰＤ２を生成しない場合がある。例えばパワーステートが省電力モードの場合、ＤＣ／ＤＣコンバータ５６は電源ＰＤ２、ＰＤ１を生成せず、電源ＰＤ０を生成する。ＳＳＤ２０のパワーステートは、外部から受信するモード指定信号によって決定される。Ｉ２Ｃバスは温度センサ２８とコントローラ２２の間にも接続される。
【００２３】
外部電源供給停止カウンタ６０は電源回路３０への外部電源の供給が停止されたか否かを判定し、外部電源供給停止回数を計数する。外部電源供給停止カウンタ６０のカウント値はコントローラ２２に送信される。
ＰｏＲ／ＵＶＰ信号発生器６２はＰｏＲ信号とＵＶＰ信号を出力する。初期状態ではＰｏＲ信号とＵＶＰ信号のレベルはＬレベルである。電源回路３０は、外部電源が供給されると、複数の電源を生成する。電源回路３０が複数の電源の全てを正常に生成すると、ＰｏＲ／ＵＶＰ信号発生器６２はＰｏＲ信号をＬレベルからＨレベルに変更し、ＵＶＰ信号をＬレベルからＨレベルに変更する。
【００２４】
電源回路３０が複数の電源の全てを正常に生成した後、いずれかの電源の電圧が所定の割合、例えば６０％以下に低下すると、ＰｏＲ／ＵＶＰ信号発生器６２はＵＶＰ信号のレベルをＨレベルからＬレベルに変更する。外部電源の供給が遮断されると、ＰｏＲ／ＵＶＰ信号発生器６２はＰｏＲ信号のレベルをＨレベルからＬレベルに変更する。ＰｏＲ信号のレベルがＨレベルからＬレベルになると、電源回路３０は停止する。ＰｏＲ／ＵＶＰ信号発生器６２が出力するＰｏＲ信号とＵＶＰ信号はコントローラ２２に送信される。
【００２５】
コントローラ２２はＰｏＲカウンタ６４と、ＵＶＰカウンタ６６と、シャットダウンカウンタ６８を備える。ＰｏＲカウンタ６４はＰｏＲ信号をカウントする。ＵＶＰカウンタ６６はＵＶＰ信号をカウントする。ＰｏＲカウンタ６４、ＵＶＰカウンタ６６及びシャットダウンカウンタ６８は、コントローラ２２内のＣＰＵ３２がファームウェアを実行することにより実現される。または、ＰｏＲカウンタ６４、ＵＶＰカウンタ６６及びシャットダウンカウンタ６８は、個別のハードウェアにより実現されても良い。ＰｏＲカウンタ６４は、ＨレベルからＬレベルへのＰｏＲ信号のレベル変化時にカウント値を１だけインクリメントする。ＵＶＰカウンタ６６は、ＨレベルからＬレベルへのＵＶＰ信号のレベル変化時にカウント値を１だけインクリメントする。ＰｏＲカウンタ６４とＵＶＰカウンタ６６は電源ＰＤ０により動作する。
【００２６】
シャットダウンカウンタ６８はＳＳＤ２０のシャットダウン回数をカウントする。ＳＳＤ２０のシャットダウンは、ホスト１０からのコマンドに基づく正常な処理を経た正常なシャットダウンと、正常な処理を経ない不正なシャットダウンを含む。不正なシャットダウンは、例えばユーザによる電源ボタンの操作によるＳＳＤ２０への外部電源の供給停止、ユーザによる電源コンセントの引き抜きによるＳＳＤ２０への外部電源の供給停止、停電によるＳＳＤ２０への外部電源の供給停止、故障による電源回路３０の動作停止等を含む。
【００２７】
正常なシャットダウンの場合、ホスト１０はＳＳＤ２０への外部電源の供給を停止する前に、ＳＳＤ２０にシャットダウンを通知するコマンドを発行する。コントローラ２２はこのコマンドを受け取ると、シャットダウンの前に必要な処理を行う。例えば、フラッシュメモリ２４に書き込まれるべきデータが未だフラッシュメモリ２４に書き込まれておらず、ＤＲＡＭ２６内のライトバッファ内に残っている場合、ライトバッファ内のデータをフラッシュメモリ２４に書き込む。この書き込みが終了すると、コントローラ２２はホスト１０に前処理完了通知を送信する。ホスト１０はＳＳＤ２０から前処理完了通知を受信すると、ＳＳＤ２０への外部電源の供給を停止する。
【００２８】
不正なシャットダウンの場合、ホスト１０からＳＳＤ２０にシャットダウンの通知コマンドが発行されず、ＳＳＤ２０は前処理も実行せずに、電源回路３０への外部電源の供給が停止される。
ＳＡＴＡ規格がホストＩ／Ｆ３４として使用される場合、ホスト１０がＳＳＤ２０をシャットダウンする前に、ホスト１０はFLUSH CACHEコマンドと、STANDBY IMMEDIATEコマンドをＳＳＤ２０に発行する。これらのコマンドの実行が完了すると、ＳＳＤ２０はその完了をホスト１０に通知する。ホスト１０はこの通知を受信すると、ＳＳＤ２０への外部電源の供給を停止する。
【００２９】
ＰＣＩｅ規格、ＮＶＭｅ規格がホストＩ／Ｆ３４として使用される場合、ホスト１０がＳＳＤ２０をシャットダウンする前に、ホスト１０は全てのＩ／Ｏコマンドを削除し、シャットダウンNOTIFICATIONをセットし、ＳＳＤ２０はシャットダウンプロセスを実行する。ＳＳＤ２０はシャットダウンプロセスの実行が完了すると、その完了をホスト１０に通知する。ホスト１０はこの通知を受信すると、ＳＳＤ２０への外部電源の供給を停止する。
【００３０】
コントローラ２２はホスト１０からのコマンドの受信履歴やコマンドの実行履歴等の動作ログを示すログデータ７２をフラッシュメモリ２４に随時書き込む。外部電源の供給により電源回路３０が複数の電源の生成を開始する時、すなわちＳＳＤ２０の起動時に、コントローラ２２は、フラッシュメモリ２４に記憶されている前回シャットダウン時のログデータ７２を参照すると、前回シャットダウンが正常なシャットダウンであったか否かを判断できる。例えば、ログデータ７２がホスト１０からのコマンドの受信履歴やコマンドの実行履歴を示していない場合、前回シャットダウンが不正なシャットダウンであったと判断する。
【００３１】
コントローラ２２は判断結果をシャットダウンカウンタ６８に送信する。シャットダウンカウンタ６８は、ＳＳＤ２０の起動時に、この判断結果に応じて、前回のシャットダウンが正常なシャットダウンの場合、正常なシャットダウン回数のカウント値を１だけインクリメントし、前回のシャットダウンが不正なシャットダウンの場合、不正なシャットダウン回数のカウント値を１だけインクリメントする。
【００３２】
コントローラ２２は、ＰｏＲカウンタ６４のカウント値、ＵＶＰカウンタ６６のカウント値、シャットダウンカウンタ６８のカウント値（正常なシャットダウン回数及び不正なシャットダウン回数）及び電源回路３０から送信される外部電源供給停止カウンタ６０のカウント値を故障解析データ７４としてフラッシュメモリ２４に書き込む。
【００３３】
図３は、本発明の実施形態に係る故障解析データの一例を示す図である。故障解析データ７４は、外部電源供給停止カウンタ６０のカウント値、ＰｏＲカウンタ６４のカウント値、ＵＶＰカウンタ６６のカウント値、シャットダウンカウンタ６８のカウント値及びパワーステータスを含む。故障解析データ７４は現在（時刻ｔｉ）におけるデータに加えて、１つ前の起動時（時刻ｔｉ-１）におけるデータを含む。
【００３４】
コントローラ２２は、ＳＳＤ２０の起動時に、これらの２つの時刻の故障解析データ７４に基づいて、パワーステータスを特定する。パワーステータスとは、ＳＳＤ２０がシャットダウンした原因を示すものである。例えばコントローラ２２はどのカウンタのカウント値がインクリメントされているかに応じて、パワーステータスを特定する。パワーステータスは、外部電源の正常な供給停止、外部電源の不正な供給停止、電源回路３０の正常な停止、電源回路３０の異常な停止を含む。コントローラ２２は、このパワーステータスも故障解析データ７４に含めてフラッシュメモリ２４に書き込む。
【００３５】
さらに、コントローラ２２は、シャットダウンカウンタ６８のカウント値を各パワーステータス毎に累計したシャットダウン回数データ７６をフラッシュメモリ２４に書き込む。
図４は、本発明の実施形態に係るシャットダウン回数データ７６の一例を示す図である。シャットダウン回数データ７６は外部電源の正常な供給停止が原因のシャットダウン回数、外部電源の不正な供給停止が原因のシャットダウン回数、電源回路３０の正常な動作停止が原因のシャットダウン回数、電源回路３０の異常な動作停止が原因のシャットダウン回数の累計値を示す。
【００３６】
［ＳＳＤ２０の動作例］
以下、本発明の実施形態に係るＳＳＤ２０の動作の一例を図５、図６、図７のフローチャートを参照して説明する。
図５は、本発明の実施形態に係るＳＳＤ２０の起動処理を示すフローチャートである。
外部電源が供給されると電源回路３０が動作開始し、電源回路３０は外部電源に基づいて複数の電源を生成する（Ｓ１０２）。ＰｏＲ／ＵＶＰ信号発生器６２は、電源回路３０から供給される複数の電源の電圧を監視し、複数の電源の全てが正常に生成されたか否かを判定する。
【００３７】
ＰｏＲ／ＵＶＰ信号発生器６２は、複数の電源の全てが正常に生成されたと判定した場合、ＰｏＲ信号をＬレベルからＨレベルに変更する（Ｓ１０６）。また、ＰｏＲ／ＵＶＰ信号発生器６２は、複数の電源の全てが正常に生成されたと判定した場合、ＵＶＰ信号をＬレベルからＨレベルに変更する（Ｓ１０８）。Ｓ１０６とＳ１０８の両方とも実行したら、ＰｏＲ／ＵＶＰ信号発生器６２は処理を終了する。これにより、図５の一連の処理が終了する（エンド）。
【００３８】
図６は、本発明の実施形態に係るＳＳＤ２０の故障解析データの記録処理を示すフローチャートである。
コントローラ２２は、フラッシュメモリ２４内のログデータ７２を読み出し、前回のシャットダウンが正常なシャットダウンであったか否かを読み出したログデータに基づいて判定する（Ｓ１１２）。
【００３９】
コントローラ２２は、前回のシャットダウンが正常なシャットダウンであったと判定した場合（Ｓ１１２の判定結果がＹｅｓの場合）、シャットダウンカウンタ６８の正常シャットダウン回数のカウント値を１だけインクリメントし、フラッシュメモリ２４内の故障解析データ７４にシャットダウンカウンタ６８のカウント値を書き込む（Ｓ１１４）。
【００４０】
コントローラ２２は、前回のシャットダウンが正常なシャットダウンではなかったと判定した場合（Ｓ１１２の判定結果がＮｏの場合）、シャットダウンカウンタ６８の不正シャットダウン回数のカウント値を１だけインクリメントし、フラッシュメモリ２４内の故障解析データ７４にシャットダウンカウンタ６８のカウント値を書き込む（Ｓ１１５）。
【００４１】
Ｓ１１４又はＳ１１５の後、コントローラ２２は、現在の故障解析データ７４と１つ前の起動時の故障解析データ７４に基づいて、パワーステータスを特定し、フラッシュメモリ２４内の故障解析データ７４に特定したパワーステータスを書き込む（Ｓ１１６）。コントローラ２２は、シャットダウンカウンタ６８のカウント値とＳ１１６で特定したパワーステータスに基づいて、前回のシャットダウンの原因が外部電源の正常な供給停止、外部電源の不正な供給停止、電源回路３０の正常な動作停止又は電源回路３０の異常な動作停止のいずれであるかを特定する（Ｓ１１７）。また、コントローラ２２は、Ｓ１１７で特定したシャットダウンの原因に基づいて、シャットダウン回数データ７６を更新し（Ｓ１１８）、図６の一連の処理を終了する（エンド）。
【００４２】
シャットダウン回数データ７６はシャットダウンの原因別の累計値であるので、ＳＳＤ２０が故障した際、シャットダウン回数データ７６に基づきＳＳＤ２０の故障解析を行うことができる。このため、本発明の実施形態に係るＳＳＤ２０は、シャットダウン回数データ７６を読み出すことができれば、故障解析のために使用を中断せずに済む。
【００４３】
図７は、本発明の実施形態に係るＳＳＤ２０の故障解析データの記録処理の一例を示すフローチャートである。
ＰｏＲ／ＵＶＰ信号発生器６２は、電源回路３０が生成する複数の電源のいずれかの電圧が所定の割合以下に低下したか否かを判定する（Ｓ１２０）。
【００４４】
複数の電源のいずれの電圧も所定の割合以下に低下していないと判定した場合（Ｓ１２０の判定結果がＮｏの場合）、ＰｏＲ／ＵＶＰ信号発生器６２は外部電源供給停止カウンタ６０に外部電源の供給が停止されたか否かを問い合わせる信号を送信する（Ｓ１２１）。Ｓ１２１またはＳ１２８の信号を受信すると、外部電源供給停止カウンタ６０は、外部電源の供給が停止されたか否かを判定する（Ｓ１２２）。
【００４５】
外部電源の供給が停止されていないと判定した場合（Ｓ１２２の判定結果がＮｏの場合）、図７の一連の処理は終了する（エンド）。
複数の電源のいずれかの電圧が所定の割合以下に低下したことを判定した場合（Ｓ１１８の判定結果がＹｅｓの場合）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＵＶＰ信号をＨレベルからＬレベルに変更する（Ｓ１２４）。これにより、コントローラ２２は、ＵＶＰカウンタ６６のカウント値を１だけインクリメントし（Ｓ１２６）、フラッシュメモリ２４内の故障解析データ７４にＵＶＰカウンタ６６のカウント値を書き込む。Ｓ１２６の処理の後、コントローラ２２は、外部電源供給停止カウンタ６０へ外部電源の供給が停止されたか否かを問い合わせる信号を送信する（Ｓ１２８）。
【００４６】
外部電源の供給が停止されたと判定した場合（Ｓ１２２の判定結果がＹｅｓの場合）、外部電源供給停止カウンタ６０はカウント値を１だけインクリメントし（Ｓ１３０）、カウント値をコントローラ２２に送信する。カウント値を受信すると、コントローラ２２は、フラッシュメモリ２４内の故障解析データ７４に外部電源供給停止カウンタ６０のカウント値を書き込む。Ｓ１３０の処理が完了すると、図７の一連の処理は終了する（エンド）。
【００４７】
図８は、本発明の実施形態に係るＳＳＤ２０の外部電源の供給が停止されたときの動作の一例を示すフローチャートである。
外部電源の供給が停止されると、電源回路３０は複数の電源の生成を停止する。ＰｏＲ／ＵＶＰ信号発生器６２は、複数の電源の全ての生成が停止したと判定した場合、ＰｏＲ信号のレベルをＨレベルからＬレベルに変化させる（Ｓ１３６）。これにより、コントローラ２２は、ＰｏＲカウンタ６４のカウント値を１だけインクリメントし（Ｓ１３８）、フラッシュメモリ２４内の故障解析データ７４にＰｏＲカウンタ６４のカウント値を書き込む。Ｓ１３８の処理が完了すると、図８の一連の処理は終了する（エンド）。
【００４８】
［故障解析データ］
図９は、ＳＳＤ２０の種々の動作状況（ケース０〜ケース４）における故障解析データ７４の例を示す。シャットダウンカウンタ６８はシャットダウン後の次の起動時に更新される。図９は起動時のシャットダウンカウンタ６８の更新後の故障解析データ７４を示す。
【００４９】
ケース０はＳＳＤ２０が正常に動作する状況である。ケース０では、外部電源供給停止カウンタ６０のカウント値は“Ａ”であり、ＰｏＲカウンタ６４のカウント値は“Ｂ”であり、ＵＶＰカウンタ６６のカウント値は“Ｃ”であり、シャットダウンカウンタ６８のカウント値（正常シャットダウン回数）は“Ｄ”であり、シャットダウンカウンタ６８のカウント値（不正シャットダウン回数）は“Ｅ”であるとする。パワーステータスは外部電源の供給が正常に停止し、電源回路３０は正常に動作停止したことを示す。“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”は任意の正整数である。ケース０の故障解析データ７４は例えば図３に示す時刻ｔｉ−１の故障解析データ７４としてフラッシュメモリ２４に記憶される。
【００５０】
ケース１は外部電源の供給が正常に停止され、電源回路３０の動作が正常に停止した後にＳＳＤ２０が起動された状況である。ケース２は外部電源の供給が不正に停止され、電源回路３０の動作が正常に停止した後にＳＳＤ２０が起動された状況である。ケース１とケース２の違いは、外部電源の供給が停止する原因がホスト１０による正常なシャットダウン（ケース１）か、不正な電源供給停止（ケース２）かの違いである。
【００５１】
図１０はケース１とケース２における電源回路３０の入出力信号の波形の一例を示す。
電源回路３０は８チャネルの電源を出力するが、説明の便宜上、図１０は、電源ＰＤ０、ＰＤ１、ＰＤ３の３チャネルの電源のみを示す。他のチャネルの電源は、例えば電源ＰＤ１又はＰＤ２と同様な波形である。
【００５２】
ホスト１０がＳＳＤ２０への外部電源の供給を開始すると、外部電源の電圧は所定値まで増加する。外部電源の電圧が所定値まで増加すると（時刻ｔ１ａ）、外部電源が電源回路３０に供給される。外部電源が電源回路３０に供給されると、電源回路３０が、複数の電源を生成する。例えば電源回路３０は電源ＰＤ０を生成し（時刻ｔ２ａ）、電源ＰＤ１を生成し（時刻ｔ３ａ）、電源ＰＤ２を生成する（時刻ｔ４ａ）。なお、電源回路３０が電源を生成する順番は一例である。また、電源回路３０は複数の電源を同時に生成しうる。
【００５３】
電源回路３０が全てのチャネルの電源を生成すると（時刻ｔ５ａ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＰｏＲ信号のレベルをＬレベルからＨレベルに変更し、ＵＶＰ信号のレベルをＬレベルからＨレベルに変更する（時刻ｔ６ａ）。
ケース１では、シャットダウンの前に、ホスト１０はＳＳＤ２０に通知する。ＳＳＤ２０がシャットダウンの準備を行い、準備完了をホスト１０に返信すると、ホスト１０は電源回路３０への外部電源の供給を正常に停止し、ＳＳＤ２０は正常にシャットダウンされる。ケース２では、上述の処理が完了しないまま（すなわち不正に）、外部電源の供給が停止され、ＳＳＤ２０はシャットダウンされる。
【００５４】
ケース１でもケース２でも、外部電源の電圧が所定電圧以下に低下すると（時刻ｔ７ａ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＰｏＲ信号のレベルをＨレベルからＬレベルに変更する。その後、電源回路３０は電源（ＰＤ０、ＰＤ１、ＰＤ２）の生成を停止する。いずれかの電源の電圧が所定の割合以下に低下すると（時刻ｔ８ａ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＵＶＰ信号のレベルをＨレベルからＬレベルに変更する。
【００５５】
ＰｏＲカウンタ６４、ＵＶＰカウンタ６６の電源は電源ＰＤ０である。ＰｏＲ信号がＨレベルからＬレベルに変化する時刻ｔ７ａでは、電源ＰＤ０が生成されているので、ＰｏＲカウンタ６４はカウント値をインクリメントする。しかし、ＵＶＰ信号がＨレベルからＬレベルに変化する時刻ｔ８ａでは、電源ＰＤ０の電圧が所定の割合に低下しているので、ＵＶＰカウンタ６６はカウント値をインクリメントしない。なお、外部電源供給停止カウンタ６０は外部電源の電圧が所定電圧以下に低下する時刻ｔ７ａでカウント値を１だけインクリメントし、カウント値をコントローラ２２に送信する。カウント値を受信すると、コントローラ２２は、フラッシュメモリ２４内の故障解析データ７４に外部電源供給停止カウンタ６０のカウント値を書き込む。
【００５６】
図９に示すように、ケース１では、外部電源供給停止カウンタ６０のカウント値は“Ａ＋１”であり、ＰｏＲカウンタ６４のカウント値は“Ｂ＋１”であり、ＵＶＰカウンタ６６のカウント値は“Ｃ”のままであり、シャットダウンカウンタ６８のカウント値（正常シャットダウン回数）は“Ｄ＋１”であり、シャットダウンカウンタ６８のカウント値（不正シャットダウン回数）は“Ｅ”のままである。ケース１の故障解析データ７４は例えば図３に示す時刻ｔｉの故障解析データ７４としてフラッシュメモリ２４に記憶される。
【００５７】
図９に示すように、ケース２では、外部電源供給停止カウンタ６０のカウント値は“Ａ＋１”であり、ＰｏＲカウンタ６４のカウント値は“Ｂ＋１”であり、ＵＶＰカウンタ６６のカウント値は“Ｃ”のままであり、シャットダウンカウンタ６８のカウント値（正常シャットダウン回数）は“Ｄ”のままであり、シャットダウンカウンタ６８のカウント値（不正シャットダウン回数）は“Ｅ＋１”である。ケース２の故障解析データ７４は例えば図３に示す時刻ｔｉのデータとしてフラッシュメモリ２４に記憶される。
【００５８】
ケース３とケース４は、外部電源の供給が正常に停止されるが、故障等により電源回路３０の動作が異常に停止する状況である。ケース３とケース４の違いは、電源回路３０から正常に生成されない電源がＰＤ０（ケース３）であるか、ＰＤ０以外（ケース４）であるかの違いである。
【００５９】
図１１はケース３における電源回路３０の入出力信号の波形の一例を示す。
ホスト１０がＳＳＤ２０への外部電源の供給を開始すると、外部電源の電圧は所定値まで増加する。外部電源の電圧が所定値まで増加すると（時刻ｔ１ｂ）、外部電源が電源回路３０に供給される。外部電源が電源回路３０に供給されると、電源回路３０が、複数の電源を生成する。例えば電源回路３０は電源ＰＤ０を生成し（時刻ｔ２ｂ）、電源ＰＤ１を生成し（時刻ｔ３ｂ）、電源ＰＤ２を生成する（時刻ｔ４ｂ）。なお、電源回路３０が電源を生成する順番は一例である。また、電源回路３０は複数の電源を同時に生成しうる。
【００６０】
電源回路３０が全てのチャネルの電源を生成すると（時刻ｔ５ｂ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＰｏＲ信号のレベルをＬレベルからＨレベルに変更し、ＵＶＰ信号のレベルをＬレベルからＨレベルに変更する（時刻ｔ６ｂ）。
ケース３では、ＳＳＤ２０の動作中に電源回路３０が異常な動作を行い、電源ＰＤ０が低下する。電源ＰＤ０の電圧が所定の割合以下に低下すると、ＰｏＲ／ＵＶＰ信号発生器６２は、ＵＶＰ信号のレベルをＨレベルからＬレベルに変更する（時刻ｔ７ｂ）。
【００６１】
正常なシャットダウンが行われ、外部電源の電圧が所定電圧以下に低下すると、ＰｏＲ／ＵＶＰ信号発生器６２は、ＰｏＲ信号のレベルをＨレベルからＬレベルに変更する（時刻ｔ８ｂ）。ＰｏＲ信号のレベルがＨレベルからＬレベルになると、電源回路３０は電源ＰＤ１、ＰＤ２の生成を停止する。
【００６２】
ＰｏＲカウンタ６４、ＵＶＰカウンタ６６の電源は電源ＰＤ０である。ＵＶＰ信号がＨレベルからＬレベルに変化する時刻ｔ７ｂでは、電源ＰＤ０の電圧が所定の割合に低下しているので、ＵＶＰカウンタ６６はカウント値をインクリメントしない。ＰｏＲ信号がＨレベルからＬレベルに変化する時刻ｔ８ｂでは、電源ＰＤ０が生成されてないので、ＰｏＲカウンタ６４はカウント値をインクリメントしない。なお、外部電源供給停止カウンタ６０は外部電源の電圧が所定電圧以下に低下する時刻ｔ８ｂでカウント値を１だけインクリメントし、カウント値をコントローラ２２に送信する。カウント値を受信すると、コントローラ２２は、フラッシュメモリ２４内の故障解析データ７４に外部電源供給停止カウンタ６０のカウント値を書き込む。
【００６３】
図９に示すように、ケース３では、外部電源供給停止カウンタ６０のカウント値は“Ａ＋１”であり、ＰｏＲカウンタ６４のカウント値は“Ｂ”のままであり、ＵＶＰカウンタ６６のカウント値は“Ｃ”のままであり、シャットダウンカウンタ６８のカウント値（正常シャットダウン回数）は“Ｄ”のままであり、シャットダウンカウンタ６８のカウント値（不正シャットダウン回数）は“Ｅ＋１”である。ケース３の故障解析データ７４は例えば図３に示す時刻ｔｉの故障解析データ７４としてフラッシュメモリ２４に記憶される。
【００６４】
図１２はケース４における電源回路３０の入出力信号の波形の一例を示す。
ホスト１０が外部電源を動作開始させ、外部電源の電圧が所定電圧まで増加し（時刻ｔ１ｃ）、外部電源が電源回路３０に供給されると、電源回路３０も動作開始し、複数の電源を生成する。例えば電源ＰＤ０の電圧が所定電圧まで増加し（時刻ｔ２ｃ）、電源ＰＤ１の電圧が所定電圧まで増加し（時刻ｔ３ｃ）、電源ＰＤ２の電圧が所定電圧まで増加する（時刻ｔ４ｃ）。なお、電源回路３０が電源を生成する順番は一例である。また、電源回路３０は複数の電源を同時に生成しうる。
【００６５】
電源回路３０の全てのチャネルの電源を生成すると（時刻ｔ５ｃ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＰｏＲ信号のレベルをＬレベルからＨレベルに変更し、ＵＶＰ信号のレベルをＬレベルからＨレベルに変更する（時刻ｔ６ｃ）。
ケース４では、ＳＳＤ２０の動作中に電源回路３０が異常な動作を行い、電源ＰＤ０以外の電源、例えばＰＤ２が低下する。電源ＰＤ２の電圧が所定の割合以下に低下すると（時刻ｔ７ｃ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＵＶＰ信号のレベルをＨレベルからＬレベルに変更する。
【００６６】
この後、正常なシャットダウンが行われ、外部電源の電圧が所定電圧以下に低下すると（時刻ｔ８ｃ）、ＰｏＲ／ＵＶＰ信号発生器６２は、ＰｏＲ信号のレベルをＨレベルからＬレベルに変更する。その後、電源回路３０は電源（ＰＤ０、ＰＤ１、ＰＤ２）の生成を停止する。
【００６７】
ＰｏＲカウンタ６４、ＵＶＰカウンタ６６の電源は電源ＰＤ０である。ＵＶＰ信号がＨレベルからＬレベルに変化する時刻ｔ７ｂでは、電源ＰＤ０が正常に生成されているので、ＵＶＰカウンタ６６はカウント値をインクリメントする。ＰｏＲ信号がＨレベルからＬレベルに変化する時刻ｔ８ｃでも、電源ＰＤ０が正常に生成されているので、ＰｏＲカウンタ６４はカウント値をインクリメントする。なお、外部電源供給停止カウンタ６０は外部電源の電圧が所定電圧以下に低下する時刻ｔ８ｃでカウント値を１だけインクリメントし、カウント値をコントローラ２２に送信する。カウント値を受信すると、、コントローラ２２は、フラッシュメモリ２４内の故障解析データ７４に外部電源供給停止カウンタ６０のカウント値を書き込む。
【００６８】
図９に示すように、ケース４では、外部電源供給停止カウンタ６０のカウント値は“Ａ＋１”であり、ＰｏＲカウンタ６４のカウント値は“Ｂ＋１”であり、ＵＶＰカウンタ６６のカウント値は“Ｃ＋１”であり、シャットダウンカウンタ６８のカウント値（正常シャットダウン回数）は“Ｄ”のままであり、シャットダウンカウンタ６８のカウント値（不正シャットダウン回数）は“Ｅ＋１”である。ケース４の故障解析データ７４は例えば図３に示す時刻ｔｉの故障解析データ７４としてフラッシュメモリ２４に記憶される。
【００６９】
図９に示すように、ＳＳＤ２０が動作停止するケース１〜ケース４の故障解析データ７４に含まれる外部電源供給停止カウンタ６０のカウント値、ＰｏＲカウンタ６４のカウント値、ＵＶＰカウンタ６６のカウント値、シャットダウンカウンタ６８の正常シャットダウン回数、不正シャットダウン回数は、ＳＳＤ２０が正常動作中のケース０の故障解析データ７４に含まれるカウント値／シャットダウン回数に対して変化している。そして、どのカウンタ値／シャットダウン回数が変化するかは、ケース１〜ケース４に依存する。そのため、コントローラ２２は、ＳＳＤ２０の起動時の故障解析データ７４に含まれるカウント値をケース０の故障解析データ７４に含まれるカウント値と比較し、どのカウント値が変化したかを調べることにより、ＳＳＤ２０の前回のシャットダウンの原因を特定することができる。
【００７０】
例えば、コントローラ２２が、ＳＳＤ２０の起動時の故障解析データ７４に含まれるカウント値をケース０の故障解析データ７４に含まれるカウント値と比較した比較、外部電源供給停止カウンタ６０のカウント値が“Ａ”から“Ａ＋１”に変化し、ＰｏＲカウンタ６４のカウント値が“Ｂ”から“Ｂ＋１”に変化し、ＵＶＰカウンタ６６のカウント値が“Ｃ”のままであり、シャットダウンカウンタ６８の正常シャットダウン回数が“Ｄ”から“Ｄ＋１”に変化し、不正シャットダウン回数が“Ｅ”のままであると判定した場合、前回のシャットダウンの原因は外部電源の正常供給停止（ケース１）であると特定することができる。この時、コントローラ２２は、外部電源の供給が正常に停止し、電源回路３０は正常に動作停止したことを示すパワーステータスデータを故障解析データ７４に書き込む。
【００７１】
コントローラ２２が、ＳＳＤ２０の起動時の故障解析データ７４に含まれるカウント値をケース０の故障解析データ７４に含まれるカウント値と比較した比較、外部電源供給停止カウンタ６０のカウント値が“Ａ”から“Ａ＋１”に変化し、ＰｏＲカウンタ６４のカウント値が“Ｂ”から“Ｂ＋１”に変化し、ＵＶＰカウンタ６６のカウント値が“Ｃ”のままであり、シャットダウンカウンタ６８の正常シャットダウン回数が“Ｄ”のままであり、不正シャットダウン回数が“Ｅ”から“Ｅ＋１”に変化したと判定した場合、前回のシャットダウンの原因は外部電源の不正供給停止（ケース２）であると特定することができる。この時、コントローラ２２は、外部電源の供給が不正に停止し、電源回路３０は正常に動作停止したことを示すパワーステータスデータを故障解析データ７４に書き込む。  コントローラ２２が、ＳＳＤ２０の起動時の故障解析データ７４に含まれるカウント値をケース０の故障解析データ７４に含まれるカウント値と比較した比較、外部電源供給停止カウンタ６０のカウント値が“Ａ”から“Ａ＋１”に変化し、ＰｏＲカウンタ６４のカウント値が“Ｂ”のままであり、ＵＶＰカウンタ６６のカウント値が“Ｃ”のままであり、シャットダウンカウンタ６８の正常シャットダウン回数が“Ｄ”のままであり、不正シャットダウン回数が“Ｅ”から“Ｅ＋１”に変化したと判定した場合、前回のシャットダウンの原因は電源回路３０の電源ＰＤ０の異常停止（ケース３）であると特定することができる。この時、コントローラ２２は、外部電源の供給が正常に停止し、電源回路３０の電源ＰＤ０が異常に供給停止したことを示すパワーステータスデータを故障解析データ７４に書き込む。
【００７２】
コントローラ２２が、ＳＳＤ２０の起動時の故障解析データ７４に含まれるカウント値をケース０の故障解析データ７４に含まれるカウント値と比較した比較、外部電源供給停止カウンタ６０のカウント値が“Ａ”から“Ａ＋１”に変化し、ＰｏＲカウンタ６４のカウント値が“Ｂ”から“Ｂ＋１”に変化し、ＵＶＰカウンタ６６のカウント値が“Ｃ”から“Ｃ＋１”に変化し、シャットダウンカウンタ６８の正常シャットダウン回数が“Ｄ”のままであり、不正シャットダウン回数が“Ｅ”から“Ｅ＋１”に変化したと判定した場合、前回のシャットダウンの原因は電源回路３０の電源ＰＤ０以外の電源の異常停止（ケース４）であると特定することができる。この時、コントローラ２２は、外部電源の供給が正常に停止し、電源回路３０の電源ＰＤ０以外の電源が異常に供給停止したことを示すパワーステータスデータを故障解析データ７４に書き込む。
【００７３】
なお、ＰｏＲカウンタ６４とＵＶＰカウンタ６６は電源ＰＤ０で動作するとしたが、他の電源ＰＤ１、ＰＤ２等で動作する第２、第３、…のＰｏＲカウンタとＵＶＰカウンタをさらに設ければ、各電源毎の正常／異常を判断することができる。
実施形態によれば、コントローラ２２は、ＳＳＤ２０の起動時に、前回のシャットダウンの原因が外部電源の正常な供給停止、外部電源の不正な供給停止、電源回路３０の正常な動作停止又は電源回路３０の異常な動作停止のいずれであるかを特定する。また、コントローラ２２は、特定したシャットダウンの原因に基づいて、シャットダウン回数データ７６を更新する。ＳＳＤ２０が故障した際、シャットダウン回数データ７６を参照することにより、故障解析を行うことができる。従来は、ＳＳＤ２０そのものだけでなく、ＳＳＤ２０が使用されていた環境（ホストあるいは外部電源）が手元にないと正常ではないシャットダウンの原因の特定は困難であった。
【００７４】
さらに、実施形態によれば、電源回路３０の特定の電源により動作するカウンタを利用してシャットダウンの原因を判断しているので、電源回路３０の動作が正常ではない場合、特定の電源の生成が正常に生成されているか否か及び特定の電源以外の電源の生成が正常に生成されているか否かを判断することができる。
【００７５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。例えば電子機器の一例としてＳＳＤを説明したが、外部電源から複数の電源を生成する電源回路を含むものであれば、特定の電子機器に限定されない。
【符号の説明】
【００７６】
１０…ホスト、２０…ＳＳＤ、２２…コントローラ、２４…フラッシュメモリ、３０…電源回路、６０…外部電源供給停止カウンタ、６２…ＰｏＲ／ＵＶＰ信号発生器、６４…ＰｏＲカウンタ、６６…ＵＶＰカウンタ、６８…シャットダウンカウンタ、７２…ログデータ、７４…故障解析データ、７６…シャットダウン回数データ。
【図１】
2020154431.tif 000003
【図２】
2020154431.tif 000004
【図３】
2020154431.tif 000005
【図４】
2020154431.tif 000006
【図５】
2020154431.tif 000007
【図６】
2020154431.tif 000008
【図７】
2020154431.tif 000009
【図８】
2020154431.tif 000010
【図９】
2020154431.tif 000011
【図１０】
2020154431.tif 000012
【図１１】
2020154431.tif 000013
【図１２】
2020154431.tif 000014