JP3764893B2 - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
JP3764893B2
JP3764893B2 JP2005500234A JP2005500234A JP3764893B2 JP 3764893 B2 JP3764893 B2 JP 3764893B2 JP 2005500234 A JP2005500234 A JP 2005500234A JP 2005500234 A JP2005500234 A JP 2005500234A JP 3764893 B2 JP3764893 B2 JP 3764893B2
Authority
JP
Japan
Prior art keywords
data
processor
update
shared memory
address
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
JP2005500234A
Other languages
English (en)
Other versions
JPWO2004107180A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP3764893B2 publication Critical patent/JP3764893B2/ja
Publication of JPWO2004107180A1 publication Critical patent/JPWO2004107180A1/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

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

【技術分野】
【0001】
本発明は、複数のプロセッサを結合し、それらプロセッサに共有される共有メモリ空間を配置する共有メモリ型マルチプロセッサシステムで、特に共有メモリ空間のデータをキャッシュする共有メモリキャッシュが具備されたプロセッサにより構成されるシステムに関する。ソフトウェアの処理は各プロセッサにより分担されて行われ、共有メモリはプロセッサ間で処理を引き継ぐ際のデータの受け渡しやプロセッサ単体ではなくシステム単位で管理すべき情報を格納する場所などとして使われる。共有メモリキャッシュは、共有メモリへのアクセスを高速化してシステム性能を向上するために導入される。
【背景技術】
【0002】
図1は、最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す図である。
複数のプロセッサと共有メモリが同一のグローバルバスで接続され、各プロセッサは、このグローバルバスを経由して、共有メモリにアクセスする。各プロセッサ(1a−1)〜(1a−n)は、アービタ(1b)に対してバス要求信号(1c−1)〜(1c−n)を送出し、アービタにより使用権が調停され、同時間に1つのプロセッサのみにグローバルバス(1e)の使用権が与えられ、そのプロセッサに対してバス許可信号(1d−1)〜(1d−n)が送出される。バス許可信号を受けたプロセッサは、グローバルバス経由で共有メモリ(1f)にアクセスし、所望のデータ収受を行う。
【0003】
図1の実現方式においては、共有メモリ空間へのアクセスはリード、ライトの種別を問わず、そのすべてがグローバルバスを経由することとなる。
ここに以下の2つの制約がある。
【0004】
制約1:信号伝送に時間を要する(物理的制約)
制約2:バス使用権の順番待ち時間を要する(原理的制約)
前者は、グローバルバスにおいて信号伝送距離が長くなることや、複数のプロセッサが同一の信号線を共有することなどの電気的条件により、高速な信号伝送が困難となることに起因する。後者は、2つ以上のプロセッサが共有メモリに対して同時間にアクセスを行った場合、2つ目以降のプロセッサがグローバルバス使用権の調停により共有メモリに対するアクセスを待たされる時間が発生することに起因する。結果として、これらの制約は共有メモリ空間へのアクセスに以下の問題を発生させる。
【0005】
問題1:帯域(システムに許容される時間あたりのアクセス回数)の不足
問題2:レイテンシ(アクセス開始から完了までにかかる時間)の過大
図2は、各プロセッサ上に共有メモリキャッシュ(2h)を配置した従来例を示す図である。
【0006】
プロセッサコア(2g)が共有メモリ空間をリードした場合、共有メモリキャッシュ上に共有メモリ空間のデータのコピーがあれば、リード処理を内部バス(2i)を通じてプロセッサの上で完結でき、前記の制約1を軽減できる。また、グローバルバス経由のアクセスとならないため、グローバルバスの使用権調停が不要となり、前記の制約2から解放される。この点で、共有メモリキャッシュの導入は前記問題に対する改善策となる。
【0007】
共有メモリキャッシュの導入により各プロセッサが共有メモリ空間のデータのコピーを個別に保持し得ることになるが、共有メモリ空間上のデータは、全てのプロセッサにとって同じように見えなければならない。したがって、データ更新の契機となるライト処理に関しては、このことを保証するコヒーレンシ制御の考慮が必須となる。理由は後述するが、このコヒーレンシ制御も前記問題を解決する上での障壁となる。
【0008】
ここで、コヒーレンシ制御上の要件を、以下の3点に細分する。
要件1:時間的な同期
要件2:空間的な同期
要件3:更新時間の短縮
図3は、コヒーレンシ制御について説明する図である。
【0009】
図3は、上記の要件の意味を説明するもので、共有メモリ空間上のあるアドレスのデータが値0であったとき、該アドレスにプロセッサ1が値1をライトし、その後プロセッサ2が値2をライトし、他のプロセッサ3〜nが該アドレスをリードした場合を想定したものである。ここで、要件1は、個々のプロセッサ上で、たとえば、値2→値1の順にリードしてしまう可能性を排除することに相当し(t1≧0の保証)、また要件2は、たとえばすでに値1をリード したプロセッサがいるのに、その後に値0をリードするプロセッサが発生してしまう可能性を排除することに相当する(t2≧0の保証)。また、要件3は データ更新があった時点から、他のプロセッサが依然として更新前のデータをリードしてしまう時間と、更新後のデータを読み出せるようになるまでの時間を、共に可能な限り短くすることに相当する(t2およびt3の最小化)。要件3はコヒーレンシ制御上の必須要件とはならないが、システム性能を向上するために必要となる。
【0010】
図2におけるコヒーレンシ制御の例としては、共有メモリ空間に対するプロセッサのライト処理毎に、それを自身の共有メモリキャッシュに反映すると同時にグローバルバス経由で共有メモリにライトし、一方他のプロセッサはグローバルバスに現れるライトアクセスを監視して、該アドレスのデータが各々の共有メモリキャッシュ上にある場合、そのデータをグローバルバス上のデータで置換する方法が挙げられる。
【0011】
図4は、キャッシュコヒーレンシの確立の仕方の例を説明する図である。
図4は、上記方法に基づいた処理シーケンスの例である。図中、(4a)〜(4f)のタイミングはそれぞれ以下の事象に対応する。
(4a):プロセッサコアがライトアクセスを起動
(4b):ライトアクセス起動によりグローバルバス要求を送出
(4c):バス使用許可を受け、グローバルバスにアドレスをデータ出力
(4d):他プロセッサ/共有メモリがグローバルバスの情報を受信し、自身の共有メモリあるいは共有メモリキャッシュにライト
(4e):メモリライト完了
(4f):ライトアクセスを起動したプロセッサがバス開放
この例では、コヒーレンシ保証に必要な条件は以下の式で表される。
【0012】
rc(min)>tdsd(max)+tdmw(max) (1)
dsd(max)<tdsd(min)+tdmw(min) (2)
ここで、
rc:グローバルバスへのライト発行からバス開放までの時間
dsd:グローバルバスへのライト発行を他プロセッサが認識するのに必要な時間
dmw:プロセッサ/共有メモリがグローバルバス上のライトアクセスを認識してから、そのデータを自身に反映させるのにかかる時間
である。
【0013】
ここで、(1)式は前記の要件1を満たすための条件であり、ライト値が共有メモリ及び全てのプロセッサ上の共有メモリキャッシュに反映されてからグローバルバスを開放することを保証するものである(一般にはライト処理の完了応答を被ライト側から送出し、その受信をもってバス開放を行うシーケンスが採られる場合が多い)。その条件を満たすことで、グローバルバスの使用権調停により次のプロセッサがライト処理を開始するときには前のライト処理が完了していることが保証される。いわば、グローバルバスの持つ欠点によりコヒーレンシ制御の要件が満たされている格好であるが、実は前記の要件1は、データ更新の調停を要することと本質的に差異がない。データ更新の順序付けを保証することは、複数のデータ更新が同時に発生しないことを保証すること、つまり調停を行うことと等価だからである。したがって、前記のコヒーレンシ制御の要件1を満たすことは、グローバルバスを使用する上で生ずる前記の制約2を同じように受け、前記問題を解決する上での障壁となる。
【0014】
一方、(2)式は、図4中(4d)のタイミングが各プロセッサでばらつくのを吸収して、前記の要件2を満たすための条件である。(4d)のタイミングは、グローバルバスに現れたライトアクセスと競合するリードアクセスが各プロセッサ上で起動されたときに、更新前のデータがプロセッサコアに返されるか、更新後のデータが返されるかの境界となるタイミングである。更新後のデータが返送されるのは(4e)のタイミングであるので、(2)式を満たさないと、このタイミングがプロセッサによっては逆転し、前記の要件に反することになる。
【0015】
ここで、たとえば(1)式は、バス占有時間を一定以上にしなければならないこと、つまり共有メモリ空間の帯域に対する制約を与えることを示しているし、(2)式は共有メモリキャッシュや共有メモリに対する書き込み時間を短くして帯域を増やそうとしても、プロセッサ間で(4d)のタイミングがばらつくことを考慮し、一定以上の時間に保たなければならないことを示している。これらの例のとおり、各種の動作タイミングに条件が付されるために、処理時間の短縮を図って性能向上を図ろうとする場合に、コヒーレンシ制御自体が一種の制約を生むことになる。
【0016】
従来のキャッシュ間のコヒーレンシをとる技術として、特許文献1がある。特許文献1では、プロセッサモジュールは、キャッシュメモリを有し、他のプロセッサモジュールに、バスを介して、コヒーレンシトランザクションを発行する。コヒーレンシトランザクションを受け取ったプロセッサモジュールは、コヒーレンシ検査を実行する。コヒーレンシを維持するために更新を行う場合、更新に使われるべきデータは、バスを介して送られる。プロセッサモジュールとメインメモリとをつなぐ信号線は、コヒーレンシ検査の結果の通知に使われる。
【特許文献1】
特開平7−281956号公報
【発明の開示】
【0017】
本発明の課題は、以上に述べたようなコヒーレンシ制御を含む前記の各種制約による性能低下要因の最小化を図りながら、前記の課題を解決して共有メモリ空間の帯域とレイテンシの向上を図ったマルチプロセッサシステムを提供することである。
【0018】
本発明のマルチプロセッサシステムは、それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも1つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線手段と、データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバス手段とを備え、プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可することを特徴とする。
【0019】
本発明によれば、更新データを送受する専用回線手段を設けたことにより、更新データの送受信が高速化される。また、グローバルバス手段では、データ量の少ない更新通知のみを調停して転送すればよいので、バスの使用権の獲得のために長時間待たされることが少なくなる。また、更新通知にしたがって、更新データによる共有メモリ領域の更新を各プロセッサおよび共有メモリがするので、共有メモリキャッシュと共有メモリとのコヒーレンシが確保される。
【発明を実施するための最良の形態】
【0020】
図5は、本発明の実施形態に基づくシステムの構成図である。
本発明の実施形態の第1の態様における本発明の原理を以下に示す。図5において、従来例のグローバルバスに相当する部分は、更新通知バス(5e)として、データ更新の通知と、更新データの送出要求を専従的に行うバスとして用いられる。更新データの内容はデータチャネル(5g)を使用してリピータ(5h)との間で送受される。データチャネルは高速広帯域の既知の伝送手段(例えば、ギガビットイーサネット(登録商標)等)を用いることを想定する。リピータ(5h)はデータチャネルが接続された各ポートに現れたデータを、全てのポートに同報する機能を有する。なお、プロセッサの数が少なく現実的なデータチャネル数で収まる場合は、リピータを設けずに全てのプロセッサと共有メモリの間に1対1でデータチャネルを設け、各プロセッサ上で同報する処理を行ってもよい。また、共有メモリは特定のプロセッサ上に配置してしまってもよいし、特願2002−126212号公報にある例のように、各プロセッサが共有メモリ空間のサイズに等しい共有メモリキャッシュを具備する場合には、共有メモリ自体を設けなくてもよい。いずれの場合でも本発明の実施形態としての効果を得ることが可能である。
【0021】
各プロセッサは、プロセッサコアにより共有メモリ空間へのライト処理が発行されると、更新通知バスを獲得して更新対象のアドレスを更新通知バスに送出する。それと同時に、データチャネルの送信バッファに更新データを投入する。更新データは、主に各プロセッサとリピータのポート部における信号処理遅延を受け、更新通知に対して遅れて他のプロセッサに到達する。
【0022】
一方、更新通知バスは全てのプロセッサが常に監視しており、更新通知を検知すると、該アドレスをプロセッサ上の更新キューに書き込む。その後更新データが到着すると、それを共有メモリキャッシュにライトし、更新キューから該アドレスを消去する。また、更新キュー上に存在するアドレスに対してプロセッサコアからのリード処理が起動された場合、共有メモリキャッシュからのリードを保留し、更新データ到着時に共有メモリキャッシュへのライト処理とあわせてそのデータをプロセッサコアに返送する処理を行う。ここで、更新キューに格納されているアドレスは、全て全てのアドレスが監視対象となっており、更新データには、ライト先のアドレスが付加されている。したがって、各プロセッサでは、更新キュー内のアドレスと更新データに付加されているアドレスを比較して、共有メモリキャッシュの適切なアドレスに更新データを書き込むことができる。また、共有メモリの構成は、プロセッサの構成と基本的に同一であるが、共有メモリには、プロセッサコアが存在せず、共有メモリキャッシュがより容量の大きい共有メモリチップとなっている。
【0023】
共有メモリキャッシュ上に有効データが存在しない場合、つまりキャッシュミス時のリードアクセスは、更新通知バスに更新データ送出要求を発行し、共有メモリまたは他の有効なデータを共有メモリキャッシュ上に保持するプロセッサが更新データを送出することにより行う。
【0024】
図6は、本発明の実施形態における第1の態様の一連の処理に基づくタイムチャートの例である。
本例はプロセッサ1がアドレス1にデータ1を、それに続いてプロセッサ2がアドレス2にデータ2をライトしており、それと平行してプロセッサ3がアドレス1、アドレス0、アドレス1の順に共有メモリ空間をリードした場合である。なお、共有メモリ空間上のデータ初期値は全て0とする。なお、図6中、Aはアドレス、Dはデータを意味し、また、(1)←0等の表記はアドレス1へのデータ0のライト、1←(0)等の表記はアドレス0からのデータ1のリードをそれぞれ意味する。
【0025】
プロセッサ3の1回目のリード時には更新キューは空であるため、共有メモリキャッシュからリードが行われ、データ0がプロセッサコアに返送される。ついで、プロセッサ1からの更新通知を検知し、それがプロセッサ3の更新キューに投入される。プロセッサ3の2回目のリード時には、更新キューは空ではないが、更新キュー上にあるのはアドレス1のみであり、リードアドレスと一致するものが存在しないで、1回目のリードと同様の処理にてデータ0がプロセッサコアに返送される。3回目のリードでは、更新キュー上にリードアドレスと一致するものがあるため、共有メモリキャッシュのリードは起動されずリードアクセスは保持される。その後、プロセッサ1からアドレス1の更新データが到着すると、プロセッサ3の共有メモリキャッシュにデータ1がライトされて更新キューがクリアされ、同時にそのデータがアドレス1のリードデータとしてプロセッサコアに返送される。
【0026】
本方式の主な利点は次の2点である。一つは、データ更新を行う側のプロセッサにおいて、他のプロセッサの共有メモリキャッシュへの反映を待たなくてもすむためにバス占有時間を削減でき、共有メモリ空間の帯域の向上が図れることである。もう一つは、データ更新処理と競合しないリードアクセスの不要な待ち合わせ時間を排除することで、リードアクセスの平均レイテンシを低減し得ることである。このうち、後者の従来例に対する改善度合いは、共有メモリキャッシュのヒット率とアクセス競合の発生確率により変化するが、特にヒット率が高く競合発生確率が低いほど、本方式の優位性は顕著となる。
【0027】
本発明の実施形態の第1の態様における原理は、第1の態様におけるデータ更新の単位をブロック化することで、共有メモリ空間の帯域を更に拡大しようとするものである。通常考え得る実装では、データチャネルや共有メモリキャッシュの帯域は、更新通知バスのそれに比較してはるかに大きくすることが可能である。したがって、共有メモリ空間の帯域としては、更新通知バスの帯域により制限され、データチャネルや共有メモリキャッシュの帯域を活用しきれない可能性が生ずる。まず、これを解決しようとするものである。
【0028】
図7は、本発明の実施形態の第2の態様に基づく処理のタイムチャートの例である。
同図においては、データ更新を4アドレス単位としたものである。プロセッサ1及び2の送出する更新通知は更新対象アドレスの先頭を示すことにより行われ、対応するアドレスの更新データはデータチャネル上にひとまとめにして送出される。
【0029】
データ長が固定のままでは、ソフトウェアの処理上不要なデータまで組にしてデータ更新を行わなければならなくなるケースが発生するため、データチャネルや共有メモリキャッシュの帯域を浪費し、実効帯域を低下させる可能性が発生する。そのため、更新データサイズを可変として必要十分なデータのみがデータチャネルに送出されるように構成する。
【0030】
図8は、異なるデータサイズでデータ更新を行った場合のタイムチャートの例である。
同図においては、図7の例においてプロセッサ1の初回のライトが更新サイズ2となってる点のみが異なる。この差により、全体として2アドレス分のデータ収受に要する時間分、データチャネル及び共有メモリキャッシュの占有時間が減少する。また、その時間分プロセッサ2のライト処理に対応する更新データの到着が早くなり、更新キューの内容がクリアされるまでの時間が短くなるので、この原理によりアクセス競合時のレイテンシも低減することができる。
【0031】
また、第2の態様における方式は帯域の向上のみでなく、共有メモリ空間上にブロック単位での排他的更新を提供する手段ともなる。この点によりソフトウェア処理を効率化し、システムの処理能力を向上することも期待できる。同等のことをソフトウェアで実現するには、更新開始と完了を管理するために余分な処理が必要となるからである。
【0032】
本発明の実施形態の第3の態様における原理は、プロセッサがコヒーレンシ制御要否の属性をライトアクセス毎に選択することを可能として、コヒーレンシ制御不要の属性が指定されたライトアクセスについて更新通知を発行せず、更新データのみを他のプロセッサに送出する制御を行うものである。ソフトウェアの処理内容によっては、コヒーレンシ保証が不要な共有メモリ空間の用途もあるので、そのような処理に対して、この制御をソフトウェアが利用し、更新通知バスの使用頻度を削減して共有メモリ空間の帯域を向上すると共に、更新データが他プロセッサに反映される時間を短縮し、また不要なアクセス競合の発生によるレイテンシ増加を必要最小限に抑制してリードアクセスの平均レイテンシの削減を図ろうとするものである。
【0033】
図9は、本発明の実施形態の第3の態様に基づく処理のタイムチャートの例である。
この例におけるプロセッサのアクセスパターンは図6の例に準じており、プロセッサ1の初回のライトがコヒーレンシ制御不要の属性が付されてる点のみが異なる。プロセッサ1の初回のライトに伴う更新通知バス上の処理が起動されないため、それに要する分更新通知バスの占有時間が減少している。また、その分プロセッサ2による2回目のライトアクセスに伴う更新通知が更新通知バスに早く送出されるため、更新時間の短縮を図ることもできる。プロセッサ3の3回目のリードはプロセッサ1のライトより後に発行されているが、本制御により更新キューには投入されていないため、競合による待ち合わせが発生せず、通常と同じレイテンシにてリードアクセスが完了している。
【0034】
本発明の実施形態の第4の態様における原理は、プロセッサのオンライン増設時に、共有メモリ空間の全てのデータを保持するプロセッサもしくは共有メモリが、自身が持つ共有メモリ空間のデータをデータチャネルの空き時間を使用して、増設プロセッサに転送し、増設プロセッサはそのデータを受けて共有メモリキャッシュを初期化するものである。
【0035】
増設直後のプロセッサは共有メモリキャッシュの内容が全て無効データであり、そのまま運用系に参加させると共有メモリ空間へのアクセスが全て共有メモリキャッシュでミスヒットする。これにより、運用開始直後は増設プロセッサの処理能力が著しく低下するだけでなく、更新通知バスやデータチャネルが不用意に占有されるために他のプロセッサにも影響を与え、システム性能をかえって低下させる危険もある。本方式により、プロセッサ増設による運用系の処理能力低下を防ぎ、また増設プロセッサの処理能力も運用開始直後から最大限に引き上げることができる。
【0036】
図10は、本発明の実施形態の第4の態様の原理に基づいたタイムチャートの例である。
図中、a〜hは通常のデータ更新処理に基づく転送で、1〜8までが、本方式により行われる増設プロセッサへのデータ転送である。増設プロセッサは、自身が新たにシステムに実装されたことを、更新通知バスに特定の信号を送出するか、そしくは実装未実装を示す専用の信号線を用いるなどの方法で他のプロセッサに通知する。増設プロセッサ向けにデータを送出するプロセッサまたは共有メモリはその通知を受け、図10に示す通り、自身の更新キューが空のときに、更新データをデータチャネルに送出する。更新キューが空でなくなったら、直ちにデータ送出を中断して通常の処理を優先し、更新キューが空になったらデータ送出を再開する。このような処理により、システム上で行われる通常のデータ更新処理のタイミングに影響を与えることなく、増設プロセッサに対して共有メモリキャッシュを満たすためのデータを送出する処理を追加することができる。増設プロセッサは、データチャネルより受け取った全てのデータで満たされた後、本来の処理を開始し運用系へ参加する。このときには共有メモリキャッシュの内容は全て更新されており、運用開始直後から共有メモリキャッシュのヒット率が高く保たれ、システムとしての処理能力を向上することができる。
【0037】
図11及び図12は、本発明の実施形態の第5の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
第5の態様による制御の原理は、競合頻度の高い特定のアドレスへのライト処理に従来と同じ手法を選択的に使用できるようにすることで、競合時のリードアクセスのレイテンシを低減しようとするものである。図11に示す通り、更新データを転送するデータバス(11i)を設けて更新通知バスと同じ調停論理経路としてデータチャネル(11g)を使用するか、データバスを使用するかは、ライトアクセス毎にプロセッサが選択する。
【0038】
図12は、同時間に発行されたライトアクセスにおいて、更新データの転送経路にデータチャネルを使用した場合(P=0)と、データバスを使用した場合(P=1)のタイミングの相違を示したものである。ライトアクセス起動から、他のプロセッサが更新前のデータをリードしなくなるまでの時間は、tdsdであり、両者に相違はない。しかし、更新後のデータをリードできるように なるまでの時間は、(P=1)の場合のtduc1に対し、(P=0)の場合、データチャネルのレイテンシの影響を受け、tduc0に増大する。同一アドレスに対するリードアクセスの競合が発生しない限り、この差はなんら影響しないが、競合が発生した場合に、この時間差がリードアクセスのレイテンシ増大となって現れるので、競合が多発するアクセスについて(P=0)を選択的に使用する。それにより、リードアクセスの平均レイテンシを低減することができる。
【0039】
図13は、本発明の実施形態の第6の態様を説明する図である。
図13(a)は、第6の態様における制御のタイムチャートである。
第6の態様は、第5の態様における制御原理を、第1〜第4の態様におけるシステム構成にそのまま適用するもので、特定のライトアクセスについて、更新データの物理的な転送は行わずにデータ更新を行うものである。具体的には、共有メモリ空間上のアドレスとライトされるべきデータを、プロセッサコアが生成する特定のアドレスにあらかじめ対応付けておき、その特定アドレスに対するライトアクセスが発行された場合、更新通知が発行された時点で、その予約されたデータが更新データとして転送されたものとして取り扱う。この方法では小さな情報量のデータしか扱えないが、信号線数の多い従来のようなデータバスを設置することなく、かつ、第5の態様の方式と同じ効果を得ることができる。
【0040】
図13(a)の例では、アドレス1に対するライトは、共有メモリ空間上の同アドレスに対するデータ1のライトとして扱っている。更新通知の認識時、更新データが同時に伝達されたものとして扱えるため、第5の態様において(P=1)とした場合と同じタイミングで処理を行うことができる。また、データチャネルの占有が発生しないため、後続のアクセスがある場合は、そのアクセスにかかわるレイテンシを低減する効果も得られる。
【0041】
例えば、図13(a)の例において、アドレス2に対するライトをアドレス1に対するデータ0のライトとして扱う規約を設けて併用すれば、アクセス競合のオーバヘッドが少なく、他のプロセッサへの反映時間も高速な2値のフラグとしての機能をソフトウェアに提供することができる(図13(b))。
【0042】
図14は、本発明の実施形態に基づくより具体的なシステム構成図である。
システムはプロセッサ10基(14a−1)〜(14a−10)と、バスアービタ/リピータ(14b)から構成されている。バスアービタとリピータはまったく独立した機能を提供するものであるが、システム構成を簡易にするため、両ブロックを同一のユニットに収容している。更新通知バス(14c)は、バスクロックBC1〜BC10、バス要求信号NR1〜NR10、バス許可信号NG1〜NG10、更新通知アドレスNA(30ビット)、更新通知アドレスマスクNM(4ビット)、即時更新データND(4ビット)、更新通知信号NV、更新データ要求信号RV,即時更新属性信号NIからなり、BCに同期して動作する。データチャネルTSD1〜TSD10、RSD1〜RSD10は、約3ギガビット/秒の伝送帯域を持つシリアル伝送線路を対向させた全二重通信チャネルを用いている。プロセッサのうち少なくとも2つは共有メモリ空間の全内容を保持しており、うち1つはマスタプロセッサとして更新データ要求に応答する。
【0043】
図15は、図14中の各プロセッサ(14a−1)〜(14a−10)の内部構成図である。
プロセッサ内部の機能ブロックは、プロセッサコア(15a)、プロセッサバスブリッジ(15b)、更新通知バスブリッジ(15e)、データチャネルIF(15h)、更新キュー(15k)、共有メモリキャッシュ(15n)に大別される。各部の機能概略を以下に示す。
(15a)プロセッサコア
主処理部である。
(15b)プロセッサバスブリッジ
共有メモリ空間へのアクセスの包括的制御を行う。
【0044】
制御ブロック(15c)は全体の制御を、リダイレクタ(15d)は、各機能ブロック間のバススイッチングと、アドレス及びデータの変換を行う。
(15e)更新通知バスブリッジ
更新通知バスの制御を行う。
(15h)データチャネルIF
他プロセッサとの間で更新データの送受信を行う。
(15k)更新キュー
更新キューを収容しており、キュー状態を外部に出力する。
(15n)共有メモリキャッシュ
共有メモリ空間のデータを保持し、プロセッサコアに対して高速なアクセスを提供する。
【0045】
図16は、本発明の実施形態における第1の態様のライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は、図16中の各信号に付した番号に対応する。
(1)プロセッサコア(16a)がプロセッサアドレスPA、プロセッサデータPD、プロセッサ転送タイプPTを設定し、プロセッサライト信号PWを送信する。
(2)プロセッサバスブリッジ(16b)の制御ロジック(16c)はリダイレクタ機能制御信号FCを設定する。リダイレクタ(16d)は、それに応じ、プロセッサアドレスPAを実効アドレスEAとキャッシュアドレスCAに、プロセッサデータPDを実効データED及びキャッシュデータCDにエコーする。
(3)プロセッサバスブリッジ(16b)の制御ロジック(16c)は更新通知送信信号NSを送信する。
(4)更新通知バスブリッジ(16e)の送信部(16f)はNSを受け、バス要求信号NRを送信する。
(5)更新通知バスブリッジ(16e)の送信部(16f)がバス許可信号NGを受信し、更新通知バスを獲得する。
(6)更新通知アドレスNAにEAがエコーされ、更新通知信号NVが全プロセッサに送信される。NA及びNVは自プロセッサの更新通知バスブリッジ監視部(16g)にもループバックし受信される。
(7)更新通知バスブリッジ(16e)の監視部(16g)は、自身が送出したNVを受け取ると、NAを更新通知アドレスSAとしてエコーすると共に、NVを更新通知受信信号SVとして自プロセッサ内に送信する。SVを受け、更新キュー(16k)のキューレジスタ(16l)に該更新通知がキューイングされる。このとき、他のプロセッサ上でも同じ制御が行われる。
(8)プロセッサバスブリッジ(16b)の制御ロジック(16c)はSVを受けて更新データ送信信号USを送信し、これを受けたデータチャネルIF(16h)のフレーマ(16i)は、EA/EDの内容を送信バッファにキューイングする。USの送信後、プロセッサコアにアクナリッジ信号ACKが送信され、プロセッサコア側のアクセスは完了する。
(9)データチャネルIF(16h)のフレーマ(16i)では、送信バッファにキューイングされたデータが随時パケットに構築されており、完了した分からSERDES(16j)(シリアライザ・デシリアライザの略であり、シリアル信号をパラレル信号に変換したり、パラレル信号をシリアル信号に変換する機能ブロックである)に送信パラレルデータTPDとして送出される。SERDESはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルでTSDとして更新データを送出する。
【0046】
図17は、本発明の実施形態の第1の態様に基づく更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図17中の各信号に付した番号に対応する。
(1)データチャネルIF(17h)のSERDES(17j)が受信シリアルデータRSDを復調し、フレーマ(17i)に受信パラレルデータRPDとして送出する。
(2)データチャネルIF(17h)のフレーマ(17i)はRPDを受け、データ中のパケットの抽出及び展開を行い、更新データアドレスUA、更新データUDを設定し、更新データ受信信号URを送信する。これにあわせて、キューレジスタ(17l)のキュークリアアドレスQCAにUAがセットされる。
(3)プロセッサバスブリッジ(17b)の制御ロジック(17c)はURを受け、リダイレクタ機能制御信号FCを設定する。リダイレクタ(17d)はそれに応じ、UAをCAに、UDをCDにエコーする。制御ロジック(17c)にて他の処理が行われている場合、いったん待機し、それが完了しだい本処理を実行する。
(4)プロセッサバスブリッジ(17b)の制御ロジック(17c)はキャッシュライト信号CWを送信し、これを受けた共有メモリキャッシュ(17n)はCAで指定される所望のデータをCDにて更新する。また、制御ロジック(17c)は、キュークリア信号QCを送信し、これを受けた更新キュー(17k)は、(2)でセットしたQCAをキューレジスタ(17l)からクリアする。
【0047】
図18は、本発明の実施形態の第1の態様において、共有メモリキャッシュのデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図18中の各信号に付した番号に対応する。
(1)プロセッサコア(18a)がPA、PTを設定し、プロセッサリード信号PRを送信する。
(2)プロセッサバスブリッジ(18b)の制御ロジック(18c)はFCを設定し、リダイレクタ(18d)は、それに応じ、PAをEAとCAにエコーする。
(3)プロセッサバスブリッジ(18b)の制御ロジック(18c)がCRを送信する。
(4)共有メモリキャッシュ(18n)はCRを受け、CAにて指定されたキャッシュ上のデータが利用できない場合は利用不能信号NPを送信し、利用可能な場合はキャッシュデータCDを送信する。また、更新キュー(18k)の比較器(18m)は、EAで指定されるキューがキューレジスタ上にある場合、競合信号COLを送信する。
(5)プロセッサバスブリッジ(18b)の制御ロジック(18c)は、NP、COLのいずれも受信しなかった場合、CDをPDにエコーし、ACKを送信してアクセスは完了する。COLを受信した場合はCRを解除した後、COLが解除されるまで待ち、COL解除の後に(3)以降の処理を再度行う。ここで、COLを受信せず、NPを受信した場合の処理は以下で説明する。
【0048】
図19は、本発明の実施形態の第1の態様におけるリードアクセスにて、共有メモリキャッシュ上のデータを利用できず、更新データ要求処理を伴う場合の信号の流れを示す図である。
【0049】
そのフローを以下に示す。各行頭の番号は図19中の各信号に付した番号に対応する。なお、途中(4)までは前項で述べたリードアクセス時のフローとまったく同じであるため、省略する。
(5)プロセッサバスブリッジ(19b)の制御ロジック(19c)がCOLを受信せず、NPを受信した場合は、更新データ要求信号RSを送信する。
(6)更新通知バスブリッジ(19e)の送信部(19f)はRSを受け、バス要求信号NRを送信する。
(7)更新通知バスブリッジ(19e)の送信部(19f)がバス許可信号NGを受信し、更新通知バスを獲得する。
(8)更新通知アドレスNAにEAがエコーされ、更新データ要求信号RVが全プロセッサに送信される。NA及びRVは自プロセッサの更新通知バスブリッジ監視部(19g)にもループバックし受信される。
(9)更新通知バスブリッジ(19e)の監視部(19g)はNAをSAとしてエコーするとともに、自プロセッサが送出したRVを検知すると、自プロセッサ内にSVとしてエコーする。更新キュー(19k)はSVをキューセット信号QSとして受け、SAの内容をキューセットアドレスQSAとしてキューレジスタ(19l)にキューイングする。
(10)リードアクセス対象に一致するキューがキューイングされるため、更新キュー(19k)よりCOLが必ず送信される。COLの受信をもって、プロセッサバスブリッジ(19b)はCOLが解除されるまで、プロセッサコア(19a)からのリードアクセスを保留したまま更新通知と更新データの受信処理を行いながら待機する。
(11)(8)で送出された更新データ要求を受けて、マスタプロセッサから更新データが送出され、データチャネルIF(19h)は更新データアドレスUA、更新データUDを設定し、更新データ受信信号URを送信する。これにあわせて、キューレジスタ(19l)のキュークリアアドレスQCAにUAがセットされる。
(12)更新キュー(19k)からリードアクセス対象のキューがクリアされるため、COLが解除される。
(13)プロセッサバスブリッジ(19b)の制御ロジック(19c)は、COLの解除を受け、FCを制御してリダイレクタ(19d)を制御し、UAをCAに、UDをCDとPDにエコーする。
(14)プロセッサバスブリッジ(19b)の制御ロジック(19c)はキャッシュライト信号CWを送信して共有メモリキャッシュ上の所望のデータをCDにて更新すると共に、プロセッサコアに対してACKを送信し、リードアクセスを完了する。
【0050】
図20は、本発明の実施形態の第1の態様において、他のプロセッサから送信された更新データ要求に対する、マスタプロセッサによる応答時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図20中の各信号に付した番号に対応する。
(1)更新通知バスブリッジ(19e)の監視部(19g)はRVを検知すると、NAをSAにエコーすると共に、更新データ要求信号SRをプロセッサ内部に送信する。
(2)プロセッサバスブリッジ(20b)の制御ロジック(20c)は、自身がマスタプロセッサである場合、SRを受けてFCを設定してリダイレクタ(20d)を制御してSAをEAとCAにエコーし、CDとEDを接続する。ここで自身がマスタプロセッサでない場合、SRは無視される。なお、制御ロジック(17c)にて他の処理が行われている場合一旦待機し、それが完了しだい本処理を実行する。
(3)プロセッサバスブリッジ(20b)の制御ロジック(20c)は、CRを共有メモリキャッシュ(20n)に送信する。
(4)共有メモリキャッシュ(20n)からCDが送出されEDにエコーされる。
(5)プロセッサバスブリッジ(20b)の制御ロジック(20c)はUSを送信し、ライトアクセス時の更新データ送出処理と同様に、データチャネルに更新データが送出される。
【0051】
図21は、本発明の実施形態の第2の態様におけるライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図21中の各信号に付した番号に対応する。
(1)プロセッサコア(21a)がプロセッサアドレスPA、プロセッサデータPD、プロセッサ転送タイプPTを設定し、バースト転送により複数サイズのデータをリダイレクタに転送する。
(2)プロセッサバスブリッジ(21b)の制御ロジック(21c)はリダイレクタ機能制御信号FCを設定する。リダイレクタ(21d)はそれに応じ、プロセッサアドレスPAで設定された先頭のアドレスを実効アドレスEAにエコーする。また、バースト転送されたデータサイズをカウントし、そこから実行アドレスマスクEMを算出して出力する。ここで、実効アドレスマスクは、実効アドレスの下位何ビットを無視するかを示す信号である。PDに設定された複数サイズのデータはリダイレクタ内部のバッファに格納する。
(3)プロセッサバスブリッジ(21b)の制御ロジック(21c)は更新通知送信信号NSを送信する。
(4)更新通知バスブリッジ(21e)の送信部(21f)はNSを受け、バス要求信号NRを送信する。
(5)更新通知バスブリッジ(21e)の送信部(21f)がバス許可信号NGを受信し、更新通知バスを獲得する。
(6)更新通知アドレスNAにEAが、更新通知アドレスマスクNMにEMがエコーされ、更新通知信号NVが全プロセッサに送信される。NA、NM、NVは自プロセッサの更新通知バスブリッジ監視部(21g)にもループバックし受信される。
(7)更新通知バスブリッジ(21e)の監視部(21g)はNVを受け、NAを更新設定アドレスSA、NMを更新設定アドレスマスクSMにエコーして更新通知受信信号SVを送信する。更新キュー(21k)はSVをキューセット信号QSとして受け、SAの内容をキューセットアドレスQSA、SMの内容をキューセットアドレスマスクQSMとしてキューレジスタ(21l)にキューイングする。
(8)プロセッサバスブリッジ(21b)の制御ロジック(21c)は、SVを受けると更新データ送信信号USを送信し、同時にFCを設定する。リダイレクタ(21d)はこれに応じてバッファ内に格納した更新データの先頭のデータから順番にEDとして設定する。これを受けたデータチャネルIF(21h)のフレーマ(21i)はEA/EM/EDの内容を送信バッファにキューイングする。USの送信後、プロセッサコアにアクナリッジ信号ACKが送信され、プロセッサコア側のアクセスは完了する。
(9)データチャネルIF(21h)のフレーマ(21i)では、送信バッファにキューイングされたデータを随時パケットに構築しており、完了した分からSERDES(21j)に送信パラレルデータTPDとして送出される。SERDESは、これを受け、データチャネルで搬送される電気信号に変調を行い、送信シリアルデータTSDとして更新データを送出する。
【0052】
図22は、本発明の実施形態の第2の態様において、他プロセッサから送出された更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図22中の各信号に付した番号に対応する。
(1)データチャネルIF(22h)のSERDES(22j)が受信シリアルデータRSDを復調し、フレーマ(22i)に受信パラレルデータRPDとして送出する。
(2)データチャネルIF(22h)のフレーマ(22i)はRPDを受け、データ中のパケットの抽出及び展開を行い、更新データアドレスUA、更新アドレスマスクUMに設定し、更新データ受信信号URを送信する。これに合わせて、キューレジスタ(22l)のキュークリアアドレスQCAにUAがセットされる。また、UR送信と同時に更新データを先頭データから順番にUDに設定する。
(3)プロセッサバスブリッジ(22b)の制御ロジック(22c)はURを受け、リダイレクタ機能制御信号FCを設定する。UAとUDは一旦リダイレクタ内のバッファに格納し、UAがCA、UDの先頭データがCDに設定される。CAに設定制御ロジック(22c)にて他の処理が行われている場合、一旦待機し、それが完了しだい本処理を実行する。
(4)プロセッサバスブリッジ(22b)の制御ロジック(22c)はキャッシュライト信号CWを送信し、これを受けた共有メモリキャッシュ(22n)はCAで指定される所望のデータをCDにて更新する。続けてリダイレクタのバッファに格納された次の更新データをCDに設定し、CAの値を1つインクリメントして、同様のキャッシュメモリ更新処理を、UMの設定値にしたがって、バッファ内の更新データがなくなるまで繰り返し行う。その後、キュークリア信号QCを送信し、これを受けた更新キュー(22k)は、(2)でセットしたQCAをキューレジスタ(22l)からクリアする。
【0053】
図23は、本発明の実施形態の第3の態様における更新通知を省略したライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図23中の各信号に付した番号に対応する。
(1)プロセッサコア(23a)がプロセッサ転送タイプPTにデータオンリ属性を設定し、プロセッサアドレスPA、プロセッサデータPD、プロセッサライト信号PWを送信する。
(2)プロセッサバスブリッジ(23b)の制御ロジック(23c)は、リダイレクタ機能制御信号FCを設定する。リダイレクタ(23d)はそれに応じ、プロセッサアドレスPAを実行アドレスEAに、プロセッサデータPDを実効データEDにエコーする。
(3)プロセッサバスブリッジ(23b)の制御ロジック(23c)は、データオンリ属性信号DOを設定し、更新データ送信信号USを送信する。USの送信後プロセッサコアにアクナリッジ信号ACKが送信され、プロセッサコア側のアクセスは完了する。
(4)更新データ送信信号USとデータオンリ属性信号DOを受信したデータチャネルIF(23h)のフレーマ(23i)はEA/EDの内容及びデータオンリ属性を送信バッファにキューイングする。
(5)データチャネルIF(23h)のフレーマ(23i)では、送信バッファにキューイングされたデータおよび属性を随時パケットに構築しており、完了した分からSERDES(23j)に送信パラレルデータTPDとして送出される。SERDESはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルデータTSDとして更新データを送出する。
【0054】
図24は、本発明の実施形態の第3の態様において、他プロセッサから送出された更新通知を省略した更新データ受信時の信号の流れを示す図ある。
そのフローを以下に示す。各行頭の番号は図24中の各信号に付した番号に対応する。
(1)データチャネルIF(24h)のSERDES(24j)が受信シリアルデータRSDを復調し、フレーマ(24i)に受信パラレルデータRPDとして送出する。
(2)データチャネルIF(24h)のフレーマ(24i)はRPDを受け、データ中のパケットの抽出および展開を行い、更新データアドレスUA、更新データUD、データオンリ属性DOを設定し、更新データ受信信号URを送信する。
(3)プロセッサバスブリッジ(24b)の制御ロジック(24c)は更新データ受信信号URとデータオンリ属性信号DOを受け、リダイレクタ機能制御信号FCを設定する。リダイレクタ(24d)はそれに応じ、UAをキャッシュアドレスCAに、UDをキャッシュデータCDにエコーする。制御ロジック(24c)にて他の処理が行われている場合一旦待機し、それが完了しだい本処理を実行する。
(4)プロセッサバスブリッジ(24b)の制御ロジック(24c)はキャッシュライト信号CWを送信し、これを受けた共有メモリキャッシュ(24n)はCAで指定される所望のデータをCDにて更新する。
【0055】
図25は、本発明の実施形態の第2の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ送信要求を行うときの信号の流れを示す図である。
【0056】
そのフローを以下に示す。各行頭の番号は図25中の各信号に付した番号に対応する。
(1)プロセッサバスブリッジ(25b)の制御ロジック(25c)は、自プロセッサがシステムに増設されたことを検知すると、全データ送信要求信号としてRSとISを同時に送信する。
(2)更新通知バスブリッジ(25e)の送信部(25f)はRSとISを受け、バス要求信号NRを送信する。
(3)更新通知バスブリッジ(25e)の送信部(25f)がバス許可信号NGを受信し、更新通知バスを獲得する。
(4)更新通知バスブリッジ(25e)の送信部(25f)はRVとNIを同時に送信する。
【0057】
図26は、本発明の実施形態の第4の態様におけるキャッシュフィル動作において、マスタプロセッサが全データ送信要求に応答して全データ送信を行うときの信号の流れを示す図である。
【0058】
そのフローを以下に示す。各行頭の番号は、図26中の各信号に付した番号に対応する。
(1)マスタプロセッサの更新通知バスブリッジ(26e)の監視部(26g)は、RVと同時にNIを受信すると、SRとSIを同時に送信する。
(2)プロセッサバスブリッジ(26b)の制御ロジック(26c)はSRとSIを同時に受信すると全データ送信要求信号と解釈し、共有メモリ空間の先頭のアドレスを送信開始アドレス、及び、次送信アドレスとして記憶する。
(3)システムに別のプロセッサが増設され、マスタプロセッサの制御ロジック(26c)が、再び全データ要求信号を受信した場合、制御ロジック(26c)は先に記憶した次送信アドレスを送信開始アドレスとして記憶する。
(4)制御ロジック(26c)はキューエンプティ信号QEが有効であり、かつ、他に要求されている処理がないとき、リダイレクタ機能制御信号FCを設定し、リダイレクタ(26d)は先に記憶した次送信アドレスをキャッシュアドレスCAに設定し、制御ロジック(26c)はキャッシュリード信号CRを送信する。
(5)共有メモリキャッシュ(26n)はCRを受け、CAにて指定されたキャッシュ上のデータをキャッシュデータCDに送信する。
(6)プロセッサバスブリッジ(26b)のリダイレクタ(26d)は、先に設定したCAを実効アドレスEAにも設定し、CDを実効データEDにエコーする。制御ロジック(26c)はデータオンリ属性DOを設定し、更新データ送信信号USを送信する。これを受けたデータチャネルIF(26h)のフレーマ(26i)はEA/EDの内容及びデータオンリ属性を送信バッファにキューイングする。
(7)プロセッサバスブリッジ(26b)の制御ロジック(26c)は、送信したアドレスの次のアドレスを次送信アドレスとして記憶する。送信したアドレスが共有メモリ空間の最後のアドレスに達した場合は、共有メモリ空間の先頭のアドレスを次送信アドレスとして記憶する。次送信アドレスが先に記憶した送信開始アドレスと一致した場合、全データ送信を終了する。
(8)(3)〜(7)の手順を繰り返して、順次データを送出する。
(9)データチャネルIF(26h)のフレーマ(26i)では、送信バッファにキューされたデータを随時パケットに構築しており、完了した分からSERDES(26j)に送信パラレルデータTPDとして送出される。SERDESはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルデータTSDとしてデータを送出する。
【0059】
図27は、本発明の実施形態の第4の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ受信を行うときの信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図27中の各信号に付した番号に対応する。
(1)全データ受信動作中に制御ロジック(27c)が、プロセッサリード信号PR、または、プロセッサライト信号PWを受信した場合、制御ロジック(27c)は、この要求を保留する。全データ受信動作中であっても、更新キューへのキューイング、クリアはそれぞれ図16、図17で示されたフローで行う。
(2)データチャネルIF(27h)のSERDES(27j)が受信シリアルデータRSDを復調し、フレーマ(27i)に受信パラレルデータRPDとして送出する。
(3)データチャネルIF(27h)のフレーマ(27i)はRPDを受け、データ中のパケットの抽出および展開を行い、更新データアドレスUA、更新データUD、データオンリ属性DOを設定し、更新データ受信信号URを送信する。
(4)プロセッサバスブリッジ(27b)の制御ロジック(27c)はURを受け、リダイレクタ機能制御信号FCを設定する。リダイレクタ(27d)は、それに応じ、UAをキャッシュアドレスCAに、UDをキャッシュデータCDにエコーする。制御ロジック(27c)にて他の処理が行われている場合一旦待機し、それが完了次第本処理を実行する。
(5)プロセッサバスブリッジ(27b)の制御ロジック(27c)はキャッシュライト信号CWを送信する。データオンリ属性DOを受信しているので、キュークリア信号QCは送信しない。
(6)キャッシュライト信号CWを受けた共有メモリキャッシュ(27n)は、CA及びCDで指定される所望のデータを更新し、更新前の状態において該データが利用不可能な状態であった場合、利用不可能信号NPを送信する。
(7)プロセッサバスブリッジ(27b)の制御ロジック(27c)は、全データ受信動作中に利用不能信号NPを受信した回数を計測することで、共有メモリキャッシュの全領域が有効データでフィルされたことを認識すると、全データ受信動作を終了する。
(8)全データ受信動作が終了したときに、保留されているプロセッサリード信号PR、または、プロセッサライト信号PWがあった場合には、その動作を開始する。
【0060】
図28は、本発明の実施形態の第5の態様に基づくライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。
(1)プロセッサコア(28a)がPA、PD、PTを設定してPWを送信。
(2)プロセッサバスブリッジ(28b)の制御ロジック(28c)はリダイレクタ機能制御信号FCを設定する。リダイレクタ(28d)はそれに応じ、プロセッサアドレスPAを実効アドレスEAとキャッシュアドレスCAに、プロセッサデータPDを実効データED及びキャッシュデータCDにエコーする。
(3)プロセッサバスブリッジ(28b)の制御ロジック(28c)は更新通知送信信号NSを送信する。あわせて、PAが規定のアドレス空間にある場合に即時更新属性送信信号ISを送信する。
(4)更新通知バスブリッジ(28e)の送信部(28f)はNSを受け、NRを送信する。
(5)更新バスブリッジ(28e)の送信部(28f)がNGを受信し、更新通知バスを獲得する。
(6)更新通知アドレスNAにEAが、即時更新属性信号NIにISが、即時更新データNDにEDがそれぞれエコーされ、更新通知信号NVが全プロセッサに送信される。NA、ND、NV、NIは自プロセッサの更新通知バスブリッジ監視部(28g)にもループバックし受信される。
(7)更新通知バスブリッジ(28e)の監視部(28g)は、NVをNIと共に受信すると、即時更新信号SIとして自プロセッサ内にエコーする。他のプロセッサ上でも同じ動作が行われる。
(8)プロセッサバスブリッジ(28b)の制御ロジック(28c)は、リダイレクタ機能制御信号FCを設定する。リダイレクタ(28d)はそれに応じ、SAをCAに、SDをCDにエコーする。他のプロセッサ上でも同じ動作が行われる。この際プロセッサバスブリッジ(28b)が別の処理を行っている場合、その処理の完了後にこの処理を最優先で行う。
(9)プロセッサバスブリッジ(28b)の制御ロジック(28c)は、キャッシュライト信号CWを送信し、これを受けた共有メモリキャッシュ(28n)はCAで指定される所望のデータをCDにて更新する。他のプロセッサ上でも同じ動作が行われる。
(10)プロセッサコアにACKが送信され、プロセッサコア側のアクセスが完了する。
【0061】
本発明の実施形態の第6の態様に基づくライトアクセスは、特定アドレスへのライト時に予約データを用いるもので、そのフローは第5の態様におけるライトアクセスにほぼ準じる。以下の点が差分である。
(8)プロセッサバスブリッジ(28b)のリダイレクタ(28d)は、SAがそのアクセスに予約データを用いる特定アドレスと解釈される場合、SDを無視し、SAに対応する予約データを生成してCDに出力する。
【産業上の利用可能性】
【0062】
以上の通り、共有メモリキャッシュを具備するプロセッサにより構成される共有メモリ型マルチプロセッサシステムにおいて、本発明の適用によりコヒーレンシ保証に必要な時間と、データ転送に必要な時間が明確に分離され、共有メモリ空間のアクセスにおいて従来技術に存在した問題が以下の点で解決される。
・バス占有時間の最小化と、不要なレイテンシ増大要因の排除
・データ転送経路のレイテンシ隠蔽と、これによる帯域拡大の容易化
これにより、共有メモリキャッシュの高速性を最大限に活用することが可能となり、共有メモリ空間アクセスの帯域とレイテンシの双方が改善され、システムの処理能力向上に寄与することができる。
【図面の簡単な説明】
【0063】
【図1】最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す図である。
【図2】各プロセッサ上に共有メモリキャッシュ(2h)を配置した従来例を示す図である。
【図3】コヒーレンシ制御について説明する図である。
【図4】キャッシュコヒーレンシの確立の仕方の例を説明する図である。
【図5】本発明の実施形態に基づくシステムの構成図である。
【図6】本発明の実施形態における第1の態様の一連の処理に基づくタイムチャートの例である。
【図7】本発明の実施形態の第2の態様に基づく処理のタイムチャートの例である。
【図8】異なるデータサイズでデータ更新を行った場合のタイムチャートの例である。
【図9】本発明の実施形態の第3の態様に基づく処理のタイムチャートの例である。
【図10】本発明の実施形態の第4の態様の原理に基づいたタイムチャートの例である。
【図11】本発明の実施形態の第5の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
【図12】本発明の実施形態の第5の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
【図13】本発明の実施形態の第6の態様を説明する図である。
【図14】本発明の実施形態に基づくより具体的なシステム構成図である。
【図15】図14中の各プロセッサ(14a−1)〜(14a−10)の内部構成図である。
【図16】本発明の実施形態における第1の態様のライトアクセス時の信号の流れを示す図である。
【図17】本発明の実施形態の第1の態様に基づく更新データ受信時の信号の流れを示す図である。
【図18】本発明の実施形態の第1の態様において、共有メモリキャッシュのデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。
【図19】本発明の実施形態の第1の態様におけるリードアクセスにて、共有メモリキャッシュ上のデータを利用できず、更新データ要求処理を伴う場合の信号の流れを示す図である。
【図20】本発明の実施形態の第1の態様において、他のプロセッサから送信された更新データ要求に対する、マスタプロセッサによる応答時の信号の流れを示す図である。
【図21】本発明の実施形態の第2の態様におけるライトアクセス時の信号の流れを示す図である。
【図22】本発明の実施形態の第2の態様において、他プロセッサから送出された更新データ受信時の信号の流れを示す図である。
【図23】本発明の実施形態の第3の態様における更新通知を省略したライトアクセス時の信号の流れを示す図である。
【図24】本発明の実施形態の第3の態様において、他プロセッサから送出された更新通知を省略した更新データ受信時の信号の流れを示す図ある。
【図25】本発明の実施形態の第2の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ送信要求を行うときの信号の流れを示す図である。
【図26】本発明の実施形態の第4の態様におけるキャッシュフィル動作において、マスタプロセッサが全データ送信要求に応答して全データ送信を行うときの信号の流れを示す図である。
【図27】本発明の実施形態の第4の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ受信を行うときの信号の流れを示す図である。
【図28】本発明の実施形態の第5の態様に基づくライトアクセス時の信号の流れを示す図である。

