JPH09212369A - 記憶域割り付け装置 - Google Patents

記憶域割り付け装置

Info

Publication number
JPH09212369A
JPH09212369A JP8330111A JP33011196A JPH09212369A JP H09212369 A JPH09212369 A JP H09212369A JP 8330111 A JP8330111 A JP 8330111A JP 33011196 A JP33011196 A JP 33011196A JP H09212369 A JPH09212369 A JP H09212369A
Authority
JP
Japan
Prior art keywords
storage
node
storage area
size
allocation
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.)
Withdrawn
Application number
JP8330111A
Other languages
English (en)
Inventor
B Cardwell Jeffrey
ジェフリー・ビー・カルドウェル
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH09212369A publication Critical patent/JPH09212369A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4442Reducing the number of cache misses; Data prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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 for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】一般的に使用される記憶域割り付け順序を変更
することによって、実行コードに関するコンパイラ性能
の向上を実現するコンパイラ手段を提供する。 【解決手段】最小サイズの(変数等の)記憶域項目を活性
化レコードの基底アドレスに最も隣接した位置に割り付
ける手段、変数のアライメントに基づく順序に従って割
り付ける手段、記憶域項目に対するアクセスを予備的に
計測して、アクセス数の大きい項目を活性化レコードの
基底アドレスに近い位置に配置する手段、または、アク
セスが互いに時間的に接近している複数項目を同一キャ
ッシュ線上に割り付ける手段を設けてコンパイラ性能を
向上させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータに関
するもので、特に、ユーザ・プログラムにおいて宣言さ
れる自動変数のメモリ配置の改善を行うコンパイラ技
術、すなわち一般的に記憶領域割り付けと呼ばれる技術
に関するものである。
【0002】
【従来の技術】コンパイラによる変数記憶領域割り付け
に対する従来技術の解決策は、変数がソース・プログラ
ムに現れる順序通りに変数をメモリに割り付けるという
ものであった。このアプローチは、変数のアドレス指定
順序を簡単に決定できるという利点を持つ。いくつかの
特許が、このような標準的記憶領域割り付け技術に対す
る改良を記載している。以下にあげる特許は、実行時に
動的情報に対して作用する記憶領域割り付け技術を開示
している。
【0003】1994年11月22日付けでS. Wei氏に
付与された米国特許第5,367,637号は、アプリケーショ
ンとリアルタイム・コンピュータ・システムの間に1つ
の層を挿入して、アプリケーションの仮想記憶域要求す
なわちバッファ要求を充足させるための2層構造を形成
する専用リアルタイム・コンピュータ・システムにおけ
る仮想記憶域管理の自己調整方法を記載している。この
方法は、1リアルタイム・ピリオドの間にすべての他の
バッファの作成を保証するために(第2層である)リアル
タイム・システムの割り付けが遅くなるという結果を生
む。自己調整層(第1層)がバッファ要求を充足するよう
に先ずチェックされ、一方第1層がバッファ要求充足に
失敗した時未調整の第2層がバッファ作成を開始する。
第2層のバッファ作成開始はモニタ機構によってモニタ
され、次の初期状態設定時に第1層を調整するため、新
しい事前割り付け定義がシステム使用履歴に基づいて引
き出される。
【0004】1994年9月13日付けでK. Karrick氏
に付与された米国特許第5,347,540号は、論理的分析の
ためデータの同期取得および非同期同時取得の間の対話
を提供しながらメモリ資源を節約する動的記憶域割り付
け方式を記載している。
【0005】1993年9月21日付けでW. Ashcraft,
G. Woodside Ill, G. Currington,K. Robb各氏に付与
された米国特許第5,247,660号は、光ディスクのような
1回書き込み型媒体の複数ボリュームを含むデータ処理
装置の大容量記憶装置における情報の記憶を管理する方
法を記載している。ボリュームは、各々が少くとも1つ
のファイル・セットを含むボリューム・セットに分類さ
れる。ファイル記憶の間に必要に応じてファイル・セッ
トおよびボリューム・セットのサイズは動的に増加され
る。
【0006】以下の特許は、不要部分回収システム環境
において動作する記憶域割り付け技術、すなわち余分な
データを排除する空間最適化手法を記載している。その
ようなアプローチは、本来的に動的なものであるので、
アプリケーションの静的コンパイルは対象としていな
い。
【0007】1991年6月18日付けでJ. Gurdおよ
びK. Kawakami両氏に付与の米国特許第5,025,367号は、
記憶域セクションにおける使用可能な空間の各々をそれ
ぞれの割り付けルーチンに関連づける並列記憶領域割り
付け方法を記載している。該方法は、それぞれの割り付
けルーチンに関する識別子を記憶する。使用されていな
い割り付けルーチンを識別するデータが記憶され、使用
可能な空間に関連づけられた割り付けルーチンのリスト
が維持される。ある1つの記憶空間がもはや使用されな
くなるとその都度、既にフリーとなっている空間で、今
未使用となった記憶空間と結合することができる空間の
割り付けルーチン識別子を決定する検査が実行される。
未使用割り付けルーチンに対応する第1の識別子および
既にフリーとなっている空間で今未使用となった記憶空
間と結合することができる空間に対応する第2の識別子
を含むフリー空間トークンが生成される。
【0008】以下の特許および文献は、補助記憶装置に
関して作用する記憶領域割り付け技術を記載している。
1992年5月12日付けでH. PenningsおよびH. Wijg
en両氏に付与された米国特許第5,113,509号は、1アト
ミック入出力操作中に直接アクセス記憶装置上のアクセ
ス状態レコードのデータを検査して変更する入出力検査
/設定操作を記載している。1982年1月12日付け
で R. CliftonおよびR. Phares両氏に付与された米国
特許第4,310,883号は、アドレス可能なデータを含む複
数の記憶装置ボリュームを有する大容量記憶システムに
おいて、新たに受け取られたデータ・セットと最もよく
合致する記憶装置ボリュームを決定することによって新
たに受け取られたデータ・セットを最適の記憶装置ボリ
ュームに割り当てる方法を記載している。
【0009】1987年2月10日付Research Disclos
ure No. RD 274,059 (Derwent WPIAcc.No. 87077601/1
1)"Dynamic Reorganization of Disc Storage Allocati
onUsing Controller to Periodically Move Data Most
Frequently Accessed to Portion of Disc With Shorte
st Access Time"は、論理的シリンダが一層活発になっ
たか否かを決定する動的使用情報を周期的に検査するよ
うにプログラムされたデバイス制御機構を記載してい
る。シリンダが一層活発になったとすれば、その情報の
内容が、高活動性のための記憶装置ディスク上の好まし
い領域にコピーされる。
【0010】R. R. Oldehoeftおよび S. J. Allan両氏
著Adaptive exact-fitstorage management,Communicati
ons of the ACM, vol. 21, no. 5は、(ランタイム時に)
動的情報に関して作用する記憶領域割り付け技術を記載
している。C. A. Eisenbeis氏著Strategy For Array Ma
nagement in Local Memory, Inst.Nat.Recherche Inf.A
utom., LeChesnay, Franceは、アレイおよびマトリック
スの部分をローカル記憶域に対し読み書きすべき時間お
よびプロセッサ干渉を管理する方法の決定を支援する管
理戦略方式を記載している。Aho, Seth, Ullman各氏共
著のCompilers, Principles, Techniques, and Tools,A
ddison-Wesley Publishing Company (1985)およびM. E.
Wolf氏著のImprovingLocality and Parallelism in Ne
sted Loops, Technical Report:CSL-TR-92538,CSL, Dep
t. of EE and CS, Stanford Universityにも動的記憶域
管理方法が記載されている。
【0011】
【発明が解決しようとする課題】プログラムの正確性に
対する妥協を行うことなく処理性能向上を達成すること
が求められている。更に、(コンパイル時に)静的情報を
取り扱い、プログラム・ソース言語の種類に関係なく自
動変数全体を対象とする解決策を提供できる技術が存在
すれば、特に有用である。
【0012】
【課題を解決するための手段】本発明は、従来技術にお
いて一般的に使用される記憶域割り付け順序を変更する
ことによって、プログラムの正確性に対する妥協を行う
ことなく、コンパイラによって生成される実行時コード
のコンパイラ性能の向上を実現する。本発明の方法およ
び装置は、以下の利点を生み出す効率的記憶領域割り付
けを提供する。 *一層小さいスタック・フレーム(活性化レコード)、 *一層少ないヒープ空間(静的データ記憶域)、 *空間局所性の改善による変数アクセス時間の向上、お
よび *キャッシュ・ヒット率の向上。
【0013】本発明の1つの局面は、最適サイズ空間記
憶領域割り付けを提供する。すなわち、本発明は、デー
タ・アクセス各々毎に必要とされる命令をより少なくさ
せるように実行時コードを最適化させる。本発明は、ま
た、活性化レコードの一部である局所領域を可能な限り
小さくさせる。プロシージャまたは関数呼び出しが行わ
れる時は必ず、システム・スタック上にもう1つの活性
化レコードを追加する必要がある。局所領域が大きくな
れば、実行時に再帰的に呼び出すことができるルーチン
の数は減少する。局所領域が小さければ、ネストのレベ
ル数は大きくなり、百万のルーチンをも相互の上に呼び
出すことができる。活性化レコードが大きすぎれば、呼
び出すことができるルーチンの数は劇的に減少する。更
に、活性化レコードが小さければ、キャッシュ局所性の
向上が可能である。従って、記憶域の1項目をキャッシ
ュに入れる時、その直後に一時的局所性を持つ他の項目
をそのすぐ後に置くことができる機会が増加する。この
ようにして、活性化レコードが小さければ、活性化レコ
ードを表すために必要なキャッシュ線は少なくてすむ。
本発明は、また、可能な限り少ないスタック・フレーム
が提供されるように、アラインメントに基づく改良され
たソート方法を提供する。
【0014】本発明の別の局面は、プロファイルに基づ
く最適化方法を提供する。この方法は、次の記憶領域割
り付けパスの間に記憶域を最適に順序づけ配置する方法
を決定するために使用されるプログラム行動様態に関す
る情報を収集する。活性化レコードは、レコードのサイ
ズが増加する場合ある特定の項目をアクセスするため少
なくとも2つのRISC命令を必要とする可能性がある
ので、最も頻繁にアクセスされる項目を活性化レコード
の基底の近傍に記憶すれば、RISCプロセッサにおけ
る命令はただ1つで済む可能性が高い。
【0015】本発明のまた別の局面は一時的局所性に関
するもので、計測手段を与えてプログラムを予備的に実
行させ、その結果を基に、どんな変数がどのような順序
でアクセスされるべきか決定する。本発明は、変数のす
べてを表すグラフを構築する。グラフは、変数相互の直
前または直後に各変数がアクセスされる回数によって加
重される。時間的に互いに接近して一時的にアクセスさ
れる変数が同一のキャッシュ線上に割り当てられるよう
な順序形態で変数が配置される。1つの変数をサービス
するキャッシュ線がキャッシュに持ち込まれる時、次に
アクセスされるべき変数も、同一のキャッシュ線に割り
当てられているので、そのキャッシュに自動的に持ち込
まれる。従って、追加のキャッシュ線を取り出す必要性
が大幅に減少する。本発明の更に別の局面は、ヒープ割
り当てされる静的定義データに関連する静的持続記憶を
提供する。
【0016】本発明は、発明の課題を解決する手段とし
て、コード生成機構において自動変数の記憶域割り付け
を行う装置を含む。該装置は、型を宣言する手段、上記
自動変数を含む記憶域エンティティに上記型の1つを結
合して型結合記憶域エンティティを作成する手段、変数
記憶域エンティティを参照することによって変数記憶域
への読み書きを可能にする手段、を備え、特定言語に依
存しないコード中間表現を使用して記憶域割り付けを実
行する。
【0017】
【発明の実施の形態】図1は、プロセッサ・キャッシュ
を含むユニプロセッサ・コンピュータのアーキテクチャ
10を示すブロック図である。図1において、プロセッ
サ11は、システム・バス15と交信するキャッシュ1
2を含む。また、システム・メモリ13および1つまた
は複数の入出力装置14がシステム・バスと交信する。
【0018】図2は、コンパイラ30構成の機能の概要
を示す図である。C31、フォートラン32およびパス
カル33のような言語における種々のフロント・エンド
が同じバックエンド36とインターフェースする。(集
合的に符号34で表されている)フロントエンドは、バ
ックエンドによって使用される機械独立的中間表示(int
ermediate representationの頭文字をとって以下IRと
略称する場合がある)を生成する。バックエンド36が
コード生成機構37を使用して、IR35をマシン・コ
ード38に変換し、変換されたマシン・コードがリンク
およびロードの後コンピュータ10上で実行される。こ
の一般的モデルにおいて、IRは、現在時活性化レコー
ドのあらかじめ定義された位置からのオフセットをアク
セスすることによって(局所変数としても知られる)自動
変数の読み書きを可能にする。このような方法は、しば
しばSP基準アクセス(すなわちスタック・ポインタ基
底からのオフセットによるアクセス)と呼ばれる。
【0019】図2は、コード生成機構において、低水準
RISCコード、すなわちRISC型プロセッサによっ
て実行されるコードが生成される様態を示している。コ
ード生成機構は、コードを取り出し、コード生成機構が
コードを理解するのに役立つ補助データ構造を生成し、
次に、最適化された最終的命令ストリームが目標プロセ
ッサ・アーキテクチャ上で可能な限り迅速に実行するよ
うにコードの変換またはコードの修正を開始する。
【0020】本明細書に記述されるコード生成機構は、
(本発明の好ましい実施形態においては、米国カリフォ
ルニア州パロアルト所在のヒューレット・パッカード社
によって所有されるPA−RISCアーキテクチャであ
る)特定のRISCアーキテクチャの固有の特性を理解
する機械依存型最適化プログラムを用いて実施されてい
る。本発明が特定のコード生成機構との関連をもって記
述されてはいるが、本発明が、ソース・コード・レベル
においてソース・コードを見るプリプロセッサ例えば高
水準最適化プログラムとしても容易に適用できることは
認められるべきである。しかし、そのようなアプリケー
ションが機械固有のコード生成機構のための特定のコー
ド・シーケンスに限定されるので、バックエンド・コー
ド生成機構において本発明を実施する方が一般的には望
ましい。本発明のコード生成機構は、本明細書が教示す
る各種強化を適用するのが有益である場合また適用しな
い方が有益である場合について適切な知識を持つものと
みなされる。
【0021】本発明が特定言語から独立した技術を提供
することを可能にするため、標準的に認められている自
動変数の記憶領域割り付けの位置を変更することが先ず
必要である。このタスクは、典型的にはフロントエンド
によって実行されるが、本発明は、コード生成機構の段
階までこの操作を延期する手段を提供する。図3は、本
発明に従って中間表示IRを拡大させる様態を示してい
る。IR35は次のように拡大されなければならない。 1. 変数の型の記述を可能にするようにIRを拡大す
る。型情報は、変数のサイズおよびその他の特性を含
む。これは、IRにおける型の宣言(ステップ41)と呼
ばれる。 2. (変数などの)記憶域エンティティすなわち記憶域項
目が既に宣言された一定の型を持つことを示す手段を提
供するようにIRを拡大する。これは、記憶域項目に対
する型の結合(ステップ42)と呼ばれる。この結果、今
や、変数は、型結合記憶域項目である。 3. SPに対する位置ではなく記憶域項目を参照するこ
とによって変数が読み書きされる(ステップ43)ように
IRを拡大する。一旦IR拡大が実施されれば、記憶領
域割り付け(ステップ44)は、フロントエンド34では
なくコード生成機構37によって実行することが可能と
なる。これによって、IR35を生成するあらゆるフロ
ントエンドが同じ利益を享受することが可能になり、I
Rは、言語独立的となる(各フロントエンドが異なるソ
ース言語コードを同じIRに変換する)。
【0022】図4は、本発明に従った、サイズに基づく
最適記憶領域割り付け44を示している。今や、記憶領
域割り付けの責任は、コード生成機構37にある。コー
ド生成機構は、すべての型結合記憶域項目を収集して
(ステップ51)、それらをサイズに基づいてソートする
(ステップ52)。型によって定まるものであるが、最小
サイズを持つ記憶域項目が先頭にソートされ、最大サイ
ズの記憶域項目が末尾にソートされる。サイズに基づく
割り付けアルゴリズムは次の通りである。 BEGIN(開始):割り当てられるべき項目がなお存在する場
合、以下を実行: a. そのサイズの記憶域項目がなくなる(ステップ53)
まで、 最小サイズを持つ記憶域項目を割り付ける(ステ
ップ52)。 b. 次に最も小さいサイズの項目を選択する(ステップ
54)。 c. BEGINへ戻る。
【0023】記憶領域割り付けがコード生成機構で行わ
れる時、最も小さい記憶域項目が、活性化レコードの基
底アドレスにできる限り近い位置に割り当てられ、最も
大きい記憶域項目が、活性化レコードの基底アドレスか
ら最も離れている位置に割り当てられる。その結果、活
性化レコードの基底アドレスからの記憶域項目すべての
オフセット値の総和が最小に保たれる。これによって以
下のような多数の利点が生まれる。
【0024】1. アクセスあたりの命令数の減少 RISCアーキテクチャにおいては、BASE_REGISTER+OF
FSETアクセスを復号する命令は、アドレス範囲(すなわ
ち命令において復号されることができるオフセットの許
容サイズ)が限られている。例えば、PA−RISCに
おいては、このオフセットは、14ビット(214=16
384)に限られている。従って、基底レジスタの値か
ら16384記憶単位(バイト)以上離れている変数はい
ずれも1つの命令でアクセスすることができない。この
サイズ制限の範囲内に置かれる記憶域項目の数を増加さ
せることによって、一層多数の記憶域項目を単一のRI
SC命令でアクセスすることができる。これによって、
すべての記憶域項目をアクセスするために必要なすべて
の命令の総和が減り、処理速度が向上し、実行プログラ
ム・サイズが減少する。
【0025】2. 局所的記憶領域(従って活性化レコー
ド)の大きさの減少 一般的に、所与の型の記憶域項目は、アラインメント制
約を持つ。例えば、サイズが32ビットの型の記憶域項
目は32ビット境界の記憶位置に割り付けられ(4バイ
ト・アライメントとも呼ばれる)、また、16ビット・
記憶域項目は16ビット境界(2バイト・アライメント)
に、64ビット・記憶域項目は64ビット境界(8バイ
ト・アライメント)に、それぞれ割り付けられねばなら
ない。記憶領域割り付けの間に、次の使用可能バイト位
置が記憶域項目の型の要求に合わない場合、埋め込みビ
ットが埋められる。この埋込みは無駄な、使われない空
間である。
【0026】サイズに基づいて記憶域項目をソートする
ことによって、同じアラインメント要求を持つ記憶域項
目が相互に隣接するように割り付けられ、そのため埋込
みの必要性は大幅に減少する。この結果、埋込みによっ
て無駄になる記憶空間量が減少し、従って、スタック・
フレーム全体のサイズが減少する。スタック・フレーム
・サイズが減少すれば、一層多くの記憶域項目が上述の
アドレス範囲内に入ることが可能になり、すべての記憶
域項目をアクセスするために必要とされる命令の総和が
減少し(アクセス当たりの命令数が減少し)、また、動的
に割り当てされるスタック・フレームの数が増加し、各
スタック・フレームのサイズの減少によって動的実行時
ネスト数の最大値が増加する。
【0027】事例:本例における型サイズおよびアライ
メント制約は次の表1の通りである。
【0028】
【表1】 サイズ アライメント制約 char 1バイト 少なくとも1バイトにアライメントされること short 2バイト 少なくとも2バイトにアライメントされること int 4バイト 少なくとも4バイトにアライメントされること
【0029】
【表2】 procedure() { char c1; int i1; char c2; short s1; }
【0030】標準的記憶領域割り付け技術は、次の表3
のように、宣言の順序で割り付けるので、結果として、
割り付けられる型の制約のため不必要な埋込みが行われ
る。
【0031】
【表3】 offset 0: c1 offset 1: <埋め込み> offset 2: <埋め込み> offset 3: <埋め込み> offset 4: i1 offset 5: i1 offset 6: i1 offset 7: i1 offset 8: c2 offset 9: <埋め込み> offset 10: s1 offset 11: s1
【0032】上記局所記憶領域を表するために必要とさ
れる12バイトのうち4バイトが無駄な埋み込みであ
る。各記憶域項目に関する基底局所記憶領域ポインタか
らの平均オフセット(offset)は、(0+4+8+10)/
4=5.5バイトである。
【0033】次の表4は、上述のサイズに基づく割り付
けアルゴリズムを使用した割り付けである。
【0034】
【表4】 offset 0: c1 offset 1: c2 offset 2: s1 offset 3: s1 offset 4: i1 offset 5: i1 offset 6: i1 offset 7: i1
【0035】この例はわずかに8バイトだけが必要とさ
れ、無駄なバイトは1つもない。各記憶域項目に関する
平均オフセットは、(0+1+2+4)/4=1.75バ
イトであり、従来技術の方法の5.5バイトに比較して
顕著な改善である。
【0036】ユーザ宣言の順序に基づく記憶領域割り付
けという従来技術の方法は、本発明によって提供される
改善の観点からもはや必要ではないので、以下、その他
の最適化基準のいくつかの使用を考察する。これらの各
々はそれぞれ異なる利点を持ち、ユーザはコンパイル時
オプションの使用によってそれぞれを使用することがで
きる。
【0037】1. 最小局所記憶領域(アラインメントに
基づくソート) 図5は、本発明に従ったアラインメントに基づく割り付
け方法を示す流れ図である。アラインメントは記憶領域
割り付けを実行する時に考慮されるポイントである。ま
た、アラインメント制約のために必要とされる埋め込み
の付加を除去することによって、全スタック・フレーム
・サイズが減少する。自動変数のために使用されるスタ
ック・フレームの部分は、局所的記憶領域と呼ばれる。
相対的に大きいアラインメント制約を持つ記憶域項目を
先ず割り当て、次に小さいアライメント制約を持つ項目
で埋め込み穴を埋めることによって、局所的記憶領域の
サイズを最小限に保つことができる。これは、サイズに
基づく割り当ての実行と相反するものである。従って、
上述のソート・アルゴリズムは次のように修正される。
【0038】アラインメントに基づく割り付けアルゴリ
ズム BEGIN:割り付けられるべき項目がなおある場合(ステッ
プ60)、以下を実行: a. 次の記憶域項目を割り付けるため埋め込み穴が必要
とされるまで、最大アライメント制約を持つ記憶域項目
を割り付ける(ステップ62) b. 埋め込み穴が必要とされる時、次の使用可能アドレ
スに割り付けできる最大アライメント制約を持つ項目を
特定する(ステップ63)。 c. その項目を割り付ける(ステップ64)。 d. BEGINへ戻る。
【0039】2. アクセス数考慮 図6は、本発明に従ったプロファイルに基づく最適化方
法の流れ図である。プロファイルに基づく方法は、プロ
グラムに計測手段を与え、プログラム行動様態に関する
動的情報を収集しながらプログラムが予備的に実行する
ことを可能にさせる。プログラムはこの新しい情報を用
いて再コンパイルされる。このプロファイル型最適化ア
プローチでは、最も頻繁にアクセスされる記憶域項目を
局所記憶領域の基底アドレスに最も近い位置に割り付け
ることによって記憶領域割り付けが行われる。このアプ
ローチの目標は、記憶域項目に対するアクセスの最大数
が最も少ない命令で実行されることを保証することであ
る。プロファイル作成のための予備的実行の間にほとん
どアクセスされない記憶域項目は、基底アドレスから最
も離れた位置に割り付けられ、上述のアドレス範囲の制
約のため付加的命令が必要となる可能性がある。
【0040】アクセス数アルゴリズム PRELIMINARY(予備段階): a. プロファイルに基づく計測の仕組みを与えてプログ
ラムをコンパイルする(ステップ100)。 b. 共通使用を表す入力ストリーム(テスト・データ)を
用いて、上記コンパイルされたプログラムを実行する
(ステップ101)。各記憶域項目に対する総アクセス数
を記録する(ステップ102)。 c. 収集したアクセス行動様態を使用してプログラムを
再コンパイルする。 BEGIN:割り付けるべき項目がある(ステップ104)間、
以下を実行する: d. 計測ランの間に最大アクセス数を記録した項目を特
定する(ステップ105)。 e. その項目を次に使用可能な位置(すなわち局所記憶
領域の基底アドレスに最も近い使用可能位置)に割り付
ける(ステップ106) f. BEGINへ戻る。
【0041】3. 一時的局地性考慮(キャッシュ線考慮) 図7は、本発明に従った一時的局所性アルゴリズムを示
す流れ図である。この技術の目標は、一時的に近接して
すなわち時間的に互いに近接してアクセスされる記憶域
項目を同一キャッシュ線上に割り付けることによって、
キャッシュ・ヒット率を向上させることである。次々と
連続してアクセスされる記憶域項目が同一キャッシュ線
上に位置づけられているので、この方法はキャッシュ・
ヒット率を向上させる。
【0042】このアプローチはグラフを活用する。当該
グラフにおいて、各記憶域項目はノードとして表され、
各ノードの間の辺が、その前後の記憶域項目との直前ま
たは直後にアクセスされた回数を示す値を持つ。すなわ
ち、グラフは一時的局所性の大きさを表現する。次に、
このグラフに基づいて、最大の一時的局所性を持つ記憶
域項目が同一キャッシュ線上に割り付けられる。記憶空
間キャッシュ先取り手法がコンパイラに組み込まれる場
合、このアルゴリズムの利点は増幅する。記憶空間キャ
ッシュ先取り手法は、取り出されつつある現在時キャッ
シュ線にすぐ続く1つまたは複数のキャッシュ線をメモ
りから取り出す技術である。
【0043】アレイまたはマトリックスのアクセス局地
性ではなく、変数(記憶域項目)間の一時的局地性情報を
使用してアプリケーション処理性能を向上させる技術は
以下の記述の通りである。以下は、記憶域割り付けを実
行する場合に一時的局地性を考慮するアルゴリズムの一
例である。これは、商用コンパイラにおいて効率的に実
行することができる低複雑性オーバーヘッド・アルゴリ
ズム(N logN)である。アルゴリズムは、最適な一時的局
所性を提供するように意図されてなく、単に最適化され
た一時的局地性を提供するだけである。
【0044】一時的局所性アルゴリズム PRELIMINARY(予備段階): a. 当該アーキテクチャのキャッシュ線サイズの倍数の
境界制約に基づいて各スタック・フレームが割り当てら
れていることを確認する(ステップ120)。これは、割
り付け機構が自動変数をキャッシュ線境界内に静的に割
り付けることを可能にするために必要である。 b. 共通使用を表す入力ストリーム(テスト・データ)を
用いて、計測仕組みを組み入れられたプログラムを実行
する(ステップ121)。プログラムの実行とともに上記
のような重みを持つグラフを作成する(ステップ12
2)。各記憶域項目がアクセスされる都度、グラフの該
当する辺に1を加える(ステップ123)。そのノードの
両側が現在時記憶域項目および最後にアクセスされた項
目を表す辺が選択される。各ノードを未割り付けとして
マークする(ステップ124)。 c. 上記ステップbで収集したアクセス行動様態を用い
てプログラムを再コンパイルする(ステップ125)。 BEGIN:割り付けされるべき項目がなお存在する(ステッ
プ126)限り、以下を実行する: d. 最も大きい重みを持つ辺を特定する(ステップ12
7)。その辺の両側のノードをノード1およびノード2
とする。 e. ノード1およびノード2が割り付け済とマークされ
ていれば(ステップ128)、その辺をグラフから消去し
(ステップ138)、BEGINへ戻る。割り付けされていな
ければ、fへ進む。 f. 片方のノードが割り付け済で他方が未割り付けとマ
ークされていれば(ステップ129)、未割り付けとマー
クされているノードを次の使用可能位置に割り付け、そ
のノードを割り付け済とマークして(ステップ130)、
MERGEへ進む。両方が未割り付けであれば、gへ進む。 g. 2つの未割り付け記憶域項目を次の使用可能位置に
割り付け、それらを割り付け済とマークして(ステップ
131)、MERGEへ進む。 MERGE:ここまでのステップで割り付けられた2つの記憶
域項目を1つにマージする。 h. ノード1およびノード2の結合を表す新しいノード
を作成する(132)。この新しいノードをNode.Newと呼
ぶ。Node.Newを割り付け済とマークする。 i. グラフの中でノード1が一方の側にあるすべての辺
について、 i.1)その辺の他方のノードをNode.Otherと呼ぶ。 i.2)Node.NewとNode.Otherの間に新しい辺を作成す
る。その重みは初期的にノード1とNode.Otherとの間の
辺の重みを与える。 i.3)ノード2とNode.Otherの間の辺があれば、その重
みをNode.NewとNode.Otherの間の辺に加える。 i.4)ノード1とNode.Otherの間の辺を削除する。 i.5)ノード2とNode.Otherの間の辺があればそれを削
除する。 j. ノード1をグラフから削除する(ステップ135)。 k. 一方にノード2をもつすべての辺について下記を実
行する(ステップ136)。 k.1)この辺のもう一方のその他のノードをNode.Other
と呼ぶ。 k.2)Node.NewとNode.Otherの間の辺を作成する。この
辺の重みにはノード2とNode.Otherの間の辺の重みを与
える。 k.3)ノード2とNode.Otherの間の辺をグラフから削除
する。 l. ノード2をグラフから削除する。 m. BEGINへ戻る。
【0045】本発明は、また、静的に定義されるデータ
(すなわちヒープ割り付け)にも適用できる。バックエン
ドは、データ・ポインタからのオフセットに基づいて静
的なデータを配置する。この割り付けは、自動変数に関
して上述したものと同じ方法で実行される。この結果、
必要ヒープ空間が減少し、上述のプロファイルに基づく
技術によって提供される参照アクセス・カウントを用い
た場合と同様なキャッシュ・ヒット率向上を実現するこ
とができる。
【0046】以上、本発明は好ましい実施形態を用いて
記述されたが、本発明の精神および有効範囲を逸脱する
ことなくその他の応用が可能である点は当業者によって
認められることであろう。
【0047】本発明には、例として次のような実施様態
が含まれる。 (1)コード生成機構において自動変数の記憶域割り付
けを行う装置であって、型を宣言する手段と、上記自動
変数を含む記憶域エンティティに上記型の1つを結合し
て型結合記憶域エンティティを作成する手段と、変数記
憶域エンティティを参照することによって変数記憶域へ
の読み書きを可能にする手段と、を備え、特定言語に依
存しないコード中間表現を使用して記憶域割り付けを実
行する、記憶域割り付け装置。 (2)上記型結合記憶域エンティティを収集する手段
と、最小サイズの記憶エンティティが先頭にまた最大サ
イズの記憶エンティティが末尾に置かれるように、上記
型結合記憶域エンティティをそのサイズでソートする手
段と、を更に備える、上記(1)に記載の記憶域割り付
け装置。 (3)最小のサイズを持つ記憶域エンティティの記憶域
割り付けをそのサイズの記憶エンティティがなくなるま
で実行する手段と、次に最も小さいサイズの記憶域エン
ティティを選択する手段と、を更に備え、最小サイズの
記憶域エンティティが活性化レコードの基底アドレスに
最も隣接した位置に割り付けられ、最大サイズの記憶域
エンティティが上記活性化レコードの基底アドレスから
最も離れた位置に割り付けられ、その結果すべての記憶
域エンティティの上記基底アドレスからのオフセット値
の総和が最小に保たれる、上記(1)および(2)に記
載の記憶域割り付け装置。 (4)最大のアライメント制約を持つ記憶域エンティテ
ィに対する記憶域割り付けを、次の記憶域エンティティ
に対する割り付けを行うために埋め込み穴が必要となる
まで、実行する手段と、上記埋め込み穴が必要となった
時次に使用可能なアドレスに割り付けできる最大のアラ
イメント制約を持つ記憶域エンティティを特定する手段
と、上記特定した最大のアライメント制約を持つ記憶域
エンティティに記憶域を割り付ける手段と、を更に備え
る上記(1)、(2)または(3)に記載の記憶域割り
付け装置。 (5)データ・ポイントからのオフセットに基づいて静
的データを配置する手段を更に備える、上記(1)、
(2)、(3)または(4)に記載の記憶域割り付け装
置。
【0048】(6)記憶域エンティティに対する最大ア
クセス回数が最小数の命令で実行されることが保証され
るように局所領域の基底アドレスに最も隣接した位置に
最も頻繁にアクセスされる記憶域エンティティを割り付
ける装置であって、プロファイルに基づく計測の仕組み
が組み入れられようにプログラムをコンパイルするコン
パイラと、共通使用を表す入力ストリームを用いて上記
コンパイルされたプログラムを実行するプロセッサと、
各記憶域エンティティに対するアクセス総回数を記録す
るメモリと、を備え、上記プログラムの実行の間に収集
されたアクセス様態を使用して上記コンパイラが上記プ
ログラムを再コンパイルする、記憶域割り付け装置。 (7)データ・ポイントからのオフセットに基づいて静
的データを配置する手段を更に備える、上記(6)に記
載の記憶域割り付け装置。 (8)上記プログラムの実行の間のアクセス回数が最大
の記憶域エンティティを特定する手段と、上記特定した
記憶域エンティティに、局所領域基底アドレスに最も近
接した次に使用可能な記憶位置を割り付ける手段と、を
更に備える上記(6)および(7)に記載の記憶域割り
付け装置。
【0049】(9)互いに時間的に接近してアクセスさ
れる記憶域エンティティを同一キャッシュ線上に割り付
けることによってキャッシュ・ヒット率を向上させる記
憶域割り付け装置であって、一時的局所性の大きさを表
すため各記憶域エンティティがノードとして示されるグ
ラフを作成して、2つのノードの間の辺に、一方のノー
ドのアクセスの直後に別の一方のノードがアクセスされ
た回数の累計を表す値を持たせる手段と、最大の一時的
局所性を持つ記憶エンティテイを同一キャッシュ線上に
割り付ける手段と、を備える記憶域割り付け装置。 (10)キャッシュの読み出しをキャッシュ線の単位で
逐次行う、上記(9)に記載の記憶域割り付け装置。 (11)自動変数が上記キャッシュ線上に静的に割り付
けられるように、当該アーキテクチャのキャッシュ線サ
イズの倍数の境界制約内にスタック・フレームの各々を
割り付ける手段を、更に備える上記(9)および(1
0)に記載の記憶域割り付け装置。 (12)共通使用を表す入力ストリームを用いて、プロ
ファイルに基づく計測の仕組みが組み入れられようにコ
ンパイルされたプログラムを実行するプロセッサと、上
記プログラムの実行と共に上記グラフを作成する手段
と、各記憶域エンティティがアクセスされる毎に上記グ
ラフの該当する辺に1を加算して、上記辺の一方のノー
ドが現在時記憶域エンティティを表し他方が最後にアク
セスされた記憶域エンティティを表す辺であることを判
断する手段と、すべてのノードを未割り付けノードとマ
ークする手段と、上記プログラムの実行の間に収集され
たアクセス様態を使用して上記プログラムを再コンパイ
ルするコンパイラと、を更に備える上記(9)、(1
0)または(11)に記載の記憶域割り付け装置。
【0050】(13)上記辺の中から最大値を持つ辺を
特定する手段と、上記特定した辺の両側のノードをノー
ド1およびノード2と命名する手段と、上記ノード1お
よびノード2が共に割り付け済とマークされていればそ
の辺をグラフから消去する手段と、片方のノードが割り
付け済で他方が未割り付けとマークされていれば、未割
り付けとマークされているノードを次の使用可能位置に
割り付け、そのノードを割り付け済とマークする手段
と、を更に備える上記(9)、(10)、(11)また
は(12)に記載の記憶域割り付け装置。 (14)上記ノード1およびノード2によって表される
上記2つの記憶域エンティティを次の使用可能位置に割
り付け、それらノードを割り付け済とマークする手段
と、を更に備える上記(9)、(10)、(11)、
(12)または(13)に記載の記憶域割り付け装置。 (15)ノード1およびノード2の結合を表す新しいノ
ードすなわちNode.Newを作成する手段と、上記Node.New
を割り付け済とマークする手段と、上記グラフの中でノ
ード1が一方の側にあるすべての辺について、当該辺の
他方のノードをNode.Otherと命名し、Node.NewとNode.O
therの間に新しい辺を作成し、その辺の初期的大きさに
ノード1とNode.Otherとの間の辺の大きさを割り当て、
ノード2とNode.Otherの間の辺があれば、その辺の大き
さをNode.NewとNode.Otherの間の辺に加算し、ノード1
とNode.Otherの間の上記辺を削除し、ノード2とNode.O
therの間の辺があればそれを削除する手段と、ノード1
を上記グラフから削除する手段と、一方にノード2をも
つすべての辺について、当該辺のもう一方のその他のノ
ードをNode.Otherと命名し、Node.NewとNode.Otherの間
の新しい辺を作成し、この辺の大きさにノード2とNod
e.Otherの間の辺の大きさを割り当て、ノード2とNode.
Otherの間の辺を上記グラフから削除する手段と、ノー
ド2を上記グラフから削除する手段と、を更に備える上
記(9)、(10)、(11)、(12)、(13)ま
たは(14)に記載の記憶域割り付け装置。
【0051】
【発明の効果】本発明によって、プログラム実行コード
生成段階において、一層小さいスタック・フレームすな
わち活性化レコード、一層少ないヒープ空間すなわち静
的データ記憶域、空間局所性の改善による変数アクセス
時間の向上、およびキャッシュ・ヒット率の向上が実現
し、そのためプログラム実行性能の向上および必要記憶
域の節減という顕著な効果が奏される。
【図面の簡単な説明】
【図1】プロセッサ・キャッシュを含むユニプロセッサ
・コンピュータ・アーキテクチャを示すブロック図であ
る。
【図2】例えば図1で示されたコンピュータ・アーキテ
クチャと連係して使用される可能性のあるソフトウェア
・コンパイラを示すブロック図である。
【図3】本発明に従って中間表示が拡大される様態を示
すブロック図である。
【図4】本発明に従ったサイズに基づく最適記憶域割り
付けを示す流れ図である。
【図5】本発明に従ったアライメントに基づく最適記憶
域割り付けを示す流れ図である。
【図6】本発明に従ったプロファイルに基づく最適記憶
域割り付けを示す流れ図である。
【図7】本発明の一時的局所性アルゴリズムを示す流れ
図である。
【図8】図7の続きとして、本発明の一時的局所性アル
ゴリズムを示す流れ図である。
【符号の説明】
10 ユニプロセッサ・コンピュータ 11 プロセッサ 12 キャッシュ 13 メモリ 14 入出力 15 システム・バス 31 C 32 フォートラン 33 パスカル 34 フロントエンド 35 中間表現(IR) 36 バックエンド 37 コード生成機構 38 機械コード

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】コード生成機構において自動変数の記憶域
    割り付けを行う装置であって、 型を宣言する手段と、 上記自動変数を含む記憶域エンティティに上記型の1つ
    を結合して型結合記憶域エンティティを作成する手段
    と、 変数記憶域エンティティを参照することによって変数記
    憶域への読み書きを可能にする手段と、 を備え、 特定言語に依存しないコード中間表現を使用して記憶域
    割り付けを実行する、 記憶域割り付け装置。
