JP2001273138A - プログラム変換装置および方法 - Google Patents

プログラム変換装置および方法

Info

Publication number
JP2001273138A
JP2001273138A JP2000084513A JP2000084513A JP2001273138A JP 2001273138 A JP2001273138 A JP 2001273138A JP 2000084513 A JP2000084513 A JP 2000084513A JP 2000084513 A JP2000084513 A JP 2000084513A JP 2001273138 A JP2001273138 A JP 2001273138A
Authority
JP
Japan
Prior art keywords
branch
instruction
program
binary program
execution
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
JP2000084513A
Other languages
English (en)
Inventor
Satoshi Takahashi
聡 高橋
Hajime Okuda
肇 奥田
Kazutaka Aizawa
和孝 相沢
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 JP2000084513A priority Critical patent/JP2001273138A/ja
Priority to US09/716,943 priority patent/US6813763B1/en
Publication of JP2001273138A publication Critical patent/JP2001273138A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3846Speculative instruction execution using static prediction, e.g. branch taken strategy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4451Avoiding pipeline stalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

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

Abstract

(57)【要約】 【課題】プログラムを実行する計算機の分岐予測特性を
把握し、その特性に合致したバイナリ・プログラムを構
成することで、その予測のヒット率を向上させ、パイプ
ライン処理機能を有する計算機の性能向上を図る。 【解決手段】バイナリ・プログラムを分岐予測手段を備
えた計算機で実行されるバイナリ・プログラムに変換す
るバイナリ・プログラム変換装置であって、その計算機
の分岐予測の特性と複数の命令ブロックにより構成され
る変換前のバイナリ・プログラムが実行された際の情報
とに基づき、変換前のバイナリ・プログラムの実行され
た命令ブロックに対応する部分への分岐命令を実行する
際の分岐予測のヒット率が向上するように変換前のバイ
ナリ・プログラムの複数の命令ブロックを再構成するも
のである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バイナリ・プログ
ラムを別のバイナリ・プログラムに変換するバイナリ・
プログラム変換装置・方法に関し、特に変換前のバイナ
リ・プログラム中の命令列を他の命令列に書き換えるこ
とで変換後のプログラムの実行を高速化する技術に関す
るものである。
【0002】
【従来の技術】この種のバイナリ・プログラムの変換に
関する発明としては、本出願人による特開平10-187460
公報等に記載された発明がある。この先行技術文献では
変換後のバイナリ・プログラムがキャッシュ・メモリを
備えた計算機で実行される際に、キャッシュ・メモリの
ヒット率を向上させるために変換前のバイナリ・プログ
ラムの複数の命令ブロックを再構成する装置および方法
が提案されていた。
【0003】例えば、複数の命令ブロックにより構成さ
れる変換前のバイナリ・プログラムを一旦実行してみ
て、その実行された際の情報に基づき、実行された命令
ブロックを実行されなかった命令ブロックとは分離し、
実行された命令ブロックが連続するように変換前のバイ
ナリ・プログラムの複数の命令ブロックを再構成するこ
とで変換後のバイナリ・プログラムを得ていた。これに
より、その変換後のプログラムの実際に実行される部分
を局所化することでキャッシュ・メモリの有効利用を図
り、結果的にキャッシュ・メモリのヒット率を向上させ
ていたものである。
【0004】一方、コンピュータの高速化技術としては
上述のようなキャッシュ・メモリの利用の他に、一つの
命令の実行を複数の段階に細分化し、それを流れ作業の
ごとく実行したり、連続して実行される一連の命令を流
れ作業のごとく実行するパイプライン処理が知られてい
る。このパイプラインの処理ではその流れ作業の処理順
を乱さないことがコンピュータの高速化を図る上で非常
に重要になっている。
【0005】このようなパイプライン処理においては、
条件付き分岐命令(Conditional Branch)により命令の流
れがその時々の条件に依存して分断される結果、流れ作
業が乱されてしまうことがある。その場合分岐命令実行
後にパイプラインの流れを再度組み上げるまでに余分の
時間を費やしてしまうことが問題となる。このようなパ
イプラインの乱れを防止するため最近のコンピュータに
おいては分岐予測という機能が実装されており、パイプ
ラインを組み上げる際に予め予測された分岐先の命令を
優先してパイプラインに詰めておくことによりその乱れ
の低減を図ってている。
【0006】この分岐予測としては静的な分岐予測と動
的な分岐予測の2種類のものが知られている。動的な分
岐予測は過去の分岐方向の履歴を基に分岐予測をするも
のであり、命令を実行する計算機の有する予測機能によ
りその命令実行状況に応じてパイプラインの実行効率を
向上させるものである。
【0007】一方、静的な分岐予測は予測する分岐の方
向(アドレスの上位方向か下位方向か)が実行プログラ
ム中で一定のものである。これは、まだ分岐の履歴が作
られていない初期の状態や分岐の履歴を保存する分岐予
測バッファ(メモリ)がオーバーフローしてその命令の
分岐履歴が使用できないような状態での分岐命令実行の
際の分岐先予測に用いられるものである。
【0008】この静的な分岐予測には、計算機のCPUに
より種々のものがあり、分岐命令中に分岐予測ビットを
備え、プログラムをコンパイルする際に分岐予測ビット
を設定できるものや分岐予測の特性が予め暗黙的に定め
られているもの等がある。分岐予測の特性が予め暗黙的
に定められている場合、その特性を生かすようにバイナ
リ・プログラムを構成しておかないと、その特性が有効
利用されないばかりか、かえって実行性能を劣化させる
要因にもなり得る。
【0009】しかし、上記従来の技術においては、キャ
ッシュ・メモリのヒット率を向上させることで計算機の
処理速度の向上を図るものであるが、上述のような静的
分岐予測の特性を考慮しそのヒット率を向上させるとい
う配慮がされておらず、静的分岐予測によって必ずしも
有効にはパイプラインの乱れの低減が達成されてはいな
かった。
【0010】
【発明が解決しようとする課題】本発明はこのような従
来の技術の問題点に鑑みてなされたものであり、その目
的とするところはプログラムを実行する計算機の分岐予
測特性を把握し、その特性に合致したバイナリ・プログ
ラムを構成することで、その予測のヒット率を向上さ
せ、ひいてはパイプラインの乱れを有効に防止し、その
処理速度の向上を図ることにある。
【0011】
【課題を解決するための手段】本発明は前記課題を解決
するために、以下の手段を採用した。要するに本発明は
変換前のプログラムを予め実行してその実行情報から分
岐命令の実行特性を解析し、一方計算機の静的分岐予測
の特性を把握しておき、その分岐予測の方向と実際の分
岐の方向が一致するようににバイナリ・プログラムを構
成することで、実行時の分岐予測のヒット率を向上させ
るものである。
【0012】すなわち、本発明は、複数の命令ブロック
からなる第1のバイナリ・プログラムを分岐予測手段を
備えた計算機で実行される第2のバイナリ・プログラム
に変換するプログラム変換装置であって、前記第1のバ
イナリ・プログラムを予め実行した際に収集された実行
情報を記憶する実行情報記憶手段と、その実行情報から
前記第1のプログラムの複数の命令ブロック間の分岐命
令の実行特性を解析する解析手段と、前記計算機の分岐
予測特性を記憶する分岐予測特性記憶手段と、前記分岐
命令の実行特性と分岐予測特性とに基づいて、前記第1
のバイナリ・プログラムの命令ブロック間の分岐命令
を、分岐予測のヒット率が向上するように書き換える変
換手段とからなるものである。
【0013】この変換手段として、前記計算機が上位方
向の番地への分岐命令に対して分岐の実行確率を低く予
測する特性を有する場合に、分岐の発生頻度の低い分岐
命令については上位方向の番地への分岐命令となり、分
岐の発生頻度の高い分岐命令については、下位方向の番
地への分岐命令となるように複数の命令ブロックを再構
成するものも好適である。
【0014】これによって実際の分岐の発生頻度の低い
分岐命令に対して分岐しないとの予測がヒットし、パイ
プラインの乱れを防止し、計算機の実行速度を向上させ
ることが可能となる。
【0015】また、前記変換手段は、分岐の発生頻度の
高い分岐命令については、その分岐前の命令ブロックに
対応する部分と分岐後の命令ブロックに対応する部分と
が連続するように複数の命令ブロックを再構成するもの
であってもよい。
【0016】分岐前の命令ブロックと分岐後の命令ブロ
ックが連続するように変換前のバイナリ・プログラムの
複数の命令ブロックを再構成するとは、結局、変換前の
バイナリ・プログラムにおいて分岐の発生頻度の高い分
岐命令でつながれる複数の命令ブロックについては分岐
なしに直線的に実行されるように配置する一方、逆に実
行回数の少ない命令ブロックについては分岐命令の分岐
先として実行されるように配置するものである。これに
よって連続して実行される可能性の高い命令ブロック同
士を連続的に配置することで、パイプラインの乱れを防
止し、計算機の実行速度を向上させるものである。
【0017】さらに、この変換手段としては、前記計算
機が下位方向の番地への分岐命令に対して分岐の実行確
率を低く予測する特性を有する場合に、分岐の発生頻度
の低い分岐命令については下位方向の番地への分岐命令
となり、分岐の発生頻度の高い分岐命令につては、上位
方向の番地への分岐命令となるように複数の命令ブロッ
クを再構成するものも好適である。
【0018】これもまた実際の分岐の発生頻度の低い分
岐命令に対して分岐しないとの予測がヒットし、パイプ
ラインの乱れを防止し、計算機の実行速度を向上させる
ものである。
【0019】さらにまた、前記バイナリ・プログラム変
換装置は、分岐の実行頻度の高い分岐命令については、
その分岐前の命令ブロックに対応する部分と分岐後の命
令ブロックに対応する部分とが連続するように変換前の
バイナリ・プログラムの複数の命令ブロックを再構成す
ることで変換後のバイナリ・プログラムを得るようにし
てもよい。
【0020】これも上述と同様に変換前のバイナリ・プ
ログラムにおいて分岐の発生頻度の高い分岐命令でつな
がれる複数の命令ブロックに対して、変換後の分岐先を
実行回数の少ない命令ブロックに付け替え、連続して実
行される可能性の高い命令ブロック同士を連続的に配置
することで、パイプラインの乱れを防止し、計算機の実
行速度を向上させるものである。
【0021】また本発明は、複数の命令ブロックからな
る第1のバイナリ・プログラムを分岐予測手段を備えた
計算機で実行される第2のバイナリ・プログラムに変換
するために、前記第1のバイナリ・プログラムを予め実
行した際に収集された実行情報を読み出すステップと、
その実行情報から前記第1のプログラムの複数の命令ブ
ロック間の分岐命令の実行特性を解析するステップと、
前記計算機の分岐予測特性を格納するステップと、前記
分岐命令の実行特性と分岐予測特性とに基づいて、前記
第1のバイナリ・プログラムの命令ブロック間の分岐命
令を、分岐予測のヒット率が向上するように書き換えて
前記第2のバイナリ・プログラムを出力するステップと
からなるものである。
【0022】なお、複数の命令ブロックからなる第1の
バイナリ・プログラムを分岐予測手段を備えた計算機で
実行される第2のバイナリ・プログラムに変換するため
に、前記第1のバイナリ・プログラムを予め実行した際
に収集された実行情報を読み出すステップと、その実行
情報から前記第1のプログラムの複数の命令ブロック間
の分岐命令の実行特性を解析するステップと、前記計算
機の分岐予測特性を格納するステップと、前記分岐命令
の実行特性と分岐予測特性とに基づいて、前記第1のバ
イナリ・プログラムの命令ブロック間の分岐命令を、分
岐予測のヒット率が向上するように書き換えて前記第2
のバイナリ・プログラムを出力するステップとを順次実
行するプログラムをコンピュータ読取り可能な記録媒体
に記録して頒布することができる。
【0023】
【発明の実施の形態】以下、本発明の実施の形態を図1
から図14の図面に基いて説明する。なお、キャッシュ
・メモリのヒット率向上させるためのバイナリ・プログ
ラム変換技術については、前記特開平10-187460号公報
等に記載されていることから、これらの技術は広く知ら
れているものとし、本実施の形態においては、特に分岐
命令を実行する際の分岐予測のヒット率を向上させる発
明の実施について詳述する。
【0024】まず、図3、4によって一般的な計算機の
パイプライン処理機能について説明する。パイプライン
処理とは、計算機CPU内の命令を流れ作業的に実行する
ことで計算機CPUの構成要素を並列的に動作させるもの
である。
【0025】計算機CPUの各命令は、一般的には主記憶
装置からの命令の取出(命令フェッチ、IFと呼ぶ)、命
令の解読(デコード、Dと呼ぶ)、命令の対象であるデー
タの主記憶装置からの取出(オペランド・フェッチ、OF
と呼ぶ)、演算実行(EXと呼ぶ)、演算結果の主記憶装置
への格納(ストア、Sと呼ぶ)の各段階を経て実行され
る。図3はこれらを実行する計算機の構成例を示すもの
である。
【0026】パイプライン処理機能のない計算機では1
個の命令についてこれらの各段階(IF〜S)を終了した
後、次の命令のフェッチがされ、順次処理が実行され
る。これらの各段階で1マシンサイクルが費やされるの
で、この場合にはIF,D,OF,EX,Sの5マシンサイクルで1
命令の実行がなされることになる。
【0027】一方、これをパイプライン処理機能を有す
る計算機で実行すると図4に示すように最初のマシンサ
イクルで命令1のフェッチが終わり、2番目のマシンサ
イクルでそのデコードがなされている時、次の命令であ
る命令2のフェッチがなされる。以下次々に各命令の命
令フェッチからストアまでが流れ作業的に実行され、第
5番目のマシンサイクル以降は1マシンサイクルごとに
1命令の実行結果の格納がなされる。
【0028】このようにパイプライン処理機能を有する
計算機においてはパイプラインの各段階に命令が詰った
後は(図4では第5番目のマシンサイクルがその状態に
相当する)、パイプラインを構成する段階の数(図4の
例では5段階)の倍率(図4の例では5倍)でパイプラ
イン処理機能のない場合に比較して高速に命令の実行が
なされる。
【0029】しかし、このような機能を有する計算機で
あってもパイプライン処理の途中で条件付き分岐命令に
よって命令の実行順序が任意に変更されると分岐直前に
パイプラインに詰まっていた各命令が不要となり、分岐
先の命令から再度パイプラインに命令が詰め直される。
そのため、図4でいう第5番目のマシンサイクルの状態
になるまでは命令の実行結果を得ることができず、その
性能を十分に引き出せない結果となる。
【0030】このような条件付き分岐命令によるパイプ
ラインの乱れを防止するため最近の計算機では分岐予測
機能が提供されている。すなわち、予め分岐先が分かっ
ていれば、その分岐先の命令をパイプラインに詰めるこ
とによってパイプラインの流れを中断することなく処理
が実行可能となり、分岐の前後を通じて1マシンサイク
ルで1命令の実行結果をよどみなく得ることができる。
そのような分岐予測機能として動的分岐予測と静的分岐
予測の2種類が知られている。
【0031】動的分岐予測は、それまでのプログラムの
実行結果から分岐の履歴をメモリに保持し、その履歴に
基づいてそれ以降の分岐の方向を予測する機能であり、
1プログラム中の同一の分岐命令であっても状況により
分岐先の予測が変わっていく。 一方静的分岐予測とは
まだ一度も実行されたことがなく実行履歴のない分岐命
令や分岐の履歴を保持するメモリがオーバーフローして
実行履歴の保持されていない分岐命令について予め分岐
先を決めておくものである。
【0032】その場合、分岐するか否かを示す予測ビッ
トを分岐命令に持たせてプログラムのコンパイル段階で
分岐予測方向を示す方法と暗黙的に分岐方向を決めてお
く方法が知られている。
【0033】例えば、インテル社(Intel)のPentium P
roプロセッサ(以下Pentium Proと略する。Pentium Pro
はインテル社の商標である。)の場合は後者であり、分
岐履歴のない条件付き分岐命令のうち、アドレスが上位
方向となる分岐命令に対しては分岐しないと予測し、一
方、アドレスが下位方向となる分岐命令に対しては分岐
すると予測する特性を持っている。
【0034】ここでアドレスが上位方向とは、主記憶上
でアドレスが増加する方向、すなわち次の実行命令位置
を示すプログラムカウンタの進行方向を意味する。ま
た、アドレスが下位方向とは、主記憶上でアドレスを減
少する方向を意味する。
【0035】Pentium Proのような特性を有するプロセ
ッサに対して無秩序に分岐命令を与えた場合、実際の分
岐方向とプロセッサの予測する分岐方向が一致せず、上
述のようなパイプラインの無駄を発生してしまう場合が
生じ得る。
【0036】本願発明はこのような暗黙的に分岐先を決
めている静的分岐予測機能を有する計算機において、そ
の分岐予測のヒット率を向上させることでパイプライン
処理を効率的に実行するためになされたものである。す
なわち、計算機で実行されるバイナリ・プログラムを変
換して別のバイナリ・プログラムを得る際に、変換後の
バイナリ・プログラムが実行される計算機の分岐予測の
ヒット率を向上させる機能を提供するものである。
【0037】以下本実施の形態では、まず、計算機の静
的分岐予測は上述のPentium Proと同様、分岐先がアド
レスの上位方向となる分岐命令に対しては分岐しないと
予測し、一方、分岐先がアドレスの下位方向となる分岐
命令に対しては分岐すると予測する特性を持っていると
仮定する。
【0038】図1は本願発明の第1実施の形態のバイナ
リ・プログラム変換ツールの入出力の関係を示すブロッ
ク図である。図1のように本実施の形態ではバイナリ・
プログラム変換ツール4そのものの他トレーサ2が使用
され、トレーサ2の生成するトレース情報3を受けてバ
イナリ・プログラム変換ツール4は変換前のバイナリ・
プログラム1から変換後のバイナリ・プログラム5を生
成する。
【0039】図2はそのバイナリ・プログラム変換ツー
ル4の構成を示すブロック図である。この図のように本
実施の形態では、トレース情報3を解析するアナライザ
6、このアナライザ6の解析結果を受けてプログラムの
再配置を行うリロケータ7、このリロケータ7に対し分
岐命令の位置等を指示するために逆アセンブルコードを
生成する逆アセンブル部9、さらにリロケータ7の再配
置したバイナリ・プログラムを受けこれを変換前の計算
機の命令コードから変換後の計算機の命令コードに書き
換えたり、分岐命令のアドレスを書き換えてその整合を
取るコンバータ8から構成される。
【0040】まず、変換前のバイナリ・プログラムを実
行してトレーサ2によってその動作履歴(トレース情
報)を採取する。この作業を実行トレース、あるいは実
行プロファイルという。その実行トレース結果は計算機
で実行可能なバイナリ・プログラム単位、及び命令ブロ
ック単位に集計される。その集計された結果がトレース
情報3である。
【0041】このトレース情報3はアナライザ6によっ
て解析される。アナライザ6はトレース情報3を基にバ
イナリ・プログラムを制御転送命令ごとに区切って命令
ブロック化する。制御転送命令とはプログラムの実行順
(実行アドレス)を制御する分岐命令やジャンプ命令、
コール命令等をいう。したがって、命令ブロックとは制
御転送命令ごとに区切られたバイナリ・プログラムの部
分をいう。なお、命令ブロックの先頭が分岐命令の分岐
先となるラベルとなるようにプログラムの領域を区切る
ことで定義される命令ブロックもある。アナライザ6は
トレース情報3を基にどの命令ブロックが何回実行さ
れ、どの命令ブロックからどの命令ブロックへ分岐した
かを調べる。
【0042】アナライザ6の解析結果11に基づきリロ
ケータ7がプログラムを再配置する。プログラムの再配
置とはプログラムを制御転送命令で区切った命令ブロッ
ク単位で並べ換えるものである。この制御転送命令の位
置は逆アセンブル部9の出力する制御転送命令の位置と
そのオペランド情報10に示される。
【0043】再配置において分岐頻度の低い分岐命令の
分岐先命令ブロックは主記憶のアドレスの上位方向に配
置するように決定される。一方分岐頻度の高い分岐命令
の分岐先命令ブロックは主記憶のアドレスの下位方向に
配置するように決定される。
【0044】分岐頻度の高い分岐命令については、その
分岐先の命令ブロックをアドレスの下位方向に配置する
代わりに、分岐の判定条件を反転し、分岐先命令ブロッ
クを分岐元命令ブロックに直結してもよい。その場合、
反転された分岐条件による分岐先命令ブロックはアドレ
スの上位方向に配置するように決定される。以上の結
果、分岐頻度の低い分岐先命令ブロックはアドレスの上
位方向に配置され、分岐頻度の高い分岐先命令ブロック
はアドレスの下位方向または分岐元命令ブロックに直結
して配置されることになる。
【0045】最後にコンバータ8によって変換後に使用
される計算機の命令コードへの変換と分岐命令の分岐先
アドレスの変更がなされ、変換後のバイナリ・プログラ
ムが出力される。なお、分岐命令の分岐先アドレスの変
更は上記リロケータ7において命令ブロックの再配置と
同時に行ってもよい。
【0046】図5は変換前のバイナリ・プログラムの一
例である。この図のプログラム部分はENT1のラベルのあ
るアドレスから始まりJNE命令(Jump on Not Equal、す
なわちこの命令直前のTest命令によるeaxとebxの比較結
果が等しくなければ分岐する命令)で終わる第1の命令
ブロック20、JNE命令の次の命令(PUSH命令)から始
まりラベルL1の直前の命令(ADD命令)で終わる第2の命
令ブロック21、ラベルL1の付いたRET命令のみからな
る第3の命令ブロック22を表している。
【0047】今第1の命令ブロック20を主要な機能を
実行する命令ブロックとし、第2の命令ブロック21を
エラー処理ブロックと仮定する。このようなエラー処理
は通常の機能の実行に比べて実行頻度が低い。
【0048】このような命令ブロックの構造を持つプロ
グラムを前述のPentium Proのように静的分岐予測にお
いてアドレスが下位方向となる分岐命令に対しては分岐
すると予測し、上位方向には分岐しないと予測する場
合、図5の第1の命令ブロック20以降は第2の命令ブ
ロック21の命令がパイプラインに詰められていくこと
なる。しかし、エラー処理である第2の命令ブロック2
1は希にしか実行されないため、通常は第1の命令ブロ
ック20の最後のJNE命令で分岐が発生し、ラベルL1で
示され第3の命令ブロック22以降の命令が実行され
る。その結果パイプラインに詰められた第2の命令ブロ
ック21の命令はすべて棄てられ、第3の命令ブロック
22のRET命令(リターン命令、その前に実行されたCAL
L命令の次のアドレスへ実行アドレスを移す命令)以降
の命令から再度パイプラインが組み上げられることにな
る。
【0049】そこで、本実施の形態のバイナリ・プログ
ラム変換ツールでは、図6に示すようにプログラムの命
令ブロックの再配置を行うものである。図6では第1の
命令ブロック20の直後に第3の命令ブロック22が配
置され、さらにその後(アドレスの上位方向)にエラー
処理を実行する第2の命令ブロック21が配置されてい
る。また、第1の命令ブロック20の最後の条件付き分
岐命令は分岐条件が反転されJE(Jump on Equal、すなわ
ちこの命令直前のTest命令によるeaxとebxの比較結果が
等しければ分岐する命令)となり、その分岐先は新たに
追加されたラベルnew_L1で示されている。
【0050】この命令ブロックの構造を持つプログラム
を前述のPentium Proのようなプロセッサで実行する
と、第1の命令ブロック20を実行した後、最後の条件
付き分岐命令JEは分岐しないと予測され、その直後の第
3の命令ブロック22のRET命令以降で実行される命令
がパイプラインに詰められ、実際の実行でもそのように
命令が実行される。このように、パイプラインを乱すこ
となく各命令が実行されるため、パイプライン処理機能
を有するプロセッサの性能を十分に引き出すことができ
る。
【0051】なお、図5、図6では各命令の長さがすべ
て同一の4バイトと仮定されているが、本発明の実施は
そのような命令コードと有する計算機に限られるもので
はない。
【0052】図7と図8は各々図5と図6の命令ブロッ
クの配置と分岐の状態を模式的に表現したものである。
図で分岐は矢印で表現され、実線の矢印は分岐確率の高
い分岐または無条件分岐を示し、一方点線の矢印は分岐
確率の低い分岐を示す。また、図7、図8ではアドレス
は省略されているが、図で下向きがアドレスの上位方向
とする。
【0053】図9〜図11は第2のプログラム例(プロ
グラム例2)の命令ブロックの配置と分岐の状態とを模
式的に表現にしたものである。アドレスの増加方向およ
び矢印の意味は図7、図8と同様であるとする。
【0054】図9は本実施の形態による変換前のプログ
ラムである。プログラム例1と同様第1から第3の命令
ブロックで構成されているが、第2の命令ブロックであ
るエラー処理ブロック27の最後でRET命令が実行され
る点、及び第3の命令ブロック28から第1の命令ブロ
ック26へJMP命令(無条件分岐)により戻る点がプロ
グラム例1と異なっている。このことから本例ではエラ
ーが発生しないかぎり第1と第3の命令ブロックが繰り
返される構造を示している。本例でも第2の命令ブロッ
クであるエラー処理は通常の処理である第1および第3
の命令ブロックに比べて実行頻度が低いと仮定する。こ
のような構造では一旦プログラムが実行され動的分岐予
測が働くようになると、たとえ条件付き分岐命令が含ま
れていてもパイプラインが乱されることは少ない。しか
し、これらの命令が初めて実行される場合や分岐の履歴
を保存するメモリがオーバーフローしたような場合に
は、動的分岐予測が働かない。このため、図9のままで
は上記Pentium Proのようなプロセッサではやはり処理
効率が悪い。
【0055】図10には図9のプログラム例2を本実施
の形態のバイナリ・プログラム変換ツールで変換した結
果を示す。これは図8と同様エラー処理ブロック27を
アドレスの上位方向へ移動し、これに分岐先ラベルnew
_ERR:を付し、第1の命令ブロック26の最後の分岐命
令(JNE命令)の判定条件を反転しJE命令とした上で、
このエラー処理ブロックに分岐させたものである。ま
た、第3の命令ブロック28から第1の命令ブロック2
6への無条件分岐命令は変更されない。
【0056】これを上述のPentium Proのようなプロセ
ッサで実行すると図8の場合と同様、第1の命令ブロッ
ク26の条件付き分岐命令(JE)は分岐されないと予測さ
れ第1と第3の命令ブロック28の命令が次々とパイプ
ラインに詰め込まれ、かつ実際の実行でもエラーがまれ
にしか発生しないことからパイプラインが乱されること
が少ない。
【0057】なお、図9のプログラム例2は図11のよ
うに再配置することも好適である。この例では最初に第
3の命令ブロック28を置き、その直後に第1の命令ブ
ロック26を置くことで第3の命令ブロック28から第
1の命令ブロック26への無条件分岐命令を不要として
いる。また、第1の命令ブロック26から第3の命令ブ
ロック28へは実行アドレスの下位方向(減少する方
向)に分岐するように条件付き分岐命令JNEの分岐先ア
ドレスが変更されている(実際にはラベルENT3のアドレ
スが変更になっている)。したがって、これを上述のPe
ntium Proのようなプロセッサで実行すると第1の命令
ブロック26から第3の命令ブロック28への分岐は分
岐すると予測され、パイプラインには第1と第3の命令
ブロック28の命令が次々に詰められ、かつ、実際の処
理の実行でもそのような分岐がなされる結果やはりパイ
プラインが乱されることは少ない。
【0058】以上は、静的分岐予測において暗黙的に条
件付き分岐命令のうちアドレスの上位方向には分岐しな
いと予測し、下位方向には分岐すると予測するプロセッ
サに対して効率的なパイプライン処理を実行するための
バイナリ・プログラムの変換結果を示したものである。
一方、その逆に静的分岐予測において暗黙的に条件付き
分岐命令のうちアドレスの下位方向には分岐しないと予
測し、上位方向には分岐すると予測するプロセッサに対
しても全く同様に考えることができる。
【0059】例えば図12に変換前のプログラムの命令
ブロックの構成の一例を示す。この例では第2の命令ブ
ロック30の最後に条件付き分岐命令JNE置かれ、さら
にその後にエラー処理を行う第3の命令ブロック31が
置かれている。これを上述のようなアドレス下位方向に
は分岐しないと予測するプロセッサで実行すると、第2
の命令ブロック30の分岐命令は分岐しないと予測さ
れ、第2の命令ブロック30の後に第3の命令ブロック
31のエラー処理を実行する命令がパイプラインに詰め
られる。
【0060】一方、実際の実行においてエラー処理が希
にしか実行されないとすると上述の図9の場合と同様に
パイプラインの乱れが生じる。そこで、これを図13ま
たは図14のように変換することで分岐予測と実際の分
岐の発生を合致させパイプラインの乱れを低減できる。
【0061】図13では,第2の命令ブロック30の条
件付き分岐命令の分岐先がアドレスの下位方向であるた
め、分岐しないと予測され、第1の命令ブロック29と
第2の命令ブロック30の命令が次々にパイプラインに
詰められ実行される。
【0062】また図14では第2の命令ブロック30の
条件付き分岐命令の分岐先がアドレスの上位方向である
ため、分岐すると予測され、やはり第1の命令ブロック
29と第2の命令ブロック30の命令が次々にパイプラ
インに詰められ実行されるからである。ただし、特開平
10-187460公報に示されているようにキャッシュ・メモ
リの有効利用という観点からは実行頻度の高い命令ブロ
ックを極力直線的に配置する方が好ましく、その点では
図14より図13の配置とする方が望ましい。
【0063】変換後のプログラムを実行させる計算機の
静的分岐予測がアドレスの上位方向、下位方向のいずれ
を分岐先として予測するか、また、配置後の命令ブロッ
クを図10と図11、および図13と図14のいずれに
するか(実行される命令ブロックを極力直線的に配置す
るか否か)といったバイナリ・プログラム変換における
変換仕様は変換実行時に与え、あるいは、予めバイナリ
・プログラム変換ツールの内部パラメータとして組み込
んでおくことができる。
【0064】また以上は通常のパイプライン処理の計算
機についてのみ説明したが、パイプラインのステージを
より細分化したスーパーパイプライン処理機能を備えた
計算機にも適用できることはもちろんのことである。
【0065】
【発明の効果】以上説明したように、本発明によれば、
分岐予測のヒット率が向上するようにバイナリ・プログ
ラムの複数の命令ブロックを再構成するのでパイプライ
ンの乱れが防止されパイプライン処理機能を有する計算
機の性能を十分に引き出すことができる。
【0066】また、本発明によれば計算機が上位方向の
番地への分岐命令に対して分岐の実行確率を低く予測す
る特性を有する場合に、分岐の実行頻度の低い分岐命令
については上位方向の番地への分岐命令となり、分岐の
実行頻度の高い分岐命令につては、下位方向の番地への
分岐命令となるようにバイナリ・プログラムの複数の命
令ブロックを再構成するのでパイプラインの乱れを低減
できる。
【0067】さらに本発明によれば分岐の実行頻度の高
い分岐命令については、その分岐前の命令ブロックと分
岐後の命令ブロックが連続するようにバイナリ・プログ
ラムの複数の命令ブロックを再構成するのでキャッシュ
・メモリのヒット率の向上とともに分岐予測のヒット率
の向上を図ることができる。
【0068】さらにまた計算機が下位方向の番地への分
岐命令に対して分岐の実行確率を低く予測する特性を有
する場合に、分岐の実行頻度の低い分岐命令については
下位方向の番地への分岐命令となり、分岐の実行頻度の
高い分岐命令につては、上位方向の番地への分岐命令と
なるようにバイナリ・プログラムの複数の命令ブロック
を再構成するのでパイプラインの乱れを低減できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるバイナリ・
プログラム変換ツールの入出力関係を示すブロック図で
ある。
【図2】本発明の第1の実施の形態におけるバイナリ・
プログラム変換ツールの構成を示すブロック図である。
【図3】計算機構成の例を示すブロック図である。
【図4】パイプライン処理による命令の実行例を示す図
である。
【図5】変換前プログラム例1を示す図である。
【図6】変換後プログラム例1を示す図である。
【図7】変換前プログラム例1の命令ブロックの構成図
である。
【図8】変換後プログラム例1の命令ブロックの構成図
である。
【図9】変換前プログラム例2の命令ブロックの構成図
である。
【図10】変換後プログラム例2(1)の命令ブロック
の構成図である。
【図11】変換後プログラム例2(2)の命令ブロック
の構成図である。
【図12】変換前プログラム例3の命令ブロックの構成
図である。
【図13】変換後プログラム例3(1)の命令ブロック
の構成図である。
【図14】変換後プログラム例3(2)の命令ブロック
の構成図である。
【符号の説明】
1 変換前プログラム 2 トレーサ 3 トレース情報 4 バイナリ・プログラム変換ツール 5 変換後プログラム 6 アナライザ 7 リロケータ 8 コンバータ 9 逆アセンブル部 10 制御転送命令位置とそのオペランドの情報 11 解析結果 20、26、29 第1の命令ブロック 21、27、30 第2の命令ブロック 22、28、31 第3の命令ブロック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 相沢 和孝 東京都稲城市大字大丸1405番地 株式会社 富士通パソコンシステムズ内 Fターム(参考) 5B013 BB01 5B081 CC23 CC24

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】複数の命令ブロックからなる第1のバイナ
    リ・プログラムを分岐予測手段を備えた計算機で実行さ
    れる第2のバイナリ・プログラムに変換するプログラム
    変換装置であって、 前記第1のバイナリ・プログラムを予め実行した際に収
    集された実行情報を記憶する実行情報記憶手段と、 その実行情報から前記第1のプログラムの複数の命令ブ
    ロック間の分岐命令の実行特性を解析する解析手段と、 前記計算機の分岐予測特性を記憶する分岐予測特性記憶
    手段と、 前記分岐命令の実行特性と分岐予測特性とに基づいて、
    前記第1のバイナリ・プログラムの命令ブロック間の分
    岐命令を、分岐予測のヒット率が向上するように書き換
    える変換手段とからなるバイナリ・プログラム変換装
    置。
  2. 【請求項2】前記変換手段は、前記計算機が上位方向の
    番地への分岐命令に対して分岐の実行確率を低く予測す
    る特性を有する場合に、分岐の発生頻度の低い分岐命令
    については上位方向の番地への分岐命令となり、分岐の
    発生頻度の高い分岐命令につては、下位方向の番地への
    分岐命令となるように複数の命令ブロックを再構成する
    請求項1記載のバイナリ・プログラム変換装置。
  3. 【請求項3】前記変換手段は、分岐の発生頻度の高い分
    岐命令については、その分岐前の命令ブロックに対応す
    る部分と分岐後の命令ブロックに対応する部分とが連続
    するように複数の命令ブロックを再構成する請求項2記
    載のバイナリ・プログラム変換装置。
  4. 【請求項4】前記変換手段は、前記計算機が下位方向の
    番地への分岐命令に対して分岐の実行確率を低く予測す
    る特性を有する場合に、分岐の発生頻度の低い分岐命令
    については下位方向の番地への分岐命令となり、分岐の
    発生頻度の高い分岐命令につては、上位方向の番地への
    分岐命令となるように複数の命令ブロックを再構成する
    請求項1記載のバイナリ・プログラム変換装置。
  5. 【請求項5】前記変換手段は、分岐の発生頻度の高い分
    岐命令については、その分岐前の命令ブロックに対応す
    る部分と分岐後の命令ブロックに対応する部分とが連続
    するように複数の命令ブロックを再構成する請求項4記
    載のバイナリ・プログラム変換装置。
  6. 【請求項6】複数の命令ブロックからなる第1のバイナ
    リ・プログラムを分岐予測手段を備えた計算機で実行さ
    れる第2のバイナリ・プログラムに変換するために、 前記第1のバイナリ・プログラムを予め実行した際に収
    集された実行情報を読み出すステップと、 その実行情報から前記第1のプログラムの複数の命令ブ
    ロック間の分岐命令の実行特性を解析するステップと、 前記計算機の分岐予測特性を格納するステップと、 前記分岐命令の実行特性と分岐予測特性とに基づいて、
    前記第1のバイナリ・プログラムの命令ブロック間の分
    岐命令を、分岐予測のヒット率が向上するように書き換
    えて前記第2のバイナリ・プログラムを出力するステッ
    プとからなるプログラム変換方法。
  7. 【請求項7】複数の命令ブロックからなる第1のバイナ
    リ・プログラムを分岐予測手段を備えた計算機で実行さ
    れる第2のバイナリ・プログラムに変換するために、 前記第1のバイナリ・プログラムを予め実行した際に収
    集された実行情報を読み出すステップと、 その実行情報から前記第1のプログラムの複数の命令ブ
    ロック間の分岐命令の実行特性を解析するステップと、 前記計算機の分岐予測特性を格納するステップと、 前記分岐命令の実行特性と分岐予測特性とに基づいて、
    前記第1のバイナリ・プログラムの命令ブロック間の分
    岐命令を、分岐予測のヒット率が向上するように書き換
    えて前記第2のバイナリ・プログラムを出力するステッ
    プとを順次実行するプログラムを記憶したコンピュータ
    読取り可能な記録媒体。
