JP4304974B2 - Data management method for cache memory and information processing apparatus - Google Patents

Data management method for cache memory and information processing apparatus Download PDF

Info

Publication number
JP4304974B2
JP4304974B2 JP2002360470A JP2002360470A JP4304974B2 JP 4304974 B2 JP4304974 B2 JP 4304974B2 JP 2002360470 A JP2002360470 A JP 2002360470A JP 2002360470 A JP2002360470 A JP 2002360470A JP 4304974 B2 JP4304974 B2 JP 4304974B2
Authority
JP
Japan
Prior art keywords
history
address
data
program
function
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.)
Expired - Fee Related
Application number
JP2002360470A
Other languages
Japanese (ja)
Other versions
JP2004192403A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2002360470A priority Critical patent/JP4304974B2/en
Publication of JP2004192403A publication Critical patent/JP2004192403A/en
Application granted granted Critical
Publication of JP4304974B2 publication Critical patent/JP4304974B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、キャッシュメモリのデータ管理方法及び情報処理装置に係わり、特に、演算処理を行う演算装置に内蔵されたキャッシュメモリへのデータの格納を管理するためのキャッシュメモリのデータ管理方法、及びキャッシュメモリが内蔵された演算装置を備えた情報処理装置に関する。
【0002】
【従来の技術】
CPUでは、外部メモリから必要なデータを呼び出して演算処理を行うが、一般に、外部メモリとして用いられるDRAM(Dynamic RAM)などの記憶装置は、大容量化が容易だが応答速度が遅いという特徴があり、外部メモリへのアクセス時間のためにCPUの処理能力(パフォーマンス)が低下してしまう。このため、図8に示すように、CPU200には、CPUコア(本体)202から高速アクセス可能なSRAM(Static RAM)などがキャッシュメモリ204として備えられている。例えば、関数(プログラム)の呼出しを例に説明すると、CPU200では、CPUコア202により外部メモリ206から必要な関数208を呼び出した際に、キャッシュメモリ204にも当該関数208を格納しておく(矢印▲1▼参照)。次回、同一の関数208を読み込む必要がある場合には、外部メモリ206の代わりにキャッシュメモリ204からCPUコア202に当該関数208が供給されるようになっている(矢印▲2▼参照)。
【0003】
ここで、キャッシュメモリに必要とされるデータを全て格納できれば、格納後は外部メモリへのアクセスは不要となる。しかしながら、キャッシュメモリの大容量化は技術的に難しく、格納可能なデータ量には限界があり、外部メモリへのアクセスを不要にすることは不可能である。このため、従来より、命令アドレスの実行履歴を保持しておき、過去に必要とされたデータがキャッシュメモリに格納されていなかった(キャッシュミス)ときの命令アドレスの実行アドレスが近づいた際に、キャッシュミス時にキャッシュメモリに格納すべきデータを前もって外部メモリよりもアクセス時間の短い場所に設けたバッファに格納しておき、キャッシュミス時の不利を最小限に抑える技術が提案されている。
【0004】
【特許文献1】
特開2001−134439号公報
【0005】
【発明が解決しようとする課題】
しかしながら、従来技術では、バッファを介在させることで、外部メモリにアクセスするよりもキャッシュミスの1回当たりのアクセス時間を短縮することはできるが、キャッシュミスの発生頻度は変わらないため、キャッシュミス回数が多いほどバッファへのアクセス回数が増えて、CPUのパフォーマンスが低下してしまうという問題があった。
【0006】
本発明は上記問題点を解消するためになされたもので、キャッシュメモリを内蔵した演算装置の外部メモリへのアクセス回数を低減することができるキャッシュメモリのデータ管理方法及び情報処理装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するために、請求項1に記載の発明は、演算装置に内蔵されたキャッシュメモリへのデータの格納を管理するためのキャッシュメモリのデータ管理方法であって、前記演算装置で所定のプログラムを実行した際に、当該実行中にアクセスしたデータのアドレスの履歴を取得して記憶しておき、前記所定のプログラムを実行する際に、前記履歴に含まれるアドレスを選択し、選択したアドレスに対応するデータを前記キャッシュメモリに常駐させ、前記履歴から得られるアドレスの頻度順位の変動が無かった場合に、以降の前記プログラムの実行時における履歴の取得を中止することを特徴としている。
【0008】
請求項1に記載の発明によれば、キャッシュメモリを内蔵した演算装置において、過去にプログラムを実行したときにアクセスしたアドレスの履歴を取得して記憶しておき、当該プログラムが再び実行されるときには、この履歴に含まれるアドレスの中から選択したアドレスのデータがキャッシュメモリに常駐される。したがって、演算装置では、当該プログラムの2回目以降の実行中に、選択したアドレスにアクセスする必要が生じた際には、外部のメモリからではなく、キャッシュメモリから当該アドレスに対応するデータの供給を受けることができる。これにより、外部メモリへのアクセス回数を低減することができる。
【0009】
なお、取得するアドレスは、所定の実行単位のアドレスでもよいし、所定の参照単位のアドレスでもよい。すなわち、キャッシュメモリへは、所定のプログラムの実行時に呼び出されるサブのプログラムである関数やその一部を常駐させてもよいし、所定のプログラムの実行時に参照されるデータを常駐させることもできる。
【0010】
上記のキャッシュメモリのデータ管理方法においては、請求項2に記載されているように、前記履歴中の高頻度のアドレスを選択するようにすることが好ましい。
【0011】
上記のキャッシュメモリのデータ管理方法は、以下の情報処理装置により実現可能である。すなわち、この情報処理装置は、請求項3に記載されているように、キャッシュメモリが内蔵された演算装置と、前記演算装置で所定のプログラムを実行した際に、アクセスしたデータのアドレスの履歴を取得する履歴取得手段と、前記履歴取得手段により取得された前記履歴を記憶する記憶手段と、前記記憶手段に記憶されている前記履歴に含まれるアドレスを選択する選択手段と、前記選択手段により選択されたアドレスに対応するデータが前記キャッシュメモリに常駐されるように制御する制御手段と、前記履歴から得られるアドレスの頻度順位の変動が無かった場合に、以降の前記プログラムの実行時における前記履歴取得手段による履歴の取得を中止する中止手段と、を備えたことを特徴とする。
【0012】
なお、上記の情報処理装置において、履歴を取得するアドレスは、請求項4に記載されているように、所定の実行単位のアドレスでもよいし、請求項5に記載されているように、所定の参照単位のアドレスでもよい。また、情報処理装置において、請求項6に記載されているように、前記選択手段が、前記履歴中で高頻度のアドレスを選択するとよい。
【0013】
また、請求項7に記載されているように、前記取得手段が、前記プログラム毎に前記履歴を取得して管理するとよい。
【0014】
また、前記取得手段による前記履歴の取得を中止する中止手段を更に有するとよい。この場合の中止手段は、2回目以降の前記プログラムの実行時に、前記取得手段による履歴の取得を中止するようにしてもよいし、前記取得手段によって取得した前記履歴において、前記アドレスの頻度順位の変動が無かった場合に、以降の前記プログラムの実行時における前記取得手段による履歴の取得を中止するようにしてもよい。
【0015】
【発明の実施の形態】
次に、図面を参照して本発明に係る実施形態の1例を詳細に説明する。
【0016】
図1に本発明が適用された情報処理装置を示す。図1に示す情報処理装置10は、演算装置としてのCPU12と、外部メモリとしてのROM14及びRAM16と、不揮発メモリ18とを備え、CPU12、ROM14、RAM16、及び不揮発メモリ18はバス20により相互に接続されている。
【0017】
CPU12は、アプリケーションプログラム22に従って演算処理を行うCPUコア24と、CPUコア24で演算処理する関数を表すプログラムデータ(以下、「関数」と称す)26を格納するためのキャッシュメモリ(ICache)28と、CPUコア24での演算処理時に参照される参照データ(以下、「データ」と称す)30を格納するためのキャッシュメモリ(DCache)32と、キャッシュメモリ28、32への関数26及びデータ30の格納を制御するキャッシュ制御部34とが相互に接続されて構成されている。
【0018】
ROM14には、複数の(1つでもよい)アプリケーションプログラム22が格納されている。アプリケーションプログラム22は、当該アプリケーションプログラム22が目的とする本来の処理を行うための本体プログラム22A、及び該本体プログラム22Aの処理全体に係わる処理時間を短縮するための付加プログラム22Bを含んで構成されている。本体プログラム22Aには、当該アプリケーションプログラム22の本来目的としている処理を行うために、関数の呼出しや関数間での引数の引渡しなど全体の処理を制御するためのメインのプログラムと共に、サブのプログラムである各種の関数26が含まれている。一般に、この本体プログラム22Aがアプリケーションプログラムと称される。すなわち、本実施形態においては、一般的なアプリケーションプログラムに付加プログラム22Bが付加されてパッケージ化されている。
【0019】
前述のCPU12のキャッシュメモリ28には、アプリケーションプログラム22の実行時に、当該アプリケーションプログラムの本体プログラム22Aの中から必要な関数26が適宜呼び出されて格納される。
【0020】
RAM16は、アプリケーションプログラム22に従った演算処理の処理対象データ、処理結果データ、パラメータ設定値といった各種のデータ30を格納するために用いられ、前述のキャッシュメモリ32には、アプリケーションプログラム22の実行時に、このRAM16から必要なデータ30が適宜呼び出されて格納される。
【0021】
不揮発メモリ18には、例えばEEPROM、Flashメモリ、ハードディスクなどを用いることができる。不揮発メモリ18は、各アプリケーションプログラム22毎に後述する履歴データ36を格納するために用いられる。すなわち不揮発メモリ18が、記憶手段に対応する。
【0022】
ここで、本実施形態に係る情報処理装置10では、CPU12によりROM14に格納されているアプリケーションプログラム22を実行した場合、当該情報処理装置10のハードウェア資源を利用して、図2に示す機能が構築されるようになっている。
【0023】
すなわち、アプリケーションプログラム22の実行により、情報処理装置10には、プログラム実行部50と、プログラム実行部50でアクセスしたアドレスを管理するアドレス履歴管理部52と、アドレス選択部54とが構築される。
【0024】
プログラム実行部50は、本体プログラム22Aにより構築される機能であり、本体プログラム22Aに基づく処理、すなわちアプリケーションプログラム22が目的とする本来の処理を行う。
【0025】
アドレス履歴管理部52は、付加プログラム22Bにより構築される機能であり、プログラム実行部50の動作中、すなわち本体プログラム22Aの実行中にアクセスした所定の実行単位のアドレス履歴、すなわち実行した関数26の履歴を取得する。また、本体プログラム22Aの実行中にアクセスした所定の参照単位のアドレス履歴、すなわちデータ30のアドレスについても同様に履歴を取得する。すなわち、アドレス履歴管理部52が、履歴取得手段としての役目を担っている。
【0026】
また、アドレス履歴管理部52は、本体プログラム22Aの実行中は、取得した関数26やデータ30のアドレスの履歴56をRAM16に蓄積していき、本体プログラム22Aの処理が終了したら、その結果を履歴データ36として不揮発メモリ18に記憶し、電源がOFFされても保持可能にしておく。なお、履歴データ36は、アプリケーションプログラム22毎に管理される。
【0027】
なお、具体的には、本実施形態では、各関数26や各データ30の先頭アドレスへのアクセスした履歴56を取得するようになっている。また、本実施形態では、履歴データ36として取得した履歴56そのものを用いるが、履歴56から各関数26及び各データ30のアクセス回数を求めて、各々の求めたアクセス回数を履歴データ36として用いてもよく、何れにしろ履歴データ36により、各関数26の実行頻度及び各データ30の使用頻度が把握可能である。
【0028】
アドレス選択部54は、付加プログラム22Bにより構築される機能であり、特定のアドレスを選択して、キャッシュ制御部34に通知する。詳しくは、不揮発メモリ18の履歴データ36を参照して、実行頻度の高い関数26や、使用頻度の高いデータ30を特定して、当該関数26やデータ30の実行単位のアドレスを通知する。すなわち、アドレス選択部54が、選択手段としての役目を担っている。
【0029】
キャッシュ制御部34は、通知されたアドレスに基づいて、対応する関数26やデータ30をROM14やRAM16から呼び出して、キャッシュメモリ28、32内に常駐させるようになっている。すなわち、キャッシュ制御部34が、制御手段としての機能を担っている。
【0030】
詳しくは、キャッシュ制御部34では、キャッシュメモリ28、32における常駐指示された特定の関数26やデータ30の記憶領域については、他の関数26やデータ30を新たに呼び出した際にも書き換えが行われないようにロックしておく。特定の関数26やデータ30の記憶領域以外のキャッシュメモリ28、32の記憶領域については、新たに呼び出された他の関数26やデータ30の内容に随時更新する。
【0031】
したがって、アドレス選択部54では、キャッシュ制御部34へアドレス通知することにより、当該アドレスが示す特定の関数26及びデータ30をキャッシュメモリ28、32内に常駐させることができる。
【0032】
次に、本実施形態の作用を説明する。本実施形態に係る情報処理装置10では、アプリケーションプログラム22の実行により、図3に示す処理が開始される。
【0033】
すなわち、アプリケーションプログラム22が実行されると、図3に示すように、まず、ステップ100において、アドレス履歴管理部52の機能により、不揮発メモリ18に履歴データ36が有るか否かが判断される。当該アプリケーションプログラム22の初回の実行時には、履歴が取得されたことがないため、不揮発メモリ18内には履歴データ36は存在せず、ステップ100では否定判定されて、ステップ106に進む。
【0034】
ステップ106では、プログラム実行部50の機能により、アプリケーションプログラム22が目的とする本来の処理、すなわち本体プログラム22Aが実行されると共に、ステップ108で、アドレス履歴管理部52の機能により、この本体プログラム22Aの実行中にアクセスした関数26及びデータ30のアドレス履歴がそれぞれ取得される。そして、最後にステップ110で、アドレス履歴管理部52の機能により、履歴取得結果を履歴データ36として不揮発メモリ18に更新記録して、図3の処理は終了される。なお、この場合は、初めて取得された履歴であるため、履歴データ36は不揮発メモリ18に新規登録されることになる。
【0035】
ここで、具体的に、関数26の履歴取得について説明する。関数26の履歴を取得するためには、例えば、C言語であれば、図4に示すプログラム70を各関数26の先頭に記述することで、当該関数26が実行された履歴を履歴データ36に記録することが可能となる。なお、この場合、このプログラム70は、付加プログラム22Bの一部を構成するものとみなすことができる。
【0036】
具体的に、アプリケーションプログラム22の本体プログラム22Aがfunc1、func2、及びfunk3という名称の3つの関数26A、26B、26Cを備えており(図6参照)、アプリケーションプログラム22(より詳しくは本体プログラム22A)を実行するとfunk1の関数26Aが10回、funk2の関数26Bが100回、funk3の関数26Cが5回実行されるとする。
【0037】
この場合、各関数26の先頭に図4に示したプログラム70を記述することで、アプリケーションプログラム22を実行した際に、履歴データの格納先へのポインタである「record」には、各関数26が実行されるたびに、当該関数26の先頭アドレスである関数名が履歴56として追加記述されていく。すなわち、実行された順番に、各関数26のアドレスとして関数名が羅列された履歴56が取得される。そして、最終的には、図5に示すように、funk1のアドレスが10個、funk2のアドレスが100個、funk3のアドレスが5個記述された履歴データ36が不揮発メモリ18に格納される。このように、簡単なプログラムの記述だけで、アクセスした関数26のアドレス履歴を取得可能である。なお、例示は省略するが、アクセスしたデータ30の履歴についても同様に簡単なプログラムで取得可能である。
【0038】
一方、アプリケーションプログラム22の2回目以降の実行時には、上記のようにして不揮発メモリ18内に履歴データ36が記憶されているので、図3のステップ100で肯定されてステップ102に進む。ステップ102では、アドレス選択部54の機能により、当該アプリケーションプログラム22の履歴データ36を参照して、最も頻度の高いアドレス、すなわち最も実行頻度の関数26及び最も使用頻度の高いデータ30が選択される。そして、次のステップ104で、キャッシュ制御部34に対して、当該アドレスに対応する関数26及びデータ30をキャッシュメモリ28、32にロック(常駐)させた後、ステップ106に移行するようになっている。これにより、当該アプリケーションプログラム22の2回目以降の実行時には、キャッシュ制御部34により、以前にアプリケーションプログラム30を実行した際に実行頻度が高かった関数26及び使用頻度が高かったデータ30が予めキャッシュメモリ28、32内にロック(常駐)された状態で、アプリケーションプログラム22が目的とする本来の処理が行われることになる。
【0039】
例えば、前述の例では、図5に示した履歴データ36からfunk2の関数26Bが最も実行頻度が高いことが分かるため、図6(A)に示すように、funk2の関数26Bが外部メモリとしてのROM14から読み出されてキャッシュメモリ28にロックされる。funk2の関数26を格納した後のキャッシュメモリ28の残存容量では、関数26A又は関数26Cの何れか一方しか格納できないとすると、例えばfunk1の関数26Bが必要となりROM14から呼び出された際には、図6(B)に示すように、当該funk1の関数26Bがキャッシュメモリ28の残りの領域に格納される。
【0040】
その後、funk3の関数26Cが必要となりROM14から呼び出されると、図6(C)に示すように、funk1の関数26Aの代えて、funk3の関数26Cがキャッシュメモリ28の残りの領域に格納(上書き)される。再び、funk1の関数26Aが必要となった際には、図6(D)に示すように、funk3の関数26Cに代えて、funk1の関数26Aがキャッシュメモリ28の残りの領域に格納される。この間、funk2の関数26Bについてはキャッシュメモリ28に格納されたままであるので、funk2の関数26Bが必要な場合には、ROM14にアクセスせずとも、常時キャッシュメモリ28から当該関数26BがCPUコア24に供給される。
【0041】
また、2回目以降の実行時においても、図3のステップ108で、アプリケーションプログラムが目的とする本来の処理中、すなわち本体プログラム22Aの実行中にアクセスした各関数26及び各データ30のアドレス履歴が取得されて、ステップ110では、その結果を履歴データ36に加算して、累計データとなるように不揮発メモリ18内の履歴データ36が更新される。すなわち、この履歴データ36の更新により、2回目以降の実行時は、当該アプリケーションプログラム22の前回の実行までで、最も実行頻度の高かった関数26及び使用頻度の高かったデータ30をキャッシュメモリ28、32にロック(常駐)させて、アプリケーションプログラム22が目的とする本来の処理が実行されることになる。
【0042】
このように、本実施形態によれば、アプリケーションプログラム22を実行した際のアドレス履歴を取得することで、実行頻度の高い関数26及び使用頻度の高いデータ30を学習して、次回の当該アプリケーションプログラム22の実行時には、当該実行頻度の最も高い関数26及び使用頻度の最も高いデータ30をキャッシュメモリ28、32にロック(常駐)させるようになっている。これにより、実行頻度の高い関数26及び使用頻度の高いデータ30については、ROM14やRAM16といった外部メモリからではなく、キャッシュメモリ28、32から供給を受けることができ、ROM14やRAM16といった外部メモリへのアクセス回数を低減することができる。すなわち、外部メモリへのアクセスによるCPUのパフォーマンス低下を抑えることができ、当該アプリケーションプログラム22全体の処理に要する時間を短縮することができる。
【0043】
なお、上記では、アプリケーションプログラム22が実行されるたびに、毎回、アドレス履歴を取得して、実行頻度の高い関数26及び使用頻度の高いデータ30を学習する場合を例に説明したが、本発明はこれに限定されるものではない。例えば、図2に点線で示すように、アプリケーションプログラム22を実行した際に、付加プログラム22Bにより、情報処理装置10内に、中止手段として、アドレス履歴管理部52の動作を制御する履歴取得制御部80が更に構築されるようにし、当該アプリケーションプログラム22の実行により、例えば図7に示す処理が開始されるようにしてもよい。なお、図7では、図3と同一の処理ステップについては同一のステップ番号を付与しており、詳細な説明は省略する。
【0044】
すなわち、図7に示す処理では、ステップ106のアプリケーションプログラム22本来の処理の開始前に、ステップ120において、履歴取得制御部80の機能により、履歴の取得が必要か否かが判断されるようになっている。
【0045】
なお、このときの判断基準は、アプリケーションプログラム22が目的とする本来の処理、すなわち本体プログラム22Aにより実行される処理により定めればよい。例えば、本体プログラム22Aが毎回同じ処理を実行するためのものである場合は、関数26の実行頻度及びデータ30の使用頻度の順位に変動はないので、不揮発メモリ18に履歴データ36が無い場合にのみ、履歴の取得が必要であると判断し、不揮発メモリ18に履歴データ36が格納されている、すなわち過去に1回でも履歴が取得されている場合には、履歴の取得は不要であると判断すればよい。本体プログラム22Aが毎回同じ処理を実行するものではない場合は、関数26の実行頻度及びデータ30の使用頻度の順位に大きな変動がなくなる(収束する)までは、履歴の取得が必要であると判断し、大きな順位変動が無くなったら、履歴の取得は不要であると判断すればよい。
【0046】
ステップ120で履歴の取得が必要と判断した場合には、図3と同様にステップ106で、アプリケーションプログラム22が目的とする本来の処理を行いながら、ステップ108で関数26及びデータ30のアドレス履歴を取得して、ステップ110で履歴データ36を更新し、処理を終了する。一方、履歴の取得が不要と判断された場合には、履歴取得制御部80によりアドレス管理部52の動作が中止され、ステップ120からステップ122に進み、アプリケーションプログラム22が目的とする本来の処理を行ったら、アドレス履歴の取得及び履歴データ36の更新は行わずに、そのまま処理を終了する。
【0047】
このように、履歴取得の要否を判断し、必要が無い場合、すなわち関数26の実行頻度やデータ30の使用頻度の順位に変動が無く、ロックするための関数26やデータ30の選択に変更が無いと見込まれる場合には、無駄な履歴の取得を中止させることで、さらに処理時間の短縮が可能である。
【0048】
なお、上記では、最も実行頻度の高い関数26及び使用頻度の高いデータ30をキャッシュメモリ28、30にロックする場合を例に説明したが、本発明はこれに限定されるものではない。実行回数及び使用回数が複数回以上の関数26及びデータ30をキャッシュメモリにロックさせれば、当該関数26及びデータ39の2回目以降のアクセス時間を短縮でき、外部メモリへのアクセスによるCPUのパフォーマンス低下を防止することができる。ただし、より高いパフォーマンス低下防止効果を得るためには、実行頻度及び使用頻度が高いものをロックすることが好ましい。
【0049】
また、本発明は、キャッシュメモリにロックする関数26やデータ30の個数を特に限定されるものではなく、例えば、実行頻度及び使用頻度の高い順に、複数の関数26やデータ30をキャッシュメモリにロックさせてもよい。ロックさせる関数26やデータ30の個数は、キャッシュメモリの容量と関数及びデータのデータサイズに応じて適宜定めればよい。また、特に関数26については、関数26単位でキャッシュメモリ28にロックするのではなく、関数26の一部分のみをロックさせてもよい。言い替えると、履歴を取得する実行単位のアドレスは、各関数の先頭のアドレスではなく、各関数(プログラム)中の任意のアドレスとすることもできる。
【0050】
また、上記では、アプリケーションプログラム22毎に、アクセスしたアドレスの履歴を取得して、履歴データ36を管理する場合を例に説明したが、本発明はこれに限定されるものではなく、アプリケーションプログラム22を区別せずに、アクセスしたアドレスの履歴をまとめて1つの履歴データ36としてもよい。ただし、アプリケーションプログラム22によって、実行する関数26や参照するデータ30は異なるため、アプリケーションプログラム22毎に最適な関数26やデータ30を選択してキャッシュメモリ28、32に常駐させるためには、上記のように、アプリケーションプログラム22毎に履歴データ36を取得して管理することが好ましい。
【0051】
【発明の効果】
上記に示したように、本発明は、キャッシュメモリを内蔵した演算装置の外部メモリへのアクセス回数を低減することができるという優れた効果を有する。
【図面の簡単な説明】
【図1】 本実施形態に係る情報処理装置の構成を示すブロック図である。
【図2】 本実施形態に係る情報処理装置の機能構成図である。
【図3】 本実施形態に係わる情報処理装置におけるアプリケーションプログラムの実行時の処理を示すフローチャートである。
【図4】 履歴取得のためのプログラムの一例である。
【図5】 図4のプログラムにより取得された履歴の一例である。
【図6】 (A)〜(D)は、本実施の形態に係わる情報処理装置におけるキャッシュメモリへの関数の格納動作を説明するための概念図である。
【図7】 別の実施形態に係わる情報処理装置におけるアプリケーションプログラムの実行時の処理を示すフローチャートである。
【図8】 従来のキャッシュメモリへの関数の格納動作を説明するための概念図である。
【符号の説明】
10 情報処理装置
12 CPU
14 ROM
16 RAM
18 不揮発メモリ
22 アプリケーションプログラム
22A 本体プログラム
22B 付加プログラム
24 CPUコア
26、26A、26B、26C 関数
28、32 キャッシュメモリ
30 データ
34 キャッシュ制御部
36 履歴データ
50 プログラム実行部
52 アドレス履歴管理部
54 アドレス選択部
80 履歴取得制御部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a cache memory data management method and an information processing apparatus, and more particularly, to a cache memory data management method for managing storage of data in a cache memory built in an arithmetic apparatus that performs arithmetic processing, and a cache. The present invention relates to an information processing apparatus including an arithmetic device with a built-in memory.
[0002]
[Prior art]
In a CPU, necessary data is called from an external memory to perform arithmetic processing. In general, a storage device such as a DRAM (Dynamic RAM) used as an external memory has a feature that it is easy to increase the capacity but has a slow response speed. The processing capacity (performance) of the CPU decreases due to the access time to the external memory. For this reason, as shown in FIG. 8, the CPU 200 includes an SRAM (Static RAM) that can be accessed at high speed from the CPU core (main body) 202 as a cache memory 204. For example, when calling a function (program) as an example, when the CPU 200 calls a necessary function 208 from the external memory 206 by the CPU core 202, the CPU 208 stores the function 208 in the cache memory 204 (arrow) (Refer to (1)). When it is necessary to read the same function 208 next time, the function 208 is supplied from the cache memory 204 to the CPU core 202 instead of the external memory 206 (see arrow (2)).
[0003]
Here, if all the data required for the cache memory can be stored, access to the external memory is not required after the storage. However, it is technically difficult to increase the capacity of the cache memory, the amount of data that can be stored is limited, and it is impossible to make access to the external memory unnecessary. For this reason, conventionally, the execution history of the instruction address is retained, and when the execution address of the instruction address approaches when the previously required data is not stored in the cache memory (cache miss), A technique has been proposed in which data to be stored in a cache memory at the time of a cache miss is stored in advance in a buffer provided in a place having a shorter access time than the external memory, and the disadvantage at the time of a cache miss is minimized.
[0004]
[Patent Document 1]
JP 2001-134439 A
[0005]
[Problems to be solved by the invention]
However, in the prior art, the access time per cache miss can be shortened by interposing a buffer, compared to accessing the external memory. However, since the frequency of occurrence of the cache miss does not change, the number of cache misses is not changed. As the number increases, the number of accesses to the buffer increases and the CPU performance deteriorates.
[0006]
The present invention has been made to solve the above-described problems, and provides a cache memory data management method and an information processing apparatus capable of reducing the number of accesses to an external memory of an arithmetic unit having a built-in cache memory. With the goal.
[0007]
[Means for Solving the Problems]
To achieve the above object, the invention described in claim 1 is a cache memory data management method for managing storage of data in a cache memory built in an arithmetic device, wherein When the program is executed, the history of the address of the data accessed during the execution is acquired and stored, and when the predetermined program is executed, the address included in the history is selected and selected. The data corresponding to the address is made resident in the cache memory. When there is no change in the frequency order of addresses obtained from the history, the history acquisition during the subsequent execution of the program is stopped. It is characterized by that.
[0008]
According to the first aspect of the present invention, in an arithmetic unit having a built-in cache memory, a history of addresses accessed when a program is executed in the past is acquired and stored, and the program is executed again. The data at the address selected from the addresses included in the history is resident in the cache memory. Therefore, when the arithmetic device needs to access the selected address during the second or subsequent execution of the program, it supplies data corresponding to the address from the cache memory instead of from the external memory. Can receive. As a result, the number of accesses to the external memory can be reduced.
[0009]
The acquired address may be a predetermined execution unit address or a predetermined reference unit address. That is, in the cache memory, a function that is a sub-program that is called when a predetermined program is executed or a part of the function may be made resident, or data that is referred to when a predetermined program is executed can be made resident.
[0010]
In the data management method of the cache memory, as described in claim 2, it is preferable to select a high-frequency address in the history.
[0011]
The cache memory data management method can be realized by the following information processing apparatus. That is, as described in claim 3, the information processing apparatus includes an arithmetic device having a built-in cache memory and a history of addresses of accessed data when a predetermined program is executed by the arithmetic device. History acquisition means to acquire, storage means for storing the history acquired by the history acquisition means, selection means for selecting an address included in the history stored in the storage means, and selection by the selection means Control means for controlling the data corresponding to the designated address to be resident in the cache memory; When there is no change in the frequency ranking of the address obtained from the history, a canceling unit for canceling the history acquisition by the history acquisition unit during the subsequent execution of the program, It is provided with.
[0012]
In the information processing apparatus described above, the address for acquiring the history may be an address of a predetermined execution unit as described in claim 4, or a predetermined address as described in claim 5. It may be a reference unit address. In the information processing apparatus, as described in claim 6, the selection unit may select a high-frequency address in the history.
[0013]
In addition, as described in claim 7, the acquisition unit may acquire and manage the history for each program.
[0014]
Also ,in front It is preferable to further include a canceling unit that cancels acquisition of the history by the acquisition unit. In this case, the stopping method is 2 The history acquisition by the acquisition unit may be stopped when the program is executed after the first time. ,in front If there is no change in the frequency order of the addresses in the history acquired by the acquisition means, the history acquisition by the acquisition means during the subsequent execution of the program may be stopped.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Next, an example of an embodiment according to the present invention will be described in detail with reference to the drawings.
[0016]
FIG. 1 shows an information processing apparatus to which the present invention is applied. The information processing apparatus 10 illustrated in FIG. 1 includes a CPU 12 as an arithmetic device, a ROM 14 and a RAM 16 as external memories, and a nonvolatile memory 18. The CPU 12, the ROM 14, the RAM 16, and the nonvolatile memory 18 are connected to each other via a bus 20. Has been.
[0017]
The CPU 12 includes a CPU core 24 that performs arithmetic processing in accordance with the application program 22, and a cache memory (ICache) 28 that stores program data (hereinafter, referred to as “function”) 26 that represents a function that performs arithmetic processing in the CPU core 24. , A cache memory (DCache) 32 for storing reference data (hereinafter referred to as “data”) 30 that is referred to during the arithmetic processing in the CPU core 24, a function 26 and data 30 for the cache memories 28, 32. A cache control unit 34 that controls storage is connected to each other.
[0018]
The ROM 14 stores a plurality (or one) of application programs 22. The application program 22 includes a main body program 22A for performing the original processing intended by the application program 22, and an additional program 22B for shortening the processing time related to the entire processing of the main body program 22A. Yes. The main program 22A includes a sub program together with a main program for controlling overall processing such as function call and argument passing between functions in order to perform processing originally intended by the application program 22. A variety of functions 26 are included. In general, the main body program 22A is referred to as an application program. That is, in the present embodiment, the additional program 22B is added to a general application program and packaged.
[0019]
In the cache memory 28 of the CPU 12 described above, when the application program 22 is executed, a necessary function 26 is appropriately called from the main body program 22A of the application program and stored.
[0020]
The RAM 16 is used to store various types of data 30 such as processing target data, processing result data, and parameter setting values according to the application program 22, and the cache memory 32 described above is used when the application program 22 is executed. The necessary data 30 is appropriately called from the RAM 16 and stored.
[0021]
As the nonvolatile memory 18, for example, an EEPROM, a flash memory, a hard disk, or the like can be used. The nonvolatile memory 18 is used for storing history data 36 to be described later for each application program 22. That is, the nonvolatile memory 18 corresponds to a storage unit.
[0022]
Here, in the information processing apparatus 10 according to the present embodiment, when the application program 22 stored in the ROM 14 is executed by the CPU 12, the functions shown in FIG. Has been built.
[0023]
That is, by executing the application program 22, the information processing apparatus 10 is configured with a program execution unit 50, an address history management unit 52 that manages addresses accessed by the program execution unit 50, and an address selection unit 54.
[0024]
The program execution unit 50 is a function constructed by the main body program 22A, and performs processing based on the main body program 22A, that is, original processing intended by the application program 22.
[0025]
The address history management unit 52 is a function constructed by the additional program 22B, and the address history of a predetermined execution unit accessed during the operation of the program execution unit 50, that is, the execution of the main body program 22A, that is, the function 26 that has been executed. Get history. Similarly, the history is acquired for the address history of a predetermined reference unit accessed during the execution of the main body program 22A, that is, the address of the data 30. That is, the address history management unit 52 plays a role as history acquisition means.
[0026]
Further, the address history management unit 52 accumulates the acquired function history 26 and the address history 56 of the data 30 in the RAM 16 while the main body program 22A is being executed. The data 36 is stored in the nonvolatile memory 18 and can be retained even when the power is turned off. The history data 36 is managed for each application program 22.
[0027]
Specifically, in this embodiment, a history 56 of accessing each function 26 and the head address of each data 30 is acquired. In this embodiment, the history 56 itself acquired as the history data 36 is used. However, the access count of each function 26 and each data 30 is obtained from the history 56, and each obtained access count is used as the history data 36. In any case, the history data 36 can grasp the execution frequency of each function 26 and the usage frequency of each data 30.
[0028]
The address selection unit 54 is a function constructed by the additional program 22B, selects a specific address, and notifies the cache control unit 34 of it. Specifically, referring to the history data 36 of the nonvolatile memory 18, the function 26 having high execution frequency and the data 30 having high use frequency are specified, and the address of the execution unit of the function 26 and data 30 is notified. That is, the address selection unit 54 plays a role as selection means.
[0029]
Based on the notified address, the cache control unit 34 calls the corresponding function 26 or data 30 from the ROM 14 or RAM 16 and makes them resident in the cache memories 28 and 32. That is, the cache control unit 34 functions as a control unit.
[0030]
Specifically, the cache control unit 34 rewrites the storage area of the specific function 26 or data 30 instructed to reside in the cache memories 28 and 32 even when another function 26 or data 30 is newly called. Lock it to prevent it from being broken. The storage areas of the cache memories 28 and 32 other than the storage area of the specific function 26 and data 30 are updated as needed with the contents of the other newly called functions 26 and data 30.
[0031]
Therefore, the address selection unit 54 can make the specific function 26 and data 30 indicated by the address resident in the cache memories 28 and 32 by notifying the cache control unit 34 of the address.
[0032]
Next, the operation of this embodiment will be described. In the information processing apparatus 10 according to the present embodiment, the process illustrated in FIG. 3 is started by the execution of the application program 22.
[0033]
That is, when the application program 22 is executed, as shown in FIG. 3, first, in step 100, it is determined by the function of the address history management unit 52 whether or not the history data 36 exists in the nonvolatile memory 18. When the application program 22 is executed for the first time, since no history has been acquired, the history data 36 does not exist in the nonvolatile memory 18, and a negative determination is made in step 100 and the process proceeds to step 106.
[0034]
In step 106, the original processing intended by the application program 22, that is, the main body program 22A is executed by the function of the program execution unit 50. In step 108, the main body program 22A is processed by the function of the address history management unit 52. The address history of the function 26 and the data 30 accessed during the execution of is respectively acquired. Finally, in step 110, the history acquisition result is updated and recorded in the nonvolatile memory 18 as the history data 36 by the function of the address history management unit 52, and the processing of FIG. In this case, since the history is acquired for the first time, the history data 36 is newly registered in the nonvolatile memory 18.
[0035]
Here, the history acquisition of the function 26 will be specifically described. In order to obtain the history of the function 26, for example, in the case of C language, the history of the execution of the function 26 is stored in the history data 36 by describing the program 70 shown in FIG. It becomes possible to record. In this case, the program 70 can be regarded as constituting a part of the additional program 22B.
[0036]
Specifically, the main body program 22A of the application program 22 includes three functions 26A, 26B, and 26C named func1, func2, and funk3 (see FIG. 6), and the application program 22 (more specifically, the main body program 22A). Is executed, the func1 function 26A is executed 10 times, the funk2 function 26B is executed 100 times, and the funk3 function 26C is executed 5 times.
[0037]
In this case, by describing the program 70 shown in FIG. 4 at the head of each function 26, when the application program 22 is executed, each function 26 is stored in the “record” that is a pointer to the storage destination of the history data. Is executed, the function name which is the head address of the function 26 is additionally described as a history 56. That is, the history 56 in which the function names are listed as the addresses of the functions 26 is acquired in the order of execution. Finally, as shown in FIG. 5, the history data 36 in which 10 addresses of funk1, 100 addresses of funk2 and 5 addresses of funk3 are described is stored in the nonvolatile memory 18. As described above, the address history of the accessed function 26 can be acquired only by describing a simple program. Although illustration is omitted, the history of accessed data 30 can also be obtained with a simple program.
[0038]
On the other hand, when the application program 22 is executed for the second time and thereafter, since the history data 36 is stored in the nonvolatile memory 18 as described above, the result is affirmative in step 100 of FIG. In step 102, the function of the address selection unit 54 refers to the history data 36 of the application program 22 to select the most frequently used address, that is, the most frequently used function 26 and the most frequently used data 30. . In the next step 104, the cache control unit 34 locks (resides) the function 26 and data 30 corresponding to the address in the cache memories 28 and 32, and then proceeds to step 106. Yes. As a result, when the application program 22 is executed for the second time or later, the cache control unit 34 stores the function 26 that was frequently executed when the application program 30 was previously executed and the data 30 that was frequently used in advance in the cache memory. The original processing intended by the application program 22 is performed in a state where the application program 22 is locked (resident) in the area 28 or 32.
[0039]
For example, in the above-described example, it can be seen from the history data 36 shown in FIG. 5 that the function 26B of funk2 has the highest execution frequency. Therefore, the function 26B of funk2 is used as an external memory as shown in FIG. It is read from the ROM 14 and locked to the cache memory 28. If the remaining capacity of the cache memory 28 after storing the function 26 of funk2 can only store either the function 26A or the function 26C, for example, when the function 26B of funk1 is required and the function is called from the ROM 14, FIG. As shown in FIG. 6 (B), the function 26B of the funk1 is stored in the remaining area of the cache memory 28.
[0040]
Thereafter, when the function 26C of the funk3 is required and is called from the ROM 14, the function 26C of the funk3 is stored (overwritten) in the remaining area of the cache memory 28 instead of the function 26A of the funk1 as shown in FIG. Is done. When the funk1 function 26A is required again, the funk1 function 26A is stored in the remaining area of the cache memory 28 instead of the funk3 function 26C, as shown in FIG. During this time, the function 26B of funk2 remains stored in the cache memory 28. Therefore, when the function 26B of funk2 is necessary, the function 26B is always transferred from the cache memory 28 to the CPU core 24 without accessing the ROM 14. Supplied.
[0041]
In the second and subsequent executions, the address history of each function 26 and each data 30 accessed during the original processing intended by the application program, that is, during the execution of the main body program 22A, in step 108 of FIG. In step 110, the result is added to the history data 36, and the history data 36 in the nonvolatile memory 18 is updated so as to be accumulated data. That is, by updating the history data 36, at the second and subsequent executions, the function 26 having the highest execution frequency and the data 30 having the highest use frequency are stored in the cache memory 28, until the previous execution of the application program 22. Thus, the original processing intended by the application program 22 is executed.
[0042]
As described above, according to this embodiment, by acquiring the address history when the application program 22 is executed, the function 26 with high execution frequency and the data 30 with high use frequency are learned, and the application program for the next time is acquired. At the time of executing 22, the function 26 having the highest execution frequency and the data 30 having the highest use frequency are locked (resident) in the cache memories 28 and 32. Thus, the frequently executed function 26 and the frequently used data 30 can be supplied from the cache memories 28 and 32 instead of the external memory such as the ROM 14 and the RAM 16, and can be supplied to the external memory such as the ROM 14 and the RAM 16. The number of accesses can be reduced. That is, it is possible to suppress a decrease in CPU performance due to access to the external memory, and it is possible to shorten the time required for processing of the entire application program 22.
[0043]
In the above description, the case where the address history is acquired every time the application program 22 is executed to learn the frequently executed function 26 and the frequently used data 30 has been described as an example. Is not limited to this. For example, as indicated by a dotted line in FIG. 2, when the application program 22 is executed, the history acquisition control unit that controls the operation of the address history management unit 52 as a stopping unit in the information processing apparatus 10 by the additional program 22B. 80 may be further constructed, and the processing shown in FIG. 7 may be started by executing the application program 22, for example. In FIG. 7, the same processing steps as those in FIG. 3 are given the same step numbers, and detailed description thereof is omitted.
[0044]
That is, in the process shown in FIG. 7, before starting the original process of the application program 22 in step 106, it is determined in step 120 whether or not history acquisition is necessary by the function of the history acquisition control unit 80. It has become.
[0045]
Note that the determination criterion at this time may be determined by the original process intended by the application program 22, that is, the process executed by the main body program 22A. For example, when the main body program 22A is for executing the same processing every time, there is no change in the rank of the execution frequency of the function 26 and the usage frequency of the data 30, and therefore there is no history data 36 in the nonvolatile memory 18. Only when it is determined that the history needs to be acquired and the history data 36 is stored in the non-volatile memory 18, that is, when the history has been acquired even once in the past, it is not necessary to acquire the history. Just judge. If the main program 22A does not execute the same process every time, it is determined that the history needs to be acquired until there is no significant change (convergence) in the rank of the execution frequency of the function 26 and the usage frequency of the data 30. If there is no significant change in ranking, it may be determined that the history acquisition is unnecessary.
[0046]
If it is determined in step 120 that the history needs to be acquired, the address history of the function 26 and the data 30 is obtained in step 108 while the application program 22 performs the intended process in step 106 as in FIG. In step 110, the history data 36 is updated, and the process ends. On the other hand, if it is determined that the history acquisition is unnecessary, the history acquisition control unit 80 stops the operation of the address management unit 52 and proceeds from step 120 to step 122, where the application program 22 performs the intended original processing. If so, the process is terminated without acquiring the address history and updating the history data 36.
[0047]
In this way, it is determined whether or not history acquisition is necessary, and when there is no need, that is, there is no change in the execution frequency of the function 26 and the order of use frequency of the data 30, and the function 26 or data 30 selection for locking is changed. If it is expected that there is no error, the processing time can be further shortened by stopping the acquisition of useless history.
[0048]
In the above description, the case where the function 26 having the highest execution frequency and the data 30 having the highest use frequency are locked in the cache memories 28 and 30 has been described as an example, but the present invention is not limited to this. If the function 26 and the data 30 that are executed and used more than once are locked in the cache memory, the access time of the function 26 and the data 39 after the second time can be shortened, and the CPU performance by accessing the external memory. A decrease can be prevented. However, in order to obtain a higher performance deterioration preventing effect, it is preferable to lock those that are frequently executed and frequently used.
[0049]
In the present invention, the number of functions 26 and data 30 to be locked in the cache memory is not particularly limited. For example, a plurality of functions 26 and data 30 are locked in the cache memory in descending order of execution frequency and usage frequency. You may let them. The number of functions 26 and data 30 to be locked may be appropriately determined according to the capacity and function of the cache memory and the data size of the data. In particular, the function 26 may be locked only to a part of the function 26 instead of being locked to the cache memory 28 in units of the function 26. In other words, the address of the execution unit for acquiring the history can be an arbitrary address in each function (program) instead of the start address of each function.
[0050]
In the above description, the history of the accessed address is acquired for each application program 22 and the history data 36 is managed as an example. However, the present invention is not limited to this, and the application program 22 is not limited thereto. The history of accessed addresses may be combined into a single history data 36 without distinguishing between them. However, since the function 26 to be executed and the data 30 to be referenced differ depending on the application program 22, in order to select the optimal function 26 and data 30 for each application program 22 and make them resident in the cache memories 28 and 32, the above-mentioned Thus, it is preferable to acquire and manage the history data 36 for each application program 22.
[0051]
【The invention's effect】
As described above, the present invention has an excellent effect that the number of accesses to the external memory of the arithmetic device incorporating the cache memory can be reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an information processing apparatus according to an embodiment.
FIG. 2 is a functional configuration diagram of the information processing apparatus according to the embodiment.
FIG. 3 is a flowchart showing processing when an application program is executed in the information processing apparatus according to the embodiment.
FIG. 4 is an example of a program for history acquisition.
FIG. 5 is an example of a history acquired by the program of FIG.
6A to 6D are conceptual diagrams for explaining a function storing operation in a cache memory in the information processing apparatus according to the present embodiment;
FIG. 7 is a flowchart showing processing when an application program is executed in an information processing apparatus according to another embodiment.
FIG. 8 is a conceptual diagram for explaining a function storing operation in a conventional cache memory;
[Explanation of symbols]
10 Information processing equipment
12 CPU
14 ROM
16 RAM
18 Nonvolatile memory
22 Application programs
22A program
22B Additional program
24 CPU core
26, 26A, 26B, 26C functions
28, 32 Cache memory
30 data
34 Cache control unit
36 Historical data
50 Program execution part
52 Address History Management Department
54 Address selection part
80 History acquisition control unit

Claims (7)

演算装置に内蔵されたキャッシュメモリへのデータの格納を管理するためのキャッシュメモリのデータ管理方法であって、
前記演算装置で所定のプログラムを実行した際に、当該実行中にアクセスしたデータのアドレスの履歴を取得して記憶しておき、
前記所定のプログラムを実行する際に、前記履歴に含まれるアドレスを選択し、
選択したアドレスに対応するデータを前記キャッシュメモリに常駐させ、
前記履歴から得られるアドレスの頻度順位の変動が無かった場合に、以降の前記プログラムの実行時における履歴の取得を中止する、
ことを特徴とするキャッシュメモリのデータ管理方法。
A cache memory data management method for managing storage of data in a cache memory built in an arithmetic device,
When a predetermined program is executed by the arithmetic device, a history of addresses of data accessed during the execution is acquired and stored,
When executing the predetermined program, select an address included in the history,
The data corresponding to the selected address is made resident in the cache memory,
If there is no change in the frequency order of addresses obtained from the history, the history acquisition at the time of execution of the program is stopped.
And a cache memory data management method.
前記履歴中の高頻度のアドレスを選択する、
ことを特徴とする請求項1に記載のキャッシュメモリのデータ管理方法。
Select a high frequency address in the history,
The cache memory data management method according to claim 1.
キャッシュメモリが内蔵された演算装置と、
前記演算装置で所定のプログラムを実行した際に、アクセスしたデータのアドレスの履歴を取得する履歴取得手段と、
前記履歴取得手段により取得された前記履歴を記憶する記憶手段と、
前記記憶手段に記憶されている前記履歴に含まれるアドレスを選択する選択手段と、
前記選択手段により選択されたアドレスに対応するデータが前記キャッシュメモリに常駐されるように制御する制御手段と、
前記履歴から得られるアドレスの頻度順位の変動が無かった場合に、以降の前記プログラムの実行時における前記履歴取得手段による履歴の取得を中止する中止手段と、
を備えた情報処理装置。
An arithmetic unit with a built-in cache memory;
A history acquisition means for acquiring a history of addresses of accessed data when a predetermined program is executed in the arithmetic device;
Storage means for storing the history acquired by the history acquisition means;
Selection means for selecting an address included in the history stored in the storage means;
Control means for controlling the data corresponding to the address selected by the selection means to be resident in the cache memory;
When there is no change in the frequency ranking of the address obtained from the history, a canceling unit for canceling the history acquisition by the history acquisition unit during the subsequent execution of the program,
An information processing apparatus comprising:
前記アドレスが、所定の実行単位のアドレスである、ことを特徴とする請求項3に記載の情報処理装置。  The information processing apparatus according to claim 3, wherein the address is an address of a predetermined execution unit. 前記アドレスが、所定の参照単位のアドレスである、ことを特徴とする請求項3に記載の情報処理装置。  The information processing apparatus according to claim 3, wherein the address is an address of a predetermined reference unit. 前記選択手段が、前記履歴中で高頻度のアドレスを選択する、ことを特徴とする請求項3乃至請求項5の何れか1項に記載の情報処理装置。  The information processing apparatus according to claim 3, wherein the selecting unit selects a high-frequency address in the history. 前記取得手段が、前記プログラム毎に前記履歴を取得して管理する、ことを特徴とする請求項3乃至請求項6の何れか1項に記載の情報処理装置。  The information processing apparatus according to claim 3, wherein the acquisition unit acquires and manages the history for each program.
JP2002360470A 2002-12-12 2002-12-12 Data management method for cache memory and information processing apparatus Expired - Fee Related JP4304974B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002360470A JP4304974B2 (en) 2002-12-12 2002-12-12 Data management method for cache memory and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002360470A JP4304974B2 (en) 2002-12-12 2002-12-12 Data management method for cache memory and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2004192403A JP2004192403A (en) 2004-07-08
JP4304974B2 true JP4304974B2 (en) 2009-07-29

Family

ID=32759535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002360470A Expired - Fee Related JP4304974B2 (en) 2002-12-12 2002-12-12 Data management method for cache memory and information processing apparatus

Country Status (1)

Country Link
JP (1) JP4304974B2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) * 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP5573333B2 (en) * 2010-04-26 2014-08-20 日本電気株式会社 Portable terminal device, application startup method for portable terminal device, and computer program
CN106547619B (en) * 2016-10-20 2023-05-05 深圳市云海麒麟计算机***有限公司 Multi-user storage management method and system
US11138121B2 (en) 2017-11-20 2021-10-05 Samsung Electronics Co., Ltd. Systems and methods for efficient cacheline handling based on predictions
JP7144670B2 (en) * 2017-12-22 2022-09-30 富士通株式会社 Arithmetic processing device and method of controlling arithmetic processing device
JP6929474B1 (en) * 2020-05-01 2021-09-01 三菱電機株式会社 Program execution device, program execution method and computer program
JPWO2023013649A1 (en) * 2021-08-06 2023-02-09

Also Published As

Publication number Publication date
JP2004192403A (en) 2004-07-08

Similar Documents

Publication Publication Date Title
US6073232A (en) Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
JP3986950B2 (en) CPU, information processing apparatus having the same, and control method of CPU
US8224812B2 (en) Database management system and method
US7093258B1 (en) Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system
KR101110490B1 (en) Information processing device, processor and memory management method
JP4304974B2 (en) Data management method for cache memory and information processing apparatus
JPH06348595A (en) Cache device
JP3917839B2 (en) Data processing apparatus, lockdown controller in data processing apparatus, and method for locking data value
JPH09120372A (en) Harmonized software control for hardware architecture cache memory using prefetch instruction
US20130080738A1 (en) Processor configured to perform transactional memory operations
US6378059B1 (en) Virtual storage for dynamically changing a size of a virtual page
US8954969B2 (en) File system object node management
JPH06282488A (en) Cache storage device
US20050188158A1 (en) Cache memory with improved replacement policy
US6256714B1 (en) Computer system with efficient memory usage for managing multiple application programs
US6009414A (en) Computer system with checkpoint facility and accounting facility indicating charges payable for processes
US7437504B2 (en) Reading a storage medium
US20030041213A1 (en) Method and apparatus for using a cache memory
US6574718B2 (en) Excessive spin detection and avoidance for systems using a least recently used page replacement algorithm
US20090320036A1 (en) File System Object Node Management
US10210097B2 (en) Memory system and method for operating the same
JPH0830562A (en) Multiprocessor system
JP2001229053A (en) Computer with dump acquiring mechanism
JP3598528B2 (en) Data transfer method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090209

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090420

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees