JP2002108703A - キャッシュ制御装置及びプロセッサ - Google Patents

キャッシュ制御装置及びプロセッサ

Info

Publication number
JP2002108703A
JP2002108703A JP2000302795A JP2000302795A JP2002108703A JP 2002108703 A JP2002108703 A JP 2002108703A JP 2000302795 A JP2000302795 A JP 2000302795A JP 2000302795 A JP2000302795 A JP 2000302795A JP 2002108703 A JP2002108703 A JP 2002108703A
Authority
JP
Japan
Prior art keywords
access
cache
instruction
queue
logic circuit
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
JP2000302795A
Other languages
English (en)
Inventor
Toshiyuki Muta
俊之 牟田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000302795A priority Critical patent/JP2002108703A/ja
Priority to US09/817,258 priority patent/US6772297B2/en
Publication of JP2002108703A publication Critical patent/JP2002108703A/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/383Operand prefetching
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Abstract

(57)【要約】 【課題】 キャッシュメモリ参照命令の実行より先行し
て起動してデータリプレースを行い、キャッシュミス時
のレーテンシを短縮する。 【解決手段】 ロードストアユニットのキャッシュリプ
レース制御において、第1キュー選択論理回路41、第
2キュー選択論理回路42、調停部43とを備え、前記
第1キュー選択論理回路はキュー31に格納された前記
キャッシュメモリへのアクセス命令を順次選択し、前記
第2キュー選択論理回路は、前記キャッシュメモリへの
前記アクセス命令において、前記キューに格納されてい
る未発行のアクセス命令を前記第1キュー選択論理回路
の選択に先行して選択し、前記調停部は前記第1キュー
選択論理回路が選択した前記アクセス命令と、前記第2
キュー選択論理回路が選択した前記先行アクセス命令と
を調停して、前記キャッシュメモリにアクセスを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータのマ
イクロプロセッサに関し、特に、メモリ参照命令の実行
より先行して起動してリプレースを行い、キャッシュミ
ス時のレーテンシの短縮することができるキャッシュ制
御装置及びプロセッサに関する。
【0002】
【従来の技術】マイクロプロセッサでは、 命令順に処理
を行うインオーダー処理をパイプライン構成で動作させ
ている。そして、ソフトウエアに対しても、その命令は
インオーダーで実行完了が保証されており、ソフトウエ
アもそれを期待したインプリメントになっていた。
【0003】近年、マイクロプロセッサでは、スーパー
スカラやレジスタリネーミング等の技術により命令間の
依存関係がない限り、命令順に捕われないで実行するア
ウトオブオーダー実行を行いつつ、ソフトウエアから見
ると順に完了しているように見せることが、実現されて
いる。メモリに関するリードやライトにおいても、同じ
ことが言える。しかし、別に考慮しなければならない点
がある。メモリのリードやライトには、 命令をデコード
しただけでは判断できない依存関係が、プログラムによ
って意図されるケースがある。
【0004】ここで、次のように、2つ命令を含む2つ
の例を挙げて説明する。 例1)の場合 命令(1)で、d0をアドレスとするメモリをリードし、d1
にデータ格納し、命令(2)で、d1をアドレスとするメモ
リをリードし、d3にデータ格納するといものである。こ
れらの2つの命令には、命令(1)の結果を命令(2) で使
用している為、レジスタの依存関係がある。そこで、命
令(1)及び(2) の順番に命令発行すべきことがハードウ
エアで判断可能である。 例2)の場合 命令(3)では、d0をアドレスとするメモリをリードし、
d1にデータ格納し、命令(4)では、d2をアドレスとする
メモリをリードし、d3にデータ格納するというものであ
る。しかし、これらの命令(3)及び(4)間の順序につい
て、ハードウエアでは判断できないので、プログラムの
意図によって、順序保証の要否を決める必要がある。そ
こで、次のように、2つのケースA、Bが考えられる。 ケースA 命令(4)に到達したとき既に、2つのデータが変更され
ないことを保証されているなら、順序を変えて読み取っ
ても結果に代わりはない。 ケースB 命令(3)のデータが、命令(4)のデータの有効・無効を
示すフラグの意味であるなら、ケースAとは異なってく
る。他のプロセッサが、命令(4)のデータをライトし、
後に命令(3)のデータに有効を示す値をライトした場合
に、本命令列の順序を変えて実行すると命令(4)のライ
トの前にデータをリードし、命令(3)のデータのライト
後のデータをリードし、結果として、有効と示されてい
るデータが古いという現象を引き起こす。
【0005】この様に、 ケースAは、順序について入替
え可能であるが、ケースBは入替え不可となり、ハード
ウエアでは判断できない。判断できるのは、プログラマ
だけということになる。その為、従来はケースBを想定
して、順番に制御する方式をとっていた。しかし、近年
は、ケースAを想定し、順序保証を緩和し、ケースBに
ついては、順序保証を要求する命令間に、順序保証の為
の専用命令をプログラマによってプログラム内に挿入し
ておき、ハードウエアは、その専用命令があるときに順
序保証するという方式がとられている。
【0006】ここで、図1乃至図3を参照しながら、従
来に用いられているハードウエアのシステム構成につい
て説明する。図1には、コンピュータにおけるマイクロ
プロセッサとメモリとの関連部分について、その構成を
概略ブロックで示した。マイクロプロセッサは、プリフ
ェッチユニット1、命令発行ユニット2、リザベーショ
ンステーション3、ロードストアユニット4、各演算器
81〜83、そして、レジスタファイル9を含んでい
る。
【0007】リザベーションステーション3には、複数
のキュー31〜34が用意されており、キュー31は、
ロードストアユニット4に、そして、キュー32〜34
は、それぞれ各演算器81〜83に対応しており、キュ
ー31〜34から命令が供給される。マイクロプロセッ
サとシステムメモリ7との間に、一次キャッシュメモリ
5、二次キャッシュメモリ6及び一次命令キャッシュメ
モリ10が設けられている。マイクロプロセッサは、ロ
ードストアユニット4を介して一次キャッシュメモリ5
に、更に二次キャッシュメモリ6にアクセスする。
【0008】次に、図1の破線で囲んだ部分について、
より詳細を示す構成を、図2及び図3に示した。図2で
は、リザベーションステーション3のキュー31とロー
ドストアユニット4を示している。そして、図3では、
一次キャッシュメモリ5を示したが、二次キャッシュメ
モリ6の概略も示した。
【0009】キュー31は、リング構造で制御され、格
納用のポインタレジスタとインオーダアクセス発行の為
に命令取りだし用のポインタによって制御され、FIF
O構成をなしている。キュー31のエントリは、「seri
al」「cmd 」「AV」「address 」「DV」「write data」
「RDY 」の各フィールドからなる。
【0010】「serial」は、命令発行ユニットから発行
される全命令に付与されるシリアル番号である。ロード
ストア命令が完了するとき、完了通知の再にシリアル番
号が使用される。「cmd 」は、ロードとストアの区別な
ど、アクセスの種類や、アクセスサイズ等を示してい
る。「AV」は、アドレスの有効フラグである。「addres
s 」は、アクセス先のアドレスである。「DV」は、ライ
トデータの有効フラグである。「write data」は、ライ
トデータフィールドである。「RDY 」は、アクセスの状
態を示す。
【0011】リザベーションステーション3には、キュ
ー31のエントリへの格納を制御するための格納先選択
論理35が備えられている。この格納先選択論理35
は、FIFO構成をとっている。その格納先は、ポイン
タによって指し示される。命令発行ユニットから当キュ
ーに対して命令が投入されると、本ポインタが指すキュ
ーエントリに、「serial」と「cmd 」を格納し、「RDY
」の状態遷移を行う。
【0012】アドレスの格納については、アドレスとシ
リアル番号の組合せで格納指示を受け、各キューのエン
トリでシリアル番号と「serial」フィールドの比較を行
い一致したエントリの「address 」フィールドに格納
し、「AV」をオンにするように制御する。ライトデータ
についても、「write data」フィールドと「DV」に対し
て同様な制御を行う。
【0013】ロードストアユニット4には、キュー選択
論理41があり、キュー31から発行するエントリの選
択方針を決めている。ここでは、インオーダーの方針に
設定され、発行可能な古いものから選択するようになっ
ている。そして、一次キャッシュメモリ5に選択された
エントリが送出される。次に、図3に示された一次キャ
ッシュメモリ5の構成を説明する。
【0014】一次キャッシュメモリ5は、通常、タグ部
51とデータ部52からなる。さらに、一次キャッシュ
メモリ5には、 リプレース制御部53があり、リプレー
ス制御資源を4つ並列に動作させることができる。この
資源は、一次キャッシュメモリ5にアクセスした際のキ
ャッシュミスにより起動される。既に、リプレース起動
中のアドレスについて、後続のアクセスが発行された場
合には、リトライの指示を行う。
【0015】ここで、キュー31の「RDY 」フィールド
に格納されるアクセス状態の遷移について、図4を参照
して説明する。そのアクセス状態はRIDL、RWTA
D、RWTI及びRWTRの4状態である。RIDL
は、本エントリにコマンドが無効か、アクセスの発行を
完了したことを示す。
【0016】RWTADは、本エントリのコマンドが有
効で、かつアクセスの為のアドレス計算完了(「AV」オ
ン)とライトならライトデータ(「DV」オン) を待ち合
わせている状態を示す。RWTRは、本エントリのコマ
ンドが有効で、アクセス発行を待ち合わせている状態を
示す。
【0017】RWTRは、一次キャツシュからのリプラ
イを待ち合わせている状態を示す。そして、それらの状
態の遷移条件は、 図4の矢印の符号(A) 〜(B) に示すよ
うに、次の通りとなる。 (A) 命令発行ユニット2からのロードストア命令発行に
より、本キューエントリが選択された。 (B) アドレス計算されてAVオン(ライトならDVオン)と
なる。 (C) アクセスとして本キューエントリが選択され、一次
キャッシュにアクセス発行される。 (D) 発行したアクセスに対して、1次キャッシュよりリ
トライ応答を受ける。 (E) 発行したアクセスに対して、1次キャッシュより
「Valid miss」応答を受ける。
【0018】次に、図5及び図6のフローチャートを参
照して、インオーダー制御におけるロードストアユニッ
ト4の動作と、一次キャッシュ5へのアクセス、リプレ
ース制御について説明する。図5及び図6のフローチャ
ートにおける処理は、 通常のロードストアの処理であ
る。先ず、命令発行ユニット2からロードストア命令が
発行される(ステップS101)。
【0019】ロードストア命令が発行されると、リザベ
ーションステーション3の格納先選択論理35の動作に
より、ロードストアをキュー31に格納し(ステップS
102)、次いで、ロードストアのアドレスを計算する
(ステップS103)。アドレスの計算が終了したなら
ば(Y)、ロード命令かストア命令かを区別して(ステ
ップS104)、ストア命令の場合(N)は、ストアデ
ータの計算終了を待ち合わせる(ステップS105)。
【0020】この段階で、インオーダーに発行するため
に、アクセス待ちのキューエントリ間の新旧を判定し
て、もっとも古いエントリーを選ぶ(ステップS10
6)。そこでは、既に発行済の命令で未完了のもがある
かが判定される。未完了のものがある場合(N)には、
その完了を待ち合わせる。未完了のものがない場合
(Y)には、一次キャッシュ5へのアクセスを発行する
(ステップS107)。
【0021】ここで、ロードストアユニット4と一次キ
ャッシュ5の階層が論理又は物理空間で構成され異なっ
ている場合には、一次キャッシュ5へのアクセスアドレ
スを論理アドレス又は物理アドレスへと変換しなければ
ならない。ところが、この変換においてエラーとなると
きがあるため、アクセスを発行した際に、アドレス変換
エラーであるかどうかが判断される(ステップS10
8)。
【0022】もし、変換エラーである場合(Y)には、
エラー応答して終了する(ステップS118)。一方、
変換エラーでない場合(N)には、アクセスが発行され
るので、この一次キャッシュ5にアクセスされ、一次キ
ャッシュを索引し(ステップS109)、キャッシュヒ
ットであれば(Y)、データ応答して(ステップS11
7)、命令は、終了する。
【0023】もし、キャッシュミスした場合(N)に
は、既にリプレースが起動されているか判定され(ステ
ップS110)、起動済であれば(Y)、ステップS1
06に戻り、ロードストアユニット4にリトライを指示
する。ロードストアユニット4では、新旧判定から再度
実行する。また、リトライ指示には、もう一つの要因が
ある。それは、一次キャッシュ5のリプレースの為の資
源枯渇である(ステップS111)。資源が枯渇してい
る場合(Y)には、ステップS106に戻り、ロードス
トアユニット4にリトライを指示する。
【0024】一方、資源が枯渇していない場合(N)に
は、二次キャッシュ6の索引を行う(ステップS11
2)。ここで、二次キャッシュヒットであれば(Y)、
データを一次キャッシュ5ヘ登録してから(ステップS
116)、データ応答し(ステップS117)、終了す
る。
【0025】また、ステップS112で二次キャッシュ
ミスとなると(N)、メモリアクセスを起動する(ステ
ップS113)。メモリ7にアクセスしたとき、アクセ
スエラーとなっているかどうかが判断される(ステップ
S114)。もし、アクセスエラーである場合(Y)に
は、エラー応答して終了する(ステップS118)。こ
のとき、キューのエントリにおいて、キャッシュステー
トを無効状態にしておく。
【0026】アクセスエラーでなければ(N)、メモリ
7からデータを取り出し、二次キャッシュ6にデータ登
録する(ステップS115)。そして、更に、二次キャ
ッシュ6に登録されたデータを一次キャッシュ5にデー
タ登録する(ステップS116)。そこで、データ応答
して(ステップS117)、終了する。
【0027】以上が、通常のインオーダー制御における
ロードストアの処理フローである。しかし、ミスレイテ
ンシを隠蔽する試みとして、従来より別の手段が考えら
れている。キャッシュミスを発生した場合に、次のキャ
ッシュミスのアドレスを予測し、キャッシュを検索し、
キャッシュミスであれば、リプレースを発生させるとい
うものである。この最も単純な予測の仕方は、キャッシ
ュミスの後では、次のキャッシュラインもミスすると予
測する方式である。
【0028】この方式について、図7及び図8を参照し
ながら、その動作処理を説明する。この方式において
も、図1乃至図3のシステム構成が使われ、基本的な処
理フローは、図5及び図6に示したものと同様である。
そのため、図7には、図5に示した処理フローを省略し
て図示していない。ただ、図7に示した処理フローにお
いても、図6と同様のステップ部分については、同じス
テップ符号を示してある。
【0029】図7の処理フローが図6と異なるところ
は、ステップS111でリプレース資源が枯渇している
かどうかが判断された後において、ステップS112の
二次キャッシュ6へのアクセスと同時に、次のミスアド
レスを予測して、次のキャッシュラインについてリプレ
ース制御を実行するようにしたことである。図7の処理
フローと同時に並列動作するラインリプレース制御の処
理フローについて、図8のフローを参照する。
【0030】並列動作するラインリプレース制御におい
ても、基本的には、図7に示されたリプレース制御の処
理と同様である。図8に示したステップS201からス
テップS206までの各ステップは、図7に示したステ
ップS110からステップS116までの各ステップに
対応している。ただ、図7のリプレース制御の処理にお
いては、ステップS116で一次キャッシュ5にデータ
を登録した後、ステップS117でデータ応答している
のに対し、図8の並列動作するラインリプレース制御で
は、ステップS206において一次キャッシュ5にデー
タを登録すれば十分であり、その後に終了する。
【0031】この様にすれば、一次キャッシュにおいて
連続してキャッシュミスする場合には、もう一つのアク
セスを想定し、次のラインについて予測してリプレース
制御されるので、キャッシュミスレイテンシを短縮でき
る。
【0032】
【発明が解決しようとする課題】これまで、インオーダ
ー制御におけるリプレース制御の処理フローについて述
べたが、上述したケースA、ケースBについて見ると、
インオーダー制御の場合には、両ケースともにハードウ
ェアはシリアライズして動作することになる。これは、
ハードウェアでこの両ケースの区別がつかない為であ
る。
【0033】ところで、上述の各命令をアウトオブオー
ダー制御で動作させる場合には、基本的に、ケースAを
基本として動作させることになる。ケースBでアウトオ
ブオーダー制御で動作させる場合には、メンバー命令を
挿入することによって区別されなければならない。この
メンバー命令があるときだけ、インオーダー制御を行う
ことができる。
【0034】つまり、メンバー命令によって、動作モー
ドを切り替えるという制御が必要となる。アウトオブオ
ーダ制御に性能の優位性があるものの、ケースBの場合
のように、制御上2つの制御を切り換えるという複雑さ
を持つ。さらに、メンバー命令の挿入は、プログラムを
制限することになる。一方、インオーダー制御は、性能
面は劣るものの、制御が比較的簡単で、プログラムヘの
制限がないという特徴を持っている。
【0035】また、図7及び図8を参照して上述した次
ラインリプレース起動を含むリプレース制御のように、
ミスレイテンシを隠蔽する試みが行われている。この次
ラインリプレース起動は、キャッシュミスを発生した場
合に、次のキャッシュラインもミスすると予測して、キ
ャッシュを検索し、ミスであれば、リプレース起動を発
生させているため、そのときどきのプログラムの特性を
まったく無視して行われることになる。アクセスがラン
ダムなアドレスに対して発生する場合は、逆効果になる
という欠点がある。
【0036】従って、本発明は、インオーダー制御とア
ウトオブオーダ制御との両者の長所を有し、キャッシュ
ミス時のレイテンシを改善したリプレース制御を行うこ
とができ、プログラム制限のないインオーダー制御を目
的とする。
【0037】
【課題を解決するための手段】以上の課題を解決するた
め、本発明では、コンピュータにおけるプロセッサにお
いて、キューのエントリに格納されたアクセス命令を選
択して発行する手段と、発行された前記命令によりキャ
ッシュメモリにアクセスする手段と、前記キャッシュメ
モリにアクセスし、キャッシュミスしたとき、次メモリ
へのアクセス命令を発行する手段と、前記次メモリにア
クセスして取得したデータを前記キャッシュメモリに登
録するデータリプレース制御手段と、前記アクセス命令
発行手段から前記アクセス命令が発行された後、前記キ
ャッシュメモリに先行してアクセスすることができる先
行アクセス手段とを備えるようにした。
【0038】さらに、前記先行アクセス手段は、前記キ
ャッシュメモリに先行アクセスし、キャッシュミスした
とき、次メモリへのアクセス命令を発行でき、前記次メ
モリに先行アクセスして取得したデータを前記キャッシ
ュメモリに登録しデータリプレースを行い、前記次メモ
リへの前記先行アクセスがエラーとなった場合には、前
記先行アクセスを終了するようにした。
【0039】また、本発明によれば、コンピュータにお
けるロードストアユニットのキャッシュ制御装置におい
て、少なくとも第1キュー選択論理回路と、第2キュー
選択論理回路と、調停部とを備え、前記第1キュー選択
論理回路は、命令発行ユニットからキューに格納された
前記キャッシュメモリへのアクセス命令について、順次
選択し、前記第2キュー選択論理回路は、命令発行ユニ
ットからキューに格納された前記キャッシュメモリへの
前記アクセス命令において、未発行のアクセス命令につ
いて前記第1キュー選択論理回路の選択に先行して選択
し、そして前記調停部は、前記第1キュー選択論理回路
が選択した前記アクセス命令と、前記第2キュー選択論
理回路が選択した前記先行アクセス命令とを調停して、
前記キャッシュメモリにアクセスを行うようにした。
【0040】
【発明の実施の形態】本発明の実施形態について、図9
乃至図16を参照して説明する。本実施形態では、メモ
リアクセスが何らかの条件を待ち合わせているとき、キ
ャッシュのヒット判定とキャッシュミス時のリプレース
動作の起動を行うための専用キャッシュアクセスを定義
して、メモリアクセスの正式な実行に先立ち、先行アク
セスを発行するように制御するようにした。もし、キャ
ッシュミスが発生すれば、正式な実行の条件成立よりも
前に、リプレース起動を行える。そして、アウトオブオ
ーダー制御の性能を持ち、プログラム制限のないインオ
ーダー制御を達成するものである。
【0041】本実施形態は、上述した従来技術と同様
に、図1のコンピュータにおいて破線部分で示したハー
ドウエアのシステム構成に適用されるものである。ここ
では、同様のハードウエアを使用するため、そのシステ
ム構成の説明を省略する。図9は、回路資源についての
ブロック図を示し、本実施形態に係るリザベーションス
テーション3とロードストアユニット4のシステム構成
を示した。図9に示した構成は、図1のコンピュータに
おいて破線で示した部分内のリザベーションステーショ
ン3とロードストアユニット4を示している。
【0042】リザベーションステーション3とロードス
トアユニット4は、従来技術を示す図2と同様であり、
同じ部分には同じ符号を付した。リザベーションステー
ション3は、キュー31、キューヘの格納を制御する格
納先選択論理回路35とを有し、図1のリザベーション
ステーション3と構成上の差異はないが、ロードストア
ユニット4については、図2の場合に比較して、アクセ
ス発行制御論理回路に、処理2用キュー選択論理回路4
2が追加されている。
【0043】図9のキュー31おいては、図2の従来に
おけるキュー31のエントリフィールドに比較して、
「PRE 」の先行アクセスの状態を示すエントリフィール
ドが加えられていることが特徴である。その他、キュー
31は、リング構造で制御され、格納用のポインタレジ
スタとインオーダアクセス発行の為に命令取りだし用の
ポインタによって制御され、FIFOをなすこと、そし
て、「serial」「cmd 」「AV」「address 」「DV」「wr
ite data」及び「RDY 」の各フィールドがあることは、
図2の従来におけるキュー31と同様であるので、ここ
ではそれらの説明を省略する。
【0044】また、格納先選択論理回路35について
も、図2の格納先選択論理回路35と同様のものである
が、命令発行ユニット2から当キューに対して命令が投
入されると、本ポインタが指すキューエントリに、「se
rial」と「cmd 」を格納して、「PRE 」と「RDY 」の状
態遷移を行うようになっている。さらに、図2に示した
従来のロードストアユニット4では、キュー選択論理回
路41のみが備えられているのに対し、本実施形態のロ
ードストアユニット4では、処理1用のキュー選択論理
回路41の他に、処理2用のキュー選択論理回路42を
備えたアクセス発行制御論理回路を有している点が異な
っている。
【0045】ここで、アクセス発行には、アクセスと先
行アクセスの2種類が用意されている。アクセスは、通
常の本来的なのものであり、先行アクセスは、1次キャ
ッシュミスまたは、1次と2次キャッシュミスに先行し
てリプレースを起動する為のキャッシュ参照である。そ
れぞれのアクセスと先行アクセスにおいて、キュー31
から発行すエントリの選択方針が異なる。アクセスは、
インオーダーの方針であるが、先行アクセスに対して
は、特にアクセス順について強い要請はなく、そのとき
に発行可能な、古いものを選択する方針である。そのた
め、ロードストアユニット4には、これらの方針に従う
2つの選択回路として、処理1キュー選択論理回路41
と処理2キュー選択論理回路42が備えられている。
【0046】次に、ロードストアユニット4には、2つ
の選択回路で選ばれたものを調停する調停部43があ
り、調停部43を介して一次キャッシュメモリ5を参照
する。調停部43では、処理1キュー選択論理回路41
とキュー選択論理回路42とで、同一クロックで2つの
アクセスが有効な場合に処理1キュー選択論理回路41
のアクセスを選択する論理を持っている。
【0047】さらに、図9では、一次キャッシュメモ
リ、二次キャッシュメモリについては図示してないが、
図3に示したと同様の一次キャッシュメモリ5、二次キ
ャッシュメモリ6がシステムメモリ7の間に接続されて
いる。そして、 二次キャッシュメモリ6では、4つのリ
プレース制御資源0〜3を並列に動作させることができ
る。これらの資源0〜3は、アクセスや先行アクセスに
おけるキャッシュミスにより起動される。
【0048】既に起動中のアドレスに対して、後続のア
クセスが発行された場合は、リトライの指示が出され
る。一方、先行アクセスが発行された場合は、正常応答
を行い、無効データのまま正常応答する。先行アクセス
時のデータは無効である。ただ、4つのリプレース制御
資源0〜3の全てを先行アクセスに割り当てることは、
アクセスに対して資源枯渇を引き起こすので、先行アク
セスに割り当てを制限する。資源数nに対し、先行アク
セスで使用できる資源数mを、m<nのようにし、例え
ば、m=2と設定しておく。
【0049】なお、先行アクセスで使用できる資源を制
限することにより、先行リプレースが受理されない可能
性が出てくるが、受理されない先行リプレースに対して
は、再度のアクセス要求を生成するようにしておけば対
処することができる。次に、キュー31のエントリフィ
ールド「PRE 」で取り得る先行アクセスにおける状態に
ついて、図10を参照して説明する。
【0050】先行アクセスの状態を示す「PRE 」につい
ては、以下の4状態がある。PIDLは、本エントリに
コマンドが無効か、先行アクセスの発行を完了したこと
を示す。PWTAは、本エントリのコマンドが有効で、
かつ先行アクセスの為のアドレス計算完了(「AV」オ
ン) を待ち合わせている状態を示す。
【0051】PWTIは、本エントリのコマンドが有効
で、先行アクセス発行を待ち合わせている状態を示す。
PWTRは、一次キャッシュからのリプライを待ち合わ
せている状態を示す。これらの状態についての遷移条件
は、図10の矢印(a) 〜(f) に示され、次の通りであ
る。 (a) 命令発行ユニットからのロードストア命令発行によ
り、本キューエントリが選択された。 (b) 「AV」フラグがオンになった。 (c) 先行アクセスとして本キューエントリが選択され、
一次キャッシュに発行された。 (d) 発行した先行アクセスに対して、1次キャッシュよ
りリトライ応答を受けた。 (e) 発行した先行アクセスに対して、1次キャッシュよ
りvalid 応答を受けた。 (f) 「RDY 」がRIDLに遷移した(アクセスの発行が
成功した為、もはや先行アクセスが不要になった)。
【0052】次に、本実施形態におけるリプレース制御
におけるアクセスと先行アクセスを発行するインオーダ
ー制御の動作フローを、図11及び図12のフローチャ
ートを参照して、説明する。ここで、上述したように、
本実施形態によるリプレース制御においては、キャッシ
ュメモリへの本来のアクセスと、1次キャッシュミスま
たは、1次と2次キャッシュミスに先行してリプレース
を起動する為に先行して発行される先行アクセスとが用
意されているが、この本来のアクセス発行時のリプレー
ス制御についての動作フローは、図5及び図6に示した
動作フローと変わるところがない。そのため、図11に
おいては、同様のステップに対しては、同じ符号を付し
た。そして、図11のステップS107の次は、図6の
ステップS108に続くものである。
【0053】先ず、命令発行ユニット2からロードスト
ア命令が発行される(ステップS101)。ロードスト
ア命令が発行されると、リザベーションステーション3
の格納先選択論理回路35の動作により、ロードストア
をキュー31に格納し(ステップS102)、次いで、
ロードストアのアドレスを計算する(ステップS10
3)。
【0054】ここで、このアドレスの計算が終了した時
点で(Y)、動作処理フローは、2つの処理に分かれ、
並行して動作するようになっている。つまり、本来のア
クセスに対する処理1と、本実施形態の特徴である先行
アクセス起動のために新規に設けた処理2である。処理
1では、アドレスの計算が終了したならば(Y)、ロー
ド命令かストア命令かを区別して(ステップS10
4)、ストア命令の場合(N)は、ストアデータの計算
終了を待ち合わせる(ステップS105)。これ以降の
ステップは、図5及び図6に示された各ステップと同様
であるので、その説明を省略する。
【0055】一方、処理2では、処理1と並行して行な
われるため、処理1により既に本来のアクセスが起動さ
れているかどうかがはんだんされる(ステップS30
1)。既にそのアクセスが起動されている場合(Y)に
は、処理2を実施する必要がないため、処理2を終了す
る。もし、そのアクセスが起動されていなければ
(N)、先行アクセスを保留しているエントリ中で最古
のものを選ぶ(ステップS302)。最古でない場合に
は(N)、発行を見合わせて、ステップS301に戻
る。
【0056】最古である場合(Y)、先行アクセスの発
行を試みる(ステップS302)。そこで、発行された
先行アクセスと本来のアクセスの調停を行う必要があ
る。その調停は、ロードストアユニット4の調停部43
で行われる(ステップS303)。調停の方針では、そ
れらが競合した場合(Y)には、本来のアクセスが優先
される。そのため、先行アクセスは見合わせられ、ステ
ップS301に戻る。
【0057】見合わせた先行アクセスは再試行される。
再試行は、該当する本来のアクセスが起動済か否かの判
定まで戻って行われる。先行アクセスが調停の結果発行
できた場合(ステップS303のN)は、先行アクセス
が発行される(ステップS304)。ここで、キャッシ
ュメモリの階層上の問題で、一次キャッシュ5へのアク
セスアドレスを論理アドレス又は物理アドレスへと変換
しなければならないが、この変換においてエラーとなる
ときがあるため、先行アクセスを発行した際に、アドレ
ス変換エラーであるかどうかが判断される(ステップS
305)。
【0058】もし、変換エラーである場合(Y)には、
その先行アクセスを終了する。一方、変換エラーでない
場合(N)には、先行アクセスが発行され、一次キャッ
シュ5にアクセスされる。そして、一次キャッシュ5を
索引する(ステップS306)。このとき、キャッシュ
ヒットした場合(Y)には、一次キャッシュ5にデータ
が登録されており、問題ないので、処理2を終了する。
【0059】先行アクセスが発行されて一次キャッシュ
5を索引したとき、キャッシュミスした場合には
(N)、既に、リプレースが起動されているかどうかが
確認される(ステップS307)。既に、リプレースが
起動されている場合(Y)には、この先行アクセスは必
要がないので、処理2を終了する。もし、リプレースが
起動されてない場合(N)には、リプレース用資源の枯
渇を判定する(ステップS308)。リプレース用資源
が枯渇している場合(Y)には、前述した再試行を行う
ため、ステップS301に戻る。
【0060】リプレース用資源が枯渇していない場合
(N)には、2次キャッシュ6を索引する(ステップS
309)。もし、ここで、キャッシュヒットした場合
(Y)には、二次キャッシュ6のデータを、一次キャッ
シュ5にデータ登録して(ステップS313)、処理2
を終了する。ところが、ステップS309で、二次キャ
ッシュミスをした場合(N)には、システムメモリ7に
アクセスを起動する(ステップS310)。
【0061】そして、メモリ7にアクセスしたとき、ア
クセスエラーとなっているかどうかが判断される(ステ
ップS311)。もし、アクセスエラーである場合
(Y)には、そのまま終了する。ここで、アクセスエラ
ーでなければ(N)、システムメモリ7からデータを取
り出し、二次キャッシュ6にデータ登録する(ステップ
S312)。さらに、一次キャッシュ5にデータ登録し
て(ステップS313)、処理2を終了する。
【0062】この様に、先行アクセスが本来のアクセス
と並行して起動されるようになっているので、処理1
で、あるアクセスがキャッシュミスした場合に、後続の
アクセスに対しては、処理2で先行してリプレースさ
れ、キャッシュヒットすることになる。また、あるアク
セスが完了した後においては、後続のアクセスが再実行
され、処理1では、キャッシュヒットするか、既にリプ
レース起動済状態となっている。
【0063】なお、リプレース起動動作の結果、アクセ
スは完了させないようにしておく。待ち合わせ条件が解
除されたときに正式にアクセス発行するようにし、その
アクセスに正式に応答することで、順序を保つことがで
きる。正式な発行はあくまで、インオーダーに実施する
必要がある。正式な命令発行が順調にヒットしている間
はキャッシュのバンド幅を高いレベルで使用しているの
で、先行アクセスは、かえってキャッシュのバンド幅を
浪費してしまう。そのため、先行アクセスは、キャッシ
ュミスを発生し、応答を待ち合わせている時間を利用し
て、発行するようにする。
【0064】また、以上の本実施例における処理フロー
では、処理1と処理2のアクセスを排他的に行う場合に
ついて説明したが、一次キャッシュ5のTAG部51を
多ポート化、あるいは、アドレスでハッシングして仮想
的に多ポート化することによって、調停部43の調停や
処理フローに様々なバリエーションを持たせることがで
きる。
【0065】次に、図11及び図12に示した処理フロ
ーによるアクセスんの具体例について、図13乃至図1
5に、そのタイミングを、種々のケースに分けて図示し
た。図13乃至図15では、アドレス計算の完了タイミ
ングA)、命令発行ユニット2の命令発行タイミング
B)、キュー31の「RDY 」のキューエントリの状態の
変遷C)及びD)、「PRE 」のキューエントリの状態の
変遷E)及びF)そして一次キャッシュ5の動作タイミ
ングG)を示しており、横軸は、クロック単位で表して
ある。
【0066】これらの図では、2つの連続ロードld1 、
ld2 の場合を示しており、「RDY 」及び「PRE 」のキュ
ーエントリは、それぞれ0、1を用いており、図中にお
いては、C)及びD)、E)及びF)に対応している。
図13では、アドレス計算の後、インオーダー制御が完
了し、かつ連続ヒットしたケースを示している。
【0067】命令発行ユニット2からロード命令ld1 、
ld2 が発行されると、キューエントリの状態は、「RDY
」では、ld1 、ld2 に対応して、RWTADの状態
が、エントリ0と1に、それぞれ1クロックずれたタイ
ミングで設定され、「PRE 」についても、同様に、1ク
ロックずれたタイミングで、それぞれPWTAがキュー
エントリ0と1に設定される。
【0068】ld1 、ld2 について、アドレス計算が順に
完了したとき、「RDY 」のエントリ0と1の状態をそれ
ぞれ1クロックずれたタイミングでRWTIに遷移させ
る。このRWTIに遷移したタイミングで、ld1 、ld2
の一次キャッシュへのアクセスが順に発行される。この
後、「RDY 」キューエントリ0と1は、RWTRに遷移
する。
【0069】次いで、一次キャッシュで索引が行われ、
キャッシュヒットすれば、データ応答を行う。一方、
「PRE 」では、ld1 、ld2 のアドレス計算が完了したタ
イミングで、PWTAからPWTIに遷移しているが、
ld1 、ld2 の一次キャッシュへのアクセスにおいてキャ
ッシュヒットしているために、先行アクセスが発行され
るタイミングがない。
【0070】また、図14では、アドレス計算の後、ア
ウトオブオーダー制御が完了し、かつ連続ヒットしたケ
ースを示している。図14のタイミング表示の仕方は、
図13の場合と同様である。ただ、図13では、インオ
ーダーのため、ld1 、ld2 のアドレス計算は連続して完
了したが、図14では、アウトオブオーダーであるた
め、ld1 とld2 のアドレス計算の完了のタイミングが異
なり、ld1 の計算完了より、ld2 の計算完了の方が数ク
ロック分早いタイミングとなっている。
【0071】先ず、命令発行ユニット2からロード命令
ld1 、ld2 が発行されると、キューエントリの状態は、
ld1 、ld2 に対応して、「RDY 」では、RWTADが、
そして、「PRE 」についても、同様に、PWTAがキュ
ーエントリ0と1に設定される。ld2 のアドレス計算が
完了したタイミングで、ld2 に対応する「RDY 」のキュ
ーエントリ1の状態をRWTADからRWTIに遷移す
る。このとき、先行アクセスを並行して起動するように
なっているので、「PRE 」のキューエントリ1の状態
も、PWTADからPWTIに遷移する。さらに、先行
アクセスのための一次キャッシュ5へのアクセスが発行
され、索引の結果としてキャッシュヒットする。
【0072】ただ、ここで、このヒットは先行アクセス
によるものであるので、データ応答する必要がない。そ
こで、例えば、リードアクセスの場合、発行元が、デー
タ応答しない、あるいは、ヒットしたデータの使用を無
視するようにしてもよく、そのための専用コマンドを用
意してあってもよい。さらに、この場合、キャッシュ制
御によって、応答又はデータ転送を抑止することもでき
る。また、ライトアクセスの場合についても、リードア
クセスの場合と同様に、データ応答が行われないように
することができる。
【0073】次に、ld2 に遅れてld1 のアドレス計算が
完了すると、ld1 に対する「RDY 」のキューエントリ0
の状態が、RWTADからRWTIに遷移し、一次キャ
ッシュ5へのアクセスが発行される。このアクセスが発
行された後には、調停部43によって、先行アクセスは
禁止される。ld1 による一次キャッシュ5へのアクセス
が発行されると、索引の結果としてキャッシュヒットし
てデータ応答する。そこで、ld1 に対する「RDY 」のキ
ューエントリ0の状態が、RWTIからRWTRに遷移
するタイミングで、待たされていたld2 による一次キャ
ッシュ5へのアクセスが発行され、そして、索引の結果
としてキャッシュヒットしてデータ応答する。さらに、
ld2 に対応する「RDY」のキューエントリ1の状態は、
RWTIからRWTRに遷移する。
【0074】一方、ld1 に対する「PRE 」のキューエン
トリ0では、ld1 のアドレス計算が完了し、その状態が
PWTAからPWTIに遷移されても、ld1 のアクセス
が起動されているので、先行アクセスは起動されない。
図14のケースの場合、アドレスが先行して判明してい
る為、先行アクセスが可能となったことが示されたが、
キャッシュヒットの為、結果的にはそのヒットは不要で
あった。しかし、この不要アクセスは、本来のアクセス
の空きをついて発行するものなので、性能面でのデメリ
ットにはならない。
【0075】次に、図15では、アドレス計算の後、イ
ンオーダー制御が完了し、かつ連続キャッシュミスした
ケースを示している。図15のタイミング表示の仕方
は、図13又は図14の場合と同様である。ld1 及びld
2 のアドレス計算が完了するまでは、図13に示したケ
ースのタイミングと同様である。
【0076】しかし、図15のケースでは、ld1 のアド
レス計算が完了したタイミングで、ld1 の一次キャッシ
ュ5へのアクセスが発行されるが、一次キャッシュ5の
索引の結果、キャッシュミスとなってしまう。このた
め、さらに、二次キャッシュ6へのアクセスが発行され
る。また、ld1 に続いてld2 のアドレス計算が完了する
と、ld2 の一次キャッシュ5へのアクセスが発行され
る。このときには、ld1 のアクセスは、キャッシュミス
となっており、リプレースが起動済であるため、ロード
ストアユニット4にリトライの指示が出される。
【0077】しかし、ld2 に対しては、リトライの指示
であり、調停部43の調停により、先行アクセスを起動
することが可能である。そこで、ld2 の先行アクセスが
発行され、一次キャッシュ5を索引するが、ここでも、
キャッシュミスとなり、さらに、二次キャッシュ6への
アクセスが発行される。一方、前に、ld1 の二次キャッ
シュ6へのアクセス発行に対応して、キャッシュヒット
すると、そこで、一次キャッシュ5にデータ登録し、デ
ータ応答が行われる。このタイミングで、ld2 の一次キ
ャッシュ5へのアクセスが発行され、ld2 に対する「RD
Y 」のキューエントリ1の状態は、RWTIからRTW
Rに遷移する。しかし、まだ、このタイミングでは、ld
2 の二次キャッシュ6へのアクセスが起動中であるた
め、ld2 の一次キャッシュ5へのアクセスに対して、ロ
ードストアユニット4にリトライの指示が出される。
【0078】ここで、前に起動中であったld2 の二次キ
ャッシュ6へのアクセスにおいて、キャッシュヒットし
たときには、このヒットしたデータを一次キャッシュ5
に登録する。このときには、データ応答を行わない。例
えば、リードアクセスの場合、リプレースを行うが、キ
ャッシュ制御によって、応答又はデータ返答を抑止する
ことができ、専用コマンドによってそれらを抑止するよ
うにしてもよい。また、ライトアクセスの場合も、キャ
ッシュ制御により、ライト又は応答を抑止すことがで
き、専用コマンドによってそれらを抑止するようにして
もよい。
【0079】次に、このリトライの指示が出されたと
き、ld2 に対する「RDY 」のキューエントリ1の状態
が、RTWRからRTWIに遷移し、ld2 の一次キャッ
シュ5へのアクセス発行が行われる。そして、ld2 の先
行アクセスで、一次キャッシュ5へのデータ登録が完了
しているので、そのアクセス発行により、一次キャッシ
ュ5を索引してデータ応答を行うことができる。
【0080】図15のケースでは、ld1 がキャッシュミ
スしており、ld2 は、ld1 のデータ登録の完了を待ち合
わせている。しかし、そのバックグラウンドでは、先行
アクセスが発行されており、二次キャッシュへのアクセ
スが並行して行われることが示されている。以上におい
て、本実施形態について説明してきたが、本実施形態の
制御と、インオーダー制御及びアウトオブオーダ制御と
について、前述のケースA及びBの場合の例について、
それらの動作を比較する。これらの概略を、図16に纏
めて示した。
【0081】図16中の線図について、横軸は時間を表
している。例えば、この線図の意味を、インオーダー制
御のケースAで説明すると、ロードストアユニット4か
ら命令a1が発行されると、一次キャッシュ5にアクセ
スb1する。そして、ここでキャッシュミスとなると、
二次キャッシュ6にアクセスc1する。この二次キャッ
シュ6でキャッシュヒットh1する。そこで、二次キャ
ッシュ6から、一次キャッシュ5にデータ登録し、そし
て、データ応答d1を行う。さらに、次の命令a2につ
いても同様に動作する。
【0082】ここで、インオーダー制御について見る
と、ケースAとケースBとで、変わりはなく、2つの命
令においてアクセスのオーバラップはなく、当然プログ
ラムへの要求も必要としない。そのため、制御回路の構
成には容易にできるが、性能の面で劣る。アウトオブオ
ーダー制御では、性能面では優れているといえるが、ケ
ースAにおいて、2つの命令に対してオーバラップが存
在し、ケースBでは、メンバー命令を必要とするところ
から、既存プログラム資産を生かすことができなく、制
御回路の構成上に難点があり、プログラムへの要求が必
要となる。
【0083】しかし、本実施形態による制御では、ケー
スA及びケースBの場合ともに、命令a1が発行されて
も、命令a2に対しては、図中に破線で示したように、
バックグラウンドで先行アクセスすることができる。命
令a2の先行アクセスで一次キャッシュミスしても、命
令a2がアクセスするまでに二次キャッシュから一次キ
ャッシュにデータ登録が済んでいる。そのため、命令a
2がアクセスするとき、確実にキャッシュヒットさせる
ことができる。さらに、命令a1と命令a2とはインオ
ーダーの関係を維持している。
【0084】そして、アクセスのオーバラップを可能に
できるので、アウトオブオーダー制御とほぼ同様の性能
を維持することができ、比較的簡単な制御で、しかも、
プログラムに対して何ら制限を加えないという効果を持
っている。インオーダー制御に比べても、性能面で、向
上が期待される。アウトオブオーダー制御に対しては、
制御回路面で容易なこと、プログラムに制限がないこと
などが有利な点として挙げられる。
【0085】さらに、メモリアクセスが何らかの条件を
待ち合わせている時、キャッシュのヒット判定とミス時
のリプレース動作の起動を行うための、専用キャッシュ
アクセスを定義することにより、メモリアクセスの正式
な実行に先立ち、発行するように制御する。もし、キャ
ッシュミスが発生すれば、実行の条件成立よりも前にお
いて、リプレースを起動することができ、キャッシュミ
ス時のレーテンシ短縮につながる。 (付記1) キューのエントリに格納されたアクセス命
令を選択して発行する手段と、発行された前記命令によ
りキャッシュメモリにアクセスする手段と、前記キャッ
シュメモリにアクセスし、キャッシュミスしたとき、次
メモリへのアクセス命令を発行する手段と、前記次メモ
リにアクセスして取得したデータを前記キャッシュメモ
リに登録するデータリプレース制御手段と、前記アクセ
ス命令発行手段から前記アクセス命令が発行された後、
前記キャッシュメモリに先行してアクセスすることがで
きる先行アクセス手段とを有するプロセッサ。 (付記2) 前記次メモリには、二次キャッシュメモリ
が含まれる付記1に記載のプロセッサ。 (付記3) 前記先行アクセス手段は、前記アクセスが
前記キャッシュメモリに起動されていない場合に、先行
アクセス命令を発行できる付記1に記載のプロセッサ。 (付記4) 前記先行アクセス手段は、前記キャッシュ
メモリに先行アクセスし、キャッシュミスしたとき、次
メモリへのアクセス命令を発行できる付記1に記載のプ
ロセッサ。 (付記5) 前記先行アクセス手段は、前記次メモリに
先行アクセスして取得したデータを前記キャッシュメモ
リに登録しデータリプレースを行う付記3に記載のプロ
セッサ。 (付記6) 前記先行アクセス手段は、前記次メモリへ
の前記先行アクセスがエラーとなった場合には、前記先
行アクセスを終了する付記3に記載のプロセッサ。 (付記7) 前記先行アクセス手段は、前記データリプ
レースした前記データについてデータ応答又はデータ返
答を抑止する付記5に記載のプロセッサ。 (付記8) 前記先行アクセス手段は、リードアクセス
で、応答及びデータを使用せず無視する手段を有する付
記7に記載のプロセッサ。 (付記9) 前記先行アクセス手段は、リードアクセス
で、前記キャッシュメモリを索引し、キャッシュヒット
時に、応答及びデータ転送を抑止する手段を有する付記
7に記載のプロセッサ。 (付記10) 前記先行アクセス手段は、リードアクセ
スで、前記キャッシュメモリを索引し、キャッシュミス
時に、データリプレースを行い、応答及びデータ返答を
抑止する手段を有する付記7に記載のプロセッサ。 (付記11) 前記先行アクセス手段は、ライトアクセ
スで、前記キャッシュメモリを索引し、キャッシュヒッ
ト時に、ライト及び応答を抑止する手段を有する付記7
に記載のプロセッサ。 (付記12) 前記先行アクセス手段は、ライトアクセ
スで、前記キャッシュメモリを索引し、キャッシュミス
時に、データリプレースを行い、ライト及び応答を抑止
する手段を有する付記7に記載のプロセッサ。 (付記13) 前記先行アクセス手段は、リードアクセ
スで、前記キャッシュメモリを索引し、キャッシュヒッ
ト時に、応答及びデータ転送を行わないコマンドを発行
する付記7に記載のプロセッサ。 (付記14) 前記先行アクセス手段は、リードアクセ
スで、前記キャッシュメモリを索引し、キャッシュミス
時に、データリプレースを行い、応答及びデータ返答を
行わないコマンドを発行する付記7に記載のプロセッ
サ。 (付記15) 前記先行アクセス手段は、ライトアクセ
スで、 前記キャッシュメモリを索引し、キャッシュヒッ
ト時に、ライト及び応答を行わないコマンドを発行する
付記7に記載のプロセッサ。 (付記16) 前記先行アクセス手段は、ライトアクセ
スで、前記キャッシュメモリを索引し、キャッシュミス
時に、データリプレースを行い、ライト及び応答を行わ
ないアクセス種を有する付記7に記載のプロセッサ。 (付記17) 前記先行アクセス手段は、前記先行アク
セスのアドレス変換エラーが発生した場合に、キャッシ
ュヒット判定及びデータリプレースを行わないことを特
徴とする付記7乃至16のいずれかに記載のプロセッ
サ。 (付記18) 要求したデータアクセスがエラーで終了
した場合、キャッシュステートを無効状態にすることを
特徴とする付記10、12、14又は16に記載のプロ
セッサ。 (付記19) 前記先行アクセス手段は、前記キャッシ
ュメモリのデータリプレース処理の最大数nの時、前記
先行アクセスに関する起動リプレースの同時実行数をm
(m<n)に制限する手段を有することを特徴とする付
記10、12、14又は16に記載のプロセッサ。 (付記20) 前記先行アクセス手段は、受理されない
先行アクセスのデータリプレースについて再度のキャッ
シュアクセス要求を生成することを特徴とする付記19
に記載のプロセッサ。 (付記21) 前記先行アクセス手段は、受理されない
先行アクセスのデータリプレースについて破棄すること
を特徴とする付記19に記載のプロセッサ。 (付記22) 少なくとも第1キュー選択論理回路と、
第2キュー選択論理回路と、調停部とを有し、キャッシ
ュメモリへのアクセス発行制御を行うキャッシュ制御装
置であって、前記第1キュー選択論理回路は、命令発行
ユニットからキューに格納された前記キャッシュメモリ
へのアクセス命令について、順次選択し、前記第2キュ
ー選択論理回路は、命令発行ユニットからキューに格納
された前記キャッシュメモリへの前記アクセス命令にお
いて、未発行のアクセス命令について前記第1キュー選
択論理回路の選択に先行して選択し、前記調停部は、前
記第1キュー選択論理回路が選択した前記アクセス命令
と、前記第2キュー選択論理回路が選択した前記先行ア
クセス命令とを調停して、前記キャッシュメモリにアク
セスを行うことを特徴とするキャッシュ制御装置。
【0086】
【発明の効果】以上のように、本発明によるキャッシュ
リプレース制御では、メモリアクセスが何らかの条件を
待ち合わせているとき、キャッシュヒットの判定とキャ
ッシュミス時のリプレース動作の起動を行うための専用
キャッシュアクセスを定義し、メモリアクセスの正式な
実行に先立ち、先行アクセスを発行するように制御する
ようにしたので、キャッシュミスが発生すれば、正式な
実行の条件成立よりも前に、リプレース起動を行え、キ
ャッシュミス時のレーテンシの短縮することができる。
そして、そのキャッシュリプレース制御による命令処理
では、インオーダー制御とアウトオブオーダ制御との両
者の長所を有し、プログラム制限のないインオーダー制
御を達成することができる。
【図面の簡単な説明】
【図1】コンピュータの概略ブロック構成を示す図であ
る。
【図2】リザベーションステーション及びロードストア
ユニットのシステム構成を示す図である。
【図3】キャッシュメモリの構成を示す図である。
【図4】リプレース制御におけるアクセス状態の遷移を
示す図である。
【図5】インオーダー制御でのリプレース制御の処理フ
ローを示す図である。
【図6】図5に続くリプレース制御の処理フローを示す
図である。
【図7】キャッシュミス予測による次ラインリプレース
制御を付加したインオーダー制御でのリプレース制御の
処理フローを示す図である。
【図8】図7に続くリプレース制御の処理フローを示す
図である。
【図9】本実施形態によるリザベーションステーション
及びロードストアユニットのシステム構成を示す図であ
る。
【図10】本実施形態によるリプレース制御における先
行アクセス状態の遷移を示す図である。
【図11】本実施形態による先行アクセスを含むリプレ
ース制御の処理フローを示す図である。
【図12】図11に続くリプレース制御の処理フローを
示す図である。
【図13】連続キャッシュヒットした場合におけるアク
セス状態の具体的タイミングを示すタイムチャート図で
ある。
【図14】連続キャッシュヒットし先行アクセスが有る
場合におけるアクセス状態の具体的タイミングを示すタ
イムチャート図である。
【図15】連続キャッシュミスした場合におけるアクセ
ス状態の具体的タイミングを示すタイムチャート図であ
る。
【図16】本実施形態の制御と、インオーダー及びアウ
トオブオーダー制御とを線図で比較する図である。
【符号の説明】
1…プリフェッチユニット 2…命令発行ユニット 3…リザベーションステーション 31〜34…キュー 35…格納先選択論理回路 4…ロードストアユニット 41、42…キュー選択論理回路 43…調停部 5…一次キャッシュメモリ 51…タグ部 52…データ部 53…リプレース制御部 6…二次キャッシュメモリ 7…システムメモリ 81〜83…演算器 9…レジスタファイル 10…一次命令キャッシュ
フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/38 310 G06F 9/38 310A 350 350X

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 キューのエントリに格納されたアクセス
    命令を選択して発行する手段と、 発行された前記命令によりキャッシュメモリにアクセス
    する手段と、 前記キャッシュメモリにアクセスし、キャッシュミスし
    たとき、次メモリへのアクセス命令を発行する手段と、 前記次メモリにアクセスして取得したデータを前記キャ
    ッシュメモリに登録するデータリプレース制御手段と、 前記アクセス命令発行手段から前記アクセス命令が発行
    された後、前記キャッシュメモリに先行してアクセスす
    ることができる先行アクセス手段とを有するプロセッ
    サ。
  2. 【請求項2】 前記先行アクセス手段は、前記キャッシ
    ュメモリに先行アクセスし、キャッシュミスしたとき、
    次メモリへのアクセス命令を発行できる請求項1に記載
    のプロセッサ。
  3. 【請求項3】 前記先行アクセス手段は、前記次メモリ
    に先行アクセスして取得したデータを前記キャッシュメ
    モリに登録しデータリプレースを行う請求項2に記載の
    プロセッサ。
  4. 【請求項4】 前記先行アクセス手段は、前記次メモリ
    への前記先行アクセスがエラーとなった場合には、前記
    先行アクセスを終了する請求項2に記載のプロセッサ。
  5. 【請求項5】 少なくとも第1キュー選択論理回路と、
    第2キュー選択論理回路と、調停部とを有し、キャッシ
    ュメモリへのアクセス発行制御を行うロードストアユニ
    ットにおけるキャッシュ制御装置であって、 前記第1キュー選択論理回路は、命令発行ユニットから
    キューに格納された前記キャッシュメモリへのアクセス
    命令について、順次選択し、 前記第2キュー選択論理回路は、命令発行ユニットから
    キューに格納された前記キャッシュメモリへの前記アク
    セス命令において、未発行のアクセス命令について前記
    第1キュー選択論理回路の選択に先行して選択し、 前記調停部は、前記第1キュー選択論理回路が選択した
    前記アクセス命令と、前記第2キュー選択論理回路が選
    択した前記先行アクセス命令とを調停して、前記キャッ
    シュメモリにアクセスを行うことを特徴とするキャッシ
    ュ制御装置。
JP2000302795A 2000-10-02 2000-10-02 キャッシュ制御装置及びプロセッサ Withdrawn JP2002108703A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000302795A JP2002108703A (ja) 2000-10-02 2000-10-02 キャッシュ制御装置及びプロセッサ
US09/817,258 US6772297B2 (en) 2000-10-02 2001-03-27 Cache controlling device and processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000302795A JP2002108703A (ja) 2000-10-02 2000-10-02 キャッシュ制御装置及びプロセッサ

Publications (1)

Publication Number Publication Date
JP2002108703A true JP2002108703A (ja) 2002-04-12

Family

ID=18784090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000302795A Withdrawn JP2002108703A (ja) 2000-10-02 2000-10-02 キャッシュ制御装置及びプロセッサ

Country Status (2)

Country Link
US (1) US6772297B2 (ja)
JP (1) JP2002108703A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007097017A1 (ja) * 2006-02-27 2009-07-09 富士通株式会社 バッファリング装置およびバッファリング方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185703B2 (en) 2003-07-31 2012-05-22 Silicon Graphics International Corp. Detection and control of resource congestion by a number of processors
AU2010201718B2 (en) * 2010-04-29 2012-08-23 Canon Kabushiki Kaisha Method, system and apparatus for identifying a cache line
GB2510655B (en) * 2013-07-31 2015-02-25 Imagination Tech Ltd Prioritizing instructions based on type
US9811469B2 (en) 2013-12-16 2017-11-07 Empire Technology Development Llc Sequential access of cache data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278920A (ja) 1995-04-05 1996-10-22 Hitachi Ltd プロセッサ
US5854934A (en) * 1996-08-23 1998-12-29 Hewlett-Packard Company Optimizing compiler having data cache prefetch spreading
JPH11102320A (ja) 1997-09-29 1999-04-13 Mitsubishi Electric Corp キャッシュシステム
US6401192B1 (en) * 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
US6446170B1 (en) * 1999-01-19 2002-09-03 International Business Machines Corporation Efficient store machine in cache based microprocessor
US6389529B1 (en) * 1999-06-25 2002-05-14 International Business Machines Corporation Method for alternate preferred time delivery of load data
US6418516B1 (en) * 1999-07-30 2002-07-09 International Business Machines Corporation Method and system for managing speculative requests in a multi-level memory hierarchy

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007097017A1 (ja) * 2006-02-27 2009-07-09 富士通株式会社 バッファリング装置およびバッファリング方法
JP4779010B2 (ja) * 2006-02-27 2011-09-21 富士通株式会社 バッファリング装置およびバッファリング方法
US8533368B2 (en) 2006-02-27 2013-09-10 Fujitsu Limited Buffering device and buffering method

Also Published As

Publication number Publication date
US20020040421A1 (en) 2002-04-04
US6772297B2 (en) 2004-08-03

Similar Documents

Publication Publication Date Title
JP3852474B2 (ja) コンピュータシステム
US7533227B2 (en) Method for priority scheduling and priority dispatching of store conditional operations in a store queue
US20030145159A1 (en) SRAM controller for parallel processor architecture
US20070234009A1 (en) Processor having a dedicated hash unit integrated within
JP2007536626A (ja) ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
US8352712B2 (en) Method and system for specualtively sending processor-issued store operations to a store queue with full signal asserted
JP3876034B2 (ja) 主メモリへの帯域幅を保持するシステム
US7725659B2 (en) Alignment of cache fetch return data relative to a thread
US20030196072A1 (en) Digital signal processor architecture for high computation speed
JP2002108703A (ja) キャッシュ制御装置及びプロセッサ
JP5630281B2 (ja) ベクトル命令制御回路及びリストベクトルの追い越し制御方法
JP2004234420A (ja) 割り込み制御方式及び割り込み制御方法
JP4680340B2 (ja) プロセッサ
JPH08221270A (ja) データ処理装置
JPH10307723A (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: 20071204