JPH03282734A - コンパイラ装置及びコンパイル方法 - Google Patents

コンパイラ装置及びコンパイル方法

Info

Publication number
JPH03282734A
JPH03282734A JP2081110A JP8111090A JPH03282734A JP H03282734 A JPH03282734 A JP H03282734A JP 2081110 A JP2081110 A JP 2081110A JP 8111090 A JP8111090 A JP 8111090A JP H03282734 A JPH03282734 A JP H03282734A
Authority
JP
Japan
Prior art keywords
instruction
cache
machine language
compiler
processor
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
JP2081110A
Other languages
English (en)
Inventor
Tsukasa Matoba
司 的場
Takeshi Takamiya
健 高宮
Toru Imai
徹 今井
Takeshi Aikawa
健 相川
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2081110A priority Critical patent/JPH03282734A/ja
Publication of JPH03282734A publication Critical patent/JPH03282734A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) この発明は、キャッシュメモリを備えた計算機において
、高級言語で作成されたプログラムを機械語命令に変換
する命令配置最適化コンパイラに関する。
(従来の技術) 計算機において、C,FORTRAN、C0BOL等の
高級言語で作成されたプログラムを前記計算機で実行可
能な機械語命令に変換するコンパイラは、近年著しい発
達を示している。これは、前記計算機の中央演算処理装
置(以下、プロセッサという)の処理速度の向上に寄与
している。この例として例えば、プログラム中で頻繁に
アクセスされるデータは、主記憶装置のみに記憶してお
かずに、レジスタに記憶して使うなどである。これはレ
ジスタアロケーション技術と呼ばれ、どのデータをどの
レジスタに記憶させるかの決定をコンパイラにより行な
うものである。また、コンパイル結果を大域的にチエツ
クして、プログラムの3 無駄を削除する技術などがあげられる。これは、コンパ
イラ結果中に使用されていない変数があればこれを削除
するものである。一方、プロセッサ周辺のハードウェア
として、近年キャッシュメモリが接続されることが一般
的になってきた。これは、プロセッサと主記憶装置間に
高速、小容量のキャッシュメモリを接続する。このため
データのアクセスをプロセッサとキャッシュメモリとで
行なうことができる。その結果、プロセッサと主記憶装
置とのデータのアクセス速度が仮想的に上がる。しかし
、キャッシュメモリには主記憶装置の一部のデータしか
記憶できない。このため、プロセッサが必要とするデー
タがキャッシュメモリに記憶されている場合、つまりキ
ャツシュヒツト時はノンウェイトでデータのアクセスが
できるが、ミス時は、キャッシュメモリと主記憶装置間
でデータの入れ替えが起こるため、通常10サイクル以
上のウェイトサイクルが必要となる。このためコンパイ
ラがどんなに効率化しても計算機全体の効率化にはなら
ないという問題点があった。
これを第8図のブロック図で表わされる計算機で高級言
語プログラムをコンパイラにより機械語命令に変換する
場合を例にとり説明する。第8図のブロック図が示す計
算機は、中央演算処理装置(以下、プロセッサという)
801と主記憶装置802の間にキャッシュメモリ80
3を備える。キャッシュメモリ803は命令キャッシュ
803−1とデータキャッシュ803−2からなる。命
令キャッシュ803−1には命令を記憶している。デー
タキャッシュ803−2にはデータを記憶している。プ
ロセッサ801は、命令キャッシュ803−1とデータ
キャッシュ803−2にアドレスバスを介してアドレス
を供給している。また、プロセッサ801は、命令キャ
ッシュ803−1からデータバスを介してデータを受け
、データキャッシュ803−2とは、データバスを介し
てデータのやりとりを行なっている。 また、主記憶装
置802は、命令キャッシュ803−1からアドレスバ
スを介してアドレスを受け、データバスを介してデータ
を命令キャッシュ803−1に供給する。また主記憶装
置802は、データキャッシュ803−2からアドレス
バスを介してアドレスを受け、データキャッシュ803
−2とはデータバスを介して、データのやりとりを行な
うものである。なお前記計算機の中央演算処理装置80
1(以下、プロセッサという)は、パイプライン処理が
可能なものである。これは命令キャッシュ803−1と
データキャシュ803−2とのアドレス及びデータのや
りとりは独立して行なうことができることによる。パイ
プライン処理とは、命令の処理過程を分割し、各分割処
理毎に別々の制御を行なわせ、あたかも複数の命令の処
理を同時並行的に行なわれているように処理させる方法
である。
前記プロセッサ801の命令は、命令を取り出す処理を
行なう命令フェッチ、この命令フェッチサイ処理を行な
う実行、この実行に用いるデータをロードしたり、実行
結果をストアしたりする処理を行なうメモリアクセスの
4つの処理過程(パイプライン)からなるものとする。
前述したキャッシュメモリ付き計算機において、 プロ
セッサ801が必要とするデータがキャッシュメモリ8
03に記憶されていない場合、キャッシュミスが生じる
。この時でも以下の場合以外はプロセッサ801は処理
を停止しないものとする。
(ト)命令フェッチサイクルで、 プロセッサ801が
命令キャッシュ803−1 からデータを取り込もうと
する際、キャッシュミスを起こしているため、この命令
フェッチサイクルでも命令フェッチミスとなる。つまり
、命令フェッチミスの時でも、そのサイクルで前記パイ
プラインの実行にある命令が複数サイクルかかる場合は
、プロセッサは停止(ウェイト)しない。言い換えれば
、命令フェッチミス中に更に命令フェッチを行なおうと
したときに初めてウェイI−がかかる。
■ 命令キャッシュ803−1、 データキャッシュ8
03−2においてデータロードでミスした時でも、ロー
ドしようとしたデータをプロセッサ801が演算に使用
するまではウェイトしない。
(3)  データロード/ストアでミスした時でも、次
のデータロード/ストアが起こるまではウェイ1−シな
い。
上述した計算機でコンパイラを実行させると、コンパイ
ラは前記レジスタアロケーション技術やプログラムの無
駄を削除する技術等により高級言語プログラムを機械語
命令に変換していく。しかし、従来のコンパイラはキャ
ッシュメモリの存在を考慮していなかった。すなわちキ
ャッシュミスが発生した場合にはキャッシュメモリと主
記憶装置の間のデータの入れ換えを行なっている間はプ
ロセッサは処理を停止していた。このためプロセッサの
停止時間はあまり減少せず、これが計算機全体の高速化
を妨げる原因となっていた。
(発明が解決しようとする課題) 前記問題点は、コンパイラがキャッシュメモリの存在を
考慮していないことに起因する。そこで本発明では、キ
ャッシュメモリの存在を考慮し、具体的には、キャッシ
ュミスの発生を予測し、キャッシュミスの影響を最小限
にするように機械語命令しこ変換するコンパイラの提供
を目的とする。
〔発明の構成〕
− (課題を解決するための手段) 前記目的を達成するために本発明では、中央演算処理装
置と、この中央演算処理装置で用いるプログラムを記憶
する主記憶装置と、前記中央演算処理装置と前記主記憶
装置の間のデータのアクセスを高速化するために前記主
記憶装置のプログラムの一部を記憶するキャッシュメモ
リとからなる計算機において、前記プログラムを前記計
算機で実行できる機械語命令に変換するコンパイル部と
、このコンパイル部による機械語命令の配置を行なう命
令配置最適化部とを備える。
そして、前記命令配置最適化部は、前記キャッシュメモ
リの内容の入れ替えを行なう基本単位を表わすキャッシ
ュラインサイズからキャシュミスの発生サイクルを予測
する。この予測の結果、このキャッシュミスの発生サイ
クルで前記中央演算処理装置が実行中である機械語命令
アドレスに、その実行が複数サイクルを要する命令を配
置する。
つまり、前記命令配置最適化部は、前記コンパイル部か
らの機械語命令を受けとる。すると、前記命令配置最適
化部は、前記キャッシュメモリのキャッシュラインサイ
ズよりキャッシュミスの発生サイクルを予測する。これ
は、前記キャッシュメモリには前記主記憶装置の一部の
データしか記憶できない。この一部のデータとは、主記
憶装置のあらかじめ定められた大きさ(ラインサイズ)
の領域(ライン)のことである。このラインは複数のワ
ードにより構成される。なおワードとは、プロセッサが
アクセスを行なうデータの最小単位である。キャッシュ
メモリは高速な素子で構成されているが小容量であるた
め、通常、前記主記憶装置の一部のデータしか記憶でき
ない。つまり、プロセッサが順次キッシュメモリのデー
タをアクセスする際にキャッシュラインサイズを超える
ワードをアクセスした場合にはキャッシュミスを起こす
。このためキャッシュラインサイズによりどのサイクル
でキャッシュミスが発生するかがわかる。
通常キャッシュミスが発生すると、前記キャッシュメモ
リと前記主記憶装置の間でのデータ転送に要するマシン
サイクル数を表わすキャッシュミスペナルティとして1
0サイクル以上が課せられ、プロセッサはこの間停止し
てしまう。しかし命令配置最適化部は、キャッシュミス
が発生するサイクルがわかっている。このため、命令配
置最適化部は、コンパイル部からの機械語命令の配置を
変える。これは、キャッシュミスの発生サイクルにおい
て、他の命令が実行中であり、かつその実行に複数サイ
クルを要する命令であれば、キャッシュミスによる主記
憶装置からキャッシュメモリへのラインの入れ換えを行
なっている間のプロセッサの停止時間を少なくすること
ができる。つまり、命令配置最適化部は、キャッシュラ
インサイズによりキャッシュミスの発生サイクルを予測
する。
そして、このサイクルで実行中であるような命令の実行
に複数サイクルを要する命令を配置する。
この結果、プロセッサの停止時間が減少するように機械
語命令の配置が決定される。そしてプロセッサの停止時
間が最小限ですむように配置された機械語命令を最適化
機械語命令とする。これは、1− 高級言語で作成されたプログラムを機械語命令に変換し
た結果となる。
(作 用) 上述したように構成された本発明の命令配置最適化コン
パイラによれば、コンパイル部により高級言語で作成さ
れたプログラムを機械語命令に変換する。そして、命令
配置最適化部はこのコンパイル部により機械語命令を、
プロセッサの処理停止時間が最小限になるように配置す
る。なお、この配置を決定するのに、キャッシュサイズ
とキャッシュミスペナルティを用いる。このキャッシュ
ラインサイズはキャッシュミスの発生サイクルを予測す
るのに用いる。キャッシュミスペナルティはどの命令を
配置するかの判断に用いる。
この結果、プロセッサの処理停止時間が最小限になる。
このため、キャッシュメモリを備えた計算機で、高級言
語で作成されたプログラムを機械語命令に変換する際に
、キャッシュミスに起因するプロセッサの処理停止時間
が大幅に減少する。
これはプロセッサの処理速度の低下を大幅に軽減2− できたことになる。
(実施例) 以下、図面を参照しながら本発明の詳細な説明を行なう
第1図は、本発明の構成図である。高級言語プログラム
1は、C,FORTRAN、C0BOL等の高級言語で
作成されたプログラムである。コンパイラ2は前記高級
言語プログラム1を後述する計算機が処理できる機械語
命令に変換するものである。そしてコンパイラ2は後述
するコンパイラ部3及び命令配置最適化部4よりなる。
コンパイル部3は、高級言語プログラム1を機械語命令
に変換するものである。命令配置最適化部4は、前記コ
ンパイル部3を実行させた結果得られる機械語命令の実
行を行なう計算機の中央演算処理装置の停止時間を最小
限にするように機械語命令の配置を変えるものである。
この命令の配置を変えるのにコンパイル部を実行させた
結果得られる機械語命令の実行を行なうキャッシュメモ
リ付き計算機のキャッシュメモリのキャッシュラインサ
イズを用いる。最適化機械語命令5は、前記命令配置最
適化部4で前記中央演算処理装置の停止時間が最小限で
すむように配置が行なわれた機械語命令である。
ここで第8図にコンパイラ2を実行する計算機のブロッ
ク図を示す。ここではコンパイラ2を実行する計算機と
、コンパイラ2を実行した結果得られる最適化機械語命
令5を実行する計算機をともに第8図に示す計算機とし
ている。つまり、第8図に示した計算機でコンパイラ2
を実行して最適機械語命令5を得る。そしてこの最適化
機械語命令5を第8図に示した計算機で行なう。なお、
コンパイラ2を実行する計算機と、最適化機械語命令5
を実行する計算機は別々のものであってもよい。この場
合、最適化機械語命令5を実行する計算機は、コンパイ
ラ2によるコンパイルの過程で機械語命令の配置を最適
化する際の対象計算機としている。つまりコンパイラ2
は最適化機械語命令を実行する計算機のキャッシュライ
ンサイズ及びキャッシュミスペナルティを考慮してコン
パイル部3の機械語命令を前記計算機の中央演算処理装
置の停止時間を最小限にするように配置するものである
以下、第8図の計算機で、本発明による命令配置最適化
コンパイラを実行し、第8図の計算機で機械語命令の実
行を行なう場合について述べる。
今、キャッシュメモリ803のキャッシュサイズを4ワ
ードとし、キャッシュミスペナルティに10サイクルを
要するものと仮に定義すると、キャッシュメモリ803
をアドレスの昇順にプロセッサ801がアクセスした場
合、4ワードごとにキャッシュミスを起こす。キャッシ
ュミスが起こると、主記憶装置802からデータをキャ
ッシュメモリ803に転送する必要がある。それには、
キャッシュミスペナルティの10サイクルの時間がかか
ることになる。
キャッシュミス時のデータ転送は、普通、キャッシュメ
モリ803のラインサイズ毎に行なわれるために、キャ
ッシュミスは4ワード毎に発生することになる。
通常、命令フェッチは、アドレスの昇順に連続5 的に行なわれることが多いので、上記のケースに当ては
まる率が高い。このタイミングチャー1〜を第2図に示
した。第2図において、サイクル2での命令フェッチで
ミスを起こしたとすると、サイクル3でも命令フェッチ
を行なおうとするが、命令キャッシュ803−] がビ
ジー状態になっているため、サイクル13まで待たされ
ることになる。これはキャッシュミスペナルティの10
サイクルでデータの入れ換えを行なっているためである
。この間プロセッサ801は処理を停止している。
しかし、もしサイクル2で命令フェッチを行なわなけれ
ば、プロセッサ801は停止する必要はない。サイクル
2で命令フェッチを行なわない条件は、前記プロセッサ
801の停止条件(ト)よりサイクル1で実行を開始し
た命令が完了しないこと、つまり複数ステップかかって
実行する命令であればよい。第3図に命令キャッシュ8
03−1の2つの連続するラインを示した。これをアド
レスの昇順に命令フェッチしていくとすると、IOとI
4の命令フェッチ時にミスが起こる。これは、各ライン
=16 の先頭のワードでキャッシュミスが起こることを示して
いる。ここではI4での命令フェッチミスについて考え
ると、この命令フェッチミスではプロセッサは停止せず
、その次の工5の命令フェッチを行なうときに停止する
。I5の命令フェッチはその前のサイクルで実行してい
た命令が完了することによって起こる。
これは前記計算機は命令の処理過程を命令フェッチ、デ
コード、実行、メモリアクセスなる4つのパイプライン
で処理している。このため、各処理過程に1サイクルを
要するので、I2で命令フェッチを行なう命令は工3で
デコードされ、工4で実行とする。したがって、工5の
命令フェッチは、I2にある命令のメモリアクセスなる
パイプラインの処理が完了することによって起こる。第
4図にI2の命令が1サイクルで実行可能な場合を示す
。この場合、工4では命令フェッチミスとI3の命令の
実行によりプロセッサ803は停止する。しかしI2に
、実行に複数サイクルかがる命令があれば、I5の命令
フェッチは起こらない。
このため12の実行中にI4の命令フェッチミス、つま
りキャッシュミスによるデータの入れ換えに要するキャ
ッシュミスペナルティを実行することができる。これを
第5図に示す。第5図は工2の命令とI3の命令の配置
を入れ換えた場合の計算機における各サイクルのパイプ
ラインを示している。
つまり、命令配置最適化部4は、キャッシュメモリ80
3の各ラインの先頭を命令フェッチするときに、他の命
令が実行中になるように命令の配置を行なう。これは命
令配置最適化部4がキャッシュメモリ803のキャッシ
ュラインサイズを用いて、どのサイクルでキャッシュミ
スが起こるかを予測することにより可能となる。なお、
この配置に際しては、入れ換えを行なう命令同士が同じ
レジスタを使用していなか等のチエツクを行なう。また
同じライン内で入れ換えが行なえない場合には、他のラ
インの命令と入れ換えることも可能である。
この場合は、各ラインでキャッシュミスが起こることを
考えて、入れ換えた場合しこ全体的に効率がおちないか
等のチエツクを行ない、プロセッサ801の停止時間が
最小となるものを最適化機械語命令5とする。
また、入れ換え可能な命令が複数ある場合、つまり実行
に複数サイクルを要する命令が複数ある場合には、実行
に要するサイクルが多い方を入れ換え対象命令とする。
なお、命令配置最適化部4がキャッシュミスペナルティ
を記憶している場合には、このキャッシュミスペナルテ
ィを入れ換え対象命令の判断基準に用いることもできる
。つまり実行にキャッシュミスペナルティ以上のサイク
ルを要する命令であれば、キャッシュミスによるデータ
の入れ換えを他の命令の実行中に行なうことができるか
らである。
以上はキャッシュミス発生サイクルで実行中である命令
を同じライン、もしくは他のラインにある命令とを入れ
換えることについて述べたが、実行に複数サイクルかか
る命令でなくてもよい。これは実行に1サイクルしかか
からない命令であっても、それらの命令を合成した命令
をキャッシュ19 ミス発生サイクルで実行中であるように配置する。
以下例を用いて命令の入れ換え、合成について述べる。
まず命令の入れ換えについて第6図を用いて説明する。
第6図(a)はコンパイル部3がコンパイルした機械語
命令のキャッシュメモリでのライン概念図である。第6
図(a)に示すように、アドレス0から3までで1ライ
ンを構成し、アドレス4から7までも1ラインを示す。
第6図(a)において、アドレス4でキャッシュミスが
起こる。
これは命令配置最適化部4がキャッシュラインサイズを
記憶していることにより予測できる。このため、命令配
置最適化部4は、アドレス4で実行中であるような命令
がアドレス2にあるかどうかを判断する。 この結果、
今、アドレス2にはsub命令がある。ここでadd命
令、sub命令は実行に1サイクルかかる命令であり、
muQ命令は実行に20サイクルかかる命令であるとす
る。そして、add RO,R1,R2とは、レジスタ
(以下Rという)R1とR2の内容を加算してROに格
納するということを意味している。そして、sub命令
0 は減算を、n+uQ命令は乗算を行なう命令であるとす
る。この場合、アドレス2にsuQ命令がある場合、ア
ドレス4の命令フェッチでプロセッサは停止してしまう
。このため命令配置最適化部4は、まず同じライン内で
命令の実行に複数サイクルを要する命令をさがす。これ
は各命令間のオペランド部分の依存関係を調べることに
より、入れ換え可能な命令を決定する。なおオペランド
部分とは使用するレジスタの定義を行なっている部分で
ある。ここで、実行に複数サイクルを要する命令として
muQ命令を選ぶ。 そして、sub命令とmuQ命令
の使用レジスタも異なるため入れ換え可能となる。
そして、第6図(b)に示すようにsub命令とmu1
2命令を入れかえる。これにより、この機械語命令を実
行した場合、アドレス4でキャッシュミスが生じても、
muIl命令を実行中であるので、命令フェッチをmu
Q命令の実行と同時に行なえる。つまり、第6図(b)
が最適化機械語命令5となる。なお、add、 sub
、 muQ命令の各実行サイクルをそれぞれ1.1..
20サイクルと仮定したが、これらの命令に限定される
ものではない。例えばadd、 sub命令が20サイ
クル、muj2命令が1サイクルそれぞれ実行にかかる
としてもよい。つまり、命令配置最適化部4は、どの命
令を入れ換えに用いるかは実行に要するサイクルで判断
しており、命令の種類によるものではない。
次に、第7図を用いて命令の合成について述べる。第7
図も第6図と同様にコンパイル部3がコンパイルした機
械語命令のキャッシュメモリでのライン概念図である。
今、キャッシュメモリのアドレス0から3までには命令
x、y、z、wが記憶されている。なお、この各命令は
実行に1サイクルを要するものとする。キャッシュメモ
リのアドレス4でキャッシュミスが起こるとした場合、
命令配置最適化4は、命令x、y、z、wを合成して命
令Aとし、これをキャッシュミス発生サイクルで実行中
である命令として配置する。なお例えば命令Aとは、(
(a十b) X (c+d))2なる計算を1度に行な
う関数であり、命令Aは各命令X−a十す、Y=c+d
、Z=AXB、W=C2の集合体である関数等に対応し
ている。この結果、実行に複数サイクルを要する命令と
して第7図(b)のように命令Aが配置される。なお命
令の合成の際には、実行サイクルとして、何サイクルが
必要なのかの情報がなければ、命令配置最適化部4は可
能な限りの合成を行なってしまう。この合成サイクルの
必要サイクルの目安として、命令配置最適化部4はキャ
ッシュミスペナルティを用いる。これにより命令配置最
適化部4は、第7図(b)に示す最適化機械語命令5を
得ることができる。
なお、本発明は上述した実施例に限定されるものではな
い。つまり、キャッシュラインサイズやキャッシュミス
ペナルティは本発明のコンパイラを実行させる計算機に
合わせて変更可能である。
これは、本発明のコンパイラを実行する計算機は、キャ
ッシュメモリを備えていれば、そのキャッシュメモリの
容量等に影響を受けるものではない。
また、キャッシュラインサイズやキャッシュミスペナル
ティは、コンパイル時に計算機からパラメータとして受
は取ってもよいし、コンパイラに組3− み込まれたものであっても構わない。つまり、コンパイ
ル時に命令配置最適化部4がそれらの値がいくつかを把
握できていればよい。
要するに本発明はその主旨を逸脱しない範囲で種々変更
して実施することができる。
〔発明の効果〕
以」二述べたように本発明によれば、キャッシュミス1
こ起因するプロセッサの処理速度の低下を大輪に軽減す
ることができる。しかもこの処理を高級言語プログラム
をコンパイルした後の命令配置処理の段階でラフ1〜的
な手段で実現できる。これは、特別のハードウェアを必
要とするものではないため、コスト増につながることも
ない。
【図面の簡単な説明】
第1図は本発明の構成図、第2図、第4図は従来のコン
パイラから得られた機械語命令のタイミングチャー1〜
、第3図はキャッシュメモリのラインを示した図、第5
図は本発明によるコンパイラから得られた機械語命令の
タイミングチャート、第6図は命令の入れ換えの例を示
した図、第7図4 は命令の合成の例を示した図、第8図は本発明のコンパ
イラを実行させる計算機のブロック図である。 1・・・高級言語プログラム 2・・コンパイラ 3・・・コンパイル部 4・・命令配置最適化部

Claims (4)

    【特許請求の範囲】
  1. (1)中央演算処理装置と、 この中央演算処理装置で用いるプログラムを記憶する主
    記憶装置と、 前記中央演算処理装置と前記主記憶装置の間のアクセス
    を高速化するために前記主記憶装置のプログラムの一部
    を記憶するキャッシュメモリとからなる計算機において
    、 前記プログラムを前記計算機で実行できる機械語命令に
    変換するコンパイル部と、 このコンパイル部による機械語命令の配置を行なう命令
    配置最適化部とを備え、 前記命令配置最適化部は、 前記キャッシュメモリの内容の入れ替えを行なう基本単
    位を表わすキャッシュラインサイズからキャッシュミス
    の発生サイクルを予測し、 このキャッシュミスの発生サイクルで前記中央演算処理
    装置が実行中である機械語命令アドレスにその実行が複
    数サイクルを要する命令を配置することを特徴とする命
    令配置最適化コンパイラ。
  2. (2)前記キャッシュミスの発生サイクルで実行中であ
    る機械語命令は、その機械語命令の実行に要するマシン
    サイクル数が、前記キャッシュメモリのキャッシュミス
    に起因した前記キャッシュメモリと前記主記憶装置の間
    でのデータ転送によるマシンサイクル数を表わすキャッ
    シュペナルティ以上を要することを特徴とする請求項1
    記載の命令配置最適化コンパイラ。
  3. (3)前記命令配置最適化部は、前記キャッシュメモリ
    のキャッシュラインサイズとキャッシュミスペナルティ
    を記憶することを特徴とする請求項1記載の命令配置最
    適化コンパイラ。
  4. (4)前記プログラムとはC、FORTRAN、COB
    OL等で作成された高級言語プログラムであることを特
    徴とする請求項1記載の命令配置最適化コンパイラ。
JP2081110A 1990-03-30 1990-03-30 コンパイラ装置及びコンパイル方法 Pending JPH03282734A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2081110A JPH03282734A (ja) 1990-03-30 1990-03-30 コンパイラ装置及びコンパイル方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2081110A JPH03282734A (ja) 1990-03-30 1990-03-30 コンパイラ装置及びコンパイル方法

Publications (1)

Publication Number Publication Date
JPH03282734A true JPH03282734A (ja) 1991-12-12

Family

ID=13737243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2081110A Pending JPH03282734A (ja) 1990-03-30 1990-03-30 コンパイラ装置及びコンパイル方法

Country Status (1)

Country Link
JP (1) JPH03282734A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515519A (en) * 1993-03-19 1996-05-07 Hitachi, Ltd. Data processor and method utilizing coded no-operation instructions
US5930507A (en) * 1995-05-30 1999-07-27 Fujitsu Limited Compiling processing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515519A (en) * 1993-03-19 1996-05-07 Hitachi, Ltd. Data processor and method utilizing coded no-operation instructions
US5930507A (en) * 1995-05-30 1999-07-27 Fujitsu Limited Compiling processing apparatus

Similar Documents

Publication Publication Date Title
JP3820261B2 (ja) データ処理システムの外部および内部命令セット
Smith Sequential program prefetching in memory hierarchies
US5838945A (en) Tunable software control of harvard architecture cache memories using prefetch instructions
JP4837305B2 (ja) マイクロプロセッサ及びマイクロプロセッサの制御方法
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
US5664135A (en) Apparatus and method for reducing delays due to branches
EP0895163B1 (en) A data processor having a cache memory
JP4520790B2 (ja) 情報処理装置およびソフトウェアプリフェッチ制御方法
Tuck et al. Scalable cache miss handling for high memory-level parallelism
JPS6014341A (ja) 基本命令セツト計算機システムにおけるトラツプ割込み方式
JP2005078264A (ja) コンピュータシステム、コンパイラ装置およびオペレーティングシステム
JP3681647B2 (ja) キャッシュメモリシステム装置
US6260191B1 (en) User controlled relaxation of optimization constraints related to volatile memory references
US6516462B1 (en) Cache miss saving for speculation load operation
US6892280B2 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
JP3304444B2 (ja) ベクトル処理装置
JPH03282734A (ja) コンパイラ装置及びコンパイル方法
US7127591B2 (en) Instruction control device and method therefor
WO1996020440A1 (en) Dual processor decoupling
WO2006006613A1 (en) Methods and apparatus for updating of a branch history table
US6807628B2 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
GB2417797A (en) Managing storage used by a processor
JPH03175548A (ja) マイクロプロセッサ及びアドレス制御方式
JP2001331475A (ja) ベクトル命令処理装置およびベクトル命令処理方法
JPH0738168B2 (ja) データ処理装置