JP2000084513A 2000-03-24 2000-03-24 プログラム変換装置および方法 Withdrawn JP2001273138A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000084513A JP2001273138A (ja) 2000-03-24 2000-03-24 プログラム変換装置および方法
US09/716,943 US6813763B1 (en) 2000-03-24 2000-11-22 Program conversion device for increasing hit rate of branch prediction and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000084513A JP2001273138A (ja) 2000-03-24 2000-03-24 プログラム変換装置および方法

Publications (1)

Publication Number Publication Date
JP2001273138A true JP2001273138A (ja) 2001-10-05

Family

ID=18600981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000084513A Withdrawn JP2001273138A (ja) 2000-03-24 2000-03-24 プログラム変換装置および方法

Country Status (2)

Country Link
US (1) US6813763B1 (ja)
JP (1) JP2001273138A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012032807A1 (ja) * 2010-09-10 2012-03-15 株式会社フィックスターズマルチコアラボ 実行モジュール最適化装置、実行モジュール最適化方法、およびプログラム
US8352928B2 (en) 2007-09-20 2013-01-08 Fujitsu Semiconductor Limited Program conversion apparatus, program conversion method, and computer product

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143272B2 (en) * 2002-12-27 2006-11-28 Intel Corporation Using computation histories to make predictions
US7594015B2 (en) 2003-07-28 2009-09-22 Sap Ag Grid organization
JP4047788B2 (ja) * 2003-10-16 2008-02-13 松下電器産業株式会社 コンパイラ装置およびリンカ装置
US7793290B2 (en) * 2004-12-20 2010-09-07 Sap Ag Grip application acceleration by executing grid application based on application usage history prior to user request for application execution
KR101579589B1 (ko) * 2009-02-12 2015-12-22 삼성전자 주식회사 파이프라인 프로세서를 위한 정적 분기 예측 방법과 이를 위한 컴파일 방법
US8489866B2 (en) 2010-06-30 2013-07-16 International Business Machines Corporation Branch trace history compression
WO2012103253A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Multilevel conversion table cache for translating guest instructions to native instructions
WO2012103245A2 (en) 2011-01-27 2012-08-02 Soft Machines Inc. Guest instruction block with near branching and far branching sequence construction to native instruction block
EP2668565B1 (en) 2011-01-27 2019-11-06 Intel Corporation Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
WO2012103367A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage
WO2012103359A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Hardware acceleration components for translating guest instructions to native instructions
WO2014151652A1 (en) 2013-03-15 2014-09-25 Soft Machines Inc Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor
EP2972798B1 (en) 2013-03-15 2020-06-17 Intel Corporation Method and apparatus for guest return address stack emulation supporting speculation
US20230315476A1 (en) * 2022-03-30 2023-10-05 Huawei Technologies Co., Ltd. Systems and methods for load-dependent-branch pre-resolution

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
JPH0650465B2 (ja) * 1989-10-16 1994-06-29 株式会社東芝 分岐制御回路
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5428786A (en) * 1991-03-07 1995-06-27 Digital Equipment Corporation Branch resolution via backward symbolic execution
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5434985A (en) * 1992-08-11 1995-07-18 International Business Machines Corporation Simultaneous prediction of multiple branches for superscalar processing
JP3543181B2 (ja) * 1994-11-09 2004-07-14 株式会社ルネサステクノロジ データ処理装置
JP3494736B2 (ja) * 1995-02-27 2004-02-09 株式会社ルネサステクノロジ 分岐先バッファを用いた分岐予測システム
US5875324A (en) * 1995-06-07 1999-02-23 Advanced Micro Devices, Inc. Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock
GB2302992B (en) 1995-07-05 1997-07-23 Motorola Israel Ltd Antenna assembly and communications device
US6591414B2 (en) * 1996-10-28 2003-07-08 Fujitsu Limited Binary program conversion apparatus, binary program conversion method and program recording medium
JP3425069B2 (ja) 1996-10-28 2003-07-07 富士通株式会社 バイナリ・プログラム変換装置および方法
US5995749A (en) * 1996-11-19 1999-11-30 Advanced Micro Devices, Inc. Branch prediction mechanism employing branch selectors to select a branch prediction
US6351844B1 (en) * 1998-11-05 2002-02-26 Hewlett-Packard Company Method for selecting active code traces for translation in a caching dynamic translator
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6418530B2 (en) * 1999-02-18 2002-07-09 Hewlett-Packard Company Hardware/software system for instruction profiling and trace selection using branch history information for branch predictions
US6446197B1 (en) * 1999-10-01 2002-09-03 Hitachi, Ltd. Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions
US6560693B1 (en) * 1999-12-10 2003-05-06 International Business Machines Corporation Branch history guided instruction/data prefetching
US6651163B1 (en) * 2000-03-08 2003-11-18 Advanced Micro Devices, Inc. Exception handling with reduced overhead in a multithreaded multiprocessing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352928B2 (en) 2007-09-20 2013-01-08 Fujitsu Semiconductor Limited Program conversion apparatus, program conversion method, and computer product
WO2012032807A1 (ja) * 2010-09-10 2012-03-15 株式会社フィックスターズマルチコアラボ 実行モジュール最適化装置、実行モジュール最適化方法、およびプログラム

Also Published As

Publication number Publication date
US6813763B1 (en) 2004-11-02

Similar Documents

Publication Publication Date Title
US6338136B1 (en) Pairing of load-ALU-store with conditional branch
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
TW541458B (en) loop cache memory and cache controller for pipelined microprocessors
US8495341B2 (en) Instruction length based cracking for instruction of variable length storage operands
US6185668B1 (en) Method and apparatus for speculative execution of instructions
EP1215569B1 (en) Data processor
US5504932A (en) System for executing scalar instructions in parallel based on control bits appended by compounding decoder
JP2001273138A (ja) プログラム変換装置および方法
US5463746A (en) Data processing system having prediction by using an embedded guess bit of remapped and compressed opcodes
EP0454985A2 (en) Scalable compound instruction set machine architecture
US8499293B1 (en) Symbolic renaming optimization of a trace
US8108843B2 (en) Hybrid mechanism for more efficient emulation and method therefor
EP1974254B1 (en) Early conditional selection of an operand
US6851033B2 (en) Memory access prediction in a data processing apparatus
CN117193861B (zh) 指令处理方法、装置、计算机设备和存储介质
US20070220235A1 (en) Instruction subgraph identification for a configurable accelerator
US6609191B1 (en) Method and apparatus for speculative microinstruction pairing
US6115807A (en) Static instruction decoder utilizing a circular queue to decode instructions and select instructions to be issued
US9201657B2 (en) Lower power assembler
JPH11345121A (ja) プログラム制御ユニット用の命令取り出し装置および方法
WO2024029174A1 (ja) ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム記録媒体
CN216527140U (zh) 一种分支预测的装置及处理器
JP3541356B2 (ja) 階層型命令を実行する計算機
JPH04506878A (ja) データ処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605