JP2509244B2 - 分岐命令処理装置 - Google Patents

分岐命令処理装置

Info

Publication number
JP2509244B2
JP2509244B2 JP62228510A JP22851087A JP2509244B2 JP 2509244 B2 JP2509244 B2 JP 2509244B2 JP 62228510 A JP62228510 A JP 62228510A JP 22851087 A JP22851087 A JP 22851087A JP 2509244 B2 JP2509244 B2 JP 2509244B2
Authority
JP
Japan
Prior art keywords
program
control information
instruction
general
bits
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
Application number
JP62228510A
Other languages
English (en)
Other versions
JPS6472238A (en
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 JP62228510A priority Critical patent/JP2509244B2/ja
Publication of JPS6472238A publication Critical patent/JPS6472238A/ja
Application granted granted Critical
Publication of JP2509244B2 publication Critical patent/JP2509244B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔概 要〕 プログラムの流れの順序を変える為に用いる分岐命令
の高速処理を可能にする分岐命令処理装置に関し、 プログラム量の増大にもかかわらず、汎用レジスタの
容量を増大することなく、かつ、1処理サイクルで分岐
命令を実行すると共に1処理サイクルで復旧命令も実行
可能とすることを目的とし、 演算器、汎用レジスタ、プログラム状態語格納レジス
タ、及びプログラムカウンタを備え、プログラム状態語
格納レジスタは制御情報格納部と内部状態格納部からな
る情報処理装置であって、メインプログラムからサブル
ーチンへの分岐命令の実行開始信号に応じて、プログラ
ムカウンタの値を出力すると共に制御情報格納部からの
制御情報のみを出力する第一のゲート手段と、メインプ
ログラムへの復旧命令に応じて開く第二のゲート手段と
を具備し、実行開始信号に応じて、プログラムカウンタ
の値を第一のゲート手段を介して演算器に送って1を加
えた後に汎用レジスタに退避すると共に、制御情報を第
一のゲート手段を介して汎用レジスタに退避する退避動
作を1処理サイクルで実行し、復旧命令に応じて、汎用
レジスタに退避されているプログラムカウンタの値と制
御情報とを第二のゲート手段を介してプログラムカウン
タ及び制御情報格納部にそれぞれ格納する復旧動作を1
処理サイクルで実行するように構成した。
〔産業上の利用分野〕
本発明は、プログラムの流れの順序を変える為に用い
る分岐命令の高速処理を可能にする分岐命令処理装置に
関する。
第5図は、機械語の命令の1形式であるRX形命令の形
式を示す図である。
同図において、命令は、操作部f、演算レジスタ指定
部r1、インデックスレジスタ指定部x2、ベースレジスタ
指定部b2及び番地指定部d2からなっている。
第6図は、D10形自動交換機におけるメインプログラ
ムからサブルーチンへの分岐命令を含む処理の流れの1
例を示す図である。
同図において、メインプログラムのプログラムカウン
タの値が100番地のときに、ジャンプアンドリンク命令
(JL)によりサブルーチンの500番地に飛び、割り込
み処理をすべく割込み群マスクを設定して所定の割り込
み処理をした後、サブルーチンの530番地でPSWライト命
令(復旧命令)によりメインプログラムの101番地に
戻る。
ジャンプアンドリンク命令では、この命令が置いて
あるプログラム状態表示語PSWの内容、即ち、メインプ
ログラムから分岐する番地に1を加えて、サブルーチン
からメインプログラムへ戻るときの番地を計算し、それ
を命令中の演算レジスタ指定部r1で指定される汎用レジ
スタに格納し、次いで、命令中のインデックスレジスタ
指定部x2、ベースレジスタ指定部b2でそれぞれ指定され
る汎用レジスタの内容(x2),(b2)及び番地指定部d2
の内容を加算することにより得られるサブルーチンの先
頭番地(第6図においては500番地)へ無条件にジャン
プする。
PSWライト命令では、(x2)+(b2)+d2=a2にお
いて、x2は先のジャンプアンドリンク命令で指定したr1
の値を設定し、(b2)=0,d2=0とすると、a2は先のジ
ャンプリンク命令で格納したメインプログラムへの戻り
番地に等しくなり、この番地a2に復旧する。このため、
通常ジャンプアンドリンク命令中のr1で指定される汎用
レジスタの内容は、サブルーチン内では、書き替えられ
ないようになっている。
命令アドレスのビット数が増大しても、上記のジャン
プアンドリンク命令及びPSWライト命令の実行を短時間
で行うことが要望されている。
〔従来の技術〕
第7図は、従来のプログラム状態表示語PSWの構成の
1例を示す図である。
同図におけるPSWは、32ビットの命令であり、0−20
ビットの命令のアドレスSCCと21−31ビットの状態表示
フラグSWTとからなっている。状態表示フラグSTWは、プ
ログラムの走行状態、演算結果のまとめを示すコンディ
ションコード、割り込み群マスク、メモリープロテクト
キー等で構成されている。
上記PSWの32ビットという長さは、プロセッサの演算
ビット長内に収まっている為、ジャンプアンドリンク命
令において、命令アドレスSCC以外に状態表示フラグSTW
も汎用レジスタに格納することが可能である。従って、
サブルーチン内に割り込みを処理すべく割り込み群マス
クを設定して所定の割り込みを処理した後、メインプロ
グラムに戻る際には、元の状態表示フラグは汎用レジス
タに保存されているので、サブルーチン内でわざわざ割
り込み群マスクを解除する必要がない。即ち、割り込み
群マスクの解除とジャンプが1命令で実行可能である。
また、処理単位は、プロセッサの演算ビット長と同じな
ので、1処理サイクルで処理可能であり、高速処理を必
要とする割り込み処理において有効である。
しかし、プログラム量の増大により命令アドレスのビ
ット数を増加させる必要が出てきた。
第8図は、命令アドレスのビット数が24ビットに増大
した命令の形式を示す図である。
同図に示されるように、命令アドレスSCCのビット数
が増加したために状態表示フラグSTWと命令アドレスSCC
とのビット数の和がプロセッサの演算ビット数を越えて
しまう場合、従来は、PSWはSTWを含むワードPSWとSCCを
含むワードPCとに2分割していた。この場合は、ジャン
プアンドリンク命令での割り込み群マスクの解除とジャ
ンプを1命令で実行することは不可能になるか、たとえ
可能であっても2処理サイクルを必要としてしまう。
〔発明が解決しようとする問題点〕
上述の如く、命令のPSWとPCに2ワード化すると、処
理サイクルが増加してしまうので、分岐命令の処理速度
が低下するという問題点がある。
また、ジャンプアンドリンク命令で、PSWとPCを各々
保存するために、汎用レジスタを2個使用し、かつ、サ
ブルーチン内でこれらの汎用レジスタを使用できること
ができないので、サブルーチン内で使用できる汎用レジ
スタ数が減少し、従ってレジスタのセーブ/リカバリ等
が新たに必要となり、更に処理能力が低下するという問
題点がある。
PSWが2ワード化してPSWとPCとなった場合でも、これ
らプロセッサの同一処理サイクルで格納/設定可能とす
るハードウエアを提供することにより、高速処理が可能
と考えられる。
第9図は、本発明の前に考えられる分岐命令処理方法
の説明図である。
同図において、(1)ジャンプアンドリンク(JL)命
令動作では、32ビットのPSW91の内容Aと32ビットのPCK
の内容とが64ビットの汎用レジスタ(R02)93の上位32
−63ビット及び下位0−31ビットに同時に格納される。
(2)復旧動作では、汎用レジスタ(R02)93の内容
A,BがそれぞれPSW91,PC92に戻される。
第10図は、第9図の方法を実現する装置の一例であ
る。
同図において、ジャンプアンドリンク命令の実行時
は、PSW101のデータは、セレクタ(SEL)102を通って上
位ビットのレジスタ103に格納され、PC104のデータは、
ドライバ104、演算器(ALU)106を通って下位ビットの
レジスタ(REG L)107に格納される。
また、復旧命令の実行時は、レジスタ(REGH)103の
内容は、セレクタ(SEL)108を通ってPSW101に戻され、
レジスタ(REGL)107の内容は、ドライバ109、演算器
(ALU)106を通ってPC104に戻される。
第9図及び第10図に示した例によれば、1プロセッサ
サイクルで2ワード(PSWとPC)を同時処理できるの
で、処理の高速化がはかれるが、汎用レジスタのビット
数が増える為、ハードウエアの負担が大きいという問題
がある。
〔問題点を解決するための手段〕
第1図は、本発明の原理ブロック図である。
同図において、本発明による分岐命令処理装置は、演
算器1、汎用レジスタ2、プログラム状態語格納レジス
タ3、及びプログラムカウンタ4を備えている。プログ
ラム状態語格納レジスタ3は制御情報格納部5及び内部
状態格納部6からなる。本発明により、メインプログラ
ムからサブルーチンへの分岐命令の実行開始信号7に応
じて、プログラムカウンタの値を出力すると共に制御情
報格納部5からの制御情報のみを出力する第一のゲート
手段8と、メインプログラムへの復旧命令9に応じて開
く第二のゲート手段10とを具備している。実行開始信号
7に応じて、プログラムカウンタ4の値を第一のゲート
手段8を介して演算器1に送って1を加えた後に汎用レ
ジスタ2に退避すると共に、制御情報を第一ゲート手段
8を介して汎用レジスタ2に退避する退避動作を1処理
サイクルで実行し、復旧命令に応じて、汎用レジスタ2
に退避されているプログラムカウンタの値と制御情報と
を第二のゲート手段10を介してプログラムカウンタ及び
制御情報格納部にそれぞれ格納する復旧動作を1処理サ
イクルで実行するようになっている。
〔作 用〕
プログラム状態語のうち、復旧命令実行時に設定する
必要があるのは、制御情報のみなので、汎用レジスタ2
には、プログラム状態語中の制御情報のみを格納するよ
うにした。これにより、ハードウエアの大幅削減が可能
になる。
〔実施例〕
第8図に示したPSWを詳細に調べてみると、第2図に
示す如く、32ビットのプログラム状態語格納レジスタ30
の21−27ビットは、ラン/ストップというプログラムの
走行状態31とコンディションコード32といった単なる内
部状態の表示を格納する内部状態格納部であり、28−31
ビットは、割り込み群マスクとメモリープロテクトキー
といった保存の必要な制御情報を格納する制御情報格納
部31である。このうち、サブルーチンヘジャンプした後
にリタン(復旧)した時に設定する必要があるのは、制
御情報のみである。本発明は、この点に着目してなされ
なものである。
第3図は、本発明の実施例の説明図である。
同図に示すように、(1)ジャンプアンドリンク(J
L)では、プログラム状態語格納レジスタ30内の制御情
報格納部31から制御情報のみを抽出して32ビットの汎用
レジスタ(R02)40の28−31ビットに格納し、プログラ
ムカウンタ41の0−23ビットにある番地42は、汎用レジ
スタ40の0−23ビットに退避される。
(2)復旧命令では、汎用レジスタ40に退避されている
制御情報及び番地がプログラム状態語格納レジスタ30の
制御情報格納部31及びプログラムカウンタ41の番地格納
部42に戻される。
第3図によって説明した方法によれば、汎用レジスタ
40は、1ワード分ですみ、しかも各命令は、1プロセッ
ササイクルで実行できる。
第4図は、本発明の1実施例による分岐命令処理装置
のブロック図である。
同図において、30はプログラム状態語格納レジスタ、
31は制御情報格納部、40は汎用レジスタ、41はプログラ
ムカウンタ、501はジャンプアンドリンク命令、502はOR
ゲート、503はドライバ、504はデータバス、506はORゲ
ート、507−0から507−3はドライバ、508演算器、509
はリザイトバス、510は復旧命令、511,512はORゲート、
513はPSW読出命令、514はPC読出命令、515はPSW書き込
み命令、516はプログラムカウンタ書き込み命令であ
る。
ジャンプアンドリンク命令501が与えられると、ORゲ
ート502を通ってドライバ503が活性化され、制御情報格
納部31からの制御情報がデータバス504を介して汎用レ
ジスタ40の28−31ビットに格納されると共に、ORゲート
506を通ってドライバ507−0と507−1が活性化されて
プログラムカウンタ41の値がデータバス504を介して演
算器508に入力され、演算器508によって1が加算されて
リザイトバス509を介して汎用レジスタ40の0−23ビッ
トに格納される。この場合、ジャンプアンドリンク命令
では、汎用レジスタ40をデータの転送先として指定して
ある。
ジャンプアンドリンク命令によりサブルーチンへジャ
プした後にメインプログラムに戻ってくるために、復旧
命令510が与えられ、この命令で書き込み先をプログラ
ムカウンタ41と指定すると、ORゲート511を通って制御
情報格納部31が書き込み可能となり、汎用レジスタ40か
らの制御情報がプログラム状態語格納レジスタ30の28−
31ビット(図の斜線部)に戻されると共に、ORゲート51
2を通ってプログラムカウンタ41が書き込み可能となっ
て汎用レジスタ40からの戻り番地がビット23−21とビッ
ト20−0に書き込まれる。なお、復旧命令でデータ転送
先をプログラムカウンタ41と指定すると、プログラム状
態語格納レジスタ30のビット27−24、ビット23−21には
なにもデータが設定されず、サブルーチンから復旧する
直前の値が保持されるが、それらの値は単なる内部状態
の表示なので、問題はない。
こうして、ジャンプアンドリンク命令と復旧命令によ
り、第3図の(1),(2)に示した動作が可能にな
る。
上述の実施例では、制御情報のビット数とプログラム
カウンタの命令アドレスのビット数の和がプロセッサの
処理単位である32ビット以下となる場合を示したが、本
発明はこれに限られるものではない。より一般化して、
上記の和がプロセッサの処理単位32ビットを越える場合
には、第10図に示したように、汎用レジスタ103のビッ
ト長を32ビットからあふれた分のみ長くすればよく、ハ
ードウエアの増大を最小とすることができる。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、プ
ログラムカウンタ内の命令アドレスのビット数が増大し
て分岐命令がPSWとPCの2ワード以上となっている場合
であっても、PC中の命令アドレスとPSW中の制御情報の
みを汎用レジスタに退避させることにより、ジャンプア
ンドリンク命令及び復旧命令に要する時間をそれぞれ1
プロセッササイクルとすることができるので、分岐命令
の処理に要する時間を最小にできる。また、分岐命令の
処理の高速化にようするハードウエア量の追加もすくな
い。
上記の効果は、既存のプロセッサの命令アドレスのビ
ット長が長くなるほど顕著となる。
【図面の簡単な説明】
第1図は、本発明の原理ブロック図、 第2図は、PSWの構成の内訳を示す図、 第3図は、本発明の実施例の説明図、 第4図は、本発明の実施例を示す図、 第5図は、RX形命令の形式で示す図、 第6図は、サブルーチンへの分岐の説明図、 第7図は、32ビットのPSWを示す図、 第8図は、2ワード化したPSWの説明図、 第9図は、本発明の前に考えられる分岐命令処理方法の
説明図、そして、 第10図は、第9図の方法を実現する装置の1例を示すブ
ロック図である。 第4図において、 30……プログラム状態語格納レジスタ、31……制御情報
格納部、41……プログラムカウンタ、501……ジャンプ
アンドリンク命令、502……ORゲート、503……ドライ
バ、504……データバス、40……汎用レジスタ、506……
ORゲート、507−0から507−3……ドライバ、508……
演算器、509……リザルトバス。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】演算器(1)、汎用レジスタ(2)、プロ
    グラム状態語格納レジスタ(3)、プログラムカウンタ
    (4)、及び内部演算バスを備え、 該プログラム状態語格納レジスタ(3)は、メインプロ
    グラムからサブルーチンへの分岐命令及びメインプログ
    ラムへの復旧命令において必要となる制御情報格納部
    (5)、及びそれ以外の内部状態格納部(6)から成
    り、そして 該汎用レジスタ(2)は、そのビット数が該内部演算バ
    スのビット数と等しく、且つ該プログラムカウンタ
    (4)のビット数と該制御情報格納部(5)のビット数
    の合計を越えないように構成され、 メインプログラムからサブルーチンへの分岐命令の実行
    開始信号(7)に従い、該第一のゲート手段(8)が作
    動し、それによって該プログラムカウンタ(4)の値及
    び該制御情報格納部(5)の制御情報が各々対応する該
    内部演算バスライン上に出力され、該制御情報は対応す
    るバスライン上の該汎用レジスタの所定ビット位置に、
    そして該プログラムカウンタの値は対応するバスライン
    上の該演算器(1)を通して1が加算されてから該バス
    ラインに対応した該同一の汎用レジスタ(2)の他の所
    定ビット位置に、共に1処理サイクルで退避され、そし
    て メインプログラムへの復旧命令(9)が従い、該第二の
    ゲート手段(10)が作動し、それによって該汎用レジス
    タ(2)に退避された該所定ビット位置のプログラムカ
    ウンタの値及び該制御情報は、該プログラムカウンタ
    (4)の対応する元のビット位置、及び該制御情報格納
    部(5)の元のビット位置に、共に1処理サイクルで分
    配格納されることを特徴とする分岐命令処理装置。
JP62228510A 1987-09-14 1987-09-14 分岐命令処理装置 Expired - Lifetime JP2509244B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62228510A JP2509244B2 (ja) 1987-09-14 1987-09-14 分岐命令処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62228510A JP2509244B2 (ja) 1987-09-14 1987-09-14 分岐命令処理装置

Publications (2)

Publication Number Publication Date
JPS6472238A JPS6472238A (en) 1989-03-17
JP2509244B2 true JP2509244B2 (ja) 1996-06-19

Family

ID=16877562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62228510A Expired - Lifetime JP2509244B2 (ja) 1987-09-14 1987-09-14 分岐命令処理装置

Country Status (1)

Country Link
JP (1) JP2509244B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681022B2 (en) * 2006-07-25 2010-03-16 Qualcomm Incorporated Efficient interrupt return address save mechanism

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5137742A (ja) * 1974-09-24 1976-03-30 Tatsuji Hama Sankakukeioichimentoshitasaikoro
JPS57174743A (en) * 1981-04-21 1982-10-27 Toshiba Corp Interruption processing circuit

Also Published As

Publication number Publication date
JPS6472238A (en) 1989-03-17

Similar Documents

Publication Publication Date Title
US5701493A (en) Exception handling method and apparatus in data processing systems
US4833640A (en) Register bank change including register to register transfer in a data processing system
KR970003321B1 (ko) 코프로세서 지정 시스템
JPS645330B2 (ja)
US4314332A (en) Memory control system
JP2509244B2 (ja) 分岐命令処理装置
JPS6212529B2 (ja)
JPS6049352B2 (ja) デ−タ処理装置
JP2553200B2 (ja) 情報処理装置
JPS6273333A (ja) エミュレーション制御装置
CA1247744A (en) Operation code selected overflow interrupts
JPH0222413B2 (ja)
JPS63214804A (ja) Plc用プロセツサ及びplc
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP3140028B2 (ja) サブルーチンの引数の受け渡し方式
JPH059815B2 (ja)
JPH0667896A (ja) シングルチップマイクロコンピュータ
JPS6212555B2 (ja)
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPS6149695B2 (ja)
JPS5829057A (ja) レジスタのトレ−ス装置
JPS61267135A (ja) デ−タ処理装置
JPS6353644A (ja) 命令制御装置
JPS5942331B2 (ja) プロセツサソウチノセイギヨホウシキ
JPS6120139A (ja) 割込み制御方式