JP2005122481A - コンパイラ装置およびリンカ装置 - Google Patents
コンパイラ装置およびリンカ装置 Download PDFInfo
- Publication number
- JP2005122481A JP2005122481A JP2003356921A JP2003356921A JP2005122481A JP 2005122481 A JP2005122481 A JP 2005122481A JP 2003356921 A JP2003356921 A JP 2003356921A JP 2003356921 A JP2003356921 A JP 2003356921A JP 2005122481 A JP2005122481 A JP 2005122481A
- Authority
- JP
- Japan
- Prior art keywords
- objects
- grouping
- set number
- cache memory
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 39
- 238000010586 diagram Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000007405 data analysis Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004083 survival effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing 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)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】 ソースプログラムに含まれる変数のうち、時間的に近いタイミングでアクセスされる変数のグループが3つあったとする(変数グループA〜C)。コンパイラ装置では、これら3つの変数グループがキャッシュメモリ3に書込みされる際には、異なるセット番号のブロックに書き込まれるような命令を生成する。例えば、変数グループA、BおよびCをキャッシュメモリ3のセット0、1および15のブロックにそれぞれ配置するものとすると、変数グループA、BおよびCは、キャッシュメモリ3に書き込まれた場合にセット0、1および15のブロックに書き込まれるようなメインメモリ2の記憶領域に記憶される。
【選択図】 図4
Description
生存区間の重なり合いを有するオブジェクトはそれぞれ異なるセット番号のブロックに配置される。このため、同時期にアクセスされるオブジェクト同士で、同一のセット番号のブロックを奪い合い、互いにオブジェクトを追い出しあう競合状態が生じない。このため、キャッシュミスが起こりにくくなり、キャッシュメモリのヒット率を向上させることができる。
生存区間の重なり合いを有するオブジェクトはそれぞれ異なるセット番号のブロックに配置される。このため、同時期にアクセスされるオブジェクト同士で、同一のセット番号のブロックを奪い合い、互いにオブジェクトを追い出しあう競合状態が生じない。このため、キャッシュミスが起こりにくくなり、キャッシュメモリのヒット率を向上させることができる。
また、高速に処理を実行させることができる。
(ハードウェア構成)
図1は、本発明の実施の形態1に係るコンパイラシステムがターゲットとするコンピュータのハードウェア構成の一部を示すブロック図である。コンピュータ10は、プロセッサ1と、メインメモリ2と、キャッシュメモリ3とを備えている。プロセッサ1およびメインメモリ2の構成は、通常のプロセッサ1およびメインメモリ2と同様であるため、その詳細な説明はここでは繰返さない。
比較器32は、アドレスレジスタ20中のタグアドレスと、セットインデックス(SI)により選択されたセットに含まれるタグとが一致するか否かを比較する。
アンド回路33は、バリッドフラグ(V)と比較器32の比較結果とが一致するか否かを比較する。比較結果が1である場合は、アドレスレジスタ20中のタグアドレスおよびセットインデックス(SI)に対応するラインデータが存在することを意味する。比較結果が0である場合は、ミスヒットしたことを意味する。
制御部38は、キャッシュメモリ3の全体の制御を行う。
図4は、本実施の形態に係るコンパイラシステムによるソースプログラム中のデータの配置方法の概略を説明するための図である。図4(a)に示すように、ソースプログラムに含まれる変数のうち、時間的に近いタイミングでアクセスされる変数(オブジェクト)のグループが3つあったとする(変数グループA〜C)。ここで、1つの変数グループに含まれるデータサイズは、キャッシュメモリ3のラインデータのサイズ、すなわち128バイトであるものとする。コンパイラシステムでは、これら3つの変数グループがキャッシュメモリ3に書込みされる際には、異なるセット番号のブロックに書き込まれるような機械語命令を生成する。例えば、変数グループA、BおよびCをキャッシュメモリ3のセット0、1および15のブロックにそれぞれ配置するものとすると、図4(b)に示されるように、変数グループA、BおよびCは、キャッシュメモリ3に書き込まれた場合にセット0、1および15のブロックに書き込まれるようなメインメモリ2の記憶領域に記憶される。このため、図4(c)に示されるように、変数グループA、BおよびCは、メインメモリ2からキャッシュメモリ3に書き込まれる際には、セット0、1および15のブロックにそれぞれ書き込まれることとなる。
図5は、本実施の形態に係るコンパイラシステムの構成を示す機能ブロック図である。コンパイラシステム40は、ソースプログラム44を、図1に示したコンピュータ10で実行される機械語で記述された実行プログラム58に変換するシステムであり、コンパイラ部46と、アセンブラ部50と、リンカ部54と、シミュレータ部60と、プロファイラ部64とを備えている。各装置は、コンピュータ10のプロセッサ1上で動作するプログラムとして実現可能である。ただし、コンパイラシステム40は、コンピュータ10をターゲットとし、それ以外のコンピュータで実行されるクロスコンパイラシステムであってもよい。
リンカ部54は、1つ以上のオブジェクトファイル52(図中では1つのオブジェクトファイル52のみを記述)を結合して実行形式の実行プログラム58を作成する。なお、リンカ部54にはアドレス設定部56が設けられており、時間的に近いタイミングでアクセスされるオブジェクト群(データ群または命令群)がキャッシュメモリ3の異なるセット番号のブロックに配置されるように、オブジェクト群が記憶されるメインメモリ2のアドレスが決定される。
プロファイラ部64は、実行ログ62を解析することにより、変数のアクセス頻度や、変数の生存区間など最適な実行プログラム58を得るためのヒントとなるプロファイルデータ66を作成する。
図6は、コンパイラ部46の構成を示す機能ブロック図である。本実施の形態に係るコンパイラ部46は、キャッシュパラメータ42およびソースプログラム44に基づいて、ソースプログラム44をアセンブラファイル48に変換する処理部であり、パーサー部72と、アセンブラコード変換部76とを備えている。
なお、「プラグマ(又は、プラグマ指令)」とは、ソースプログラム44中にユーザが任意に指定(配置)することができるコンパイラ部46への指示であり、「#pragma」で始まる文字列である。
(1)#pragma _overlap_access_object a,b,c
(2)#pragma _cache_set_number=n a
ただし、nはセット番号(0〜15)
(3)#pragma _cache_set_monopoly a,b
プラグマ解析部74は、ソースプログラム44に記述されたプラグマの種類を解析する(S1)。プラグマが上述の(1)番目のプラグマの場合には(S1で_overlap_access_object)、「#pragma _overlap_access_object」の次に指定されたオブジェクト群をキャッシュメモリ3の1セットのラインデータのサイズ(すなわち128バイト)以下となるように、グループ分けを行なう(S2)。以下にグループ分け処理(S2)をより具体的に説明する。
その後、配置セット情報設定部78は、グループ番号設定処理(S3)で設定されたセット番号のキャッシュメモリ3のブロックにそのグループのオブジェクトが配置されるようなアセンブラコードを作成する(S4)。
図13は、図5に示したリンカ部54のアドレス設定部56が実行する処理のフローチャートである。図14は、当該処理を説明するための図である。以下、図13および図14を参照しながら、リンカ部54のアドレス設定部56が実行する処理について説明する。
本発明の実施の形態2に係るコンパイラシステムがターゲットするコンピュータのハードウェア構成の一部は、図1〜図3に示したものと同様である。また、本実施の形態に係るコンパイラシステムの構成は、図5に示したものと同様である。このため、それらの詳細な説明はここでは繰返さない。
プロファイルデータ解析部84は、プロファイルデータ66に記述されたプロファイル情報の種類を解析する(S21)。プロファイルデータ66に記述された情報がオブジェクトのアクセス頻度に関する情報である場合には(S21でアクセス頻度情報)、配置セット情報設定部88は、所定のしきい値以上のアクセス頻度を有するオブジェクトをそれぞれ独立したグループとする(S22)。また、配置セット情報設定部88は、当該しきい値未満のアクセス頻度を有するオブジェクトを1つのグループとする(S23)。次に、配置セット情報設定部88は、グループ分け処理(S22およびS23)で求められたグループに対して、キャッシュメモリ3のそれぞれ異なるセット番号を設定する(S24)。その後、配置セット情報設定部88は、セット番号設定処理(S24)で設定されたセット番号のキャッシュメモリ3のブロックにそのグループのオブジェクトが配置されるようなメインメモリ2の領域に、当該オブジェクトを格納するアセンブラコードを作成する(S25)。
本発明の実施の形態3に係るコンパイラシステムがターゲットするコンピュータのハードウェア構成の一部は、図1〜図3に示したものと同様である。また、本実施の形態に係るコンパイラシステムの構成は、図5に示したものと同様である。このため、それらの詳細な説明はここでは繰返さない。
パーサー部92は、コンパイルの対象となるソースプログラム44に対して、予約語(キーワード)等を抽出して字句解析する前置処理部であり、通常のコンパイラが備える解析機能に加えて、オブジェクト(変数等)の生存区間の重なりを解析する生存区間重なり解析部94を有する。アセンブラコード変換部86の構成は、実施の形態2と同様であるため、その詳細な説明はここでは繰返さない。
例えば、キャッシュメモリとして、nウェイセットアソシアティブ方式のキャッシュメモリを用いてもよい。
2 メインメモリ
3 キャッシュメモリ
10 コンピュータ
20 アドレスレジスタ
31 メモリ部
40 コンパイラシステム
42 キャッシュパラメータ
44 ソースプログラム
46 コンパイラ部
48 アセンブラファイル
50 アセンブラ部
52 オブジェクトファイル
54 リンカ部
56 アドレス設定部
58 実行プログラム
66 プロファイルデータ
72、82、92 パーサー部
74 プラグマ解析部
76、86 アセンブラコード変換部
78、88 配置セット情報設定部
84 プロファイルデータ解析部
94 生存区間重なり解析部
Claims (23)
- キャッシュメモリを備えるコンピュータをターゲットとし、ソースプログラムをオブジェクトプログラムに変換するコンパイラ装置であって、
ソースプログラムに含まれるオブジェクトをグループ分けするためのグループ分け情報を解析し、当該オブジェクトをグループ分けするグループ分け手段と、
前記グループ分け手段によるグループ分け結果に基づいて、異なるグループに属するオブジェクト同士が前記キャッシュメモリの同じセット番号のブロックに配置されないようなオブジェクトプログラムを作成するオブジェクトプログラム作成手段とを備える
ことを特徴とするコンパイラ装置。 - 前記グループ分け手段は、前記ソースプログラムに含まれるコンパイラ装置に対する指示を解析し、前記ソースプログラムに含まれるオブジェクトをグループ分けする
ことを特徴とする請求項1に記載のコンパイラ装置。 - 前記指示は、指定されたオブジェクト群を前記キャッシュメモリのラインサイズごとにグループ分けするプラグマ指令であり、
前記グループ分け手段は、前記ソースプログラムに含まれる前記プラグマ指令に基づいて、当該プラグマ指令で指定された前記オブジェクト群を前記キャッシュメモリのラインサイズごとにグループ分けする
ことを特徴とする請求項2に記載のコンパイラ装置。 - 前記指示は、指定されたオブジェクトを前記キャッシュメモリの指定されたセット番号のブロックに配置させるプラグマ指令であり、
前記グループ分け手段は、前記ソースプログラムに含まれる前記プラグマ指令に基づいて、指定された前記セット番号ごとに前記オブジェクトをグループ分けし、
前記オブジェクトプログラム作成手段は、前記グループに属するオブジェクトが前記キャッシュメモリの前記プラグマ指令で指定された前記セット番号のブロックに配置されるようなオブジェクトプログラムを作成する
ことを特徴とする請求項2に記載のコンパイラ装置。 - 前記指示は、指定されたオブジェクトを独立したセット番号のブロックに配置させ、かつ、当該ブロックを独占的に使用させるプラグマ指令であり、
前記グループ分け手段は、
前記ソースプログラムに含まれる前記プラグマ指令に基づいて、当該プラグマ指令で指定された前記オブジェクトを当該オブジェクトごとにグループ分けするグループ分け処理部と、
グループ分けされたグループごとに異なるセット番号を設定するセット番号設定部とを有し、
前記オブジェクトプログラム作成手段は、各グループに含まれるオブジェクトを前記キャッシュメモリの前記グループに対応するセット番号のブロックに配置し、かつ当該オブジェクトに当該ブロックを独占使用させるオブジェクトプログラムを作成する
ことを特徴とする請求項2に記載のコンパイラ装置。 - 前記グループ分け手段は、前記ソースプログラムから生成される機械語命令列を実行した際に生成されるプロファイル情報を解析し、前記ソースプログラムに含まれるオブジェクトをグループ分けする
ことを特徴とする請求項1に記載のコンパイラ装置。 - 前記プロファイル情報には、前記オブジェクトのアクセス頻度に関する情報が含まれ、
前記グループ分け手段は、前記アクセス頻度が所定のしきい値以上のオブジェクトをそれぞれ独立したグループに分ける
ことを特徴とする請求項6に記載のコンパイラ装置。 - 前記プロファイル情報には、前記オブジェクトの生存区間に関する情報が含まれ、
前記グループ分け手段は、生存区間が重なり合うオブジェクトを異なるグループにグループ分けする
ことを特徴とする請求項6に記載のコンパイラ装置。 - 前記グループ分け手段は、前記ソースプログラムに基づいて、前記ソースプログラムに含まれるオブジェクトの生存区間の重なりを解析し、生存区間が重なり合うオブジェクトを異なるグループにグループ分けする
ことを特徴とする請求項1に記載のコンパイラ装置。 - 請求項1〜9のいずれか1項に記載のコンパイラ装置を用いて生成された1つ以上のオブジェクトプログラムを結合し、実行形式の実行プログラムを作成するリンカ装置であって、
前記キャッシュメモリに配置される際のブロックのセット番号が確定しているオブジェクトに対しては、当該セット番号のブロックに前記オブジェクトが配置されるような前記コンピュータのメインメモリのアドレスを設定する第1のアドレス設定手段と、
前記キャッシュメモリに配置される際のブロックのセット番号が確定していないオブジェクトに対しては、前記セット番号が確定しているオブジェクトの当該セット番号以外のセット番号のブロックに、前記セット番号が確定していないオブジェクトが配置されるような前記メインメモリのアドレスを設定する第2のアドレス設定手段とを備える
ことを特徴とするリンカ装置。 - キャッシュメモリを備えるコンピュータをターゲットとし、ソースプログラムをオブジェクトプログラムに変換するコンパイル方法であって、
ソースプログラムに含まれるオブジェクトをグループ分けするためのグループ分け情報を解析し、当該オブジェクトをグループ分けするグループ分けステップと、
前記グループ分けステップによるグループ分け結果に基づいて、異なるグループに属するオブジェクト同士が前記キャッシュメモリの同じセット番号のブロックに配置されないようなオブジェクトプログラムを作成するオブジェクトプログラム作成ステップとを含む
ことを特徴とするコンパイル方法。 - 前記グループ分けステップでは、前記ソースプログラムに含まれるコンパイル方法に対する指示を解析し、前記ソースプログラムに含まれるオブジェクトをグループ分けする
ことを特徴とする請求項11に記載のコンパイル方法。 - 前記指示は、指定されたオブジェクト群を前記キャッシュメモリのラインサイズごとにグループ分けするプラグマ指令であり、
前記グループ分けステップでは、前記ソースプログラムに含まれる前記プラグマ指令に基づいて、当該プラグマ指令で指定された前記オブジェクト群を前記キャッシュメモリのラインサイズごとにグループ分けする
ことを特徴とする請求項12に記載のコンパイル方法。 - 前記指示は、指定されたオブジェクトを前記キャッシュメモリの指定されたセット番号のブロックに配置させるプラグマ指令であり、
前記グループ分けステップでは、前記ソースプログラムに含まれる前記プラグマ指令に基づいて、指定された前記セット番号ごとに前記オブジェクトをグループ分けし、
前記オブジェクトプログラム作成ステップでは、前記グループに属するオブジェクトが前記キャッシュメモリの前記プラグマ指令で指定された前記セット番号のブロックに配置されるようなオブジェクトプログラムを作成する
ことを特徴とする請求項12に記載のコンパイル方法。 - 前記指示は、指定されたオブジェクトを独立したセット番号のブロックに配置させ、かつ、当該ブロックを独占的に使用させるプラグマ指令であり、
前記グループ分けステップは、
前記ソースプログラムに含まれる前記プラグマ指令に基づいて、当該プラグマ指令で指定された前記オブジェクトを当該オブジェクトごとにグループ分けするグループ分け処理サブステップと、
グループ分けされたグループごとに異なるセット番号を設定するセット番号設定サブステップとを含み、
前記オブジェクトプログラム作成ステップでは、各グループに含まれるオブジェクトを前記キャッシュメモリの前記グループに対応するセット番号のブロックに配置し、かつ当該オブジェクトに当該ブロックを独占使用させるオブジェクトプログラムを作成する
ことを特徴とする請求項12に記載のコンパイル方法。 - 前記グループ分けステップでは、前記ソースプログラムから生成される機械語命令列を実行した際に生成されるプロファイル情報を解析し、前記ソースプログラムに含まれるオブジェクトをグループ分けする
ことを特徴とする請求項11に記載のコンパイル方法。 - 前記プロファイル情報には、前記オブジェクトのアクセス頻度に関する情報が含まれ、
前記グループ分けステップでは、前記アクセス頻度が所定のしきい値以上のオブジェクトをそれぞれ独立したグループに分ける
ことを特徴とする請求項16に記載のコンパイル方法。 - 前記プロファイル情報には、前記オブジェクトの生存区間に関する情報が含まれ、
前記グループ分けステップでは、生存区間が重なり合うオブジェクトを異なるグループにグループ分けする
ことを特徴とする請求項16に記載のコンパイル方法。 - 前記グループ分けステップでは、前記ソースプログラムに基づいて、前記ソースプログラムに含まれるオブジェクトの生存区間の重なりを解析し、生存区間が重なり合うオブジェクトを異なるグループにグループ分けする
ことを特徴とする請求項11に記載のコンパイル方法。 - 請求項11〜19のいずれか1項に記載のコンパイル方法を用いて生成された1つ以上のオブジェクトプログラムを結合し、実行形式の実行プログラムを作成するリンク方法であって、
前記キャッシュメモリに配置される際のブロックのセット番号が確定しているオブジェクトに対しては、当該セット番号のブロックに前記オブジェクトが配置されるような前記コンピュータのメインメモリのアドレスを設定する第1のアドレス設定ステップと、
前記キャッシュメモリに配置される際のブロックのセット番号が確定していないオブジェクトに対しては、前記セット番号が確定しているオブジェクトの当該セット番号以外のセット番号のブロックに、前記セット番号が確定していないオブジェクトが配置されるような前記メインメモリのアドレスを設定する第2のアドレス設定ステップとを含む
ことを特徴とするリンク方法。 - コンピュータに請求項11〜19のいずれか1項に記載のコンパイル方法に含まれるステップを実行させる
ことを特徴とするプログラム。 - コンピュータに請求項20に記載のリンク方法に含まれるステップを実行させる
ことを特徴とするプログラム。 - 請求項21または22に記載のプログラムを記録した
ことを特徴とするコンピュータ読取可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003356921A JP4047788B2 (ja) | 2003-10-16 | 2003-10-16 | コンパイラ装置およびリンカ装置 |
US10/950,397 US7689976B2 (en) | 2003-10-16 | 2004-09-28 | Compiler apparatus and linker apparatus |
CNB2004100852667A CN100365578C (zh) | 2003-10-16 | 2004-10-18 | 编译装置及连接装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003356921A JP4047788B2 (ja) | 2003-10-16 | 2003-10-16 | コンパイラ装置およびリンカ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005122481A true JP2005122481A (ja) | 2005-05-12 |
JP4047788B2 JP4047788B2 (ja) | 2008-02-13 |
Family
ID=34509811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003356921A Expired - Lifetime JP4047788B2 (ja) | 2003-10-16 | 2003-10-16 | コンパイラ装置およびリンカ装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7689976B2 (ja) |
JP (1) | JP4047788B2 (ja) |
CN (1) | CN100365578C (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048286A (ja) * | 2005-08-05 | 2007-02-22 | Fujitsu Ltd | キャッシュにおける電力消費削減方法、論理装置及びシステム |
JP2007048285A (ja) * | 2005-08-05 | 2007-02-22 | Fujitsu Ltd | キャッシュにおける電力消費削減方法、論理装置及びシステム |
WO2010010678A1 (ja) * | 2008-07-22 | 2010-01-28 | パナソニック株式会社 | プログラム最適化方法 |
JP2011170439A (ja) * | 2010-02-16 | 2011-09-01 | Nec Corp | コンパイラ、コンパイル方法、及びコンパイル実行プログラム |
JP2012208615A (ja) * | 2011-03-29 | 2012-10-25 | Mitsubishi Electric Corp | 命令実行分析装置及び命令実行分析方法及びプログラム |
JP2013101563A (ja) * | 2011-11-09 | 2013-05-23 | Toshiba Corp | プログラム変換装置、プログラム変換方法、および変換プログラム |
JP2014002557A (ja) * | 2012-06-18 | 2014-01-09 | Fujitsu Ltd | 試験データ生成方法、試験方法、試験データ生成装置、および試験データ生成プログラム |
JP2015075776A (ja) * | 2013-10-04 | 2015-04-20 | 富士通株式会社 | データ管理プログラム、データ管理装置およびデータ管理方法 |
US9280475B2 (en) | 2013-05-28 | 2016-03-08 | Fujitsu Limited | Variable updating device and variable updating method |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616470B2 (en) * | 2006-06-16 | 2009-11-10 | International Business Machines Corporation | Method for achieving very high bandwidth between the levels of a cache hierarchy in 3-dimensional structures, and a 3-dimensional structure resulting therefrom |
US20120089774A1 (en) | 2010-10-12 | 2012-04-12 | International Business Machines Corporation | Method and system for mitigating adjacent track erasure in hard disk drives |
US8572315B2 (en) | 2010-11-05 | 2013-10-29 | International Business Machines Corporation | Smart optimization of tracks for cloud computing |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3417984B2 (ja) * | 1993-09-10 | 2003-06-16 | 株式会社日立製作所 | キャッシュ競合削減コンパイル方法 |
JPH07129410A (ja) | 1993-11-05 | 1995-05-19 | Fujitsu Ltd | コンパイラにおけるメモリ割り付け方法 |
US5649137A (en) * | 1994-10-20 | 1997-07-15 | Advanced Micro Devices, Inc. | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
JPH08212081A (ja) * | 1995-02-08 | 1996-08-20 | Hitachi Ltd | メモリ割り付け方法、並びにコンパイル方法およびコンパイラ |
US6301652B1 (en) * | 1996-01-31 | 2001-10-09 | International Business Machines Corporation | Instruction cache alignment mechanism for branch targets based on predicted execution frequencies |
US5848275A (en) | 1996-07-29 | 1998-12-08 | Silicon Graphics, Inc. | Compiler having automatic common blocks of memory splitting |
JP3178403B2 (ja) | 1998-02-16 | 2001-06-18 | 日本電気株式会社 | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
US6530075B1 (en) * | 1998-12-03 | 2003-03-04 | International Business Machines Corporation | JIT/compiler Java language extensions to enable field performance and serviceability |
US6438655B1 (en) * | 1999-04-20 | 2002-08-20 | Lucent Technologies Inc. | Method and memory cache for cache locking on bank-by-bank basis |
US6549959B1 (en) * | 1999-08-30 | 2003-04-15 | Ati International Srl | Detecting modification to computer memory by a DMA device |
US6574682B1 (en) * | 1999-11-23 | 2003-06-03 | Zilog, Inc. | Data flow enhancement for processor architectures with cache |
JP2001273138A (ja) * | 2000-03-24 | 2001-10-05 | Fujitsu Ltd | プログラム変換装置および方法 |
US6708330B1 (en) * | 2000-06-13 | 2004-03-16 | Cisco Technology, Inc. | Performance improvement of critical code execution |
US7107583B2 (en) * | 2001-02-16 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Method and apparatus for reducing cache thrashing |
US6704833B2 (en) * | 2002-01-04 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Atomic transfer of a block of data |
-
2003
- 2003-10-16 JP JP2003356921A patent/JP4047788B2/ja not_active Expired - Lifetime
-
2004
- 2004-09-28 US US10/950,397 patent/US7689976B2/en active Active
- 2004-10-18 CN CNB2004100852667A patent/CN100365578C/zh active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048286A (ja) * | 2005-08-05 | 2007-02-22 | Fujitsu Ltd | キャッシュにおける電力消費削減方法、論理装置及びシステム |
JP2007048285A (ja) * | 2005-08-05 | 2007-02-22 | Fujitsu Ltd | キャッシュにおける電力消費削減方法、論理装置及びシステム |
WO2010010678A1 (ja) * | 2008-07-22 | 2010-01-28 | パナソニック株式会社 | プログラム最適化方法 |
JP2010026851A (ja) * | 2008-07-22 | 2010-02-04 | Panasonic Corp | コンパイラによる最適化方法 |
JP2011170439A (ja) * | 2010-02-16 | 2011-09-01 | Nec Corp | コンパイラ、コンパイル方法、及びコンパイル実行プログラム |
JP2012208615A (ja) * | 2011-03-29 | 2012-10-25 | Mitsubishi Electric Corp | 命令実行分析装置及び命令実行分析方法及びプログラム |
JP2013101563A (ja) * | 2011-11-09 | 2013-05-23 | Toshiba Corp | プログラム変換装置、プログラム変換方法、および変換プログラム |
JP2014002557A (ja) * | 2012-06-18 | 2014-01-09 | Fujitsu Ltd | 試験データ生成方法、試験方法、試験データ生成装置、および試験データ生成プログラム |
US9280475B2 (en) | 2013-05-28 | 2016-03-08 | Fujitsu Limited | Variable updating device and variable updating method |
JP2015075776A (ja) * | 2013-10-04 | 2015-04-20 | 富士通株式会社 | データ管理プログラム、データ管理装置およびデータ管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1609804A (zh) | 2005-04-27 |
CN100365578C (zh) | 2008-01-30 |
US7689976B2 (en) | 2010-03-30 |
JP4047788B2 (ja) | 2008-02-13 |
US20050086651A1 (en) | 2005-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4934267B2 (ja) | コンパイラ装置 | |
US5805863A (en) | Memory pattern analysis tool for use in optimizing computer program code | |
Peled et al. | Semantic locality and context-based prefetching using reinforcement learning | |
US5815720A (en) | Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system | |
EP0449368B1 (en) | Method for compiling computer instructions for increasing cache efficiency | |
US8037465B2 (en) | Thread-data affinity optimization using compiler | |
US9946523B2 (en) | Multiple pass compiler instrumentation infrastructure | |
EP0838755A2 (en) | Binary program conversion apparatus and method | |
JP2006260096A (ja) | プログラム変換方法およびプログラム変換装置 | |
US20040205740A1 (en) | Method for collection of memory reference information and memory disambiguation | |
JP4047788B2 (ja) | コンパイラ装置およびリンカ装置 | |
US8886887B2 (en) | Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization | |
US20080052693A1 (en) | Method of simd-ization through data reshaping, padding, and alignment | |
US7243195B2 (en) | Software managed cache optimization system and method for multi-processing systems | |
WO2010010678A1 (ja) | プログラム最適化方法 | |
US6829760B1 (en) | Runtime symbol table for computer programs | |
US20110145503A1 (en) | On-line optimization of software instruction cache | |
CN100552650C (zh) | 用于结合使用有效范围语句和动态缓存变量的方法 | |
JP4044756B2 (ja) | プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するプログラム | |
JP5238797B2 (ja) | コンパイラ装置 | |
JP2014112327A (ja) | 変換プログラム、変換装置及び変換方法 | |
JPH10320212A (ja) | キャッシュ向け最適化方法 | |
JP3276479B2 (ja) | コンパイル方式 | |
JP3309810B2 (ja) | プログラムリンクシステム、方法及び記録媒体 | |
CN111309329B (zh) | 一种指令地址自适应重定位方法及程序编译方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070921 |
|
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: 20071030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071122 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4047788 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131130 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |