Decentralized arbitration crossbar network
Patent Information
- Authority / Receiving Office
- TW · TW
- Patent Type
- Applications
- Current Assignee / Owner
- RDC SEMICON CO LTD
- Filing Date
- 2025-01-23
- Publication Date
- 2026-08-01
AI Technical Summary
Conventional crossbar networks in IC chips require complex internal wiring designs and suffer from reduced operating performance due to the need for centralized arbitration and polling to establish data paths, which increases complexity and time consumption.
A decentralized arbitration crossbar network is implemented using a three-way handshake between circuits to establish data paths, eliminating the need for a centralized arbitration unit and reducing the complexity of internal wiring.
This approach simplifies the internal wiring design and enhances operating performance by allowing direct, efficient data path establishment between circuits through decentralized arbitration.
Smart Images

Figure TWG2TA001069805_001 
Figure TWG2TA001069805_002 
Figure TWG2TA001069805_003
Abstract
Description
[Technical Field]
[0001] This invention relates to a crossbar network, and more particularly to a decentralized arbitration crossbar network. [Previous Technology]
[0002] As is well known, an IC chip includes multiple circuits, and each circuit can exchange data and commands with each other. Therefore, a crossbar network was developed to enable circuits to exchange data and commands with each other.
[0003] Please refer to Figure 1A, which illustrates a conventional IC chip. The IC chip 100 includes a first circuit 110, a second circuit 120, a third circuit 130, and a fourth circuit 140. The first circuit 110 includes a transmitter (Tx1) and a receiver (Rx1). The second circuit 120 includes a transmitter (Tx2) and a receiver (Rx2). The third circuit 130 includes a transmitter (Tx3) and a receiver (Rx3). The fourth circuit 140 includes a transmitter (Tx4) and a receiver (Rx4). Furthermore, any one of these circuits can receive data and instructions from the other three circuits, and any one of these circuits can also transmit data and instructions to the other three circuits. For example, each of the circuits 110, 120, 130, and 140 can be one of a control unit, a storage unit, a data processing unit, a graphics processing unit, etc.
[0004] To achieve the above relationship, the IC chip 100 is further designed with an arbitrating unit to allocate the data paths between all circuits 110, 120, 130, and 140 for transmitting data and instructions. The arbitrating unit includes: an arbitrator 150 and multiplexers 151, 152, 153, and 154.
[0005] The four input terminals of the first multiplexer 151 are connected to the transmitters Tx1, Tx2, Tx3, and Tx4 of the four circuits 110, 120, 130, and 140. The output terminal of the first multiplexer 151 is connected to the receiver Rx1 of the first circuit 110. The selection terminal of the first multiplexer 151 receives the first selection signal SA. The four input terminals of the second multiplexer 152 are connected to the transmitters Tx1, Tx2, Tx3, and Tx4 of the four circuits 110, 120, 130, and 140. The output terminal of the second multiplexer 152 is connected to the receiver Rx2 of the second circuit 120. The selection terminal of the second multiplexer 152 receives the second selection signal SB. The four inputs of the third multiplexer 153 are connected to the transmitters Tx1, Tx2, Tx3, and Tx4 of the four circuits 110, 120, 130, and 140. The output of the third multiplexer 153 is connected to the receiver Rx3 of the third circuit 130. The selector of the third multiplexer 153 receives the third select signal SC. The four inputs of the fourth multiplexer 154 are connected to the transmitters Tx1, Tx2, Tx3, and Tx4 of the four circuits 110, 120, 130, and 140. The output of the fourth multiplexer 154 is connected to the receiver Rx4 of the fourth circuit 140. The selector of the fourth multiplexer 154 receives the fourth select signal SD.
[0006] Arbitrator 150 is connected to four circuits 110, 120, 130, and 140. Arbitrator 150 uses a first communication signal (C1) to exchange link information with the first circuit 110. Arbitrator 150 uses a second communication signal (C2) to exchange link information with the second circuit 120. Arbitrator 150 uses a third communication signal (C3) to exchange link information with the third circuit 130. Arbitrator 150 uses a fourth communication signal (C4) to exchange link information with the fourth circuit 140. Furthermore, arbitrator 150 configures the data paths between all circuits 110, 120, 130, and 140 based on the link information of the four communication signals (C1, C2, C3, and C4).
[0007] Please refer to Figure 1B, which illustrates a conventional IC chip operation example. For example, based on the information from communication signals C1, C2, C3, and C4, the arbitrator 150 determines the data and instructions to be exchanged between the first circuit 110 and the second circuit 120, and between the third circuit 130 and the fourth circuit 140.
[0008] At this time, the arbitrator 150 uses the first selection signal SA to control the first multiplexer 151 to establish a data path, connecting the transmitter Tx2 of the second circuit 120 to the receiver Rx1 of the first circuit 110; it uses the second selection signal SB to control the second multiplexer 152 to establish a data path, connecting the transmitter Tx1 of the first circuit 110 to the receiver Rx2 of the second circuit 120; it uses the third selection signal SC to control the third multiplexer 153 to establish a data path, connecting the transmitter Tx4 of the fourth circuit 140 to the receiver Rx3 of the third circuit 130; and it uses the fourth selection signal SD to control the fourth multiplexer 154 to establish a data path, connecting the transmitter Tx3 of the third circuit 130 to the receiver Rx4 of the fourth circuit 140.
[0009] Once all data paths are established, the arbitrator 150 uses communication signals C1, C2, C3, and C4 to notify the four circuits 110, 120, 130, and 140, which can then begin transmitting data and instructions. In other words, the four circuits 110, 120, 130, and 140 transmit data and instructions to the desired circuit through the established data paths.
[0010] Of course, if a change in the data path is desired, the arbitrator 150 can establish another data path at an appropriate time. For example, if the first circuit 110 wants to transmit data and instructions to the third circuit 130, the first circuit 110 first notifies the arbitrator 150 using the communication signal C1. When the third circuit 130 confirms that it can receive the data and instructions from the first circuit 110, it notifies the arbitrator 150 using the communication signal C3. At this time, the arbitrator 150 uses the third selection signal SC to control the third multiplexer 153 to establish a new data path. After the new data path is established, the arbitrator 150 uses the communication signal C1 to notify the first circuit 110 to transmit data and instructions to the third circuit 130.
[0011] Basically, data transmission within a conventional IC chip is achieved using a crossover network. Please refer to Figure 2, which illustrates a conventional crossover network. The crossover network includes: an arbitration unit 260, multiple transmitters Tx1, Tx2, Tx3, Tx4, Tx5, Tx6, and multiple receivers Rx1, Rx2, Rx3, Rx4, Rx5, Rx6. Similar to Figure 1, transmitter Tx1 and receiver Rx1 may be included in a first circuit (not shown), transmitter Tx2 and receiver Rx2 may be included in a second circuit (not shown), and so on. Furthermore, Figure 2 uses six transmitters Tx1, Tx2, Tx3, Tx4, Tx5, Tx6 and six receivers Rx1, Rx2, Rx3, Rx4, Rx5, Rx6 as an example for explanation. Of course, there is no limit to the number of transmitters and receivers; those skilled in the art can design any number of transmitters and receivers in a crossover network.
[0012] The arbitration unit 260 includes: an arbitrator 250 and multiplexers 251, 252, 253, 254, 255, and 256. Multiple inputs of multiplexer 251 are connected to transmitters Tx1, Tx2, Tx3, Tx4, Tx5, and Tx6; the output of multiplexer 251 is connected to receiver Rx1; and the selection terminal of multiplexer 251 receives a selection signal S. Multiple inputs of multiplexer 252 are connected to transmitters Tx1, Tx2, Tx3, Tx4, Tx5, and Tx6; the output of multiplexer 252 is connected to receiver Rx2; and the selection terminal of multiplexer 252 receives a selection signal S. And so on. Multiple inputs of multiplexer 256 are connected to transmitters Tx1, Tx2, Tx3, Tx4, Tx5, and Tx6. The output of multiplexer 256 is connected to receiver Rx6. The selection terminal of multiplexer 256 receives selection signal S.
[0013] For example, the selection signal S includes multiple sub-selection signals used to control the corresponding multiplexers 251, 252, 253, 254, 255, and 256. That is, the arbitrator 250 issues the selection signal S to control the multiplexers 251, 252, 253, 254, 255, and 256 to establish multiple data paths between transmitters Tx1, Tx2, Tx3, Tx4, Tx5, and Tx6 and receivers Rx1, Rx2, Rx3, Rx4, Rx5, and Rx6. Of course, the arbitrator 250 also uses communication signals (not shown) to exchange connection information with all transmitters Tx1, Tx2, Tx3, Tx4, Tx5, and Tx6 and receivers Rx1, Rx2, Rx3, Rx4, Rx5, and Rx6 to determine the data paths.
[0014] As can be seen from the above explanation, a conventional cross-connect network requires an arbitration unit 260 to configure all data paths. Furthermore, if a new data path needs to be established, the arbitrator 250 needs to coordinate and allocate it again.
[0015] In addition, in a crossover network, the more transmitters Tx1, Tx2, Tx3, Tx4, Tx5, Tx6 and receivers Rx1, Rx2, Rx3, Rx4, Rx5, Rx6 there are, the more communication lines there are, which will make the internal wiring design of the IC chip more complex.
[0016] Of course, transmitters Tx1, Tx2, Tx3, Tx4, Tx5, Tx6 and receivers Rx1, Rx2, Rx3, Rx4, Rx5, Rx6 can also share a communication line to transmit communication signals. In this case, arbitrator 250 needs to use polling to sequentially exchange link information with transmitters Tx1, Tx2, Tx3, Tx4, Tx5, Tx6 and receivers Rx1, Rx2, Rx3, Rx4, Rx5, Rx6. Obviously, the time required for arbitrator 250 to use polling to exchange link information with transmitters Tx1, Tx2, Tx3, Tx4, Tx5, Tx6 and receivers Rx1, Rx2, Rx3, Rx4, Rx5, Rx6 will reduce the operating performance of the cross-connect network. [Summary of the Invention]
[0017] This invention relates to a crossover network, comprising: a first circuit including a first transmitter and a first receiver; a second circuit including a second transmitter and a second receiver; a first bus connected to the first transmitter of the first circuit; a second bus connected to the second transmitter of the second circuit; a first multiplexer connected to the second bus; wherein the first receiver of the first circuit is coupled to the second bus via the first multiplexer; a second multiplexer connected to the first bus; wherein the second receiver of the second circuit is coupled to the first bus via the second multiplexer; a first connection detection element coupled to the second bus; wherein, when the second circuit issues a connection request to the first circuit, the first connection detection element detects the connection request via the second bus and notifies the first circuit; and A second connection detection element is coupled to the first bus; wherein, when the first circuit sends the connection request to the second circuit, the second connection detection element detects the connection request by the first bus and notifies the second circuit.
[0018] To provide a better understanding of the above and other aspects of the present invention, preferred embodiments are described below in detail with reference to the accompanying drawings:
Implementation Method
[0019] This invention proposes a decentralized arbitration crossbar network. In this crossbar network, no arbitration unit is designed to configure the data path. Instead, the data path is established after a three-way handshake between two circuits. That is, a link can be established after a three-way handshake between two circuits.
[0020] Please refer to Figure 3A, which illustrates the crossover network of the present invention. The crossover network is designed within an IC chip. The crossover network includes a first circuit 310, a second circuit 320, a third circuit 330, and a fourth circuit 340. Essentially, each circuit 310, 320, 330, and 340 corresponds to a unique address. That is, the addresses of each circuit 310, 320, 330, and 340 are all different.
[0021] The first circuit 310 includes: a link allocation device 314, a transmitter Tx1, and a receiver Rx1. The second circuit 320 includes: a link allocation device 324, a transmitter Tx2, and a receiver Rx2. The third circuit 330 includes: a link allocation device 334, a transmitter Tx3, and a receiver Rx3. The fourth circuit 340 includes: a link allocation device 344, a transmitter Tx4, and a receiver Rx4.
[0022] Furthermore, the first circuit 310 further includes: a multiplexing device 312 and a link detecting device 316. The second circuit 320 further includes: a multiplexing device 322 and a link detecting device 326. The third circuit 330 further includes: a multiplexing device 332 and a link detecting device 336. The fourth circuit 340 further includes: a multiplexing device 342 and a link detecting device 346. The multiplexing devices 312, 322, 332, and 342, and the link detecting devices 316, 326, 336, and 346 can also be designed outside of circuits 310, 320, 330, and 340.
[0023] For example, each circuit 310, 320, 330, and 340 can be one of a control unit, storage unit, processing unit, graphics processing unit, etc. The crossover network in Figure 3 is illustrated using only four circuits 310, 320, 330, and 340 as an example. Of course, those skilled in the art can use any number of circuits to form a crossover network. That is, the number of circuits in the crossover network must be greater than or equal to two.
[0024] Furthermore, the transmitter of each circuit is connected to the corresponding bus, and the signal emitted by each circuit is transmitted using the corresponding bus. As shown in Figure 3A, the transmitter Tx1 of the first circuit 310 is connected to the first bus 1. The transmitter Tx2 of the second circuit 320 is connected to the second bus 2. The transmitter Tx3 of the third circuit 330 is connected to the third bus 3. The transmitter Tx4 of the fourth circuit 340 is connected to the fourth bus 4.
[0025] In the first circuit 310, the signals of transmitter Tx1 include data signal D1, address signal A1, clock signal CK1, and command signal CMD1, which are transmitted via the first bus Bus 1. In the second circuit 320, the signals of transmitter Tx2 include data signal D2, address signal A2, clock signal CK2, and command signal CMD2, which are transmitted via the second bus Bus 2. In the third circuit 330, the signals of transmitter Tx3 include data signal D3, address signal A3, clock signal CK3, and command signal CMD3, which are transmitted via the third bus Bus 3. In the fourth circuit 340, the signals of transmitter Tx4 include data signal D4, address signal A4, clock signal CK4, and command signal CMD4, which are transmitted via the fourth bus Bus 4.
[0026] In addition, the receiver of each circuit is coupled to all non-corresponding buses via a multiplexing element, so that the receiver can control the multiplexing element and be coupled to one of the non-corresponding buses. The receiver Rx1 of the first circuit 310 is coupled to the second bus 2, the third bus 3, and the fourth bus 4 via multiplexing element 312. The receiver Rx2 of the second circuit 320 is coupled to the first bus 1, the third bus 3, and the fourth bus 4 via multiplexing element 322. The receiver Rx3 of the third circuit 330 is coupled to the first bus 1, the second bus 2, and the fourth bus 4 via multiplexing element 332. The receiver Rx4 of the fourth circuit 340 is coupled to the first bus 1, the second bus 2 and the third bus 3 via the multiplexer 342. Of course, the multiplexers 312, 322, 332 and 342 can also be integrated into the corresponding receivers Rx1, Rx2, Rx3 and Rx4.
[0027] Taking the first circuit 310 as an example, the multiplexing element 312 includes four multiplexers. Each of the four multiplexers selects four signals on a specific bus to the receiver Rx1 according to the selection signal S1. That is, the receiver Rx1 uses the selection signal S1 to control the multiplexing element 312 to selectively couple to one of the second bus Bus 2, the third bus Bus 3, and the fourth bus Bus 4. When the first circuit 310 decides to couple to the second bus Bus 2 of the second circuit 320, the receiver Rx1 of the first circuit 310 uses the selection signal S1 to control the four multiplexers in the multiplexing element 312, so that the receiver Rx1 receives the data signal D2, the address signal A2, the clock signal CK2, and the command signal CMD2 transmitted by the second bus Bus 2. These signals are output by the transmitter Tx2 of the second circuit 320. Similarly, when the first circuit 310 decides to couple to the fourth bus 4 of the fourth circuit 340, the receiver Rx1 of the first circuit 310 uses the selection signal S1 to control the four multiplexers in the multiplexing element 312, so that the receiver Rx1 receives the data signal D4, address signal A4, clock signal CK4, and command signal CMD4 transmitted by the fourth bus 4, and these signals are output by the transmitter Tx4 of the fourth circuit 340. Of course, the control methods of the receivers Rx2, Rx3, and Rx4 in the other circuits 320, 330, and 340 are similar to those of the first circuit 310, and will not be described in detail here.
[0028] In addition, the connection detection element of each circuit is connected to all non-corresponding buses to detect whether other circuits initiate link requests and notify the connection configuration element. The connection detection element 316 of the first circuit 310 is connected to the second bus 2, the third bus 3, and the fourth bus 4. The connection detection element 326 of the second circuit 320 is connected to the first bus 1, the third bus 3, and the fourth bus 4. The connection detection element 336 of the third circuit 330 is connected to the first bus 1, the second bus 2, and the fourth bus 4. The connection detection element 346 of the fourth circuit 340 is connected to the first bus 1, the second bus 2, and the third bus 3.
[0029] For example, the link detection element 316 of the first circuit 310 is connected to the second bus 2, the third bus 3, and the fourth bus 4 to detect whether the second circuit 320, the third circuit 330, or the fourth circuit 340 initiates a link request. For example, the link detector (Ld 2) of the link detection element 316 is connected to the second bus 2, the link detector (Ld 3) of the link detection element 316 is connected to the third bus 3, and the link detector (Ld 4) of the link detection element 316 is connected to the fourth bus 4.
[0030] When the second circuit 320 initiates a link request to the first circuit 310, the connection detector Ld 2 of the first circuit 310 confirms the link request based on the address signal A 2, clock signal CK 2, and command signal CMD 2 on the second bus 2, and then the connection detection element 316 notifies the connection configuration element 314 of the first circuit 310. Similarly, when the fourth circuit 340 initiates a link request to the first circuit 310, the connection detector Ld 4 of the first circuit 310 confirms the link request based on the address signal A 4, clock signal CK 4, and command signal CMD 4 on the fourth bus 4, and then the connection detection element 316 notifies the connection configuration element 314 of the first circuit 310. Of course, the connection detection elements 326, 336, and 346 of other circuits 320, 330, and 340 can also detect connection requests, and their operation is similar to that of the first circuit 310, which will not be described in detail here.
[0031] According to an embodiment of the present invention, the link configuration element 314 in the first circuit 310 can be configured with a link priority to determine the order in which the first circuit 310 establishes connections with other circuits 320, 330, and 340. For example, since the link detection element 316 of the first circuit 310 is connected to the second bus 2, the third bus 3, and the fourth bus 4, the three link detectors Ld2, Ld3, and Ld4 in the link detection element 316 may simultaneously receive link requests from the other three circuits 320, 330, and 340. Based on the link priority setting, the link configuration element 314 can determine the order in which the first circuit 310 establishes connections with other circuits 320, 330, and 340. Basically, each link configuration element 314, 324, 334, and 344 has a set link priority. The link configuration elements 314, 324, 334, and 344 in each circuit 310, 320, 330, and 340 can be modified appropriately according to the actual operating conditions.
[0032] Furthermore, the connection detection elements 316, 326, 336, and 346 described above can be integrated into the corresponding connection configuration elements 314, 324, 334, and 344. Similarly, the connection detection elements 316, 326, 336, and 346 and the connection configuration elements 314, 324, 334, and 344 can also be integrated into the corresponding receivers Rx1, Rx2, Rx3, and Rx4. Of course, the design of the connection configuration elements 314, 324, 334, and 344 can also be omitted in the circuits 310, 320, 330, and 340 of the present invention. In this case, the connection sequence between the circuits can be performed according to a preset sequence.
[0033] According to an embodiment of the present invention, the connection detection element 316 of the first circuit 310 uses an address signal, a clock signal, and a command signal to detect whether other circuits initiate a connection request. Of course, those skilled in the art can make appropriate modifications. For example, the connection detection element 316 may also use only the address signal and the command signal to detect whether other circuits initiate a connection request.
[0034] Please refer to Figure 3B, which illustrates the operation flow of the initiator in the cross-network of the present invention. Please refer to Figure 3C, which illustrates the operation flow of the target in the cross-network of the present invention. The initiator can be any circuit 310, 320, 330, or 340 in the cross-network. The target can be any circuit 310, 320, 330, or 340 in the cross-network. Furthermore, the initiator does not send connection requests to itself. In the following description, the second circuit 320 will be used as the initiator and the first circuit 310 as the target as an example.
[0035] As shown in Figure 3B, when the second circuit 320 wants to establish a connection with the first circuit 310, the second circuit 320 issues a link request (step S351), and the second circuit 320 transmits this link request through the second bus 2.
[0036] When a connection request is issued, the transmitter Tx2 of the second circuit 320 controls the clock signal CK2 on the second bus 2 to operate, the address signal A2 transmits the address of the first circuit 310, and the command signal CMD2 transmits the synchronization message (SYC). Afterwards, the receiver Rx2 of the second circuit 320 can use the control signal S2 to control the multiplexer 322, so that the receiver Rx2 is coupled to the first bus 1.
[0037] As shown in Figure 3B, the second circuit 320 then determines whether it has received a link acceptance from the first circuit 310 (step S352), and the first circuit 310 transmits this link acceptance via the first bus 1. Before the timeout (step S353), the second circuit 320 continues to wait for the link acceptance from the first circuit 310. After a certain period of time, if no link acceptance is received, that is, after the timeout (step S353), the second circuit 320 confirms the link failure (step S354).
[0038] After a connection failure, the second circuit 320 can continue to send a connection request to the first circuit 310 again. For example, the second circuit 320 first adjusts the connection priority in the connection configuration element 324, increases the connection priority of the first circuit 310, and then sends a connection request again. Of course, there is an upper limit to the number of times the second circuit 320 sends a connection request. When the second circuit 320 fails to send a connection request after reaching the upper limit, it reports that the connection request has failed and will not send another connection request.
[0039] Additionally, during the connection acceptance waiting process, the receiver Rx2 of the second circuit 320 or the connection detector Ld1 of the connection detection element 326 receives the clock signal CK1, the address signal A1, and the command signal CMD1 on the first bus Bus 1. Based on the clock signal CK1, the connection detector Ld1 decodes the address signal A1 and the command signal CMD1. Upon confirming that the address signal A1 transmits the address of the second circuit 320 and the command signal CMD1 transmits the synchronous acceptance message (SYC ACPT), the second circuit 320 confirms that the first circuit 310 has issued a connection acceptance.
[0040] As shown in Figure 3B, after receiving the link acceptance (step S352), the second circuit 320 sends a link acknowledgement (step S355), and the second bus 2 transmits this link acknowledgement to the first circuit 310.
[0041] When a connection confirmation is sent, the transmitter Tx2 of the second circuit 320 controls the clock signal CK2 on the second bus 2 to operate, the address signal A2 transmits the address of the first circuit 310, and the command signal CMD2 transmits the synchronous acknowledge message (SYC ACK). Therefore, the first circuit 310 can receive the connection confirmation sent by the second circuit 320.
[0042] As shown in Figure 3B, after the connection confirmation is issued, it means that a connection has been established between the second circuit 320 and the first circuit 310 (step S356). At this time, the second circuit 320 can start transmitting data and instructions to the first circuit 310 using the second bus 2.
[0043] When establishing a connection, the receiver Rx1 of the first circuit 310 uses the selection signal S1 to control all the multiplexers in the multiplexing element 312, transmitting the data signal D2, address signal A2, clock signal CK2, and command signal CMD2 from the second bus 2 to the receiver Rx1. Therefore, the data and commands of the second circuit 320 can be output from the transmitter Tx2 and transmitted to the receiver Rx1 of the first circuit 310 via the second bus 2. Of course, if the connection needs to be terminated, the second circuit 320 only needs to send a link termination signal to the first circuit 310 to terminate the connection.
[0044] As shown in Figure 3C, the first circuit 310 can receive link requests from other circuits 320, 330, and 340 at any time (step S361). For example, in the first circuit 310, the link detector Ld 2 of the link detection element 316 receives the clock signal CK 2, the address signal A 2, and the command signal CMD 2 on the second bus 2. Based on the clock signal CK 2, the link detector Ld 2 decodes the address signal A 2 and the command signal CMD 2. When it is confirmed that the address signal A 2 transmits the address of the first circuit 310 and the command signal CMD 2 transmits the synchronization information SYC, the first circuit 310 confirms that the second circuit 320 has issued a link request. Similarly, the link detector Ld 3 of the first circuit 310 can also determine whether the third circuit 330 has issued a link request via the third bus 3. Similarly, the connection detector Ld 4 of the first circuit 310 can also determine whether the fourth circuit 340 has issued a connection request via the fourth bus 4.
[0045] In addition, although the connection detection element 336 of the third circuit 330 and the connection detection element 346 of the fourth circuit 340 are also connected to the second bus 2, since the address signal A2 transmits the address of the first circuit 310, the connection detection element 336 of the third circuit 330 and the connection detection element 346 of the fourth circuit 340 will ignore this connection request.
[0046] As shown in Figure 3C, when the first circuit 310 is in a busy state (step S362) for more than a certain time, that is, when the timeout occurs (step S363), the first circuit 310 cannot send a link acceptance, indicating that the connection has failed (step S364). At this time, the first circuit 310 can adjust the connection priority in the connection configuration element 314 to increase the connection priority of the second circuit 320.
[0047] In addition, when the first circuit 310 is not in a busy state (step S362), the first circuit 310 issues a link acceptance (step S365), and the first circuit 310 transmits this link acceptance via the first bus 1.
[0048] Upon connection acceptance, the transmitter Tx1 of the first circuit 310 controls the clock signal CK1 on the first bus 1 to activate, the address signal A1 transmits the address of the second circuit 320, and the command signal CMD1 transmits the synchronous acceptance message (SYC ACPT). Afterwards, the receiver Rx1 of the first circuit 310 can use the control signal S1 to control the multiplexer 312, thereby connecting the receiver Rx1 to the second bus 2.
[0049] As shown in Figure 3C, the first circuit 310 then waits for link acknowledgement (step S366). While waiting for link acknowledgement, the receiver Rx1 of the first circuit 310 or the link detector Ld2 of the link detection element 316 receives the clock signal CK2, the address signal A2, and the command signal CMD2 on the second bus 2. Based on the clock signal CK2, the link detector Ld2 decodes the address signal A2 and the command signal CMD2. When it is confirmed that the address signal A2 transmits the address of the first circuit 310 and the command signal CMD2 transmits the synchronous acknowledge message (SYC ACK), the first circuit 310 confirms that the second circuit 320 has issued a link acknowledgement.
[0050] As shown in Figure 3C, after receiving the connection confirmation, it means that a connection has been established between the second circuit 320 and the first circuit 310 (step S367). At this time, the first circuit 310 can start transmitting data and instructions to the second circuit 320 using the first bus 1.
[0051] During connection establishment, the receiver Rx2 of the second circuit 320 uses the selection signal S2 to control all multiplexers in the multiplexing element 322, transmitting the data signal D1, address signal A1, clock signal CK1, and command signal CMD1 from the first bus 1 to the receiver Rx2. Therefore, the data and commands from the first circuit 310 can be output from the transmitter Tx1 and transmitted to the receiver Rx2 of the second circuit 320 via the first bus 1. Of course, to terminate the connection, the first circuit 310 only needs to send a link termination signal to the second circuit 320.
[0052] As explained in Figures 3B and 3C, a three-way handshake is required to establish a connection between two circuits. Taking the second circuit 320 as the initiator and the first circuit 310 as the target as an example, the second circuit 320 transmits a link request to the first circuit 310 via the second bus 2. Then, the first circuit 310 transmits a link acceptance to the second circuit 320 via the first bus 1. Finally, the second circuit 320 transmits a link acknowledgement to the first circuit 310 via the second bus 2, establishing a connection between the second circuit 320 and the first circuit 310. Therefore, the data and instructions from the second circuit 320 can be output by the transmitter Tx2 and transmitted to the receiver Rx1 of the first circuit 310 via the second bus 2. The data and instructions from the first circuit 310 can be output by the transmitter Tx1 and transmitted to the receiver Rx2 of the second circuit 320 via the first bus 1.
[0053] Next, the detailed circuit diagram will be described. Please refer to Figure 4, which shows a schematic diagram of the crossover network of the present invention. Basically, Figure 4 is a simplified version of Figure 3A, and the two crossover network architectures are similar. In Figure 4, the crossover network further includes phase conversion devices 421, 422, 423, and 424. Of course, phase conversion devices 421, 422, 423, and 424 can also be integrated into the corresponding receivers Rx1, Rx2, Rx3, and Rx4.
[0054] The crossover network includes four circuits (not shown). Similarly, the first circuit includes: transmitter Tx1 and receiver Rx1. The second circuit includes: transmitter Tx2 and receiver Rx2. The third circuit includes: transmitter Tx3 and receiver Rx3. The fourth circuit includes: transmitter Tx4 and receiver Rx4. For example, the connection detection element and connection configuration element of each circuit in Figure 4 are integrated into the corresponding receivers Rx1, Rx2, Rx3, and Rx4.
[0055] The transmitter of each circuit is connected to the corresponding bus. As shown in Figure 4, transmitter Tx1 is connected to the first bus 1, transmitter Tx2 is connected to the second bus 2, transmitter Tx3 is connected to the third bus 3, and transmitter Tx4 is connected to the fourth bus 4.
[0056] In addition, the receiver of each circuit is coupled to all non-corresponding buses via multiplexing and phase-shifting elements, allowing the receiver to be selectively coupled to one of the non-corresponding buses. As shown in Figure 4, using the selection signal S1 to control multiplexing element 312, receiver Rx1 can be connected to the second bus 2, the third bus 3, or the fourth bus 4. Using the selection signal S2 to control multiplexing element 322, receiver Rx2 can be connected to the first bus 1, the third bus 3, or the fourth bus 4. Using the selection signal S3 to control multiplexing element 332, receiver Rx3 can be connected to the first bus 1, the second bus 2, or the fourth bus 4. Using the selection signal S4 to control the multiplexing element 342, the receiver Rx4 can be determined to connect to the first bus 1, the second bus 2, or the third bus 3.
[0057] Additionally, connection detection elements 316, 326, 336, and 346 are connected to non-corresponding buses to detect whether other circuits initiate link requests. Furthermore, connection detection elements 316, 326, 336, and 346 are coupled to corresponding connection configuration elements 314, 324, 334, and 344 via phase conversion elements 421, 422, 423, and 424.
[0058] Taking the receiver Rx4 of the fourth circuit as an example, the receiver Rx4 is coupled to all non-corresponding buses Bus 1, Bus 2, and Bus 3 via phase conversion element 424 and multiplexing element 342. Additionally, the connection configuration element 344 is also coupled to all non-corresponding buses Bus 1, Bus 2, and Bus 3 via phase conversion element 424 and connection detection element 346. Furthermore, the connection detection element 346 can receive the address signal A1, clock signal CK1, and command signal CMD1 on the first bus Bus 1, the address signal A2, clock signal CK2, and command signal CMD2 on the second bus Bus 2, and the address signal A3, clock signal CK3, and command signal CMD3 on the third bus Bus 3.
[0059] According to an embodiment of the present invention, when the receiver Rx4 is coupled to the first bus 1, the phase conversion element 424 can ensure that the receiver Rx4 receives the correct data signal D1, address signal A1, clock signal CK1, and command signal CMD1. That is, the phase conversion element 424 needs to remove noise on the first bus 1 and adjust the phase of the data signal D1, address signal A1, and command signal CMD1 according to the clock signal CK4. Then, it is passed to the receiver Rx4 to ensure that the receiver Rx4 receives the correct data signal D1, address signal A1, and command signal CMD1.
[0060] Similarly, the link configuration element 344 can also be coupled to the first bus 1 via the phase conversion element 424 and the link detection element 346 to ensure that the correct address signal A1, clock signal CK1 and command signal CMD1 are received. In this way, the link configuration element 344 can correctly detect the link request.
[0061] Taking phase conversion element 424 as an example, phase conversion element 424 includes: an integrated clock gating device (ICG element) 454 and two phase alignment devices (PA elements) 464 and 466. The integrated clock gating device (ICG element) 454 and the phase alignment device (PA element) 464 are coupled between multiplexing element 342 and Rx4, and the phase alignment device (PA element) 466 is coupled between connection detection element 346 and connection configuration element 344. For example, before receiver Rx4 is coupled to the first bus 1, the integrated clock gating device (ICG element) 454 is disabled to temporarily isolate the clock signal CK1, preventing noise from being generated during bus switching. Then, receiver RX4 controls multiplexing element 342 to switch to the first bus 1. Next, the integrated clock gate element (ICG element) 454 is enabled, allowing the clock signal CK1 to pass through the integrated clock gate element (ICG element) 454. Then, the phase alignment element (PA element) 464 is used to align the pulse signal CK1, data signal D1, address signal A1, and command signal CMD1 of the first bus 1 to CK4. Therefore, the receiver Rx4 can correctly receive all signals on the first bus 1. Similarly, the phase alignment element (PA element) 466 operates in the same way, and will not be described further here.
[0062] Alternatively, the phase alignment elements (PA elements) 464 and 466 can also be replaced by clock domain crossing devices (CDC elements). The function of the clock domain crossing device (CDC element) is similar to that of the phase alignment element (PA element) 464, which can align all signals on the first bus 1 with the clock signal CK 4.
[0063] Of course, to save power loss, the crossover network bus can be designed to be divided into multiple parts. Depending on the location of the initiator and the target, the transmitter of the circuit only sends the signal to a portion of the bus. Please refer to Figure 5, which illustrates another embodiment of the crossover network of the present invention. Compared to the crossover network in Figure 4, the crossover network in Figure 5 divides the four buses into two parts.
[0064] As shown in Figure 5, transmitter Tx1 is connected to the left side of the first bus (Bus 1_L) and the right side of the first bus (Bus 1_R); transmitter Tx2 is connected to the left side of the second bus (Bus 2_L) and the right side of the second bus (Bus 2_R); transmitter Tx3 is connected to the left side of the third bus (Bus 3_L) and the right side of the third bus (Bus 3_R); and transmitter Tx4 is connected to the left side of the fourth bus (Bus 4_L) and the right side of the fourth bus (Bus 4_R). Depending on the positions of the initiator and the target, transmitters Tx1, Tx2, Tx3, and Tx4 utilize a portion of buses 1, 2, 3, and 4 to transmit signals.
[0065] For example, the first circuit initiates a link request to the fourth circuit. At this time, a three-way handshake is required between the first and fourth circuits before a connection can be established. First, the transmitter Tx1 of the first circuit uses the right-hand side of the first bus, Bus 1_R, to transmit the link request to the receiver Rx4 of the fourth circuit. Next, the transmitter Tx4 of the fourth circuit uses the left-hand side of the fourth bus, Bus 4_L, to transmit the link acceptance to the receiver Rx1 of the first circuit. Finally, the transmitter Tx1 of the first circuit uses the right-hand side of the first bus, Bus 1_R, to transmit the link acknowledgment to the receiver Rx4 of the fourth circuit. Therefore, a connection is established between the first and fourth circuits.
[0066] Of course, after the connection between the first circuit and the fourth circuit is established, the transmitter Tx1 of the first circuit uses the right side of the first bus Bus 1_R to transmit data and instructions to the receiver Rx4 of the fourth circuit, and the transmitter Tx4 of the fourth circuit uses the left side of the fourth bus Bus 4_L to transmit data and instructions to the receiver Rx1 of the first circuit.
[0067] Because no signals are transmitted in the three-way handshake process described above, and in the data and command transmission process after the connection is established, the left side of the first bus (Bus 1_L) and the right side of the fourth bus (Bus 4_R) do not transmit signals, thus saving power loss in the crossover network.
[0068] In the above description, each bus (Bus 1, Bus 2, Bus 3, Bus 4) is described as transmitting four signals. Of course, each bus (Bus 1, Bus 2, Bus 3, Bus 4) can also transmit more or fewer signals according to actual needs. Taking the first bus (Bus 1) of the present invention as an example, the address of the data signal D 1 and the address of the command signal CMD 1 are both transmitted using the address signal A 1. In other embodiments, two address signals can also be designed in the first bus (Bus 1), one of which transmits the data address and the other transmits the command address. Of course, the first bus (Bus 1) can also be designed to combine the data signal D 1, the address signal A 1 and the command signal CMD 1 into a general signal, so that the first bus (Bus 1) only has the clock signal CK 1 and the general signal.
[0069] Furthermore, the weights of the connection priority in the connection configuration elements 314, 324, 334, and 344 of circuits 310, 320, 330, and 340 can be set according to the actual situation. For example, when a connection confirmation, connection acceptance, or connection request is received, different weights of connection priority are set. For instance, the connection confirmation has the highest priority, the connection acceptance has the next highest priority, and the connection request has the lowest priority. Moreover, the circuits 310, 320, 330, and 340 can also adjust the weights of the connection priority accordingly based on the number of connection failures. In addition, when the second circuit 320 receives a connection interruption from the first circuit 310, the weight of the connection priority to the first circuit 310 can be reduced.
[0070] In summary, although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Those skilled in the art can make various modifications and refinements without departing from the spirit and scope of the present invention. Therefore, the scope of protection of the present invention shall be determined by the appended claims. [Simplified Explanation of the Diagram]
[0071] Figure 1A is a schematic diagram of a conventional IC chip; Figure 1B is an example of the operation of a conventional IC chip; Figure 2 is a schematic diagram of a conventional cross-network; Figure 3A is a schematic diagram of the cross-network of the present invention; Figure 3B is the operation flow of the initiator in the cross-network of the present invention; Figure 3C is the operation flow of the target in the cross-network of the present invention; Figure 4 is a schematic diagram of the cross-network of the present invention; and Figure 5 is another embodiment of the cross-network of the present invention.
Claims
1. A cross-connect network, comprising: A first circuit includes a first transmitter and a first receiver; a second circuit includes a second transmitter and a second receiver; a first bus is connected to the first transmitter of the first circuit; a second bus is connected to the second transmitter of the second circuit; a first multiplexer is connected to the second bus; wherein the first receiver of the first circuit is coupled to the second bus via the first multiplexer; a second multiplexer is connected to the first bus; wherein the second receiver of the second circuit is coupled to the first bus via the second multiplexer. A first connection detection element is coupled to the second bus; wherein, when the second circuit issues a connection request to the first circuit, the first connection detection element detects the connection request via the second bus and notifies the first circuit; and a second connection detection element is coupled to the first bus; wherein, when the first circuit issues the connection request to the second circuit, the second connection detection element detects the connection request via the first bus and notifies the second circuit.
2. The cross-connect network as described in claim 1, further comprising: A third circuit includes a third transmitter and a third receiver; a third bus connected to the third transmitter of the third circuit; a third multiplexer connected to the first bus and the second bus; wherein the third receiver of the third circuit is coupled to the first bus and the second bus via the third multiplexer; a third connection detection element coupled to the first bus and the second bus; wherein when the first circuit issues a connection request to the third circuit, the third connection detection element detects the connection request via the first bus and notifies the third circuit; and when the second circuit issues a connection request to the third circuit, the third connection detection element detects the connection request via the second bus and notifies the third circuit.
3. The crossover network as claimed in claim 2, wherein the first receiver of the first circuit is coupled to the third bus via the first multiplexing element; the second receiver of the second circuit is coupled to the third bus via the second multiplexing element; the first connection detection element is coupled to the third bus, wherein when the third circuit issues the connection request to the first circuit, the first connection detection element detects the connection request by the third bus and notifies the first circuit; and the second connection detection element is coupled to the third bus, wherein when the third circuit issues the connection request to the second circuit, the second connection detection element detects the connection request by the third bus and notifies the second circuit.
4. The crossover network as claimed in claim 1, wherein the first circuit further includes a first connection configuration element, wherein when the first connection detection element detects the connection request by the second bus, the first connection configuration element determines whether to establish a connection with the second circuit according to a first connection priority.
5. The crossover network as claimed in claim 4, wherein the second circuit further includes a second connection configuration element, wherein when the second connection detection element detects the connection request by the first bus, the second connection configuration element determines whether to establish the connection with the first circuit according to a second connection priority.
6. The crossover network as claimed in claim 1, wherein when the first connection detection element detects the connection request by the second bus, the first transmitter of the first circuit selectively sends a connection to the first bus.
7. The crossover network as described in claim 6, wherein if, after a certain period of time, the second circuit is unable to detect the connection acceptance by the first bus, the second circuit confirms a connection failure.
8. The crossover network as claimed in claim 6, wherein when the second circuit detects the connection acceptance by the first bus, the second transmitter of the second circuit sends a connection acknowledgment to the second bus and establishes a connection with the first circuit.
9. The crossover network as claimed in claim 8, wherein the second connection detection element of the second circuit detects the connection acceptance by the first bus.
10. The crossover network as claimed in claim 8, wherein the second receiver of the second circuit controls the second multiplexing element to be coupled to the first bus, and the second receiver of the second circuit detects the connection acceptance by the first bus.
11. The crossover network as claimed in claim 8, wherein the first connection detection element of the first circuit detects the connection confirmation by the second bus.
12. The crossover network as claimed in claim 8, wherein the first receiver of the first circuit controls the first multiplexing element to be coupled to the second bus, and the first receiver of the first circuit detects the connection confirmation by the second bus.
13. The crossover network as claimed in claim 8, wherein when the second circuit establishes the connection with the first circuit, the first receiver of the first circuit controls the first multiplexer to be coupled to the second bus, and the second receiver of the second circuit controls the second multiplexer to be coupled to the first bus; the first transmitter of the first circuit transmits a first data signal, a first address signal, a first clock signal and a first command signal to the second receiver of the second circuit via the first bus; and the second transmitter of the second circuit transmits a second data signal, a second address signal, a second clock signal and a second command signal to the first receiver of the first circuit via the second bus.
14. The crossover network as claimed in claim 13, wherein when the second circuit issues the connection request to the first circuit, the second address signal includes a first address of the first circuit, and the second command signal includes synchronization information.
15. The crossover network as claimed in claim 13, wherein when the first transmitter of the first circuit sends the connection to the first bus, the first address signal includes a second address of the second circuit, and the first command signal includes a synchronization reception information.
16. The crossover network as claimed in claim 13, wherein when the second transmitter of the second circuit sends the connection acknowledgment to the second bus, the second address signal includes a first address of the first circuit, and the second command signal includes a synchronization acknowledgment message.
17. The crossover network as claimed in claim 13, wherein when the first circuit sends a connection interruption to the second circuit via the first bus, the connection between the first circuit and the second circuit is terminated; or, when the second circuit sends the connection interruption to the first circuit via the second bus, the connection between the first circuit and the second circuit is terminated.
18. The crossover network as claimed in claim 13, wherein the first connection detection element is coupled to the second bus via a phase conversion element for receiving the connection request.
19. The crossover network as claimed in claim 13, wherein the first receiver is coupled to the second bus via the first multiplexing element and a phase shifting element, the phase shifting element adjusting the second data signal, the second address signal and the second command signal according to the first clock signal.
20. The crossover network as claimed in claim 19, wherein the phase conversion element includes an integrated clock gate element and a phase alignment element, the integrated clock gate element being connected to the first multiplexing element, and the phase alignment element being connected between the integrated clock gate element and the first receiver; or, the phase conversion element includes the integrated clock gate element and a cross-clock domain element, the integrated clock gate element being connected to the first multiplexing element, and the cross-clock domain element being connected between the integrated clock gate element and the first receiver.