JP4006445B2 - キャッシュ制御方法及びプロセッサシステム - Google Patents
キャッシュ制御方法及びプロセッサシステム Download PDFInfo
- Publication number
- JP4006445B2 JP4006445B2 JP2004553130A JP2004553130A JP4006445B2 JP 4006445 B2 JP4006445 B2 JP 4006445B2 JP 2004553130 A JP2004553130 A JP 2004553130A JP 2004553130 A JP2004553130 A JP 2004553130A JP 4006445 B2 JP4006445 B2 JP 4006445B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- entry
- address
- virtual address
- 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
Images
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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
Description
PIPTでは、キャッシュのインデックスアドレスを実アドレスで索引し、実アドレスで一致を検出するので、シノニムが発生しない。しかし、ページ境界を超えられないため、1Way当たりの容量に制限が発生する。
このような制限を発生させないための方法としては、TLB(Translation Look−ahead Buffer)を索引して仮想アドレスに対応する実アドレスを求め、実アドレスによりインデックスする方法がある。しかし、この方法では、TLBの索引結果からキャッシュを索引することになるので、キャッシュレイテンシの増大を招いてしまう。
そこで、実アドレスではなく、仮想アドレスでインデックスする方法であるVIPT(Virtual address Index Physical address Tag)が提案されている。VIPTでは、キャッシュのインデックスアドレスを仮想アドレスで索引し、実アドレスで一致を検出するので、ページ境界を超える容量が簡単に実現できる。しかし、VIPTでは、ページ境界を超えられるものの、シノニムが発生してしまう。
シノニムとは、ある1つの実アドレスが、複数の仮想アドレスから参照されている状態を言う。シノニムが発生すると、仮想アドレスでインデックスされたキャッシュは、実体が1つであるにも関わらず、複数のエントリに同一実アドレスのデータを格納してしまうことになる。従って、このように格納されたデータを更新する場合には、他のエントリに格納された同じデータも更新しない限り、データの一元性が保たれない。
このため、従来のマルチプロセッサシステムでは、二次キャッシュを実アドレスでインデックスし、この実アドレスに対する仮想アドレスの一部を保持して、シノニムのチェックを行っていた。尚、二次キャッシュをアクセスするまでには、TLBを索引し終えているので、時間的なロスは無い。二次キャッシュは、以前にアクセスされた際の実アドレスと仮想アドレスの組を記憶しておき、次に違う組み合わせでアクセスされた場合に、一次キャッシュに対してエントリの削除を要求(以下、リクエストと言う)する。これにより、一次キャッシュ上には、実アドレスに対する仮想アドレスの組が常に1つしか存在しないことになり、データの一元性を保つことができる。
図1は、シノニムが発生しないアクセス時のキャッシュ制御動作を説明する図である。より具体的には、図1は、実アドレスPA(a)のデータDATAが一次キャッシュ1に仮想アドレスVA(a)で登録されている場合に、仮想アドレスVA(a)のアクセスが発生した場合のキャッシュ制御動作を説明する図である。TLB3は、実アドレスPA(a)のデータDATAが一次キャッシュ1に仮想アドレスVA(a)で登録されていることを示す。この場合、アクセスが発生した仮想アドレスVA(a)と一次キャッシュ1に登録されている仮想アドレスVA(a)とが一致するので、ヒット(Hit)が生じる。
図2は、シノニムが発生するアクセス時のキャッシュ制御動作を説明する図である。より具体的には、図2は、実アドレスPA(a)のデータDATAが一次キャッシュ1に仮想アドレスVA(b)で登録されている場合に、仮想アドレスVA(a)のアクセスが発生した場合、即ち、シノニムが発生した場合のキャッシュ制御動作を説明する図である。この場合、アクセスが発生した仮想アドレスVA(a)と一次キャッシュ1に登録されている仮想アドレスVA(b)とが一致しないので、ミス(Miss)が生じる。二次キャッシュ2には、仮想アドレスVA(b)、実アドレスPA(a)及びそのデータDATAが対応させて登録されている。従って、TLB3により二次キャッシュ2を実アドレスPA(a)で索引することで、一次キャッシュ1には実アドレスPA(a)のデータDATAが仮想アドレスVA(b)で登録されていることが分かる。そこで、一次キャッシュ1に対して、仮想アドレスVA(b)のエントリを削除する削除リクエストDELを発生し、二次キャッシュ2に対して、一次キャッシュ1の仮想アドレスVA(b)のエントリが削除された旨を通知することで、一次キャッシュ1及び二次キャッシュ2の仮想アドレスVA(b)のエントリを仮想アドレスVA(a)のエントリに登録し直す。その後、改めて仮想アドレスVA(a)に対応するものとして、データDATAを二次キャッシュ2から一次キャッシュ1に転送する。
図3は、シノニムが発生した場合に図2に示す削除リクエストDELを処理した後の状態を示す図である。図3に示すように、この状態では、一次キャッシュ1及び二次キャッシュ2からは仮想アドレスVA(b)の登録が削除され、仮想アドレスVA(a)のみが登録されている。
このように、従来のマルチプロセッサシステムでは、シノニムが発生する度に上記の如き削除リクエストDELを処理してシノニム状態を解消する必要があった。このため、シノニム状態を解消するための処理を実行する必要上、マルチプロセッサシステムにおけるメモリアクセス時間が長くなり、メモリ利用効率の向上が難しいという問題があった。
尚、先行技術文献としては、以下のものがある。
特開平7−287668号公報
特表平9−504627号公報
特開平3−83150号公報
本発明のより具体的な目的は、データ共有条件を緩和し、シノニム状態の解消に伴う動作を簡略化することで、メモリアクセス時間を短縮し、メモリ利用効率の向上を可能とするキャッシュ制御方法及びプロセッサシステムを提供することにある。
本発明の他の目的は、包含関係にある多階層のキャッシュを備えたプロセッサシステムにおけるキャッシュ制御方法であって、上位キャッシュを実アドレスで索引すると共に下位キャッシュを仮想アドレスで索引し、異なる仮想アドレスから参照される実アドレスが同一キャッシュ内に複数登録されることを防止して、前記上位キャッシュ内に複数の仮想アドレスを登録可能とすることで、データ共有条件を緩和することを特徴とするキャッシュ制御方法を提供することにある。本発明になるキャッシュ制御方法によれば、データ共有条件を緩和し、シノニム状態の解消に伴う動作を簡略化することで、メモリアクセス時間を短縮し、メモリ利用効率を向上することが可能となる。
本発明の更に他の目的は、包含関係にある多階層のキャッシュを備えたプロセッサシステムであって、実アドレスで索引される上位キャッシュと、仮想アドレスで索引される下位キャッシュと、異なる仮想アドレスから参照される実アドレスが同一キャッシュ内に複数登録されることを防止する機構とを備え、前記上位キャッシュ内に複数の仮想アドレスを登録可能とすることで、データ共有条件を緩和することを特徴とするプロセッサシステムを提供することにある。本発明になるプロセッサシステムによれば、データ共有条件を緩和し、シノニム状態の解消に伴う動作を簡略化することで、メモリアクセス時間を短縮し、メモリ利用効率を向上することが可能となる。
本発明の更に他の目的及び特長は、以下図面と共に述べる説明より明らかとなろう。
図2は、シノニムが発生するアクセス時のキャッシュ制御動作を説明する図である。
図3は、シノニムが発生した場合に図2に示す削除リクエストを処理した後の状態を示す図である。
図4は、シノニムが発生するアクセス時の本発明によるキャッシュ制御動作を説明する図である。
図5は、図4に示す状態からデータが一次キャッシュに転送された後の状態を示す図である。
図6は、図5に示す状態において、ストアアクセスが発生した場合のキャッシュ制御動作を説明する図である。
図7は、図6に示す状態からデータが一次キャッシュに転送された後の状態を示す図である。
図8は、本発明になるプロセッサシステムの一実施例を示すブロック図である。
図9は、一次キャッシュのタグ内容を示す図である。
図10は、二次キャッシュのタグ内容を示す図である。
図11は、プロセッサシステムの一実施例の機能ブロック図である。
図12は、キャッシュ制御動作を説明するフローチャートである。
先ず、本発明の動作原理を、図4〜図7と共に説明する。
図4は、包含関係にある多階層のキャッシュを備えたマルチプロセッサシステムにおける、シノニムが発生するアクセス時の本発明によるキャッシュ制御動作を説明する図である。より具体的には、図4は、実アドレスPA(a)のデータDATAが上位の一次キャッシュ11に仮想アドレスVA(b)で登録されており、且つ、下位の二次キャッシュ12には、仮想アドレスVA(a)、仮想アドレスVA(b)、実アドレスPA(a)及びそのデータDATAが対応させて登録されている場合に、仮想アドレスVA(a)のアクセス(アクセスリクエスト)が発生した場合のキャッシュ制御動作を説明する図である。この場合、アクセスが発生した仮想アドレスVA(a)と一次キャッシュ11に登録されている仮想アドレスVA(b)とが一致しないので、ミス(Miss)が生じる。TLB13は、実アドレスPA(a)のデータDATAが一次キャッシュ11に仮想アドレスVA(a)で登録されていることを示す。
このようにシノニムが発生した場合、二次キャッシュ12には、仮想アドレスVA(a)、仮想アドレスVA(b)、実アドレスPA(a)及びそのデータDATAが対応させて登録されているので、TLB13により二次キャッシュ12を実アドレスPA(a)で索引することで、一次キャッシュ11には実アドレスPA(a)のデータDATAが仮想アドレスVA(b)で登録されていることが分かる。しかし、本発明では、一次キャッシュ11に対して、仮想アドレスVA(b)のエントリを削除する削除リクエストDELを発生することなく、その後に改めて仮想アドレスVA(a)に対応するものとしてデータDATAを二次キャッシュ12から一次キャッシュ11に転送する。
図5は、上記の如く、仮想アドレスVA(a)に対応するものとしてデータDATAが一次キャッシュ11に転送された後の状態を示す図である。図5に示すように、一次キャッシュ11は、同一実アドレスPAのエントリを2つ持つ。このような状態は、各エントリに対して参照のみを行う限りは問題を生じないが、一方のエントリに対して更新を行うと、2つのエントリ間で内容の不一致が発生してしまう。そこで、本発明では、キャッシュのタグを拡張し、データDATAに対する操作権限のステートを追加する。ステートには、更新可能であることを示すM、参照のみが可能であることを示すS、エントリが無効であることを示すIの3種類の状態がある。従って、図4において仮想アドレスVA(a)のアクセスを行った後のタグの状態は、図5に示すようになる。図5に示す例では、仮想アドレスVA(a)、仮想アドレスVA(b)へのアクセスは、タグステートがSであるため、参照のみが可能である。
尚、上記の例では、仮想アドレスVA(a)と実アドレスPA(a)の組と、仮想アドレスVA(b)と実アドレスPA(a)の組の、2つの組があるが、組の数は2つに限定されるものではないことは言うまでもない。
このように、本発明では、一次キャッシュ11に、複数の異なる仮想アドレスVA(a),VA(b)で同一の実アドレスPA(a)のデータDATAを登録できるので、図4のような場合のキャッシュ制御手順は、基本的には次のステップ(1)〜(4)からなり、非常に簡単である。
ステップ(1):一次キャッシュ11のミス検出。
ステップ(2):二次キャッシュ12の索引(登録仮想アドレスVA(a)の検出)。
ステップ(3):二次キャッシュ12から一次キャッシュ11へのデータDATAの転送。
ステップ(4):一次キャッシュ11への仮想アドレスVA(a)の登録。
これに対し、上記従来技術では、上記ステップ(2)とステップ(3)の間に、図2と共に説明したように、一次キャッシュ1に対して仮想アドレスVA(b)のエントリを削除する削除リクエストDELを発生するステップと、二次キャッシュ2に対して一次キャッシュ1の仮想アドレスVA(b)のエントリが削除された旨を通知するステップとが更に必要である。これらのステップが設けられていないと、従来技術では、一次キャッシュ1及び二次キャッシュ2の仮想アドレスVA(b)のエントリを仮想アドレスVA(a)のエントリに登録し直すことができない。
図6は、図5に示す状態において、同じく実アドレスPA(a)を指す仮想アドレスVA(c)のストアアクセス(ストアアクセスリクエスト又は更新リクエスト)が発生した場合のキャッシュ制御動作を説明する図である。この場合、アクセスが発生した仮想アドレスVA(c)と一次キャッシュ11に登録されている仮想アドレスVA(b),VA(a)とが一致しないので、ミス(Miss)が生じる。TLB13は、実アドレスPA(a)のデータDATAが一次キャッシュ11に仮想アドレスVA(a)で登録されていることを示す。
このようにシノニムが発生した場合、二次キャッシュ12には、仮想アドレスVA(a)、仮想アドレスVA(b)、実アドレスPA(a)及びそのデータDATAが対応させて登録されているので、TLB13により二次キャッシュ12を実アドレスPA(a)で索引することで、一次キャッシュ11には実アドレスPA(a)のデータDATAが仮想アドレスVA(c)では登録されていないことが分かる。そこで、一次キャッシュ11に対して、ステートSで登録されている仮想アドレスVA(b),VA(a)のエントリを削除する削除リクエストDEL1を発生すると共に、二次キャッシュ12に対して一次キャッシュ11の仮想アドレスVA(b),VA(a)のエントリが削除された旨を通知する。この結果、一次キャッシュ11及び二次キャッシュ12の仮想アドレスVA(b),VA(a)のエントリを仮想アドレスVA(c)のエントリに登録し直すと共に、仮想アドレスVA(c)のステートをMに設定することができる。その後に改めて、仮想アドレスVA(c)に対応するものとしてデータDATAを二次キャッシュ12から一次キャッシュ11に転送する。
図7は、上記の如く、仮想アドレスVA(c)に対応するものとしてデータDATAが一次キャッシュ11に転送された後の状態を示す図である。図7に示すように、一次キャッシュ11は、同一実アドレスPAのエントリが1つとされ、二次キャッシュ12も同様に、同一実アドレスPAのエントリが1つとされる。このように、ステートがMであるエントリは、同一実アドレスPAに対して1つしか存在しない。
このように、本発明によれば、二次キャッシュ12側でシノニムの検出及び排他権の制御を行う場合に、二次キャッシュ12の持つ仮想アドレスフィールドを拡張することによりデータ共有状態(データ共有条件)を緩和し、シノニム状態の解消に伴う動作を簡略化することで、メモリアクセス時間を短縮し、メモリ利用効率を向上することが可能となる。
次に、本発明になるプロセッサシステムの一実施例を説明する。プロセッサシステムの本実施例は、本発明になるキャッシュ制御方法の一実施例を採用する。本実施例では、本発明がマルチプロセッサシステムに適用されている。
図8は、本発明になるプロセッサシステムの一実施例を示すブロック図である。図8に示すマルチプロセッサシステムは、複数のプロセッサチップ(CHIP)30−1〜30−4と、主記憶装置(Main Memory)31とからなる。各プロセッサチップ30−1〜30−4は同じ構成を有するので、図8ではプロセッサチップ30−1のみの構成を示す。プロセッサチップ30−1は、複数のCPU20−1,20−2と、CPU20−1,20−2でデータが共有される二次キャッシュ(L2 CACHE)22からなる。CPU20−1,20−2は、各々一次キャッシュ(L1 CACHE)21−1,21−2を有する。プロセッサチップ30−1〜30−4は、チップマルチプロセッサ(Chip Multi Processor)と呼ばれることもある。
各一次キャッシュ21−1,21−2は、L1キャッシュタグ(L1 CACHE TAG)210及びTLB211を有する。TLB211は、どの実アドレスのデータが、そのTLB211が属する一次キャッシュ21−1又は21−2にどの仮想アドレスで登録されているかを示す。L1 CACHE TAG210は、それが属する一次キャッシュ21−1又は21−2のどのアドレス領域が登録されているかを示す。二次キャッシュ22は、L2キャッシュタグ(L2 CACHE TAG)220を有する。L2 CACHE TAG220は、それが属する二次キャッシュ22のどのアドレス領域が登録されているかと、各一次キャッシュ21−1,21−2にどのアドレス領域が登録されているかを示す。主記憶装置31は、Dタグ(DTAG)310を有する。DTAG310は、各二次キャッシュ22にどのアドレス領域が登録されているかを示す。
尚、プロセッサチップの数は、4つに限定されるものではなく、1以上であれば良い。又、各プロセッサチップ内のCPUの数は、2つに限定されるものではなく、2以上であれば良い。
一次キャッシュ21−1,21−2は、VIPTで制御され、二次キャッシュ22は、PIPTで制御される。二次キャッシュ22は、一次キャッシュ21−1,21−2に登録された任意のデータを削除可能とするために仮想アドレスの一部を持っているが、DTAGは持っていない。このため、各チッププロセッサ30−1〜30−4内に設けられたCPUの数が増加しても、膨大な情報量のDTAGを設ける必要がない。
図9は、一次キャッシュ21−1又は21−2のタグ内容を示す図である。図9に示すように、L1 CACHE TAG210には、ステートState、仮想アドレスVA及びデータDATAが含まれる。一次キャッシュ21−1又は21−2は、VIPTで制御されるので、実際にL1 CACHE TAG210に登録される部分は実アドレスPAであるが、図9では論理的な意味を表すために仮想アドレスVAとして図示してある。
図10は、二次キャッシュ22のタグ内容を示す図である。図10に示すように、L2 CACHE TAG220には、ステートState、CPU20−1からのアクセスで使用する仮想アドレスVAとステートStateを示すCPU0 VA/State、CPU20−2からのアクセスで使用する仮想アドレスVAとステートStateを示すCPU1 VA/State、実アドレスPA及びデータDATAが含まれる。つまり、L2 CACHE TAG220は、VIPTで制御される一次キャッシュ21−1又は21−2の任意のエントリを削除可能とするために、実アドレスPAに対してCPU20−1又は20−2がどの仮想アドレスVAで登録しているかを示す情報を含む。
図11は、プロセッサシステムの一実施例の機能ブロック図である。図11中、図8と同一部分には同一符号を付し、その説明は省略する。
図11において、二次キャッシュ22は、プライオリティ回路221と、L2 CACHE TAG220を含むタグ(TAG)索引・更新回路222と、主記憶アクセス回路223とからなる。プライオリティ回路221は、各CPU20−1,20−2及び内部リクエストの調停を行う。タグ索引・更新回路222は、L2 CACHE TAG220に所望のデータが登録されているか否かを索引すると共に、アクセスリクエストに応じてL1 CACHE TAG210及びL2 CACHE TAG220の更新を行う。主記憶アクセス回路223は、二次キャッシュ22にヒットしなかったアクセスリクエストが供給されると主記憶装置31をアクセスし、主記憶装置31からのデータを待つ。主記憶装置31からのデータが来ると、主記憶アクセス回路223はデータをプライオリティ回路221へ供給し、上記と同様に調停を行う。
図12は、キャッシュ制御動作を説明するフローチャートである。図12に示すキャッシュ制御動作は、チッププロセッサ30−1内のCPU20−1,20−2からアクセスリクエストが発生すると開始される。
図12において、ステップS1は、例えばCPU20−1から発生したアクセスリクエストが一次キャッシュ210にヒットしたか否かを判定し、判定結果がYESであると、処理は終了する。他方、ステップS1の判定結果がNOであると、ステップS2は、アクセスリクエストを二次キャッシュ22へ送出する。ステップS3は、プライオリティ回路221において、アクセスリクエストの調停を行い、調停結果が正常(OK)であるか否かを判定し、判定結果がYESであると、処理はステップS4へ進む。
ステップS4は、タグ索引・更新回路222により、アクセスリクエストが二次キャッシュ22にヒットしたか否かを判定する。ステップS4の判定結果がNOであると、ステップS5は、主記憶アクセス回路223により主記憶装置31をアクセスし、処理はステップS3へ戻る。他方、ステップS4の判定結果がYESであると、ステップS6は、タグ索引・更新回路222により、二次キャッシュ22に登録されている、チッププロセッサ30−1内のアクセスリクエスト元以外の他系CPU(この場合、CPU20−2)のデータをチェックする。
ステップS7は、タグ索引・更新回路222により、二次キャッシュ22に登録されているデータのステートがSであるか否か、即ち、参照のみが可能であるか否かを判定する。ステップS7の判定結果がYESであると、ステップS8は、タグ索引・更新回路222により、アクセスリクエストがストアであるか否かを判定する。アクセスリクエストがロードでありステップS8の判定結果がNOであると、ステップS9は、タグ索引・更新回路222により必要に応じてタグの更新を行うと共に、アクセスされたデータをアクセスリクエスト元のCPU20−1へ返送し、処理は終了する。
ステップS7の判定結果がNOであると、ステップS11は、タグ索引・更新回路222により、二次キャッシュ22に登録されているデータのステートがMであるか否か、即ち、更新可能であるか否かを判定する。ステップS11の判定結果がYESであると、処理は上記ステップS9へ進む。他方、ステップS11の判定結果がNO、或いは、ステップS8の判定結果がYESであると、ステップS12は、タグ索引・更新回路222により一次キャッシュ21及び二次キャッシュ22のエントリの更新を行うと共に、プライオリティ回路221により他系CPU20−2へ一次キャッシュ21及び二次キャッシュ22の対応するエントリの削除をリクエストし、処理は上記ステップS3へ戻る。
尚、本発明は、上記実施例に限定されるものではなく、本発明の範囲内で種々の改良及び変更が可能であることは、言うまでもない。
Claims (9)
- メモリアクセスを行う演算処理部と、データと前記データの実アドレスに対応する第1の仮想アドレスが第1のエントリに登録されている1次キャッシュと、前記データ、前記実アドレス、前記実アドレスに対応する第1及び第2の仮想アドレスが1つのエントリに登録される2次キャッシュと、前記1次キャッシュと前記2次キャッシュにおけるデータの更新を行うキャッシュ更新制御部を有する演算処理装置のキャッシュ制御方法において、
前記演算処理部が前記1次キャッシュに対して、前記第2の仮想アドレスへのメモリアクセスを行うステップと、
前記メモリアクセスについてキャッシュミスが発生した場合に、前記1次キャッシュが前記2次キャッシュに対して、前記第2の仮想アドレスに対応するデータを要求するステップと、
前記2次キャッシュから転送された前記第2の仮想アドレスに対応するデータを、前記キャッシュ更新制御部が前記1次キャッシュの前記第1のエントリとは異なる第2のエントリに登録するステップとを有することを特徴とするキャッシュ制御方法。 - 前記1次キャッシュのエントリが有する記憶装置における上位アドレスを示すタグは、当該エントリに登録されたデータに対する操作権限を示す情報を有すると共に、
前記2次キャッシュのエントリが有するタグは、当該エントリに登録されたデータに対応する前記第1及び第2の仮想アドレスの夫々について、エントリに登録されたデータに対する操作権限を示す情報を有し、
前記キャッシュ更新制御部は、前記1次キャッシュ又は前記2次キャッシュのエントリに格納された情報に基づいてデータの更新を行うことを特徴とする請求項1記載のキャッシュ制御方法。 - 前記情報は、前記1次キャッシュ又は前記2次キャッシュにおける前記情報に対応するデータが、更新可能であること、参照のみ可能であること又は無効であることのいずれか1つの状態を示すことを特徴とする請求項2記載のキャッシュ制御方法。
- 前記2次キャッシュは、物理アドレスによるタグを物理アドレスによりインデックスし、
前記1次キャッシュは、物理アドレスによるタグを仮想アドレスによりインデックスすることを特徴とする請求項1〜3のいずれかに記載のキャッシュ制御方法。 - メモリアクセスを行う演算処理部と、
データと前記データに対応する第1の仮想アドレスとを登録する第1のエントリを有する1次キャッシュと、
前記データと、前記データの実アドレスと、前記実アドレスに対応する第1の仮想アドレスと、前記実アドレスに対応する第1の仮想アドレスとは異なる第2の仮想アドレスとを登録するエントリを有する2次キャッシュと、
前記演算処理部が前記1次キャッシュに対して、前記第2の仮想アドレスへのメモリアクセスを行うことによりキャッシュミスが発生した場合に、前記第2の仮想アドレスに対応するデータを前記2次キャッシュから前記1次キャッシュへ転送して、前記1次キャッシュの前記第1のエントリとは異なる第2のエントリに登録するキャッシュ更新制御部を有することを特徴とする演算処理装置。 - 前記1次キャッシュのエントリが有する記憶装置における上位アドレスを示すタグは、当該エントリに登録されたデータに対する操作権限を示す情報を有すると共に、
前記2次キャッシュのエントリが有するタグは、当該エントリに登録されたデータに対 応する前記第1及び第2の仮想アドレスの夫々について、エントリに登録されたデータに対する操作権限を示す情報を有し、
前記キャッシュ更新制御部は、前記1次キャッシュ又は前記2次キャッシュのエントリに格納された情報に基づいてデータの更新を行うことを特徴とする請求項5記載の演算処理装置。 - 前記情報は、前記1次キャッシュ又は前記2次キャッシュにおける前記情報に対応するデータが、更新可能であること、参照のみ可能であること又は無効であることのいずれか1つの状態を示すことを特徴とする請求項6記載の演算処理装置。
- 前記2次キャッシュは、物理アドレスによるタグを物理アドレスによりインデックスし、
前記1次キャッシュは、物理アドレスによるタグを仮想アドレスによりインデックスすることを特徴とする請求項6又は7に記載の演算処理装置。 - 演算処理装置と記憶装置とを有する情報処理装置において、
前記演算処理装置は、
メモリアクセスを行う演算処理部と、
データと前記データに対応する第1の仮想アドレスとを登録する第1のエントリを有する1次キャッシュと、
前記データと、前記データの実アドレスと、前記実アドレスに対応する第1の仮想アドレスと、前記実アドレスに対応する第1の仮想アドレスとは異なる第2の仮想アドレスとを登録するエントリを有する2次キャッシュと、
前記演算処理部が前記1次キャッシュに対して、前記第2の仮想アドレスへのメモリアクセスを行うことによりキャッシュミスが発生した場合に、前記第2の仮想アドレスに対応するデータを前記2次キャッシュから前記1次キャッシュに転送して、前記1次キャッシュの前記第1のエントリとは異なる第2のエントリに登録するキャッシュ更新手段とを有し、
前記記憶装置は、前記データを格納すると共に前記データを前記2次キャッシュに供給することを特徴とする情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2002/012186 WO2004046932A1 (ja) | 2002-11-21 | 2002-11-21 | キャッシュ制御方法及びプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004046932A1 JPWO2004046932A1 (ja) | 2006-03-16 |
JP4006445B2 true JP4006445B2 (ja) | 2007-11-14 |
Family
ID=32321524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004553130A Expired - Fee Related JP4006445B2 (ja) | 2002-11-21 | 2002-11-21 | キャッシュ制御方法及びプロセッサシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7330961B2 (ja) |
JP (1) | JP4006445B2 (ja) |
WO (1) | WO2004046932A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004046932A1 (ja) | 2002-11-21 | 2004-06-03 | Fujitsu Limited | キャッシュ制御方法及びプロセッサシステム |
US7805588B2 (en) * | 2005-10-20 | 2010-09-28 | Qualcomm Incorporated | Caching memory attribute indicators with cached memory data field |
JP5012016B2 (ja) * | 2006-12-28 | 2012-08-29 | 富士通株式会社 | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 |
JP4821887B2 (ja) * | 2009-06-08 | 2011-11-24 | 日本電気株式会社 | コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法 |
WO2012015766A2 (en) * | 2010-07-28 | 2012-02-02 | Rambus Inc. | Cache memory that supports tagless addressing |
US8255634B2 (en) * | 2010-08-11 | 2012-08-28 | Lsi Corporation | Apparatus and methods for look-ahead virtual volume meta-data processing in a storage controller |
US8261003B2 (en) | 2010-08-11 | 2012-09-04 | Lsi Corporation | Apparatus and methods for managing expanded capacity of virtual volumes in a storage system |
US8176218B2 (en) | 2010-08-11 | 2012-05-08 | Lsi Corporation | Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller |
WO2013058745A1 (en) | 2011-10-18 | 2013-04-25 | Soft Machines, Inc. | Methods and systems for managing synonyms in virtually indexed physically tagged caches |
US9274960B2 (en) | 2012-03-20 | 2016-03-01 | Stefanos Kaxiras | System and method for simplifying cache coherence using multiple write policies |
WO2013186694A2 (en) * | 2012-06-11 | 2013-12-19 | Stefanos Kaxiras | System and method for data classification and efficient virtual cache coherence without reverse translation |
US9489104B2 (en) | 2013-11-14 | 2016-11-08 | Apple Inc. | Viewable frame identification |
US9582160B2 (en) | 2013-11-14 | 2017-02-28 | Apple Inc. | Semi-automatic organic layout for media streams |
US20150134661A1 (en) * | 2013-11-14 | 2015-05-14 | Apple Inc. | Multi-Source Media Aggregation |
US10324861B2 (en) | 2015-02-05 | 2019-06-18 | Eta Scale Ab | Systems and methods for coherence in clustered cache hierarchies |
KR102151180B1 (ko) * | 2017-11-20 | 2020-09-02 | 삼성전자주식회사 | 효율적인 가상 캐시 구현을 위한 시스템 및 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4400770A (en) | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
JPH0383150A (ja) | 1989-08-28 | 1991-04-09 | Fujitsu Ltd | アドレス変換機構付キャッシュ装置の制御方式 |
JP2833062B2 (ja) | 1989-10-30 | 1998-12-09 | 株式会社日立製作所 | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5479630A (en) * | 1991-04-03 | 1995-12-26 | Silicon Graphics Inc. | Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same |
JP2839060B2 (ja) * | 1992-03-02 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムおよびデータ処理方法 |
US5813046A (en) | 1993-11-09 | 1998-09-22 | GMD--Forschungszentrum Informationstechnik GmbH | Virtually indexable cache memory supporting synonyms |
JPH07287668A (ja) | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
JPH086852A (ja) * | 1994-06-22 | 1996-01-12 | Hitachi Ltd | キャッシュ制御方法 |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
WO2004046932A1 (ja) | 2002-11-21 | 2004-06-03 | Fujitsu Limited | キャッシュ制御方法及びプロセッサシステム |
-
2002
- 2002-11-21 WO PCT/JP2002/012186 patent/WO2004046932A1/ja active Application Filing
- 2002-11-21 JP JP2004553130A patent/JP4006445B2/ja not_active Expired - Fee Related
-
2004
- 2004-12-13 US US11/009,466 patent/US7330961B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7330961B2 (en) | 2008-02-12 |
US20050102473A1 (en) | 2005-05-12 |
WO2004046932A1 (ja) | 2004-06-03 |
JPWO2004046932A1 (ja) | 2006-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803486B2 (en) | Write merging on stores with different privilege levels | |
US6751720B2 (en) | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy | |
JP4006445B2 (ja) | キャッシュ制御方法及びプロセッサシステム | |
US7146468B2 (en) | Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
US8782348B2 (en) | Microprocessor cache line evict array | |
US7363462B2 (en) | Performing virtual to global address translation in processing subsystem | |
JP4613247B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
US7376793B2 (en) | Cache coherence protocol with speculative writestream | |
JPH04227552A (ja) | ストアスルーキャッシュ管理システム | |
US7103728B2 (en) | System and method for memory migration in distributed-memory multi-processor systems | |
US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
US20230325314A1 (en) | Multi-level cache security | |
US6351791B1 (en) | Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses | |
US20060294319A1 (en) | Managing snoop operations in a data processing apparatus | |
US6766434B2 (en) | Method for sharing a translation lookaside buffer between CPUs | |
TW201935231A (zh) | 用於進行中操作的指令排序 | |
US20040260905A1 (en) | Multi-node system in which global address generated by processing subsystem includes global to local translation information | |
US20150269079A1 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
JP2976867B2 (ja) | 入出力バッファ装置及びその管理方法 | |
US8327070B2 (en) | Method for optimizing sequential data fetches in a computer system | |
JPH02224161A (ja) | 高速データ処理装置 | |
KR0173854B1 (ko) | 캐시메모리제어 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070320 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070806 |
|
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: 20070821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070827 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4006445 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100831 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120831 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120831 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130831 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |