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

データ処理装置

Info

Publication number
JPH06266556A
JPH06266556A JP5054342A JP5434293A JPH06266556A JP H06266556 A JPH06266556 A JP H06266556A JP 5054342 A JP5054342 A JP 5054342A JP 5434293 A JP5434293 A JP 5434293A JP H06266556 A JPH06266556 A JP H06266556A
Authority
JP
Japan
Prior art keywords
instruction
storage means
general
branch
read
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.)
Withdrawn
Application number
JP5054342A
Other languages
English (en)
Inventor
Toshiharu Oshima
俊春 大島
Tatsuki Nakada
達己 中田
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 JP5054342A priority Critical patent/JPH06266556A/ja
Publication of JPH06266556A publication Critical patent/JPH06266556A/ja
Priority to US08/569,866 priority patent/US5634136A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

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)

Abstract

(57)【要約】 【目的】 本発明はデータ処理装置の改善に関し、専用
のコピーレジスタを持つことなく、ジャンプ命令を高速
に処理することを目的とする。 【構成】 命令バッファ手段11,命令実行制御手段1
2,分岐命令操作手段13,演算手段14及び汎用記憶
手段15を具備し、命令実行制御手段12に設けられた
レジスタ選択部12Aは命令で使用されないタイミングで
は、予め定められた特定番号の汎用記憶手段15を1つ
の読出しポートに選択読出をし、分岐命令操作手段13
に設けられた分岐命令検出部13Aは命令バッファ手段1
1から読み出された命令コードを解読して汎用記憶手段
15によって指定されたアドレスを分岐する分岐命令を
検出し、また、命令フェッチ要求部13Bは分岐命令検出
に基づいて一時記憶手段16が保持する内容を命令フェ
ッチアドレスバス19に出力し、分岐命令で指定された
汎用記憶手段15が特定番号の汎用記憶手段15に一致
する場合に、一時記憶手段16が保持する内容を有効化
することを含み構成する。

Description

【発明の詳細な説明】
【0001】〔目次〕 産業上の利用分野 従来の技術(図8) 発明が解決しようとする課題 課題を解決するための手段(図1) 作用 実施例(図2〜7) 発明の効果
【0002】
【産業上の利用分野】本発明は、データ処理装置に関す
るものであり、更に詳しく言えば、分岐命令時の処理速
度を高速にするコピー機能を備えた装置の改善に関する
ものである。近年,マイクロプロセッサ等のデータ処理
装置は性能を向上させるため、パイプライン処理方式や
複数命令の並列実行等の手法が一般に良く使用される。
【0003】これによれば、命令のパイプライン実行の
際に、該命令と次の命令実行の間に隙間があるとデータ
処理性能が低下するため、命令プリフェッチバッファを
備え、パイプラインの命令供給を途絶えさせないように
考慮している。しかし、ジャンプ命令が出現した場合に
は、その分岐先アドレスを計算して新たなアドレスから
命令フェッチをやり直す必要がある。このため、命令供
給に隙間が発生してしまう。また、ジャンプ命令の分岐
先アドレスの指定方法として、汎用レジスタを分岐アド
レスとする方法を採る場合には、汎用レジスタを読出し
たり、汎用レジスタからデータを転送する時間が必要と
なる。
【0004】このため、一時レジスタとは別に専用のコ
ピーレジスタが設けられ、特定番号の汎用レジスタによ
り指定される分岐アドレスへのジャンプ命令の高速化が
図られる。しかし、このようなコピーレジスタを持つ場
合には、ハード量の増大やコピーレジスタの内容をレジ
スタファイル内のレジスタ内容と一致させなくてはなら
ない。特に演算部の数を増加し、処理の並列度を高めた
い場合には、レジスタファイルの書込み数も多くなるこ
とから、いずれのポートからの書込みに対してもレジス
タファイル内容とコピーレジスタの内容とを一致させる
ためのハードウエアコストが増大をするという問題があ
る。
【0005】そこで、専用のコピーレジスタを持つこと
なく、ジャンプ命令を高速に処理することができる装置
が望まれている。
【0006】
【従来の技術】図8は、従来例に係るデータ処理装置の
構成図である。例えば、分岐命令時の処理速度を高速に
するコピーレジスタを備えたデータ処理装置は、図8に
おいて、命令バッファ1,命令実行制御部2,命令先取
り制御部3及び演算部(以下ALUという)4,汎用レ
ジスタ5,一時レジスタ6,GR3コピーレジスタ7,
他の演算部(以下AUともいう)8及び他のレジスタ9
から成る。
【0007】なお、GR3コピーレジスタ7は汎用レジ
スタ5の中から分岐される特定番号GR3と同一の内容
を常に保持するものであり、一時レジスタ6は汎用レジ
スタ5の読出しポートに出力されたデータを一時保持す
るものである。当該データ処理装置の機能は、命令バッ
ファ1に蓄えらた命令が命令実行制御部2に読み出され
ると、該命令コードが命令実行制御部2により解読さ
れ、該命令コードの解読結果に基づいてALU4,汎用
レジスタ5,一時レジスタ6及びGR3コピーレジスタ
7が出力制御される。例えば、ジャンプ(分岐)命令を
実行する場合に、汎用レジスタ5から読み出されたデー
タを一時レジスタ6を通して命令アドレスバスに出力
し、分岐命令フェッチを行う。但し、特定番号の汎用レ
ジスタ5で分岐アドレスが指定される場合には、GR3
コピーレジスタ7から分岐アドレスを読出し、該データ
に基づいてジャンプ命令を実行する。
【0008】また、AU8では、プログラムカウンタ相
対分岐アドレスのような他の分岐命令タイプの分岐命令
アドレスが計算され、その結果が他のレジスタ9に分岐
アドレスとして保持される。
【0009】
【発明が解決しようとする課題】ところで、従来例によ
れば、命令のパイプライン実行の際に、該命令と次の命
令実行の間に隙間があると性能が低下するため、命令
(プリフェッチ)バッファ1を備え、パイプラインの命
令供給を途絶えさせないように考慮している。しかし、
ジャンプ命令が出現した場合には、その分岐先アドレス
を計算して新たなアドレスから命令フェッチをやり直す
必要があるため、命令供給に隙間が発生してしまう。そ
こで、ジャンプ命令の分岐先アドレスの計算方法として
は、ジャンプ命令自身の命令アドレス,すなわち、当該
処理装置の持つプログラムカウンタの示すアドレスに対
して相対的に分岐アドレスを指定する方法、又は、汎用
レジスタ5の内容によって指定する方法のいずれか一方
が採用される。前者の場合は、ベースとなるレジスタが
プログラムカウンタに特定され、分岐先アドレスも固定
であるから、データ処理の高速化がし易い。
【0010】これに対して、後者の場合,すなわち、汎
用レジスタ5により指定される分岐アドレスへのジャン
プ命令の場合には、複数のレジスタ,例えば、システム
で定義される汎用レジスタ5の数からデータの選択読出
を行い、そのデータを転送する必要がある。しかも、レ
ジスタの内容を書換えることにより、分岐先アドレスが
可変するため、高速化がより困難となる。
【0011】このような汎用レジスタ5を使用するジャ
ンプ命令の高速化手法の一例では、特定の汎用レジスタ
5をジャンプ命令用に優先的に割り当て、このレジスタ
のコピーレジスタ7を汎用レジスタ5のレジスタファイ
ルとは別に持つことにより、汎用レジスタ5の読出し及
び転送時間や汎用レジスタ5のレジスタファイルの読出
しポートが使用できるまで待つといった遅延の問題から
開放される。
【0012】なお、コンパイラは、この特定番号(GR
3)の汎用レジスタ5をジャンプ命令用に優先的に割り
つけるようにすれば、その特定番号の汎用レジスタ5を
使用した場合については当該処理装置の高速化を図るこ
とが可能となる。しかし、そのようなコピーレジスタ7
を持つ場合には、ハード量の増大やコピーレジスタ7の
内容をレジスタファイル内のレジスタ内容と一致させな
くてはならない。特にALU4の数を増加し、データ処
理の並列度を高めたい場合には、レジスタファイルの書
込み数も多くなることから、いずれのポートからの書込
みに対してもレジスタファイル内容とコピーレジスタ7
の内容とを一致させるためのハードウエアコストが増大
をするという問題がある。
【0013】本発明は、かかる従来例の問題点に鑑み創
作されたものであり、専用のコピーレジスタを持つこと
なく、ジャンプ命令を高速に処理することが可能となる
データ処理装置の提供を目的とする。
【0014】
【課題を解決するための手段】図1は、本発明に係るデ
ータ処理装置の原理図を示している。本発明のデータ処
理装置は図1に示すように、命令を蓄える命令バッファ
手段11と、前記命令バッファ手段11から読み出され
た命令コードを解読し、該デコード結果に基づいて命令
の実行を制御する命令実行制御手段12と、前記命令実
行制御手段12によって制御される演算手段14及び汎
用記憶手段15と、前記汎用記憶手段15の読出しポー
トの1つに読み出されたデータを受取り保持する一時記
憶手段16と、前記汎用記憶手段15により分岐先アド
レスが指定される分岐命令操作手段13とを具備し、前
記命令実行制御手段12にレジスタ選択部12Aが設けら
れ、前記レジスタ選択部12Aは命令で使用されないタイ
ミングでは、予め定められた特定番号の汎用記憶手段1
5の内容を読出しポートの1つに選択読出をして一時記
憶手段16に保持し、前記分岐命令操作手段13に分岐
命令検出部13A及び命令フェッチ要求部13Bが設けら
れ、前記分岐命令検出部13Aは命令バッファ手段11か
ら読み出された命令コードを解読して汎用記憶手段15
によって指定されたアドレスへ分岐する分岐命令を検出
し、前記命令フェッチ要求部13Bは分岐命令検出に基づ
いて前記一時記憶手段16が保持する内容を命令フェッ
チアドレスバス19に出力し、前記分岐命令で指定され
た汎用記憶手段15が前記特定番号の汎用記憶手段15
に一致する場合に、前記一時記憶手段16が保持する内
容を有効化することを特徴とする。
【0015】また、本発明のデータ処理装置において、
前記レジスタ選択部12Aにフラグレジスタ22Aが設けら
れ、前記フラグレジスタ22Aは一時記憶手段16が特定
番号の汎用記憶手段15と同一内容を保持しているか否
かを識別することを特徴とする。さらに、本発明のデー
タ処理装置において、前記分岐命令操作手段13は、実
行中の命令によって汎用記憶手段15の読出しポートの
特定の1つが使用されない時に、前記読出しポートに特
定番号の汎用記憶手段15を選択読み出すように指示
し、前記選択読み出されたデータを一時記憶手段16に
取り込むように指示すると同時にフラグレジスタ22Aを
セットしたり、前記読出しポートにいくつかの命令の実
行に応じて汎用記憶手段15のいずれかを選択読出して
該一時記憶手段16に取り込むように指示すると同時に
フラグレジスタ22Aをリセットし、前記命令の実行に応
じ、該命令で指定された汎用記憶手段15に書込みを予
約し、同期あるいは非同期の処理の結果予約された汎用
記憶手段15に書込みが実行されるまで、予約状況を保
持し、前記命令バッファ手段11から読み出された命令
コードを解読し、特定番号の汎用記憶手段15で分岐ア
ドレスを指定する分岐命令を検出した場合に、前記フラ
グレジスタ22Aがセットされた状態であり、かつ、その
分岐命令以前の命令によって、該特定番号の汎用記憶手
段15の書込みが予定されていないならば、該一時記憶
手段16に保持された内容をアドレスとして命令フェッ
チを行うように命令フェッチアドレスを切り換えること
を特徴とする。
【0016】また、本発明のデータ処理装置において、
前記命令バッファ手段11から読み出された命令コード
を解読し、汎用記憶手段15で分岐アドレスを指定する
分岐命令を検出した場合に、該一時記憶手段16に保持
された内容をアドレスとして命令フェッチを開始し、前
記命令が特定番号の汎用記憶手段15以外を指定した場
合,前記フラグレジスタ22Aがリセットされている場合
又は前記汎用記憶手段15への書込みが分岐命令以前の
命令操作によって予定されている場合のいずれか1つ以
上の要因によって、前記命令フェッチを取り消すことを
特徴とする。
【0017】さらに、本発明のデータ処理装置におい
て、前記分岐命令検出部13Aにプリデコード回路23A及
びジャンプ制御部23Bが設けられ、前記プリデコード回
路23Aは特定の分岐命令の検出によって、前記一時記憶
手段16の保持内容をアドレスとする命令フェッチを開
始し、前記ジャンプ制御部23Bは、前記命令実行制御部
12のデコード結果による前記一時記憶手段16の内容
からの命令フェッチが誤りであると判断された場合に、
前記命令フェッチを取り消すことを特徴とし、上記目的
を達成する。
【0018】
【作用】本発明のデータ処理装置によれば、図1に示す
ように命令バッファ手段11,命令実行制御手段12,
分岐命令操作手段13,演算手段14,汎用記憶手段1
5及び一時記憶手段16が具備され、命令実行制御手段
12にレジスタ選択部12Aが設けられ、分岐命令操作手
段13に分岐命令検出部13A及び命令フェッチ要求部13
Bが設けられる。
【0019】例えば、命令バッファ手段11から読み出
された命令コードが命令実行制御手段12により解読さ
れると、該デコード結果に基づいて命令実行制御手段1
2によって命令が実行制御され、その命令で指定された
演算が演算手段14により行われ、その結果データが汎
用記憶手段15に保持される。また、汎用記憶手段15
の1つの読出しポートに読み出されたデータが一時記憶
手段16に受取り保持され、汎用記憶手段15により指
定された分岐アドレスへの分岐命令操作が分岐命令操作
手段13により実行制御される。
【0020】この際に、命令実行制御手段12に設けら
れたレジスタ選択部12Aにより、命令で使用されないタ
イミングにおいて、予め定められた特定番号の汎用記憶
手段15が1つの読出しポートに選択読出され、命令バ
ッファ手段11から読み出された命令コードの解読結果
に基づき、汎用記憶手段15によって指定されたアドレ
スが該分岐命令操作手段13に設けられた分岐命令検出
部13Aにより検出され、その分岐操作が実行される。
【0021】また、命令フェッチ要求部13Bでは、分岐
命令検出に基づいて一時記憶手段16で保持された内容
が命令フェッチアドレスバス19に出力される。ここ
で、分岐命令で指定された汎用記憶手段15の番号が予
め定められた特定番号に一致する場合には、一時記憶手
段16に予め転送され、その保持している内容が有効化
される。
【0022】このため、汎用記憶手段15の1つの読出
しポートを命令で明示的に使用しない場合には、特定番
号の汎用記憶手段15が読み出されるようにすることに
より、読み出された内容を一時記憶手段16に保持し、
ジャンプ命令を検出した時であって、ジャンプ先アドレ
スが特定番号の汎用記憶手段15で指定される命令であ
る場合には、一時記憶手段16の内容を使用してジャン
プ操作を行うことにより、専用のコピーレジスタを持つ
ことなく、ジャンプ命令を高速に処理することが可能と
なる。
【0023】特に、この一時記憶手段16が特定番号以
外の汎用レジスタ指定によるジャンプ命令で汎用記憶手
段15から読出されたデータを取り組むレジスタと兼用
すれば、同一時記憶手段16が特定番号以外の汎用記憶
手段15の選択読出しによって、ヒット確率が低下する
ものの、ジャンプ操作用のアドレス一時記憶手段16を
有効に利用することができ、ハードウエアの増大を極力
抑えることが可能となる。
【0024】なお、レジスタ選択部12Aに設けられたフ
ラグレジスタ22Aにより、一時記憶手段16が特定番号
の汎用記憶手段15の内容を保持しているか否かが識別
される。例えば、レジスタ選択部12Aでは、実行中の命
令によって汎用記憶手段15の読出しポートの特定の1
つが使用されない時に、読出しポートに特定番号の汎用
記憶手段15を選択読出すようにし、この時、読出した
データを一時記憶手段16に取り込むように指示すると
同時にフラグレジスタ22Aをセットする。一方、レジス
タ選択部12Aは、読出しポートにいくつかの命令の実行
に応じて汎用記憶手段15のいずれかを選択読出して該
一時記憶手段16にデータを取り込むように指示すると
同時にフラグレジスタ22Aをリセットする。
【0025】また、命令実行制御手段12では、命令の
実行に応じて命令で指定されたレジスタに書込みが予約
され、同期あるいは非同期の処理の結果予約された汎用
記憶手段15に書込みを実行するまで、予約状況が保持
され、命令バッファ手段11から読み出された命令コー
ドが解読され、特定番号の汎用記憶手段15により、分
岐アドレスにより指定される分岐命令が検出された場合
に、すなわち、フラグレジスタ22Aがセットされた状態
であり、かつ、その分岐命令以前の命令によって、該特
定番号の汎用記憶手段15に書込みが予定されていない
ならば、該一時記憶手段16に保持された内容がアドレ
スとして命令フェッチを行うように命令フェッチアドレ
スが切り換えられる。
【0026】さらに、分岐命令操作手段13では、命令
バッファ手段11から読み出された命令コードが解読さ
れ、汎用記憶手段15で分岐アドレスが指定されると、
その分岐命令が検出された場合には、該一時記憶手段1
6に保持された内容がアドレスとして命令フェッチが開
始される。ここで、命令が特定番号の汎用記憶手段15
以外を指定した場合,フラグレジスタ22Aがリセットさ
れている場合又は汎用記憶手段15への書込みが分岐命
令以前の命令操作によって予定されている場合のいずれ
か1つ以上の要因によって、分岐命令操作手段13によ
り、命令フェッチが取り消される。
【0027】例えば、分岐命令検出部13Aに設けられた
プリデコード回路23Aにより、特定の分岐命令が検出さ
れることにより、一時記憶手段16の保持内容がアドレ
スとして命令フェッチが開始される。また、ジャンプ制
御部23Bでは、命令実行制御部12のデコード結果によ
り、一時レジスタ内容からの命令フェッチが誤りである
と判断された場合には、命令フェッチが取り消される。
【0028】このため、一時記憶手段16による分岐先
プリフェッチが正しいかった場合には、分岐操作の命令
実行サイクルが短縮され、通常の場合の命令プリフェッ
チ指示を抑止することが可能となる。これにより、特定
番号の汎用記憶手段15を指定したジャンプ操作の高速
化を図ることが可能となり、ハードウエアの削減化を図
りつつ、データ処理装置の処理性能の向上を図ることが
可能となる。
【0029】
【実施例】次に、図を参照しながら本発明の実施例につ
いて説明をする。図2〜7は、本発明の実施例に係るデ
ータ処理装置を説明する図である。また、図2は、本発
明の実施例に係るデータ処理装置の構成図であり、図3
はその命令バッファ/命令先取り制御回路の構成図であ
る。さらに、図4はその命令形式を説明する図であり、
図5(A),(B)は、そのGR読出し選択部及びジャ
ンプ制御部の構成図である。なお、図6(A),(B)
はそのジャンプ操作時(コピー有無)の動作タイムチャ
ートであり、図7はそのジャンプ操作時(キャンセル)
の動作タイムチャートをそれぞれ示している。
【0030】例えば、演算器ALU241 ,242 の2個を
有し、2つの演算操作を並列に同時に実行可能なデータ
処理装置であって、一時レジスタ26がコピー機能を兼
用し、分岐命令時の処理速度を高速に実行するデータ処
理装置は、図2において、命令先取りバッファ21,命
令実行制御部22,命令先取り制御回路23,演算部
(以下ALUという)241 ,242 ,汎用レジスタ25,
一時レジスタ(以下COPY−TEMP−REGともい
う)26,その他の演算部(以下DPC−INC,A
U,PFPC−INCという)271 ,272 ,273 ,その
他のレジスタ(以下EPC/WPC,DPC−REG,
JA−REG,PFPC−REGという)281 〜284 ,
命令側MMU/キャッシュ部29,オペランド側MMU
/キャッシュ部30,浮動小数点演算ユニット31等か
ら成る。
【0031】なお、複数命令の並列実行方式では、スー
パースカラ方式やVLIW(VeryLong Instruction
Word )方式があるが、本発明はどちらでも構わな
い。ここでは、VLIW方式の場合について説明をす
る。すなわち、命令先取りバッファ21は命令バッファ
手段11の一実施例であり、命令を蓄えるものである。
例えば、命令先取りバッファ21は先取りした命令を蓄
えて命令実行制御部22の命令デコーダに命令コードI
Cを供給するものである。なお、命令先取りバッファ2
1は図3において詳述する。
【0032】命令実行制御部22は命令実行制御手段1
2の一実施例であり、命令先取りバッファ21から読み
出された命令コードICを解読し、該デコード結果に基
づいて命令の実行を制御するものである。例えば、命令
実行制御部22には図4(A)に示すようなレジスタ選
択部12Aの一例となるGR読出し選択部が設けられる。
なお、GR読出し選択部12Aについては、図4(A)に
おいてジャンプ制御部23Bと共に詳述する。
【0033】命令先取り制御回路23は分岐命令操作手
段13の一実施例であり、汎用レジスタ25により分岐
先アドレスが指定される分岐操作等の実行制御をするも
のである。なお、命令先取り制御回路23については、
命令先取りバッファ21と共に図3において詳述する。
また、ALU241 ,242 は演算手段14の一実施例であ
り、命令実行制御部22によって制御されるものであ
る。例えば、ALU241 ,ALU242 はオペランドアド
レスバス33及び命令実行制御部22に接続される。オ
ペランドアドレスバス33はオペランドアドレスAdd
o をオペランド側MMU/キャッシュ部30に転送す
る。
【0034】汎用レジスタ25は汎用記憶手段15の一
実施例であり、ストアオペランドバス32と、フェッチ
オペランドバス34に接続される。なお、ストアオペラ
ンドアドレスバス32はストアオペランドSOをオペラ
ンド側MMU/キャッシュ部30に転送し、フェッチオ
ペランドバス34はフェッチオペランドFOをオペラン
ド側MMU/キャッシュ部30から受け取る。
【0035】汎用レジスタ25には、読出しポートが5
ポート,書込みポートが3ポートある。1つの整数演算
操作は2つのソースオペランドを読出し、演算を行った
結果を書き込むのが一般的であり、各々の演算操作用に
読出し2ポートと書込み1ポートが割当られる。残った
読出し/書込み用の1ポートはロード/ストア操作や浮
動小数点演算部31との間のデータ送受等に使用する。
ジャンプ命令の分岐先アドレスを指示する汎用レジスタ
25の読出し等もこの最後の読出しポートを利用する。
【0036】COPY−TEMP−REG26は一時記
憶手段16の一実施例であり、汎用レジスタ25の特定
番号の読出しポートに読み出されたデータを受取り保持
するものである。すなわち、従来例と異なるは、図8に
示したようなGR3COPY−REG7が省略され、T
EMP−REGがCOPY−TEMP−REG26に置
き代わっている点である。
【0037】例えば、COPY−TEMP−REG26
は、汎用レジスタ25が指定するジャンプ命令のために
読出した内容を保持し、該ジャンプ命令が指定されたプ
リフェッチアドレスバス19にアドレスを出力する。な
お、従来例に係る一時レジスタ6とCOPY−TEMP
−REG26とは回路構成上の差異がないが、本発明の
実施例では、COPY−TEMP−REG26に出来う
る限り特定番号の汎用レジスタ25の内容をコピーする
ように制御を行い、従来例のCOPY−REGの機能に
類似した動作を併せ持つように工夫している。
【0038】また、本発明の実施例に係るデータ処理装
置では、D,E,Wの命令実行のパイプラインステージ
を持ち、それぞれ命令デコード,演算,結果の書込みを
行う。命令のプリフェッチやオペランドのロード/スト
アはこれらのパイプラインとは非同期に独立して動作す
る。このため、レジスタEPC/WPC281 ,DPC−
REG282 ,JA−REG283 ,PFPC−REG284
や演算部DPC−INC271 ,AU272 ,PFPC−I
NC273 等を具備する。
【0039】EPC/WPC281 ,DPC−REG282
はプログラムカウンタ(PC)を構成し、該プログラム
カウンタ(PC)はパイプラインステージD,E,Wに
対応して3つのレジスタが設けられる。なお、Dステー
ジ対応のPCの内容についは、DPCあるいは、JA−
REG283 から選択出力されるPCバス35上の内容で
ある。例えば、分岐操作直後ではDPC−REG282 に
代わってJA−REG283 から分岐先アドレスがPCバ
ス35上に送出される。
【0040】また、JA−REG283 は分岐先アドレス
(以下ジャンプアドレスともいう)AddJ を保持するた
めのレジスタであり、AU272 あるいはCOPY−TE
MP−REG26から選択したジャンプアドレスAddJ
を保持する。PFPC−REG284 は分岐操作が無い場
合の命令プリフェッチアドレスAddIPを保持する回路で
ある。DPC−INC271 はPCインクリメンタを構成
し、該PCインクリメンタはPCバス35上の値に命令
長,例えば、本発明の実施例では固定長命令となること
から定数を加算し、分岐操作が無い場合の次の命令アド
レスを計算する。AU272 はPC相対の分岐命令の分岐
アドレスAddJ を計算するための演算器である。PFP
C−INC273 は分岐操作が無い場合の命令プリフェッ
チアドレスAddIPを更新する回路である。
【0041】なお、命令側MMU/キャッシュ部29は
命令を命令先取りバッファ21に供給するものである。
オペランド側MMU/キャッシュ部30はオペランドの
ロード/ストア操作を実行し、フェッチオペランドFO
を供給するものである。浮動小数点演算ユニット31は
命令デコード結果に基づいて浮動小数点演算処理をする
ものである。
【0042】図3は、本発明の実施例に係るデータ処理
装置の命令バッファ/命令先取り制御回路の構成図であ
る。図3において、例えば、命令先取りバッファ21
は、命令長分のレジスタを0〜7の8エントリ持ってい
る。その内訳は、2エントリが分岐先命令を先取りする
ために割当られる。分岐先用のエントリには、エントリ
番号0,1又はエントリ番号6,7を切り換えて使用す
るようにし、分岐操作毎に、分岐先用エントリの選択を
切り換える。エントリ番号2〜5は常に連続した命令フ
ェッチ用に使用される。
【0043】また、命令先取り制御回路23は分岐命令
デコーダ&命令フェッチアドレス計算/選択制御部231
,ターゲットバッファ・フラグ232 ,リードポインタ2
33 ,ネクストリードポインタ234 ,ライトポインタ235
, 選択部236 ,有効性フラグ(0〜7)237 ,連続側
フェッチ要求部238 ,分岐先フェッチ要求部239 及び命
令フェッチ要求回路13Bから成る。
【0044】分岐命令デコーダ&命令フェッチアドレス
計算/選択制御部231 は分岐命令検出部13Aの一実施例
であり、分岐命令デコーダはプリデコード回路23Aの一
例である。分岐命令デコーダは特定の分岐命令を検出に
よって、COPY−TEMP−REG26の保持内容を
アドレスとする命令フェッチを開始したり、分岐命令を
検出して分岐先フェッチ要求を発生する。また、命令フ
ェッチアドレス計算/選択制御部はジャンプ制御部23B
の一実施例であり、分岐命令に対応するアドレス計算,
アドレス送出元の選択等の制御を行う。
【0045】例えば、命令フェッチアドレス計算/選択
制御部は現命令(Dステージ対応命令)IC,次命令N
Iともに、分岐操作のある命令の場合には、現命令IC
を優先する。次命令NIだけが分岐操作であれば、次命
令NIの分岐操作を先行して行うが、PC相対の分岐ア
ドレスの場合には、PCバス35の内容の補正が必要と
なることから、AU272 の補正計算部分を3入力加算器
の構成とする。
【0046】なお、分岐命令デコーダは特定番号以外の
汎用レジスタ25の指定によるジャンプや割り込み等の
当該デコーダで検出できない分岐操作については、命令
実行制御部22からの制御信号を受けて分岐操作でのア
ドレス計算や命令フェッチアドレス送出回路の選択など
の制御を行う。さらに、ジャンプ命令では特定番号以外
の汎用レジスタ25であったとしても、命令アドレスが
代わることから、分岐命令デコーダは、最低限のジャン
プ命令であることだけを検出して、分岐シーケンスを開
始し、命令実行制御部22の命令デコーダで正式にデコ
ードした結果に基づいて分岐シーケンスを追認するか、
それを取り消して正しいフェッチをやり直すかを判断す
るように制御しても良い。
【0047】また、ターゲットバッファ・フラグ232 は
分岐用エントリを選択するためのフラグであり、リード
ポインタ233 及びライトポインタ235 は命令先取りバッ
ファ21の命令読出し,書込みエントリを選択するもの
である。リードポインタ233は1命令の最後のDステー
ジが終了する時に、更新許可され、新たな命令を読出し
選択するようにする。また、この実施例では分岐命令の
検出を早めて分岐操作の高速化を図るため、リードポイ
ンタ233 ,ネクストリードポインタ234 が次の位置を示
して次命令読出しを行っている。
【0048】連続側フェッチ要求部238 は空きエントリ
がある場合に、命令フェッチを連続要求し、分岐先フェ
ッチ要求部239 は分岐先フェッチを要求するものであ
り、命令フェッチ要求回路13Bは命令フェッチを要求す
るものである。これにより、命令の先取りにつき、2命
令(2エントリ分)単位で行うことにより高速化を図る
ため、ライトポインタ235 は常に、偶数エントリを示
し、ライトポインタ235 で指定されるエントリとそのエ
ントリー番号+1で指定されるエントリ対が同時に書き
込まれる。また、命令先取りバッファ21の読出し,書
込みに合わせて各エントリの有効フラグが有効性フラグ
(0〜7)237 により管理され、読み出した命令IC及
び次命令コードNIの有効性の指定や命令先取りバッフ
ァ21に空きエントリ対があるか否かの判断がなされ
る。
【0049】なお、図4は、本発明の実施例に係るデー
タ処理装置(VLIW方式)の命令形式を示している。
図4において、命令は例えば、3つの操作フィールド
(1〜3)を持ち、各々のフィールドでは、並列動作可
能な操作コードを詰め込んで1つの長命令語を形式して
いる。例えば、命令基本形の操作で長いイミディエート
値をコード中に含む場合には、2以上の操作フィールド
を連結して使用することもある。また、JUMP(ジャ
ンプ)命令では、操作コードに続いてジャンプアドレス
AddJ を指定するR1フィールドを持ち、CALL(コ
ール)命令では、操作コードに続いてジャンプアドレス
AddJ を指定するR1フィールド及びリターンアドレス
AddR を格納するレジスタを指定するR3フィールドを
持つ。さらに、BRCS(ショート・ブランチ)命令で
は、操作コードに続いてブランチアドレスオフセット及
びブランチコンディションCCを持ち、BRC(ロング
・ブランチ)命令では、操作コードに続いてBRCS命
令より長いブランチアドレスオフセット及びブランチコ
ンディションCCを持つ。これにより、最大2つの整数
演算,分岐操作,浮動小数点操作やメモリからロード/
ストア操作等の並列動作が可能となる。
【0050】図5(A)は、本発明の実施例に係るデー
タ処理装置のGR読出し選択部の構成図であり、図5
(B)は、そのジャンプ制御部の構成図をそれぞれ示し
ている。図5(A)において、GR読出し選択部はレジ
スタ選択部12Aの一実施例であり、マルチプレクサ221
,四入力NOR回路222 ,フラグレジスタ22A及び三
入力OR回路223 から成る。GR読出し選択部12Aの機
能は、命令で指定されたレジスタ番号が、命令で使用さ
れないタイミングでは、予め定められた特定のレジスタ
番号の1つの読出しポートの読出し番号として選択する
ものである。
【0051】なお、マルチプレクサ221 は命令コード操
作1−R3フィールド,特定番号GR3,操作1−R1
フィールド,操作2−R3フィールド,操作2−R1フ
ィールド,操作1=STORE,操作1=JUMP,操
作2=STORE,操作2=JUMP及びセット信号S
に対応して選択し、GR読出し番号を出力するものであ
る。
【0052】四入力NOR回路222 は、命令コード操作
1=STORE,操作1=JUMP,操作2=STOR
E及び操作2=JUMPのいずれも指定されない場合
に、セット信号Sを発生し、それをマルチプレクサ221
,フラグレジスタ22A及び三入力OR回路223 に出力
する。また、フラグレジスタ22Aはフリップ・フロップ
回路から成り、操作1=JUMP及び操作2=JUMP
をリセット信号S1,S2にし、クロック信号CLK及び
セット信号Sに基づいて、GR3コピー等価信号(以下
CEGR3信号という)又はGR3コピー非等価信号
(以下CNGR3信号という)を出力するものである。
CEGR3信号は,例えば、COPY−TEMP−RE
G26が特定番号GR3の汎用レジスタ25と同一内容
を保持していることを示す信号であり、CNGR3信号
はCOPY−TEMP−REG26が特定番号GR3の
汎用レジスタ25を保持していないことを示す信号であ
る。
【0053】なお、フラグレジスタ22Aは前述の明示的
な選択がされずGR3を読出した場合にセットされ、J
UMP操作やパージTLB操作のように、COPY−T
EMP−REG26の更新が必要で、GR3コピー以外
の読出しが行われた場合に、クリアされる。これによ
り、フラグレジスタ22AによりCOPY−TEMP−R
EG26が特定番号の汎用レジスタ25を保持している
か否かを識別することができる。
【0054】また、三入力OR回路223 は操作1=JU
MP,操作2=JUMP及びセット信号Sに基づいてC
TRCLK 信号を出力するものである。CTRCLK 信号は
COPY−TEMP−REG26のクロック信号であ
る。図5(B)において、ジャンプ制御部23Bは分岐命
令デコーダ&命令フェッチアドレス計算/選択制御部23
1 の一部を構成するものであり、三入力OR回路201 ,
202 ,二入力AND回路203 ,二入力OR回路204 及び
フリップ・フロップ回路205 から成る。
【0055】三入力OR回路201 はプリ・デコード・ジ
ャンプ信号(以下PDJ信号という),アザーブランチ
信号(以下OB信号という)及びシーケンシャルプリフ
ェッチ信号(以下SP信号という)に基づいて命令フェ
ッチ・リクエスト信号(以下IFR信号という)を出力
するものである。三入力OR回路202 はCNGR3信
号,GR3書込み予約信号(以下GR3WR信号とい
う)及びGR3非選択信号(以下GR3NS信号とい
う)に基づいて中間信号S3を二入力AND回路203 に
出力するものである。二入力AND回路203 は中間信号
S3とデコード・ジャンプ信号(以下DJ信号という)
に基づいて中間信号S4を二入力OR回路204 に出力す
るものである。二入力OR回路204 は中間信号S4とア
ザーコンディション信号(以下OC信号という)に基づ
いて中間信号S5をフリップ・フロップ回路205 に出力
するものである。フリップ・フロップ回路205 はクロッ
ク信号CLKに基づいて命令フェッチキャンセル信号(以
下IFC信号という)を出力するものである。
【0056】これにより、ジャンプ制御部23Bにより、
命令実行制御部22のデコード結果によるCOPY−T
EMP−RE26の内容からの命令フェッチが誤りであ
ると判断された場合に、命令フェッチを取り消すことが
できる。次に、本発明の実施例に係るデータ処理装置の
動作を説明する。図6(A),(B)は本発明の実施例
に係るデータ処理装置のジャンプ操作時(コピー有無)
の動作タイムチャートであり、図7はそのジャンプ操作
時(キャンセル)の動作タイムチャートをそれぞれ示し
ている。
【0057】例えば、当該データ処理装置のJUMP操
作を実現する場合について説明をする。図6(A)は、
本発明の実施例と対比するためのに、コピーレジスタを
持たない場合のJUMP操作時のタイミング説明図であ
る。図6(A)において、ストア(STORE)やJU
MP操作のためのGR読出しは、パイプラインステージ
の第1のフローであるEoステージで行われる。ここ
で、読み出されたデータはコピー機能を持たないとした
TEMP−REGに保持され、JUMP操作の第2フロ
ーからの分岐先フェッチ指示により、命令フェッチアド
レスバス19に転送される。このアドレスAddIPは命令
側MMU/キャッシュ部29のアドレス部に保持され、
TLキャッシュが参照される。
【0058】この際に、TLキャッシュが共にヒットす
れば、読み出されたキャッシュの内容がそのまま命令先
取りバッファ21に転送され保持される。この場合,す
なわち、COPY−TEMP−REG26がコピー機能
を持たないとした場合には、JUMP命令の最初のDo
ステージから分岐先命令のDoステージまで4マシンサ
イクルが必要となる。
【0059】これに対して、図6(B)に示すような本
発明の実施例に係るコピー機能を兼用したCOPY−T
EMP−REG26の場合において、JUMP操作のD
oステージから分岐先命令のDoステージまで隙間なく
処理をすることができる。すなわち、図6(B)は、J
UMP操作の分岐アドレスを指示する汎用レジスタ25
の内容がCOPY−TEMP−REG26に既にコピー
されている場合を示している。ここでは、COPY−T
EMP−REG26に常時コピーを行う汎用レジスタ2
5の特定番号をGR3とする。また、GR3の読出し選
択については、図4に示すように、操作1のR1フィー
ルド,操作1のR3フィールド,操作2のR1フィール
ド,操作2のR3フィールド等があり、ストア操作,J
UMP操作,GR−FR(浮動小数点レジスタ)転送操
作,GR−制御レジスタ転送操作,TLBの部分パージ
等の特殊操作などで、各々選択され、そのような明示的
な選択がなされない場合に、コピーのためにGR3が選
択される。
【0060】また、図6(B)のタイミング図におい
て、PDはプリデコードステージであり、命令先取りバ
ッファ21から現命令と並行して読み出されている次命
令NIに対するデコードが行われる。PDステージはJ
UMP操作で必ず実行されるものではなく、例えば、命
令バッファエンプティの状態から最初にフェッチされた
命令がJUMP操作を含む場合等,PDステージを通過
せずに直接Doステージで分岐操作を検出する場合もあ
る。
【0061】分岐操作を早めに検出することは分岐によ
るパイプラインの乱れを減少するために、有意義であ
り、命令プリフェッチが充分に行われていれば、可能な
限り、PDステージでの分岐操作を行う。ここで、PD
ステージでJUMP操作が検出された場合には、無条件
にCOPY−TEMP−REG26の内容を命令フェッ
チアドレスバス19に出力する。このとき、COPY−
TEMP−REG26にGR3の内容をコピーしている
ことを示すフラグがセットされていて、この命令以前の
命令によりGR3への書込みが予約されている状態では
なく、JUMP操作の分岐アドレスがGR3で指定され
る場合には、COPY−TEMP−REG26を利用し
た分岐先プリフェッチが有効となる。その場合にJUM
P操作のパイプラインフローから指示されるGR読出
し,命令フェッチ指示は無用になって、JUMP操作の
Doステージから分岐先命令のDoステージまで隙間な
く処理をすることができることとなる。
【0062】また、図7に示したジャンプ操作時(キャ
ンセル)の動作タイムチャートにおいて、JUMP操作
がGR3以外の汎用レジスタを分岐先アドレスとして指
定している場合には、COPY−TEMP−REG26
による分岐先プリフェッチは無効となる。かかる場合に
は、図7において、改めて従来例と同様の命令フローに
より分岐先命令フェッチを行う。また、JUMP操作以
前の命令によりGR3への書込みが予約されている場合
や、COPY−TEMP−REG26がGR3のコピー
でない場合等には、COPY−TEMP−REG26に
正しい内容がセットされるまで、有効な命令フェッチが
遅らされる。
【0063】このようにして、本発明の実施例に係るデ
ータ処理装置によれば、図2〜5に示すように、命令先
取りバッファ21,命令実行制御部22,命令先取り制
御回路23,ALU241 ,242 ,汎用レジスタ25及び
COPY−TEMP−REG26が具備され、命令実行
制御部22にGR読出し選択部が設けられ、命令先取り
制御回路23に分岐命令デコーダ&命令フェッチアドレ
ス計算/選択制御部231 や命令フェッチ要求回路13Bが
設けられる。
【0064】このため、命令先取りバッファ21から読
み出された命令コードICが命令実行制御部22により
解読されると、該デコード結果に基づいて命令実行制御
部22によって命令が実行制御され、そのアドレス計算
がALU241 ,242 により行われ、その結果データが汎
用レジスタ25に保持される。ここで、汎用レジスタ2
5の特定番号の読出しポートに読み出されたデータがC
OPY−TEMP−REG26に受取り保持される。ま
た、汎用レジスタ25により指定された分岐先アドレス
が命令先取り制御回路23に実行制御される。
【0065】この際に、命令実行制御部22のGR読出
し選択部により、命令で使用されないタイミングにおい
て、予め定められた特定番号GR3の汎用レジスタ25
が1つの読出しポートに選択読出され、命令先取りバッ
ファ21から読み出された命令コードICの解読結果に
基づき、汎用レジスタ25によって指定されたアドレス
が該命令先取り制御回路23の分岐命令デコーダ&命令
フェッチアドレス計算/選択制御部231 により検出さ
れ、その分岐操作が実行される。
【0066】また、命令フェッチ要求部13Bでは、分岐
命令検出に基づいてCOPY−TEMP−REG26で
保持された内容が命令フェッチアドレスバス19に出力
される。ここで、分岐命令で指定された汎用レジスタ2
5と特定番号GR3の汎用レジスタ25とが命令フェッ
チアドレスに一致する場合には、COPY−TEMP−
REG26が保持する内容が有効化される。
【0067】このことから、汎用レジスタ25の1つの
読出しポートが命令で明示的に使用されない場合には、
特定番号GR3の汎用レジスタ25が読み出される。こ
のようにすることにより、読み出された内容をCOPY
−TEMP−REG26に保持し、ジャンプ命令を検出
した時にジャンプ先アドレスが特定番号の汎用レジスタ
25で指定される命令である場合には、COPY−TE
MP−REG26の内容を使用してジャンプ操作を行う
ことにより、専用のコピーレジスタを持つことなく、ジ
ャンプ命令を高速に処理することが可能となる。
【0068】特に、このCOPY−TEMP−REG2
6が特定番号以外の汎用レジスタ指定によるジャンプ命
令で汎用レジスタ25から読出されたデータを取り組む
レジスタと兼用すれば、同COPY−TEMP−REG
26が特定番号GR3以外の汎用レジスタ25の選択読
出しによって、ヒット確率が低下するものの、ジャンプ
操作用のアドレスCOPY−TEMP−REG26を有
効に利用することができ、ハードウエアの増大を極力抑
えることが可能となる。
【0069】なお、GR読出し選択部に設けられたフラ
グレジスタ22Aにより、COPY−TEMP−REG2
6が特定番号GR3の汎用レジスタ25の内容を保持し
ているか否かが識別される。このため、命令先取り制御
回路23では、実行中の命令によって汎用レジスタ25
の読出しポートの特定の1つが使用されない時に、読出
しポートに特定番号GR3の汎用レジスタ25を選択読
出すようにGR読出し選択部に指示すること,すなわ
ち、命令先取り制御回路23が、読出したデータをCO
PY−TEMP−REG26に取り込むようにGR読出
し選択部に指示すると同時にフラグレジスタ22Aをセッ
トし、さらに、読出しポートにいくつかの命令の実行に
応じて汎用レジスタ25のいずれかを選択読出して該C
OPY−TEMP−REG26にデータを取り込むよう
にGR読出し選択部に指示すると同時にフラグレジスタ
22Aをリセットすることにより、COPY−TEMP−
REG26の内容を常に確認することができる。
【0070】また、命令実行制御部22では、命令の実
行に応じて命令で指定されたレジスタに書込みが予約さ
れ、同期あるいは非同期の処理の結果予約された汎用レ
ジスタ25に書込みを実行するまで、予約状況が保持さ
れ、命令先取りバッファ21から読み出された命令コー
ドICが解読され、特定番号の汎用レジスタ25によ
り、分岐アドレスにより指定される分岐命令が検出され
た場合に、すなわち、フラグレジスタ22Aがセットされ
た状態であり、かつ、その分岐命令以前の命令によっ
て、該特定番号の汎用レジスタ25に書込みが予定され
ていないならば、該COPY−TEMP−REG26に
保持された内容がアドレスとして命令フェッチを行うよ
うに命令フェッチアドレスが切り換えられる。
【0071】さらに、命令先取り制御回路23では、命
令先取りバッファ21から読み出された命令コードIC
が解読され、汎用レジスタ25で分岐アドレスが指定さ
れると、その分岐命令が検出された場合には、該COP
Y−TEMP−REG26に保持された内容がアドレス
として命令フェッチが開始される。ここで、命令が特定
番号の汎用レジスタ25以外を指定した場合,フラグレ
ジスタ22Aがリセットされている場合又は汎用レジスタ
25への書込みが分岐命令以前の命令操作によって予定
されている場合のいずれか1つ以上の要因によって、命
令先取り制御回路23により、命令フェッチが取り消さ
れる。
【0072】このため、分岐命令デコーダ&命令フェッ
チアドレス計算/選択制御部231 の分岐命令デコーダに
より、特定の分岐命令が検出され、これにより、COP
Y−TEMP−REG26の保持内容がアドレスとして
命令フェッチが開始される。また、ジャンプ制御部23B
では、命令実行制御部22のデコード結果によるCOP
Y−TEMP−RE内容からの命令フェッチが誤りであ
ると判断された場合には、命令フェッチが取り消され
る。
【0073】このことから、従来例のような専用のコピ
ーレジスタを持つことなく、ハード量の増大やコピーレ
ジスタの内容をレジスタファイル内のレジスタ内容と一
致させなくてはならないという操作から開放される。特
にALU241 ,242 の数を増加し、データ処理の並列度
を高める要求があった場合であって、レジスタファイル
の書込み数が多くなるような場合でも、いずれのポート
からの書込みに対してもレジスタファイル内容とコピー
レジスタの内容とを一致させるという操作から開放さ
れ、そのハードウエアコストを極力低減することが可能
となる。
【0074】これにより、COPY−TEMP−REG
26による分岐先プリフェッチが正しかった場合には、
分岐操作の命令実行サイクルが短縮され、通常の場合の
命令プリフェッチ指示を抑止することが可能となる。ま
た、特定番号GR3の汎用レジスタ25を指定したジャ
ンプ操作の高速化を図ることが可能となり、ハードウエ
アの削減を図りつつ、データ処理装置の処理性能の向上
を図ることが可能となる。
【0075】
【発明の効果】以上説明したように、本発明のデータ処
理装置によれば命令バッファ手段,命令実行制御手段,
分岐命令操作手段,演算手段,汎用記憶手段及び一時記
憶手段が具備され、命令実行制御手段にレジスタ選択部
が設けられ、分岐命令操作手段に分岐命令検出部及び命
令フェッチ要求部が設けられる。
【0076】このため、汎用記憶手段の1つの読出しポ
ートを命令で明示的に使用しない場合には、特定番号の
汎用記憶手段が読み出されるようにすることにより、読
み出された内容を一時記憶手段に保持し、ジャンプ命令
を検出した時であって、ジャンプ先アドレスが特定番号
の汎用記憶手段で指定される命令である場合には、一時
記憶手段の内容を使用してジャンプ操作を行うことによ
り、専用のコピーレジスタを持つことなく、ジャンプ命
令を高速に処理することが可能となる。
【0077】特に、この一時記憶手段が特定番号以外の
汎用レジスタ指定によるジャンプ命令で汎用記憶手段か
ら読出されたデータを取り組むレジスタと兼用すれば、
同一時記憶手段が特定番号以外の汎用記憶手段の選択読
出しによって、ジャンプ操作用のアドレス一時記憶手段
を有効に利用することができ、ハードウエアの増大を極
力抑えることが可能となる。
【0078】なお、レジスタ選択部に設けられたフラグ
レジスタにより、一時記憶手段が特定番号の汎用記憶手
段の内容を保持しているか否かが識別される。このた
め、一時記憶手段による分岐先プリフェッチが正しかっ
た場合には、分岐操作の命令実行サイクルが短縮され、
通常の場合の命令プリフェッチ指示を抑止することが可
能となる。
【0079】これにより、特定番号の汎用記憶手段を指
定したジャンプ操作の高速化を図ることが可能となり、
ハードウエアの増大を抑えつつ、データ処理装置の高速
化に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の原理図である。
【図2】本発明の実施例に係るデータ処理装置の構成図
である。
【図3】本発明の実施例に係る命令バッファ/命令先取
り制御回路の構成図である。
【図4】本発明の実施例に係るデータ処理装置の命令形
式の説明図である。
【図5】本発明の実施例に係るGR読出し選択部及びジ
ャンプ制御部の構成図である。
【図6】本発明の実施例に係るジャンプ操作時(コピー
有無)の動作タイムチャートである。
【図7】本発明の実施例に係るジャンプ操作時(キャン
セル)の動作タイムチャートである。
【図8】従来例に係るデータ処理装置の構成図である。
【符号の説明】
11…命令バッファ手段、 12…命令実行制御手段、 12A…レジスタ選択部、 22A…フラグレジスタ部、 13…分岐命令操作手段、 13A…分岐命令検出部、 23A…プリデコード回路、 23B…ジャンプ制御部、 14…演算手段、 15…汎用記憶手段、 16…一時記憶手段、 17…他の演算部、 18…他のレジスタ、 19…命令フェッチアドレスバス。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 命令を蓄える命令バッファ手段(11)
    と、前記命令バッファ手段(11)から読み出された命
    令コードを解読し、該デコード結果に基づいて命令の実
    行を制御する命令実行制御手段(12)と、前記命令実
    行制御手段(12)によって制御される演算手段(1
    4)及び汎用記憶手段(15)と、前記汎用記憶手段
    (15)の読出しポートの1つに読み出されたデータを
    受取り保持する一時記憶手段(16)と、前記汎用記憶
    手段(15)により分岐先アドレスが指定される分岐命
    令操作手段(13)とを具備し、 前記命令実行制御手段(12)にレジスタ選択部(12
    A)が設けられ、前記レジスタ選択部(12A)は命令で
    使用されないタイミングでは、予め定められた特定番号
    の汎用記憶手段(15)の内容を読出しポートの1つに
    選択読出をして一時記憶手段(16)に保持し、 前記分岐命令操作手段(13)に分岐命令検出部(13
    A)及び命令フェッチ要求部(13B)が設けられ、前記
    分岐命令検出部(13A)は命令バッファ手段(11)か
    ら読み出された命令コードを解読して汎用記憶手段(1
    5)によって指定されたアドレスへ分岐する分岐命令を
    検出し、 前記命令フェッチ要求部(13B)は分岐命令検出に基づ
    いて前記一時記憶手段(16)が保持する内容を命令フ
    ェッチアドレスバス(19)に出力し、前記分岐命令で
    指定された汎用記憶手段(15)が前記特定番号の汎用
    記憶手段(15)に一致する場合に、前記一時記憶手段
    (16)が保持する内容を有効化することを特徴とする
    データ処理装置。
  2. 【請求項2】 前記レジスタ選択部(12A)にフラグレ
    ジスタ(22A)が設けられ、前記フラグレジスタ(22
    A)は一時記憶手段(16)が特定番号の汎用記憶手段
    (15)と同一内容を保持しているか否かを識別するこ
    とを特徴とする請求項1記載のデータ処理装置。
  3. 【請求項3】 前記分岐命令操作手段(13)は、実行
    中の命令によって汎用記憶手段(15)の読出しポート
    の特定の1つが使用されない時に、前記読出しポートに
    特定番号の汎用記憶手段(15)を選択読み出すように
    指示し、前記選択読み出されたデータを一時記憶手段
    (16)に取り込むように指示すると同時にフラグレジ
    スタ(22A)をセットしたり、前記読出しポートにいく
    つかの命令の実行に応じて汎用記憶手段(15)のいず
    れかを選択読出して該一時記憶手段(16)に取り込む
    ように指示すると同時にフラグレジスタ(22A)をリセ
    ットし、 前記命令の実行に応じ、該命令で指定された汎用記憶手
    段(15)に書込みを予約し、同期あるいは非同期の処
    理の結果予約された汎用記憶手段(15)に書込みが実
    行されるまで、予約状況を保持し、 前記命令バッファ手段(11)から読み出された命令コ
    ードを解読し、特定番号の汎用記憶手段(15)で分岐
    アドレスを指定する分岐命令を検出した場合に、前記フ
    ラグレジスタ(22A)がセットされた状態であり、か
    つ、その分岐命令以前の命令によって、該特定番号の汎
    用記憶手段(15)の書込みが予定されていないなら
    ば、該一時記憶手段(16)に保持された内容をアドレ
    スとして命令フェッチを行うように命令フェッチアドレ
    スを切り換えることを特徴とする請求項1記載のデータ
    処理装置。
  4. 【請求項4】 前記命令バッファ手段(11)から読み
    出された命令コードを解読し、汎用記憶手段(15)で
    分岐アドレスを指定する分岐命令を検出した場合に、該
    一時記憶手段(16)に保持された内容をアドレスとし
    て命令フェッチを開始し、前記命令が特定番号の汎用記
    憶手段(15)以外を指定した場合,前記フラグレジス
    タ(22A)がリセットされている場合又は前記汎用記憶
    手段(15)への書込みが分岐命令以前の命令操作によ
    って予定されている場合のいずれか1つ以上の要因によ
    って、前記命令フェッチを取り消すことを特徴とする請
    求項1記載のデータ処理装置。
  5. 【請求項5】 前記分岐命令検出部(13A)にプリデコ
    ード回路(23A)及びジャンプ制御部(23B)が設けら
    れ、前記プリデコード回路(23A)は特定の分岐命令の
    検出によって、前記一時記憶手段(16)の保持内容を
    アドレスとする命令フェッチを開始し、前記ジャンプ制
    御部(23B)は、前記命令実行制御部(12)のデコー
    ド結果による前記一時記憶手段(16)の内容からの命
    令フェッチが誤りであると判断された場合に、前記命令
    フェッチを取り消すことを特徴とする請求項1〜4記載
    のデータ処理装置。
JP5054342A 1993-03-15 1993-03-15 データ処理装置 Withdrawn JPH06266556A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5054342A JPH06266556A (ja) 1993-03-15 1993-03-15 データ処理装置
US08/569,866 US5634136A (en) 1993-03-15 1995-12-08 Data processor and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5054342A JPH06266556A (ja) 1993-03-15 1993-03-15 データ処理装置

Publications (1)

Publication Number Publication Date
JPH06266556A true JPH06266556A (ja) 1994-09-22

Family

ID=12967945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5054342A Withdrawn JPH06266556A (ja) 1993-03-15 1993-03-15 データ処理装置

Country Status (2)

Country Link
US (1) US5634136A (ja)
JP (1) JPH06266556A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009603A (ja) * 2008-08-25 2009-01-15 Renesas Technology Corp 情報処理装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3201716B2 (ja) * 1996-02-22 2001-08-27 シャープ株式会社 コンピュータ装置
US6092186A (en) * 1996-05-07 2000-07-18 Lucent Technologies Inc. Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device
US5889975A (en) * 1996-11-07 1999-03-30 Intel Corporation Method and apparatus permitting the use of a pipe stage having an unknown depth with a single microprocessor core
US6721875B1 (en) * 2000-02-22 2004-04-13 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form
US6684319B1 (en) * 2000-06-30 2004-01-27 Conexant Systems, Inc. System for efficient operation of a very long instruction word digital signal processor
SE519518C2 (sv) * 2001-06-01 2003-03-11 Kianoush Namvar Signalavkodningssystem
US7415638B2 (en) * 2004-11-22 2008-08-19 Qualcomm Incorporated Pre-decode error handling via branch correction
FR2910144A1 (fr) * 2006-12-18 2008-06-20 St Microelectronics Sa Procede et dispositif de detection errones au cours de l'execution d'un programme.
US10628163B2 (en) * 2014-04-17 2020-04-21 Texas Instruments Incorporated Processor with variable pre-fetch threshold

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
EP0365188B1 (en) * 1988-10-18 1996-09-18 Hewlett-Packard Company Central processor condition code method and apparatus
US5349671A (en) * 1989-03-23 1994-09-20 Matsushita Electric Industrial Co., Ltd. Microprocessor system generating instruction fetch addresses at high speed
JP2845646B2 (ja) * 1990-09-05 1999-01-13 株式会社東芝 並列演算処理装置
WO1992006426A1 (en) * 1990-10-09 1992-04-16 Nexgen Microsystems Method and apparatus for parallel decoding of instructions with branch prediction look-up
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009603A (ja) * 2008-08-25 2009-01-15 Renesas Technology Corp 情報処理装置

Also Published As

Publication number Publication date
US5634136A (en) 1997-05-27

Similar Documents

Publication Publication Date Title
KR100299691B1 (ko) 확장가능알아이에스씨마이크로프로세서구조
KR100559482B1 (ko) 고성능 알아이에스씨 마이크로프로세서 구조
KR100294276B1 (ko) 고속트랩및예외상태를구현한알아이에스씨마이크로프로세서구조
EP0605872B1 (en) Method and system for supporting speculative execution of instructions
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
US20060259741A1 (en) Controlling out of order execution pipelines issue tagging
JPH03174626A (ja) データ処理装置
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
JPH06266556A (ja) データ処理装置
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
EP1050805B1 (en) Transfer of guard values in a computer system
WO2020214624A1 (en) Variable latency instructions
JP2894438B2 (ja) パイプライン処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000530