(57)【要約】【課題】  電子機器に電源を供給する電源装置であって故障解析を容易に実施する。【解決手段】  実施形態による電源装置は、外部電源に基づいて複数の電源電圧を生成する複数のブロックを含む電源回路と、不揮発性メモリと、前記電源回路の故障情報を前記不揮発性メモリに書き込むコントローラと、を具備する。前記故障情報は、前記複数のブロックの中のどのブロックがどのような故障であるかを示す情報を具備する。【選択図】  図５
2020013271.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路ブロックを含み、外部電源に基づいて複数の電源電圧を生成する電源回路と、
前記電源回路の前記複数の回路ブロックそれぞれの故障の発生を検知する複数の検知回路と、
不揮発性メモリと、
前記複数の検知回路の何れかが前記複数の回路ブロックの何れかの故障の発生を検知することに応じて、前記電源回路の動作を停止させ、前記電源回路の故障情報を前記不揮発性メモリに書き込むコントローラと、を具備する電源装置であって、
前記故障情報は、前記複数のブロックの中のどのブロックがどのような故障であるかを示す情報を含む電源装置。
【請求項２】
前記複数の検知回路は、前記複数の回路ブロックを流れる電流が閾値以上であることを検出する過電流検出器を含み、
前記故障情報は、前記複数のブロックの中のどのブロックが過電流状態であるかを示す情報を具備する請求項１記載の電源装置。
【請求項３】
前記複数の検知回路は、前記複数の回路ブロックの温度が閾値以上であることを検出する過発熱検出器を含み、
前記故障情報は、前記複数のブロックの中のどのブロックが過発熱状態であるかを示す情報を具備する請求項１記載の電源装置。
【請求項４】
前記複数のブロックは、
前記外部電源からの第１電圧信号を出力し、過電流を検出すると前記第１電圧信号の出力を停止する第１ロードスイッチと、
前記外部電源からの第２電圧信号を出力し、過電流を検出すると前記第２電圧信号の出力を停止する第２ロードスイッチと、
前記第２ロードスイッチの出力を昇圧して、前記第１電圧信号と同じ電圧の昇圧信号を出力する昇圧回路と、
前記第１ロードスイッチの出力および前記昇圧回路の出力を昇圧し、昇圧電圧によりキャパシタを充電する、又は前記キャパシタの充電電圧を降圧して、前記第１電圧信号と同じ電圧の降圧信号を出力する昇降圧回路と、
前記第１ロードスイッチの出力、前記昇圧回路の出力及び前記昇降圧回路の降圧電圧に基づいて前記複数の電源電圧を生成する複数のコンバータと、を具備する請求項１記載の電源装置。
【請求項５】
前記コントローラはシリアル通信インタフェースを介して外部機器に接続可能であり、
前記不揮発性メモリ内の前記故障情報は前記シリアル通信インタフェースを介して前記外部機器により読み出し可能である請求項１記載の電源装置。
【請求項６】
前記不揮発性メモリは不揮発性のプログラマブルメモリを具備し、
前記不揮発性のプログラマブルメモリはフラッシュメモリ、１回書き込み可能なワンタイム読み出し専用メモリ、又は電気的書き込み／消去可能な読み出し専用メモリを含む請求項１記載の電源装置。
【請求項７】
前記コントローラは
前記複数のブロックの中の特定のブロックの異常を検出した場合、前記故障情報を前記不揮発性メモリに書き込み、
前記複数のブロックの中の特定のブロック以外のブロックの異常を検出した場合、前記故障情報を前記不揮発性メモリに書き込まない請求項１記載の電源装置。
【請求項８】
前記不揮発性メモリは異なるタイミングで検知された複数の前記故障情報を書き込み可能な複数の領域を具備し、
前記コントローラは前記複数の領域に前記故障情報が書き込み済みの場合、新たな前記故障情報を時間的に古い故障情報に上書きする請求項１記載の電源装置。
【請求項９】
複数のブロックを含み、外部電源に基づいて複数の電源電圧を生成する電源回路の電源制御方法であって、
前記電源回路の故障を検出すると、前記電源回路の動作を停止し、故障情報を不揮発性メモリに書き込むことを具備し、
前記故障情報は、前記複数のブロックの中のどのブロックがどのような故障であるかを示す情報を具備する電源制御方法。
【請求項１０】
不揮発性メモリと、
前記不揮発性メモリのリード動作又はライト動作を制御するコントローラと、
複数の回路ブロックを含み、外部電源に基づいて複数の電源電圧を生成する電源回路と、を具備する記憶装置であって、
前記電源回路は、前記複数の回路ブロックそれぞれの故障の発生を検知する複数の検知回路を具備し、
前記コントローラは、前記複数の検知回路の何れかが前記複数の回路ブロックの何れかの故障の発生を検知することに応じて、前記電源回路の動作を停止させ、前記電源回路の故障情報を前記不揮発性メモリに書き込み、
前記故障情報は、前記複数のブロックの中のどのブロックがどのような故障であるかを示す情報を含む記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は電源装置、電源制御方法及び記憶装置に関する。
【背景技術】
【０００２】
電子機器は複数の半導体デバイス（以下、単にデバイスと称する）を含む。デバイスを駆動するための電源電圧はデバイス毎に異なるので、電子機器には外部電源からデバイス毎の複数の電源電圧を生成する電源装置が必要である。電源装置による電源電圧の生成動作の一部の動作は電子機器が備えるコントローラにより制御される。
【０００３】
電子機器において、コントローラとデバイスとの間の通信が失敗した、コントローラがデバイス（例えばフラッシュメモリ）のエラー領域にアクセスした等のソフトウェア的な故障（以下、ＳＷ故障と称する）により電子機器が正常に動作しないことがある。そのため、ＳＷ故障が検出されると、電子機器はシャットダウンされる。電子機器は、シャットダウンの前に電子機器が備える不揮発性のメモリにＳＷ故障の発生個所等を示すＳＷ故障情報を書き込む。
【０００４】
ＳＷ故障が生じシャットダウンされた電子機器は製造者に回収されことがある。製造者は回収された機器に搭載された不揮発性のメモリからＳＷ故障情報を読み出し、ＳＷ故障の原因等を特定する故障解析（Failure Analysis：FAとも称する）を実施する。この解析結果を電子機器の設計にフィードバックすることにより、電子機器の信頼性を向上することができる。
【０００５】
従来の電子機器で不揮発性のメモリに書き込まれる故障情報はＳＷ故障情報に限られており、コントローラや電源装置のハードウェア的な故障（以下、ＨＷ故障と称する）に関するＨＷ故障情報はメモリに書き込まれない。コントローラや電源装置のＨＷ故障を解析するためには、デジタルマルチメータなどで電子機器の各部の電圧や電流を測定する必要や、オシロスコープで各部の波形を観測する必要がある。これらは時間が係るとともに、測定結果から故障の原因を特定する作業にも時間を要し、解析効率が著しく悪い。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2010-211734号公報
【特許文献２】米国特許出願公開第2010/235568号明細書
【特許文献３】特開2010-138273号公報
【特許文献４】特許第5579431号公報
【特許文献５】米国特許第8370720号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は電子機器に電源を供給する電源装置であって故障解析を容易に実施することができる電源装置、電源制御方法及び記憶装置を提供することである。
【課題を解決するための手段】
【０００８】
実施形態による電源装置は、複数の回路ブロックを含み、外部電源に基づいて複数の電源電圧を生成する電源回路と、前記電源回路の前記複数の回路ブロックそれぞれの故障の発生を検知する複数の検知回路と、不揮発性メモリと、前記複数の検知回路の何れかが前記複数の回路ブロックの何れかの故障の発生を検知することに応じて、前記電源回路の動作を停止させ、前記電源回路の故障情報を前記不揮発性メモリに書き込むコントローラと、を具備する。前記故障情報は、前記複数のブロックの中のどのブロックがどのような故障であるかを示す情報を具備する。
【図面の簡単な説明】
【０００９】
【図１】実施形態による電源装置を含むＳＳＤを含む情報処理システムの一例の構成を示すブロック図である。
【図２】ＳＳＤの構造の一例を示す平面図である。
【図３】実施形態による電源装置を含むＳＳＤの構成の一例を示すブロック図である。
【図４】実施形態における故障情報の一例を示す図である。
【図５】実施形態の電源装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
【００１１】
実施形態による電源装置はどのような電子機器にも適用可能であるが、第１実施形態としては、フラッシュメモリ等の不揮発性半導体メモリを用いるメモリシステム（ソリッドステートドライブ（Solid State Drive）、ＳＳＤと略称する）に適用される例を説明する。
【００１２】
［情報処理システムの構成］  
図１はＳＳＤを含むシステムの一例の構成を示すブロック図である。システムは、ホストデバイス（以下、ホストと称する）１０とＳＳＤ２０を含む。ＳＳＤ２０は、不揮発性半導体メモリにデータを書き込むとともに、不揮発性半導体メモリからデータを読み出すように構成された半導体ストレージデバイスである。
【００１３】
ホスト１０は、ＳＳＤ２０にアクセスし、ＳＳＤ２０にデータを書き込み、又はＳＳＤ２０からデータを読み出す。ホスト１０は、大量且つ多様なデータをＳＳＤ２０に保存するサーバ（ストレージサーバとも称する）であっても良いし、パーソナルコンピュータであっても良い。ＳＳＤ２０は、ホスト１０のメインストレージとして使用され得る。ＳＳＤ２０は、ホスト１０に内蔵されても良いし、ホスト１０にケーブルまたはネットワークを介して接続されても良い。
【００１４】
ＳＳＤ２０は、コントローラ２２、フラッシュメモリ２４、ＤＲＡＭ２６、ＳＦＲＯＭ２８、電源回路３０、温度センサ３１等を備える。コントローラ２２は、ＣＰＵ３２、ホストインタフェース（Ｉ／Ｆ）３４、ＮＡＮＤインタフェース（Ｉ／Ｆ）３６、ＤＲＡＭインタフェース（Ｉ／Ｆ）３８、ＳＦＲＯＭインタフェース（Ｉ／Ｆ）４０等を備える。ＣＰＵ３２、ホストＩ／Ｆ３４、ＮＡＮＤ  Ｉ／Ｆ３６、ＤＲＡＭ  Ｉ／Ｆ３８、ＳＦＲＯＭ  Ｉ／Ｆ４０はバスライン４２に接続され得る。コントローラ２２は、Ｓｙｓｔｅｍ−ｏｎ−ｃｈｉｐ（ＳｏＣ）、ＡＳＩＣ、ＦＰＧＡ、などのような回路によって実現され得る。
【００１５】
ホスト１０とＳＳＤ２０とを電気的に相互接続するためのホストＩ／Ｆ３４としては、例えばSmall Computer System Interface（ＳＣＳＩ）（登録商標）、PCI Express（登録商標）（ＰＣＩｅ（登録商標）とも称する）、Serial Attached SCSI（ＳＡＳ）（登録商標）、Serial Advanced Technology Attachment（ＳＡＴＡ）（登録商標）、Non Volatile Memory Express（ＮＶＭｅ（登録商標））、Universal Serial Bus（ＵＳＢ）（登録商標）等の規格が使用され得るが、これらに限定されない。
【００１６】
不揮発性半導体メモリとしてのフラッシュメモリ２４は、例えばＮＡＮＤ型のフラッシュメモリからなるが、ＮＡＮＤ型のフラッシュメモリに限らず、他の不揮発性半導体メモリが用いられても良い。フラッシュメモリ２４は、複数のフラッシュメモリチップ（すなわち、複数のフラッシュメモリダイ）を含んでいても良い。ここでは、一例として８つのフラッシュメモリ２４−１、２４−２、…、２４−８が備えられている。各チップは、メモリセル当たりに１ビット又は複数ビットを格納可能に構成されたフラッシュメモリとして実現されている。フラッシュメモリ２４のリード、又はライトはコントローラ２２により制御される。フラッシュメモリ２４はＮＡＮＤ  Ｉ／Ｆ３６に接続される。
【００１７】
揮発性メモリであるランダムアクセスメモリとしてのＤＲＡＭ２６は、コントローラ２２の外部に設けるのではなく、ＳＲＡＭのような、より高速アクセスが可能な揮発性メモリであるランダムアクセスメモリがコントローラ２２に内蔵されていても良い。ＤＲＡＭ２６等のランダムアクセスメモリには、フラッシュメモリ２４に書き込まれるデータを一時的に格納するためのバッファ領域であるライトバッファと、フラッシュメモリ２４から読み出したデータを一時的に格納するためのバッファ領域であるリードバッファと、アドレス変換テーブル（論理アドレス／物理アドレス変換テーブルとも称する）として機能するルックアップテーブル（ＬＵＴと称する）のキャッシュ領域と、ＳＳＤ２０の処理中に用いられる各種の値や各種のテーブル等のシステム管理情報の格納領域が設けられても良い。ＬＵＴは、論理アドレスそれぞれとフラッシュメモリ２４の物理アドレスそれぞれとの間のマッピングを管理する。ＤＲＡＭ２６はＤＲＡＭ  Ｉ／Ｆ３８に接続される。
【００１８】
ＳＦＲＯＭ（シリアルフラッシュＲＯＭ）２８は、コントローラ２２とシリアル通信され、コントローラ２２が検出した故障情報を格納する不揮発性のプログラマブルメモリである。コントローラ２２は他のデバイス、例えばフラッシュメモリ２４、ＤＲＡＭ２６、温度センサ３１等と通信し、データを送受信するが、デバイスとの間の通信失敗を検出することがある。あるいは、コントローラ２２はデバイス（例えばフラッシュメモリ２４）のエラー領域にアクセスした場合等、ソフトウェア的なＳＷ故障を検出する。どのデバイスでどのような故障が生じたかを示すＳＷ故障情報がＳＦＲＯＭ２８に書き込まれる。ＳＦＲＯＭ２８は、フラッシュメモリから構成されても良いが、１回書き込み可能なワンタイムＲＯＭ（ＯＴＰ−ＰＲＯＭ）、電気的書き込み／消去可能ＲＯＭ（ＥＰＰＲＯＭ）でも良い。ＳＦＲＯＭ２８はＳＦＲＯＭ  Ｉ／Ｆ４０に接続される。ＳＦＲＯＭ２８は複数のＳＷ故障情報を格納可能である。
【００１９】
このようにコントローラ２２が動作中はＳＷ故障情報がＳＦＲＯＭ２８に書き込まれるが、コントローラ２２が正常に動作していない場合又はコントローラ２２に電源が供給されていない場合、ＳＷ故障情報のＳＦＲＯＭ２８への書き込みは不可能である。しかし、後述するが、コントローラ２２や電源回路３０のハードウェア的な異常動作は、電源回路３０において検出され、検出結果を示すＨＷ故障情報が電源回路３０内のメモリ８８に書き込まれる。これにより、故障解析が可能となる。
【００２０】
ＳＳＤ２０は、電源回路３０、温度センサ３１をさらに備える。電源回路３０はホスト１０から供給される単一又は数個の外部電源からＳＳＤ２０の各デバイスで必要な複数の内部電源電圧を生成する。図１では電源ラインは図示しない。電源回路３０は単一又は数個のＩＣからなっても良い。電源回路３０を制御する制御信号はシリアル通信規格、例えばＩ２Ｃ規格に従ってコントローラ２２から供給される。温度センサ３１で測定されたＳＳＤ２０の温度データはシリアル通信規格、例えばＩ２Ｃ規格に従ってコントローラ２２に供給される。コントローラ２２は温度センサ３１で測定されたＳＳＤ２０の温度に応じて電源回路３０が生成する電圧が変わるように電源回路３０の制御信号を調整する。
【００２１】
［ＳＳＤの外観］  
図２はＳＳＤ２０の外観の一例を示す平面図である。ＳＳＤ２０は、略矩形形状の部品実装用の基板２１を備える。近年、基板２１の規格として、コンピュータの内蔵拡張カードのフォームファクタと接続端子について定められたＭ．２規格がある。Ｍ．２規格には種々のサイズが提案されているが、例えば２２ｍｍ×４２ｍｍ、２２ｍｍ×６０ｍｍ、２２ｍｍ×８０ｍｍと非常に小型のタイプも含む。ＳＳＤ２０が小型化されるのに伴って、フラッシュメモリ２４も小型化される。小型化のフラッシュメモリ２４は動作時に高温になることがある。基板２１上に、ＩＣ化されている回路部品であるコントローラ２２、フラッシュメモリ２４、ＤＲＡＭ２６、ＳＦＲＯＭ２８、電源回路３０及び温度センサ３１が搭載される。温度センサ３１はフラッシュメモリ２４近傍の温度を測定する。基板２１の一方の短辺側の側端には、ホスト１０と電気的に接続されるコネクタ２３が設けられる。基板２１に形成された配線パターン（図示しない）がコネクタ２３の所定の端子ピンとコントローラ２２の所定の端子とに電気的に接続される。
【００２２】
［ＳＳＤの電気的構成］
図３は電源回路３０の一例の詳細を示すためのＳＳＤ２０の詳細なブロック図である。電源回路３０は、電源部５２と、コントロール部５４と、駆動部５６を含む。電源部５２には、外部電源８からＤＣ１２ＶとＤＣ５Ｖの２つの外部電源電圧が印加される。外部電源８はホスト１０が兼用しても良い。外部電源電圧の数は２つに限らず、１２Ｖのみでも良いし、３つ以上でも良い。外部電源電圧の値も上記の例に限らず、他の値でも良い。
【００２３】
電源部５２は、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８等の複数のブロックを含む。電源部５２は単一のＩＣにより形成されても良い。外部電源８からの１２Ｖの外部電源電圧（電圧信号）がロードスイッチ６２に印加される。外部電源８からの５Ｖの外部電源電圧（電圧信号）がロードスイッチ６４に印加される。ロードスイッチ６２、６４は、電流をオン／オフするスイッチであり、通常動作中はオンしており、それぞれの入出力間で電流が流れ、入力電圧と等しい電圧信号を出力する。一定以上の電流（想定以上の電流：過電流）が流れると、ロードスイッチ６２、６４はオフされ、出力電圧は０Ｖとなる。
【００２４】
ロードスイッチ６２から出力される１２Ｖの電圧信号が駆動部５６に印加される。ロードスイッチ６４から出力される５Ｖの電圧信号がインダクタ８２を介して昇圧回路６６の入力端子に印加される。外部電源８から５Ｖの電圧信号が電源回路３０に印加されて、ロードスイッチ６４からの５Ｖの電圧信号が印加されている場合、昇圧回路６６は、５Ｖの入力電圧を１２Ｖに昇圧し、１２Ｖの昇圧電圧信号を出力端子から出力する。外部電源８から５Ｖの電圧信号が電源回路３０に印加されず、ロードスイッチ６４からの５Ｖの電圧信号が印加されていない場合、昇圧回路６６の出力電圧は０Ｖとなる。
【００２５】
駆動部５６の入力端子に対して１２Ｖ電源としてのロードスイッチ６２と昇圧回路６６とは並列に接続され、ロードスイッチ６２から出力される１２Ｖの電圧信号と昇圧回路６６から出力される１２Ｖの電圧信号が駆動部５６に印加される。また、昇圧回路６６から出力される１２Ｖの電圧信号はインダクタ８４を介してＰＬＰ（Power Loss Protection）昇降圧回路６８の入／出力端子に印加される。外部電源８から１２Ｖの電圧信号及び５Ｖの電圧信号が電源回路３０に印加されており、ロードスイッチ６２からの１２Ｖの電圧信号及び昇圧回路６６からの１２Ｖの電圧信号がインダクタ８４を介して入／出力端子に印加されている場合、ＰＬＰ昇降圧回路６８は、インダクタ８４からの１２Ｖの入力電圧信号を昇圧して、昇圧電圧によりＰＬＰ用のキャパシタ８０を充電する。外部電源８から１２Ｖの電圧信号及び５Ｖの電圧信号が電源回路３０に印加されておらず、ロードスイッチ６２からの１２Ｖの電圧信号及び昇圧回路６６からの１２Ｖの電圧信号がインダクタ８４を介して印加されていない場合、ＰＬＰ昇降圧回路６８の出力電圧は０Ｖとなる。
【００２６】
外部電源電圧が２つ用意されている理由は、消費できるパワーが電源電圧によって異なり、すなわち、１２Ｖ電源から消費できるパワーと、５Ｖ電源から消費できるパワーが異なっているからである。このため、１２Ｖの外部電源以外に５Ｖの外部電源も用意され、昇圧回路６６により５Ｖが１２Ｖに昇圧されている。
【００２７】
外部電源８が電源回路３０に接続されていない場合、ＰＬＰ昇降圧回路６８の入／出力端子には１２Ｖの電圧信号が印加されない。ＰＬＰ昇降圧回路６８は、１２Ｖの電圧信号が印加されていない場合、一定期間はＰＬＰキャパシタ８０の充電電圧を降圧して１２Ｖの電圧信号を入／出力端子を介してインダクタ８４側に出力する。ＰＬＰ昇降圧回路６８は、駆動部５６の入力端子に対して昇圧回路６６とロードスイッチ６２に並列に接続される。ＰＬＰ昇降圧回路６８から出力される１２Ｖの電圧信号はインダクタ８４を介して駆動部５６に印加される。この時は、ロードスイッチ６２及び昇圧回路６６から１２Ｖの電圧信号は出力されていない。
【００２８】
すなわち、外部電源８が電源回路３０に接続され、電源部５２が正常に動作している間は、ロードスイッチ６２から出力される１２Ｖの電圧信号と昇圧回路６６から出力される１２Ｖの電圧信号が駆動部５６に印加される。外部電源８が電源回路３０に接続されていない又は電源部５２が正常に動作していない間は、ＰＬＰ昇降圧回路６８からインダクタ８４側に出力される１２Ｖの電圧信号が駆動部５６に印加される。ＰＬＰ昇降圧回路６８から１２Ｖの電圧信号が出力されるのは、ＰＬＰキャパシタ８０の充電電荷が放電されるまでの限られた一定期間（例えば、数１０ｍｓ）である。そのため、電源部５２が正常に動作しなくなってから一定期間（外部電源８が電源回路３０に非接続となってから一定期間も含む）、駆動部５６には１２Ｖの電圧信号が印加され、駆動部５６が動作可能である。
【００２９】
電源部５２は１２Ｖの電圧信号からシステム電源電圧を発生するシステム電源（ＶＳＹＳ）７０も含み、システム電源電圧はコントロールロジック８６に印加される。これにより、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８が電圧信号を出力しない期間でも、電源回路３０に外部電源８が接続されていれば、コントロールロジック８６は動作することができる。
【００３０】
駆動部５６は、電源部５２から出力される１２Ｖの電圧信号から複数の内部電源電圧Ｖ１、Ｖ２、Ｖ３、…を生成し、それらをＳＳＤ２０に含まれるデバイス部５８へ供給する。デバイス部５８は、コントローラ２２、フラッシュメモリ２４、ＤＲＡＭ２６、ＳＦＲＯＭ２８、温度センサ３１等の複数のブロックを備える。ロードスイッチ６２から出力される１２Ｖの電圧信号と、昇圧回路６６から出力される１２Ｖの電圧信号と、ＰＬＰ昇降圧回路６８から出力される１２Ｖの電圧信号が複数のＤＣ／ＤＣコンバータ９２、９４、…及び複数のＬＤＯ（Low Dropout）９６、…に印加され、ＤＣ／ＤＣコンバータ９２、９４、…及びＬＤＯ（Low Dropout）９６、…により内部電源電圧Ｖ１、Ｖ２、Ｖ３、…が生成される。例えば、内部電源電圧の具体的な値は、Ｖ１＝１．５Ｖ、Ｖ２＝０．７Ｖ等である。
【００３１】
駆動部５６内のＤＣ／ＤＣコンバータ９２、９４、…及びＬＤＯ９６、…の数はデバイス部５８のデバイスの数の数倍（例えば、２〜３倍）であっても良い。特に、コントローラ２２はＣＰＵ３２、ホストＩ／Ｆ３４、ＮＡＮＤ  Ｉ／Ｆ３６、ＤＲＡＭ  Ｉ／Ｆ３８、ＳＦＲＯＭ  Ｉ／Ｆ４０毎（図１を参照）に異なる電圧が必要となることがあり、駆動部５６内のブロックの数はデバイス部５８内のデバイスの数より多い。
【００３２】
なお、一般的に、ＤＣ／ＤＣコンバータ９２、９４、…は大電流を必要とするデバイス用であり、ＬＤＯ９６、…は小電流で動作するデバイス用である。例えば、ＬＤＯ９６の出力電圧Ｖ３はコントローラ２２のアナログ電源とされる。ＤＣ／ＤＣコンバータ９２、９４、…のいずれかが生成する電圧値と、ＬＤＯ９６、…のいずれかが生成する電圧値は異なっても良いが、同じでも良い。駆動部５６は単一のＩＣにより形成されても良いが、別々の素子から形成されても良い。駆動部５６内のＤＣ／ＤＣコンバータ９２、９４、…及びＬＤＯ９６、…それぞれの一部の回路が、電源部５２内に設けられてもよい。
【００３３】
電源部５２が正常に動作しなくなってから一定期間（外部電源８が電源回路３０に非接続となってから一定期間も含む）、駆動部５６は動作可能であるので、この間、内部電源電圧Ｖ１、Ｖ２、Ｖ３等がデバイス部５８に印加される。コントローラ２２は、この間に、ＤＲＡＭ２６にバッファされていた未書き込みのデータをフラッシュメモリ２４に退避させる。この後にＳＳＤ２０をシャットダウンさせても良い。
【００３４】
ＳＳＤ２０のハードウェア的な故障（ＨＷ故障）について説明する。  
一例として、電源回路３０は正常に動作しているが、ＳＳＤ２０のデバイス部５８が異常動作している場合がある。例えば、デバイス部５８のコントローラ２２、フラッシュメモリ２４、ＤＲＡＭ２６、ＳＦＲＯＭ２８、温度センサ３１等の少なくとも１つがＨＷ故障により過電流／過発熱となることに応じて、駆動部５６のＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の少なくとも１つが過電流／過発熱となることがある。そのため、駆動部５６のＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の過電流／過発熱を検出することにより、ＳＳＤ２０のデバイス部５８の異常動作を検出することができる。
【００３５】
他の例として、ＳＳＤ２０のデバイス部５８は正常に動作しているが、電源回路３０が異常動作している場合がある。例えば、電源部５２のロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８、駆動部５６のＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６のうち少なくとも何れか１つがＨＷ故障により過電流／過発熱となることがある。そのため、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８、ＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の過電流／過発熱を検出することにより、ＨＷ故障による電源回路３０の異常動作を検出することができる。
【００３６】
このため、電源部５２では、過電流／過発熱検出器７２、７４、７６，７８がロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８にそれぞれ接続される。過電流／過発熱検出器７２、７４、７６，７８は、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８それぞれを閾値以上の電流が流れると、過電流を検出する。過電流／過発熱検出器７２、７４、７６，７８は、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８をそれぞれ流れる電流に応じた温度が閾値以上になると過発熱を検出する。過電流／過発熱検出器７２、７４、７６，７８がそれぞれ温度センサを備え、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８の温度を測定し、測定温度が閾値以上になると過発熱を検出するようにしても良い。過電流／過発熱検出器７２、７４、７６，７８はロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８の過電流／過発熱を検出すると、ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８の動作を停止させるとともに、コントロールロジック８６に検出結果を通知する。ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８毎に許容できる最大電流、最大温度は異なっているので、過電流／過発熱検出器７２、７４、７６，７８の過電流の閾値、過発熱の閾値は異なっている。検出結果は、どのブロックでどのようなＨＷ故障が生じたかを示すＨＷ故障情報である。故障は過電流又は過発熱である。
【００３７】
駆動部５６では、過電流／過発熱検出器９８、１００、１０２がＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６にそれぞれ接続される。過電流／過発熱検出器９８、１００、１０２はＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の過電流／過発熱を検出すると、ＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の動作を停止させるとともに、コントロールロジック８６に検出結果を通知する。ＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６毎に許容できる最大電流、最大温度は異なっているので、過電流／過発熱検出器９８、１００、１０２の過電流の閾値、過発熱の閾値は異なっている。検出結果は、どのブロックでどのようなハードウェア的なＨＷ故障が生じたかを示すＨＷ故障情報である。故障は過電流又は過発熱である。
【００３８】
コントロール部５４はコントロールロジック８６以外にメモリ８８、Ｉ２Ｃ  Ｉ／Ｆ９０を含む。コントロールロジック８６はプロセッサ、ＳｏＣから構成しても良い。コントロール部５４は単一のＩＣにより形成されても良いが、別々の素子から形成されても良い。Ｉ２Ｃ  Ｉ／Ｆ９０はＩ２Ｃバスラインを介してコントローラ７２および解析装置１１２に接続される。
【００３９】
コントロールロジック８６は過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２から供給されたＨＷ故障情報をメモリ８８に書き込む。メモリ８８は、ＳＦＲＯＭ２８と同様に不揮発性のプログラマブルメモリである。メモリ８８は、フラッシュメモリから構成されても良いが、１回書き込み可能なワンタイムＲＯＭ（ＯＴＰ−ＰＲＯＭ）、電気的書き込み／消去可能ＲＯＭ（ＥＰＰＲＯＭ）でも良い。コントロールロジック８６は過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２の少なくとも１つが過電流／過発熱を検出すると、電源部５２と駆動部５６の全てのブロック、すなわちロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８、ＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の動作を停止させ、電源回路３０の動作を停止させる。
【００４０】
メモリ８８に格納されているＨＷ故障情報はＩ２Ｃインタフェース９０を介して読み出すことができる。一般ユーザがＨＷ故障情報にアクセスすることができないようにＳＳＤ２０のコネクタ２３（図２を参照）にはＩ２Ｃ端子は接続されていない。メモリ８８に格納されているＨＷ故障情報を読み出す際は、ＳＳＤ２０の基板１２に形成されたＩ２Ｃバスラインに形成されているチェックランドにドングルをアタッチする。ドングルを介してメモリ８８から読み出されたＨＷ故障情報が解析装置１１２に転送される。なお、コントローラ２２がメモリ８８からＨＷ故障情報を読み出すことは不可能となっている。
【００４１】
コントロールロジック８６はＩ２Ｃ  Ｉ／Ｆ９０を介してコントローラ２２に接続される。Ｉ２Ｃ  Ｉ／Ｆ９０はコントローラ２２から送信される電圧制御信号を受信して、受信した電圧制御信号をコントロールロジック８６に供給する。電圧制御信号は電源部５２内のロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８及び駆動部５６内のＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６に供給され、ロードスイッチ６２、６４のオン／オフ、昇圧回路６６、ＰＬＰ昇降圧回路６８、ＤＣ／ＤＣコンバータ９２、９４、ＬＤＯ９６の出力電圧、出力電流が制御される。
【００４２】
図４はメモリ８８に記憶されるＨＷ故障情報の一例を示す図である。ＨＷ故障情報は、故障ブロックと故障種類からなる。
ＨＷ故障が発生すると、当該ＳＳＤ２０は製造者により回収される。回収されたＳＳＤ２０は破棄されることが多く、修理して再使用されることは殆どない。そのため、メモリ８８は１つだけＨＷ故障情報を格納できればよいが、場合によっては、ＨＷ故障によりシャットダウンした後、ＳＳＤ２０が再度起動し、ＨＷ故障が複数回検出されることがある。例えば、ＤＣ／ＤＣコンバータ９２が過電流／過発熱により動作停止し、ＤＣ／ＤＣコンバータ９２のＨＷ故障情報がメモリ８８に書き込まれると、他のブロック（ロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８、ＤＣ／ＤＣコンバータ９４、ＬＤＯ９６）も全て動作停止され、ＳＳＤ２０はシャットダウンする。その後、外部電源８がオフしてから、再度、オンすることがある。この場合、ＳＳＤ２０が起動し、ＤＣ／ＤＣコンバータ９２が過電流／過発熱となった条件が変わらない（維持された）状態を維持すると、ＤＣ／ＤＣコンバータ９２が再度動作停止し、再度シャットダウンする。この状況をメモリ８８に記録しておくことは、故障解析に役立つ。
【００４３】
メモリ８８は、これに対処するために、アドレス／バンクによりメモリ領域が複数の領域に分割され、複数のＨＷ故障情報を時系列に（これは、順に、異なるタイミングで、などを含む）書き込み可能である。メモリ領域の分割の仕方は任意である。図４は、ＤＣ／ＤＣコンバータ９２で過電流が発生し、その後ロードスイッチ６２で過電流が発生したことを示す。
【００４４】
複数回のＨＷ故障が検出された場合、複数のＨＷ故障情報をメモリ８８の連続する領域にシーケンシャルに記録しても良い。分割領域の数が少ないため、ＨＷ故障が検出された時、ＨＷ故障情報を新たに書き込む領域が無い場合は、一番過去のＨＷ故障情報の記録領域に上書きしても良い。また、複数のブロックで同時にＨＷ故障が検出される場合もあるが、この時、複数のＨＷ故障情報を全てメモリ８８に書き込んでも良いし、一部のＨＷ故障情報のみを書きこんでも良い。メモリに８８に書き込むＨＷ故障情報の決め方は、ブロックの優先度によっても良い。電源部５２、駆動部５８の各ブロックに予め優先度が設定され、優先度の高いブロックで検出されたＨＷ故障情報のみがメモリ８８に書き込まれ、優先度の高くないブロックで検出されたＨＷ故障情報はメモリ８８に書き込まれなくても良い。
【００４５】
［故障情報の記録］  
図５はＨＷ故障情報の記録手順の一例を示すフローチャートである。ＨＷ故障情報はＳＳＤ２０の出荷後の使用中に記録することもあるが、ＳＳＤ２０の出荷前のテスト中に記憶することもある。
ブロック１００２で、コントロールロジック８６はロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８、ＤＣ／ＤＣコンバータ９２、９４、…、ＬＤＯ９６、…をオンさせる。これにより、電源部５２、駆動部５６は動作開始する。ブロック１００４で、電源回路３０は外部電源（１２Ｖ、５Ｖ）から内部電源電圧Ｖ１、Ｖ２、Ｖ３、…を生成し、内部電源電圧Ｖ１、Ｖ２、Ｖ３、…をデバイス部５８へ印加し、ＳＳＤ２０を起動する。
【００４６】
ＳＳＤ２０が起動すると、コントローラ２２はホスト１０からのコマンドに従い、フラッシュメモリ２４にデータを書き込んだり、フラッシュメモリ２４からデータを読み出したりする。この際、コントローラ２２はデータをＤＲＡＭ２６にバッファする。コントローラ２２は温度センサ３１の測定温度に応じた電圧制御信号をコントロール部５４に送り、電源回路３０が生成する電圧制御信号をＳＳＤ３０の温度に応じて調整する。ＳＳＤ３０の動作中、ソフトウェア的なＳＷ故障が生じると、コントローラ２２とフラッシュメモリ２４やＤＲＡＭ２６、温度センサ３１等との間の通信が失敗し、ＳＳＤ３０が正常に動作できない。あるいは、コントローラ２２がフラッシュメモリ２４やＤＲＡＭ２６のエラー領域にアクセスしてしまい、ＳＳＤ３０が正常に動作できない。
【００４７】
そのため、ブロック１００６で、コントローラ２２は上記のようなＳＷ故障を検出したか否かを判定する。コントローラ２２がＳＷ故障を検出しない場合（ブロック１００６：ＮＯ）、ブロック１０１４で、コントロールロジック８６は過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２の少なくとも１つが過電流／過発熱を検出したか否かを判定する。過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２の全ての検出器が過電流／過発熱を検出しない場合（ブロック１０１４：ＮＯ）、フローはブロック１００６の処理に戻り、ＳＷ故障の検出が繰り返される。
【００４８】
ブロック１００６で、コントローラ２２がＳＷ故障を検出した場合（ブロック１００６：ＹＥＳ）、ブロック１００８でコントローラ２２はＳＷ故障情報をＳＦＲＯＭ２８に書き込む。この後、ブロック１０１０でコントローラ２２はＤＲＡＭ２６にバッファされている未書き込みのデータをフラッシュメモリ２４に退避させ、ＳＳＤ２０をシャットダウンして処理が完了する。なお、ＳＷ故障の程度によっては、正常にシャットダウンできない場合がある。
【００４９】
ブロック１０１４で、過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２の少なくとも１つの検出器が過電流／過発熱を検出した場合（ブロック１０１４：ＹＥＳ）、ブロック１０１６でコントロールロジック８６はロードスイッチ６２、６４、昇圧回路６６、ＰＬＰ昇降圧回路６８、ＤＣ／ＤＣコンバータ９２、９４、…、ＬＤＯ９６、…を全てオフする。これにより、ロードスイッチ６２、昇圧回路６６から１２Ｖの電圧信号の出力が停止するが、ＰＬＰキャパシタ８０に充電されていた電荷が放電される一定期間だけ、ＰＬＰ昇降圧回路６８から１２Ｖの電圧信号が出力され、デバイス部５８に電源電圧が印加される。この一定期間に、ブロック１０１８でコントロールロジック８６は過電流／過発熱を検出した過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２の少なくとも１つの検出器の出力に基づいたＨＷ故障情報をメモリ８８に書き込む。この後、ブロック１０２０でコントローラ２２はＤＲＡＭ２６にバッファされている未書き込みのデータをフラッシュメモリ２４に退避させ、ＳＳＤ２０をシャットダウンして処理が完了する。なお、メモリ８８へのＨＷ故障情報の書き込みは、ＳＳＤ２０のシャットダウン中又はシャットダウンの前に行ってもよい。
【００５０】
出荷前の製品のテスト中であれば、シャットダウン後、メモリ８８からＨＷ故障情報が読み出され、ＳＦＲＯＭ２８からＳＷ故障情報が読み出され、故障解析が行われる。ユーザによる製品の使用中であれば、シャットダウン後、ＳＳＤ２０は例えば製造者に回収され、メモリ８８が格納するＨＷ故障情報やＳＦＲＯＭ２８が格納するＳＷ故障情報に基づいて故障解析が行われる。
【００５１】
［実施形態の効果］  
電子機器であるＳＳＤ２０に含まれるデバイス２２、２４、２６、２８、３１等に過電流／過発熱等の故障が生じると、電源回路３０に含まれる駆動部５６に含まれる内部電源電圧を生成する複数のブロックの中の故障デバイスに対応するブロックも過電流／過発熱等の故障状態になる。あるブロックが過電流／過発熱等の故障状態になると、それに接続されている他のブロックも過電流／過発熱等の故障状態になることもある。ブロックの過電流／過発熱が過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２により検出されると、電源回路３０は動作停止し、ＳＳＤ３０はシャットダウンされる。電源回路３０が動作停止しても、電源部５２からのシステム電源ＶＳＹＳがコントロール部５４に供給されているので、コントロールロジック８６は過電流／過発熱検出器７２、７４、７６、７８、９８、１００、１０２により過電流／過発熱が検出されたブロックのＨＷ故障情報を電源回路３０に設けられたメモリ８８に書き込むことができる。そのため、ＳＳＤ２０に含まれるデバイス、例えばコントローラ２２が故障しても、ＨＷ故障情報をメモリ８８に書き込むことができる。
【００５２】
また、コントローラ２２は正常であるが、電源回路３０が故障して、コントローラ２２に駆動電源を供給できない場合も、システム電源ＶＳＹＳが供給されるコントロールロジック８６によりＨＷ故障情報をメモリ８８に書き込むことができる。
このように、ＳＳＤ２０のコントローラ２２とは無関係に電源回路３０のＨＷ故障情報がメモリ８８に書き込まれるので、コントローラ２２の状態（故障の有無等）に左右されず、ＨＷ故障情報を不揮発に記録することができる。メモリ８８に格納されている情報はＩ２Ｃバスラインを介して解析装置１１２に読み込まれ、故障解析が容易に実行される。
【００５３】
実施形態は、ＳＳＤの電源装置に限らず、ハードディスクドライブ（ＨＤＤ）の電源装置にも適用できる。ＨＤＤでは、電源遮断時の電力は、磁気ディスクの逆起電力（回転を止める力）により生成できるので、ＰＬＰ昇降圧回路、ＰＬＰキャパシタは不要である。
【００５４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。更に、異なる実施形態に亘る構成要素を適宜組み合せても良い。
【符号の説明】
【００５５】
８…外部電源、１０…ホスト、２０…ＳＳＤ、２２…コントローラ、２４…フラッシュメモリ、２８…ＳＦＲＯＭ、３０…電源回路、６２，６４…ロードスイッチ、６８…ＰＬＰ昇降圧回路、８６…コントロールロジック、８８…メモリ、９０…Ｉ２Ｃ  Ｉ／Ｆ、９２，９４…ＤＣ／ＤＣコンバータ、９６…ＬＤＯ。
【図１】
2020013271.tif 000003
【図２】
2020013271.tif 000004
【図３】
2020013271.tif 000005
【図４】
2020013271.tif 000006
【図５】
2020013271.tif 000007
【手続補正書】
【提出日】平成31年1月15日(2019.1.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
【特許文献１】特開２０１０−２１１７３４号公報
【特許文献２】米国特許出願公開第２０１０／２３５５６８号明細書
【特許文献３】特開２０１１−１３８２７３号公報
【特許文献４】特許第５５７９４３１号公報
【特許文献５】米国特許第８３７０７２０号明細書