JP4821887B2 - コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法 - Google Patents

コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法 Download PDF

Info

Publication number
JP4821887B2
JP4821887B2 JP2009136818A JP2009136818A JP4821887B2 JP 4821887 B2 JP4821887 B2 JP 4821887B2 JP 2009136818 A JP2009136818 A JP 2009136818A JP 2009136818 A JP2009136818 A JP 2009136818A JP 4821887 B2 JP4821887 B2 JP 4821887B2
Authority
JP
Japan
Prior art keywords
address
tag
physical address
index
request
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
Application number
JP2009136818A
Other languages
English (en)
Other versions
JP2010282520A (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 JP2009136818A priority Critical patent/JP4821887B2/ja
Priority to US12/794,912 priority patent/US8578103B2/en
Publication of JP2010282520A publication Critical patent/JP2010282520A/ja
Application granted granted Critical
Publication of JP4821887B2 publication Critical patent/JP4821887B2/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/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

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)

Description

本発明は、コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法に関し、特に階層メモリのコヒーレンシを制御するコヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法に関する。
階層メモリの一種であるキャッシュのコヒーレンシを保証する技術として、キャッシュ階層の構造やシステムの構成に対応してさまざまな関連技術が知られている。
例えば、物理論理アドレス変換TLBに関連する技術が、特許文献1に開示されている。特許文献1の演算処理装置は、論理ページアドレスタグを含む物理アドレスアレイを有している。そして、この演算処理装置は、メインメモリの内容が変更されてその物理アドレスが通知された場合に、物理アドレスアレイを用いてこの物理アドレスから論理アドレスを生成し、この論理アドレスに基づいてレベル1キャッシュの無効化処理を行う。
特開平10−283259号公報
しかしながら、上述した関連技術及び先行技術文献に開示された技術においては、命令実行部からのレベル1キャッシュアクセスのレイテンシを増大させることなく、バストラフィックを抑えてコヒーレンシを保証しようとする場合、ハードウェア量が大きくなるという問題点があった。
その理由を以下に説明する。
例えば、複数のキャッシュ階層としてプロセッサ個別に設けられたレベル1キャッシュと複数のプロセッサで共有されるレベル2キャッシュとを有するマルチプロセッサシステムにおいては、レベル1キャッシュを物理アドレスでマッピングする方法が用いられている。
図10は、このようなマルチプロセッサシステムにおいて、レベル1キャッシュとレベル2キャッシュとが非包含関係にある場合の構成を示す図である。タグコピー部425は、レベル1キャッシュのタグのコピーを用いて、他プロセッサによるストアリクエストに含まれる物理アドレスに基づいて対応するレベル1キャッシュに無効化処理を指示する。
また図11は、同様なマルチプロセッサシステムにおいて、レベル2キャッシュがレベル1キャッシュのデータを包含する関係にある場合の構成を示す図である。レベル2キャッシュ435は、タグ部に共有情報部436を有し、いずれのプロセッサが当該ラインをキャッシングしているかという情報を保持する。レベル2キャッシュの制御部は、この共有情報部の内容に基づいて対応するレベル1キャッシュに無効化処理を指示する。
しかし、上述のようにレベル1キャッシュを物理アドレスでマッピングする方法では、命令実行部421がレベル1キャッシュ423にアクセスする場合、論理物理アドレス変換TLB(Translation Look−aside Buffer)422による処理を必要とするため、アクセスレイテンシが大きいという問題点がある。
このような問題点に対する対策として、レベル1キャッシュを論理アドレスでマッピングし、レベル1キャッシュに搭載された物理アドレスタグを用いる方法がある。
図12は、プロセッサ内にレベル1キャッシュの物理アドレスタグを実装した場合の構成を示す図である。例えばプロセッサPA440は、プロセッサPB440からストアリクエストを受信すると、プロセッサPA440の物理アドレスタグコピー447を参照してストアリクエストに含まれる物理アドレスタグのヒット/ミスを検索する。物理アドレスタグは、レベル1キャッシュ446からロードリクエストが発行され、論物変換TLB445にて論理物理アドレス変換されたときにレベル1キャッシュのエントリに対応する物理アドレスタグコピー447のエントリに登録される。そして、ストアリクエストの物理アドレスタグが物理アドレスタグコピー447のいずれかのエントリにヒットした場合、プロセッサPA440は対応するレベル1キャッシュのエントリを無効化する。
しかし、この方法は、各プロセッサがストアリクエストを発行する度に他のプロセッサへこのストアリクエストを送信するために、バストラフィックが大となり、消費電力も大きくなるという問題点がある。
前述した問題点に対する他の対策として、レベル1キャッシュを論理アドレスでマッピングし、レベル2キャッシュ側に搭載された物理アドレスタグに基づいて論理アドレスを生成する方法がある。図13は、レベル2キャッシュ側にプロセッサ450それぞれに対応する物理アドレスタグコピー456と物理論理アドレス変換TLB455とを実装した構成を示す図である。
このように、結局のところ、コヒーレンシ制御においてレイテンシ及びバストラフィック増大の問題を解決するには、特許文献1に開示された技術である物理アドレスから論理アドレスを生成する手段即ち図13に示す物理論理アドレス変換TLB455などの手段が必要となり、ハードウェア量が大きくなるという別の問題点を招くことになる。
本発明の目的は、上述した問題点を解決するコヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法を提供することにある。
本発明のコヒーレンシ制御システムは、セットアソシアティブ方式の第1の記憶手段の第1のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第2のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第2の記憶手段の物理アドレスに変換する論理物理アドレス変換部と、少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第1の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信するリクエスト出力部と、
受信した前記ロードリクエストに含まれるウェイ番号と物理アドレス内の第2のタグ及びインデックスアドレスとに基づいて、前記第2の記憶手段の領域と前記第1の記憶手段の領域との関連状態を記憶する対応状態記憶部と、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第2のタグと前記対応状態記憶部に記憶されている内容とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する無効化指示部とを有する。
本発明のコヒーレンシ制御装置は、セットアソシアティブ方式の第1の記憶手段の第1のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを変換した第2のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第2の記憶手段の物理アドレスと、当該物理アドレスに対応する前記論理アドレスで指定される前記第1の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを受信した場合に、当該ロードリクエストに含まれるウェイ番号と物理アドレス内の第2のタグ及びインデックスアドレスとに基づいて、前記第2の記憶手段の領域と前記第1の記憶手段の領域との関連状態を記憶する対応状態記憶部と、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第2のタグと前記対応状態記憶部に記憶されている内容とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する無効化指示部とを有する。
本発明のコヒーレンシ制御方法は、セットアソシアティブ方式の第1の記憶手段の第1のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第2のタグと前記インデックスアドレス前記オフセットアドレスとを含む第2の記憶手段の物理アドレスに変換し、少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第1の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信し、受信した前記ロードリクエストに含まれるウェイ番号と物理アドレス内の第2のタグ及びインデックスアドレスとに基づいて、前記第2の記憶手段の領域と前記第1の記憶手段の領域との関連状態を記憶し、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第2のタグと前記記憶した前記第2の記憶手段の領域と前記第1の記憶手段の領域との関連状態とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する。
本発明によれば、階層メモリアクセス時におけるレイテンシ及びバストラフィックの増大とハードウェア量の増加とを抑えて、階層メモリのコヒーレンシを保証することが可能になる。
本発明の第1の実施形態の構成を示すブロック図である。 本発明の第1乃至第3の実施形態におけるレベル1キャッシュアレイの構造を示す図である。 本発明の第1乃至第3の実施形態における論理アドレスの構造を示す図である。 本発明の第1乃至第3の実施形態における物理アドレスの構造を示す図である。 本発明の第1の実施形態におけるレベル1キャッシュタグコピーの構造を示す図である。 本発明の第1の実施形態における無効化指示部の構成を示すブロック図である。 本発明の第2の実施形態の構成を示すブロック図である。 本発明の第2の実施形態におけるアドレスアレイの構造を示す図である。 本発明の第3の実施形態の構成を示すブロック図である。 関連するマルチプロセッサシステムの構成を示すブロック図である。 関連するマルチプロセッサシステムの構成を示すブロック図である。 関連するマルチプロセッサシステムの構成を示すブロック図である。 関連するマルチプロセッサシステムの構成を示すブロック図である。
次に、本発明の実施形態について図面を参照して詳細に説明する。
図1は、本発明の第1の実施形態の構成を示すブロック図である。図1を参照すると、本実施形態に係るコヒーレンシ制御システム101は、複数のプロセッサ200、複数の無効化指示部340及びレベル2キャッシュ(第2の記憶手段とも呼ばれる)800を備える。
各プロセッサ200は、レベル1キャッシュ(第1の記憶手段とも呼ばれる)210、論物変換TLB(論理物理アドレス変換部とも呼ばれる)220及びリクエスト出力部230を含む。各プロセッサ200は、予め図1に示すようなプロセッサ名(プロセッサの識別子とも呼ばれる)を付与されている。尚、以下の説明において各プロセッサ200を区別する必要がある場合、例えばプロセッサ名がPAのプロセッサ200は、プロセッサPA200と記載する。
レベル1キャッシュ210は、例えば、2ウェイセットアソシアティブ方式、ライトスルーキャッシュ構成であり、論理アドレス601を用いて管理されるキャッシュである。レベル1キャッシュ210は、図2に示すようなレベル1キャッシュアレイ211を有している。レベル1キャッシュアレイ211は、有効フラグ215と論理アドレスタグを保持する論理アドレスタグ部216とデータを保持するデータ部217とを含む複数のレベル1キャッシュエントリ(第1の記憶手段の領域とも呼ばれる)212から構成されている。尚、有効フラグ215は、対応するレベル1キャッシュエントリ212が有効であるか、無効であるかを示すフラグである。そして、各レベル1キャッシュエントリ212は、インデックスアドレス213及びウェイ番号214によって一意に識別される。
また、レベル1キャッシュ210は、受信した無効化指示(後述する)と無効化インデックスアドレス(後述する)に基づいて決定されるレベル1キャッシュエントリ212の有効フラグ215を無効状態にする。
尚、レベル1キャッシュ210の構成は、2ウェイセットアソシアティブ方式に限定されるものではなく、N(Nは2以上の整数)ウェイセットアソシアティブ方式であってよい。
論物変換TLB220は、図3に示すような論理アドレス601を図4に示すような物理アドレス602に変換する。論理アドレス601は、レベル1キャッシュ210の論理アドレスタグ(第1のタグとも呼ばれる)603とインデックスアドレス604とオフセットアドレス605とからなる。物理アドレス602は、物理アドレスタグ(第2のタグとも呼ばれる)606とインデックスアドレス607とオフセットアドレス608とからなる。論物変換TLB220による変換において、インデックスアドレス607とオフセットアドレス608とは、それぞれインデックスアドレス604とオフセットアドレス605との値がそのまま使用される。
リクエスト出力部230は、物理アドレス602及びこの物理アドレス602に関連するウェイ番号214を含むロードリクエストを送信する。この物理アドレス602に関連するウェイ番号214とは、物理アドレス602に対応する論理アドレス601に含まれる論理アドレスタグ603の値を「LAT1」とした時、同一値「LAT1」を保持する論理アドレスタグ部216を含むレベル1キャッシュエントリ212が所属するウェイのウェイ番号214である。
無効化指示部340は、図5に示すようなレベル1キャッシュタグコピー(対応状態記憶部とも呼ばれる)350を含む。尚、レベル1キャッシュタグコピー350を含む無効化指示部340は、コヒーレンシ制御装置と呼ばれることもある。
無効化指示部340は、受信したロードリクエストに含まれるインデックスアドレス607とウェイ番号214とに基づいて決定したレベル1キャッシュタグコピー350の領域に、同じく受信したロードリクエストに含まれる物理アドレスタグ606を書き込む。即ち、無効化指示部340は、レベル1キャッシュアレイ211における論理アドレスタグ部216の内容及びインデックスアドレス213とレベル1キャッシュタグコピー350における物理アドレスタグ部356の内容及びインデックスアドレス353とがそれぞれ同じ値である場合、これらに従って決定されるレベル1キャッシュ210の領域とレベル2キャッシュ800の領域とが対応するようにロードリクエストを処理する。
また、無効化指示部340は、受信したストアリクエストに含まれる物理アドレスタグ606と、レベル1キャッシュタグコピー350の内の同じく受信したストアリクエストに含まれるインデックスアドレス607の値で指定されるインデックスアドレス353に対応した物理アドレスタグ部356のいずれかとの一致を検出する。そして、無効化指示部340は、この一致を検出した場合に、無効化インデックスアドレスとしてインデックスアドレス353及びウェイ番号354に対応する無効化指示を送信する。
尚、前述したとおり、この無効化指示を受信したレベル1キャッシュ210は、同時に受信した無効化インデックスアドレスを無効化すべきレベル1キャッシュエントリ212のインデックスアドレス213として認識する。
レベル1キャッシュタグコピー350は、複数の物理アドレスタグ部356からなるウェイ0レベル1キャッシュタグコピー358と同じく複数の物理アドレスタグ部356からなるウェイ1レベル1キャッシュタグコピー359とから構成されている。そして、各物理アドレスタグ部356は、インデックスアドレス353及びウェイ番号354によって一意に識別される。
レベル2キャッシュ800は、レベル2物理アドレスを用いて管理されるキャッシュであり、複数のプロセッサ200によって共有される。尚、レベル2物理アドレスの全体の値は、物理アドレス602全体の値と同じであるが、その構造は異なっている。例えば、レベル2物理アドレスのインデックスアドレスのビット幅とインデックスアドレス607のビット幅とは一致している必要はなく、レベル2物理アドレスのオフセットアドレスのビット幅とオフセットアドレス608のビット幅とも一致している必要は無い。
次に、図6を参照して無効化指示部340の動作を詳細に説明する。
図6を参照すると、無効化指示部340は、コマンドレジスタ341、アドレスレジスタ342、ウェイ番号レジスタ343、デコーダ348、レベル1キャッシュタグコピー用RAM(Random Access Memory)344、レベル1キャッシュタグコピー用RAM345、判定回路346及び判定回路347を含む。
レベル1キャッシュタグコピー用RAM344及びレベル1キャッシュタグコピー用RAM345は、図5に示すレベル1キャッシュタグコピー350のウェイ0レベル1キャッシュタグコピー358及びウェイ1レベル1キャッシュタグコピー359の部分をそれぞれ記憶する。
まず、ロードリクエストに対する処理即ちレベル1キャッシュタグコピー350を書き込む場合の動作を説明する。
前述したように、レベル1キャッシュ210はライトスルーキャッシュ構成であるため、レベル1キャッシュエントリ212を開く際に、リクエスト出力部230がロードリクエストを共有キャッシュであるレベル2キャッシュ800に送信する。リクエスト出力部230は、このロードリクエストにレベル1キャッシュアレイ211の2つのウェイの内の有効化するレベル1キャッシュエントリ212のウェイ番号214を含めて送信する。
無効化指示部340において、ロードリクエストを受信すると、コマンドレジスタ341はロードリクエストであることを示す情報(例えばコマンドコード)を保持する。同時に、アドレスレジスタ342は、物理アドレス602を保持する。さらにウェイ番号レジスタ343は、ウェイ番号214を保持する。
次に、デコーダ348は、ロードリクエスト信号を出力する。
次に、レベル1キャッシュタグコピー用RAM344及びレベル1キャッシュタグコピー用RAM345それぞれが、ウェイ番号レジスタ343に保持されたウェイ番号214に従って選択/非選択を決定する。続けて、選択を決定したレベル1キャッシュタグコピー用RAM344またはレベル1キャッシュタグコピー用RAM345は、複数のインデックスアドレス353のいずれか1つをアドレスレジスタ342に保持されたインデックスアドレス607に従って選択する。続けて、選択を決定したレベル1キャッシュタグコピー用RAM344またはレベル1キャッシュタグコピー用RAM345は、選択したインデックスアドレス353の物理アドレスタグ部356に、ロードリクエスト信号に応じてアドレスレジスタ342に保持されている物理アドレスタグ606を記憶する。
次に、ストアリクエストに対する処理即ち無効化指示を出力する場合の動作を説明する。
無効化指示部340において、ストアリクエストを受信すると、コマンドレジスタ341はストアリクエストであることを示す情報(例えばコマンドコード)を保持する。同時に、アドレスレジスタ342は、物理アドレス602を保持する。
次に、デコーダ348は、ストアリクエスト信号を出力する。
次に、レベル1キャッシュタグコピー用RAM344及びレベル1キャッシュタグコピー用RAM345それぞれが、複数の物理アドレスタグ部356のいずれか1つをアドレスレジスタ342に保持されたインデックスアドレス607に従って選択する。
次に、判定回路346及び判定回路347が、ストアリクエスト信号に応じてそれぞれ選択された物理アドレスタグ部356の内容とアドレスレジスタ342に保持されている物理アドレスタグ606とを比較判定する。続けて、判定回路346及び判定回路347は、物理アドレスタグ部356の内容と物理アドレスタグ606とが一致していた場合は、無効化指示としてそれぞれウェイ0ヒット信号及びウェイ1ヒット信号を送信する。同時に、アドレスレジスタ342に保持されたインデックスアドレス607が、無効化インデックスアドレスとして送信される。
上述した本実施形態における効果は、レベル1キャッシュアクセスのレイテンシの増大、バストラフィックの増加、及びハードウェア量の増加を抑えて、レベル1キャッシュのコヒーレンシを保証することが可能になる点である。
その理由は、無効化指示部が論理アドレスのインデックスアドレス部分を変更せずに変換された物理アドレスとウェイ番号とに基づいて決定したレベル1キャッシュタグコピーの領域に、同じくロードリクエストに含まれる物理アドレスタグを書き込み、レベル1キャッシュタグコピーに基づいてレベル1キャッシュに無効化指示を送信するようにしたからである。
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
前述した第1の実施形態は、レベル2キャッシュ800がレベル1キャッシュ210と非包含関係にある場合にも動作可能なように、レベル1キャッシュタグコピー350を含む構成である。一方、本実施形態は、レベル2キャッシュ810(後述する)がレベル1キャッシュ210の内容を包含していることを前提とした実施形態であり、第1の実施形態に比べて簡易な構成である。
図7は、本発明の第2の実施形態の構成を示すブロック図である。図7を参照すると、本実施形態に係るコヒーレンシ制御システム102は、複数のプロセッサ200及びレベル2キャッシュ810を備える。
プロセッサ200は、第1の実施形態のプロセッサ200と同じ構成及び機能を有する。
レベル2キャッシュ810は、レベル2物理アドレスを用いて管理されるキャッシュであり、複数のプロセッサ200によって共有される。
レベル2キャッシュ810は、図8に示すようなアドレスアレイ(対応状態記憶部とも呼ばれる)811及び無効化指示部840を有している。尚、アドレスアレイ811及び無効化指示部840とは、併せてコヒーレンシ制御装置と呼ばれることもある。
アドレスアレイ811は、インデックスアドレス813に対応付けられた複数のアドレス情報812から構成されている。各アドレス情報812は、エントリフラグ821〜828及び物理アドレスタグ部831を含む。
エントリフラグ821〜828は、対応するレベル2キャッシュ(第2の記憶手段の領域とも呼ばれる)810のエントリに関連するレベル1キャッシュエントリ212がレベル1キャッシュ210のいずれのウェイに開かれているかを示す情報である。エントリフラグ821〜828は、各プロセッサ200のレベル1キャッシュ210の各ウェイ番号214にそれぞれ対応している。例えば、レベル2キャッシュ810のエントリが関連するレベル1キャッシュエントリ212において有効化されている場合、対応するエントリフラグ821〜828が「1」に設定されるものとする。
無効化指示部840は、受信したロードリクエストに含まれる物理アドレスタグ606とインデックスアドレス607とにそれぞれ対応する物理アドレスタグ部831の内容とインデックスアドレス813に従ってアドレス情報812を選択する。続けて、無効化指示部840は、選択したアドレス情報812のエントリフラグ821〜828の内のいずれか1つを、受信したロードリクエストに含まれるウェイ番号214とロードリクエストの送信元のプロセッサ200のプロセッサ名とに基づいて選択する。さらに続けて、無効化指示部840は、選択したエントリフラグ821〜828を「1」に設定する。
また、無効化指示部840は、受信したストアリクエストに含まれる物理アドレスタグ606とインデックスアドレス607とにそれぞれ対応する物理アドレスタグ部831の内容とインデックスアドレス813に従ってアドレス情報812を選択する。続けて、無効化指示部840は、選択したアドレス情報812のエントリフラグ821〜828の内「1」に設定されているエントリフラグ821〜828を検出する。さらに続けて、無効化指示部840は、検出したエントリフラグ821〜828に対応するプロセッサ200に対して、同じく検出したエントリフラグ821〜828に対応するウェイ番号214に対応する無効化指示と無効化インデックスアドレスとして選択したアドレス情報812のインデックスアドレス813とを送信する。
上述した本実施形態における効果は、第1の実施形態の効果に加えて、レベル2キャッシュがレベル1キャッシュに対して包含関係にある場合、さらにハードウェア量を削減することを可能にできる点である。
その理由は、レベル2キャッシュのアドレスアレイに物理アドレスタグとインデックスアドレスとウェイ番号とを関連付けて記憶するようにしたからである。
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。本実施形態は、本発明の基本的な要素のみで構成された実施形態である。
図9は、本実施形態の構成を示すブロック図である。図9を参照すると、本実施形態に係るコヒーレンシ制御システム103は、論物変換TLB120とリクエスト出力部130と無効化指示部140と対応状態記憶部150とを備えている。尚、無効化指示部140と対応状態記憶部150とは、併せてコヒーレンシ制御装置と呼ばれることもある。
論物変換TLB120は、第1の論物変換TLB220と同じ構成及び機能を有する。
リクエスト出力部130は、第1のリクエスト出力部230と同じ構成及び機能を有する。
対応状態記憶部150は、受信したロードリクエストに基づいて、物理アドレスタグ606とインデックスアドレス607とウェイ番号214とを関連付けて、レベル2キャッシュのエントリとレベル1キャッシュエントリ212との対応状態を記憶する。
無効化指示部140は、受信したストアリクエストに含まれる物理アドレスタグ606と対応状態記憶部150に記憶されている内容とに基づいて、インデックスアドレス607とウェイ番号214に対応する無効化指示とをレベル1キャッシュに送信する。
上述した本実施形態における効果は、レベル1キャッシュアクセスのレイテンシの増大、バストラフィックの増加、及びハードウェア量の増加を抑えて、レベル1キャッシュのコヒーレンシを保証することが可能になる点である。
その理由は、論理アドレスのインデックスアドレス部分を変更せずに変換された物理アドレスとウェイ番号とに基づいて、レベル2キャッシュ側に物理アドレスタグとインデックスアドレスとウェイ番号とを関連付けて記憶し、レベル1キャッシュタグコピーに基づいてレベル1キャッシュに無効化指示を送信するようにしたからである。
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が1個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたり、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
さらに、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作の実行タイミングと他の動作の実行タイミングとの一部乃至全部が重複していたりしていてもよい。
さらに、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
尚、以上説明した各実施形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
また、各構成要素の物理的な構成は、以上の実施形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。
本発明は、マルチプロセッサシステムおける階層構造を有するキャッシュのコヒーレンシ制御などに適用できる。
101 コヒーレンシ制御システム
102 コヒーレンシ制御システム
103 コヒーレンシ制御システム
120 論物変換TLB
130 リクエスト出力部
140 無効化指示部
150 対応状態記憶部
200 プロセッサ
210 キャッシュ
211 レベル1キャッシュアレイ
212 レベル1キャッシュエントリ
213 インデックスアドレス
214 ウェイ番号
215 有効フラグ
216 論理アドレスタグ部
217 データ部
220 論物変換TLB
230 リクエスト出力部
340 無効化指示部
341 コマンドレジスタ
342 アドレスレジスタ
343 ウェイ番号レジスタ
344 キャッシュタグコピー用RAM
345 レベル1キャッシュタグコピー用RAM
346 判定回路
347 判定回路
348 デコーダ
350 キャッシュタグコピー
353 インデックスアドレス
354 ウェイ番号
356 物理アドレスタグ部
358 キャッシュタグコピー
359 キャッシュタグコピー
601 論理アドレス
602 物理アドレス
603 論理アドレスタグ
604 インデックスアドレス
605 オフセットアドレス
606 物理アドレスタグ
607 インデックスアドレス
608 オフセットアドレス
800 キャッシュ
810 キャッシュ
811 アドレスアレイ
812 アドレス情報
813 インデックスアドレス
831 物理アドレスタグ部
840 無効化指示部
821〜828 エントリフラグ

Claims (5)

  1. セットアソシアティブ方式の第1の記憶手段の第1のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第2のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第2の記憶手段の物理アドレスに変換する論理物理アドレス変換部と、
    少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第1の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信するリクエスト出力部と、
    前記ロードリクエストを受信した場合に、受信した前記ロードリクエストに含まれる物理アドレス内の第2のタグを、前記ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスとに基づいて決定された領域に記憶し、前記第2の記憶手段の領域と前記第1の記憶手段の領域との関連状態を記憶する対応状態記憶部と、
    前記ロードリクエストであることを示す情報あるいはストアリクエストであることを示す情報を保持するコマンドレジスタと、前記ロードリクエスト及び前記ストアリクエストに含まれる物理アドレスを保持するアドレスレジスタと、前記ロードリクエストに含まれるウェイ番号を保持するウェイ番号レジスタと、ロードリクエスト信号あるいはストアリクエスト信号を出力するデコーダと、前記ストアリクエストに含まれる物理アドレス内の第2のタグと前記対応状態記憶部に記憶されている第2のタグとを比較判定する判定回路とを含み、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第2のタグと前記対応状態記憶部に記憶されている第2のタグの内の当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応した領域に記憶されている第2のタグの内のいずれかとの一致を検出した場合に、前記インデックスアドレスと前記一致した第2のタグが記憶されている領域のウェイ番号に対応する無効化信号を無効化指示として出力する無効化指示部と
    を有することを特徴とするコヒーレンシ制御システム。
  2. 前記対応状態記憶部は、前記第2の記憶手段の有するアドレスアレイに含まれる前記インデックスアドレスと前記ウェイ番号と前記プロセッサの識別子との組み合わせに対応する複数のエントリフラグの内、前記ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスと当該ロードリクエストを送信したプロセッサの識別子とに基づいて選択されたエントリフラグに前記第2の記憶手段のエントリが開かれている状態であることを記憶し、
    前記無効化指示部は、前記ストアリクエストに含まれる物理アドレス内の第2のタグと当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応する前記対応状態記憶部に記憶されている第2のタグとの一致を検出した場合に、当該インデックスアドレスと当該第2のタグに対応するエントリフラグの内の前記第2の記憶部のエントリが開かれている状態であることを記憶しているエントリフラグに対応するウェイ番号とを無効化指示として、当該エントリフラグに対応するプロセッサの識別子を有するプロセッサに出力する
    ことを特徴とする請求項1記載のコヒーレンシ制御システム。
  3. 受信した前記無効化指示に基づいて選択した前記第1の記憶手段の領域を無効化する第1の記憶手段を有することを特徴とする請求項1又は2記載のコヒーレンシ制御システム。
  4. セットアソシアティブ方式の第1の記憶手段の第1のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを変換した第2のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第2の記憶手段の物理アドレスと、当該物理アドレスに対応する前記論理アドレスで指定される前記第1の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを受信した場合に、受信した前記ロードリクエストに含まれる物理アドレス内の第2のタグを、当該ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスとに基づいて決定された領域に記憶し、前記第2の記憶手段の領域と前記第1の記憶手段の領域との関連状態を記憶する対応状態記憶部と、
    前記ロードリクエストであることを示す情報あるいはストアリクエストであることを示す情報を保持するコマンドレジスタと、前記ロードリクエスト及び前記ストアリクエストに含まれる物理アドレスを保持するアドレスレジスタと、前記ロードリクエストに含まれるウェイ番号を保持するウェイ番号レジスタと、ロードリクエスト信号あるいはストアリクエスト信号を出力するデコーダと、前記ストアリクエストに含まれる物理アドレス内の第2のタグと前記対応状態記憶部に記憶されている第2のタグとを比較判定する判定回路とを含み、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第2のタグと前記対応状態記憶部に記憶されている第2のタグの内の当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応した領域に記憶されている第2のタグの内のいずれかとの一致を検出した場合に、前記インデックスアドレスと前記一致した第2のタグが記憶されている領域のウェイ番号に対応する無効化信号を無効化指示として出力する無効化指示部と
    を有することを特徴とするコヒーレンシ制御装置。
  5. 前記対応状態記憶部は、前記第2の記憶手段の有するアドレスアレイに含まれる前記インデックスアドレスと前記ウェイ番号と前記プロセッサの識別子との組み合わせに対応する複数のエントリフラグの内、前記ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスと当該ロードリクエストを送信したプロセッサの識別子とに基づいて選択されたエントリフラグに前記第2の記憶手段のエントリが開かれている状態であることを記憶し、
    前記無効化指示部は、前記ストアリクエストに含まれる物理アドレス内の第2のタグと当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応する前記対応状態記憶部に記憶されている第2のタグとの一致を検出した場合に、当該インデックスアドレスと当該第2のタグに対応するエントリフラグの内の前記第2の記憶部のエントリが開かれている状態であることを記憶しているエントリフラグに対応するウェイ番号とを無効化指示として、当該エントリフラグに対応するプロセッサの識別子を有するプロセッサに出力する
    ことを特徴とする請求項4記載のコヒーレンシ制御装置。
JP2009136818A 2009-06-08 2009-06-08 コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法 Expired - Fee Related JP4821887B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009136818A JP4821887B2 (ja) 2009-06-08 2009-06-08 コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法
US12/794,912 US8578103B2 (en) 2009-06-08 2010-06-07 Coherency control system, coherency control apparatus and coherency control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009136818A JP4821887B2 (ja) 2009-06-08 2009-06-08 コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法

Publications (2)

Publication Number Publication Date
JP2010282520A JP2010282520A (ja) 2010-12-16
JP4821887B2 true JP4821887B2 (ja) 2011-11-24

Family

ID=43535655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009136818A Expired - Fee Related JP4821887B2 (ja) 2009-06-08 2009-06-08 コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法

Country Status (2)

Country Link
US (1) US8578103B2 (ja)
JP (1) JP4821887B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935485B2 (en) * 2011-08-08 2015-01-13 Arm Limited Snoop filter and non-inclusive shared cache memory
JP2014006807A (ja) * 2012-06-26 2014-01-16 Fujitsu Ltd 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法
GB2507759A (en) * 2012-11-08 2014-05-14 Ibm Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache
GB2507758A (en) 2012-11-08 2014-05-14 Ibm Cache hierarchy with first and second level instruction and data caches and a third level unified cache

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH071484B2 (ja) * 1987-07-14 1995-01-11 日本電気株式会社 情報処理装置
JP2976980B2 (ja) * 1988-05-06 1999-11-10 富士通株式会社 キャッシュ制御方式
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
JPH03216744A (ja) * 1990-01-22 1991-09-24 Fujitsu Ltd 内蔵キャッシュ・メモリ制御方式
JPH04174042A (ja) * 1990-06-07 1992-06-22 Fujitsu Ltd マルチプロセッサシステム
JPH0535592A (ja) * 1991-07-29 1993-02-12 Toshiba Corp キヤツシユメモリ装置
JPH05265970A (ja) * 1992-03-19 1993-10-15 Toshiba Corp マルチプロセッサシステム
JPH0635801A (ja) * 1992-07-16 1994-02-10 Fujitsu Ltd 階層メモリ制御方式
US5902642A (en) 1997-05-12 1999-05-11 Nayoya Oilchemcial Co., Ltd. Masking member made of engineering plastic
US6574698B1 (en) * 1998-04-17 2003-06-03 International Business Machines Corporation Method and system for accessing a cache memory within a data processing system
US6684297B2 (en) * 2001-04-11 2004-01-27 Sun Microsystems, Inc. Reverse directory for facilitating accesses involving a lower-level cache
WO2004046932A1 (ja) * 2002-11-21 2004-06-03 Fujitsu Limited キャッシュ制御方法及びプロセッサシステム

Also Published As

Publication number Publication date
US20110035531A1 (en) 2011-02-10
JP2010282520A (ja) 2010-12-16
US8578103B2 (en) 2013-11-05

Similar Documents

Publication Publication Date Title
US10248572B2 (en) Apparatus and method for operating a virtually indexed physically tagged cache
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
JP3740195B2 (ja) データ処理装置
US6772316B2 (en) Method and apparatus for updating and invalidating store data
EP1388065B1 (en) Method and system for speculatively invalidating lines in a cache
EP2011010B1 (en) Virtually-tagged instruction cache with physically-tagged behavior
US20080222387A1 (en) Correction of incorrect cache accesses
US12038840B2 (en) Multi-level cache security
KR20160130707A (ko) 캐시의 콘텐츠 트랙킹
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US9304929B2 (en) Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
CN110046107B (zh) 存储器地址转换装置和方法
JP4821887B2 (ja) コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法
US6253285B1 (en) Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing
US8688952B2 (en) Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
JP5319049B2 (ja) キャッシュシステム
US20110004730A1 (en) Cache memory device, processor, and control method for cache memory device
GB2307319A (en) Dual-directory virtual cache
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
JP2005108262A (ja) データ処理装置
KR19990079976A (ko) 빅팀캐쉬의 상태비트에 따른 무효화 순위결정 로직장치
JPH0469748A (ja) 論理キャッシュメモリ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

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: 20110809

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: 20110822

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4821887

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: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees