JP3512678B2 - キャッシュメモリ制御装置および計算機システム - Google Patents
キャッシュメモリ制御装置および計算機システムInfo
- Publication number
- JP3512678B2 JP3512678B2 JP14750099A JP14750099A JP3512678B2 JP 3512678 B2 JP3512678 B2 JP 3512678B2 JP 14750099 A JP14750099 A JP 14750099A JP 14750099 A JP14750099 A JP 14750099A JP 3512678 B2 JP3512678 B2 JP 3512678B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- cache memory
- instruction
- control unit
- data
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
主記憶装置に格納されたデータを用いて各種処理を行な
う処理装置との間にそなえられた複数階層のキャッシュ
メモリを制御するキャッシュメモリ制御装置、および、
そのキャッシュメモリ制御装置をそなえた計算機システ
ムに関し、特に、処理装置で必要になると予測されるデ
ータを前もって主記憶装置から複数階層のキャッシュメ
モリに読み込ませるプリフェッチ機能を有する計算機シ
ステムに適用されるキャッシュメモリ制御装置、およ
び、その計算機システムに関する。
置)においては、図5に示すように、少なくとも、プロ
グラムおよびこのプログラムによって処理されるべき各
種データを格納する主記憶装置〔以下、MSU(Main S
torage Unit)という〕12と、このMSU12に格納さ
れたデータを用いて各種処理を行なう処理装置〔以下、
CPU(Central Processing Unit)という〕11とがそ
なえられている。
上やMSU12の大容量化に伴い、CPU11における
データ処理速度がMSU12に対するアクセス処理速度
よりもずっと速くなっている。このようなCPU11と
MSU12とを組み合わせ、CPU11をデータの消費
側とみなしMSU12をデータの供給側と見なすと、デ
ータの供給不足状態が生じ、CPU11はほとんどの時
間をMSU12からのデータ待ちに費やすことになり、
いくらCPU11の処理速度が速くてもこのCPU11
の処理性能が低下してしまう。
に、MSU12よりも小容量であるがMSU12よりも
高速のキャッシュメモリをそなえ、このキャッシュメモ
リによりMSU12のアクセスタイムとCPU11のサ
イクルタイムとの整合をとり、CPU11からみたMS
U12の見かけ上のアクセスタイムを改善することが行
なわれている。
数のワードで構成するもので、MSU12とCPU11
内のレジスタ11bとの間に、通常、1階層だけそなえ
られるが、MSU12のアクセスタイムとCPU11の
サイクルタイムとの差がかなり大きい場合には、MSU
12とCPU11内のレジスタ11bとの間に複数階層
そなえられることがある。例えば図5に示す例では、M
SU12とCPU11内の演算器11a用のレジスタ1
1bとの間に、1次キャッシュメモリ13および2次キ
ャッシュメモリ14(つまり2階層のキャッシュメモリ
13,14)がそなえられている。なお、これらの1次
キャッシュメモリ13および2次キャッシュメモリ14
は、CPU11に内蔵されている。
器11a側に、2次キャッシュメモリ14はMSU12
側にそなえられる。また、一般に、2次キャッシュメモ
リ14の記憶容量は1次キャッシュメモリ13の記憶容
量よりも大きく設定される。つまり、複数階層のキャッ
シュメモリをそなえる場合、演算器11aに近いキャッ
シュメモリ程、その記憶容量は小さく設定される。
3,14をそなえた計算機システムにおいて、CPU1
1が、あるデータDを必要とする場合、CPU11は、
まず1次キャッシュメモリ13にデータDが格納されて
いるか否かを判断する。そのデータDが1次キャッシュ
メモリ13に格納されている場合(1次キャッシュメモ
リ13でヒットした場合)、CPU11は、2次キャッ
シュメモリ14やMSU12にアクセスすることなく、
そのデータDを1次キャッシュメモリ13から読み出
す。
3に格納されていない場合(1次キャッシュメモリ13
でミスヒットした場合)、CPU11は、2次キャッシ
ュメモリ14にデータDが格納されているか否かを判断
し、格納されていれば(2次キャッシュメモリ14でヒ
ットした場合)、そのデータDを含むデータブロックを
読み出して1次キャッシュメモリ13に書き込んでか
ら、1次キャッシュメモリ13からデータDを読み出
す。
4にも格納されていない場合(2次キャッシュメモリ1
4でミスヒットした場合)、CPU11は、MSU12
からデータDを含むデータブロックを読み出して2次キ
ャッシュメモリ14および1次キャッシュメモリ13に
書き込んでから、1次キャッシュメモリ13からデータ
Dを読み出す。
や2次キャッシュメモリ14でミスヒットした場合に
は、2次キャッシュメモリ14やMSU12からデータ
Dを読み出す必要があり、その読出アクセスに時間を要
する。近年の計算機システムにおいてCPU11のクロ
ック周波数は飛躍的に高速化しているが、DRAM等で
構成されるMSU12の性能は、あまり向上しておら
ず、CPU11の性能に追い付いていない。このために
CPU11からはMSU12が相対的に遠く見え、前述
のようなミスヒットに伴うペナルティが、CPU11の
処理性能に及ぼす影響が大きくなりつつある。
ナルティを隠蔽するために、MSU12上のデータを、
そのデータを必要とする演算処理に先立って読み出して
キャッシュメモリ13,14に読み込むことが行なわれ
ている。このような先読み処理を実現するために、CP
U11は、MSU12上のデータをレジスタ11bに読
み込むロード命令とは別に、MSU12上のデータを1
次キャッシュメモリ13および2次キャッシュメモリ1
4には読み込むがレジスタ11bには読み込まない、キ
ャッシュメモリ13,14へのロード専用命令を発行
し、そのロード専用命令を突き放して実行させている
(つまり、演算器11aの演算処理と並行してそのロー
ド専用命令を実行させている)。このロード専用命令
は、演算処理に先立って読み込み(フェッチ)動作を行
なうということから、プリフェッチ命令(先読み命令)
とも呼ばれる。
番目のデータを1番目のデータから順に所定の演算式に
代入して演算処理を実行する場合、CPU11は、i番
目のデータに対する演算処理の実行前に、i+k番目の
データを1次キャッシュメモリ13にプリフェッチする
ための命令を発行し、そのプリフェッチ命令を突き放し
て実行させる。
データに対する演算処理と並行して、kステップだけ先
の演算処理で必要となるi+k番目のデータが、キャッ
シュメモリ13,14上に読み込まれることになる。従
って、CPU11が、kステップ後にi+k番目のデー
タをキャッシュメモリ13からレジスタ11b上に読み
出す際には、キャッシュメモリ13上にそのデータが既
に存在しているので、ミスヒットの発生が抑止され、ミ
スヒットに伴うペナルティを隠蔽することができる。
ャッシュメモリ13へのプリフェッチを行なってミスヒ
ットに伴うペナルティを確実に隠蔽すべく、プリフェッ
チ命令が頻繁に発行されると、以下のような課題があっ
た。 〔1〕プリフェッチ命令のスループット(発行頻度)を
高くすると、あるデータについてのプリフェッチ命令
が、そのデータを必要とする処理を行なうタイミングよ
りも極端に前に発行され、そのデータが1次キャッシュ
メモリ13上に読み込まれることになる。1次キャッシ
ュメモリ13の記憶容量は一般に小さいために、そのデ
ータは、後から発行された別のプリフェッチ命令の実行
に伴ってMSU12から1次キャッシュメモリ13に格
納されるデータにより、1次キャッシュメモリ13から
掃き出されることがある。このような場合、プリフェッ
チされたデータが演算器11aの処理で実際に必要にな
る時には1次キャッシュメモリ13上に存在せず、1次
キャッシュメモリ13でミスヒットとなり、そのデータ
を、再度、2次キャッシュメモリ14もしくはMSU1
2から1次キャッシュメモリ13に読み込まなければな
らず、結局、CPU11の処理性能が低下してしまう。
器11aから高速でアクセスを行なうことができるもの
である必要がある。このため、1次キャッシュメモリ1
3の記憶容量や、1次キャッシュメモリ13において同
時にアクセスすることのできるポート数には、制限があ
る。このため、プリフェッチ命令のスループット(発行
頻度)を高くすると、本来早急に実行されるべき、1次
キャッシュメモリ13からレジスタ11bへのデータ読
込や、2次キャッシュメモリ14から1次キャッシュメ
モリ13へのデータ読込が、そのプリフェッチ命令の実
行に邪魔される。つまり、CPU11のメインパイプラ
インにおいて、通常の処理に伴って必要になる1次キャ
ッシュメモリ13に対するアクセスと、プリフェッチ命
令の実行に伴う1次キャッシュメモリ13に対するアク
セスとが衝突し、CPU11の処理性能の低下を招いて
しまう。
たもので、プリフェッチ命令を高い頻度で発行しても、
必要なデータのキャッシュメモリからの掃出(追い出
し)が発生したり処理装置のメインパイプラインでコン
フリクトが発生したりするのを抑止できるようにして、
計算機システムによる高速処理を実現した、キャッシュ
メモリ制御装置および計算機システムを提供することを
目的とする。
に、本発明のキャッシュメモリ制御装置(請求項1)
は、主記憶装置のデータを用いて各種処理を実行する処
理装置によるアクセス頻度の高いデータを該主記憶装置
から移される複数階層のキャッシュメモリを制御するも
のであって、処理装置で必要になると予測されるデータ
を前もって主記憶装置から複数階層のキャッシュメモリ
に読み込ませるようにプリフェッチ命令を発行する命令
制御部と、この命令制御部から発行された前記プリフェ
ッチ命令を実行する際に、プリフェッチ先キャッシュメ
モリを複数階層のキャッシュメモリの中から選択して切
り替えるように制御するプリフェッチ制御部と、前記複
数階層のキャッシュメモリのうち処理装置に近い側のキ
ャッシュメモリの状態情報を検出して該プリフェッチ制
御部へ出力する状態情報検出機構とをそなえ、プリフェ
ッチ制御部が、状態情報検出機構により検出された前記
状態情報に応じて、プリフェッチ先キャッシュメモリを
切り替えるように制御することを特徴としている。
3)は、主記憶装置と、この主記憶装置に格納されたデ
ータを用いて各種処理を実行する処理装置と、この処理
装置によるアクセス頻度の高いデータを該主記憶装置か
ら移される複数階層のキャッシュメモリと、この複数階
層のキャッシュメモリを制御するキャッシュメモリ制御
装置とをそなえてなり、前記キャッシュメモリ制御装置
が、処理装置で必要になると予測されるデータを前もっ
て主記憶装置から複数階層のキャッシュメモリに読み込
ませるようにプリフェッチ命令を発行する命令制御部
と、この命令制御部から発行された前記プリフェッチ命
令を実行する際に、プリフェッチ先キャッシュメモリを
複数階層のキャッシュメモリの中から選択して切り替え
るように制御するプリフェッチ制御部と、複数階層のキ
ャッシュメモリのうち処理装置に近い側のキャッシュメ
モリの状態情報を検出してプリフェッチ制御部へ出力す
る状態情報検出機構とをそなえて構成され、プリフェッ
チ制御部が、状態情報検出機構により検出された前記状
態情報に応じて、該プリフェッチ先キャッシュメモリを
切り替えるように制御することを特徴としている。
いて、前記プリフェッチ先キャッシュメモリの切替制御
条件としてのプリフェッチ種別情報を命令制御部から発
行される前記プリフェッチ命令に設定するプリフェッチ
種別設定部と、前記プリフェッチ命令に設定されたプリ
フェッチ種別を識別してプリフェッチ制御部へ出力する
プリフェッチ種別識別部とをそなえ、プリフェッチ制御
部が、プリフェッチ種別識別部からの前記プリフェッチ
種別を加味して、前記プリフェッチ先キャッシュメモリ
の切替制御を行なうように構成してもよい(請求項2,
4)。
置(請求項1,2)および計算機システム(請求項3,
4)では、プリフェッチ命令を実行する際に、プリフェ
ッチ制御部により、プリフェッチ先キャッシュメモリ
が、処理装置に近い側のキャッシュメモリの状態情報
(記憶領域の使用状況情報やポートの競合状況情報)に
応じて、複数階層のキャッシュメモリの中から選択して
切り替えられる。
記憶装置からプリフェッチされたデータを常に全てのキ
ャッシュメモリに書き込むのではなく、処理装置に近い
側のキャッシュメモリの状態に応じて適当なキャッシュ
メモリに書き込まれることになる。従って、処理装置に
近い側のキャッシュメモリ(1次キャッシュメモリ)へ
のアクセス(プリフェッチ)を、そのキャッシュメモリ
の状態に応じて制限することができ、プリフェッチ命令
を高い頻度で発行しても、必要なデータのキャッシュメ
モリからの掃出(追い出し)が発生したり処理装置のメ
インパイプラインでコンフリクトが発生したりするのを
抑止することができる。
施の形態を説明する。図1は本発明の一実施形態として
のキャッシュメモリ制御装置を有する計算機システムの
構成を示すブロック図であり、この図1に示すように、
本実施形態の計算機システム10も、図5に示したシス
テムとほぼ同様に、主記憶装置(以下MSUという)1
2およびCPU20をそなえて構成されている。
グラムによって処理されるべき各種データを格納するも
のであり、CPU20は、MSU12に格納されたデー
タを用いて各種処理を行なうものであり、本実施形態に
おけるCPU20は、2階層のキャッシュメモリ(1次
キャッシュメモリ13および2次キャッシュメモリ1
4),レジスタ21,演算器(処理装置)22,命令制
御部23,主記憶リクエスト発行部24およびプリフェ
ッチ制御部25を含んで構成されるとともに、1次キャ
ッシュメモリ13に、状態情報検出機構30が付設され
ている。
と、プリフェッチ制御部25と、1次キャッシュメモリ
13に付設された状態情報検出機構30とにより、2階
層のキャッシュメモリ13,14を制御するためのキャ
ッシュメモリ制御装置が構成されている。1次キャッシ
ュメモリ13および2次キャッシュメモリ14は、CP
U20内において、MSU12とレジスタ21との間に
そなえられ、CPU20(演算器22)によるアクセス
頻度の高いデータをMSU12から移されるものであ
る。ここで、1次キャッシュメモリ13は演算器22側
に、2次キャッシュメモリ14はMSU12側にそなえ
られる。また、一般に、2次キャッシュメモリ14の記
憶容量は1次キャッシュメモリ13の記憶容量よりも大
きく設定される。
に必要となるデータ(オペランド)や、キャッシュメモ
リ13,14やMSU12へ書き戻すべき演算器22に
よる処理結果を一時的に格納するものであり、演算器
(処理装置)22は、レジスタ21に格納されたデータ
に基づいて演算処理を実行し、その処理結果をレジスタ
21に書き込むものである。
算器22の演算処理)に伴って各種命令の発行制御を行
なうものであり、例えば、演算器22での処理に必要な
データが2階層のキャッシュメモリ13,14に存在し
なかった場合(ミスヒットの場合)に、MSU12に対
して、そのデータをキャッシュメモリ13,14および
レジスタ21に読み出すためのロード命令を発行する機
能を有するほか、演算器22で必要になると予測される
データを前もってMSU12からキャッシュメモリ1
3,14に読み込ませるようにプリフェッチ命令を発行
する機能を有している。
設定部26およびプリフェッチ種別識別部27を含んで
構成されており、プリフェッチ種別設定部26は、プリ
フェッチ制御部25においてプリフェッチ先キャッシュ
メモリの切替制御条件として用いられるプリフェッチ種
別情報を、プリフェッチ命令に設定するものであり、プ
リフェッチ種別識別部27は、プリフェッチ命令に設定
されたプリフェッチ種別を識別してプリフェッチ制御部
25へ出力するものである。
部23から発行される命令(プリフェッチ命令を含む)
を受け、命令発行順に、MSU12に対するリクエスト
を発行するものであり、命令制御部23から発行される
命令(実際には、その命令によるアクセス対象データの
主記憶空間アドレス)を命令発行順に保持する発行履歴
キュー24aを有して構成されている。
メモリ13の状態情報として、その記憶領域の使用状況
情報(使用情報)と、そのアクセスポートの競合状況情
報(コンフリクト情報)とを自動的に検出し、プリフェ
ッチ制御部25へ出力するものである。なお、1次キャ
ッシュメモリ13の使用情報としては、具体的には、1
次キャッシュメモリ13に既に格納されているデータを
追い出すことなく、MSU12からのプリフェッチデー
タを1次キャッシュメモリ13に格納可能かどうかにつ
いての情報が検出される。
3から発行されたプリフェッチ命令を実行する際に、プ
リフェッチ先キャッシュメモリを、状態情報検出機構3
0からの1次キャッシュメモリ13の状態情報と、プリ
フェッチ種別識別部27からのプリフェッチ種別とに応
じて、2階層のキャッシュメモリ13,14の中から選
択して切り替えるように制御するものである。
命令のフォーマットについて、図2を参照しながら説明
する。通常、命令制御部23から発行される命令は、オ
ペコード(命令コード)を格納するためのフィールドF
1と、拡張オペコードもしくはオペランド指定情報を格
納するためのフィールドF2と、オペコードによりアク
セスしたいデータの主記憶空間アドレスを格納するため
のフィールドF3とを有している。
令制御部23から発行する際には、図2に示すように、
フィールドF1に、この命令がプリフェッチ命令である
ことを指定するコード“pref”が設定され、フィールド
F3に、このプリフェッチ命令によりアクセス(プリフ
ェッチ)したいデータブロックの主記憶空間アドレス
(MSU12のアドレス)が設定される。さらに、本実
施形態では、前述したプリフェッチ種別設定部26の機
能により、プリフェッチ種別を指定するためのコード
“pref種別”がフィールドF2に設定される。
種別)は、例えば図3に示すように3ビットのデータと
して与えられる。このコードにより指定されるプリフェ
ッチ種別は、そのプリフェッチ種別を設定されたプリフ
ェッチ命令を実行するに際して、プリフェッチ制御部2
5でのプリフェッチ先キャッシュメモリの切替制御条件
として用いられる。本実施形態のごとく2階層のキャッ
シュメモリ13,14をそなえた場合、プリフェッチ種
別としては、例えば図3に示すような5種類のものがあ
る。
れたプリフェッチ命令を実行する際には、プリフェッチ
制御部25は、状態情報検出機構30からの1次キャッ
シュメモリ13の状態情報に関係なく、MSU12から
のデータを必ず1次キャッシュメモリ13および2次キ
ャッシュメモリ14の両方にプリフェッチさせる。 コード(pref種別)“001”を設定されたプリフェ
ッチ命令を実行する際には、プリフェッチ制御部25
は、MSU12からのデータを必ず2次キャッシュメモ
リ14にプリフェッチさせる一方、状態情報検出機構3
0からのコンフリクト情報を参照し1次キャッシュメモ
リ13のアクセスポートに空きがあれば、そのアクセス
ポートを通じて1次キャッシュメモリ13へのプリフェ
ッチを実行させる。
れたプリフェッチ命令を実行する際には、プリフェッチ
制御部25は、MSU12からのデータを必ず2次キャ
ッシュメモリ14にプリフェッチさせる一方、状態情報
検出機構30からの使用情報を参照し、プリフェッチを
行なっても1次キャッシュメモリ13でデータの追い出
しが発生しないのであれば、1次キャッシュメモリ13
へのプリフェッチを実行させる。
れたプリフェッチ命令を実行する際には、プリフェッチ
制御部25は、MSU12からのデータを必ず2次キャ
ッシュメモリ14にプリフェッチさせる一方、状態情報
検出機構30からの使用情報を参照し、プリフェッチを
行なっても1次キャッシュメモリ13でデータの追い出
しが発生せず、且つ、状態情報検出機構30からのコン
フリクト情報を参照し1次キャッシュメモリ13のアク
セスポートに空きがあれば、そのアクセスポートを通じ
て1次キャッシュメモリ13へのプリフェッチを実行さ
せる。
れたプリフェッチ命令を実行する際には、プリフェッチ
制御部25は、状態情報検出機構30からの1次キャッ
シュメモリ13の状態情報に関係なく、MSU12から
のデータを、1次キャッシュメモリ13にはプリフェッ
チさせるが、2次キャッシュメモリ14にはプリフェッ
チさせない。
は、CPU20内の主記憶リクエスト発行部24に、多
数の主記憶リクエスト(プリフェッチ命令に伴う主記憶
リクエストやミスヒットに伴う主記憶リクエスト)を連
続して発行することができるように、前述した発行履歴
キュー24aが装備されている。この発行履歴キュー2
4aは、例えば40段のもので、40個分の命令(アド
レス)を格納できるように構成されている。
に示すごとく、プリフェッチ命令を含む40個のロード
命令を突き放して(演算器22による演算処理と並行し
て)同時に実行することができるようになっている。さ
らに、本実施形態の計算機システム10におけるキャッ
シュメモリ13,14には、MSU12からキャッシュ
メモリ13,14へのロード/プリフェッチとキャッシ
ュメモリ13からレジスタ21へのロード/プリフェッ
チとを同時に実行してもコンフリクトが生じないよう、
十分な数のリード/ライトポート(入出力ポート,アク
セスポート)がそなえられている。キャッシュメモリ1
3,14は、それぞれ、例えばマルチポートRAMによ
り構成される。
のキャッシュメモリ制御装置を有する計算機システム1
0の動作について説明する。CPU20は、MSU12
に記憶されたプログラムを読み出し、そのプログラムを
実行することにより、MSU12から読み出したデータ
を用いて演算処理を行ない、その処理結果をMSU12
に書き込んでいる。
データは、命令制御部23から発行されたロード命令や
プリフェッチ命令を、主記憶リクエスト発行部24を介
してMSU12へ発行することにより、MSU12から
読み出されて、2階層のキャッシュメモリ13,14に
格納されるとともに、レジスタ21に格納される。引き
続いて、演算命令の実行によりレジスタ21から読み出
されたデータは、演算器22に供給され、演算処理を施
される。そして、演算器22による処理結果は、レジス
タ21に格納された後、適当なタイミングで発行される
ストア命令の実行により、レジスタ21からキャッシュ
13,14やMSU12に格納される。
は、命令制御部23から発行されたプリフェッチ命令を
実行する際、プリフェッチ制御部25により、プリフェ
ッチ先キャッシュメモリが、状態情報検出機構30から
の1次キャッシュメモリ13の使用情報/コンフリクト
情報とプリフェッチ種別識別部27からのプリフェッチ
種別とに応じて、以下のように2階層のキャッシュメモ
リ13,14の中から選択されて切り替えられる。
“001”が設定されている場合、MSU12からのデ
ータは、2次キャッシュメモリ14にプリフェッチされ
るとともに、1次キャッシュメモリ13のアクセスポー
トに空きがあれば、そのアクセスポートを通じ1次キャ
ッシュメモリ13にもプリフェッチされる。従って、1
次キャッシュメモリ13のアクセスポートに空きがない
時には、MSU12からのデータは2次キャッシュメモ
リ14のみにプリフェッチされることになる。
“010”が設定されている場合、MSU12からのデ
ータは、2次キャッシュメモリ14にプリフェッチされ
るとともに、プリフェッチを行なっても1次キャッシュ
メモリ13でデータの追い出しが発生しないのであれ
ば、1次キャッシュメモリ13にもプリフェッチされ
る。従って、プリフェッチを行なうと1次キャッシュメ
モリ13でデータの追い出しが発生する時には、MSU
12からのデータは2次キャッシュメモリ14のみにプ
リフェッチされることになる。
“011”が設定されている場合、MSU12からのデ
ータは、2次キャッシュメモリ14にプリフェッチされ
るとともに、プリフェッチを行なっても1次キャッシュ
メモリ13でデータの追い出しが発生せず且つ1次キャ
ッシュメモリ13のアクセスポートに空きがあれば、そ
のアクセスポートを通じ1次キャッシュメモリ13にも
プリフェッチされる。従って、1次キャッシュメモリ1
3のアクセスポートに空きがない時、または、プリフェ
ッチを行なうと1次キャッシュメモリ13でデータの追
い出しが発生する時、または、アクセスポートに空きが
なく且つデータの追い出しが発生する時には、MSU1
2からのデータは2次キャッシュメモリ14のみにプリ
フェッチされることになる。
別)“000”が設定されている場合、MSU12から
のデータは、1次キャッシュメモリ13の状態に関係な
く、常に、1次キャッシュメモリ13および2次キャッ
シュメモリ14の両方にプリフェッチされる。また、プ
リフェッチ命令にコード(pref種別)“100”が設定
されている場合、MSU12からのデータは、1次キャ
ッシュメモリ13の状態に関係なく、常に、1次キャッ
シュメモリ13のみにプリフェッチされる。
ェッチ命令の実行時に、MSU12からプリフェッチさ
れたデータを常に全てのキャッシュメモリ13,14に
書き込むのではなく、1次キャッシュメモリ13の使用
状態/コンフリクト状態に応じて、1次キャッシュメモ
リ13と2次キャッシュメモリ14との両方、もしく
は、1次キャッシュメモリ13と2次キャッシュメモリ
14とのいずれか一方に書き込まれる。
モリ13へのプリフェッチを1次キャッシュメモリ13
の状態に応じて制限することができ、プリフェッチ命令
を高い頻度で発行しても、必要なデータを1次キャッシ
ュメモリ13から追い出してしまったりCPU20のメ
インパイプラインでコンフリクトが発生したりするのを
抑止できるので、計算機システム10による高速処理を
実現することが可能になる。
特に小さい場合、プリフェッチによる1次キャッシュメ
モリ13のデータの追い出しを制御することができるた
め、1次キャッシュメモリ13からの過剰な追い出しに
よる性能低下を確実に防ぐことができる。さらに、プリ
フェッチのアクセス種別(プリフェッチ種別)をプログ
ラムおよび/またはハードウェア(本実施形態ではプリ
フェッチ種別設定部26)で制御することにより、1次
キャッシュメモリ13への負荷が軽減され、CPU20
(計算機システム10)の実効性能を大幅に向上させる
ことができる。
0では、CPU20で連続してミスヒットが検出された
場合、そのミスヒットに伴う主記憶リクエストを、連続
して発行できるとともに、多数のプリフェッチ命令に伴
う主記憶リクエストも、連続して発行できるようになっ
ている。本計算機システム10のミスヒットペナルティ
(CPU20がミスヒットを検出した後にMSU12か
らレジスタへ所望のデータを読み出すのに要する時間)
が例えば40サイクル(40τ)である場合、本実施形
態では、40段の発行履歴キュー24aを主記憶リクエ
スト発行部24にそなえることにより、プリフェッチ命
令を含む40個のロード命令が突き放して実行される。
ても、図4に示すように、41個目のミスヒットの発生
時には、最初のミスヒットに伴う主記憶リクエストは完
了しており、計算機システム10のハードウェア資源を
再利用することが可能になる。従って、CPU20は、
ミスヒットペナルティのために停止することなく処理動
作を継続することができる。
述した通り十分な数の入出力ポートを有しているため、
CPU20のメインパイプラインは、MSU12からキ
ャッシュメモリ13,14への書込動作(プリフェッチ
動作)によってコンフリクトを受けることなく動作する
ことができる。なお、ここでは、ミスヒットペナルティ
40τに対し40段の発行履歴キュー24aをそなえる
例を挙げているが、実際のプログラムでは、毎サイク
ル、ミスヒットが生じることは極めて稀である。このた
め、実際の多くのプログラムの振る舞いとハードウェア
コストとのトレードオフに応じて、発行履歴キュー24
aの段数を40よりも小さくすることが可能である。
10では、CPU20の処理動作がミスヒットペナルテ
ィのために停止することを確実に防止できるほか、多数
のプリフェッチ命令を発行しても、MSU12からキャ
ッシュメモリ13,14への書込(ロード)を行なうた
めのハードウェア資源が枯渇してしまうこともないの
で、CPU20のメインパイプラインへの影響を最小限
に抑えつつ、ミスヒットペナルティを確実に隠蔽するこ
とができ、計算機システム10の性能が大幅に向上す
る。
れるものではなく、本発明の趣旨を逸脱しない範囲で種
々変形して実施することができる。例えば、上述した実
施形態では、キャッシュメモリを2階層そなえた場合に
ついて説明したが、本発明は、これに限定されるもので
はなく、3階層以上のキャッシュメモリをそなえた場合
にも同様に適用され、上述した実施形態と同様の作用効
果を得ることができる。
シュメモリ14をCPU20に内蔵した場合について説
明しているが、2次以降のキャッシュメモリについては
CPU20の外部にそなえてもよい。
ュメモリ制御装置(請求項1,2)および計算機システ
ム(請求項3,4)によれば、プリフェッチ命令の実行
時に、処理装置に近い側のキャッシュメモリの状態に応
じて適当なキャッシュメモリに書き込まれるので、処理
装置に近い側のキャッシュメモリ(1次キャッシュメモ
リ)へのアクセス(プリフェッチ)を、そのキャッシュ
メモリの状態に応じて制限することができ、プリフェッ
チ命令を高い頻度で発行しても、必要なデータのキャッ
シュメモリからの掃出(追い出し)が発生したり処理装
置のメインパイプラインでコンフリクトが発生したりす
るのを抑止することができ、計算機システムによる高速
処理を実現できるという効果がある。
制御装置を有する計算機システムの構成を示すブロック
図である。
マットを示す図である。
るための図である。
作について説明するための図である。
算機システムの構成を示すブロック図である。
Claims (4)
- 【請求項1】 主記憶装置のデータを用いて各種処理を
実行する処理装置によるアクセス頻度の高いデータを該
主記憶装置から移される複数階層のキャッシュメモリを
制御するキャッシュメモリ制御装置であって、 該処理装置で必要になると予測されるデータを前もって
該主記憶装置から該複数階層のキャッシュメモリに読み
込ませるようにプリフェッチ命令を発行する命令制御部
と、 該命令制御部から発行された前記プリフェッチ命令を実
行する際に、プリフェッチ先キャッシュメモリを、該複
数階層のキャッシュメモリの中から選択して切り替える
ように制御するプリフェッチ制御部と、 前記複数階層のキャッシュメモリのうち該処理装置に近
い側のキャッシュメモリの状態情報を検出して該プリフ
ェッチ制御部へ出力する状態情報検出機構とをそなえ、 該プリフェッチ制御部が、該状態情報検出機構により検
出された前記状態情報に応じて、該プリフェッチ先キャ
ッシュメモリを切り替えるように制御する ことを特徴と
する、キャッシュメモリ制御装置。 - 【請求項2】 前記プリフェッチ先キャッシュメモリの
切替制御条件としてのプリフェッチ種別情報を、該命令
制御部から発行される前記プリフェッチ命令に設定する
プリフェッチ種別設定部と、 前記プリフェッチ命令に設定されたプリフェッチ種別を
識別して該プリフェッチ制御部へ出力するプリフェッチ
種別識別部とをそなえ、 該プリフェッチ制御部が、該プリフェッチ種別識別部か
らの前記プリフェッチ種別を加味して、前記プリフェッ
チ先キャッシュメモリの切替制御を行なうことを特徴と
する、請求項1記載のキャッシュメモリ制御装置。 - 【請求項3】 主記憶装置と、該主記憶装置に格納され
たデータを用いて各種処理を実行する処理装置と、該処
理装置によるアクセス頻度の高いデータを該主記憶装置
から移される複数階層のキャッシュメモリと、該複数階
層のキャッシュメモリを制御するキャッシュメモリ制御
装置とをそなえてなる計算機システムであって、 該キャッシュメモリ制御装置が、 該処理装置で必要になると予測されるデータを前もって
該主記憶装置から該複数階層のキャッシュメモリに読み
込ませるようにプリフェッチ命令を発行する命令制御部
と、 該命令制御部から発行された前記プリフェッチ命令を実
行する際に、プリフェッチ先キャッシュメモリを、該複
数階層のキャッシュメモリの中から選択して切り替える
ように制御するプリフェッチ制御部と、 該複数階層のキャッシュメモリのうち該処理装置に近い
側のキャッシュメモリの状態情報を検出して該プリフェ
ッチ制御部へ出力する状態情報検出機構とをそなえて構
成され、 該プリフェッチ制御部が、該状態情報検出機構により検
出された前記状態情報に応じて、該プリフェッチ先キャ
ッシュメモリを切り替えるように制御する ことを特徴と
する、計算機システム。 - 【請求項4】 該キャッシュメモリ制御装置が、 前記プリフェッチ先キャッシュメモリの切替制御条件と
してのプリフェッチ種別情報を、該命令制御部から発行
される前記プリフェッチ命令に設定するプリフェッチ種
別設定部と、 前記プリフェッチ命令に設定されたプリフェッチ種別を
識別して該プリフェッチ制御部へ出力するプリフェッチ
種別識別部とをそなえ、 該プリフェッチ制御部が、該プリフェッチ種別識別部か
らの前記プリフェッチ種別を加味して、前記プリフェッ
チ先キャッシュメモリの切替制御を行なうことを特徴と
する、請求項3記載の計算機システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14750099A JP3512678B2 (ja) | 1999-05-27 | 1999-05-27 | キャッシュメモリ制御装置および計算機システム |
US09/513,854 US6473836B1 (en) | 1999-05-27 | 2000-02-25 | Computing system and cache memory control apparatus controlling prefetch in hierarchical cache memories |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14750099A JP3512678B2 (ja) | 1999-05-27 | 1999-05-27 | キャッシュメモリ制御装置および計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000339157A JP2000339157A (ja) | 2000-12-08 |
JP3512678B2 true JP3512678B2 (ja) | 2004-03-31 |
Family
ID=15431787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14750099A Expired - Fee Related JP3512678B2 (ja) | 1999-05-27 | 1999-05-27 | キャッシュメモリ制御装置および計算機システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6473836B1 (ja) |
JP (1) | JP3512678B2 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110093898A1 (en) * | 1998-06-18 | 2011-04-21 | Rosenthol Joshua A | Program guide system with user designated favorite themes |
US6574712B1 (en) * | 1999-11-08 | 2003-06-03 | International Business Machines Corporation | Software prefetch system and method for predetermining amount of streamed data |
US6728840B1 (en) * | 2000-10-20 | 2004-04-27 | Emc Corporation | Methods and apparatus for providing host controlled caching of data in a storage system |
EP1308695A1 (en) * | 2001-11-06 | 2003-05-07 | Matsushita Electric Industrial Co., Ltd. | Vehicle mounted display system |
JP2003140965A (ja) | 2001-11-07 | 2003-05-16 | Hitachi Ltd | 分散共有メモリ型並列計算機および命令スケジューリング方法 |
US7428645B2 (en) | 2003-12-29 | 2008-09-23 | Marvell International, Ltd. | Methods and apparatus to selectively power functional units |
US7224595B2 (en) * | 2004-07-30 | 2007-05-29 | International Business Machines Corporation | 276-Pin buffered memory module with enhanced fault tolerance |
US7296129B2 (en) | 2004-07-30 | 2007-11-13 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US7539800B2 (en) | 2004-07-30 | 2009-05-26 | International Business Machines Corporation | System, method and storage medium for providing segment level sparing |
US7389375B2 (en) * | 2004-07-30 | 2008-06-17 | International Business Machines Corporation | System, method and storage medium for a multi-mode memory buffer device |
JP4520790B2 (ja) | 2004-07-30 | 2010-08-11 | 富士通株式会社 | 情報処理装置およびソフトウェアプリフェッチ制御方法 |
US7383418B2 (en) * | 2004-09-01 | 2008-06-03 | Intel Corporation | Method and apparatus for prefetching data to a lower level cache memory |
US7395476B2 (en) | 2004-10-29 | 2008-07-01 | International Business Machines Corporation | System, method and storage medium for providing a high speed test interface to a memory subsystem |
US7512762B2 (en) | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US7277988B2 (en) * | 2004-10-29 | 2007-10-02 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
US7441060B2 (en) | 2004-10-29 | 2008-10-21 | International Business Machines Corporation | System, method and storage medium for providing a service interface to a memory system |
US7299313B2 (en) | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US7356737B2 (en) | 2004-10-29 | 2008-04-08 | International Business Machines Corporation | System, method and storage medium for testing a memory module |
US7305574B2 (en) * | 2004-10-29 | 2007-12-04 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US7331010B2 (en) | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7478259B2 (en) | 2005-10-31 | 2009-01-13 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US7685392B2 (en) | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
EP1990731B1 (en) | 2006-02-28 | 2015-05-27 | Fujitsu Limited | Processor having prefetch function |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7490217B2 (en) | 2006-08-15 | 2009-02-10 | International Business Machines Corporation | Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables |
US7539842B2 (en) | 2006-08-15 | 2009-05-26 | International Business Machines Corporation | Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables |
US7870459B2 (en) | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7477522B2 (en) * | 2006-10-23 | 2009-01-13 | International Business Machines Corporation | High density high reliability memory module with a fault tolerant address and command bus |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
EP2159685B1 (en) | 2007-06-20 | 2013-08-21 | Fujitsu Limited | Processor |
EP2518632A4 (en) | 2009-12-25 | 2013-05-29 | Fujitsu Ltd | COMPUTING DEVICE |
JP2010176692A (ja) * | 2010-03-15 | 2010-08-12 | Fujitsu Ltd | 演算処理装置、情報処理装置及び制御方法 |
US9418011B2 (en) * | 2010-06-23 | 2016-08-16 | Intel Corporation | Region based technique for accurately predicting memory accesses |
US9390018B2 (en) * | 2012-08-17 | 2016-07-12 | Advanced Micro Devices, Inc. | Data cache prefetch hints |
US8909866B2 (en) * | 2012-11-06 | 2014-12-09 | Advanced Micro Devices, Inc. | Prefetching to a cache based on buffer fullness |
KR101835494B1 (ko) | 2013-11-27 | 2018-03-08 | 인텔 코포레이션 | 프로세서의 버퍼의 자율 제어 |
US10936194B2 (en) * | 2018-10-16 | 2021-03-02 | International Business Machines Corporation | Storage device status management for conflict avoidance in a data storage system |
EP3848813B1 (en) | 2020-01-10 | 2023-03-08 | NXP USA, Inc. | Embedded information system and method for memory management |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0485788A (ja) | 1990-07-27 | 1992-03-18 | Toshiba Corp | 多ポートキャッシュメモリ |
JPH05257807A (ja) | 1992-03-13 | 1993-10-08 | Sumitomo Electric Ind Ltd | キャッシュメモリ制御装置 |
JPH06110779A (ja) | 1992-09-30 | 1994-04-22 | Toshiba Corp | キャッシュメモリアクセス制御回路およびキャッシュメモリアクセス制御方法 |
JP3717212B2 (ja) * | 1995-10-27 | 2005-11-16 | 株式会社日立製作所 | 情報処理装置及び情報処理ユニット |
JP3348367B2 (ja) | 1995-12-06 | 2002-11-20 | 富士通株式会社 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
US5829025A (en) * | 1996-12-17 | 1998-10-27 | Intel Corporation | Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction |
US6026470A (en) * | 1997-04-14 | 2000-02-15 | International Business Machines Corporation | Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
US5956746A (en) * | 1997-08-13 | 1999-09-21 | Intel Corporation | Computer system having tag information in a processor and cache memory |
US6138209A (en) * | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
-
1999
- 1999-05-27 JP JP14750099A patent/JP3512678B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-25 US US09/513,854 patent/US6473836B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6473836B1 (en) | 2002-10-29 |
JP2000339157A (ja) | 2000-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3512678B2 (ja) | キャッシュメモリ制御装置および計算機システム | |
US6408325B1 (en) | Context switching technique for processors with large register files | |
JP3875738B2 (ja) | ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置 | |
US6049867A (en) | Method and system for multi-thread switching only when a cache miss occurs at a second or higher level | |
US5737750A (en) | Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions | |
US6131145A (en) | Information processing unit and method for controlling a hierarchical cache utilizing indicator bits to control content of prefetching operations | |
US6643755B2 (en) | Cyclically sequential memory prefetch | |
JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
JP2677202B2 (ja) | マイクロプロセッサ | |
KR20000076584A (ko) | 컴퓨터 프로세싱 시스템에서의 로드 연산을 재순서화하기위한 방법 및 장치 | |
US20140108743A1 (en) | Store data forwarding with no memory model restrictions | |
JP2008107983A (ja) | キャッシュメモリ | |
WO2007099598A1 (ja) | プリフェッチ機能を有するプロセッサ | |
CN111201518A (zh) | 用于管理能力元数据的设备和方法 | |
EP1030243B1 (en) | Optimized hardware cleaning function for virtual index virtual tag data cache | |
US5794027A (en) | Method and apparatus for managing the execution of instructons with proximate successive branches in a cache-based data processing system | |
JP5157424B2 (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
US7191319B1 (en) | System and method for preloading cache memory in response to an occurrence of a context switch | |
US5708843A (en) | Method and apparatus for handling code segment violations in a computer system | |
JP7070384B2 (ja) | 演算処理装置、メモリ装置、及び演算処理装置の制御方法 | |
WO2023129386A1 (en) | Leveraging processing-in-memory (pim) resources to expedite non-pim instructions executed on a host | |
JPS638851A (ja) | キャッシュ・メモリ制御方式 | |
JP2002041358A (ja) | プロセッサシステム | |
JP3718667B2 (ja) | 情報処理装置及び情報処理ユニット | |
JP4111645B2 (ja) | キャッシュミスした後のメモリバスアクセス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040107 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100116 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110116 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110116 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120116 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130116 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130116 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140116 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |