JPH09305402A - 並列処理プロセッサ - Google Patents
並列処理プロセッサInfo
- Publication number
- JPH09305402A JPH09305402A JP8117962A JP11796296A JPH09305402A JP H09305402 A JPH09305402 A JP H09305402A JP 8117962 A JP8117962 A JP 8117962A JP 11796296 A JP11796296 A JP 11796296A JP H09305402 A JPH09305402 A JP H09305402A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processing
- stage
- destination address
- field
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
ァイル5の複数のアドレスに対応する複数のエントリに
よって、そのエントリに対応するデスティネーション・
アドレスを持つ命令の処理結果が8つの結果バッファe
1〜e4,m1〜m4のいずれに存在するかを管理す
る。ラッチ回路L1がこれから必要とするデータのソー
ス・アドレスsrc1−1と、結果バッファe1〜e
4,m1〜m4のいずれかに保持されている命令の処理
結果のデスティネーション・アドレスとが一致するとき
は、一致するデスティネーション・アドレスを持つ命令
の処理結果を、その命令の処理結果が保持されている結
果バッファからラッチ回路L1へ転送する。
Description
サに関し、特に、バイパス制御を高速に行なうことので
きる並列処理プロセッサに関する。
のパイプラインを備えている並列処理プロセッサがあ
る。まず、1つのパイプラインを備える従来のスカラ・
プロセッサについて、パイプライン処理およびハザード
について説明する。
プライン処理は、複数の命令をオーバーラップさせて同
時実行する技術である。現在、パイプライン処理は、C
PU(Central Processing Unit )の高速化のための基
本技術となっている。パイプライン処理では、パイプラ
インの1ステップで命令の一部分を担当し、実行する。
1個の命令の処理過程は、複数の小さな処理単位に分割
する。この処理単位をパイプライン・ステージ(以下、
「ステージ」と呼ぶ)と呼ぶ。各ステージが順に接続さ
れて、1本のパイプを形成する。
がパイプラインを出ていく速度で決まる。各ステージ
は、お互いに連結しているので、すべてのステージが同
時に処理を完了しなければならない。1ステージにおい
て、処理に要する時間がマシン・サイクルと呼ばれるも
のである。このマシン・サイクルは、最も処理が遅いス
テージの処理時間によって決まる。
処理では、命令を適切なマシン・サイクルで実行できな
い状況が存在する。このような状況をハザードと呼ぶ。
ハザードは、パイプライン・ストールの原因となる。パ
イプライン・ストールの発生は、プロセッサの性能低下
を引き起こす。ハザードの1つであるデータ・ハザード
について説明する。
バーラップするので、命令の相対的な実行タイミングが
変わってしまう。このことを原因として生じるハザード
が、データ・ハザードである。以下、詳しく説明する。
データ・ハザードは、命令の逐次実行とパイプライン実
行とでオペランドへのアクセス順序が異なる場合に生じ
る。ここで、1つの例として、命令の実行過程を(1)
命令フェッチステージIF、(2)命令デコードステー
ジID、(3)実行ステージEX、(4)メモリ・アク
セスステージMEM、(5)書戻しステージWBの5ス
テップとする場合を考える。そして、クロック・サイク
ルごとに新しい命令をフェッチするとする。そして、さ
らに、命令は演算命令を考える。第1番目の命令フェッ
チステージIFにおいては、命令が命令キャッシュ(図
示せず)から命令デコーダ(図示せず)へフェッチされ
る。第2番目の命令デコードステージIDにおいては、
そのフェッチされた命令が命令デコーダによってデコー
ドされ、さらにそのデコードされた命令に従ってレジス
タファイル(図示せず)からオペランドがフェッチされ
る。第3番目の実行ステージEXにおいては、命令が実
行され、オペランドに対して演算が施される。この演算
結果は、実行ステージEXにおける結果バッファ(図示
せず)に保持される。第4番目のメモリ・アクセスステ
ージMEMにおいては、実行ステージEXにおける結果
バッファに保持された演算結果を、メモリ・アクセスス
テージMEMにおける結果バッファ(図示せず)に保持
する。第5番目の書戻しステージWBにおいては、メモ
リ・アクセスステージMEMにおける結果バッファに保
持された演算結果をレジスタ・ファイルに書込む。以下
の2つの演算命令(加算命令addおよび減算命令su
b)をパイプライン処理する場合を考える。
側は、デスティネーション・アドレス(演算結果を格納
するレジスタ・ファイルのアドレス)を示し、真ん中お
よび1番左側は、ソース・アドレス(オペランドが格納
されているレジスタ・ファイルのアドレス)を示す。減
算命令subは、加算命令addのデスティネーション
・アドレスa1を、ソースアドレスa1としている。こ
のような場合に、データ・ハザードが生じる。
めの図である。図26を参照して、加算命令addは、
第1番目のクロックで、命令フェッチステージIFに存
在し、第2番目のクロックで命令デコードステージID
に存在し、第3番目のクロックで実行ステージEXに存
在し、第4番目のクロックでメモリ・アクセスステージ
MEMに存在し、第5番目のクロックでは書戻しステー
ジWBに存在する。減算命令subは、第2番目のクロ
ックで命令フェッチステージIFに存在し、第3番目の
クロックでは命令デコードステージIDに存在し、第4
番目のクロックでは実行ステージEXに存在し、第5番
目のクロックではメモリ・アクセスステージMEMに存
在し、第6番目のクロックでは書戻しステージWBに存
在する。加算命令addは、書戻しステージWB(第5
番目のクロック)で、デスティネーション・アドレスa
1に従って、演算結果を、レジスタ・ファイルに書込む
(矢印A)。一方、減算命令subは、命令デコードス
テージIDで(第3番目のクロック)、ソース・アドレ
スa1に従って、レジスタ・ファイルからオペランドを
フェッチする(矢印B)。減算命令subは、加算命令
addの演算結果を使用するが、減算命令subがレジ
スタ・ファイルからオペランドをフェッチする命令デコ
ードステージID(第3番目のクロック)においては、
加算命令addの演算結果はレジスタ・ファイルには書
込まれていない。このような状況をデータ・ハザードと
呼ぶ。もし、データ・ハザードを回避しないと、減算命
令subは、間違ったオペランドをフェッチして、使用
してしまう。すなわち、減算命令subは、加算命令a
ddの演算結果がレジスタ・ファイルに書込まれる前の
データを、レジスタ・ファイルのアドレスa1から読出
してしまい、減算命令subが正しく処理されないこと
になる。
と呼ぶ簡単なハードウェア技術で解決できる。まず、2
つのラッチ回路と、2つのラッチ回路に保持されている
2つのオペランドに対して演算を施すALU(Arithmet
ic and Logic Unit )を含むプロセッサを考える。そし
て、ALUの演算結果を、必ず、2つのラッチ回路にフ
ィードバックするようにしておく。そして、さらに、A
LUの演算結果が、これから行なうALUでの演算に用
いるオペランドに等しい場合、レジスタ・ファイルから
読出したオペランドではなく、ALUでの演算結果を、
これから行なうALUの入力として用いるようにする。
このような仕組みがバイパス機構と呼ばれるものであ
る。データ・ハザードを解決するバイパス機構について
は、たとえば、“Computer Architecture A Quantitati
ve Approach"、David A.Patterson、John L.Hennessy
、MORGAN KAUFMANN PUBLISHERS, inc.に開示されてい
る。
図である。図27を参照して、1番上は、デスティネー
ション・アドレスa1およびソースアドレスa2,a3
を持つ加算命令addのパイプライン処理を示し、真ん
中は、デスティネーション・アドレスa4およびソース
・アドレスa1,a5を持つ減算命令subのパイプラ
イン処理を示し、1番下はデスティネーション・アドレ
スa6およびソース・アドレスa1,a7を持つ加算命
令addのパイプライン処理を示す。図27に示すよう
な5段構成のパイプライン構成では、命令(add a1, a
2, a3)の演算結果を、次に投入される命令(sub a4, a
1, a5)に対してのみならず、その次に投入される命令
(add a6, a1, a7)に対してもバイパスする必要があ
る。ここで、命令デコードステージIDの後半で、オペ
ランドのフェッチ(データの読出)Rを行ない、書戻し
ステージWBの前半で演算結果の書込を行なっている。
このため、命令(add a1, a2, a3)の演算結果を、命令
(add a6, a1, a7)の次に投入される命令に対してはバ
イパスをする必要はない。なぜならば、命令(add a6,a
1, a7)の次に投入される命令が実行ステージEXにく
るときには、命令(adda1, a2, a3)の演算結果は既に
レジスタ・ファイルに書込まれているからである。
カラ・プロセッサを示す概略ブロック図である。図28
を参照して、従来のスカラ・プロセッサは、レジスタ・
ファイル5、マルチプレクサ211,213、ALU2
15、結果バッファ217,219、2個のラッチ回路
(図示せず)および4個の比較器(図示せず)を含む。
ここで、パイプライン構成は、上述した5段構成とす
る。
の、その命令の演算結果を保持するために、2個の結果
バッファ217,219を設けている。先行する命令
(1つ先にALU215で実行される命令または2つ先
にALU215で実行される命令)の演算結果を、オペ
ランドとする命令が実行ステージEXに入った際、オペ
ランドとなる演算結果を生成した先行する命令は、実行
ステージEXからメモリ・アクセスステージMEMに
(1つ先にALU215で実行される命令の場合)、ま
たは、メモリ・アクセスステージMEMから書戻しステ
ージWBに(2つ先にALU215で実行された命令の
場合)、進んでいる(図27参照)。
されている2個の演算結果は、2個のマルチプレクサ2
11,213を介して、ALU215の2つのポートの
いずれの入力にもなり得る。マルチプレクサ211,2
13の制御は、実行ステージEXに投入されようとする
命令のソース・アドレスが、先行する2つの命令のデス
ティネーション・アドレスと等しいか否かを判定して行
なう。もし、実行ステージEXに投入されようとする命
令のソース・アドレスと、先行する命令のデスティネー
ション・アドレスとが等しい場合は、レジスタ・ファイ
ル5からではなく、そのデスティネーション・アドレス
を持つ命令の演算結果が存在する結果バッファ(結果バ
ッファ217または結果バッファ219)から、オペラ
ンドを入力するように、マルチプレクサ211,213
の制御が行なわれる。
する命令のソース・アドレスが、先行する2つの命令の
2つのデスティネーション・アドレスの両方に等しい場
合は、1つ先にALU215で実行された命令の演算結
果を、結果バッファ217からオペランドを入力するよ
うにマルチプレクサ211,213の制御が行なわれ
る。このように、ソース・アドレスが、先行する2つの
命令の2つのデスティネーション・アドレスの両方に等
しい場合において、先行する2つの命令のうち、最も新
しい命令の演算結果が存在する結果バッファからオペラ
ンドを入力するようにすることを、優先順位付き選択と
呼ぶ。
ために行なう、実行ステージEXに投入されようとする
命令のソース・アドレスと、先行する2つの命令の2つ
のデスティネーション・アドレスとの比較は、2つの比
較器によって行なわれる。ここで、上述したように2個
のラッチ回路と、4個の比較器が設けられているが、ソ
ース・アドレスは2つであるため、1つのソース・アド
レスに対して、1個のラッチ回路および2個の比較器が
用いられる。また、ALU215は、1ステージで演算
を完了するので、バイパスさえ行なわれれば任意の命令
の組合せに対してパイプラインがストールすることはな
い。
る。並列処理プロセッサは、上述したように、複数のパ
イプラインを設けて、1クロック・サイクル当りに複数
の命令の実行を開始するものである。たとえば、1クロ
ック・サイクルで、複数の演算命令に基づき複数の演算
を行なう。ここで、命令の実行を開始することを、命令
を発行すると呼ぶ場合もある。並列処理プロセッサを通
して、VLIW(VeryLong Instruction Word)プロセ
ッサがある。VLIWプロセッサでは、1個の命令内に
並列に動作可能な複数のオペレーションを指定する。す
なわち、VLIWプロセッサでは、1個の命令で、複数
のスカラ命令に相当する複数のオペレーションを指定す
る。このため、VLIWプロセッサでは、スカラ・プロ
セッサに比べて1個のプログラムの実行に要する命令数
が減少する。VLIWプロセッサでは、1個の命令で指
定された複数のオペレーションを複数の独立した機能ユ
ニットを用いて実行する。この機能ユニットには、AL
Uが含まれている。以下、VLIWプロセッサにおい
て、複数のオペレーションを含む命令を「基準命令」と
呼び、1個の基準命令に含まれているオペレーション
を、単に「命令」と呼ぶことにする。
おいても、各機能ユニットはパイプライン化されてい
る。このため、データ・ハザードが生じる。このため、
バイパス機構を設けている。VLIWプロセッサでは、
並列に実行されている命令数が多い。このため、スカラ
・プロセッサに比べて、どの演算結果をバイパスするか
を決定するバイパス制御が複雑になる。ここで、各機能
ユニットのパイプライン構成が、上述した5段構成の場
合を考える。この場合、スカラ・プロセッサでは、実行
ステージEXおよびメモリ・アクセスステージMEMに
存在する2つの命令の2つのデスティネーション・アド
レスと、命令デコードステージIDに存在する命令の2
つのソース・アドレスとを比較するために、4つの比較
器が必要になる。しかし、4つの命令を発行するVLI
Wプロセッサでは、4つの機能ユニットが設けられるた
め、64個の比較器が必要になる。すなわち、1つのソ
ース・アドレスに対して、8つの比較器が必要になる。
パスするために、優先順位付き選択を行なわなければな
らない。スカラ・プロセッサの場合では、2つの演算結
果に対して優先順位付き選択を行なえばよい。しかし、
4つの命令を発行するVLIWプロセッサでは、4つの
機能ユニットを設けるため、8つの演算結果に対して優
先順位付き選択を行なわなければならない。
では、並列に発行できる命令数が増加すればするほど、
必要となる比較器が増加するとともに、優先順位付き選
択の対象も増加する。このため、並列に発行できる命令
数が増加すればするほど指数関数的に処理の複雑度が増
加する。処理が複雑になると、処理に要する時間が増加
する。マシン・サイクルは、最も遅いステージの処理時
間によって決まってしまう。このため、バイパス制御に
時間がかかることによって1ステージの処理に要する時
間が増加し、マシン・サイクルが増加してしまう。この
ようなマシン・サイクルの増加は、プロセッサの性能に
直接影響し、プロセッサの性能低下につながる。
としてのVLIWプロセッサでは、並列に発行できる命
令数が増加すればするほど、処理が複雑化し、バイパス
制御に時間がかかるため、性能が低下するという問題点
があった。
るためになされたもので、バイパス制御を高速に行なう
ことのできる並列処理プロセッサを提供することを目的
とする。
処理プロセッサは、命令の処理結果を、その命令のデス
ティネーション・アドレスに従って格納するレジスタ・
ファイルを有している。そして、1つの基準命令に含ま
れる複数の命令を並列的に処理するものである。この並
列処理プロセッサは、複数の機能ユニット、バイパス手
段およびバイパス制御手段を備える。各機能ユニット
は、対応する命令を処理する。また、各機能ユニット
は、連続的に投入される対応する命令に対して、パイプ
ライン処理を行なう複数の処理ステージを有している。
バイパス手段は、複数の機能ユニットにおける複数の処
理ステージに存在する複数の処理結果を、選択的に、複
数の機能ユニットにおける複数の最初の処理ステージに
供給するためのものである。バイパス制御手段は、レジ
スタ・ファイルの複数のアドレスに対応する複数のエン
トリによって、エントリに対応するデスティネーション
・アドレスを持つ命令が、いずれの機能ユニットのいず
れの処理ステージに存在するかを管理する。そして、バ
イパス制御手段は、複数の機能ユニットの複数の処理ス
テージのいずれかに存在する命令が持つデスティネーシ
ョン・アドレスと、機能ユニットの最初の処理ステージ
で処理しようとする命令が持つソース・アドレスとが一
致する場合は、一致するソース・アドレスを持つ命令を
処理しようとする最初の処理ステージに、一致するデス
ティネーション・アドレスを持つ命令の処理結果を、一
致するデスティネーション・アドレスを持つ命令が存在
する処理ステージから供給するように、バイパス手段を
制御する。さらに、バイパス制御手段は、あるデスティ
ネーション・アドレスを持つ命令を管理している場合に
おいて、あるデスティネーション・アドレスと同じデス
ティネーション・アドレスを持つ新たな命令が、複数の
機能ユニットのいずれかに投入されるときは、その新た
に投入される命令をあるデスティネーション・アドレス
に対応するエントリによって管理する。
は、請求項1に記載のものであって、バイパス制御手段
は、命令管理手段を含む。命令管理手段は、管理する命
令が、いずれの機能ユニットに存在するかを示すデータ
を持つ機能ユニットフィールドと、管理する命令が、い
ずれの処理ステージに存在するかを示すデータを持つ処
理ステージフィールドと、機能ユニットフィールドおよ
び処理ステージフィールドのデータが有効か無効かを示
すデータを持つ有効/無効フィールドとからなる。命令
管理手段は、複数のエントリに分かれている。また、バ
イパス制御手段は、新たな命令が投入される場合には、
その命令が持つデスティネーション・アドレスに対応す
るエントリの有効/無効フィールドをセットし、その命
令が投入される機能ユニットを表わすように、その命令
が持つデスティネーション・アドレスに対応するエント
リの機能ユニットフィールドをセットする。さらに、バ
イパス制御手段は、新たに投入される命令が、最初の処
理ステージの前のステージに存在するときに、その命令
が持つデスティネーション・アドレスに対応するエント
リの処理ステージフィールドをリセットする。さらに、
バイパス制御手段は、エントリの処理ステージフィール
ドを、そのエントリに対応するデスティネーション・ア
ドレスを持つ命令が、各処理ステージへ移行するごとに
新しくセットする。
は、請求項1に記載のものであって、バイパス制御手段
は、命令管理手段を含む。命令管理手段は、管理する命
令が、いずれの機能ユニットに存在するかを示すデータ
を持つ機能ユニットフィールドと、管理する命令がいず
れの処理ステージに存在するかを示すデータを持つ処理
ステージフィールドとからなる。命令管理手段は、複数
のエントリに分かれる。機能ユニットフィールドにおい
ては、複数の機能ユニットと同数のビット数を有するビ
ット・ベクタによって、命令がいずれの機能ユニットに
存在するかを示す。バイパス制御手段は、機能ユニット
に新たな命令が投入される場合には、その命令が持つデ
スティネーション・アドレスに対応するエントリの機能
ユニットフィールドにおいて、その命令が投入される機
能ユニットに対応する、ビット・ベクタのビットをセッ
トし、新たに投入される命令が最初の処理ステージの前
のステージに存在するときに、その命令が持つデスティ
ネーション・アドレスに対応するエントリの処理ステー
ジフィールドをリセットする。バイパス制御手段は、エ
ントリの処理ステージフィールドを、そのエントリに対
応するデスティネーション・アドレスを持つ命令が、各
処理ステージへ移行するごとに新しくセットし、エント
リの機能ユニットフィールドにおいて、ビット・ベクタ
のいずれか1つのビットがセットされているときは、そ
のエントリの機能ユニットフィールドおよび処理ステー
ジフィールドのデータが有効とし、ビット・ベクタのい
ずれのビットもセットされていないときは、そのエント
リの機能ユニットフィールドおよび処理ステージフィー
ルドは無効とする。本発明の請求項5の並列処理プロセ
ッサは、命令の処理結果を、その命令のデスティネーシ
ョン・アドレスに従って格納するレジスタ・ファイルを
有している。そして、1つの基準命令に含まれる複数の
命令を並列的に処理するものである。この並列処理プロ
セッサは、複数の機能ユニット、バイパス手段およびバ
イパス制御手段を備える。各機能ユニットは、対応する
命令を処理する。また、各機能ユニットは、連続的に投
入される対応する命令に対して、パイプライン処理を行
なう複数の処理ステージを有している。バイパス手段
は、複数の機能ユニットにおける複数の処理ステージに
存在する複数の処理結果を、選択的に、複数の機能ユニ
ットにおける複数の最初の処理ステージに供給するため
のものである。バイパス制御手段は、レジスタ・ファイ
ルの複数のアドレスに対応する複数のエントリによっ
て、エントリに対応するデスティネーション・アドレス
を持つ命令が、いずれの機能ユニットに存在するかを管
理する。そして、バイパス制御手段は、複数の機能ユニ
ットの複数の処理ステージのいずれかに存在する命令が
持つデスティネーション・アドレスと、機能ユニットの
最初の処理ステージで処理しようとする命令が持つソー
ス・アドレスとが一致する場合は、一致するソース・ア
ドレスを持つ命令を処理しようとする最初の処理ステー
ジに、一致するデスティネーション・アドレスを持つ命
令の処理結果を、一致するデスティネーション・アドレ
スを持つ命令が存在する処理ステージから供給するよう
に、バイパス手段を制御する。さらに、バイパス制御手
段は、あるデスティネーション・アドレスを持つ命令を
管理している場合において、あるデスティネーション・
アドレスと同じデスティネーション・アドレスを持つ新
たな命令が、複数の機能ユニットのいずれかに投入され
るときは、その新たに投入される命令をあるデスティネ
ーション・アドレスに対応するエントリによって管理す
る。
は、請求項4に記載のものであって、バイパス制御手段
は、命令管理手段を含む。命令管理手段は、管理する命
令が、いずれの機能ユニットに存在するかを示すデータ
を持つ機能ユニットフィールドと、機能ユニットフィー
ルドのデータが有効か無効かを示すデータを持つ有効/
無効フィールドとからなる。命令管理手段は、複数のエ
ントリに分かれている。バイパス制御手段は、機能ユニ
ットに新たな命令が投入される場合には、その命令が持
つデスティネーション・アドレスに対応するエントリの
有効/無効フィールドをセットし、その命令が投入され
る機能ユニットを表わすように、その命令が持つデステ
ィネーション・アドレスに対応するエントリの機能ユニ
ットフィールドをセットする。バイパス制御手段は、複
数の判断手段をさらに含む。複数の判断手段は、1つの
基準命令に含まれる複数の命令の複数のソース・アドレ
スに対応して設けられる。各判断手段は、新たに投入さ
れる命令の対応するソース・アドレスが、複数の機能ユ
ニットの複数の処理ステージのいずれに存在する命令の
デスティネーション・アドレスと一致するか否かを判断
するためのものである。判断手段は、複数の選択手段を
含む。複数の選択手段は、各機能ユニットの複数の処理
ステージに対応して設けられる。選択手段には、複数の
機能ユニットの、選択手段に対応する複数の処理ステー
ジに存在する複数の命令の複数のデスティネーション・
アドレスと、新たに投入される命令のソース・アドレス
に対応するエントリの機能ユニットフィールドのデータ
とが入力される。選択手段は、入力された機能ユニット
フィールドのデータが示す機能ユニットに対応する処理
ステージに存在する命令のデスティネーション・アドレ
スを出力する。判断手段は、複数の比較手段をさらに含
む。複数の比較手段は、複数の選択手段に対応して設け
られる。比較手段は、対応する選択手段から出力された
デスティネーション・アドレスと、新たに投入される命
令が持つソース・アドレスとを比較し、新たに投入され
る命令が持つソース・アドレスが、対応する選択手段か
ら出力されたデスティネーション・アドレスと一致する
か否かを判断する。
命令の処理結果を、その命令のデスティネーション・ア
ドレスに従って格納するレジスタ・ファイルを有してい
る。そして、1つの基準命令に含まれる複数の命令を並
列的に処理するものである。この並列処理プロセッサ
は、複数の機能ユニット、バイパス手段およびバイパス
制御手段を備える。各機能ユニットは、対応する命令を
処理する。また、各機能ユニットは、連続的に投入され
る対応する命令に対して、パイプライン処理を行なう複
数の処理ステージを有している。バイパス手段は、複数
の機能ユニットにおける複数の処理ステージに存在する
複数の処理結果を、選択的に、複数の機能ユニットにお
ける複数の最初の処理ステージに供給するためのもので
ある。バイパス制御手段は、レジスタ・ファイルの複数
のアドレスに対応する複数のエントリによって、エント
リに対応するデスティネーション・アドレスを持つ命令
が、いずれの処理ステージに存在するかを管理する。そ
して、バイパス制御手段は、複数の機能ユニットの複数
の処理ステージのいずれかに存在する命令が持つデステ
ィネーション・アドレスと、機能ユニットの最初の処理
ステージで処理しようとする命令が持つソース・アドレ
スとが一致する場合は、一致するソース・アドレスを持
つ命令を処理しようとする最初の処理ステージに、一致
するデスティネーション・アドレスを持つ命令の処理結
果を、一致するデスティネーション・アドレスを持つ命
令が存在する処理ステージから供給するように、バイパ
ス手段を制御する。さらに、バイパス制御手段は、ある
デスティネーション・アドレスを持つ命令を管理してい
る場合において、あるデスティネーション・アドレスと
同じデスティネーション・アドレスを持つ新たな命令
が、複数の機能ユニットのいずれかに投入されるとき
は、その新たに投入される命令をあるデスティネーショ
ン・アドレスに対応するエントリによって管理する。
は、請求項6に記載のものであって、バイパス制御手段
は、命令管理手段を含む。命令管理手段は、管理する命
令が、いずれの処理ステージに存在するかを示すデータ
を持つ処理ステージフィールドと、処理ステージフィー
ルドのデータが有効か無効かを示すデータを持つ有効/
無効フィールドとからなる。命令管理手段は、複数のエ
ントリに分かれている。バイパス制御手段は、機能ユニ
ットに新たな命令が投入される場合には、その命令が持
つデスティネーション・アドレスに対応するエントリの
有効/無効フィールドをセットする。バイパス制御手段
は、新たに投入される命令が、最初の処理ステージの前
のステージに存在するときに、その命令の持つデスティ
ネーション・アドレスに対応するエントリの処理ステー
ジフィールドをリセットする。バイパス制御手段は、エ
ントリの処理ステージフィールドを、そのエントリに対
応するデスティネーション・アドレスを持つ命令が各処
理ステージへ移行するごとに新しくセットする。バイパ
ス制御手段は、複数の判断手段をさらに含む。複数の判
断手段は、1つの基準命令に含まれる複数の命令の複数
のソース・アドレスに対応して設けられる。各判断手段
は、新たに投入される命令の対応するソース・アドレス
が複数の機能ユニットの複数の処理ステージのいずれに
存在する命令のデスティネーション・アドレスと一致す
るか否かを判断するためのものである。判断手段は、複
数の選択手段を含む。複数の選択手段は、複数の機能ユ
ニットに対応して設けられる。選択手段には、対応する
機能ユニットの複数の処理ステージに存在する複数の命
令のデスティネーション・アドレスと、新たに投入され
る命令のソース・アドレスに対応するエントリの処理ス
テージフィールドのデータとが入力される。選択手段
は、入力された処理ステージフィールドのデータが示す
処理ステージに対応する処理ステージに存在する命令の
デスティネーション・アドレスを出力する。判断手段
は、複数の比較手段をさらに含む。複数の比較手段は、
複数の選択手段に対応して設けられる。比較手段は、対
応する選択手段から出力されたデスティネーション・ア
ドレスと、新たに投入される命令が持つソース・アドレ
スとを比較し、新たに投入される命令が持つソース・ア
ドレスが、対応する選択手段から出力されたデスティネ
ーション・アドレスと一致するか否かを判断する。
は、請求項2または5に記載のものであって、機能ユニ
ットフィールドにおいては、複数の機能ユニットと同数
のビット数を有するビット・ベクタによって、命令がい
ずれの機能ユニットに存在するかを示す。
は、請求項2、3または7のいずれか1項に記載のもの
であって、処理ステージフィールドにおいては、各機能
ユニットにおける複数の処理ステージと同数のビット数
を有するビット・ベクタによって、命令がいずれの処理
ステージに存在するかを示す。命令管理手段は、命令が
存在する処理ステージに対応する、ビット・ベクタのビ
ットをセットする。
は、請求項2または7に記載のものであって、各機能ユ
ニットの最後の処理ステージは、そこに存在する処理結
果をデスティネーション・アドレスに従って、レジスタ
・ファイルに書込むものであり、バイパス手段は適用さ
れない。命令管理手段は、複数の処理ステージフィール
ド管理手段を含む。複数の処理ステージフィールド管理
手段は、複数のエントリに対応して設けられる。各処理
ステージフィールド管理手段は、対応するエントリの処
理ステージフィールドを管理するためのものである。処
理ステージフィールド管理手段は、更新手段と、参照手
段と、データ比較手段とを含む。更新手段は、対応する
エントリの処理ステージフィールドのデータを、命令が
各処理ステージへ移行するごとにその移行した処理ステ
ージに対応したものにセットする。参照手段は、最後の
処理ステージに対応する参照データを持つ。データ比較
手段は、処理ステージフィールドのデータと、参照手段
の参照データとを比較し、両者が一致したときに、対応
するエントリの有効/無効フィールドをリセットする。
は、請求項9に記載のものであって、各機能ユニットの
最後の処理ステージは、そこに存在する処理結果を、デ
スティネーション・アドレスに従って書込むものであ
り、バイパス手段は、適用されない。ビット・ベクタ
は、各機能ユニットにおける複数の処理ステージと同数
より1つ多いビット数を有している。ビット・ベクタの
1つのビットは、命令が最初の処理ステージに移行する
前のステージに存在することを示すためのものである。
命令管理手段は、複数の処理ステージフィールド管理手
段を含む。複数の処理ステージフィールド管理手段は、
複数のエントリに対応して設けられる。各処理ステージ
フィールド管理手段は、対応するエントリの処理ステー
ジフィールドを管理するためのものである。処理ステー
ジフィールド管理手段は、ビット・シフタであり、命令
がステージまたは各処理ステージへ移行するごとに、移
行したステージまたは各処理ステージに対応する、ビッ
ト・ベクタのビットをセットする。
セッサとしてのVLIWプロセッサについて図面を参照
しながら説明する。VLIWプロセッサは、一般には、
上述したように、1つの基準命令に含まれる複数の命令
を並列的に処理するものである。なお、以下に記載の信
号pipe[0],pipe[1],pipe[2],pipe[3],
stage[0],stage [1],stage [2]は、それぞ
れ、図中に記載のpipe(0),pipe(1),pipe
(2),pipe(3),stage (0),stage (1),st
age (2)と同じである。
形態1によるVLIWプロセッサを示す概略ブロック図
である。図1を参照して、本発明の実施の形態1による
VLIWプロセッサは、命令キャッシュ1、デコーダ
3、レジスタ・ファイル5、機能ユニット7−1,7−
2,7−3,7−4、データ・キャッシュ9およびバイ
パス制御回路13を含む。機能ユニット7−1〜7−4
は、どのような命令も実行できると仮定する。レジスタ
・ファイル5からは、一度に、4個の命令の8個のソー
ス・アドレスに対応する8個のデータ(オペランド)を
読出すことができる。さらに、レジスタ・ファイル5に
は、バス11を介して、一度に4個の命令の処理結果を
書込むことができる。データ・キャッシュ9には、4つ
のアドレスaddrに従って、一度に4つのデータda
taの書込ができる。さらに、データ・キャッシュ9か
らは、4つのアドレスaddrに従って、1度に、4つ
のデータdataの読出ができる。
プライン構成は、5段構成で、第1番目の命令フェッチ
ステージIFと、第2番目の命令デコードステージID
と、第3番目の実行ステージEXと、第4番目のメモリ
・アクセスステージMEMと、第5番目の書戻しステー
ジWBとからなる。命令フェッチステージIFにおいて
は、命令キャッシュ1から、基準命令がフェッチされる
(読出される)。命令デコードステージIDにおいて
は、デコーダ3によって、基準命令がデコードされる。
デコードされた基準命令に含まれる4つの命令は、4つ
の機能ユニット7−1〜7−4に投入され処理される。
示した概略図である。図2を参照して、基準命令は、オ
ペコードop1,デスティネーション・アドレスdes
1およびソース・アドレスsrc1−1,src1−2
からなる命令(機能ユニット7−1に投入される命令)
と、オペコードop2,デスティネーション・アドレス
des2およびソース・アドレスsrc2−1,src
2−2からなる命令(機能ユニット7−2に投入される
命令)と、オペコードop3,デスティネーション・ア
ドレスdes3,ソース・アドレスsrc3−1,sr
c3−2からなる命令(機能ユニット7−3に投入され
る命令)と、オペコードop4,デスティネーション・
アドレスdes4およびソース・アドレスsrc4−
1,src4−2からなる命令(機能ユニット7−4に
投入される命令)とからなる。オペコードop1〜op
4は、操作の種類を示す。
ジEX、メモリ・アクセスステージMEMおよび書戻し
ステージWBにおける処理については、命令の種類に分
けて説明する。まず、命令が、演算命令の場合について
説明する。実行ステージEXにおいては、演算命令が実
行され、すなわち、演算が行なわれ、その演算結果(処
理結果)が、実行ステージEXの結果バッファ(図示せ
ず)に保持される。メモリ・アクセスステージMEMに
おいては、実行ステージEXの結果バッファに保持され
た演算結果が、メモリ・アクセスステージMEMの結果
バッファ(図示せず)に保持される。書戻しステージW
Bにおいては、メモリ・アクセスステージMEMの結果
バッファに保持された演算結果を、レジスタ・ファイル
5に書込む。次に、命令が、メモリ・アクセス命令の場
合について説明する。実行ステージEXにおいては、ア
ドレスが計算され、実行ステージEXの結果バッファに
保持される。メモリ・アクセスステージMEMにおいて
は、実行ステージEXの結果バッファに保持されたアド
レスに基づき、データ・キャッシュ9またはレジスタ・
ファイル5をアクセスする。メモリ・アクセス命令がロ
ード命令の場合には、データ・キャッシュ9からデータ
を読出して、メモリアクセスステージMEMの結果バッ
ファに保持する。メモリ・アクセス命令がストア命令の
場合には、レジスタ・ファイル5からデータを読出し
て、メモリ・アクセスステージMEMの結果バッファに
保持する。書戻しステージWBにおいては、メモリ・ア
クセス命令がロード命令の場合、メモリ・アクセスステ
ージMEMの結果バッファに保持されているデータをレ
ジスタ・ファイル5に書込み、メモリ・アクセス命令が
ストア命令の場合は、メモリ・アクセスステージMEM
の結果バッファに保持されているデータをデータ・キャ
ッシュ9に書込む。
命令の各オペランドを得るために、レジスタ・ファイル
5をアクセスする。得られた各オペランド(レジスタ・
ファイル5内の各データ)は、実行ステージEXで、各
機能ユニット7−1〜7−4に供給される。
を示す概略ブロック図である。なお、図1と同様の部分
については同一の参照符号を付しその説明を適宜省略す
る。
サの一部は、レジスタ・ファイル5、バイパス制御回路
13、ラッチ回路L1〜L8、ALUa1〜a4、結果
バッファe1〜e4,m1〜m4、トライ・ステート・
バッファT1〜T72およびバス1−1〜4−2を含
む。ここで、ラッチ回路L1,L2、ALUa1および
結果バッファe1,m1は、機能ユニット7−1を構成
する。ラッチ回路L3,L4、ALUa2および結果バ
ッファe2,m2は、機能ユニット7−2を構成する。
ラッチ回路L5,L6、ALUa3および結果バッファ
e3,m3は、機能ユニット7−3を構成する。ラッチ
回路L7,L8、ALUa4および結果バッファe4,
m4は、機能ユニット7−4を構成する。
イ・ステート・バッファT1を介して結果バッファe1
と接続され、バス1−1およびトライ・ステート・バッ
ファT9を介して結果バッファe1と接続され、バス1
−1およびトライ・ステート・バッファT17を介して
結果バッファe2と接続され、バス1−1およびトライ
・ステート・バッファT25を介して結果バッファm2
と接続され、バス1−1およびトライ・ステート・バッ
ファT33を介して結果バッファe3と接続され、バス
1−1およびトライ・ステート・バッファT41を介し
て結果バッファm3と接続され、バス1−1およびトラ
イ・ステート・バッファT49を介して結果バッファe
4と接続され、バス1−1およびトライ・ステート・バ
ッファT57を介して結果バッファm4と接続される。
よびトライ・ステート・バッファT2,T10,T1
8,T26,T34,T42,T50,T58を介し
て、結果バッファe1,m1,e2,m2,e3,m
3,e4,m4と接続される。同様に、ラッチ回路L3
は、バス2−1およびトライ・ステート・バッファT
3,T11,T19,T27,T35,T43,T5
1,T59を介して、結果バッファe1〜e4,m1〜
m4と接続される。ラッチ回路L4も同様に、バス2−
2およびトライ・ステート・バッファT4,T12,T
20,T28,T36,T44,T52,T60を介し
て結果バッファe1〜e4,m1〜m4と接続される。
ラッチ回路L5も同様に、バス3−1およびトライ・ス
テート・バッファT5,T13,T21,T29,T3
7,T45,T53,T61を介して結果バッファe1
〜e4,m1〜m4と接続される。ラッチ回路L6も同
様に、バス3−2およびトライ・ステート・バッファT
6,T14,T22,T30,T38,T46,T5
4,T62を介して結果バッファe1〜e4,m1〜m
4と接続される。ラッチ回路L7も同様に、バス4−1
およびトライ・ステート・バッファT7,T15,T2
3,T31,T39,T47,T55,T63を介して
結果バッファe1〜e4,m1〜m4と接続される。ラ
ッチ回路L8も同様に、バス4−2およびトライ・ステ
ート・バッファT8,T16,T24,T32,T4
0,T48,T56,T64を介して結果バッファe1
〜e4,m1〜m4と接続される。
イ・ステート・バッファT65を介してレジスタ・ファ
イル5と接続される。ラッチ回路L2は、バス1−2お
よびトライ・ステート・バッファT66を介してレジス
タ・ファイル5と接続される。ラッチ回路L3は、バス
2−1およびトライ・ステート・バッファT67を介し
てレジスタ・ファイル5と接続される。ラッチ回路L4
は、バス2−2およびトライ・ステート・バッファT6
8を介してレジスタ・ファイル5と接続される。ラッチ
回路L5は、バス3−1およびトライ・ステート・バッ
ファT69を介してレジスタ・ファイル5と接続され
る。ラッチ回路L6は、バス3−2およびトライ・ステ
ート・バッファT70を介してレジスタ・ファイル5と
接続される。ラッチ回路L7は、バス4−1およびトラ
イ・ステート・バッファT71を介してレジスタ・ファ
イル5と接続される。ラッチ回路L8は、バス4−2お
よびトライ・ステート・バッファT72を介してレジス
タ・ファイル5と接続される。
は、バイパス制御回路13からの対応する制御信号e1
−1−1〜r−4−2によって、オン/オフが制御され
る。
制御信号によりオンとなった場合には、そのトライ・ス
テート・バッファと対応するラッチ回路へ、そのトライ
・ステート・バッファに対応する結果バッファまたはレ
ジスタ・ファイルからデータが転送される。
る、トライ・ステート・バッファT1〜T72を制御す
る制御信号e1−1−1〜r−4−2と、トライ・ステ
ート・バッファT1〜T72との対応関係を示す図であ
る。図4を参照して、T1〜T72は、図2のトライ・
ステート・バッファT1〜T72を示す。なお、図4に
おいては、トライ・ステート・バッファを「TSB」と
表わしている。また、図4を参照して、e1−1−1〜
r−4−2は、トライ・ステート・バッファT1〜T7
2を制御する制御信号を示す。そして、図4において、
1つの枠内に記載されているトライ・ステート・バッフ
ァと制御信号とは対応している。たとえば、トライ・ス
テート・バッファT1のオン/オフを制御するのは制御
信号e1−1−1である。
て簡単に説明する。ここで、ラッチ回路L1が必要とす
るデータのソース・アドレスをsrc1−1とし、ラッ
チ回路L2が必要とするデータのソース・アドレスをs
rc1−2とし、ラッチ回路L3が必要とするデータの
ソース・アドレスをsrc2−1とし、ラッチ回路L4
が必要とするデータのソース・アドレスをsrc2−2
とし、ラッチ回路L5が必要とするデータのソース・ア
ドレスをsrc3−1とし、ラッチ回路L6が必要とす
るデータのソース・アドレスをsrc3−2とし、ラッ
チ回路L7が必要とするデータのソース・アドレスをs
rc4−1とし、ラッチ回路L8が必要とするデータの
ソース・アドレスをsrc4−2とする。
いる命令が、いずれの機能ユニットのいずれのステージ
に存在するかを管理している。そして、バイパス制御回
路13は、4つの機能ユニット7−1〜7−4の8つの
ステージのいずれかに存在する命令が持つデスティネー
ション・アドレスと、実行ステージEXで実行される命
令のソース・アドレスsrc1−1〜src4−2とが
一致する場合は、一致するソース・アドレスに対応する
ラッチ回路へ、一致するデスティネーション・アドレス
を持つ命令が存在するステージの結果バッファから、そ
こに保持されている命令の処理結果(演算結果)を転送
する。すなわち、バイパス制御回路13は、一致するソ
ース・アドレスに対応するラッチ回路と、一致するデス
ティネーション・アドレスを持つ命令が存在するステー
ジの結果バッファとの間にあるトライ・ステート・バッ
ファを、制御信号によってオンさせる。
アドレスが、管理している命令のいずれのデスティネー
ション・アドレスとも一致しない場合には、そのソース
・アドレスに対応するラッチ回路へ、そのソース・アド
レスに従って、レジスタ・ファイル5からデータが転送
される。すなわち、バイパス制御回路13は、管理して
いる命令のいずれのデスティネーション・アドレスとも
一致しないソース・アドレスに対応するラッチ回路と、
レジスタ・ファイル5との間にあるトライ・ステート・
バッファを、制御信号によってオンさせる。
ながらバイパス制御について説明する。結果バッファe
4に保持されているALUa4の演算結果(データ)
と、これからラッチ回路L1で保持されるデータのソー
ス・アドレスとが一致しているとする。この一致は、バ
イパス制御回路13によって検出され、バイパス制御回
路13は、制御信号e4−1−1を“1”とする。この
ような、“1”となっている制御信号e4−1−1は、
トライ・ステート・バッファT49をオンにする。この
ため、結果バッファe4に保持されているALUa4の
演算結果(データ)が、バス1−1によって、ラッチ回
路L1に転送される。
ッサと異なり、4つの機能ユニット7−1〜7−4の8
つの結果バッファe1〜e4,m1〜m4に保持されて
いる8つの演算結果(データ)が、4つの機能ユニット
7−1〜7−4の4つのALUa1〜a4のいずれの入
力ともなり得る。
す概略ブロック図である。図5を参照して、バイパス制
御回路は、フィールド制御回路21−1,21−2,2
1−3,21−4、命令管理回路15、アドレスデコー
ダ17および制御信号発生回路19を含む。命令管理回
路15は、有効/無効フィールド(以下、「valid フィ
ールド」という)23、機能ユニットフィールド(以
下、「pipeフィールド」という)25およびステージフ
ィールド(以下、「stage 値フィールド」という)27
からなる。
略ブロック図である。なお、図5と同様の部分について
は同一の参照符号を付しその説明を適宜省略する。図6
を参照して、命令管理回路は、複数のエントリf1〜f
nに分けられる。エントリf1〜fnは、図3のレジス
タ・ファイル5のアドレスに対応して設けられ、その数
は、図3のレジスタ・ファイル5のアドレスの数と同じ
である。たとえば、図3のレジスタ・ファイル5のアド
レス“1”に対応するのが、エントリf1である。ま
た、デスティネーション・アドレス“1”は、図3のレ
ジスタ・ファイル5のアドレス“1”を示すため、デス
ティネーション・アドレス“1”に対応するのはエント
リf1である。さらに、ソース・アドレス“1”は図3
のレジスタ・ファイル5のアドレス“1”を示すため、
ソース・アドレス“1”に対応するのはエントリf1で
ある。
制御回路21−1は、機能ユニット7−1に投入される
命令のデスティネーション・アドレスdes1を受取
る。そして、フィールド制御回路21−1は、受取った
デスティネーション・アドレスdes1に対応するエン
トリ(図6参照)のデータを更新するための複数の信号
を生成する。この複数の信号は、信号address 、信号pi
pe set、信号valid setおよび信号stage rsetである。
フィールド制御回路21−2は、機能ユニット7−2へ
投入される命令のデスティネーション・アドレスdes
2を受取り、フィールド制御回路21−3は、機能ユニ
ット7−3に投入される命令のデスティネーション・ア
ドレスdes3を受取り、フィールド制御回路21−4
は機能ユニット7−4に投入される命令のデスティネー
ション・アドレスdes4を受取る。フィールド制御回
路21−2〜21−4の動作は、フィールド制御回路2
1−1と同様である。
そのエントリに対応するデスティネーション・アドレス
を持つ命令が、どの機能ユニットのどのステージに存在
するかを管理する。すなわち、命令管理回路15は、エ
ントリによって、そのエントリに対応するデスティネー
ション・アドレスを持つ命令の処理結果(演算結果)が
現在どの機能ユニットのどの結果バッファに存在するか
を管理する。valid フィールド23は、pipeフィールド
25およびstage フィールド27のデータが有効か無効
かを示すものである。pipeフィールド25は、エントリ
に対応するデスティネーション・アドレスを持つ命令
が、現在どの機能ユニットに存在するかを示すものであ
る。すなわち、エントリに対応するデスティネーション
・アドレスを持つ命令の処理結果(演算結果)がどの機
能ユニットにあるかを示すものである。stage フィール
ド27は、エントリに対応するデスティネーション・ア
ドレスを持つ命令が現在どのステージに存在するかを示
すものである。すなわち、エントリに対応するデスティ
ネーション・アドレスを持つ命令の処理結果(演算結
果)がどの結果バッファに存在するかを示すものであ
る。
5およびstage フィールド27は、フィールド制御回路
21−1〜21−4が生成した複数の信号に従ってセッ
トまたはリセットされる。信号address は、これからセ
ットまたはリセットしようとするエントリを、フィール
ド制御回路に入力されたデスティネーション・アドレス
に従って決定する。すなわち、信号address は、フィー
ルド制御回路に入力されたデスティネーション・アドレ
スに対応するエントリを選択するものである。信号vali
d set は、信号address に従ったエントリのvalid フィ
ールド23をセットする。これによって、信号address
に従ったエントリのpipeフィールド25およびstage フ
ィールドのデータが有効であることが示される。信号pi
pe setは、信号address に従ったエントリのpipeフィー
ルド25をセットする。すなわち、信号pipe setは、フ
ィールド制御回路に入力されたデスティネーション・ア
ドレスを持つ命令が投入される機能ユニットを示すよう
にpipeフィールド25をセットする。信号stage reset
は、信号address に従ったエントリのstage フィールド
27をリセットする。そして、信号address に従ったエ
ントリのstage フィールド27は、そのエントリに対応
するデスティネーション・アドレスを持つ命令がステー
ジを移行するごとに新しくセットされる。このことにつ
いては後で詳しく説明する。
3から、4つの命令の8個のソース・アドレスsrc1
−1〜src4−2を受取り、デコードして、命令管理
回路15に転送する。命令管理回路15は、アドレスデ
コーダ17から転送された8個のソース・アドレスsr
c1−1〜src4−2に対応するエントリのフィール
ド(valid フィールド23,pipeフィールド25および
stage フィールド27)のデータを制御信号発生回路1
9に転送する。8個のソース・アドレスsrc1−1〜
src4−2が入力されているため、valid フィールド
23からは、8個の1ビットのデータ(信号valid )
が、pipeフィールド25からは、2ビットの8個のデー
タ(信号pipe)が、stage フィールド27からは2ビッ
トの8個のデータ(信号stage )が、制御信号発生回路
19に入力されることになる。制御信号発生回路19
は、命令管理回路15の3つのフィールド23,25,
27から入力されたデータに基づき、トライ・ステート
・バッファT1〜T72を制御する制御信号e1−1−
1〜r−4−2(図4参照)を発生する。
す概略ブロック図である。図7を参照して、制御信号発
生回路は、8つの制御回路S1−1,S1−2,S2−
1,S2−2,S3−1,S3−2,S4−1,S4−
2を含む。8つの制御回路S1−1〜S4−2は、8つ
のソース・アドレスsrc1−1〜src4−2に対応
して設けられている。たとえば、ソース・アドレスsr
c1−1に対応して設けられるのが制御回路S1−1で
ある。図3,図4,図5および図7を参照して、制御回
路S1−1に注目して説明する。制御回路S1−1は、
ソース・アドレスsrc1−1に対応するエントリの3
つのフィールド23,25,27から3つの信号を受取
る。すなわち、valid フィールド23からは、1ビット
の信号valid を、pipeフィールド25からは2ビットの
信号pipeを、stage フィールド27からは2ビットの信
号stage を受取る。信号valid は、信号pipeおよび信号
stage が有効か無効かを示すものである。信号pipeは、
ソース・アドレスsrc1−1と同じデスティネーショ
ン・アドレスを持つ命令(命令の処理結果)がどの機能
ユニットに存在するかを示すものである。信号stage
は、ソース・アドレスsrc1−1と同じデスティネー
ション・アドレスを持つ命令(命令の処理結果)がどの
ステージに存在するかを示すものである。制御回路S1
−1は、このような信号valid 、信号pipeおよび信号st
age に基づいて、バス1−1に接続されたトライ・ステ
ート・バッファT1,T9,T17,T25,T33,
T41,T49,T57,T65を制御する制御信号e
1−1−1〜e4−1−1、m1−1−1〜m4−1−
1、r1−1−1を生成する。
御回路S1−1の動作と同様である。すなわち、制御回
路S1−2は、ソース・アドレスsrc1−2に対応し
て用いられ、ソース・アドレスsrc1−2に対応する
エントリのフィールド23,25,27から信号valid
,信号pipeおよび信号stage を受ける。そして、制御
回路S1−2は、制御信号e1−1−2〜e2−1−
2,m1−1−2〜m4−1−2,r−1−2を生成す
る。制御回路S2−1は、ソース・アドレスsrc2−
1に対応して用いられ、ソース・アドレスsrc2−1
に対応するエントリのフィールド23,24,27から
の信号valid ,信号pipeおよび信号stage を受ける。そ
して、制御回路S2−1は、制御信号e1−2−1〜e
4−2−1,m1−2−1〜m4−2−1,r−2−1
を生成する。制御回路S2−2は、ソース・アドレスs
rc2−2に対応して用いられ、ソース・アドレスsr
c2−2に対応するエントリのフィールド23,25,
27から、信号valid ,信号pipeおよび信号stage を受
ける。そして、制御回路S2−2は、制御信号e1−2
−2〜e4−2−2,m1−2−2〜m4−2−2,r
−2−2を受ける。制御回路S3−1は、ソース・アド
レスsrc3−1に対応して用いられ、ソース・アドレ
スsrc3−1に対応するエントリのフィールド23,
25,27から、信号valid ,信号pipeおよび信号stag
e を受ける。そして、制御回路S3−1は、制御信号e
1−3−1〜e4−3−1,m1−3−1〜m4−3−
1,r−3−1を生成する。
rc3−2に対応して用いられ、ソース・アドレスsr
c3−2に対応するエントリのフィールド23,25,
27から、信号valid ,信号pipeおよび信号stage を受
ける。そして、制御回路S3−2は、制御信号e1−3
−2〜e4−3−2,m1−3−2〜m4−3−2,r
−3−2を生成する。制御回路S4−1は、ソース・ア
ドレスsrc4−1に対応して用いられ、ソース・アド
レスsrc4−1に対応するエントリのフィールド2
3,25,27から、信号valid ,信号pipeおよび信号
stage を受ける。そして、制御回路S4−1は、制御信
号e1−4−1〜e4−4−1,m1−4−1〜m4−
4−1,r−4−1を生成する。制御回路S4−2は、
ソース・アドレスsrc4−2に対応して用いられ、ソ
ース・アドレスsrc4−2に対応するエントリのフィ
ールド23,24,27から、信号valid ,信号pipeお
よび信号stage を受ける。そして、制御回路S4−2
は、制御信号e1−4−2〜e4−4−2,m1−4−
2〜m4−4−2,r−4−2を生成する。
示す回路図である。図8を参照して、制御回路S1−1
は、3入力のAND回路29〜51およびNOR回路5
3を含む。AND回路29〜33,37〜51の入力に
付されている丸印(○)は、反転された信号がAND回
路に入力されることを表わす。信号pipe[0]は、2ビ
ットの信号pipeの第1ビット目を示すものであり、信号
pipe[1]は、2ビットの信号pipeの第2ビット目を示
すものである。信号stage [0]は、2ビットの信号st
age の第1ビット目を示すものであり、信号stage
[1]は、2ビットの信号stage の第2ビット目を示す
ものである。
信号pipe[0]および信号pipe[1]が入力される。A
ND回路37〜51には、信号stage [0]および信号
stage [1]が入力される。AND回路37,39に
は、AND回路29の出力信号が入力される。AND回
路41,43には、AND回路31の出力信号が入力さ
れる。AND回路45,47には、AND回路33の出
力信号が入力される。AND回路49,51には、AN
D回路35の出力信号が入力される。NOR回路53に
は、AND回路37〜51の出力信号が入力される。A
ND回路29〜35は、機能ユニットを識別するための
ものである。すなわち、ソース・アドレスsrc1−1
に対応するエントリで管理している命令(命令の処理結
果)がどの機能ユニットに存在するかを識別するための
ものである。ソース・アドレスsrc1−1に対応する
エントリのpipeフィールド25およびstage フィールド
27のデータが有効な場合、すなわち、信号pipe
[0],信号pipe[1],信号stage [0],信号stag
e [1]が有効なときは、信号validは“1”となって
いる。AND回路37〜51は、ステージを識別するた
めのものである。すなわち、ソース・アドレスsrc1
−1に対応するエントリによって管理している命令(命
令の処理結果)がどのステージにあるのかを識別するた
めのものである。
て、ソース・アドレスsrc1−1と一致するデスティ
ネーション・アドレスを持つ命令がどの機能ユニットの
どのステージに存在するかを特定する。すなわち、ソー
ス・アドレスsrc1−1と一致するデスティネーショ
ン・アドレスを持つ命令の処理結果がどの機能ユニット
のどの結果バッファに存在するかを特定する。そして、
特定された結果バッファに保持されている命令の処理結
果を、バス1−1を介して、ラッチ回路L1に転送する
ため、バス1−1に接続され、特定された結果バッファ
に対応するトライ・ステート・バッファをオンにするた
めの制御信号e1−1−1〜e4−1−1,m1−1−
1〜m4−1−1を発生する。
挙げて説明する。ここで、信号pipeが“0”のときは機
能ユニット7−1を示し、信号pipeが“1”のときは機
能ユニット7−2を示し、信号pipeが“2”のときは機
能ユニット7−3を示し、信号pipeが“3”のときは機
能ユニット7−4を示すとする。また、信号stage が
“0”のときは命令デコードステージIDを示し、信号
stage が“1”のときは実行ステージEXを示し、信号
stage が“2”のときはメモリ・アクセスステージME
Mを示し、信号stage が“3”のときは書戻しステージ
WBを示すとする。信号pipeが“0”で信号stage が
“1”の場合は、ソース・アドレスsrc1−1と一致
するデスティネーション・アドレスを持つ命令(命令の
処理結果)が、機能ユニット7−1の実行ステージEX
の結果バッファe1に存在することを示す。このため、
トライ・ステート・バッファT1をオンにして、結果バ
ッファe1に格納されている命令の処理結果を、ラッチ
回路L1へバイパスする必要がある。そこで、信号pipe
が“0”であるため、信号pipe[0]および信号pipe
[1]が“0”となっている。そして、信号valid が
“1”の場合は、AND回路29の出力のみが“1”と
なる。また、信号stage が“1”であるため、信号stag
e [0]が“0”であり、信号stage [1]が“1”と
なっている。このため、AND回路37の出力のみが
“1”となる。すなわち、制御信号e1−1−1のみが
“1”となる。この“1”となった制御信号e1−1−
1によって、トライ・ステート・バッファT1がオンに
なる。
エントリのpipeフィールド25およびstage フィールド
27のデータが無効である場合、すなわち、信号pipe
[0],信号pipe[1],信号stage [0],信号stag
e [1]が無効の場合には、信号valid は“0”となっ
ている。ソース・アドレスsrc1−1に対応するエン
トリのpipeフィールド25およびstage フィールド27
のデータが無効であるということは、ソース・アドレス
src1−1と一致するデスティネーション・アドレス
を持つ命令の処理結果が、いずれの機能ユニットのいず
れの結果バッファにも存在しないことを示す。したがっ
て、このような場合には、レジスタ・ファイル5からソ
ース・アドレスsrc1−1に対応するデータをラッチ
回路L1へ読出す必要がある。すなわち、トライ・ステ
ート・バッファT65をオンにする制御信号を発生する
必要がある。ここで、信号valid が“0”であるため、
AND回路29〜35のすべての出力信号は“0”とな
る。さらに、AND回路29〜35のすべての出力信号
が“0”であるため、AND回路37〜51のすべての
出力信号も“0”となる。これによって、NOR回路5
3の出力信号のみが“1”となる。すなわち、制御信号
r−1−1のみが“1”となり、トライ・ステート・バ
ッファT65をオンにする。なお、図7の制御回路S1
−2〜S4−2の構成は、図8に示した制御回路S1−
1の構成と同じである。
部およびstage フィールド27の一部を管理するための
stage フィールド管理回路を示す概略ブロック図であ
る。図9を参照して、stage フィールド55は、図5の
stage フィールド27のうち、1つのエントリに対応す
るものである。すなわち、stage フィールド55は、1
つのエントリのstage フィールドである。そして、stag
e フィールド55に対応して、stage フィールド管理回
路54が設けられる。すなわち、命令管理回路15(図
6)は、複数のエントリf1〜fnに対応して複数のst
age フィールド管理回路54を備えていることになる。
路57、データ比較器59および参照回路61を含む。
エントリに対応するデスティネーション・アドレスを持
つ命令がどのステージに存在するかを示すものである。
すなわち、エントリのstage フィールド55は、そのエ
ントリに対応するデスティネーション・アドレスを持つ
命令の処理結果がどの結果バッファに存在するかを示す
ためのものである。ここで、stage フィールド55が初
期状態または信号stage reset によってリセットされた
状態の場合には、stage フィールド55は“0”となっ
ている。すなわち、エントリのstage フィールド55
は、そのエントリに対応するデスティネーション・アド
レスを持つ命令が命令デコードステージIDに存在する
ときは、“0”となっている。エントリのstage フィー
ルド55は、そのエントリに対応するデスティネーショ
ン・アドレスを持つ命令が実行ステージEXに存在する
ときは、すなわち、そのエントリに対応するデスティネ
ーション・アドレスを持つ命令の処理結果が実行ステー
ジEXの結果バッファに存在するときは、“1”となっ
ている。エントリのstage フィールド55は、そのエン
トリに対応するデスティネーション・アドレスを持つ命
令がメモリ・アクセスステージMEMに存在するとき
は、すなわち、そのエントリに対応するデスティネーシ
ョン・アドレスを持つ命令の処理結果がメモリ・アクセ
スステージMEMの結果バッファに存在するときは、
“2”となっている。エントリのstage フィールド55
は、そのエントリに対応するデスティネーション・アド
レスを持つ命令が書戻しステージWBに存在するとき
は、すなわち、そのエントリに対応するデスティネーシ
ョン・アドレスを持つ命令の処理結果が書戻しステージ
WBに存在するときは、“3”となっている。
をセットしていくのは(更新していくのは)は、stage
フィールド管理回路54である。stage フィールド55
の値には、クロック・サイクルごとに、すなわち、命令
がステージを移行するごとに、加算回路57によって、
“1”が加算される。そして、その加算値は、再びstag
e フィールド55に格納される。データ比較器59は、
stage フィールド55の値と、参照回路61に格納され
ている値“3”とを比較する。そして、データ比較器5
9は、stage フィールド55の値が“3”のときは、信
号valid resetを生成する。すなわち、命令が、書戻し
ステージWBに移行した場合には、データ比較器59か
ら信号valid reset が出力され、stage フィールド管理
回路54に対応するエントリのvalid フィールドがリセ
ットされる。リセットされたvalid フィールドは、pipe
フィールドおよびstage フィールドが無効であることを
示す。このように、命令が書戻しステージWBに存在す
るときに、信号valid reset を出力するのは、命令が書
戻しステージWBに存在するときはバイパスする必要が
なく、レジスタ・ファイル5から直接データを読出せば
よいからである。
令管理回路15のセットまたはリセットについて、具体
例を挙げながら説明する。機能ユニット7−1に投入さ
れる命令のデスティネーション・アドレスdes1が
“1”とする。このとき、フィールド制御回路21−1
は、信号address を“1”とする。信号address “1”
は、デスティネーション・アドレスdes1“1”に対
応するエントリf1を選択する。すなわち、この選択さ
れたエントリf1の3つのフィールド23,25,27
がセットまたはリセットされることになる。そして、フ
ィールド制御回路21−1は、エントリf1のvalid フ
ィールド23を“1”にセットするための信号valid se
t を発生する。なお、valid フィールド23が“1”の
ときには、pipeフィールド25およびstage フィールド
27のデータが有効であることを示し、valid フィール
ド23が“0”の場合には、pipeフィールド25および
stage フィールド27のデータが無効であることを示
す。
ントリf1のpipeフィールド25を“0”にセットする
ための信号pipe setを発生する。なお、pipeフィールド
25が“0”のときは、機能ユニット7−1を示し、pi
peフィールド25が“1”のときは機能ユニット7−2
を示し、pipeフィールド25が“2”のときは機能ユニ
ット7−3を示し、pipeフィールド25が“3”のとき
は機能ユニット7−4を示す。さらに、フィールド制御
回路21−1は、エントリf1のstage フィールド27
をリセットするための信号stage reset を発生する。な
お、stage フィールド27に、信号stage reset が与え
られた場合には、stage フィールド27は“0”とな
る。また、stage フィールド27が“0”の場合は、命
令が命令デコードステージIDに存在することを示し、
stage フィールド27が“1”の場合は、命令が実行ス
テージEXに存在することを示し、stage フィールド2
7が“2”の場合には、命令がメモリ・アクセスステー
ジMEMに存在することを示し、stage フィールド27
が“3”のときは命令が書戻しステージWBに存在する
ことを示す。
照して、具体例を挙げながら、バイパス制御回路13が
行なうバイパス制御について説明する。アドレスデコー
ダ17に入力されるソース・アドレスsrc1−1が
“2”とする。アドレスデコーダ17は、ソース・アド
レスsrc1−1“2”に対応する命令管理回路15の
エントリf2を読出し、ソース・アドレスsrc1−1
“2”に対応するエントリf2のvalid フィールド2
3、pipeフィールド25およびstage フィールド27の
データを制御信号発生回路19に送信する。すなわち、
制御回路S1−1(図7)には、valid フィールド23
から信号valid が入力され、pipeフィールド25からは
信号pipeが入力され、stage フィールド27からは信号
stage が入力されることになる。ここで、信号valid が
“1”、信号pipeが“1”、信号stage が“1”とす
る。すなわち、ソース・アドレスsrc1−1と一致す
るデスティネーション・アドレスを持つ命令(命令の処
理結果)は、機能ユニット7−2の結果バッファe2に
存在することになる。この場合において、信号valid が
“1”、信号pipe[0]が“0”、信号pipe[1]が
“1”であるため、AND回路31(図8)の出力のみ
が“1”となる。また、信号stage [0]が“0”、信
号stage [1]が“1”であるため、AND回路41の
出力のみが“1”となる。すなわち、制御信号e2−1
−1のみが“1”となる。これによって図3のトライ・
ステート・バッファT17がオンし、結果バッファe2
に保持されている命令の処理結果がバス1−1を介して
ラッチ回路L1に転送されることになる。
によるVLIWプロセッサでは、優先順位付選択(比
較)が不要な理由を説明する。命令管理回路15が、あ
るエントリによって、命令を管理している場合におい
て、そのエントリに対応するデスティネーション・アド
レスを持つ命令が、機能ユニット7−1〜7−4のいず
れかに投入されるときは、すなわち、フィールド制御回
路21−1〜21−4のいずれかに、そのエントリに対
応するデスティネーション・アドレスが新たに入力され
るときは、そのエントリは新たに投入される命令を管理
する。たとえば、デスティネーション・アドレス“1”
に対応するエントリは、エントリf1ひとつであるた
め、現在管理している命令のデスティネーション・アド
レスが“1”である場合において、次に投入される命令
のデスティネーション・アドレスも“1”である場合に
は、エントリf1に上書きされることになるのである。
このように、命令管理回路15では、上書きされるの
で、優先順位付選択は不要になる。
Wプロセッサでは、バイパス制御回路によって、命令の
処理結果がいずれの機能ユニットのいずれの結果バッフ
ァに存在するかを管理して、バイパス制御を行なってい
る。このため、デスティネーション・アドレスとソース
・アドレスとを比較するための比較器が不要になるとと
もに、優先順位付選択をも不要になる。その結果、実施
の形態1によるVLIWプロセッサでは、回路が簡単に
なり、高速にバイパス制御を行なうことができる。
処理プロセッサとしてのVLIWプロセッサの構成は、
図1および図3に示した実施の形態1によるVLIWプ
ロセッサの構成と同様である。実施の形態2によるVL
IWプロセッサの命令デコードステージIDでデコード
された基準命令の形式は図2のものと同様である。実施
の形態2によるVLIWプロセッサにおいて、トライ・
ステート・バッファT1〜T72と、トライ・ステート
・バッファT1〜T72を制御する制御信号e1−1−
1〜r4−2との関係は、図4に示したものと同様であ
る。実施の形態2によるVLIWプロセッサのバイパス
制御回路は、図4に示した実施の形態1によるバイパス
制御回路と同様である。
命令管理回路は、図6に示した実施の形態1によるVL
IWプロセッサの命令管理回路と同様である。ただし、
以下の点が異なる。実施の形態1によるVLIWプロセ
ッサの命令管理回路は、pipeフィールド25において、
4つの機能ユニット7−1〜7−4を、2ビットで表現
している。これに対し、実施の形態2によるVLIWプ
ロセッサでは、pipeフィールド25において、4つの機
能ユニット7−1〜7−4を、4ビットのビット・ベク
タで表現している。たとえば、実施の形態2によるVL
IWプロセッサの命令管理回路では、pipeフィールド2
5の第1ビットが“1”の場合は、管理している命令
が、機能ユニット7−1に存在することを示し、pipeフ
ィールド25の第2ビットが“1”の場合は、管理して
いる命令が、機能ユニット7−2に存在することを示
し、pipeフィールド25の第3ビットが“1”の場合
は、管理している命令が、機能ユニット7−3に存在す
ることを示し、pipeフィールド25の第4ビットが
“1”の場合は、管理している命令が、機能ユニット7
−4に存在することを示す。このように、実施の形態2
によるVLIWプロセッサでは、機能ユニット7−1〜
7−4と同数のビット数を有するビット・ベクタで、各
機能ユニットを表現する。pipeフィールド25におい
て、4ビットのビット・ベクタで、各機能ユニットを表
現しているため、pipeフィールド25から、制御信号発
生回路19(図5)に与えられる信号pipeのビット数も
4ビットになる。
制御信号発生回路は、図7に示した実施の形態1による
VLIWプロセッサの制御信号発生回路と同様である。
ただし、異なるのは以下の点である。上述のように、pi
peフィールド25(図6)において、各機能ユニット7
−1〜7−4を、4ビットのビット・ベクタで表現して
いるため、pipeフィールド25から制御回路S1−1〜
S4−2に与えられる信号pipeが4ビットになる。これ
によって、実施の形態2によるVLIWプロセッサの制
御回路S1−1〜S4−2の具体的な回路構成は、図8
に示した実施の形態1によるVLIWプロセッサの制御
回路S1−1〜S4−2の具体的な回路構成と異なって
くる。
ロセッサの制御回路S1−1(図7)の詳細を示す回路
図である。なお、図8と同様な部分については同様の参
照符号を付し、その説明は適宜省略する。図10を参照
して、制御回路S1−1は、AND回路63〜69,3
7〜51およびNOR回路53を含む。AND回路63
〜69には、信号valid が入力される。AND回路63
には、信号pipe[0]が入力される。AND回路65に
は、信号pipe[1]が入力される。AND回路67に
は、信号pipe[2]が入力される。AND回路69に
は、信号pipe[3]が入力される。
フィールドの第1ビット目に対応し、すなわち、信号pi
peの第1ビット目を示し、信号pipe[1]は、pipeフィ
ールドの第2ビット目に対応し、すなわち、信号pipeの
第2ビット目を示し、信号pipe[2]は、pipeフィール
ドの第3ビット目に対応し、すなわち、信号pipeの第3
ビット目を示し、信号pipe[3]は、pipeフィールドの
第4ビット目に対応し、すなわち、信号pipeの第4ビッ
ト目を示すものである。すなわち、信号pipe[0]が
“1”のときには、管理する命令(命令の処理結果)が
機能ユニット7−1に存在することを示し、信号pipe
[1]が“1”の場合は、管理する命令(命令の処理結
果)が機能ユニット7−2に存在することを示し、信号
pipe[2]が“1”の場合は、管理する命令(命令の処
理結果)が機能ユニット7−3に存在することを示し、
信号pipe[4]が“1”の場合は、管理する命令(命令
の処理結果)が機能ユニット7−4に存在することを示
す。したがって、AND回路63〜69によって、管理
している命令がどの機能ユニットに存在するかを識別で
きる。なお、制御回路S1−2〜S4−2の具体的な回
路構成は図10に示した制御回路S1−1と同じであ
る。
stage フィールドおよびstage フィールド管理回路は、
図9に示した実施の形態1によるstage フィールドおよ
びstage フィールド管理回路と同様である。
Wプロセッサでは、バイパス制御回路のpipeフィールド
25(図5)において、4つの機能ユニット7−1〜7
−4(図3)を4ビットのビット・ベクタで表現してい
る。すなわち、機能ユニットと同数のビット数を有する
ビット・ベクタで、機能ユニットを表現している。この
ため、制御回路(図10)が、実施の形態1によるVL
IWプロセッサの制御回路(図8)より簡単になる。そ
の結果、実施の形態2によるVLIWプロセッサでは、
実施の形態1によるVLIWプロセッサに比し、さらに
高速に、バイパス制御を行なうことができる。
処理プロセッサとしてのVLIWプロセッサの構成は、
図1および図3に示した実施の形態1によるVLIWプ
ロセッサと同様である。実施の形態3によるVLIWプ
ロセッサの命令デコードステージIDでデコードされた
基準命令の形式は図2に示したものと同様である。
トライ・ステート・バッファT1〜T72と、制御信号
e1−1−1〜r−4−2との対応関係は、図4に示し
たのと同様である。実施の形態4によるVLIWプロセ
ッサのバイパス制御回路は、図5に示した実施の形態1
によるVLIWプロセッサのバイパス制御回路と同様で
ある。
命令管理回路は、図6に示した実施の形態1によるVL
IWプロセッサの命令管理回路と同様である。ただし、
以下の点が異なる。実施の形態1によるVLIWプロセ
ッサのstage フィールド27では、管理している命令が
存在するステージを、2ビットで表現している。これに
対し、実施の形態3によるVLIWプロセッサの命令管
理回路のstage フィールド27では、管理している命令
が存在するステージを4ビットのビット・ベクタで表現
している。たとえば、命令デコードステージIDに、命
令が存在する場合は、stage フィールド27の第1ビッ
トを“1”にセットし、実行ステージEXに命令が存在
する場合は、stage フィールド27の第2ビットを
“1”にセットし、メモリ・アクセスステージMEMに
命令が存在する場合は、stage フィールド27の第3ビ
ットを“1”にセットし、書戻しステージWBに命令が
存在する場合は、stage フィールド27の第4ビットを
“1”にセットする。このように、stage フィールド2
7においては、4つのステージを4ビットのビット・ベ
クタで表現しているため、stage フィールド27から制
御信号発生回路19(図5)へ与えられる信号stage も
4ビットとなる。
制御信号発生回路は、図7に示した実施の形態1による
VLIWプロセッサの制御信号発生回路と同様である。
ただし以下の点が異なる。上述したように、実施の形態
3によるVLIWプロセッサでは、stage フィールド2
7において、4つのステージを4つのビット・ベクタで
表現しているため、stage フィールド27から制御回路
S1−1〜S4−2に与えられる信号stage も4ビット
になる。このため、制御回路S1−1〜S4−2の具体
的な回路構成が実施の形態1によるVLIWプロセッサ
の制御回路S1−1〜S4−2と異なってくる。
LIWプロセッサの制御回路(図7)の詳細を示す回路
図である。なお、図8と同様の部分については同一の参
照符号を付しその説明を適宜省略する。
AND回路29〜35,71〜85およびNOR回路5
3を含む。AND回路71,73には、AND回路29
の出力信号が入力される。AND回路75,77には、
AND回路31の出力信号が入力される。AND回路7
9,81には、AND回路33からの出力信号が入力さ
れる。AND回路83,85には、AND回路35から
の出力信号が入力される。AND回路71,75,7
9,83には、信号stage [1]が入力される。AND
回路73,77,81,85には、信号stage [2]が
入力される。
ールド27(図5)の第2ビット目の値、すなわち、信
号stage の第2ビット目を示している。すなわち、信号
stage [1]は、管理している命令が、命令実行ステー
ジEXに存在するか否かを示す信号である。信号stage
[2]は、stage フィールド27の第3ビット目の値、
すなわち、信号stage の第3ビット目を示している。す
なわち、stage [2]は、管理している命令が、メモリ
・アクセスステージMEMに存在するか否かを示す信号
である。具体的に言うと、信号[1]が、“1”のとき
は、管理している命令が、命令実行ステーションEXに
存在することを示す。また、信号[2]が“1”のとき
は、管理している命令が、メモリ・アクセスステージM
EMに存在することを示す。なお、制御回路S1−1で
は、実行ステージEXの結果バッファe1〜e4および
メモリ・アクセスステージMEMの結果バッファm1〜
m4に保持されている命令の処理結果をバイパスするこ
とを目的としているため、stage フィールド27の第1
ビット目に対応する信号stage [0]および、stage フ
ィールド27の第4ビット目に対応する信号stage
[3]は、制御回路S1−1に入力する必要はない。こ
こで、図8(実施の形態1)では、ステージを識別する
ためのAND回路37〜51は、3入力となっている
が、図11において、ステージを識別するためのAND
回路71〜85は、2入力となっている。
げて動作について説明する。ラッチ回路L1が必要とす
るデータのソース・アドレスと、結果バッファe3に存
在する命令の処理結果(データ)のデスティネーション
・アドレスとが一致する場合を考える。この場合、信号
valid および信号pipe[0]は“1”であり、信号pipe
[1]は0である。このため、AND回路33の出力信
号のみが“1”となる。そして、stage [1]が“1”
であり、信号stage [2]が“0”である。このため、
AND回路79の出力信号のみが“1”となる。すなわ
ち、制御信号e3−1−1のみが“1”となる。これに
よってトライ・ステート・バッファT33がオンにな
り、結果バッファe3に保持されている命令の処理結果
がラッチ回路L1に転送されることになる。
るデータのソース・アドレスが8つの結果バッファe1
〜e4,m1〜m4に保持されている8つの命令の処理
結果の8つのデスティネーション・アドレスのいずれと
も一致しない場合には、信号valid が“0”である。こ
のため、AND回路71〜85の出力信号はすべて
“0”になる。これによって、NOR回路53の出力
が、“1”となる。すなわち、制御信号r−1−1が
“1”となる。これによって、トライ・ステート・バッ
ファT65がオンし、レジスタ・ファイル5からデータ
がラッチ回路L1に投入される。なお、制御回路S1−
2〜S4−2の回路構成は、図11に示した制御回路と
同じである。
ロセッサのstage フィールド27(図5)の一部および
stage フィールド27の一部を管理するビット・シフタ
を示す概略ブロック図である。図12を参照して、stag
e フィールドの一部87は、stage フィールド27(図
5)の一部であって、1つのエントリに対応するもので
ある。したがって、stage フィールドの一部87に対応
して設けられるビット・シフタ89もまた、1つのエン
トリに対応するものである。stage フィールドの一部8
7では、4ビットのビット・ベクタで、ステージを識別
している。したがって、ビット・シフタ89によって、
命令が命令デコードステージIDに存在するときには、
stage フィールドの一部87の第1ビット目[0]を
“1”にセットし、命令が実行ステージEXに存在する
ときには、stage フィールドの一部87の第2ビット目
[1]を“1”にセットし、命令がメモリ・アクセスス
テージMEMに存在するときは、stage フィールドの一
部87の第3ビット目[2]を“1”にセットし、命令
が書戻しステージWBに存在するときは、stage フィー
ルドの一部87の第4ビット目[3]を“1”にセット
する。
ージへ移行するごとに、すなわち、クロック・サイクル
ごとに、移行したステージに対応する、ビット・ベクタ
のビットをセットする。たとえば、命令が、実行ステー
ジEXに存在するときは、stage フィールドの一部87
のビット・ベクタは、0100になっている。validフ
ィールド23(図5)をリセットするための信号valid
reset は、命令が、書戻しステージWBに進んだときに
発生すればよい。このため、stage フィールドの一部8
7の第4ビット[3]の値をそのまま信号valid reset
とする。
Wプロセッサでは、ステージをビット・ベクタで表わし
ている。すなわち、4つのステージを4ビットのビット
・ベクタで表わしている。このため、制御回路(図1
1)およびstage フィールド27(図5)を管理する回
路(図12のビット・シフタ89)が、実施の形態1に
よるVLIWプロセッサの制御回路(図8)およびstag
e フィールド27を管理する回路(図9のstage フィー
ルド管理回路54)に比し、簡単になる。その結果、実
施の形態3によるVLIWプロセッサでは、さらに、高
速に、制御信号a1−1−1〜r−4−2および信号va
lid reset を発生することができ、さらに、高速にバイ
パス制御を行なうことができる。
ッサの特徴部分と、実施の形態3によるVLIWプロセ
ッサの特徴部分とを組合せることができる。すなわち、
4つの機能ユニット7−1〜7−4を4ビットのビット
・ベクタで表わし、かつ、4つのステージ(命令デコー
ドステージID、実行ステージEX、メモリ・アクセス
ステージMEMおよび書戻しステージWB)を4ビット
のビット・ベクタで表わす。このようにした場合、制御
回路S1−1〜S4−2(図7)の具体例な回路構成が
異なってくる。
ロセッサの特徴部分と実施の形態3によるVLIWプロ
セッサの特徴部分とを組合せた場合の制御回路S1−1
(図7)の詳細を示す回路図である。図13を参照し
て、制御回路S1−1は、AND回路63〜69,71
〜85およびNOR回路53を含む。なお、図10およ
び図11と同様の部分については同一の参照符号を付し
説明は省略する。また、制御回路S1−2〜S4−2の
具体的な回路構成も、図13の制御回路S1−1と同じ
である。このように、実施の形態2によるVLIWプロ
セッサの特徴部分と実施の形態3によるVLIWプロセ
ッサの特徴部分を組合せた場合には、実施の形態2によ
るVLIWプロセッサの制御回路(図10)または実施
の形態3によるVLIWプロセッサの制御回路(図1
1)に比し、制御回路が簡単になる。その結果、実施の
形態2によるVLIWプロセッサまたは実施の形態3に
よるVLIWプロセッサよりもさらに高速にバイパス制
御を行なうことができる。
処理プロセッサとしてのVLIWプロセッサの構成は、
図1および図3に示した実施の形態1によるVLIWプ
ロセッサの構成と同様である。実施の形態4によるVL
IWプロセッサの命令デコードステージIDでデコード
された基準命令の形式は、図2に示したものと同様であ
る。実施の形態4によるVLIWプロセッサのトライ・
ステート・バッファT1〜T72と、制御信号e1−1
−1〜r−4−2との対応関係は、図4に示したものと
同様である。
ロセッサのバイパス制御回路13(図3)を示す概略ブ
ロック図である。なお、図5と同様の部分については同
一の参照符号を付しその説明を適宜省略する。図14を
参照して、バイパス制御回路は、フィールド制御回路2
1−1〜21−4、命令管理回路88、アドレスデコー
ダ17および制御信号発生回路90を含む。命令管理回
路88は、機能ユニットフィールド(以下、「pipeフィ
ールド」という)25およびステージフィールド(以
下、「stage フィールド」という)27を含む。
パス制御回路が異なるのは、図14のバイパス制御回路
には、図5のバイパス制御回路のようなvalid フィール
ド23がないことである。実施の形態4によるVLIW
プロセッサのバイパス制御回路では、以下のようにし
て、pipeフィールド25およびstage フィールド27の
データが有効か無効かを判断している。
理回路と同様に、複数のエントリf1〜fnに分かれて
いる。
るVLIWプロセッサのpipeフィールドと同様のもので
ある。すなわち、4つの機能ユニット7−1〜7−4
を、4ビットのビット・ベクタで表わしている。そし
て、あるエントリのpipeフィールド25において、ビッ
ト・ベクタの第1ビット〜第4ビットの値のうちいずれ
か1つが“1”の場合は、そのエントリのpipeフィール
ド25およびstage フィールド27のデータは有効であ
るとする。一方、あるエントリのpipeフィールド25に
おいて、ビット・ベクタの第1ビット〜第4ビットの値
のすべてが“0”の場合は、そのエントリのpipeフィー
ルド25およびstage フィールド27のデータは無効で
あるとする。
フィールド25のビット・ベクタのすべてのビットを
“0”に初期化しておく必要がある。また、命令が書戻
しステージWBに存在する場合は、その命令が持つデス
ティネーション・アドレスに対応するエントリのpipeフ
ィールド25において、ビット・ベクタのすべてのビッ
トをリセットする必要がある。なぜならば、命令(命令
の処理結果)が書戻しステージWBに存在するときに
は、レジスタ・ファイルから直接データを読出せばよ
く、バイパスする必要がないからである。また、stage
フィールド27を管理するstage フィールド管理回路
は、図9に示したものと同様である。したがって、pipe
フィールド25において、ビット・ベクタのすべてのビ
ットのリセットは、図9のstage フィールド管理回路5
4が発生する信号valid reset によって行なわれる。
ト・ベクタによって機能ユニットを表わしているため、
制御信号発生回路90には、それに対応して4ビットの
信号pipeがpipeフィールド25から与えられることにな
る。なお、ソース・アドレスsrc1−1〜src4−
2は8個であるため、pipeフィールド25からは、4ビ
ットの8個の信号pipeが制御信号発生回路90に与えら
れる。
を示す概略ブロック図である。なお、図7と同様の部分
については同一の参照符号を付しその説明は適宜省略す
る。図15を参照して、制御回路S1−1には、4ビッ
トの信号pipeおよび2ビットの信号stage が与えられ
る。これに応じて、制御回路S1−1は制御信号e1−
1−1〜e4−1−1,m1−1−1〜m4−1−1,
r−1−1を発生する。なお、制御回路S1−2〜S4
−2についても制御回路S1−1と同様である。
細を示す回路図である。図16を参照して、制御回路S
1−1は、AND回路91〜105およびNOR回路5
3を含む。AND回路91〜105には、信号stage
[0]および信号stage [1]が入力される。AND回
路91,93には、信号pipe[0]が入力される。AN
D回路95,97には、信号pipe[1]が入力される。
AND回路99,101には、信号pipe[2]が入力さ
れる。AND回路103,105には、信号pipe[3]
が入力される。ここで、信号pipe[0]、信号pipe
[1]、信号pipe[2]および信号pipe[3]は、それ
ぞれ、図10(実施の形態2)に示した信号pipe
[0]、信号pipe[1]、信号pipe[2]および信号pi
pe[3]と同様である。信号stage [0]および信号st
age [1]は、それぞれ、図10に示した信号stage
[0]および信号stage [1]と同様のものである。
て、図3も参照しながら具体例を挙げて説明する。ラッ
チ回路L1でこれから必要とされるデータのソース・ア
ドレスと、結果バッファe3に保持されている命令の処
理結果(データ)のデスティネーション・アドレスとが
一致している場合を考える。この場合には、信号pipe
[0]、信号pipe[1]および信号pipe[3]は“0”
であり、信号pipe[2]は“1”である。また、信号st
age [0]は“0”であり、信号stage [1]は“1”
である。このため、AND回路99の出力信号のみが
“1”となる。すなわち制御信号e3−1−1のみが
“1”となる。このため、トライ・ステート・バッファ
T33がオンになり、結果バッファe3に保持されてい
る命令の処理結果がラッチ回路L1に転送されることに
なる。また、ラッチ回路L1にこれから必要とされるデ
ータのソース・アドレスが、結果バッファe1〜e4,
m1〜m4に存在する命令の処理結果(データ)のデス
ティネーション・アドレスのいずれとも一致しない場
合、すなわち、ラッチ回路L1でこれから必要とされる
データのソース・アドレスに対応するエントリのpipeフ
ィールドおよびstage フィールドのデータが無効である
場合は、信号pipe[0]〜pipe[3]のすべてが“0”
となる。したがって、AND回路91〜105の出力信
号はすべて“0”となる。これによって、NOR回路5
3から出力される制御信号r−1−1は“1”となる。
これに応じて、トライ・ステート・バッファT65がオ
ンになり、レジスタ・ファイル5から直接データがラッ
チ回路L1に読出されることになる。なお、制御回路s
1−2〜s4−2の回路構成も、図16に示した制御回
路s1−1の回路構成と同じである。
Wプロセッサでは、pipeフィールド25において、4つ
の機能ユニットを4ビットのビット・ベクタで表わし、
pipeフィールド25に、図5に示したようなvalid フィ
ールド23の役割を果たさせている。このため、実施の
形態4によるVLIWプロセッサでは、その命令管理回
路88が、実施の形態1による命令管理回路15(図
5)に比し小さくなる。
ッサでは、4つの機能ユニットを4ビットのビットベク
タで表わすことで、pipeフィールド25に、図5に示し
たようなvalid フィールド23の役割を果たさせてい
る。このため、図5で示したようなvalid フィールド2
3からの信号valid がなくなる。これによって、制御回
路S1−1〜S4−2が、実施の形態1によるVLIW
プロセッサの制御回路S1−1〜S4−2(図8)に比
し、簡単になる。その結果、実施の形態4によるVLI
Wプロセッサでは、実施の形態1によるVLIWプロセ
ッサに比し、バイパス制御をさらに高速に行なうことが
できる。
ッサは、実施の形態3によるVLIWプロセッサの特徴
部分と組合せることができる。すなわち、実施の形態4
によるVLIWプロセッサのstage フィールド27にお
いて、4つのステージを4ビットのビット・ベクタで表
わす。こうすることで、制御回路S1−1〜S4−2が
図16の制御回路に比し簡単になる。
ロセッサと、実施の形態3によるVLIWプロセッサの
特徴部分を組合せた場合の制御回路S1−1(図15)
の詳細を示す回路図である。なお、図16と同様の部分
については同一の参照符号を付しその説明は適宜省略す
る。図17を参照して、制御回路S1−1は、AND回
路107〜121およびNOR回路53を含む。AND
回路107,111,115,119には、信号stage
[1]が入力される。AND回路109,113,11
7,121には、信号stage [2]が入力される。信号
stage [1]は、図11の信号stage [1]と同様のも
のであり、信号stage [2]は、図11の信号stage
[2]と同様のものである。
具体例を挙げて説明する。ラッチ回路L1でこれから必
要とされるデータのソース・アドレスと、結果バッファ
e3に保持されている命令の処理結果(データ)のデス
ティネーション・アドレスとが一致する場合を考える。
この場合には、信号pipe[0]、信号pipe[1]および
信号pipe[3]が“0”であり、信号pipe[2]が
“1”である。さらに、信号stage [1]が“1”であ
り、信号stage [2]が“0”である。このため、AN
D回路115の出力信号のみが“1”となる。すなわち
制御信号e3−1−1のみが“1”となる。これによっ
て、トライ・ステート・バッファT33がオンし、結果
バッファe3に保持されている命令の処理結果(デー
タ)が、ラッチ回路L1に転送される。
れるデータのソース・アドレスが、8個の結果バッファ
e1〜e4,m1〜m4に保持されている8個の命令の
処理結果(データ)のデスティネーション・アドレスの
いずれとも一致しない場合は、すなわち、ラッチ回路L
1にこれから必要とされるデータのソース・アドレスに
対応するエントリのpipeフィールド25およびstage フ
ィールド27のデータが無効である場合は、信号pipe
[0]〜pipe[3]がすべて“0”となる。このため、
AND回路107〜121の出力信号はすべて“0”と
なる。これによって、NOR回路53から出力される制
御信号r−1−1は“1”となる。これによって、トラ
イ・ステート・バッファT65がオンになり、レジスタ
・ファイル5から直接ラッチ回路L1にデータが読出さ
れることになる。なお、制御回路S1−2〜S4−2の
回路構成も、図17に示した制御回路S1−1の回路構
成と同じである。
Wプロセッサと、実施の形態3によるVLIWプロセッ
サの特徴部分を組合せた場合には、制御回路S1−1〜
S4−2(図17)が、実施の形態4によるVLIWプ
ロセッサの制御回路S1−1〜S4−2(図16)より
簡単になる。その結果、実施の形態4によるVLIWプ
ロセッサと実施の形態3によるVLIWプロセッサの特
徴部分を組合せた場合には、実施の形態4によるVLI
Wプロセッサよりもさらに高速にバイパス制御を行なう
ことができる。
プロセッサとしてのVLIWプロセッサの全体構成は、
図1に示した実施の形態1によるVLIWプロセッサの
全体構成と同様である。
ロセッサの一部を示す概略ブロック図である。なお、図
3と同様の部分については同一の参照符号を付しその説
明を適宜省略する。
4,m1〜m4に対応して、アドレス保持回路ee1〜
ee4,mm1〜mm4が設けられる。アドレス保持回
路ee1は、結果バッファe1に保持されている命令の
処理結果のデスティネーション・アドレスe1−aを保
持している。アドレス保持回路ee2は、結果バッファ
e2に保持されている命令の処理結果のデスティネーシ
ョン・アドレスe2−aを保持している。アドレス保持
回路ee3は、結果バッファe3に保持されている命令
の処理結果のデスティネーション・アドレスe3−aを
保持している。アドレス保持回路ee4は、結果バッフ
ァe4に保持されている命令の処理結果のデスティネー
ション・アドレスe4−aを保持している。
m1に保持されている命令の処理結果のデスティネーシ
ョン・アドレスm1−aを保持している。アドレス保持
回路mm2は、結果バッファm2に保持されている命令
の処理結果のデスティネーション・アドレスm2−aを
保持している。アドレス保持回路mm3は、結果バッフ
ァm3に保持されている命令の処理結果のデスティネー
ション・アドレスm3−aを保持している。アドレス保
持回路mm4は、結果バッファm4に保持されている命
令の処理結果のデスティネーション・アドレスm4−a
を保持している。
4,mm1〜mm4は、図3のVLIWプロセッサにお
いても、図示していないが、設けられているものであ
る。したがって、アドレス保持回路ee1〜ee4,m
m1〜mm4は、実施の形態4によるVLIWプロセッ
サのために特別に設けたわけではない。後で詳しく説明
するが、バイパス制御回路123には、アドレス保持回
路ee1〜ee4,mm1〜mm4に保持されているデ
スティネーション・アドレスe1−a〜e4−a,m1
−a〜m4−aが入力される。
3を示す概略ブロック図である。なお、図5と同様の部
分については同一の参照符号を付しその説明を適宜省略
する。
フィールド制御回路21−1〜21−4、命令管理回路
125、アドレスデコーダ17および制御信号発生回路
127を含む。命令管理回路125は、有効/無効フィ
ールド(以下、「valid フィールド」という)23およ
び機能ユニットフィールド(以下、「pipeフィールド」
という)25を含む。命令管理回路125は、図6に示
した命令管理回路と同様に、複数のエントリf1〜fn
に分かれている。図19のバイパス制御回路が、図5の
バイパス制御回路と異なるのは、図19のバイパス制御
回路には、図5のようなstage フィールド27が存在し
ないことである。したがって、図19の命令管理回路1
25には、図9に示すようなstage フィールド管理回路
54も設けられていない。制御信号発生回路127に
は、アドレス保持回路ee1〜ee4,mm1〜mm4
に保持されているデスティネーション・アドレスe1−
a〜e4−a,m1−a〜m4−aおよびラッチ回路L
1〜L8がこれから必要とするデータのソース・アドレ
スsrc1−1〜src4−2が入力される。
7を示す概略ブロック図である。なお、図7と同様の部
分については同一の参照符号を付しその説明を適宜省略
する。
7は、制御回路S1−1〜S4−2を含む。制御回路S
1−1〜S4−2には、アドレス保持回路ee1〜ee
4,mm1〜mm4に保持されているデスティネーショ
ン・アドレスe1−a〜e4−a,m1−a〜m4−a
が入力される。そして、制御回路S1−1には、対応す
るソース・アドレスsrc1−1およびソース・アドレ
スsrc1−1に対応するエントリからの信号valid 、
信号pipeが入力される。制御回路S1−2〜S4−2に
ついても同様に、対応するソース・アドレスsrc1−
2〜src4−2およびソース・アドレスsrc1−2
〜src4−2に対応するエントリからの信号valid ,
信号pipeが入力される。
細を示す回路図である。なお、図8と同様の部分につい
ては同一の参照符号を付しその説明を適宜省略する。ま
た、図21の信号pipe[0]および信号pipe[1]は、
図8の信号pipe[0]および信号pipe[1]と同様のも
のである。
判断回路128、AND回路137〜155およびNO
R回路53含む。判断回路128は、選択回路129,
131および比較器133,135を含む。判断回路1
28は、ラッチ回路L1がこれから必要とするデータの
ソース・アドレスsrc1−1が、4つの機能ユニット
7−1〜7−4の8つの結果バッファe1〜e4,m1
〜m4のいずれに存在する命令の処理結果のデスティネ
ーション・アドレスm1−a〜m4−a,e1−a〜e
4−aと一致するか否かを判断するものである。詳しく
説明する。
アドレスm1−a〜m4−aを受ける。そして、選択回
路129は、信号pipeが“0”のときはデスティネーシ
ョン・アドレスm1−aを選択し、信号pipeが“1”の
ときはデスティネーション・アドレスm2−aを選択
し、信号pipeが“2”のときはデスティネーション・ア
ドレスm3−aを選択し、信号pipeが“3”のときはデ
スティネーション・アドレスm4−aを選択する。選択
回路131は、信号pipeが“0”のときはデスティネー
ション・アドレスe1−aを選択し、信号pipeが“1”
のときはデスティネーション・アドレスe2−aを選択
し、信号pipeが“2”のときはデスティネーション・ア
ドレスe3−aを選択し、信号pipeが“3”のときはデ
スティネーション・アドレスe4−aを選択する。
れたデスティネーション・アドレスと、ソース・アドレ
スsrc1−1とを比較する。そして、比較器133
は、選択回路129で選択されたデスティネーション・
アドレスと、ソース・アドレスsrc1−1とが一致す
る場合には、AND回路137に出力信号“1”を出力
し、一致しない場合には出力信号“0”を出力する。比
較器135は、選択回路131で選択されたデスティネ
ーション・アドレスとソース・アドレスsrc1−1と
を比較する。そして、比較器135は、選択回路131
で選択されたデスティネーション・アドレスとソース・
アドレスsrc1−1とが一致する場合には、出力信号
“1”を出力し、一致しない場合には出力信号“0”を
出力する。
が入力されているため、ソース・アドレスsrc1−1
に対応するエントリのpipeフィールド25のデータが有
効か否かを調べるためのものである。信号valid が
“1”の場合、すなわち、pipeフィールドのデータが有
効である場合を考えると、比較器133の出力信号のみ
が“1”の場合は、AND回路137の出力信号が
“1”となり、比較器135の出力信号のみが“1”の
ときは、AND回路139の出力信号のみが“1”とな
る。信号valid が“1”の場合に、比較器133,13
5の両方から出力信号“1”が出力された場合を考え
る。このときには、比較器135の出力信号は、AND
回路137に反転して入力されているため、AND回路
137の出力信号は“0”となり、AND回路139の
出力信号のみが“1”となる。すなわち、命令実行ステ
ージEXの結果バッファe1〜e4に保持されている命
令の処理結果(データ)を、メモリ・アクセスステージ
MEMの結果バッファm1〜m4に保持されている命令
の処理結果よりも、優先的にバイパスするためである。
路137からの出力信号が入力される。AND回路14
9〜155には、AND回路139からの出力信号が入
力される。AND回路141〜155には、信号pipe
[0]および信号pipe[1]が入力される。NOR回路
53には、AND回路141〜155からの出力信号が
入力される。AND回路141〜155は、制御信号m
1−1−1〜m4−1−1,e1−1−1〜e4−1−
1を出力し、NOR回路53は制御信号r−1−1を出
力する。
図18も参照しながら具体例を挙げて説明する。ラッチ
回路L1がこれから必要とするデータのソース・アドレ
スsrc1−1が、結果バッファe3に保持されている
命令の処理結果(データ)のデスティネーション・アド
レスe3−aと一致する場合を考える。なお、このとき
信号valid は“1”である。選択回路129は、デステ
ィネーション・アドレスm3−aを選択し、選択回路1
31は、デスティネーション・アドレスe3−aを選択
する。比較器133は、デスティネーション・アドレス
m3−aとソース・アドレスsrc1−1とを比較し、
“0”を出力する。比較器135は、デスティネーショ
ン・アドレスe3−aとソース・アドレスsrc1−1
を比較し、出力信号“1”を出力する。このため、AN
D回路137の出力信号は“0”になり、AND回路1
39の出力信号は“1”となる。信号pipe[0]は
“1”であり、信号pipe[1]は“0”である。このた
め、AND回路153の出力信号のみが“1”となる。
すなわち、制御信号e3−1−1のみが“1”となる。
これによって、トライ・ステート・バッファT33がオ
ンになり、結果バッファe3に保持されている命令の処
理結果(データ)はラッチ回路L1に転送される。
ータのソース・アドレスsrc1−1が4つの機能ユニ
ット7−1〜7−4の8つの結果バッファe1〜e4,
m1〜m4のいずれに存在する命令の処理結果のデステ
ィネーション・アドレスとも一致しない場合、すなわ
ち、ソース・アドレスsrc1−1に対応するエントリ
のpipeフィールド25のデータが無効の場合には、信号
valid が“0”であるため、AND回路137,139
の出力信号は“0”となり、AND回路141〜155
の出力信号も“0”となる。このため、NOR回路53
の信号が“1”となる。すなわち、制御信号r−1−1
のみが1となる。これによって、トライ・ステータス・
バッファT65がオンになり、レジスタ・ファイル5か
ら直接ラッチ回路L1にデータが読出される。なお、制
御回路S1−2〜S4−2についても、図21に示す制
御回路S1−1と同じ回路構成である。
Wプロセッサでは、バイパス制御回路によって、命令の
処理結果がいずれの機能ユニットに存在するかを管理し
て、バイパス制御を行なっている。このため、1つのソ
ース・アドレスに対して、2個の比較器133,135
を設ければ足りる。また、1つのソース・アドレスに対
して2個のデータの優先順位付選択を行なえば足りる。
これに対し、従来のVLIWプロセッサでは、1つのソ
ース・アドレスに対して8個の比較器が必要となる。ま
た、従来のVLIWプロセッサでは、8個のデータの優
先順位付選択が必要となる。このように、実施の形態5
によるVLIWプロセッサでは、従来のVLIWプロセ
ッサに比し、回路が簡単になり、優先順位付選択も簡単
になる。このため、従来のVLIWプロセッサに比し、
高速にバイパス制御を行なうことができる。
と、実施の形態2によるVLIWプロセッサの特徴部分
とを組合せることができる。すなわち、図19のpipeフ
ィールド25において、4つの機能ユニットを2ビット
で表わすのではなく、4つの機能ユニットを4ビットの
ビット・ベクタで表わすものである。これによって、pi
peフィールド25から出力される信号pipeも4ビットと
なる。したがって、図20に示す制御回路S1−1〜S
4−2の具体的な回路構成が、図21の回路構成と異な
ってくる。
ロセッサと、実施の形態2によるVLIWプロセッサの
特徴部分とを組合せた場合の制御回路S1−1(図2
0)の詳細を示す回路図である。なお、図21と同様の
部分については同一の参照符号を付しその説明を適宜省
略する。
128、AND回路137,139,157〜171お
よびNOR回路53を含む。
63には、AND回路137からの出力信号が入力され
る。AND回路165〜171には、AND回路139
からの出力信号が入力される。AND回路157,16
5には、信号pipe[0]が入力される。AND回路15
9,167には、信号pipe[1]が入力される。AND
回路161,169には、信号pipe[2]が入力され
る。AND回路163,171には、信号pipe[3]が
入力される。なお、信号pipe[0]〜信号pipe[3]
は、図10の信号pipe[0]〜信号pipe[3](実施の
形態2)と同様のものである。AND回路157〜17
1の出力信号は、NOR回路153に入力される。AN
D回路157〜171は、制御信号m1−1−1〜m4
−1−1,e1−1−1〜e3−1−1を出力し、NO
R回路53は、制御信号r−1−1を出力する。
て、図18も参照しながら具体例を挙げて説明する。ラ
ッチ回路L1がこれから必要とするデータのソース・ア
ドレスsrc−1−1が、結果バッファe3に保持され
ている命令の処理結果(データ)のデスティネーション
・アドレスe3−aと一致する場合を考える。このとき
信号valid は“1”である。判断回路128の処理につ
いては、図21において具体例を挙げた場合と同様であ
るため説明を省略する。AND回路137の出力は
“0”となり、AND回路139の出力信号のみが
“1”となる。信号pipe[0]、信号pipe[1]および
信号pipe[3]は“0”で、信号pipe[2]だけが
“1”である。なぜならば、結果バッファe3は、機能
ユニット7−3に存在するからである。したがって、A
ND回路169の出力信号のみが1となる。すなわち制
御信号e3−1−1のみが“1”となる。これによって
トライ・ステート・バッファT33がオンし、結果バッ
ファe3に保持されている命令の処理結果(データ)
が、ラッチ回路L1へ転送される。
れるデータのソース・アドレスsrc1−1が4つの機
能ユニット7−1〜7−4の8つの結果バッファe1−
e4,m1−m4に保持されているいずれの命令の処理
結果のデスティネーション・アドレスとも一致しない場
合(信号valid が“0”の場合)の、図22の制御回路
S1−1の動作については、図21の制御回路S1−1
の場合と同様である。また、他の制御回路S1−2〜S
4−2の回路構成は、図22の制御回路S1−1と同じ
ものである。
Wプロセッサと実施の形態2によるVLIWプロセッサ
の特徴とを組合せた場合には、制御回路S1−1〜S4
−2が、実施の形態4によるVLIWプロセッサの制御
回路S1−1〜S4−2よりも簡単になる。したがっ
て、実施の形態5によるVLIWプロセッサと実施の形
態2によるVLIWプロセッサの特徴部分を組合せた場
合には、実施の形態4によるVLIWプロセッサよりも
さらに高速にバイパス制御を行なうことができる。
処理プロセッサとしてのVLIWプロセッサの構成は、
図1および図18のVLIWプロセッサの構成と同様で
ある。実施の形態6によるVLIWプロセッサのデコー
ドステージIDでデコードされた基準命令の形式は、図
2に示したものと同様である。実施の形態6によるVL
IWプロセッサにおいて、トライ・ステート・バッファ
T1〜T72と、トライ・ステート・バッファT1〜T
72を制御する制御信号e1−1−1〜r−4−2との
対応関係は、図4に示したものと同様である。
ロセッサのバイパス制御回路123(図18)を示す概
略ブロック図である。なお、図5と同様の部分について
は同一の参照符号を付しその説明を適宜省略する。
フィールド制御回路21−1〜21−4、命令管理回路
173、アドレスデコーダ17および制御信号発生回路
175を含む。命令管理回路173は、valid フィール
ド23およびstage フィールド27を含む。
路と同様に、複数のエントリf1〜fnに分かれてい
る。図23の命令管理回路173が、図5の命令管理回
路15と異なるのは、図23の命令管理回路173に
は、図5のpipeフィールド25がないことである。した
がって、フィールド制御回路21−1〜21−4から与
えられる信号pipe setもない。制御信号発生回路175
は、ラッチ回路L1〜L8にこれから入力されようとす
る8つのデータのソース・アドレスsrc1−1〜sr
c4−2を受ける。また、制御信号発生回路175は、
アドレス保持回路ee1〜ee4,mm1〜mm4に保
持されているデスティネーション・アドレスe1−a〜
e4−a,m1−a〜m4−aを受ける。
5を示す概略ブロック図である。なお、図7と同様の部
分については同一の参照符号を付しその説明を適宜省略
する。
5は、制御回路S1−1〜S4−2を含む。制御回路S
1−1〜S4−2は、デスティネーション・アドレスe
1−a〜e4−a,m1−a〜m4−aを受ける。制御
回路S1−1は、対応するソース・アドレスsrc1−
1およびソース・アドレスsrc1−1に対応するエン
トリからの信号valid 、信号pipeを受ける。同様に、制
御回路S1−2〜S4−2も、対応するソース・アドレ
スsrc1−2〜src4−2およびソース・アドレス
src1−2〜src4−2に対応するエントリからの
信号valid 、信号pipeを受ける。
細を示す回路図である。なお、図8と同様の部分につい
ては同一の参照符号を付しその説明を適宜省略する。図
25を参照して、制御回路S1−1は、判断回路17
7、AND回路195〜209およびNOR回路53を
含む。判断回路177は、選択回路179〜185およ
び比較器187〜193を含む。判断回路177は、ラ
ッチ回路L1にこれから必要とされるデータのソース・
アドレスsrc1−1が、4つの機能ユニット7−1〜
7−4の8つの結果バッファe1〜e4,m1〜m4の
いずれに存在する命令の処理結果(データ)のデスティ
ネーション・アドレスと一致するか否かを判断するため
のものである。以下詳しく説明する。
・アドレスe1−a,m1−aが入力され、比較回路1
81にはデスティネーション・アドレスe2−a,m2
−aが入力され、比較回路183には、デスティネーシ
ョン・アドレスe3−a,m3−aが入力され、比較回
路185にはデスティネーション・アドレスe4−a,
m4−aが入力される。また、比較回路179〜185
には、信号stage が入力される。信号stage が“1”の
場合は、すなわち、信号stage が実行ステージEXを表
わしている場合は、比較回路179はデスティネーショ
ン・アドレスe1−aを、比較回路181はデスティネ
ーション・アドレスe2−aを、比較回路183はデス
ティネーション・アドレスe3−aを、比較回路185
はデスティネーション・アドレスe4−aを選択する。
信号stage が“2”の場合は、すなわち信号stage がメ
モリ・アクセスステージMEMを表わしている場合は、
比較回路179はデスティネーション・アドレスm1−
aを、比較回路181はデスティネーション・アドレス
m2−aを、比較回路183はデスティネーション・ア
ドレスm3−aを、比較回路185はデスティネーショ
ン・アドレスm4−aを選択する。信号stage が“1”
および“2”以外の場合は、比較器179〜185は、
“0”を出力する。
たデスティネーション・アドレスとソース・アドレスs
rc1−1を比較し、一致した場合には“1”を出力
し、一致しない場合には“0”を出力する。比較器18
9は、選択回路181で選択されたデスティネーション
・アドレスとソース・アドレスsrc1−1を比較し、
一致した場合は“1”を出力し、一致しない場合は
“0”を出力する。比較器191は、選択回路183で
選択されたデスティネーション・アドレスとソース・ア
ドレスsrc1−1とを比較し、一致した場合には
“1”を出力し、一致しない場合は“0”を出力する。
比較器193は、選択回路185が選択したデスティネ
ーション・アドレスとソース・アドレスsrc1−1と
を比較し、一致した場合には“1”を出力し、一致しな
い場合には“0”を出力する。
路L1にこれから必要とされるデータのソース・アドレ
スsrc1−1が、4つの機能ユニット7−1〜7−4
の8つの結果バッファe1−e4,m1−m4のいずれ
に存在する命令の処理結果(データ)のデスティネーシ
ョン・アドレスと一致するか否かを判断することによっ
て、ラッチ回路L1がこれから必要とするデータのソー
ス・アドレスsrc1−1と一致するデスティネーショ
ン・アドレスを持つ命令の処理結果がどの機能ユニット
に存在するかを識別している。
“1”のときには、ソース・アドレスsrc1−1と一
致するデスティネーション・アドレスを持つ命令の処理
結果が機能ユニット7−1にあることを示し、比較器1
89の出力信号が“1”のときは、ソース・アドレスs
rc1−1と一致するデスティネーション・アドレスを
持つ命令の処理結果が機能ユニット7−2にあることを
示し、比較器191の出力信号が“1”のときは、ソー
ス・アドレスsrc1−1と一致するデスティネーショ
ン・アドレスを持つ命令の処理結果が機能ユニット7−
3にあることを示し、比較器193の出力信号が“1”
のときは、ソース・アドレスsrc1−1と一致するデ
スティネーション・アドレスを持つ命令の処理結果が機
能ユニット7−4にあることを示す。
号stage は“2”または“3”である。そして、信号st
age が“2”のときは、実行ステージEXを表わす。こ
のため、信号stage [0]は、実行ステージEXの結果
バッファe1〜e4に対応するトライ・ステート・バッ
ファT1,T17,T33,T49を制御するための制
御信号m1−1−1,m2−1−1,m3−1−1,m
4−1−1を発生するAND回路197,201,20
5,209に入力される。信号stage [1]が“1”の
ときは信号stage は“1”または“3”である。そし
て、信号stage が“1”のときは、メモリ・アクセスス
テージMEMを表わす。このため、信号stage [1]
は、メモリ・アクセスステージMEMの結果バッファm
1〜m4に対応するトライ・ステート・バッファT9,
T25,T41,T57を制御する制御信号e1−1−
1,e2−1−1,e3−1−1,e4−1−1を発生
するAND回路195,199,203,207に入力
される。
すべてに、信号stage [0]および信号stage [1]を
入力する必要はない。ここで、信号stage [0]が
“1”のときや、信号stage [1]が“1”のときは、
信号stage が“3”のときもあるが、このことは問題に
ならない。なぜならば、すべてのAND回路195〜2
09に信号valid が入力されているからである。すなわ
ち、信号stage が“3”のときは、命令の処理結果が書
戻しステージWBに存在することを示しており、この場
合には、レジスタ・ファイル5から直接データを読出せ
ばよいので、信号valid が“0”にされるからである。
1の結果バッファe1,m1に保持されている命令の処
理結果よりも、機能ユニット7−2の結果バッファe
2,m2に保持されている命令の処理結果を、機能ユニ
ット7−2の結果バッファe2,m2に保持されている
命令の処理結果よりも、機能ユニット7−3の結果バッ
ファe3,m3に保持されている命令の処理結果を、機
能ユニット7−3の結果バッファe3,m3に保持され
ている命令の処理結果よりも、機能ユニット7−4の結
果バッファe4,m4に保持されている命令の処理結果
を、ラッチ回路L1にバイパスするようにしている。こ
のため、AND回路195,197には、比較器18
7,189,191,193の出力信号が入力され、A
ND回路199,201には、比較器189,191,
193の出力信号が入力され、AND回路203,20
5には、比較器191,193から出力信号が入力さ
れ、AND回路207,209には比較器193からの
出力信号が入力される。
も参照しながら、具体例を挙げて説明する。ラッチ回路
L1にこれから必要とされるデータのソース・アドレス
src1−1が、アドレス保持回路e1に保持されてい
るデスティネーション・アドレスe1−aとのみ一致す
る場合を考える。このとき、信号stage は、“1”であ
る。このため、選択回路179からは、デスティネーシ
ョン・アドレスe1−aが出力され、選択回路181か
らはデスティネーション・アドレスe2−aが出力さ
れ、選択回路183からはデスティネーション・アドレ
スe3−aが出力され、選択回路185からはデスティ
ネーション・アドレスm4−aが出力されることにな
る。そして、比較器187の出力のみが“1”になり、
比較器189〜193の出力は“0”となる。そして、
信号stage [0]は、“0”であり、信号stage [1]
は“1”である。また、信号valid を“1”とする。こ
のような場合には、AND回路195の出力信号のみが
“1”となる。すなわち制御信号e1−1−1のみが
“1”となる。これによって、トライ・ステート・バッ
ファT1がオンになり、結果バッファe1に保持されて
いる命令の処理結果がラッチ回路L1に転送されること
になる。
ータのソース・アドレスrsc1−1が、アドレス保持
回路ee1〜ee4,mm1〜mm4に保持されている
デスティネーション・アドレスe1−a〜e4−a,m
1−a〜m4−aのいずれとも一致しない場合は、すな
わち、信号valid が“0”の場合には、AND回路19
5〜209の出力信号はすべて“0”となる。このた
め、NOR回路53から出力される制御信号r−1−1
のみが“1”となる。これにより、トライ・ステート・
バッファT65がオンし、レジスタ・ファイル5から直
接ラッチ回路L1にデータが読出される。なお、制御回
路S1−2〜S4−2についても、図25の制御回路S
1−1と同じ回路構成である。
Wプロセッサでは、命令管理回路173のエントリによ
って、そのエントリに対応するデスティネーション・ア
ドレスを持つ命令が、どのステージに存在するかを管理
している。このため、1つのソース・アドレスに対し
て、4つの比較器187〜193を設ければ足りる。こ
れに対して、従来のVLIWプロセッサでは、1つのソ
ース・アドレスに対して8つの比較器が必要になる。さ
らに、実施の形態6によるVLIWプロセッサでは、1
つのソース・アドレスに対して、4つの比較器187〜
193を設ければ足りることから、4つの比較器187
〜193から出力される4つの出力信号に対して優先順
位付選択をすれば足りる。これに対して従来のVLIW
プロセッサでは、1つのソース・アドレスにつき8個の
データの優先順位付選択をする必要がある。以上のよう
に、実施の形態6によるVLIWプロセッサでは、回路
が簡単になるとともに優先順位付選択をする対象も少な
いため、高速にバイパス制御を行なうことができる。
と、実施の形態3によるVLIWプロセッサの特徴部分
とを組合せることもできる。すなわち、stage フィール
ド27において、4つのステージを4ビットのビット・
ベクタで表わす。こうすることで、stage フィールド2
7を管理するために、stage フィールド管理回路54
(図9)ではなく、ビット・シフタ89(図12)を設
けることができる。このため、実施の形態6によるVL
IWプロセッサに比し、さらに回路を簡単化でき、さら
に高速にバイパス制御を行なうことができる。
ロセッサでは、レジスタ・ファイルの複数のアドレスに
対応する複数のエントリによって、そのエントリに対応
するデスティネーション・アドレスを持つ命令が、いず
れの機能ユニットのいずれの処理ステージに存在するか
を管理している。また、あるデスティネーション・アド
レスを持つ命令を管理している場合において、あるデス
ティネーション・アドレスと同じデスティネーション・
アドレスを持つ新たな命令が、複数の機能ユニットのい
ずれかに投入されるときは、その新たに投入される命令
をあるデスティネーション・アドレスに対応するエント
リによって管理する。このため、アドレス比較のための
比較器が不要になるとともに、優先順位付選択も不要に
なる。その結果、この発明の第1の発明に係る並列処理
プロセッサでは、回路が簡単になり、高速にバイパス制
御を行なうことができる。
セッサでは、レジスタ・ファイルの複数のアドレスに対
応する複数のエントリによって、そのエントリに対応す
るデスティネーション・アドレスを持つ命令が、いずれ
の機能ユニットに存在するかを管理している。あるデス
ティネーション・アドレスを持つ命令を管理している場
合において、あるデスティネーション・アドレスと同じ
デスティネーション・アドレスを持つ新たな命令が、複
数の機能ユニットのいずれかに投入されるときは、その
新たに投入される命令をあるデスティネーション・アド
レスに対応するエントリによって管理する。このため、
アドレス比較のための比較器が従来の並列処理プロセッ
サに比し、少なくて済む。これに伴い、従来の並列処理
プロセッサに比し、優先順位付選択のための比較も少な
くて済む。その結果、この発明の第2の発明に係る並列
処理プロセッサでは、高速にバイパス制御を行なうこと
ができる。
セッサでは、レジスタ・ファイルの複数のアドレスに対
応する複数のエントリによって、そのエントリに対応す
るデスティネーション・アドレスを持つ命令が、いずれ
の処理ステージに存在するかを管理する。あるデスティ
ネーション・アドレスを持つ命令を管理している場合に
おいて、あるデスティネーション・アドレスと同じデス
ティネーション・アドレスを持つ新たな命令が、複数の
機能ユニットのいずれかに投入されるときは、その新た
に投入される命令をあるデスティネーション・アドレス
に対応するエントリによって管理する。このため、従来
の並列処理プロセッサに比し、アドレス比較のための比
較器が少なくて済む。これに伴い、優先順位付選択のた
めの比較も、従来の並列処理プロセッサに比し少なくな
る。その結果、この発明の第3の発明に係る並列処理プ
ロセッサでは、高速にバイパス制御を行なうことができ
る。
ッサを示す概略ブロック図である。
テージIDでデコードされた基準命令の形式を示す図で
ある。
ブロック図である。
ライ・ステート・バッファを制御する制御信号との対応
関係を示す図である。
図である。
ある。
図である。
である。
e フィールドの一部を管理するstage フィールド管理回
路を示す概略ブロック図である。
セッサの制御回路S1−1(図7)の詳細を示す回路図
である。
セッサの制御回路S1−1(図7)の詳細を示す回路図
である。
セッサにおいて、stage フィールド(図5)の一部およ
びstage フィールドの一部を管理するビット・シフタを
示す概略ブロック図である。
セッサの特徴部分と実施の形態3によるVLIWプロセ
ッサの特徴部分とを組合せた場合において、制御回路S
1−1(図7)の詳細を示す回路図である。
セッサのバイパス制御回路(図3)を示す概略ブロック
図である。
ック図である。
路図である。
セッサの特徴部分と、本発明の実施の形態4によるVL
IWプロセッサとを組合せた場合において、制御回路S
1−1(図15)の詳細を示す回路図である。
セッサの一部を示す概略ブロック図である。
ック図である。
ック図である。
路図である。
セッサの特徴部分と、本発明の実施の形態5によるVL
IWプロセッサとを組合せた場合において、制御回路S
1−1(図20)の詳細を示す回路図である。
セッサのバイパス制御回路(図18)を示す概略ブロッ
ク図である。
ック図である。
路図である。
タ・ハザードを説明するための図である。
パス機構を説明するための図である。
セッサを示す概略ブロック図である。
ァイル、7−1〜7−4 機能ユニット、9 データ・
キャッシュ、11 バス、13,123 バイパス制御
回路、15,88,125,173 命令管理回路、1
7 アドレスデコーダ、19,90,127,175
制御信号発生回路、21−1〜21−4フィールド制御
回路、23 valid フィールド、25 pipeフィール
ド、27stage フィールド、29〜51,63〜85,
91〜121,137〜171,195〜209 AN
D回路、53 NOR回路、54 stage フィールド管
理回路、55,87 stage フィールドの一部、57
加算回路、59 データ比較器、61 参照回路、89
ビット・シフタ、128,177 判断回路、12
9,131,179〜185 選択回路、133,13
5,187〜193比較器、211,213 マルチプ
レクサ、215 ALU、217,219結果バッフ
ァ、1−1〜4−2 バス、a1〜a4 ALU、L1
〜L8 ラッチ回路、e1〜e4,m1〜m4 結果バ
ッファ、op1〜op4 オペコード、src1−1〜
src4−2 ソース・アドレス、e1−1−1〜r−
4−2 制御信号、des1〜des4 デスティネー
ション・アドレス、IF 命令フェッチステージ、ID
命令デコードステージ、EX 実行ステージ、MEM
メモリ・アクセスステージ、WB 書戻しステージ、
pipe, valid, stage,address, pipe set, valid set, s
tage reset, valid reset, pipe[0],pipe[1],p
ipe[2],pipe[3],stage [0],stage
[1],stage [2],stage [3] 信号、S1−1
〜S4−2 制御回路、ee1〜ee4,mm1〜1m
m4 アドレス保持回路。
Claims (11)
- 【請求項1】 命令の処理結果を、その命令のデスティ
ネーション・アドレスに従って格納するレジスタ・ファ
イルを有するとともに、1つの基準命令に含まれる複数
の前記命令を並列的に処理する並列処理プロセッサであ
って、 各々が、対応する前記命令を処理する複数の機能ユニッ
トを備え、 前記各機能ユニットは、連続的に投入される前記対応す
る命令に対して、パイプライン処理を行なう複数の処理
ステージを有し、 前記並列処理プロセッサは、 前記複数の機能ユニットにおける複数の前記処理ステー
ジに存在する複数の前記処理結果を、選択的に、前記複
数の機能ユニットにおける複数の最初の前記処理ステー
ジに供給するためのバイパス手段と、 前記レジスタ・ファイルの複数のアドレスに対応する複
数のエントリによって、前記エントリに対応する前記デ
スティネーション・アドレスを持つ前記命令が、いずれ
の前記機能ユニットのいずれの前記処理ステージに存在
するかを管理し、前記複数の機能ユニットの前記複数の
処理ステージのいずれかに存在する前記命令が持つ前記
デスティネーション・アドレスと、前記機能ユニットの
前記最初の処理ステージで処理しようとする前記命令が
持つソース・アドレスとが一致する場合は、前記一致す
るソース・アドレスを持つ前記命令を処理しようとする
前記最初の処理ステージに、前記一致するデスティネー
ション・アドレスを持つ前記命令の前記処理結果を、前
記一致するデスティネーション・アドレスを持つ前記命
令が存在する前記処理ステージから供給するように、前
記バイパス手段を制御するバイパス制御手段とをさらに
備え、 前記バイパス制御手段は、あるデスティネーション・ア
ドレスを持つ前記命令を管理している場合において、前
記あるデスティネーション・アドレスと同じ前記デステ
ィネーション・アドレスを持つ新たな前記命令が、前記
複数の機能ユニットのいずれかに投入されるときは、そ
の新たに投入される前記命令を前記あるデスティネーシ
ョン・アドレスに対応する前記エントリによって管理す
る、並列処理プロセッサ。 - 【請求項2】 前記バイパス制御手段は、 管理する前記命令が、いずれの前記機能ユニットに存在
するかを示すデータを持つ機能ユニットフィールドと、
管理する前記命令が、いずれの前記処理ステージに存在
するかを示すデータを持つ処理ステージフィールドと、
前記機能ユニットフィールドおよび前記処理ステージフ
ィールドのデータが有効か無効かを示すデータを持つ有
効/無効フィールドとからなる命令管理手段を含み、 前記命令管理手段は、前記複数のエントリに分かれ、 前記バイパス制御手段は、新たな前記命令が投入される
場合には、その命令が持つデスティネーション・アドレ
スに対応する前記エントリの前記有効/無効フィールド
をセットし、その命令が投入される前記機能ユニットを
表わすように、その命令が持つデスティネーション・ア
ドレスに対応する前記エントリの前記機能ユニットフィ
ールドをセットし、 前記バイパス制御手段は、新たに投入される前記命令
が、前記最初の処理ステージの前のステージに存在する
ときに、その命令が持つデスティネーション・アドレス
に対応する前記エントリの前記処理ステージフィールド
をリセットし、 前記バイパス制御手段は、前記エントリの前記処理ステ
ージフィールドを、そのエントリに対応する前記デステ
ィネーション・アドレスを持つ前記命令が、前記各処理
ステージへ移行するごとに新しくセットする、請求項1
に記載の並列処理プロセッサ。 - 【請求項3】 前記バイパス制御手段は、 管理する前記命令が、いずれの機能ユニットに存在する
かを示すデータを持つ機能ユニットフィールドと、管理
する前記命令がいずれの前記処理ステージに存在するか
を示すデータを持つ処理ステージフィールドとからなる
命令管理手段を含み、 前記命令管理手段は、前記複数のエントリに分かれ、 前記機能ユニットフィールドにおいては、前記複数の機
能ユニットと同数のビット数を有するビット・ベクタに
よって、前記命令がいずれの機能ユニットに存在するか
を示し、 前記バイパス制御手段は、前記機能ユニットに新たな前
記命令が投入される場合には、その命令が持つ前記デス
ティネーション・アドレスに対応する前記エントリの前
記機能ユニットフィールドにおいて、その命令が投入さ
れる前記機能ユニットに対応する、前記ビット・ベクタ
のビットをセットし、新たに投入される前記命令が前記
最初の処理ステージの前のステージに存在するときに、
その命令が持つデスティネーション・アドレスに対応す
る前記エントリの前記処理ステージフィールドをリセッ
トし、 前記バイパス制御手段は、前記エントリの前記処理ステ
ージフィールドを、そのエントリに対応する前記デステ
ィネーション・アドレスを持つ前記命令が、前記各処理
ステージへ移行するごとに新しくセットし、前記エント
リの前記機能ユニットフィールドにおいて、前記ビット
・ベクタのいずれか1つのビットがセットされていると
きは、そのエントリの前記機能ユニットフィールドおよ
び前記処理ステージフィールドのデータが有効とし、前
記ビット・ベクタのいずれのビットもセットされていな
いときは、そのエントリの前記機能ユニットフィールド
および前記処理ステージフィールドは無効とする、請求
項1に記載の並列処理プロセッサ。 - 【請求項4】 命令の処理結果を、その命令のデスティ
ネーション・アドレスに従って格納するレジスタ・ファ
イルを有するとともに、1つの基準命令に含まれる複数
の前記命令を並列的に処理する並列処理プロセッサであ
って、 各々が、対応する前記命令を処理する複数の機能ユニッ
トを備え、 前記各機能ユニットは、連続的に投入される前記対応す
る命令に対して、パイプライン処理を行なう複数の処理
ステージを有し、 前記並列処理プロセッサは、 前記複数の機能ユニットにおける複数の前記処理ステー
ジに存在する複数の前記処理結果を、選択的に、前記複
数の機能ユニットにおける複数の最初の前記処理ステー
ジに供給するためのバイパス手段と、 前記レジスタ・ファイルの複数のアドレスに対応する複
数のエントリによって、前記エントリに対応する前記デ
スティネーション・アドレスを持つ前記命令が、いずれ
の前記機能ユニットに存在するかを管理し、前記複数の
機能ユニットの前記複数の処理ステージのいずれかに存
在する前記命令が持つ前記デスティネーション・アドレ
スと、前記機能ユニットの前記最初の処理ステージで処
理しようとする前記命令が持つソース・アドレスとが一
致する場合は、前記一致するソース・アドレスを持つ前
記命令を処理しようとする前記最初の処理ステージに、
前記一致するデスティネーション・アドレスを持つ前記
命令の前記処理結果を、前記一致するデスティネーショ
ン・アドレスを持つ前記命令が存在する前記処理ステー
ジから供給するように、前記バイパス手段を制御するバ
イパス制御手段とをさらに備え、 前記バイパス制御手段は、あるデスティネーション・ア
ドレスを持つ前記命令を管理している場合において、前
記あるデスティネーション・アドレスと同じ前記デステ
ィネーション・アドレスを持つ新たな前記命令が、前記
複数の機能ユニットのいずれかに投入されるときは、そ
の新たに投入される前記命令を前記あるデスティネーシ
ョン・アドレスに対応する前記エントリによって管理す
る、並列処理プロセッサ。 - 【請求項5】 前記バイパス制御手段は、 管理する前記命令が、いずれの前記機能ユニットに存在
するかを示すデータを持つ機能ユニットフィールドと、
前記機能ユニットフィールドのデータが有効か無効かを
示すデータを持つ有効/無効フィールドとからなる命令
管理手段を含み、 前記命令管理手段は、前記複数のエントリに分かれ、 前記バイパス制御手段は、前記機能ユニットに新たな前
記命令が投入される場合には、その命令が持つデスティ
ネーション・アドレスに対応する前記エントリの前記有
効/無効フィールドをセットし、その命令が投入される
前記機能ユニットを表わすように、その命令が持つデス
ティネーション・アドレスに対応する前記エントリの前
記機能ユニットフィールドをセットし、 前記バイパス制御手段は、 1つの前記基準命令に含まれる前記複数の命令の複数の
前記ソース・アドレスに対応して設けられ、各々が、新
たに投入される前記命令の対応するソース・アドレス
が、前記複数の機能ユニットの前記複数の処理ステージ
のいずれに存在する前記命令のデスティネーション・ア
ドレスと一致するか否かを判断するための複数の判断手
段をさらに含み、 前記判断手段は、 前記各機能ユニットの前記複数の処理ステージに対応し
て設けられる複数の選択手段を含み、 前記選択手段には、前記複数の機能ユニットの、前記選
択手段に対応する複数の前記処理ステージに存在する複
数の前記命令の複数の前記デスティネーション・アドレ
スと、新たに投入される前記命令の前記ソース・アドレ
スに対応する前記エントリの前記機能ユニットフィール
ドのデータとが入力され、 前記選択手段は、入力された前記機能ユニットフィール
ドのデータが示す前記機能ユニットに対応する前記処理
ステージに存在する命令のデスティネーション・アドレ
スを出力し、 前記判断手段は、 前記複数の選択手段に対応して設けられる複数の比較手
段をさらに含み、 前記比較手段は、対応する前記選択手段から出力された
前記デスティネーション・アドレスと、新たに投入され
る前記命令が持つ前記ソース・アドレスとを比較し、新
たに投入される前記命令が持つ前記ソース・アドレス
が、対応する前記選択手段から出力された前記デスティ
ネーション・アドレスと一致するか否かを判断する、請
求項4に記載の並列処理プロセッサ。 - 【請求項6】 命令の処理結果を、その命令のデスティ
ネーション・アドレスに従って格納するレジスタ・ファ
イルを有するとともに、1つの基準命令に含まれる複数
の前記命令を並列的に処理する並列処理プロセッサであ
って、 各々が、対応する前記命令を処理する複数の機能ユニッ
トを備え、 前記各機能ユニットは、連続的に投入される前記対応す
る命令に対して、パイプライン処理を行なう複数の処理
ステージを有し、 前記並列処理プロセッサは、 前記複数の機能ユニットにおける複数の前記処理ステー
ジに存在する複数の前記処理結果を、選択的に、前記複
数の機能ユニットにおける複数の最初の前記処理ステー
ジに供給するためのバイパス手段と、 前記レジスタ・ファイルの複数のアドレスに対応する複
数のエントリによって、前記エントリに対応する前記デ
スティネーション・アドレスを持つ前記命令が、いずれ
の前記処理ステージに存在するかを管理し、前記複数の
機能ユニットの前記複数の処理ステージのいずれかに存
在する前記命令が持つ前記デスティネーション・アドレ
スと、前記機能ユニットの前記最初の処理ステージで処
理しようとする前記命令が持つソース・アドレスとが一
致する場合は、前記一致するソース・アドレスを持つ前
記命令を処理しようとする前記最初の処理ステージに、
前記一致するデスティネーション・アドレスを持つ前記
命令の前記処理結果を、前記一致するデスティネーショ
ン・アドレスを持つ前記命令が存在する前記処理ステー
ジから供給するように、前記バイパス手段を制御するバ
イパス制御手段とをさらに備え、 前記バイパス制御手段は、あるデスティネーション・ア
ドレスを持つ前記命令を管理している場合において、前
記あるデスティネーション・アドレスと同じ前記デステ
ィネーション・アドレスを持つ新たな前記命令が、前記
複数の機能ユニットのいずれかに投入されるときは、そ
の新たに投入される前記命令を前記あるデスティネーシ
ョン・アドレスに対応する前記エントリによって管理す
る、並列処理プロセッサ。 - 【請求項7】 前記バイパス制御手段は、 管理する前記命令が、いずれの前記処理ステージに存在
するかを示すデータを持つ処理ステージフィールドと、
前記処理ステージフィールドのデータが有効か無効かを
示すデータを持つ有効/無効フィールドとからなる命令
管理手段を含み、 前記命令管理手段は、前記複数のエントリに分かれ、 前記バイパス制御手段は、 前記機能ユニットに新たな前記命令が投入される場合に
は、その命令が持つデスティネーション・アドレスに対
応する前記エントリの前記有効/無効フィールドをセッ
トし、 前記バイパス制御手段は、新たに投入される前記命令
が、前記最初の処理ステージの前のステージに存在する
ときに、その命令が持つデスティネーション・アドレス
に対応する前記エントリの前記処理ステージフィールド
をリセットし、 前記バイパス制御手段は、前記エントリの前記処理ステ
ージフィールドを、そのエントリに対応する前記デステ
ィネーション・アドレスを持つ前記命令が前記各処理ス
テージへ移行するごとに新しくセットし、 前記バイパス制御手段は、 1つの前記基準命令に含まれる複数の前記命令の複数の
前記ソース・アドレスに対応して設けれ、各々が、新た
に投入される前記命令の対応するソース・アドレスが前
記複数の機能ユニットの前記複数の処理ステージのいず
れに存在する前記命令のデスティネーション・アドレス
と一致するか否かを判断するための複数の判断手段をさ
らに含み、 前記判断手段は、 前記複数の機能ユニットに対応して設けられる複数の選
択手段を含み、 前記選択手段には、対応する前記機能ユニットの前記複
数の処理ステージに存在する複数の前記命令のデスティ
ネーション・アドレスと、新たに投入される前記命令の
ソース・アドレスに対応するエントリの前記処理ステー
ジフィールドのデータとが入力され、 前記選択手段は、入力された前記処理ステージフィール
ドのデータが示す前記処理ステージに対応する前記処理
ステージに存在する前記命令の前記デスティネーション
・アドレスを出力し、 前記判断手段は、 前記複数の選択手段に対応して設けられる複数の比較手
段をさらに含み、 前記比較手段は、対応する前記選択手段から出力された
前記デスティネーション・アドレスと、新たに投入され
る前記命令が持つ前記ソース・アドレスとを比較し、新
たに投入される前記命令が持つソース・アドレスが、対
応する前記選択手段から出力された前記デスティネーシ
ョン・アドレスと一致するか否かを判断する、請求項6
に記載の並列処理プロセッサ。 - 【請求項8】 前記機能ユニットフィールドにおいて
は、前記複数の機能ユニットと同数のビット数を有する
ビット・ベクタによって、前記命令がいずれの前記機能
ユニットに存在するかを示す、請求項2または5に記載
の並列処理プロセッサ。 - 【請求項9】 前記処理ステージフィールドにおいて
は、前記各機能ユニットにおける前記複数の処理ステー
ジと同数のビット数を有するビット・ベクタによって、
前記命令がいずれの前記処理ステージに存在するかを示
し、 前記命令管理手段は、前記命令が存在する前記処理ステ
ージに対応する、前記ビット・ベクタのビットをセット
する、請求項2、3または7のいずれか1項に記載の並
列処理プロセッサ。 - 【請求項10】 前記各機能ユニットの最後の前記処理
ステージは、そこに存在する前記処理結果を前記デステ
ィネーション・アドレスに従って、前記レジスタ・ファ
イルに書込むものであり、前記バイパス手段は適用され
ず、 前記命令管理手段は、 前記複数のエントリに対応して設けられ、各々が、対応
する前記エントリの前記処理ステージフィールドを管理
するための複数の処理ステージフィールド管理手段を含
み、 前記処理ステージフィールド管理手段は、 対応する前記エントリの前記処理ステージフィールドの
前記データを、前記命令が前記各処理ステージへ移行す
るごとに、その移行した前記処理ステージに対応したも
のにセットする更新手段と、 前記最後の処理ステージに対応する参照データを持つ参
照手段と、 前記処理ステージフィールドのデータと、前記参照手段
の前記参照データとを比較し、両者が一致したときに、
対応する前記エントリの前記有効/無効フィールドをリ
セットするデータ比較手段とを含む、請求項2または7
に記載の並列処理プロセッサ。 - 【請求項11】 前記各機能ユニットの最後の前記処理
ステージは、そこに存在する前記処理結果を、前記デス
ティネーション・アドレスに従って書込むものであり、
前記バイパス手段は、適用されず、 前記ビット・ベクタは、前記各機能ユニットにおける前
記複数の処理ステージと同数より1つ多いビット数を有
し、 前記ビット・ベクタの1つのビットは、前記命令が前記
最初の処理ステージに移行する前の前記ステージに存在
することを示すためのものであり、 前記命令管理手段は、 前記複数のエントリに対応して設けられ、各々が、対応
する前記エントリの前記処理ステージフィールドを管理
するための複数の処理ステージフィールド管理手段を含
み、 前記処理ステージフィールド管理手段は、ビット・シフ
タであり、前記命令が前記ステージまたは前記各処理ス
テージへ移行するごとに、移行した前記ステージまたは
前記各処理ステージに対応する、前記ビット・ベクタの
ビットをセットする、請求項9に記載の並列処理プロセ
ッサ。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11796296A JP3745450B2 (ja) | 1996-05-13 | 1996-05-13 | 並列処理プロセッサ |
| US08/745,134 US5805852A (en) | 1996-05-13 | 1996-11-07 | Parallel processor performing bypass control by grasping portions in which instructions exist |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11796296A JP3745450B2 (ja) | 1996-05-13 | 1996-05-13 | 並列処理プロセッサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09305402A true JPH09305402A (ja) | 1997-11-28 |
| JP3745450B2 JP3745450B2 (ja) | 2006-02-15 |
Family
ID=14724576
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11796296A Expired - Fee Related JP3745450B2 (ja) | 1996-05-13 | 1996-05-13 | 並列処理プロセッサ |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5805852A (ja) |
| JP (1) | JP3745450B2 (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000330790A (ja) * | 1999-05-03 | 2000-11-30 | Stmicroelectronics Sa | コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム |
| JP2000353091A (ja) * | 1999-05-03 | 2000-12-19 | Stmicroelectronics Sa | コンピュータシステムにおける命令実行方法およびコンピュータシステム |
| EP0942358A3 (en) * | 1998-03-12 | 2003-04-02 | Fujitsu Limited | Microprocessor and method for executing high-level instructions |
| JP2009169767A (ja) * | 2008-01-17 | 2009-07-30 | Toshiba Corp | パイプライン型プロセッサ |
| JP2013239183A (ja) * | 2008-02-26 | 2013-11-28 | Qualcomm Inc | 実行装置内のデータ転送のシステムおよび方法 |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3578883B2 (ja) * | 1997-01-31 | 2004-10-20 | 三菱電機株式会社 | データ処理装置 |
| US5996065A (en) * | 1997-03-31 | 1999-11-30 | Intel Corporation | Apparatus for bypassing intermediate results from a pipelined floating point unit to multiple successive instructions |
| KR100243100B1 (ko) * | 1997-08-12 | 2000-02-01 | 정선종 | 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법 |
| JP3449186B2 (ja) * | 1997-08-19 | 2003-09-22 | 富士通株式会社 | パイプラインバイパス機能を有するデータ処理装置 |
| US5872986A (en) * | 1997-09-30 | 1999-02-16 | Intel Corporation | Pre-arbitrated bypassing in a speculative execution microprocessor |
| JP3445535B2 (ja) | 1999-09-24 | 2003-09-08 | 株式会社東芝 | バイパス制御回路 |
| US6633971B2 (en) * | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
| US6601162B1 (en) | 2000-01-19 | 2003-07-29 | Kabushiki Kaisha Toshiba | Processor which executes pipeline processing having a plurality of stages and which has an operand bypass predicting function |
| AUPQ542900A0 (en) * | 2000-02-04 | 2000-02-24 | Bisinella, Richard | Microprocessor |
| EP1124181B8 (en) | 2000-02-09 | 2012-03-21 | Texas Instruments Incorporated | Data processing apparatus |
| US7007153B1 (en) * | 2000-03-30 | 2006-02-28 | Agere Systems Inc. | Method and apparatus for allocating functional units in a multithreaded VLIW processor |
| US7096343B1 (en) * | 2000-03-30 | 2006-08-22 | Agere Systems Inc. | Method and apparatus for splitting packets in multithreaded VLIW processor |
| US7093107B2 (en) * | 2000-12-29 | 2006-08-15 | Stmicroelectronics, Inc. | Bypass circuitry for use in a pipelined processor |
| JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
| US6889318B1 (en) * | 2001-08-07 | 2005-05-03 | Lsi Logic Corporation | Instruction fusion for digital signal processor |
| US6728156B2 (en) * | 2002-03-11 | 2004-04-27 | International Business Machines Corporation | Memory array system |
| CN1320451C (zh) * | 2002-04-18 | 2007-06-06 | 皇家飞利浦电子股份有限公司 | 具有数据溢出装置的vliw处理器 |
| US20040128572A1 (en) * | 2002-12-31 | 2004-07-01 | Nadav Bonen | Apparatus and method for driving and routing source operands to execution units in layout stacks |
| EP1606706A2 (en) * | 2003-03-19 | 2005-12-21 | Koninklijke Philips Electronics N.V. | Use of bypassing in a pipelined instruction processor |
| TWI246023B (en) * | 2003-11-26 | 2005-12-21 | Admtek Inc | Very long instruction word architecture |
| TWI244299B (en) * | 2004-01-07 | 2005-11-21 | Admtek Inc | Method for implementing advanced encryption standards by a very long instruction word architecture processor |
| US7774582B2 (en) * | 2005-05-26 | 2010-08-10 | Arm Limited | Result bypassing to override a data hazard within a superscalar processor |
| US7478226B1 (en) * | 2006-09-29 | 2009-01-13 | Transmeta Corporation | Processing bypass directory tracking system and method |
| US12430137B1 (en) | 2024-03-17 | 2025-09-30 | Tenstorrent USA, Inc. | Processor with opportunistic bypass of dispatch buffer and reservation station |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5313551A (en) * | 1988-12-28 | 1994-05-17 | North American Philips Corporation | Multiport memory bypass under software control |
| JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
| US5511172A (en) * | 1991-11-15 | 1996-04-23 | Matsushita Electric Co. Ind, Ltd. | Speculative execution processor |
| WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
-
1996
- 1996-05-13 JP JP11796296A patent/JP3745450B2/ja not_active Expired - Fee Related
- 1996-11-07 US US08/745,134 patent/US5805852A/en not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0942358A3 (en) * | 1998-03-12 | 2003-04-02 | Fujitsu Limited | Microprocessor and method for executing high-level instructions |
| JP2000330790A (ja) * | 1999-05-03 | 2000-11-30 | Stmicroelectronics Sa | コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム |
| JP2000353091A (ja) * | 1999-05-03 | 2000-12-19 | Stmicroelectronics Sa | コンピュータシステムにおける命令実行方法およびコンピュータシステム |
| JP2009169767A (ja) * | 2008-01-17 | 2009-07-30 | Toshiba Corp | パイプライン型プロセッサ |
| US8209519B2 (en) | 2008-01-17 | 2012-06-26 | Kabushiki Kaisha Toshiba | Suspending write back of valid data in pipeline register to register file and cancelling when overwritten by subsequent instruction |
| JP2013239183A (ja) * | 2008-02-26 | 2013-11-28 | Qualcomm Inc | 実行装置内のデータ転送のシステムおよび方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3745450B2 (ja) | 2006-02-15 |
| US5805852A (en) | 1998-09-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3745450B2 (ja) | 並列処理プロセッサ | |
| JP6837011B2 (ja) | アルゴリズム整合、機能無効化、または性能制限による後方互換性 | |
| US5758176A (en) | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system | |
| JP6011194B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| US7793079B2 (en) | Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction | |
| US20090300337A1 (en) | Instruction set design, control and communication in programmable microprocessor cases and the like | |
| EP3475808B1 (en) | Method and apparatus for performing simd gather and copy operations | |
| JPH10228376A (ja) | 複数レジスタ命令を処理する方法及びプロセッサ | |
| JP3611304B2 (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 | |
| US6948049B2 (en) | Data processing system and control method | |
| JP3469469B2 (ja) | 情報処理装置 | |
| JP2007133456A (ja) | 半導体装置 | |
| US7313674B2 (en) | Instruction control device and method therefor | |
| GB2380283A (en) | A processing arrangement comprising a special purpose and a general purpose processing unit and means for supplying an instruction to cooperate to these units | |
| US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
| US6789185B1 (en) | Instruction control apparatus and method using micro program | |
| JPH02242429A (ja) | パイプライン浮動小数点ロード・インストラクシヨン回路 | |
| JP3164915B2 (ja) | データ処理装置及びそのデータ処理方法 | |
| CN116134418B (zh) | 在处理器中的指令流水线中插入代理读取指令 | |
| US11775310B2 (en) | Data processing system having distrubuted registers | |
| JP2001265592A (ja) | 情報処理装置 | |
| US20070050610A1 (en) | Centralized resolution of conditional instructions | |
| JP3445535B2 (ja) | バイパス制御回路 | |
| JP2000181714A (ja) | 命令制御装置 | |
| JP2021166010A (ja) | 演算処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051101 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051108 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051117 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081202 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |