JPH05189307A - 計算機システム - Google Patents
計算機システムInfo
- Publication number
- JPH05189307A JPH05189307A JP4005720A JP572092A JPH05189307A JP H05189307 A JPH05189307 A JP H05189307A JP 4005720 A JP4005720 A JP 4005720A JP 572092 A JP572092 A JP 572092A JP H05189307 A JPH05189307 A JP H05189307A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- cache memory
- program
- internal
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】プログラムによってはキャッシュメモリを使用
しないようにもでき、平均アクセス時間を改善してCP
Uの性能向上を図ることを目的とする。 【構成】CPUと内部キャッシュメモリとの間で命令や
データ及び演算結果等をやり取りしながら任意のプログ
ラムを実行する計算機システムにおいて、前記プログラ
ムを実行した場合のキャッシュミス率を予測する予測手
段を備え、所定値を越えるキャッシュミス率が予測され
た場合には、前記内部キャッシュメモリを介すことなく
直接に、主記憶又は該主記憶の上位に位置する外部キャ
ッシュメモリとの間で命令やデータ及び演算結果等をや
り取りすることを特徴とする。
しないようにもでき、平均アクセス時間を改善してCP
Uの性能向上を図ることを目的とする。 【構成】CPUと内部キャッシュメモリとの間で命令や
データ及び演算結果等をやり取りしながら任意のプログ
ラムを実行する計算機システムにおいて、前記プログラ
ムを実行した場合のキャッシュミス率を予測する予測手
段を備え、所定値を越えるキャッシュミス率が予測され
た場合には、前記内部キャッシュメモリを介すことなく
直接に、主記憶又は該主記憶の上位に位置する外部キャ
ッシュメモリとの間で命令やデータ及び演算結果等をや
り取りすることを特徴とする。
Description
【0001】
【産業上の利用分野】本発明は、計算機システム、特に
内部キャッシュメモリを備える計算機システムに関す
る。一般に、主記憶用のデバイスにはビット単価の安い
ダイナミックラム(DRAM)が用いられる。ところ
で、このDRAMのアクセス速度は例えばスタティック
ラム(SRAM)に比して遅く、CPUの性能を充分に
引き出すためには、主記憶とCPUの間に高速動作型の
小容量メモリ(いわゆるキャッシュメモリ)を介在させ
ることが多い。
内部キャッシュメモリを備える計算機システムに関す
る。一般に、主記憶用のデバイスにはビット単価の安い
ダイナミックラム(DRAM)が用いられる。ところ
で、このDRAMのアクセス速度は例えばスタティック
ラム(SRAM)に比して遅く、CPUの性能を充分に
引き出すためには、主記憶とCPUの間に高速動作型の
小容量メモリ(いわゆるキャッシュメモリ)を介在させ
ることが多い。
【0002】
【従来の技術】図7はキャッシュメモリを搭載する従来
の計算機システムの要部概念ブロックである。ここで
は、記憶階層構造を持つ計算機システムを例としてい
る。1はCPU(central processing unit )、2は主
記憶であり、これらのCPU1と主記憶の2間にキャッ
シュメモリ(外部キャッシュ制御装置を含む)3を介在
させると共に、CPU1の内部にもキャッシュメモリ
(命令キャッシュメモリ及びデータキャッシュメモリ)
4、5を備える。
の計算機システムの要部概念ブロックである。ここで
は、記憶階層構造を持つ計算機システムを例としてい
る。1はCPU(central processing unit )、2は主
記憶であり、これらのCPU1と主記憶の2間にキャッ
シュメモリ(外部キャッシュ制御装置を含む)3を介在
させると共に、CPU1の内部にもキャッシュメモリ
(命令キャッシュメモリ及びデータキャッシュメモリ)
4、5を備える。
【0003】CPU1内部のキャッシュメモリ(以下、
内部キャッシュメモリ)4、5は、例えば2kB(キロ
バイト)から64kB程度の小さな容量であり、CPU
1の外部のキャッシュメモリ(2次キャッシュメモリと
も言う。以下、外部キャッシュメモリ)3は、例えば1
28kBから2MB(メガバイト)程度の大きな容量で
ある。これらのキャッシュメモリ3、4、5には、アク
セス速度の速い(但し、ビット単価は高い)例えばSR
AMが用いられ、主記憶2にはビット単価の安い(但
し、アクセス速度は遅い)例えばDRAMが用いられ
る。
内部キャッシュメモリ)4、5は、例えば2kB(キロ
バイト)から64kB程度の小さな容量であり、CPU
1の外部のキャッシュメモリ(2次キャッシュメモリと
も言う。以下、外部キャッシュメモリ)3は、例えば1
28kBから2MB(メガバイト)程度の大きな容量で
ある。これらのキャッシュメモリ3、4、5には、アク
セス速度の速い(但し、ビット単価は高い)例えばSR
AMが用いられ、主記憶2にはビット単価の安い(但
し、アクセス速度は遅い)例えばDRAMが用いられ
る。
【0004】このような構成によれば、内部キャッシュ
メモリ4、5及び外部キャッシュメモリ3を介して主記
憶2をアクセスでき、キャッシュメモリ(特に内部キャ
ッシュメモリ4、5)のアクセス速度でCPU1の性能
を決めることができる。
メモリ4、5及び外部キャッシュメモリ3を介して主記
憶2をアクセスでき、キャッシュメモリ(特に内部キャ
ッシュメモリ4、5)のアクセス速度でCPU1の性能
を決めることができる。
【0005】
【発明が解決しようとする課題】しかしながら、かかる
従来の計算機システムにあっては、CPUと主記憶の間
に介在するキャッシュメモリ(特に内部キャッシュメモ
リ)を“常に”使用する構成となっていたため、ミスヒ
ット(必要とする命令やデータが存在しない)が頻繁に
発生するようなプログラムをCPUで実行する場合に
は、却ってCPUの性能を低下させてしまうといった問
題点があった。
従来の計算機システムにあっては、CPUと主記憶の間
に介在するキャッシュメモリ(特に内部キャッシュメモ
リ)を“常に”使用する構成となっていたため、ミスヒ
ット(必要とする命令やデータが存在しない)が頻繁に
発生するようなプログラムをCPUで実行する場合に
は、却ってCPUの性能を低下させてしまうといった問
題点があった。
【0006】一般に、CPUの平均アクセス時間(CP
Uがキャッシュメモリからデータを得るのに要する時
間)は、 平均アクセス時間=アクセス時間+ミス率×ミスペナル
ティ で与えられ、この平均アクセス時間が短いキャッシュメ
モリほどCPUの性能向上に寄与するが、例えば、アク
セス時間が2サイクル、ミス率が1.00、ペナルティが8
(サイクル)の内部キャッシュメモリの平均アクセス時
間は、 (2+1.08)cycl 但し、cyclはサイクル時間。となり、一方、アクセス時
間が3サイクル、ミス率が0.01、ペナルティが9(サイ
クル)の外部キャッシュメモリの平均アクセス時間は、 3.09cycl となる。
Uがキャッシュメモリからデータを得るのに要する時
間)は、 平均アクセス時間=アクセス時間+ミス率×ミスペナル
ティ で与えられ、この平均アクセス時間が短いキャッシュメ
モリほどCPUの性能向上に寄与するが、例えば、アク
セス時間が2サイクル、ミス率が1.00、ペナルティが8
(サイクル)の内部キャッシュメモリの平均アクセス時
間は、 (2+1.08)cycl 但し、cyclはサイクル時間。となり、一方、アクセス時
間が3サイクル、ミス率が0.01、ペナルティが9(サイ
クル)の外部キャッシュメモリの平均アクセス時間は、 3.09cycl となる。
【0007】したがって、かかる条件となるようなプロ
グラムを実行する場合は、内蔵キャッシュメモリの平均
アクセス時間の影響で、却ってCPUの性能低下を引き
起こすといった不具合がある。そこで、本発明は、プロ
グラムによってはキャッシュメモリを使用しないように
もでき、平均アクセス時間を改善してCPUの性能向上
を図ることを目的とする。
グラムを実行する場合は、内蔵キャッシュメモリの平均
アクセス時間の影響で、却ってCPUの性能低下を引き
起こすといった不具合がある。そこで、本発明は、プロ
グラムによってはキャッシュメモリを使用しないように
もでき、平均アクセス時間を改善してCPUの性能向上
を図ることを目的とする。
【0008】
【課題を解決するための手段】本発明は、上記目的を達
成するためその原理図を図1に示すように、CPUと内
部キャッシュメモリとの間で命令やデータ及び演算結果
等をやり取りしながら任意のプログラムを実行する計算
機システムにおいて、前記プログラムを実行した場合の
キャッシュミス率を予測する予測手段を備え、所定値を
越えるキャッシュミス率が予測された場合には、前記内
部キャッシュメモリを介すことなく直接に、主記憶又は
該主記憶の上位に位置する外部キャッシュメモリとの間
で命令やデータ及び演算結果等をやり取りすることを特
徴とする。
成するためその原理図を図1に示すように、CPUと内
部キャッシュメモリとの間で命令やデータ及び演算結果
等をやり取りしながら任意のプログラムを実行する計算
機システムにおいて、前記プログラムを実行した場合の
キャッシュミス率を予測する予測手段を備え、所定値を
越えるキャッシュミス率が予測された場合には、前記内
部キャッシュメモリを介すことなく直接に、主記憶又は
該主記憶の上位に位置する外部キャッシュメモリとの間
で命令やデータ及び演算結果等をやり取りすることを特
徴とする。
【0009】
【作用】本発明では、所定値を越える程度のキャッシュ
ミスが予測されるようなプログラムを実行する場合に、
内部キャッシュメモリを介することなく、CPUと主記
憶又は外部キャッシュメモリとの間で命令やデータ及び
演算結果が直接にやり取りされる。したがって、かかる
場合の平均アクセス時間が、内部キャッシュメモリより
も容量の大きい例えば外部キャッシュメモリによって決
まり、CPUの性能向上が図られる。
ミスが予測されるようなプログラムを実行する場合に、
内部キャッシュメモリを介することなく、CPUと主記
憶又は外部キャッシュメモリとの間で命令やデータ及び
演算結果が直接にやり取りされる。したがって、かかる
場合の平均アクセス時間が、内部キャッシュメモリより
も容量の大きい例えば外部キャッシュメモリによって決
まり、CPUの性能向上が図られる。
【0010】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図2〜図6は本発明に係る計算機システムの一実
施例を示す図である。まず、構成を説明する。図2にお
いて、10は、特に限定しないが命令・データ分離型の
キャッシュシステムを搭載するCPUであり、整数演算
部11、浮動小数点演算部12、レジスタファイル1
3、14、及び、キャッシュ性能評価部(予測手段)1
5を備えると共に、命令キャッシュ部20及びデータキ
ャッシュ部30を備える。
する。図2〜図6は本発明に係る計算機システムの一実
施例を示す図である。まず、構成を説明する。図2にお
いて、10は、特に限定しないが命令・データ分離型の
キャッシュシステムを搭載するCPUであり、整数演算
部11、浮動小数点演算部12、レジスタファイル1
3、14、及び、キャッシュ性能評価部(予測手段)1
5を備えると共に、命令キャッシュ部20及びデータキ
ャッシュ部30を備える。
【0011】命令キャッシュ部20は、比較的小容量
(例えば2kB〜8kB)で且つ高速動作型のメモリデ
バイス(例えばSRAM)を用いたキャッシュメモリ2
1(略号;I−CACHE、以下、内部命令キャッシュ
メモリ)、内部命令キャッシュメモリ用のエントリテー
ブル22(略号;I−TLB)、命令デコータ23(略
号;DEC)、及び、アドレス生成回路24(略号;A
DD)等を含む。
(例えば2kB〜8kB)で且つ高速動作型のメモリデ
バイス(例えばSRAM)を用いたキャッシュメモリ2
1(略号;I−CACHE、以下、内部命令キャッシュ
メモリ)、内部命令キャッシュメモリ用のエントリテー
ブル22(略号;I−TLB)、命令デコータ23(略
号;DEC)、及び、アドレス生成回路24(略号;A
DD)等を含む。
【0012】また、データキャッシュ部30は、これも
比較的小容量(例えば2kB〜8kB)で且つ高速動作
型のメモリデバイス(例えばSRAM)を用いたキャッ
シュメモリメモリ31(略号;D−CACHE、以下、
内部データキャッシュメモリ)、内部データキャッシュ
メモリ用のエントリテーブル32(略号;D−TL
B)、及び、データ切替回路33(略号;SEL)を含
む。
比較的小容量(例えば2kB〜8kB)で且つ高速動作
型のメモリデバイス(例えばSRAM)を用いたキャッ
シュメモリメモリ31(略号;D−CACHE、以下、
内部データキャッシュメモリ)、内部データキャッシュ
メモリ用のエントリテーブル32(略号;D−TL
B)、及び、データ切替回路33(略号;SEL)を含
む。
【0013】ここで、データ切替回路33は、通常は、
外部キャッシュメモリ40と内部データキャッシュメモ
リ31との間、及び、内部データキャッシュメモリ31
とレジスタファイル13、14の間を接続し、言い換え
れば内部データキャッシュメモリ31を介してレジスタ
ファイル13、14(すなわち整数演算部11、浮動小
数点演算部12)と外部キャッシュメモリ40の間を
“間接的”に接続するが、キャッシュ性能評価部15に
よって所定のビット情報(キャッシュ使用ビット)に例
えば“1”がセットされたときには、外部キャッシュメ
モリ40とレジスタファイル13、14の間を“直接
的”に接続することができる。なお、ここでは、主記憶
50の上位に外部キャッシュメモリ40を位置させる、
いわゆる階層構造型のメモリシステムを例にしている
が、これに限らず、データ切替回路33と主記憶50の
間に外部キャッシュメモリが介在しないシステムであっ
てもよい。このシステムの場合には、上記説明中の外部
キャッシュメモリ40を主記憶50と読み替えるものと
する。
外部キャッシュメモリ40と内部データキャッシュメモ
リ31との間、及び、内部データキャッシュメモリ31
とレジスタファイル13、14の間を接続し、言い換え
れば内部データキャッシュメモリ31を介してレジスタ
ファイル13、14(すなわち整数演算部11、浮動小
数点演算部12)と外部キャッシュメモリ40の間を
“間接的”に接続するが、キャッシュ性能評価部15に
よって所定のビット情報(キャッシュ使用ビット)に例
えば“1”がセットされたときには、外部キャッシュメ
モリ40とレジスタファイル13、14の間を“直接
的”に接続することができる。なお、ここでは、主記憶
50の上位に外部キャッシュメモリ40を位置させる、
いわゆる階層構造型のメモリシステムを例にしている
が、これに限らず、データ切替回路33と主記憶50の
間に外部キャッシュメモリが介在しないシステムであっ
てもよい。このシステムの場合には、上記説明中の外部
キャッシュメモリ40を主記憶50と読み替えるものと
する。
【0014】キャッシュ性能評価部15は、整数演算部
11や浮動小数点演算部12で実行予定のプログラムを
評価するもので、例えば実行予定のプログラムが、キ
ャッシュアクセスが極めて頻繁に発生する特定のプログ
ラムである場合、そのプログラムが必要とするデータ
の格納場所が主記憶の幾つかの論理空間に分かれて格納
されている場合、必要とするデータに規則性が見られ
ない場合、内部キャッシュメモリの容量に比べてプロ
グラムサイズが相当に大きい場合、等に該当するか否か
を判定し、該当するときにキャッシュ使用ビットに
“1”をセットする。これらの評価条件〜は、キャ
ッシュミスの発生を予測するための有効な例であり、勿
論、これ以外の評価条件の設定を妨げるものではない。
11や浮動小数点演算部12で実行予定のプログラムを
評価するもので、例えば実行予定のプログラムが、キ
ャッシュアクセスが極めて頻繁に発生する特定のプログ
ラムである場合、そのプログラムが必要とするデータ
の格納場所が主記憶の幾つかの論理空間に分かれて格納
されている場合、必要とするデータに規則性が見られ
ない場合、内部キャッシュメモリの容量に比べてプロ
グラムサイズが相当に大きい場合、等に該当するか否か
を判定し、該当するときにキャッシュ使用ビットに
“1”をセットする。これらの評価条件〜は、キャ
ッシュミスの発生を予測するための有効な例であり、勿
論、これ以外の評価条件の設定を妨げるものではない。
【0015】以上のように、本実施例によれば、実行し
ようとするプログラムを評価してキャッシュミスの発生
を予測し、その予測結果により、内部命令キャッシュメ
モリ31の使用/不使用を決定して、データ切替回路3
3を操作しているので、CPU10の平均アクセス時間
を改善でき、CPU10(正確にはCPU内部の整数演
算部11や浮動小数点演算部12)の性能を充分に発揮
させることができる。
ようとするプログラムを評価してキャッシュミスの発生
を予測し、その予測結果により、内部命令キャッシュメ
モリ31の使用/不使用を決定して、データ切替回路3
3を操作しているので、CPU10の平均アクセス時間
を改善でき、CPU10(正確にはCPU内部の整数演
算部11や浮動小数点演算部12)の性能を充分に発揮
させることができる。
【0016】図3は、キャッシュのミス率を求めるため
の演算アルゴリズムの一例(但し、ダイレクトマップ
用)である。図3において、V(B)はメモリ参照命令
の総数、u(B)はτ回(例えば10,000回)の参照ごと
のメモリ参照数、Sは内蔵キャッシュメモリのウエイ
(Way )当たりのエントリー数、Tはメモリ参照命令総
数をτ回で除した値である。このアルゴリズムでは、キ
ャッシュミスの算出に、
の演算アルゴリズムの一例(但し、ダイレクトマップ
用)である。図3において、V(B)はメモリ参照命令
の総数、u(B)はτ回(例えば10,000回)の参照ごと
のメモリ参照数、Sは内蔵キャッシュメモリのウエイ
(Way )当たりのエントリー数、Tはメモリ参照命令総
数をτ回で除した値である。このアルゴリズムでは、キ
ャッシュミスの算出に、
【0017】
【数1】
【0018】
【数2】
【0019】
【数3】
【0020】を用いている。ここで、ダイレクトマップ
用とは、キャッシュメモリのウエイ(Way )数Dに1の
みを適用したことを意味する。以下、図3のアルゴリズ
ムの詳細を説明する。 1.はじめに 一般に、キャッシュメモリの構成や性能は、プロセッサ
の構成や性能に直接影響を及ぼす重大な要因の一つであ
ると考えられている。そのようなキャッシュメモリの性
能評価はプロセッサの仕様を決める際に不可欠である
が、評価の正確さを期するのに必要な全てのパラメータ
を取り込むことは実際上大変難しい。
用とは、キャッシュメモリのウエイ(Way )数Dに1の
みを適用したことを意味する。以下、図3のアルゴリズ
ムの詳細を説明する。 1.はじめに 一般に、キャッシュメモリの構成や性能は、プロセッサ
の構成や性能に直接影響を及ぼす重大な要因の一つであ
ると考えられている。そのようなキャッシュメモリの性
能評価はプロセッサの仕様を決める際に不可欠である
が、評価の正確さを期するのに必要な全てのパラメータ
を取り込むことは実際上大変難しい。
【0021】しかし、あまりに簡略化したモデルによる
シミュレーションは、現実の性能を反映しなくなり、評
価そのものの信頼性を損なうので、可能な限り実際に近
いシミュレーションを行う必要がある。そのためには、
できるだけ現実に近く、しかも簡潔で且つ本質的なワー
クロード(業務負荷)を設定しなければならない。A.Ag
arwalら(M.Horowitz and J.Hennessy "An Analytical
Cache Model":ACMTransactions on Computer Systems,V
ol 7,No 2 May 1989, 184-215)による「平均値解析法
を用いた解析的なキャッシュモデルによるシミュレーシ
ョン」(以下、論文1)によれば、確率論的手法を用い
ることにより、モデルの定式化を実現し、必要とするパ
ラメータをできるだけ少なくすることができる。 2.キャッシュ解析的モデル 論文1の解析的キャッシュモデルに関する記述は、概
略、次の4つに分けることができる。
シミュレーションは、現実の性能を反映しなくなり、評
価そのものの信頼性を損なうので、可能な限り実際に近
いシミュレーションを行う必要がある。そのためには、
できるだけ現実に近く、しかも簡潔で且つ本質的なワー
クロード(業務負荷)を設定しなければならない。A.Ag
arwalら(M.Horowitz and J.Hennessy "An Analytical
Cache Model":ACMTransactions on Computer Systems,V
ol 7,No 2 May 1989, 184-215)による「平均値解析法
を用いた解析的なキャッシュモデルによるシミュレーシ
ョン」(以下、論文1)によれば、確率論的手法を用い
ることにより、モデルの定式化を実現し、必要とするパ
ラメータをできるだけ少なくすることができる。 2.キャッシュ解析的モデル 論文1の解析的キャッシュモデルに関する記述は、概
略、次の4つに分けることができる。
【0022】キャッシュミスを発生する要因 キャッシュモデルの構築 キャッシュモデルの構築(ブロックサイズを含む) 補足事項 3−1.キャッシュミスを発生する要因について キャッシュミスを発生する要因は一般に、 要因1:Start-up effects (立ち上げ時の効果) 要因2:Nonstationary behavior (非定常効果) 要因3:Intrinsic interference (内部干渉効果) 要因4:Extrinsic interference (外部干渉効果) である。 3−1−1.要因1 プロセスがプロセッサ上で最初に実行を開始するとき、
そのプロセスの初期ワークセットをキャッシュメモリに
取り入れる際にキャッシュミスが発生する。このミスが
立ち上げ時の効果を左右する。 3−1−2.要因2 プロセスにおけるワーキングセットの変化がキャッシュ
ミスを誘発する場合がある。このときに発生するキャッ
シュミスは非定常効果によるものである。本カテゴリー
を用いることにより、キャッシュメモリにおけるワーキ
ングセットの変化に対応した小さな時間間隔にわたる位
相の微妙な変化をモデル化することができる。 3−1−3.要因3 キャッシュメモリが有限であるため、複数のプログラム
ブロックが同じキャッシュブロックで競合して互いに衝
突することがある。このときに発生するミスは内部干渉
効果によるものであり、内部干渉効果によるミスは、あ
るプロセスのブロックが同じプロセスの衝突しているブ
ロックによりキャッシュメモリからパージされた後にフ
ェッチされるときに発生する。この内部干渉ミス数は、
以下の2要素の積により算出することができる。
そのプロセスの初期ワークセットをキャッシュメモリに
取り入れる際にキャッシュミスが発生する。このミスが
立ち上げ時の効果を左右する。 3−1−2.要因2 プロセスにおけるワーキングセットの変化がキャッシュ
ミスを誘発する場合がある。このときに発生するキャッ
シュミスは非定常効果によるものである。本カテゴリー
を用いることにより、キャッシュメモリにおけるワーキ
ングセットの変化に対応した小さな時間間隔にわたる位
相の微妙な変化をモデル化することができる。 3−1−3.要因3 キャッシュメモリが有限であるため、複数のプログラム
ブロックが同じキャッシュブロックで競合して互いに衝
突することがある。このときに発生するミスは内部干渉
効果によるものであり、内部干渉効果によるミスは、あ
るプロセスのブロックが同じプロセスの衝突しているブ
ロックによりキャッシュメモリからパージされた後にフ
ェッチされるときに発生する。この内部干渉ミス数は、
以下の2要素の積により算出することができる。
【0023】第1の要素:衝突のためにパージポテンシ
ャルを持つプログラムプロックの数 第2の要素:パージポテンシャルを持つ一つのブロック
の衝突する頻度 3−1−4.要因4 マルチプログラミング、I/O、クロック割り込み、又
はマルチキャッシュ時のデータ制御等により発生するミ
スが本カテゴリーに含まれる。ここでは、マルチプログ
ラミングによる外部干渉のみを取り扱うことにする。こ
のときの外部干渉ミスは、内部干渉ミスと同様の手法を
用いることによりモデル化することができる。 3−2.キャッシュモデルの構築について 固定ブロック長を持つset-associative キャッシュをモ
デル化すると、そのミス率は、Start-up effects、Nons
tationary behavior、Intrinsic interference、及び、
Extrinsic interferenceによるミス率の合計で表され
る。ここで、それぞれの参照は単位時間間隔で表現され
るものと仮定すると共に、この単位時間間隔をtg(ti
me granule)とし、さらに、1tgは一連のτ個の参照
であると仮定する。
ャルを持つプログラムプロックの数 第2の要素:パージポテンシャルを持つ一つのブロック
の衝突する頻度 3−1−4.要因4 マルチプログラミング、I/O、クロック割り込み、又
はマルチキャッシュ時のデータ制御等により発生するミ
スが本カテゴリーに含まれる。ここでは、マルチプログ
ラミングによる外部干渉のみを取り扱うことにする。こ
のときの外部干渉ミスは、内部干渉ミスと同様の手法を
用いることによりモデル化することができる。 3−2.キャッシュモデルの構築について 固定ブロック長を持つset-associative キャッシュをモ
デル化すると、そのミス率は、Start-up effects、Nons
tationary behavior、Intrinsic interference、及び、
Extrinsic interferenceによるミス率の合計で表され
る。ここで、それぞれの参照は単位時間間隔で表現され
るものと仮定すると共に、この単位時間間隔をtg(ti
me granule)とし、さらに、1tgは一連のτ個の参照
であると仮定する。
【0024】キャッシュCは、セット数を表すS、セッ
ト当たりのエントリ数1、及びブロックサイズBにより
記述される。モデルを記述するために必要なパラメータ
を以下で定義する。 τ:単位時間(tg)当たりに参照される数 T:プロセスの総時間数(単位はtg) u(B):単位時間当たりにプロセスによりアクセスさ
れる一様なメモリブロックの平均数 U(B):プロセスによりアクセスされる一様なメモリ
ブロックの総数 m(C,t):キャッシュCのt時間(単位はtg)ま
でのプロセスiに対するミス率 3−2−1.Start-up effectsのミス率 単位時間サイズがStart-up周期を含むようにτを決める
とき、Start-up効果によるミスは最初の単位時間(t
g)に含まれる。このときのStart-up効果によるミス
は、
ト当たりのエントリ数1、及びブロックサイズBにより
記述される。モデルを記述するために必要なパラメータ
を以下で定義する。 τ:単位時間(tg)当たりに参照される数 T:プロセスの総時間数(単位はtg) u(B):単位時間当たりにプロセスによりアクセスさ
れる一様なメモリブロックの平均数 U(B):プロセスによりアクセスされる一様なメモリ
ブロックの総数 m(C,t):キャッシュCのt時間(単位はtg)ま
でのプロセスiに対するミス率 3−2−1.Start-up effectsのミス率 単位時間サイズがStart-up周期を含むようにτを決める
とき、Start-up効果によるミスは最初の単位時間(t
g)に含まれる。このときのStart-up効果によるミス
は、
【0025】
【数4】
【0026】により求めることができる。 3−2−3.Nonstationary behaviorのミス率 最初の単位時間に初めて参照されたブロックはキャッシ
ュにフェッチされる。また、次の周期でフェッチされた
ブロックのいくつかのものは参照されずに新しいブロッ
クに置き換えられるであろう。このような新しいブロッ
クに対する最初の参照が非定常効果によるミスの原因で
ある。この非定常効果によるキャッシュミスは、
ュにフェッチされる。また、次の周期でフェッチされた
ブロックのいくつかのものは参照されずに新しいブロッ
クに置き換えられるであろう。このような新しいブロッ
クに対する最初の参照が非定常効果によるミスの原因で
ある。この非定常効果によるキャッシュミスは、
【0027】
【数5】
【0028】で求めることができる。 3−2−4.Intrinsic interferenceのミス率 別のブロックによりキャッシュからパージされた参照す
べきプログラムブロックが内部干渉ミス又は衝突ミスを
誘発する。内部干渉ミスは、静的特性と動的特性との積
を取ることにより算出できる。 3−2−4−1.静的特性 プログラムブロックは任意のキャッシュセットで一様に
分布していると仮定すし、また、キャッシュはランダム
置換法を採用しているとする。d個のブロックが一つの
キャッシュセットにマップされる確率P(d)は、図4
に示される。このとき、衝突ポテンシャルを持つブロッ
クの平均数は、
べきプログラムブロックが内部干渉ミス又は衝突ミスを
誘発する。内部干渉ミスは、静的特性と動的特性との積
を取ることにより算出できる。 3−2−4−1.静的特性 プログラムブロックは任意のキャッシュセットで一様に
分布していると仮定すし、また、キャッシュはランダム
置換法を採用しているとする。d個のブロックが一つの
キャッシュセットにマップされる確率P(d)は、図4
に示される。このとき、衝突ポテンシャルを持つブロッ
クの平均数は、
【0029】
【数6】
【0030】で求めることができる。 3−2−4−2.動的特性 衝突率cを
【0031】
【数7】
【0032】と定義すると、Intrinsic interferenceに
よるキャッシュミスは、
よるキャッシュミスは、
【0033】
【数8】
【0034】で求めることができる。 3−2−5.単位ブロックサイズに対するミス率 したがって、単位ブロックサイズに対するミス率は、数
1、数2及び数5より、
1、数2及び数5より、
【0035】
【数9】
【0036】で求めることができる。 3−3.キャッシュモデルの構築(ブロックサイズを含
む)について ブロック長を可変としたset-associative キャッシュを
モデル化すると、u及びUのブロックサイズへの依存性
は、run lengthの分布とrun 間の空間間隔の分布により
決定される。ここで、runは一連の参照の最大値と定義
される。
む)について ブロック長を可変としたset-associative キャッシュを
モデル化すると、u及びUのブロックサイズへの依存性
は、run lengthの分布とrun 間の空間間隔の分布により
決定される。ここで、runは一連の参照の最大値と定義
される。
【0037】Spatial localityを持つプログラムのrun
lengthを表現するために、図5に示すn状態のマルコフ
連鎖を用いる。ここで、nは最大のrun lengthである。
R1はrun の初期状態である。最初のk個のアドレスが
シーケンシャルであるならば、状態はRkに至る。fk
は次のアドレスがシーケンシャルなk個のアドレスであ
る確率である。ここで、導入したr状態モデルを2状態
モデルで近似する。これは、run lengthが単位長である
か、またはそれ以外かにより区別する。このときrunのl
engthがIであることの確率は、以下のように与えられ
る。
lengthを表現するために、図5に示すn状態のマルコフ
連鎖を用いる。ここで、nは最大のrun lengthである。
R1はrun の初期状態である。最初のk個のアドレスが
シーケンシャルであるならば、状態はRkに至る。fk
は次のアドレスがシーケンシャルなk個のアドレスであ
る確率である。ここで、導入したr状態モデルを2状態
モデルで近似する。これは、run lengthが単位長である
か、またはそれ以外かにより区別する。このときrunのl
engthがIであることの確率は、以下のように与えられ
る。
【0038】
【数10】
【0039】また、平均run lengthは、
【0040】
【数11】
【0041】で求めることができる。このとき、単位時
間当たりの一様なrunの数は、 u(1)/Iav となる。次に一つのrun 全体をキャッシュに入れたとき
にフェッチされるブロックの集合をcoverと定義し、ま
た、このとき使用されているブロックの数をcoversize
と定義する。coversizeはrun lengthIとブロックサイ
ズBを用いて、
間当たりの一様なrunの数は、 u(1)/Iav となる。次に一つのrun 全体をキャッシュに入れたとき
にフェッチされるブロックの集合をcoverと定義し、ま
た、このとき使用されているブロックの数をcoversize
と定義する。coversizeはrun lengthIとブロックサイ
ズBを用いて、
【0042】
【数12】
【0043】で求めることができる。したがって、ブロ
ックサイズBが与えられたときの単位ワードu(1)に
対するプログラムブロック数は、次のように算出され
る。
ックサイズBが与えられたときの単位ワードu(1)に
対するプログラムブロック数は、次のように算出され
る。
【0044】
【数13】
【0045】以上のことから、ブロックサイズBが与え
られたときのミス率は、
られたときのミス率は、
【0046】
【数14】
【0047】で求めることができる。 3−4.Extrinsic interference これまでの説明は、単一のプログラムに対するミスの効
果を定式化したものであった。しかし、現実のシステム
におけるワークロードはマルチプログラムにより構成さ
れる場合が多々ある。そこで、より正確なキャッシュ性
能を得るためには、マルチプログラム化されたキャッシ
ュモデルを採用する必要がある。
果を定式化したものであった。しかし、現実のシステム
におけるワークロードはマルチプログラムにより構成さ
れる場合が多々ある。そこで、より正確なキャッシュ性
能を得るためには、マルチプログラム化されたキャッシ
ュモデルを採用する必要がある。
【0048】以下の説明において、オペレーティングシ
ステムは一定時間間隔(タイムスライス)でスケジュー
ルを行うラウンドロビン方式を使用すると仮定する。マ
ルチプログラムのレベルをmpl で表し、また、単位タイ
ムスライス当たりのtg時間をtsとする。ここで、キ
ャッシュは、物理アドレスによりマッピングされている
と仮定する。このことは、コンテキストスイッチング時
にキャッシュフラッシュしないことを意味する。
ステムは一定時間間隔(タイムスライス)でスケジュー
ルを行うラウンドロビン方式を使用すると仮定する。マ
ルチプログラムのレベルをmpl で表し、また、単位タイ
ムスライス当たりのtg時間をtsとする。ここで、キ
ャッシュは、物理アドレスによりマッピングされている
と仮定する。このことは、コンテキストスイッチング時
にキャッシュフラッシュしないことを意味する。
【0049】時刻tiにおけるプロセスiに対するミス
率をmi(C,ti)とする。ここで、carry-over setを
プロセスがスイッチング時にキャッシュに残し、かつ再
度スイッチングされたときに再利用するブロックのset
とする。このcarry-over setのブロックの平均数をVi
(B) とする。これはキャッシュサイズで制限される
パラメータであり、
率をmi(C,ti)とする。ここで、carry-over setを
プロセスがスイッチング時にキャッシュに残し、かつ再
度スイッチングされたときに再利用するブロックのset
とする。このcarry-over setのブロックの平均数をVi
(B) とする。これはキャッシュサイズで制限される
パラメータであり、
【0050】
【数15】
【0051】のように表すことができる。i以外の全て
のプロセスのブロック数ui'(B)は、
のプロセスのブロック数ui'(B)は、
【0052】
【数16】
【0053】となる。このときd個のブロックが任意の
キャッシュセットに入る確率は、
キャッシュセットに入る確率は、
【0054】
【数17】
【0055】となる。キャッシュはLRU置換法を採用
しているとき任意のセットにおいてパージされるプロセ
スiのブロック数は、
しているとき任意のセットにおいてパージされるプロセ
スiのブロック数は、
【0056】
【数18】
【0057】となる。キャッシュ全体におけるパージさ
れるプロセスiのブロック数は、
れるプロセスiのブロック数は、
【0058】
【数19】
【0059】で求めることができる。以上のことから、
マルチプログラムによるミス率は、
マルチプログラムによるミス率は、
【0060】
【数20】
【0061】で求めることができる。 3−5.補足事項 内部干渉ミス率の算出に用いる衝突率cは、定数ではな
くウエイ数1に依存する。c(D)をD-way set associ
ative キャッシュの衝突率とする。このときあるセット
にマップされているd個のプログラムブロック(図6参
照)に対するヒット率は、
くウエイ数1に依存する。c(D)をD-way set associ
ative キャッシュの衝突率とする。このときあるセット
にマップされているd個のプログラムブロック(図6参
照)に対するヒット率は、
【0062】
【数21】
【0063】と表すことができる。但し、数18はDire
ct Mapキャッシュの衝突率c(1)に考慮されている1
個のブロックを排除している。これよりd個のブロック
がマップされているウエイ数1のキャッシュの衝突率c
(D,d)は、
ct Mapキャッシュの衝突率c(1)に考慮されている1
個のブロックを排除している。これよりd個のブロック
がマップされているウエイ数1のキャッシュの衝突率c
(D,d)は、
【0064】
【数22】
【0065】で求めることができ、この数19から全て
のdに対するc(D,d)の平均を算出すると、
のdに対するc(D,d)の平均を算出すると、
【0066】
【数23】
【0067】を得る。したがって、ミス率の算出に用い
る衝突率を数20により算出した値「c(D)」を用い
ることにより、set-associative キャッシュのミス率を
求めることができる。 4.ワークロード シミュレーションに使用したワークロードについては、
SPISE及びGCCを想定した。これらは、共にSPECベンチマ
ークで用いられるプログラムであり、前者はアナログ回
路シミュレーションのためのプログラム、後者はGNU の
C言語コンパイラである。J.Hennessy & D.Patterson
著「Computer Architecture A Quantitative Approch」
p.C5によれば、上記ワークロードのメモリ参照率は、 SPICE=36.14% GCC=32.55% と算出できる。プログラムの総演算数を100万回と仮
定し、次表1に示すパラメータに固定してシミュレーシ
ョンを行った。なお、メモリ参照数以外のパラメータは
論文1のものを使用している。
る衝突率を数20により算出した値「c(D)」を用い
ることにより、set-associative キャッシュのミス率を
求めることができる。 4.ワークロード シミュレーションに使用したワークロードについては、
SPISE及びGCCを想定した。これらは、共にSPECベンチマ
ークで用いられるプログラムであり、前者はアナログ回
路シミュレーションのためのプログラム、後者はGNU の
C言語コンパイラである。J.Hennessy & D.Patterson
著「Computer Architecture A Quantitative Approch」
p.C5によれば、上記ワークロードのメモリ参照率は、 SPICE=36.14% GCC=32.55% と算出できる。プログラムの総演算数を100万回と仮
定し、次表1に示すパラメータに固定してシミュレーシ
ョンを行った。なお、メモリ参照数以外のパラメータは
論文1のものを使用している。
【0068】
【0069】
【発明の効果】本発明によれば、プログラムによっては
キャッシュメモリを使用しないようにもでき、平均アク
セス時間を改善してCPUの性能向上を図ることができ
る。
キャッシュメモリを使用しないようにもでき、平均アク
セス時間を改善してCPUの性能向上を図ることができ
る。
【図1】本発明の原理図である。
【図2】一実施例の概念構成図である。
【図3】一実施例のキャッシュのミス率を求めるための
演算アルゴリズムである。
演算アルゴリズムである。
【図4】d個のブロックが一つのキャッシュセットにマ
ップされる確率P(d)の説明図である。
ップされる確率P(d)の説明図である。
【図5】n状態のマルコフ連鎖の図である。
【図6】d個のプログラムブロックを示す図である。
【図7】従来例の概念構成図である。
10:CPU 15:キャッシュ性能評価部(予測手段) 31:内部データキャッシュ(内部キャッシュメモリ) 40:外部キャッシュメモリ 50:主記憶
Claims (1)
- 【請求項1】CPUと内部キャッシュメモリとの間で命
令やデータ及び演算結果等をやり取りしながら任意のプ
ログラムを実行する計算機システムにおいて、 前記プログラムを実行した場合のキャッシュミス率を予
測する予測手段を備え、 所定値を越えるキャッシュミス率が予測された場合に
は、前記内部キャッシュメモリを介すことなく直接に、
主記憶又は該主記憶の上位に位置する外部キャッシュメ
モリとの間で命令やデータ及び演算結果等をやり取りす
ることを特徴とする計算機システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4005720A JPH05189307A (ja) | 1992-01-16 | 1992-01-16 | 計算機システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4005720A JPH05189307A (ja) | 1992-01-16 | 1992-01-16 | 計算機システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05189307A true JPH05189307A (ja) | 1993-07-30 |
Family
ID=11618959
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4005720A Withdrawn JPH05189307A (ja) | 1992-01-16 | 1992-01-16 | 計算機システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05189307A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005249735A (ja) * | 2004-03-08 | 2005-09-15 | Advantest Corp | パターン発生器、及び試験装置 |
| US6959359B1 (en) | 1999-07-14 | 2005-10-25 | Hitachi, Ltd. | Software prefetch system and method for concurrently overriding data prefetched into multiple levels of cache |
| US7899992B2 (en) | 2005-02-21 | 2011-03-01 | Panasonic Corporation | Cache circuit and control circuits of a cache memory |
| US9703593B2 (en) | 2012-02-06 | 2017-07-11 | Samsung Electronics Co., Ltd. | Apparatus and method for memory overlay |
| WO2020245872A1 (ja) * | 2019-06-03 | 2020-12-10 | 三菱電機株式会社 | 情報処理装置及び情報処理システム |
-
1992
- 1992-01-16 JP JP4005720A patent/JPH05189307A/ja not_active Withdrawn
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6959359B1 (en) | 1999-07-14 | 2005-10-25 | Hitachi, Ltd. | Software prefetch system and method for concurrently overriding data prefetched into multiple levels of cache |
| JP2005249735A (ja) * | 2004-03-08 | 2005-09-15 | Advantest Corp | パターン発生器、及び試験装置 |
| US7899992B2 (en) | 2005-02-21 | 2011-03-01 | Panasonic Corporation | Cache circuit and control circuits of a cache memory |
| US9703593B2 (en) | 2012-02-06 | 2017-07-11 | Samsung Electronics Co., Ltd. | Apparatus and method for memory overlay |
| WO2020245872A1 (ja) * | 2019-06-03 | 2020-12-10 | 三菱電機株式会社 | 情報処理装置及び情報処理システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Joseph et al. | Prefetching using markov predictors | |
| CN104636274B (zh) | 数据预取方法以及微处理器 | |
| Kandiraju et al. | Going the distance for TLB prefetching: An application-driven study | |
| Saulsbury et al. | Recency-based TLB preloading | |
| Agarwal et al. | An analytical cache model | |
| US7089370B2 (en) | Apparatus and method for pre-fetching page data using segment table data | |
| US20050071571A1 (en) | Apparatus and method for pre-fetching data to cached memory using persistent historical page table data | |
| US20070130237A1 (en) | Transient cache storage | |
| JP6478843B2 (ja) | 半導体装置及びキャッシュメモリ制御方法 | |
| Zhang et al. | RnR: A software-assisted record-and-replay hardware prefetcher | |
| EP2159706A1 (en) | Operation processing apparatus and operation processing method | |
| Tse et al. | CPU cache prefetching: Timing evaluation of hardware implementations | |
| Butt et al. | The performance impact of kernel prefetching on buffer cache replacement algorithms | |
| Daly et al. | Cache restoration for highly partitioned virtualized systems | |
| Chang et al. | CASA: Contention-aware scratchpad memory allocation for online hybrid on-chip memory management | |
| JPH05189307A (ja) | 計算機システム | |
| EP1869557B1 (en) | Global modified indicator to reduce power consumption on cache miss | |
| Kim et al. | A partitioned on-chip virtual cache for fast processors | |
| Hua et al. | Early resolution of address translation in cache design | |
| Wang et al. | Minimizing area cost of on-chip cache memories by caching address tags | |
| CN117149272A (zh) | 指令处理方法及装置、电子设备 | |
| JPWO2008155812A1 (ja) | プロセッサおよびプリフェッチ支援プログラム | |
| JPH1173329A (ja) | ソフトウエア開発支援システム | |
| JP2002334128A (ja) | 半導体集積回路の消費電力シミュレーション方法 | |
| JP3085267B2 (ja) | メモリアクセス高速化装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990408 |