JPH03257628A - 分岐命令処理装置 - Google Patents
分岐命令処理装置Info
- Publication number
- JPH03257628A JPH03257628A JP2057132A JP5713290A JPH03257628A JP H03257628 A JPH03257628 A JP H03257628A JP 2057132 A JP2057132 A JP 2057132A JP 5713290 A JP5713290 A JP 5713290A JP H03257628 A JPH03257628 A JP H03257628A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- address
- instruction
- branch instruction
- relative
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000010586 diagram Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 6
- 238000003672 processing method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、分岐命令実行時にアドレス計算せず、コンパ
イラが作成した分岐アドレステーブルを用いて分岐する
ことにより、アドレス計算にかける時間をなくし、かつ
、サブルーチン分岐に於いてはデータのブツシュ或いは
ポツプ動作と共に分岐先命令のプリフェッチを同時に行
なうことにより、高速分岐処理を行なうことができる分
岐命令処理装置に関するものである。
イラが作成した分岐アドレステーブルを用いて分岐する
ことにより、アドレス計算にかける時間をなくし、かつ
、サブルーチン分岐に於いてはデータのブツシュ或いは
ポツプ動作と共に分岐先命令のプリフェッチを同時に行
なうことにより、高速分岐処理を行なうことができる分
岐命令処理装置に関するものである。
従来の技術
従来の分岐命令実行方法を図7に示す。従来の分岐命令
に於いては、相対分岐コードを示す部分と実際の相対分
岐先を示す相対アドレスにより分岐命令11が形成され
ていた。これをμROM(図示せず)が解読し、相対分
岐命令であることを判断するとアドレス計算ユニット5
に分岐命令11のインストラクションポインタと相対ア
ドレスの加算或いは減算を実行させる。アドレス計算の
結果、絶対アドレス6が求まり、分岐先の命令を実行し
ていた。
に於いては、相対分岐コードを示す部分と実際の相対分
岐先を示す相対アドレスにより分岐命令11が形成され
ていた。これをμROM(図示せず)が解読し、相対分
岐命令であることを判断するとアドレス計算ユニット5
に分岐命令11のインストラクションポインタと相対ア
ドレスの加算或いは減算を実行させる。アドレス計算の
結果、絶対アドレス6が求まり、分岐先の命令を実行し
ていた。
発明が解決しようとする課題
従来方法によれば、必ず、現在のインストラクションポ
インタと相対アドレスとのアドレス計算が実行されるた
め、アドレス計算サイクルが必要になり、高速応答処理
が困難であった。
インタと相対アドレスとのアドレス計算が実行されるた
め、アドレス計算サイクルが必要になり、高速応答処理
が困難であった。
また、サブルーチン分岐命令に於いては、スタック退避
動作終了後、分岐先命令コードプリフェッチが行なわれ
ていたため、分岐先命令の実行にはデッドタイムが存在
し、この場合も、高速応答処理が困難であった。
動作終了後、分岐先命令コードプリフェッチが行なわれ
ていたため、分岐先命令の実行にはデッドタイムが存在
し、この場合も、高速応答処理が困難であった。
本発明は上記従来の課題を解決するもので、分岐テーブ
ルを用いて、分岐先のアドレスを得ることにより、アド
レス計算に必要なサイクルをなくし、また、サブルーチ
ン分岐時に於いては、データのブツシュ或いはポツプと
同時に行なうことで、分岐先命令実行を速やかに行なう
、分岐命令の高速化を図る分岐命令処理装置を提供する
ことを目的としている。
ルを用いて、分岐先のアドレスを得ることにより、アド
レス計算に必要なサイクルをなくし、また、サブルーチ
ン分岐時に於いては、データのブツシュ或いはポツプと
同時に行なうことで、分岐先命令実行を速やかに行なう
、分岐命令の高速化を図る分岐命令処理装置を提供する
ことを目的としている。
課題を解決するための手段
この目的を達成するために本発明の分岐命令処理装置は
コンパイル実行特に相対分岐アドレスを絶対アドレスで
格納したジャンプテーブルを作成し、前記ジャンプテー
ブルを用い分岐することにより、アドレス計算をなくし
、また、サブルーチンコールのデータのブツシュ、ポツ
プと分岐先命令のプリフェッチを同時に行なうように構
成されている。
コンパイル実行特に相対分岐アドレスを絶対アドレスで
格納したジャンプテーブルを作成し、前記ジャンプテー
ブルを用い分岐することにより、アドレス計算をなくし
、また、サブルーチンコールのデータのブツシュ、ポツ
プと分岐先命令のプリフェッチを同時に行なうように構
成されている。
作用
この構成により、分岐命令の高速化を図ることができ、
高速応答性を実現することができる。
高速応答性を実現することができる。
実施例
以下本発明の実施例について説明する。
第1図は本発明の一実施例の分岐命令処理装置における
コンパイル方法について説明した図である。ソースプロ
グラム1は高級言語で記述されており、判断文21.2
2・・・nによる分岐処理が含まれている。判断文21
.22・・・nにより条件が合致すれば、LABEL3
1.32・・・mで示される分岐先の処理内容が実行さ
れる。このソースプログラム1はコンパイラ3に入力さ
れ、機械語に翻訳される。このとき、コンパイラ3はソ
ースプログラムlに存在する分岐処理を分岐命令に翻訳
するとともに分岐先を絶対アドレスとしてテーブル化す
る。これは、ソースプログラム1のスタートアドレスが
決定すれば、静的にプログラムアドレスは求まることか
ら、機械語に翻訳したソースプログラムlのステップ数
から容易に知ることができる。ジャンプテーブル2はこ
のような工程から求まる絶対アドレステーブルであり、
上から順にLABEL31,32・・・mに対応するア
ドレスが格納される。このジャンプテーブル2はコンパ
イラ3に備わるコンパイラスイッチによって作成するか
否かを決定でき、ジャンプテーブル2を作成しない場合
は、従来のような分岐命令変換と相対分岐アドレスを求
める。前記コンパイラスイッチはいわゆるスピードオプ
ティマイズスイッチであり、ROM等のメモリを一部使
用し、テーブルを作成することにより、以下述べるアド
レス計算なしにテーブル参照により分岐先を求め高速化
を図ることができ、また従来のような相対分岐を行なえ
ることから、用途に合わせて、スピードオプティマイズ
或いは通常処理・通常メモリ容量オプティマイズが選択
できる。
コンパイル方法について説明した図である。ソースプロ
グラム1は高級言語で記述されており、判断文21.2
2・・・nによる分岐処理が含まれている。判断文21
.22・・・nにより条件が合致すれば、LABEL3
1.32・・・mで示される分岐先の処理内容が実行さ
れる。このソースプログラム1はコンパイラ3に入力さ
れ、機械語に翻訳される。このとき、コンパイラ3はソ
ースプログラムlに存在する分岐処理を分岐命令に翻訳
するとともに分岐先を絶対アドレスとしてテーブル化す
る。これは、ソースプログラム1のスタートアドレスが
決定すれば、静的にプログラムアドレスは求まることか
ら、機械語に翻訳したソースプログラムlのステップ数
から容易に知ることができる。ジャンプテーブル2はこ
のような工程から求まる絶対アドレステーブルであり、
上から順にLABEL31,32・・・mに対応するア
ドレスが格納される。このジャンプテーブル2はコンパ
イラ3に備わるコンパイラスイッチによって作成するか
否かを決定でき、ジャンプテーブル2を作成しない場合
は、従来のような分岐命令変換と相対分岐アドレスを求
める。前記コンパイラスイッチはいわゆるスピードオプ
ティマイズスイッチであり、ROM等のメモリを一部使
用し、テーブルを作成することにより、以下述べるアド
レス計算なしにテーブル参照により分岐先を求め高速化
を図ることができ、また従来のような相対分岐を行なえ
ることから、用途に合わせて、スピードオプティマイズ
或いは通常処理・通常メモリ容量オプティマイズが選択
できる。
第2図は本発明の一実施例の分岐命令処理装置における
分岐命令処理方法を示した図である。コンパイラ3によ
りソースプログラム1の分岐処理は相対分岐コードに変
換され、ジャンプテーブル2作成側にコンパイラスイッ
チされていると相対分岐コードの後にアドレス指定方法
選択子がジャンプテーブル2を選択するようにスイッチ
される。更にジャンプテーブル指定子が続き、前記指定
子により、ジャンプテーブル2の中の絶対アドレス6が
選択される。以上のように分岐命令4は相対分岐コード
、アドレス指定方法選択子、ジャンプテーブル指定子か
ら成り、μROM(図示せず)は相対分岐コードとアド
レス指定方法選択子を解読すると同時にジャンプテーブ
ル指定子によリジャンプテーブル2の中から該当する絶
対アドレス6を選び出す。このため、アドレス計算は必
要なく、分岐先アドレスが命令解読と共に求まるため、
命令プリフェッチを先に行なっておけば分岐命令実行の
後、すぐに分岐先命令を実行できる。命令プリフェッチ
を行なっていない場合でも、従来処理よりも1サイクル
以上高速に処理でき、リアルタイム処理が実現できる。
分岐命令処理方法を示した図である。コンパイラ3によ
りソースプログラム1の分岐処理は相対分岐コードに変
換され、ジャンプテーブル2作成側にコンパイラスイッ
チされていると相対分岐コードの後にアドレス指定方法
選択子がジャンプテーブル2を選択するようにスイッチ
される。更にジャンプテーブル指定子が続き、前記指定
子により、ジャンプテーブル2の中の絶対アドレス6が
選択される。以上のように分岐命令4は相対分岐コード
、アドレス指定方法選択子、ジャンプテーブル指定子か
ら成り、μROM(図示せず)は相対分岐コードとアド
レス指定方法選択子を解読すると同時にジャンプテーブ
ル指定子によリジャンプテーブル2の中から該当する絶
対アドレス6を選び出す。このため、アドレス計算は必
要なく、分岐先アドレスが命令解読と共に求まるため、
命令プリフェッチを先に行なっておけば分岐命令実行の
後、すぐに分岐先命令を実行できる。命令プリフェッチ
を行なっていない場合でも、従来処理よりも1サイクル
以上高速に処理でき、リアルタイム処理が実現できる。
分岐命令4がアドレス指定方法選択子に於いてジャンプ
テーブル2を指定していない場合は、ジャンプテーブル
指定子には相対アドレスが入いり、アドレス計算ユニッ
ト5によりアドレス計算がされ、絶対アドレス6が求ま
る。以上のように分岐命令の高速化が可能であり、高度
なリアルタイム制御を実現できる。
テーブル2を指定していない場合は、ジャンプテーブル
指定子には相対アドレスが入いり、アドレス計算ユニッ
ト5によりアドレス計算がされ、絶対アドレス6が求ま
る。以上のように分岐命令の高速化が可能であり、高度
なリアルタイム制御を実現できる。
第3図は本発明の一実施例の分岐命令処理装置における
サブルーチン分岐命令実行時の高速化方法について示し
た図である。サブルーチン分岐命令7を実行するとμR
OM8は、分岐命令7であることを解読すると共に、プ
リフェッチユニット9に対し分岐命令7からの分岐アド
レスを受は取り、分岐先の命令コードをプリフェッチす
ると共に、スタック退避動作を開始する。プリフェッチ
動作とスタック退避動作は各々独立したハードウェア、
動きであるので同時に実行することは可能であり、分岐
先の命令をより早いステップで実行でき、分岐処理の高
速化が可能である。
サブルーチン分岐命令実行時の高速化方法について示し
た図である。サブルーチン分岐命令7を実行するとμR
OM8は、分岐命令7であることを解読すると共に、プ
リフェッチユニット9に対し分岐命令7からの分岐アド
レスを受は取り、分岐先の命令コードをプリフェッチす
ると共に、スタック退避動作を開始する。プリフェッチ
動作とスタック退避動作は各々独立したハードウェア、
動きであるので同時に実行することは可能であり、分岐
先の命令をより早いステップで実行でき、分岐処理の高
速化が可能である。
第4図はサブルーチンリターン命令実行の動作を示した
図である。サブルーチンリターン命令10を実行すると
μROM8はプリフェッチユニット9にリターン先のイ
ンストラクションポインタをスタック領域から先読みさ
せ、リターン先の命令コードをプリフェッチすると共に
スタック復帰動作を並行実行させる。以上により、リタ
ーン先の命令をより早いステップで実行でき、復帰処理
の高速化が可能である。
図である。サブルーチンリターン命令10を実行すると
μROM8はプリフェッチユニット9にリターン先のイ
ンストラクションポインタをスタック領域から先読みさ
せ、リターン先の命令コードをプリフェッチすると共に
スタック復帰動作を並行実行させる。以上により、リタ
ーン先の命令をより早いステップで実行でき、復帰処理
の高速化が可能である。
第5図はサブルーチン分岐命令実行のタイムチャートで
ある。サブルーチン分岐命令10を実行するとプリフェ
ッチユニット9に於いては分岐先命令コードのプリフェ
ッチが実行され、メモリに対してはスタック退避動作が
実行される。
ある。サブルーチン分岐命令10を実行するとプリフェ
ッチユニット9に於いては分岐先命令コードのプリフェ
ッチが実行され、メモリに対してはスタック退避動作が
実行される。
μROM8の管理下で以上2つの動きを並行実行するこ
とで時間の短縮化が図れ、分岐処理の高速化を実現でき
る。サブルーチンリターン命令実行時に於いても同様の
シーケンスで実行でき、復帰処理が高速化できる。
とで時間の短縮化が図れ、分岐処理の高速化を実現でき
る。サブルーチンリターン命令実行時に於いても同様の
シーケンスで実行でき、復帰処理が高速化できる。
第6図は本発明の一実施例の分岐命令処理装置における
コンパイル方法について示した図である。ソースプログ
ラム1内の、アドレスAがらアドレスBの範囲内にある
分岐処理を高速処理する場合、コンパイラ3のジャンプ
テーブルスタートアドレス指定レジスタでアドレスAを
、ジャンプテーブルエンドアドレス指定レジスタでアド
レスBを指定する。コンパイル実行に於いてアドレスA
からアドレスBの範囲内の分岐処理のみ高速処理のため
のジャンプテーブル2を作成し、絶対アドレスで命令が
実行されるようにコンパイルする。アドレスAからアド
レスB以外は通常相対分岐コードに変換する。ここでア
ドレスとはソースプログラム1の行を示す。
コンパイル方法について示した図である。ソースプログ
ラム1内の、アドレスAがらアドレスBの範囲内にある
分岐処理を高速処理する場合、コンパイラ3のジャンプ
テーブルスタートアドレス指定レジスタでアドレスAを
、ジャンプテーブルエンドアドレス指定レジスタでアド
レスBを指定する。コンパイル実行に於いてアドレスA
からアドレスBの範囲内の分岐処理のみ高速処理のため
のジャンプテーブル2を作成し、絶対アドレスで命令が
実行されるようにコンパイルする。アドレスAからアド
レスB以外は通常相対分岐コードに変換する。ここでア
ドレスとはソースプログラム1の行を示す。
スピードオプティマイズをソースプログラム1に対して
部分的にかけれることで効率的にスピードアップが必要
な部分のみ高速化でき、ジャンプテーブル2を作成する
ためのメモリ使用も最適化できる。
部分的にかけれることで効率的にスピードアップが必要
な部分のみ高速化でき、ジャンプテーブル2を作成する
ためのメモリ使用も最適化できる。
発明の効果
以上のように本発明によれば、分岐先命令実行を高速化
でき、より高度なリアルタイム処理を実現でき、また高
速化する部分を最適化することにより、スピードオプテ
ィマイズとROM容量オプティマイズを同時にかけるこ
とができ、効率の良いROMを作成することができる。
でき、より高度なリアルタイム処理を実現でき、また高
速化する部分を最適化することにより、スピードオプテ
ィマイズとROM容量オプティマイズを同時にかけるこ
とができ、効率の良いROMを作成することができる。
第1図は本発明の一実施例の分岐命令処理装置における
コンパイル方法を示す図、第2図は本発明の分岐命令処
理方法を示す図、第3図は本発明のサブルーチン分岐命
令実行時に於ける高速化方法を示す図、第4図は本発明
のサブルーチンリターン命令実行の動作を示す図、第5
図は本発明のサブルーチン分岐命令実行のタイミングチ
ャート、第6図は本発明のコンパイル方法を示す図、第
7図は従来の分岐命令処理方法を示す図である。 1・・・・・・ソースプログラム、2・・・・・・ジャ
ンプテーブル、3・・・・・・コンパイラ、4・・・・
・・分岐命令、5・・・・・・アドレス計算ユニット、
6・・・・・・絶対アドレス、7・・・・・・サブルー
チン分岐命令、8・・・・・・μROM、9・・・・・
・プリフェッチユニット、lO・・・・・・サブルーチ
ンリターン命令、11・・・・・・分岐命令。
コンパイル方法を示す図、第2図は本発明の分岐命令処
理方法を示す図、第3図は本発明のサブルーチン分岐命
令実行時に於ける高速化方法を示す図、第4図は本発明
のサブルーチンリターン命令実行の動作を示す図、第5
図は本発明のサブルーチン分岐命令実行のタイミングチ
ャート、第6図は本発明のコンパイル方法を示す図、第
7図は従来の分岐命令処理方法を示す図である。 1・・・・・・ソースプログラム、2・・・・・・ジャ
ンプテーブル、3・・・・・・コンパイラ、4・・・・
・・分岐命令、5・・・・・・アドレス計算ユニット、
6・・・・・・絶対アドレス、7・・・・・・サブルー
チン分岐命令、8・・・・・・μROM、9・・・・・
・プリフェッチユニット、lO・・・・・・サブルーチ
ンリターン命令、11・・・・・・分岐命令。
Claims (5)
- (1)高級言語で記述されたソースプログラムを機械語
に変換するコンパイル手段を有し、ソースプログラム上
に相対分岐処理が存在する場合、分岐命令に変換すると
ともに、相対分岐アドレスを絶対アドレスに変換し、ジ
ャンプテーブルを作成する手段と、前記ジャンプテーブ
ルが不必要な場合は通常の相対分岐命令にも変換可能な
手段を有し、この切替えをコンパイラスイッチにより行
なうことを特徴とする分岐命令処理装置。 - (2)高級言語で記述されたソースプログラムを機械語
に変換するコンパイル手段を有し、ソースプログラム上
に相対分岐処理が存在する場合、分岐命令に変換すると
ともに、絶対分岐アドレスが格納されたジャンプテーブ
ルを参照できる指定子に変換する手段を有することを特
徴とする請求項1記載の分岐命令処理装置。 - (3)相対分岐命令実行時にオペランド内に格納された
分岐アドレス先を絶対アドレスで示すジャンプテーブル
の指定子によって選択される前記絶対アドレスによって
分岐し、アドレス計算をすることなく、分岐命令を実行
する手段を有することを特徴とする請求項1記載の分岐
命令処理装置。 - (4)サブルーチン分岐命令実行時にデータのブッシュ
と分岐先命令のプリフェッチを同時に行ない、或いはサ
ブルーチンからのリターン時に、データのポップと、リ
ターン後の実行命令のプリフェッチを同時に行なう手段
を有することを特徴とする請求項1記載の分岐命令処理
装置。 - (5)高級言語で記述されたソースプログラムを機械語
に変換するコンパイル手段を有し、ソースプログラム上
に相対分岐処理が存在する場合、分岐命令に変換すると
ともに、相対分岐アドレスを絶対分岐アドレスに変換し
、ジャンプテーブルの作成をソースプログラムの範囲指
定により行なう手段を有することを特徴とする分岐命令
処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2057132A JPH03257628A (ja) | 1990-03-08 | 1990-03-08 | 分岐命令処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2057132A JPH03257628A (ja) | 1990-03-08 | 1990-03-08 | 分岐命令処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03257628A true JPH03257628A (ja) | 1991-11-18 |
Family
ID=13047037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2057132A Pending JPH03257628A (ja) | 1990-03-08 | 1990-03-08 | 分岐命令処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03257628A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662295B2 (en) | 1997-09-10 | 2003-12-09 | Ricoh Company, Ltd. | Method and system dynamically presenting the branch target address in conditional branch instruction |
-
1990
- 1990-03-08 JP JP2057132A patent/JPH03257628A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662295B2 (en) | 1997-09-10 | 2003-12-09 | Ricoh Company, Ltd. | Method and system dynamically presenting the branch target address in conditional branch instruction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5077657A (en) | Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor | |
US6292883B1 (en) | Converting program-specific virtual machine instructions into variable instruction set | |
US6295644B1 (en) | Method and apparatus for patching program text to improve performance of applications | |
US6654875B1 (en) | Dual microcode RAM address mode instruction execution using operation code RAM storing control words with alternate address indicator | |
JP2001508909A (ja) | バーチャルマシン命令を処理するためのデータ処理装置 | |
RU2002129004A (ru) | Запоминание операндов стека в регистре | |
JPH11175349A (ja) | データ列生成方法及び装置、変換方法、及びコンピュータ | |
KR100258650B1 (ko) | 에뮬레이션 문맥 스위치 저장 및 복구를 수행하는 방법 및 프로세서 | |
WO1999018484A2 (en) | A processing device for executing virtual machine instructions | |
JP2001516920A (ja) | 可変幅インストラクションを備えるデジタルシグナルプロセッサ | |
RU2003112679A (ru) | Аппаратная трансляция команд внутри процессорного конвейера | |
KR100237987B1 (ko) | 전용 레지스터의 내용 상에서 동작하는 명령을 제공함으로써 에뮬레이션 성능을 향상시키기 위한 방법 및 시스템 | |
US5732235A (en) | Method and system for minimizing the number of cycles required to execute semantic routines | |
JPH03257628A (ja) | 分岐命令処理装置 | |
JPH0523447B2 (ja) | ||
KR101244063B1 (ko) | 프로그램 코드 변환시의 실행 제어 | |
JP3599499B2 (ja) | 中央処理装置 | |
JP2001255912A (ja) | モーションプログラムの実行方法 | |
JPH1124940A (ja) | エミュレーション処理方式 | |
JPH04268928A (ja) | エミュレーション装置及び半導体装置 | |
JPS6049935B2 (ja) | マイクロプログラム制御方式 | |
JPS5829051A (ja) | 演算処理装置 | |
KR920010422A (ko) | 마이크로 컴퓨터 | |
JP2534674B2 (ja) | 情報処理装置 | |
JPS5922143A (ja) | 高速インタプリタ方式 |