(57)【要約】共有メモリにデータを書き込む際のデータの送信を、各プロセッサと共有メモリとの間に設けられる高速の専用回線を使って行う。各プロセッサは、共有メモリの共有メモリ空間に書き込みを行う場合には、従来のグローバルバスに対応する更新通知バスに、いずれのアドレスへの更新をするかを通知する。この通知を検出した他のプロセッサは、共有メモリキャッシュ内のそのアドレスへのアクセスを禁止し、当該アドレスへの書き込みデータが専用回線を使って送られてくるのを待つ。データが送られてくると、共有メモリキャッシュの対応アドレスにデータを書き込む。このとき、共有メモリの対応するアドレスにも当該データが書き込まれ、キャッシュコヒーレンシが保たれる。また、書き込みアドレスを送信するには、バスの使用権取得が必要であるが、データの送信は専用回線を使うので、バスの使用権獲得のための時間が大きく削減される。
2004107180.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも１つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、
共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線手段と、
データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバス手段とを備え、
プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可することを特徴とするマルチプロセッサシステム。
【請求項２】
前記専用回線手段は、前記プロセッサからの回線を前記共有メモリに接続するリピータ手段を備えることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記専用回線手段は、前記複数のプロセッサのそれぞれに設けられた専用線からなることを特徴とする請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記更新通知に複数の更新データを対応付け、１度の更新で複数の更新データ単位の更新を行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項５】
前記更新通知では、１度の更新で更新に使うデータのサイズを可変とすることを特徴とする請求項４に記載のマルチプロセッサシステム。
【請求項６】
前記共有メモリ空間上の、キャッシュコヒーレンシの維持が必要ないデータの更新は、前記更新通知を送信することなく、該キャッシュコヒーレンシの維持が必要でないデータのアドレスに更新データを送信することによって、行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項７】
前記マルチプロセッサシステムに新しいプロセッサが増設された場合、該プロセッサの共有メモリキャッシュに、他のプロセッサの共有メモリキャッシュの内容を転送し、その後に、該新しいプロセッサを運用することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項８】
前記グローバルバス手段を用いて、更新通知と更新に使うべきデータを転送して、前記共有メモリ領域の更新を行う手段を更に備えることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項９】
前記共有メモリ領域の特定のアドレスへのアクセスについては、前記更新通知のみを送受し、該更新通知を受け取ったプロセッサあるいは共有メモリは、予め定められたデータを用いて、該アドレスの更新を行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項１０】
それぞれが共有メモリキャッシュを備える複数のプロセッサと共有メモリが相互に結合されたマルチプロセッサシステムにおけるメモリアクセスを高速化する方法において、
共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線を設けるステップと、
データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバスを設けるステップと、
プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可するステップと、
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】  本発明は、複数のプロセッサを結合し、それらプロセッサに共有される共有メモリ空間を配置する共有メモリ型マルチプロセッサシステムで、特に共有メモリ空間のデータをキャッシュする共有メモリキャッシュが具備されたプロセッサにより構成されるシステムに関する。ソフトウェアの処理は各プロセッサにより分担されて行われ、共有メモリはプロセッサ間で処理を引き継ぐ際のデータの受け渡しやプロセッサ単体ではなくシステム単位で管理すべき情報を格納する場所などとして使われる。共有メモリキャッシュは、共有メモリへのアクセスを高速化してシステム性能を向上するために導入される。
【背景技術】  図１は、最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す図である。
複数のプロセッサと共有メモリが同一のグローバルバスで接続され、各プロセッサは、このグローバルバスを経由して、共有メモリにアクセスする。各プロセッサ（１ａ−１）〜（１ａ−ｎ）は、アービタ（１ｂ）に対してバス要求信号（１ｃ−１）〜（１ｃ−ｎ）を送出し、アービタにより使用権が調停され、同時間に１つのプロセッサのみにグローバルバス（１ｅ）の使用権が与えられ、そのプロセッサに対してバス許可信号（１ｄ−１）〜（１ｄ−ｎ）が送出される。バス許可信号を受けたプロセッサは、グローバルバス経由で共有メモリ（１ｆ）にアクセスし、所望のデータ収受を行う。
図１の実現方式においては、共有メモリ空間へのアクセスはリード、ライトの種別を問わず、そのすべてがグローバルバスを経由することとなる。
ここに以下の２つの制約がある。
制約１：信号伝送に時間を要する（物理的制約）
制約２：バス使用権の順番待ち時間を要する（原理的制約）
前者は、グローバルバスにおいて信号伝送距離が長くなることや、複数のプロセッサが同一の信号線を共有することなどの電気的条件により、高速な信号伝送が困難となることに起因する。後者は、２つ以上のプロセッサが共有メモリに対して同時間にアクセスを行った場合、２つ目以降のプロセッサがグローバルバス使用権の調停により共有メモリに対するアクセスを待たされる時間が発生することに起因する。結果として、これらの制約は共有メモリ空間へのアクセスに以下の問題を発生させる。
問題１：帯域（システムに許容される時間あたりのアクセス回数）の不足
問題２：レイテンシ（アクセス開始から完了までにかかる時間）の過大
図２は、各プロセッサ上に共有メモリキャッシュ（２ｈ）を配置した従来例を示す図である。
プロセッサコア（２ｇ）が共有メモリ空間をリードした場合、共有メモリキャッシュ上に共有メモリ空間のデータのコピーがあれば、リード処理を内部バス（２ｉ）を通じてプロセッサの上で完結でき、前記の制約１を軽減できる。また、グローバルバス経由のアクセスとならないため、グローバルバスの使用権調停が不要となり、前記の制約２から解放される。この点で、共有メモリキャッシュの導入は前記問題に対する改善策となる。
共有メモリキャッシュの導入により各プロセッサが共有メモリ空間のデータのコピーを個別に保持し得ることになるが、共有メモリ空間上のデータは、全てのプロセッサにとって同じように見えなければならない。したがって、データ更新の契機となるライト処理に関しては、このことを保証するコヒーレンシ制御の考慮が必須となる。理由は後述するが、このコヒーレンシ制御も前記問題を解決する上での障壁となる。
ここで、コヒーレンシ制御上の要件を、以下の３点に細分する。
要件１：時間的な同期
要件２：空間的な同期
要件３：更新時間の短縮
図３は、コヒーレンシ制御について説明する図である。
図３は、上記の要件の意味を説明するもので、共有メモリ空間上のあるアドレスのデータが値０であったとき、該アドレスにプロセッサ１が値１をライトし、その後プロセッサ２が値２をライトし、他のプロセッサ３〜ｎが該アドレスをリードした場合を想定したものである。ここで、要件１は、個々のプロセッサ上で、たとえば、値２→値１の順にリードしてしまう可能性を排除することに相当し（ｔ１≧０の保証）、また要件２は、たとえばすでに値１をリードしたプロセッサがいるのに、その後に値０をリードするプロセッサが発生してしまう可能性を排除することに相当する（ｔ２≧０の保証）。また、要件３はデータ更新があった時点から、他のプロセッサが依然として更新前のデータをリードしてしまう時間と、更新後のデータを読み出せるようになるまでの時間を、共に可能な限り短くすることに相当する（ｔ２およびｔ３の最小化）。要件３はコヒーレンシ制御上の必須要件とはならないが、システム性能を向上するために必要となる。
図２におけるコヒーレンシ制御の例としては、共有メモリ空間に対するプロセッサのライト処理毎に、それを自身の共有メモリキャッシュに反映すると同時にグローバルバス経由で共有メモリにライトし、一方他のプロセッサはグローバルバスに現れるライトアクセスを監視して、該アドレスのデータが各々の共有メモリキャッシュ上にある場合、そのデータをグローバルバス上のデータで置換する方法が挙げられる。
図４は、キャッシュコヒーレンシの確立の仕方の例を説明する図である。
図４は、上記方法に基づいた処理シーケンスの例である。図中、（４ａ）〜（４ｆ）のタイミングはそれぞれ以下の事象に対応する。
（４ａ）：プロセッサコアがライトアクセスを起動
（４ｂ）：ライトアクセス起動によりグローバルバス要求を送出
（４ｃ）：バス使用許可を受け、グローバルバスにアドレスをデータ出力
（４ｄ）：他プロセッサ／共有メモリがグローバルバスの情報を受信し、自身の共有メモリあるいは共有メモリキャッシュにライト
（４ｅ）：メモリライト完了
（４ｆ）：ライトアクセスを起動したプロセッサがバス開放
この例では、コヒーレンシ保証に必要な条件は以下の式で表される。
ｔｒｃ（ｍｉｎ）＞ｔｄｓｄ（ｍａｘ）＋ｔｄｍｗ（ｍａｘ）                  （１）
ｔｄｓｄ（ｍａｘ）＜ｔｄｓｄ（ｍｉｎ）＋ｔｄｍｗ（ｍｉｎ）                （２）
ここで、
ｔｒｃ：グローバルバスへのライト発行からバス開放までの時間
ｔｄｓｄ：グローバルバスへのライト発行を他プロセッサが認識するのに必要な時間
ｔｄｍｗ：プロセッサ／共有メモリがグローバルバス上のライトアクセスを認識してから、そのデータを自身に反映させるのにかかる時間
である。
ここで、（１）式は前記の要件１を満たすための条件であり、ライト値が共有メモリ及び全てのプロセッサ上の共有メモリキャッシュに反映されてからグローバルバスを開放することを保証するものである（一般にはライト処理の完了応答を被ライト側から送出し、その受信をもってバス開放を行うシーケンスが採られる場合が多い）。その条件を満たすことで、グローバルバスの使用権調停により次のプロセッサがライト処理を開始するときには前のライト処理が完了していることが保証される。いわば、グローバルバスの持つ欠点によりコヒーレンシ制御の要件が満たされている格好であるが、実は前記の要件１は、データ更新の調停を要することと本質的に差異がない。データ更新の順序付けを保証することは、複数のデータ更新が同時に発生しないことを保証すること、つまり調停を行うことと等価だからである。したがって、前記のコヒーレンシ制御の要件１を満たすことは、グローバルバスを使用する上で生ずる前記の制約２を同じように受け、前記問題を解決する上での障壁となる。
一方、（２）式は、図４中（４ｄ）のタイミングが各プロセッサでばらつくのを吸収して、前記の要件２を満たすための条件である。（４ｄ）のタイミングは、グローバルバスに現れたライトアクセスと競合するリードアクセスが各プロセッサ上で起動されたときに、更新前のデータがプロセッサコアに返されるか、更新後のデータが返されるかの境界となるタイミングである。更新後のデータが返送されるのは（４ｅ）のタイミングであるので、（２）式を満たさないと、このタイミングがプロセッサによっては逆転し、前記の要件に反することになる。
ここで、たとえば（１）式は、バス占有時間を一定以上にしなければならないこと、つまり共有メモリ空間の帯域に対する制約を与えることを示しているし、（２）式は共有メモリキャッシュや共有メモリに対する書き込み時間を短くして帯域を増やそうとしても、プロセッサ間で（４ｄ）のタイミングがばらつくことを考慮し、一定以上の時間に保たなければならないことを示している。これらの例のとおり、各種の動作タイミングに条件が付されるために、処理時間の短縮を図って性能向上を図ろうとする場合に、コヒーレンシ制御自体が一種の制約を生むことになる。
従来のキャッシュ間のコヒーレンシをとる技術として、特許文献１がある。特許文献１では、プロセッサモジュールは、キャッシュメモリを有し、他のプロセッサモジュールに、バスを介して、コヒーレンシトランザクションを発行する。コヒーレンシトランザクションを受け取ったプロセッサモジュールは、コヒーレンシ検査を実行する。コヒーレンシを維持するために更新を行う場合、更新に使われるべきデータは、バスを介して送られる。プロセッサモジュールとメインメモリとをつなぐ信号線は、コヒーレンシ検査の結果の通知に使われる。
【特許文献１】特開平７−２８１９５６号公報
【発明の開示】
本発明の課題は、以上に述べたようなコヒーレンシ制御を含む前記の各種制約による性能低下要因の最小化を図りながら、前記の課題を解決して共有メモリ空間の帯域とレイテンシの向上を図ったマルチプロセッサシステムを提供することである。
本発明のマルチプロセッサシステムは、それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも１つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線手段と、データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバス手段とを備え、プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可することを特徴とする。
本発明によれば、更新データを送受する専用回線手段を設けたことにより、更新データの送受信が高速化される。また、グローバルバス手段では、データ量の少ない更新通知のみを調停して転送すればよいので、バスの使用権の獲得のために長時間待たされることが少なくなる。また、更新通知にしたがって、更新データによる共有メモリ領域の更新を各プロセッサおよび共有メモリがするので、共有メモリキャッシュと共有メモリとのコヒーレンシが確保される。
【図面の簡単な説明】  図１は、最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す図である。
図２は、各プロセッサ上に共有メモリキャッシュ（２ｈ）を配置した従来例を示す図である。
図３は、コヒーレンシ制御について説明する図である。
図４は、キャッシュコヒーレンシの確立の仕方の例を説明する図である。
図５は、本発明の実施形態に基づくシステムの構成図である。
図６は、本発明の実施形態における第１の態様の一連の処理に基づくタイムチャートの例である。
図７は、本発明の実施形態の第２の態様に基づく処理のタイムチャートの例である。
図８は、異なるデータサイズでデータ更新を行った場合のタイムチャートの例である。
図９は、本発明の実施形態の第３の態様に基づく処理のタイムチャートの例である。
図１０は、本発明の実施形態の第４の態様の原理に基づいたタイムチャートの例である。
図１１及び図１２は、本発明の実施形態の第５の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
図１３は、本発明の実施形態の第６の態様を説明する図である。
図１４は、本発明の実施形態に基づくより具体的なシステム構成図である。
図１５は、図１４中の各プロセッサ（１４ａ−１）〜（１４ａ−１０）の内部構成図である。
図１６は、本発明の実施形態における第１の態様のライトアクセス時の信号の流れを示す図である。
図１７は、本発明の実施形態の第１の態様に基づく更新データ受信時の信号の流れを示す図である。
図１８は、本発明の実施形態の第１の態様において、共有メモリキャッシュのデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。
図１９は、本発明の実施形態の第１の態様におけるリードアクセスにて、共有メモリキャッシュ上のデータを利用できず、更新データ要求処理を伴う場合の信号の流れを示す図である。
図２０は、本発明の実施形態の第１の態様において、他のプロセッサから送信された更新データ要求に対する、マスタプロセッサによる応答時の信号の流れを示す図である。
図２１は、本発明の実施形態の第２の態様におけるライトアクセス時の信号の流れを示す図である。
図２２は、本発明の実施形態の第２の態様において、他プロセッサから送出された更新データ受信時の信号の流れを示す図である。
図２３は、本発明の実施形態の第３の態様における更新通知を省略したライトアクセス時の信号の流れを示す図である。
図２４は、本発明の実施形態の第３の態様において、他プロセッサから送出された更新通知を省略した更新データ受信時の信号の流れを示す図ある。
図２５は、本発明の実施形態の第２の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ送信要求を行うときの信号の流れを示す図である。
図２６は、本発明の実施形態の第４の態様におけるキャッシュフィル動作において、マスタプロセッサが全データ送信要求に応答して全データ送信を行うときの信号の流れを示す図である。
図２７は、本発明の実施形態の第４の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ受信を行うときの信号の流れを示す図である。
図２８は、本発明の実施形態の第５の態様に基づくライトアクセス時の信号の流れを示す図である。
【発明を実施するための最良の形態】  図５は、本発明の実施形態に基づくシステムの構成図である。
本発明の実施形態の第１の態様における本発明の原理を以下に示す。図５において、従来例のグローバルバスに相当する部分は、更新通知バス（５ｅ）として、データ更新の通知と、更新データの送出要求を専従的に行うバスとして用いられる。更新データの内容はデータチャネル（５ｇ）を使用してリピータ（５ｈ）との間で送受される。データチャネルは高速広帯域の既知の伝送手段（例えば、ギガビットイーサネット等）を用いることを想定する。リピータ（５ｈ）はデータチャネルが接続された各ポートに現れたデータを、全てのポートに同報する機能を有する。なお、プロセッサの数が少なく現実的なデータチャネル数で収まる場合は、リピータを設けずに全てのプロセッサと共有メモリの間に１対１でデータチャネルを設け、各プロセッサ上で同報する処理を行ってもよい。また、共有メモリは特定のプロセッサ上に配置してしまってもよいし、特願２００２−１２６２１２号公報にある例のように、各プロセッサが共有メモリ空間のサイズに等しい共有メモリキャッシュを具備する場合には、共有メモリ自体を設けなくてもよい。いずれの場合でも本発明の実施形態としての効果を得ることが可能である。
各プロセッサは、プロセッサコアにより共有メモリ空間へのライト処理が発行されると、更新通知バスを獲得して更新対象のアドレスを更新通知バスに送出する。それと同時に、データチャネルの送信バッファに更新データを投入する。更新データは、主に各プロセッサとリピータのポート部における信号処理遅延を受け、更新通知に対して遅れて他のプロセッサに到達する。
一方、更新通知バスは全てのプロセッサが常に監視しており、更新通知を検知すると、該アドレスをプロセッサ上の更新キューに書き込む。その後更新データが到着すると、それを共有メモリキャッシュにライトし、更新キューから該アドレスを消去する。また、更新キュー上に存在するアドレスに対してプロセッサコアからのリード処理が起動された場合、共有メモリキャッシュからのリードを保留し、更新データ到着時に共有メモリキャッシュへのライト処理とあわせてそのデータをプロセッサコアに返送する処理を行う。ここで、更新キューに格納されているアドレスは、全て全てのアドレスが監視対象となっており、更新データには、ライト先のアドレスが付加されている。したがって、各プロセッサでは、更新キュー内のアドレスと更新データに付加されているアドレスを比較して、共有メモリキャッシュの適切なアドレスに更新データを書き込むことができる。また、共有メモリの構成は、プロセッサの構成と基本的に同一であるが、共有メモリには、プロセッサコアが存在せず、共有メモリキャッシュがより容量の大きい共有メモリチップとなっている。
共有メモリキャッシュ上に有効データが存在しない場合、つまりキャッシュミス時のリードアクセスは、更新通知バスに更新データ送出要求を発行し、共有メモリまたは他の有効なデータを共有メモリキャッシュ上に保持するプロセッサが更新データを送出することにより行う。
図６は、本発明の実施形態における第１の態様の一連の処理に基づくタイムチャートの例である。
本例はプロセッサ１がアドレス１にデータ１を、それに続いてプロセッサ２がアドレス２にデータ２をライトしており、それと平行してプロセッサ３がアドレス１、アドレス０、アドレス１の順に共有メモリ空間をリードした場合である。なお、共有メモリ空間上のデータ初期値は全て０とする。なお、図６中、Ａはアドレス、Ｄはデータを意味し、また、（１）←０等の表記はアドレス１へのデータ０のライト、１←（０）等の表記はアドレス０からのデータ１のリードをそれぞれ意味する。
プロセッサ３の１回目のリード時には更新キューは空であるため、共有メモリキャッシュからリードが行われ、データ０がプロセッサコアに返送される。ついで、プロセッサ１からの更新通知を検知し、それがプロセッサ３の更新キューに投入される。プロセッサ３の２回目のリード時には、更新キューは空ではないが、更新キュー上にあるのはアドレス１のみであり、リードアドレスと一致するものが存在しないで、１回目のリードと同様の処理にてデータ０がプロセッサコアに返送される。３回目のリードでは、更新キュー上にリードアドレスと一致するものがあるため、共有メモリキャッシュのリードは起動されずリードアクセスは保持される。その後、プロセッサ１からアドレス１の更新データが到着すると、プロセッサ３の共有メモリキャッシュにデータ１がライトされて更新キューがクリアされ、同時にそのデータがアドレス１のリードデータとしてプロセッサコアに返送される。
本方式の主な利点は次の２点である。一つは、データ更新を行う側のプロセッサにおいて、他のプロセッサの共有メモリキャッシュへの反映を待たなくてもすむためにバス占有時間を削減でき、共有メモリ空間の帯域の向上が図れることである。もう一つは、データ更新処理と競合しないリードアクセスの不要な待ち合わせ時間を排除することで、リードアクセスの平均レイテンシを低減し得ることである。このうち、後者の従来例に対する改善度合いは、共有メモリキャッシュのヒット率とアクセス競合の発生確率により変化するが、特にヒット率が高く競合発生確率が低いほど、本方式の優位性は顕著となる。
本発明の実施形態の第１の態様における原理は、第１の態様におけるデータ更新の単位をブロック化することで、共有メモリ空間の帯域を更に拡大しようとするものである。通常考え得る実装では、データチャネルや共有メモリキャッシュの帯域は、更新通知バスのそれに比較してはるかに大きくすることが可能である。したがって、共有メモリ空間の帯域としては、更新通知バスの帯域により制限され、データチャネルや共有メモリキャッシュの帯域を活用しきれない可能性が生ずる。まず、これを解決しようとするものである。
図７は、本発明の実施形態の第２の態様に基づく処理のタイムチャートの例である。
同図においては、データ更新を４アドレス単位としたものである。プロセッサ１及び２の送出する更新通知は更新対象アドレスの先頭を示すことにより行われ、対応するアドレスの更新データはデータチャネル上にひとまとめにして送出される。
データ長が固定のままでは、ソフトウェアの処理上不要なデータまで組にしてデータ更新を行わなければならなくなるケースが発生するため、データチャネルや共有メモリキャッシュの帯域を浪費し、実効帯域を低下させる可能性が発生する。そのため、更新データサイズを可変として必要十分なデータのみがデータチャネルに送出されるように構成する。
図８は、異なるデータサイズでデータ更新を行った場合のタイムチャートの例である。
同図においては、図７の例においてプロセッサ１の初回のライトが更新サイズ２となってる点のみが異なる。この差により、全体として２アドレス分のデータ収受に要する時間分、データチャネル及び共有メモリキャッシュの占有時間が減少する。また、その時間分プロセッサ２のライト処理に対応する更新データの到着が早くなり、更新キューの内容がクリアされるまでの時間が短くなるので、この原理によりアクセス競合時のレイテンシも低減することができる。
また、第２の態様における方式は帯域の向上のみでなく、共有メモリ空間上にブロック単位での排他的更新を提供する手段ともなる。この点によりソフトウェア処理を効率化し、システムの処理能力を向上することも期待できる。同等のことをソフトウェアで実現するには、更新開始と完了を管理するために余分な処理が必要となるからである。
本発明の実施形態の第３の態様における原理は、プロセッサがコヒーレンシ制御要否の属性をライトアクセス毎に選択することを可能として、コヒーレンシ制御不要の属性が指定されたライトアクセスについて更新通知を発行せず、更新データのみを他のプロセッサに送出する制御を行うものである。ソフトウェアの処理内容によっては、コヒーレンシ保証が不要な共有メモリ空間の用途もあるので、そのような処理に対して、この制御をソフトウェアが利用し、更新通知バスの使用頻度を削減して共有メモリ空間の帯域を向上すると共に、更新データが他プロセッサに反映される時間を短縮し、また不要なアクセス競合の発生によるレイテンシ増加を必要最小限に抑制してリードアクセスの平均レイテンシの削減を図ろうとするものである。
図９は、本発明の実施形態の第３の態様に基づく処理のタイムチャートの例である。
この例におけるプロセッサのアクセスパターンは図６の例に準じており、プロセッサ１の初回のライトがコヒーレンシ制御不要の属性が付されてる点のみが異なる。プロセッサ１の初回のライトに伴う更新通知バス上の処理が起動されないため、それに要する分更新通知バスの占有時間が減少している。また、その分プロセッサ２による２回目のライトアクセスに伴う更新通知が更新通知バスに早く送出されるため、更新時間の短縮を図ることもできる。プロセッサ３の３回目のリードはプロセッサ１のライトより後に発行されているが、本制御により更新キューには投入されていないため、競合による待ち合わせが発生せず、通常と同じレイテンシにてリードアクセスが完了している。
本発明の実施形態の第４の態様における原理は、プロセッサのオンライン増設時に、共有メモリ空間の全てのデータを保持するプロセッサもしくは共有メモリが、自身が持つ共有メモリ空間のデータをデータチャネルの空き時間を使用して、増設プロセッサに転送し、増設プロセッサはそのデータを受けて共有メモリキャッシュを初期化するものである。
増設直後のプロセッサは共有メモリキャッシュの内容が全て無効データであり、そのまま運用系に参加させると共有メモリ空間へのアクセスが全て共有メモリキャッシュでミスヒットする。これにより、運用開始直後は増設プロセッサの処理能力が著しく低下するだけでなく、更新通知バスやデータチャネルが不用意に占有されるために他のプロセッサにも影響を与え、システム性能をかえって低下させる危険もある。本方式により、プロセッサ増設による運用系の処理能力低下を防ぎ、また増設プロセッサの処理能力も運用開始直後から最大限に引き上げることができる。
図１０は、本発明の実施形態の第４の態様の原理に基づいたタイムチャートの例である。
図中、ａ〜ｈは通常のデータ更新処理に基づく転送で、１〜８までが、本方式により行われる増設プロセッサへのデータ転送である。増設プロセッサは、自身が新たにシステムに実装されたことを、更新通知バスに特定の信号を送出するか、そしくは実装未実装を示す専用の信号線を用いるなどの方法で他のプロセッサに通知する。増設プロセッサ向けにデータを送出するプロセッサまたは共有メモリはその通知を受け、図１０に示す通り、自身の更新キューが空のときに、更新データをデータチャネルに送出する。更新キューが空でなくなったら、直ちにデータ送出を中断して通常の処理を優先し、更新キューが空になったらデータ送出を再開する。このような処理により、システム上で行われる通常のデータ更新処理のタイミングに影響を与えることなく、増設プロセッサに対して共有メモリキャッシュを満たすためのデータを送出する処理を追加することができる。増設プロセッサは、データチャネルより受け取った全てのデータで満たされた後、本来の処理を開始し運用系へ参加する。このときには共有メモリキャッシュの内容は全て更新されており、運用開始直後から共有メモリキャッシュのヒット率が高く保たれ、システムとしての処理能力を向上することができる。
図１１及び図１２は、本発明の実施形態の第５の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
第５の態様による制御の原理は、競合頻度の高い特定のアドレスへのライト処理に従来と同じ手法を選択的に使用できるようにすることで、競合時のリードアクセスのレイテンシを低減しようとするものである。図１１に示す通り、更新データを転送するデータバス（１１ｉ）を設けて更新通知バスと同じ調停論理経路としてデータチャネル（１１ｇ）を使用するか、データバスを使用するかは、ライトアクセス毎にプロセッサが選択する。
図１２は、同時間に発行されたライトアクセスにおいて、更新データの転送経路にデータチャネルを使用した場合（Ｐ＝０）と、データバスを使用した場合（Ｐ＝１）のタイミングの相違を示したものである。ライトアクセス起動から、他のプロセッサが更新前のデータをリードしなくなるまでの時間は、ｔｄｓｄであり、両者に相違はない。しかし、更新後のデータをリードできるようになるまでの時間は、（Ｐ＝１）の場合のｔｄｕｃ１に対し、（Ｐ＝０）の場合、データチャネルのレイテンシの影響を受け、ｔｄｕｃ０に増大する。同一アドレスに対するリードアクセスの競合が発生しない限り、この差はなんら影響しないが、競合が発生した場合に、この時間差がリードアクセスのレイテンシ増大となって現れるので、競合が多発するアクセスについて（Ｐ＝０）を選択的に使用する。それにより、リードアクセスの平均レイテンシを低減することができる。
図１３は、本発明の実施形態の第６の態様を説明する図である。
図１３（ａ）は、第６の態様における制御のタイムチャートである。
第６の態様は、第５の態様における制御原理を、第１〜第４の態様におけるシステム構成にそのまま適用するもので、特定のライトアクセスについて、更新データの物理的な転送は行わずにデータ更新を行うものである。具体的には、共有メモリ空間上のアドレスとライトされるべきデータを、プロセッサコアが生成する特定のアドレスにあらかじめ対応付けておき、その特定アドレスに対するライトアクセスが発行された場合、更新通知が発行された時点で、その予約されたデータが更新データとして転送されたものとして取り扱う。この方法では小さな情報量のデータしか扱えないが、信号線数の多い従来のようなデータバスを設置することなく、かつ、第５の態様の方式と同じ効果を得ることができる。
図１３（ａ）の例では、アドレス１に対するライトは、共有メモリ空間上の同アドレスに対するデータ１のライトとして扱っている。更新通知の認識時、更新データが同時に伝達されたものとして扱えるため、第５の態様において（Ｐ＝１）とした場合と同じタイミングで処理を行うことができる。また、データチャネルの占有が発生しないため、後続のアクセスがある場合は、そのアクセスにかかわるレイテンシを低減する効果も得られる。
例えば、図１３（ａ）の例において、アドレス２に対するライトをアドレス１に対するデータ０のライトとして扱う規約を設けて併用すれば、アクセス競合のオーバヘッドが少なく、他のプロセッサへの反映時間も高速な２値のフラグとしての機能をソフトウェアに提供することができる（図１３（ｂ））。
図１４は、本発明の実施形態に基づくより具体的なシステム構成図である。
システムはプロセッサ１０基（１４ａ−１）〜（１４ａ−１０）と、バスアービタ／リピータ（１４ｂ）から構成されている。バスアービタとリピータはまったく独立した機能を提供するものであるが、システム構成を簡易にするため、両ブロックを同一のユニットに収容している。更新通知バス（１４ｃ）は、バスクロックＢＣ１〜ＢＣ１０、バス要求信号ＮＲ１〜ＮＲ１０、バス許可信号ＮＧ１〜ＮＧ１０、更新通知アドレスＮＡ（３０ビット）、更新通知アドレスマスクＮＭ（４ビット）、即時更新データＮＤ（４ビット）、更新通知信号ＮＶ、更新データ要求信号ＲＶ，即時更新属性信号ＮＩからなり、ＢＣに同期して動作する。データチャネルＴＳＤ１〜ＴＳＤ１０、ＲＳＤ１〜ＲＳＤ１０は、約３ギガビット／秒の伝送帯域を持つシリアル伝送線路を対向させた全二重通信チャネルを用いている。プロセッサのうち少なくとも２つは共有メモリ空間の全内容を保持しており、うち１つはマスタプロセッサとして更新データ要求に応答する。
図１５は、図１４中の各プロセッサ（１４ａ−１）〜（１４ａ−１０）の内部構成図である。
プロセッサ内部の機能ブロックは、プロセッサコア（１５ａ）、プロセッサバスブリッジ（１５ｂ）、更新通知バスブリッジ（１５ｅ）、データチャネルＩＦ（１５ｈ）、更新キュー（１５ｋ）、共有メモリキャッシュ（１５ｎ）に大別される。各部の機能概略を以下に示す。
（１５ａ）プロセッサコア
主処理部である。
（１５ｂ）プロセッサバスブリッジ
共有メモリ空間へのアクセスの包括的制御を行う。
制御ブロック（１５ｃ）は全体の制御を、リダイレクタ（１５ｄ）は、各機能ブロック間のバススイッチングと、アドレス及びデータの変換を行う。
（１５ｅ）更新通知バスブリッジ
更新通知バスの制御を行う。
（１５ｈ）データチャネルＩＦ
他プロセッサとの間で更新データの送受信を行う。
（１５ｋ）更新キュー
更新キューを収容しており、キュー状態を外部に出力する。
（１５ｎ）共有メモリキャッシュ
共有メモリ空間のデータを保持し、プロセッサコアに対して高速なアクセスを提供する。
図１６は、本発明の実施形態における第１の態様のライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は、図１６中の各信号に付した番号に対応する。
（１）プロセッサコア（１６ａ）がプロセッサアドレスＰＡ、プロセッサデータＰＤ、プロセッサ転送タイプＰＴを設定し、プロセッサライト信号ＰＷを送信する。
（２）プロセッサバスブリッジ（１６ｂ）の制御ロジック（１６ｃ）はリダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（１６ｄ）は、それに応じ、プロセッサアドレスＰＡを実効アドレスＥＡとキャッシュアドレスＣＡに、プロセッサデータＰＤを実効データＥＤ及びキャッシュデータＣＤにエコーする。
（３）プロセッサバスブリッジ（１６ｂ）の制御ロジック（１６ｃ）は更新通知送信信号ＮＳを送信する。
（４）更新通知バスブリッジ（１６ｅ）の送信部（１６ｆ）はＮＳを受け、バス要求信号ＮＲを送信する。
（５）更新通知バスブリッジ（１６ｅ）の送信部（１６ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（６）更新通知アドレスＮＡにＥＡがエコーされ、更新通知信号ＮＶが全プロセッサに送信される。ＮＡ及びＮＶは自プロセッサの更新通知バスブリッジ監視部（１６ｇ）にもループバックし受信される。
（７）更新通知バスブリッジ（１６ｅ）の監視部（１６ｇ）は、自身が送出したＮＶを受け取ると、ＮＡを更新通知アドレスＳＡとしてエコーすると共に、ＮＶを更新通知受信信号ＳＶとして自プロセッサ内に送信する。ＳＶを受け、更新キュー（１６ｋ）のキューレジスタ（１６１）に該更新通知がキューイングされる。このとき、他のプロセッサ上でも同じ制御が行われる。
（８）プロセッサバスブリッジ（１６ｂ）の制御ロジック（１６ｃ）はＳＶを受けて更新データ送信信号ＵＳを送信し、これを受けたデータチャネルＩＦ（１６ｈ）のフレーマ（１６ｉ）は、ＥＡ／ＥＤの内容を送信バッファにキューイングする。ＵＳの送信後、プロセッサコアにアクナリッジ信号ＡＣＫが送信され、プロセッサコア側のアクセスは完了する。
（９）データチャネルＩＦ（１６ｈ）のフレーマ（１６ｉ）では、送信バッファにキューイングされたデータが随時パケットに構築されており、完了した分からＳＥＲＤＥＳ（１６ｊ）（シリアライザ・デシリアライザの略であり、シリアル信号をパラレル信号に変換したり、パラレル信号をシリアル信号に変換する機能ブロックである）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルでＴＳＤとして更新データを送出する。
図１７は、本発明の実施形態の第１の態様に基づく更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図１７中の各信号に付した番号に対応する。
（１）データチャネルＩＦ（１７ｈ）のＳＥＲＤＥＳ（１７ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（１７ｉ）に受信パラレルデータＲＰＤとして送出する。
（２）データチャネルＩＦ（１７ｈ）のフレーマ（１７ｉ）はＲＰＤを受け、データ中のパケットの抽出及び展開を行い、更新データアドレスＵＡ、更新データＵＤを設定し、更新データ受信信号ＵＲを送信する。これにあわせて、キューレジスタ（１７１）のキュークリアアドレスＱＣＡにＵＡがセットされる。
（３）プロセッサバスブリッジ（１７ｂ）の制御ロジック（１７ｃ）はＵＲを受け、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（１７ｄ）はそれに応じ、ＵＡをＣＡに、ＵＤをＣＤにエコーする。制御ロジック（１７ｃ）にて他の処理が行われている場合、いったん待機し、それが完了しだい本処理を実行する。
（４）プロセッサバスブリッジ（１７ｂ）の制御ロジック（１７ｃ）はキャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（１７ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。また、制御ロジック（１７ｃ）は、キュークリア信号ＱＣを送信し、これを受けた更新キュー（１７ｋ）は、（２）でセットしたＱＣＡをキューレジスタ（１７１）からクリアする。
図１８は、本発明の実施形態の第１の態様において、共有メモリキャッシュのデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図１８中の各信号に付した番号に対応する。
（１）プロセッサコア（１８ａ）がＰＡ、ＰＴを設定し、プロセッサリード信号ＰＲを送信する。
（２）プロセッサバスブリッジ（１８ｂ）の制御ロジック（１８ｃ）はＦＣを設定し、リダイレクタ（１８ｄ）は、それに応じ、ＰＡをＥＡとＣＡにエコーする。
（３）プロセッサバスブリッジ（１８ｂ）の制御ロジック（１８ｃ）がＣＲを送信する。
（４）共有メモリキャッシュ（１８ｎ）はＣＲを受け、ＣＡにて指定されたキャッシュ上のデータが利用できない場合は利用不能信号ＮＰを送信し、利用可能な場合はキャッシュデータＣＤを送信する。また、更新キュー（１８ｋ）の比較器（１８ｍ）は、ＥＡで指定されるキューがキューレジスタ上にある場合、競合信号ＣＯＬを送信する。
（５）プロセッサバスブリッジ（１８ｂ）の制御ロジック（１８ｃ）は、ＮＰ、ＣＯＬのいずれも受信しなかった場合、ＣＤをＰＤにエコーし、ＡＣＫを送信してアクセスは完了する。ＣＯＬを受信した場合はＣＲを解除した後、ＣＯＬが解除されるまで待ち、ＣＯＬ解除の後に（３）以降の処理を再度行う。ここで、ＣＯＬを受信せず、ＮＰを受信した場合の処理は以下で説明する。
図１９は、本発明の実施形態の第１の態様におけるリードアクセスにて、共有メモリキャッシュ上のデータを利用できず、更新データ要求処理を伴う場合の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図１９中の各信号に付した番号に対応する。なお、途中（４）までは前項で述べたリードアクセス時のフローとまったく同じであるため、省略する。
（５）プロセッサバスブリッジ（１９ｂ）の制御ロジック（１９ｃ）がＣＯＬを受信せず、ＮＰを受信した場合は、更新データ要求信号ＲＳを送信する。
（６）更新通知バスブリッジ（１９ｅ）の送信部（１９ｆ）はＲＳを受け、バス要求信号ＮＲを送信する。
（７）更新通知バスブリッジ（１９ｅ）の送信部（１９ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（８）更新通知アドレスＮＡにＥＡがエコーされ、更新データ要求信号ＲＶが全プロセッサに送信される。ＮＡ及びＲＶは自プロセッサの更新通知バスブリッジ監視部（１９ｇ）にもループバックし受信される。
（９）更新通知バスブリッジ（１９ｅ）の監視部（１９ｇ）はＮＡをＳＡとしてエコーするとともに、自プロセッサが送出したＲＶを検知すると、自プロセッサ内にＳＶとしてエコーする。更新キュー（１９ｋ）はＳＶをキューセット信号ＱＳとして受け、ＳＡの内容をキューセットアドレスＱＳＡとしてキューレジスタ（１９１）にキューイングする。
（１０）リードアクセス対象に一致するキューがキューイングされるため、更新キュー（１９ｋ）よりＣＯＬが必ず送信される。ＣＯＬの受信をもって、プロセッサバスブリッジ（１９ｂ）はＣＯＬが解除されるまで、プロセッサコア（１９ａ）からのリードアクセスを保留したまま更新通知と更新データの受信処理を行いながら待機する。
（１１）（８）で送出された更新データ要求を受けて、マスタプロセッサから更新データが送出され、データチャネルＩＦ（１９ｈ）は更新データアドレスＵＡ、更新データＵＤを設定し、更新データ受信信号ＵＲを送信する。これにあわせて、キューレジスタ（１９ｌ）のキュークリアアドレスＱＣＡにＵＡがセットされる。
（１２）更新キュー（１９ｋ）からリードアクセス対象のキューがクリアされるため、ＣＯＬが解除される。
（１３）プロセッサバスブリッジ（１９ｂ）の制御ロジック（１９ｃ）は、ＣＯＬの解除を受け、ＦＣを制御してリダイレクタ（１９ｄ）を制御し、ＵＡをＣＡに、ＵＤをＣＤとＰＤにエコーする。
（１４）プロセッサバスブリッジ（１９ｂ）の制御ロジック（１９ｃ）はキャッシュライト信号ＣＷを送信して共有メモリキャッシュ上の所望のデータをＣＤにて更新すると共に、プロセッサコアに対してＡＣＫを送信し、リードアクセスを完了する。
図２０は、本発明の実施形態の第１の態様において、他のプロセッサから送信された更新データ要求に対する、マスタプロセッサによる応答時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２０中の各信号に付した番号に対応する。
（１）更新通知バスブリッジ（１９ｅ）の監視部（１９ｇ）はＲＶを検知すると、ＮＡをＳＡにエコーすると共に、更新データ要求信号ＳＲをプロセッサ内部に送信する。
（２）プロセッサバスブリッジ（２０ｂ）の制御ロジック（２０ｃ）は、自身がマスタプロセッサである場合、ＳＲを受けてＦＣを設定してリダイレクタ（２０ｄ）を制御してＳＡをＥＡとＣＡにエコーし、ＣＤとＥＤを接続する。ここで自身がマスタプロセッサでない場合、ＳＲは無視される。なお、制御ロジック（１７ｃ）にて他の処理が行われている場合一旦待機し、それが完了しだい本処理を実行する。
（３）プロセッサバスブリッジ（２０ｂ）の制御ロジック（２０ｃ）は、ＣＲを共有メモリキャッシュ（２０ｎ）に送信する。
（４）共有メモリキャッシュ（２０ｎ）からＣＤが送出されＥＤにエコーされる。
（５）プロセッサバスブリッジ（２０ｂ）の制御ロジック（２０ｃ）はＵＳを送信し、ライトアクセス時の更新データ送出処理と同様に、データチャネルに更新データが送出される。
図２１は、本発明の実施形態の第２の態様におけるライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２１中の各信号に付した番号に対応する。
（１）プロセッサコア（２１ａ）がプロセッサアドレスＰＡ、プロセッサデータＰＤ、プロセッサ転送タイプＰＴを設定し、バースト転送により複数サイズのデータをリダイレクタに転送する。
（２）プロセッサバスブリッジ（２１ｂ）の制御ロジック（２１ｃ）はリダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２１ｄ）はそれに応じ、プロセッサアドレスＰＡで設定された先頭のアドレスを実効アドレスＥＡにエコーする。また、バースト転送されたデータサイズをカウントし、そこから実行アドレスマスクＥＭを算出して出力する。ここで、実効アドレスマスクは、実効アドレスの下位何ビットを無視するかを示す信号である。ＰＤに設定された複数サイズのデータはリダイレクタ内部のバッファに格納する。
（３）プロセッサバスブリッジ（２１ｂ）の制御ロジック（２１ｃ）は更新通知送信信号ＮＳを送信する。
（４）更新通知バスブリッジ（２１ｅ）の送信部（２１ｆ）はＮＳを受け、バス要求信号ＮＲを送信する。
（５）更新通知バスブリッジ（２１ｅ）の送信部（２１ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（６）更新通知アドレスＮＡにＥＡが、更新通知アドレスマスクＮＭにＥＭがエコーされ、更新通知信号ＮＶが全プロセッサに送信される。ＮＡ、ＮＭ、ＮＶは自プロセッサの更新通知バスブリッジ監視部（２１ｇ）にもループバックし受信される。
（７）更新通知バスブリッジ（２１ｅ）の監視部（２１ｇ）はＮＶを受け、ＮＡを更新設定アドレスＳＡ、ＮＭを更新設定アドレスマスクＳＭにエコーして更新通知受信信号ＳＶを送信する。更新キュー（２１ｋ）はＳＶをキューセット信号ＱＳとして受け、ＳＡの内容をキューセットアドレスＱＳＡ、ＳＭの内容をキューセットアドレスマスクＱＳＭとしてキューレジスタ（２１ｌ）にキューイングする。
（８）プロセッサバスブリッジ（２１ｂ）の制御ロジック（２１ｃ）は、ＳＶを受けると更新データ送信信号ＵＳを送信し、同時にＦＣを設定する。リダイレクタ（２１ｄ）はこれに応じてバッファ内に格納した更新データの先頭のデータから順番にＥＤとして設定する。これを受けたデータチャネルＩＦ（２１ｈ）のフレーマ（２１ｉ）はＥＡ／ＥＭ／ＥＤの内容を送信バッファにキューイングする。ＵＳの送信後、プロセッサコアにアクナリッジ信号ＡＣＫが送信され、プロセッサコア側のアクセスは完了する。
（９）データチャネルＩＦ（２１ｈ）のフレーマ（２１ｉ）では、送信バッファにキューイングされたデータを随時パケットに構築しており、完了した分からＳＥＲＤＥＳ（２１ｊ）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳは、これを受け、データチャネルで搬送される電気信号に変調を行い、送信シリアルデータＴＳＤとして更新データを送出する。
図２２は、本発明の実施形態の第２の態様において、他プロセッサから送出された更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２２中の各信号に付した番号に対応する。
（１）データチャネルＩＦ（２２ｈ）のＳＥＲＤＥＳ（２２ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（２２ｉ）に受信パラレルデータＲＰＤとして送出する。
（２）データチャネルＩＦ（２２ｈ）のフレーマ（２２ｉ）はＲＰＤを受け、データ中のパケットの抽出及び展開を行い、更新データアドレスＵＡ、更新アドレスマスクＵＭに設定し、更新データ受信信号ＵＲを送信する。これに合わせて、キューレジスタ（２２ｌ）のキュークリアアドレスＱＣＡにＵＡがセットされる。また、ＵＲ送信と同時に更新データを先頭データから順番にＵＤに設定する。
（３）プロセッサバスブリッジ（２２ｂ）の制御ロジック（２２ｃ）はＵＲを受け、リダイレクタ機能制御信号ＦＣを設定する。ＵＡとＵＤは一旦リダイレクタ内のバッファに格納し、ＵＡがＣＡ、ＵＤの先頭データがＣＤに設定される。ＣＡに設定制御ロジック（２２ｃ）にて他の処理が行われている場合、一旦待機し、それが完了しだい本処理を実行する。
（４）プロセッサバスブリッジ（２２ｂ）の制御ロジック（２２ｃ）はキャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（２２ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。続けてリダイレクタのバッファに格納された次の更新データをＣＤに設定し、ＣＡの値を１つインクリメントして、同様のキャッシュメモリ更新処理を、ＵＭの設定値にしたがって、バッファ内の更新データがなくなるまで繰り返し行う。その後、キュークリア信号ＱＣを送信し、これを受けた更新キュー（２２ｋ）は、（２）でセットしたＱＣＡをキューレジスタ（２２ｌ）からクリアする。
図２３は、本発明の実施形態の第３の態様における更新通知を省略したライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２３中の各信号に付した番号に対応する。
（１）プロセッサコア（２３ａ）がプロセッサ転送タイプＰＴにデータオンリ属性を設定し、プロセッサアドレスＰＡ、プロセッサデータＰＤ、プロセッサライト信号ＰＷを送信する。
（２）プロセッサバスブリッジ（２３ｂ）の制御ロジック（２３ｃ）は、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２３ｄ）はそれに応じ、プロセッサアドレスＰＡを実行アドレスＥＡに、プロセッサデータＰＤを実効データＥＤにエコーする。
（３）プロセッサバスブリッジ（２３ｂ）の制御ロジック（２３ｃ）は、データオンリ属性信号ＤＯを設定し、更新データ送信信号ＵＳを送信する。ＵＳの送信後プロセッサコアにアクナリッジ信号ＡＣＫが送信され、プロセッサコア側のアクセスは完了する。
（４）更新データ送信信号ＵＳとデータオンリ属性信号ＤＯを受信したデータチャネルＩＦ（２３ｈ）のフレーマ（２３ｉ）はＥＡ／ＥＤの内容及びデータオンリ属性を送信バッファにキューイングする。
（５）データチャネルＩＦ（２３ｈ）のフレーマ（２３ｉ）では、送信バッファにキューイングされたデータおよび属性を随時パケットに構築しており、完了した分からＳＥＲＤＥＳ（２３ｊ）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルデータＴＳＤとして更新データを送出する。
図２４は、本発明の実施形態の第３の態様において、他プロセッサから送出された更新通知を省略した更新データ受信時の信号の流れを示す図ある。
そのフローを以下に示す。各行頭の番号は図２４中の各信号に付した番号に対応する。
（１）データチャネルＩＦ（２４ｈ）のＳＥＲＤＥＳ（２４ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（２４ｉ）に受信パラレルデータＲＰＤとして送出する。
（２）データチャネルＩＦ（２４ｈ）のフレーマ（２４ｉ）はＲＰＤを受け、データ中のパケットの抽出および展開を行い、更新データアドレスＵＡ、更新データＵＤ、データオンリ属性ＤＯを設定し、更新データ受信信号ＵＲを送信する。
（３）プロセッサバスブリッジ（２４ｂ）の制御ロジック（２４ｃ）は更新データ受信信号ＵＲとデータオンリ属性信号ＤＯを受け、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２４ｄ）はそれに応じ、ＵＡをキャッシュアドレスＣＡに、ＵＤをキャッシュデータＣＤにエコーする。制御ロジック（２４ｃ）にて他の処理が行われている場合一旦待機し、それが完了しだい本処理を実行する。
（４）プロセッサバスブリッジ（２４ｂ）の制御ロジック（２４ｃ）はキャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（２４ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。
図２５は、本発明の実施形態の第２の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ送信要求を行うときの信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２５中の各信号に付した番号に対応する。
（１）プロセッサバスブリッジ（２５ｂ）の制御ロジック（２５ｃ）は、自プロセッサがシステムに増設されたことを検知すると、全データ送信要求信号としてＲＳとＩＳを同時に送信する。
（２）更新通知バスブリッジ（２５ｅ）の送信部（２５ｆ）はＲＳとＩＳを受け、バス要求信号ＮＲを送信する。
（３）更新通知バスブリッジ（２５ｅ）の送信部（２５ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（４）更新通知バスブリッジ（２５ｅ）の送信部（２５ｆ）はＲＶとＮＩを同時に送信する。
図２６は、本発明の実施形態の第４の態様におけるキャッシュフィル動作において、マスタプロセッサが全データ送信要求に応答して全データ送信を行うときの信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は、図２６中の各信号に付した番号に対応する。
（１）マスタプロセッサの更新通知バスブリッジ（２６ｅ）の監視部（２６ｇ）は、ＲＶと同時にＮＩを受信すると、ＳＲとＳＩを同時に送信する。
（２）プロセッサバスブリッジ（２６ｂ）の制御ロジック（２６ｃ）はＳＲとＳＩを同時に受信すると全データ送信要求信号と解釈し、共有メモリ空間の先頭のアドレスを送信開始アドレス、及び、次送信アドレスとして記憶する。
（３）システムに別のプロセッサが増設され、マスタプロセッサの制御ロジック（２６ｃ）が、再び全データ要求信号を受信した場合、制御ロジック（２６ｃ）は先に記憶した次送信アドレスを送信開始アドレスとして記憶する。
（４）制御ロジック（２６ｃ）はキューエンプティ信号ＱＥが有効であり、かつ、他に要求されている処理がないとき、リダイレクタ機能制御信号ＦＣを設定し、リダイレクタ（２６ｄ）は先に記憶した次送信アドレスをキャッシュアドレスＣＡに設定し、制御ロジック（２６ｃ）はキャッシュリード信号ＣＲを送信する。
（５）共有メモリキャッシュ（２６ｎ）はＣＲを受け、ＣＡにて指定されたキャッシュ上のデータをキャッシュデータＣＤに送信する。
（６）プロセッサバスブリッジ（２６ｂ）のリダイレクタ（２６ｄ）は、先に設定したＣＡを実効アドレスＥＡにも設定し、ＣＤを実効データＥＤにエコーする。制御ロジック（２６ｃ）はデータオンリ属性ＤＯを設定し、更新データ送信信号ＵＳを送信する。これを受けたデータチャネルＩＦ（２６ｈ）のフレーマ（２６ｉ）はＥＡ／ＥＤの内容及びデータオンリ属性を送信バッファにキューイングする。
（７）プロセッサバスブリッジ（２６ｂ）の制御ロジック（２６ｃ）は、送信したアドレスの次のアドレスを次送信アドレスとして記憶する。送信したアドレスが共有メモリ空間の最後のアドレスに達した場合は、共有メモリ空間の先頭のアドレスを次送信アドレスとして記憶する。次送信アドレスが先に記憶した送信開始アドレスと一致した場合、全データ送信を終了する。
（８）（３）〜（７）の手順を繰り返して、順次データを送出する。
（９）データチャネルＩＦ（２６ｈ）のフレーマ（２６ｉ）では、送信バッファにキューされたデータを随時パケットに構築しており、完了した分からＳＥＲＤＥＳ（２６ｊ）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルデータＴＳＤとしてデータを送出する。
図２７は、本発明の実施形態の第４の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ受信を行うときの信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２７中の各信号に付した番号に対応する。
（１）全データ受信動作中に制御ロジック（２７ｃ）が、プロセッサリード信号ＰＲ、または、プロセッサライト信号ＰＷを受信した場合、制御ロジック（２７ｃ）は、この要求を保留する。全データ受信動作中であっても、更新キューへのキューイング、クリアはそれぞれ図１６、図１７で示されたフローで行う。
（２）データチャネルＩＦ（２７ｈ）のＳＥＲＤＥＳ（２７ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（２７ｉ）に受信パラレルデータＲＰＤとして送出する。
（３）データチャネルＩＦ（２７ｈ）のフレーマ（２７ｉ）はＲＰＤを受け、データ中のパケットの抽出および展開を行い、更新データアドレスＵＡ、更新データＵＤ、データオンリ属性ＤＯを設定し、更新データ受信信号ＵＲを送信する。
（４）プロセッサバスブリッジ（２７ｂ）の制御ロジック（２７ｃ）はＵＲを受け、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２７ｄ）は、それに応じ、ＵＡをキャッシュアドレスＣＡに、ＵＤをキャッシュデータＣＤにエコーする。制御ロジック（２７ｃ）にて他の処理が行われている場合一旦待機し、それが完了次第本処理を実行する。
（５）プロセッサバスブリッジ（２７ｂ）の制御ロジック（２７ｃ）はキャッシュライト信号ＣＷを送信する。データオンリ属性ＤＯを受信しているので、キュークリア信号ＱＣは送信しない。
（６）キャッシュライト信号ＣＷを受けた共有メモリキャッシュ（２７ｎ）は、ＣＡ及びＣＤで指定される所望のデータを更新し、更新前の状態において該データが利用不可能な状態であった場合、利用不可能信号ＮＰを送信する。
（７）プロセッサバスブリッジ（２７ｂ）の制御ロジック（２７ｃ）は、全データ受信動作中に利用不能信号ＮＰを受信した回数を計測することで、共有メモリキャッシュの全領域が有効データでフィルされたことを認識すると、全データ受信動作を終了する。
（８）全データ受信動作が終了したときに、保留されているプロセッサリード信号ＰＲ、または、プロセッサライト信号ＰＷがあった場合には、その動作を開始する。
図２８は、本発明の実施形態の第５の態様に基づくライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。
（１）プロセッサコア（２８ａ）がＰＡ、ＰＤ、ＰＴを設定してＰＷを送信。
（２）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）はリダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２８ｄ）はそれに応じ、プロセッサアドレスＰＡを実効アドレスＥＡとキャッシュアドレスＣＡに、プロセッサデータＰＤを実効データＥＤ及びキャッシュデータＣＤにエコーする。
（３）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）は更新通知送信信号ＮＳを送信する。あわせて、ＰＡが規定のアドレス空間にある場合に即時更新属性送信信号ＩＳを送信する。
（４）更新通知バスブリッジ（２８ｅ）の送信部（２８ｆ）はＮＳを受け、ＮＲを送信する。
（５）更新バスブリッジ（２８ｅ）の送信部（２８ｆ）がＮＧを受信し、更新通知バスを獲得する。
（６）更新通知アドレスＮＡにＥＡが、即時更新属性信号ＮＩにＩＳが、即時更新データＮＤにＥＤがそれぞれエコーされ、更新通知信号ＮＶが全プロセッサに送信される。ＮＡ、ＮＤ、ＮＶ、ＮＩは自プロセッサの更新通知バスブリッジ監視部（２８ｇ）にもループバックし受信される。
（７）更新通知バスブリッジ（２８ｅ）の監視部（２８ｇ）は、ＮＶをＮＩと共に受信すると、即時更新信号ＳＩとして自プロセッサ内にエコーする。他のプロセッサ上でも同じ動作が行われる。
（８）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）は、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２８ｄ）はそれに応じ、ＳＡをＣＡに、ＳＤをＣＤにエコーする。他のプロセッサ上でも同じ動作が行われる。この際プロセッサバスブリッジ（２８ｂ）が別の処理を行っている場合、その処理の完了後にこの処理を最優先で行う。
（９）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）は、キャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（２８ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。他のプロセッサ上でも同じ動作が行われる。
（１０）プロセッサコアにＡＣＫが送信され、プロセッサコア側のアクセスが完了する。
本発明の実施形態の第６の態様に基づくライトアクセスは、特定アドレスへのライト時に予約データを用いるもので、そのフローは第５の態様におけるライトアクセスにほぼ準じる。以下の点が差分である。
（８）プロセッサバスブリッジ（２８ｂ）のリダイレクタ（２８ｄ）は、ＳＡがそのアクセスに予約データを用いる特定アドレスと解釈される場合、ＳＤを無視し、ＳＡに対応する予約データを生成してＣＤに出力する。
【産業上の利用可能性】  以上の通り、共有メモリキャッシュを具備するプロセッサにより構成される共有メモリ型マルチプロセッサシステムにおいて、本発明の適用によりコヒーレンシ保証に必要な時間と、データ転送に必要な時間が明確に分離され、共有メモリ空間のアクセスにおいて従来技術に存在した問題が以下の点で解決される。
・バス占有時間の最小化と、不要なレイテンシ増大要因の排除
・データ転送経路のレイテンシ隠蔽と、これによる帯域拡大の容易化
これにより、共有メモリキャッシュの高速性を最大限に活用することが可能となり、共有メモリ空間アクセスの帯域とレイテンシの双方が改善され、システムの処理能力向上に寄与することができる。
【図１】
2004107180.tif 000003
【図２】
2004107180.tif 000004
【図３】
2004107180.tif 000005
【図４】
2004107180.tif 000006
【図５】
2004107180.tif 000007
【図６】
2004107180.tif 000008
【図７】
2004107180.tif 000009
【図８】
2004107180.tif 000010
【図９】
2004107180.tif 000011
【図１０】
2004107180.tif 000012
【図１１】
2004107180.tif 000013
【図１２】
2004107180.tif 000014
【図１３】
2004107180.tif 000015
【図１４】
2004107180.tif 000016
【図１５】
2004107180.tif 000017
【図１６】
2004107180.tif 000018
【図１７】
2004107180.tif 000019
【図１８】
2004107180.tif 000020
【図１９】
2004107180.tif 000021
【図２０】
2004107180.tif 000022
【図２１】
2004107180.tif 000023
【図２２】
2004107180.tif 000024
【図２３】
2004107180.tif 000025
【図２４】
2004107180.tif 000026
【図２５】
2004107180.tif 000027
【図２６】
2004107180.tif 000028
【図２７】
2004107180.tif 000029
【図２８】
2004107180.tif 000030
【手続補正書】
【提出日】平成17年12月16日(2005.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも１つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、
共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線手段と、
データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバス手段とを備え、
プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可することを特徴とするマルチプロセッサシステム。
【請求項２】
前記専用回線手段は、前記プロセッサからの回線を前記共有メモリに接続するリピータ手段を備えることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記専用回線手段は、前記複数のプロセッサのそれぞれに設けられた専用線からなることを特徴とする請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記更新通知に複数の更新データを対応付け、１度の更新で複数の更新データ単位の更新を行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項５】
前記更新通知では、１度の更新で更新に使うデータのサイズを可変とすることを特徴とする請求項４に記載のマルチプロセッサシステム。
【請求項６】
前記共有メモリ空間上の、キャッシュコヒーレンシの維持が必要ないデータの更新は、前記更新通知を送信することなく、該キャッシュコヒーレンシの維持が必要でないデータのアドレスに更新データを送信することによって、行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項７】
前記マルチプロセッサシステムに新しいプロセッサが増設された場合、該プロセッサの共有メモリキャッシュに、他のプロセッサの共有メモリキャッシュの内容を転送し、その後に、該新しいプロセッサを運用することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項８】
前記グローバルバス手段を用いて、更新通知と更新に使うべきデータを転送して、前記共有メモリ領域の更新を行う手段を更に備えることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項９】
前記共有メモリ領域の特定のアドレスへのアクセスについては、前記更新通知のみを送受し、該更新通知を受け取ったプロセッサあるいは共有メモリは、予め定められたデータを用いて、該アドレスの更新を行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項１０】
それぞれが共有メモリキャッシュを備える複数のプロセッサと共有メモリが相互に結合され、共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線と、データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバスとを備えたマルチプロセッサシステムにおけるメモリアクセスを高速化する方法であって、
プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行うステップと、
各プロセッサ及び共有メモリにおいて、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可するステップと、
を備えることを特徴とする方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを結合し、それらプロセッサに共有される共有メモリ空間を配置する共有メモリ型マルチプロセッサシステムで、特に共有メモリ空間のデータをキャッシュする共有メモリキャッシュが具備されたプロセッサにより構成されるシステムに関する。ソフトウェアの処理は各プロセッサにより分担されて行われ、共有メモリはプロセッサ間で処理を引き継ぐ際のデータの受け渡しやプロセッサ単体ではなくシステム単位で管理すべき情報を格納する場所などとして使われる。共有メモリキャッシュは、共有メモリへのアクセスを高速化してシステム性能を向上するために導入される。
【背景技術】
【０００２】
図１は、最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す図である。
複数のプロセッサと共有メモリが同一のグローバルバスで接続され、各プロセッサは、このグローバルバスを経由して、共有メモリにアクセスする。各プロセッサ（１ａ−１）〜（１ａ−ｎ）は、アービタ（１ｂ）に対してバス要求信号（１ｃ−１）〜（１ｃ−ｎ）を送出し、アービタにより使用権が調停され、同時間に１つのプロセッサのみにグローバルバス（１ｅ）の使用権が与えられ、そのプロセッサに対してバス許可信号（１ｄ−１）〜（１ｄ−ｎ）が送出される。バス許可信号を受けたプロセッサは、グローバルバス経由で共有メモリ（１ｆ）にアクセスし、所望のデータ収受を行う。
【０００３】
図１の実現方式においては、共有メモリ空間へのアクセスはリード、ライトの種別を問わず、そのすべてがグローバルバスを経由することとなる。
ここに以下の２つの制約がある。
【０００４】
制約１：信号伝送に時間を要する（物理的制約）
制約２：バス使用権の順番待ち時間を要する（原理的制約）
前者は、グローバルバスにおいて信号伝送距離が長くなることや、複数のプロセッサが同一の信号線を共有することなどの電気的条件により、高速な信号伝送が困難となることに起因する。後者は、２つ以上のプロセッサが共有メモリに対して同時間にアクセスを行った場合、２つ目以降のプロセッサがグローバルバス使用権の調停により共有メモリに対するアクセスを待たされる時間が発生することに起因する。結果として、これらの制約は共有メモリ空間へのアクセスに以下の問題を発生させる。
【０００５】
問題１：帯域（システムに許容される時間あたりのアクセス回数）の不足
問題２：レイテンシ（アクセス開始から完了までにかかる時間）の過大
図２は、各プロセッサ上に共有メモリキャッシュ（２ｈ）を配置した従来例を示す図である。
【０００６】
プロセッサコア（２ｇ）が共有メモリ空間をリードした場合、共有メモリキャッシュ上に共有メモリ空間のデータのコピーがあれば、リード処理を内部バス（２ｉ）を通じてプロセッサの上で完結でき、前記の制約１を軽減できる。また、グローバルバス経由のアクセスとならないため、グローバルバスの使用権調停が不要となり、前記の制約２から解放される。この点で、共有メモリキャッシュの導入は前記問題に対する改善策となる。
【０００７】
共有メモリキャッシュの導入により各プロセッサが共有メモリ空間のデータのコピーを個別に保持し得ることになるが、共有メモリ空間上のデータは、全てのプロセッサにとって同じように見えなければならない。したがって、データ更新の契機となるライト処理に関しては、このことを保証するコヒーレンシ制御の考慮が必須となる。理由は後述するが、このコヒーレンシ制御も前記問題を解決する上での障壁となる。
【０００８】
ここで、コヒーレンシ制御上の要件を、以下の３点に細分する。
要件１：時間的な同期
要件２：空間的な同期
要件３：更新時間の短縮
図３は、コヒーレンシ制御について説明する図である。
【０００９】
図３は、上記の要件の意味を説明するもので、共有メモリ空間上のあるアドレスのデータが値０であったとき、該アドレスにプロセッサ１が値１をライトし、その後プロセッサ２が値２をライトし、他のプロセッサ３〜ｎが該アドレスをリードした場合を想定したものである。ここで、要件１は、個々のプロセッサ上で、たとえば、値２→値１の順にリードしてしまう可能性を排除することに相当し（ｔ1≧０の保証）、また要件２は、たとえばすでに値１をリード したプロセッサがいるのに、その後に値０をリードするプロセッサが発生してしまう可能性を排除することに相当する（ｔ2≧０の保証）。また、要件３は データ更新があった時点から、他のプロセッサが依然として更新前のデータをリードしてしまう時間と、更新後のデータを読み出せるようになるまでの時間を、共に可能な限り短くすることに相当する（ｔ2およびｔ3の最小化）。要件３はコヒーレンシ制御上の必須要件とはならないが、システム性能を向上するために必要となる。
【００１０】
図２におけるコヒーレンシ制御の例としては、共有メモリ空間に対するプロセッサのライト処理毎に、それを自身の共有メモリキャッシュに反映すると同時にグローバルバス経由で共有メモリにライトし、一方他のプロセッサはグローバルバスに現れるライトアクセスを監視して、該アドレスのデータが各々の共有メモリキャッシュ上にある場合、そのデータをグローバルバス上のデータで置換する方法が挙げられる。
【００１１】
図４は、キャッシュコヒーレンシの確立の仕方の例を説明する図である。
図４は、上記方法に基づいた処理シーケンスの例である。図中、（４ａ）〜（４ｆ）のタイミングはそれぞれ以下の事象に対応する。
（４ａ）：プロセッサコアがライトアクセスを起動
（４ｂ）：ライトアクセス起動によりグローバルバス要求を送出
（４ｃ）：バス使用許可を受け、グローバルバスにアドレスをデータ出力
（４ｄ）：他プロセッサ／共有メモリがグローバルバスの情報を受信し、自身の共有メモリあるいは共有メモリキャッシュにライト
（４ｅ）：メモリライト完了
（４ｆ）：ライトアクセスを起動したプロセッサがバス開放
この例では、コヒーレンシ保証に必要な条件は以下の式で表される。
【００１２】
ｔrc(min)＞ｔdsd(max)＋ｔdmw(max)                     （１）
ｔdsd(max)＜ｔdsd(min)＋ｔdmw(min)                    （２）
ここで、
ｔrc：グローバルバスへのライト発行からバス開放までの時間
ｔdsd：グローバルバスへのライト発行を他プロセッサが認識するのに必要な時間
ｔdmw：プロセッサ／共有メモリがグローバルバス上のライトアクセスを認識してから、そのデータを自身に反映させるのにかかる時間
である。
【００１３】
ここで、（１）式は前記の要件１を満たすための条件であり、ライト値が共有メモリ及び全てのプロセッサ上の共有メモリキャッシュに反映されてからグローバルバスを開放することを保証するものである（一般にはライト処理の完了応答を被ライト側から送出し、その受信をもってバス開放を行うシーケンスが採られる場合が多い）。その条件を満たすことで、グローバルバスの使用権調停により次のプロセッサがライト処理を開始するときには前のライト処理が完了していることが保証される。いわば、グローバルバスの持つ欠点によりコヒーレンシ制御の要件が満たされている格好であるが、実は前記の要件１は、データ更新の調停を要することと本質的に差異がない。データ更新の順序付けを保証することは、複数のデータ更新が同時に発生しないことを保証すること、つまり調停を行うことと等価だからである。したがって、前記のコヒーレンシ制御の要件１を満たすことは、グローバルバスを使用する上で生ずる前記の制約２を同じように受け、前記問題を解決する上での障壁となる。
【００１４】
一方、（２）式は、図４中（４ｄ）のタイミングが各プロセッサでばらつくのを吸収して、前記の要件２を満たすための条件である。（４ｄ）のタイミングは、グローバルバスに現れたライトアクセスと競合するリードアクセスが各プロセッサ上で起動されたときに、更新前のデータがプロセッサコアに返されるか、更新後のデータが返されるかの境界となるタイミングである。更新後のデータが返送されるのは（４ｅ）のタイミングであるので、（２）式を満たさないと、このタイミングがプロセッサによっては逆転し、前記の要件に反することになる。
【００１５】
ここで、たとえば（１）式は、バス占有時間を一定以上にしなければならないこと、つまり共有メモリ空間の帯域に対する制約を与えることを示しているし、（２）式は共有メモリキャッシュや共有メモリに対する書き込み時間を短くして帯域を増やそうとしても、プロセッサ間で（４ｄ）のタイミングがばらつくことを考慮し、一定以上の時間に保たなければならないことを示している。これらの例のとおり、各種の動作タイミングに条件が付されるために、処理時間の短縮を図って性能向上を図ろうとする場合に、コヒーレンシ制御自体が一種の制約を生むことになる。
【００１６】
従来のキャッシュ間のコヒーレンシをとる技術として、特許文献１がある。特許文献１では、プロセッサモジュールは、キャッシュメモリを有し、他のプロセッサモジュールに、バスを介して、コヒーレンシトランザクションを発行する。コヒーレンシトランザクションを受け取ったプロセッサモジュールは、コヒーレンシ検査を実行する。コヒーレンシを維持するために更新を行う場合、更新に使われるべきデータは、バスを介して送られる。プロセッサモジュールとメインメモリとをつなぐ信号線は、コヒーレンシ検査の結果の通知に使われる。
【特許文献１】特開平７−２８１９５６号公報
【発明の開示】
【００１７】
本発明の課題は、以上に述べたようなコヒーレンシ制御を含む前記の各種制約による性能低下要因の最小化を図りながら、前記の課題を解決して共有メモリ空間の帯域とレイテンシの向上を図ったマルチプロセッサシステムを提供することである。
【００１８】
本発明のマルチプロセッサシステムは、それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも１つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、共有メモリ領域のデータの更新において、更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専用回線手段と、データの更新通知を、各プロセッサに該更新通知を送信する権利を調停しながら、伝送するグローバルバス手段とを備え、プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、該更新通知によって示されるアドレスへのアクセスを制限し、各プロセッサ及び共有メモリに到着した更新に用いるべきデータによって、共有メモリ領域の該アドレスのデータが更新された後、該アドレスへのアクセスを許可することを特徴とする。
【００１９】
本発明によれば、更新データを送受する専用回線手段を設けたことにより、更新データの送受信が高速化される。また、グローバルバス手段では、データ量の少ない更新通知のみを調停して転送すればよいので、バスの使用権の獲得のために長時間待たされることが少なくなる。また、更新通知にしたがって、更新データによる共有メモリ領域の更新を各プロセッサおよび共有メモリがするので、共有メモリキャッシュと共有メモリとのコヒーレンシが確保される。
【発明を実施するための最良の形態】
【００２０】
図５は、本発明の実施形態に基づくシステムの構成図である。
本発明の実施形態の第１の態様における本発明の原理を以下に示す。図５において、従来例のグローバルバスに相当する部分は、更新通知バス（５ｅ）として、データ更新の通知と、更新データの送出要求を専従的に行うバスとして用いられる。更新データの内容はデータチャネル（５ｇ）を使用してリピータ（５ｈ）との間で送受される。データチャネルは高速広帯域の既知の伝送手段（例えば、ギガビットイーサネット（登録商標）等）を用いることを想定する。リピータ（５ｈ）はデータチャネルが接続された各ポートに現れたデータを、全てのポートに同報する機能を有する。なお、プロセッサの数が少なく現実的なデータチャネル数で収まる場合は、リピータを設けずに全てのプロセッサと共有メモリの間に１対１でデータチャネルを設け、各プロセッサ上で同報する処理を行ってもよい。また、共有メモリは特定のプロセッサ上に配置してしまってもよいし、特願２００２−１２６２１２号公報にある例のように、各プロセッサが共有メモリ空間のサイズに等しい共有メモリキャッシュを具備する場合には、共有メモリ自体を設けなくてもよい。いずれの場合でも本発明の実施形態としての効果を得ることが可能である。
【００２１】
各プロセッサは、プロセッサコアにより共有メモリ空間へのライト処理が発行されると、更新通知バスを獲得して更新対象のアドレスを更新通知バスに送出する。それと同時に、データチャネルの送信バッファに更新データを投入する。更新データは、主に各プロセッサとリピータのポート部における信号処理遅延を受け、更新通知に対して遅れて他のプロセッサに到達する。
【００２２】
一方、更新通知バスは全てのプロセッサが常に監視しており、更新通知を検知すると、該アドレスをプロセッサ上の更新キューに書き込む。その後更新データが到着すると、それを共有メモリキャッシュにライトし、更新キューから該アドレスを消去する。また、更新キュー上に存在するアドレスに対してプロセッサコアからのリード処理が起動された場合、共有メモリキャッシュからのリードを保留し、更新データ到着時に共有メモリキャッシュへのライト処理とあわせてそのデータをプロセッサコアに返送する処理を行う。ここで、更新キューに格納されているアドレスは、全て全てのアドレスが監視対象となっており、更新データには、ライト先のアドレスが付加されている。したがって、各プロセッサでは、更新キュー内のアドレスと更新データに付加されているアドレスを比較して、共有メモリキャッシュの適切なアドレスに更新データを書き込むことができる。また、共有メモリの構成は、プロセッサの構成と基本的に同一であるが、共有メモリには、プロセッサコアが存在せず、共有メモリキャッシュがより容量の大きい共有メモリチップとなっている。
【００２３】
共有メモリキャッシュ上に有効データが存在しない場合、つまりキャッシュミス時のリードアクセスは、更新通知バスに更新データ送出要求を発行し、共有メモリまたは他の有効なデータを共有メモリキャッシュ上に保持するプロセッサが更新データを送出することにより行う。
【００２４】
図６は、本発明の実施形態における第１の態様の一連の処理に基づくタイムチャートの例である。
本例はプロセッサ１がアドレス１にデータ１を、それに続いてプロセッサ２がアドレス２にデータ２をライトしており、それと平行してプロセッサ３がアドレス１、アドレス０、アドレス１の順に共有メモリ空間をリードした場合である。なお、共有メモリ空間上のデータ初期値は全て０とする。なお、図６中、Ａはアドレス、Ｄはデータを意味し、また、（１）←０等の表記はアドレス１へのデータ０のライト、１←（０）等の表記はアドレス０からのデータ１のリードをそれぞれ意味する。
【００２５】
プロセッサ３の１回目のリード時には更新キューは空であるため、共有メモリキャッシュからリードが行われ、データ０がプロセッサコアに返送される。ついで、プロセッサ１からの更新通知を検知し、それがプロセッサ３の更新キューに投入される。プロセッサ３の２回目のリード時には、更新キューは空ではないが、更新キュー上にあるのはアドレス１のみであり、リードアドレスと一致するものが存在しないで、１回目のリードと同様の処理にてデータ０がプロセッサコアに返送される。３回目のリードでは、更新キュー上にリードアドレスと一致するものがあるため、共有メモリキャッシュのリードは起動されずリードアクセスは保持される。その後、プロセッサ１からアドレス１の更新データが到着すると、プロセッサ３の共有メモリキャッシュにデータ１がライトされて更新キューがクリアされ、同時にそのデータがアドレス１のリードデータとしてプロセッサコアに返送される。
【００２６】
本方式の主な利点は次の２点である。一つは、データ更新を行う側のプロセッサにおいて、他のプロセッサの共有メモリキャッシュへの反映を待たなくてもすむためにバス占有時間を削減でき、共有メモリ空間の帯域の向上が図れることである。もう一つは、データ更新処理と競合しないリードアクセスの不要な待ち合わせ時間を排除することで、リードアクセスの平均レイテンシを低減し得ることである。このうち、後者の従来例に対する改善度合いは、共有メモリキャッシュのヒット率とアクセス競合の発生確率により変化するが、特にヒット率が高く競合発生確率が低いほど、本方式の優位性は顕著となる。
【００２７】
本発明の実施形態の第１の態様における原理は、第１の態様におけるデータ更新の単位をブロック化することで、共有メモリ空間の帯域を更に拡大しようとするものである。通常考え得る実装では、データチャネルや共有メモリキャッシュの帯域は、更新通知バスのそれに比較してはるかに大きくすることが可能である。したがって、共有メモリ空間の帯域としては、更新通知バスの帯域により制限され、データチャネルや共有メモリキャッシュの帯域を活用しきれない可能性が生ずる。まず、これを解決しようとするものである。
【００２８】
図７は、本発明の実施形態の第２の態様に基づく処理のタイムチャートの例である。
同図においては、データ更新を４アドレス単位としたものである。プロセッサ１及び２の送出する更新通知は更新対象アドレスの先頭を示すことにより行われ、対応するアドレスの更新データはデータチャネル上にひとまとめにして送出される。
【００２９】
データ長が固定のままでは、ソフトウェアの処理上不要なデータまで組にしてデータ更新を行わなければならなくなるケースが発生するため、データチャネルや共有メモリキャッシュの帯域を浪費し、実効帯域を低下させる可能性が発生する。そのため、更新データサイズを可変として必要十分なデータのみがデータチャネルに送出されるように構成する。
【００３０】
図８は、異なるデータサイズでデータ更新を行った場合のタイムチャートの例である。
同図においては、図７の例においてプロセッサ１の初回のライトが更新サイズ２となってる点のみが異なる。この差により、全体として２アドレス分のデータ収受に要する時間分、データチャネル及び共有メモリキャッシュの占有時間が減少する。また、その時間分プロセッサ２のライト処理に対応する更新データの到着が早くなり、更新キューの内容がクリアされるまでの時間が短くなるので、この原理によりアクセス競合時のレイテンシも低減することができる。
【００３１】
また、第２の態様における方式は帯域の向上のみでなく、共有メモリ空間上にブロック単位での排他的更新を提供する手段ともなる。この点によりソフトウェア処理を効率化し、システムの処理能力を向上することも期待できる。同等のことをソフトウェアで実現するには、更新開始と完了を管理するために余分な処理が必要となるからである。
【００３２】
本発明の実施形態の第３の態様における原理は、プロセッサがコヒーレンシ制御要否の属性をライトアクセス毎に選択することを可能として、コヒーレンシ制御不要の属性が指定されたライトアクセスについて更新通知を発行せず、更新データのみを他のプロセッサに送出する制御を行うものである。ソフトウェアの処理内容によっては、コヒーレンシ保証が不要な共有メモリ空間の用途もあるので、そのような処理に対して、この制御をソフトウェアが利用し、更新通知バスの使用頻度を削減して共有メモリ空間の帯域を向上すると共に、更新データが他プロセッサに反映される時間を短縮し、また不要なアクセス競合の発生によるレイテンシ増加を必要最小限に抑制してリードアクセスの平均レイテンシの削減を図ろうとするものである。
【００３３】
図９は、本発明の実施形態の第３の態様に基づく処理のタイムチャートの例である。
この例におけるプロセッサのアクセスパターンは図６の例に準じており、プロセッサ１の初回のライトがコヒーレンシ制御不要の属性が付されてる点のみが異なる。プロセッサ１の初回のライトに伴う更新通知バス上の処理が起動されないため、それに要する分更新通知バスの占有時間が減少している。また、その分プロセッサ２による２回目のライトアクセスに伴う更新通知が更新通知バスに早く送出されるため、更新時間の短縮を図ることもできる。プロセッサ３の３回目のリードはプロセッサ１のライトより後に発行されているが、本制御により更新キューには投入されていないため、競合による待ち合わせが発生せず、通常と同じレイテンシにてリードアクセスが完了している。
【００３４】
本発明の実施形態の第４の態様における原理は、プロセッサのオンライン増設時に、共有メモリ空間の全てのデータを保持するプロセッサもしくは共有メモリが、自身が持つ共有メモリ空間のデータをデータチャネルの空き時間を使用して、増設プロセッサに転送し、増設プロセッサはそのデータを受けて共有メモリキャッシュを初期化するものである。
【００３５】
増設直後のプロセッサは共有メモリキャッシュの内容が全て無効データであり、そのまま運用系に参加させると共有メモリ空間へのアクセスが全て共有メモリキャッシュでミスヒットする。これにより、運用開始直後は増設プロセッサの処理能力が著しく低下するだけでなく、更新通知バスやデータチャネルが不用意に占有されるために他のプロセッサにも影響を与え、システム性能をかえって低下させる危険もある。本方式により、プロセッサ増設による運用系の処理能力低下を防ぎ、また増設プロセッサの処理能力も運用開始直後から最大限に引き上げることができる。
【００３６】
図１０は、本発明の実施形態の第４の態様の原理に基づいたタイムチャートの例である。
図中、ａ〜ｈは通常のデータ更新処理に基づく転送で、１〜８までが、本方式により行われる増設プロセッサへのデータ転送である。増設プロセッサは、自身が新たにシステムに実装されたことを、更新通知バスに特定の信号を送出するか、そしくは実装未実装を示す専用の信号線を用いるなどの方法で他のプロセッサに通知する。増設プロセッサ向けにデータを送出するプロセッサまたは共有メモリはその通知を受け、図１０に示す通り、自身の更新キューが空のときに、更新データをデータチャネルに送出する。更新キューが空でなくなったら、直ちにデータ送出を中断して通常の処理を優先し、更新キューが空になったらデータ送出を再開する。このような処理により、システム上で行われる通常のデータ更新処理のタイミングに影響を与えることなく、増設プロセッサに対して共有メモリキャッシュを満たすためのデータを送出する処理を追加することができる。増設プロセッサは、データチャネルより受け取った全てのデータで満たされた後、本来の処理を開始し運用系へ参加する。このときには共有メモリキャッシュの内容は全て更新されており、運用開始直後から共有メモリキャッシュのヒット率が高く保たれ、システムとしての処理能力を向上することができる。
【００３７】
図１１及び図１２は、本発明の実施形態の第５の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
第５の態様による制御の原理は、競合頻度の高い特定のアドレスへのライト処理に従来と同じ手法を選択的に使用できるようにすることで、競合時のリードアクセスのレイテンシを低減しようとするものである。図１１に示す通り、更新データを転送するデータバス（１１ｉ）を設けて更新通知バスと同じ調停論理経路としてデータチャネル（１１ｇ）を使用するか、データバスを使用するかは、ライトアクセス毎にプロセッサが選択する。
【００３８】
図１２は、同時間に発行されたライトアクセスにおいて、更新データの転送経路にデータチャネルを使用した場合（Ｐ＝０）と、データバスを使用した場合（Ｐ＝１）のタイミングの相違を示したものである。ライトアクセス起動から、他のプロセッサが更新前のデータをリードしなくなるまでの時間は、ｔdsdであり、両者に相違はない。しかし、更新後のデータをリードできるように なるまでの時間は、（Ｐ＝１）の場合のｔduc1に対し、（Ｐ＝０）の場合、データチャネルのレイテンシの影響を受け、ｔduc0に増大する。同一アドレスに対するリードアクセスの競合が発生しない限り、この差はなんら影響しないが、競合が発生した場合に、この時間差がリードアクセスのレイテンシ増大となって現れるので、競合が多発するアクセスについて（Ｐ＝０）を選択的に使用する。それにより、リードアクセスの平均レイテンシを低減することができる。
【００３９】
図１３は、本発明の実施形態の第６の態様を説明する図である。
図１３（ａ）は、第６の態様における制御のタイムチャートである。
第６の態様は、第５の態様における制御原理を、第１〜第４の態様におけるシステム構成にそのまま適用するもので、特定のライトアクセスについて、更新データの物理的な転送は行わずにデータ更新を行うものである。具体的には、共有メモリ空間上のアドレスとライトされるべきデータを、プロセッサコアが生成する特定のアドレスにあらかじめ対応付けておき、その特定アドレスに対するライトアクセスが発行された場合、更新通知が発行された時点で、その予約されたデータが更新データとして転送されたものとして取り扱う。この方法では小さな情報量のデータしか扱えないが、信号線数の多い従来のようなデータバスを設置することなく、かつ、第５の態様の方式と同じ効果を得ることができる。
【００４０】
図１３（ａ）の例では、アドレス１に対するライトは、共有メモリ空間上の同アドレスに対するデータ１のライトとして扱っている。更新通知の認識時、更新データが同時に伝達されたものとして扱えるため、第５の態様において（Ｐ＝１）とした場合と同じタイミングで処理を行うことができる。また、データチャネルの占有が発生しないため、後続のアクセスがある場合は、そのアクセスにかかわるレイテンシを低減する効果も得られる。
【００４１】
例えば、図１３（ａ）の例において、アドレス２に対するライトをアドレス１に対するデータ０のライトとして扱う規約を設けて併用すれば、アクセス競合のオーバヘッドが少なく、他のプロセッサへの反映時間も高速な２値のフラグとしての機能をソフトウェアに提供することができる（図１３（ｂ））。
【００４２】
図１４は、本発明の実施形態に基づくより具体的なシステム構成図である。
システムはプロセッサ１０基（１４ａ−１）〜（１４ａ−１０）と、バスアービタ／リピータ（１４ｂ）から構成されている。バスアービタとリピータはまったく独立した機能を提供するものであるが、システム構成を簡易にするため、両ブロックを同一のユニットに収容している。更新通知バス（１４ｃ）は、バスクロックＢＣ１〜ＢＣ１０、バス要求信号ＮＲ１〜ＮＲ１０、バス許可信号ＮＧ１〜ＮＧ１０、更新通知アドレスＮＡ（３０ビット）、更新通知アドレスマスクＮＭ（４ビット）、即時更新データＮＤ（４ビット）、更新通知信号ＮＶ、更新データ要求信号ＲＶ，即時更新属性信号ＮＩからなり、ＢＣに同期して動作する。データチャネルＴＳＤ１〜ＴＳＤ１０、ＲＳＤ１〜ＲＳＤ１０は、約３ギガビット／秒の伝送帯域を持つシリアル伝送線路を対向させた全二重通信チャネルを用いている。プロセッサのうち少なくとも２つは共有メモリ空間の全内容を保持しており、うち１つはマスタプロセッサとして更新データ要求に応答する。
【００４３】
図１５は、図１４中の各プロセッサ（１４ａ−１）〜（１４ａ−１０）の内部構成図である。
プロセッサ内部の機能ブロックは、プロセッサコア（１５ａ）、プロセッサバスブリッジ（１５ｂ）、更新通知バスブリッジ（１５ｅ）、データチャネルＩＦ（１５ｈ）、更新キュー（１５ｋ）、共有メモリキャッシュ（１５ｎ）に大別される。各部の機能概略を以下に示す。
（１５ａ）プロセッサコア
主処理部である。
（１５ｂ）プロセッサバスブリッジ
共有メモリ空間へのアクセスの包括的制御を行う。
【００４４】
制御ブロック（１５ｃ）は全体の制御を、リダイレクタ（１５ｄ）は、各機能ブロック間のバススイッチングと、アドレス及びデータの変換を行う。
（１５ｅ）更新通知バスブリッジ
更新通知バスの制御を行う。
（１５ｈ）データチャネルＩＦ
他プロセッサとの間で更新データの送受信を行う。
（１５ｋ）更新キュー
更新キューを収容しており、キュー状態を外部に出力する。
（１５ｎ）共有メモリキャッシュ
共有メモリ空間のデータを保持し、プロセッサコアに対して高速なアクセスを提供する。
【００４５】
図１６は、本発明の実施形態における第１の態様のライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は、図１６中の各信号に付した番号に対応する。
（１）プロセッサコア（１６ａ）がプロセッサアドレスＰＡ、プロセッサデータＰＤ、プロセッサ転送タイプＰＴを設定し、プロセッサライト信号ＰＷを送信する。
（２）プロセッサバスブリッジ（１６ｂ）の制御ロジック（１６ｃ）はリダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（１６ｄ）は、それに応じ、プロセッサアドレスＰＡを実効アドレスＥＡとキャッシュアドレスＣＡに、プロセッサデータＰＤを実効データＥＤ及びキャッシュデータＣＤにエコーする。
（３）プロセッサバスブリッジ（１６ｂ）の制御ロジック（１６ｃ）は更新通知送信信号ＮＳを送信する。
（４）更新通知バスブリッジ（１６ｅ）の送信部（１６ｆ）はＮＳを受け、バス要求信号ＮＲを送信する。
（５）更新通知バスブリッジ（１６ｅ）の送信部（１６ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（６）更新通知アドレスＮＡにＥＡがエコーされ、更新通知信号ＮＶが全プロセッサに送信される。ＮＡ及びＮＶは自プロセッサの更新通知バスブリッジ監視部（１６ｇ）にもループバックし受信される。
（７）更新通知バスブリッジ（１６ｅ）の監視部（１６ｇ）は、自身が送出したＮＶを受け取ると、ＮＡを更新通知アドレスＳＡとしてエコーすると共に、ＮＶを更新通知受信信号ＳＶとして自プロセッサ内に送信する。ＳＶを受け、更新キュー（１６ｋ）のキューレジスタ（１６ｌ）に該更新通知がキューイングされる。このとき、他のプロセッサ上でも同じ制御が行われる。
（８）プロセッサバスブリッジ（１６ｂ）の制御ロジック（１６ｃ）はＳＶを受けて更新データ送信信号ＵＳを送信し、これを受けたデータチャネルＩＦ（１６ｈ）のフレーマ（１６ｉ）は、ＥＡ／ＥＤの内容を送信バッファにキューイングする。ＵＳの送信後、プロセッサコアにアクナリッジ信号ＡＣＫが送信され、プロセッサコア側のアクセスは完了する。
（９）データチャネルＩＦ（１６ｈ）のフレーマ（１６ｉ）では、送信バッファにキューイングされたデータが随時パケットに構築されており、完了した分からＳＥＲＤＥＳ（１６ｊ）（シリアライザ・デシリアライザの略であり、シリアル信号をパラレル信号に変換したり、パラレル信号をシリアル信号に変換する機能ブロックである）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルでＴＳＤとして更新データを送出する。
【００４６】
図１７は、本発明の実施形態の第１の態様に基づく更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図１７中の各信号に付した番号に対応する。
（１）データチャネルＩＦ（１７ｈ）のＳＥＲＤＥＳ（１７ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（１７ｉ）に受信パラレルデータＲＰＤとして送出する。
（２）データチャネルＩＦ（１７ｈ）のフレーマ（１７ｉ）はＲＰＤを受け、データ中のパケットの抽出及び展開を行い、更新データアドレスＵＡ、更新データＵＤを設定し、更新データ受信信号ＵＲを送信する。これにあわせて、キューレジスタ（１７ｌ）のキュークリアアドレスＱＣＡにＵＡがセットされる。
（３）プロセッサバスブリッジ（１７ｂ）の制御ロジック（１７ｃ）はＵＲを受け、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（１７ｄ）はそれに応じ、ＵＡをＣＡに、ＵＤをＣＤにエコーする。制御ロジック（１７ｃ）にて他の処理が行われている場合、いったん待機し、それが完了しだい本処理を実行する。
（４）プロセッサバスブリッジ（１７ｂ）の制御ロジック（１７ｃ）はキャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（１７ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。また、制御ロジック（１７ｃ）は、キュークリア信号ＱＣを送信し、これを受けた更新キュー（１７ｋ）は、（２）でセットしたＱＣＡをキューレジスタ（１７ｌ）からクリアする。
【００４７】
図１８は、本発明の実施形態の第１の態様において、共有メモリキャッシュのデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図１８中の各信号に付した番号に対応する。
（１）プロセッサコア（１８ａ）がＰＡ、ＰＴを設定し、プロセッサリード信号ＰＲを送信する。
（２）プロセッサバスブリッジ（１８ｂ）の制御ロジック（１８ｃ）はＦＣを設定し、リダイレクタ（１８ｄ）は、それに応じ、ＰＡをＥＡとＣＡにエコーする。
（３）プロセッサバスブリッジ（１８ｂ）の制御ロジック（１８ｃ）がＣＲを送信する。
（４）共有メモリキャッシュ（１８ｎ）はＣＲを受け、ＣＡにて指定されたキャッシュ上のデータが利用できない場合は利用不能信号ＮＰを送信し、利用可能な場合はキャッシュデータＣＤを送信する。また、更新キュー（１８ｋ）の比較器（１８ｍ）は、ＥＡで指定されるキューがキューレジスタ上にある場合、競合信号ＣＯＬを送信する。
（５）プロセッサバスブリッジ（１８ｂ）の制御ロジック（１８ｃ）は、ＮＰ、ＣＯＬのいずれも受信しなかった場合、ＣＤをＰＤにエコーし、ＡＣＫを送信してアクセスは完了する。ＣＯＬを受信した場合はＣＲを解除した後、ＣＯＬが解除されるまで待ち、ＣＯＬ解除の後に（３）以降の処理を再度行う。ここで、ＣＯＬを受信せず、ＮＰを受信した場合の処理は以下で説明する。
【００４８】
図１９は、本発明の実施形態の第１の態様におけるリードアクセスにて、共有メモリキャッシュ上のデータを利用できず、更新データ要求処理を伴う場合の信号の流れを示す図である。
【００４９】
そのフローを以下に示す。各行頭の番号は図１９中の各信号に付した番号に対応する。なお、途中（４）までは前項で述べたリードアクセス時のフローとまったく同じであるため、省略する。
（５）プロセッサバスブリッジ（１９ｂ）の制御ロジック（１９ｃ）がＣＯＬを受信せず、ＮＰを受信した場合は、更新データ要求信号ＲＳを送信する。
（６）更新通知バスブリッジ（１９ｅ）の送信部（１９ｆ）はＲＳを受け、バス要求信号ＮＲを送信する。
（７）更新通知バスブリッジ（１９ｅ）の送信部（１９ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（８）更新通知アドレスＮＡにＥＡがエコーされ、更新データ要求信号ＲＶが全プロセッサに送信される。ＮＡ及びＲＶは自プロセッサの更新通知バスブリッジ監視部（１９ｇ）にもループバックし受信される。
（９）更新通知バスブリッジ（１９ｅ）の監視部（１９ｇ）はＮＡをＳＡとしてエコーするとともに、自プロセッサが送出したＲＶを検知すると、自プロセッサ内にＳＶとしてエコーする。更新キュー（１９ｋ）はＳＶをキューセット信号ＱＳとして受け、ＳＡの内容をキューセットアドレスＱＳＡとしてキューレジスタ（１９ｌ）にキューイングする。
（１０）リードアクセス対象に一致するキューがキューイングされるため、更新キュー（１９ｋ）よりＣＯＬが必ず送信される。ＣＯＬの受信をもって、プロセッサバスブリッジ（１９ｂ）はＣＯＬが解除されるまで、プロセッサコア（１９ａ）からのリードアクセスを保留したまま更新通知と更新データの受信処理を行いながら待機する。
（１１）（８）で送出された更新データ要求を受けて、マスタプロセッサから更新データが送出され、データチャネルＩＦ（１９ｈ）は更新データアドレスＵＡ、更新データＵＤを設定し、更新データ受信信号ＵＲを送信する。これにあわせて、キューレジスタ（１９ｌ）のキュークリアアドレスＱＣＡにＵＡがセットされる。
（１２）更新キュー（１９ｋ）からリードアクセス対象のキューがクリアされるため、ＣＯＬが解除される。
（１３）プロセッサバスブリッジ（１９ｂ）の制御ロジック（１９ｃ）は、ＣＯＬの解除を受け、ＦＣを制御してリダイレクタ（１９ｄ）を制御し、ＵＡをＣＡに、ＵＤをＣＤとＰＤにエコーする。
（１４）プロセッサバスブリッジ（１９ｂ）の制御ロジック（１９ｃ）はキャッシュライト信号ＣＷを送信して共有メモリキャッシュ上の所望のデータをＣＤにて更新すると共に、プロセッサコアに対してＡＣＫを送信し、リードアクセスを完了する。
【００５０】
図２０は、本発明の実施形態の第１の態様において、他のプロセッサから送信された更新データ要求に対する、マスタプロセッサによる応答時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２０中の各信号に付した番号に対応する。
（１）更新通知バスブリッジ（１９ｅ）の監視部（１９ｇ）はＲＶを検知すると、ＮＡをＳＡにエコーすると共に、更新データ要求信号ＳＲをプロセッサ内部に送信する。
（２）プロセッサバスブリッジ（２０ｂ）の制御ロジック（２０ｃ）は、自身がマスタプロセッサである場合、ＳＲを受けてＦＣを設定してリダイレクタ（２０ｄ）を制御してＳＡをＥＡとＣＡにエコーし、ＣＤとＥＤを接続する。ここで自身がマスタプロセッサでない場合、ＳＲは無視される。なお、制御ロジック（１７ｃ）にて他の処理が行われている場合一旦待機し、それが完了しだい本処理を実行する。
（３）プロセッサバスブリッジ（２０ｂ）の制御ロジック（２０ｃ）は、ＣＲを共有メモリキャッシュ（２０ｎ）に送信する。
（４）共有メモリキャッシュ（２０ｎ）からＣＤが送出されＥＤにエコーされる。
（５）プロセッサバスブリッジ（２０ｂ）の制御ロジック（２０ｃ）はＵＳを送信し、ライトアクセス時の更新データ送出処理と同様に、データチャネルに更新データが送出される。
【００５１】
図２１は、本発明の実施形態の第２の態様におけるライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２１中の各信号に付した番号に対応する。
（１）プロセッサコア（２１ａ）がプロセッサアドレスＰＡ、プロセッサデータＰＤ、プロセッサ転送タイプＰＴを設定し、バースト転送により複数サイズのデータをリダイレクタに転送する。
（２）プロセッサバスブリッジ（２１ｂ）の制御ロジック（２１ｃ）はリダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２１ｄ）はそれに応じ、プロセッサアドレスＰＡで設定された先頭のアドレスを実効アドレスＥＡにエコーする。また、バースト転送されたデータサイズをカウントし、そこから実行アドレスマスクＥＭを算出して出力する。ここで、実効アドレスマスクは、実効アドレスの下位何ビットを無視するかを示す信号である。ＰＤに設定された複数サイズのデータはリダイレクタ内部のバッファに格納する。
（３）プロセッサバスブリッジ（２１ｂ）の制御ロジック（２１ｃ）は更新通知送信信号ＮＳを送信する。
（４）更新通知バスブリッジ（２１ｅ）の送信部（２１ｆ）はＮＳを受け、バス要求信号ＮＲを送信する。
（５）更新通知バスブリッジ（２１ｅ）の送信部（２１ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（６）更新通知アドレスＮＡにＥＡが、更新通知アドレスマスクＮＭにＥＭがエコーされ、更新通知信号ＮＶが全プロセッサに送信される。ＮＡ、ＮＭ、ＮＶは自プロセッサの更新通知バスブリッジ監視部（２１ｇ）にもループバックし受信される。
（７）更新通知バスブリッジ（２１ｅ）の監視部（２１ｇ）はＮＶを受け、ＮＡを更新設定アドレスＳＡ、ＮＭを更新設定アドレスマスクＳＭにエコーして更新通知受信信号ＳＶを送信する。更新キュー（２１ｋ）はＳＶをキューセット信号ＱＳとして受け、ＳＡの内容をキューセットアドレスＱＳＡ、ＳＭの内容をキューセットアドレスマスクＱＳＭとしてキューレジスタ（２１ｌ）にキューイングする。
（８）プロセッサバスブリッジ（２１ｂ）の制御ロジック（２１ｃ）は、ＳＶを受けると更新データ送信信号ＵＳを送信し、同時にＦＣを設定する。リダイレクタ（２１ｄ）はこれに応じてバッファ内に格納した更新データの先頭のデータから順番にＥＤとして設定する。これを受けたデータチャネルＩＦ（２１ｈ）のフレーマ（２１ｉ）はＥＡ／ＥＭ／ＥＤの内容を送信バッファにキューイングする。ＵＳの送信後、プロセッサコアにアクナリッジ信号ＡＣＫが送信され、プロセッサコア側のアクセスは完了する。
（９）データチャネルＩＦ（２１ｈ）のフレーマ（２１ｉ）では、送信バッファにキューイングされたデータを随時パケットに構築しており、完了した分からＳＥＲＤＥＳ（２１ｊ）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳは、これを受け、データチャネルで搬送される電気信号に変調を行い、送信シリアルデータＴＳＤとして更新データを送出する。
【００５２】
図２２は、本発明の実施形態の第２の態様において、他プロセッサから送出された更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２２中の各信号に付した番号に対応する。
（１）データチャネルＩＦ（２２ｈ）のＳＥＲＤＥＳ（２２ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（２２ｉ）に受信パラレルデータＲＰＤとして送出する。
（２）データチャネルＩＦ（２２ｈ）のフレーマ（２２ｉ）はＲＰＤを受け、データ中のパケットの抽出及び展開を行い、更新データアドレスＵＡ、更新アドレスマスクＵＭに設定し、更新データ受信信号ＵＲを送信する。これに合わせて、キューレジスタ（２２ｌ）のキュークリアアドレスＱＣＡにＵＡがセットされる。また、ＵＲ送信と同時に更新データを先頭データから順番にＵＤに設定する。
（３）プロセッサバスブリッジ（２２ｂ）の制御ロジック（２２ｃ）はＵＲを受け、リダイレクタ機能制御信号ＦＣを設定する。ＵＡとＵＤは一旦リダイレクタ内のバッファに格納し、ＵＡがＣＡ、ＵＤの先頭データがＣＤに設定される。ＣＡに設定制御ロジック（２２ｃ）にて他の処理が行われている場合、一旦待機し、それが完了しだい本処理を実行する。
（４）プロセッサバスブリッジ（２２ｂ）の制御ロジック（２２ｃ）はキャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（２２ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。続けてリダイレクタのバッファに格納された次の更新データをＣＤに設定し、ＣＡの値を１つインクリメントして、同様のキャッシュメモリ更新処理を、ＵＭの設定値にしたがって、バッファ内の更新データがなくなるまで繰り返し行う。その後、キュークリア信号ＱＣを送信し、これを受けた更新キュー（２２ｋ）は、（２）でセットしたＱＣＡをキューレジスタ（２２ｌ）からクリアする。
【００５３】
図２３は、本発明の実施形態の第３の態様における更新通知を省略したライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２３中の各信号に付した番号に対応する。
（１）プロセッサコア（２３ａ）がプロセッサ転送タイプＰＴにデータオンリ属性を設定し、プロセッサアドレスＰＡ、プロセッサデータＰＤ、プロセッサライト信号ＰＷを送信する。
（２）プロセッサバスブリッジ（２３ｂ）の制御ロジック（２３ｃ）は、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２３ｄ）はそれに応じ、プロセッサアドレスＰＡを実行アドレスＥＡに、プロセッサデータＰＤを実効データＥＤにエコーする。
（３）プロセッサバスブリッジ（２３ｂ）の制御ロジック（２３ｃ）は、データオンリ属性信号ＤＯを設定し、更新データ送信信号ＵＳを送信する。ＵＳの送信後プロセッサコアにアクナリッジ信号ＡＣＫが送信され、プロセッサコア側のアクセスは完了する。
（４）更新データ送信信号ＵＳとデータオンリ属性信号ＤＯを受信したデータチャネルＩＦ（２３ｈ）のフレーマ（２３ｉ）はＥＡ／ＥＤの内容及びデータオンリ属性を送信バッファにキューイングする。
（５）データチャネルＩＦ（２３ｈ）のフレーマ（２３ｉ）では、送信バッファにキューイングされたデータおよび属性を随時パケットに構築しており、完了した分からＳＥＲＤＥＳ（２３ｊ）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルデータＴＳＤとして更新データを送出する。
【００５４】
図２４は、本発明の実施形態の第３の態様において、他プロセッサから送出された更新通知を省略した更新データ受信時の信号の流れを示す図ある。
そのフローを以下に示す。各行頭の番号は図２４中の各信号に付した番号に対応する。
（１）データチャネルＩＦ（２４ｈ）のＳＥＲＤＥＳ（２４ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（２４ｉ）に受信パラレルデータＲＰＤとして送出する。
（２）データチャネルＩＦ（２４ｈ）のフレーマ（２４ｉ）はＲＰＤを受け、データ中のパケットの抽出および展開を行い、更新データアドレスＵＡ、更新データＵＤ、データオンリ属性ＤＯを設定し、更新データ受信信号ＵＲを送信する。
（３）プロセッサバスブリッジ（２４ｂ）の制御ロジック（２４ｃ）は更新データ受信信号ＵＲとデータオンリ属性信号ＤＯを受け、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２４ｄ）はそれに応じ、ＵＡをキャッシュアドレスＣＡに、ＵＤをキャッシュデータＣＤにエコーする。制御ロジック（２４ｃ）にて他の処理が行われている場合一旦待機し、それが完了しだい本処理を実行する。
（４）プロセッサバスブリッジ（２４ｂ）の制御ロジック（２４ｃ）はキャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（２４ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。
【００５５】
図２５は、本発明の実施形態の第２の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ送信要求を行うときの信号の流れを示す図である。
【００５６】
そのフローを以下に示す。各行頭の番号は図２５中の各信号に付した番号に対応する。
（１）プロセッサバスブリッジ（２５ｂ）の制御ロジック（２５ｃ）は、自プロセッサがシステムに増設されたことを検知すると、全データ送信要求信号としてＲＳとＩＳを同時に送信する。
（２）更新通知バスブリッジ（２５ｅ）の送信部（２５ｆ）はＲＳとＩＳを受け、バス要求信号ＮＲを送信する。
（３）更新通知バスブリッジ（２５ｅ）の送信部（２５ｆ）がバス許可信号ＮＧを受信し、更新通知バスを獲得する。
（４）更新通知バスブリッジ（２５ｅ）の送信部（２５ｆ）はＲＶとＮＩを同時に送信する。
【００５７】
図２６は、本発明の実施形態の第４の態様におけるキャッシュフィル動作において、マスタプロセッサが全データ送信要求に応答して全データ送信を行うときの信号の流れを示す図である。
【００５８】
そのフローを以下に示す。各行頭の番号は、図２６中の各信号に付した番号に対応する。
（１）マスタプロセッサの更新通知バスブリッジ（２６ｅ）の監視部（２６ｇ）は、ＲＶと同時にＮＩを受信すると、ＳＲとＳＩを同時に送信する。
（２）プロセッサバスブリッジ（２６ｂ）の制御ロジック（２６ｃ）はＳＲとＳＩを同時に受信すると全データ送信要求信号と解釈し、共有メモリ空間の先頭のアドレスを送信開始アドレス、及び、次送信アドレスとして記憶する。
（３）システムに別のプロセッサが増設され、マスタプロセッサの制御ロジック（２６ｃ）が、再び全データ要求信号を受信した場合、制御ロジック（２６ｃ）は先に記憶した次送信アドレスを送信開始アドレスとして記憶する。
（４）制御ロジック（２６ｃ）はキューエンプティ信号ＱＥが有効であり、かつ、他に要求されている処理がないとき、リダイレクタ機能制御信号ＦＣを設定し、リダイレクタ（２６ｄ）は先に記憶した次送信アドレスをキャッシュアドレスＣＡに設定し、制御ロジック（２６ｃ）はキャッシュリード信号ＣＲを送信する。
（５）共有メモリキャッシュ（２６ｎ）はＣＲを受け、ＣＡにて指定されたキャッシュ上のデータをキャッシュデータＣＤに送信する。
（６）プロセッサバスブリッジ（２６ｂ）のリダイレクタ（２６ｄ）は、先に設定したＣＡを実効アドレスＥＡにも設定し、ＣＤを実効データＥＤにエコーする。制御ロジック（２６ｃ）はデータオンリ属性ＤＯを設定し、更新データ送信信号ＵＳを送信する。これを受けたデータチャネルＩＦ（２６ｈ）のフレーマ（２６ｉ）はＥＡ／ＥＤの内容及びデータオンリ属性を送信バッファにキューイングする。
（７）プロセッサバスブリッジ（２６ｂ）の制御ロジック（２６ｃ）は、送信したアドレスの次のアドレスを次送信アドレスとして記憶する。送信したアドレスが共有メモリ空間の最後のアドレスに達した場合は、共有メモリ空間の先頭のアドレスを次送信アドレスとして記憶する。次送信アドレスが先に記憶した送信開始アドレスと一致した場合、全データ送信を終了する。
（８）（３）〜（７）の手順を繰り返して、順次データを送出する。
（９）データチャネルＩＦ（２６ｈ）のフレーマ（２６ｉ）では、送信バッファにキューされたデータを随時パケットに構築しており、完了した分からＳＥＲＤＥＳ（２６ｊ）に送信パラレルデータＴＰＤとして送出される。ＳＥＲＤＥＳはこれを受け、データチャネルで搬送できる電気信号に変調を行い、送信シリアルデータＴＳＤとしてデータを送出する。
【００５９】
図２７は、本発明の実施形態の第４の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ受信を行うときの信号の流れを示す図である。
そのフローを以下に示す。各行頭の番号は図２７中の各信号に付した番号に対応する。
（１）全データ受信動作中に制御ロジック（２７ｃ）が、プロセッサリード信号ＰＲ、または、プロセッサライト信号ＰＷを受信した場合、制御ロジック（２７ｃ）は、この要求を保留する。全データ受信動作中であっても、更新キューへのキューイング、クリアはそれぞれ図１６、図１７で示されたフローで行う。
（２）データチャネルＩＦ（２７ｈ）のＳＥＲＤＥＳ（２７ｊ）が受信シリアルデータＲＳＤを復調し、フレーマ（２７ｉ）に受信パラレルデータＲＰＤとして送出する。
（３）データチャネルＩＦ（２７ｈ）のフレーマ（２７ｉ）はＲＰＤを受け、データ中のパケットの抽出および展開を行い、更新データアドレスＵＡ、更新データＵＤ、データオンリ属性ＤＯを設定し、更新データ受信信号ＵＲを送信する。
（４）プロセッサバスブリッジ（２７ｂ）の制御ロジック（２７ｃ）はＵＲを受け、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２７ｄ）は、それに応じ、ＵＡをキャッシュアドレスＣＡに、ＵＤをキャッシュデータＣＤにエコーする。制御ロジック（２７ｃ）にて他の処理が行われている場合一旦待機し、それが完了次第本処理を実行する。
（５）プロセッサバスブリッジ（２７ｂ）の制御ロジック（２７ｃ）はキャッシュライト信号ＣＷを送信する。データオンリ属性ＤＯを受信しているので、キュークリア信号ＱＣは送信しない。
（６）キャッシュライト信号ＣＷを受けた共有メモリキャッシュ（２７ｎ）は、ＣＡ及びＣＤで指定される所望のデータを更新し、更新前の状態において該データが利用不可能な状態であった場合、利用不可能信号ＮＰを送信する。
（７）プロセッサバスブリッジ（２７ｂ）の制御ロジック（２７ｃ）は、全データ受信動作中に利用不能信号ＮＰを受信した回数を計測することで、共有メモリキャッシュの全領域が有効データでフィルされたことを認識すると、全データ受信動作を終了する。
（８）全データ受信動作が終了したときに、保留されているプロセッサリード信号ＰＲ、または、プロセッサライト信号ＰＷがあった場合には、その動作を開始する。
【００６０】
図２８は、本発明の実施形態の第５の態様に基づくライトアクセス時の信号の流れを示す図である。
そのフローを以下に示す。
（１）プロセッサコア（２８ａ）がＰＡ、ＰＤ、ＰＴを設定してＰＷを送信。
（２）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）はリダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２８ｄ）はそれに応じ、プロセッサアドレスＰＡを実効アドレスＥＡとキャッシュアドレスＣＡに、プロセッサデータＰＤを実効データＥＤ及びキャッシュデータＣＤにエコーする。
（３）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）は更新通知送信信号ＮＳを送信する。あわせて、ＰＡが規定のアドレス空間にある場合に即時更新属性送信信号ＩＳを送信する。
（４）更新通知バスブリッジ（２８ｅ）の送信部（２８ｆ）はＮＳを受け、ＮＲを送信する。
（５）更新バスブリッジ（２８ｅ）の送信部（２８ｆ）がＮＧを受信し、更新通知バスを獲得する。
（６）更新通知アドレスＮＡにＥＡが、即時更新属性信号ＮＩにＩＳが、即時更新データＮＤにＥＤがそれぞれエコーされ、更新通知信号ＮＶが全プロセッサに送信される。ＮＡ、ＮＤ、ＮＶ、ＮＩは自プロセッサの更新通知バスブリッジ監視部（２８ｇ）にもループバックし受信される。
（７）更新通知バスブリッジ（２８ｅ）の監視部（２８ｇ）は、ＮＶをＮＩと共に受信すると、即時更新信号ＳＩとして自プロセッサ内にエコーする。他のプロセッサ上でも同じ動作が行われる。
（８）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）は、リダイレクタ機能制御信号ＦＣを設定する。リダイレクタ（２８ｄ）はそれに応じ、ＳＡをＣＡに、ＳＤをＣＤにエコーする。他のプロセッサ上でも同じ動作が行われる。この際プロセッサバスブリッジ（２８ｂ）が別の処理を行っている場合、その処理の完了後にこの処理を最優先で行う。
（９）プロセッサバスブリッジ（２８ｂ）の制御ロジック（２８ｃ）は、キャッシュライト信号ＣＷを送信し、これを受けた共有メモリキャッシュ（２８ｎ）はＣＡで指定される所望のデータをＣＤにて更新する。他のプロセッサ上でも同じ動作が行われる。
（１０）プロセッサコアにＡＣＫが送信され、プロセッサコア側のアクセスが完了する。
【００６１】
本発明の実施形態の第６の態様に基づくライトアクセスは、特定アドレスへのライト時に予約データを用いるもので、そのフローは第５の態様におけるライトアクセスにほぼ準じる。以下の点が差分である。
（８）プロセッサバスブリッジ（２８ｂ）のリダイレクタ（２８ｄ）は、ＳＡがそのアクセスに予約データを用いる特定アドレスと解釈される場合、ＳＤを無視し、ＳＡに対応する予約データを生成してＣＤに出力する。
【産業上の利用可能性】
【００６２】
以上の通り、共有メモリキャッシュを具備するプロセッサにより構成される共有メモリ型マルチプロセッサシステムにおいて、本発明の適用によりコヒーレンシ保証に必要な時間と、データ転送に必要な時間が明確に分離され、共有メモリ空間のアクセスにおいて従来技術に存在した問題が以下の点で解決される。
・バス占有時間の最小化と、不要なレイテンシ増大要因の排除
・データ転送経路のレイテンシ隠蔽と、これによる帯域拡大の容易化
これにより、共有メモリキャッシュの高速性を最大限に活用することが可能となり、共有メモリ空間アクセスの帯域とレイテンシの双方が改善され、システムの処理能力向上に寄与することができる。
【図面の簡単な説明】
【００６３】
【図１】最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す図である。
【図２】各プロセッサ上に共有メモリキャッシュ（２ｈ）を配置した従来例を示す図である。
【図３】コヒーレンシ制御について説明する図である。
【図４】キャッシュコヒーレンシの確立の仕方の例を説明する図である。
【図５】本発明の実施形態に基づくシステムの構成図である。
【図６】本発明の実施形態における第１の態様の一連の処理に基づくタイムチャートの例である。
【図７】本発明の実施形態の第２の態様に基づく処理のタイムチャートの例である。
【図８】異なるデータサイズでデータ更新を行った場合のタイムチャートの例である。
【図９】本発明の実施形態の第３の態様に基づく処理のタイムチャートの例である。
【図１０】本発明の実施形態の第４の態様の原理に基づいたタイムチャートの例である。
【図１１】本発明の実施形態の第５の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
【図１２】本発明の実施形態の第５の態様におけるシステムの構成図と、その制御原理を示すタイムチャートである。
【図１３】本発明の実施形態の第６の態様を説明する図である。
【図１４】本発明の実施形態に基づくより具体的なシステム構成図である。
【図１５】図１４中の各プロセッサ（１４ａ−１）〜（１４ａ−１０）の内部構成図である。
【図１６】本発明の実施形態における第１の態様のライトアクセス時の信号の流れを示す図である。
【図１７】本発明の実施形態の第１の態様に基づく更新データ受信時の信号の流れを示す図である。
【図１８】本発明の実施形態の第１の態様において、共有メモリキャッシュのデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。
【図１９】本発明の実施形態の第１の態様におけるリードアクセスにて、共有メモリキャッシュ上のデータを利用できず、更新データ要求処理を伴う場合の信号の流れを示す図である。
【図２０】本発明の実施形態の第１の態様において、他のプロセッサから送信された更新データ要求に対する、マスタプロセッサによる応答時の信号の流れを示す図である。
【図２１】本発明の実施形態の第２の態様におけるライトアクセス時の信号の流れを示す図である。
【図２２】本発明の実施形態の第２の態様において、他プロセッサから送出された更新データ受信時の信号の流れを示す図である。
【図２３】本発明の実施形態の第３の態様における更新通知を省略したライトアクセス時の信号の流れを示す図である。
【図２４】本発明の実施形態の第３の態様において、他プロセッサから送出された更新通知を省略した更新データ受信時の信号の流れを示す図ある。
【図２５】本発明の実施形態の第２の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ送信要求を行うときの信号の流れを示す図である。
【図２６】本発明の実施形態の第４の態様におけるキャッシュフィル動作において、マスタプロセッサが全データ送信要求に応答して全データ送信を行うときの信号の流れを示す図である。
【図２７】本発明の実施形態の第４の態様におけるキャッシュフィル動作において、システムに増設されたプロセッサが全データ受信を行うときの信号の流れを示す図である。
【図２８】本発明の実施形態の第５の態様に基づくライトアクセス時の信号の流れを示す図である。
【国際調査報告】
2004107180.tif 000031
2004107180.tif 000032
2004107180.tif 000033
2004107180.tif 000034