JP2008165626A - キャッシュメモリ制御装置およびキャッシュメモリ制御方法 - Google Patents

キャッシュメモリ制御装置およびキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP2008165626A
JP2008165626A JP2006356474A JP2006356474A JP2008165626A JP 2008165626 A JP2008165626 A JP 2008165626A JP 2006356474 A JP2006356474 A JP 2006356474A JP 2006356474 A JP2006356474 A JP 2006356474A JP 2008165626 A JP2008165626 A JP 2008165626A
Authority
JP
Japan
Prior art keywords
cache
data
flag
subline
control unit
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
JP2006356474A
Other languages
English (en)
Other versions
JP5012016B2 (ja
Inventor
Tomoyori Okawa
智順 大川
Hiroyuki Kojima
広行 小島
Hideki Sakata
英樹 坂田
Masaki Ukai
昌樹 鵜飼
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006356474A priority Critical patent/JP5012016B2/ja
Priority to US11/980,386 priority patent/US7743215B2/en
Publication of JP2008165626A publication Critical patent/JP2008165626A/ja
Application granted granted Critical
Publication of JP5012016B2 publication Critical patent/JP5012016B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

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)

Abstract

【課題】限られたL2キャッシュ13aの資源を有効に活用し、不必要なデータの書き戻しをなくすこと。
【解決手段】キャッシュメモリ制御装置100は、L2キャッシュ13aのサブラインごとにSPフラグを設け、命令制御部11からアクセス仮想アドレスをL1キャッシュ制御部12が取得し、アクセス仮想アドレスに対応するデータが存在しない場合に、L2キャッシュアクセスアドレスをL2キャッシュ制御部13に出力する。そして、L2キャッシュ制御部13は、L1インデックスの仮想ページ番号に属する部分VA21とL2インデックスの物理ページ番号に属する部分PA21とを基にしてSPフラグの状態を切り換え、SPフラグの状態に基づいてL1キャッシュ12aからサブラインに対するデータの書き戻しを実行し、要求対象となるサブラインのデータをL1キャッシュ制御部12に出力する。
【選択図】 図2

Description

この発明は、第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御装置等に関し、特に、限られたL2キャッシュの資源を有効に活用し、不必要なデータの書き戻しをなくすことができるキャッシュメモリ制御装置およびキャッシュメモリ制御方法に関するものである。
従来より、CPU(Central Processing Unit)などの処理装置がデータや命令などを取得/更新する際に主記憶装置やバスなどの遅延を隠蔽化し、処理装置と計算装置との性能差を埋めるためにキャッシュメモリが用いられている。また、キャッシュメモリは、多段構造となっており、例えば、L1(レベル1)キャッシュと、L1キャッシュを包含するL2(レベル2)キャッシュとから構成されている(特許文献1および特許文献2参照)。
また、L2キャッシュは、L1キャッシュに異なる仮想アドレスで同一の物理アドレスが登録される状態(シノニム)にならないように制御されるため、L2キャッシュタグに仮想アドレス(L1キャッシュのインデックス部に対応)を登録する形態をとり、さらに、L2キャッシュライン内を複数のブロックに区切ってサブラインを構成し、サブラインごとにデータが管理されるようになっている。
ここで、仮想アドレスおよび物理アドレスの構成について説明する。図24は、仮想アドレスおよび物理アドレスの構成を説明するための説明図である。図24において、VAは仮想アドレスを示し、PAは物理アドレスを示す。そして、VA1およびPA1は、L1キャッシュ、L2キャッシュそれぞれのインデックスより上位のビットを示し、VA2およびPA2は、L1キャッシュ、L2キャッシュそれぞれのインデックスを示す。
VA2は、VA21(仮想ページ番号に属する部分)とVA22(ページ内オフセットに属する部分)に分けられる。VA3およびPA3は、L1キャッシュ、L2キャッシュそれぞれのキャッシュライン内オフセットを示す。L2キャッシュは、PA3をPA31、PA32とサブラインに区切って使用する。ここで、PA31はサブライン番号、PA32はサブライン内オフセットを示す。
VA4およびPA4は、それぞれ仮想ページ番号、物理ページ番号を示し、VA5およびPA5は、ページ内オフセットを示す。なお、仮想アドレスVAを物理アドレスPAに変換した場合(あるいは物理アドレスPAを仮想アドレスVAに変換した場合)であってもVA5およびPA5に格納されたデータ(ビット)は変換されず双方とも等しいデータが格納される。
続いて、従来にかかるL2キャッシュの構成について説明する。図25は、従来にかかるL2キャッシュの構成を示す図である。同図に示すPA1は、登録物理アドレスを示し(図24に示したPA1に対応)、VA21は、登録仮想インデックスアドレスを示し(図24に示したVA21に対応)、SUBLINE−x STは、サブラインのステータス(このステータスは、L1キャッシュ、L2キャッシュにサブラインのデータが存在するか否かを示すデータやサブラインに対応するデータが更新されているか否かを示すデータを含む)、SUBLINE−x DATAは、サブラインのキャッシュデータを示す。
図25に示すL2キャッシュの管理方式は、一例として、L2キャッシュライン内で、4つのサブラインを管理する方式とする。L1キャッシュのラインサイズをα、L2キャッシュのラインサイズをβとすると、L1キャッシュのラインサイズαとL2キャッシュのラインサイズβとの関係は、「α×4=β」となる。
L2キャッシュは、各サブライン単位でデータ管理を実行することができる。なお、L2キャッシュは、L2キャッシュタグ部の資源の制限から4つのサブラインに対してただ1通りの仮想アドレスVAしか割り当てられず、シノニム解消のための書き戻しの際にはL2キャッシュライン(サブライン全て)が制御対象となる。サブラインごとに仮想アドレスVAを設定すれば、サブラインごと(他のサブラインと干渉せずに)独立に制御可能となるが、サブラインの数に比例してL2キャッシュのタグ部に割り当てるべき資源が増大するため、サブラインごとに仮想アドレスVAを割り当てられないのが現状である。
続いて、従来にかかるキャッシュメモリの制御方式について説明する。図26〜図30は、従来にかかるキャッシュメモリの制御方式を説明するための説明図である。以下において、図26〜図30を用いて、(1)物理アドレスPA(a)のデータがL1キャッシュに仮想アドレスVA(a)で登録され、仮想アドレスVA(a)でL1キャッシュがアクセスされた場合、(2)物理アドレスPA(a)のデータがL1キャッシュに仮想アドレスVA(a)で登録されているときに、仮想アドレスVA(b)でL1キャッシュがアクセスされた場合、(3)物理アドレスPA(a)のデータがL1キャッシュに仮想アドレスVA(a)で登録されているときに、仮想アドレスVA(c)でL1キャッシュがアクセスされた場合について順に説明する。なお、図26〜図30に示すTLB(Translation Lookaside Buffer)は、仮想アドレス(仮想ページ番号VA4)と物理アドレス(物理ページ番号PA4)の対応情報を保持するバッファである。
(1)物理アドレスPA(a)のデータがL1キャッシュに仮想アドレスVA(a)で登録され、仮想アドレスVA(a)でL1キャッシュがアクセスされた場合
図26に示すように、L1キャッシュ制御部(図示略)は、アクセス仮想アドレス(アクセス対象となる仮想アドレス)VA(a)をTLBによって物理ページ番号PA4(a)に変換し、L1インデックスVA2(a)に対応する物理ページ番号PA4(a)を検索すると、双方の物理ページ番号がPA4(a)で一致するのでL1キャッシュヒットとなり、L1キャッシュに記憶されたDATA(a)が応答される。
(2)物理アドレスPA(a)のデータがL1キャッシュに仮想アドレスVA(a)で登録されているときに、仮想アドレスVA(b)でL1キャッシュがアクセスされた場合(TLBにはVA(a)と同一物理ページ番号PA4(a)が登録されているときで、かつページ内オフセットのL2キャッシュのサブライン番号(例えば、サブライン番号0)が等しいとき)
図27に示す例では、L2キャッシュのタグは、L2インデックス部以下を除いた登録物理アドレスPA1(a)が登録され、L2ラインサイズ分のデータ(すなわち、サブラインすべて共通で)がL1キャッシュにVA21(a)のインデックスで登録されていることを示している。
また、L2キャッシュのタグには、PA1(a)、VA21(a)であるものがL2キャッシュに存在するか否かの示すステータス(ST0〜ST3に対応)が、サブラインごとに記憶されている。DATA(a0)〜DATA(a3)はそれぞれ同一L2キャッシュライン中のサブライン番号0〜3のデータに対応し、L2キャッシュは、DATA(a0)〜DATA(a3)のデータを記憶しているものとする。
図27に示すように、まず、L1キャッシュ制御部は、アクセス仮想アドレスVA(b)をTLBによって物理ページ番号PA(a)に変換する。一方、L1インデックスVA2(b)に対応する物理ページ番号がL1キャッシュに存在しないため、L1キャッシュミスとなる。L1キャッシュミスとなった場合には、L1キャッシュ制御部は、L2キャッシュに対してアクセスを行う。
図27の下段に示すように、L2キャッシュは、物理アドレスPA(a)のデータが要求対象となる仮想アドレスVA21(b)と異なる仮想アドレスVA21(a)で登録されているため、L2キャッシュ制御部(図示略)は、VA21(a)が等しいL1インデックスに登録してあるPA4(a)の全サブラインに対する削除命令をL1キャッシュ制御部に出力し、L1キャッシュから該当データを削除させる。L1キャッシュにおいて、DATA(ax)が更新されていれば、L1キャッシュ制御部およびL2キャッシュ制御部が協働して、更新されているデータをL2キャッシュに書き戻す。
L2キャッシュ制御部は、L2キャッシュに最新データを書き戻した後に、VA21(b)のインデックスによってL2キャッシュに登録し、要求されたサブラインに対するデータをL1キャッシュに応答する(図28の下段参照)。
そして、L1キャッシュ制御部は、L2キャッシュ制御部から取得したデータをL1キャッシュに記憶すると共に、記憶したデータを要求元(命令制御部:図示略)に出力する(図28の上段参照)。
(3)物理アドレスPA(a)のデータがL1キャッシュに仮想アドレスVA(a)で登録されているときに、仮想アドレスVA(c)でL1キャッシュがアクセスされた場合(TLBにはVA(a)と同一物理ページ番号PA4(a)が登録されているときで、かつ、ページ内オフセットのL2キャッシュのサブライン番号が異なっているとき)
図29に示す例では、図27と同様にして、L2キャッシュのタグは、L2インデックス部以下を除いた登録物理アドレスPA1(a)が登録され、L2ラインサイズ分のデータ(すなわち、サブラインすべて共通で)がL1キャッシュにVA21(a)のインデックスで登録されていることを示している。
図29に示すように、まず、L1キャッシュ制御部は、アクセス仮想アドレスVA(c)をTLBによって物理ページ番号PA(a)に変換する。一方、L1インデックスVA(c)に対応する物理ページ番号がL1キャッシュに存在しないため、L1キャッシュミスとなる。L1キャッシュミスとなった場合には、L1キャッシュ制御部は、L2キャッシュに対してアクセスを行う。
図29の下段に示すように、L2キャッシュは、物理アドレスPA(a)のデータが要求対象となる仮想アドレスVA21(c)と異なる仮想アドレスVA21(a)で登録されているため、L2キャッシュ制御部は、VA21(a)が等しいL1インデックスに登録してあるPA4(a)の全サブラインに対する削除命令をL1キャッシュ制御部に出力し、L1キャッシュから該当データを削除させる。L1キャッシュにおいて、DATA(ax)が更新されていれば、L1キャッシュ制御部およびL2キャッシュ制御部が協働して、更新されているデータをL2キャッシュに書き戻す。
L2キャッシュ制御部は、L2キャッシュに最新データを書き戻した後に、VA21(c)のインデックスによってL2キャッシュに登録し、要求されたサブラインに対するデータをL1キャッシュに応答する(図30の下段参照)。
そして、L1キャッシュ制御部は、L2キャッシュ制御部から取得したデータをL1キャッシュに記憶すると共に、記憶したデータを要求元に出力する(図30の上段参照)。
このように、L2キャッシュは、L2キャッシュラインを複数のブロックに区切っているため、サブラインごとにデータを管理することができる。
国際公開第2004/046932号パンフレット 特開平8−6852号公報
しかしながら、上述した従来の技術では、L2キャッシュタグに登録するL1インデックスVA21を共通にしているため、要求されたサブラインを処理する場合に、シノニム問題を解消するためのL1インデックスVA21の再登録の際に、旧L1インデックスに登録されているサブラインのL1キャッシュからの削除の操作(データの書き戻し)が同一L2キャッシュライン内の全てのサブラインに対して発生してしまうという問題があった。
なお、L2キャッシュのサブラインごとにL1インデックスVA21を設定することも考えられるが、サブライン数の増加にともなってL2キャッシュに記憶すべきデータ量が飛躍的に増加してしまうため、現実的ではない。
すなわち、限られたL2キャッシュの資源を有効に活用し、不必要なデータの書き戻しをなくす(同一ラインに記憶された他のサブラインに対応するL1キャッシュ上に記憶されたデータの削除(書き戻し)のフローを省略する)ことが極めて重要な課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、限られたL2キャッシュの資源を有効に活用し、不必要なデータの書き戻しをなくすことができるキャッシュメモリ制御装置およびキャッシュメモリ制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御装置であって、前記第2のキャッシュは、前記サブラインごとに制御フラグを備え、データ要求を受け付け、要求されたデータが前記第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいて前記サブラインに対応する制御フラグの状態を切り換えるフラグ切替手段と、前記第1のキャッシュから前記サブラインに対するデータの書き戻しを当該サブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを前記第1のキャッシュに出力する制御手段と、を備えたことを特徴とする。
また、本発明は、上記発明において、前記制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、前記フラグ切替手段は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、前記制御フラグをオン状態に切り換えることを特徴とする。
また、本発明は、上記発明において、前記フラグ切替手段は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、前記制御フラグをオフ状態に切り換えることを特徴とする。
また、本発明は、上記発明において、前記制御手段は、前記制御フラグがオフ状態となるサブラインに対して前記第1のキャッシュからのデータの書き戻しを実行することを特徴とする。
また、本発明は、上記発明において、要求されたデータが前記第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得するデータ取得手段をさらに備え、前記フラグ切替手段は、前記データ取得手段によって取得されたデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいて前記サブラインに対応する制御フラグを切り換えることを特徴とする。
また、本発明は、第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御方法であって、前記第2のキャッシュは、前記サブラインごとに制御フラグを備え、データ要求を受け付け、要求されたデータが前記第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいて前記サブラインに対応する制御フラグの状態を切り換えるフラグ切替工程と、前記第1のキャッシュから前記サブラインに対するデータの書き戻しを当該サブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを前記第1のキャッシュに出力する制御工程と、を含んだことを特徴とする。
また、本発明は、上記発明において、前記制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、前記フラグ切替工程は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、前記制御フラグをオン状態に切り換えることを特徴とする。
また、本発明は、上記発明において、前記フラグ切替工程は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、前記制御フラグをオフ状態に切り換えることを特徴とする。
また、本発明は、上記発明において、前記制御工程は、前記制御フラグがオフ状態となるサブラインに対して前記第1のキャッシュからのデータの書き戻しを実行することを特徴とする。
また、本発明は、上記発明において、要求されたデータが前記第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得するデータ取得工程をさらに含み、前記フラグ切替工程は、前記データ取得工程によって取得されたデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいて前記サブラインに対応する制御フラグを切り換えることを特徴とする。
本発明によれば、第2のキャッシュが、サブラインごとに制御フラグを備え、データ要求を受け付け、要求されたデータが第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいてサブラインに対応する制御フラグの状態を切り換え、第1のキャッシュからサブラインに対するデータの書き戻しをサブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを第1のキャッシュに出力するので、限られたL2キャッシュの資源を有効に活用し、不必要なデータの書き戻しをなくす(同一ラインに記憶された他のサブラインに対応するL1キャッシュ上に記憶されたデータの削除(書き戻し)のフローを省略する)ことができる。
また、本発明によれば、制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、制御フラグをオン状態に切り換えるので、簡便に制御フラグを切り換えることができる。
また、本発明によれば、仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、制御フラグをオフ状態に切り換えるので、簡便に制御フラグを切り換えることができる。
また、本発明によれば、制御フラグがオフ状態となるサブラインに対して第1のキャッシュからのデータの書き戻しを実行するので、わずか1ビットの制御フラグによってデータの書き戻しが不必要となるサブラインを特定させることができる。
また、本発明によれば、要求されたデータが第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得し、取得したデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいてサブラインに対応する制御フラグを切り換えるので、第2のキャッシュに該当データが存在しない場合でも、的確に制御フラグを切り換えることができる。
以下に添付図面を参照して、この発明に係るキャッシュメモリ制御装置およびキャッシュメモリ制御方法の好適な実施の形態を詳細に説明する。
まず、本実施例において用いられる仮想アドレスおよび物理アドレスの構成について説明する。図1は、本実施例にかかる仮想アドレスおよび物理アドレスの構成を説明するための説明図である。図1において、VAは仮想アドレスを示し、PAは物理アドレスを示す。そして、VA1およびPA1は、L1キャッシュ、L2キャッシュそれぞれのインデックスより上位のビットを示し、VA2およびPA2は、L1キャッシュ、L2キャッシュそれぞれのインデックスを示す。
VA2は、VA21(仮想ページ番号に属する部分)とVA22(ページ内オフセットに属する部分)に分けられる。また、PA2は、L2インデックスの物理ページ番号に属する部分PA21を含んでいる。VA3およびPA3は、L1キャッシュ、L2キャッシュそれぞれのキャッシュライン内オフセットを示す。L2キャッシュは、PA3をPA31、PA32とサブラインに区切って使用する。ここで、PA31はサブライン番号、PA32はサブライン内オフセットを示す。
VA4およびPA4は、それぞれ仮想ページ番号、物理ページ番号を示し、VA5およびPA5は、ページ内オフセットを示す。なお、仮想アドレスVAを物理アドレスPAに変換した場合(あるいは物理アドレスPAを仮想アドレスVAに変換した場合)であってもVA5およびPA5に格納されたデータ(ビット)は変換されず双方とも等しいデータが格納される。
続いて、本実施例にかかるキャッシュメモリ制御装置の概要および特徴について説明する。本実施例にかかるキャッシュメモリ制御装置は、L2(レベル2)キャッシュに含まれるサブラインごとに1ビットの制御フラグを設ける。そして、L1インデックスの仮想ページ番号に属する部分VA21とL2(レベル2)インデックスの物理ページ番号に属する部分PA21が等しいか否かを判定し、判定結果に応じて制御フラグをオン状態あるいはオフ状態に切り換える(図1参照)と共に、制御フラグの状態に基づいて、必要なサブラインに対してのみL1キャッシュからの削除の操作を行う(必要なサブラインに対してのみL1キャッシュからの書き戻しを実行する)。
L1インデックスの仮想ページ番号に属する部分VA21とL2インデックスの物理ページ番号に属する部分PA21が一致する場合には、VA21によらずPA21によってサブラインが属するL1インデックスを一意に特定することができることを意味する(仮想アドレスと物理アドレスとの対応がとれていることと等価となるため、PA21によって直接アクセスしても他のサブラインとの干渉を回避することができる)。
このように、L2キャッシュのサブラインごとに1ビットの制御フラグを設定し、制御フラグの状態(制御フラグがオンあるいはオフの状態)に基づいて、L1キャッシュからの削除操作を行うので、旧L1インデックスに登録されているサブラインのL1キャッシュからの削除の操作が同一L2キャッシュライン内の他のサブラインに対して発生してしまうことを防止することができる。また、サブラインごとに設けた制御フラグは1ビットの制御フラグであるため、制御フラグによる資源の消費量を極力低減させることができる。なお、以下の説明において、制御フラグをSPフラグと表記する。
つぎに、本実施例にかかるキャッシュメモリ制御装置の構成について説明する。図2は、本実施例にかかるキャッシュメモリ制御装置の構成を示す機能ブロック図である。同図に示すように、このキャッシュメモリ制御装置100は、CPU(Central Processing Unit)10〜30と、システム制御部40と、主記憶部50と、I/O(Input Output)部60とを備えて構成される。なお、図2に示す例では、CPU10〜30のみを示すが、このキャッシュメモリ制御装置100は、その他複数のCPUから構成されてもよい。また、CPU10〜30は、同様の構成であるため、ここでは、CPU10の説明を行いCPU20,30の説明は省略する。
CPU10は、主記憶部50に記憶されたプログラムを実行する装置であり、入力装置や記憶装置(図示略)からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力する。このCPU10は、命令制御部11と、L1キャッシュ制御部12と、L2キャッシュ制御部13とを備える。
このうち、命令制御部11は、L1キャッシュ制御部12からデータを取得し、演算・加工した上で、L1キャッシュ制御部12に出力する処理部である。命令制御部11は、L1キャッシュ制御部12からデータを取得する場合に、L1キャッシュ制御部12に対して取得対象となるデータの仮想アドレス(以下、アクセス仮想アドレスと表記する)VAを出力する。
L1キャッシュ制御部12は、L1キャッシュ12aおよびTLB12bを備え、命令制御部11からアクセス仮想アドレスVAを取得した場合に、対応するデータを命令制御部11に出力する処理部である。L1キャッシュ制御部12は、アクセス仮想アドレスVAに対応するデータをL1キャッシュ12aおよびTLB12bに基づいて取得し、取得したデータを命令制御部11に出力する。なお、アクセス仮想アドレスVAに対応するデータがL1キャッシュ12aに存在しない場合には、アクセス仮想アドレスVAに対応するデータを取得するため、L2キャッシュアクセスアドレスをL2キャッシュ制御部13に出力する。このL2キャッシュアクセスアドレスは、アクセス仮想アドレスに対応する物理アドレスとアクセス仮想アドレスのVA21(仮想ページ番号に属する部分)が含まれる。
ここで、L1キャッシュ12aおよびTLB12bのデータ構造について説明する。図3は、L1キャッシュ12aのデータ構造の一例を示す図であり、図4は、TLB12bのデータ構造の一例を示す図である。図3に示すように、L1キャッシュ12aは、L1インデックス(VA2に対応)、物理ページ番号(PA4)、L1インデックスおよび物理ページ番号に対応するデータから構成される。また、TLB12bは、図4に示すように、仮想ページ番号(VA4)および物理ページ番号(PA4)から構成される。
L2キャッシュ制御部13は、L2キャッシュ13aを備え、L1キャッシュ制御部12からL2キャッシュアクセスアドレスを取得した場合に、L2キャッシュアクセスアドレスに対応するデータをL1キャッシュ制御部12に出力する処理部である。
ここで、L2キャッシュ13aのデータ構造について説明する。図5は、L2キャッシュ13aのデータ構造の一例を示す図である。同図に示すように、L2キャッシュ13aは、L2インデックス(図1に示したPA2に対応)と、登録物理アドレス(図1に示したPA1に対応)と、登録仮想インデックスアドレス(図1に示したVA21に対応)と、サブラインのステータスにかかる情報を記憶するサブラインnステータス(nは0以上の整数)と、サブラインnステータスに対応し、上述した制御フラグに対応するスペシャル(SP)フラグn(nは0以上の整数)と、サブラインnステータスに対応するキャッシュデータを記憶するサブラインnデータ(nは0以上の整数)とから構成される。
L2キャッシュ制御部13は、L1キャッシュ制御部12からL2キャッシュアクセスアドレスを取得した場合に、L2キャッシュアクセスアドレスに含まれるVA21とPA21とが等しいか否かを判定し、判定結果に基づいてサブラインのSPフラグをオン(1)あるいはオフ(0)に設定する(切り換える)。
そして、L2キャッシュ制御部13は、SPフラグの状態を基にしてL2キャッシュ13aの各情報の再登録を行うと共に、L2キャッシュアクセスアドレスに対応するサブラインのデータをL1キャッシュ制御部12に出力する。なお、L1キャッシュ制御部12およびL2キャッシュ制御部13に関する詳しい説明は後述する。
システム制御部40は、L2キャッシュタグの写しを保持し、L2キャッシュ制御部13からのデータ要求を取得した場合に、対応するデータを主記憶部50から取得し、取得したデータをL2キャッシュ制御部13に出力する処理部である。ここで、L2キャッシュタグの写しは、図5に示したL2キャッシュ13aのL2インデックス、登録物理アドレス、サブラインnステータスに対応する情報を記憶する。
主記憶部50は、CPU10〜30によって利用されるデータおよび命令を記憶する記憶部(メモリ)であり、システム制御部40からのデータ要求に応答して、対応するデータをシステム制御部40に出力する。I/O部60は、図示しない記憶装置、入力装置、出力装置との間におけるデータの入出力を制御する処理部である。
続いて、図2に示したL1キャッシュ制御部12およびL2キャッシュ制御部13の処理について具体的に説明する。図6〜図11は、L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を説明するための説明図である。
まず、L1キャッシュ12aおよびL2キャッシュ13aが、図6のように登録されているときに、L1キャッシュ制御部12がアクセス仮想アドレスVA(e)を命令制御部11から取得した場合について説明する。また、図6を説明する場合の条件として、TLB12bにおいて、VA(e)はVA(a)と同一の物理ページ番号PA4(a)で登録されており、かつ、アクセス仮想アドレスVA(e)のページ内オフセットのL2キャッシュのサブライン番号が3であり、かつ、PA21(a)とVA21(e)とが等しいものとする。
また、VA(a)、VA(b)、VA(c)、VA(d)の仮想ページ番号はすべてVA4(a)と等しいとする。それゆえ、VA2(a)、VA2(b)、VA2(c)、VA2(d)の仮想ページ番号に属する部分はすべてVA21(a)と等しい。
図6に示すように、L1キャッシュ制御部12は、命令制御部11からアクセス仮想アドレスVA(e)を取得し、TLB12bによって物理ページ番号PA4(a)に変換する。一方、L1キャッシュ12aにおいて、L1インデックスVA2(e)に対応する物理ページ番号PA4が存在しないため、L1キャッシュ制御部12は、L1キャッシュミスと判定する。
L1キャッシュ制御部12は、L1キャッシュミスと判定した場合に、L2キャッシュアクセスアドレスをL2キャッシュ制御部13に出力する。L2キャッシュ制御部13は、L2キャッシュアクセスアドレスを取得し、L2キャッシュアクセスアドレスに含まれるVA21(e)と、L2キャッシュ13aに含まれる登録仮想インデックスアドレスVA21とを比較し、一致するか否かを判定する。図6に示す例では、登録仮想インデックスアドレスVA21は、VA21(a)であり、双方のアドレスは一致しないため、L1インデックスに登録してあるPA4(a)に対応する全サブラインのデータが書き戻し対象の候補となる。
続いて、L2キャッシュ制御部13は、PA21(a)とVA21(e)とを比較して、双方が等しいか否かを判定する。図6に示す例では、PA21(a)およびVA21(e)が等しいので、サブライン3データ(DATA(a3))のみを対象としてデータの書き戻しを実行する。この場合、L1キャッシュ制御部12はサブライン3に対応するデータをL1キャッシュ12aから一旦削除し、L1キャッシュ12aにおいて、DATA(a3)が更新されている場合には(DATA’(a3))、L2キャッシュ13aに最新のデータを書き戻す。
その後、L2キャッシュ制御部13は、SPフラグ3を1(オン)に設定し、DATA’(a3)をL1キャッシュ制御部12に出力する(図7参照)。なお、この場合には、L2キャッシュ13aの登録仮想インデックスVA21は、VA21(a)のままとなる。また、L1キャッシュ12aにおいて、L1インデックスVA2(e)のラインにDATA’(a3)が記憶される。
続いて、L1キャッシュ12aおよびL2キャッシュ13aが、図8のように登録されているときに、L1キャッシュ制御部12がアクセス仮想アドレスVA(f)を命令制御部11から取得した場合について説明する。また、図8を説明する場合の条件として、TLB12bにおいて、VA(f)はVA(a)と同一の物理ページ番号PA4(a)で登録されており、かつ、アクセス仮想アドレスVA(f)のページ内オフセットのL2キャッシュのサブライン番号が3であり、かつ、PA21(a)とVA21(f)とが異なっているものとする。
また、VA(a)、VA(b)、VA(c)、VA(d)の仮想ページ番号はすべてVA4(a)と等しいとする。それゆえ、VA2(a)、VA2(b)、VA2(c)、VA2(d)の仮想ページ番号に属する部分はすべてVA21(a)と等しい。
図8に示すように、L1キャッシュ制御部12は、命令制御部11からアクセス仮想アドレスVA(f)を取得し、TLB12bによって物理ページ番号PA4(a)に変換する。一方、L1キャッシュ12aにおいてL1インデックスVA2(f)に対応する物理ページ番号PA4が存在しないため、L1キャッシュ制御部12は、L1キャッシュミスと判定する。
L1キャッシュ制御部12は、L1キャッシュミスと判定した場合に、L2キャッシュアクセスアドレスをL2キャッシュ制御部13に出力する。L2キャッシュ制御部13は、L2キャッシュアクセスアドレスを取得し、L2キャッシュアクセスアドレスに含まれるVA21(f)と、L2キャッシュ13aに含まれる登録仮想インデックスアドレスVA21と比較し、一致するか否かを判定する。図8に示す例では、登録仮想インデックスアドレスVA21は、VA21(a)であり、双方のアドレスが一致しないため、L1インデックスに登録してあるPA4(a)に対応する全サブラインのデータが書き戻し対象の候補となる。
続いて、L2キャッシュ制御部13は、PA21(a)とVA21(f)とを比較して、双方が等しいか否かを判定する。図8に示す例では、PA21(a)およびVA21(f)が異なっているので、L1インデックスに登録してあるPA4(a)の全サブラインを対象としてデータの書き戻しを実行する。L1キャッシュ12aにおいて、DATA(ax)が更新されている場合には(DATA’(ax))、L2キャッシュ13aに最新のデータを書き戻す。
その後、L2キャッシュ制御部13は、SPフラグ3を0(オフ)に設定し、DATA’(a3)をL1キャッシュ制御部12に出力する(図9参照)。なお、この場合には、L2キャッシュ13aの登録仮想インデックスVA21は、VA21(f)に変更される。また、L1キャッシュ12aにおいて、L1インデックスVA2(f)のラインにDATA’(a3)が記憶される。
続いて、L1キャッシュ12aおよびL2キャッシュ13aが、図10のように登録されているときに、L1キャッシュ制御部12がアクセス仮想アドレスVA(g)を命令制御部11から取得した場合について説明する。また、図10を説明する場合の条件として、TLB12bにおいて、VA(g)はVA(a)と同一の物理ページ番号PA4(a)で登録されており、かつ、アクセス仮想アドレスVA(g)のページ内オフセットのL2キャッシュのサブライン番号が3であり、かつ、PA21(a)とVA21(g)とが異なっているものとする。
また、VA2(a)、VA2(b)、VA2(c)、VA2(d)の仮想ページ番号に属する部分はそれぞれ、PA21(a)、VA21(b)、PA21(a)、PA21(a)と等しいものとする。それゆえ、図10のL2キャッシュ13aにおいて、SPフラグ0、SPフラグ2、SPフラグ3に1が設定されている。
図10に示すように、L1キャッシュ制御部12は、命令制御部11からアクセス仮想アドレスVA(g)を取得し、TLB12bによって物理アドレスPA4(a)に変換する。一方、L1キャッシュ12aにおいてL1インデックスVA2(g)に対応する物理ページ番号が存在しないため、L1キャッシュ制御部12は、L1キャッシュミスと判定する。
L1キャッシュ制御部12は、L1キャッシュミスと判定した場合に、L2キャッシュアクセスアドレスをL2キャッシュ制御部13に出力する。L2キャッシュ制御部13は、L2キャッシュアクセスアドレスを取得し、L2キャッシュアクセスアドレスに含まれるVA21(g)と、L2キャッシュ13aに含まれる登録仮想インデックスアドレスVA21と比較し、一致するか否かを判定する。図10に示す例では、登録仮想インデックスVA21は、VA21(b)であり、双方のアドレスが一致しないため、L1インデックスに登録してあるPA4(a)に対応する全サブラインのデータが書き戻し対象の候補となる。
続いて、L2キャッシュ制御部13は、PA21(a)とVA21(g)とを比較して、双方が等しいか否かを判定する。図10に示す例では、PA21(a)およびVA21(g)が異なっているので、L2キャッシュ制御部13は、L2キャッシュ13aの登録仮想インデックスアドレスをVA21(g)に設定する(図11参照)。
また、L1キャッシュ制御部12は、L1インデックスに登録してあるPA4(a)のサブラインをL1キャッシュ12aから一旦削除する。なお、SPフラグが1(オン)となっているサブラインは、VA21とPA21(a)とが等しいと判定できるので、書き戻し対象からはずすことができる(DATA’(a0)およびDATA’(a2)が書き戻し対象から除外される。DATA’(a3)は、アクセス仮想アドレスVA(g)に属するサブラインであるため、書き戻し対象となる)。なおL1キャッシュ12aにおいて、DATA(ax)が更新されていれば(DATA’(ax))、L2キャッシュ13aに最新データを書き戻す。
その後、L2キャッシュ制御部13は、SPフラグ3を0(オフ)に設定し、DATA’(a3)をL1キャッシュ制御部12に出力する。なお、L1キャッシュ12aにおいて、L1インデックスVA2(g)のラインにDATA’(a3)が記憶される。
つぎに、本発明をより具体的に説明する。ここでは、説明を簡単にするために、L1キャッシュ12aおよびL2キャッシュ13aをダイレクトマップ方式とするが、セットアソシアティブ方式などでも構わない。L1キャッシュ12aが64kバイト、L2キャッシュ13aが1024kバイトであるとし、L1キャッシュ12aのラインサイズを64バイト、L2キャッシュ13aのラインサイズを256バイトとする。
L2キャッシュ13aのラインサイズは256バイトであるが、データの管理単位としては、L1キャッシュのラインサイズである64バイトのサブラインで行うことができる。また、ページサイズを4kバイトとし、L1キャッシュ12a、L2キャッシュ13a共にライトバックキャッシュであることとする。
図12および図13は、仮想アドレスおよび物理アドレスの構成を具体的に説明するための説明図である。図12に示すように、サポートできる仮想アドレスの最上位ビットをV、物理アドレスの最上位ビットをPとする。VA1、PA1は、L1キャッシュ12a、L2キャッシュ13aそれぞれのインデックスより上位のビットを示す。
VA1=VA[V:16]
PA1=PA[P:20]
VA2およびPA2は、L1キャッシュ12a、L2キャッシュ13aそれぞれのインデックスを示す。
VA2=VA[15:6]
PA2=PA[19:8]
VA2は、VA21(仮想ページ番号に属する部分)とVA22(ページ内オフセットに属する部分)に分けられる。
VA21=VA[15:12]
VA22=VA[11:6]
VA3およびPA3は、L1キャッシュ12a、L2キャッシュ13aそれぞれのキャッシュライン内オフセットを示す。
VA3=VA[5:0]
PA3=PA[7:0]
L2キャッシュ13aは、PA3をPA31、PA32とサブラインに区切って使用する。PA31はサブライン番号、PA32はサブライン内オフセットを示す。
PA31=PA[7:6]
PA32=PA[5:0]
VA4およびPA4は、それぞれ仮想ページ番号、物理ページ番号を示す。
VA4=VA[V:12]
PA4=PA[P:12]
VA5およびPA5は、ページ内オフセットを示す(両者は等しい)。
VA5=VA[11:0]
PA5=PA[11:0]
VA5=PA5
続いて、図13の説明に移ると、L1キャッシュ12aは、タグ部にそのラインが有効であることを示すビットと登録されている物理アドレスPA4=PA[P:12]が記録されている。L1キャッシュ12aにおけるデータ部には、そのラインのデータ(64バイト)が記憶されている。
TLB12bは、同図に示すように、タグ部および物理アドレス部から構成される。タグ部は、エントリ有効ビットと、仮想アドレスPA[V:12]、その他の情報(プロセスIDなどを含む)から構成され、物理アドレス部は、物理アドレスPA[P:12]から構成される。
L2キャッシュ13aは、タグ部に物理アドレスPA1=PA[P:20]と仮想アドレスVA21=VA[15:12]が記憶され、サブライン毎に、そのサブラインがL2キャッシュ13aで有効か、L1キャッシュ12aで有効かを示すビットと、SPフラグとを設けている。SPフラグは、VA21=VA[15:12]とPA21=PA[15:12]が等しい場合に、SPフラグは1(オン)となる。L2キャッシュ13aのデータ部にはサブラインごとにデータ(64バイト)が記憶されている。
続いて、図14〜図19を用いて、L1キャッシュ制御部12およびL2キャッシュ制御部13の処理について詳細に説明する。図14〜図19は、L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図である。
まず、L1キャッシュ12aおよびL2キャッシュ13aが、図14のような状態(状態1)であったとする。TLB12bには、それぞれ仮想ページ番号VA[V:12]と物理ページ番号PA[P:12]が対応付けられており(その他の情報は説明の便宜上省略する)、L1キャッシュ12aおよびL2キャッシュ13aには、今からアクセスするアドレスに関しては登録されていないものとする。主記憶部50には、図14に示すように、H’115000番地から64バイト境界単位でA,B,・・・が記憶されているものとする。なお「H(Hex)」は、16進数表示であることを示す。すなわち、H’115000を2進数表示で表すと、B(Bit)’000100010101000000000000となる。
状態1において、命令制御部11からアクセス仮想アドレスVA[V:0]=H’745000のデータを要求された場合に、L1キャッシュ制御部12は、L1キャッシュタグおよびTLB12bを参照する。すると、L1インデックスVA[15:6]=B’101000000には、有効ビットが立っていないことからL1キャッシュ12aには、要求されたデータが登録されていないことがわかる。
また、TLB12bから、アクセス仮想アドレスに対応する物理ページがPA[P:12]=H’115であることから、L1キャッシュ制御部12は、L2キャッシュ制御部13にL2キャッシュアクセスアドレス「PA[P:0]=H’115000(VA[15:12]=H’5)」を出力し、L2キャッシュアクセスアドレスに対応するデータを要求する。
L2キャッシュ制御部13は、L2インデックスPA[19:8]=B’000101010000でL2キャッシュタグを参照すると、有効ビットが立っていないのでL2キャッシュ13aに登録されていないと判定でき、L2キャッシュ制御部13は、主記憶部50にPA[P:0]=H’115000のデータを要求する。(実際には、L2キャッシュ制御部13は、システム制御部40を介して主記憶部50にアクセスするわけであるが、ここでは説明の便宜上、システム制御部40を省略して説明する。)
L2キャッシュ制御部13は、主記憶部50からの応答を受け付けた場合に、VA[15:12]=H’5がPA[15:12]=H’5と等しいので該当するサブライン番号(ここでは0;PA[7:6]=H’0)に対応するSPフラグを1(オン)にする。また、L2キャッシュ制御部13は、L2キャッシュタグに各種情報(物理アドレスPA[P:20]=H’115、仮想アドレスVA[15:12]=H’5、L2有効ビット(L2V)を1(オン)、L1有効ビット(L1V)を1(オン)であることを登録し、L2キャッシュデータ部にAを記憶する。さらに、L2キャッシュ制御部13は、L1キャッシュ制御部12にデータAを出力する。
L1キャッシュ制御部12は、L2キャッシュ制御部13からの応答を受け付けた場合に、物理アドレスPA[P:12]=H’115、L1有効ビットを1(オン)であることをL1キャッシュタグに記憶し、L1キャッシュデータ部にデータAを記憶する。さらに、L1キャッシュ制御部12は、データAを命令制御部11に出力する。
L1キャッシュ制御部12およびL2キャッシュ制御部13は、上記した一連の動作を命令制御部11からアクセス仮想アドレスVA[V:0]=H’745040、VA[V:0]=H’745080、VA[V:0]=H’7450C0を取得した場合にも続けて行うと、図15に示すように、各アクセス仮想アドレスに対応するデータB,C,DがL1キャッシュ12aにストアされ、状態2となる。
状態2(図15参照)において、命令制御部11からアクセス仮想アドレスVA[V:0]=H’748080のデータを要求された場合に、L1キャッシュ制御部12は、L1インデックスVA[15:6]=B’1000000010を検索する。すると、L1キャッシュタグに該当アドレスがないので、L1キャッシュ制御部12は、TLB12bから得られる物理ページ番号PA[P:12]=H’115を使用して、L2キャッシュ制御部13にL2キャッシュアクセスアドレス「PA[P:0]=H’115080(VA[15:12]=H’8)」を出力し、L2キャッシュアクセスアドレスに対応するデータを要求する。
L2キャッシュ制御部13は、L2インデックスPA[19:8]=B’000101010000でL2キャッシュタグを参照すると、PA[P:20]=H’1が登録されていて、かつ対応するサブライン(この場合、PA[6:7]=2であるため、対応するサブラインはサブライン2となる)のL2有効ビットが1(オン)であるため、L2キャッシュ13aに該当データが存在すると判定する。
サブライン2のSPフラグが1(オン)であるので、L2キャッシュ制御部13は、要求されたVA[15:12]=H’8とL2キャッシュタグに登録されているVA[15:12]=H’5とを比較する。比較した結果、要求されたVA[15:12]=H’8とL2キャッシュタグに登録されているVA[15:12]=H’5とは異なっている。
L2キャッシュ13aにおけるサブライン2以外のサブラインに対応するSPフラグはすべて1(オン)であるため、L1キャッシュ制御部12は、サブライン2に対応するデータをL1キャッシュ12aから削除し、L2キャッシュ13aに書き戻す。この際、L1キャッシュ制御部12は、L1キャッシュ12aからデータを削除したラインに対応する有効ビットを0に設定する。
L2キャッシュ制御部13は、L2キャッシュ13aに対する書き戻しが完了した後に、サブライン2のSPフラグを0(オフ)、仮想アドレスをVA[15:12]=H’8、L1有効ビットを再度1に登録し直して、データC’をL1キャッシュ制御部12に応答する。上記処理を実行することによって、L1キャッシュ12a、L2キャッシュ13aは、状態3となる(図16参照)。
さらに、L1キャッシュ制御部12およびL2キャッシュ制御部13は、上記した一連の動作を命令制御部11からアクセス仮想アドレスを取得した場合にも続けて行うと、図17に示すように、各アクセス仮想アドレスに対応するデータA’、B’、D’が登録され、更にC’を含めてそれらがすべて更新されたとするとA’’、B’’、C’’、D’’がストアされ状態4となる。
状態4(図17参照)において、命令制御部11からアクセス仮想アドレスVA[V:0]=H’74A040にデータを要求された場合に、L1キャッシュ制御部12は、L1インデックスVA[15:6]=B’1010000001を検索する。すると、L1キャッシュタグに該当アドレスがないので、L1キャッシュ制御部12は、TLB12bから得られる物理ページ番号PA[P:12]=H’115を使用して、L2キャッシュ制御部13にL2キャッシュアクセスアドレス「PA[P:0]=H’115040(VA[15:12]=H’A)」を出力し、L2キャッシュアクセスアドレスに対応するデータを要求する。
L2キャッシュ制御部13は、L2インデックスPA[19:8]=B’000101010000でL2キャッシュタグを検索すると、PA[P:20]=H’1が登録されていて、かつ対応するサブライン(この場合、PA[6:7]=1であるため、対応するサブラインはサブライン1となる)のL2有効ビットが1(オン)であるため、L2キャッシュ13aに該当データが存在すると判定する。
サブライン1のSPフラグが0(オフ)であるので、L2キャッシュ制御部13は、要求されたVA[15:12]=H’AとL2キャッシュタグに登録されているVA[15:12]=H’8とを比較する。双方は等しくないので、L2キャッシュ制御部13は、要求されたVA[15:12]=H’AとPA[15:12]=H’8とを比較する。しかし、これも双方等しくないので、L1キャッシュ制御部12は、要求されたサブライン1とSPフラグが0である残りのサブライン(0、2、3)を対象として、L1キャッシュ12aから削除し、L2キャッシュ13aに書き戻す。この際、L1キャッシュ制御部12は、L1キャッシュ12aからデータを削除したラインに対応する有効ビットを0に設定する。
L2キャッシュ制御部13は、対象となるすべてのサブラインに対して書き戻しが完了した後に、サブライン1のSPフラグを0(オフ)のままにし、仮想アドレスにVA[15:12]=H’A、L1有効ビットに1を登録して、データB’’をL1キャッシュ制御部12に出力する。さらに、それが更新されたとするとB’’’がストアされる。上記処理を実行することによって、L1キャッシュ12a、L2キャッシュ13aは、状態5となる(図18参照)。
状態5(図18参照)において、命令制御部11からアクセス仮想アドレスVA[V:0]=H’7450C0にデータを要求された場合に、L1キャッシュ制御部12は、L1インデックスVA[15:6]=B’0101000011を検索する。L1インデックスVA[15:6]=B’0101000011に対応する有効ビットが立っていないため、L1キャッシュ制御部12は、該当データがL1キャッシュ12aに登録されていないと判定する。
L1キャッシュ制御部12は、アクセス仮想アドレスVA[V:0]=H’7450C0とTLB12bとを基にして得られる物理ページ番号がPA[P:12]=H’115であることから、L1キャッシュ制御部12は、L2キャッシュ制御部13にL2キャッシュアクセスアドレス「PA[P:0]=H’1150C0(VA[15:12]=H’5)」を出力し、L2キャッシュアクセスアドレスに対応するデータを要求する。
L2キャッシュ制御部13は、L2インデックスPA[19:8]=B’000101010000でL2キャッシュタグを検索すると、PA[P:20]=H’1が登録されていて、かつ、対応するサブライン(この場合、PA[6:7]=3であるので、サブライン3)のL2有効ビットが1であるのでL2キャッシュ13aに該当データが存在すると判定する。
サブライン3のSPフラグが0(オフ)であるので、L2キャッシュ制御部13は、要求されたVA[15:12]=H’5とL2キャッシュタグに登録されているVA[15:12]=H’Aとを比較する。双方は等しくないので、L2キャッシュ制御部13は、要求されたVA[15:12]=H’5と物理アドレスPA[15:12]=H’5とを比較する。双方は等しいので、L2キャッシュ制御部13は、サブライン3のみに対して書き戻し処理を行うと判定する。
なお、L2キャッシュ制御部13は、L2キャッシュタグに登録されているサブライン3のL1有効ビットが0であるので、サブライン3は、L1キャッシュ12aには存在しないことになり、該等データに対するL1キャッシュ12aからの削除・書き戻しを実行しない。そして、L2キャッシュ制御部13は、L2キャッシュ13aのサブライン3のL1有効ビットを1、SPフラグを1にして、L1キャッシュ制御部12にデータD’’を出力し、L1キャッシュ制御部12は、L1キャッシュ12aにデータD’’を登録する(図19参照)。
このように、本実施例にかかるL2キャッシュ制御部13は、サブライン毎にSPフラグを持ち、SPフラグが1(オン)であることは仮想アドレスと物理アドレスとの対応が取れていることと等価であることから、SPフラグに基づいて書き戻しを実行することによって、仮想アドレスが共通であることによる他のサブラインへの干渉を回避することができる。また、SPフラグはわずか1ビットしか資源を消費しないため、各サブラインごとに仮想アドレスそのものを持つ場合に比べて資源を節約することができる。
次に、本実施例にかかるキャッシュメモリ制御装置100の処理手順について説明する。図20は、本実施例にかかるキャッシュメモリ制御装置100の処理手順を示すフローチャートである。
同図に示すように、L2キャッシュ制御部13は、L1キャッシュ制御部12からアクセス要求を取得し(ステップS101)、要求された物理アドレスのデータが存在するか否かを判定する(ステップS102)。
要求された物理アドレスのデータが存在しない場合には(ステップS103,No)、L2キャッシュ制御部13は、主記憶部50に対するアクセス処理を実行する(ステップS104)。一方、要求された物理アドレスのデータが存在する場合には(ステップS103,Yes)、要求されたサブラインのSPフラグがオンか否かを判定する(ステップS105)。
要求されたサブラインのSPフラグがオンの場合には(ステップS106,Yes)、SPフラグがオンの場合の書き戻し処理を実行する(ステップS107)。一方、要求されたサブラインのSPフラグがオフの場合には(ステップS106,No)、SPフラグがオフの場合の書き戻し処理を実行する(ステップS108)。
次に、図20のS104において示した主記憶部50に対するアクセス処理について説明する。図21は、主記憶部50に対するアクセス処理の処理手順を示すフローチャートである。同図に示すように、L2キャッシュ制御部13は、主記憶部50に対してアクセス要求を行い、アクセス要求に対する応答を取得する(ステップS201)。
そして、L2キャッシュ制御部13は、要求されたL1インデックスの仮想ページ番号に属する部分(VA21)と、L2インデックスの物理ページ番号に属する部分(PA21)とが等しいか否かを判定する(ステップS202)。
等しい場合には(ステップS203,Yes)、L2キャッシュ制御部13は、要求されたサブラインのSPフラグをオンにして主記憶部50から取得したデータをL2キャッシュ13aに書き込み(ステップS204)、要求されたサブラインに対応するデータをL1キャッシュ制御部12に出力する(ステップS205)。
一方、要求されたL1インデックスの仮想ページ番号に属する部分(VA21)と、L2インデックスの物理ページ番号に属する部分(PA21)とが異なる場合には(ステップS203,No)、L2キャッシュ制御部13は、要求されたL1インデックスの仮想ページ番号に属する部分(VA21)についてL2キャッシュタグに登録されているものと要求されているものが等しいか否かを判定する(ステップS206)。
等しい場合には(ステップS207,Yes)、L2キャッシュ制御部13は、要求されたサブラインのSPフラグをオフにして主記憶部50から取得したデータをL2キャッシュ13aに書き込み(ステップS208)、ステップS205に移行する。
一方、要求されたL1インデックスの仮想ページ番号に属する部分(VA21)についてL2キャッシュタグに登録されているものと要求されているものが異なっている場合には(ステップS207,No)、L2キャッシュ制御部13は、SPフラグがオフとなる残りのサブライン全てを対象としてL1キャッシュ12aから書き戻しを実行する(ステップS209)。
その後、L2キャッシュ制御部13は、要求されたサブラインのSPフラグをオフにし(ステップS210)、L2キャッシュ13aにおけるL1インデックスの仮想ページ番号に属する部分(VA21)を要求された仮想アドレスのものに登録し(ステップS211)、主記憶部50から取得したデータをL2キャッシュ13aに書き込み(ステップS212)、ステップS205に移行する。
次に、図20のS107において示したSPフラグがオンの場合の書き戻し処理について説明する。図22は、SPフラグがオンの場合の書き戻し処理を示すフローチャートである。同図に示すように、L2キャッシュ制御部13は、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2インデックスの物理ページ番号に属する部分(PA21)と等しいか否かを判定する(ステップS301)。
等しい場合には(ステップS302,Yes)、L2キャッシュ制御部13は、要求されたサブラインに対応するデータをL1キャッシュ制御部12に出力する(ステップS303)。
一方、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2インデックスの物理ページ番号に属する部分(PA21)と異なる場合には(ステップS302,No)、L2キャッシュ制御部13は、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2キャッシュタグに登録されているものと要求されたものとが等しいか否かを判定する(ステップS304)。
等しい場合には(ステップS305,Yes)、要求されたサブラインのみを対象としてL1キャッシュ12aからの書き戻しを実行し(ステップS306)、要求されたサブラインのSPフラグをオフとし(ステップS307)、要求されたサブラインに対するデータをL1キャッシュ制御部12に出力する(ステップS308)。
一方、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2キャッシュタグに登録されているものと要求されたものとが異なる場合には(ステップS305,No)、L2キャッシュ制御部13は、要求されたサブラインおよびSPフラグがオフとなる残りのサブライン全てを対象としてL1キャッシュ12aから書き戻しを実行する(ステップS309)。
そして、L2キャッシュ制御部13は、要求されたサブラインのSPフラグをオフとし(ステップS310)、L1キャッシュ12aにおいて、L1インデックスの仮想ページ番号に属する部分を要求されたものに登録し(ステップS311)、要求されたサブラインに対するデータをL1キャッシュ制御部12に出力する(ステップS312)。
次に、図20のS108において説明したSPフラグがオフの場合の書き戻し処理について説明する。図23は、SPフラグがオフの場合の書き戻し処理を示すフローチャートである。同図に示すように、L2キャッシュ制御部13は、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2キャッシュタグに登録されているものと、要求されたものとが等しいか否かを判定する(ステップS401)。
等しい場合には(ステップS402,Yes)、L2キャッシュ制御部13は、要求されたサブラインに対応するデータをL1キャッシュ制御部12に出力する(ステップS403)。
一方、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2キャッシュタグに登録されているものと、要求されたものとが異なる場合には(ステップS402,No)、L2キャッシュ制御部13は、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2インデックスの物理ページ番号に属する部分(PA21)と等しいか否かを判定する(ステップS404)。
等しい場合には(ステップS405,Yes)、L2キャッシュ制御部13は、要求されたサブラインのみを対象としてL1キャッシュ12aからの書き戻しを実行し(ステップS406)、要求されたサブラインのSPフラグをオンにし(ステップS407)、要求されたサブラインに対するデータをL1キャッシュ制御部12に出力する(ステップS408)。
一方、L1インデックスの仮想ページ番号に属する部分(VA21)について、L2インデックスの物理ページ番号に属する部分(PA21)と異なる場合には(ステップS405,No)、L2キャッシュ制御部13は、要求されたサブラインおよびSPフラグがオフとなる残りのサブライン全てを対象としてL1キャッシュ12aからの書き戻しを実行する(ステップS409)。
そして、L2キャッシュ制御部13は、要求されたサブラインのSPフラグをオフにし(ステップS410)、L1インデックスの仮想ページ番号に属する部分(VA21)を要求されたものに登録し(ステップS411)、要求されたサブラインに対するデータをL1キャッシュ制御部12に出力する(ステップS412)。
このように、L2キャッシュ制御部13は、SPフラグに基づいてデータの書き戻しを実行するので、仮想アドレスが共通であることによる他のサブラインへの干渉を回避することができる。また、サブライン毎に仮想アドレスを持つ場合よりも資源を少なくすることができ、サブライン同士の仮想アドレスが共通でSPフラグを持たない場合よりもキャッシュメモリ制御装置100の性能を向上させることができる。
上述してきたように、本実施例にかかるキャッシュメモリ制御装置100は、L2キャッシュ13aのサブラインごとにSPフラグを設け、命令制御部11からアクセス仮想アドレスをL1キャッシュ制御部12が取得し、アクセス仮想アドレスに対応するデータが存在しない場合に、L2キャッシュアクセスアドレスをL2キャッシュ制御部13に出力する。そして、L2キャッシュ制御部13は、L1インデックスの仮想ページ番号に属する部分VA21とL2インデックスの物理ページ番号に属する部分PA21とを基にしてSPフラグの状態を切り換え、SPフラグの状態に基づいてL1キャッシュ12aからサブラインに対するデータの書き戻しを実行し、要求対象となるサブラインのデータをL1キャッシュ制御部12に出力するので、限られたL2キャッシュ13aの資源を有効に活用し、不必要なデータの書き戻しをなくす(同一ラインに記憶された他のサブラインに対応するL1キャッシュ上に記憶されたデータの削除(書き戻し)のフローを省略する)ことができる。
また、本実施例にかかるキャッシュメモリ制御装置100は、SPフラグをL2キャッシュ13aに設定し、不必要なデータの書き戻しを省略しているので、L2キャッシュ制御部13の負担が軽減され、L1キャッシュ制御部12に対して迅速にデータの応答を実行することができる。
なお、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示したキャッシュメモリ制御装置100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がCPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(付記1)第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御装置であって、
前記第2のキャッシュは、前記サブラインごとに制御フラグを備え、
データ要求を受け付け、要求されたデータが前記第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいて前記サブラインに対応する制御フラグの状態を切り換えるフラグ切替手段と、
前記第1のキャッシュから前記サブラインに対するデータの書き戻しを当該サブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを前記第1のキャッシュに出力する制御手段と、
を備えたことを特徴とするキャッシュメモリ制御装置。
(付記2)前記制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、前記フラグ切替手段は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、前記制御フラグをオン状態に切り換えることを特徴とする付記1に記載のキャッシュメモリ制御装置。
(付記3)前記フラグ切替手段は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、前記制御フラグをオフ状態に切り換えることを特徴とする付記2に記載のキャッシュメモリ制御装置。
(付記4)前記制御手段は、前記制御フラグがオフ状態となるサブラインに対して前記第1のキャッシュからのデータの書き戻しを実行することを特徴とする付記1、2または3に記載のキャッシュメモリ制御装置。
(付記5)要求されたデータが前記第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得するデータ取得手段をさらに備え、前記フラグ切替手段は、前記データ取得手段によって取得されたデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいて前記サブラインに対応する制御フラグを切り換えることを特徴とする付記1〜4のいずれか一つに記載のキャッシュメモリ制御装置。
(付記6)前記フラグ切替手段は、前記仮想アドレスに含まれる仮想ページ番号に属する部分と当該仮想アドレスに対応する物理アドレスの物理ページ番号に属する部分とを基にして前記制御フラグの状態を切り換えることを特徴とする付記1〜5のいずれか一つに記載のキャッシュメモリ制御装置。
(付記7)第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御方法であって、
前記第2のキャッシュは、前記サブラインごとに制御フラグを備え、
データ要求を受け付け、要求されたデータが前記第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいて前記サブラインに対応する制御フラグの状態を切り換えるフラグ切替工程と、
前記第1のキャッシュから前記サブラインに対するデータの書き戻しを当該サブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを前記第1のキャッシュに出力する制御工程と、
を含んだことを特徴とするキャッシュメモリ制御方法。
(付記8)前記制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、前記フラグ切替工程は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、前記制御フラグをオン状態に切り換えることを特徴とする付記7に記載のキャッシュメモリ制御方法。
(付記9)前記フラグ切替工程は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、前記制御フラグをオフ状態に切り換えることを特徴とする付記8に記載のキャッシュメモリ制御方法。
(付記10)前記制御工程は、前記制御フラグがオフ状態となるサブラインに対して前記第1のキャッシュからのデータの書き戻しを実行することを特徴とする付記7、8または9に記載のキャッシュメモリ制御方法。
(付記11)要求されたデータが前記第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得するデータ取得工程をさらに含み、前記フラグ切替工程は、前記データ取得工程によって取得されたデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいて前記サブラインに対応する制御フラグを切り換えることを特徴とする付記7〜10のいずれか一つに記載のキャッシュメモリ制御方法。
(付記12)前記フラグ切替工程は、前記仮想アドレスに含まれる仮想ページ番号に属する部分と当該仮想アドレスに対応する物理アドレスの物理ページ番号に属する部分とを基にして前記制御フラグの状態を切り換えることを特徴とする付記7〜11のいずれか一つに記載のキャッシュメモリ制御方法。
以上のように、本発明にかかるキャッシュメモリ制御装置およびキャッシュメモリ制御方法は、包含関係にある多階層キャッシュシステムに対して有用であり、特に、限られたキャッシュメモリの資源を有効に活用し、不必要なデータの書き戻しを無くす場合に適している。
本実施例にかかる仮想アドレスおよび物理アドレスの構成を説明するための説明図である。 本実施例にかかるキャッシュメモリ制御装置の構成を示す機能ブロック図である。 L1キャッシュのデータ構造の一例を示す図である。 TLBのデータ構造の一例を示す図である。 L2キャッシュのデータ構造の一例を示す図である。 L1キャッシュ制御部およびL2キャッシュ制御部の処理を説明するための説明図(1)である。 L1キャッシュ制御部およびL2キャッシュ制御部の処理を説明するための説明図(2)である。 L1キャッシュ制御部およびL2キャッシュ制御部の処理を説明するための説明図(3)である。 L1キャッシュ制御部およびL2キャッシュ制御部の処理を説明するための説明図(4)である。 L1キャッシュ制御部およびL2キャッシュ制御部の処理を説明するための説明図(5)である。 L1キャッシュ制御部およびL2キャッシュ制御部の処理を説明するための説明図(6)である。 仮想アドレスおよび物理アドレスの構成を具体的に説明するための説明図(1)である。 仮想アドレスおよび物理アドレスの構成を具体的に説明するための説明図(2)である。 L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図(1)である。 L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図(2)である。 L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図(3)である。 L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図(4)である。 L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図(5)である。 L1キャッシュ制御部12およびL2キャッシュ制御部13の処理を詳細に説明するための説明図(6)である。 本実施例にかかるキャッシュメモリ制御装置の処理手順を示すフローチャートである。 主記憶部に対するアクセス処理の処理手順を示すフローチャートである。 SPフラグがオンの場合の書き戻し処理を示すフローチャートである。 SPフラグがオフの場合の書き戻し処理を示すフローチャートである。 仮想アドレスおよび物理アドレスの構成を説明するための説明図である。 従来にかかるL2キャッシュの構成を示す図である。 従来にかかるキャッシュメモリの制御方式を説明するための説明図(1)である。 従来にかかるキャッシュメモリの制御方式を説明するための説明図(2)である。 従来にかかるキャッシュメモリの制御方式を説明するための説明図(3)である。 従来にかかるキャッシュメモリの制御方式を説明するための説明図(4)である。 従来にかかるキャッシュメモリの制御方式を説明するための説明図(5)である。
符号の説明
10,20,30 CPU
11 命令制御部
12 L1キャッシュ制御部
12a L1キャッシュ
13 L2キャッシュ制御部
13a L2キャッシュ
40 システム制御部
50 主記憶部
60 I/O部
100 キャッシュメモリ制御装置

Claims (10)

  1. 第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御装置であって、
    前記第2のキャッシュは、前記サブラインごとに制御フラグを備え、
    データ要求を受け付け、要求されたデータが前記第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいて前記サブラインに対応する制御フラグの状態を切り換えるフラグ切替手段と、
    前記第1のキャッシュから前記サブラインに対するデータの書き戻しを当該サブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを前記第1のキャッシュに出力する制御手段と、
    を備えたことを特徴とするキャッシュメモリ制御装置。
  2. 前記制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、前記フラグ切替手段は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、前記制御フラグをオン状態に切り換えることを特徴とする請求項1に記載のキャッシュメモリ制御装置。
  3. 前記フラグ切替手段は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、前記制御フラグをオフ状態に切り換えることを特徴とする請求項2に記載のキャッシュメモリ制御装置。
  4. 前記制御手段は、前記制御フラグがオフ状態となるサブラインに対して前記第1のキャッシュからのデータの書き戻しを実行することを特徴とする請求項1、2または3に記載のキャッシュメモリ制御装置。
  5. 要求されたデータが前記第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得するデータ取得手段をさらに備え、前記フラグ切替手段は、前記データ取得手段によって取得されたデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいて前記サブラインに対応する制御フラグを切り換えることを特徴とする請求項1〜4のいずれか一つに記載のキャッシュメモリ制御装置。
  6. 第1のキャッシュとキャッシュラインをサブラインに分割され当該サブラインごとに前記第1のキャッシュのデータを記憶する第2のキャッシュとを制御するキャッシュメモリ制御方法であって、
    前記第2のキャッシュは、前記サブラインごとに制御フラグを備え、
    データ要求を受け付け、要求されたデータが前記第1のキャッシュに存在しない場合に、要求対象となるデータの仮想アドレスおよび当該仮想アドレスに対応する物理アドレスに基づいて前記サブラインに対応する制御フラグの状態を切り換えるフラグ切替工程と、
    前記第1のキャッシュから前記サブラインに対するデータの書き戻しを当該サブラインに対応する制御フラグの状態に基づいて実行し、要求対象となるデータを前記第1のキャッシュに出力する制御工程と、
    を含んだことを特徴とするキャッシュメモリ制御方法。
  7. 前記制御フラグはオン状態あるいはオフ状態を示す1ビットのフラグであり、前記フラグ切替工程は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致する場合に、前記制御フラグをオン状態に切り換えることを特徴とする請求項6に記載のキャッシュメモリ制御方法。
  8. 前記フラグ切替工程は、前記仮想アドレスの一部および当該仮想アドレスに対応する物理アドレスの一部が一致しない場合に、前記制御フラグをオフ状態に切り換えることを特徴とする請求項7に記載のキャッシュメモリ制御方法。
  9. 前記制御工程は、前記制御フラグがオフ状態となるサブラインに対して前記第1のキャッシュからのデータの書き戻しを実行することを特徴とする請求項6、7または8に記載のキャッシュメモリ制御方法。
  10. 要求されたデータが前記第2のキャッシュに存在しない場合に、要求対象となるデータを主記憶装置から取得するデータ取得工程をさらに含み、前記フラグ切替工程は、前記データ取得工程によって取得されたデータの物理アドレスと要求対象となるデータの仮想アドレスに基づいて前記サブラインに対応する制御フラグを切り換えることを特徴とする請求項6〜9のいずれか一つに記載のキャッシュメモリ制御方法。
JP2006356474A 2006-12-28 2006-12-28 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 Expired - Fee Related JP5012016B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006356474A JP5012016B2 (ja) 2006-12-28 2006-12-28 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
US11/980,386 US7743215B2 (en) 2006-12-28 2007-10-31 Cache-memory control apparatus, cache-memory control method and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006356474A JP5012016B2 (ja) 2006-12-28 2006-12-28 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法

Publications (2)

Publication Number Publication Date
JP2008165626A true JP2008165626A (ja) 2008-07-17
JP5012016B2 JP5012016B2 (ja) 2012-08-29

Family

ID=39585660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006356474A Expired - Fee Related JP5012016B2 (ja) 2006-12-28 2006-12-28 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法

Country Status (2)

Country Link
US (1) US7743215B2 (ja)
JP (1) JP5012016B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782348B2 (en) * 2008-09-09 2014-07-15 Via Technologies, Inc. Microprocessor cache line evict array
JP5604863B2 (ja) * 2009-12-22 2014-10-15 富士通株式会社 構成情報管理システム、構成情報管理方法、分散情報管理装置及び分散情報管理プログラム
US9086889B2 (en) * 2010-04-27 2015-07-21 Oracle International Corporation Reducing pipeline restart penalty
US10133676B2 (en) * 2010-07-28 2018-11-20 Rambus Inc. Cache memory that supports tagless addressing
GB2546731B (en) 2016-01-20 2019-02-20 Advanced Risc Mach Ltd Recording set indicator
JP6967986B2 (ja) 2018-01-29 2021-11-17 キオクシア株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086852A (ja) * 1994-06-22 1996-01-12 Hitachi Ltd キャッシュ制御方法
WO2004046932A1 (ja) * 2002-11-21 2004-06-03 Fujitsu Limited キャッシュ制御方法及びプロセッサシステム
JP2006517040A (ja) * 2002-11-26 2006-07-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5045996A (en) * 1986-11-12 1991-09-03 Xerox Corporation Multiprocessor cache memory housekeeping
EP0470574A3 (en) * 1990-08-06 1992-07-08 Fujitsu Limited Multiprocessor system including cache memories and method of controlling cache memories to maintain coherence of data therebetween
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
US7096322B1 (en) * 2003-10-10 2006-08-22 Unisys Corporation Instruction processor write buffer emulation using embedded emulation control instructions
US20060155934A1 (en) * 2005-01-11 2006-07-13 Ramakrishnan Rajamony System and method for reducing unnecessary cache operations
WO2007096981A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited 記録制御装置および記録制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086852A (ja) * 1994-06-22 1996-01-12 Hitachi Ltd キャッシュ制御方法
WO2004046932A1 (ja) * 2002-11-21 2004-06-03 Fujitsu Limited キャッシュ制御方法及びプロセッサシステム
JP2006517040A (ja) * 2002-11-26 2006-07-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ

Also Published As

Publication number Publication date
JP5012016B2 (ja) 2012-08-29
US7743215B2 (en) 2010-06-22
US20080162818A1 (en) 2008-07-03

Similar Documents

Publication Publication Date Title
JP4044585B2 (ja) キャッシュメモリおよびその制御方法
US20170235681A1 (en) Memory system and control method of the same
JP5536658B2 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
US20100217937A1 (en) Data processing apparatus and method
US7496730B2 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
US20070283108A1 (en) Memory Management System
US8909870B2 (en) Cache evictions from data cache based on content of address translation table cache and address translation table
US20020087795A1 (en) System and method for employing a global bit for page sharing in a linear-addressed cache
JP2018504694A5 (ja)
JP2009020881A (ja) 可変のページサイズのメモリ編成を実装する処理システム
US20160019065A1 (en) Prefetching instructions in a data processing apparatus
JP5012016B2 (ja) キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
US11341042B2 (en) Storage apparatus configured to manage a conversion table according to a request from a host
JP2022016899A (ja) メモリシステム及び情報処理システム
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
US20080301372A1 (en) Memory access control apparatus and memory access control method
CN118020064A (zh) 具有伪lru补充年龄信息的重新引用区间预测(rrip)
US7219197B2 (en) Cache memory, processor and cache control method
US20180203802A1 (en) Cache apparatus and a method of caching data
KR100826757B1 (ko) 캐시 메모리 및 그 제어 방법
US7069384B2 (en) System and method for cache external writing and write shadowing
JP2009169706A (ja) メモリ制御装置
KR101168364B1 (ko) 로컬 메모리 데이터의 가간섭성 캐싱
JP2007272681A (ja) キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5012016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees