JP2007507776A - コンピュータ装置におけるデフラグを用いたメモリ管理 - Google Patents

コンピュータ装置におけるデフラグを用いたメモリ管理 Download PDF

Info

Publication number
JP2007507776A
JP2007507776A JP2006530566A JP2006530566A JP2007507776A JP 2007507776 A JP2007507776 A JP 2007507776A JP 2006530566 A JP2006530566 A JP 2006530566A JP 2006530566 A JP2006530566 A JP 2006530566A JP 2007507776 A JP2007507776 A JP 2007507776A
Authority
JP
Japan
Prior art keywords
thread
defragmentation
memory
computer device
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006530566A
Other languages
English (en)
Inventor
デニス メイ,
ジョナサン ハリス,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Symbian Software Ltd
Original Assignee
Symbian Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of JP2007507776A publication Critical patent/JP2007507776A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

コンピュータ装置の、ランダムアクセスメモリ等の物理メモリに保持されたデータは、システムオペレーティングシステム・コードのヌルスレッドの実行がスケジュールされた場合にデフラグされる。当該ヌルスレッドは、システム内の他のスレッドが実行の準備を行っていない場合に、コンピュータ装置を省電力状態へ移行させるために用いられる。

Description

本発明は、コンピュータ装置におけるメモリ管理の方法に関する。
ここで用いられるコンピュータ装置という用語は、あらゆる形態の電子機器を含むように拡張的に解釈され、任意の形状因子を有する静止画及び動画に係るデジタルカメラ等を含むデータ記録装置と、携帯端末及びパーソナルコンピュータを含むあらゆる種類及び形態のコンピュータと、任意の形状因子を有する通信装置とを含む。ただし、任意の形状因子を有する通信装置には、携帯電話と、高機能電話と、通信、画像記録と再生との少なくともいずれか、及び、計算機能を単一装置内で結合するコミュニケータと、及び、他の形態の無線又は優先の情報機器とが含まれる。
ほとんどのコンピュータ装置はオペレーティング・システムの制御の下で動作するようにプログラムされている。オペレーティングシステムは、装置の中央演算ユニットに供給されるコード形式の一連の命令によって、コンピュータ装置を制御する。これらの命令は、オペレーティングシステムによってスケジュールされた、実行に係る半自律的な基本ユニットと見なすことができる。これらの実行に係る基本ユニットのそれぞれはスレッドとして知られており、計算装置において実行されるプロセスは常に1以上のスレッドを含む。
典型的なオペレーティングシステムは、コンピュータ装置により実行されるべき多様なタスクを制御するために、多くの異なるスレッドをスケジュールする。"ヌル"スレッド又は”アイドル”スレッドとしばしば呼ばれる、これらのスレッドの一つは、実行する資格がある(実行する準備がある)スレッドが他に存在しない、即ち、システムが実質的ににアイドル(待機状態)にある場合にのみ動作するという点で、他の全てのスレッドと区別される。あるシステムにおいては、アイドルスレッドは、コンピュータ装置の起動時にオペレーティングシステムによって配列される最初のスレッドである。以下に、詳細に説明するように、オペレーティングシステムは多数のコンポーネントから構成されているとみなすことができ、これらのコンポーネントのいくつかは、他のコンポーネントと比べて、コンピュータ装置のハードウェア資源に対して特権的なアクセスを有している。1以上のこれらの特権的なコンポーネントは、一般的にオペレーティングシステムのカーネルとして知られているものを構成し、あるオペレーティングシステムにおいては、ヌルスレッドは、カーネルの初期化の第1段階に責任を有する。これらの初期化の段階の後、ヌルスレッドは、通常、他のスレッドが実行する準備にない場合においてのみ、オペレーティングシステムによって再びスケジュールされる。
本発明によれば、他のスレッドが実行する準備にない場合にヌルスレッドがスケジュールされるため、コンピュータ装置内の、又は、それと関連して用いられる、RAM又はディスク記憶装置等の、コンピュータ装置の物理的な記憶資源をデフラグ(defragmentation)するタスクは、ヌルスレッドの実行の間、特別な利点をもって実行することが可能である。
本発明の第1の側面によれば、コンピュータ装置におけるメモリ資源を管理する方法が提供される。この方法は、コンピュータ装置のメモリ資源に保持されたデータのデフラグを開始するため、コンピュータ装置が省電力モードを採用するように、オペレーティングシステム・コードのスレッドを使用することを備えている。
本発明の第2の側面によれば、第1の側面に係る方法に基づいて制御されるように構成されたコンピュータ装置が提供される。
本発明の第3の側面によれば、第1の側面に係る方法に基づいて、コンピュータ装置におけるメモリ管理を実行するためのコンピュータプログラムが提供される。
以下、特定の実施形態を参照して、更なる例により、本発明を説明する。
多くの異なる形態のコンピュータ装置が利用可能であり、ある装置は、例えば、メモリ資源が小さい、CPUが遅い等のように、物理資源が限られている。物理資源が限られたコンピュータ装置の一つは、高機能電話の形態を有する無線情報機器である。これは、基本的には、高機能電話は、物理的なサイズが比較的小さい携帯電話上で実行することが意図されたコンピュータ装置であり、従って、装置の広範な種類の機能を実行するために必要とされる、物理資源を収容するためのスペースが、非常に限られたものしかないためである。装置に電力を供給する電力資源もサイズが非常に小さいが、それでも、装置を動作可能にし、又は、比較的長期間スタンバイモードを維持できるようにする必要がある。典型的な高機能電話は、CPU、読み出し専用メモリ(ROM:read only memory)、ユーザデータの記憶のためのフラッシュメモリ、ランダムアクセス(書き込み可能)メモリ(RAM:random access memory)、及び、入出力装置を有する。
しかしながら、この種のコンピュータ装置は、物理構成についても、処理の方法についても、思うように使用できる物理資源を非常に多く有している、PCやワークステーション等の装置と、非常に対照をなしている。例えば、高機能電話のCPUは実行速度が遅い。さらに、システムROMは全てのオペレーティングシステムを保持する必要がある。これに対して、PCにおいては、ブートストラップ・ローダとBIOSのみがROMに格納されており、オペレーティングシステムとアプリケーションはハードディスクから読み出される。さらに、典型的な高機能電話上のシステムRAMの容量は、8MB又は16MB程度に限られている。また、ディスクドライブも存在しないため、装置の処理の間、ディスクを使用した仮想メモリを使用することもできない。従って、オペレーティングシステム・ソフトウェアは、コードのサイズが非常にコンパクトであり、動作が非常に効率的であり、制限された電源からくみ出す電力の消費を最小限にしなければならない。
ほとんどのコンピュータ装置は同時に一つのプログラム命令しか実行することができないが、高速に動作するため、同時に、多くのプログラムを実行して多くのアプリケーションを提供しているように見える。このため、オペレーティングシステムは、選択された各プログラムに装置上で実行する"順番"を割り当てるが、他のプログラムに装置上で実行する順番が割り当てられている間は、選択されたプログラムが待機するように制御する。これらのプログラムのそれぞれは、オペレーティングシステムからは、コンピュータ装置の所定の資源が特定され、監視されるタスクとして見える。
オペレーティングシステムは、装置のメモリに格納された、例えば、表計算ソフト、ワードプロセッサ、或いは、ウェブブラウザ・プログラム等の、各プログラムを、別々のタスクとして管理し、通常は、装置のユーザが、タスク一覧上の項目を見て操作することができるようにする。プログラムが、ファイルを読み込んだり、遠隔の受信者にメッセージを送信する等の、入出力(I/O:input/output)要求を開始した場合、通常はスレッドが生成される。スレッドが生成される時間は、オペレーティングシステム毎によって異なりうる。例えば、英国、ロンドンのシンビアン・リミテッドより提供されているSymbian OS(商標)オペレーティング等の、あるオペレーティングシステムは、非同期のI/Oを用いている。これは、I/O要求を行うスレッドは、その要求が進行中においても実行を継続することが許され、その要求が完了したときに通知されることを意味する。一般的に、新しいスレッドが生成されるのは、プログラムにより実行される処理が、複数のユニットに分割され得る場合である。ここで、当該分割は、これらのユニットが、少なくとも概念的には、並列的に実行するのに有利になるようになされる。例えば、アプリケーションは、ユーザインタフェース(UI:user interface)の処理のために一つのスレッドを用い、ユーザにより開始された長期間実行する処理のために他のものを使用するだろう。このようにして、長期間実行する処理が継続している間においても、UIは応答することが可能である。
スレッドの一部として保持されたデータは、例えば、特定のI/O処理が完了したときに、プログラムが適切な場所に再び入ることができるようにする。一方で、そのプログラムの他の同時使用が、他のスレッド上で維持される。コンピュータ装置用の現在のオペレーティングシステムのほとんどは、マルチタスクとマルチスレッドの両方に対応している。これらは、プログラムのプロセスにおいてもマルチスレッドを提供しており、これにより、システムにおいて、各スレッドに係る新しいプロセスを生成するオーバーヘッドが節約される。
スレッド情報は、特別なデータ領域に格納し、そのデータ領域のアドレスを、例えば、コンピュータ装置のスタックポインタ等の、レジスタに書き込むことにより維持される。オペレーティングシステムは、スレッドに割り込みがかけられた場合にレジスタの内容を保存し、スレッドに再び制御が与えられた場合にそれをリストア(復元)する。
コンピュータ装置のオペレーティングとそのアプリケーションは、多様な形式のコンポーネントに、これらのコンポーネント間における異なる境界によって、分割されるものとして捉えることが可能である。これらのコンポーネントのあるものは一般にカーネルとして参照され、これらのコンポーネントはシステムのランダムアクセスメモリ(RAM:Random Access Memory)や装置の他のハードウェア資源を管理するために用いられる。カーネルは、コンピュータ装置に格納された他の全てのソフトウェア資源がこれらの資源にアクセスできるように、提供及び制御を行い、オペレーティングシステムの他の全ての部分のために所定のサービスを提供する。このため、カーネル・コンポーネントは、ユーザのコマンドと交信するオペレーティングシステムのアウター(outer)又はシェル(shell)コンポーネントと対照をなしている。
コンピュータ装置のオペレーティングシステムは、典型的には、カーネル内で使用するための複数の異なったスレッドを生成する。例えば、Symbian OS(商標)オペレーティングシステムの実施形態の一つは、コンピュータ装置の起動時に5つのカーネル・スレッドを生成し(拡張によってこれよりも多くが生成されることもある)、これらのカーネル・スレッドは多様なタスクを実行する。このようなスレッドの一つは"ヌル"スレッドであり、Symbian OS(商標)においては、これは、起動時にコンピュータ装置で始めに実行するスレッドとなりうる。このオペレーティングシステムにおいては、ヌルスレッドは、オペレーティングシステムのカーネルの初期化の第1段階に関与する。
ヌルスレッドの初めの主な仕事は、プロセッサのリセットの直後に存在するシングルスレッドの実行モデルを、カーネルが完全に初期化されたときに存在するマルチスレッドの実行モデルへ移行させることである。次に、コンピュータ装置のメモリ管理ユニット(MMU:memory management unit)が初期化され(これにより動的なメモリ割り当てが可能となる)、カーネルチャンク(kernel chunks)が生成される(これにより新しいカーネル・オブジェクトとスレッドのスタックが生成されうる)。最後に、スーパーバイザー(監視)・スレッドが生成され、実行するように制御される。しかし、ヌルスレッドの有する優先権は、全てのカーネルスレッドの中で最も低いため、初期化シーケンスは、スーパーバイザー・スレッドの生成の直後にリスケジュールされ、続いて、初期化がスーパーバイザー・スレッドの中において継続する。
スーパーバイザー・スレッドの生成の後、他のスレッドが実行する準備をしていない場合にのみ、ヌルスレッドは、コンピュータ装置の制御を再び取得する。一般的に、ヌルスレッドは、「割り込み待機」型命令を実行しながら、単に、絶えずループする。ただし、「割り込み待機」型命令は、それを受信した場合に中央演算ユニット(CPU:central processing unit)を省電力又はアイドルモードに変化させることによって、ハードウェアの割り込みが行使されるまで命令の実行が停止されるものである。指定されたインターバルの間にユーザの活動が開始されなかった場合、ヌルスレッドは全てのコンピュータ装置を停止するためにも用いられ得る。この電力節約は、比較的小さいバッテリ電力源に基づいて長期間動作することが要求される、高機能電話において特に有益である。
上述のように、PC装置においては、装置のオペレーティングシステムとシステムプログラムの大部分は、ハードディスクに格納される。しかし、PCのコンピューティング分野においては、ファイルを繰り返し使用することに伴い、ハードディスクに保持されたファイルのフラグメンテーション(断片化)が発生することが知られている。本質において、ディスク上で単一のファイルの実体として生成されたファイルは、ディスク上で連続的に格納されていない複数のファイルセグメントを有するファイルに、少しずつ変換されていく。即ち、ファイルの断片化は、繰り返し使用の結果として発生する。そのような断片化されたファイルが使用するために再び読み込まれた場合、オペレーティングシステムは、まず、断片化された各セグメントを探索し、ファイルが最終的に使用の準備状態になる前にそれらを一緒にして組み立てなければならない。この処理は時間がかかり、システムのパフォーマンスを下げ、ハードディスク上のメモリ空間を消費してしまう。従って、格納されたファイルの断片化は、プロセッサの速度やハードディスクの記憶容量等の、ハードウェア資源が比較的限られたPCにおいては、耐えられないものになる。
PC装置においては、ハードディスク自身に格納されうる、添付されたディスク・デフラグ(デフラグメンテーション)・プログラムを定期的に用いることで、この問題を軽減することができる。このプログラムが実行された場合、デフラグ(細分化の解消)が再び行われることにより、ハードディスクにおけるファイルの連続的な記憶がもたらされる。従って、全てのファイルコンテンツが、連続していない複数のファイル・フラグメントとして保持されている状況と比較して、オペレーティングシステムは、全てのファイルコンテンツを、より高速に発見し、読み出すことができる。特に、ファイルサーバや頻繁にアクセスされるワークステーションにおいては、パフォーマンスの上昇が100%にまで至ることもあり得る。
しかしながら、高機能電話においては、装置を制御するために利用可能な全てのメモリ資源は、PC装置において利用可能なものと比べて限られている。特に、ハードディスク・ドライブは存在しない。なぜなら、ドライブを制御するための電力消費によって、比較的小さな内蔵バッテリの電源に基づいてその装置が動作する期間が非常に限られたものになるため、実際上、その装置が使い物にならないと考えられるためである。従って、高機能電話においては、システムプログラムは、通常、フラッシュメモリ等の不揮発性固体メモリに保持される。これは、電力が失われた場合や装置が停止された場合においても、メモリの内容が失われないためである。さらには、装置のフラッシュメモリはNANDのフラッシュメモリで構成される。これは、この種のメモリにより示される、処理速度や、比較的低消費電力の観点に基づくものである。また、NANDのフラッシュメモリは、比較的低コストという更なる利点も有する。
装置の動作中、上述のように記憶容量が比較的限られている、装置のダイナミックRAMは、2つの目的に用いることができる。一つ目は、ダイナミックRAMが、動作中のプログラムや装置のオペレーティングシステムの一時的な記憶領域として用いられるというものである。これは、NANDのフラッシュメモリが用いられる場合に、フラッシュメモリからコピーするために必要となり、書き込み処理における実行をサポートしない。これは、この目的のためにPC上で利用可能なハードディスク記憶装置と非常に対照をなしている。
二つ目は、ダイナミックRAMが、装置の動的なメモリとしても機能するというものである。従って、本質的には、比較的記憶容量の小さいRAMは、PC上に利用可能な比較的大容量の動的なメモリとしてだけでなく、PCにおいて動的なメモリを補完するために用いられるハードディスク型の仮想メモリの代替としても機能しなければならない。
従って、高機能電話においては、この比較的乏しい資源に対して非常に高い需要が存在するということが理解される。通常、オペレーティングシステムは、各目的について必要とされる量のRAMだけが用いられるように設定されるが、この比較的乏しいメモリ資源の使用を最適化するために、オペレーティングシステムは、ある目的について一定量のRAMを、別の目的について一定量のRAMを、事前に割り当てない。
高機能電話において広く用いられているRAMの種類はMobile SDRAMである。この種のSDRAMは、複数(通常3つ)のブロックに分けられ、選択的に無効化が可能な自己リフレッシュ(self-refresh)の機能を有する。例えば、8MBのMobile SDRAMは、一般的に、2MB、4MB、或いは、8MBを自己リフレッシュすることができるだろう。メモリのリフレッシュは電力を消費し、その消費量はリフレッシュされるメモリのサイズに依存する。これより、8MBのメモリをリフレッシュする場合には、2MBのメモリをリフレッシュするよりもかなり多くの電力を消費する。
ファイルはページフレームとしてSDRAMに格納され、典型的な1つのページフレームのサイズは4KBとなりうる。しかし、PCのハードディスクに保持されたファイルと同様に、SDRAM内においてページフレームの断片化が発生する。このため、アプリケーションの実行に用いられる1以上のページフレームがSDRAMの1つのブロックに保持され、そのアプリケーションの実行のための他のページフレームがSDRAMの他の1以上のブロックに保持されることがある。従って、容量が8MBで3つのブロックに分割されたSDRAMを例にとると、RAMの実際の総使用量が2MB未満であるが、断片化に起因してページフレームが分散しているため、使用中のRAMが3つのブロック全てに広がっている場合、8MBのRAM全てについてリフレッシュする必要がある。これに対して、使用中のページフレームが、それらが連続するようにデフラグされた場合、リフレッシュする必要があるのは2MBのRAMのみである。リフレッシュ中に消費される電力量はリフレッシュされるメモリのサイズに依存するため、使用中のRAMの全てが物理アドレス領域の最初の2MBに存在するように、RAMに保持されたページフレームをデフラグすることが、有利であるということが理解されるだろう。この場合、システムがアイドル状態のときに、残りのRAMをリフレッシュする必要がないため電力が節約され、従って、高機能電話の待ち受け時間が延長される。
本発明によれば、装置がヌルスレッドにより制御される場合に、RAMのデフラグが発生するように構成されているため、システムパフォーマンスに影響を与えない。
実行する準備があると検出される他のスレッドは存在しないため、ヌルスレッドは、装置が省電力モードを採用するようにスケジュールされる。ヌルスレッドは、通常、この省電力モードにおいて装置のCPUをスタンバイ状態に設定するため、これは実現可能である。なぜなら、装置上で実行する必要があるのはヌルスレッドだけであるからである。しかし、本発明によれば、ヌルスレッドがスケジュールされた場合、CPUは当初はスタンバイ状態に設定されていない。代わりに、必要な場合は、システムRAMはデフラグされる。CPUを含む装置の物理資源はこのタスクに専念することが可能であるため、これは非常に効率的に実現することが可能である。従って、RAMのデフラグは比較的高速に実行することができ、システムパフォーマンスに影響を与えない。ヌルスレッド以外の他のスレッドが実行の準備に入る前にデフラグが完了した場合は、装置のCPUはスタンバイ状態に移ることができる。デフラグが完了しておらずハードウェアの割り込みがなされた場合、CPUはスタンバイ状態へ移らずに、実行する準備のある新しいスレッドの処理へ戻る。
一度開始した実際のデフラグの工程は、任意の便利な処理に基づいて実現してもよい。例えば、SDRAMは、物理フレームページの形式でデータを格納するが、これはメモリ空間の全てのブロックにおいて保持されてもよい。従って、メモリ空間の高次の物理アドレスに格納されたデータは低次の物理アドレスの一つに移動され、この処理は、各ページのデータを他と独立に移動することにより、使用中の全てのフレームページが物理アドレス空間の最下部にフレームページの連続するシーケンスを形成するまで繰り返されるだろう。
ヌルスレッドは、デフラグを実行するヌルスレッドの一部として動作する追加コードを含むように構成することができる。あるいは、ヌルスレッドは、デフラグを実行する、更なる独立したコードシーケンスを開始するコードを含んでもよい。さらに、ページフレームのデフラグが、ヌルスレッドの実行中に選択的に発生するように構成することができる。即ち、デフラグを行う前にフレームページを保持するために必要なブロックの数と比べて、少ない数のメモリ中のブロックにページを保持することが可能な場合にのみ、デフラグ処理が発生するように構成することができる。例えば、上述の8MBのメモリ装置の場合、実行するためにヌルスレッドが配列されている状況において、使用する全てのシステムRAMが2.5MBであり、かつ、これがメモリ空間の初めの4MBに全て含まれている場合、使用するRAMは初めの2MBのブロックに限られないため、RAMのデフラグは開始されない。従って、たとえ、以前にデフラグ処理が実行された場合においても、全メモリ空間の初めの4MBが自己リフレッシュを継続するだろう。
以上、特にRAMメモリのデフラグについて、本発明を説明した。しかし、この方法は、ディスクドライブを含む、他の種類のメモリ装置のデフラグについても適用可能である。さらに、本発明に係る方法は、ダイナミックRAM、NOR及びNANDのフラッシュメモリを含む、あらゆる種類の読み出し/書き込みメモリにも用いることができることは明らかである。
以上、特定の実施形態を参照して本発明を説明したが、特許請求の範囲に定義された本発明の技術的範囲において適宜修正を行うことが可能であることは言うまでもない。

Claims (10)

  1. コンピュータ装置におけるメモリ資源を管理する方法であって、
    実行するように準備されたスレッドが他に存在しない場合に、前記コンピュータ装置におけるメモリ資源に保持されたデータのデフラグの開始を実行するように構成された、オペレーティングシステム・コードのスレッドを用いる工程
    を備えることを特徴とする方法。
  2. 前記スレッドは、前記データの前記デフラグを実行するためのコードを含むように構成されていることを特徴とする請求項1に記載の方法。
  3. 前記スレッドは、前記データの前記デフラグを他のコードに実行させるためのコードを含むように構成されていることを特徴とする請求項1に記載の方法。
  4. 前記スレッドは、
    前記コンピュータ装置が、該コンピュータ装置の中央演算装置をスタンバイ状態へ移行させることにより、低消費電力状態を採用するための、オペレーティングシステム・コードのスレッドを含む
    ことを特徴とする請求項1乃至3のいずれか1項に記載の方法。
  5. 前記スレッドは、
    前記コンピュータ装置の起動時において、最初に実行するスレッドを含む
    ことを特徴とする請求項1乃至4のいずれか1項に記載の方法。
  6. 前記メモリ資源は、ランダムアクセスメモリを備える
    ことを特徴とする請求項1乃至5のいずれか1項に記載の方法。
  7. 前記ランダムアクセスメモリは、複数のブロックを備えるように選択され、
    前記ブロックの少なくとも一つは、他の前記ブロックとは独立にリフレッシュ可能であり、
    前記データのデフラグは、
    前記データが、デフラグの後に、デフラグの前と比べて少ない数のブロックにおいて保持されうる場合にのみ、実行されるように構成される
    ことを特徴とする請求項6に記載の方法。
  8. 前記コンピュータ装置は、無線情報機器を備えるように選択される
    ことを特徴とする請求項1乃至7のいずれか1項に記載の方法。
  9. 請求項1乃至8のいずれか1項に記載の方法に基づいて動作するようにプログラムされたコンピュータ装置。
  10. コンピュータ装置を、請求項1乃至8のいずれか1項に記載の方法に基づいて動作させるコンピュータソフトウェア。
JP2006530566A 2003-10-04 2004-09-29 コンピュータ装置におけるデフラグを用いたメモリ管理 Withdrawn JP2007507776A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0323302A GB2406668B (en) 2003-10-04 2003-10-04 Memory management in a computing device
PCT/GB2004/004152 WO2005036395A1 (en) 2003-10-04 2004-09-29 Memory management with defragmentation in a computing device

Publications (1)

Publication Number Publication Date
JP2007507776A true JP2007507776A (ja) 2007-03-29

Family

ID=29415554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006530566A Withdrawn JP2007507776A (ja) 2003-10-04 2004-09-29 コンピュータ装置におけるデフラグを用いたメモリ管理

Country Status (6)

Country Link
US (1) US20070294550A1 (ja)
EP (1) EP1668506A1 (ja)
JP (1) JP2007507776A (ja)
CN (1) CN100538641C (ja)
GB (1) GB2406668B (ja)
WO (1) WO2005036395A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010125852A1 (ja) * 2009-04-27 2010-11-04 株式会社日立製作所 半導体装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253682A1 (en) 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning
GB2426360A (en) * 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
US20070180187A1 (en) * 2006-02-01 2007-08-02 Keith Olson Reducing power consumption by disabling refresh of unused portions of DRAM during periods of device inactivity
JP2007219998A (ja) * 2006-02-20 2007-08-30 Fuji Xerox Co Ltd 記憶制御装置
DK200601008A (da) * 2006-07-22 2008-01-23 Warp Disk Software V Carsten S Filterdriverdefragmentering
US20080109670A1 (en) * 2006-11-06 2008-05-08 Reino Johansson Power control for memories
US8311990B2 (en) 2007-04-16 2012-11-13 Michael Martinek Fragmented data file forensic recovery system and method
US8200999B2 (en) * 2008-08-11 2012-06-12 International Business Machines Corporation Selective power reduction of memory hardware
US8713241B2 (en) * 2008-08-27 2014-04-29 Wireless Silicon Group, Llc Method and apparatus for an active low power mode of a portable computing device
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
GB2466264A (en) * 2008-12-17 2010-06-23 Symbian Software Ltd Memory defragmentation and compaction into high priority memory banks
US8255928B2 (en) * 2009-02-19 2012-08-28 International Business Machines Corporation Automated termination of selected software applications in response system events
US20120047504A1 (en) * 2010-08-17 2012-02-23 Robert Paul Morris Methods, systems, and computer program products for maintaining a resource based on a cost of energy
US8756474B2 (en) * 2011-03-21 2014-06-17 Denso International America, Inc. Method for initiating a refresh operation in a solid-state nonvolatile memory device
WO2012160405A1 (en) * 2011-05-26 2012-11-29 Sony Ericsson Mobile Communications Ab Optimized hibernate mode for wireless device
WO2014136405A1 (ja) * 2013-03-04 2014-09-12 Necカシオモバイルコミュニケーションズ株式会社 電子機器、電源供給制御方法、及びプログラム
US20150067356A1 (en) * 2013-08-30 2015-03-05 Advanced Micro Devices, Inc. Power manager for multi-threaded data processor
EP3113026B1 (en) * 2015-06-29 2019-07-24 aicas GmbH Automatic memory management using a memory management unit
US10606501B2 (en) * 2015-12-04 2020-03-31 International Business Machines Corporation Management of paging in compressed storage
US20190065088A1 (en) * 2017-08-30 2019-02-28 Micron Technology, Inc. Random access memory power savings
CN107506496B (zh) * 2017-09-28 2021-10-22 北京小米移动软件有限公司 碎片整理方法、装置及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0434628A (ja) * 1990-05-31 1992-02-05 Toshiba Corp メモリ制御装置
JP2000172386A (ja) * 1998-12-04 2000-06-23 Toshiba Corp コンピュータシステムおよびメモリ電源管理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04211844A (ja) * 1990-01-19 1992-08-03 Texas Instr Inc <Ti> ファイルシステムディフラグメント化装置及び方法
GB2308471B (en) * 1995-12-22 1999-10-20 Nokia Mobile Phones Ltd Memory defragmentation
US5963982A (en) * 1997-07-02 1999-10-05 Webtv Networks, Inc. Defragmentation of stored data without pointer indirection
US6205529B1 (en) * 1997-09-25 2001-03-20 Emc Corporation Method and apparatus for defragmenting a storage device using a copy function in the device control logic
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
FR2799285B1 (fr) * 1999-08-18 2008-09-26 Giesecke & Devrient Gmbh Ensemble de memoire pour un support de donnees, et procede pour la gestion de memoires
US6453403B1 (en) * 2000-05-19 2002-09-17 Sun Microsystems, Inc. System and method for memory management using contiguous fixed-size blocks
US6571261B1 (en) * 2000-07-13 2003-05-27 International Business Machines Corporation Defragmentation utility for a shared disk parallel file system across a storage area network
US7072637B2 (en) * 2002-07-18 2006-07-04 Nokia Corporation Method and system for arranging frequently accessed data to optimize power consumption
US20040148476A1 (en) * 2003-01-28 2004-07-29 Altare William Christopher Performance-predicated automatic defragmentation of hard disks, particularly for non-pc mobile digital devices including music recorder/players

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0434628A (ja) * 1990-05-31 1992-02-05 Toshiba Corp メモリ制御装置
JP2000172386A (ja) * 1998-12-04 2000-06-23 Toshiba Corp コンピュータシステムおよびメモリ電源管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010125852A1 (ja) * 2009-04-27 2010-11-04 株式会社日立製作所 半導体装置

Also Published As

Publication number Publication date
CN100538641C (zh) 2009-09-09
EP1668506A1 (en) 2006-06-14
GB2406668B (en) 2006-08-30
GB2406668A (en) 2005-04-06
US20070294550A1 (en) 2007-12-20
CN1864138A (zh) 2006-11-15
WO2005036395A1 (en) 2005-04-21
GB0323302D0 (en) 2003-11-05

Similar Documents

Publication Publication Date Title
JP2007507776A (ja) コンピュータ装置におけるデフラグを用いたメモリ管理
JP2023055992A (ja) メモリ機器のための拡張利用範囲
US9128845B2 (en) Dynamically partition a volatile memory for a cache and a memory partition
US10956323B2 (en) NVDIMM emulation using a host memory buffer
EP2254022A1 (en) Dual media storage device
JP5385347B2 (ja) メイン・メモリのフリー・メモリ量を拡大する方法およびコンピュータ
JP2009503627A (ja) コンピュータ装置におけるメモリ管理
KR102434170B1 (ko) 하이브리드 메모리 시스템
JP5422652B2 (ja) フラッシュメモリ記憶装置における動的メモリ割当てに起因する自己エビクションの回避
CA2541930A1 (en) Efficient system management synchronization and memory allocation
US8930732B2 (en) Fast speed computer system power-on and power-off method
US11360884B2 (en) Reserved memory in memory management system
US10657068B2 (en) Techniques for an all persistent memory file system
US10528462B2 (en) Storage device having improved write uniformity stability
KR20140082734A (ko) 부트 데이터 로드
KR102314138B1 (ko) 모바일 장치 및 모바일 장치의 데이터 관리 방법
US20190042415A1 (en) Storage model for a computer system having persistent system memory
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
WO2016138785A1 (zh) 一种运行进程的方法及装置
KR102443593B1 (ko) 하이브리드 메모리 시스템
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
CN112654965A (zh) 动态模块的外部分页和交换
JP2009258925A (ja) 計算機システムおよび計算機システムのメモリ管理方法
KR102563648B1 (ko) 멀티 프로세서 시스템 및 그 구동 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070921

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090309

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090319

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101207

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101216