JP3959914B2 - 主記憶共有型並列計算機及びそれに用いるノード制御装置 - Google Patents
主記憶共有型並列計算機及びそれに用いるノード制御装置 Download PDFInfo
- Publication number
- JP3959914B2 JP3959914B2 JP36623599A JP36623599A JP3959914B2 JP 3959914 B2 JP3959914 B2 JP 3959914B2 JP 36623599 A JP36623599 A JP 36623599A JP 36623599 A JP36623599 A JP 36623599A JP 3959914 B2 JP3959914 B2 JP 3959914B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- access request
- unit
- cache
- match control
- 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
Links
- 230000008878 coupling Effects 0.000 claims description 33
- 238000010168 coupling process Methods 0.000 claims description 33
- 238000005859 coupling reaction Methods 0.000 claims description 33
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 11
- 230000004044 response Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- INFDPOAKFNIJBF-UHFFFAOYSA-N paraquat Chemical compound C1=C[N+](C)=CC=C1C1=CC=[N+](C)C=C1 INFDPOAKFNIJBF-UHFFFAOYSA-N 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、高性能を実現するため複数のプロセッサを用いて構成するマルチプロセッサシステムに関する。
【0002】
【従来の技術】
主記憶共有型並列計算機を実現する方法として、複数ノードを単一のバスにより結合する技術はよく知られている。単一のバスを用いて複数ノードを結合したシステムは安価で単純に構成できるが、接続したノード間でデータを転送するパスが一つしか存在しないため、ノード台数を拡張してシステム全体の性能を向上させようとしてもデータバスがボトルネックとなり、性能が向上しない。
【0003】
この問題を解決するために、メモリ装置やI/O装置のアクセス要求(アドレス)の転送にはバスを用いて、データの転送にはクロスバスイッチを用いる方法が提案されている。
【0004】
1995年のCOMCON95プロシーディング第102頁から第109頁の「RISCシステム/6000SMPシステム」では、アドレスの転送にはバスを用いて、高スループットが要求されるデータの転送にはクロスバスイッチを採用したシステムが提案されている(第1の公知例)。
【0005】
一般に、アドレスの転送にバスを用いた主記憶共有型並列計算機では、ノードに含まれるキャッシュメモリとメモリ装置とのデータコヒーレンシを維持する方法としてアドレススヌープ方式を用いている。アドレススヌープ方式では、バスに接続するすべてのノード間のデータコヒーレンスを維持するために、アドレスをブロードキャストする。
【0006】
上記のシステムではデータの転送にバスに代えてクロスバスイッチを採用することによりデータスループットを向上することができるが、アドレスの転送には従来と同じ単一のバスを用いているため、データスループットの向上に見合った効率のよいアドレススヌープ方式を実現できない。
【0007】
アドレスの転送に単一のバスを使用した場合のバスネックを解決するために、1998年のMICRO January/February第39頁から第49頁の「STARFIRE : extending the SMP Envelop」において、アドレスの転送には多重バスを用いるシステムが紹介されている(第2の公知例)。
【0008】
上記のシステムでは、4本のアドレスバスを使用することにより、4つのアドレススヌープを並行して行うことができる。物理アドレス空間は4つに分割され、各アドレスバスは異なる物理アドレス空間を同時にスヌープできる。
【0009】
第2の公知例のようにアドレスの転送に多重バスを用いることにより、単一のバスよりも効率のよいアドレススヌープを実現できる。
【0010】
しかしながら、第1および第2の公知例では、アドレス転送にバスを使用するため、キャッシュメモリとメモリ装置のデータコヒーレンスをとる必要のない場合にもアドレスバス使用の権利を確保する必要があり、アドレスバスを効率よく使用することができない。
【0011】
この問題点を解決するために、特開平09-138783において、アドレスバスを廃止し、アドレスをデータ用のクロスバスイッチに転送するシステムにおいて、キャッシュメモリとメモリ装置のデータコヒーレンスをとる必要のない場合に、転送の対象となるノードのみにアドレスを転送することを可能とするシステムが紹介されている(第3の公知例)。
【0012】
【発明が解決しようとする課題】
第2の公知例のようにアドレスの転送に多重バスを用いることにより、単一のバスよりも効率のよいアドレススヌープを実現できるが、多重バスを用いたとしても、ノード台数が多い場合にはクロスバスイッチによるデータ転送スループット向上に見合ったアドレススヌープのスループットを確保できない。
【0013】
第3の公知例では、アドレスバスを廃止し、アドレスとデータを一つのクロスバスイッチを通して転送しているため、アドレススヌープのスループットを確保できない。
【0014】
この問題点を解決するためには、アドレスの転送にもデータと同様クロスバスイッチを採用する必要がある。
【0015】
第2の公知例では、各ノードがキャッシュメモリを含むプロセッサだけでなく、メモリ装置およびI/O装置で構成され、キャッシュメモリとメモリとのデータコヒーレンスをとる必要がある場合、アドレスバスを使用するための権利を確保し、アドレスをブロードキャストする。一方、データコヒーレンスをとる必要のない場合にも、アドレスバスを使用するためのバス権を確保しなければならないため、アドレスバスの使用効率が低下する。
【0016】
この問題点を解決するために、キャッシュメモリとメモリとのデータコヒーレンスをとる必要のない場合には、転送の対象となるノードのみにアドレスを転送する必要がある。
【0017】
また、第2の公知例では、各ノードがキャッシュメモリを含むプロセッサだけでなく、メモリ装置やI/O装置を持つ構成であるが、実際のシステムでは各ノードの構成が異なる場合がある。そのような場合、データコヒーレンス不要なノードに対して、データコヒーレンスをとるためのアドレスを転送する必要はない。アドレスの転送は、データコヒーレンスの必要なノードに対してのみ行われればよく、1対全転送(ブロードキャスト)だけではなく、1対多転送(マルチキャスト)を行うための手段を設ける必要がある。
【0018】
本発明の第1の課題は、アドレスの転送にもバスではなくクロスバスイッチを採用し、各ノード間のアドレススヌープをクロスバスイッチを介して行うことで、クロスバスイッチ接続のデータ転送スループットに見合うスケーラブルなアドレススヌープのスループットを確保することにある。
【0019】
本発明の第2の課題は、各ノードがキャッシュメモリを含むプロセッサ、メモリ装置とI/O装置を持ち、アドレスおよびデータの転送にそれぞれ別系のクロスバスイッチを使用したシステムにおいて、キャッシュメモリとメモリとのデータコヒーレンスをとる必要がある場合には、クロスバスイッチに接続する全ノードに対してアドレスをブロードキャストし、必要のない場合には転送の対象となるノードのみにアドレスを1対1転送することで、アドレスクロスバに対する不必要なアドレス転送を削減することにある。
【0020】
本発明の第3の課題は、第2の課題に加え、キャッシュメモリとメモリとのデータコヒーレンシをとる必要がなく、かつ転送の対象が同じノード内のメモリあるいはI/O装置である場合には、アドレスをクロスバスイッチに送出せずに、クロスバ内のアドレス転送を削減することにある。
【0021】
本発明の第4の課題は、異なるノード構成を持つ主記憶共有型並列計算機において、データコヒーレンスの必要のないノードにはアドレスを転送しない効率のよいアドレススヌープ方式を提供することにある。
【0022】
【発明を解決するための手段】
本発明の第1の課題は、アドレスの転送にもバスではなくクロスバスイッチを採用し、各ノードのアドレスパス、データパスそれぞれを別々のクロスバスイッチで結合することにより解決できる。
【0023】
本発明の第2の課題は、ノード間をアドレス用およびデータ用のクロスバスイッチにより結合し、各ノードにはデータコヒーレンスの要否を示す情報と転送の対象であるノードに関する情報をアクセス要求に付加する手段を設け、さらにノード間相互結合ネットワーク内には、ノードから転送された上記の情報に従って、データコヒーレンスをとる必要がある場合にはノード間相互結合ネットワークに接続する全ノードに対してアドレスをブロードキャストし、必要のない場合には転送の対象となるノードのみにアドレスを1対1転送する手段を設けることで解決できる。
【0024】
本発明の第3の課題は、第2の課題を解決する手段に加えて、ノード内に、アクセス要求先が自ノード内のメモリあるいはI/O装置である場合には、アドレスをノード間相互結合ネットワークに送出しない手段を設けることで解決できる。
【0025】
本発明の第4の課題は、ノード間相互結合ネットワーク内部に、接続している各ノードがデータコヒーレンスの必要のないノードかどうかを示す情報を保持する手段と、この情報を元にアクセス先ノードを決定する手段を設けることで解決できる。
【0026】
各ノードのアドレパス、データパスそれぞれをクロスバスイッチで結合することにより、アクセス先が異なっている限り、複数のアドレス転送、データ転送を並行して実行することができるため、クロスバスイッチ接続のデータ転送スループットに見合うスケーラブルなアドレススヌープのスループットを確保できる。
【0027】
また、アクセス要求にキャッシュメモリとメモリとのデータコヒーレンス要否を示す情報および転送の対象ノードを示す情報を付加し、その情報に従ってノード間相互結合ネットワークを制御することにより、データコヒーレンスをとる必要のない場合には転送の対象となるノードのみにアドレスを1対1転送することができ、アドレスクロスバに対する不必要なアドレス転送を削減できる。
【0028】
さらに、アクセス要求に付加された情報に従って、ノード内の転送制御をも行うことにより、アクセス要求先が同じノード内のメモリあるいはI/O装置である場合にはノード間相互結合ネットワークにはアドレスを送出する必要がなくなり、ノード間相互結合ネットワーク内のアドレス転送を削減できる。
【0029】
ノード間相互結合ネットワーク内部に保持された、各ノード毎のデータコヒーレンス要否の情報により、データコヒーレンスの必要のないノードにはアドレスを転送しなくてもよいため、不必要なアドレス転送を排除し、アドレス系ノード間相互結合ネットワークの実効スループットを向上できる。
【0030】
【発明の実施の形態】
以下、本発明に係る主記憶共有型並列計算機を図面に示した実施の形態を参照してさらに詳細に説明する。
【0031】
図1に、本発明における主記憶共有型並列計算機の概略構成を示す。図中、100〜103はノード、200はノード間相互結合ネットワークである。ノード100〜103は、ノード間相互結合ネットワーク200に接続し、ノード間相互結合ネットワーク200を介して、ノード間でデータの授受を行う。本実施例で想定しているノード間相互結合ネットワークはバスではなくクロスバスイッチであるが、それに限定されるものではない。また、ノード間相互結合ネットワークにおいて、アクセス要求のアドレス部を転送するアドレスパスおよびアクセス要求のデータ部を転送するデータパスはクロスバスイッチで構成されているものとする。アドレスパスおよびデータパスは、それぞれ物理的に別系のクロスバスイッチで結合してもよいし、同じクロスバスイッチで共用してもよい。
【0032】
ノード100は、プロセッサ110〜113、プロセッサバス120、I/O装置130、メモリ装置140、ノード制御装置150で構成する。ノード101〜103はノード100と同じ構成であるため、ここでは説明を省略する。また、本実施例ではノードが4プロセッサを含む例を示しているが、プロセッサ数は4に限定されない。ノード数についても4つに限定されない。
【0033】
プロセッサ110〜113は、それぞれ内部にキャッシュメモリを含む。キャッシュメモリは、自ノードおよび他ノードのメモリに格納されているデータをキャッシングする。ノード間制御装置150は、プロセッサ110〜113からのアクセス要求をI/O装置130あるいはメモリ装置140あるいはノード間相互結合ネットワーク200に転送する。プロセッサバス120は、複数のプロセッサを接続する。
【0034】
ノード制御装置150は、プロセッサ110〜113のインタフェース部であるプロセッサユニット300、I/O装置170とのインタフェース部であるI/Oユニット400、メモリ装置190とのインタフェース部であるメモリユニット500、ノード間相互結合ネットワーク400とのインタフェース部であるネットワークユニット600と、各ユニットを結合するノード内相互結合回路900で構成する。
【0035】
プロセッサユニット300は、ユニット間アドレスデコード回路310、ユニット内アドレスデコード回路320、キャッシュ一致制御回路330で構成する。ユニット間アドレスデコード回路310は、プロセッサ110〜113の発行するメモリアクセス要求あるいはI/Oアクセス要求内部のトランザクション情報およびアドレス情報をデコードし、アクセス要求の対象となるノード番号、ユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグをアクセス要求に付加して、ノード内相互結合回路900に転送する。ユニット内アドレスデコード回路320は、ノード内相互結合回路900を経由して転送されるアクセス要求のアドレス情報をデコードして、アクセス要求発行元プロセッサに送出する。キャッシュ一致制御回路330は、ネットワークユニット600から転送されたアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合にプロセッサ110〜113のキャッシュ一致制御を行う。
【0036】
I/Oユニット400は、ユニット間アドレスデコード回路410とユニット内アドレスデコード回路420で構成する。ユニット間アドレスデコード回路410は、I/O装置の発行するメモリアクセス要求またはI/Oアクセス要求内のトランザクション情報およびアドレス情報をデコードし、アクセス要求の対象となるノード番号、ユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグをアクセス要求に付加して、ノード内相互結合回路900に転送する。ユニット内アドレスデコード回路420は、ノード内相互結合回路900を経由して転送されるアクセス要求のアドレス情報をデコードして、該当するアクセス要求発行元I/O装置に送出する。
【0037】
メモリユニット500は、ノード内相互結合回路900から転送されるアクセス要求をメモリ装置140に転送し、アクセス要求内のアドレス情報をデコードし、メモリ装置140から必要なデータを読み出しノード内相互結合回路900に転送する。また、ノード内相互結合回路900からの転送されたアクセス要求のアドレスに従ってメモリ装置140にデータを書き込む。
【0038】
ネットワークユニット600は、ノード内相互結合回路900からアクセス要求が伝達された場合、その要求をノード間相互結合ネットワーク200に転送する。 また、ノード間相互結合ネットワーク200からアクセス要求が伝達されると、その要求をノード内相互結合回路900に転送する。
【0039】
ノード内相互結合回路900は、経路指示回路1000で構成し、経路指示回路1000は付加情報保持部1001〜1003とセレクタ制御部1031〜1034を有する。経路指示回路1000内の付加情報保持部1001〜1003は、プロセッサユニット300から転送されたアクセス要求に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号を保持する。セレクタ制御部は、付加情報保持部1001〜1003に保持した付加情報からアクセス要求の転送先ユニットを選択する。
【0040】
キャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、ネットワークユニット600に対して、アクセス要求を送出する。キャッシュ一致制御不要を示す場合には、ユニット番号が示すユニットにアクセス要求を送出する。また、I/Oユニット400から転送されたアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、ネットワークユニット600に対してアクセス要求を送出する。キャッシュ一致制御不要であれば、ユニット番号が示すユニットにアクセス要求を送出する。さらに、ネットワークユニットから転送されたアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、そのアクセス要求をプロセッサユニット300に転送する。また、キャッシュ一致制御不要であれば、そのアクセス要求はノード内相互結合回路900から転送されない。さらに、アクセス要求に付加されたノード番号が自ノードへの要求であれば、ノード内相互結合回路900を介してユニット番号に対応するユニットにも転送する。
【0041】
ノード間相互結合ネットワーク200は、経路指示回路1300で構成する。経路指示回路1300は、各ノードから転送されたアクセス要求に付加されたキャッシュ一致制御フラグおよびノード番号に従って、いずれかのノードにアクセ要求を転送する。経路指示回路1300は、付加情報保持部1301〜1304、ノード番号選択回路1311〜1314、ブロードキャスト回路1320を有する。経路指示回路1300内の付加情報保持部1301〜1304は、各ノードから転送されたアクセス要求に付加されたキャッシュ一致制御フラグ、ノード番号を保持する。ノード番号選択回路1311〜1314およびブロードキャスト回路1320は、付加情報保持部1301〜1304に保持したキャッシュ一致制御フラグおよびノード番号を使用して、アクセス要求を全ノードあるいは特定ノードに転送する。
【0042】
各ノードからのアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、そのアクセス要求を全ノードに対してブロードキャストする。キャッシュ一致制御不要を示す場合には、アクセス要求に付加されたノード番号に対応するノードに対してアクセス要求を転送する。
【0043】
本実施の形態では、各プロセッサあるいはI/O装置がアクセス要求を発行した場合に、ユニット間アドレスデコード回路310あるいは410においてアクセス要求のトランザクション情報およびアドレス情報をデコードし、キャッシュ一致制御フラグおよび転送の対象であるノード番号およびユニット番号を付加することに特徴がある。
【0044】
また、アクセス要求の付加情報(キャッシュ一致制御フラグおよびノード番号、ユニット番号)を付加情報保持部1001および1201に保持し、付加情報保持部1001および1201に保持した情報に従ってノード内相互結合回路900およびノード間相互結合回路1200を制御することに特徴がある。
【0045】
より具体的には、プロセッサ110〜113あるいはI/Oユニット130からのアクセス要求の付加情報であるキャッシュ一致制御フラグの内容がキャッシュ一致制御要を示す場合には、アクセス要求をノード内相互結合回路900、ネットワークユニット600を介してノード間相互結合ネットワーク200に送出し、ノード間相互結合ネットワーク200から全ノードに対してブロードキャストする。また、プロセッサ110〜113あるいはI/Oユニット130からのアクセス要求に付加されたキャッシュ一致制御フラグの内容がキャッシュ一致制御不要を示し、かつ付加情報内ノード番号が自ノードを示す場合、アクセス要求をノード内相互結合回路900を介して、付加情報内ユニット番号が示すユニットに送出し、ネットワークユニット600には送出しない。また、プロセッサ110〜113あるいはI/Oユニット130からのアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御不要を示し、かつ付加情報内のノード番号が他ノードを示す場合、アクセス要求をノード内相互結合回路900、ネットワークユニット600を介してノード間相互結合ネットワーク200に送出する。ノード間相互結合ネットワーク200はネットワークユニットから転送されたアクセス要求に付加されたノード番号に対応するノードのみに、アクセス要求を送出する。
【0046】
ノード間相互結合ネットワーク200からネットワークユニット600を経由してノード内相互結合回路900に転送されたアクセス要求は、付加情報内キャッシュ一致制御フラグの内容がキャッシュ一致制御要を示す場合に、プロセッサユニット300に送出し、キャッシュ一致制御回路340においてキャッシュ一致制御を行う。キャッシュ一致制御フラグがキャッシュ一致制御要を示す場合で、かつ付加情報内ノード番号が自ノードを示す場合には、プロセッサユニット300にキャッシュ一致制御要求を転送すると共に、付加情報内ユニット番号が示すユニットに対してアクセス要求を送出する。キャッシュ一致制御フラグの内容がキャッシュ一致制御不要を示し、かつ付加情報内ノード番号が自ノードを示す場合には、ノード内相互結合回路900を介して、付加情報内ユニット番号が示すユニットにアクセス要求を送出する。
【0047】
図2に、本実施の形態におけるアドレス空間割り当ての例を示す。本実施の形態では、00番地以上A0番地未満の領域がノード100のメモリ装置140に、A0番地以上B0番地未満の領域がノード101のメモリ装置に、B0番地以上C0番地未満の領域がノード102のメモリ装置に、C0番地以上D0番地未満の領域がノード103のメモリ装置に割り当てられている。ノード100のメモリ空間は、さらにプロセッサ110〜113のメモリ空間に分割され、00番地以上01番地未満の領域がプロセッサ110のメモリ空間、01番地以上02番地未満の領域がプロセッサ111のメモリ空間、02番地以上03番地未満の領域がプロセッサ112のメモリ空間、03番地以上04番地未満の領域がプロセッサ113のメモリ空間として割り当てられている。ノード101〜103のメモリ空間についても同様に割り当てられている。D0番地以上はI/O空間として割り当てらている。I/O空間のアドレスもノード対応、プロセッサ対応に割り当てられており、D0番地以上E0番地未満の領域はノード100のI/O空間として、E0番地以上F0番地未満の領域はノード101のI/O空間として、F0番地以上G0番地未満の領域はノード102のI/O空間として、G0番地以上MAX番地未満の領域はノード103のI/O空間として割り当てられている。ノード100のI/O空間は、さらにノード100内のプロセッサ110〜113のI/O空間に割り当てられる。ノード101〜103内プロセッサのI/O空間についても同様に割り当てられる。
【0048】
図3に、本実施の形態におけるアクセス要求の例を示す。3−1にアクセス要求のフォーマットを示す。リード要求の場合、(a)に示すように、アクセス要求はその種類を示すトランザクション(Tx)情報とアクセス先アドレスにより構成する。リード応答およびライト要求の場合、(b)に示すように、Tx情報、アクセス先アドレスおよびデータにより構成する。3−2に、アクセス要求種とそのTx情報を示す。アクセス要求は、キャッシュ一致制御要リード要求、キャッシュ一致制御要ライト要求、キャッシュ一致制御不要リード要求、キャッシュ一致制御不要ライト要求、リード応答の5種類であり、各アクセス要求対応にType1〜5のTx情報が設定されている。
【0049】
上記アドレス空間の割りつけ方およびアクセス要求の種類は、本発明に特有のものではなく、一般的に用いられている方法である。
【0050】
次に、図4に、本発明の特徴であるノード制御装置150内のプロセッサユニット300の内部構成および動作について説明する。
【0051】
プロセッサユニット300は、プロセッサインタフェース340、ノード内相互結合回路インタフェース350、ユニット間アドレスデコード回路310、ユニット内アドレスデコード回路320、キャッシュ一致制御回路330、キャッシュ一致制御フラグ設定テーブル360、ノードユニット番号設定テーブル370で構成される。
【0052】
本発明では、ユニット間アドレスデコード回路310およびキャッシュ一致制御回路330、キャッシュ一致制御フラグ設定テーブル360、ノードユニット番号設定テーブル370が新規である。
【0053】
プロセッサインタフェース340は、プロセッサ110〜113からのアクセス要求をプロセッサバス120を介して受け取り、アクセス要求の返答(メモリやI/O装置の読み出し結果)や、他ノードからのキャッシュ一致制御要求をプロセッサバス120を介してプロセッサ110〜113に伝達する。
【0054】
ノード内相互結合回路インタフェース350は、ノード内の他ユニットからのアクセス要求やノード間相互結合ネットワーク200からのアクセス要求をノード内相互結合回路900を介して受け取り、プロセッサユニット300から伝達されるアクセス要求をノード内相互結合回路900に伝達する。
【0055】
ユニット間アドレスデコード回路310は、アクセス要求保持部311とアクセス要求解析部312、付加情報生成部313、アクセス要求再構成部314、アクセス要求送出部315で構成する。アクセス要求保持部311は、プロセッサインタフェース340を介して、プロセッサバス120から転送されるアクセス要求のTx情報とアドレスを保持する。アクセス要求解析部312は、アクセス要求保持部311に保持したTx情報とアドレスをデコードする。付加情報生成部313は、アクセス要求解析部312でデコードした結果と、キャッシュ一致制御フラグ設定テーブル360およびノードユニット番号設定テーブル370の内容を比較し、付加情報であるキャッシュ一致制御フラグ、ノード番号、ユニット番号を生成する。アクセス要求再構成部314は、付加情報生成部313にて生成した付加情報をアクセス要求に付加し、アクセス要求を再構成する。アクセス要求送出部315は、アクセス要求をノード内相互結合回路インタフェース350に送出する。
【0056】
本発明では、ユニット間アドレスデコード回路310のうち、付加情報生成部313とアクセス要求再構成部314が新規である。
【0057】
キャッシュ一致制御フラグ設定テーブル360は、各アクセス要求のTx情報対応に、キャッシュ一致制御が必要かどうかを示すキャッシュ一致制御フラグを設定するテーブルである。図5にTx情報とキャッシュ一致制御フラグの内容を示す。図5に示すように、キャッシュ一致制御が必要なアクセス要求の場合、キャッシュ一致制御フラグには1が、キャッシュ一致制御が不要なアクセス要求の場合、キャッシュ一致制御フラグには0がセットされる。
【0058】
ノードユニット番号設定テーブル370は、各アクセス要求のアドレス対応に、ノード番号およびユニット番号を設定するテーブルである。図6にアドレスの範囲とそれに対応するノード番号およびユニット番号を示す。さらに、ノード番号およびユニット番号が示すノードおよびユニットを示す。本発明のアドレス空間は図2に示すように設定されている。アクセス要求のアドレスが00番地以上A0番地未満である場合、ノード番号、ユニット番号は0および1となり、それぞれ図1に示すノード100、メモリユニット500を示す。
【0059】
キャッシュ一致制御フラグ設定テーブル360およびノードユニット番号設定テーブル370は、それぞれシステムの立ち上げ時に設定する。
【0060】
本発明では、キャッシュ一致制御フラグ設定テーブル360とノードユニット番号設定テーブルが新規である。
【0061】
図7にユニット間アドレスデコード回路310の内部構成を示す。
【0062】
アクセス要求保持部311は、アクセス要求からTx情報、アドレス、データを保持するレジスタ701、702、703を有する。
【0063】
アクセス要求解析部312は、レジスタ701および702に保持したTx情報およびアドレスをデコードするアドレスデコード回路710を有する。
【0064】
付加情報生成部313は、アドレスデコード回路710においてデコードしたTx情報とキャッシュ一致制御フラグ設定テーブル360を用いてキャッシュ一致制御フラグを生成するフラグ生成回路720と、アドレスデコード回路710においてデコードしたアドレスとノードユニット番号設定テーブル370を用いてノード番号およびユニット番号を生成するノードユニット番号生成回路721と、生成したキャッシュ一致制御フラグ、ノード番号、ユニット番号をそれぞれ保持するレジスタ722、723、724を有する。
【0065】
アクセス要求再構成部314は、付加情報生成部313のレジスタ722、723、724およびアクセス要求保持部のレジスタ701、702、703の内容を用いてアクセス要求を再構成し、アクセス要求送出部315に伝達する。
【0066】
本発明では、キャッシュ一致制御フラグ設定テーブル360とTx情報を用いてキャッシュ一致制御フラグを生成するフラグ生成回路720と、ノードユニット番号設定テーブル370とアドレスを用いてノード番号およびユニット番号を生成するノードユニット番号生成回路721が新規である。また、キャッシュ一致制御フラグ、ノード番号、ユニット番号を保持するレジスタ722、723、724も新規である。
【0067】
ユニット内アドレスデコード回路310は、アクセス要求保持部321、アドレス解析部322、アクセス要求送出部323で構成される(図4参照)。アクセス要求保持部321は、ノード内相互結合回路インタフェース350を介して伝達されるアクセス要求の付加情報とアドレスを保持する。アドレス解析部322は、アクセス要求保持部321に保持したアドレスをデコードし、デコード内容から該当するプロセッサに対してアクセス要求を送出する。アクセス要求送出部315はアクセス要求再構成部314から転送されたアクセス要求をノード内相互結合回路900に転送する。
【0068】
キャッシュ一致制御回路330は、付加情報解析部331とキャッシュ一致制御要求発行部322で構成される。付加情報解析部331は、アクセス要求保持部321に保持した付加情報のうちのキャッシュ一致制御フラグの内容をチェックし、キャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、キャッシュ一致制御要求発行部332からキャッシュ一致制御要求をプロセッサに対して伝達する。
【0069】
次に、本発明の特徴であるノード制御装置150内のI/Oユニット400の構成について図8を用いて説明する。
【0070】
I/Oユニット400は、I/Oインタフェース840、ノード内相互結合回路インタフェース850、ユニット間アドレスデコード回路810、ユニット内アドレスデコード回路820、キャッシュ一致制御フラグ設定テーブル360、ノードユニット番号設定テーブル370で構成する。
【0071】
I/Oユニット400では、図4に示すプロセッサインタフェース340がI/Oインタフェース850に置き換わり、キャッシュ一致制御回路330を持たない構成である。その他の構成は同じであるため、説明は省略する。
【0072】
本発明では、I/Oユニット400内のユニット間アドレスデコード回路810、キャッシュ一致制御フラグ設定テーブル860、ノードユニット番号設定テーブル870が新規である。
【0073】
I/Oインタフェース840は、I/Oユニットからのアクセス要求を受け取り、アクセス結果をI/O装置に伝達する。
【0074】
ユニット間アドレスデコード回路810およびユニット内アドレスデコード回路820、キャッシュ一致制御フラグ設定テーブル860、ノードユニット番号設定テーブル870の構成および動作はプロセッサユニット300のユニット間アドレスデコード回路310およびユニット内アドレスデコード回路320、キャッシュ一致制御フラグ設定テーブル360、ノードユニット番号設定テーブル370の構成および動作と同じであるため、ここでは説明を省略する。
【0075】
図9に、各ユニット間を接続するノード内相互結合回路900の構成を示す。ノード内相互結合回路900は、入力バッファ901〜904、経路指示回路1000とセレクタ921〜924、出力バッファ931〜934で構成する。入力バッファ901〜904は、各ユニットから転送されたアクセス要求を格納する。経路指示回路1000は、いずれかのユニットから転送されたアクセス要求に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号を付加情報保持部1001〜1003に保持し、セレクタ制御部1031〜1034において保持した情報から転送すべきユニットを選択し,信号線921S、922S、923S、924Sにセレクト信号を出す。セレクタ921〜924は信号線921S、922S、923S、924Sにより制御され、いずれかのユニットから転送されたアクセス要求を選択し、出力バッファ931〜934に出力する。出力バッファ931〜934は、セレクタ921〜924により選択されたアクセス要求を保持し、いずれかのユニットに対して出力する。
【0076】
本発明では、経路指示回路1000をアクセス要求に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号により制御する点が新規である。
【0077】
次に、図10に経路指示回路1000の内部構成を示す。経路指示回路1000は、付加情報保持部1001〜1003、アクセス要求元情報保持部1010、自ノード番号保持部1020、セレクタ制御部1031〜1034、調停回路1091〜1094で構成する。
【0078】
本発明では、経路指示回路1000内のアクセス要求に付加された情報を保持する付加情報保持部1001〜1003、自ノード番号を保持する自ノード番号保持部1020、付加情報の内容に従ってセレクタ制御信号を生成するセレクタ制御部1031〜1034が新規である。
【0079】
付加情報保持部1001〜1003は、アクセス要求に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号を保持するレジスタ1040〜1048を有する。また、アクセス要求元情報保持部1010は、メモリユニット500に対してアクセス要求を出したノードおよびユニット番号を保持するレジスタ1050、1051を有する。自ノード番号保持部1020は、自ノード番号を保持するレジスタ1060を有する。自ノード番号保持部1020内レジスタの値は、システム起動時に設定する。
【0080】
セレクタ制御部1031〜1034は、ノード番号一致判定回路1071〜1074、セレクタ制御信号出力部1081〜1084で構成する。
【0081】
ノード番号一致判定回路1071〜1074は、付加情報保持部1001〜1003内のレジスタ1041、1044、1047、アクセス要求転送元情報保持部1010内レジスタ1050に保持した内容と、自ノード番号保持部1020内レジスタ1060に保持した内容を比較し、比較結果をセレクタ制御部1081〜1084に出力する。アクセス要求に付加されたノード番号と自ノード番号が一致した場合にはセレクタ制御信号出力部1081〜1084に信号を出力する。
【0082】
セレクタ制御信号出力部1081〜1084は、ノード番号一致判定回路1071〜1074の出力結果と、付加情報保持部1001〜1003内レジスタ1040、1043、1046に保持したキャッシュ一致制御フラグの値と、レジスタ1042、1045、1048に保持したユニット番号と、アクセス要求転送元情報保持部1010内レジスタ1051の内容から信号線921S〜924Sにセレクト信号を伝達する。
【0083】
本発明では、アクセス要求に付加したキャッシュ一致制御フラグ、ノード番号、ユニット番号を用いて、いずれのユニットにアクセス要求を転送するかを示すセレクト信号を生成するセレクタ制御信号出力部1081〜1084が新規である。
【0084】
調停回路1091〜1094は、セレクタ制御部1031から伝達された複数のセレクタ信号間の調停を行う。
【0085】
図11に、セレクタ制御信号出力部1081〜1084におけるアクセス要求転送元ユニットに対するセレクト信号出力先ユニットを示す。
【0086】
図11に示すように、アクセス要求転送元ユニットがプロセッサユニット300で、キャッシュ一致制御フラグが0、かつノード番号一致判定回路1071の出力結果が0の場合は、キャッシュ一致制御不要な他ノードへのアクセス要求であるからネットワークユニットにアクセス要求を転送する。
【0087】
アクセス要求転送元ユニットがプロセッサユニット300で、キャッシュ一致制御フラグが0、かつノード番号一致判定回路1071の出力結果が1の場合は、キャッシュ一致制御が不要な自ノードへのアクセス要求であるからユニット番号が示すユニットにアクセス要求を転送する。
【0088】
アクセス要求転送元ユニットがプロセッサユニット300で、キャッシュ一致制御フラグが1、かつノード番号一致判定回路1071の出力結果が0の場合は、キャッシュ一致制御が必要な他ノードへのアクセス要求であるからネットワークユニットにアクセス要求を転送する。
【0089】
アクセス要求転送元ユニットがプロセッサユニット300で、キャッシュ一致制御フラグが1、かつノード番号一致判定回路1071の出力結果が1の場合は、キャッシュ一致制御が必要な自ノードへのアクセス要求であるからネットワークユニットおよびユニット番号が示すユニットの両方にアクセス要求を転送する。
【0090】
アクセス要求転送元ユニットがI/Oユニット400である場合は、アクセス要求転送元ユニットがプロセッサユニットである場合と同様である。
【0091】
アクセス要求転送元ユニットがネットワークユニット600で、キャッシュ一致制御フラグが0、かつノード番号一致判定回路1075の出力結果が0の場合は、キャッシュ一致制御不要な他ノードへのアクセス要求であるからアクセス要求を転送しない。
【0092】
アクセス要求転送元ユニットがネットワークユニット600で、キャッシュ一致制御フラグが0、かつノード番号一致判定回路1075の出力結果が1の場合は、キャッシュ一致制御が不要な自ノードへのアクセス要求であるからユニット番号が示すユニットにアクセス要求を転送する。
【0093】
アクセス要求転送元ユニットがネットワークユニット600で、キャッシュ一致制御フラグが1、かつノード番号一致判定回路1075の出力結果が0の場合は、キャッシュ一致制御が必要な他ノードへのアクセス要求であるからプロセッサユニットにアクセス要求を転送する。
【0094】
アクセス要求転送元ユニットがネットワークユニット600で、キャッシュ一致制御フラグが1、かつノード番号一致判定回路1075の出力結果が1の場合は、キャッシュ一致制御が必要な自ノードへのアクセス要求であるからプロセッサユニットおよびユニット番号が示すユニットの両方にアクセス要求を転送する。
【0095】
アクセス要求転送元ユニットがメモリユニット500であるのは、メモリアクセス要求に対するメモリ装置140からのデータ読み出しの場合である。ノード番号一致判定回路1076の出力結果が1の場合は、メモリから読み出したデータを自ノードのアクセス要求元ユニットに返送する。アクセス要求元ユニットがメモリユニット500で、ノード番号一致判定回路1076の出力結果が0の場合は、メモリから読み出したデータのアクセス要求発行ノードが他ノードであるため、ネットワークユニットにアクセス要求を転送する。
【0096】
次に、ノード間相互結合ネットワーク200の構成について説明する。ノード間相互結合ネットワーク200の概略構成を図12に示す。図12に示すノード間相互結合ネットワー200は図9に示すノード内相互結合回路100と同様な構成である。但し、ノード間相互結合ネットワーク200における経路指示回路1300と図9における経路指示回路1000の内部構成は異なるため、ここでは経路指示回路1300の内部構成について説明する。
【0097】
本発明では、アクセス要求に付加されたキャッシュ一致制御フラグとノード番号に従って、ノード間相互結合ネットワーク200を制御する点が新規である。
【0098】
図13にノード間相互結合ネットワーク200における経路指示回路1300の内部構成を示す。
【0099】
経路指示回路1300は、付加情報保持部1301〜1304、ノード番号選択回路131〜1314、ブロードキャスト回路1320、OR回路1351〜1354、調停回路1361〜1364で構成する。
【0100】
本発明では、アクセス要求に付加された情報を保持する付加情報保持部1301〜1304、キャッシュ一致制御フラグの内容により制御するノード番号選択回路1311〜1314、ブロードキャスト回路1320が新規である。
【0101】
ノード番号選択回路1311〜1314により、キャッシュ一致制御フラグの値が0である、すなわちキャッシュ一致制御不要なアクセス要求は、転送の対象であるノードに直接転送される。キャッシュ一致制御フラグの値が1である、すなわちキャッシュ一致制御が必要なアクセス要求は、全ノードに対してブロードキャストされる。
【0102】
付加情報保持部1301〜1303は、レジスタ1330〜1337にアクセス要求に付加されたキャッシュ一致制御フラグ、ノード番号を保持する。
【0103】
ノード番号選択回路1311〜1314は、付加情報保持部1301〜1303内のレジスタ1330〜1337に保持したキャッシュ一致制御フラグとノード番号を入力とするAND回路1341〜1344を有する。 AND回路1341〜1344は、キャッシュ一致制御フラグの値が0である場合に、ノード番号に対応する調停回路に調停要求信号を伝達する。
【0104】
ブロードキャスト回路1320は、付加情報保持部1301〜1304内のレジスタ1330、1332、1334、1336に保持したキャッシュ一致制御フラグに1がセットされている場合に、その中から一つを選択し、全調停回路に調停要求信号を伝達する。
【0105】
OR回路1351〜1354は、ノード番号選択回路1311〜1314あるいはブロードキャスト回路1320からの調停要求信号を調停回路1361〜1364のいずれかに伝達する。
【0106】
調停回路1361〜1364は、OR回路1351〜1354からの調停要求信号を受け、アクセス要求の調停を行い、信号線1221S〜1224Sにセレクト信号を出力する。
【0107】
次に、本発明におけるアクセス要求の流れを各図を用いて説明する。以下の3種類のアクセス要求
(1)他ノードに対するキャッシュ一致制御要リード要求(アクセス要求1)
(2)他ノードに対するキャッシュ一致制御不要ライト要求(アクセス要求2)(3)自ノードに対するキャッシュ一致制御不要リード要求(アクセス要求3)を例にとり説明する。他の種類のアクセス要求の流れは、上記のアクセス要求の流れとほぼ同じであるため、ここでは説明を省略する。
【0108】
最初に、図1におけるノード100のプロセッサ110がアドレスC1に対してキャッシュ一致制御要リード要求(アクセス要求1)を発行した場合について説明する。アドレスC1はノード103のアドレス空間であるため、アクセス要求1は、他ノードに対するキャッシュ一致制御要リード要求である。プロセッサ110のキャッシュには、アドレスC1のデータはキャッシングされていないものとする。また、各ノードは、連続した物理番号を持ち、ノード100は0、ノード101は1、ノード102は2、ノード3とする。さらに、ノード内の各ユニットも連続した物理番号を持ち、プロセッサユニット300は0、メモリユニット500は1、I/Oユニット400は2、ネットワークユニット600は3とする。
【0109】
プロセッサ110が発行したアクセス要求1はプロセッサバス120を介してノード制御装置150に転送される。ノード制御装置150は、アクセス要求1は、図4に示すプロセッサインタフェース340を介してユニット間アドレスデコード回路310に転送する。
【0110】
ユニット間アドレスデコード回路310は、図7に示すアクセス要求保持部311において、アクセス要求1のTx情報、アドレスをレジスタ701、702に保持する。アクセス要求1はリード要求であるため、レジスタ703には何も保持しない。
【0111】
アクセス要求解析部312はレジスタ701および702に保持したTx情報およびアドレスをアドレスデコード回路710によりデコードし、デコード結果を付加情報生成部313に転送する。
【0112】
付加情報生成部313は、フラグ生成回路720において、デコードしたTx情報とあらかじめ設定されているキャッシュ一致制御フラグ設定テーブル360から、キャッシュ一致制御フラグを生成し、レジスタ722に保持する。アクセス要求1はキャッシュ一致制御要リード要求であるから、図3よりTx情報はType1となり、さらに図5よりType1のアクセス要求のキャッシュ一致制御フラグは1であるから、レジスタ722に1を保持する。さらに、付加情報生成部313は、ノードユニット番号生成回路721において、デコードしたアドレスとあらかじめ設定されているノードユニット番号設定テーブル370から、アクセス要求転送先のノード番号およびユニット番号を生成し、レジスタ723、724に保持する。アクセス要求1のアドレスはC1であるから、図6より、ノード番号は3、ユニット番号は1となり、レジスタ723、724にそれぞれ3、1を保持する。
【0113】
アクセス要求再構成部314は、レジスタ722、723、724、およびレジスタ701、702に保持した内容を用いてアクセス要求を再構成する。アクセス要求再構成部314において、アクセス要求1には、キャッシュ一致制御フラグ1、ノード番号3、ユニット番号1という情報が付加される。付加情報を有するアクセス要求はノード内相互結合回路900に転送される。
【0114】
図9に示すように、ノード内相互結合回路900は、プロセッサユニットから転送されたアクセス要求1を入力バッファ901に保持する。経路指示回路1000は、付加情報保持部1001のレジスタ1040〜1042に、アクセス要求1に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号をそれぞれ保持する。セレクタ制御部1031は、ノード番号一致判定回路1071において、自ノード番号とレジスタ1041に保持したノード番号を比較する。自ノード番号は0、レジスタ1041に保持したノード番号は3であるから比較結果は不一致(0)となる。セレクタ制御信号出力部1081は、レジスタ1040に保持したキャッシュ一致フラグとノード番号一致判定回路1071の比較結果とレジスタ1042に保持したユニット番号により、どのユニットにアクセス要求1を転送すればよいかを決定する。図11の対応表から、アクセス要求転送元ユニットはプロセッサユニット、キャッシュ一致制御フラグは1、ノード番号一致判定回路1071の出力は0であるから、ネットワークユニット600に対してアクセス要求1を転送する。ネットワークユニット600は、アクセス要求1をノード間相互結合ネットワーク200に送出する。
【0115】
図12に示すように、ノード間相互結合ネットワーク200は、経路指示回路1300の指示により、アクセス要求1を該当するノードに対して転送する。図13に示すように、経路指示回路1300は、アクセス要求1に付加されたキャッシュ一致制御フラグおよびノード番号を付加情報保持部1301内のレジスタ1330、1331に保持する。レジスタ1330、1331は、それぞれ、1、3を保持する。レジスタ1330の値は1であるから、ノード番号選択回路1311は動作せず、ブロードキャスト回路1320が動作する。ブロードキャスト回路1320は、全調停回路1361〜1364に対して調停要求信号を送出し、その結果、図12に示す全セレクタはノード100からのアクセス要求1をノード間相互結合ネットワーク200に接続する全ノードに対して出力する。
【0116】
アクセス要求1はノード100、101、102、103に転送される。
【0117】
次にノード101および103に転送されたアクセス要求1の流れについて説明する。最初にノード101に転送されたアクセス要求1の流れについて説明する。図1に示すように、ノ−ド内アクセス要求1はネットワ−クユニット600を介してノ−ド内相互結合回路900に転送される。
【0118】
ノード内相互結合回路900は、入力バッファ903にアクセス要求1を保持する。経路指示回路1000は、付加情報保持部1003内レジスタ1046〜1048にそれぞれキャッシュ一致制御フラグ、ノード番号、ユニット番号を保持する。このとき、レジスタ1046、1047、1048にはそれぞれ、1、3、1を保持する。セレクタ制御部1033は、ノード番号一致判定回路1073において、自ノード番号とレジスタ1047に保持したノード番号を比較する。自ノード番号は1、レジスタ1041に保持したノード番号は3であるから比較結果は不一致(0)となる。セレクタ制御信号出力部1083は、レジスタ1046に保持したキャッシュ一致フラグとノード番号一致判定回路1073の比較結果とレジスタ1048に保持したユニット番号により、どのユニットにアクセス要求1を転送すればよいかを決定する。図11に示す対応表から、アクセス要求転送元ユニットはネットワークユニット、キャッシュ一致制御フラグは1、ノード番号一致判定回路の出力は0であるから、プロセッサユニットに対してアクセス要求1を転送する。
【0119】
図4に示すプロセッサユニット300は、ユニット内アドレスデコード回路320およびキャッシュ一致制御回路330にアクセス要求1を転送する。キャッシュ一致制御回路330は、アクセス要求1に付加されたキャッシュ一致制御フラグが1であるから、キャッシュ一致制御要求をプロセッサに対して発行し、キャッシュ一致制御を行う。キャッシュ一致制御方法は、従来技術と何ら変わりないため、ここでは説明を省略する。
【0120】
次にノード103に転送されたアクセス要求1の流れについて説明する。図1に示すように、アクセス要求1はネットワークユニット600を介してノード内相互結合回路900に転送される。ノード内相互結合回路900は、入力バッファ903にアクセス要求1を保持する。経路指示回路1000は、付加情報保持部1003内レジスタ1046〜1048にそれぞれキャッシュ一致制御フラグ、ノード番号、ユニット番号を保持する。キャッシュ一致制御フラグ、ノード番号、ユニット番号はそれぞれ、1、3、1であるから、レジスタ1046、1047、1048にはそれぞれ1、3、1を保持する。セレクタ制御部1033は、ノード番号一致判定回路1073において、自ノード番号とレジスタ1047に保持したノード番号を比較する。自ノード番号は3、レジスタ1041に保持したノード番号は3であるから比較結果は一致(1)となる。これは自ノードへのアクセス要求を示す。セレクタ制御信号出力部1083は、レジスタ1046に保持したキャッシュ一致フラグとノード番号一致判定回路1073の比較結果とレジスタ1048に保持したユニット番号により、どのユニットにアクセス要求1を転送すればよいかを決定する。図11に示す対応表から、アクセス要求転送元ユニットはネットワークユニット、キャッシュ一致制御フラグは1、ノード番号一致判定回路の出力は1であるから、プロセッサユニットおよびユニット番号の示すユニット(メモリユニット)に対してアクセス要求1を転送する。
【0121】
図4に示すプロセッサユニット300は、ユニット内アドレスデコード回路320およびキャッシュ一致制御回路330にアクセス要求1を転送する。キャッシュ一致制御回路330は、アクセス要求1に付加されたキャッシュ一致制御フラグが1であるから、キャッシュ一致制御要求をプロセッサに対して発行し、キャッシュ一致制御を行う。
【0122】
メモリユニット500は、アクセス要求1のアドレスに従って、メモリ装置140からデータを読み出す。読み出したデータはアクセス要求1の返答としてノード100に返送される。
【0123】
次に、図1におけるノード100のプロセッサ110がアドレスC1に対してキャッシュ一致制御不要ライト要求(アクセス要求2)を発行した場合について説明する。アドレスC1は、ノード103のアドレス空間であるから、アクセス要求2も、他ノードへのアクセスとなる。プロセッサ110のキャッシュには、アドレスC1のデータはキャッシングされていないものとする。また、各ノードは、連続した物理番号を持ち、ノード100は0、ノード101は1、ノード102は2、ノード3とする。また、各ノード内のユニットも連続した物理番号を持ち、プロセッサユニットは0、メモリユニットは1、I/Oユニットは2、ネットワークユニットは3とする。
【0124】
プロセッサ110が発行したアクセス要求2はプロセッサバス120を介してノード制御装置150に転送される。ノード制御装置150は、アクセス要求2は、図4に示すプロセッサインタフェース340を介してユニット間アドレスデコード回路310に転送する。
【0125】
ユニット間アドレスデコード回路310は、図7に示すアクセス要求保持部311において、アクセス要求2のTx情報、アドレス、データをレジスタ701、702、703に保持する。
【0126】
アクセス要求解析部312はレジスタ701、702に保持したTx情報およびアドレスをアドレスデコード回路710によりデコードし、デコード結果を付加情報生成部313に転送する。
【0127】
付加情報生成部313は、フラグ生成回路720において、デコードしたTx情報とあらかじめ設定されているキャッシュ一致制御フラグ設定テーブル360から、キャッシュ一致制御フラグを生成し、レジスタ722に保持する。アクセス要求2のTx情報はType4であるため(図3参照)、キャッシュ一致制御フラグに0を設定し(図5参照)レジスタ722に0を保持する。さらに、付加情報生成部313は、ノードユニット番号生成回路721においてデコードしたアドレスと、あらかじめ設定されているノードユニット番号設定テーブル370から、アクセス要求転送先のノード番号およびユニット番号を生成し、レジスタ723、724に保持する。アクセス要求2のアドレスはC1であるから、図6に示すノードユニット番号設定テーブルから、ノード番号は3、ユニット番号は1となり、レジスタ723、724にはそれぞれ3、1を保持する。
【0128】
アクセス要求再構成部314は、レジスタ722、723、724、およびレジスタ701、702、703に保持した内容を用いてアクセス要求2を再構成する。アクセス要求再構成部314において、アクセス要求2には、キャッシュ一致制御フラグ1、ノード番号3、ユニット番号2という情報が付加される。付加情報を有するアクセス要求2はノード内相互結合回路900に転送される。
【0129】
図9に示すように、ノード内相互結合回路900は、プロセッサユニット300から転送されたアクセス要求2を入力バッファ901に保持する。図10に示す経路指示回路1000は、付加情報保持部1001のレジスタ1040〜1042に、アクセス要求2に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号をそれぞれ保持する。レジスタ1040、1041、1042はそれぞれ0、3、1を保持する。セレクタ制御部1031は、ノード番号一致判定回路1071において、自ノード番号とレジスタ1041に保持したノード番号を比較する。自ノード番号は0、レジスタ1041に保持したノード番号は3であるから比較結果は不一致(0)となる。セレクタ制御信号出力部1081は、レジスタ1040に保持したキャッシュ一致フラグと、ノード番号一致判定回路1071の比較結果とレジスタ1042に保持したユニット番号により、どのユニットにアクセス要求2を転送すればよいかを決定する。図11の対応表から、アクセス要求転送元ユニットはプロセッサユニット、キャッシュ一致制御フラグは0、ノード番号一致判定回路1071の出力は0であるから、ネットワークユニット600に対してアクセス要求2を転送する。ネットワークユニット600は、アクセス要求2をノード間相互結合ネットワーク200に送出する。
【0130】
図12に示すノード間相互結合ネットワーク200は、経路指示回路1300の指示により、アクセス要求2を該当するノードに対して転送する。図13に示すように、経路指示回路1300は、アクセス要求2に付加されたキャッシュ一致制御フラグおよびノード番号を付加情報保持部1301内のレジスタ1330、1331に保持する。ここで、レジスタ1330、1331に保持した値は、それぞれ、0、3である。レジスタ1330の値は0であるから、ノード番号選択回路1211が動作する。ノード番号選択回路1311は、調停回路1364に対して調停要求信号を送出し、その結果、図12に示すセレクタ1224はノード100からのアクセス要求2をノード103に対して出力する。
【0131】
次にノード103に転送されたアクセス要求2の流れについて説明する。
【0132】
図1に示すように、アクセス要求2はネットワークユニット600を介してノード内相互結合回路900に転送される。ノード内相互結合回路900は、入力バッファ903にアクセス要求2を保持する。図10に示す経路指示回路1000は、付加情報保持部1003内レジスタ1046〜1048にそれぞれキャッシュ一致制御フラグ、ノード番号、ユニット番号を保持する。キャッシュ一致制御フラグ、ノード番号、ユニット番号はそれぞれ、0、3、1であるから、レジスタ1046、1047、1048はそれぞれ0、3、1を保持する。セレクタ制御部1033は、ノード番号一致判定回路1073において、自ノード番号とレジスタ1047に保持したノード番号を比較する。自ノード番号は3、レジスタ1041に保持したノード番号は3であるから比較結果は一致(1)となる。セレクタ制御信号出力部1083は、レジスタ1046に保持したキャッシュ一致フラグとノード番号一致判定回路1073の比較結果とレジスタ1048に保持したユニット番号によりどのユニットにアクセス要求2を転送すればよいかを決定する。図11に示す対応表から、アクセス要求転送元ユニットはネットワークユニット、キャッシュ一致制御フラグは0、ノード番号一致判定回路の出力は1であるから、ユニット番号のユニットのみにアクセス要求2を転送する。ユニット番号は1であるからメモリユニット500に対してアクセス要求2を転送する。メモリユニット500は、アクセス要求2内のアドレスに従って、メモリ装置140にデータを書き込み、処理を終了する。
【0133】
次に、図1におけるノード100のプロセッサ110がアドレス02に対してキャッシュ一致制御不要リード要求(以下、アクセス要求3)を発行した場合について説明する。アドレス02は、ノード100のアドレス空間であるから、アクセス要求3は、自ノードへのアクセスとなる。プロセッサ110のキャッシュには、アドレス02のデータはキャッシングされていないものとする。
【0134】
プロセッサ110が発行したアクセス要求3はプロセッサバス120を介してノード制御装置150に転送される。ノード制御装置150は、アクセス要求3は、図4に示すプロセッサインタフェース340を介してユニット間アドレスデコード回路310に転送する。
【0135】
ユニット間アドレスデコード回路310は、図7に示すアクセス要求保持部311において、アクセス要求3のTx情報、アドレスをレジスタ701、702に保持する。
【0136】
アクセス要求解析部312はレジスタ701、702に保持したTx情報およびアドレスをアドレスデコード回路710によりデコードし、デコード結果を付加情報生成部313に転送する。
【0137】
付加情報生成部313は、フラグ生成回路720において、デコードしたTx情報とあらかじめ設定されているキャッシュ一致制御フラグ設定テーブル360から、キャッシュ一致制御フラグを生成し、レジスタ722に保持する。アクセス要求3のTx情報はType3であるため(図3参照)、キャッシュ一致制御フラグに0を設定し(図5参照)レジスタ722に0を保持する。さらに、付加情報生成部313は、ノードユニット番号生成回路721においてデコードしたアドレスと、あらかじめ設定されているノードユニット番号設定テーブル370から、アクセス要求転送先のノード番号およびユニット番号を生成し、レジスタ723、724に保持する。アクセス要求3のアドレスは02であるから、図6に示すノードユニット番号設定テーブルから、ノード番号は0、ユニット番号は1となり、レジスタ723、724にはそれぞれ0、1を保持する。
【0138】
アクセス要求再構成部314は、レジスタ722、723、724およびレジスタ701、702に保持した内容を用いてアクセス要求3を再構成する。アクセス要求再構成部314において、アクセス要求3には、キャッシュ一致制御フラグ1、ノード番号0、ユニット番号1という情報が付加される。付加情報を有するアクセス要求3はノード内相互結合回路900に転送される。
【0139】
図9に示すように、ノード内相互結合回路900は、プロセッサユニット300から転送されたアクセス要求3を入力バッファ901に保持する。図10に示す経路指示回路1000は、付加情報保持部1001のレジスタ1040〜1042に、アクセス要求3に付加されたキャッシュ一致制御フラグ、ノード番号、ユニット番号をそれぞれ保持する。レジスタ1040、1041、1042はそれぞれ0、0、1を保持する。セレクタ制御部1031は、ノード番号一致判定回路1071において、自ノード番号とレジスタ1041に保持したノード番号を比較する。自ノード番号は0、レジスタ1041に保持したノード番号は0であるから比較結果は一致(1)となる。セレクタ制御信号出力部1081は、レジスタ1040に保持したキャッシュ一致フラグと、ノード番号一致判定回路1071の比較結果とレジスタ1042に保持したユニット番号により、どのユニットにアクセス要求3を転送すればよいかを決定する。図11の対応表から、アクセス要求転送元ユニットはプロセッサユニット、キャッシュ一致制御フラグは0、ノード番号一致判定回路1071の出力は1であるから、ユニット番号1が示すユニット、ここではメモリユニット500に対してアクセス要求3を転送する。メモリユニット500は、転送されたアクセス要求3のアドレスに従って、メモリ装置140からデータを読み出し、プロセッサ110に返送する。
【0140】
以上のように、本実施例ではノード制御装置において、アクセス要求にキャッシュ一致制御が必要かどうかを示すフラグと、転送の対象となるノード番号およびユニット番号を付加し、その情報により、複数ノードを結合するノード間相互結合ネットワークを制御することで、キャッシュ一致制御が不要なアクセス要求を、ノード間相互結合ネットワークに接続する全ノードにブロードキャストせずに、ノード番号が指示するノードのみに直接転送することができるため、ノード間相互結合ネットワークの負荷を軽減し、使用効率を向上できる。
【0141】
また、ノード制御装置においてアクセス要求に付加した情報により、ノード内の各ユニットを結合するノード内相互結合回路も制御することで、キャッシュ一致制御不要で、かつ自ノード内のメモリおよびI/O装置に対するアクセス要求を、ノード間相互結合ネットワークに転送することなく、また、ノード内相互結合回路に接続する全ユニットにブロードキャストせずに、ユニット番号が指示するユニットのみに直接転送することができるため、ノード間相互結合ネットワークの負荷を軽減し使用効率を向上できるだけでなく、ノード内相互結合回路の負荷も軽減することができる。
【0142】
以上が、本発明に係わる実施の形態である。
【0143】
(実施の形態の変形例1)
本発明の別の変形例では、ノード100〜103の構成がそれぞれ異なる。例えば、ノード100およびノード101はプロセッサ110〜113、I/O装置130、メモリ装置140を有する。ノード102はメモリ装置140を有する。ノード103はプロセッサ110〜113およびI/O装置130を有する。
【0144】
ノード構成が異なる場合、キャッシュ一致制御が不要なノードには、アクセス要求を転送する必要がないため、ノード間相互結合ネットワーク200の経路指示回路1300のブロードキャスト回路1320内に、マルチキャストテーブル1400を設ける。
【0145】
マルチキャストテーブル1400を図14に示す。マルチキャストテーブル1400はシステム起動時にホストとなるノードにより設定し、ノード対応にキャッシュ一致制御が必要かどうかを示す。
【0146】
経路指示回路1300では、アクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合に、ブロードキャスト回路1320が動作する。ブロードキャスト回路1320は、マルチキャストテーブル1400に従い、キャッシュ一致制御要であるノードにのみアクセス要求を転送するように、調停要求信号を出力する。
【0147】
(実施の形態の変形例2)
本発明の別の変形例では、ユニット間アドレスデコード回路310および410をプロセッサユニット300およびI/Oユニット400ではなく、ノード内相互結合回路900に設ける。プロセッサユニットで300およびI/Oユニット400は、プロセッサおよびI/O装置が発行したアクセス要求をノード内相互結合回路900に転送する。ノード間相互結合回路900は、転送されたアクセス要求の制御情報およびアドレス情報をデコードし、キャッシュ一致制御フラグ、ノード番号、ユニット番号を生成し、アクセス要求を再構成して、経路指示回路1000により指示されるユニットに転送する。
【0148】
【発明の効果】
本実施の形態によれば、キャッシュ一貫性制御が不要なアクセス要求を、ノード間相互結合ネットワークに接続する全ノードにブロードキャストせずに、特定ノードのみに直接転送することができるため、ノード間相互結合ネットワークの負荷を軽減し使用効率を向上できる。
【0149】
また、自ノード内のユニットを対象とし、キャッシュ一貫性制御が不要なアクセス要求であれば、ノード間相互結合ネットワークに転送せずに、自ノード内の対象ユニットのみに転送することができるため、ノード間相互結合ネットワークに対する負荷を軽減し使用効率を向上できるだけでなく、ノード内相互結合回路の負荷も軽減することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるマルチプロセッサの概略構成を示す図である。
【図2】本発明の実施の形態におけるマルチプロセッサのアドレス空間の割付を示す図である。
【図3】本発明の実施の形態におけるマルチプロセッサのアクセス要求フォーマットとアクセス要求の種類とトランザクション情報の対応付けを示す図である。
【図4】本発明の実施の形態におけるノード制御装置のプロセッサユニットの構成を示す図である。
【図5】本発明の実施の形態におけるトランザクション情報とキャッシュ一致制御フラグの対応付けを示す図である。
【図6】本発明の実施の形態におけるアドレス情報とノード番号およびユニット番号の対応付けを示す図である。
【図7】本発明の実施の形態におけるユニット間アドレスデコード回路の構成を示す図である。
【図8】本発明の実施の形態におけるノード制御装置のI/Oユニットの構成を示す図である。
【図9】本発明の実施の形態におけるノード内相互結合回路の構成を示す図である。
【図10】本発明の実施の形態におけるノード内相互結合回路の経路指示回路の内部構成を示す図である。
【図11】本発明の実施の形態におけるアクセス要求転送元ユニットに対するセレクト信号出力先ユニットを示す図である。
【図12】本発明の実施の形態におけるノード間相互結合ネットワークの構成を示す図である。
【図13】本発明の実施の形態におけるノード間相互結合ネットワークの経路指示回路の内部構成を示す図である。
【図14】本発明の実施の形態におけるノード間相互結合ネットワークの経路指示回路のマルチキャストテーブルを示す図である。
【符号の説明】
100〜103…ノード、200…ノード間相互結合ネットワーク、110〜113…プロセッサ、120…プロセッサバス、130…I/O装置、140…メモリ装置、150…ノード制御装置、300…プロセッサユニット、400…I/Oユニット、500…メモリユニット、600…ネットワークユニット、900…ノード内相互結合回路。
Claims (13)
- 複数のノードがノード間相互結合ネットワークにより結合され、該複数のノードの各々には、キャッシュメモリを含む少なくとも1つ以上のプロセッサと、主記憶を構成する少なくとも1つ以上のメモリ装置と、少なくとも1つ以上のI/O装置と、ノード制御装置とを有する主記憶共有型並列計算機であって、
該ノード制御装置は、 該プロセッサとのインタフェース部であるプロセッサユニットと、該メモリ装置とのインタフェース部であるメモリユニットと、該I/O装置とのインタフェース部であるI/Oユニットと、該ノード間相互結合ネットワークとのインタフェース部であるネットワークユニットとをノード内相互結合回路で結合した構成をとり、
前記プロセッサユニットは、自ノード内のプロセッサの発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求内の制御情報およびアドレス情報をデコードし該アクセス要求の対象となるメモリユニットあるいはI/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路と、前記ネットワークユニットから受けたアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合に自ノード内のプロセッサのキャッシュ一致制御を行うキャッシュ一致制御回路とを有し、
前記I/Oユニットは、自ノード内のI/O装置が発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求の対象となるメモリユニットあるいはI/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路を有し、
前記ネットワークユニットは、前記ノード内相互結合回路からうけたアクセス要求を前記ノード間相互結合ネットワークに転送する手段と、前記ノード間相互結合ネットワークから転送されたアクセス要求を前記ノード内相互結合回路に転送する手段を有し、
前記ノード内相互結合回路は、前記ノード間相互結合ネットワークから転送されたアクセス要求に付加されたキャッシュ一致制御フラグとノード番号とユニット番号により自ノード内のユニットが転送先であると指示されたとき該アクセス要求を当該ユニットに転送し、
前記ノード間相互結合ネットワークは、前記ネットワークユニットから受けたアクセス要求に付加されたキャッシュ一致制御フラグとノード番号により指示されたノードに該アクセス要求を転送することを特徴とする主記憶共有型並列計算機。 - 前記プロセッサが発行したアクセス要求に付加されたノード番号が自ノードへのアクセスを示し、かつ前記キャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、前記ノード間相互結合ネットワークを経由して該アクセス要求を他ノードに対してブロードキャストし、
前記プロセッサが発行したアクセス要求に付加されたノード番号が自ノードへのアクセスを示し、かつ該アクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御不要を示す場合には、該アクセス要求を前記ノード間相互結合ネットワークに出力せずに、前記ノード内相互結合回路から該アクセス要求に付加されたユニット番号が指示する自ノード内のユニットに直接転送することを特徴とする請求項1記載の主記憶共有型並列計算機。 - 前記I/O装置が発行したアクセス要求に付加されたノード番号が自ノードへのアクセスを示し、かつ前記キャッシュ一致制御フラグがキャッシュ一致制御要を示す場合には、前記ノード間相互結合ネットワークを経由して該アクセス要求を他ノードに対してブロードキャストし、
前記I/O装置が発行したアクセス要求に付加されたノード番号が自ノードへのアクセスを示し、かつ該アクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御不要を示す場合には、該アクセス要求を前記ノード間相互結合ネットワークに出力せずに、前記ノード内相互結合回路から該アクセス要求に付加されたユニット番号が指示する自ノード内のユニットに直接転送することを特徴とする請求項1記載の主記憶共有型並列計算機。 - 前記プロセッサユニットおよび前記I/Oユニットには、それぞれ、アクセス要求に付加する前記キャッシュ一致制御フラグを設定するためのフラグ設定テーブルと、アクセス要求に付加する前記ノード番号および前記ユニット番号を設定するためのノードユニット番号設定テーブルと、該フラグ設定テーブルと該ノードユニット番号設定テーブルにより該アクセス要求に付加する該キャッシュ一致制御フラグと該ノード番号と該ユニット番号を生成し保持する手段と、該キャッシュ一致制御フラグと該ノード番号と該ユニット番号を用いて該アクセス要求を再構成する手段を有することを特徴とする請求項1記載の主記憶共有型並列計算機。
- 前記ノード間相互結合ネットワークは、前記プロセッサあるいは前記I/O装置あるいは前記メモリ装置が発行するアクセス要求のアドレス部を転送する第1のクロスバスイッチと、該アクセス要求のデータ部を転送する第2のクロスバスイッチを含むことを特徴とする請求項1乃至5のいずれかに記載の主記憶共有型並列計算機。
- 複数のノードがノード間相互結合ネットワークにより結合され、該複数のノードの各々には、キャッシュメモリを含む少なくとも1つ以上のプロセッサと、主記憶を構成する少なくとも1つ以上のメモリ装置と、少なくとも1つ以上のI/O装置と、ノード制御装置とを有する主記憶共有型並列計算機であって、
該ノード制御装置は、 該プロセッサとのインタフェース部であるプロセッサユニットと、該メモリ装置とのインタフェース部であるメモリユニットと、該I/O装置とのインタフェース部であるI/Oユニットと、該ノード間相互結合ネットワークとのインタフェース部であるネットワークユニットとをノード内相互結合回路で結合した構成をとり、
前記プロセッサユニットは、自ノード内のプロセッサの発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求内の制御情報およびアドレス情報をデコードし該アクセス要求の対象となるメモリユニットあるいはI/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路と、前記ネットワークユニットから受けたアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合に自ノード内のプロセッサのキャッシュ一致制御を行うキャッシュ一致制御回路とを有し、
前記I/Oユニットは、自ノード内のI/O装置が発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求の対象となるメモリユニットあるいはI/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路を有し、
前記ネットワークユニットは、前記ノード内相互結合回路からうけたアクセス要求を前記ノード間相互結合ネットワークに転送する手段と、前記ノード間相互結合ネットワークから転送されたアクセス要求を前記ノード内相互結合回路に転送する手段を有し、
前記ノード内相互結合回路は、前記ノード間相互結合ネットワークから転送されたアクセス要求に付加されたキャッシュ一致制御フラグとノード番号とユニット番号により該アクセス要求の転送先を指示するユニット指示回路と、該ユニット指示回路の指示により当該ノード内相互結合回路に接続されるユニットに該アクセス要求を転送する手段を有し、
前記ノード間相互結合ネットワークは、前記ネットワークユニットから送出されたアクセス要求に付加されたキャッシュ一致制御フラグとノード番号により該アクセス要求の転送先ノードを指示するノード指示回路と、該ノード指示回路の指示により該アクセス要求を転送する手段を有し、
前記プロセッサまたは前記I/O装置が発行するアクセス要求のうち、キャッシュ一致制御が必要なアクセス要求は複数ノードにブロードキャストし、キャッシュ一致制御が不要なアクセス要求は対象ノードのみに転送することを特徴とする主記憶共有型並列計算機のノード制御装置。 - 前記ノード指示回路は、前記ネットワークユニットから送出されたアクセス要求に付加されたキャッシュ一致制御フラグおよびノード番号を保持する手段と、該アクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合に、該アクセス要求を該ノード間相互結合ネットワークに接続する複数ノードにブロードキャストするための制御信号を生成する手段と、該アクセス要求に付加された該キャッシュ一致制御フラグがキャッシュ一致制御不要を示す場合に、該ノード番号で示されるノードのみに転送するための制御信号を生成する手段を有することを特徴とする請求項6記載の主記憶共有型並列計算機。
- 前記ノード指示回路は、該ノード間相互結合ネットワークに接続する複数ノードのそれぞれのキャッシュ一致制御要否を示す情報を設定する手段を有し、キャッシュ一致制御が必要な該アクセス要求が転送された場合にも、該設定情報により指示されるキャッシュ一致制御不要な該ノードには該キャッシュ一致制御が必要な該アクセス要求を転送しないことを特徴とする主記憶共有型並列計算機。
- 複数のノードがノード間相互結合ネットワークにより結合され、該複数のノードの各々には、キャッシュメモリを含む少なくとも1つ以上のプロセッサと、主記憶を構成する少なくとも1つ以上のメモリ装置と、少なくとも1つ以上のI/O装置と、ノード制御装置とを有する主記憶共有型並列計算機の各々のノードに設けられるノード制御装置であって、
該プロセッサとのインタフェース部であるプロセッサユニットと、該メモリ装置とのインタフェース部であるメモリユニットと、該I/O装置とのインタフェース部であるI/Oユニットと、該ノード間相互結合ネットワークとのインタフェース部であるネットワークユニットとをノード内相互結合回路で結合した構成をとり、
前記プロセッサユニットは、自ノード内のプロセッサの発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求内の制御情報およびアドレス情報をデコードし該アクセス要求の対象となるメモリユニットあるいはI/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路と、前記ネットワークユニットから受けたアクセス要求に付加されたキャッシュ一致制御フラグがキャッシュ一致制御要を示す場合に自ノード内のプロセッサのキャッシュ一致制御を行うキャッシュ一致制御回路とを有し、
前記I/Oユニットは、自ノード内のI/O装置が発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求の対象となるメモリユニットあるいはI/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路を有し、
前記ネットワークユニットは、前記ノード内相互結合回路からうけたアクセス要求を前記ノード間相互結合ネットワークに転送する手段と、前記ノード間相互結合ネットワークから転送されたアクセス要求を前記ノード内相互結合回路に転送する手段を有し、
前記ノード内相互結合回路は、前記ノード間相互結合ネットワークから転送されたアクセス要求に付加されたキャッシュ一致制御フラグとノード番号とユニット番号により該アクセス要求の転送先を指示する経路指示回路と、該経路指示回路の指示により当該ノード内相互結合回路に接続されるユニットに該アクセス要求を転送する手段を有し、
前記プロセッサまたは前記I/O装置が発行するアクセス要求のうち、キャッシュ一致制御が必要なアクセス要求は複数ノードにブロードキャストし、キャッシュ一致制御が不要なアクセス要求は対象ノードのみに転送することを特徴とする複数ノードを転送することを特徴とする主記憶共有型並列計算機のノード制御装置。 - 前記プロセッサユニットおよび前記I/Oユニットは、アクセス要求に付加する前記キャッシュ一致制御フラグを設定するためのフラグ設定テーブルと、該アクセス要求に付加するノード番号およびユニット番号を設定するためのノードユニット番号設定テーブルと、該フラグ設定テーブルと該ノードユニット番号設定テーブルにより該アクセス要求に付加する該キャッシュ一致制御フラグと該ノード番号と該ユニット番号を生成し保持する手段と、該キャッシュ一致制御フラグと該ノード番号と該ユニット番号を用いて該アクセス要求を再構成する手段を有することを特徴とする請求項9記載のノード制御装置。
- 前記該経路指示回路は、自ノード番号を保持する手段と、前記ノード間相互結合ネットワークから転送されたアクセス要求に付加されたノード番号と自ノード番号を比較する比較手段と、比較結果が一致のとき該アクセス要求に付加された前記キャッシュ一致制御フラグと前記ユニット番号と該比較手段の比較結果により転送経路を制御する制御情報を生成する手段を有することを特徴とする請求項10記載のノード制御装置。
- 前記ノード内相互結合回路は、該ノード内のプロセッサの発行するメモリアクセス要求あるいはI/Oアクセス要求に、該アクセス要求内の制御情報およびアドレス情報をデコードし該アクセス要求の対象となる該メモリユニットあるいは該I/Oユニットのノード番号およびユニット番号およびキャッシュ一致制御の要否を示すキャッシュ一致制御フラグを付加するユニット間アドレスデコード回路を有する請求項10記載のノード制御装置。
- キャッシュメモリを有するプロセッサとメモリ装置とI/O装置のいずれかを組み合わせて構成する複数のノードをノード間相互結合ネットワークにより結合する主記憶共有型並列計算機であって、
該ノードは、プロセッサあるいはI/O装置が発行したアクセス要求に、キャッシュの一致制御を行うかどうかを示すキャッシュ一致制御フラグと、転送の対象ノードであるノード番号を付加する手段を有し、
該ノード間相互結合ネットワークは、該アクセス要求に付加された該キャッシュ一致制御フラグと該ノード番号により、該アクセス要求の転送先を指示する経路指示回路を有し、
該経路指示回路は、いずれかのノードから転送された該アクセス要求に付加された該キャッシュ一致制御フラグおよび該ノード番号を保持する手段と、該保持手段により保持した該キャッシュ一致制御フラグがキャッシュ一致制御要を示す場合に、該アクセス要求をキャッシュを有する全ノードに対して転送する手段と、該保持手段により保持した該キャッシュ一致制御フラグはキャッシュ一致制御不要を示す場合に、該アクセス要求に付加された該ノード番号が示す該ノードに対して、該アクセス要求を転送する手段を有し、
あるプロセッサまたはあるI/O装置の発行するアクセス要求を、キャッシュ一致制御が必要であるアクセス要求の場合は発行元のノードからキャッシュを有する複数のノードに対して転送し、キャッシュ一致制御が不要であるアクセス要求は、対象ノードのみに転送することを特徴とする主記憶共有型並列計算機。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36623599A JP3959914B2 (ja) | 1999-12-24 | 1999-12-24 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
US09/740,816 US6636926B2 (en) | 1999-12-24 | 2000-12-21 | Shared memory multiprocessor performing cache coherence control and node controller therefor |
US10/654,983 US6874053B2 (en) | 1999-12-24 | 2003-09-05 | Shared memory multiprocessor performing cache coherence control and node controller therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36623599A JP3959914B2 (ja) | 1999-12-24 | 1999-12-24 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001184321A JP2001184321A (ja) | 2001-07-06 |
JP3959914B2 true JP3959914B2 (ja) | 2007-08-15 |
Family
ID=18486269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36623599A Expired - Fee Related JP3959914B2 (ja) | 1999-12-24 | 1999-12-24 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6636926B2 (ja) |
JP (1) | JP3959914B2 (ja) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3959914B2 (ja) * | 1999-12-24 | 2007-08-15 | 株式会社日立製作所 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
AU2002245518A1 (en) * | 2001-02-24 | 2002-09-12 | Matthias A. Blumrich | Managing coherence via put/get windows |
US20020161453A1 (en) * | 2001-04-25 | 2002-10-31 | Peltier Michael G. | Collective memory network for parallel processing and method therefor |
US7076576B2 (en) * | 2001-06-19 | 2006-07-11 | Fujitsu Limited | Data transfer in multi-node computer system |
US20030041215A1 (en) * | 2001-08-27 | 2003-02-27 | George Robert T. | Method and apparatus for the utilization of distributed caches |
US6925512B2 (en) * | 2001-10-15 | 2005-08-02 | Intel Corporation | Communication between two embedded processors |
US20030115402A1 (en) * | 2001-11-16 | 2003-06-19 | Fredrik Dahlgren | Multiprocessor system |
US7546422B2 (en) * | 2002-08-28 | 2009-06-09 | Intel Corporation | Method and apparatus for the synchronization of distributed caches |
US7111128B2 (en) | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US7917646B2 (en) * | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
US8346884B2 (en) | 2003-01-21 | 2013-01-01 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US8102843B2 (en) * | 2003-01-21 | 2012-01-24 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7085897B2 (en) * | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Memory management for a symmetric multiprocessor computer system |
US20040267919A1 (en) * | 2003-06-30 | 2004-12-30 | International Business Machines Corporation | Method and system for providing server management peripheral caching using a shared bus |
US7822929B2 (en) * | 2004-04-27 | 2010-10-26 | Intel Corporation | Two-hop cache coherency protocol |
US20050262250A1 (en) * | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
US20050240734A1 (en) * | 2004-04-27 | 2005-10-27 | Batson Brannon J | Cache coherence protocol |
JP4695367B2 (ja) * | 2004-08-31 | 2011-06-08 | 富士通株式会社 | 情報処理装置,制御装置及び情報処理装置の制御方法 |
JP4956900B2 (ja) | 2005-03-07 | 2012-06-20 | 富士通株式会社 | アドレススヌープ方法及びマルチプロセッサシステム |
US7395381B2 (en) * | 2005-03-18 | 2008-07-01 | Intel Corporation | Method and an apparatus to reduce network utilization in a multiprocessor system |
US7818507B2 (en) * | 2005-04-04 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating coherency management in distributed multi-processor system |
US8762595B1 (en) * | 2005-04-05 | 2014-06-24 | Oracle America, Inc. | Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness |
US7363435B1 (en) | 2005-04-27 | 2008-04-22 | Sun Microsystems, Inc. | System and method for coherence prediction |
CA2549540C (en) * | 2005-06-10 | 2008-12-09 | Hitachi, Ltd. | A task management control apparatus and method |
JP2007286754A (ja) * | 2006-04-13 | 2007-11-01 | Nippon Telegr & Teleph Corp <Ntt> | ノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラム |
JP4829038B2 (ja) | 2006-08-17 | 2011-11-30 | 富士通株式会社 | マルチプロセッサシステム |
US7657710B2 (en) * | 2006-11-17 | 2010-02-02 | Sun Microsystems, Inc. | Cache coherence protocol with write-only permission |
US20090089510A1 (en) * | 2007-09-28 | 2009-04-02 | Mips Technologies, Inc. | Speculative read in a cache coherent microprocessor |
US7930459B2 (en) * | 2007-09-28 | 2011-04-19 | Intel Corporation | Coherent input output device |
US8392663B2 (en) * | 2007-12-12 | 2013-03-05 | Mips Technologies, Inc. | Coherent instruction cache utilizing cache-op execution resources |
US8122228B2 (en) * | 2008-03-24 | 2012-02-21 | International Business Machines Corporation | Broadcasting collective operation contributions throughout a parallel computer |
US20090248988A1 (en) * | 2008-03-28 | 2009-10-01 | Mips Technologies, Inc. | Mechanism for maintaining consistency of data written by io devices |
US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8281053B2 (en) | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
US20100332763A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Apparatus, system, and method for cache coherency elimination |
WO2011046677A2 (en) * | 2009-10-13 | 2011-04-21 | Rambus Inc. | Dynamic protocol for communicating command and address information |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
WO2013114540A1 (ja) * | 2012-01-30 | 2013-08-08 | 富士通株式会社 | 制御装置、解析装置、解析方法、および解析プログラム |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
US9170954B2 (en) | 2012-12-10 | 2015-10-27 | International Business Machines Corporation | Translation management instructions for updating address translation data structures in remote processing nodes |
BR112016001014A2 (pt) * | 2013-07-18 | 2017-08-22 | Benjamin A Gittins | Computing architecture with peripherals |
WO2015099730A1 (en) * | 2013-12-26 | 2015-07-02 | Intel Corporation | Sharing memory and i/o services between nodes |
JP6593222B2 (ja) * | 2016-02-23 | 2019-10-23 | 富士通株式会社 | 情報処理装置、演算処理装置及び情報処理装置の制御方法 |
US11841803B2 (en) * | 2019-06-28 | 2023-12-12 | Advanced Micro Devices, Inc. | GPU chiplets using high bandwidth crosslinks |
US11507527B2 (en) | 2019-09-27 | 2022-11-22 | Advanced Micro Devices, Inc. | Active bridge chiplet with integrated cache |
US11232622B2 (en) | 2019-11-27 | 2022-01-25 | Advanced Micro Devices, Inc. | Data flow in a distributed graphics processing unit architecture |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4747043A (en) * | 1984-02-10 | 1988-05-24 | Prime Computer, Inc. | Multiprocessor cache coherence system |
US6088768A (en) * | 1993-12-28 | 2000-07-11 | International Business Machines Corporation | Method and system for maintaining cache coherence in a multiprocessor-multicache environment having unordered communication |
US6011791A (en) | 1995-11-15 | 2000-01-04 | Hitachi, Ltd. | Multi-processor system and its network |
JP3875749B2 (ja) * | 1996-08-08 | 2007-01-31 | 富士通株式会社 | マルチプロセッサ装置及びそのメモリアクセス方法 |
US6292705B1 (en) * | 1998-09-29 | 2001-09-18 | Conexant Systems, Inc. | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system |
US6378029B1 (en) * | 1999-04-21 | 2002-04-23 | Hewlett-Packard Company | Scalable system control unit for distributed shared memory multi-processor systems |
JP3959914B2 (ja) * | 1999-12-24 | 2007-08-15 | 株式会社日立製作所 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
US6738870B2 (en) * | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | High speed remote storage controller |
-
1999
- 1999-12-24 JP JP36623599A patent/JP3959914B2/ja not_active Expired - Fee Related
-
2000
- 2000-12-21 US US09/740,816 patent/US6636926B2/en not_active Expired - Fee Related
-
2003
- 2003-09-05 US US10/654,983 patent/US6874053B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6636926B2 (en) | 2003-10-21 |
US6874053B2 (en) | 2005-03-29 |
JP2001184321A (ja) | 2001-07-06 |
US20040054855A1 (en) | 2004-03-18 |
US20010005873A1 (en) | 2001-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3959914B2 (ja) | 主記憶共有型並列計算機及びそれに用いるノード制御装置 | |
US5805839A (en) | Efficient technique for implementing broadcasts on a system of hierarchical buses | |
US9836412B2 (en) | Processor memory system | |
US5577204A (en) | Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device | |
US5754877A (en) | Extended symmetrical multiprocessor architecture | |
US5796605A (en) | Extended symmetrical multiprocessor address mapping | |
US6513091B1 (en) | Data routing using status-response signals | |
KR102469404B1 (ko) | 데이터 처리 시스템 | |
WO1999046681A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipilined snoopy protocol | |
EP1701267B1 (en) | Address snoop method and multi-processor system | |
JP5212478B2 (ja) | 制御装置、データ転送装置、情報処理装置、演算処理装置および情報処理装置の制御方法 | |
US6092136A (en) | Multi-processor central processing unit | |
EP0817095B1 (en) | Extended symmetrical multiprocessor architecture | |
EP0489583A2 (en) | Multiple processor cache control system | |
US20060176906A1 (en) | Data processing system, method and interconnect fabric for selective link information allocation in a data processing system | |
US7944932B2 (en) | Interconnect fabric for a data processing system | |
US20060253661A1 (en) | Distributed address arbitration scheme for symmetrical multiprocessor system | |
JP3661249B2 (ja) | マルチプロセッサシステム | |
US6735654B2 (en) | Method and apparatus for efficiently broadcasting transactions between an address repeater and a client | |
JP2976700B2 (ja) | プロセッサ間同期制御方式 | |
JP2001273191A (ja) | コンピュータシステム | |
JP2003030048A (ja) | マルチプロセッサシステム | |
JPH1097512A (ja) | プロセッサ間データ転送方法及び並列計算機 | |
JPH08115258A (ja) | マルチプロセッサ装置 | |
JP2000512407A (ja) | ライトレジスタインターベンション |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051101 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060417 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070412 |
|
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: 20070424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070507 |
|
LAPS | Cancellation because of no payment of annual fees |