JP2014522023A - メモリタイプ間でデータを移動させるための技術 - Google Patents

メモリタイプ間でデータを移動させるための技術 Download PDF

Info

Publication number
JP2014522023A
JP2014522023A JP2014518949A JP2014518949A JP2014522023A JP 2014522023 A JP2014522023 A JP 2014522023A JP 2014518949 A JP2014518949 A JP 2014518949A JP 2014518949 A JP2014518949 A JP 2014518949A JP 2014522023 A JP2014522023 A JP 2014522023A
Authority
JP
Japan
Prior art keywords
memory
volatile memory
data
page
location
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.)
Granted
Application number
JP2014518949A
Other languages
English (en)
Other versions
JP5827403B2 (ja
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2014522023A publication Critical patent/JP2014522023A/ja
Application granted granted Critical
Publication of JP5827403B2 publication Critical patent/JP5827403B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

2レベルのページング機構。第1のレベルは、プロセスに関して、再利用可能なメモリロケーションからデータを収集し、それらのデータを単一のコンテナ内に圧縮する。第2のレベルは、その圧縮コンテナのコンテンツを、スワップファイルに送り、対象とするメモリデバイスに、最適のI/O操作を使用することができる。第1ページャーに、圧縮コンテナ内で要求されたデータを検索させ、次いで、第2ページャーに、スワップファイルから、対応するデータを回収させることによって、オンデマンド式のページングが可能となる。
【選択図】 なし

Description

本発明の実施形態は、メモリタイプ間でのデータの転送に関する。より詳細には、本発明の実施形態は、揮発性メモリから不揮発性メモリにデータを移動させるための技術に関する。
電子デバイスは、有限量のメモリを含む。揮発性メモリのタイプは、一般的には、不揮発性メモリよりも高速である。それゆえ揮発性メモリは一般的に、メモリレイテンシを最小にすることが必要とされるアプリケーションに使用される。しかしながら、揮発性メモリは有限であるため、他のアプリケーション又はプロセスが追加のメモリロケーションを利用できるようにするために、揮発性メモリからのデータ削除が必要となる状況が存在し得る。
第1メモリと第2メモリとの間のデータ移動の概念図である。 第1メモリと第2メモリとの間のデータ移動に関する技術の一実施形態の流れ図である。 第1メモリから第2メモリにデータを転送するための技術の一実施形態の流れ図である。 第1メモリと第2メモリとの間のデータ移動を管理するためのエージェントの一実施形態のブロック図である。 モバイルデバイスの例示的実装のブロック図である。
以下の説明では、数多くの具体的な詳細が記載される。しかしながら、本発明の実施形態は、これらの具体的な詳細を使用することなく実施することができる。他の例では、本説明の理解を不明瞭にすることがないように、周知の回路、構造、及び技術は、詳細には示されていない。
限られた量の揮発性メモリ(例えば、ランダムアクセスメモリ、RAM)を有するデバイス上では、1つのプロセス又はアプリケーションのために使用されるメモリロケーションを、別のプロセス又はアプリケーションに割り当てることが望ましいか、若しくは更に必要とされる場合もある。例えば、より重要なアプリケーションは、それほど重要ではないアプリケーションを犠牲にして、より多くのメモリロケーションを必要とする場合がある。
一実施形態では、不揮発性メモリがソリッドステートメモリデバイスである場合、そのデバイスに対する劣化を最小限に抑え、読み取り/変更/書き込みの状況を回避することが望ましい場合がある。一実施形態では、プロセス又はアプリケーションは、揮発性メモリからデータをエビクションさせ、不揮発性メモリに移動させた後に、そのデータにアクセスすることが可能となる。
一実施形態では、2レベルのページング機構が使用される。第1のレベルは、特定のプロセスに関して、再利用可能なメモリロケーションからページを収集し、それらのページを単一のコンテナ内に圧縮する。第2のレベルは、その圧縮コンテナのコンテンツを、スワップファイルに送り、対象とするメモリデバイスに、最適なI/O操作を使用することができる。第1ページャーに、圧縮コンテナ内で、要求されたページを検索させ、次いで、第2ページャーに、スワップファイルから、対応するページを回収させることによって、オンデマンド式のページングが可能となる。
この2レベルのページング機構は、例えば、一般的には、デスクトップコンピュータ又は更にラップトップコンピュータ等の物理的に大型のデバイスよりも少ないRAMを有する、モバイルデバイス内で有用とすることができる。例えば、タブレットデバイス、又はノートブックコンピュータ、又はスマートフォンは、限られた量のRAM、及びソリッドステートメモリデバイス(例えば、フラッシュメモリ)を含み得る。
図1は、第1メモリと第2メモリとの間のデータ移動の概念図である。本明細書で説明される技術は、概して適用可能なものとすることができるが、実施例は、全般的には、メインメモリ(例えば、DRAM)と、より大型の記憶デバイス(例えば、フラッシュメモリ)との間の、ページの移動に関して提供される。
アドレス空間110は、所定のプロセス又はアプリケーションによって使用することができるメモリを表す。アドレス空間110は、幾つかのメモリ領域を含み得る。メモリ領域は、幾つかの仮想ページを含み得る。仮想ページは、いかなる時点でも、未割り当て、常駐、又はページアウトの3つの状態のうちの1つにあるものとすることができる。
一次メモリ(RAM、揮発性)及び二次メモリ(SSD、不揮発性)は、ホストシステムによる複数のアプリケーションの実行中に、アプリケーションによって使用される。典型的には、一次メモリは、それらのアプリケーションを実行するプロセッサによってアクセス可能なランダムアクセスメモリである。アドレス空間110は、ホストシステム内部のランダムアクセスメモリの全て又は一部を使用することができる。他のアドレス空間は、システム内の他のプロセスをサポートするために使用され、それらは全て、一次メモリ(RAM)の限られたリソースに関して競合する。
ランダムアクセスメモリは、複数のプロセスをサポートするために使用され、各プロセスは、それ自体の利用アドレス空間を有し得る。アドレス空間110は、データの1つ以上のページを格納するためにプロセスによって使用される、1つ以上のメモリ領域(例えば、112、114、116)を有する。
図1の実施例では、メモリ領域112、114、及び116を、プロセスに割り当てることができる。一実施形態では、各プロセスは、例えばリソースの競合を解決するために使用することができる関連優先度を有する。例えば、プロセスが追加のメモリロケーションを必要とし、利用可能なメモリが不十分である場合、より低い優先度を有するプロセスは、より高い優先度のプロセスにメモリ領域を再割り当てすることができるように、そのページの一部又は全てをエビクションさせることができる。
それゆえ、動作中に、メモリ領域112、114、及び116を、エビクションさせるために指定することができる。このエビクションプロセスは、メモリ領域112、114、及び116から、不揮発性メモリ150にページを移動させる。一実施形態では、このプロセスは圧縮コンテナ130の利用を含む。圧縮コンテナ130は、アドレス空間110の外部の、システムRAM内の領域若しくは構造とすることができ、又は圧縮コンテナ130は、システムRAMと結合される異なるメモリデバイス内に存在し得る。一実施形態では、圧縮コンテナ130は、オペレーティングシステムのカーネルアドレス空間内部に存在する。
一実施形態では、メモリ領域112、114、及び116からのページは、圧縮コンテナ130内部に、より圧縮された方式で(例えば、連続的に、最少数のページなどで)格納される。別の実施形態では、それらのページに対するポインタを圧縮コンテナ130内に格納することができる。一実施形態では、メモリ領域112、114、及び116のコンテンツは、不揮発性メモリ150にコピーされる。一実施形態では、それらのページは単一の書き込み操作で、又は1ページごとに単一の書き込み操作で不揮発性メモリ150にコピーされる。
不揮発性メモリ150に移動されたページが要求されると、圧縮コンテナ130を通じて、その不揮発性メモリ150内のデータのロケーションを判定することができる。次いで、それらのページを、不揮発性メモリ150からアドレス空間110に転送して戻すことができる。同じメモリ領域を使用することもでき、又は異なるメモリ領域を使用することもできる。
図2は、第1メモリと第2メモリとの間のデータ移動に関する技術の一実施形態の流れ図である。図2の技術を利用して、例えば図1に示すようにメモリタイプ間でページを転送することができる。
プロセスに関するページが、エビクションさせるために指定されると、そのプロセスに対応するアドレス空間(例えば、図1の112、114、116)が凍結される(210)。アドレス空間が凍結されると、そのプロセスは、メモリロケーションへの書き込み及びメモリロケーションのコンテンツの変更を阻止される。それゆえ、転送されるメモリのコンテンツは、そのプロセスと一貫したものとなる。
そのプロセスに関するアドレス空間を辿る(220)。プロセスに関するアドレス空間を辿る際、凍結されてRAMから転送されるメモリのページについての情報が収集される。一実施形態では、RAMから転送されるページに関しては、その常駐ページのためのポインタが圧縮コンテナに移動される(230)。別の実施形態では、そのメモリロケーションのコンテンツを、RAMから転送される圧縮コンテナにコピーすることができる。一実施形態では、複数のプロセス間でデータを共有するページはエビクションの候補とはならない。
次いで、それらのページは、RAMから不揮発性メモリ(例えば、フラッシュメモリ)にコピーされる(240)。一実施形態では、それらのページは、単一のI/O操作で不揮発性メモリに書き込まれ、このことは、不揮発性メモリに対する劣化を低減するために役立ち得る。代替的実施形態では、複数の書込み操作を実行することができる。
ページが移動されたアドレス空間のロケーションが、再利用可能にされる(250)。次いで、この再利用可能にされたメモリロケーションを、他のプロセスによって使用することができる。図2のプロセスは、他のプロセスに関しても同様に繰り返すことができる。
図3は、不揮発性メモリからRAMにデータを転送するための技術の一実施形態の流れ図である。図3のプロセスを使用して、例えば図2に関して上述されたように、例えば、プロセスが従前に凍結され、かつ/又はデータがエビクションされている場合に、フラッシュメモリからページを回収することができる。
エビクションされたページに対する要求が受け取られる(310)。この要求は、従前に凍結されたプロセスの再活性化、すなわち解凍の結果とすることができる。この要求は、そのプロセスに関する、従前にエビクションされたページの一部分に対するものとすることができ、又はこの要求は、そのプロセスに関する、従前にエビクションされたページの全てに対するものとすることができる。
アドレス空間内の(例えば、RAM内の)そのメモリロケーションに関する、圧縮コンテナへのリンクを追跡する(320)。このリンク並びに/あるいは他の情報を利用して、圧縮コンテナ内での、そのデータのロケーション及び/又は状態を判定することができる。ページのロケーションが判定される(330)。
次いで、それらのページが不揮発性メモリからRAMにコピーされる(340)。一実施形態では、それらのページは、不揮発性メモリへの単一の読み取りによって回収される。次いで、その不揮発性のメモリロケーションを他のデータのために使用することができる(350)。
図4は、第1メモリと第2メモリとの間のデータ移動を管理するためのエージェントの一実施形態のブロック図である。データ転送エージェント400は、データ転送エージェント400の動作を指示するための論理機能制御を実装する制御論理410、及び/又はデータ転送エージェント400の動作指示に関連するハードウェアを含む。論理は、ハードウェア論理回路及び/又はソフトウェアルーチンとすることができる。一実施形態では、データ転送エージェント400は、制御論理410に命令を提供するコード列及び/又はプログラムを表す1つ以上のアプリケーション412を含む。
データ転送エージェント400は、データ及び/又は命令を格納するためのメモリデバイス、及び/又はメモリリソースへのアクセスを表す、メモリ414を含む。メモリ414は、データ転送エージェント400にローカルなメモリを含み、並びに、又は代替的には、データ転送エージェント400が常駐するホストシステムのメモリを含み得る。データ転送エージェント400はまた、データ転送エージェント400の外部のエンティティ(電子的エンティティ、又は人間)に関する、データ転送エージェント400への/からのアクセスインターフェース(例えば、入力/出力インターフェース、アプリケーションプログラミングインターフェース)を表す1つ以上のインターフェース416も含む。
データ転送エージェント400はまた、本明細書で説明されるようなページに対する拡大及び/又は縮小を、データ転送エージェント400が提供することを可能にする、1つ以上の機能を表すデータ転送エンジン420も含む。データ転送エンジン420内に含めることができる例示的モジュールとしては、プロセスメモリモジュール430、圧縮コンテナマネージャ440、リンクマネージャ450、及びメモリ転送モジュール460が挙げられる。本明細書で使用するとき、モジュールとは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの一部の組合せのいずれかで実装される、ルーチン、サブシステムなどを指す。
プロセスメモリモジュール430は、各プロセスに関する状態を判定するように動作し、また他のパラメーター、例えばそれらのプロセスに関連する優先度又は許容可能なメモリ消費量なども管理することができる。プロセスメモリモジュール430は、それらのプロセスの状態も同様に制御することができる。プロセスメモリモジュール430は、より高い優先度のプロセスが追加のメモリを必要とする場合に、プロセスを凍結するように動作することができる。
圧縮コンテナマネージャ440は、本明細書で説明されるような圧縮コンテナの動作及び機能性を制御するように動作する。圧縮コンテナマネージャ440は、圧縮コンテナ内部のデータ構造を管理することができ、加えて、圧縮コンテナの動作及び機構をリンクさせることにより、本明細書で説明される機能性を提供する。
リンクマネージャ450は、データ構造とメモリロケーションとのリンク、例えば圧縮コンテナと不揮発性メモリとのリンクを追跡及び維持するように動作する。リンクマネージャ450は、RAMに転送して戻すためのデータに対する要求に応答して、不揮発性メモリ内でデータを検索するように動作することができる。
メモリ転送マネージャ460は、不揮発性メモリからの読み取り及び不揮発性メモリへの書き込みを制御するように動作する。一実施形態では、メモリ転送マネージャ460は、最少数の書き込み操作で、不揮発性メモリにデータを書き込ませる。同様に、メモリ転送マネージャ460は、最少数の読み取りで、不揮発性メモリからデータを読み取らせる。このことにより不揮発性メモリに対する劣化を低減することができる。
図5は、モバイルデバイスの例示的実装のブロック図500である。このモバイルデバイスは、メモリインターフェース502、1つ以上のデータプロセッサ、画像プロセッサ、及び/又は中央演算処理装置504、並びに周辺機器インターフェース506を含み得る。メモリインターフェース502、1つ以上のプロセッサ504、及び/又は周辺機器インターフェース506は別個の構成要素とすることができ、あるいは1つ以上の集積回路内に統合することもできる。これらのモバイルデバイス内の様々な構成要素は、1つ以上の通信バス又は信号線によって結合することができる。
周辺機器インターフェース506に、センサ、デバイス、及びサブシステムを結合することにより、多機能性を促進することができる。例えば、モーションセンサ510、光センサ512、及び近接センサ514を、周辺機器インターフェース506に結合することにより、配向、採光、及び近接性の機能を促進することができる。測位システム(例えば、GPS受信器)、温度センサ、生体測定センサ、又は他の検出器等の、他のセンサ516もまた、周辺機器インターフェース506に結合することにより、関連する機能性を促進することができる。
カメラサブシステム520及び光学センサ522(例えば、電荷結合素子(CCD)又は相捕型金属酸化膜半導体(CMOS)光学センサ)を利用して、写真及びビデオクリップの記録等のカメラ機能を促進することができる。
1つ以上の無線通信サブシステム524を通じて、通信機能を促進することができ、それらのサブシステムとしては、無線周波受信器及び送信器、並びに/あるいは光(例えば、赤外線)受信器及び送信器を挙げることができる。通信サブシステム524の具体的な設計及び実装は、このモバイルデバイスが動作することを目的とする、通信ネットワークに応じて変化し得る。例えば、モバイルデバイスは、GSMネットワーク、GPRSネットワーク、EDGEネットワーク、Wi−Fi若しくはWiMaxネットワーク、及びBluetooth(商標)ネットワーク上で動作するように設計された通信サブシステム524を含み得る。特に、無線通信サブシステム524は、このモバイルデバイスを、他の無線デバイスのための基地局として構成することができるようなホスティングプロトコルを含み得る。
オーディオサブシステム526をスピーカー528及びマイクロホン530に結合することにより、音声認識機能、音声複製機能、デジタル録音機能、及び電話機能等の音声使用可能な機能を促進することができる。
I/Oサブシステム540は、タッチスクリーンコントローラ542及び/又は他の入力コントローラ544を含み得る。タッチスクリーンコントローラ542は、タッチスクリーン546に結合することができる。タッチスクリーン546及びタッチスクリーンコントローラ542は、例えば、複数のタッチ感度技術のうちのいずれかを使用して、接触及び移動を検出する、あるいは接触及び移動の中断を検出することができ、それらのタッチ感度技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術に加えて、タッチスクリーン546との1つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素が挙げられるが、これらに限定されない。
他の入力コントローラ544は、1つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、USBポート、及び/又はスタイラス等のポインタデバイスのような他の入力/制御デバイス548に結合することができる。1つ以上のボタン(図示せず)は、スピーカー528及び/又はマイクロホン530の音量調節のためのアップ/ダウンボタンを含み得る。
一実装形態では、第1の持続時間でボタンを押すことにより、タッチスクリーン546のロックを解除することができ、第1の持続時間よりも長い第2の持続時間でボタンを押すことにより、モバイルデバイスへの電源をオン/オフすることができる。ユーザは、1つ以上のボタンの機能性をカスタマイズすることが可能である。タッチスクリーン546はまた、例えば、仮想ボタン若しくはソフトボタン、及び/又はキーボードを実装するために使用することもできる。
一部の実装形態では、このモバイルデバイスは、MP3ファイル、AACファイル、及びMPEGファイル等の記録されたオーディオファイル及び/又はビデオファイルを提示することができる。一部の実装形態では、このモバイルデバイスは、iPod(商標)等のMP3プレーヤーの機能性を含み得る。それゆえ、このモバイルデバイスは、iPod(商標)に対応する32ピンコネクタを含み得る。他の入力/出力及び制御デバイスもまた、使用することができる。
メモリインターフェース502は、メモリ550に結合することができる。メモリ550は、高速のランダムアクセスメモリ、並びに/あるいは、1つ以上の磁気ディスク記憶装置、1つ以上の光記憶装置、及び/又はフラッシュメモリ(例えば、NAND、NOR)等の不揮発性メモリを含み得る。メモリ550は、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、又はVxWorks等の組み込みオペレーティングシステム等のオペレーティングシステム552を格納することができる。オペレーティングシステム552は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含み得る。一部の実装形態では、オペレーティングシステム552は、カーネル(例えば、UNIXカーネル)とすることができる。メモリインターフェース502はまた、例えばフラッシュメモリとすることができる、不揮発性メモリ575にも結合することができる。
メモリ550はまた、1つ以上の追加デバイス、1つ以上のコンピュータ、及び/又は1つ以上のサーバとの通信を促進するための通信命令554も格納することができる。メモリ550は、グラフィカルユーザインターフェース処理を促進するためのグラフィカルユーザインターフェース命令556、センサ関連の処理及び機能を促進するためのセンサ処理命令558、電話関連のプロセス及び機能を促進するための電話命令560、電子メッセージ通信関連のプロセス及び機能を促進するための電子メッセージ通信命令562、ウェブ閲覧関連のプロセス及び機能を促進するためのウェブ閲覧命令564、メディア処理関連のプロセス及び機能を促進するためのメディア処理命令566、GPS/ナビゲーション関連のプロセス及び指示を促進するためのGPS/ナビゲーション命令568、カメラ関連のプロセス及び機能を促進するためのカメラ命令570、並びに/あるいは他のプロセス及び機能(例えば、アクセス制御管理機能)を促進するための他のソフトウェア命令572を含み得る。
メモリ550はまた、ウェブビデオ関連のプロセス及び機能を促進するためのウェブビデオ命令、並びに/あるいはウェブショッピング関連のプロセス及び機能を促進するためのウェブショッピング命令等の他のソフトウェア命令(図示せず)も格納することができる。一部の実装形態では、メディア処理命令566は、例えばオーディオ処理関連のプロセス及び機能を促進するためのオーディオ処理命令と、ビデオ処理関連のプロセス及び機能を促進するためのビデオ処理命令とに、それぞれ分割することができる。駆動レコード及び国際移動体装置識別番号(IMEI)574、あるいは同様のハードウェア識別子もまた、メモリ550内に格納することができる。
本明細書中での「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明される具体的な機構、構造、若しくは特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。本明細書中の様々な箇所での、語句「一実施形態では」の使用は、必ずしも全てが同じ実施形態に言及しているものではない。
上述の明細書では、本発明は、その特定の実施形態を参照して説明されている。しかしながら、より広範な本発明の趣旨及び範囲から逸脱することなく、それらの実施形態に様々な修正及び変更を加えることができる点が明白となるであろう。したがって、本明細書及び図面は、限定的な意味ではなく、例示的な意味で考慮されるべきである。

Claims (27)

  1. 方法であって、
    揮発性メモリ内の複数の再利用可能なメモリロケーションから、プロセスに関するデータを収集する工程と、
    前記データに対する1つ以上のポインタを、単一のコンテナにコピーする工程と、
    選択された入力/出力(I/O)アドレスを使用して、前記データを不揮発性メモリにコピーする工程と、
    を有することを特徴とする方法。
  2. 揮発性メモリ内の複数の再利用可能なメモリロケーションから、プロセスに関するデータを収集する工程が、
    前記揮発性メモリのメモリ空間内の、前記プロセスに対応する前記メモリロケーションを判定する工程であって、前記メモリ空間が複数の並行プロセスをサポートする、判定する工程と、
    前記プロセスに対応する前記メモリロケーションを辿る工程と、
    前記複数のメモリロケーションのそれぞれが前記揮発性メモリからのエビクションの候補であるか否かを決定する工程と、
    エビクションの候補であるメモリロケーションのためのポインタを記録する工程と、
    を有することを特徴とする請求項1に記載の方法。
  3. 複数のプロセス間でページを共有するメモリロケーションが、エビクションの候補ではない、
    ことを特徴とする請求項2に記載の方法。
  4. 前記プロセスに対応する前記メモリロケーションを再利用可能にする工程と、
    前記メモリロケーションを別のプロセスに割り当てる工程と、
    を更に有することを特徴とする請求項1に記載の方法。
  5. 前記コンテナが、メモリのページを含む、
    ことを特徴とする請求項1に記載の方法。
  6. 前記単一のコンテナが、オペレーティングシステムのカーネルアドレス空間内のメモリロケーションのグループを含む、
    ことを特徴とする請求項1に記載の方法。
  7. 前記揮発性メモリがシステムランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリがフラッシュメモリを含む、
    ことを特徴とする請求項1に記載の方法。
  8. 前記データを前記不揮発性メモリにコピーする工程が、前記不揮発性メモリへの単一の書き込み操作で達成される、
    ことを特徴とする請求項1に記載の方法。
  9. 選択されたデータを有する前記不揮発性メモリ内のページを検索する工程と、
    前記ページを前記コンテナにコピーする工程と、
    を更に有することを特徴とする請求項2に記載の方法。
  10. 前記メモリ空間内の元のロケーションを検索する工程と、
    前記元のロケーションに前記ページを転送する工程と、
    を更に有することを特徴とする請求項9に記載の方法。
  11. 前記ページをコピーする工程が、前記揮発性メモリへの単一の読み取り操作で達成される、
    ことを特徴とする請求項9に記載の方法。
  12. 命令を格納しているコンピュータ可読媒体であって、前記命令が実行される場合、1つ以上のプロセッサに、
    揮発性メモリ内の複数の再利用可能なメモリロケーションから、プロセスに関するデータを収集させ、
    前記データに対する1つ以上のポインタを、単一のコンテナにコピーさせ、
    選択された入力/出力(I/O)アドレスを使用して、前記データを不揮発性メモリにコピーさせる、
    ことを特徴とするコンピュータ可読媒体。
  13. 前記1つ以上のプロセッサに、揮発性メモリ内の複数の再利用可能なメモリロケーションから、プロセスに関するデータを収集させる前記命令が実行される場合、前記1つ以上のプロセッサに、
    前記揮発性メモリのメモリ空間内の、前記プロセスに対応する前記メモリロケーションを判定させることであって、前記メモリ空間が複数の並行プロセスをサポートしている、判定させること、
    前記プロセスに対応する前記メモリロケーションを辿らせること、
    前記複数のメモリロケーションのそれぞれが前記揮発性メモリからのエビクションの候補であるか否かを決定させること、
    エビクションの候補であるメモリロケーションのためのポインタを記録させることの、命令を含む、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  14. 複数のプロセス間でページを共有するメモリロケーションが、エビクションの候補ではない、
    ことを特徴とする請求項13に記載のコンピュータ可読媒体。
  15. 命令が実行される場合、前記1つ以上のプロセッサに、
    前記プロセスに対応する前記メモリロケーションを再利用可能にさせること、
    前記メモリロケーションを別のプロセスに割り当てさせることの、命令を更に含む、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  16. 前記コンテナが、メモリのページを含む、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  17. 前記単一のコンテナが、オペレーティングシステムのカーネルアドレス空間内のメモリロケーションのグループを含む、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  18. 前記揮発性メモリが、システムランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリが、フラッシュメモリを含む、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  19. 前記データを不揮発性メモリにコピーすることが、前記不揮発性メモリへの単一の書き込み操作で達成される、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  20. 命令が実行される場合、前記1つ以上のプロセッサに、
    選択されたデータを有する、前記不揮発性メモリ内のページを検索させること、
    前記ページを前記コンテナにコピーさせることの、命令を更に含む、
    ことを特徴とする請求項12に記載のコンピュータ可読媒体。
  21. 命令が実行される場合、前記1つ以上のプロセッサに、
    前記メモリ空間内の元のロケーションを検索させること、
    前記元のロケーションに前記ページを転送させることの、命令を更に含む、
    ことを特徴とする請求項20に記載のコンピュータ可読媒体。
  22. 前記ページをコピーすることが、前記不揮発性メモリへの単一の読み取り操作で達成される、
    ことを特徴とする請求項20に記載のコンピュータ可読媒体。
  23. 装置であって。
    揮発性メモリ内の複数の再利用可能なメモリロケーションから、プロセスに関するデータを収集するための手段と、
    前記データに対する1つ以上のポインタを、単一のコンテナにコピーするための手段と、
    選択された入力/出力(I/O)アドレスを使用して、前記データを不揮発性メモリにコピーするための手段と、
    を備えることを特徴とする装置。
  24. 前記揮発性メモリ内の複数の再利用可能なメモリロケーションから、プロセスに関するデータを収集するための手段が、
    前記揮発性メモリのメモリ空間内の、前記プロセスに対応する前記メモリロケーションを判定する手段であって、前記メモリ空間が複数の並行プロセスをサポートする、判定する手段と、
    前記プロセスに対応する前記メモリロケーションを辿るための手段と、
    前記複数のメモリロケーションのそれぞれが前記揮発性メモリからのエビクションの候補であるか否かを決定するための手段と、
    エビクションの候補であるメモリロケーションのためのポインタを記録するための手段と、を含む、
    ことを特徴とする請求項23に記載の装置。
  25. 前記プロセスに対応する前記メモリロケーションを再利用可能にするための手段と、
    前記メモリロケーションを別のプロセスに割り当てるための手段と、を更に備える、
    ことを特徴とする請求項23に記載の装置。
  26. 選択されたデータを有する、前記不揮発性メモリ内のページを検索するための手段と、
    前記ページを前記コンテナにコピーするための手段と、を更に備える、
    ことを特徴とする請求項23に記載の装置。
  27. 前記メモリ空間内の元のロケーションを検索するための手段と、
    前記元のロケーションに前記ページを転送するための手段と、を更に備える、
    ことを特徴とする請求項26に記載の装置。
JP2014518949A 2011-07-01 2012-06-27 メモリタイプ間でデータを移動させるための技術 Active JP5827403B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/175,303 2011-07-01
US13/175,303 US9195581B2 (en) 2011-07-01 2011-07-01 Techniques for moving data between memory types
PCT/US2012/044351 WO2013006326A1 (en) 2011-07-01 2012-06-27 Techniques for moving data between memory types

Publications (2)

Publication Number Publication Date
JP2014522023A true JP2014522023A (ja) 2014-08-28
JP5827403B2 JP5827403B2 (ja) 2015-12-02

Family

ID=46506627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014518949A Active JP5827403B2 (ja) 2011-07-01 2012-06-27 メモリタイプ間でデータを移動させるための技術

Country Status (7)

Country Link
US (1) US9195581B2 (ja)
EP (1) EP2726990A1 (ja)
JP (1) JP5827403B2 (ja)
KR (1) KR101598727B1 (ja)
CN (1) CN103649927B (ja)
AU (1) AU2012279345B2 (ja)
WO (1) WO2013006326A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9354906B1 (en) * 2010-05-28 2016-05-31 Bromium, Inc. Managing the eviction process
JP2014127076A (ja) * 2012-12-27 2014-07-07 Nec Corp 情報記録再生装置及び記録再生方法
WO2015116080A1 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Migrating data between memories
KR101592916B1 (ko) * 2014-04-03 2016-02-18 오픈스택 주식회사 사용자 스페이스와 커널 스페이스간의 콘텍스트 스위칭과 데이터 복사를 최소화하여 네트워크상의 복수의 목적지에 동일한 데이터를 전송하는 방법
KR102314138B1 (ko) 2015-03-05 2021-10-18 삼성전자 주식회사 모바일 장치 및 모바일 장치의 데이터 관리 방법
KR20170140225A (ko) * 2015-04-30 2017-12-20 마이크로칩 테크놀로지 인코포레이티드 향상된 명령어 세트를 구비한 중앙 처리 유닛
US9720617B2 (en) * 2015-06-02 2017-08-01 Apple Inc. System and method for compaction of compressed and uncompressed virtual memory
US10981576B2 (en) 2017-12-27 2021-04-20 Micron Technology, Inc. Determination of reliability of vehicle control commands via memory test
US11507175B2 (en) * 2018-11-02 2022-11-22 Micron Technology, Inc. Data link between volatile memory and non-volatile memory
CN113138941A (zh) 2020-01-20 2021-07-20 华为技术有限公司 内存交换的方法、装置
KR20220116650A (ko) * 2021-02-15 2022-08-23 삼성전자주식회사 이형 메모리들을 포함하는 전자 장치 및 그것의 이형 메모리들 간 압축 데이터 이동 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076606A (ja) * 2001-08-30 2003-03-14 Synthesis Corp プログラムの圧縮方法
JP2007013481A (ja) * 2005-06-29 2007-01-18 Sharp Corp 情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記録した記録媒体、および携帯電話機
JP2008217208A (ja) * 2007-03-01 2008-09-18 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
JP2009503627A (ja) * 2005-05-18 2009-01-29 シンビアン ソフトウェア リミテッド コンピュータ装置におけるメモリ管理
JP2011028537A (ja) * 2009-07-27 2011-02-10 Buffalo Inc 外部記憶装置へのアクセスを高速化する方法および外部記憶システム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577274A (en) * 1983-07-11 1986-03-18 At&T Bell Laboratories Demand paging scheme for a multi-ATB shared memory processing system
US5251303A (en) * 1989-01-13 1993-10-05 International Business Machines Corporation System for DMA block data transfer based on linked control blocks
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US6654428B1 (en) * 1998-01-13 2003-11-25 Massachusetts Institute Of Technology Systems and methods for wireless communications
US7089391B2 (en) * 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
US6934755B1 (en) * 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US6957237B1 (en) * 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6640285B1 (en) * 2000-10-26 2003-10-28 Emc Corporation Method and apparatus for improving the efficiency of cache memories using stored activity measures
US7076632B2 (en) * 2003-10-16 2006-07-11 International Business Machines Corporation Fast paging of a large memory block
US7426625B2 (en) * 2004-03-31 2008-09-16 International Business Machines Corporation Data processing system and computer program product for support of system memory addresses with holes
JP4550479B2 (ja) 2004-04-30 2010-09-22 ルネサスエレクトロニクス株式会社 電子制御装置及びデータ調整方法
US7231545B2 (en) * 2004-08-05 2007-06-12 International Business Machines Corporation Apparatus and method to convert data from a first sector format to a second sector format
EP1712985A1 (en) * 2005-04-15 2006-10-18 Deutsche Thomson-Brandt Gmbh Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8521919B2 (en) * 2009-06-30 2013-08-27 International Business Machines Corporation Direct memory access in a computing environment
US8176220B2 (en) * 2009-10-01 2012-05-08 Oracle America, Inc. Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
US8589600B2 (en) * 2009-12-14 2013-11-19 Maxeler Technologies, Ltd. Method of transferring data with offsets
US8161241B2 (en) * 2010-01-12 2012-04-17 International Business Machines Corporation Temperature-aware buffered caching for solid state storage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076606A (ja) * 2001-08-30 2003-03-14 Synthesis Corp プログラムの圧縮方法
JP2009503627A (ja) * 2005-05-18 2009-01-29 シンビアン ソフトウェア リミテッド コンピュータ装置におけるメモリ管理
JP2007013481A (ja) * 2005-06-29 2007-01-18 Sharp Corp 情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記録した記録媒体、および携帯電話機
JP2008217208A (ja) * 2007-03-01 2008-09-18 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
JP2011028537A (ja) * 2009-07-27 2011-02-10 Buffalo Inc 外部記憶装置へのアクセスを高速化する方法および外部記憶システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNB201201122001; 畑 圭輔、加藤寛人、坂本一樹、藤川宏之、高橋啓治郎、沖田知彦、柳澤 昇: iOS 4プログラミングブック 初版, 20110201, p.51-52, 株式会社インプレスジャパン *
JPN6015008767; 畑 圭輔、加藤寛人、坂本一樹、藤川宏之、高橋啓治郎、沖田知彦、柳澤 昇: iOS 4プログラミングブック 初版, 20110201, p.51-52, 株式会社インプレスジャパン *

Also Published As

Publication number Publication date
WO2013006326A1 (en) 2013-01-10
KR20140028123A (ko) 2014-03-07
AU2012279345B2 (en) 2016-02-18
CN103649927A (zh) 2014-03-19
US20130007345A1 (en) 2013-01-03
CN103649927B (zh) 2016-12-07
AU2012279345A1 (en) 2014-01-09
US9195581B2 (en) 2015-11-24
KR101598727B1 (ko) 2016-02-29
JP5827403B2 (ja) 2015-12-02
EP2726990A1 (en) 2014-05-07

Similar Documents

Publication Publication Date Title
JP5827403B2 (ja) メモリタイプ間でデータを移動させるための技術
JP6355650B2 (ja) 不揮発性記憶デバイスのためのメモリーのリアドレシング
KR102533072B1 (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR102147993B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
EP2665065A2 (en) Electronic device employing flash memory
TW201818249A (zh) 操作對多重名稱空間進行管理的儲存裝置的方法
KR20140006299A (ko) 낸드 플래시 메모리 기반의 저장부에 데이터 기록을 제어하는 방법 및 장치
US9262313B2 (en) Provisioning in heterogenic volume of multiple tiers
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
WO2017148242A1 (zh) 一种访问叠瓦式磁记录smr硬盘的方法及服务器
KR20190113479A (ko) 가상 스트림들과 물리 스트림들을 맵핑하기 위한 스토리지 장치 및 그것의 동작 방법
JPWO2017006675A1 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
US20200089609A1 (en) Data storage system with write back cache
US20230075437A1 (en) Techniques for zoned namespace (zns) storage using multiple zones
US20140281160A1 (en) Non-volatile semiconductor storage apparatus
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
US9025380B1 (en) Management of data storage in a non-volatile memory system
US20220164119A1 (en) Controller, and memory system and data processing system including the same
TWI707235B (zh) 儲存裝置管理系統以及儲存裝置管理方法
JP2017134700A (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
KR20140145525A (ko) 통합 캐시를 하나 또는 복수의 논리 유닛에 동적 할당하는 시스템 및 방법
CN118051179A (zh) 用于使用多个分区的分区命名空间存储的技术
KR20220042673A (ko) 컨트롤러, 컨트롤러의 동작 방법, 및 이를 포함하는 메모리 시스템
KR20210043819A (ko) 컨트롤러 및 컨트롤러의 동작방법
CN114676092A (zh) 一种文件管理方法及相关设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151015

R150 Certificate of patent or registration of utility model

Ref document number: 5827403

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250