JP3586603B2 - データ転送装置及びデータ転送方法 - Google Patents
データ転送装置及びデータ転送方法 Download PDFInfo
- Publication number
- JP3586603B2 JP3586603B2 JP33463299A JP33463299A JP3586603B2 JP 3586603 B2 JP3586603 B2 JP 3586603B2 JP 33463299 A JP33463299 A JP 33463299A JP 33463299 A JP33463299 A JP 33463299A JP 3586603 B2 JP3586603 B2 JP 3586603B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- nodes
- signal
- ring bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/37—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
- H04L12/43—Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、リング接続方式を採用するデータ転送装置及びデータ転送方法に関し、特にリングバスの使用効率を向上させる技術に関する。
【0002】
【従来の技術】
従来、複数のプロセッサ間でデータ転送を高速に行うための接続方式としてバス接続方式、リング接続方式、スイッチ接続方式等が知られている。このうち、リング接続方式は種々の利点を有することから、種々の関連技術が提案されている。例えば、特開平9−200239号公報には、「リング接続を用いたデータ転送方法及び情報処理システム」(以下、「先行技術」という)が開示されている。
【0003】
この先行技術に開示されたデータ情報処理システムは、図11に示すように、リングバス50とこのリングバス50に接続された複数のノード(図示例では、4個のノード0〜3)とから構成されている。各ノードとしては、例えばプロセッサ、メモリを制御するためのメモリコントローラ、入出力装置(I/O)を制御するための入出力コントローラ、DMA(Direct memory access)コントローラといったモジュールが使用される。
【0004】
この情報処理システムでは、データの送受はリングバス50上を一方向に転送されるパケットを用いて行われる。図11ではパケットが時計回り方向に転送されるものと仮定している。この情報処理システムの動作は以下の通りである。
【0005】
先ず、各ノード0〜3がパケットをリングバス50に送出する動作(以下、「ライト動作」という)を説明する。この情報処理システムは、各ノードがライト権、つまりパケットをリングバス50に送出する権利を獲得するための独立した選択線(図示せず)を備えている。
【0006】
ノード0〜3のそれぞれは、上記選択線をセットしてライト権を要求する。これは自ノードより上流側の所定ノードに対向するスロットが空きスロットであるかどうかを調べることにより行われる。そして、各ノードは、受信された選択線がセットされていないことによりライト権を獲得したことを知り、上記空きスロットが自ノードに到着するまでの間に送信すべきライトデータを含むパケットを生成する。そして、該空きスロットが自ノードに到着した際に生成したバケットをリングバス50に送出する。以上によりライト動作が完了する。
【0007】
次に、各ノード0〜3がリングバス50からパケットを受け取る動作(以下、「リード動作」という)を説明する。ノード0〜3のそれぞれは、上流側のノードから送られてきたパケットをそのまま下流側のノードに転送すると同時に、上流側のノードから送られてきた全てのパケットをバッファ(図示しない)に一時的に格納する。バッファに格納されたパケットの有効性確認、つまり自己宛のパケットであるかどうかの確認は、パケットを下流側のノードに転送した後のサイクルで行われる。そして、有効であることが確認されるとそのパケットがバッファからノードの内部に取り込まれる。以上のように構成れることにより、各ノードのレイテンシが短縮可能になっている。
【0008】
また、バッファからパケットがノード内部に取り込まれた場合は、取り込まれたパケットと同一のパケットであってリングバス50上に存在するものを無効にする必要がある。そこで、パケットを取り込んだノードは、該パケットと同一のパケットがリングバス50を一周して自ノードに到着した際に無効化する。この構成によれば、リングバス50を一周するパケットは何れかのノードで必ず取り込まれるので不要なパケットを確実に無効化できる。この無効化によって、リングバス50上の当該スロットが開放され、空きスロットになる。
【0009】
上記のように構成される従来の情報処理システムの動作を、図12に示したタイミングチャートを参照しながら更に詳細に説明する。この情報処理システムは以下の条件1〜3の下に動作するものとする。なお、図12では、ノード0〜3のそれぞれに割り当てられているサイクルをC0〜C3で表し、リングバス50をRdata[x]で表し、このリングバスRdata[x]上の有効データN0〜N3で表している。
(1)条件1:リングバス上にノード2からノード0への有効データN0が存在する。
(2)条件2:ノード0は、ノード1へのライトデータを保持している。
(3)条件3:ノード1はノード3へのライトデータを保持している。
【0010】
図12において、ノード0は次のように動作する。即ち、ノード0は、ノード0サイクルC0(タイミングT3)でリングバス50上の有効データN0を受け取ってバッファに格納すると同時に次のノード1へ転送する。このノード0はノード1へのライトデータを保持しているが、バッファに格納されたデータの有効性確認は後に行われるため、タイミングT3では無効化やライトデータの送出を行うことができない。そこで、ノード0は、次のノード0サイクルC0が到来するまで待つことになる。
【0011】
ところで、有効データN0は、ノード2がノード2サイクルC2(タイミングT1)でリングバス50に送出したものである。従って、この有効データN0は、ノード2サイクルC2(タイミングT5)で無効化される。その結果、ノード2サイクルC2(タイミングT5)では当該スロットは空きスロットになり、次のノード3サイクルC3(タイミングT6)でもその状態は維持される。ノード0は、ノード3サイクルC3(タイミングT6)では当該スロットは空きスロットであるのでライト権を獲得し、次のノード0サイクルC0(タイミングT7)で有効データN1としてリングバス50に送出する。この有効データN1は、更に次のノード0サイクルC0(タイミングT11)で無効化される。
【0012】
ノード1は次のように動作する。即ち、上述したように、有効データN0の無効化は、ノード2サイクルC2(タイミングT5)で行われる。従って、ノード1はノード3へのライトデータを保持しているが、ノード0サイクルC0(タイミングT3)ではリングバス50上に有効データN0が残っているのでライト権を獲得できず、次のノード1サイクルC1が到来するまで待つことになる。
【0013】
ノード1は、次のノード1サイクルC1(タイミングT8)では、ノード0がタイミングT7で送出した有効データN1を受け取るが、有効データN1を無効化できるのはノード0のみであるため、タイミングT8では無効化やライトデータの送出を行うことができない。そこで、ノード1は、更に次のノード1サイクルC1が到来するまで待つことになる。
【0014】
有効データN1は、ノード0がノード0サイクルC0(タイミングT7)でリングバス50に送出したものであるので、ノード0サイクルC0(タイミングT11)で無効化される。その結果、ノード0サイクルC0(タイミングT1)では当該スロットは空きスロットになる。ノード1は、ノード0サイクルC0(タイミングT11)では当該スロットは空きスロットであるのでライト権を獲得し、次のノード1サイクルC1(タイミングT12)で有効データN3としてリングバス50に送出する。この有効データN3は、ノード3サイクルC3(タイミングT14)でノード3によって取り込まれる。
【0015】
従来の情報処理システムでは、上記のような動作を繰り返し実行することにより、リングバスに接続された複数のモジュール間でデータ転送が行われる。ちなみに、従来の情報処理システムでは、上記条件1〜3に示したデータ転送を完了するまでに、14クロックを必要とする。
【0016】
【発明が解決しようとする課題】
上述したように、従来の情報処理システムでは、受信データの有効性確認は、受信データがノードの内部に取り込まれた後に行われるので、有効データをリングバスから受信すると同時に受信データの無効化や新たなデータのライトができない。
【0017】
この場合、受信データの無効化はリングバスを一周した後に行われるため、有効データが取り込まれた後はそのスロット内のデータは本来不要であるにも拘わらず、無効化されるまでの間スロットを占有する。また、ノードが送信すべきデータを保持している状態で有効データを受信した場合、有効データが取り込まれた後はそのスロットを用いて送信データを送出できるにも拘わらず、取り込まれたデータと同一のデータがリングバスを一周するまで保持される。その結果、リングバスの使用効率が低下する。
【0018】
本発明は、上述した問題を解消するためになされたものであり、リングバスの使用効率を高めることのできるデータ転送装置及びデータ転送方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明の第1の態様に係るデータ転送装置は、上記目的を達成するために、リングバスに接続された複数のノードのそれぞれから送出されたデータを、前記リングバス上を一方向に送られるスロットに収容して前記複数のノードの何れかに転送するデータ転送装置であって、前記複数のノードのそれぞれは、自ノードより上流側のノードに対向するスロットに自ノード宛のデータが存在するかどうかを検出する検出部と、前記検出部により自ノード宛のデータが存在することが検出された場合に、前記スロットが自ノードに対向した時に前記自ノード宛のデータを取り込む制御部、とを備えている。そして、この第1の態様に係るデータ転送装置の検出部は、前記複数のノードのそれぞれが送出したデータの宛先を示すID信号を前記リングバスにおけるデータの転送に同期して転送するID線と、前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記リングバスにおけるデータの転送に同期して転送するバリッド線、とを更に備え、自ノードより上流側の所定ノードに対向する部分の前記ID線内のID信号が自ノードを示しており、且つ前記所定ノードに対向する部分の前記バリッド線内にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するように構成できる。
【0020】
この場合、前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対向する部分の前記ID線及び前記バリッド線に前記下流側ノードを指定するID信号及びバリッド信号をそれぞれ出力するように構成するのが好ましい。
【0021】
また、この第1の態様に係るデータ転送装置の検出部は、前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記リングバスにおけるデータの転送に同期して転送するバリッド線を、前記複数のノードのそれぞれに対応して更に備え、自ノードに対応するバリッド線の、自ノードより上流側のノードに対向する部分にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するように構成できる。この場合、前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対応するバリッド線の、該下流側ノードに対向する部分にバリッド信号を出力するように構成するのが好ましい。
【0022】
或いはまた、この第1の態様に係るデータ転送装置の制御部は、送出すべきライトデータが保持されていない場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットを無効化するように構成できる。或いはまた、上記制御部は、送出すべきライトデータが保持されている場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットに前記ライトデータを収容して送出するように構成できる。
【0023】
また、本発明の第2の態様に係るデータ転送方法は、上記と同様の目的で、リングバスに接続された複数のノードのそれぞれから送出されたデータを、前記リングバス上を一方向に送られるスロットに収容して前記複数のノードの何れかに転送するデータ転送方法であって、前記複数のノードのそれぞれは、A)自ノードより上流側のノードに対向するスロットに自ノード宛のデータが存在するかどうかを検出し、B)該検出結果が自ノード宛のデータが存在することを示している場合に、前記スロットが自ノードに対向した時に前記自ノード宛のデータを取り込む。そして、この第2の態様に係るデータ転送方法におけるステップ(A)は、前記複数のノードのそれぞれが送出したデータの宛先を示すID信号を前記リングバスにおけるデータの転送に同期して転送するステップと、前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記リングバスにおけるデータの転送に同期して転送するステップ、とを更に備え、自ノードより上流側の所定ノードに対向する部分のID信号が自ノードを示しており、且つ前記所定ノードに対向する部分にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するように構成できる。
【0024】
この場合、前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対向する部分のID信号及びバリッド信号をそれぞれ出力するように構成することが好ましい。
【0025】
また、この第2の態様に係るデータ転送方法におけるステップ(A)は、前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記複数のノード毎に前記リングバスにおけるデータの転送に同期して転送するステップを更に備え、自ノードに対応するバリッド線の、自ノードより上流側のノードに対向する部分にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するように構成することが好ましい。この場合、前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対応するバリッド線の、該下流側ノードに対向する部分にバリッド信号を出力するように構成することが好ましい。
【0026】
或いはまた、この第2の態様に係るデータ転送方法におけるステップ(B)は、送出すべきライトデータが保持されていない場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットを無効化するように構成できる。或いはまた、送出すべきライトデータが保持されている場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットに前記ライトデータを収容して送出するように構成できる。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、以下では、説明を簡単にするために、リングバスに4個のノードが設けられているデータ転送装置について説明するが、本発明に係るデータ転送装置のノード数は4個に限定されず任意である。また、以下では、本発明の特徴であるリード動作のためめの構成及び動作を中心に説明する。
【0028】
(実施の形態の概要)
先ず、本発明の実施の形態に係るデータ転送装置の概要を説明する。このデータ転送装置は、図1に示すように、リングバス10とこのリングバス10に接続された4個のノード0〜3から構成されている。各ノードとしては、例えばプロセッサ、メモリコントローラ、入出力コントローラ、DMAコントローラといったモジュールを使用できる。
【0029】
リングバス10は、例えば32ビットのバス幅を有するデータバスから構成されている。なお、この実施の形態ではリングバス10のバス幅を32ビットとしているが、本発明におけるリングバス10のバス幅はこれに限定されず任意である。このリングバス10は、隣り合うノードを相互に接続する。
【0030】
このデータ転送装置におけるデータの送受は、リングバス10上を時計回り向に転送されるパケットを用いて行われる。即ち、リングバス10上のパケットは1サイクル毎に下流側のノードに転送される。従って、パケットは4サイクルでリングバス10を一周することになる。ノード0、ノード1、ノード2及びノード3のそれぞれには4サイクルの中の1サイクルが割り当てられており、それぞれ「ノード0サイクル」、「ノード1サイクル」、「ノード2サイクル」及び「ノード3サイクル」という。また、各サイクルはスロットと呼ばれる。この場合、このデータ転送装置は、リング状に連結された4つのスロットがリングバス10上を1サイクル毎に時計回りに移動しながらデータを送受すると考えることができる。
【0031】
このデータ転送装置では、各ノードは、自己に割り当てられたサイクルでのみ、リングバス10へのパケットの送出(ライト)及びリングバス10からのパケットの受け取り(リード)が可能である。例えば、ノード0は、ノード0サイクルが到来した時にパケットのリード及びライトが可能である。
【0032】
以上のように構成されるデータ転送装置の動作の概要を図2に示す。今、ノード0に着目すると、ノード0は、ノード3サイクルをチェックする(Check)。このチェックでは、ノード3サイクルに自ノード0に対するリード要求が存在するかどうかのチェック、パケットをリードする準備、ノード3サイクルのスロットが使用中であるかどうかのチェック、送出すべきライトデータを含むパケットの生成、ライト動作の準備、無効化の準備等が行われる。
【0033】
また、ノード0は、ノード0サイクルでパケットのリード動作及びライト動作を行う(Execute)。なお、ノード0は、ノード1サイクル及びノード2サイクルでは、ノード3から送られてきたパケットを単にノード1に転送するだけである(Transfer)。以上は、ノード0についての動作であるが、その他のノードについても同様である。
【0034】
次に、このデータ転送装置の動作を詳細に説明する。先ず、ライト動作を図3に示したフローチャートを参照しながら説明する。なお、各ノードの動作は同じであるので、以下ではノード0の動作についてのみ説明する。
【0035】
今、各ノードのサイクルが、図1に示すような状態で存在する場合を考える。ノード0は、先ず、その内部にライト要求が存在するかどうかを調べる(ステップS10)。そして、ライト要求が存在することが判断されると、各ノードはライト権、つまりパケットをリングバス10に送出する権利を獲得できるかどうかを調べる(ステップS11)。これは、自ノード0から上流側に隣接するノード3に対向しているスロット(ノード3サイクル)が空きであるかどうか又は該スロットに自ノード0宛のデータが存在するかどうかを調べることにより行われる。
【0036】
そして、ライト権を獲得できることが判断された場合は、送出すべきライトデータを含むパケットを生成する(ステップS12)。次いで、ノード0は、自ノードのサイクル(ノード0サイクル)が到来したかどうかを調べる(ステップS13)。ここで、自ノードのサイクルでない、即ち、未だデータをライトするタイミングでないと判断されると、ライトできるタイミングが到来するまで待機する。そして、自ノードのサイクルが到来したことが判断されると、上記ステップS12で生成したパケットをリングバス10に送出する(ステップS14)。これにより、パケットの送出が完了する。
【0037】
なお、上記ステップS10でライト要求が存在しないことが判断された場合はライト動作は行われない。また、上記ステップS11でライト権を確保できないことが判断された場合、つまりノード3サイクルが空きスロットでない場合はライト動作は行われない。この場合、ライト要求は保留されたままになり、次のサイクルで上述したことと同様の動作が行われる。
【0038】
次に、リード動作を図4に示したフローチャートを参照しながら説明する。各ノードのサイクルが、図1に示すような状態で存在する場合を考える。
【0039】
ノード0は、先ず自ノード0に対する他ノードからのデータ転送(リード要求)が存在するかどうかを調べる(ステップS20)。これは、自ノード0から上流側に隣接するノード3に対向しているスロット(ノード3サイクル)に自ノード宛のパケットが存在するかどうかを調べることにより行われる。
【0040】
そして、自ノード宛のパケットが存在することが判断されると、ノード0は、その内部にライト要求が存在するかどうかを調べる(ステップS21)。そして、ライト要求が存在することが判断されると、送出すべきライトデータを含むパケットを生成する(ステップS22)。
【0041】
次いで、ノード0は、自ノードのサイクル(ノード0サイクル)、即ち、ライトタイミングが到来したかどうかを調べる(ステップS23)。ここで、ライトタイミングが到来していないことが判断されると、ライトタイミングが到来するまで待機する。そして、ライトタイミングが到来したことが判断されると、リングバス10からパケットを受け取る(ステップS24)。次いで、上記ステップS22で生成したパケットをリングバス10に送出する(ステップS24)。これにより、パケットの受け取り及び送出が1サイクル内で完了する。
【0042】
上記ステップS21で、ライト要求が存在しないことが判断されると、ノード0は、無効化の準備を行う(ステップS26)。次いで、ノード0は、自ノードのサイクル(ノード0サイクル)、即ち、ライトタイミングが到来したかどうかを調べる(ステップS27)。ここで、ライトタイミングが到来していないことが判断されると、ライトタイミングが到来するまで待機する。そして、ライトタイミングが到来したことが判断されると、リングバス10からパケットを受け取る(ステップS28)。次いで、無効化を行う(ステップS28)。これにより、パケットの受け取りが完了し、且つ受け取ったパケットが存在したスロットが空きにされる。なお、上記ステップS20で、自ノード0に対する他ノードからのデータ転送が存在しないことが判断された場合は、上流側に隣接するノードからのデータを下流側に隣接するノードに転送する。
【0043】
次に、上記のように構成されるデータ転送装置の動作を、従来の技術の欄で示したと同一の条件1〜3の下において、図5に示したタイミングチャートを参照しながら更に詳細に説明する。
【0044】
図5において、ノード0は、ノード3サイクルC3(タイミングT2)において、自ノード0に対する有効データN0がリングバス10上に存在し、次のノード0サイクルC0で受け取ることができることを確認する。また、このノード0は、ノード1へのライトデータを保持しているので、上記確認がとれたら、ライトデータを含むパケットを生成する。
【0045】
そして、次のノード0サイクルC0(タイミングT3)において、リングバス10から有効データN0を受け取ると同時に、ライトデータを含むパケットをリングバス10に送出する。このパケットは、リングバス10上では、次のノード1サイクルC1(タイミングT4)から有効データN1になる。
【0046】
一方、ノード1は、ノード0サイクルC0(タイミングT3)において、自ノード1に対する有効データN1がパケットとして生成されていて、次のノード1サイクルC1で受け取ることができることを確認する。また、このノード1は、ノード3へのライトデータを保持しているので、上記確認がとれたら、ライトデータを含むパケットを生成する。
【0047】
そして、次のノード1サイクルC1(タイミングT4)において、リングバス10から有効データN1を受け取ると同時に、ライトデータを含むパケットをリングバス10に送出する。このパケットは、リングバス10上では、次のノード2サイクルC2(タイミングT5)から有効データN3になる。
【0048】
更に、ノード3は、ノード2サイクルC2(タイミングT5)において、自ノード3に対する有効データN3がリングバス10上に存在し、次のノード3サイクルC3で受け取ることができることを確認する。また、このノード1は、ノード3へのライトデータを保持していないので、上記確認がとれたら、無効化の準備をする。
【0049】
そして、次のノード3サイクルC3(タイミングT6)において、リングバス10から有効データN3を受け取ると同時に、当該スロットの無効化を行う。これにより、そのスロットは、次のノード0サイクルC0からリングバス10上で空きスロットになる。
【0050】
以上のように構成されるデータ転送装置では、上記条件1〜3に示したデータ転送を完了するまでに6クロックしか必要としない。これに対し、上述した従来の情報処理システムでは、同様のデータ転送を完了するまでに14クロックを必要とする。このように、この実施の形態に係るデータ転送装置によれば、不要なパケットがリングバスを占有することがないので、リングバスの使用効率を上げることができ、その結果、データの転送に要する時間を大幅に改善することができる。
【0051】
(実施の形態1)
次に、本発明の実施の形態1に係るデータ転送装置を説明する。このデータ転送装置は、上記概略的に説明したデータ転送装置を更に具体化したものである。このデータ転送装置は、自ノードの上流側に隣接するノードに対向しているスロットに自ノード宛のパケットが存在するかどうかを、ノード番号を示す2本のID線と1本のバリッド線とによってチェックする。
【0052】
図6は、この実施の形態1に係るデータ転送装置の構成を示すブロック図である。このデータ転送装置は、リングバス10、バリッド線(Valid)11、第1ID線(ID[1])12、第2ID線(ID[0])13、ノード0、ノード1、ノード2及びノード3から構成されている。また、ノード0はノード0データ部とノード0制御部とから構成され、ノード1はノード1データ部とノード1制御部とから構成され、ノード2はノード2データ部とノード2制御部とから構成され、ノード3はノード3データ部とノード3制御部とから構成されている。
【0053】
リングバス10は、各々がデータ入力端子にセレクタK00〜K03を備えた4個のDタイプのフリップフロップF00〜F03をリング状に接続して構成されている。フリップフロップF00〜F03はそれぞれノード0〜3に対応し、各フリップフロップにはクロックが共通に供給される。フリップフロップF00に備えられたセレクタK00の一方の入力端子にはフリップフロップF03の出力が供給され、他方の入力端子にはノード0データ部からライトデータWdataN0[x]が供給される。また、該セレクタK00のセレクト端子には、ノード0制御部からのライトイネーブル信号WEが供給される。該セレクタK00は、ライトイネーブル信号WEに応じて、フリップフロップF03の出力及びノード0制御部からのライトデータWdataN0[x]の一方を選択してフリップフロップF00のデータ入力端子に供給する。更に、フリップフロップF03の出力はノード0データ部に供給される。ノード1〜3用の構成も上記と同様であるが、図6では図面の煩雑さを避けるために一部の接続を省略してある。また、フリップフロップF00〜F03はデータバス幅xの分設けられているが、図6では上記と同様の理由により省略してある。
【0054】
バリッド線11は、各々がデータ入力端子にセレクタK10〜K13を備えた4個のDタイプのフリップフロップF10〜F13をリング状に接続して構成されている。フリップフロップF10〜F13はそれぞれノード0〜3に対応し、各フリップフロップにはクロックが共通に供給される。フリップフロップF10に備えられたセレクタK10の一方の入力端子にはフリップフロップF13の出力が供給され、他方の入力端子にはノード0制御部からの信号VDN0が供給される。また、該セレクタK10のセレクト端子には、ノード0制御部からの信号VSN0が供給される。該セレクタK10は、信号VSN0に応じて、フリップフロップF13の出力及びノード0制御部からの信号VDN0の一方を選択してフリップフロップF10のデータ入力端子に供給する。更に、フリップフロップF13の出力はノード0の制御部に供給される。他のフリップフロップF11〜F13の周囲の回路構成も同様である。
【0055】
第1ID線12は、各々がデータ入力端子にセレクタK20〜K23を備えた4個のDタイプのフリップフロップF20〜F23をリング状に接続して構成されている。フリップフロップF20〜F23はそれぞれノード0〜3に対応し、各フリップフロップにはクロックが共通に供給される。フリップフロップF20に備えられたセレクタK20の一方の入力端子にはフリップフロップF23の出力が供給され、他方の入力端子にはノード0制御部からの信号IDDN0[1]が供給される。また、該セレクタのセレクト端子には、ノード0制御部からの信号IDSN0[1]が供給される。該セレクタK20は、信号IDSN0[1]に応じて、フリップフロップF23の出力及びノード0制御部からの信号IDDN0[1]の一方を選択してフリップフロップF20のデータ入力端子に供給する。更に、フリップフロップF22の出力はノード0制御部に供給される。ノード1〜3用の構成も同様である。
【0056】
同様に、第2ID線13は、各々がデータ入力端子にセレクタK30〜K33を備えた4個のDタイプのフリップフロップF30〜F33をリング状に接続して構成されている。フリップフロップF30〜F33はそれぞれノード0〜3に対応し、各フリップフロップにはクロックが共通に供給される。フリップフロップF30に備えられたセレクタK30の一方の入力端子にはフリップフロップF33の出力が供給され、他方の入力端子にはノード0制御部からの信号IDDN0[0]が供給される。また、該セレクタK30のセレクト端子には、ノード0制御部からの信号IDSN0[0]が供給される。該セレクタK30は、信号IDSN0[0]に応じて、フリップフロップF33の出力及びノード0制御部からの信号IDDN0[0]の一方を選択してフリップフロップF30のデータ入力端子に供給する。更に、フリップフロップF32の出力はノード0制御部に供給される。ノード1〜3用の構成も同様である。
【0057】
以上のように構成されるデータ転送装置の動作を、図7に示したタイミングチャートを参照しながら説明する。このタイミングチャートは、上述した条件1〜3の下で動作する場合を示している。
【0058】
先ず、図7(2)に示すように、ノード3サイクルC3におけるリングバスRdataN3[x]上の有効データはN0Dataであり、ノード3宛のデータではない。従って、ノード3サイクルC3では、リングバスRdataN3[x]上のデータN0Dataのリード、無効化及びライトの何れも起こらず、次のノード0サイクルC0のリングバスRdataN0[x]へ送られる。
【0059】
一方、ノード0の制御部は、フリップフロップF12からのバリッド信号ValidN3が有効データであることを示しており(図7(8)参照)、且つ、フリップフロップF22からの信号IDN3[1]及びフリップフロップF32からの信号IDN3[0](以下、「IDN3[1:0]」と総称する)が自ノード0を示している(図7(12)参照)ことから、図7中の矢印(a)で示すように、次のノード0サイクルC0で信号VSN0をセットする(図7(19)参照)。上記信号ValidN3は次のノード0サイクルC0へ送られて信号ValidN0になる(図7(9)参照)。また、信号IDN3[1:0]は、次のノード0サイクルへ送られて信号IDN0[1:0]になる(図7(13)参照)。
【0060】
また、ノード0の制御部の内部では、図7中の矢印(b)で示すように、ライトデータを保持していることを表す信号WreqN0がセットされている(図7(16)参照)ことから、次のノード0サイクルC0で信号VDN0をセットする(図7(18)参照)。また、ノード0の制御部は、上記保持しているライトデータの宛先N1を表す信号IDDN0[1:0]を出力する(図7(17)参照)。このうち、信号IDDN0[1]はフリップフロップF20のセレクタのデータ入力端子へ、信号IDDN0[0]はフリップフロップF30のセレクタのデータ入力端子へ、それぞれ供給される。更に、図7には図示されていないが、ノード0の制御部は、データ部に保持されているライトデータの宛先N1を選択するための信号IDSN0[1:0]を出力する。このうち、信号IDSN0[1]はフリップフロップF20のセレクタのセレクト入力端子へ、信号IDSN0[0]はフリップフロップF30のセレクタのセレクト入力端子へ、それぞれ供給される。
【0061】
次のノード0サイクルC0では、ノード0の制御部は、信号IDN0[1:0]が自ノード0を示しており(図7(13)参照)、且つ信号ValidN0がオンにされているのでリードイネーブル信号REをアクティブにする。これにより、リングバスRdataN0[x]に流れているデータN0Dataがノード0のデータ部に取り込まれる。また、ノード0のデータ部は、保持しているライトデータN1Dataを信号WdataN0[x]としてフリップフロップF00のセレクタに供給し(図7(6)参照)、ライト動作の準備をする。
【0062】
上記の状態で、ノード0サイクルC0からノード1サイクルC1に移行することにより次のような各種データの切り替えが行われる。即ち、ノード0の制御部は、信号VSN0及び信号VDN0がセットされていることにより(図7(18)及び(19)参照)、図7中の矢印(c)で示すように、ライトイネーブル信号WE(図7では図示を省略してある)をアクティブにする。これにより、フリップフロップF00のセレクタは、ノード0のデータ部からの信号WdataN0[x]を選択する。その結果、セレクタの一方の入力端子に供給されているデータN0Dataは捨てられ(図7(3)参照)、フリップフロップF00からリングバスRdataN1[x]に有効データN1Dataが出力される(図7(4)参照)。
【0063】
また、信号VSN0及び信号VDN0がセットされていることにより、フリップフロップF10のセレクタは、ノード0の制御部からの信号VDN0を選択する。その結果、フリップフロップF10から信号ValidN1が出力される(図7(10)参照)。
【0064】
更に、ノード0の制御部からの信号IDSN0[1]信号及びIDSN0[0]がフリップフロップF20及びF30のセレクタのセレクト入力端子にそれぞれ供給されることにより、ノード0の制御部からの信号IDDN0[1]及び信号IDDN0[0]をそれぞれ選択する。その結果、フリップフロップF20及びF30から信号IDDN0[1]及び信号IDDN0[0]がIDN1[1:0]として出力される(図7(14)参照)。
【0065】
以上により、ノード0がリングバス10からデータN0Dataをリードするという動作と共に、データN1Dataをリングバス10にライトし、且つデータN1Dataが有効である旨を示すバリッド信号及びデータN1Dataの宛先を示すIDを出力するという動作がノード0サイクルC0という1サイクルで行われる。
【0066】
次に、ノード1の制御部は、フリップフロップF13からのバリッド信号ValidN0が有効データであることを示しており(図7(9)参照)、且つ、フリップフロップF23及びF24からの信号IDN0[1:0]が自ノード1を示している(図7(17)参照)ことから、図7中の矢印(d)で示すように、次のノード1サイクルC1で信号VSN1をセットする(図7(23)参照)。上記信号ValidN3は次のノード0サイクルC0へ送られて信号ValidN0になる(図7(9)参照)。
【0067】
また、ノード1の制御部の内部では、図7中の矢印(e)で示すように、ライトデータを保持していることを表す信号Wreq1がセットされている(図7(20)参照)ことから、次のノード1サイクルで信号VDN1をセットする(図7(22)参照)。また、ノード1の制御部は、上記保持しているライトデータの宛先N3を表す信号IDDN1[1:0]を出力する(図7(21)参照)。このうち、信号IDDN1[1]はフリップフロップF21のセレクタのデータ入力端子へ、信号IDDN1[0]はフリップフロップF31のセレクタのデータ入力端子へ、それぞれ供給される。更に、図7には図示されていないが、ノード1の制御部は、データ部に保持されているライトデータの宛先N3を選択するための信号IDSN1[1:0]を出力する。このうち、信号IDSN1[1]はフリップフロップF21のセレクタのセレクト入力端子へ、信号IDSN1[0]はフリップフロップF31のセレクタのセレクト入力端子へ、それぞれ供給される。
【0068】
次のノード1サイクルC1では、ノード1の制御部は、信号IDN1[1:0]が自ノード1を示しており(図7(14)参照)、且つ信号ValidN1がオンにされているのでリードイネーブル信号(図示せず)をアクティブにする。これにより、リングバスRdataN1[x]に流れているデータN1Dataがノード1のデータ部に取り込まれる。また、ノード1のデータ部は、保持しているライトデータN3Dataを信号WdataN1[x]としてフリップフロップF00のセレクタに供給し(図7(7)参照)、ライト動作の準備をする。
【0069】
上記の状態で、ノード1サイクルC1からノード2サイクルC2に移行することにより次のような各種データの切り替えが行われる。即ち、ノード1の制御部は、信号VSN1及び信号VDN1がセットされていることにより(図7(22)及び(23)参照)、図7中の矢印(f)で示すように、ライトイネーブル信号(図示せず)をアクティブにする。これにより、フリップフロップF01のセレクタは、ノード1のデータ部からの信号WdataN1[x]を選択する。その結果、セレクタの一方の入力端子に供給されているデータN1Dataは捨てられ(図7(4)参照)、フリップフロップF01からリングバスRdataN2[x]に有効データN3Dataが出力される(図7(2)参照)。
【0070】
また、信号VSN1がセットされていることにより、フリップフロップF11のセレクタは、ノード1の制御部からの信号VDN1を選択する。その結果、フリップフロップF11から信号ValidN2が出力される(図7(12)参照)。
【0071】
更に、ノード1の制御部からの信号IDSN1[1]信号及びIDSN1[0]がフリップフロップF21及びF31のセレクタのセレクト入力端子にそれぞれ供給されることにより、ノード1の制御部からの信号IDDN1[1]及び信号IDDN1[0]をそれぞれ選択する。その結果、フリップフロップF21及びF31から信号IDDN1[1]及び信号IDDN1[0]がIDN2[1:0]として出力される(図7(15)参照)。以下、同様の動作が繰り返される。
【0072】
以上の説明では、ノード0及びノード1はリングバスからデータを受け取ると共に、リングバスへ送出すべきライトデータを保持している場合について説明したが、ライトデータを保持していない場合は、無効化が行われることになる。この無効化は、上述したライト動作において、ライトイネーブル信号の出力を抑止すると共に、信号Validをクリアすることによって行われる。
【0073】
以上説明したように、このデータ転送装置では、自ノード宛の有効データが存在するかどうかを2通りの方法で検出している。先ず、自ノードより2以上の上流側に存在するノードがライトした場合は、自ノードの上流側に隣接ノードに対応するバリッド信号を参照して自ノード宛の有効データが存在するかどうかを判断している。一方、自ノードの上流側に隣接するノードがライトした場合は、バリッド信号を参照していたのでは自ノードがライトできるかどうかの判断が遅れるので、バリッド信号と同様の意味を持つ信号VDN0〜3及び信号VSN0〜3を参照して自ノード宛の有効データが存在するかどうかを判断している。図7の矢印(d)及び(e)がこれに相当する。
【0074】
この実施の形態1に係るデータ転送装置によれば、或るノードは、その上流側のノードの状態を調べ、自ノード宛の有効データが存在すれば次の自ノードのサイクルでそれを取り込む。この時、リングバスへ送出すべきライトデータを保持していれば、そのサイクルでライトデータをリングバスへ送出し、保持していなければ無効化する。従って、リードとライト又は無効化とが同一サイクルで行われることになり、従来の情報処理システムのような不要なデータがリングバスを一周することがなくなるので、データの転送効率を高めることができる。
【0075】
また、自ノード宛の有効データの有無の判定及び宛先の特定を各ノードに付与されたIDと1本のバリッド線を用いて行うようにしたので、回路構成が簡単になるという利点がある。また、以上の説明では、4つのノードサイクル中に1つの有効データしかない場合を例に挙げたが、最大4個(ノード数に等しい)の有効データがリングバスに適宜存在し得る。
【0076】
(実施の形態2)
次に、本発明の実施の形態2に係るデータ転送装置を説明する。このデータ転送装置は、上記概略的に説明したデータ転送装置を更に具体化したものである。このデータ転送装置は、自ノードの上流側に隣接するノードに対向しているスロットに自ノード宛のパケットが存在するかどうかを、各ノードに割り当てられた4本のバリッド線を使用してチェックする。
【0077】
図8及び図9は、この実施の形態2に係るデータ転送装置の構成を示すブロック図である。このデータ転送装置は、リングバス10、バリッド線15、ノード0、ノード1、ノード2及びノード3から構成されている。また、ノード0はノード0データ部とノード0制御部とから構成され、ノード1はノード1データ部とノード1制御部とから構成され、ノード2はノード2データ部とノード2制御部とから構成され、ノード3はノード3データ部とノード3制御部とから構成されている。また、バリッド線15は、第1バリッド線Valid[0]、第2バリッド線Valid[1]、第3バリッド線Valid[2]及び第4バリッド線Valid[3](以下、Valid[3:0]と総称する)から構成されている。
【0078】
リングバス10の構成は、上述した実施の形態1に係るデータ転送装置と同じである。第1バリッド線Valid[0]は、ノード0のデータが各サイクルにおいて有効であるかどうかを示す。この第1バリッド線Valid[0]は、各々がデータ入力端子にセレクタを備えた4個のDタイプのフリップフロップF10〜F13をリング状に接続して構成されている。フリップフロップF10〜F13はそれぞれノード0〜3に対応し、各フリップフロップにはクロックが共通に供給される。フリップフロップF10に備えられたセレクタの一方の入力端子にはフリップフロップF13からの信号ValidN0[0]が供給され、他方の入力端子にはノード0制御部からの信号VDN0[0]が供給される。また、該セレクタのセレクト端子には、ノード0制御部からの信号VSN0[0]が供給される。他のフリップフロップF11〜F13の周囲の回路構成も上記と同様である。
【0079】
また、第2バリッド線Valid[1]、第3バリッド線Valid[2]及び第4バリッド線Valid[3]の構成も上記第1バリッド線Valid[0]と同様である。
【0080】
ノード0制御部には、このノード0に対向する信号として、フリップフロップF13、F23、F33及びF43からの信号ValidN0[3:0]が入力される。また、このノード0の上流側に隣接するノード3に対向する信号として、フリップフロップF12からの信号ValidN3[0]が入力される。更に、このノード0制御部には、このノード0の上流側に隣接するノード3制御部からの信号VDN3[0]及びVSN3[0]が入力される。
【0081】
ノード1制御部には、このノード1に対向する信号として、フリップフロップF10、F20、F30及びF40からの信号ValidN1[3:0]が入力される。また、このノード1の上流側に隣接するノード0に対向する信号として、フリップフロップF23からの信号ValidN0[1]が入力される。更に、このノード1制御部には、このノード1の上流側に隣接するノード0制御部からの信号VDN0[1]及びVSN0[1]が入力される。
【0082】
ノード2制御部には、このノード2に対向する信号として、フリップフロップF11、F21、F31及びF41からの信号ValidN2[3:0]が入力される。また、このノード2の上流側に隣接するノード1に対向する信号として、フリップフロップF30からの信号ValidN1[2]が入力される。更に、このノード2制御部には、このノード2の上流側に隣接するノード1制御部からの信号VDN1[2]及びVSN1[2]が入力される。
【0083】
ノード3制御部には、このノード3に対向する信号として、フリップフロップF12、F22、F32及びF42からの信号ValidN3[3:0]が入力される。また、このノード3の上流側に隣接するノード2に対向する信号として、フリップフロップF41からの信号ValidN2[3]が入力される。更に、このノード3制御部には、このノード3の上流側に隣接するノード2制御部からの信号VDN2[3]及びVSN2[3]が入力される。
【0084】
以上のように構成されるデータ転送装置の動作を、図10に示したタイミングチャートを参照しながら説明する。このタイミングチャートは、上述した条件1〜3の下で動作する場合を示している。
【0085】
先ず、図10(2)に示すように、ノード3サイクルC3におけるリングバスRdataN3[x]上の有効データはN0Dataであり、ノード3宛のデータではない。従って、ノード3サイクルC3では、リングバスRdataN3[x]上のデータN0Dataのリード、無効化及びライトの何れも起こらず、次のノード0サイクルC0のリングバスRdataN0[x]へ送られる。
【0086】
一方、ノード0の制御部は、フリップフロップF12からのバリッド信号ValidN3[0]がセットされ、自ノード0宛の有効データが存在することを示している(図10(8)参照)ことから、次のノード0サイクルC0で自ノード0宛のデータを無効化するために、信号VDN0[0]をリセットし(図10(13)参照)、信号VSN0[0]をセットする(図10(14)参照)。また、ノード0データ部がノード1宛のライトデータを保持していることから、図10中の矢印(a)で示すように、次のノード0サイクルC0で信号VSN0[1]をセットする(図10(18)参照)。上記信号ValidN3[0]は次のノード0サイクルC0へ送られて信号ValidN0[0]になる(図10(9)参照)。
【0087】
また、ノード0の制御部の内部では、図10中の矢印(b)で示すように、ライトデータを保持していることを表す信号WreqN0がセットされていて(図10(16)参照)、該ライトデータがノード1宛であるので、次のノード0サイクルC0で信号VDN0[1]をセットする(図10(17)参照)。
【0088】
次のノード0サイクルC0では、ノード0の制御部は、信号ValidN0[0]がオンにされているので、リードイネーブル信号REをアクティブにする。これにより、リングバスRdataN0[x]に流れているデータN0Dataがノード0のデータ部に取り込まれる。また、ノード0のデータ部は、保持しているライトデータN1Dataを信号WdataN0[x]としてフリップフロップF00のセレクタに供給し(図10(6)参照)、ライト動作の準備をする。
【0089】
上記の状態で、ノード0サイクルC0からノード1サイクルC1に移行することにより次のような各種データの切り替えが行われる。即ち、ノード0の制御部は、信号VSN0[1]及び信号VDN0[1]がセットされていることにより(図10(17)及び(18)参照)、図10中の矢印(c)で示すように、ライトイネーブル信号WE(図10では図示を省略してある)をアクティブにする。これにより、フリップフロップF00のセレクタは、ノード0のデータ部からの信号WdataN0[x]を選択する。その結果、セレクタの一方の入力端子に供給されているデータN0Dataは捨てられ(図10(3)参照)、フリップフロップF00からリングバスRdataN1[x]に有効データN1Dataが出力される(図10(4)参照)。
【0090】
また、信号VSN0[1]及び信号VDN0[1]がセットされていることにより、ノード0がノード1宛の有効データをリングバス10上にライトすることを認識するため、フリップフロップF20のセレクタは、ノード0の制御部からの信号VDN0[1]を選択する。その結果、フリップフロップF20から信号ValidN1[1]が出力される(図10(10)参照)。また、信号VDN0[0]がリセットされ(図10(13)参照)、信号VSN0[0]がセットされている(図10(14)参照)ことにより、次ノード1サイクルC1では、信号ValidN1[0]はリセットされる(図10(15)参照)。これにより、自ノード0宛のデータは無効化されることになる。
【0091】
以上により、ノード0がリングバス10からデータN0Dataをリードするという動作と共に、データN1Dataをリングバス10にライトし、且つデータN1Dataが有効である旨を示すバリッド信号ValidN1[1]を出力するという動作がノード0サイクルC0という1サイクルで行われる。
【0092】
次に、ノード1の制御部は、信号VSN0[1]及び信号VDN0[1]がセットされ、自ノード1宛の有効データが存在することを示していることから、図10中の矢印(d)で示すように、次のノード1サイクルC1で信号VSN1[3]をセットする(図10(21)参照)。また、ノード1制御部は自ノード1宛のデータを無効化するため信号VDN1[1]をリセットし(図10(22参照)、信号VSN1[1]をセットする(図10(23)参照)。
【0093】
また、ノード1の制御部の内部では、図10中の矢印(e)で示すように、ライトデータを保持していることを表す信号WreqN1がセットされており(図10(19)参照)、且つ保持しているライトデータがノード3宛であるので、次のノード1サイクルC1で信号VDN1[3]をセットする(図10(20)参照)。
【0094】
次のノード1サイクルC1では、ノード1の制御部は、信号ValidN1[1]がオンにされているので(図10(10)参照)、リードイネーブル信号REをアクティブにする。これにより、リングバスRdataN1[x]に流れているデータN1Dataがノード1のデータ部に取り込まれる。また、ノード1のデータ部は、保持しているライトデータN3Dataを信号WdataN1[x]としてフリップフロップF01のセレクタに供給し(図10(7)参照)、ライト動作の準備をする。
【0095】
上記の状態で、ノード1サイクルC1からノード2サイクルC2に移行することにより次のような各種データの切り替えが行われる。即ち、ノード1の制御部は、信号VSN1[3]及び信号VDN1[3]がセットされていることにより(図10(20)及び(21)参照)、図10中の矢印(f)で示すように、ライトイネーブル信号WE(図10では図示を省略してある)をアクティブにする。これにより、フリップフロップF01のセレクタは、ノード1のデータ部からの信号WdataN1[x]を選択する。その結果、セレクタの一方の入力端子に供給されているデータN1Dataは捨てられ(図10(3)参照)、フリップフロップF01からリングバスRdataN2[x]に有効データN3Dataが出力される(図10(5)参照)。
【0096】
また、信号VSN1[3]及び信号VDN1[3]がセットされていることにより、ノード1がノード3宛の有効データをリングバス10上にライトすることを認識するため、フリップフロップF41のセレクタは、ノード1の制御部からの信号VDN1[3]を選択する。その結果、フリップフロップF41から信号ValidN2[3]が出力される(図10(11)参照)。また、信号VDN1[1]がリセットされ(図10(22)参照)、信号VSN1[1]がセットされている(図10(23)参照)ことにより、次ノード2サイクルC2では、信号ValidN2[1]はリセットされる(図10(24)参照)。これにより、自ノード1宛のデータは無効化されることになる。以下、同様の動作が繰り返される。
【0097】
以上の説明では、ノード0及びノード1はリングバスからデータを受け取ると共に、リングバスへ送出すべきライトデータを保持している場合について説明したが、ライトデータを保持していない場合は、ライト先のノード番号と同じValid線へのライトは行われないので、無効化が行われることになる。
【0098】
以上説明したように、このデータ転送装置でも、上述した実施の形態1と同様に、自ノード宛の有効データが存在するかどうかを2通りの方法で検出している。ちなみに、自ノードの上流側に隣接するノードがライトした場合は、図10の矢印(d)及び(e)に示すように動作することにより自ノード宛の有効データが存在するかどうかを判断している。
【0099】
この実施の形態2に係るデータ転送装置によれば、上述した実施の形態1に係るデータ転送装置と同様の効果を奏する。また、自ノード宛の有効データの有無の判定及び宛先の特定を4本のバリッド線を用いて行うようにしたので、データ転送装置の制御が簡単になるという利点がある。また、この実施の形態2によれば、各ノードに対応するバリッド線をオンにするだけで特定のノードのみならず、全ノードに対して一斉にデータを転送するというブロードキャスト転送が可能になる。
【0100】
以上説明したデータ転送装置は、SOC(Silicon On Chip)のロジックに組み込むことができる。この構成によれば、リング接続方式の利点である種々の効果を発揮させることができる。
【0101】
【発明の効果】
以上詳述したように、本発明によれば、リングバスの使用効率を高めることのできるデータ転送装置及びデータ転送方法を提供できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るリング接続方式を採用したデータ転送装置の概略構成を示すブロック図である。
【図2】図1に示したデータ転送装置の概略の動作を説明するための図である。
【図3】図1に示したデータ転送装置における各ノードのライト動作を示すフローチャートである。
【図4】図1に示したデータ転送装置における各ノードのリード動作を示すフローチャートである。
【図5】図1に示したデータ転送装置の動作を示すタイミングチャートである。
【図6】本発明の実施の形態1に係るデータ転送装置の構成を示すブロック図である。
【図7】図6に示したデータ転送装置の動作を示すタイミングチャートである。
【図8】本発明の実施の形態2に係るデータ転送装置の構成を示すブロック図(その1)である。
【図9】本発明の実施の形態2に係るデータ転送装置の構成を示すブロック図(その2)である。
【図10】図8及び図9に示したデータ転送装置の動作を示すタイミングチャートである。
【図11】従来のリングバス接続方式を採用した情報処理システムの構成を示す図である。
【図12】図11に示した情報処理システムの動作を示すタイミングチャートである。
【符号の説明】
0〜3 ノード
10 リングバス
11 バリッド線
12 第1ID線
13 第2ID線
15 バリッド線
F00〜F43 フリップフロップ
K00〜K33 セレクタ
Claims (12)
- リングバスに接続された複数のノードのそれぞれから送出されたデータを、前記リングバス上を一方向に送られるスロットに収容して前記複数のノードの何れかに転送するデータ転送装置であって、
前記複数のノードのそれぞれは、
自ノードより上流側のノードに対向するスロットに自ノード宛のデータが存在するかどうかを検出する検出部と、
前記検出部により自ノード宛のデータが存在することが検出された場合に、前記スロットが自ノードに対向した時に前記自ノード宛のデータを取り込む制御部、
とを備え、
前記検出部は、
前記複数のノードのそれぞれが送出したデータの宛先を示すID信号を前記リングバスにおけるデータの転送に同期して転送するID線と、
前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記リングバスにおけるデータの転送に同期して転送するバリッド線、とを更に備え、
自ノードより上流側の所定ノードに対向する部分の前記ID線内のID信号が自ノードを示しており、且つ前記所定ノードに対向する部分の前記バリッド線内にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するデータ転送装置。 - 前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対向する部分の前記ID線及び前記バリッド線に前記下流側ノードを指定するID信号及びバリッド信号をそれぞれ出力する請求項1に記載のデータ転送装置。
- リングバスに接続された複数のノードのそれぞれから送出されたデータを、前記リングバス上を一方向に送られるスロットに収容して前記複数のノードの何れかに転送するデータ転送装置であって、
前記複数のノードのそれぞれは、
自ノードより上流側のノードに対向するスロットに自ノード宛のデータが存在するかどうかを検出する検出部と、
前記検出部により自ノード宛のデータが存在することが検出された場合に、前記スロットが自ノードに対向した時に前記自ノード宛のデータを取り込む制御部、
とを備え、
前記検出部は、
前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記リングバスにおけるデータの転送に同期して転送するバリッド線を、前記複数のノードのそれぞれに対応して更に備え、
自ノードに対応するバリッド線の、自ノードより上流側のノードに対向する部分にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するデータ転送装置。 - 前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対応するバリッド線の、該下流側ノードに対向する部分にバリッド信号を出力する請求項3に記載のデータ転送装置。
- 前記制御部は、送出すべきライトデータが保持されていない場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットを無効化する請求項1から4の何れか1項に記載のデータ転送装置。
- 前記制御部は、送出すべきライトデータが保持されている場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットに前記ライトデータを収容して送出する請求項1から4の何れか1項に記載のデータ転送装置。
- リングバスに接続された複数のノードのそれぞれから送出されたデータを、前記リングバス上を一方向に送られるスロットに収容して前記複数のノードの何れかに転送するデータ転送方法であって、
前記複数のノードのそれぞれは、
(A)自ノードより上流側のノードに対向するスロットに自ノード宛のデータが存在するかどうかを検出し、
(B)該検出結果が自ノード宛のデータが存在することを示している場合に、前記スロットが自ノードに対向した時に前記自ノード宛のデータを取り込み、
前記ステップ(A)は、
前記複数のノードのそれぞれが送出したデータの宛先を示すID信号を前記リングバスにおけるデータの転送に同期して転送するステップと、
前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記リングバスにおけるデータの転送に同期して転送するステップ、とを更に備え、
自ノードより上流側の所定ノードに対向する部分のID信号が自ノードを示しており、且つ前記所定ノードに対向する部分にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するデータ転送方法。 - 前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対向する部分のID信号及びバリッド信号をそれぞれ出力する請求項7に記載のデータ転送方法。
- リングバスに接続された複数のノードのそれぞれから送出されたデータを、前記リングバス上を一方向に送られるスロットに収容して前記複数のノードの何れかに転送するデータ転送方法であって、
前記複数のノードのそれぞれは、
(A)自ノードより上流側のノードに対向するスロットに自ノード宛のデータが存在するかどうかを検出し、
(B)該検出結果が自ノード宛のデータが存在することを示している場合に、前記スロットが自ノードに対向した時に前記自ノード宛のデータを取り込み、
前記ステップ(A)は、
前記複数のノードのそれぞれが送出したデータが前記リングバス上に存在することを示すバリッド信号を前記複数のノード毎に前記リングバスにおけるデータの転送に同期して転送するステップを更に備え、
自ノードに対応するバリッド線の、自ノードより上流側のノードに対向する部分にバリッド信号が出力されている場合に、前記自ノード宛のデータが存在することを検出するデータ転送方法。 - 前記複数のノードのそれぞれは、下流側の隣接する下流側ノードにデータを転送する場合に、前記下流側ノードに対応するバリッド線の、該下流側ノードに対向する部分にバリッド信号を出力する請求項9に記載のデータ転送方法。
- 前記ステップ(B)では、送出すべきライトデータが保持されていない場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットを無効化する請求項7から10の何れか1項に記載のデータ転送方法。
- 前記ステップ(B)では、送出すべきライトデータが保持されている場合に、前記自ノード宛のデータを取り込むと共に、前記自ノード宛のデータが収容されていたスロットに前記ライトデータを収容して送出する請求項7から10の何れか1項に記載のデータ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33463299A JP3586603B2 (ja) | 1999-11-25 | 1999-11-25 | データ転送装置及びデータ転送方法 |
US09/712,555 US7020148B1 (en) | 1999-11-25 | 2000-11-14 | Data transferring apparatus and data transferring method that use fast ring connection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33463299A JP3586603B2 (ja) | 1999-11-25 | 1999-11-25 | データ転送装置及びデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001156817A JP2001156817A (ja) | 2001-06-08 |
JP3586603B2 true JP3586603B2 (ja) | 2004-11-10 |
Family
ID=18279559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33463299A Expired - Fee Related JP3586603B2 (ja) | 1999-11-25 | 1999-11-25 | データ転送装置及びデータ転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7020148B1 (ja) |
JP (1) | JP3586603B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4869369B2 (ja) * | 2009-03-13 | 2012-02-08 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
WO2013124915A1 (ja) * | 2012-02-24 | 2013-08-29 | パナソニック株式会社 | スレーブ装置、マスタ装置、通信システム、及び通信方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5287302A (en) | 1976-01-17 | 1977-07-21 | Mitsubishi Electric Corp | Loop transmission system |
DE3584489D1 (de) * | 1984-08-16 | 1991-11-28 | Sharp Kk | Informationsprozessor. |
US5341506A (en) * | 1984-12-10 | 1994-08-23 | Nec Corporation | Data flow processor with a full-to-half word convertor |
US4872125A (en) * | 1987-06-26 | 1989-10-03 | Daisy Systems Corporation | Multiple processor accelerator for logic simulation |
US5229993A (en) * | 1991-02-25 | 1993-07-20 | Old Dominion University | Control of access through local carrier sensing for high data rate networks and control of access of synchronous messages through circulating reservation packets |
US5406401A (en) * | 1992-10-02 | 1995-04-11 | At&T Corp. | Apparatus and method for selective tributary switching in a bidirectional ring transmission system |
ATE218257T1 (de) * | 1992-11-16 | 2002-06-15 | Canon Kk | Übertragungsverfahren und -system mit tokenübergabezugriffsprotokoll |
US5886992A (en) * | 1995-04-14 | 1999-03-23 | Valtion Teknillinen Tutkimuskeskus | Frame synchronized ring system and method |
US6026094A (en) * | 1995-05-24 | 2000-02-15 | Thomson Consumer Electronics, Inc. | Digital data bus system including arbitration |
JPH09200239A (ja) | 1996-01-19 | 1997-07-31 | Hitachi Ltd | リング接続を用いたデータ転送方法及び情報処理システム |
US5911056A (en) * | 1997-05-01 | 1999-06-08 | Hewlett-Packard Co. | High speed interconnect bus |
US6115756A (en) * | 1997-06-27 | 2000-09-05 | Sun Microsystems, Inc. | Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time |
US6253292B1 (en) * | 1997-08-22 | 2001-06-26 | Seong Tae Jhang | Distributed shared memory multiprocessor system based on a unidirectional ring bus using a snooping scheme |
US6501761B1 (en) * | 1999-02-25 | 2002-12-31 | Fairchild Semiconductor Corporation | Modular network switch with peer-to-peer address mapping communication |
-
1999
- 1999-11-25 JP JP33463299A patent/JP3586603B2/ja not_active Expired - Fee Related
-
2000
- 2000-11-14 US US09/712,555 patent/US7020148B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001156817A (ja) | 2001-06-08 |
US7020148B1 (en) | 2006-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5361567B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP4024875B2 (ja) | 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置 | |
US6094532A (en) | Multiprocessor distributed memory system and board and methods therefor | |
KR20120040535A (ko) | 버스 시스템 및 그것의 동작 방법 | |
CN114265872B (zh) | 一种用于总线的互联装置 | |
AU2003234641B2 (en) | Inter-chip processor control plane | |
JP3586603B2 (ja) | データ転送装置及びデータ転送方法 | |
US6701407B1 (en) | Multiprocessor system with system modules each having processors, and a data transfer method therefor | |
JPH0337221B2 (ja) | ||
RU175049U9 (ru) | УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire | |
JP2589821B2 (ja) | 情報処理システムの中央処理ユニット | |
KR920010977B1 (ko) | 개선된 성능의 메모리 버스 아키텍쳐(memory bus architecture) | |
KR960006507B1 (ko) | 컴퓨터 시스템, 시스템 확장장치, 버스 결합장치 및 버스 신호 전송방법 | |
JPH10307787A (ja) | バッファメモリ装置 | |
JP3620173B2 (ja) | アドレス変換回路及びマルチプロセッサシステム | |
JPH1131066A (ja) | バッファ制御システム | |
JP4125933B2 (ja) | 共通メモリを備えたプロセッサシステム | |
JP2002055937A (ja) | Usb装置 | |
KR100190184B1 (ko) | 직렬버스를 통해 데이타를 송신하는 회로 | |
JP3466728B2 (ja) | 情報処理システム及びその方法 | |
JP2885166B2 (ja) | 高速メモリ制御装置 | |
JP4514916B2 (ja) | バスシステム | |
EP2515226A1 (en) | An arrangement | |
KR20060009292A (ko) | 분할 프로토콜 전송 방법 및 프로세싱 시스템 | |
EP1193606B1 (en) | Apparatus and method for a host port interface unit in a digital signal processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040323 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040714 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040809 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070813 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080813 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080813 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090813 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090813 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100813 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100813 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100813 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110813 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120813 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120813 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |