(57)【特許請求の範囲】
【請求項１】
第１のインターフェースと第２のインターフェースを備える補助記憶装置の電力をホスト装置が停止する方法であって、
前記第１のインターフェースを通じて前記ホスト装置が前記補助記憶装置にデータを書き込むステップと、
前記ホスト装置が前記補助記憶装置の電力を停止するイベントを生成するステップと、
前記第１のインターフェースを通じて前記補助記憶装置に電力を停止するコマンドを送る前に前記イベントに応答して前記ホスト装置が前記第２のインターフェースをアサートするステップと、
前記第２のインターフェースがアサートされたことに応答して前記補助記憶装置が電力を停止するための準備動作をするステップと、
前記第２のインターフェースをアサートしてから所定の時間が経過したときに前記ホスト装置が前記補助記憶装置の電力を停止するステップと
を有する方法。
【請求項２】
前記準備動作をするステップが、前記補助記憶装置が省電力動作をするステップを含む請求項１に記載の方法。
【請求項３】
前記補助記憶装置がハードディスク・ドライブで、前記準備動作をするステップがヘッド／スライダを退避するステップを含む請求項１または請求項２に記載の方法。
【請求項４】
前記補助記憶装置がライトバック方式を採用し、前記準備動作をするステップが、キャッシュが記憶するデータを磁気ディスクに書き込むステップを有する請求項３に記載の方法。
【請求項５】
前記補助記憶装置がソリッド・ステート・ドライブで、前記準備動作をするステップが、キャッシュが記憶するデータを不揮発性の記憶セルに書き込むステップを有する請求項１または請求項２に記載の方法。
【請求項６】
第１のインターフェースと第２のインターフェースを備える補助記憶装置が接続されたコンピュータがシャットダウンする方法であって、
前記第１のインターフェースを経由して前記補助記憶装置にデータを書き込むステップと、
システムが認識しない環境でシャットダウン・イベントを生成するステップと、
前記システムが前記第１のインターフェースを通じて前記補助記憶装置にシャットダウンすることを示すコマンドを送る前に前記シャットダウン・イベントに応答して前記コンピュータが前記第２のインターフェースをアサートするステップと、
前記第２のインターフェースがアサートされたことに応答して前記補助記憶装置が電力を停止するための準備動作をするステップと、
前記第２のインターフェースをアサートしてから所定の時間が経過したときに前記コンピュータがシャットダウンするステップと
を有する方法。
【請求項７】
前記準備動作をするステップが、キャッシュが記憶するデータを不揮発性の記憶媒体に書き込むステップを含む請求項６に記載の方法。
【請求項８】
前記シャットダウン・イベントが、シャットダウンすることを示すコマンドをシステムが前記第１のインターフェースを通じて前記補助記憶装置に送ることができないときに生成される請求項６または請求項７に記載の方法。
【請求項９】
前記シャットダウン・イベントが、パワー・ボタンを所定の時間以上連続的に押下したときに生成される請求項８に記載の方法。
【請求項１０】
前記シャットダウン・イベントが前記コンピュータの中央演算処理装置が認識しない環境で動作するデバイスにより生成される請求項６から請求項９のいずれかに記載の方法。
【請求項１１】
前記シャットダウン・イベントが、デバイスの温度が異常を示すときに生成される請求項１０に記載の方法。
【請求項１２】
前記シャットダウン・イベントが、前記コンピュータに電力を供給するデバイスが異常を示すときに生成される請求項１０に記載の方法。
【請求項１３】
前記シャットダウン・イベントが、システムがハングアップしたときに生成される請求項１０に記載の方法。
【請求項１４】
プロセッサを含むシステムが所定のシーケンスを実行してシャットダウンすることが可能なコンピュータであって、
前記システムから独立して動作してシャットダウン・イベントを生成することが可能な制御回路と、
前記システムからコマンドを受け取る第１のインターフェースと前記制御回路から少なくとも一部の電力を停止することを示す信号を受け取る第２のインターフェースを備え、前記電力を停止することを示す信号を受け取ったときに電力を停止するための準備動作をすることが可能な補助記憶装置とを有し、
前記制御回路は前記システムが前記第１のインターフェースを通じてシャットダウンするコマンドを送る前に前記シャットダウン・イベントを生成したときに前記第２のインターフェースに前記電力を停止することを示す信号を出力し、前記電力を停止することを示す信号を出力してから所定の時間が経過したときに前記コンピュータをシャットダウンすることが可能なコンピュータ。
【請求項１５】
前記制御回路は、前記電力を停止することを示す信号を出力してから所定の時間が経過したときに前記補助記憶装置の電力を停止し、前記シャットダウン・イベントを生成したときにシャットダウンしたときに電力が停止する前記補助記憶装置以外のデバイスの電力を停止する請求項１４に記載のコンピュータ。
【請求項１６】
前記補助記憶装置が前記電力を停止することを示す信号を受け取ったときに省電力モードに移行する請求項１４または請求項１５に記載のコンピュータ。
【請求項１７】
前記補助記憶装置がＳＡＴＡの規格に適合し、前記電力を停止することを示す信号が前記補助記憶装置を省電力モードに移行させるためのＤＥＶＳＬＰ信号である請求項１４から請求項１６のいずれかに記載のコンピュータ。
【請求項１８】
補助記憶装置の電力を停止することが可能なホスト装置であって、
プロセッサと、
前記プロセッサから独立して動作して補助記憶装置の少なくとも一部の電力を停止することを示す信号を出力することが可能な制御回路と
前記プロセッサとの間でデータの転送をする第１のインターフェースと前記制御回路から前記電力を停止することを示す信号を受け取る第２のインターフェースとキャッシュと不揮発性の記憶媒体とを備え、前記電力を停止することを示す信号を受け取ったときに前記キャッシュが記憶するデータを前記不揮発性の記憶媒体に記録することが可能な補助記憶装置とを有し、
前記制御回路は前記プロセッサが前記第１のインターフェースを通じて前記補助記憶装置に電力を停止するコマンドを送ることができないときに、前記電力を停止することを示す信号を前記第２のインターフェースに出力してから所定の時間が経過したときに前記補助記憶装置の電力を停止することが可能なホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予期しないタイミングで電力が停止した補助記憶装置を保護する技術に関し、さらに詳細には補助記憶装置に対する書き込みデータの消失および物理的な損傷を防止する技術に関する。
【背景技術】
【０００２】
コンピュータは、主記憶装置（メイン・メモリ）に加えて、磁気ディスクを使用したハードディスク・ドライブ（ＨＤＤ）またはフラッシュ・メモリを使用したソリッド・ステート・ドライブ（ＳＳＤ）などの補助記憶装置を搭載する。コンピュータは揮発性のメイン・メモリ（ＲＡＭ）や各種のキャッシュに記憶している作業中のデータの中で、保存の必要なデータをシャットダウンする前に補助記憶装置に書き込む。
【０００３】
オペレーティング・システム（ＯＳ）、ＢＩＯＳ、およびユーティリティ・プログラムなどのソフトウェアとそれを実行するＣＰＵ、ＲＡＭおよびチップセットなどのハードゥエアはコンピュータのシステムを構成する。ユーザがマウスまたはキーボードを通じてシャットダウンの操作をすると、システムがＲＡＭやキャッシュなどが記憶するデータを補助記憶装置に書き込んでからＤＣ／ＤＣコンバータを停止する。このときシステムは事前に補助記憶装置に電源停止のコマンドを送る。コマンドを受け取った補助記憶装置は必要なデータを不揮発性の記憶媒体に書き込んで電源を停止できる状態になるとシステムに通知する。
【０００４】
ところでコンピュータは、システムが認識しない状態またはシステムが補助記憶装置に電源停止のコマンドを送れない状態でシャットダウンすることがある。以下、このような状態で電源が停止することをサプライズ・シャットダウンということにする。たとえばコンピュータのシステムは、ハードウェアまたはソフトウェアの不具合に起因してハングアップすることがある。
【０００５】
ハングアップの深刻さの程度によっては、回復するためにコンピュータを強制的にシャットダウンする必要がある。ハングアップしているシステムはシャットダウンの処理をすることができないため、ユーザはパワー・ボタンを４秒間以上継続的に押下するいわゆるパワー・ボタン・オーバーライドを実行したり、電源プラグを外したりしてコンピュータを強制的にシャットダウンする。また、コンピュータはハングアップしたときに自動的にシャットダウンすることもある。このようなシャットダウンは、サプライズ・シャットダウンになる。
【０００６】
さらにノートブック型パーソナル・コンピュータ（ノートＰＣ）では、システム・デバイスや電源用デバイスなどの物理的な安全を確保するために、システムから独立した環境で動作するファームウェアおよびハードウェアで構成されたコントローラを搭載する。このようなコントローラは、安全を優先させる必要がある場合はシステムが認識しないところで突然コンピュータの電源を停止する。この場合もサプライズ・シャットダウンが発生する。
【０００７】
特許文献１は、ユーザの不注意やファイルの消失を伴うシャットダウンを回避するためのパワー・ボタン・オーバーライド・メカニズムについて記載する。同メカニズムはパワー・ボタンを４秒間以上持続的に押下することでロックしたコンピュータを無条件にシャットダウンする。
【０００８】
特許文献２は、コンピュータがハングアップしたときにメイン・メモリに記憶していたデータをシャットダウンの前にＨＤＤに記憶して保護する発明を開示する。特許文献３は、ＨＤＤの電力が停止したときにスピンドル・モータの逆起電力を利用して磁気ヘッドを緊急退避させる発明を開示する。特許文献４は、ＨＤＤの電力が停止したときにコンデンサに蓄積した電力を利用してフレクシャをローディング位置に退避させる発明を開示する。
【０００９】
非特許文献１は、ＳＡＴＡ（シリアルＡＴＡ）が規定するデバイス・スリープ（DevSleep）について解説する。デバイス・スリープは、従来のＳＡＴＡデバイスよりも一層の消費電力の低減を実現する。従来のＳＡＴＡデバイスは、ＳＡＴＡインターフェースを通じてホストからコマンドを受け取ったときに省電力モードに移行して物理層の電力を低減する。デバイス・スリープ機能を備えるＳＡＴＡデバイスは、ＳＡＴＡインターフェースの他にホスト装置からＤＥＶＳＬＰ信号を受け取るインターフェースを備える。
【００１０】
ＤＥＶＳＬＰ信号がアサートされると、ＳＡＴＡデバイスは従来のようにコマンドを受け取って移行する省電力モードよりも一層少ない電力を消費する省電力モード（ディープ・スリープ状態）に移行する。ディープ・スリープ状態とパワー・オン状態の遷移は、ホスト装置がＤＥＶＳＬＰ信号により制御する。ディープ・スリープ状態では磁気ディスクの回転が停止するため、ＨＤＤはディープ・スリープ状態に遷移する前にヘッド／スライダをランプに退避（アンロード）する。またディープ・スリープ状態では、キャッシュの電力が停止するためＳＳＤはディープ・スリープ状態に遷移する前にキャッシュが記憶するデータをフラッシュ・メモリに書き込む。非特許文献１は、以下のＵＲＬで、インターネットから取得することができる。
http://www.sata-io.org/documents/SATA-DevSleep-and-RTD3-WP.pdf
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第６５８７９５１号明細書
【特許文献２】特開２０１２−８６７２号公報
【特許文献３】特開２００１−３０７４０８号公報
【特許文献４】特開平５−２０５３８６号公報
【非特許文献】
【００１２】
【非特許文献１】Serial ATA Device Sleep(DevSleep) and Runtime D3(RTD3),December 2011,AWHIPAPER BY: Intel Corporation, SanDisk Corporation
【発明の概要】
【発明が解決しようとする課題】
【００１３】
サプライズ・シャットダウンが発生したときにシステムは事前に補助記憶装置に電力を停止するコマンドを送ることができない。ＨＤＤは、磁気ディスクが回転したことにより表面に発生した気流が、サスペンションに取り付けられたヘッド／スライダに浮力を与えることで、ヘッド／スライダと磁気ディスクとの間に微小な間隔を維持する。ヘッド／スライダが磁気ディスク上を浮上しているときに磁気ディスクの回転が停止するとヘッド／スライダはディスクの表面に接触する。
【００１４】
つぎに接触した状態で電力を供給して磁気ディスクを回転させると磁気ディスクまたはヘッド／スライダが損傷する可能性があるためＨＤＤは磁気ディスクの回転を停止する前に、サスペンションを所定のパーキング位置に退避させる。ＨＤＤは事前にコマンドを受け取ったときには磁気ディスクの回転が停止する前にサスペンションを退避できるが、サプライズ・シャットダウンのときにはそれができない。特許文献３または特許文献４の技術を採用すれば、サプライズ・シャットダウンによるＨＤＤの物理的な損傷を防止することができる。
【００１５】
しかし、このような機構を備えるＨＤＤはコスト増をもたらすためホスト側で同様のことが実現できれば都合がよい。また、ＨＤＤのなかには書き込み時間を短縮するために書き込みデータをキャッシュに書き込んだ時点でホスト装置が書き込みの完了を認識するいわゆるライトバック方式を採用するものがある。ライトバック方式では、ＨＤＤの電力を停止する前にキャッシュに記憶した書き込みデータを磁気ディスクに書き込んでおく必要がある。
【００１６】
また、ＳＳＤは、ＮＡＮＤ型のセルに対する書き込みの頻度を低下させて長寿命化を図るために内部にキャッシュを備える。ＳＳＤはホスト装置から事前にコマンドを受け取ったときには、電力が停止する前にキャッシュのデータをセルに書き込むことができるが、サプライズ・シャットダウンのときはキャッシュのデータが消失する。また、ＮＡＮＤ型のセルには、書き換えの回数に制限があったり、上書きができなかったり、および書き込みをページ単位で行い消去を複数のページをまとめたブロック単位で行うといった制限がある。
【００１７】
そして、ＳＳＤは、セルの寿命を長くするためにシステムからのアクセスがないときに、書き込むセルの平準化を図るためのウェアレベリングという動作をする。ウェアレベリングをしているときにサプライズ・シャットダウンが発生すると記憶していたデータが消失してしまうため、ＳＳＤは電力が停止する前にホスト装置から電力停止のコマンドを受け取ってウェアレベリングを中断する処理をする必要がある。ＳＳＤおよびライトバック方式のＨＤＤでは、ホスト装置はデータをキャッシュに書き込んだ時点で書き込みが完了したと認識するので、その後サプライズ・シャットダウンが発生すると、ホスト装置が書き込んだと認識するデータと補助記憶装置が実際に記憶するデータの間に齟齬が生ずる。
【００１８】
そこで本発明の目的は、サプライズ・シャットダウンにより補助記憶装置が損傷することを防止する方法を提供することにある。さらに本発明の目的はサプライズ・シャットダウンにより補助記憶装置から書き込みデータが消失することを防止する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータおよびホスト装置を提供することにある。
【課題を解決するための手段】
【００１９】
本発明は、補助記憶装置の電力を突然停止したときに、補助記憶装置に発生するトラブルを防止する方法を提供する。本発明では補助記憶装置に、コマンドおよびデータを転送する第１のインターフェースに加えて、補助記憶装置が少なくとも一部の電力を停止するための準備動作をするタイミングを知ることができる第２のインターフェースを設ける。ホスト装置はサプライズ・シャットダウンを示すイベントが生成されたときに一旦補助記憶装置の電力を停止する処理を保留して第２のインターフェースをアサートし、補助記憶装置における準備動作が完了したタイミングで電力を停止する。
【００２０】
本発明の第１の態様では、最初に第１のインターフェースを通じてホスト装置が補助記憶装置にデータを書き込む。つぎに、ホスト装置が補助記憶装置の電力を停止するイベントを生成する。つぎにイベントに応答してホスト装置が第２のインターフェースをアサートする。つぎに第２のインターフェースがアサートされたことに応答して補助記憶装置が電力を停止するための準備動作をする。つぎに第２のインターフェースをアサートしてから所定の時間が経過したときにホスト装置が補助記憶装置の電力を停止する。
【００２１】
上記の構成において、ホスト装置がハングアップしたり、システムとは異なる環境で動作するデバイスがイベントを生成したりして第１のインターフェースを通じて事前にコマンドを送ることができない場合でもホスト装置は第２のインターフェースをアサートして補助記憶装置に電力停止のための準備動作をさせる。ホスト装置は、第２のインターフェースをアサートしてから準備動作が完了するまでの所定の時間が経過したときに電力を停止すれば、補助記憶装置の物理的損傷またはデータ消失を防止することができる。
【００２２】
補助記憶装置は、ＨＤＤまたはＳＳＤとすることができる。ＨＤＤの場合は、準備動作をヘッド／スライダの退避動作およびキャッシュのフラッシュ動作またはいずれかとすることができる。ＳＳＤの場合は、準備動作をキャッシュのフラッシュ動作とすることができる。なお準備動作は、このような例に限定する必要はなく、コマンドを受け取らないで突然電力が停止する場合のトラブルを防止するために必要なあらゆる処理とすることができる。
【００２３】
本発明の第２の態様は、第１のインターフェースと第２のインターフェースを備える補助記憶装置が接続されたコンピュータがシャットダウンする方法を提供する。最初に第１のインターフェースを経由して補助記憶装置にデータを書き込む。つぎに、システムが認識しない環境でシャットダウン・イベントを生成する。つぎに、シャットダウン・イベントに応答してコンピュータが第２のインターフェースをアサートする。つぎに、第２のインターフェースがアサートされたことに応答して補助記憶装置が電力を停止するための準備動作をする。つぎに、第２のインターフェースをアサートしてから所定の時間が経過したときにコンピュータがシャットダウンする。シャットダウンしたときのコンピュータのパワー・ステートは、ＡＣＰＩに規定するＳ５ステートとすることができる。
【００２４】
準備動作においては、キャッシュの書き込みデータを不揮発性の記憶媒体に書き込むことができる。シャットダウン・イベントは、シャットダウンすることを示すコマンドをシステムが第１のインターフェースを通じて補助記憶装置に送ることができないときに生成することができる。具体的には、パワー・ボタンを一定の時間以上押下したときまたはシステムがハングアップしたときに生成することができる。シャットダウン・イベントは、デバイスの温度または電源を供給するデバイスの状態に異常が発生したときに生成するようにしてもよい。第２のインターフェースは、ＳＡＴＡが規定する省電力モードに移行するためのデバイス・スリープ（DevSleep）とすることができる。
【発明の効果】
【００２５】
本発明により、サプライズ・シャットダウンによる補助記憶装置の損傷を防止する方法を提供することができた。さらに本発明により、サプライズ・シャットダウンによる補助記憶装置に対する書き込みデータの消失を防止する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータおよびホスト装置を提供することができた。
【図面の簡単な説明】
【００２６】
【図１】ＨＤＤの保護機能を備えたノートＰＣの構成を示す機能ブロック図である。
【図２】サプライズ・シャットダウンが発生したときにＨＤＤを保護する手順を説明するフローチャートである。
【発明を実施するための形態】
【００２７】
図１は、ＨＤＤの保護機能を備えたノートＰＣの構成を示す機能ブロック図である。ノートＰＣ１００はＡＣＰＩの規格に適合し、ワーキング・ステート（Ｇ０／Ｓ０）、スリーピング・ステート（Ｇ１／Ｓ３／Ｓ４）、およびソフト・オフ・ステート（Ｇ２／Ｓ５）のいずれかのパワー・ステートに遷移することができる。ただし、ノートＰＣ１００がスリーピング・ステートに遷移するか否かは、本発明の適用に直接影響しない。
【００２８】
Ｓ０ステートは、ＣＰＵを含むシステムが動作する状態でパワー・オンともいう。Ｓ３ステートはメイン・メモリの記憶を保持する省電力状態でサスペンドともいう。Ｓ４ステートはＯＳがコンテキストを不揮発性メモリに退避する省電力状態でハイバネーションともいう。Ｓ５ステートは最も消費電力の少ない状態でパワー・オフともいう。Ｓ５ステートでは、ノートＰＣ１００の電源を起動するために必要な最小限のデバイスにだけ電力が供給される。
【００２９】
ノートＰＣは、Ｓ０ステートのときにサプライズ・シャットダウンが発生するとＳ５ステートに遷移する。本実施の形態では、サプライズ・シャットダウンが発生したときにＳ５ステートに移行するようにしているが、サプライズ・シャットダウンしたときのパワー・ステートは厳密にＳ５ステートに一致させる必要はなくＳ５ステートとは別に定義してもよい。Ｓ０ステート以外のパワー・ステートではＨＤＤ１２１の電力は停止する。
【００３０】
システム１０１は、ハードウェア１０３およびソフトウェア１０５で構成されている。ハードウェア１０３は、ＣＰＵ、ＲＡＭ、チップセットおよびそれらを接続するバスなどで構成されている。ソフトウェア１０５は、ＯＳ、ＢＩＯＳ、デバイス・ドライバおよびアプリケーション・プログラムなどで構成されている。ユーザはＯＳにノートＰＣ１００の電力を制御するためのパワー・マネジメント・ポリシーを設定することができる。
【００３１】
ハードウェア論理回路１０７は、一例としてハードウェア１０３が含むチップセットの一部として構成されており論理回路、レジスタおよびタイマを含んでいる。ハードウェア論理回路１０７は、ＰＷＲＢＴＮ、ＳＬＰ＿Ｓ３、ＳＬＰ＿Ｓ４、ＳＬＰ＿Ｓ５の４本の信号ラインでエンベデッド・コントローラ（ＥＣ）１１５に接続されており、システム１０１とＥＣ１１５のパワー・マネジメントに関するインターフェースとして機能する。システム１０１は、パワー・マネジメント・ポリシーに従ってハードウェア論理回路１０７に指示してノートＰＣ１００を、Ｓ０ステートからＳ３ステート、Ｓ４ステート、またはＳ５ステートのいずれかに遷移させることができる。
【００３２】
システム１０１がＳＬＰ＿Ｓ５信号、ＳＬＰ＿Ｓ４信号、またはＳＬＰ＿Ｓ３信号のいずれかをアサートすると、ノートＰＣ１０はＳ５ステート、Ｓ４ステートまたはＳ３ステートのいずれかに遷移する。たとえば、システム１０１は、Ｓ０ステートのときに電池パックの残容量が少なくなったときに自動的にＳＬＰ＿Ｓ３信号をアサートしてＳ３ステートに遷移させ、さらに、残容量が少なくなったときにＳＬＰ＿Ｓ４信号をアサートしてＳ４ステートに遷移させることができる。あるいはシステム１０１は、アイドル時間が一定時間以上継続したときに、自動的にＳ３ステートまたはＳ４ステートに遷移させることができる。さらに、システム１０１はユーザが画面を通じてシャットダウン操作をしたときに、ハードウェア論理回路１０７を通じてＳＬＰ＿Ｓ５信号をアサートしてＳ５ステートに遷移させることができる。
【００３３】
ＥＣ１１５は一例としてＳＣＩ（Serial Communication Interface）バスでシステム１０１に接続されている。システム１０１とＥＣ１１５はＳＣＩバスを通じてデータおよびコマンドを転送する。ＥＣ１１５は、ＣＰＵ、ＲＡＭ、ＲＯＭおよびタイマなどを備えており、ＲＯＭに格納したファームウェアをシステム１０１から独立した環境で実行してノートＰＣ１００の電源および温度を制御する。さらに、ＥＣ１１５は、サプライズ・シャットダウンが発生したときにファームウェアを実行してＨＤＤ１１５を保護するための動作をする。
【００３４】
ＥＣ１１５には、パワー・ボタン１０９、サーマル・センサ１１１、および排熱ファン１１３が接続されている。パワー・ボタン１０９は、システム１０１が正常な状態のときにノートＰＣ１００のパワー・ステートを遷移させたり、システム１０１がハングアップしたときにパワー・ボタン・オーバーライドを実行してサプライズ・シャットダウンしたりする。パワー・ボタン１０９は、ユーザが押下できるようにノートＰＣ１００の筐体に取り付けられている。
【００３５】
ユーザはＯＳを通じてハードウェア論理回路１０７のレジスタに、Ｓ０ステートのときにパワー・ボタン１０９が押下されたときの遷移先のパワー・ステートを設定することができる。ＥＣ１１５は、パワー・ボタン１０９が押下されている間、ハードウェア論理回路１０７にＰＷＲＢＴＮ信号を出力する。ハードウェア論理回路１０７は、受け取ったＰＷＲＢＴＮ信号をシステム１０１に送る。ＰＷＲＢＴＮ信号を受け取ったシステム１０１は、パワー・マネジメント・ポリシーに基づいてＳＬＰ＿Ｓ３信号またはＳＬＰ＿Ｓ４信号のいずれかを出力するようにハードウェア論理回路１０７に指示する。
【００３６】
ハードウェア論理回路１０７は、パワー・ボタン１０９が連続して押下されている時間、すなわちＰＷＲＢＴＮ信号を連続して受け取っている時間を計測する。ハードウェア論理回路１０７は、ＰＷＲＢＴＮ信号を連続して約４秒間受け取ると、パワー・ボタン・オーバーライドが発生したと判断して、ＳＬＰ＿Ｓ３信号〜ＳＬＰ＿Ｓ５信号をすべてアサートする。ハードウェア論理回路１０７は、システム１０１がハングアップしたときであってもＰＷＲＢＴＮ信号を受け取っている時間を計測してＳＬＰ＿Ｓ３信号〜ＳＬＰ＿Ｓ５信号をすべてアサートすることができる。
【００３７】
ハードウェア論理回路１０７はＣＰＵの動作を監視して、システム１０１がハングアップしたと判断したときにＳＬＰ＿Ｓ３信号〜ＳＬＰ＿Ｓ５信号をすべてアサートすることができる。ＳＬＰ＿Ｓ３信号〜ＳＬＰ＿Ｓ５信号がすべてアサートされたときは、システム１０１がハングアップしているか否かにかかわらず、ＥＣ１１５はサプライズ・シャットダウン・イベントを生成してノートＰＣ１００をサプライズ・シャットダウンさせる。
【００３８】
サーマル・センサ１１１は複数のサーミスタで構成され、ノートＰＣ１００の筐体内部の温度やデバイスの温度を測定する。排熱ファン１１３は、ヒートシンクを経由して筐体内部の温度の高い空気を排熱することでデバイスおよび筐体表面の温度上昇を抑制する。ＥＣ１１５は、サーマル・センサ１１１が検出する温度が上昇すると、排熱ファン１１３の回転速度を上昇させたり、ＣＰＵをスロットリング制御したりするが、さらに温度が上昇する場合はシステム１０１にＳ３ステートまたはＳ４ステートに遷移するように指示する。ＥＣ１１５はシステム１０１によるＳ３ステートまたはＳ４ステートへの遷移動作からは独立して動作して、サーマル・センサ１１１の検出温度が所定値を越えるとサプライズ・シャットダウン・イベントを生成し、ノートＰＣ１００をサプライズ・シャットダウンさせる。
【００３９】
電力源１１７は、ＡＣ／ＤＣアダプタおよび電池パックなどで構成され、ＤＣ／ＤＣコンバータ１１９に電力を供給する。ＤＣ／ＤＣコンバータ１１９は、電力源１１７が供給する電圧をノートＰＣ１００が使用する所定の複数の電圧に変換する。ＤＣ／ＤＣコンバータ１１９は、パワー・ステートに応じて動作するデバイスに電力を供給できるように、Ｓ５系統、Ｓ４系統、Ｓ３系統、およびＳ０系統に分割されている。
【００４０】
Ｓ５系統にはＳ５ステートで動作するデバイスが接続され、Ｓ４系統にはＳ４ステートで動作するデバイスが接続され、Ｓ３系統にはＳ３ステートで動作するデバイスが接続され、Ｓ０ステートにはその他のデバイスが接続されている。下位のパワー・ステートに対応する系統は、上位のパワー・ステートのときにも動作する。たとえば、Ｓ３ステートのときは、Ｓ３系統だけでなくＳ５系統およびＳ４系統も動作する。
【００４１】
Ｓ５系統のＤＣ／ＤＣコンバータ１１９は、軽負荷時の効率が優れているシリーズ・レギュレータで構成され、その他の系統のＤＣ／ＤＣコンバータ１１９は重負荷時の効率が優れているスイッチング・レギュレータで構成されている。ＤＣ／ＤＣコンバータ１１９は、サプライズ・シャットダウンが発生すると、Ｓ５系統だけを動作させ、その他の系統の動作を停止させる。
【００４２】
ＥＣ１１５は、パワー・ステートに対応するデバイスだけに電力を供給するようにＤＣ／ＤＣコンバータ１１９を制御する。ＥＣ１１５は、ＤＣ／ＤＣコンバータ１１９の電圧および電流の状態を監視して、異常を検出するとサプライズ・シャットダウン・イベントを生成してノートＰＣ１００をサプライズ・シャットダウンさせる。ＥＣ１１５は、電力源１１７の電池パックに収納された電池セルの温度が所定値に達したときにサプライズ・シャットダウン・イベントを生成してノートＰＣ１００をサプライズ・シャットダウンさせる。ＨＤＤ１２１はＳＡＴＡの規格に適合し、ＳＡＴＡインターフェースでシステム１０１のチップセットに接続され、さらに、ＤＥＶＳＬＰラインでＯＲ論理素子１２３の出力に接続されている。ＯＲ論理素子１２３の入力には、ハードウェア１０３、ハードウェア論理回路１０７およびＥＣ１１５が接続されている。
【００４３】
ハードウェア１０３、ハードウェア論理回路１０７またはＥＣ１１５がＤＥＶＳＬＰラインを通じてＤＥＶＳＬＰ信号をアサートすると、ＨＤＤ１２１はディープ・スリープ状態に遷移して消費電力が最小になる。ＳＡＴＡの規格では、ＤＥＶＳＬＰ信号がアサートされたときにＨＤＤがどのような動作をするかをメーカが決めて良いことになっている。ディープ・スリープ状態では、ＨＤＤ１２１の磁気ディスクの回転は停止し、キャッシュの電力も停止する。したがって、ＨＤＤ１２１はＤＥＶＳＬＰがアサートされると、ヘッド／スライダを磁気ディスクの周辺に配置されたランプ機構に退避してから磁気ディスクの回転を停止する。
【００４４】
さらにＨＤＤ１２１がライトバック方式を採用するときは、ディープ・スリープ状態でキャッシュの電源を停止する前にキャッシュが記憶する書き込みデータを磁気ディスクに書き込む。ＨＤＤ１２１には、ＤＣ／ＤＣコンバータ１１９のＳ０系統から電力が供給される。これとは別にＤＣ／ＤＣコンバータ１１９はＨＤＤ１２１に対して専用の系統から電力を供給するようにしてもよい。
【００４５】
なお、図１は本実施の形態を説明するために、本実施の形態に関連する主要な構成および接続関係を簡略化して記載したに過ぎないものである。図で記載した複数のブロックを１個の集積回路もしくは装置としたり、逆に１個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００４６】
特に、本実施の形態におけるハードウェア論理回路１０７およびＥＣ１１５の役割は一例として説明したものであり、システム１０１から独立した環境で動作できる他のデバイスで実現することも可能である。また、各々のデバイスの間を接続するバスおよびインターフェースなどの種類はあくまで一例に過ぎず、それら以外の接続であっても当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００４７】
つぎに図２のフローチャートを参照して、サプライズ・シャットダウンが発生したときにＨＤＤを保護する手順を説明する。ブロック２０１でノートＰＣ１００はＳ０ステートに遷移して正常に動作している。この間、システム１０１は、ＨＤＤ１２１にデータを書き込む。システム１０１は、ユーザが画面を通じてシャットダウンの操作をしたときは、メイン・メモリやキャッシュが記憶するデータの中で必要なデータをＨＤＤ１２１に記憶する。
【００４８】
ＯＳはアプリケーションやデバイス・ドライバなどからシャットダウンの準備が完了したことの通知を受け取ってから、ＥＣ１１５を通じてＤＣ／ＤＣコンバータ１１９のＳ０系統からＳ４系統までを停止する。このようにシステム１０１が処理する一連のシーケンスを実行してシャットダウンする場合は、ＨＤＤ１２１にトラブルが発生することはない。以下の手順ではシステム１０１が認識しない状態で実行されるサプライズ・シャットダウンを処理する。ブロック２０３で、ユーザはノートＰＣ１００をスリーピング・ステートまたはソフト・オフ・ステートに遷移させるためにパワー・ボタン１０９を押下することができる。パワー・ボタン１０９が押下されたときはブロック２２１に移行する。
【００４９】
ブロック２２１でＥＣ１１５は、ハードウェア論理回路１０７にＰＷＲＢＴＮ信号を送る。ハードウェア論理回路１０７はシステム１０１にＰＷＲＢＴＮ信号を送る。ＰＷＲＢＴＮ信号を受け取ったシステム１０１は、あらかじめ設定されているパワー・マネジメント・ポリシーに基づいて、スリーピング・ステートに遷移させるための処理を開始する。また、ＰＷＲＢＴＮ信号を受け取ったハードウェア論理回路１０７は、ＰＷＲＢＴＮ信号が継続する時間を計測する。
【００５０】
ＰＷＲＢＴＮ信号の継続時間が一例として４秒未満のときは、ブロック２２５でシステム１０１は、ノートＰＣをＳ４ステートまたはＳ３ステートに遷移させる。ＰＷＲＢＴＮ信号の継続時間が４秒以上のときは、ハードウェア論理回路１０７は、ＳＬＰ＿Ｓ３信号〜ＳＬＰ＿５信号をすべてアサートする。ＰＷＲＢＴＮ信号の継続時間が４秒以上のときもシステム１０１は、ブロック２２５の手順を開始するが、以下に説明するようにサプライズ・シャットダウンが発生するので完了することはできない。ブロック２２３でＥＣ１１５はＳＬＰ＿Ｓ３信号〜ＳＬＰ＿５信号がすべてアサートされたときに、サプライズ・シャットダウン・イベントを生成してブロック２３１に移行する。
【００５１】
ブロック２３１でＥＣ１１５またはハードウェア論理回路１０７は、サプライズ・シャットダウン・イベントが生成されたことに応じてＤＥＶＳＬＰ信号をアサートする。ＤＥＶＳＬＰ信号がアサートされたＨＤＤ１２１はブロック２３２でヘッド／スライダをパーキング位置に退避し、さらに、キャッシュに記憶している書き込みデータを磁気ディスクに書き込んでフラッシュする。ヘッド／スライダの退避とキャッシュのフラッシュが終了すると、ＨＤＤ１２１はＤＥＶＳＬＰ信号がネゲートされたときに復帰するために必要な部分の電力だけを残して、磁気ディスクを回転するスピンドル・モータやインターフェースおよびキャッシュなどの半導体回路で構成される物理層の電力を停止してディープ・スリープ状態に遷移する。ＨＤＤ１２１は、ＤＥＶＳＬＰ信号がアサートされてから一例として１０ミリ秒以内にディープ・スリープ状態に移行することができるように構成されている。
【００５２】
ブロック２３３でＥＣ１１５は、ＤＥＶＳＬＰ信号をアサートしてからの経過時間またはサプライズ・シャットダウン・イベントを生成してからの経過時間が１０ミリ秒に到達したときにブロック２３５でＤＣ／ＤＣコンバータ１１９のＳ０系統からＳ４系統までを停止して、ノートＰＣ１００をＳ５ステートに遷移させる。ブロック２２３、２３１、２３３、２３５のパワー・ボタン・オーバーライドの手順は、システム１０１から独立したハードウェア論理回路１０７およびＥＣ１１５が処理するため、システム１０１がハングアップしても実行することができる。
【００５３】
ただし、パワー・ボタン・オーバーライドは、システム１０１が正常に動作しているときにパワー・ボタン１０９を４秒以上押下することでも実行することができる。その場合は、ブロック２２５でシステム１０１がＳ４ステートまたはＳ３ステートへ移行するための処理を終了する前にシャットダウンするため、メイン・メモリのデータは消失するが、それ以前にＨＤＤ１２１に書き込まれてキャッシュにだけ記憶されていたデータはブロック２３２の手順により消失しない。
【００５４】
ブロック２０３でパワー・ボタン１０９が押下されないときはブロック２０５でＥＣ１１５が複数の温度センサ１１１のそれぞれの検出温度と基準値を比較し、排熱ファン１１３の回転速度を制御する。排熱ファン１１３の回転速度を最大にしても温度が上昇する場合は、ＥＣ１１５はＣＰＵの動作周波数を下げるためスロットリング制御する。スロットリング制御をしても温度が上昇する場合は、ＥＣ１１５がシステム１０１に対してＳ３ステートに移行するように要求する。ノートＰＣ１００がＳ３ステートに移行すれば通常は温度が下がるが、Ｓ３ステートに移行して温度が下がる前に限界温度に到達する場合がある。このとき、ＥＣ１１５はサプライズ・シャットダウン・イベントを生成してブロック２３１に移行する。
【００５５】
ブロック２０５でサプライズ・シャットダウン・イベントが生成されないときはブロック２０７に移行する。ブロック２０７でＥＣ１１５は、電力源１１７およびＤＣ／ＤＣコンバータ１１７の電圧、電流、および温度などを監視する。ＥＣ１１５は所定の監視項目に異常が発生したときにサプライズ・シャットダウン・イベントを生成してブロック２３１に移行する。ブロック２０７でサプライズ・シャットダウン・イベントが生成されないときはブロック２０９に移行する。ブロック２０９でハードウェア論理回路１０７は、システム１０１の状態を監視する。システム１０１にシャットダウンを必要とする程度のハングアップが発生したときは、ハードウェア論理回路１０７がサプライズ・シャットダウン・イベントを生成してブロック２３１に移行し、発生していないときはブロック２０３に戻る。
【００５６】
これまでの手順では、サプライズ・シャットダウン・イベントが生成されてからＤＣ／ＤＣコンバータ１１９のＳ０系統からＳ４系統の動作を停止するまでの間に、ブロック２３３で約１０ミリ秒の遅れが生ずる。温度や電源の異常を原因とするサプライズ・シャットダウン・イベントが生成されたときには、この時間遅れが好ましくない場合もあり得る。この時間遅れは、ＨＤＤ１２１がヘッド／スライダの退避やキャッシュのフラッシュに利用するためのものであり、ＨＤＤ１２１以外のデバイスには必要がない。
【００５７】
ＤＣ／ＤＣコンバータ１１９がＨＤＤ１２１に対して専用の系統で電力を供給する場合は、サプライズ・シャットダウン・イベントが発生したときに、ＨＤＤ１２１の系統だけをブロック２３１〜２３５の経路で処理し、その他の系統はただちにシャットダウンすれば、シャットダウンの遅延時間による障害の可能性を低減することができる。なお、本実施の形態はＨＤＤに代えてＳＡＴＡインターフェースを備えるＳＳＤに適用することもできる。
【００５８】
本実施の形態によれば、省電力を目的として設けたＤＥＶＳＬＰをＥＣ１１５のファームウェアを書き換えるだけでサプライズ・シャットダウンに対する補助記憶装置の保護に利用することができるため、追加的なコストが発生しない利点がある。さらに、本発明は、データおよびコマンドを転送するインターフェースに加えて、電力停止に対する準備動作の開始を認識するためのインターフェースを備えるＳＡＴＡ以外の補助記憶装置に拡張することができる。
【００５９】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００６０】
１００  ノートＰＣ
１０９  パワー・ボタン
１１１  サーマル・センサ
１１３  排熱ファン
１１５  エンベデッド・コントローラ
１１９  ＤＣ／ＤＣコンバータ
【図１】
0005636023.tif 000002
【図２】
0005636023.tif 000003