JP2001216140A - 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 - Google Patents

命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体

Info

Publication number
JP2001216140A
JP2001216140A JP2000027218A JP2000027218A JP2001216140A JP 2001216140 A JP2001216140 A JP 2001216140A JP 2000027218 A JP2000027218 A JP 2000027218A JP 2000027218 A JP2000027218 A JP 2000027218A JP 2001216140 A JP2001216140 A JP 2001216140A
Authority
JP
Japan
Prior art keywords
function
cache
combination
conflict
execution
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
JP2000027218A
Other languages
English (en)
Inventor
Hideji Nimata
秀治 二俣
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.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2000027218A priority Critical patent/JP2001216140A/ja
Publication of JP2001216140A publication Critical patent/JP2001216140A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4442Reducing the number of cache misses; Data prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 複数の関数間のキャッシュ・コンフリクトを
削減し、アプリケーション・プログラムの実行スピード
を向上する命令キャッシュ関数割付装置を得る。 【解決手段】 関数時系列情報出力部100がアプリケ
ーション・プログラム110を入力してプロファイルに
より関数呼び出し時の呼び出し先関数IDと関数からの
戻り時の戻り先関数IDを関数実行の時系列情報111
に出力し、この時系列情報111を関数時系列情報解析
部101が解析し、直接的、間接的なキャッシュ・コン
フリクトを発生する可能性のある関数呼び出しのパター
ンを抽出して関数間キャッシュ・コンフリクト組合せ情
報112として記録する。関数メモリ空間配置最適化部
102は、実行遷移回数の多い関数の順にキャッシュ・
ラインを共有しないようにメモリ空間に配置する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令キャッシュへ
の関数割り付けを最適化する命令キャッシュ関数割付装
置、命令キャッシュ関数割付最適化方法および命令キャ
ッシュ関数割付最適化手順を記録した記録媒体に関す
る。
【0002】
【従来の技術】従来、命令キャッシュ関数割付装置、命
令キャッシュ関数割付最適化方法および命令キャッシュ
関数割付最適化手順を記録した記録媒体は、例えば、C
PUの速度に規制されつつ、メモリアクセス処理速度を
改善する装置および方法に関する。これに関連する技術
において、CPU速度とメモリアクセスの処理速度との
差は、年々拡大する一方である。
【0003】DRAMのアクセス時間の向上率は年率7
%、CPU速度は50〜100%というデータもある
(1996年4月19日/日経BP社発行、日経BP出
版センター発売の「コンピュータの構成と設計」、Davi
d.A.Patterson 、John.L.Hennessy 、成田光彰訳よ
り)。よって、キャッシュの有効利用が、非常に重要な
問題となってきている。なお、キャッシュとは既知の通
り、外部メモリを高速にアクセスするための機構であ
る。一般に、プログラムはメモリに配置された関数をア
ドレス順に処理していく。しかし、外部メモリのアクセ
ス速度は、CPUの処理速度に比べて非常に遅い。この
ため、結果として実行速度が遅くなるという問題点があ
る。
【0004】上記の問題点を解消するため、関数実行の
際に外部メモリ上のプログラムをキャッシュという高速
アクセス可能なバッファにコピーして実行することによ
り、高速なプログラム実行を実現することが可能とな
る。これは一般に、プログラムを実行すると、一度アク
セスされたメモリは近いうちに再度アクセスされる可能
性が高いという性質によるものである。
【0005】ただし、一般的にキャッシュの構成には、
コストがかかるため外部メモリに比べて非常にサイズは
小さい。よって、外部メモリをキャッシュのサイズで区
切った領域に分割し、分割した領域毎に外部メモリをキ
ャッシュに割り当て、あるアドレスに対する最初のアク
セスでそのアドレスのプログラムをキャッシュの割り当
てた境域にコピーし、次に外部メモリの同じアドレスを
アクセスした場合は、キャッシュを直接アクセスする。
このことで、高速なプログラム実行を実現する。
【0006】この時、外部メモリからキャッシュ・メモ
リへのコピーは特定のサイズの単位で行われ、このサイ
ズでキャッシュを分割した領域をキャッシュラインと呼
ぶ。従って、同一のキャッシュラインに割り当たった外
部メモリのアドレスに配置された関数同士は、関数が切
り替わる度にキャッシュにプログラムをコピーし直す必
要が生じてくる。これをキャッシュ・コンフリクトとい
う。これが頻繁に起きると、結果としてプログラムの実
行速度が遅くなってしまうという問題がある。よって、
昨今では、この問題を解消すべく同時に動く可能性の高
い関数同士は、同一のキャッシュラインには載らないよ
うに配置する方法が研究されている。
【0007】なお、従来、キャッシュには命令キャッシ
ュとデータキャッシュがあるが、本発明は、命令キャッ
シュに着目するものである。外部メモリのキャッシュへ
の割当て方式には、最も単純で安価なダイレクト・マッ
プ方式や、セット・アソシアティブ/フル・アソシアテ
ィブといった方式がある。しかし、基本的な問題は全て
同じであるため、以降、ダイレクト・マップ方式を例に
とり説明する。
【0008】また、従来の言語処理系プログラムでは、
ある処理単位(関数)毎にメモリに適当に配置してい
た。このため、キャッシュ搭載のシステムにおいては、
それが必ずしも最適に利用されているとは限らなかっ
た。
【0009】昨今では、命令キャッシュに関し、キャッ
シュ・コンフリクトの回数を確率的に減らすために、関
数の呼び出し回数情報を元にして関数のメモリ配置を最
適化する。このことにより、キャッシュを有効に利用す
る研究がなされており、いくつかのアルゴリズムが論文
発表されている。例えば、従来例1の“Efficient Proc
edure Mapping Using Cache Line Colorling”(A.H.Has
hemi,D.R.Kaeli,B.Calder ACM SIGPLAN,June,1997)に
おいては、呼び出し回数の多い関数から順にキャッシュ
・コンフリクトを避けるように関数のメモリ配置を最適
にしていく手法が公開されている。
【0010】また、従来例2の特開平11−23211
7号公報の「プログラム変換方法、プログラム変換装置
及びプログラム変換プログラムを記憶した記憶媒体」に
おいては、キャッシュ・メモリを効率よく使用するため
の関数配置方法の実施例として上記従来例1の論文の方
法が採用され、詳しく説明されている。この論文のアル
ゴリズムでは、関数の呼出グラフを作成し、呼び出し回
数をその辺に対する重みとして優先順位を付けてメモリ
空間に配置する。このことにより、まず関数を最初に配
置した時のキャッシュ・コンフリクトを避けることがで
きる。さらに、各関数が配置された「色」(=使用され
ているキャッシュライン)と、その関数が現在利用でき
ない「色」の集合を記録しておき、後者の色を使わない
ように関数を配置し、既に配置した関数についても、そ
の関数の利用できない色を使わないという条件の下で、
別の場所に移動する。このことで、直接の“親”あるい
は“子”との間で発生するキャッシュ・コンフリクトを
除去するものである。
【0011】図8、図9、および図10を参照し、図3
に示す本発明の実施例で適用したソース・プログラムに
対する従来例での動作を確認する。このことにより、従
来例における問題点をより詳細に説明する。なお、図8
および図9において、実線の矢印は処理の流れを示し、
点線の矢印はデータの流れを示している。
【0012】図8の従来技術例に対し、図3に示すソー
ス・プログラム例300を適用した場合、関数呼び出し
情報出力部800において、プロファイルにより関数呼
び出し時に呼出元と呼出先の関数情報とその呼出回数を
出力すると、図10に示す関数呼出組合せ情報811が
作成される。
【0013】次に、関数メモリ空間配置最適化部801
において、関数呼出組合せ情報811を呼出回数の多い
順にソートし、この順番にアドレス空間に配置すると同
時に配置した関数が利用できない「色」の集合を認識
し、これを避けて後続の関数を配置する。
【0014】すなわち、図9において、ステップ901
では関数呼出組合せ情報811から図11に示す関数呼
出しグラフ1100を作成し、ステップ902では作成
した関数呼出グラフ1100を呼び出し回数の多いもの
と少ないものに分割する。ここでは、func-funcA、 func
-funcB、 func-funcCが前者の「多いもの」、main-func
が後者の「少ないもの」となる。ここで作成した呼出グ
ラフにおいては、関数の組合せが辺となり、その両端の
ノードが組合せにおける2つの関数となる。なお、図3
における各関数の占めるキャッシュライン数すなわち
「色」の数は、funcが2個、funcA,funcB,funkC,mainが
1個であるものとする。
【0015】次に、ステップ903において、呼出回数
の多いもののグループを呼出回数の多い順にソートし、
その順番でステップ904以降の処理を行う。ステップ
904では呼出回数の多い辺が残っているか確認し、残
っているのでステップ905に進み、func-funcAの辺に
対して両側のノードが未配置であるかを確認する。この
確認において未配置であるのでステップ909に進み、
funcとfuncAをメモリ空間上の任意の場所に隣接して配
置し、ステップ915においてfuncとfuncAの利用でき
ない「色」を利用不可能集合として認識した後、再びス
テップ904に戻る。隣接して配置されたfunc-funcAの
辺は、複合ノードとして今後ひとつのノードとして扱わ
れる。この時点で、既に配置済みの関数とキャッシュ・
ラインの関係および各関数の利用不可能集合の状態は、
図12a)に示す様になっている。
【0016】続いて、呼出回数の多い辺がまだ残ってい
るのでステップ905に進み、func-funcCの辺に対して
両側のノードが未配置であるかを確認する。この確認に
おいて、funcは配置であるのでステップ906に進み、
2個の異なる複合ノードに属するノードを結ぶ辺かどう
かを確認する。この確認において、funcCは複合ノード
に属していないので、ステップ907に進み、一方のノ
ードが複合ノードに属し他方のノードが未配置かどうか
確認すると、条件に当てはまるのでステップ911に進
む。
【0017】ステップ911では未配置のfuncCをfunc
に近い場所に配置し、ステップ913において関数配置
の際、利用不可能集合の影響で隙間が空いてないか確認
すると空いていないので、ステップ915においてfunc
とfuncCを利用できない「色」を利用不可能集合として
認識した後に、再びステップ904に戻る。この時点
で、既に配置済みの関数とキャッシュ・ラインの関係お
よび各関数の利用不可能集合の状態は、図12b)に示
す様になっている。
【0018】ステップ904において、未だ未配置の辺
があるのでステップ905に進み、func-funcBの辺に対
して両側のノードが未配置であるかを確認する。この確
認において、funcは配置済みであるのでステップ906
に進み、2個の異なる複合ノードに属するノードを結ぶ
辺かどうかを確認する。この確認において、funcBは複
合ノードに属していないのでステップ907に進み、一
方のノードが複合ノードに属し、他方のノードが未配置
かどうか確認すると条件に当てはまるのでステップ91
1に進む。
【0019】ステップ911では、未配置のfuncBと対
を成すfuncの中心から複合ノードの両端までの距離が同
じである。このため任意に左側に配置し、ステップ91
3において関数配置の際に利用不可能集合の影響で隙間
が空いてないかを確認する。この認識の結果は空いてい
ないので、ステップ915においてfuncとfuncBの利用
できない「色」を利用不可能集合として認識した後、再
びステップ904に戻る。ステップ904において、未
配置の辺が無くなったことを確認するとステップ916
に進み、ただ1つの未配置ノードmainを、任意にfuncA
の右に配置する。
【0020】図12c)は、最終的な関数配置とキャッ
シュ・ラインの関係、および各関数の利用不可能集合の
状態であるが、funcA、funcBが同じキャッシュ・ライ
ン「青」を共有しており、それぞれの利用不可能集合に
は「青」が含まれていない。よって、呼び出し元関数と
呼び出し先関数の間のキャッシュ・コンフリクトは削減
できる。
【0021】上記の従来例2では、手続き、関数、ある
いはサブルーチン同士が、互いを呼び出す際のキャッシ
ュ・メモリ上での衝突およびキャッシュ・ミスを防止す
るのが目的である。この目的において、手続き、関数、
あるいはサブルーチンが実際に呼び出される回数を示す
情報と、手続き、関数、あるいはサブルーチン同士が、
互いを呼び出す関係を示す情報とを利用している。これ
により、手続き、関数、あるいはサブルーチン同士が、
互いを呼び出す際のキャッシュ・メモリ上での衝突を防
止できる。
【0022】
【発明が解決しようとする課題】しかしながら、上記の
従来例2において、ある関数の中で複数の関数が連続し
て呼ばれている場合、あるいはループの中で呼ばれてい
る場合等には、これら複数の関数間のキャッシュ・コン
フリクトを削減できるとは限らないという問題点があ
る。
【0023】従来例2との比較において、本発明の目的
は、互いの呼び出しに関係の無い手続き、関数あるいは
サブルーチンがある手続き、関数あるいはサブルーチン
の中で複数の手続き、関数あるいはサブルーチンが図3
に示すプログラム例のfuncA、funcB、funcCのように
連続して呼ばれている場合、あるいはループの中で呼ば
れている場合に生じるキャッシュ・メモリ上での衝突お
よびキャッシュ・ミスを、防止することにある。
【0024】また、本発明の構成では、手続き、関数、
サブルーチンの時系列情報を利用し、その時系列情報を
パターン認識のアルゴリズムによる解析により抽出した
キャッシュ・メモリ上での衝突およびキャッシュ・ミス
を発生する可能性のある手続き、関数、あるいはサブル
ーチンの組合せ情報を利用している。この構成により、
上記従来例2の効果に加え、互いの呼び出し関係に無い
手続き、関数、あるいはサブルーチン同士のキャッシュ
・メモリ上での衝突およびキャッシュ・ミスの発生を
も、防止することができる。
【0025】本発明は、複数の関数間のキャッシュ・コ
ンフリクトを削減し、アプリケーション・プログラムの
実行スピードを向上する命令キャッシュ関数割付装置、
命令キャッシュ関数割付最適化方法および命令キャッシ
ュ関数割付最適化手順を記録した記録媒体を提供するこ
とを目的とする。
【0026】より詳細には、本発明は、プロファイルに
より直接の関数呼出組合せ情報811を出力する替わり
に、関数実行の時系列情報111を出力し、この時系列
情報から、連続した関数呼出し等直接の関数呼出し以外
にキャッシュ・コンフリクトを発生する可能性のある関
数の組合せ実行パターンを検出し、検出した関数間キャ
ッシュ・コンフリクト組合せ情報112に対して、従来
技術の関数配置最適化801を適用する。これにより従
来削減できなかった、ある関数の中で複数の関数が連続
して呼ばれている場合、あるいはループの中で呼ばれて
いる場合等、これら複数の関数間のキャッシュ・コンフ
リクトを削減し、アプリケーション・プログラムの実行
スピードを向上することを目的とする。
【0027】
【課題を解決するための手段】かかる目的を達成するた
め、請求項1記載の発明の命令キャッシュ関数割付装置
は、所定のアプリケーション・プログラムを入力してプ
ロファイルにより関数呼び出し時の呼び出し先関数ID
および関数から戻り時の戻り先関数IDを出力する関数
時系列情報出力部と、関数実行の時系列情報を解析して
直接的、間接的なキャッシュ・コンフリクトを発生する
可能性のある関数呼び出しのパターンを抽出し、この抽
出したパターンの関数の組合せと直接の関数呼出し関係
にある関数の組合せおよびそれらの実行遷移回数を記録
する関数時系列情報解析部と、を有して構成されたこと
を特徴としている。
【0028】また、上記の関数時系列情報出力部から出
力された呼び出し先関数IDと戻り先関数IDとを関数
実行の時系列情報として蓄積する記憶部と、この関数の
組合せおよびそれらの実行遷移回数を関数間キャッシュ
・コンフリクト組合せ情報として蓄積する記憶部をさら
に有するとよい。
【0029】請求項4記載の発明の命令キャッシュ関数
割付最適化方法は、プロファイルにより関数実行の時系
列情報を出力し、この時系列情報から連続した関数呼出
し等直接の関数呼出し以外にキャッシュ・コンフリクト
を発生する可能性のある関数の組合せ実行パターンの関
数間キャッシュ・コンフリクト組合せ情報を検出し、検
出した関数間キャッシュ・コンフリクト組合せ情報に対
して関数の中で複数の関数が連続して呼ばれている場合
あるいはループの中で呼ばれている場合等のこれら複数
の関数間のキャッシュ・コンフリクトを削減し、所定の
アプリケーション・プログラムの実行スピードを向上し
たことを特徴としている。
【0030】また、上記の関数実行の時系列情報を解析
して直接的、間接的なキャッシュ・コンフリクトを発生
する可能性のある関数呼び出しのパターンを抽出し、こ
の抽出したパターンの関数の組合せと、直接の関数呼出
し関係にある関数の組合せ、およびそれらの実行遷移回
数を関数間キャッシュ・コンフリクト組合せ情報に記録
し、さらに、この関数間キャッシュ・コンフリクト組合
せ情報は、キャッシュ・コンフリクトを発生する可能性
のある組合せの2つの関数IDを登録する2つの関数I
D欄とこの2つの組合せの関数実行遷移回数を設定する
実行遷移回数欄とを備えるとよい。
【0031】請求項7に記載の発明の命令キャッシュ関
数割付最適化手順を記録した記録媒体は、プロファイル
により関数実行の時系列情報を出力する手順と、時系列
情報から連続した関数呼出し等直接の関数呼出し以外に
キャッシュ・コンフリクトを発生する可能性のある関数
の組合せ実行パターンの関数間キャッシュ・コンフリク
ト組合せ情報を検出する手順と、検出した関数間キャッ
シュ・コンフリクト組合せ情報に対して関数の中で複数
の関数が連続して呼ばれている場合あるいはループの中
で呼ばれている場合等のこれら複数の関数間のキャッシ
ュ・コンフリクトを削減する手順とを実行させることを
特徴としている。
【0032】また、上記の関数実行の時系列情報を解析
して直接的、間接的なキャッシュ・コンフリクトを発生
する可能性のある関数呼び出しのパターンを抽出し、こ
の抽出したパターンの関数の組合せと、直接の関数呼出
し関係にある関数の組合せ、およびそれらの実行遷移回
数を関数間キャッシュ・コンフリクト組合せ情報を記録
するとよい。
【0033】
【発明の実施の形態】次に、添付図面を参照して本発明
による命令キャッシュ関数割付装置、命令キャッシュ関
数割付最適化方法および命令キャッシュ関数割付最適化
手順を記録した記録媒体の実施の形態を詳細に説明す
る。図1から図7を参照すると、本発明の命令キャッシ
ュ関数割付装置、命令キャッシュ関数割付最適化方法お
よび命令キャッシュ関数割付最適化手順を記録した記録
媒体の一実施形態が示されている。
【0034】本発明の特徴は、キャッシュを搭載したマ
イクロ・プロセッシング・デバイス・システム用アプリ
ケーション・プログラムについて、プロファイルにより
得られた関数単位の実行に関する時系列情報を解析す
る。特に、直接の呼び出し関係を持たない関数同士の実
行において、キャッシュのコンフリクトを生じる可能性
のある関数の実行パターンを検出し、これらの関数同士
が実行時に同じキャッシュラインを共有しないようなメ
モリ空間上のアドレスに配置する。このことにより、プ
ログラムの実行スピードを向上させる。この内容を以下
に詳述する。
【0035】図1は、本発明の命令キャッシュ関数割付
装置、命令キャッシュ関数割付最適化方法および命令キ
ャッシュ関数割付最適化手順を記録した記録媒体の実施
形態の処理手順例を示すブロック図である。また、図2
は、関数間キャッシュ・コンフリクト組合せ情報112
の構成例を示す図である。なお、図1において、実線の
矢印は処理の流れを示し、点線の矢印はデータの流れを
示している。
【0036】関数時系列情報出力部100は、アプリケ
ーション・プログラム110を入力し、プロファイルに
より関数呼び出し時の呼び出し先関数IDと関数からの
戻り時の戻り先関数IDを、関数実行の時系列情報11
1に出力する。
【0037】関数時系列情報解析部101は、関数実行
の時系列情報111を解析し、直接的、間接的なキャッ
シュ・コンフリクトを発生する可能性のある関数呼び出
しのパターンを抽出し、関数間キャッシュ・コンフリク
ト組合せ情報112に、抽出したパターンの関数の組合
せと、直接の関数呼出し関係にある関数の組合せ、およ
びそれらの実行遷移回数を記録する。
【0038】関数メモリ空間配置最適化部102は、実
行遷移回数の多い関数の順にキャッシュ・ラインを共有
しないようにメモリ空間に配置する。また、実行遷移回
数欄202は、関数ID欄200、201とその組合せ
の関数実行遷移回数を設定する。
【0039】関数間キャッシュ・コンフリクト組合せ情
報112は、図2に示すように、キャッシュ・コンフリ
クトを発生する可能性のある組合せの2つの関数IDを
登録する。なお、関数ID欄200、201とその組合
せの関数実行遷移回数を設定する実行遷移回数欄202
を備えている。
【0040】上記に構成される本実施形態の命令キャッ
シュ関数割付装置において、まず、関数時系列情報出力
部100において入力したアプリケーション・プログラ
ム110に対してプロファイルを行い、関数実行の時系
列情報111を生成する。次に、関数時系列情報出力部
100において生成された関数実行の時系列情報111
を解析し、同じキャッシュ・ラインを共有していた場合
に、実行においてキャッシュ・コンフリクトを生じる関
数単位の実行遷移パターンを認識し、関数間キャッシュ
・コンフリクト組合せ情報112に、認識された関数の
組合せとその実行遷移回数を記録する。最後に、関数メ
モリ空間配置最適化部102において、関数間キャッシ
ュ・コンフリクト組合せ情報112を参照し、実行遷移
回数の多い関数の順に同じキャッシュ・ラインを共有し
ないようにメモリ空間に配置する。
【0041】以上の通り、プロファイルによる関数単位
の実行に関する時系列情報を解析し、キャッシュのコン
フリクトを生じる可能性のある関数の実行パターンを検
出し、これらの関数同士が実行時に同じキャッシュ・ラ
インを共有しないようなメモリ空間上のアドレスに配置
する。このことにより、プログラムの実行スピードを向
上させることができる。これらの関係において、図1、
図3、図4、図5、図6、および図7を参照して動作例
について以下に詳述する。
【0042】図1において、アプリケーション・プログ
ラム110を入力した関数時系列情報出力部100は、
関数呼び出し時の呼び出し先関数IDと関数からの戻り
時に戻り先関数IDを出力するコードを、アプリケーシ
ョン・プログラム110に挿入して実行する。プロファ
イルと呼ぶこのことにより、これらの情報を関数実行の
時系列情報111に出力する。
【0043】すなわち、アプリケーション・プログラム
110のC言語によるソース・プログラムが図3に示す
ソース・プログラム例300の場合、関数funcの関数I
Dを“0”、関数funcAの関数IDを“1”、関数func
Bの関数IDを“2”、関数funcCの関数IDを
“3”、関数mainの関数IDを“4”と仮定する。本仮
定において、まず、関数mainから関数funcの呼出時に呼
出先関数IDの“0”を出力して、次に関数funcから関
数funcAの呼出時に“1”を出力し、続いて関数funcA
から関数funcへの戻り時に戻り先関数IDの“0”を出
力し、以降、同様にしてプログラムの終了まで関数ID
の列を出力する。
【0044】ソース・プログラム例300は、C言語で
関数mainから関数funcを呼び出し、関数funcでは関数fu
ncAと関数funcBを連続して呼び出す処理を10回繰返
す処理と、続いて関数funcAと関数funcCを連続して呼
び出す処理を20回繰返す処理を行い、関数mainに戻っ
て終了するプログラムである。この処理により、プログ
ラムの終了までプロファイルを実行すると、図4に示す
関数IDの並びである関数時系列情報例400が作成さ
れる。
【0045】次に、関数時系列情報解析部101で、関
数時系列情報出力部100で作成した関数実行の時系列
情報111を解析し、直接的、間接的なキャッシュ・コ
ンフリクトを発生する可能性のある関数呼び出しのパタ
ーンを抽出し、関数間キャッシュ・コンフリクト組合せ
情報112に抽出したパターンの関数の組合せと、直接
の関数呼出し関係にある関数の組合せ、およびそれらの
実行遷移回数を記録する。
【0046】すなわち、図5を参照して関数時系列情報
解析部101の詳細を説明する。なお、本図5におい
て、実線の矢印は処理の流れを示し、点線の矢印はデー
タの流れを示している。まず、関数ID入力手段500
において、関数時系列情報111から全ての関数IDの
並びを入力する。この入力順に関数IDに“1”からの
番号を付け、番号変数初期化処理501によって番号変
数nを“1”に初期化する。
【0047】次に、関数時系列情報の終端判定処理50
2によってn+1が入力した関数IDの並びの総数を超
えないと判定すると、再帰呼び出し判定処理503に進
み、nとn+1の関数IDが“0”と“1”で異なるの
で再帰呼び出しではないと判定する。この判定の後、関
数直接呼出し組合せ既登録判定処理504によってnと
n+1の関数IDの組合せが、関数間キャッシュ・コン
フリクト組合せ情報112内に未だ存在しないと判定し
て、関数直接呼出し組合せ登録処理505によってnと
n+1の関数ID(0,1)の組合せを関数間キャッシ
ュ・コンフリクト組合せ情報112に登録し、実行遷移
回数欄に“1”を設定する。以上の処理によって、図6
のa)に示す関数間キャッシュ・コンフリクト組合せ情
報112が作成される。
【0048】さらに、認識パターン関数ID確認処理5
06によってn+4が関数IDの総数を超えないことを
確認すると、第一の間接的関数間キャッシュ・コンフリ
クト組合せパターン認識判定処理507において、n、
n+2、n+4の関数IDは“0”であり一致すること
を認識したと判定し、第二の間接的関数間キャッシュ・
コンフリクト組合せパターン認識判定処理508におい
て、n+1、n+3の関数IDが“1”と“2”であり
一致しないことを認識したと判定する。
【0049】次に、第一の間接的関数間キャッシュ・コ
ンフリクト組合せパターン認識判定処理507の判定に
より、n+2はnと同一の関数IDであり、n+1とn
+2は先の関数直接呼出し組合せ登録処理505によっ
て登録済みのfuncとfuncAの組合せであることが自明と
なる。このため、関数戻り組合せ登録処理509によっ
てn+1とn+2、すなわちnの関数ID(0,1)の
組合せの実行遷移回数に“1”を加算し、図6のb)に
示す関数間キャッシュ・コンフリクト組合せ情報112
が作成される。
【0050】続いて、コンフリクト関数組合せ既登録判
定処理510によって、n+1とn+3の関数IDであ
る“1”と“2”の組合せが関数間キャッシュ・コンフ
リクト組合せ情報112内に未だ存在しないと判定の
後、コンフリクト関数組合せ登録処理511によって、
n+1とn+3の関数ID(1,2)の組合せを関数間
キャッシュ・コンフリクト組合せ情報112に登録して
実行遷移回数欄に1を設定し、さらに、次の関数時系列
情報のパターン認識処理を行う。このため、番号更新処
理512によって、nすなわち“0”をn+2すなわち
“2”に更新し、関数時系列情報の終端判定処理502
に戻る。この時点で、図6のc)に示す関数間キャッシ
ュ・コンフリクト組合せ情報112が作成されている。
【0051】再び、関数時系列情報の終端判定処理50
2によってn+1が入力した関数IDの並びの総数を超
えないと判定すると、再帰呼び出し判定処理503に進
み、nとn+1の関数IDが“0”と“2”で異なるの
で再帰呼び出しではないと判定する。この後、関数直接
呼出し組合せ既登録判定処理504によって、nとn+
1の関数IDの組合せが関数間キャッシュ・コンフリク
ト組合せ情報112内に未だ存在しないと判定し、関数
直接呼出し組合せ登録処理505によって、nとn+1
の関数ID(0,2)の組合せを関数間キャッシュ・コ
ンフリクト組合せ情報112に登録し、実行遷移回数欄
に“1”を設定する。以上の処理によって、図6のd)
に示す関数間キャッシュ・コンフリクト組合せ情報11
2が作成される。
【0052】さらに、認識パターン関数ID確認処理5
06によって、n+4が関数IDの総数を超えないこと
を確認すると、第一の間接的関数間キャッシュ・コンフ
リクト組合せパターン認識判定処理507において、
n、n+2、n+4の関数IDは“0”であり一致する
ことを認識したと判定し、第二の間接的関数間キャッシ
ュ・コンフリクト組合せパターン認識判定処理508に
おいて、n+1、n+3の関数IDが“2”と“1”で
あり一致しないことを認識したと判定する。
【0053】次に、第一の間接的関数間キャッシュ・コ
ンフリクト組合せパターン認識判定処理507の判定に
より、n+2はnと同じ関数IDであり、n+1とn+
2は先の関数直接呼出し組合せ登録処理505によって
登録済みのfuncとfuncBの組合せであることが自明であ
る。このため、関数戻り組合せ登録処理509によっ
て、n+1とn+2、すなわちnの関数ID(1,2)
の組合せの実行遷移回数に“1”を加算する。
【0054】続いて、コンフリクト関数組合せ既登録判
定処理510によって、n+1とn+3の関数IDであ
る“2”と“1”の組合せが関数間キャッシュ・コンフ
リクト組合せ情報112に既に存在すると判定し、実行
遷移回数更新処理515によって当該組合せの実行遷移
回数に“1”を加算し、さらに、次の関数時系列情報の
パターン認識処理を行う。このため、番号更新処理51
2によって、nすなわち“2”をn+2すなわち“4”
に更新し、関数時系列情報の終端判定処理502に戻
る。この時点で、図6のe)に示す関数間キャッシュ・
コンフリクト組合せ情報112が作成されている。
【0055】以降、図4に示す関数IDの並びに対し、
nが“40”になるまで同様の処理を繰り返すと、図6
のf)に示す関数間キャッシュ・コンフリクト組合せ情
報112が作成される。
【0056】さらに、図4に示す関数IDの並びである
関数時系列情報例400に対して処理を進めると、この
関数時系列情報例400の終端判定処理502によって
n+1が関数IDの並びの総数を超えないと判定する
と、再帰呼び出し判定処理503に進む。ステップ50
3の「nとn+1の関数IDは異なるか?」の判定にお
いて、nすなわち“40”とn+1すなわち“41”の
関数IDが“0”と“1”で異なるので再起呼び出しで
はないと判定し、関数直接呼出し組合せ既登録判定処理
504によってnとn+1の関数IDの組合せが関数間
キャッシュ・コンフリクト組合せ情報112内に既に存
在すると判定して、実行遷移回数更新処理514によっ
て当該組合せの実行遷移回数に“1”を加算する。
【0057】さらに、認識パターン関数ID確認処理5
06によって、n+4が関数IDの総数を超えないこと
を確認すると、第一の間接的関数間キャッシュ・コンフ
リクト組合せパターン認識判定処理507において、
n、n+2、n+4の関数IDが“0”であり一致する
ことを認識したと判定し、第二の間接的関数間キャッシ
ュ・コンフリクト組合せパターン認識判定処理508に
おいて、n+1、n+3の関数IDが“1”と“3”で
あり一致しないことを認識したと判定する。
【0058】次に、第一の間接的関数間キャッシュ・コ
ンフリクト組合せパターン認識判定処理507の判定に
より、n+2はnと同一の関数IDであり、n+1とn
+2は先の関数直接呼出し組合せ登録処理505によっ
て、登録済みのfuncとfuncAの組合せであることが自明
となる。このため、関数戻り組合せ登録処理509によ
ってn+1とn+2、すなわちnの関数ID(1,3)
の組合せの実行遷移回数に“1”を加算する。
【0059】続いて、コンフリクト関数組合せ既登録判
定処理510によって、n+1とn+3の関数IDであ
る“1”と“3”の組合せが関数間キャッシュ・コンフ
リクト組合せ情報112にまだ存在しないと判定し、コ
ンフリクト関数組合せ登録処理511によってn+1と
n+3の関数IDの組合せを関数間キャッシュ・コンフ
リクト組合せ情報112に登録し、実行遷移回数欄に
“1”を設定する。さらに、次の関数時系列情報のパタ
ーン認識処理を行うため、番号更新処理512によって
nすなわち“40”をn+2すなわち“42”に更新
し、関数時系列情報の終端判定処理502に戻る。この
時点で、図6のg)に示す関数間キャッシュ・コンフリ
クト組合せ情報112が作成される。
【0060】再び、関数時系列情報の終端判定処理50
2によって、n+1が入力した関数IDの並びの総数を
超えないと判定すると再帰呼び出し判定処理503に進
み、nとn+1の関数IDが“0”と“3”で異なるの
で再起呼び出しではないと判定する。すると、関数直接
呼出し組合せ既登録判定処理504によって、nとn+
1の関数IDの組合せが関数間キャッシュ・コンフリク
ト組合せ情報112内にまだ存在しないと判定して、関
数直接呼出し組合せ登録処理505によって、nとn+
1の関数ID(0,3)の組合せを関数間キャッシュ・
コンフリクト組合せ情報112に登録し、実行遷移回数
欄に“1”を設定する。
【0061】さらに、認識パターン関数ID確認処理5
06によって、n+4が関数IDの総数を超えないこと
を確認すると、第一の間接的関数間キャッシュ・コンフ
リクト組合せパターン認識判定処理507において、
n、n+2、n+4の関数IDが“0”であり一致する
ことを認識したと判定する。この後、第二の間接的関数
間キャッシュ・コンフリクト組合せパターン認識判定処
理508において、n+1、n+3の関数IDが“3”
と“1”であり、一致しないことを認識したと判定す
る。
【0062】次に、第一の間接的関数間キャッシュ・コ
ンフリクト組合せパターン認識判定処理507の判定に
より、n+2はnと同じ関数IDであり、n+1とn+
2は先の関数直接呼出し組合せ登録処理505によって
登録済みのfuncとfuncCの組合せであることが自明であ
る。このため、関数戻り組合せ登録処理509によっ
て、n+1とn+2、すなわちnの関数ID(0,3)
の組合せの実行遷移回数に“1”を加算する。
【0063】続いて、コンフリクト関数組合せ既登録判
定処理510によって、n+1とn+3の関数IDであ
る“3”と“1”の組合せが関数間キャッシュ・コンフ
リクト組合せ情報112内に既に存在すると判定し、実
行遷移回数更新処理515によって当該組合せの実行遷
移回数に“1”を加算する。さらに、次の関数時系列情
報がパターンに合致するか確認するため、番号更新処理
510によって、nすなわち“42”をn+2すなわち
“44”に更新し、関数時系列情報の終端判定処理50
2に戻る。この時点で、図6のh)に示す関数間キャッ
シュ・コンフリクト組合せ情報112が作成されてい
る。
【0064】以降、図4に示す関数IDの並びである関
数時系列情報例400に対し、nが“120”になるま
で同様の処理を繰り返すと、図6のi)に示す関数間キ
ャッシュ・コンフリクト組合せ情報112が作成され
る。
【0065】さらに、図4に示す関数IDの並びである
関数時系列情報例400に対し、処理を進めると、関数
時系列情報の終端判定処理502によってn+1が関数
IDの並びの総数を超えないと判定する。すると、再帰
呼び出し判定処理503に進み、nとn+1の関数ID
が“0”と“4”で異なるので再起呼出ではないと判定
し、関数直接呼出し組合せ既登録判定処理504によっ
て、nとn+1の関数IDの組合せが関数間キャッシュ
・コンフリクト組合せ情報112内にまだ存在しないと
判定する。この後、関数直接呼出し組合せ登録処理50
5によって、nとn+1の関数ID(0,4)の組合せ
を関数間キャッシュ・コンフリクト組合せ情報112に
登録し、実行遷移回数欄に“1”を設定する。
【0066】さらに、認識パターン関数ID確認処理5
06によって、n+4が“124”であり、関数IDの
総数121を超えていることを確認すると、番号更新処
理513に進み、nすなわち“120”をn+1すなわ
ち“121”に更新して関数時系列情報の終端判定処理
502に戻り、n+1が関数IDの総数に超えたと判定
され、関数時系列情報解析部101の処理を終了する。
この時点で、図6のj)に示す関数間キャッシュ・コン
フリクト組合せ情報112が、作成されている。
【0067】最後に、関数メモリ空間配置最適化部10
3で、図9に示す従来技術と同じ処理を、従来の関数組
合せ情報811の替わりに関数間キャッシュ・コンフリ
クト組合せ情報112を入力として行う。この後、関数
間キャッシュ・コンフリクト組合せ情報にfuncAとfunc
Bの組合せが含まれることにより、図7に示す最終的な
関数配置とキャッシュ・ラインの関係、および各関数の
利用不可能集合の状態にみられるように、funcA、func
Bが同じキャッシュ・ラインを共有すること無く配置さ
れる。
【0068】尚、上述の実施形態は本発明の好適な実施
の一例である。但し、これに限定されるものではなく、
本発明の要旨を逸脱しない範囲内において種々変形実施
が可能である。
【0069】
【発明の効果】以上の説明より明らかなように、本発明
の命令キャッシュ関数割付装置では、関数時系列情報か
ら間接的キャッシュ・コンフリクトを発生する可能性の
ある関数の呼び出しパターンを抽出し、直接の関数呼び
出しによるキャッシュ・コンフリクトを発生する可能性
のある関数呼び出しパターンと合わせて、その関数実行
遷移回数の多い順に同じキャッシュ・ラインを共有しな
いようにメモリ空間上に配置する。この直接、間接的な
キャッシュ・コンフリクトを極力発生しないようにメモ
リ空間上に配置することにより、アプリケーション・プ
ログラムの実行スピードを向上することができる。
【図面の簡単な説明】
【図1】本発明の命令キャッシュ関数割付装置、命令キ
ャッシュ関数割付最適化方法および命令キャッシュ関数
割付最適化手順を記録した記録媒体の実施形態の処理手
順例を示すブロック図である。
【図2】関数間キャッシュ・コンフリクト組合せ情報1
12の構成例を示す図である。
【図3】ソース・プログラム例300を示す図である。
【図4】関数時系列情報例400を示す図である。
【図5】関数時系列情報解析部101の処理手順例を示
すフローチャートである。
【図6】関数間キャッシュ・コンフリクト組合せ情報例
112を示す図である。
【図7】最終的な関数配置とキャッシュ・ラインの関
係、および各関数の利用不可能集合の状態を示す図であ
る。
【図8】従来の命令キャッシュ関数割付装置の処理手順
例を示すブロック図である。
【図9】従来の関数メモリ空間配置最適化部801の処
理手順例を示すフローチャートである。
【図10】従来の関数呼出組合せ情報811の構成例を
示す図である。
【図11】従来の関数呼出グラフ1100の構成を説明
するための図である。
【図12】従来の関数配置とキャッシュ・ラインの関係
および各関数の利用不可能集合の状態を示す図である。
【符号の説明】
100 関数時系列情報出力部 101 関数時系列情報解析部 102 関数メモリ空間配置最適化部 103 関数メモリ空間配置最適化部 110 アプリケーション・プログラム 111 関数実行の時系列情報 112 関数間キャッシュ・コンフリクト組合せ情報 200、201 関数ID欄 202 実行遷移回数欄 300 ソース・プログラム例 500 関数ID入力手段 501 番号変数初期化処理 502 関数時系列情報の終端判定処理 503 再帰呼び出し判定処理 504 関数直接呼出し組合せ既登録判定処理
【手続補正書】
【提出日】平成12年2月25日(2000.2.2
5)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正内容】
【発明の名称】 命令キャッシュ関数割付装置、割付最
適化方法および割付最適化手順を記録した記録媒体

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 所定のアプリケーション・プログラムを
    入力してプロファイルにより関数呼び出し時の呼び出し
    先関数IDおよび該関数から戻り時の戻り先関数IDを
    出力する関数時系列情報出力部と、 前記関数実行の時系列情報を解析して直接的、間接的な
    キャッシュ・コンフリクトを発生する可能性のある関数
    呼び出しのパターンを抽出し、該抽出したパターンの関
    数の組合せと直接の関数呼出し関係にある関数の組合せ
    およびそれらの実行遷移回数を記録する関数時系列情報
    解析部と、 を有して構成されたことを特徴とする命令キャッシュ関
    数割付装置。
  2. 【請求項2】 前記関数時系列情報出力部から出力され
    た呼び出し先関数IDと戻り先関数IDとを関数実行の
    時系列情報として蓄積する記憶部をさらに有することを
    特徴とする請求項1記載の命令キャッシュ関数割付装
    置。
  3. 【請求項3】 前記関数の組合せおよびそれらの実行遷
    移回数を関数間キャッシュ・コンフリクト組合せ情報と
    して蓄積する記憶部を、さらに有することを特徴とする
    請求項1または2に記載の命令キャッシュ関数割付装
    置。
  4. 【請求項4】 プロファイルにより関数実行の時系列情
    報を出力し、 前記時系列情報から連続した関数呼出し等直接の関数呼
    出し以外にキャッシュ・コンフリクトを発生する可能性
    のある関数の組合せ実行パターンの関数間キャッシュ・
    コンフリクト組合せ情報を検出し、 前記検出した関数間キャッシュ・コンフリクト組合せ情
    報に対して関数の中で複数の関数が連続して呼ばれてい
    る場合あるいはループの中で呼ばれている場合等のこれ
    ら複数の関数間のキャッシュ・コンフリクトを削減し、 所定のアプリケーション・プログラムの実行スピードを
    向上したことを特徴とする命令キャッシュ関数割付最適
    化方法。
  5. 【請求項5】 前記関数実行の時系列情報を解析して直
    接的、間接的なキャッシュ・コンフリクトを発生する可
    能性のある関数呼び出しのパターンを抽出し、該抽出し
    たパターンの関数の組合せと、直接の関数呼出し関係に
    ある関数の組合せ、およびそれらの実行遷移回数を前記
    関数間キャッシュ・コンフリクト組合せ情報に記録する
    ことを特徴とする請求項4に記載の命令キャッシュ関数
    割付最適化方法。
  6. 【請求項6】 前記関数間キャッシュ・コンフリクト組
    合せ情報は、キャッシュ・コンフリクトを発生する可能
    性のある組合せの2つの関数IDを登録する2つの関数
    ID欄と該2つの組合せの関数実行遷移回数を設定する
    実行遷移回数欄とを備えていることを特徴とする請求項
    4または5に記載の命令キャッシュ関数割付最適化方
    法。
  7. 【請求項7】 プロファイルにより関数実行の時系列情
    報を出力する手順と、 前記時系列情報から連続した関数呼出し等直接の関数呼
    出し以外にキャッシュ・コンフリクトを発生する可能性
    のある関数の組合せ実行パターンの関数間キャッシュ・
    コンフリクト組合せ情報を検出する手順と、 前記検出した関数間キャッシュ・コンフリクト組合せ情
    報に対して関数の中で複数の関数が連続して呼ばれてい
    る場合あるいはループの中で呼ばれている場合等のこれ
    ら複数の関数間のキャッシュ・コンフリクトを削減する
    手順とを実行させるためのプログラムを記録した記録媒
    体。
  8. 【請求項8】 前記関数実行の時系列情報を解析して直
    接的、間接的なキャッシュ・コンフリクトを発生する可
    能性のある関数呼び出しのパターンを抽出し、該抽出し
    たパターンの関数の組合せと、直接の関数呼出し関係に
    ある関数の組合せ、およびそれらの実行遷移回数を前記
    関数間キャッシュ・コンフリクト組合せ情報に記録する
    ことを特徴とする請求項7に記載のプログラムを記録し
    た記録媒体。
JP2000027218A 2000-01-31 2000-01-31 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 Pending JP2001216140A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000027218A JP2001216140A (ja) 2000-01-31 2000-01-31 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000027218A JP2001216140A (ja) 2000-01-31 2000-01-31 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2001216140A true JP2001216140A (ja) 2001-08-10

Family

ID=18552816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000027218A Pending JP2001216140A (ja) 2000-01-31 2000-01-31 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2001216140A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266941A (ja) * 2004-03-16 2005-09-29 Fujitsu Ltd キャッシュカラーリング方法
US7085890B2 (en) 2004-02-19 2006-08-01 International Business Machines Corporation Memory mapping to reduce cache conflicts in multiprocessor systems
JP2007148556A (ja) * 2005-11-24 2007-06-14 Nec Electronics Corp 関数割付方法および関数割付装置
WO2010106914A1 (ja) * 2009-03-17 2010-09-23 日本電気株式会社 プログラムのメモリ空間への配置方法、装置、および記録媒体
JP2013003934A (ja) * 2011-06-20 2013-01-07 Hitachi Ltd メモリ管理方法、計算機及びメモリ管理プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085890B2 (en) 2004-02-19 2006-08-01 International Business Machines Corporation Memory mapping to reduce cache conflicts in multiprocessor systems
JP2005266941A (ja) * 2004-03-16 2005-09-29 Fujitsu Ltd キャッシュカラーリング方法
US7478199B2 (en) 2004-03-16 2009-01-13 Fujitsu Limited Cache coloring based on dynamic function flow
JP4554241B2 (ja) * 2004-03-16 2010-09-29 富士通セミコンダクター株式会社 キャッシュカラーリング方法
JP2007148556A (ja) * 2005-11-24 2007-06-14 Nec Electronics Corp 関数割付方法および関数割付装置
WO2010106914A1 (ja) * 2009-03-17 2010-09-23 日本電気株式会社 プログラムのメモリ空間への配置方法、装置、および記録媒体
JP2010218218A (ja) * 2009-03-17 2010-09-30 Nec Corp プログラムのメモリ空間への配置方法、装置、およびプログラム
JP4600700B2 (ja) * 2009-03-17 2010-12-15 日本電気株式会社 プログラムのメモリ空間への配置方法、装置、およびプログラム
US8732687B2 (en) 2009-03-17 2014-05-20 Nec Corporation Arrangement method of programs to memory space, apparatus, and recording medium
JP2013003934A (ja) * 2011-06-20 2013-01-07 Hitachi Ltd メモリ管理方法、計算機及びメモリ管理プログラム

Similar Documents

Publication Publication Date Title
KR100877138B1 (ko) 데이터 처리장치, 데이터 처리 프로그램, 및 데이터 처리프로그램을 기록한 기록매체
US7606974B2 (en) Automatic caching generation in network applications
CN102841865B (zh) 高性能缓存系统和方法
HU214423B (hu) Előfeldolgozó processzor gyorsító memóriához
CN102663115B (zh) 基于页面染色技术的内存数据库访问优化方法
JPH08328870A (ja) コンパイル処理装置
EP1046988A2 (en) Method and apparatus for allocating stack slots
CN114327917A (zh) 内存管理方法、计算设备及可读存储介质
CN101539867B (zh) 动态二进制翻译系统中可重定向的寄存器分配方法
JP2001216140A (ja) 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体
Zhuang et al. Storage assignment optimizations through variable coalescence for embedded processors
US20170337197A1 (en) Rule management system and method
JP3698949B2 (ja) 命令キャッシュへの関数割付最適化装置、関数割付最適化方法及び関数割付最適化手順を記録した記録媒体
CN113138841A (zh) 一种资源调度方法以及资源调度系统
JP4254954B2 (ja) データ処理装置
JP2000353097A (ja) 低密回の干渉グラフを生成する方法および装置
JP4600700B2 (ja) プログラムのメモリ空間への配置方法、装置、およびプログラム
US20050066321A1 (en) Parallel processor language, method for translating C++ programs into this language, and method for optimizing execution time of parallel processor programs
JPH02162439A (ja) 共有メモリのフリーリスト管理方式
JPS60168251A (ja) アドレス変換制御装置
US20200409746A1 (en) Information processing apparatus and recording medium
JP3855077B2 (ja) データ処理装置、データ処理プログラム、およびデータ処理プログラムを記録した記録媒体
JP2729795B2 (ja) 並列計算機及びその制御方法
JPH08212081A (ja) メモリ割り付け方法、並びにコンパイル方法およびコンパイラ
JPH05265770A (ja) 計算機言語処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040803