JP8330111A 1996-01-23 1996-12-11 記憶域割り付け装置 Withdrawn JPH09212369A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US589,907 1996-01-23
US08/589,907 US5940621A (en) 1996-01-23 1996-01-23 Language independent optimal size-based storage allocation

Publications (1)

Publication Number Publication Date
JPH09212369A true JPH09212369A (ja) 1997-08-15

Family

ID=24360046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8330111A Withdrawn JPH09212369A (ja) 1996-01-23 1996-12-11 記憶域割り付け装置

Country Status (2)

Country Link
US (1) US5940621A (ja)
JP (1) JPH09212369A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322315A (ja) * 1999-04-23 2000-11-24 Internatl Business Mach Corp <Ibm> データを管理する方法及び装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6059840A (en) * 1997-03-17 2000-05-09 Motorola, Inc. Automatic scheduling of instructions to reduce code size
US6240500B1 (en) * 1998-06-08 2001-05-29 Compaq Computer Corporation Method for dynamically placing procedures of a program in a memory
US6134710A (en) * 1998-06-26 2000-10-17 International Business Machines Corp. Adaptive method and system to minimize the effect of long cache misses
US6662274B2 (en) * 2001-06-20 2003-12-09 Intel Corporation Method for using cache prefetch feature to improve garbage collection algorithm
US7299467B2 (en) * 2002-12-23 2007-11-20 Hewlett-Packard Development Company, L.P. Method and system for minimizing memory access latency in a computer system
US7340493B2 (en) 2003-07-02 2008-03-04 International Business Machines Corporation System and method for reducing memory leaks in virtual machine programs
US7185326B2 (en) * 2003-07-30 2007-02-27 Hewlett-Packard Development Company, L.P. Automatically reordering variables as a part of compiling and linking source code
US8200869B2 (en) * 2006-02-07 2012-06-12 Seagate Technology Llc Storage system with alterable background behaviors
GB0911099D0 (en) * 2009-06-26 2009-08-12 Codeplay Software Ltd Processing method
US8458677B2 (en) * 2009-08-20 2013-06-04 International Business Machines Corporation Generating code adapted for interlinking legacy scalar code and extended vector code
US8479055B2 (en) 2010-05-16 2013-07-02 International Business Machines Corporation Detecting and optimizing false sharing
US8819382B2 (en) 2012-08-09 2014-08-26 Apple Inc. Split heap garbage collection
US9213531B2 (en) * 2014-05-01 2015-12-15 Google Inc. Methods to eliminate extra memory loads while accessing global variables in position independent code
US10324741B2 (en) * 2014-08-30 2019-06-18 Oracle International Corporation Speeding up dynamic language execution on a virtual machine with type speculation
US10515430B2 (en) * 2015-11-03 2019-12-24 International Business Machines Corporation Allocating device buffer on GPGPU for an object with metadata using access boundary alignment
CN115543350A (zh) * 2021-06-30 2022-12-30 华为技术有限公司 一种编译优化方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4310883A (en) * 1978-02-13 1982-01-12 International Business Machines Corporation Method and apparatus for assigning data sets to virtual volumes in a mass store
JPS58203558A (ja) * 1982-05-21 1983-11-28 Hitachi Ltd 計算機・記憶装置へのフアイル割り当て方式
DE3688136T2 (de) * 1986-04-04 1993-10-07 Ibm Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.
GB8613069D0 (en) * 1986-05-29 1986-07-02 Univ Manchester Parallel storage allocation
US5247600A (en) * 1990-01-03 1993-09-21 Williams Charles M Fiber optic data/graphic display screen
US5367637A (en) * 1992-03-26 1994-11-22 International Business Machines Corporation Self-tuning virtual storage management for dedicated real-time computer system
US5347540A (en) * 1992-07-08 1994-09-13 Tektronix, Inc. Dynamic storage allocation in a logic analyzer
US5452457A (en) * 1993-01-29 1995-09-19 International Business Machines Corporation Program construct and methods/systems for optimizing assembled code for execution
US5537573A (en) * 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
JPH06348595A (ja) * 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322315A (ja) * 1999-04-23 2000-11-24 Internatl Business Mach Corp <Ibm> データを管理する方法及び装置

Also Published As

Publication number Publication date
US5940621A (en) 1999-08-17

Similar Documents

Publication Publication Date Title
KR100384905B1 (ko) 컴퓨터 메모리에서 데이터 관리 방법, 장치 및 기록매체
US7500077B2 (en) Use of region-oriented memory profiling to detect heap fragmentation and sparse memory utilization
JPH09212369A (ja) 記憶域割り付け装置
US5815720A (en) Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system
US6434663B1 (en) Disk block allocation optimization methodology with accommodation for file system cluster size greater than operating system memory page size
US7210133B2 (en) Program code conversion
US7992141B2 (en) Method and apparatus for building executable computer programs using compiled program libraries
US6049667A (en) Computer system, method of compiling and method of accessing address space with pointer of different width therefrom
US6363522B1 (en) Method and apparatus for handling exceptions as normal control flow
US7089389B2 (en) System and method for the discovery and use of repetitively accessed data
US20060048114A1 (en) Method and apparatus for dynamic compilation of selective code blocks of computer programming code to different memory locations
US7036118B1 (en) System for executing computer programs on a limited-memory computing machine
WO1984002013A1 (en) Adaptive domain partitioning of cache memory space
US20040003377A1 (en) Converting byte code instructions to a new instruction set
US7386843B2 (en) Method and system for register allocation
US8056061B2 (en) Data processing device and method using predesignated register
US6609249B2 (en) Determining maximum number of live registers by recording relevant events of the execution of a computer program
US6829760B1 (en) Runtime symbol table for computer programs
US7086044B2 (en) Method, article of manufacture and apparatus for performing automatic intermodule call linkage optimization
US20070300210A1 (en) Compiling device, list vector area assignment optimization method, and computer-readable recording medium having compiler program recorded thereon
US7356812B2 (en) Passing parameters by implicit reference
US20040205320A1 (en) Method and apparatus for refining an alias set of address taken variables
US6253296B1 (en) Disk block allocation optimization methodology and applications
JP2000353097A (ja) 低密回の干渉グラフを生成する方法および装置
JP3264901B2 (ja) コンパイル装置及びコンパイル方法

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060320