JP3670351B2 - データ割り付け処理方法 - Google Patents

データ割り付け処理方法 Download PDF

Info

Publication number
JP3670351B2
JP3670351B2 JP21686395A JP21686395A JP3670351B2 JP 3670351 B2 JP3670351 B2 JP 3670351B2 JP 21686395 A JP21686395 A JP 21686395A JP 21686395 A JP21686395 A JP 21686395A JP 3670351 B2 JP3670351 B2 JP 3670351B2
Authority
JP
Japan
Prior art keywords
data
size
cache memory
gap
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.)
Expired - Fee Related
Application number
JP21686395A
Other languages
English (en)
Other versions
JPH0962513A (ja
Inventor
正寿 原口
幸浩 木村
耕一郎 堀田
学 松山
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP21686395A priority Critical patent/JP3670351B2/ja
Publication of JPH0962513A publication Critical patent/JPH0962513A/ja
Application granted granted Critical
Publication of JP3670351B2 publication Critical patent/JP3670351B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は,コンパイラまたはソースコンバータ(以下,コンパイラと総称する)においてメモリアクセスの効率を高めるための最適化手法に関する計算機技術であって,特に,複数の階層を持つキャッシュメモリを備えた計算機向けのプログラムを翻訳または変換する際のメモリの使用効率およびアクセス効率の最適化を可能とするデータ割り付け処理方法に関する。
【0002】
コンパイラは,言語X(例えばC,FORTRAN,COBOLといったプログラミング言語)で記述されたプログラムから,他の言語Y(例えば機械語,アセンブラ言語)で記述されたプログラムまたは効率を高めた形態に変換された言語Xで記述されたプログラムへと変換する装置と考えることができ,コンパイラによる最適化とは,変換後のプログラムが元のプログラムの意味を変えることなく,プログラムの実行時間を短縮できるようにする変換機能のことである。
【0003】
近年のプロセッサでは,主記憶装置からCPUにデータを取り込むために,階層的なメモリ構成をとり,複数段のキャッシュメモリを経由するものが用いられ始めている。このようなプロセッサでは,参照すべきデータをできるだけ高レベルのキャッシュメモリに保持しておくようにすることがプログラムの実行効率を高めるうえで重要である。
【0004】
【従来の技術】
計算機システムにおける主記憶装置とキャッシュメモリとのアドレスのマッピング方式として,セットアソシアティブ方式とダイレクトマップ方式が多く用いられている。いずれの方式も,主記憶装置のデータはキャッシュメモリ上の限定されたアドレスにのみマッピングされる。
【0005】
このため,複数の主記憶装置上のデータが,キャッシュメモリ上では同一のアドレスにマッピングされることがある。このように,異なるデータがキャッシュメモリ上で同一のアドレスにマッピングされ,双方にアクセス要求があるにもかかわらずキャッシュメモリ上で同時に存在できないような状態をキャッシュコンフリクトという。すなわち,キャッシュコンフリクトが生じた場合には,キャッシュメモリの他の部分に空きがあっても,古いデータはキャッシュメモリから追い出されることになる。
【0006】
隣接して主記憶装置上に割り付けられた配列Aおよび配列Bがあるとき,ループの回転とともに値が変化する変数をIとするループ内において,配列要素A(I)とB(I)とが連続して参照される場合,配列Aと配列Bの主記憶装置上のアドレスが丁度キャッシュメモリのサイズ分だけ離れていると,A(I)とB(I)とはキャッシュコンフリクトを起こす可能性が高い。
【0007】
これを避けるために,配列Aと配列Bのデータ領域を主記憶装置上に割り付ける際に,配列Aと配列Bとの間に間隙を空けて距離をずらすことにより,キャッシュコンフリクトを避ける最適化処理が行われている。ここで,間隙の大きさは,キャッシュライン幅にするのが効率的である。
【0008】
第6図に示す例に従って,キャッシュコンフリクトとその回避手段について,さらに詳しく説明する。
プログラムが動作する計算機のキャッシュメモリは,図6(A)に示すように,ダイレクトマップ方式(セットアソシアティブ方式も同様)をとり,キャッシュサイズが128KB(キロバイト),キャッシュライン幅が32B(バイト),キャッシュエントリ数が4096であったとする。動作するプログラムとして,図6(B)に示すような2つの配列A,BをDOループ内で参照するプログラムを考える。ここで,配列A,配列Bのデータサイズは,それぞれ128KBであったとする。
【0009】
これらの配列A,Bが,図6(C)に示すように連続して主記憶領域60に割り付けられていたとすると,キャッシュメモリ61上では,A(I),B(I)が同一のアドレスにマッピングされる。したがって,図6(B)のプログラムの実行では,図6(D)に示すように,まず1回目(I=1)のループにおいて,A(1)の参照の際に,A(1)〜A(4)の1ライン分のデータがキャッシュメモリ61に主記憶領域60から読み上げられ,B(1)の参照の際に,キャッシュメモリ61上のA(1)〜A(4)と同じ位置に,B(1)〜B(4)が読み上げられる。
【0010】
次の2回目(I=2)のループでは,A(2)のデータを参照する際に,A(I)とB(I)のデータがキャッシュコンフリクトを起こしているので,再度,A(1)〜A(4)の1ライン分のデータがキャッシュメモリ61上に読み上げられることになる。
【0011】
このようなキャッシュコンフリクトによるキャッシュミスの低減を回避する簡単な最適化手法として,図6(E)に示すように,配列Aを割り付けた後,配列Bの前に間隙を設ける方法がある。すなわち,配列Aと配列Bとの間に,少なくともキャッシュライン幅以上の間隙を設ける。こうすれば,図6(F)に示すように,A(1)〜A(4)とB(1)〜(4)とが,キャッシュメモリ61の異なるラインに割り当てられるので,各ループごとにキャッシュコンフリクトが生じるのを抑止することができ,キャッシュメモリ61を有効に利用することが可能になる。
【0012】
以上のように,主記憶装置上に割り付けるデータに間隙を設けることによって,キャッシュメモリを効率的に使用する方式が用いられているが,従来,1階層のキャッシュメモリだけを考慮した間隙の決定が行われており,複数階層のキャッシュメモリを備えた計算機において,無駄のない効率的な間隙を設ける方法は考えられていなかった。
【0013】
【発明が解決しようとする課題】
多階層で異なるキャッシュライン幅のキャッシュメモリを持つ計算機システムにおいては,一般に高いレベルのキャッシュメモリほど容量が小さくライン幅も小さい。これに対し,低レベルのキャッシュメモリは容量もライン幅もともに大きい。ライン幅の大きい低レベルのキャッシュメモリでキャッシュコンフリクトを起こすと,高いレベルのキャッシュメモリでキャッシュコンフリクトを起こしたときよりも,そのペナルティは大きい。
【0014】
これを避けるためには,データ間に大きなライン幅に合わせた間隙を設ける必要がある。しかし,低レベルのキャッシュメモリの容量自体が大きいので,コンフリクトを起こす可能性がもともと少なく,間隙を設けたことが無駄になる可能性も大きい。
【0015】
一方,容量が小さいのでコンフリクトを起こす可能性が大きい高レベルのキャッシュメモリにおいて,コンフリクトを避けるためには,小さなライン幅に合わせた小量の間隙を設ければよいが,小さなライン幅に合わせた場合には,低レベルでのキャッシュコンフリクトの回避には十分でないため,前述のように低レベルでキャッシュコンフリクトを起こした場合のペナルティが大きくなるという問題点がある。
【0016】
本発明は上記問題点の解決を図り,無駄に大きな間隙を設けることにより主記憶領域の使用効率を悪くすることを回避するとともに,十分なキャッシュコンフリクトの回避を可能とする手段を提供することを目的とする。
【0017】
【課題を解決するための手段】
図1は,本発明の原理説明図である。
本発明は,図1(A)に示すように,主記憶装置30とCPU10等のデータアクセス元との間に,複数の階層を持つキャッシュメモリ201 〜20n を備えた計算機向けのプログラムを翻訳または変換するコンパイラまたはコンバータにおけるデータ割り付けにおいて,複数のデータ間のキャッシュコンフリクトを避けるために,複数のデータ間に次のように間隙を設けることを特徴とする。
【0018】
(1) 図1(B)に示すように,直前に割り付けたデータの大きさを検査し,データのメモリ上で占める領域が小さいデータに関しては,小容量高速な高レベルのキャッシュメモリの構成情報を用いて高レベルのキャッシュメモリに都合のよいように小さな間隙を空ける。また,データのメモリ上で占める領域が大きいデータに関しては,大容量低速な低レベルのキャッシュメモリの構成情報を用いて低レベルのキャッシュメモリに都合のよいように大きな間隙を空けて,データを割り付ける。こうすることによって,主記憶領域の使用効率を高めながら,キャッシュコンフリクトの低減によるヒット率の向上を実現する。
【0019】
(2) 最も高いレベルの第1次から最も低いレベルの第n次(n≧2)までの複数の階層を持つキャッシュメモリ201 〜20n を備えた計算機向けのプログラムを翻訳または変換するとき,最も使用効率を高めるべきキャッシュメモリのレベルを,割り付けるデータの領域の大きさから次のように決定する。
【0020】
領域の大きさSA を持つデータAと,データAの直後に割り付けられるデータBとの間に,キャッシュコンフリクトを避けるために間隙を設けるものとする。第i次キャッシュメモリ20i の大きさをCi ,ライン幅をLi とする。このとき,
A ≦Ci+1 /(Li+1 /Li
を満たす最小のiを求めて,第iレベルのキャッシュメモリ20i を最も使用効率を高めるべきキャッシュメモリとする。そして,第i次キャッシュメモリ20i の構成情報を用い,これを基準としてデータA,データB間に設ける間隙の大きさを決定する。
【0021】
A ≦Ci+1 /(Li+1 /Li
を満たすiが存在しない場合には,最も低いレベルの第n次キャッシュメモリ20n の構成情報を用いることにより間隙の大きさを決定する。
【0022】
(3) 上記処理により,最も使用効率を高めるべきキャッシュメモリのレベルを選んだならば,複数のデータ間に設ける間隙の大きさを,その選択したレベルのキャッシュメモリのライン幅とする。これは,一般に複数の配列を参照する際に使用する添字式が一種類で同一であることが多いというプログラムの性質を利用したもので,これによって特に個々の添字式の解析を省略しても,実行効率のよいプログラムの翻訳または変換を行うことが可能になる。
【0023】
以上によって,主記憶容量の増加を最小限に抑えながらキャッシュコンフリクトを回避することが可能になり,その結果,翻訳または変換したプログラムの実行時間を,主記憶領域を無駄にしないで短縮することが可能になる。
【0024】
【発明の実施の形態】
図2および図3に従って,本発明の作用を説明する。
図2(A)に示すように,主記憶装置30とデータをアクセスするCPU10との間に,第2次キャッシュメモリ22と第1次キャッシュメモリ21とが介在する2階層のキャッシュメモリを持つ計算機向けのプログラムを翻訳または変換するものとする。第1次キャッシュメモリ21は,サイズ(容量)が4KB,ライン幅が32Bで,エントリ数が128であり,第2次キャッシュメモリ22は,サイズが1MB,ライン幅が128Bで,エントリ数が8192である。
【0025】
図2(B)は,配列A〜Cの大きさがすべて512KBであるデータを割り付けた場合のキャッシュコンフリクトが生じる様子を示している。なお,図2および図3では,特にキャッシュコンフリクトが生じた場合にペナルティの大きい第2次キャッシュメモリ22におけるデータの配置状態を図示し,第1次キャッシュメモリ21におけるデータの配置状態は図示を省略する。
【0026】
配列A〜Cの間に間隙を設けなかったとすると,配列A〜Cを順番に参照した場合に,図2(B1)のように第2次キャッシュメモリ22にデータが読み上げられる。ここで配列A〜Cの大きさは512KB,第2次キャッシュメモリ22の大きさは1MBであるので,配列Aと配列Cの同じ添字の部分でキャッシュコンフリクトが生じることになる。
【0027】
そこで,データ配置の最適化処理により,仮に各配列A〜C間に第1次キャッシュメモリ21のライン幅32B分の間隙を設けたとすると,配列A〜Cを順番に参照した場合の第2次キャッシュメモリ22におけるデータの配置は図2(B2)に示すようになる。この場合,配列Aの先頭と配列Cの先頭との第2次キャッシュメモリ22におけるずれは,32B×2=64Bであり,第2次キャッシュメモリ22のライン幅128Bより小さいので,配列Aと配列Cの同じ添字のデータ・アクセスに対して,やはりキャッシュコンフリクトが生じることになる。
【0028】
これに対し,各配列A〜C間に設ける間隙の大きさを,第2次キャッシュメモリ22のライン幅である128Bとすると,配列A〜Cを順番に参照した場合の第2次キャッシュメモリ22におけるデータの配置は,図2(B3)に示すようになる。配列Aの先頭と配列Cの先頭との第2次キャッシュメモリ22におけるずれは,128B×2=256Bであり,第2次キャッシュメモリ22のライン幅128Bよりも十分に大きいので,配列A〜Cの連続アクセスに対してキャッシュコンフリクトの発生が減少することになる。このことから,割り付けるデータの領域が大きい場合には,低レベルのキャッシュメモリを基準として間隙を決定したほうが有利であることがわかる。
【0029】
次に,配列A〜Eの大きさがすべて256KBの場合について,図3(C)に従って説明する。
各配列A〜E間に第1次キャッシュメモリ21のライン幅32B分の間隙を設けたとすると,配列A〜Eを順番に参照した場合の第2次キャッシュメモリ22におけるデータの配置は,図3(C1)に示すようになる。この場合,配列Aの先頭と配列Eの先頭との第2次キャッシュメモリ22におけるずれは,32B×4=128Bであり,第2次キャッシュメモリ22のライン幅128B分のずれがあるので,配列Aと配列Eを同じ添字で連続してアクセスしたとしても,第2次キャッシュメモリ22のキャッシュコンフリクトは抑止されることになる。
【0030】
これに対し,各配列A〜E間に設ける間隙の大きさを,第2次キャッシュメモリ22のライン幅である128Bとしても,図3(C2)から明らかなように,配列Aの先頭と配列Eの先頭との間に,第2次キャッシュメモリ22のライン幅以上のずれが生じるので,キャッシュコンフリクトの発生を抑止することができる。しかし,間隙の大きさが128Bであるよりも32Bであるほうが,主記憶領域を無駄に使用しないことになるので,主記憶領域の使用効率の点で有利であり,128Bの間隙を設けることは望ましくない。
【0031】
各配列の大きさが256B以下であれば,図3(C)の場合と同様に,第1次キャッシュメモリ21のライン幅である32B分の間隙を設けることにより,第1次キャッシュメモリ21および第2次キャッシュメモリ22の双方におけるキャッシュコンフリクトの発生を少なくすることができる。
【0032】
以上のように,データの占める領域が大きい場合には,低レベルのキャッシュメモリを基準として間隙を設け,データの占める領域が小さい場合には,高レベルのキャッシュメモリを基準として間隙を設けることにより,良好な結果を得ることができる。
【0033】
以上では,説明を簡単にするために,配列の大きさがすべて同じ場合の例について説明したが,各配列の大きさがまちまちであっても,実際上は直前に割り付けたデータの大きさによって間隙の大きさを第1次キャッシュメモリ21に合った大きさとするか,第2次キャッシュメモリ22に合った大きさとするかを決めれば,図2および図3で説明した例と同様に良好な結果が得られる。
【0034】
第i次キャッシュメモリの大きさをCi ,ライン幅をLi とするとき,領域の大きさSA を持つデータAと,データAの直後に割り付けられるデータBとの間のキャッシュコンフリクトを避けるために設ける間隙の大きさは,具体的には次のように決めればよい。
【0035】
A ≦Ci+1 /(Li+1 /Li ) ……式▲1▼
を満たす最小のiを求める。この式▲1▼を満たす最小のiが見つかった場合には,その第i次キャッシュメモリのライン幅分の間隙を設ける。上記式▲1▼を満たすiが存在しない場合には,最も低いレベルの第n次キャッシュメモリのライン幅分の間隙を設ける。
【0036】
前述した図2の例では,SA =512KB,C2 =1MB,L2 =128B,L1 =32Bであるので,
i+1 /(Li+1 /Li )=1MB/(128B/32B)=256KB
であり,SA >256KBであるため,第2次キャッシュメモリ22のライン幅を間隙の基準とする。
【0037】
図3の例では,SA =256KB,C2 =1MB,L2 =128B,L1 =32Bであるので,i=1で上記式▲1▼が満たされる。したがって,第1次キャッシュメモリ21のライン幅を基準に間隙を設ける。
【0038】
ここでは,一般に複数の配列を参照する際に使用する添字式が一種類かつ同一であることが多いというプログラムの性質を利用して,間隙の大きさを上記式▲1▼を満たす第i次キャッシュメモリのライン幅としている。こうすることにより,添字式などの解析を省略してデータ割り付け処理の簡易化および高速化を可能にしているが,第i次キャッシュメモリに最適な間隙を決定する方法として,キャッシュコンフリクトを生じさせる可能性のある配列間の添字式の出現状況を解析することなどにより,個々のキャッシュ構成に応じて最適な間隙を決定する方法を採用することも可能である。
【0039】
図4は,本発明を実施するシステム構成例を示す。
図4において,40は所定のプログラム言語で記述されたソースプログラム,41はCPUおよびメモリ等からなる処理装置,42はソースプログラム40を翻訳するコンパイラ,43はソースプログラム40を入力し解析するソースプログラム解析部,44は翻訳されたプログラムが動作する計算機のアーキテクチャ情報を記憶するアーキテクチャ情報記憶部,45はデータ割り付け処理部であって,特に本発明の関係している部分,451は割り付けデータの大きさを検査するデータサイズ検査部,452は割り付けデータの大きさおよびキャッシュメモリの構成情報によってデータ間の間隙の大きさを決定する間隙決定部,46はその他の一般的なプログラム最適化処理を行う最適化部,47は翻訳結果のオブジェクトコードを生成するコード生成部,48はコンパイラ42の出力であるオブジェクトプログラムを表す。
【0040】
アーキテクチャ情報記憶部44には,複数階層のキャッシュメモリを持つ計算機のアーキテクチャ情報として,各キャッシュメモリのサイズ,ライン幅等の情報が記憶されている。データサイズ検査部451は,このアーキテクチャ情報と割り付けデータのサイズとから,データ間に間隙を設ける際に基準とするキャッシュメモリのレベルを選択する。間隙決定部452は,選択されたレベルのキャッシュメモリの構成情報を用いて,間隙の大きさを決定する。
【0041】
図5は,図4に示すデータ割り付け処理部45の処理フローチャートを示している。
ステップS10では,アーキテクチャ情報記憶部44から各階層のキャッシュメモリのサイズC1 ,C2 ,…,ライン幅L1 ,L2 ,…のハードウェアアーキテクチャ情報を得る。ステップS11では,k=1として,以下の処理を繰り返す。
【0042】
まず,ステップS12では,第k番目の配列に主記憶上のデータ領域(サイズSk )を割り付ける。ステップS13により,次の配列があるかどうかを判定し,なければ他のデータ割り付け処理等へ移る。次の配列がある場合,ステップS14によりキャッシュメモリのレベル番号iを1に初期化する。
【0043】
ステップS15では,アーキテクチャ情報からX=Ci+1 /(Li+1 /Li )を計算する。予めこの計算結果Xをアーキテクチャ情報記憶部44に保持しておくようにして,このステップS15を省略することも可能である。
【0044】
ステップS16では,第k番目の配列のサイズSk とXとの大小を比較し,Sk がX以下であればステップS17へ,Sk がXより大きければステップS18へ進む。
【0045】
ステップS17では,第i次キャッシュメモリのライン幅Li 分の大きさの間隙を第k番目の配列の後に設ける。その後,ステップS21へ進む。
ステップS18では,iに1を加算する。その後,ステップS19では,iがn(nはキャッシュメモリの階層数)になったかどうかを判定し,nになっていなければ,ステップS15へ戻る。iがnになったならば,ステップS20によって,第n次キャッシュメモリのライン幅Ln 分の大きさの間隙を第k番目の配列の後に設ける。次に,ステップS21によって,kに1を加算し,ステップS12へ戻って同様に処理を繰り返す。
【0046】
【発明の効果】
以上説明したように,本発明によれば,データの大きさと計算機の備えるキャッシュメモリ階層の構成を認識して最適な領域割り付けを行うことにより,主記憶領域を必要以上に大きくとることなく,キャッシュコンフリクトの少ないメモリアクセスを実現することができる。すなわち,主記憶容量の増加を最小限に食い止めながらキャッシュコンフリクトを回避し,翻訳または変換結果のプログラムの実行時間を短縮することが可能になる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の作用説明図である。
【図3】本発明の作用説明図である。
【図4】本発明を実施するシステム構成例を示す図である。
【図5】データ割り付け処理フローチャートである。
【図6】一般的なキャッシュコンフリクトの説明図である。
【符号の説明】
10 CPU
201 〜20n キャッシュメモリ
30 主記憶装置

Claims (3)

  1. 計算機が実行する,複数の階層を持つキャッシュメモリを備えた計算機向けのプログラムを翻訳または変換するコンパイル処理またはコンバート処理におけるデータ割り付け処理方法において,
    前記計算機は,翻訳または変換されたプログラムが動作する計算機が備える前記各キャッシュメモリの構成情報を記憶するアーキテクチャ情報記憶手段と,翻訳または変換対象のプログラムに割り付けるデータ領域の大きさを検査するデータサイズ検査手段と,前記翻訳または変換対象のプログラムに割り付ける複数のデータ間にキャッシュコンフリクトを避けるために設ける間隙の大きさを決定する間隙決定手段とを有し,
    前記データサイズ検査手段が,前記翻訳または変換対象のプログラムに割り付けるデータのメモリ上で占める領域が所定の値よりも大きいか否かを検査する過程と,
    前記間隙決定手段が,前記割り付けるデータのメモリ上で占める領域が所定の値よりも大きい場合に,前記間隙の大きさを,前記アーキテクチャ情報記憶手段に記憶された低レベルのキャッシュメモリの構成情報を用いて低レベルのキャッシュメモリに合った大きさに決定し,前記割り付けるデータのメモリ上で占める領域が所定の値より小さい場合に,前記間隙の大きさを,前記アーキテクチャ情報記憶手段に記憶された高レベルのキャッシュメモリの構成情報を用いて高レベルのキャッシュメモリに合った大きさに決定する過程とを有する
    ことを特徴とするデータ割り付け処理方法。
  2. 計算機が実行する,最も高いレベルの第1次から最も低いレベルの第n次までの複数の階層を持つキャッシュメモリを備えた計算機向けのプログラムを翻訳または変換するコンパイル処理またはコンバート処理におけるデータ割り付け処理方法において,
    前記計算機は,翻訳または変換されたプログラムが動作する計算機が備える前記各キャッシュメモリのサイズC i とライン幅L i の情報を含む構成情報を記憶するアーキテクチャ情報記憶手段と,翻訳または変換対象のプログラムに割り付けるデータ領域の大きさを検査するデータサイズ検査手段と,前記翻訳または変換対象のプログラムに割り付ける複数のデータ間にキャッシュコンフリクトを避けるために設ける間隙の大きさを決定する間隙決定手段とを有し,
    前記翻訳または変換対象のプログラムに割り付ける領域の大きさSA を持つデータAと,データAの直後に割り付けるデータBとの間キャッシュコンフリクトを避けるために間隙を設ける際に,
    前記データサイズ検査手段が,前記アーキテクチャ情報記憶手段から得られる第i次キャッシュメモリのサイズC i と,ライン幅L i の情報に基づき,次の不等式
    A ≦Ci+1 /(Li+1 /Li
    を満たす最小のiを求める過程と,
    前記間隙決定手段が,前記不等式を満たすiが存在する場合に,前記アーキテクチャ情報記憶手段から得られる第i次キャッシュメモリの構成情報を用いることにより,前記間隙の大きさを決定し,前記不等式を満たすiが存在しない場合には,最も低いレベルの第n次キャッシュメモリの構成情報を用いることにより,前記間隙の大きさを決定する過程とを有する
    ことを特徴とするデータ割り付け処理方法。
  3. 請求項1または請求項2記載のデータ割り付け処理方法において,
    前記間隙決定手段が前記間隙の大きさを決定する過程では,前記複数のデータ間に設ける間隙の大きさを,前記アーキテクチャ情報記憶手段に記憶された,選択したレベルのキャッシュメモリの構成情報から得られるライン幅とする
    ことを特徴とするデータ割り付け処理方法。
JP21686395A 1995-08-25 1995-08-25 データ割り付け処理方法 Expired - Fee Related JP3670351B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21686395A JP3670351B2 (ja) 1995-08-25 1995-08-25 データ割り付け処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21686395A JP3670351B2 (ja) 1995-08-25 1995-08-25 データ割り付け処理方法

Publications (2)

Publication Number Publication Date
JPH0962513A JPH0962513A (ja) 1997-03-07
JP3670351B2 true JP3670351B2 (ja) 2005-07-13

Family

ID=16695092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21686395A Expired - Fee Related JP3670351B2 (ja) 1995-08-25 1995-08-25 データ割り付け処理方法

Country Status (1)

Country Link
JP (1) JP3670351B2 (ja)

Also Published As

Publication number Publication date
JPH0962513A (ja) 1997-03-07

Similar Documents

Publication Publication Date Title
US4991088A (en) Method for optimizing utilization of a cache memory
US6578129B1 (en) Optimized virtual memory management for dynamic data types
US7606974B2 (en) Automatic caching generation in network applications
EP0838755B1 (en) Binary program conversion apparatus and method
US8738859B2 (en) Hybrid caching techniques and garbage collection using hybrid caching techniques
Panda et al. On-chip vs. off-chip memory: the data partitioning problem in embedded processor-based systems
JP3816586B2 (ja) 先取り命令を生成する方法とシステム
US6567815B1 (en) Technique of clustering and compaction of binary trees
Issenin et al. Data reuse analysis technique for software-controlled memory hierarchies
JP2007299403A (ja) 異機種マルチプロセッサ・システムにおけるガーベッジ・コレクションのためのシステムおよび方法
Esseghir Improving data locality for caches
Issenin et al. Multiprocessor system-on-chip data reuse analysis for exploring customized memory hierarchies
US5940621A (en) Language independent optimal size-based storage allocation
Jones et al. High-performance parallel graph reduction
US6324629B1 (en) Method for determining an optimized data organization
Thabit Cache management by the compiler
US20070300210A1 (en) Compiling device, list vector area assignment optimization method, and computer-readable recording medium having compiler program recorded thereon
JP3141836B2 (ja) 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体
JP3670351B2 (ja) データ割り付け処理方法
Mehlhorn et al. Scanning multiple sequences via cache memory
CN112631610B (zh) 一种针对粗粒度可重构结构的数据重用消除访存冲突方法
Juan et al. Dynamic cache splitting
Chakraborty et al. Integrating software caches with scratch pad memory
JP2002007213A (ja) キャッシュメモリ制御方法及びプログラム処理方法
Zhuang et al. A framework for parallelizing load/stores on embedded processors

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050314

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: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050414

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080422

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100422

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees