Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3661249B2 - Multiprocessor system - Google Patents
[go: Go Back, main page]

JP3661249B2 - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP3661249B2
JP3661249B2 JP29647395A JP29647395A JP3661249B2 JP 3661249 B2 JP3661249 B2 JP 3661249B2 JP 29647395 A JP29647395 A JP 29647395A JP 29647395 A JP29647395 A JP 29647395A JP 3661249 B2 JP3661249 B2 JP 3661249B2
Authority
JP
Japan
Prior art keywords
unit
port
data
address
multiprocessor system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP29647395A
Other languages
Japanese (ja)
Other versions
JPH09138783A (en
Inventor
哲彦 岡田
直樹 濱中
直彦 入江
剛久 林
哲也 持田
正文 柴田
洋一 田中
保弘 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP29647395A priority Critical patent/JP3661249B2/en
Priority to US08/747,344 priority patent/US6011791A/en
Publication of JPH09138783A publication Critical patent/JPH09138783A/en
Priority to US09/456,383 priority patent/US6728258B1/en
Application granted granted Critical
Publication of JP3661249B2 publication Critical patent/JP3661249B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、高性能を実現するため複数のプロセッサを用いて構成するマルチプロセッサシステムに関連する。
【0002】
【従来の技術】
複数のプロセッサユニット、メモリユニット、入出力ユニットを単一のバスを用いて結合しメモリ共有型マルチプロセッサシステムを実現する方法は良く知られている。
【0003】
しかし、単一のバスを用いて結合する場合、接続されたユニット間でデータを転送するパスが1つしか存在しないため、プロセッサ台数を増やしてシステム性能を向上させようとするとバスがボトルネックとなる。
【0004】
これを解決するためアドレスの転送にはバスを用い、データの転送にはクロスバスイッチを用いる方法が、ニコルソンによって1995年のCOMPCOM95プロシーディングの102−109ページ「RISCシステム/6000SMPシステム」(James O.Nicholson, ”The RISC System/6000 SMP System,” COMPCON95 Proceedings,March 1995, pp.102−109)に紹介されている。
【0005】
【発明が解決しようとする課題】
しかしながら、上記の従来方法もスループット上のバスネックは解消されるが、高い周波数では信号を伝える上での電気的な制約によりプロセッサ台数をあまり多く増やすことができない。
【0006】
これを解決するためには、アドレスもクロスバスイッチを通し、各ユニットとクロスバスイッチを1対1で接続することによって解決可能である。
【0007】
このとき、バス接続で動作しているソフトウエアを正しく動作させるためには、クロスバスイッチによる接続でもキャッシュメモリとメインメモリのデータコヒーレンシを維持する必要がある。さらに、バス接続を前提に作られているプロセッサをクロスバスイッチを介して接続するためには、バス方式でデータコヒーレンシを維持する方法として一般的なアドレススヌープ方式をクロスバスイッチ上でも実現する必要が生じる。
【0008】
このアドレススヌープはキャッシュメモリとメインメモリのデータコヒーレンシを維持するための方法であり、転送対象となるデータを持たないメモリユニットやキャッシュメモリを持たない入出力ユニットに対しアドレスを転送する必要はない。このため、データコヒーレンシを維持するために必要なアドレスの転送は、アドレススヌープに参加する必要のあるユニットに対してだけ行なわれれば良く、1対多のデータ転送であるマルチキャストを行なうための手段をシステム接続部に設けることで効率的なアドレススヌープ方式を実現することができる。本発明の第1の課題は、バスで接続されることを前提に作られているプロセッサをクロスバスイッチを介して接続することによってバスネックを解消し、接続可能なプロセッサ台数を増加させることによりマルチプロセッサシステムとしての性能を向上させることにある。
【0009】
本発明の第2の課題は、バスで動作しているソフトウエアを変更することなく、クロスバスイッチを介して接続されたシステムにおいても動作可能にすることにある。
【0010】
本発明で解決すべき課題は上記2つの課題を同時に達成するものであり、さらに本発明では次に示す2つの課題を解決することも狙っている。
【0011】
本発明の第3の課題は、クロスバスイッチによって接続されたマルチプロセッサシステムにおいて、効率の良いアドレススヌープ方式を提供することにある。
【0012】
本発明の第4の課題は、クロスバスイッチのポートにプロセッサユニット、メモリユニット、入出力ユニットの任意のユニットを接続可能にし、柔軟なシステム構成を可能にするマルチキャスト方式を提供することにある。
【0013】
【課題を解決するための手段】
本発明の第1の課題は、前記のニコルソンによって紹介されている従来例のアドレスバスを廃止し、アドレスもクロスバスイッチを通し、各ユニットとクロスバスイッチを1対1で接続することによって達成される。
【0014】
本発明の第2の課題は、アドレススヌープ方式をクロスバスイッチでも可能にするため、アドレスをクロスバスイッチに接続された全てのユニットにブロードキャストする手段をシステム接続部に設け、データコヒーレンシを維持するために必要なアドレスの転送の場合には、全てのユニットにアドレスを転送するようにシステム接続部を制御することによって達成される。
【0015】
本発明の第3の課題は、データコヒーレンシを維持するために必要なアドレスの転送を、アドレススヌープに参加する必要のあるユニットに対してだけマルチキャストする手段をシステム接続部に設け、データコヒーレンシを維持するために必要なアドレスの転送の場合には、アドレススヌープに参加する必要のあるユニットに対してだけアドレスを転送するようにシステム接続部を制御することによって達成される。
【0016】
本発明の第4の課題は、クロスバスイッチ内に各ポートに接続されているユニットがマルチキャスト対象のユニットか否かを示す情報を保持する手段を設け、この情報を元に転送先ポートを決定する手段を設け、マルチキャスト対象のユニットか否かを示す情報を元に転送先ポートを決定する手段にマルチキャスト先を設定した後、マルチキャストを行なうようにすることによって達成される。
【0017】
各ユニットをクロスバスイッチを用いて接続することにより、転送先ポートが異なっていれば複数のデータ転送を同時に実行することができるため、プロセッサ台数を増加させることによるバスの奪い合いによる性能低下を押さえることができる。
【0018】
また、各ユニットとクロスバスイッチを1対1で接続することによってバスに比べ良い電気的特性を得ることができ、この結果接続可能なプロセッサ台数を増加させるこ
とが可能になる。
【0019】
データコヒーレンシを維持するために必要なアドレスの転送をブロードキャストすることによって、既存のプロセッサの持つアドレススヌープの機能を利用することができ、低コストで効率的なデータコヒーレンシを維持する方法を実現できる。
【0020】
各ポートに接続されているユニットのうちアドレススヌープに参加する必要のあるユニットに対してだけコヒーレントトランザクションのアドレスを転送することによって、不必要なデータ転送を排除し、実効的なデータ転送スループットを向上させることができる。
【0021】
また、ポート対応にマルチキャスト対象のユニットか否かを示す情報を保持することによって、任意のポートに任意のユニットを接続することが可能になり、柔軟なシステム構成が可能になる。
【0022】
本発明のマルチキャスト方式はアドレススヌープを例に説明されているが、複数のポートに対しデータを転送したい場合に一般的に利用できる。
【0023】
例えば、全ての入出力装置に対してリセットするためのコマンドを転送したい場合には、そのポートに入出力ユニットが接続されているか否かをマルチキャスト対象か否かを示す情報として保持する手段を設ければよい。
【0024】
【発明の実施の形態】
以下、本発明の実施例を用いて詳細に説明する。
【0025】
図2は3つのプロセッサユニット20、30、40、2つのメモリユニット50、60および1つの入出力ユニット70を6つのポートを持つシステム接続部100で接続した本発明の第1の実施例である。
【0026】
入出力ユニット70はディスク装置75、ディスプレイ(図示せず)、キーボード(図示せず)などの入出力装置に接続している。
【0027】
各ユニットは通常のバス接続されたシステムでの対応するユニットと、システム接続部とのインタフェース部分を除き同一の機能を有するため、本実施例ではバス接続されたシステムと本実施例の相違点について詳細に述べ、同一の点については説明に必要な部分だけ説明するものとする。
【0028】
プロセッサユニット30はシステム接続部100とポート4を介して接続されており、それぞれ本発明の特徴であるユニット識別レジスタidr31、接続情報生成回路33、転送先識別レジスタdr32を有している。これらの回路の詳細は後述する。
【0029】
同様に他のユニットもそれぞれシステム接続部100とポートを介して接続されており、それぞれユニット識別レジスタidr、接続情報生成回路、転送先識別レジスタdrを有している。
【0030】
システム接続部100は6つのスイッチ制御回路110から160、入力ポートと出力ポートを接続する36個のスイッチsw1−1からsw6−6を有している。
【0031】
スイッチ制御回路140はポート4の入力に対して設けられ、6つのスイッチsw4−1からsw4−6の開閉を制御し、ポート4の入力バス14をそれぞれポート1の出力バス21からポート6の出力バス26に接続する。
【0032】
同様に他のスイッチ制御回路も各ポートの入力に対応して設けられ、iを1から6の自然数とすればポートiのスイッチ制御回路はスイッチswi−1からswi−6の開閉を制御し、ポートiの入力バスを任意のポートの出力バスに接続する。
【0033】
ユニキャストの場合はいずれか1つをスイッチを閉じることによって入力ポートを任意の出力ポートを接続し、ブロードキャストの場合は全てのスイッチを閉じることによって入力ポートを全ての出力ポートに同時に接続するように制御する。
【0034】
スイッチ制御回路はこのスイッチ制御に際し、複数の入力ポートが同一の出力ポートに接続されることのないよう、出力ポートの接続権の調停を行なう。この出力ポートの接続権の調停回路は通常のバス接続されたシステムのバス権調停回路と同一であり本実施例では説明を省略する。
【0035】
図3は各ユニットが持つ本発明の特徴であるユニットを識別するためのレジスタidrの内容によるユニット識別方法の1例である。各ユニットは図3に示された情報を各ユニットのユニット識別レジスタidrに保持しているものとする。
【0036】
図4は本実施例の各ユニットが生成するデータ転送の種類trtypを示している。本実施例ではデータ転送の種類trtypは (1)非コヒーレントブロックリード要求、(2)非コヒーレントブロックリード応答、(3)非コヒーレントブロックライト要求、(4)非コヒーレントワードリード要求、(5)非コヒーレントワードリード応答、(6)非コヒーレントワードライト要求、(7)コヒーレント共有ブロックリード要求、(8)コヒーレント排他ブロックリード要求 の8種類である。
【0037】
図5は本実施例のシステムにおけるアドレス空間の割り当てを示している。本実施例では0番地以上A番地未満の領域がメモリユニット0に設けられたメインメモリに、A番地以上B番地未満の領域がメモリユニット1に設けられたメインメモリに、B番地以上の領域がメモリマップされた制御レジスタなどのためのI/O空間として割り当てられている。
【0038】
本実施例では各ユニットの制御レジスタがマップされるI/O空間のアドレスはポート対応に決められており、B番地以上C番地未満の領域がポート1のユニット、C番地以上D番地未満の領域がポート2のユニット、D番地以上E番地未満の領域がポート3のユニット、E番地以上F番地未満の領域がポート4のユニット、F番地以上G番地未満の領域がポート5のユニット、G番地以上MAX番地未満の領域がポート6のユニットに割り当てられている。
【0039】
図6は本実施例での転送先識別レジスタdrの値である。本実施例ではアドレス空間のメモリ領域がどのポートのメモリユニットに設けられているかを識別するために、転送先識別レジスタdrとして2つのポート番号を保持できるようにしている。
【0040】
転送先識別レジスタdrの値は、本発明の特徴であるユニット識別レジスタidrの情報を元に設定される。この動作に関しては後ほど詳細に述べる。
【0041】
上記データ転送の種類trtypとアドレス空間の割り付け方はバス接続されたシステムにおいて用いられるデータ転送の種類、アドレス空間の割り付け方と同一であり本発明に特有のものではない。
【0042】
本発明では、上記データ転送の種類と転送されるデータのアドレスおよび本発明の特徴である転送先識別レジスタdrを用い、各ユニットの本発明の特徴である接続情報生成回路が転送先を決定し、図7に示す5種類の制御情報scctlと共にシステム接続部にデータ転送要求を出す。
【0043】
次に本実施例の各ユニットから要求されるデータ転送の種類trtypについて説明する。
【0044】
マルチプロセッサシステムでは、データの読み出しを行なう場合は読み出し行なう時点で本来メインメモリに存在するべき最新のデータを読み出す必要があり、最新のデータを他のプロセッサユニットが保持していないかを確認するためコヒーレント共有ブロックリード要求またはコヒーレント排他ブロックリード要求によって読み出しを行なう。
【0045】
書き込みを行なう場合には、他のプロセッサユニットが古いデータを保持しないようにするため、コヒーレント排他リード要求によって1度そのデータの読み出しを行なう。
【0046】
読み出し要求時には、そのデータのアドレスを他のプロセッサユニットに伝え、コヒーレンシをチェックする必要があるが、読み出されたデータを転送する場合にはコヒーレンシチェックは不要であり、リード応答には非コヒーレントブロックリード応答や非コヒーレントワードリード応答が用いられる。
【0047】
プロセッサユニットはあるデータを書き換えてキャッシュメモリに持っている場合、キャッシュメモリのリプレースまたは他のプロセッサユニットからのそのデータに対するコヒーレントリード要求を検出した場合、書き換えたデータを転送しなければならない。このときは、それぞれ非コヒーレントブロックライト要求または非コヒーレントブロックリード応答でデータを転送する。
【0048】
全てのデータがキャッシュメモリに保持される訳ではなく、例えば非キャッシュ領域が決められている場合、プロセッサユニットは非コヒーレントブロックリード要求でデータの読み出す。また、I/Oレジスタのようにブロック単位に読み出し/書き込みを行なわないデータ(ワードデータ)はキャッシングされないため、プロセッサユニットは非コヒーレントワードリード要求や非コヒーレントワードライト要求を用いる。
【0049】
各ユニットから要求されるデータ転送はその種類trtypに応じて転送に要するサイクルが異なる。転送に要するサイクル数はシステム接続部の制御情報として必要であり、説明のため本実施例では、リード要求はアドレスを転送する1サイクル、ブロックライト要求は5サイクル、ブロックリード応答は4サイクル、ワードライト要求は2サイクル、ワードリード応答は1サイクルで転送するものとする。
【0050】
図7は上記データ転送の種類trtypと転送されるデータのアドレスから接続情報生成回路によって生成されるシステム接続部への制御情報scctlを示している。データ転送の種類trtypはそれ自身がデータとして転送先のユニットに送られるため、システム接続部への制御情報scctlはユニキャストかブロードキャストかという情報、転送に要するサイクル数、転送元のポート番号と転送先のポート番号だけでよい。
【0051】
接続情報生成回路は、データ転送の種類trtypを元にユニキャストかブロードキャストかという情報、転送に要するサイクル数を以下のように生成する。非コヒーレントブロックリード要求である場合、1サイクルのユニキャスト。
【0052】
非コヒーレントブロックリード応答である場合、4サイクルのユニキャスト。
【0053】
非コヒーレントブロックライト要求である場合、5サイクルのユニキャスト。
【0054】
非コヒーレントワードリード要求である場合、1サイクルのユニキャスト。
【0055】
非コヒーレントワードリード応答である場合、1サイクルのユニキャスト。
【0056】
非コヒーレントワードライト要求である場合、2サイクルのユニキャスト。
【0057】
コヒーレント共有ブロックリード要求またはコヒーレント排他ブロックリード要求である場合、1サイクルのブロードキャスト。
【0058】
接続情報生成回路は、転送元のポート番号として自身の接続されているポート番号を制御情報scctlのsrcフィールドに埋め込む。
【0059】
接続情報生成回路は、データ転送の種類trtypおよびそのデータのアドレスと転送先識別レジスタdrを元に転送先のポート番号を生成し制御情報scctlのdestフィールドに埋め込む。
【0060】
要求されたデータ転送がリード要求に対する応答である場合は、リード要求時にシステム接続部に出された制御情報scctlのsrcフィールドに含まれる要求元のポート番号をdestフィールドに埋め込む。
【0061】
要求されたデータ転送がライト要求やリード要求である場合はユニキャストかブロードキャストかに関わらずそのアドレスがメモリ空間にあれば、図6に示されるように0番地以上A番地未満の領域であればdr0の値である1を、A番地以上B番地未満の領域であればdr1の値である4を転送先のポート番号としてdestフィールドに埋め込む。そのアドレスがI/O空間にあれば、図5に示されるようにB番地以上C番地未満の領域であれば1、C番地以上D番地未満の領域であれば2、D番地以上E番地未満の領域であれば3、E番地以上F番地未満の領域であれば4、F番地以上G番地未満の領域であれば5、G番地以上MAX番地未満の領域であれば6を転送先のポート番号としてdestフィールドに埋め込む。
【0062】
以上の説明から明らかなように、転送先識別レジスタdrに値を設定する前に転送先のポート番号を決定し、システム接続部を介してデータ転送を行なえるのは、アドレス固定にポート番号が決められているI/O空間に対するユニキャストだけである。
【0063】
このため、本発明のマルチプロセッサシステム上でバス接続されたシステムで動作しているソフトウエアを変更することなく動作させるためには、I/O空間に対するユニキャスト転送だけで転送先識別レジスタdrに正しく値を設定する手順が存在し、この転送先識別レジスタdrに正しく値を設定した後メモリ空間に対するユニキャストやブロードキャスト転送を用いるようにしなければならない。次にこの手順について説明する。
【0064】
本実施例では、各ユニットが持っているユニット識別レジスタidrおよび転送先識別レジスタdrは、接続されたポートのI/O空間にマップされているI/Oレジスタであり、各ポートのI/O空間内のオフセットアドレスは共通に決められている。
【0065】
各プロセッサユニットはリセット直後に実行されるブートプログラムを保持するROMを持っており、リセット直後のプロセッサはそのブートプログラムに従いプロセッサ自身、プロセッサユニット内のキャッシュメモリを初期化する。この初期化の段階ではシステム接続部に対するデータの転送要求は発生しない。
【0066】
本実施例では、この初期化の課程で複数あるプロセッサユニットの中から1つだけ主プロセッサユニットが選ばれるものとする。例えば、主プロセッサユニットとなるプロセッサユニットだけブートプログラムの一部が他のプロセッサユニットのブートプログラムと異なるようにする。あるいはポート対応にプロセッサユニットであるか否かを知らせる信号を設けてあれば、システム接続部100からポート番号が最も小さいプロセッサユニットであるか否かを伝える信号を設けることは容易である。
【0067】
また、リセット直後のシステム接続部100は各ポートからのデータ転送要求を待っており、なにもしていない状態にある。
【0068】
プロセッサユニット内の初期化を終了したプロセッサユニットは、主プロセッサユニットでなければ主プロセッサユニットからの割り込み待ちの状態に入る。プロセッサユニット内の初期化を終了した主プロセッサユニットは、I/O空間に対するユニキャストによって、ポート番号順に各ポートに接続されたユニットのユニット識別レジスタidrを読み出し、メモリユニットがどのポートに接続されているかを認識する。
【0069】
この後、I/O空間に対するユニキャストによって、メモリユニットが接続されていたポート番号を各ユニットの転送先識別レジスタdrに設定する。
【0070】
以上の手順によって、I/O空間に対するユニキャスト転送だけを用いて転送先識別レジスタdrに正しく値を設定することができる。
【0071】
上記実施例では、I/O空間はポート対応にアドレス空間に割り付けられていた。このため、I/O空間に対するユニキャストで転送先識別レジスタdrに値を設定する方法を示した。しかし、バス接続されたシステムと同様に、各ユニットにそのユニットのI/Oレジスタに対するアクセスか否かを、アドレスによって取捨する機構を持たせることにより、I/O空間に対するユニキャストに代えてI/O空間に対するブロードキャストだけを用いて転送先識別レジスタdrに値を設定することもできる。
【0072】
上記実施例では、説明を簡単にするためメモリユニットは1種類しかないものとしている。このため、1つのメモリユニットのメモリ容量によって決まる固定アドレスA番地を基準に、メモリ空間もA番地未満の領域とA番地以降の領域の2つに決められている。
【0073】
異なるメモリ容量を持つメモリユニットが接続されることがある場合には次の2つの手段を設ければよいことは明らかである。
【0074】
(1)転送先識別レジスタdrにはポート番号だけでなく、そのメモリユニットが割り当てられるアドレス領域の最小アドレスと最大アドレスを保持するようにする。
【0075】
(2)接続情報生成回路では転送するデータのアドレスを上記最小アドレスと最大アドレスと比較し、アドレス領域にある場合に、そのポート番号をdestフィールドに埋め込むようにする。
【0076】
上記実施例では、転送先識別レジスタdrは2つのポートに対応する分だけしか情報を保持できないため、接続可能なメモリユニットは最大2つである。接続可能なメモリユニットの数を増やすためには転送先識別レジスタdrにそのポート数分だけの情報を保持できるようにすればよいことは明白である。
【0077】
上記実施例では、I/O空間はポート対応に固定アドレスが定められている。しかし、上記実施例でポート対応にアドレスが固定されている必要があるのはユニット識別レジスタidrおよび転送先識別レジスタdrだけであり、これらのレジスタは固定アドレスに割り付け、その他のI/Oレジスタはメモリ空間と同様にそのI/O空間の領域の最小アドレスと最大アドレスとポート番号を保持する、転送先識別レジスタdrと同等の機能を有する手段を持つこともできる。
【0078】
次に図1を用いて第2の実施例について、図2の第1の実施例との相違点を中心に説明する。
【0079】
第1の実施例はアドレススヌープを実現する方法としてブロードキャストを用いる例を示した。第2の実施例はマルチキャストを用いアドレススヌープに参加する必要のあるユニットに対してだけコヒーレントリードトランザクションを転送するようにした例である。
【0080】
第2の実施例では、システム接続部100は本発明の特徴の一つであるマルチキャストレジスタをmcrA180、mcrB190の2つ有しており、スイッチ制御回路110から160がマルチキャストレジスタmcrを参照してスイッチを制御する信号を生成する点が第1の実施例と異なっている。
【0081】
マルチキャストレジスタmcrは第1の実施例の転送先識別レジスタdrと同様にユニット識別レジスタidrの情報を元に設定されるレジスタであり、ポート対応にマルチキャスト対象が接続されているポートであれば1、そうでないときに0の値を保持する。
【0082】
図8はアドレススヌープを実現するためマルチキャスト対象としてプロセッサユニットが接続されているポート3、ポート4およびポート6を選択しマルチキャストレジスタmcrA180に、マルチキャスト対象として入出力ユニット70が接続されているポート1を選択しマルチキャストレジスタmcrB190に値を設定した例を示している。
【0083】
図9は第2の実施例のシステム接続部100のスイッチswi−jの回路を示している。第1の実施例ではスイッチswi−jは、信号on−ijだけで制御されていたが、図9ではさらにmcA−iまたはmcB−iが1の時それぞれマルチキャストレジスタmcrAからの信号mcrA−j、mcrBからの信号mcrB−jの値によって接続するか否かが決まるように作られている。
【0084】
これによって、アドレススヌープを行なう場合であれば、mc0−iを1にすることによって3つのプロセッサユニットとdestで示されるメモリユニットに対し同時にコヒーレントリード要求を出すことができる。
【0085】
第2の実施例では図10に示されるようにシステム接続部への制御情報scctlの種類としてマルチキャストレジスタmcrA、mcrBに対応して2つのマルチキャストが追加され、コヒーレント共有ブロックリード要求またはコヒーレント排他ブロックリード要求である場合、実施例1のブロードキャストに替わりマルチキャストAが用いられる。
【0086】
マルチキャストレジスタmcrは第1の実施例の転送先識別レジスタdrと同様の手順で、ユニット識別レジスタidrの情報を元にI/O空間に対するユニキャスト転送だけで設定できることは明白であり、設定後にマルチキャスト転送を用いるようにする。
【0087】
マルチキャストレジスタmcrはそのレジスタを用いるマルチキャスト転送要求が発行される直前に設定されていればよい。このため、初期設定で固定値に設定するだけではなくソフトウエアでマルチキャストレジスタmcrの内容を書き換えることによって、マルチキャスト転送先を変更することもできる。
【0088】
上記実施例ではマルチキャストレジスタmcrはシステム接続部100に設けられているが、マルチキャストレジスタmcrを各ユニットに設け、システム接続部100への制御情報scctlにその内容を含めることもできる。
【0089】
上記実施例ではポート毎にマルチキャストレジスタmcrの1ビットを対応させているが、システム接続部100のポートを例えばポート1と2、3と4、5と6の3グループに分け、1グループ内では同じ種類のユニットだけを接続するようにし、グループ対応にマルチキャストレジスタmcrのビットを対応させることもできる。これによってマルチキャストレジスタmcrを有するハードウエアの増加を少なくするこ
とができる。
【0090】
【発明の効果】
多数台のプロセッサを接続することができる。
【図面の簡単な説明】
【図1】本発明の実施例ブロック図。
【図2】本発明の実施例ブロック図。
【図3】ユニット識別法を示す表図。
【図4】デ−タ転送の種類を示す表図。
【図5】アドレス割当てを示す表図。
【図6】転送先識別レジスタを示す表図。
【図7】制御情報を示す表図。
【図8】レジスタを示す表図。
【図9】 スイッチの回路図。
【図10】接続部制御情報を示す表図。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a multiprocessor system configured using a plurality of processors to achieve high performance.
[0002]
[Prior art]
A method of realizing a shared memory multiprocessor system by combining a plurality of processor units, memory units, and input / output units using a single bus is well known.
[0003]
However, when connecting using a single bus, there is only one path for transferring data between connected units, so if you increase the number of processors to improve system performance, the bus becomes a bottleneck. Become.
[0004]
In order to solve this problem, a method using a bus for address transfer and using a crossbar switch for data transfer is described by Nicholson in "COMC 95 Proceedings of 1995" pages 102-109, "RISC system / 6000 SMP system" (James O.). Nicholson, “The RISC System / 6000 SMP System,” COMPCON 95 Proceedings, March 1995, pp. 102-109).
[0005]
[Problems to be solved by the invention]
However, although the above-described conventional method also eliminates the bus neck in terms of throughput, the number of processors cannot be increased so much at high frequencies due to electrical restrictions in transmitting signals.
[0006]
In order to solve this, the address can also be solved by connecting each unit and the crossbar switch in a one-to-one manner through the crossbar switch.
[0007]
At this time, in order to correctly operate the software operating on the bus connection, it is necessary to maintain the data coherency between the cache memory and the main memory even with the connection using the crossbar switch. Furthermore, in order to connect a processor made on the premise of bus connection via a crossbar switch, it is necessary to realize a general address snoop method on the crossbar switch as a method of maintaining data coherency by the bus method. .
[0008]
This address snoop is a method for maintaining the data coherency between the cache memory and the main memory, and there is no need to transfer the address to a memory unit having no data to be transferred or an input / output unit having no cache memory. For this reason, the transfer of the address necessary for maintaining the data coherency need only be performed to the unit that needs to participate in the address snoop, and means for performing the multicast that is the one-to-many data transfer. An efficient address snoop method can be realized by providing the system connection unit. A first problem of the present invention is to eliminate the bus neck by connecting processors that are made on the assumption that they are connected by a bus through a crossbar switch, and to increase the number of connectable processors. The purpose is to improve the performance of the processor system.
[0009]
A second object of the present invention is to enable operation in a system connected via a crossbar switch without changing software operating on a bus.
[0010]
The problem to be solved by the present invention is to achieve the above two problems at the same time, and the present invention also aims to solve the following two problems.
[0011]
A third object of the present invention is to provide an efficient address snoop system in a multiprocessor system connected by a crossbar switch.
[0012]
A fourth object of the present invention is to provide a multicast system that allows any unit of a processor unit, a memory unit, and an input / output unit to be connected to a port of a crossbar switch, thereby enabling a flexible system configuration.
[0013]
[Means for Solving the Problems]
The first object of the present invention is achieved by eliminating the conventional address bus introduced by the above-mentioned Nicholson, connecting the address to each unit and the crossbar switch on a one-to-one basis. .
[0014]
The second problem of the present invention is to provide a means for broadcasting addresses to all units connected to the crossbar switch in order to enable the address snoop method even in the crossbar switch, in order to maintain data coherency. In the case of the necessary address transfer, this is accomplished by controlling the system connection to transfer the address to all units.
[0015]
The third object of the present invention is to provide a means for multicasting the transfer of addresses necessary for maintaining data coherency only to units that need to participate in address snooping in the system connection unit, thereby maintaining data coherency. In the case of address forwarding necessary to do this, it is accomplished by controlling the system connection to forward addresses only to units that need to participate in address snoop.
[0016]
A fourth problem of the present invention is to provide means for holding information indicating whether or not a unit connected to each port is a multicast target unit in the crossbar switch, and determine a transfer destination port based on this information. This is achieved by providing a means and setting a multicast destination in a means for determining a transfer destination port based on information indicating whether or not the unit is a multicast target unit, and then performing the multicast.
[0017]
By connecting each unit using a crossbar switch, multiple data transfers can be executed at the same time if the transfer destination ports are different. This prevents a decrease in performance due to bus contention by increasing the number of processors. Can do.
[0018]
Also, by connecting each unit and the crossbar switch on a one-to-one basis, it is possible to obtain better electrical characteristics than the bus, and as a result, the number of connectable processors can be increased.
And become possible.
[0019]
By broadcasting the transfer of addresses necessary for maintaining data coherency, the address snooping function of an existing processor can be used, and a method for maintaining low-cost and efficient data coherency can be realized.
[0020]
Eliminate unnecessary data transfer and improve effective data transfer throughput by transferring coherent transaction addresses only to units connected to each port that need to participate in address snoop Can be made.
[0021]
Also, by holding information indicating whether or not the unit is a multicast target unit corresponding to the port, it becomes possible to connect an arbitrary unit to an arbitrary port, and a flexible system configuration is possible.
[0022]
The multicast method of the present invention has been described by taking address snoop as an example, but it can be generally used when data is transferred to a plurality of ports.
[0023]
For example, if you want to transfer a reset command to all I / O devices, a means is provided to hold whether the I / O unit is connected to the port as information indicating whether it is a multicast target or not. Just do it.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, it demonstrates in detail using the Example of this invention.
[0025]
FIG. 2 shows a first embodiment of the present invention in which three processor units 20, 30, 40, two memory units 50, 60 and one input / output unit 70 are connected by a system connection unit 100 having six ports. .
[0026]
The input / output unit 70 is connected to input / output devices such as a disk device 75, a display (not shown), and a keyboard (not shown).
[0027]
Since each unit has the same function except for the interface unit between the corresponding unit in the normal bus-connected system and the system connection unit, in this embodiment, the difference between the bus-connected system and this embodiment is as follows. The details will be described in detail, and only the parts necessary for the explanation will be explained for the same points.
[0028]
The processor unit 30 is connected to the system connection unit 100 via the port 4 and includes a unit identification register idr31, a connection information generation circuit 33, and a transfer destination identification register dr32, which are features of the present invention. Details of these circuits will be described later.
[0029]
Similarly, other units are also connected to the system connection unit 100 via ports, and each has a unit identification register idr, a connection information generation circuit, and a transfer destination identification register dr.
[0030]
The system connection unit 100 includes six switch control circuits 110 to 160 and 36 switches sw1-1 to sw6-6 that connect input ports and output ports.
[0031]
The switch control circuit 140 is provided for the input of the port 4, controls the opening and closing of the six switches sw4-1 to sw4-6, and the input bus 14 of the port 4 is connected to the output of the port 1 from the output bus 21 of the port 1, respectively. Connect to bus 26.
[0032]
Similarly, other switch control circuits are also provided corresponding to the input of each port. If i is a natural number from 1 to 6, the switch control circuit of port i controls the opening and closing of the switches swi-1 to swi-6, The input bus of port i is connected to the output bus of any port.
[0033]
In the case of unicast, any input port is connected to the input port by closing one of the switches, and in the case of broadcast, the input port is connected to all the output ports simultaneously by closing all the switches. Control.
[0034]
In this switch control, the switch control circuit arbitrates the right to connect the output ports so that a plurality of input ports are not connected to the same output port. This output port connection right arbitration circuit is the same as the bus right arbitration circuit of a normal bus-connected system, and its description is omitted in this embodiment.
[0035]
FIG. 3 shows an example of a unit identification method based on the contents of the register idr for identifying a unit which is a feature of the present invention of each unit. It is assumed that each unit holds the information shown in FIG. 3 in the unit identification register idr of each unit.
[0036]
FIG. 4 shows the type of data transfer trtyp generated by each unit of this embodiment. In this embodiment, the data transfer type trtyp is (1) non-coherent block read request, (2) non-coherent block read response, (3) non-coherent block write request, (4) non-coherent word read request, and (5) non-coherent. There are eight types: coherent word read response, (6) non-coherent word write request, (7) coherent shared block read request, and (8) coherent exclusive block read request.
[0037]
FIG. 5 shows address space allocation in the system of this embodiment. In this embodiment, an area from address 0 to less than address A is provided in the main memory provided in the memory unit 0, an area from address A to less than address B is provided in the main memory provided in the memory unit 1, and an area greater than address B is provided. Allocated as I / O space for memory mapped control registers and the like.
[0038]
In this embodiment, the address of the I / O space to which the control register of each unit is mapped is determined to correspond to the port, and the area from the B address to the C address is the unit of the port 1, the area from the C address to the D address Is port 2 unit, the area from D address to less than E address is port 3 unit, the area from E address to less than F address is port 4 unit, the area from F address to less than G address is port 5 unit, G address The area below the MAX address is assigned to the port 6 unit.
[0039]
FIG. 6 shows the value of the transfer destination identification register dr in this embodiment. In this embodiment, in order to identify the memory unit of which port the memory area of the address space is provided, two port numbers can be held as the transfer destination identification register dr.
[0040]
The value of the transfer destination identification register dr is set based on the information of the unit identification register idr, which is a feature of the present invention. This operation will be described in detail later.
[0041]
The data transfer type trtyp and the address space allocation method are the same as the data transfer type and address space allocation method used in the bus-connected system, and are not unique to the present invention.
[0042]
In the present invention, the type of data transfer, the address of the data to be transferred, and the transfer destination identification register dr that is a feature of the present invention are used, and the connection information generation circuit that is a feature of the present invention of each unit determines the transfer destination. A data transfer request is issued to the system connection unit together with the five types of control information scctl shown in FIG.
[0043]
Next, the data transfer type trtyp requested from each unit of this embodiment will be described.
[0044]
In a multiprocessor system, when data is read out, it is necessary to read out the latest data that should originally exist in the main memory at the time of reading, and in order to check whether another processor unit holds the latest data. Reading is performed by a coherent shared block read request or a coherent exclusive block read request.
[0045]
When writing, in order to prevent other processor units from holding old data, the data is read once by a coherent exclusive read request.
[0046]
When a read request is made, it is necessary to transmit the address of the data to another processor unit and check the coherency. However, when the read data is transferred, the coherency check is not necessary, and the read response is a non-coherent block. A read response or a non-coherent word read response is used.
[0047]
When the processor unit rewrites certain data and stores it in the cache memory, when the cache memory is replaced or when a coherent read request for the data from another processor unit is detected, the rewritten data must be transferred. At this time, data is transferred by a non-coherent block write request or a non-coherent block read response, respectively.
[0048]
Not all data is held in the cache memory. For example, when a non-cache area is determined, the processor unit reads data with a non-coherent block read request. In addition, since data (word data) that is not read / written in units of blocks like the I / O register is not cached, the processor unit uses a non-coherent word read request or a non-coherent word write request.
[0049]
The data transfer required from each unit differs in the cycle required for the transfer depending on the type trtyp. The number of cycles required for transfer is necessary as control information for the system connection unit. For the sake of explanation, in this embodiment, the read request is one cycle for transferring an address, the block write request is five cycles, the block read response is four cycles, It is assumed that the write request is transferred in 2 cycles and the word read response is transferred in 1 cycle.
[0050]
FIG. 7 shows control information scctl to the system connection unit generated by the connection information generation circuit from the data transfer type trtyp and the address of the transferred data. Since the data transfer type trtyp itself is sent as data to the transfer destination unit, the control information scctl to the system connection unit is information indicating whether it is unicast or broadcast, the number of cycles required for transfer, the port number of the transfer source and the transfer Only the previous port number is required.
[0051]
Based on the data transfer type trtyp, the connection information generation circuit generates information as to whether it is unicast or broadcast and the number of cycles required for transfer as follows. If it is a non-coherent block read request, one cycle of unicast.
[0052]
4 cycles of unicast for non-coherent block read response.
[0053]
5 cycles of unicast for non-coherent block write requests.
[0054]
One cycle of unicast for non-coherent word read request.
[0055]
1 cycle unicast for non-coherent word read response.
[0056]
If it is a non-coherent word write request, two cycles of unicast.
[0057]
1 cycle broadcast if it is a coherent shared block read request or a coherent exclusive block read request.
[0058]
The connection information generation circuit embeds the port number connected to itself as the transfer source port number in the src field of the control information scctl.
[0059]
The connection information generation circuit generates a transfer destination port number based on the data transfer type trtyp, the address of the data, and the transfer destination identification register dr, and embeds it in the dest field of the control information scctl.
[0060]
When the requested data transfer is a response to the read request, the port number of the request source included in the src field of the control information scctl issued to the system connection unit at the time of the read request is embedded in the dest field.
[0061]
If the requested data transfer is a write request or a read request, regardless of whether it is unicast or broadcast, if the address is in the memory space, as shown in FIG. 6, if it is an area from address 0 to address A If 1 is the value of dr0, and if the area is greater than or equal to the A address and less than the B address, then the dr1 value of 4 is embedded in the dest field as the transfer destination port number. If the address is in the I / O space, as shown in FIG. 5, it is 1 if it is an area of B address or more and less than C address, 2 if it is an area of C address or more and less than D address, and D address or more and less than E address. 3 for an area of E, 4 for an area of E or more and less than F, 5 for an area of F or more and less than G, and 6 for an area of G or more and less than MAX. Embed in the dest field as a number.
[0062]
As is clear from the above description, the port number of the transfer destination is determined before setting the value in the transfer destination identification register dr, and data transfer can be performed via the system connection unit. It is only unicast for a fixed I / O space.
[0063]
For this reason, in order to operate the software operating in the bus-connected system on the multiprocessor system of the present invention without changing, the unicast transfer to the I / O space is performed in the transfer destination identification register dr. There is a procedure for setting a value correctly, and after setting a value correctly in the transfer destination identification register dr, it is necessary to use unicast or broadcast transfer for the memory space. Next, this procedure will be described.
[0064]
In this embodiment, the unit identification register idr and the transfer destination identification register dr possessed by each unit are I / O registers mapped to the I / O space of the connected port. The offset address in the space is determined in common.
[0065]
Each processor unit has a ROM that holds a boot program executed immediately after reset, and the processor immediately after reset initializes the cache memory in the processor unit itself according to the boot program. At this initialization stage, no data transfer request is issued to the system connection unit.
[0066]
In the present embodiment, it is assumed that only one main processor unit is selected from a plurality of processor units in the initialization process. For example, a part of the boot program is made different from the boot program of other processor units only for the processor unit that is the main processor unit. Alternatively, if a signal indicating whether or not the processor unit is corresponding to the port is provided, it is easy to provide a signal indicating whether or not the processor unit has the smallest port number from the system connection unit 100.
[0067]
In addition, the system connection unit 100 immediately after the reset is waiting for a data transfer request from each port and is in a state of doing nothing.
[0068]
If the processor unit that has completed initialization in the processor unit is not the main processor unit, it enters a state of waiting for an interrupt from the main processor unit. The main processor unit that has completed initialization in the processor unit reads the unit identification register idr of the unit connected to each port in order of the port number by unicast to the I / O space, and to which port the memory unit is connected Recognize
[0069]
Thereafter, the port number to which the memory unit is connected is set in the transfer destination identification register dr of each unit by unicast to the I / O space.
[0070]
According to the above procedure, a value can be correctly set in the transfer destination identification register dr using only unicast transfer to the I / O space.
[0071]
In the above embodiment, the I / O space is allocated to the address space corresponding to the port. For this reason, a method of setting a value in the transfer destination identification register dr by unicast with respect to the I / O space is shown. However, in the same way as in a bus-connected system, each unit has a mechanism for discarding whether to access the I / O register of the unit by an address, so that I / O space can be replaced with unicast. It is also possible to set a value in the transfer destination identification register dr using only the broadcast for the / O space.
[0072]
In the above embodiment, only one type of memory unit is assumed to simplify the description. For this reason, based on the fixed address A determined by the memory capacity of one memory unit, the memory space is also determined to be an area below address A and an area after address A.
[0073]
Obviously, when memory units having different memory capacities may be connected, the following two means may be provided.
[0074]
(1) The transfer destination identification register dr stores not only the port number but also the minimum address and the maximum address of the address area to which the memory unit is allocated.
[0075]
(2) The connection information generation circuit compares the address of the data to be transferred with the minimum address and the maximum address, and if it is in the address area, the port number is embedded in the dest field.
[0076]
In the above embodiment, since the transfer destination identification register dr can hold information corresponding to only two ports, a maximum of two memory units can be connected. Obviously, in order to increase the number of connectable memory units, the transfer destination identification register dr need only hold information corresponding to the number of ports.
[0077]
In the above embodiment, a fixed address is defined for each port in the I / O space. However, in the above embodiment, only the unit identification register idr and the transfer destination identification register dr need to be fixed in correspondence with the port. These registers are assigned to fixed addresses, and other I / O registers are Similarly to the memory space, it is possible to have means having the same function as the transfer destination identification register dr, which holds the minimum address, the maximum address, and the port number of the area of the I / O space.
[0078]
Next, the second embodiment will be described with reference to FIG. 1, focusing on the differences from the first embodiment of FIG.
[0079]
The first embodiment shows an example in which broadcast is used as a method for realizing address snoop. The second embodiment is an example in which a coherent read transaction is transferred only to a unit that needs to participate in address snoop using multicast.
[0080]
In the second embodiment, the system connection unit 100 has two multicast registers, mcrA180 and mcrB190, which are one of the features of the present invention, and the switch control circuits 110 to 160 switch the switch by referring to the multicast register mcr. The point which produces | generates the signal which controls is different from a 1st Example.
[0081]
The multicast register mcr is a register that is set based on the information of the unit identification register idr, like the transfer destination identification register dr of the first embodiment, and is 1 if the multicast target is connected to the port. Otherwise it holds a value of 0.
[0082]
In FIG. 8, port 3, port 4 and port 6 to which the processor unit is connected as a multicast target are selected to realize address snoop, and port 1 to which the input / output unit 70 is connected as a multicast target is selected in the multicast register mcrA180. An example is shown in which a value is selected and set in the multicast register mcrB190.
[0083]
FIG. 9 shows a circuit of the switch swi-j of the system connection unit 100 of the second embodiment. In the first embodiment, the switch swi-j is controlled only by the signal on-ij, but in FIG. 9, when the mcA-i or mcB-i is 1, the signal mcrA-j from the multicast register mcrA, respectively. Whether or not to connect is determined by the value of the signal mcrB-j from mcrB.
[0084]
Accordingly, when address snooping is performed, by setting mc0-i to 1, a coherent read request can be issued simultaneously to the three processor units and the memory unit indicated by dest.
[0085]
In the second embodiment, as shown in FIG. 10, two multicasts are added corresponding to the multicast registers mcrA and mcrB as types of control information scctl to the system connection unit, and a coherent shared block read request or a coherent exclusive block read If the request is a request, multicast A is used instead of the broadcast in the first embodiment.
[0086]
It is obvious that the multicast register mcr can be set only by unicast transfer to the I / O space based on the information of the unit identification register idr in the same procedure as the transfer destination identification register dr of the first embodiment. Use forwarding.
[0087]
The multicast register mcr may be set immediately before a multicast transfer request using the register is issued. For this reason, the multicast transfer destination can be changed not only by setting a fixed value in the initial setting but also by rewriting the contents of the multicast register mcr by software.
[0088]
In the above embodiment, the multicast register mcr is provided in the system connection unit 100. However, the multicast register mcr may be provided in each unit, and the contents thereof may be included in the control information scctl for the system connection unit 100.
[0089]
In the above embodiment, one bit of the multicast register mcr is associated with each port. However, the ports of the system connection unit 100 are divided into, for example, three groups of ports 1, 2, 3, 4, 5, and 6. It is also possible to connect only units of the same type and associate the bits of the multicast register mcr with the group correspondence. This reduces the increase in hardware having the multicast register mcr.
You can.
[0090]
【The invention's effect】
Multiple processors can be connected.
[Brief description of the drawings]
FIG. 1 is a block diagram of an embodiment of the present invention.
FIG. 2 is a block diagram of an embodiment of the present invention.
FIG. 3 is a table showing a unit identification method.
FIG. 4 is a table showing types of data transfer.
FIG. 5 is a table showing address assignment.
FIG. 6 is a table showing a transfer destination identification register.
FIG. 7 is a table showing control information.
FIG. 8 is a table showing registers.
FIG. 9 is a circuit diagram of a switch.
FIG. 10 is a table showing connection unit control information.

Claims (8)

少なくとも1つ以上のプロセッサを有するプロセッサユニット、メインメモリの一部を有するメモリユニット、入出力装置を接続する入出力ユニットおよびシステム接続部からなるマルチプロセッサシステムであり、該システム接続部はポート番号によって識別される複数のポートを持ち、該1つのポートには前記プロセッサユニット、メモリユニット、入出力ユニットのいずれか1つを接続することが可能であり、前記プロセッサユニット、メモリユニット、入出力ユニットを少なくともそれぞれ1つ以上該ポートに接続することによってシステムを構成するマルチプロセッサシステムであり、該システム接続部は任意のポート間で1対1にデータを転送する(以下ユニキャストと呼ぶ)機構を有し、さらに、1つのポートから全てのポートに対してデータを転送する(以下ブロードキャストと呼ぶ)機構を有し、転送先ポートが異なる複数のユニキャストを同時に実行する機構を有するマルチプロセッサシステムにおいて、該システム接続部の各ポートに接続されているユニットを識別する第1の手段を有し、該第1の手段によって得られた情報とデータ転送の種類あるいは/および転送されるデータのアドレスに基づいてユニキャスト機構でデータ転送をするかブロードキャスト機構でデータ転送をするかを決定する第2の手段およびユニキャスト機構使用時のデータの転送先ポートを決定するための情報を保持する第3の手段を有することを特徴とするマルチプロセッサシステム。A multiprocessor system comprising a processor unit having at least one processor, a memory unit having a part of a main memory, an input / output unit for connecting an input / output device, and a system connection, the system connection being determined by a port number A plurality of ports are identified, and any one of the processor unit, the memory unit, and the input / output unit can be connected to the one port, and the processor unit, the memory unit, and the input / output unit are connected to the one port. It is a multiprocessor system that constitutes a system by connecting at least one or more ports to each other, and the system connection section has a mechanism for transferring data one-to-one between arbitrary ports (hereinafter referred to as unicast). And all ports from one port In a multiprocessor system having a mechanism for transferring data (hereinafter referred to as “broadcast”) and having a mechanism for simultaneously executing a plurality of unicasts having different transfer destination ports, the system connection unit is connected to each port. having a first means for identifying the units in either the data transfer by said unicast mechanism based on the type or / and the address of the data to be transferred in the information and data transfer obtained by the first means multi characterized in that it comprises a third means for holding the information for determining the second means and the unicast mechanism data when using the destination port to determine the data transfer by said broadcast mechanism Processor system. 前記第1項のマルチプロセッサシステムであり、さらに、該システム接続部は任意のポート間から複数のポートに対し1対多にデータを転送する(以下マルチキャストと呼ぶ)機構を有し、転送先ポートが異なる複数のユニキャスト、マルチキャストを同時に実行する機構を有するマルチプロセッサシステムにおいて、さらに、該システム接続部の各ポートに接続されているユニットを識別する該第1の手段によって得られた情報とデータ転送の種別あるいは/およびデータ転送先アドレスに基づいてマルチキャスト機構使用時のデータの転送先ポートを決定するための情報を保持する第4の手段を有することを特徴とするマルチプロセッサシステム。2. The multiprocessor system according to claim 1, wherein the system connection unit further includes a mechanism for transferring data in a one-to-many manner (hereinafter referred to as multicast) from any port to a plurality of ports, and a transfer destination port. Information and data obtained by the first means for identifying a unit connected to each port of the system connection unit in a multiprocessor system having a mechanism for simultaneously executing a plurality of unicasts and multicasts having different multiprocessor system, comprising a fourth means for holding the information for determining the destination port of the data when using the multicast mechanism based on the type or / and the data transfer destination address of the transfer. 前記第1の手段が各ユニットに属している前記第2項のマルチプロセッサシステムにおいて、前記ユニキャスト機構を用いて第1の手段を読み出し、接続されているユニットを識別し、次に、該識別情報に基づいて、ユニキャスト機構を用いて前記第3および第4の手段を設定し、該第3および第4の手段の設定後、前記ブロードキャスト機構あるいは前記マルチキャスト機構を用いてデータ転送を開始することを特徴とするデータ転送方法 In the first means is a multiprocessor system of the second term belonging to each unit, read the first means using the unicast mechanism to identify the unit being connected, then the based on the identification information, by using the unicast mechanism to set said third and fourth means, after setting the third and fourth means, the data transfer using the broadcast mechanism or the multicast mechanism A data transfer method characterized by starting. 前記第1の手段が各ユニットに属している前記第2項のマルチプロセッサシステムであって、各ユニットがそれぞれ、ブロードキャストされた読み出し/書き込み要求のアドレスが、そのユニットに属する資源に割り当てられたものか否かを判別し、前者の場合要求された読み出し/書き込みを行ない、後者の場合は読み出し/書き込み要求を無視する機構を有するマルチプロセッサシステムにおいて、まず、前記ブロードキャスト機構を用いて第1の手段を読み出し、接続されているユニットを識別し、次に、該識別情報に基づいて、ブロードキャスト機構を用いて前記第3および第4の手段を設定し、該第3および第4の手段の設定後、前記ユニキャスト機構あるいは前記マルチキャスト機構を用いてデータ転送を開始することを特徴とするデータ転送方法 The multiprocessor system according to item 2, wherein the first means belongs to each unit , and each unit is assigned a broadcast read / write request address to a resource belonging to the unit. discriminates whether or not from, performs read / write requested the former case, in the latter case in a multiprocessor system having a mechanism to ignore the read / write request, first, the first using the broadcast mechanism reading means, to identify the unit being connected, then, based on the identification information, and setting the third and fourth means using the broadcast mechanism, the third and fourth means after setting, to initiate a data transfer using the unicast mechanism or the multicast mechanism Laid Data transfer method to be. 前記第2項のマルチプロセッサシステムにおいて、前記第4の手段を各ユニットに持つことを特徴とするマルチプロセッサシステム。4. The multiprocessor system according to claim 2 , wherein each unit has the fourth means. 前記第2項のマルチプロセッサシステムにおいて、前記第4の手段を該システム接続部に持つことを特徴とするマルチプロセッサシステム。4. The multiprocessor system according to claim 2 , wherein the system connection unit has the fourth means. 前記第2項のマルチプロセッサシステムであり、前記第4の手段が保持する1ビットの情報が1つのポートに対応しており、第4の手段の保持する情報によって指定されたポート対しデータ転送を行なうマルチキャスト機構を有することを特徴とするマルチプロセッサシステム。Wherein a second term multiprocessor system, said fourth means corresponds to 1 bit of information is one port for holding, the fourth port against the data transfer specified by the information held by the means A multiprocessor system having a multicast mechanism for performing 前記第2項のマルチプロセッサシステムであり、前記第4の手段が保持する1ビットの情報が複数のポートをまとめた1つのグループに対応しており、第4の手段の保持する情報によって指定された該グループに属する全てのポート対しデータ転送を行なうマルチキャスト機構を有することを特徴とするマルチプロセッサシステム。Designated by the a second term multiprocessor system, the 1-bit information the fourth means is held corresponds to one group that summarizes the plurality of ports, information held by the said fourth means A multiprocessor system comprising a multicast mechanism for transferring data to all ports belonging to the group.
JP29647395A 1995-11-15 1995-11-15 Multiprocessor system Expired - Fee Related JP3661249B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP29647395A JP3661249B2 (en) 1995-11-15 1995-11-15 Multiprocessor system
US08/747,344 US6011791A (en) 1995-11-15 1996-11-12 Multi-processor system and its network
US09/456,383 US6728258B1 (en) 1995-11-15 1999-12-08 Multi-processor system and its network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29647395A JP3661249B2 (en) 1995-11-15 1995-11-15 Multiprocessor system

Publications (2)

Publication Number Publication Date
JPH09138783A JPH09138783A (en) 1997-05-27
JP3661249B2 true JP3661249B2 (en) 2005-06-15

Family

ID=17834015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29647395A Expired - Fee Related JP3661249B2 (en) 1995-11-15 1995-11-15 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP3661249B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328314B2 (en) * 2002-06-19 2008-02-05 Alcatel-Lucent Canada Inc. Multiprocessor computing device having shared program memory
JP4956900B2 (en) 2005-03-07 2012-06-20 富士通株式会社 Address snoop method and multiprocessor system
EP2344947B1 (en) * 2009-02-17 2012-07-04 Hitachi, Ltd. Storage controller and method of controlling storage controller

Also Published As

Publication number Publication date
JPH09138783A (en) 1997-05-27

Similar Documents

Publication Publication Date Title
US6513091B1 (en) Data routing using status-response signals
US6874053B2 (en) Shared memory multiprocessor performing cache coherence control and node controller therefor
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
US7093079B2 (en) Snoop filter bypass
US7881321B2 (en) Multiprocessor node controller circuit and method
US6581130B1 (en) Dynamic remapping of address registers for address translation between multiple busses
US9037807B2 (en) Processor arrangement on a chip including data processing, memory, and interface elements
KR100324975B1 (en) Non-uniform memory access(numa) data processing system that buffers potential third node transactions to decrease communication latency
US6675253B1 (en) Dynamic routing of data across multiple data paths from a source controller to a destination controller
US5136500A (en) Multiple shared memory arrangement wherein multiple processors individually and concurrently access any one of plural memories
WO1999016200A2 (en) Intelligent data bus interface using multi-port memory
JP2007109040A (en) Information processing unit, information processing system, communication relay unit, and communication control method
JP2008310832A (en) Apparatus and method for distributing signal from high level data link controller to a plurality of digital signal processor cores
US11730325B2 (en) Dual mode interconnect
JP3661249B2 (en) Multiprocessor system
EP1701267B1 (en) Address snoop method and multi-processor system
US6516343B1 (en) Computer system and method for enhancing memory-to-memory copy transactions by utilizing multiple system control units
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
US8688890B2 (en) Bit ordering for communicating an address on a serial fabric
CN1318991C (en) Data transfer unit with support for multiple coherency granules
KR100367084B1 (en) DMA controller for the high speed image processor at real time
JP3570877B2 (en) Information processing equipment
US20250013584A1 (en) Method for interfacing a first data reading/ writing unit with a second data reading/writing unit and interface modules thereof
JP3466728B2 (en) Information processing system and method
JP3211694B2 (en) Multiprocessor connection method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050314

LAPS Cancellation because of no payment of annual fees