JP2009140376A - 特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム - Google Patents

特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム Download PDF

Info

Publication number
JP2009140376A
JP2009140376A JP2007317850A JP2007317850A JP2009140376A JP 2009140376 A JP2009140376 A JP 2009140376A JP 2007317850 A JP2007317850 A JP 2007317850A JP 2007317850 A JP2007317850 A JP 2007317850A JP 2009140376 A JP2009140376 A JP 2009140376A
Authority
JP
Japan
Prior art keywords
address
snoop
cache
entry
snoop filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007317850A
Other languages
English (en)
Inventor
Yutaro Jono
雄太郎 情野
亮 ▲高▼瀬
Ryo Takase
Shisei Fujiwara
至誠 藤原
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007317850A priority Critical patent/JP2009140376A/ja
Publication of JP2009140376A publication Critical patent/JP2009140376A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】マルチプロセッサシステムにおいて、キャッシュ状態情報が一つのスヌープフィルタに登録されるため、特定アドレス領域のアクセス頻度に依存して、前記特定アドレス領域以外の別アドレス領域における性能が低下してしまう。
【解決手段】指定されたアドレス領域に対応したスヌープフィルタを複数構成する。メインメモリへのリード要求をトリガとして、要求されるキャッシュラインアドレスに対応するスヌープフィルタのみに当該アドレスと各キャッシュメモリのキャッシュ状態を登録する。前記特定アドレス領域以外の別アドレス領域に対応するスヌープフィルタにおいて、前記特定アドレス領域へのアクセスによるキャッシュ状態情報追い出し、前記追い出しによって発生する、追い出された当該アドレスへの再アクセスの発生がなくなる。
【選択図】図1

Description

本発明は、1つのノードに、メインメモリのデータの写しを格納できるキャッシュメモリと、前記キャッシュメモリをそれぞれ持つ1つ以上のプロセッサと、ノード間を結ぶノード制御装置を有し、2つ以上のノードで構成されるマルチプロセッサコンピュータシステムにおけるスヌープフィルタに関する。
プロセッサ自身がキャッシュメモリを内蔵する場合等、システム内に複数のプロセッサを有するマルチプロセッサシステムには、キャッシュメモリをプロセッサ毎に備えたものがある。システム内の全てのプロセッサとキャッシュメモリは、同一のメインメモリを共用でき、メモリ内の特定のラインは、メモリと複数のプロセッサのキャッシュメモリに同時に存在できる。したがって、キャッシュメモリにキャッシュされている特定のラインのコピーはすべて同一で最新でなければならない。この特性はデータの一貫性、またはコヒーレンシと呼ばれる。複数のキャッシュメモリ間のコヒーレンシを維持するプロトコルは、キャッシュ・コヒーレンシ・プロトコルと呼ばれる。
一般的に、キャッシュメモリのデータ格納構造にはセットアソシアティブ方式が採用されている。この場合、インデックスと呼ばれるキャッシュラインアドレスのサブセットを用いて格納するキャッシュメモリ位置を指定し、次にタグと呼ばれるラインアドレスの上位ビットからなる残りのセットをデータと共に格納する。インデックスを用いるキャッシュメモリでは、特定のアドレスに対応するデータは、インデックスにより指定される1セットのキャッシュメモリ内にのみ配置することができる。インデックスが同一のキャッシュラインが2つ以上格納される場合に、そのキャッシュメモリはセットアソシアティブであると呼ばれ、格納できる数をウェイ数と呼ぶ。
セットアソシアティブキャッシュメモリにおいて、インデックスが等しいラインがウェイ数分格納されていて、プロセッサがキャッシュメモリに存在しない新規ラインを要求した場合、キャッシュメモリから既存ラインを追い出す必要がある。追い出すラインの選択には最も使われていないラインを選択するLRU(Least Recently Used)などが用いられている。
ラインには唯一の「オーナー」が存在し得る。キャッシュメモリがラインをオーナーとして所有している場合、プロセッサのラインの変更が許可される。いかなるキャッシュ・コヒーレンシ・プロトコルも、キャッシュラインの最新のコピーをその最新のオーナー(存在する場合)から取得し、このデータのコピーをリクエスタに提供する必要がある。ラインを変更する場合は、リクエスタが所有権を取得する必要があり、共有されているコピーをすべて無効にする必要がある。
ラインのオーナーが存在する場所を確認するには、一般的にスヌープ方式と呼ばれる方法がある。この方法はオーナーが不明であり、全キャッシュメモリに問い合わせ(スヌープブロードキャスト)を行って要求されたラインの最新コピーの位置を決定する必要がある。スヌープブロードキャストに対する、全キャッシュメモリからのレスポンスにより、最終的にラインの最新のコピーが存在する場所が特定され、リクエスタにコピーが提供される。このプロトコルでは、要求毎に全キャッシュメモリに問い合わせを行うため、マルチプロセッサシステムではトラフィックが増加しシステム性能を悪化させてしまうこととなる。
上記の問題を解決するためにスヌープフィルタを使用する方法がある。スヌープフィルタは、システム内でアクセスされたキャッシュラインに関するアドレス情報(タグ)と各キャッシュメモリのライン保持情報のセットを記憶し、スヌープ送信の制御を行う。スヌープフィルタは、ラインのコピーを所有しているキャッシュメモリ以外に対するスヌープをフィルタリングする。システム内のすべてのキャッシュメモリにスヌープブロードキャストする必要がなくなるため、スヌープ方式のみのキャッシュ・コヒーレンシ制御よりはシステム性能が向上する。たとえば、特許文献1では、複数プロセッサとメインメモリを備えるノードを複数構成させたマルチプロセッサシステムにおいて,あるノードのキャッシュメモリに存在する全てのデータのキャッシュ状態を示すコピータグを持ち、データが最新の値のときのみキャッシュメモリへのスヌープを行うスヌープフィルタが開示されている。ブロードキャストされたスヌープ要求を受けたノードでは、まずコピータグを検索し、該当するラインが登録されているかどうかを検索する。もし検索でミスヒットした場合やキャッシュ状態が無効である場合には、当該ラインはプロセッサによってキャッシュされていないことを示すため、スヌープ送信を行う必要はなく、フィルタリングされる。
特開平10−222423号公報
上述例では、いかなるキャッシュラインアドレスに関するキャッシュ状態情報も、一つのスヌープフィルタに登録されているため、特定アドレス領域のアクセスの集中により、前記特定アドレス領域とは無関係のキャッシュラインのキャッシュ状態情報がスヌープフィルタエントリから追い出されると、スヌープフィルタに対応しているキャッシュメモリからも当該キャッシュラインは追い出されてしまう。その結果、前記アドレス領域において、追い出されたラインアドレスへの再アクセスが発生するため、システムのトラフィックが増加し、性能低下につながってしまう問題がある。
そこで、本発明の課題は、複数ノードを持ち、各ノードに複数のプロセッサ及びキャッシュメモリを有するマルチプロセッサコンピュータシステムにおいて、システムの性能低下を抑止するための、改善されたスヌープフィルタを提供することである。
複数のノードから成り、各ノードはメインメモリのデータの写しを格納するキャッシュメモリを有する1つ以上のプロセッサと各ノードを接続するノード制御装置を備えたマルチプロセッサコンピュータシステムにおいて、
前記ノード制御装置はスヌープ送信を制御するスヌープフィルタを有し、該スヌープフィルタは、プロセッサがメインメモリに対するリード要求を発行する際のリードメッセージの受信をトリガとして、リードメッセージの対象となるキャッシュラインアドレスをデコードするアドレスデコード機構と、前記キャッシュラインアドレスを登録するアドレス登録機構と、前記アドレス登録機構により登録されたアドレスに対して、各キャッシュメモリの状態を登録するキャッシュ状態登録機構と、アドレス登録機構により既に登録されているアドレスと、前記リードメッセージの対象となるキャッシュラインアドレスがヒットした場合に、キャッシュ状態がラインの無所有を示しているキャッシュメモリに対して、スヌープ送信をフィルタリングするスヌープ処理機構を備えたことを特徴とするマルチプロセッサコンピュータシステム。
本発明では、従来のスヌープフィルタの機構を特定アドレス領域毎に分割して複数構成にすることで、特定アドレスに偏ったアクセスの集中などの場合において、前記特定アドレス領域以外のアドレス領域に関するキャッシュ状態情報の追い出しの発生を防ぐことができる。従って、前記追い出し発生を防いだアドレス領域内のアドレスへの再アクセスの発生を抑止する効果を持つ。その結果、従来のスヌープフィルタに比べて、システム内の特定アドレス領域へのアクセスが別のアドレス領域へのアクセスに干渉することがなくなるため、当該アドレス領域においてトラフィック増加による性能低下を防ぐことができる。
本発明の効果が期待できる例としては、論理パーティションで分割されているシステムにおいて、あるパーティションに属すメインメモリへのアクセスの集中により、共有されていない別パーティションのメインメモリのアドレスに関するキャッシュ保持情報がスヌープフィルタから失われることによって発生する、前記パーティションの性能低下を抑止するケース、また、データに関するアドレス領域への集中アクセスにより、コードに関するアドレス領域のキャッシュ保持情報が、スヌープフィルタから失われることによって発生する、計算性能の低下を抑止するケースなどへの効果が期待できる。
以下、本発明の実施例を図面を用いて説明する。
「システム構成」
図1は、本実施例に係るスヌープフィルタを持つマルチプロセッサシステムの構成を表すブロック図である。ノード100において、2つのメインメモリ130と、メインメモリのデータの写しを格納できるキャッシュメモリ121と、キャッシュメモリを備えた2つのプロセッサ120と、スヌープ発行機能を備えるスヌープフィルタ111を内蔵したノード制御装置110を有しており、ノード制御装置110とプロセッサ120a,120bは信号線140a,140bによりそれぞれ相互に接続され、プロセッサ120a,120b−メインメモリ130a,130b間は信号線141a,141bによりそれぞれ相互に接続され、通信を行う。本実施例では、ノード100と同じ機構を持つノード200の計2つのノードが信号線300により相互に接続され、通信を行うマルチプロセッサコンピュータシステムを構成するものとする。
なお、信号線140,141,240,241,300には、プロセッサからメインメモリへのラインの所有権取得を要求するリード、ノード制御装置からキャッシュメモリへのラインの所有権破棄を要求するスヌープ、キャッシュメモリからノード制御装置へのスヌープ後のキャッシュ状態を伝えるスヌープレスポンス、キャッシュメモリからメインメモリへのキャッシュライン追い出しに伴うライトバック、メインメモリからリード要求元への所望データのキャッシュラインを返送するデータレスポンスといったメッセージ信号が伝送される。また、前記システムは2つの論理パーティションに分割されており、パーティション1000には、プロセッサ120a,220a、メインメモリ130a,230a、パーティション2000には、プロセッサ120b,220b、メインメモリ130a,230aが属しており、パーティション1000,2000はノード制御装置110,210を共有しているものとする。
なお、本発明のスヌープフィルタを用いる場合において、必ずしも本実施例のようなシステム構成やメッセージ種にする必要はない。
「スヌープフィルタの構成」
図2は本実施例に係るスヌープフィルタの構成を説明するための説明図である。本実施例のスヌープフィルタでは、アドレスデコーダ3110と、論理スヌープフィルタ1110,2110を備える。
論理スヌープフィルタ1110は、パーティション1000に属すメインメモリ130,230aのアドレス領域に対して、論理スヌープフィルタ2110は、パーティション2000に属すメインメモリ130b,230bのアドレス領域に対して処理を行う。各論理スヌープフィルタと各パーティションのアドレス領域への対応付けはアドレスデコーダ3110により行われる。
アドレスデコーダ3110では、受信メッセージのアドレス信号117を入力とし、当該アドレスのメッセージを処理するための論理スヌープフィルタ選択信号を論理スヌープフィルタ1110,2110に出力する。
図3は本実施例に係るアドレスデコーダ3110のアドレス−論理スヌープフィルタマッピングテーブル3111を説明するための説明図である。このテーブルにより、入力アドレスを論理スヌープフィルタ選択信号にデコードする。入力されたキャッシュラインアドレスは、最初に、マップエントリ3112のアドレスマスク値3113により当該アドレス領域内を示す下位ビットがマスクされる。次に、前記マスクアドレスと当該アドレス領域を一意に示す比較アドレス3114とを比較する。これを全マップエントリに対して行い、ヒットした場合に、ヒットしたマップエントリに登録されている論理スヌープフィルタ番号3115を得る。この操作によってあるアドレス範囲のリクエストを一つの論理スヌープフィルタに対応付けることが出来る。
本実施例では、論理パーティション1000,2000のアドレス領域は、それぞれ論理スヌープフィルタ1110,2110に対応するものとする。また、受信メッセージは、必ず一つの論理スヌープフィルタが選択されて処理が行われるため、ある論理スヌープフィルタが有効になる場合、他の論理スヌープフィルタは無効となる信号をアドレスデコーダ3110は出力する。
論理スヌープフィルタ1110,2110は、受信メッセージ信号116を入力とし、スヌープ信号118,119をそれぞれ出力する。ただし、論理スヌープフィルタ選択信号が該当する論理スヌープフィルタを選択していない場合や、論理スヌープフィルタに対応しないメッセージの場合、スヌープ信号118,119は出力されない機構を持つ。
なお、本発明のスヌープフィルタを用いる場合において、必ずしも本実施例のスヌープフィルタの構成にする必要はない。
「論理スヌープフィルタの構造」
図4は本実施例に係る論理スヌープフィルタの構造を説明するための説明図である。本実施例の論理スヌープフィルタでは、エントリ部10と、アドレス比較部20と、エントリ登録部30と、メッセージ種判定部40と、スヌープ宛先選択部50と、スヌープ発行部60を備える。
エントリ部10は、当該キャッシュラインアドレスが登録されるアドレス部11と、登録アドレスに対して各プロセッサのキャッシュメモリが当該キャッシュラインを所有している場合に「0b1」、所有していない場合に「0b0」として登録されるキャッシュ状態部12を構成するエントリを複数個備える。エントリ部10では、エントリ登録部30にて出力したエントリ部操作信号を入力とし、前記エントリ部操作信号が、エントリへの書込みを示す場合、書込み指示された内容をアドレス部11またはキャッシュ状態部12に書込む。また、前記エントリ部操作信号が、エントリ内容の出力を示す場合、出力指示されたアドレス部11内の当該アドレス情報をスヌープ発行部60に、キャッシュ状態部12内の当該キャッシュ状態情報をスヌープ宛先選択部50に出力する。
アドレス比較部20では、エントリ部10のアドレス部11内のアドレスと受信メッセージのアドレス信号1を入力とし、その比較結果信号をエントリ登録部30とスヌープ宛先選択部50に対して出力する。
メッセージ種判定部40では、メッセージのメッセージ種コード信号3を入力とし、そのメッセージ種判定信号をエントリ登録部30とスヌープ宛先選択部50に対して出力する。
エントリ登録部30では、受信メッセージのアドレス信号1と、メッセージの送信元ID信号2と、アドレスデコーダ3110にて出力した論理スヌープフィルタ選択信号4と、メッセージ種判定部5にて出力したメッセージ種判定信号と、アドレス比較部20にて出力した比較結果信号を入力とする。なお、本実施例では、エントリ登録時に空エントリない場合、エントリを追い出し、空エントリを確保する機構を持つ。
論理スヌープフィルタ選択信号4が自論理スヌープフィルタを示し、メッセージ種判定信号がリードを示している場合において、アドレス比較部20の比較結果がヒットしていることを示している場合は、ヒットしたアドレスをスヌープ発行部60に、前記アドレスに対応するキャッシュ状態情報をスヌープ宛先選択部50に出力させるためのエントリ部操作信号をエントリ部10に出力する。さらに、当該エントリのキャッシュ状態部12に送信元IDに該当するプロセッサのキャッシュメモリのみのキャッシュ状態を書込むためのエントリ部操作信号をエントリ部10に出力する。また、アドレス比較部20の比較結果がミスヒットし、エントリ部10に空エントリがない場合、追い出し対象エントリのアドレスをスヌープ発行部60に、前記アドレスに対応するキャッシュ状態情報をスヌープ宛先選択部50に出力させるためのエントリ部操作信号をエントリ部10に出力する。さらに、エントリ部10の追い出し対象エントリのアドレス部11に、入力されたアドレスを、前記エントリのキャッシュ状態部12に、スヌープフィルタに対応している全キャッシュメモリのキャッシュ状態を書込むためのエントリ部操作信号をエントリ部10に出力する。但し、空エントリがある場合は、エントリ追い出しが発生しないため、追い出し対象エントリのアドレスやキャッシュ状態情報を出力させるためのエントリ部操作信号のエントリ部10への出力は行われない。この場合、エントリ部10の空エントリのアドレス部11に、入力されたアドレスを、前記エントリのキャッシュ状態部12に、スヌープフィルタに対応する全キャッシュメモリのキャッシュ状態を書込むためのエントリ部操作信号をエントリ部10に出力するのみとなる。
また、論理スヌープフィルタ選択信号4が自論理スヌープフィルタを示し、メッセージ種判定信号がスヌープを示している場合において、アドレス比較部20の比較結果がヒットしていることを示している場合は、ヒットしたアドレスをスヌープ発行部60に、前記アドレスに対応するキャッシュ状態情報をスヌープ宛先選択部50に出力させるためのエントリ部操作信号をエントリ部10に出力する。また、アドレス比較部20の比較結果がミスヒットした場合、何も出力されない。
また、論理スヌープフィルタ選択信号4が自論理スヌープフィルタを示し、メッセージ種判定信号がスヌープレスポンスを示している場合において、アドレス比較部20の比較結果がエントリ中でヒットしたことを示している場合のみ、ヒットしたアドレスに対応するエントリのキャッシュ状態部12に送信元IDに該当するプロセッサのキャッシュメモリのキャッシュ状態を書込むためのエントリ部操作信号をエントリ部10に出力する。その他のメッセージ種を示している場合、または、論理スヌープフィルタ選択信号4が自論理スヌープフィルタを示していない場合は、何も出力されない。
スヌープ宛先選択部50では、メッセージの送信元ID信号2と、エントリ10のキャッシュ状態部12内のキャッシュ状態情報と、アドレス比較部20にて出力した比較結果信号と、メッセージ種判定部40にて出力したメッセージ種判定信号と、アドレスデコーダ3110にて出力した論理スヌープフィルタ選択信号4を入力とする。
論理スヌープフィルタ選択信号4が自論理スヌープフィルタを示し、メッセージ種判定信号がリードもしくはスヌープを示している場合において、アドレス比較部20の比較結果がエントリ内でヒットしたことを示している場合は、エントリ部10のキャッシュ状態部12のキャッシュ状態情報より、ヒットしたキャッシュラインアドレスのキャッシュ状態が「0b1」のキャッシュメモリをスヌープ対象としたスヌープ宛先情報信号とスヌープ発行指示信号をスヌープ発行部60に出力する。また、アドレス比較部20の比較結果がエントリ内でミスヒットしたことを示している場合、メッセージ種判定信号がリードの場合のみ、エントリ部10のキャッシュ状態部12のキャッシュ状態情報より、追い出し対象エントリのキャッシュラインアドレスのキャッシュ状態が「0b1」のキャッシュメモリをスヌープ対象としたスヌープ宛先情報信号とスヌープ発行指示信号をスヌープ発行部60に出力する。但し、エントリ追い出しが発生しない場合やメッセージ種判定信号がスヌープの場合は、エントリ部10からは何も出力されないため、スヌープ発行部60へのスヌープ宛先情報信号とスヌープ発行指示信号は出力されない。
なお、メッセージ種がリードを示し、アドレス比較部20の比較結果がヒットを示す場合は、メッセージ発行元プロセッサであるリクエスタに関してはスヌープ対象とはならないため、メッセージの送信元IDに該当するキャッシュメモリはスヌープ宛先情報から除外される。また、論理スヌープフィルタ選択信号4が自論理スヌープフィルタを示していない場合、または、メッセージ種判定部がリード、スヌープ以外を検出した場合は、スヌープが発行されることはないため、スヌープ発行部60に対してスヌープ宛先情報信号及びスヌープ発行指示信号は出力されない。
スヌープ発行部60では、エントリ部10のアドレス部11内のアドレス情報と、スヌープ宛先選択部50にて出力したスヌープ宛先情報信号及びスヌープ発行指示信号を入力とする。スヌープ宛先情報は、スヌープ対象となるプロセッサのキャッシュメモリのID情報であり、そのIDのプロセッサのキャッシュメモリに対し、入力されたアドレス情報を対象とするスヌープ信号5が発行される。ただし、スヌープ発行指示信号が入力されないと、スヌープ発行は行われない。
なお、本発明のスヌープフィルタを用いる場合において、必ずしも本実施例のような論理スヌープフィルタの構造及び構成にする必要はない。
「論理スヌープフィルタの動作」
本実施例における論理スヌープフィルタは、リード、スヌープ、スヌープレスポンスメッセージ種信号を受信した際に動作する。受信した3つのメッセージは、最初にメッセージのアドレスがアドレス部11に登録されているエントリに存在しているか否かをアドレス比較部20により探索する。以下で、アドレス比較部20にてミスヒットした場合とヒットした場合の2つのケースにおける、各メッセージ受信時の動作を説明する。
[ケース1:ミスヒット]
リードメッセージ受信の場合
エントリ登録部30にて、リードアドレスをエントリ部10のアドレス部11に、メッセージ発行元プロセッサが持つキャッシュメモリに関するキャッシュ状態部12のキャッシュ状態情報を「0b1」、メッセージ発行元プロセッサ以外が持つキャッシュメモリに関するキャッシュ状態部12のキャッシュ状態情報を「0b0」として登録する。ただし、空エントリがない場合、追い出し対象エントリのアドレス部11のアドレスに対してキャッシュ状態部12における各キャッシュメモリのラインの所有・無所有の状態情報により、スヌープ宛先選択部50にて、スヌープフィルタが対応しているキャッシュメモリに関するキャッシュ状態情報が「0b1」のプロセッサのキャッシュメモリに対してはスヌープ送信を行うようスヌープ発行部60に指示する。
スヌープメッセージ受信の場合
ミスヒットした場合、入力アドレスのキャッシュラインはスヌープフィルタが対応している全キャッシュメモリにもキャッシュされていないことを意味するため、スヌープ発行部60に対するスヌープ送信指示は行われない。
スヌープレスポンスメッセージ受信の場合
スヌープレスポンスアドレスがミスヒットするケースは存在しない。なぜなら、スヌープレスポンスは、リード、または、スヌープ受信にて発生したスヌープのレスポンスであるため、スヌープレスポンス発生元のリード、スヌープにより当該アドレスは登録されていることになるためである。結果、必ずアドレス比較部20にてヒットする。
ただし、スヌープレスポンスアドレスは、リード、または、スヌープアドレスと同値であり、スヌープ発生時、全てのスヌープレスポンスを受信するまで、当該アドレスのスヌープフィルタエントリは追い出されないものとする。
[ケース2:ヒット]
リードメッセージ受信の場合
エントリ登録部30にてメッセージ発行元プロセッサが持つキャッシュメモリに関するキャッシュ状態部12のキャッシュ状態情報を「0b1」として登録するとともに、ヒットしたアドレスに対してキャッシュ状態部12における各キャッシュメモリのラインの所有・無所有の状態情報により、スヌープ宛先選択部50にて、メッセージ発行元プロセッサが持つキャッシュメモリ以外のキャッシュメモリに関するキャッシュ状態情報が「0b1」のプロセッサのキャッシュメモリに対してはスヌープ送信を行うようスヌープ発行部60に指示する。
スヌープメッセージ受信の場合
ヒットしたアドレスに対するキャッシュ状態部12における各キャッシュメモリのラインの所有・無所有の状態情報により、スヌープ宛先選択部50にてそのキャッシュ状態情報が「0b1」のプロセッサのキャッシュメモリに対してはスヌープ送信を行うようスヌープ発行部60に指示する。
スヌープレスポンスメッセージ受信の場合
エントリ登録部30にてキャッシュメモリ内のキャッシュ状態情報として、ラインを所有している場合には「0b1」、ラインを所有していない場合は「0b0」をヒットしたアドレスに関するキャッシュ状態部12に登録する。
なお、本発明のスヌープフィルタを用いる場合において、必ずしも本実施例のような論理スヌープフィルタの動作にする必要はない。
「動作例1:スヌープフィルタリング」
ノード100内のスヌープフィルタ111による、ノード100のプロセッサのキャッシュメモリに対するスヌープフィルタリングの動作例を示す。ただし、本動作例におけるラインアドレス0x40は論理パーティション1000内に属すメインメモリ230a、ラインアドレス0xC0は、論理パーティション2000内に属すメインメモリ230bのアドレスとする。
動作1−1 論理パーティション1000におけるリードメッセージ信号受信
図5は、システムの初期化後に、論理パーティション1000内において、プロセッサ120aがリモートノード200のメインメモリ230aのラインアドレス0x40に対するリードメッセージ信号1001を、ノード100が受信した際の、ノード100におけるスヌープフィルタ111の動作を示し、図6は図5の動作におけるスヌープフィルタ111のエントリ状態の遷移を示している。
スヌープフィルタ111がリードメッセージ信号1001を受信した場合、アドレスデコーダ3110によりリードアドレス0x40に対応する論理スヌープフィルタ1110が選択される。論理スヌープフィルタ1110において、エントリ部1111のアドレス部1112にリードアドレス0x40が存在しないため、論理スヌープフィルタ1110のアドレス比較部20にてミスヒットする。ミスヒットした場合、入力アドレスのキャッシュラインはプロセッサ120bのキャッシュメモリ121bにキャッシュされていないことを意味するため、スヌープ宛先選択部50はスヌープ発行をスヌープ発行部60に指示せず、スヌープメッセージ信号1002はフィルタリングされる。その結果、エントリ登録部30にて、リードアドレス0x40がエントリ30のアドレス部1112に、キャッシュメモリ121のキャッシュ状態情報がエントリ30のリードアドレス0x40に関するキャッシュ状態部1113に登録される。その後、ノード制御装置110により、ノード200のノード制御装置210に対し、リードメッセージ信号1003が送信される。本動作では、リクエスタとなるメッセージ送信元のプロセッサ120aのキャッシュメモリ121aはラインを取得するため、エントリ登録部30にて、キャッシュ状態部1113aには「0b1」が登録され、121bのキャッシュメモリにはミスヒット判定によりラインは所有していないことを示すため、キャッシュ状態部1113bには「0b0」が登録される。
動作1−2 論理パーティション2000におけるリードメッセージ信号受信
図7は、動作1−1後に、論理パーティション2000内において、プロセッサ120bがリモートノード200のメインメモリ230bのラインアドレス0xC0に対するリードメッセージ信号2001を、ノード100が受信した際の、ノード100におけるスヌープフィルタ111の動作を示し、図8は図7の動作におけるスヌープフィルタ111のエントリ状態の遷移を示している。
スヌープフィルタ111がリードメッセージ信号2001を受信した場合、アドレスデコーダ3110によりリードアドレス0xC0に対応する論理スヌープフィルタ2110が選択される。論理スヌープフィルタ2110において、エントリ部2111のアドレス部2112にリードアドレス0xC0が存在しないため、論理スヌープフィルタ2110のアドレス比較部20にてミスヒットする。ミスヒットした場合、入力アドレスのキャッシュラインはプロセッサ120aのキャッシュメモリ121aにキャッシュされていないことを意味するため、スヌープ宛先選択部50はスヌープ発行をスヌープ発行部60に指示せず、スヌープメッセージ信号2002はフィルタリングされる。その結果、エントリ登録部30にて、リードアドレス0xC0がエントリ30のアドレス部1112に、キャッシュメモリ121のキャッシュ状態情報がエントリ30のリードアドレス0xC0に関するキャッシュ状態部1113に登録される。その後、ノード制御装置110により、ノード200のノード制御装置210に対し、リードメッセージ信号2003が送信される。動作1においては、論理パーティション1000における処理が行われたが、論理パーティション2000では、動作1においてアクセスがない状態のため、システム初期化後の状態と等価となる。本動作では、リクエスタのプロセッサ120bのキャッシュメモリ121bはラインを取得するため、エントリ登録部30にて、キャッシュ状態部2113bには「0b1」が登録され、121aのキャッシュメモリはミスヒット判定によりラインは所有していないことになり、キャッシュ状態部2113bには「0b0」が登録される。
動作1−3 論理パーティション1000におけるスヌープメッセージ信号受信
図9は、動作1−2後に、論理パーティション1000において、リモートノード200からの、ラインアドレス0x40に対するラインの所有権取得に伴うリードリクエストに起因して発生したスヌープメッセージ信号1010を、ノード100が受信した際の、ノード100におけるスヌープフィルタ111の動作を示し、図10は図9の動作におけるスヌープフィルタ111のエントリ状態の遷移を示している。
スヌープフィルタ111がスヌープメッセージ信号1010を受信した場合、アドレスデコーダ3110によりスヌープアドレス0x40に対応する論理スヌープフィルタ1110が選択される。論理スヌープフィルタ1110のエントリ部1111内のアドレス部1112にスヌープアドレス0x40が存在するため、論理スヌープフィルタ1110のアドレス比較部13にてヒットする。キャッシュ状態部1113bにおいて、ヒットしたアドレスに対するキャッシュメモリ121bのキャッシュ状態情報は「0b0」のため、スヌープ宛先選択部50はスヌープ発行をスヌープ発行部60に指示せず、スヌープメッセージ信号1012はフィルタリングされる。また、キャッシュ状態部1113aにおいて、キャッシュメモリ121aのキャッシュ状態情報は「0b1」のため、スヌープ宛先選択部50の指示によりスヌープ発行部60がスヌープメッセージ信号1011を発行し、そのスヌープレスポンスを論理スヌープフィルタ1110が受信する。その結果、エントリ登録部30にて、エントリ部1111のキャッシュ状態部1113a,1113bにおけるキャッシュ状態情報が登録され、更新される。
本動作では、キャッシュメモリ121aでのラインの所有権がなくなり、ラインが無所有となるためキャッシュ状態部1113aは「0b0」に更新される。
「動作例2:エントリの追い出し」
ノード100におけるスヌープフィルタ111において、エントリ追い出しが発生した場合の動作例を示す。ただし、状態遷移前の論理スヌープフィルタ1110のエントリ部1111には、論理パーティション1000内に属すラインアドレス0x50,0x60,0x70,0x80,0x90が登録されており、エントリ部1111に新規登録できる空エントリがない状態となっている。また、論理スヌープフィルタ2110のエントリ部2111には、論理パーティション2000内に属すラインアドレス0xC0,0xD0が登録されている。
動作2−1 論理パーティション1000におけるリードメッセージ信号受信
図11は、論理パーティション1000内において、プロセッサ120aがリモートノード200のメインメモリ230aのラインアドレス0xA0に対するリードメッセージ信号1020を、ノード100が受信した際の、ノード100におけるスヌープフィルタ111の動作を示し、図12は図11の動作におけるスヌープフィルタ111のエントリ状態の遷移を示している。
動作は動作例1−1とほぼ同様になるが、本動作例では、入力アドレス0xA0及び前記アドレスに対応するキャッシュ状態情報をエントリ部1111に登録する際、新規登録できる空エントリがないため、エントリ部1111からあるラインアドレスに関するエントリを追い出さなければならない。ここでは、キャッシュラインアドレス0x50に関するエントリが追い出される対象とする。エントリ追い出しが発生すると、キャッシュメモリにおいてキャッシュされているアドレス0x50に対応するキャッシュラインも追い出さなければならない。このとき、キャッシュ状態部1113aにおいて、アドレス0x50に対するキャッシュメモリ121aのキャッシュ状態情報は「0b1」のため、スヌープ宛先選択部50の指示により、スヌープ発行部60がキャッシュラインアドレス0x50に対するスヌープメッセージ信号1021を発行し、前記スヌープメッセージ信号1021を受信したプロセッサ120aのキャッシュメモリ121aは当該キャッシュラインをメインメモリ230aへライトバックする。その結果、エントリ追い出しが完了し、新規に確保されたエントリにラインアドレス0xA0または対応するキャッシュ保持情報が登録される。
本動作例において、論理スヌープフィルタ2110のエントリ部2111に登録されているラインアドレス0xC0,0xD0に関するキャッシュ保持情報に関して、エントリ部1111に追い出しが発生していても、影響はない。
上記動作例により、本発明のスヌープフィルタは、特定パーティション内においてトランザクションが多発することにより、スヌープフィルタエントリに記憶されているキャッシュ保持情報のエントリから追い出しが多発するような状況において有効である。
前記状況において、本発明の機構を用いず、特定アドレス範囲に依らないスヌープフィルタリソースを共用する従来のスヌープフィルタを搭載した場合、当該パーティション以外のパーテョションに属すプロセッサにてキャッシュされているラインに関して、前記スヌープフィルタにはそのラインへのキャッシュ保持情報がエントリから多数追い出されている可能性が高い。その結果、追い出されたラインへの再アクセスが多発する可能性があるため、無関係な別のパーティションでのアクセス頻度に依存して、特定パーティションの性能が低下してしまう可能性がある。
しかし、本発明の機構を用いた場合、スヌープフィルタは、パーティション単位の専用リソースにより自パーティションのみのキャッシュライン保持情報を記憶しておく機構を持つため、特定パーティションの性能が無関係な別のパーティションのアクセス頻度に依存して低下することを抑止し、パーティション単位での性能を一定に保つことができる。
また、上記実施例は、パーティション分割を行ったマルチプロセッサシステムにおいて有効な実施例だったが、本発明のスヌープフィルタを科学技術計算のような膨大なデータへのアクセスのケースに用いた場合に対しても有効である。
その場合、アドレスデコーダ3110のアドレス−論理スヌープフィルタマッピングテーブル3111のマッピングを、データ領域に対応した論理スヌープフィルタ、コード領域に対応した論理スヌープフィルタと設定することにより、データよりも参照の局所性が高いコードのキャッシュ状態に関する情報がスヌープフィルタから追い出されてしまう問題に効果を発揮し、システムの計算性能の低下を抑止することができる。
以上のように、本発明に係るスヌープフィルタは、一つのノードにキャッシュメモリを備えるプロセッサを有し、複数ノードで構成されるマルチプロセッサシステムに対して適用できる。
本実施例に係るスヌープフィルタを持つマルチプロセッサシステムの構成を表すブロック図である。 本実施例に係るスヌープフィルタの構成を説明するための説明図である。 本実施例に係るアドレス−論理スヌープフィルタマッピングテーブルを説明するための説明図である。 本実施例に係る論理スヌープフィルタの構造を説明するための説明図である。 動作1−1のリード信号受信時のスヌープフィルタ動作説明図である。 動作1−1におけるスヌープフィルタのエントリ状態遷移の説明図である。 動作1−2のリード信号受信時のスヌープフィルタ動作説明図である。 動作1−2におけるスヌープフィルタのエントリ状態遷移の説明図である。 動作1−3のスヌープ信号受信時のスヌープフィルタ動作説明図である。 動作1−3におけるスヌープフィルタのエントリ状態遷移の説明図である。 動作2−1のリードメッセージ信号受信時にスヌープフィルタで発生するエントリ追い出し動作を説明するための説明図である。 動作2−1におけるスヌープフィルタのエントリ状態遷移の説明図である。
符号の説明
1…アドレス信号、2…送信元ID信号、3…メッセージ種コード信号、4…論理スヌープフィルタ選択信号、5…スヌープ信号、10…エントリ部、11…アドレス部、12…キャッシュ状態部、20…アドレス比較部、30…エントリ登録部、40…メッセージ種判定部、50…スヌープ宛先選択部、60…スヌープ発行部、100…ノード、110…ノード制御装置、111…スヌープフィルタ、116…メッセージ信号、117…アドレス信号、118…スヌープ信号、119…スヌープ信号、120a,120b…プロセッサ、121a,121b…キャッシュメモリ、130a,130b…メインメモリ、140a,140b…ノード制御装置−プロセッサ間信号線、141a,141b…プロセッサ−メインメモリ間信号線、200…ノード、210…ノード制御装置、211…スヌープフィルタ、220a,220b…プロセッサ、221a,221b…キャッシュメモリ、230…メインメモリ、240a,240b…ノード制御装置−プロセッサ間信号線、241a,241b…プロセッサ−メインメモリ間信号線、300…ノード間信号線、1000…論理パーティション、1001…リードメッセージ信号、1002…フィルタリングされたスヌープメッセージ信号、1003…リードメッセージ信号、1010…スヌープメッセージ信号、1011…スヌープメッセージ信号、1012…フィルタリングされたスヌープメッセージ信号、1020…0xA0に対するリードメッセージ信号、1021…0x50に対するスヌープメッセージ信号、1110…論理スヌープフィルタ、1111…論理スヌープフィルタ1110のエントリ部、1112…アドレス部、1113a,1113b…キャッシュ状態部、2000…論理パーティション、2001…リードメッセージ信号、2002…フィルタリングされたスヌープメッセージ信号、2003…リードメッセージ信号、2110…論理スヌープフィルタ、2111…論理スヌープフィルタ2110のエントリ部、2112…アドレス部、2113a,2113b…キャッシュ状態部、3110…アドレスデコーダ、3111…アドレス−論理スヌープフィルタマッピンブテーブル、3112…特定アドレス領域における論理スヌープフィルタマップエントリ、3113…アドレスマスク値、3114…比較アドレス、3115…論理スヌープフィルタ番号。

Claims (4)

  1. 複数のノードから成り、各ノードはメインメモリのデータの写しを格納するキャッシュメモリを有する1つ以上のプロセッサと各ノードを接続するノード制御装置を備えたマルチプロセッサコンピュータシステムにおいて、
    前記ノード制御装置はスヌープ送信を制御するスヌープフィルタを有し、該スヌープフィルタは、プロセッサがメインメモリに対するリード要求を発行する際のリードメッセージの受信をトリガとして、リードメッセージの対象となるキャッシュラインアドレスをデコードするアドレスデコード機構と、前記キャッシュラインアドレスを登録するアドレス登録機構と、前記アドレス登録機構により登録されたアドレスに対して、各キャッシュメモリの状態を登録するキャッシュ状態登録機構と、アドレス登録機構により既に登録されているアドレスと、前記リードメッセージの対象となるキャッシュラインアドレスがヒットした場合に、キャッシュ状態がラインの無所有を示しているキャッシュメモリに対して、スヌープ送信をフィルタリングするスヌープ処理機構を備えたことを特徴とするマルチプロセッサコンピュータシステム。
  2. 複数のノードから成り、各ノードは、他ノードと共通に使用するメインメモリのデータの写しを格納するキャッシュメモリを有する1つ以上のプロセッサと、他ノードと相互に接続してデータ転送を行うノード制御装置を備え、該ノード制御装置は自ノードのスヌープ送信を制御するスヌープフィルタを有することを特徴とするマルチプロセッサコンピュータシステム。
  3. 前記スヌープフィルタは、特定のキャッシュラインアドレス範囲に対応した2つ以上の論理スヌープフィルタと、アクセスされたキャッシュラインアドレスを、該アドレスに対応した論理スヌープフィルタ番号にデコードするアドレスデコーダを有し、特定アドレス範囲内へのアクセスに対しては、該アドレスに対応する1つの論理スヌープフィルタのみにより処理されることを特徴とする請求項2記載のマルチプロセッサコンピュータシステム。
  4. 前記論理スヌープフィルタは、メインメモリに対するリード要求の際のリードメッセージの受信をトリガとして、リードメッセージの対象となるキャッシュラインアドレスを登録するアドレス部と前記登録されたアドレスに対して自ノードの各キャッシュの当該キャッシュラインの所有の有無を示す情報を登録するキャシュ状態部とを有するエントリ部と、リクエストのアドレスと前記エントリ部のアドレス部内のアドレスとを比較するアドレス比較部と、リクエストの送信元ID情報と前記エントリ部のキャッシュ状態部のキャッシュ状態情報と前記アドレス比較部の比較結果と前記メッセージ種判定部からの種別情報と前記アドレスデコーダの論理スヌープフィルタ選択結果を入力してスヌープ発行の宛先を選択するスヌープ宛先選択部とを備えることを特徴とする請求項3記載のマルチプロセッサコンピュータシステム。
JP2007317850A 2007-12-10 2007-12-10 特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム Pending JP2009140376A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007317850A JP2009140376A (ja) 2007-12-10 2007-12-10 特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007317850A JP2009140376A (ja) 2007-12-10 2007-12-10 特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム

Publications (1)

Publication Number Publication Date
JP2009140376A true JP2009140376A (ja) 2009-06-25

Family

ID=40870889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007317850A Pending JP2009140376A (ja) 2007-12-10 2007-12-10 特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム

Country Status (1)

Country Link
JP (1) JP2009140376A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法
KR20170120635A (ko) * 2015-03-03 2017-10-31 에이알엠 리미티드 캐시 메인터넌스 명령

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530651A (ja) * 2012-12-17 2015-10-15 インスパー・エレクトロニック・インフォメーション・インダストリー・コーポレーション・リミテッド マルチプロセサシステムおよびマルチプロセサシステムの構成方法
KR20170120635A (ko) * 2015-03-03 2017-10-31 에이알엠 리미티드 캐시 메인터넌스 명령
JP2018511120A (ja) * 2015-03-03 2018-04-19 エイアールエム リミテッド キャッシュ保守命令
US11144458B2 (en) 2015-03-03 2021-10-12 Arm Limited Apparatus and method for performing cache maintenance over a virtual page
KR102531261B1 (ko) * 2015-03-03 2023-05-11 에이알엠 리미티드 캐시 메인터넌스 명령

Similar Documents

Publication Publication Date Title
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US7434008B2 (en) System and method for coherency filtering
US7613885B2 (en) Cache coherency control method, chipset, and multi-processor system
US5897656A (en) System and method for maintaining memory coherency in a computer system having multiple system buses
US7389388B2 (en) Data processing system and method for efficient communication utilizing an in coherency state
KR100545951B1 (ko) 최적화된 입/출력 애플리케이션을 위한 분산된 판독 및기입 캐싱 구현
US7366847B2 (en) Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag
US6049847A (en) System and method for maintaining memory coherency in a computer system having multiple system buses
KR100318104B1 (ko) 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
US7404046B2 (en) Cache memory, processing unit, data processing system and method for filtering snooped operations
TWI463318B (zh) 快取一致性處理系統、快取記憶體,及其方法
CN100570582C (zh) 数据处理系统和方法
US7584329B2 (en) Data processing system and method for efficient communication utilizing an Ig coherency state
US7779292B2 (en) Efficient storage of metadata in a system memory
US7454577B2 (en) Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US8214600B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domains
KR20110031361A (ko) 스누프 필터링 메커니즘
US7774555B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US20100217939A1 (en) Data processing system
US7366844B2 (en) Data processing system and method for handling castout collisions
US6651157B1 (en) Multi-processor system and method of accessing data therein
US7725660B2 (en) Directory for multi-node coherent bus
JP2009140376A (ja) 特定アドレス範囲に分割されたスヌープフィルタを持つマルチプロセッサコンピュータシステム
JP2008310414A (ja) コンピュータシステム