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

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

Info

Publication number
JP4806959B2
JP4806959B2 JP2005143397A JP2005143397A JP4806959B2 JP 4806959 B2 JP4806959 B2 JP 4806959B2 JP 2005143397 A JP2005143397 A JP 2005143397A JP 2005143397 A JP2005143397 A JP 2005143397A JP 4806959 B2 JP4806959 B2 JP 4806959B2
Authority
JP
Japan
Prior art keywords
node
data
control unit
main memory
access
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
JP2005143397A
Other languages
English (en)
Other versions
JP2006323432A (ja
JP2006323432A5 (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.)
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)

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のノードが、前記第1のノードに設けられた前記主記憶である第1の主記憶に対して、第1のノードの前記キャッシュメモリからのデータの書き戻しを行うためのデータ書き戻しアクセスを行い、前記データの書き戻しが完了したことを契機に前記データの書き戻しが完了したことを示す書き戻し完了通知を、前記ノード間リンク制御ユニットを介して他の前記複数のノードのそれぞれにブロードキャストし、
    前記第1のノードと異なる前記複数のノードの一つである第2のノードが、前記キャッシュメモリからのデータの書き戻しとは個別の処理として、前記第2のノード以外の前記ノードに設けられた前記主記憶に対してデータ読み出しアクセスを前記ノード間リンク制御ユニットを介して発行し、
    前記ノード間リンク制御ユニットは、前記データ読み出しアクセスの対象である読み出し対象アドレスと、前記書き戻し完了通知に基づき取得したデータ書き戻しアクセスの対象である書き戻し対象アドレスと、を比較し、読み出し対象アドレスと前記書き戻し対象アドレスとが前記第1の主記憶のアドレスを示し、且つ前記書き戻し完了通知より前に前記データ読み出しアクセスを受信している場合に、前記第2のノードに対して、前記データ読み出しアクセスの対象である前記主記憶に対して再度のデータ読み出しアクセスを行う、ことを特徴とする主記憶共有型マルチプロセッサシステム。
  2. 請求項1記載の主記憶共有型マルチプロセッサシステムにおいて、
    前記ノード間リンクはクロスバスイッチであり、
    当該クロスバスイッチは、
    前記第2のノードから受信したデータ読み出しアクセスを順序付けする回路と、
    前記第1のノードから受信したデータ書き戻し完了通知を順序付けする回路と、
    当該順序付けされたデータ読み出しアクセスを全ノードへブロードキャスト転送する回路と、
    前記順序付けされたデータ書き戻し完了通知を前記各ノードへブロードキャスト転送する回路を備えることを特徴とする主記憶共有型マルチプロセッサシステム。
  3. 請求項1記載の主記憶共有型マルチプロセッサシステムにおいて、
    前記ノード間リンクはバスであり、
    前記チップセットは、
    当該バスのアイドル状態を検知してデータ読み出しアクセスをバスへ送信する回路と、
    前記バスのアイドル状態を検知してデータ書き戻し完了通知をバスへ送信する回路と、
    前記バスのビジー状態を検知してデータ読み出しアクセスをバスから受信する回路と、
    前記バスのビジー状態を検知してデータ書き戻し完了通知をバスから受信する回路を備えることを特徴とする主記憶共有型マルチプロセッサシステム。
  4. 各々プロセッサと主記憶を備えた複数のノードがノード間リンクで互いに接続され、当該各ノードに設けられたプロセッサが他のノードに設けられた主記憶を共有し合い、前記ノード間リンクに備えられたノード間リンク制御ユニットが前記複数のノード間の情報送受信の制御を行う主記憶共有型マルチプロセッサシステムにおけるデータのコヒーレンシ制御方法であって、
    前記複数のノードの一つである第1のノードが、前記第1のノードに設けられた前記主記憶である第1の主記憶に対して、第1のノードの前記プロセッサに備えられたキャッシュメモリからのデータの書き戻しを行うためのデータ書き戻しアクセスを行い、前記データの書き戻しが完了したことを契機に前記データの書き戻しが完了したことを示す書き戻し完了通知を、前記ノード間リンク制御ユニットを介して他の前記複数のノードのそれぞれにブロードキャストし、
    前記第1のノードと異なる前記複数のノードの一つである第2のノードが、前記キャッシュメモリからのデータの書き戻しとは個別の処理として、前記第2のノード以外の前記ノードに設けられた前記主記憶に対してデータ読み出しアクセスを前記ノード間リンク制御ユニットを介して発行し、
    前記ノード間リンク制御ユニットが、前記データ読み出しアクセスの対象である読み出し対象アドレスと、前記書き戻し完了通知に基づき取得したデータ書き戻しアクセスの対象である書き戻し対象アドレスと、を比較し、読み出し対象アドレスと前記書き戻し対象アドレスとが前記第1の主記憶のアドレスを示し、且つ前記書き戻し完了通知より前に前記データ読み出しアクセスを受信している場合に、前記第2のノードに対して、前記データ読み出しアクセスの対象である前記主記憶に対して再度のデータ読み出しアクセスを行う、ことを特徴とする主記憶共有型マルチプロセッサシステムにおけるデータのコヒーレンシ制御方法。
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 JP2006323432A (ja) 2006-11-30
JP2006323432A5 JP2006323432A5 (ja) 2008-07-10
JP4806959B2 true 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)

Families Citing this family (10)

* 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
JP5100176B2 (ja) * 2007-03-29 2012-12-19 株式会社東芝 マルチプロセッサシステム
JP5408713B2 (ja) * 2009-09-29 2014-02-05 エヌイーシーコンピュータテクノ株式会社 キャッシュメモリ制御システム及びキャッシュメモリの制御方法
GB2484088B (en) 2010-09-28 2019-08-07 Advanced Risc Mach Ltd Coherency control with writeback ordering
US9448954B2 (en) * 2011-02-28 2016-09-20 Dsp Group Ltd. Method and an apparatus for coherency control
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
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
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 华为技术有限公司 内存访问方法及多处理器系统

Family Cites Families (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 キャッシュ制御方法およびキャッシュ制御装置
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
US6279085B1 (en) * 1999-02-26 2001-08-21 International Business Machines Corporation Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
JP2002342162A (ja) * 2001-05-14 2002-11-29 Nec Corp メモリアクセス制御方式及びホストブリッジ
JP3661614B2 (ja) * 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
JP3714235B2 (ja) * 2001-11-12 2005-11-09 株式会社日立製作所 マルチプロセッサシステム
JP2004005710A (ja) * 2003-06-23 2004-01-08 Hitachi Ltd 情報処置装置

Also Published As

Publication number Publication date
JP2006323432A (ja) 2006-11-30
US20060265466A1 (en) 2006-11-23
US7506107B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
JP4806959B2 (ja) 主記憶共有型マルチプロセッサシステムの高性能化技術
CA2170458C (en) Multi-cluster computer system
US4449183A (en) Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
WO2019127915A1 (zh) 基于分布式一致性协议实现的数据读取方法及装置
JP2001184321A (ja) 主記憶共有型並列計算機及びそれに用いるノード制御装置
JPH06259384A (ja) マルチプロセッサ
US9026746B2 (en) Signal control device and signal control method
CN101178691A (zh) 实施高速缓存一致性的系统和方法
CN105591857A (zh) 一种485多主通信的方法和装置
JP2006323432A5 (ja)
JPWO2006046482A1 (ja) マルチプロセッサシステム、同期制御装置及び同期制御方法
US6415361B1 (en) Apparatus for controlling cache by using dual-port transaction buffers
US6339812B1 (en) Method and apparatus for handling invalidation requests to processors not present in a computer system
US7257680B2 (en) Storage system including shared memory and plural disk drives, processors, and shared memory control units
US10222992B2 (en) Synchronization method and apparatus for an interconnection network using parallel-headerless TDMA routing
US9251054B2 (en) Implementing enhanced reliability of systems utilizing dual port DRAM
JP2008287512A (ja) 計算機及び分散データ処理システム及びデータ処理方法及びプログラム
JP3374910B2 (ja) マルチプロセッサシステム
JP2003280980A (ja) 共有メモリ排他制御装置及び共有メモリ排他制御方法
JPH10232825A (ja) キャッシュメモリ制御方式
KR100283187B1 (ko) 공통 메모리를 사용하는 시스템에서 공통 메모리 억세스장치 및 방법
JP3450156B2 (ja) バスブリッジ回路
JP2007328647A (ja) Cpu間のデータ転送方式
JPS61296456A (ja) 共通バス制御方式
JPH0449593A (ja) ダイナミックram制御回路

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