(57)【要約】【課題】  省電力動作中に温度を測定し、メモリに記録することができるストレージ装置及びストレージ装置の制御方法を提供する。【解決手段】  実施形態のストレージ装置は、不揮発性の記憶部と、温度を検知する温度センサと、温度センサから出力される温度データを取得し、温度データに応じて記憶部の動作を制御するコントローラと、電源と、を具備し、動作モードとして第１モード又は第２モードが指定される。電源は、第１モードが指定されている期間、コントローラに温度データの取得に必要な第１電力を供給し、第２モードが指定されている期間の少なくとも１つのタイミング以外の期間、コントローラに第１電力より少ない第２電力を供給し、少なくとも１つのタイミングでコントローラに第２電力を供給する。コントローラは、第１モードが指定されている期間、温度データを周期的に取得し、少なくとも１つのタイミングと第２モードから第１モードへの切替タイミングで、温度データを取得する。【選択図】  図７
2020017133.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の記憶部と、
前記記憶部の温度を検知する温度センサと、
前記温度センサから出力される温度データを取得し、前記温度データに応じて前記記憶部の動作を制御するコントローラと、
電源と、を具備し、
外部機器から動作モードとして第１モード又は第２モードが指定されるストレージ装置であって、
前記電源は、
前記第１モードが指定されている期間、前記コントローラに前記温度データを取得するに必要な第１電力を供給し、
前記第２モードが指定されている期間の少なくとも１つのタイミング以外の期間、前記コントローラに前記第１電力より少ない第２電力を供給し
前記少なくとも１つのタイミングで前記コントローラに前記第２電力を供給し、
前記コントローラは、
前記第１モードが指定されている期間、前記温度データを周期的に取得し、
前記少なくとも１つのタイミングで前記温度データを取得し、
前記第２モードから前記第１モードへの切替タイミングで、前記温度データを取得し、
取得した前記温度データを前記記憶部に書き込むストレージ装置。
【請求項２】
前記第２モードは、
前記電源が前記コントローラに前記第１電力より少ない第３電力を供給する第３モードと、
前記電源が前記コントローラに前記第３電力より少ない第４電力を供給する第４モードと、を具備し、
前記ストレージ装置は、前記第２モードが指定されると、第１期間前記第３モードで動作し、その後前記第４モードで動作し、
前記少なくとも１つのタイミングは、前記第１モードから前記第２モードへの切替タイミング又は前記第３モードから前記第４モードへのモードの切替タイミングを具備する請求項１記載のストレージ装置。
【請求項３】
前記コントローラは、現在の温度と、過去の温度の最大値と、過去の温度の最小値を前記記憶部に書き込む請求項１又は請求項２記載のストレージ装置。
【請求項４】
前記コントローラは、前記第２モードから前記第１モードへの切替タイミングで取得した前記温度センサから出力される第１温度データと、前記第１モードにおける周期的な取得の最初に取得した第２温度データとに基づいて前記記憶部の動作を制御する請求項１乃至請求項３のいずれか一項記載のストレージ装置。
【請求項５】
前記コントローラは、前記第２温度データが示す第２温度が部品保証温度より高く、かつ前記第１温度データが示す第１温度に一定温度を加算した温度が前記第２温度より高くない場合、前記ストレージ装置の動作を停止させる請求項４記載のストレージ装置。
【請求項６】
前記コントローラは、前記第２温度が部品保証温度より高く、かつ前記第１温度に前記一定温度を加算した前記温度が前記第２温度より高い場合、前記記憶部の温度が前記部品保証温度より低い動作保証温度を超えないように前記記憶部の発熱を抑制して前記記憶部の動作を制御する請求項５記載のストレージ装置。
【請求項７】
前記コントローラは、前記第２モードから前記第１モードに切り替わると、前記記憶部の発熱が最小となるように前記記憶部の動作を制御する請求項６記載のストレージ装置。
【請求項８】
不揮発性の記憶部と、前記記憶部の温度を検知する温度センサと、前記温度センサから出力される温度データを取得し、前記温度データに応じて前記記憶部の動作を制御するコントローラと、電源と、を具備するストレージ装置の制御方法であって、
外部機器から動作モードとして第１モードが指定されている期間、前記電源から前記コントローラに前記温度データを取得するに必要な第１電力を供給することと、
前記外部機器から前記動作モードとして第２モードが指定されている期間の少なくとも１つのタイミング以外の期間、前記電源から前記コントローラに前記第１電力より少ない第２電力を供給することと、
前記少なくとも１つのタイミングで前記電源から前記コントローラに前記第２電力を供給することと、
前記外部機器から前記動作モードとして前記第１モードが指定されている期間、前記コントローラにより前記温度データを周期的に取得することと、
前記少なくとも１つのタイミングで前記コントローラにより前記温度データを取得することと、
前記第２モードから前記第１モードへの切替タイミングで、前記コントローラにより前記温度データを取得することと、
取得した前記温度データを前記コントローラにより前記記憶部に書き込むことと、
を具備するストレージ装置の制御方法。
【請求項９】
前記外部機器により前記動作モードとして前記第２モードが指定されると、前記電源から前記コントローラに前記第１電力より少ない第３電力を供給する第３モードで第１期間動作し、その後前記電源から前記コントローラに前記第３電力より少ない第４電力を供給する第４モードで動作することを具備し、
前記少なくとも１つのタイミングは、前記第１モードから前記第２モードへの切替タイミング又は前記第３モードから前記第４モードへのモードの切替タイミングを具備する請求項８記載のストレージ装置の制御方法。
【請求項１０】
前記コントローラにより、現在の温度と、過去の温度の最大値と、過去の温度の最小値を前記記憶部に書き込むことを具備する請求項８又は請求項９記載のストレージ装置の制御方法。
【請求項１１】
前記第２モードから前記第１モードへの切替タイミングで取得した前記温度センサから出力される第１温度データと、前記第１モードにおける周期的な取得の最初に取得した第２温度データとに基づいて前記コントローラにより前記記憶部の動作を制御することを具備する請求項８乃至請求項１０のいずれか一項記載のストレージ装置の制御方法。
【請求項１２】
前記第２温度データが示す第２温度が部品保証温度より高く、かつ前記第１温度データが示す第１温度に一定温度を加算した温度が前記第２温度より高くない場合、前記コントローラにより前記ストレージ装置の動作を停止させることを具備する請求項１１記載のストレージ装置の制御方法。
【請求項１３】
前記第２温度が部品保証温度より高く、かつ前記第１温度に前記一定温度を加算した前記温度が前記第２温度より高い場合、前記記憶部の温度が前記部品保証温度より低い動作保証温度を超えないように前記コントローラにより前記記憶部の発熱を抑制して前記記憶部の動作を制御することを具備する請求項１２記載のストレージ装置の制御方法。
【請求項１４】
前記第２モードから前記第１モードに切り替わると、前記記憶部の発熱が最小となるように前記コントローラにより前記記憶部の動作を制御することを具備する請求項１３記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は省電力動作が可能なストレージ装置及びストレージ装置の制御方法に関する。
【背景技術】
【０００２】
ストレージ装置として、ハードディスクドライブ（Hard Disk Drive）（以下、ＨＤＤと称する）やソリッドステートドライブ（Solid State Drive）（以下、ＳＳＤと称する）がある。ストレージ装置はホストに接続される。書き込み時は、ホストから書き込みデータと書き込みコマンドがストレージ装置に送信され、ストレージ装置が書き込みデータを磁気ディスク又は不揮発性半導体メモリに書き込む。読み出し時は、ホストから読み出しコマンドがストレージ装置に送信され、ストレージ装置が磁気ディスク又は不揮発性半導体メモリからデータを読み出し、読み出しデータをホストに送信する。
【０００３】
ストレージ装置には、ＳＭＡＲＴ（Self-monitoring Analysis and Reporting Technology）と呼ばれる障害の早期発見・故障の予測を目的とした自己診断機能が搭載されている。全ての故障を予期することは出来ないが、安定した利用環境における経年劣化による故障を知るには非常に有効である。この機能の中に、ストレージ装置の温度をホストに通知する項目がある。このため、ストレージ装置には温度センサが搭載されている。ストレージ装置は温度センサが検知する温度を定期的に取得する。ホストの診断用ソフトウェアからの温度通知の要求を受けると、ストレージ装置は温度をホストに通知する。温度がストレージ装置の動作保証温度を超える場合、診断用ソフトウェアはユーザーに警告を通知する。また、ストレージ装置も、温度上昇による部品故障を防ぐため、温度を周期的にモニタリングし、温度が動作保証温度を超えないように内部処理速度を落とす等の発熱量を減らすような制御を行う。さらに、温度が動作保証温度より高い部品保証温度を超える場合、ストレージ装置は自ら動作を停止する。
【０００４】
ストレージ装置の消費電力を削減するために、ホストは、ストレージ装置を省電力動作モードで動作することが可能となっている。省電力動作モードでは、ストレージ装置は大部分の機能をオフする。オフする機能は温度の取得機能を含む。そのため、ストレージ装置は省電力動作モードで動作する期間温度を取得できない。この間、ストレージ装置は殆ど動作しないので、発熱することは殆どないが、何らかの影響で周囲温度が上昇し、それが原因でストレージ装置の温度が上昇することがある。この場合、ストレージ装置の動作が省電力動作モードから通常動作モードに復帰し、温度取得を再開した時に、温度が部品保証温度を超えている場合、ストレージ装置の動作は直ぐに停止される。
【０００５】
また、ストレージ装置は温度（現在値、過去の最大値と最小値）を不揮発性のメモリに記録しておく。故障したストレージ装置が製造者に戻入された時、製造者は、メモリから温度の最大値を読み出すことにより、ストレージ装置の使用状況（装置が動作保証温度を超えた温度で使用されたかどうか）を確認し、故障の原因を特定できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第６１８５７１８号公報
【特許文献２】米国特許第９４０５３３７号明細書
【特許文献３】特開２０１７−１３００４３号公報
【特許文献４】米国特許出願公開第２０１６／００６２３２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
温度センサが検知する温度は、ストレージ装置自体の温度とストレージ装置の周囲温度の両者の影響を受けるが、温度センサはストレージ装置自体の温度とストレージ装置の周囲温度とを分離して検知できない。そのため、省電力動作モード期間のストレージ装置自体の温度は部品保証温度以下であり、ストレージ装置を動作停止させる必要がない場合であっても、周囲温度が部品保証温度を超えている場合、温度センサが検知する温度が部品保証温度を超えてしまい、省電力動作モードから通常動作モードに復帰した時、ストレージ装置の動作は直ぐに停止されてしまう。また、省電力動作モードで動作する期間の温度はメモリに記憶されない。そのため、ストレージ装置が製造者に戻入されても、省電力動作モードで動作した期間のストレージ装置の使用状況を確認することができない。
【０００８】
本発明の目的は省電力動作中に温度を測定し、メモリに記録することができるストレージ装置及びストレージ装置の制御方法を提供することである。
【課題を解決するための手段】
【０００９】
実施形態によるストレージ装置は、不揮発性の記憶部と、前記記憶部の温度を検知する温度センサと、前記温度センサから出力される温度データを取得し、前記温度データに応じて前記記憶部の動作を制御するコントローラと、電源と、を具備する。ストレージ装置は、外部機器から動作モードとして第１モード又は第２モードが指定される。前記電源は、前記第１モードが指定されている期間、前記コントローラに前記温度データを取得するに必要な第１電力を供給し、前記第２モードが指定されている期間の少なくとも１つのタイミング以外の期間、前記コントローラに前記第１電力より少ない第２電力を供給し、前記少なくとも１つのタイミングで前記コントローラに前記第２電力を供給する。前記コントローラは、前記第１モードが指定されている期間、前記温度データを周期的に取得し、前記少なくとも１つのタイミングで前記温度データを取得し、前記第２モードから前記第１モードへの切替タイミングで、前記温度データを取得する。前記コントローラは取得した前記温度データを前記記憶部に書き込む。
【図面の簡単な説明】
【００１０】
【図１】実施形態によるＳＳＤを含む情報処理システムの一例の構成を示すブロック図である。
【図２】ＳＳＤの構造の一例を示す平面図である。
【図３】実施形態によるＳＳＤの構成の一例を示すブロック図である。
【図４】電源回路３０内のＤＣ／ＤＣコンバータ４８が生成する電圧を電力モード毎に示す図である。
【図５】比較例における温度変化時のＳＳＤの一動作例を示す図である。
【図６】比較例における温度変化時のＳＳＤの他の動作例を示す図である。
【図７】実施形態における温度変化時のＳＳＤの一動作例を示す図である。
【図８】実施形態のＳＳＤの一動作例の第１部分を示すフローチャートである。
【図９】実施形態のＳＳＤの一動作例の第２部分を示すフローチャートである。
【図１０】実施形態のＳＳＤの一動作例の第３部分を示すフローチャートである。
【図１１】実施形態における温度記憶領域のデータ構造の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
【００１２】
［システム全体構成］  
図１はＳＳＤを含む情報処理システムの一例の構成を示すブロック図である。情報処理システムは、ホストデバイス（以下、ホストと称する）１０とＳＳＤ２０を含む。ＳＳＤ２０は、不揮発性半導体メモリにデータを書き込むとともに、不揮発性半導体メモリからデータを読み出すように構成された半導体ストレージデバイスである。
【００１３】
ホスト１０は、ＳＳＤ２０にアクセスする情報処理装置（コンピューティングデバイスとも称する）である。ホスト１０は、大量且つ多様なデータをＳＳＤ２０に保存するサーバ（ストレージサーバとも称する）であっても良いし、パーソナルコンピュータであっても良い。ＳＳＤ２０は、ホスト１０のメインストレージとして使用され得る。ＳＳＤ２０は、ホスト１０に内蔵されても良いし、ホスト１０にケーブルまたはネットワークを介して接続されても良い。ホスト１０は、ＳＳＤ２０の稼働する機能の数を減らすことによりＳＳＤ２０の消費電力を減らすことができ、電力モードとして通常モードと省電力モードを選択可能である。ホスト１０は、電力モードの指定コマンドをＳＳＤ２０に供給する。
【００１４】
ＳＳＤ２０は、コントローラ２２、フラッシュメモリ２４、ＤＲＡＭ２６、温度センサ２８、電源回路３０等のデバイスを備える。コントローラ２２は、ＣＰＵ３２、ホストインタフェース（ホストＩ／Ｆ）３４、ＮＡＮＤインタフェース（ＮＡＮＤ  Ｉ／Ｆ）３６、ＤＲＡＭインタフェース（ＤＲＡＭ  Ｉ／Ｆ）３８等を備える。ＣＰＵ３２、ホストＩ／Ｆ３４、ＮＡＮＤ  Ｉ／Ｆ３６、ＤＲＡＭ  Ｉ／Ｆ３８はバスライン４２に接続される。コントローラ２２は、Ｓｙｓｔｅｍ−ｏｎ−ｃｈｉｐ（ＳｏＣ）のような回路によって実現され得る。
【００１５】
ホスト１０とＳＳＤ２０とを電気的に相互接続するためのホストＩ／Ｆ３４としては、例えばSmall Computer System Interface（ＳＣＳＩ）（登録商標）、PCI Express（登録商標）（ＰＣＩｅ（登録商標）とも称する）、Serial Attached SCSI（ＳＡＳ）（登録商標）、Serial Advanced Technology Attachment（ＳＡＴＡ）（登録商標）、Non Volatile Memory Express（ＮＶＭｅ（登録商標））、Universal Serial Bus（ＵＳＢ）（登録商標）、Universal Asynchronous Receiver/Transmitter（ＵＡＲＴ）（登録商標）等の規格が使用され得る。ここでは、一例としてホストＩ／Ｆ３４としてＳＡＴＡが採用される。
【００１６】
不揮発性半導体メモリとしてのフラッシュメモリ２４は、例えばＮＡＮＤ型のフラッシュメモリからなるが、ＮＡＮＤ型のフラッシュメモリに限らず、ＮＯＲ型等の他の不揮発性半導体メモリが用いられても良い。フラッシュメモリ２４は、複数のフラッシュメモリチップ（すなわち、複数のフラッシュメモリダイ）を含んでいても良い。ここでは、一例として１６個のフラッシュメモリ２４−１、２４−２、…、２４−１６が備えられている。フラッシュメモリ２４−１、２４−２、…、２４−１６の中の任意の数のメモリが同時に並列動作可能となっている。並列動作するメモリの数が多い程、処理速度は速い。各チップは、メモリセル当たりに１ビット又は複数ビットを格納可能に構成されたフラッシュメモリとして実現されている。フラッシュメモリ２４のリード、ライトはコントローラ２２により制御される。フラッシュメモリ２４はＮＡＮＤ  Ｉ／Ｆ３６に接続される。
【００１７】
揮発性メモリであるランダムアクセスメモリとしてのＤＲＡＭ２６は、例えばＤＤＲ３Ｌ規格のＤＲＡＭからなる。ＤＲＡＭ２６には、フラッシュメモリ２４に書き込まれるデータを一時的に格納するためのバッファ領域であるライトバッファと、フラッシュメモリ２４から読み出したデータを一時的に格納するためのバッファ領域であるリードバッファと、アドレス変換テーブル（論理アドレス／物理アドレス変換テーブルとも称する）として機能するルックアップテーブル（ＬＵＴと称する）のキャッシュ領域と、ＳＳＤ２０の処理中に用いられる各種の値や各種のテーブル等のシステム管理情報の格納領域が設けられても良い。ＬＵＴは、論理アドレスそれぞれとフラッシュメモリ２４の物理アドレスそれぞれとの間のマッピングを管理する。ＤＲＡＭ２６はＤＲＡＭ  Ｉ／Ｆ３８に接続される。ＤＲＡＭ２６は、コントローラ２２の外部に設けるのではなく、コントローラ２２の内に設けてもよい。その場合、ＤＲＡＭ２６の代わりにコントローラ２２に内蔵されている、より高速アクセスが可能な揮発性メモリであるＳＲＡＭを用いても良い。
【００１８】
ＳＳＤ２０は、温度センサ２８、電源回路３０をさらに備える。温度センサ２８はＳＳＤ２０の温度を検知する。温度センサ２８の出力はシリアル通信規格、例えばＩ２Ｃ規格に従ってコントローラ２２に供給される。コントローラ２２はＳＳＤ２０の温度に応じて電源回路３０を制御し、電源回路３０から出力される電源電圧を調整する。また、コントローラ２２はＳＳＤ２０の温度が高温の場合、発熱量を抑制するようにＳＳＤ２０を制御する。発熱量の抑制は、動作速度を遅くすることにより実現される。動作速度は、内部クロック周波数を低下する又は同時に並列動作するフラッシュメモリ２４の数を減少することにより遅くなる。
【００１９】
電源回路３０はホスト１０から供給される単一又は数個の外部電源からＳＳＤ２０の各デバイスで必要な複数の内部電源電圧を生成する。図１では電源ラインは図示しない。電源回路３０は単一又は数個のＩＣからなっても良い。電源回路３０を制御する制御信号はシリアル通信規格、例えばＩ２Ｃ規格に従ってコントローラ２２から供給される。コントローラ２２は、ホスト１０からのコマンドに従い、電源回路３０からＳＳＤ２０の各デバイスへの電源電圧の供給をオン／オフさせ、ＳＳＤ２０のパワーステートを通常モード又は省電力モードに設定し、ＳＳＤ２０を省電力で動作させることができる。
【００２０】
［ＳＳＤの外観］  
図２はＳＳＤ２０の外観の一例を示す平面図である。ＳＳＤ２０は、部品実装用の略矩形形状の基板２１を備える。近年、基板２１の規格として、コンピュータの内蔵拡張カードのフォームファクタと接続端子について定められたＭ．２規格がある。Ｍ．２規格には種々のサイズが提案されているが、例えば２２ｍｍ×４２ｍｍ、２２ｍｍ×６０ｍｍ、２２ｍｍ×８０ｍｍと非常に小型のタイプも含む。ＳＳＤ２０が小型化されるのに伴って、フラッシュメモリ２４も小型化される。小型化のフラッシュメモリ２４は動作時に高温になることがある。基板２１上に、ＩＣ化されている部品であるコントローラ２２、フラッシュメモリ２４、ＤＲＡＭ２６、温度センサ２８及び電源回路３０が搭載される。
【００２１】
ＳＳＤ２０は図２の状態（パッケージ化されていない状態）で電子機器、例えばホスト１０のスロットに挿入される。ホスト１０には複数のＳＳＤが挿入される複数のスロットが備えられることもある。このため、温度センサ２８はフラッシュメモリ２４の温度を検知するが、ＳＳＤ２０の周囲温度も検知してしまう。このようにＳＳＤ２０の温度はＳＳＤの周囲温度に影響される。
【００２２】
基板２１の一方の短辺側の側端には、ホスト１０と電気的に接続されるコネクタ２３が設けられる。基板１２に形成された配線パターン（図示しない）がコネクタ２３の所定の端子ピンに電気的に接続される。
［ＳＳＤの電気的構成］  
図３はＳＳＤ２０の詳細なブロック図である。コネクタ２３にコントローラ２２と電源回路３０が接続される。コネクタ２３とコントローラ２２の間は、ＳＡＴＡ  Ｉ／ＦとＵＡＲＴによりデータが転送される。ＵＡＲＴは、出荷前の段階で製造用のファームウェアプログラムをフラッシュメモリ２４に書き込むために利用されるが、出荷後は利用されない。出荷後は、ＳＡＴＡ  Ｉ／Ｆが利用される。ＳＳＤ２０を省電力モードに設定するためにホスト１０から出力されるデバイススリープ（ＤＥＶＳＬＰ）信号もコネクタ２３からコントローラ２２に供給される。
【００２３】
図１に示したように、コントローラ２２にフラッシュメモリ２４、ＤＲＡＭ２６、温度センサ２８、電源回路３０が接続される。温度センサ２８はＩ２Ｃバスを介してコントローラ２２に接続される。コントローラ２２は、温度センサ２８に対して定期的（例えば、数１００ミリ秒〜数秒）にリードコマンドを送信して、温度センサ２８の出力データを取得する。コントローラ２２はＩ２Ｃバスを介して電源回路３０のＤＣ／ＤＣコンバータ４８(に接続され、コントローラ２２からＤＣ／ＤＣコンバータ４８へＩ２Ｃバスを介して制御信号が供給される。ＤＣ／ＤＣコンバータ４８は５系統の電源電圧を生成するように構成され、ＤＣ／ＤＣコンバータ４８の電源電圧生成はコントローラ２２からの制御信号により制御される。電源電圧生成の制御は、ＤＣ／ＤＣコンバータ４８が生成する各電源電圧の値の制御を含む。さらに、ＤＣ／ＤＣコンバータ４８が生成する電源電圧の系統数はＳＳＤ２０のパワーステートモードに応じて変化する。例えば、ＤＣ／ＤＣコンバータ４８は５系統の電源電圧を生成する又はその中の少数の系統の電源電圧を生成する。
【００２４】
コントローラ２２には、図１には示されない一定周波数の発振器５４が接続される。コントローラ２２は、図１には示されない分周器５６と分周比が設定されるレジスタ５８とを内蔵する。発振器５４の出力が分周器５６に入力され、レジスタ５８に格納されているデータに応じて分周され、ＳＳＤ２０の内部クロック信号が生成される。レジスタ５８に設定される分周比を変えることにより、内部クロック信号の周波数が変更される。内部クロック信号の周波数を低くすることにより、ＳＳＤ２０の処理速度が遅くなり、ＳＳＤ２０の発熱量を抑制することができる。
【００２５】
電源回路３０は、ホスト１０から供給される外部電源（例えば、ＤＣ３．３Ｖ）の電圧信号を入力する。入力電圧信号はヒューズ４２、ロードスイッチ４４を直列に介してＬＤＯ（Low Dropout）回路４６、ＤＣ／ＤＣコンバータ４８、５２に供給される。ヒューズ４２は一定以上の電流が流れると、溶断され、電源回路３０が動作不能となる。ロードスイッチ４４は、オン／オフスイッチであり、通常動作中はオンしており、電流を流し、入力電圧と等しい電圧信号を出力する。一定以上の電流が流れると、ロードスイッチ４４はオフし、出力電圧は０Ｖとなる。ヒューズ４２が溶断される電流の閾値はロードスイッチ４４がオフする電流の閾値より高くても良いし、同じでも良い。ヒューズ４２とロードスイッチ４４により二重に過電流が防止される。
【００２６】
ＬＤＯ４６とＤＣ／ＤＣコンバータ４８、５２はともに入力ＤＣ電圧を降圧してＳＳＤ２０内の各デバイスの電源電圧を生成するものである。ＤＣ／ＤＣコンバータ４８、５２は大電流を必要とするデバイス用の電源を生成する。ＬＤＯ４６は小電流のデバイス用の電源を生成する。例えば、ＬＤＯ４６は入力ＤＣ電圧を降圧して２．５Ｖのコントローラ２２用の電源電圧を生成する。ＤＣ／ＤＣコンバータ４８は入力ＤＣ電圧を降圧し、１．３５ＶのＤＲＡＭ２６用の電源電圧、１．８Ｖのフラッシュメモリ２４用の電源電圧、１．０Ｖのコントローラ２２の第１部分用の第１電源電圧ＰＤ０、１．０Ｖのコントローラ２２の第２部分用の第２電源電圧ＰＤ１、１．０Ｖのコントローラ２２の第３部分用の第３電源電圧ＰＤ２からなる５系統の電源電圧を生成する。ＤＣ／ＤＣコンバータ４８から出力されるフラッシュメモリ２４用の電源電圧（１．８Ｖ）は、ＤＣ／ＤＣコンバータ５２のイネーブル端子ＥＮに供給される。このため、ＤＣ／ＤＣコンバータ５２は、ＤＣ／ＤＣコンバータ４８からフラッシュメモリ２４用の電源電圧（１．８Ｖ）が出力されない間、動作停止する。ＤＣ／ＤＣコンバータ４８から出力される第２電源電圧ＰＤ２は、ＬＤＯ４６のイネーブル端子ＥＮに供給される。このため、ＬＤＯ４６は、ＤＣ／ＤＣコンバータ４８から第２電源電圧ＰＤ２が出力されない間、動作停止する。ＤＣ／ＤＣコンバータ４８の電圧生成はＩ２Ｃバスを介してコントローラ２２から供給されるパワーステートモード信号により制御される。
【００２７】
各パワーステート（パワーステートの定義は後述する）におけるＤＣ／ＤＣコンバータ４８が生成する電圧の例を図４に示す。ＯＮは電圧生成を示し、ＯＦＦは電圧を生成しないことを示す。アクティブモードの場合、ＤＣ／ＤＣコンバータ４８は、ＤＲＡＭ２６用の電源電圧（１．３５Ｖ）、フラッシュメモリ２４用の電源電圧（１．８Ｖ）、コントローラ２２用の第１電源電圧ＰＤ０、第２電源電圧ＰＤ１及び第３電源電圧ＰＤ２（ともに１．０Ｖ）を生成する。アイドルモードの場合、ＤＣ／ＤＣコンバータ４８は、ＤＲＡＭ２６用の電源電圧、フラッシュメモリ２４用の電源電圧及びコントローラ２２用の第１電源電圧ＰＤ０、第２電源電圧ＰＤ１を生成するが、コントローラ２２用の第３電源電圧ＰＤ２を生成しない。シャローデバイススリープモードの場合、ＤＣ／ＤＣコンバータ４８は、ＤＲＡＭ２６用の電源電圧、フラッシュメモリ２４用の電源電圧及びコントローラ２２用の第１電源電圧ＰＤ０を生成するが、コントローラ２２用の第２電源電圧ＰＤ１及び第３電源電圧ＰＤ２を生成しない。ディープデバイススリープモードの場合、ＤＣ／ＤＣコンバータ４８は、コントローラ２２用の第１電源電圧ＰＤ０を生成するが、ＤＲＡＭ２６用の電源電圧、フラッシュメモリ２４用の電源電圧及びコントローラ２２用の第２電源電圧ＰＤ１、第３電源電圧ＰＤ２を生成しない。
【００２８】
これにより、コントローラ２２の動作はパワーステートモード信号に応じて省電力動作となる。
ＤＣ／ＤＣコンバータ５２は入力ＤＣ電圧を降圧し、２．８Ｖのフラッシュメモリ２４用の電源電圧を生成する。なお、ロードスイッチ４４の出力信号がそのまま３．３Ｖの電源信号としてコントローラ２２、温度センサ２８へ供給される。ＤＣ／ＤＣコンバータ４８から５系統の電源電圧の全てが正常に出力された後に、ＤＣ／ＤＣコンバータ４８からコントローラ２２にリセット信号が供給され、コントローラ２２が動作を開始する。
【００２９】
ＬＤＯ４６、ＤＣ／ＤＣコンバータ４８、５２は別個のＩＣで構成しても良いし、２つ又は３つを１つのＩＣで構成しても良い。ＬＤＯ４６、ＤＣ／ＤＣコンバータ４８、５２が生成する電圧の系統数や値は上記した数や値に限られない。
［比較例］  
実施形態のＳＳＤ２０の省電力動作を説明する。先ず、実施形態と比較するために図５を参照して比較例の動作の第１の例を説明する。比較例では、ホスト１０は、通常モードを指定する時は、ＤＥＶＳＬＰ信号をネゲートし、ＳＡＴＡが省電力モードとして定義しているデバイススリープモードを指定する時は、ＤＥＶＳＬＰ信号をアサート（ａｓｓｅｒｔ）する。
【００３０】
ＤＥＶＳＬＰ信号がネゲート（ｎｅｇａｔｅ）されている期間、コントローラ２２は、アクティブモード信号をＤＣ／ＤＣコンバータ４８に供給する。アクティブモードの場合、図４に示すように、ＤＣ／ＤＣコンバータ４８は、５系統の電源電圧を全て生成する。この時の消費電力は数ワットである。
【００３１】
コントローラ２２が温度センサ２８の出力を取り込む処理は、コントローラ２２内のファームウェアにより実行される。コントローラ２２が温度取得ファームウェアを実行するためには第２電源電圧ＰＤ１が必要である。そのため、ＤＥＶＳＬＰ信号がネゲートされている期間は、コントローラ２２はＩ２Ｃバスを介して温度センサ２８が検知するセンサ温度Ｔｓを一定周期で取得し、取得したセンサ温度Ｔｓをフラッシュメモリ２４に書き込む。
【００３２】
コントローラ２２は、ホスト１０からの通知要求を受信すると、センサ温度Ｔｓをホスト１０に通知する。さらに、コントローラ２２はセンサ温度Ｔｓが動作保証温度Ｔｏｐ＿ｍａｘを超えないように、ＳＳＤ２０のクロック周波数を下げること又は並列動作するフラッシュメモリ２４の数を減らすことにより発熱を抑え、温度上昇を抑制するようにＳＳＤ２０を制御する。これにより、センサ温度Ｔｓは徐々に低下する。
【００３３】
コントローラ２２は、ホスト１０からアイドル要求のコマンドを受信すると、アイドルモード信号をＤＣ／ＤＣコンバータ４８に供給する。コントローラ２２は、ホスト１０からのコマンドを一定期間受信しない場合も、アイドルモード信号をＤＣ／ＤＣコンバータ４８に供給する。アイドルモードの場合、図４に示すように、ＤＣ／ＤＣコンバータ４８は、コントローラ２２の第３電源電圧ＰＤ２をオフするので、ＬＤＯ４６もオフされる。そのため、コントローラ２２の機能の一部がオフされ、消費電力は５０〜１００ミリワットに減少する。
【００３４】
ＳＡＴＡでは、デバイススリープモードはシャローデバイススリープモードとディープデバイススリープモードに分類される。デバイススリープモードが指定されると、先ず、シャローデバイススリープモードが一定時間実行され、次にディープデバイススリープモードが実行される。
【００３５】
ＤＥＶＳＬＰ信号がネゲートからアサートに変わると、コントローラ２２は、シャローデバイススリープモード信号をＤＣ／ＤＣコンバータ４８に供給する。シャローデバイススリープモードの場合、図４に示すように、ＤＣ／ＤＣコンバータ４８は、コントローラ２２の第２電源電圧ＰＤ１、第３電源電圧ＰＤ２をオフする。シャローデバイススリープモードはアイドルモードに比べて、コントローラ２２の機能の中でオフされる機能が増え、消費電力は減少する。シャローデバイススリープモードでは、第２電源電圧ＰＤ１がオフなので、コントローラ２２はセンサ温度Ｔｓを取得することができない。
【００３６】
シャローデバイススリープの開始から数１００ミリ秒〜数秒経過すると、コントローラ２２は、ディープデバイススリープモード信号をＤＣ／ＤＣコンバータ４８に供給する。ディープデバイススリープモードの場合、図４に示すように、ＤＣ／ＤＣコンバータ４８は、コントローラ２２用の第１電源電圧ＰＤ０を生成するが、それ以外の電源電圧を生成しない。ディープデバイススリープモードはシャローデバイススリープモードに比べて、コントローラ２２の機能の中でオフされる機能がさらに増え、消費電力はさらに減少する。デバイススリープ時の消費電力は２〜５ミリワットである。
【００３７】
ディープデバイススリープモードでは、コントローラ２２用の第２電源電圧ＰＤ１が生成されないので、コントローラ２２は引き続きセンサ温度Ｔｓを取得することができない。
コントローラ２２が温度を取得しない省電力モードであるデバイススリープモード（シャローデバイススリープモードとディープデバイススリープモード）の期間に何らかの原因で周囲温度Ｔａが上昇し、ＳＳＤ２０の温度を測定する温度センサ２８のセンサ温度Ｔｓが上昇したとする。ＤＥＶＳＬＰ信号がアサートからネゲートに変化すると、ＳＳＤ２０のパワーステートはアクティブモードに戻り、コントローラ２２は、センサ温度Ｔｓの一定周期の取得を再開する。センサ温度Ｔｓが部品保証温度Ｔ＿ｌｉｍｉｔ以下であれば、コントローラ２２は、センサ温度Ｔｓが動作保証温度Ｔｏｐ＿ｍａｘを超えないように、クロック周波数を下げること又は並列動作するフラッシュメモリ２４の数を減らすことによりＳＳＤ２０の発熱を抑え、温度上昇を抑制するようにＳＳＤ２０を制御する。
【００３８】
図６は比較例の動作の第２の例を示す。第１、第２の例とも、デバイススリープモードの期間に何らかの原因で周囲温度Ｔａが上昇し、ＳＳＤ２０の温度を測定する温度センサ２８から出力されるセンサ温度Ｔｓが上昇する。第１の例では、センサ温度Ｔｓは動作保証温度Ｔｏｐ＿ｍａｘ以上には上昇しないと仮定したが、第２の例では、センサ温度Ｔｓは部品保証温度Ｔ＿ｌｉｍｉｔ以上にまで上昇したと仮定する。そのため、第２の例では、ＤＥＶＳＬＰ信号がアサートからネゲートに変化し、省電力モードから通常モードに復帰し、コントローラ２２がセンサ温度Ｔｓの一定周期の取得を再開した時、センサ温度Ｔｓが部品保証温度Ｔ＿ｌｉｍｉｔ以上であれば、ＳＳＤ２０の動作は停止される。第２の例では、センサ温度Ｔｓが部品保証温度Ｔ＿ｌｉｍｉｔ以上にまで上昇したが、図７に示すように周囲温度Ｔａが上昇したことによりセンサ温度Ｔｓが上昇した場合、ＳＳＤ２０自体は発熱しておらず、部品保温度Ｔ＿ｌｉｍｉｔに達していない。しかしながら、省電力モードから通常モードに復帰した時、センサ温度Ｔｓが部品保証温度Ｔ＿ｌｉｍｉｔ以上であれば、ＳＳＤ２０は故障していると判断され、ＳＳＤ２０の動作が停止されてしまう。また、デバイススリープモードの期間は温度取得できないので、この期間の温度データはフラッシュメモリ２４に保存されない。そのため、動作停止したＳＳＤ２０が製造者に戻入された際、図６、図７のようにデバイススリープモードの期間に何らかの原因で周囲温度Ｔａが上昇したか否かが分からない。
【００３９】
［実施形態の動作例］  
これを解決する実施形態の動作例を図７に示す。図７は図５、図６に対応する図である。図８、図９、図１０のフローチャートを参照して図７に示す実施形態の動作を説明する。ホスト１０がＤＥＶＳＬＰ信号をネゲートしている通常モードの場合の動作は比較例と同じである。すなわち、コントローラ２２は、センサ温度Ｔｓを一定周期で取得する。そのため、コントローラ２２は、ＤＥＶＳＬＰ信号がネゲートされている場合、アクティブモード信号をＤＣ／ＤＣコンバータ４８へ供給し、ＤＣ／ＤＣコンバータ４８は５系統の電源電圧を全て生成し、ＬＤＯ４６とＤＣ／ＤＣコンバータ５２は動作する。図８のブロック１０２で、温度取得タイミングになったか否かを判定する。コントローラ２２の内部タイマが一定期間をカウントし、温度取得タイミングになった場合、コントローラ２２は、ブロック１０４で、センサ温度Ｔｓを取得し、図１１に示すようなフラッシュメモリ２４内の温度記録領域２４Ｔに書き込む。後述するが、実施形態では、周囲温度Ｔａも取得するので、この時に取得されたセンサ温度Ｔａは周囲温度Ｔａと区別するために動作温度Ｔｏｐの現在値として温度記録領域２４Ｔに書き込まれる。温度記録領域２４Ｔは動作温度の過去の最大値と最小値を格納する領域も含む。温度記録領域２４Ｔはフラッシュメモリ２４とは別の不揮発性のメモリに用意しても良い。
【００４０】
ブロック１０６で、コントローラ２２は、ホスト１０から通知要求が送信されたか否かを判定する。ホスト１０から通知要求が送信されていない場合、コントローラ２２は、ブロック１０８の処理をスキップしてブロック１１２の処理を行い、ホスト１０から通知要求が送信されている場合、ブロック１０８で、ホスト１０へ動作温度（現在値、最大値、最小値）を通知した後、ブロック１１２の処理を行う。
【００４１】
ブロック１１２で、コントローラ２２は、動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔを超えたか否かを判定する。コントローラ２２は、動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔを超えない場合、ブロック１１６の処理を行い、動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔを超えた場合、ブロック１１４で、ＳＳＤ２０の動作を停止させる。コントローラ２２により動作が停止された場合、ＳＳＤ２０はホスト１０からの電源再起動コマンドを受信しないと、再起動しない。
【００４２】
ブロック１１６で、コントローラ２２は、動作温度Ｔｏｐが動作保証温度Ｔｏｐ＿ｍａｘを超えないように、ＳＳＤ２０のクロック周波数を下げること又は並列動作するフラッシュメモリ２４の数を減らすことにより発熱を抑え、温度上昇を抑制するようにＳＳＤ２０を制御する。これにより、センサ温度Ｔｓは徐々に低下する。なお、ＤＥＶＳＬＰ信号がネゲートされていても、アクティブモードからアイドルモードに遷移することもある。
【００４３】
ブロック１１８で、コントローラ２２は、ＤＥＶＳＬＰ信号がアサートされているか否かを判定する。コントローラ２２は、ＤＥＶＳＬＰ信号がネゲートされている場合、ブロック１０２の処理（温度取得タイミングの判定）を行い、ＤＥＶＳＬＰ信号がアサートされている場合、ブロック１２２で、センサ温度Ｔｓを取得し、動作温度Ｔｏｐの現在値として温度記録領域２４Ｔに書き込む。そのため、ブロック１２２の実行中はＳＳＤ２０のパワーステートはアイドルモードあるいはアクティブモードのままであり、シャローデバイススリープではない。
【００４４】
この後、ブロック１２４で、コントローラ２２は、シャローデバイススリープモード信号をＤＣ／ＤＣコンバータ４８へ供給する。これにより、ＤＣ／ＤＣコンバータ４８はコントローラ２２用の第２電源電圧ＰＤ１と第３電源電圧ＰＤ２をオフし、ＬＤＯ４６は動作停止する。第２電源電圧ＰＤ１がオフするので、コントローラ２２はセンサ温度Ｔｓを取得することができない。
【００４５】
コントローラ２２は、ブロック１２６で、ＤＥＶＳＬＰ信号がアサートされてから一定時間（例えば、数１００ミリ秒〜数秒）が経過したか否かを判定する。コントローラ２２は、一定時間が経過するまでブロック１２６の処理（経過判定）を繰り返し行い、一定時間が経過した場合、ブロック１２８で、アイドルモード信号をＤＣ／ＤＣコンバータ４８へ供給し、オフしていた第２電源電圧ＰＤ１をオンさせ、センサ温度Ｔｓを取得し、温度記録領域２４Ｔに書き込む。ブロック１２８では、ＳＳＤ２０のパワーステートはアイドルモードであるが、それまではＳＳＤ２０のパワーステートはシャローデバイススリープモードであり、ＳＳＤ２０は殆ど動作しておらず、発熱していないので、ブロック１２８で取得されたセンサ温度ＴｓはＳＳＤ２０の動作温度ではなく、周囲温度Ｔａ１として温度記録領域２４Ｔに書き込まれる。
【００４６】
ブロック１３２で、コントローラ２２は、ディープデバイススリープモード信号をＤＣ／ＤＣコンバータ４８へ供給する。これにより、ＤＣ／ＤＣコンバータ４８は、コントローラ２２用の第１電源電圧ＰＤ０以外の４系統の電源電圧をオフする。ブロック１２８でＳＳＤ２０のパワーステートがアイドルモードとなる期間は温度取得の非常に短い期間だけである。ディープデバイススリープモードの場合、第２電源電圧ＰＤ１はオフなので、コントローラ２２はセンサ温度Ｔｓを取得することができない。
【００４７】
ブロック１３６で、コントローラ２２は、ＤＥＶＳＬＰ信号がネゲートされているか否かを判定する。コントローラ２２は、ＤＥＶＳＬＰ信号がネゲートされていない場合、ブロック１３６の処理（ネゲート判定）を繰り返し実行し、ＤＥＶＳＬＰ信号がネゲートされている場合、ブロック１３８で、コントローラ２２は、アクティブモード信号をＤＣ／ＤＣコンバータ４８へ供給する。ＤＣ／ＤＣコンバータ４８は、５系統の電源電圧を全て生成する。
【００４８】
ブロック１４２で、コントローラ２２は、発熱量が最小となるようにＳＳＤ１０を制御する。ブロック１４４で、コントローラ２２は、センサ温度Ｔｓを取得し、温度記録領域２４Ｔに書き込む。ブロック１４４では、ＳＳＤ２０のパワーステートはアクティブモードであるが、それまではＳＳＤ２０のパワーステートはディープデバイススリープモードであり、ＳＳＤ２０は殆ど動作しておらず、発熱していないので、ブロック１４４で取得されたセンサ温度ＴｓはＳＳＤ２０の動作温度ではなく、周囲温度Ｔａ２として温度記録領域２４Ｔに書き込まれる。
【００４９】
この後、コントローラ２２は、ブロック１４６で、温度取得タイミングになったか否かを判定する。ＤＥＶＳＬＰ信号がネゲートされてからコントローラ２２の内部タイマが一定期間をカウントし、温度取得タイミングになった場合、コントローラ２２は、ブロック１４８で、センサ温度Ｔｓを取得し、動作温度Ｔｏｐの現在値としてフラッシュメモリ２４内の温度記録領域２４Ｔに書き込む。
【００５０】
ブロック１５２で、コントローラ２２は、動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔ以上であるか否かを判定する。動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔ以上ではない場合、コントローラ２２は、ブロック１５４の処理をスキップし、ブロック１５８の処理を実行する。動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔ以上である場合、コントローラ２２は、ブロック１５４で、動作温度Ｔｏｐが周囲温度Ｔａ２＋所定温度（例えば、５℃）以下であるか否かを判定する。
【００５１】
ブロック１５２、１５４の判定の内容を具体例に基づき説明する。省電力モードから通常モードに復帰した時の周囲温度Ｔａ２が９７℃であり、復帰直後に取得した動作温度Ｔｏｐが１０１℃であり、部品保証温度Ｔ＿ｌｉｍｉｔが１００℃であるとする。動作温度Ｔｏｐ（＝１０１℃）は部品保証温度Ｔ＿ｌｉｍｉｔ（＝１００℃）以上であるが、周囲温度Ｔａ２が９７℃と高温であるので、動作温度Ｔｏｐ（＝１０１℃）は周囲温度Ｔａ２（＝９７℃）の影響を受けており、ＳＳＤ２０は発熱していない正常状態である可能性がある。そのため、ブロック１５２で、動作温度Ｔｏｐが部品保証温度Ｔ＿ｌｉｍｉｔ以上であると判定されても、直ぐにはＳＳＤ２０を動作停止させずに、ブロック１５４で、動作温度Ｔｏｐが周囲温度Ｔａ２＋所定温度（例えば、５℃）以下であるか否かが判定される。
【００５２】
ブロック１５４で、動作温度Ｔｏｐ（＝１０１℃）が周囲温度Ｔａ２＋所定温度（＝９７℃＋５℃＝１０２℃）以下であると判定されると、ＳＳＤ２０は発熱していないと判断できる。一方、動作温度Ｔｏｐ（＝１０１℃）が周囲温度Ｔａ２＋所定温度（＝１０２℃）以下でなければ、ＳＳＤ２０は発熱していると判断できる。
【００５３】
ブロック１５４で、動作温度Ｔｏｐが周囲温度Ｔａ２＋所定温度以下であると判定された場合、ＳＳＤ２０が発熱していないと判断できるので、コントローラ２２は、ブロック１５８で、動作温度Ｔｏｐが動作保証温度Ｔｏｐ＿ｍａｘを超えないように、ＳＳＤ２０のクロック周波数を下げること又は並列動作するフラッシュメモリ２４の数を減らすことにより発熱を抑え、温度上昇を抑制するようにＳＳＤ２０を制御する。ブロック１５８のＳＳＤ２０の制御の後、コントローラ２２は、ブロック１０２の処理（温度取得タイミングの判定）を行う。
【００５４】
ブロック１５４で、動作温度Ｔｏｐが周囲温度Ｔａ２＋所定温度以下ではないと判定された場合、ＳＳＤ２０が発熱している、即ち故障していると判断できるので、コントローラ２２は、ブロック１５６で、ＳＳＤ２０の動作を停止させる。
ブロック１５４の判定で周囲温度Ｔａ２に加算される所定温度は５℃に限らない。この温度が大きくなると、ＳＳＤ２０が動作停止する判断基準が緩くなり、この温度が小さくなると、ＳＳＤ２０が動作停止する判断基準が厳しくなる。
【００５５】
実施形態によれば、ホスト１０がＤＥＶＳＬＰ信号をアサートする省電力モードの期間中の少なくとも１つのタイミング及び直後のタイミングで電源電圧ＰＤ２がオンされ、温度センサ２８の出力データがコントローラ２２に取得され、フラッシュメモリ２４に温度が書き込まれる。温度取得タイミングは、ＤＥＶＳＬＰ信号がアサートされた直後と、シャローデバイススリープからディープデバイススリープに切り替わるタイミングと、ＤＥＶＳＬＰ信号がネゲートされた直後であっても良い。これらのうち、シャローデバイススリープからディープデバイススリープに切り替わるタイミングと、ＤＥＶＳＬＰ信号がネゲートされた直後に取得した温度は、ＳＳＤ２０が殆ど動作していない時の温度であるので、周囲温度と見なすことができる。
【００５６】
ＤＥＶＳＬＰ信号をアサートされた直後の温度は、図７の例では使用されない（記録しなくてもよい）が、ＤＥＶＳＬＰ信号がアサート後、直ぐ（ディープデバイススリープに遷移する前）にネゲートされる場合に、周囲温度Ｔａ１として使われることがある。また、故障等によりＳＳＤ２０が製造者に戻入され、フラッシュメモリ２４の温度記録領域２４Ｔに記録されている温度に基づき使用状況を確認する際には、周囲温度Ｔａ１も利用される場合がある。
【００５７】
周囲温度を知ることができるので、コントローラ２２は、省電力モードの動作中にＳＳＤ２０が発熱したか否かを省電力モードから通常モードに復帰した際に判断できる。そのため、通常モードへの復帰時にセンサ温度が高温であった場合、コントローラ２２は、周囲温度が上昇したからセンサ温度が高温になったのか、ＳＳＤ２０が発熱したからセンサ温度が高温になったのかを識別することができる。コントローラ２２は、ＳＳＤ２０の温度が上がった場合のみ、ＳＳＤ２０の動作を停止させ、ＳＳＤ２０の温度が上がっていない場合は、動作温度Ｔｏｐが動作保証温度Ｔｏｐ＿ｍａｘを超えないようにＳＳＤ２０を制御して、様子を見る。そして、次回の温度取得時に依然としてセンサ温度が高温であった場合、コントローラ２２は、ＳＳＤ２０が発熱したと判断し、ＳＳＤ２０の動作を停止させる。例えば、ＳＳＤ２０が内蔵されるパーソナルコンピュータが４０℃の温度で使用される場合、ＳＳＤ２０が動作していなくても、温度センサ２８の出力する温度は４０℃を示すが、ＳＳＤ２０が動作すると、温度センサ２８の出力する温度は４０℃以上になる。また、パーソナルコンピュータが０℃の温度で使用される場合、ＳＳＤ２０が動作していないと、温度センサ２８の出力する温度は０℃を示すが、ＳＳＤ２０が動作すると、温度センサ２８の出力する温度は４０℃になることもある。
【００５８】
ＳＳＤ２０が製造者に戻入された場合、フラッシュメモリ２４の温度記録領域２４Ｔに格納されている温度を読み出すことにより、省電力動作中も含めてＳＳＤ２０の使用状況（装置が動作保証温度を超えた温度で使用されたかどうか）を確認できる。
さらに、ブロック１４２に示すように、ＳＳＤ２０のパワーステートがディープデバイススリープからアクティブに復帰した際、コントローラ２２は、発熱量が最小となるようにＳＳＤ１０を制御するので、復帰時にＳＳＤ２０が大電力で駆動され、温度が動作保証温度を超えてＳＳＤ２０が動作停止することが防止される。
【００５９】
なお、ＤＥＶＳＬＰ信号がアサートされている期間に温度を取得する回数は上述した２回に限らず、より多数であっても良い。
実施形態によるストレージ装置はＳＳＤ以外、例えばＨＤＤにも適用可能である。また、省電力動作モードの一例をデバイススリープモードとしたが、これに限らず、温度センサの出力の取得に必要な電力を供給しない他の省電力動作モードであっても良い。さらに、デバイススリープモードは、シャローデバイススリープとディープデバイススリープの２つからなる場合を説明したが、１つのスリープ状態からなっても良い。
【００６０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００６１】
１０…ホスト、２０…ＳＳＤ、２２…コントローラ、２３…コネクタ、２４…フラッシュメモリ、２６…ＤＲＡＭ、２８…温度センサ、３０…電源回路、３２…ＣＰＵ、４４…ロードスイッチ、４６…ＬＤＯ、４８、５２…ＤＣ／ＤＣコンバータ、５４…発振器。
【図１】
2020017133.tif 000003
【図２】
2020017133.tif 000004
【図３】
2020017133.tif 000005
【図４】
2020017133.tif 000006
【図５】
2020017133.tif 000007
【図６】
2020017133.tif 000008
【図７】
2020017133.tif 000009
【図８】
2020017133.tif 000010
【図９】
2020017133.tif 000011
【図１０】
2020017133.tif 000012
【図１１】
2020017133.tif 000013