JPH08278920A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH08278920A
JPH08278920A JP7104703A JP10470395A JPH08278920A JP H08278920 A JPH08278920 A JP H08278920A JP 7104703 A JP7104703 A JP 7104703A JP 10470395 A JP10470395 A JP 10470395A JP H08278920 A JPH08278920 A JP H08278920A
Authority
JP
Japan
Prior art keywords
speed cache
data
signal
instruction
way
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
JP7104703A
Other languages
English (en)
Inventor
Noriharu Hiratsuka
憲晴 平塚
Satoru Kokuni
哲 小國
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 JP7104703A priority Critical patent/JPH08278920A/ja
Publication of JPH08278920A publication Critical patent/JPH08278920A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 高速キャッシュと低速キャッシュを備えるプ
ロセッサにおいてデータ競合発生時のペナルティを低減
することにある。 【構成】 命令の実行において高速キャッシュミスが生
じかつデータ競合検出器102でデータ競合を検出した
とき、低速キャッシュ134で読み出したデータをライ
ン153を介して高速キャッシュ124に書き込む。ま
た、高速キャッシュの各ラインの各ウェイにデータ競合
検出フラグ108を設けると共に、高速キャッシュにデ
ータ競合検出フラグ制御回路107、データ競合検出フ
ラグ108、追い出しウェイ決定器109を設け、デー
タ競合検出器102でデータ競合を検出した高速キャッ
シュのラインのウェイのフラグを立て、ウェイにフラグ
が立っているとき該ウェイのデータが追い出されにくい
ようにしている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はパイプライン方式のプロ
セッサに係り、特に、高速キャッシュおよび低速キャッ
シュを備えるプロセッサに関する。
【0002】
【従来の技術】大容量のメモリ装置は低速である(すな
わち、アクセスのレイテンシーが大きい)ために、大容
量のメモリ装置とは別に小容量の高速な(すなわち、ア
クセスのレイテンシーが小さい)メモリを付加してメモ
リシステムを構成する方法は、以前から行われていた。
従来の2階層キャッシュ装置は、大容量の低速メモリか
ら成る2次キャッシュと、小容量の高速なメモリからな
る1次キャッシュから構成されている。一般に、大容量
のキャッシュを高速で動作させることは困難であるため
にこのような構成となている。この構成においては、前
記2次キャッシュが低速であるために、通常は前記1次
キャッシュのみ使用する。そして、前記2次キャッシュ
は、前記1次キャッシュが1次キャッシュミスを発生し
た時のみ使用されるされる。このような方法では、1次
キャッシュミスが発生した場合のペナルティサイクル数
が大きくなるという問題があった。
【0003】また、従来の記憶装置には、フルアソシア
ティブの小容量キャッシュメモリと、ダイレクトマップ
方式の大容量キャッシュメモリとを用いたものがある。
この例は、Compcon94のダイジェストペーパー
ズの第375〜382頁に記述されている「PA720
0:PA−RISC Processorwith I
ntegrated High Performanc
e MPBus Interface」に示されてい
る。この構成では、大容量メモリのアクセス時間を高速
化するためにダイレクトマップ方式を採用し、ダイレク
トマップ方式によって生じるスラッシング現象を防止す
るためにフルアソシアティブの小容量メモリを付加した
ものと考えられる。この構成では、どちらのメモリと
も、アドレス加算器とキャッシュメモリを併せて2サイ
クルのレイテンシーでアクセスする。すなわち、アドレ
ス加算器のレイテンシーを1と考えると、キャッシュメ
モリのレイテンシーは実質1と考えることができる。そ
のために、大容量メモリに対する読み出しにおいては小
容量メモリに比べてペナルティサイクル数が増加しない
代わりに、大容量メモリに対しても高速なアクセスタイ
ムが要求される。したがって、マシンサイクルが非常に
小さい高速プロセッサにおいては、この構成を実現する
ことは困難である。
【0004】
【発明が解決しようとする課題】上記の問題を解消する
ために、メモリを小容量の高速メモリと大容量の低速メ
モリにより構成し、かつ、大容量の低速メモリを小容量
の高速メモリと並列に動作させる方法が有効であると考
えられる。このことによって、小容量の高速メモリにデ
ータがなくてかつ大容量の低速メモリにデータが存在し
た場合のペナルティが削減される可能性がある。しか
し、この方法においても、低速なメモリから読み出した
データを次の命令がすぐに使用する場合(すなわち、デ
ータ競合が派生した場合)はペナルティが削減されな
い。さらに、低速なメモリから読み出したデータを含む
ラインを前記低速メモリから高速なメモリに転送する場
合、その転送中には高速キャッシュを使用できないとい
う問題は依然として解決されない。本発明の目的は、高
速キャッシュと低速キャッシュを備えるプロセッサにお
いてデータ競合発生時のペナルティを低減することにあ
る。本発明の他の目的は、高速キャッシュと低速キャッ
シュを備えるプロセッサにおいてデータ競合を起こし易
いデータを含むキャッシュラインを高速キャッシュに格
納することにある。本発明の他の目的は、高速キャッシ
ュと低速キャッシュを備えるプロセッサにおいて低速キ
ャッシュから高速キャッシュへのデータ転送をデータ競
合発生時にのみデータ競合によるペナルティ期間に転送
し、転送処理によるペナルティを無くすことにある。
【0005】
【課題を解決するための手段】階層構造を有する記憶装
置を備えるパイプライン方式のプロセッサにおいて、該
記憶装置におけるキャッシュメモリとして、レイテンシ
ーの短いキャッシュメモリ(以下、高速キャッシュと呼
ぶ)とレイテンシーの長いキャッシュメモリ(以下、低
速キャッシュと呼ぶ)を設け、低速キャッシュの読み出
し出力が得られるステージにおいて高速キャッシュの読
み出し出力と低速キャッシュの読み出し出力のいずれか
を選択し、キャッシュメモリの読み出し出力とするよう
にしている。また、高速キャッシュおよび低速キャッシ
ュはアクセスピッチが同じであるようにしている。さら
に、先行命令の各ステージにおける後続命令とのデータ
競合を検出するデータ競合検出器を設け、先行命令によ
り前記高速キャッシュから読み出したデータを前記デー
タ競合検出器から出力されるデータ競合検出信号のタイ
ミングで取り出し、後続命令のためのデータとして使用
するようにしている。さらに、ライン転送指示器を設
け、前記データ競合検出器はデータ競合検出信号と高速
キャッシュからの高速キャッシュミス判定信号に基づき
高速キャッシュ転送指示信号を出力し、前記ライン転送
指示器は該高速キャッシュ転送指示信号と前記高速キャ
ッシュミス判定信号を入力し、ライン転送信号を出力
し、該ライン転送信号により前記低速キャッシュの読み
出し出力を前記高速キャッシュに転送記憶するようにし
ている。さらに、ライン転送指示器を設け、前記データ
競合検出器はデータ競合検出信号と高速キャッシュから
の高速キャッシュミス判定信号に基づき高速キャッシュ
転送指示信号を出力し、前記ライン転送指示器は該高速
キャッシュ転送指示信号と前記高速キャッシュミス判定
信号と、低速キャッシュミス判定信号を入力し、ライン
転送信号を出力し、該ライン転送信号は、前記高速キャ
ッシュ転送指示信号と高速キャッシュミス判定信号が存
在するとき前記低速キャッシュの読み出し出力を前記高
速キャッシュに転送記憶し、前記低速キャッシュミス判
定信号が存在するとき下位階層記憶装置内のデータを前
記高速キャッシュおよび低速キャッシュに転送記憶する
ようにしている。前記高速キャッシュをnウェイセット
アソシアティブ方式(n≧2)とし、該高速キャッシュ
には、各ラインの各ウェイにデータ競合検出フラグを設
けると共にデータ競合検出フラグ制御回路と追い出しウ
ェイ決定器を設け、該データ競合検出フラグ制御回路
は、前記データ競合検出器のデータ競合検出信号と、デ
ータ競合に係る高速キャッシュのラインの各ウェイに対
するヒット判定信号に基づき各ウェイのデータ競合検出
フラグを書き込み、前記追い出しウェイ決定器は、高速
キャッシュのラインの記憶内容を追い出すとき、該ライ
ンの各ウェイの内、データ競合検出フラグが立っていな
いウェイの記憶内容を追い出すようにしている。さら
に、前記データ競合検出器は、先行命令の書き込みレジ
スタ番号と後続命令の読み出しレジスタ番号を入力し、
先行命令の書き込みレジスタ番号を直列接続された複数
の遅延手段に入力し、パイプラインの各ステージのタイ
ミングに対応する遅延手段に出力される先行命令の書き
込みレジスタ番号と後続命令の読み出しレジスタ番号を
比較して、一致するときデータ競合検出信号を出力する
ようにしている。また、前記高速キャッシュを2ウェイ
セットアソシアティブ方式とし、該高速キャッシュに
は、各ラインの各ウェイにデータ競合検出フラグを設け
ると共に各ラインに該両データ競合検出フラグの値が等
しいときいずれのウェイのデータを追い出すかを指示す
る追い出しウェイ指示フラグを設け、さらにデータ競合
検出フラグ制御回路と追い出しウェイ決定器を設け、前
記追い出しウェイ決定器は、前記高速キャッシュがアク
セスされたとき読み出される前記各フラグに基づき追い
出しウェイ判定信号を出力し、該データ競合検出フラグ
制御回路は、前記データ競合検出信号に基づくデータ競
合検出フラグ変更信号と低速キャッシュミス判定信号と
該判定信号出力時まで遅延された高速キャッシュの各ウ
ェイヒット判定信号および同じく遅延された前記追い出
しウェイ判定信号を入力して、前記各ウェイのデータ競
合検出フラグおよび追い出しウェイ指示フラグを出力
し、該出力された各フラグを前記高速キャッシュに格納
するようにしている。
【0006】
【作用】ライン転送指示器により、一度データ競合を起
こしたデータを含むキャッシュラインが優先的に高速キ
ャッシュに格納されるので、データ競合を起こし易いデ
ータを含むキャッシュラインを高速メモリに置くことが
でき、データ競合発生時のペナルティを低減することが
できる。また、データ競合検出フラグによってデータ競
合を起こしやすいラインに印を付けることができ、さら
に、追い出しウェイ決定器によって印の付けられていな
いラインが優先的に高速キャッシュから追い出すことが
できる。また、低速なメモリから読み出したデータを含
むラインを前記低速メモリから高速なメモリに転送する
処理を、データ競合が発生したときのみライン転送指示
器の指示により行うことにより、データ競合によるペナ
ルティ期間に転送処理を行うことが可能となり、結果と
して、転送処理によるペナルティが無くすことができ
る。
【0007】
【実施例】図1に本発明の実施例のプロセッサの構成を
示すブロック図である。命令はパイプライン方式によっ
て処理される。以下の説明において、ある命令(先行命
令と呼ぶ)がメモリから読み出すデータを後続命令が参
照する場合において、さらに、先行命令がメモリからデ
ータを読み出し終えていないために後続命令の処理が待
たされる場合、後続命令は前記データに関してデータ競
合を起こているというものとする。デコードユニット1
01は命令をデコードすると同時にパイプラインの制御
と汎用レジスタ160の読み書きを行う。信号104は
汎用レジスタから読み出されたデータを表わす。信号1
05は、汎用レジスタから読み出されたデータまたは命
令コードの一部から切り出された定数値である。信号1
55は、汎用レジスタ160に書き込むデータを表わ
す。なお、汎用レジスタ160は、それぞれ固有の番号
が付けられた複数の汎用レジスタの総称である。デコー
ドユニット101は命令パイプラインの1ステージで処
理される。データ競合検出器102は、データ競合が発
生したかどうかを報告するデータ競合検出信号103を
出力する。データ競合検出信号103の詳細については
後述する。デコードユニット101において命令の処理
が行われるステージをDステージと呼ぶ。
【0008】演算器116はデコードユニット101か
ら出力されたデータを用いて演算を行う。信号117は
演算結果のデータを表わす。演算器116においてロー
ド命令やストア命令が処理される場合、信号117はロ
ードまたはストアを行うメモリのアドレスを表わす。演
算器116において命令の処理が行われるステージをE
ステージと呼ぶ。高速キャッシュ124はメモリのアド
レスを表わす演算器からの信号122を受け取ってキャ
ッシュを検索し、前記アドレスにより示されたデータが
高速キャッシュ124の中に存在する場合は(すなわ
ち、高速キャッシュ124がヒットした場合は)そのデ
ータを信号125に出力する。前記データが高速キャッ
シュ124に存在しない場合には(すなわち、高速キャ
ッシュ124がミスした場合には)、高速キャッシュミ
ス判定信号126に1を出力する。また、アドレスバス
123は信号117により表わされるアドレスを低速キ
ャッシュ134に送るためのバスである。命令処理にお
いて、高速キャッシュ124やアドレスバス123にお
いて処理が行われるステージをA1ステージと呼ぶ。な
お、高速キャッシュ124の出力信号125は1ワード
のデータ幅を持っており、命令で使用するデータを一度
に読み出すことができる。
【0009】低速キャッシュ134は、アドレス133
を入力してキャッシュを検索し、前記アドレスにより示
されたデータが低速キャッシュ134の中に存在する場
合は(すなわち、低速キャッシュ124がヒットした場
合は)そのデータを信号135に出力する。前記データ
が低速キャッシュ134に存在しない場合には(すなわ
ち、低速キャッシュ124がミスした場合には)、A2
ステージ低速キャッシュミス判定信号136に1を出力
する。一方、信号132は、ラッチ130に存在するデ
ータをラッチ140に転送する。この信号132は、低
速キャッシュ側の処理と高速キャッシュ側の処理のステ
ージ数を等しくするために存在する。命令処理におい
て、低速キャッシュ134と信号132において処理が
行われるステージをA2ステージと呼ぶ。なお、低速キ
ャッシュ134の出力信号135は、キャッシュライン
の大きさと同じ大きさのデータ幅を持っている。そし
て、命令で使用するデータのみではなく、そのデータを
含むキャッシュラインのすべてのデータが一度に読み出
される。
【0010】データバス143は、低速キャッシュ13
4の出力データをラッチ151に送る。また、信号14
2はラッチ140に存在するデータをラッチ150に送
る。この信号142は、低速キャッシュ側の処理と高速
キャッシュ側の処理のステージ数を等しくするために存
在する。命令処理において、データバス143と信号1
42において処理が行われるステージをA3ステージと
呼ぶ。低速キャッシュの周辺にアドレスバス123およ
びデータバス143が存在する理由は、低速キャッシュ
をデコードユニットや演算器、高速キャッシュなどから
なるプロセッサ本体と低速キャッシュを離して配置する
ことを可能にするためである。このことにより、低速キ
ャッシュには大きな面積が必要な大容量メモリを持たせ
ることができる。低速キャッシュとしては、例えば、大
容量のシンクロナスSRAMチップを用いることができ
る。データアライナ156は、低速キャッシュから読み
出されてラッチ151に格納されている1ライン分のデ
ータの中から、命令で使用する部分を切り出して信号1
57に出力する。データセレクタ154は高速キャッシ
ュ124がヒットした場合にはラッチ150のデータ
を、高速キャッシュ124がヒットしなかった場合には
データアライナ156の出力を選択する。セレクタ15
4の出力は、信号155を経由してデコードユニット1
01の内部にある汎用レジスタ160に書き込まれる。
命令処理において、データアライナ156やセレクタ1
54で処理が行われ、汎用レジスタへデータが書き込ま
れるステージをWステージと呼ぶ。
【0011】バイパスセレクタ118は、先行命令がメ
モリからロードしたデータを後続命令が使用する場合
に、キャッシュから読み出されたデータを演算器に直接
おくるために存在する。バイパスセレクタ118は図2
の各比較器の出力により制御される。先行命令において
高速キャッシュ124がヒットした場合は、先行命令の
A1ステージを終了した直後のサイクルにおいて、前記
先行命令が前記キャッシュから読み出してラッチ130
に格納されているデータをバイパスセレクタ118が選
択することにより、後続命令のEステージの処理に前記
データを使用することが可能である。先行命令において
高速キャッシュ124がヒットした場合には、また、先
行命令のA2ステージを終了した直後のサイクルにおい
て、前記先行命令が前記キャッシュから読み出してラッ
チ140に格納されているデータをバイパスセレクタ1
18が選択することにより、後続命令のEステージの処
理に前記データを使用することが可能である。さらに、
また、先行命令がA3ステージを終了した直後のサイク
ルにおいて、セレクタ154から出力されるデータを表
わす信号155をバイパスセレクタ118が選択するこ
とにより、後続命令のEステージの処理に前記データを
使用することが可能である。この場合、セレクタ154
においては、もし、前記先行命令において高速キャッシ
ュ124がヒットしていれば高速キャッシュ124から
読み出されたデータを表わす信号152が、さもなくば
低速キャッシュ134から読み出したデータを表わす信
号157がそれぞれ選択される。なお、実行順序におい
て前記先行命令のすぐ次の命令が前記後続命令であると
は限らない。前記先行命令と前記後続命令の間にいくつ
かの命令が入る可能性もある。
【0012】このプロセッサにおいて、高速キャッシュ
はA1ステージで、低速キャッシュはA2ステージで動
作する。すなわち、両方のキャッシュともに、1サイク
ルピッチで動作する。一方、演算器で計算されたアドレ
スを出力する信号117がラッチ120またはラッチ1
21に格納されてから、演算器の入力となるラッチ13
0またはラッチ151にデータが格納されるまでのサイ
クル数、すなわち、レイテンシーは、高速キャッシュを
使用した場合は1サイクルであるが、低速キャッシュを
使用した場合は3サイクルとなる。データバス153
は、ラッチ151に格納されている、低速キャッシュか
ら出力されたデータを、高速キャッシュ124に転送す
るための信号である。また、データバス190は、プロ
セッサ外部にある下位階層記憶装置(例えば、メインメ
モリ)に接続されており、下位階層記憶装置から送られ
てくるデータを低速キャッシュ134または低速キャッ
シュ134と高速キャッシュ124の両方に転送するた
めの信号である。前者および後者の転送は、キャッシュ
ラインを単位として行われる。以下、これらの転送をラ
イン転送と呼ぶ。
【0013】ライン転送指示器106は、どのメモリか
らどのメモリへライン転送を行うかどうかを指示する。
また、データ競合検出フラグ108は、高速キャッシュ
のラインごとに存在し、そのラインを読み出したときに
データ競合が発生したことがあるかどうかを記憶してい
る。さらに、データ競合検出フラグ制御回路107は、
データ競合検出信号103の値によってデータ競合検出
フラグ108の値を制御する。追い出しウェイ決定器1
09は、ライン転送によってあるキャッシュラインを高
速キャッシュに転送する際に、そのラインをどのウェイ
に格納するかを決定する。この転送によって、そのライ
ンと同一のカラムアドレスを持ち、前記ウェイと同一の
ウェイに格納されていたキャッシュラインは、高速キャ
ッシュから追い出される。ライン転送指示器106の出
力がデータ競合検出信号103をもとに決定されること
は本発明の特徴である。また、本発明の別の特徴は、キ
ャッシュが、データ競合検出信号103の値によって制
御されるデータ競合検出フラグ108を有し、さらに、
その値を用いて追い出しウェイ決定器109によって追
い出しウェイを決定することは本発明の別の特徴であ
る。以下、データ競合検出信号103、ライン転送指示
器106、データ競合検出フラグ制御回路107、デー
タ競合検出フラグ108、及び、追い出しウェイ決定器
109について順次説明する。
【0014】図2はデータ競合検出器102の詳細を表
わす。読み出しレジスタ番号200は、Dステージに出
力される信号であり、デコードユニット101において
命令をデコードすることによって生成される。この番号
は、前記命令によって読み出される汎用レジスタの番号
を表わす。書き込みレジスタ番号201は、Dステージ
に出力される信号であり、デコードユニット101にお
いて命令をデコードすることによって得られる。この番
号は、前記命令によって書き込まれる汎用レジスタの番
号を表わす。ラッチ202及びラッチ203は、それぞ
れ読み出しレジスタ番号200及び書き込みレジスタ番
号201の値を保持する。信号204及び信号205
は、それぞれ、読み出しレジスタ番号200及び書き込
みレジスタ番号201の値を遅延させた値を持つ信号で
あり、Eステージに出力される。信号204はEステー
ジで処理される命令が読み出すべき汎用レジスタの番号
を示す。この汎用レジスタの内容は、Dステージで直接
汎用レジスタから信号104に読み出された後に、Eス
テージで信号112を経由して演算器に転送される場合
と、Eステージにおいて汎用レジスタを通さずにバイパ
スセレクタ118を経由して演算器116に転送される
場合の2つの場合がある。信号205はEステージで処
理されている命令が書き込もうとしている汎用レジスタ
の番号を示す。信号211は信号205を遅延させた信
号であり、A1ステージで処理されている命令が書き込
もうとしている汎用レジスタの番号を示す。信号221
は信号211を遅延させた信号であり、A2ステージで
処理されている命令が書き込もうとしている汎用レジス
タの番号を示す。信号231は信号221を遅延させた
信号であり、A3ステージで処理されている命令が書き
込もうとしている汎用レジスタの番号を示す。
【0015】比較器212、比較器222、比較器23
2は、それぞれ、信号211、信号221、信号231
と信号204を比較する。もし、信号の値が等しけれ
ば、それぞれ、信号213、223、233に値1を出
力する。例えば、比較器212の出力である信号213
の値が1であるということは、A1ステージで処理され
ている命令(先行命令と呼ぶ)の書き込みレジスタ番号
とEステージで処理されている命令(後続命令と呼ぶ)
の読み出しレジスタ番号が一致していることを意味す
る。すなわち、先行命令が汎用レジスタに書き込もうと
しているデータを後続命令が読み出そうとしている。他
の比較器についても、先行命令が処理されているステー
ジが異なる以外は同様である。
【0016】高速キャッシュミス判定信号126は、高
速キャッシュがミスしたときに1が出力される信号であ
る。この信号はA1ステージで出力される。信号225
は信号126を遅延させた信号であり、A2ステージで
処理されている命令が高速キャッシュをミスしていたこ
とを表わす。信号235は信号225を遅延させた信号
であり、A3ステージで処理されている命令が高速キャ
ッシュをミスしていたことを表わす。
【0017】信号227は、A2ステージで処理されて
いる命令(先行命令と呼ぶ)が高速キャッシュをミスし
ており、さらに、前記先行命令が汎用レジスタに書き込
もうとしているデータをEステージで処理されている命
令(後続命令と呼ぶ)が読み出そうとしているときに1
となる。この信号が1のとき、A2ステージの先行命令
は高速キャッシュをミスしているのでまだキャッシュか
らデータが読み出していない。したがって、後続命令は
Eステージは実行することができない。信号237は、
A3ステージで処理されている命令(先行命令と呼ぶ)
が高速キャッシュをミスしており、さらに、前記先行命
令が汎用レジスタに書き込もうとしているデータをEス
テージで処理されている命令(後続命令と呼ぶ)が読み
出そうとしているときに1となる。この信号が1のと
き、A3ステージの先行命令は高速キャッシュをミスし
ているのでまだキャッシュからデータが読み出していな
い。したがって、後続命令Eステージは実行することが
できない。信号213はA1ステージで処理されている
命令(先行命令と呼ぶ)が汎用レジスタに書き込もうと
しているデータをEステージで処理されている命令(後
続命令と呼ぶ)が読み出そうとしているときに1とな
る。この信号が1のとき、A3ステージの先行命令はま
だキャッシュからデータが読み出していない。したがっ
て、後続命令Eステージは実行することができない。
【0018】Eステージ再実行信号255は、現在Eス
テージで処理されている命令を、次のサイクルにおいて
もEステージで処理し直すことを指示する信号である。
信号255は、信号213、または、信号227、また
は、信号237が1のときに1となる。信号255が1
であるとき、Eステージで処理されている命令が汎用レ
ジスタから読み出そうとしているデータが、まだ先行命
令によって用意されていないことを意味する。したがっ
て、信号255が1である間はEステージを実行するこ
とができない。
【0019】高速キャッシュ転送指示信号237は、前
述した通り、A3ステージで処理されている命令(先行
命令と呼ぶ)が高速キャッシュをミスしており、さら
に、前記先行命令が汎用レジスタに書き込もうとしてい
るデータをEステージで処理されている命令(データ競
合命令と呼ぶ)が汎用レジスタから読み出そうとしてい
るときに1となる。あるサイクルにおいてこの信号が1
であるとき、前述した通り次のサイクルにおいてデータ
競合命令のEステージの処理が再実行される。さらに、
この再実行と同時に低速キャッシュから読み出されたキ
ャッシュラインを高速キャッシュに書き込む処理が行わ
れる。本信号237はこの書き込みを指示する信号でも
ある。高速キャッシュに書き込むことによって、前記先
行命令と前記後続命令からなる命令列と同じ様な命令列
を再び実行した場合に、データ競合が発生する可能性を
減らすことができる。
【0020】ある命令(先行命令と呼ぶ)がA2ステー
ジにあり、かつ、信号223が1であるときには、Eス
テージで処理されている命令(後続命令と呼ぶ)がデー
タ競合を起こす可能性がある。もし、先行命令において
高速キャッシュがヒットしていれば、データ競合が発生
しない。もし、先行命令において高速キャッシュがミス
していれば、データ競合が発生する。もし、先行命令に
おいて高速キャッシュがヒットしている場合には、先行
命令が読み出したデータが高速キャッシュにあり続ける
限り、次回に同じような命令列を実行した場合にも高速
キャッシュがヒットしてデータ競合が発生しない。この
ことから、A2ステージで処理されている命令が読み出
したデータがもし高速キャッシュに存在した場合には、
信号223が1であるときにはそのデータが高速キャッ
シュから追い出されにくくすれば良いことが分かる。信
号233は、信号223と同様な意味を持つ。ただし、
信号223がA2ステージに関係する代わりに、信号2
33ではA3ステージに関係する。信号251は信号2
23を遅延させた信号である。信号253は、A3ステ
ージで処理されている命令が読み出そうとしたデータが
もし高速キャッシュに存在した場合に、そのデータを高
速キャッシュから追い出されにくくすることを指示する
信号である。
【0021】以上のように、データ競合検出器102の
特徴は、先行命令において高速キャッシュがヒットした
かどうかによって、データ競合検出器102の出力を制
御することである。高速キャッシュがミスしているとき
は、低速キャッシュからデータが読み出されるまでデー
タ競合の検出を行って、検出されればEステージ再実行
信号255を出力する。このようなデータ競合検出器1
02の特徴によって、高速キャッシュがミスしていて、
かつ、後続命令のデータ競合がない場合において後続命
令を実行することが可能となる。
【0022】図3はライン転送指示器の詳細を表わす。
以下、ライン転送指示器について説明する。高速キャッ
シュミス判定信号126と低速キャッシュミス判定信号
145は、図1に示されたものと同じである。また、高
速キャッシュ転送指示信号237は図2に示されたもの
と同じである。信号311は信号126を遅延させたも
ので、A2ステージにおいて出力される。信号321は
信号311を遅延させたものである。信号321、14
5、237は、いずれもA3ステージで出力される信号
である。真理値表330は、信号321、145、23
7を入力してライン転送指示信号180を出力する組み
合わせ論理である。ライン転送指示信号180は、信号
341、342、343の3本により構成される。信号
341は低速キャッシュから高速キャッシュへの転送を
指示する。信号342は、下位階層記憶装置から高速キ
ャッシュへの転送を指示する。信号343は下位階層記
憶装置から低速キャッシュへの転送を指示する。
【0023】真理値表の中で、行331、334は、高
速キャッシュ、低速キャッシュ、下位階層記憶装置をそ
れぞれ第1階層キャッシュ、第2階層キャッシュ、メイ
ンメモリと見なした場合の従来技術における3階層メモ
リの動作によく似ている。行331は、高速キャッシュ
も低速キャッシュもミスしない場合には、いかなるライ
ン転送も指示しないことを意味する。行334は、低速
キャッシュがミスした場合には、下位階層記憶装置から
高速キャッシュと低速キャッシュの両方への転送を指示
する。なお、この真理値表では、低速キャッシュがミス
した場合には高速キャッシュも必ずミスすることを仮定
している。真理値表の中で、行332、333は本発明
の特徴となっている。行333は、高速キャッシュがミ
スして低速キャッシュがヒットした場合において、さら
に、高速キャッシュ転送指示信号237が1であったと
きのみ低速キャッシュから高速キャッシュにライン転送
を行うことを指示する。行332は、高速キャッシュが
ミスして低速キャッシュがヒットした場合においても、
高速キャッシュ転送指示信号237が0であった場合に
はいかなるライン転送も指示しないことを意味する。高
速キャッシュ転送指示信号237は、前述のように、デ
ータ競合が発生したときに1となる信号である。このよ
うに、データ競合が発生したときのみ高速キャッシュへ
の転送を指示することにより、容量が比較的少ない高速
キャッシュを有効に利用することができる。
【0024】図4は高速キャッシュ124に含まれてい
る、データ競合検出フラグ制御回路107とデータ競合
検出フラグ108と追い出しウェイ決定器109の詳細
を表わす。カラムアドレス400は、高速キャッシュの
カラムを表わすアドレスであり、アドレスを表わす信号
122(図1)の一部分である。なお、本実施例におい
ては、キャッシュは2ウェイセットアソシアティブ方式
を用いているものとする。データ競合フラグは高速キャ
ッシュのラインごとに存在し、ウェイ0データ競合フラ
グ410とウェイ1データ競合フラグ411により構成
される。ウェイ0データ競合フラグ410はウェイ0の
キャッシュラインに対応する。ウェイ1データ競合フラ
グ411はウェイ1のキャッシュラインに対応する。デ
ータ競合フラグ410及び411は、高速キャッシュの
カラムの数だけそれぞれ存在し、カラムアドレス400
によってそれぞれひとつが選択されて、それぞれ信号4
21、信号422として出力される。ある命令によって
あるラインに含まれるデータが読み出され、かつ、前記
命令の後続命令によってそのデータが参照された場合
に、前記ラインに対応するデータ競合フラグが1とな
る。本発明においては、データ競合フラグが1であるラ
インは、1でないラインに比べて高速キャッシュから追
い出されにくい。
【0025】LRUフラグ412は追い出しウェイ指示
フラグであり、キャッシュのカラムごとに存在し、カラ
ムアドレス400によって、ウェイ0データ競合フラグ
410とウェイ1データ競合フラグ411が同じ値のと
き、追い出されにくいウェイの番号を指示する。カラム
アドレス400によって選択される2つのラインのう
ち、LRU信号420が0のときはウェイ0のライン
が、LRU信号420が1のときはウェイ1のラインが
追い出されにくい。
【0026】追い出しウェイ決定器109は、あるライ
ンを高速キャッシュに転送する際に、転送する先のウェ
イを決定する組み合わせ論理である。このとき、追い出
しウェイ決定器109により指定されたウェイと、カラ
ムアドレス400により指定されるカラムによって決定
される位置にそのラインのデータが転送されると同時
に、既にその位置に格納されていたデータは高速キャッ
シュから追い出される。図4において追い出しウェイ決
定器109の機能を表わす組み合わせ論理を真理値表の
形で示している。追い出しウェイ判定信号440は、古
いデータを追い出して新しいラインを転送するウェイを
表わす信号であり、値が1であればウェイ1に、値が0
であればウェイ0にラインを転送することを意味する。
真理値表の行430から行433は、ウェイ0データ競
合検出フラグの値を表わす信号421とウェイ1データ
競合検出フラグの値を表わす信号422が同じ値の場合
を示している。この場合には、従来のキャッシュと同じ
ように、LRUフラグによって追い出しウェイを決定し
ている。すなわち、LRU信号420が0のときはウェ
イ1を表わす値を、LRU信号420が1のときはウェ
イ0を表わす値を追い出しウェイ判定信号として出力し
ている。
【0027】行434は、ウェイ1データ競合検出フラ
グ信号422が1でウェイ0データ競合検出フラグ信号
421が0の場合を表わす。本発明においては、この場
合、ウェイ1のラインのデータはウェイ0のラインのデ
ータよりもデータ競合が起こしやすいものと仮定してい
る。そこで、この場合、LRU信号420の値にかかわ
らず、ウェイ0を表わす値を追い出しウェイ判定信号と
して出力する。行435は、行435に対して信号42
1と信号422の値がいれ代わったた場合であり、ウェ
イ1を表わす値を追い出しウェイ判定信号として出力す
る。このようにLRU信号のみでなく、データ競合検出
フラグ信号を用いて追い出しウェイを決定していること
に特徴がある。
【0028】データ競合検出フラグ制御回路107は、
データ競合検出信号に基づくデータ競合検出フラグ変更
信号253などをもとに、データ競合検出フラグ41
0、411やLRUフラグ412の値を制御する。A3
ステージウェイ0ヒット判定信号450は、命令におい
て高速キャッシュのウェイ0がヒットした場合に1とな
る信号であり、その命令がA3ステージで処理されてい
るときに出力される。A3ステージウェイ1ヒット判定
信号451は、命令において高速キャッシュのウェイ1
がヒットした場合に1となる信号であり、その命令がA
3ステージで処理されているときに出力される。低速キ
ャッシュミス判定信号は145は、命令において低速キ
ャッシュをミスした場合に1になる信号であり、その命
令がA3ステージで処理されているときに出力される。
A3ステージ追い出しウェイ判定信号452は追い出し
ウェイ判定信号440を遅延させた信号であり、命令が
A3で処理されているときに出力される。
【0029】LRUフラグ変更信号454、ウェイ0デ
ータ競合検出フラグ変更信号455、ウェイ1データ競
合検出フラグ変更信号456は、それぞれ、LRUフラ
グ412、ウェイ0データ競合検出フラグ410、ウェ
イ1データ競合検出フラグ411を変更するための信号
である。これらの信号は、「0」、「1」、「NC」の
3つの値を表わす信号である。それぞれの変更信号は、
それに対応するそれぞれのフラグに対して、値「0」に
よってフラグを0にセットすることを指示し、値「1」
によってフラグを1にセットすることを指示し、値「N
C」によってフラグの値を変更しないことを指示する。
なお、フラグの値の変更は、信号416で示されるカラ
ムアドレスに対応するフラグに対してのみ行われる。以
下の説明においてもこのことが前提である。信号416
はカラムアドレス400を遅延させた信号であり、A3
ステージにおいて出力される。
【0030】図4において、データ競合検出フラグ制御
回路107の論理は真理値表の形式で表現されている。
行460、461、462、463はデータ競合検出フ
ラグ変更信号253が1の場合を示す。信号が1の場
合、A3ステージで処理されている命令によってメモリ
から読み出されたデータが格納されているキャッシュラ
インに対応するデータ競合検出フラグが1にセットされ
る。行460は前記命令において高速キャッシュのウェ
イ0がヒットした場合を示す。この場合、ウェイ0デー
タ競合検出フラグ410をセットするために信号455
(CCF0)が1となる。行462は、前記命令におい
て高速キャッシュがヒットせず、かつ、追い出しウェイ
信号が0を示していた場合を示す。この場合、前記命令
が読み出そうとしたデータを含むラインが高速キャッシ
ュのウェイ0に転送されるので、ウェイ0データ競合検
出フラグ410をセットするために信号455(CCF
0)が1となる。行464、465、468はデータ競
合検出フラグ変更信号253が0の場合であり、データ
競合検出フラグ410、411は変更されない。行46
6、467はデータ競合検出フラグ変更信号253が0
の場合であり、かつ、高速キャッシュと低速キャッシュ
が両方がミスした場合を示す。この場合、ラインデータ
が転送される方のウェイにあるデータ競合検出フラグが
0にリセットされる。例えば、行466はAステージ追
い出しウェイ判定信号452の値が0の場合を示してい
るので、ウェイ0にラインデータが転送される。この場
合、ウェイ0データ競合検出フラグ410がリセットさ
れる。
【0031】図1に示されるプロセッサの動作を表わす
タイムチャートを図5ないし図7に示す。図5ないし図
6はキャッシュミスが発生しない場合を、図7にはキャ
ッシュミスが発生する場合をそれぞれ示す。図5はデー
タ競合が発生しない場合のタイムチャートである。な
お、この図では先行命令において低速キャッシュはヒッ
トしているものと仮定している。高速キャッシュはヒッ
トしていてもミスしていてもかまわない。501は時刻
を表わす。時刻の単位はサイクルであり、以下のタイム
チャートでも同様である。図の中に長方形は、長方形の
置かれた位置により示される時刻に、長方形の置かれた
位置により示されるステージにおいて、ある命令の処理
が行われていることを表わす。太線の長方形で示される
命令502はデータをメモリから読み出してある汎用レ
ジスタに書き込む命令(先行命令と呼ぶ)を表わす。ま
た、細線の長方形で示される命令503は命令502の
後に実行され、データをある汎用レジスタから読み出し
て演算器(116)の入力データとして使用する命令
(後続命令と呼ぶ)を表わす。図5の例においては、先
行命令502で書き込まれたデータは後続命令503で
は使用されない場合が示されている。すなわち、先行命
令502が書き込む汎用レジスタの番号と後続命令50
3が読み出す汎用レジスタの番号が互いに異なる。この
ときは、先行命令502の処理の進行状況のいかんに関
わらず命令503がすぐに実行される。図における時
刻、先行命令、後続命令の表記方法は、以下同様であ
る。
【0032】図6及び図7はデータ競合が発生する場合
のタイムチャートである。すなわち、先行命令502が
書き込む汎用レジスタの番号と後続命令503が読み出
す汎用レジスタの番号が互いに等しい。これらの図のう
ち、図6は先行命令が高速キャッシュをヒットした場合
を示す。先行命令602が高速キャッシュをヒットした
場合、A1ステージでデータを読み出すことができる。
すなわち、時刻3で先行命令がデータを読み出す。しか
し、時刻3の開始時点においては、先行命令がデータ読
み出しが完了していないために、後続命令のEステージ
は実行できない。そこで次のサイクル(時刻4)に後続
命令のEステージが再実行される。そして、時刻4にお
いて、先行命令602が読み出したデータが演算器11
6(図1)に入力されて、後続命令603のEステージ
の処理は完了する。矢印609は、時刻3にA1ステー
ジにおいて処理中の先行命令602が読み出したデータ
が、時刻4にEステージにおいて処理中の後続命令60
3が使用することを便宜的に表わしたものである。以下
の図でも同様である。後続命令のEステージは、図5の
場合と比べて1サイクル遅れる。すなわち、後続サイク
ルが被るペナルティは1サイクルである。このように、
先行命令が高速キャッシュをヒットしたときにデータ競
合が発生した場合には、わずか1サイクルのペナルティ
で後続命令を実行することができる。
【0033】図7は先行命令において高速キャッシュが
ミスし、低速キャッシュがヒットした場合のタイムチャ
ートである。先行命令702はA3ステージでデータを
ラッチ151(図1)にセットし、次の時刻(時刻6)
において後続命令703が演算器116(図1)の入力
としてそのデータを使用することができる。したがっ
て、時刻6より前においては後続命令703のEステー
ジの処理は実行できずに待たされる。そして、その処理
は時刻6において実行される。Eステージの処理は3回
待たされて4回目に実行されるので、後続命令が被るペ
ナルティは3サイクルである。このように、データ競合
が発生した場合には、先行命令が高速キャッシュをミス
した場合(図7)は、ミスしない場合(図6)に比べて
ペナルティが大きくなる。
【0034】今日、高級言語から命令列を生成するコン
パイラの進歩によってデータ競合が発生する頻度は以前
よりは減ってきてはいるもののなくすことはできていな
い。データ競合が起こる例として、ポインタによるデー
タ参照処理が上げられる。この処理の中で、ある命令
(先行命令)はメモリから汎用レジスタにポインタを読
み込み、後続命令はそのポインタの値を用いてデータの
アドレスを計算し、メモリからデータを読み出す。この
とき、後続命令がポインタの値を参照するときにデータ
競合が発生する。ポインタのようにデータ競合を起こし
やすいデータは、高速メモリに存在した方が存在しない
場合よりも後続命令が被るペナルティのサイクル数が少
なくてすむ。そこで、本発明においては、メモリからデ
ータを読み出す際に高速キャッシュをミスし、かつ、後
続命令がそのデータに関してデータ競合を起こしていた
場合、そのデータを含むキャッシュラインを高速キャッ
シュに転送する。このことにより、次にこのデータが読
み込まれたときには、ペナルティが少なくて済む。図7
の場合においても、低速キャッシュの内容が高速キャッ
シュに転送している。次にこの転送について説明する。
命令702はA2ステージ(時刻4)において、この命
令が汎用レジスタに格納すべきデータを低速キャッシュ
から読み出すとともに、そのデータが属するキャッシュ
ラインの中に含まれるデータをすべて読み出し、これら
のデータをラッチ141(図1)に格納する。命令70
2はA3ステージ(時刻5)において、ラッチ141に
格納に格納されたデータをデータバス143に出力し、
ラッチ151に格納する。時刻6においては次の3つの
動作が行われる。 (1)ラッチ151に格納されたデータが、データアラ
イナ156とセレクタ154を経由してデコードユニッ
ト101の中にある汎用レジスタ160に書き込まれ
る。 (2)ラッチ151に格納されたデータがデータアライ
ナ156とセレクタ154とバイパスセレクタ118を
経由して演算器116に送られる。演算器116では後
続命令703がこのデータを使用してEステージの処理
を行う。 (3)ラッチ151に格納されたラインデータのすべて
がセレクタ181を経由して高速キャッシュ124に書
き込まれる。時刻7においては、後続命令703がA2
ステージの処理を行う。
【0035】本発明のひとつの特徴は、データ競合によ
り後続命令703がEステージに留まっている間に、低
速キャッシュから高速キャッシュへの転送が終了してし
まうことにある。時刻3、時刻4、時刻5において後続
命令703はデータ競合のためにEステージの処理を実
行することはできないが、その間に先行命令702は低
速キャッシュからラインデータを読み出している。ま
た、時刻6において後続命令703はデータ競合が解除
されてEステージの処理を実行するが、その間に先行命
令702は高速キャッシュへラインデータを書き込む
(記号711)。後続命令703が演算器において計算
したアドレスをもとにメモリからデータを読み出す命令
であったとしても、高速キャッシュからの読み出しは時
刻7(記号712)に行われるので、先行命令702と
は処理が衝突しない。このように、データ競合による命
令処理の待ちとライン転送による命令処理の待ちを重ね
合せることにより、プロセッサ全体としての処理性能を
向上することが可能である。
【0036】次に、図7で示される場合について、デー
タ競合検出器(図2)およびライン転送指示器(図3)
の動作を説明する。先行命令702のEステージの処理
が実行される時刻2において、先行命令702がメモリ
から読み出したデータを書き込もうとしている汎用レジ
スタの番号(以下、先行命令の書き込みレジスタ番号と
呼ぶ)はラッチ203に格納されている(記号72
0)。なお、図7では、先行命令の書き込みレジスタ番
号が「7」である場合を示している。時刻3において、
先行命令の書き込みレジスタ番号はラッチ205に格納
されている(記号721)。また、時刻3においては、
後続命令703のEステージの処理が開始されており、
ラッチ202に後続命令703が読み出す汎用レジスタ
の番号(以下、後続命令の読み出しレジスタ番号と呼
ぶ)が格納されている(記号724)。なお、図7で
は、後続命令の読み出しレジスタ番号が「7」である場
合を示している。先行命令の書き込みレジスタ番号と後
続命令の読み出しレジスタ番号は同一であるため、比較
器213の出力が1となり、Eステージ再実行信号25
5の値が1となる。この信号は、次の時刻(時刻4)に
も後続命令のEステージの処理を再実行するように指示
する。また、高速キャッシュミス判定信号126には1
が出力される(記号713)。時刻4において、先行命
令の書き込みレジスタ番号はラッチ220に存在する
(記号722)。一方、後続命令の読み出しレジスタ番
号は、Eステージ再実行信号255の指示によりラッチ
202に留まる(記号725)。比較器222はラッチ
220とラッチ202を比較して1を出力する。一方、
ラッチ224は1を出力するので、信号227が1とな
る。信号227は、先行命令が高速キャッシュをミスし
たために、後続命令が使用するデータがメモリからまだ
読み出されていないことを表わす。信号227によりE
ステージ再実行信号255が1となる(記号731)。
この信号は、次の時刻(時刻5)にも後続命令のEステ
ージの処理を再実行するように指示する。
【0037】時刻5において、先行命令の書き込みレジ
スタ番号はラッチ230に存在する(記号723)。一
方、後続命令の読み出しレジスタ番号は、Eステージ再
実行信号255の指示によりラッチ202に留まる(記
号727)。比較器232はラッチ230とラッチ20
2を比較して1を出力する。一方、ラッチ234は1を
出力するので、信号237が1となる(記号734)。
信号237によりEステージ再実行信号255が1とな
る(記号732)。この信号は、次の時刻(時刻6)に
も後続命令のEステージの処理を再実行するように指示
する。また、高速キャッシュ転送指示信号237は、ラ
イン転送指示器(図3)に送られる。ライン転送指示器
(図3)には、時刻3において値1を持つ高速キャッシ
ュミス判定信号126が入力されているので(記号71
3)、時刻4においてはラッチ310から、時刻5にお
いてはラッチ320から値1が出力される。時刻5にお
いては、低速キャッシュミス判定信号には0が(記号7
16)、高速キャッシュ転送指示信号には1が出力され
る(記号734)。真理値表330においては行333
にしたがって信号341に1が出力される。信号341
は、低速キャッシュから高速キャッシュへデータを転送
することを指示する。この信号はライン転送指示信号1
80を構成するひとつの信号として高速キャッシュに送
られる。時刻6において、信号341の指示に従い、低
速キャッシュからデータバス153経由で送られてきた
ラインデータが高速キャッシュに格納される(記号71
1)。
【0038】
【発明の効果】本発明によれば、データ競合発生時にお
ける記憶装置によるペナルティを低減することができ
る。また、データ競合を起こし易いデータを含むキャッ
シュラインを高速キャッシュに記憶させておくことがで
き、かつ該キャッシュラインを追い出されにくくするこ
とができる。また、低速キャッシュから高速キャッシュ
へのデータ転送をデータ競合発生時にのみデータ競合に
よるペナルティ期間に転送するため、転送処理によるペ
ナルティを無くすことができる。
【図面の簡単な説明】
【図1】本発明の1実施例のプロセッサの構成を示す図
である。
【図2】データ競合検出器の構成を示す図である。
【図3】ライン転送指示器の構成を示す図である。
【図4】高速キャッシュに含まれるデータ競合検出フラ
グ制御回路、データ競合検出フラグ、追い出しウェイ決
定器を詳細に説明するための図である。
【図5】プロセッサにおけるデータ競合なしの場合の動
作のタイムチャートを示す図である。
【図6】プロセッサにおけるデータ競合ありの場合の動
作のタイムチャートを示す図である。
【図7】プロセッサにおける高速キャッシュミスがあり
かつでデータ競合発生時の場合の動作のタイムチャート
を示す図である。
【符号の説明】
101 デコードユニット 102 データ競合検出器 103 データ競合検出信号 106 ライン転送指示器 107 データ競合検出フラグ制御回路 108 データ競合検出フラグ 109 追い出しウェイ決定器 114、118、154、181 セレクタ 116 演算器 124 高速キャッシュ 134 低速キャッシュ 212、222、232 比較器 252、254 ORゲート 226、236 ANDゲート

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 階層構造を有する記憶装置を備えるパイ
    プライン方式のプロセッサにおいて、 該記憶装置におけるキャッシュメモリとして、レイテン
    シーの短いキャッシュメモリ(以下、高速キャッシュと
    呼ぶ)とレイテンシーの長いキャッシュメモリ(以下、
    低速キャッシュと呼ぶ)を設け、低速キャッシュの読み
    出し出力が得られるステージにおいて高速キャッシュの
    読み出し出力と低速キャッシュの読み出し出力のいずれ
    かを選択し、キャッシュメモリの読み出し出力とするこ
    とを特徴とするプロセッサ。
  2. 【請求項2】 請求項1記載のプロセッサにおいて、 前記高速キャッシュおよび低速キャッシュはアクセスピ
    ッチが同じであることを特徴とするプロセッサ。
  3. 【請求項3】 請求項1または請求項2記載のプロセッ
    サにおいて、 先行命令の各ステージにおける後続命令とのデータ競合
    を検出するデータ競合検出器を設け、先行命令により前
    記高速キャッシュから読み出したデータを前記データ競
    合検出器から出力されるデータ競合検出信号のタイミン
    グで取り出し、後続命令のためのデータとして使用する
    ことを特徴とするプロセッサ。
  4. 【請求項4】 請求項3記載のプロセッサにおいて、ラ
    イン転送指示器を設け、 前記データ競合検出器はデータ競合検出信号と高速キャ
    ッシュからの高速キャッシュミス判定信号に基づき高速
    キャッシュ転送指示信号を出力し、 前記ライン転送指示器は該高速キャッシュ転送指示信号
    と前記高速キャッシュミス判定信号を入力し、ライン転
    送信号を出力し、 該ライン転送信号により前記低速キャッシュの読み出し
    出力を前記高速キャッシュに転送記憶することを特徴と
    するプロセッサ。
  5. 【請求項5】 請求項3記載のプロセッサにおいて、 ライン転送指示器を設け、 前記データ競合検出器はデータ競合検出信号と高速キャ
    ッシュからの高速キャッシュミス判定信号に基づき高速
    キャッシュ転送指示信号を出力し、 前記ライン転送指示器は該高速キャッシュ転送指示信号
    と前記高速キャッシュミス判定信号と、低速キャッシュ
    ミス判定信号を入力し、ライン転送信号を出力し、 該ライン転送信号は、前記高速キャッシュ転送指示信号
    と高速キャッシュミス判定信号が存在するとき前記低速
    キャッシュの読み出し出力を前記高速キャッシュに転送
    記憶し、前記低速キャッシュミス判定信号が存在すると
    き下位階層記憶装置内のデータを前記高速キャッシュお
    よび低速キャッシュに転送記憶することを特徴とするプ
    ロセッサ。
  6. 【請求項6】 請求項3乃至請求項5のいずれかの請求
    項記載のプロセッサにおいて、 前記高速キャッシュをnウェイセットアソシアティブ方
    式(n≧2)とし、該高速キャッシュには、各ラインの
    各ウェイにデータ競合検出フラグを設けると共にデータ
    競合検出フラグ制御回路と追い出しウェイ決定器を設
    け、 該データ競合検出フラグ制御回路は、前記データ競合検
    出器のデータ競合検出信号と、データ競合に係る高速キ
    ャッシュのラインの各ウェイに対するヒット判定信号に
    基づき各ウェイのデータ競合検出フラグを書き込み、 前記追い出しウェイ決定器は、高速キャッシュのライン
    の記憶内容を追い出すとき、該ラインの各ウェイの内、
    データ競合検出フラグが立っていないウェイの記憶内容
    を追い出すようにすることを特徴とするプロセッサ。
  7. 【請求項7】 請求項3乃至請求項5のいずれかの請求
    項記載のプロセッサにおいて、 前記データ競合検出器は、先行命令の書き込みレジスタ
    番号と後続命令の読み出しレジスタ番号を入力し、先行
    命令の書き込みレジスタ番号を直列接続された複数の遅
    延手段に入力し、パイプラインの各ステージのタイミン
    グに対応する遅延手段に出力される先行命令の書き込み
    レジスタ番号と後続命令の読み出しレジスタ番号を比較
    して、一致するときデータ競合検出信号を出力すること
    を特徴とするプロセッサ。
  8. 【請求項8】 請求項3乃至請求項5のいずれかの請求
    項記載のプロセッサにおいて、 前記高速キャッシュを2ウェイセットアソシアティブ方
    式とし、該高速キャッシュには、各ラインの各ウェイに
    データ競合検出フラグを設けると共に各ラインに該両デ
    ータ競合検出フラグの値が等しいときいずれのウェイの
    データを追い出すかを指示する追い出しウェイ指示フラ
    グを設け、さらにデータ競合検出フラグ制御回路と追い
    出しウェイ決定器を設け、 前記追い出しウェイ決定器は、前記高速キャッシュがア
    クセスされたとき読み出される前記各フラグに基づき追
    い出しウェイ判定信号を出力し、 該データ競合検出フラグ制御回路は、前記データ競合検
    出信号に基づくデータ競合検出フラグ変更信号と低速キ
    ャッシュミス判定信号と該判定信号出力時まで遅延され
    た高速キャッシュの各ウェイヒット判定信号および同じ
    く遅延された前記追い出しウェイ判定信号を入力して、
    前記各ウェイのデータ競合検出フラグおよび追い出しウ
    ェイ指示フラグを出力し、 該出力された各フラグを前記高速キャッシュに格納する
    ことを特徴とするプロセッサ。
JP7104703A 1995-04-05 1995-04-05 プロセッサ Pending JPH08278920A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7104703A JPH08278920A (ja) 1995-04-05 1995-04-05 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7104703A JPH08278920A (ja) 1995-04-05 1995-04-05 プロセッサ

Publications (1)

Publication Number Publication Date
JPH08278920A true JPH08278920A (ja) 1996-10-22

Family

ID=14387849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7104703A Pending JPH08278920A (ja) 1995-04-05 1995-04-05 プロセッサ

Country Status (1)

Country Link
JP (1) JPH08278920A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772297B2 (en) 2000-10-02 2004-08-03 Fujitsu Limited Cache controlling device and processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772297B2 (en) 2000-10-02 2004-08-03 Fujitsu Limited Cache controlling device and processor

Similar Documents

Publication Publication Date Title
KR100278328B1 (ko) 캐시 미스 버퍼
JP3800383B2 (ja) コンピュータのランダムアクセスメモリシステム
FI80532B (fi) Centralenhet foer databehandlingssystem.
EP0402787B1 (en) Cache miss prediction method and apparatus
US4959771A (en) Write buffer for a digital processing system
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
JPH10232827A (ja) 先取りキャッシュ書戻しの方法と装置
KR970011208B1 (ko) 파이프라인된 기록버퍼 레지스터
KR950006590B1 (ko) 캐시 메모리를 갖는 마이크로 프로세서
JP3498673B2 (ja) 記憶装置
US20080022051A1 (en) Systems and Methods for Providing Fixed-Latency Data Access in a Memory System Having Multi-Level Caches
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
JPH07121437A (ja) コンピュータシステム
JPH08278920A (ja) プロセッサ
JP3277730B2 (ja) 半導体メモリ装置、及び、それを用いた情報処理装置
JPH05298097A (ja) 情報処理装置
JP3295728B2 (ja) パイプラインキャッシュメモリの更新回路
US6671781B1 (en) Data cache store buffer
JP3152312B2 (ja) データ処理装置及びデータ処理方法
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
JP3697990B2 (ja) ベクトル処理装置のオペランドキャッシュ
JP2000347931A (ja) キャッシュメモリおよびキャッシュメモリ制御方法
JPH06348592A (ja) ライトバッファ制御方式
JPH06266623A (ja) キャッシュメモリ及びキャッシュメモリ制御方法
JPH02236651A (ja) メモリバッファ