JPH11328031A - 動的変換システムにおけるトレ―スのランク付け方法 - Google Patents

動的変換システムにおけるトレ―スのランク付け方法

Info

Publication number
JPH11328031A
JPH11328031A JP11064645A JP6464599A JPH11328031A JP H11328031 A JPH11328031 A JP H11328031A JP 11064645 A JP11064645 A JP 11064645A JP 6464599 A JP6464599 A JP 6464599A JP H11328031 A JPH11328031 A JP H11328031A
Authority
JP
Japan
Prior art keywords
trace
traces
cache
ranking
rank
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.)
Pending
Application number
JP11064645A
Other languages
English (en)
Inventor
F Man Richard
リチャード・エフ・マン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH11328031A publication Critical patent/JPH11328031A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】プログラム実行時に発生する複数のトレースに
対するコード・キャッシュ上におけるランク付けの方法
を改善し、キャッシュの効率を向上させる。 【解決手段】分岐命令を伴う一連のオペレーションにお
いて各条件分岐毎に発生するトレースに対し、そのトレ
ースが実行される度にインクリメントされ、所定の時間
帰還毎に例えばある所定の減衰率で減少していくような
カウント値を与え、この値に応じて各トレースにランク
付けを行う。このカウント値が小さいトレースから順
に、つまりは実行頻度の小さいトレースから順にキャッ
シュから廃棄されるようにすることによって、高効率の
キャッシュ管理を実現することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にコンピュー
タ・コードの動的変換に関し、さらに詳細には、コード
・キャッシュに記憶したトレースをランク付けするため
の方法およびシステムに関する。この方法およびシステ
ムでは、トレースに関するコード・キャッシュの保持お
よび廃棄の方針が、食物を採集しているときにフェロモ
ンの痕跡をたどり、リフレッシュする蟻の生物学モデリ
ングに基づいて確立される。
【0002】
【従来の技術】動的変換システムは、コンピュータ/ソ
フトウエア技術分野の比較的新しい分野の試みである。
動的変換システムに使用される技法は、トレースの解析
である。
【0003】トレースは、マシン・コードの一連の「ブ
ロック」または「基本ブロック」である。ブロック、ま
たは基本ブロックは、別のブロックへの出口で終わる一
連の非分岐マシン命令である。「EXIT」命令は、分
岐、または条件付き分岐、また次の基本ブロックへのフ
ォールスルー(fall-through)であってもよい。プログ
ラムは多数のブロックから構成される。
【0004】プログラムの実行中に、プログラムはパス
中の一連の基本ブロックを実行する。トレースは、この
一連の基本ブロックをたどったパスを記録している。た
とえば、図1を参照すると、プログラム・フラグメント
が図示されているが、その中でこのプログラムを異なる
パスにそって実行することができる。図1では、ブロッ
ク2の条件付きテストに応じて、プログラムがブロック
3とブロック4のいずれかを実行する。図1に例示する
フラグメントに含まれる2つの可能なトレースは、ブロ
ック「1−2−3−5」またはブロック「1−2−4−
5」である。
【0005】動的変換システムは、アプリケーションの
実行をモニタして、このアプリケーションが実行するト
レースを識別し、次いでこのトレースをより有効なコー
ドに変換する。
【0006】もちろん前記の動的変換技法は、コンピュ
ータ・アーキテクチャおよび固定サイズのデータ構造の
環境において行われなければならない。キャッシュ・メ
モリは処理速度を上げるのに常に有利であるが、固定さ
れた環境では、トレース記憶専用のキャッシュに関して
は例外であり、潜在的に不足している資源として管理さ
れなければならない。
【0007】本明細書に記載の本発明の好ましい実施形
態は、ハードウエア・キャッシュではなくソフトウエア
・キャッシュ(すなわち「コード・キャッシュ」)を使
用して実施される。コード・キャッシュは、キャッシュ
であるジョブに割り付けられたメモリの1区画にすぎ
ず、通常はマシン・キャッシュより大きいことが理解さ
れよう。しかし、性能上の理由からコード・キャッシュ
のサイズは依然制限され、したがっていずれか他の資源
と同様に管理されなければならない。
【0008】コード・キャッシュは、システムの物理メ
モリ量によって、または使用できるハードウエア・キャ
ッシュ量によって制限される。コード・キャッシュが、
物理メモリと比較して大きい場合、他のアプリケーショ
ンを実行するのに使用できるメモリが少なくなるので、
システムの性能が損なわれがちになる。たとえば、シス
テムに応じて、ハードウエア・キャッシュが小さく、物
理メモリへのアクセスが遅い場合、コード・キャッシュ
もまたハードウエア・キャッシュより大き過ぎてはなら
ない。
【0009】キャッシュに記憶したトレースは、主メモ
リに記憶しているトレースより速く理想的に実行する。
プログラム実行時にキャッシュに記憶されるトレースの
選択は、様々なアーキテクチャおよびオペレーティング
・システムに固有の多くのメモリ・プロトコルのいずれ
かに基づく。しかし、一度キャッシュへの配置が行われ
ると、プログラム実行が継続する場合、キャッシュの保
持および廃棄のプロトコルは、キャッシュに記憶すべき
新しいトレースのための場所を空けるのに非常に有利に
なものになる。
【0010】理想的なトレースが、プログラムの実行に
対するトレースの保持値に従ってキャッシュ・メモリに
保持される。プログラムがトレースを頻繁に実行する場
合、トレースをキャッシュ・メモリに保持すると有利で
ある。まれにしか実行されないトレースをキャッシュに
保持する必要はなく、実際にはこのトレースは、これよ
りも頻繁に使用される可能性のあるこれから入ってくる
トレースの場所を空けるために廃棄されなければならな
い。
【0011】キャッシュに保持すべき項目および廃棄す
べき項目を選択するための様々な方法が、当技術分野で
周知である。かなり一般的な方法の1つとして、キャッ
シュ全体が一杯になると、単にそれを空にし、次いでは
じめからやり直す方法がある。これは容易に実行できる
が、この方法では使用頻度の大きい項目の値が無視され
てしまう。ことによると、ほんの少し前に、これら項目
がキャッシュ中にあったとしても、キャッシュを空にし
た後、キャッシュをこれら項目で再び占めるようにする
処理が必要である。したがって、この方法は、「赤ん坊
を風呂水ごと捨てる」のと同様である。
【0012】従って、優れたシステムとは、キャッシュ
に記憶した項目をランク付けして、どの項目を保ち、ど
の項目を廃棄するか判定するようなシステムであろう。
【0013】ランク付けは、他の関連分野の試みでは有
利に使用されている。たとえば、オペレーティング・シ
ステム(OS)のカーネルは、どの仮想ページを物理メ
モリに保ち、どの仮想ページを捨てるかを決定しなけれ
ばならない。この目的のために、通常はMRU(Most R
ecently Used)法に基づいて、仮想ページをランク付け
することが知られている。特定の仮想ページ中のアドレ
スにアクセスがあるときはいつでも、このページのラン
クは最上位に高められる。したがって、アクセス頻度の
高いページは上位付近にどどまり、アクセス頻度の低い
ページは下位に落ちる。このリストの上位のものは一般
に物理メモリ中に保存される。
【0014】ある類似のランク付けシステムで、「最低
使用頻度」(LRU:Least Recently Used)システム
を使用するものがある。このシステムでは、アクセスと
アクセスの間の時間がモニタされ、ランク付けのための
基礎を形成する。使用頻度の低い(すなわち、アクセス
間の時間が長い)項目は、より低いランクを得る。LR
U法は、おそらくはより正確な予測を立てるが、この方
法を使用すると、維持のためにより大きな処理オーバヘ
ッドが必要になるので、MRU法ほどには好まれていな
い。
【0015】当技術分野で周知のさらに他のランク付け
システムとして、項目の使用回数を単にカウントするだ
けのシステムもある。これにおいては、カウント数が多
くなればなるほど、ランクが高くなる。
【0016】
【発明が解決しようとする課題】以上のランク付け方法
はすべて、動的変換システムのキャッシュ・メモリ管理
用としては不適当である。本来、動的変換システムの動
作は、時間経過と共に変化する可能性がある。具体的に
言うと、トレースはサイズが変動するか、あるいは再度
非常に活動的な状態になる前にある期間の間「休止状
態」になる可能性がある。「すっかり空にして、初めか
らやり直す」方法では、この動的動作に対処するには本
質的に効率が悪すぎる。この方法には、どのトレースが
重要で、どのトレースが重要でないか判定するメカニズ
ムが単に欠けている。MRU、LRUおよび「カウンテ
ィング(counting)」法は、この動的動作に対処するの
に柔軟性がなさすぎる。たとえば、ある動的システムに
おけるトレースが「バースト」モードで非常に高い頻度
で実行される仮定する。MRUまたはLRUアルゴリズ
ムは、現在あるトレースが休止段階にあって、たとえこ
のトレースが間もなく「ホット」になるはずであって
も、このトレースに低いランクを割り当てる可能性があ
る。「カウンティング」法は、その時点で「ホット」で
あっても、間もなく全く(または、まれにしか)再度実
行されなくなるようなトレースに対しても間違って高い
ランク付けを行ってしまう可能性がある。
【0017】したがって、動的変換システム技術におい
て、正確な予測ランク付けによって、キャッシュ管理が
どのトレースをキャッシュに保ち、どのトレースを廃棄
するか判定できるようにするトレース・ランク付けシス
テムが求められている。
【0018】
【課題を解決するための手段】これらおよび他の目的、
特徴、および技術面での長所は、人工生命原理を適用し
てトレースのキャッシュ保持または廃棄のために正確な
ランク付けを予測して判定する、トレース・ランク付け
の方法およびシステムによって達成される。好ましい実
施形態では、このランク付けシステムは蟻の痕跡の生物
学モデリングに基づいている。このシステムによって、
重要なトレースを識別して、これをキャッシュ中にでき
るだけ多く保つことができ、重要性の小さいトレースを
マークして廃棄することができるトレース・ランク付け
方針が可能になる。このシステムは、時間が経過すると
ともにさらに動的になり、それによってランク付けの強
調が、プログラムの動的動作に従って変化する。
【0019】他の人工生命原理をトレース・ランク付け
に適用することも可能ではあるが、本発明の好ましい実
施形態は、食物源痕跡を形成し強化する蟻の動作を適用
しており、これによって独創的なトレース・ランク付け
システムが開発される。食物を運ぶ蟻は強いフェロモン
の痕跡を残す。蟻が強いフェロモン・サインを有する痕
跡に出くわした場合、蟻はこの痕跡をたどって食物源に
行き着く。食物を運ぶ蟻の行列が途絶えてフェロモンの
痕跡が強まらない場合、フェロモンの化学物質は、時間
経過と共に空気中に散逸し、この痕跡は弱くなり、後か
らくる蟻がたどる可能性が少なくなる。
【0020】本発明のトレース・ランク付けシステムの
蟻痕跡モデルに類似する好ましい実施形態によると、各
トレースがカウンティング・コードを含み、したがって
トレースが実行されるごとに、トレースがランク付けカ
ウンタを1カウントだけ増分する。所定の間隔で散逸率
が均一に適用されて、すべてのカウンタの値が減少して
いく。相次ぐ散逸調整間の期間をチューニングするこ
と、および選択した散逸操作でカウンタが減少する量を
ある関数にチューニングすることによって、ランク付け
は、フェロモンの痕跡の強さが食物を採集している蟻が
たどるルートを予測する方式に類似するプログラムの動
的動作をチューニング可能にして予測するようになる。
もちろん、フェロモン化学物質の大気中への散逸はアナ
ログ・メカニズム(連続的なもの)であるが、これに反
してコンピュータは、容認できない処理オーバヘッドを
発生しないように充分に間隔を置いて配置された離散的
ディジタル・ステップで、この散逸をシミュレートしな
ければならない。
【0021】したがって、人工生命原理から借用して動
的変換システム中にトレースをランク付けするためのメ
カニズムを確立することが、本発明の技術面における長
所である。
【0022】蟻の痕跡の生物学モデリングを使用して前
記メカニズムを確立することが、別の本発明の技術的利
点である。各トレースは、トレースが実行するごとに増
分するカウンティング・コードを備えている。モデルで
は、これは食物源に向かって特定のフェロモンの痕跡を
たどり、そうしている際に、その時点で痕跡にそったそ
れ自体の通行によって、その痕跡のフェロモン・サイン
の強さを強化する蟻に対応する。次いで、本発明では、
蟻のフェロモンの痕跡の大気中への散逸に対応して、す
べてのトレースのカウンティング・コード中の値が定期
的に減少する。トレースのカウンティング・コードが減
少する頻度および量が、異なる関数に基づくように予め
選択することができる。したがって、使用頻度の大きい
ランクのトレースは「強い状態にとどまり」、使用頻度
がほとんどゼロのトレースは「ドライ・アップ状態」で
あり、蟻の痕跡上のフェロモン・サインの動作に類似し
ている。
【0023】アルゴリズム内のチューニング可能なパラ
メータを使用して、トレースのカウンティング・コード
が減少する頻度および量の限界を明確にすることが、本
発明の別の技術的利点である。このようにして、キャッ
シュ保持要求を正確に予測して、トレースを見つける動
的変換システムの最適性能を発揮するようにメカニズム
をチューニングすることができる。
【0024】以上、次に続く本発明の詳細な説明をより
よく理解できるように、本発明の特徴および技術的利点
をかなり広く略述した。本発明の特許請求の範囲の主題
を形成する本発明のさらなる特徴および利点を以下に記
載する。開示した概念および特定の実施形態が、本発明
の同じ目的を実施するために他の構造を修正または設計
するための基礎としてすぐ利用できることを、当業者は
理解されたい。また、そのような等価の構築が、添付の
特許請求の範囲に記載した本発明の精神および範囲から
逸脱しないことを当業者は認識されたい。
【0025】本発明およびその利点をより完全に理解す
るために、添付の図面と共に行う以下の説明を参照され
たい。
【0026】
【実施例】本発明の好ましい実施形態を、疑似コードと
して表現する例示的なアプリケーション・コード・フラ
グメントを参照しながら説明する。しかし、本発明によ
るトレース・ランク付けシステムは、いかなる特定のア
プリケーションまたはプログラミング言語にも限定され
ないことは明らかであろう。事実、本発明によるトレー
ス・ランク付けシステムは、実施または表現方法にかか
わらず、動的変換システムに関して普遍的なものである
ことがわかる。
【0027】〔トレース・ランク付けの利点〕図2Aを
参照すると、2つの条件付きオペレーション202およ
び203を有する例示的なアプリケーション・コード・
フラグメント201が例示されている。フラグメント2
01を実行するにあたってまず、条件付きステートメン
ト202および203の<条件>が真であると仮定す
る。また、この仮定をするために、<オペレーション2
>および<オペレーション5>は、<条件>が真である
ことを変更しないものと仮定しなければならないことに
も留意されたい。この仮定に基づいてフラグメント20
1を実行すると、図2Bに例示するように、トレース2
20が生成される。<条件>が真であるかぎり、トレー
ス220をコード・キャッシュに記憶し、フラグメント
201の代わりに実行すると好都合である。図2Bに示
すトレース220は、<条件>のチェックが一回だけで
済むようにフラグメント201を変換したものであるこ
とがさらに理解されよう。
【0028】動的変換はさらに、トレース220に表す
ように、<オペレーション1−2−3−5−6−8>を
共に最適化する。たとえば、(図2Aでは) <オペレーション1>を変数=1、 <オペレーション2>を変数=3、 <オペレーション5>を変数=”可変”であるとする。 <オペレーション5>の変数は、<オペレーション4>
が実行されるか否かに応じて、”1”あるいは”3”の
どちらかになる。<条件>が図2Bのトレース220に
関するかぎり真であるとき、<オペレーション4>は実
行されないので、トレース220の<オペレーション5
>は変数”1”に変換することができる。
【0029】次に、後の図2Aのフラグメント201の
実行では、<条件>が偽であると仮定する。フラグメン
ト201の実行によって、図2Cに例示するようなトレ
ース240が発生する。この場合も、<条件>が偽であ
るかぎり、トレース240はコード・キャッシュに記憶
され、フラグメント201の代わりに実行される。
【0030】前記の例を使用して、<オペレーション4
>がトレース240で実行されることがわかっていると
き、動的変換はさらに<オペレーション1−2−4−5
−7−8>を最適化する。次に、トレース240の<オ
ペレーション5>を変数”3”に変換することができ
る。
【0031】動的変換の利点が、ここで明らかになる。
前記例の<オペレーション5>の置き換えは、「定数の
伝搬」として当技術分野で周知のコンパイラ技法である
と認識されよう。しかし、図2Aのフラグメント201
を最適化する標準のコンパイラは、<条件>が真かそれ
とも偽かわかっていないので、一般にそのような最適化
を行わない。しかし、動的変換の下では、最適化は、ト
レース220およびトレース240の発生に基づいてい
る。そして、動的変換は、トレース220およびトレー
ス240の実行を監視することによりプログラムの動作
を観察する。<条件>が真かそれとも偽かという尤度が
判定され、それに対応するトレースが実行される。
【0032】トレース220とトレース240がどちら
も同時にコード・キャッシュに潜在的に記憶されている
ことが明らかであると、トレース・ランク付けの別の利
点が明らかになる。どのトレースが実行されるかという
尤度は、時間経過と共に変化する。コード・キャッシュ
管理が、あるトレースを廃棄する必要がある場合、当面
は使用される可能性がもっとも少ないトレースを捨てる
ことが必要になる。
【0033】したがって、本発明に基づくトレース・ラ
ンク付けシステムは、コード・キャッシュ管理がどのト
レースを保存すべきか、それともどのトレースを廃棄す
べきかを決定する助けとなる。
【0034】〔本発明に基づくトレース・ランク付け〕
課題を解決するための手段の節で上述の通り、本発明
は、トレースのランク付けを行う。そして、食物を採集
しているときにフェロモンの痕跡をリフレッシュする蟻
の動作から得られる人工生命原理に基づいてランク付け
を調整する。
【0035】ランク値Rが各トレースに与えられる。値
Rが高いと、それはランクのなかで高い位置にあること
を意味する。トレースは、前もって選択された初期ラン
ク値R(system)から開始する。好ましい実施形
態では、トレースが実行されるごとにRを増分する一連
の命令Cによって、トレースがプリフィックスされる。
しかし、この命令Cが、選択された変数の現在値に基づ
いてRを増分する関数であるとすることもできることが
理解されよう。また、所望であれば、これら変数がさら
に、このトレースが実行されるごとに1つだけ増分され
る変数をさらに含むことも理解されよう。
【0036】次いで、選択されたI時間の間隔で、選択
されたトレースのランク値Rが、散逸率Dの量だけ減分
される。また、好ましい実施形態では、すべてのトレー
スのランク値RがDだけ減分されるが、他の等価の実施
形態では、Dの関数に基づいて選択されたトレースのラ
ンク値Rを減分することができることが理解されると思
う。本発明と整合して、D自体が定数であるか、あるい
はさらに別の関数の結果である可能性があることも理解
されよう。Dだけ減分するときに、DがトレースのRよ
り大きい場合は、ランク値がマイナスのレベルになるこ
とを許すかそれともゼロに留めるかを大域パラメータP
が有利に制御する。プログラムが実行されて、より正確
なランク付けを達成するにつれて、R、I、DおよびP
の値が変化することがさらに理解されよう。
【0037】次に、本発明のトレース・ランク付けのた
めの例示的な疑似コードを論じることにする。トレース
・ランクが発生するプログラムを実行する前に、ある時
点でトレース・ランクが初期設定されなければならな
い。これは簡単な命令 R(trace)=R(system) を用いて行うと有利である。R(system)の値は
通常はゼロとし、本発明と整合させるため、R(sys
tem)は、他の所定の初期値には設定されない。
【0038】R(trace)を増分することは、トレ
ースが実行されるごとに、命令 R(trace)=R(trace)+1 を実行すると簡単である。このために、増分命令が、ト
レースの開始に付けられると有利である。好ましい実施
形態では、1だけ増分するが、本発明と整合させるため
に、R(trace)は、いずれかの選択された、また
は導出された変数の値によって増分されない。
【0039】任意選択で、特定の期間中に特定のトレー
スをランク付けしないことが求められる。したがって、
コード中の増分コマンドがトレースの始めに付けられる
前に、命令 IF(<COUNTING>==TRUE) を含むと有利である。このようにして、トレース・ラン
ク増分を実行する(すなわち、<COUNTING>)
が真である)かどうか、それともトレース・ランク増分
をスキップして、処理資源を保存する(すなわち、<C
OUNTING>が偽である)か、<COUNTING
>の状態が判定する。ランク増分が行われるか否かに基
づいて、動的変換システムがトレースのための異なるエ
ントリ・ポイントを収容できるかどうかに応じて、任意
選択でトレース・ランク増分命令をスキップするこの特
徴を、さらに改善することができる。異なるエントリ・
ポイントを収容できる場合、トレースは、図3Aに示す
PA−RISCプログラミング言語で表される。図3A
を見ると、入力レジスタGR18がセット・アップされ
て、増分したトレースのランクを含み、GR17がスク
ラッチ・レジスタとして使用されることがわかる。この
トレースがランク付けされているか否かに応じて、この
トレースのためのエントリ・ポイントは、「count
_entry」あるいは「nocount_entr
y」のどちらかである。
【0040】あるいは、動的変換システムが、別々のエ
ントリ・ポイントを見つけることができない場合、この
トレースは、図3Bに示すように(再度、PA−RIS
Cプログラミング言語で)表される。図3Bでは、この
エントリ・ポイントは常に「count_entry」
である。図3Bのコードは、ランク増分が行われず、カ
ウンティング命令がスキップされるように書き込まれ
る。これは、分岐命令「B nocount_entr
y」によって可能になる。図3Bで、トレース・ランク
を増分するために、分岐命令が、NOP(ノーオペレー
ション)命令として簡単に書き直される。
【0041】本発明によると、散逸率は、選択した間隔
でR(trace)の選択した(かつ有利なことにすべ
ての)値に適用される。好ましい実施形態では、散逸
は、同時にすべてのトレース・ランク付けに均一に適用
されると仮定するが、本発明と整合させるために、変動
する期間間隔で選択したトレース・ランク付けに適用さ
れる。変動する時間間隔を時間ベースの関数の有効な結
果に従って選択できると有利である。
【0042】図4Aおよび図4Bを参照すると、タイマ
が有利なことに、変数I(system)に所定値を設
定することによって、散逸関数を伝搬する。たとえば、
図4AにHP−UX(HP−UXはヒューレット・パッ
カード社の製品)オペレーティング・システムを配置し
て、I(system)の値に従ってタイマを設定する
ために使用する例示的な疑似コードを示す。図4Aに従
って、オペレーティング・システムがI(syste
m)μsごとに動的変換プロセスにタイマ信号を送る。
経験によれば、I(system)のために短時間間隔
を設定すると有利であることが明かになっている。たと
えば、HP−UXオペレーティング・システムに関して
は、最小のタイマ間隔は目下のところ1msである。こ
の時間間隔中に、最新技術の200MHzのプロセッサ
が、毎秒平均200,000個、達成可能最大値80
0,000個の命令を実行する。したがって、I(sy
stem)のために小さな値を選択して、散逸操作の周
波数をチューニングする際にある程度の分解能が実現で
きると明らかに有利である。
【0043】タイマ信号を受信すると、動的変換プロセ
ッサが散逸関数を呼び出す。図4Bに、この呼出しのた
めの例示的な疑似コードを示す。
【0044】広い散逸量スペクトルにするために、D
(system)の値を選択してチューニングすること
ができることが理解されよう。この値は定数であるか、
それともいくつかの他の変数の関数の結果であってもよ
い。D(system)はまた、システム自身によって
動的にチューニングすることができる。たとえば、D
(system)を高い値として初期設定することによ
って、R(trace)の値が、各散逸操作の後にゼロ
になる可能性が高い。一方、散逸操作を適用する前に、
システムはR(trace)の高い値および低い値だけ
でなく、その平均値も記録する。また、何度か繰り返さ
れた後、D(system)は、収集されたデータ、た
とえば、 D(system)=(最高値)−(ファクタ) または、 D(system)=(平均値)+(ファクタ) または、収集データに基づく他の関数に基づいてリセッ
トされるようにすることもできる。
【0045】さらに、図4Bを見ると、現在のトレース
・ランク付けメカニズムの実施によってR(trac
e)を負の値にすることができるかどうかを見るため
に、パラメータP(system)の状態をチェックす
るのが有利であることが分かる。正または負のいずれの
値のR(trace)でも本発明のメカニズムにおける
制限はないが、好ましい実施形態では、フェロモンの痕
跡をたどって食物を採集している蟻の生物学モデルの例
えによってトレースのランク付けが行われることが想起
されよう。明らかに、蟻の痕跡のフェロモン強度はマイ
ナスになりえない。したがって、R(trace)がマ
イナスにならないようにして、生物学モデルができるだ
け適用可能であるようにするために、オプションが組み
込まれる。
【0046】図5に、本発明のメカニズムの動作を表形
式で例示する。図5のトレースに関する数値は、時間間
隔中のトレースの実行カウントである。時間間隔1およ
び2では、トレース1は活動状態であり、トレース2は
「目覚めているところ」であるが、トレース3およびト
レース4は休止状態である。プログラムの動的動作のた
め、トレース1は時間間隔2の後に休止状態になり、プ
ログラムの残り時間は休止状態にとどまる。そうしてい
る間に、トレース2が活動状態になり、時間間隔6中は
活動状態であり、その後は休止状態になる。トレース3
は、時間間隔6中に「目覚め」始め、時間間隔7中は活
動状態である。トレース4は、終始休止状態である。
【0047】さらに図5を参照すると、3つの時間間隔
ごとに、1000カウントの散逸が加えられる。これに
よって、各時間間隔に関する各トレースのカウント値の
下右隅に示すように、トレース・ランク付けが変動す
る。
【0048】したがって、散逸操作の利点がわかる。散
逸がなければ、トレース1のカウント値は、残りのプロ
グラムにおいて、2010にとどまってしまうはずであ
る。このために、トレース1が休眠状態になってしまっ
てからも、また、トレース3が目覚めようとしている間
にも、トレース1が不自然に高いトレース・ランク付け
を得ていることになる。したがって、例えば、トレース
1がカウント2010(ランク=2)を有し、トレース
3がカウント1075(ランク=3)を有するので、た
とえば時間間隔7の後のトレース・ランク付けを監視し
ているキャッシュ管理は、トレース1を保ち、トレース
3を廃棄してしまう。もちろん、トレース3が活動状態
になろうとしており、トレース1が最早必要でないとい
うことを考えてみると、これは粗末な決定である。
【0049】しかし、図5に散逸率を加えると、時間間
隔7の後、トレース1は調整されたカウント10(ラン
ク=3)を有するが、トレース3は調整されたカウント
1000(ランク=2)を有することをキャッシュ管理
は認識する。次いで、キャッシュ管理は、トレース1の
ランクが低いので、トレース1を廃棄しようとする。
【0050】この機能性は、食物を見つけるためにフェ
ロモンの痕跡をたどっている蟻の生物学モデルを反映し
ていることがわかるであろう。トレース1に対応する食
物に通じる痕跡は、時間間隔2だけ経過した後、消滅す
る。フェロモンの散逸がなければ、食物を採集している
蟻はそれでもなお痕跡をたどるが、食物を見つけられな
いはずである。さらに、散逸のない「死んだ」痕跡上の
フェロモンの強度は、(トレース3に対応する)真の次
の食物含有痕跡から蟻の注意をそらしてしまうはずであ
る。しかし、散逸があれば、トレース1に対応する痕跡
が急速に「冷たく」なり、トレース3に対応する痕跡を
早期に識別することによって、蟻がより効率よく食物を
見つけることができる。
【0050】本発明およびその利点を詳しく説明した
が、添付の特許請求の範囲に定義した本発明の精神およ
び範囲を逸脱することなく、本明細書において様々な変
更および代替を加えることができることを理解された
い。
【0051】〔実施態様〕なお、本発明の実施態様の例
を以下に示す。
【0052】〔実施態様1〕ソフトウエア・プログラム
の実行中に生成するトレース(220、240)をラン
ク付けするための方法であって、前記実行が動的変換シ
ステムによってモニタされ、トレースがキャッシュに記
憶されて前記ランク付けに基づいてキャッシュから定期
的に廃棄され、 (a)複数のトレース(220、240)のそれぞれに
事前に選択された初期ランク値(R(system))
を最初に割り当てるステップと、 (b)トレース(220、240)のうちの1つが実行
されるごとに、そのランク値(R(trace))を増
加するステップと、 (c)選択したトレース(220、240)のランク値
(R(trace))を散逸率(D(system))
だけ定期的に減少させるステップとを含むことを特徴と
する方法。
【0053】〔実施態様2〕前記散逸率(D(syst
em))が、(i)所定の定数、および(ii)変数の
現在値からなる群から選択した値であることを特徴とす
る実施態様1に記載の方法。
【0054】〔実施態様3〕ステップ(c)の前記選択
したトレース(220、240)が、全てのトレースで
あることを特徴とする実施態様1または実施態様2に記
載の方法。
【0055】〔実施態様4〕ステップ(c)が、一定の
所定間隔(I(system))で実行されることを特
徴とする実施態様1乃至実施態様3のいずれか一項に記
載の方法。
【0056】〔実施態様5〕ステップ(c)が、可変間
隔で実行され、各間隔が所定の時間関数の有効な結果に
従って選択されることを特徴とする実施態様1乃至実施
態様3のいずれか一項に記載の方法。
【0057】〔実施態様6〕初期トレース・ランク付け
(R(system))が、その複数のすべてのトレー
ス(220、240)に関してゼロであることを特徴と
する実施態様1乃至実施態様5のいずれか一項に記載の
方法。
【0058】〔実施態様7〕初期のトレースのランク付
け(R(system))が、その複数の選択したトレ
ース(220、240)に関してゼロであることを特徴
とする実施態様1乃至実施態様5のいずれか一項に記載
の方法。
【0059】〔実施態様8〕前記ランク値(R(tra
ce))が、前記ステップ(b)において、(i)1、
および(ii)変数の現在値からなる群から選択した量
だけ増加することを特徴とする実施態様1乃至実施態様
7のいずれか一項に記載の方法。
【0060】〔実施態様9〕(d)前記ステップ(c)
に続いて、ゼロ未満の値を有するランク値(R(tra
ce))をゼロにリセットするステップをさらに含むこ
とを特徴とする、実施態様1乃至実施態様8のいずれか
一項に記載の方法。
【0061】〔実施態様10〕(e)選択した現在のラ
ンク値(R(trace))の関数に基づいて散逸率
(D(system))を定期的に調整するステップを
さらに含むことを特徴とする、実施態様1乃至実施態様
9のいずれか一項に記載の方法。
【0062】〔実施態様11〕前記ステップ(e)の関
数が、前記選択した現在のランク値(R(trac
e))の平均値を含むことを特徴とする実施態様10に
記載の方法。
【0063】〔実施態様12〕ステップ(e)の関数
が、前記選択した現在のランク値(R(trace))
の最高値を含むことを特徴とする実施態様10に記載の
方法。
【図面の簡単な説明】
【図1】2つのトレースを生成する例示的な一連の基本
ブロックを示す図である。
【図2A】例示的なアプリケーション・コード・フラグ
メントを示す図である。
【図2B】図2Aに示すコード・フラグメントの実行に
よって発生する第1トレースを示す図である。
【図2C】図2Aに示すコード・フラグメントの実行に
よって発生する第2トレースを示す図である。
【図3A】動的変換が2つ以上のトレース・エントリ・
ポイントを収容できる場合のPA−RISCカウンティ
ング命令を示す図である。
【図3B】動的変換がトレース・エントリ・ポイントを
1つだけ収容できる場合PA−RISCカウンティング
命令を示す図である。
【図4A】散逸タイマ信号を発生するための疑似コード
を示す図である。
【図4B】散逸を適用するための疑似コードを示す図で
ある。
【図5】本発明のトレース・ランク付けメカニズムの動
作を説明するための表を示す図である。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ソフトウエア・プログラムの実行中に生成
    するトレースをランク付けするための方法であって、前
    記実行が動的変換システムによってモニタされ、トレー
    スがキャッシュに記憶されて前記ランク付けに基づいて
    キャッシュから定期的に廃棄され、 (a)複数のトレースのそれぞれに事前に選択された初
    期ランク値を最初に割り当てるステップと、 (b)トレースのうちの1つが実行されるごとに、その
    ランク値を増加するステップと、 (c)選択したトレースのランク値をある散逸率だけ定
    期的に減少させるステップとを含むことを特徴とする方
    法。
JP11064645A 1998-03-12 1999-03-11 動的変換システムにおけるトレ―スのランク付け方法 Pending JPH11328031A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US041,350 1998-03-12
US09/041,350 US6219827B1 (en) 1998-03-12 1998-03-12 Trace ranking in a dynamic translation system

Publications (1)

Publication Number Publication Date
JPH11328031A true JPH11328031A (ja) 1999-11-30

Family

ID=21916037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11064645A Pending JPH11328031A (ja) 1998-03-12 1999-03-11 動的変換システムにおけるトレ―スのランク付け方法

Country Status (2)

Country Link
US (1) US6219827B1 (ja)
JP (1) JPH11328031A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007515715A (ja) * 2003-12-03 2007-06-14 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 命令キャッシュからラベル境界上のトレースキャッシュに遷移させる方法
JP2008544372A (ja) * 2005-06-14 2008-12-04 シーコア ソリューションズ ポピュラリティによる情報のキャッシュ処理
WO2012111113A1 (ja) * 2011-02-16 2012-08-23 富士通株式会社 メモリ管理プログラム、メモリ管理方法、情報処理装置、及びメモリ管理プログラムを記録したコンピュータ読取可能な記録媒体

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782530B1 (en) * 1999-04-05 2004-08-24 Microsoft Corporation Method of ranking messages generated in a computer system
US6470492B2 (en) * 1999-05-14 2002-10-22 Hewlett-Packard Company Low overhead speculative selection of hot traces in a caching dynamic translator
JP4436036B2 (ja) * 2002-12-18 2010-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、トレース処理方法、プログラム及び記録媒体
US7191293B2 (en) * 2004-03-16 2007-03-13 Arm Limited Recovering pending trace data within a data processing system
US8271955B1 (en) 2004-07-23 2012-09-18 Green Hille Software, Inc. Forward post-execution software debugger
US8132159B1 (en) 2004-07-23 2012-03-06 Green Hills Software, Inc. Post-execution software debugger with event display
US8136096B1 (en) * 2004-07-23 2012-03-13 Green Hills Software, Inc. Backward post-execution software debugger
US8015552B1 (en) * 2004-07-23 2011-09-06 Green Hills Software, Inc. Post-execution software debugger with coverage display
US20060036834A1 (en) * 2004-08-13 2006-02-16 Subramaniam Maiyuran Trace reuse
US7694281B2 (en) * 2005-09-30 2010-04-06 Intel Corporation Two-pass MRET trace selection for dynamic optimization
US7840849B2 (en) * 2006-12-21 2010-11-23 Novell, Inc. Methods and apparatus for debugging software including divisions of an execution history of a debuggee program
US20080209406A1 (en) * 2007-02-27 2008-08-28 Novell, Inc. History-based call stack construction
US8332558B2 (en) * 2008-09-30 2012-12-11 Intel Corporation Compact trace trees for dynamic binary parallelization
US8713348B2 (en) * 2010-08-30 2014-04-29 Mediatek Inc. Apparatus for performing timer management regarding a system timer scheduler service, and associated method
KR101616650B1 (ko) * 2011-06-07 2016-04-28 미쓰비시덴키 가부시키가이샤 묘화 장치
US10031745B2 (en) * 2016-02-02 2018-07-24 International Business Machines Corporation System and method for automatic API candidate generation
US10698571B2 (en) * 2016-12-29 2020-06-30 Microsoft Technology Licensing, Llc Behavior feature use in programming by example

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5668987A (en) * 1995-08-31 1997-09-16 Sybase, Inc. Database system with subquery optimizer
US5822759A (en) * 1996-11-22 1998-10-13 Versant Object Technology Cache system
US5894575A (en) * 1996-11-25 1999-04-13 International Business Machines Corporation Method and system for initial state determination for instruction trace reconstruction
US5943687A (en) * 1997-03-14 1999-08-24 Telefonakiebolaget Lm Ericsson Penalty-based cache storage and replacement techniques
US6041406A (en) * 1997-04-08 2000-03-21 Advanced Micro Devices, Inc. Parallel and serial debug port on a processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007515715A (ja) * 2003-12-03 2007-06-14 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 命令キャッシュからラベル境界上のトレースキャッシュに遷移させる方法
JP2008544372A (ja) * 2005-06-14 2008-12-04 シーコア ソリューションズ ポピュラリティによる情報のキャッシュ処理
WO2012111113A1 (ja) * 2011-02-16 2012-08-23 富士通株式会社 メモリ管理プログラム、メモリ管理方法、情報処理装置、及びメモリ管理プログラムを記録したコンピュータ読取可能な記録媒体
JPWO2012111113A1 (ja) * 2011-02-16 2014-07-03 富士通株式会社 メモリ管理プログラム、メモリ管理方法、及び情報処理装置

Also Published As

Publication number Publication date
US6219827B1 (en) 2001-04-17

Similar Documents

Publication Publication Date Title
JPH11328031A (ja) 動的変換システムにおけるトレ―スのランク付け方法
US10545789B2 (en) Task scheduling for highly concurrent analytical and transaction workloads
Cho et al. Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters
Davis et al. Analysis of probabilistic cache related pre-emption delays
US7137115B2 (en) Method for controlling multithreading
KR101361945B1 (ko) 컴퓨터 스레드들의 이종 리소스들로의 맵핑
US7240223B2 (en) Method and apparatus for dynamic power management in a processor system
US20060168571A1 (en) System and method for optimized task scheduling in a heterogeneous data processing system
US20110066830A1 (en) Cache prefill on thread migration
Altmeyer et al. On the effectiveness of cache partitioning in hard real-time systems
JPH0594315A (ja) システムの生産cpu時間を改善する方法
Das et al. Adaptive memory management and optimism control in Time Warp
US7761873B2 (en) User-space resource management
CN113688062B (zh) 用于存储数据的方法和相关产品
KR100400165B1 (ko) 처리 시스템 스케쥴링
US11567938B1 (en) Intelligent query plan cache size management
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
US20240020155A1 (en) Optimal dispatching of function-as-a-service in heterogeneous accelerator environments
Kang Enhancing timeliness and saving power in real-time databases
US7120776B2 (en) Method and apparatus for efficient runtime memory access in a database
Hwang et al. CAVA: Exploring memory locality for big data analytics in virtualized clusters
Jejurikar et al. Integrating preemption threshold scheduling and dynamic voltage scaling for energy efficient real-time systems
Kim et al. GPGPU-Perf: efficient, interval-based DVFS algorithm for mobile GPGPU applications
De Sensi et al. State-aware concurrency throttling
Radhakrishnan et al. On-line configuration of a time warp parallel discrete event simulator

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060725