JPH04275628A - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JPH04275628A
JPH04275628A JP3036264A JP3626491A JPH04275628A JP H04275628 A JPH04275628 A JP H04275628A JP 3036264 A JP3036264 A JP 3036264A JP 3626491 A JP3626491 A JP 3626491A JP H04275628 A JPH04275628 A JP H04275628A
Authority
JP
Japan
Prior art keywords
instruction
data
register
memory
load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP3036264A
Other languages
English (en)
Inventor
Chikako Ikenaga
池永 知嘉子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3036264A priority Critical patent/JPH04275628A/ja
Priority to US07/805,776 priority patent/US5404552A/en
Priority to DE4206062A priority patent/DE4206062C2/de
Publication of JPH04275628A publication Critical patent/JPH04275628A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は演算処理装置に関し、
特に、命令をパイプライン方式で実行する演算処理装置
に関する。より特定的には、パイプライン方式を採用し
た縮小命令セットコンピュータ(RISC)に関する。
【0002】
【従来の技術】コンピュータのプログラムの実行の大部
分は、“Load(ロード)”、“Store(ストア
)”、“Branch  On  Condition
(条件付分岐)”、および“Add(加算)”などの非
常に簡単な命令に費やされる。コンピュータにおける複
雑な制御回路の多くは、複数のサイクルを必要とする命
令およびページ境界を越えるメモリ内オペランドを処理
するためのものである。使用頻度の低い複雑なオペレー
ションを取扱わないようにすれば処理速度はより速くす
ることができる。そこで、使用頻度の高い簡単な命令の
みを取扱う縮小命令セットコンピュータ(RISC)が
開発されている。
【0003】RISCでは、メモリへのアクセスは“L
oad”命令および“Store”命令に限定されるロ
ード/ストアアーキテクチァを採用する。算術演算命令
および論理演算命令はすべて内部のレジスタに格納され
たデータを用いて行なわれる。このため、RISCは数
多くのレジスタを有しており、汎用レジスタとしてレジ
スタファイルを備えている。RISCは、一般に以下の
特徴を備える。
【0004】(1)  命令の実行を1マシンサイクル
で行なう。 (2)  すべての命令の長さは同一(典型的には32
ビット)、かつ単純な固定フォーマット命令。
【0005】(3)  「ロード」および「ストア」命
令のときのみメモリへアクセスし、残りの命令はレジス
タに対して行なわれる。
【0006】(4)  パイプライン処理。同時にいく
つかの命令を処理する。 (5)  ソフトウェアへの機能の移行。すなわち、性
能を上げるための特徴はハードウェアで実現し、複雑な
機能はソフトウェアに任せる。
【0007】演算処理装置の性能を上げるために最も重
要なのは、シングルサイクル実行(1マシンサイクルで
の命令の実行)とマシンサイクルをできるだけ短くする
ことである。上述の、演算はレジスタに限定されること
およびメモリへのアクセスは「ロード/ストア」命令に
限るという特徴は、このシングルサイクル実行のために
採用される。また、単純な固定フォーマットの命令はこ
の命令のデコード時間を短縮し、マシンサイクルを短く
する。ソフトウェアへの機能の移行は、複雑な機能が、
コンパイル時へ移行されることを意味する。また、コン
パイラの最適化機能が命令系列をパイプラインに適合す
るように並べ変えることも可能になる。
【0008】RISCは、命令を高速で実行するために
パイプライン制御方式を採用している。パイプラインの
構造は数種類存在し、この種類に応じてRISCの構造
も異なる。
【0009】図7はRISCの一般的な機能的構成の一
例を示す図である。図7において、RISCは、命令を
格納する、たとえばキャッシュメモリからなる命令メモ
リ1と、データを一時的に格納するための複数のレジス
タからなるレジスタファイル2と、データを格納するた
めのデータメモリ3と、5段のパイプラインステージ4
ないし8を含む。
【0010】5段のパイプラインステージは、命令メモ
リ1から命令をフェッチするための命令フェッチステー
ジ4と、命令フェッチステージ4によりフェッチされた
命令をデコードするための命令デコードステージ5と、
命令デコードステージ5でデコードされた命令を実行す
るための実行ステージ6と、命令ステージ5でデコード
された命令がメモリアクセス命令の場合にデータメモリ
3へアクセスするメモリアクセスステージ7と、演算命
令の実行結果およびデータメモリ3からのロードデータ
をレジスタファイル2の対応のレジスタに書き戻すライ
トバックステージ8を含む。
【0011】命令メモリ1およびデータメモリ3は、キ
ャッシュメモリなどから構成されており、命令フェッチ
ステージ4は、図示しないプログラムカウンタの出力に
従って命令メモリ1から対応のメモリをフェッチし、命
令デコードステージ5へ与える。命令デコードステージ
5は与えられた命令をデコードし、レジスタファイル2
から対応のレジスタの内容を読出す。命令デコードステ
ージ5は、また、このフェッチされた命令が次の実行ス
テージ6で実行可能な場合には、実行ステージ6へ、デ
コードされた命令を投入(ディスパッチ)する。
【0012】RISCにおいては命令はパイプラインに
従って並列して実行される。このため、命令間において
依存関係が存在することがある。たとえばある演算結果
を次の演算命令が利用するなどの場合である。この場合
、命令デコードステージ5は一般に、デコードされた命
令が実行可能となるまでその命令の実行ステージ6への
ディスパッチを待機する。
【0013】実行ステージ6は、デコードされた命令が
演算命令の場合には、与えられた命令を実行する。デコ
ードされた命令がブランチ(分岐)命令の場合、実行ス
テージ6は、その分岐条件を判定する。デコードされた
命令がメモリ命令(ロードまたはストア命令)の場合、
この実行ステージ6は、データメモリ3の実効アドレス
を計算し、そのアドレスをメモリアクセスステージ7へ
与える。
【0014】メモリアクセスステージ7は、この実行ス
テージ6からのアドレスに従ってたとえばキャッシュメ
モリからなるデータメモリ3へアクセスし、データの書
込/読出を実行する。
【0015】RISCは2相の互いに重なり合わないク
ロック(TクロックおよびLクロック;これにについて
は後に説明する)に従って動作する。RISCは、パイ
プライン化されており、各クロックサイクルで新しい命
令をフェッチする。図7に示すRISCにおいては、1
つの命令の実行完了には5サイクルが必要とされる。し
かし、各クロックサイクルごとに新しい命令を開始する
ことができるようにパイプライン化されている。新しい
命令の開始は現在の命令の完了前に行なわれる。
【0016】図8にパイプライン動作を示す。図8にお
いて、命令1ないし命令3はそれぞれ命令フェッチステ
ージ(IF)、命令デコードステージ(ID)、命令実
行ステージ(EXC)、メモリアクセスステージ(ME
M)、およびライトバックステージ(WB)を通過する
。命令1の命令デコードのサイクル2において命令2の
フェッチが行なわれる。命令2のデコードのサイクル3
において命令3がフェッチされる。命令1のライトバッ
クのサイクル5においては命令5がフェッチされる。 このように、命令が並行して実行されるため、全体とし
ては、実効的に1マシンサイクルで1命令を実行するこ
とができる。
【0017】
【発明が解決しようとする課題】パイプライン方式の命
令実行においては、現在の命令が完了する前に次の命令
が開始される。このため、命令に使用するデータに依存
関係が存在する場合が生じる。この命令が使用するデー
タの依存関係の判別は命令デコードステージ5で行なわ
れる場合が多い。このように命令に依存関係が存在する
場合、その依存関係が解消されるまで次の命令を実行す
ることができず、パイプラインを乱れさせる原因となる
。この命令の相互依存関係について説明する。
【0018】図9に示すように、RISCは2相のクロ
ック信号TクロックとLクロックとに応答して動作する
。Tクロック位相とLクロック位相とで1つのマシンサ
イクルとなる。実行ステージ6においては、Tクロック
位相で演算が行なわれ、Lクロック位相で演算結果がバ
ス上へ伝達される。分岐条件命令の場合、実行ステージ
6のTクロック位相で、命令フェッチステージ4に含ま
れるプログラムカウンタに内蔵の加算器により、分岐先
アドレスが計算される。
【0019】ロードまたはストア命令の場合、実行ステ
ージ6は、Tクロック位相で実効アドレスを計算し、L
クロック位相でその実効アドレスをアドレスピンへ伝達
する。メモリアクセスステージ7において、このアドレ
スがTクロック位相でデータメモリ3へ伝達され、この
データがLクロック位相で書込または読出される。命令
の実行結果(演算結果またロードデータ)は、ライトバ
ックステージ8のTクロック位相でレジスタファイルへ
書込まれる。
【0020】このような命令の依存関係が存在する場合
としては、条件付分岐命令、ある命令がその前の命令の
実行結果を利用する場合、ある命令がデータメモリから
読出されたデータを利用する場合等がある。今ロード命
令について考える。
【0021】データメモリ3からロードされたデータは
、メモリアクセスステージ7において、メモリアクセス
サイクルが終了するまで、そのデータは有効ではない。 したがって、次の命令の実行ステージでは、このメモリ
3からロードされたデータを利用することはできない。 具体的に今、次の命令を考える。
【0022】(a)  load    lr0,(l
r1)(b)  and      lr3,lr2,
lr0命令(a)は、レジスタファイル2のレジスタl
r1のアドレスのメモリセルデータをデータメモリ3か
ら読出してレジスタファイル2に含まれるレジスタlr
0へロードせよという命令である。
【0023】命令(b)はレジスタファイル2のレジス
タlr2およびlr0に格納されたデータの論理積を取
り、その結果をレジスタファイル2のレジスタlr3へ
格納せよという命令である。
【0024】図10に示すように、命令(a)(ロード
命令)は、その命令完了に5サイクルを必要としている
。レジスタlr0の内容はこの命令(a)(ロード命令
)のライトバックステージWBの完了まで確定しない。 通常、レジスタファイル2においては、データの書込は
Tクロック位相で行なわれ、データの読出がLクロック
位相で行なわれる。レジスタファイル2へのアクセスは
命令デコードステージ5およびライトバックステージ8
が行なうことができる。実行ステージ6はレジスタファ
イル2へアクセスすることはできない。
【0025】したがって、単純にライトバックステージ
(サイクル5)においてこの命令(a)(ロード命令)
の結果がレジスタファイル2のレジスタlr0に書込ま
れるのを待った場合、命令(b)は、図10において、
第6サイクル目でこのレジスタファイル2のレジスタl
r0の内容を読出し、実行ステージ6へ投入する必要が
ある。このため、命令(b)(アンド命令)の実行が3
マシンサイクル遅れることになる。このため、パイプラ
インにスロットが生じ、命令の処理速度を低下させてし
まう。
【0026】上述のような命令の相互依存関係に起因す
るパイプラインの乱れを最小限に抑えるために、バイパ
ス機構またはフォワーディング機構と呼ばれるハードウ
ェアが設けられることがある。この機構においては、上
述のように、命令が実行ステージに到達し、プロセッサ
がこの命令を実行しようとしているのにもかかわらず、
この命令のオペランドデータが利用することができない
場合の命令実行の中断を最小限とするために、必要とさ
れるオペランドデータを別のパスを用いて演算器に送出
する。以下、このバイパス機構について簡単に説明する
【0027】バイパス機構(またはフォワーディング機
構)には、データメモリ3からロードしたデータに対し
て行なわれるロードバイパス機構と、演算器で演算した
結果に対して行なわれるリザルトバイパス機構の2種類
が存在する。
【0028】図11は、バイパス機構の構成を概略的に
示す図である。図11において、バイパス論理11は、
データバスに設けられ、レジスタファイル10と演算器
12との間のデータ転送を制御する。レジスタファイル
10は、汎用レジスタ(図7のレジスタファイル2)の
みならず、パイプラインバイパス用レジスタと、データ
メモリ3の入出力データを一時的に格納するI/Oレジ
スタを含む。レジスタファイル10のデータは、命令に
含まれる第1および第2のソースオペランドに従って第
1のソースバスSrc1および第2のソースバスSrc
2へ読出される。レジスタファイル10へのデータの書
戻し(ライトバック)はバイパス論理11を介して行な
われる。
【0029】バイパス論理11は、データメモリ3から
のロードデータおよび演算器12からの演算結果(リザ
ルトバスresult上のデータ)をラッチするラッチ
を含む。このバイパス論理11は、現在の命令の2つの
レジスタソース(ソースオペランド)と先行命令のデス
ティネーションオペランドとを比較し、バイパス動作が
必要かどうかを判別する。バイパス動作が必要と判断さ
れた場合、バイパス論理11は、そのラッチしたデータ
をレジスタファイル10から読出さずにソースバスSr
c1またはSrc2上へ伝達する。また、このバイパス
論理11は、現在の命令が先行命令の演算結果を必要と
する場合においてもバイパス動作を実行する。しかし、
以下の説明においてはロードデータのバイパス動作につ
いてのみ説明する。このバイパス論理11にラッチされ
たロードデータは、対応のレジスタファイル10内のレ
ジスタに書戻しを行なう必要がある場合には、ライトバ
ックサイクルにおいて対応のレジスタへ書戻される。
【0030】図12はバイパス論理の構成をより具体的
に示す図である。バイパス機構の構成は、たとえば、マ
ーク・ホロビッツ等による「MIPS−X:オンチップ
キャッシュ内蔵20MIPSピークの32ビットマイク
ロプロセッサ」、アイ・イー・イー・イー、ジャーナル
・オブ・ソリッド・ステート・サーキッツ、SC−22
巻、第5号、1980年10月号の第790頁ないし第
797頁に示されている。
【0031】図12において、バイパス論理11は、現
在の命令の第1のソースオペランド(ソース1)を一時
的に格納するレジスタラッチ111と、現在の命令の第
2のソースオペランド(ソース2)を一時的に格納する
レジスタラッチ112と、先行命令のデスティネーショ
ンオペランド(デスティネーション)を格納するレジス
タ113と、レジスタラッチ111および112の内容
とレジスタ113の内容とを比較する比較器110と、
比較器110の出力に応答してレジスタファイル10に
含まれるI/Oレジスタ101のデータ(ラッチデータ
)をソースバスSrc1またはSrc2へ伝達する選択
回路114を含む。ここで、一般にバイパス論理11に
おいては、現在の命令のソースオペランドと先行する2
つの命令のデスティネーションとの比較が行なわれてお
り、レジスタ113は2つ設けられる構成となる。しか
しながら、図12においては説明を簡単にするために1
個のデスティネーション用レジスタのみを示す。
【0032】I/Oレジスタ101は、データメモリ3
からのロードレジスタをラッチし、またストア時にはデ
ータメモリ3へ書込むデータを一時的に格納する。この
I/Oレジスタ101のロードデータはライトバックス
テージ8によりレジスタファイル2の対応のレジスタへ
書込まれる。レジスタファイル2の対応のレジスタの内
容がこのデータの書込の前に演算により更新されている
場合には、このI/Oレジスタ101にラッチされたロ
ードデータは捨てられ、対応のレジスタへの書込は行な
われない。次に動作について簡単に説明する。
【0033】フェッチされた命令に含まれるソースオペ
ランドのソース1およびソース2はレジスタラッチ11
1および112へ命令デコードステージ5により格納さ
れる。レジスタ113へはまた命令デコードステージ5
により先行命令のデスティネーションオペランドが格納
される。比較器110は、このレジスタラッチ111お
よび112に格納されたソースオペランドとレジスタ1
13に格納されたオペランドとを比較する。一致が見出
された場合には、比較器110は、制御信号を発生し、
選択回路114へ与える。選択回路114はこの比較器
110からの制御信号に応答して、I/Oレジスタ10
1にラッチされているデータを、一致が見出されたソー
スオペランドに対応するソースバスSrc1またはSr
c2上へ伝達する。
【0034】このソースバスは図11に示すように演算
器12へ結合されている。したがって、メモリアクセス
サイクルでロードされたデータはレジスタファイル2へ
格納されることなく実行ステージ6に含まれる演算器1
2へバイパスされる。これにより、実際に、レジスタフ
ァイル2へロードデータを書込んだ後にこのデータを再
び読出すよりもパイプラインの乱れを少なくすることが
できる。
【0035】しかしながら、このようなバイパス機構を
用いたとしても、ロード命令に続いて演算命令が行なわ
れ、この演算命令がロード命令によりロードされたデー
タを使用する場合においてはパイプラインの乱れを完全
になくすことはできない。すなわち、図13に示すよう
に、ロード命令によるロードデータはサイクル4のメモ
リアクセスサイクルMEMの完了時点でI/Oレジスタ
101へラッチされている。このI/Oレジスタ101
へラッチされたデータを演算器12へバイパスしたとし
ても、この演算命令(図13(b))はサイクル5にお
いて初めてオペランドデータが揃ったことになり、演算
の実行を行なうことができる。したがって、このロード
命令に続く演算命令は、サイクル4においてスロット(
パイプラインインタロック)が生じることになり、処理
速度を低下させることになる。
【0036】なお、このバイパス論理は命令デコードス
テージ5に含まれている。このため、サイクル5におい
ては、命令デコードステージ5は再びデコードをせず、
実行ステージ6による演算実行が行なわれている。
【0037】上述のように、ロード命令に続く演算命令
などのように命令のデータ依存関係によりパイプライン
にスロットが生じる場合の対処方法としては、命令デコ
ードステージ5において命令を実行可能か否かを判別し
、その判別結果に従ってパイプラインのストール(すな
わち、実行ステージ6への命令投入の待機)を行なうか
、またはこのようなパイプラインストールが生じないよ
うにコンパイラなどにより予め依存関係のある命令間に
“NOP”命令を挿入することが行なわれる。
【0038】しかしながら、パイプラインをストールさ
せることは処理速度低下の原因となり、また“NOP”
という何の動作をも実行しない無駄な命令の挿入も処理
速度低下の一因となる。
【0039】それゆえ、この発明の目的は、命令に依存
関係が存在しても高速で命令を実行することのできる演
算処理装置を提供することである。
【0040】この発明の他の目的は、ロード命令とこの
ロード命令に続く演算命令との間にデータ依存関係が存
在しても、パイプラインに乱れを生じさせることのない
演算処理装置を提供することである。
【0041】
【課題を解決するための手段】この発明に係る演算処理
装置は、ロード命令に従ってデータメモリから対応のデ
ータを読出すメモリアクセス手段と、このロード命令に
続いて与えられる演算命令に従ってレジスタファイルか
ら対応のデータを読出すレジスタアクセス手段と、前記
ロード命令と前記演算命令とに依存関係があるか否かを
判別する判別手段と、レジスタアクセス手段によりレジ
スタファイルから読出されたデータに所定の演算を行な
う第1の演算手段と、判別手段の判別結果に従って、メ
モリアクセス手段により読出されたデータとレジスタア
クセス手段により読出されたデータとから所要のデータ
を選択する第1の選択手段と、この選択手段により選択
されたデータに所定の演算を行なう第2の演算手段と、
判別手段の判別結果に従って第1および第2の演算手段
の出力を選択する第2の選択手段とを含む。
【0042】
【作用】この発明によれば、データメモリからのロード
されたデータは第1の選択手段により選択的にレジスタ
ファイルから読出されたデータと第2の演算手段で演算
が実行される。第1の演算手段はレジスタファイルから
読出されたデータに対して演算を行なっている。したが
って、このデータメモリからのロードデータを演算命令
が使用する場合には、第2の演算手段の演算結果を選択
することにより、第1の演算手段のみを用いて演算を実
行する構成に比べてパイプラインに乱れが生じることが
なく、高速で命令を実行することができる。
【0043】
【発明の実施例】図1はこの発明の一実施例である演算
処理装置の構成を示す図である。この図1に示す演算処
理装置は、図7に示す演算処理装置と同様5段のパイプ
ラインステージを含む。図1において、命令デコードス
テージ(IDS)は、命令メモリ(図7の1に対応)か
らフェッチされた命令をデコードし、このデコードされ
た命令の指定するソースレジスタの内容OP1,OP2
を読出す命令デコーダ/コントローラ200と、命令デ
コーダ/コントローラ200の制御のもとに、現在与え
られている命令に含まれる第1レジスタソース(ソース
1)および第2のレジスタソース(ソース2)の各オペ
ランド(レジスタアドレス)を格納するレジスタラッチ
204,206と、ロード命令に含まれるデスティネー
ションレジスタオペランド(レジスタアドレス)を格納
するレジスタラッチ202を含む。この命令デコードス
テージIDSはさらに、デスティネーションレジスタ2
02にラッチされているデータとレジスタラッチ204
に格納されているデータとの一致を検出する一致検出回
路210と、レジスタ202とレジスタラッチ206に
格納されているデータの一致を検出する一致検出回路2
08と、この一致検出回路208および210からの一
致検出信号MS1およびMS2に従って、ロード命令と
次に与えられる命令との間に依存関係があるか否かを判
別する判別回路212を含む。
【0044】命令デコーダ/コントローラ200は、ま
た、現在与えられている命令がロード命令の場合には、
その命令がロード命令であることを示す信号φload
を発生する。レジスタ202およびレジスタラッチ20
4,206と一致検出回路208,210の構成は、図
12に示すバイパス論理の構成と同様であり、一致検出
回路208,210はそれぞれ図12の比較器と等価で
ある。一致検出回路208,210からはそれぞれ一致
検出を示す検出信号MS1およびMS2をそれぞれ発生
する。判別回路212は、この検出信号MS1およびM
S2のいずれか一方が活性状態(真状態)にある場合に
は先行のロード命令と続いて与えられる演算命令との間
に依存関係があると判定し、依存関係を示す制御信号i
zonを発生するとともに、第1および第2のレジスタ
ソースのうちいずれのデータがロード命令のデータを使
用するかを示す信号opcodeを発生する。
【0045】ここで、レジスタ202,204および2
06へは、それぞれ常時命令が命令フェッチステージI
FSから与えられるたびごとに、その命令の種類にかか
わらずレジスタソースおよびデスティネーションレジス
タのオペランド(レジスタアドレス)を順次格納し、判
別回路212のみが、ロード命令が与えられ続いて演算
命令が与えられたときのみそのサイクルに活性化される
構成としてもよい。
【0046】またこれに代えて、レジスタ202へはロ
ード命令が与えられたときにそのデスティネーションレ
ジスタオペランドを格納し、続いて演算命令が与えられ
たときにレジスタ204および206へレジスタソース
のオペランドを格納するように構成し、それ以外にはこ
れらのレジスタの内容は適当な初期値へリセットされる
構成であってもよい。この場合には、レジスタ202と
レジスタラッチ204,206のリセットされるべき初
期値は互いに異なる値に設定する必要がある。
【0047】命令デコーダ/コントローラ200は、そ
の経路は明確には示さないが、フェッチされた命令に従
ってレジスタファイルから対応のレジスタの第1オペラ
ンド(第1のレジスタソース)のデータOP1および第
2のオペランド(第2のレジスタソース)のデータOP
2を読出す機能をも備える。
【0048】命令デコーダ/コントローラ200により
レジスタファイルから読出された第1および第2のオペ
ランドのデータOP1,OP2はそれぞれ第1のソース
バスSrc1およびSrc2上へ伝達される。
【0049】実行ステージEXCSは、この第1および
第2のソースバスSrc1,Src2上のデータOP1
およびOP2を受けて所定の演算をする演算器222と
、第1のソースバスSrc1上のデータOP1をTクロ
ックに従ってラッチするレジスタ224と、第2のソー
スバスSrc2上の第2オペランドのデータOP2をT
クロックに従ってラッチするレジスタ226を含む。
【0050】実行ステージEXCSはさらに、命令デコ
ードステージIDSからの制御信号izonおよびop
codeを受け、制御信号sel  op1,sel 
 op2およびsel  resultを発生する制御
回路228を含む。制御信号selop1は、現在実行
中の命令では先行するロード命令のロードデータを第1
のオペランドが使用することを示す。制御信号selo
p2は、現在実行中の演算命令は、第2オペランドのデ
ータOP2としては先行するロード命令によりロードさ
れたデータを利用していることを示す。制御信号sel
  resultは、現在実行中の演算命令が、先行す
るロード命令のロードデータを利用していることを示す
【0051】命令実行ステージEXCSは、そのパイプ
ライン動作のために、演算器222の出力をLクロック
に従ってラッチするレジスタ230と、レジスタ224
および226のラッチデータをLクロックに従ってラッ
チするレジスタ232,234と、制御回路228から
の制御信号sel  resultをTクロックに従っ
てラッチするレジスタ236を含む。なお、この制御信
号sel  op1,sel  op2に対しては、そ
の発生タイミングによってはメモリアクセスステージに
おける動作タイミングに合わせるための遅延用のラッチ
(Lクロックに従ってラッチする)を設けてもよい。
【0052】メモリアクセスステージMEMSは、実行
ステージEXCSのレジスタ230の出力をTクロック
に従ってラッチするレジスタ240と、レジスタ232
に格納されたデータとデータメモリ254からロードさ
れたデータとのいずれか一方を制御信号sel  op
1に従って選択する選択回路242と、レジスタ234
が格納するデータとメモリ254からのロードデータの
いずれか一方を制御信号sel  op2に従って選択
する選択回路244と、選択回路242および244か
ら出力されたデータに所定の演算を行なう演算器248
を含む。
【0053】このメモリアクセスステージMEMSにお
いては、データメモリ254へアクセスし、データを書
込むまたは読出す経路は示していないが、これは、実行
ステージEXCの演算器222で計算されたメモリアド
レスに従ってメモリ254へのアクセスが行なわれてお
り、このメモリ254へは前述のレジスタファイルに含
まれるI/Oレジスタまたはクロックトバッファを介し
てデータの入出力が行なわれる。このデータメモリ25
4からのロードデータはこのI/Oレジスタへの格納と
平行して直接選択回路242および244へバイパスさ
れている。したがって、選択回路242,244および
演算器248の入力信号はロード命令のメモリアクセス
ステージMEMSにおけるメモリサイクル終了時点で確
定状態となる。
【0054】メモリステージMEMSはさらに、レジス
タ240の内容をさらにLクロックに従ってラッチする
レジスタ250を含む。
【0055】ライトバックステージWBSは、レジスタ
250のデータをそのA入力に受け、レジスタ252の
データをB入力に受け、かつデータメモリ254の出力
をC入力に受け、制御回路228からの制御信号sel
  resultの遅延信号(2段のレジスタ236お
よび246により与えられる)と制御信号φloadに
従って選択してD出力へ伝達するセレクタ260と、こ
のセレクタ260の出力をTクロックに従ってラッチす
るレジスタ262を含む。このレジスタ262の内容は
、レジスタファイルの対応のレジスタへライトバックさ
れる。この対応のレジスタは、演算命令に含まれるデス
ティネーションレジスタオペランドにより決定される。 メモリ254からのロードデータはI/Oレジスタ(L
クロックラッチ)を介してセレクタ260へ与えられ、
選択回路242、244はI/Oレジスタを介さず直接
ロードデータか与えられてもよい。またメモリ254へ
はI/Oレジスタを介さずクロックトバッファによりア
クセスする構成でもよい。
【0056】ここで図1に示す実行ステージEXCS、
メモリステージMEMSおよびライトバックステージW
BSのレジスタは単なるラッチであり、レジスタファイ
ルのレジスタとは別のものである。
【0057】図2は図1に示す演算処理装置の動作を示
す信号波形図である。以下、図1および図2を参照して
この発明の一実施例である演算処理装置の動作について
説明する。
【0058】まず、命令デコーダ/コントローラ200
は、命令フェッチステージIFSからフェッチされた命
令をデコードする(サイクル2)。この命令がロード命
令の場合、命令デコーダ/コントローラ200は、ロー
ド命令であることを示す制御信号φloadを発生する
とともに、この命令に含まれるデスティネーションレジ
スタを示すオペランドをレジスタ202へ格納する。こ
のロード命令に従って命令デコーダ/コントローラ20
0はレジスタファイルに含まれているメモリアドレスを
読出して演算器222へ与える。
【0059】実行ステージEXCSにおいて、演算器2
22はこのロード命令に従ってアドレスを計算し、メモ
リアクセスステージMEMSへ与える。この実行ステー
ジEXCSにおけるロード命令によるアドレス計算と並
行して、続いて演算命令が命令デコーダ/コントローラ
200によりデコードされる(サイクル3)。
【0060】命令デコーダ/コントローラ200は、ロ
ード命令に続いて演算命令が与えられたことを検出する
と、この演算命令に含まれる第1および第2のレジスタ
ソースを示すデータオペランドをそれぞれレジスタ20
4および206へ書込むとともに、このレジスタソース
のオペランドが指定するレジスタに格納されているデー
タOP1およびOP2をそれぞれ読出してソースバスS
rc1およびSrc2上へ伝達する。データOP1は演
算命令の第1のソースレジスタに格納されているデータ
であり、データOP2は演算命令の第2のソースオペラ
ンドが指定するソースレジスタに格納されているデータ
である。今、第1のオペランドが指定する第1のソース
レジスタが、先行するロード命令によりメモリ254か
らロードされたデータを利用する場合を考える。このサ
イクル3においては、まだ第1のソースレジスタへは正
しいデータは書込まれていないため、このまま実行ステ
ージで演算が行なわれても正しい演算は行なわれない。
【0061】サイクル3において、命令デコーダステー
ジIDSにおいては、一致検出回路208および210
による一致検出動作が行なわれており、一致検出回路2
08からの一致を示す検出信号MS1が真状態となり、
一方、一致検出回路210からの検出信号MS2は偽状
態となる。判別回路212はこの検出信号MS1および
MS2に従って、データ依存関係があることを示す制御
信号izonを発行し、この実行ステージEXCSで実
行される演算結果は正しくないことを以下のステージへ
知らせる。
【0062】また判別回路212は、第1オペランドお
よび第2オペランドのいずれのデータが依存関係にある
かを示すための制御信号opcodeを発生する。この
場合、第1のオペランド(第1のレジスタソース)がデ
ータ依存関係を有しているため、信号opcodeは“
1”となる。ここで、この制御信号opcodeは2ビ
ットの信号であり、(01)のときに第1オペランドの
データが依存関係があることを示し(10)の場合には
第2オペランドのデータが依存関係があることを示すよ
うに構成してもよい。
【0063】サイクル4においては、ロード命令に従っ
てメモリ254へのアクセスが行なわれており、対応の
データがロードされる。このメモリ254からのロード
されたデータは直接選択回路242および244へ与え
られる。
【0064】実行ステージEXCSにおいては、制御回
路228が、制御信号izonおよびopcodeに従
って、いずれのオペランドが依存関係にあるかを示す信
号sel  op1およびsel  op2をLクロッ
ク位相で確定状態に設定するとともに、演算器248出
力を選択すべきことを示す制御信号sel  resu
ltを発生する。
【0065】レジスタ224および226は、サイクル
4のTクロック位相で、ソースバスSrc1およびSr
c2上へ与えられた第1および第2のオペランドデータ
OP1およびOP2をラッチし、またレジスタ232お
よび234はこのサイクル4のLクロック位相でレジス
タ224および226の内容をラッチしている。また制
御信号sel  resultは、サイクル5における
Tクロック位相でレジスタ236にラッチされる。
【0066】サイクル5においては、すでにメモリ25
4からのロードデータはセレクタ260へ与えられてい
る。このサイクル5においては、命令デコーダ/コント
ローラ200からのロード指示信号φloadが与えら
れており、このときまだレジスタ246からの選択信号
(遅延された信号sel  result)は偽状態に
ある。この状態においてはセレクタ260は入力Cへ与
えられたメモリ254からのロードデータを選択してレ
ジスタ262へ与える。レジスタ262はこのセレクタ
260の出力をサイクル5におけるTクロック位相でラ
ッチする。このレジスタ262にラッチされたデータは
ライトバックステージWBSにより、ロード命令に含ま
れるオペランドが指定するデスティネーションレジスタ
へライトバックされる。
【0067】一方、サイクル5において、選択回路24
2および244では選択制御信号sel  op1およ
びsel  op2が確定状態となっている。今、第1
オペランドがデータ依存関係を有しているため、制御信
号sel  op1が真状態、制御信号sel  op
2が偽状態にある。選択回路242はこのとき、データ
メモリ254からのロードデータを選択して演算器24
8の一方入力へ与え、一方、選択回路244はレジスタ
234からのデータを選択して演算器248の他方入力
へ与える。演算器248はこの選択回路242および2
44からのデータに対し所定の演算を行なった後レジス
タ252へ与える。レジスタ252は演算器248の出
力をLクロック位相でラッチする。
【0068】したがって、この場合、サイクル5の終了
時点においては、レジスタ252においては正しい演算
結果が格納されている。すなわち、この演算命令のメモ
リアクセスサイクルのTクロック位相においては、すで
に選択回路242および244により正しいデータが選
択されており、Lクロック位相までに演算器248の出
力は正しい値となっている。したがってレジスタ252
がLクロック位相で演算器248出力をラッチすること
により正しいデータがラッチされたことになる。
【0069】レジスタ246からの制御信号sel  
resultがそのサイクル5のLクロック位相におい
て確定状態となりセレクタ260へ与えられている。こ
のとき制御信号φloadはすでにサイクル6において
は偽状態となっており、制御信号sel  resul
tのみが真状態となっている。この状態においてはセレ
クタ260はレジスタ252からそのB入力へ与えられ
たデータを選択してレジスタ262へ与える。これによ
り演算命令のライトバックサイクルにおいてはライトバ
ックステージWBSにより、Tクロック位相でレジスタ
ファイルのうちのこの演算命令のデスティネーションオ
ペランドが指定するレジスタへのデータの書込が行なわ
れる。
【0070】ロード命令と演算命令との間に何ら依存関
係が存在しない場合には、制御信号izonは偽状態に
ある。この場合、制御回路228からの制御信号sel
  op1,sel  op2およびsel  res
ultはすべて偽状態にある。この場合には、制御信号
φloadが発生され、ロード命令に従ってデータメモ
リ254からロードされたデータがまず図2のサイクル
5で対応のレジスタへライトバックされた後、次いでセ
レクタ260は次のサイクルでそのA入力へ与えられた
レジスタ250の出力を選択してレジスタ262へ伝達
する。 この場合は、演算命令は実行ステージEXCSの演算器
222へ与えられた正しいデータOP1,OP2に従っ
た演算を実行しており、それの演算結果が、何らパイプ
ラインを乱すことなくライトバックサイクルにおいて対
応のレジスタへ書込まれる。
【0071】上述のように演算命令はメモリアクセスを
行なわないことを利用し、メモリアクセスステージME
MSにおいてデータメモリ254からのロードされたデ
ータとソースレジスタからのデータとの選択動作を行な
って正しいデータに対する演算を行なうことにより、演
算命令は何らパイプラインを乱されることなく実行され
ることになり、このためパイプラインをストールしたり
、無駄な“NOP”命令を命令コード中に挿入する必要
がなく、高速で正しい演算結果を得ることができる。
【0072】図3は図1に示す命令デコードステージI
DSに含まれる判別回路212の具体的構成の一例を示
す図である。図3において、判別回路212は、一致検
出回路208および210の検出信号MS1およびMS
2の論理和を取るORゲート回路310と、検出信号M
S1およびMS2を受けるゲート回路312とを含む。 ゲート回路310から制御信号izonが発生され、ゲ
ート回路312から制御信号opcodeが発生される
。ゲート回路310は検出信号MS1およびMS2のい
ずれか一方が少なくとも“真状態”となったときに制御
信号izonを真状態にする。
【0073】ゲート回路312はその真入力に検出信号
MS1を受け、その偽入力に検出信号MS2を受けるA
NDゲート回路より構成される。ゲート回路312は、
検出信号MS1が真状態にありかつ検出信号MS2が偽
状態のときに制御信号opcodeを真状態にし、検出
信号MS1が偽状態、検出信号MS2が真状態の場合に
は、制御信号opcodeを偽状態に設定する。
【0074】この図3に示すゲート回路312の構成に
おいては、検出信号MS1およびMS2がともに真状態
になることはない場合を想定している。より正確な制御
信号を発生するために、このゲート回路312を省略し
、制御信号opcodeを2ビットの制御信号MS1,
MS2により構成してもよい。図4は図1に示す制御回
路228の具体的構成の一例を示す図である。図4にお
いて制御回路228は、制御信号izonおよびopc
odeを受けるゲート回路320と330を含む。 ゲート回路320から制御信号sel  op1が発生
され、ゲート回路330から制御信号sel  op2
が発生される。
【0075】ゲート回路320は制御信号izonおよ
び制御信号opcodeがともに真状態のときに制御信
号sel  op1を真状態とする。すなわち、検出信
号MS1が真状態にあり、かつ制御信号izonが発生
されている場合には、第1ソースレジスタのデータを伝
達すべきことが指定される。
【0076】ゲート回路330はその真入力に制御信号
izonを受け、その偽入力に制御信号opcodeを
受ける。ゲート回路330は制御信号izonが真状態
にあり、制御信号opcodeが偽状態のときに制御信
号sel  op2を真状態に設定する。すなわち、第
2のソースレジスタのオペランドとしてロードデータを
利用する場合には制御信号sel  op2が発生され
る。 制御信号sel  resultは制御信号izonを
そのまま利用する。ここで制御回路228は実行ステー
ジEXCSに含まれており、命令デコードステージID
Sからの制御信号opcodeおよびizonから制御
信号sel  op1,sel  op2およびsel
  resultは1クロックサイクル遅れて確定状態
となる。 この構成は、図4に示す構成においてゲート回路320
および330の前段に、Tクロックでデータをラッチす
る1つのTラッチとこのTラッチ出力をLクロックに従
ってラッチするLラッチを設けておけば得られる。これ
に代えてゲート回路320および330の出力部にこの
TラッチおよびLラッチを設ける構成としてもよい。
【0077】図5は命令デコーダ/コントローラ200
からの信号loadがセレクタ260へ与えられるまで
の経路を示す図である。図5において、命令デコーダ/
コントローラ200で発生された制御信号φloadの
伝達経路は、クロック位相で制御信号φloadをラッ
チするTラッチ341と、このTラッチ341の出力を
Lクロック位相でラッチするLラッチ342と、このL
ラッチ342の出力をTクロック位相でラッチするTラ
ッチ343と、Tラッチ343の出力をLクロック位相
でラッチするLラッチ344を含む。Lラッチ344の
出力がセレクタ260の制御入力へ与えられる。この構
成によれば図2に示す構成においてサイクル2のLクロ
ック位相で発生された制御信号φloadは、クロック
サイクル4のLクロック位相でラッチ344によりラッ
チされ、確定状態となる。
【0078】なお選択回路242および244の構成は
通常の選択回路の構成を利用することができる。また、
演算器222および248の構成は、両者が同一の演算
内容を実行する構成であればよい。
【0079】さらに、ライトバックステージWBSにお
いては、データメモリ254の出力はセレクタ260を
介してレジスタ262へ与えられている。これに代えて
、データメモリ254からのロードデータは選択回路2
42および244へバイパスしかつ同時にレジスタ26
2とI/Oレジスタ(図示せず)へ格納し、このレジス
タ262とI/Oレジスタの内容を制御信号φload
およびsel  resultに従って選択してレジス
タファイルへ書込むように構成してもよい。
【0080】図6はセレクタ260の実現する論理を一
覧にして示す図である。セレクタ260は、制御信号φ
loadおよび制御信号sel  resultがとも
に偽を示す“0”の場合入力Aへ与えられたレジスタ2
50からの出力を選択する。制御信号φloadが真状
態の“1”にあり、制御信号sel  resultが
偽状態の“0”の場合には、入力Cへ与えられたデータ
メモリ254からのロードデータが選択される。制御信
号φloadが偽状態の“0”、かつ制御信号sel 
 resultが真状態の“1”の場合には入力Bへ与
えられたレジスタ252からのデータすなわちメモリア
クセスステージで行なわれた演算結果が選択される。こ
の論理を実現するための回路構成としては種々の構成を
考えることができ、3to1の選択回路であればどのよ
うな構成であってもよい。
【0081】また演算処理装置としてはパイプライン方
式に従って命令を並列実行する構成であればどのような
演算処理装置であってもよい。
【0082】
【発明の効果】以上のように、この発明に従えば、デー
タメモリからのロードデータをバイパスし、レジスタフ
ァイルからのデータをそのまま演算する経路と、このレ
ジスタファイルデータとロードメモリデータとを選択し
て演算する経路と2系統設け、このロード命令と演算命
令との依存関係に従って演算系統の選択を行なうように
構成したため、ロード命令に続く演算命令においてパイ
プラインの乱れを生じさせることがなく、パイプライン
のストールおよびパイプラインストール防止用の“NO
P”などの無駄な命令の挿入の必要がなく、高速で命令
を実行することのできる演算処理装置を得ることができ
る。またこの構成は従来のロードフォワーディングの構
成をほぼそのまま利用することができ、大幅な仕様変更
をもたらすことなく簡易な回路構成で高速で命令を実行
することのできる演算処理装置を得ることができる。
【図面の簡単な説明】
【図1】この発明の一実施例である演算処理装置の要部
の構成を示す図である。
【図2】図1に示す演算処理装置の動作を示す信号波形
図である。
【図3】図1に示す判別回路の具体的構成の一例を示す
図である。
【図4】図1に示す制御回路の具体的構成の一例を示す
図である。
【図5】図1に示す制御信号φloadの伝達経路を示
す図である。
【図6】図1に示すセレクタ260の実現する論理を一
覧にして示す図である。
【図7】パイプライン方式のRISCコンピュータの一
般的構成を示す図である。
【図8】図7に示すRISCコンピュータの命令実行態
様を示す図である。
【図9】RISCコンピュータにおいて用いられるクロ
ック信号を示す図である。
【図10】従来のパイプライン方式の演算処理装置にお
ける命令のデータ依存関係が生じた場合のパイプライン
の乱れを例示する図である。
【図11】従来のRISCコンピュータにおいて用いら
れるバイパス機構を実現するための構成を概略的に示す
図である。
【図12】図11に示すバイパス論理の具体的構成を示
す図である。
【図13】従来のバイパス機構を用いた際のパイプライ
ンの乱れを例示する図である。
【符号の説明】
IDS  命令デコードステージ EXCS  命令実行ステージ MEMS  命令アクセスステージ WBS  ライトバックステージ IFS  命令フェッチステージ 200  命令デコーダ/コントローラ202,204
,206  レジスタ 208,210  一致検出回路 212  判別回路 228  制御回路 222  演算器 224,226,232,234  ソースオペランド
用のレジスタ 242,244  選択回路 248  演算器 254  データメモリ 260  セレクタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  複数のレジスタと、データ格納用のメ
    モリとを含み、与えられた命令をパイプライン方式で実
    行する演算処理装置であって、ロード命令に応答して前
    記メモリへアクセスし、対応のデータを読出すメモリア
    クセス手段、前記ロード命令に続いて与えられる演算命
    令に従って前記レジスタから処理されるべきデータを読
    出すレジスタアクセス手段、前記ロード命令と前記演算
    命令との依存関係の有無を判別する手段、前記レジスタ
    アクセス手段により読出されたデータに所定の演算を行
    なう第1の演算手段、前記判別手段の判別結果に従って
    前記メモリアクセス手段により読出されたデータと前記
    レジスタアクセス手段により読出されたデータとから所
    要のデータを選択する選択手段、前記選択手段により選
    択されたデータに所定の演算を行なう第2の演算手段、
    および前記判別手段の判別結果に従って前記第1および
    第2の演算手段の出力を選択する手段を備える、演算処
    理装置。
JP3036264A 1991-03-01 1991-03-01 演算処理装置 Withdrawn JPH04275628A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3036264A JPH04275628A (ja) 1991-03-01 1991-03-01 演算処理装置
US07/805,776 US5404552A (en) 1991-03-01 1991-12-12 Pipeline risc processing unit with improved efficiency when handling data dependency
DE4206062A DE4206062C2 (de) 1991-03-01 1992-02-27 Pipelineverarbeitung von Instruktionen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3036264A JPH04275628A (ja) 1991-03-01 1991-03-01 演算処理装置

Publications (1)

Publication Number Publication Date
JPH04275628A true JPH04275628A (ja) 1992-10-01

Family

ID=12464914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3036264A Withdrawn JPH04275628A (ja) 1991-03-01 1991-03-01 演算処理装置

Country Status (3)

Country Link
US (1) US5404552A (ja)
JP (1) JPH04275628A (ja)
DE (1) DE4206062C2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590294A (en) * 1991-03-19 1996-12-31 Silicon Graphics, Inc. Method and apparatus for retarting pipeline processing
JP2539974B2 (ja) * 1991-11-20 1996-10-02 富士通株式会社 情報処理装置におけるレジスタの読出制御方式
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US5675758A (en) 1994-11-15 1997-10-07 Advanced Micro Devices, Inc. Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
US5745726A (en) * 1995-03-03 1998-04-28 Fujitsu, Ltd Method and apparatus for selecting the oldest queued instructions without data dependencies
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
US5664120A (en) * 1995-08-25 1997-09-02 International Business Machines Corporation Method for executing instructions and execution unit instruction reservation table within an in-order completion processor
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5751983A (en) * 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
JP3435267B2 (ja) * 1995-11-07 2003-08-11 株式会社東芝 マイクロプロセッサ及びそのロードアドレス予想方法
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
US6115730A (en) * 1996-02-28 2000-09-05 Via-Cyrix, Inc. Reloadable floating point unit
US5813033A (en) * 1996-03-08 1998-09-22 Advanced Micro Devices, Inc. Superscalar microprocessor including a cache configured to detect dependencies between accesses to the cache and another cache
JPH09305401A (ja) * 1996-05-13 1997-11-28 Mitsubishi Electric Corp コンピュータ及びコンパイラ
US6049864A (en) * 1996-08-20 2000-04-11 Intel Corporation Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
US5878242A (en) * 1997-04-21 1999-03-02 International Business Machines Corporation Method and system for forwarding instructions in a processor with increased forwarding probability
US6000016A (en) * 1997-05-02 1999-12-07 Intel Corporation Multiported bypass cache in a bypass network
US6016543A (en) * 1997-05-14 2000-01-18 Mitsubishi Denki Kabushiki Kaisha Microprocessor for controlling the conditional execution of instructions
US6012137A (en) * 1997-05-30 2000-01-04 Sony Corporation Special purpose processor for digital audio/video decoding
JPH1165840A (ja) * 1997-08-11 1999-03-09 Sony Corp 演算処理装置およびその方法
US6370638B1 (en) * 1997-11-21 2002-04-09 Matsushita Electric Industrial Co., Ltd. Apparatus and method of computer program control in computer systems using pipeline processing
US6546479B1 (en) 1998-02-10 2003-04-08 Koninklijke Philips Electronics N.V. Reduced instruction fetch latency in a system including a pipelined processor
US8636648B2 (en) 1999-03-01 2014-01-28 West View Research, Llc Endoscopic smart probe
US10973397B2 (en) 1999-03-01 2021-04-13 West View Research, Llc Computerized information collection and processing apparatus
US6708267B1 (en) * 2000-02-04 2004-03-16 International Business Machines Corporation System and method in a pipelined processor for generating a single cycle pipeline stall
US7243214B2 (en) * 2003-04-21 2007-07-10 Intel Corporation Stall optimization for an in-order, multi-stage processor pipeline which analyzes current and next instructions to determine if a stall is necessary
US7684563B1 (en) * 2003-12-12 2010-03-23 Sun Microsystems, Inc. Apparatus and method for implementing a unified hash algorithm pipeline
US7720219B1 (en) * 2004-10-19 2010-05-18 Oracle America, Inc. Apparatus and method for implementing a hash algorithm word buffer
US8536664B1 (en) 2007-04-16 2013-09-17 DigitalOptics Corporation MEMS MEMS device with integrated memory cells
CN105094747B (zh) * 2014-05-07 2018-12-04 阿里巴巴集团控股有限公司 基于smt的中央处理单元以及用于检测指令的数据相关性的装置
CN113946368B (zh) * 2021-10-29 2024-04-30 西安微电子技术研究所 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
JP2667849B2 (ja) * 1988-01-06 1997-10-27 株式会社日立製作所 情報処理装置
US5123108A (en) * 1989-09-11 1992-06-16 Wang Laboratories, Inc. Improved cpu pipeline having register file bypass and working register bypass on update/access address compare
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor

Also Published As

Publication number Publication date
DE4206062A1 (de) 1992-09-03
DE4206062C2 (de) 1996-06-13
US5404552A (en) 1995-04-04

Similar Documents

Publication Publication Date Title
JPH04275628A (ja) 演算処理装置
JP3547482B2 (ja) 情報処理装置
US5706459A (en) Processor having a variable number of stages in a pipeline
JP2845646B2 (ja) 並列演算処理装置
JP3881763B2 (ja) データ処理装置
KR960001274B1 (ko) 트랩 및 스톨 제어기능을 갖는 병렬처리형 프로세서 시스템
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
WO1990014629A2 (en) Parallel multithreaded data processing system
JP2003029986A (ja) プロセッサ間レジスタ継承方法及びその装置
US6145074A (en) Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction
JP2000330787A (ja) 命令ループを実行するコンピュータシステムおよび命令ループ実行方法
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
JP2000330788A (ja) コンピュータシステム
US20070079076A1 (en) Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture
JPH07120284B2 (ja) データ処理装置
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
JPS581246A (ja) 命令処理順序制御方式
EP1050805B1 (en) Transfer of guard values in a computer system
JPH05181676A (ja) 並列処理型プロセッサシステム
EP0573071A2 (en) A microprocessor
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JP2894438B2 (ja) パイプライン処理装置
JP2553728B2 (ja) 演算装置
JP2824484B2 (ja) パイプライン処理計算機
JP2503223B2 (ja) 先行制御方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980514