JP2005266941A - キャッシュカラーリング方法 - Google Patents
キャッシュカラーリング方法 Download PDFInfo
- Publication number
- JP2005266941A JP2005266941A JP2004074916A JP2004074916A JP2005266941A JP 2005266941 A JP2005266941 A JP 2005266941A JP 2004074916 A JP2004074916 A JP 2004074916A JP 2004074916 A JP2004074916 A JP 2004074916A JP 2005266941 A JP2005266941 A JP 2005266941A
- Authority
- JP
- Japan
- Prior art keywords
- function
- cache
- functions
- strength information
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】キャッシュカラーリング方法は、複数の関数からなるプログラムの実行時における複数の関数の呼出し順を時系列として表現した動的関数フローに基づいて、複数の関数のうちの任意の関数と他の全ての関数との実行時の呼出し関係についての情報を含む関数強度情報を生成し、関数強度情報に基づいて命令キャッシュ競合が少なくなるように複数の関数をメモリ空間に配置する各段階を含む。
【選択図】図1
Description
n+(i,j)=Σ(1×Ref(k)/R(k))
R(k):区間k∈Riiの全関数の参照回数
Ref(k):区間k∈Rii≠jの関数jの参照回数
を定義する。
=1.2
同様に全ての関数の組み合せについて強度関数を求めると、図7に示すようなマトリクスが得られる。図7に示すマトリクスが第2の実施例による関数強度情報11である。
n++(i,j)=Σ(1×Ref(k))
Ref(k):区間k∈Rii≠jの関数jの参照回数
を定義する。
=6
同様に全ての関数の組み合せについて強度関数を求めると、図9に示すようなマトリクスが得られる。図9に示すマトリクスが第3の実施例による関数強度情報11である。
n#(i,j)=Σ(1/Len(k))
Len(k):区間k∈Rii≠jの関数jの最初の参照までの距離(≠0)
を定義する。
=1.5
同様に全ての関数の組み合せについて強度関数を求めると、図12に示すようなマトリクスが得られる。図12に示すマトリクスが第4の実施例による関数強度情報11である。
M(Ln)= n(x,Ln_f1)+n(Ln_f1,x)
+n(x,Ln_f2)+n(Ln_f2,x)
+・・・+n(x,Ln_f)+n(Ln_f,x)
として求められる。
キャッシュミス数=X(i,l)×X(j,l)×n(i,j)
となる。ここでX(i,l)は、図33における関数i及びキャッシュラインlに対する実行頻度である。例えば関数iと関数jとが3つの同一のキャッシュラインを占有する場合には、l=0〜2について上式のキャッシュミス数の総和をとればよい。
関数強度情報=Σ(wi×Di)
を用いることができる。ここでDiは実行ルートiについての関数強度情報であり、wiは実行ルートiに対する重み係数である。
11 関数強度情報
20 重み付け情報
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
523 通信装置
Claims (10)
- 複数の関数からなるプログラムの実行時における該複数の関数の呼出し順を時系列として表現した動的関数フローに基づいて、該複数の関数のうちの任意の関数と他の全ての関数との実行時の呼出し関係についての情報を含む関数強度情報を生成し、
該関数強度情報に基づいて命令キャッシュ競合が少なくなるように該複数の関数をメモリ空間に配置する
各段階を含むことを特徴とするキャッシュカラーリング方法。 - 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)は該動的関数フローにおける関数iの参照からその後最初に参照された関数iまでの区間である全ての区間のうちで関数jを少なくとも1回参照する区間の数であり、且つi=jの場合には関数iの総参照回数であることを特徴とする請求項1記載のキャッシュカラーリング方法。
- 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)は、該動的関数フローにおける関数iの参照からその後最初に参照された関数iまでの区間である全ての区間について、各区間における関数の総参照回数に対する関数jの参照回数の比率を総和したものであることを特徴とする請求項1記載のキャッシュカラーリング方法。
- 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)は、該動的関数フローにおける関数iの参照からその後最初に参照された関数iまでの区間である全ての区間について、各区間における関数jの参照回数を総和したものであることを特徴とする請求項1記載のキャッシュカラーリング方法。
- 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)は、該動的関数フローにおける関数iの参照からその後最初に参照された関数iまでの区間である全ての区間について、各区間における先頭の関数iから最初に参照された関数jまでの距離の逆数を総和したものであることを特徴とする請求項1記載のキャッシュカラーリング方法。
- 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)はプログラム実行時における関数iと関数jとの間の命令キャッシュ競合の度合いが高いと大きくなる数値であり、該複数の関数をメモリ空間に配置する段階は、全ての関数jについてのn(i,j)の総和が大きい順に複数の関数iをメモリ空間に順次連続に配置することを特徴とする該請求項1記載のキャッシュカラーリング方法。
- 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)はプログラム実行時における関数iと関数jとの間の命令キャッシュ競合の度合いが高いと大きくなる数値であり、該複数の関数をメモリ空間に配置する段階は、n(i,j)が大きい順に関数i及び関数jの組を該メモリ空間に順次連続に配置することを特徴とする該請求項1記載のキャッシュカラーリング方法。
- 該関数強度情報はマトリクス情報n(i,j)として表現され、n(i,j)はプログラム実行時における関数iと関数jとの間の命令キャッシュ競合の度合いが高いと大きくなる数値であり、該複数の関数をメモリ空間に配置する段階は、該メモリ空間の複数のキャッシュラインの各々についてn(i,j)を参照してキャッシュ競合が少なくなるように該複数の関数を該複数のキャッシュラインに配置することを特徴とする該請求項1記載のキャッシュカラーリング方法。
- 該複数の関数をメモリ空間に配置する段階は、該複数の関数のうちの一の関数が複数のキャッシュラインを占有する大きさを有している場合に該占有される複数のキャッシュラインのそれぞれに対して異なった重みを与えて該一の関数と他の関数とのキャッシュ競合について評価することを特徴とする該請求項8記載のキャッシュカラーリング方法。
- 該プログラムの複数の異なる実行に対応して複数の異なる動的関数フローが存在し、該複数の異なる動的関数フローを重み付けして加算することで1つの動的関数フローを生成する段階を更に含み、該関数強度情報を生成する段階は該1つの動的関数フローに基づいて該関数強度情報を生成することを特徴とする請求項1記載のキャッシュカラーリング方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004074916A JP4554241B2 (ja) | 2004-03-16 | 2004-03-16 | キャッシュカラーリング方法 |
US10/921,986 US7478199B2 (en) | 2004-03-16 | 2004-08-20 | Cache coloring based on dynamic function flow |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004074916A JP4554241B2 (ja) | 2004-03-16 | 2004-03-16 | キャッシュカラーリング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005266941A true JP2005266941A (ja) | 2005-09-29 |
JP4554241B2 JP4554241B2 (ja) | 2010-09-29 |
Family
ID=34987857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004074916A Expired - Fee Related JP4554241B2 (ja) | 2004-03-16 | 2004-03-16 | キャッシュカラーリング方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7478199B2 (ja) |
JP (1) | JP4554241B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009032198A (ja) * | 2007-07-30 | 2009-02-12 | Fujitsu Microelectronics Ltd | キャッシュカラーリング方法 |
WO2010106914A1 (ja) * | 2009-03-17 | 2010-09-23 | 日本電気株式会社 | プログラムのメモリ空間への配置方法、装置、および記録媒体 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856452B2 (en) * | 2011-05-31 | 2014-10-07 | Illinois Institute Of Technology | Timing-aware data prefetching for microprocessors |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232117A (ja) * | 1998-02-16 | 1999-08-27 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2001216140A (ja) * | 2000-01-31 | 2001-08-10 | Nec Microsystems Ltd | 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 |
JP2001282547A (ja) * | 2000-03-28 | 2001-10-12 | Nec Microsystems Ltd | 命令キャッシュへの関数割付最適化装置、関数割付最適化方法及び関数割付最適化手順を記録した記録媒体 |
JP2003271394A (ja) * | 2002-03-19 | 2003-09-26 | Nec Electronics Corp | 関数と基本ブロックの配置割付装置および割付最適化プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05324281A (ja) | 1992-05-25 | 1993-12-07 | Nec Corp | アドレス割当変更方法 |
JP3417984B2 (ja) | 1993-09-10 | 2003-06-16 | 株式会社日立製作所 | キャッシュ競合削減コンパイル方法 |
JPH08328870A (ja) | 1995-05-30 | 1996-12-13 | Fujitsu Ltd | コンパイル処理装置 |
JP3309810B2 (ja) | 1998-08-13 | 2002-07-29 | 日本電気株式会社 | プログラムリンクシステム、方法及び記録媒体 |
US6947052B2 (en) * | 2001-07-13 | 2005-09-20 | Texas Instruments Incorporated | Visual program memory hierarchy optimization |
CA2363182C (en) * | 2001-11-19 | 2006-06-06 | Ibm Canada Limited-Ibm Canada Limitee | Automatic program restructuring to reduce average cache miss penalty |
-
2004
- 2004-03-16 JP JP2004074916A patent/JP4554241B2/ja not_active Expired - Fee Related
- 2004-08-20 US US10/921,986 patent/US7478199B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232117A (ja) * | 1998-02-16 | 1999-08-27 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2001216140A (ja) * | 2000-01-31 | 2001-08-10 | Nec Microsystems Ltd | 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 |
JP2001282547A (ja) * | 2000-03-28 | 2001-10-12 | Nec Microsystems Ltd | 命令キャッシュへの関数割付最適化装置、関数割付最適化方法及び関数割付最適化手順を記録した記録媒体 |
JP2003271394A (ja) * | 2002-03-19 | 2003-09-26 | Nec Electronics Corp | 関数と基本ブロックの配置割付装置および割付最適化プログラム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009032198A (ja) * | 2007-07-30 | 2009-02-12 | Fujitsu Microelectronics Ltd | キャッシュカラーリング方法 |
US8341354B2 (en) | 2007-07-30 | 2012-12-25 | Fujitsu Semiconductor Limited | Cache coloring method and apparatus based on function strength information |
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 |
Also Published As
Publication number | Publication date |
---|---|
US7478199B2 (en) | 2009-01-13 |
JP4554241B2 (ja) | 2010-09-29 |
US20050210453A1 (en) | 2005-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3544422B2 (ja) | 記事配置装置 | |
CN102859500B (zh) | 存储器使用扫描 | |
EP0838755A2 (en) | Binary program conversion apparatus and method | |
JPH11272460A (ja) | 特性依存の情報処理システムに関する修正情報を視覚的に表すためのシステム | |
JP6020448B2 (ja) | データベース性能予測装置及びデータベース予測方法 | |
JP2003256855A (ja) | グラフィックス・イメージ生成方法、これを用いたプログラム及び統計データ描画装置 | |
JP5244421B2 (ja) | 情報処理装置およびプログラム分割方法 | |
JP2009163497A (ja) | 事務フロー生成装置およびその方法 | |
JP2006309763A (ja) | メモリマップドページプライオリティ | |
JP4554241B2 (ja) | キャッシュカラーリング方法 | |
CN104380286A (zh) | 索引生成程序以及检索程序 | |
JP2596690B2 (ja) | カーソル位置と表示形像との相関付け方法及び相関付け手段を備えたコンピュータ・システム | |
JP5272346B2 (ja) | キャッシュカラーリング方法 | |
CN105487911B (zh) | 一种基于编译指导的众核数据分片方法 | |
JP4600700B2 (ja) | プログラムのメモリ空間への配置方法、装置、およびプログラム | |
KR100938903B1 (ko) | 불규칙한 배열 접근 패턴을 갖는 애플리케이션을 대한소프트웨어에 의해 제어되는 캐시 메모리의 동적 데이터할당 방법 | |
JP2007072883A (ja) | キャッシュメモリ解析方法、プロセッサおよび模擬情報処理装置 | |
JP6519228B2 (ja) | データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法 | |
CA2906324C (en) | Optimizing the placement of clustered textural annotations | |
Li et al. | Optimizing Data Layout for Training Deep Neural Networks | |
JP6442967B2 (ja) | 情報処理プログラム、情報処理装置、情報処理方法 | |
JP2005050196A (ja) | 暗号化プログラム実行方法およびその装置 | |
KR20160143600A (ko) | 중첩 오버래핑 기반의 서브 그래프 리스팅 방법 | |
JP6138384B2 (ja) | プログラム配置装置、プログラム配置方法及びプログラム配置プログラム | |
JPH08212081A (ja) | メモリ割り付け方法、並びにコンパイル方法およびコンパイラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051026 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090202 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100112 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100407 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100419 |
|
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: 20100713 |
|
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: 20100714 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130723 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |