JPH05324281A - アドレス割当変更方法 - Google Patents

アドレス割当変更方法

Info

Publication number
JPH05324281A
JPH05324281A JP4131227A JP13122792A JPH05324281A JP H05324281 A JPH05324281 A JP H05324281A JP 4131227 A JP4131227 A JP 4131227A JP 13122792 A JP13122792 A JP 13122792A JP H05324281 A JPH05324281 A JP H05324281A
Authority
JP
Japan
Prior art keywords
cache
address
entry
pages
main memory
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
JP4131227A
Other languages
English (en)
Inventor
Yumiko Tarusawa
由美子 樽沢
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP4131227A priority Critical patent/JPH05324281A/ja
Publication of JPH05324281A publication Critical patent/JPH05324281A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】情報処理装置上での情報処理プログラムを実行
する場合に、プログラムのアドレスを変えることでキャ
ッシュのヒット率を上げる。 【構成】処理プログラムをコンパイルする際、できたオ
ブジェクトファイルをアドレス変換ソフトウェアに通
し、キャッシュのヒット率が上がるようにメモリ上の配
置を行う。キャッシュの大きさや置換方式を考慮し、キ
ャッシュの各エントリが使われる頻度を同じくらいにす
る。 【効果】処理プログラムのキャッシュヒット率を上げ、
メモリ参照の回数を減らすことにより、処理にかかる総
時間を短縮するということができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理プログラムをキ
ャッシュヒット率が上がるように最適化するアドレス割
当変更方法に関する。
【0002】
【従来の技術】図2は従来のアドレス割当変更方法を説
明するための図で、(a)はメモリのキャッシュへの割
当方法の一例を示し、(b)は具体的なルーチンの配置
の一例を示す。従来の情報処理プログラムにおいては、
図2(a)に示すようにソースを実行可能な状態にコン
パイルしてアドレスリンクを行う際に、ソースプログラ
ムを作成する都合上、ルーチンや複数のルーチン郡をペ
ージの頭に持ってくることが多かった。
【0003】ここで、簡単のため4ページからなるメイ
ンメモリと、2ページ分のキャッシュがある場合を考え
る。キャッシュの置換え方式はダイレクトマップ方式
(アドレスの下位でキャッシュに入るエントリが決ま
る)とする。図2(b)は4ページのメインメモリ1の
各ページの頭に4つのルーチンA3,B4,C5および
D6が配置されたところを示している。このままだと、
キャッシュ2に入るとき、ルーチンA3とルーチンC
5、ルーチンB4とルーチンD6は重なってしまい、エ
ントリの奪い合いが起きる。もし4つのルーチンがA→
B→C→D→A→B→C→…などという順番に実行され
るものとすれば、キャッシュは毎回置き換えられてしま
うことになり、もはやキャッシュの存在する意味がなく
なる。
【0004】
【発明が解決しようとする課題】この従来の方法では、
メモリに比べて通常かなり小さいものであるキャッシュ
にプログラムの一部をメモリからロードしてきてキャッ
シュエントリに割り当てる際に性能面で不都合が生じ
る。例えば小さいルーチンをひとつひとつ別のページの
頭から割り当てた場合、サブルーチンコールでさまざま
なルーチンに処理が飛ぶときにメモリ上ではページの頭
からページの頭へアクセスが移動することになる。メモ
リをアクセスするということは、まずキャッシュをアク
セスするというであり、キャッシュに目的のデータがあ
ればよいが、なければメモリから時間をかけてロードし
て来なければならない。
【0005】キャッシュの置換アルゴリズムにもよるが
ハード性能上よく使用されるダイレクトマップ方式やセ
ットアソシアティブ方式のキャッシュでは、アドレスの
下位によってキャッシュエントリが決定されるので、メ
インメモリは周期的にキャッシュに割り当てられる。そ
のようなキャッシュにおいて、プログラムはいつもペー
ジの頭ばかり使っているとなれば、同じエントリばかり
使ってしまうことになる。置換えのため時間をかけてメ
インメモリからロードして来ても、すぐにほかのルーチ
ンのデータで書き換えられてしまい、再度使おうとする
ときにはまたロードして来なければならないという問題
点があった。
【0006】
【課題を解決するための手段】本発明のアドレス割当変
更方法は、CPUの周辺または内部にキャッシュを搭載
した情報処理装置上で走る情報処理ソフトウェアをソー
スプログラムの状態からコンパイルしてメモリ上のアド
レスを決定するリンク作業の際に前記キャッシュの大き
さおよび置換方式を考慮して前記アドレスを決めること
により前記キャッシュの同じエントリをリプレースする
機会が最小になるように最適化することを特徴とする。
【0007】
【作用】本発明のアドレス割当変更方法では、コンパイ
ル後に、アドレス割当の変更を行う。変更はアドレス割
当変更ソフトウェアで行い、対象はプログラムを通常の
コンパイラ,リンカでコンパイルしたオブジェクトファ
イルである。このオブジェクトファイルは通常の方法で
メインメモリにおけるアドレスが決定されているが、ア
ドレス割当変更ソフトウェアはそのアドレスを解析して
キャッシュのエントリの使用率が平均になるようにアド
レス割当を変更する。
【0008】
【実施例】次に、本発明について図面を参照して説明す
る。図1は本発明のアドレス割当変更方法の一実施例を
説明するための図である。簡単のため、4ページからな
るメインメモリ1と、2ページ分のキャッシュ2がある
場合を考える。キャッシュ2の置換え方式はダイレクト
マップ方式とする。
【0009】本実施例においては情報処理ソフトウェア
をソースプログラムの状態から通常のコンパイラでコン
パイルし、通常のリンカでメインメモリ1上のアドレス
を決定する。アドレス割当変更ソフトウェアはキャッシ
ュ2の大きさ(2ページ分)を考慮してルーチンA3,
ルーチンB4,ルーチンC5およびルーチンD6のアド
レス配置を図1に示すように変更し、キャッシュ2のエ
ントリが使用される回数をできるだけ同じにする。
【0010】このようにすると、キャッシュ2のエント
リは別のところを使用することになり、エントリの奪い
合いは起こらない。
【0011】なお、本実施例ではダイレクトマップ方式
のキャッシュについて説明したが、本発明はセットアソ
シアティブ方式のキャッシュにも適用することができ
る。
【0012】
【発明の効果】以上説明したように本発明は、ソースプ
ログラムの状態からコンパイルして、メインメモリ上の
アドレスを決定するリンク作業において、キャッシュの
大きさ,方式を考慮してアドレスを決めることにより、
キャッシュの同じエントリをリプレースする機会が最小
になるように最適化するので、キャッシュのヒット率を
上げ、処理プログラムの総実行時間を短縮できるという
効果を有する。
【図面の簡単な説明】
【図1】本発明のアドレス割当変更方法の一実施例を説
明するための図である。
【図2】従来のアドレス割当方法を説明するための図で
ある。
【符号の説明】
1 メインメモリ 2 キャッシュ 3 ルーチンA 4 ルーチンB 5 ルーチンC 6 ルーチンD

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 CPUの周辺または内部にキャッシュを
    搭載した情報処理装置上で走る情報処理ソフトウェアを
    ソースプログラムの状態からコンパイルしてメモリ上の
    アドレスを決定するリンク作業の際に前記キャッシュの
    大きさおよび置換方式を考慮して前記アドレスを決める
    ことにより前記キャッシュの同じエントリをリプレース
    する機会が最小になるように最適化することを特徴とす
    るアドレス割当変更方法。
JP4131227A 1992-05-25 1992-05-25 アドレス割当変更方法 Pending JPH05324281A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4131227A JPH05324281A (ja) 1992-05-25 1992-05-25 アドレス割当変更方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4131227A JPH05324281A (ja) 1992-05-25 1992-05-25 アドレス割当変更方法

Publications (1)

Publication Number Publication Date
JPH05324281A true JPH05324281A (ja) 1993-12-07

Family

ID=15053000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4131227A Pending JPH05324281A (ja) 1992-05-25 1992-05-25 アドレス割当変更方法

Country Status (1)

Country Link
JP (1) JPH05324281A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625806B1 (en) 1998-01-26 2003-09-23 Nec Electronics Corporation Language processing method and language processing system improving use efficiency of cache memory
US7478199B2 (en) 2004-03-16 2009-01-13 Fujitsu Limited Cache coloring based on dynamic function flow
WO2010010678A1 (ja) * 2008-07-22 2010-01-28 パナソニック株式会社 プログラム最適化方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625806B1 (en) 1998-01-26 2003-09-23 Nec Electronics Corporation Language processing method and language processing system improving use efficiency of cache memory
US7478199B2 (en) 2004-03-16 2009-01-13 Fujitsu Limited Cache coloring based on dynamic function flow
WO2010010678A1 (ja) * 2008-07-22 2010-01-28 パナソニック株式会社 プログラム最適化方法
JP2010026851A (ja) * 2008-07-22 2010-02-04 Panasonic Corp コンパイラによる最適化方法

Similar Documents

Publication Publication Date Title
Chow et al. The priority-based coloring approach to register allocation
US5862385A (en) Compile method for reducing cache conflict
CA2205797C (en) A system for local context spilling for graph colouring register allocators
US5946491A (en) Register allocation method and apparatus for gernerating spill code as a function of register pressure compared to dual thresholds
KR101360512B1 (ko) 기록 마스크를 사용하는 simd 아키텍처에 의한 레지스터 할당
JPH05204656A (ja) スレッド固有データ保持方法
US8161467B2 (en) Compiling method and storage medium therefor
JP2001147819A (ja) 最適化装置および記録媒体
JP2001109661A (ja) キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
US5774730A (en) Method and apparatus for improving colorability of constrained nodes in an interference graph within a computer system
JP2000347874A (ja) レジスタ割当器を用いた呼出規則プロローグ・エピローグコード構築方法及び装置
US7089557B2 (en) Data processing system and method for high-efficiency multitasking
JP2002342163A (ja) マルチスレッドプロセッサ用キャッシュ制御方式
US6129458A (en) Cache optimization method
Chen et al. Register allocation for intel processor graphics
WO1998025202A1 (en) Cooperation of global and local register allocators for better handling of big procedures
US5940621A (en) Language independent optimal size-based storage allocation
JPH06223043A (ja) 分散メモリ型プロセッサシステム
JP3141836B2 (ja) 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体
JPH05324281A (ja) アドレス割当変更方法
CN111435309A (zh) 一种寄存器分配优化实现方法
Zhuang et al. Balancing register allocation across threads for a multithreaded network processor
US6173443B1 (en) Method of compiling a loop
JPH08190537A (ja) マルチプロセッサシステム及びプロセススケジューリング方法
JP3296027B2 (ja) ロードストア型プロセッサの付加的レジスタを利用する際のコンパイル方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19981104