JP6249120B1 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP6249120B1
JP6249120B1 JP2017061109A JP2017061109A JP6249120B1 JP 6249120 B1 JP6249120 B1 JP 6249120B1 JP 2017061109 A JP2017061109 A JP 2017061109A JP 2017061109 A JP2017061109 A JP 2017061109A JP 6249120 B1 JP6249120 B1 JP 6249120B1
Authority
JP
Japan
Prior art keywords
cache
cache memory
hit
miss
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.)
Active
Application number
JP2017061109A
Other languages
English (en)
Other versions
JP2018163571A (ja
Inventor
江副 健司
健司 江副
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017061109A priority Critical patent/JP6249120B1/ja
Application granted granted Critical
Publication of JP6249120B1 publication Critical patent/JP6249120B1/ja
Priority to US15/893,918 priority patent/US10565111B2/en
Publication of JP2018163571A publication Critical patent/JP2018163571A/ja
Active 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

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

【課題】階層キャッシュメモリにおいて包含関係を維持する場合における、回路の増加と制御の複雑化、を解決する。【解決手段】本発明のプロセッサは上位キャッシュメモリと下位キャッシュメモリとを有し、上位キャッシュメモリに記憶されているデータが下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリと、所定のデータへのアクセス時に、上位キャッシュメモリと下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、上位キャッシュメモリと下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、インクルーシブ状態となるよう制御する制御部と、を備える。【選択図】図12

Description

本発明は、プロセッサにかかり、特に、階層キャッシュメモリを備えたプロセッサに関する。
近年、半導体プロセスの微細化により、LSIに搭載できる論理回路は飛躍的に増加し、複数コアを実装するマルチコアプロセッサが一般的になっている。マルチコアプロセッサでは、複数コアがメモリを共有し、キャッシュメモリを持つプロセッサの場合に、キャッシュとメモリのデータの整合性を考慮する必要がある。
そして、データの整合性を保つために、ハードウェアによりデータの整合性を維持するプロセッサ、ソフトウェアによりデータの整合性を維持するプロセッサ、ハードウェアとソフトウェアを組み合わせてデータの整合性を維持するプロセッサ、が存在する。ハードウェアによりデータの整合性を維持するプロセッサは、ソフトウェア開発の容易性やソフトウェアによるキャッシュフラッシュ制御が不要のため高性能などの利点があり広く用いられている。
ただし、コア数の増加とメモリレイテンシの隠ぺいをするためにキャッシュ階層が深くなる状況下で、ハードウェアによるデータの整合性を維持する制御回路の増加と複雑化が課題になっていた。特に、ベクトルプロセッサでは、ベクトルストア命令の場合に複数アドレスに対してキャッシュを無効化する必要があり、ハードウェアによるデータの整合性を維持する制御回路の問題が深刻になっていた。
具体的に、図1に示すような階層キャッシュメモリを備えるプロセッサにおいて、コア0(100)、コア1(110)内にL1キャッシュ101,111とL2キャッシュ102,112を持ち、コア間でL3キャッシュ120を共有する構成を用いて説明する。ここで、L1キャッシュのデータはL2キャッシュに含まれ、L2キャッシュのデータはL3キャッシュに含まれるインクルーシブ・キャッシュを実現する構成であるとこととする。各キャッシュ間で包含関係を維持するためには、キャッシュ無効化制御が必要となる。
なお、上述したL1キャッシュとL2キャッシュのような階層キャッシュメモリに関する技術として、特許文献1,2に開示されている技術がある。特許文献1,2では、2つの階層キャッシュメモリに対して同時にキャッシュヒット/ミスの判定を行っている。
ここで、図1に示したプロセッサにおいて、キャッシュ制御を含めた詳細な構成を図2に示す。かかる構成において、L2キャッシュとL3キャッシュ間の包含関係を維持するためには、以下の制御が必要になる。
まず、L3キャッシュ300は、各コア(コア0(200,コアn(n200)))のL2キャッシュ240が保持しているデータの情報であるL2キャッシュ保持情報305を持つ。そして、L3キャッシュ300の更新時に、各コア200,n200のL2キャッシュ240が、該当データを保持しているかをチェックし、データを保持していた場合には、無効化制御部308が各コア200,n200に無効化要求を出力する。そして、各コア200,n200は、L2キャッシュ無効化制御部247がL2キャッシュアドレスアレイ242を無効化する。なお、L3キャッシュの更新時とは、例えば、ストア命令によるL3キャッシュデータアレイ303のデータ更新時、あるいは、L3キャッシュアドレスアレイ302のWAYが全て使用中で1WAY分の追い出しが必要な時、などである。
さらに、上記構成において、L1キャッシュ220とL2キャッシュ240間の包含関係を維持するためには、以下の制御が必要になる。まず、L2キャッシュ無効化制御部247がL2キャッシュ240の無効化情報を出力する。そして、ヒット・ミス判定部226が、L1キャッシュアドレスアレイコピー223を利用して、ヒット・ミス判定を行う。ヒットしていた場合は、L1キャッシュ無効化制御部228がL1キャッシュアドレスアレイ222を無効化する。ここで、L1キャッシュアドレスアレイのコピー223を利用したのは、使用頻度の高いL1キャッシュアドレスアレイ222に対して性能低下させずにL1キャッシュ220のヒット・ミス判定を行い無効化するためである。
その他には、L1キャッシュアドレスアレイ222のマルチポート化といった実装方法が考えられる。さらには、L1キャッシュアドレスアレイ222のリード要求の調停(リクエスト制御部と無効化の2つのリード要求が存在)を行う(1つのL1キャッシュアドレスアレイを調停して利用するため性能は低下)、という実装方法も考えられる。
特開2002−007373号公報 特開2000−003308号公報
しかしながら、上述したL1キャッシュとL2キャッシュとのような階層キャッシュメモリ間で包含関係を維持する場合、L1キャッシュとL2キャッシュの両方に対して無効化制御回路を実装しているため、回路の増加とキャッシュ制御の複雑化、という問題が生じる。
また、上記の一般的なプロセッサに用いられるキャッシュの無効化制御以外に、ベクトルプロセッサでは、ベクトルストア命令を用いて同時に複数のアドレスにストアする。この時、ベクトル命令でアクセスされないキャッシュを備える場合(図1のL1キャッシュとL2キャッシュが対象、L3キャッシュはベクトル命令がアクセス可能とする)は、キャッシュのコヒーレンシを維持するため、ベクトルストア命令の処理と同時にキャッシュの無効化(L1キャッシュとL2キャッシュが対象)を行う必要がある。特に、ベクトルプロセッサにおけるキャッシュ無効化制御は、並行して複数のアドレスに対して実行する必要がある。すると、ベクトルプロセッサにおいてもL1キャッシュとL2キャッシュの両方に対して無効化制御回路を実装することとなり、大幅な回路の増加とキャッシュ制御の複雑化が一般プロセッサ以上にて問題になる。
このため、本発明の目的は、上述した課題である、階層キャッシュメモリにおいて包含関係を維持する場合における、回路の増加と制御の複雑化、という問題を解決することにある。
本発明の一形態であるプロセッサは、
上位キャッシュメモリと下位キャッシュメモリとを有し、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリと、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記インクルーシブ状態となるよう制御する制御部と、
を備えた、
という構成をとる。
また、本発明の一形態であるキャッシュメモリ制御装置は、
上位キャッシュメモリと下位キャッシュメモリとを有する階層キャッシュメモリに対して、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態となるよう制御するキャッシュメモリ制御装置であって、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態となるよう制御する制御部と、
を備えた、
という構成をとる。
また、本発明の一形態であるプログラムは、
上位キャッシュメモリと下位キャッシュメモリとを有する階層キャッシュメモリに対して、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態となるよう制御するキャッシュメモリ制御装置に、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態となるよう制御する制御部と、
を実現させる、
という構成をとる。
また、本発明の一形態であるキャッシュメモリ制御方法は、
上位キャッシュメモリと下位キャッシュメモリとを有し、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリを備えたプロセッサによるキャッシュメモリ制御方法であって、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定し、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記インクルーシブ状態となるよう制御する、
という構成をとる。
本発明は、以上のように構成されることにより、階層キャッシュメモリにおいて包含関係を維持する場合における、回路の増加と制御の複雑化を抑制することができる。
階層キャッシュメモリを備えるプロセッサと共有キャッシュとメモリとの構成を示すブロック図である。 背景技術におけるプロセッサを含む情報処理装置の構成を示すブロック図である。 本発明の実施形態1におけるプロセッサを含む情報処理装置の構成を示すブロック図である。 本発明における各キャッシュのアドレスの一例を示す図である。 本発明におけるキャッシュのアドレスアレイ及びデータアレイの構成の一例を示す図である。 本発明におけるキャッシュ毎のヒット・ミス判定の一例を示す図である。 本発明のロード命令時における、各キャッシュのヒット・ミス判定と、各キャッシュの動作の一覧を示す図である。 背景技術のロード命令時における、各キャッシュのヒット・ミス判定と、各キャッシュの動作の一覧を示す図である。 本発明のストア命令時における、各キャッシュのヒット・ミス判定と、各キャッシュの動作の一覧を示す図である。 背景技術のストア命令時における、各キャッシュのヒット・ミス判定と、各キャッシュの動作の一覧を示す図である。 本発明の実施形態1におけるプロセッサを含む情報処理装置の他の構成を示すブロック図である。 本発明の実施形態2におけるプロセッサの構成を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図1及び図3乃至図11を参照して説明する。図1及び図3乃至図6は、プロセッサを含む情報処理装置の構成を説明するための図である。図7乃至図10は、プロセッサの動作を説明するための図である。図11は、情報処理装置の他の構成例を示す図である。
[構成]
本発明は、図1に示すように、コア0(100)からコアn(110)のように複数のコアを有するプロセッサと、L3キャッシュ120と、メモリ130と、を備えた情報処理装置にて実現される。そして、各コア100,110は、それぞれ、上位キャッシュメモリであるL1キャッシュ101,111と、下位キャッシュメモリであるL2キャッシュ102,112と、を有する階層キャッシュメモリを備えている。
なお、上記L3キャッシュ120は、L1キャッシュ及びL2キャッシュよりもさらに下位に位置し、コア100,110間で共有されるキャッシュメモリである。また、メモリ130は、情報処理装置の主記憶装置であり、L3キャッシュ120のさらに下位に位置している。
そして、本発明では、特に、L1キャッシュ101,111のデータはL2キャッシュ102,112に含まれ、L2キャッシュ102,112のデータはL3キャッシュ120に含まれるインクルーシブ・キャッシュ(インクルーシブ状態)(インクルージョン・キャッシュとも言う)を実現する構成であるとこととする。
図3を参照して、上述した情報処理装置のさらに詳細な構成を説明する。なお、図3では、図1におけるコア100,110を符号500,n500で示し、図1におけるL1キャッシュ101,111を符号520で示し、図1におけるL2キャッシュ102,112を符号540で示す。また、図3では、図1におけるL3キャッシュ120を符号600で示し、図1におけるメモリ130を符号620で示す。
上記コア0(500)は、命令制御部501、演算制御部502、L1キャッシュ520、L2キャッシュ540を有する。L1キャッシュ520は、リクエスト制御部521、L1キャッシュアドレスアレイ(以下、アドレスアレイをAAと呼ぶ)522、L1キャッシュデータアレイ(以下、データアレイをDAと呼ぶ)523、リプライ制御部524、ヒット・ミス判定部525、リクエスト生成制御部526を有する。L2キャッシュ540は、リクエスト制御部541、L2キャッシュAA542、L2キャッシュDA543、リプライ制御部544、リクエスト生成制御部545、L2キャッシュ無効化制御部546を有する。
なお、コアn(n500)は、上記コアと同様の構成を有する。つまり、図3では図示を省略するが、コアnは、命令制御部、演算制御部、L1キャッシュ、L2キャッシュを有する。そして、コアn内のL1キャッシュは、リクエスト制御部、L1キャッシュAA、L1キャッシュDA、リプライ制御部、ヒット・ミス判定部、リクエスト生成制御部を有する。コアn内のL2キャッシュは、リクエスト制御部、L2キャッシュAA、L2キャッシュDA、リプライ制御部、リクエスト生成制御部、L2キャッシュ無効化制御部を有する。
上記L3キャッシュ600は、リクエスト制御部601、L3キャッシュAA602、L3キャッシュDA603、リプライ制御部604、L2キャッシュ保持情報605、ヒット・ミス判定部606、リクエスト生成制御部607、無効化制御部608を有する。
また、それぞれの構成要素は、図3で示す各信号線によって接続されている。但し、上記コアやL1キャッシュ、L2キャッシュ、L3キャッシュは、図3に示す構成であることに限定されず、他の構成要素を備えていてもよい。また、各構成要素の接続関係は、図3で示すものに限定されない。
また、図3で示した各構成要素は、演算装置にプログラムが組み込まれることで実現される。
上記構成の機能の概要について説明する。上述したように、コア500内に装備される各制御部が、L1キャッシュ520のデータはL2キャッシュ540に含まれるインクルーシブ・キャッシュ(インクルーシブ状態)を実現するよう制御する。これに加えて、L2キャッシュ540のデータはL3キャッシュ600に含まれる。
そして、所定のデータへのアクセス時つまりL1キャッシュへのアクセス時には、ヒット・ミス判定部525(キャッシュヒット判定部)が、L1キャッシュアドレスアレイ522とL2キャッシュアドレスアレイ542の両方を検索して、キャッシュヒットかキャッシュミスかの判定を行う。そして、L1キャッシュアドレスアレイ522とL2キャッシュアドレスアレイ542とに対するそれぞれのキャッシュヒット・ミスの判定結果に基づいて、各制御部は以下のように動作する。
まず、L1キャッシュ=ヒット、及び、L2キャッシュ=ヒットの場合は、L1キャッシュ=ヒットとして動作する。このとき、L1キャッシュデータアレイからデータをリードして利用する。L2キャッシュデータアレイは使用しない。
また、L1キャッシュ=ヒット、及び、L2キャッシュ=ミスの場合は、L2キャッシュのみ無効化された後で、L1キャッシュにアクセスしたケースになる。このとき、L1キャッシュとL2キャッシュの包含関係は、L1キャッシュのデータがL2キャッシュに含まれていないため、一時的にノン・インクルーシブ状態になっている。この状態では、L2キャッシュに有効なデータがないため、L1キャッシュに存在しているデータを無効なデータとして扱う。そのため、L1キャッシュ=ミス及びL2キャッシュ=ミスとして動作する。このため、L1キャッシュデータアレイとL2キャッシュデータアレイにL3キャッシュからのリプライデータを登録する。この動作により、L1キャッシュとL2キャッシュの包含関係は、インクルーシブ状態に戻る。
また、L1キャッシュ=ミス、及び、L2キャッシュ=ヒットの場合は、L1キャッシュ=ミス及びL2キャッシュ=ヒットとして動作する。このとき、L2キャッシュデータアレイからデータをリードして、L1キャッシュデータアレイに登録する。
また、L1キャッシュ=ミス、及び、L2キャッシュ=ミスの場合は、L1キャッシュ=ミス及びL2キャッシュ=ミスとして動作する。このとき、L1キャッシュデータアレイとL2キャッシュデータアレイにL3キャッシュからのリプライデータを登録する。
上述した機能により、図2を参照して説明した背景技術に存在したL1キャッシュとL2キャッシュ間の包含関係を維持するためのL1キャッシュ無効化制御部218やこれに関連する構成が不要になる。つまり、本発明では、背景技術と比較して、図3に示すように、L1キャッシュ520にはL1キャッシュの無効化制御部を設けずに、L2キャッシュ540のみにL2キャッシュ無効化制御部546(無効化手段)を設けている。この場合、L2キャッシュのみ無効化されるケースが発生し、これにより、L1キャッシュとL2キャッシュの包含関係は、一時的なノン・インクルーシブ状態になる可能性がある。ところが、本発明では、上述したように、L1キャッシュのデータを実際に利用するためのアクセス時に、上記ヒット・ミス判定を行うことによりインクルーシブ状態に戻るため、L1キャッシュ520とL2キャッシュ540間の包含関係を維持できる。その結果、回路の増加と制御の複雑化を抑制することができる。
[動作]
次に、上述した構成の動作について説明する。以下に説明する動作では、メモリやキャッシュを利用する命令である「ロード命令」と「ストア命令」が出された場合を説明する。また、一例として、各キャッシュ520,540,600は以下の構成であることとする。
・L1キャッシュ:容量=64KB、4WAYセットアソシアティブ、ラインサイズ=64B
・L2キャッシュ:容量=256KB、8WAYセットアソシアティブ、ラインサイズ=64B
・L3キャッシュ:容量=16MB、16WAYセットアソシアティブ、ラインサイズ=64B
上記構成の場合、アドレスを48ビットとすると、各キャッシュのタグアドレス、インデックスアドレスは、図4に示すアドレスbit数になる。また、コア内にあるL1キャッシュ520とL2キャッシュ540は、ライトスルー方式のキャッシュで、ストア命令キャッシュミス時のライトアロケート動作なしとする。各コアで共有しているL3キャッシュ600は、ライトバック方式のキャッシュで、ストア命令キャッシュミス時のライトアロケート動作ありとする。
<ロード命令の動作>
命令制御部501は、ロード命令を、信号線を介してリクエスト制御部521へ発行する。リクエスト制御部521は、ロード命令のアドレスをL1キャッシュAA522、L2キャッシュAA542、L1キャッシュDA523、ヒット・ミス判定部525へ信号線を介して出力する。
ここで、本発明におけるキャッシュ520,540のアドレスアレイ(AA)522,542及びデータアレイ(DA)523,543の構成について、図5を用いて説明する。各AAには、タグアドレスと、キャッシュのステータス情報(Vbit)と、キャッシュ状態、が格納される。また、DAにはデータが格納されている。なお、上記ステータス情報は、各キャッシュライン毎に有効であるかを示すビット=Vbitである。また、上記キャッシュ状態は、メモリの内容とキャッシュの内容が一致しているかを示すビット(=Modifiedと呼ぶ)であり、ライトバック方式で必要だがライトスルー方式では不要なため、L1キャッシュ、L2キャッシュの説明では省略する。
L1キャッシュAA522とL2キャッシュAA542は、インデックスアドレスを用いて登録されているタグアドレスとVbitを、信号線を介してヒット・ミス判定部525に出力する。ヒット・ミス判定部525は、L1キャッシュ520とL2キャッシュ540の両方の情報とロード命令のアドレスを用いてヒット・ミス判定を行う。
まず、各キャッシュ毎のヒット・ミス判定は、図6に示した4種類のケースが存在する。Vbit=有効かつロード命令のアドレス(タグアドレスに相当するビット部分)とタグアドレスとの比較結果が一致した場合のみヒットとなる。本発明では、各キャッシュ毎のヒット・ミス判定だけでなく、L1キャッシュ520とL2キャッシュ540のヒット・ミス判定を組み合わせて、最終的なヒット・ミス判定を行う。図7に、本発明の各キャッシュのヒット・ミス判定と各キャッシュの動作の一覧を示す。ここでは、6種類のケースが存在し、それぞれのケースについて説明する。
ケース1(L1キャッシュ=ヒット、L2キャッシュ=ヒット、L3キャッシュ=未使用)
L1キャッシュ520のヒット・ミス判定部525は、L1キャッシュ=ヒットとして判定する。L1キャッシュDA523からロード命令のアドレスのデータをリードし、信号線を介してリプライ制御部524へ出力する。リプライ制御部524は、信号線を介して出力されるL2キャッシュ540からのリプライデータとの調停を行って、信号線を介して演算制御部502へデータを出力する。演算制御部502は、受け取ったデータに対してロード命令として必要な処理(例えば、符号拡張など)が指定されていればデータに対して演算する。
ケース2(L1キャッシュ=ヒット、L2キャッシュ=ミス、L3キャッシュ=ヒット)
L1キャッシュ520のヒット・ミス判定部525は、L1キャッシュ=ミスとして判定する。そして、ヒット・ミス判定部525は、信号線を介してリクエスト制御部521にリクエスト出力を要求する。リクエスト制御部521は、信号線を介してリクエスト生成制御部526へリクエストを出力する。リクエスト生成制御部526は、命令のオペコード、アドレス、L2キャッシュ=ミスなどの情報を付加して、リクエストを生成して信号線を介してL2キャッシュ540のリクエスト制御部541へ出力する。
L2キャッシュ540のリクエスト制御部541は、リクエストに付加されている情報を解釈して、L2キャッシュ=ミスのロード命令のためリクエストを、信号線を介してリクエスト生成制御部545へ出力する。リクエスト生成制御部545は、リクエストを生成して信号線を介して、L3キャッシュ600のリクエスト制御部601へ出力する。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線610を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。
L3キャッシュ600のヒット・ミス判定部606は、L3キャッシュ=ヒットとして判定する。そして、ヒット・ミス判定部606は、信号線を介してリクエスト制御部601にL3キャッシュDA603のリードリクエストと、L2キャッシュ保持情報605への登録を要求する。リクエスト制御部601は、L3キャッシュDA603のリードリクエストとL2キャッシュ保持情報605への登録を出力する。L3キャッシュDA603は、ロード命令のアドレスを含むL2キャッシュのラインサイズ分のデータをリードし、信号線を介してリプライ制御部604へ出力する。このとき、信号線のデータ幅がL2キャッシュのラインサイズ未満の場合は、複数回に分割してデータをリードして出力する。リプライ制御部604は、信号線を介して出力されるメモリからのリプライとの調停を行って、信号線を介してL2キャッシュDA543とリプライ制御部544へデータを出力し、データの最終要素を示す情報をL2キャッシュAA542へ出力する。
L2キャッシュ保持情報605は、各コアのL2キャッシュとL3キャッシュのコヒーレンシを維持するための情報を格納している。一般的には、ディレクトリと呼ばれるものである。様々な実装方法が存在するが、単純な実装例としては、各コアのL2キャッシュAA542のコピーを持ち、ヒットした場合は各コアのL2キャッシュが該当データを保持していることがチェックできる。上記の実装方法では、非常に大きな回路面積が必要なため、他の実装例としては、L3キャッシュの各ライン毎にどのコアのL2キャッシュのどのWAYがデータを保持しているかの情報を格納する。本発明では、後者の実装方法を例とする。L2キャッシュ保持情報605は、リプライを返却したコア番号とL2キャッシュのリプライ登録予定のWAY番号の情報を格納する。
L2キャッシュ540では、L3キャッシュ600からのリプライデータをL2キャッシュDA543へ格納し、ラインサイズ分のデータの最終要素を示す情報を受け取ると、L2キャッシュAA542のVbitを有効にする。また、リプライ制御部544は、信号線を介して出力されるL2キャッシュDA542からのリードデータとの調停を行って、信号線を介してL3キャッシュ600からのリプライを、L1キャッシュDA523とリプライ制御部524へデータを出力し、データの最終要素を示す情報をL1キャッシュAA522へ出力する。
L1キャッシュ520では、L2キャッシュ540からのリプライデータをL1キャッシュDA523へ格納し、ラインサイズ分のデータの最終要素を示す情報を受け取ると、L1キャッシュAA522のVbitを有効にする。また、リプライ制御部524は、信号線を介して出力されるL1キャッシュDA523からのリードデータとの調停を行って、信号線を介してキャッシュのラインサイズのデータの中でロード命令が必要としているデータを演算制御部502へ出力する。演算制御部502は、受け取ったデータに対してロード命令として必要な処理(例えば、符号拡張など)が指定されていればデータに対して演算する。
ケース3(L1キャッシュ=ヒット、L2キャッシュ=ミス、L3キャッシュ=ミス)
L1キャッシュ520の動作は、ミス判定のため、ケース2と同じである。
L2キャッシュ540の動作は、ミス判定のため、ケース2と同じである。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュのヒット・ミス判定部606は、L3キャッシュ=ミスかつ空きWAYありとして判定する。ヒット・ミス判定部606は、信号線を介してリクエスト制御部601へリクエスト出力を要求する。
リクエスト制御部601は、信号線を介してリクエスト生成制御部607へリクエストを出力する。リクエスト生成制御部607は、命令のオペコード、アドレスなどの情報を付加してリクエスト(ロード)を生成し、信号線を介してメモリ620へ出力する。L2キャッシュ保持情報605には、リプライを返却予定のコア番号とL2キャッシュのリプライ登録予定のWAY番号の情報を格納する。
メモリ620は、リクエスト(ロード)のため、信号線を介して対象アドレスのリプライデータを出力する。
L3キャッシュ600では、メモリ620からのリプライデータをL3キャッシュDA603へ格納し、ラインサイズ分のデータの最終要素を示す情報を受け取ると、L3キャッシュAAのVbitを有効にし、キャッシュ状態をmodified=0(メモリの内容とキャッシュの内容が一致の状態)にする。また、リプライ制御部604は、信号線を介して出力されるL3キャッシュDA603からのリードデータとの調停を行って、信号線を介してメモリ620からのリプライをL2キャッシュDA543とリプライ制御部544へデータを出力し、データの最終要素を示す情報をL2キャッシュAA 542へ出力する。
L2キャッシュのリプライの動作は、ケース2の動作と同じである。
L1キャッシュのリプライの動作は、ケース2の動作と同じである。
演算制御部502の動作は、ケース2の動作と同じである。
ケース4(L1キャッシュ=ミス、L2キャッシュ=ヒット、L3キャッシュ=未使用)
L1キャッシュ520のヒット・ミス判定部525は、L1キャッシュ=ミスとして判定する。そして、ヒット・ミス判定部525は、信号線を介してリクエスト制御部521へリクエスト出力を要求する。リクエスト制御部521は、信号線を介してリクエスト生成制御部526へリクエストを出力する。リクエスト生成制御部526は、命令のオペコード、アドレス、L2キャッシュ=ヒットなどの情報を付加してリクエストを生成し、信号線を介してL2キャッシュ540のリクエスト制御部541へ出力する。
L2キャッシュ540のリクエスト制御部541は、リクエストに付加されている情報を解釈して、L2キャッシュ=ヒットのロード命令のため、L2キャッシュDA543からロード命令のアドレスを含むL1キャッシュのラインサイズ分のデータをリードし、信号線を介してリプライ制御部544へ出力する。信号線のデータ幅がL1キャッシュのラインサイズ未満の場合は、複数回に分割してデータをリードして出力する。リプライ制御部544は、信号線を介して出力されるL3キャッシュ600からのリプライとの調停を行って、信号線を介してL1キャッシュDA523とリプライ制御部524へデータを出力し、データの最終要素を示す情報をL1キャッシュAA522へ出力する。
L1キャッシュ520のリプライの動作は、ケース2の動作と同じである。
演算制御部502の動作は、ケース2の動作と同じである。
ケース5(L1キャッシュ=ミス、L2キャッシュ=ミス、L3キャッシュ=ヒット)
ケース2の動作と同じである。
ケース6(L1キャッシュ=ミス、L2キャッシュ=ミス、L3キャッシュ=ミス)
ケース3の動作と同じである。
ここで、参考として、本発明と比較される技術の場合の動作を、図8に示す。この場合は、4種類のケースが存在する。
また、上記のケース以外の動作として、L3キャッシュ=ミスの場合にWAYが全て使用中で、有効データのリプレースが必要な場合の動作が存在する。ただし、一般的なライトバック方式のキャッシュの動作と同様であり、本発明特有の動作ではないため説明は簡略化する。
ケース7(ライトバック動作なし)
L1キャッシュ520の動作は、ミス判定のためケース2と同じである。
L2キャッシュ540の動作は、ミス判定のためケース2と同じである。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。
L3キャッシュのヒット・ミス判定部606は、L3キャッシュ=ミスかつ全WAY使用中を検出すると、リプレースのポリシー(例えば、LRUなど)に従い、WAYの中からリプレース対象WAYを1つ選択する。リプレース対象WAYのキャッシュ状態がmodified=0(メモリの内容とキャッシュの内容が一致の状態)の場合には、リクエスト制御部601へライトバック動作なしのリプレースを要求する。リクエスト制御部601は、L3キャッシュAA602の対象WAYのVbitを無効化する。また、L2キャッシュとL3キャッシュのコヒーレンシを維持するために、L2キャッシュ保持情報605のチェックを実施する。無効化制御部608は、各コアのL2キャッシュで使用中の場合に、各コアに無効化の要求を出力し、L2キャッシュ無効化制御部546がL2キャッシュAA542のVbitを無効化する。
上記の動作により、L3キャッシュ600に1WAY分の空きができリプレースは完了する。この後は、通常のL3キャッシュミス(ケース3と同等)として動作する。リクエスト制御部601は、信号線を介してリクエスト生成制御部607へリクエストを出力する。リクエスト生成制御部607は、命令のオペコード、アドレスなどの情報を付加してリクエスト(ロード)を生成し、信号線を介してメモリ620へ出力する。L2キャッシュ保持情報605には、リプライを返却予定のコア番号とL2キャッシュのリプライ登録予定のWAY番号の情報を格納する。メモリ以降の動作は、ケース3の動作と同じになる。
ケース8(ライトバック動作あり)
L1キャッシュ520の動作は、ミス判定のためケース2と同じである。
L2キャッシュ540の動作は、ミス判定のためケース2と同じである。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。
L3キャッシュ600のヒット・ミス判定部606は、L3キャッシュ=ミスかつ全WAY使用中を検出すると、リプレースのポリシー(例えば、LRUなど)に従い、WAYの中からリプレース対象WAYを1つ選択する。リプレース対象WAYのキャッシュ状態がmodified=1(メモリの内容とキャッシュの内容が不一致の状態)の場合には、リクエスト制御部へライトバック動作ありのリプレースを要求する。リクエスト制御部601は、L3キャッシュAA602の対象WAYのVbitを無効化する。
また、L2キャッシュとL3キャッシュのコヒーレンシを維持するために、L2キャッシュ保持情報605のチェックを実施する。無効化制御部608は、各コアのL2キャッシュで使用中の場合に各コアに無効化の要求を出力し、L2キャッシュ無効化制御部546がL2キャッシュAA542のVbitを無効化する。さらに、リクエスト制御部601は、信号線を介してリクエスト生成制御部607に命令のオペコード、アドレスなどの情報を出力する。また、L3キャッシュDA603のリプレース対象WAYのL3キャッシュラインサイズ分のデータのリードを出力する。L3キャッシュDA603は、信号線を介してリードデータをリクエスト生成制御部607へ出力する。リクエスト生成制御部607は、命令のオペコード、アドレス、データなどの情報を付加してリクエスト(ストア)を生成し、信号線を介してメモリ620へ出力する。
メモリ620は、リクエスト(ストア)のため対象アドレスにデータを格納する。上記の動作により、L3キャッシュ620に1WAY分の空きができリプレースは完了する。
この後は、通常のL3キャッシュミス(ケース3と同等)として動作する。リクエスト制御部は、信号線610を介してリクエスト生成制御部607へリクエストを出力する。リクエスト生成制御部607は、命令のオペコード、アドレスなどの情報を付加してリクエスト(ロード)を生成し、信号線を介してメモリ620へ出力する。L2キャッシュ保持情報605には、リプライを返却予定のコア番号とL2キャッシュのリプライ登録予定のWAY番号の情報を格納する。メモリ以降の動作は、ケース3の動作と同じになる。
<ストア命令の動作>
命令制御部501は、ストア命令を信号線を介してリクエスト制御部521へ発行する。リクエスト制御部521は、ストア命令のアドレスをL1キャッシュAA522、L2キャッシュAA542、ヒット・ミス判定部525へ、信号線を介して出力する。L1キャッシュAA522とL2キャシュAA542は、インデックスアドレスを用いて登録されているタグアドレスとVbitを、信号線を介してヒット・ミス判定部525に出力する。
ヒット・ミス判定部525は、L1キャッシュとL2キャッシュの両方の情報とストア命令のアドレスを用いてヒット・ミス判定を行う。本発明では、各キャッシュ毎のヒット・ミス判定だけでなく、L1キャッシュとL2キャッシュのヒット・ミス判定を組み合わせて最終的なヒット・ミス判定を行う。図9が、本発明における各キャッシュのヒット・ミス判定と各キャッシュの動作の一覧である。6種類のケースが存在し、それぞれのケースについて説明する。
ケース1(L1キャッシュ=ヒット、L2キャッシュ=ヒット、L3キャッシュ=ヒット)
L1キャッシュ520のヒット・ミス判定部525は、L1キャッシュ=ヒットとして判定する。ヒット・ミス判定部525は、信号線を介してリクエスト制御部521にリクエスト出力とL1キャッシュ=ヒットのためL1キャッシュDA523へストア命令の実行を要求する。リクエスト制御部521は、信号線を介してリクエスト生成制御部526にリクエストを出力する。また、リクエスト制御部521は、ストア命令のアドレスとデータを、信号線を介してL1キャッシュDA523へ通知する。L1キャッシュDA523は、通知されたアドレスとデータを用いて格納されているデータを更新する。リクエスト生成制御部526は、命令のオペコード、アドレス、データ、L2キャッシュ=ヒットなどの情報を付加してリクエストを生成し、信号線を介してL2キャッシュ540のリクエスト制御部541へ出力する。
L2キャッシュ540のリクエスト制御部541は、リクエストに付加されている情報を解釈して、ストア命令のため信号線を介してリクエストをリクエスト生成制御部545へ出力する。また、L2キャッシュ=ヒットのストア命令のためアドレスとデータを、信号線を介してL2キャッシュDA543へ通知する。L2キャッシュDA543は、通知されたアドレスとデータを用いて格納されているデータを更新する。リクエスト生成制御部545は、命令のオペコード、アドレス、データなどの情報を付加してリクエストを生成し、信号線を介してL3キャッシュ600のリクエスト制御部601へ出力する。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、オペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュのヒット・ミス判定部606は、L3キャッシュ=ヒットとして判定する。ヒット・ミス判定部606は、信号線を介してリクエスト制御部601にL3キャッシュ=ヒットのためL3キャッシュDA603へストア命令の実行を要求する。
リクエスト制御部601は、ストア命令のアドレスとデータとヒットしたWAYを、信号線を介してL3キャッシュAA602とL3キャッシュDA603へ通知する。また、ストア命令のアドレスとコア番号を出力しL2キャッシュ保持情報605のチェックを要求する。L3キャッシュAA602は、ヒットしたWAYのキャッシュ状態をmodified=1に更新する。L3キャッシュDA603は、通知されたアドレスとデータを用いて格納されているデータを更新する。L2キャッシュ保持情報605は、信号線を介して無効化制御部608へ出力される。無効化制御部608は、ストア命令のリクエスト要求元のコア以外が該当データを保持していた場合(ここではコアnが該当データを保持していたとする)は、信号線を介してコアn(n500)のL2キャッシュ無効化制御部(図示せず)にL2キャッシュ無効化の要求を出力する。
コアnのL2キャッシュ無効化制御部は、インデックスアドレスとWAY情報を用いて、信号線を介してコアnのL2キャッシュアドレスアレイ(図示せず)のVbitを無効化する。上記無効化の動作により、コアnが該当データをロード命令でアクセスした場合に、L1キャッシュ=ヒットあるいはミスかつL2キャッシュ=ミスになり、L3キャッシュまでロード命令のリクエストが出力されるため、キャッシュのコヒーレンシ維持が可能になる。
ケース2(L1キャッシュ=ヒット、L2キャッシュ=ミス、L3キャッシュ=ヒット)
L1キャッシュ520のヒット・ミス判定部525は、L1キャッシュ=ミスとして判定する。ヒット・ミス判定部525は、信号線を介してリクエスト制御部521にリクエスト出力を要求する。リクエスト制御部521は、信号線を介してリクエスト生成制御部526にリクエストを出力する。リクエスト生成制御部526は、命令のオペコード、アドレス、データ、L2キャッシュ=ミスなどの情報を付加してリクエストを生成し、信号線を介してL2キャッシュ540のリクエスト制御部541へ出力する。
L2キャッシュ540のリクエスト制御部541は、リクエストに付加されている情報を解釈して、ストア命令のため信号線を介してリクエストをリクエスト生成制御部545へ出力する。リクエスト生成制御部545は、命令のオペコード、アドレス、データなどの情報を付加してリクエストを生成し、信号線を介してL3キャッシュ600のリクエスト制御部601へ出力する。L3キャッシュ以降の動作は、ケース1の動作と同じである。
ケース3(L1キャッシュ=ヒット、L2キャッシュ=ミス、L3キャッシュ=ミス)
L1キャッシュ520の動作は、ミス判定のためケース2の動作と同じである。
L2キャッシュ540の動作は、ミス判定のためケース2の動作と同じである。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbittとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュ600のヒット・ミス判定部606は、L3キャッシュ=ミスかつ空きWAYありとして判定する。ヒット・ミス判定部606は、信号線を介してリクエスト制御部601にL3キャッシュ=ミスのためメモリリードのリクエスト出力を要求する。リクエスト制御部601は、信号線を介してリクエスト生成制御部607にリクエストを出力する。リクエスト生成制御部607は、命令のオペコード、アドレスなどの情報を付加してリクエスト(ロード)を生成し、信号線を介してメモリ620へ出力する。
メモリ620は、リクエスト(ロード)のため、信号線を介して対象アドレスのリプライデータを出力する。
L3キャッシュ600では、メモリ620からのリプライデータをL3キャッシュDA603へ格納し、ラインサイズ分のデータの最終要素を示す情報を受け取ると、L3キャッシュAA602のVbitを有効にする。また、L3キャッシュAA602のVbitが有効になると、リクエスト制御部601はストア命令のアドレスとデータと更新したWAYを、信号線を介してL3キャッシュAA602とL3キャッシュDA603へ通知する。L3キャッシュAA602は、更新したWAYのキャッシュ状態をmodified=1に更新する。L3キャッシュDA603は、通知されたアドレスとデータを用いて格納されているデータを更新する。
ケース4(L1キャッシュ=ミス、L2キャッシュ=ヒット、L3キャッシュ=ヒット)
L1キャッシュ520の動作は、ミス判定のためケース2の動作と同じである。
L2キャッシュ540の動作は、ヒット判定のためケース1の動作と同じである。
L3キャッシュ600の動作は、ヒット判定のためケース1の動作と同じである。
ケース5(L1キャッシュ=ミス、L2キャッシュ=ミス、L3キャッシュ=ヒット)
L1キャッシュ520の動作は、ミス判定のためケース2の動作と同じである。
L2キャッシュ540の動作は、ミス判定のためケース2の動作と同じである。
L3キャッシュ600の動作は、ヒット判定のためケース1の動作と同じである。
ケース6(L1キャッシュ=ミス、L2キャッシュ=ミス、L3キャッシュ=ミス)
L1キャッシュ520の動作は、ミス判定のためケース2の動作と同じである。
L2キャッシュ540の動作は、ミス判定のためケース2の動作と同じである。
L3キャッシュ600の動作は、ミス判定のためケース3の動作と同じである。
ここで、参考として、本発明と比較される技術の場合の動作を、図10に示す。この場合は、4種類のケースが存在する。
上記のケース以外の動作として、L3キャッシュ=ミスの場合にWAYが全て使用中で、有効データのリプレースが必要な場合の動作が存在する。ただし、一般的なライトバック方式のキャッシュの動作と同様であり、本発明特有の動作ではないため説明は簡略化する。
ケース7(ライトバック動作なし)
L1キャッシュ520、L2キャッシュ540の動作は、上記で説明した各ヒット・ミスの動作に従う。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュのヒット・ミス判定部606は、L3キャッシュ=ミスかつ全WAY使用中を検出すると、リプレースのポリシー(例えば、LRUなど)に従いWAYの中からリプレース対象WAYを1つ選択する。リプレース対象WAYのキャッシュ状態がmodified=0(メモリの内容とキャッシュの内容が一致の状態)の場合には、リクエスト制御部601へライトバック動作なしのリプレースを要求する。リクエスト制御部601は、L3キャッシュAA602の対象WAYのVbitを無効化する。また、L2キャッシュとL3キャッシュのコヒーレンシを維持するために、L2キャッシュ保持情報605のチェックを実施する。無効化制御部608は、各コアのL2キャッシュで使用中の場合に各コアに無効化の要求を出力し、L2キャッシュ無効化制御部546がL2キャッシュAA542のVbitを無効化する。
上記の動作により、L3キャッシュ600に1WAY分の空きができリプレースは完了する。この後は、通常のL3キャッシュミス(ケース3と同等)として動作する。L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、オペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュ600のヒット・ミス判定部606は、L3キャッシュ=ミスかつ空きWAYありとして判定する。ヒット・ミス判定部606は、信号線を介してリクエスト制御部601にL3キャッシュ=ミスのためメモリリードのリクエスト出力を要求する。リクエスト制御部601は、信号線を介してリクエスト生成制御部607にリクエストを出力する。リクエスト生成制御部607は、命令のオペコード、アドレスなどの情報を付加してリクエスト(ロード)を生成し、信号線を介してメモリ620へ出力する。メモリ以降の動作は、ケース3の動作と同じになる。
ケース8(ライトバック動作あり)
L1キャッシュ520、L2キャッシュ540の動作は、上記で説明した各ヒット・ミスの動作に従う。
L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、命令のオペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュのヒット・ミス判定部606は、L3キャッシュ=ミスかつ全WAY使用中を検出すると、リプレースのポリシー(例えば、LRUなど)に従い、WAYの中からリプレース対象WAYを1つ選択する。リプレース対象WAYのキャッシュ状態がmodified=1(メモリの内容とキャッシュの内容が不一致の状態)の場合には、リクエスト制御部601へライトバック動作ありのリプレースを要求する。
リクエスト制御部601は、L3キャッシュAA602の対象WAYのVbitを無効化する。また、L2キャッシュとL3キャッシュのコヒーレンシを維持するために、L2キャッシュ保持情報605のチェックを実施する。無効化制御部608は、各コアのL2キャッシュで使用中の場合に、各コアに無効化の要求を出力し、L2キャッシュ無効化制御部546がL2キャッシュAA542のVbitを無効化する。さらに、リクエスト制御部601は、信号線を介してリクエスト生成制御部607に命令のオペコード、アドレスなどの情報を出力する。また、L3キャッシュDA603のリプレース対象WAYのL3キャッシュラインサイズ分のデータのリードを出力する。L3キャッシュDA603は、信号線を介してリードデータをリクエスト生成制御部607へ出力する。リクエスト生成制御部607は、命令のオペコード、アドレス、データなどの情報を付加してリクエスト(ストア)を生成し、信号線を介してメモリ620へ出力する。メモリ620は、リクエスト(ストア)のため対象アドレスにデータを格納する。
上記の動作により、L3キャッシュ600に1WAY分の空きができリプレースは完了する。この後は、通常のL3キャッシュミス(ケース3と同等)として動作する。L3キャッシュ600のリクエスト制御部601は、リクエストに付加されている情報を解釈して、オペコード、アドレスなどの情報を、信号線を介してL3キャッシュAA602、ヒット・ミス判定部606へ出力する。L3キャッシュAA602は、インデックスアドレスを用いて登録されているタグアドレスとVbitとキャッシュ状態を、信号線を介してヒット・ミス判定部606に出力する。L3キャッシュ600のヒット・ミス判定部606は、L3キャッシュ=ミスかつ空きWAYありとして判定する。ヒット・ミス判定部606は、信号線を介してリクエスト制御部601にL3キャッシュ=ミスのためメモリリードのリクエスト出力を要求する。リクエスト制御部601は、信号線を介してリクエスト生成制御部607にリクエストを出力する。リクエスト生成制御部607は、命令のオペコード、アドレスなどの情報を付加してリクエスト(ロード)を生成し、信号線を介してメモリ620へ出力する。メモリ以降の動作は、ケース3の動作と同じになる。
以上に説明したように、本発明においては以下に記載するような効果を持つ。階層キャッシュメモリを備えるプロセッサにおいて、上位キャッシュのデータは下位キャッシュに含まれるという関係が成り立つインクルーシブ・キャッシュを実現する場合に、上位キャッシュと下位キャッシュの両方の状態を用いてキャッシュのヒット・ミス判定を行うことで、上位キャッシュと下位キャッシュ間の包含関係を維持できる。これにより、上位キャッシュ用の無効化制御回路の実装が不要になる。
具体的な回路削減効果を計算すると、「L1キャッシュ:容量=64KB、4WAYセットアソシアティブ、ラインサイズ=64B」の場合に、L1キャッシュ専用の無効化制御としてL1キャッシュAAのコピーを実装すると、(34bit(タグアドレス)+1bit(Vbit))×256(インデックス)×4(WAY)=35840bitの記憶領域を削減できる。また、ベクトルプロセッサでは、同時に無効化制御を並列に実施すると仮定すると、8〜32個を並列に実行すると35840×8〜32=280K〜1120Kbitとさらに大きな記憶領域を削減できる。
本実施例では、キャッシュ構成を例示したが、L1キャッシュ、L2キャッシュ、L3キャッシュの容量、WAY数、ラインサイズ、ライト命令実行時のポリシー(ライトスルー方式、ライトバック方式)、ストア命令キャッシュミス時のアロケート方式(ライトアロケートのあり・なし)などは、キャッシュ制御回路を適切に実装すれば自由に構成可能であり限定されるものではない。L2キャッシュとL3キャッシュのコヒーレンシ維持の方法は、ディレクトリ方式以外のスヌープ方式など他の方式も可能である。
また、階層キャッシュとしては、2階層以上のキャッシュが存在すれば良い。本実施例では、3階層のキャッシュ構成で説明を行ったが、L3キャッシュが存在しない図11に示すL1キャッシュ151,161とL2キャッシュ152,162の2階層のキャッシュ構成であってもよい。また、L4キャッシュを備えるなど、4階層以上のキャッシュ構成も可能である。
また、コア数は1個からn個まで自由に構成可能であり限定されるものではない。コア数が1個の場合は、他コアのストア命令によるコヒーレンシ制御が不要になるが、例えばL3キャッシュのWAY数がL2キャシュのWAY数より少ない構成時に、L3キャッシュのリプレース発生によるL2キャッシュの無効化が発生すると、L1キャッシュ=ヒット、かつ、L2キャッシュ=ミスというケースになる可能性があるためである。ベクトル命令を実行可能なベクトルプロセッサでも、本実施例と同様なキャッシュを持っていれば実装が可能である。
<実施形態2>
次に、本発明の第2の実施形態を、図12を参照して説明する。図12は、実施形態2におけるプロセッサの構成を示すブロック図である。なお、本実施形態におけるプロセッサは、実施形態1で説明したプロセッサの構成の概略を示している。
本実施形態におけるプロセッサ800は、上位キャッシュメモリ811と下位キャッシュメモリ812とを有し、上位キャッシュメモリに記憶されているデータが下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリ810を備えている。これに加え、プロセッサ800は、所定のデータへのアクセス時に、上位キャッシュメモリ811と下位キャッシュメモリ812とに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部820と、上位キャッシュメモリ811と下位キャッシュメモリ812とに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、上述したインクルーシブ状態となるよう制御する制御部830と、を備えている。
なお、上記キャッシュヒット判定部820と制御部830とは、キャッシュメモリ制御装置を構成しており、階層キャッシュメモリ810内に実装されていてもよく、階層キャッシュメモリ810の外部に装備されていてもよい。そして、キャッシュヒット判定部820と制御部830とは、演算装置でプログラムが実行されることで構築される。
上記構成のプロセッサによると、所定のデータへのアクセス時に、まず、キャッシュヒット判定部820が、上位キャッシュメモリ811と下位キャッシュメモリ812とに対するキャッシュヒット/ミスを判定する。そして、制御部830が、上位キャッシュメモリ811と下位キャッシュメモリ812とに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、上位キャッシュメモリ811と下位キャッシュメモリ812とがインクルーシブ状態となるよう制御する。
これにより、本発明では、上位キャッシュと下位キャッシュの両方の状態を用いてキャッシュのヒット・ミス判定を行うことで、上位キャッシュと下位キャッシュ間の包含関係を維持することができる。これにより、上位キャッシュ用の無効化制御回路の実装が不要になり、回路の増加と制御の複雑化を抑制することができる。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるプロセッサ、キャッシュメモリ制御装置、プログラム、キャッシュメモリ制御方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
上位キャッシュメモリと下位キャッシュメモリとを有し、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリと、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記インクルーシブ状態となるよう制御する制御部と、
を備えた、
プロセッサ。
(付記2)
付記1に記載のプロセッサであって、
前記キャッシュヒット判定部は、前記下位キャッシュメモリがキャッシュミスの場合に、前記上位キャッシュメモリをキャッシュミスと判定する、
プロセッサ。
(付記3)
付記2に記載のプロセッサであって、
前記キャッシュヒット判定部は、前記下位キャッシュメモリがキャッシュミスである場合に、前記上位キャッシュメモリがキャッシュヒットであっても当該上位キャッシュメモリをキャッシュミスと判定する、
プロセッサ。
(付記4)
付記1乃至3のいずれかに記載のプロセッサであって、
前記制御部は、前記上位キャッシュメモリ及び前記下位キャッシュメモリがキャッシュミスと判定された場合に、前記下位キャッシュメモリよりもさらに下位のメモリに格納されているデータを用いて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態とするよう制御する、
プロセッサ。
(付記5)
付記1乃至4のいずれかに記載のプロセッサであって、
前記制御部は、前記上位キャッシュメモリがキャッシュミスであり、前記下位キャッシュメモリがキャッシュヒットであると判定された場合に、前記下位キャッシュメモリに記憶されているデータを前記上位キャッシュメモリに格納して前記インクルーシブ状態とするよう制御する、
プロセッサ。
(付記6)
付記1乃至5のいずれかに記載のプロセッサであって、
前記上位キャッシュメモリに記憶されているデータを無効にする手段を設けずに、前記下位キャッシュメモリに記憶されているデータを無効にする無効化手段を設けた、
プロセッサ。
(付記7)
付記1乃至6のいずれかに記載のプロセッサであって、
前記上位キャッシュメモリに、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定する前記キャッシュヒット判定部を備えた、
プロセッサ。
(付記8)
上位キャッシュメモリと下位キャッシュメモリとを有する階層キャッシュメモリに対して、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態となるよう制御するキャッシュメモリ制御装置であって、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態となるよう制御する制御部と、
を備えた、
キャッシュメモリ制御装置。
(付記9)
上位キャッシュメモリと下位キャッシュメモリとを有する階層キャッシュメモリに対して、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態となるよう制御するキャッシュメモリ制御装置に、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態となるよう制御する制御部と、
を実現させるためのプログラム。
(付記10)
上位キャッシュメモリと下位キャッシュメモリとを有し、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリを備えたプロセッサによるキャッシュメモリ制御方法であって、
所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定し、
前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記インクルーシブ状態となるよう制御する、
キャッシュメモリ制御方法。
(付記11)
付記10に記載のキャッシュメモリ制御方法であって、
前記下位キャッシュメモリがキャッシュミスの場合に、前記上位キャッシュメモリをキャッシュミスと判定する、
キャッシュメモリ制御方法。
(付記12)
付記11に記載のキャッシュメモリ制御方法であって、
前記下位キャッシュメモリがキャッシュミスである場合に、前記上位キャッシュメモリがキャッシュヒットであっても当該上位キャッシュメモリをキャッシュミスと判定する、
キャッシュメモリ制御方法。
(付記13)
付記10乃至13のいずれかに記載のキャッシュメモリ制御方法であって、
前記上位キャッシュメモリ及び前記下位キャッシュメモリがキャッシュミスと判定された場合に、前記下位キャッシュメモリよりもさらに下位のメモリに格納されているデータを用いて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態とするよう制御する、
キャッシュメモリ制御方法。
(付記14)
付記10乃至13のいずれかに記載のキャッシュメモリ制御方法であって、
前記上位キャッシュメモリがキャッシュミスであり、前記下位キャッシュメモリがキャッシュヒットであると判定された場合に、前記下位キャッシュメモリに記憶されているデータを前記上位キャッシュメモリに格納して前記インクルーシブ状態とするよう制御する、
キャッシュメモリ制御方法。
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
100,110 コア
101,111 L1キャッシュ
102,112 L2キャッシュ
120 L3キャッシュ
130 メモリ
150,160 コア
151,161 L1キャッシュ
152,162 L2キャッシュ
170 メモリ
200,n200 コア
201 命令制御部
202 演算制御部
220 L1キャッシュ
221 リクエスト制御部
222 L1キャッシュアドレスアレイ
223 L1キャッシュアドレスアレイコピー
224 L1キャッシュデータアレイ
225 リプライ制御部
226 ヒット・ミス判定部
227 リクエスト生成制御部
228 L1キャッシュ無効化制御部
240 L2キャッシュ
241 リクエスト制御部
242 L2キャッシュアドレスアレイ
243 L2キャッシュデータアレイ
244 リプライ制御部
245 ヒット・ミス判定部
246 リクエスト生成制御部
247 L2キャッシュ無効化制御部
300 L3キャッシュ
301 リクエスト制御部
302 L3キャッシュアドレスアレイ
303 L3キャッシュデータアレイ
304 リプライ制御部
305 L2キャッシュ保持情報
306 ヒット・ミス判定部
307 リクエスト生成制御部
308 無効化制御部
320 メモリ
500,n500 コア
501 命令制御部
502 演算制御部
520 L1キャッシュ
521 リクエスト制御部
522 L1キャッシュアドレスアレイ
523 L1キャッシュデータアレイ
524 リプライ制御部
525 ヒット・ミス判定部
526 リクエスト生成制御部
540 L2キャッシュ
541 リクエスト制御部
542 L2キャッシュアドレスアレイ
543 L2キャッシュデータアレイ
544 リプライ制御部
545 リクエスト生成制御部
546 L2キャッシュ無効化制御部
600 L3キャッシュ
601 リクエスト制御部
602 L3キャッシュアドレスアレイ
603 L3キャッシュデータアレイ
604 リプライ制御部
605 L2キャッシュ保持情報
606 ヒット・ミス判定部
607 リクエスト生成制御部
608 無効化制御部
620 メモリ
800 プロセッサ
810 階層キャッシュメモリ
811 上位キャッシュメモリ
812 下位キャッシュメモリ
820 キャッシュヒット判定部
830 制御部

Claims (10)

  1. 上位キャッシュメモリと下位キャッシュメモリとを有し、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリと、
    所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
    前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記インクルーシブ状態となるよう制御する制御部と、
    を備えた、
    プロセッサ。
  2. 請求項1に記載のプロセッサであって、
    前記キャッシュヒット判定部は、前記下位キャッシュメモリがキャッシュミスの場合に、前記上位キャッシュメモリをキャッシュミスと判定する、
    プロセッサ。
  3. 請求項2に記載のプロセッサであって、
    前記キャッシュヒット判定部は、前記下位キャッシュメモリがキャッシュミスである場合に、前記上位キャッシュメモリがキャッシュヒットであっても当該上位キャッシュメモリをキャッシュミスと判定する、
    プロセッサ。
  4. 請求項1乃至3のいずれかに記載のプロセッサであって、
    前記制御部は、前記上位キャッシュメモリ及び前記下位キャッシュメモリがキャッシュミスと判定された場合に、前記下位キャッシュメモリよりもさらに下位のメモリに格納されているデータを用いて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態とするよう制御する、
    プロセッサ。
  5. 請求項1乃至4のいずれかに記載のプロセッサであって、
    前記制御部は、前記上位キャッシュメモリがキャッシュミスであり、前記下位キャッシュメモリがキャッシュヒットであると判定された場合に、前記下位キャッシュメモリに記憶されているデータを前記上位キャッシュメモリに格納して前記インクルーシブ状態とするよう制御する、
    プロセッサ。
  6. 請求項1乃至5のいずれかに記載のプロセッサであって、
    前記上位キャッシュメモリに記憶されているデータを無効にする手段を設けずに、前記下位キャッシュメモリに記憶されているデータを無効にする無効化手段を設けた、
    プロセッサ。
  7. 請求項1乃至6のいずれかに記載のプロセッサであって、
    前記上位キャッシュメモリに、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定する前記キャッシュヒット判定部を備えた、
    プロセッサ。
  8. 上位キャッシュメモリと下位キャッシュメモリとを有する階層キャッシュメモリに対して、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態となるよう制御するキャッシュメモリ制御装置であって、
    所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
    前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態となるよう制御する制御部と、
    を備えた、
    キャッシュメモリ制御装置。
  9. 上位キャッシュメモリと下位キャッシュメモリとを有する階層キャッシュメモリに対して、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態となるよう制御するキャッシュメモリ制御装置に、
    所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定するキャッシュヒット判定部と、
    前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記上位キャッシュメモリと前記下位キャッシュメモリとが前記インクルーシブ状態となるよう制御する制御部と、
    を実現させるためのプログラム。
  10. 上位キャッシュメモリと下位キャッシュメモリとを有し、前記上位キャッシュメモリに記憶されているデータが前記下位キャッシュメモリに含まれる状態であるインクルーシブ状態とされる階層キャッシュメモリを備えたプロセッサによるキャッシュメモリ制御方法であって、
    所定のデータへのアクセス時に、前記上位キャッシュメモリと前記下位キャッシュメモリとに対するキャッシュヒット/ミスを判定し、
    前記上位キャッシュメモリと前記下位キャッシュメモリとに対するそれぞれのキャッシュヒット/ミスの判定結果に基づいて、前記インクルーシブ状態となるよう制御する、
    キャッシュメモリ制御方法。
JP2017061109A 2017-03-27 2017-03-27 プロセッサ Active JP6249120B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017061109A JP6249120B1 (ja) 2017-03-27 2017-03-27 プロセッサ
US15/893,918 US10565111B2 (en) 2017-03-27 2018-02-12 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017061109A JP6249120B1 (ja) 2017-03-27 2017-03-27 プロセッサ

Publications (2)

Publication Number Publication Date
JP6249120B1 true JP6249120B1 (ja) 2017-12-20
JP2018163571A JP2018163571A (ja) 2018-10-18

Family

ID=60685650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017061109A Active JP6249120B1 (ja) 2017-03-27 2017-03-27 プロセッサ

Country Status (2)

Country Link
US (1) US10565111B2 (ja)
JP (1) JP6249120B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556477B2 (en) * 2018-06-15 2023-01-17 Arteris, Inc. System and method for configurable cache IP with flushable address range
US11989132B2 (en) * 2022-07-14 2024-05-21 Arm Limited Early cache querying

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007373A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 半導体装置
JP2002073415A (ja) * 2000-07-31 2002-03-12 Hewlett Packard Co <Hp> 遅延無効化コンピュータキャッシュシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5579473A (en) * 1994-07-18 1996-11-26 Sun Microsystems, Inc. Interface controller for frame buffer random access memory devices
US6138208A (en) 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US6812929B2 (en) * 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer
US6836272B2 (en) * 2002-03-12 2004-12-28 Sun Microsystems, Inc. Frame buffer addressing scheme
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
US7669009B2 (en) * 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US7444544B2 (en) * 2006-07-14 2008-10-28 International Business Machines Corporation Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US7552288B2 (en) * 2006-08-14 2009-06-23 Intel Corporation Selectively inclusive cache architecture
US7702858B2 (en) * 2007-06-05 2010-04-20 Apple Inc. Latency reduction for cache coherent bus-based cache
US8041894B2 (en) * 2008-02-25 2011-10-18 International Business Machines Corporation Method and system for a multi-level virtual/real cache system with synonym resolution
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US9323527B2 (en) * 2010-10-15 2016-04-26 International Business Machines Corporation Performance of emerging applications in a virtualized environment using transient instruction streams
US20140136784A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Enhanced cache coordination in a multi-level cache
US9304919B2 (en) * 2013-05-31 2016-04-05 Advanced Micro Devices, Inc. Detecting multiple stride sequences for prefetching
GB2516477A (en) * 2013-07-24 2015-01-28 Ibm Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007373A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 半導体装置
JP2002073415A (ja) * 2000-07-31 2002-03-12 Hewlett Packard Co <Hp> 遅延無効化コンピュータキャッシュシステム

Also Published As

Publication number Publication date
JP2018163571A (ja) 2018-10-18
US10565111B2 (en) 2020-02-18
US20180276125A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
US9251095B2 (en) Providing metadata in a translation lookaside buffer (TLB)
JP5328748B2 (ja) キャッシュメモリにおけるキャッシュラインの置き換え
US7698508B2 (en) System and method for reducing unnecessary cache operations
KR100681974B1 (ko) 계층적 캐쉬 라인 교체를 위한 방법, 시스템, 및 장치
US9218286B2 (en) System cache with partial write valid states
US8607024B2 (en) Virtual address cache memory, processor and multiprocessor
US7305522B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
US6823427B1 (en) Sectored least-recently-used cache replacement
WO2009146027A1 (en) Adaptive cache organization for chip multiprocessors
EP2926257B1 (en) Memory management using dynamically allocated dirty mask space
US7809889B2 (en) High performance multilevel cache hierarchy
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US7380068B2 (en) System and method for contention-based cache performance optimization
JP2018005395A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US11604733B1 (en) Limiting allocation of ways in a cache based on cache maximum associativity value
Gaur et al. Base-victim compression: An opportunistic cache compression architecture
JP6249120B1 (ja) プロセッサ
US20090254712A1 (en) Adaptive cache organization for chip multiprocessors
US9639467B2 (en) Environment-aware cache flushing mechanism
CN117099087A (zh) 用于处理储存请求的装置和方法
US20230418745A1 (en) Technique to enable simultaneous use of on-die sram as cache and memory
JPH11143774A (ja) キャッシュ制御機構
US20230325317A1 (en) Reducing probe filter accesses for processing in memory requests

Legal Events

Date Code Title Description
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: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6249120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150