JPH04303248A - マルチバッファデータキャッシュを具えているコンピュータシステム - Google Patents

マルチバッファデータキャッシュを具えているコンピュータシステム

Info

Publication number
JPH04303248A
JPH04303248A JP4003835A JP383592A JPH04303248A JP H04303248 A JPH04303248 A JP H04303248A JP 4003835 A JP4003835 A JP 4003835A JP 383592 A JP383592 A JP 383592A JP H04303248 A JPH04303248 A JP H04303248A
Authority
JP
Japan
Prior art keywords
data
cache
buffer
computer system
storing
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.)
Granted
Application number
JP4003835A
Other languages
English (en)
Other versions
JP3425158B2 (ja
Inventor
Chi-Hung Chi
チー ハン チー
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Koninklijke Philips Electronics NV
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 Philips Gloeilampenfabrieken NV, Koninklijke Philips Electronics NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPH04303248A publication Critical patent/JPH04303248A/ja
Application granted granted Critical
Publication of JP3425158B2 publication Critical patent/JP3425158B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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
    • 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/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子コンピュータシス
テムに関するものである。特に本発明は、比較的高速の
プロセッサと、比較的低速のメモリとの間でデータを効
果的に交換できるようにするためのコンピュータアーキ
テクチャに関するものである。
【0002】
【従来の技術】集積回路技術、及びコンピュータアーキ
テクチャにおける急速な進歩によって、比較的高速の処
理ユニットと、比較的低速のメモリとの間の”メモリ参
照ディレイギャップ”が増大するようになった。最大処
理能力100MIPS の高性能プロセッサチップを、
商用製品として入手することができる。処理ユニットと
としてこれらのプロセッサチップを使用しているマルチ
プロセッサシステムも、実現することができる。しかし
、これらの高性能システムがピークスピードでランする
のに必要なメモリシステムは、かなり複雑又はかなり高
価なシステムとなり、構成が困難であった。結果として
、多くの現行の高性能コンピュータシステムの性能のボ
トルネックは、これらの処理ユニットのスピードではな
く、むしろメモリシステムの効率である。
【0003】高速処理ユニットと、低速メモリとの間の
増大する大きなメモリ参照ディレイギャップの問題を克
服するために、従来技術でも使用されているキャッシュ
メモリを使用する。キャッシュメモリは、コンピュータ
システムの中央処理ユニットとメインメモリとの間の、
小型高速バッファメモリである。キャッシュメモリの主
な目的は、高速技術を用いての完全な主記憶装置を構成
するための関連費用を費やさずに、高速データ/命令ア
クセスを達成することにある。このことは、近い将来キ
ャッシュで参照されることが期待されるデータ/命令を
保持することによって達成される。現行のキャッシュ設
計において、命令キャッシュは常に、実行及び最適化に
関し、データキャッシュよりも高い優先順位が与えられ
る。極めて限られたチップ領域を利用することさえでき
るならば、この領域を使用し命令キャッシュを実現でき
る。命令キャッシュを実現後、更にスペースを使用する
ことができるならば、しばしば、データキャッシュをプ
ロセッサチップに配置する。これは、現在段階での命令
参照特性及びデータ参照特性の取り決めと、命令及びデ
ータの現行のキャッシュモデルでの正確性によるもので
ある。
【0004】命令参照の参照特性が強いシーケンシャル
であるため、従来技術では、”キャッシュプリフェッチ
ング(cashe prefetching )”とし
て知られている技術を用いる。この技術では、参照が実
際に必要となる以前に、キャッシュメモリで参照が行わ
れる。先取り(プリフェッチング)が正しいならば、メ
モリ参照ディレイタイムが、プログラムの実行と(部分
的に、又は完全に)オーバーラップする。分岐命令、又
はジャンプ命令のために、命令参照がシーケンシャルで
ない場合、従来技術では”ブランチターゲット予測(b
ranch target prediction)”
として知られる技術が用いられ、 どのようにしてプロ
グラムが実行されるべきかを推測する。キャッシュプリ
フェッチング技術と相俟って、推測が正しいならば、キ
ャッシュミスの回数を低減させることができる。 更に
、”ブランチターゲットバッファ又はキャッシュ” を
用い、ブランチターゲットを一方のバッファ/キャッシ
ュに配置するとともに、非ブランチ参照を他方のバッフ
ァ/キャッシュに配置することによって、キャッシュヒ
ットレシオを改善することができる。結果的に、処理ユ
ニットの管理するキャッシュミスの回数を低減させるこ
とができ、優れた命令キャッシュ性能を達成することが
できる。ここで使用されている”キャッシュヒットレシ
オ”を、処理ユニットが要求するデータ項目がキャッシ
ュメモリ内に見いだされる確率と定義し、”キャッシュ
ミスペナリー(penally )”を、キャッシュミ
スが発生する時に、処理ユニットが要求データ項目の到
着を待たなければならない時間と定義する。
【0005】1960年代にキャッシュが導入されて以
来、キャッシュヒットレシオの改善及びバス通信量の低
減のために、キャッシュ区分化技術及びマルチバッファ
キャッシュ技術がしばしば使用されている。最も一般的
に使用される従来のキャッシュ区分化技術としては以下
のものがある: ・データキャッシュVS. 命令キャッシュ:キャッシ
ュ空間を、互いに排他的な2個の区分に分割し、その一
方を命令記憶のためのものとし、他方をデータ記憶のた
めのものとする。 ・リアルタイムシステムのためのキャッシュ区分化:キ
ャッシュ空間を、幾つかの区分に分割し、タスクがラン
する度に、タスクによってただ1個の区分だけが割り当
てられ、使用される。 ・ブランチターゲットキャッシュの付加:ブランチター
ゲット命令のみを記憶するのに使用される独立バッファ
/キャッシュを、現存のキャッシュに付加する。 ・プリフェッチバッファの付加:シーケンシャルに先取
りされる命令のみを記憶するのに使用される独立バッフ
ァを、現存のキャッシュに付加する。 ・ビクティムキャッシュ又はミスキャッシュの付加:キ
ャッシュからの置換データを一時的にセーブするのに使
用される独立バッファ/キャッシュを、現存のキャッシ
ュとメインメモリとの間に付加する。
【0006】従来の技術では、一般的にデータ参照特性
を”ランダム”なものとしており、従来のデータキャッ
シュ設計に関しては正確なモデルが存在しない。結果的
に、命令キャッシュ性能を改善することのできるこれら
のキャッシング技術は、データキャッシュに応用する場
合には非効果的である。これらの技術はすべて、データ
キャッシュの設計に関して有効なものではない。第1の
技術(データキャッシュVS. 命令キャッシュ)は、
キャッシュのデータ参照からの命令参照の妨害を回避す
るためのものであり、第2の技術(リアルタイムシステ
ムのためのキャッシュ区分化)は、一方のタスクの命令
及びデータ参照の、他方のタスクの命令及びデータ参照
からの妨害を回避するためのものである。しかし、予測
することのできないデータ参照特性が依然として残る。 第3の技術(ブランチターゲットキャッシュの付加)を
、データキャッシュに適用することはできない。その理
由は、データ参照にブランチターゲットが存在しないか
らである。第4の技術(プリフェッチバッファの付加)
は、データキャッシュ性能を改善するのに特に有効とは
いえない。その理由は、データの参照特性が、シーケン
シャルというよりはむしろ、多少ランダムだからである
。データ参照のシーケンシャルな先取りによって、しば
しばデータキャッシュ性能が改善されず、低下する。 最後の技術(ビクティムキャッシュ又はミスキャッシュ
の付加)を用いて、更に関連性(associati−
vity)をキャッシュに加えることによって、データ
キャッシュ性能をわずかに改善させることができる。
【0007】
【発明が解決しようとする課題】しかし、依然として予
測することのできないデータ参照特性の問題を解決する
ことができない。
【0008】キャッシュメモリバッファ及びシステムの
編成及び構成に関しては、”High−Speed M
emory System”,Pohm and Ag
rawal,Reston Publishing C
ompany (1983)及びスミス( A.J.S
mith ) による”Cash Memories”
 、コンピューティング  サーベイズ、ボリューム1
4、ナンバ3、1982年9月、pp.473−530
において更に議論されている。これらの論文を、従来技
術の参考として、ここに引用する。
【0009】キャッシュプリフェッチング技術は、命令
キャッシュの場合と比べて、データキャッシュの場合に
は、相対的にさほど有効なものではない。しばしば、実
際にキャッシュプリフェッチング技術によって、機械性
能が低下してしまう。このことは主に、キャッシュ汚染
及びバス回線争奪の問題に帰する。ここで、”キャッシ
ュ汚染”とは、データ又は命令がキャッシュに取り込ま
れるが、データ又は命令がキャッシュ内に存在する間に
参照されない場合に関するものである。”バス回線争奪
”とは、バスが同時に作用することができるリクエスト
よりも、データバスを使用しようとするリクエストの方
が多い場合である。事実上通常シーケンシャルな命令参
照の特性と比較して、データ参照の全体的な特性は多少
ランダムである。従来技術では、命令の参照特性と比較
して、データの参照特性がより特定困難であるため、命
令キャッシュプリフェッチングよりも、データキャッシ
ュプリフェッチングにおいて、より深刻にキャッシュ汚
染が発生する。キャッシュ空間は、先取りされた非参照
データを記憶するのに不要であるばかりでなく、すぐに
参照されるキャッシュ内のデータを、非参照データで置
き換える。非参照データの取り込みも、バス通信量に含
まれる。バス帯域幅のリソースが限られているシステム
においては、バス回線争奪が発生し、機械性能が更に低
下し得る。バスが非参照データを先取りするのに忙しい
場合、バスを使用するための他のリクエスト(例えば、
命令先取り)をディレイさせる。このことは、処理速度
が極めて速いものの、そのバス帯域幅がバスの物理的制
約、例えばチップの総ピン数によって制限されている高
性能プロセッサチップにおいてよく発生する。ブランチ
手法予測、及びブランチターゲットバッファ/キャッシ
ュを、データキャッシュに適用することはできない。従
来のデータキャッシュ設計では、データ参照を、そのシ
ーケンシャルな参照特性に従って、色々な種類に分割し
ていない。データ参照では、命令参照におけるシーケン
シャルな参照からのブランチ参照の区別をしていない。 このため、現在のデータキャッシュ設計の性能は、命令
キャッシュ設計の性能よりもかなり劣っている。
【0010】本発明は、データキャッシュの効率を改善
することを目的としている。
【0011】
【課題を解決するための手段】この目的を達成するため
本発明は、処理ユニットと;該処理ユニットによって使
用されるデータを記憶するためのメインメモリと;該メ
インメモリと前記処理ユニットとに接続され、前記メイ
ンメモリから、処理ユニット命令によって参照されるデ
ータを記憶及び/又は先取りするためのデータキャッシ
ュ;とを具えているコンピュータシステムであって、前
記データキャッシュが:前記処理ユニットからのデータ
リクエストを分析し、前記データ参照の局所性の統計的
予測関連性に基づき、前記データリクエストのデータ参
照を複数の個々の群に分類するためのデータリクエスト
分析手段と;  少なくとも2個のデータバッファと;
各データ参照を前記バッファのいづれか1個に割り当て
、前記統計的予測関連性に基づき、キャッシュ性能を最
適なものとするための手段とを具えていることを特徴と
する。リクエストを分析する手段によって、(スタック
データ、又はグローバル変数、又はアレイエレメント、
又は直接アドレス指定されたデータなどの)他の参照局
所性を有する命令から生じるデータ項目を、時間的局所
性又は空間的局所性などの参照局所性に従って、他のデ
ータバッファに配置する。この参照局所性は、データ項
目が要求される際に、データリクエストを分析する手段
によって動的に予測される。このようにして、プログラ
ムの他の部分からアクセスされる際に、如何に参照局所
性を予測するかに基づき、1データ項目を種々のバッフ
ァに配置することができる。データバッファ内のデータ
の保持、データサイズ、及びストラテジの先取りを、各
データバッファ毎に独立に最適なものとし、例えば、予
測することのできない1タイプの参照特性によって他の
データバッファが汚染されたり、有効なデータ項目が他
のデータバッファから取り除かれたりしないようにして
いる。
【0012】本発明の一例では、統計的関連性に基づき
、前記個々の群が、参照特性の比較的強い時間的局所性
を有していると予測されるS参照データ群を具え;前記
個々の群が、参照特性の比較的弱い時間的局所性と、参
照特性の比較的強い空間的局所性とを有していると予測
されるP参照データ群も具え;前記データバッファとし
て、S参照データを記憶するためのSバッファと、P参
照データを記憶するとともに、先取りするためのPバッ
ファとを設けることを特徴とする。
【0013】アドレス指定方式及びアドレス計算に用い
られるレジスタに従って、データ参照を2種類の、いわ
ゆるS参照とP参照とに分割する。メインメモリからの
データ参照をキャッシュに記憶する。このキャッシュは
、それぞれ1種のデータ参照を処理するのに最適化され
、使用される2個のバッファ、SバッファとPバッファ
とを具えている。SバッファをS参照にとって最適なも
のとし、PバッファをP参照にとって最適なものとする
。これら2種類の参照の各々が、他方の参照タイプによ
って共有されない、それ自体識別し得る固有の特徴を有
している。S参照の場合ではなく、P参照の場合に、参
照されるデータに対する近傍データを先取りすることに
よって、最適化を行う。命令キャッシングに関して説明
するが、他の種類のメインテナンスストラテジを、Sバ
ッファ又はPバッファに対して用いることもできる。 このようにマルチバッファデータキャッシュを用いて、
キャッシュの性能をかなり改善することができる。
【0014】現在のキャッシュ設計において、プログラ
ム参照特性は、しばしば参照の局所性との関連で説明さ
れる。2種類の局所性、すなわち”時間的局所性”(す
なわち、時間に関する局所性)と、”空間的局所性”(
すなわち、空間に関する局所性)とがある。短いタイム
ピリオドにわたって、参照プログラムによって行われる
メモリ参照は、アドレス空間にわたって一様に分散され
ていない。その代わりに、参照は、しばしば小さなクラ
スタに発生する。すなわち、ワーキングセットの参照で
ある。第1のタイプの局所性、すなわち、時間的局所性
とは、現在使用されている情報が近い将来再び使用され
る可能性があるということである。これは、ほとんどの
従来キャッシュの基本的原理である。すなわち、たいて
いのプログラムは、プログラム実行中に2回以上、デー
タ又はコードの使用を試みる。この種の参照特性は、プ
ログラムループ中に見いだすことができる。このプログ
ラムループでは、データ参照と命令参照の両方が、各ル
ープ毎に、又はプログラム実行中に数回コールされるサ
ブルーチンにおいて、繰り返し使用される。
【0015】通常、アドレス空間は、この空間の多数の
個々の連続セグメントに分類され、ほんのわずかのセグ
メントが同時に繰り返し参照される。第2のタイプの局
所性である、空間的局所性は、近い将来のプログラム参
照位置が、現在の参照位置付近に存在する傾向にあると
いうことを暗に示すものである。このタイプの参照特性
は、多くの場合にシーケンシャルな順番で命令が実行さ
れる科学的なプログラムにおいては一般的なものであり
、通常メモリ内で連続なアレイエレメントのシーケンス
をアクセスする。
【0016】キャッシュ内及び容易に入手することので
きる現在の参照位置(空間的位置)付近の情報とともに
、これらの時間的及び空間的局所性を用い、本発明は、
プロセッサが現在処理している(時間的位置の)情報を
保持しょうとするものである。しかしながら、この設計
原理が命令キャッシュにおいては良好に作動するが、デ
ータキャッシュにおいては良好に作動しないということ
は、一般的了解事項である。このことは、命令とデータ
との間の参照特性が著しく相違することに起因するもの
である。命令参照特性が強いシーケンシャルな参照特性
を有するとともに、高い予測可能性を有するものの、従
来技術では、データ参照特性がランダムであり、命令参
照よりも予測可能性がかなり低い。管理スキーマの現在
のキャッシュモデルの多くが、主に命令キャッシュのた
めに設計されたものであるため、データキャッシュに応
用する場合に、これらのスキーマ及び制御メカニズムが
さほど有効でないということは、驚くべきことではない
。しかし、注意深い研究を行うことによって、データ参
照特性が実際には見た目ほどランダムなものではないこ
とが示された。実際、データ参照特性は、S参照とP参
照との組み合わせであり、これら2タイプの参照は、そ
れぞれ予測可能性の高いものである。第1のタイプのデ
ータ参照であるP参照は、主にポインタを用いたデータ
アレイエレメントのアクセスによるものである。 P参照は、命令のシーケンシャルな参照特性と類似する
、強いシーケンシャルの参照特性を有する。このため、
このタイプのデータの次の参照を、高い確率で予測する
ことができる。すなわち、前方向(又は、おそらくは後
方向)の参照の強い空間的局所性を有しているというこ
とである。しかし、P参照の有効範囲は通常極めて短く
、通常、数命令であり、その参照周波数は極めて低い。 このことは、P参照の時間的局所性が極めて弱いという
ことを示している。
【0017】第2のタイプのデータ参照であるS参照は
、主にスタック変数及びグローバルスカラー変数のアク
セスによるものである。通常、このタイプの参照は、有
効範囲周期の間にしばしば参照される。このようにして
、このタイプの参照では、参照特性の時間的局所性が強
いことがわかる。しかし、S参照の空間的局所性は極め
て弱い。その理由は、そのアクセスパターンがほぼラン
ダムだからである。
【0018】アドレス指定方式、及び命令符号化の間の
アドレス計算に用いられるレジスタを調べることによっ
て、ランタイムにおいて、データ参照がS参照であるか
、P参照であるかを極めて正確に推測することができる
。このことは、間接アドレス指定方式を使用する参照の
みをP参照とし、数個のレジスタを特定目的のために設
計しているからである。例えば、直接アドレス指定方式
を用いる参照をS参照とすることが好ましい。スタック
ポインタレジスタを用いる間接参照とは、多くの場合局
所的なスタック変数である。
【0019】データ参照をS参照とP参照とに分割する
ことによって、これら2タイプのデータ参照それぞれの
局所性を更に正確に記述することができる。このデータ
参照モデルに基づき、本発明によるコンピュータシステ
ムは、S参照データの先取り及び記憶に最適なSバッフ
ァと、P参照データの先取り及び記憶に最適なPバッフ
ァとを有するデータキャッシュを具えている。このデー
タキャッシュは、アドレス指定方式を分析するための制
御ユニットと、命令符号化の間のアドレス計算に用いら
れるレジスタとを具え、参照データがS参照であるかP
参照であるかを決定する。
【0020】
【実施例】以下図面を参照して実施例を説明するに、図
1は本発明によるマルチバッファデータキャッシュを示
す図である。このキャッシュは、処理ユニット10が参
照するデータをメインメモリ20から取り込む。従来の
技術において通例ことであるが、処理ユニット10は、
命令を符号化し、包含されるデータ参照のタイプを決定
する符号化ユニット30と;間接モードデータアドレス
指定方式に用いられるレジスタ;とを具えている。
【0021】マルチバッファデータキャッシュ100 
を、メインメモリ20と処理ユニット10との間に接続
する。マルチバッファデータキャッシュ100 は、S
バッファ40と、Pバッファ50と、制御ユニット60
とを具えている。 制御ユニット60は、データの流れを統制し、Pバッフ
ァ50とSバッファ40とが各々、それ自体識別し得る
固有の特徴及び制御スキーマを具え、1タイプのデータ
参照を最適にできるようにしている:すなわち、Sバッ
ファ40を用いてS参照を処理し、Pバッファ50を用
いてP参照を処理する。その他の点で、バッファは、従
来技術と同様に構成され、接続される。
【0022】ある命令においてデータ参照が見いだされ
る時はいつでも、そのアドレス指定方式と、演算をアド
レス指定するのに用いられるレジスタとが、符号化ユニ
ット30によって決定され、制御ユニット60に送られ
る。 制御ユニット60は、S参照とするか、P参照とするか
を決定する。このことは、制御ユニットロジックに組み
込まれている所定のルールに従って行われる。例えば、
間接アドレス指定方式を使用し、アドレス計算にスタッ
クポインタレジスタを使用する参照を、S参照とする。 データ参照を行う際に、2個のバッファの各々をチェッ
クし、キャッシュミス又はキャッシュヒットが存在する
かどうかを判断する。
【0023】主に、Sバッファ40はS参照を記憶する
のに用いられる。S参照の参照優先順位が強いシーケン
シャルではないので、シーケンシャルな先取りは用いら
れない。このことは、データ先取りによって発生する重
大なキャッシュ汚染により、性能が向上せず、性能が低
下してしまうからである。このことは、Sバッファのサ
イズが小さい場合には特に顕著である。S参照にSバッ
ファキャッシュヒットが存在する場合、キャッシュの内
容に変更はない。P参照に、Sバッファキャッシュヒッ
トが存在する場合、キャッシュの内容に変更はない。S
参照にキャッシュミスが存在する場合、このキャッシュ
ミスに対応するキャッシュブロックが、メインメモリか
らSバッファへと取り込まれる。
【0024】主に、Pバッファ50はP参照を記憶する
のに用いられる。P参照の参照優先順位が強いシーケン
シャルであるため、Pバッファでは、シーケンシャルな
先取りが用いられる。P参照にPバッファキャッシュヒ
ットが存在する場合、キャッシュの内容に変更はない。 S参照にPバッファキャッシュヒットが存在する場合、
このS参照に対応するキャッシュブロックが、Pバッフ
ァからSバッファへと転送される。ブロック転送の後、
現在のS参照を包含しているPバッファのキャッシュブ
ロックを空(empty )とマークする。P参照にキ
ャッシュミスが存在する場合、このキャッシュミスに対
応するキャッシュブロックが、メインメモリからPバッ
ファへと取り込まれる。すべての取り込まれたデータを
、Pバッファに配置する。通常の先取りと同様に、先取
りスキーマを用いることができる。
【0025】本発明を2個のバッファキャッシュについ
て説明したが、2個に限定されるものではない。Pバッ
ファ及びSバッファに加えて、付加的なキャッシュバッ
ファを設け、特定のデータ取り込み及び記憶特性を、固
有の特性を有する他の実質的に同一なデータ参照タイプ
に対して最適なものとすることができる。
【図面の簡単な説明】
【図1】本発明によるデータキャッシュを具えているコ
ンピュータシステムを示す図である。
【符号の説明】
10  処理ユニット 20  メインメモリ 30  符号化ユニット 40  Sバッファ 50  Pバッファ 60  制御ユニット

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】  処理ユニットと;該処理ユニットによ
    って使用されるデータを記憶するためのメインメモリと
    ;該メインメモリと前記処理ユニットとに接続され、前
    記メインメモリから、処理ユニット命令によって参照さ
    れるデータを記憶及び/又は先取りするためのデータキ
    ャッシュ;とを具えているコンピュータシステムであっ
    て、前記データキャッシュが:前記処理ユニットからの
    データリクエストを分析し、前記データ参照の局所性の
    統計的予測関連性に基づき、前記データリクエストのデ
    ータ参照を複数の個々の群に分類するためのデータリク
    エスト分析手段と;少なくとも2個のデータバッファと
    ;各データ参照を前記バッファのいづれか1個に割り当
    て、前記統計的予測関連性に基づき、キャッシュ性能を
    最適なものとするための手段とを具えていることを特徴
    とするコンピュータシステム。
  2. 【請求項2】  統計的関連性に基づき、前記個々の群
    が、参照特性の比較的強い時間的局所性を有していると
    予測されるS参照データ群を具え;前記個々の群が、参
    照特性の比較的弱い時間的局所性と、参照特性の比較的
    強い空間的局所性とを有していると予測されるP参照デ
    ータ群も具え;前記データバッファとして、S参照デー
    タを記憶するためのSバッファと、P参照データを記憶
    するとともに、先取りするためのPバッファとを設ける
    ことを特徴とする請求項1に記載のコンピュータシステ
    ム。
  3. 【請求項3】  前記データリクエスト分析手段が、ス
    タックデータのデータリクエストを識別するとともに、
    前記Sバッファを介して、このようにして識別されたデ
    ータを記憶するためのデータリクエスト識別手段を具え
    ていることを特徴とする請求項2に記載のコンピュータ
    システム。
  4. 【請求項4】  前記データリクエスト分析手段が、グ
    ローバル変数のデータリクエストを識別するとともに、
    前記Sバッファを介して、このようにして識別されたデ
    ータを記憶するためのデータリクエスト識別手段を具え
    ていることを特徴とする請求項2又は3に記載のコンピ
    ュータシステム。
  5. 【請求項5】  前記データリクエスト分析手段が、ア
    レイエレメントデータのデータリクエストを識別すると
    ともに、前記Pバッファを介して、前記識別されたデー
    タを先取り及び/又は記憶するためのデータリクエスト
    識別手段を具えていることを特徴とする請求項2、3又
    は4に記載のコンピュータシステム。
  6. 【請求項6】  前記データリクエスト分析手段が、直
    接アドレス指定方式を用いてデータリクエストを識別す
    るとともに、Sバッファを介して、前記識別されたデー
    タを記憶するためのデータリクエスト識別手段を具えて
    いることを特徴とする請求項2、3、4又は5に記載の
    コンピュータシステム。
  7. 【請求項7】  前記処理ユニットがスタックポインタ
    レジスタを具え、且つ前記データリクエスト識別手段が
    、スタックレジスタに基づき間接アドレス指定方式を用
    いて、データリクエストを識別するとともに、Sバッフ
    ァを介して前記識別されたデータを記憶するための手段
    を具えていることを特徴とする請求項2〜6のいづれか
    一項に記載のコンピュータシステム。
  8. 【請求項8】  前記データリクエスト分析手段が、前
    記データを要求するプロセッサ命令を符号化するための
    手段を具えていることを特徴とする請求項1〜7のいづ
    れか一項に記載のコンピュータシステム。
  9. 【請求項9】  要求されるデータがキャッシュに存在
    するかどうかを決定し、キャッシュミス又はS参照デー
    タが存在する場合に、前記キャッシュミスに対応するデ
    ータのキャッシュブロックを、前記メインメモリからS
    バッファに取り込むためのキャッシュ制御手段を更に具
    えていることを特徴とする請求項2〜8のいづれか一項
    に記載のコンピュータシステム。
  10. 【請求項10】  要求されるデータがPバッファに存
    在するかどうかを決定し、S参照データにPバッファキ
    ャッシュヒットが存在する場合、先ず第1に前記キャッ
    シュヒットに対応するデータのキャッシュブロックを、
    PバッファからSバッファへと転送し、次にPバッファ
    内のキャッシュブロックをフリーとマークするためのキ
    ャッシュ制御手段を更に具えていることを特徴とする請
    求項2〜9のいづれか一項に記載のコンピュータシステ
    ム。
  11. 【請求項11】  命令を実行するための処理ユニット
    と、データを記憶するためのメモリとを具えているコン
    ピュータシステムのデータをキャッシングするための方
    法であって、該方法が:処理ユニット命令を分析し、前
    記データ参照の局所性の統計的予測関連性に基づき、前
    記命令のデータ参照を、複数の個々の群に分類する工程
    と;前記統計的予測関連性に基づき、各データ参照を複
    数のバッファのいづれか1個に割り当てる工程と;他の
    記憶装置を用い、前記割当バッファを介してメモリから
    のデータを記憶及び/又は先取りし、及び/又は各バッ
    ファのアルゴリズムを先取りする工程;とを具え、関連
    するバッファに割り当てられたデータ群の局所性の統計
    的関連性を有するデータのデータキャッシングが最適と
    なるように、前記アルゴリズムを選択することを特徴と
    するデータキャッシング方法。
JP00383592A 1991-01-15 1992-01-13 マルチバッファデータキャッシュを具えているコンピュータシステム Expired - Fee Related JP3425158B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64123691A 1991-01-15 1991-01-15
US07/641236 1991-01-15

Publications (2)

Publication Number Publication Date
JPH04303248A true JPH04303248A (ja) 1992-10-27
JP3425158B2 JP3425158B2 (ja) 2003-07-07

Family

ID=24571535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00383592A Expired - Fee Related JP3425158B2 (ja) 1991-01-15 1992-01-13 マルチバッファデータキャッシュを具えているコンピュータシステム

Country Status (4)

Country Link
US (1) US5822757A (ja)
EP (1) EP0496439B1 (ja)
JP (1) JP3425158B2 (ja)
DE (1) DE69224084T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895857A (ja) * 1994-09-29 1996-04-12 Shikoku Nippon Denki Software Kk 入出力キャッシュ
WO2006109421A1 (ja) * 2005-04-08 2006-10-19 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ
JP2008257508A (ja) * 2007-04-05 2008-10-23 Nec Electronics Corp キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06180669A (ja) * 1992-12-14 1994-06-28 Nec Niigata Ltd キャッシュシステム
US5848432A (en) 1993-08-05 1998-12-08 Hitachi, Ltd. Data processor with variable types of cache memories
US5732242A (en) 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
DE19713178A1 (de) * 1997-03-27 1998-10-01 Siemens Ag Schaltungsanordnung mit einem Prozessor und einem Datenspeicher
US7103794B2 (en) * 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US6122708A (en) * 1997-08-15 2000-09-19 Hewlett-Packard Company Data cache for use with streaming data
US6393526B1 (en) 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6151662A (en) * 1997-12-02 2000-11-21 Advanced Micro Devices, Inc. Data transaction typing for improved caching and prefetching characteristics
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6401193B1 (en) * 1998-10-26 2002-06-04 Infineon Technologies North America Corp. Dynamic data prefetching based on program counter and addressing mode
WO2000031642A1 (de) * 1998-11-25 2000-06-02 Fujitsu Siemens Computers Gmbh Cache-speichereinrichtung
US6378042B1 (en) * 1999-08-11 2002-04-23 Fast-Chip, Inc. Caching associative memory
WO2001038970A2 (en) * 1999-11-22 2001-05-31 Ericsson Inc Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks
JP2001273137A (ja) * 2000-03-28 2001-10-05 Toshiba Corp マイクロプロセッサ
US6578111B1 (en) * 2000-09-29 2003-06-10 Sun Microsystems, Inc. Cache memory system and method for managing streaming-data
US6668307B1 (en) * 2000-09-29 2003-12-23 Sun Microsystems, Inc. System and method for a software controlled cache
US6598124B1 (en) * 2000-09-29 2003-07-22 Sun Microsystems, Inc. System and method for identifying streaming-data
JP4116413B2 (ja) * 2002-12-11 2008-07-09 株式会社日立製作所 プリフェッチアプライアンスサーバ
US7284014B2 (en) 2003-04-07 2007-10-16 Hitachi, Ltd. Pre-fetch computer system
GB2425030A (en) * 2005-04-09 2006-10-11 Tenomichi Ltd Managed network render targets for routing graphical information
US8312219B2 (en) * 2009-03-02 2012-11-13 International Business Machines Corporation Hybrid caching techniques and garbage collection using hybrid caching techniques
CN102141905B (zh) * 2010-01-29 2015-02-25 上海芯豪微电子有限公司 一种处理器体系结构
US10114750B2 (en) 2012-01-23 2018-10-30 Qualcomm Incorporated Preventing the displacement of high temporal locality of reference data fill buffers
US10552329B2 (en) * 2014-12-23 2020-02-04 Prophetstor Data Services, Inc. SSD caching system for hybrid storage
US9772824B2 (en) 2015-03-25 2017-09-26 International Business Machines Corporation Program structure-based blocking
KR20160148952A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
JPS5891570A (ja) * 1981-11-27 1983-05-31 Nec Corp 情報処理システム
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4719568A (en) * 1982-12-30 1988-01-12 International Business Machines Corporation Hierarchical memory system including separate cache memories for storing data and instructions
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
CA1279731C (en) * 1986-06-27 1991-01-29 Ruby Bei-Loh Lee Cache memory with variable fetch and replacement schemes
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895857A (ja) * 1994-09-29 1996-04-12 Shikoku Nippon Denki Software Kk 入出力キャッシュ
WO2006109421A1 (ja) * 2005-04-08 2006-10-19 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ
US7970998B2 (en) 2005-04-08 2011-06-28 Panasonic Corporation Parallel caches operating in exclusive address ranges
JP2008257508A (ja) * 2007-04-05 2008-10-23 Nec Electronics Corp キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ

Also Published As

Publication number Publication date
EP0496439B1 (en) 1998-01-21
JP3425158B2 (ja) 2003-07-07
EP0496439A2 (en) 1992-07-29
EP0496439A3 (en) 1993-07-21
DE69224084D1 (de) 1998-02-26
DE69224084T2 (de) 1998-07-23
US5822757A (en) 1998-10-13

Similar Documents

Publication Publication Date Title
JP3425158B2 (ja) マルチバッファデータキャッシュを具えているコンピュータシステム
US11693791B2 (en) Victim cache that supports draining write-miss entries
Solihin et al. Using a user-level memory thread for correlation prefetching
US7908439B2 (en) Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US6499090B1 (en) Prioritized bus request scheduling mechanism for processing devices
US8806177B2 (en) Prefetch engine based translation prefetching
US20020116584A1 (en) Runahead allocation protection (rap)
US20060206635A1 (en) DMA engine for protocol processing
WO1996041250A2 (en) System and method for processing multiple requests and out of order returns
US5784711A (en) Data cache prefetching under control of instruction cache
US6959363B2 (en) Cache memory operation
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
US6907509B2 (en) Automatic program restructuring to reduce average cache miss penalty
US6801982B2 (en) Read prediction algorithm to provide low latency reads with SDRAM cache
JPH0727492B2 (ja) 緩衝記憶装置
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
CA2378777A1 (en) Shared program memory with fetch and prefetch buffers
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
KR960005394B1 (ko) 멀티 프로세서 시스템
Aamodt et al. Memory System
Kavi et al. Cache memories in dataflow architecture
JPH04299737A (ja) 計算機の作動方法及び計算機
Dandamudi Cache Memory
JPH05210590A (ja) 書き込みキャッシュメモリのための装置および方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees