JPS63501663A - multiprocessor communication device - Google Patents
multiprocessor communication deviceInfo
- Publication number
- JPS63501663A JPS63501663A JP61505265A JP50526586A JPS63501663A JP S63501663 A JPS63501663 A JP S63501663A JP 61505265 A JP61505265 A JP 61505265A JP 50526586 A JP50526586 A JP 50526586A JP S63501663 A JPS63501663 A JP S63501663A
- Authority
- JP
- Japan
- Prior art keywords
- port
- message
- processor
- communication
- messages
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/006—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。 (57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】 本発明は、コンピュータシステム内で使用するための特殊目的の処理ユニットの 分野、特にマルチコンピュータ・データ処理システム内の個々のコンピュータ間 の通信のための通信プロセッサに関するものである。[Detailed description of the invention] The present invention provides a special purpose processing unit for use within a computer system. field, especially between individual computers in a multicomputer data processing system The present invention relates to a communication processor for communication.
7オン・ノイマンの基本的コンピュータ・アーキテクチャの改良について数多く の試みがなされてきた。7オン・ノイマンの設計は、メモリに結合された中央処 理ユニットから成るものである。この中央処理ユニットは、メモリに記憶された プログラムにより指定される種々の計算を実行する役目をもっている。これらの 計算に使われるデータもまたそのメモリに記憶されている。このメモリは複数個 の記憶スロットから成立っており、これらはワードと呼ばれる。中央処理ユニッ ト自体の記憶容量は極めて小さい。一般的には、中央処理ユニットはメモリから 次の実行する命令を取出し、次に中央処理ユニットにまだ入っていない必要なデ ータを取出し、その問題の命令を実行し、そしてその結果をメモリに記憶し戻す 。7 on Neumann's basic computer architecture improvements. Attempts have been made. 7 on Neumann's design consists of a central processing unit coupled to memory. It consists of a management unit. This central processing unit stores It has the role of executing various calculations specified by the program. these The data used for calculations is also stored in that memory. This memory is multiple It consists of memory slots, which are called words. central processing unit The storage capacity of the card itself is extremely small. Typically, the central processing unit Fetches the next instruction to be executed and then retrieves any necessary data that is not yet in the central processing unit. retrieve the data, execute the instruction in question, and store the result back in memory .
基本的なフォン・ノイマンのシステムは、中央処理ユニットのスピードで、シス テムのスピードが制限されている。The basic von Neumann system uses the speed of a central processing unit to Temp speed is limited.
基本的な7オン・ノイマン設計のスピード限界に対する従来の一つの解決法は、 多数の処理ユニットを同じメモリ・ユニットに接続することである。その夫々の 処理ユニットは、メモリにそれら処理ユニツ、トをリンクする共通バスに対し接 続されている。夫々の処理ユニットは他のユニットから独立してランをする。メ モリをアクセスするために同時にバスをコントロールしようとする二つの処理ユ ニットの間の衝突を解決するために、ある形の調停が用いられる。システムによ って実行されるべきプログラムは、多数の副プログラムに分解され、その各々が 処理ユニットの一つにより実行される。この同時処理の形式によるシステムのス ピード改善能力は、メモリを夫々の処理ユニットにリンクする共通バスの使用が 必要なことで制限される。もし、ある一つの処理ユニットがこれを10クロツク ・サイクルの間ビジーに保持するのに必要な命令及びデータを得るためにメモリ へのアクセスを1クロツク・サイクルの間必要だとすれば、10個の処理ユニッ トしかバスに生産的に接続させられない。One traditional solution to the speed limit of the basic 7-on Neumann design is Connecting multiple processing units to the same memory unit. their respective Processing units are connected to a common bus that links them to memory. It is continued. Each processing unit runs independently from the other units. Mail Two processing units trying to control the bus at the same time to access the Some form of arbitration is used to resolve conflicts between knits. The system A program to be executed is decomposed into a number of subprograms, each of which Executed by one of the processing units. This form of concurrency The ability to improve speed is due to the use of a common bus linking memory to each processing unit. limited by what is necessary. If one processing unit processes this for 10 clocks, memory to obtain instructions and data needed to keep busy for a cycle If access is required for one clock cycle, 10 processing units are required. can only be productively connected to the bus.
それら個々の処理ユニットの内部記憶容量は極めて小さいので、メモリ・アクセ ス・サイクルの計算サイクルに対する比率は、このタイプのシステムでは極めて 大きい。The internal storage capacity of these individual processing units is extremely small, so memory access The ratio of process cycles to computation cycles is extremely high for this type of system. big.
上述のバス共用システムのスピード限界を解決する従来の一つの方法は、夫々そ れ自身のメモリを持った処理ユニットを使うことである。この設計では、各種の 処理し、そしてそれらの個々のメモリと一つの内部バスを通して通信をする。再 び、そのプログラムは個々のプロセッサによって実行される多数の副プログラム に分けられる。One conventional method to solve the speed limit of the above-mentioned shared bus system is to It uses a processing unit with its own memory. This design allows for various processing and communicating with their respective memories through one internal bus. Re The program consists of many subprograms executed by individual processors. It can be divided into
個々の処理ユニットはかなりの量のメモリを含んでいるので、その通信リンクで の通信に要する時間と、そのような通信のない計算にかかる時間との比率は、上 述のバス共用システムにおけるのと比べて極めて小さい。これは、次の例からも 分ることである。Since each individual processing unit contains a significant amount of memory, its communication links The ratio between the time required for communication and the time required for computation without such communication is This is extremely small compared to that in the shared bus system described above. This also applies from the following example It's something to understand.
メモリに記憶された単一のデータワードの使用を要求する98の命令を持つ簡単 なプログラムについて考え、ばならない第2データワードとする。そのようなデ ータワードの1000個がこのプログラムで処理されるべきであるという典型的 な状況においては、一つのワードを処理する度毎にメモリは100回アクセスさ れなければならない。このデータワードは、メモリから取出されねばならない。Simple with 98 instructions requiring the use of a single data word stored in memory Consider a program that requires a second data word. Such a de Typically 1000 data words should be processed by this program. In some situations, memory is accessed 100 times each time a word is processed. must be This data word must be retrieved from memory.
次に、プログラムの98の命令を取出さなければならないが、それにはメモリの 更に98回のアクセスが必要となる。最後に、結果を記憶させなけれなばらない 。Next, the program's 98 instructions must be retrieved, which requires memory An additional 98 accesses are required. Finally, the results must be memorized. .
あるバス共用システムでは、このプログラムをlo。In some bus-sharing systems, this program is called lo.
0個のデータワードに適用するためにメモリがアクセスされねばならない回数は 、100,000となる。もし、処理ユニットがそれ自身のメモリを持っていれ ば、通信リンクは、1000個のデータワードに加えて98の命令を一度だけ処 理ユニットに送り、そして1000個の結果のデータワードを処理ユニットから 送り戻すのに使用されることが必要なだけである。このように、この通信リンク は、共用バス・システムで100,000のアクセスを必要とした計算動作に対 して僅かに2098のアクセスで足りるのである。このことは、より多数の処理 ユニットが同じ通信リンクを共用できることになる。The number of times memory must be accessed to apply zero data words is , 100,000. If a processing unit has its own memory, For example, the communication link processes 1000 data words plus 98 instructions only once. processing unit and the 1000 resulting data words from the processing unit. It only needs to be used to send back. In this way, this communication link for a computational operation that required 100,000 accesses on a shared bus system. Therefore, only 2098 accesses are sufficient. This means that a larger number of Units will be able to share the same communication link.
しかしながら、遅かれ早かれその全ての処理ユニットをサービスする通信リンク の能力に限界がくるので、その数は勝手に多くはできない。However, sooner or later the communication link that services all of its processing units Since there is a limit to the ability of
通信リンクが限界にきたときには、もう一つのレベルの通信リンクを設置してピ ラミッド状アーキテクチャを形成しなけれなばらない。諸処理ユニットの二つ以 上のシステムは夫々“クラスタ“と呼ばれるが、これらは“スーパー通信リンク ・プロセッサ”を設けることによって組合わせられ、このスーパー通信リンク・ プロセッサは各クラスタの間でタスクを通信するのに使用され、その各クラスタ は、内部通信リンクを通して個々の処理ユニットにそれらタスクを通信する。こ の通信リンクのオーバロードに対する解決法にはいくつかの問題点がある。When a communication link reaches its limit, another level of communication link can be installed to A lamid-like architecture must be formed. Two or more of the various processing units Each of the above systems is called a “cluster”, but these are “super communication links”. This super communication link is combined by providing a Processors are used to communicate tasks between each cluster, and each cluster communicates their tasks to the individual processing units through internal communication links. child There are several problems with this solution to communication link overloading.
第1に、スーパー通信リンク・プロセッサは、少しのクラスタしか処理できない 。これは、次のことで分る。即ち、スーパー通信リンクは、クラスタ内の個々の バスの一つよりも大きな容量を有していない。この理由は、もし、より大きな容 量を持つスーパー通信リンクを作ることが可能だとしたら、その設計を夫々のク ラスタにも用いることができたはずであるからである。ここで、一つのクラスタ 内の各プロセッサが、その作業をスーパー通信リンクからだけ受取る場合を考え てみる。クラスタ内のプロセッサの数はクラスタ・バスが全容量で動作するよう に選ばれる、即ち、このバスの容量は、スーパー通信リンクから夫々のプロセッ サ用の作業を受取りそしてそれらタスクの結果をスーパー通信リンクを通してリ ターンするのに必要な通信タスクによって飽和させられるのである。しかし、こ のデータの夫々の部分はスーパー通信リンクから来なければならなかったのであ るから、スーパー通信リンクもまた、この一つのクラスタをサービスするのに要 する負荷によって飽和させられるのに違いない。このように、この場合はスーパ ー通信リンクは、ただ一つのクラスタにしかサービスできないことになる。First, the super communication link processor can handle only a few clusters. . This can be seen from the following. That is, super communication links connect individual Does not have a larger capacity than one of the buses. The reason for this is that if a larger capacity If it were possible to create a super communication link with This is because it could have been used for raster as well. Here, one cluster Consider the case where each processor in Try. The number of processors in the cluster is set such that the cluster bus operates at full capacity. That is, the capacity of this bus is chosen to Receives work for support and redirects the results of those tasks through the super communication link. It is saturated by the communication tasks required to make a turn. However, this each piece of data had to come from a super communication link. Therefore, a super communication link is also required to service this one cluster. It must be saturated by the load. In this way, super - A communication link can only service one cluster.
これは、クラスタ内の夫々のプロセッサがその作業をスーパー通信リンクからだ け受取ると仮定した結果である。This means that each processor in the cluster gets its work from a super communication link. This is the result assuming that the
従って、スーパー通信リンクが一つ以上のクラスタにサービスするためには、各 クラスタは、その内部バス上の殆んどの通信トラフィックを発生及び“消費“し なければならない。これは、そのようなピラミッド・アーキテクチャの使用を制 限する。夫々の処理ユニットにメモリを含ませたことによる大きな改良は、スー パー通信リンク・プロセッサ・レベルでの類似の改良を有していない。Therefore, in order for a super communication link to serve more than one cluster, each The cluster generates and “consumes” most of the communication traffic on its internal bus. There must be. This restricts the use of such pyramid architectures. limit The big improvement from including memory in each processing unit is It does not have similar improvements at the per communications link processor level.
この始めに述べた改良は、プログラムを夫々の処理ユニットに対し他の処理ユニ ットと共用の共通メモリ・バスを通して反復転送する必要を除いた結果であった 。一旦、個々の処理ユニットの夫々が、プログラム及び反復転送される任意のデ ータの記憶に充分なだけのメモリを持つならば、このタイプのピラミッド・アー キテクチャを使って通信リンク上の通信密度をさらに大きく改良することは不可 能である。The improvements mentioned at the outset allow programs to communicate with each processing unit to other processing units. This result eliminates the need for repeated transfers through a common memory bus shared with . Once each of the individual processing units has programmed and This type of pyramid architecture has enough memory to store the data. It is not possible to use architecture to further improve the communication density on the communication link. It is Noh.
ピラミッド・クラスタ法に固有の第2の問題は、そのシステムを拡張するとき、 新しいタイプのプロセッサ、スーパー通信リンク・プロセッサの導入が必要な事 である。VLSIの製造技術は、クラスタ内の個々の処理ユニットやメモリの構 成に使われるような高反復機能素子のコストを大幅に下げた。しかしながら、ス ーパー通信リンク・プロセッサに使用する少数のパーツのコストは極めて高くな る。追加のレベルの複雑さがまたシステム駆動に必要なソフトウェアにおいて追 加のレベルの複雑さをもたらす。このソフトウェアは、解決する問題を各クラス タに送るべき大きな部分へ分割するのを管理するだけでなく、クラスタ内の夫々 の処理ユニットに割当てられるべき小さな部分への分割をも管理しなければなら ない。A second problem inherent to the pyramid cluster method is that when extending the system, The need to introduce a new type of processor, a super communications link processor. It is. VLSI manufacturing technology is based on the structure of individual processing units and memory within a cluster. This has significantly reduced the cost of high-repetition functional elements used in production. However, The cost of the small number of parts used in a per-communications link processor is extremely high. Ru. An additional level of complexity is also added in the software required to drive the system. It introduces an additional level of complexity. This software solves each class of problems In addition to managing the splitting into larger pieces to be sent to the cluster, must also manage its division into smaller parts to be assigned to processing units. do not have.
第3に、各スーパー通信リンクは通信の潜在的隘路であることである。同じスー パー通信リンク・プロセッサに取付けられた二つのクラスタが大量の情報(メツ セージと呼ぶ)を交換しなければならない状況を考えてみる。Third, each super communication link is a potential communication bottleneck. same sue Two clusters attached to the par communication link processor handle large amounts of information (methods). Consider a situation where you need to replace a sage (called sage).
この交換は、スーパー通信リンク・プロセッサの時間を多く占有し、それにより そのスーパー通信リンク・プロセッサに取付けられた他のクラスタ間でのメツセ ージ伝送のために時間が残らないという可能性がある。この結果、それら他のク ラスタが作業出来ずアイドルとなり、システムのスループットを低下させるとい うことが起こり得る。この種の問題を避けるため、飽和していない交替のスーパ ー通信リンク・プロセッサを介してメツセージを別ルートで送る手段が必要であ る。このような別ルートを与える便利な構成を組立てるのは、このタイプのピラ ミッド・アーキテクチャでは難しい。This exchange occupies a lot of time on the super communications link processor, thereby Messages between other clusters attached to that super communication link processor. There is a possibility that there will be no time left for the page transmission. As a result, those other If the raster cannot be worked on and becomes idle, reducing the throughput of the system. things can happen. To avoid this kind of problem, use an unsaturated rotating super – Requires a means to reroute messages through a communications link processor. Ru. It is this type of pillar that assembles a convenient configuration that provides such an alternative route. This is difficult with mid-architecture.
最後に、このタイプのピラミッド・アーキテクチャは耐故障性が充分ではない。Finally, this type of pyramid architecture is not sufficiently fault tolerant.
システム中の処理ユニットの数を増加したとき、誤動作増発により一つの処理ユ ニットをラインから外さなければならないことがある。もし、問題のその処理ユ ニットがスーパー通信リンク・プロセッサであれば、それがサービスしていたク ラスタの全部をサービスから外さなければならない。When the number of processing units in a system is increased, one processing unit may be damaged due to an increase in malfunctions. Sometimes you have to take knits off the line. If the processing unit in question If the knit is a super communications link processor, the client it was servicing The entire raster must be taken out of service.
それ故に、本発明の目的は、マルチプロセッサ・システム内の処理ユニット間の 通信のための改良された通信プロセッサ及びアーキテクチャを提供することであ る。Therefore, it is an object of the present invention to To provide an improved communications processor and architecture for communications. Ru.
本発明の別の目的は、新たな通信部品を追加することなしに、任意の大形のマル チプロセッサ・システムを構築するのに使われる通信プロセッサ及び通信アーキ テクチャを提供することである。Another object of the present invention is to provide a solution to any large multipurpose device without adding new communication components. communication processors and communication architectures used to build multiprocessor systems; The goal is to provide technology.
本発明のさらに別の目的は、メツセージを隘路の回りのルートで自動的に送る通 信ネットワ「りを提供することである。Yet another object of the invention is to automatically route messages around bottlenecks. The aim is to provide a trust network.
本発明のさらに別の目的は、耐故障性のある通信プロセッサを提供することであ る。Yet another object of the invention is to provide a fault tolerant communications processor. Ru.
本発明のこれらの目的及びその他の目的については、以下の本発明の詳細な説明 、及び付随する図面によって明らかとなろう。These and other objects of the invention will be described in detail in the following detailed description of the invention. , and the accompanying drawings.
発明の概要 本発明は、複数個の通信プロセッサで形成される通信ネットワークから成り、こ れら通信プロセッサは、マルチプロセッサ・データ処理システム内のいずれの二 つのプロセッサ間でもメツセージが効率的に送ることができるように互いに接続 されている。このデータ処理システムは複数個のデータプロセッサから成り、そ れらは好ましくは同一のものである。各データプロセッサは通信プロセッサに結 合され、この通信プロセッサは、それ自身と他のデータプロセッサに結合した他 の通信プロセッサとの間のメツセージの送受に責任がある。これら通信プロセッ サは、二次元六辺形アレイに組織化されている。Summary of the invention The present invention consists of a communication network formed by a plurality of communication processors. These communication processors can be used in any two processors in a multiprocessor data processing system. Connect each other so that messages can be sent efficiently even between two processors has been done. This data processing system consists of multiple data processors, which They are preferably the same. Each data processor is connected to a communications processor. This communication processor is connected to other data processors that are connected to itself and to other data processors. is responsible for sending and receiving messages to and from the communication processor of the computer. These communication processes The sensors are organized into a two-dimensional hexagonal array.
夫々の通信プロセッサは、それに隣接した6個の通信プロセッサと6個のポート を通して通信する。それらポートの夫々は、該当の通信プロセッサをこれに隣接 する6個の通信プロセッサの内の一つの対応したポートに結合する。Each communications processor has six adjacent communications processors and six ports. communicate through. Each of these ports has its own communications processor adjacent to it. to the corresponding port of one of the six communication processors.
所与のデータプロセッサがマルチプロセッサ・システム中の他のデータプロセッ サにメツセージを送りたいときは、そのメツセージをそれ自身のメモリに入れ、 それから自身に結合している通信プロセッサに信号を送る。A given data processor can interact with other data processors in a multiprocessor system. When you want to send a message to a server, put the message in its own memory, It then sends a signal to a communications processor coupled to it.
この通信プロセッサは、そのデータプロセッサのメモリをアクセスする。メツセ ージの送出準備完了を示す信号は、通信プロセッサがデータプロセッサのメモリ 中の該当するメツセージを捜すのに必要な情報を含んでいる。The communications processor accesses the memory of the data processor. Metsuse A signal indicating that the message is ready to be sent is sent by the communications processor to the memory of the data processor. Contains the information necessary to search for the corresponding message within.
一度この信号が与えられると、データプロセッサはフリーとなり、その他の計算 を続けることができる。このように、通信プロセッサは、マルチプロセッサ・シ ステム内の他のデータプロセッサとの通信に関する実質止金てのオーバヘッドを データプロセッサから取り除くのである。Once this signal is given, the data processor is free to perform other calculations. can continue. In this way, the communication processor Virtually all the overhead associated with communicating with other data processors within the system It removes it from the data processor.
この通信プロセッサは、適当なポートを通って隣接する一つの通信プロセッサに メツセージを送る。もし、このメツセージの最終宛先がその隣接通信プロセッサ に結合されたデータプロセッサであれば、その通信プロセッサは、メツセージを 前記データプロセッサのメモリに記憶させる。もし宛先が、そのメツセージを送 った隣接通信プロセッサに結合したデータプロセッサでないときは、その隣接通 信プロセッサは、そのメツセージを隣接する第3の通信プロセッサに中継する。This communications processor connects to one adjacent communications processor through an appropriate port. Send a message. If the final destination of this message is If the data processor is coupled to and stored in the memory of the data processor. If the recipient sends the message If the data processor is not connected to the adjacent communication processor, then the adjacent communication The communications processor relays the message to an adjacent third communications processor.
このように、メツセージは、その最終宛先であるデータプロセッサに結合したプ ロセッサに到達するまで中継される。In this way, a message is sent to a program bound to its final destination, a data processor. It is relayed until it reaches the processor.
夫々の通信プロセッサが使うメツセージ・ルーティング・アルゴリズムは、通信 プロセッサの誤動作または局部的な通信のオーバロードによって作られた通信隘 路の周囲の別ルートで自動的にメツセージを送る。もしも、メツセージがある通 信プロセッサに送られるべきで、し自動的に別ルートで送られる。The message routing algorithm used by each communications processor is Communication bottlenecks created by processor malfunction or local communication overload Automatically send messages via alternate routes around the road. If you receive a message, should be sent to the communication processor and automatically rerouted.
六辺形アレイのエツジにある諸通信プロセッサは、それらのポートの夫々に結合 した、“隣接”通信プロセッサのポートを持っていない。そのような結合を欠い た諸ボートはルーティングスイッチに接続され、このルーティングスイッチは、 それらポートを、外部シグナルパスによって六辺形アレイの反対側のエツジにあ る通信プロセラもしくはプロセッサに結合させる。この六辺形アレイの反対側エ ツジへの結合は、メツセージの生じたデータプロセッサから遠い宛先を持ったメ ツセージについて、その伝送時間を短縮する。この外部シグナルパス・システム が、六辺形アレイにおいて最短のバス長を与えることが示される。これらのエツ ジボートはまた、マルチプロセッサ・システムの外側の世界と通信するための手 段を提供し、これは在来コンピュータにおける入力−出力ポートに類似したもの である。Communication processors at the edges of the hexagonal array are coupled to each of their ports. , and does not have an "adjacent" communication processor port. lacking such a bond The boats connected to the router are connected to a routing switch, which Connect those ports to opposite edges of the hexagonal array by external signal paths. be coupled to a communication processor or processor. The opposite side of this hexagonal array Joining to a message is a message whose destination is far from the data processor where the message originated. To reduce the transmission time of messages. This external signal path system is shown to give the shortest bus length in a hexagonal array. These guys Gibot also provides a way to communicate with the outside world of multiprocessor systems. 2, which is analogous to input-output ports in conventional computers. It is.
図面の簡単な説明 第1図は、本発明による通信ネットワークを示す。Brief description of the drawing FIG. 1 shows a communication network according to the invention.
第2図は、隣接した諸通信プロセッサの対応するボート間の結合の詳細図である 。FIG. 2 is a detailed diagram of the coupling between corresponding ports of adjacent communication processors. .
第3(a)図は、7個の小形の六辺形通信ネットワークから構成された、より大 形の通信ネットワークを示す。Figure 3(a) shows a larger network consisting of seven small hexagonal communication networks. Illustrating a communication network in the form of
第3(b)図は、第3(a)図に示した大形の通信ネットワークの代替構成を示 す。Figure 3(b) shows an alternative configuration for the large communications network shown in Figure 3(a). vinegar.
第4図(a)は、六辺形アレイに基づく通信ネットワーク内の非隣接通信プロセ ッサ間のメツセージのルーティングを示す。Figure 4(a) shows a non-adjacent communication process in a communication network based on a hexagonal array. shows the routing of messages between servers.
第4図(b)は、方形アレイに基づく通信ネットワーク内の非隣接通信プロセッ サ間のメツセージのルーティングを示す。Figure 4(b) shows non-adjacent communication processes in a communication network based on a rectangular array. Shows the routing of messages between servers.
第5図は、六辺形アレイの反対側エツジにあるポートを結合するのに使われるシ グナルパス接続を示す。Figure 5 shows the schematic used to connect ports on opposite edges of a hexagonal array. shows the GNAL path connection.
第6(a)図は、六辺形アレイのエツジ上のいずれのポートを互いに結合すべき かを決める方法を示す。Figure 6(a) shows which ports on the edges of the hexagonal array should be connected to each other. We will show you how to decide.
第6(b)図は、各通信プロセッサ上の諸ボートの番号付けを示す。FIG. 6(b) shows the numbering of the ports on each communications processor.
第7(a)図及び第7(b)図は、夫々、各辺に3個の通信プロセッサを持つ六 辺形アレイにおいてその中の通信プロセッサに対するルーティング・ダイヤグラ ムを示す。FIGS. 7(a) and 7(b) each show a six-way network with three communication processors on each side. Routing diagram for communication processors in a rectangular array Indicates the time.
第8図は、無限の六辺形アレイの中の所与の通信プロセッサを捜すための座標系 を示す。Figure 8 shows the coordinate system for locating a given communication processor in an infinite hexagonal array. shows.
第9図は、第8図に示した座標系の、各辺に3個の通信プロセッサを持つ六辺形 アレイ、に対する適合を示す。Figure 9 is a hexagon with three communication processors on each side of the coordinate system shown in Figure 8. Indicates conformance to the array.
第10図は本発明の好適実施例に使われる通信プロセッサのブロック図である。FIG. 10 is a block diagram of a communications processor used in a preferred embodiment of the present invention.
第11図は、パケットが送信されるときポート・コントローラによて実行される 動作のフローチャートである。Figure 11 is executed by the port controller when a packet is sent. It is a flowchart of operation.
第12図は、パケットが送信されるべきときポートにより実行される動作のフロ ーチャートである。Figure 12 shows the flow of operations performed by a port when a packet is to be sent. -This is a chart.
第13図は、パケットが受信されるときポートにより実行される動作のフローチ ャートである。Figure 13 is a flowchart of the operations performed by a port when a packet is received. It is a chart.
発明の詳細な説明 本発明は、マルチプロセッサ・データ処理システム内の諸データプロセッサ間で メツセージを伝送するための通信ネットワークから成るものである。各データプ ロセッサは、そのネットワーク内の他の通信プロセッサと交信する一つの通信プ ロセッサに接続されている。当業者には明らかなように、諸データプロセッサの 夫々は、一つのメモリに結合した二つまたはそれ以上の処理ユニットから成るデ ータプロセッサのクラスタ(1群)で置換えることができる。本発明による、1 9個の通信プロセッサを持つ通信ネットワークを第1図に示す。分りやすくする ために、各通信プロセッサに接続された一つ又は複数のデータプロセッサは示し ていない。通信ネットワークは、通信プロセッサ22が代表的な諸通信プロセッ サの一つの六辺形アレイ20から成っている。より大きな通信ネットワークは、 より多くの通信プロセッサを各辺に持つ諸六辺形アレイを使って構築することが できる。Detailed description of the invention The present invention provides a method for communicating between data processors in a multiprocessor data processing system. It consists of a communications network for transmitting messages. Each data tap A processor is a communications processor that communicates with other communications processors in its network. connected to the processor. As will be apparent to those skilled in the art, various data processors Each device consists of two or more processing units coupled to a single memory. can be replaced by a cluster of data processors. According to the present invention, 1 A communications network with nine communications processors is shown in FIG. Make it easy to understand one or more data processors connected to each communication processor Not yet. The communication network includes a communication processor 22 that includes various communication processes. The hexagonal array 20 consists of a hexagonal array 20. A larger communication network is Can be constructed using hexagonal arrays with more communication processors on each side. can.
各通信プロセッサは六角形で表わされている。何故ならば、それは隣の通信プロ セッサとの通信のため6個のポートを持っているからである。メツセージはこれ らポートのどれからでも送信又は受信ができる。このことは、第2図に詳しく示 しである。各通信プロセッサの諸ポート24には、1から6の番号を付けである 。各ポート24は、隣接通信プロセッサの対応するポート24に接続されている 。ポート1は隣接の通信プロセッサのポート4に接続されている。ポート2は隣 接する他の通信プロセッサのポート5に接続されている。ポート3は隣接する更 に他の通信プロセッサのポート6に接続されている。以下同様である。六辺形ア レイのエツジ上の諸通信プロセッサに対し使用されるボート接続は、以下に詳し く述べる。Each communication processor is represented by a hexagon. Because it's the communication professional next door. This is because it has six ports for communication with processors. This is the message You can send or receive from any of the ports. This is shown in detail in Figure 2. It is. The ports 24 of each communication processor are numbered from 1 to 6. . Each port 24 is connected to a corresponding port 24 of an adjacent communication processor. . Port 1 is connected to port 4 of an adjacent communication processor. Port 2 is next door It is connected to port 5 of another adjacent communication processor. Port 3 is connected to the adjacent is connected to port 6 of another communications processor. The same applies below. hexagonal a The boat connections used for the various communication processors on Ray's Edge are detailed below. I will explain.
以下にさらに詳述するように、通信プロセッサそれ自体は、いくつかのタスクを 同時に処理する能力をもつコンカレント・プロセッサである。ポートの夫々は、 他のポートとは独立して動作する。この故に、数個のメツセージを一時に送信又 は受信できる。加えて、諸ポートによって他のメツセージが送信及び受信されて いる間に、メツセージをプロセッサメモリにまt;はそれから転送させることが できる。The communications processor itself performs several tasks, as detailed further below. It is a concurrent processor that has the ability to process simultaneously. Each of the ports is Operates independently from other ports. This makes it difficult to send several messages at once or can be received. In addition, other messages are sent and received by the ports. Messages can then be transferred to processor memory while can.
メツセージは、そのルートが通信プロセッサ間で決められ、それは、そのメツセ ージを隣接通信プロセッサに転送し、このプロセッサが更にそれを隣接する通信 プロセッサの一つにパスし、そしてメツセージが最終宛先であるデータプロセッ サに接続された通信プロセッサに達するまで統けることによって行われる。好適 実施例においては、このプロセスに使われるルーティング・アルゴリズムは、こ れがメツセージのルートを決めることができるようにするためには、全通信ネッ トワークのマツプのような大域情報を要求しないことに注目すべきである。Messages are routed between communication processors; the message to an adjacent communications processor, which in turn forwards it to the adjacent communications processor. the message passes to one of the processors, and the message is sent to the final destination, the data processor. communication processor connected to the server. suitable In an embodiment, the routing algorithm used for this process is The entire communication network must be Note that it does not require global information such as a network map.
そのような情報は、通信ネットワーク中の通信プロセッサの数によって指図され るサイズのテーブルに記憶しなければならないであろう。もし、ネットワーク中 の通信プロセッサ数が増加した場合には、これらのテーブルのサイズも増加させ なけれなばらない。これは、すべての通信プロセッサのハードウェアの変更修正 を必要とすることになり、明らかに望ましくないことである。以下に述べるよう に、本発明はそのようなテーブルの使用を避けている。Such information is dictated by the number of communication processors in the communication network. would have to be stored in a table of size. If you are on a network If the number of communication processors increases, the size of these tables also increases. Indispensable. This fixes all communication processor hardware changes , which is clearly undesirable. As stated below However, the present invention avoids the use of such tables.
本発明によれば、1個のデータプロセッサが六辺形アレイ中の他のデータプロセ ッサにメツセージを送りたいときは、送りたいデータプロセッサがそのメツセー ジをその宛先と共に自己のメモリに転送する。次に、自己に接続された通信プロ セッサに信号を送る。そのデータプロセッサに接続された通信プロセッサが、そ のデータプロセッサのメモリをアクセスする。前記通信プロセッサはそのデータ プロセッサのメモリからメツセージを読出ず。その後はデータプロセッサはメツ セージ伝送に影響するそれ以上のアクションを取ることは不必要である。According to the invention, one data processor is connected to other data processors in a hexagonal array. When you want to send a message to a data processor, the data processor you want to send the message to transfer the file to its own memory along with its destination. Next, connect the self-connected communications Send a signal to Sessa. A communication processor connected to that data processor access the memory of the data processor. The communication processor Do not read messages from processor memory. After that, the data processor is useless. It is unnecessary to take further actions that affect message transmission.
その送信する通信プロセッサは、送信用にメツセージをコード化し、そしてそれ を自己のポートの一つに割当てる。もし、メツセージの最終宛先が隣接する通信 プロセッサの一つに接続されたデータプロセッサであれば、それら二つの通信プ ロセッサを結ぶポートがそのメツセージに割当てられる。もし、メツセージの最 終宛先がさらに遠くのデータプロセッサであれば、以下に詳細に述べる方法によ って、伝送時間を最小にするポートが選ばれる。The transmitting communications processor encodes the message for transmission and to one of its ports. If the final destination of the message is an adjacent communication If the data processor is connected to one of the processors, the two communication A port connecting the processor is assigned to the message. If the message is If the final destination is a more distant data processor, you can use the method detailed below. Therefore, the port that minimizes the transmission time is selected.
通信プロセッサが自己のポートの一つにメツセージを受ケた時、通信プロセッサ は、メツセージの最終宛先を指定するメツセージヘッダに含まれた情報をチェッ クし、それによってメツセージが前記通信プロセッサに接続されたデータプロセ ッサへ送られるべきかどうかを決定する。このヘッダ情報は、最初にメツセージ を送った通信プロセッサによってメツセージ中に置かれる。When a communications processor receives a message on one of its ports, the communications processor checks the information contained in the message header that specifies the final destination of the message. , thereby transmitting the message to a data processor connected to said communication processor. Determine if the data should be sent to the service provider. This header information is initially placed in the message by the communications processor that sent it.
もし、前記データプロセッサが最終宛先であれば、通信プロセッサはそのデータ プロセッサのメモリにメツセージを記憶し、そしてデータプロセッサにメツセー ジが到来したことを知らせる。もし前記データプロセッサがメツセージの最終宛 先でない場合は、通信プロセッサはそのメツセージを自己に接続されたデータプ ロセッサで生起したメツセージのように再送信する。If the data processor is the final destination, the communications processor Store the message in the processor's memory and send the message to the data processor. Announce the arrival of Ji. If the data processor If not, the communications processor sends the message to the data processor connected to it. Retransmit as if the message originated in the processor.
このタイプの六辺形アレイ通信トポロジーは、以前の技法よりもいくつかの有利 な点をもっている。自由なサイズの通信ネットワークが、単一の六辺形アレイを 使うか、または、数個の六辺形アレイを組合わせることによって構成できる。第 3(a)図は、7個の小形の六辺形アレイ32−38を組合わせて構成できる、 実現可能な大形のネットワークを示したものである。この例では、夫々の小形ア レイは19個の通信プロセッサを含んでいる。This type of hexagonal array communication topology has several advantages over previous techniques. It has a certain point. Free-size communication network uses a single hexagonal array or can be constructed by combining several hexagonal arrays. No. Figure 3(a) shows that seven small hexagonal arrays 32-38 can be combined. This figure shows a possible large-scale network. In this example, each small The RAY contains 19 communication processors.
各アレイの中心の通信プロセッサにはアレイの番号が付けである。明瞭にするた めに、夫々のアレイの境界は点線で輪郭をつけである。任意の数のそのようなア レイの組合わせが、通信ネットワークの中にいかなる接続要素の導入の必要も無 しで可能である。この故に、本発明では、従来のシステムにおいて諸グループの データプロセッサを組合わせるのに使用されている特別目的の通信プロセッサは 、排除されている。The communication processor at the center of each array is numbered by the array. I wanted to make it clear For this purpose, the boundaries of each array are outlined with dotted lines. Any number of such The combination of rays eliminates the need to introduce any connecting elements into the communication network. It is possible to do so. Therefore, in the present invention, in the conventional system, various groups are A special purpose communication processor used in combination with a data processor , has been excluded.
第3(a)図に示したものに類似した第2のネットワークを第3(b)図に示す 。これは、32’ −38″の7個のアレイから成るものである。第3(b)図 に示すネットワークから、アレイ33′がアレイ34′ よりも高くなっている 点で、第3(a)図のアレイ34がアレイ33よりも高いのと異なっている。こ れらのタイプのアレイの組合わせの重要性については、以下でさらに詳しく説明 する。A second network similar to that shown in Figure 3(a) is shown in Figure 3(b). . This consists of 7 arrays of 32'-38''. Figure 3(b) From the network shown in , array 33' is higher than array 34'. This is different from the array 34 in FIG. 3(a) which is higher than the array 33. child The importance of combining these types of arrays is discussed in more detail below. do.
共用バス、またはメツセージが特定の通信プロセッサに届くまでに通らなければ ならない通信“ハブがないので、従来の設計手法に付随して起こった通信の隘路 は回避されている。もし、所与の通信プロセッサが、誤動作または伝送しなけれ ばならないメツセージが残っているためにメツセージの受信が不可能のときは、 以下に詳シく述べるように、メツセージは自動的にその周囲のルートで送ること ができる。データ処理システムのサイズが、諸六辺形アレイを組合わせるかまた は1つの六辺形アレイのサイズを大きくすることで増大させられるにつれ、所与 のメツセージに対して可能な通信パスの数もまた増加することに注目すべきであ る。このために、メツセージを自動的に別ルートで伝送するシステムの容量は、 システム中のデータプロセッサの数に関係したメツセージの量の増加とともに、 自動的に増加する。A shared bus, or Communication “The lack of a hub eliminates communication bottlenecks associated with traditional design methods.” has been avoided. If a given communications processor malfunctions or If you are unable to receive a message because there are messages left that should not be sent, Messages can be routed automatically around them, as detailed below. Can be done. Depending on the size of the data processing system, the hexagonal array may be As is increased by increasing the size of one hexagonal array, the given It should be noted that the number of possible communication paths for a message also increases. Ru. To this end, the capacity of a system to automatically reroute messages is With the increase in the amount of messages related to the number of data processors in the system, Increase automatically.
他の二次元アレイに対抗して六辺形アレイのこの選択は、二つの考慮によって指 図される。それらは、マルチプロセッサ・データ処理システム製造の能率と、通 信隘路周辺へのメツセージ・ルーティングの能率である。データプロセッサの好 適実施例は、シングルチップまたはシングルウェハ上での製造を意図している。This choice of hexagonal arrays as opposed to other two-dimensional arrays was dictated by two considerations. Illustrated. They improve the efficiency and communication of multiprocessor data processing system manufacturing. It is the efficiency of message routing around the Shinwa Road. data processor preference Preferred embodiments are intended for fabrication on a single chip or single wafer.
前記チップまたはウェハの表面積の利用効率は、一つの重要な要素である。何故 ならば、それがデータ処理システムに組込まれるプロセッサの数を決定するから である。六辺形は最高位の正多角形で、多角形間に隙間なく表面を覆うのに使う ことができる。従って、六辺形はチップの表面積を有効に利用するのに最高の多 辺形である。さらに、もしそれより辺の多い多辺形を使ったとしたら、アレイ中 の種々の通信プロセッサ間の接続が交差することが必要となり、製造工程が複雑 になってしまう。故に、アレイは六辺形、三辺形、四辺形、または三辺形でなく てはなので、プロセッサ・アレイは特定の方向を持つべきではない。このことは 、チップの全表面を覆うのに加えて、プロセッサ・アレイが通信プロセッサ・ア レイを含む平面内の二つの直交軸に関して対称でなければならないこと、を要求 するのと等価である。三辺形及び三辺形のアレイはこの対称性に欠けるので、こ の通信ネットワークには不適当である。The efficiency of surface area utilization of the chip or wafer is one important factor. why If so, it determines the number of processors included in the data processing system. It is. A hexagon is the highest order regular polygon and is used to cover a surface without any gaps between polygons. be able to. Therefore, the hexagonal shape is the best polygon to make efficient use of the chip surface area. It is a quadrilateral. Furthermore, if you use a polygon with more edges than that, then in the array The manufacturing process is complicated by the need for cross-connections between the various communications processors in the Become. Therefore, the array is not hexagonal, trigonal, quadrilateral, or trigonal. Therefore, the processor array should not have a particular orientation. This thing is , in addition to covering the entire surface of the chip, the processor array covers the communications processor area. Requires that the ray must be symmetrical about two orthogonal axes in the plane containing it. is equivalent to Since triangles and arrays of triangles lack this symmetry, communication networks.
これで、可能な選択は六辺形と四辺形のアレイに減る。This reduces the possible choices to an array of hexagons and quadrilaterals.
四辺形アレイよりも六辺形アレイを選ぶのは、局部的隘路の周辺の通信効率によ るためである。このことは第4図に示されている。第4図(a)において、本発 明による六辺形アレイの一部分が40で示されている。通信プロセッサ42で発 し、その最終宛先が通信プロセッサ44であるメツセージについて考えてみる。The choice of a hexagonal array over a quadrilateral array depends on the communication efficiency around the local bottleneck. This is for the purpose of This is illustrated in FIG. In Figure 4(a), the main A portion of the hexagonal array according to lighting is shown at 40. The communication processor 42 However, consider a message whose final destination is communications processor 44.
このメツセージの最適ルートは通信プロセッサ48を通るルートである。このル ートはメツセージが二度の伝送、即ち一度は通信プロセッサ42によって、もう 一度は通信プロセッサ48によって、伝送されることを要する。もし通信プロセ ッサ48が、オーバロードあるいは誤動作のためにメツセージを受けることがで きない場合は、メツセージは代わりの二つのパスのいずれかで送られる。そのパ スの第1は通信プロセッサ43及び45を通るものであり、第2は通信プロセッ サ46及び47を通るものである。The optimal route for this message is through communications processor 48. This le The message is transmitted twice, once by the communication processor 42 and again by the communication processor 42. It needs to be transmitted once by communication processor 48. If the communication process If the processor 48 is unable to receive messages due to overload or malfunction. If not, the message is sent along one of two alternative paths. That pa The first one passes through communication processors 43 and 45, and the second one passes through communication processors 43 and 45. 46 and 47.
これら代替バスの夫々は、メツセージに三度の伝送、即ち最適バスを通るよりも 一度余計な伝送を必要とする。Each of these alternative buses requires the message to be transmitted three times, i.e., rather than through the optimal bus. Requires an extra transmission once.
第4図(b)には、通信プロセッサの四辺形アレイの類似部分が50で示されて いる。ここで、通信プロセッサ52で発しその最終宛先が通信プロセッサ54で あるメツセージについて考えてみる。唯一のパス、即ち二度の伝送に必要な時間 と等しい遅延で伝送できるパスは、通信プロセッサ56を通るパスである。もし 通信プロセッサ56がオーバロードあるいは誤動作のためにメツセージを受けら れない場合は、メツセージは通信プロセッサ5g、60及び62のルートで送ら ねばならない。その結果、4回伝送するのに必要な時間と同じ伝送時間となる。In FIG. 4(b), a similar portion of the quadrilateral array of communications processors is shown at 50. There is. Here, the communication processor 52 sends a message and its final destination is the communication processor 54. Let's think about a certain message. Time required for only one pass, i.e. two transmissions The path that can be transmitted with a delay equal to is the path through the communication processor 56. if If the communications processor 56 does not receive a message due to overload or malfunction. If not, the message is routed to the communication processors 5g, 60 and 62. Must be. As a result, the transmission time is the same as the time required for four transmissions.
この故に、オーバロードと誤動作の状態下において、非隣接通信プロセッサへの 代替バスが短くてすむ六辺形アレイは四辺形アレイに比べて優れている。Therefore, under overload and malfunction conditions, access to non-adjacent communication processors is Hexagonal arrays are superior to quadrilateral arrays because they require shorter alternate buses.
六辺形アレイのエツジの上にある諸通信プロセッサは、それらのポートの各々に 結合すべき隣接通信プロセッサの数を充分にもっていない。例えば3個の通信プ ロセッサを一辺にもつ六辺形アレイの場合、エツジ上の諸通信プロセッサは、そ れらが結合できる隣接通信プロセッサの数は僅か3個か4個である。このことは 第5図に示されており、これは、19個の通信プロセッサ(−辺に3個の通信プ ロセッサ)を持つ一つの六辺形アレイ70を示している。アレイ70のエツジ上 の諸通信プロセッサ74の各々は、隣接した通信プロセッサに結合されない2個 あるいは3個のポートを持っている。そのような代表的なポートを72で示しで ある。これらのポートを以下では周辺ボートと呼ぶことにする。各周辺ポートは ルーティングスイッチ76に接続されている。各ルーティングスイッチは2個の ルーティングポート78と80を持っている。The communication processors on the edges of the hexagonal array have There are not enough adjacent communication processors to join. For example, three communication For a hexagonal array with processors on each side, the communication processors on the edge The number of adjacent communication processors they can couple to is only three or four. This thing is This is shown in Figure 5, which consists of 19 communication processors (3 communication processors on the - side). One hexagonal array 70 with a processor) is shown. On the edge of array 70 Each of the communication processors 74 includes two communication processors that are not coupled to an adjacent communication processor. Or it has 3 ports. A typical such port is indicated by 72. be. These ports will be referred to as peripheral boats below. Each peripheral port is It is connected to a routing switch 76. Each routing switch has two It has routing ports 78 and 80.
ルーティングボート80の夫々は、この六辺形アレイの反対側エツジ上のルーテ ィングスイッチ76のルーティングボート80に対し、82で代表されるシグナ ルバスにより接続されている。諸エツジ通信プロセッサ74の夫々の他の1個ま たは2個のポートに接続しているシグナルパス及びルーティングスイッチ76は 、図を分りやすくするために第5図から省略しである。このようにして、あるエ ツジ通信プロセッサ74の周辺ポートの一つを去るメツセージは、六辺形アレイ の反対側エツジにラップアラウンドされる。これは六辺形アレイ内の互いに遠く 離れた通信プロセッサ間でのメツセージ伝送に必要な時間を短縮する。いずれの 周辺ポートが所与のシグナルパスによって結合されるかの選択は、以下に詳しく 述べる。Each of the routing boats 80 has a route on the opposite edge of this hexagonal array. For the routing port 80 of the switching switch 76, the signaling port 82 is connected by a local bus. The other one or more of each of the various edge communication processors 74 or the signal path and routing switch 76 connected to the two ports. , have been omitted from FIG. 5 for clarity. In this way, some Messages leaving one of the peripheral ports of Tsuji communication processor 74 are sent to a hexagonal array. Wraps around to opposite edge. This is far away from each other in the hexagonal array. To reduce the time required to transmit messages between distant communication processors. either The selection of which peripheral ports are coupled by a given signal path is detailed below. state
各ルーティングスイッチ76の第2ルーテイングポート78は、六辺形アレイを “外の世界”に結合するのに使われる。それは、従来のデータ処理システムの普 通の入力−出力ポートの機能を果す。外部デバイスがこの六辺形アレイにメツセ ージを送りたいときは、前記メツセージをそのアレイに接続されたルーティング スイッチ76に送る。次に、このルーティングスイッチ76は、そのメツセージ をこれに接続する通信プロセッサ74に中継する。The second routing port 78 of each routing switch 76 has a hexagonal array. Used to connect to the “outside world”. It is the standardization of traditional data processing systems. It functions as a common input-output port. If an external device connects to this hexagonal array, When you want to send a message, send said message to the route connected to that array. The signal is sent to switch 76. Next, this routing switch 76 sends the message is relayed to the communication processor 74 connected thereto.
これらルーティングスイッチ76は、各メツセージのヘッダ情報内のデータでコ ントロールされる。“外の世界”に伝送されるべきメツセージは、所定のヘッダ と共にコード化され、この所定のヘッダは、隣接通信プロセッサ74からのメツ セージを受けるルーティングスイッチ76が認識する内部宛先を指定する。同様 に、六辺形アレイに接続されているデータプロセッサに対し向けられた外部デバ イスからのメツセージは、その問題のデータプロセッサを識別するヘッダと共に コード化される。スイッチ76がそのようなメツセージを受けたとき、自己に接 続された通信プロセッサにそれを送る。These routing switches 76 use the data in the header information of each message to be controlled. Messages to be transmitted to the “outside world” are sent using predetermined headers. This predetermined header is encoded with the message from the adjacent communication processor 74. Specifies an internal destination recognized by the routing switch 76 that receives the message. similar external device directed to the data processor connected to the hexagonal array. messages from the device, along with a header that identifies the data processor in question. coded. When switch 76 receives such a message, it connects to itself. send it to the connected communications processor.
シグナルパス82によって接続される周辺ポートの選択は二つの考慮によって決 められる。第1は、これらの接続がしばしば通信プロセッサ間でのメツセージの 伝送に必要な時間を決めることである。この時間を最小にすることは重要である 。第2は、以下に詳しく述べるように、周辺ポート接続の適正な選択によりその 結果生じる通信ネットワークでは、アレイのエツジ上の通信プロセッサ74がそ の六辺形アレイの中心にあるものと見分けがつかなくなる。これは、個々の通信 プロセッサの製造の効率を増大する。加えて、この結果、通信プロセッサは、い かなるサイズの六辺形アレイにも使えることになる。The selection of peripheral ports connected by signal path 82 is determined by two considerations. I can't stand it. First, these connections often pass messages between communication processors. The purpose is to determine the time required for transmission. It is important to minimize this time . Second, through proper selection of peripheral port connections, as detailed below. In the resulting communications network, communications processors 74 on the edge of the array becomes indistinguishable from what is at the center of the hexagonal array. This is an individual communication Increase efficiency of processor manufacturing. In addition, this results in the communication processor It can also be used for hexagonal arrays of any size.
どの周辺ポートが相互接続されるべきかの選択は、19個の通信プロセッサを持 っている(その内3個の通信プロセッサは各エツジにある)通信ネットワークに 関して、第5図に良く説明されている。接続の決定方法は、第6(a)図に示さ れたダイヤグラムを参照すればさらに容易に理解できる。このダイヤグラムは、 6個のファントム通信ネットワーク86−91に接続された19通通信プロセッ サ通信ネットワーク84を示している。夫々のファントム通信ネットワークは、 通信ネットワーク84のコピーである。通信ネットワーク84中の夫々の通信プ ロセッサは、通信ネットワーク中でそれが現われる位置を識別するOaから18 aのラベルが付されている。ファントム・ネットワーク86−91も同様にラベ ルが付されている。上で分るように、各通信プロセッサは、第6(b)図に示す ように1から6までのラベルが付された6個のポートを持っている。どの二つの 通信プロセッサ間の接続も、互いに接続されたポートの各々のラベルを与えるこ と、及びそれら当該ポートの各々を含む通信プロセッサのラベルを与えることに より指定できる。例えば、通信ネットワーク84において、通信プロセッサ3a のポート6は通信プロセッサ2aのポート3に接続している。同様に、ネットワ ーク84中の二つのエツジ・プロセッサ間の相互接続については、例えば、次の ようになる。通信ネットワーク84中の通信プロセッサ9aのポート6は、ファ ントム通信ネットワーク86中の通信プロセッサ14aのポート3に接続してい る。The selection of which peripheral ports should be interconnected is determined by the 19 communication processors. communication network (of which three communication processors are located at each edge). This is well explained in FIG. The method for determining the connection is shown in Figure 6(a). It can be more easily understood by referring to the diagram shown below. This diagram is 19 communication processors connected to 6 phantom communication networks 86-91. A communication network 84 is shown. Each phantom communication network is It is a copy of communication network 84. Each communication network in the communication network 84 The processor identifies the location where it appears in the communications network. It is labeled a. Phantom Network 86-91 is also labeled is attached. As can be seen above, each communication processor has a It has 6 ports labeled 1 to 6 as shown in the figure. which two Connections between communication processors also provide labels for each of the ports connected to each other. and giving a label for the communications processor containing each of those ports. You can specify more. For example, in the communication network 84, the communication processor 3a Port 6 of is connected to port 3 of communication processor 2a. Similarly, network For example, for the interconnection between two edge processors in the network 84: It becomes like this. Port 6 of communication processor 9a in communication network 84 is connected to port 3 of the communication processor 14a in the client communication network 86. Ru.
以下に述べるように、これは第5図に示したシグナルパス82に相当するもので ある。As described below, this corresponds to the signal path 82 shown in Figure 5. be.
通信ネットワーク84中の各周辺ボートについて、シグナルパスで接続されるべ き通信ネットワーク84中の対応する周辺ポートは、次のようにして決定される 。通信ネットワーク84中から問題の周辺ポートを見付は出し、そしてそれが接 続される適当なファントム通信ネットワーク86.87.88,89.90ある いは91中の通信プロセッサ及び周辺ポートを決定する。前記周辺ポートを、通 信ネットワーク84中の同じ通信プロセッサ・ラベルとポート・ラベルを持つ周 辺ポートに接続する。例えば、通信ネットワーク84中の通信プロセッサ9aの ポート6は、ファントム通信ネットワーク86中の通信プロセッサ14aのポー ト3に接続される。従って、シグナルパスは、ルーティングスイッチ76を使い 、通信ネットワーク84中の通信プロセッサ9aのポート6を通信ネットワーク 84中の通信プロセッサ14aのポート3に接続することによって作られる。上 に詠べたように、これが第5図に82で示したシグナルパスである。For each peripheral boat in the communication network 84, it is necessary to connect it with a signal path. The corresponding peripheral port in the communication network 84 is determined as follows. . It identifies the peripheral port in question from within the communication network 84 and determines whether it is connected. There are suitable phantom communication networks 86.87.88, 89.90 connected to or the communication processor and peripheral ports in 91. The peripheral port is A network with the same communication processor label and port label in communication network 84 Connect to side port. For example, the communication processor 9a in the communication network 84 Port 6 is a port of communication processor 14a in phantom communication network 86. Connected to port 3. Therefore, the signal path uses the routing switch 76. , port 6 of the communication processor 9a in the communication network 84 is connected to the communication network 84 by connecting to port 3 of communications processor 14a in 84. Up As mentioned above, this is the signal path shown at 82 in FIG.
このシグナルパス接続設計は、夫々の通信プロセッサに、それが一つの大形アレ イの中にシグナルパス接続なしで置かれているかの“想像”をさせるものである 。ある特定の通信プロセッサに送られるべきメツセージのルーティングを決定す るのには、第6(a)図の大形アレイ図の中で、その通信プロセッサの周囲の諸 通信プロセッサを調べて、それが当該メツセージを送られるべき通信プロセッサ のラベルにマツチしたラベルを持つ通信プロセッサを見付は出すまで行うだけで よい。第6(a)図を調べると、通信プロセッサがどの所与のラベルを見付は出 すのにも、ネットワーク84中の離れた2個の通信プロセッサを見る以上のこと は必要のないことが明白である。従って、このシグナルパス接続設計は、ネット ワーク84中のどの2個のデータプロセッサ間で伝送すべきメツセージであって も、せいぜい通信ネットワークがメツセージを2度伝送するのに要する遅れです むようにする。これは、明らかに、3個の通信プロセッサを一辺に持つ六辺形ア レイに対しては可能な最小の遅れである。This signal path connection design connects each communications processor to one large array. It allows you to “imagine” that it is placed inside the device without a signal path connection. . Determines the routing of messages to be sent to a particular communication processor. In order to Check the communications processor to determine which communications processor the message should be sent to. All you have to do is find a communication processor with a label that matches the label of good. Examining Figure 6(a), we see that the communication processor can find out which label It does more than just look at two separate communications processors in the network 84. It is clear that this is not necessary. Therefore, this signal path connection design Messages to be transmitted between any two data processors in workpiece 84 is at most the delay required by the communication network to transmit the message twice. so that This is clearly a hexagonal architecture with three communication processors on each side. This is the smallest possible delay for the ray.
従って、所与の通信プロセッサは、第6(a)図に示したダイヤグラムの中で、 多くて当該通信プロセッサから2通信プロセッサ内の部分を記憶していればよい ことになる。前記ダイヤグラムのこの部分は、ルーティング・ダイヤグラムと呼 ばれるが、それ自体当該通信プロセッサを中心とした六辺形アレイである。通信 プロセッサ5a及び9aに対するルーティング・ダイヤグラムは、夫々第7(a )図及び第7(b)図に示しである。各通信プロセッサはその情報をこれに記憶 した関連のルーティング情報に含んでいる。通信ネットワーク84において一つ の通信プロセッサを他から識別するただ一つのものは、各通信プロセッサに記憶 された特定のルーティング・ダイヤグラムである。従って、夫々の通信プロセッ サに対するハードウェアとソフトウェアは同じものである。Therefore, a given communication processor, in the diagram shown in FIG. 6(a), At most, it is sufficient to memorize the parts within two communication processors from the communication processor concerned. It turns out. This part of the diagram is called the routing diagram. However, it is itself a hexagonal array centered around the communications processor. communication The routing diagrams for processors 5a and 9a are respectively seventh (a ) and FIG. 7(b). Each communication processor stores its information in this Contains related routing information. One in communication network 84 The only thing that distinguishes one communication processor from another is the memory stored in each communication processor. This is a specific routing diagram. Therefore, each communication process The hardware and software for the server are the same.
このことは、本発明の通信ネットワークの構成を大いに単純化している。以下に 詳しく説明されるように、ルーティング・ダイヤグラムは、記憶要件が六辺形ア レイのサイズに無関係なアルゴリズムに縮小できる。This greatly simplifies the configuration of the communication network of the present invention. less than As will be explained in detail, the routing diagrams are hexagonal It can be reduced to an algorithm that is independent of ray size.
上の分析は第6(a)図に示したファントム六辺形アレイ・ダイヤグラムを使っ て行ったもので、これは第3(a)図に示したものから作ったものである。上で 指摘したように、この形には第3(b)図に示したような第2の可能なダイヤグ ラムがある。トポロジーの分野の当業者には明らかなように、もし六辺形アレイ 84へのシグナルパス接続が第3(b)図に示したのと類似のファントム六辺形 アレイ・ダイヤグラムに関して決められた場合に、同様な結果が得られる。この 場合に接続される実際の周辺ポートは異なる。しかし、本発明の変更される面は 、各通信プロセッサに記憶されるルーティング・ダイヤグラムの特定のラベルだ けである。The above analysis uses the phantom hexagonal array diagram shown in Figure 6(a). This was made from the one shown in Figure 3(a). Above As pointed out, this shape has a second possible diagram as shown in Figure 3(b). There's rum. As will be clear to those skilled in the field of topology, if a hexagonal array Phantom hexagonal signal path connections to 84 similar to those shown in Figure 3(b). Similar results are obtained when determined in terms of array diagrams. this The actual peripheral ports connected in each case will vary. However, the modified aspect of the invention is , a specific label of the routing diagram stored in each communications processor. That's it.
最後に、上の分析は3個の通信プロセッサを夫々のエツジに持つ六辺形アレイを 使って行ったものである。同様な技法が、E個の通信プロセッサを一辺に持った 任意の大きさの大形六辺形アレイにも適用できる。第6(a)図に示したのと類 似のダイヤグラムを構成でき、これは問題の通信ネットワークをこれの6個のフ ァントム・コピーと共に示す。それらの周辺ポートはシグナルバスにより接続さ れ、これらシグナルパスは、各周辺ポートを、関連しI;7アントム・コピー中 の接続されるポート及び通信プロセッサのラベルと同じラベルを持つ六辺形アレ イの反対側エツジ上の通信プロセッサのポートに、接続する。その結果のルーテ ィング・ダイヤグラムは、各辺にE個のエントリをもつ六辺形アレイとなる。各 通信プロセッサは、六辺形アレイ中の他の各通信プロセッサからE−1通信プロ セッサ内にあることになる。これが、通信プロセッサ間の最小距離であることが 示されている(Scblumberger Pslo Alto Re5e*r cb Report #47参照)0この故に、本発明は、メツセージがその最 終宛先に到達するのに再伝送されねばならない回数に関しては、最高の能率を持 った通信ネットワークである。Finally, the above analysis considers a hexagonal array with three communication processors at each edge. This is what I used. A similar technique can be applied to a system with E communication processors on one side. It can also be applied to large hexagonal arrays of arbitrary size. Similar to that shown in Figure 6(a) A similar diagram can be constructed that shows the communication network in question in six frames. Shown with phantom copy. Those peripheral ports are connected by a signal bus. These signal paths link each peripheral port to A hexagonal array with the same label as that of the connected port and communication processor. to the communication processor port on the opposite edge of the edge. The resulting route The drawing diagram becomes a hexagonal array with E entries on each side. each The communications processor receives the E-1 communications processor from each other communications processor in the hexagonal array. It will be in the seta. This is the minimum distance between communication processors. Shown (Scblumberger Pslo Alto Re5e*r cb Report #47) 0 Therefore, the present invention provides that the message has the highest efficiency in terms of the number of retransmissions that must be made to reach the final destination. It is a communication network that
単一六辺形アレイ中のいずれの二つの通信プロセッサ間の距離をも最小にするの に加えて、シグナルパスとルーティングスイッチとは、第3(a)図及び第3( b)図に示すようないくつかの六辺形アレイを組み合わせた大形ネットワークに おいて向上した性能を提供する。このようなネットワークでは、ルーティングス イッチは、個々の六辺形アレイ間の接続に使われる。一つまたはそれ以上の追加 の六辺形アレイによって分離された異なった六辺形アレイに位置する通信プロセ ッサの間でメツセージを送らなければならない場合、シグナルパスは、介在する 六辺形アレイの周囲でメツセージを“ジャンプ”させるのに使用できる。Minimize the distance between any two communication processors in a single hexagonal array In addition, signal paths and routing switches are defined in Figures 3(a) and 3(a). b) A large network combining several hexagonal arrays as shown in the figure. Provides improved performance. In such networks, routing Switches are used for connections between individual hexagonal arrays. one or more additions Communication processes located in different hexagonal arrays separated by a hexagonal array of When messages must be sent between Can be used to "jump" messages around a hexagonal array.
例えば、第3(a)図のラベル37の通信プロセッサからラベル35の通信プロ セッサに送られるべきメツセージについて考えてみる。外部シグナルパス無しで は、このメツセージは、通信プロセッサ37が位置する六辺形アレイのエツジに 到達するまで、通信プロセッサから通信プロセッサを通過しなくてはならない。For example, from the communication processor labeled 37 in FIG. 3(a) to the communication processor labeled 35, Let's think about the message that should be sent to Sessa. without external signal path , this message is sent to the edge of the hexagonal array where communications processor 37 is located. It must pass from communications processor to communications processor to reach it.
このメツセージは、次に通信プロセッサ32を含んだ六辺形アレイを横切って、 その六辺形アレイのエツジに到達するまで同様な方法で通過しなければならない 。最後にメツセージは、通信プロセッサ35が位置している六辺形アレイ中の適 当な通信プロセッサを通過してその通信プロセッサ35に到達することになる。This message is then passed across a hexagonal array containing communication processor 32. must be traversed in a similar manner until the edge of the hexagonal array is reached. . Finally, the message is sent to the appropriate location in the hexagonal array where the communications processor 35 is located. It passes through the appropriate communication processor and reaches the communication processor 35.
諸六辺形アレイのエツジ上のルーティングスイッチは、メツセージを通信プロセ ッサ32を含む六辺形アレイのエツジ上の通信プロセッサからこの六辺形アレイ の反対側エツジにある通信プロセッサへの中継を可能にし、従って通信プロセッ サ32を含んだその六辺形アレイ中の全ての通信プロセッサをバイパスする。こ れは、発信地から遠い宛先のメツセージについてその伝送時間を大幅に短縮する 。Routing switches on the edges of the hexagonal array route messages through the communication process. from the communication processor on the edge of the hexagonal array including the processor 32 to the hexagonal array relay to the communication processor at the opposite edge of the communication All communication processors in the hexagonal array, including the processor 32, are bypassed. child This greatly reduces the transmission time for messages sent to destinations far from the origin. .
上で指摘したように、重要なことは、通信プロセッサが、六辺形アレイのサイズ に依存するサイズのテーブルに記憶せねばならないような大域情報を含んでいな いことである。これは、もしそのようなテーブルが要求されると、構成できる最 大サイズの六辺形アレイは、そのテーブル中の利用可能なスペースに依存するこ とになるからである。上に述べたルーティング・ダイヤグラムはそのようなテー ブルである。本発明はまた、この問題にも解決を与えている。As pointed out above, the important thing is that the communication processor has a hexagonal array size Contains no global information that would have to be stored in a table whose size depends on That's a good thing. This is the maximum that can be configured if such a table is requested. Large hexagonal arrays may be dependent on the available space in the table. This is because it becomes. The routing diagram mentioned above is suitable for such a table. It is bull. The present invention also provides a solution to this problem.
そのようなテーブルに対する過剰スペースの配分を回避するために、本発明は、 諸通信プロセッサに対するラベリング設計を使用し、これは、前記ルーティング ・ダイヤグラムに含まれた情報を、記憶要件が六辺形アレイのサイズに無関係と なるアルゴリズムに縮小させる。この故に、本発明の通信プロセッサは、それが 六辺形アレイとして接続されておれば、いかなるサイズの通信ネットワークにも 使用できるのである。To avoid excessive space allocation for such tables, the present invention Using a labeling design for communication processors, this The information contained in the diagram can be stored in a way that makes storage requirements independent of the size of the hexagonal array. Reduce it to an algorithm. Therefore, the communication processor of the present invention has the following advantages: Connected as a hexagonal array, it can be used in communication networks of any size. It can be used.
本発明で使用されるラベリング設計を第8(a)図に示しである。“無限大”の 六辺形アレイの一部分を91′で示している。各通信プロセッサは2つの数字( x、y)から成るラベルを割当てられており、これは、直交座標系の座標に類似 の座標系において、各通信プロセッサの位置を指定するものである。これら2つ の数字は各六辺形の中でコンマで分けて示されている。この座標系の軸は92で 示されている。この座標系は、軸が直交していないこと、及びDとラベル付けさ れた第3の軸が定義されている点で、直交座標系と異なっている。X軸に平行な 方向で通信プロセッサから通信プロセッサに移動するとき、第1の座標は移動方 向によって増分または減分される。同様に、y軸に平行な方向で移動するときは 、第2の座標が増分または減分される。最後に、D軸に平行に移動するときは、 第1と第2の座標が共に増分又は減分される。各軸は2つのポートに対応してい ることに注目すべきである。例えば、ポートlまたはポート4から送られるメツ セージはD軸に平行な方向に伝播する。ポート番号は第8(b)図の93に示さ れている。The labeling design used in the present invention is shown in FIG. 8(a). “Infinity” A portion of the hexagonal array is indicated at 91'. Each communication processor has two numbers ( x, y), which are similar to coordinates in a Cartesian coordinate system. This specifies the position of each communication processor in the coordinate system. these two The numbers are shown separated by commas within each hexagon. The axis of this coordinate system is 92 It is shown. This coordinate system has non-orthogonal axes and is labeled D. It differs from a Cartesian coordinate system in that a third axis is defined. parallel to the x-axis When moving from communication processor to communication processor in the direction, the first coordinate is the direction of movement. Incremented or decremented by direction. Similarly, when moving in a direction parallel to the y-axis, , the second coordinate is incremented or decremented. Finally, when moving parallel to the D axis, Both the first and second coordinates are incremented or decremented. Each axis supports two ports. It should be noted that For example, messages sent from port l or port 4 The sage propagates in a direction parallel to the D axis. The port number is shown at 93 in Figure 8(b). It is.
このラベリング設計を使って、通信プロセッサは、ルーティング・ダイヤグラム の必要なしに他のどの通信プロセッサに対しても最適バスを計算できる。この説 明の目的のために、メツセージを送りつつある通信プロセッサを送信者、そして そのメツセージの最終宛先である通信プロセッサを受信者と呼ぶことにする。送 信者はまず、送信者を受信者に結ぶ線のX軸に対する角度を計算する。Using this labeling design, the communications processor can The optimal bus can be calculated for any other communication processor without the need for This theory For purposes of this disclosure, the communications processor that is sending the message is designated as the sender, and The communication processor that is the final destination of the message will be called the receiver. Sending The believer first calculates the angle of the line connecting the sender to the receiver with respect to the X axis.
この角度を受信者角と呼ぶ。各ポートは“ポート”角を割当てられるが、これは 、そのポートに接続された送信者に隣接の通信プロセッサへ送信者を結ぶ線の角 度に等しい。ポート角もまたX軸に対して計算される。この故に、ポート1のポ ート角は60°、ポート2のボート角角は120’、以下同様である。次に、優 先順のポー1、のりストは、受信者角と各ボート角との差の絶対値を使ってポー トを順序づけることによって計算される。This angle is called the receiver angle. Each port is assigned a “port” corner, which is , the corner of the line connecting the sender to the communication processor adjacent to the sender connected to that port equal to degrees. The port angle is also calculated relative to the X axis. Therefore, port 1 The boat angle of port 2 is 60°, the port angle of port 2 is 120', and so on. Next, The forward port 1 and the rest are ported using the absolute value of the difference between the receiver angle and each boat angle. It is calculated by ordering the
例えば(0,0)の通信プロセッサから(1,2)の通信プロセッサに送られる メツセージに5いて考えてみる。受信者角((0,0)の通信プロセッサの中心 を(1,2)の通信プロセッサの中心と結ぶ線の角度)は90°である。従って 、ポートlと2が望ましい。何故なら、それらは各々受信者角からの差角が30 ″のボート角を有しているからである。ポート6及び3は、夫々が受信者角から の差角が900のボート角であるから、次に最も望ましいポートである。以下同 様である。For example, sent from the communication processor at (0,0) to the communication processor at (1,2) Let's think about it while reading the message. The center of the communication processor at the receiver angle ((0,0) The angle of the line connecting (1, 2) with the center of the communication processor) is 90°. Therefore , ports l and 2 are preferred. This is because they each have a difference angle of 30 from the receiver angle. Ports 6 and 3 each have a boat angle of This is the next most desirable port since the difference angle between the two ports is 900 boat angles. Same hereafter It's like that.
上の例で、もし受信者が(0,2)であったとすると、受信者角は120°であ る、ただ一つのポート、即ちポート2だけが望ましいものとなる。次の最も望ま しいポートはこの場合、ポート1と3になる。以下同様である。In the above example, if the receiver is (0,2), the receiver angle is 120°. Only one port, port 2, is desired. next most desired The new ports will be ports 1 and 3 in this case. The same applies below.
上述のルーティング・アルゴリズムは、本発明に従う有限六辺形アレイ通信ネッ トワークに適用できる。本発明による、3個の通信プロセッサを各辺に持った六 辺形アレイを基にする通信ネットワークは、第9図の94で示されている。この 六辺形アレイ”の境界は太線で輪郭をとっである。この六辺形アレイの6個の7 アントム・コピーの関連する部分は、この太線の外側に示しである。The above-mentioned routing algorithm applies to a finite hexagonal array communication network according to the present invention. Applicable to networks. According to the present invention, six communication processors with three communication processors on each side A communications network based on a rectangular array is shown at 94 in FIG. this The boundaries of the hexagonal array are outlined with thick lines. The relevant parts of the antom copy are shown outside this bold line.
上の第6図に関して指摘したように、これらのファントム・コピーは、六辺形ア レイ94の反対側エツジ間を結ぶシグナルバスがメツセージのルーティングに使 われるとき、最適ルーティングの計算を笥単にするのに使われる。これらのファ ントム・コピーは、各通信プロセッサが六辺形アレイの中にある他のいずれの通 信プロセッサの座標をも計算するのを可能にするものである。As noted with respect to Figure 6 above, these phantom copies are A signal bus connecting opposite edges of Ray 94 is used for message routing. When used, it is used to simplify the calculation of optimal routing. These fa Each communications processor copies any other communications processor in the hexagonal array. It also makes it possible to calculate the coordinates of the communication processor.
これらのシグナルバスは、上述の座標系に不連続を導入する。例えば、(0,0 )から正のy軸に沿って進行すると、次の通信プロセッサが(0,2)の通信プ ロセッサの後に出会う次の通信プロセッサは、(−2,−2)の通信プロセッサ であって、“無限”六辺形アレイの場合の(0,3)の通信プロセッサではない 。従って、各通信プロセッサは、六辺形アレイのサイズを指定する数を記憶しな ければならず、それによってこの不連続の位置及びその不連続を越えた次の通信 プロセッサの座標が計算できるようにしなければならない。These signal buses introduce discontinuities in the coordinate system described above. For example, (0,0 ) and proceeding along the positive y-axis, the next communication processor enters the communication processor at (0,2). The next communication processor encountered after the processor is the communication processor at (-2,-2) , and not the (0,3) communication processor in the case of an “infinite” hexagonal array. . Therefore, each communication processor must remember a number that specifies the size of the hexagonal array. the location of this discontinuity and the next communication beyond that discontinuity. We need to be able to calculate the coordinates of the processor.
有限の六辺形アレイと無限の六辺形アレイの違いの第2は、所与の通信プロセッ サに対し多くの異なった方向に沿って進むことにより到達できることである。例 えば(−2,−2)の通信プロセッサに(0,0)の通信プロセッサから到達す るには、正のy軸に沿って進行することにより、または負のD軸を進行すること により、もしくは(1,l)の通信プロセッサへ正のD軸を進行しそして次に正 のX軸に沿って進行することにより可能である。正しいバスは次のようにして選 ばれる。送信者は、送信者のE−1通信プロセッサの範囲内にある受信者の座標 を計算する。ここで、Eは六辺形アレイ94の一辺にある通信プロセッサの数で ある。上記のように六辺形アレイ94のエツジ上の通信プロセッサを接続するシ グナルバスは、どの通信プロセッサも他のどの通信プロセッサのE−1通信プロ セッサ範囲内にくるように選ばれる。The second difference between a finite hexagonal array and an infinite hexagonal array is that It can be reached by moving along many different directions relative to the target. example For example, when reaching the communication processor at (-2, -2) from the communication processor at (0, 0), by traveling along the positive y-axis or by traveling along the negative d-axis. or proceed along the positive D axis to the communication processor at (1,l) and then This is possible by proceeding along the X axis of . Select the correct bus as follows: It will be revealed. The sender determines that the recipient's coordinates are within range of the sender's E-1 communications processor. Calculate. where E is the number of communication processors on one side of the hexagonal array 94. be. A system for connecting communication processors on the edges of hexagonal array 94 as described above. The signal bus allows any communications processor to communicate with any other communications processor's E-1 communications Selected to be within the setter range.
この受信者の座標は、送信者からE−1通信プロセッサの距離の範囲内に一度だ け現れることになる。This recipient's coordinates are once within the distance of the E-1 communications processor from the sender. will appear.
上記修正により、送信者は、無限の六辺形アレイに関して述べたアルゴリズムを 使って、六辺形アレイ中の任意の受信者にメツセージを送るのに使用するポート のリストを、優先順に割当てることができる。送信者は、送信者のE−1通信プ ロセッサ範囲にある受信者の座標を持った通信プロセッサの位置を計算する。こ れを行うために、送信者は、六辺形アレイ内又はその仮想コピー内の受信者の座 標と同じものを持った各通信プロセッサの位置を計算する。次に、送信者のE− 1通信プロセッサ範囲内に位置する通信プロセッサを選択する。送信者は、次に この通信プロセッサを送信者に結ぶ線の角度を計算し、そしてメツセージ送信に 使われる優先順のポートのリストを計算する。メツセージは次に最高優先順位の ポートに接続された隣接通信プロセッサに送られる。もし、そのようなポートが 2個あるときは、メツセージは、その第1のフリーのポートで送られる。もしこ の隣接通信プロセッサが利用できないときは(例えば、他のタスクでビジーとか 、動作しないとかの理由)、メツセージの隣接通信プロセッサへの伝送が成功す るまで、次に高い優先順位のポートが使われる。With the above modification, the sender can now use the algorithm described for an infinite hexagonal array. port used to send a message to any recipient in the hexagonal array using can be assigned in priority order. The sender shall use the sender's E-1 communication Compute the location of the communications processor with the coordinates of the recipient within processor range. child To do this, the sender must locate the recipient within the hexagonal array or a virtual copy thereof. Calculate the location of each communication processor that has the same target. Next, the sender's E- Select a communication processor located within one communication processor range. The sender then Calculates the angle of the line connecting this communication processor to the sender and sends the message. Compute a list of ports in priority order to be used. Message is the next highest priority Sent to an adjacent communications processor connected to the port. If such a port If there are two, the message is sent on the first free port. Moshiko when the adjacent communication processor is unavailable (for example, busy with other tasks). , why it is not working), and whether the message is successfully transmitted to the adjacent communication processor. The next highest priority port is used until
本発明による通信プロセッサの好適実施例が第10図の100に示されている。A preferred embodiment of a communications processor according to the present invention is shown at 100 in FIG.
それは、4つの基本要素を持っている。第1の要素はバッファ102で、これは 通信プロセッサを通過するメツセージを記憶するのに使用される。第2の要素は ポートコントローラ104で、これは第3の要素であるポート106を通るメツ セージの伝送を管理する。第4の基本要素は直接記憶アクセス・コントローラ1 0Bで、これは、バッファ102と当該通信プロセッサに接続されたデータプロ セッサ111のメモリ110との間のメツセージの転送を管理する。It has four basic elements. The first element is buffer 102, which is Used to store messages passing through the communications processor. The second element is port controller 104, which controls the third element, the ports 106; Manage the transmission of messages. The fourth basic element is the direct storage access controller 1 0B, which is a buffer 102 and a data processor connected to the communication processor. Message transfer to and from the memory 110 of the processor 111 is managed.
バッファ102内のスペースのより有効な利用のために、長いメツセージは、パ ケットと呼ばれる複数の小メツセージに分けられる。一連のパケットへの長いメ ツセージの分割は、以下に詳しく述べるように直接記憶アクセス・コントローラ 108によって行われる。各パケットは、これが属するメツセージと、及びその パケットの最終宛先とを識別するヘッダを含んでいる。また、このヘッダは、そ のメツセージ中のパケットの数、及びこのメッセージ中の当該パケットの位置と を含んでいる。最後に、ヘッダはまた、メツセージが正しく送信及び受信された ことを検証するためポート106により使用されるエラー検査情報を含んでいる 。For more efficient use of space in buffer 102, long messages are It is divided into multiple small messages called kets. Long mail to a series of packets The partitioning of the storage access controller directly 108. Each packet is marked with the message to which it belongs, and its Contains a header that identifies the final destination of the packet. Also, this header the number of packets in this message, and the position of the packet in this message. Contains. Finally, the header also indicates that the message was sent and received correctly. Contains error checking information used by port 106 to verify that .
バッファ102は複数個の記憶スロットに分けられている。夫々の記憶スロット は1個のパケットの記憶に使われる。好適実施例においては、パケットのサイズ はデータ処理システムにおいて送られる平均メツセージの長さに選ばれている。Buffer 102 is divided into multiple storage slots. each memory slot is used to store one packet. In a preferred embodiment, the size of the packet is chosen to be the average message length sent in the data processing system.
バッファ102に記憶されるパケットは、6個のポート106が共用するバス1 12及び直接記憶アクセス・コントローラ108を通して1つのポート106に 転送される。パス112の使用に関する衝突は、バッファ102の一部であるバ ッファ・コントローラで解決される。通信プロセッサによって実行される種々の 動作の優先順位については、以下で更に詳しく論説する。Packets stored in buffer 102 are stored on bus 1 shared by six ports 106. 12 and one port 106 through the direct storage access controller 108. be transferred. Conflicts regarding the use of path 112 are caused by Solved with buffer controller. Various functions performed by the communications processor Action priorities are discussed in more detail below.
パス112は6個のボート106全てと直接記憶アクセス・コントローラとをサ ービスしなくてはならないので、パケットをバッファ102から所与のポート1 06あるいは直接記憶アクセス・コントローラに転送するのに必要な時間は、パ ケットを所与のポート106に出力する時間に比べて小さくなくてはならない。Path 112 supports all six boats 106 and the direct storage access controller. service, so packets are transferred from buffer 102 to a given port 1. 06 or directly to the storage access controller. It must be small compared to the time it takes to output a packet to a given port 106.
そうでない場合は、パケットは、これが向けられるポート106がフリーである ときでも、バッファ102の中で待っていなければならなくなる。好適実施例に おいては、バス112の幅は、パケットを2バス・サイクルで転送するに充分の 大きさである。これは、ポート106を通してパケットを出力するのに必要な時 間の約1/10である。Otherwise, the packet is directed to port 106, which is free. Even at this time, it will have to wait in the buffer 102. In the preferred embodiment In this case, bus 112 is wide enough to transfer a packet in two bus cycles. It's the size. This is when necessary to output the packet through port 106. It is about 1/10 of that.
ポート106の夫々は、1個のパケットを記憶するのに充分な内部バッファを持 っている。従って、各ポート106は、バッファ102及び他のポート106か ら独立して作動できるのである。ポート106がバッファ102から一つの隣接 通信プロセッサにパケットを転送するために使われる場合、それはパケットをバ ッファ102から転送してこのパケットを自己の内部バッファに記憶する。この ポートlO6は次に通信プロセッサ中の他の動作に無関係にパケットを伝送する 。同様に、ポート106が一つの隣接通信プロセッサからパケットを受信する場 合は、前記ポートはその自己の内部バッファにパケットを累算する。Each port 106 has an internal buffer sufficient to store one packet. ing. Therefore, each port 106 has a buffer 102 and another port 106. They can operate independently from each other. Port 106 is one neighbor from buffer 102 When used to forward packets to a communications processor, it The packet is transferred from buffer 102 and stored in its own internal buffer. this Port lO6 then transmits the packet regardless of other operations in the communications processor. . Similarly, if port 106 receives packets from one adjacent communications processor, If so, the port accumulates the packet in its own internal buffer.
上に述べたように、バッファ102は、このバッファ中の記憶スペースの割当て に責任のあるコントローラを含んでいる。ポート106がバッファ102に記憶 すべきパケットを受けt;とき、これはバッファ・スペースをバッファ・コント ローラから要求する。同様に、パケットが首尾よく隣接通信プロセッサに伝送さ れたとき、ポート・コントローラ104がバッファ・コントローラに信号を送り 、このバッファ・コントローラは利用できる該当パケットによって占有されるス ペースを作る。As mentioned above, buffer 102 is configured to allocate storage space within this buffer. Contains a controller responsible for. Port 106 is stored in buffer 102 When a packet to be sent is received, this saves buffer space to buffer control. Requested by Laura. Similarly, a packet is successfully transmitted to an adjacent communication processor. When the port controller 104 sends a signal to the buffer controller , this buffer controller determines the available space occupied by the corresponding packet. Create a pace.
ポート・コントローラ104によって実行される動作のフローチャートを第11 図に示しである。ポート・コントローラ104は、バッファ102中の諸パケッ トを通してサイクルし、それが送る用意のできたパケットを見付けるまで続く。The flowchart of the operations performed by the port controller 104 is shown in FIG. It is shown in the figure. Port controller 104 stores packets in buffer 102. until it finds a packet ready to send.
このポート・コントローラは次に、そのパケットを送るための望ましい一つまた は複数のポートを決定する。上に指摘したように、もしこのパケットの最終宛先 がデータプロセッサで、その通信プロセッサが軸の一つに平行な線上にない場合 は、その通信プロセッサへの最適ルートは二つ以上ある。即ち、パケットは二つ 以上のポートから遅れを導入せずに送ることができるのである。もし、二つ以上 の最適ボートがある場合は、ポート・コントローラはそれらポートの内のフリー な第1番目のものにパケットを割当てる。もし、望ましいポート106の一つの ポートがフリーである場合、それは当該ボートにパケットを取るよう信号を出す 。もし、望ましいポートのいずれもフリーでない場合、カウンタが増分されそし て臨界値に対するテストがなされる。もし、前記カウンタのカウントが臨界値よ りも大きいときは、ポート・コントローラは、当該パケットに代替ボートを選ぶ 。このカウンタは、パケットが伝送を断られた回数を計るので、そのカウントは 8該パケットの“腐敗“の尺度である。ポート・コントローラ104は、次に、 送るべき次のパケットを見付けるまで、バッファ102中のパケットを通しての サイクル動作に戻る。This port controller then selects the desired one or determines multiple ports. As pointed out above, if the final destination of this packet is a data processor and its communication processor is not on a line parallel to one of the axes. has more than one optimal route to its communications processor. That is, there are two packets It is possible to send data from these ports without introducing any delay. If two or more If there are optimal ports, the port controller is free among those ports. Assign the packet to the first one. If one of the desired ports 106 If the port is free, it signals the boat in question to take the packet . If none of the desired ports are free, the counter will be incremented. Tests are made for critical values. If the count of the counter is a critical value, If the port controller is also large, the port controller chooses an alternate port for the packet. . This counter measures the number of times a packet is refused transmission, so the count is 8 is a measure of the "corruption" of the packet. Port controller 104 then: It passes through the packets in buffer 102 until it finds the next packet to send. Return to cycle operation.
もし、パケットが割当てられI;ポート106が首尾よくパケットの伝送を完了 したときは、ポート106はポート・コントローラ104に信号を送る。ポート ・コントローラ104は、次にバッファ・コントローラに信号を送り、このコン トローラは、前記パケットによって先に占められていたスペースを7リーにする 。もし、当該ポート106からパケット伝送失敗のレポートがあれば、当該パケ ットに関係したカウンタが増分されて、上に述べたようなテストを受ける。If the packet is assigned I; port 106 successfully completes the transmission of the packet. When it does, port 106 sends a signal to port controller 104. port - Controller 104 then sends a signal to the buffer controller to The troller fills the space previously occupied by said packet with 7 lees. . If there is a report of packet transmission failure from the port 106, the packet The counter associated with the cut is incremented and subjected to the tests described above.
代替ポートを選ばなければならないときは、これらポートのいずれを使うべきか の選択に3つのファクタが影響する。第1は、もしパケットが他の通信プロセッ サで生起したものである場合(即ち、当該通信プロセッサが単にパケットをその 最終宛先に中継している場合)、このパケットはそれを受信したのと同じポート に送られてはならない。もしこのルールに従わなかった場合は、パケットは、よ り適当なルーティングが利用可能になるまで同じそれら二つの通信プロセッサの 間を往復する。これは、“スラッシングと呼ばれる。このスラッシングは、パケ ットがその宛先へ移動するのを遅らせるばかりでなく、パケットが通過するそれ ら二つの通信プロセッサの通信負荷を増大させる。パケットが受信されたボート 106を指定する情報は、そのパケットと共にバッファ102に記憶される。こ の情報は当該パケットを受信したポート106によって提供される。このように して、ポート・コントローラはこの問題を回避するのに必要な情報を持つのであ る。Which of these ports should I use when I have to choose an alternative port? Three factors influence the choice of . First, if the packet is sent to another communication (i.e., the communications processor simply intercepts the packet) relaying to its final destination), this packet is sent to the same port that received it. shall not be sent to If this rule is not followed, the packet will of the same communication processor until suitable routing is available. go back and forth between This is called “thrashing.” This thrashing Not only does it delay the packet from traveling to its destination, but it also This increases the communication load on the two communication processors. Boat on which the packet was received Information specifying 106 is stored in buffer 102 with the packet. child The information is provided by the port 106 that received the packet. in this way so the port controller has the necessary information to avoid this problem. Ru.
第2に、大形の六辺形アレイ(−辺に3°個の通信プロセッサを持つものより大 きい)においては、長距離通信向けのパケットを送ることができる非常に多くの ルートがあることである。パケットを送るのに選択されたポート106は、後の 伝送に対して利用できるルーティング決定の数に影響を与える。これは次の例に よって説明できる。Second, larger hexagonal arrays (larger than those with 3° communication processors on the − side) In the network, a large number of packets can be sent for long-distance communication. There is a route. The port 106 selected to send the packet is Affects the number of routing decisions available for transmission. This is in the following example Therefore, it can be explained.
第8(a)図を参照して、通信プロセッサ(1,−2)を離れそして最終宛先が 通信プロセッサ(2,2)に接続されたデータプロセッサであるパケットについ て考えてみる。(2,2)への最適ルートは4つあり、夫々はパケットの4回の 伝送を必要とする。その第1のルートは通信プロセッサ(1,−1)、(1,O )及び(1゜l)を通るもの、第2のルートは通信プロセッサ(1゜−1)、( 1,0)及び(2,1)を通るもの、第3のルートは通信プロセッサ(1,−1 )、(2,0)及び(2,1)を通るもの、そして第4のルートは通信プロセッ サ(2,−1)、(2,O)及び(2,1)を通るものである。もしもパケット が通信プロセッサ(1,−1)を経由して送られるとすれば、3つの最適ルート が可能であるから、当該通信プロセッサと通信プロセッサ(1,−1)を結ぶポ ート2の方が当該通信プロセッサと通信プロセッサ(2,−1)を結ぶポート1 よりも望ましい。ポート2は、その後のルーティング決定により大きな柔軟性を 与える。Referring to FIG. 8(a), the communication processor (1,-2) is left and the final destination is Regarding packets, the data processor connected to the communication processor (2, 2) Let's think about it. There are four optimal routes to (2,2), each with four optimal routes to (2,2). Requires transmission. Its first route is communication processor (1,-1), (1,O ) and (1゜l), the second route passes through the communication processor (1゜-1), ( 1,0) and (2,1), the third route is the communication processor (1,-1) ), (2,0) and (2,1), and the fourth route is the communication process. It passes through (2, -1), (2, O) and (2,1). Moshi packet is sent via communication processor (1,-1), then there are three optimal routes is possible, so the port connecting the communication processor and the communication processor (1, -1) is Port 2 is the port 1 that connects the communication processor and the communication processor (2, -1). more desirable than Port 2 allows greater flexibility in subsequent routing decisions. give.
本発明の好適実施例において、この“柔軟性”情報は、パケットが送られるべき 最適ポートの決定と、その最適ボートが利用できない場合の代替ボートの決定の 両方に使われる。上に述べた角度計算アルゴリズムは、自動的にこの情報を考慮 に入れている。上の例において、通信プロセッサ(1,−2)を通信プロセッサ (2,2)に結ぶ線と、ポート2を通るy軸に平行の線との角度の差は、前記線 の角度とポート1を通るD軸に平行な線の角度との差より小さい。従って。ポー ト2が自動的に選ばれることになる。In a preferred embodiment of the present invention, this "flexibility" information is Determining the optimal port and determining an alternative boat if the optimal port is not available. used for both. The angle calculation algorithm mentioned above automatically takes this information into account. I'm putting it in. In the above example, communication processor (1, -2) is The difference in angle between the line connecting (2, 2) and the line parallel to the y-axis passing through port 2 is the angle between the line and the angle of a line parallel to the D axis passing through port 1. Therefore. Poe point 2 will be automatically selected.
最後に、代替ポートの利用可能性について考慮しなければならない。ここで、二 つの代替ポートがあり、それらは同じ長さのパスを持っているが、“柔軟性”が 異なる場合を考えてみる。もし、より大きな柔軟性を持つポートがビジーのとき は、他のポートが選ばれる。パケットの“腐敗度” (即ち、そのパケットが伝 送を断られた回数)を測るカウンタの臨界値は、そのパケットを平均して一回再 伝送するに要する時間より長い一つの時間を表している。従って、パケットを送 るのには、少しばかり良いルートを待機するよりは、少し劣ったルートを経由し た方が良い。Finally, the availability of alternative ports must be considered. Here, two There are two alternative ports, which have the same length path but have less “flexibility”. Let's consider a different case. If the port with greater flexibility is busy , another port is selected. The “corruptness” of a packet (i.e., the packet is The critical value of the counter that measures the number of times the packet is refused is the number of times the packet is replayed once on average. It represents a piece of time that is longer than the time required for transmission. Therefore, sending a packet Instead of waiting for a slightly better route, it is better to take a slightly inferior route. It's better to
当業者には明らかなように、複雑さのより少ない他のルーティング・アルゴリズ ムが可能である。例えば、ポート・コントローラは単に、パケットを受信したも のでない無作為に選んだ代替ポートに割当てることができる。Other less complex routing algorithms will be apparent to those skilled in the art. is possible. For example, a port controller simply can be assigned to a randomly selected alternate port.
このポートは、パケットをその最終宛先からより遠くに出す方向に送らないよう なポートの中から選ぶことができる。このような無作為な割当てアルゴリズムは 能率は良くないが、これを実施するためのハードウェアが少なくてすむので、経 済的な理由からは好ましい。This port prevents packets from being routed further away from their final destination. You can choose from a variety of ports. Such a random assignment algorithm is It's not very efficient, but it requires less hardware to do this, so it's economical. It is preferable for economical reasons.
ポート・コントローラがポート106にパケット伝送を行うよう要求した場合に 、ポート106が実行する動作についてのチャートを第12図に示しである。ポ ート106がパケット伝送の要求を受けたが、それがビジーの場合、パケットを 送る試みが不首尾である場合に送られる信号と同じ信号を、ポート・コントロー ラ104に送る。もしも当該ボート106がフリーであれば、このポートは、パ ケットを当該ポート106のバッファに伝送するバッファ・コントローラに信号 を送る。ポート106は次に、これが接続される隣接通信プロセッサ中の対応す るポート106との通信リンクを確立すべく試みる。もし、それに失敗したら、 ポートはポート・コントローラ104に信号を送る。もし、それに成功したら、 ポートは当該パケットを送信し、そして受信側ボート106からの、パケットが 正しく受信された旨の信号を待つ。もしもそれが正しく受信されなかつj;なら ば、当該ポート106はカウンタを増分する。もし、このカウンタのカウントが 所定の臨界値より小さければ、ポートは当該パケットをもう一度送る。もし、そ のカウントが前記臨界値より大きければ、ポートはポート・コントローラ104 に対し伝送完了に失敗した旨の信号を送る。もし、受信側ポート106が伝送成 功をアクノリッジすると、当該ポート106はポート・コントローラ104にパ ケットが首尾よく送られた旨の信号を送る。その後に待機状態に入る。When the port controller requests port 106 to transmit a packet , a chart of the operations performed by port 106 is shown in FIG. Po If port 106 receives a request to transmit a packet, but it is busy, it transmits the packet. The port controller sends the same signal that is sent if the attempt to send is unsuccessful. Send to La 104. If the boat 106 is free, this port a signal to the buffer controller that transmits the packet to the buffer of that port 106. send. Port 106 then connects to the corresponding attempt to establish a communication link with port 106. If that fails, The ports send signals to port controller 104. If you succeed in that, The port sends the packet, and from the receiving boat 106, the packet is Wait for a signal indicating that it was received correctly. If it is not received correctly, then For example, the port 106 increments a counter. If the count of this counter is If it is less than a predetermined threshold value, the port sends the packet again. If that If the count of is greater than the critical value, then the port sends a signal indicating that transmission completion has failed. If the receiving port 106 Upon acknowledgment of success, the port 106 is sent to the port controller 104. sends a signal that the packet was successfully sent. After that, it enters the standby state.
隣接通信プロセッサがポート106にパケットを送りたい場合の、ポート106 が実行する動作についてのフローチャー小を第13図に示す。もし、当該ポート 106がその要求を受けたときにビジーであれば、それは送信側ボートに信号を 送る。この状態は、当該ポートが、そのバッファから先に受けたパケットをバッ ファ102に未だ伝送していない場合に起り得る。もし、当該ポート106がフ リーであれば、それは当該パケットを取入れる。これと同時に、ポートはバッフ ァ・コントローラからバッファ102中のバッファ・スペースを要求する。port 106 if the adjacent communication processor wants to send a packet to port 106. FIG. 13 shows a small flowchart of the operations performed by the computer. If the port If 106 is busy when it receives the request, it sends a signal to the sending boat. send. This state indicates that the port is backing up the packet it received earlier from its buffer. This may occur if the data has not yet been transmitted to the file 102. If the port 106 is If so, it accepts the packet. At the same time, the port requests buffer space in buffer 102 from the controller.
伝送完了時に、当該ポートは、通常のサイクリック冗長検査(CRC)によって パケットの正しい伝送を検査する。もし、パケットが正しく伝送されなかったと きは、当該ポートは送信側ポートに信号を送る。もし、パケットが首尾よく伝送 されかつバッファ102内のスペースが利用可能であっt;ときは、当該ポート は、パケットをバッファに送ってこれをバッファ・コントローラによって割当て られた位置に記憶させる。スペースが利用できないときは、送信側ポートに伝送 失敗の信号を送る。Upon completion of the transmission, the port is checked by a normal cyclic redundancy check (CRC). Verify correct transmission of packets. If the packet was not transmitted correctly, , the port sends a signal to the sending port. If the packet is successfully transmitted and space in buffer 102 is available; sends the packet to a buffer, which is allocated by the buffer controller. stored in the specified location. When space is not available, transmit to the sending port Send a signal of failure.
直接記憶アクセス・コントローラ108は、バッファ102中に記憶されたパケ ットを通してサイクルし、続く処理を最も長く待機していてしかも最終宛先が当 該通信プロセッサであるパケットを捜し出すまで続く。直接記憶アクセス・コン トローラ10Bは、パケット中のヘッダ情報を検査して、このパケットが引出さ れた元のメツセージが一つより多いパケットを必要としたかどうかを決定する。Direct storage access controller 108 provides access to packets stored in buffer 102. The destination that has been waiting the longest for further processing and whose final destination is This continues until the communication processor finds a packet. direct memory access controller The troller 10B inspects the header information in the packet and determines whether this packet is extracted. Determine whether the original message received required more than one packet.
もし、ただ一つのパケットが使われたのならば、直接記憶アクセス・コントロー ラはそのパケットのメツセージ部分をデータプロセッサのメモリに記憶し、そし てメツセージの到着をそのデータプロセッサに通知する。If only one packet is used, the direct storage access control The controller stores the message portion of the packet in the data processor's memory and to notify its data processor of the arrival of the message.
直接記憶アクセス・コントローラ10gは、一つより多いパケットに分割された メツセージの再組立てに使うテーブルを含んでいる。もし、当該メツセージが一 つより多いパケットを持っていたら、直接記憶アクセス・コントローラ108は このテーブルを調べて、それがメツセージから受けた最初のパケットかどうかを 決定する。The direct storage access controller 10g is divided into more than one packet. Contains a table used to reassemble the message. If the message is If the direct storage access controller 108 has more than one packet, the direct storage access controller 108 Examine this table to determine if this is the first packet received from the message. decide.
もし、それが最初のパケットであれば、直接記憶アクセス・コントローラ108 は、テーブルへのこのメツセージのl;めのエントリをスタートし、そして全メ ツセージを記憶するためにデータプロセッサのメモリ中の充分なスペースを割当 てる。直接記憶アクセス・コントローラ108は次に、この当該パケットを、デ ータプロセッサのメモリのこのメツセージのために用意されたメモリブロック内 の適当な位置に記憶する。そして次にバッファ102中の他のパケットを探索す る。もし、当該パケットがメツセージの最初のパケットでない場合は、直接記憶 アクセス・コントローラ108は、このパケットを受取ったことを示すエントリ をテーブルに行い、そしてそのパケットをデータプロセッサのメモリ中の適当な 位置に記憶する。もし、当該パケットがメツセージを完了するのに最後に残った パッケージである場合は、直接記憶アクセス・コントローラ10gは、そのテー ブルを消去し、そしてデータプロセッサにメツセージを受取った旨の信号を送る 。If it is the first packet, the direct storage access controller 108 starts the first entry of this message into the table, and adds all messages. Allocate sufficient space in the data processor's memory to store the messages. Teru. Direct storage access controller 108 then forwards this packet to the in the memory block reserved for this message in the memory of the data processor. Store it in an appropriate location. Then, it searches for other packets in the buffer 102. Ru. If the packet in question is not the first packet of the message, it will be stored directly. The access controller 108 creates an entry indicating that it has received this packet. into the table, and then store the packet in a suitable location in the data processor's memory. Store in location. If the packet is the last one left to complete the message, package, the direct storage access controller 10g clear the message and signal the data processor that the message was received. .
データプロセッサが送るべきメツセージを持っているときは、それは直接記憶ア クセス・コントローラ10gに、データプロセッサ・メモリ110中のメツセー ジの位置を与える信号を送る。直接記憶アクセス・コントローラ108は次にそ のメツセージを取出し、適当なヘッダ情報をそのメツセージに割当て、そしてそ れをパケットに分割する。次にこれらパケットはバッファ102に記憶される。When a data processor has a message to send, it directly Messages in data processor memory 110 are sent to access controller 10g. sends a signal giving the location of the target. Direct storage access controller 108 then message, assign appropriate header information to the message, and into packets. These packets are then stored in buffer 102.
受信側通信プロセッサにこのメツセージの諸パケットを他のメツセージのパケッ トから識別させるため、独特なメツセージ・ラベルがヘッダ情報の中に含まれて いる。例えば、このラベルは、メツセージを送る通信プロセッサの識別と、この 通信プロセッサによりメツセージが送られる度に増分されるシーケンス番号と、 から成っている。The receiving communication processor sends the packets of this message to the packets of other messages. A unique message label is included in the header information to identify it from the There is. For example, this label identifies the communication processor sending the message and this a sequence number that is incremented each time a message is sent by the communications processor; It consists of
通信プロセッサが実行する各種タスクの優先順位とバッファ102中のスペース の割当てとは、通信隘路の可能性を最小にするように選ばれる。6個のポート1 06及び直接記憶アクセス・コントローラ108は全て同じバッファ102を共 用しており、それからパケットが伝送のため検索されそして到着時に記憶される 。この共用バッファは、内部バスと配線の数を最小にし、各通信プロセッサに必 要とするバッファ・スペース量を減らしている。Priorities of various tasks executed by the communication processor and space in the buffer 102 The allocation is chosen to minimize the possibility of communication bottlenecks. 6 ports 1 06 and direct storage access controller 108 all share the same buffer 102. The packet is then retrieved for transmission and stored upon arrival. . This shared buffer minimizes the number of internal buses and wires required for each communications processor. This reduces the amount of buffer space required.
しかしながら、このアーキテクチャはまた、共用資源としてのバッファに対する 潜在的な競争の問題をもたらす。However, this architecture also supports buffers as shared resources. poses potential competition issues.
通信プロセッサ中のパケット伝送には、三つの一般的なトラフィック・パターン と、二つの可能なデッドロック・シナリオがある。デッドロックが生ずるのは、 全てのバッファ・スペースが、隣接通信プロセッサ全てがパケットを受入れるに はビジー過ぎるため送ることができないでいるメツセージで一杯になった場合で ある。トラフィック・パターンは、当該通信プロセッサに接続されたローカル・ データプロセッサからリモート通信プロセッサへのアウトバウンド・パケット、 宛先が当該通信プロセッサに接続されたデータプロセッサであるリモート通信プ ロセッサからのインバウンド・パケットから成り、そして相互通信プロセッサ・ トラフィックは、当該通信プロセッサによって最終宛先に向けて中継されている リモート通信プロセッサで生起したパケットから成っている。There are three common traffic patterns for packet transmission in a communications processor. There are two possible deadlock scenarios. Deadlock occurs because All buffer space is large enough for all adjacent communication processors to accept packets. is full of messages that are too busy to send. be. The traffic pattern is determined by the local outbound packets from a data processor to a remote communications processor; A remote communications processor whose destination is a data processor connected to that communications processor. Consists of inbound packets from the processor and the intercommunication processor The traffic is being relayed by the communication processor towards its final destination. Consists of packets originating from a remote communications processor.
アウトバウンド・パケット及び相互通信プロセッサ・パケットは共にポート10 6を通るルートを取る。インバウンド・パケットもまた、直接記憶アクセス・コ ントローラ108を通って流れねばならない。Both outbound packets and intercommunication processor packets are on port 10. Take the route that passes through 6. Inbound packets are also sent to the direct storage access controller. must flow through the controller 108.
好適実施例において使われたバッファ割当てアルゴリズムは、デッドロックを作 らないことが保証されている。The buffer allocation algorithm used in the preferred embodiment does not create deadlocks. It is guaranteed that there will be no.
これは、パケットがデッドロックのない通信ネットワークを横切って循環するの に充分なフリー・バッファ・スペースを保有しているために達成できたのであり 、同時に、このバッファ・スペースを、六辺形アレイを横切る効率的なパケ!ノ ドの流れをもたらすような方法で割当てる。もっと悪い場合には、パケット伝送 の遅れを生じる。This allows packets to circulate across a communications network without deadlocks. This was achieved because the system had sufficient free buffer space. , and simultaneously use this buffer space to traverse the hexagonal array efficiently! of allocate in such a way as to result in a flow of In worse cases, packet transmission resulting in a delay.
好適実施例において、バッファ102は少なくとも4個のパケット分のスペース を持っている。異なった数のパケットに対するバッファ・スペースを持ったシス テムのシミュレーションでは、3個の通信グロセッサを一辺に持った六辺形アレ イにおける最適バッファ記憶容量は、19パケツトである。このバッファ・スペ ースは、バラ” フチ102中に残りが3パケット分のフリー・スペースクセス ・コントローラ108によりどの方向のトラフィックに対しても使用できる。こ の3個分のフリー・スペースきなった時点で、ポート106から入ってくるパケ ットは、それらがデッドロック発生の原因にならないという保証のためテストさ れなければならない。1個のインバウンド・パケットに対するスペースは、デッ ドロックが発生しないよう、常にフリーにしておかなければならない。ポート1 06から入ってくる、デッドロックを起こすようなどのパケットも拒否される。In a preferred embodiment, buffer 102 has space for at least four packets. have. Systems with buffer space for different numbers of packets In the system simulation, a hexagonal array with three communication grossers on one side is used. The optimal buffer storage capacity in 2 is 19 packets. This buffer space The base is a rose. There are 3 packets of free space left in the border 102. - Can be used by controller 108 for traffic in any direction. child When there are three free spaces, the packets coming in from port 106 are tested to ensure that they do not cause deadlocks to occur. must be The space for one inbound packet is It must be kept free at all times to prevent locking. port 1 Packets coming in from 06 that would cause a deadlock are also rejected.
デッドロックを防ぐのには、もう一つのパケット分のスペースがあれば足りるの であるが、好適実施例では能率を上げるために、さらに3パケット分のスペース を準備している。追加3個のパケットに対するスペースしかない場合は、直接記 憶アクセス・コントローラ108は、それ以上はバッファにパケットの追加をし ない。この場合、直接記憶アクセス・フントc7−2は、ただ、インバウンド− パケットをそのバッファから取去るだけである。Is space for one more packet enough to prevent deadlock? However, in the preferred embodiment, space for three additional packets is provided for efficiency. are preparing. If there is only space for three additional packets, write them directly. The storage access controller 108 does not add any more packets to the buffer. do not have. In this case, the direct memory access hund c7-2 is just an inbound It just removes the packet from its buffer.
もし、一つのボート106上の1個のインバウンド・パケットが当該通信プロセ ッサに接続されたデータプロセッサに向けられており、しかもそのようIこ向け られた他の一つのパケットが直接記憶アクセス・コントローラ108のデータプ ロセッサへの伝送のため待ち行列に既にある場合は、そのインバウンド・パケッ トはポート106によって拒否される。相互通信プロセッサ・パケットは、前記 パケットの受け入れが、当該通信プロセッサに接続されたデータプロセッサへの 1個のインバウンド・パケットのためのスペースをバッファ102中に残すもの となる限り、受は入れられる。この用法は、通信ネットワークが局部的にオーバ ロードになったときに、パケット“製造者”の優先順位を下げそしてパケット“ 消費者”の優先順位を上げるという効果をもっている。If one inbound packet on one boat 106 is is directed to a data processor connected to a One other packet sent to the data module of the direct storage access controller 108 If the inbound packet is already queued for transmission to the processor, The port is rejected by port 106. The intercommunication processor packet is Acceptance of the packet is sent to a data processor connected to the communications processor. leaves space in buffer 102 for one inbound packet As long as it is, Uke will be accepted. This usage is used when a communication network is locally overloaded. When loaded, lower the priority of the packet “manufacturer” and lower the priority of the packet “ This has the effect of raising the priority of consumers.
諸パケットが、隣接通信プロセッサへの伝達のためバッファ102の待ち行列に あるときは、ポート・コントローラ104は、バッファ102中のそれらパケッ トをそれらの宛先のポート106に送ることで、その数を減らそうとする試みを 続ける。このことは、各パケットの宛先ボート106を利用できるボートリスト と突合せることで行われる。上に説明したように、もし希望するポート106が ビジーのときは、当該パケットに対するカウントが増分される。このカウントが 所定の値を越えたききは、そのパケットに割当てられたポート106は、もし可 能であれば、他の代替ボート106に変更される。Packets are queued in buffer 102 for transmission to an adjacent communications processor. At some point, port controller 104 stores those packets in buffer 102. attempts to reduce that number by sending ports to their destination port 106. continue. This means that each packet's destination boat 106 is a list of available boats. This is done by comparing the As explained above, if the desired port 106 When busy, the count for that packet is incremented. This count If a request exceeds a predetermined value, the port 106 assigned to the packet will be If possible, the port is changed to another alternative boat 106.
待ち行列のパケットの数を減らすことは、バッファ102への新しいパケットの 記憶よりも優先する。従って、ポート・コントローラ104は、バス112より も、パケットを隣接通信プロセッサに伝送する用意のできているポート106に 優先権を与える。直接記憶アクセス・コントローラ108は、それがバッファか ら当該通信プロセッサに接続されたデータプロセッサにパケット伝送していると きに最高の優先順位を持っている。Reducing the number of packets in the queue reduces the number of new packets into buffer 102. Prioritize memory. Therefore, port controller 104 also to port 106, which is ready to transmit the packet to an adjacent communication processor. Give priority. Direct storage access controller 108 determines whether it is a buffer or not. is transmitting packets to a data processor connected to the communication processor. When you have the highest priority.
ここには二つの起こり得るオーバロード状態がある。There are two possible overload situations here.
その第1は、通信プロセッサに対する全ロードは比較的少ないが、しかし、ポー ト106のいくつかが1個のポートから全て再伝送されるべき到来パケットを持 っている場合について考えてみる。この場合、通信プロセッサに対する全ロード は少なくても、多くのパケットが1個のポート106を通って配送されるのを待 っている(只一つのポート106が苛酷に使われている)。この通信プロセッサ を他の隣接通信プロセッサとリンクしているフリーのポート106は多くあるの で、この場合は、パケットを代替ポート106を通す別ルートにするのが有利で ある。上に述べたアルゴリズムが自動的にこのルート変更を行う。何故なら、パ ケットがポート・コントローラ104により検査され、そしてそれが、割当てら れたポート106がビジーのため配送できないことを見出す度毎に、カウンタが 増分されるからである。そのカウントが所定の値を越えたときは、もしできれば 、そのパケットは別ルートに回され、そのワークロードを使用の少ないポート1 06に移す。First, the total load on the communication processor is relatively small, but the If some of the ports 106 have incoming packets that should all be retransmitted from one port, Let's think about the case where In this case, the total load on the communication processor Wait for many packets to be delivered through a single port 106, at least a few. (only one port 106 is heavily used). This communication processor There are many free ports 106 linking the communication processor with other neighboring communication processors. In this case, it is advantageous to route the packet through the alternate port 106. be. The algorithm described above automatically performs this route change. Because Pa The port is examined by port controller 104 and it is Each time it finds that port 106 is busy and cannot deliver, a counter is set. This is because it is incremented. When that count exceeds a predetermined value, if possible , the packet is rerouted and the workload is transferred to the less used port 1. Move to 06.
次に、多くの隣接通信プロセッサで混雑している場合について考える。バッファ 102は6個のポート106全部に向けられたパケットで直ぐに一杯になる。苛 酷に使われていないポート106にルート変更できるパケットは、そのようにル ート変更される。これはまた、少ないロードの状態においてより平等なパケット ロード配分をもたらすことになる。しかしながら、これは、パケット伝送の一層 の後れを加えることにもなる。最後に、デッドロック防止に関して上述したよう に、混雑した所での新しいパケットの生成は、その混雑を救うために、減らされ る。Next, consider a case where there is congestion with many adjacent communication processors. buffer 102 quickly fills up with packets destined for all six ports 106. Irritation Packets that can be rerouted to the heavily underused port 106 are routed that way. The root is changed. This also results in more equal packets in less loaded conditions. This will result in load distribution. However, this is due to the fact that packet transmission It also adds to the lag. Finally, as mentioned above regarding deadlock prevention, The generation of new packets at congested areas is reduced to relieve the congestion. Ru.
当業者には、本発明の請求の範囲から外れることなく、種々の変更ができること は明らかであろう。Those skilled in the art will appreciate that various modifications can be made without departing from the scope of the claims of the present invention. should be obvious.
2g FIGURE 1 FIGURE 3(e) FIGtJRE 3Tol \す FIGURE H5 FIGURE 11 国際調査報告 In瞳+II+l自anmlAapli+++:onNo、PCT105861 020392g FIGURE 1 FIGURE 3(e) FIGtJRE 3Tol \vinegar FIGURE H5 FIGURE 11 international search report Inpupil+II+lselfanmlAapli+++:onNo, PCT105861 02039
Claims (12)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78126585A | 1985-09-27 | 1985-09-27 | |
US781265 | 2001-02-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63501663A true JPS63501663A (en) | 1988-06-23 |
Family
ID=25122202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61505265A Pending JPS63501663A (en) | 1985-09-27 | 1986-09-26 | multiprocessor communication device |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0244443A4 (en) |
JP (1) | JPS63501663A (en) |
CA (1) | CA1263760A (en) |
WO (1) | WO1987002155A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2213027B (en) * | 1987-12-01 | 1992-03-04 | Texas Instruments Ltd | A digital electronic system |
US5134711A (en) * | 1988-05-13 | 1992-07-28 | At&T Bell Laboratories | Computer with intelligent memory system |
FR2638260B1 (en) * | 1988-10-26 | 1994-04-29 | Onera (Off Nat Aerospatiale) | SWITCHING DEVICES AND DATA COMMUNICATION NETWORKS FOR MULTIPROCESSOR SYSTEMS |
CA2043505A1 (en) * | 1990-06-06 | 1991-12-07 | Steven K. Heller | Massively parallel processor including queue-based message delivery system |
US5274782A (en) * | 1990-08-27 | 1993-12-28 | International Business Machines Corporation | Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks |
US5654695A (en) * | 1991-02-22 | 1997-08-05 | International Business Machines Corporation | Multi-function network |
US5404461A (en) * | 1991-03-29 | 1995-04-04 | International Business Machines Corp. | Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks |
US5444705A (en) * | 1991-02-22 | 1995-08-22 | International Business Machines Corp. | Dual priority switching apparatus for simplex networks |
EP0505780A3 (en) * | 1991-03-29 | 1993-11-03 | Ibm | Priority broadcast and multi-cast for unbuffered multi-stage network |
EP0506135A3 (en) * | 1991-03-29 | 1993-11-03 | Ibm | Multi-sender/switching apparatus for status reporting over unbuffered asynchronous multi-stage networks |
EP0505782A3 (en) * | 1991-03-29 | 1993-11-03 | Ibm | Multi-function network |
US5781715A (en) * | 1992-10-13 | 1998-07-14 | International Business Machines Corporation | Fault-tolerant bridge/router with a distributed switch-over mechanism |
JP3698761B2 (en) * | 1995-07-19 | 2005-09-21 | 富士通株式会社 | Information transfer method and information transfer apparatus |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3308436A (en) * | 1963-08-05 | 1967-03-07 | Westinghouse Electric Corp | Parallel computer system control |
US3805234A (en) * | 1972-07-31 | 1974-04-16 | Westinghouse Electric Corp | Digital data transmission system |
US4270170A (en) * | 1978-05-03 | 1981-05-26 | International Computers Limited | Array processor |
BE886129A (en) * | 1979-11-21 | 1981-05-13 | Bfg Glassgroup | DEVICE FOR THE TREATMENT OF ARTICLES IN MATTER: VITREOUS |
US4412285A (en) * | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
US4494185A (en) * | 1981-04-16 | 1985-01-15 | Ncr Corporation | Data processing system employing broadcast packet switching |
US4468727A (en) * | 1981-05-14 | 1984-08-28 | Honeywell Inc. | Integrated cellular array parallel processor |
US4503501A (en) * | 1981-11-27 | 1985-03-05 | Storage Technology Corporation | Adaptive domain partitioning of cache memory space |
JPS5945527A (en) * | 1982-09-07 | 1984-03-14 | Hitachi Ltd | Controlling system of bus |
-
1986
- 1986-09-22 CA CA000518736A patent/CA1263760A/en not_active Expired
- 1986-09-26 WO PCT/US1986/002039 patent/WO1987002155A1/en not_active Application Discontinuation
- 1986-09-26 EP EP19860906183 patent/EP0244443A4/en not_active Withdrawn
- 1986-09-26 JP JP61505265A patent/JPS63501663A/en active Pending
Non-Patent Citations (1)
Title |
---|
PROCEEDINGS OF THE 1985 INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE=1985 * |
Also Published As
Publication number | Publication date |
---|---|
EP0244443A1 (en) | 1987-11-11 |
WO1987002155A1 (en) | 1987-04-09 |
CA1263760A (en) | 1989-12-05 |
EP0244443A4 (en) | 1989-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4922408A (en) | Apparatus for multi-processor communications | |
US11640362B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
US5218676A (en) | Dynamic routing system for a multinode communications network | |
US7039914B2 (en) | Message processing in network forwarding engine by tracking order of assigned thread in order group | |
Mukherjee et al. | The Alpha 21364 network architecture | |
US20180349196A1 (en) | Implementing a Service Using Plural Acceleration Components | |
US7706275B2 (en) | Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by employing bandwidth shells at areas of overutilization | |
JPH08185380A (en) | Parallel computer | |
JPS63501663A (en) | multiprocessor communication device | |
US20050201356A1 (en) | Adaptive routing for hierarchical interconnection network | |
JPH06266684A (en) | Interprocessor routing system | |
JPH07239835A (en) | In-network data transfer control system for parallel computer | |
Shin | Harts: A distributed real-time architecture | |
Daniel et al. | A router architecture for flexible routing and switching in multihop point-to-point networks | |
CN113285880A (en) | Multicast routing method, interconnection device, mesh network system and configuration method thereof | |
Gunningberg | Innovative communication processors: A survey | |
MULTIPROCESSORS | po SARING INTERCONNECTION NETWORKS | |
Gunningberg | Processors: A Survey | |
Patil et al. | Communication in parallel and distributed systems | |
Shin et al. | A floating communication processor architecture in a distributed real-time system | |
JPH1091601A (en) | Cluster connected parallel computer |