JP2011170439A - コンパイラ、コンパイル方法、及びコンパイル実行プログラム - Google Patents
コンパイラ、コンパイル方法、及びコンパイル実行プログラム Download PDFInfo
- Publication number
- JP2011170439A JP2011170439A JP2010031450A JP2010031450A JP2011170439A JP 2011170439 A JP2011170439 A JP 2011170439A JP 2010031450 A JP2010031450 A JP 2010031450A JP 2010031450 A JP2010031450 A JP 2010031450A JP 2011170439 A JP2011170439 A JP 2011170439A
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- program
- memory
- compiler
- cache
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】コンパイラは、原始プログラムをコンパイルして目的プログラムを生成する。コンパイラは、メモリアクセス解析処理手段と、目的プログラム生成処理手段とを具備する。メモリアクセス解析処理手段は、原始プログラムの解析結果から、原始プログラムの変数及び配列のメモリアクセス状況を調査する。目的プログラム生成処理手段は、メモリアクセス状況の調査結果から、キャッシュメモリのソフトウェア制御機能を用いて動的にキャッシュメモリを制御し利用する目的プログラムを作成する。
【選択図】図1
Description
図1を参照すると、本発明におけるコンパイル方式では、原始プログラム10と、コンパイラ20と、目的プログラム30が存在する。
次に、図2を用いて、本発明のコンパイラの動作について詳細に説明する。
ここでは、コンパイラ20は、Fortranのコンパイラであるものとして説明する。但し、実際には、この例に限定されない。
まず、コンパイラ20において、中間言語作成処理部21は、原始プログラム10を読み込み、字句解析や構文解析を行い、中間言語1を作成する。
次に、最適化処理部22は、中間言語1を最適化し、中間言語2を作成する。
次に、メモリアクセス解析処理部23は、中間言語2を解析し、メモリアクセスの際におけるキャッシュメモリの利用の有無を決定する。
メモリアクセス解析処理部23は、キャッシュメモリを利用する場合、利用するキャッシュメモリセット、又はキャッシュメモリセットのグループを決定し、中間言語3を作成する。
目的プログラム生成処理部24は、中間言語3を読み込み、キャッシュ制御コード生成処理部25に通知する。このとき、目的プログラム生成処理部24は、キャッシュ制御コード生成処理部25を起動するようにしても良い。
キャッシュ制御コード生成処理部25は、中間言語3を読み込み、キャッシュを制御するコードや、キャッシュ制御を指定したメモリアクセス命令を作成し、目的プログラム30に組み込む。
(7)ステップS107
最後に、目的プログラム生成処理部24は、目的プログラム30が完成すると、目的プログラム30をコンパイラ20の外部に出力する。
次に、図3を参照して、本発明の実施例について説明する。
図3は、Fortranの原始プログラム例を示す。図3の原始プログラム例は、原始プログラム10に該当する。
計算機100は、CPU(Central Processing Unit)110と、主メモリ装置120を備える。CPU110は、キャッシュメモリ111を備える。キャッシュメモリ111は、第1キャッシュメモリセット1111と、第2キャッシュメモリセット1112に分割されている。
以上のように、本発明におけるコンパイラのコンパイル方式では、キャッシュメモリのソフトウェア制御機能を利用した目的プログラムを生成する。
10… 原始プログラム
20… コンパイラ
21… 中間言語作成処理部
22… 最適化処理部
23… メモリアクセス解析処理部
24… 目的プログラム生成処理部
25… キャッシュ制御コード生成処理部
30… 目的プログラム
100… 計算機
110… CPU
111… キャッシュメモリ
1111… 第1キャッシュメモリセット
1112… 第2キャッシュメモリセット
120… 主メモリ装置
Claims (9)
- 原始プログラムをコンパイルして目的プログラムを生成するコンパイラであって、
原始プログラムの解析結果から、前記原始プログラムの変数及び配列のメモリアクセス状況を調査するメモリアクセス解析処理手段と、
メモリアクセス状況の調査結果から、キャッシュメモリのソフトウェア制御機能を用いて動的にキャッシュメモリを制御し利用する目的プログラムを作成する目的プログラム生成処理手段と
を具備する
コンパイラ。 - 請求項1に記載のコンパイラであって、
前記メモリアクセス解析処理手段は、
前記原始プログラムの変数及び配列のメモリアクセス時に、キャッシュメモリを利用してメモリアクセスするか否か判定する手段と、
キャッシュメモリを利用してメモリアクセスする場合、複数のキャッシュメモリセットの候補の中から、利用するキャッシュメモリセットを決定する手段と
を具備する
コンパイラ。 - 請求項2に記載のコンパイラであって、
目的プログラム生成処理手段は、
前記決定されたキャッシュメモリセットに対して、キャッシュメモリの制御コードを作成し、前記目的プログラムに組み込む手段
を具備する
コンパイラ。 - 原始プログラムをコンパイルして目的プログラムを生成するコンパイラにより実施されるコンパイル方法であって、
原始プログラムの解析結果から、前記原始プログラムの変数及び配列のメモリアクセス状況を調査することと、
メモリアクセス状況の調査結果から、キャッシュメモリのソフトウェア制御機能を用いて動的にキャッシュメモリを制御し利用する目的プログラムを作成することと
を含む
コンパイル方法。 - 請求項4に記載のコンパイル方法であって、
前記原始プログラムの変数及び配列のメモリアクセス時に、キャッシュメモリを利用してメモリアクセスするか否か判定することと、
キャッシュメモリを利用してメモリアクセスする場合、複数のキャッシュメモリセットの候補の中から、利用するキャッシュメモリセットを決定することと
を更に含む
コンパイル方法。 - 請求項5に記載のコンパイル方法であって、
前記決定されたキャッシュメモリセットに対して、キャッシュメモリの制御コードを作成し、前記目的プログラムに組み込むこと
を更に含む
コンパイル方法。 - 原始プログラムをコンパイルして目的プログラムを生成する際に、原始プログラムの解析結果から、前記原始プログラムの変数及び配列のメモリアクセス状況を調査するステップと、
メモリアクセス状況の調査結果から、キャッシュメモリのソフトウェア制御機能を用いて動的にキャッシュメモリを制御し利用する目的プログラムを作成するステップと
を計算機に実行させるための
コンパイル実行プログラム。 - 請求項7に記載のコンパイル実行プログラムであって、
前記原始プログラムの変数及び配列のメモリアクセス時に、キャッシュメモリを利用してメモリアクセスするか否か判定するステップと、
キャッシュメモリを利用してメモリアクセスする場合、複数のキャッシュメモリセットの候補の中から、利用するキャッシュメモリセットを決定するステップと
を更に計算機に実行させるための
コンパイル実行プログラム。 - 請求項8に記載のコンパイル実行プログラムであって、
前記決定されたキャッシュメモリセットに対して、キャッシュメモリの制御コードを作成し、前記目的プログラムに組み込むステップ
を更に計算機に実行させるための
コンパイル実行プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010031450A JP2011170439A (ja) | 2010-02-16 | 2010-02-16 | コンパイラ、コンパイル方法、及びコンパイル実行プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010031450A JP2011170439A (ja) | 2010-02-16 | 2010-02-16 | コンパイラ、コンパイル方法、及びコンパイル実行プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011170439A true JP2011170439A (ja) | 2011-09-01 |
Family
ID=44684533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010031450A Pending JP2011170439A (ja) | 2010-02-16 | 2010-02-16 | コンパイラ、コンパイル方法、及びコンパイル実行プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011170439A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080030B2 (en) | 2019-07-19 | 2021-08-03 | Fujitsu Limited | Information processing apparatus and information processing method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002007213A (ja) * | 2000-06-26 | 2002-01-11 | Matsushita Electric Ind Co Ltd | キャッシュメモリ制御方法及びプログラム処理方法 |
JP2005122481A (ja) * | 2003-10-16 | 2005-05-12 | Matsushita Electric Ind Co Ltd | コンパイラ装置およびリンカ装置 |
JP2005122506A (ja) * | 2003-10-17 | 2005-05-12 | Matsushita Electric Ind Co Ltd | コンパイラ装置 |
JP2008102733A (ja) * | 2006-10-19 | 2008-05-01 | Hitachi Ltd | コード生成方法およびコンパイラ |
-
2010
- 2010-02-16 JP JP2010031450A patent/JP2011170439A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002007213A (ja) * | 2000-06-26 | 2002-01-11 | Matsushita Electric Ind Co Ltd | キャッシュメモリ制御方法及びプログラム処理方法 |
JP2005122481A (ja) * | 2003-10-16 | 2005-05-12 | Matsushita Electric Ind Co Ltd | コンパイラ装置およびリンカ装置 |
JP2005122506A (ja) * | 2003-10-17 | 2005-05-12 | Matsushita Electric Ind Co Ltd | コンパイラ装置 |
JP2008102733A (ja) * | 2006-10-19 | 2008-05-01 | Hitachi Ltd | コード生成方法およびコンパイラ |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080030B2 (en) | 2019-07-19 | 2021-08-03 | Fujitsu Limited | Information processing apparatus and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hildebrand et al. | Autotm: Automatic tensor movement in heterogeneous memory systems using integer linear programming | |
JP4934267B2 (ja) | コンパイラ装置 | |
US9798528B2 (en) | Software solution for cooperative memory-side and processor-side data prefetching | |
JP5030796B2 (ja) | データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法 | |
US9235433B2 (en) | Speculative object representation | |
JP2006260096A (ja) | プログラム変換方法およびプログラム変換装置 | |
JP2020135499A (ja) | データ処理装置、ストレージ装置およびプリフェッチ方法 | |
US9501408B2 (en) | Efficient validation of coherency between processor cores and accelerators in computer systems | |
KR102590679B1 (ko) | 벡터 요소들 내부의 비트 값들의 시험 | |
EP2923266A1 (en) | Software and hardware coordinated prefetch | |
US8266605B2 (en) | Method and system for optimizing performance based on cache analysis | |
US20100115502A1 (en) | Post Processing of Dynamically Generated Code | |
Li et al. | Compiler assisted hybrid implicit and explicit GPU memory management under unified address space | |
JP2020525905A (ja) | アドレス変換データの無効化 | |
Xu et al. | Machine learning guided optimal use of GPU unified memory | |
JP2009020696A (ja) | 情報処理装置及びシステム | |
JP2009271606A (ja) | 情報処理装置およびコンパイル方法 | |
JP2008003882A (ja) | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2011170439A (ja) | コンパイラ、コンパイル方法、及びコンパイル実行プログラム | |
Sharma et al. | Data layout optimization for portable performance | |
Lai et al. | Relax: Composable Abstractions for End-to-End Dynamic Machine Learning | |
JP5238797B2 (ja) | コンパイラ装置 | |
Xu et al. | XUnified: A Framework for Guiding Optimal Use of GPU Unified Memory | |
JP2008071128A (ja) | プリフェッチ制御方法及びコンパイル装置 | |
JP2003216442A (ja) | プログラム変換方法、これを用いたコンピュータ装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130109 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131015 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140408 |