JP2636821B2 - 並列処理装置 - Google Patents
並列処理装置Info
- Publication number
- JP2636821B2 JP2636821B2 JP8051298A JP5129896A JP2636821B2 JP 2636821 B2 JP2636821 B2 JP 2636821B2 JP 8051298 A JP8051298 A JP 8051298A JP 5129896 A JP5129896 A JP 5129896A JP 2636821 B2 JP2636821 B2 JP 2636821B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- instructions
- processing
- program counter
- 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.)
- Expired - Fee Related
Links
Landscapes
- Advance Control (AREA)
Description
【0001】
【発明の属する技術分野】本発明はミニコン,マイコン
等のCPUに係り、特に高速動作に好適な並列処理装置
に関する。
等のCPUに係り、特に高速動作に好適な並列処理装置
に関する。
【0002】
【従来の技術】従来より、計算機の高速化のために、種
々の工夫が行われている。代表的な手法にパイプライン
がある。パイプラインとは、1つの命令の処理を完全に
終えてから次の命令を始めるのではなくて、1つの命令
を複数ステージに分け、最初の命令が2番目のステージ
にさしかかったところで、次の命令の最初のステージの
処理を始めるというようにバケツリレー式に処理する方
法である。このような方法については、富田眞治著「並
列計算機構成論」昭晃堂p.25〜68 に詳しく論じら
れている。n段パイプライン方式を用いれば、それぞれ
のパイプラインステージにて処理されている命令は1つ
であるが、全体としてn個の命令を同時に処理すること
ができ、パイプラインピッチごとに、1つの命令の処理
を終えることができる。
々の工夫が行われている。代表的な手法にパイプライン
がある。パイプラインとは、1つの命令の処理を完全に
終えてから次の命令を始めるのではなくて、1つの命令
を複数ステージに分け、最初の命令が2番目のステージ
にさしかかったところで、次の命令の最初のステージの
処理を始めるというようにバケツリレー式に処理する方
法である。このような方法については、富田眞治著「並
列計算機構成論」昭晃堂p.25〜68 に詳しく論じら
れている。n段パイプライン方式を用いれば、それぞれ
のパイプラインステージにて処理されている命令は1つ
であるが、全体としてn個の命令を同時に処理すること
ができ、パイプラインピッチごとに、1つの命令の処理
を終えることができる。
【0003】さて、計算機の命令アーキテクチャが、そ
の処理方式,処理性能におよぼす影響が大であることは
周知である。命令アーキテクチャの観点から計算機を分
類すると、CISC(Complex Instruction Set Comput
er)とRISC(Reduced Instruction Set Computer)
とに分けられる。CISCでは複雑な命令をマイクロ命
令を使って処理する。これに対して、RISCでは、命
令を簡単なものに絞る代わりに、マイクロ命令を用いず
に、ハードワイヤード論理による制御で高速化を図って
いる。以下、従来のCISC,RISCの両者につい
て、ハードウェア概要と、そのパイプライン動作につい
て述べる。
の処理方式,処理性能におよぼす影響が大であることは
周知である。命令アーキテクチャの観点から計算機を分
類すると、CISC(Complex Instruction Set Comput
er)とRISC(Reduced Instruction Set Computer)
とに分けられる。CISCでは複雑な命令をマイクロ命
令を使って処理する。これに対して、RISCでは、命
令を簡単なものに絞る代わりに、マイクロ命令を用いず
に、ハードワイヤード論理による制御で高速化を図って
いる。以下、従来のCISC,RISCの両者につい
て、ハードウェア概要と、そのパイプライン動作につい
て述べる。
【0004】図2はCISC型計算機の一般的構成を説
明する図である。200はメモリインタフェース、20
1はプログラムカウンタ(PC)、202は命令キャッ
シュ、203は命令レジスタ、204は命令デコーダ、
205はアドレス計算制御回路、206はマイクロ命令
を格納しておくControl Storage(CS)、207はマイ
クロ命令カウンタ、208はマイクロ命令レジスタ、2
09はデコーダ、210はメモリとデータをやり取りする
レジスタMDR(Memory Data Register)、211はメ
モリ上のオペランドアドレスを示すレジスタMAR(Me
mory AddressRegister)、212はアドレス加算器、2
13はレジスタファイル、214はALU(Arithmetic
and Logic Unit)である。
明する図である。200はメモリインタフェース、20
1はプログラムカウンタ(PC)、202は命令キャッ
シュ、203は命令レジスタ、204は命令デコーダ、
205はアドレス計算制御回路、206はマイクロ命令
を格納しておくControl Storage(CS)、207はマイ
クロ命令カウンタ、208はマイクロ命令レジスタ、2
09はデコーダ、210はメモリとデータをやり取りする
レジスタMDR(Memory Data Register)、211はメ
モリ上のオペランドアドレスを示すレジスタMAR(Me
mory AddressRegister)、212はアドレス加算器、2
13はレジスタファイル、214はALU(Arithmetic
and Logic Unit)である。
【0005】動作の概要を説明する。PC201によっ
て示された命令が、命令キャッシュより取り出され、信
号217を通して、命令レジスタ203にセットされ
る。命令デコーダ204は命令を信号218を通して受
け取り、マイクロ命令の先頭アドレスを信号220を通
して、マイクロ命令カウンタ207にセットする。ま
た、アドレス計算方法を信号219を通して、アドレス
計算制御回路205に指示する。アドレス計算制御回路
205は、アドレス計算に必要なレジスタの読み出し、
アドレス加算器212の制御等を行う。アドレス計算に
必要なレジスタは、レジスタファイル213よりバス2
26,227を通してアドレス加算器212に送出され
る。一方、マイクロ命令は1マシンサイクルごとにCS
206より読み出され、デコーダ209によりデコード
され、ALU214,レジスタファイル213を制御するのに使
われる。224はこれらの制御信号である。ALU214はレ
ジスタよりバス228,229を通して送られるデータ
を演算し、再びレジスタファイル213に格納する。メ
モリインタフェース200は、命令のフェッチ,オペラ
ンドのフェッチ等、メモリとのやり取りを行う回路であ
る。
て示された命令が、命令キャッシュより取り出され、信
号217を通して、命令レジスタ203にセットされ
る。命令デコーダ204は命令を信号218を通して受
け取り、マイクロ命令の先頭アドレスを信号220を通
して、マイクロ命令カウンタ207にセットする。ま
た、アドレス計算方法を信号219を通して、アドレス
計算制御回路205に指示する。アドレス計算制御回路
205は、アドレス計算に必要なレジスタの読み出し、
アドレス加算器212の制御等を行う。アドレス計算に
必要なレジスタは、レジスタファイル213よりバス2
26,227を通してアドレス加算器212に送出され
る。一方、マイクロ命令は1マシンサイクルごとにCS
206より読み出され、デコーダ209によりデコード
され、ALU214,レジスタファイル213を制御するのに使
われる。224はこれらの制御信号である。ALU214はレ
ジスタよりバス228,229を通して送られるデータ
を演算し、再びレジスタファイル213に格納する。メ
モリインタフェース200は、命令のフェッチ,オペラ
ンドのフェッチ等、メモリとのやり取りを行う回路であ
る。
【0006】次に、図2で示した計算機のパイプライン
動作を図3,図4,図5を用いて説明する。パイプライ
ンは6段である。IF(Instruction Fetch)ステージで
は、命令キャッシュ202より命令が読み出され、命令
レジスタ203にセットされる。D(Decode)ステージ
では、命令デコーダ204により、命令のデコードが行
われる。A(Address)ステージではアドレス加算器21
2により、オペランドのアドレス計算が行われる。OF
(Operand Fetch)ステージでは、メモリインタフェース
200を通して、MAR211で指されたアドレスのオペラン
ドがフェッチされ、MDR210にセットされる。次に、EX
(Execution)ステージでは、レジスタファイル213、
及び、MDR210より、データが呼び出され、ALU214に送ら
れ、演算される。最後に、W(Write)ステージでは、演
算結果がレジスタファイル213の中の1つのレジスタ
にバス230を通して格納される。
動作を図3,図4,図5を用いて説明する。パイプライ
ンは6段である。IF(Instruction Fetch)ステージで
は、命令キャッシュ202より命令が読み出され、命令
レジスタ203にセットされる。D(Decode)ステージ
では、命令デコーダ204により、命令のデコードが行
われる。A(Address)ステージではアドレス加算器21
2により、オペランドのアドレス計算が行われる。OF
(Operand Fetch)ステージでは、メモリインタフェース
200を通して、MAR211で指されたアドレスのオペラン
ドがフェッチされ、MDR210にセットされる。次に、EX
(Execution)ステージでは、レジスタファイル213、
及び、MDR210より、データが呼び出され、ALU214に送ら
れ、演算される。最後に、W(Write)ステージでは、演
算結果がレジスタファイル213の中の1つのレジスタ
にバス230を通して格納される。
【0007】さて、図3は基本命令の1つである加算命
令ADDを連続して処理する様子を示したものである。
1マシンサイクルごとに1命令処理されており、ALU21
4,アドレス加算器212共に毎サイクル並列して動い
ている。
令ADDを連続して処理する様子を示したものである。
1マシンサイクルごとに1命令処理されており、ALU21
4,アドレス加算器212共に毎サイクル並列して動い
ている。
【0008】図4は、条件つき分岐命令BRAccの処
理の様子を示したものである。TEST命令でフラグが生成
される。図4は条件成立時のフローを示したものであ
る。フラグ生成がEXステージで行われるため、ジャン
プ先命令のフェッチまでに3サイクルの待ちサイクルが
生じる。パイプライン段数を増やせば増やすほど、この
待ちサイクルは増え、性能向上のネックとなる。図5は
複雑な命令の実行フローを示したものである。命令1が
複雑な命令である。複雑な命令とはストリングコピーの
様に多数のメモリアクセスがある命令等で、通常EXス
テージを多数回延長することにより処理される。EXス
テージはマイクロ命令により制御される。マイクロ命令
は、1マシンサイクルに1回アクセスされる。即ち、複
雑な命令は、マイクロプログラムを複数回読み出すこと
により処理する。この時、EXステージには1つの命令
しか入らないので、次の命令(図5命令2)は待たされ
る。このような時には、ALU214は常に動いているが、ア
ドレス加算器212には遊びが生じてしまう。
理の様子を示したものである。TEST命令でフラグが生成
される。図4は条件成立時のフローを示したものであ
る。フラグ生成がEXステージで行われるため、ジャン
プ先命令のフェッチまでに3サイクルの待ちサイクルが
生じる。パイプライン段数を増やせば増やすほど、この
待ちサイクルは増え、性能向上のネックとなる。図5は
複雑な命令の実行フローを示したものである。命令1が
複雑な命令である。複雑な命令とはストリングコピーの
様に多数のメモリアクセスがある命令等で、通常EXス
テージを多数回延長することにより処理される。EXス
テージはマイクロ命令により制御される。マイクロ命令
は、1マシンサイクルに1回アクセスされる。即ち、複
雑な命令は、マイクロプログラムを複数回読み出すこと
により処理する。この時、EXステージには1つの命令
しか入らないので、次の命令(図5命令2)は待たされ
る。このような時には、ALU214は常に動いているが、ア
ドレス加算器212には遊びが生じてしまう。
【0009】次に、RISC型計算機について説明す
る。図6はRISC型計算機の一般的構成を説明する図
である。601はメモリインタフェース、602はプロ
グラムカウンタ、603は命令キャッシュ、604はシ
ーケンサ、605は命令レジスタ、606はデコーダ、
607はレジスタファイル、608はALU、609は
MDR、610はMARである。
る。図6はRISC型計算機の一般的構成を説明する図
である。601はメモリインタフェース、602はプロ
グラムカウンタ、603は命令キャッシュ、604はシ
ーケンサ、605は命令レジスタ、606はデコーダ、
607はレジスタファイル、608はALU、609は
MDR、610はMARである。
【0010】図7に基本命令の処理フローを示す。IF
(Instruction Fetch)ステージでは、プログラムカウン
タ602で指される命令が、命令キャッシュより読み出
され、命令レジスタ605にセットされる。また、シー
ケンサ604は命令信号615,ALU608よりのフラグ信号6
16より、プログラムカウンタ602を制御する。R
(Read)ステージでは、レジスタファイル607より、
命令で示されたレジスタが、バス618,619を通し
てALU608に転送される。また、E(Execution)ステージ
では、ALU608により、演算が行われる。最後に、W(Wri
te)ステージでは、演算された結果がレジスタファイル
607に、バス620を通して格納される。
(Instruction Fetch)ステージでは、プログラムカウン
タ602で指される命令が、命令キャッシュより読み出
され、命令レジスタ605にセットされる。また、シー
ケンサ604は命令信号615,ALU608よりのフラグ信号6
16より、プログラムカウンタ602を制御する。R
(Read)ステージでは、レジスタファイル607より、
命令で示されたレジスタが、バス618,619を通し
てALU608に転送される。また、E(Execution)ステージ
では、ALU608により、演算が行われる。最後に、W(Wri
te)ステージでは、演算された結果がレジスタファイル
607に、バス620を通して格納される。
【0011】RISC型計算機では、命令を基本的な命
令のみに限定している。演算はレジスタ−レジスタ間に
限られており、オペランドフェッチを伴う命令はロード
命令とストア命令のみである。複雑な命令は基本命令を
組合せることによって実現する。また、マイクロ命令は
使用されず、命令レジスタ605の内容が直接デコーダ
606でデコードされ、ALU608等を制御する。
令のみに限定している。演算はレジスタ−レジスタ間に
限られており、オペランドフェッチを伴う命令はロード
命令とストア命令のみである。複雑な命令は基本命令を
組合せることによって実現する。また、マイクロ命令は
使用されず、命令レジスタ605の内容が直接デコーダ
606でデコードされ、ALU608等を制御する。
【0012】図7はレジスタ−レジスタ間演算の処理フ
ローを示している。処理ステージは命令が簡単なため4
段ですんでいる。
ローを示している。処理ステージは命令が簡単なため4
段ですんでいる。
【0013】図8は条件分岐時の処理フローを示してい
る。CISC型計算機に比して、パイプライン段数が少
ないため、待ちサイクルが少ない。図8の例では、待ち
サイクルは1サイクルのみである。しかもRISC型計
算機では、この1サイクルの待ちサイクルも有効に利用
するディレイド分岐方式が採用されているのが普通であ
る。この方式は、図9に示すごとくBRAcc命令に引
き続くADD命令を待ちサイクルの間に実行する方式で
ある。このようにコンパイラが分岐命令の次に命令を埋
め込むことにより、無駄となる待ちサイクルを全く無く
すことができる。
る。CISC型計算機に比して、パイプライン段数が少
ないため、待ちサイクルが少ない。図8の例では、待ち
サイクルは1サイクルのみである。しかもRISC型計
算機では、この1サイクルの待ちサイクルも有効に利用
するディレイド分岐方式が採用されているのが普通であ
る。この方式は、図9に示すごとくBRAcc命令に引
き続くADD命令を待ちサイクルの間に実行する方式で
ある。このようにコンパイラが分岐命令の次に命令を埋
め込むことにより、無駄となる待ちサイクルを全く無く
すことができる。
【0014】しかし、このように効率良く実行できるR
ISC型計算機も1マシンサイクルで1命令しか実行で
きないという欠点がある。
ISC型計算機も1マシンサイクルで1命令しか実行で
きないという欠点がある。
【0015】このため最近のRISC型計算機では、公
開特許公報昭63−49843 号「縮小命令セットコンピュー
タ」のごとく、レジスタファイルを共用する複数の演算
ユニットを設け、命令を簡単にしてパイプライン段数を
少なくし、かつ、1マシンサイクルに複数の命令を読み
出し、複数演算ユニットを制御する方式が考案されてい
る。
開特許公報昭63−49843 号「縮小命令セットコンピュー
タ」のごとく、レジスタファイルを共用する複数の演算
ユニットを設け、命令を簡単にしてパイプライン段数を
少なくし、かつ、1マシンサイクルに複数の命令を読み
出し、複数演算ユニットを制御する方式が考案されてい
る。
【0016】しかしながら、実際のRISC型計算機
は、単一の演算ユニットを用いて逐次的に命令を処理し
ているため、複数の演算ユニットを用いて複数の命令を
並列実行してしまうと同一の動作を保証できない。例え
ば、割込み処理ではm個の命令が同時に処理されるため
m個の命令単位に割込みを受け付けることになり、従来
の逐次処理の動作と異なつてしまう。また、1命令単位
に命令を実行する機能を有するデバッガなどのソフトウ
ェアは、使用できなくなるなどの欠点がある。
は、単一の演算ユニットを用いて逐次的に命令を処理し
ているため、複数の演算ユニットを用いて複数の命令を
並列実行してしまうと同一の動作を保証できない。例え
ば、割込み処理ではm個の命令が同時に処理されるため
m個の命令単位に割込みを受け付けることになり、従来
の逐次処理の動作と異なつてしまう。また、1命令単位
に命令を実行する機能を有するデバッガなどのソフトウ
ェアは、使用できなくなるなどの欠点がある。
【0017】一方、上記特殊なソフトウェアは使用でき
なくなるが、大部分の従来のソフトウェアを使用可能に
し、かつ高速に実行できる方式は、十分有用である。こ
のような方式で最も重要な点は図9を用いて述べたディ
レイド分岐命令を含んだm個の命令を、どのように並列
実行すれば逐次実行した場合と同じ実行結果を得ること
ができるのかという問題を解決する点にある。
なくなるが、大部分の従来のソフトウェアを使用可能に
し、かつ高速に実行できる方式は、十分有用である。こ
のような方式で最も重要な点は図9を用いて述べたディ
レイド分岐命令を含んだm個の命令を、どのように並列
実行すれば逐次実行した場合と同じ実行結果を得ること
ができるのかという問題を解決する点にある。
【0018】
【発明が解決しようとする課題】本発明の目的は、並列
処理と逐次処理との互換性を持たせて処理能力を高める
機能を両立させることにある。
処理と逐次処理との互換性を持たせて処理能力を高める
機能を両立させることにある。
【0019】本発明の他の目的は、並列動作において、
特殊な従来のソフトウェアは正常動作できなくても、大
部分の従来のソフトウェアを正常動作させ、かつ、高速
実行できることにある。
特殊な従来のソフトウェアは正常動作できなくても、大
部分の従来のソフトウェアを正常動作させ、かつ、高速
実行できることにある。
【0020】
【課題を解決するための手段】本発明の特徴は、メモリ
から読み出すべき命令を指示するプログラムカウンタ
と、このプログラムカウンタによって指示された命令を
それぞれ格納するための複数の命令レジスタと、演算を
実行するための複数の演算ユニットと、これら複数の演
算ユニットを制御する制御手段を有し、この制御手段に
おいては、プログラムカウンタが指示する番地から読み
出されたn個の連続する複数の命令を、上記複数の演算
ユニットで並列処理するか、または逐次処理するかを制
御し、さらに逐次処理する際にも、上記複数の演算ユニ
ットが1個ずつ順に処理するように上記複数の命令レジ
スタから上記n個の連続した命令を与えることにある。
から読み出すべき命令を指示するプログラムカウンタ
と、このプログラムカウンタによって指示された命令を
それぞれ格納するための複数の命令レジスタと、演算を
実行するための複数の演算ユニットと、これら複数の演
算ユニットを制御する制御手段を有し、この制御手段に
おいては、プログラムカウンタが指示する番地から読み
出されたn個の連続する複数の命令を、上記複数の演算
ユニットで並列処理するか、または逐次処理するかを制
御し、さらに逐次処理する際にも、上記複数の演算ユニ
ットが1個ずつ順に処理するように上記複数の命令レジ
スタから上記n個の連続した命令を与えることにある。
【0021】また、本発明の特徴は、メモリから読み出
すべき命令を指示するプログラムカウンタと、このプロ
グラムカウンタによって指示された命令をそれぞれ格納
するための複数の命令レジスタと、演算を実行するため
の複数の演算ユニットと、これら複数の演算ユニットを
制御する制御手段を有し、この制御手段においては、プ
ログラムカウンタが指示する番地から読み出されたn個
の連続する複数の命令を、上記複数の演算ユニットで並
列処理するか、または逐次処理するかを制御し、さらに
逐次処理する際にも、上記制御手段は、上記複数の演算
ユニットの処理の開始が異なるように、上記複数の命令
レジスタから上記n個の連続した命令を与えることにあ
る。
すべき命令を指示するプログラムカウンタと、このプロ
グラムカウンタによって指示された命令をそれぞれ格納
するための複数の命令レジスタと、演算を実行するため
の複数の演算ユニットと、これら複数の演算ユニットを
制御する制御手段を有し、この制御手段においては、プ
ログラムカウンタが指示する番地から読み出されたn個
の連続する複数の命令を、上記複数の演算ユニットで並
列処理するか、または逐次処理するかを制御し、さらに
逐次処理する際にも、上記制御手段は、上記複数の演算
ユニットの処理の開始が異なるように、上記複数の命令
レジスタから上記n個の連続した命令を与えることにあ
る。
【0022】また、本発明の上記複数の演算ユニットを
制御するための手段は、処理状態切替命令または、ピン
を介して外部から与えられる制御信号のいずれかにより
処理状態を制御することを特徴とする。
制御するための手段は、処理状態切替命令または、ピン
を介して外部から与えられる制御信号のいずれかにより
処理状態を制御することを特徴とする。
【0023】さらに、処理状態識別手段によって指示さ
れる値に応じて、mまたは1値を増加させるように上記
プログラムカウンタを制御する手段を有することを特徴
とする。
れる値に応じて、mまたは1値を増加させるように上記
プログラムカウンタを制御する手段を有することを特徴
とする。
【0024】これにより、並列処理と逐次処理との互換
性を持たせて、両処理を選択的に実行することができ
る。
性を持たせて、両処理を選択的に実行することができ
る。
【0025】
【0026】
【発明の実施の形態】以下、本発明の一実施例を説明す
る。
る。
【0027】図10は、本実施例で述べるプロセッサの
命令一覧である。基本命令は全てレジスタ間演算であ
る。分岐命令には、無条件分岐命令BRA,条件付分岐
命令BRAcc(ccは分岐条件を示す。),サブルー
チンの分岐命令CALL,サブルーチンからの戻り命令
RTNの4つがある。他に、ロード命令LOADとスト
ア命令STORがある。説明の都合上、データ型は32
ビット整数のみとしたがこれに限定されるものではな
い。またアドレスは32ビット(4バイト)毎にふられ
ているものとした。また、処理状態フラグ変更命令に
は、分岐先命令から複数命令の同時読み出しを開始し
て、複数の演算ユニットを活性化させると共に、処理状
態フラグをONにする並列化分岐命令PEXBと分岐先
命令から1個の命令の読み出しを開始して、第1演算ユ
ニットを活性化させると共に処理状態フラグをOFFに
する逐次化分岐命令SEXB命令である。簡単のため
に、上記の如く命令数を制限しているが、これは本発明
を制限するものではなく、1マシンサイクル処理できる
内容であれば、さらに命令を増やしても良い。
命令一覧である。基本命令は全てレジスタ間演算であ
る。分岐命令には、無条件分岐命令BRA,条件付分岐
命令BRAcc(ccは分岐条件を示す。),サブルー
チンの分岐命令CALL,サブルーチンからの戻り命令
RTNの4つがある。他に、ロード命令LOADとスト
ア命令STORがある。説明の都合上、データ型は32
ビット整数のみとしたがこれに限定されるものではな
い。またアドレスは32ビット(4バイト)毎にふられ
ているものとした。また、処理状態フラグ変更命令に
は、分岐先命令から複数命令の同時読み出しを開始し
て、複数の演算ユニットを活性化させると共に、処理状
態フラグをONにする並列化分岐命令PEXBと分岐先
命令から1個の命令の読み出しを開始して、第1演算ユ
ニットを活性化させると共に処理状態フラグをOFFに
する逐次化分岐命令SEXB命令である。簡単のため
に、上記の如く命令数を制限しているが、これは本発明
を制限するものではなく、1マシンサイクル処理できる
内容であれば、さらに命令を増やしても良い。
【0028】図11に命令フォーマットを示す。命令は
全て32ビットの固定長である。基本命令中のF,S
1,S2,Dフィールドは、それぞれ演算結果をフラグ
に反映するかどうかを指示するビット,第1ソースレジ
スタを指示するフィールド,第2ソースレジスタを指示
するフィールド,ディスティネーションレジスタを指示
するフィールドである。
全て32ビットの固定長である。基本命令中のF,S
1,S2,Dフィールドは、それぞれ演算結果をフラグ
に反映するかどうかを指示するビット,第1ソースレジ
スタを指示するフィールド,第2ソースレジスタを指示
するフィールド,ディスティネーションレジスタを指示
するフィールドである。
【0029】本実施例の構成を示したのが図1である。
100は命令キャッシュ、101は32ビットのプログ
ラムカウンタを生成するプログラムカウンタ演算器、1
02はプログラムカウンタ値を保持するラッチ、103
は処理状態フラグPE(116)を保持するプロセッサステ
ータスレジスタ、143はプログラムカウンタを“1”
または“2”だけ加算するセレクタ、104は32ビッ
トの第1命令レジスタ、105は32ビットの第2命令
レジスタ、106は第1命令デコーダ、107は第2命
令デコーダ、108は第1演算ユニット、109は第2
演算ユニット、110はレジスタファイル、111はシ
ーケンサ、112はメモリアドレスレジスタMAR、1
13はメモリデータレジスタMDR、114はメモリラ
イトレジスタMWR、115はデータキャッシュであ
る。
100は命令キャッシュ、101は32ビットのプログ
ラムカウンタを生成するプログラムカウンタ演算器、1
02はプログラムカウンタ値を保持するラッチ、103
は処理状態フラグPE(116)を保持するプロセッサステ
ータスレジスタ、143はプログラムカウンタを“1”
または“2”だけ加算するセレクタ、104は32ビッ
トの第1命令レジスタ、105は32ビットの第2命令
レジスタ、106は第1命令デコーダ、107は第2命
令デコーダ、108は第1演算ユニット、109は第2
演算ユニット、110はレジスタファイル、111はシ
ーケンサ、112はメモリアドレスレジスタMAR、1
13はメモリデータレジスタMDR、114はメモリラ
イトレジスタMWR、115はデータキャッシュであ
る。
【0030】本実施例では、1マシンサイクルの間に2
つの命令が並列して読み出され実行される。本実施例で
の基本パイプライン処理の動作を示したのが図12〜図
15である。パイプラインはIF(Instruction Fetc
h),R(Read),EX(Execution),W(Write)の4段で
ある。
つの命令が並列して読み出され実行される。本実施例で
の基本パイプライン処理の動作を示したのが図12〜図
15である。パイプラインはIF(Instruction Fetc
h),R(Read),EX(Execution),W(Write)の4段で
ある。
【0031】再び図1を用いて、本実施例の動作につい
て説明する。
て説明する。
【0032】IFステージでは、プロセッサステータス
レジスタ103の処理状態フラグPE116の値がON
の時、プログラムカウンタによって指される2つの命令
が読み出され、バス117,118を通して、それぞれ
第1命令レジスタ104と第2命令レジスタ105にセ
ットされる。PCが偶数のときには、PC番地の命令が
第1命令レジスタにPC+1番地の命令が第2命令レジ
スタに格納される。また、PCが奇数のときには、第1
命令レジスタにはNOP命令が、第2命令レジスタには
PC番地の命令がセットされる。つまり、シーケンサ1
11はプログラムカウンタを制御する回路である。第1
命令レジスタ,第2命令レジスタ共に分岐命令でないと
きには、プログラムカウンタには前プログラムカウンタ
値+2の値をラッチ102へセットする。分岐時には、
分岐アドレスを計算してプログラムカウンタにセットす
る。条件分岐時には、第1演算ユニット108よりのフ
ラグ情報120、及び、第2演算ユニット109よりの
フラグ情報119より、分岐の成否を判定し、分岐先ア
ドレス情報121と分岐制御情報122を用いてプログ
ラムカウンタ演算器101を制御する。
レジスタ103の処理状態フラグPE116の値がON
の時、プログラムカウンタによって指される2つの命令
が読み出され、バス117,118を通して、それぞれ
第1命令レジスタ104と第2命令レジスタ105にセ
ットされる。PCが偶数のときには、PC番地の命令が
第1命令レジスタにPC+1番地の命令が第2命令レジ
スタに格納される。また、PCが奇数のときには、第1
命令レジスタにはNOP命令が、第2命令レジスタには
PC番地の命令がセットされる。つまり、シーケンサ1
11はプログラムカウンタを制御する回路である。第1
命令レジスタ,第2命令レジスタ共に分岐命令でないと
きには、プログラムカウンタには前プログラムカウンタ
値+2の値をラッチ102へセットする。分岐時には、
分岐アドレスを計算してプログラムカウンタにセットす
る。条件分岐時には、第1演算ユニット108よりのフ
ラグ情報120、及び、第2演算ユニット109よりの
フラグ情報119より、分岐の成否を判定し、分岐先ア
ドレス情報121と分岐制御情報122を用いてプログ
ラムカウンタ演算器101を制御する。
【0033】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ、
また、第2命令レジスタ105の内容が第2命令デコー
ダ107でデコードされる。その結果、第1命令レジス
タ104の第1ソースレジスタフィールドS1で指され
るレジスタの内容がバス127を通して、第2ソースレ
ジスタフィールドS2で指されるレジスタの内容がバス
128を通して、第1演算ユニット108へ送出され
る。また、第2命令レジスタ105の第1ソースレジス
タフィールドS1で指されるレジスタの内容がバス12
9を通して、第2ソースレジスタフィールドS2で指さ
れるレジスタの内容がバス130を通して、第2演算ユ
ニット109へ送出される。
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ、
また、第2命令レジスタ105の内容が第2命令デコー
ダ107でデコードされる。その結果、第1命令レジス
タ104の第1ソースレジスタフィールドS1で指され
るレジスタの内容がバス127を通して、第2ソースレ
ジスタフィールドS2で指されるレジスタの内容がバス
128を通して、第1演算ユニット108へ送出され
る。また、第2命令レジスタ105の第1ソースレジス
タフィールドS1で指されるレジスタの内容がバス12
9を通して、第2ソースレジスタフィールドS2で指さ
れるレジスタの内容がバス130を通して、第2演算ユ
ニット109へ送出される。
【0034】次にEXステージの動作について説明す
る。EXステージでは、第1命令レジスタ104のオペ
コードの内容に従って第1演算ユニット108におい
て、バス127,128により送られてきたデータ間の
実行を行う。並列して、第2命令レジスタ105のオペ
コードの内容に従って第2演算ユニット109におい
て、バス129,130により送られてきたデータ間の
演算を行う。
る。EXステージでは、第1命令レジスタ104のオペ
コードの内容に従って第1演算ユニット108におい
て、バス127,128により送られてきたデータ間の
実行を行う。並列して、第2命令レジスタ105のオペ
コードの内容に従って第2演算ユニット109におい
て、バス129,130により送られてきたデータ間の
演算を行う。
【0035】最後にWステージの動作を説明する。Wス
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。ま
た、第2演算ユニット109の演算結果がバス132を
通して、第2命令レジスタのディスティネーションフィ
ールドDで指されるレジスタに格納される。
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。ま
た、第2演算ユニット109の演算結果がバス132を
通して、第2命令レジスタのディスティネーションフィ
ールドDで指されるレジスタに格納される。
【0036】図32は、図1の処理状態フラグ変更手段
を加えたものである。即ち、144,145はそれぞれ
第1演算ユニット,第2演算ユニットで、PEXBおよ
びSEXB命令が実行されたときに、フラグ値のデータ
を処理状態フラグPE116 へ伝えるデータ線である。14
6は処理状態フラグPE116へデータを書き込む時に
必要なセレクタである。
を加えたものである。即ち、144,145はそれぞれ
第1演算ユニット,第2演算ユニットで、PEXBおよ
びSEXB命令が実行されたときに、フラグ値のデータ
を処理状態フラグPE116 へ伝えるデータ線である。14
6は処理状態フラグPE116へデータを書き込む時に
必要なセレクタである。
【0037】図12は、基本命令を連続して処理するフ
ローを示したものである。1マシンサイクルに2命令ず
つ処理される。ここで図12で2命令ずつ処理される内
の上の方が第1演算ユニットの処理を、下の方が第2演
算ユニットの処理を示している。また、この例では、第
1演算ユニットと第2演算ユニットは常に並列して動作
している。
ローを示したものである。1マシンサイクルに2命令ず
つ処理される。ここで図12で2命令ずつ処理される内
の上の方が第1演算ユニットの処理を、下の方が第2演
算ユニットの処理を示している。また、この例では、第
1演算ユニットと第2演算ユニットは常に並列して動作
している。
【0038】図13は第1命令としてロード命令、また
は、ストア命令,第2命令として基本命令を連続して処
理するフローを示したものである。ロード命令実行時に
は、Rステージで、第1命令レジスタのS2フィールド
で指されるレジスタの内容が、バス128を通して、MA
R112に転送される。次に、EXステージで、データキャ
ッシュからバス133を通して、オペランドをフェッチ
する。最後に、Wステージでフェッチされたオペランド
が、バス134を通して、第1命令レジスタのディステ
ィネーションフィールドDで指されるレジスタに格納さ
れる。EXステージで1マシンサイクルでオペランドを
フェッチすることは、図1の如く高速データキャッシュ
115を備えていれば、可能である。特に、図1に示
す、計算機全体が半導体基盤上に集積され、命令キャッ
シュ,データキャッシュ共にオンチップ化されている場
合などは容易である。勿論、キャッシュがミスヒットし
た場合には、1マシンサイクルでオペランドフェッチを
終了することはできない。このような時は、システムク
ロックを止めて、EXステージを延長すれば良い。これ
は、従来の計算機でも行われていることである。
は、ストア命令,第2命令として基本命令を連続して処
理するフローを示したものである。ロード命令実行時に
は、Rステージで、第1命令レジスタのS2フィールド
で指されるレジスタの内容が、バス128を通して、MA
R112に転送される。次に、EXステージで、データキャ
ッシュからバス133を通して、オペランドをフェッチ
する。最後に、Wステージでフェッチされたオペランド
が、バス134を通して、第1命令レジスタのディステ
ィネーションフィールドDで指されるレジスタに格納さ
れる。EXステージで1マシンサイクルでオペランドを
フェッチすることは、図1の如く高速データキャッシュ
115を備えていれば、可能である。特に、図1に示
す、計算機全体が半導体基盤上に集積され、命令キャッ
シュ,データキャッシュ共にオンチップ化されている場
合などは容易である。勿論、キャッシュがミスヒットし
た場合には、1マシンサイクルでオペランドフェッチを
終了することはできない。このような時は、システムク
ロックを止めて、EXステージを延長すれば良い。これ
は、従来の計算機でも行われていることである。
【0039】次にストア命令実行時には、Rステージに
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス135を通してMWR114に転送される。また同時に、第
1命令レジスタの第2ソースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス128
を通して、MAR112に転送される。次にEXステージで、
MAR112で指される番地に、MWR114内のデータが書き込ま
れる。図13に示すように、ロード命令,ストア命令
は、その次の命令、例えば図中のADD命令と共に1マ
シンサイクルに2命令ずつ処理することができる。
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス135を通してMWR114に転送される。また同時に、第
1命令レジスタの第2ソースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス128
を通して、MAR112に転送される。次にEXステージで、
MAR112で指される番地に、MWR114内のデータが書き込ま
れる。図13に示すように、ロード命令,ストア命令
は、その次の命令、例えば図中のADD命令と共に1マ
シンサイクルに2命令ずつ処理することができる。
【0040】図14は、第2命令として無条件ジャンプ
BRA命令実行時の処理フローを示したものである。な
お、この図は後述する他の実施例の説明にも使用する。
BRA命令が読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットする。この間にBRA命令の次の
番地の命令と、その次の番地の命令(図14命令1と命
令2)が読み出される。その次のサイクルに、ジャンプ
先の2命令が読み出される。本実施例では、命令1,命
令2とも実行可能なハードウェアとしている。即ち、ジ
ャンプ命令処理時も、待ちサイクルが発生しない。この
手法は、ディレイド分岐と呼ばれるもので、RISC型
の従来計算機でも行われているものである。ただし、従
来のRISC型計算機では、ジャンプ命令のアドレス計
算中に1命令しか実行できなかったが、本実施例では、
ジャンプ命令のアドレス計算中にも、2命令同時処理さ
れるため、より処理能力を高めることができる。CAL
L命令,RTN命令の処理フローも同様である。コンパ
イラにより、分岐命令のアドレス計算中にできるかぎり
有効な命令を実行できるようにコード生成するが、何も
することが無い時には図14の命令1,2をNOP命令
としておく。このときには、実質的には1マシンサイク
ルの待ちが生ずる。しかしながら、パイプライン段数が
浅いので、従来例で述べられたCISC型の計算機に比し
て、分岐時のオーバーヘッドを小さくできるという利点
がある。図15は第2命令として条件分岐命令BRAc
c命令実行時の処理フローを示したものである。AD
D,Fと示した命令で、フラグのセットが行われ、その
結果に従い分岐の成否が決められる。このときも、図1
4を用いて説明した無条件分岐命令処理時と同時にBR
Acc命令の置かれている番地の次の命令、図15の命
令1と、その次の命令、図15の命令2が読み出されて
処理され、この2命令の処理フロー中Wステージにおい
ては、BRAcc命令の分岐条件の成否にかかわらず演
算結果のレジスタファイルへの書き込みが行われる。
BRA命令実行時の処理フローを示したものである。な
お、この図は後述する他の実施例の説明にも使用する。
BRA命令が読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットする。この間にBRA命令の次の
番地の命令と、その次の番地の命令(図14命令1と命
令2)が読み出される。その次のサイクルに、ジャンプ
先の2命令が読み出される。本実施例では、命令1,命
令2とも実行可能なハードウェアとしている。即ち、ジ
ャンプ命令処理時も、待ちサイクルが発生しない。この
手法は、ディレイド分岐と呼ばれるもので、RISC型
の従来計算機でも行われているものである。ただし、従
来のRISC型計算機では、ジャンプ命令のアドレス計
算中に1命令しか実行できなかったが、本実施例では、
ジャンプ命令のアドレス計算中にも、2命令同時処理さ
れるため、より処理能力を高めることができる。CAL
L命令,RTN命令の処理フローも同様である。コンパ
イラにより、分岐命令のアドレス計算中にできるかぎり
有効な命令を実行できるようにコード生成するが、何も
することが無い時には図14の命令1,2をNOP命令
としておく。このときには、実質的には1マシンサイク
ルの待ちが生ずる。しかしながら、パイプライン段数が
浅いので、従来例で述べられたCISC型の計算機に比し
て、分岐時のオーバーヘッドを小さくできるという利点
がある。図15は第2命令として条件分岐命令BRAc
c命令実行時の処理フローを示したものである。AD
D,Fと示した命令で、フラグのセットが行われ、その
結果に従い分岐の成否が決められる。このときも、図1
4を用いて説明した無条件分岐命令処理時と同時にBR
Acc命令の置かれている番地の次の命令、図15の命
令1と、その次の命令、図15の命令2が読み出されて
処理され、この2命令の処理フロー中Wステージにおい
ては、BRAcc命令の分岐条件の成否にかかわらず演
算結果のレジスタファイルへの書き込みが行われる。
【0041】図16は、第1命令として無条件分岐命令
BRA命令実行時の処理フローを示したものである。B
RA命令と命令1が読み出されると、Rステージにおい
てシーケンサ111はディスプレースメントフィールド
dとプログラムカウンタとの加算を行い、プログラムカ
ウンタのラッチ102にセットするとともに命令1のオ
ペランドのリードを並列処理する。この間に命令1の次
の番地の命令2とその次の番地の命令3が読み出され
る。本実施例では、分岐命令と命令1を並列実行し、さ
らに命令2と命令3とも実行可能なハードウェアとして
いる。即ち、分岐命令を含む2命令を並列実行するとと
もに、その次の2命令をも実行可能としている。通常の
ディレイド分岐命令では、分岐命令直後の1命令のみを
並列実行するが、本実施例の分岐命令は、図14の場合
には分岐命令直後の2命令を実行し、一方、図16の場
合には、分岐命令直後の3命令を実行しており、通常の
ディレイド分岐とは異なる。すなわち、ディレイド分岐
命令を含むm命令は並列実行され、しかも引き続くm命
令が分岐時間を利用して実行される点が異なる。これに
より、高度な並列処理が実現可能である。一方、図17
は、第1命令として条件付分岐命令BRAcc命令実行
時の処理フローを示したものである。図16の処理フロ
ーと同様に、BRAcc命令と命令1は並列実行され、
ジャンプ先命令1および2へ分岐する時間を利用して命
令2と命令3は、条件の成否にかかわらず実行される。
これにより高度な並列実行が可能となり、図15と図1
7からわかるように分岐命令直後の命令はそれぞれ2命
令と3命令が実行される。このように分岐命令が第1命
令として存在するかまたは第2命令として存在するか、
その場所によって分岐時に実行される命令数が異なる。
BRA命令実行時の処理フローを示したものである。B
RA命令と命令1が読み出されると、Rステージにおい
てシーケンサ111はディスプレースメントフィールド
dとプログラムカウンタとの加算を行い、プログラムカ
ウンタのラッチ102にセットするとともに命令1のオ
ペランドのリードを並列処理する。この間に命令1の次
の番地の命令2とその次の番地の命令3が読み出され
る。本実施例では、分岐命令と命令1を並列実行し、さ
らに命令2と命令3とも実行可能なハードウェアとして
いる。即ち、分岐命令を含む2命令を並列実行するとと
もに、その次の2命令をも実行可能としている。通常の
ディレイド分岐命令では、分岐命令直後の1命令のみを
並列実行するが、本実施例の分岐命令は、図14の場合
には分岐命令直後の2命令を実行し、一方、図16の場
合には、分岐命令直後の3命令を実行しており、通常の
ディレイド分岐とは異なる。すなわち、ディレイド分岐
命令を含むm命令は並列実行され、しかも引き続くm命
令が分岐時間を利用して実行される点が異なる。これに
より、高度な並列処理が実現可能である。一方、図17
は、第1命令として条件付分岐命令BRAcc命令実行
時の処理フローを示したものである。図16の処理フロ
ーと同様に、BRAcc命令と命令1は並列実行され、
ジャンプ先命令1および2へ分岐する時間を利用して命
令2と命令3は、条件の成否にかかわらず実行される。
これにより高度な並列実行が可能となり、図15と図1
7からわかるように分岐命令直後の命令はそれぞれ2命
令と3命令が実行される。このように分岐命令が第1命
令として存在するかまたは第2命令として存在するか、
その場所によって分岐時に実行される命令数が異なる。
【0042】以上、図12,図13,図14,図15,
図16,図17を用いて説明したように、プロセッサス
テータスレジスタ103の処理状態フラグPE116の
値がONのときには、1マシンサイクルに2命令ずつ処
理するので、その処理能力が最大2倍に向上されるとい
う利点がある。
図16,図17を用いて説明したように、プロセッサス
テータスレジスタ103の処理状態フラグPE116の
値がONのときには、1マシンサイクルに2命令ずつ処
理するので、その処理能力が最大2倍に向上されるとい
う利点がある。
【0043】一方、プロセッサステータスレジスタ10
3の処理状態フラグPE116の値がOFFのときに
は、制御信号136を介してプログラムカウンタは+1
だけ増加するように制御すると共に、命令キャッシュ1
00は、32ビット長の1個の命令をバス117を介し
て第1命令レジスタ104へ読み出すように、制御信号
137によって制御される。また、制御信号136は、
第1命令デコーダ106と第2命令デコーダ107へ入
っており、この結果第1命令デコーダは第1命令レジス
タ104の命令を第1演算ユニット108で処理するよ
うに動作すると共に、第2命令デコーダは第2演算ユニ
ットを止めるように動作する。この結果、第1演算ユニ
ットによる逐次処理を行うことができる。
3の処理状態フラグPE116の値がOFFのときに
は、制御信号136を介してプログラムカウンタは+1
だけ増加するように制御すると共に、命令キャッシュ1
00は、32ビット長の1個の命令をバス117を介し
て第1命令レジスタ104へ読み出すように、制御信号
137によって制御される。また、制御信号136は、
第1命令デコーダ106と第2命令デコーダ107へ入
っており、この結果第1命令デコーダは第1命令レジス
タ104の命令を第1演算ユニット108で処理するよ
うに動作すると共に、第2命令デコーダは第2演算ユニ
ットを止めるように動作する。この結果、第1演算ユニ
ットによる逐次処理を行うことができる。
【0044】次に、図32を用いて、プロセッサステー
タスレジスタ103の処理状態フラグPE116の値が
OFFの時のパイプライン動作について詳しく説明す
る。
タスレジスタ103の処理状態フラグPE116の値が
OFFの時のパイプライン動作について詳しく説明す
る。
【0045】IFステージでは、プログラムカウンタに
よって指される1つの命令が読み出され、バス117を
通して、第1命令レジスタ104にセットされる。な
お、バス118は、処理状態フラグPE116の値がO
FFの時、有効な命令は出力されない。つまり、シーケ
ンサ111はプログラムカウンタを制御する回路であ
る。第1命令レジスタが分岐命令でないときには、プロ
グラムカウンタには前プログラムカウンタ値+1の値を
ラッチ102へセットする。分岐時には、分岐アドレス
を計算してプログラムカウンタにセットする。条件分岐
時には、第1演算ユニット108よりのフラグ情報12
0より、分岐の成否を判定し、分岐先アドレス情報12
1と分岐制御情報122を用いてプログラムカウンタ演
算器101を制御する。
よって指される1つの命令が読み出され、バス117を
通して、第1命令レジスタ104にセットされる。な
お、バス118は、処理状態フラグPE116の値がO
FFの時、有効な命令は出力されない。つまり、シーケ
ンサ111はプログラムカウンタを制御する回路であ
る。第1命令レジスタが分岐命令でないときには、プロ
グラムカウンタには前プログラムカウンタ値+1の値を
ラッチ102へセットする。分岐時には、分岐アドレス
を計算してプログラムカウンタにセットする。条件分岐
時には、第1演算ユニット108よりのフラグ情報12
0より、分岐の成否を判定し、分岐先アドレス情報12
1と分岐制御情報122を用いてプログラムカウンタ演
算器101を制御する。
【0046】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ
る。その結果、第1命令レジスタ104の第1ソースレ
ジスタフィールドS1で指されるレジスタの内容がバス
127を通して、第2ソースレジスタフィールドS2で
指されるレジスタの内容がバス128を通して、第1演
算ユニット108へ送出される。
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ
る。その結果、第1命令レジスタ104の第1ソースレ
ジスタフィールドS1で指されるレジスタの内容がバス
127を通して、第2ソースレジスタフィールドS2で
指されるレジスタの内容がバス128を通して、第1演
算ユニット108へ送出される。
【0047】次にEXステージの動作について説明す
る。EXステージでは、第1命令レジスタ104のオペ
コードの内容に従って第1演算ユニット108におい
て、バス127,128により送られてきたデータ間の
演算を行う。
る。EXステージでは、第1命令レジスタ104のオペ
コードの内容に従って第1演算ユニット108におい
て、バス127,128により送られてきたデータ間の
演算を行う。
【0048】最後にWステージの動作を説明する。Wス
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。
【0049】図18は、基本命令を連続して処理するフ
ローを示したものである。1マシンサイクルに2命令ず
つ処理される能力はあるが、1命令ずつ処理される。
ローを示したものである。1マシンサイクルに2命令ず
つ処理される能力はあるが、1命令ずつ処理される。
【0050】図19はロード命令,ストア命令を連続し
て処理するフローを示したものである。ロード命令実行
時には、Rステージで、第1命令レジスタのS2フィー
ルドで指されるレジスタの内容が、バス128を通し
て、MAR112へ転送される。次に、EXステージで、デー
タキャッシュ115を通して、オペランドをMDR113にフ
ェッチする。最後に、Wステージでフェッチされたオペ
ランドが、バス134を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。
て処理するフローを示したものである。ロード命令実行
時には、Rステージで、第1命令レジスタのS2フィー
ルドで指されるレジスタの内容が、バス128を通し
て、MAR112へ転送される。次に、EXステージで、デー
タキャッシュ115を通して、オペランドをMDR113にフ
ェッチする。最後に、Wステージでフェッチされたオペ
ランドが、バス134を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。
【0051】次にストア命令実行時には、Rステージに
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス135を通してMWR114に転送される。また同時に、第
1命令レジスタの第2ソースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス128
と131を通してMAR112に転送される。次にEXステー
ジで、MAR112で指される番地に、MWR114内のデータが書
き込まれる。図19に示すように、ロード命令,ストア
命令が連続しても、1マシンサイクルに2命令ずつ処理
する能力はあるが、1命令ずつ処理することができる。
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス135を通してMWR114に転送される。また同時に、第
1命令レジスタの第2ソースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス128
と131を通してMAR112に転送される。次にEXステー
ジで、MAR112で指される番地に、MWR114内のデータが書
き込まれる。図19に示すように、ロード命令,ストア
命令が連続しても、1マシンサイクルに2命令ずつ処理
する能力はあるが、1命令ずつ処理することができる。
【0052】図20は、無条件ジャンプBRA命令実行
時の処理フローを示したものである。BRA命令が読み
出されると、Rステージにおいてシーケンサ111はデ
ィスプレースメントフィールドdとプログラムカウンタ
との加算を行い、プログラムカウンタのラッチ102に
セットする。この間にBRA命令の次の番地の命令が読
み出される。その次のサイクルに、ジャンプ先の命令が
読み出される。本実施例では、命令1を実行可能なハー
ドウェアとしている。即ち、ジャンプ命令処理時も、待
ちサイクルが発生しない。
時の処理フローを示したものである。BRA命令が読み
出されると、Rステージにおいてシーケンサ111はデ
ィスプレースメントフィールドdとプログラムカウンタ
との加算を行い、プログラムカウンタのラッチ102に
セットする。この間にBRA命令の次の番地の命令が読
み出される。その次のサイクルに、ジャンプ先の命令が
読み出される。本実施例では、命令1を実行可能なハー
ドウェアとしている。即ち、ジャンプ命令処理時も、待
ちサイクルが発生しない。
【0053】プロセッサステータスレジスタ103の処
理状態フラグPE116の値がOFFのときについて述べ
てきたが、ONのときに比べてみると、本実施例ではデ
ィレイド分岐中に行われる命令2,命令3は実行できな
くなったが、従来のRISC型計算機と同じくジャンプ
命令のアドレス計算中に1命令実行できるようになっ
た。このように、本実施例の処理状態フラグPE116
の値がOFFのとき、従来と互換を保つ効果がある。C
ALL命令,RTN命令の処理フローも同様である。コ
ンパイラにより、分岐命令のアドレス計算中にできるか
ぎり有効な命令を実行できるようにコード生成するが、
何もすることが無い時には図20の命令1をNOP命令
としておく。このときには、実質的には1マシンサイク
ルの待ちが生ずる。
理状態フラグPE116の値がOFFのときについて述べ
てきたが、ONのときに比べてみると、本実施例ではデ
ィレイド分岐中に行われる命令2,命令3は実行できな
くなったが、従来のRISC型計算機と同じくジャンプ
命令のアドレス計算中に1命令実行できるようになっ
た。このように、本実施例の処理状態フラグPE116
の値がOFFのとき、従来と互換を保つ効果がある。C
ALL命令,RTN命令の処理フローも同様である。コ
ンパイラにより、分岐命令のアドレス計算中にできるか
ぎり有効な命令を実行できるようにコード生成するが、
何もすることが無い時には図20の命令1をNOP命令
としておく。このときには、実質的には1マシンサイク
ルの待ちが生ずる。
【0054】図21は条件分岐命令BRAccの処理フ
ローを示したものである。ADD,Fと示した命令で、
フラグのセットが行われ、その結果に従い分岐の成否が
決められる。このときも、図20を用いて説明した無条
件分岐命令と同様にBRAcc 命令の置かれている番地の次
の命令、図21の命令1が読み出されて処理され、この
命令の処理フロー中Wステージにおいて、BRAcc命
令の分岐条件の成否にかかわらず演算結果のレジスタフ
ァイルへの書き込みが行われる。
ローを示したものである。ADD,Fと示した命令で、
フラグのセットが行われ、その結果に従い分岐の成否が
決められる。このときも、図20を用いて説明した無条
件分岐命令と同様にBRAcc 命令の置かれている番地の次
の命令、図21の命令1が読み出されて処理され、この
命令の処理フロー中Wステージにおいて、BRAcc命
令の分岐条件の成否にかかわらず演算結果のレジスタフ
ァイルへの書き込みが行われる。
【0055】以上、図18〜図21を用いて説明したよ
うに、プロセッサステータスレジスタ103の処理状態
フラグPE116の値がOFFのときには、1命令ずつ
処理させ、従来のソフトウェアと互換性を保つという利
点がある。
うに、プロセッサステータスレジスタ103の処理状態
フラグPE116の値がOFFのときには、1命令ずつ
処理させ、従来のソフトウェアと互換性を保つという利
点がある。
【0056】以上、高度な並列処理手段と従来のソフト
ウェア互換を保つ逐次処理手段を有し、処理状態フラグ
に基づく処理手段切り換え方式の実施例を示した。
ウェア互換を保つ逐次処理手段を有し、処理状態フラグ
に基づく処理手段切り換え方式の実施例を示した。
【0057】本実施例の逐次処理手段は、1命令ずつ読
み出して第1演算ユニットで実行する方式であつたが、
図32からわかるように、2つの命令レジスタ104,
105が存在するため、プログラムカウンタは+2ずつ増
加させるように制御して、第1命令レジスタ104、及
び、第2命令レジスタ105へ2個の命令を読み出して
保存し、第1命令レジスタ104の命令を第1演算ユニ
ット108で実行し、続いて、第2命令レジスタ105
の命令を第2演算ユニット109で実行する手段を設け
ることによっても実現できる。すなわち、命令キャッシ
ュは、分岐命令を除き、2回に1回の割合で動作すれば
良い。
み出して第1演算ユニットで実行する方式であつたが、
図32からわかるように、2つの命令レジスタ104,
105が存在するため、プログラムカウンタは+2ずつ増
加させるように制御して、第1命令レジスタ104、及
び、第2命令レジスタ105へ2個の命令を読み出して
保存し、第1命令レジスタ104の命令を第1演算ユニ
ット108で実行し、続いて、第2命令レジスタ105
の命令を第2演算ユニット109で実行する手段を設け
ることによっても実現できる。すなわち、命令キャッシ
ュは、分岐命令を除き、2回に1回の割合で動作すれば
良い。
【0058】そこで再び、図32を用いてプロセッサス
テータスレジスタ103の処理状態フラグPE116の
値がOFFの時の“m命令を読み出して逐次処理する手
段”の動作を説明する。
テータスレジスタ103の処理状態フラグPE116の
値がOFFの時の“m命令を読み出して逐次処理する手
段”の動作を説明する。
【0059】IFステージでは、プログラムカウンタに
よって指される2つの命令が読み出され、バス117,
118を通して、それぞれ第1命令レジスタ104と第
2命令レジスタ105にセットされる。PCが偶数のと
きには、PC番地の命令が第1命令レジスタに、PC+
1番地の命令が第2命令レジスタに格納される。また、
PCが奇数のときには、第1命令レジスタにはNOP命
令が、第2命令レジスタにはPC番地の命令がセットさ
れる。つまり、シーケンサ111はプログラムカウンタ
を制御する回路である。第1命令レジスタ,第2命令レ
ジスタ共に分岐命令でないときには、プログラムカウン
タには前プログラムカウンタ値+2の値をラッチ102
へセットする。分岐時には、分岐アドレスを計算してプ
ログラムカウンタにセットする。条件分岐時には、第1
演算ユニット108よりのフラグ情報120、及び、第
2演算ユニット109よりのフラグ情報119より、分
岐の成否を判定し、分岐先アドレス情報121と分岐制
御情報122を用いてプログラムカウンタ演算器101
を制御する。なお、後述するように第1命令レジスタと
第2命令レジスタに保存されたそれぞれの命令は、後の
ステージで逐次的に処理されるため、各マシンサイクル
ごとに命令キャッシュを動作させるのではなく、2マシ
ンサイクルを1度動作させれば良い。
よって指される2つの命令が読み出され、バス117,
118を通して、それぞれ第1命令レジスタ104と第
2命令レジスタ105にセットされる。PCが偶数のと
きには、PC番地の命令が第1命令レジスタに、PC+
1番地の命令が第2命令レジスタに格納される。また、
PCが奇数のときには、第1命令レジスタにはNOP命
令が、第2命令レジスタにはPC番地の命令がセットさ
れる。つまり、シーケンサ111はプログラムカウンタ
を制御する回路である。第1命令レジスタ,第2命令レ
ジスタ共に分岐命令でないときには、プログラムカウン
タには前プログラムカウンタ値+2の値をラッチ102
へセットする。分岐時には、分岐アドレスを計算してプ
ログラムカウンタにセットする。条件分岐時には、第1
演算ユニット108よりのフラグ情報120、及び、第
2演算ユニット109よりのフラグ情報119より、分
岐の成否を判定し、分岐先アドレス情報121と分岐制
御情報122を用いてプログラムカウンタ演算器101
を制御する。なお、後述するように第1命令レジスタと
第2命令レジスタに保存されたそれぞれの命令は、後の
ステージで逐次的に処理されるため、各マシンサイクル
ごとに命令キャッシュを動作させるのではなく、2マシ
ンサイクルを1度動作させれば良い。
【0060】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ、
続いて次のステージで、第2命令レジスタ105の内容
が第2命令デコーダ107でデコードされる。その結
果、第1命令レジスタ104の第1ソースレジスタフィ
ールドS1で指されるレジスタの内容がバス127を通
して、第2ソースレジスタフィールドS2で指されるレ
ジスタの内容がバス128を通して、第1演算ユニット
108へ送出される。また、続いて次のステージで、第
2命令レジスタ105の第1ソースレジスタフィールド
S1で指されるレジスタの内容がバス129を通して、
第2ソースレジスタフィールドS2で指されるレジスタ
内容がバス130を通して、第2演算ユニット109へ
送出される。
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ、
続いて次のステージで、第2命令レジスタ105の内容
が第2命令デコーダ107でデコードされる。その結
果、第1命令レジスタ104の第1ソースレジスタフィ
ールドS1で指されるレジスタの内容がバス127を通
して、第2ソースレジスタフィールドS2で指されるレ
ジスタの内容がバス128を通して、第1演算ユニット
108へ送出される。また、続いて次のステージで、第
2命令レジスタ105の第1ソースレジスタフィールド
S1で指されるレジスタの内容がバス129を通して、
第2ソースレジスタフィールドS2で指されるレジスタ
内容がバス130を通して、第2演算ユニット109へ
送出される。
【0061】次にEXステージの動作について説明す
る。EXステージでは、第1命令レジスタ104のオペ
コードの内容に従って第1演算ユニット108におい
て、バス127,128により送られてきたデータ間の
演算を行う。続いて次のステージで、第2命令レジスタ
105のオペコードの内容に従って第2演算ユニット10
9において、バス129,130により送られてきたデ
ータ間の演算を行う。
る。EXステージでは、第1命令レジスタ104のオペ
コードの内容に従って第1演算ユニット108におい
て、バス127,128により送られてきたデータ間の
演算を行う。続いて次のステージで、第2命令レジスタ
105のオペコードの内容に従って第2演算ユニット10
9において、バス129,130により送られてきたデ
ータ間の演算を行う。
【0062】最後にWステージの動作を説明する。Wス
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。ま
た、続いて次のステージで、第2演算ユニット109の
演算結果がバス132を通して、第2命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。ま
た、続いて次のステージで、第2演算ユニット109の
演算結果がバス132を通して、第2命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。
【0063】図22は、基本命令ADDを連続して処理
するフローを示したものである。1マシンサイクルに2
命令ずつ処理できる能力があるが、1命令ずつ処理され
る。すなわち、2つのADD命令は同時にフェッチされ
るが、最初のADD命令のみがRステージの処理を実行
する。一方、2番目のADD命令は、1マシンサイクル
待った後にRステージの処理を実行する。ここで図22
で2命令ずつ処理される内の上の方が第1演算ユニット
の処理を、下の方が第2演算ユニットの処理を示してい
る。
するフローを示したものである。1マシンサイクルに2
命令ずつ処理できる能力があるが、1命令ずつ処理され
る。すなわち、2つのADD命令は同時にフェッチされ
るが、最初のADD命令のみがRステージの処理を実行
する。一方、2番目のADD命令は、1マシンサイクル
待った後にRステージの処理を実行する。ここで図22
で2命令ずつ処理される内の上の方が第1演算ユニット
の処理を、下の方が第2演算ユニットの処理を示してい
る。
【0064】図23はロード命令,ストア命令を連続し
て処理するフローを示したものである。ロード命令実行
時には、Rステージで、第1命令レジスタのS2フィー
ルドで指されるレジスタの内容が、バス128を通し
て、MAR112に転送される。次に、EXステージで、デー
タキャッシュからバス133を通して、オペランドをフ
ェッチする。最後に、Wステージでフェッチされたオペ
ランドが、バス134を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。EXステージで1マシンサイクルでオペラ
ンドをフェッチすることは、図1の如く高速データキャ
ッシュ115を備えていれば、可能である。
て処理するフローを示したものである。ロード命令実行
時には、Rステージで、第1命令レジスタのS2フィー
ルドで指されるレジスタの内容が、バス128を通し
て、MAR112に転送される。次に、EXステージで、デー
タキャッシュからバス133を通して、オペランドをフ
ェッチする。最後に、Wステージでフェッチされたオペ
ランドが、バス134を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。EXステージで1マシンサイクルでオペラ
ンドをフェッチすることは、図1の如く高速データキャ
ッシュ115を備えていれば、可能である。
【0065】次にストア命令実行は、ロード命令のRス
テージ実行後、Rステージにおいて第2命令レジスタの
第2ソースレジスタフィールドS1で指されるレジスタ
の内容がデータとして、バス135を通してMWR114に転
送される。また同時に、第2命令レジスタの第2ソース
レジスタフィールドS2で指されるレジスタの内容がア
ドレスとして、バス129を通してMAR112に転送され
る。次にEXステージで、MAR112で指される番地に、MW
R114内のデータが書き込まれる。図23に示すように、
ロード命令,ストア命令が連続しても、1マシンサイク
ルに2命令ずつ処理することができる能力はあるが、1
命令ずつ処理することができる。
テージ実行後、Rステージにおいて第2命令レジスタの
第2ソースレジスタフィールドS1で指されるレジスタ
の内容がデータとして、バス135を通してMWR114に転
送される。また同時に、第2命令レジスタの第2ソース
レジスタフィールドS2で指されるレジスタの内容がア
ドレスとして、バス129を通してMAR112に転送され
る。次にEXステージで、MAR112で指される番地に、MW
R114内のデータが書き込まれる。図23に示すように、
ロード命令,ストア命令が連続しても、1マシンサイク
ルに2命令ずつ処理することができる能力はあるが、1
命令ずつ処理することができる。
【0066】図24から図27は、無条件ジャンプBR
A命令と引き続く番地の命令1の実行時の処理フローを
示したものである。特に、図24と図25は第1命令
に、図26と図27は第2命令にそれぞれ無条件ジャン
プBRA命令が存在しているときのパイプライン処理フ
ローを示しており、さらに、図24と図26はジャンプ
先命令が第1命令に相当する番地に有るとき、図25と
図27はジャンプ先命令が第2命令に相当する番地に有
る場合である。BRA命令が命令レジスタから読み出さ
れると、Rステージにおいてシーケンサ111はディス
プレースメントフィールドdとプログラムカウンタとの
加算を行い、プログラムカウンタのラッチ102にセッ
トする。この間にBRA命令の次の番地の命令が次のサ
イクルで実行される。そして、次の次のサイクルに、ジ
ャンプ先の2命令が読み出される。ここで、無条件ジャ
ンプBRA命令が第2命令に有るとき(図26,図2
7)、BRA命令の次の番地の命令を含む2命令をIF
ステージで命令キャッシュから読み出すが、第1命令は
実行するが、第2命令は実行せずにジャンプ先命令を実
行するように制御されている。つまり、分岐命令の次の
命令より後の命令が命令レジスタに保持されていてもそ
れらは、実行されずに無効化される。
A命令と引き続く番地の命令1の実行時の処理フローを
示したものである。特に、図24と図25は第1命令
に、図26と図27は第2命令にそれぞれ無条件ジャン
プBRA命令が存在しているときのパイプライン処理フ
ローを示しており、さらに、図24と図26はジャンプ
先命令が第1命令に相当する番地に有るとき、図25と
図27はジャンプ先命令が第2命令に相当する番地に有
る場合である。BRA命令が命令レジスタから読み出さ
れると、Rステージにおいてシーケンサ111はディス
プレースメントフィールドdとプログラムカウンタとの
加算を行い、プログラムカウンタのラッチ102にセッ
トする。この間にBRA命令の次の番地の命令が次のサ
イクルで実行される。そして、次の次のサイクルに、ジ
ャンプ先の2命令が読み出される。ここで、無条件ジャ
ンプBRA命令が第2命令に有るとき(図26,図2
7)、BRA命令の次の番地の命令を含む2命令をIF
ステージで命令キャッシュから読み出すが、第1命令は
実行するが、第2命令は実行せずにジャンプ先命令を実
行するように制御されている。つまり、分岐命令の次の
命令より後の命令が命令レジスタに保持されていてもそ
れらは、実行されずに無効化される。
【0067】さらに、ジャンプ先命令が第2命令に相当
する番地に有るとき(図25,図27)、ジャンプ先命
令を含む2命令をIFステージで命令キャッシュから読
み出すが、ジャンプ先の第1命令は実行せずにジャンプ
先の第2命令のみを実行するように制御されている。つ
まり、ジャンプ先命令より前の命令が命令レジスタに保
持されていてもそれらは、実行されずに無効化される。
なお、CALL命令,RTN命令の処理フローも同様で
ある。
する番地に有るとき(図25,図27)、ジャンプ先命
令を含む2命令をIFステージで命令キャッシュから読
み出すが、ジャンプ先の第1命令は実行せずにジャンプ
先の第2命令のみを実行するように制御されている。つ
まり、ジャンプ先命令より前の命令が命令レジスタに保
持されていてもそれらは、実行されずに無効化される。
なお、CALL命令,RTN命令の処理フローも同様で
ある。
【0068】図28から図31は、条件分岐命令BRA
cc命令と命令1の実行時の処理フローを示したもので
ある。ここで、図30と図31は第1命令に、図28と
図29は第2命令にそれぞれ条件分岐命令BRAcc命
令が存在しているときの処理フローであり、また、図2
8と図30はジャンプ先命令が第1命令に相当する番地
に有るとき、図29と図31はジャンプ先命令が第2命
令に相当する番地に有る場合の処理フローである。図2
8から図31はADD,Fと示した命令でフラグのセッ
トが行われ、その結果に従い分岐の成否が決められる。
このときも、図24から図27を用いて説明した無条件
分岐命令処理時と同様にBRAcc命令に置かれている
番地の次の命令1が実行され、命令1の処理フロー中W
ステージにおいては、BRAcc命令の分岐条件の成否
にかかわらず演算結果のレジスタファイルへの書き込み
が行われる。
cc命令と命令1の実行時の処理フローを示したもので
ある。ここで、図30と図31は第1命令に、図28と
図29は第2命令にそれぞれ条件分岐命令BRAcc命
令が存在しているときの処理フローであり、また、図2
8と図30はジャンプ先命令が第1命令に相当する番地
に有るとき、図29と図31はジャンプ先命令が第2命
令に相当する番地に有る場合の処理フローである。図2
8から図31はADD,Fと示した命令でフラグのセッ
トが行われ、その結果に従い分岐の成否が決められる。
このときも、図24から図27を用いて説明した無条件
分岐命令処理時と同様にBRAcc命令に置かれている
番地の次の命令1が実行され、命令1の処理フロー中W
ステージにおいては、BRAcc命令の分岐条件の成否
にかかわらず演算結果のレジスタファイルへの書き込み
が行われる。
【0069】図30と図31のごとくBRA命令が第1
命令として存在する場合には、BRAcc命令が命令レ
ジスタから読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットするとともに命令1のオペランド
のリードを並列処理する。この間に命令1の次の番地の
命令が次のサイクルで実行される。そして、次の次のサ
イクルに、ジャンプ先の2命令が読み出される。
命令として存在する場合には、BRAcc命令が命令レ
ジスタから読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットするとともに命令1のオペランド
のリードを並列処理する。この間に命令1の次の番地の
命令が次のサイクルで実行される。そして、次の次のサ
イクルに、ジャンプ先の2命令が読み出される。
【0070】一方、条件分岐命令BRAcc命令が第2
命令に有るとき(図28,図29)、BRAcc命令の
次の番地の命令を含む2命令をIFステージで命令キャ
ッシュから読み出すが、第1命令は実行するが、第2命
令は実行せずにジャンプ先命令を実行するように制御さ
れている。つまり、条件分岐命令の次の命令より後の命
令が命令レジスタに保持されていても、それらは条件成
立のときは、実行されずに無効化される。
命令に有るとき(図28,図29)、BRAcc命令の
次の番地の命令を含む2命令をIFステージで命令キャ
ッシュから読み出すが、第1命令は実行するが、第2命
令は実行せずにジャンプ先命令を実行するように制御さ
れている。つまり、条件分岐命令の次の命令より後の命
令が命令レジスタに保持されていても、それらは条件成
立のときは、実行されずに無効化される。
【0071】さらに、条件分岐命令が実行され条件成立
したときジャンプする。ジャンプ先命令が第2命令に相
当する番地に有るとき(図29,図31)、ジャンプ先
命令を含む2命令をIFステージで命令キャッシュから
読み出すが、第1命令は実行せずに第2命令のジャンプ
先命令を実行するように制御されている。つまり、ジャ
ンプ先命令より前の命令が命令レジスタに保持されてい
てもそれらは、実行されずに無効化される。
したときジャンプする。ジャンプ先命令が第2命令に相
当する番地に有るとき(図29,図31)、ジャンプ先
命令を含む2命令をIFステージで命令キャッシュから
読み出すが、第1命令は実行せずに第2命令のジャンプ
先命令を実行するように制御されている。つまり、ジャ
ンプ先命令より前の命令が命令レジスタに保持されてい
てもそれらは、実行されずに無効化される。
【0072】以上、“m命令を同時に読み出してm個の
演算ユニットで逐次処理する手段”の動作を説明した
が、結果的には、プログラムカウンタは+2ずつ増加さ
せるように制御して、第1命令レジスタ104、及び、
第2命令レジスタ105へ2個の命令を読み出して保存
し、第1命令レジスタ104の命令を第1演算ユニット
108で実行し、続いて、第2命令レジスタ105の命
令を第2演算ユニット109で実行する手段(逐次処
理)を設けるようにすることである。これによって、命
令キャッシュは、分岐命令を除き、2回に1回の割合で
動作すれば良い。以上、高速な並列処理手段と従来のソ
フトウェア互換を保つ逐次処理手段を有し、処理状態フ
ラグに基づく処理手段切り換え方式の実施例を示した。
演算ユニットで逐次処理する手段”の動作を説明した
が、結果的には、プログラムカウンタは+2ずつ増加さ
せるように制御して、第1命令レジスタ104、及び、
第2命令レジスタ105へ2個の命令を読み出して保存
し、第1命令レジスタ104の命令を第1演算ユニット
108で実行し、続いて、第2命令レジスタ105の命
令を第2演算ユニット109で実行する手段(逐次処
理)を設けるようにすることである。これによって、命
令キャッシュは、分岐命令を除き、2回に1回の割合で
動作すれば良い。以上、高速な並列処理手段と従来のソ
フトウェア互換を保つ逐次処理手段を有し、処理状態フ
ラグに基づく処理手段切り換え方式の実施例を示した。
【0073】しかしながら、本実施例の並列実行処理手
段は、図1のプロセッサステータスレジスタ103の処
理状態フラグPE116の値がONの時、1マシンサイ
クルに2命令ずつ処理させるので、その処理能力を最大
2倍に向上できたが、図14から図17に示すように、
ディレイド分岐命令を拡張したために、従来ソフトウェ
アとの互換性を失っている。そこでディレイド分岐命令
の後続の一命令のみを実行する制御手段を設けることに
よって大部分のソフトウェアの互換を保つ方法を述べ
る。図33は図32に制御信号線147を加えたもので
ある。つまり、第2命令デコーダ107にてディレイド
分岐命令を解読している時は、後続のディレイスロット
命令は第1命令レジスタ104に存在する。しかし、第
2命令レジスタ105に保持している命令は、実行して
はならない命令である。そこで第2命令デコーダ107
がディレイド分岐命令を検出時に制御信号線147を介
して第2命令レジスタ105の内容を無効化することに
より、ディレイド分岐命令に後続する1命令のみを実行
する。
段は、図1のプロセッサステータスレジスタ103の処
理状態フラグPE116の値がONの時、1マシンサイ
クルに2命令ずつ処理させるので、その処理能力を最大
2倍に向上できたが、図14から図17に示すように、
ディレイド分岐命令を拡張したために、従来ソフトウェ
アとの互換性を失っている。そこでディレイド分岐命令
の後続の一命令のみを実行する制御手段を設けることに
よって大部分のソフトウェアの互換を保つ方法を述べ
る。図33は図32に制御信号線147を加えたもので
ある。つまり、第2命令デコーダ107にてディレイド
分岐命令を解読している時は、後続のディレイスロット
命令は第1命令レジスタ104に存在する。しかし、第
2命令レジスタ105に保持している命令は、実行して
はならない命令である。そこで第2命令デコーダ107
がディレイド分岐命令を検出時に制御信号線147を介
して第2命令レジスタ105の内容を無効化することに
より、ディレイド分岐命令に後続する1命令のみを実行
する。
【0074】また、第1命令デコーダ106にてディレ
イド分岐命令を解読している時は、後続のディレイスロ
ット命令は第2命令デコーダ107にて解読中であり、
並列実行しても問題はない。以上のように制御信号線1
47を用いて第2命令レジスタ105の内容を無効化に
することにより大部分のソフトウェアの互換性を保つこ
とができる。
イド分岐命令を解読している時は、後続のディレイスロ
ット命令は第2命令デコーダ107にて解読中であり、
並列実行しても問題はない。以上のように制御信号線1
47を用いて第2命令レジスタ105の内容を無効化に
することにより大部分のソフトウェアの互換性を保つこ
とができる。
【0075】次に、処理状態フラグを用いずに、常時並
列処理を行うことを基本にした“大部分の従来のソフト
ウェアを正しく実行できる方式”の実施例を述べる。
列処理を行うことを基本にした“大部分の従来のソフト
ウェアを正しく実行できる方式”の実施例を述べる。
【0076】本実施例は、分岐命令を除く処理について
は、基本的には2命令ずつ処理し、分岐命令は次に引き
続く1つの命令のみ(図14から図17の命令1だけ)
実行し、残りの命令の実行は抑止する手段を設けるよう
にすることである。
は、基本的には2命令ずつ処理し、分岐命令は次に引き
続く1つの命令のみ(図14から図17の命令1だけ)
実行し、残りの命令の実行は抑止する手段を設けるよう
にすることである。
【0077】図34は、常に並列処理を行うことを基本
とした構成である。即ち、プログラムカウンタ演算器1
01は、常に+2加算される(143)。しかし、制御
信号線147を用いて第2命令レジスタ105の内容を
無効化することによってソフトウェアの互換性を保つこ
とができる。以下に図14ないし図17を用いて図34
に示す構成の動作を説明する。なお、図14は、前述し
た実施例のものを使用する。
とした構成である。即ち、プログラムカウンタ演算器1
01は、常に+2加算される(143)。しかし、制御
信号線147を用いて第2命令レジスタ105の内容を
無効化することによってソフトウェアの互換性を保つこ
とができる。以下に図14ないし図17を用いて図34
に示す構成の動作を説明する。なお、図14は、前述し
た実施例のものを使用する。
【0078】図14は、第2命令として無条件ジャンプ
BRA命令実行時の処理フローを示したものである。B
RA命令が読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットする。この間にBRA命令に引き
続く番地の命令1と命令2が読み出され、その次のサイ
クルに、ジャンプ先の2命令が読み出される。本実施例
では、命令1のみを実行し、命令2の実行を抑止する。
すなわち、従来のソフトウェアとの互換性をとるため
に、分岐命令BRAに引き続く1命令しか実行できないよ
うに制御することである。つまり、図14の命令2は、
図34の第2命令デコーダ107でNOP命令と等価な
処理になるように信号線147を介して制御するか、ま
たは、第2命令のレジスタファイルへの書き込みを抑止
するように制御することで可能となる。コンパイラによ
り、分岐命令のアドレス計算中にできるかぎり有効な命
令を実行できるようにコード生成するが、何もすること
が無い時には図14の命令1をNOP命令としておく。
このときには、実質的には1マシンサイクルの待ちが生
ずる。
BRA命令実行時の処理フローを示したものである。B
RA命令が読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットする。この間にBRA命令に引き
続く番地の命令1と命令2が読み出され、その次のサイ
クルに、ジャンプ先の2命令が読み出される。本実施例
では、命令1のみを実行し、命令2の実行を抑止する。
すなわち、従来のソフトウェアとの互換性をとるため
に、分岐命令BRAに引き続く1命令しか実行できないよ
うに制御することである。つまり、図14の命令2は、
図34の第2命令デコーダ107でNOP命令と等価な
処理になるように信号線147を介して制御するか、ま
たは、第2命令のレジスタファイルへの書き込みを抑止
するように制御することで可能となる。コンパイラによ
り、分岐命令のアドレス計算中にできるかぎり有効な命
令を実行できるようにコード生成するが、何もすること
が無い時には図14の命令1をNOP命令としておく。
このときには、実質的には1マシンサイクルの待ちが生
ずる。
【0079】図15は、第2命令として条件分岐命令B
RAcc命令実行時の処理フローを示したものである。
ADD,Fと示した命令で、フラグのセットが行われ、
その結果に従い分岐の成否が決められる。このときも、
図14を用いて説明した無条件分岐命令と同様にBRA
cc命令におかれている番地の次の命令、図15の命令
1と命令2が読み出され、命令1の処理フロー中Wステ
ージにおいては、BRAcc命令の分岐条件の成否にか
かわらず演算結果のレジスタファイルへの書き込みが行
われ、一方、命令2の実行は抑止する。すなわち、図1
5の命令2は、図34の第2命令デコーダ107でNO
P命令と等価な処理になるように制御するか、または、
第2命令のレジスタファイルへの書き込みを抑止するよ
うに制御することで可能となる。この時には、実質的に
1マシンサイクルの待ちが生ずる。
RAcc命令実行時の処理フローを示したものである。
ADD,Fと示した命令で、フラグのセットが行われ、
その結果に従い分岐の成否が決められる。このときも、
図14を用いて説明した無条件分岐命令と同様にBRA
cc命令におかれている番地の次の命令、図15の命令
1と命令2が読み出され、命令1の処理フロー中Wステ
ージにおいては、BRAcc命令の分岐条件の成否にか
かわらず演算結果のレジスタファイルへの書き込みが行
われ、一方、命令2の実行は抑止する。すなわち、図1
5の命令2は、図34の第2命令デコーダ107でNO
P命令と等価な処理になるように制御するか、または、
第2命令のレジスタファイルへの書き込みを抑止するよ
うに制御することで可能となる。この時には、実質的に
1マシンサイクルの待ちが生ずる。
【0080】さらに、図16は、第1命令として無条件
ジャンプBRA命令実行時の処理フローを示したもので
ある。BRA命令と命令1が読み出されると、Rステー
ジにおいてシーケンサ111はディスプレースメントフ
ィールドdとプログラムカウンタとの加算を行い、プロ
グラムカウンタのラッチ102にセットすると同時に、
命令1のオペランドをリードする。この間に次の命令2
と命令3が読み出される。そしてその次のサイクルに、
ジャンプ先の命令1と命令2が読み出される。しかしな
がら、従来のソフトウェアとの互換性をとるために、分
岐命令BRA命令と引き続き命令1は、並列に実行する
が命令2と命令3の実行は抑止する。つまり、図16の
命令2,命令3は、図34の第1命令のデコーダ10
6,第2命令デコーダ107でNOP命令と等価な処理
になるように制御するか、または、第2命令,第3命令
のレジスタファイルへの書き込みを抑止するように制御
することで可能となる。コンパイラにより、分岐命令の
アドレス計算中にできるかぎり有効な命令を実行できる
ようにコード生成するが、何もすることが無い時には図
16の命令1をNOP命令としておく。このときには、
実質的には1マシンサイクルの待ちが生ずる。
ジャンプBRA命令実行時の処理フローを示したもので
ある。BRA命令と命令1が読み出されると、Rステー
ジにおいてシーケンサ111はディスプレースメントフ
ィールドdとプログラムカウンタとの加算を行い、プロ
グラムカウンタのラッチ102にセットすると同時に、
命令1のオペランドをリードする。この間に次の命令2
と命令3が読み出される。そしてその次のサイクルに、
ジャンプ先の命令1と命令2が読み出される。しかしな
がら、従来のソフトウェアとの互換性をとるために、分
岐命令BRA命令と引き続き命令1は、並列に実行する
が命令2と命令3の実行は抑止する。つまり、図16の
命令2,命令3は、図34の第1命令のデコーダ10
6,第2命令デコーダ107でNOP命令と等価な処理
になるように制御するか、または、第2命令,第3命令
のレジスタファイルへの書き込みを抑止するように制御
することで可能となる。コンパイラにより、分岐命令の
アドレス計算中にできるかぎり有効な命令を実行できる
ようにコード生成するが、何もすることが無い時には図
16の命令1をNOP命令としておく。このときには、
実質的には1マシンサイクルの待ちが生ずる。
【0081】図17は、第1命令として条件分岐命令B
RAcc命令実行時の処理フローを示したものである。
ADD,Fと示した命令で、分岐状態フラグのセットが
行われ、その結果に従い分岐の成否が決められる。この
ときも、図16を用いて説明した無条件分岐命令と同様
にBRAcc命令と引き続く番地の命令1が同時に読み
出され、命令1の処理フロー中Wステージにおいて、B
RAcc命令の分岐条件の成否にかかわらず演算結果の
レジスタファイルへの書き込みが行われる。さらに、図
17の命令2と命令3は、図34の第1命令デコーダ1
06と第2命令デコーダ107においてNOP命令と等
価な処理になるように制御するか、または、第2命令と
第3命令のレジスタファイルへの書き込みを抑止するよ
うに制御するか、または、分岐命令が第1命令の場合に
は、命令1を並列実行後にジャンプ先命令1へ分岐する
ように制御することで可能となる。
RAcc命令実行時の処理フローを示したものである。
ADD,Fと示した命令で、分岐状態フラグのセットが
行われ、その結果に従い分岐の成否が決められる。この
ときも、図16を用いて説明した無条件分岐命令と同様
にBRAcc命令と引き続く番地の命令1が同時に読み
出され、命令1の処理フロー中Wステージにおいて、B
RAcc命令の分岐条件の成否にかかわらず演算結果の
レジスタファイルへの書き込みが行われる。さらに、図
17の命令2と命令3は、図34の第1命令デコーダ1
06と第2命令デコーダ107においてNOP命令と等
価な処理になるように制御するか、または、第2命令と
第3命令のレジスタファイルへの書き込みを抑止するよ
うに制御するか、または、分岐命令が第1命令の場合に
は、命令1を並列実行後にジャンプ先命令1へ分岐する
ように制御することで可能となる。
【0082】以上、大部分のソフトウェアを正常実行可
能にし、かつ並列実行により高速化する方式の動作を図
34を用いて説明したが、結果的には、図14,図15
の命令2、図16,図17の命令2,命令3の実行を抑
止することである。これによって、1サイクルの待ちサ
イクルを有効に利用した従来のディレイド分岐方式の互
換性を保つことができ、且つ、それ以外の命令は基本的
には2命令並列実行可能であるため、従来ソフトウェア
の互換性と1から2倍の間に処理性能を向上できる両方
の効果がある。
能にし、かつ並列実行により高速化する方式の動作を図
34を用いて説明したが、結果的には、図14,図15
の命令2、図16,図17の命令2,命令3の実行を抑
止することである。これによって、1サイクルの待ちサ
イクルを有効に利用した従来のディレイド分岐方式の互
換性を保つことができ、且つ、それ以外の命令は基本的
には2命令並列実行可能であるため、従来ソフトウェア
の互換性と1から2倍の間に処理性能を向上できる両方
の効果がある。
【0083】以上、分岐命令を中心に並列実行処理手段
を説明したが、当然のことながら第1命令と第2命令の
組合せによって、両命令を同時に実行できないことがあ
る。これを競合と呼ぶことにする。以下に競合を説明す
る。
を説明したが、当然のことながら第1命令と第2命令の
組合せによって、両命令を同時に実行できないことがあ
る。これを競合と呼ぶことにする。以下に競合を説明す
る。
【0084】1.ロード,ストア命令の組合せ。
【0085】2.第1命令のディスティネーションレジ
スタフィールドDで指示されるレジスタと、第2命令の
第1ソースレジスタフィールドS1で指示されるレジス
タ、または、第2命令の第2ソースレジスタフィールド
S2で指示されるレジスタが一致する時。
スタフィールドDで指示されるレジスタと、第2命令の
第1ソースレジスタフィールドS1で指示されるレジス
タ、または、第2命令の第2ソースレジスタフィールド
S2で指示されるレジスタが一致する時。
【0086】上記競合の時、1.はデータキャッシュを
複数の命令から同時にアクセスできないことにより生ず
る本実施例特有の問題である。例えば、データキャッシ
ュを2ポート化すれば解決できる。また、2.について
は、図34の第1命令デコーダと第2命令デコーダにお
いて互いのソースレジスタフィールドとディスティネー
ションレジスタフィールドの一致比較を行い、一致した
場合には第2命令をNOP命令に変えてしまうことで実
現できる。すなわち、第1命令のディスティネーション
レジスタフィールドDで指示されたレジスタと第2命令
の2つのソースレジスタフィールドで指示されるレジス
タが一致した場合に、第2命令をNOP命令に変更して第
1命令とNOP命令を並列実行処理し、次のサイクルで
は、第1命令をNOP命令に変更してNOP命令と第2
命令を並列実行することで達成できる。
複数の命令から同時にアクセスできないことにより生ず
る本実施例特有の問題である。例えば、データキャッシ
ュを2ポート化すれば解決できる。また、2.について
は、図34の第1命令デコーダと第2命令デコーダにお
いて互いのソースレジスタフィールドとディスティネー
ションレジスタフィールドの一致比較を行い、一致した
場合には第2命令をNOP命令に変えてしまうことで実
現できる。すなわち、第1命令のディスティネーション
レジスタフィールドDで指示されたレジスタと第2命令
の2つのソースレジスタフィールドで指示されるレジス
タが一致した場合に、第2命令をNOP命令に変更して第
1命令とNOP命令を並列実行処理し、次のサイクルで
は、第1命令をNOP命令に変更してNOP命令と第2
命令を並列実行することで達成できる。
【0087】以上、並列実行時の競合問題について述べ
た。
た。
【0088】本発明の全ての実施例は、2つの命令デコ
ーダと2つの演算ユニットを備えた場合について述べた
が、明らかに4台8台と増やしても全く問題はない。
ーダと2つの演算ユニットを備えた場合について述べた
が、明らかに4台8台と増やしても全く問題はない。
【0089】本発明の最後の実施例について述べる。そ
れは、図33のプロセッサステータスレジスタ103の
処理状態フラグPE116についてである。本来、処理
状態フラグPE116は、従来ソフトウェアとの互換性
を必要とするシステムにおいて、ハードウェアの切り換
えを行うための情報源としての切り換え可能な手段、及
び、切り換えるための命令によりそれを切り換えるもの
であつた。
れは、図33のプロセッサステータスレジスタ103の
処理状態フラグPE116についてである。本来、処理
状態フラグPE116は、従来ソフトウェアとの互換性
を必要とするシステムにおいて、ハードウェアの切り換
えを行うための情報源としての切り換え可能な手段、及
び、切り換えるための命令によりそれを切り換えるもの
であつた。
【0090】しかし、専用システム、これから作成され
る新しいソフトウェアだけを実行すれば良いシステムな
どでは、システムに組むときに片方の機能しか利用しな
い場合がある。そこで、データ処理装置としては、並列
実行処理手段と逐次実行処理手段の両方の手段を備えて
おき、構築するシステムに応じて片方の手段だけを組み
込む手段が必要となる。この機能を実現する1つの手段
としては、プロセッサステータスレジスタ103の処理
状態フラグPE116を、初期化時,リセット時に命令
によりどちらかにセットする手段がある。また、マイク
ロプロセッサなどのLSIの場合、LSIと外部とで信
号をやり取りするピンを用いて、上記2つの手段を切り
換える選択手段もある。ピンは周知の通りLSIから延
びているものである。
る新しいソフトウェアだけを実行すれば良いシステムな
どでは、システムに組むときに片方の機能しか利用しな
い場合がある。そこで、データ処理装置としては、並列
実行処理手段と逐次実行処理手段の両方の手段を備えて
おき、構築するシステムに応じて片方の手段だけを組み
込む手段が必要となる。この機能を実現する1つの手段
としては、プロセッサステータスレジスタ103の処理
状態フラグPE116を、初期化時,リセット時に命令
によりどちらかにセットする手段がある。また、マイク
ロプロセッサなどのLSIの場合、LSIと外部とで信
号をやり取りするピンを用いて、上記2つの手段を切り
換える選択手段もある。ピンは周知の通りLSIから延
びているものである。
【0091】
【発明の効果】本発明によれば、従来の逐次処理型計算
機上で動作する全てのソフトウェアを正常動作させ、し
かも、高度な並列処理機能を用いて、より高速実行する
ことができるため処理時間を短縮できる。さらに、大部
分の従来のソフトウェアを正常動作させ、かつ高度な並
列処理機能を用いて、より高速実行することができる。
機上で動作する全てのソフトウェアを正常動作させ、し
かも、高度な並列処理機能を用いて、より高速実行する
ことができるため処理時間を短縮できる。さらに、大部
分の従来のソフトウェアを正常動作させ、かつ高度な並
列処理機能を用いて、より高速実行することができる。
【図1】本発明の一実施例を示す全体ブロック図であ
る。
る。
【図2】従来例の全体ブロック図である。
【図3】図2に示す構成の動作を説明するタイミングチ
ャートである。
ャートである。
【図4】図2に示す構成の動作を説明するタイミングチ
ャートである。
ャートである。
【図5】図2に示す構成の動作を説明するタイミングチ
ャートである。
ャートである。
【図6】もう1つの従来例の全体ブロック図である。
【図7】図6に示す構成の動作を説明するタイミングチ
ャートである。
ャートである。
【図8】図6に示す構成の動作を説明するタイミングチ
ャートである。
ャートである。
【図9】RISC型計算機のディレイド分岐命令処理フ
ロー図である。
ロー図である。
【図10】本発明の命令一覧を示す図である。
【図11】本発明の命令フォーマットを示す図である。
【図12】本発明の並列処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図13】本発明の並列処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図14】並列処理における動作を説明するタイミング
チャートである。
チャートである。
【図15】並列処理における動作を説明するタイミング
チャートである。
チャートである。
【図16】並列処理における動作を説明するタイミング
チャートである。
チャートである。
【図17】並列処理における動作を説明するタイミング
チャートである。
チャートである。
【図18】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図19】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図20】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図21】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図22】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図23】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図24】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図25】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図26】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図27】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図28】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図29】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図30】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図31】本発明の逐次処理における動作を説明するタ
イミングチャートである。
イミングチャートである。
【図32】本発明の他の実施例を示す全体ブロック図で
ある。
ある。
【図33】本発明の他の実施例を示す全体ブロック図で
ある。
ある。
【図34】本発明の他の実施例を示す全体ブロック図で
ある。
ある。
103…プロセッサステータスレジスタ、104…第1
命令レジスタ、105…第2命令レジスタ、106…第
1命令デコーダ、107…第2命令デコーダ、108…
第1演算ユニット、109…第2演算ユニット、110
…レジスタファイル。
命令レジスタ、105…第2命令レジスタ、106…第
1命令デコーダ、107…第2命令デコーダ、108…
第1演算ユニット、109…第2演算ユニット、110
…レジスタファイル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂東 忠秋 茨城県日立市久慈町4026番地 株式会社 日立製作所 日立研究所内 (56)参考文献 特開 平2−130635(JP,A) 特開 平2−227730(JP,A) 特開 平3−116233(JP,A) 実開 昭58−187850(JP,U)
Claims (6)
- 【請求項1】メモリから読み出すべき命令を指示するプ
ログラムカウンタと、上記 プログラムカウンタによって指示された命令をそれ
ぞれ格納するための複数の命令レジスタと、 演算を実行するための複数の演算ユニットと、上記 プログラムカウンタの指示により上記メモリから読
み出された連続する複数の命令を、上記複数の演算ユニ
ットで並列処理するか、または、上記プログラムカウン
タの指示により上記メモリから読み出されたn個の連続
した命令を逐次処理するかのいずれかの処理を行う、上
記複数の演算ユニットを制御する制御手段を有し、上記 制御手段は、上記複数の演算ユニットが1個ずつ順
に処理するように上記複数の命令レジスタから上記n個
の連続した命令を与えることを特徴とする並列処理装
置。 - 【請求項2】メモリから読み出すべき命令を指示するプ
ログラムカウンタと、 上記プログラムカウンタによって指示された命令をそれ
ぞれ格納するための複数の命令レジスタと、 演算を実行するための複数の演算ユニットと、 上記プログラムカウンタの指示により上記メモリから読
み出された連続する複数の命令を、上記複数の演算ユニ
ットで並列処理するか、または、上記プログラムカウン
タの指示により上記メモリから読み出されたn個の連続
した命令を逐次処理するかのいずれかの処理を行う、上
記複数の演算ユニットを制御する制御手段を有し、 上記制御手段は、上記複数の演算ユニットの処理の開始
が異なるように、上記複数の命令レジスタから上記n個
の連続した命令を与えることを特徴とする並列処理装
置。 - 【請求項3】請求項1又は2に記載の並列処理装置にお
いて、 上記複数の演算ユニットを制御するための手段は、処理
状態切替命令または、ピンを介して外部から与えられる
制御信号のいずれかにより、処理状態を制御することを
特徴とする並列処理装置。 - 【請求項4】請求項1又は2に記載の並列処理装置にお
いて、 さらに、処理状態識別手段によって指示される値に応じ
て、mまたは1値を増加させるように上記プログラムカ
ウンタを制御する手段を有することを特徴とする並列処
理装置。 - 【請求項5】請求項1又は2に記載の並列処理装置にお
いて、 さらに、上記プログラムカウンタを制御するためのシー
ケンサを含み、上記シーケンサはワイヤードロジック回
路により構成されることを特徴とする並列処理装置。 - 【請求項6】請求項1又は2に記載の並列処理装置にお
いて、 さらに、上記プログラムカウンタを制御するためのシー
ケンサを含み、上記シーケンサはマイクロプログラムに
より実現されることを特徴とする並列処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8051298A JP2636821B2 (ja) | 1996-03-08 | 1996-03-08 | 並列処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8051298A JP2636821B2 (ja) | 1996-03-08 | 1996-03-08 | 並列処理装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2177425A Division JP2550213B2 (ja) | 1989-07-07 | 1990-07-06 | 並列処理装置および並列処理方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9012209A Division JP2785820B2 (ja) | 1997-01-27 | 1997-01-27 | 並列処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08234982A JPH08234982A (ja) | 1996-09-13 |
JP2636821B2 true JP2636821B2 (ja) | 1997-07-30 |
Family
ID=12883025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8051298A Expired - Fee Related JP2636821B2 (ja) | 1996-03-08 | 1996-03-08 | 並列処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2636821B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2785820B2 (ja) | 1997-01-27 | 1998-08-13 | 株式会社日立製作所 | 並列処理装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4564025B2 (ja) * | 2007-03-19 | 2010-10-20 | 株式会社リコー | 情報処理装置における割り込み処理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58187850U (ja) * | 1982-06-04 | 1983-12-13 | 株式会社日立製作所 | ベクトル処理装置 |
JPH0769824B2 (ja) * | 1988-11-11 | 1995-07-31 | 株式会社日立製作所 | 複数命令同時処理方式 |
EP0378415A3 (en) * | 1989-01-13 | 1991-09-25 | International Business Machines Corporation | Multiple instruction dispatch mechanism |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
DE69032812T2 (de) * | 1989-07-07 | 1999-04-29 | Hitachi, Ltd., Tokio/Tokyo | Vorrichtung und Verfahren zur parallelen Verarbeitung |
-
1996
- 1996-03-08 JP JP8051298A patent/JP2636821B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2785820B2 (ja) | 1997-01-27 | 1998-08-13 | 株式会社日立製作所 | 並列処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH08234982A (ja) | 1996-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2550213B2 (ja) | 並列処理装置および並列処理方法 | |
EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
JP2834837B2 (ja) | プログラマブルコントローラ | |
JPH0926878A (ja) | データ処理装置 | |
US4897787A (en) | Data processing system | |
US5041968A (en) | Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location | |
JP2006313561A (ja) | データ処理装置 | |
JP3790626B2 (ja) | デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置 | |
JPS6014338A (ja) | 計算機システムにおける分岐機構 | |
JP4502532B2 (ja) | データ処理装置 | |
JP2636821B2 (ja) | 並列処理装置 | |
JP3182591B2 (ja) | マイクロプロセッサ | |
JP2785820B2 (ja) | 並列処理装置 | |
JP2927281B2 (ja) | 並列処理装置 | |
US5187782A (en) | Data processing system | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP2005353105A (ja) | データ処理装置及びマイクロコンピュータ | |
JP3743155B2 (ja) | パイプライン制御型計算機 | |
JP4702004B2 (ja) | マイクロコンピュータ | |
Craig et al. | PIPE: A High Performance VLSI Processor Implementation | |
JPS61112240A (ja) | デ−タ処理装置 | |
JPH0412860B2 (ja) | ||
JPH0667882A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080425 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090425 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |