JPH0774992B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0774992B2
JPH0774992B2 JP19822688A JP19822688A JPH0774992B2 JP H0774992 B2 JPH0774992 B2 JP H0774992B2 JP 19822688 A JP19822688 A JP 19822688A JP 19822688 A JP19822688 A JP 19822688A JP H0774992 B2 JPH0774992 B2 JP H0774992B2
Authority
JP
Japan
Prior art keywords
instruction
decoder
decoded
register
decoding
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 - Fee Related
Application number
JP19822688A
Other languages
English (en)
Other versions
JPH0247725A (ja
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP19822688A priority Critical patent/JPH0774992B2/ja
Priority to EP89307961A priority patent/EP0354740B1/en
Priority to DE68926701T priority patent/DE68926701T2/de
Priority to KR1019890011318A priority patent/KR930001055B1/ko
Publication of JPH0247725A publication Critical patent/JPH0247725A/ja
Priority to US07/916,804 priority patent/US5202967A/en
Publication of JPH0774992B2 publication Critical patent/JPH0774992B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明は2命令を同時に解読して処理するデータ処理装
置に関する。
従来の技術 従来のデータ処理装置において処理の高速化を図るため
に、2つの解読器を設けて2命令を同時に解読し、2つ
の演算ユニットを同時に動作させる方法がとられてい
る。例えば、特開昭63−49843号では、算術演算と論理
演算との2つの命令をそれぞれ独立な第1の解読器と第
2の解読器とによって解読し、算術演算ユニットと論理
演算ユニットとを同時に動作させることによって性能を
向上している。
また他の例では、一度解読した命令を解読済命令バッフ
ァに一定のサイズだけ保持しておき、ループによって解
読済命令バッファ内の命令が繰返して使用できる場合に
限り解読済命令バッファから複数の実行ユニットに対し
て解読命令を与えるとう方法がある。(“TRON仕様に基
づく32ビットマイクロプロセッサTX3のCPUアーキテクチ
ャの検討”電子情報通信学会技術研究報告コンピュータ
システム、Vol.8,No.422.1988) 発明が解決しようとする課題 従来のデータ処理装置にあっては、固定語長命令体系に
おける2命令の同時解読は、解読中の命令に後続する命
令の位置が決まっているため容易である。従って、後続
命令を解読する第2の命令解読器を1つ追加するだけで
2命令同時解読が可能である。但し、解読ハードウェア
の増加を抑えるために、それぞれの解読器が解読する命
令の分担を算術演算と論理演算といったように予め決め
ておき、それぞれの解読器で解読ハードウェアが重複し
ないようにしている。このように2つの解読器間で解読
する命令の分担を決めてしまうと、解読器のハードウェ
ア増加は抑えられるが、常に2命令の同時解読を行うの
が困難になり、場合によっては1命令に対して2回解読
する必要が生じる。そのためコードスケジュールによっ
て2種類の命令をインタリーブする等の対策が必要とな
り、コンパイラへの負担が増加するといった問題があ
る。
可変語長命令体系においては、解読中の命令に後続する
命令の位置が現在解読中の命令の解読結果によって決定
されるため、2命令同時解読するためには解読中の命令
に後続する命令語を同時解読する第2の解読器を複数設
けたり、或は第2の命令解読器に入力する命令語を選択
するセレクタを設け、第1の命令解読器の解読結果によ
ってセレクタを制御し、第2の命令解読器の入力を決定
するといったことを行っていた。そのため、解読器のハ
ードウェアが増加したり、解読に要する時間が増加する
という問題点があった。また、可変語長命令体系では2
命令の同時解読が困難であるため1命令毎に解読した解
読結果を保持しておき、実行ユニットに解読結果を供給
する際に2命令分を同時に与えることによって、2命令
の同時実行を行っていた。そのため、大容量の解読済命
令バッファが必要であった。更に解読済命令バッファに
解読済命令が蓄積されるまでの間は、1命令解読によっ
て実行スループットが決定されてしまうという問題があ
った。
本発明は、可変語長命令体系において解読ハードウェア
を著しく増加させることなく2命令の同時解読を行うデ
ータ処理装置を提供することを目的としている。さら
に、条件付き分岐命令とそれに後続する命令を同時に解
読し、条件付き分岐命令の実行を高速に行うデータ処理
装置を提供することを目的としている。
課題を解決するための手段 上記目的を達成するために、本発明のデータ処理装置に
おいては、可変語長命令体系の命令を解読する第1の命
令解読器と、可変語長命令体系の命令のうち2命令同時
解読の対象となる命令を解読する第2の命令解読器と、
第1の命令解読器が解読中の命令に後続する命令列の中
に第2の命令解読器によって解読可能な命令の存在を先
見的に検出する第3の命令解読器と、前記第3の命令解
読器の検出結果を前記第1の命令解読器の命令境界を表
わす出力によって有効とし、前記第3の命令解読器が解
読中の命令を第2の命令解読器に供給すると同時に前記
命令の後続命令を第1の命令解読器に供給するように制
御する命令供給手段とを備える。
また、条件付き分岐命令を高速化するために、本発明の
データ処理装置においては、条件付き分岐命令の分岐先
アドレスを計算する加算器と、条件の成立を検出する比
較器と、条件が成立した場合に限り条件付き分岐命令に
後続する命令の実行を抑止すると同時に、前記加算器の
分岐先アドレスから命令の処理を開始させる分岐制御手
段とを備える。
作用 本発明は上記手段により、可変語長命令体系において解
読ハードウェアを著しく増加させることなく2命令の同
時解読を行う。
また、条件付き分岐命令の実行速度を向上し、条件が非
分岐の場合には見掛け上条件付き分岐命令の実行クロッ
クを零にする。
実 施 例 第1図は本発明の一実施例のデータ処理装置の構成を示
すブロック図である。図において、10は実行に先立って
予め命令をフェッチする命令フェッチユニット、11は命
令フェッチユニット10によって用意された命令を蓄える
命令バッファであり、解読に必要な命令を解読器に供給
する。12は可変語長命令を解読する第1の命令解読器で
あり、2命令同時解読の対象となる命令を除く全ての命
令を解読する。13は2命令同時解読の対象となる命令だ
けを解読する第2の命令解読器、14および16は第1の命
令解読器12が解読中の命令に後続する命令語を解読し、
後続命令の中に2命令同時解読の対象となる命令の存在
を検出する第3の命令解読器である。101および103はそ
の検出結果である。17は第1の命令解読器12が解読する
命令語およびそれに後続する命令語を保持する命令レジ
スタ、18は第2の命令解読器13が解読する命令を保持す
る命令レジスタである。19は命令レジスタ17および18を
シフト制御する命令供給手段制御部であり、検出結果10
1および103のいずれか一つを、第1の命令解読器12が解
読した命令境界をしめす出力100によって有効とし、有
効な検出結果を出力した第3の命令解読器が解読してい
る命令を命令バッファ18へ格納するように制御する。20
は命令解読器12および16に命令を供給する命令供給手段
である。21は解読済命令レジスタである命令解読器12お
よび13が解読した命令の解読結果を一時保持する。22は
解読済命令レジスタ21の指令104の内容に従って演算を
実行する実行ユニットであり、実行に必要なALU、シフ
タ、汎用レジスタ等を含む。23はアドレス計算専用の加
算器24を備えた分岐先アドレス計算手段であり、解読命
令レジスタ21の指令105の内容に従って条件付き分岐命
令或は無条件分岐命令等の、分岐先アドレス106を実行
ユニット22とは独立に計算する。25は分岐制御手段であ
り、解読済命令レジスタ21の指令107に含まれる条件付
き分岐命令の条件コードと、実行ユニット22が出力する
演算結果フラグ108とを入力し、比較器26によって分岐
条件成立の有無を検出する。分岐条件が成立した場合に
は分岐成立信号109によって、分岐命令に後続する命令
の実行を抑止すると同時に、分岐先アドレス106から命
令を再開するように制御する。なお、無条件分岐命令の
場合には分岐成立信号109が必ず出力される。27はプロ
セッサ外部とのデータ転送を制御するバス転送ユニット
である。第2図は本発明のデータ処理装置により、可変
語長命令を2命令同時解読する場合の動作を説明するた
めの図である。以下、第1図と第2図により本発明の実
施例の動作を説明する。
第2図(1)は実行する命令列の順序を示す図で、A0命
令から順に実行する。命令列A0、A1、A2、A3の内A0命令
は16ビットのディスプレースメントを持ち、A1命令は2
命令同時解読の対象となる命令であるとする。従って、
A1命令とA2命令とを2命令同時に解読するものとする。
第2図(2)は第1の命令解読器がA0命令を解読中の命
令レジスタ17および18の状態を示す図である。命令レジ
スタ17を構成する4つの16ビットの命令レジスタIR0お
よびIR3には命令列の順に、IR0にA0命令、IR1にA0命令
のディスプレースメント、IR2にA1命令、IR3にA2命令が
格納される。この時、第1の命令解読器12はIR0のA0命
令を解読し、命令の境界がIR1とIR2の間であることを示
す信号100を出力する。これと並行して第3の命令解読
器14〜16はそれぞれIR1〜IR3のそれぞれディスプレース
メント、A1命令、A2命令を解読し、2命令同時解読の対
象となる命令が存在するか否かを調査して信号線101お
よび103に結果を出力する。この際、第3の命令解読器1
4〜16は命令の境界を認識していないのでIR1のディスプ
レースメント値が偶然的に2命令同時解読の対象となる
命令のコードと一致する場合には、第3の命令解読器14
は誤った検出結果を信号線101に出力する。命令供給手
段制御部19は命令の境界を示す信号100によって信号線1
01及び103から誤った検出結果を排除し、検出結果102が
有効であると判断する。それに基づいて命令レジスタ17
及び18をシフト制御し、IR2の命令A1を命令レジスタ18
に、後続するIR3の命令A2を命令レジスタIR0に格納す
る。その状態を第2図(3)に示す。同図(3)の状態
で第1の命令解読器12がA2命令を解読し、第2の命令解
読器13がA1命令を解読することにより2命令の同時解読
を行う。なお、第3の命令解読器14および16は、同時解
読できる命令の有無を検出するだけであり、数ゲートの
ハードウェアによって実現できる。また、第2の命令解
読器は2命令同時解読の対象となる命令だけを解読し、
第1の命令解読器はその対象となる命令以外の命令を解
読すれば良いので、解読ハードウエアは増加しない。
次に、第3図及び第4図は本発明のデータ処理装置によ
り、条件付き分岐命令を高速化した場合の動作を説明す
るための図である。第3図は実行する命令列の順序を示
す図、第4図(1)は条件不成立時の動作タイミング
図、同図(2)は条件成立時の動作タイミング図であ
る。以下、第1図と第3図及び第4図によって条件付き
分岐命令の動作を説明する。
第3図は実行する命令列を示しており、条件付き分岐命
令(Bcc)の条件が成立した時にはB1命令に分岐し、条
件不成立の時には後続するA1命令を実行することを表わ
す。命令解読器により条件付き分岐命令とそれに後続す
るA1命令とが同時解読される。第4図においてIFは命令
フェッチユニット10の動作を示し、DECは命令解読器の
動作を示す。RとEXとWは実行ユニット22の動作を示
し、それぞれ、レジスタの読出し、演算、レジスタへの
書込みを表わす。タイミング2で解読されたA0命令はタ
イミング4で演算され、タイミング5で結果の書込みが
行われる。同時に演算の結果フラグが信号線108に出力
される。一方タイミング3では条件付き分岐命令とそれ
に後続するA1命令が同時解読され、解読結果が解読済命
令レジスタ21に格納される。タイミング4では解読済命
令レジスタ21の内容に従って、分岐先アドレス計算手段
23のアドレス計算専用の加算器24においてB1命令のアド
レスが計算され一時保持される。また、実行ユニット22
においては、A1命令の演算に必要なレジスタの内容が読
出される。タイミング5では実行ユニット22においてA1
命令の演算が行われ演算結果が一時保持される。同時に
分岐制御手段25の比較器26は条件付き分岐命令の条件コ
ードとタイミング4で演算されたA0命令の演算結果フラ
グ108とを比較する。比較の結果条件が成立しない場合
には、タイミング5において保持していたA1命令の演算
結果をタイミング6でレジスタに書込む。さらに、タイ
ミング4において計算したB1命令のアドレスを無効化
し、命令フェッチユニット10は条件付き分岐命令に後続
する命令列のフェッチを継続する。比較の結果条件が成
立した場合には、タイミング6におけるA1命令の演算結
果の書込みを禁止するとともに、後続する全ての命令の
実行を無効化する。そして、命令フェッチユニット10は
タイミング4において計算したB1命令のアドレスに従っ
てB1命令をフェッチし、処理が開始される。
本発明は以上のような構成により、可変語長命令体系に
おいて解読ハードウェアを著しく増加させることなく2
命令の同時解読を行ない、また、条件付き分岐命令の実
行を高速に行うデータ処理装置を提供することを目的と
する。そのために、可変語長命令体系の命令を解読する
第1の命令解読器と、可変語長命令体系の命令のうち2
命令同時解読の対象となる命令を解読する第2の命令解
読器と、第1の命令解読器が解読中の命令に後続する命
令列の中に第2の命令解読器によって解読可能な命令の
存在を先見的に検出する第3の命令解読器と、前記第3
の命令解読器の検出結果を前記第1の命令解読器の命令
境界を表わす出力によって有効とし、前記第3の命令解
読器が解読中の命令を第2の命令解読器に供給すると同
時に前記命令の後続命令を第1の命令解読器に供給する
ように制御する命令供給手段と、条件付き分岐命令の分
岐先アドレスを計算する加算器と、条件の成立を検出す
る比較器と、条件が成立した場合に限り条件付き分岐命
令に後続する命令の実行を抑止すると同時に、前記加算
器の分岐先アドレスから命令の処理を開始させる分岐制
御手段とを備えることにより、解読ハードウェアを著し
く増加させることなく2命令の同時解読を行なえるの
で、処理の高速化が図れる。さらに、条件付き分岐命令
の実行が高速化でき、特に条件不成立時には実行時間を
見掛け上零にできる。
発明の効果 以上述べたように本発明によれば、第3の命令解読器を
設けて先見的に2命令同時解読できる命令の存在を検出
することにより、解読ハードウェアの著しい増加を抑え
て可変語長命令における2命令同時解読を可能にし、処
理の高速化が図れる。さらに、条件付分岐命令とそれに
後続する命令とを2命令同時解読し、条件が成立した時
には後続する命令の実行を全て抑止することにより、条
件付き分岐命令の処理が高速化できる。なお、演算実行
部を2つ設け、レジスタ間演算命令とそれに後続する命
令とを2命令同時解読することにより、レジスタ資源が
干渉しない場合において2命令を並列に実行させること
も可能である。
【図面の簡単な説明】
第1図は本発明の一実施例におけるデータ処理装置の構
成図、第2図は本発明のデータ処理装置により可変語長
命令を2命令同時解読する場合の動作説明図、第3図は
条件付き分岐命令を高速化した場合の動作を説明するた
め実行命令列を示す命令図、第4図は本発明のデータ処
理装置により条件付き分岐命令を高速化した場合の動作
を説明するためのタイミング図である。 10……命令フェッチユニット、 11……命令バッファ、12……第1の命令解読器、 13……第2の命令解読器、 14、15、16……第3の命令解読器、 20……命令供給手段、 21……解読済命令レジスタ、 22……実行ユニット、 23……分岐先アドレス計算手段、 24……加算器、25……分岐制御手段、 26……比較器。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】命令の解読に先だってあらかじめフェッチ
    した命令を格納する命令バッファと、前記命令バッファ
    に接続され、一定量の命令語を前記命令バッファから読
    みだして格納する第1の命令レジスタと、前記第1の命
    令レジスタに接続され、可変語長命令体系の命令を解読
    して命令の実行制御信号を生成する第1の命令解読器
    と、前記第1の命令レジスタに格納されている命令であ
    ってかつ、前記第1の命令解読器が解読する命令以降の
    命令の一部を格納する第2の命令レジスタと、前記第2
    の命令レジスタに接続され、前記第2の命令レジスタに
    格納された命令を解読して前記第1の命令解読器とは異
    なる実行制御信号を生成する第2の命令解読器と、前記
    第1の命令レジスタに格納されている命令であってか
    つ、前記第1の命令解読器が解読する命令以降の命令の
    中から、前記第1の命令解読器の解読と同じタイミング
    で、前記第2の命令解読器によって解読可能な命令の存
    在を検出する第3の命令解読器と、前記第3の命令解読
    器の検出結果を前記第1の命令解読器の命令境界を表わ
    す出力によって有効とし、前記第1の命令レジスタに格
    納されている命令の中から前記第2の命令解読器によっ
    て解読可能な命令を前記第1の解読器の解読の次のタイ
    ミングで、前記第2の命令レジスタに格納すると同時
    に、前記第2の命令レジスタに格納する前記命令以降の
    命令をシフトして前記第1の命令レジスタに再度格納す
    るように制御する命令供給手段とを備え、前記第1の命
    令解読器と前記第2の命令解読器とにより2つの命令を
    同時に解読することを特徴とするデータ処理装置。
  2. 【請求項2】前記第2の命令解読器が出力する実行制御
    信号にしたがって、条件付き分岐命令の分岐先アドレス
    を計算する加算器と、前記第2の命令解読器が出力する
    実行制御信号にしたがって、条件の成立を検出する比較
    器と、条件が成立した場合に限り前記第1の命令解読器
    が出力する実行制御信号により実行を抑止すると同時
    に、前記加算器が出力する分岐先アドレスから命令実行
    の処理を開始させる分岐制御手段とを備え、前記第2の
    命令解読器が解読する条件付き分岐命令と前記第1の命
    令解読器が解読する前記条件分岐付き命令の後続命令と
    を同時に実行し、条件付き分岐命令の条件が成立した場
    合には同時実行中の後続命令の実行を抑止することを特
    徴とする請求項1記載のデータ処理装置。
JP19822688A 1988-08-09 1988-08-09 データ処理装置 Expired - Fee Related JPH0774992B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP19822688A JPH0774992B2 (ja) 1988-08-09 1988-08-09 データ処理装置
EP89307961A EP0354740B1 (en) 1988-08-09 1989-08-04 Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
DE68926701T DE68926701T2 (de) 1988-08-09 1989-08-04 Datenverarbeitungsgerät zur parallelen Dekodierung und parallelen Ausführung von Befehlen mit variabler Wortlänge
KR1019890011318A KR930001055B1 (ko) 1988-08-09 1989-08-09 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
US07/916,804 US5202967A (en) 1988-08-09 1992-07-20 Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19822688A JPH0774992B2 (ja) 1988-08-09 1988-08-09 データ処理装置

Publications (2)

Publication Number Publication Date
JPH0247725A JPH0247725A (ja) 1990-02-16
JPH0774992B2 true JPH0774992B2 (ja) 1995-08-09

Family

ID=16387603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19822688A Expired - Fee Related JPH0774992B2 (ja) 1988-08-09 1988-08-09 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0774992B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
US6334184B1 (en) 1998-03-24 2001-12-25 International Business Machines Corporation Processor and method of fetching an instruction that select one of a plurality of decoded fetch addresses generated in parallel to form a memory request

Also Published As

Publication number Publication date
JPH0247725A (ja) 1990-02-16

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5809294A (en) Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
US5287467A (en) Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US4760520A (en) Data processor capable of executing instructions under prediction
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
US9361110B2 (en) Cache-based pipline control method and system with non-prediction branch processing using a track table containing program information from both paths of a branch instruction
US4928226A (en) Data processor for parallelly executing conflicting instructions
US20080177981A1 (en) Apparatus and method for decreasing the latency between instruction cache and a pipeline processor
US5497496A (en) Superscalar processor controlling fetching of instructions based upon number of empty instructions registers detected for each cycle
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
KR930001055B1 (ko) 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
JP2535252B2 (ja) 並列処理装置
US3553655A (en) Short forward conditional skip hardware
US5634136A (en) Data processor and method of controlling the same
JP2723238B2 (ja) 情報処理装置
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
JP3708022B2 (ja) プロセッサ
JPH0774992B2 (ja) データ処理装置
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JP3765111B2 (ja) 分岐登録命令を有するプロセッサ
JP2591325B2 (ja) 分岐制御装置
JP3493110B2 (ja) 高速分岐処理装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2531791B2 (ja) フエッチアクセス時の異常処理方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees