JP2006107022A - Inter-module communication method and device by hierarchized ring - Google Patents

Inter-module communication method and device by hierarchized ring Download PDF

Info

Publication number
JP2006107022A
JP2006107022A JP2004291323A JP2004291323A JP2006107022A JP 2006107022 A JP2006107022 A JP 2006107022A JP 2004291323 A JP2004291323 A JP 2004291323A JP 2004291323 A JP2004291323 A JP 2004291323A JP 2006107022 A JP2006107022 A JP 2006107022A
Authority
JP
Japan
Prior art keywords
ring
transaction
module
slave
command
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.)
Withdrawn
Application number
JP2004291323A
Other languages
Japanese (ja)
Inventor
Takashi Fujiwara
隆史 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004291323A priority Critical patent/JP2006107022A/en
Publication of JP2006107022A publication Critical patent/JP2006107022A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To maintain the high speed access of a module to be accessed at a high speed even when the number of modules is large in a system where a plurality of modules are connected like a ring. <P>SOLUTION: When the number of modules is large, those modules are classified into the modules to be accessed at a high speed and the modules to be accessed at a low speed, and the ring connection is divided into a plurality of hierarchies, and a slave module to be accessed at a high speed is connected to a first ring, and a slave module to be accessed at a low speed is connected to a second ring so that when the slave module connected to the first ring is accessed, the slave module can be accessed at a high speed regardless of the number of the modules connected to the other ring. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は情報処理装置のLSI内部の各モジュール間の通信に関し、より詳細には、各モジュールをリング上に接続しての通信に関するものである。   The present invention relates to communication between modules in an LSI of an information processing apparatus, and more particularly to communication in which each module is connected on a ring.

従来、複数のモジュール間をリング状に接続して通信を行う技術があった(例えば特許文献1参照)。このような方法では、モジュールに対して送られてきた命令をそのモジュールが解析を行ない、自分に対する命令であると判断した場合はその命令を行ない、その命令を次のモジュールに転送する。また、自分に対する命令でないと判断した場合はその命令を行わずに次のモジュールに転送する。ここで、自分に対する命令である場合には、その命令を次のモジュールに対して転送しないものや、命令を加工して転送するといった技術もある。   Conventionally, there has been a technique for performing communication by connecting a plurality of modules in a ring shape (see, for example, Patent Document 1). In such a method, an instruction sent to a module is analyzed by the module, and when it is determined that the instruction is for itself, the instruction is executed and the instruction is transferred to the next module. If it is determined that it is not a command for itself, the command is transferred to the next module without performing the command. Here, in the case of an instruction for itself, there are techniques that do not transfer the instruction to the next module, and techniques that process and transfer the instruction.

しかし、このような方法では命令を受け取ってから命令の判断を行ない、次のモジュールに転送するまでにはある程度の処理時間が必要で、数サイクルから数十サイクル要する場合が多い。   However, in such a method, it takes a certain amount of processing time from receiving an instruction to determining the instruction and transferring it to the next module, and it often takes several to tens of cycles.

このようにリング状に接続されたシステムでは、モジュールの数が増えるとその分だけ命令の転送時間がかかり、その時間は各モジュールで要する処理時間に大きく影響される。
特開平6−77973号公報
In such a system connected in a ring shape, when the number of modules increases, an instruction transfer time increases accordingly, and the time is greatly influenced by the processing time required for each module.
JP-A-6-77973

しかしながら、一般的にシステム内には、高速でアクセスしたいモジュールと低速でアクセスしてもよいモジュールの両方が存在しており、これらをひとつのリングで接続すると、高速でアクセスしたいモジュールも、低速でアクセスしてもよいモジュールも同じ時間でアクセスが行われ、その時間はリングのモジュール数に比例し、モジュール数が増えるほど長くなる。   However, in general, there are both modules that can be accessed at a high speed and modules that can be accessed at a low speed in a system. Modules that may be accessed are accessed at the same time, and the time is proportional to the number of modules in the ring, and becomes longer as the number of modules increases.

従って本発明の目的は、モジュール数が多くなっても、高速でアクセスしたいモジュールには、高速なアクセスを維持することを可能にすることである。   Therefore, an object of the present invention is to make it possible to maintain high-speed access to a module that is desired to be accessed at high speed even when the number of modules increases.

本出願に係る発明は、LSI内において、主となるマスタモジュールがひとつ存在し、そのマスタモジュールからアクセスされる複数のスレーブモジュールが存在し、マスタモジュールを含んで、複数のスレーブモジュールをリング状に接続する第一のリングと、他のスレーブモジュールをリング状に接続する第二のリングと、第一のリングと第二のリングがブリッジによって接続されている階層化されたリングを持つシステムにおいて、リングで接続されるすべてのモジュールは次に接続されるモジュールへトランザクションを発行するマスタインターフェースと前に接続されているモジュールからトランザクションを受け取るスレーブインターフェースを持ち、マスタモジュールはリングに接続された他のモジュールに対してアクセスを行なうためにマスタインターフェースからコマンドトランザクションを発行する手段を持ち、ブリッジは第一のリングにおいて前に接続されているモジュールからコマンドトランザクションを受け取るスレーブインターフェースと、第一のリングにおいて次に接続されるモジュールへトランザクションを発行するマスタインターフェースと、第二のリングにおいて次に接続されるモジュールへトランザクションを発行するマスタインターフェースと、第二のリングにおいて前に接続されているモジュールからコマンドトランザクションを受け取るスレーブインターフェースを持ち、第一のリングから受け取ったコマンドトランザクションを必要に応じて第二のリングに対して発行する手段と、第二のリングから受け取ったトランザクションを必要に応じて第一のリングに発行する手段とを持ち、スレーブとなる他のモジュールは、スレーブインターフェースから受け取ったコマンドトランザクションに従って処理を行なう手段を持ち、
前記スレーブとなるモジュールは、スレーブインターフェースから受け取ったコマンドトランザクションを次に接続されたモジュールへマスタインターフェースからフォワードする手段を持ち、そのコマンドトランザクションが自分に対するアクセスであるかどうかを判断するためにトランザクションに含まれるアドレスを、トランザクションをフォワードするのと平行してデコードを行なう手段と、そのコマンドトランザクションが自分に対するアクセスであると判断したときにはリターントランザクションをマスタインターフェースから発行する手段を持ち、前記ブリッジは、スレーブインターフェースから受け取ったコマンドトランザクションを第一のリングにおいて次に接続されたモジュールへマスタインターフェースからフォワードする手段を持ち、そのコマンドトランザクションが自分に対するアクセスであるかどうかを判断するためにトランザクションに含まれるアドレスを、トランザクションをフォワードするのと平行してデコードを行なう手段と、そのコマンドトランザクションが自分に対するアクセスであると判断したときには第二のリングに対してコマンドトランザクションをマスタインターフェースから発行する手段を持ち、第二のリング内において前に接続されたモジュールからリターントランザクションを受け取ったときには、第一のリングにおいて次に接続されたモジュールへマスタインターフェースからフォワードする手段を持ち、
前記スレーブとなるモジュールおよび前記ブリッジは、次に接続されたモジュールがトランザクションを受け取る準備ができていないときには受信したトランザクションをフォワードせずに保持しておくためのバッファを持ち、次に接続されたモジュールがトランザクションを受け取る準備が出来次第送信する手段を持ち、
前記ブリッジは、ブリッジのマスタインターフェースを始点とし、モジュールを順に接続した第二のリングの終点が最終的に接続されるスレーブインターフェースを持ち、ブリッジから発行したコマンドトランザクションが最終的に戻ってきて、その後に一定時間リターントランザクションが受信できなかった場合にエラーと判断する手段とを持つことを特徴としている。
In the invention according to the present application, there is one main master module in the LSI, there are a plurality of slave modules accessed from the master module, and the plurality of slave modules are included in a ring shape including the master module. In a system having a first ring to be connected, a second ring for connecting other slave modules in a ring shape, and a layered ring in which the first ring and the second ring are connected by a bridge, Every module connected in the ring has a master interface that issues transactions to the next connected module and a slave interface that receives transactions from the previously connected module, and the master module is another module connected to the ring Access to A means for issuing a command transaction from the master interface to the bridge, the bridge receiving a command transaction from a previously connected module in the first ring, and a next connected module in the first ring A master interface that issues transactions to the next connected module in the second ring, and a slave interface that receives command transactions from previously connected modules in the second ring. Means for issuing a command transaction received from the first ring to the second ring as necessary, and a transaction received from the second ring. Has a means for issuing a first ring according to necessity, other modules that the slave has a means for processing according to the command transactions received from the slave interface,
The slave module has means for forwarding the command transaction received from the slave interface from the master interface to the next connected module, and is included in the transaction to determine whether the command transaction is an access to itself. Means for decoding the address to be transmitted in parallel with forwarding the transaction, and means for issuing a return transaction from the master interface when it is determined that the command transaction is an access to itself. The command transaction received from the master interface is forwarded to the next connected module in the first ring. Means for decoding the address included in the transaction in parallel with forwarding the transaction in order to determine whether the command transaction is an access to itself, and the command transaction accessing the self If it is determined that the command transaction is issued from the master interface to the second ring, and when a return transaction is received from a previously connected module in the second ring, the first ring Next has a means to forward from the master interface to the connected module,
The slave module and the bridge have a buffer for holding the received transaction without forwarding when the next connected module is not ready to receive a transaction, and the next connected module Has a means to send as soon as it is ready to receive transactions,
The bridge has a slave interface in which the master interface of the bridge is the starting point, the end point of the second ring in which the modules are connected in order is finally connected, and the command transaction issued from the bridge finally returns, And a means for determining an error when a return transaction cannot be received for a certain period of time.

以上説明したように、本発明によれば、スレーブモジュールの数が増えても、それらを高速でアクセスするものと低速でアクセスするものに分類して、リング接続を複数の階層に分け、第一のリングには高速でアクセスするスレーブモジュール、第二のリングには低速でアクセスするスレーブモジュールを接続することで、第一のリングに接続されたスレーブモジュールにアクセスする際には、高速でアクセスすることが可能になっている。   As described above, according to the present invention, even if the number of slave modules increases, the ring connection is divided into a plurality of layers by classifying them into those that access at high speed and those that access at low speed. By connecting a slave module that accesses the ring at high speed to the second ring and a slave module that accesses at low speed to the second ring, the slave module connected to the first ring is accessed at high speed. It is possible.

<実施形態1>
上記した本発明の実施の形態について更に詳細に説明すべく、本発明の一実施例について、図面を参照して詳細に説明する。
<Embodiment 1>
In order to describe the above-described embodiment of the present invention in more detail, an example of the present invention will be described in detail with reference to the drawings.

図2には図1のシステムから第一のレジスタアクセスリング111の部分を抽出した図を示す。ここでは第二のレジスタアクセスリング121は存在しないものとしている。   FIG. 2 shows a diagram in which a portion of the first register access ring 111 is extracted from the system of FIG. Here, it is assumed that the second register access ring 121 does not exist.

まず、以下にこの図を用いて、レジスタアクセスリングに注目して、その通信方法を詳細に説明する。   First, the communication method will be described in detail below, focusing on the register access ring, using this figure.

400は図1のシステムブリッジ101のリングアクセスのインターフェース部分と等価であり、本構成での第一のレジスタアクセスリング111のマスタとなるマスタモジュールである。401〜403は図1のモジュール0、2、メモリコントローラ105などのリングアクセスインターフェース部分と等価であり、第一のレジスタアクセスリング111のスレーブとなるスレーブモジュールである。   Reference numeral 400 is equivalent to the ring access interface portion of the system bridge 101 in FIG. 1, and is a master module serving as a master of the first register access ring 111 in this configuration. Reference numerals 401 to 403 are equivalent to ring access interface portions such as modules 0 and 2 and the memory controller 105 in FIG. 1, and are slave modules serving as slaves of the first register access ring 111.

各モジュールはモジュール間で通信するためのマスタインターフェースとスレーブインターフェースを持っている。   Each module has a master interface and a slave interface for communication between the modules.

マスタモジュール400のマスタインターフェースとスレーブモジュール0 401のスレーブインターフェースは通信経路0で接続されている。また、スレーブモジュール0 401のマスタインターフェースとスレーブモジュール1 402のスレーブインターフェースは通信経路1で接続されており、スレーブモジュール1 402のマスタインターフェースとスレーブモジュール2 403のスレーブインターフェースは通信経路2、スレーブモジュール2 403のマスタインターフェースとマスタモジュール400のスレーブインターフェースは通信経路3でそれぞれ接続されている。   The master interface of the master module 400 and the slave interface of the slave module 0 401 are connected via a communication path 0. The master interface of the slave module 0 401 and the slave interface of the slave module 1 402 are connected via the communication path 1. The master interface of the slave module 1 402 and the slave interface of the slave module 2 403 are the communication path 2 and the slave module 2. The master interface 403 and the slave interface of the master module 400 are connected via the communication path 3.

このように構成されるリングでは、コマンド/リターントランザクションが転送される方向は決まっており、マスタモジュール400→スレーブモジュール0 401→スレーブモジュール1 402→スレーブモジュール2 403→マスタモジュール400という方向にのみ転送が可能である。   In the ring configured as described above, the direction in which the command / return transaction is transferred is determined, and is transferred only in the direction of the master module 400 → slave module 0 401 → slave module 1 402 → slave module 2 403 → master module 400. Is possible.

各通信経路は以下に示す信号によって構成されている。

Tsp Transaction Start Master I/F > Slave I/F
Rsp Return Start Master I/F > Slave I/F
Tbsyp Transaction Busy Master I/F > Slave I/F
uaddr_midp[5:0] Upper Address / Master ID Master I/F > Slave I/F
laddr_datap[15:0] Lower Address / Data Master I/F > Slave I/F
rd_not_wr Read(H)/Write(L) Master I/F > Slave I/F
errorp Error Master I/F > Slave I/F
srdyp Slave Ready Slave I/F > Master I/F

以下に各信号について説明する。

Tsp トランザクション Start Master I/F > Slave I/F
マスタインターフェースは通信相手のスレーブインターフェースからのsrdypがアサートされているのを確認して1サイクル間アサートを行ない、コマンドトランザクションをスタートする。
Each communication path is composed of the following signals.

Tsp Transaction Start Master I / F> Slave I / F
Rsp Return Start Master I / F> Slave I / F
Tbsyp Transaction Busy Master I / F> Slave I / F
uaddr_midp [5: 0] Upper Address / Master ID Master I / F> Slave I / F
laddr_datap [15: 0] Lower Address / Data Master I / F> Slave I / F
rd_not_wr Read (H) / Write (L) Master I / F> Slave I / F
errorp Error Master I / F> Slave I / F
srdyp Slave Ready Slave I / F> Master I / F

Each signal will be described below.

Tsp transaction Start Master I / F> Slave I / F
The master interface confirms that srdyp from the communicating slave interface is asserted, asserts for one cycle, and starts a command transaction.

マスタは次のトランザクションをtbsypがHighの状態を検出後、開始することができる。すなわち、トランザクション間は少なくとも必ず1サイクル存在することになる。

Rsp Return Start Master I/F > Slave I/F
スレーブモジュールからのリターントランザクションを開始する信号。スレーブモジュールはライトが終了するか、リードデータの準備ができたら本信号をアサートし、リターントランザクションを開始する。アサートの条件はtspと同じ。

Tbsyp Transaction Busy Master I/F > Slave I/F
コマンド/リターントランザクションが行われている間アサートされる。トランザクションは3サイクルを要するので、常に3サイクル間アサートされる。本信号がディアサートされている時は通信経路はアイドル状態にある。

uaddr_midp[5:0] Upper Address / Master ID Master I/F > Slave I/F
Upper AddressとMaster ID(MID)のマルチプレックス信号。
The master can start the next transaction after detecting that tbsyp is high. In other words, there is always at least one cycle between transactions.

Rsp Return Start Master I / F> Slave I / F
Signal that initiates a return transaction from the slave module. The slave module asserts this signal when writing is completed or read data is ready, and starts a return transaction. Assert conditions are the same as tsp.

Tbsyp Transaction Busy Master I / F> Slave I / F
Asserted while a command / return transaction is in progress. Since a transaction takes 3 cycles, it is always asserted for 3 cycles. When this signal is deasserted, the communication path is in an idle state.

uaddr_midp [5: 0] Upper Address / Master ID Master I / F> Slave I / F
Multiplex signal of Upper Address and Master ID (MID).

1beat目にUpper Address、2beat目にMaster IDが入る。3beat目はDon't Care。   Upper Address is entered in the 1st beat, and Master ID is entered in the 2nd beat. The third beat is Don't Care.

1beat目のUpper Addressの際はAddress[23:18]が入る。   Address [23:18] is entered for the upper address of the 1st beat.

2beat目のMaster IDの際はuaddr_midp[3:0]にMID[3:0]が入る。上位2bitはDon't Care。   MID [3: 0] is entered in uaddr_midp [3: 0] for the 2nd beat Master ID. The upper 2 bits are Don't Care.

MIDはシーケンスにはまったく影響がない。各スレーブモジュールは単にマスタインターフェースから受け取ったMIDを次へフォワードするだけである。

laddr_datap[15:0] Lower Address / Data Master I/F > Slave I/F
Lower AddressとDataのマルチプレックス信号。
MID has no effect on the sequence. Each slave module simply forwards the MID received from the master interface to the next.

laddr_datap [15: 0] Lower Address / Data Master I / F> Slave I / F
Lower Address and Data multiplex signal.

1beat目にLower Address、2beat目にDataのMSB側の16bit、3beat目にDataのLSB側の16bitが入る。   The lower address is in the first beat, the 16 bits on the MSB side of the data in the second beat, and the 16 bits on the LSB side of the data in the third beat.

1beat目のLower Addressの際はAddress[17:2]が入る。   Address [17: 2] is entered for Lower Address of the 1st beat.

2beat目のDataの際はData[31:16]が入る。   Data [31:16] is entered for the second beat of data.

3beat目のDataの際はData[15:0]が入る。

rd_not_wr Read(H)/Write(L) Master I/F > Slave I/F
転送のリード / ライトを示す。
Data [15: 0] is entered for the 3rd beat of data.

rd_not_wr Read (H) / Write (L) Master I / F> Slave I / F
Indicates transfer read / write.

tbsypがアサートされている間アサートされる。その期間は変更してはならない。
High:リード
Low:ライト

Errorp Error Master I/F > Slave I/F
エラーをマスタモジュールに通知する。エラーが発生した場合、スレーブモジュールはリターントランザクション時にtbsypがアサートされている間本信号をアサートする。

Srdyp Slave Ready Slave I/F > Master I/F
トランザクションを受け取る側のスレーブインターフェースがトランザクションを送る側のマスタインターフェースからのトランザクションを受け取る準備ができていることを示す。本信号がアサートされていれば、マスタインターフェースはいつでもトランザクションを始めることができ、スレーブインターフェースは必ずそのトランザクションを受け取らなければならない。
Asserted while tbsyp is asserted. The period must not change.
High: Lead
Low: Light

Errorp Error Master I / F> Slave I / F
Notify master module of errors. If an error occurs, the slave module asserts this signal while tbsyp is asserted during a return transaction.

Srdyp Slave Ready Slave I / F> Master I / F
Indicates that the slave interface receiving the transaction is ready to receive a transaction from the master interface sending the transaction. If this signal is asserted, the master interface can start a transaction at any time and the slave interface must accept the transaction.

srdypはトランザクションを受け取ると、一旦ディアサートされる。スレーブモジュールはコマンド トランザクションをデコードし、自分の範囲のアドレスにヒットした場合には、srdypをそのままディアサートし続け、次のトランザクションの受信を防がなければならない。   When srdyp receives a transaction, it is deasserted once. The slave module decodes the command transaction, and if it hits its own range of addresses, it must continue to deassert srdyp to prevent receipt of the next transaction.

ヒットしなかった場合で、受け取ったトランザクションを次のモジュールへフォワードできた場合にはsrdypをアサートし、次のトランザクションを受け取る準備をする。   If no hit is found and the received transaction can be forwarded to the next module, srdyp is asserted to prepare to receive the next transaction.

デコードはコマンドトランザクション中に終えるのが望ましい。   Decoding should be completed during the command transaction.

ヒットした場合はリターントランザクションを発行後、srdypを再びアサートする。   If there is a hit, issue a return transaction and then assert srdyp again.

以上の信号は通信経路0~3で共通であり、それぞれの通信経路での信号名は、信号名の最後に0〜3の番号が追加され、以下のようになる。   The above signals are common to the communication paths 0 to 3, and the signal names in the respective communication paths are added with numbers 0 to 3 at the end of the signal names, and are as follows.

通信経路0の信号
tsp0, rsp0, tbsyp0, uaddr_midp0[5:0], laddr_datap0[15:0], rd_not_wr0, errorp0, srdyp0
通信経路1の信号
tsp1, rsp1, tbsyp1, uaddr_midp1[5:0], laddr_datap1[15:0], rd_not_wr1, errorp1, srdyp1
通信経路2の信号
tsp2, rsp2, tbsyp2, uaddr_midp2[5:0], laddr_datap2[15:0], rd_not_wr2, errorp2, srdyp2
通信経路3の信号
tsp3, rsp3, tbsyp3, uaddr_midp3[5:0], laddr_datap3[15:0], rd_not_wr3, errorp3, srdyp3
ライト及びリードのコマンドトランザクションはマスタモジュールが発行し、各スレーブモジュールはそれを次のスレーブモジュールにフォワードしていく。スレーブモジュールは受け取ったコマンドトランザクションは自分に対するアクセスであるないに関わらず次のスレーブモジュールにフォワードするので、コマンドトランザクションは最終的にマスタモジュールに戻ってくる。
Communication path 0 signal
tsp0, rsp0, tbsyp0, uaddr_midp0 [5: 0], laddr_datap0 [15: 0], rd_not_wr0, errorp0, srdyp0
Communication path 1 signal
tsp1, rsp1, tbsyp1, uaddr_midp1 [5: 0], laddr_datap1 [15: 0], rd_not_wr1, errorp1, srdyp1
Communication path 2 signal
tsp2, rsp2, tbsyp2, uaddr_midp2 [5: 0], laddr_datap2 [15: 0], rd_not_wr2, errorp2, srdyp2
Communication path 3 signal
tsp3, rsp3, tbsyp3, uaddr_midp3 [5: 0], laddr_datap3 [15: 0], rd_not_wr3, errorp3, srdyp3
Write and read command transactions are issued by the master module, and each slave module forwards it to the next slave module. The slave module forwards to the next slave module regardless of whether the received command transaction is an access to itself, so that the command transaction finally returns to the master module.

スレーブモジュールはコマンドトランザクションをフォワードするのと同時にアドレスをデコードし、自分のアドレスにヒットしていればそれ以降のコマンドトランザクションの受信を行わず、自分が管理するレジスタに対してライトあるいはリード作業を行う。   The slave module decodes the address at the same time as forwarding the command transaction, and if it hits its own address, it does not receive the subsequent command transaction and performs a write or read operation on the register managed by itself. .

それが終了すると、スレーブモジュールはリターントランザクションを発行する。   When it finishes, the slave module issues a return transaction.

このリターントランザクションもそれ以降の各スレーブモジュールによりフォワードされ、最終的にマスタモジュールに到達する。   This return transaction is also forwarded by each subsequent slave module, and finally reaches the master module.

リターントランザクションを発行したスレーブモジュールは一時ストップしていたコマンドトランザクションの受信を再開する。   The slave module that issued the return transaction resumes receiving the command transaction that was temporarily stopped.

マスタモジュールはコマンドトランザクションを発行すると、必ずそのコマンドトランザクションと、そのコマンドトランザクションに対するリターントランザクションを受け取ることを期待している。   When a master module issues a command transaction, it always expects to receive that command transaction and a return transaction for that command transaction.

複数のコマンドトランザクションを発行した時にも、マスタモジュールは必ずコマンドトランザクションとリターントランザクションを交互に受け取るはずである。   Even when issuing multiple command transactions, the master module should always receive command transactions and return transactions alternately.

コマンドトランザクションのアドレスにエラーがあり、どのスレーブモジュールも反応しなかったときには、マスタモジュールにリターントランザクションが戻ってこない。これにより、マスタモジュールはコマンドトランザクションにエラーがあったことを知ることができる。   If there is an error in the command transaction address and no slave module has responded, no return transaction is returned to the master module. Thus, the master module can know that there is an error in the command transaction.

コマンドトランザクションは最初マスタモジュールが発行する。スレーブモジュールはそれを受け取り即座に後のスレーブモジュールにフォワードする。コマンドトランザクションの発行はtbsyp = 0、srdyp = 1の時にのみ可能である。   A command transaction is first issued by the master module. The slave module receives it and immediately forwards it to the subsequent slave module. Command transactions can be issued only when tbsyp = 0 and srdyp = 1.

コマンドトランザクションは最終的にマスタモジュールに到達する。   The command transaction finally reaches the master module.

スレーブモジュールはコマンドトランザクションをフォワードするのと同時にアドレスをデコードする。   The slave module decodes the address at the same time as it forwards the command transaction.

ライト時にはライトデータがデータ信号に送られる。リード時には送られない。   At the time of writing, write data is sent to the data signal. Not sent when reading.

