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

マイクロプロセッサ

Info

Publication number
JPH07219769A
JPH07219769A JP6013422A JP1342294A JPH07219769A JP H07219769 A JPH07219769 A JP H07219769A JP 6013422 A JP6013422 A JP 6013422A JP 1342294 A JP1342294 A JP 1342294A JP H07219769 A JPH07219769 A JP H07219769A
Authority
JP
Japan
Prior art keywords
instruction
registers
data
register
destination
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
JP6013422A
Other languages
English (en)
Inventor
Hideki Ando
秀樹 安藤
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 JP6013422A priority Critical patent/JPH07219769A/ja
Priority to US08/384,975 priority patent/US5684983A/en
Publication of JPH07219769A publication Critical patent/JPH07219769A/ja
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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 複数の移動操作を同時に実行することができ
るマイクロプロセッサと、複数の移動操作のうちの1つ
を条件によって選択し、実行することができるマイクロ
プロセッサを提供する。 【構成】 2つのレジスタを読出すことができ、2つの
レジスタに書込むことができるレジスタ・ファイル11
を設ける。2つの入力をそのまま出力する機能を持つA
LU12を設ける。命令デコーダ4は、命令コードをデ
コードして、2つの移動元レジスタを示す信号dreg
1,dreg2と2つの移動先レジスタを示す信号sr
eg1,sreg2をレジスタ・ファイル11に与え
る。ALU12は、2つの移動元レジスタから読出され
たデータs1,s2をそのまま出力し、2つの移動先レ
ジスタに書込む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はマイクロプロセッサに
関し、特に、プログラムメモリのアドレスをプログラム
カウンタにより指定して命令情報を読出し、その命令情
報をデコードし、その命令情報に基づいて演算を実行す
るマイクロプロセッサに関する。
【0002】
【従来の技術】図18は、1サイクルに1つの命令しか
実行できない従来のマイクロプロセッサEのハードウエ
ア構成を示すブロック図である。図において、このマイ
クロプロセッサEは、複数のレジスタを含むレジスタ・
ファイル1と、算術論理演算装置(以下、ALUと記
す)2と、命令コードを保持する命令レジスタ3と、命
令コードをデコードする命令デコーダ4と、プログラム
・カウンタ5と、プログラムメモリ6と、コンディショ
ン・コードccを格納するレジスタ7と、条件テスト回
路8とを含む。レジスタ7に蓄えられるコンディション
・コードccは、ALU2の演算結果が負数であること
を表わすサイン・フラグと、ALU2の演算結果が0で
あることを表わすゼロ・フラグとを含む。
【0003】プログラムカウンタ5がプログラムメモリ
6のアドレスを指定すると、そのアドレスの命令コード
がプログラムメモリ6から読出される。プログラムメモ
リ6から読出された命令コードは命令レジスタ3に保持
される。命令デコーダ4は、命令レジスタ3に保持され
ている命令コードをデコードし、ALU2などに操作信
号を出力する。
【0004】命令レジスタ3に保持されている命令コー
ドが演算命令である場合、命令デコーダ4は、ALU2
での演算で使用される値を保持している2つのレジスタ
を示す信号sreg1,sreg2をレジスタ・ファイ
ル1に与え、それらのレジスタの値S1,S2をALU
2に出力させる。また、ALU2に所定の演算を行なわ
せる。さらに、ALU2の演算結果resultを書込
むレジスタ番号を示す信号dregをレジスタ・ファイ
ル1に与え、ALU2の演算結果resultをそのレ
ジスタに書込ませる。
【0005】命令レジスタ3に保持されている命令が分
岐命令である場合、命令デコーダ4は、条件テスト回路
8に分岐の条件(たとえば、ALU2の演算結果が0で
ないこと、あるいはALU2の演算結果が負数であるこ
と)を示す信号を与える。条件テスト回路8は、命令デ
コーダ4から与えられた条件とレジスタ7に格納されて
いるコンディション・コードccから条件が成立してい
るかどうかをテストする。条件が成立している場合は、
命令デコーダ4からの分岐先アドレスがプログラムカウ
ンタ5にセットされる。また、条件が成立していない場
合は、現在のプログラムカウント値に1を加えた値がプ
ログラムカウンタ5にセットされる。
【0006】このような命令は、外部からは記号言語で
入力される。たとえば、第1番目のレジスタr1と第2
番目のレジスタr2の内容を加算して第3番目のレジス
タr3に格納する加算命令は、r3=r1+r2なる言
語で命令される。また、第1番目のレジスタr1の内容
を第2番目のレジスタr2に移動させる移動操作は、加
算命令を利用し、r2=r1+r0なる言語で命令され
る。ただし、第0番目のレジスタr0は特別なレジスタ
であり、内容が0で書込むことができない読出専用のレ
ジスタである。移動操作の命令は、通常はr2=r1と
略記される。なお、一つの目的を達成するための一連の
命令をプログラムという。
【0007】記号言語による命令は、機械言語に変換さ
れて、プログラムメモリ6の所定のアドレスに命令コー
ドとして格納される。上述した加算命令の場合、命令コ
ード56は一般に、図19に示すように、フィールドと
呼ばれる4つの部分から構成されている。これらのうち
opフィールドには、ALU2での演算を指示するコー
ドが入る。上述した移動操作の命令では、加算を表わす
コードが入る。また、dstフィールドには、ALU2
の演算結果を格納するレジスタの番号を表わすコードが
入る。上述した移動操作の命令では、2を表わすコード
が入る。src1,src2フィールドには、ALU2
での演算で使用されるレジスタの番号を表わすコードが
入る。上述した移動操作の命令では、1,0を表わすコ
ードがそれぞれ入る。
【0008】次に、図18のマイクロプロセッサEと同
様の構成で、ALU2が2つ存在し、レジスタ・ファイ
ル1から4つのレジスタの内容を読出すことができ、2
つのレジスタに書込むことができるマイクロプロセッサ
を仮定する。また、このマイクロプロセッサは、演算命
令を1サイクル、ロード命令を2サイクル、分岐命令を
1サイクルで実行でき、2つの演算命令と、1つのロー
ド命令と、1つの分岐命令のうち、2つの命令を同時に
実行できるものとする。
【0009】図20に、このように仮定したマイクロプ
ロセッサによって実行されるプログラムを例示する。こ
のプログラムは7つの命令i1〜i7を含む。命令i
1,i5にはそれぞれラベルL1,L3が付されてい
る。ラベルL2が付されている命令は省略されている。
命令i1のr1=load r2は、ロード命令を表
し、第2番目のレジスタr2の内容をアドレスとしてデ
ータメモリ(図示せず)をアクセスし、そのアドレスに
格納されているデータを第1番目のレジスタr1に格納
する命令を表している。命令i2のnopは、何も実行
しない命令を表している。このマイクロプロセッサはロ
ード命令を2サイクルで実行すると仮定したので、この
サイクルでは他の命令を実行できないのである。命令i
3のr0=r1+r0は、第1番目のレジスタr1自身
の値によってコンディション・コードccをセットする
命令を表している。
【0010】命令i4のif(cc!=0) goto
L3は、分岐命令を表し、コンディション・コードc
cのゼロ・フラグがセットされていないとき、プログラ
ムがL3に移行し、そうでないときL2に移行する命令
を表している。すなわち、第1番目のレジスタr1の値
が0でないときプログラムがL3に移行し、そうでない
ときL2に移行する。命令i5のr3=r4+r5は、
加算命令を表し、第4番目のレジスタr4と第5番目の
レジスタr5の内容を加算して第3番目のレジスタr3
に格納する命令を表している。命令i6のr6=r3+
r7と、命令i7のr8=r6+r9も同様である。命
令i4でプログラムがL3に移行した場合、実行に要す
るサイクル数は7サイクルである。
【0011】上述の例では、仮定したマイクロプロセッ
サは2つの命令を並列に実行できる能力を持つが、この
プログラムでは各命令を直列に実行するほかなく、ハー
ドウエアの能力が生かされていない。各命令を直列に実
行しなければならない理由は以下のとおりである。すな
わち、命令i1の実行結果である第1番目のレジスタr
1の内容は命令i3で使用されるので、命令i3は命令
i1が実行を終了するまで実行を開始できない。命令i
4は命令i3の結果を使用するので、命令i3および命
令i4は直列に実行しなければならない。また、命令i
5の実行結果は命令i6で、命令i6の実行結果は命令
i7で使用されるので、命令i5,i6,i7は直列に
実行しなければならない。命令i1,i3,i4と命令
i5,i6,i7の間には、上記のようなレジスタ間の
依存関係はないが、命令i5,i6,i7は、命令i4
で分岐の方向がわからなければ実行すべきかどうかわか
らないので命令i1,i3と同時に実行することはでき
ない。もしも、命令i4で分岐の方向がわかる前に実行
すると、レジスタr3,r6,r8の書込まれる以前の
値が失われることになり、プログラムが命令i4を実行
した結果L2に移行し、それらのレジスタが参照された
場合、正しい結果が得られない。
【0012】ところで、命令i1,i3,i4と命令i
5,i6,i7は、上記理由で同時に実行することがで
きないのであるが、命令i5,i6,i7の書込レジス
タを、プログラムがL2に移行したときに、それ以降で
参照されないレジスタに変更すれば同時に実行すること
ができる。そして、実際に、プログラムがL3に移行し
た際に、本来結果を残しておくべきレジスタに値を移動
すればよい。この手法をレジスタ・リネーミングと呼
ぶ。
【0013】図21はレジスタ・リネーミングを用いた
場合のプログラムを示す図である。このプログラムは、
10の命令i1,i51;i2,i61;i3,i7
1;i4;i52,i62;i72を含み、6サイクル
で実行される。命令i1,i51;i52,i62には
それぞれラベルL1,L3が付されている。ラベルL2
が付されている命令は省略されている。命令i1,i
2,i3,i4,i52,i72は仮定した2つのAL
U2のうちの一方のALU2で実行され、命令i51,
i61,i71,i62はもう一方のALU2で実行さ
れる。命令i1〜i4は、図20で示したプログラムと
同じであるので説明は省略される。命令i1と同じサイ
クルで実行される命令i51のr10=r4+r5は、
第4番目のレジスタr4と第5番目のレジスタr5の内
容を加算して第10番目のレジスタr10に格納する命
令を表わす。命令i2と同じサイクルで実行される命令
i61のr11=r10+r7は、第10番目のレジス
タr10と第7番目のレジスタr7の内容を加算して第
11番目のレジスタr11に格納する命令を表わす。命
令i3と同じサイクルで実行される命令i71のr12
=r11+r9は、第11番目のレジスタr11と第9
番目のレジスタr9の内容を加算して第12番目のレジ
スタr12に格納する命令を表わす。命令i52のr3
=r10は、第10番目のレジスタr10の内容を第3
番目のレジスタr3に移動する命令を表わす。命令i5
2と同じサイクルで実行される命令i62のr6=r1
1は、第11番目のレジスタr11の内容を第6番目の
レジスタr6に移動する命令を表わす。命令i72のr
8=r12は、第12番目のレジスタr12の内容を第
8番目のレジスタr8に移動する命令を表わす。ここ
で、レジスタr10,r11,r12は、プログラムの
L2,L3以降で参照されないレジスタとする。
【0014】このプログラムでは、図20のプログラム
の命令i5の代わりに、1サイクル目の命令i51で演
算を行ないその結果をレジスタr10に書込んでいる。
レジスタr10は、プログラムのL2以降で参照されな
いレジスタなので、L2にプログラムが以降した場合、
ただ、参照されないだけでプログラムの実行に影響を及
ぼさない。プログラムがL3に移行した場合、レジスタ
r10の結果は、本来レジスタr3にあるべきであるの
で、命令i52でレジスタr10の値をレジスタr3に
移動する。命令i6,i7についても同様である。この
プログラムでは、L3にプログラムが移行した際に要す
るサイクル数は6サイクルであり、図20のプログラム
に比べて1サイクル短くなっている。
【0015】図22は2命令を並列に実行できると仮定
したマイクロプロセッサによって実行されるさらに他の
プログラムを示す図である。このプログラムは5サイク
ルの命令i1〜i5を含む。命令i1,i3,i5には
それぞれラベルL1,L2,L3が付されている。ラベ
ルL4が付されている命令は省略されている。命令i1
のr0=r2−r1は、第2番目のレジスタr2の内容
から第1番目のレジスタr1の内容を減算して、その結
果によりコンディション・コードccをセットする命令
を表している。命令i2のif(cc<0) goto
L3は、分岐命令を表し、コンディション・コードc
cのサイン・フラグがセットされているとき、プログラ
ムがL3に移行し、そうでないときプログラムがL2に
移行する命令を表している。すなわち、第1番目のレジ
スタr1の内容が第2番目のレジスタr2の内容よりも
大きいときはプログラムがL3に移行し、そうでないと
きL2に移行する。命令i3のr4=r2は、第2番目
のレジスタr2の内容を第4番目のレジスタr4に移動
する命令を表している。命令i4のgoto L4は、
プログラムがL4に移行する命令を表している。命令i
5のr4=r1は、第1番目のレジスタr1の内容を第
4番目のレジスタr4に移動する命令を表している。こ
のプログラムによれば第1番目のレジスタr1と第2番
目のレジスタr2の内容を比較して、大きい方を第4番
目のレジスタr4に格納することができる。しかし、こ
のプログラムにあっても、マイクロプロセッサはプログ
ラムの各命令を直列に実行する他なく、2つの命令を並
列に実行することができるというマイクロプロセッサの
能力が生かされていない。
【0016】
【発明が解決しようとする課題】図21のプログラムに
おいて2つの移動操作たとえば命令i52,i62を一
方のALU2で同時に実行することができれば、3つの
命令i52,i62,i72を1つのサイクルで実行す
ることができる。また、図22のプログラムにおいて、
条件(cc<0)に応じて命令i3,i5による2つの
移動操作を選択して実行することができれば、4つの命
令i2〜i5を1つのサイクルで実行することができ
る。
【0017】それゆえに、この発明の第1の目的は、複
数の移動操作を同時に実行することができるマイクロプ
ロセッサを提供することである。また、この発明の第2
の目的は、複数の移動操作のうちの1つを条件によって
選択し、実行することができるマイクロプロセッサを提
供することである。
【0018】
【課題を解決するための手段】請求項1の発明のマイク
ロプロセッサは、プログラムメモリのアドレスをプログ
ラムカウンタにより指定して命令情報を読出し、その命
令情報をデコードし、その命令情報に基づいて演算を実
行するマイクロプロセッサにおいて、それぞれの間でデ
ータの移動が可能な複数のレジスタを含むレジスタファ
イル、前記命令情報をデコードして、複数対のレジスタ
間でデータを移動させるための複数移動制御信号と、複
数対の移動元および移動先レジスタを示す移動元および
移動先指示信号を出力する命令デコーダ、および前記複
数移動制御信号に応じて、前記複数の移動元指示信号に
基づいた複数の移動元レジスタから読出されたデータの
各々を、前記複数の移動先指示信号に基づいた複数の移
動先レジスタに移動させる演算制御手段を備えたことを
特徴としている。
【0019】また、請求項1のマイクロプロセッサの前
記命令情報は、前記複数対のレジスタ間でデータを移動
させるための複数移動制御命令と、複数の移動元レジス
タの番号と、それと同数の移動先レジスタの番号を含む
こととしてもよい。
【0020】また、請求項1のマイクロプロセッサの前
記命令情報は、前記複数対のレジスタ間でデータを移動
させるための複数移動制御命令と、前記複数の移動元レ
ジスタの番号と、1つの定数を含み、前記命令デコーダ
は、前記複数の移動元レジスタの番号と前記1つの定数
から前記複数の移動先レジスタの番号を演算することと
してもよい。
【0021】また、請求項1のマイクロプロセッサの前
記命令情報は、前記複数対のレジスタ間でデータを移動
させるための複数移動制御命令と、前記複数の移動先レ
ジスタの番号と、1つの定数を含み、前記命令デコーダ
は、前記複数の移動先レジスタの番号と前記1つの定数
から前記複数の移動元レジスタの番号を演算することと
してもよい。
【0022】また、請求項1のマイクロプロセッサの前
記演算制御手段は、前記複数移動制御信号に応じて、前
記複数の移動元指示信号に基づいた複数の移動元レジス
タから読出されたデータのうちの1つを除く他のデータ
を遮断するゲート、前記ゲートによって遮断されなかっ
た1つのデータを受け、該データが読出された移動元レ
ジスタに対応する移動先レジスタに該データを移動させ
る演算器、および前記ゲートによって遮断される前記他
のデータの各々を、各データが読出された移動元レジス
タに対応する移動先レジスタに移動させる出力端を備え
てもよい。
【0023】また、請求項1のマイクロプロセッサの前
記演算制御手段は、前記命令情報に基づいた演算を実行
する演算器、前記演算器の出力と前記複数のレジスタか
ら読出されたデータのうちの1つのデータを受け、前記
複数移動制御信号に応じて、前記2つのデータを該デー
タが読出された移動元レジスタに対応する移動先レジス
タに移動させるセレクタ、および前記複数の移動元レジ
スタから読出されたデータのうち前記セレクタに入力さ
れる1つを除く他のデータの各々を、各データが読出さ
れた移動元レジスタに対応する移動先レジスタに移動さ
せる出力端を備えてもよい。
【0024】また、請求項7の発明のマイクロプロセッ
サは、プログラムメモリのアドレスをプログラムカウン
タにより指定して命令情報を読出し、その命令情報をデ
コードし、その命令情報に基づいて演算を実行するマイ
クロプロセッサにおいて、それぞれの間でデータの移動
が可能な複数のレジスタを含むレジスタファイル、前記
命令情報をデコードして、条件に依存して複数対のレジ
スタから1対のレジスタを選択させ、該1対のレジスタ
間でデータを移動させるための条件付移動制御信号と、
複数対の移動元および移動先レジスタを示す移動元およ
び移動先指示信号と、前記条件を示す条件指示信号を出
力する命令デコーダ、および前記条件付移動制御信号と
前記条件指示信号に応じて、前記複数対の移動元および
移動先指示信号から1対の信号を選択し、該移動元指示
信号に基づいた移動元レジスタから読出されたデータ
を、該移動先指示信号に基づいた移動先レジスタに移動
させる演算制御手段を備えたことを特徴としている。
【0025】また、請求項7のマイクロプロセッサの前
記命令情報は、前記条件に依存して複数対のレジスタか
ら1対のレジスタを選択させ、該1対のレジスタ間でデ
ータを移動させるための条件付移動制御命令と、前記複
数の移動元レジスタの番号と、それと同数の移動先レジ
スタの番号と、前記条件を含むこととしてもよい。
【0026】また、請求項7のマイクロプロセッサの前
記命令情報は、前記条件に依存して複数対のレジスタか
ら1対のレジスタを選択させ、該1対のレジスタ間でデ
ータを移動させるための条件付移動制御命令と、前記複
数の移動元レジスタの番号と、前記1つの移動先レジス
タの番号と、前記条件を含むこととしてもよい。
【0027】また、請求項7のマイクロプロセッサの前
記命令情報は、前記条件に依存して複数対のレジスタか
ら1対のレジスタを選択させ、該1対のレジスタ間でデ
ータを移動させるための条件付移動制御命令と、前記1
つの移動元レジスタの番号と、前記複数の移動先レジス
タの番号と、前記条件を含むこととしてもよい。
【0028】また、請求項11のマイクロプロセッサ
は、プログラムメモリのアドレスをプログラムカウンタ
により指定して命令情報を読出し、その命令情報をデコ
ードし、その命令情報に基づいて演算を実行するマイク
ロプロセッサにおいて、それぞれの間でデータの移動が
可能な複数のレジスタを含むレジスタファイル、前記命
令情報をデコードして、条件に依存して2対のレジスタ
から1対のレジスタを選択させ、該1対のレジスタ間で
データを移動させるための条件付移動制御信号と、2つ
の移動元レジスタを示す移動元指示信号と、1つの移動
先レジスタを示す移動先指示信号と、前記条件を示す条
件指示信号を出力する命令デコーダ、前記2つの移動元
指示信号に基づいた移動元レジスタから読出されたデー
タを受け、前記条件付移動制御信号に応じて前記2つの
データをパラメータとする所定の演算を行なった後、真
または偽信号に応じて前記2つのデータのうちの一方を
前記移動先指示信号に基づいた移動先レジスタに移動さ
せる演算制御手段、および前記演算制御手段の演算結果
が前記条件指示信号に基づいた条件を満たしているか否
かテストし、該テスト結果に応じて前記真または偽信号
を出力するテスト手段を備えたことを特徴としている。
【0029】また、請求項11のマイクロプロセッサの
前記命令情報は、前記条件に依存して2対のレジスタか
ら1対のレジスタを選択させ、該1対のレジスタ間でデ
ータを移動させるための条件付移動制御命令と、前記2
つの移動元レジスタの番号と、前記1つの移動先レジス
タの番号と、前記条件を含むこととしてもよい。
【0030】また、請求項11のマイクロプロセッサの
前記演算制御手段は、前記2つの移動元指示信号に基づ
いた移動元レジスタから読出されたデータを受け、前記
条件付移動制御信号に応じて前記2つのデータをパラメ
ータとする所定の演算を行なった後、前記2つのデータ
をそのまま出力させる演算器、および前記演算器から出
力された前記2つのデータを受け、前記真または偽信号
に応じて該2つのデータのうちの一方を前記移動先指示
信号に基づいた移動先レジスタに移動させるセレクタを
含むこととしてもよい。
【0031】また、請求項11のマイクロプロセッサの
前記演算制御手段は、前記2つの移動元指示信号に基づ
いた移動元レジスタから読出されたデータを受け、前記
条件付移動制御信号および真または偽信号に応じて前記
2つのデータのうちの一方を遮断するゲート、および前
記ゲートの出力を受け、前記条件付移動制御信号に応じ
て前記2つのデータをパラメータとする所定の演算を行
なった後、前記真または偽信号に応じて前記ゲートから
出力されたデータを前記移動先指示信号に基づいた移動
先レジスタに移動させる演算器を含むこととしてもよ
い。
【0032】また、請求項15の発明のマイクロプロセ
ッサは、プログラムメモリのアドレスをプログラムカウ
ンタにより指定して命令情報を読出し、その命令情報を
デコードし、その命令情報に基づいて演算を実行するマ
イクロプロセッサにおいて、それぞれの間でデータの移
動が可能な複数のレジスタを含むレジスタファイル、前
記命令情報をデコードして、条件に依存して2対のレジ
スタから1対のレジスタを選択させ、該1対のレジスタ
間でデータを移動させるための条件付移動制御信号と、
2つの移動元レジスタを示す移動元指示信号と、2つの
移動先レジスタを示す移動先指示信号と、前記条件を示
す条件指示信号を出力する命令デコーダ、真または偽信
号に応じて、前記2つの移動先指示信号のうちの一方を
選択する第1のセレクタ、前記2つの移動元指示信号に
基づいた移動元レジスタから読出されたデータを受け、
前記条件付移動制御信号に応じて前記2つのデータをパ
ラメータとする所定の演算を行なった後、真または偽信
号に応じて前記2つのデータのうちの一方を前記第1の
セレクタによって選択された移動先指示信号に基づいた
移動先レジスタに移動させる演算制御手段、および前記
演算制御手段の演算結果が前記条件指示信号に基づいた
条件を満たしているか否かテストし、該テスト結果に応
じて前記真または偽信号を出力するテスト手段を備えた
ことを特徴としている。
【0033】また、請求項15のマイクロプロセッサの
前記命令情報は、前記条件に依存して2対のレジスタか
ら1対のレジスタを選択させ、該1対のレジスタ間でデ
ータを移動させるための条件付移動制御命令と、前記2
つの移動元レジスタの番号と、前記2つの移動先レジス
タの番号と、前記条件を含むこととしてもよい。
【0034】また、請求項15のマイクロプロセッサの
前記演算制御手段は、前記2つの移動元指示信号に基づ
いた移動元レジスタから読出されたデータを受け、前記
条件付移動制御信号に応じて前記2つのデータをパラメ
ータとする所定の演算を行なった後、前記2つのデータ
をそのまま出力させる演算器、および前記演算器から出
力された前記2つのデータを受け、前記真または偽信号
に応じて該2つのデータのうちの一方を前記第1のセレ
クタによって選択された移動先指示信号に基づいた移動
先レジスタに移動させる第2のセレクタを含むこととし
てもよい。
【0035】また、請求項15のマイクロプロセッサの
前記演算制御手段は、前記2つの移動元指示信号に基づ
いた移動元レジスタから読出されたデータを受け、前記
条件付移動制御信号および真または偽信号に応じて前記
2つのデータのうちの一方を遮断するゲート、および前
記ゲートの出力を受け、前記条件付移動制御信号に応じ
て前記2つのデータをパラメータとする所定の演算を行
なった後、前記真または偽信号に応じて前記ゲートから
出力されたデータを前記第1のセレクタによって選択さ
れた移動先指示信号に基づいた移動先レジスタに移動さ
せる演算器を含むこととしてもよい。
【0036】
【作用】この発明の第1のマイクロプロセッサにあって
は、命令デコーダは、複数移動制御信号と、複数対の移
動元および移動先指示信号とを出力する。応じて、演算
制御手段は、複数の移動元指示信号に基づいた複数の移
動元レジスタのデータを、複数の移動先指示信号に基づ
いた複数の移動先レジスタにそのまま移動させる。した
がって、複数の移動操作を同時に実行できる。
【0037】また、この発明の第2のマイクロプロセッ
サにあっては、命令デコーダは、条件付移動制御信号
と、複数対の移動元および移動先指示信号と、条件指示
信号とを出力する。応じて、演算制御手段は、1対の移
動元および移動先指示信号を選択し、移動元指示信号に
基づいた移動元レジスタのデータを、移動先指示信号に
基づいた移動先レジスタに移動させる。したがって、複
数の移動操作のうちの1つを条件によって選択し実行で
きる。
【0038】
【実施例】
「実施例1」図1は請求項1の発明の一実施例によるマ
イクロプロセッサAのハードウエア構成を示すブロック
図である。このマイクロプロセッサAにあっては、AL
U12は、2つの出力result1,result2
を持つ。result1は、従来のALU2の出力と同
じであるが、result2は、単純に、入力の1つs
2をそのまま出力する。レジスタ・ファイル11は、従
来と同じく2つのレジスタの値S1,S2を読出すが、
2つのレジスタに書込むことができる。命令デコーダ4
は、2つの移動元レジスタを示す信号sreg1,sr
eg2と、2つの移動先レジスタを示す信号dreg
1,dreg2をレジスタ・ファイル11に与える。そ
の他の構成は図18に示した従来のマイクロプロセッサ
Eと同じであるので説明は省略される。
【0039】このようなマイクロプロセッサAは、2つ
の移動操作を同時に実行することができる。2つの移動
操作を実行させるための命令コード51は、図2に示す
ように、5つのフィールドを含む。たとえば、2つの移
動操作r2=r1,r4=r3を同時に実行させる場
合、opフィールドには、2つの移動操作を表わすコー
ドが入る。dst1フィールドおよびdst2フィール
ドには、移動先のレジスタの番号すなわち2および4を
表わすコード入る。src1フィールドおよびsrc2
フィールドには、移動元のレジスタの番号すなわち1お
よび3を表わすコードが入る。
【0040】図3は図1に示したマイクロプロセッサA
のALU12の構成を示すブロック図である。このAL
U12は、図18に示した従来のマイクロプロセッサE
のALU2と、ANDゲート61と、インバータゲート
62とを含む。一方の移動元レジスタからのデータs1
は、ALU2に与えられる。もう一方の移動元レジスタ
からのデータs2は、result2として直接出力さ
れるとともに、ANDゲート61の一方入力ノードに入
力される。命令デコーダ4からの「2つの移動操作を指
示する信号」は、ALU2に与えられるとともに、イン
バータゲート62を介してANDゲート61の他方入力
ノードに与えられる。ANDゲート61の出力はALU
2に与えられる。ALU2は、result1を出力す
る。「2つの移動操作を指示する信号」が1になると、
インバータゲート62の出力は0となり、ANDゲート
61の出力は0になる。ALU2は、「2つの移動操作
を指示する信号」に応答して、2つの入力s1,s2を
加算して出力する。したがって、result1にはs
1がそのまま出力され、result2にはs2がその
まま出力される。
【0041】図4は図1に示したマイクロプロセッサA
のALU12の他の構成を示すブロック図である。この
ALU12は、図18に示した従来のマイクロプロセッ
サEのALU2と、セレクタ31とを含む。ALU2
は、2つの移動元レジスタからのデータs1,s2を受
ける。セレクタ31は、一方の移動元レジスタからのデ
ータs1とALU2の出力とを受ける。また、もう一方
の移動元レジスタからのデータs2はresult2と
してそのまま出力される。セレクタ31は、「2つの移
動操作を指示する信号」が0のときはALU2の出力を
result1として出力し、「2つの移動操作を指示
する信号」が1となったときは一方の移動元レジスタか
らのデータs1をresult1として出力する。した
がって、「2つの移動操作を指示する信号」が1となっ
たときは、S1がresult1としてそのまま出力さ
れ、S2がresult2としてそのまま出力される。
【0042】次に、動作について説明する。命令デコー
ダ4は、2つの移動元レジスタを示す信号sreg1,
sreg2をレジスタ・ファイル1に与え、それらのレ
ジスタの値s1,s2をALU12に出力させる。ま
た、命令デコーダ4は、ALU12に「2つの移動操作
を指示する信号」を出力して、レジスタ・ファイル11
から入力されたs1,s2をresult1,resu
lt2としてそのまま出力させる。また、命令デコーダ
4は、ALU12の出力result1,result
2を移動させる移動先レジスタを示す信号dreg1,
dreg2をレジスタ・ファイル11に与え、ALU1
2の出力result1,result2をそれらのレ
ジスタに書込ませる。
【0043】次に、図1のマイクロプロセッサAと同様
の構成で、ALU12が2つ存在し、レジスタ・ファイ
ル11から4つのレジスタの内容を読出すことができ、
4つのレジスタに書込むことができるマイクロプロセッ
サを仮定する。また、このマイクロプロセッサは、演算
命令を1サイクル、ロード命令を2サイクル、分岐命令
を1サイクルで実行でき、2つの演算命令と、1つのロ
ード命令と、1つの分岐命令のうち、2つの命令を同時
にできるものとする。図5は仮定したマイクロプロセッ
サによって実行されるプログラムを示す図である。この
プログラムは9つの命令i1,i51;i2,i61;
i3,i71;i4;i52−62,i72を含み、5
サイクルで実行される。。命令i1,i2,i3,i
4,i52−62は仮定した2つのALU12のうちの
一方のALU12で実行され、命令i51,i61,i
71,i72はもう一方のALU12で実行される。命
令i1,i51;i2,i61;i3,i71;i4は
図21で示したプログラムと同じであるので説明は省略
される。
【0044】命令i52−62の(r3=r10;r6
=r11;)は、2つの移動操作を同時に実行する命令
を表しており、第10番目のレジスタr10の内容を第
3番目のレジスタr3に移動すると同時に、第11番目
のレジスタr11の内容を第6番目のレジスタr6に移
動する命令を表している。この命令i52−62と命令
i72は1つのサイクルで同時に実行される。したがっ
て、図21のプログラムに比べてさらに1サイクル短く
なっている。
【0045】この実施例のマイクロプロセッサAにおい
ては、命令デコーダ4は、「2つの移動操作を指示する
信号」、2つの移動元レジスタを示す信号sreg1,
sreg2、および2つの移動先レジスタを示す信号d
reg1,dreg2を出力する。レジスタ・ファイル
11は、信号sreg1,sreg2に応じたレジスタ
の値s1,s2を出力する。ALU2は、s1,s2を
result1,result2としてそのまま出力さ
せる。レジスタ・ファイル11は、result1,r
esult2を信号dreg1,dreg2に応じたレ
ジスタに書込む。したがって、2つの移動操作を1つの
ALU12で同時に実行できる。ALU12が2つ存在
し、レジスタ・ファイル11から4つのレジスタの内容
を読出すことができ、4つのレジスタに書込むことがで
きるマイクロプロセッサを仮定すれば、図21に示した
プログラムの3つの命令i52,i62,i72を1サ
イクルで実行でき、レジスタ・リネーミングを活用でき
る。 「実施例2」実施例1では、移動先のレジスタの指定を
命令コード51内で行なっていたので、従来の命令コー
ド56に比べて、命令コード51のフィールドが1つ多
いという欠点があった。本実施例では、この欠点をなく
すため、2つの移動操作を次のルールで行なうこととす
る。すなわち、レジスタrx,ryからは、それぞれレ
ジスタrf(x,m),レジスタrf(y,m)にしか
データ移動できないこととする。ただし、fはハードウ
エアで規定された関数であり、mは命令コードで指定す
る定数である。
【0046】命令コード52は、図6に示すように、4
つのフィールドを含む。opフィールドには、2つの移
動操作を表わすコードが入る。modifierフィー
ルドには、定数mを表わすコードが入る。src1フィ
ールドおよびsrc2フィールドには、ALU12での
演算で使用されるレジスタの番号を表わすコードが入
る。たとえば、関数fを排他的論理和としたとき、レジ
スタr2をレジスタr10に移動するためには、定数m
を8にする。この場合、同時に行なうことが許される移
動操作に使用されるレジスタは限られ、たとえばレジス
タr5はr13にしか移動できない。
【0047】
【数1】
【0048】レジスタ・リネーミングでは、このルール
に合うように、移動する命令の書込レジスタを変更す
る。たとえば、上記の例と同様、関数fを排他的論理和
とし、図20のプログラムで命令i5,i6を分岐命令
より先に実行することを決めた場合、次式を満たす
x,yで、レジスタrx,ryが同時に空きレジスタ
(プログラムがL2に移行してもL3に移行しても参照
されないレジスタ)となる定数mを見つける。
【0049】
【数2】
【0050】たとえば、x=11,y=14,m=8は
上式を満たし、レジスタr11,r14が空きレジ
スタであれば、r11,r14をレジスタr3,r6の
リネーム用レジスタとして使用する。
【0051】図7は上述した移動操作を含む命令を実行
するためのプログラムを示す図である。このプログラム
は9つの命令i1,i53;i2,i63;i3,i7
3;i4;i54−64,i74を含み、5サイクルで
実行される。命令i53,i63,i54−64以外は
図5に示したプログラムと同じであるので説明は省略さ
れる。命令i53においてはレジスタr4とレジスタr
5の加算結果が、リネーム用レジスタとして予め定めら
れたレジスタr11に格納される。命令i63において
はレジスタr10とレジスタr7の内容の加算結果が、
リネーム用レジスタとして予め定められたレジスタr1
4に格納される。命令i54−64においてはレジスタ
r11の内容がレジスタr3に移動され、レジスタr1
4の内容がレジスタr6に移動される。ただし、レジス
タr3,r6の番号3,6は、レジスタr11,r14
の番号11,14から演算された値である。
【0052】図8は上述した演算を行なう命令デコーダ
4の構成を示すブロック図である。この命令デコーダ4
は、2つの演算部20,21を含む。演算部20は、演
算dreg1=f(src1,modifier)を実
行する。また、演算部21は、演算dreg2=f(s
rc2,modifier)を実行する。すなわち、演
算部20は、命令コード52のmodifier領域及
びsrcl領域の定数m(上述の実施例では8)を表わ
すコード及び移動元のレジスタのレジスタ番号(上述の
例では11)を表わすコードを受け、移動先のレジスタ
のレジスタ番号(上述の例ではレジスタ番号が3のレジ
スタ)を示す信号dreg1を出力する。演算部21
は、命令コード52のmodifier領域及びsrc
l領域の定数mを表わすコード及び移動元のレジスタの
レジスタ番号(上述の例では14)を表わすコードを受
けて、移動先のレジスタ(上述の例ではレジスタ番号が
6のレジスタ)を示す信号dreg2を出力する。ま
た、srclフィールド及びsrc2フィールドの移動
元のレジスタのレジスタ番号を表わすコードは従来と同
様にそのままデコードされ、移動元のレジスタ(上述の
例ではレジスタ番号が11及び14のレジスタ)を示す
信号sreg1,sreg2となる。
【0053】この実施例においては、移動元レジスタの
番号を表わすコードと定数mを表わすコードから移動元
レジスタの番号を示す信号sreg1,sreg2、お
よび移動先レジスタの番号を示す信号dreg1,dr
eg2を演算するので、従来の命令コード56と同じフ
ィールド数の命令コード52で2つの移動操作を命令で
きる。
【0054】なお、この実施例では移動元のレジスタの
レジスタ番号を表わすコードおよび定数modifie
rを表わすコードから移動先のレジスタを示す信号dr
eg1,dreg2を演算することとしたが、逆に移動
先のレジスタのレジスタ番号を表わすコードおよび定数
modifierを表わすコードから移動元のレジスタ
を示す信号sreg1,sreg2を演算してもよい。
この場合命令コード53は、図9に示すように、4つの
フィールドを含む。opフィールドには、複数の移動操
作を表わすコードが入る。modifierフィールド
には、定数modifierの値を表わすコードが入
る。dst1フィールドおよびdst2フィールドに
は、移動先のレジスタのレジスタ番号を表わすコードが
入る。デコーダ4の演算部20は、図10に示すよう
に、命令コード53のmodifierフィールドとd
st1フィールドの内容を演算しデコードして移動元の
レジスタを示す信号sreg1を出力する。また、演算
部21は、命令コード53のmodifierフィール
ドとdst2フィールドの内容を演算しデコードして移
動元のレジスタを示す信号sreg2を出力する。ま
た、dstフィールドおよびdst2フィールドの内容
はそのままデコードされて、移動先のレジスタを示す信
号dreg1,dreg2となる。 「実施例3」図11は請求項10の発明の一実施例によ
るマイクロプロセッサBのハードウエア構成を示すブロ
ック図である。このマイクロプロセッサBは、図1で示
したマイクロプロセッサAに2つのセレクタ32,33
を付加したものである。セレクタ33は、条件テスト回
路8の出力に応じて、2つの移動先レジスタを示す信号
dreg1,dreg2のうちの1つを選択し、その選
択結果dregをレジスタ・ファイル1に出力する。セ
レクタ32は、条件テスト回路8の出力に応じて、AL
U12の2つの出力result1,result2の
うちの1つを選択し、その選択結果resultをレジ
スタ・ファイル1に出力する。
【0055】なお、セレクタ33を設けた結果、レジス
タ・ファイル1は図18で示した従来のマイクロプロセ
ッサEと同じものが用いられている。
【0056】このマイクロプロセッサBの命令コード5
4は、図12に示すように、図2で示した命令コード5
1にcondフィールドを付加したものである。すなわ
ち、この命令コード54は、opフィールド、dst1
フィールド、dst2フィールド、src1フィール
ド、src2フィールド及びcondフィールドを含
む。opフィールドには、条件によって移動操作を行な
う命令を表わすコードが入る。dst1フィールドおよ
びdst2フィールドには、移動先のレジスタのレジス
タ番号を表わすコードが入る。src1フィールドおよ
びsrc2フィールドには、移動元のレジスタのレジス
タ番号を表わすコードが入る。condフィールドに
は、条件(!=0,<0など)を表わすコードが入る。
コンディション・コードccを参照し、もしも、con
dフィールドのコードで表わされる条件が成立している
ときは、src1フィールドのコードで表わされるレジ
スタの内容をdst1フィールドのコードで表わされる
レジスタに移動する。条件が成立していないときは、s
rc2フィールドのコードで表わされるレジスタの内容
をdst2フィールドのコードで表わされるレジスタに
移動する。
【0057】詳しく説明すると、条件によって移動操作
を行なう命令が実行される際、コンディション・コード
ccの内容でcondフィールドのコードで表わされる
条件が成立するかどうかを、条件テスト回路8で評価
し、その評価結果が真であれば、セレクタ32はres
ult1を、セレクタ33はdreg1を選択し出力す
る。これにより、src1フィールドのコードで表わさ
れるレジスタの内容のdst1フィールドのコードで表
わされるレジスタへの移動が行なわれ、src2フィー
ルドのコードで表わされるレジスタの内容のdst2フ
ィールドのコードで表わされるレジスタへの移動は行な
われない。逆に、条件テスト回路8の評価結果が偽の場
合は、セレクタ32はresult2を、セレクタ33
はdreg2を選択し出力し、src2フィールドのコ
ードで表わされるレジスタの内容のdst2フィールド
のコードで表わされるレジスタへの移動が行なわれ、s
rc1フィールドのコードで表わされるレジスタの内容
のdst1フィールドで示されるレジスタへの移動は行
なわれない。
【0058】図22で示した「レジスタr1とレジスタ
r2の内容を比較して、大きい方をレジスタr4に格納
する」プログラムは、ここで示した方法を用いると、図
13のようになる。このプログラムは2つの命令i1,
i9を含み、2サイクルで実行される。i1にはラベル
L1が付されている。ラベルL4が付されている命令は
省略されている。命令i1は図22で示したプログラム
と同じであるので説明は省略される。
【0059】命令i9のif(cc<0) r4=r
1;else r4=r2は、コンディション・コード
ccのサイン・フラグがセットされているとき、第1番
目のレジスタr1の内容を第4番目のレジスタr4に移
動し、そうでないときは第2番目のレジスタr2の内容
を第4番目のレジスタr4に移動することを表してい
る。このプログラムは2サイクルで実行でき、図22の
場合に比べて1〜2サイクル短くなっている。
【0060】この実施例のマイクロプロセッサBにおい
ては、命令コード54は、条件によって移動操作を行な
う命令を表わすコード、2対の移動元および移動先レジ
スタの番号を表わすコード、条件を表わすコードを含
み、これに応じて命令デコーダ4は、条件に応じて1対
の移動元および移動先レジスタを選択させ、両レジスタ
間で移動操作を実行させる。すなわち、2つの移動操作
のうちの1つを条件によって選択し実行できる。 「実施例4」図14は請求項7の発明の一実施例による
マイクロプロセッサCのハードウエア構成を示すブロッ
ク図である。このマイクロプロセッサCは、図11で示
したマイクロプロセッサBにおいて、移動操作の書込レ
ジスタを最初から1つに固定したものである。したがっ
て、マイクロプロセッサBのセレクタ33は、移動先を
選択する必要がないので、省略されている。この制限に
よって、このマイクロプロセッサCでは、別々な移動先
を持つ2つの移動命令を1つの命令にすることはできな
いが、図15に示すように、命令コード55のフィール
ドをマイクロプロセッサBの命令コード54よりも1つ
少なくすることができる。図13に示したプログラムで
は、命令コード54の各フィールドは以下のようにな
る。opフィールドには、条件によって移動操作を行な
う命令を表わすコードが入る。dstフィールドには、
移動先のレジスタのレジスタ番号すなわち4を表わすコ
ードが入る。src1フィールドおよびsrc2フィー
ルドには、移動元のレジスタのレジスタ番号すなわち
1,2を表わすコードが入る。condフィールドに
は、条件すなわち<0を表わすコードが入る。
【0061】この実施例のマイクロプロセッサCにおい
ては、移動先のレジスタを最初から1つに固定したの
で、図11に示したマイクロプロセッサBに比べハード
ウェア構成および命令コード55の構成を簡単化でき
る。 「実施例5」図16は請求項10の発明の他の実施例に
よるマイクロプロセッサDのハードウエア構成を示すブ
ロック図である。このマイクロプロセッサDは、図11
に示したマイクロプロセッサBにおけるALU12およ
びセレクタ32をALU22で置換したものである。こ
のALU22は、条件テスト回路8の出力に応じて、出
力resultを切換える。すなわち、条件テスト回路
8の出力する値が1(真)であるときはresult=
s1+0を出力し、条件テスト回路8の出力する値が0
(偽)であるときはresult=s2+0を出力す
る。
【0062】これを実現するためには、従来のALU2
の入力y1,y2を次のような論理とし、ALU2で加
算を行なえばよい。
【0063】
【表1】
【0064】したがって、
【0065】
【数3】
【0066】となる。これを論理図で表わすと図17の
ようになる。すなわち、ALU22は、ALU2と、2
つのANDゲート71,72と、2つのNORゲート7
3,74と、2つのインバータゲート75,76により
構成される。NORゲート73は、「条件テスト回路の
出力値」と、インバータ75によって反転された「条件
付移動操作を指示する信号」を受ける。NORゲート7
4は、インバータ76によって反転された「条件テスト
回路の出力値」と、インバータ75によって反転された
「条件付移動操作を指示する信号」を受ける。ANDゲ
ート71は、一方の移動元レジスタからのデータs1
と、NORゲート73の出力を受ける。ANDゲート7
2は、もう一方の移動元レジスタのデータs2と、NO
Rゲート74の出力を受ける。ALU2は、ANDゲー
ト71,72の出力y1,y2を受け、レジスタファイ
ル1にresultを出力する。
【0067】「条件付移動操作を指示する信号」が0の
ときは、インバータゲート75の出力が1となり、NO
Rゲート73,74の出力は1となる。したがってAN
Dゲート71,72は、移動元レジスタからのデータs
1,s2をそのまま出力する。「条件付移動操作を指示
する信号」が1であって「条件テスト回路の出力値」が
1であるときは、NORゲート73の出力が1となり、
NORゲート74の出力が0となる。したがって、AN
Dゲート71がデータs1を出力し、ANDゲート72
の出力は0となる。「条件付移動操作を指示する信号」
が1であって「条件テスト回路の出力」が0であるとき
は、NORゲート73の出力が0となり、NORゲート
74の出力が1となる。したがって、ANDゲート72
がデータs2をそのまま出力し、ANDゲート71の出
力は0となる。
【0068】ALU2は、「条件付移動操作を指示する
信号」が0のときは通常の演算を行なう。また、「条件
付移動操作を指示する信号」が1になったときは、AN
Dゲート71,72の出力y1,y2を加算して出力す
る。したがって、「条件付移動操作を指示する信号」が
1である場合において、「条件テスト回路の出力値」が
1であるときはALU2の出力はS1となり、「条件テ
スト回路の出力値」が0であるときはALU2の出力は
S2となる。
【0069】この実施例のマイクロプロセッサDにおい
ては、従来のマイクロプロセッサEのALU2を用い
て、2つの移動操作のうちの1つを条件によって選択
し、実行できる。
【0070】
【発明の効果】以上のように、この発明の第1のマイク
ロプロセッサにあっては、命令デコーダは、複数移動制
御信号と、複数対の移動元および移動先指示信号とを出
力し、演算制御手段は、複数の移動元指示信号に基づい
た複数の移動元レジスタのデータを、複数の移動先指示
信号に基づいた複数の移動先レジスタにそのまま移動さ
せる。したがって、複数の移動操作を同時に実行でき
る。特に、レジスタ・リネーミングによって生じる複数
の移動操作を一度に実行でき、レジスタ・リネーミング
による性能向上をさらに促進することができる。
【0071】また、この発明の第2のマイクロプロセッ
サにあっては、命令デコーダは、条件付移動制御信号
と、複数対の移動元および移動先指示信号と、条件指示
信号とを出力し、演算制御手段は、1対の移動元および
移動先指示信号を選択し、移動元指示信号に基づいた移
動元レジスタのデータを、移動先指示信号に基づいた移
動先レジスタに移動させる。したがって、複数の移動操
作のうちの1つを条件によって選択し実行できる。
【図面の簡単な説明】
【図1】請求項1の発明の一実施例によるマイクロプロ
セッサのハードウエア構成を示すブロック図である。
【図2】図1に示したマイクロプロセッサの命令コード
の構成を示すブロック図である。
【図3】図1に示したマイクロプロセッサのALUの構
成を示すブロック図である。
【図4】図1に示したマイクロプロセッサのALUの他
の構成を示すブロック図である。
【図5】図1に示したマイクロプロセッサと同様の構成
で2つの命令を並列に実行できると仮定したマイクロプ
ロセッサが実行するプログラムを示す図である。
【図6】請求項1の発明の他の実施例によるマイクロプ
ロセッサの命令コードを示すブロック図である。
【図7】図6に示した命令コードに対応する命令を含む
プログラムを示す図である。
【図8】図6に示した命令コードをデコードする命令デ
コーダの構成を示すブロック図である。
【図9】請求項1の発明のさらに他の実施例によるマイ
クロプロセッサの命令コードを示すブロック図である。
【図10】図9に示した命令コードをデコードする命令
デコーダの構成を示すブロック図である。
【図11】請求項10の発明の一実施例によるマイクロ
プロセッサのハードウエア構成を示すブロック図であ
る。
【図12】図11に示したマイクロプロセッサの命令コ
ードの構成を示すブロック図である。
【図13】図12に示した命令コードに対応する命令を
含むプログラムを示す図である。
【図14】請求項7の発明の一実施例によるマイクロプ
ロセッサのハードウエア構成を示すブロック図である。
【図15】図14に示したマイクロプロセッサの命令コ
ードの構成を示すブロック図である。
【図16】請求項10の発明の他の実施例によるマイク
ロプロセッサのハードウエア構成を示すブロック図であ
る。
【図17】図16に示したマイクロプロセッサのALU
の構成を示すブロック図である。
【図18】従来のマイクロプロセッサのハードウエア構
成を示すブロック図である。
【図19】図18に示したマイクロプロセッサの命令コ
ードの構成を示すブロック図である。
【図20】図18に示したマイクロプロセッサと同様の
構成で2つの命令を並列に実行できると仮定したマイク
ロプロセッサが実行するプログラムを示す図である。
【図21】図18に示したマイクロプロセッサと同様の
構成で2つの命令を並列に実行できると仮定したマイク
ロプロセッサが実行するレジスタ・リネーミングを用い
たプログラムを示す図である。
【図22】図18に示したマイクロプロセッサと同様の
構成で2つの命令を並列に実行できると仮定したマイク
ロプロセッサのさらに他のプログラムを示す図である。
【符号の説明】
1,11 レジスタ・ファイル 2,12,22 ALU 3 命令レジスタ 4 命令デコーダ 5 プログラム・カウンタ 6 プログラムメモリ 7 コンディション・コードを格納するレジスタ 8 条件テスト回路 31,32,33 セレクタ 51,52,53,54,55,56 命令コード dreg,dreg1,dreg2 移動先のレジスタ
を示す信号 sreg1,sreg2 移動元のレジスタを示す信号

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 プログラムメモリのアドレスをプログラ
    ムカウンタにより指定して命令情報を読出し、その命令
    情報をデコードし、その命令情報に基づいて演算を実行
    するマイクロプロセッサにおいて、 それぞれの間でデータの移動が可能な複数のレジスタを
    含むレジスタファイル、 前記命令情報をデコードして、複数対のレジスタ間でデ
    ータを移動させるための複数移動制御信号と、複数対の
    移動元および移動先レジスタを示す移動元および移動先
    指示信号を出力する命令デコーダ、および前記複数移動
    制御信号に応じて、前記複数の移動元指示信号に基づい
    た複数の移動元レジスタから読出されたデータの各々
    を、前記複数の移動先指示信号に基づいた複数の移動先
    レジスタに移動させる演算制御手段を備えたことを特徴
    とする、マイクロプロセッサ。
  2. 【請求項2】 前記命令情報は、前記複数対のレジスタ
    間でデータを移動させるための複数移動制御命令と、複
    数の移動元レジスタの番号と、それと同数の移動先レジ
    スタの番号を含むことを特徴とする、請求項1に記載の
    マイクロプロセッサ。
  3. 【請求項3】 前記命令情報は、前記複数対のレジスタ
    間でデータを移動させるための複数移動制御命令と、前
    記複数の移動元レジスタの番号と、1つの定数を含み、 前記命令デコーダは、前記複数の移動元レジスタの番号
    と前記1つの定数から前記複数の移動先レジスタの番号
    を演算することを特徴とする、請求項1に記載のマイク
    ロプロセッサ。
  4. 【請求項4】 前記命令情報は、前記複数対のレジスタ
    間でデータを移動させるための複数移動制御命令と、前
    記複数の移動先レジスタの番号と、1つの定数を含み、 前記命令デコーダは、前記複数の移動先レジスタの番号
    と前記1つの定数から前記複数の移動元レジスタの番号
    を演算することを特徴とする、請求項1に記載のマイク
    ロプロセッサ。
  5. 【請求項5】 前記演算制御手段は、 前記複数移動制御信号に応じて、前記複数の移動元指示
    信号に基づいた複数の移動元レジスタから読出されたデ
    ータのうちの1つを除く他のデータを遮断するゲート、 前記ゲートによって遮断されなかった1つのデータを受
    け、該データが読出された移動元レジスタに対応する移
    動先レジスタに該データを移動させる演算器、および前
    記ゲートによって遮断される前記他のデータの各々を、
    各データが読出された移動元レジスタに対応する移動先
    レジスタに移動させる出力端を備えたことを特徴とす
    る、請求項1ないし4のいずれかに記載のマイクロプロ
    セッサ。
  6. 【請求項6】 前記演算制御手段は、 前記命令情報に基づいた演算を実行する演算器、 前記演算器の出力と前記複数のレジスタから読出された
    データのうちの1つのデータを受け、前記複数移動制御
    信号に応じて、前記1つのデータを該データが読出され
    た移動元レジスタに対応する移動先レジスタに移動させ
    るセレクタ、および前記複数の移動元レジスタから読出
    されたデータのうち前記セレクタに入力される1つを除
    く他のデータの各々を、各データが読出された移動元レ
    ジスタに対応する移動先レジスタに移動させる出力端を
    備えたことを特徴とする、請求項1ないし4のいずれか
    に記載のマイクロプロセッサ。
  7. 【請求項7】 プログラムメモリのアドレスをプログラ
    ムカウンタにより指定して命令情報を読出し、その命令
    情報をデコードし、その命令情報に基づいて演算を実行
    するマイクロプロセッサにおいて、 それぞれの間でデータの移動が可能な複数のレジスタを
    含むレジスタファイル、 前記命令情報をデコードして、条件に依存して複数対の
    レジスタから1対のレジスタを選択させ、該1対のレジ
    スタ間でデータを移動させるための条件付移動制御信号
    と、複数対の移動元および移動先レジスタを示す移動元
    および移動先指示信号と、前記条件を示す条件指示信号
    を出力する命令デコーダ、および前記条件付移動制御信
    号と前記条件指示信号に応じて、前記複数対の移動元お
    よび移動先指示信号から1対の信号を選択し、該移動元
    指示信号に基づいた移動元レジスタから読出されたデー
    タを、該移動先指示信号に基づいた移動先レジスタに移
    動させる演算制御手段を備えたことを特徴とする、マイ
    クロプロセッサ。
  8. 【請求項8】 前記命令情報は、前記条件に依存して複
    数対のレジスタから1対のレジスタを選択させ、該1対
    のレジスタ間でデータを移動させるための条件付移動制
    御命令と、前記複数の移動元レジスタの番号と、それと
    同数の移動先レジスタの番号と、前記条件を含むことを
    特徴とする、請求項7に記載のマイクロプロセッサ。
  9. 【請求項9】 前記命令情報は、前記条件に依存して複
    数対のレジスタから1対のレジスタを選択させ、該1対
    のレジスタ間でデータを移動させるための条件付移動制
    御命令と、前記複数の移動元レジスタの番号と、前記1
    つの移動先レジスタの番号と、前記条件を含むことを特
    徴とする、請求項7に記載のマイクロプロセッサ。
  10. 【請求項10】 前記命令情報は、前記条件に依存して
    複数対のレジスタから1対のレジスタを選択させ、該1
    対のレジスタ間でデータを移動させるための条件付移動
    制御命令と、前記1つの移動元レジスタの番号と、前記
    複数の移動先レジスタの番号と、前記条件を含むことを
    特徴とする、請求項7に記載のマイクロプロセッサ。
  11. 【請求項11】 プログラムメモリのアドレスをプログ
    ラムカウンタにより指定して命令情報を読出し、その命
    令情報をデコードし、その命令情報に基づいて演算を実
    行するマイクロプロセッサにおいて、 それぞれの間でデータの移動が可能な複数のレジスタを
    含むレジスタファイル、 前記命令情報をデコードして、条件に依存して2対のレ
    ジスタから1対のレジスタを選択させ、該1対のレジス
    タ間でデータを移動させるための条件付移動制御信号
    と、2つの移動元レジスタを示す移動元指示信号と、1
    つの移動先レジスタを示す移動先指示信号と、前記条件
    を示す条件指示信号を出力する命令デコーダ、 前記2つの移動元指示信号に基づいた移動元レジスタか
    ら読出されたデータを受け、前記条件付移動制御信号に
    応じて前記2つのデータをパラメータとする所定の演算
    を行なった後、真または偽信号に応じて前記2つのデー
    タのうちの一方を前記移動先指示信号に基づいた移動先
    レジスタに移動させる演算制御手段、および前記演算制
    御手段の演算結果が前記条件指示信号に基づいた条件を
    満たしているか否かテストし、該テスト結果に応じて前
    記真または偽信号を出力するテスト手段を備えたことを
    特徴とする、マイクロプロセッサ。
  12. 【請求項12】 前記命令情報は、前記条件に依存して
    2対のレジスタから1対のレジスタを選択させ、該1対
    のレジスタ間でデータを移動させるための条件付移動制
    御命令と、前記2つの移動元レジスタの番号と、前記1
    つの移動先レジスタの番号と、前記条件を含むことを特
    徴とする、請求項11に記載のマイクロプロセッサ。
  13. 【請求項13】 前記演算制御手段は、 前記2つの移動元指示信号に基づいた移動元レジスタか
    ら読出されたデータを受け、前記条件付移動制御信号に
    応じて前記2つのデータをパラメータとする所定の演算
    を行なった後、前記2つのデータをそのまま出力させる
    演算器、および前記演算器から出力された前記2つのデ
    ータを受け、前記真または偽信号に応じて該2つのデー
    タのうちの一方を前記移動先指示信号に基づいた移動先
    レジスタに移動させるセレクタを含むことを特徴とす
    る、請求項11または12に記載のマイクロプロセッ
    サ。
  14. 【請求項14】 前記演算制御手段は、 前記2つの移動元指示信号に基づいた移動元レジスタか
    ら読出されたデータを受け、前記条件付移動制御信号お
    よび真または偽信号に応じて前記2つのデータのうちの
    一方を遮断するゲート、および前記ゲートの出力を受
    け、前記条件付移動制御信号に応じて前記2つのデータ
    をパラメータとする所定の演算を行なった後、前記真ま
    たは偽信号に応じて前記ゲートから出力されたデータを
    前記移動先指示信号に基づいた移動先レジスタに移動さ
    せる演算器を含むことを特徴とする、請求項11または
    12に記載のマイクロプロセッサ。
  15. 【請求項15】 プログラムメモリのアドレスをプログ
    ラムカウンタにより指定して命令情報を読出し、その命
    令情報をデコードし、その命令情報に基づいて演算を実
    行するマイクロプロセッサにおいて、 それぞれの間でデータの移動が可能な複数のレジスタを
    含むレジスタファイル、 前記命令情報をデコードして、条件に依存して2対のレ
    ジスタから1対のレジスタを選択させ、該1対のレジス
    タ間でデータを移動させるための条件付移動制御信号
    と、2つの移動元レジスタを示す移動元指示信号と、2
    つの移動先レジスタを示す移動先指示信号と、前記条件
    を示す条件指示信号を出力する命令デコーダ、 真または偽信号に応じて、前記2つの移動先指示信号の
    うちの一方を選択する第1のセレクタ、 前記2つの移動元指示信号に基づいた移動元レジスタか
    ら読出されたデータを受け、前記条件付移動制御信号に
    応じて前記2つのデータをパラメータとする所定の演算
    を行なった後、真または偽信号に応じて前記2つのデー
    タのうちの一方を前記第1のセレクタによって選択され
    た移動先指示信号に基づいた移動先レジスタに移動させ
    る演算制御手段、および前記演算制御手段の演算結果が
    前記条件指示信号に基づいた条件を満たしているか否か
    テストし、該テスト結果に応じて前記真または偽信号を
    出力するテスト手段を備えたことを特徴とする、マイク
    ロプロセッサ。
  16. 【請求項16】 前記命令情報は、前記条件に依存して
    2対のレジスタから1対のレジスタを選択させ、該1対
    のレジスタ間でデータを移動させるための条件付移動制
    御命令と、前記2つの移動元レジスタの番号と、前記2
    つの移動先レジスタの番号と、前記条件を含むことを特
    徴とする、請求項15に記載のマイクロプロセッサ。
  17. 【請求項17】 前記演算制御手段は、 前記2つの移動元指示信号に基づいた移動元レジスタか
    ら読出されたデータを受け、前記条件付移動制御信号に
    応じて前記2つのデータをパラメータとする所定の演算
    を行なった後、前記2つのデータをそのまま出力させる
    演算器、および前記演算器から出力された前記2つのデ
    ータを受け、前記真または偽信号に応じて該2つのデー
    タのうちの一方を前記第1のセレクタによって選択され
    た移動先指示信号に基づいた移動先レジスタに移動させ
    る第2のセレクタを含むことを特徴とする、請求項15
    または16に記載のマイクロプロセッサ。
  18. 【請求項18】 前記演算制御手段は、 前記2つの移動元指示信号に基づいた移動元レジスタか
    ら読出されたデータを受け、前記条件付移動制御信号お
    よび真または偽信号に応じて前記2つのデータのうちの
    一方を遮断するゲート、および前記ゲートの出力を受
    け、前記条件付移動制御信号に応じて前記2つのデータ
    をパラメータとする所定の演算を行なった後、前記真ま
    たは偽信号に応じて前記ゲートから出力されたデータを
    前記第1のセレクタによって選択された移動先指示信号
    に基づいた移動先レジスタに移動させる演算器を含むこ
    とを特徴とする、請求項15または16に記載のマイク
    ロプロセッサ。
JP6013422A 1994-02-07 1994-02-07 マイクロプロセッサ Withdrawn JPH07219769A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6013422A JPH07219769A (ja) 1994-02-07 1994-02-07 マイクロプロセッサ
US08/384,975 US5684983A (en) 1994-02-07 1995-02-07 Microprocessor executing multiple register transfer operations with a single instruction with derivation of destination register numbers from source register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6013422A JPH07219769A (ja) 1994-02-07 1994-02-07 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH07219769A true JPH07219769A (ja) 1995-08-18

Family

ID=11832702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6013422A Withdrawn JPH07219769A (ja) 1994-02-07 1994-02-07 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US5684983A (ja)
JP (1) JPH07219769A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006126449A1 (ja) 2005-05-26 2006-11-30 Nec Corporation 情報処理装置および命令実行方法
CN111860803A (zh) * 2019-04-27 2020-10-30 中科寒武纪科技股份有限公司 分形计算装置、方法、集成电路及板卡
US11841822B2 (en) 2019-04-27 2023-12-12 Cambricon Technologies Corporation Limited Fractal calculating device and method, integrated circuit and board card

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH096614A (ja) * 1995-06-21 1997-01-10 Sanyo Electric Co Ltd データ処理装置
JP3630804B2 (ja) * 1995-11-30 2005-03-23 三洋電機株式会社 データ処理装置
JPH09305401A (ja) * 1996-05-13 1997-11-28 Mitsubishi Electric Corp コンピュータ及びコンパイラ
JPH1196002A (ja) 1997-09-18 1999-04-09 Sanyo Electric Co Ltd データ処理装置
US6345355B1 (en) 1998-05-29 2002-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributing commands to a plurality of circuit blocks
JP2001202243A (ja) * 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
US6408380B1 (en) * 1999-05-21 2002-06-18 Institute For The Development Of Emerging Architectures, L.L.C. Execution of an instruction to load two independently selected registers in a single cycle
US6327697B1 (en) 1999-06-28 2001-12-04 Sun Microsystems, Inc. Method for routing conductive paths in an integrated circuit
US7206925B1 (en) 2000-08-18 2007-04-17 Sun Microsystems, Inc. Backing Register File for processors
US6757807B1 (en) 2000-08-18 2004-06-29 Sun Microsystems, Inc. Explicitly clustered register file and execution unit architecture
EP1986122A1 (fr) * 2007-04-23 2008-10-29 Stmicroelectronics Sa Unite de traitement securisee

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2816248B2 (ja) * 1989-11-08 1998-10-27 株式会社日立製作所 データプロセッサ
JP2665081B2 (ja) * 1991-07-08 1997-10-22 三菱電機株式会社 マイクロコンピュータのレジスタ間データ転送方式
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006126449A1 (ja) 2005-05-26 2006-11-30 Nec Corporation 情報処理装置および命令実行方法
US8271766B2 (en) 2005-05-26 2012-09-18 Nec Corporation Intentionally delaying execution of a copy instruction to achieve simultaneous execution with a subsequent, non-adjacent write instruction
CN111860803A (zh) * 2019-04-27 2020-10-30 中科寒武纪科技股份有限公司 分形计算装置、方法、集成电路及板卡
US11841822B2 (en) 2019-04-27 2023-12-12 Cambricon Technologies Corporation Limited Fractal calculating device and method, integrated circuit and board card
US12026606B2 (en) 2019-04-27 2024-07-02 Cambricon Technologies Corporation Limited Fractal calculating device and method, integrated circuit and board card

Also Published As

Publication number Publication date
US5684983A (en) 1997-11-04

Similar Documents

Publication Publication Date Title
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
US20080141229A1 (en) Processor, program conversion apparatus, program conversion method, and computer program
JPH0776921B2 (ja) データ処理方法及び装置
JPH07219769A (ja) マイクロプロセッサ
EP0368332A3 (en) Pipeline data processor
JPH04275628A (ja) 演算処理装置
JP2507638B2 (ja) デ―タ処理装置
US6145074A (en) Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction
US5577256A (en) Data driven type information processor including a combined program memory and memory for queuing operand data
US6035122A (en) Compiler for converting source program into object program having instruction with commit condition
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
US6145075A (en) Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file
US5742801A (en) Microprocessor to which additional instructions are added and instructions addition method thereof
JPH1165839A (ja) プロセッサの命令制御機構
JPH07104784B2 (ja) デジタルデータ処理装置
EP1016961B1 (en) Information processor
US5991872A (en) Processor
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
JPH07120284B2 (ja) データ処理装置
EP0447101B1 (en) Processor with data format-independent instructions
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
JPH0222413B2 (ja)
US6282632B1 (en) Information processor having duplicate operation flags
JPS6079431A (ja) プログラマブルコントローラのパイプライン処理方法
US6807625B1 (en) Method and apparatus for efficiently generating, storing, and consuming arithmetic flags between producing and consuming macroinstructions when emulating with microinstructions

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: 20010508