JPH08212068A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH08212068A
JPH08212068A JP7020048A JP2004895A JPH08212068A JP H08212068 A JPH08212068 A JP H08212068A JP 7020048 A JP7020048 A JP 7020048A JP 2004895 A JP2004895 A JP 2004895A JP H08212068 A JPH08212068 A JP H08212068A
Authority
JP
Japan
Prior art keywords
instruction
cache
address
stage
subsequent
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.)
Pending
Application number
JP7020048A
Other languages
English (en)
Inventor
Hiromitsu Imori
弘充 位守
Kenji Matsubara
健二 松原
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7020048A priority Critical patent/JPH08212068A/ja
Publication of JPH08212068A publication Critical patent/JPH08212068A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【目的】 先行命令がキャッシュミスした場合の後続命
令のパイプラインの乱れを防止する。 【構成】 命令キャッシュ7から先行命令を読み出し、
命令選択回路13を介して命令保持回路16に保持す
る。同時に、命令アドレスタグ8、命令TLB9からア
ドレスを読み出す。キャッシュヒット判定回路17は、
命令アドレスタブ8及び令名TBL9のアドレスよりキ
ャッシュヒット判定を行う。後続命令の読み出し結果
は、各保持回路10,11,12に保持する。同一ブロ
ック判定回路5は、先行命令及び後続命令が同一ライン
か判定する。先行命令がキャッシュミスの場合、主記憶
6からライン読出しを行い、該当命令を命令選択回路1
3及び命令保護回路16に転送する。該命令と後続命令
とが同一ラインの場合、引き続き同ラインの命令を転送
する。同一ラインでない場合は、キャッシュデータ保持
回路10の命令を転送する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、各命令を複数のステー
ジに分割してパイプライン処理し、かつ、キャッシュメ
モリを有する情報処理装置に係り、特に先行する命令が
キャッシュミスした際に、その後続の命令の後続パイプ
ラインステージへの転送を高速に行う情報処理装置に関
するものである。
【0002】
【従来の技術】情報処理装置の処理能力を向上させる方
式にパイプライン方式(先行制御方式)とキャッシュ方
式がある。パイプライン方式は、命令の実行を複数のス
テージ(命令の読み出し、命令のデコード、アドレス変
換、オペランド読み出し、命令の実行など)に分割し、
複数の命令をそれぞれオーバラップさせてパイプライン
処理することで、トータルな命令処理時間を短縮する方
式である。一方、キャッシュ方式は、主記憶内の使用頻
度の高い命令やデータを比較的小容量の高速メモリ(キ
ャッシュメモリ)に格納し、該キャッシュメモリをアク
セスすることで、主記憶の実効的アクセス時間を短縮す
る方式である。目的の命令やデータがキャッシュメモリ
に存在することをキャッシュヒット、存在しないことを
キャッシュミスと称す。なお、キャッシュ方式は、主記
憶とキャッシュメモリ(1次キャッシュ)の間に更に中
間のメモリ(2次キャッシュ)が存在することもある。
【0003】近年、パイプライン方式の情報処理装置は
さらに高速化が求められているが、パイプライン処理を
高速化すると、各ステージの実行サイクル時間は短くな
る傾向がある。一方、パイプライン方式の情報処理装置
(以下、パイプライン処理装置という)は、同時にキャ
ッシュ方式を採用しているのがほとんどであり、各ステ
ージの実行サイクル時間が短かくなると、キャッシュメ
モリを参照し、かつ、ヒット判定結果を出力すること
を、1サイクルで実現することは難しくなってきてい
る。このため、キャッシュメモリを具備するパイプライ
ン処理装置では、キャッシュメモリを読むステージとヒ
ット判定を行うステージを別ステージにするのが主流と
なっている。この場合、一般には命令の読み出しステー
ジ(IFステージという)でキャッシュメモリから命令
の読み出し、命令デコードステージ(Dステージ)で、
IFステージで読み出した結果が正しいか、すなわちキ
ャッシュヒット判定を行い、キャッシュヒットしていれ
ば、命令のデコードを実施して、後続のパイプラインス
テージに該命令を転送している。
【0004】図2に、従来のキャッシュメモリを具備す
るパイプライン処理装置の構成例を示す。便宜上、図2
では、命命読み出し処理にかかわるIFステージとDス
テージに関係する部分の構成のみを示している。
【0005】プログラムカウンタ1は、アドレス選択回
路2で選択されるアドレスを入力して、次の命令のアド
レスを求める回路である。ここでは、命令読み出しアド
レスは論理アドレスとする。アドレス選択回路2は、プ
ログラムカウンタ1、IFステージアドレス保持回路
3、Dステージアドレス保持回路4のアドレスあるいは
分岐ターゲートアドレスのいずれかを選択し、次の命令
読出しアドレスとしてアドレス線101に出力する回路
である。該アドレス選択回路2では、通常、プログラム
カウンタ1の出力を選択する。IFステージアドレス保
持回路3、Dステージアドレス保持回路4は、各々、パ
イプライン処理のIFステージの命令のアドレス、Dス
テージの命令のアドレスを保持する回路である。これら
アドレス保持回路3,4の出力のアドレス選択回路2へ
の入力は、命令フェッチ制御回路18の制御線106,
107で指示される。
【0006】6は主記憶もしくは2次キャッシュメモリ
であるが、以下の説明では主記憶とする。該主記憶6か
らの命令読出しは、命令フェッチ制御回路18の制御線
121で指示される。命命キャッシュ7は主記憶6の命
令を格納し、命令アドレスタグ8は、該命令キャッシュ
7に格納されている命令の主記憶上のアドレス(物理ア
ドレス)を格納している。命令TLB(アドレス変換バ
ッファ)9は論理アドレスと物理アドレスの対応を格納
している。
【0007】命令選択回路13は、命令キャッシュ7か
ら読み出された命令、主記憶6から読み出された命令の
いずれかを選択する回路である。該命令選択回路13で
は、通常は命令キャッシュ7の命令を選択し、命令フェ
ッチ制御回路18から制御線108を介して指示がある
と主記憶6の命令を選択する。Dステージ命令保持回路
16は命令選択回路13で選択された命令を保持する回
路である。キャッシュヒット判定回路17は、命令アド
レスタグ8と命令TLB9から読み出される物理アドレ
スを比較し、キャッシュヒットを判定する回路である。
キャッシュヒット判定回路17の判定情報は制御線10
5で命令フェッチ制御回路18に送られる。命令フェッ
チ制御回路18はIFステージとDステージの両方にか
かわり、命令のフェッチ動作を制御する回路である。該
命令フェッチ制御回路18は、制御線105よりキャッ
シュミスの判定情報を受け取ると、制御線106,10
7,108,121を介して各部位に所望の指示を行
う。ステージ制御回路100はステージ動作全体の制御
を司どる回路である。
【0008】まず、IFステージにおいて、プログラム
カウンタ1により求められたアドレス(論理アドレス)
をアドレス選択回路2で選択し、アドレス線101を介
して命令キャッシュ7をアクセスすることで、命令が命
令キャッシュ7から読み出される。該読み出された命令
は、データ線102、命令選択回路13を介してDステ
ージ命令保持回路16に格納される。この命令キャッシ
ュ7からの命令読み出しと並行に、命令アドレスタグ8
と命令TLB9からそれぞれ物理アドレスがデータ線1
03,104に読み出される。次のDステージにおい
て、このデータ線103,104の物理アドレスを用い
て、キャッシュヒット判定回路17によりキャッシュヒ
ット判定を行い、その判定情報が制御線105を介して
命令フェッチ制御回路18に送られる。キャッシュヒッ
トの場合、そのままDステージ命令保持回路16より後
続パイプラインステージに命令が転送される。このDス
テージに並行して、次の命令のIFステージが開始し、
アドレス選択回路2により選択されたアドレスで、命令
キャッシュ7から次の命令が読み出される。
【0009】アドレス選択回路2で選択されたアドレス
は、IFステージアドレス保持回路3、Dステージアド
レス保持回路4と順次遷移していく。そして、キャッシ
ュヒットの場合には、Dステージ命令保持回路16の命
令が後続パイプラインステージに転送されるのに伴っ
て、Dステージアドレス保持回路4の当該命令のアドレ
スはそのままシフトアウトし、次の命令のアドレスがI
Fステージアドレス保持回路3から該Dステージアドレ
ス保持回路4に入力される。
【0010】一方、キャッシュヒット判定回路17によ
りキャッシュミスが判明した場合、命令フェッチ制御回
路18は、制御線106,107を介してIFステージ
アドレス保持回路3内の次命令(後続命令)のアドレ
ス、Dステージアドレス保持回路4内の当該キャッシュ
ミスの命令(先行命令)のアドレスを保持状態とする。
その後、命令フェッチ制御回路18は、主記憶6に対し
て制御線121を用いて命令読み出し要求を発行する。
主記憶6から読み出された命令は、命令フェッチ制御回
路18による制御線108の指示により、データ線11
1から命令選択回路13を介してDステージ命令保持回
路16、そして、後続パイプラインステージへと転送さ
れる。この処理と並行に、Dステージアドレス保持回路
4に保持されているアドレスが、信号線112よりアド
レス選択回路2を介してアドレス線101に送られる。
このアドレス線101のアドレスを用いて、主記憶6か
らの命令がデータ線113より命令キャッシュ7に書き
込まれる。同時に、命令アドレスタグ8に物理アドレス
が登録されるが、この処理については省略する。
【0011】次に読み出すべき命令(後続命令)のアド
レスは、IFステージアドレス保持回路3に保持されて
いる。そこで、先行命令を命令キャッシュ7に書き込ん
だ後、再度IFステージにおいて、IFステージアドレ
ス保持回路3のアドレスをアドレス選択回路2からアド
レス線101を通じて命令キャッシュ7に与え、該命令
キャッシュ7から読み出した命令を命令選択回路13を
介してDステージ命令保持回路16に転送する。そし
て、次のDステージにおいて、キャッシュヒット判定回
路17により該命令のキャッシュヒットの判定を行う。
【0012】以下、図3のタイムチャートにより、先行
の命令がキャッシュミスした際の、その後続の命令の従
来の読み出し処理を、該後続の命令がキャッシュヒット
する場合とキャッシュミスする場合について詳述する。
【0013】図3(A)は,先行の命令1がキャッシュ
ミスし、後続の命令2がキャッシュヒットと判定される
場合の、従来のタイムチャートである。サイクル1でI
Fステージにより命令1のキャッシュ読み出しが行われ
(イ)、サイクル2でDステージにより命令1のキャッ
シュミスが判定されると(ロ)、サイクル3〜5の3サ
イクルかけて主記憶6から命令1が読み出される。この
主記憶6から読み出された命令1は、サイクル6でDス
テージ命令保持回路16に保持され(ハ)、次のサイク
ル7で後続パイプラインステージに転送され(ニ)、同
時に命令キャッシュ7への書き込みが行われる(ホ)。
後続の命令2は、サイクル2でIFステージによりキャ
ッシュ読み出しが起動するが(ヘ)、先行の命令1のキ
ャッシュミスに伴ない、アドレスがIFステージアドレ
ス保持回路3に保持されて、命令2の読み出しは、一た
ん中断する。そして、サイクル7で命令1が命令キャッ
シュ7へ書き込まれた後(ホ)、次のサイクル8で再度
IFステージにより、アドレス保持回路3のアドレスを
用いて、命令2のキャッシュ読み出しが行われ(ト)、
サイクル9でDステージにより命令2のキャッシュヒッ
トが判定され(チ)、サイクル10で後続パイプライン
ステージに転送される(リ)。図3(A)より、命令2
の2回のキャッシュ参照により、先行の命令1が後続パ
イプラインステージに転送されてから、後続の命令2が
転送されるまで、2サイクルのペナルティーが生じる。
【0014】図3(B)は、先行の命令1がキャッシュ
ミスし、後続の命令2もキャッシュミスした場合の、従
来のタイムチャートである。サイクル8で、再度命令2
のキャッシュ読み出しが行われ(ト)、サイクル9で該
命令2のキャッシュミスが判定されると(チ)、サイク
ル10〜12の3サイクルで主記憶6から命令2が読み
出される。この命令が、サイクル13でDステージ命令
保持回路16に保持されて(リ)、次のサイクル14で
後続パイプラインステージに転送され(ヌ)、同時に命
令キャッシュ7へ書き込まれる(ル)。このケースの場
合、図3(B)より、命令2の2回のキャッシュ参照に
よる2サイクルのペナルティーに加えて、命令の主記憶
6からの転送による3サイクルのペナルティーが生じて
しまう。
【0015】
【発明が解決しようとする課題】上記したように、従来
のキャッシュを具備するパイプライン処理装置において
は、キャッシュミスを起こして主記憶もしくは2次キャ
ッシュから読み出して後続パイプラインステージに転送
された先行の命令をキャッシュに書き込んだ後、その命
令の後続命令については再度キャッシュを参照している
ため、パイプライン処理に乱れを生じ、該情報処理装置
の性能が低下する問題があった。
【0016】本発明の目的は、キャッシュを具備するパ
イプライン処理装置において、キャッシュミスした先行
命令を後続パイプラインステージに転送した次のサイク
ルに後続命令を同じく後続パイプラインステージに転送
できるようにして、パイプライン処理の乱れを排除する
ことにある。
【0017】本発明の他の目的は、キャッシュミスした
先行命令の後続命令もキャッシュミスした場合でも、従
来のパイプライン処理装置に比べてパイプライン処理の
乱れを軽減することにある。
【0018】
【課題を解決するための手段】上記目的を達成するため
に、本発明のパイプライン処理装置は、先行の第1の命
令とその後続の第2の命令とのアドレスの依存関係を判
定する判定手段を備え、命令フェッチ制御手段では、先
行の第1の命令がキャッシュミスし、かつ、前記判定手
段で該第1の命令とその後続の第2の命令が同一ライン
であると判定された場合、前記第1の命令に対して主記
憶あるいは2次キャッシュから読み出されたラインの第
1の命令を後続パイプラインステージに転送後、引き続
いて前記ラインの第2の命令を後続パイプラインステー
ジに転送することを特徴とする。
【0019】また、本発明のパイプライン処理装置は、
さらに、後続の命令のキャッシュからの読み出し結果を
保持する保持手段を備え、命令フェッチ制御手段では、
先行の第1の命令がキャッシュミスし、その後続の第2
の命令がキャッシュヒットし、かつ、判定手段で第1の
命令と第2の命令が同一ラインでないと判定された場合
には、前記第1の命令に対して主記憶あるいは2次キャ
ッシュから読み出されたラインの第1の命令を後続パイ
プラインステージに転送後、前記保持手段に保持されて
いる命令読み出し結果を第2の命令として後続パイプラ
インステージに転送することを特徴とする。
【0020】また、本発明のパイプライン処理装置で
は、命令フェッチ制御手段は、先行の第1の命令および
その後続の第2の命令がともにキャッシュミスし、か
つ、判定手段で第1の命令と第2の命令が同一ラインで
ないと判定された場合は、前記第1の命令に対して主記
憶あるいは2次キャッシュから読み出されたラインの第
1の命令を後続パイプラインステージに転送するのと並
行に、前記第2の命令に対する前記主記憶あるいは2次
キャッシュの読み出しを開始することを特徴とする。
【0021】
【作用】命令読み出しがキャッシュミスした場合、主記
憶もしくは2次キャッシュからは、キャッシュミスを起
こした命令だけでなく、該命令を含むライン単位(もし
くはブロック単位)で1次キャッシュに転送するのが一
般的である。本発明は、このライン単位でのデータ転送
を利用し、キャッシュミスした命令とその後続命令が同
一ラインであることが判明された場合、後続命令の読み
出しにキャッシュを利用せず、キャッシュミスした先行
の命令に対して主記憶もしくは2次キャッシュから読み
出されたラインを利用して、後続命令を直接後続パイプ
ラインステージに転送する。これにより、先行の命令を
後続パイプラインステージに転送した次のサイクルに後
続命令を同じく後続パイプラインステージに転送するこ
とが可能になる。
【0022】また、本発明は、パイプラインの命令読み
出しステージ(IFステージ)でキャッシュから読み出
される命令を一時的に保持する手段を設け、先行の命令
がキャッシュミスを起こした場合、該先行の命令に対す
る主記憶もしくは2次キャッシュからの読み出し処理が
終わるまで、その後続命令を保持しておく。そして、後
続命令のヒット判定も行っておく。これにより、該後続
命令がキャッシュヒットで、かつ、キャッシュミスした
先行の命令と該後続命令が同一ラインでない場合、先行
の命令を主記憶もしくは2次キャッシュから読み出して
後続パイプラインステージに転送した次のサイクルにお
いて、再度キャッシュを参照することなく保持しておい
た後続命令を後続パイプラインステージに転送すること
が可能になる。
【0023】また、本発明では、先行の命令がキャッシ
ュミスを起こした場合、その後続命令がキャッシュヒッ
トかキャッシュミスかは、先行の命令に対する主記憶も
しくは2次キャッシュからの読み出しが終わるまでに判
明している。したがって、後続命令を再度読み出してヒ
ット判定する必要はない。これにより、キャッシュミス
した先行の命令と後続命令が同一ラインでなく、かつ、
後続命令もキャッシュミスの場合、主記憶あるいは2次
キャッシュから読み出した先行の命令を後続パイプライ
ンステージに転送するのと並行して、主記憶あるいは2
次キャッシュに対して該後続命令の読み出し要求を発す
ることができる。
【0024】
【実施例】以下、本発明の一実施例について図面により
説明する。
【0025】図1に、本発明に係るパイプライン処理装
置の一実施例の構成図を示す。図2と同様に、図1でも
命令の読み出し処理にかかわるIFステージとDステー
ジに関係する部分の構成のみを示し、図2と同一部分に
は同一の符号を用いる。同一ブロック判定回路5はDス
テージアドレス保持回路4内の先行命令のアドレスとI
Fステージアドレス保持回路3内の後続命令のアドレス
の依存関係を検出する回路である。該同一ブロック判定
回路5の判定情報は制御線114より命令フェッチ制御
回路18へ送られる。キャッシュデータ保持回路10、
アドレスタグデータ保持回路11、TLBデータ保持回
路12は、各々、命令キャッシュ7、命令アドレスタグ
8、命令TLB9から読み出される命令、物理アドレス
を保持する回路である。命命選択回路13は、図1の場
合、命令キャッシュ7から読み出された命令、キャッシ
ュデータ保持回路10に保持されている命令、あるいは
主記憶6から読み出された命令のいずれかを選択する回
路となる。該命令選択回路13では、通常は命令キャッ
シュ7の出力を選択し、命令フェッチ制御回路18から
の制御線108による指示でキャッシュデータ保持回路
10あるいは主記憶6の出力を選択する。アドレスタグ
選択回路14は、命令アドレスタグ8あるいはアドレス
タグデータ保持回路11の物理アドレスを選択する回路
であり、通常は命令アドレスタグ8の方を選択し、命令
フェッチ制御回路18からの制御線109による指示で
アドレスタグデータ保持回路11の方を選択する。TL
B選択回路15は命令TLB9あるいはTLBデータ保
持回路12の物理アドレスを選択する回路であり、通常
は命令TLB9の方を選択し、命令フェッチ制御回路1
8からの制御線110による指示でTLBデータ保持回
路12の方を選択する。
【0026】IFステージにおいて、プログラムカウン
タ1により求めたアドレスを、アドレス選択回路2及び
IFステージアドレス保持回路3を介してアドレス線1
01に出力することにより、命令キャッシュ7からの命
令読み出しが行われる。命令キャッシュ7から読み出さ
れた命令は、データ線102、命令選択回路13よりD
ステージ命令保持回路16に格納される。この命令キャ
ッシュ7からの命令読み出しと並行して、命令アドレス
タグ8と命令TLB9からそれぞれ物理アドレスがデー
タ線103,104に読み出される。なお、命令キャッ
シュ7、命令アドレスタグ8、命令TLB9から読み出
された命令、物理アドレスは、データ線117,11
8,119を介してキャッシュデータ保持回路10、ア
ドレスタグデータ保持回路11、TLBデータ保持回路
12にも保持されるが、これら保持回路10,11,1
2の働きについては後述する。
【0027】命令アドレスタグ8、命令TLB9からデ
ータ線103,104に読み出された物理アドレスは、
それぞれアドレスタグ選択回路14、TLB選択回路1
5を介してキャッシュヒット判定回路17に送られ、D
ステージにおいてキャッシュのヒット判定が行われ、そ
の判定情報が制御線105より命令フェッチ制御回路1
8に送られる。キャッシュヒットの場合には、そのまま
Dステージ命令保持回路16より後続パイプラインステ
ージに命令が転送される。
【0028】一方、キャッシュヒット判定回路17によ
りキャッシュミスが判明した場合、命令フェッチ制御回
路18は、制御線106,107を介してその時点のI
Fステージアドレス保持回路3、Dステージ命令保持回
路4のアドレスを保持する。即ち、Dステージ命令保持
回路4にはキャッシュミスした命令のアドレスが保持さ
れ、IFステージアドレス保持回路3には該キャッシュ
ミスした命令の次の命令(後続命令)のアドレスが保持
される。また、この時、データ線117,118,11
9を介して、キャッシュデータ保持回路10には、該キ
ャッシュミスした命令の後続命令の命令キャッシュ7の
参照結果、アドレスタグデータ保持回路11には命令ア
ドレスタグ8からの物理アドレス、TLBデータ保持回
路12には命令TLB9からの物理アドレスがそれぞれ
保持されることになる。
【0029】キャッシュミスの場合、命令フェッチ制御
回路18は制御線121を用いて主記憶6に命令読み出
し要求を発行する。主記憶6からの読み出しはライン単
位(これはブロック単位でもよい)で行われ、キャッシ
ュミスした命令のラインがデータ線111に出力され
る。この主記憶6の読み出し中に、IFステージアドレ
ス保持回路3およびDステージアドレス保持回路4に保
持されているアドレスを用いて、同一ブロック(ライ
ン)判定回路5によりキャッシュミスした命令とその後
続命令が同一ラインであるか判定する。判定結果は制御
線114により命令フェッチ制御回路18に送られる。
また、先行命令がキャッシュミスの場合、命令フェッチ
制御回路18からの制御線109,110による指示
で、アドレスタグ選択回路14はアドレスタグデータ保
持回路11の物理アドレスを選択し、TLB選択回路1
5はTLBデータ保持回路12の物理アドレスを選択す
る。キャッシュヒット判定回路17は、該選択回路1
5,16で選択された物理アドレスのキャッシュヒット
判定を行い、判定情報を制御線105により命令フェッ
チ制御回路18に送る。この時の判定情報は、キャッシ
ュミスした命令の後続命令のキャッシュヒット判定を示
している。
【0030】主記憶6から読み出されたライン中のキャ
ッシュミスに対応した命令は、命令フェッチ制御回路1
8からの制御線108による指示で、データ線111か
ら命令選択回路13を介してデータ線120、Dステー
ジ命令保持回路16、そして、後続パイプラインステー
ジに転送される。この処理と並行に、Dステージアドレ
ス保持回路4に保持されているキャッシュミスした命令
のアドレスが、アドレス線112よりアドレス選択回路
2、IFステージアドレス保持回路3を介してアドレス
線101に送られる。このアドレス線101のアドレス
を用いて、主記憶6から読み出されたラインがデータ線
113より命令キャッシュ7に書き込まれる。
【0031】キャッシュミスした命令(先行命令)を後
続パイプラインステージに転送した後、次の命令(後続
命令)を後続パイプラインステージに転送することにな
るが、この時、命令フェッチ制御回路18での制御は、
同一ブロック判定回路5およびキャッシュヒット判定回
路17の判定結果により3つのケースに分かれる。図4
に、判定回路5,17の判定結果と命令フェッチ制御回
路18が行う処理との対応関係を示す。
【0032】図5(A),(B),(C)は各ケースの
タイムチャートを示したもので、以下、これに従って図
1の実施例の各ケースの動作を説明する。
【0033】図5(A)は、同一ブロック判定回路5に
より、キャッシュミスした命令(先行命令)とその後続
命令が同一ラインであることが判明した場合(図4のケ
ース1)のタイムチャートである。図5(A)におい
て、キャッシュミスした先行の命令1に対応するサイク
ル7までの動作は、図3(A)と同じである。このサイ
クル7のIFステージにおいて、主記憶6から読み出さ
れた命令1のラインが命令キャッシュ7に書き込まれる
のと並行して(ホ)、同一のサイクル7のDステージ
で、命令フェッチ制御回路18は制御線108により、
命令選択回路13に対してデータ線111の選択を指示
する。これにより、主記憶6から読み出された命令1
(先行命令)と同一ラインの命令2(後続命令)が、直
接データ線111から命令選択回路13、データ線12
0を介してDステージ命令保持回路16に転送される
(ト)。即ち、サイクル2における命令キャッシュ7か
らの命令2の読み出し結果は無視する。Dステージ命令
保持回路16の命令2は、次のサイクル8において後続
パイプラインステージに転送される(チ)。このように
して、キャッシュミスを起こした先行命令の命令1が後
続パイプラインステージに転送されるサイクルの次のサ
イクルに、後続の命令2を同様に後続パイプラインステ
ージに転送でき、パイプラインの乱れが排除される。
【0034】図5(B)は、同一ブロック判定回路5に
より、キャッシュミスした先行命令とその後続命令が同
一ラインでないことが判明し、かつ、キャッシュヒット
判定回路17により、後続命令がキャッシュヒットして
いることが判明した場合(図4のケース2)のタイムチ
ャートである。図5(B)において、キャッシュミスし
た先行の命令1に対応する動作は、図3(A)や図5
(A)と同じである。後続の命令2は、サイクル2で命
令キャッシュ7から読み出されるが(ヘ)、先行の命令
1がキャッシュミスということでキャッシュデータ保持
回路10に保持されたままとなる。同様に、命令アドレ
スタグ8および命令TLB9から読み出された物理アド
レスは、それぞれアドレスタグデータ保持回路11、T
LBデータ保持回路12に保持される。次のサイクル3
において、アドレスタグデータ保持回路11およびTL
Bデータ保持回路12の物理アドレスがアドレスタグ選
択回路14、TLB選択回路15を介してキャッシュヒ
ット判定回路17に送られ、命令2のキャッシュヒット
が判明する(ト)。また、このサイクル3では、同一ブ
ロック判定回路5により、命令2が先行の命令1と同一
ラインでないことが判明する。その後、サイクル7にお
いて、命令1が後続パイプラインステージに転送される
と共に(ニ)、命令キャッシュ7に書き込まれる
(ホ)。このサイクル7において、命令フェッチ制御回
路18は、制御線108により、命令選択回路13に対
してキャッシュデータ保持回路10の選択を指示する。
これにより、キャッシュデータ保持回路10に保持され
ていた命令2が、命令選択回路13、データ線120を
介してDステージ命令保持回路16に転送され(チ)、
次のサイクル8で後続パイプラインステージに転送され
る(リ)。この場合も、ケース1と同様に、キャッシミ
スを起こした先行命令の命令1が後続パイプラインステ
ージに転送されるサイクルの次のサイクルに、後続命令
の命令2を後続パイプラインステージに転送でき、パイ
プラインの乱れが排除される。
【0035】図5(C)は、同一ブロック判定回路5に
より、キャッシュミスした先行命令とその後続命令が同
一ラインでないことが判明し、かつ、キャッシュヒット
判定回路17により、後続命令もキャッシュミスしてい
ることが判明した場合(図4のケース3)のタイムチャ
ートである。図5(B)と同様に、サイクル2で、命令
キャッシュ7から命令2に対する読み出しが行われる
(ヘ)。次のサイクル3で、キャッシュヒット判定回路
17により、この命令2のキャッシュミスが判明する
(ト)。判定のやり方は図5(B)の場合と同様であ
る。また、このサイクル3では、同一ブロック判定回路
5により、命令2が先行の命令1と同一ラインでないこ
とも判明する。その後、キャッシュミスした先行の命令
1に対する処理が行われる間、後続の命令2に対する処
理は待たされる。サイクル7において、命令1が後続パ
イプラインステージに転送され(ニ)、かつ、命令キャ
ッシュ7に書き込まれる(ホ)。この同じサイクル7に
おいて、命令フェッチ制御回路18は制御線121によ
り、主記憶6に対して後続命令2の読み出し要求を発行
する(チ)。これは、既に後続命令2のキャッシュミス
が判明していることにより可能となるものである。サイ
クル8〜10の3サイクルかける主記憶6から命令2の
ラインが読み出され、サイクル11で命令2がデータ線
111、命令選択回路13、データ線120を介してD
ステージ命令保持回路16に設定され(リ)、サイクル
12で、後続パイプラインステージに転送される
(ヌ)。また、このサイクル12では、主記憶6から読
み出された命令2のラインがデータ線113を介して命
令キャッシュ7に書き込まれる(ル)。
【0036】図3と図5を比較すれば明らかなように、
図5の(A),(B),(C)いずれにおいても、図3
の場合のように、キャッシュミスを起こして主記憶(も
しくは2次キャッシュ)から転送された先行命令をキャ
ッシュに書き込んだ後、後続命令について再度キャッシ
ュを参照するために生じていた2サイクルのペナルティ
が排除されている。
【0037】以上、本発明の実施例を説明した。そこで
は、命令フェッチアドレスを論理アドレスとしたが、こ
れは実アドレスであってもよい。この場合、図1の命令
TLB9は不要となり、TLBデータ保持回路12を命
令フェッチアドレス保持回路として、アドレス線101
のアドレス(実アドレス)を該命令フェッチアドレス保
持回路の入力とし、その出力とアドレス線101の直接
のアドレスとを選択回路15の入力とすればよい。
【0038】また、実施例の説明では、命令フェッチ論
理アドレスに対応する実アドレスが命令TLB9に登録
されていない場合の処理は省略した。この場合は、いわ
ゆるアドレス変換処理を行うことになるが、これは本発
明に直接関係するところではない。
【0039】
【発明の効果】以上の説明から明らかなように、本発明
のキャッシュを具備するパイプライン処理装置において
は、次のような効果が得られる。
【0040】(1) 命令の読み出しがキャッシュミスし
た場合、主記憶等からはキャッシュミスを起こした命令
だけでなく、該命令を含むライン(ブロック)が読み出
されることを利用して、キャッシュミスした先行の命令
と後続命令が同一ラインの場合、該先行の命令のために
主記憶等から読み出されたラインを後続命令の転送にも
用いることにより、キャッシュミスした先行の命令を後
続パイプラインステージに転送した次のサイクルに後続
命令を同じく後続パイプラインステージに転送すること
が可能になり、パイプラインを乱すことなく処理を続行
することができる。
【0041】(2) パイプラインの命令読み出しステー
ジで、既に後続命令のアドレスによりキャッシュから読
み出された命令を保持し、引き続くステージで該命令の
ヒット判定をしておくことにより、キャッシュミスした
先行の命令と後続命令が同一ラインでなく、かつ、後続
命令がキャッシュヒットの場合、キャッシュミスした先
行の命令を後続パイプラインステージに転送した次のサ
イクルに、保持しておいた後続命令を同じく後続パイプ
ラインステージに転送することが可能になり、パイプラ
インの乱れを排除することができる。
【0042】また、キャッシュミスした先行の命令と後
続命令のキャッシュ参照のアドレスが一致している場合
には、主記憶等からライン単位でキャッシュに書き込む
時、後続命令は上書きされキャッシュから失われる。そ
のため、従来の方式では必ず後続命令もキャッシュミス
し、後続命令によるライン転送が発生する。しかし、本
発明の構成では、既にキャッシュから読み出した後続命
令を保持する手段を有し、保持した後続命令を後続パイ
プラインステージに転送するため、従来のような後続命
令によるライン転送は生ぜず、性能低下を防ぐことがで
きる。
【0043】(3) キャッシュミスした先行の命令に対
する主記憶等からのライン転送の終了時点では、後続命
令がキャッシュヒットかどうか判明していることを利用
し、キャッシュミスした先行の命令と後続命令が同一ラ
インでなく、かつ、後続命令もキャッシュミスの場合、
先行の命令を後続パイプラインステージに転送するのに
並行して、主記憶等に該後続命令に対する読み出し要求
を発することが可能になり、パイプラインの乱れを必要
最小限にとどめることができる。
【図面の簡単な説明】
【図1】本発明による情報処理装置の主要部の一実施例
の構成図を示す図である。
【図2】従来技術における情報処理装置の主要部の構成
図である。
【図3】図2の動作を説明するタイムチャートである。
【図4】図1における命令フェッチ制御回路が行う処理
の組合せを示す図である。
【図5】図1の動作を説明するタイムチャートである。
【符号の説明】
1 プログラムカウンタ 2,13,14,15 選択回路 3,4 ステージ保持回路 5 同一ブロック判定回路 6 主記憶もしくは2次キャッシュ 7 命令キャッシュ 8 命令アドレスタグ 9 命令TLB 10,11,12 データ保持回路 16 Dステージ命令保持回路 17 キャッシュヒット判定回路 18 命令フェッチ制御回路 100 ステージ制御回路

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 命令の実行を複数のステージに分割し、
    複数の命令をオーバラップさせてパイプライン処理し、
    かつ、命令の読み出しを1次キャッシュメモリ(以下、
    単にキャッシュという)から行い、キャッシュミスの場
    合に主記憶あるいは2次キャッシュメモリ(以下、単に
    主記憶という)から該当ラインを読み出す情報処理装置
    において、 先行の第1の命令とその後続の第2の命令とのアドレス
    の依存関係を判定する判定手段と、 先行の第1の命令がキャッシュミスし、かつ、前記判定
    手段で該第1の命令とその後続の第2の命令が同一ライ
    ンであると判定された場合、前記第1の命令に対して主
    記憶から読み出されたラインの第1の命令を後続パイプ
    ラインステージに転送後、引き続いて前記ラインの第2
    の命令を後続パイプラインステージに転送する制御手段
    と、を有することを特徴とする情報処理装置。
  2. 【請求項2】 請求項1記載の情報処理装置において、 後続の命令のキャッシュからの読み出し結果を保持する
    保持手段を備え、 前記制御手段は、先行の第1の命令がキャッシュミス
    し、その後続の第2の命令がキャッシュヒットし、か
    つ、前記判定手段で第1の命令と第2の命令が同一ライ
    ンでないと判定された場合には、前記第1の命令に対し
    て主記憶から読み出されたラインの第1の命令を後続パ
    イプラインステージに転送後、前記保持手段に保持され
    ている命令読み出し結果を第2の命令として後続パイプ
    ラインステージに転送することを特徴とする情報処理装
    置。
  3. 【請求項3】 請求項1、2記載の情報処理装置におい
    て、 前記制御手段は、先行の第1の命令およびその後続の第
    2の命令がともにキャッシュミスし、かつ、前記判定手
    段で第1の命令と第2の命令が同一ラインでないと判定
    された場合は、前記第1の命令に対して主記憶から読み
    出されたラインの第1の命令を後続パイプラインステー
    ジに転送するのと並行に、前記第2の命令に対する前記
    主記憶の読み出しを開始することを特徴とする情報処理
    装置。
JP7020048A 1995-02-08 1995-02-08 情報処理装置 Pending JPH08212068A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7020048A JPH08212068A (ja) 1995-02-08 1995-02-08 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7020048A JPH08212068A (ja) 1995-02-08 1995-02-08 情報処理装置

Publications (1)

Publication Number Publication Date
JPH08212068A true JPH08212068A (ja) 1996-08-20

Family

ID=12016184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7020048A Pending JPH08212068A (ja) 1995-02-08 1995-02-08 情報処理装置

Country Status (1)

Country Link
JP (1) JPH08212068A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007207240A (ja) * 2006-02-03 2007-08-16 Internatl Business Mach Corp <Ibm> データ・ラインのための自己プリフェッチl2キャッシュ機構
US8756404B2 (en) 2006-12-11 2014-06-17 International Business Machines Corporation Cascaded delayed float/vector execution pipeline

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007207240A (ja) * 2006-02-03 2007-08-16 Internatl Business Mach Corp <Ibm> データ・ラインのための自己プリフェッチl2キャッシュ機構
US8756404B2 (en) 2006-12-11 2014-06-17 International Business Machines Corporation Cascaded delayed float/vector execution pipeline

Similar Documents

Publication Publication Date Title
US5394530A (en) Arrangement for predicting a branch target address in the second iteration of a short loop
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
US20020078330A1 (en) Computer system for executing branch instructions
US4719570A (en) Apparatus for prefetching instructions
KR910008410B1 (ko) 마이크로코드 판독 제어 시스템
US7191319B1 (en) System and method for preloading cache memory in response to an occurrence of a context switch
US6292866B1 (en) Processor
JPH08212068A (ja) 情報処理装置
US5724533A (en) High performance instruction data path
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH04205448A (ja) 情報処理装置
JP2535593B2 (ja) 情報処理装置
JP2591325B2 (ja) 分岐制御装置
JP2596639B2 (ja) 先行制御方式
JP3476314B2 (ja) マイクロプロセッサ
JP3493110B2 (ja) 高速分岐処理装置
JP3558481B2 (ja) データ処理装置
JPH0248733A (ja) 情報処理装置
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JP4049490B2 (ja) 情報処理装置
JPH0646381B2 (ja) 命令取出し装置
JP3037863B2 (ja) 投機的実行制御機能を有するプロセッサ
JPH01296345A (ja) 情報処理装置
JPH086853A (ja) 記憶制御方法
JPH05225058A (ja) 記憶制御装置