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

データ処理装置

Info

Publication number
JPH0769800B2
JPH0769800B2 JP1028184A JP2818489A JPH0769800B2 JP H0769800 B2 JPH0769800 B2 JP H0769800B2 JP 1028184 A JP1028184 A JP 1028184A JP 2818489 A JP2818489 A JP 2818489A JP H0769800 B2 JPH0769800 B2 JP H0769800B2
Authority
JP
Japan
Prior art keywords
instruction
register
decoder
decoding
parallel
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
JP1028184A
Other languages
English (en)
Other versions
JPH02206836A (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 JP1028184A priority Critical patent/JPH0769800B2/ja
Priority to DE68926701T priority patent/DE68926701T2/de
Priority to EP89307961A priority patent/EP0354740B1/en
Priority to KR1019890011318A priority patent/KR930001055B1/ko
Publication of JPH02206836A publication Critical patent/JPH02206836A/ja
Priority to US07/916,804 priority patent/US5202967A/en
Publication of JPH0769800B2 publication Critical patent/JPH0769800B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明は複数の命令を並列解読して処理するデータ処理
装置に関する。
従来の技術 従来のデータ処理装置において、処理の高速化をはかる
ためには、例えば2つの命令を同時に処理する場合には
2つの解読機を設けて2命令を同時に解読し、2つの演
算ユニットを同時に動作させる方法がとられている。特
開昭63-49843号では、算術演算と論理演算との2つの命
令をそれぞれ第1の解読器と第2の解読器とによって解
読し、算術演算ユニットと論理演算ユニットとを同時に
動作させることによって性能を向上している。
また他の例では、一度解読した命令を解読済み命令バッ
ファに一定のサイズだけ保持しておき、ループによって
解読済み命令バッファ内の命令が繰り返して使用できる
場合に限り解読済み命令バッファから複数の実行ユニッ
トに対して解読命令を与えるという方法がある。(″TR
ON仕様に基づく32ビットマイクロプロセッサTX3のCPUア
ーキテクチャの検討″電子情報通信学会技術研究報告コ
ンピュータシステム、Vol.8,No.422.1988) 発明が解決しようとする課題 可変語長命令体系においては、解読中の命令に後続する
命令の位置が現在の命令の解読結果によって決定される
ため、複数の命令を同時に解読するためには解読中の命
令に後続する命令語を同時に解読する第2の解読器を複
数設けたり、あるいは第2の命令解読器に入力する命令
語を選択するセレクタを設け、第1の命令解読器の解読
結果によってセレクタを制御し、第2の命令解読器の入
力を決定するといったことを行っていた。そのため、解
読器のハードウェアが増加したり、解読に要する時間が
増加したりするという問題点があった。また、可変語長
命令体系では複数の命令の同時解読が困難であるため1
命令毎に解読した解読結果を保持しておき、実行ユニッ
トに解読結果を供給する際に2命令分を同時に与えるこ
とによって、2命令の同時実行を行っていた。そのた
め、大容量の解読済み命令バッファが必要であった。さ
らに、解読済み命令バッファに解読済み命令が蓄積され
るまでの間は、1命令解読のスループットに制限されて
しまうという問題点があった。
本発明の第1の目的は、可変語長命令体系において解読
ハードウェアを著しく増加させること無く複数命令の同
時解読を行うデータ処理装置を提供することである。ま
た、本発明の第2の目的は、ロード命令及びストア命令
と、それらに後続するレジスタ間演算命令を同時に解読
して実行し、ロード命令及びストア命令の実行を高速に
行うデータ処理装置を提供することである。
課題を解決するための手段 上記目的を達成するために、本発明のデータ処理装置に
おいては、可変語長命令を解読する第1の命令解読器
と、前記第1の命令解読器が解読中の命令に後続する命
令語を解読して並列解読する命令の存在を先見的に検出
する並列解読可能性検出手段と、前記並列解読命令検出
手段が検出した命令を解読する第2の命令解読器と、前
記第1の命令解読器が作る命令境界を表わす出力により
並列解読可能性検出手段が検出した命令を選択的に有効
とし、前記第2の命令解読器に供給すると同時に前記命
令の後続命令を前記第1の命令解読器に供給する命令供
給手段と、メモリの読み出し手段と、演算レジスタに格
納されたデータをメモリに転送する書き込み手段と、複
数のレジスタ間で演算を行う演算手段と、前記第1の命
令解読器の解読結果及び前記第2の命令解読器の解読結
果とにより前記演算手段の動作を遅延させる演算処理遅
延手段とを備える。
作用 本発明は、上記手段により可変語長命令体系において解
読ハードウェアを著しく増加させること無く、複数の命
令を並列に解読し、ロード命令及びストア命令の実行時
間を見かけ上ゼロにする。
実施例 第1図は本発明の一実施例のデータ処理装置の構成を示
すブロック図である。図において、10は実行に先立って
あらかじめ命令をフェッチする命令フェッチ制御部、11
は命令フェッチ制御部10によって用意した命令を蓄える
命令バッファであり、解読に必要な命令を解読器に供給
する。12は、可変語長命令を解読する第1の命令解読器
であり、複数命令並列解読の対象となる命令を除くすべ
ての命令を解読する。13は、複数命令並列解読の対象と
なる命令だけを解読する第2の命令解読器、14及び16は
第1の命令解読器12が解読中の命令に後続する命令列の
中に、並列解読可能な命令が存在することを検出する並
列解読可能性検出手段である。101及び103はその検出結
果である。17は、第1の命令解読器12が解読する命令語
及びそれに後続する命令語を保持する主命令レジスタ、
18は第2の命令解読器13が解読する命令を保持する副命
令レジスタである。19は主命令レジスタ17及び副命令レ
ジスタ18をシフト制御する命令供給手段制御部であり、
並列解読可能性の検出結果101及び103のいずれか一つ
を、第1の命令解読器12が解読した命令の命令境界を示
す出力100によって有効とし、有効な並列解読可能を示
す結果を出力した並列解読可能性検出手段に入力されて
いる命令を副命令レジスタ18に格納する。20は、命令解
読器12及び13と、並列解読可能性検出手段14及び16に命
令を供給する命令供給手段である。21は、マイクロ命令
レジスタであり、命令解読器12及び13が解読したマイク
ロ命令を一時保持するバッファである。22は、メモリに
格納されたデータのアドレスを計算し、バス転送制御部
27を介して外部メモリからデータを読み出すデータ読出
手段である。23は、レジスタに格納された複数のデータ
間の演算を行いまた、データ読出手段22が読み出したメ
モリデータをレジスタに格納する演算手段である。24
は、前記演算手段23が演算したデータをメモリに格納す
るデータ書込手段である。25は分岐アドレスの計算及び
分岐を制御する分岐制御手段である。26は、前記データ
読出手段22がメモリから読み出したデータを、前記演算
手段23が使用する場合に、読出動作が完了するまで演算
動作を待たせる演算処理遅延手段である。27は、プロセ
ッサ外部とのデータ転送を制御するバス転送制御部であ
る。
第2図は、本発明のデータ処理装置により2つの可変語
長命令を並列解読する場合の動作を説明するための図で
ある。第3図はロード命令とそれに後続するレジスタ間
演算命令(A1)を並列解読する場合のパイプライン動作
タイミング図、第4図はストア命令とそれに後続するレ
ジスタ間演算命令(A1)を並列解読する場合のパイプラ
イン動作タイミング図である。以下、第1図と第2図に
より本発明のデータ処理装置における2命令並列解読の
動作を説明し、次に、第3図及び第4図によりロード命
令とレジスタ間演算命令及びストア命令とレジスタ間演
算命令との実行タイミングを説明する。
第2図(1)は実行する命令列の順序を示す図で、A0
令から順に実行する。命令列A0、LD、A1、A2、のうちA0
命令は16ビットのディスプレースメントを持ち、ロード
命令(LD)とA1命令とが2命令並列に解読されるものと
する。第2図(2)は第1の命令解読器がA0命令を解読
中の主命令レジスタ17及び副命令レジスタ18の状態を示
す図である。主命令レジスタ17を構成する4つの16ビッ
トの命令レジスタIRM0及びIRM3には命令列の順に、IRM0
にA0命令、IRM1にA0命令のディスプレースメント、IRM2
にLD命令、IRM3にA1命令が格納される。このとき、第1
の命令解読器12はIRM0のA0命令を解読し、A0命令の命令
境界がIRM1とIRM2の間であることを示す信号100を出力
する。これと並行して並列解読可能性検出手段14〜16は
IRM1〜IRM3のそれぞれディスプレースメント、LD命令、
A1命令のうち、2命令並列解読の可能性が存在するか否
かを検査して信号線101〜103に可能性結果を出力する。
この際、並列解読可能性検出手段は命令の境界を認識し
ていないので、IRM1のディスプレースメント値が偶然的
に2命令並列解読の対象となる命令コードと一致する場
合には、誤った並列解読可能性結果を信号線101に出力
する。命令供給手段制御部19は命令の境界を示す信号10
0によって信号線101及び103から誤った検出結果を排除
し、検出結果102が真の検出結果であると判断する。そ
れに基づいて主命令レジスタ17及び副命令レジスタ18の
命令をシフト制御し、IRM2のLD命令を副命令レジスタ18
に、後続するIRM3のA1命令を命令レジスタIRM0に格納す
る。その状態を第2図(3)に示す。同図(3)の状態
で第1の命令解読器12がA1命令を解読し、第2の命令解
読器13がLD命令を解読することにより2命令の並列解読
を行う。なお、並列解読可能性検出手段は、並列解読で
きる命令の存在を検査するだけであり、数ゲートのハー
ドウェア(デコーダ)によって実現できる。また、第2
の命令解読器13は並列解読の対象となる命令だけを解読
し、第1の命令解読器12は並列解読の対象となる命令以
外の命令を解読すればよいので、解読ハードウェアは増
加しない。
次に、第3図及び第4図により、ロード命令とレジスタ
間演算命令及びストア命令とレジスタ間演算命令とを並
列解読し、実行する場合のパイプライン動作タイミング
について説明する。
第3図はロード命令とレジスタ間演算命令とを並列に解
読し実行する場合のパイプライン動作タイミングを示し
ている。レジスタ間演算命令のパイプライン処理は、命
令フェッチ、命令解読、レジスタ読出、演算、レジスタ
書込の5段のステージから構成されている。ロード命令
のパイプライン処理は命令フェッチ、命令解読、レジス
タ読出、アドレス計算、メモリ読出、レジスタ書込の6
段のステージから構成されている。タイミング2でA0
令が解読された後、タイミング3ではLD命令とA1命令が
並列に解読され、タイミング4でLD命令のメモリアドレ
ス計算に必要なレジスタとA1命令のレジスタ演算に必要
なソースレジスタとディスティネーションレジスタの内
容をそれぞれ読み出す。データ読み出し手段22はタイミ
ング5でロードするアドレスを計算し、タイミング6で
バス転送制御部27を介してメモリの読み出しを行う。そ
して、読み出したデータをタイミング7でレジスタに書
き込む。一方演算手段23はタイミング5でレジスタ間演
算を行い、タイミング6で演算結果をレジスタに書き込
む。このように並列解読されたロード命令とその命令の
直後のレジスタ間演算命令は、それぞれデータ読み出し
手段22と演算手段23により並列に処理される。
第4図はストア命令とレジスタ間演算命令とを並列に解
読し実行する場合のパイプライン動作タイミングを示し
ている。ストア命令(ST命令)のパイプライン処理は命
令フェッチ、命令解読、レジスタ読出、アドレス計算、
メモリ書込の5段のステージから構成されている。タイ
ミング2でB0命令が解読された後、タイミング3ではST
命令とB1命令が並列に解読され、タイミング4でST命令
のメモリアドレス計算に必要なレジスタ及びストアする
ソースレジスタとB1命令のレジスタ演算に必要なソース
レジスタ及びディスティネーションレジスタの内容をそ
れぞれ読み出す。データ書込手段24はタイミング5でス
トアするデスティネーションのアドレスを計算し、タイ
ミング6でバス転送制御部27を介してメモリへの書き込
みを行う。一方演算手段23はタイミング5でレジスタ間
演算を行い、タイミング6で演算結果をレジスタに書き
込む。このように並列解読されたストア命令とその命令
の直後のレジスタ間演算命令は、それぞれデータ書き込
み手段24と演算手段23により並列に処理される。
第3図及び第4図における動作は、レジスタ資源の干渉
が発生していないが、たとえばLD命令によってメモリか
ら読み出したデータをA1命令が使用する場合にはレジス
タ干渉が発生し、並列解読したA1命令の実行をメモリの
データが読み出されるまで遅延させる必要がある。第5
図は演算処理遅延手段26の構成を示した図である。並列
解読可能性検出手段の動作と並行して命令レジスタIRM1
〜IRM3の命令コードのレジスタフィールドをチェック
し、ロード命令のデスティネーションレジスタが後続す
る命令のソースに指定されているか否かを命令供給手段
制御部に通知する。通知を受けた命令供給手段制御部19
は、第1の命令解読器12が出力する命令の境界信号100
に基づいて並列解読可能性結果と同様に真の通知を選択
し、ロード命令の実行が終了するまで次の命令供給を停
止する。第6図にこのときのパイプライン動作タイミン
グを示す。タイミング6でLD命令の命令読み出しが完了
するまで、並列解読したA1命令のレジスタ読み出し動作
が待たされている。
以上説明した本発明のデータ処理装置の例は2命令の並
列解読であるが、副命令レジスタを複数設けることによ
り、3命令以上の並列解読を行うことが出来る。第7図
は4命令の並列解読を行う場合の副命令レジスタの構成
を示す。この場合においても複数の第2の命令解読器は
並列解読する命令だけを解読するだけでよく、解読のハ
ードウェアは著しく増加しない。
本発明は以上説明したように、可変語長命令体系におい
て解読ハードウェアを著しく増加させることなく複数命
令の並列解読を行い、また、ロード命令及びストア命令
を高速に実行するデータ処理装置を提供することを目的
としている。そのために、可変語長命令体系の命令を解
読する第1の命令解読器と、可変語長命令体系のうち複
数命令の並列解読が可能なロード命令及びストア命令を
解読する第2の命令解読器と、第1の命令解読器が解読
中に後続する命令列の中に第2の命令解読器によって解
読可能な命令の存在を先見的に検出する並列解読可能性
検出手段と、前記第1の命令解読器が出力する命令境界
を表わす信号により並列解読可能性検出手段が検出した
命令を選択的に有効とし、前記第2の命令解読器に供給
すると同時に前記命令の後続命令を前記第1の命令解読
器に供給する命令供給手段と、メモリの読み出し手段
と、演算レジスタに格納されたデータをメモリに転送す
る書き込み手段と、複数のレジスタ間で演算を行う演算
手段と、前記第1の命令解読器の解読結果及び前記第2
の命令解読器の解読結果とにより前記演算手段の動作を
遅延させる演算処理遅延手段とを備えることにより、解
読ハードウェアを著しく増加させることなくロード命令
とレジスタ間演算命令あるいはストア命令とレジスタ間
演算命令とを並列に解読して実行することを可能とし、
ロード命令及びストア命令の実行時間を見かけ上ゼロに
する。
発明の効果 以上述べたよう本発明によれば、並列解読可能性検出手
段を設けて、先見的に複数の並列解読できる命令の存在
を検出することにより、解読ハードウェアの著しい増加
を抑えて可変語長命令における複数命令の並列解読を可
能にし、処理の高速化が図れる。さらに、データ読み出
し手段及びデータ書き込み手段を設けることにより、ロ
ード命令とそれに後続するレジスタ間演算命令あるいは
ストア命令とそれに後続するレジスタ間演算命令とを並
列に解読して実行し、ロード命令及びストア命令の処理
の高速化が可能である。
【図面の簡単な説明】
第1図は本発明の一実施例におけるデータ処理装置の構
成図、第2図は本発明のデータ処理装置により可変語長
命令を2命令並列解読する場合の動作説明図、第3図は
ロード命令とそれに後続するレジスタ間演算命令とを並
列解読し実行する場合のパイプライン動作タイミング
図、第4図はストア命令とそれに後続するレジスタ間演
算命令とを並列解読し実行する場合のパイプライン動作
図、第5図は演算処理遅延制御部の構成図、第6図はレ
ジスタ干渉が発生した場合のロード命令とそれに後続す
るレジスタ間演算命令とのパイプライン動作図、第7図
は第2の命令解読器の第2の構成例を示した図である。 10……命令フェッチ制御部、11……命令バッファ、12…
…第1の命令解読器、13……第2の命令解読器、14、1
5、16……並列解読可能性検出手段、20……命令供給手
段、22……データ読み出し手段、23……演算手段、24…
…データ書き込み手段、26……演算処理遅延手段。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】命令の解読に先だってあらかじめフェッチ
    した命令を格納する命令バッファと、前記命令バッファ
    に接続され、一定量の命令語を前記命令バッファから読
    みだして格納する第1の命令レジスタと、前記第1の命
    令レジスタに接続され、命令語長が長くなるかどうかの
    情報を有する基本命令語長の集まりから構成される可変
    語長命令体系の命令を解読して命令の実行制御信号を生
    成する第1の命令解読器と、前記第1の命令レジスタに
    格納されている命令であってかつ、前記第1の命令解読
    器が解読する命令以降の命令の一部を格納する第2の命
    令レジスタと、前記第2の命令レジスタに接続され、前
    記第2の命令レジスタに格納された命令を解読して前記
    第1の命令解読器とは異なる実行制御信号を生成する第
    2の命令解読器と、前記第1の命令レジスタに格納され
    ている命令であってかつ、前記第1の命令解読器が解読
    する命令以降の命令の中から、前記第1の解読器の解読
    と同じタイミングで、前記第2の命令解読器によって解
    読可能な命令の存在を検出する並列解読可能性検出手段
    と、前記並列解読可能性検出手段の検出結果を前記第1
    の命令解読器の命令境界を表す出力によって有効とし、
    前記第1の命令レジスタに格納されている命令の中から
    前記第2の命令解読器によって解読可能な命令を前記第
    1の解読器の解読の次のタイミングで、前記第2の命令
    レジスタに格納すると同時に、前記第2の命令レジスタ
    に格納する前記命令以降の命令をシフトして前記第1の
    命令レジスタに再度格納するように制御する命令供給手
    段と、メモリの読み出し手段と、演算レジスタに格納さ
    れたデータをメモリに転送する書き込み手段と、複数の
    レジスタ間で演算を行う演算手段と、前記第1の命令解
    読器の解読結果及び前記第2の命令解読器の解読結果と
    により前記演算手段の動作を遅延させる演算処理遅延手
    段とを備え、メモリデータの読み出し命令またはメモリ
    へのデータ書き込み命令と、その命令に後読するレジス
    タ間演算命令とを並列に解読し、処理することを特徴と
    するデータ処理装置。
JP1028184A 1988-08-09 1989-02-07 データ処理装置 Expired - Fee Related JPH0769800B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1028184A JPH0769800B2 (ja) 1989-02-07 1989-02-07 データ処理装置
DE68926701T DE68926701T2 (de) 1988-08-09 1989-08-04 Datenverarbeitungsgerät zur parallelen Dekodierung und parallelen Ausführung von Befehlen mit variabler Wortlänge
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
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
JP1028184A JPH0769800B2 (ja) 1989-02-07 1989-02-07 データ処理装置

Publications (2)

Publication Number Publication Date
JPH02206836A JPH02206836A (ja) 1990-08-16
JPH0769800B2 true JPH0769800B2 (ja) 1995-07-31

Family

ID=12241619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1028184A Expired - Fee Related JPH0769800B2 (ja) 1988-08-09 1989-02-07 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0769800B2 (ja)

Families Citing this family (1)

* 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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1233270A (en) * 1985-03-18 1988-02-23 Vojin G. Oklobdzija Register selection mechanism and organization of an instruction prefetch buffer
JPS6265133A (ja) * 1985-09-17 1987-03-24 Nec Corp 命令先取り装置

Also Published As

Publication number Publication date
JPH02206836A (ja) 1990-08-16

Similar Documents

Publication Publication Date Title
EP0423906B1 (en) Method of and apparatus for nullifying an instruction
US5293500A (en) Parallel processing method and apparatus
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US4928226A (en) Data processor for parallelly executing conflicting instructions
JPS61109147A (ja) 命令フェッチ及び実行制御方法
JPH0769818B2 (ja) デ−タ処理装置
JPH04367936A (ja) スーパースカラープロセッサ
US5226166A (en) Parallel operation processor with second command unit
KR930001055B1 (ko) 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
US3553655A (en) Short forward conditional skip hardware
JPH0743648B2 (ja) 情報処理装置
JPH0769800B2 (ja) データ処理装置
JPH06168263A (ja) ベクトル処理装置
JP2553728B2 (ja) 演算装置
JPH0774992B2 (ja) データ処理装置
JP2591325B2 (ja) 分岐制御装置
JPH0248733A (ja) 情報処理装置
JPH0991139A (ja) 情報処理装置
JPH06314196A (ja) 情報処理方法および装置
JP3668643B2 (ja) 情報処理装置
JP2545594B2 (ja) オペランドデータ先取り方式
JP2806690B2 (ja) マイクロプロセッサ
JPH01271842A (ja) 情報処理装置
JPH01296345A (ja) 情報処理装置

Legal Events

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