ライト/リードに関わらず、トランザクションは3beatで行われる。1beat目はアドレスの転送、2beat目はマスタIDとデータの転送、3beat目はデータの転送である。リード時にはデータ部分はDon't Careである。   Regardless of write / read, the transaction takes 3 beats. The first beat is the address transfer, the second beat is the master ID and data transfer, and the third beat is the data transfer. At the time of reading, the data part is Don't Care.

スレーブモジュールはコマンドトランザクションを受け取り、自分のアドレスにヒットしていればそれ以降のコマンドトランザクションの受信を一時ストップし、自分が管理するレジスタに対してライトあるいはリード作業を行なう。   The slave module receives the command transaction. If the slave module hits its own address, the slave module temporarily stops receiving subsequent command transactions, and performs a write or read operation on a register managed by the slave module.

それが終了すると、スレーブモジュールはリターントランザクションを発行する。これはライト時にもリード時にも必ず発行される。   When it finishes, the slave module issues a return transaction. This is always issued both at the time of writing and at the time of reading.

リターントランザクションはそれ以降の各スレーブモジュールにより無条件にフォワードされ、最終的にマスタモジュールに到達する。リターントランザクションのアドレスでコードは行われない。   The return transaction is unconditionally forwarded by each subsequent slave module, and finally reaches the master module. No code is performed at the address of the return transaction.

マスタモジュールはこのリターントランザクションを受信することによってコマンドが正常に終了したと判断する。   The master module determines that the command has been completed normally by receiving this return transaction.

リード時のリターントランザクションにはリードデータが送られる。ライト時にはデータは送られない。   Read data is sent to the return transaction at the time of reading. No data is sent when writing.

マスタモジュールがエラーを検知しかつ直ちに処理できない場合、 errorpをtbsypと同じタイミングでアサートしたコマンドトランザクションを発行する。errorpがアサートされているコマンドトランザクションに対してはスレーブモジュールは反応してはならない。エラーはコマンドトランザクションが再びマスタモジュールに戻ってきたタイミングで処理される。   If the master module detects an error and cannot process it immediately, it issues a command transaction with errorp asserted at the same timing as tbsyp. The slave module must not respond to command transactions for which errorp is asserted. The error is processed when the command transaction returns to the master module again.

スレーブモジュールがエラーを検知した場合、リターントランザクション発行時にerrorpをtbsypと同じタイミングでアサートする。   If the slave module detects an error, it asserts errorp at the same timing as tbsyp when a return transaction is issued.

アドレスエラーが発生した場合は、コマンドトランザクションに対してどのスレーブモジュールも反応しないことになる。よってリターントランザクションは発生しない。   If an address error occurs, no slave module will respond to the command transaction. Therefore, no return transaction occurs.

これはマスタモジュールが検知をする必要がある。   This needs to be detected by the master module.

マスタモジュールはトランザクションの受信において、コマンドトランザクションを続けて受信した場合にエラーと判断できる。   When receiving a transaction, the master module can determine that an error has occurred when a command transaction is continuously received.

また、コマンドトランザクションを受信してからタイムアウトカウンタによりカウントを行ない、ある一定時間の間にリターントランザクションを受信しなかった場合にも同様にエラーと判断することができる。   Further, when a command transaction is received and counted by a time-out counter, and a return transaction is not received within a certain period of time, it can be similarly determined as an error.

次にトランザクションのシーケンスについて詳しく説明する。   Next, the transaction sequence will be described in detail.

図5にはコマンドトランザクションのシーケンスを示す。サイクル1で通信経路がアイドル状態(tbsyp=Low)でスレーブインターフェースがレディ状態(srdyp=High)なので、マスタインターフェースはサイクル2でtspをHighにアサートしてコマンドトランザクションを開始することができる。このコマンドはライトであるのでrd_not_wrをLowにアサートする。スレーブインターフェースはtspのアサートによりコマンドトランザクションの開始を検出し、サイクル3でsrdypをLowにディアサートする。srdypのディアサートのタイミングは、続けてコマンドトランザクションが発行されるのを防ぐためなので、トランザクションが終了するまでであればいつでもかまわない。   FIG. 5 shows a sequence of command transactions. Since the communication path is in the idle state (tbsyp = Low) in cycle 1 and the slave interface is in the ready state (srdyp = High), the master interface can assert tsp high in cycle 2 and start a command transaction. Since this command is a write, rd_not_wr is asserted low. The slave interface detects the start of the command transaction by asserting tsp, and deasserts srdyp to low in cycle 3. The deassertion timing of srdyp is to prevent subsequent command transactions from being issued, so it can be any time until the transaction ends.

uaddr_midp[5:0]、laddr_datap[15:0]には1ビート目から3ビート目までそれぞれ決められたアドレス、マスタID、ライトデータが乗せられている。サイクル4でコマンドトランザクションは終了し、サイクル5でtbsypがLowにディアサートされ、通信経路はアイドル状態に戻っている。   In uaddr_midp [5: 0] and laddr_datap [15: 0], addresses, master IDs, and write data determined from the first beat to the third beat are placed. In cycle 4, the command transaction ends. In cycle 5, tbsyp is deasserted to Low, and the communication path returns to the idle state.

サイクル9ではsrdypがHighにアサートされ、スレーブインターフェースが再度レディ状態に戻っている。これを検出してマスタインターフェースはサイクル10でtspをHighにアサートし、リードコマンドトランザクションを開始している。ここではリードなので、rd_not_wrはHighにアサートされている。また、laddr_datap[15:0]の2ビート目と3ビート目にはデータが乗せられていない。   In cycle 9, srdyp is asserted high, and the slave interface returns to the ready state again. Upon detecting this, the master interface asserts tsp to High in cycle 10 and starts a read command transaction. Since it is a read here, rd_not_wr is asserted High. Also, no data is placed on the second and third beats of laddr_datap [15: 0].

図6はマスタモジュール400から発行されたライトコマンドトランザクションを、通信経路0から受けたスレーブモジュール0 401が、ライトコマンドトランザクションを通信経路1にフォワードし、リターントランザクションを通信経路1に発行する際のシーケンスを示している。   FIG. 6 shows a sequence when the slave module 0 401 receiving the write command transaction issued from the master module 400 from the communication path 0 forwards the write command transaction to the communication path 1 and issues a return transaction to the communication path 1. Is shown.

前述した通信経路0でのライトコマンドトランザクションのシーケンスは前述したとおりである。スレーブモジュール0は通信経路0から送られてくるトランザクションを通信経路1へフォワードする。通信経路1のsrdyp1がHighにアサートされている場合、トランザクションは1サイクルのディレイで通信経路1へフォワードされる。一般的には、コマンドトランザクションのフォワードはアドレスのデコードが終了して、自分に対するアクセスではないことが確定した段階で次の経路にコマンドトランザクションをフォワードするため、アドレスデコードが終了するのを待つ必要があるので、1サイクルのディレイでフォワードすることは困難であった。本発明では、アドレスのデコードの結果によらずに必ずコマンドトランザクションをフォワードするプロトコルにしているため、デコードの終了を待つ必要がなく、フォワードのディレイを1サイクルに抑えることができる。これにより、リング接続の最大の欠点であるレイテンシの悪化を最小限に抑えることができる。   The sequence of the write command transaction on the communication path 0 described above is as described above. The slave module 0 forwards the transaction sent from the communication path 0 to the communication path 1. If srdyp1 of communication path 1 is asserted High, the transaction is forwarded to communication path 1 with a one-cycle delay. Generally, in order to forward a command transaction, it is necessary to wait for the address decoding to end in order to forward the command transaction to the next path when the address decoding is completed and it is determined that it is not an access to itself. As a result, it was difficult to forward with a one-cycle delay. In the present invention, the protocol for always forwarding command transactions is used regardless of the result of address decoding, so there is no need to wait for the end of decoding, and the forward delay can be suppressed to one cycle. Thereby, it is possible to minimize the deterioration of the latency, which is the greatest drawback of the ring connection.

スレーブモジュール0 401は、srdyp0をディアサートして次のトランザクションの受信を防いでいる間に、アドレスのデコードを行い、自分に対するアクセスでなければ、srdyp0をアサートして次のトランザクションを受け付ければよい。   The slave module 0 401 decodes the address while deasserting srdyp0 to prevent reception of the next transaction. If it is not an access to itself, it may assert srdyp0 and accept the next transaction. .

スレーブモジュール1 402がトランザクションを受信することができない場合は通信経路1のsrdyp1がLowにディアサートされている。この場合はスレーブモジュール0 401は受信したトランザクションをフォワードすることができないため、内部のバッファにトランザクションを格納し、srdyp1がアサートされた時点であらためてフォワードすることになる。   When the slave module 1 402 cannot receive a transaction, srdyp1 of the communication path 1 is deasserted to Low. In this case, since the slave module 0 401 cannot forward the received transaction, the transaction is stored in the internal buffer and forwarded again when srdyp1 is asserted.

図6の場合は1サイクルのディレイでコマンドトランザクションがフォワードされている。また、デコードの結果、自分に対するアクセスであったので、srdyp0をディアサートしたまま、リターントランザクションを通信経路1に発行している。   In the case of FIG. 6, the command transaction is forwarded with a delay of one cycle. Also, as a result of decoding, the access is for itself, so a return transaction is issued to the communication path 1 while srdyp0 is deasserted.

サイクル9で通信経路1がアイドル状態でスレーブモジュール1 402がレディ状態なので、スレーブモジュール0 401はサイクル10でrspをHighにアサートし、リターントランザクションを開始する。シーケンスはコマンドトランザクションと同じで、tspをアサートするところをrspをアサートするというところが異なる。また、ライトコマンドに対するリターントランザクションではデータを乗せる部分はDon't Careでよい。   Since the communication path 1 is idle in cycle 9 and the slave module 1 402 is ready, slave module 0 401 asserts rsp high in cycle 10 and starts a return transaction. The sequence is the same as the command transaction, except that tsp is asserted and rsp is asserted. Also, in a return transaction for a write command, the part where data is placed may be Don't Care.

このようにして発行されたリターントランザクションはコマンドトランザクションと同様に通信経路を次々にフォワードされてゆき、最終的にマスタモジュールへ戻る。各スレーブモジュールはリターントランザクションを受信した場合はアドレスのデコードを行なわず、ヒットしなかったコマンドトランザクションと同様に次の通信経路にフォワードされる。   The return transactions issued in this way are forwarded one after another through the communication path in the same way as the command transaction, and finally return to the master module. When each slave module receives a return transaction, it does not decode the address, and is forwarded to the next communication path in the same manner as a command transaction that did not hit.

以上のようにマスタモジュール400から発行されたコマンドトランザクションは、ターゲットとなるスレーブモジュールでリターントランザクションが発行され、マスタモジュール400に戻ってくる時には必ずコマンドトランザクションの後にリターントランザクションも続けて送られてくる。   As described above, the command transaction issued from the master module 400 is issued as a return transaction by the target slave module. When returning to the master module 400, the return transaction is always sent after the command transaction.

マスタモジュール400はコマンドトランザクションを発行した後、そのコマンドトランザクションとリターントランザクションが戻ってくる前に、次のコマンドトランザクションを発行することが可能である。これにより、リング内にパイプライン的にトランザクションを発行することが可能になる。   After issuing the command transaction, the master module 400 can issue the next command transaction before the command transaction and the return transaction are returned. This makes it possible to issue transactions in a pipeline manner in the ring.

図7はマスタモジュール400から発行されたリードコマンドトランザクションを、通信経路0から受けたスレーブモジュール1が、リードコマンドトランザクションを通信経路1にフォワードし、リターントランザクションを通信経路1に発行する際のシーケンスを示している。   FIG. 7 shows a sequence when the slave module 1 that has received the read command transaction issued from the master module 400 from the communication path 0 forwards the read command transaction to the communication path 1 and issues a return transaction to the communication path 1. Show.

シーケンス的にはライトコマンドトランザクションとほとんど同じである。rd_not_wrが反転することと、リードコマンドトランザクションのデータ部がDon't Careとなり、リターントランザクションのデータ部にはリードデータが乗せられるということが異なるだけである。   The sequence is almost the same as a write command transaction. The only difference is that rd_not_wr is inverted and that the data part of the read command transaction is Don't Care and the read data is put on the data part of the return transaction.

以上、レジスタアクセスリングに注目して、その通信方法を詳細に説明した。   In the above, paying attention to the register access ring, the communication method has been described in detail.

図3には図1のシステムから第一のレジスタアクセスリング111と第二のレジスタアクセスリング121の部分を抽出した図を示す。以下にこの図を用いて、階層化されたレジスタアクセスリングに注目して、その通信方法を詳細に説明する。モジュール間の通信経路の通信プロトコルは以上に説明したものと同じである。   FIG. 3 is a diagram in which portions of the first register access ring 111 and the second register access ring 121 are extracted from the system of FIG. Hereinafter, the communication method will be described in detail with a focus on the hierarchized register access ring, using FIG. The communication protocol of the communication path between modules is the same as described above.

マスタモジュール400、スレーブモジュール0 401、スレーブモジュール2 403、通信経路0〜3については図2と同等である。また、スレーブモジュール3 411、スレーブモジュール3 412、スレーブモジュール4 413についても、スレーブモジュール0 401と同等である。   The master module 400, slave module 0 401, slave module 2 403, and communication paths 0 to 3 are the same as those in FIG. The slave module 3 411, the slave module 3 412, and the slave module 4 413 are also equivalent to the slave module 0 401.

410はリングブリッジであり、通信経路1によってスレーブモジュール0 401のマスタインターフェースと接続されており、通信経路2によってスレーブモジュール2 403のスレーブインターフェースと接続されている。さらにリングブリッジ410は、通信経路10によってスレーブモジュール3 411のスレーブインターフェースと接続されており、通信経路13によりスレーブモジュール5 413のマスタインターフェースと接続されている。   A ring bridge 410 is connected to the master interface of the slave module 0 401 via the communication path 1 and is connected to the slave interface of the slave module 2 403 via the communication path 2. Further, the ring bridge 410 is connected to the slave interface of the slave module 3 411 through the communication path 10, and is connected to the master interface of the slave module 5 413 through the communication path 13.

通信経路11はスレーブモジュール3 411のマスタインターフェースとスレーブモジュール4 412のスレーブインターフェース、通信経路12はスレーブモジュール4 412のマスタインターフェースとスレーブモジュール5 413のスレーブインターフェースを接続している。   The communication path 11 connects the master interface of the slave module 3 411 and the slave interface of the slave module 4 412, and the communication path 12 connects the master interface of the slave module 4 412 and the slave interface of the slave module 5 413.

通信経路0→通信経路1→通信経路2→通信経路3で構成されるリングは第一のレジスタアクセスリング111であり、通信経路10→通信経路11→通信経路12→通信経路13で構成されるリングは第二のレジスタアクセスリング121である。   The ring configured by communication path 0 → communication path 1 → communication path 2 → communication path 3 is the first register access ring 111, and is configured by communication path 10 → communication path 11 → communication path 12 → communication path 13. The ring is a second register access ring 121.

第二のレジスタアクセスリング121内の通信経路の信号は通信経路0〜3と同等であり、それぞれの通信経路での信号名は、以下のようになる。   The signals on the communication paths in the second register access ring 121 are equivalent to the communication paths 0 to 3, and the signal names on the respective communication paths are as follows.

通信経路10の信号
tsp10, rsp10, tbsyp10, uaddr_midp10[5:0], laddr_datap10[15:0], rd_not_wr10, errorp10, srdyp10
通信経路11の信号
tsp11, rsp11, tbsyp11, uaddr_midp11[5:0], laddr_datap11[15:0], rd_not_wr11, errorp11, srdyp11
通信経路12の信号
tsp12, rsp12, tbsyp12, uaddr_midp12[5:0], laddr_datap12[15:0], rd_not_wr12, errorp12, srdyp12
通信経路13の信号
tsp13, rsp13, tbsyp13, uaddr_midp13[5:0], laddr_datap13[15:0], rd_not_wr13, errorp13, srdyp13
各スレーブモジュールに割り当てられているアドレスを以下の通りとする。
Signal of communication path 10
tsp10, rsp10, tbsyp10, uaddr_midp10 [5: 0], laddr_datap10 [15: 0], rd_not_wr10, errorp10, srdyp10
Communication path 11 signal
tsp11, rsp11, tbsyp11, uaddr_midp11 [5: 0], laddr_datap11 [15: 0], rd_not_wr11, errorp11, srdyp11
Communication path 12 signal
tsp12, rsp12, tbsyp12, uaddr_midp12 [5: 0], laddr_datap12 [15: 0], rd_not_wr12, errorp12, srdyp12
Communication path 13 signal
tsp13, rsp13, tbsyp13, uaddr_midp13 [5: 0], laddr_datap13 [15: 0], rd_not_wr13, errorp13, srdyp13
The addresses assigned to each slave module are as follows.

割り当てられているアドレス
スレーブモジュール0 401 0x001000 〜 0x001FFF
スレーブモジュール2 403 0x002000 〜 0x002FFF
スレーブモジュール3 411 0x011000 〜 0x011FFF
スレーブモジュール4 412 0x012000 〜 0x012FFF
スレーブモジュール5 413 0x013000 〜 0x013FFF
ここで、リングブリッジ410にはリングブリッジ410から分岐している第二のレジスタアクセスリング121に接続されているすべてのスレーブモジュールに割り当てられたアドレスを含み、かつ、他のスレーブモジュールに割り当てられたアドレスは含まないアドレスを割り当てておく必要がある。この場合、リングブリッジ410に割り当てられるアドレスは、0x011000 〜 0x013FFF を含む必要があり、実際には0x010000 〜 0x01FFFF が割り当てられている。
Assigned address slave module 0 401 0x001000 to 0x001FFF
Slave module 2 403 0x002000 to 0x002FFF
Slave module 3 411 0x011000 to 0x011FFF
Slave module 4 412 0x012000 to 0x012FFF
Slave module 5 413 0x013000 to 0x013FFF
Here, the ring bridge 410 includes addresses assigned to all the slave modules connected to the second register access ring 121 branched from the ring bridge 410 and assigned to other slave modules. It is necessary to assign an address that does not include the address. In this case, the address assigned to the ring bridge 410 needs to include 0x011000 to 0x013FFF, and actually 0x010000 to 0x01FFFF is assigned.

リングブリッジ410はブリッジ機能をもっており、通信経路1からリングブリッジ410に割り当てられたアドレスに対するコマンドトランザクションを受け取った場合、それを第二のレジスタアクセスリングにフォワードする機能を持っている。   The ring bridge 410 has a bridge function, and when receiving a command transaction for an address assigned to the ring bridge 410 from the communication path 1, has a function of forwarding it to the second register access ring.

リングブリッジ410は、自分のアドレスにヒットしなかった場合、前述したスレーブモジュールと同様の振る舞いをし、通信経路2にコマンドトランザクションをフォワードする。   When the ring bridge 410 does not hit its own address, the ring bridge 410 behaves in the same manner as the slave module described above and forwards the command transaction to the communication path 2.

以下にリングブリッジ410のブリッジ機能について詳細に説明を行なう。   Hereinafter, the bridge function of the ring bridge 410 will be described in detail.

リングブリッジ410は通信経路1からコマンドトランザクションを受け取ると、直ちにそれをそのまま通信経路2へフォワードする。言うまでもなく、フォワードするためにはスレーブモジュール2 403がトランザクションを受け取る準備ができていて、srdyp2がアサートされていることが必要である。リングブリッジ410内にはコマンドを一時保存しておくコマンドバッファ420が存在しており、通信経路2へフォワードすると同時にコマンドバッファ420にも保存する。   When the ring bridge 410 receives a command transaction from the communication path 1, it immediately forwards it to the communication path 2 as it is. Of course, slave module 2 403 needs to be ready to accept transactions and srdyp2 must be asserted in order to forward. A command buffer 420 that temporarily stores commands exists in the ring bridge 410, and is forwarded to the communication path 2 and simultaneously stored in the command buffer 420.

リングブリッジ410は、srdyp1をディアサートして次のトランザクションの受信を防いでいる間に、アドレスのデコードを行い、自分に対するアクセスでなければ、srdyp1をアサートして次のトランザクションを受け付ければよい。   The ring bridge 410 decodes the address while deasserting srdyp1 to prevent reception of the next transaction, and if it is not an access to itself, it may assert srdyp1 and accept the next transaction.

このように、第一のレジスタアクセスリング111内のスレーブモジュールにアクセスする限りは、第二のレジスタアクセスリング121内のスレーブモジュールの数などに関係なく、第一のレジスタアクセスリング111内のモジュールの数によって通信速度が決まるので、高速な通信が可能である。   As described above, as long as the slave modules in the first register access ring 111 are accessed, the modules in the first register access ring 111 do not depend on the number of slave modules in the second register access ring 121 or the like. Since the communication speed is determined by the number, high-speed communication is possible.

また、デコードの結果、自分に対するアクセスであった場合は、srdyp0をディアサートしたまま、通信経路10にコマンドバッファに420保存していたコマンドトランザクションをフォワードする。こうして通信経路10にフォワードされたコマンドトランザクションは第一のレジスタアクセスリング111を流れる時と同様に第二のレジスタアクセスリング121を流れていく。   If the result of the decoding is an access to itself, the command transaction 420 stored in the command buffer 420 is forwarded to the communication path 10 while srdyp0 is deasserted. The command transaction forwarded to the communication path 10 in this manner flows through the second register access ring 121 in the same manner as when flowing through the first register access ring 111.

コマンドトランザクションは第二のレジスタアクセスリング121を一周してリングブリッジ410に戻ってくる。これをコマンドバッファ420に保存し、リターントランザクションを待つ。コマンドトランザクションがスレーブモジュール4 412に対するものだったとすると、スレーブモジュール4 412はコマンドの処理が完了後、通信経路12に対してリターントランザクションを発行する。これはスレーブモジュール5 413、通信経路13を経由してリングブリッジ410に到達する。リングブリッジ410はリターントランザクションを受け取ると、それを第一のレジスタアクセスリング111の通信経路2にフォワードし、srdyp0をアサートして、通信経路1からの次のトランザクションを待つ。   The command transaction goes around the second register access ring 121 and returns to the ring bridge 410. This is stored in the command buffer 420 and a return transaction is awaited. If the command transaction is for the slave module 4 412, the slave module 4 412 issues a return transaction to the communication path 12 after the command processing is completed. This reaches the ring bridge 410 via the slave module 5 413 and the communication path 13. When the ring bridge 410 receives the return transaction, it forwards it to the communication path 2 of the first register access ring 111, asserts srdyp0, and waits for the next transaction from the communication path 1.

リングブリッジ410はタイムアウトカウンタ421を内蔵しており、コマンドトランザクションを通信経路13から受け取ってからカウントを行ない、ある一定時間の間にリターントランザクションを受信しなかった場合にはエラーと判断し、コマンドバッファ420に保存しておいたコマンドトランザクションを元にリターントランザクションを作成し、通信経路2に対して発行する。このときerrorp2をtbsyp2と同じタイミングでアサートする。これにより、第二のレジスタアクセスリング121内で、コマンドトランザクションに反応するスレーブモジュールがなかった場合のエラーを検出することができる。   The ring bridge 410 has a built-in timeout counter 421, which counts after receiving a command transaction from the communication path 13, and determines that an error occurs if no return transaction is received within a certain period of time. A return transaction is created based on the command transaction stored in 420 and issued to the communication path 2. At this time, errorp2 is asserted at the same timing as tbsyp2. As a result, an error can be detected in the second register access ring 121 when there is no slave module that responds to the command transaction.

また、第二のレジスタアクセスリング121内で、コマンドトランザクションに反応するスレーブモジュールが2つ存在した場合は、先にリングブリッジ410に到達したリターントランザクションにより、リングブリッジ410は正常時と同様にリターンパケットを通信経路2に発行してしまう。その後、通信経路13からさらにリターントランザクションを受け取ると、そのリターントランザクションをerrorp2をアサートしながら通信経路2にフォワードする。   If there are two slave modules that respond to the command transaction in the second register access ring 121, the return transaction that has reached the ring bridge 410 earlier causes the ring bridge 410 to return a packet as in the normal state. Is issued to the communication path 2. Thereafter, when a further return transaction is received from the communication path 13, the return transaction is forwarded to the communication path 2 while asserting errorp2.

コマンドトランザクションに対するリターントランザクションの順番をインオーダーに保つためには、リングブリッジ410は、第二のレジスタアクセスリング121にコマンドトランザクションを発行してから、それに対するリターントランザクションが戻ってくるまでは通信経路1からのトランザクションを受け取ってはならず、結果、第二のレジスタアクセスリング121には常にひとつのコマンドトランザクションしか存在しないことになる。   In order to keep the order of return transactions with respect to command transactions in-order, the ring bridge 410 issues a command transaction to the second register access ring 121, and then returns from the communication path 1 until the return transaction for the command transaction returns. As a result, there is always only one command transaction in the second register access ring 121.

本実施例では、第二のレジスタアクセスリング121内のスレーブモジュールを第一のレジスタアクセスリング111内のスレーブモジュールと同一のものとし、トランザクションのプロトコルも同一としたが、実際は第二のレジスタアクセスリング121内のスレーブモジュールは常にトランザクションを受け取れる状態にあるため、srdyp信号は必要ない。   In this embodiment, the slave module in the second register access ring 121 is the same as the slave module in the first register access ring 111, and the transaction protocol is also the same. Since the slave modules in 121 are always ready to accept transactions, the srdyp signal is not necessary.

よって第二のレジスタアクセスリング121では、srdyp信号を省くことも可能である。   Therefore, the second register access ring 121 can omit the srdyp signal.

本発明が特定の実施例に関して図示されかつ説明されたが、さらに他の修正および改善が可能であろう。例えば、ここに述べた通信経路の信号は、他の名称を持つが同じ基本的な機能を果すものとすることができる。各信号のビット幅、および他の値は設計に応じて変えることができる。任意の数のスレーブモジュールをリングに接続することができる。   Although the present invention has been shown and described with respect to particular embodiments, further modifications and improvements will be possible. For example, the communication path signals described herein may have other names but perform the same basic functions. The bit width of each signal and other values can be varied depending on the design. Any number of slave modules can be connected to the ring.

また、エラーの発生がない設計を行なえば、エラー信号を省くことができる。   Further, if the design is such that no error occurs, the error signal can be omitted.

各モジュールを接続するデータ転送用のシステムバスは1つのバスで各モジュールを接続している必要はなく、間にバスブリッジを介して階層化されていてもよく、また、個別のバスで分離されて接続されていてもよい。さらには、接続の形態として、マルチプレックスバス、スター接続、などどのような形状で接続されていてもかまわない。   The system bus for data transfer that connects each module does not need to be connected to each module by one bus, and may be hierarchized via a bus bridge between them, or separated by a separate bus. May be connected. Furthermore, the connection may be in any shape such as multiplex bus or star connection.

また、システム内にマスタが1つしか存在しないような場合、本発明のリング接続をレジスタアクセス用に限らず、システムバスの代わりとしてすべての通信に利用することも可能である。
さらに、本実施例では信号線数の削減のためにアドレス、データがマルチプレックスされているが、マルチプレックスの段数は任意の段数にしてもよい。たとえば、信号線を1本にし、シリアル通信のようにアドレス、データを送ることもできる。逆に、すべての信号線を用意すればマルチプレックスを行なう必要はなくなる。この場合、トランザクションは1サイクルで終了することになり、高速化が実現できる。
When there is only one master in the system, the ring connection of the present invention is not limited to register access, but can be used for all communications in place of the system bus.
Furthermore, in this embodiment, addresses and data are multiplexed to reduce the number of signal lines, but the number of stages in the multiplex may be any number. For example, a single signal line can be used to send addresses and data as in serial communication. Conversely, if all signal lines are prepared, there is no need to perform multiplexing. In this case, the transaction is completed in one cycle, and high speed can be realized.

また、図4に示すように二つ以上の従属されたレジスタアクセスリングが存在するシステム構成や、リングの階層が多段になる構成も容易に考えられる。   Further, as shown in FIG. 4, a system configuration in which two or more subordinate register access rings exist and a configuration in which the ring hierarchy is multistage can be easily considered.

したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。   Accordingly, the invention is not intended to be limited to the specific forms shown, but is intended to cover all modifications within the scope of the appended claims which do not depart from the spirit and scope of the invention. Should be understood.

本発明の実施の形態の構成を示すブロック図。The block diagram which shows the structure of embodiment of this invention. 図1のシステムから第一のレジスタアクセスリングの部分を抽出した図。The figure which extracted the part of the 1st register access ring from the system of FIG. 図1のシステムから第一のレジスタアクセスリングと第二のレジスタアクセスリングの部分を抽出した図。The figure which extracted the part of the 1st register access ring and the 2nd register access ring from the system of FIG. 第一のレジスタアクセスリングに第二と第三の二つのレジスタアクセスリングが従属している場合の図。The figure in case the 2nd and 3rd register access rings are subordinate to the 1st register access ring. コマンドトランザクションのシーケンス。A sequence of command transactions. マスタモジュールから発行されたライトコマンドトランザクションを、通信経路0から受けたスレーブモジュール1が、ライトコマンドトランザクションを通信経路1にフォワードし、リターントランザクションを通信経路1に発行する際のシーケンス。A sequence when the slave module 1 that has received a write command transaction issued from the master module from the communication path 0 forwards the write command transaction to the communication path 1 and issues a return transaction to the communication path 1. マスタモジュールから発行されたリードコマンドトランザクションを、通信経路0から受けたスレーブモジュール1が、リードコマンドトランザクションを通信経路1にフォワードし、リターントランザクションを通信経路1に発行する際のシーケンス。A sequence when the slave module 1 that has received the read command transaction issued from the master module from the communication path 0 forwards the read command transaction to the communication path 1 and issues a return transaction to the communication path 1.

符号の説明Explanation of symbols

100 CPU
101 システムバスブリッジ
102 レジスタアクセスされる対象であるスレーブモジュール0
104 レジスタアクセスされる対象であるスレーブモジュール2
105 メモリコントローラ
106 システムメモリ
110 LSI内の各モジュールを接続するシステムバス
111 各モジュールをリング状に接続する第一のレジスタアクセスリング
120 リングブリッジ
121 各モジュールをリング状に接続する第二のレジスタアクセスリング
122 レジスタアクセスされる対象であるスレーブモジュール3
123 レジスタアクセスされる対象であるスレーブモジュール4
124 レジスタアクセスされる対象であるスレーブモジュール5
400 第一のレジスタアクセスリングのマスタとなるマスタモジュール
401 第一のレジスタアクセスリングのスレーブとなるスレーブモジュール0
402 第一のレジスタアクセスリングのスレーブとなるスレーブモジュール1
403 第一のレジスタアクセスリングのスレーブとなるスレーブモジュール2
410 リングブリッジ
411 第二のレジスタアクセスリングのスレーブとなるスレーブモジュール3
412 第二のレジスタアクセスリングのスレーブとなるスレーブモジュール4
413 第二のレジスタアクセスリングのスレーブとなるスレーブモジュール5
100 CPU
101 System bus bridge 102 Slave module 0 subject to register access
104 Slave module 2 to be accessed by the register
105 memory controller 106 system memory 110 system bus connecting each module in LSI 111 first register access ring connecting each module in a ring shape 120 ring bridge 121 second register access ring connecting each module in a ring shape 122 Slave module 3 subject to register access
123 Slave module 4 subject to register access
124 Slave module 5 subject to register access
400 Master module serving as master of first register access ring 401 Slave module 0 serving as slave of first register access ring
402 Slave module 1 serving as slave of first register access ring
403 Slave module 2 serving as a slave of the first register access ring
410 Ring bridge 411 Slave module 3 serving as a slave of the second register access ring
412 Slave module 4 serving as a slave of the second register access ring
413 Slave module 5 serving as a slave of the second register access ring

Claims (6)

LSI内において、主となるマスタモジュールがひとつ存在し、そのマスタモジュールからアクセスされる複数のスレーブモジュールが存在し、マスタモジュールを含んで、複数のスレーブモジュールをリング状に接続する第一のリングと、他のスレーブモジュールをリング状に接続する第二のリングと、第一のリングと第二のリングがブリッジによって接続されている階層化されたリングを持つシステムにおいて、リングで接続されるすべてのモジュールは次に接続されるモジュールへトランザクションを発行するマスタインターフェースと前に接続されているモジュールからトランザクションを受け取るスレーブインターフェースを持ち、マスタモジュールはリングに接続された他のモジュールに対してアクセスを行なうためにマスタインターフェースからコマンドトランザクションを発行する手段を持ち、ブリッジは第一のリングにおいて前に接続されているモジュールからコマンドトランザクションを受け取るスレーブインターフェースと、第一のリングにおいて次に接続されるモジュールへトランザクションを発行するマスタインターフェースと、第二のリングにおいて次に接続されるモジュールへトランザクションを発行するマスタインターフェースと、第二のリングにおいて前に接続されているモジュールからコマンドトランザクションを受け取るスレーブインターフェースを持ち、第一のリングから受け取ったコマンドトランザクションを必要に応じて第二のリングに対して発行する手段と、第二のリングから受け取ったトランザクションを必要に応じて第一のリングに発行する手段とを持ち、スレーブとなる他のモジュールは、スレーブインターフェースから受け取ったコマンドトランザクションに従って処理を行なうことを特徴とした通信方法および装置。   In the LSI, there is one main master module, a plurality of slave modules accessed from the master module, including the master module, and a first ring that connects the plurality of slave modules in a ring shape; In a system with a second ring that connects other slave modules in a ring and a layered ring in which the first ring and the second ring are connected by a bridge, all the rings connected by the ring The module has a master interface that issues transactions to the next connected module and a slave interface that receives transactions from the previously connected module, so that the master module has access to other modules connected to the ring To master Interface to issue command transactions from the interface, and the bridge issues transactions to the slave interface that receives command transactions from previously connected modules in the first ring and to the next connected module in the first ring A master interface that issues a transaction to the next connected module in the second ring, and a slave interface that receives a command transaction from a previously connected module in the second ring. A means for issuing a command transaction received from the ring to the second ring as necessary, and a transaction received from the second ring as required by the first It has a means for issuing a grayed, other modules as a slave to a communication method and apparatus and performs processing according to the command transactions received from the slave interface. 前記第一のリングに、複数のブリッジにより複数のリングが接続されていることを特徴とした請求項1に記載の通信方法および通信装置。   The communication method and the communication apparatus according to claim 1, wherein a plurality of rings are connected to the first ring by a plurality of bridges. LSI内部に複数のモジュールを持ち、各モジュールがシステムバスで接続されているのに加え、各モジュールを第一のリングと第二のリングによって階層化されたリング状に接続する通信経路が存在し、CPUがレジスタアクセスなどを行なう際には階層化されたリング状の通信経路を用いて通信を行なうことを特徴とした請求項1または請求項2に記載の通信方法および装置。   In addition to having multiple modules inside an LSI and connecting each module via a system bus, there is a communication path that connects each module in a ring that is hierarchized by a first ring and a second ring. 3. The communication method and apparatus according to claim 1, wherein when the CPU performs register access or the like, communication is performed using a hierarchical ring-shaped communication path. 前記スレーブとなるモジュールは、スレーブインターフェースから受け取ったコマンドトランザクションを次に接続されたモジュールへマスタインターフェースからフォワードする手段を持ち、そのコマンドトランザクションが自分に対するアクセスであるかどうかを判断するためにトランザクションに含まれるアドレスを、トランザクションをフォワードするのと平行してデコードを行なう手段と、そのコマンドトランザクションが自分に対するアクセスであると判断したときにはリターントランザクションをマスタインターフェースから発行する手段を持ち、前記ブリッジは、スレーブインターフェースから受け取ったコマンドトランザクションを第一のリングにおいて次に接続されたモジュールへマスタインターフェースからフォワードする手段を持ち、そのコマンドトランザクションが自分に対するアクセスであるかどうかを判断するためにトランザクションに含まれるアドレスを、トランザクションをフォワードするのと平行してデコードを行なう手段と、そのコマンドトランザクションが自分に対するアクセスであると判断したときには第二のリングに対してコマンドトランザクションをマスタインターフェースから発行する手段を持ち、第二のリング内において前に接続されたモジュールからリターントランザクションを受け取ったときには、第一のリングにおいて次に接続されたモジュールへマスタインターフェースからフォワードする手段を持つことを特徴とした請求項1または請求項2または請求項3に記載の通信方法および装置。   The slave module has means for forwarding the command transaction received from the slave interface from the master interface to the next connected module, and is included in the transaction to determine whether the command transaction is an access to itself. Means for decoding the address to be transmitted in parallel with forwarding the transaction, and means for issuing a return transaction from the master interface when it is determined that the command transaction is an access to itself. The command transaction received from the master interface is forwarded to the next connected module in the first ring. Means for decoding the address included in the transaction in parallel with forwarding the transaction in order to determine whether the command transaction is an access to itself, and the command transaction accessing the self If it is determined that the command transaction is issued from the master interface to the second ring, and when a return transaction is received from a previously connected module in the second ring, the first ring 4. The communication method and apparatus according to claim 1, further comprising means for forwarding from a master interface to a connected module. 前記スレーブとなるモジュールおよび前記ブリッジは、次に接続されたモジュールがトランザクションを受け取る準備ができていないときには受信したトランザクションをフォワードせずに保持しておくためのバッファを持ち、次に接続されたモジュールがトランザクションを受け取る準備が出来次第送信する手段を持つことを特徴とした請求項4に記載の通信方法および装置。   The slave module and the bridge have a buffer for holding the received transaction without forwarding when the next connected module is not ready to receive a transaction, and the next connected module 5. The communication method and apparatus of claim 4, further comprising means for transmitting as soon as it is ready to receive a transaction. 前記ブリッジは、ブリッジのマスタインターフェースを始点とし、モジュールを順に接続した第二のリングの終点が最終的に接続されるスレーブインターフェースを持ち、ブリッジから発行したコマンドトランザクションが最終的に戻ってきて、その後に一定時間リターントランザクションが受信できなかった場合にエラーと判断する手段を持つことを特徴とした請求項5に記載の通信方法および装置。   The bridge has a slave interface in which the master interface of the bridge is the starting point, the end point of the second ring in which the modules are connected in order is finally connected, and the command transaction issued from the bridge finally returns, 6. The communication method and apparatus according to claim 5, further comprising means for determining an error when a return transaction cannot be received for a predetermined time.
JP2004291323A 2004-10-04 2004-10-04 Inter-module communication method and device by hierarchized ring Withdrawn JP2006107022A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004291323A JP2006107022A (en) 2004-10-04 2004-10-04 Inter-module communication method and device by hierarchized ring

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004291323A JP2006107022A (en) 2004-10-04 2004-10-04 Inter-module communication method and device by hierarchized ring

Publications (1)

Publication Number Publication Date
JP2006107022A true JP2006107022A (en) 2006-04-20

Family

ID=36376704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004291323A Withdrawn JP2006107022A (en) 2004-10-04 2004-10-04 Inter-module communication method and device by hierarchized ring

Country Status (1)

Country Link
JP (1) JP2006107022A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514016A (en) * 2008-03-03 2011-04-28 日本電気株式会社 Controller for high-speed data exchange between processing units in a processor architecture having processing units of different bandwidths connected to a pipelined bus
JP2016134130A (en) * 2015-01-22 2016-07-25 三菱電機株式会社 Multi-ring network
KR20160124394A (en) * 2015-04-17 2016-10-27 엘에스산전 주식회사 Slave device and mehtod controlling thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514016A (en) * 2008-03-03 2011-04-28 日本電気株式会社 Controller for high-speed data exchange between processing units in a processor architecture having processing units of different bandwidths connected to a pipelined bus
US8683106B2 (en) 2008-03-03 2014-03-25 Nec Corporation Control apparatus for fast inter processing unit data exchange in an architecture with processing units of different bandwidth connection to a pipelined ring bus
JP2016134130A (en) * 2015-01-22 2016-07-25 三菱電機株式会社 Multi-ring network
KR20160124394A (en) * 2015-04-17 2016-10-27 엘에스산전 주식회사 Slave device and mehtod controlling thereof
JP2016207209A (en) * 2015-04-17 2016-12-08 エルエス産電株式会社Lsis Co., Ltd. Slave devices and method for controlling the same
US10348835B2 (en) 2015-04-17 2019-07-09 Lsis Co., Ltd. Slave device and method for controlling the same
KR102023534B1 (en) * 2015-04-17 2019-09-23 엘에스산전 주식회사 Slave device and mehtod controlling thereof

Similar Documents

Publication Publication Date Title
US20240012759A1 (en) Shared buffered memory routing
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
CN100405352C (en) Apparatus for interconnecting a plurality of process nodes by serial bus
US7392337B2 (en) System, method and storage medium for a memory subsystem command interface
JP4083987B2 (en) Communication system with multi-level connection identification
US20160283303A1 (en) Reliability, availability, and serviceability in multi-node systems with disaggregated memory
CN111930664A (en) Ordered sets for high speed interconnects
JP2001142842A (en) Dma handshake protocol
JP2006195870A (en) Data transfer system and electronic apparatus
EP1027786A2 (en) Bidirectional communication port for digital signal processor
US20070288676A1 (en) Methods and apparatus for servicing commands
EP2165265B1 (en) Processor communication tokens
JP2003296267A (en) Bus system and information processing system including bus system
CN110941582A (en) USB bus structure of BMC chip and communication method thereof
JP5983744B2 (en) Information processing apparatus and failure detection method for information processing apparatus
US6442670B2 (en) Data processing system including a shared memory resource circuit
JP5382736B2 (en) Token protocol
EP3176701B1 (en) Systems and methods for transmitting an access request via a flexible register access bus
JP2005293596A (en) Arbitration of data request
JP2006107022A (en) Inter-module communication method and device by hierarchized ring
JP2006107023A (en) Command serialization method and device in inter-module communication
JP2006109055A (en) Communication method and device between arbitrary modules in ring
KR20140123713A (en) Apparatus and method for accessing of divice through serial interface
JP2007265108A (en) Bus bridge
JP2009031932A (en) Transfer device, information processing apparatus therewith, and control method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071204