JP3913895B2 - 命令キャッシュ制御装置および記録媒体 - Google Patents

命令キャッシュ制御装置および記録媒体 Download PDF

Info

Publication number
JP3913895B2
JP3913895B2 JP10792098A JP10792098A JP3913895B2 JP 3913895 B2 JP3913895 B2 JP 3913895B2 JP 10792098 A JP10792098 A JP 10792098A JP 10792098 A JP10792098 A JP 10792098A JP 3913895 B2 JP3913895 B2 JP 3913895B2
Authority
JP
Japan
Prior art keywords
instruction
line
program
group
lines
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
JP10792098A
Other languages
English (en)
Other versions
JPH11306028A (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 JP10792098A priority Critical patent/JP3913895B2/ja
Publication of JPH11306028A publication Critical patent/JPH11306028A/ja
Application granted granted Critical
Publication of JP3913895B2 publication Critical patent/JP3913895B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、命令をメモリからプリフェッチしてキャッシュに格納させる命令キャッシュ装置および記録媒体に関するものである。
【0002】
【従来の技術】
RISC型計算機における問題は、メモリアクセスに費やす時間をどれだけ短縮することができるかが重要な要素である。ハードウェアで、1次キャッシュおよび2次キャッシュが装備されていても、有効にこれらキャッシュにプリフェッチしないことには命令待ち時間を短縮することができない。
【0003】
【発明が解決しようとする課題】
従来から存在するハードウェアによるプリフェッチは、ミスヒットを契機にターゲットとなるメモリの先を予めフェッチする機能で、コントロールフローを意識したプリフェッチではないため、機能を最大限に生かすことができないという問題があった。以下図8を例にとって説明する。
【0004】
図8の(a)において、A3の命令を実行しようとした時に、キャッシュミスヒットが発生(1次/2次キャッシュメモリ上にA3の命令が格納されていなくキャッシュミスヒットが発生)した場合、従来は、ハードウェアによるプリフェッチによりA4の命令があるラインをプリフェッチ(メモリからキャッシュに格納)するが、制御の流れでA3の次に実行される命令がB1と分岐してしまうと無駄なプリフェッチになってしまうという問題がある。また、実行しようとする命令があるライン(1ラインには例えば8命令格納できるとする)の直前のラインで命令をプリフェッチしたのでは、次のラインの命令実行時までに低速動作なメモリから命令を読み出してキャッシュに格納するプリフェッチが完了していなく、待ち時間が発生してしまう問題もあった。このため、コントロールフローを意識したプリフェッチを行い、B1、B2を最適なタイミングでプリフェッチすることが望まれている。ここで、図8の(a)の左側はメインの関数の流れを示し、右側は左側のメインの流れから呼び出された関数の流れを示す。A1ないしA4、B1ないしB3は命令を表す。図8の(b)は、1次キャッシュ(命令)の例を示す。A1、A2・・・、B1、B2・・・は、図8の(a)の命令が1次キャッシュ(命令)に格納されている様子をイメージ的に示す。
【0005】
本発明は、これらの問題を解決するため、並列実行命令のコンパイル時にコントロールフローを意識した最適なタイミングで命令をプリフェッチする命令を生成して並列実行命令中のNOP命令を置き換え、実行ステップを増大させずあるいは増大を最小限に抑えてキャッシュヒット率を向上させて実行性能の向上を図ることを目的としている。
【0006】
【課題を解決するための手段】
図1を参照して課題を解決するための手段を説明する。
図1において、ソースプログラム1は、コンパイル対象のソースプログラム(高級言語で記述したプログラム)である。
【0007】
コンパイラ2は、ソースプログラム1をコンパイル(翻訳)して実行可能形式のオブジェクトプログラム7を生成するものであって、ここでは、スケジューリング手段5などから構成されるものである。
【0008】
スケジューリング手段5は、本発明に係るものであって、命令キャッシュにコントロールフローを意識した最適なタイミングで命令をプリフェッチする命令を生成して並列実行命令中のNOP命令を置き換えたりなどするものである。
【0009】
次に、コンパイル時の動作を説明する。
スケジューリング手段5が実行時にメモリからプリフェッチした手続きの命令群の先頭をキャッシュのラインバウンダリから格納させると共に、キャシュ上の処理対象の現命令から所定ライン先迄の間に分岐命令がないときに当該所定ライン先の命令アドレスをプリフェッチする命令を生成して現ライン中のNOP命令と置き換えるようにしている。
【0010】
また、スケジューリング手段5が実行時にメモリからプリフェッチした手続きの命令群の先頭をキャッシュのラインバウンダリから格納させると共に、キャシュ上の処理対象の現命令が所定の分岐命令であったときに現命令の所定ライン前のNOP命令を、当該分岐命令の分岐先の命令アドレスをキャッシュにプリフェッチする命令を生成して置き換えるようにしている。
【0011】
また、スケジューリング手段5が実行時にメモリからプリフェッチした手続きの命令群の先頭をキャッシュのラインバウンダリから格納させると共に、キャシュ上の処理対象の現命令でプリフェッチが指定されると、指定された命令アドレスをキャッシュにプリフェッチする命令を現命令の位置あるいは現命令のライン中のNOP命令と置き換えるようにしている。
【0012】
これらの際に、実行時にメモリからプリフェッチした手続きの命令群の先頭を少なくともCPUが直接にアクセスする1次キャッシュのラインバウンダリから格納させるようにしている。
【0013】
従って、並列実行命令のコンパイル時にコントロールフローを意識した最適なタイミングで命令をプリフェッチする命令を生成して並列実行命令中のNOP命令を置き換えることにより、実行ステップを増大させずあるいは増大を最小限に抑えてキャッシュヒット率を向上させて実行性能の向上を図ることが可能となる。
【0014】
【発明の実施の形態】
次に、図1から図7を用いて本発明の実施の形態および動作を順次詳細に説明する。
【0015】
図1は、本発明のシステム構成図を示す。
図1において、コンパイラ2は、既述したように、ソースプログラム1をコンパイル(翻訳)して実行可能形式のオブジェクトプログラム6を生成するものであって、ソースプログラム解析手段3、最適化実施手段4、スケジューリング手段5、コード生成手段6などから構成されるものである。
【0016】
ソースプログラム解析手段3は、ソースプログラム1を公知の形態素解析、構文解析などを行い、内部で解析結果を使用して処理のし易い中間言に変換するものである。以下中間言をもとに各種処理を行うが、説明を判りやすくするためにソースプログラム(あるいはプログラム)について各種処理を行うとして説明する。
【0017】
最適化実施手段4は、ソースプログラムの公知の各種最適化(高速実行を可能にする各種最適化)を行うものである。
スケジューリング手段5は、本発明に係るものであって、命令キャッシュにコントロールフローを意識した最適なタイミングで命令をプリフェッチする命令を生成して並列実行命令中のNOP命令を置き換えたりなどするものである(図3を用いて後述する)。
【0018】
コード生成手段6は、スケージュリング手段5によってスケジューリングされた後の命令列について、実行可能なコード(機械語)を生成してオブジェクトプログラム7を生成するものである。
【0019】
オブジェクトプログラム7は、実行可能形式のプログラムである。
以下図2ないし図7を用いて図1の構成およびその動作に使用する命令キャッシュなどを順次詳細に説明する。
【0020】
図2は、本発明のキャッシュ(命令)説明図を示す。これは、図1のコンパイラ2によってコンパイルしたオブジェクトプログラム7が実行時に使用する命令キャッシュの例を示す。
【0021】
図2の(a)は、1次キャッシュ(命令)の例を示す。ここでは、2way(ウェイ)であって、1ラインが128バイトで合計64Kバイトの例を示す。各マス目が1ラインの128バイト(8命令)をイメージ的に示す。この1次キャッシュ(命令)は、CPUが直接にアクセスするキャッシュであって、128バイト単位で登録(フェッチ、プリフェッチ)するようにしている。
【0022】
図2の(b)は、2次キャッシュ(命令)の例を示す。ここでは、4ウェイであって、512バイトを単位として、合計2Mバイトの例を示す。この2次キャッシュは、後述する図2の(c)のメモリと図2の(a)の1次キャッシュ(命令)との間に設けたものであって、512バイト単位で登録(フェッチ、プリフェッチ)するようにしている。
【0023】
図2の(c)は、メモリの例を示す。ここでは、保持する命令を、512バイト単位で2次キャッシュ(命令)に登録(プリフェッチ、フェッチ)するようにしている。以下当該図2の命令キャッシュ(1次キャッシュ、2次キャッシュ)を実行時に使用することを前提に、コンパイル時の動作を順次詳細に説明する。
【0024】
図3は、本発明の動作説明フローチャートを示す。これは、図1のコパイラ2がコンパイル時に実行する処理を示す。
図3において、S1は、ソースプログラムの読み込みを行う。
【0025】
S2は、解析する。
S3は、スケジューリングする。これは、ソースプログラムの解析結果をもとに最適化を行った後、命令列のスケジューリングとして並列実行できる命令を並列に配置したり、並列実行できない部分にはNOP命令を配置したりする。このスケジューリングに続いて、本発明に係る命令のキャッシュへのプリフェッチを行えるようにS4ないしS11の処理を行う。
【0026】
S4は、現命令から2ライン先迄の間に分岐命令がないか判別する。これは、後述する図4の(a)の現命令(例えば命令A1から2ライン先迄の間に分岐命令(図中ではCALL)がないか判別する。YESの場合には、S5を実行する。NOの場合には、S6に進
【0027】
S5は、2ライン先の命令アドレスをプリフェッチする命令と、NOP命令とを置き換える。これは、図4の(a)の現命令である例えば命令A1から2ライン先迄の間に分岐命令「CALL」がないと判明した場合に、2ライン先の命令アドレスをプリフェッチする命令(例えば後述する図5の(b)の命令「LDIC B」)を生成してこの命令と、現命令のライン中のNOP命令とを置き換える。そして、S6に進む。
【0028】
S6は、オブジェクトコードを生成する。
以上のS4のYES、S5、S6によって、現ラインを処理中に2ライン先迄の間に分岐命令が見つからなかったときに、現ライン中のNOP命令を「LDIC命令」で置換して埋め込み、実行時に当該埋め込んだ命令により、分岐命令の実行時までにその分岐先の命令をプリフェッチするようにコンパイル時に設定することが可能となる。
【0029】
S7は、対象となる分岐命令があるか判別する。これは、現在処理中のライン内に、プリフェッチ対象となる分岐命令があるか判別する。YESの場合には、S8に進む。NOの場合には、S6に進む。
【0030】
S8は、現命令の2ライン前付近に空きスロット(NOP命令)があるか判別する。YESの場合には、S9に進む。NOの場合には、S6に進む。
S9は、分岐先の命令アドレスをキャッシュにローディング(プリフェッチ)する命令(LDIC)とNOP命令とを置き換える。
【0031】
以上のS7のYES、S8のYES、S9、S6によって、例えば現ライン中で分岐命令「CALL」が見つかったときに、2ライン前の図5の(b)のライン中のNOP命令を「LDIC命令」で置換して埋め込み、実行時に図5の(d)のCALL命令の実行時までにその分岐先の命令をプリフェッチするようにコンパイル時に設定することが可能となる。
【0032】
S10は、ユーザ指定があるか判別する。YESの場合には、S11に進む。NOの場合には、S6に進む。
S11は、パラメタに指定されたラベルの命令アドレスをキャッシュにローディング(プリフェッチ)する命令を現位置に埋め込む。そして、S6に進む。
【0033】
以上のS10のYES、S11、S6によって、現ラインの命令を処理中に当該命令で利用者からパラメタで指定されたラベルの命令アドレスをキャッシュにプリフェッチする命令を現位置あるいは現ライン中のNOP命令の位置に埋め込み、実行時に当該埋め込んだ命令によりプリフェッチするようにコンパイル時に設定することが可能となる。
【0034】
図4は、本発明の説明図を示す。
図4の(a)は、関数を構成する命令群を1次キャッシュのラインバウンダリの先頭から順に格納する様子を示す。ここでは、A1、A2、A3、A4などの命令からなる関数をラインバウンダリの先頭からキャッシュに格納(フェッチ)、および分岐命令CALLで呼び出される命令B1、B2、B3などを1次キャッシュのラインバウンダリの先頭から順に格納する様子を示す。図中の「LDIC」命令は、2ライン先の命令アドレスをプリフェッチするために埋め込んだ命令である。
【0035】
図4の(b)は、2ウェイの1次キャッシュ(命令)を模式的に表した例を示す。ここでは、箱1つが128バイトで全体64Kバイトの2ウェイの1次キャッシュ(命令)を示す。
【0036】
図5は、本発明の説明図(手続き・分岐を意識した命令プリフェッチ)を示す。
図5の(a)は、関数Aの先頭(128バイト境界)を示す。ここでは、1ラインは、128バイトである。
【0037】
図5の(b)は、2ライン前を示す。この2ライン前は、関数Aの先頭(図5の(a)の先頭のアドレス)に、1ライン分の128バイトを加算した「先頭+128バイト」である。
【0038】
図5の(c)は、1ライン前を示す。この1ライン前は、関数Aの先頭(図5の(a)の先頭のアドレス)に、2ライン分の256バイトを加算した「先頭+256バイト」である。
【0039】
図5の(d)は、現ラインを示す。この現ラインは、ここでは、関数Aの先頭(図5の(a)の先頭のアドレス)に、3ライン分の384バイトを加算した「先頭+384バイト」である。そして、現ラインの2ライン前の図5の(b)のNOP命令(右端)を「LDIC B」命令に変更し、実行時に図5の(d)のCALL B命令の分岐先の命令アドレスのプリフェッチすることが可能となる。
【0040】
図6は、本発明の説明図(キャッシュラインを意識した命令プリフェッチを示す。
図6の(a)は、関数Aの先頭(128バイト境界)を示す。ここでは、1ラインは、128バイトである。
【0041】
図6の(b)は、現ラインを示す。この現ラインは、関数Aの先頭(図6の(a)の先頭のアドレス)に、1ライン分の128バイトを加算した「先頭+128バイト」である。ここでは、現ライン中のNOP命令を「LDIC A3」に変更し、実行時に、2ライン先の図6の(d)の先頭アドレスをプリフェッチする。
【0042】
図6の(c)は、1ライン先を示す。この1ライン先は、関数Aの先頭(図6の(a)の先頭のアドレス)に、2ライン分の256バイトを加算した「先頭+256バイト」である。
【0043】
図6の(d)は、2ライン先を示す。この2ライン先は、ここでは、関数Aの先頭(図6の(a)の先頭のアドレス)に、3ライン分の384バイトを加算した「先頭+384バイト」である。
【0044】
図7は、本発明の簡単なプログラミング例を示す。ここでは、右側に記載したように、B関数の先頭アドレスをプリフェッチする命令(LDIC B)を図示の位置に埋め込む。これにより、実行時に下段のB関数の呼出し時までに命令がプリフェッチされることとなる。
【0045】
次に、本発明の機能について判りやすく説明する。
(1) 空スロット(NOP命令)にプリフェッチ命令を埋め込む:VLIW型アーキテクチャは同時に複数命令を発行できる。これらはコンパイラにより並列実行できる部分を自動的に認識し、最適にスケジューリングされる。最適にスケジューリングされても、全てのスロットに有効な命令が生成されるわけではなく、逐次的に実行せざるを得ない場合などは、NOP命令(なにもしない命令)を生成する。本発明では、このNOP命令にプリフェッチ命令を埋め込む(置換する)ことで、命令のプリフェッチを行っても命令のステップ数を増やすあるいは増えても最小限にすることを実現するものである。
(2) キャッシュラインを意識した命令のプリフェッチを行う:手続きや関数の先頭を1次キャッシュのラインのバウンダリ境界(先頭)に調整し、現ラインから2ライン先の命令をプリフェッチする命令をNOP命令に置換して埋め込む。ここで、次のラインの命令をプリフェッチしないのは、1ライン(VLIW方式では1命令128バイト、1ライン8命令)を実行している時間で、後続のキャッシュラインの命令をプリフェッチすることができない場合があるため、確実にプリフェッチするためには、直後のラインよりも次の2ライン先の命令をプリフェッチする方が効果的である。例えば1ライン内にメモリからローディングするような命令を含んだ場合、1ラインの8命令の実行中にメモリから命令をプリフェッチできないことが生じる場合がある。
(3) 手続き呼出しを意識した命令プリフェッチを行う。:関数呼出しの命令が実施されると、2ライン前の位置に連続する2ラインのプリフェッチする命令をNOP命令に置換する。連続する2ラインをプリフェッチするのは、呼出し先の命令の次のラインの命令は、プリフェッチされるタイミングが無いため、呼出し元で予めプリフェッチする必要が生じるためである。また、1ライン命令中に分岐、関数呼出しなどが存在した場合や、スケジューリングの処理単位に跨がる場合は、その処理単位の切れた命令の後の空スロット(NOP命令)に、連続する2ラインのプリフェッチする命令を挿入する。
(4) 分岐を意識した命令プリフェッチを行う。:ループの判定のように、上位アドレスに分岐するような場合は、既にキャッシュにロードされている可能性が高いので、上位アドレスに対するプリフェッチは行わない。上記以外の分岐で、2ライン以上先(下位アドレス)に分岐するような場合は、そのアドレスに対してプリフェッチする命令をブランチする命令の1ライン前の空スロット(NOP命令)に、連続する2ラインのプリフェッチする命令で置換する。
(5) 使用者が陽に命令プリフェッチ位置を指示する場合:使用者が最適化指示行などにより、陽にプリフェッチ位置をコンパイラに指示することにより、その位置にプリフェッチ命令を生成して埋め込むことにより、実行性能の向上を図る。例えば
Figure 0003913895
【0046】
Figure 0003913895
【0047】
【発明の効果】
以上説明したように、本発明によれば、並列実行命令のコンパイル時にコントロールフローを意識した最適なタイミングで命令をプリフェッチする命令を生成して並列実行命令中のNOP命令を置き換えるなどの構成を採用しているため、実行ステップを増大させずあるいは増大を最小限に抑えてキャッシュヒット率を向上させて実行性能の向上を図ることができる。これらにより、
(1) キャッシュミスヒットを最小限に抑えることができる。
(2) キャッシュミスヒット時のメモリからキャッシュへのローディング時間を最小限に抑えることができる。
(3) データローディングの立ち上がり時間を、他命令とオーバーラップさせることができる。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明のキャッシュ(命令)説明図である。
【図3】本発明の動作説明フローチャートである。
【図4】本発明の説明図である。
【図5】本発明の説明図(手続き・分岐を意識して命令プリフェッチ)である。
【図6】本発明の説明図(キャッシュラインを意識した命令プリフェッチ)である。
【図7】本発明の簡単なプログラミング例である。
【図8】従来技術の説明図である。
【符号の説明】
1:ソースプログラム
2:コンパイラ
3:ソースプログラム解析手段
4:最適化実施手段
5:スケジューリング手段
6:コード生成手段
7:オブジェクトプログラム

Claims (4)

  1. 複数の所定の容量のラインを有し命令をライン単位でメモリからプリフェッチする命令キャッシュ装置を用いて実行されるプログラムを生成するコンパイル装置であって、
    メモリに記憶されている手続きの命令群をライン単位でプリフェッチして前記命令キャッシュ装置のラインに格納すると前記手続きの命令群の先頭の命令が前記命令キャッシュのラインバウンダリの先頭になるように前記プログラム内で前記手続きの命令群を配置する手段と、
    前記プログラム内の第1の命令群であって、実行時に前記ラインのうちの第1のラインに格納されることになる前記プログラム内の位置を有する第1の命令群と、前記第1の命令群から前記プログラム内で所定のバイト数だけ後に位置する第2の命令群であって、実行時に前記ラインのうちの第2のラインに格納されることになる前記プログラム内の位置を有し、前記所定のバイト数は前記ラインのサイズの所定の整数倍であるような第2の命令群との間に分岐命令が存在するか否かを判断し、分岐命令が存在しないと判断されたときに前記第2の命令群をプリフェッチする命令を生成し、前記第1の命令群に属するNOP命令を前記生成された前記プリフェッチする命令によって置き換える手段と
    を有するコンパイル装置。
  2. 複数の所定の容量のラインを有し命令をライン単位でメモリからプリフェッチする命令キャッシュ装置を用いて実行されるプログラムを生成するコンパイル装置であって、
    メモリに記憶されている手続きの命令群をライン単位でプリフェッチして前記命令キャッシュ装置のラインに格納すると前記手続きの命令群の先頭の命令が前記命令キャッシュのラインバウンダリの先頭になるように前記プログラム内で前記手続きの命令群を配置する手段と、
    前記プログラム内の第1の命令群であって、実行時に前記ラインのうちの第1のラインに格納されることになる前記プログラム内の位置を有する第1の命令群の中に所定の分岐命令が含まれているか否かを判断し、所定の分岐命令が含まれていると判断された場合には、当該分岐命令の分岐先の命令をプリフェッチする命令を生成し、前記第1の命令群から前記プログラム内で所定のバイト数だけ前に位置する第2の命令群であって、実行時に前記ラインのうちの第2のラインに格納されることになる前記プログラム内の位置を有し、前記所定のバイト数は前記ラインのサイズの所定の整数倍であるような第2の命令群の中のNOP命令を前記生成された前記プリフェッチする命令によって置き換える手段と
    を有するコンパイル装置。
  3. 複数の所定の容量のラインを有し命令をライン単位でメモリからプリフェッチする命令キャッシュ装置を用いて実行されるプログラムを生成するコンパイラを格納したコンピュータ読み取り可能な記録媒体であって、
    前記コンパイラは、コンピュータを、メモリに記憶されている手続きの命令群をライン単位でプリフェッチして前記命令キャッシュ装置のラインに格納すると前記手続きの命令群の先頭の命令が前記命令キャッシュのラインバウンダリの先頭になるように前記プログラム内で前記手続きの命令群を配置する手段と、
    前記プログラム内の第1の命令群であって、実行時に前記ラインのうちの第1のラインに格納されることになる前記プログラム内の位置を有する第1の命令群と、前記第1の命令群から前記プログラム内で所定のバイト数だけ後に位置する第2の命令群であって、実行時に前記ラインのうちの第2のラインに格納されることになる前記プログラム内の位置を有し、前記所定のバイト数は前記ラインのサイズの所定の整数倍であるような第2の命令群との間に分岐命令が存在するか否かを判断し、分岐命令が存在しないと判断されたときに前記第2の命令群をプリフェッチする命令を生成し、前記第1の命令群に属するNOP命令を前記生成された前記プリフェッチする命令によって置き換える手段と
    して機能させるコンピュータ読み取り可能な記録媒体。
  4. 複数の所定の容量のラインを有し命令をライン単位でメモリからプリフェッチする命令キャッシュ装置を用いて実行されるプログラムを生成するコンパイラを格納したコンピュータ読み取り可能な記録媒体であって、
    前記コンパイラは、コンピュータを、メモリに記憶されている手続きの命令群をライン単位でプリフェッチして前記命令キャッシュ装置のラインに格納すると前記手続きの命令群の先頭の命令が前記命令キャッシュのラインバウンダリの先頭になるように前記プログラム内で前記手続きの命令群を配置する手段と、
    前記プログラム内の第1の命令群であって、実行時に前記ラインのうちの第1のラインに格納されることになる前記プログラム内の位置を有する第1の命令群の中に所定の分岐命令が含まれているか否かを判断し、所定の分岐命令が含まれていると判断された場合には、当該分岐命令の分岐先の命令をプリフェッチする命令を生成し、前記第1の命令群から前記プログラム内で所定のバイト数だけ前に位置する第2の命令群であって、実行時に前記ラインのうちの第2のラインに格納されることになる前記プログラム内の位置を有し、前記所定のバイト数は前記ラインのサイズの所定の整数倍であるような第2の命令群の中のNOP命令を前記生成された前記プリフェッチする命令によって置き換える手段と
    して機能させるコンピュータ読み取り可能な記録媒体。
JP10792098A 1998-04-17 1998-04-17 命令キャッシュ制御装置および記録媒体 Expired - Fee Related JP3913895B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10792098A JP3913895B2 (ja) 1998-04-17 1998-04-17 命令キャッシュ制御装置および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10792098A JP3913895B2 (ja) 1998-04-17 1998-04-17 命令キャッシュ制御装置および記録媒体

Publications (2)

Publication Number Publication Date
JPH11306028A JPH11306028A (ja) 1999-11-05
JP3913895B2 true JP3913895B2 (ja) 2007-05-09

Family

ID=14471409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10792098A Expired - Fee Related JP3913895B2 (ja) 1998-04-17 1998-04-17 命令キャッシュ制御装置および記録媒体

Country Status (1)

Country Link
JP (1) JP3913895B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4374221B2 (ja) 2003-08-29 2009-12-02 パナソニック株式会社 コンピュータシステムおよび記録媒体
JP4934267B2 (ja) * 2003-10-17 2012-05-16 パナソニック株式会社 コンパイラ装置
JP2009230374A (ja) 2008-03-21 2009-10-08 Fujitsu Ltd 情報処理装置,プログラム,及び命令列生成方法

Also Published As

Publication number Publication date
JPH11306028A (ja) 1999-11-05

Similar Documents

Publication Publication Date Title
JP3739491B2 (ja) プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御
US7849453B2 (en) Method and apparatus for software scouting regions of a program
JP4374221B2 (ja) コンピュータシステムおよび記録媒体
US8769511B2 (en) Dynamic incremental compiler and method
US7950012B2 (en) Facilitating communication and synchronization between main and scout threads
US6918111B1 (en) System and method for scheduling instructions to maximize outstanding prefetches and loads
EP0449368B1 (en) Method for compiling computer instructions for increasing cache efficiency
US20080028381A1 (en) Optimizing source code for iterative execution
JP3974742B2 (ja) コンパイル装置、最適化方法および記録媒体
JPH07129412A (ja) コンパイル方法及び装置
US9201798B2 (en) Processor instruction based data prefetching
US7243195B2 (en) Software managed cache optimization system and method for multi-processing systems
EP0655679A2 (en) Method and apparatus for controlling instruction in pipeline processor
JP3913895B2 (ja) 命令キャッシュ制御装置および記録媒体
US20050081016A1 (en) Method and apparatus for program execution in a microprocessor
US20030088862A1 (en) Instrumentation of code having predicated branch-call and shadow instructions
US7698534B2 (en) Reordering application code to improve processing performance
JP2001166989A (ja) プリフェッチ機構を有するメモリシステム及びその動作方法
JPH08161169A (ja) Vliw方式の計算機システム及びvliwの解釈・実行方法
JP2003216442A (ja) プログラム変換方法、これを用いたコンピュータ装置及びプログラム
US20010037444A1 (en) Instruction buffering mechanism
US20020026561A1 (en) Cache management system
JPH0877021A (ja) 割込処理装置および方法
JP3693503B2 (ja) 命令キャッシュへの書き込み機構を備えたプロセッサ
JPH1196015A (ja) キャッシュ最適化による言語処理方法およびその言語処理を記録した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070201

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110209

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120209

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130209

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130209

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140209

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees