(57)【特許請求の範囲】
【請求項１】
待機状態に遷移することが可能なコンピュータであって、
不揮発性メモリとリフレッシュ・コマンドを受け取って前記不揮発性メモリをリフレッシュするコントローラを含む記憶装置の接続が可能なインターフェースと、
前記記憶装置の電源が停止する待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失する消失時刻までの経過時間を計時する計時部と、
前記待機状態の間に前記経過時間を監視して前記消失時刻が到来したと判断したときに、前記記憶装置と前記リフレッシュ・コマンドを送出するために必要な回路に電源を投入する電源制御部と、
電源が投入されてからオペレーティング・システムがロードされる前に前記記憶装置に前記インターフェースを通じて前記リフレッシュ・コマンドを送出するコマンド送出部と
を有するコンピュータ。
【請求項２】
前記記憶装置がオペレーティング・システムを記憶するソリッド・ステート・ドライブである請求項１に記載のコンピュータ。
【請求項３】
前記不揮発性メモリが、ハードディスク・ドライブのキャッシュである請求項１に記載のコンピュータ。
【請求項４】
待機状態に遷移することが可能なコンピュータであって、
不揮発性メモリとリフレッシュ・コマンドを受け取って前記不揮発性メモリをリフレッシュするコントローラを含む記憶装置の接続が可能なインターフェースと、
前記記憶装置の電源が停止する待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失する消失時刻までの経過時間を計時する計時部と、
前記待機状態に遷移したときに電源が停止し、前記待機状態の間に所定のタイミングでウェイクアップして前記計時部が計時した前記経過時間を監視して前記消失時刻が到来したと判断したときに、前記記憶装置と前記リフレッシュ・コマンドを送出するために必要な回路に電源を投入する電源制御部と、
前記記憶装置に前記インターフェースを通じて前記リフレッシュ・コマンドを送出するコマンド送出部と
を有するコンピュータ。
【請求項５】
待機状態に遷移することが可能なコンピュータであって、
不揮発性メモリとリフレッシュ・コマンドを受け取って前記不揮発性メモリをリフレッシュするコントローラを含む記憶装置の接続が可能なインターフェースと、
前記記憶装置の電源が停止する待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失する消失時刻までの経過時間を計時するように前記コンピュータに電力を供給する電池の充放電を制御する電池ユニットの制御部で構成した計時部と、
前記待機状態の間に前記経過時間を監視して前記消失時刻が到来したと判断したときに、前記記憶装置と前記リフレッシュ・コマンドを送出するために必要な回路に電源を投入する電源制御部と、
前記記憶装置に前記インターフェースを通じて前記リフレッシュ・コマンドを送出するコマンド送出部と
を有するコンピュータ。
【請求項６】
前記電源制御部が前記待機状態に遷移して電源が停止する前に前記電池ユニットに前記消失時刻までの経過時間を設定し、前記電池ユニットは前記消失時刻が到来したときに前記電源制御部をウェイクアップさせる請求項５に記載のコンピュータ。
【請求項７】
待機状態に遷移することが可能なコンピュータであって、
不揮発性メモリとリフレッシュ・コマンドを受け取って前記不揮発性メモリをリフレッシュするコントローラを含む記憶装置の接続が可能なインターフェースと、
前記記憶装置の電源が停止する待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失する消失時刻までの経過時間を計時するようにシステムの時刻情報を生成するリアル・タイム・クロックを含むウェイクアップ回路で構成した計時部と、
前記待機状態の間に前記経過時間を監視して前記消失時刻が到来したと判断したときに、前記記憶装置と前記リフレッシュ・コマンドを送出するために必要な回路に電源を投入する電源制御部と、
前記記憶装置に前記インターフェースを通じて前記リフレッシュ・コマンドを送出するコマンド送出部と
を有するコンピュータ。
【請求項８】
前記電源制御部が前記待機状態に遷移して電源が停止する前に前記ウェイクアップ回路に前記消失時刻を設定し、前記ウェイクアップ回路は前記消失時刻が到来したときに前記電源制御部をウェイクアップさせる請求項７に記載のコンピュータ。
【請求項９】
待機状態に遷移することが可能なコンピュータであって、
不揮発性メモリとリフレッシュ端子と該リフレッシュ端子を参照して前記不揮発性メモリのリフレッシュをするコントローラを含む記憶装置の接続が可能なインターフェースと、
前記記憶装置の電源が停止する待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失するまでの残存時間を計時する計時部と、
前記残存時間の経過に応答して前記記憶装置に電源を投入する電源制御部と、
前記残存時間の経過に応答して前記リフレッシュ端子を設定する設定部と
を有するコンピュータ。
【請求項１０】
前記設定部は前記インターフェースを利用しないサイドバンドを経由して前記リフレッシュ端子を設定する請求項９に記載のコンピュータ。
【請求項１１】
前記計時部と前記設定部を前記コンピュータに電力を供給する電池ユニットが構成する請求項９に記載のコンピュータ。
【請求項１２】
前記計時部と前記設定部をシステムの時刻情報を生成するリアル・タイム・クロックを含むウェイクアップ回路が構成する請求項９に記載のコンピュータ。
【請求項１３】
不揮発性メモリを含むディスク・ドライブが接続されたコンピュータが、前記不揮発性メモリが記憶するデータの消失を防ぐ方法であって、
待機イベントに応じて前記コンピュータが前記ディスク・ドライブの電源が停止する待機状態に遷移するステップと、
前記コンピュータが前記待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失する消失時刻までの経過時間を計時するステップと、
前記消失時刻が到来したことに応答して、前記コンピュータがリフレッシュ・コマンドを送出するために必要な回路と前記ディスク・ドライブに電源を投入するステップと、
電源が投入されてからオペレーティング・システムがロードされる前に前記ディスク・ドライブに前記リフレッシュ・コマンドを送付するステップと、
前記リフレッシュ・コマンドに応答して前記ディスク・ドライブが前記不揮発性メモリをリフレッシュするステップと
を有する方法。
【請求項１４】
前記待機イベントに応じて前記コンピュータが前記ディスク・ドライブから前記消失時刻を計算するための書込日時に関する情報とデータ保持時間に関する情報を取得する請求項１３に記載の方法。
【請求項１５】
不揮発性メモリとリフレッシュ端子を含むディスク・ドライブが接続されたコンピュータが、前記不揮発性メモリが記憶するデータの消失を防ぐ方法であって、
前記コンピュータが前記ディスク・ドライブの電源が停止する待機状態に遷移するステップと、
前記コンピュータが前記待機状態に遷移してから前記不揮発性メモリが記憶するデータが消失するまでの残存時間を計時するステップと、
前記残存時間の経過に応答して、前記ディスク・ドライブに電源を投入し前記リフレッシュ端子を設定するステップと、
前記リフレッシュ端子を参照して前記ディスク・ドライブが前記不揮発性メモリをリフレッシュするステップと
を有する方法。
【請求項１６】
不揮発性メモリを搭載するディスク・ドライブが接続されたホスト装置であって、
パワー・オン状態において前記不揮発性メモリが記憶するデータの消失時刻を取得する消失時刻取得部と、
待機状態に遷移して前記ディスク・ドライブの電源を停止してからの経過時間を計時する計時部と、
前記経過時間に基づいて前記消失時刻が到来したと判断したときに前記ディスク・ドライブに電力を供給する電源制御部と、
電力が供給された前記ディスク・ドライブにオペレーティング・システムがロードされる前にリフレッシュさせるための指示をする指示部と
を有するホスト装置。
【請求項１７】
不揮発性メモリを搭載するディスク・ドライブが接続されたホスト装置が、前記不揮発性メモリが記憶するデータの消失を防止する方法であって、
前記ホスト装置がパワー・オン状態において前記不揮発性メモリが記憶するデータの消失時刻を取得するステップと、
前記ホスト装置が待機状態に遷移して前記ディスク・ドライブの電源を停止するステップと、
前記ホスト装置が前記ディスク・ドライブの電源を停止してからの経過時間を計時するステップと、
前記ホスト装置が前記経過時間に基づいて前記消失時刻が到来したと判断したときに前記ディスク・ドライブに電力を供給してオペレーティング・システムがロードされる前にリフレッシュの指示をするステップと、
電力が供給された前記ディスク・ドライブが前記指示に基づいて前記不揮発性メモリをリフレッシュするステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時間経過による不揮発性メモリのデータ消失を防止する技術に関し、さらには、ホスト装置が待機状態に遷移している間のデータ消失を防止する技術に関する。
【背景技術】
【０００２】
電気的な書き換えが可能なフラッシュ・メモリを実装したソリッド・ステート・ドライブ（ＳＳＤ）が、従来のハードディスク・ドライブ（ＨＤＤ）に代わってコンピュータやタブレット端末などのホスト装置に採用されてきている。フラッシュ・メモリはＤＲＡＭとは異なって、ＳＳＤの電源が停止した状態でも比較的長い時間記憶を維持できるが、データ保持時時間（Retention time）には限界がある。このデータ保持時間は、メモリ・セルの消去回数または書込回数に依存して短くなることが知られている。
【０００３】
特許文献１は、本体に接続されたＳＳＤが本体の電源停止および投入時刻を管理して停止している間の経過時間を計算し、リテンション・チェックのタイミングを判断する発明を開示する。ここにリテンション・チェックは、データの読み出し時に、通常の読出電圧をコントロールゲートに印加してデータを読み出すとともに、通常の読出電圧よりも高い電圧をコントロールゲートに印加してデータを読出し、読み出した２つのデータの論理が異なる場合はそのメモリ・セルのしきい値電圧が低下していると判断して再プログラムを行なう動作をいう。
【０００４】
特許文献２は、本体から離脱したメモリ・カードが、内部バッテリィでデータ保持時間を管理してリフレッシュする発明を開示する。同発明では、ページに対する書き込みが終了した時点からのデータ保持時間をメモリ・カードが少ない消費電力で管理し、データ保持時間より短い間隔でリフレッシュする。特許文献３は、劣化した強誘電体メモリの記憶を維持するために、機器が停止しているときに、定期的にメモリ・チップのリフレッシュに必要な回路に電力を供給して、リフレッシュする発明を開示する。
【０００５】
特許文献４は、ホストに電源が投入されている間にフラッシュ・メモリ・デバイスが、定期的にまたはホストからのコマンドを受け取ってリフレッシュする発明を開示する。特許文献５は、チップ・セットに組み込まれたリアル・タイム・クロック（ＲＴＣ）を利用してコンピュータを所定の時刻でウェイクアップさせるＲＴＣウェイクアップ機能について開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５１５９５３号公報
【特許文献２】特開２００７−４８３４７号公報
【特許文献３】特開２００４−２８０９７号公報
【特許文献４】特開２００９−２２３８７６号公報
【特許文献５】特開２０１２−２２６６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ホスト装置に接続されるＳＳＤは、ホスト装置から電力の供給を受ける。ホスト装置は、使用しないときに省電力状態に移行してＳＳＤの電力を停止する場合がある。ホスト装置およびＳＳＤがともに電力が供給されて動作している間は、特許文献１の発明のようにリテンション・チェックを行って、データの消失を防ぐことができる。また、特許文献４の発明のようにＳＳＤがホストからコマンドを受け取ったり自ら定期的にリフレッシュしたりすることは可能である。しかし、待機状態においてホスト装置またはＳＳＤの電力が停止しているときはこのような方法を採用することができない。
【０００８】
特許文献２の発明のように、ＳＳＤに内部バッテリィを搭載する場合は待機状態でもリフレッシュできるが、コストの増加およびサイズの増加などのほかにバッテリィの容量管理などが課題になる。特許文献３のようにホスト装置が定期的にＳＳＤの電源を投入してリフレッシュする方法は、ホスト装置に電源が投入されていることが前提になるため、待機状態に遷移するホスト装置に適用することはできない。またデータ保持時間とは無関係に定期的にＳＳＤに電源を投入するとホスト装置の待機電力が増加する。
【０００９】
そこで本発明の目的は、待機状態に遷移するホスト装置に接続された不揮発性メモリのデータ消失を防止する方法を提供することにある。さらに本発明の目的は、ホスト装置の待機電力の低減を図りながら不揮発性メモリのデータ消失を防止する方法を提供することにある。さらに本発明の目的は、ハードウェアの変更を最小限にしながら不揮発性メモリのデータ消失を防止する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するホスト装置およびコンピュータを提供することにある。
【課題を解決するための手段】
【００１０】
本発明にかかる不揮発性メモリは、書き込んでからデータ保持時間が経過するとデータの信頼性が低下して実質的に消失したとみなす。このような不揮発性メモリのデータの消失を防ぐためにはデータの書込時刻からの経過時間を計時してデータ保持時間が経過する前にリフレッシュすることが有効である。しかし、記憶装置の電源はコンピュータが待機状態に遷移したときに停止する必要があるため、内部に電力源のない記憶装置では経過時間を計時することができない。
【００１１】
コンピュータは、待機状態において待機状態に遷移してから不揮発性メモリが記憶するデータが消失する消失時刻までの経過時間を計時して監視する。消失時刻の計算に必要な書込時刻に関する情報とデータ保持時間に関する情報は、待機状態に遷移する前に記憶装置から取得することができる。本発明の第１の態様では、コンピュータは、経過時間に基づいて消失時刻が到来したと判断したときに、記憶装置とリフレッシュ・コマンドを送出するために必要な回路に電源を投入して記憶装置にリフレッシュ・コマンドを送出する。したがって、待機状態を維持しながらデータの消失を防ぐことができる。
【００１２】
記憶装置はオペレーティング・システムを記憶するスタティック・ディスク・ドライブであってもよい。また不揮発性メモリは、ハードディスク・ドライブのキャッシュもよい。不揮発性メモリの種類は、リフレッシュによりデータの消失を防ぐことができるものであれば特に限定しない。リフレッシュ・コマンドは待機状態のコンピュータに電源を投入してからオペレーティング・システムがロードされる前に送出すると待機電力の増加防止およびリフレッシュ時間の短縮の面で有益である。
【００１３】
電源制御部は、待機状態で電源を停止し所定のタイミングでウェイクアップして経過時間を監視するようにすれば待機電力を低減できる。ウェイクアップの所定のタイミングは一定の周期にしてもよいし、ウェイクアップして再び電源が停止する前に毎回異なる時間を設定して異なる周期にしてもよい。計時部が、コンピュータに電力を供給する電池の充放電を制御する電池ユニットの制御部とすれば、ハードウェアの変更の必要がなく計時動作のために待機電力が増加しない。電源制御部は待機状態に遷移して電源が停止する前に電池ユニットに消失時刻までの経過時間を設定し、電池ユニットは経過時間が到来したときに電源制御部をウェイクアップさせれば、電源制御部が無駄にウェイクアップすることがなくなる。
【００１４】
また計時部が、システムの時刻情報を生成するリアル・タイム・クロックを含むウェイクアップ回路とすることもできる。電源制御部は待機状態に遷移して電源が停止する前にウェイクアップ回路に消失時刻を設定し、ウェイクアップ回路は消失時刻が到来したときに電源制御部をウェイクアップさせることもできる。この場合もハードウェアの変更の必要がなく計時動作のための待機電力も増加しない。
【００１５】
本発明の第２の態様では、記憶装置が、コントローラが参照してリフレッシュの必要性を判断するためのリフレッシュ端子を備える。計時部は記憶装置の電源が停止する待機状態に遷移してから不揮発性メモリが記憶するデータが消失するまでの残存時間を計時する。電源制御部は、残存時間の経過に応答して記憶装置に電源を投入する。設定部は残存時間の経過に応答してリフレッシュ信号を出力してリフレッシュ端子を設定する。この場合、待機状態において、記憶装置の電源とリフレッシュ信号を出力する回路に電源を投入すれば、データが消失する前にリフレッシュすることができる。
【００１６】
設定部は、インターフェースを利用しないサイドバンドを経由してリフレッシュ端子を設定することができる。計時部と設定部をコンピュータに電力を供給する電池ユニットが構成したり、システムの時刻情報を生成するリアル・タイム・クロックを含むウェイクアップ回路が構成したりすれば、待機電力を増加させないようにしながらサイドバンドを追加するだけでリフレッシュをすることができる。
【発明の効果】
【００１７】
本発明により、待機状態に遷移するホスト装置に接続された不揮発性メモリのデータ消失を防止する方法を提供することができた。さらに本発明により、ホスト装置の待機電力の低減を図りながら不揮発性メモリのデータ消失を防止する方法を提供することができた。さらに本発明により、ハードウェアの変更を最小限にしながら不揮発性メモリのデータ消失を防止する方法を提供することができた。さらに本発明により、そのような方法を実現するホスト装置およびコンピュータを提供することができた。
【図面の簡単な説明】
【００１８】
【図１】ホスト装置の一例としてのノートＰＣ１０の本実施形態の理解に必要な構成を説明するための機能ブロック図である。
【図２】ＳＳＤ３０の不揮発性メモリ３７の構造とブロック管理テーブル８１のデータ構造を説明するための図である。
【図３】ＥＣ４０が格納するリフレッシュ管理テーブル８３、８５のデータ構造を説明するための図である。
【図４】ノートＰＣ１０が第１のリフレッシュ方法を実行する手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
［用語の意味］
最初に本明細書で使用する用語を説明する。ホスト装置とは、ＳＳＤの電源を制御することが可能な装置をいう。ホスト装置は、省電力状態（待機状態）に遷移している間にＳＳＤの電源を停止するがリフレッシュが必要なタイミングで一時的に電源を投入することができる。データ保持時間とは、フラッシュ・メモリのページにデータを書き込んでからフローティング・ゲートに注入した電荷が抜けてデータが消失すると想定するまでの時間または電荷を維持してデータの記憶を維持すると想定する時間をいう。データの書込時刻からの経過時間がデータ保持時間に到達するとデータは十分な信頼性のもとで記憶されているとはいえなくなり、実質的に消失したことと同等の状態として扱う。
【００２０】
データ保持時間はフラッシュ・メモリの固有の性能で劣化パラメータの影響を受けて短くなる。本発明においては、ホスト装置がデータ保持時間を取得する方法は問わない。データ保持時間は、フラッシュ・メモリまたはＳＳＤの製造者によって、動作中のＳＳＤから取得が可能な劣化パラメータに関連付けた値として提供される。劣化パラメータは主として書込回数の前提となる消去回数とすることができるが、読取回数や使用時間などの他の劣化パラメータを含めてデータ保持時間を取得するようにしてもよい。本実施の形態では、劣化パラメータを代表的に消去回数として説明する。
【００２１】
また本実施の形態では、消去をそれぞれ読み書きの最小単位となる複数のページの集合であるブロック単位で行うため消去回数はブロックごとに発生し、データ保持時間もブロックごとに発生する。書込時刻は、ページにデータを書き込んだ時刻をいう。消失時刻は、書込時刻からデータ保持時間が経過したときの時刻をいう。残存時間は、消失時刻と現在時刻の差に相当する現在からデータが消失するまでの時間をいう。このときデータ保持時間は、書込時刻から消失時刻までの時間に相当する。また、消去はブロック単位で行うため、消失時刻はブロック単位の概念として把握することができる。各ブロックの消失時刻は、当該ブロックのなかで最も早く書き込まれたページの書込時刻から当該ブロックのデータ保持時間が経過する時刻に相当する。
【００２２】
リフレッシュは、各ブロックの消失時刻が到来する前にフラッシュ・メモリのデータをＲＡＭに読み出してから同じブロックに書き込む処理をいう。リフレッシュは、ＳＳＤの電源がリフレッシュ中に停止したときのデータ消失を防ぐために、元のブロックに書き込んだデータをＲＡＭに読み出してリフレッシュ領域のブロックに書き込み、その後元のブロックを消去して新たなリフレッシュ領域として割り当てる方法で行うこともできる。リフレッシュするブロックの単位は特に限定しない。したがって、いずれかのブロックが消失時刻に近付いたときにすべてのブロックを一括してリフレッシュしてもよいし、消失時刻が到来した単一のブロックまたは消失時刻の到来が近い複数のブロックごとにリフレッシュしてもよい。
【００２３】
［ノートＰＣの構成］
図１は、ホスト装置の一例としてのノートブック型パーソナル・コンピュータ（ノートＰＣ）１０の、本実施形態の理解に必要な構成を説明するための機能ブロック図である。本明細書では、後に第１のリフレッシュ方法から第３のリフレッシュ方法まで３つのリフレッシュの実行態様を説明する。それぞれの実行態様では、図１に示すいずれかの要素を利用する。したがって、図１に示す要素がすべて各実行態様の必須の要素にはならない。本発明の必須の要素は特許請求の範囲に記載するとおりである。
【００２４】
ノートＰＣ１０は、ＡＣＰＩが規定するパワー・オン状態（Ｓ０ステート）、ソフト・オフ状態（Ｓ５ステート）に加えてサスペンド状態（Ｓ３ステート）、ハイバネーション状態（Ｓ４ステート）などのスリーピング状態に遷移する。ソフト・オフ状態およびスリーピング状態を併せて本実施の形態においては待機状態ということにする。なお、ノートＰＣ１０の通常の動作ではソフト・オフ状態およびスリーピング状態からパワー・オン状態に復帰するが、本実施の形態にかかる待機状態ではリフレッシュに必要な一部のデバイスにだけ電源を供給する場合もある。本発明の待機状態は必ずしもＡＣＰＩのパワー・ステートに関連付ける必要がないが、待機状態ではＳＳＤ３０の電源が停止する。
【００２５】
なお本発明の適用可能な待機状態はここで例示したパワー・ステートに限定するものではなく、少なくともＳＳＤ３０およびＣＰＵ１１の電源が停止する省電力状態とすることができる。また、待機状態における待機電力は常に一定である必要はない。待機状態はリフレッシュのために一時的にＳＳＤ３０、ＣＰＵ１１およびその他のデバイスに電力を供給する状態も含む。
【００２６】
チップ・セット２０は、ＵＳＢ（Universal Serial Bus）、ＳＡＴＡ（Serial AT Attachment）バス、ＳＰＩ (Serial Peripheral Interface)バス、 ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バス、およびＬＰＣ（Low Pin Count）バスなどのインターフェースとなるＩ／Ｏコントローラ２５を備え、それらに対応したさまざまなデバイスを接続することができる。
【００２７】
図１では本実施の形態の理解のためにチップ・セット２０に接続された、ＣＰＵ１１、システム・メモリ１３、ファームウェアＲＯＭ１５、ＳＳＤ３０およびエンベデッド・コントローラ４０を例示している。一般的なノートＰＣではチップ・セット２０にさらに、図示しないＵＳＢコネクタ、通信モジュール、ディスプレイ、およびオーディオ・デバイスなどが接続される。チップ・セット２０は、複数の機能ブロックごとに電力を供給することができる。パワー・オン状態ではすべての機能ブロックに電力を供給するが、待機状態では当該パワー・ステートに応じた必要最小限の機能ブロックにだけ電力を供給して消費電力を低減することができる。
【００２８】
一例としてＳＳＤ３０はＳＡＴＡポートに接続され、ＥＣ４０はＳＰＩポートに接続される。チップ・セット２０はさらに、ＲＴＣ２１およびＲＴＣメモリ２３を含んでいる。ＲＴＣ２１はシステムが使用するカレンダ時刻を生成するための計時動作をする。
【００２９】
ＲＴＣメモリ２３はＲＴＣ２１の計時動作に基づいて生成されたカレンダ時刻を記憶する。ＯＳは、ネットワークを通じて取得した標準時刻で定期的にＲＴＣメモリ２３が記憶するカレンダ時刻を補正することができる。ＲＴＣメモリ２３が記憶するカレンダ時刻はシステムや周辺デバイスに提供され、ファイルのタイム・スタンプやスケジュール管理などに利用される。
【００３０】
ＲＴＣ２１およびＲＴＣメモリ２３はチップ・セット２０に電力が供給されるときはその電力で動作するが電力が供給されないときはボタン電池（図示せず）から供給された電力で動作するため、ノートＰＣ１０がいかなるパワー・ステートに遷移していてもカレンダ時刻の生成が停止することはない。チップ・セット２０は、周知のＲＴＣウェイクアップ機能を備えている。
【００３１】
ＲＴＣウェイクアップ機能は、チップ・セット２０がＲＴＣメモリ２３のカレンダ時刻を利用してＲＴＣメモリ２３に設定された時刻でシステムを待機状態からパワー・オン状態に遷移させる処理をいう。ＲＴＣウェイクアップ機能は、ＲＴＣ２１、ＲＴＣメモリおよびＥＣ４０に対する入出力回路で構成するＲＴＣウェイクアップ回路２４が実行する。ＲＴＣウェイクアップ機能がイネーブルになる場合は、待機状態のときにＲＴＣウェイクアップ回路２４に電源が供給される。
【００３２】
ＲＴＣウェイクアップ回路２４は、第２のリフレッシュ方法において消失時刻が到来したときにＲＴＣウェイクアップ機能を利用してＥＣ４０をウェイクアップさせる。ＲＴＣウェイクアップ回路２４は、第３のリフレッシュ方法において消失時刻が到来したときにサイドバンド３４を通じてリフレッシュ端子３９を設定するためのコードを含む。
【００３３】
ＳＳＤ３０は、チップ・セット２０にシリアル・バス３２で接続するインターフェース３１、ＭＰＵ３３、ＭＰＵ３３が実行するファームウェアを格納するＲＯＭ３４、ＲＡＭ３５、ＮＡＮＤ型のフラッシュ・メモリ３７、およびＤＲＡＭまたはＭＲＡＭで構成したキャッシュ・メモリ３６などを含んでいる。ＳＳＤ３０は、ＤＣ／ＤＣコンバータ５１から電力が供給される。ＳＳＤ３０は、ノートＰＣ１０の筐体に収納される内蔵タイプでも、筐体に設けたコネクタで接続された外付けタイプでもよい。
【００３４】
ＭＰＵ３３はファームウェアを実行して、フラッシュ・メモリ３７に対する読み取り、書き込み、ウェアレベリング（wear leveling）、およびリフレッシュなどを行うコントローラとして機能する。後に説明する第３のリフレッシュ方法を実現するために、ＳＳＤ３０には電源が投入されたときにＭＰＵ３３が参照してリフレッシュの必要性を判断するためのリフレッシュ端子３９を設けることができる。リフレッシュ端子３９は、サイドバンド３４でＲＴＣクロック回路２４に接続され、サイドバンド３８で電池ユニット６０に接続される。サイドバンド３２、３８は、電源が停止してそれぞれの基本的な通信経路であるシリアル・バス３２またはＳＭ（System Management）バス６２を利用した通信ができないときにリフレッシュ信号を送るための通信経路である。
【００３５】
ＲＴＣクロック回路２４または電池ユニット６０はリフレッシュ信号を出力して、リフレッシュ端子３９を設定することができる。リフレッシュ端子３９は、周知のさまざまな回路で構成することができる。一例では、ＦＥＴでグランドとＳＳＤ３０の内部電源に接続され、リフレッシュ信号がＦＥＴをオンにしたときにグランド電位に遷移し、オフにしたときに電源の電位に遷移する端子とすることができる。リフレッシュ端子３９を備えるＳＳＤ３０のＭＰＵ３３は、電源が投入されるたびにリフレッシュ端子３９を参照して、設定されているときには、ＣＰＵ１１からのアクセスがないアイドル状態のときにリフレッシュを実行することができる。
【００３６】
フラッシュ・メモリ３７は、図２に示すように管理領域、予備領域、リフレッシュ領域、およびユーザ領域に論理的に区分されている。管理領域は、ホスト装置がアクセスできない領域で、ホスト装置が指定する論理ブロック・アドレス（ＬＢＡ）を物理ブロック・アドレス（ＰＢＡ）に変換するアドレス変換テーブルの他に、ブロック管理テーブル８１を格納している。ブロック管理テーブル８１は、予備領域、リフレッシュ領域、およびユーザ領域をそれぞれ構成する各ブロックの消去回数、書込日時およびデータ保持時間を記録するテーブルである。
【００３７】
ここに消去回数は、データ保持時間を推定するための劣化パラメータに相当する。ＭＰＵ３３は消去回数が増加するたびにブロック管理テーブル８１を更新する。ＭＰＵ３３は消去回数に基づいてブロックごとのデータ保持時間を決定しブロック管理テーブル８１に書き込むことができる。データ保持時間は、ＳＳＤ３０から受け取った書込回数に基づいてシステムが決定することもできる。その場合はブロック管理テーブル８１にデータ保持時間を記録しておく必要はない。
【００３８】
フラッシュ・メモリ３７では一例として、最小単位が５１２＋１６バイトの固定長のページを最小単位として読み書きが行われる。ブロックは任意の数のページの集合として構成することができる。ＭＰＵ３３は、ＳＳＤ３０に電源が投入されるたびにシステムからＲＴＣメモリ２３のカレンダ時刻を取得することができる。ＭＰＵ３３は、各ブロックを構成するいずれかのページに、最初にデータ書き込まれたときの書込日時をブロック管理テーブル８１に書き込む。
【００３９】
予備領域は、不良ページが発生したときの代替記憶領域である。リフレッシュ領域は、リフレッシュの際の新たな書き込み先のブロックとして利用する領域である。ＳＳＤ３０はブート・ドライブで、ユーザ領域にはＯＳ９１、アプリケーション９３、リフレッシュ・マネージャ９５などのプログラムの他にユーザ・データ９７が記憶される。リフレッシュ・マネージャ９５は、リフレッシュに関する処理をするアプリケーションである。
【００４０】
ファームウェアＲＯＭ１５は、ＢＩＯＳやＵＥＦＩといった主として電源起動時のデバイスの初期化や認証などを行うシステム・ファームウェアを格納する。システム・ファームウェアはリセットされたＣＰＵ１１が必ず最初に実行するプログラムである。後に説明する第１のリフレッシュ方法と第２のリフレッシュ方法において、システム・ファームウェアはリフレッシュのために待機状態のＣＰＵ１１に電源が投入されたときに、ＯＳ９１にブート処理を渡す前にＳＳＤ３０にリフレッシュ・コマンドを送る。
【００４１】
ＥＣ４０は、ＭＰＵ４１、ＲＯＭ４３、ＲＡＭ４５、フラッシュ・メモリ４７およびロジック回路４９などを含むマイクロ・コンピュータである。ＥＣ４０はさらに、図示しないＤＭＡコントローラ、割り込みコントローラ、および電池ユニット６０に接続するＳＭバポート、およびチップ・セット２０に接続するＳＰＩポートなどを備えている。ＥＣ４０はＣＰＵ１１からは独立して動作し、パワー・ステートに応じてＤＣ／ＤＣコンバータ５１の動作を制御する。
【００４２】
ＥＣ４０には、ＤＣ／ＤＣコンバータ５１の制御回路、ユーザが操作するパワー・ボタン５３、筐体の開閉を検知するリッド・センサ５５、タイマー５７、充電器５８が接続され、さらにＳＭバス６２およびサイドバンド６４で電池ユニット６０が接続されている。ＲＯＭ４３はＭＰＵ４１がリフレッシュをするための消失時刻の判断や電源の起動制御などを行うためのコードを含む。フラッシュ・メモリ４７は、図３に示すリフレッシュ管理テーブル８３を格納する。
【００４３】
リフレッシュ管理テーブル８３は、ブロック番号ごとに消失時刻または残存時間を記録する。ＭＰＵ４１は、システムが待機状態に遷移する際に、毎回、ＳＳＤ３０からブロック管理テーブル８１が記憶するブロック番号ごとの書込日時とデータ保持時間を受け取り、ＲＴＣメモリ２３が記憶するカレンダ時刻に基づいて消失時刻を計算してリフレッシュ管理テーブル８３に記憶することができる。
【００４４】
ＭＰＵ４１は、ＳＳＤ３０からデータ保持時間を受け取ることができないときは、あらかじめリフレッシュ・マネージャ９５を通じて消去回数とデータ保持時間の関係を示すリフレッシュ管理テーブル８５を受け取ってフラッシュ・メモリ４７に格納しておくことができる。リフレッシュ管理テーブル８５は、フラッシュ・メモリやＳＳＤの製造者により提供される。この場合、ＭＰＵ４１はシステムが待機状態に遷移する直前に、毎回、ＳＳＤ３０からブロック管理テーブル８１が記憶するブロック番号ごとの書込日時と消去回数を受け取り、リフレッシュ管理テーブル８５からデータ保持時間を抽出して、ＲＴＣメモリ２３が記憶するカレンダ時刻に基づいて消失時刻を計算することができる。
【００４５】
ＥＣ４０は待機状態でロジック回路４９を除いて電力が停止する。タイマー５７は、ＥＣ４０に比べて消費電力は小さい。タイマー５７は第１のリフレッシュ方法において、待機状態で常時電力を供給して利用する。ＭＰＵ４１は、待機状態に入る直前にタイマー５７に動作時間を設定する。タイマー５７は、待機状態のときにＭＰＵ４１が設定した動作時間を計時してロジック回路４９にタイムアップ信号を出力する。ロジック回路４９は第１のリフレッシュ方法において、待機状態のときにタイマー５７のタイムアップ信号を受け取ってＤＣ／ＤＣコンバータ５１を制御し、ＥＣ４０に電源を供給してウェイクアップさせる。タイマー５７の精度が十分に確保できないときは、待機状態に遷移する前にＥＣ４０がシステム・クロックを利用してタイマー５７をキャリブレーションすることができる。
【００４６】
ロジック回路４９は第２のリフレッシュ方法において、待機状態のときにサイドバンド６４を通じて電池ユニット６０からウェイクアップ信号を受け取ったときにＤＣ／ＤＣコンバータ５１を制御してＥＣ４０をウェイクアップさせることができる。またロジック回路４９は第２のリフレッシュ方法において、待機状態のときにＲＴＣウェイクアップ回路２４からウェイクアップ信号を受け取ったときにＤＣ／ＤＣコンバータ５１を制御してＥＣ４０をウェイクアップさせることができる。
【００４７】
ロジック回路４９は、待機状態の時にパワー・ボタン５３の押下またはリッド・センサ５５の動作を検出してＤＣ／ＤＣコンバータ５１を制御し、ノートＰＣ１０をパワー・オン状態に遷移させる。ＤＣ／ＤＣコンバータ５１は電池ユニット６０または図示しないＡＣ／ＤＣアダプタから電力の供給を受けて複数の安定した電圧に変換する。ＤＣ／ＤＣコンバータ５１はパワー・ステートに対応するように複数の系統に別れており、ＳＳＤ３０を含むノートＰＣ１０の各デバイスに電力を供給する。ＭＰＵ４１は、ＳＭバスを通じてＭＰＵ６１から電池セル６９の充電状態に関連するデータを取得し、充電器５８の動作を制御する。充電器５８は、ＡＣ／ＤＣアダプタが供給する電力で電池ユニット６０を充電する。
【００４８】
電池ユニット６０は、ＡＣ／ＤＣアダプタが接続されていないときにＤＣ／ＤＣコンバータ５１に電力を供給する。電池ユニット６０は、ＭＰＵ６１、保護回路６３、ＲＯＭ６５、タイマー６７、電池セル６９、および電池セル６９の充放電経路となる入出力回路７１などを含んでいる。電池ユニット６０は、ノートＰＣ１０に内蔵してもよいし電池パックとして電池ベイに装着するようにしてもよい。電池ユニット６０はサイドバンド３８でリフレッシュ端子３９に接続される。
【００４９】
ＲＯＭ６５は、第２のリフレッシュ方法において残存時間が到来したときにサイドバンド６４を通じてＥＣ４０をウェイクアップさせるコードを含む。ＲＯＭ６５は、第３のリフレッシュ方法において残存時間が到来したときにサイドバンド３８を通じてリフレッシュ端子３９を設定するためのコードを含む。ＥＣ４０はバスマスタとなって、電池ユニット６０と定期的に通信して電池セル６９の電圧、残容量およびセル温度などの状態を監視して充電器５８に充電パラメータの設定をする。
【００５０】
［第１のリフレッシュ方法］
図４は、ノートＰＣ１０が第１のリフレッシュ方法を実行する手順を説明するためのフローチャートである。ブロック１０１でノートＰＣ１０は、パワー・オン状態に遷移しており、ＣＰＵ１１はＳＳＤ３０にデータを書き込む。ＳＳＤ３０のＭＰＵ３３は、電源投入時およびその後随時ＲＴＣ２１が計時した時刻情報をシステムから取得して電源が投入されている間は内部で経過時間を計時して時刻情報を生成することができる。ＳＳＤ３０は、パワー・オン状態の間は周知のリテンション・チェックを利用してデータを保持することができる。
【００５１】
ブロック１０３でＭＰＵ３３は、いずれかのブロックが消去されるたびに、ブロック管理テーブル８１の当該ブロックに関する消去回数を１ずつ増加するように更新する。ブロックの消去は、新たなデータの書き込み、リテンション・チェック、リフレッシュまたはウェアレベリングなどによって発生する。ＭＰＵ３３は、消去されたブロックが含むいずれかのページに最初にデータが書き込まれた日時を書込日時としてブロック管理テーブル８１に記録する。
【００５２】
ＭＰＵ３３は自らが消去回数からデータ保持時間を抽出できる場合は、いずれかのブロックの消去回数を更新したときに、必要に応じてブロック管理テーブル８１が記憶する当該ブロックのデータ保持時間を更新する。ブロック１０５でパワー・ボタン５３の押下、リッド・センサ５５の動作、図示しないキーボードの操作または設定されたアイドル時間の経過などにより待機状態に遷移するための待機イベントが生成されＯＳ９１に通知される。
【００５３】
ＯＳ９１は実行中のアプリケーション９３、リフレッシュ・マネージャ９５、デバイス・ドライバおよびＥＣ４０に待機イベントを送る。ブロック１０７で待機イベントを受け取ったＥＣ４０は、ＣＰＵ１１に割り込みをかけてリフレッシュ・マネージャ９５にＳＳＤ３０からブロック管理テーブル８１が記憶する、消失時刻または残存時間を計算するための基礎データを取得するように要求する。リフレッシュ・マネージャ９５は、ブロック管理テーブル８１がデータ保持時間を記憶する場合は、基礎データとしてブロック番号とそれに対応する書込日時およびデータ保持時間を取得する。
【００５４】
リフレッシュ・マネージャ９５は、ブロック管理テーブル８１がデータ保持時間を記憶していない場合は、基礎データとしてブロック番号とそれに対応する消去回数および書込日時を取得する。ブロック１０９でＭＰＵ４１はリフレッシュ・マネージャ９５から受け取った基礎データを必要に応じてフラッシュ・メモリ４７に記憶する。ＭＰＵ４１はブロック番号ごとの書込日時とデータ保持時間から消失時刻または残存時間を計算して、リフレッシュ管理テーブル８３を更新する。ＭＰＵ４１はＳＳＤ３０からデータ保持時間を受け取らない場合は、リフレッシュ管理テーブル８５を参照して消去回数に基づいてデータ保持時間を計算してからブロック番号ごとの消失時刻または残存時間を計算する。
【００５５】
この時点ではシステムの電源はまだ維持されているが、待機状態に遷移するとＣＰＵ１１およびＳＳＤ３０の電源は停止しそれぞれのパワー・ステートに応じた最小限のデバイスにだけ電力が供給される。電源が停止したＳＳＤ３０は経過時間を計時することができないため、消失時刻または残存時間を管理することができない。フラッシュ・メモリ３７のデータ消失を防止するためにはＳＳＤ３０に代わってホスト装置が残存時間を管理する必要があるが待機状態で消費電力が増大することは好ましくない。また、ハードウェアの変更も最小限に留めることが望ましい。
【００５６】
ＭＰＵ４１は、更新されたリフレッシュ管理テーブル８３において最も消失時刻が早い（残存時間が短い）ブロックを抽出してリフレッシュ・フラグを設定する。リフレッシュ・フラグは、消失時刻の早い順に抽出した複数のブロックに対して設定してもよい。ブロック１１１でＭＰＵ４１は、電池ユニット６０のＭＰＵ６１に現在のカレンダ時刻からの経過時間を計時するように要求する。あるいは、ＭＰＵ４１は現在のカレンダ時刻と消失時刻から計算した残存時間の残り時間を計時するように要求する。さらに、ＭＰＵ４１はこのとき必要に応じて、残存時間を監視するために、タイマー５７にＥＣ４０がウェイクアップするまでの時間を設定することができる。
【００５７】
ＥＣ４０は電池ユニット６０に経過時間の計時動作を開始させ、必要に応じてタイマー５７を設定してから、ＯＳ９１に待機状態への準備完了の通知をする。ＯＳ９１はすべてのハードウェアおよびプログラムが待機状態への遷移の準備が完了したことを確認すると、ブロック１１３でＥＣ４０に指示して遷移先のパワー・ステートに応じたデバイスの電源を停止させシステムを待機状態に遷移させる。
【００５８】
電池ユニット６０のＭＰＵ６１はタイマー６７を動作させて待機状態に遷移してからの経過時間の計時をする。待機状態でも自然放電で電池セル６９の残存容量は低下する。電池ユニット６０は、システムが待機状態であっても電池セル６９の充電状態を管理して必要に応じてＥＣ４０に充電の要求をする必要がある。電池セル６９は待機状態でもＭＰＵ６１や保護回路６３に電力を供給するため、消失時刻を計時するために電池ユニット６０の消費電力はほとんど増加しない。
【００５９】
ＥＣ４０は、待機状態の間に電池セル６９の残存容量が低下したときに充電器５８を動作させて充電する必要がある。タイマー５７は、待機状態のときにＭＰＵ４１がＭＰＵ６１と通信して電池セル６９の残存容量を確認できるように定期的にタイムアップ信号を送ってＥＣ４０をウェイクアップさせる。ＥＣ４０はブロック１１５で、残存容量の確認のためにウェイクアップしたときに、ブロック１１７で電池ユニット６０が計時した待機状態に遷移してからの経過時間または残存時間の残り時間を確認してリフレッシュの必要性を判断する。残存容量の確認のためにウェイクアップする一定の周期が、リフレッシュの必要性を管理するための周期として利用できない場合は、ＥＣ４０は先にブロック１１１でタイマー５７に残存時間の確認のために設定した動作時間でウェイクアップすることができる。
【００６０】
ブロック１１７でＥＣ４０は、リフレッシュ管理テーブル８３にリフレッシュ・フラグが設定された最も早い消失時刻が到来していないと判断したときは、必要に応じてタイマー５７にウェイクアップまでの新たな時間を設定してから、自らの電源を停止してブロック１１３に戻る。新たなウェイクアップまでの時間は、残存時間が少なくなるにしたがって短くなるように設定してもよいし一定でもよい。ＥＣ４０は消失時刻が到来したと判断したときに、ブロック１１９でＤＣ／ＤＣコンバータ５１を制御して所定のデバイスに電力を供給する。このとき、ＥＣ４０はフラッシュ・メモリ４７にＣＰＵ１１のリセットの原因がリフレッシュであることをシステム・ファームウェアに通知するためのフラグを設定する。
【００６１】
所定のデバイスは、ＳＳＤ３０にリフレッシュ・コマンドを送るために必要な最低限の範囲に留めることが望ましい。したがって、ＣＰＵ１１、システム・メモリ１３、ファームウェアＲＯＭ１５、チップ・セット２０の一部およびＳＳＤ３０には電力を供給するが、図示しないディスプレイ、オーディオ・デバイス、および通信デバイスなどには電力を供給する必要がない。
【００６２】
電源が投入されると、リセットされたＣＰＵ１１はシステム・メモリ１３にシステム・ファームウェアをロードして実行する。システム・ファームウェアはブロック１２１で、必要なデバイスの初期化をしてからフラッシュ・メモリ４７のリセット原因を示すフラグを確認する。システム・ファームウェアはＯＳのロードをしないで自らおよびファームウェア・アプリケーションからのＳＳＤ３０に対するアクセスを停止する。ブロック１２３でシステム・ファームウェアは、シリアル・バス３２を通じてＳＳＤ３０にリフレッシュ・コマンドを送ってＳＳＤ３０からのリフレッシュ完了通知を待つ。リフレッシュ・コマンドは本実施の形態において定義するユニークなコマンドである。
【００６３】
システム・ファームウェアはＯＳがブートする前にＳＳＤ３０へのアクセスを停止して、リフレッシュ・コマンドを送ることができるため、ＳＳＤ３０は電源が起動してから短時間でリフレッシュを開始することができる。リフレッシュ・コマンドは、ノートＰＣ１０のブートが完了してからリフレッシュ・マネージャ９５が送るようにしてもよいが、ＯＳがブートしている間はＳＳＤ３０へのアクセスを停止することができず、また、ＯＳのブートが完了するまで長い時間を費やすので、リフレッシュ・コマンドはシステム・ファームウェアが送った方が待機電力とリフレッシュの完了までの時間の観点で有益である。
【００６４】
システム・ファームウェアは、リフレッシュ管理テーブル８３を参照して、リフレッシュ・コマンドのパラメータにリフレッシュ・フラグが設定されているブロックのブロック番号を設定する。さらにシステム・ファームウェアは、リフレッシュ・コマンドに、データが書き込まれているすべてのブロックをリフレッシュするようにパラメータを設定してもよい。ブロック１２５でＭＰＵ３３はリフレッシュ・コマンドを実行して、指定されたブロックまたはすべてのブロックをリフレッシュする。
【００６５】
リフレッシュが終了したＳＳＤ３０は、ブロック管理テーブル８１を更新すると、ブロック１２７でシステム・ファームウェアにリフレッシュ完了通知をする。システム・ファームウェアはブート処理をＯＳに渡さないで、ＥＣ４０に指示してシステムをふたたび待機状態に戻す。上記手順では、タイマー５７による計時動作も、電池ユニット６０による計時動作も待機状態での消費電力をほとんど増加させない。
【００６６】
また、ＥＣ４０はＳＭバス６２を通じて電池ユニット６０が計時する経過時間を監視することができ、システム・ファームウェアはシリアル・バス３２を通じてＳＳＤ３０にリフレッシュ・コマンドを送ることができるためハードウェアを変更する必要がない。さらにシステム・ファームウェアがリフレッシュ・コマンドを送っているため、リフレッシュのためにシステムが消費する電力は最小限の範囲に留めることができる。ブロック１１５で、電池ユニット６０が計時する経過時間を監視する例を説明したが、ＥＣ４０はウェイクアップしたときにＲＴＣウェイク回路２４を通じてカレンダ時刻を取得し、リフレッシュ管理テーブル８３を参照して消失時刻の到来を判断することもできる。
【００６７】
［第２のリフレッシュ方法］
第１のリフレッシュ方法では、ＥＣ４０がタイマー５７で一時的にウェイクアップして電池ユニット６０が計時する残存時間またはＲＴＣウェイク回路２４のカレンダ時刻を確認したときにリフレッシュの必要がなく、再び待機状態に戻る動作をすることが多くなる。第２のリフレッシュ方法は、システム・ファームウェアがシリアル・バス３２を通じてリフレッシュ・コマンドを送る点では第１のリフレッシュ方法と同じであるが、待機状態のときにＥＣ４０をタイマー５７でウェイクアップさせないでリフレッシュが必要なときにだけウェイクアップさせる。
【００６８】
第２のリフレッシュ方法の１つの態様では、ＥＣ４０と電池ユニット６０の間に新たに設けたサイドバンド６４を利用する。第２のリフレッシュ方法の手順は、図４のブロック１１１からブロック１１７までの手順に代えて行う。ＥＣ４０は電池ユニット６０に消失時刻までの残存時間を設定してからシステムを待機状態に遷移させＥＣ４０の電源を停止する。待機状態の間ＥＣ４０はリフレッシュの必要性を確認するためにタイマー５７でウェイクアップしない。
【００６９】
ＭＰＵ６１は、設定された残存時間が到来すると、サイドバンド６４を経由してロジック回路４９にウェイクアップ信号を送り、ＥＣ４０をウェイクアップさせる。それ以降は、図４のブロック１１９以降の手順と同じである。この場合、ＥＣ４０が無駄にウェイクアップすることによって待機電力が増加しない。第２のリフレッシュ方法の他の態様ではＥＣ４０は、待機状態に遷移する前にＲＴＣメモリ２３に消失時刻を設定する。待機状態で設定時刻が到来すると、ＲＴＣウェイクアップ回路２４は設定された消失時刻でＥＣ４０をウェイクアップさせる。この場合は、ＲＴＣウェイクアップ機能がディスエーブルのときでも待機状態でＲＴＣウェイクアップ回路に電源を供給する必要があるがハードウェアを変更する必要はない。
【００７０】
［第３のリフレッシュ方法］
第１のリフレッシュ方法と第２のリフレッシュ方法は、いずれも、ＳＳＤ３０にリフレッシュ・コマンドを送ってリフレッシュするため、ＳＳＤ３０についてはファームウェアの変更をするだけで実現できる。ただし、リフレッシュ・コマンドを送る際に、ＣＰＵ１１、システム・メモリ１３およびチップ・セット２０などに電力を供給する必要がある。第３のリフレッシュ方法では、リフレッシュ・コマンドに代えてサイドバンド３４、３８を通じてリフレッシュ信号を送る。ＳＳＤ３０にはリフレッシュ信号で設定するリフレッシュ端子３９を設ける。第３のリフレッシュ方法の手順は、図４のブロック１１１からブロック１１９までの手順に代えて行う。
【００７１】
第３のリフレッシュ方法では、第２のリフレッシュ方法と同じように電池ユニット６０またはＲＴＣウェイク回路２４が待機状態の間に経過時間または消失時刻を計時する。そして消失時刻が到来したときにＥＣ４０をウェイクアップさせる。ＥＣ４０は、ＤＣ／ＤＣコンバータ５１を動作させて、第１のリフレッシュ方法および第２のリフレッシュ方法とは異なって、ＳＳＤ３０にだけ電源を供給する。つづいて、電池ユニット６０またはＲＴＣウェイク回路２４は、サイドバンド３８またはサイドバンド３４を経由してリフレッシュ信号を送りリフレッシュ端子３９を設定する。電源が投入されたＳＳＤ３０は、ＭＰＵ３３がリフレッシュ端子３９を参照してリフレッシュを実行する。
【００７２】
これまで、ＳＳＤが搭載するフラッシュ・メモリ３７のリフレッシュを行う方法を説明したが、本発明はシステムが待機状態のときに書込時刻からの経過時間を計測できない他のフラッシュ・メモリに適用することもできる。一例として本発明はＨＤＤのキャッシュ・メモリに適用することができる。ＨＤＤのライトバック・キャッシングでは、書き込みが完了した時点でフラッシュ・メモリにだけデータが存在する。
【００７３】
フラッシュ・メモリが記憶するデータは、システムがアイドル状態のときに所定のアルゴリズムに基づくタイミングでＨＤＤに書き込まれる。劣化が進行したフラッシュ・メモリにライトバック・キャッシングを採用すると、フラッシュ・メモリが記憶するデータをフラッシュ・メモリに書き込んでから待機状態に遷移した場合に、消失時刻が経過する傾向が顕著になるため、本発明を適用してデータが消失する前にキャッシュをリフレッシュすることが有効である。
【００７４】
この場合のキャッシュ・メモリはＨＤＤに内蔵してもよいし外部に設けてもよい。キャッシュ・メモリをＨＤＤの外に設けて独立したインターフェースでチップ・セット２０に接続する場合は、チップ・セット２０に内蔵したキャッシュ・コントローラがリフレッシュをすることができる。また、ＮＡＮＤ型のフラッシュ・メモリを例示して説明したが、本発明はＮＯＲ型のフラッシュ・メモリに適用することもできる。さらに、ＥＰＲＯＭまたは強誘電体メモリのような劣化が進行したセルのデータを保持するためにリフレッシュが必要な不揮発性メモリ一般に適用することができる。さらに本発明は、コンピュータだけでなく、フラッシュ・メモリが接続され待機状態に遷移するホスト装置全般に適用することができる。
【００７５】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００７６】
１０  ノートＰＣ
３０  ソリッド・ステート・ドライブ（ＳＳＤ）
４０  エンベデッド・コントローラ（ＥＣ）
６０  電池ユニット
３４、３８、６４  サイドバンド
３９  リフレッシュ端子
３７  フラッシュ・メモリ
８１  ブロック管理テーブル（ＳＳＤに格納）
８３、８５  リフレッシュ管理テーブル（ＥＣに格納）
【図１】
0006018113.tif 000002
【図２】
0006018113.tif 000003
【図３】
0006018113.tif 000004
【図４】
0006018113.tif 000005