JP2010157218A - 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置 - Google Patents

不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置 Download PDF

Info

Publication number
JP2010157218A
JP2010157218A JP2009273923A JP2009273923A JP2010157218A JP 2010157218 A JP2010157218 A JP 2010157218A JP 2009273923 A JP2009273923 A JP 2009273923A JP 2009273923 A JP2009273923 A JP 2009273923A JP 2010157218 A JP2010157218 A JP 2010157218A
Authority
JP
Japan
Prior art keywords
memory
volatile memory
write
threshold
volatile
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
JP2009273923A
Other languages
English (en)
Other versions
JP5570790B2 (ja
Inventor
John Rudelic
ラデリック ジョン
Jared Hulbert
ハルバート ジャレッド
Jeffrey Wang
ワン ジェフリー
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JP2010157218A publication Critical patent/JP2010157218A/ja
Application granted granted Critical
Publication of JP5570790B2 publication Critical patent/JP5570790B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】不揮発性メモリに置き換えるためにRAMメモリオブジェクトをプロファイルする方法及び装置を提供する。
【解決手段】メモリプロファイリングシステムは、揮発性メモリ内のメモリオブジェクトをプロファイルし、そのメモリオブジェクトを、不揮発性メモリに記憶されてそこから直接読み取られる候補として識別する。このシステムは、ページ欠陥を経てメモリアクセスを監視し、揮発性メモリにロードされるメモリオブジェクトを識別し、又、ページ欠陥を使用してページ欠陥の形式及びメモリオブジェクトの書き込み頻度を決定すると共に、メモリオブジェクトのメモリアクセス形式を決定する。更に、オブジェクトのメモリアクセス形式が不揮発性メモリ技術の能力を満足するかどうか決定する。もしそうであれば、メモリオブジェクトを、不揮発性メモリへ移行されてそこから直接読み取られる候補として識別する。
【選択図】図1

Description

本発明の実施形態は、不揮発性メモリに置き換えるために揮発性メモリオブジェクトをプロファイルすることに係る。より詳細には、本発明の実施形態は、ランダムアクセスメモリに存在するメモリオブジェクトを、不揮発性メモリに記憶してそこから直接読み取るための候補として識別し、そしてその候補メモリオブジェクトを不揮発性メモリへ移行させることに係る。
多くのコンピュータアーキテクチャーは、メモリを、(1)揮発性(メモリに電力がないときに情報が失われることを意味する)であるが比較的高速な一次メモリ、例えば、ランダムアクセスメモリ(RAM)として、又は(2)不揮発性であるが比較的低速な二次メモリ、例えば、フラッシュメモリ及びハードディスクとして構成している。典型的に、相手先製品製造者(OEM)は、持続性ファイルを不揮発性メモリに記憶する一方、他のほとんどのオブジェクトはRAMにおいて生成し記憶している。例えば、OEMは、コードをフラッシュメモリに、そしてデータをDRAMに記憶する。しかしながら、時が経つにつれて、OEMは、コードを揮発性メモリに記憶し、そして著しい量のDRAMを使用し始めた。DRAMに記憶されたオブジェクトの多くは、コードを直接実行できる不揮発性メモリ技術(例えば、NOR技術及び相変化メモリ(PCM)技術)へ移行させることができる。しかしながら、OEMは、典型的に、DRAMに記憶されたメモリオブジェクトであって不揮発性メモリに記憶してそこから直接読み取ることのできるメモリオブジェクトを識別するツールがない。
本発明の実施形態は、同様の要素が同じ参照番号で示された添付図面を参照して一例として以下に詳細に説明するが、これに限定されるものではない。
本発明の一実施形態によるメモリプロファイリングシステムを示す。 本発明の一実施形態によるメモリプロファイリングシステムのブロック図である。 揮発性メモリに記憶されたメモリオブジェクトを、不揮発性メモリから直接読み取られる候補として識別する方法の一実施形態のフローチャートである。 メモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる候補であるかどうか決定するための方法の一実施形態のフローチャートである。 メモリオブジェクトの書き込み頻度を決定する方法の一実施形態のフローチャートである。 メモリオブジェクトの書き込み頻度が書き込み頻度スレッシュホールドを満足するかどうか決定する方法の一実施形態のフローチャートである。
本発明の実施形態は、揮発性メモリ(例えば、RAM及びDRAM)に存在するメモリオブジェクトを、不揮発性メモリ(例えば、NOR及びPCM)へ移動してそこから直接読み取られる候補としてプロファイルする方法及びシステムを提供する。このメモリプロファイリングシステムは、ページ欠陥を経てメモリアクセスを監視し、そして揮発性メモリにロードされるべきメモリオブジェクトを識別する。又、このプロファイリングシステムは、ページ欠陥を使用して、ページ欠陥の形式及びメモリオブジェクトの書き込み頻度を決定すると共に、メモリオブジェクトのメモリアクセス形式を決定する。更に、プロファイリングシステムは、オブジェクトのメモリアクセス形式が不揮発性メモリ技術の能力を満足するかどうか決定する。メモリアクセス形式が不揮発性メモリ技術の能力を満足する場合には、プロファイリングシステムが、メモリオブジェクトを、不揮発性メモリ(例えば、NORおよびPCM)へ移行されるべき候補として識別する。プロファイリングシステムは、そのメモリオブジェクト候補を不揮発性メモリに記憶し、メモリオブジェクトが不揮発性メモリから直接読み取られるようにする。この方法及びシステムは、揮発性メモリ(例えば、RAM及びDRAM)からロードされ読み取られるのではなく、不揮発性メモリ(例えば、NORおよびPCM)から直接読み取ることのできるメモリオブジェクトを識別することにより、性能を改善することができる。
図1は、本発明の一実施形態によるメモリプロファイリングシステム100を示す。一実施形態として、このシステム100は、ワイヤレスインターフェイス120を有している。このワイヤレスインターフェイス120は、アンテナ140に結合される。又、ワイヤレスインターフェイス20は、データ及び情報を受信し送信する。しかしながら、この実施形態は、ワイヤレス通信の実施形態に限定されない。他の、非ワイヤレス用途でも、本発明の実施形態を使用できる。
システム100は、インターフェイス105に結合されたプロセッサ110を備えている。インターフェイス105は、プロセッサ110とシステムメモリ115のメモリ記憶装置との間に通信又は情報を与えるように使用することができる。又、インターフェイス105は、プロセッサ110とシステムメモリ115との間にハンドシェークを与えるのに使用されるコントロール信号ラインと共に情報を共有するためのシリアル及び/又はパラレルバスを備えることができる。
システムメモリ115は、任意であるが、プロセッサ110により実行されるインストラクションを記憶するのに使用できる。又、システムメモリ15は、1つ以上の異なる形式のメモリによって設けることができ、揮発性メモリ(例えば、ランダムアクセスメモリ143(RAM)及びダイナミックランダムアクセスメモリ(DRAM))と、不揮発性メモリ(例えば、リードオンリメモリ150(ROM)及び相変化材料をもつ不揮発性メモリ155)との両方を含むものでよい。不揮発性メモリ155は、例えば、NORフラッシュメモリ、相変化メモリ(PCM)、相変化ランダムアクセスメモリ(PRAM又はPCRAM)、オボニック・ユニファイド・メモリ(OUM)、又はカルコゲナイドランダムアクセスメモリ(C−RAM)を含む。揮発性メモリ143は、例えば、RAM及びDRAMである。システムメモリ115は、揮発性メモリ内のメモリオブジェクトを、不揮発性メモリから直接読み取られるようにプロファイルし移行させるためのメモリマネージャー141を備えている。
RAM143は、典型的に、プロセッサ110に対して直ちにアクセスでき及び/又はプロセッサ110により現在動作されているデータ及び/又はプログラムモジュールを含む。図1は、オペレーティングシステム145、アプリケーションプログラム147、他のプログラムモジュール149、及びプログラムデータ151を示している。揮発性メモリ143、及び不揮発性メモリ150、155は、ボード上の占有面積を減少するように積み重ねプロセスで結合することもできるし、個別にパッケージすることもできるし、或いはメモリコンポーネントをプロセッサの上部に載せるようにマルチチップパッケージに入れることもできる。又、この実施形態は、1つ以上のプロセッサコア160、180に不揮発性メモリを埋設できることも示している。
ある実施形態では、システム100は、一体的なメモリ管理ユニット(MMU)130をもつプロセッサ110を備えている。他の実施形態では、メモリ管理ユニット130が個別のチップである。メモリ管理ユニット(MMU)130は、プロセッサ110により要求されたメモリへのアクセスをハンドリングする役割を果たすハードウェア装置又は回路である。又、メモリ管理ユニット130は、バーチャルアドレスを物理的アドレスへと変換することによりバーチャルメモリ及びページングをサポートする。メモリ管理ユニット130は、バーチャルアドレススペース(プロセッサにより使用されるアドレスの範囲)を、2の累乗(即ち2N)のサイズを各々もつページへと分割する。アドレスの最下位Nビット(ページ内のオフセット)は、不変のままである。上位アドレスビットは、バーチャルページ番号である。
メモリ管理ユニット130は、バーチャルページ番号を物理的ページ番号へと変換するテーブルを保持する僅かな量のメモリ(例えば、キャッシュ)を含んでもよい。このテーブルは、バーチャルアドレスを物理的アドレスにマッチングする変換ルックアサイドバッファ(TLB)とも称される。全てのデータ要求は、メモリ管理ユニット130へ伝送され、このユニットは、データが揮発性メモリ143に記憶されているか又は大量記憶装置(例えば、ディスクドライブ170)からフェッチされる必要があるかを決定する。データが記憶装置にない場合には、メモリ管理ユニット130は、ページ欠陥割り込みを発生する。
図2は、本発明の一実施形態によるメモリプロファイリングシステム200のブロック図である。このシステム200は、ページ形式のバーチャルアドレススキームを使用するもので、揮発性メモリ内のメモリオブジェクトを、不揮発性メモリから直接読み取れるようにプロファイルし移行するためのメモリマネージャー141を備えている。全てのデータ要求は、MMU130へ伝送され、このMMUは、メモリオブジェクトが揮発性メモリ(例えば、DRAM)に記憶されたかどうか決定する。メモリオブジェクトは、バーチャルページ番号と、そのページ番号とのオフセットとを含むバーチャルアドレスを有している。MMU130は、典型的に、変換ルックアサイドバッファ202(TLB)を経てバーチャルページ番号を物理的ページ番号へと変換する。例えば、プログラムが実行されて、メモリオブジェクトへのアクセスを試みる場合には、MMU130は、TLB202内のアドレスをルックアップする。MMU130がTLB202内のバーチャルページに対する一致(TLBヒット)を検出した場合には、物理的位置が検索され、そしてプログラムは、メモリオブジェクトにアクセスすることができる。しかしながら、TLB202は、固定数のページ変換を保持することができ、そしてTLB202が変換を欠く(TLBミス)場合には、MMU130は、ハードウェア特有のデータ構造を伴うメカニズムであるページテーブル204にアクセスする(203)。
ページテーブル204は、ページテーブルエントリー207A−E(PTE)を含み、各エントリーは、ページ(206A、206B、206D、又は206E)の物理的位置を識別する。ページは、RAM143の定義された長さの隣接部分であり、いずれの形式のデータを記憶することもできる。又、ページテーブルエントリー207A−Eは、ページ(メモリオブジェクト)が書き込まれたかどうか、それが最後にロードされたのはいつか、どんな種類のプロセスがそれを読み取り及び書き込みできるか、それをキャッシュ記憶すべきかどうかの情報を含むこともできる。
MMU130がページテーブル204内でバーチャルアドレスに対する有効エントリーを見出さない場合には、MMU130は、ページ欠陥205割り込み(又はページ欠陥)と称されるプロセッサ割り込みを発生する。例えば、メモリオブジェクトがDRAMにおいて得られないときには、MMU130は、ページテーブル205に変換がないことが分かり(例えば、207C)、そしてMMU130は、ページ欠陥205を発生する。ページ欠陥205が生じると、MMU130は、ページ欠陥ハンドラー220へコントロールを移送する。
ページ欠陥ハンドラー220は、ページ欠陥205をどのように取り扱うか判断する。ページ欠陥ハンドラー220は、バーチャルアドレスが有効であるかどうか決定する。バーチャルアドレスが有効である場合には、ページ欠陥ハンドラー220は、利用可能なページを見出し、そのページにメモリオブジェクトを入れ、そしてページテーブル204を変換で更新する。ページ欠陥ハンドラー220は、MMU130にオペレーションの再試みを命令する。MMU130は、オペレーションの再試みを行い、ページ(メモリオブジェクト)が揮発性メモリ(例えば、DRAM)にロードされる。
ページ欠陥ハンドラー220は、DRAMにロードされたメモリオブジェクトを、不揮発性メモリ(例えば、NOR、PCM)に記憶されてそこから直接読み取られる候補としてプロファイルするためのプロファイラー209を備えている。このプロファイラー209は、ページ欠陥205を使用して、DRAMにロードされるべきメモリオブジェクトを識別すると共に、ページテーブルアクティビティを監視して、メモリオブジェクトが不揮発性メモリから直接読み取られる候補であるかどうか決定するためのプロファイルデータを発生する。プロファイルデータは、メモリオブジェクトのアドレス、どれほど頻繁にオブジェクトがDRAMにロードされるか、及びどれほど頻繁にオブジェクトが書き込まれるかを含むことができる。又、プロファイラー209は、プロファイルデータを使用して、メモリオブジェクトをメモリアクセス形式について分類すると共に、メモリアクセス形式がNOR又はPCMメモリに対する候補として適格であるかどうか決定する。テーブル1は、NOR又はPCM技術に対する候補として適格な4つのメモリアクセス形式(例えば、「読み取りのみ」、「読み取り−書き込み低頻度」、「読み取り−書き込み」及び「読み取り−書き込み高頻度」)を例示する。
Figure 2010157218
テーブル1
理想的な候補は、読み取りのみであるか又は読み取り−低頻度書き込みであるメモリオブジェクトを含む。「低頻度」及び「高頻度」という語は、システムにおけるメモリ技術の形式の特定パラメータを指すのに使用される語である。図6は、メモリアクセス形式を詳細に示している。
プロファイラー209は、メモリオブジェクトの書き込み頻度を決定することによってメモリオブジェクトのメモリアクセス形式を決定する。又、プロファイラー209は、ある時間周期(プロファイル時間周期)中にページテーブルアクティビティを監視する。書き込み頻度とは、プロファイル時間周期中にメモリオブジェクトが書き込まれた回数である。プロファイラー209は、メモリオブジェクトが書き込まれるたびにメモリオブジェクトに対するページ欠陥206をロギングすることによりメモリオブジェクトの書き込み頻度を決定する。プロファイラー209は、ページテーブルのページテーブルエントリーを清掃するためのページテーブルエントリー(PTE)クリーナー208を備えている。ページがロードされるときに、PTEクリーナー208は、そのロードされたページを否ロードとマークし直す。一実施形態では、PTEクリーナーは、ロードされたページを、既定の時間間隔(例えば、10ms)で周期的に否ロードとマークする。ロードされたページを否ロードとマークすることは、ページテーブル204を人為的に清掃し、メモリオブジェクトが要求されたときにページ欠陥をプロファイラー209で検出できるよう強制する。プロファイラー209は、ページ欠陥を検出し、メモリオブジェクトが書き込まれたかどうか決定する。プロファイラー209は、メモリオブジェクトが書き込まれた回数をログする。
例えば、システム200は、ページ206A及びページ206Bを示している。プロファイラー209は、ページ206Aが一回ロードされそしてそれに対して書き込みアクティビティが行われていないと決定する。それ故、プロファイラー209は、ページ206Aを読み取りのみのメモリアクセス形式として分類する。プロファイラー209は、ページ206Bが一度ロードされそしてプロファイル時間周期中に一回書き込まれたと決定する。それ故、プロファイラー209は、ページ206Bを読み取り−書き込み低頻度のメモリアクセス形式として分類する。
プロファイラー209は、プロファイルデータを、16進又は2進情報を含む生のデータファイルとして出力することができる。一実施形態では、ロガー210は、プロファイラー209の出力を受け取り、新たなメモリマップ(例えば、メモリコンフィギュレーションファイル)を生成し、そしてその新たなメモリマップに基づいてシステムメモリを自動的に再構築する。一般的に、ページ(例えば、206A−206E)は、それが不揮発性メモリに記憶される前に圧縮される。ページが要求されたときに、オペレーティングシステムは、不揮発性メモリに記憶された圧縮された映像からページを読み取り、それを解凍し、そしてその解凍されたページをDRAMにロードする。新たなメモリマップは、ページが不揮発性メモリに記憶される前にどのページを非圧縮のままにするか定義し、ページを不揮発性メモリから直接読み取り、もはやDRAMにはロードしなくてよいようにする。例えば、プロファイラー209がページ206Aを読み取りのみのメモリアクセス形式として識別する場合には、ページ206Aは、不揮発性メモリ(例えば、PCM)に留まる候補となる。ページ206AをPCMにおいて圧縮せずPCMにおいて非圧縮映像として留めるよう定義する新たなメモリマップが生成される。それ故、ページ206Aは、DRAMにはロードされず、ページ206Aが次に要求されたときにはPCMから直接読み取られる。
別の実施形態では、ロガー210は、プロファイラー209によって発生されたプロファイルデータを、システムのメモリマップを手動で変更し且つシステムメモリを手動で再構築するためにユーザが使用できるフォーマットへとフォーマットする。ロガー210は、プロファイラーの出力を受け取り、それを、特定のページ(例えば、特定のデータオブジェクト、特定のファイル、特定の実行可能な映像、特定のデータベースファイル、等、並びにそのファイル内のオフセット)へマップして戻す。このフォーマットは、どのページが高頻繁でロードされ、どのページが低頻度でロードされたか示すことのできるヒストグラムでよい。ユーザは、このヒストグラムに与えられるデータに基づいて、システムのメモリマップを手動で変更し、システムメモリを手動で再構築することができる。
別の実施形態では、システム200は、システムメモリをダイナミックに再構成するためのメモリリコンフィギュレータ240を備えている。このメモリリコンフィギュレータ240は、プロファイラー209の出力を自動的に受け取り、そしてどのページを非圧縮映像として不揮発性メモリに記憶すべきかを識別する。プロファイラー209の出力を使用して、メモリリコンフィギュレータ240は、識別されたページを解凍し、そして情報(例えば、新たなメモリマップ)をメモリリロケータ230に与える。
メモリリロケータ230は、新たなメモリマップを使用して、ページ欠陥ハンドラー220と対話し、新たなメモリマップに基づいてNOR又はPCMからメモリオブジェクトを得られるようにする。上述した例を使用すると、メモリリロケータ230は、ページ206Aの要求がなされたことを検出し、ページ206AがPCMにおける非圧縮ページであることを識別し、そしてページ欠陥ハンドラー220に、ページ206AをDRAMにロードせず、ページ206AをPCMから直接読み取るように命令する。
図3は、揮発性メモリに記憶されたメモリオブジェクトを、不揮発性メモリから直接読み取られる候補として識別する方法の一実施形態のフローチャートである。この方法は、ハードウェア(例えば、回路、専用ロジック、等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行される)、又はその両方の組合せより成る処理ロジックによって遂行することができる。一実施形態では、処理ロジックは、図1のメモリプロファイリングシステム100に存在する。
ブロック301において、処理ロジックは、揮発性メモリ(例えば、DRAM)にロードされたメモリオブジェクトへのメモリアクセスを監視して、プロファイルデータを収集し、生成する。プロファイルデータは、メモリオブジェクトのアドレス、どれほど頻繁にオブジェクトがDRAMにロードされるか、及びどれほど頻繁にオブジェクトが書き込まれるか、を含むことができる。ブロック303では、処理ロジックは、プロファイルデータを使用して、メモリオブジェクトが不揮発性メモリへ移行され且つ不揮発性メモリから直接読み取られるべき候補であるかどうか決定する。ブロック305では、処理ロジックは、メモリオブジェクトの候補を、不揮発性メモリに非圧縮のメモリオブジェクトとして記憶し、メモリオブジェクトを不揮発性メモリから直接読み取りできるようにする。
図4は、メモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる候補であるかどうか決定するための方法の一実施形態の別のフローチャートである。この方法は、ハードウェア(例えば、回路、専用ロジック、等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行される)、又はその両方の組合せより成る処理ロジックによって遂行することができる。一実施形態では、処理ロジックは、図1のメモリプロファイリングシステム100に存在する。
ブロック401では、処理ロジックは、ページ欠陥を検出し、そしてページ欠陥を使用して、DRAMにロードされるべきメモリオブジェクトを識別する。処理ロジックは、ある時間周期又はプロファイル時間中に、ページテーブルのアクティビティを監視することによりページ欠陥を検出する。プロファイル時間は、既定の時間周期でもよいし、又はユーザが定義した時間周期でもよい。例えば、OEMは、2時間の時間周期でテストを実行することができ、それ故、処理ロジックは、2時間の時間周期でページテーブルのアクティビティを監視する。処理ロジックは、アドレス及びアドレス形式(例えば、読み取り又は書き込み)によりオブジェクトを識別することができる。
ブロック403では、処理ロジックは、メモリオブジェクトの書き込み頻度を決定する。書き込み頻度とは、メモリオブジェクトが書き込まれる回数である。書き込み頻度は、図5を参照して以下に詳細に述べる。ブロック405において、処理ロジックは、書き込み頻度が書き込みスレッシュホールドを満足するかどうか決定する。図6は、書き込みスレッシュホールドを満足させることについて詳細に示す。ブロック407では、処理ロジックは、書き込み頻度が書き込みスレッシュホールドを満足させるかどうかに基づいて、メモリオブジェクトを、不揮発性メモリから直接読み取るべき候補として識別する。
図5は、メモリオブジェクトの書き込み頻度を決定する方法500の一実施形態のフローチャートである。この方法は、ハードウェア(例えば、回路、専用ロジック、等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行される)、又はその両方の組合せより成る処理ロジックによって遂行することができる。一実施形態では、処理ロジックは、図1のメモリプロファイリングシステム100に存在する。
ブロック501において、処理ロジックは、ページテーブルのアクティビティを監視する。ブロック503では、処理ロジックは、ページ欠陥があるかどうか決定する。処理ロジックは、それがページ欠陥を検出した場合には(ブロック503)、ブロック505において、ページ欠陥を引き起こしたメモリオブジェクトのアドレスを識別する。ブロック507では、処理ロジックは、メモリオブジェクトのアドレスをログする。或いは又、処理ロジックは、メモリオブジェクトが既にロードされ、それ故、既にログされたと決定することができる。ブロック509では、処理ロジックは、メモリオブジェクトを読み取りのみとしてロードし、そしてブロック511において、メモリオブジェクトを、ロードされたとしてログする。
処理ロジックは、それがページ欠陥を検出しない場合には(ブロック503)、ブロック513において、メモリオブジェクトが書き込まれたかどうか決定する。処理ロジックは、それが書き込みアクティビティを検出する場合には(ブロック513)、メモリオブジェクトの書き込みアクティビティをログし(ブロック515)、そしてブロック521において、プロファイル時間周期が経過したかどうか決定する。
ブロック513において、処理ロジックは、それが書き込みアクティビティを検出しない場合には、ブロック517において、ページテーブルを清掃すべきかどうか決定する。処理ロジックは、ユーザ定義時間周期が経過したかどうかに基づいてページテーブルエントリーを清掃すべきかどうか決定する。例えば、OEMは、ページテーブルエントリーを10msごとに清掃するように処理ロジックを定義することができる。処理ロジックは、ユーザ定義時間周期が経過したと決定する場合には(ブロック517)、DRAMに現在ロードされているメモリオブジェクトを、ブロック519において、否ロードとマークし直し、従って、メモリオブジェクトを再ロードするように強制する。処理ロジックは、ユーザ定義時間周期が経過しないと決定した場合には(ブロック517)、ブロック521において、プロファイル時間周期が経過したかどうか決定する。
ブロック521において、処理ロジックは、プロファイル時間周期が経過しないと決定した場合には、ブロック501へ復帰して、ページテーブルアクティビティの監視を継続する。処理ロジックは、プロファイル時間周期が経過したと決定した場合には(ブロック521)、ブロック523において、ログされたデータを使用して、メモリオブジェクトが書き込まれた回数を決定する。
図6は、メモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる書き込みスレッシュホールドを満足するかどうか決定するための方法600の一実施形態のフローチャートである。この方法は、ハードウェア(例えば、回路、専用ロジック、等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行される)、又はその両方の組合せより成る処理ロジックによって遂行することができる。一実施形態では、処理ロジックは、図1のメモリプロファイリングシステム100に存在する。
ブロック601において、処理ロジックは、メモリオブジェクトの書き込み頻度がPCMスレッシュホールド以下であるかどうか決定する。PCMスレッシュホールドは、PCM技術の現在書き込み性能レートである。例えば、PCMの現在書き込み性能は、10MB/sのレートである。しかしながら、技術の開発に伴い、PCMの将来の書き込み性能は、例えば、40MB/sにもなり得る。処理ロジックは、メモリオブジェクトの書き込み頻度がPCMスレッシュホールドより大きいと決定する場合には(ブロック601)、メモリオブジェクトが不揮発性メモリに対する候補でないことを識別し(ブロック603)、方法600は、完了となる。
テーブル2Aから2Cは、各メモリアクセス形式に対するスレッシュホールドを例示する。
Figure 2010157218
テーブル2A
例えば、テーブル2Aは、NOR、PCM及びDRAM技術を含むシステムに対して、NOR、PCM及びDRAMの現在書き込み性能パラメータが「低頻度」及び「高頻度」という語に対する基準点を与えることを示している。それ故、技術の書き込み性能パラメータが変化する場合には、「低頻度」及び「高頻度」という語は、その変化に応じて調整される。以下のテーブル2Bは、NOR、PCM及びDRAM技術を含むシステムに対してメモリアクセス形式を定義するための基準として使用される現在書き込み性能レートを示す。
Figure 2010157218
テーブル2B
テーブル2Bで明らかなように、NORの現在書き込み性能は、1MB/sのレートであり、「低頻度」という語に対する基準点を与える。PCMの現在書き込み性能は、10MB/sのレートであり、「読み取り−書き込み」メモリアクセス形式に対する基準点を与える。DRAMの現在書き込み性能は、100MB/sのレートであり、「高頻度」という語に対する基準点を与える。それ故、メモリオブジェクトが1MB/s以下の書き込み頻度を有する場合には、オブジェクトが「読み取り−書き込み低頻度」メモリアクセス形式であり、オブジェクトが5MB/sの書き込み頻度を有する場合には、オブジェクトが「読み取り−書き込み」メモリアクセス形式であり、そしてオブジェクトが30MB/sの書き込み頻度を有する場合には、オブジェクトが「読み取り−書き込み高頻度」メモリアクセス形式である。
以下のテーブル2Cは、PCM技術の書き込み性能パラメータが40MB/sのレートに変化した場合を例示する。この例では、オブジェクトが30MB/sの書き込み頻度を有する場合に、オブジェクトは、今や、テーブル2Bにより前記で定義された「読み取り−書き込み高頻度」メモリアクセス形式ではなく、「読み取り−書き込み」メモリアクセス形式である。
Figure 2010157218
テーブル2C
図6に戻ると、処理ロジックは、メモリオブジェクトの書き込み頻度がPCMスレッシュホールド以下であると決定した場合に(ブロック601)、ブロック605において、メモリオブジェクトの書き込み頻度がNORスレッシュホールド以下であるかどうか決定する。NORスレッシュホールドは、NOR技術の現在書き込み性能レートである。例えば、NORの現在書き込み性能は、1MB/sのレートである。処理ロジックは、メモリオブジェクトの書き込み頻度がNORスレッシュホールドより大きいと決定する場合には(ブロック605)、ブロック607において、メモリオブジェクトが、PCMメモリに記憶されてそこから直接読み取られる候補であることを識別する。処理ロジックは、メモリオブジェクトの書き込み頻度がNORスレッシュホールド以下であると決定する場合には(ブロック605)、ブロック609において、メモリオブジェクトが、PCMメモリ及びNORメモリに記憶されてそこから直接読み取られる候補であることを識別する。
アルゴリズムは、ここでは、一般的に、希望の結果を導くアクション及びオペレーションの自己一貫性シーケンスであると考えられる。これらは、物理量の物理的操作を含む。通常、必ずしもそうでないが、これらの量は、記憶、転送、合成、比較、その他、操作することのできる電気的又は磁気的信号の形態をとる。主として共通使用の理由で、これらの信号をビット、値、エレメント、記号、キャラクタ、項、番号、等として参照するのが時々は便利であると分かっている。これら及び同様の語は、全て、適当な物理量に関連されるべきであり、且つそれらの量に適用される便利な表示に過ぎない。
特に指示のない限り、以下の説明から明らかなように、明細書全体にわたり、「監視」、「記憶」、「検出」、「使用」、「識別」、「マーキング」、「受信」、「ロード」、「再構成」、「フォーマット」、「決定」、等の語を使用する説明は、コンピューティングシステムのレジスタ及びメモリ内の物理的(電子的)量として表されたデータを、コンピューティングシステムのメモリ又はレジスタ或いは他のそのような情報記憶、伝達又は表示装置内の物理的量として同様に表された他のデータへと操作及び/又は変換するコンピュータ又はコンピューティングシステム又は同様の電子的コンピューティング装置のアクション及び/又はプロセスを指すことが明らかである。
本発明の実施形態は、ここに述べるオペレーションを遂行するための装置を包含する。装置は、望ましい目的に対して特別に構成されてもよいし、或いは装置に記憶されたプログラムにより選択的にアクチベートされ又は再構成される汎用のコンピューティング装置を含んでもよい。このようなプログラムは、これに限定されないが、フロッピーディスク、光学ディスク、コンパクトディスクリードオンリメモリ(CD−ROM)、磁気−光学ディスクを含む任意の形式のディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的にプログラム可能なリードオンリメモリ(EPROM)、電気的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)、磁気又は光学カード、或いは電子的インストラクションを記憶するのに適し且つコンピューティング装置のためのシステムバスに結合できる他の形式の媒体、等の記憶媒体に記憶することができる。
ここに述べる技術に基づくプログラムと共に種々の汎用システムを使用することもできるし、或いはここに述べる方法を遂行するように特殊な装置を構成するのが便利であると分かっている。種々のこれらシステムに対する望ましい構造は、ここでの説明から明らかとなろう。更に、本発明の実施形態は、特定のプログラミング言語を参照して説明しなかった。ここに述べる本発明の技術を実施するのに種々のプログラミング言語を使用することができる。更に、ここに述べるオペレーション、能力及び特徴は、ハードウェア(個別回路又は集積回路)及びソフトウェアの組合せで実施できることを理解されたい。
以上、本発明の特定の実施形態を参照して、本発明を説明した。しかしながら、本発明の広い精神及び範囲から逸脱せずに種々の変更や修正がなされ得ることが明らかである。従って、明細書及び図面は、単なる例示に過ぎず、それに限定されるものではない。
100:メモリプロファイリングシステム
105:インターフェイス
110:プロセッサ
115:システムメモリ
120:ワイヤレスインターフェイス
130:一体的メモリ管理ユニット(MMU)
140:アンテナ
141:メモリマネージャー
143:ランダムアクセスメモリ(RAM)
145:オペレーティングシステム
147:アプリケーションプログラム
149:他のプログラムモジュール
150:リードオンリメモリ(ROM)
151:プログラムデータ
155:不揮発性メモリ
200:メモリプロファイリングシステム
202:変換ルックアサイドバッファ(TLB)
204:ページテーブル
205:ページ欠陥
206A、206B、206D、206E:ページ
207A−E:ページテーブルエントリー
208:ページテーブルエントリー(PTE)クリーナー
209:プロファイラー
210:ロガー
220:ページ欠陥ハンドラー
230:メモリリロケータ
240:メモリリコンフィギュレータ

Claims (20)

  1. 揮発性メモリ内のメモリオブジェクトへのメモリアクセスを監視してプロファイルデータを収集し及び生成するステップと、
    揮発性メモリ内のメモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる候補であるかどうかを、前記プロファイルデータを使用して決定するステップと、
    前記メモリオブジェクトの候補を不揮発性メモリに記憶して、前記メモリオブジェクトが不揮発性メモリから直接読み取られるようにするステップと、
    を備えた方法。
  2. 揮発性メモリ内のメモリオブジェクトへのメモリアクセスを監視する前記ステップは、
    ページテーブルのアクティビティを監視する段階と、
    前記ページテーブルのアクティビティのページ欠陥を検出する段階と、
    前記ページ欠陥を使用して、揮発性メモリへロードされるメモリオブジェクトを識別する段階と、
    を含む請求項1に記載の方法。
  3. 揮発性メモリ内のメモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる候補であるかどうかを決定する前記ステップは、
    メモリオブジェクトの書き込み頻度を決定する段階であって、その書き込み頻度は、プロファイル時間周期中にメモリオブジェクトが書き込まれる回数であるような段階と、
    前記書き込み頻度が書き込みスレッシュホールドを満足するかどうか決定する段階と、
    前記書き込み頻度が書き込みスレッシュホールドを満足する場合にメモリオブジェクトが不揮発性メモリから直接読み取られる候補であることを識別する段階と、
    を含む請求項1に記載の方法。
  4. 前記書き込み頻度が書き込みスレッシュホールドを満足するかどうか決定する前記段階は、
    前記書き込み頻度がPCMスレッシュホールド以下であるかどうか決定する工程であって、そのPCMスレッシュホールドは、PCM技術の現在書き込み性能レートであるような工程と、
    前記書き込み頻度がPCMスレッシュホールド以下である場合にメモリオブジェクトが不揮発性メモリから直接読み取られる候補であることを識別する工程と、
    を含む請求項3に記載の方法。
  5. 前記書き込み頻度がNORスレッシュホールドを越えるかどうか決定する工程であって、第1のNORスレッシュホールドは、NORメモリ技術の現在書き込み性能レートであるような工程と、
    前記書き込み頻度がNORスレッシュホールドを越える場合にメモリオブジェクトがPCMメモリから直接読み取られる候補であることを識別する工程と、
    を含む請求項4に記載の方法。
  6. 前記書き込み頻度がNORスレッシュホールドを越えない場合にメモリオブジェクトがNORメモリ及びPCMメモリの少なくとも一方から直接読み取られる候補であることを識別する工程を更に含む請求項5に記載の方法。
  7. メモリオブジェクトの書き込み頻度を決定する前記段階は、
    メモリオブジェクトをリードオンリメモリオブジェクトとしてロードする工程と、
    ある時間周期中にメモリオブジェクトへ書き込むための試みを監視する工程であって、前記時間周期は、ユーザ定義時間周期であるような工程と、
    前記時間周期中にメモリオブジェクトが書き込まれる回数を決定する工程と、
    を含む請求項3に記載の方法。
  8. 前記メモリオブジェクトの候補を不揮発性メモリに記憶して、メモリオブジェクトが不揮発性メモリから直接読み取られるようにする前記ステップは、
    前記プロファイルデータに基づいてシステムメモリを再構成する段階であって、システムメモリのこの再構成は、不揮発性メモリ内のメモリオブジェクトを解凍し、そしてそのメモリオブジェクトを、解凍したメモリオブジェクトとして不揮発性メモリに記憶する段階を含む、請求項1に記載の方法。
  9. 前記メモリオブジェクトの候補を不揮発性メモリに記憶して、メモリオブジェクトが不揮発性メモリから直接読み取られるようにする前記ステップは、
    前記プロファイルデータを、システムメモリの再構築に使用されるフォーマットへとフォーマットする段階と、
    そのフォーマットされたデータを与えて、システムメモリを再構築する段階と、
    を含む請求項1に記載の方法。
  10. マシンによって実行された場合に、マシンが、
    揮発性メモリ内のメモリオブジェクトへのメモリアクセスを監視してプロファイルデータを収集し及び生成し、
    揮発性メモリ内のメモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる候補であるかどうかを、前記プロファイルデータを使用して決定し、
    前記メモリオブジェクトの候補を不揮発性メモリに記憶して、前記メモリオブジェクトが不揮発性メモリから直接読み取られるようにする、
    ことを含むオペレーションを遂行するようにさせるインストラクションを与えるマシンアクセス可能な記憶媒体。
  11. 揮発性メモリ内のメモリオブジェクトへのメモリアクセスの前記監視は、
    ページテーブルのアクティビティを監視し、
    前記ページテーブルのアクティビティのページ欠陥を検出し、
    前記ページ欠陥を使用して、揮発性メモリへロードされるメモリオブジェクトを識別する、
    ことを含む請求項10に記載のマシンアクセス可能な記憶媒体。
  12. 揮発性メモリ内のメモリオブジェクトが、不揮発性メモリに記憶されてそこから直接読み取られる候補であるかどうかの前記決定は、
    メモリオブジェクトの書き込み頻度を決定し、その書き込み頻度は、プロファイル時間周期中にメモリオブジェクトが書き込まれる回数であり、
    前記書き込み頻度が書き込みスレッシュホールドを満足するかどうか決定し、
    前記書き込み頻度が書き込みスレッシュホールドを満足する場合にメモリオブジェクトが不揮発性メモリから直接読み取られる候補であることを識別する、
    ことを含む請求項10に記載のマシンアクセス可能な記憶媒体。
  13. 前記書き込み頻度が書き込みスレッシュホールドを満足するかどうかの前記決定は、
    前記書き込み頻度がPCMスレッシュホールド以下であるかどうか決定し、そのPCMスレッシュホールドは、PCM技術の現在書き込み性能レートであり、
    前記書き込み頻度がPCMスレッシュホールド以下である場合にメモリオブジェクトが不揮発性メモリから直接読み取られる候補であることを識別する、
    ことを含む請求項12に記載のマシンアクセス可能な記憶媒体。
  14. 前記書き込み頻度がNORスレッシュホールドを越えるかどうか決定し、第1のNORスレッシュホールドは、NORメモリ技術の現在書き込み性能レートであり、
    前記書き込み頻度がNORスレッシュホールドを越える場合にメモリオブジェクトがPCMメモリから直接読み取られる候補であることを識別する、
    ことを含む請求項13に記載のマシンアクセス可能な記憶媒体。
  15. 前記書き込み頻度がNORスレッシュホールドを越えない場合にメモリオブジェクトがNORメモリ及びPCMメモリの少なくとも一方から直接読み取られる候補であることを識別することを更に含む、請求項14に記載のマシンアクセス可能な記憶媒体。
  16. メモリオブジェクトの書き込み頻度の前記決定は、
    メモリオブジェクトをリードオンリメモリオブジェクトとしてロードし、
    ある時間周期中にメモリオブジェクトへ書き込むための試みを監視し、前記時間周期は、ユーザ定義時間周期であり、
    前記時間周期中にメモリオブジェクトが書き込まれる回数を決定する、
    ことを含む請求項12に記載のマシンアクセス可能な記憶媒体。
  17. 前記メモリオブジェクトの候補を不揮発性メモリに記憶して、メモリオブジェクトが不揮発性メモリから直接読み取られるようにすることは、
    前記プロファイルデータに基づいてシステムメモリを再構成することを含み、システムメモリのこの再構成は、不揮発性メモリ内のメモリオブジェクトを解凍し、そしてそのメモリオブジェクトを、解凍したメモリオブジェクトとして不揮発性メモリに記憶することを含む、請求項12に記載のマシンアクセス可能な記憶媒体。
  18. プロセッサと、
    前記プロセッサに結合された不揮発性メモリと、
    前記プロセッサに結合されたランダムアクセスメモリであって、このランダムアクセスメモリに記憶されたメモリオブジェクトを不揮発性メモリへ移行させ、その移行されたメモリオブジェクトが不揮発性メモリから直接アクセスされるようにするランダムアクセスメモリと、
    を備えたシステム。
  19. 前記プロセッサに関連されて、前記ランダムアクセスメモリ内でメモリオブジェクトが得られない場合にページ欠陥を発生するメモリ管理ユニットを更に備え、前記ランダムアクセスメモリは、このページ欠陥を使用して、不揮発性メモリへ移行すべき1つ以上のメモリオブジェクトを識別する、請求項18に記載のシステム。
  20. 前記ランダムアクセスメモリは、更に、そのランダムアクセスメモリに記憶されたメモリオブジェクトを不揮発性メモリへ移行させるようにシステムメモリマップを再構成する、請求項18に記載のシステム。
JP2009273923A 2008-12-29 2009-11-10 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置 Active JP5570790B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/345,306 US20100169708A1 (en) 2008-12-29 2008-12-29 Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US12/345,306 2008-12-29

Publications (2)

Publication Number Publication Date
JP2010157218A true JP2010157218A (ja) 2010-07-15
JP5570790B2 JP5570790B2 (ja) 2014-08-13

Family

ID=42221049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009273923A Active JP5570790B2 (ja) 2008-12-29 2009-11-10 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置

Country Status (5)

Country Link
US (1) US20100169708A1 (ja)
JP (1) JP5570790B2 (ja)
CN (1) CN101770430B (ja)
DE (1) DE102009051339A1 (ja)
TW (1) TWI501237B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180025491A (ko) * 2016-08-31 2018-03-09 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
JP2020077075A (ja) * 2018-11-06 2020-05-21 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
EP2273373A1 (en) * 2009-07-02 2011-01-12 Vodafone Holding GmbH Storing of frequently modified data in an IC card
US8850151B2 (en) * 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US9465745B2 (en) * 2010-04-09 2016-10-11 Seagate Technology, Llc Managing access commands by multiple level caching
CN102693095B (zh) * 2011-03-25 2014-12-31 国基电子(上海)有限公司 数据操作方法及数据操作装置
US9471622B2 (en) 2012-04-30 2016-10-18 International Business Machines Corporation SCM-conscious transactional key-value store
CN104380259B (zh) * 2012-10-17 2018-09-21 华为技术有限公司 降低内存系统功耗的方法和内存控制器
CN104216837A (zh) * 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
EP3204859B1 (en) * 2014-10-07 2020-12-02 Google LLC Methods and systems for cache lines de-duplication
US10387315B2 (en) * 2016-01-25 2019-08-20 Advanced Micro Devices, Inc. Region migration cache
TWI585676B (zh) 2016-03-18 2017-06-01 慧榮科技股份有限公司 資料儲存裝置、記憶體控制器及其操作方法
CN107203476B (zh) 2016-03-18 2021-08-31 慧荣科技股份有限公司 数据储存装置、存储器控制器及其数据管理方法
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10649665B2 (en) 2016-11-08 2020-05-12 Micron Technology, Inc. Data relocation in hybrid memory
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10083751B1 (en) 2017-07-31 2018-09-25 Micron Technology, Inc. Data state synchronization
KR101851122B1 (ko) * 2018-01-26 2018-04-24 (주)베스트케이에스 페이지 테이블 기반의 데이터 관리 방법
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
US11436041B2 (en) 2019-10-03 2022-09-06 Micron Technology, Inc. Customized root processes for groups of applications
US11474828B2 (en) 2019-10-03 2022-10-18 Micron Technology, Inc. Initial data distribution for different application processes
US11599384B2 (en) 2019-10-03 2023-03-07 Micron Technology, Inc. Customized root processes for individual applications
US11429445B2 (en) 2019-11-25 2022-08-30 Micron Technology, Inc. User interface based page migration for performance enhancement
US12026387B2 (en) * 2022-03-24 2024-07-02 Advanced Micro Devices, Inc. Page swapping to protect memory devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272817A (ja) * 2003-03-11 2004-09-30 Ricoh Co Ltd 画像メモリ制御方法
JP2005216053A (ja) * 2004-01-30 2005-08-11 Matsushita Electric Ind Co Ltd 最適メモリ配置演算装置及び最適メモリ配置方法
JP2007293604A (ja) * 2006-04-25 2007-11-08 Toshiba Corp 情報処理装置およびプログラムロード方法
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2008242503A (ja) * 2007-03-23 2008-10-09 Canon Inc メモリ管理装置及び方法、並びにプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4017177B2 (ja) * 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
KR100626371B1 (ko) * 2004-03-30 2006-09-20 삼성전자주식회사 캐쉬 읽기 동작을 수행하는 비휘발성 메모리 장치, 그것을포함한 메모리 시스템, 그리고 캐쉬 읽기 방법
US7257684B1 (en) * 2004-05-25 2007-08-14 Storage Technology Corporation Method and apparatus for dynamically altering accessing of storage drives based on the technology limits of the drives
JP4452158B2 (ja) * 2004-11-10 2010-04-21 シャープ株式会社 不揮発性メモリシステム
JP4761980B2 (ja) * 2005-09-13 2011-08-31 株式会社東芝 半導体集積回路装置
JP4528242B2 (ja) * 2005-10-20 2010-08-18 富士通セミコンダクター株式会社 メモリシステムおよびメモリシステムの動作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272817A (ja) * 2003-03-11 2004-09-30 Ricoh Co Ltd 画像メモリ制御方法
JP2005216053A (ja) * 2004-01-30 2005-08-11 Matsushita Electric Ind Co Ltd 最適メモリ配置演算装置及び最適メモリ配置方法
JP2007293604A (ja) * 2006-04-25 2007-11-08 Toshiba Corp 情報処理装置およびプログラムロード方法
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2008242503A (ja) * 2007-03-23 2008-10-09 Canon Inc メモリ管理装置及び方法、並びにプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180025491A (ko) * 2016-08-31 2018-03-09 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102614083B1 (ko) 2016-08-31 2023-12-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
JP2020077075A (ja) * 2018-11-06 2020-05-21 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
JP7013360B2 (ja) 2018-11-06 2022-01-31 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
DE102009051339A1 (de) 2010-07-01
CN101770430B (zh) 2013-06-19
TWI501237B (zh) 2015-09-21
US20100169708A1 (en) 2010-07-01
JP5570790B2 (ja) 2014-08-13
CN101770430A (zh) 2010-07-07
TW201032232A (en) 2010-09-01

Similar Documents

Publication Publication Date Title
JP5570790B2 (ja) 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置
US20100169602A1 (en) Method and Apparatus for Efficient Memory Placement
TWI596603B (zh) 用於快取壓縮資料之設備、系統及方法
TWI518503B (zh) 用於記憶體陣列中之平均抹寫之方法及設備
US8312204B2 (en) System and method for wear leveling in a data storage device
RU2427892C2 (ru) Способ и устройство для установки политики кэширования в процессоре
US10558569B2 (en) Cache controller for non-volatile memory
US20120239853A1 (en) Solid state device with allocated flash cache
US10635358B2 (en) Memory management method and storage controller
CN108595349B (zh) 大容量存储设备的地址转换方法与装置
AU2010234341A1 (en) Host control of background garbage collection in a data storage device
US11886333B2 (en) Memory block reclamation method and apparatus
TW201011767A (en) NAND error management
TW201333699A (zh) 用於固態磁碟機之直接記憶體位址
US10101938B2 (en) Data storage system selectively employing multiple data compression techniques
JP2002140227A (ja) メモリ圧縮管理デバイス
US8417903B2 (en) Preselect list using hidden pages
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
US11733931B1 (en) Software defined hybrid flash storage memory controller
CN110515861B (zh) 处理刷写命令的存储设备及其方法
TW202248862A (zh) 管理記憶體系統的方法以及用於頁面遷移的裝置及系統
JP2010026969A (ja) データ処理装置
JP2014197285A (ja) 半導体メモリ装置
US20230076365A1 (en) Fast lba/pba table rebuild
CN117311594A (zh) 管理nvm芯片的方法及相关产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121112

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130726

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20130726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140415

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140515

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: 20140616

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140625

R150 Certificate of patent or registration of utility model

Ref document number: 5570790

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250