JPH0752390B2 - 命令処理装置 - Google Patents
命令処理装置Info
- Publication number
- JPH0752390B2 JPH0752390B2 JP60095444A JP9544485A JPH0752390B2 JP H0752390 B2 JPH0752390 B2 JP H0752390B2 JP 60095444 A JP60095444 A JP 60095444A JP 9544485 A JP9544485 A JP 9544485A JP H0752390 B2 JPH0752390 B2 JP H0752390B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- branch
- general
- memory
- 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
- 239000000872 buffer Substances 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は複数のアドレス加算器を有する命令処理装置に
係り、特にレジスタオペランドに対して演算を施すと共
に、分岐先命令のアドレス計算を行う分岐命令の処理に
好適な命令処理装置に関する。
係り、特にレジスタオペランドに対して演算を施すと共
に、分岐先命令のアドレス計算を行う分岐命令の処理に
好適な命令処理装置に関する。
先行する命令が変更した汎用レジスタを、後続の命令が
アドレス計算に利用する場合、従来の装置では特開昭54
−41641に記載されているように、主演算装置とは別の
簡単な副演算装置を設け、汎用レジスタを変更する命令
を副演算装置で高速に処理し、その演算結果を汎用レジ
スタを介することなくアドレス加算器に直接入力し、そ
の結果を利用する後続命令のアドレス計算の遅れを短縮
していた。
アドレス計算に利用する場合、従来の装置では特開昭54
−41641に記載されているように、主演算装置とは別の
簡単な副演算装置を設け、汎用レジスタを変更する命令
を副演算装置で高速に処理し、その演算結果を汎用レジ
スタを介することなくアドレス加算器に直接入力し、そ
の結果を利用する後続命令のアドレス計算の遅れを短縮
していた。
しかし、加減算を行う命令に関しては、副演算装置を別
に設けることなく、既存のアドレス加算器を利用するこ
とが可能であり、この結果後続命令のアドレス計算の遅
れを従来より短縮することができる。
に設けることなく、既存のアドレス加算器を利用するこ
とが可能であり、この結果後続命令のアドレス計算の遅
れを従来より短縮することができる。
本発明の目的は、複数のアドレス加算器を有する命令処
理装置で分岐命令を処理するにあたり、分岐先命令のア
ドレス加算と、レジスタオペランドに対する演算を、そ
れぞれ別のアドレス加算器を利用して同時に行い、該分
岐命令と後続命令との間のレジスタコンフリクトを早期
に解消し得る命令処理装置を提供することにある。
理装置で分岐命令を処理するにあたり、分岐先命令のア
ドレス加算と、レジスタオペランドに対する演算を、そ
れぞれ別のアドレス加算器を利用して同時に行い、該分
岐命令と後続命令との間のレジスタコンフリクトを早期
に解消し得る命令処理装置を提供することにある。
記憶装置上に複数のオペランドを有する命令を高速に処
理するためには、各オペランドのアドレス計算を同時に
行えるように複数個のアドレス加算器を設ければ良い。
一方分岐命令は分岐先命令のアドレスを計算するだけな
のでアドレス加算器が空いてしまう。そこで、レジスタ
オペランドに対して演算を施す分岐命令を処理する場
合、空いたアドレス加算器でレジスタ演算を行うことに
より、演算結果を早期に求めることができる。
理するためには、各オペランドのアドレス計算を同時に
行えるように複数個のアドレス加算器を設ければ良い。
一方分岐命令は分岐先命令のアドレスを計算するだけな
のでアドレス加算器が空いてしまう。そこで、レジスタ
オペランドに対して演算を施す分岐命令を処理する場
合、空いたアドレス加算器でレジスタ演算を行うことに
より、演算結果を早期に求めることができる。
以下、本発明の一実施例を第1図〜第5図により説明す
る。
る。
第1図は、記憶装置上に2つのオペランド(それぞれ第
1オペランド,第2オペランドと称す。)を有する命令
を高速に処理する命令処理装置を示している。オペラン
ドの記憶装置上のアドレス(これをオペランドアドレス
を称す)は、命令で指定する汎用レジスタ(B1,B2)の
内容と、命令の一部である偏位値(D1,D2)を加えて求
めることができる。第1図に示した命令処理装置では、
2つのオペランドのオペランドアドレスを同時に計算
し、記憶装置からのオペランドの読出しを同時に行うこ
とができる。すなわち、第1オペランドのオペランドア
ドレスは、B1で指定されたレジスタの内容を汎用レジス
タ11より読出し、信号線54を経由してアドレス加算器14
に入力すると共に、偏位値D1の値を信号線52によりアド
レス加算器14に直接入力し、両データの加算を実行する
ことにより求める。第1オペランドのオペランドアドレ
スの計算と同時に、第2オペランドのオペランドアドレ
スが、B2で指定された汎用レジスタ11の内容と、偏位値
D2の値をそれぞれ信号線55および53によりアドレス加算
器15に入力し、両者の加算を行うことによつて求められ
る。ここで、インクリメンタ12,13はそれぞれ命令の種
類に応じて定数を発生し、アドレス加算器14,15に入力
する回路であり、本実施例では常に値が0であるものと
する。アドレス加算器14,15によつて算出されたオペラ
ンドアドレスは、それぞれ信号線58,59を通つて記憶装
置16,17に転送され、記憶装置上の対応するデータの読
出しに利用される。読出したデータは信号線60,61を通
り、オペラドバツフア18,19を経由して、信号線62,63に
より演算器20に入力され、命令によつて決められた演算
を施し、演算結果を信号線64によつて記憶装置16,17あ
るいは汎用レジスタ11に格納する。
1オペランド,第2オペランドと称す。)を有する命令
を高速に処理する命令処理装置を示している。オペラン
ドの記憶装置上のアドレス(これをオペランドアドレス
を称す)は、命令で指定する汎用レジスタ(B1,B2)の
内容と、命令の一部である偏位値(D1,D2)を加えて求
めることができる。第1図に示した命令処理装置では、
2つのオペランドのオペランドアドレスを同時に計算
し、記憶装置からのオペランドの読出しを同時に行うこ
とができる。すなわち、第1オペランドのオペランドア
ドレスは、B1で指定されたレジスタの内容を汎用レジス
タ11より読出し、信号線54を経由してアドレス加算器14
に入力すると共に、偏位値D1の値を信号線52によりアド
レス加算器14に直接入力し、両データの加算を実行する
ことにより求める。第1オペランドのオペランドアドレ
スの計算と同時に、第2オペランドのオペランドアドレ
スが、B2で指定された汎用レジスタ11の内容と、偏位値
D2の値をそれぞれ信号線55および53によりアドレス加算
器15に入力し、両者の加算を行うことによつて求められ
る。ここで、インクリメンタ12,13はそれぞれ命令の種
類に応じて定数を発生し、アドレス加算器14,15に入力
する回路であり、本実施例では常に値が0であるものと
する。アドレス加算器14,15によつて算出されたオペラ
ンドアドレスは、それぞれ信号線58,59を通つて記憶装
置16,17に転送され、記憶装置上の対応するデータの読
出しに利用される。読出したデータは信号線60,61を通
り、オペラドバツフア18,19を経由して、信号線62,63に
より演算器20に入力され、命令によつて決められた演算
を施し、演算結果を信号線64によつて記憶装置16,17あ
るいは汎用レジスタ11に格納する。
このように、記憶装置上に2つ以上のオペランドを有す
る命令では、オペランドと同数の汎用レジスタからのデ
ータ読出しルート及びアドレス加算器とそれに対応する
記憶装置を設けることにより、命令処理を高速化するこ
とができる。
る命令では、オペランドと同数の汎用レジスタからのデ
ータ読出しルート及びアドレス加算器とそれに対応する
記憶装置を設けることにより、命令処理を高速化するこ
とができる。
本発明の主眼点は、第1図に示した構成を有する命令処
理装置において、計数分岐命令を高速に処理し、計算分
岐命令が変更したレジスタを後続の命令が使用する場
合、これを命令処理のオーバヘツドなく対処することで
ある。第2図に計数分岐命令の命令形式を示す。(1)
の命令形式においてビツト0−7は命令コードを示す。
ビツト8−11は第1オペランドの汎用レジスタ番号を示
し、ビツト12−15は分岐先命令の命令アドレスを保持す
る汎用レジスタ番号を示す。(2)の命令形式において
も、ビツト0−7は命令コードを示し、ビツト8−11は
第1オペランドの汎用レジスタ番号を示している。さら
に、ビツト12−15,16−19,20−31はそれぞれ分岐先命令
の命令アドレスを計算するためのインデクスレジスタ番
号、ベースレジスタ番号及び偏位値を示す。(1)ある
いは(2)の命令形式を有する計数分岐命令は、第1オ
ペランドで指定した汎用レジスタの内容から1を減じ、
その結果を同一の汎用レジスタに格納すると同時に、演
算結果が0でない場合には、第2オペランドで指定した
アドレスへ分岐する機能を有する。
理装置において、計数分岐命令を高速に処理し、計算分
岐命令が変更したレジスタを後続の命令が使用する場
合、これを命令処理のオーバヘツドなく対処することで
ある。第2図に計数分岐命令の命令形式を示す。(1)
の命令形式においてビツト0−7は命令コードを示す。
ビツト8−11は第1オペランドの汎用レジスタ番号を示
し、ビツト12−15は分岐先命令の命令アドレスを保持す
る汎用レジスタ番号を示す。(2)の命令形式において
も、ビツト0−7は命令コードを示し、ビツト8−11は
第1オペランドの汎用レジスタ番号を示している。さら
に、ビツト12−15,16−19,20−31はそれぞれ分岐先命令
の命令アドレスを計算するためのインデクスレジスタ番
号、ベースレジスタ番号及び偏位値を示す。(1)ある
いは(2)の命令形式を有する計数分岐命令は、第1オ
ペランドで指定した汎用レジスタの内容から1を減じ、
その結果を同一の汎用レジスタに格納すると同時に、演
算結果が0でない場合には、第2オペランドで指定した
アドレスへ分岐する機能を有する。
(3),(4)の命令ではビツト0−7が命令コード、
ビツト8−11,12−15がそれぞれ第1,第3オペランドの
汎用レジスタ番号、ビツト16−20,21−31が分岐先アド
レスを計算するためのベースレジスタ番号および偏位値
を示している。命令(3)では、第1オペランド,第3
オペランドの汎用レジスタの値を加算し、その結果がR
3′で示される汎用レジスタ(R3が奇数の時R3′=R3,R3
が偶数の時R3′=R3+1)の値より大きければ第2オペ
ランドで指定したアドレスへ分岐する。命令(4)で
は、第1オペランド、第3オペランドの汎用レジスタの
値の加算結果がR3′で示される汎用レジスタの値より小
さいか、等しい場合に分岐する機能を有する。
ビツト8−11,12−15がそれぞれ第1,第3オペランドの
汎用レジスタ番号、ビツト16−20,21−31が分岐先アド
レスを計算するためのベースレジスタ番号および偏位値
を示している。命令(3)では、第1オペランド,第3
オペランドの汎用レジスタの値を加算し、その結果がR
3′で示される汎用レジスタ(R3が奇数の時R3′=R3,R3
が偶数の時R3′=R3+1)の値より大きければ第2オペ
ランドで指定したアドレスへ分岐する。命令(4)で
は、第1オペランド、第3オペランドの汎用レジスタの
値の加算結果がR3′で示される汎用レジスタの値より小
さいか、等しい場合に分岐する機能を有する。
(1)〜(2)の分岐命令はいずれも汎用レジスタの値
のみによつて分岐判定を行うことができるという点で共
通している。本発明の実施例としては特に(1),
(2)で示した計数分岐命令の処理をとりあげ説明す
る。
のみによつて分岐判定を行うことができるという点で共
通している。本発明の実施例としては特に(1),
(2)で示した計数分岐命令の処理をとりあげ説明す
る。
計数分岐命令を処理する場合、従来装置では、命令のデ
コードサイクルにおいて、分岐先命令アドレスを計算す
ると同時に、R1で指定した汎用アドレスの内容が1か否
かを認識し(すなわち、1を減じて0になるか否かを認
識し)、分岐判定を行うことができる。しかし、実際の
演算(R1)−1はデコードサイクルで行うことができ
ず、演算器(あるいは副演算器)において演算サイクル
に同期して行うため、該計数分岐命令が変更した汎用レ
ジスタ(R1で指定した汎用レジスタ)を後続の命令がア
ドレス計算あるいは同じく計数分岐命令のR1として使用
した場合、後続命令の処理開始(デコードサイクル)が
前の計数分岐命令の演算終了まで待たされてしまう。第
3図に、計算分岐命令のR1で指定した汎用レジスタを直
後の命令がアドレス計算に利用した場合の命令処理の流
れを示す。第3図は横軸が命令処理の流れ(時間)を、
縦軸が命令列を示しており、(1),(2)いずれにお
いてもaが計数分岐命令、bが直後の命令を示してい
る。
コードサイクルにおいて、分岐先命令アドレスを計算す
ると同時に、R1で指定した汎用アドレスの内容が1か否
かを認識し(すなわち、1を減じて0になるか否かを認
識し)、分岐判定を行うことができる。しかし、実際の
演算(R1)−1はデコードサイクルで行うことができ
ず、演算器(あるいは副演算器)において演算サイクル
に同期して行うため、該計数分岐命令が変更した汎用レ
ジスタ(R1で指定した汎用レジスタ)を後続の命令がア
ドレス計算あるいは同じく計数分岐命令のR1として使用
した場合、後続命令の処理開始(デコードサイクル)が
前の計数分岐命令の演算終了まで待たされてしまう。第
3図に、計算分岐命令のR1で指定した汎用レジスタを直
後の命令がアドレス計算に利用した場合の命令処理の流
れを示す。第3図は横軸が命令処理の流れ(時間)を、
縦軸が命令列を示しており、(1),(2)いずれにお
いてもaが計数分岐命令、bが直後の命令を示してい
る。
一つの命令はD,A,L,E,Pと5つのサイクルにより処理さ
れ、Dサイクルでは命令のデコードおよびアドレス計算
を行い、Aサイクルでバツフア記憶の参照を行い、Lサ
イクルでバツフア記憶から読出したオペランドの転送を
行い、Eサイクルで演算を実行し、Pサイクルで演算結
果の汎用レジスタへの書込みを行う。第3図には、aの
計数分岐命令はいずれもDサイクルで分岐判定を行い、
分岐不成功であつた場合を示している。
れ、Dサイクルでは命令のデコードおよびアドレス計算
を行い、Aサイクルでバツフア記憶の参照を行い、Lサ
イクルでバツフア記憶から読出したオペランドの転送を
行い、Eサイクルで演算を実行し、Pサイクルで演算結
果の汎用レジスタへの書込みを行う。第3図には、aの
計数分岐命令はいずれもDサイクルで分岐判定を行い、
分岐不成功であつた場合を示している。
第3図(1)は、計数分岐命令aが変更した汎用レジス
タの値を直後の命令bがアドレス計算に利用する場合、
計数分岐命令aの演算終了後、演算結果を汎用レジスタ
に格納するのを待つて命令bのアドレス計算を開始した
場合を示している。この時計数分岐命令aの分岐判定は
Dサイクルで行われているにも拘らず、直後の命令のデ
コードの開始が4サイクル遅れてしまう。
タの値を直後の命令bがアドレス計算に利用する場合、
計数分岐命令aの演算終了後、演算結果を汎用レジスタ
に格納するのを待つて命令bのアドレス計算を開始した
場合を示している。この時計数分岐命令aの分岐判定は
Dサイクルで行われているにも拘らず、直後の命令のデ
コードの開始が4サイクル遅れてしまう。
第3図(2)は、特開昭54−41641に示された如く主演
算器とは別の簡単な演算器(副演算器)を設け、計数分
岐命令aの演算を該副演算器にて行い、その結果を直接
後続命令のアドレス加算に利用できるようにした場合の
命令処理である。この場合副演算器における演算は、主
演算器における演算より1サイクル早く開始できるだけ
であるので、やはり、命令bのデコード開始は2サイク
ル遅れてしまう。このように、計数分岐命令で変更した
汎用レジスタを直後の命令がアドレス計算に利用する場
合従来装置では計数分岐命令の演算サイクルに同期して
後続命令のデコードを開始するため、命令処理に空きが
生じる。
算器とは別の簡単な演算器(副演算器)を設け、計数分
岐命令aの演算を該副演算器にて行い、その結果を直接
後続命令のアドレス加算に利用できるようにした場合の
命令処理である。この場合副演算器における演算は、主
演算器における演算より1サイクル早く開始できるだけ
であるので、やはり、命令bのデコード開始は2サイク
ル遅れてしまう。このように、計数分岐命令で変更した
汎用レジスタを直後の命令がアドレス計算に利用する場
合従来装置では計数分岐命令の演算サイクルに同期して
後続命令のデコードを開始するため、命令処理に空きが
生じる。
第4図は、計数分岐命令を高速に処理できる命令処理装
置の一例を示す。命令レジスタ110には第2図(ロ)で
示した形式の計数分岐命令が設定されている。従来、計
数分岐命令の処理においては、第1オペランドに対する
減算を演算器で行い、分岐先命令のアドレス計算をアド
レス加算器で行つていた。第4図に示した命令処理装置
では、これら2種類の演算を共にアドレス加算器で行う
ことにより、命令処理の高速化を実現している。すなわ
ち、インデクスレジスタ番号およびベースレジスタ番号
を信号線151,152により汎用レジスタ111に送り、対応す
る汎用レジスタの内容を信号線155,156によりアドレス
加算器に入力する。偏位値は命令レジスタ110から信号
線153により直後アドレス加算器115に入力し、これら3
種のデータを加算して分岐先命令のアドレスを求めるこ
とができる。ただし計数分岐命令処理中、セレクタ133
は汎用レジスタ111側を選んでいるものとする。算出し
たアドレスは記憶装置117に送られ、対応する命令を読
み出すのに利用する。読出した命令に対する処理は、第
1図で説明したオペランドに対する処理とは異なるが、
本発明とは直接関係がないので省略する。このような、
分岐先命令のアドレス計算と並行して、第1オペランド
で指定した汎用レジスタ番号を信号線150により汎用レ
ジスタ111に送り、対応するデータを読出して、信号線1
54およびセレクタ131を経てアドレス加算器114に入力す
る。さらに、−1発生器121により−1をアドレス加算
器に入力し、第1オペランドから1を減じる演算をここ
で実現することができる。ただし、計数分岐命令実行
時、セレクタ130は0を出力し、セレクタ131は信号線15
4をセレクトし、セレクタ132は−1発生器121をセレク
トする。このように算出した値は、アドレスとして用い
ることはなく、すなわち、記憶装置116に送ることな
く、レジスタ140に保持する。レジスタ140に保持した値
は信号線165により、アドレス加算器141への入力データ
となり得ると同時に、バツフア141に格納し、計数分岐
命令の演算終了まで保持する。計算分岐命令の終了時
に、バツフア141から読出したデータを信号線166によつ
て汎用レジスタ群111の一つに送り第1オペランドで指
定したレジスタに書込む。ここで、計数分岐命令の後続
の命令が、計数分岐命令の第1オペランドで指定した汎
用レジスタをアドレス計算に用いる場合、計数分岐命令
に対するアドレス加算器114における減算終了後、演算
結果はレジスタ140に保持されているため、後続命令の
インデクスレジスタあるいはベースレジスタで指定した
汎用レジスタ群111の一つの内容を入力する代わりにセ
レクタ130を信号線165をセレクトするように制御するこ
とにより後続命令のアドレス加算を行うことができる。
この結果、後続命令のアドレス加算は、計数分岐命令の
演算終了まで待たされる必要がなくなる。
置の一例を示す。命令レジスタ110には第2図(ロ)で
示した形式の計数分岐命令が設定されている。従来、計
数分岐命令の処理においては、第1オペランドに対する
減算を演算器で行い、分岐先命令のアドレス計算をアド
レス加算器で行つていた。第4図に示した命令処理装置
では、これら2種類の演算を共にアドレス加算器で行う
ことにより、命令処理の高速化を実現している。すなわ
ち、インデクスレジスタ番号およびベースレジスタ番号
を信号線151,152により汎用レジスタ111に送り、対応す
る汎用レジスタの内容を信号線155,156によりアドレス
加算器に入力する。偏位値は命令レジスタ110から信号
線153により直後アドレス加算器115に入力し、これら3
種のデータを加算して分岐先命令のアドレスを求めるこ
とができる。ただし計数分岐命令処理中、セレクタ133
は汎用レジスタ111側を選んでいるものとする。算出し
たアドレスは記憶装置117に送られ、対応する命令を読
み出すのに利用する。読出した命令に対する処理は、第
1図で説明したオペランドに対する処理とは異なるが、
本発明とは直接関係がないので省略する。このような、
分岐先命令のアドレス計算と並行して、第1オペランド
で指定した汎用レジスタ番号を信号線150により汎用レ
ジスタ111に送り、対応するデータを読出して、信号線1
54およびセレクタ131を経てアドレス加算器114に入力す
る。さらに、−1発生器121により−1をアドレス加算
器に入力し、第1オペランドから1を減じる演算をここ
で実現することができる。ただし、計数分岐命令実行
時、セレクタ130は0を出力し、セレクタ131は信号線15
4をセレクトし、セレクタ132は−1発生器121をセレク
トする。このように算出した値は、アドレスとして用い
ることはなく、すなわち、記憶装置116に送ることな
く、レジスタ140に保持する。レジスタ140に保持した値
は信号線165により、アドレス加算器141への入力データ
となり得ると同時に、バツフア141に格納し、計数分岐
命令の演算終了まで保持する。計算分岐命令の終了時
に、バツフア141から読出したデータを信号線166によつ
て汎用レジスタ群111の一つに送り第1オペランドで指
定したレジスタに書込む。ここで、計数分岐命令の後続
の命令が、計数分岐命令の第1オペランドで指定した汎
用レジスタをアドレス計算に用いる場合、計数分岐命令
に対するアドレス加算器114における減算終了後、演算
結果はレジスタ140に保持されているため、後続命令の
インデクスレジスタあるいはベースレジスタで指定した
汎用レジスタ群111の一つの内容を入力する代わりにセ
レクタ130を信号線165をセレクトするように制御するこ
とにより後続命令のアドレス加算を行うことができる。
この結果、後続命令のアドレス加算は、計数分岐命令の
演算終了まで待たされる必要がなくなる。
第5図に、本発明を利用した命令処理装置において、計
数分岐命令aと計数分岐命令が変更した汎用レジスタの
値をアドレス計算に用いる命令bが連続した場合の命令
処理の流れを示した。ここで計数分岐命令aの分岐判定
はDサイクルにて行い、その結果分岐不成立であつたと
する。計数分岐命令aに対する演算がDサイクルに行わ
れるので、処理サイクルに空きを生じることなく直後の
命令の処理を開始できる。このように従来装置で生じて
いたオーバヘツドを全く無くすことができる。
数分岐命令aと計数分岐命令が変更した汎用レジスタの
値をアドレス計算に用いる命令bが連続した場合の命令
処理の流れを示した。ここで計数分岐命令aの分岐判定
はDサイクルにて行い、その結果分岐不成立であつたと
する。計数分岐命令aに対する演算がDサイクルに行わ
れるので、処理サイクルに空きを生じることなく直後の
命令の処理を開始できる。このように従来装置で生じて
いたオーバヘツドを全く無くすことができる。
本願の第1、第2の発明によれば、条件付き分岐命令が
以下の条件を満たす場合に、 1)この命令が指定する特定の汎用レジスタと、さらに
場合によっては、この命令が指定するアドレス情報で定
まるメモリ位置から分岐先命令を読み出すこと 2)分岐成功か否かの判定は、この命令が指定する他の
特定の汎用レジスタの内容に関する演算により行なうべ
きこと この命令の分岐成功か否かの判定を、この命令のデコー
ドサイクルで、分岐先命令のアドレスの計算と並行して
行なうことが出来る。
以下の条件を満たす場合に、 1)この命令が指定する特定の汎用レジスタと、さらに
場合によっては、この命令が指定するアドレス情報で定
まるメモリ位置から分岐先命令を読み出すこと 2)分岐成功か否かの判定は、この命令が指定する他の
特定の汎用レジスタの内容に関する演算により行なうべ
きこと この命令の分岐成功か否かの判定を、この命令のデコー
ドサイクルで、分岐先命令のアドレスの計算と並行して
行なうことが出来る。
さらに本願第2の発明の場合には、二つのメモリデータ
を並列にアクセスするのに使用する二つのアドレス加算
器がある場合に、その一方をこの分岐命令の成功か否か
の判定に使用するので、新たな演算器追加しないで、上
記判定を分岐命令のデコードサイクルで行なうことが出
来る。
を並列にアクセスするのに使用する二つのアドレス加算
器がある場合に、その一方をこの分岐命令の成功か否か
の判定に使用するので、新たな演算器追加しないで、上
記判定を分岐命令のデコードサイクルで行なうことが出
来る。
さらに本願第1、第2の発明の望ましい態様では、計数
分岐命令が変更した汎用レジスタを、後続命令がオペラ
ンドアドレスの計算あるいは、分岐命令の場合には分岐
先命令アドレスを計算するために利用する場合、後続命
令のアドレス加算を、計数分岐命令の演算終了まで待た
せることなく、計数分岐命令のアドレス計算終了後、即
座に開始できるので、後続命令の命令処理を待たせるこ
となく、連続的に行うことができる。
分岐命令が変更した汎用レジスタを、後続命令がオペラ
ンドアドレスの計算あるいは、分岐命令の場合には分岐
先命令アドレスを計算するために利用する場合、後続命
令のアドレス加算を、計数分岐命令の演算終了まで待た
せることなく、計数分岐命令のアドレス計算終了後、即
座に開始できるので、後続命令の命令処理を待たせるこ
となく、連続的に行うことができる。
第1図は、複数のオペランドを記憶装置上に有する命令
を高速に処理する命令処理装置を示す。第2図は、計数
分岐命令の命令形式を示す。第3図は、従来装置による
命令処理の流れを示す。第4図は、計数分岐命令を高速
に処理する命令処理装置を示す。第5図は、本発明によ
る命令処理装置における命令処理の流れを示す。 10,110……命令レジスタ、11,111……汎用レジスタ群、
12,13,112,113……定数発生器、14,15,114,115……アド
レス加算器、16,17,116,117……記憶装置、18,19,118,1
19……オペランドバツフア、20,120……演算器、121…
…−1発生器、140……レジスタ、141……バツフア、50
〜64,150〜166……信号線。
を高速に処理する命令処理装置を示す。第2図は、計数
分岐命令の命令形式を示す。第3図は、従来装置による
命令処理の流れを示す。第4図は、計数分岐命令を高速
に処理する命令処理装置を示す。第5図は、本発明によ
る命令処理装置における命令処理の流れを示す。 10,110……命令レジスタ、11,111……汎用レジスタ群、
12,13,112,113……定数発生器、14,15,114,115……アド
レス加算器、16,17,116,117……記憶装置、18,19,118,1
19……オペランドバツフア、20,120……演算器、121…
…−1発生器、140……レジスタ、141……バツフア、50
〜64,150〜166……信号線。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭54−41641(JP,A) 特開 昭54−78941(JP,A) 特開 昭60−17538(JP,A) 特開 昭57−755(JP,A) 特開 昭57−34253(JP,A)
Claims (3)
- 【請求項1】命令列およびデータを保持するメモリと、 複数の汎用レジスタと、 該メモリのアドレスを計算するためのアドレス演算器
と、 実行すべき命令が、該メモリ内のデータに対する演算を
要求する演算命令の場合に、該複数の汎用レジスタの内
の、その演算命令が指定する少なくとも一つの第1の汎
用レジスタの内容と、その演算命令が指定するアドレス
情報がある場合にはそのアドレス情報とに基づいて、上
記データのメモリアドレスを、その演算命令の特定のサ
イクルで計算するように該アドレス演算器での演算を制
御する手段と、 該アドレス演算器で演算されたメモリアドレスに基づい
て上記データを該メモリから該特定のサイクルの後続の
サイクルで読み出す手段と、 該読み出されたデータに対してその演算命令が指定する
演算を上記後続のサイクルのさらに後続のサイクルで実
行する演算装置と、 該実行すべき命令が、該複数の汎用レジスタの内の第2
の汎用レジスタに保持された情報に基づいて分岐が成功
か否かを判断し、分岐が成功の場合、該メモリから分岐
先の命令を読み出すことを要求する条件付き分岐命令で
あるときには、この分岐命令が指定する第3の汎用レジ
スタの内容と、この分岐命令が指定するアドレス情報が
ある場合にはそのアドレス情報とに基づいて、分岐先命
令のメモリアドレスを、その分岐命令の特定のサイクル
で計算するように該アドレス演算器での演算を制御し、
算出されたメモリアドレスに基づいて該分岐先命令を該
特定のサイクルより後のサイクルで該メモリから読み出
すように該読み出し手段を制御する手段と、 分岐条件判定用の演算器と、 該第2の汎用レジスタの内容に対して、分岐条件を満た
すか否かを判別するための演算を、上記アドレス演算器
で分岐先命令のアドレスを計算するのに並行して、この
条件付き分岐命令の上記特定のサイクルにおいて行なう
ように、該分岐条件判定用の演算器での演算を制御する
手段と、 該分岐条件判定用の演算器による演算結果を該第2の汎
用レジスタに書込む手段と、 上記条件付き分岐命令の後続の命令が、該第2の汎用レ
ジスタを分岐成功か否かを判定するための汎用レジスタ
として指定する条件付き分岐命令である場合、該分岐条
件判定用の演算器の上記演算結果を該分岐条件判定用の
演算器に供給する手段を有する命令処理装置。 - 【請求項2】命令列およびデータを保持するメモリと、 複数の汎用レジスタと、 第1、第2のアドレス演算器と、 実行すべき命令が、該メモリ内の第1、第2のデータに
対する演算を要求する演算命令の場合、該複数の汎用レ
ジスタの内の、その演算命令が指定する少なくとも一つ
の第1の汎用レジスタの内容と、その演算命令が指定す
る第1のアドレス情報がある場合にはその第1のアドレ
ス情報とに基づいて、上記第1のデータのメモリアドレ
スを、その演算命令の特定のサイクルで計算するように
該第1のアドレス演算器を制御し、該複数の汎用レジス
タの内の、その演算命令が指定する少なくとも一つの第
2の汎用レジスタの内容と、その演算命令が指定する第
2のアドレス情報がある場合にはその第2のアドレス情
報とに基づいて、上記第2のデータのメモリアドレス
を、その命令の特定のサイクルで計算するように該第2
のアドレス演算器を制御する手段と、 第1、第2のアドレス演算器で演算されたメモリアドレ
スに基づいて上記第1、第2のデータを該メモリから上
記特定のサイクルより後のサイクルで読み出す手段と、 該読み出された第1、第2のデータに対してその演算命
令が指定する演算を上記後のサイクルより更に後のサイ
クルで実行する演算装置と、 実行すべき命令が、該複数の汎用レジスタの内の第3の
汎用レジスタの内容に基づいて分岐が成功か否かを判断
し、分岐成功のときには該メモリから分岐先の命令を読
み出すことを要求する条件付き分岐命令である場合に、
この分岐命令が指定する第4の汎用レジスタの内容と、
この分岐命令が指定するアドレス情報がある場合にはそ
のアドレス情報とに基づいて、分岐先命令のメモリアド
レスを、その分岐命令の特定のサイクルで計算するよう
に該第1のアドレス演算器での演算を制御し、算出され
たメモリアドレスに基づいて該分岐先命令を該特定のサ
イクルより後のサイクルで該メモリから読み出すように
該読み出し手段を制御する手段と、 該第3の汎用レジスタの内容に対して、分岐条件を満た
すか否かを判別するための演算を、上記第1のアドレス
演算器で分岐先命令のアドレスを計算するのに並行し
て、この条件付き分岐命令の上記特定のサイクルにおい
て行なうように、該第2のアドレス演算器での演算を制
御する手段と、 上記実行すべき命令が分岐命令の場合に上記第2のアド
レス演算器による演算結果を該第3の汎用レジスタに書
込む手段と、 上記条件付き分岐命令の後続の命令がこの第3の汎用レ
ジスタを使用する命令である場合、該第2のアドレス演
算器の演算結果を該第1、第2のアドレス演算器の一方
に供給する手段を有する命令処理装置。 - 【請求項3】上記実行すべき命令が分岐命令の場合に上
記第2のアドレス演算器での演算を制御する手段は、該
第3の汎用レジスタの値に該分岐命令で定められた負の
所定値を加算するように、上記第2のアドレス演算器で
の演算を制御する手段である請求項2記載の命令処理装
置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60095444A JPH0752390B2 (ja) | 1985-05-07 | 1985-05-07 | 命令処理装置 |
EP86106128A EP0201833B1 (en) | 1985-05-07 | 1986-05-05 | Instruction processor |
DE86106128T DE3688806T2 (de) | 1985-05-07 | 1986-05-05 | Instruktionsprozessor. |
US07/336,741 US4954947A (en) | 1985-05-07 | 1989-03-21 | Instruction processor for processing branch instruction at high speed |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60095444A JPH0752390B2 (ja) | 1985-05-07 | 1985-05-07 | 命令処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61253541A JPS61253541A (ja) | 1986-11-11 |
JPH0752390B2 true JPH0752390B2 (ja) | 1995-06-05 |
Family
ID=14137860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60095444A Expired - Lifetime JPH0752390B2 (ja) | 1985-05-07 | 1985-05-07 | 命令処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4954947A (ja) |
EP (1) | EP0201833B1 (ja) |
JP (1) | JPH0752390B2 (ja) |
DE (1) | DE3688806T2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265220A (en) * | 1986-12-23 | 1993-11-23 | Nec Corporation | Address control device for effectively controlling an address storing operation even when a request is subsequently cancelled |
JP2690921B2 (ja) * | 1987-12-25 | 1997-12-17 | 株式会社日立製作所 | 情報処理装置 |
JPH0769808B2 (ja) * | 1988-02-23 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
US5522053A (en) * | 1988-02-23 | 1996-05-28 | Mitsubishi Denki Kabushiki Kaisha | Branch target and next instruction address calculation in a pipeline processor |
DE68927292T2 (de) * | 1988-11-25 | 1997-05-07 | Nippon Electric Co | Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes |
JPH0795271B2 (ja) * | 1989-06-20 | 1995-10-11 | 富士通株式会社 | 分岐命令実行装置 |
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
DE69130129T2 (de) * | 1990-02-23 | 1999-05-06 | Nec Corp., Tokio/Tokyo | Pipelinemikroprozessor mit Vorberechnung der effektiven Adresse |
JP2922723B2 (ja) * | 1992-06-29 | 1999-07-26 | キヤノン株式会社 | 情報処理装置 |
JP2857600B2 (ja) * | 1995-05-11 | 1999-02-17 | 松下電器産業株式会社 | プロセッサ及びプログラム翻訳装置 |
US6385720B1 (en) * | 1997-07-14 | 2002-05-07 | Matsushita Electric Industrial Co., Ltd. | Branch prediction method and processor using origin information, relative position information and history information |
JP3606435B2 (ja) * | 1999-09-29 | 2005-01-05 | 富士通株式会社 | モードを変更する分岐命令を制御する命令処理装置および方法 |
JP2005259113A (ja) * | 2004-02-12 | 2005-09-22 | Ricoh Co Ltd | プロセス編集装置、プロセス管理装置、プロセス編集プログラム、プロセス管理プログラム、記録媒体、プロセス編集方法及びプロセス管理方法 |
GB2464674C (en) * | 2008-10-20 | 2013-04-03 | Avdel Uk Ltd | Blind fastener |
US10514911B2 (en) | 2014-11-26 | 2019-12-24 | International Business Machines Corporation | Structure for microprocessor including arithmetic logic units and an efficiency logic unit |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
JPS6029126B2 (ja) * | 1977-01-14 | 1985-07-09 | 株式会社日立製作所 | デ−タ処理装置 |
JPS5440537A (en) * | 1977-09-07 | 1979-03-30 | Hitachi Ltd | Pipeline control system |
JPS5441641A (en) * | 1977-09-09 | 1979-04-03 | Hitachi Ltd | Data processing system having data producing unit |
JPS5478941A (en) * | 1977-12-07 | 1979-06-23 | Hitachi Ltd | High speed operation system |
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
JPS5621240A (en) * | 1979-07-27 | 1981-02-27 | Hitachi Ltd | Information processor |
JPS5927935B2 (ja) * | 1980-02-29 | 1984-07-09 | 株式会社日立製作所 | 情報処理装置 |
JPS56129950A (en) * | 1980-03-07 | 1981-10-12 | Hitachi Ltd | Information processor |
JPS56149646A (en) * | 1980-04-21 | 1981-11-19 | Toshiba Corp | Operation controller |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
JPS6023378B2 (ja) * | 1980-06-02 | 1985-06-07 | 株式会社日立製作所 | 情報処理装置 |
JPS5734253A (en) * | 1980-08-09 | 1982-02-24 | Fujitsu Ltd | Brunch instruction controlling circuit |
JPS5858653A (ja) * | 1981-10-02 | 1983-04-07 | Hitachi Ltd | デ−タ処理装置 |
US4435756A (en) * | 1981-12-03 | 1984-03-06 | Burroughs Corporation | Branch predicting computer |
JPS58189739A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
JPS6017538A (ja) * | 1983-07-11 | 1985-01-29 | Hitachi Ltd | 命令処理装置 |
JPS60178539A (ja) * | 1984-02-24 | 1985-09-12 | Fujitsu Ltd | 情報処理装置におけるバイパス制御方式 |
JPS60204036A (ja) * | 1984-03-28 | 1985-10-15 | Hitachi Ltd | デ−タ処理装置 |
-
1985
- 1985-05-07 JP JP60095444A patent/JPH0752390B2/ja not_active Expired - Lifetime
-
1986
- 1986-05-05 DE DE86106128T patent/DE3688806T2/de not_active Expired - Fee Related
- 1986-05-05 EP EP86106128A patent/EP0201833B1/en not_active Expired - Lifetime
-
1989
- 1989-03-21 US US07/336,741 patent/US4954947A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0201833B1 (en) | 1993-08-04 |
DE3688806T2 (de) | 1994-01-05 |
DE3688806D1 (de) | 1993-09-09 |
JPS61253541A (ja) | 1986-11-11 |
EP0201833A2 (en) | 1986-11-20 |
EP0201833A3 (en) | 1989-11-08 |
US4954947A (en) | 1990-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0752390B2 (ja) | 命令処理装置 | |
JPS61107434A (ja) | デ−タ処理装置 | |
WO1987005417A1 (en) | Instruction prefetch control apparatus | |
JPS633337B2 (ja) | ||
US4967338A (en) | Loosely coupled pipeline processor | |
EP0653703A1 (en) | Temporary pipeline register file for a superpipelined superscalar processor | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
JPH0743648B2 (ja) | 情報処理装置 | |
JP2518293B2 (ja) | デ−タフロ−プロセツサ | |
JP2503984B2 (ja) | 情報処理装置 | |
JP2591325B2 (ja) | 分岐制御装置 | |
JP3568737B2 (ja) | 条件実行命令を備えるマイクロプロセッサ | |
JPH0991139A (ja) | 情報処理装置 | |
JPS61273637A (ja) | 情報処理装置 | |
JPS60178540A (ja) | 情報処理装置におけるバイパス制御方式 | |
JPS63206834A (ja) | 命令制御におけるエラ−検出処理方式 | |
JPH06332701A (ja) | 情報処理装置 | |
JPH0827720B2 (ja) | データ処理装置 | |
JPH04130536A (ja) | 分岐制御方法 | |
JP2001236223A (ja) | 情報処理装置 | |
JPS61273638A (ja) | 情報処理装置 | |
JPS61296448A (ja) | 電子計算機のデ−タ書込み制御方式 | |
JPS58154045A (ja) | 情報処理装置 | |
JPH02206836A (ja) | データ処理装置 | |
JPH05100842A (ja) | 命令処理装置 |