Claims (10)

  1. それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも1つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、
    共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線手段と、
    データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバス手段とを備え、
    プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可することを特徴とするマルチプロセッサシステム。
  2. 前記専用回線手段は、前記プロセッサからの回線を前記共有メモリに接続するリピータ手段を備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. 前記専用回線手段は、前記複数のプロセッサのそれぞれに設けられた専用線からなることを特徴とする請求項2に記載のマルチプロセッサシステム。
  4. 前記更新通知に複数の更新データを対応付け、1度の更新で複数の更新データ単位の更新を行うことを特徴とする請求項1に記載のマルチプロセッサシステム。
  5. 前記更新通知では、1度の更新で更新に使うデータのサイズを可変とすることを特徴とする請求項4に記載のマルチプロセッサシステム。
  6. 前記共有メモリ空間上の、キャッシュコヒーレンシの維持が必要ないデータの更新は、前記更新通知を送信することなく、該キャッシュコヒーレンシの維持が必要でないデータのアドレスに更新データを送信することによって、行うことを特徴とする請求項1に記載のマルチプロセッサシステム。
  7. 前記マルチプロセッサシステムに新しいプロセッサが増設された場合、該プロセッサの共有メモリキャッシュに、他のプロセッサの共有メモリキャッシュの内容を転送し、その後に、該新しいプロセッサを運用することを特徴とする請求項1に記載のマルチプロセッサシステム。
  8. 前記グローバルバス手段を用いて、更新通知と更新に使うべきデータを転送して、前記共有メモリ領域の更新を行う手段を更に備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
  9. 前記共有メモリ領域の特定のアドレスへのアクセスについては、前記更新通知のみを送受し、該更新通知を受け取ったプロセッサあるいは共有メモリは、予め定められたデータを用いて、該アドレスの更新を行うことを特徴とする請求項1に記載のマルチプロセッサシステム。
  10. それぞれが共有メモリキャッシュを備える複数のプロセッサと共有メモリが相互に結合され、共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線と、データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバスとを備えたマルチプロセッサシステムにおけるメモリアクセスを高速化する方法であって、
    プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行うステップと、
    各プロセッサ及び共有メモリにおいて、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可するステップと、
    を備えることを特徴とする方法。
JP2005500234A 2003-05-30 2003-05-30 マルチプロセッサシステム Expired - Fee Related JP3764893B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/006868 WO2004107180A1 (ja) 2003-05-30 2003-05-30 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP3764893B2 true JP3764893B2 (ja) 2006-04-12
JPWO2004107180A1 JPWO2004107180A1 (ja) 2006-07-20

Family

ID=33485807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005500234A Expired - Fee Related JP3764893B2 (ja) 2003-05-30 2003-05-30 マルチプロセッサシステム

Country Status (3)

Country Link
US (1) US7320056B2 (ja)
JP (1) JP3764893B2 (ja)
WO (1) WO2004107180A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375067C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
JP2007179085A (ja) * 2005-12-26 2007-07-12 Fujitsu Ltd ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム
JP4818820B2 (ja) * 2006-06-07 2011-11-16 ルネサスエレクトロニクス株式会社 バスシステムおよびバススレーブならびにバス制御方法
JP5100176B2 (ja) * 2007-03-29 2012-12-19 株式会社東芝 マルチプロセッサシステム
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
JP2009080747A (ja) * 2007-09-27 2009-04-16 Panasonic Corp マルチプロセッサ装置および情報処理装置
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US20090257263A1 (en) * 2008-04-15 2009-10-15 Vns Portfolio Llc Method and Apparatus for Computer Memory
US9471532B2 (en) 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
WO2012117389A1 (en) * 2011-02-28 2012-09-07 Dsp Group Ltd. A method and an apparatus for coherency control
WO2012144012A1 (ja) * 2011-04-18 2012-10-26 富士通株式会社 スレッド処理方法、およびスレッド処理システム
US20130111149A1 (en) * 2011-10-26 2013-05-02 Arteris SAS Integrated circuits with cache-coherency
JP5936152B2 (ja) 2014-05-17 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリアクセストレース方法
CN109491587B (zh) * 2017-09-11 2021-03-23 华为技术有限公司 数据访问的方法及装置
CN112100093B (zh) * 2020-08-18 2023-11-21 海光信息技术股份有限公司 保持多处理器共享内存数据一致性的方法和多处理器系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56163572A (en) * 1980-05-19 1981-12-16 Hitachi Ltd Data processing system
US6112287A (en) * 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
JPH0776942B2 (ja) * 1991-04-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システムおよびそのデータ伝送装置
KR960006484B1 (ko) * 1992-09-24 1996-05-16 마쯔시다 덴기 산교 가부시끼가이샤 캐쉬메모리장치
JP3100807B2 (ja) * 1992-09-24 2000-10-23 松下電器産業株式会社 キャッシュメモリ装置
DE69323861T2 (de) * 1993-01-25 1999-10-07 Bull Hn Information Syst Multiprozessorsystem mit gemeinsamem Speicher
US6182176B1 (en) * 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
US5754865A (en) * 1995-12-18 1998-05-19 International Business Machines Corporation Logical address bus architecture for multiple processor systems
US6484220B1 (en) * 1999-08-26 2002-11-19 International Business Machines Corporation Transfer of data between processors in a multi-processor system

Also Published As

Publication number Publication date
JPWO2004107180A1 (ja) 2006-07-20
WO2004107180A1 (ja) 2004-12-09
US20060075197A1 (en) 2006-04-06
US7320056B2 (en) 2008-01-15

Similar Documents

Publication Publication Date Title
JP3764893B2 (ja) マルチプロセッサシステム
US7165094B2 (en) Communications system and method with non-blocking shared interface
US6757768B1 (en) Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US5546385A (en) Flexible switching hub for a communication network
US6862608B2 (en) System and method for a distributed shared memory
US20100064082A1 (en) Communication module
KR100814904B1 (ko) 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
US20060242257A1 (en) Multi-processor system and message transferring method in the same
US6581113B1 (en) Apparatus and method for transferring frame data between a host system memory and a network interface buffer memory employing transmit descriptors without transmit status information
US20060248218A1 (en) Multi-processor system and message transferring method in the same
US20190146935A1 (en) Data transfer device, arithmetic processing device, and data transfer method
CN112559436B (zh) 一种rdma通信设备的上下文访问方法及系统
JP7394185B2 (ja) 通信システム
JP2008250985A (ja) 半導体集積回路及び画像処理装置
US5347514A (en) Processor-based smart packet memory interface
CN114679415B (zh) 一种满足AXI5-Lite协议标准的无阻塞banyan网络
JPH11212939A (ja) 共通バスによって相互接続されたプロセッサを有するデータプロセッサユニット間でデータを交換するためのシステム
US20100272439A1 (en) Optical network system and memory access method
KR20050056934A (ko) 메모리 상호 접속에서 판독 착수 최적화를 위한 방법 및장치
US20060146811A1 (en) On-chip network interfacing apparatus and method
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
KR100766666B1 (ko) 멀티프로세서 시스템
JP4687925B2 (ja) 優先調停システム及び優先調停方法
JP4104939B2 (ja) マルチプロセッサシステム
US20230185756A1 (en) Packet control apparatus and packet control method

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060123

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100127

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees