(57)【要約】【課題】書き込みデータをバッファリングするための装置、システム及び方法を提供する。【解決手段】運動センサ・モジュールは運動の影響を受けやすい記憶デバイス（motion-sensitive storage device）の運動を感知する。方向モジュールは、その運動が閾値運動を超えるときはバッファにデータを書き込む。方向モジュールは、更に、その運動が閾値運動を超えないときは運動の影響を受けやすい記憶デバイスにデータを書き込む。一つの実施例においては、書き込みモジュールは、その運動が閾値運動を超えないときにバッファから運動の影響を受けやすい記憶デバイスにデータを書き込む。【選択図】図７
2007141239.tif 000002
【特許請求の範囲】
【請求項１】
書き込みデータをバッファリングするための装置であって、
運動の影響を受けやすい記憶デバイスの運動を感知するように構成された運動センサ・モジュールと、
運動が閾値運動を超えるときにはバッファにデータを書き込み、運動が閾値運動を超えないときには運動の影響を受けやすい記憶デバイスにデータを書き込むように構成された方向モジュールとを備える装置。
【請求項２】
運動が閾値運動を超えないときに、バッファから運動の影響を受けやすい記憶デバイスにデータを書き込むように構成された書き込みモジュールを備える請求項１記載の装置。
【請求項３】
方向モジュールは、運動データのために運動センサー・モジュールをポーリングするように構成されている請求項１記載の装置。
【請求項４】
運動センサー・モジュールは、方向モジュールに運動データを通信するように構成されている請求項１記載の装置。
【請求項５】
運動センサは、運動が閾値運動を超えることを方向モジュールに通知するように構成されている請求項１記載の装置。
【請求項６】
方向モジュールは、中間ドライバがオペレーティング・システム及び運動の影響を受けやすい記憶デバイス・ドライバと通信するように構成されている請求項１記載の装置。
【請求項７】
ソフトウェア処理のストレージ要求に応じて閾値運動を修正するように構成された閾値修正モジュールを備える請求項１記載の装置。
【請求項８】
運動センサー・モジュールは、加速度計からなる請求項１記載の装置。
【請求項９】
書き込みデータをバッファリングするためのシステムであって、
データを処理するように構成されたプロセッサ・モジュールと、
データを記憶するように構成された記憶モジュールと、
データを記憶するように構成された運動の影響を受けやすい記憶デバイスと、
運動の影響を受けやすい記憶デバイスの運動を感知するように構成された運動センサ・モジュールと、
運動が閾値運動を超えるときには記憶モジュールにデータを書き込み、運動が閾値運動を超えないときには運動の影響を受けやすい記憶デバイスにデータを書き込むように構成された方向モジュールとを備えるシステム。
【請求項１０】
運動が閾値運動を超えないときに、記憶モジュールから運動の影響を受けやすい記憶デバイスにデータを書き込むように構成された書き込みモジュールを備える請求項９記載のシステム。
【請求項１１】
運動の影響を受けやすい記憶デバイスは、ハードディスク・ドライブである請求項９記載のシステム。
【請求項１２】
システムはラップトップ・コンピュータである請求項９記載のシステム。
【請求項１３】
書き込みデータをバッファリングするための動作を実行するデジタル処理装置によって実行可能な機械可読命令のプログラムを確実に実施する信号発生手段であって、
運動の影響を受けやすい記憶デバイスの運動を感知するステップと、
運動が閾値運動を超えるときにはバッファにデータを書き込み、運動が閾値運動を超えないときには運動の影響を受けやすい記憶デバイスにデータを書き込むステップとを備えるオペレーション。
【請求項１４】
命令は、運動が閾値運動を超えないときに、バッファから運動の影響を受けやすい記憶デバイスにデータを書き込むための動作からなる請求項１３記載の信号発生手段。
【請求項１５】
命令は、運動データをポーリングするための動作からなる請求項１３記載の信号発生手段。
【請求項１６】
命令は、運動データを通信するための動作からなる請求項１３記載の信号発生手段。
【請求項１７】
命令は、運動が閾値運動を超えることを通信するための動作からなる請求項１３記載の信号発生手段。
【請求項１８】
命令は、オペレーティング・システム及び運動の影響を受けやすい記憶デバイス・ドライバと通信するための動作からなる請求項１３記載の信号発生手段。
【請求項１９】
命令は、ソフトウェア処理のストレージ要求に応じて閾値運動を修正するための動作からなる請求項１３記載の信号発生手段。
【請求項２０】
命令は、ソフトウェア処理のストレージ要求に応じてバッファ・サイズを修正するための動作からなる請求項１３記載の信号発生手段。
【請求項２１】
加速度計は運動を感知する請求項１３記載の信号発生手段。
【請求項２２】
コンピュータ・システムにコンピュータ可読コードを組込むステップを備え、コードがコンピュータ・システムと結合して、
運動の影響を受けやすい記憶デバイスの運動を感知するステップと、
運動が閾値運動を超えるときにはバッファにデータを書き込み、運動が閾値運動を超えないときには運動の影響を受けやすい記憶デバイスにデータを書き込むステップとを実行可能にするコンピュータ・インフラを展開するための方法。
【請求項２３】
運動が閾値運動を超えないときに、バッファから運動の影響を受けやすい記憶デバイスにデータを書き込むステップを備える請求項２２の方法。
【請求項２４】
ソフトウェア処理のストレージ要求に応じて閾値運動を修正するステップを備える請求項２２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き込みデータのバッファリングに関し、特に運動に応じた書き込みデータのバッファリングに関する。
【背景技術】
【０００２】
コンピュータ機能は、コンピュータ・デバイスの運動が避けられないコンテキストにおいて、ますます実施されている。例えば、ラップトップ、PDAs（Personal Digital Assistants）、ポータブル・音楽プレィヤー、携帯電話、タブレット型パーソナルコンピューター及びこれらと同種のコンピュータ・デバイスは、ユーザの運動中又は輸送手段の運動中において恒常的に用いられている。
【０００３】
これらのコンピュータ・デバイスは、典型的には、機械的に動作する部品を有する一つ以上の内部デバイスを含んでいる。通常、非可動部品からなる内部デバイスを含むPDAのようなデバイスも、一時的に、機械的に動作する部品を含む小型のHDD（hard disk drive）のような記憶装置を含む場合がある。
コンピュータ・デバイスに内蔵され又はコンピュータ・デバイスと接続して作動する機械的に動作する部品を有するこれらのデバイスは、本明細書中で「運動の影響を受けやすいデバイス」（motion-sensitive devices）と称される。
【０００４】
残念なことに、運動の影響を受けやすいデバイスは、依然として、運動の影響を受けやすいデバイスの操作がそれ自身の移動と複合したときに非常に重大な損傷を受け易い。典型的には、コンピュータ・デバイスの移動も運動の影響を受けやすいデバイスを動かす。これらの移動は、注意深く予測された移動、ぶつけ、振動、落下、コンピュータ・デバイスが設置された基盤の移動その他を含んでいる。しばしば、これらの移動は、運動の影響を受けやすいデバイスの内蔵部品の運動に悪影響を与える。コンピュータ・デバイスの移動に起因する障害は、運動の影響を受けやすいデバイスの内蔵動作部品に他の内蔵部品と同様に重大な損傷を引き起こす。
【０００５】
運動の影響を受けやすいデバイスの移動による実際に生じた損傷及び損傷の可能性は、典型的には、運動の影響を受けやすいデバイスが最大稼働中で運動の影響を受けやすいデバイスが同時に運動中である間に最大である。
運動の影響を受けやすいデバイスを運動状態にすることは、移動損傷の可能性を増大させる。運動中に運動の影響を受けやすいデバイスを操作することは、運動の影響を受けやすいデバイスの移動に起因する損傷のリスクを高めることになる。
【０００６】
HDD等の運動の影響を受けやすい記憶デバイス（motion-sensitive storage device：MSSD）は、特に、MSSDがコンピュータ機能によって頻繁に用いられているときに運動関連損傷（motion-related damage）を受け易い。例えば、コンピュータ・デバイスがHDDにデータを頻繁に書き込むと、データがコンピュータ・デバイスによって書き込まれ、かつHDDが運動中にある機会が増大する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上の議論から、MSSDが運動中である間にバッファがMSSDに書き込む装置、システム及び方法に対する課題が存在することは明らかである。そのような装置、システム及び方法は、MSSDに対する運動関連損傷を低減することに有益であろう。
【課題を解決するための手段】
【０００８】
本発明は、本技術の現状に応じて、特にMSSDにデータを書き込むための現在利用できる方法により未だ十分に解決されていなかった本技術におけるその問題及びニーズに応じてなされたものである。従って、本発明は、運動中にデータの書き込みをバッファリングするための装置、システム及び方法を提供するためになされたもので、本技術におけるいくつかの又は全ての前述で議論された欠点を解消するものである。
【０００９】
書き込みをバッファリングするための装置は、論理演算装置を備えており、この装置は、運動が閾値運動（threshold motion）を超えているときは、バッファに対する運動を感知しデータを書き込むために必要なステップを機能的に実行するように構成された複数のモジュールを含む。実施例で記載されたこれらのモジュールは、運動センサ・モジュール及び方向モジュールを含む。
【００１０】
運動センサ・モジュールは、MSSDの運動を感知する。運動センサ・モジュールは、MSSDに接続されている加速度計を含むこともできる。このMSSDは、HDD、光記憶装置又は同種のものである。一つの実施例においては、この運動センサ・モジュールは、加速度のような運動データを通信する。他の実施例においては、運動センサは閾値運動でプログラミングされており、運動が閾値運動を超えることを通信する。
【００１１】
方向モジュールは、運動が閾値運動を超えるときはバッファにデータを書き込み、運動が閾値運動を超えないときはMSSDにデータを書き込む。一つの実施例においては、方向モジュールは運動センサから運動データを受取り、運動が閾値運動を超えているかどうかを決定する。他の実施例においては、方向モジュールは、運動が閾値運動を超えていることの通知を運動センサ・モジュ−ルから受取る。
【００１２】
本発明のシステムは、同様に、書き込みデータを バッファリングするためになされたものである。このシステムは、ラップトップコンピュータなどのモバイル・コンピュータ・デバイスにおいて実現することができる。特に、一つの実施例において本システムは、演算処理モジュール、記憶モジュール、MSSD、運動センサ・モジュール及び方向モジュールを含む。本システムは、更に書き込みモジュールを含むことができる。
【００１３】
演算処理モジュールは、ソフトウェア命令を実行し、データを処理する。記憶モジュールは、ソフトウェア命令及びデータを保存する。MSSDは、同様にソフトウェア命令及びデータを保存する。MSSDは、低いアクセス待ち時間で記憶モジュールがより小さな量のソフトウェア命令及びデータを記憶する間、非揮発性記憶デバイスとして構成することができる。
【００１４】
演算処理モジュールは、MSSDにデータを周期的に書き込むことができる。運動センサ・モジュールは、MSSDの運動を感知する。方向モジュールは、運動が閾値運動を超えている場合にバッファにデータを書き込み、運動が閾値運動を超えていない場合にはMSSDにデータを書き込む。一つの実施例においては、記憶モジュールはバッファからなる。
【００１５】
一つの実施例においては、書き込みモジュールは、運動が閾値運動を超えていない場合にバッファからMSSDにデータを書き込む。本システムは、MSSDの運動が閾値運動より低くなるまで、MSSDに送られるべきデータをバッファに書き込むことにより、MSSDに対する運動関連損傷を低減する。
【００１６】
本発明の方法は、同様に書き込みデータをバッファリングするためになされたものである。実施例で開示された方法は、本明細書で記載されている装置及びシステムの操作に関して、上に提示された諸機能を果たすために必要なステップを実質的に含む。一つの実施例においては、本方法は、運動を感知すること及び運動が閾値運動を超えている場合にデータをバッファに書き込むことを含む。本方法は、同様に閾値運動を修正するモジュール、バッファ・サイズを修正するモジュール及びMSSDにバッファ・データを書き込むモジュールを含むことができる。
【００１７】
一つの実施例においては、閾値修正モジュールは、ソフトウェア処理のストレージ要求に応じて閾値運動を修正する。更に、バッファ修正モジュールは、ソフトウェア処理のストレージ要求に応じてバッファのサイズを修正する。運動センサ・モジュールは、MSSDの動作を感知する。方向モジュールは、運動が閾値運動を超えている場合にバッファにデータを書き込む。更に、方向モジュールは、運動が閾値運動を超えていない場合にMSSDにデータを書き込む。
【００１８】
一つの実施例においては、書き込みモジュールは、運動が閾値運動を超えていないときにバッファからMSSDにデータを書き込む。本方法は、MSSDの運動が閾値運動を超えていないときにデータはMSSDにのみ書き込まれるけれども、必要なときにはソフトウェア処理がデータを書き込むことができる。
【００１９】
この明細書全体を通じて、特徴、利点又は同様の用語への言及は、本発明により実現される全ての特徴及び利点が、本発明のいかなる実施例においても存在していることを示唆するものではない。むしろ、特徴及び利点を指す用語は、一つの実施例に関連して記載された固有の特徴、利点又は特性が、少なくとも本発明の一つの実施例に含まれるという意味に理解される。このように、この明細書全体を通じて、その特徴、利点及び同様の用語に関する議論は、同一の実施例に必ずしも言及するものではない。
【００２０】
更に、記載された本発明の特徴、利点及び特性は、一つ以上の実施例においてどのような適当な方法においても合わせ持つことができる。当業者は、特定の実施例についての一つ以上の特有の特徴又は利点なしで、本発明が実施し得ることを認めるであろう。
他の場合には、さらなる特徴及び利点が、本発明のすべての実施例において記載されていないある種の実施例において認められるかもしれない。
【００２１】
本発明は、MSSDの運動が閾値運動を超えるときにMSSDに送られるべき書き込みデータをバッファリングする。更に、本発明は、MSSDが運動中の間、MSSDへの書き込むデータを減少させることにより、MSSDの運動関連損傷を減少させることができる。本発明のこれらの特徴及び利点は、以下の説明及び添付の特許請求の範囲からより十分に明らかになるであろう。また、これらの特徴及び利点は、以下に記載される本発明の実施により知ることができる。
【００２２】
本発明の利点を容易に理解するために、簡単な上述の本発明のより詳細な説明は、添付図面に図解される個別の実施例を参照することによって与えられるであろう．これらの図面は、本発明の単に実施例を描いており、それ故、その範囲に限定して考えるべきものではないことを理解しつつ、本発明は、添付図面を用いることにより、さらに特徴とともに詳細に記載され、説明されるであろう。
【発明の効果】
【００２３】
本装置は、MSSDの運動を感知し、MSSDの運動が閾値運動を超えていないときにMSSDにデータを書き込が、一方では、MSSDの運動が閾値運動を超えているときにバッファにデータを書き込む。MSSDの運動が閾値運動を超えている間、MSSDへの書き込みを回避することによって、本装置は、MSSDに対する運動関連損傷のリスクを低減する。
【発明を実施するための最良の形態】
【００２４】
本発明において記載されている多くの機能ユニットは、実施の独立性をより強く強調するためにモジュールとして称されてきた。例えば、モジュールは、カスタム超LSI又はゲート・アレイ、論理チップ、トランジスタのような市販の半導体又は他の個別部品からなるハードウェア回路として実施することができる。モジュールは、またフィールド・プログラマブル・ゲート・アレイ、プログラム可能アレイ論理、プログラム可能論理回路又は同様のものなどのプログラム可能ハードウェア・デバイスにおいても実施することができる。
【００２５】
モジュールは、また各種のプロセッサによる実行ソフトウェアにおいても実施することができる。実行可能コードの特定モジュールは、例えば、コンピュータの命令の一つ以上の物理的又は論理的ブロックからなり、これらは、例えば、オブジェクト、手順又は機能として体系化される。それにもかかわらず、特定のモジュールについての実行ファイルは、物理的に一緒に置かれる必要はなく，論理的に同時に結合していれば、モジュールからなり、そしてモジュールに定められた目的を達成するものであれば、異なる場所に記憶された別々の命令であってってもよい。
【００２６】
実際には、実行可能なコードのモジュールは、単一の命令又は複数の命令であってもよく、いくつかの異なるコード・セグメントに亘って、異なるプログラム間で及びいくつかのメモリー・デバイスに亘って分担することさえ可能である。同様に、運用データは、本明細書中でモジュール内で特定され、示される。そして、運用データは、適当な形式で具体化され、適当なタイプのデータ構造内で体系化される。運用データは、単一のデータ・セットとして集められ、又は異なる記憶装置に含まれる異なる場所に亘って分担されてもよく、また少なくとも部分的に、システム又はネットワーク上で電気信号として存在してもよい．
この明細書を通じて「一つの実施例」、「実施例」又は同様の用語への言及は、その実施例に関連して記載された特定の特徴、構造又は特性が、少なくとも本発明の一つの実施例の中に含まれていることを意味する。このように、この明細書を通じて「一つの実施例において」、「実施例において」という言葉の登場は、必ずしもこれと同様の実施例すべてに言及しているわけではない。
【００２７】
更に、記載された本発明の特徴、構造又は特性は、一以上の実施例において適当な方法で合わせ持つこともできる。以下の説明において、本発明の実施例を十分に理解するために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等の例のような多数の具体的詳細が提供される。しかしながら、当業者は、本発明が一つ以上の具体的詳細を伴わずに、又は他の方法、構成部品、構成要素その他とともに実施し得ることを認めるであろう。他の場合においては、周知の構造、構成要素又は操作は示されていないか、又は本発明の態様を明確にするために詳細に説明される。
【実施例】
【００２８】
図１は、本発明のコンピュータ・デバイス100の一実施例を示す概ブロック図である。
デバイス100は、演算処理モジュール105、バッファ110、MSSD 115及び運動センサ・モジュール120を含む。コンピュータ・デバイス100はラップトップ・コンピュータ、PDA、携帯電話、タブレット型コンピュータ、無線電子メール・デバイス又は同種のものである。
【００２９】
演算処理モジュール105は記憶し、ソフトウェア命令を実行し、そしてデータ、ソフトウェア命令及び本明細書中でデータと称されるデータを処理する。MSSD115は、演算処理モジュール105へのデータを記憶する。MSSD115は、HDD、光学式記憶デバイス又は同種のものなどの非揮発性記憶デバイスである。バッファ110は、ダイナミックRAM（DRAM）、スタティックRAM（SRAM）、フラッシュRAM（Frash RAM）又は同種のものなどの記憶装置である。一つの実施例においては、演算処理モジュール105は、バッファ110を備える。他の実施例においては、MSSD 115は、バッファ110を備える。バッファ110は、可動部分を含まない。
【００３０】
MSSD 115は、一つ以上の可動部品を含む。可動部品は小さな公差で作動し、そしてMSSD 115が運動中に操作されると損傷を受け易くなる。このように、MSSD 115は、バッファ110よりも運動関連損傷をより受け易い。
【００３１】
演算処理モジュール105は、コンピュータ・デバイス100及びMSSD 115が運動中である間も含めていろいろな時に、MSSD 115にデータを書き込む可能性がある。もし、コンピュータ・デバイス100及びMSSD 115が大きな運動の中にある間に、演算処理モジュール105がMSSD 115にデータを書き込むと、MSSD 115が損傷を受ける可能性がある。
【００３２】
デバイス100は、演算処理モジュール105がMSSD 115にデータを書き込むときに運動センサ・モジュール120でMSSD 115 の運動を感知する。もし、MSSD 115の動きが特定の閾値運動を超えると、デバイス100はMSSD 115の代わりにバッファ110にデータを書き込む。このように、MSSD 115は、運動関連損傷を受け易いときにデータを書き込まない。
【００３３】
図２は、本発明の書き込みバッファリング装置200の一実施例を示す概ブロック図である。一つの実施例において、図１の演算処理モジュール105及び運動センサ・モジュール120は、装置200からなる。装置200は、運動センサ・モジュール120、方向モジュール210、書き込みモジュール215、バッファ修正モジュール220及び閾値修正モジュール225を含む。
【００３４】
運動センサ・モジュール120は、図１のMSSD 115のようなMSSD 115の運動を感知する。運動センサー・モジュール120は、当業者に周知の加速度計からなる。一つの実施例においては、運動センサー・モジュール120は、運動データのようなMSSD 115の加速度を感知する。他の実施例においては、運動センサー・モジュール120は、運動データのような時間に関する加速度の微分を感知する。
【００３５】
一つの実施例においては、運動センサー・モジュール120は、方向モジュール210に運動データを通信する。例えば，運動センサー・モジュール120は、２Gの重力加速度を方向モジュール210に通信することができる。他の実施例においては、運動センサー・モジュール120は、閾値運動が組み込まれ、MSSD 115の運動が閾値運動を超えていることを方向モジュール210に通信する。例えば、閾値運動が１Gであれば、MSSD 115の運動が１Gを超えているときに、運動センサー・モジュール120は、方向モジュール210に通知することができる。
【００３６】
方向モジュール210は、MSSD 115の運動が閾値運動を超えているときは、図１のバッファ110などのバッファ110に演算処理モジュール105からデータを書き込み、MSSD 115の運動が閾値運動を超えていないときは、演算処理モジュール105からMSSD 115にデータを書き込む。例えば、閾値運動が１Gであり、運動センサー・モジュール120がMSSD 115の運動が２Gであることを示す運動データを方向モジュール210に通信するならば、方向モジュール210は、演算処理モジュール105からMSSD115に通信されたデータを方向転換し、代わりに、バッファ110にデータを書き込むことができる。
【００３７】
一つの実施例においては、書き込みモジュール215は、MSSD 115の運動が閾値運動を超えていないとき、バッファ110からMSSD 115にデータを書き込む。上記の例において、書き込みモジュール215がMSSD 115の運動が１Gの閾値運動より下回ることを決定するならば、書き込みモジュール215は、バッファ110からデータを読み取り、MSSD 115にデータを書き込む。このように、データはMSSD 115 に書き込まれるが、MSSD 115 が運動関連損傷をより受け易いときに書き込まれるのではなく、データはMSSD 115 が運動関連損傷を受けることがより少ないときに書き込まれる。
【００３８】
一つの実施例においては、閾値修正モジュール225は、閾値運動を修正する。例えば、閾値修正モジュール225は、閾値運動を１Gから２Gへ修正することができる。閾値修正モジュール225は、ソフトウェア処理のストレージ要求に応じて閾値運動を修正することができる。例えば、ソフトウェア処理は、データが演算処理モジュール105からMSSD 115 に最小限の遅延時間で書き込まれることを要求することができる。従って、閾値修正モジュール225は、演算処理モジュール105がさらに頻繁にMSSD 115に直接書き込むように、閾値運動を１Gから２Gに修正することができる。
【００３９】
一つの実施例において、バッファ修正モジュール220は、バッファ110のサイズを修正する。例えば、バッファ110は、１メガバイト（１MB）のメモリなどのDRAMメモリの一部であってもよい。バッファ修正モジュール220は、メモリを１メガバイト（１MB）から２メガバイト（２MB）にバッファ110のサイズを修正することができる。一つの実施例においては、バッファ修正モジュール220は、ソフトウェア処理のストレージ要求に応じてバッファ110のサイズを修正することができる。例えば、ソフトウェア処理がMSSD 115に対して４メガバイト（４MB）のデータ量の保存を必要とするならば、バッファ修正モジュール220は、５メガバイト（５MB）にバッファ110のサイズを修正することができる。
【００４０】
装置200は、MSSD 115の運動が閾値運動を下回るまで、MSSD 115に向うことになっているデータをバッファ110に書き込むことによりMSSD 115に対する運動関連損傷を軽減する。更に、装置200は、ソフトウェア処理の実行に影響を与える可能性のある遅延時間を伴わずに、ソフトウェア処理がMSSD 115にデータを送ることを可能にする。
【００４１】
図３は、本発明によるモバイル・コンピュータ・デバイス300の一実施例を示す概ブロック図である。デバイス300は、ラップトップ・コンピュータ又は同種のものである。
一つの実施例においては、デバイス300は図１のコンピュータ・デバイス100である。図示されるように、デバイス300は、プロセッサ・モジュール305、キャッシュ・モジュール310、記憶モジュール315、ノースブリッジモジュール320、サウスブリッジモジュール325、グラフィック・モジュール330、ディスプレイ・モジュール335、基本入出力システム（BIOS）モジュール340、ネットワーク・モジュール345、USBモジュール350、オーディオ・モジュール355、PCI（peripheral component interconnect）モジュール360、MSSD 115及び運動センサー・モジュール120を含む。
【００４２】
本明細書で構成部品として記載されたプロセッサー・モジュール305、キャッシュ・モジュール310、記憶モジュール315、ノースブリッジモジュール320、サウスブリッジモジュール325、グラフィック・モジュール330、ディスプレイ・モジュール335、BIOSモジュール340、ネットワーク・モジュール345、USBモジュール350、オーディオ・モジュール355及びPCIモジュール360は、一以上の半導体基板上の半導体ゲートから製作することができる。それぞれの半導体基板は、回路基板上に実装された一以上の半導体デバイスにまとめることができる。構成部品間の接続は、半導体金属層、基板間配線、回路基板導線又は半導体デバイス間を接続するワイヤを通じて行うことができる。
【００４３】
記憶モジュール315は、データを記憶する。一つの実施例においては、記憶モジュール315は、図１のバッファ110を備える。プロセッサー・モジュール305は、当業者によく知られているように、データを実行する。図１の演算処理モジュール105は、ノースブリッジモジュール320及びサウスブリッジモジュール325と同様に、プロセッサー・モジュール305を備えることができる。
【００４４】
一つの実施例においては、演算処理モジュール105は、加速度に敏感に反応する。演算処理モジュール105は、別個の運動検出部品又は既存の加速度計などの既存のハードウェアで通信するロジックを備えることができる。トラッキング・モジュール302に用いられる加速度計の例は、マサチューセッツ州のAnalog Devices of Norwoodから入手できるiMEMS（登録商標）加速度計を含む。
【００４５】
一つの実施例においては、運動センサー・モジュール120は、MMSD 115に物理的に結合された加速度計からなる。加速度計は、MMSD 115の加速度に応じてアナログ電気信号を発生する。更に、運動センサー・モジュール120は、アナログ信号をデジタル値に変換するためのAD変換器を含むことができる。ある実施例においては、運動センサー・モジュール120は、更に、加速度計及びMSSD 115の加速度を示す運動データを生成するためにデジタル値を処理する。
【００４６】
一つの実施例においては、記憶モジュール315は記憶し、プロセッサー・モジュール305は、図２の方向モジュール210、書き込みモジュール215、バッファ修正モジュール220及び閾値修正モジュール225からなる一つ以上のソフトウェア処理を実行する。
更に、記憶モジュール315は、記憶することができ、プロセッサー・モジュール305は、
ソフトウェア・アプリケーション、オペレーティング・システム、中間ドライバ及びMSSD 115デバイス・ドライバなどのデバイス・ドライバからなる一つ以上のソフトウェア処理を実行する。
【００４７】
ソフトウェア・アプリケーション又はオペレーティング・システムは、MSSD 115ドライバ、ノースブリッジモジュール320及びサウスブリッジモジュール325を通じてMSSD 115にデータを書き込むことができる。一つの実施例においては、プロセッサー・モジュール305で実行している方向モジュール210は、サウスブリッジモジュール325及びノースブリッジモジュール320を通じて、運動センサー・モジュール120から運動データを受取る。運動データが閾値運動を超えると、プロセッサー・モジュール305で実行している方向モジュール210は、オペレーティング・システム又はソフトウェア・アプリケーションから方向づけられたデータを、記憶モジュール315上にあるバッファ110に方向転換することができる。プロセッサー・モジュール305で実行している書き込みモジュール215は、更に、運動センサー・モジュール120からの運動データが閾値運動を超えないときに、ノースブリッジモジュール320及びサウスブリッジモジュール325を通じて、データをバッファ110からMSSDに書き込むことができる。
【００４８】
図４は、本発明によるラップトップ・コンピュータ400の一実施例を示す斜視図である。一つの実施例において、コンピュータ400は、図１のコンピュータ・デバイス100及び図３のモバイル・コンピュータ・デバイス300である。コンピュータ400は、モバイル・コンピューテイングを実行するように構成される。例えば、コンピュータ400は、移動車両中や、飛行機などに乗っているときなどのコンピュータ400が運動中であるときに用いられるかもしれない。
【００４９】
図５は、本発明によるHDD 500の一実施例を示す斜視図である。HDD 500は、図１及び図３のMSSD 115である。更に、図４のラップトップ・コンピュータ400は、HDD 500を備えることができる。HDD 500は、加速度計530に物理的に結合されて図示されている。加速度計530は、図１から３の運動センサー・モジュール120を構成する。HDD 500は、スピンドル510に装着された少なくとも一つの円盤状記録媒体（platter）505を含むいくつかのサブ・コンポーネントで構成される。円盤状記録媒体505は、磁気分極が円盤状記録媒体の上面又は下面に適用可能な材料で作製される。HDD 500は、モータを使用して（図示せず）１分間に数千回の回転数でスピンドル510及び円盤状記録媒体505を回転するように構成されている。HDD 500は、更に、円盤状記録媒体505に表面に亘って伸びる少なくとも一つのアーム515を含む。図示されるように、上側アーム515a及び下側アーム515bは、それぞれ、円盤状記録媒体505の上面及び下面の真上及び真下に伸びている。それぞれのアーム515には、円盤状記録媒体505の表面で分極化することができ、同様に、円盤状記録媒体505の表面の分極を検出することができるヘッド525が組込まれている。
【００５０】
上側アーム及び下側アーム515a、 515bは、ヘッド525が円盤状記録媒体505上のいずれの位置でも分極化し、分極を検出できるように、円盤状記録媒体505がスピンドル510の周囲に回転している間、ヘッド525が円盤状記録媒体505の表面を横切って弧を描いて動くことができるように、HDD 500に枢動可能に接続されている。多重円盤状記録媒体505は垂直に積層され、各円盤状記録媒体505は、各円盤状記録媒体505の上側アーム及び下側アーム515a、 515bとともに、同一のスピンドル510上で中心に装着されている。
【００５１】
HDD 500は、急な動き、振動、衝突などに敏感である。典型的な円盤状記録媒体505は、１分間に7200回転で高速回転する。アーム515は、極めて高速で円盤状記録媒体505を横切って動く。ヘッド525は、薄いエア・クッションにより円盤状記録媒体505から分離して、しばしば、「円盤状記録媒体505の上を飛ぶ」ように描写されている。ハードディスク500の急な動きは、ヘッド525が円盤状記録媒体505に接触し又は衝突する原因となる。ヘッド525と円盤状記録媒体505との物理的名接触は、円盤状記録媒体505の損傷の原因となり、ヘッド525の損傷原因ともなる上、円盤状記録媒体505に記憶されたデータの取り返しのつかない損失の原因となる。
【００５２】
ヘッドの衝突を防止するために、ヘッド525をパーキング（parking）させることガできる。パーキングは、ヘッド525が円盤状記録媒体505と物理的に接触しない位置にアーム515を移動させる。一つの実施例において、パーキングは、HDD 500をヘッドの衝突などの損傷から保護する。
【００５３】
一つの実施例において、方向モジュール210がHDD 500にデータの書き込みを指示していない時に、方向モジュール210は、HDD 500のヘッド525をパーキングさせる。
ヘッド525のパーキングは、HDD500の運動の間隔の間ヘッド525を保護することができる。方向モジュール210は、更に、バッファ110又は図１の演算処理モジュール105のいずれか一方からデータを書き込むために、ヘッド525をアンパーク（unpark：パーキング解除）させることができる。
【００５４】
図６は、本発明によるソフトウェア・スタック600の一実施例を示す概ブロック図である。ソフトウェア・スタック600は、図１のコンピュータ・デバイス100又は図３の
モバイル・コンピュータ・デバイス300で実行する一以上のソフトウェア処理を代表している。図示された実施例においては、ソフトウェア・スタック600は、ソフトウェア・アプリケーション605、アプリケーション・プログラム・インターフェース（API）610、オペレーティング・システム615、中間ドライバ620及びデバイス・ドライバ625を含む。
【００５５】
ソフトウェア・スタック600は、図１のMSSD 115 などのMSSD 115 と通信しているように描かれている。ソフトウェア・スタック600は、図３のプロセッサー・モジュール305で実行することができ、図３のノースブリッジモジュール320及びサウスブリッジモジュール325を通じてMSSD 115と通信することができる。
【００５６】
オペレーティング・システム615は、コンピュータ・デバイス100の動作を管理し、命令するように構成された当業者に周知の一つ以上のソフトウェア・プロセスからなる。
オペレーティング・システム615は、一つ以上のAPI 610を通じて一つ以上のソフトウェア・アプリケーション605と通信する。各API 610は、ソフトウェア・アプリケーション605とオペレーティング・システム615との間で通信された特定組のデータ値を含むことができる。
【００５７】
ソフトウェア・アプリケーション605又はオペレーティング・システム615は、API 610を備えた機能を呼び出し、データ値又はデータ値の配列に対するポインタのような特定のデータ値をパスすることによって、API 610を通じて通信することができる。例えば、ソフトウェア・アプリケーション605は、API 610機能を呼び出し、API 610に一つ以上のコントロール・データ値をパスすることによってMSSD 115にデータを書き込むことができる。
【００５８】
オペレーティング・システム615は、ソフトウェア・アプリケーション605とMSSD 115との間の通信を管理し、ソフトウェア・アプリケーション605とMSSD 115との間のインターフェイスとしてとしての機能を果たす。オペレーティング・システム615は、一つ以上のデバイス・ドライバ625を用いて、BIOSモジュール340、ネットワーク・モジュール345、USBモジュール350、オーディオ・モジュール355、PCIモジュール360、MSSD 115及び図３の運動センサ・モジュール120などの複数の特有のモジュールで動作するように構成されている。それぞれのデバイス・ドライバ625は、モジュールに特有のものであることができる。
例えば、オーディオ・モジュール355からなるオーディオ回路は、オペレーティング・システム615と通信するための特有のデバイス・ドライバ625をもつことができる。オペレーティング・システム615は、オーディオ・モジュール355に特有のデバイス・ドライバ625でオーディオ・モジュール355とインターフェイスで接続する。
【００５９】
オペレーティング・システム615は、デバイス・ドライバ625でMSSD 115と通信する。デバイス・ドライバ625は、一つ以上の一般的なコマンド及びプロトコルを、オペレーティング・システム615からMSSD 115に特有の一つ以上のコマンド及びプロトコルへ変換する。デバイス・ドライバ625は、また、一つ以上のMSSD 115 に特有のコマンド及びプロトコルを、一つ以上のオペレーティング・システム615に一般的なコマンド及びプロトコルへ変換する。
【００６０】
図示された実施例においては、オペレーティング・システム615及びMSSD 115 のデバイス・ドライバ625は、中間ドライバ620を通じて通信する。中間ドライバ620は、オペレーティング・システム615に対してはデバイス・ドライバ625であるように見受けられ、デバイス・ドライバ625に対してはオペレーティング・システム615であるように見受けられる。このように、オペレーティング・システム615は、中間ドライバ620がデバイス・ドライバ625であるかのように、中間ドライバ620へ一般的なコマンド及びプロトコルを通信することができる。中間ドライバ620は、中間ドライバ620がオペレーティング・システム615であるかのように、デバイス・ドライバ625へ一般的なコマンド及びプロトコルを送ることができる。
【００６１】
更に、デバイス・ドライバ625は、中間ドライバ620がオペレーティング・システム615であるかのように、MSSD 115に特有のコマンド及びプロトコルを、中間ドライバ620へ通信することができる。中間ドライバ620は、中間ドライバ620がデバイス・ドライバ625であるかのように、MSSD 115に特有のコマンド及びプロトコルを、オペレーティング・システム615に通信することができる。
【００６２】
一つの実施例においては、中間ドライバ620は、図２の方向モジュール210を備える。方向モジュール210は、MSSD 115の運動が閾値運動を超えるとき、オペレーティング・システム615からデバイス・ドライバ625へのデータの書き込みを阻止することができる。一つの実施例においては、方向モジュール210は、中間ドライバ620がデバイス・ドライバ625の代わりに図１のバッファ110にデータを書き込むようにデータの書き込みを変更する。方向モジュール210は、また、データがバッファ110に書き込まれたときに、データがMSSD 115に書き込まれたことをオペレーティング・システム615に通信することができる。
【００６３】
一つの実施例においては、中間ドライバ620は、図２の書き込みモジュール215を備える。書き込みモジュール215は、バッファ110からデバイス・ドライバ625にデータを書き込み、デバイス・ドライバ625がデータの書き込みをオペレーティング・システム615からであるかのように受け取るように、データの書き込みを修正することができる。他の実施例においては、書き込みモジュール215は、また、データがデバイス・ドライバ625を通じてMSSD 115に書き込まれたときに、データがMSSD 115に書き込まれたことをオペレーティング・システム615に通信することができる。
【００６４】
引き続いて概フローチャート図は、一般に、論理フローチャート図として示されている。そのようなものとして、図示された命令及び表示されたステップは、本発明の方法の一実施例を示している。図示された方法についての、同様の機能、論理、一つ以上のステップに対する効果又はその一部である他のステップ及び方法は、想到することが可能である。更に、用いられたフォーマット及び記号は、本発明の論理的なステップを説明するために与えられており、本発明の範囲を限定するものではないことは理解される。
さまざまな矢印及び線図の形式がフローチャート図において使用することができるが、それらは、本発明に相当する方法の範囲を限定するものではないことは理解される。実際に、ある矢印又は他の結合子は、本発明の論理フローを示すためだけに用いられている。例えば、一つの矢印は、図示された方法について列挙されたステップの間の特定されていない持続時間の待ち時間又はモニタリング時間を示すことができる。更に、特定の方法が発生する命令は、示された相当するステップの命令に従うか、厳密には従わないかも知れない。
【００６５】
図７は、本発明の書き込みバッファリング方法700の一実施例を示す概フローチャート図である。この方法700は、実質的には、図１で述べられたシステム100及び図２の装置200の動作に関して上で提示された機能を実行するのに必要なステップを含む。
【００６６】
一つの実施例においては、この方法700は、始まると閾値修正モジュール225がソフトウェア処理のストレージ要求に応じて閾値運動を修正705する。一つの実施例においては、閾値運動は、１重力（１G）などの特定の値に設定される。ソフトウェア処理は、図６のソフトウェア・アプリケーションなどのソフトウェア・アプリケーション605である。ある実施例においては、閾値修正モジュール225は、図６の中間ドライバ620などの中間ドライバ620として構成される。ソフトウェア・アプリケーション605は、図６のオペレーティング・システム615などのオペレーティング・システム615に、図６のAPI 610などのAPI 610を通じてストレージ要求を通信することができる。オペレーティング・システム615は、閾値修正モジュール225にオペレーティング要求を通信することができ、閾値修正モジュール225は、オペレーティング要求に応じて閾値運動を修正する705ことができる。
【００６７】
他の実施例においては、ソフトウェア・アプリケーション605は、閾値修正モジュール225で構成される動的リンク・ライブラリ（DLL）と接続する。ソフトウェア・アプリケーション605は、DLLにストレージ要求を通信することができ、閾値修正モジュール225は、ストレージ要求に応じて閾値運動を修正する705ことができる。
【００６８】
一つの実施例においては、ストレージ要求は、待ち時間要求として構成され、ソフトウェア・アプリケーション605が図１のMSSD 115などのMSSD 115に書き込む間に許容することができる最大時間間隔を特定する。閾値修正モジュール225は、典型的にはMSSD 115の運動が、典型的には最大時間間隔内で閾値運動以下になるように閾値運動を修正する705ことができる。例えば、ストレージ要求が５秒間（５s）の待ち時間であれば、MSSD 115の運動が、バッファ110からMSSD 115にデータを書き込むために、９０％の場合十分な時間である５秒（５s）間隔で１．５Gの閾値運動以下になることを、閾値モジュールは決定することができ、そこで閾値モジュールは閾値運動を１．５Gに修正705する。
【００６９】
他の実施例においては、ストレージ要求は、運動値として構成することができる。例えば、ソフトウェア・アプリケーション605が２Gのストレージ要求を特定し、閾値修正モジュール225は２Gに閾値運動を修正することができる。一つの実施例においては、閾値修正モジュール225は、ソフトウェア・アプリケーション605の書き込みの間に時間間隔をトラックし、書き込みが特定された一定の割合の場合に受け入れられるように、閾値運動を修正705する。例えば、３Gの閾値運動がバッファ110からMSSD 115にデータが書き込まれることを９５％の場合許容することを閾値修正モジュール225が決定するならば、閾値修正モジュール225は、閾値運動を３Gに修正705することができる。
【００７０】
一つの実施例においては、閾値修正モジュール225は、方向モジュール210に新しい閾値運動値を書き込むことにより、閾値運動を修正する。他の実施例においては、閾値修正モジュール225は、運動センサ・モジュール120に新しい閾値運動値を書き込むことにより、閾値運動を修正する。
【００７１】
一つの実施例においては、バッファ修正モジュール220は、図１のバッファ110などのバッファ110のサイズを、ソフトウェア・アプリケーション605などのソフトウェア処理のストレージ要求に応じて、修正する710ことができる。ある実施例においては、バッファ修正モジュール220は、中間ドライバ620として構成される。ソフトウェア・アプリケーション605は、API 610を通じてオペレーティング・システム615にストレージ要求を通信することができる。オペレーティング・システム615は、バッファ修正モジュール220にオペレーティング要求を通信することができ、バッファ修正モジュール220は、オペレーティング要求に応じてバッファ110のサイズを修正710することができる。
【００７２】
他の実施例においては、ソフトウェア・アプリケーション605は、バッファ修正モジュール220で構成されたDLLと接続する。ソフトウェア・アプリケーション605は、DLLにストレージ要求を通信することができ、バッファ修正モジュール220は、ストレージ要求に応じてバッファ110のサイズを修正する710ことができる。
【００７３】
ある実施例においては、バッファ修正モジュール220は、ソフトウェア・アプリケーション605の測定されたストレージ要求に応じてバッファ110のサイズを修正710する。例えば、バッファ修正モジュール220は、ソフトウェア・アプリケーション605によりMSSD 115 に書き込まれたデータの最大量を追跡することができる。バッファ修正モジュール220は、更にバッファ110のサイズを最大量の１０パーセントだけ超えるように修正710することができる。一つの実施例においては、ストレージ要求は２メガバイト（２MB）などのデータ量として設定される。バッファ修正モジュール220は、２メガバイト（２MB）に等しい図３の記憶モジュール315などのメモリ内にデータのブロックを配分することにより、バッファ110のサイズを修正710することができる。
【００７４】
運動センサ・モジュール120は、MSSD 115の運動を感知715する。一つの実施例においては、運動センサ・モジュール120は、シリコン基板上に作製された一以上の片持ち梁また同様のものなどの微小機械式運動センサ（micro mechanical motion sensor）からなり、運動センサ・モジュール120は、回路を構成する一以上の梁からその運動を計算する。他の実施例においては、運動センサ・モジュール120はレーザ・ジャイロスコープからなり、レーザ・ジャイロスコープの位置の二次導関数からMSSD 115の運動を計算する。
【００７５】
方向モジュール210は、MSSD 115の運動が閾値運動を超えているかどうかを決定720する。一つの実施例においては、MSSD 115の運動が閾値運動を超えるときは、運動センサ・モジュール120は方向モジュール210を修正する。他の実施例においては、運動センサ・モジュール120は、方向モジュール210に運動データを通信し、方向モジュール210は、運動データ値が閾値運動値を超えるときはMSSD 115の運動が閾値運動を超えることを決定720する。
【００７６】
方向モジュール210が、MSSD 115の運動が閾値運動を超えることを決定720するときは、方向モジュール210は、MSSD 115に向うことになっているデータをバッファ110に書き込む730。一つの実施例においては、方向モジュール210は、中間ドライバ620として構成され、MSSD 115に向うことになっている書き込みデータを阻止する。方向モジュール210は、書き込みデータをバッファ110に方向転換することができ、データがMSSD 115に書き込まれたことをソフトウェア・アプリケーション605に通知する。
【００７７】
一つの実施例においては、書き込みモジュール215は、MSSD 115の運動が閾値運動を超えているかどうかを決定735する。運動センサ・モジュール120は、MSSD 115の運動が閾値運動を超えるときに書き込みモジュール215を修正することができる。他の実施例においては、運動センサー・モジュール120は、書き込みモジュール215に運動データ通信し、書き込みモジュール215は、運動データ値が閾値運動値を超えるときに、MSSD 115の運動が閾値運動を超えることを決定735する。MSSD 115の運動が閾値運動を超えないときは、書き込みモジュール215は、バッファ110からMSSD 115にデータを書き込み740、方法700は終了する。MSSD 115の運動が閾値運動を超えるときは、書き込みモジュール215は、MSSD 115の運動が閾値運動を超えるかどうかを決定するためにループを形成する。
【００７８】
方向モジュール210がMSSD 115の運動が閾値運動を超えないことを決定するときは、方向モジュール210はMSSD 115にデータを書き込み725、そして方法700は終了する。方法700は、MSSD 115の運動が閾値運動を超えるならば、バッファ110にデータを書き込む間に、MSSD 115の運動が閾値運動を超えないときに、MSSD 115にデータを書き込み、このようにして、MSSD 115に対する運動関連損傷の可能性を低減する。
【００７９】
本発明は、その精神と基本的な特徴から逸脱することなく、他の特定の形態において実施することができる。記載された実施例は、全ての観点において例示としてのみ判断されるものである。それ故、本発明の範囲は、前述の説明によるよりも、添付の特許請求の範囲によって示される。特許請求の範囲と等価な意味と範囲内で生ずる全ての変更は、その範囲内に包含されるものである。
【産業上の利用可能性】
【００８０】
本発明は、MSSD 115の運動が閾値運動を超えるときにMSSD 115に向うことになっている書き込みデータをバッファリングすることを第一とする。更に、本発明は、MSSD 115が運動中の間にMSSD 115に書き込むデータが増大することにより、MSSD 115 に対する運動関連損傷を低減することができる。
【図面の簡単な説明】
【００８１】
【図１】本発明のコンピュータ・デバイスの一実施例を示す概ブロック図である。
【図２】本発明の書き込みバッファリング装置の一実施例を示す概ブロック図である。
【図３】本発明のモバイル・コンピュータ・デバイスの一実施例を示す概ブロック図である。
【図４】本発明によるラップトップ・コンピュータの一実施例を示す斜視図である。
【図５】本発明によるHDDの一実施例を示す斜視図である。
【図６】本発明によるソフトウェア・スタックの一実施例を示す概ブロック図である。
【図７】本発明の書き込みバッファリング方法の一実施例を示す概フローチャートである。
【符号の説明】
【００８２】
１００  コンピュータ・デバイス
３００  モバイル・コンピュータ・デバイス
４００  ラップトップ・コンピュータ
５００  HDD
５０５  円盤状記録媒体
５１０  スピンドル
５１５a  上側アーム
５１５b  下側アーム
５２５  ヘッド
５３０  加速度計
６００  ソフトウェア・スタック
７００  書き込みバッファリング方法
【図１】
2007141239.tif 000003
【図２】
2007141239.tif 000004
【図３】
2007141239.tif 000005
【図４】
2007141239.tif 000006
【図５】
2007141239.tif 000007
【図６】
2007141239.tif 000008
【図７】
2007141239.tif 000009