JPH04239918A - 中央処理装置 - Google Patents

中央処理装置

Info

Publication number
JPH04239918A
JPH04239918A JP669591A JP669591A JPH04239918A JP H04239918 A JPH04239918 A JP H04239918A JP 669591 A JP669591 A JP 669591A JP 669591 A JP669591 A JP 669591A JP H04239918 A JPH04239918 A JP H04239918A
Authority
JP
Japan
Prior art keywords
instruction
stage
branch
address calculation
address
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.)
Pending
Application number
JP669591A
Other languages
English (en)
Inventor
Kazuhide Hosaka
保坂 和秀
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP669591A priority Critical patent/JPH04239918A/ja
Publication of JPH04239918A publication Critical patent/JPH04239918A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は中央処理装置に関し、特
にパイプラインの処理方式に対して分岐命令処理の高速
化をはかった中央処理装置に関する。
【0002】
【従来の技術】従来の分岐命令の高速化には、例えばC
ISCでは分岐予測方式、RISCでは分岐予測方式や
ディレイド・ブランチ方式等が代表的なものとしてあげ
られる。
【0003】
【発明が解決しようとする課題】分岐予測方式は、命令
フェッチの段階で分岐先の命令をほとんど遅れなく命令
デコードステージに供給する方式で、性能的には非常に
優れたものである。しかし、キャッシュと同様に、分岐
命令のアドレスを格納するアソシアティブメモリと分岐
先アドレス等を格納するデータメモリとが必要で、ハー
ドウェアの大幅な増加となる。また、分岐予測ヒットし
なかった場合の後処理にかなりの時間を要する。更にデ
ィレイド・ブランチ方式はコンパイラに大きな負担を強
いるという課題を持っている。
【0004】
【課題を解決するための手段】本発明の中央処理装置は
、メモリから転送された命令列を格納する命令バッファ
と、現在デコード中の命令の番地を示すプログラムカウ
ンタとを有し、前記命令バッファから取り出した命令の
デコードを行う命令デコードステージと、多入力加算器
を有し前記命令デコードステージの指示によりオペラン
ドのアドレス計算を実行するアドレス計算ステージとを
含んで成るパイプライン方式の中央処理装置において、
デコードしている命令が分岐命令か否かに拘らず、デコ
ードされている命令がPC相対アドレッシングの分岐命
令であればそのディスプレースメント部が格納されてい
るべき前記命令バッファ内の場所から、命令列を命令デ
コード処理と並行して常時取り出して前記アドレス計算
ステージに転送する第1の手段と、現在デコード中の命
令がアドレス計算を必要とするか否かの情報を生成し、
さらに既情報を前記アドレス計算ステージに転送する第
2の手段とを有する命令デコードステージと、前記第2
の手段によりアドレス計算の必要のない命令であること
を通知されると、前記加算器に前記命令デコードステー
ジのプログラムカウンタと前記第1の手段により転送さ
れた既命令列を加算させる第3の手段とを有すると共に
、分岐命令の一つ前の命令がオペランドアドレス計算を
必要とせず、かつ、前記分岐命令のアドレッシングがP
C相対である場合は、前記分岐命令が前記命令デコード
ステージで処理されているのと同時に、並行して分岐先
アドレスを計算するアドレス計算ステージとを備えて構
成される。
【0005】
【実施例】図1に本発明の実施例を示す。点線で囲まれ
た部分Aは命令デコードステージであり、点線で囲まれ
た部分Bはアドレス計算ステージである。
【0006】命令デコードステージAには、メモリから
転送された命令列を格納する命令バッファ1と、命令バ
ッファ1から命令を取り出し整列させるアライナ部2と
、アライナ部2で整列された命令のオペコードを入力と
してアドレス計算ステージBにアドレス計算のための複
数個ある制御信号300を出力する命令デコーダ4と、
現在本ステージで処理中の命令の番地を格納しているプ
ログラムカウンタ3とがある。また、制御信号100は
、現在命令デコードステージAで処理されている命令が
アドレス計算を必要としない場合にアクティブになる制
御線で、命令デコードステージAでの処理が終了すると
同時にフリップフロップ6にセットされ、アドレス計算
ステージBに渡される。
【0007】アドレス計算ステージBには、アドレス計
算のための2入力の加算器9と、加算器9の入力を選択
するセレクタ7と、加算器9の出力を保持するアドレス
レジスタ10と、制御信号300を保持するレジスタ8
とがある。5は汎用レジスタであり、アドレス計算にお
けるベースとインデックスとをそれぞれバス400とバ
ス500とを通じてセレクタ7に供給する。
【0008】セレクタ7にはプログラムカウンタ値、ベ
ース値、インデックス値、さらにディスプレースメント
値200が供給されている。アドレス計算はそれらの値
の組合せ加算であり、その組合せを指定するのが制御信
号301である。制御信号301は、制御信号300を
命令デコードステージAでの処理が終了すると同時にレ
ジスタ8に格納したあとの信号である。セレクタ7は制
御信号301の指示に従って上記4つのデータから必要
なものを選択し、加算器9に供給する。
【0009】図2の分図(A)は分岐命令とロード命令
の命令フォーマットの例を示したものである。分岐命令
は3バイト、ロード命令は4バイト長の命令であり、両
者とも1バイトのオペコードPと2バイトのディスプレ
ースメントDispを持つ。しかし、図2の分図(B)
のロード命令の命令フォーマットの方はオペコードPと
ディスプレースメントDispの間に1バイトのアドレ
ッシング指定フィールドがあるので、両者のディスプレ
ースメントDisp位置は1バイトずれる。命令語中の
ディスプレースメントの位置が上記2通りしかないもの
とすると、アライナ部2を通貨後のディスプレースメン
トの位置は2〜4バイト目であるので、バス200は2
〜4バイト目の計3バイトをセレクタ7に転送する。
【0010】図3はセレクタ7の内部を示すブロック図
である。図中20は3バイトのレジスタであり、命令デ
コードステージAからバス200により転送されたディ
スプレースメントを格納する。30はアドレス計算ステ
ージBで処理中の命令の番地を示すプログラムカウンタ
であり、命令デコードステージAの処理完了と同時にプ
ログラムカウンタ3の内容がセットされる。
【0011】ASは4入力1出力のマルチプレクサであ
り、BSは3入力1出力のマルチプレクサである。セレ
クト信号A0はアライナ部2から転送される3バイトデ
ータの上位2バイトをレジスタ20を介さず直接に加算
器9に入力するパスであり、本発明の特徴である分岐命
令の分岐先アドレス計算を、命令デコードと並行して行
える時に選択される。セレクト信号A1はレジスタ20
の上位2バイトを加算器9の入力にするパスであり、分
岐命令の分岐先アドレス計算を命令デコードと並行して
行えず(つまり、ひとつ前の命令によるアドレス計算の
必要がある場合)、通常のタイミングで分岐先アドレス
計算を行うときに選択される。セレクト信号A2はレジ
スタ20の下位バイトを加算器9の入力にするパスであ
り、分岐命令以外の命令で、かつディスプレースメント
加算を行うときに選択される。セレクト信号A3はイン
デックス値を加算器9に入力するパスであり、インデッ
クス加算を行うときに選択される。
【0012】セレクト信号B0は命令デコードステージ
Aで処理中の命令の番地(プログラムカウンタ3の値)
を加算器9に入力するパスであり、本発明の特徴である
分岐命令の分岐先アドレス計算を命令デコードと並行し
て行える時に選択される。セレクト信号B0はアドレス
計算ステージで処理中に命令の番地(プログラムカウン
タ30の値)を加算器9に入力するパスであり、PC相
対のアドレス計算を行うときに選択される。セレクト信
号B2はベース値を加算器9に入力するパスであり、ベ
ース値を加算する必要があるときに選択される。
【0013】制御線101がアクティブである時は、セ
レクト信号A0とB0が選択されるように論理回路を組
む。そうすると、マルチプレクサASにおいては分岐命
令のディスプレースメントが選択され、マルチプレクサ
BSにおいてはプログラムカウントが選択されて、分岐
先アドレスが求められる。この分岐先アドレスは、命令
デコードステージAにおいて命令をデコードした結果、
PC相対の分岐命令であれば直ちにアドレス変換ステー
ジに転送され、そうでなければ無視される。
【0014】図4および図5に本発明の効果をタイムチ
ャートで示す。図中のD,T,P,Eはパイプラインの
各ステージを表す。Dは命令デコードステージ、Aはア
ドレス計算ステージ、Tはアドレス変換ステージ、Pは
オペランドリードステージ(または分岐先命令のフェッ
チ)、Eは演算実行ステージである。通常のパイプライ
ン処理は前のステージでの処理が終了したら次のステー
ジでの処理が開始される。例えば命令デコードステージ
Dの処理が終わるとアドレス計算ステージAの処理が開
始される。
【0015】図4は分岐命令I1の1つ前の命令I0が
オペランドアドレス計算の必要な場合であり、このとき
は通常のパイプライン処理どうり、分岐命令I1のアド
レス計算のタイミングA1は命令デコードステージでの
処理D1が終了したあとである。図5は分岐命令I1a
の1つ前の命令I0aがオペランドアドレス計算の不要
な命令の場合であり、このときは制御線100が命令I
0aの命令デコードステージで処理されているときに1
T(制御線の命令継続時間)間アクティブとなり、それ
を受けて制御線101が1T後にアクティブになる。制
御線101がアクティブになると、アドレス計算ステー
ジでは、命令I1aが命令デコードステージで処理され
るのと同じタイミングで分岐先アドレスを計算し、もし
命令I1aがPC相対の分岐命令だったならば、アドレ
ス計算ステージで計算した結果を次のステージであるア
ドレス変換ステージへ転送する。これにより結果的に分
岐先命令を図4の場合に比べて1T早くフェッチするこ
とができる。
【0016】
【発明の効果】以上説明したように本発明は、分岐命令
の一つ前の命令がオペランドアドレス計算を必要とせず
、かつ、前記分岐命令のアドレッシングがPC相対であ
る場合は、アドレス計算ステージにおける分岐先アドレ
ス計算を通常より1T早く行うことができるので、分岐
先命令のフェッチの高速化が計れる。
【0017】分岐命令はCISCまたはRISCの何れ
の場合でも命令フォーマットは単純で、しかもアドレッ
シングはほとんどPC相対である。本発明はこの特徴に
注目して、少ないハードウェア量で分岐命令の高速化を
実現するものである。分岐命令の高速化は、分岐命令を
早く取り出すことの他に、こちらの問題の方がより重大
かも知れないが、フラグハザードの早期解決がある。し
かし、フラグハザード自体の早期解決は基本的にはコン
パイラの協力が必要で、ハード側では逆に、ハザードが
解決するまでの間、分岐命令の後続命令または分岐先命
令をどこまで処理しておくかという問題になる。これか
らも分岐先命令を早く取り出すことは必要不可欠だとい
える。また、無条件分岐命令の場合は、フラグハザード
の問題は関係ないので分岐先命令を早く取り出すことが
そのまま性能向上に直結する。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図。
【図2】命令フォーマットの説明図。
【図3】セレクタの内部を示すブロック図。
【図4】本実施例の効果を示すタイムチャート。
【図5】本実施例の効果を示すタイムチャート。
【符号の説明】
1    命令バッファ 2    アライナ部 3    プログラムカウンタ 4    命令デコーダ 5    汎用レジスタ 6    フリップフロップ 7    セレクタ 8    レジスタ 9    加算器 10    アドレスレジスタ 20    レジスタ 30    プログラムカウンタ 100    制御線 101    制御線 200    バス 300    制御信号 301    制御信号 400    バス 500    バス 600    バス AS    マルチプレクサ BS    マルチプレクサ A0〜A3    セレクト信号 B0〜B2    セレクト信号

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  メモリから転送された命令列を格納す
    る命令バッファと、現在デコード中の命令の番地を示す
    プログラムカウンタとを有し、前記命令バッファから取
    り出した命令のデコードを行う命令デコードステージと
    、多入力加算器を有し前記命令デコードステージの指示
    によりオペランドのアドレス計算を実行するアドレス計
    算ステージとを含んで成るパイプライン方式の中央処理
    装置において、デコードしている命令が分岐命令か否か
    に拘らず、デコードされている命令がPC相対アドレッ
    シングの分岐命令であればそのディスプレースメント部
    が格納されているべき前記命令バッファ内の場所から、
    命令列を命令デコード処理と並行して常時取り出して前
    記アドレス計算ステージに転送する第1の手段と、現在
    デコード中の命令がアドレス計算を必要とするか否かの
    情報を生成し、さらに既情報を前記アドレス計算ステー
    ジに転送する第2の手段とを有する命令デコードステー
    ジと、前記第2の手段によりアドレス計算の必要のない
    命令であることを通知されると、前記加算器に前記命令
    デコードステージのプログラムカウンタと前記第1の手
    段により転送された既命令列を加算させる第3の手段と
    を有すると共に、分岐命令の一つ前の命令がオペランド
    アドレス計算を必要とせず、かつ、前記分岐命令のアド
    レッシングがPC相対である場合は、前記分岐命令が前
    記命令デコードステージで処理されているのと同時に、
    並行して分岐先アドレスを計算するアドレス計算ステー
    ジとを備えて成ることを特徴とする中央処理装置。
JP669591A 1991-01-24 1991-01-24 中央処理装置 Pending JPH04239918A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP669591A JPH04239918A (ja) 1991-01-24 1991-01-24 中央処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP669591A JPH04239918A (ja) 1991-01-24 1991-01-24 中央処理装置

Publications (1)

Publication Number Publication Date
JPH04239918A true JPH04239918A (ja) 1992-08-27

Family

ID=11645477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP669591A Pending JPH04239918A (ja) 1991-01-24 1991-01-24 中央処理装置

Country Status (1)

Country Link
JP (1) JPH04239918A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005311295A (ja) * 2004-03-26 2005-11-04 Semiconductor Energy Lab Co Ltd 半導体装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005311295A (ja) * 2004-03-26 2005-11-04 Semiconductor Energy Lab Co Ltd 半導体装置

Similar Documents

Publication Publication Date Title
US6647489B1 (en) Compare branch instruction pairing within a single integer pipeline
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
US6654875B1 (en) Dual microcode RAM address mode instruction execution using operation code RAM storing control words with alternate address indicator
JPH05143336A (ja) デジタル・コンピユータ及び分岐命令実行方法
JPH07182163A (ja) スーパスカラ命令デコード/発行装置
JP3543181B2 (ja) データ処理装置
US5394558A (en) Data processor having an execution unit controlled by an instruction decoder and a microprogram ROM
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
JPH01214932A (ja) データ処理装置
US6631459B1 (en) Extended instruction word folding apparatus
JP3004108B2 (ja) 情報処理装置
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP3599499B2 (ja) 中央処理装置
JPH04239918A (ja) 中央処理装置
US20050144427A1 (en) Processor including branch prediction mechanism for far jump and far call instructions
US6016544A (en) Apparatus and method for tracking changes in address size and for different size retranslate second instruction with an indicator from address size
JP3732233B2 (ja) スーパースカラマイクロプロセッサ内で可変バイト長命令をプリデコードするための方法および装置
JPH01183737A (ja) 情報処理装置
JP3504355B2 (ja) プロセッサ
US5838961A (en) Method of operation and apparatus for optimizing execution of short instruction branches
JPH0769806B2 (ja) データ処理装置
WO1984000833A1 (en) Pre-execution next address calculating mechanism
JPS6125166B2 (ja)
US5062036A (en) Instruction prefetcher