JP3130446B2 - プログラム変換装置及びプロセッサ - Google Patents
プログラム変換装置及びプロセッサInfo
- Publication number
- JP3130446B2 JP3130446B2 JP07111701A JP11170195A JP3130446B2 JP 3130446 B2 JP3130446 B2 JP 3130446B2 JP 07111701 A JP07111701 A JP 07111701A JP 11170195 A JP11170195 A JP 11170195A JP 3130446 B2 JP3130446 B2 JP 3130446B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- subroutine
- branch
- machine language
- processing
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4451—Avoiding pipeline stalls
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Description
令列に翻訳して連結するプログラム変換装置及びプログ
ラム変換装置によって得られた機械語命令列を実行する
プロセッサに関し、特にサブルーチンへの分岐命令の実
行時に生じるパイプラインの乱れを回避するプログラム
変換装置及びプロセッサに関する。
での処理の高速化の基本技術の一つにパイプライン処理
がある。パイプライン処理は、1個の命令の処理過程を
複数の小さな処理単位(パイプラインステージ)に分割
し、各ステージを同時に処理を行うことにより処理速度
を向上させる技術である。ところが、分岐命令を実行し
た場合には、パイプラインストール(乱れ)が生じ、パ
イプライン処理の実効性能が理想性能を下回ることにな
る。この現象を、分岐ハザードという。
令列を示す図である。図11は、図10の命令列を実行
した場合のパイプラインの流れをクロックサイクルごと
に示した図である。パイプラインは、3個のステージ
(IF:命令フェッチ、DEC:命令デコード、EX:
実行及び実効アドレス生成)からなる。今、命令1は、
番地Aから始まるサブルーチンへの分岐命令とする。ク
ロック1においてIFステージにフェッチされた命令1
はクロック3においてEXステージで実行されるので、
クロック4において初めて番地Aの命令AがIFステー
ジにフェッチされる。この命令Aが実行されるのは、ク
ロック6である。即ち、この例では、既にパイプライン
に取り込まれた命令2、3を無効化しなければならず、
命令1が実行されてから命令Aが実行されるまでに3ク
ロックを要している。図11において、パイプラインス
トールは灰色で示している。
術として、遅延分岐と呼ばれる方法がある(例えば、ヘ
ネシー&パターソンコンピュータ・アーキテクチャ、第
265頁から第270頁、日経BP出版センター)。こ
の遅延分岐では、コンパイラがコンパイル時に命令のス
ケジューリングを行い、例えば、分岐先の命令を分岐命
令の後続にあたる命令の位置(分岐遅延スロット)に予
め移動させておくという方法が採られる。
場合の命令列を図12に示す。分岐先命令である命令
A、Bは、分岐命令である命令1の後続命令として番地
2、3に移動して置かれている。図13は、図12に示
された命令列を実行した場合のパイプラインの流れを示
す図である。この図から判るように、遅延分岐の方法に
よれば無駄な命令をフェッチしてしまうことが無くなる
ので、図11で示されたようなパイプラインストールは
生じない。従って、図12に示される遅延分岐によるス
ケジューリングによって、分岐ハザードの問題は解消さ
れている。
岐による方法では、必ずしも分岐先の命令を分岐遅延ス
ロットに移動できない場合があり、常に分岐ハザードを
解消できるとは限らないという問題点を有している。具
体的には、図10に示された例において、番地Aから始
まるサブルーチンがコンパイラからは認識できない場合
がある。通常、コンパイラは、プログラムが納められた
ファイルごとに翻訳を行うが、命令1を含むプログラム
と命令A、Bを含むサブルーチンとが別のファイルに納
められている場合がある。従って、命令1を含むプログ
ラムを納めたファイルのみが与えられた場合には、コン
パイラは、分岐先命令である命令A、Bを移動させて分
岐遅延スロットに入れるというスケジューリングを行う
ことができない。そのために、別のファイルに納められ
た命令に分岐する場合には、依然として分岐ハザードが
生じるという問題点があった。
に納められたサブルーチンには分岐しないようにプログ
ラムを作成しておいたり、プログラムの分岐箇所を予め
調べることによって関連するサブルーチンを1つのファ
イルに納める処理を行った後に翻訳させるという方法も
考えられる。しかし、このような方法では、プログラム
の設計時において常に分岐先のサブルーチンの配置を意
識しなければならず、プログラムの設計や開発の作業効
率が低下する。さらに、翻訳単位であるファイルのサイ
ズが大きくなるために、翻訳に多大な時間を要する。
されたものであり、サブルーチンを呼び出す命令と呼ば
れるサブルーチンとが異なるファイルに配置されている
ソースプログラムであっても、パイプラインの乱れを生
じることなくサブルーチンを呼び出すことができる実行
オブジェクトを生成するプログラム変換装置及びその実
行オブジェクトを実行するプロセッサを提供することを
目的とする。
に請求項1記載のプログラム変換装置は、プログラムを
機械語命令列に翻訳しファイルとして出力する翻訳装置
と、複数の前記ファイルに納められた機械語命令列を連
結する連結装置とからなるプログラム変換装置であっ
て、前記翻訳装置は、プログラムに含まれるサブルーチ
ンについて、各サブルーチンごとに必要とされるスタッ
クサイズを抽出してサブルーチンの機械語命令列と共に
前記ファイルに格納するスタックサイズ抽出手段を備
え、前記連結装置は、前記機械語命令列の中からサブル
ーチンへの分岐命令を検出する分岐命令検出手段と、検
出された分岐命令が指定している分岐先サブルーチンを
納めたファイルを特定するファイル検索手段と、前記分
岐先サブルーチンで必要とされるスタックサイズを前記
ファイル検索手段によって特定されたファイルから読み
出すスタックサイズ獲得手段と、前記分岐命令を、前記
分岐先サブルーチンに分岐する処理と、その処理の遅延
スロットを利用して行われる処理であって前記スタック
サイズ獲得手段で読み出されたスタックサイズ分のスタ
ックを確保する処理とを実行することを内容とする機械
語命令に置き換える置換手段とを備えることを特徴とす
る。
求項1記載のプログラム変換装置において、前記置換手
段は、前記分岐命令を、前記分岐先サブルーチンに分岐
する処理と、その処理の遅延スロットを利用して行われ
る処理であって前記スタックサイズ獲得手段で読み出さ
れたスタックサイズ分のスタックを確保する処理とを実
行することを内容とする単一の機械語命令に置き換える
ことを特徴とする。
列を解釈して実行するプロセッサであって、与えられた
機械語命令が所定のサブルーチンコール命令かどうかを
判断する命令デコード手段と、前記命令デコード手段に
より所定のサブルーチンコール命令であると判断された
場合には、そのサブルーチンコール命令によって特定さ
れる分岐先番地に分岐する処理と、その処理の遅延スロ
ットを利用して行う処理であってそのサブルーチンコー
ル命令に含まれるスタックサイズのスタックを確保する
処理とを実行する手段とを備えることを特徴とする。
ログラムを機械語命令列に翻訳し、ファイルとして出力
する翻訳装置と、複数の前記ファイルに納められた機械
語命令列を連結する連結装置とからなるプログラム変換
装置であって、前記翻訳装置は、前記プログラムに含ま
れるサブルーチンについて、各サブルーチンでの処理に
おいて退避すべきレジスタ名を抽出してサブルーチンの
機械語命令列と共に前記ファイルに格納する退避レジス
タ抽出手段を備え、前記連結装置は、前記機械語命令列
の中からサブルーチンへの分岐命令を検出する分岐命令
検出手段と、検出された分岐命令が指定している分岐先
サブルーチンを納めたファイルを特定するファイル検索
手段と、前記分岐先サブルーチンでの処理において退避
すべきレジスタ名を前記ファイル検索手段によって特定
されたファイルから読み出す退避レジスタ獲得手段と、
前記分岐命令を、前記分岐先サブルーチンに分岐する処
理と、その処理の遅延スロットを利用して行われる処理
であって前記退避レジスタ獲得手段で読み出されたレジ
スタの内容を退避する処理とを実行することを内容とす
る機械語命令に置き換える置換手段とを備えることを特
徴とする。
求項4記載のプログラム変換装置において、前記置換手
段は、前記分岐命令を、前記分岐先サブルーチンに分岐
する処理と、その処理の遅延スロットを利用して行われ
る処理であって前記スタックサイズ獲得手段で読み出さ
れたスタックサイズ分のスタックを確保する処理とを実
行することを内容とする単一の機械語命令に置き換える
ことを特徴とする。
列を解釈して実行するプロセッサであって、与えられた
機械語命令が所定のサブルーチンコール命令かどうかを
判断する命令デコード手段と、前記命令デコード手段に
より所定のサブルーチンコール命令であると判断された
場合には、そのサブルーチンコール命令によって特定さ
れる分岐先番地に分岐する処理と、その処理の遅延スロ
ットを利用して行う処理であってそのサブルーチンコー
ル命令で指定されるレジスタの内容を退避する処理とを
実行する手段とを備えることを特徴とする。また、請求
項3の特徴(分岐処理とスタック確保とを行う)と請求
項6の特徴(分岐処理とレジスタ退避とを行う)とを併
せ持つプロセッサとしたり、請求項1に係るプログラム
変換装置によって生成された機械語命令を実行する請求
項3に係るプロセッサとしたり、請求項4に係るプログ
ラム変換装置によって生成された機械語命令を実行する
請求項6に係るプロセッサとすることもできる。
ラム変換装置によれば、プログラムが与えられると、機
械語命令列に翻訳されると共に、プログラム中のサブル
ーチンについて、各サブルーチンごとに必要とされるス
タックサイズが検出され機械語命令列と共にファイルに
格納される。
語命令列が連結される際に、機械語命令列の中からサブ
ルーチンへの分岐命令が検出される。分岐命令が検出さ
れると、その分岐先サブルーチンを納めたファイルが特
定され、そのファイルから、分岐先サブルーチンで必要
とされるスタックサイズがスタックサイズ獲得手段によ
って読み出される。
ンに分岐する処理と前記スタックサイズ獲得手段で読み
出されたスタックサイズ分のスタックを確保する処理と
を実行することを内容とする機械語命令に置き換えられ
る。請求項2記載のプログラム変換装置によれば、請求
項1記載のプログラム変換装置において、前記分岐命令
は、前記分岐先サブルーチンに分岐する処理と、その処
理の遅延スロットを利用して行われる処理であって前記
スタックサイズ獲得手段で読み出されたスタックサイズ
分のスタックを確保する処理とを実行することを内容と
する単一の機械語命令に置き換えられる。
られた機械語命令は、所定のサブルーチンコール命令か
どうかが判断される。所定のサブルーチンコール命令で
あると判断された場合には、プロセッサは、そのサブル
ーチンコール命令によって特定される分岐先番地に分岐
する処理と、その処理の遅延スロットを利用して行う処
理であってそのサブルーチンコール命令に含まれるスタ
ックサイズのスタックを確保する処理とを実行する。
ば、プログラムが与えられると、機械語命令列に翻訳さ
れると共に、プログラム中のサブルーチンについて、各
サブルーチンでの処理において退避すべきレジスタ名が
検出され機械語命令列と共にファイルに格納される。続
いて、複数のファイルに納められた機械語命令列が連結
される際に、機械語命令列の中からサブルーチンへの分
岐命令が検出される。分岐命令が検出されると、その分
岐先サブルーチンを納めたファイルが特定され、そのフ
ァイルから、分岐先サブルーチンでの処理において退避
すべきレジスタ名が退避レジスタ獲得手段によって読み
出される。
ンに分岐する処理と、その処理の遅延スロットを利用し
て行われる処理であって前記退避レジスタ獲得手段で読
み出されたレジスタの内容を退避する処理とを実行する
ことを内容とする機械語命令に置き換えられる。請求項
5記載のプログラム変換装置は、請求項4記載のプログ
ラム変換装置において、前記分岐命令は、前記分岐先サ
ブルーチンに分岐する処理と、その処理の遅延スロット
を利用して行われる処理であって前記スタックサイズ獲
得手段で読み出されたスタックサイズ分のスタックを確
保する処理とを実行することを内容とする単一の機械語
命令に置き換えられる。
られた機械語命令は、所定のサブルーチンコール命令か
どうかが判断される。所定のサブルーチンコール命令で
あると判断された場合には、プロセッサは、そのサブル
ーチンコール命令によって特定される分岐先番地に分岐
する処理と、その処理の遅延スロットを利用して行う処
理であってそのサブルーチンコール命令で指定されるレ
ジスタの内容を退避する処理とを実行する。
詳細に説明する。 (第1実施例)図1は、本発明の第1実施例に係るプロ
グラム変換装置の構成を示すブロック図である。尚、図
1には、本装置の処理の対象となる入力ファイル10
1、102、出力ファイル106、107、処理の結果
生成される実行ファイル113も同時に示している。
結部108から構成される。翻訳部103は、主に高級
言語で書かれたソースプログラムを機械語命令列に翻訳
する。翻訳部103には、ソースプログラムが納められ
た入力ファイル101、102が与えられ、処理を終え
た翻訳部103は、出力ファイル106、107として
出力する。ここで、ファイルとは、翻訳部103の入出
力の単位となるプログラムや機械語命令列の集まりをい
う。翻訳部103は、ファイル単位で翻訳を行う。例え
ば、1個の入力ファイルA101だけが与えられると、
翻訳部103は、自動的に入力ファイルA101に対応
する名前を決定し、出力ファイルA106を出力する。
104と抽出部105からなる。機械語命令生成部10
4は、与えられたソースプログラムを構文解析等を行っ
て機械語命令列に変換する。抽出部105は、さらにス
タックサイズ抽出部105aと退避レジスタ抽出部10
5bからなる。スタックサイズ抽出部105aは、ソー
スプログラムに存在するサブルーチンについて、各サブ
ルーチンでの処理のために必要とされるスタックサイズ
を算出し、算出したスタックサイズを明示する疑似命令
を生成してそのサブルーチンの機械語命令列の先頭箇所
に置く。ここで、スタックサイズとは、サブルーチンで
の処理で使用される局所的な作業領域の大きさのことで
ある。疑似命令とは、ここで算出したスタックサイズに
ついての情報を後述する連結部108に引き渡すための
ものであり、連結部108によって使用される。
ログラムに存在するサブルーチンについて、各サブルー
チンでの処理に先立って退避すべきレジスタを検出し、
検出したレジスタを明示する疑似命令を生成してそのサ
ブルーチンの機械語命令列の先頭箇所に置く。退避すべ
きレジスタは、サブルーチンの中の処理によって破壊さ
れるものが該当する。疑似命令は、スタックサイズ抽出
部105aが生成する疑似命令と同種のものであり、退
避すべきレジスタについての情報を連結部108に引き
渡すために使用される。
してプロセッサが実行できる実行オブジェクトを生成す
るが、その際に、翻訳部103によって生成された疑似
命令についての処理も行う。尚、上述の連結作業は、通
常のリンカー等が行う処理と異ならないので、その処理
を行う構成部分は図示していない。連結部108には、
機械語命令列が納められた複数の出力ファイル106、
107が与えられ、処理を終えた連結部108は、実行
ファイル113を出力する。
09、ファイル検索部110、獲得部111及びサブル
ーチンコール命令生成部112からなる。分岐命令検出
部109は、与えられた全ての出力ファイルの中から分
岐命令を探し出し、発見された分岐命令をファイル検索
部110に通知する。尚、ここでいう分岐命令とは、サ
ブルーチンへの分岐命令をいう。
命令について、その分岐命令によって指定されている分
岐先のサブルーチンが存在するファイルの名前を特定
し、そのファイル名を分岐先サブルーチン名と共に獲得
部111のスタックサイズ獲得部111a及び退避レジ
スタ獲得部111bに通知する。スタックサイズ獲得部
111aは、通知されたファイルの分岐先サブルーチン
の先頭箇所に置かれている疑似命令を解釈することによ
って、そのサブルーチンでの処理に必要とされるスタッ
クサイズをサブルーチンコール命令生成部112に通知
する。
通知されたファイルの分岐先サブルーチンの先頭箇所に
置かれている疑似命令を解釈することによって、そのサ
ブルーチンでの処理のために退避すべきレジスタの種類
をサブルーチンコール命令生成部112に通知する。サ
ブルーチンコール命令生成部112は、獲得部111か
ら通知されたスタックサイズとレジスタの種類に基づい
て、サブルーチンを呼び出す専用のサブルーチンコール
命令を生成する。この専用のサブルーチンコール命令と
は、プロセッサが、分岐処理、スタックの確保及びレジ
スタの値の退避という3つの処理をパイプラインストー
ルを発生することなく一連で行う機械語命令のことであ
る。
ール命令生成部112によって生成されたサブルーチン
コール命令を、そのサブルーチンへの分岐元である分岐
命令と置き換えると共に、そのサブルーチンの中に配置
されていた、スタックを確保する機械語命令やレジスタ
を退避する機械語命令を削除した実行オブジェクトを生
成し、実行ファイル113として出力する。
検出部109が検出した全ての分岐命令について繰り返
し行われる。次に、以上のように構成された本装置の動
作について、具体的なプログラムを用いて説明する。入
力ファイルA101には、図2に示されたメインプログ
ラムf()が納められている。メインプログラムf()
は、サブルーチンg()を2つの引き数を伴って呼び出
している。
示されたサブルーチンg()が納められている。サブル
ーチンg()は、与えられた2つの引き数の和と差を算
出する。図2に示された入力ファイルA101が与えら
れた翻訳部103は、メインプログラムf()を機械語
命令に翻訳すると共に、このメインプログラムf()で
必要とされるスタックサイズや退避すべきレジスタの情
報を抽出した後、図4に示される出力ファイルA106
を生成して出力する。
B102が与えられた翻訳部103は、サブルーチンg
()を機械語命令に翻訳すると共に、このサブルーチン
g()で必要とされるスタックサイズや退避すべきレジ
スタの情報を抽出した後、図5に示される出力ファイル
B107を生成して出力する。尚、ここで用いられてい
る機械語命令の意味は、以下の通りである。 _f : その関数のラベルを示す。 .STACKSIZE s : その関数での処理に必
要とされるスタックサイズがsバイトである。 .REGLIST r1,r2 : その関数での処理
に先立ち退避すべきレジスタがr1,r2である。 sp : スタックポインタ #xxxx : 即値xxxxを表す。 (sp+xxxx) : sp+xxxxをアドレスと
するメモリの内容 add src,dst : dst+srcの値をd
stに転送する。 sub src,dst : dst−srcの値をd
stに転送する。 mov src,dst : srcをdstに転送す
る。 jsr label : spを4減少させ、次の命令
のアドレス(戻り先)を(sp)に転送し、label
に制御を移す。 rts : (sp)の値の命令に制御を移し、spを
4増加させる。
06のリストの下部42は機械語命令生成部104によ
って生成されたものであり、リストの上部41は抽出部
105によって生成されたものである。スタックサイズ
抽出部105aは、このメインプログラムf()で必要
とされるスタックサイズは8バイトであると判断し、疑
似命令.STACKSIZE8を生成している。これ
は、メインプログラムf()が2個の引き数1、2をス
タックに格納した後にサブルーチンg()を呼び出して
いるが、1個の引き数を格納するのに4バイトのスタッ
クが必要となるからである。
のメインプログラムf()での処理に先立って退避すべ
きレジスタは無いので、疑似命令.REGLISTだけ
を生成している。同様に、図5に示される出力ファイル
B107のリストの下部52は機械語命令生成部104
によって生成されたものであり、リストの上部51は抽
出部105によって生成されたものである。
ブルーチンg()で必要とされるスタックサイズは16
バイトであると判断し、疑似命令.STACKSIZE
16を生成している。これは、サブルーチンg()で
の処理において、2個のレジスタの値を退避させる領域
と2個の演算結果a、bを格納する領域の合計として、
16バイトのスタックが必要となるからである。
のサブルーチンg()での処理に先立って退避すべきレ
ジスタはr1及びr2であると判断し、疑似命令.RE
GLIST r1,r2を生成している。続いて、翻訳
部103によって生成された出力ファイルA106及び
出力ファイルB107が連結部108に入力されると、
分岐命令検出部109は、これらのファイルに存在する
分岐命令を検出する。図4に示された出力ファイルA1
06には、分岐命令jsr _gが用いられているの
で、この分岐命令が分岐命令検出部109によって検出
され、ファイル検索部110に通知される。
イル106、107を検索することによって、分岐先サ
ブルーチン_gが出力ファイルB107で定義されてい
ることを知り、その旨をスタックサイズ獲得部111a
及び退避レジスタ獲得部111bに通知する。スタック
サイズ獲得部111a及び退避レジスタ獲得部111b
は、通知を受けた出力ファイルB107のサブルーチン
_gの先頭箇所51に置かれた疑似命令から、必要なス
タックサイズ(16)及び退避すべきレジスタ(r1、
r2)を知り、その情報をサブルーチンコール命令生成
部112に通知する。
通知された情報に基づいて、サブルーチンコール命令c
all _g,#16,r1,r2を生成する。ここ
で、命令call label,lsz,rn,rm
は、spを4減少させ、次の命令のアドレス(戻り先)
を(sp)に転送して_labelに制御を移した後、
分岐ハザードのサイクルでレジスタrn,rmをそれぞ
れ(sp−4)、(sp−8)に退避し、spをlsz
減少させる処理を一連で行う単一の機械語命令を意味す
る。即ち、サブルーチンコール命令call _g,#
16,r1,r2は、以下の命令を分岐ハザードを生じ
ることなく一連で実行することに等しい。 jsr _g mov r1,(sp−4) mov r2,(sp−8) add #−16,sp 最後に、連結部108は、生成されたサブルーチンコー
ル命令call _g,#16,r1,r2を、サブル
ーチン_gへの分岐元である図4に示された出力ファイ
ルA106の分岐命令jsr _gと置き換えると共
に、サブルーチン_gの中に配置されていた、レジスタ
を退避する機械語命令mov r1,(sp−4)、m
ov r2,(sp−8)やスタックを確保する機械語
命令add#−16,spを削除した実行オブジェクト
を生成し、図6に示される実行ファイル113として出
力する。
トから判るように、メインプログラム_fからサブルー
チン_gを呼び出す命令には、サブルーチンコール命令
call _g,#16,r1,r2が用いられ、一
方、サブルーチン_gの先頭箇所には、レジスタを退避
したりスタック領域を確保したりする命令が削除されて
いる。
よれば、ソースプログラムが機械語命令に翻訳される際
に、翻訳部103によって各サブルーチンごとに必要な
スタックサイズや退避レジスタに関する情報が疑似命令
として各サブルーチンの機械語命令列の先頭箇所に付加
される。続いて、連結部108は、各機械語命令を連結
する際に、別のファイルに存在するサブルーチンへの分
岐命令であっても、各サブルーチンの先頭箇所に置かれ
ている疑似命令を参照することによって、サブルーチン
への分岐とレジスタの退避とスタックの確保とを分岐ス
トールを生じることなく一連で実行できる単一のサブル
ーチンコール命令に置換する。従って、連結部108が
生成したプログラムを実行するプロセッサは、異なるフ
ァイルで定義されたサブルーチンへの分岐であっても、
分岐ハザードを生じることなく高速に分岐処理を行うこ
とができる。 (第2実施例)次に、高速に分岐処理を行う第2実施例
に係るプロセッサについて説明する。
ッサの構成を示すブロック図である。本プロセッサは、
命令バッファ701、命令デコーダ702、実行ユニッ
ト703、レジスタ704、スタックポインタ705、
プログラムカウンタ706、演算回路707、データバ
ッファ708、アドレスバッファ709及び内部バス7
10から構成される。
ァ709は、それぞれ外部データバス711及び外部ア
ドレスバス712と内部バス710とのデータの中継を
行う。レジスタ704は、演算を行うためのデータや図
示されていない主記憶のアドレスを一時的に格納する。
スタックポインタ705は、主記憶に設けられたスタッ
ク領域を示すアドレスを格納する。プログラムカウンタ
706は、次にフェッチすべき主記憶の命令が置かれて
いるアドレスを格納する。演算回路707は、入力され
た2個のデータを論理演算する回路である。
を格納するFIFO方式の命令バッファである。命令バ
ッファ701に取り込まれた命令は、順次に押し出さ
れ、通常は、最も古い命令が命令デコーダ702に送ら
れる。命令デコーダ702は、命令バッファ701から
送られてきた命令を、逐一にデコードし、その結果を実
行ユニット703に通知する。尚、命令デコーダ702
は、所定の全ての命令をデコードし、各命令に固有の情
報を実行ユニット703に送る機能を有するが、特にサ
ブルーチンコール命令をデコードする機能を有する部分
をサブルーチンコール命令デコーダ702aとして図7
に示している。
2からの情報に応じて、図示されていない内部制御信号
を通じて各構成部701〜709を制御したり、図示さ
れていない外部制御信号との入出力を行う。尚、実行ユ
ニット703は、所定の全ての命令に対応した制御を行
う機能を有するが、特にサブルーチンコール命令を実行
する部分をサブルーチンコール実行ユニット703aと
して図7に示している。
及び実行ユニット703は、パイプラインを構成し、そ
れぞれパイプラインのIFステージ、DECステージ及
びEXステージの機能を果たす。次に、以上のように構
成された本プロセッサの動作について説明する。先ず、
本プロセッサが、通常の分岐命令jsrを実行する際の
動作を説明する。図8には、通常の分岐命令jsrを含
む命令列と、その命令列を実行した場合のパイプライン
の流れを示している。
取り込まれた分岐命令jsr _gは、クロック2にお
いて命令デコーダ702によってデコードされ、クロッ
ク3において実行ユニット703によって実行される。
クロック3において、実行ユニット703は、プログラ
ムカウンタ706を分岐先のアドレス_gに更新する。
従って、クロック4において、アドレス_gに置かれて
いる命令mov r1,(sp−4)が命令バッファ7
01に取り込まれる。
の次に命令mov r1,(sp−4)を実行するため
に、それらの命令の間、即ち分岐ハザードに存在する命
令(図8において灰色で示された部分)の実行を無視す
る。従って、実行ユニット703は、命令jsr _g
を実行した後で2クロックを置いた後に次の命令mov
r1,(sp−4)を実行する。
同様の分岐命令を実行する場合の動作と変わるところは
ない。次に、本プロセッサが、サブルーチンコール命令
callを実行する際の動作を説明する。図9には、サ
ブルーチンコール命令callを含む命令列と、その命
令列を実行した場合の等価的なパイプラインの流れを示
している。
#16,r1,r2は1個の命令であるが、この命令を
サブルーチンコール命令デコーダ702aがデコード
し、サブルーチンコール実行ユニット703aが実行す
ると、本プロセッサは、以下の4つの命令を一連で実行
することに等しい動作を行う。即ち、先ず、 jsr _g を実行し、続いて分岐ハザードのサイクルにおいて、 mov r1,(sp−4) mov r2,(sp−8) add #−16,sp を実行する。
実行ユニット703がサブルーチンコール命令call
_g,#16,r1,r2を実行した場合の等価的な
パイプラインの流れを示している。クロック1において
命令バッファ701に取り込まれた分岐命令jsr _
gは、クロック2において命令デコーダ702によって
デコードされ、クロック3において実行ユニット703
によって実行される。
た実行ユニット703は、次のクロック4において命令
mov r1,(sp−4)を実行する。図8に示され
たパイプラインの流れと比較して明らかなように、全く
同じ内容の処理を行っているにも拘らず、図9における
パイプラインの流れにおいては、分岐ハザードは生じて
いない。即ち、本プロセッサがcall _g,#1
6,r1,r2を実行する場合には、分岐ハザードは解
消され、図8に示された命令列を実行する場合よりも2
クロック分だけ実行時間が短縮される。
びプロセッサについて、実施例に基づいて説明したが、
本発明はこれら実施例に限られないことは勿論である。
即ち、 (1)第1実施例において、サブルーチンコール命令生
成部112は、単一の機械後命令call _g,#1
6,r1,r2を生成したが、生成される機械後命令は
単一の命令に限定されるものではない。例えば、 call _g mov r1,(sp−4) mov r2,(sp−8) add #−16,sp の4つの機械後命令を生成するものであってもよい。即
ち、命令call _gは、_gに制御を移行させると
共に続く3つの命令を分岐ハザードを生じることなく一
連で実行させる命令となる。 (2)第1実施例において生成されたサブルーチンコー
ル命令は、スタックの確保とレジスタの退避という2つ
の処理を伴う分岐命令であったが、常にこれら2つの処
理を伴う分岐命令に限定されない。例えば、レジスタを
退避する必要がないサブルーチンへの分岐の場合には、
call _g,#16のごとく、スタックの確保だけ
を行う分岐命令が生成されるものであってもよい。 (3)第1実施例における機械語命令生成部104を、
プログラムを再配置可能オブジェクトに変換する一般的
なコンパイル手段に、また、連結部108が有するリン
ク機能を、再配置可能オブジェクトをリンクして実行オ
ブジェクトを作成する一般的なリンク手段に置き換えて
もよい。これによって、第1実施例のプログラム変換装
置に対応するC言語コンパイラを実現することができ
る。 (4)第1実施例においては、連結部108のみがサブ
ルーチンコール命令を生成しているが、このような構成
に限定されるものではない。例えば、翻訳部103がさ
らに、連結部108が有する構成部109〜112を備
えていてもよい。これによって、同一ファイル内のサブ
ルーチンへの分岐命令であれば、翻訳部103がサブル
ーチンコール命令を生成することができる。 (5)第2実施例においては、分岐命令jsrによる2
クロック分のパイプラインストールを回避できたが、こ
のようなパイプラインストールに限定されるものではな
い。例えば、サブルーチン_gが格納されているROM
のアクセスタイムが大きいために、図8のパイプライン
の流れにおいて3クロック分のパイプラインストールが
生じていても、本実施例によって図9に示されたパイプ
ラインの流れと同様の結果が得られることは明らかであ
る。この場合には、図8に示された命令列を実行する場
合よりも3クロック分だけ実行時間が短縮されたことに
なる。即ち、本実施例によって、分岐命令の実行に伴う
パイプラインストールだけでなく、分岐先命令のフェッ
チ時の障害に伴うパイプラインストールも同時に回避で
きる。
置によれば、サブルーチンを呼び出す命令と呼ばれるサ
ブルーチンとが同一のファイルのみならず異なるファイ
ルに配置されているソースプログラムであっても、パイ
プラインの乱れを生じることなくサブルーチンを呼び出
すと共に必要なスタックサイズを確保する実行オブジェ
クトが生成される。
記載のプロセッサによって実行される。請求項4及び5
記載のプログラム変換装置によれば、サブルーチンを呼
び出す命令と呼ばれるサブルーチンとが同一のファイル
のみならず異なるファイルに配置されているソースプロ
グラムであっても、パイプラインの乱れを生じることな
くサブルーチンを呼び出すと共に必要なレジスタの値を
退避する実行オブジェクトが生成される。
記載のプロセッサによって実行される。従って、本発明
に係るプログラム変換装置及びプロセッサにより、分岐
命令の実行や分岐先命令のフェッチ時の障害に伴うパイ
プラインの乱れの発生を回避し、高速に分岐処理を行う
ことができるという効果がある。
の構成を示すブロック図である。
られているメインプログラムf()のソースプログラム
のリストである。
られているサブルーチンg()のソースプログラムのリ
ストである。
られたメインプログラムf()の機械語命令のリストで
ある。
られたサブルーチンg()の機械語命令のリストであ
る。
れた実行オブジェクトのリストである。
示すブロック図である。
srを実行する際の動作を説明する図である。
ル命令callを実行する際の動作を説明する図であ
る。
ードが生じる場合の命令列を示す図である。
が実行した場合のパイプラインの流れを示す図である。
令が分岐遅延スロットに置かれた場合の命令列を示す図
である。
が実行した場合のパイプラインの流れを示す図である。
Claims (12)
- 【請求項1】 プログラムを機械語命令列に翻訳しファ
イルとして出力する翻訳装置と、複数の前記ファイルに
納められた機械語命令列を連結する連結装置とからなる
プログラム変換装置であって、 前記翻訳装置は、 プログラムに含まれるサブルーチンについて、各サブル
ーチンごとに必要とされるスタックサイズを抽出してサ
ブルーチンの機械語命令列と共に前記ファイルに格納す
るスタックサイズ抽出手段を備え、 前記連結装置は、 前記機械語命令列の中からサブルーチンへの分岐命令を
検出する分岐命令検出手段と、 検出された分岐命令が指定している分岐先サブルーチン
を納めたファイルを特定するファイル検索手段と、 前記分岐先サブルーチンで必要とされるスタックサイズ
を前記ファイル検索手段によって特定されたファイルか
ら読み出すスタックサイズ獲得手段と、 前記分岐命令を、前記分岐先サブルーチンに分岐する処
理と、その処理の遅延スロットを利用して行われる処理
であって前記スタックサイズ獲得手段で読み出されたス
タックサイズ分のスタックを確保する処理とを実行する
ことを内容とする機械語命令に置き換える置換手段とを
備えることを特徴とするプログラム変換装置。 - 【請求項2】 前記置換手段は、前記分岐命令を、前記
分岐先サブルーチンに分岐する処理と、その処理の遅延
スロットを利用して行われる処理であって前記スタック
サイズ獲得手段で読み出されたスタックサイズ分のスタ
ックを確保する処理とを実行することを内容とする単一
の機械語命令に置き換えることを特徴とする請求項1記
載のプログラム変換装置。 - 【請求項3】 機械語命令を解釈して実行するプロセッ
サであって、 与えられた機械語命令が所定のサブルーチンコール命令
かどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、その処理の遅延スロットを利用して行う処理であっ
てそのサブルーチンコール命令に含まれるスタックサイ
ズのスタックを確保する処理とを実行する手段とを備え
ることを特徴とするプロセッサ。 - 【請求項4】 プログラムを機械語命令に翻訳し、ファ
イルとして出力する翻訳装置と、複数の前記ファイルに
納められた機械語命令列を連結する連結装置とからなる
プログラム変換装置であって、 前記翻訳装置は、 前記プログラムに含まれるサブルーチンについて、各サ
ブルーチンでの処理において退避すべきレジスタ名を抽
出してサブルーチンの機械語命令列と共に前記ファイル
に格納する退避レジスタ抽出手段を備え、 前記連結装置は、 前記機械語命令列の中からサブルーチンへの分岐命令を
検出する分岐命令検出手段と、 検出された分岐命令が指定している分岐先サブルーチン
を納めたファイルを特定するファイル検索手段と、 前記分岐先サブルーチンでの処理において退避すべきレ
ジスタ名を前記ファイル検索手段によって特定されたフ
ァイルから読み出す退避レジスタ獲得手段と、 前記分岐命令を、前記分岐先サブルーチンに分岐する処
理と、その処理の遅延スロットを利用して行われる処理
であって前記退避レジスタ獲得手段で読み出されたレジ
スタの内容を退避する処理とを実行することを内容とす
る機械語命令に置き換える置換手段とを備えることを特
徴とするプログラム変換装置。 - 【請求項5】 前記置換手段は、前記分岐命令を、前記
分岐先サブルーチンに分岐する処理と、その処理の遅延
スロットを利用して行われる処理であって前記退避レジ
スタ獲得手段で読み出されたレジスタの内容を退避する
処理とを実行することを内容とする単一の機械語命令に
置き換えることを特徴とする請求項4記載のプログラム
変換装置。 - 【請求項6】 機械語命令を解釈して実行するプロセッ
サであって、 与えられた機械語命令が所定のサブルーチンコール命令
かどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、その処理の遅延スロットを利用して行う処理であっ
てそのサブルーチンコール命令で指定されるレジスタの
内容を退避する処理とを実行する手段とを備えることを
特徴とするプロセッサ。 - 【請求項7】 機械語命令を解釈して実行するプロセッ
サであって、 与えられた機械語命令が所定のサブルーチンコール命令
かどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、その処理の遅延スロットを利用して行う処理であっ
てそのサブルーチンコール命令に含まれるスタックサイ
ズのスタックを確保し、確保したスタックにそのサブル
ーチンコール命令で指定されるレジスタの内容を退避す
る処理とを実行する手段とを備えることを特徴とするプ
ロセッサ。 - 【請求項8】 請求項1記載のプログラム変換装置によ
り生成された機械語命令を実行するプロセッサであっ
て、 与えられた機械語命令が所定のサブルーチンコール命令
かどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、その処理の遅延スロットを利用して行う処理であっ
てそのサブルーチンコール命令に含まれるスタックサイ
ズのスタックを確保する処理とを実行する手段とを備え
ることを特徴とするプロセッサ。 - 【請求項9】 請求項4記載のプログラム変換装置によ
り生成された機械語命令を実行するプロセッサであっ
て、 与えられた機械語命令が所定のサブルーチンコール命令
かどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、その処理の遅延スロットを利用して行う処理であっ
てそのサブルーチンコール命令で指定されるレジスタの
内容を退避する処理とを実行する手段とを備えることを
特徴とするプロセッサ。 - 【請求項10】 機械語命令列を解釈して実行するプロ
セッサであって、 与えられた機械語命令が、分岐に伴って確保すべきスタ
ックのサイズの指定を含む所定のサブルーチンコール命
令であるかどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、そのサブルーチンコール命令によって特定される前
記サイズのスタックを確保する処理とを実行する手段と
を備えることを特徴とするプロセッサ。 - 【請求項11】 機械語命令列を解釈して実行するプロ
セッサであって、 与えられた機械語命令が、分岐に伴って退避すべきレジ
スタの指定を含む所定のサブルーチンコール命令である
かどうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、そのサブルーチンコール命令によって特定される前
記レジスタの内容を退避する処理とを実行する手段とを
備えることを特徴とするプロセッサ。 - 【請求項12】 機械語命令列を解釈して実行するプロ
セッサであって、 与えられた機械語命令が、分岐に伴って確保すべきスタ
ックのサイズの指定と分岐に伴って退避すべきレジスタ
の指定とを含む所定のサブルーチンコール命令であるか
どうかを判断する命令デコード手段と、 前記命令デコード手段により所定のサブルーチンコール
命令であると判断された場合には、そのサブルーチンコ
ール命令によって特定される分岐先番地に分岐する処理
と、そのサブルーチンコール命令によって特定される前
記サイズのスタックを確保する処理と、そのサブルーチ
ンコール命令によって特定される前記レジスタの内容を
退避する処理とを実行する手段とを備えることを特徴と
するプロセッサ。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07111701A JP3130446B2 (ja) | 1995-05-10 | 1995-05-10 | プログラム変換装置及びプロセッサ |
US08/589,802 US5758162A (en) | 1995-05-10 | 1996-01-22 | Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions |
EP96301214A EP0742517B1 (en) | 1995-05-10 | 1996-02-23 | A program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions |
DE69614183T DE69614183T2 (de) | 1995-05-10 | 1996-02-23 | Programmübersetzungsgerät und Prozessor, die eine schnelle Ausführung von Unterprogrammsprungbefehlen erreichen |
TW085102244A TW289812B (ja) | 1995-05-10 | 1996-02-27 | |
CN96103712A CN1099074C (zh) | 1995-05-10 | 1996-03-22 | 高速执行子程序转移指令的程序变换装置和处理器 |
KR1019960015311A KR100247900B1 (ko) | 1995-05-10 | 1996-05-10 | 프로그램변환장치 및 프로세서 |
US08/959,386 US5978905A (en) | 1995-05-10 | 1997-11-18 | Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07111701A JP3130446B2 (ja) | 1995-05-10 | 1995-05-10 | プログラム変換装置及びプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08305581A JPH08305581A (ja) | 1996-11-22 |
JP3130446B2 true JP3130446B2 (ja) | 2001-01-31 |
Family
ID=14567971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07111701A Expired - Lifetime JP3130446B2 (ja) | 1995-05-10 | 1995-05-10 | プログラム変換装置及びプロセッサ |
Country Status (7)
Country | Link |
---|---|
US (2) | US5758162A (ja) |
EP (1) | EP0742517B1 (ja) |
JP (1) | JP3130446B2 (ja) |
KR (1) | KR100247900B1 (ja) |
CN (1) | CN1099074C (ja) |
DE (1) | DE69614183T2 (ja) |
TW (1) | TW289812B (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790845A (en) * | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
US6021273A (en) | 1997-06-30 | 2000-02-01 | Sun Microsystems, Inc. | Interpreter generation and implementation utilizing interpreter states and register caching |
US6513156B2 (en) * | 1997-06-30 | 2003-01-28 | Sun Microsystems, Inc. | Interpreting functions utilizing a hybrid of virtual and native machine instructions |
US6016556A (en) * | 1997-07-17 | 2000-01-18 | Tektronix, Inc. | System for identifying an acquisition sample corresponding to a source code statement |
EP0899653B1 (en) * | 1997-08-29 | 2006-10-04 | Matsushita Electric Industrial Co., Ltd. | Processor with reduced number of conditional instructions |
US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
US6212630B1 (en) | 1997-12-10 | 2001-04-03 | Matsushita Electric Industrial Co., Ltd. | Microprocessor for overlapping stack frame allocation with saving of subroutine data into stack area |
JP4041248B2 (ja) * | 1999-07-09 | 2008-01-30 | 松下電器産業株式会社 | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 |
CN1296818C (zh) * | 1999-09-01 | 2007-01-24 | 英特尔公司 | 用于多线程并行处理器的指令 |
JP3664473B2 (ja) * | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7383443B2 (en) * | 2002-06-27 | 2008-06-03 | Microsoft Corporation | System and method for obfuscating code using instruction replacement scheme |
JP2004362086A (ja) * | 2003-06-03 | 2004-12-24 | Matsushita Electric Ind Co Ltd | 情報処理装置および機械語プログラム変換装置 |
US7788638B2 (en) | 2003-11-21 | 2010-08-31 | Citigroup Global Markets Inc. | Method and system for data file processing |
WO2008072178A1 (en) * | 2006-12-11 | 2008-06-19 | Nxp B.V. | Pipelined processor and compiler/scheduler for variable number branch delay slots |
US8813057B2 (en) * | 2007-03-31 | 2014-08-19 | Intel Corporation | Branch pruning in architectures with speculation support |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375242A (en) | 1993-09-29 | 1994-12-20 | Hewlett-Packard Company | Compiler architecture for cross-module optimization |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321823A (en) * | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
US5274820A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Method and system for eliminating operation codes from intermediate prolog instructions |
US5222220A (en) * | 1989-11-16 | 1993-06-22 | Mehta Hemang S | Microprocessor stack built-in guards |
DE69130138T2 (de) * | 1990-06-29 | 1999-05-06 | Digital Equipment Corp., Maynard, Mass. | Sprungvorhersageeinheit für hochleistungsfähigen Prozessor |
JPH0619721A (ja) * | 1991-02-21 | 1994-01-28 | Oki Electric Ind Co Ltd | 機械語翻訳最適化方式 |
US5450585A (en) * | 1991-05-15 | 1995-09-12 | International Business Machines Corporation | Compiler with delayed conditional branching |
JPH0744419A (ja) * | 1993-08-03 | 1995-02-14 | Nec Ic Microcomput Syst Ltd | マイコン開発支援装置 |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
-
1995
- 1995-05-10 JP JP07111701A patent/JP3130446B2/ja not_active Expired - Lifetime
-
1996
- 1996-01-22 US US08/589,802 patent/US5758162A/en not_active Expired - Lifetime
- 1996-02-23 DE DE69614183T patent/DE69614183T2/de not_active Expired - Lifetime
- 1996-02-23 EP EP96301214A patent/EP0742517B1/en not_active Expired - Lifetime
- 1996-02-27 TW TW085102244A patent/TW289812B/zh not_active IP Right Cessation
- 1996-03-22 CN CN96103712A patent/CN1099074C/zh not_active Expired - Lifetime
- 1996-05-10 KR KR1019960015311A patent/KR100247900B1/ko not_active IP Right Cessation
-
1997
- 1997-11-18 US US08/959,386 patent/US5978905A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375242A (en) | 1993-09-29 | 1994-12-20 | Hewlett-Packard Company | Compiler architecture for cross-module optimization |
Also Published As
Publication number | Publication date |
---|---|
CN1099074C (zh) | 2003-01-15 |
EP0742517A2 (en) | 1996-11-13 |
DE69614183T2 (de) | 2001-11-29 |
EP0742517B1 (en) | 2001-08-01 |
JPH08305581A (ja) | 1996-11-22 |
DE69614183D1 (de) | 2001-09-06 |
TW289812B (ja) | 1996-11-01 |
CN1138174A (zh) | 1996-12-18 |
US5758162A (en) | 1998-05-26 |
US5978905A (en) | 1999-11-02 |
KR100247900B1 (ko) | 2000-03-15 |
KR960042340A (ko) | 1996-12-21 |
EP0742517A3 (en) | 1997-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3130446B2 (ja) | プログラム変換装置及びプロセッサ | |
US7458069B2 (en) | System and method for fusing instructions | |
JPH11327918A (ja) | 動的変換システム | |
KR100253655B1 (ko) | 프로세서및번역장치 | |
US6243786B1 (en) | Apparatus and method for generating an interrupt prohibited zone in pipelined data processors | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
JPH07120284B2 (ja) | データ処理装置 | |
US7120905B2 (en) | System and method for transformation of assembly code for conditional execution | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP3335735B2 (ja) | 演算処理装置 | |
JP3547562B2 (ja) | マイクロプロセッサ | |
JP3739556B2 (ja) | 情報処理装置 | |
JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
JP2835179B2 (ja) | 並列処理計算機 | |
JP2545594B2 (ja) | オペランドデータ先取り方式 | |
JP3102846B2 (ja) | ロードアドレスキャッシュ装置及び方法 | |
JPS60198640A (ja) | パイプライン型情報処理装置 | |
JPS5875256A (ja) | 実行命令遂行状態のモニタ方式 | |
JP2856703B2 (ja) | プロセッサ | |
JPH0827717B2 (ja) | ミスアライメント処理方式 | |
JPH07191845A (ja) | 即値データ転送装置 | |
JPH10214187A (ja) | 高速分岐処理装置及びその分岐処理方法 | |
JPS60179844A (ja) | 命令再読出し制御方式 | |
JPH0895784A (ja) | 演算処理装置及び方法 | |
JPS629932B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071117 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091117 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091117 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111117 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121117 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121117 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131117 Year of fee payment: 13 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
EXPY | Cancellation because of completion of term | ||
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |