JPS5854449A - 分岐命令短縮化処理方式 - Google Patents

分岐命令短縮化処理方式

Info

Publication number
JPS5854449A
JPS5854449A JP56153285A JP15328581A JPS5854449A JP S5854449 A JPS5854449 A JP S5854449A JP 56153285 A JP56153285 A JP 56153285A JP 15328581 A JP15328581 A JP 15328581A JP S5854449 A JPS5854449 A JP S5854449A
Authority
JP
Japan
Prior art keywords
address
branch instruction
label
entry
branch
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
JP56153285A
Other languages
English (en)
Inventor
Hideaki Tazaki
田崎 英明
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 JP56153285A priority Critical patent/JPS5854449A/ja
Publication of JPS5854449A publication Critical patent/JPS5854449A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 本発明は、命令カウンタ相対の分岐命令にシ冒−トタイ
プの分岐命令が含まれる計算機システムにおいて、プロ
ゲラにング言語の!&埋プpセッサにおけるオブジェク
ト・プログラム中の分岐命令を鋏シ嘗−トタイプの分岐
命令で置換し、命令サイズの短縮化を図るための処理方
式に関する。
分岐命令には、現アドレスから分岐先アドレスまでの距
離が比較的短い一定値IC111ilされているシW−
Fタイプのものと、その制限のないロングタイプのもの
とがある。通常、コンパイル4611時のオブジェクF
・プログラム中の分岐命令としては、第一次的にはすべ
てロングタイプの分岐命令が使用される。しかし1分岐
命令がプログラム中に現われる頻度は比較的高いために
、可能な限り命令サイズが小さく奥行時間が速いシ璽−
トタイプ分岐命令を使用することが、メ%9容量の節約
とオブジェクドブ冒グラムの高速化のために望まれる。
このため、従来から窒ングタイプの分岐命令なシ欝−ト
タイプの分岐命令に置換するJ611カ行なわれていた
従来性われていた分岐命令のシ冒−トタイプ化技法には
いくつかの方法が知られているが、どの方法をとっても
分岐先のアドレスを格納しておくために大きなテーブル
が必要であり、短縮化を実現するためには十分なメモリ
サイズがなければならないという欠点があうた。
本発−の目的は、オブジェクト・プログラム中に含まれ
る分岐命令をシ1−トタイプの命令に変換する処理に使
用されるテーブルのサイズを必要最小限ですむよ5に制
限するテーブル制御方式を提供するととkある。
そのため9本発明は、シ璽−トタイプの分岐命令を有す
る計算機システムにおいて、アドレス・カウンタの指示
にしたがいオブジェクト・プログラムを順次読取り、ラ
ベルの定義および分岐命令を検出する手段と、各エント
リが、ラベル、#ラベルの定義位置のアドレス、該ラベ
ルを参照している分岐命令位置のアドレス、および短縮
化処理の済・未v!によりエントリの無効・有効を表示
するフラグからなるとともに前記検出手段の出力データ
が登録される複数のエントリで構成されているツペルー
テーブル手段と、該2ベル・テーブルの探索および更新
を行なうテーブル管理手段と。
ツヘル拳テーブル中に登録されているアドレスとアト1
゛レス・カウンタの現在値との差を計算し、その差がシ
曽−トタイプ分岐命令の許容最大飛び欠相対アドレス範
囲内にあるか否かを判定する判定手段と、諌判定結果に
基づいてシ曹−トタイプ分岐命令の置換部層を行なう置
換手段とをそなえ。
前記ラベル・テーブルのエントリ数は、シ璽−トタイプ
分岐命令の許容最大飛び欠相対アドレス値を最小命令サ
イズで除した値Kfiば等しく定め。
更に前記テーブル管理手段は、新エントリが前記フラグ
が無効表示となうているエントリ、あるいはすでにアド
レス距離が許容範囲外となっているエントリの位置に設
定されるよう連続的にテーブル制御を行なうことを特徴
とするものである。
次に2本発明を痰論例にしたがって詳述する。
以下は2本発明を;ンパイツのオブジェクト−プログツ
五最適化の一部として実施した場合についてのものであ
る。
ここで用いられるシ璽−トタイプの分岐命令の相対アド
レス範囲は−128〜+127(バイトアドレス)であ
るものとする。
JIIIIIX、ψ)、−)は2本発明の1実施例の説
明図である。
第1図(Φにおいて、lはオブジェクト・プログラム、
2はアドレス・カウンタ、3はラベル・テーブル、4は
空きエントリ・ポインタを示す。アドレス・カウンタ2
はオブジェクト・プログラム1の処理をどこまで行なっ
たかを示すポインタであり、また空きエントリ・ポイン
タ4はラベル自テーブル3の空きエントリを示すポイン
タである。
テーブル3へのアドレス登録は、空きエントリ・ポイン
タ4の指すエントリに行なわれる。2ベル・テーブル3
の各エントリは、オブジェクト−プログラム1中kpm
われるラベルと、−)ベルが定義されている位置のアド
レスと、該ラベルを参照している分岐命令の位置のアド
レスと、アドレスを格納する項目が空ぎエントリか否か
を示すフラグビットとkよって構成されている。フラグ
ビットは、@01のとき9鎗エントリを、°1”のとき
有効エントリを示す。
$111111)は、動作の初期設定状態を示し、アド
レス・カウンタ2はオブジェクト・プログラム1の先願
位置を指し、空きエントリポインタ4もうベル・テーブ
ル3の先頭位置を指している。第1図向は、ブーグラム
1のアドレスaで2ペルL1への分岐命令を検出し、ア
ドレスbでラベル3の定義を検出して、各各のデータを
ラベル・テーブル3に登録した状態を示す。
この場合のように1分岐命令の飛び先ラベルL1かいま
だラベル・テーブル中に登録されていないときKは、ラ
ベルL1のアドレスが不明なので。
飛び先アドレスまでの距離が算出できず、この分岐命令
をシ冒−トタイプ化できるかどうかはまだわからない状
態にある。したがって、この分岐命令のアドレスaは、
ラベルテーブル中に登録して残しておかれる。
第111(C)は、アドレスdまで躯埋が進んだ状態を
示す、このとき、アドレスCでラベルL1の定義を見出
しており、第1m(6)で登録されていたLlへの分岐
命令に対してそのアト−レスaとの差C−a≦127が
成り立つか否かを判定する。これが成す立ツ場合には、
シ璽−トタイプの分岐命令に変換する操作を行なうとと
もに、この分岐命令のアドレスが登録されていたエント
リのフラグビットを無効表示にして、以降の処理のため
に使用可能な空きエントリとする。
次に、アドレスdKある分岐命令に対しては。
その参照ラベルL2がアドレスbですでにテーブルに登
録されているので、そのアドレスbとアドレス・カウン
タの値dとの差d−b≦128を判定し、これが成り立
てば1分岐命令のシ謬−トタイプ化を行なう。そしてこ
の場合にはアドレスdの登録は行なわれない。
上記のような地理を続けて行く途中で空きエントリ・ポ
インタがラベル・テーブルの終りまでくれば1次に再び
ラベル・テーブルの先1jk戻るよ5に制御される。空
きエントリの探索は、9鯉エントリを示すフラグビット
@O”をもつものと。
フラグビットが@l”であうても定義アドレスあるいは
参照アドレスと現在のアドレスカウンタの値との差が1
28を越えているものとを調べればよい、何故ならば、
フラグビットが@O”であるということは、初期設定の
未使用状態あるいはシ冒−トタイプ化処理済のエントリ
であることを示し。
また現在のアドレス・カクンタ値との差が128以上離
れたアドレスにあるラベルの定義あるいは分岐命令は、
シ冒−トタイプ分岐命令の条件からすでに外れるからで
ある。
したが、て、ラベルチーペル3の中には、アドレスカウ
ンタの値との差が128を越えないアドレスをもつ分岐
命令またはラベルの定義のエントリだけを保持すればよ
いととになる。対象となる計算機における最小サイズの
命令のバイトをm、また最小サイズの分岐命令のバイト
数を露とすれば。
テーブルのエントリ数の上限は次式で与えられる。
12$ +127 tn        n これは、もっとも多くのエントリ数を必要とする場合は
−128〜+127の範囲にラベル定義と分岐命令とが
半々に存在し、しかもそれらの関に結合が起きていない
とぎであり、またシ冒−トタイプ分岐命令の制限された
一定のバイトアドレス領域内にもっとも多くの命令が詰
め込まれるのは最小サイズの命令が連続している場合で
あることによっている。
本実施例では、mxll=3(バイト)なので127エ
ントリあれば十分である。
第2図は、上述した実施例方式の概略的機能関連図であ
る。
図において、アドレスカウンタ2の指示にしたがって、
オブジェクト・プログ2ム読敞り・検出部5でオブジェ
クト・プμグラムの読堆りが行なわれ、定義ラベルと1
分岐命令およびその参照ラベルとが続出される。読み出
されたラベルについて、ラベル・テーブル探索部6でラ
ベル・テーブルの探索が行なわれる。同一ラベルが見出
された場合には、アドレス距離計算・判定部7で現在の
アドレス値との距離を計算され、それがシ諺−トタイプ
分岐命令に許容される所定の範囲内にあれば、シ謬−ト
タイプ分岐命令置換処理部8で対象となっているpング
タイプ分岐命令をシ冒−トタイプ分岐命令に置換する。
他方、6のラベル・テーブル探索において同一ラベルを
見出せなかった場合には、ラベル・テープル登録部9で
ラベル・テーブルへの登録処理が行なわれる。
との登録処理は、該ラベルが分岐命令に先行する定義ラ
ベルである場合に、第1図(φに示すラベル・テーブル
3のラベルおよび定義アドレス欄にラベルとアドレスと
を記入して、後に出現するであろう分岐命令のために#
ラベルが待機状11にあることを表示し、また酸ラベル
が定義ラベルに先行する分岐命令の参照ラベルである場
合#Icは、腋ラベルとアドレスとをラベル・テーブル
3のラベルおよび参照アドレス欄に記入し、骸分岐命令
が後に出現するであろう定義ラベルのために待機状態に
あることを表示するものである。登鎌J611と同時に
そのエントリのフラグ・ビットを11@にセットし、誼
エントリのデータは有効であって破壊し【はならないこ
とを表示する。
更に、1のアドレス距離計算によってシ、−トタイプ分
岐命令の使用可能条件の範囲外であることがわかった場
合には、ラベル・テーブルエントリ無効化wastoで
誼ラベルに関連する二ンFすのフラグを空き(無効)表
示“0”にリセットする。フラグ@0”をもつエントリ
は、空きエントリ拳ポインタ4によってポインタ指示さ
れかつデータ記入要求が生じたとき、に、空きエントリ
として新らしいデータのために使用される。
gaa!ilは、ラベル−テーブル3の空きエントリ位
置を指示するためのポインタ制御機構の実施例を示す。
図においC,空きエントリ・ポインタ4は、その内容を
+1回路11によって1ずつ歩道されるととkよってラ
ベル−テーブルを順次的にスキャンし、空きエントリが
検出されたとき+1回路の機能を停止させるものである
。+1回路11が動作を停止される場合は、ラベル・テ
ーブル3中のエントリのアドレス欄12または13の値
が、アドレス・カウンタ2の現在値に対して1機能ブロ
ック15または16に示す条件を満たさないとき。
あるいはフラグ14が空き(無効)エントリ表示@O”
を示しているときであり、これらの場合に不動作となる
よ50R回路17を介して制御される。この空ぎエント
リ・ポインタ動作は、ラベル・テーブルに新エントリの
設定が必要と4なるととに起動される。
このよ5に、ラベル・テーブルは新スペースが必要とな
る都度不要になりたデータを次々と追い出すととによっ
て必要最小限の大きさで十分機能を果すことができる。
第411は、上述した実施例のための最適化プログラム
で用いるラベル・テーブルの管理モジ^−ルのフ■−図
である。このモジ暴−ルは、ラベル・テーブルの初期設
定と、ラベル定義アドレスの登鎌と、ラベルを飛び先と
して参照している分岐命令のアドレス、登録との各ルー
チンで構成され。
オブジェクト・プログラム中9ラベル定義および分岐命
令を検出してそれらのアドレスをテーブルに登鎌する躯
瑠と分岐命令のシ璽−トタイグ化とを行なう。
以上1本発@について説明したよ5に、本発明によれば
6分岐命令のシ曹−トタイプ化処11に便用するテーブ
ルのエントリ数を必要最小限にすることができるので、
メモリサイズを小さく設計することが可能となる。
【図面の簡単な説明】
第1図(φ乃至<C)は本発明の詳細な説明図、第2図
は本実施例の機態関連図、第3図は本実施例における空
きエントリポインタ制御部の構成図、第4図は本実施例
のための処理ルーチンのフロー図である。 図中、1はオブジェクト・プログラム、2はアドレス−
カウンタ、3はラベル・テーブル、4は空きエントリ・
ポインタを示す。 特許出願人 富士通株式会社 代理人弁理士 森 1)   寛 (a) (b) 才 3 目 [

Claims (1)

    【特許請求の範囲】
  1. シ1−トタイプの分岐命令を有する計算機システムにお
    いて、アドレス・カウンタの指示にしたがいオブジェク
    ト・プ3グッムを順次読取り、ラベルの定義および分岐
    命令を検出する手段と、各エントリが、ラベル、皺ツペ
    ルの定義位置のアドレス、鋏ツベルを参照している分岐
    命令位置のアドレス、および短縮化II&唾の済・未済
    によりエントリの無効・有効を表示するフラグからなる
    とともに前記検出手段の出力データが登録される複数の
    エントリで構成されているラベル・テーブル手段と、該
    ラベル・テーブルの探索および更新を行なうテーブル管
    理手段と、I)ベル・テーブル中に登録されているアド
    レスとアドレス・カウンタの現在値との差を計算し、そ
    の差がシ冒−トタイプ分岐命令の許容最大飛び欠相対ア
    ドレス範囲内にあるか否かを判定する判定手段と、該判
    定結果に基づいてシ曹−トタイプ分岐命令の置換J6種
    を行なう置換手段とをそなえ、前記ラベル・テーブルの
    エントリ数は、シ謬−トメイプ分岐命令の許容最大飛び
    欠相対アドレス値を最小命令サイズで除した値Kfiぼ
    等しく定め、更に前記テーブル管理手段は、新エン)9
    が前記フラグが無効表示となっているエントリ、あるい
    はすでにアドレス距離が許容範囲外となっているエント
    リの位置に設定されるよう連続的にテーブル制御を行な
    うことを特徴とする分岐命令短縮化II&垣方式。
JP56153285A 1981-09-28 1981-09-28 分岐命令短縮化処理方式 Pending JPS5854449A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56153285A JPS5854449A (ja) 1981-09-28 1981-09-28 分岐命令短縮化処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56153285A JPS5854449A (ja) 1981-09-28 1981-09-28 分岐命令短縮化処理方式

Publications (1)

Publication Number Publication Date
JPS5854449A true JPS5854449A (ja) 1983-03-31

Family

ID=15559125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56153285A Pending JPS5854449A (ja) 1981-09-28 1981-09-28 分岐命令短縮化処理方式

Country Status (1)

Country Link
JP (1) JPS5854449A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61110240A (ja) * 1984-10-31 1986-05-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 最適化コンパイラ
JPS6247748A (ja) * 1985-08-27 1987-03-02 Oki Electric Ind Co Ltd アセンブル装置
JPS63317850A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317851A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317853A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317848A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317849A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317843A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317847A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317845A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317844A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317852A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317846A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPH01233622A (ja) * 1988-03-15 1989-09-19 Kobe Nippon Denki Software Kk 機械語分岐命令生成処理方式
JP2014010661A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 分岐アドレス管理プログラム、方法、及び装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61110240A (ja) * 1984-10-31 1986-05-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 最適化コンパイラ
JPS6247748A (ja) * 1985-08-27 1987-03-02 Oki Electric Ind Co Ltd アセンブル装置
JPS63317850A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317851A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317853A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317848A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317849A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317843A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317847A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317845A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317844A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317852A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317846A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPH01233622A (ja) * 1988-03-15 1989-09-19 Kobe Nippon Denki Software Kk 機械語分岐命令生成処理方式
JP2014010661A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 分岐アドレス管理プログラム、方法、及び装置
US9417872B2 (en) 2012-06-29 2016-08-16 Fujitsu Limited Recording medium storing address management program, address management method, and apparatus

Similar Documents

Publication Publication Date Title
EP0135844B1 (en) A data processor with a branch target instruction storage
JPS5854449A (ja) 分岐命令短縮化処理方式
JP2610104B2 (ja) 命令オペレーション・コードの検査装置及び方法
US7032229B1 (en) Automatic tracking of user progress in a software application
US9753730B2 (en) Decoding instructions from multiple instructions sets
CN102236541A (zh) 预加载指令控制
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
KR100368166B1 (ko) 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법
EP0321793A2 (en) Apparatus for forcing a reload from main memory upon cache memory error
US6052530A (en) Dynamic translation system and method for optimally translating computer code
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
JPS60243795A (ja) 電子レジスタの変更プログラム設定装置
US5274776A (en) Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction
US4648033A (en) Look-aside buffer LRU marker controller
JPH077356B2 (ja) パイプライン方式のマイクロプロセッサ
JPS6312030A (ja) 情報処理装置のエラ−処理機構
US20040049511A1 (en) Method for acquiring and monitoring hardware data of computer system
GB2037466A (en) Computer with cache memory
CA1204216A (en) Digital data processing system with vertical and horizontal microcode control
CN121523760A (zh) 一种基于多核amp架构dsp操作系统的动态加卸载方法
JPH0715623B2 (ja) ディスプレイ装置
JPS6358552A (ja) マイクロプロセサ
JPS63188242A (ja) プログラムエラ−情報の生成、管理方式
JPH01280851A (ja) キャッシュ・ストア制御方式
Neumann Disk-based program swapping in 8080-based microcomputers