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

データ処理装置

Info

Publication number
JP2002123389A
JP2002123389A JP2000314607A JP2000314607A JP2002123389A JP 2002123389 A JP2002123389 A JP 2002123389A JP 2000314607 A JP2000314607 A JP 2000314607A JP 2000314607 A JP2000314607 A JP 2000314607A JP 2002123389 A JP2002123389 A JP 2002123389A
Authority
JP
Japan
Prior art keywords
register
instruction
information
general
data processing
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
JP2000314607A
Other languages
English (en)
Inventor
Atsushi Mori
篤史 毛利
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2000314607A priority Critical patent/JP2002123389A/ja
Publication of JP2002123389A publication Critical patent/JP2002123389A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 パイプラインの各処理工程の処理時間の平均
化を図る。 【解決手段】 命令をフェッチする命令フェッチ機構
と、命令をデコードする命令デコーダと、データを記憶
する複数の汎用レジスタ(GPR)1013と、算術論
理演算等を行う演算回路を備えた命令実行機構を備え、
プログラムに記述された命令を該命令デコーダが順次デ
コードし、該命令デコーダの出力に従い該命令実行機構
では命令を実行し、汎用レジスタやメモリから該命令実
行部にデータを読み出し、該命令実行結果を汎用レジス
タやメモリに格納するパイプライン制御機構を備えるデ
ータ処理装置において、各命令処理機構間にレジスタを
備え、該汎用レジスタ(GPR)1013の各レジスタ
値がゼロであることを示すフラグ情報部(GIB)1を
備え、該フラグ情報(GIB)1を汎用レジスタ(GP
R)1013を読み出すと同時に読み出し、命令の処理
過程で使用する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数命令を並列に
処理するパイプライン制御方式で制御される処理におい
て、命令が実行時に汎用レジスタに書き込み保護をかけ
ることによりプログラム実行の性能向上を実現するデー
タ処理装置に関するものである。
【0002】
【従来の技術】近年マイクロプロセッサは、動作周波数
の向上を図るためにパイプライン処理により命令実行が
行われている。パイプライン処理とは複数の命令をオー
バラップさせて同時実行する技術である。1個の命令の
処理過程を複数の小さな処理過程(パイプライン・ステ
ージ)に分割する。各ステージが順に接続されて1本の
パイプラインを形成し、命令がパイプの一端から入って
複数のステージを進み最後にパイプのもう一方の端から
出て行く。このパイプラインの単位時間当りの処理性能
は、最も遅いステージの処理時間により決まる。そのた
め通常は各ステージの処理時間が均一になるように設計
されている。Nステージからなるパイプライン処理で
は、パイプライン処理されない場合に比較して、理想的
にはN倍の処理性能を達成することが可能である。
【0003】図3に、従来のマイクロプロセッサのブロ
ック図を示す。このマイクロプロセッサでは、4段のス
テージより構成されるパイプライン処理が実行される。
それらは命令フェッチを行うIFステージと、命令デコ
ード及びアドレス計算を行うD/Aステージと、命令実
行及びメモリアクセスを行うE/Mステージと、実行結
果を汎用レジスタに書き戻すWステージである。
【0004】次に、従来のマイクロプロセッサの基本的
なパイプライン処理について説明する。IFステージで
は、命令アドレスレジスタIA(1000)の値により
命令メモリI−MEM(1010)がアクセスされる。
命令メモリから読み出された命令コードは、IF及びD
/Aステージ間のフリップフロップ(1001)に転送
される。また、IA(1000)の値は、次命令アクセ
スを行うために、インクリメンタ(1011)により+
4されてマルチプレクサを介して命令アドレスレジスタ
IA(1000)に書き戻される。また、命令デコード
部(DEC)(1012)では、各種レジスタや演算器
等の制御を行うための制御信号を生成する。
【0005】D/Aステージでは主に、命令のデコード
と、分岐処理やデータメモリアクセスのためのアドレス
計算が行われる。命令コードに埋め込まれている即値等
も、命令デコード部(1012)で切り出される。ま
た、命令コード中のソースレジスタ指定子によりレジス
タファイル(GPR)(1013)内のレジスタの値が
読み出される。これら即値やレジスタ値は、D/Aステ
ージとE/Mステージとの間のフリップフロップ(10
03)に格納される。また、即値やレジスタ値は、アド
レス加算器(ADD)(1014)にも転送される。分
岐命令が実行された時には、このアドレス加算器の値は
マルチプレクサを介して命令アドレスレジスタIA(1
000)に分岐先アドレスとして格納される。また、ロ
ード/ストア命令が実行された時には、データメモリア
クセス用のアドレスとしてフリップフロップ(100
2)に取り込まれて次ステージに転送される。
【0006】E/Mステージでは主に、命令実行とデー
タメモリアクセスが行われる。即値とレジスタ値は、演
算部(EXE)(1016)に転送され、演算が実行さ
れる。また、フリップフロップ(1002)に取り込ま
れたアドレスによりデータメモリD−MEM(101
5)アクセスが実行される。ストア処理の場合は、汎用
レジスタより読み出したフリップフロップ(1003)
の値をデータメモリ(1015)へ格納する。演算部
(1016)の演算結果やロード命令により読み出され
たデータは、フリップフロップ(1004,1005)
にそれぞれ格納される。そして、このフリップフロップ
(1004,1005)に格納されたデータは、Wステ
ージで、マルチプレクサを介してレジスタファイル(G
PR)(1013)に書き戻される。
【0007】以下に、図3で示すプロセッサで実行され
る命令を示す。 A. MCU function instructions A-1. Load/Store instructions LDB Load one byte to a register with sign extension LDBU Load one byte to a register with zero extension LDH Load one half-word to a register with sign extension LDHH Load one half-word to a register high with sign extension LDHU Load one half-word to a register with zero extension LDW Load one word to a register LD2W Load two words to registers LD4BH Load four bytes to four half-word in two registers with sign extension LD4BHU Load four bytes to four half-word in two registers with zero extension LD2H Load two half-word to two word in two registers with sign extension STB Store one byte from a register STH Store one half-word from a register STHH Store one half-word from a register high STW Store one word from a register ST2W Store two words from registers ST4HB Store four bytes from four half-word from two registers ST2H Store two half-word from two registers MODDEC Decrement a register value by a 5-bit immediate value MODINC Increment a register value by a 5-bit immediate value
【0008】 A-2. Transfer instructions MVFSYS Move a control register to a general purpose register MVTSYS Move a general purpose register to a control register MVFACC Move a word from an accumulator MVTACC Move two general purpose registers to an accumulator
【0009】 A-3. Compare instructions CMPcc Compare cc = EQ, NE, GT, GE, LT, LE, PS(both positive), NG(both negative) CMPUcc Compare unsigned cc = GT, GE, LT, LE
【0010】 A-4. Maximum/Minimum instructions reserved A-5. Arithmetic operation instructions ABS Absolute ADD Add ADDC Add with carry ADDHppp Add half-word ppp = LLL, LLH, LHL, LHH, HLL, HLH, HHL, HHH ADDS Add register Rb with the sign of the third operand ADDS2H Add sign to two half-word ADD2H Add two pairs of half-words AVG Average with rounding towards positive infinity AVG2H Average two pairs of half-words rounding towards positive infinity JOINpp Join two half-words pp = LL, LH, HL, HH SUB Subtract SUBB Subtract with borrow SUBHppp Subtract half-word ppp = LLL, LLH, LHL, LHH, HLL, HLH, HHL, HHH SUB2H Subtract two pairs of half-words
【0011】 A-6. Logical operation instructions AND logical AND OR logical OR NOT logical NOT XOR logical exclusive OR ANDFG logical AND flags ORFG logical OR flags NOTFG logical NOT a flag XORFG logical exclusive OR flags
【0012】 A-7. Shift operation instructions SRA Shift right arithmetic SRAHp Shift right arithmetic a half-word p = L(0), H(1) SRA2H Shift right arithmetic two half-words SRC Shift right concatenated registers SRL Shift right logical SRLHp Shift right logical a half-word p = L(0), H(1) SRL2H Shift right logical two half-words ROT Rotate right ROT2H Rotate right two half-words
【0013】 A-8. Bit operation instructions BCLR Clear a bit BNOT Invert a bit BSET Set a bit BTST Test a bit
【0014】 A-9. Branch instructions BRA Branch BRATZR Branch if zero BRATNZ Branch if not zero BSR Branch to subroutine BSRTZR Branch to subroutine if zero BSRTNZ Branch to subroutine if not zero DBRA Delayed Branch DBRAI Delayed Branch immediate DBSR Delayed Branch to subroutine DBSRI Delayed Branch immediate to subroutine DJMP Delayed Jump DJMPI Delayed Jump immediate DJSR Delayed Jump to subroutine DJSRI Delayed Jump immediate to subroutine JMP Jump JMPTZR Jump if zero JMPTNZ Jump if not zero JSR Jump to subroutinee JSRTZR Jump to subroutine if zero JSRTNZ Jump to subroutine if not zero NOP No operation
【0015】 A-10. OS-related instructions TRAP Trap REIT Return from exception, interrupts, and traps
【0016】 B. DSP function instructions B-1. Arithmetic operation instructions MUL Multiply MULX Multiply with extended precision MULXS Multiply and shift to the right by one with extended precision MULX2H Multiply two pairs of half-words with extended precision MULHXpp Multiply two half-words with extended precision pp = LL, LH, HL, HH MUL2H Multiply two pairs of half-words MACa Multiply and add a = 0, 1 MACSa Multiply, shift to the right by one, and add a = 0, 1 MSUBa Multiply and subtract a = 0, 1 MSUBSa Multiply, shift to the right by one, and subtract a = 0, 1 SAT Saturate SATHH Saturate word operand into high half-word SATHL Saturate word operand into low half-word SATZ Saturate into positive number SATZ2H Saturate two half-words into positive number SAT2H Saturate two half-word operands
【0017】 B-2. Repeat instructions REPEAT Repeat a block of instructions REPEAT Repeat a block of instructions with immediate
【0018】図3に示す従来のマイクロプロセッサで
は、前述したように4段のパイプライン処理で命令を実
行する。レジスタ間演算命令では、命令フェッチ(I
F)→命令デコード(D)→演算実行(E)→ライトバ
ック(WB)の順に命令実行がなされる。また、ロード
/ストア命令では、命令フェッチ(IF)→命令デコー
ド及びオペランドアドレス生成(D/A)→メモリアク
セス(M)→ライトバック(WB)の順に命令実行がな
される。また、分岐命令では、命令フェッチ(IF)→
命令デコード及び分岐先アドレス生成(D/A)の順に
命令実行がなされる。
【0019】このように、レジスタ間演算命令とロード
命令は、最短4クロックサイクルで命令実行が完了す
る。また、ストア命令はライトバック処理が不要である
ので、最短3クロックサイクルで命令実行が完了する。
また、分岐命令は最短2クロックサイクルで命令実行が
完了する。このように、分岐処理が実行された場合は、
分岐命令から3クロックサイクル後(最短処理で換算)
に分岐先命令のフェッチを開始可能であるため、分岐処
理によるペナルティは1クロックサイクルですむことに
なる。つまり、分岐命令の次命令がネゲートされて、こ
の1クロックサイクルのみ無駄なクロックサイクルとし
て使用されることとなる。
【0020】しかし、このように少ないクロックサイク
ル数で分岐命令を実行すると、マイクロプロセッサ自体
の動作周波数が低下する場合がある。これは、このパイ
プラインの単位時間当りの処理性能は、最も遅いステー
ジの処理時間により決まってしまうためである。このマ
イクロプロセッサで処理する分岐命令の中に以下に示す
ような条件分岐命令がある。この条件分岐命令は、命令
実行時に汎用レジスタの読み出しを行い、この値がゼロ
かゼロでないかにより分岐判定を行ってから条件分岐処
理を実行する。
【0021】 JMPTZR Jump if zero JMPTNZ Jump if not zero JSRTZR Jump to subroutine if zero JSRTNZ Jump to subroutine if not zero
【0022】この条件分岐命令の処理を図3で説明す
る。まず、IFステージにて命令メモリI−MEM(1
010)から命令フェッチ処理を実施し、この条件分岐
命令の命令コードをフリップフロップ(1001)に取
り込む。これと同時に、アドレスインクリメンタ(10
11)にて、この条件分岐命令のアドレスをインクリメ
ントしたアドレスを命令アドレスレジスタIA(100
0)に取り込む。次ステージにて、IFステージでこの
条件分岐命令の後続命令のフェッチを行うのと並行し
て、D/Aステージでフリップフロップ(1001)に
取り込まれた条件分岐命令のデコード処理と、分岐先ア
ドレスの生成と、条件分岐判定処理等を実施する。命令
デコードは、命令デコード部(1012)で実施する。
そして汎用レジスタ(1013)から指定のレジスタの
値を読み出し、比較器(1020)にてゼロと比較す
る。この比較結果は、条件分岐判定部(1021)に入
力され、条件分岐するかどうかの判定を行う。また、加
算器(1014)にて分岐先アドレスの生成を行い、分
岐が実施される場合にはこの分岐先アドレスを命令アド
レスレジスタIA(1000)に取り込む。このよう
に、条件分岐命令のD/Aステージでの処理では、
(1)汎用レジスタの読み出し、(2)レジスタ値のゼ
ロ比較、(3)条件分岐判定、(4)分岐先アドレスの
命令アドレスレジスタへの取り込みという一連の処理を
シーケンシャルに実行する必要があり、非常に時間がか
かる可能性がある。
【0023】図4に、条件分岐命令のD/Aステージで
の処理に時間のかかる従来のマイクロプロセッサにおけ
る4段のパイプライン処理の模式図を示す。図4におい
て、IFは命令フェッチステージ(14nsかかる)を
示し、D−BKは前述した一連の条件分岐命令処理を実
施するDステージ(20nsかかる)を示し、Eステー
ジ(16nsかかる)は実行ステージを示し、WBステ
ージ(12nsかかる)はライトバックステージを示し
ている。4命令A,B,C,Dが連続して実行される場
合、4段のパイプライン処理でオーバラップして処理す
れば、最短でC1〜C7の7クロックサイクルで完了す
る。しかし、パイプラインの動作周波数は、最も遅いD
−BKステージの処理時間(20ns)により決まって
しまうため、50MHzとなる。このように、処理クロ
ックサイクル数が低減しても動作周波数も低下してしま
えば、マイクロプロセッサ全体の性能が低下してしまう
こととなる。
【0024】この問題を解決するためのより進歩したパ
イプライン処理を図5に示す。条件分岐命令Aを実行す
ると、この条件分岐命令のD−BKステージ(20ns
かかる)は、C2,C3の2クロックサイクルかけて実
行するようにする。後続命令BのDステージ(条件分岐
命令以外のDステージは14nsで処理が完了する)と
命令CのIFステージを1クロックサイクル(C3の期
間)ストールさせて、C4クロックサイクルから開始す
るようにパイプライン制御を行う。このようなパイプラ
イン制御を実施することにより、条件分岐命令のペナル
ティが2クロックサイクルとなり、命令A,B,C,D
を実行するのにC1〜C8の8クロックサイクルかかる
ことになる。しかし、パイプラインの動作周波数は、最
も遅いEステージの処理時間(16ns)に律速される
ため、約60MHzへ向上する。以上、図4,図5で、
従来のマイクロプロセッサにおける2ケースのパイプラ
イン制御について説明した。
【0025】
【発明が解決しようとする課題】図4で説明したように
条件分岐処理のペナルティを低減するか、図5で説明し
たように動作周波数を向上させるかは、プロセッサ性能
向上のためのトレードオフであり、ハードウェアインプ
リメント上の難しい問題である。本発明は、この問題点
を解決するために考案したものであり、パイプライン処
理の各処理工程の処理時間の平均化を図ることを目的と
する。また、処理時間の平均化を図ることにより、マイ
クロプロセッサの動作周波数向上を図ることを目的とす
る。
【0026】
【課題を解決するための手段】この発明に係るデータ処
理装置は、1つの命令を複数の処理要素に分割し、上記
複数の命令を実行する順序に基づいて、複数の命令それ
ぞれに対応する上記複数の処理要素を実行するデータ処
理装置において、データを格納する汎用レジスタと、上
記汎用レジスタに格納されるデータから、上記汎用レジ
スタに格納されるデータに基づいて実行する処理要素が
使用する情報をレジスタ情報として上記汎用レジスタに
対応づけて格納する情報レジスタ部とを備えることを特
徴とする。
【0027】上記データ処理装置は、さらに、上記情報
レジスタ部から上記レジスタ情報を読み込み、読み込ん
だ上記レジスタ情報を使用して、処理要素を実行する処
理実行部を備えることを特徴とする。
【0028】上記データ処理装置は、さらに、上記汎用
レジスタに格納されるデータから、上記レジスタ情報を
抽出し、抽出した上記レジスタ情報を上記情報レジスタ
部へ格納するレジスタ情報格納部を備えることを特徴と
する。
【0029】上記データ処理装置は、さらに、命令を実
行した命令実行結果を上記汎用レジスタへ格納する命令
実行結果格納部を備え、上記レジスタ情報格納部は、上
記命令実行結果格納部が上記命令実行結果を上記汎用レ
ジスタへ格納するときに、上記命令実行結果を取得し、
取得した命令実行結果にから上記レジスタ情報を抽出
し、抽出した上記レジスタ情報を上記情報レジスタ部へ
格納することを特徴とする。
【0030】上記処理実行部は、上記情報レジスタ部に
格納されたレジスタ情報を読み込み、読み込んだレジス
タ情報に基づいて条件分岐の処理を実行する条件分岐判
定部を含むことを特徴とする。
【0031】上記レジスタ情報格納部は、さらに、上記
命令実行結果が零であるか否かを判別し、判別した結果
を上記レジスタ情報として情報レジスタ部へ格納し、上
記条件分岐判定部は、上記情報レジスタ部へ格納された
上記レジスタ情報が零であるか否かによって分岐命令を
実行することを特徴とする。
【0032】上記データ処理装置は、汎用レジスタとし
て複数の汎用レジスタを含み、上記情報レジスタ部は、
上記複数の汎用レジスタそれぞれに対応づけて複数のレ
ジスタ情報を格納することを特徴とする。
【0033】上記情報レジスタ部は、レジスタ情報とし
て、対応する汎用レジスタのデータが零か否かを示すフ
ラグを格納するフラグビットを有することを特徴とす
る。
【0034】上記データ処理装置は、複数の命令それぞ
れに対応する上記複数の処理要素を平行して実行するパ
イプライン制御機構を備えることを特徴とする。
【0035】
【発明の実施の形態】実施の形態1.この実施の形態で
は、条件分岐命令のパイプラインステージ間の処理分散
をより進めるデータ処理装置を説明する。また、条件分
岐命令の分岐ペナルティを低減すること、マイクロプロ
セッサの動作周波数向上を図ることとを可能にする場合
を説明する。
【0036】図1に、本発明に共通なマイクロプロセッ
サ(データ処理装置)のブロック図を示す。図1に示す
マイクロプロセッサは、命令を複数の処理要素に分割
し、複数の命令を実行する場合に、上記複数の命令を実
行する順序に基づいて、複数の命令それぞれに対応する
上記複数の処理要素を平行して実行するパイプライン制
御機構を備える。このマイクロプロセッサは、図3に示
す従来のプロセッサと同様に4段のステージより構成さ
れるパイプライン処理が実行される。それらは命令フェ
ッチを行うIFステージと、命令デコード及びアドレス
計算を行うD/Aステージと、命令実行及びメモリアク
セスを行うE/Mステージと、実行結果を汎用レジスタ
に書き戻すWステージである。しかしながら、上記プロ
セッサは、4段のステージに限られることなく、この他
の段数のステージを備えるパイプライン処理を実施する
パイプライン制御機構を備えるマイクロプロセッサでも
よい。また、上記マイクロプロセッサは、各ステージの
処理を実行する処理実行部、例えば、命令デコード部
(DEC)(1012)、アドレス加算器(ADD)
(1014)、演算部(EXE)(1916)、CMP
(3)等を備えている。
【0037】次に、本発明のマイクロプロセッサの基本
的なパイプライン処理について説明する。IFステージ
では、命令アドレスレジスタIA(1000)の値によ
り命令メモリI−MEM(1010)がアクセスされ
る。命令メモリから読み出された命令コードは、IF及
びD/Aステージ間のフリップフロップ(1001)に
転送される。また、IA(1000)の値は、次命令ア
クセスを行うために、インクリメンタ(1011)によ
り+4されてマルチプレクサを介して命令アドレスレジ
スタIA(1000)に書き戻される。また、命令デコ
ード部(1012)では各種レジスタや演算器等の制御
を行うための制御信号を生成する。
【0038】D/Aステージでは主に、命令のデコード
と、分岐処理やデータメモリアクセスのためのアドレス
計算が行われる。命令コードに埋め込まれている即値等
も、命令デコード部(1012)で切り出される。ま
た、命令コード中のソースレジスタ指定子によりレジス
タファイル(1013)内のレジスタの値が読み出され
る。これら即値やレジスタ値は、D/A及びE/Mステ
ージ間のフリップフロップ(1003)に格納される。
また、即値やレジスタ値はアドレス加算器(1014)
にも転送される。分岐命令が実行された時にはこのアド
レス加算器の値はマルチプレクサを介して命令アドレス
レジスタIA(1000)に分岐先アドレスとして格納
される。また、ロード/ストア命令が実行された時に
は、データメモリアクセス用のアドレスとしてフリップ
フロップ(1002)に取り込まれて次ステージに転送
される。
【0039】E/Mステージでは、主に命令実行とデー
タメモリアクセスが行われる。即値とレジスタ値は演算
部(1016)に転送され、演算が実行される。また、
フリップフロップ(1002)に取り込まれたアドレス
によりデータメモリD−MEM(1015)アクセスが
実行される。ストア処理の場合は、汎用レジスタより読
み出したフリップフロップ(1003)の値をデータメ
モリ(1015)へ格納する。演算部(1016)の演
算結果やロード命令により読み出されたデータは、フリ
ップフロップ(1004,1005)にそれぞれ格納さ
れる。そして、このフリップフロップ(1004,10
05)に格納されたデータは、Wステージで、マルチプ
レクサを介してレジスタファイル(1013)に書き戻
される。
【0040】さらに、本発明のマイクロプロセッサで
は、汎用レジスタ(1013)の各レジスタに対応して
情報ビットを備えており、この情報ビットを格納するた
めの情報ビットレジスタ(GIB)(1)を備えてい
る。この実施の形態では、情報ビットは、レジスタ情報
の一例であり、情報ビットレジスタ(1)は、情報レジ
スタ部の一例である。レジスタ情報は、汎用レジスタ
(1013)に格納されるデータから、汎用レジスタ
(1013)に格納されるデータに基づいて次に実行す
る命令が使用する情報である。レジスタ情報は、上記汎
用レジスタ(1013)に対応づけて情報レジスタ部に
格納される。この実施の形態では、情報ビットは、汎用
レジスタのデータが零か否かを示すフラグとして取り扱
われる。条件分岐判定部(2)は、上記情報ビットを使
用して処理を実行する。この実施の形態では、条件分岐
判定部(2)は、図1のBUNKIで表され、この情報
ビットの内容を汎用レジスタとともに(同時に)読み出
して条件分岐の判定処理を行う。また、情報ビットは、
WBステージで汎用レジスタを更新する時に、この更新
データを元に情報ビットが生成される。
【0041】情報レジスタ格納部は、レジスタ情報を上
記汎用レジスタ(1013)に格納されたデータから次
の命令か使用する情報を抽出し、抽出した情報をレジス
タ情報として上記情報レジスタ部へ格納する。この実施
の形態では、情報レジスタ格納部の一例として情報ビッ
トを生成する情報ビット生成器(CMP)(3)をWB
ステージに備える。例えば、この情報ビットは、汎用レ
ジスタの値がゼロであれば“1”で、ゼロでなければ
“0”である情報である。この場合は、WBステージの
情報ビット生成器(3)はゼロ比較器と同様の機能を果
たす。この情報ビットの値により、以下の条件分岐命令
処理を実行することが可能である。 JMPTZR Jump if zero JMPTNZ Jump if not zero JSRTZR Jump to subroutine if zero JSRTNZ Jump to subroutine if not zero
【0042】これら条件分岐命令では、汎用レジスタに
付帯した情報ビットの値が“1”か“0”かにより、対
応する汎用レジスタの内容がゼロかゼロでないかを判断
し、条件分岐判定部で分岐するかどうかの判定を下して
条件分岐命令処理を実行する。このため、図3に示す従
来のマイクロプロセッサと比較して、D/Aステージに
汎用レジスタからの読み出し値に対する比較器(102
0)としてのゼロ比較器が不要となる。すなわち、条件
分岐命令完了までの一連の処理は、(1)情報ビットの
読み出し、(2)条件分岐判定、(3)分岐先アドレス
の命令アドレスレジスタへの取り込みとなり、これにか
かる時間を低減させることが可能となる。
【0043】図2に、本発明のマイクロプロセッサにお
ける4段のパイプライン処理の模式図を示す。命令Aが
条件分岐命令であり、かつ、4命令A,B,C,Dを連
続して実行した場合、図5に示したような条件分岐命令
によるストール処理はしないので、C1〜C7の7クロ
ックサイクルで処理が完了する。また、条件分岐命令実
行のD/Aステージでゼロ比較処理(4nsかかる)が
不要となるので、従来のマイクロプロセッサにおいてD
/Aステージの処理が20nsかかっていたので、本発
明のマイクロプロセッサでは16nsで実行することが
可能となる。また、このゼロ比較処理がWBステージで
行われるため、本発明のマイクロプロセッサでは16n
sでWBステージを実行することになる。このように、
DステージとWBステージ間において処理の負荷を均衡
させることにより、マイクロプロセッサの動作周波数を
律速する最も遅いステージがD,E,WBの16ns
(動作周波数約60MHz)となる。これにより、本発
明のマイクロプロセッサでは、条件分岐命令の分岐ペナ
ルティが1クロックサイクルのまま増加させることな
く、かつ、マイクロプロセッサの動作周波数を60MH
zまで向上させることが可能である。
【0044】以上のように、この実施の形態のデータ処
理装置は、命令をフェッチする命令フェッチ機構と、命
令をデコードする命令デコーダと、データを記憶する複
数の汎用レジスタと、算術論理演算等を行う演算回路を
備えた命令実行機構を備え、プログラムに記述された命
令を該命令デコーダが順次デコードし、該命令デコーダ
の出力に従い該命令実行機構では命令を実行し、汎用レ
ジスタやメモリから該命令実行部にデータを読み出し、
該命令実行結果を汎用レジスタやメモリに格納するデー
タ処理装置において、各命令処理工程間にレジスタを備
え、各処理要素をオーバーラップして処理するパイプラ
イン制御機構を備え、該汎用レジスタの各レジスタ値が
ゼロであることを示す情報ビットを有する情報ビットレ
ジスタ(情報レジスタ部)を備え、該フラグ情報を汎用
レジスタを読み出すと同時に読み出し、命令の処理過程
で使用することを特徴とする。
【0045】また、この実施の形態のデータ処理装置
は、上記フラグ情報の内容に応じて分岐するかどうかを
判定する条件分岐判定部を備え、該フラグ情報を条件分
岐命令処理用に使用することを特徴とする。
【0046】さらに、この実施の形態のデータ処理装置
は、上記汎用レジスタへ命令実行結果を書き戻す時に、
命令実行結果の内容がゼロであることを判定し、汎用レ
ジスタの更新と同時に、上記判定の結果を上記情報ビッ
トレジスタ(情報レジスタ部)へ書き込む情報ビット生
成器(レジスタ情報格納部)を備えることを特徴とす
る。
【0047】実施の形態2.上記実施の形態1では、複
数の汎用レジスタそれぞれに対応するレジスタ情報を情
報ビットとして保持する場合を説明した。上記情報ビッ
トは、対応する汎用レジスタのデータが零か零以外であ
るかを示すものであった。しかしながら、上記レジスタ
情報は、1ビットとは限らなくてもよい。レジスタ情報
は、複数のビットで構成されていてもよい。この場合、
上記レジスタ情報は、対応する汎用レジスタのデータが
零か零以外であるかを示すものに限られず、この他のデ
ータを示すものであってもよい。
【0048】また、上記実施の形態1では、データ処理
装置は、複数の汎用レジスタを有する場合を用いて説明
したが、少なくとも、一つの汎用レジスタを有するデー
タ処理装置であれば、この発明を実施することが可能で
ある。
【0049】実施の形態3.上記実施の形態1では、上
記情報レジスタ部に格納されるレジスタ情報を使用して
分岐命令を実行することを説明した。しかしながら、上
記情報レジスタ部に格納されるレジスタ情報は、分岐命
令に限られることはない。情報レジスタ部に格納される
レジスタ情報は、汎用レジスタに格納されるデータに基
づいて、次に実行する命令が使用する情報であれば、分
岐命令に使用する情報以外のものであってもよい。従っ
て、レジスタ情報格納部は、次に実行する命令が使用す
る情報をレジスタ情報として抽出し、抽出したレジスタ
情報を上記情報レジスタ部へ格納する。すなわち、上記
のレジスタ情報格納部によって情報レジスタ部にレジス
タ情報を使用する命令であれば、分岐命令以外の命令で
あってもよい。
【0050】
【発明の効果】この発明によれば、次に実行する命令が
直接使用する情報をレジスタ情報として情報レジスタ部
へ格納するため、命令を処理する時間を短縮することが
できる。
【0051】この発明によれば、命令実行結果を格納す
るときに、命令実行結果から次に実行する命令が直接使
用するデータを抽出することができる。このことによっ
て、パイプライン機構において、各処理工程の時間を平
均化することが可能となる。
【0052】この発明によれば、分岐命令を実行すると
きに、各処理工程の時間を平均化することができる。
【0053】この発明によれば、複数の汎用レジスタそ
れぞれに対応させてレジスタ情報を格納することができ
る。
【0054】この発明によれば、分岐命令で必要とな
る、汎用レジスタのデータが零か否かをフラグとして保
持するため、処理要素の実行時間を短縮することができ
る。
【図面の簡単な説明】
【図1】 実施の形態1のデータ処理装置の構成の一例
を表した図。
【図2】 実施の形態1のデータ処理装置のパイプライ
ン処理の処理工程の一例を表した図。
【図3】 従来のデータ処理装置の構成の一例を表した
図。
【図4】 従来のデータ処理装置のパイプライン処理の
処理工程の一例を表した図。
【図5】 従来のデータ処理装置のパイプライン処理の
処理工程の一例を表した図。
【符号の説明】
1 情報ビットレジスタ(GIB)(情報レジスタ
部)、2,1021 条件分岐判定部(BUNKI)、
3 情報ビット生成器(CMP)(レジスタ情報格納
部)、4,1030 パイプライン制御部、1000
命令アドレスレジスタIA、1001,1002,10
03,1004,1005 フリップフロップ、101
0 命令メモリI−MEM、1011 インクリメン
タ、1012 命令デコード部(DEC)、1013
レジスタファイル(GPR)、1014アドレス加算器
(ADD)、1015 データメモリD−MEM、10
16 演算部(EXE)。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 1つの命令を複数の処理要素に分割し、
    上記複数の命令を実行する順序に基づいて、複数の命令
    それぞれに対応する上記複数の処理要素を実行するデー
    タ処理装置において、 データを格納する汎用レジスタと、 上記汎用レジスタに格納されるデータから、上記汎用レ
    ジスタに格納されるデータに基づいて実行する処理要素
    が使用する情報をレジスタ情報として上記汎用レジスタ
    に対応づけて格納する情報レジスタ部とを備えることを
    特徴とするデータ処理装置。
  2. 【請求項2】 上記データ処理装置は、さらに、上記情
    報レジスタ部から上記レジスタ情報を読み込み、読み込
    んだ上記レジスタ情報を使用して、処理要素を実行する
    処理実行部を備えることを特徴とする請求項1記載のデ
    ータ処理装置。
  3. 【請求項3】 上記データ処理装置は、さらに、上記汎
    用レジスタに格納されるデータから、上記レジスタ情報
    を抽出し、抽出した上記レジスタ情報を上記情報レジス
    タ部へ格納するレジスタ情報格納部を備えることを特徴
    とする請求項1または2記載のデータ処理装置。
  4. 【請求項4】 上記データ処理装置は、さらに、命令を
    実行した命令実行結果を上記汎用レジスタへ格納する命
    令実行結果格納部を備え、 上記レジスタ情報格納部は、上記命令実行結果格納部が
    上記命令実行結果を上記汎用レジスタへ格納するとき
    に、上記命令実行結果を取得し、取得した命令実行結果
    にから上記レジスタ情報を抽出し、抽出した上記レジス
    タ情報を上記情報レジスタ部へ格納することを特徴とす
    る請求項3記載のデータ処理装置。
  5. 【請求項5】 上記処理実行部は、上記情報レジスタ部
    に格納されたレジスタ情報を読み込み、読み込んだレジ
    スタ情報に基づいて条件分岐の処理を実行する条件分岐
    判定部を含むことを特徴とする請求項2から4いずれか
    に記載のデータ処理装置。
  6. 【請求項6】 上記レジスタ情報格納部は、さらに、上
    記命令実行結果が零であるか否かを判別し、判別した結
    果を上記レジスタ情報として情報レジスタ部へ格納し、 上記条件分岐判定部は、上記情報レジスタ部へ格納され
    た上記レジスタ情報が零であるか否かによって分岐命令
    を実行することを特徴とする請求項5記載のデータ処理
    装置。
  7. 【請求項7】 上記データ処理装置は、汎用レジスタと
    して複数の汎用レジスタを含み、 上記情報レジスタ部は、上記複数の汎用レジスタそれぞ
    れに対応づけて複数のレジスタ情報を格納することを特
    徴とする請求項1記載のデータ処理装置。
  8. 【請求項8】 上記情報レジスタ部は、レジスタ情報と
    して、対応する汎用レジスタのデータが零か否かを示す
    フラグを格納するフラグビットを有することを特徴とす
    る請求項1記載のデータ処理装置。
  9. 【請求項9】 上記データ処理装置は、複数の命令それ
    ぞれに対応する上記複数の処理要素を平行して実行する
    パイプライン制御機構を備えることを特徴とする請求項
    1から8いずれかに記載のデータ処理装置。
JP2000314607A 2000-10-16 2000-10-16 データ処理装置 Withdrawn JP2002123389A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000314607A JP2002123389A (ja) 2000-10-16 2000-10-16 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000314607A JP2002123389A (ja) 2000-10-16 2000-10-16 データ処理装置

Publications (1)

Publication Number Publication Date
JP2002123389A true JP2002123389A (ja) 2002-04-26

Family

ID=18793829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000314607A Withdrawn JP2002123389A (ja) 2000-10-16 2000-10-16 データ処理装置

Country Status (1)

Country Link
JP (1) JP2002123389A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013198932A (ja) * 2012-03-26 2013-10-03 Dainippon Printing Co Ltd レーザ加工データ分配システムおよびレーザ加工装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013198932A (ja) * 2012-03-26 2013-10-03 Dainippon Printing Co Ltd レーザ加工データ分配システムおよびレーザ加工装置

Similar Documents

Publication Publication Date Title
US5826089A (en) Instruction translation unit configured to translate from a first instruction set to a second instruction set
US6016543A (en) Microprocessor for controlling the conditional execution of instructions
US6865666B2 (en) Data processing device
US7487338B2 (en) Data processor for modifying and executing operation of instruction code according to the indication of other instruction code
US20020133682A1 (en) System with wide operand architecture, and method
JP2003085000A (ja) トレース情報生成装置およびその方法
JP2011517493A (ja) 実行された命令の結果を選択的にコミットするためのシステムおよび方法
JPH03218523A (ja) データプロセッサ
JP2010532063A (ja) 条件命令を無条件命令および選択命令へと拡張する方法およびシステム
JPH0628185A (ja) 2つのコンピュータ命令を並列に実行できるコンピュータ装置
WO2002050668A2 (en) System and method for multiple store buffer forwarding
JP3543181B2 (ja) データ処理装置
JPH0496825A (ja) データ・プロセッサ
JP2006313422A (ja) 演算処理装置及びデータ転送処理の実行方法
JPH0766324B2 (ja) データ処理装置
JPH1049370A (ja) 遅延命令を有するマイクロプロセッサ
US20180181347A1 (en) Data processing apparatus and method for controlling vector memory accesses
JP2009508180A (ja) マイクロプロセッサにおける効率的なサブプログラムリターン
US20070079076A1 (en) Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture
JP3578883B2 (ja) データ処理装置
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
US20070180220A1 (en) Processor system
US6209080B1 (en) Constant reconstruction processor that supports reductions in code size and processing time
JP2002229779A (ja) 情報処理装置
US6438680B1 (en) Microprocessor

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051018

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108