JP2000347858A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JP2000347858A
JP2000347858A JP11161717A JP16171799A JP2000347858A JP 2000347858 A JP2000347858 A JP 2000347858A JP 11161717 A JP11161717 A JP 11161717A JP 16171799 A JP16171799 A JP 16171799A JP 2000347858 A JP2000347858 A JP 2000347858A
Authority
JP
Japan
Prior art keywords
instruction
register
general
execution result
value
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
JP11161717A
Other languages
English (en)
Inventor
Takahiro Kaneko
貴弘 兼子
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 JP11161717A priority Critical patent/JP2000347858A/ja
Publication of JP2000347858A publication Critical patent/JP2000347858A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 汎用レジスタの内容をデータメモリのスタッ
クへ、退避または復元する処理を削減するマイクロプロ
セッサを提供する。 【解決手段】 汎用レジスタ6への書込みの有無を指示
する保護フラグに基づいて、命令実行結果を汎用レジス
タ6へ書込むか否かを判断する。命令デコード部19
は、保護フラグが書込み要求状態を示す場合には、汎用
レジスタに保持された命令実行結果を選択する選択信号
を上記マルチプレクサ15へ出力し、保護フラグの値が
書込み停止状態を示す場合には、バイパス経路を介して
転送された命令実行結果を選択する選択信号をマルチプ
レクサ15へ出力して命令実行結果を受け渡すととも
に、書込む先のアドレスを、読取専用レジスタのアドレ
スにすることによって汎用レジスタ6への書込みを停止
することにより実現する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数命令を並列に
処理するマイクロプロセッサ、具体的には、パイプライ
ン制御方式で制御されるマイクロプロセッサにおいて、
命令が実行時に汎用レジスタに書込み保護をかけること
によりプログラム実行の性能向上を実現するプロセッサ
に関するものである。
【0002】
【従来の技術】近年マイクロプロセッサは、動作周波数
の向上を図るためにパイプライン処理により命令実行が
行われている。パイプライン処理とは複数の命令をオー
バーラップさせて同時実行する技術である。一個の命令
の処理過程を複数の小さな処理過程(パイプライン・ス
テージ)に分割する。各ステージが順に接続されて一本
のパイプラインを形成し、命令がパイプの一端から入っ
て複数のステージを進み最後にパイプのもう一方の端か
ら出て行く。このパイプラインの単位時間当りの処理性
能は、最も遅いステージの処理時間により決まる。その
ため、通常は各ステージの処理時間が均一になるように
設計されている。例えば、N段のステージからなるパイ
プライン処理では、パイプライン処理されない場合に比
較して、理論上は、N倍の処理性能を達成することが可
能である。
【0003】図8に、従来のマイクロプロセッサのブロ
ック図を示す。このマイクロプロセッサでは、4段のス
テージより構成されるパイプライン処理が実行される。
具体的には、命令フェッチを行うIFステージと、命令
デコード及びアドレス計算を行うD/Aステージと、命
令実行及びメモリアクセスを行うE/Mステージと、実
行結果を汎用レジスタに書き戻すWステージである。図
8のマイクロプロセッサ1は、命令アドレスレジスタ
2、命令メモリ3、ADD(アドレス加算器)4,7、
即値生成5、レジスタファイル6、演算器8、データメ
モリ9、フリップフロップ10,11,12、MUX
(マルチプレクサ)13,14,15,16,17、割
込み制御部18、命令デコード部101、制御レジスタ
部102を含む構成となっている。IFステージでは、
命令アドレスレジスタIA2の値により命令メモリ3が
アクセスされる。命令メモリから読み出された命令コー
ドは、命令デコード部101に転送されると共に、IF
及びD/Aステージ間のフリップフロップ10に転送さ
れる。また、IA2の値は次命令アクセスを行うため
に、インクリメンタ(ADD)4により一命令の命令コ
ードの長さ(ここでは、4バイトとする)を加算(+
4)されて、マルチプレクサ13を介して命令アドレス
レジスタIA2に書き戻される。また、命令デコード部
101では、各種レジスタや演算器等の制御を行うため
の制御信号を生成する。
【0004】D/Aステージでは、主に命令のデコード
と分岐処理やデータメモリアクセスのためのアドレス計
算が行われる。命令コードに埋め込まれている即値は、
即値生成部5で切り出される。また、命令コード中のソ
ースレジスタ指定子により汎用レジスタ6内のレジスタ
が記憶する値(以下、レジスタが記憶する値を「レジス
タ値」という)が読み出される。上記即値やレジスタ値
は、D/A及びE/Mステージ間のフリップフロップ1
1に格納される。また、即値またはレジスタ値は、マル
チプレクサ14を介してアドレス加算器7にも転送され
る。分岐命令が実行された時には、上記アドレス加算器
7の値は、マルチプレクサ13を介して命令アドレスレ
ジスタIA2に分岐先アドレスとして格納される。ま
た、ロード/ストア命令が実行された時には、データメ
モリアクセス用のアドレスとして次ステージに転送され
る。
【0005】E/Mステージでは、主に命令実行とメモ
リアクセスが行われる。即値またはレジスタ値は、マル
チプレクサ16を介して演算部8に転送され、演算が実
行される。また、加算器7で生成されたデータアドレス
もデータメモリ9に転送されて、データメモリ9の所望
のデータアドレスに対してアクセスが行われる。即ち、
ストア命令の場合には、そのデータアドレスにレジスタ
値が格納される。また、ストアアドレスの場合には、そ
のデータアドレスからデータが読み出される。更に、プ
ロセッサを制御するレジスタ、例えば、プロセッサ状態
語レジスタ(PSW)等の制御レジスタ部102へのア
クセスもE/Mステージで行われる。制御レジスタへの
アクセス専用命令により、制御レジスタ部102への書
込みや読み出しが行われる。演算部8の演算結果やロー
ド命令により読み出されたデータ、そして、制御レジス
タからの読み出しデータは、E/MステージとWステー
ジ間のフリップフロップ12に格納される。そして、こ
のフリップフロップ12に格納されたデータは、Wステ
ージにマルチプレクサ17を介して、命令コードに埋め
込まれているディスティネーションレジスタ指定子で指
定されるアドレス103の汎用レジスタ6に書き戻され
る。
【0006】また、このようなパイプライン処理を行う
マイクロプロセッサでは、連続する命令間でデータハザ
ードが発生した場合、汎用レジスタ経由でなくバイパス
経由でデータの受け渡しを行うためにバイパス経路20
0,201を備えている。日経BP社の「コンピュータ
の構成と設計[下]」(David A.Patter
son/John L.Hennessy、成田光彰
訳、1996年)のpp372−384によれば、デー
タハザードを低減するために、これらバイパス経路が有
効であることが説明されている。但し、これらバイパス
経路によって命令間で転送されたデータは、再度使用す
るかどうかに関わらず、汎用レジスタへの更新処理も同
時に行われていた。
【0007】図9に、典型的なマイクロプロセッサの命
令コードの概要と、図10に、命令間でデータ干渉が発
生した場合の処理機構について説明する。命令コード
は、命令を識別するオペコードフィールド(オペコー
ド)と、モード指定子フィールド(mode)と、命令
実行結果を書き込むレジスタを指定するディスティネー
ションレジスタ指定子(Ra)と、演算対象であるソー
スデータのあるレジスタを指定するソースレジスタ指定
子(Rb)、命令コード中のソースデータを指定するフ
ィールドであることを示すsource(以下、「sr
c」とする)より構成されている。srcは、ソースレ
ジスタ指定子(Rc)または即値(6bit)のいずれ
かの値をとる。上記二つのいずれの値をとるかは、オペ
コードに依存する。モードフィールドでは、ロード、ス
トア命令のアドレッシングモードの指定等が行われる。
図10を用いて、(イ)、(ロ)、(ハ)にデータハザ
ードが発生した場合のパイプラインインターロック処理
を示す。(イ)と(ロ)の命令間にデータハザードは発
生していないため、パイプライン処理は乱れることなく
進行する。これに対して(ロ)と(ハ)間では、(ロ)
のディスティネーションレジスタ指定子r11と(ハ)
のソースレジスタ指定子r11がデータハザードを発生
している。即ち、(ハ)では、先行命令(ロ)の演算結
果r11が必要であり、この場合、(ロ)のライトバッ
ク・フェーズWの終了まで、デコード・フェーズDに対
してインターロックをかける必要がある(矢印A)。こ
のようなデータハザードを回避する機構としてバイパス
経路がある。バイパス経路とは、図8で示すデータメモ
リ9のデータと演算部8の演算結果をバイパスA20
0、バイパスB201を使用してマルチプレクサ15を
介してフリップフロップ11に格納することである。フ
リップフロップ11へ格納されたデータと演算結果は、
次の命令の演算のデータとして使用する。このバイパス
経路を使用することにより、データハザードが発生して
いた図10の(ハ)は、(ハ1)のように遅延させるこ
となく、処理することができる。
【0008】以下に、図8で示すマイクロプロセッサで
実行される命令を示す。 A.MCU function instructio
ns A−1.Load/Store instructio
ns LDB:Load one byte to a re
gisterwith sign extension LDBU:Load one byte to a r
egister with zero extensi
on LDH:Load one half−word to
a register with sign ext
ension LDHH:Load one half−word t
o a register high with si
gn extension LDHU:Load one half−word t
o a register with zero ex
tension LDW:Load one word to a re
gister LD2W:Load two words to re
gisters LD4BH:Load four bytes to
four half−word in two reg
isters with signextension LD4BHU:Load four bytes to
fourhalf−word in two reg
isters with zeroextension LD2H:Load two half−word t
o twoword in two register
s with sign extension STB:Store one byte from a
register STH:Store one half−word f
rom aregister STHH:Store one half−word
from aregister high STW:Store one word from a
register ST2W:Store two words from
registers ST4HB:Store four bytes fr
om four half−word from tw
o registers ST2H:Store two half−word
from two registers MODDEC:Decrement a regist
er value by a 5−bit immed
iate value MODINC:Increment a regist
er value by a 5−bit immed
iate value A−2.Transfer instructions MVFSYS:Move a control reg
isterto a general purpose
register MVTSYS:Move a general pur
pose register to a contro
l register MVFACC:Move a word from a
n accumulator MVTACC:Move two general p
urposeregisters to an acc
umulator A−3.Compare instructions CMPcc:Compare cc=EQ,NE,GT,GE,LT,LE,PS(b
oth positive),NG(both neg
ative) CMPUcc:Compare unsigned cc=GT,GE,LT,LE A−4.Maximum/Minimum instr
uctionsreserved A−5.Arithmetic operation
instructions ABS:Absolute ADD:Add ADDC:Add with carry ADDHppp:Add half−word ppp=LLL,LLH,LHL,LHH,HLL,H
LH,HHL,HHH ADDS:Add register Rb with
the sign of the third op
erand ADDS2H:Add sign to two ha
lf−word ADD2H:Add two pairs of ha
lf−words AVG:Average with rounding
towards positive infinit
y AVG2H:Average two pairs o
f half−words rounding tow
ards positive infinity JOINpp:Join two half−word
s pp=LL,LH,HL,HH SUB:Subtract SUBB:Subtract with borrow SUBHppp:Subtract half−wor
d ppp=LLL,LLH,LHL,LHH,HLL,H
LH,HHL,HHH SUB2H:Subtract two pairs
of half−words A−6.Logical operation ins
tructions 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 O
R flags A−7.Shift operation instr
uctions SRA:Shift right arithmeti
c SRAHp:Shift right arithme
tic ahalf−word p=L(0),H(1) SRA2H:Shift right arithme
tic two half−words SRC:shift right concatena
ted 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 ha
lf−words A−8.Bit operation instruc
tions BCLR:Clear a bit BNOT:Invert a bit BSET:Set a bit BTST:Test a bit A−9.Branch instructions BRA:Branch BRATZR:Branch if zero BRATNZ:Branch if not zero BSR:Branch to subroutine BSRTZR:Branch to subrouti
ne ifzero BSRTNZ:Branch to subrouti
ne ifnot zero DBRA:Delayed Branch DBRAI:Delayed Branch imme
diate DBSR:Delayed Branch to su
broutine DBSRI:Delayed Branch imme
diateto subroutine DJMP:Delayed Jump DJMPI:Delayed Jump immedi
ate DJSR:Delayed Jump to subr
outine DJSRI:Delayed Jump immedi
ate tosubroutine 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 A−10.OS−related instructi
ons TRAP:Trap REIT:Return from exceptio
n, interrupts, and traps B.DSP function instructio
ns B−1.Arithmetic operation
instructions MUL:Multiply MULX:Multiply with extend
ed precision MULXS:Multiply and shift
to theright by one with e
xtended precision MULX2H:Multiply two pairs
of half−words with exten
ded precision MULHXpp:Multiply two half
−wordswith extended preci
sion 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 subtra
ct a=0,1 MSUBSa:Multiply, shift to
the right by one, and su
btract a=0,1 SAT:Saturate SATHH:Saturate word opera
nd into high half−word SATHL:Saturate word opera
nd into low half−word SATZ:Saturate into positi
ve number SATZ2H:Saturate two half−
wordsinto positive number SAT2H:Saturate two half−w
ord operands B−2.Repeat instructions REPEAT:Repeat a block of
instructions REPEAT:Repeat a block of
instructions with immedia
te
【0009】次に、図11に、従来の典型的な割り込み
処理機構を示す。図に示すように、プログラム実行中に
割り込みが発生した場合、PC(プログラム・カウンタ
・レジスタ)の内容をBPC(バックアップ・プログラ
ム・カウンタ・レジスタ)に保存し、PSW(プロセッ
サ状態語レジスタ)63の内容をBPSW(バックアッ
プ・プロセッサ状態語レジスタ)に保存し、更に全ての
汎用レジスタの内容をデータRAM上のスタックに退避
し、割込み発生時のマイクロプロセッサの状態を保存す
る必要があった。割込み処理終了後には、保存していた
PC、PSW、汎用レジスタを戻すことによって割込み
発生前の状態にしていた。
【0010】また、図12に、従来の画像処理フローを
示す。この画像処理では、AとBの符号化された画像デ
ータ値に対して復号処理をそれぞれ施し、8×8画素
(64バイト)のAとBの復号結果を元に、各対応する
画素間の平均処理を行う。但し、本画像処理を行うマイ
クロプロセッサに内蔵されている汎用レジスタのサイズ
が32ビット×16本(64バイト)であることを想定
している。この処理を行う場合、まず、Aの符号値を読
み込み(S101)、読み込んだ符号値に対して復号処
理を行う(S102)。復号処理結果である64バイト
のデータは、復号処理後一旦汎用レジスタに蓄えられ
る。しかし、そのままでは、後で実施するBの符号値の
復号処理時に破壊されてしまうので、データRAMに格
納する(S103)。Aの復号結果をデータRAM内に
格納した後に、Bの符号値を読み込み(S104)、読
み込んだ符号値に対して復号処理を行う(S105)。
Bの復号処理結果である64バイトのデータは汎用レジ
スタに格納される。次に、データRAMに格納していた
Aの復号結果を読み込み(S106)、上記Aの復号結
果と汎用レジスタ内のBの復号結果の平均処理を行い
(S107)、このAとBの平均結果をデータRAMに
格納する(S108)。このように、第1に実施する処
理(処理1、上記の例では、S101,S102)の演
算結果で全ての汎用レジスタを使用し、処理したデータ
を第2に実施する処理(処理2、上記の例では、S10
4,S105)の結果と合わせて演算を行う必要がある
場合、処理1の結果によって汎用レジスタに書込まれた
内容が、処理2の演算結果によって書き換わってしまう
ため、汎用レジスタをデータRAMに退避させ(S10
3)、その後、必要に応じてデータRAMからデータを
読込み、処理2の結果と合わせて第3に実施する処理
(処理3、上記の例では、S107,S108)を続け
る必要がある。
【0011】
【発明が解決しようとする課題】この発明は、従来の割
り込み機構において、汎用レジスタの内容をデータメモ
リにスタック退避したり復元したりするための処理を削
減することを目的とし、汎用レジスタへの書込みを停止
する機構を設け、書込み停止状態中に専用バイパス経路
によりデータの受け渡しを行うことにより、この課題を
解決している。
【0012】
【課題を解決するための手段】命令を実行するマイクロ
プロセッサにおいて、この発明に係るマイクロプロセッ
サは、一の命令を実行した結果を命令実行結果として保
持する汎用レジスタと、上記汎用レジスタを介すことな
く上記命令実行結果を転送する経路であるバイパス経路
と、少なくとも汎用レジスタに保持された命令実行結果
と、上記バイパス経路を介して転送された命令実行結果
とを入力し、選択信号に基づいて入力された命令実行結
果から一方の命令実行結果を選択して出力するするマル
チプレクサと、上記汎用レジスタへ命令実行結果を書込
み保持する書込み要求状態と、上記汎用レジスタへ命令
実行結果を書込まず保持しない書込み停止状態とのいず
れかの状態を示す値を記憶する保護フラグと、上記保護
フラグの値を入力し、上記保護フラグの値が書込み要求
状態を示す場合には、汎用レジスタに保持された命令実
行結果を選択する選択信号を上記マルチプレクサへ出力
し、上記保護フラグの値が書込み停止状態を示す場合に
は、バイパス経路を介して転送された命令実行結果を選
択する選択信号を上記マルチプレクサへ出力して命令実
行結果を受け渡すとともに、命令実行結果を汎用レジス
タへ書込むことを停止する制御を行う命令デコード部と
を備えたことを特徴とする。
【0013】上記マイクロプロセッサは、更に、書込む
ことができない読込み専用の読込み専用レジスタを備
え、上記命令デコード部は、保護フラグの値が書込み要
求状態を示す場合は、上記汎用レジスタのアドレスを汎
用レジスタドレスとして生成し、上記保護フラグの値が
書込み停止状態を示す場合は、上記読込み専用レジスタ
のアドレスをレジスタアドレスとして生成するアドレス
デコード部を備えたことを特徴とする。
【0014】上記マイクロプロセッサは、更に、マイク
ロプロセッサを制御する制御レジスタ部を備え、上記保
護フラグは、上記制御レジスタ部に備えられ、制御レジ
スタ部を更新する更新命令によって設定され、上記命令
デコード部は上記制御レジスタ部から保護フラグの値を
取得することを特徴とする。
【0015】上記保護フラグは、命令を表現する命令コ
ードの中にモードビットとして、上記命令コードを生成
する時に設定され、上記命令デコード部は、上記命令コ
ードに設定されたモードビットの値を抽出し、抽出した
モードビットの値に基づいて書込み要求状態または書込
み停止状態のいずれかの状態を判定するモードビット判
定部を備え、上記アドレスデコード部は、上記モードビ
ット判定部の判定結果に基づいて汎用レジスタドレスを
生成することを特徴とする。
【0016】上記マイクロプロセッサは、更に、割込み
処理を受け付ける割込み制御部を備え、上記命令デコー
ド部は、上記割込み制御部が割込み処理を受け付けた場
合、上記制御レジスタ部に備えられた保護フラグを制御
レジスタ部の更新命令により書込み停止状態に設定し、
汎用レジスタの値を退避することなく割込み処理を実行
することを特徴とする。
【0017】上記命令デコード部は、上記一の命令に後
続する後続命令へ上記命令実行結果を転送する場合に、
上記バイパス経路を用いることによって、上記レジスタ
を介することなく上記後続命令へ上記命令実行結果を指
示する上記選択信号を出力することを特徴とする。
【0018】上記マイクロプロセッサは、パイプライン
制御機構を備えたことを特徴とする。
【0019】
【発明の実施の形態】実施の形態1.図1に、この発明
に係るプロセッサの一例を表すマイクロプロセッサのブ
ロック図を示す。このマイクロプロセッサは、図8に示
す従来のマイクロプロセッサと同様に、4段のステージ
より構成されるパイプライン処理を実行する場合を示し
ている。図8の従来例のプロセッサと同じ符号を付した
構成要素は、同様のものである。また、パイプライン処
理を実行する各ステージも従来の技術で説明したものと
同様である。
【0020】この発明に係るマイクロプロセッサは、従
来のマイクロプロセッサと以下の点が異なる。制御レジ
スタ部20が備えるプロセッサ状態語レジスタ(PS
W)63は、汎用レジスタ6へ命令実行結果を書込み保
持する書込み要求状態と、汎用レジスタ6へ命令実行結
果を書込まず保持しない書込み停止状態とのいずれかの
状態を示す値を記憶する保護フラグを備える。また、命
令デコード部19は、上記保護フラグの値を入力し、上
記保護フラグの値が書込み要求状態を示す場合には、汎
用レジスタに保持された命令実行結果を選択する選択信
号を上記MUX(マルチプレクサ)15へ出力し、上記
保護フラグの値が書込み停止状態を示す場合には、バイ
パス経路を介して転送された命令実行結果を選択する選
択信号を上記MUX15へ出力して命令実行結果を受け
渡す。更に、上記命令デコード部19は、保護フラグの
値が書込み要求状態を示す場合は、上記汎用レジスタの
アドレスを汎用レジスタアドレスとして生成し、上記保
護フラグの値が書込み停止状態を示す場合は、上記読込
み専用レジスタのアドレスをレジスタアドレスとして生
成するアドレスデコード部60を備える。
【0021】以下、この発明に係るプロセッサの一例と
して、この実施の形態では、PSW(プロセッサ状態語
レジスタ)63に汎用レジスタ書込み停止状態を示すW
P82を設定し、PSW63のWP82がセットされた
場合、制御レジスタ部から命令デコード部に汎用レジス
タ書込み停止を通達する汎用レジスタへの書込みを停止
することを通達する信号線22を設ける。命令デコード
部では、書込み停止状態を解析し、汎用レジスタのデー
タが更新されないように、汎用レジスタ6へのディステ
ィネーション・アドレス21を読込み専用レジスタのア
ドレス(6bit000000)にする場合を説明す
る。
【0022】図2に、本発明におけるPSW63の詳細
を示す。80は、PSW63の上位16ビットを示す。
81は、スタックポインタを切り替えるSMフィール
ド、82は、汎用レジスタに書込み停止をかけるWPフ
ィールド、即ち、保護フラグ、83は、ソフトウェアデ
バッガトラップ(SDBT)の検出を示すEAフィール
ド、84は、SDBTの許可を指定するDBフィール
ド、85は、デバック割り込み許可を指定するDSフィ
ールド、86は、割り込み許可を指定するIEフィール
ド、87は、リピート動作の許可を指定するRPフィー
ルド、88は、モジュロアドレシングの許可を指定する
MDフィールドである。90は、PSW63の下位16
ビットを示し、フラグフィールドである。フラグフィー
ルドには、F0からF7までの8個のフラグがある。F
0フラグ91とF1フラグ92は、演算の有効または無
効を制御する。F0からF7の各フラグの値は、比較演
算や算術演算の結果に依存して変化する他、フラグ初期
化演算で初期化したり、フラグ値書込み演算で任意の値
をフラグフィールドに書き込むことで変化する。また、
フラグ値読み出し演算でフラグフィールドの値を読み出
すこともできる。このPSW63は、本発明の特徴であ
る汎用レジスタに書込み停止をかけるためのWPフィー
ルドを保護フラグとして備えている。この実施の形態で
は、WPフィールドが‘1’の場合を書込み停止状態、
WPフィールドが‘0’の場合を書込み要求状態とす
る。
【0023】WPフィールドは、制御レジスタの更新命
令mvtsysによって、WPフィールドに‘1’を書
き込めば、この次の命令から汎用レジスタは書込み停止
状態になり、命令実行結果が汎用レジスタに書き込まれ
ないようになる。即ち、このWPフィールドは、命令デ
コーダ部に入力され、命令コードのRaフィールドで示
されるディスティネーション・アドレスを0にクリアす
る。また、再度mvtsysによって、WPフィールド
に‘0’を書き込むと、次の命令から汎用レジスタは、
書込み要求状態になり、命令実行結果が汎用レジスタに
書き込まれる。上記PSW63に設定されたWPフィー
ルド、即ち、保護フラグの値は、信号線22を介して、
書込みマスク信号50として、命令デコード部19へ転
送される。
【0024】次に、上記保護フラグの値を受け取った命
令デコード部19の説明する。命令デコード部19で
は、IFステージで取り出された命令コードを受け取
り、命令実行結果を書き込む汎用レジスタ内のレジスタ
アドレスを指定するRaフィールドを取り出す。取り出
したRaフィールドは、アドレスデコード部60へ転送
される。また、命令デコード部19は、信号線22の値
により、信号線の値に基づいて、信号線50を介して、
汎用レジスタが書込み要求状態か書込み停止状態かをア
ドレスデコード部60へ通知する。
【0025】以下に、アドレスデコード部60の詳細を
図3に基づいて説明する。アドレスデコード部60は、
Raフィールドとして受け取った命令実行結果を書き込
む汎用レジスタのレジスタアドレスのマスク処理を行
う。命令デコード部19から転送されたRaフィールド
は、D,E/M,Wステージをパイプライン転送され
る。そして、Wステージ用のフリップフロップの出力は
セレクタに入力され、書込みマスク信号50が1であれ
ば、Raフィールドの値の代わりに、読込み専用アドレ
スである6bit000000(51)をアドレスデコ
ーダ52に出力する。これにより、デコーダの出力はレ
ジスタ0(0値のリードのみのレジスタ)を指定し、R
aフィールドで指定されるレジスタへ命令処理結果は書
き込まれない。
【0026】以上のように、命令をフェッチする命令フ
ェッチ部と、命令をデコードする命令デコーダと、命令
の実行を制御する制御レジスタと、データを記憶する複
数の汎用レジスタ(複数の汎用レジスタ)と、算術論理
演算等を行う演算回路を備えた命令実行部を持ち、プロ
グラムに記述された命令を該命令デコーダが順次デコー
ドし、該命令デコーダの出力に従い該命令実行部では命
令を実行し、汎用レジスタやメモリ等から該命令実行部
にデータを読み込み、該命令実行結果を汎用レジスタや
メモリ等に格納し、該制御レジスタの内容を読み出した
り内容の更新を行うプロセッサにおいて、各命令処理要
素がオーバーラップして処理するパイプライン処理機構
を備え、該命令実行結果を汎用レジスタに格納する前
に、該命令の後続命令が該汎用レジスタの内容を読み込
みしたい場合に、該汎用レジスタを経由することなく、
専用バイパス経路で該命令結果を転送する機構を備え、
該制御レジスタに汎用レジスタ保護ビットを備え、制御
レジスタ更新命令により該汎用レジスタ保護ビットを有
効にすると、該命令実行結果により汎用レジスタの更新
が実行されないと共に、該汎用レジスタを経由してデー
タの受け渡しを行う代わりに、該専用バイパス経路を経
由してデータの受け渡しを行う。
【0027】実施の形態2.この実施の形態では、命令
コードのmodeフィールドに、書込み停止状態を示す
保護フラグとしてモードビットを設定する。また、上記
モードビットを判定するモードビット判定部を命令デコ
ード部に備える。図1の61にモードビット判定部を示
す。モードビット判定部61は、命令コードに設定され
たモードビットの値を抽出し、抽出したモードビットの
値に基づいて書込み要求状態または書込み停止状態のい
ずれかの状態を判定する。モードビット判定部の出力に
より汎用レジスタのデータが更新されないように、汎用
レジスタ6へのディスティネーション・アドレス21を
読込み専用レジスタのアドレス(6bit00000
0)にする場合を説明する。
【0028】図4に、本発明における命令コード内埋め
込まれた保護フラグとしてのモードビットの判定機構を
示す。汎用レジスタの書込みモードビットは、命令コー
ド[8]のmodeフィールドに埋め込まれている。こ
の実施の形態では、モードビットが1の時は、命令実行
結果が汎用レジスタへ書き込まれない。また、モードビ
ットが0の時は、命令実行結果が汎用レジスタへ書き込
まれるものとする。このモードビットは、命令デコード
時にモードビットが有効かどうかを判定するためのモー
ドビット判定部61に入力され、判定される。判定され
た結果は、モードビット判定部61からアドレスデコー
ド部60へ信号線62によって転送される。アドレスデ
コード部60は、信号線62の値を書込みマスク信号5
0として受け取る。図3で説明したように、アドレスデ
コード部60は、モードビットの判定結果が1であれ
ば、Raフィールドの値の代わりに、読み込み専用アド
レスである6bit000000(51)をアドレスデ
コーダ52に出力する。これにより、アドレスデコーダ
52の出力は、レジスタ0(0値のリードのみのレジス
タ)を指定し、Raフィールドで指定されるレジスタに
は命令処理結果は書き込まれない。
【0029】以上のように、命令をフェッチする命令フ
ェッチ部と、命令をデコードする命令デコーダと、命令
の実行を制御する制御レジスタと、データを記憶する複
数の汎用レジスタと、算術論理演算等を行う演算回路を
備えた命令実行部を持ち、プログラムに記述された命令
を該命令デコーダが順次デコードし、該命令デコーダの
出力に従い該命令実行部では命令を実行し、汎用レジス
タやメモリ等から該命令実行部にデータをリードし、該
命令実行結果を汎用レジスタやメモリ等に格納し、該制
御レジスタの内容を読み出したり内容の更新を行うプロ
セッサにおいて、各命令処理要素がオーバーラップされ
て処理されるパイプライン処理機構を備え、該命令実行
結果を汎用レジスタに格納する前に、該命令の後続命令
が該汎用レジスタの内容をリードしたい場合に、該汎用
レジスタを経由することなく、専用バイパス経路で該命
令結果を転送する機構を備え、該命令コードに汎用レジ
スタ保護を示すモードビットを内蔵し、該命令デコード
部で該モードビットが有効であれるかどうかを判定する
機構を備え、該モードビットが有効であれば、該命令実
行部で実行した該命令結果により汎用レジスタを更新し
ないと共に、該汎用レジスタを経由してデータの受け渡
しを行う代わりに、該専用バイパス経路を経由してデー
タの受け渡しを行う。
【0030】実施の形態3.図5は、本発明における割
込み発生時の処理をプロセッサ状態語レジスタ63のW
P82を用いて実行する。割込みが発生した場合、割込
み発生時のデータ処理装置の状態を保持するため、PC
(プログラム・カウンタ)とPSW(プロセッサ状態語
レジスタ)63を、それぞれBPC,BPSWのバック
アップレジスタに保存する。この点は、従来の技術と同
様である。しかし、割込み処理開始前に汎用レジスタの
バックアップの代わりに、図3のPSW63の保護フラ
グとしてのWP82を‘1’へセットすることで、図1
で示す信号線22を通して命令デコード部19に汎用レ
ジスタへの命令実行結果の書込みが禁止状態になったこ
とを通達する。図2に示す機構により、汎用レジスタへ
の書込み停止状態を解析した命令デコード部19は、汎
用レジスタ6へのディスティネーション・アドレスを読
込み専用のレジスタのアドレス(6bit00000
0)にすることで、汎用レジスタのデータが保護される
ようになっている。ディスティネーション・アドレスと
して、汎用アドレスが記述される割込み処理のプログラ
ムでは汎用レジスタの更新はされず、割込み処理中のデ
ータの受渡しは全てバイパス処理にて行い、汎用レジス
タ経由では行わない。即ち、汎用レジスタへの書込み停
止期間に実行される命令列(A)から(D)では、
(A)でアドレス#40000000からレジスタr1
0にデータをリードし、(B)でこのレジスタr10の
内容が#200より大きいかどうかを比較し、もし大き
ければ、PSW63のフラグF0に1をセットする。こ
の(A)から(B)へのレジスタr10を指定してのデ
ータの受け渡しは汎用レジスタを経由せずに、バイパス
経路によって実行される。また、(C)と(D)は、フ
ラグF0の値が真、これらの命令が実行されるという指
定を行う「/Tオプションにより指定」を用いて実行条
件を指定しておく。「/Tオプション」により(C)と
(D)は、フラグF0の値が真であれば、これら命令が
実行される。即ち、レジスタr10の値が#200より
大きければ、(C)でr20に即値#10000000
を入れる。そして、(D)でレジスタr20の値をアド
レス#40000000にストアする。この(C)から
(D)へのレジスタr20を指定してのデータの受け渡
しは汎用レジスタを経由せずに、バイパス経路によって
実行される。そして、割込み処理を終え、PCとPSW
63を割込み処理前の状態に戻すことにより、汎用レジ
スタ書込み停止ビットWP82もクリアされる。そし
て、通常通り汎用レジスタへの書込みが可能となり、割
込み発生により中断していたプログラムが再開される。
【0031】実施の形態4.図6は、本発明における割
込み発生の処理を命令コードのmodeフィールドを用
いて実行する場合を示したものである。割込みが発生し
た場合、割込みが発生時の状態を保持するため、PC
(プログラム・カウンタ)とPSW(プロセッサ状態語
レジスタ)63を、それぞれBPC,BPSWのバック
アップレジスタに保存する。割込み処理のプログラム
は、図2で示す命令コードのmodeフィールドに汎用
レジスタのデータを更新しないように、汎用レジスタ書
込み停止モードビットを命令コードへ設定する。このよ
うに、汎用レジスタ書込み停止モードビットを命令コー
ドへ設定した命令コードは、命令コードの表記に_Nを
付加して記述する。そして、図3に示す機構により、こ
のモードビットが有効かどうかを判定した命令デコード
部は、汎用レジスタ6へのディスティネーション・アド
レスを読込み専用のレジスタのアドレス(6bit00
0000)にすることで、汎用レジスタのデータが保護
されるようになっている。ディスティネーションレジス
タとして、汎用レジスタが指定される割込み処理のプロ
グラムでは汎用レジスタの更新はされず、割込み処理中
のデータの受渡しは全てバイパス処理にて行い、汎用レ
ジスタ経由では行わなれない。即ち、汎用レジスタの更
新を禁止するモードビットがセットされている命令列
(E)から(H)では、(E)でアドレス#40000
000からレジスタr10にデータをリードし、(F)
でこのレジスタr10の内容が#200より大きいかど
うかを比較し、もし大きければ、PSW63のフラグF
0に1をセットする。この(E)から(F)へのレジス
タr10を指定してのデータの受け渡しは汎用レジスタ
を経由せずに、バイパス経路によって実行される。ま
た、(G)と(H)は、実施の形態3と同様に、「/T
オプション」により指定によってフラグF0の値が真で
あれば、これら命令が実行されることになる。即ち、レ
ジスタr10の値が#200より大きければ、(G)で
r20に即値#10000000を入れる。そして、
(H)でレジスタr20の値をアドレス#400000
00にストアする。この(G)から(H)へのレジスタ
r20を指定してのデータの受け渡しは汎用レジスタを
経由せずに、バイパス経路によって実行される。割込み
処理を終え、PCとPSW63を割込み処理前の状態に
戻し、割込み発生により中断していたプログラムを再開
させる。
【0032】実施の形態5.図7は、本発明を用いて汎
用レジスタ全てを使用する演算の一例を示したものであ
る。処理1によりAの符号結果が得られる。Aの符号値
をリードし、この符号値に対して復号処理を行い、Aの
符号結果である64バイトのデータは、汎用レジスタに
格納したままにしておく(処理1)。次に、汎用レジス
タに書込み停止をかけた状態で、Bの符号値をリード
し、この符号値に対して復号処理を行う(処理2)。B
の復号結果と汎用レジスタにあるAの復号結果の平均処
理(処理3)を行う。AとBの平均結果を、データRA
Mに格納する。この汎用レジスタのプロテクト期間中の
処理は、前述したように、バイパス経由でデータの受け
渡しが行われる。このように、本発明の処理フローで
は、Aの復号結果をデータRAMに格納する処理とデー
タRAMからリードする処理が不用となり、全体の処理
フローが効率化される。
【0033】
【発明の効果】この発明に係るマイクロプロセッサによ
れば、汎用レジスタへ命令実行結果を書込むことなく命
令実行結果を転送するとともに、汎用レジスタへの書き
込みを回避することができる。
【0034】この発明によれば、汎用レジスタへの書込
みを読取専用アドレスにより回避することができる。
【0035】この発明によれば、制御レジスタ部に備え
られた保護フラグを設定することにより、汎用レジスタ
への書込むか否かを設定し、不必要なデータの書込みを
回避することができる。
【0036】この発明によれば、汎用レジスタへ命令実
行結果を書込まない命令コードを、コンパイル時に指定
して作成し、命令実行の効率化を図ることができる。
【0037】この発明によれば、割込み処理が発生した
場合、汎用レジスタのデータを退避することなく割込み
処理を実行することができ、割込み処理等の汎用レジス
タ退避処理を削減することができる。
【0038】この発明によれば、汎用レジスタへ書込み
することなく後続命令へ命令実行結果を転送することが
できる。
【0039】この発明によれば、パイプライン制御機構
で発生するデータハザードを回避する際に、不必要なデ
ータの書込みをなくすことにより効率化を図ることがで
きる。
【図面の簡単な説明】
【図1】 この発明に係るマイクロプロセッサの一例を
表わした図である。
【図2】 この発明に係るのマイクロプロセッサのプロ
セッサ状態語レジスタの一例を表わした図である。
【図3】 この発明に係るのマイクロプロセッサのアド
レスデコード部の一例を表わした図である。
【図4】 この発明に係るマイクロプロセッサに備えら
れたモードビット判定部の動作の詳細を表わした図であ
る。
【図5】 この発明に係るのマイクロプロセッサのプロ
セッサ状態語レジスタが書込み停止状態の場合の割り込
み処理時の動作を表わした図である。
【図6】 この発明に係るのマイクロプロセッサの命令
コードのモードビットが書込み停止状態である場合の動
作を表わした図である。
【図7】 この発明に係るマイクロプロセッサを用いた
画像復号化処理の動作の一例を表わした図である。
【図8】 従来のマイクロプロセッサの一例を表わした
図である。
【図9】 マイクロプロセッサの命令コードの一例を表
わした図である。
【図10】 パイプライン処理機構において命令間でデ
ータ干渉が発生した場合の一例を表わした図である。
【図11】 従来のマイクロプロセッサの割り込み処理
時の動作を表わした図である。
【図12】 従来のマイクロプロセッサを用いた画像復
号化処理の動作の一例を表わした図である。
【符号の説明】
1 マイクロプロセッサ、2 IA(命令アドレスレジ
スタ)、3 命令メモリ、4,7 ADD(アドレス加
算器)、5 即値生成部、6 汎用レジスタ、8 演算
部、9 データメモリ、10,11,12 フリップフ
ロップ、13,14,15,16,17 MUX(マル
チプレクサ)、18 割込み制御部、19,100 命
令デコード部、20,102 制御レジスタ部、50
書込みマスク信号、51 読込み専用レジスタアドレ
ス、52,53,54 アドレスデコーダ、60 アド
レスデコード部、61 モードビット判定部、62 モ
ードビット判定結果、63 プロセッサ状態語レジスタ
(PSW)、81 SMフィールド、82 WPフィー
ルド、83 EAフィールド、84 DBフィールド、
85 DSフィールド、86 IEフィールド、87
RPフィールド、88MDフィールド、91 F0フラ
グ、92 F1フラグ。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 命令を実行するマイクロプロセッサにお
    いて、 一の命令を実行した結果を命令実行結果として保持する
    汎用レジスタと、 上記汎用レジスタを介すことなく上記命令実行結果を転
    送する経路であるバイパス経路と、 少なくとも汎用レジスタに保持された命令実行結果と、
    上記バイパス経路を介して転送された命令実行結果とを
    入力し、選択信号に基づいて入力された命令実行結果か
    ら一方の命令実行結果を選択して出力するするマルチプ
    レクサと、 上記汎用レジスタへ命令実行結果を書込み保持する書込
    み要求状態と、上記汎用レジスタへ命令実行結果を書込
    まず保持しない書込み停止状態とのいずれかの状態を示
    す値を記憶する保護フラグと、 上記保護フラグの値を入力し、上記保護フラグの値が書
    込み要求状態を示す場合には、汎用レジスタに保持され
    た命令実行結果を選択する選択信号を上記マルチプレク
    サへ出力し、上記保護フラグの値が書込み停止状態を示
    す場合には、バイパス経路を介して転送された命令実行
    結果を選択する選択信号を上記マルチプレクサへ出力し
    て命令実行結果を受け渡すとともに、命令実行結果を汎
    用レジスタへ書込むことを停止する制御を行う命令デコ
    ード部とを備えたことを特徴とするマイクロプロセッ
    サ。
  2. 【請求項2】 上記マイクロプロセッサは、更に、書込
    むことができない読込み専用の読込み専用レジスタを備
    え、 上記命令デコード部は、保護フラグの値が書込み要求状
    態を示す場合は、上記汎用レジスタのアドレスを汎用レ
    ジスタドレスとして生成し、上記保護フラグの値が書込
    み停止状態を示す場合は、上記読込み専用レジスタのア
    ドレスをレジスタアドレスとして生成するアドレスデコ
    ード部を備えたことを特徴とする請求項1記載のマイク
    ロプロセッサ。
  3. 【請求項3】 上記マイクロプロセッサは、更に、マイ
    クロプロセッサを制御する制御レジスタ部を備え、 上記保護フラグは、上記制御レジスタ部に備えられ、制
    御レジスタ部を更新する更新命令によって設定され、 上記命令デコード部は、上記制御レジスタ部から保護フ
    ラグの値を取得することを特徴とする請求項2記載のマ
    イクロプロセッサ。
  4. 【請求項4】 上記保護フラグは、命令を表現する命令
    コードの中にモードビットとして、上記命令コードを生
    成する時に設定され、 上記命令デコード部は、上記命令コードに設定されたモ
    ードビットの値を抽出し、抽出したモードビットの値に
    基づいて書込み要求状態または書込み停止状態のいずれ
    かの状態を判定するモードビット判定部を備え、 上記アドレスデコード部は、上記モードビット判定部の
    判定結果に基づいて汎用レジスタドレスを生成すること
    を特徴とする請求項2記載のマイクロプロセッサ。
  5. 【請求項5】 上記マイクロプロセッサは、更に、割込
    み処理を受け付ける割込み制御部を備え、 上記命令デコード部は、上記割込み制御部が割込み処理
    を受け付けた場合、上記制御レジスタ部に備えられた保
    護フラグを制御レジスタ部の更新命令により書込み停止
    状態に設定し、汎用レジスタの値を退避することなく割
    込み処理を実行することを特徴とする請求項3記載のマ
    イクロプロセッサ。
  6. 【請求項6】 上記命令デコード部は、上記一の命令に
    後続する後続命令へ上記命令実行結果を転送する場合
    に、上記バイパス経路を用いることによって、上記レジ
    スタを介することなく上記後続命令へ上記命令実行結果
    を指示する上記選択信号を出力することを特徴とする請
    求項3記載のマイクロプロセッサ。
  7. 【請求項7】 上記マイクロプロセッサは、パイプライ
    ン制御機構を備えたことを特徴とする請求項1から6い
    ずれかに記載のマイクロプロセッサ。
JP11161717A 1999-06-08 1999-06-08 マイクロプロセッサ Withdrawn JP2000347858A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11161717A JP2000347858A (ja) 1999-06-08 1999-06-08 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11161717A JP2000347858A (ja) 1999-06-08 1999-06-08 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JP2000347858A true JP2000347858A (ja) 2000-12-15

Family

ID=15740551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11161717A Withdrawn JP2000347858A (ja) 1999-06-08 1999-06-08 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2000347858A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053690A (ja) * 2010-09-01 2012-03-15 Canon Inc プロセッサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053690A (ja) * 2010-09-01 2012-03-15 Canon Inc プロセッサ

Similar Documents

Publication Publication Date Title
US8386754B2 (en) Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism
EP2241968A2 (en) System with wide operand architecture, and method
JP3881763B2 (ja) データ処理装置
JPH09311786A (ja) データ処理装置
US9081564B2 (en) Converting scalar operation to specific type of vector operation using modifier instruction
JP7105699B2 (ja) プログラム・ループ制御
CN108780396A (zh) 程序循环控制
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
JPH0496825A (ja) データ・プロセッサ
CN108885549A (zh) 分支指令
JPH0810428B2 (ja) データ処理装置
EP2309383A1 (en) System with wide operand architecture and method
JPH07120278B2 (ja) データ処理装置
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
US20070079076A1 (en) Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture
KR20190020036A (ko) 레지스터 복구 분기 명령
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
JPH10222368A (ja) データ処理装置
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
WO2004072848A9 (en) Method and apparatus for hazard detection and management in a pipelined digital processor
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
JP2710994B2 (ja) データ処理装置
JP2000207210A (ja) マイクロプロセッサ
JP2000347858A (ja) マイクロプロセッサ

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051011

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060905