JP5428476B2 - プリフェッチ生成プログラムおよびコンパイラ装置 - Google Patents
プリフェッチ生成プログラムおよびコンパイラ装置 Download PDFInfo
- Publication number
- JP5428476B2 JP5428476B2 JP2009090519A JP2009090519A JP5428476B2 JP 5428476 B2 JP5428476 B2 JP 5428476B2 JP 2009090519 A JP2009090519 A JP 2009090519A JP 2009090519 A JP2009090519 A JP 2009090519A JP 5428476 B2 JP5428476 B2 JP 5428476B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- loop
- determined
- cache memory
- source
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
まず最初に、図1を用いて、コンパイラ装置10の構成を説明する。図1は、実施例1に係るコンパイラ装置10の構成を示すブロック図である。同図に示すように、このコンパイラ装置10は、制御部12を有する。
次に、図9〜図11を用いて、実施例1に係るコンパイラ装置10による処理の流れを説明する。図9は、実施例1に係るコンパイラ装置の処理全体の動作を示すフローチャートである。図10は、実施例1に係るコンパイラ装置の解析処理の動作を示すフローチャートである。図11は、実施例1に係るコンパイラ装置の二重生成処理の動作を示すフローチャートである。
上述してきたように、コンパイラ装置10は、ソースプログラムを解析し、アクセスするメモリ領域を所定のブロックに分割するループブロッキングのパターンにソースプログラムが該当するか判定する。そして、コンパイラ装置10は、ループブロッキングのパターンに該当すると判定された場合には、次に処理するブロックに対してプリフェッチ命令を生成する。このため、コンパイラ装置10では、キャッシュメモリ上の必要なデータの上書きを防ぎ、キャッシュメモリの利用効率を向上することが可能である。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、ソース解析部12aと最適化部12bを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図12を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図12は、プリフェッチ生成プログラムを実行するコンピュータを示す図である。
11 ソースプログラム
12 制御部
12a ソース解析部
12b 最適化部
12c コード生成部
13 オブジェクトファイル
600 コンパイラ装置
610 HDD
620 RAM
630 ROM
631 ソース解析プログラム
632 最適化プログラム
633 コード生成プログラム
640 CPU
641 ソース解析プロセス
642 最適化プロセス
643 コード生成プロセス
650 バス
Claims (4)
- ソースコードの解析結果に基づいて、アクセスするメモリ領域を所定のデータサイズのブロックに分割するループブロッキングのパターンが前記ソースコードに含まれるとともに、前記ブロックのデータサイズが静的に判断できるかを判定し、静的に判断できると判定された場合には、キャッシュメモリにプリフェッチ命令を生成するだけの余裕があるか判定し、
前記キャッシュメモリに前記プリフェッチ命令を生成するだけの余裕があると判定された場合には、前記ソースコードにおける前記ループブロッキングにおいて次に処理されるブロックに含まれるメモリ領域に対する前記プリフェッチ命令を生成し、前記キャッシュメモリに前記プリフェッチ命令を生成するだけの余裕がないと判定された場合には、プリフェッチを抑止する
ことをコンピュータに実行させることを特徴とするプリフェッチ生成プログラム。 - ソースコードの解析結果に基づいて、アクセスするメモリ領域を所定のデータサイズのブロックに分割するループブロッキングのパターンが前記ソースコードに含まれるとともに、前記ブロックのデータサイズが静的に判断できるかを判定し、
前記ブロックのデータサイズが静的に判断できないと判定された場合には、プリフェッチ生成ループおよびプリフェッチ未生成ループを生成する
ことをコンピュータに実行させることを特徴とするプリフェッチ生成プログラム。 - ソースコードの解析結果に基づいて、アクセスするメモリ領域を所定のデータサイズのブロックに分割するループブロッキングのパターンが前記ソースコードに含まれるとともに、前記ブロックのデータサイズが静的に判断できるかを判定し、静的に判断できると判定された場合には、キャッシュメモリにプリフェッチ命令を生成するだけの余裕があるか判定するソース解析部と、
前記ソース解析部によって前記キャッシュメモリに前記プリフェッチ命令を生成するだけの余裕があると判定された場合には、前記ソースコードにおける前記ループブロッキングにおいて次に処理されるブロックに含まれるメモリ領域に対する前記プリフェッチ命令を生成し、前記ソース解析部によって前記キャッシュメモリに前記プリフェッチ命令を生成するだけの余裕がないと判定された場合には、プリフェッチを抑止するプリフェッチ命令生成部と、
を備えることを特徴とするコンパイラ装置。 - ソースコードの解析結果に基づいて、アクセスするメモリ領域を所定のデータサイズのブロックに分割するループブロッキングのパターンが前記ソースコードに含まれるとともに、前記ブロックのデータサイズが静的に判断できるかを判定するソース解析部と、
前記ソース解析部によって前記ブロックのデータサイズが静的に判断できないと判定された場合には、プリフェッチ生成ループおよびプリフェッチ未生成ループを生成するプリフェッチ命令生成部と、
を備えることを特徴とするコンパイラ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009090519A JP5428476B2 (ja) | 2009-04-02 | 2009-04-02 | プリフェッチ生成プログラムおよびコンパイラ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009090519A JP5428476B2 (ja) | 2009-04-02 | 2009-04-02 | プリフェッチ生成プログラムおよびコンパイラ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010244208A JP2010244208A (ja) | 2010-10-28 |
JP5428476B2 true JP5428476B2 (ja) | 2014-02-26 |
Family
ID=43097180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009090519A Active JP5428476B2 (ja) | 2009-04-02 | 2009-04-02 | プリフェッチ生成プログラムおよびコンパイラ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5428476B2 (ja) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2677482B2 (ja) * | 1992-03-18 | 1997-11-17 | 富士通株式会社 | 計算機言語処理方法 |
JPH10283192A (ja) * | 1997-04-09 | 1998-10-23 | Hitachi Ltd | プリフェッチコード生成方式 |
JP3546341B2 (ja) * | 1997-04-17 | 2004-07-28 | 株式会社日立製作所 | 多重ループ向けデータプリフェッチ方法およびプログラム生成方法 |
JPH10320212A (ja) * | 1997-05-21 | 1998-12-04 | Hitachi Ltd | キャッシュ向け最適化方法 |
JPH11306167A (ja) * | 1998-04-15 | 1999-11-05 | Fujitsu Ltd | ベクトルレジスタ制御処理装置および記録媒体 |
JP2000155689A (ja) * | 1998-11-20 | 2000-06-06 | Hitachi Ltd | ループ展開方法及び装置 |
JP2000207224A (ja) * | 1999-01-14 | 2000-07-28 | Hitachi Ltd | ソフトウェアプリフェッチ方法 |
JP3681647B2 (ja) * | 2001-02-21 | 2005-08-10 | 株式会社半導体理工学研究センター | キャッシュメモリシステム装置 |
JP4934267B2 (ja) * | 2003-10-17 | 2012-05-16 | パナソニック株式会社 | コンパイラ装置 |
WO2005078579A1 (ja) * | 2004-02-12 | 2005-08-25 | Matsushita Electric Industrial Co., Ltd. | プログラム変換装置およびプログラム変換方法 |
-
2009
- 2009-04-02 JP JP2009090519A patent/JP5428476B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010244208A (ja) | 2010-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7350029B2 (en) | Data stream prefetching in a microprocessor | |
US7716427B2 (en) | Store stream prefetching in a microprocessor | |
JP6458682B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP5934094B2 (ja) | データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング | |
JP3739491B2 (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
KR20180124709A (ko) | 공간 메모리 스트리밍 트레이닝을 위한 장치 및 방법 | |
KR20120025612A (ko) | 컴퓨터 스레드들의 이종 리소스들로의 맵핑 | |
JP2013500539A (ja) | 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体 | |
EP2804099B1 (en) | Apparatus and method managing power based on data | |
CN107844380B (zh) | 一种支持指令预取的多核缓存wcet分析方法 | |
JP2009528612A (ja) | データ処理システム並びにデータ及び/又は命令のプリフェッチ方法 | |
JP2011013864A (ja) | 命令制御装置、命令制御方法および演算回路 | |
US20030084433A1 (en) | Profile-guided stride prefetching | |
TW201629775A (zh) | 在程式偵測時動態更新硬體預取特性為互斥或共享的裝置與方法 | |
JP2007233615A (ja) | アドレス変換装置 | |
JP2014115851A (ja) | データ処理装置及びその制御方法 | |
JP2011150691A (ja) | 演算処理装置、情報処理装置及び制御方法 | |
US10719441B1 (en) | Using predictions of outcomes of cache memory access requests for controlling whether a request generator sends memory access requests to a memory in parallel with cache memory access requests | |
JP5630281B2 (ja) | ベクトル命令制御回路及びリストベクトルの追い越し制御方法 | |
JP5428476B2 (ja) | プリフェッチ生成プログラムおよびコンパイラ装置 | |
US20030154342A1 (en) | Evaluation and optimisation of code | |
CN112395000B (zh) | 一种数据预加载方法和指令处理装置 | |
Kyriacou et al. | Cacheflow: A short-term optimal cache management policy for data driven multithreading | |
JP2000207224A (ja) | ソフトウェアプリフェッチ方法 | |
JP2008015668A (ja) | タスク管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130312 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130513 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130611 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130809 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130903 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131015 |
|
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: 20131105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5428476 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |