JPH05204643A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH05204643A
JPH05204643A JP1518292A JP1518292A JPH05204643A JP H05204643 A JPH05204643 A JP H05204643A JP 1518292 A JP1518292 A JP 1518292A JP 1518292 A JP1518292 A JP 1518292A JP H05204643 A JPH05204643 A JP H05204643A
Authority
JP
Japan
Prior art keywords
instruction
instructions
data
source data
register
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
JP1518292A
Other languages
English (en)
Inventor
Norio Uchiumi
則夫 内海
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1518292A priority Critical patent/JPH05204643A/ja
Publication of JPH05204643A publication Critical patent/JPH05204643A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 レジスタ干渉を起こしている複数の命令を同
時に実行することができる情報処理装置を提供する。 【構成】 命令キューC,Dに格納されている次に実行
すべき2つの命令は、先読みデコーダ38及び39によ
って予め読み出されて先行演算処理装置54,55で実
行され、その結果が記憶手段62ね63に記憶される。
次にこれらの命令は命令キューA及びBを介してデコー
ダ3によって読み出されね第1及び第2の演算処理装置
5,6で実行される。第1及び第2の比較器66,67
において2つの命令の間にレジスタ干渉が生じているこ
とが検出されると、記憶手段62,63に記憶されてい
る処理結果がレジスタ干渉を起こしている命令の一方の
ソースデータとして用いられる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数の演算処理装置を備
え、各命令を一定の長さのパイプラインを用いて少なく
とも2命令を1マシンサイクルで同時に実行することが
できる情報処理装置に関し、特に、複数の命令のディス
ティネーションレジスタとソースレジスタが干渉してい
る場合にも、これらの命令を1マシンサイクルで実行し
得る情報処理装置に関する。
【0002】
【従来の技術】近年、複数の演算処理装置を備え、1マ
シンサイクルに複数の命令を並列に実行できる情報処理
装置が用いられるようになってきている。図3は、2つ
の演算処理装置を備え、2つの命令を並列処理する情報
処理装置の一例のブロック構成を示している。同図に示
す情報処理装置は、命令キャッシュメモリ1と、4つの
命令キューA,B,C,Dからなる命令キュー群2と、
命令キューA,Bから同時に発行された2命令をデコー
ドするデコーダ3と、アドレス計算、算術演算及び論理
演算を行なう第1及び第2の演算処理装置5,6と、第
1及び第2の演算処理装置5,6のソースレジスタ及び
ディスティネーションレジスタとして機能する多数のレ
ジスタを有するレジスタ群4と、データキャッシュメモ
リ7とを有している。
【0003】命令キュー群2の4つの命令バッファA,
B,C,Dはそれぞれ1つの命令を格納しており、1マ
シンサイクルで命令キューA,Bに存在する2命令を同
時にデコーダ3に出力する。命令キューA,Bの命令を
出力した後には、命令キューC,Dに格納されている命
令がそれぞれ命令キューA,Bに移送され、命令キュー
C,Dには新たな命令が命令キャッシュメモリ1から供
給される。
【0004】この情報処理装置では各命令は4フィール
ドからなり、第1フィールドは命令のオペコード、第2
及び第3フィールドは、第1フィールドのオペコードで
示される命令の処理の対象となる第1及び第2のソース
データを格納するソースレジスタを指定するオペランド
であり、第4フィールドは命令の処理結果を格納すべき
ディスティネーションレジスタを指定するオペランドで
ある。
【0005】デコーダ3は命令キューA,Bから同時に
入力された2つの命令から、2つの命令のオペランドに
よって指示されるソースレジスタに格納されているソー
スデータを読み出すための制御信号を生成してレジスタ
群4に出力する。
【0006】このような構成を有する情報処理装置は、
以下のようにパイプライン処理を行う。パイプライン処
理は、ロードステージ、実行ステージ、メモリアクセス
ステージ及びストアステージからなる。なお、説明を簡
単にするために、この情報処理装置の命令キュー群2は
1マシンサイクル毎に2つの命令を発行すると共に2つ
の命令の供給を受けるものとし、異なるステージ間での
各種バイパスは考慮に入れない。
【0007】最初に、命令キューA,Bから発行される
命令が、ALU命令、即ち、算術演算命令又は論理演算
命令である場合のパイプライン処理動作について説明す
る。図4はこの情報処理装置におけるALU命令のパイ
プライン処理動作を示している。
【0008】まず、ロードステージにおいて、命令キュ
ーA,Bから2つの命令が発行される。命令キューA,
Bから発行された命令はデコーダ3でデコードされ、デ
コーダ3は発行された第1及び第2の命令のソースデー
タを読み出す制御信号を生成する。この制御信号によ
り、レジスタ群4のソースレジスタから第1及び第2の
命令のソースデータが読み出される。
【0009】実行ステージでは、第1及び第2の演算処
理装置5,6はロードステージで読み出した第1及び第
2の命令のソースデータを用いて、それぞれの命令のオ
ペコードに応じたALU命令演算を行なう。
【0010】メモリアクセスステージはALU命令演算
を実行する場合にはダミーステージとなる。
【0011】ストアステージでは実行ステージで求めた
ALU命令の演算結果がレジスタ群におけるそれぞれの
命令のディスティネーションレジスタに書き込まれる。
【0012】次に、命令キューA,Bから発行される命
令がメモリアクセス命令である場合のパイプライン処理
動作について説明する。図5はメモリアクセス命令のパ
イプライン処理動作を示している。ここでは、メモリセ
ルアクセス命令の一例としてロード命令について説明す
る。
【0013】ロードステージでは命令キューA,Bから
発行された命令がデコーダ3でデコードされ、デコーダ
3は発行された第1及び第2の命令のソースデータを読
み出す制御信号を生成する。この制御信号により、レジ
スタ群4のソースレジスタから第1及び第2のソースデ
ータが読み出される。
【0014】実行ステージでは、第1及び第2の演算処
理装置5,6はロードステージで読み出した第1及び第
2の命令のソースデータを用いて、アドレス計算を行な
う。
【0015】メモリアクセスステージでは、実行ステー
ジで求めたアドレスに格納されているデータがデータキ
ャッシュメモリから読み出される。
【0016】ストアステージでは、メモリアクセスステ
ージでデータキャッシュメモリから読み出されたキャッ
シュデータがそれぞれの命令のディスティネーションレ
ジスタに書き込まれる。
【0017】次に、命令キューC,Dに次の命令が格納
されている場合におけるこの情報処理装置の動作につい
て説明する。
【0018】 命令キューC:SUB %L1,%L2,%L3 命令キューD:ADD %L4,%L5,%L6 ここで、%Lnは、レジスタ群4におけるレジスタnを
表しており、例えば、命令キューCのSUBで表される
オペコードに続く2つのレジスタ%L1及び%L2がそ
れぞれ第1及び第2のソースレジスタとなり、最後に記
載されているレジスタ%L3がディスティネーションレ
ジスタとなることを示している。
【0019】図6は上述の命令をパイプライン処理する
場合の動作を表した図である。この例では1マシンサイ
クルは4ステージからなるものとする。まず、上述のよ
うに命令キューA,Bに格納されている命令がデコーダ
3に入力された後に、命令キューC及びDにそれぞれ格
納されているSUB命令及びADD命令が命令キュー
A,Bに供給される。次に、命令キューA,BにあるS
UB、ADD命令はデコーダ3に入力され、図6に示す
第1ステージでSUB命令及びADD命令のロードステ
ージが行なわれる。
【0020】第1ステージでは、命令キューA,Bから
発行されたSUB命令及びADD命令がデコーダ3によ
ってデコードされ、SUB命令の2つのソースレジスタ
%L1と%L2とに格納されているソースデータを読み
出す制御信号14,15と、ADD命令の2つのソース
レジスタ%L4と%L5とに格納されているソースデー
タを読み出す制御信号16,17とが生成され、ソース
レジスタ%L1、%L2とソースレジスタ%L4、%L
5とに格納されているソースデータがそれぞれバス2
2、23とバス24、25とに読み出される。
【0021】第2ステージでは、SUB命令及びADD
命令の実行ステージが行なわれる。即ち、第1の演算処
理装置5はロードステージでレジスタ%L1、%L2か
ら読み出されたソースデータを用いてオペコードSUB
に応じた減算を行ない、その演算結果をバス26に出力
する。また、第2の演算処理装置6はロードステージで
ソースレジスタ%L4、%L5から読み出されたソース
データを用いてオペコードADDに応じた加算を行な
い、その演算結果をバス27に出力する。
【0022】第3ステージでは、SUB命令及びADD
命令のメモリアクセスステージが行なわれる。メモリア
クセスステージは、ALU命令の演算を実行する場合に
はダミーステージとなる。
【0023】第4ステージでは、SUB命令及びADD
命令のストアステージが行なわれる。ストアステージで
は実行ステージで求めたALU命令演算結果が、バス2
6、27を介してそれぞれレジスタ群4のディスティネ
ーションレジスタ%L3、%L6に書き込まれる。
【0024】このように、上述の場合にはSUB命令の
ディスティネーションレジスタとADD命令のソースレ
ジスタとの干渉していないので、1マシンサイクルで2
命令を同時に実行することが可能である。
【0025】なお、命令キューC,Dの何れかがメモリ
アクセス命令の場合には、第2ステージである実行ステ
ージにおいてソースデータを用いてアドレスが求めら
れ、このアドレスに基づいてデータキャッシュ7からキ
ャッシュデータが読み出される点のみが異なり、他のス
テージは上述のALU命令の場合と同様に行われる。
【0026】
【発明が解決しようとする課題】上記の構成を有する情
報処理装置では、同時に実行すべき2つの命令のうち、
一方の命令のディスティネーションレジスタと他方の命
令のソースレジスタとが干渉している場合には、一方の
命令の演算実行結果がディスティネーションレジスタに
格納されて初めて他方の命令のソースレジスタの値が確
定するため、この2つの命令は1マシンサイクルで実行
することはできないという問題点を有していた。
【0027】以下、命令キューC,Dに次の命令が格納
されている場合のこの情報処理装置におけるパイプライ
ン処理動作について説明する。
【0028】 命令キューC:SUB %L1,%L2,%L3 命令キューD:ADD %L3,%L5,%L6 命令キューCに格納されているSUB命令のディスティ
ネーションレジスタは%L3であり、命令キューDに格
納されているADD命令のソースレジスタの一方は%L
3なので、これらの2つの命令の間でレジスタが干渉し
ている。
【0029】図7は上述のSUB命令及びADD命令を
実行する場合のパイプライン処理動作を示している。こ
の場合には、上述のようにSUB命令の演算の実行結果
が確定した後でなければADD命令を実行することはで
きない。まず、命令キューA,Bに格納されている命令
がデコーダ3にそれぞれ発行された後に、命令キュー
C,Dに格納されているSUB命令及びADD命令がそ
れぞれ命令キューA,Bに供給される。その後、命令キ
ューA,BにあるSUB命令及びADD命令はデコーダ
3に入力され、図7に示す第1ステージではSUB命令
及びADD命令のロードステージが行なわれる。
【0030】第1ステージでは、命令キューA,Bから
発行されたSUB命令及びADD命令がデコードされ、
SUB命令の2つのソースレジスタ%L1と%L2とに
格納されているソースデータを読み出す制御信号14、
15と、ADD命令の2つのソースレジスタ%L3と%
L5とに格納されているソースデータを読み出す制御信
号16、17とが生成され、ソースレジスタ%L1、%
L2とソースレジスタ%L3、%L5に格納されている
ソースデータがそれぞれバス22、23とバス24、2
5とに読み出される。ここで、ADD命令の一方のソー
スレジスタ%L5に格納されているソースデータは一応
読み出されるが、SUB命令に実行結果が確定していな
いため、ADD命令の他方のソースレジスタ%L3に格
納されているソースデータを読み出すことはできない。
そのため、図7に示すように、ADD命令のロードステ
ージは第1ステージで終了しない。従って、第2ステー
ジでもADD命令ではロードステージが引き続いて実行
される。
【0031】第2ステージでは、SUB命令の実行ステ
ージと、上述のようにADD命令のロードステージが行
なわれる。即ち、演算処理装置5で第1ステージで読み
出したソースレジスタ%L1、%L2から読み出された
ソースデータを用いてオペコードSUBに応じた減算が
行なわれ、その演算結果がバス26に出力される。この
第2ステージでSUB命令の実行結果が確定するため、
ADD命令のロードステージは第2ステージで終了する
ことが可能となる。
【0032】第3ステージでは、SUB命令のメモリア
クセスステージとADD命令の実行ステージが行なわれ
る。SUB命令はALU命令なので、メモリアクセスス
テージはダミーステージとなる。一方、ADD命令で
は、第2ステージで確定したSUB命令のソースレジス
タ%L3に格納されているソースデータと、第1ステー
ジで既に読み出されていたソースレジスタ%L5のソー
スデータとを用いてオペコードADDに応じた加算が行
なわれ、その演算結果がバス27に出力される。
【0033】第4ステージでは、SUB命令のストアス
テージとADD命令のメモリアクセスステージが行なわ
れる。即ち、第2ステージで求めたSUB命令の演算結
果がレジスタ群4のディスティネーションレジスタ%L
3に書き込まれる。一方、ADD命令はALU命令なの
で、メモリアクセスステージはダミーステージとなる。
【0034】第5ステージでは、ADD命令のストアス
テージが行なわれる。即ち、第3ステージで求めたSU
B命令の演算結果がディスティネーションレジスタ%L
6に書き込まれる。
【0035】このように、上述の場合にはSUB命令の
ディスティネーションレジスタとADD命令のソースレ
ジスタとは干渉しているので、これらの2命令の実行の
完了には5ステージを必要とし、1マシンサイクルで2
命令を同時に実行することはできない。
【0036】本発明は、上記問題点に鑑み、同時に実行
される複数の命令のディスティネーションレジスタとソ
ースレジスタとが干渉している場合でも、これらの複数
の命令を高速に処理することができる情報処理装置を提
供することを目的とする。
【0037】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、命令キュー群に保持されている第1及び
第2の命令を発行前に読み出し、これらの2つの命令の
実行に用いるデータを先読みして演算結果をあらかじめ
求めておき、命令キュー群に保持されていた第1の命令
のオペランドと命令キュー群から発行された第2の命令
のオペランドとが一致し命令キュー群に保持されていた
第1の命令のソースデータと命令キュー群から発行され
た第2の命令のソースデータとが一致していないことが
検出された場合に、先読みして求めた演算結果を第2の
命令におけるソースデータとして用いるものである。
【0038】具体的に本発明が講じた解決手段は、第1
の命令と該第1の命令の次に実行すべき第2の命令とを
保持した後に発行する複数の命令キューを有する命令キ
ュー群と、ソースレジスタ及びディスティネーションレ
ジスタとして機能し得る多数のレジスタを有するレジス
タ群と、前記命令キュー群に保持されている前記第1及
び第2の命令のソースデータを前記レジスタ群から読み
出すようそれぞれ制御を行うと共に前記命令キュー群に
保持されている前記第1及び第2の命令のオペランドを
示すデータをそれぞれ出力する第1及び第2の先読みデ
コーダと、前記命令キュー群に保持されている前記第1
及び第2の命令の前記ソースデータを用いてそれぞれ演
算処理及びアドレス計算を行なう第1及び第2の先行演
算処理装置と、該第1及び第2の先行演算処理装置によ
り求められるアドレスに対応するキャッシュデータを出
力するデータキャッシュメモリと、前記第1の先読みデ
コーダから出力される前記第1の命令のオペランドを示
すデータと前記第1の命令の前記ソースデータと前記第
1の先行演算処理装置で得られた処理結果又は前記デー
タキャッシュメモリから出力されるキャッシュデータと
を記憶する記憶手段と、前記命令キュー群から発行され
た第1及び第2の命令のソースデータを前記レジスタ群
から読み出すようそれぞれ制御を行うと共に前記命令キ
ュー群から発行された前記第1及び第2の命令のオペラ
ンドを示すデータを出力するデコーダと、該デコーダに
よってデコードされた第1及び第2の命令の演算処理及
びアドレス計算を並列で実行する演算処理装置と、前記
記憶手段に格納されている前記命令キュー群に保持され
ていた前記第1の命令のオペランドを示すデータと前記
デコーダから出力される前記命令キュー群から発行され
た前記第2の命令のオペランドを示すデータとが一致し
ていることを検出しかつ前記記憶手段に格納されている
前記命令キュー群に保持されていた前記第1の命令の前
記ソースデータと前記レジスタ群における前記命令キュ
ー群から発行された前記第2の命令のソースデータとが
一致していないことを検出する比較器とを備えた情報処
理装置を前提とし、前記比較器において前記命令キュー
群に保持されていた前記第1の命令のオペランドと前記
命令キュー群から発行された前記第2の命令のオペラン
ドとが一致しかつ前記命令キュー群に保持されていた前
記第1の命令のソースデータと前記命令キュー群から発
行された前記第2の命令のソースデータとが一致してい
ないことが検出された場合に、前記記憶手段に格納され
ている前記処理結果又は前記キャッシュデータが前記命
令キュー群から発行された前記第2の命令のソースデー
タとして用いられる構成とするものである。
【0039】
【作用】本発明の構成により、命令キュー群に保持され
ている第1の命令と第1の命令の次に実行すべき第2の
命令とはそれぞれ第1及び第2の先読みデコーダによっ
て読み出される。第1及び第2の先読みデコーダは命令
キュー群に保持されている第1及び第2の命令のソース
データをレジスタ群から読み出すようそれぞれ制御を行
うと共に、第1及び第2の命令のオペランドを示すデー
タをそれぞれ出力する。また、第1及び第2の先行演算
処理装置は命令キュー群に保持されている第1及び第2
の命令のソースデータを用いてそれぞれ演算処理及びア
ドレス計算を行なう。第1の先読みデコーダから出力さ
れる前記第1の命令のオペランドを示すデータと前記第
1の命令の前記ソースデータと前記第1の先行演算処理
装置で得られた処理結果又は前記データキャッシュメモ
リから出力されるキャッシュデータとは記憶手段によっ
て記憶される。次に、第1及び第2の命令は命令キュー
群からデコーダに発行される。デコーダは命令キュー群
から発行された第1及び第2の命令のソースデータをレ
ジスタ群から読み出すようそれぞれ制御を行うと共に、
命令キュー群から発行された第1及び第2の命令のオペ
ランドを示すデータを出力する。次に、比較器において
命令キュー群に保持されていた第1の命令のオペランド
と命令キュー群から発行された第2の命令のオペランド
とが一致し、かつ命令キュー群に保持されていた第1の
命令のソースデータと命令キュー群から発行された第2
の命令のソースデータとが一致していないことが検出さ
れた場合に、前記記憶手段に格納されている処理結果又
はキャッシュデータが命令キュー群から発行された第2
の命令のソースデータとして用いられる。これにより、
第1の命令のディスティネーションレジスタと第2の命
令のソースレジスタとが干渉している場合でも、1マシ
ンサイクルでこれらの2つの命令を実行することが可能
となる。
【0040】
【実施例】以下、本発明の一実施例に係る情報処理装置
について、図面を参照しながら説明する。図1は本実施
例の情報処理装置のブロック構成を示しており、本実施
例では演算処理装置を2つ備えた情報処理装置を例とし
て説明する。
【0041】本実施例の情報処理装置は、命令キャッシ
ュメモリ1と、4つの命令キューA,B,C,Dからな
る命令キュー群2と、命令キューA,Bから同時に発行
された2つの先行命令をデコードするデコーダ3と、先
行命令におけるアドレス計算、算術演算及び論理演算を
行なう第1及び第2の演算処理装置5,6と、ソースレ
ジスタ及びディスティネーションレジスタとして機能し
得る多数のレジスタを有するレジスタ群4と、データキ
ャッシュメモリ7とを有している。更に、本実施例の情
報処理装置は、命令キューC、Dに格納されている第1
及び第2の命令のアドレス計算、算術演算及び論理演算
を先行して行なう第1及び第2の先行演算処理装置5
4,55と、第1及び第2の命令のオペランド、第1及
び第2の先行演算処理装置54,55での処理結果等を
格納する第1及び第2の記憶手段62、63と、命令の
オペコード等の比較を行う第1及び第2の比較器64、
65とを有している。
【0042】第1及び第2の先読みデコーダ38,39
は、命令キューC、Dに格納されている第1及び第2の
命令のソースレジスタに格納されているソースデータを
読み出す制御信号をそれぞれ生成すると共に、第1及び
第2の命令のオペランドを示すデータをそれぞれ出力す
る。第1及び第2の記憶手段62、63は、それぞれ第
1及び第2の先読みデコーダ38,39から出力される
第1及び第2の命令のオペランドを示すデータと、レジ
スタ群4から読み出された第1及び第2の命令のソース
データと、第1及び第2の先行演算処理装置54、55
の処理結果又はデータキャッシュメモリ7から読み出さ
れたキャッシュデータとを記憶する。また、第1の比較
器64は、第1の記憶手段62に格納されている第1の
命令のオペコードと、命令キューAからデコーダ3を介
して出力された命令のオペコードとを比較すると共に、
第1の記憶手段62に格納されている第1の命令のソー
スデータと命令キューAに格納されている命令のソース
データとをそれぞれ比較する。同様に、第2の比較器6
5は、第2の記憶手段63に格納されている第2の命令
のオペコードと、命令キューBからデコーダ3を介して
出力された命令のオペコードとをそれぞれ比較すると共
に、第2の記憶手段63に格納されている第2の命令の
ソースデータと命令キューBに格納されている命令のソ
ースデータとをそれぞれ比較する。
【0043】以上のような構成を有するデータ情報処理
装置のパイプライン処理の動作について説明する。ここ
では、命令キューC,Dには以下に示す命令が格納され
ている場合について説明する。
【0044】 命令キューC:SUB %L1,%L2,%L3 命令キューD:ADD %L3,%L5,%L6 この例では、第1の命令であるSUB命令におけるディ
スティネーションレジスタ%L3と、第2の命令である
ADD命令における1つのソースレジスタ%L3とはレ
ジスタ干渉を起こしている。
【0045】まず、命令キューC,Dに保持されている
SUB命令とADD命令は、命令キューA,Bを介して
デコーダ3に発行される第1ステージに先だって、第1
及び第2の先読みデコーダ38、39に供給される。第
1及び第2の先読みデコーダ38,39は、命令キュー
C,Dから供給されたSUB命令及びADD命令をデコ
ードし、SUB命令の2つのソースレジスタ%L1と%
L2とに格納されているソースデータを読み出す制御信
号40、41と、ADD命令の2つのソースレジスタ%
L3と%L5とに格納されているソースデータを読み出
す制御信号42、43とを出力し、更にSUB命令及び
ADD命令のオペランド、即ち、ソースレジスタ%L
1,%L2、ディスティネーションレジスタ%L3、及
びソースレジスタ%L3,%L5、ディスティネーショ
ンレジスタ%L6を示すデータをバス44、45にそれ
ぞれ出力する。出力されたSUB命令及びADD命令の
オペランドを示すデータは、それぞれ第1及び第2の記
憶手段62、63に格納される。
【0046】次に、命令キューCから供給されたSUB
命令のソースレジスタ%L1、%L2に格納されている
ソースデータは、それぞれ第1の先行演算処理装置54
に入力される。同様に、命令キューDから供給されたA
DD命令のソースレジスタ%L3、%L5に格納されて
いるソースデータは、それぞれ第2の先行演算処理装置
55に入力される。それと同時に、第1及び第2の記憶
手段62、63には第1の命令であるSUB命令のソー
スデータと、第2の命令であるADD命令のソースデー
タとが格納される。
【0047】先行演算処理装置54、55では、SUB
命令のソースデータとADD命令のソースデータとを用
いて、それぞれオペコードSUB,ADDに応じた減
算,加算が行われ、それぞれの演算結果がデータキャッ
シュメモリ7と第1及び第2の記憶手段62、63に格
納される。
【0048】このように、本実施例の情報処理装置で
は、第1及び第2の命令であるSUB命令とADD命令
との演算結果は、これらの命令が命令キューC,Dに格
納されている間に既に実行されてしまっている。即ち、
これらの第1及び第2の命令が命令キューA,Bを介し
て発行されてソースデータがレジスタ4から読み出され
るときには既に演算結果が得られ、SUB命令及びAD
D命令のオペランドを示すデータ、ソースデータ及び演
算結果は第1及び第2の記憶手段62、63にそれぞれ
格納されている。
【0049】図2は上述のパイプライン処理の動作を表
している。まず、命令キューA,Bに格納されている先
行命令がデコーダ3に発行された後に、命令キューC,
Dに格納された第1の命令であるSUB命令と第2の命
令であるADD命令とが命令キューA,Bに供給され
る。次に、命令キューA,Bに格納されているSUB命
令及びADD命令はそれぞれバス12、13を介してデ
コーダ3に発行される。
【0050】図2に示す第1ステージでは、SUB命令
及びADD命令のロードステージが行なわれる。即ち、
命令キューA,Bから発行されたSUB命令及びADD
命令がデコーダ3によってデコードされ、SUB命令の
2つのソースレジスタ%L1と%L2とに格納されてい
るソースデータを読み出す制御信号14、15と、AD
D命令の2つのソースレジスタ%L4と%L5とに格納
されているソースデータを読み出す制御信号16,17
とが生成される。これにより、ソースレジスタ%L1、
%L2に格納されているソースデータがそれぞれバス2
2、23に読み出され、第1の比較器64に入力され
る。同様に、ソースレジスタソースレジスタ%L4、%
L5に格納されているソースデータがそれぞれバス2
4、25に読み出され、第2の比較器65に入力され
る。また、SUB命令及びADD命令のオペランドを示
すデータ、即ちソースレジスタを示すデータ及びディス
ティネーションレジスタを示すデータがバス36、37
を介してそれぞれ第1及び第2の比較器64,65に出
力される。
【0051】第1の比較器64では、第1ステージで発
行されたSUB命令のオペランドを示すデータ及びソー
スデータと、第1の命令であるSUB命令が命令キュー
Cに格納されていたときに第1の記憶手段62に記憶さ
れたオペランドを示すデータ及びソースデータとがそれ
ぞれ比較される。同様に、第2の比較器65では、第1
ステージで発行されたADD命令のオペランドを示すデ
ータ及びソースデータと、第2の命令であるADD命令
が命令キューDに格納されていたときに第2の記憶手段
63に記憶されたオペランドを示すデータ及びソースデ
ータとがそれぞれ比較される。第1の比較器42での比
較により、この時点でのSUB命令のオペランドとソー
スデータは、命令キューCに格納されていた時点でのオ
ペランドとソースデータとそれぞれ同じであることが検
出される。これにより制御信号66が出力される。一
方、ADD命令のソースデータは直前に実行されるべき
SUB命令によってソースレジスタに格納されているソ
ースデータが変更されるため、第2の比較器65ではA
DD命令のこの時点でのソースデータとADD命令が命
令キューDに格納されていた時点でのソースデータとが
一致しないことが検出される。そのため、制御信号67
は出力されない。
【0052】第2ステージではSUB命令及びADD命
令の実行ステージ行なわれる。第1ステージで第2の比
較器65において行なわれた比較の結果が一致しないの
で、第1の記憶手段62に既に格納されているSUB命
令の演算結果がバス68を介してADD命令のソースレ
ジスタ%L3に書き込まれる。第2の演算処理装置6は
このソースレジスタ%L3に書き込まれたSUB命令の
演算結果と、ソースレジスタ%L5に格納されていたソ
ースデータとを用いてADD命令の演算を実行する。そ
の演算結果はバス27に出力される。また、第1の演算
処理装置5は、ソースレジスタ%L1、%L2の第1の
ステージで読み出されたソースデータを用いてオペコー
ドSUBに応じた減算を実行する。その演算結果はバス
26に出力される。
【0053】第3ステージではSUB命令及びADD命
令のメモリアクセスステージが行なわれる。SUB命令
及びADD命令はALU命令なので、メモリアクセスス
テージはダミーステージとなる。
【0054】第4ステージではSUB命令及びADD命
令のストアステージが行なわれる。ストアステージでは
実行ステージで求めた演算結果がバス26、27を介し
てそれぞれSUB命令及びADD命令のディスティネー
ションレジスタ%L3、%L6に書き込まれる。
【0055】なお、命令キューC,Dの何れかがメモリ
アクセス命令の場合には、第2ステージである実行ステ
ージにおいてソースデータを用いてアドレスが求めら
れ、このアドレスに基づいてデータキャッシュ7からキ
ャッシュデータが読み出される点のみが異なり、他のス
テージは上述のALU命令の場合と同様に行われる。
【0056】このように、本実施例では、命令キュー
C,Dに命令が格納されている間に予めSUB命令とA
DD命令とが第1及び第2の先行演算処理装置5,6で
実行され、その結果が第1及び第2の記憶手段62,6
3に格納されているので、第1の命令であるSUB命令
のディスティネーションレジスタと、第2の命令である
ADD命令のソースレジスタとが干渉しているような場
合にも、1マシンサイクルでこれらの2つの命令を実行
することが可能となる。
【0057】
【発明の効果】以上説明したように、本発明の情報処理
装置では、同時に実行すべき第1及び第2の命令が予め
先行演算処理装置において演算結果が求められて記憶手
段に格納されており、第1の命令のオペランドと第2の
命令のオペランドとの一致と、第1の命令のソースデー
タと第2の命令のソースデータとの一致とが比較手段で
検出された場合に、予め求めておいた演算結果が第2の
命令におけるソースデータとして用いられるので、第1
の命令のディスティネーションレジスタと第2の命令の
ソースレジスタとがレジスタ干渉を起こしていても、第
1及び第2の命令を並列して実行することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る情報処理装置のブロッ
ク図である。
【図2】図1の実施例においてレジスタ干渉が生じてい
る場合のパイプライン処理の動作を示す図である。
【図3】従来の情報処理装置のブロック図である。
【図4】従来の情報処理装置におけるALU命令のパイ
プライン処理の動作を示す図である。
【図5】従来の情報処理装置におけるメモリアクセス命
令のパイプライン処理の動作を示す図である。
【図6】従来の情報処理装置におけるレジスタ干渉がな
い場合のパイプライン処理の動作を示す図である。
【図7】従来の情報処理装置におけるレジスタ干渉があ
る場合のパイプライン処理の動作を示す図である。
【符号の説明】
1 命令キャッシュメモリ A 命令キュー B 命令キュー C 命令キュー D 命令キュー 2 命令キュー群 3 デコーダ 4 レジスタ 5 第1の演算処理装置 6 第2の演算処理装置 7 データキャッシュメモリ 54 第1の先行演算処理装置 55 第2の先行演算処理装置 38 第1の先読みデコーダ 39 第2の先読みデコーダ 62 第1の記憶手段(記憶手段) 63 第2の記憶手段 64 第1の比較器(比較器) 65 第2の比較器

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 第1の命令と該第1の命令の次に実行す
    べき第2の命令とを保持し同時に発行する複数の命令キ
    ューを有する命令キュー群と、ソースレジスタ及びディ
    スティネーションレジスタとして機能し得る多数のレジ
    スタを有するレジスタ群と、前記命令キュー群に保持さ
    れている前記第1及び第2の命令のソースデータを前記
    レジスタ群から読み出すようそれぞれ制御を行うと共に
    前記命令キュー群に保持されている前記第1及び第2の
    命令のオペランドを示すデータをそれぞれ出力する第1
    及び第2の先読みデコーダと、前記命令キュー群に保持
    されている前記第1及び第2の命令のソースデータを用
    いてそれぞれ演算処理及びアドレス計算を行なう第1及
    び第2の先行演算処理装置と、該第1及び第2の先行演
    算処理装置により求められるアドレスに対応するキャッ
    シュデータを出力するデータキャッシュメモリと、前記
    第1の先読みデコーダから出力される前記第1の命令の
    オペランドを示すデータと前記第1の命令のソースデー
    タと前記第1の先行演算処理装置で得られた処理結果又
    は前記データキャッシュメモリから出力されるキャッシ
    ュデータとを記憶する記憶手段と、前記命令キュー群か
    ら発行された第1及び第2の命令のソースデータを前記
    レジスタ群から読み出すようそれぞれ制御を行うと共に
    前記命令キュー群から発行された前記第1及び第2の命
    令のオペランドを示すデータを出力するデコーダと、該
    デコーダによってデコードされた第1及び第2の命令の
    演算処理及びアドレス計算を並列で実行する演算処理装
    置と、前記記憶手段に格納されている前記命令キュー群
    に保持されていた前記第1の命令のオペランドを示すデ
    ータと前記デコーダから出力される前記命令キュー群か
    ら発行された前記第2の命令のオペランドを示すデータ
    とが一致していることを検出しかつ前記記憶手段に格納
    されている前記命令キュー群に保持されていた前記第1
    の命令のソースデータと前記レジスタ群における前記命
    令キュー群から発行された前記第2の命令のソースデー
    タとが一致していないことを検出する比較器とを備え、
    前記比較器において前記命令キュー群に保持されていた
    前記第1の命令のオペランドと前記命令キュー群から発
    行された前記第2の命令のオペランドとが一致しかつ前
    記命令キュー群に保持されていた前記第1の命令のソー
    スデータと前記命令キュー群から発行された前記第2の
    命令のソースデータとが一致していないことが検出され
    た場合に、前記記憶手段に格納されている前記処理結果
    又は前記キャッシュデータが前記命令キュー群から発行
    された前記第2の命令のソースデータとして用いられる
    ことを特徴とする情報処理装置。
JP1518292A 1992-01-30 1992-01-30 情報処理装置 Withdrawn JPH05204643A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1518292A JPH05204643A (ja) 1992-01-30 1992-01-30 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1518292A JPH05204643A (ja) 1992-01-30 1992-01-30 情報処理装置

Publications (1)

Publication Number Publication Date
JPH05204643A true JPH05204643A (ja) 1993-08-13

Family

ID=11881685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1518292A Withdrawn JPH05204643A (ja) 1992-01-30 1992-01-30 情報処理装置

Country Status (1)

Country Link
JP (1) JPH05204643A (ja)

Similar Documents

Publication Publication Date Title
JP2620511B2 (ja) データ・プロセッサ
US4954947A (en) Instruction processor for processing branch instruction at high speed
JPH0527971A (ja) 情報処理装置
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
JPH0743648B2 (ja) 情報処理装置
JP2002544587A (ja) デジタル信号プロセッサ計算コア
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
JP2723238B2 (ja) 情報処理装置
WO2003093978A2 (en) Method and apparatus for swapping the contents of address registers
JP3182591B2 (ja) マイクロプロセッサ
JPH05204643A (ja) 情報処理装置
JPH10124312A (ja) 中央処理装置
US6115805A (en) Non-aligned double word fetch buffer
JP2591325B2 (ja) 分岐制御装置
JP2812610B2 (ja) パイプライン制御方式
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP2503223B2 (ja) 先行制御方式
JP3461887B2 (ja) 可変長パイプライン制御装置
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JP2856784B2 (ja) 電子計算機
JPH0721018A (ja) マイクロプログラム制御方式の中央処理装置
JP2843844B2 (ja) 並列演算処理装置
JP2545594B2 (ja) オペランドデータ先取り方式
JPH01147723A (ja) 情報処理装置のパイプライン処理方式
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990408