JPH02224023A - 命令ストリーム機能を有するプロセサ制御型インターフェイス - Google Patents

命令ストリーム機能を有するプロセサ制御型インターフェイス

Info

Publication number
JPH02224023A
JPH02224023A JP1263130A JP26313089A JPH02224023A JP H02224023 A JPH02224023 A JP H02224023A JP 1263130 A JP1263130 A JP 1263130A JP 26313089 A JP26313089 A JP 26313089A JP H02224023 A JPH02224023 A JP H02224023A
Authority
JP
Japan
Prior art keywords
instruction
cache
block
main memory
during
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
JP1263130A
Other languages
English (en)
Inventor
Thomas J Riordan
トーマス ジェイ.リオードン
Paul S Ries
ポール エス.リース
Edwin L Hudson
エドウィン エル.ハドソン
Earl A Killian
アール エイ.キリアン
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.)
MIPS Computer Systems Inc
Original Assignee
MIPS Computer Systems Inc
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 MIPS Computer Systems Inc filed Critical MIPS Computer Systems Inc
Publication of JPH02224023A publication Critical patent/JPH02224023A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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 or look ahead
    • 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 or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 技術分野 本発明は、大略、デジタルプロセサに関するものであっ
て、更に詳細には、プロセサと、命令キャッシュと、メ
インメモリとの間のプロセサnil 御型インターフェ
イスに関するものである。
従来技術 ]ンビュータアーキテクチュアにおける新たな展開は、
RISC(減少型命令組コンピュータ)装置の導入であ
り、その場合、理想的には、各動作サイクルごとに命令
が発生される。RISCマシンの効率性の秘訣は毎秒非
常に多数の命令を実行する能力があるという事である。
したがって、命令処理に対する遅れを取り除くためにこ
れらのマシンの構成を改良するべくかなりの努力が成さ
れている。
高処理速度を維持するためにサイクル毎に一個の割合で
命令格納装置から命令をアクセスすることが必要である
。1サイクルで単一の命令をアクセスすることが可能な
特別の高速メモリ装置を入手することが可能である。し
かしながら、このような装置は高価であり、且つ与えら
れたプログラム中の命令の一部を格納するための命令キ
ャッシュとして一般的に使用されている。これら命令の
残部はメインメモリ内に格納される。
該プロセサが該キャッシュ内に格納されていない命令を
参照すると、「キャッシュミス」が発生する。この時点
でプロセサは停止し、・一方参照された命令がキャッシ
ュ再充填動作期間中にメインメモリからキャッシュへ書
き込みが行われねばならない。
通常1ザイクルでメインメモリから単一の命令をアクセ
スすることはできない。L7かしながら、「メモリ待ち
時間」と呼ばれる初期的なセットアツプ時間の後にサイ
クル毎に1個の命令をアクセスするために使用されるペ
インモード特徴を有している場合がある。この待ち時間
は、キャッシュミスが発生する毎に発生し、11つメイ
ンメモリは新たにアクセスされ且つメモリシステノ・の
ハードウェア制限である。
例えばプログラム内の分岐の発生等の例外的な場合を除
いて、命令が逐次的メモリ位置からアクセスされるよう
にほとんどのプログラムは設計されている。したが−7
で、5.えられた参照がキャッシュをミスすると、持続
の参照もキャッシュをミスする蓋然性がある。1.たが
って、キャッシュは1、ミスした命令を有するメインメ
モリからアクセスした1ブロックの命令で再充填され、
Lまたがってブロック内の爾後の命令をキャッシュから
逐次的にアクセスすることが可能となる。又、1ブロッ
クの命令がアクセスされると、初期的な待ち時間の後に
ザイクル当り1個の命令の割合でキャッシュが再充填さ
れる。
【2かしながら再充填待ち時間でキャッシュのブロック
再充填を行う期間中プロセサは停止されねばなl)ず、
すなわち、その停止に時間の長さはメインメモリ待ち時
間とブロック内のワード数と1ザイクルの期間との積と
の和に笠しい。;−たがって、ブロック命令キャッシュ
再充填動作によって発生される再充填待ち時間は、毎秒
処理される命令の数を減少させる。
したがって、処理速度を著しく減少させることなしにキ
ャッシュを効率的に再充填するだめの方式が当分野にお
いて必要とされている。
[1的 本発明は、以上の点に鑑みなされたものであって、」二
連した如き従来技術の欠点を解消し7、キャッシコ再充
填動作明1は中にメインメモリから命令キャッシュへ転
送される処理命令を与える事により命令キャッシュを使
用するプロセサの全体的な命令処理速度を向上すること
を[1的とする。
構成 本発明の一側面によれば、キャッシュおよび命令ストリ
ーム化動作のブロック再充填が、命令参照がキャッシュ
をミスした場合に開始される。キャッシュ再充填動作期
間中にミスI7た命令がメモリから読取られると、それ
はキャッシュに書き込まれ11つ同一のサイクル期mj
中にプロセサによプてロードされる。ブロック内の爾後
の命令がキャッシュへ書き込まれl−つ爾後の命令スト
リーlえ化サイクル期間中に処理される。キャッジ1か
らの命令は、ブロック再充填および命令ス!・リーム化
動作の最後のザイクル期間中にアクセスされ、且つブロ
ック再充填の完了に続く第一サイクル期間中に処理され
る。
本発明の別の側面によれば、プロセリ−が、パイプライ
ン制御ユニットによって制御される多段パイプライン、
および高および低アドレスフィールドを具備するメイン
メモリアト1/スを発生ずるアドレスユニット(AU)
を有している。比較器が、AUによって発生された高ア
ドレスフィールドとキャッシュからアクセスされたT 
A Gフ、f−ルドとを比較する。これら二つのフィー
ルドが一致しない場合には、キャッシュミスが発生し、
パイプラインが停+Lされ、且つキャッシュは高アドレ
スフィ・−ルドによって識別されるメ・インメモリ内の
ペインから読取られたミスした命令を包含する1ブロッ
クの命令で再充填される。
本発明の更に別の側面によれば、低アドレスフィ−ルド
が格納され且つブロックのメインメモリアドレスの低ア
ドレスフィールドと比較される。
これらのフィールドが同一であると、メインメモリから
読み取られた命令がキャッシュへ書き込まれる場合に、
パイプラインの第一段へ[コー  ドされる。ブロック
内の残りの命令は、それらがキャッシュへ書込まれる場
合に、処理される。
本発明の更に別の側面によれば、例えば分岐又はデータ
キャッシュミス等の所定の事象が発生するとストリーム
化動作が停止され、且つその後にキャッシュ再充填動作
が再開始される。
実施例 以下、添付の図面を参考に、本発明の具体的実施の態様
について詳細に説明する。なお、添付の図面において、
対応する構成要素には同一の参照番号を付しである。第
1図は、本発明の好適実施例のハイレベルブロック図で
ある。
第1図において、プロセサ10、命令キャッシュし、お
よびメモリインターフェイス14がデータバス(DBU
S)16、低アドレスバス(LBUS)18、タグバス
(TBUS)20、制御バス(CBUS)22、および
IADRBUS24へ、それぞれのデータボート、アド
レスボート、タグボート、および制御ボートによって接
続されている。LBUS18およびIADRBUS24
は透明ラッチ26によって結合されている。
通常動作において、各サイクル期間中、プロセサ10は
次のサイクル期間中に処理されるべき与えられた命令の
物理的メインメモリ命令アドレスを発生する。各アドレ
スは高および低アドレスフィールドを有している。低ア
ドレスフィールドはLBUS18上へドライブされ、且
つIキャッシュ12のアドレス空間を画定し、各LBU
Sアドレスはキャッシュ12の1本のラインをアクセス
する。
LBUS18上のアドレスによってアクセスされたキャ
ッシュ12内のメモリ位置において格納されるキャッシ
ュラインは、TAGフィールドおよびDATAフィール
ドを有している。このキャッシュはメインメモリよりも
かなり小さく、且つ1組のメインメモリ位置が各キャッ
シュラインヘマップされる。本実施例においては、同一
の低アドレスフィールドを有する全てのメインメモリ位
置は、低アドレスフィールド内のビットによってアクセ
スされるキャッシュラインヘマップされる。
キャッシュライン内に格納されるワードを個別的に識別
するために、ワードアドレスの高次ビットがキャッシュ
ラインのTAGフィールド内に格納される。
キャッシュラインがLBUS18上の低アドレスフィー
ルドによってアクセスされると、TAGフィールドがT
BUS20上に配置され、且つそのデータフィールドが
DBUS16上に配置される。TAGフィールドがプロ
セサ10によって発生されるアドレスの高アドレスフィ
ールドと一致すると、プロセサ10によって発生される
メインメモリアドレスによりアドレスされる参照命令が
該キャッシュから読取られたラインのデータフィールド
内に包含される。TAGフィールドが一致しない場合、
参照命令はキャッシュ内に格納されずキャッシュミスが
発生する。
キャッシュミスの場合、高および低フィールドを有して
おり、プロセサ10によって発生されるメインメモリア
ドレスが、TB−US20およびLBUS18を介して
メモリインターフェイス14へ転送され、且つプロセサ
は停止モードになって命令処理を停止する。この転送さ
れたアドレスは、メインメモリ内のミスした命令の位置
を特定するメインメモリアドレスとして機能する。
メインメモリアドレスがメインメモリインターフェイス
14において受は取られると、ミスした命令を包含する
1ブロックの命令のページモードアクセスがセットアツ
プされる。該ブロックの境界は予じめ決定されており、
且つ、一般的には、ミスした命令はそのブロックの第一
位置を占有するものではない。メモリ待ち時間期間の後
に、該ブロック内の1個の命令がサイクル毎にメインメ
モリからアクセスされ且つキャッシュ12へ書き込まれ
る。該ブロックのメインメモリアドレスは、メモリイン
ターフェイス14によって発生され、且つ各命令アドレ
スの高アドレスビットはキャッシュラインのTAGフィ
ールド内に書き込まれる。
したがって、キャッシュ12はそのブロックの命令でレ
フィルすなわち再充填される。
上述した如く、通常、メモリ内の逐次的な位置に格納さ
れる命令は逐次的に処理される。本発明によれば、命令
ブロックが、キャッシュ再充填動作期間中に、メインメ
モリからDBUS ]、6へ逐次的に転送される。該ブ
ロック内の命令は、L BυS18上のメインメモリア
ドレスの低ビットによってアドレスされるキャッシュ格
納装置へ書き込まれる。プロセサ10は、与えられた命
令の前の命令がキャッシュ12へ書き込まれる間に、レ
フィルすなわち再充填状態となる。
ミスした命令がすえられたサイクル期間中にメインメモ
リからDBUS16へ転送される場合、プロセサ10は
フィックスアップすなわち整理状態となり、1つ与えら
れたサイクル期間中にその命令をロードし、次のサイク
ル期間中の処理の再開のためのi11!備を行う。次い
て、プロセサは命令ストリーム状態となり、その場合、
命令がキャッシュ12へ書き込まれる一方処理される。
その後に、メインメモリから命令が読取られ、キャッシ
ュ12へ書き込まれ、11.一つ該ブロック内の全ての
命令がメインメモリからアクセスされるまで、各引き続
くサイクル期間中にプロセサ10によって処理される。
該ブロック内の最後の命令は、最後のストリームサイク
ル期間中にアクセスされる。
更に、最後のストリーム化サイクル期間中に、該プロセ
サは次のサイクルの期間中に処理されるべき命令のアド
レスを発生する。この命令は、別のキャッシュミスが発
生されない限り、該キャッシュからアクセスされる。
(7たがって、本システムすなわち方式は、後にブロッ
クキャッシュ再充填動作が続いて行われるキャッシュミ
スの場合に必要とされるプロセサ停止に起因する再充填
待ち時間の期間を減少させる。
本方式の動作をより完全に説明するために以下の用語を
使用する。1サイクルはプロセサ10にり・Iする基本
的な命令処理単位であり、■つ全てのサイクルは稼動(
ラン)又は停止(スト−ル)サイクルの何れかとして類
分けされる。1サイクルの前十期間中に発生するトラン
ズアクション(すなわち種々の動作)はフェイズ1トラ
ンズアクシヨンと呼称され、一方後半期間中に発生ずる
ものはフェイズ2トランズアクションと呼称する。デー
タ転送が発牛するか否かにかかわらず、各稼動サイクル
は、それと関連する命令−データ(ID)対を有するも
のと考える。
稼動サイクルにおいて前方への進行が行われ、1つ1個
の命令がパイプライン30から回収される。キャッシュ
12からの命令が処理される規則的な稼動サイクルに加
えてメインメモリからの命令が処理される場合に再充填
稼動(ストリーム化)サイクルが発生する。
三つのタイプの停止サイクル、すなわち待機(wa t
 t) 、再充填(refill)、および整理(fi
xup)がある。待機サイクル期間中に、キャッシュ動
作は発生しない。メインメモリ読取り期間中に再充填サ
イクルが発牛し、キャッシュ12の再充填を行うために
使用される。次の稼動サイクルの直前において停止の最
後のサイクル期間中に整理サイクルが発生し、パイプラ
イン30を再開始するために使用される。
プロセサの稼動モードおよび関連するパストランズアク
ションの期間中における命令の処理を第2図を参照しで
説明する。このパイプラインは5段の深さであり、且つ
命令フェッチ、1ノジスタフエツチ、ALU、メモリア
クセス、書き戻しくWriteback)に区分されて
いる。第2図は、パイプラインの水H11方向スライス
を図示しており、5つのサイクル(A−B)に亘っての
1個の命令の実行を示している。
サイクルA1期間中、現在の命令のアドレスが物理的ア
ドレスへ翻訳され1」、っ→J゛イクルA2期間中にL
 B U S 18へ転送される。キャッジ、212か
らアクセスされたラインが、サイクルB1期間中に、D
BUS17およびTBUS20へ転送される。更に、サ
イクル82期間中、命令仮想アドレスの完全な翻訳が実
施され、且つTAGフィールドが命令アドレスの高次ビ
ットと比較され、該参照がキャッシュ12をミスしたか
否かを決定する。
サイクルB2期間中、その命令がデコードされ、■1つ
フェッチされるべき次の命令のアドレスが計算される。
この時点において、プログラムが非逐次的アドレスへ分
岐するか否かが分かっている。
パイプライン処理の残部は標準的なものである。
第3図は、命令ストリーム化を実施するのに必要なプロ
セサ回路のブロック図である。図示した種々のデジタル
要素は、標準的な機能的ユニットであり、それらの内部
回路は本発明にとって重要なものではない。
第3図において、アドレスユニット(AU)30が、内
部低アドレスバス34によって、翻訳ルックアサイドバ
ッファ(TLB)32へ結合されている。TLB32に
よって発生される物理的アドレスの低アドレスビットが
、物理的アドレス内部低バス(TL I B)40によ
って、低ラッチ(LL)35およびLBUSmux38
の第2入力端へ転送される。LL40の2個のLSBは
、−数比較器42の第一人力ボートおよびMUX43の
第一入力端へ結合されている。カウンタ44の出力端は
MC42の第二人力ボートおよびMUX43の第一人力
ボートへ半サイクル遅延要素によって結合されている。
MUX43の出力端は、MUX38の第一人力ボートの
LSB入力端へ結合されている。L !、 40のMS
Bは、バス48によって、LBUSmux38の第一人
力ボートのMSB入力端へ結合されている。LBUSm
ux38の出力ボートはLBUS18へ結合されている
♂ フェイズ2トランズアクション期間中に、LBUSへの
データキャッシュアドレスの駆動回路は図示していない
TLB32によって発生された物理的アドレスの高アド
レスビットが物理的アドレス内部高バス(PIHB)5
6によって、第一出力ドライバ54を介して、高ラッチ
(HL)50、TBUSmux52の第一入力端、およ
びタグ比較器(TC)53の第一入力端へ転送される。
HL50の出力端は、TBUSmux52の第二人力端
へ結合されている。TBUSmux52の出力端は、第
二出力ドライバ57によってTBUS20へ結合されて
おり、且つTC53の第二人力端は、第一人力ドライバ
60によってTBUS20へ結合されている。
DBUSは、パイプライン制御ユニット(PCU)およ
び命令デコーダ62の入力端へ結合されると共に、実行
ユニッ) (EU)64へ結合されている。
状態マシン66は、TC58によって発生されるミス信
号、MC42によって発生される一致信号、CN T 
44 +、:よって発生されるCNT信号、およびメモ
リインターフェイス14によって発生されるRdBus
y信号を受は取る。更に、状態マシン66は、AU30
、MUX52、PLC62、EU64の制御ボートにお
いて受は取られるRun*信号(R)を発生し、PLC
62およびEU64によって受けとられる整備(fix
up)信号(FU)を発生し、MUX38、LL36、
ドライバ52.54.60(1サイクル遅延されたM 
e m Rb ) 、およびHL50によって受けとら
れるMemoryRb本(MR)信号を発生する。状態
マシン66は、更に、Fixup2信号も発生する。
RdBusy信号はCNT44の制御ボートにおいて受
は取られ、Miss(ミス)又はMemRd信号はLL
およびHL36および50の制御ボートで受は取られ、
且つRdBusy (半サイクル又はFixup2だけ
遅延されている)はMU)E43の制御ボ、−トで受は
取られる。
第4図は、状態マシン66に対する状態図である。第4
図において、垂直線は状態遷移を発生する信号を表して
いる。ある状態の場合には、指定した数のサイクルが通
過した後に状態の遷移は自動的に発生する。
第5図は、キャッシュ再充填および命令ストリーム化動
作に対する本システムの動作を示すタイミング線図であ
る。上に定義した信号の状態を図示することに加えて、
XEn*信号(メインメモリ読取りイネーブル信号)お
よびI W r *およびlRd*信号(キャッシュ書
込みおよび読取りイネーブル信号)の状態も示しである
。第5図においては以下の記号を使用する。すなわち、
■は命令であり、Dはデータであり、#Iは不正確命令
であり、!■は不使用命令である。
第1図ない1.第5図を参照して、サイクルFに先行す
る半サイクルにおいて、−7エツチされるべき次の命令
のアト1ノス(読取リアドレス)をAU30において計
算し2、TLB32によつ゛C翻訳し、且つLBUS1
8へ転送する。
この場合、キャッシュミスが発生し、11つサイクルR
1期間中、命令#Iがキャッシュ12からフェッチされ
、丁1・”)DBUS16へ転送され、方昇Iに対する
TAGフト−ルドがフエ、ツチされf−1一つTBtj
Sへ転送される。この命令のTAGフィ・〜ルドおよび
高アドレスビットがTC53において比較され11つ一
致することはなく、[またが・)てミス(M I S 
S) (’6号がT C5−,3によってアリー−1−
すなわも活性化され、[1つミス【7だ命令の読取リア
ドレスをI(LおよびLI、50および36内・\ラッ
チさせる。
サイクルF2の期間中、次の命令!■のアドレスが計算
されJ]−′)LBUS18へ転送されS。
サイクルG1において、状態マシンはミス信号に応答し
て停止状態となる。1−7たがって、Run*が不活性
状態とされ且つM e m Rd *が活性状態とされ
る。更に、メモリインターフェイス14がRd B u
 s yを活性状態とさせ、メモリ待ち時間期間中停止
1゛状態を維持する。M e m Rd *を活性状・
態とさせると、MUX38をその最初の入力端をL B
 U S i 8へ結合さぜ、その際に読取リアドレス
のラッチされたN15B低ピツj・をL B U Sへ
転送さぜる。又、Rd B u s yが活性状態とさ
れるので、MLJX38および4′うば、読取りアト1
/スのラッチされた1、 S B (11;ビットを■
、BUSへ結合させる。更に、キャッシュから)J、ツ
チされる命令!IがDBUS 16およびT B U 
S 2 (1上に存在する。更に、R1,、J r+ 
*を不活性状態とさlると、、MUX52はHL 51
1)の出力端を第二出力ドライバ51の入力端・\結合
させる。
サイクルG2において、DBUS16がトライステート
状態とされ、RつM e m Rd *信号の遅延され
た活性化に応答して、第二出力ドラ・イバ57が、HL
50の出力端をT B U S 20へ結合させる。し
たが−1で、読取りアト1/スの高および低ビットは、
メモリインターフェイス14へ転送され、それはメイン
メモリからの命令ブロックのベージモードアクセスをセ
ットアツプする。
サイクルDiないり、Hlの期間中、停止1(スト−ル
)状態がメモリ持重時間に起因して維1Sされる。サイ
クルH1の期間中、RdBusyが不活性状態とされ[
1つカウンタが開始される。カウンタは、次の4サイク
ルに亘って活性化されるべきブロックの低アト1/スの
二4個のL S Bを発牛号る。。
サイクルR2期間中RdBuSyの非活性化状態に応答
して、半サイクルたけ遅延され“CM 1.J X39
は、、CNT出力(00)をL B U S i 8の
L5B LT Sラインへ転送する。これは、!0のア
ドレスであり、そのブロック内の最初の命令は該メ七り
からアクセスさせる。HL50からのう・ソチされた高
次読取りアトlメスビットは、TBUS上を転送されて
、10の全メインメモリアドレスを与える。
−L述したごとく、ミスL、た命令は、ブロック内の最
初のアドレス(No)に必ずしも対応するものではない
。CNT44がブロック内のワードのLSBを発生する
とこれらのi、 S BはM C42L:おいてLL3
6においてラッチされた読取リアドレスのi、 S B
と比較される。これらのビットが一致すると、MC42
は一致信号を活性化させる。
本実施例においては、ブロックの二番]]のアドレス■
1に対し゛Cキャッシュミスが発で1”したものと仮定
する。
ザイクルJ1明間中、CN T’ 44は■1に対する
アドレスのL S Bを発生し、したがって、MC42
の両方の入力端におけるビットは整合し、11つ・一致
信号が活性化へれる。
ザ・fクルJ2期間中、11に対ずろ低アドレスがLB
US18上にある。
サイクルに1明間中、状態マシン66が一致信号に応答
してフィックスアップすなわち整理状態となる。、整理
信号が活性化されて、I’L、C62をして11をパイ
プライン内に転送さ軒る。
サイクルに2期間中、整理信号に応答してMU30が、
11に続く次の命令のアドレスを計算する。カウンタが
、LSBを発生をして、ブロックI3内の三番目の命令
をアクセスする。
サイクルL1において、状態マシン66が、一致信号の
活性化に応答してストリーム状態となる。
Run*信号が再度活性化されて、パイプラインをスタ
ートさせ、且つ命令がメインメモリからフェッチされる
に従いその命令の処理を開始する。
Run*信号が、MUX52をしてPIHB56をTB
USへ結合させる。したがって、I2に対する高アドレ
スビットが、TLBからTBUSへ転送され、且つLB
US 18上のビットによりキャッシュラインアドレス
のTAGフィールド内に書き込まれる。更に、CNTが
そのブロック内の命令のカウントアウトを完了する。
サイクルM1においてM e m Rd *信号が、C
NT44に応答して非活性化状態とされ、該ブロック内
の最後のアドレスをカウントアウトする。
ブロックI3内の最後の命令がDBUS16上に置かれ
、且つI3のラッチされた高次アドレスビットがデータ
バス上に駆動される。
サイクルM2期間中、I3がデコードされ、且つ次の命
令!に対するアドレスがAU30において計算される。
M e m Rd *の非活性化によりMUX38をし
てこの計算されたアドレスの低アドレスビットをLBU
818へ結合させる。
サイクルN1期間中、Merr+Rd*の非活性化から
1サイクルの遅延の後に、ランすなわち稼動状態となる
。ドライバ54.57.60が、発生されたアドレスの
TAGフィールドおよび高アドレスビットの比較を再開
始させる。次いで、第2図に関して上に説明したごとく
動作が継続して行われる。
動作について説明すると、ストリーム化期間中に分岐命
令を処理する高い蓋然性がある。11が分岐命令である
と、そのブロック内の次の命令I2は実行されるべき次
の命令ではない。しかしながら、キャッシュ12が命令
のブロック全体で再充填されることが必要とされる。
この場合に、サイクルに1期間中、AU30が11によ
って特定される次の命令のアドレスを計算し、分岐が発
生したことを決定し、且つ分岐信号を発生する。この分
岐信号は状態マシン66を再度再充填状態とさせ、且っ
Run*信号を非活性状態とさせ、PLC62、EU6
4を停止させ、且・つMUX52をして、HL50内の
ラッチされた高読取りアドレスビットをTBUS20へ
再結合させる。
次いで、サイクルLおよびM期間中、再充填が継続して
行われ、且つL2期間中、カウンタがカウントアウトし
且つ再充填状態からの整理状態への遷移を発生させ、且
つFtxup2信号を発生させる。したがって、MtJ
X43はLL36内のラッチ−された低アドレスビット
をLBUSへ結合させ、したがって11に対する低アド
レスが、サイクルM2期間中、LBUS上へ駆動され、
その命令がN1期間中、データバス上へフェッチされ、
且つ次の命令に対するアドレスがN2期間中計算される
。次いで、次のサイクル期間中に、稼動状態となる。
したがって、本システムは、例えば分岐などのストリー
ム遮断事象が発生しないかぎり、ストリーム状態に止ど
まる。しかしながら、ストリーム遮断が発生すると、キ
ャッシュ12の再充填が完了される。
任意分岐の結果としてストリーム化が開始すると、目標
アドレスがブロックに亘って一様に分布される。しかし
ながら、キャッシュ12内に格納されているブロックを
介1−での実行の結果としてキャッシュミスが発生する
と、目標アドレスはそのブロック内の最初のアドレスで
ある。実際上、ミスアドレスはその時間のブロック70
%における最初のアドレスである。したがって、再充填
待ち時間が減少される。
以上、本発明の具体的実施の態様について詳細に説明し
たが、本発明はこれら具体例にのみ限定されるべきもの
ではなく、本発明の技術的範囲を逸脱することなしに種
々の変形が可能であることは勿論である。特に、上述し
た実施例においては直接マツプ型命令キャッシュを使用
している。しかしながら、本発明の原理はキャッシュ再
充填アルゴリズムを使用する関連マツプ型キャッシュへ
適用することも可能である。更に、特定のタイミングお
よび制御信号は、特定の使用される処理状況において変
化させることが可能である。
【図面の簡単な説明】 第1図はブロセザ制御型インターフJイスの高レベルブ
ロック図、第2図はパイプラインの水平方向スライスを
図示したタイミング線図、第3図は好適実施例におりる
プロセサ制御回路の詳細なブロック図、第4図は状態線
図、第5図はキャッシュ再充填および命令ストリーム化
動作を図示したタイミング線図である。 (符号の説明) 10:プロセサ 12:命令キャッシュ 14:メモリインターフェイス 16:データパス 1−8:低アト1/スバス 20 : TAGバス 22:制御バス 24ニ IADRBUS

Claims (1)

  1. 【特許請求の範囲】 1、プロセサと命令キャッシュとメインメモリとを有し
    ており1サイクルが前記プロセサの基本的命令処理単位
    であるプロセサインターフェイスにおいて、キャッシュ
    ミスの場合に前記命令キャッシュ内の1ブロックの命令
    を置換する方法において、特定の参照した命令に対する
    メモリ参照を与え、前記参照した命令が前記キャッシュ
    内に格納されているか否かを決定し、前記参照が前記キ
    ャッシュ内に格納されている場合には前記キャッシュか
    ら前記参照した命令を読取り、前記参照が前記キャッシ
    ュ内に格納されていない場合には前記メモリから1ブロ
    ックの命令をアクセスし、与えられたサイクル期間中に
    メインメモリから前記参照した命令を読取り、前記与え
    られたサイクル期間中に前記参照した命令を前記キャッ
    シュへ書込み、前記与えられたサイクル期間中に前記参
    照した命令を前記プロセサへロードする、上記各ステッ
    プを有することを特徴とする方法。 2、キャッシュおよびメインメモリへのプロセササポー
    ト型インターフェイスにおいて、前記プロセサがパイプ
    ラインにおける各命令に対し1個のパイプライン段を同
    時的に実行するための多段パイプラインを有しており、
    且つ1サイクルが前記プロセサに対する基本的命令処理
    単位であって、命令参照が前記キャッシュをミスした場
    合にメインメモリ読取りおよびキャッシュレフィル動作
    を実行する方法において、前記キャッシュミスに続く第
    一サイクル期間中にパイプライン停止を開始して前記パ
    イプラインにおける命令の処理を停止し、メインメモリ
    ブロック読取り動作を開始し、前記メインメモリから1
    ブロックの命令を読取り、前記ブロックは前記参照した
    命令を有しており、前記読取りステップがメモリ待ち時
    間間隔だけ前記開始ステップから遅延され、前記ブロッ
    ク内の命令が引き続くメインメモリアクセスサイクル期
    間中に逐次的に読取られ、且つ前記参照された命令が与
    えられたメインメモリアクセスサイクル期間中にメイン
    メモリから読取られ、前記命令がメインメモリから読取
    られるメインメモリアクセスサイクル期間中に前記ブロ
    ックにおける各命令を前記キャッシュへ書込むことによ
    り前記キャッシュを再充填し、前記与えられたメインメ
    モリサイクル期間中に整理動作を開始して前記参照した
    命令を前記パイプライン内へロードし、前記与えられた
    メインメモリアクセスサイクルに続く前記メインメモリ
    アクセスサイクル期間中に前記パイプライン停止を終了
    させて前記パイプラインを再開始すると共に前記参照し
    た命令に続くブロック内の命令が持続のメインメモリア
    クセスサイクル期間中にメインメモリから読取られて処
    理することを再開始し、最後のメインメモリアクセスサ
    イクル期間中に前記ブロック内の最後の命令に続く第一
    の非ブロック命令を参照し、前記最後のメインメモリア
    クセス命令に続くサイクル期間中に前記第一の非ブロッ
    ク命令を処理する、上記各ステップを有することを特徴
    とする方法。 3、プロセサと、命令キャッシュと、メモリインターフ
    ェイスとを有するCPUにおいて、キャッシュをミスす
    る任意アドレスへの分岐の場合に必要とされるキャッシ
    ュ再充填動作に起因する待ち時間を減少する方法におい
    て、メモリからの前記キャッシュのブロック再充填動作
    を開始し、メモリから前記ブロックを読取るために前記
    ブロックの逐次的再充填アドレスを発生し、前記発生さ
    れた再充填アドレスを前記任意アドレスと比較して前記
    アドレスが同一である場合に一致信号を発生し、前記一
    致信号に応答して前記一致信号の発生に続いて前記命令
    の同時的な実行および再充填を開始し、前記ブロック内
    の前記命令の逐次的実行を阻止する遮断条件の発生をモ
    ニタし、前記再充填動作を継続している間に遮断条件が
    発生すると前記ブロック内の命令の実行を中止する、上
    記各ステップを有することを特徴とする方法。 4、プロセサと命令キャッシュとメモリインターフェイ
    スとを有するCPUにおいて、キャッシュをミスする任
    意アドレスへの分岐の場合に必要とされるキャッシュ再
    充填動作に起因する待ち時間を減少させる方式において
    、メモリからキャッシュのブロック再充填動作を開始す
    る手段、メモリからのブロックを読取るために前記ブロ
    ックの逐次的再充填アドレスを発生する手段、前記発生
    された再充填アドレスを前記任意アドレスと比較し且つ
    前記アドレスが同一である場合に一致信号を発生する手
    段、前記一致信号に応答し前記一致信号の発生に続いて
    前記命令の同時的実行および再充填を開始する手段、前
    記ブロック内の命令の逐次的実行を阻止する遮断条件の
    発生をモニタする手段、前記再充填動作を継続中に遮断
    条件が発生すると前記ブロック内の命令の実行を中止す
    る手段、を有することを特徴とする方式。
JP1263130A 1988-10-11 1989-10-11 命令ストリーム機能を有するプロセサ制御型インターフェイス Pending JPH02224023A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US255,791 1988-10-11
US07/255,791 US5027270A (en) 1988-10-11 1988-10-11 Processor controlled interface with instruction streaming

Publications (1)

Publication Number Publication Date
JPH02224023A true JPH02224023A (ja) 1990-09-06

Family

ID=22969883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1263130A Pending JPH02224023A (ja) 1988-10-11 1989-10-11 命令ストリーム機能を有するプロセサ制御型インターフェイス

Country Status (5)

Country Link
US (1) US5027270A (ja)
JP (1) JPH02224023A (ja)
KR (1) KR970008187B1 (ja)
CA (1) CA1332248C (ja)
DE (1) DE3933849A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100849A (ja) * 1991-10-04 1993-04-23 Fujitsu Ltd バツフア記憶制御方式
JPH08328854A (ja) * 1995-05-30 1996-12-13 Kofu Nippon Denki Kk パイプラインデ−タ処理装置

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
JP3018038B2 (ja) * 1990-01-18 2000-03-13 三菱電機株式会社 キャッシュを有するデータ処理装置
AU7486591A (en) * 1990-03-15 1991-10-10 Sun Microsystems, Inc. Apparatus and method for providing a stall cache
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
JP2818249B2 (ja) * 1990-03-30 1998-10-30 株式会社東芝 電子計算機
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
JPH0418648A (ja) * 1990-05-11 1992-01-22 Mitsubishi Electric Corp キャッシュを有するデータ処理装置及びそのデータアクセス方法
US5202973A (en) * 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
US5283880A (en) * 1991-01-02 1994-02-01 Compaq Computer Corp. Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US5590294A (en) * 1991-03-19 1996-12-31 Silicon Graphics, Inc. Method and apparatus for retarting pipeline processing
US5353419A (en) * 1992-01-09 1994-10-04 Trustees Of The University Of Pennsylvania Memory-side driven anticipatory instruction transfer interface with processor-side instruction selection
US5423016A (en) * 1992-02-24 1995-06-06 Unisys Corporation Block buffer for instruction/operand caches
GB2271201B (en) * 1992-10-01 1995-12-13 Digital Equipment Int Low-overhead,non-coherent cache refreshment mechanism
JPH06222990A (ja) * 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置
US5481275A (en) 1992-11-02 1996-01-02 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5838389A (en) * 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
US5996062A (en) * 1993-11-24 1999-11-30 Intergraph Corporation Method and apparatus for controlling an instruction pipeline in a data processing system
US5870599A (en) * 1994-03-01 1999-02-09 Intel Corporation Computer system employing streaming buffer for instruction preetching
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
EP0803095A1 (en) 1994-10-14 1997-10-29 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
US5897654A (en) * 1995-02-10 1999-04-27 International Business Machines Corporation Method and system for efficiently fetching from cache during a cache fill operation
US5924125A (en) * 1995-08-01 1999-07-13 Arya; Siamak Method and apparatus for parallel access to consecutive TLB entries
US5724533A (en) * 1995-11-17 1998-03-03 Unisys Corporation High performance instruction data path
KR19990057839A (ko) * 1997-12-30 1999-07-15 김영환 캐쉬 미스 시 처리 방법
KR100300875B1 (ko) * 1998-12-30 2001-09-06 박종섭 캐쉬 미스 시 처리 방법
US6819325B2 (en) 2000-03-07 2004-11-16 Microsoft Corporation API communications for vertex and pixel shaders
US7159041B2 (en) * 2000-03-07 2007-01-02 Microsoft Corporation Method and system for defining and controlling algorithmic elements in a graphics display system
US6812923B2 (en) 2001-03-01 2004-11-02 Microsoft Corporation Method and system for efficiently transferring data objects within a graphics display system
US6874150B2 (en) * 2001-03-01 2005-03-29 Microsoft Corporation Method and system for maintaining connections between surfaces and objects in a graphics display system
US7023431B2 (en) * 2001-03-01 2006-04-04 Microsoft Corporation Method and system for providing data to a graphics chip in a graphics display system
US6828975B2 (en) * 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6831635B2 (en) * 2001-03-01 2004-12-14 Microsoft Corporation Method and system for providing a unified API for both 2D and 3D graphics objects
US7203817B2 (en) * 2001-09-24 2007-04-10 Broadcom Corporation Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US8082396B2 (en) * 2005-04-28 2011-12-20 International Business Machines Corporation Selecting a command to send to memory
US10808480B2 (en) 2018-11-19 2020-10-20 Baker Hughes, A Ge Company, Llc Frac plug setting method
US10781651B2 (en) 2018-11-19 2020-09-22 Baker Hughes, A Ge Company, Llc FRAC plug system with integrated setting tool

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6354632A (ja) * 1986-08-25 1988-03-09 Hitachi Ltd 電子計算機の命令先読み制御方法
JPS63106046A (ja) * 1986-10-22 1988-05-11 Mitsubishi Electric Corp デ−タ処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US4313158A (en) * 1978-12-11 1982-01-26 Honeywell Information Systems Inc. Cache apparatus for enabling overlap of instruction fetch operations
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US4847758A (en) * 1987-10-30 1989-07-11 Zenith Electronics Corporation Main memory access in a microprocessor system with a cache memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6354632A (ja) * 1986-08-25 1988-03-09 Hitachi Ltd 電子計算機の命令先読み制御方法
JPS63106046A (ja) * 1986-10-22 1988-05-11 Mitsubishi Electric Corp デ−タ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100849A (ja) * 1991-10-04 1993-04-23 Fujitsu Ltd バツフア記憶制御方式
JPH08328854A (ja) * 1995-05-30 1996-12-13 Kofu Nippon Denki Kk パイプラインデ−タ処理装置

Also Published As

Publication number Publication date
CA1332248C (en) 1994-10-04
KR970008187B1 (ko) 1997-05-21
KR900006865A (ko) 1990-05-09
US5027270A (en) 1991-06-25
DE3933849A1 (de) 1990-06-21

Similar Documents

Publication Publication Date Title
JPH02224023A (ja) 命令ストリーム機能を有するプロセサ制御型インターフェイス
US6978350B2 (en) Methods and apparatus for improving throughput of cache-based embedded processors
KR100274268B1 (ko) 멀티스레드 프로세서에서 스레드 스위치 대기 시간을 감소시키기 위한 방법 및 장치
US6430674B1 (en) Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
US9632788B2 (en) Buffering instructions of a single branch, backwards short loop within a virtual loop buffer
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
US11579879B2 (en) Processing pipeline with first and second processing modes having different performance or energy consumption characteristics
EP1974255B1 (en) Translation lookaside buffer manipulation
JPS62163160A (ja) バス・プロトコルを構成する装置および方法
JPH07319767A (ja) コンピュータ・システム
JP2007219581A (ja) メモリコントローラおよびこれを搭載する電子機器
KR20130054375A (ko) 명령들의 클래스 및 콘텐츠에 기초한 프로세서 전력 관리
JP2004164622A (ja) Dspカーネルの性能/パワー比を改善する方法
US20080040546A1 (en) Data processing apparatus and method for performing a cache lookup in an energy efficient manner
US6848031B2 (en) Parallel searching for an instruction at multiple cache levels
JP2003519836A (ja) プロセッサがウエイト状態の間に開始された並列読み出しと直列読み出しを用いてセット・アソシエイティブ・キャッシュを管理する方法
JPH10301779A (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
US20070294519A1 (en) Localized Control Caching Resulting In Power Efficient Control Logic
US9645825B2 (en) Instruction cache with access locking
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
US7124277B2 (en) Method and apparatus for a trace cache trace-end predictor
JP2821328B2 (ja) 並列計算機
US6223257B1 (en) Instruction cache address generation technique having reduced delays in fetching missed data
JP2004038601A (ja) キャッシュメモリ装置
JPH08212069A (ja) データプロセッサ