JPH0228738A - 多階層キャッシュメモリのブロック置換え方法 - Google Patents
多階層キャッシュメモリのブロック置換え方法Info
- Publication number
- JPH0228738A JPH0228738A JP63178870A JP17887088A JPH0228738A JP H0228738 A JPH0228738 A JP H0228738A JP 63178870 A JP63178870 A JP 63178870A JP 17887088 A JP17887088 A JP 17887088A JP H0228738 A JPH0228738 A JP H0228738A
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- level
- block
- blocks
- processor
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、多階層キャッシュメモリで構成される情報処
理装置におけるキャッシュメモリのブロック置換え方法
に関する。
理装置におけるキャッシュメモリのブロック置換え方法
に関する。
第4図に従来のブロック置換え方法を説明するための多
階層キャッシュメモリの構成例を示す。
階層キャッシュメモリの構成例を示す。
これはプロセッサ1とメインメモリ4の間に、レベル0
(上位レベル)のキャッシュメモリ2とレベル1 (下
位レベル)のキャッシュメモリ3の二階層キャッシュメ
モリを配置した例である。第4図では、レベル1のキャ
ッシュメモリ3の容量はレベル0のキャッシュメモリ2
の容量の2倍、メモリ4の容量はレベル1のキャッシュ
メモリ3の容量の2倍であるとしている。5は一つのブ
ロックを示し、各メモリともに等しい大きさの容量であ
る。
(上位レベル)のキャッシュメモリ2とレベル1 (下
位レベル)のキャッシュメモリ3の二階層キャッシュメ
モリを配置した例である。第4図では、レベル1のキャ
ッシュメモリ3の容量はレベル0のキャッシュメモリ2
の容量の2倍、メモリ4の容量はレベル1のキャッシュ
メモリ3の容量の2倍であるとしている。5は一つのブ
ロックを示し、各メモリともに等しい大きさの容量であ
る。
レベルOのキャッシュメモリ2、レベル1のキャッシュ
メモリ3およびメインメモリ4は複数の列(第4図では
4列)に分割されており、メインメモリ4の同一列に含
まれるブロック5は、レベルOのキャッシュメモリ2お
よびレベル1のキャッシュメモリ3の同一列に格納され
る。また、レベル○のキャッシュメモリ2およびレベル
1のキャッシュメモリ3の各列において、各ブロックは
、過去にブロックの要求が行われた順序に格納される。
メモリ3およびメインメモリ4は複数の列(第4図では
4列)に分割されており、メインメモリ4の同一列に含
まれるブロック5は、レベルOのキャッシュメモリ2お
よびレベル1のキャッシュメモリ3の同一列に格納され
る。また、レベル○のキャッシュメモリ2およびレベル
1のキャッシュメモリ3の各列において、各ブロックは
、過去にブロックの要求が行われた順序に格納される。
第4図において、これを新←旧で示している。
以下、第4図の構成例について、第5図および第6図を
参照して従来のブロック置換え処理を説明する。
参照して従来のブロック置換え処理を説明する。
いま、初期状態として、第4図に示すメインメモリ4の
ブロック群に対し、レベルOのキャッシュメモリ2およ
びレベル1のキャッシュメモリ3に第6図(a)に示す
ようにブロックが格納されており、プロセッサ1はブロ
ック01,02,01.03,04の順に各ブロック内
のデータを要求したとする。
ブロック群に対し、レベルOのキャッシュメモリ2およ
びレベル1のキャッシュメモリ3に第6図(a)に示す
ようにブロックが格納されており、プロセッサ1はブロ
ック01,02,01.03,04の順に各ブロック内
のデータを要求したとする。
まず、プロセッサ1からブロック01内のデータが要求
された時、レベルOのキャッシュメモリ2にブロック0
1が存在するので、レベルOのキャッシュメモリ2はプ
ロセッサ1にブロック01内のデータを転送すると\も
に、第0列に格納されているブロックをプロセッサ1か
ら要求のあった順序に並べ換える(第5図のステップ5
01゜502、 5]、2. 513) 。
された時、レベルOのキャッシュメモリ2にブロック0
1が存在するので、レベルOのキャッシュメモリ2はプ
ロセッサ1にブロック01内のデータを転送すると\も
に、第0列に格納されているブロックをプロセッサ1か
ら要求のあった順序に並べ換える(第5図のステップ5
01゜502、 5]、2. 513) 。
このプロセッサ1からブロック01が要求された場合の
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第6図(b)のようにな
る。
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第6図(b)のようにな
る。
次に、プロセッサ1からブロック02内のデータが要求
された時、レベル0のキャッシュメモリ2は、内部にブ
ロック02を格納していないので、レベル1のキャッシ
ュメモリ3にブロック02を要求すると共に、第0列の
ブロック中でプロセッサ]からの要求が最も古く行われ
たブロックO0をブロック02て置換えるべきブロック
として選択する(第5図のステップ501,502,5
03.504.)。
された時、レベル0のキャッシュメモリ2は、内部にブ
ロック02を格納していないので、レベル1のキャッシ
ュメモリ3にブロック02を要求すると共に、第0列の
ブロック中でプロセッサ]からの要求が最も古く行われ
たブロックO0をブロック02て置換えるべきブロック
として選択する(第5図のステップ501,502,5
03.504.)。
レベル1のキャッシュメモリ3は、ブロック02が存在
するので、レベル0のキャッシュメモリ2ヘブロツク0
2を転送(ブロック転送)すると。
するので、レベル0のキャッシュメモリ2ヘブロツク0
2を転送(ブロック転送)すると。
\もに、第0列中に格納されているブロックをレベルO
のキャッシュメモリ2から要求のあった順序に並べ変え
る(第5図のステップ505.509.510)。レベ
ル0のキャッシュメモリ2は、第0列中のブロックOO
を、レベル1のキャッシュメモリ3から転送されたブロ
ック02で置き換える(第5図のステップ511)。そ
の後、レベルOのキャッシュメモリ2は、プロセッサ1
にブロック02内のデータを転送すると\もに、第0列
に格納されているブロックをプロセッサ1から要求のあ
った順序に並べ変える(第5図の512゜513)。
のキャッシュメモリ2から要求のあった順序に並べ変え
る(第5図のステップ505.509.510)。レベ
ル0のキャッシュメモリ2は、第0列中のブロックOO
を、レベル1のキャッシュメモリ3から転送されたブロ
ック02で置き換える(第5図のステップ511)。そ
の後、レベルOのキャッシュメモリ2は、プロセッサ1
にブロック02内のデータを転送すると\もに、第0列
に格納されているブロックをプロセッサ1から要求のあ
った順序に並べ変える(第5図の512゜513)。
このプロセッサ1からブロック02が要求された場合の
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第6図(c)のようにな
る。
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第6図(c)のようにな
る。
次に、プロセッサ1から再びブロック01内のデータが
要求された時、レベル0のキャッシュメモリ2にブロッ
ク01が存在するので、レベル0のキャッシュメモリ2
はプロセッサ1にブロック01内のデータを転送すると
2もに、第0列に格納されているブロックをプロセッサ
1がら要求のあった順序で並べ変える(第5図のステッ
プ5゜1、 502. 512. 503) 。
要求された時、レベル0のキャッシュメモリ2にブロッ
ク01が存在するので、レベル0のキャッシュメモリ2
はプロセッサ1にブロック01内のデータを転送すると
2もに、第0列に格納されているブロックをプロセッサ
1がら要求のあった順序で並べ変える(第5図のステッ
プ5゜1、 502. 512. 503) 。
このプロセッサ1から再びブロック01が要求された場
合の処理後、レベル0のキャッシュメモリ2およびレベ
ル1のキャッシュメモリ3の状態は第6図(d)のよう
になる。
合の処理後、レベル0のキャッシュメモリ2およびレベ
ル1のキャッシュメモリ3の状態は第6図(d)のよう
になる。
次に、プロセッサ1からブロック03内のデータが要求
された時、レベル0のキャッシュメモリ2はブロック0
3を内部に格納しておらず、レベル1のキャッシュメモ
リ3はブロック03を格納している。この時の処理は、
先のブロック02内のデータが要求された場合と同様で
ある。即ち、レベル1のキャッシュメモリ3からレベル
Oのキャッシュメモリ2にブロック03が転送され、レ
ベル0のキャッシュメモリ2は、第0列のブロックでプ
ロセッサ1からの要求が最も以前に行われたブロック0
2をブロック03で置き換え、プロセッサ1にブロック
03内のデータを転送すると\もに、第0列に格納され
ているブロックをプロセッサ1から要求のあった順序に
並べ変える。
された時、レベル0のキャッシュメモリ2はブロック0
3を内部に格納しておらず、レベル1のキャッシュメモ
リ3はブロック03を格納している。この時の処理は、
先のブロック02内のデータが要求された場合と同様で
ある。即ち、レベル1のキャッシュメモリ3からレベル
Oのキャッシュメモリ2にブロック03が転送され、レ
ベル0のキャッシュメモリ2は、第0列のブロックでプ
ロセッサ1からの要求が最も以前に行われたブロック0
2をブロック03で置き換え、プロセッサ1にブロック
03内のデータを転送すると\もに、第0列に格納され
ているブロックをプロセッサ1から要求のあった順序に
並べ変える。
方、レベル1のキャッシュメモリ3は、第0列に格納さ
れているブロックをレベル0のキャッシュメモリ2から
要求のあった順序に並べ変える。
れているブロックをレベル0のキャッシュメモリ2から
要求のあった順序に並べ変える。
このプロセッサ1からブロック03が要求された場合の
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリの状態は第6図(e)のようになる
。
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリの状態は第6図(e)のようになる
。
次に、プロセッサ1からブロック04内のデータが要求
された時、レベル0のキャッシュメモリ2は、内部にブ
ロック4を格納していないので、レベル1のキャッシュ
メモリ3にブロックo4を要求すると2もに、第0列の
ブロック中でプロセッサ1からの要求が最も古くに行わ
れたブロック01を置き換えブロックとして選択する(
第5図のステップ501,502,503,504)。
された時、レベル0のキャッシュメモリ2は、内部にブ
ロック4を格納していないので、レベル1のキャッシュ
メモリ3にブロックo4を要求すると2もに、第0列の
ブロック中でプロセッサ1からの要求が最も古くに行わ
れたブロック01を置き換えブロックとして選択する(
第5図のステップ501,502,503,504)。
一方、レベル1のキャッシュメモリ3にもブロック04
が存在しないので、レベル1のキャッシュメモリ3は、
メインメモリ4に対してブロック04を要求すると\も
に、第0列のブロック中でレベルOのキャッシュメモリ
2からの要求が最も古くに行われたブロック01をブロ
ック04で置き換えるべきブロックとして選択する(第
5図のステップ505,506,507)。メインメモ
リ4からブロック04の転送(ブロック転送)が行われ
ると、レベル1のキャッシュメモリ3は、第0列中のブ
ロック01を、メインメモリ4から転送されたブロック
04で置き換える(第5図のステップ508)。その後
、レベル1のキャッシュメモリ3は、レベル0のキャッ
シュメモリ2にブロック04を転送すると\もに、第0
列に格納されているブロックをレベルOのキャッシュメ
モリ2から要求のあった順序に並べ変える(第5図のス
テップ509,510)。
が存在しないので、レベル1のキャッシュメモリ3は、
メインメモリ4に対してブロック04を要求すると\も
に、第0列のブロック中でレベルOのキャッシュメモリ
2からの要求が最も古くに行われたブロック01をブロ
ック04で置き換えるべきブロックとして選択する(第
5図のステップ505,506,507)。メインメモ
リ4からブロック04の転送(ブロック転送)が行われ
ると、レベル1のキャッシュメモリ3は、第0列中のブ
ロック01を、メインメモリ4から転送されたブロック
04で置き換える(第5図のステップ508)。その後
、レベル1のキャッシュメモリ3は、レベル0のキャッ
シュメモリ2にブロック04を転送すると\もに、第0
列に格納されているブロックをレベルOのキャッシュメ
モリ2から要求のあった順序に並べ変える(第5図のス
テップ509,510)。
レベルOのキャッシュメモリ2は、第0列中のブロック
01を、レベル1のキャッシュメモリ3から転送された
ブロック4で置き換える(第5図のステップ511)。
01を、レベル1のキャッシュメモリ3から転送された
ブロック4で置き換える(第5図のステップ511)。
その後、レベル0のキャッシュメモリ2は、プロセッサ
1にブロック04内のデータを転送すると\もに、第0
列に格納されているブロックをプロセッサ1からの要求
のあった順序に並べ換える(第5図のステップ512゜
513)。
1にブロック04内のデータを転送すると\もに、第0
列に格納されているブロックをプロセッサ1からの要求
のあった順序に並べ換える(第5図のステップ512゜
513)。
このプロセッサ1からブロック04が要求された場合の
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第6図(f)のようにな
る。
処理後、レベルOのキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第6図(f)のようにな
る。
一般に、プロセッサから要求された順序が新しいブロッ
ク程、再びプロセッサから要求される確率が高いので、
キャッシュメモリに格納しておく必要がある。しかし、
従来のブロック置換え方法では、上記のように、下位の
レベルのキャッシュメモリは、上位レベルのキャッシュ
メモリから要求されたブロックの情報のみを用い、プロ
セッサから上位レベルのキャッシュメモリに対して行わ
れたアクセスと独立にブロックの置き換えを行っていた
ので、下位レベルのキャッシュメモリには、プロセッサ
から要求された順序の新しいブロックが、必ずしも格納
されるようになっていない欠点があった。第6図の例で
は、プロセッサ1からブロック内のデータの要求がブロ
ック01,02゜01.03,04の順に行われたにも
か\わらず、プロセッサ5から要求された順序が3番目
に新しいブロック01がレベル1のキャッシュメモリ3
に格納されていない。
ク程、再びプロセッサから要求される確率が高いので、
キャッシュメモリに格納しておく必要がある。しかし、
従来のブロック置換え方法では、上記のように、下位の
レベルのキャッシュメモリは、上位レベルのキャッシュ
メモリから要求されたブロックの情報のみを用い、プロ
セッサから上位レベルのキャッシュメモリに対して行わ
れたアクセスと独立にブロックの置き換えを行っていた
ので、下位レベルのキャッシュメモリには、プロセッサ
から要求された順序の新しいブロックが、必ずしも格納
されるようになっていない欠点があった。第6図の例で
は、プロセッサ1からブロック内のデータの要求がブロ
ック01,02゜01.03,04の順に行われたにも
か\わらず、プロセッサ5から要求された順序が3番目
に新しいブロック01がレベル1のキャッシュメモリ3
に格納されていない。
本発明の目的は、多階層キャッシュメモリにおいて、下
位レベルのキャッシュメモリに、プロセッサから要求さ
れた順序の新しいブロックを格納することを可能とする
ブロック置換え方法を提供することにある。
位レベルのキャッシュメモリに、プロセッサから要求さ
れた順序の新しいブロックを格納することを可能とする
ブロック置換え方法を提供することにある。
上記目的を達成するため、本発明の多階層キャッシュメ
モリのブロック置換え方法においては、下位レベルのキ
ャッシュメモリのブロックを、上位レベルのキャッシュ
メモリに格納されているブロックと格納されていないブ
ロックに区分し、下位レベルのキャッシュメモリでのブ
ロック置き換え時、上位レベルのキャッシュメモリに格
納されていないブロックを置き換えの対象とすることを
特徴とするものである。
モリのブロック置換え方法においては、下位レベルのキ
ャッシュメモリのブロックを、上位レベルのキャッシュ
メモリに格納されているブロックと格納されていないブ
ロックに区分し、下位レベルのキャッシュメモリでのブ
ロック置き換え時、上位レベルのキャッシュメモリに格
納されていないブロックを置き換えの対象とすることを
特徴とするものである。
上位レベルのキャッシュメモリは、下位レベルのキャッ
シュメモリにブロック要求を出す時、該ブロックで置き
換えられるブロックも同時にを通知する。これにより、
下位レベルのキャッシュメモリでは、ブロックを上位レ
ベルのキャッシュメモリに格納されているブロックと格
納されていないブロックに区分することができる。
シュメモリにブロック要求を出す時、該ブロックで置き
換えられるブロックも同時にを通知する。これにより、
下位レベルのキャッシュメモリでは、ブロックを上位レ
ベルのキャッシュメモリに格納されているブロックと格
納されていないブロックに区分することができる。
下位レベルのキャッシュメモリは、ブロック置き換え時
、上位レベルのキャッシュメモリに含まれていないブロ
ックのみを置き換えの対象とし、プロセッサから要求さ
れた順序に新しいブロックを格納する。これにより、下
位レベルのキャッシュメモリにおけるブロックの置き換
えが、上位レベルのキャッシュメモリが無い場合と同様
に行われ、プロセッサから要求された新しいブロックを
優先して内部に格納しておくことが可能となる。
、上位レベルのキャッシュメモリに含まれていないブロ
ックのみを置き換えの対象とし、プロセッサから要求さ
れた順序に新しいブロックを格納する。これにより、下
位レベルのキャッシュメモリにおけるブロックの置き換
えが、上位レベルのキャッシュメモリが無い場合と同様
に行われ、プロセッサから要求された新しいブロックを
優先して内部に格納しておくことが可能となる。
以下、本発明の一実施例について図面により説明する。
第1図は本発明のブロック置換え方法の一実施例を説明
するための構成図で、1はプロセッサ、2はレベル0の
キャッシュメモリ、3はレベル1のキャッシュメモリ、
4はメインメモリである。
するための構成図で、1はプロセッサ、2はレベル0の
キャッシュメモリ、3はレベル1のキャッシュメモリ、
4はメインメモリである。
第1図の構成は、基本的に第4図の構成と同様であり、
レベルOのキャッシュメモリ2、レベル1のキャッシュ
メモリ3およびメインメモリ4は4列に分かれ、レベル
]のキャッシュメモリ3の容量はレベルOのキャッシュ
メモリ2の容量の2倍、メインメモリ4の容量はレベル
1のキャッシュメモリ3の容量の2倍であるとしている
。5は一つのブロックを示し、各メモリともに等しい大
きさの容量である。
レベルOのキャッシュメモリ2、レベル1のキャッシュ
メモリ3およびメインメモリ4は4列に分かれ、レベル
]のキャッシュメモリ3の容量はレベルOのキャッシュ
メモリ2の容量の2倍、メインメモリ4の容量はレベル
1のキャッシュメモリ3の容量の2倍であるとしている
。5は一つのブロックを示し、各メモリともに等しい大
きさの容量である。
メインメモリ4の同一列に含まれるブロックは、レベル
0のキャッシュメモリ2およびレベル1のキャッシュメ
モリ3の同一列に格納される。この場合、レベルOのキ
ャッシュメモリ2の各列については、従来と同様にプロ
セッサ1から要求が行われた順序にブロックが格納され
るが、レベル1のキャッシュメモリ3の各列については
、レベルOのキャッシュメモリ2に格納されているプロ
ン]1 りa、レベルOのキャッシュメモリ2に格納されていな
いブロックbに分けて格納し、レベルOのキャッシュメ
モリ2に格納されていないブロックbは、過去にレベル
Oのキャッシュメモリ2に格納されていた順序に格納す
る。第1図において、置換えられた順序を新←旧で示す
。
0のキャッシュメモリ2およびレベル1のキャッシュメ
モリ3の同一列に格納される。この場合、レベルOのキ
ャッシュメモリ2の各列については、従来と同様にプロ
セッサ1から要求が行われた順序にブロックが格納され
るが、レベル1のキャッシュメモリ3の各列については
、レベルOのキャッシュメモリ2に格納されているプロ
ン]1 りa、レベルOのキャッシュメモリ2に格納されていな
いブロックbに分けて格納し、レベルOのキャッシュメ
モリ2に格納されていないブロックbは、過去にレベル
Oのキャッシュメモリ2に格納されていた順序に格納す
る。第1図において、置換えられた順序を新←旧で示す
。
以下、第1図の構成例について、第2図および第3図を
参照して本発明によるブロック置換え処理の一例を説明
する。
参照して本発明によるブロック置換え処理の一例を説明
する。
いま、初期状態として、第1図に示すメインメモリ4の
ブロック群に対し、レベルOのキャッシュメモリ2およ
びレベル1のキャッシュメモリ3に第3図(a)に示す
ようにブロックが格納されているとする。この状態にお
いて、プロセッサ1がブロック01,02,01,03
,04の順にデータを要求した場合について以下に説明
する。
ブロック群に対し、レベルOのキャッシュメモリ2およ
びレベル1のキャッシュメモリ3に第3図(a)に示す
ようにブロックが格納されているとする。この状態にお
いて、プロセッサ1がブロック01,02,01,03
,04の順にデータを要求した場合について以下に説明
する。
まず、プロセッサlからブロック01内のデータが要求
された時、レベルOのキャッシュメモリ2にブロック0
1が存在するので、レベルOのキャッシュメモリ2はプ
ロセッサ1にブロック01内のデータを転送すると\も
に、第0列に格納されているブロックをプロセッサ1か
ら要求のあった順序に並べ換える(第2図のステップ2
01゜202.212,213)。
された時、レベルOのキャッシュメモリ2にブロック0
1が存在するので、レベルOのキャッシュメモリ2はプ
ロセッサ1にブロック01内のデータを転送すると\も
に、第0列に格納されているブロックをプロセッサ1か
ら要求のあった順序に並べ換える(第2図のステップ2
01゜202.212,213)。
このプロセッサ1からブロック01が要求された場合の
処理後、レベル0のキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第2図(b)のようにな
る。これは第6図(b)と同じである。
処理後、レベル0のキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第2図(b)のようにな
る。これは第6図(b)と同じである。
次に、プロセッサ1からブロック02内のデータが要求
された時、レベルOのキャッシュメモリ2は、内部にブ
ロックo2を格納していないので、第0列のブロック中
でプロセッサ1からの要求が最も古く行われたブロック
OOをブロック02で置換えるべきブロックとして選択
し、レベル1のキャッシュメモリ3に対し、ブロック0
2のブロック転送を要求すると\もに、ブロックOOを
ブロック02で置き換えることを通知する(第2図のス
テップ201,202,203,204)。
された時、レベルOのキャッシュメモリ2は、内部にブ
ロックo2を格納していないので、第0列のブロック中
でプロセッサ1からの要求が最も古く行われたブロック
OOをブロック02で置換えるべきブロックとして選択
し、レベル1のキャッシュメモリ3に対し、ブロック0
2のブロック転送を要求すると\もに、ブロックOOを
ブロック02で置き換えることを通知する(第2図のス
テップ201,202,203,204)。
レベル1のキャッシュメモリ3は、ブロックO2が存在
するので、レベルOのキャッシュメモリ2ヘブロツク0
2を転送する(第2図のステップ205.209)。そ
の後、レベル1のキャッシュメモリ3は、ブロック00
とブロック02の格納位置を入れ換えると\もに、レベ
ル0のキャッシュメモリ2の第0列に格納されていない
ブロックbをレベルOのキャッシュメモリ2に格納され
ていた順序に並べ変える(第2図のステップ210)。
するので、レベルOのキャッシュメモリ2ヘブロツク0
2を転送する(第2図のステップ205.209)。そ
の後、レベル1のキャッシュメモリ3は、ブロック00
とブロック02の格納位置を入れ換えると\もに、レベ
ル0のキャッシュメモリ2の第0列に格納されていない
ブロックbをレベルOのキャッシュメモリ2に格納され
ていた順序に並べ変える(第2図のステップ210)。
レベルOのキャッシュメモリ2は、第0列中のブロック
OOを、レベル1のキャッシュメモリ3から転送された
ブロック02で置き換える(第2図のステップ211)
。その後、レベルOのキャッシュメモリ2は、プロセッ
サ1にブロック02内のデータを転送すると\もに、第
0列に格納されているブロックをプロセッサ1から要求
のあった順序に並べ変える(第2図の212,213)
。
OOを、レベル1のキャッシュメモリ3から転送された
ブロック02で置き換える(第2図のステップ211)
。その後、レベルOのキャッシュメモリ2は、プロセッ
サ1にブロック02内のデータを転送すると\もに、第
0列に格納されているブロックをプロセッサ1から要求
のあった順序に並べ変える(第2図の212,213)
。
このプロセッサ1からブロック02が要求された場合の
処理後、レベル0のキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第2図(c)のようにな
る。第6図(c)に対し、第2図(C)では、レベル1
のキャッシュメモリ3において、ブロックOOとブロッ
ク01の配置が入れ換わっている。
処理後、レベル0のキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第2図(c)のようにな
る。第6図(c)に対し、第2図(C)では、レベル1
のキャッシュメモリ3において、ブロックOOとブロッ
ク01の配置が入れ換わっている。
次に、プロセッサ1から再びブロック01内のデータが
要求された時、レベル0のキャッシュメモリ2にブロッ
ク01が存在するので、レベルOのキャッシュメモリ2
はプロセッサ1にブロック01内のデータを転送すると
\もに、第0列に格納されているブロックをプロセッサ
1から要求のあった順序で並べ変える(第2図のステッ
プ20.202,212,213)。
要求された時、レベル0のキャッシュメモリ2にブロッ
ク01が存在するので、レベルOのキャッシュメモリ2
はプロセッサ1にブロック01内のデータを転送すると
\もに、第0列に格納されているブロックをプロセッサ
1から要求のあった順序で並べ変える(第2図のステッ
プ20.202,212,213)。
このプロセッサ1から再びブロック01が要求された場
合の処理後、レベル0のキャッシュメモリ2およびレベ
ル1のキャッシュメモリ3の状態は第2図(d)のよう
になる。
合の処理後、レベル0のキャッシュメモリ2およびレベ
ル1のキャッシュメモリ3の状態は第2図(d)のよう
になる。
次に、プロセッサ1からブロック03内のデータが要求
された時、レベルOのキャッシュメモリ2はブロック0
3を内部に格納しておらず、レベル1のキャッシュメモ
リ3はブロック03を格納している。この時の処理は、
先のブロック02内のデータが要求された場合と同様で
ある。即ち、レベルOのキャッシュメモリ2は、内部に
ブロック03を格納していないので、レベル1のキャッ
シュメモリ3にブロック03を要求するが、同時に第0
列のブロックでプロセッサ1からの要求が最も古くに行
われたブロック02をブロック03で置き換えることを
通知する。レベル1のキャッシュメモリ3は、レベルO
のキャッシュメモリ2にブロック03を転送し、レベル
Oのキャッシュメモリ2は、ブロック02をブロック0
3で置き換え、プロセッサ1にブロック03内のデータ
を転送すると\もに、第0列に格納されているブロック
をプロセッサ1から要求のあった順序に並べ換える。一
方、レベル1のキャッシュメモリ3は、ブロック02と
ブロック03の格納位置を入れ換えると\もに、レベル
Oのキャッシュメモリ2の第0列に格納されていないブ
ロックbをレベルOのキャッシュメモリ2に格納されて
いた順序に並べ変える。
された時、レベルOのキャッシュメモリ2はブロック0
3を内部に格納しておらず、レベル1のキャッシュメモ
リ3はブロック03を格納している。この時の処理は、
先のブロック02内のデータが要求された場合と同様で
ある。即ち、レベルOのキャッシュメモリ2は、内部に
ブロック03を格納していないので、レベル1のキャッ
シュメモリ3にブロック03を要求するが、同時に第0
列のブロックでプロセッサ1からの要求が最も古くに行
われたブロック02をブロック03で置き換えることを
通知する。レベル1のキャッシュメモリ3は、レベルO
のキャッシュメモリ2にブロック03を転送し、レベル
Oのキャッシュメモリ2は、ブロック02をブロック0
3で置き換え、プロセッサ1にブロック03内のデータ
を転送すると\もに、第0列に格納されているブロック
をプロセッサ1から要求のあった順序に並べ換える。一
方、レベル1のキャッシュメモリ3は、ブロック02と
ブロック03の格納位置を入れ換えると\もに、レベル
Oのキャッシュメモリ2の第0列に格納されていないブ
ロックbをレベルOのキャッシュメモリ2に格納されて
いた順序に並べ変える。
1に
のプロセッサ1からブロック03が要求された場合の処
理後、レベルOのキャッシュメモリ2およびレベル1の
キャッシュメモリの状態は第3図(e)のようになる。
理後、レベルOのキャッシュメモリ2およびレベル1の
キャッシュメモリの状態は第3図(e)のようになる。
次に、プロセッサ1からブロック04内のデータが要求
された時、レベル0のキャッシュメモリ2は、内部にブ
ロック04を格納していないので、第0列のブロック中
でプロセッサ1からの要求が最も古くに行われたブロッ
ク01を置き換えブロックとして選択し、レベル1のキ
ャッシュメモリ3に対し、ブロック04を要求すると\
もに、ブロック01をブロック04で置き換えることを
通知する(第2図のステップ201,202,203.
204)。
された時、レベル0のキャッシュメモリ2は、内部にブ
ロック04を格納していないので、第0列のブロック中
でプロセッサ1からの要求が最も古くに行われたブロッ
ク01を置き換えブロックとして選択し、レベル1のキ
ャッシュメモリ3に対し、ブロック04を要求すると\
もに、ブロック01をブロック04で置き換えることを
通知する(第2図のステップ201,202,203.
204)。
一方、レベル1のキャッシュメモリ3にもブロック04
が存在しないので、レベル1のキャッシュメモリ3は、
メインメモリ4に対してブロック04を要求すると\も
に、第0列のブロック中でレベル0のキャッシュメモリ
2に最も古くに格納されなくなったブロック00をブロ
ック04で置き換えるべきブロックとして選択する(第
2図のステップ205,206,207)。メインメモ
I74からブロック04の転送(ブロック転送)が行わ
れると、レベル1のキャッシュメモリ3は、第0列中の
ブロックOOを、メインメモリ4から転送されたブロッ
ク04で置き換え、レベルOのキャッシュメモリ2にブ
ロック04を転送する(第2図のステップ208,20
9)。その後、レベル1のキャッシュメモリ3は、第0
列中のブロック01とブロック04の格納位置を入れ換
えると\もに、レベルOのキャッシュメモリ2に格納さ
れていない第0列中のブロックbをレベル0のキャッシ
ュメモリ2に格納されていた順序に並べ換える(第2図
のステップ210)。
が存在しないので、レベル1のキャッシュメモリ3は、
メインメモリ4に対してブロック04を要求すると\も
に、第0列のブロック中でレベル0のキャッシュメモリ
2に最も古くに格納されなくなったブロック00をブロ
ック04で置き換えるべきブロックとして選択する(第
2図のステップ205,206,207)。メインメモ
I74からブロック04の転送(ブロック転送)が行わ
れると、レベル1のキャッシュメモリ3は、第0列中の
ブロックOOを、メインメモリ4から転送されたブロッ
ク04で置き換え、レベルOのキャッシュメモリ2にブ
ロック04を転送する(第2図のステップ208,20
9)。その後、レベル1のキャッシュメモリ3は、第0
列中のブロック01とブロック04の格納位置を入れ換
えると\もに、レベルOのキャッシュメモリ2に格納さ
れていない第0列中のブロックbをレベル0のキャッシ
ュメモリ2に格納されていた順序に並べ換える(第2図
のステップ210)。
レベルOのキャッシュメモリ2は、第0列中のブロック
01を、レベル1のキャッシュメモリ3から転送された
ブロック4で置き換える(第2図のステップ211)。
01を、レベル1のキャッシュメモリ3から転送された
ブロック4で置き換える(第2図のステップ211)。
その後、レベルOのキャッシュメモリ2は、プロセッサ
1にブロックo4内のデータを転送すると\もに、第0
列に格納されているブロックをプロセッサ1からの要求
のあった順序に並べ換える(第2図のステップ212゜
213)。
1にブロックo4内のデータを転送すると\もに、第0
列に格納されているブロックをプロセッサ1からの要求
のあった順序に並べ換える(第2図のステップ212゜
213)。
このプロセッサ1からブロック04が要求された場合の
処理後、レベル○のキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第3図(f)のようにな
る。
処理後、レベル○のキャッシュメモリ2およびレベル1
のキャッシュメモリ3の状態は第3図(f)のようにな
る。
第3図の例では、プロセッサ1からブロック内のデータ
の要求が、ブロック01,02,01゜03.04の順
に行われ後、このプロセッサ1から要求された順序の新
しいブロック01,02゜03.04がレベル1のキャ
ッシュメモリ3に格納される。これにより、下位レベル
のキャッシュメモリ3におけるブロックの置き換えが、
上位レベルのキャッシュメモリ2が無い場合と同様に行
われ、プロセッサ1から要求された新しいブロックを優
先して内部に格納しておくことが可能となる。
の要求が、ブロック01,02,01゜03.04の順
に行われ後、このプロセッサ1から要求された順序の新
しいブロック01,02゜03.04がレベル1のキャ
ッシュメモリ3に格納される。これにより、下位レベル
のキャッシュメモリ3におけるブロックの置き換えが、
上位レベルのキャッシュメモリ2が無い場合と同様に行
われ、プロセッサ1から要求された新しいブロックを優
先して内部に格納しておくことが可能となる。
以上説明したように、本発明によれば、多階層キャッシ
ュメモリにおいて、下位レベルのキャッシュメモリに上
位レベルのキャッシュメモリに格納されるブロックの情
報を伝え、上位レベルのキャッシュメモリでのブロック
の置き換え時、上位レベルのキャッシュメモリに含まれ
てないブロックを置き換えることにより、プロセッサか
ら要求された順序の新しいブロックを優先して内部に格
納しておくことが可能となる。一般に、上位レベルのキ
ャッシュメモリ程、プロセッサからのアクセス時間が短
かく、プロセッサから要求された順序が新しいブロック
程、再びプロセッサから要求される確率が高いので、プ
ロセッサから要求された順序に新しいブロックを正しく
キャッシュメモリに格納することにより、プロセッサか
らメモリへのアクセス時間を短縮することが可能となる
。
ュメモリにおいて、下位レベルのキャッシュメモリに上
位レベルのキャッシュメモリに格納されるブロックの情
報を伝え、上位レベルのキャッシュメモリでのブロック
の置き換え時、上位レベルのキャッシュメモリに含まれ
てないブロックを置き換えることにより、プロセッサか
ら要求された順序の新しいブロックを優先して内部に格
納しておくことが可能となる。一般に、上位レベルのキ
ャッシュメモリ程、プロセッサからのアクセス時間が短
かく、プロセッサから要求された順序が新しいブロック
程、再びプロセッサから要求される確率が高いので、プ
ロセッサから要求された順序に新しいブロックを正しく
キャッシュメモリに格納することにより、プロセッサか
らメモリへのアクセス時間を短縮することが可能となる
。
また、マルチプロセッサシステムのキャッシュメモリに
おいては、他のプロセッサにより書き変えられたメイン
メモリのデータをキャッシュメモリ内に持つことにより
、プロセッサが誤った処理を実行しないように、キャッ
シュメモリとメインメモリとのデータの一致制御を行う
必要がある。
おいては、他のプロセッサにより書き変えられたメイン
メモリのデータをキャッシュメモリ内に持つことにより
、プロセッサが誤った処理を実行しないように、キャッ
シュメモリとメインメモリとのデータの一致制御を行う
必要がある。
本発明を用いることにより、任意のブロック(他のプロ
セッサにより書き変えられたデータを含むブロック)が
上位レベルのキャッシュメモリに格納されているか否か
を下位レベルのキャッシュメモリ内の情報から判定でき
るので、下位レベルから順しこ一致制御を行い、上位レ
ベルに他のプロセッサにより書き換えられたデータを含
むブロックが格納されていないと判定され\ば、上位レ
ベルのキャッシュメモリに対する一致制御が不要となり
、キャッシュメモリにおけるプロセッサと一致制御のア
クセス競合を減少させることが可能となる利点がある。
セッサにより書き変えられたデータを含むブロック)が
上位レベルのキャッシュメモリに格納されているか否か
を下位レベルのキャッシュメモリ内の情報から判定でき
るので、下位レベルから順しこ一致制御を行い、上位レ
ベルに他のプロセッサにより書き換えられたデータを含
むブロックが格納されていないと判定され\ば、上位レ
ベルのキャッシュメモリに対する一致制御が不要となり
、キャッシュメモリにおけるプロセッサと一致制御のア
クセス競合を減少させることが可能となる利点がある。
第1図は本発明のブロック置換え方法の一実施例を説明
するための構成図、第2図は本発明によるブロック置換
え処理の一例のフローチャート、第3図は第1図の構成
の具体的処理例を示す図、第4図は従来のブロック置換
え方法を説明するための構成図、第5図は従来のブロッ
ク置換え処理のフローチャート、第6図は第4図の構成
の具体的処理例を示す図である。 1・・・プロセッサ、 2・・・レベルOのキャッシュ
メモリ、 3・・レベル1のキャッシュメモリ、4・
・メインメモリ、 5・・・ブロック、a・・・レベ
ルOのキャッシュメモリに格納されているブロック、
b・・レベルOのキャッシュメモリに格納されていない
ブロック。 第3 畝)ネpヤ我態、 (ト)7′ロ゛ンフ01會是七す”L (!LLI41
ン((、(す7°”ロツ702澱♂2゛(線1法君、(
d)7’o7701tノ’e、;ok’R*or4に’
lj−しへ”ル0I71 七−一、二+1%7キ11 しへ゛ル1ク シw、、、= −−/F II (e)7”C1y703%’i#k、−ttae4:’
Kl、ζ子)7・口、り。4饅H灯f11仄悠、六ヤン
鋺クーyt7 へf7シLX′tン 図 (α坊?l勘状鉢 (ト27パ07〕O 減好1゛(代1+jlr’fi− (c、+〕゛’[777’2 j北が”’f9q”lj
”’B(d)フ゛077 Q −#茫子に’tフ夫lIユ仄’J3− MV7シ1メセク へ?1シ2ヲ ムΔ゛ルOラ ヘヤツ婢す lA−ル1の へヤシ〉メリ Ce)7”Oツyo3j:eHk−Lf’i、、*”l
K’g(す)7°’Dソ)o4 tQafF−−Lf’
1qLF’j3、仁へILOQ へヤソシニに×七υ Lへ゛ル19 AヤV=−ユ〆9 ムヘ゛ル0つ 六でフジメリ Lへ“ルック Aヤフシエ〆−J
するための構成図、第2図は本発明によるブロック置換
え処理の一例のフローチャート、第3図は第1図の構成
の具体的処理例を示す図、第4図は従来のブロック置換
え方法を説明するための構成図、第5図は従来のブロッ
ク置換え処理のフローチャート、第6図は第4図の構成
の具体的処理例を示す図である。 1・・・プロセッサ、 2・・・レベルOのキャッシュ
メモリ、 3・・レベル1のキャッシュメモリ、4・
・メインメモリ、 5・・・ブロック、a・・・レベ
ルOのキャッシュメモリに格納されているブロック、
b・・レベルOのキャッシュメモリに格納されていない
ブロック。 第3 畝)ネpヤ我態、 (ト)7′ロ゛ンフ01會是七す”L (!LLI41
ン((、(す7°”ロツ702澱♂2゛(線1法君、(
d)7’o7701tノ’e、;ok’R*or4に’
lj−しへ”ル0I71 七−一、二+1%7キ11 しへ゛ル1ク シw、、、= −−/F II (e)7”C1y703%’i#k、−ttae4:’
Kl、ζ子)7・口、り。4饅H灯f11仄悠、六ヤン
鋺クーyt7 へf7シLX′tン 図 (α坊?l勘状鉢 (ト27パ07〕O 減好1゛(代1+jlr’fi− (c、+〕゛’[777’2 j北が”’f9q”lj
”’B(d)フ゛077 Q −#茫子に’tフ夫lIユ仄’J3− MV7シ1メセク へ?1シ2ヲ ムΔ゛ルOラ ヘヤツ婢す lA−ル1の へヤシ〉メリ Ce)7”Oツyo3j:eHk−Lf’i、、*”l
K’g(す)7°’Dソ)o4 tQafF−−Lf’
1qLF’j3、仁へILOQ へヤソシニに×七υ Lへ゛ル19 AヤV=−ユ〆9 ムヘ゛ル0つ 六でフジメリ Lへ“ルック Aヤフシエ〆−J
Claims (1)
- (1)プロセッサとメインメモリの間に、下位レベルほ
ど容量の大きい複数のキャッシュメモリを配置してなる
情報処理装置において、 下位レベルのキャッシュメモリのブロックを、上位レベ
ルのキャッシュメモリに格納されているブロックと格納
されていないブロックに区分し、下位レベルのキャッシ
ュメモリでのブロック置き換え時、上位レベルのキャッ
シュメモリに格納されていないブロックを置き換えの対
象とすることを特徴とする多階層キャッシュメモリのブ
ロック置換え方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63178870A JPH0228738A (ja) | 1988-07-18 | 1988-07-18 | 多階層キャッシュメモリのブロック置換え方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63178870A JPH0228738A (ja) | 1988-07-18 | 1988-07-18 | 多階層キャッシュメモリのブロック置換え方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0228738A true JPH0228738A (ja) | 1990-01-30 |
Family
ID=16056131
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63178870A Pending JPH0228738A (ja) | 1988-07-18 | 1988-07-18 | 多階層キャッシュメモリのブロック置換え方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0228738A (ja) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS589277A (ja) * | 1981-07-06 | 1983-01-19 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | デ−タ処理装置 |
-
1988
- 1988-07-18 JP JP63178870A patent/JPH0228738A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS589277A (ja) * | 1981-07-06 | 1983-01-19 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | デ−タ処理装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110795206B (zh) | 用于促进集群级缓存和内存空间的系统和方法 | |
| US4881163A (en) | Computer system architecture employing cache data line move-out queue buffer | |
| TWI638311B (zh) | Data processing method and processor | |
| US20040236914A1 (en) | Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment | |
| CN108885583A (zh) | 高速缓存存储器访问 | |
| TWI614669B (zh) | 遷移異構處理器之間不同大小的分頁 | |
| US9367247B2 (en) | Memory access requests in hybrid memory system | |
| JP2002510079A (ja) | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 | |
| US20190332529A1 (en) | Atomic operations for fabric shared memories | |
| US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
| JPH03505793A (ja) | 階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム | |
| CN105354153A (zh) | 一种紧耦合异构多处理器数据交换缓存的实现方法 | |
| JP2000285023A (ja) | ファイル制御装置 | |
| US20120185672A1 (en) | Local-only synchronizing operations | |
| US20060095669A1 (en) | Direct deposit using locking cache | |
| JP2001222466A (ja) | マルチプロセッサ・システムと共有メモリ制御システム及び方法並びに記録媒体 | |
| JPH0228738A (ja) | 多階層キャッシュメモリのブロック置換え方法 | |
| CN109727629A (zh) | 使用利用多间隙进度字段的磨损均衡的方法和系统 | |
| JPH0387948A (ja) | マルチプロセッサシステム | |
| JPH1032580A (ja) | 記憶手段の制御方法及びその装置 | |
| JPH08115238A (ja) | ファイルシステム | |
| JP3940701B2 (ja) | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 | |
| US8423723B2 (en) | Multi-processor system device and method declaring and using variables | |
| JPH011049A (ja) | 並列計算機 | |
| CN121501704A (zh) | 一种数据传输方法、装置以及介质 |