JP2006323432A - 主記憶共有型マルチプロセッサシステムの高性能化技術 - Google Patents

主記憶共有型マルチプロセッサシステムの高性能化技術 Download PDF

Info

Publication number
JP2006323432A
JP2006323432A JP2005143397A JP2005143397A JP2006323432A JP 2006323432 A JP2006323432 A JP 2006323432A JP 2005143397 A JP2005143397 A JP 2005143397A JP 2005143397 A JP2005143397 A JP 2005143397A JP 2006323432 A JP2006323432 A JP 2006323432A
Authority
JP
Japan
Prior art keywords
data
control unit
circuit
access
main memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005143397A
Other languages
English (en)
Other versions
JP4806959B2 (ja
JP2006323432A5 (ja
Inventor
Takashi Yasui
隆 安井
Shisei Fujiwara
至誠 藤原
Norihiko Murata
憲彦 村田
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 JP2005143397A priority Critical patent/JP4806959B2/ja
Priority to US11/434,742 priority patent/US7506107B2/en
Publication of JP2006323432A publication Critical patent/JP2006323432A/ja
Publication of JP2006323432A5 publication Critical patent/JP2006323432A5/ja
Application granted granted Critical
Publication of JP4806959B2 publication Critical patent/JP4806959B2/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ノードの処理状態にしたがって主記憶アクセスの先行を許しマルチプロセッサシステムの性能を向上させる。
【解決手段】データ読み出しアクセスを全ノードで同期して選択し順序付けするだけでなく、データ書き戻し完了通知も全ノードで同期して選択し順序付けすることで、全ノードで観測されるデータ読み出しの順序とデータ書き戻しの完了順序を一意にする。
各ノードにおいて、順序付けされたデータ読み出しアクセスと順序付けされたデータ書き戻し完了通知の対象アドレスを比較し、データ書き戻しの完了に追い越される同一アドレスのデータ読み出しを検出することで、データ読み出しとデータ書き戻しの順序を決定する。このとき、データ書き戻しの完了に追い越された同一アドレスのデータ読み出しアクセスを送信したノードへデータの読み直しを促すコヒーレンシ応答を送信することで、データのコヒーレンシを維持する。
【選択図】図6

Description

本発明は、主記憶を共有する密結合型のマルチプロセッサシステムおよびそのデータのコヒーレンシ制御技術に適用して有効な技術に関する。
各々がキャッシュメモリを備える複数のプロセッサが主記憶を共有する密結合型のマルチプロセッサシステムでは、主記憶上の同一アドレスのデータが複数のプロセッサ上のキャッシュメモリに分散して存在することになる。このとき、同一キャッシュラインに割り当てられる別の主記憶アドレスのデータを読み込むときに更新データを主記憶へ書き戻す方式では、複数のプロセッサ上のキャッシュメモリに分散したデータは個別に更新され、主記憶上の同一アドレスのデータとは異なる可能性がある。このため、任意のプロセッサから主記憶へデータ読み出しアクセスが発生した場合、各プロセッサ上のキャッシュメモリおよび主記憶のデータの時系列的な一意性(コヒーレンシ)を保証することが必須である。
従来、各々がキャッシュメモリを備える複数のプロセッサが主記憶を共有する密結合型のマルチプロセッサシステムにおけるデータのコヒーレンシ制御方式として、M.S.Papamacrosand J.H.Patel,“A Low−overhead Coherence Solution for Multiprocessors with Private Cache Memories,”Proc.the 11th International Symphosium on Computer Architecture,1984,pp.348−354(非特許文献1)などに記載されている技術が知られており、データのキャッシュ状態を(1)Invalid(対象キャッシュメモリのデータは無効)、(2)Shared−Unmodified(主記憶と同一のデータが他のプロセッサが備えるキャッシュメモリにも存在)、(3)Exclusive−Unmodified(主記憶と同一のデータが対象キャッシュメモリにのみ存在)、(4)Exclusive−Modified(更新データが対象キャッシュメモリにのみ存在)の4つで管理する。プロセッサから発行されたデータ読み出しアクセスは、密結合型マルチプロセッサシステムを構成する全ノードが備えるプロセッサ上のキャッシュメモリのデータキャッシュ状態を確認して最新データがキャッシュメモリに存在するか主記憶に存在するか判断し最新データを取得するため、全ノードへブロードキャスト転送される。また、キャッシュラインのデータが更新されているときに同一キャッシュラインに割り当てられる別の主記憶アドレスのデータを読み込む場合には、プロセッサからデータ書き戻しアクセスが発行され、更新データが主記憶へ転送される。
このとき、従来技術には、あるノードのプロセッサから発行されたデータ読み出しアクセスと別のノードから発行されたデータ書き戻しアクセスが密結合型マルチプロセッサシステム上ですれ違うことによりデータのコヒーレンシに矛盾が発生する問題が存在する。
問題の第1の対策として、データ書き戻しアクセスを密結合型マルチプロセッサシステム上に発行する前に同一アドレスを対象とするデータ読み出しアクセスが発行されているか確認し、発行されている場合にはデータ読み出しアクセスを発行したプロセッサへ書き戻しデータを送信するとともにデータを主記憶へ書き戻すことで、すれ違いを発生させない方法がある。しかし、第1の対策には、システム性能の低下を招くという技術的課題がある。 問題の第2の対策として、特開平10−161930号公報(特許文献1)には、主記憶へ発行されたデータ書き戻しアクセスの完了を通知する手段を備える密結合型マルチプロセッサシステムが提案されている。データ書き戻しの完了を通知する手段により、データ書き戻しアクセスを発行したノードは主記憶データの更新が保証されるタイミングを正確に認識することができる。第2の対策では、ノード間でデータ読み出しアクセスとデータ書き戻しアクセスのすれ違いの発生を許すとともにシステム性能の劣化を防いでいる。
M.S.Papamacrosand J.H.Patel,"A Low−overhead Coherence Solution for Multiprocessors with Private Cache Memories,"Proc.the 11th International Symphosium on Computer Architecture,1984,pp.348−354
特開平10−161930号公報
前記第2の対策では、同一ノードへ転送されるデータ読み出しアクセスとデータ書き戻しアクセスの順序が入れ替わることがないため、各ノードにおいて処理状態にしたがってデータ読み出しアクセスを進めることやデータ書き戻しアクセスを進めることはできない。このとき、主記憶へのデータ読み出しアクセスは通常長い時間を要するため、もし上記事項を解決して主記憶へのデータ読み出しアクセスを先行して行い得るようにすれば、システム性能の大幅な向上につながる。
そこで本発明の目的は、各ノードにおいて処理状態にしたがってデータ読み出しアクセスとデータ書き戻しアクセスを進めることにより発生するすれ違いを許しながらデータのコヒーレンシを維持することが可能な主記憶共有型マルチプロセッサシステムおよびコヒーレンシ制御方法を提供することにある。
上記本発明の目的を達成する上での具体的な課題を以下に示す。
本発明の第1の課題は、データ読み出しアクセスを全ノードで同期して選択し順序付けするだけでなく、データ書き戻し完了通知も全ノードで同期して選択し順序付けすることで、全ノードで観測されるデータ読み出しの順序とデータ書き戻しの完了順序を一意にすることにある。
本発明の第2の課題は、順序付けされたデータ読み出しアクセスと順序付けされたデータ書き戻し完了通知の対象アドレスを比較し、データ書き戻しの完了に追い越される同一アドレスのデータ読み出しを検出することで、各ノードでのデータ読み出しとデータ書き戻しの順序を決定することにある。
本発明の第3の課題は、データ書き戻しの完了に追い越された同一アドレスのデータ読み出しアクセスを送信したノードへデータの読み直しを促すコヒーレンシ応答を送信することで、データのコヒーレンシを維持することにある。
本発明の第1の課題は、各ノードに、データ読み出しアクセスだけでなくデータ書き戻し完了通知も全ノードへブロードキャスト送信する手段を設け、さらに受信したデータ読み出しアクセスとデータ書き戻し完了通知をそれぞれ全ノードで同期して選択する手段を設けることで解決できる。
本発明の第2の課題は、各ノードに、順序付けされたデータ読み出しアクセスと順序付けされたデータ書き戻し完了通知の対象アドレスを比較する手段を設け、さらに比較結果をデータ読み出しアクセスに付加する手段を設けることで解決できる。
本発明の第3の課題は、各ノードに、比較結果の付加されたデータ読み出しアクセスを送信したノードへデータの読み直しを促すコヒーレンシ応答を送信する手段を設け、さらにデータの読み直しを促すコヒーレンシ応答を受信してデータ読み直しアクセスを送信する手段を設けることで解決できる。
データ書き戻し完了通知を全ノードへブロードキャスト送信し、データ書き戻し完了通知が順序付けされた後でデータ読み出しとデータ書き戻しの順序を決定することで、ノードにおいて処理状態にしたがってデータ読み出しとデータ書き戻しを進めることにより発生するすれ違いを検出できる。このため、主記憶へのデータ読み出しアクセスを先行させることによりシステム性能を向上させることが可能になる。
本発明の主記憶共有型マルチプロセッサによれば、各ノードにおいて処理状態にしたがってデータ読み出しアクセスとデータ書き戻しアクセスを進めることにより発生するすれ違いを許しながらデータのコヒーレンシを維持することが可能になるという効果が得られる。
本発明の主記憶共有型マルチプロセッサによれば、各ノードにおいて処理状態にしたがったデータ読み出しアクセスとデータ書き戻しアクセスを進めることができるため、主記憶へのデータ読み出しアクセスを先行させることによりシステム性能を向上させることが可能になるという効果が得られる。
以下、本発明の主記憶共有型マルチプロセッサシステムを図面に示した実施の形態を参照して詳細に説明する。
図1に、本発明における主記憶共有型マルチプロセッサシステムの概略構成を示す。
ノード1−100〜1−101は、ノード間リンク1−200〜1−220を介してノード間でデータの送受信を行なう。本実施例で想定しているノード間リンクは、データ読み出しアクセスおよびデータ書き込み完了通知を全ノードへブロードキャスト送信するブロードキャストリンク1−200、コヒーレンシ応答を対象ノードへ送信するコヒーレンシリンク1−210、データ書き戻しアクセスおよびデータ読み直しアクセスおよび読み出しデータを対象ノードへ送信する1対1リンク1−220で構成する。
ノード1−100は、キャッシュメモリを備えるプロセッサ1−300〜1−301、フロントサイドバス1−400、主記憶1−500〜1−501、主記憶バス1−600、チップセット1−700で構成する。ノード1−101は、ノード100と同じ構成であるため、ここでは説明を省略する。また、本実施例では、ノードが2個のプロセッサおよび2個の主記憶を備える例を示しているが、プロセッサの個数および主記憶の個数は2個に限定されない。ノードの個数についても2個に限定されない。
チップセット1−700は、フロントサイドバス1−400を介してプロセッサとの間でデータの送受信を行なうフロンサイドバス制御ユニット2−100、主記憶バス1−600を介して主記憶との間でデータの送受信を行なう主記憶バス制御ユニット3−100、ノード間リンク1−200〜1−220を介して他ノードとの間でデータの送受信を行なうノード間リンク制御ユニット4−100、プロセッサ1−300〜1−301のキャッシュメモリのデータキャッシュ状態を保持するキャッシュタグ1−800を参照してデータ読み出しアクセスおよびデータ書き戻しアクセスのデータのコヒーレンシを維持するコヒーレンシ制御ユニット5−100で構成する。
図2に、フロントサイドバス制御ユニット2−100の構成を示す。
フロントサイドバス制御ユニット2−100は、主記憶アクセス転送回路2−110、書き戻しデータ転送回路2−120、キャッシュスヌープアクセス転送回路2−130、読み出しデータ転送回路2−140、主記憶アクセス分配回路2−150、アドレスアクセス制御回路2−160、データアクセス制御回路2−170で構成する。主記憶アクセス転送回路2−110は、コヒーレンシ制御ユニット5−100へ送信するデータ読み出しアクセスとデータ書き戻しアクセスとキャッシュスヌープ応答をプロセッサ1−300〜1−301からフロントサイドバス1−400を介して受信し保持する。書き戻しデータ転送回路2−120は、ノード間リンク制御ユニット4−100へ送信する書き戻しデータをプロセッサ1−300〜1−301からフロントサイドバス1−400を介して受信し保持する。キャッシュスヌープアクセス転送回路2−130は、フロントサイドバス1−400を介してプロセッサ1−300〜1−301へ送信するキャッシュスヌープアクセスをコヒーレンシ制御ユニット5−100から受信し保持する。読み出しデータ転送回路2−140は、フロントサイドバス1−400を介してプロセッサ1−300〜1−301へ送信する読み出しデータをノード監視リンク制御ユニットから受信し保持する。主記憶アクセス分配回路2−150は、主記憶アクセス転送回路2−110からコヒーレンシ制御ユニット5−100へ送信するデータ読み出しアクセス、データ書き込みアクセス、キャッシュスヌープ応答を個別の信号線に分配する。アドレスアクセス制御回路2−160は、主記憶アクセスをプロセッサ1−300〜1−301から受信するか、キャッシュスヌープアクセスをプロセッサ1−300〜1−301へ送信するか制御する。データアクセス制御回路2−170は、データ書き戻しアクセスに伴う書き戻しデータをプロセッサ1−300〜1−301から受信するか、コヒーレンシ制御ユニット5−100受信するデータリプライ通知にしたがってデータ読み出しアクセスに対する読み出しデータをプロセッサ1−300〜1−301へ送信するか制御する。
図3に、主記憶バス制御ユニット3−100の構成を示す。
主記憶バス制御ユニット3−100は、データ読み出しアクセス転送回路3−110、データ読み直しアクセス転送回路3−120、データ書き戻しアクセス転送回路3−130、読み出しデータ転送回路3−140、主記憶アクセス制御回路3−150で構成する。データ読み出しアクセス転送回路3−110は、主記憶バス1−600を介して主記憶1−500〜1−501へ送信するデータ読み出しアクセスをノード間リンク制御ユニット4−100から受信し保持する。データ読み直しアクセス転送回路3−120は、主記憶バス1−600を介して主記憶1−500〜1−501へ送信するデータ読み直しアクセスをノード間リンク制御ユニット4−100から受信し保持する。データ書き戻しアクセス転送回路3−130は、主記憶バス1−600を介して主記憶1−500〜1−501へ送信するデータ書き戻しアクセスをノード間リンク制御ユニット4−100から受信し保持する。読み出しデータ転送回路3−140は、ノード間制御ユニット4−100に送信するデータ読み出しアクセスまたはデータ読み直しアクセスに対する読み出しデータを主記憶1−500〜1−501から主記憶バス1−600を介して受信し保持する。主記憶アクセス制御回路3−150は、データ読み出しアクセス、データ読み直しアクセス、データ書き戻しアクセスのどれを主記憶1−500〜1−501へ送信するか制御し、データ読み出しアクセスまたはデータ読み直しアクセスを主記憶1−500〜1−501へ送信した場合には主記憶1−500〜1−501から受信する読み出しデータを読み出しデータ転送回路3−140に保持させ、さらにデータ書き戻しアクセスを主記憶1−500〜1−501へ送信した場合にはデータ書き戻し完了通知をノード間リンク制御ユニット4−100へ送信する。
図4に、ノード間リンク制御ユニット4−100の構成を示す。ノード間リンク制御ユニット4−100は、ブロードキャストリンク送信制御部4−200、ブロードキャストリンク受信制御部4−300、コヒーレンシリンク送信制御部4−400、コヒーレンシリンク受信制御部4−500、1対1リンク送信制御部4−600、1対1リンク受信制御部4−700で構成する。
図5に、ブロードキャストリンク送信制御部4−200の構成を示す。ブロードキャストリンク送信制御部4−200は、データ読み出しアクセス転送回路4−210、データ書き戻し完了通知転送回路4−220、ブロードキャスト転送制御回路4−230で構成する。データ読み出しアクセス転送回路4−210は、ブロードキャストリンク1−200を介して全ノード1−100〜1−101へ送信するデータ読み出しアクセスをコヒーレンシ制御ユニット5−100から受信し保持する。データ書き戻し完了通知転送回路4−220は、ブロードキャストリンク1−200を介して全ノード1−100〜1−101へ送信するデータ書き戻し完了通知を主記憶バス制御ユニット3−100から受信し保持する。ブロードキャスト転送制御回路4−230は、データ読み出しアクセス、データ書き戻し完了通知のどちらを全ノード1−100〜1−101へ送信するか制御する。
本発明では、ブロードキャストリンク1−200を介してデータ書き戻し完了通知を全ノード1−100〜1−101へ送信する制御をするブロードキャスト転送制御回路4−230が新規である。
図6に、ブロードキャストリンク受信制御部4−300の構成を示す。ブロードキャストリンク受信制御部4−300は、データ読み出しアクセス受信回路4−310〜4−311、データ書き戻し完了通知受信回路4−320〜4−321、データ読み出しアクセス送信回路4−330、データ読み出しアクセス順序付け回路4−340、データ書き戻し完了通知順序付け回路4−350、データ読み出し−データ書き戻し追い越し検出回路4−360で構成する。データ読み出しアクセス受信回路4−310〜4−311は、データ読み出しアクセスを各ノード1−100〜1−101からブロードキャストリンク1−200を介して受信し保持する。データ書き戻し完了通知受信回路4−320〜4−321は、データ書き戻し完了通知を各ノード1−100〜1−101からブロードキャストリンク1−200を介して受信し保持する。データ読み出しアクセス送信回路4−330は、コヒーレンシ制御ユニット5−100、主記憶バス制御ユニット3−100へ送信する順序付けされたデータ読み出しアクセスを受信し保持する。データ読み出しアクセス順序付け回路4−340は、どのノード1−100〜1−101から受信したデータ読み出しアクセスをコヒーレンシ制御ユニット5−100、主記憶バス制御ユニット3−100へ送信するか全ノード1−100〜1−101で同期して選択し順序付けする。データ書き戻し完了通知順序付け回路4−350は、どのノード1−100〜1−101から受信したデータ書き戻し完了通知をコヒーレンシ制御ユニット5−100へ送信するか全ノード1−100〜1−101で同期して選択し順序付けする。データ読み出し−データ書き戻し追い越し検出回路4−360は、データ読み出しアクセス送信回路4−330が保持する順序付けされたデータ読み出しアクセスの対象アドレスと順序付けされたデータ書き戻しアクセスの対象アドレスを比較して保持する順序付けされたデータ読み出しアクセスに比較結果を付加する。
本発明では、各ノード1−100〜1−101から受信したデータ書き戻し完了通知を全ノードで同期して選択し順序付けし全ノード1−100〜1−101で観測されるデータ書き戻しの完了順序を一意にするデータ書き戻し完了通知順序付け回路4−350が新規である。また、順序付けされたデータ読み出しアクセスと順序付けされたデータ書き戻し完了通知の対象アドレスを比較しデータ書き戻しの完了に追い越される同一アドレスのデータ読み出しを検出するデータ読み出し−データ書き戻し追い越し検出回路4−360が新規である。
図7に、コヒーレンシリンク送信制御部4−400の構成を示す。コヒーレンシリンク送信制御部4−400は、コヒーレンシ応答転送回路4−410、コヒーレンシ応答制御回路4−420〜4−421で構成する。コヒーレンシ応答転送回路4−410は、コヒーレンシリンク1−210を介して対象ノード1−100〜1−101へ送信するコヒーレンシ応答をコヒーレンシ制御ユニット5−100から受信し保持する。コヒーレンシ応答制御回路4−420〜4−421は、コヒーレンシ応答を対象ノード1−100〜1−101へ送信する。
図8に、1対1リンク送信制御部4−600の構成を示す。1対1リンク送信制御部4−600は、主記憶アクセス転送回路4−610、読み出しデータ転送回路4−620、1対1転送制御回路4−630〜4−631で構成する。主記憶アクセス転送回路4−610は、1対1リンク1−220を介して対象ノード1−100〜1−101へ送信するデータ読み直しアクセスまたはデータ書き戻しアクセスをコヒーレンシ制御ユニット5−100から受信し書き戻しデータをフロントサイドバス制御ユニット2−100から受信し保持する。読み出しデータ転送回路4−620は、1対1リンク1−220を介して対象ノード1−100〜1−101へ送信する読み出しデータを主記憶バス制御ユニット3−100から受信し保持する。1対1転送制御回路4−630〜4−631は、主記憶アクセス、読み出しデータのどちらを対象ノード1−100〜1−101へ送信するか制御する。
図9に、1対1リンク受信制御部4−700の構成を示す。1対1リンク受信制御部4−700は、1対1アクセス受信回路4−710〜4−711、読み出しデータ制御回路4−720、主記憶アクセス制御回路4−721で構成する。1対1アクセス受信回路4−710〜4−711は、読み出しデータ、データ読み直しアクセス、データ書き戻しアクセスを各ノード1−100〜1−101から1対1リンク1−220を介して受信し保持する。読み出しデータ制御回路4−720は、どのノード1−100〜1−101から受信した読み出しデータをフロントサイドバス制御ユニット2−100へ送信するか制御する。主記憶アクセス制御回路4−721は、どのノード1−100〜1−101から受信したデータ読み直しアクセスまたはデータ書き戻しアクセスを主記憶バス制御ユニット3−100へ送信するか制御する。
図10に、コヒーレンシ制御ユニット5−100の構成を示す。コヒーレンシ制御ユニット5−100は、データ読み出しアクセス転送回路5−110、データ書き戻しアクセス転送回路5−120、キャッシュスヌープアクセス転送回路5−130、主記憶アクセス分配回路5−140、コヒーレンシ制御回路5−150、データ書き戻しアクセス制御回路5−160、キャッシュスヌープアクセス制御回路5−170で構成する。データ読み出しアクセス転送回路5−110は、ノード間リンク制御ユニット4−100へ送信するデータ読み出しアクセスとデータ読み直しアクセスをフロントサイドバス制御ユニット2−100から受信し保持する。データ書き戻しアクセス転送回路5−120は、ノード間リンク制御ユニット4−100へ送信するデータ書き戻しアクセスをフロントサイドバス制御ユニット2−100から受信し保持する。キャッシュスヌープアクセス転送回路5−130は、フロントサイドバス制御ユニット2−100へ送信するキャッシュスヌープアクセスに対するデータ読み出しアクセスをノード間リンク制御ユニット4−100から受信し保持する。主記憶アクセス分配回路5−140は、データ読み出しアクセス転送回路5−110とデータ書き戻し転送回路5−120からノード間リンク制御ユニット4−100に送信するデータ読み出しアクセスを個別の信号線に、データ読み直しアクセスとデータ書き戻しアクセスを同一の信号線に分配する。コヒーレンシ制御回路5−150は、ノード間リンク制御ユニット4−100からデータ読み出しアクセスに対するコヒーレンシ応答を受信してノード間リンク制御ユニット4−100からフロントサイドバス制御ユニット2−100へ送信される読み出しデータのコヒーレンシが維持されているか判断しデータリプライ通知をフロントサイドバス制御ユニット2−100へ送信する。また、コヒーレンシ制御回路5−150は、ノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスに対するコヒーレンシ応答がデータ読み直しを促している場合にはデータ読み直しアクセスをノード間制御ユニット4−100へ送信する。データ書き戻しアクセス制御回路5−160は、ノード間リンク制御ユニット4−100からデータ書き戻しアクセスに対するデータ書き戻し完了通知を受信するまでフロントサイドバスユニット2−100から受信した同一アドレスに対する主記憶アクセスのノード間リンク制御ユニット4−100への送信を抑止する。キャッシュスヌープ制御ユニット5−100は、ノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスの対象アドレスからキャッシュタグ1−800を参照してプロセッサ1−300〜1−301のキャッシュメモリをスヌープする必要があるか判断しキャッシュスヌープアクセスをフロントサイドバス制御ユニット2−100へ送信する。また、キャッシュスヌープ制御ユニット5−100は、キャッシュタグ1−800を参照した結果、フロントサイドバス制御ユニット2−100から受信したキャッシュスヌープ応答、ノード間リンク制御ユニット4−100で付加された比較結果から読み出しデータのコヒーレンシを維持するためのコヒーレンシ応答をノード間リンク制御ユニット4−100へ送信する。
本発明では、データ読み出しアクセスに対してデータ読み直しが必要である場合にフロンサイドバス1−400を介してプロセッサ1−300〜1−301にリトライを要求することなくデータ読み直しアクセスを生成するコヒーレンシ制御回路5−150が新規である。また、ノード間リンク制御ユニット4−100で付加された比較結果から読み出しデータのコヒーレンシを維持するためのコヒーレンシ応答を生成するキャッシュスヌープアクセス制御回路5−170が新規である。
次に、本実施の形態の主記憶共有型マルチプロセッサシステムおよびデータのコヒーレンシ制御方法の動作例を説明する。
図11のタイムチャートを参照し、ノード1−100が備えるプロセッサからノード1−100が備える主記憶のアドレスを対象とするデータ読み出しアクセスが発行され、ノード1−100が備えるプロセッサ上のキャッシュメモリとノード1−101が備えるプロセッサ上のキャッシュメモリに対象アドレスのデータが存在しない場合の動作を説明する。
ノード1−100では、フロントサイドバス制御ユニット2−100がフロントサイドバス1−400を介してプロセッサから受信したデータ読み出しアクセスをコヒーレンシ制御ユニット5−100へ送信する。コヒーレンシ制御ユニット5−100はフロントサイドバス制御ユニット2−100から受信したデータ読み出しアクセスをノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニットはコヒーレンシ制御ユニット5−100から受信したデータ読み出しアクセスをノード1−100とノード1−101へブロードキャストリンク1−200を介してブロードキャスト送信する。
ノード1−100では、ノード間リンク制御ユニット4−100がブロードキャストリンク1−200を介してノード1−100から受信したデータ読み出しアクセスを主記憶バス制御ユニット3−100とコヒーレンシ制御ユニット5−100へ送信する。主記憶バス制御ユニット3−100はノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスを主記憶へ主記憶バス1−600を介して送信する。その後、主記憶バス制御ユニット3−100は主記憶バス1−600を介して主記憶から受信した読み出しデータをノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100は主記憶バス制御ユニットから受信した読み出しデータをノード1−100へ1対1リンク1−220を介して送信する。また、コヒーレンシ制御ユニット5−100はノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスの対象アドレスからキャッシュタグを参照しノード1−100が備えるプロセッサ上のキャッシュメモリに対象アドレスのデータが存在しないことを示すコヒーレンシ応答をノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100はコヒーレンシ制御ユニット5−100から受信したコヒーレンシ応答をノード1−100へコヒーレンシリンク1−210を介して送信する。
一方、ノード1−101では、ノード間リンク制御ユニット4−101がブロードキャストリンク1−200を介してノード1−100から受信したデータ読み出しアクセスをコヒーレンシ制御ユニット5−101へ送信する。コヒーレンシ制御ユニット5−101はノード間リンク制御ユニット4−101から受信したデータ読み出しアクセスの対象アドレスからキャッシュタグを参照しノード1−101が備えるプロセッサ上のキャッシュメモリに対象アドレスのデータが存在しないことを示すコヒーレンシ応答をノード間リンク制御ユニット4−101へ送信する。ノード間リンク制御ユニット4−101はコヒーレンシ制御ユニット5−100から受信したコヒーレンシ応答をノード101へコヒーレンシリンク1−210を介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100が1対1リンク1−220を介してノード1−101から受信した読み出しデータをフロントサイドバス制御ユニット2−100へ送信する。また、ノード間リンク制御ユニット4−100はコヒーレンシリンク1−210を介してノード1−100から受信したコヒーレンシ応答をコヒーレンシ制御ユニット5−100へ送信する。さらに、ノード間リンク制御ユニット4−100はコヒーレンシリンク1−210を介してノード1−101から受信したコヒーレンシ応答をコヒーレンシ制御ユニット5−100へ送信する。コヒーレンシ制御ユニット5−100はノード間リンク制御ユニットから受信したノード1−100のコヒーレンシ応答とノード1−101のコヒーレンシ応答を集計しデータリプライ通知をフロントサイドバス制御ユニット2−100へ送信する。フロントサイドバス制御ユニット2−100はコヒーレンシ制御ユニット5−100から受信したデータリプライ通知にしたがいノード間リンク制御ユニット4−100から受信した読み出しデータをプロセッサへフロントサイドバス1−400を介して送信する。
このとき、図11のタイムチャートはノード1−100と比較してノード1−101のデータ読み出しアクセスが遅れる場合を示している。また、図12のタイムチャートはノード1−100において主記憶バス制御ユニット3−100と比較してコヒーレンシ制御ユニット5−100のデータ読み出しアクセスが遅れる場合を示している。主記憶へのデータ読み出しアクセスを先行させることで、プロセッサの主記憶を高速化できる。
図13のタイムチャートを参照し、ノード1−100が備えるプロセッサからノード1−100が備える主記憶のアドレスを対象とするデータ読み出しアクセスが発行され、ノード1−100が備えるプロセッサ上のキャッシュメモリには対象アドレスのデータは存在しないが、ノード1−101が備えるプロセッサ上のキャッシュメモリには対象アドレスの更新データが存在し、ノード1−101が備えるプロセッサからノード1−100が備える主記憶へデータ書き戻しアクセスが発行されるときに、ノード間リンク制御ユニットがデータ書き戻し完了通知に追い越されるデータ読み出しアクセスを検出する回路を備えていない場合の動作を説明する。
ノード1−100では、フロントサイドバス制御ユニット2−100がフロントサイドバス1−400を介してプロセッサから受信したデータ読み出しアクセスをコヒーレンシ制御ユニット5−100へ送信する。コヒーレンシ制御ユニット5−100はフロントサイドバス制御ユニット2−100から受信したデータ読み出しアクセスをノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニットはコヒーレンシ制御ユニット5−100から受信したデータ読み出しアクセスをノード1−100とノード1−101へブロードキャストリンク1−200を介してブロードキャスト送信する。
一方、ノード1−101では、フロントサイドバス制御ユニット2−101がフロントサイドバス1−401を介してプロセッサから受信したデータ書き戻しアクセスをコヒーレンシ制御ユニット5−101へ送信する。コヒーレンシ制御ユニット5−101はフロントサイドバス制御ユニット2−101から受信したデータ書き戻しアクセスをノード間リンク制御ユニット4−101へ送信する。ノード間リンク制御ユニット4−101はコヒーレンシ制御ユニット5−101から受信したデータ書き戻しアクセスをノード1−100へ1対1リンク1−202を介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100がブロードキャストリンク1−200を介してノード1−100から受信したデータ読み出しアクセスを主記憶バス制御ユニット3−100とコヒーレンシ制御ユニット5−100へ送信する。また、ノード間リンク制御ユニット4−100は1対1リンク1−202を介してノード1−101から受信したデータ書き戻しアクセスを主記憶バス制御ユニット3−100へ送信する。主記憶バス制御ユニット3−100はノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスを主記憶へ主記憶バス1−600を介して送信する。その後、主記憶バス制御ユニット3−100は主記憶バス1−600を介して主記憶から受信した読み出しデータをノード間リンク制御ユニット4−100へ送信する。また、主記憶バス制御ユニット3−100はノード間リンク制御ユニット4−100から受信したデータ書き戻しアクセスを主記憶へ主記憶バス1−600を介して送信しデータ買戻し完了通知をノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100は主記憶バス制御ユニット3−100から受信した読み出しデータをノード1−100へ1対1リンク1−220を介して送信する。また、ノード間リンク制御ユニット4−100は主記憶バス制御ユニット3−100から受信したデータ書き戻し完了通知をノード1−100とノード1−101へブロードキャストリンク1−200を介してブロードキャスト送信する。コヒーレンシ制御ユニット5−100はノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスの対象アドレスからキャッシュタグを参照しノード1−100が備えるプロセッサ上のキャッシュメモリに対象アドレスのデータが存在しないことを示すコヒーレンシ応答をノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100はコヒーレンシ制御ユニット5−100から受信したコヒーレンシ応答をノード1−100へコヒーレンシリンク1−210を介して送信する。
一方、ノード1−101では、ノード間リンク制御ユニット4−101がブロードキャストリンク1−200を介してノード1−100から受信したデータ書き戻し完了通知をコヒーレンシ制御ユニット5−101へ送信する。また、ノード間リンク制御ユニット4−101がブロードキャストリンク1−200を介してノード1−100から受信したデータ読み出しアクセスをコヒーレンシ制御ユニット5−101へ送信する。コヒーレンシ制御ユニット5−101はノード間リンク制御ユニット4−101から受信したデータ書き戻し完了通知にしたがいデータ書き戻しアクセスを完了する。また、コヒーレンシ制御ユニット5−101はノード間リンク制御ユニット4−101から受信したデータ読み出しアクセスの対象アドレスからキャッシュタグを参照する。このとき、データ書き戻しアクセスは送信された後であるため、コヒーレンシ制御ユニット5−101はノード1−101が備えるプロセッサ上のキャッシュメモリに対象アドレスのデータが存在しないことを示すコヒーレンシ応答をノード間リンク制御ユニット4−101へ送信する。ノード間リンク制御ユニット4−101はコヒーレンシ制御ユニット5−101から受信したコヒーレンシ応答をノード101へコヒーレンシリンク1−210を介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100が1対1リンク1−220を介してノード1−101から受信した読み出しデータをフロントサイドバス制御ユニット2−100へ送信する。また、ノード間リンク制御ユニット4−100はコヒーレンシリンク1−210を介してノード1−100から受信したコヒーレンシ応答をコヒーレンシ制御ユニット5−100へ送信する。さらに、ノード間リンク制御ユニット4−100はコヒーレンシリンク1−210を介してノード1−101から受信したコヒーレンシ応答をコヒーレンシ制御ユニット5−100へ送信する。コヒーレンシ制御ユニット5−100はノード間リンク制御ユニットから受信したノード1−100のコヒーレンシ応答とノード1−101のコヒーレンシ応答を集計しデータリプライ通知をフロントサイドバス制御ユニット2−100へ送信する。フロントサイドバス制御ユニット2−100はコヒーレンシ制御ユニット5−100から受信したデータリプライ通知にしたがいノード間リンク制御ユニット4−100から受信した読み出しデータをプロセッサへフロントサイドバス1−400を介して送信する。このとき、プロセッサへ送信された読み出しデータは書き戻し前のデータでありデータのコヒーレンシに矛盾が発生する。
図14のタイムチャートを参照し、ノード1−100が備えるプロセッサからノード1−100が備える主記憶のアドレスを対象とするデータ読み出しアクセスが発行され、ノード1−100が備えるプロセッサ上のキャッシュメモリには対象アドレスのデータは存在しないが、ノード1−101が備えるプロセッサ上のキャッシュメモリには対象アドレスの更新データが存在し、ノード1−101が備えるプロセッサからノード1−100が備える主記憶へデータ書き戻しアクセスが発行されるときに、ノード間リンク制御ユニットがデータ書き戻し完了通知に追い越されるデータ読み出しアクセスを検出回路を備える場合の動作を説明する。
ノード1−100では、フロントサイドバス制御ユニット2−100がフロントサイドバス1−400を介してプロセッサから受信したデータ読み出しアクセスをコヒーレンシ制御ユニット5−100へ送信する。コヒーレンシ制御ユニット5−100はフロントサイドバス制御ユニット2−100から受信したデータ読み出しアクセスをノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニットはコヒーレンシ制御ユニット5−100から受信したデータ読み出しアクセスをノード1−100とノード1−101へブロードキャストリンク1−200を介してブロードキャスト送信する。
一方、ノード1−101では、フロントサイドバス制御ユニット2−101がフロントサイドバス1−401を介してプロセッサから受信したデータ書き戻しアクセスをコヒーレンシ制御ユニット5−101へ送信する。コヒーレンシ制御ユニット5−101はフロントサイドバス制御ユニット2−101から受信したデータ書き戻しアクセスをノード間リンク制御ユニット4−101へ送信する。ノード間リンク制御ユニット4−101はコヒーレンシ制御ユニット5−101から受信したデータ書き戻しアクセスをノード1−100へ1対1リンク1−202を介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100がブロードキャストリンク1−200を介してノード1−100から受信したデータ読み出しアクセスを主記憶バス制御ユニット3−100とコヒーレンシ制御ユニット5−100へ送信する。また、ノード間リンク制御ユニット4−100は1対1リンク1−202を介してノード1−101から受信したデータ書き戻しアクセスを主記憶バス制御ユニット3−100へ送信する。主記憶バス制御ユニット3−100はノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスを主記憶へ主記憶バス1−600を介して送信する。その後、主記憶バス制御ユニット3−100は主記憶バス1−600を介して主記憶から受信した読み出しデータをノード間リンク制御ユニット4−100へ送信する。また、主記憶バス制御ユニット3−100はノード間リンク制御ユニット4−100から受信したデータ書き戻しアクセスを主記憶へ主記憶バス1−600を介して送信しデータ買戻し完了通知をノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100は主記憶バス制御ユニット3−100から受信した読み出しデータをノード1−100へ1対1リンク1−220を介して送信する。また、ノード間リンク制御ユニット4−100は主記憶バス制御ユニット3−100から受信したデータ書き戻し完了通知をノード1−100とノード1−101へブロードキャストリンク1−200を介してブロードキャスト送信する。コヒーレンシ制御ユニット5−100はノード間リンク制御ユニット4−100から受信したデータ読み出しアクセスの対象アドレスからキャッシュタグを参照しノード1−100が備えるプロセッサ上のキャッシュメモリに対象アドレスのデータが存在しないことを示すコヒーレンシ応答をノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100はコヒーレンシ制御ユニット5−100から受信したコヒーレンシ応答をノード1−100へコヒーレンシリンク1−210を介して送信する。
一方、ノード1−101では、ノード間リンク制御ユニット4−101がブロードキャストリンク1−200を介してノード1−100から受信したデータ書き戻し完了通知をコヒーレンシ制御ユニット5−101へ送信する。このとき、ノード間リンク制御ユニット4−101はブロードキャストリンク1−200を介して受信したデータ読み出しアクセスをデータ書き戻し完了通知が追い越したことをアドレス比較回路で検出し比較結果を付加したデータ読み出しアクセスをコヒーレンシ制御ユニット5−101へ送信する。コヒーレンシ制御ユニット5−101はノード間リンク制御ユニット4−101から受信したデータ書き戻し完了通知にしたがいデータ書き戻しアクセスを完了する。また、コヒーレンシ制御ユニット5−101はノード間リンク制御ユニット4−101から受信した比較結果が付加されたデータ読み出しアクセスからデータ書き戻し完了通知に追い越されたことを検知しデータの読み直しを促すコヒーレンシ応答をノード間リンク制御ユニット4−101へ送信する。ノード間リンク制御ユニット4−101はコヒーレンシ制御ユニット5−101から受信したコヒーレンシ応答をノード101へコヒーレンシリンク1−210を介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100が1対1リンク1−220を介してノード1−101から受信した読み出しデータをフロントサイドバス制御ユニット2−100へ送信する。また、ノード間リンク制御ユニット4−100はコヒーレンシリンク1−210を介してノード1−100から受信したコヒーレンシ応答をコヒーレンシ制御ユニット5−100へ送信する。さらに、ノード間リンク制御ユニット4−100はコヒーレンシリンク1−210を介してノード1−101から受信したコヒーレンシ応答をコヒーレンシ制御ユニット5−100へ送信する。コヒーレンシ制御ユニット5−100はノード間リンク制御ユニットから受信したノード1−100のコヒーレンシ応答とノード1−101のコヒーレンシ応答を集計し読み直しデータをプロセッサへ送信するよう促すデータリプライ通知をフロントサイドバス制御ユニット2−100へ送信し、データ読み直しアクセスをノード間リンク制御ユニット4−100へ送信する。フロントサイドバス制御ユニット2−100はコヒーレンシ制御ユニット5−100から受信したデータリプライ通知にしたがいノード間リンク制御ユニット4−100から受信した読み出しデータを破棄する。ノード間リンク制御ユニット4−100はコヒーレンシ制御ユニット5−100から受信したデータ読み直しアクセスをノード1−100へ1対1リンクを介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100が1対1リンク1−220を介してノード1−100から受信したデータ読み直しアクセスを主記憶バス制御ユニット3−100へ送信する。主記憶バス制御ユニット3−100はノード間リンク制御ユニット4−100から受信したデータ読み直しアクセスを主記憶へ主記憶バス1−600を介して送信する。その後、主記憶バス制御ユニット3−100は主記憶バス1−600を介して主記憶から受信した読み直しデータをノード間リンク制御ユニット4−100へ送信する。ノード間リンク制御ユニット4−100は主記憶バス制御ユニット3−100から受信した読み直しデータをノード1−100へ1対1リンク1−220を介して送信する。
ノード1−100では、ノード間リンク制御ユニット4−100が1対1リンク1−220を介してノード1−101から受信した読み直しデータをフロントサイドバス制御ユニット2−100へ送信する。フロントサイドバス制御ユニット2−100はノード間リンク制御ユニット4−100から受信した読み直しデータをプロセッサへフロントサイドバス1−400を介して送信する。このとき、プロセッサへ送信された読み出しデータは書き戻し後のデータでありデータのコヒーレンシが維持される。
以上が、本発明に係わる実施の形態である。
(実施の形態の変形例1)
本発明の別の変形例では、ノード間リンクをクロスバスイッチで構成する。
クロスバスイッチは、全ノード1−100〜1−101から受信したデータ読み出しアクセス、データ書き戻し完了通知を順序付けする回路、順序付けされたデータ読み出しアクセス、データ書き戻し完了通知を全ノード1−100〜1−101へブロードキャスト転送する回路で構成する。
ノード間リンクをクロスバスイッチで構成する場合、ノード間リンク制御ユニット4−100のブロードキャストリンク送信制御部4−200においてデータ読み出しアクセス、データ書き戻し完了通知のブロードキャスト転送を制御する回路は必要ない。また、ノード間リンク制御ユニット4−100のブロードキャストリンク受信制御部4−300においてデータ読み出しアクセス、データ書き戻し完了通知を順序付ける回路は必要ない。
(実施の形態の変形例2)
本発明の別の変形例では、ノード間リンクをバスで構成する。
バスは、データ読み出しアクセス、データ書き戻し完了通知を受信した順序で全ノード1−100〜1−101へ送信する。
ノード間リンクをバスで構成する場合、ノード間リンク制御ユニット4−100のブロードキャストリンク送信制御部4−200は、バスのアイドル状態を検知してデータ読み出しアクセス、データ書き戻し完了通知をバスへ送信する回路を備える。また、ノード間リンク制御ユニット4−100のブロードキャストリンク受信制御部4−300は、バスのビジー状態を検知してデータ読み出しアクセス、データ書き戻し完了通知をバスから受信する回路を備える。
さらに、ノード間リンクをバスで構成する場合、ノード間リンク制御ユニット4−100のブロードキャストリンク送信制御部4−200においてデータ読み出しアクセス、データ書き戻し完了通知のブロードキャスト転送を制御する回路は必要ない。また、ノード間リンク制御ユニット4−100のブロードキャストリンク受信制御部4−300においてデータ読み出しアクセス、データ書き戻し完了通知を順序付ける回路は必要ない。
本発明の主記憶共有型マルチプロセッサおよびデータのコヒーレンシ制御方法は、各ノードにおいて処理状態にしたがったデータ読み出しアクセスとデータ書き戻しアクセスを進めることができ、主記憶へのデータ読み出しアクセスを先行させることができるため、密結合型マルチプロセッサシステム性能の向上に広く利用される可能性がある。
本発明の実施の形態における主記憶共有型マルチプロセッサシステムの構成を示す図である。 本発明の実施の形態におけるチップセットが備えるフロントサイドバス制御ユニットの構成を示す図である。 本発明の実施の形態におけるチップセットが備える主記憶バス制御ユニットの構成を示す図である。 本発明の実施の形態におけるチップセットが備えるノード間リンク制御ユニットの構成を示す図である。 本発明の実施の形態におけるノード間リンク制御ユニットのブロードキャストリンク送信制御部の構成を示す図である。 本発明の実施の形態におけるノード間リンク制御ユニットのブロードキャストリンク受信制御部の構成を示す図である。 本発明の実施の形態におけるノード間リンク制御ユニットのコヒーレンシリンク送信制御部の構成を示す図である。 本発明の実施の形態におけるノード間リンク制御ユニットの1対1リンク送信制御部の構成を示す図である。 本発明の実施の形態におけるノード間リンク制御ユニットの1対1リンク受信制御部の構成を示す図である。 本発明の実施の形態におけるチップセットが備えるコヒーレンシ制御ユニットの構成を示す図である。 本発明の実施の形態における主記憶共有型マルチプロセッサシステムおよびデータのコヒーレンシ制御方法の動作例を示すタイミングチャートである。 本発明の実施の形態における主記憶共有型マルチプロセッサシステムおよびデータのコヒーレンシ制御方法の動作例を示すタイミングチャートである。 従来の主記憶共有型マルチプロセッサシステムおよびデータのコヒーレンシ制御方法の技術的課題を示すタイミングチャートである。 本発明の実施の形態における主記憶共有型マルチプロセッサシステムおよびデータのコヒーレンシ制御方法による技術的課題の解決を示すタイミングチャートである。
符号の説明
1−100〜1−101…ノード、
1−200…ブロードキャストリンク、
1−210…コヒーレンシリンク、
1−220…1対1リンク、
1−300〜1−301…プロセッサ、
1−400〜1−401…フロントサイドバス、
1−500〜1−501…主記憶、
1−600〜1−601…主記憶バス、
1−700〜1−701…チップセット、
2−100〜2−101…フロントサイドバス制御ユニット、
2−110…主記憶アクセス転送回路、
2−120…書き戻しデータ転送回路、
2−130…キャッシュスヌープアクセス転送回路、
2−140…読み出しデータ転送回路、
2−150…主記憶アクセス分配回路、
2−160…アドレスアクセス制御回路、
2−170…データアクセス制御回路、
3−100〜3−101…主記憶バス制御ユニット、
3−110…データ読み出しアクセス転送回路、
3−120…データ読み直しアクセス転送回路、
3−130…データ書き戻しアクセス転送回路、
3−140…読み出しデータ転送回路、
3−150…主記憶アクセス制御回路、
4−100〜4−101…ノード間リンク制御ユニット、
4−200…ブロードキャストリンク送信制御部、
4−210…データ読み出しアクセス転送回路、
4−220…データ書き戻し完了通知転送回路、
4−230…ブロードキャスト転送制御回路、
4−300…ブロードキャストリンク受信制御部、
4−310〜4−311…データ読み出しアクセス受信回路、
4−320〜4−321…データ書き戻し完了通知受信回路、
4−330…データ読み出しアクセス送信回路、
4−340…データ読み出しアクセス順序付け回路、
4−350…データ書き戻し完了通知順序付け回路、
4−360…データ読み出し−データ書き戻し追い越し検出回路、
4−400…コヒーレンシリンク送信制御部、
4−410…コヒーレンシ応答転送回路、
4−420〜4−421…コヒーレンシ応答制御回路、
4−500…コヒーレンシリンク受信制御部、
4−600…1対1リンク送信制御部、
4−610…主記憶アクセス転送回路、
4−620…読み出しデータ転送回路、
4−630〜4−631…1対1転送制御回路、
4−700…1対1リンク受信制御部、
4−710〜4−711…1対1アクセス受信回路、
4−720…読み出しデータ制御回路、
4−721…主記憶アクセス制御回路、
5−100〜5−101…コヒーレンシ制御ユニット、
5−110…データ読み出しアクセス転送回路、
5−120…データ書き戻しアクセス転送回路、
5−130…キャッシュスヌープアクセス転送回路、
5−140…主記憶アクセス分配回路、
5−150…コヒーレンシ制御回路、
5−160…データ書き戻しアクセス制御回路、
5−170…キャッシュスヌープアクセス制御回路。

Claims (4)

  1. ノード間リンクで互いに接続された複数のノードがデータを共有する主記憶共有型マルチプロセッサシステムであって、
    前記ノードが、キャッシュメモリを備える1個以上のプロセッサと主記憶とチップセットと、前記プロセッサと前記チップセットを接続するフロントサイドバスと、前記主記憶と前記チップセットを接続する主記憶バスを備え、
    前記チップセットが、フロントサイドバス制御ユニットとコヒーレンシ制御ユニットと主記憶バス制御ユニットとノード間リンク制御ユニットと、前記フロントサイドバスに接続されたプロセッサが備えるキャッシュモリのデータキャッシュ状態を保持するキャッシュタグを備え、
    前記フロントサイドバス制御ユニットが、前記フロントサイドバスを介してプロセッサから受信したデータ読み出しアクセスとデータ書き戻しアクセスとキャッシュスヌープ応答を前記コヒーレンシ制御ユニットに送信する回路と、前記コヒーレンシ制御ユニットから受信したキャッシュスヌープアクセスをプロセッサへ前記フロントサイドバスを介して送信する回路と、前記コヒーレンシ制御ユニットから受信したデータリプライ通知にしたがい前記ノード間リンク制御ユニットから受信した読み出しデータをプロセッサへ前記フロントサイドバスを介して送信する回路を備え、
    前記主記憶バス制御ユニットが、前記ノード間リンク制御ユニットから受信したデータ読み出しアクセスとデータ書き戻しアクセスを主記憶へ前記主記憶バスを介して送信する回路と、前記データ書き戻しアクセスの主記憶への送信に合わせてデータ書き戻し完了通知を前記ノード間リンク制御ユニットへ送信する回路と、前記主記憶バスを介して主記憶から受信した読み出しデータを前記ノード間リンク制御ユニットへ送信する回路を備え、
    前記ノード間リンク制御ユニットが、前記コヒーレンシ制御ユニットから受信したデータ読み出しアクセスと前記主記憶バス制御ユニットから受信したデータ書き戻し完了通知を全ノードへ前記ノード間リンクを介してブロードキャスト送信する回路と、前記コヒーレンシ制御ユニットから受信したデータ書き戻しアクセスとデータ読み直しアクセスと前記主記憶バス制御ユニットから受信した読み出しデータを対象アドレスのデータを格納する主記憶を備えるノードへ前記ノード間リンクを介して送信する回路と、前記コヒーレンシ制御ユニットから受信したコヒーレンシ応答をデータ読み出しアクセスを送信したコヒーレンシ制御ユニットを備えるノードへ前記ノード間リンクを介して送信する回路と、前記ノード間リンクを介して全ノードから受信したデータ読み出しアクセスを全ノードで同期して選択し順序付けする回路と、前記ノード間リンクを介して全ノードから受信したデータ書き込み完了通知を全ノードで同期して選択し順序付けする回路と、前記順序付けされたデータ読み出しアクセスの対象アドレスと前記順序付けされたデータ書き込み完了通知の対象アドレスを比較してデータ読み出しアクセスに比較結果を付加する回路と、前記比較結果の付加されたデータ読み出しアクセスを前記コヒーレンシ制御ユニットと前記主記憶バス制御ユニットへ送信する回路と、前記順序付けされたデータ書き込み完了通知を前記コヒーレンシ制御ユニットへ送信する回路と、前記ノード間リンクを介して全ノードから受信した読み出しデータを前記フロントサイドバス制御ユニットへ送信する回路と、前記ノード間リンクを介して全ノードから受信したデータ書き戻しアクセスとデータ読み直しアクセスを前記主記憶バス制御ユニットへ送信する回路と、前記ノード間リンクを介して全ノードから受信したコヒーレンシ応答を前記コヒーレンシ制御ユニットへ送信する回路を備え、
    前記コヒーレンシ制御ユニットが、前記フロントサイドバス制御ユニットから受信したデータ読み出しアクセスと書き戻しアクセスを前記ノード間リンク制御ユニットに送信する回路と、前記ノード間リンク制御ユニットから受信した前記比較結果の付加されたデータ読み出しアクセスの対象アドレスから前記キャッシュタグを参照して前記フロントサイドバスに接続されたプロセッサのデータキャッシュ状態を判定する回路と、前記データキャッシュ状態の判定にしたがいキャッシュスヌープアクセスを前記フロントサイドバス制御ユニットへ送信する回路と、前記データキャッシュ状態と前記フロントサイドバス制御ユニットから受信したキャッシュスヌープ応答を合わせてコヒーレンシ応答を生成し前記ノード間リンク制御ユニットへ送信する回路と、前記ノード間リンク制御ユニットから受信したコヒーレンシ応答にしたがいデータリプライ通知を生成して前記フロントバス制御ユニットへ送信しデータ読み直しアクセスを生成して前記ノード間リンク制御ユニットへ送信する回路と、前記ノード間リンク制御ユニットから受信したデータ書き戻し完了通知にしたがい送信したデータ書き戻しを完了する回路を備えることを特徴とする主記憶共有型マルチプロセッサシステム。
  2. 前記ノード間リンクはクロスバスイッチであり、
    各ノードのチップセットの前記ノード間リンク制御ユニットにそれぞれ具備する前記データ読み出しアクセスと前記データ書き戻し完了通知を全ノードへブロードキャスト送信する回路、前記データ読み出しアクセスを順序付けする回路、及び前記データ書き戻し完了通知を順序付けする回路に代えて、前記クロスバスイッチに、全ノードから受信したデータ読み出しアクセスを順序付けする回路と、全ノードから受信したデータ書き戻し完了通知を順序付けする回路と、前記順序付けされたデータ読み出しアクセスを全ノードへブロードキャスト転送する回路と、前記順序付けされたデータ書き戻し完了通知を全ノードへブロードキャスト転送する回路を備えることを特徴とする請求項1記載の主記憶共有型マルチプロセッサシステム。
  3. 前記ノード間リンクはバスであり、
    ノードのチップセットの前記ノード間リンク制御ユニットにそれぞれ具備する前記データ読み出しアクセスと前記データ書き戻し完了通知を全ノードへブロードキャスト送信する回路、前記データ読み出しアクセスを順序付けする回路、及び前記データ書き戻し完了通知を順序付けする回路に代えて、バスのアイドル状態を検知してデータ読み出しアクセスをバスへ送信する回路と、バスのアイドル状態を検知してデータ書き戻し完了通知をバスへ送信する回路と、バスのビジー状態を検知してデータ読み出しアクセスをバスから受信する回路と、バスのビジー状態を検知してデータ書き戻し完了通知をバスから受信する回路を備えることを特徴とする請求項1記載の主記憶共有型マルチプロセッサシステム。
  4. キャッシュメモリを備える1個以上のプロセッサと1個以上の主記憶とチップセットを備える複数のノードがデータを共有する主記憶共有型マルチプロセッサシステムにおけるデータのコヒーレンシ制御方法であって、
    システム上に同一の主記憶アドレスに対するデータ読み出しアクセスとデータ書き戻しアクセスが発行され、対象とする主記憶へ前記データ読み出しアクセスが送信され書き戻し前のデータが読み出された後、対象とする主記憶へ前記データ書き戻しアクセスが送信されるとき、
    前記データ書き戻しアクセスの完了後に前記データ読み出しアクセスに対するプロセッサが備えるキャッシュメモリのデータキャッシュ状態が確認されるノードが存在する場合に、
    前記データ書き戻しアクセスの完了を全ノードで同期して観測し、前記データ読み出しアクセスが前記データ書き戻しアクセスの完了に追い越されたノードが前記データ読み出しアクセスを発行したノードへデータの読み直しを促すコヒーレンシ応答を送信する動作を実行し、
    前記データ読み出しアクセスを発行したノードが前記コヒーレンシ応答を受信し、プロセッサへリトライを要求することなく、前記書き戻し前のデータを破棄して対象とする主記憶へデータ読み直しアクセスを発行することで、対象とする主記憶から書き戻しデータを読み直す動作を実行することを特徴とする主記憶共有型マルチプロセッサシステムにおけるデータのコヒーレンシ制御方法。
JP2005143397A 2005-05-17 2005-05-17 主記憶共有型マルチプロセッサシステムの高性能化技術 Expired - Fee Related JP4806959B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005143397A JP4806959B2 (ja) 2005-05-17 2005-05-17 主記憶共有型マルチプロセッサシステムの高性能化技術
US11/434,742 US7506107B2 (en) 2005-05-17 2006-05-17 Shared memory multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005143397A JP4806959B2 (ja) 2005-05-17 2005-05-17 主記憶共有型マルチプロセッサシステムの高性能化技術

Publications (3)

Publication Number Publication Date
JP2006323432A true JP2006323432A (ja) 2006-11-30
JP2006323432A5 JP2006323432A5 (ja) 2008-07-10
JP4806959B2 JP4806959B2 (ja) 2011-11-02

Family

ID=37449590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005143397A Expired - Fee Related JP4806959B2 (ja) 2005-05-17 2005-05-17 主記憶共有型マルチプロセッサシステムの高性能化技術

Country Status (2)

Country Link
US (1) US7506107B2 (ja)
JP (1) JP4806959B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250373A (ja) * 2007-03-29 2008-10-16 Toshiba Corp マルチプロセッサシステム
JP2011076159A (ja) * 2009-09-29 2011-04-14 Nec Computertechno Ltd キャッシュメモリ制御システム及びキャッシュメモリの制御方法
JP2012074036A (ja) * 2010-09-28 2012-04-12 Arm Ltd ライトバック順序付けによるコヒーレンス制御

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565498B1 (en) * 2005-11-07 2009-07-21 Symantec Operating Corporation System and method for maintaining write order fidelity in a distributed environment
WO2012117389A1 (en) * 2011-02-28 2012-09-07 Dsp Group Ltd. A method and an apparatus for coherency control
US8799588B2 (en) 2012-02-08 2014-08-05 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
GB2500964B (en) * 2012-02-08 2014-06-11 Ibm Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
JP5936152B2 (ja) 2014-05-17 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリアクセストレース方法
CN105808153B (zh) * 2014-12-31 2018-11-13 深圳市硅格半导体有限公司 存储系统及其读写操作方法
CN107992357A (zh) * 2016-10-26 2018-05-04 华为技术有限公司 内存访问方法及多处理器系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744459A (ja) * 1993-07-29 1995-02-14 Matsushita Electric Ind Co Ltd キャッシュ制御方法およびキャッシュ制御装置
JPH10161930A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JP2000250881A (ja) * 1999-02-26 2000-09-14 Internatl Business Mach Corp <Ibm> 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム
JP2002342162A (ja) * 2001-05-14 2002-11-29 Nec Corp メモリアクセス制御方式及びホストブリッジ
JP2003030049A (ja) * 2001-07-12 2003-01-31 Nec Corp キャッシュメモリ制御方法及びマルチプロセッサシステム
JP2003150573A (ja) * 2001-11-12 2003-05-23 Hitachi Ltd マルチプロセッサシステム
JP2004005710A (ja) * 2003-06-23 2004-01-08 Hitachi Ltd 情報処置装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744459A (ja) * 1993-07-29 1995-02-14 Matsushita Electric Ind Co Ltd キャッシュ制御方法およびキャッシュ制御装置
JPH10161930A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JP2000250881A (ja) * 1999-02-26 2000-09-14 Internatl Business Mach Corp <Ibm> 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム
JP2002342162A (ja) * 2001-05-14 2002-11-29 Nec Corp メモリアクセス制御方式及びホストブリッジ
JP2003030049A (ja) * 2001-07-12 2003-01-31 Nec Corp キャッシュメモリ制御方法及びマルチプロセッサシステム
JP2003150573A (ja) * 2001-11-12 2003-05-23 Hitachi Ltd マルチプロセッサシステム
JP2004005710A (ja) * 2003-06-23 2004-01-08 Hitachi Ltd 情報処置装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250373A (ja) * 2007-03-29 2008-10-16 Toshiba Corp マルチプロセッサシステム
JP2011076159A (ja) * 2009-09-29 2011-04-14 Nec Computertechno Ltd キャッシュメモリ制御システム及びキャッシュメモリの制御方法
JP2012074036A (ja) * 2010-09-28 2012-04-12 Arm Ltd ライトバック順序付けによるコヒーレンス制御

Also Published As

Publication number Publication date
US20060265466A1 (en) 2006-11-23
JP4806959B2 (ja) 2011-11-02
US7506107B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
JP4806959B2 (ja) 主記憶共有型マルチプロセッサシステムの高性能化技術
US4449183A (en) Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
WO2019127915A1 (zh) 基于分布式一致性协议实现的数据读取方法及装置
JP2004005657A (ja) 情報処理方法および装置
JPH04271452A (ja) マルチプロセッサシステム
JP2011048834A (ja) アトミックなセマフォ操作を行う方法および装置
CN101178691A (zh) 实施高速缓存一致性的系统和方法
JP2006323432A5 (ja)
US9026746B2 (en) Signal control device and signal control method
JPWO2006046482A1 (ja) マルチプロセッサシステム、同期制御装置及び同期制御方法
GR20180100189A (el) Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
JP2011076159A (ja) キャッシュメモリ制御システム及びキャッシュメモリの制御方法
JP2018128845A (ja) マルチプロセッサシステム
US20180246808A1 (en) Information processing apparatus
JP5571327B2 (ja) レイテンシ短縮システム、レイテンシ短縮方法、および、レイテンシ短縮プログラム
US4697268A (en) Data processing apparatus with message acceptance monitoring
JP2008287512A (ja) 計算機及び分散データ処理システム及びデータ処理方法及びプログラム
JP2003280980A (ja) 共有メモリ排他制御装置及び共有メモリ排他制御方法
JP2007172105A (ja) 割り込み調停システム及び割り込み調停方法
JP2007087086A (ja) Dma転送システム
KR100283187B1 (ko) 공통 메모리를 사용하는 시스템에서 공통 메모리 억세스장치 및 방법
JP3450156B2 (ja) バスブリッジ回路
JP2007328647A (ja) Cpu間のデータ転送方式
JPH10232825A (ja) キャッシュメモリ制御方式
CN112416251A (zh) 计算系统

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080514

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110623

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

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

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

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees