WO2008035265A2 - Electronic device, and method of controlling a communication between processing units - Google Patents

Electronic device, and method of controlling a communication between processing units Download PDF

Info

Publication number
WO2008035265A2
WO2008035265A2 PCT/IB2007/053729 IB2007053729W WO2008035265A2 WO 2008035265 A2 WO2008035265 A2 WO 2008035265A2 IB 2007053729 W IB2007053729 W IB 2007053729W WO 2008035265 A2 WO2008035265 A2 WO 2008035265A2
Authority
WO
WIPO (PCT)
Prior art keywords
processing units
communication
ipl
flow control
data
Prior art date
Application number
PCT/IB2007/053729
Other languages
French (fr)
Other versions
WO2008035265A3 (en
Inventor
Kees G. W. Goossens
Martijn F. A. Coenen
Original Assignee
Koninklijke Philips Electronics N.V.
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 Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Publication of WO2008035265A2 publication Critical patent/WO2008035265A2/en
Publication of WO2008035265A3 publication Critical patent/WO2008035265A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports

Definitions

  • the present invention relates to an electronic device, e.g. a system on chip, as well as controlling a communication between at least two processing units.
  • IP blocks are usually modules on chip with a specific function like CPUs, memories, digital signal processors or the like.
  • the IP blocks communicate with each other via the network on chip.
  • the network on chip is typically composed of network interfaces and routers.
  • the network interfaces serve to provide an interface between the IP block and the network on chip, i.e. they translate the information from the IP block to information which the network on chip can understand and vice versa.
  • the routers serve to transport data from one network interface to another. For best effort communication, there is no guarantee regarding the throughput or the latency of the communication.
  • Guaranteed services throughput, latency, jitter, etc.
  • resource reservations which infers the concept of end-to-end flow control (described below), channels, and connections, as described by Andrei Radulescu and Kees Goossens, in "Communication services for networks on chip", in Shuvra S. Bhattacharyya, Ed F.
  • a network on chip is described where a master IP block and a slave IP block communicate with each other on the basis of a request-response transaction scheme. Accordingly, a master IP block sends a request to the slave IP block. The slave IP block will respond if required, for example by returning data.
  • the communication between the master and slave IP blocks is performed by a connection between the master and slave IP block. This connection comprises a request and a response channel.
  • Fig. 4 shows a block diagram of part of such a system on chip which comprises a master IP block MIP, a slave IP block SIP, a network on chip NoC, and first and second network interfaces Nil, NI2 having buffers B for coupling the IP blocks MIP, SIP to the network on chip NoC.
  • a credit-based end-to-end flow control is used.
  • counters for the request channel REQ as well as for the response channel RESP, counters (remote buffer space rbss and credit to report ctrc) keep track of the empty buffer space of the destination queue.
  • the counter When data is sent from the source queue, the counter is decremented. When data is consumed by the slave IP block SIP, credits are produced in the network interface to indicate that more empty space is available. These credits are sent to the producer of the data via the dashed lines which indicate the request and response channel REQ, RESP. The credits can be piggy-backed in (the header of) the packets.
  • the IP blocks may be adapted to read and write.
  • Many systems on chip exhibit a more limited streaming behavior where a first IP block only pushes (writes) data to the second IP block, and vice versa.
  • An example of this kind of architecture is described in "A Multi-Core Architecture for In-Car Digital Entertainment” by Arno Moonen et al., GSPX, 2005.
  • two connections are required, each of which only transports write transactions. Note that in each case, there are no responses that require a response channel.
  • the two IP blocks need an incoming connection (a request/response channel pair for receiving the writes) and an outgoing connection (a request/response channel pair for sending writes).
  • an electronic device which comprises first and second processing units for processing data.
  • the electronic device furthermore comprises a network based interconnect coupled to the first and second processing units thru a network interface.
  • the network interface is used for managing the communication of the first and second processing units.
  • the first and second processing units communicate via request and response channels to write data to each other.
  • the request channel of a communication between the first and second processing unit is shared with the response channel of a communication between the second and first processing unit.
  • the response channel of the communication between the first and second processing units is shared with the request channel of the communication between the second and first processing units.
  • the communication between the first and second processing unit is based on connections having flow control.
  • the communication between the processing units is performed in a streaming manner.
  • the response channel from the first connection is used to communicate flow control data for requests of the first connection and flow control data for responses of the second connection that is not required as the second connection is a write-only communication.
  • the response channel from the second connection is used to communicate flow control data for requests of the second connection and flow control data of the responses of the first connection that is not required as the first connection is a write-only connection.
  • the invention furthermore relates to a control of the communication between processing units.
  • First and second processing units are coupled via a network interface to a network based interconnect.
  • the first and second processing units communicate via request and response channels to write data to each other.
  • the request channel of a communication is shared between the first and second processing units with the response channel of a communication between the second and first processing units.
  • the response channel of the communication between the first and second processing units is shared with the request channel of the communication between the second and first processing units.
  • the present invention further relates to the idea that if pairs of IP blocks within a system on chip are only writing and not reading from each other, the response channels are not used to communicate data but only to communicate flow control packets of the requests.
  • the request channel does not transmit response flow control packets, as the corresponding response channel is never used.
  • the present invention relates to the idea that if two IP blocks have two write- only connections (each with a request and a response channel) to each other, the response channels will not be used to communicate response data but only to communicate flow- control data. Also, the request channel only transports data, and does not transport request flow control data. Instead of then using these response channels for sending flow-control data, the response channels may be removed and the flow control originally sent over the response channels may be sent instead over the request channel of the connection going in the other direction. This results in two independent write-only connections being implemented using only two channels instead of four, consequently resulting in less buffer area and a lower latency.
  • the system on chip implemented as a network on a chip may consist in (token) rings, busses with bridges, switches or routers with network interfaces or adapters, may span a single die, multiple dies in the same package (system in a package), multiple dies stacked using bonding or 3D vias or otherwise, or span over multiple chips, including ASICs, ASSPs, FPGAs, etc.
  • Fig. IA shows a block diagram of part of a system on chip
  • Fig. IB shows a representation of data and flow control channels in a system on chip according to Fig. IA;
  • Fig. 1C shows a further representation of data and flow control channels in a system on chip according to Fig. IA;
  • Fig. ID shows a representation of data and flow control channels in a system on chip according to Fig. IA
  • Fig. 2A shows a block diagram of part of a system on chip according to a first embodiment of the invention
  • Fig. 2B shows a representation of data and flow control channels in a system on chip according the first embodiment
  • Fig. 2C shows a further representation of data and flow control channels in a system on chip according the first embodiment
  • Fig. 3 shows a block diagram of a network interface according to a second embodiment of the invention.
  • Fig. 4 shows a block diagram of a system on chip according to the prior art.
  • Fig. IA shows a block diagram of a part of a system on chip.
  • first and second IP blocks IPl, IP2 (or processing units) are each coupled via first and second network interfaces Nil, NI2 having buffers B1-B8 to a network on chip NoC that forms a network based interconnect.
  • IP blocks are usually modules on chip with a specific function like CPUs, memories, digital signal processors or the like.
  • a first and second connection Cl, C2 is present between the IP blocks IPl, IP2, which can both be for example write-only connections or at least write-only connections for a period of time.
  • a first request channel REQl of the first connection Cl for transmitting data is present between the first IP block IPl and the second IP block IP2, and a corresponding response channel RESPl of the first connection Cl is present between the second and first IP block IP2, IPl.
  • This response channel RESPl is used only for communicating flow control data fc resp, since the connection is a write-only connection.
  • a second response channel RESP2 of the second connection C2 is present between the first and second IP blocks IPl, IP2, and a second request channel REQ2 is present between the second and first IP blocks IP2, IPl.
  • the communication between the first and second IP block IPl, IP2 is handled by the network interface Nil, NI2 associated to the IP blocks.
  • the first request REQl will send data to a first buffer Bl in the network interface Nil from where the data is forwarded to a buffer B2 in the network interface NI2.
  • the corresponding response i.e. the flow control data
  • the flow control credits can be added either by piggy-backing them to existing response data packets in the buffer B3, or if no data is available in buffer B3 (as is the case here) the network interface NI creates a new packet itself with only flow control FC data in the header. The header will not be stored in buffer B3.
  • the second IP block IP2 may (independently of IP block IPl) send a request to IP block IPl, the data of which will be passed to the seventh buffer B7 in the network interface NI2 and will then be passed to the eight buffer B8 of the network interface Nil .
  • a response RESP2 from the first IP block IPl will be forwarded to the buffer B5 in the network interface Nil and will then be passed to the buffer B6 in the network interface NI2.
  • Fig. IB shows a representation of data and flow control channels in a system on chip according to Fig. IA.
  • four separate channels namely a data request channel dt req, a flow control request channel fc req, a data response channel dt resp, and a flow control response channel fc resp are required for data as well as for flow control.
  • Fig. 1C shows a representation of further data and flow control channels in a system on chip according to Fig. IA.
  • Fig. IA shows a representation of further data and flow control channels in a system on chip according to Fig. IA.
  • here merely 2 channels are required as one channel is used as data request channel dt req and as flow control response channel fc resp, while the other channel is used as data response channel dt resp and as flow control request channel fc req.
  • Fig. ID shows a representation of further data and flow control channels in a system on chip according to Fig. IA.
  • IP2 a data request channel dt req is shared with a channel fc resp of the flow control of the response from the first to the second IP block IPl, IP2.
  • IP2 data response channel dt resp is shared with a channel of the flow control of the request from the first to the second IP block IPl, IP2.
  • IPl Between the second and first IP block IP2, IPl a data request channel dt req is shared with a channel fc resp of the flow control of the response from the second to the first IP block IPl, IP2. Between the second and first IP block IP2, IPl a data response channel dt resp is shared with a channel fc req of the flow control of the request from the second to the first IP block IP2, IPl.
  • Fig. 2A shows a block diagram of part of a system on chip according to the first embodiment.
  • the system on chip comprises first and second IP blocks IPl, IP2, which are coupled via a first and second network interface Nil, NI2 to a network on chip NoC, respectively.
  • the first and second network interface Nil, NI2 each comprise two buffers Bl, B4 and B2, B3 used to buffer the data and flow control data to and from the IP blocks IPl, IP2.
  • the system on chip according to the first embodiment comprises a first shared channel SCl between the first and second network interface Nil, NI2 and a second shared channel SC2 is present between the second and first network interface NI2, Nil.
  • the request channel of the first connection between Nil and NI2I is shared with the response channel of the second connection
  • Fig. 2B shows a representation of data and flow control channels in a system on chip according the first embodiment.
  • the dashed lines represent unused channels uc, i.e. a) the flow control response channel fc resp from the first to the second IP block IPl, IP2 and b) the flow control response channel fc resp from the second to the first IP block IP2, IPl are not used.
  • the data request channel dt req between the first and second IP block IPl, IP2 is shared with the flow control request channel fc req from the second to the first IP block IP2, IPl.
  • the data request channel dt req between the second and first IP block IP2, IPl is shared with the flow control request channel fc req from the first to the second IP block IPl, IP2.
  • Fig. 2C shows a further representation of data and flow control channels in a system on chip according the first embodiment.
  • the data request channel dt req between the first and second IP block IPl, IP2 is shared with the data response channel dt resp from the second to the first IP block IP2, IPl.
  • the data response channel dt resp between the first and second IP block IPl, IP2 is shared with the data request channel dt req from the second to the first IP block IP2, IPl.
  • the flow control request channel fc req between the first and second IP block IPl, IP2 is shared with the flow control response channel fc resp from the second to the first IP block IP2, IPl.
  • Fig. 3 shows a block diagram of a network interface according to a second embodiment of the invention.
  • a receiving network interface RNI i.e. a network interface according to Fig. 2A.
  • the network interface is shown in more detail.
  • the three examples are shown in one receiving network interface RNI, each one of the three examples may be implemented in the network interface.
  • the flow control data is transmitted in dedicated flow control packets fc in addition to dedicated data packets dt. Therefore, in a receiving network interface RNI the flow control fc and the data packets dt are separated, and the flow control information fc updates a flow control counter fc ctr while the data dt is output.
  • transmitted packets may contain data messages dt msg and/or flow control messages fc msg.
  • the flow control information is extracted from the packets in an extraction unit fc + dt and used to update a flow control counter fc ctr.
  • the flow control information fc is piggy-backed in a packet header pckt hd, and used to update the flow control counter fc ctr.
  • the network interfaces according to the first embodiment merely require two buffers. Furthermore, the size of the slot tables can be decreased, as no slots are required for the flow control data of the response channels.
  • the principles of the first embodiment can also be applied to other electronic devices where two IP blocks communicate via write connections. If e.g. a first IP block has two write connections to a second IP block, while the second IP block has merely one write connection to the first IP block, the flow control on the two response channels to the first IP block can be merged to share the single request channel of the second IP block instead.
  • the merging of two write connections by using a shared channel pair results in the decrease of buffer sizes and the sizes of slot tables within a network interface. Accordingly, the implementation of the network interface will require a smaller area and will thus lead to a reduced cost. Furthermore, the latency can be reduced if the size of the slot tables is also reduced.
  • the network on a chip may consist in (token) rings, busses with bridges, switches or routers with network interfaces or adapters, may span a single die, multiple dies in the same package (system in a package), multiple dies stacked using bonding or 3D vias or otherwise, or span over multiple chips, including ASICs, ASSPs, FPGAs, etc.
  • the flow control of a first data flow is combined with the flow control of the second data flow.
  • the request data flow is combined with the response data flow.
  • the response data flow is combined with the request data flow. This is implemented as a single connection with two channels, i.e. two connections with four channels are combined to one connection with two channels.
  • the principle of the invention may also be applied to multiple unrelated communications or connections.
  • the data transfer and the flow control have been described between two separate IP blocks.
  • the principle of the invention may also be applied for a communication between two different ports of a single IP block.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

The present invention relates to an electronic device that comprises first and second processing units (IP1, IP2) for processing data. The electronic device furthermore comprises a network based interconnect (NoC) coupled to the first and second processing units (IP1, IP2) thru a network interface (Nl1, NI2). The network interface (Nl1, NI2) is used for managing the communication of the first and second processing units (IP1, IP2). The first and second processing units (IP1, IP2) communicate via request and response channels (REQ, RESP) to write data to each other. In accordance with the present invention, the request channel (REQ1) of a communication (C1) between the first and second processing units (IP1, IP2) is shared with the response channel (RESP2) of a communication (C2) between the second and first processing units (IP2, IP1), and vice versa.

Description

Electronic device, and controlling a communication between processing units
FIELD OF THE INVENTION
The present invention relates to an electronic device, e.g. a system on chip, as well as controlling a communication between at least two processing units.
BACKGROUND OF THE INVENTION
Networks on chips (NoC) proved to be scalable interconnect structures in particular for systems on chip, which could become possible solutions for future on chip interconnections between so-called IP blocks, i.e. intellectual property blocks. IP blocks are usually modules on chip with a specific function like CPUs, memories, digital signal processors or the like. The IP blocks communicate with each other via the network on chip. The network on chip is typically composed of network interfaces and routers. The network interfaces serve to provide an interface between the IP block and the network on chip, i.e. they translate the information from the IP block to information which the network on chip can understand and vice versa. The routers serve to transport data from one network interface to another. For best effort communication, there is no guarantee regarding the throughput or the latency of the communication. For guaranteed throughput services, an exact value for the latency and throughput is required. Guaranteed services (throughput, latency, jitter, etc.) require resource reservations, which infers the concept of end-to-end flow control (described below), channels, and connections, as described by Andrei Radulescu and Kees Goossens, in "Communication services for networks on chip", in Shuvra S. Bhattacharyya, Ed F.
Deprettere, and Jurgen Teich, editors, "Domain-Specific Processors: Systems, Architectures, Modeling, and Simulation", pages 193—213. Marcel Dekker, 2004. Best effort communication can benefit from credit-based end-to-end flow control because it deals in the most general way with deadlock issues. For this reason best-effort traffic can also be connection-based.
In "An efficient on-chip NI offering guaranteed services, shared-memory abstraction, and flexible network configuration", by Radulescu et al., IEEE Transactions on computer-aided design of integrated circuits and systems, Vol. 24, No. I, January 2005, a network on chip is described where a master IP block and a slave IP block communicate with each other on the basis of a request-response transaction scheme. Accordingly, a master IP block sends a request to the slave IP block. The slave IP block will respond if required, for example by returning data. The communication between the master and slave IP blocks is performed by a connection between the master and slave IP block. This connection comprises a request and a response channel.
Fig. 4 shows a block diagram of part of such a system on chip which comprises a master IP block MIP, a slave IP block SIP, a network on chip NoC, and first and second network interfaces Nil, NI2 having buffers B for coupling the IP blocks MIP, SIP to the network on chip NoC. By using an end-to-end flow control, the system on chip will not send data unless there is sufficient space in the destination buffer to accommodate this data. According to Fig. 4, a credit-based end-to-end flow control is used. For the request channel REQ as well as for the response channel RESP, counters (remote buffer space rbss and credit to report ctrc) keep track of the empty buffer space of the destination queue. When data is sent from the source queue, the counter is decremented. When data is consumed by the slave IP block SIP, credits are produced in the network interface to indicate that more empty space is available. These credits are sent to the producer of the data via the dashed lines which indicate the request and response channel REQ, RESP. The credits can be piggy-backed in (the header of) the packets.
However, in a system on chip as described above, the IP blocks may be adapted to read and write. Many systems on chip exhibit a more limited streaming behavior where a first IP block only pushes (writes) data to the second IP block, and vice versa. An example of this kind of architecture is described in "A Multi-Core Architecture for In-Car Digital Entertainment" by Arno Moonen et al., GSPX, 2005. Here, two connections are required, each of which only transports write transactions. Note that in each case, there are no responses that require a response channel. According to the standard model, the two IP blocks need an incoming connection (a request/response channel pair for receiving the writes) and an outgoing connection (a request/response channel pair for sending writes). Therefore, for a communication between two IP blocks or between the network interfaces associated to these IP blocks, a total of four channels are required. Furthermore, apart from the four channels, buffer space may have to be allocated for the packets of the flow control. Moreover, communication capacity (e.g. time slots or physical paths) for communicating the end-to-end flow control have also to be allocated which can increase the size of the slot table. SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide an electronic device, e.g. a system on chip, and a control of a communication between processing units with a more efficient flow control. The invention is defined by the independent claims. The dependent claims define advantageous embodiments.
In one embodiment, an electronic device is provided which comprises first and second processing units for processing data. The electronic device furthermore comprises a network based interconnect coupled to the first and second processing units thru a network interface. The network interface is used for managing the communication of the first and second processing units. The first and second processing units communicate via request and response channels to write data to each other. In accordance with the present invention, the request channel of a communication between the first and second processing unit is shared with the response channel of a communication between the second and first processing unit. Also, the response channel of the communication between the first and second processing units is shared with the request channel of the communication between the second and first processing units.
Accordingly, by sharing channels merely two channels are required for a communication between the first and second processing units and vice versa.
According to an embodiment of the invention, the communication between the first and second processing unit is based on connections having flow control.
According to still a further embodiment of the invention, the communication between the processing units is performed in a streaming manner.
According to a further embodiment of the invention, the response channel from the first connection is used to communicate flow control data for requests of the first connection and flow control data for responses of the second connection that is not required as the second connection is a write-only communication. The response channel from the second connection is used to communicate flow control data for requests of the second connection and flow control data of the responses of the first connection that is not required as the first connection is a write-only connection. The invention furthermore relates to a control of the communication between processing units. First and second processing units are coupled via a network interface to a network based interconnect. The first and second processing units communicate via request and response channels to write data to each other. The request channel of a communication is shared between the first and second processing units with the response channel of a communication between the second and first processing units. The response channel of the communication between the first and second processing units is shared with the request channel of the communication between the second and first processing units.
The present invention further relates to the idea that if pairs of IP blocks within a system on chip are only writing and not reading from each other, the response channels are not used to communicate data but only to communicate flow control packets of the requests. The request channel does not transmit response flow control packets, as the corresponding response channel is never used.
The present invention relates to the idea that if two IP blocks have two write- only connections (each with a request and a response channel) to each other, the response channels will not be used to communicate response data but only to communicate flow- control data. Also, the request channel only transports data, and does not transport request flow control data. Instead of then using these response channels for sending flow-control data, the response channels may be removed and the flow control originally sent over the response channels may be sent instead over the request channel of the connection going in the other direction. This results in two independent write-only connections being implemented using only two channels instead of four, consequently resulting in less buffer area and a lower latency.
The system on chip implemented as a network on a chip may consist in (token) rings, busses with bridges, switches or routers with network interfaces or adapters, may span a single die, multiple dies in the same package (system in a package), multiple dies stacked using bonding or 3D vias or otherwise, or span over multiple chips, including ASICs, ASSPs, FPGAs, etc.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. IA shows a block diagram of part of a system on chip, Fig. IB shows a representation of data and flow control channels in a system on chip according to Fig. IA;
Fig. 1C shows a further representation of data and flow control channels in a system on chip according to Fig. IA;
Fig. ID shows a representation of data and flow control channels in a system on chip according to Fig. IA; Fig. 2A shows a block diagram of part of a system on chip according to a first embodiment of the invention,
Fig. 2B shows a representation of data and flow control channels in a system on chip according the first embodiment; Fig. 2C shows a further representation of data and flow control channels in a system on chip according the first embodiment,
Fig. 3 shows a block diagram of a network interface according to a second embodiment of the invention; and
Fig. 4 shows a block diagram of a system on chip according to the prior art.
DETAILED DESCRIPTION OF EMBODIMENTS
Fig. IA shows a block diagram of a part of a system on chip. Here, first and second IP blocks IPl, IP2 (or processing units) are each coupled via first and second network interfaces Nil, NI2 having buffers B1-B8 to a network on chip NoC that forms a network based interconnect. IP blocks are usually modules on chip with a specific function like CPUs, memories, digital signal processors or the like. A first and second connection Cl, C2 is present between the IP blocks IPl, IP2, which can both be for example write-only connections or at least write-only connections for a period of time. A first request channel REQl of the first connection Cl for transmitting data is present between the first IP block IPl and the second IP block IP2, and a corresponding response channel RESPl of the first connection Cl is present between the second and first IP block IP2, IPl. This response channel RESPl is used only for communicating flow control data fc resp, since the connection is a write-only connection. A second response channel RESP2 of the second connection C2 is present between the first and second IP blocks IPl, IP2, and a second request channel REQ2 is present between the second and first IP blocks IP2, IPl. The communication between the first and second IP block IPl, IP2 is handled by the network interface Nil, NI2 associated to the IP blocks. Therefore, the first request REQl will send data to a first buffer Bl in the network interface Nil from where the data is forwarded to a buffer B2 in the network interface NI2. The corresponding response, i.e. the flow control data, will be passed from the second IP block IP2 to a buffer B3 within the network interface NI2, from where it is passed to the buffer B4 in the network interface Nil . Alternatively, the flow control credits can be added either by piggy-backing them to existing response data packets in the buffer B3, or if no data is available in buffer B3 (as is the case here) the network interface NI creates a new packet itself with only flow control FC data in the header. The header will not be stored in buffer B3.
The second IP block IP2 may (independently of IP block IPl) send a request to IP block IPl, the data of which will be passed to the seventh buffer B7 in the network interface NI2 and will then be passed to the eight buffer B8 of the network interface Nil . A response RESP2 from the first IP block IPl will be forwarded to the buffer B5 in the network interface Nil and will then be passed to the buffer B6 in the network interface NI2.
Fig. IB shows a representation of data and flow control channels in a system on chip according to Fig. IA. Here, four separate channels, namely a data request channel dt req, a flow control request channel fc req, a data response channel dt resp, and a flow control response channel fc resp are required for data as well as for flow control.
Fig. 1C shows a representation of further data and flow control channels in a system on chip according to Fig. IA. In contrast to the representation according to Fig. IB, and in accordance with an aspect of the present invention, here merely 2 channels are required as one channel is used as data request channel dt req and as flow control response channel fc resp, while the other channel is used as data response channel dt resp and as flow control request channel fc req.
Fig. ID shows a representation of further data and flow control channels in a system on chip according to Fig. IA. Here, a situation is depicted where no responses are present. The dashed lines represent unused channels uc. Between the first and second IP block IPl, IP2 a data request channel dt req is shared with a channel fc resp of the flow control of the response from the first to the second IP block IPl, IP2. Between the first and second IP block IPl, IP2 data response channel dt resp is shared with a channel of the flow control of the request from the first to the second IP block IPl, IP2. Between the second and first IP block IP2, IPl a data request channel dt req is shared with a channel fc resp of the flow control of the response from the second to the first IP block IPl, IP2. Between the second and first IP block IP2, IPl a data response channel dt resp is shared with a channel fc req of the flow control of the request from the second to the first IP block IP2, IPl.
Fig. 2A shows a block diagram of part of a system on chip according to the first embodiment. The system on chip comprises first and second IP blocks IPl, IP2, which are coupled via a first and second network interface Nil, NI2 to a network on chip NoC, respectively. The first and second network interface Nil, NI2 each comprise two buffers Bl, B4 and B2, B3 used to buffer the data and flow control data to and from the IP blocks IPl, IP2. In contrast to the system on chip according to Fig. 1, the system on chip according to the first embodiment comprises a first shared channel SCl between the first and second network interface Nil, NI2 and a second shared channel SC2 is present between the second and first network interface NI2, Nil. In other words, the request channel of the first connection (between Nil and NI2I is shared with the response channel of the second connection
(between NI2, Nil) and the request channel from the second connection is shared with the response channel from the first connection. Therefore, the flow control data of the first connection can be piggy-backed on the requests of the second connection, and the flow control data of the second connection can be piggy-backed on the requests of the first connection. The request or response channels of the first and second connections can be shared as no flow control is required for the responses if the IP blocks are merely writing data to each other in a streaming manner. In other words, the request channel of a connection going in one direction is shared with the response channel (which would only have to transmit flow control data) of a connection going in the other direction. Fig. 2B shows a representation of data and flow control channels in a system on chip according the first embodiment. The dashed lines represent unused channels uc, i.e. a) the flow control response channel fc resp from the first to the second IP block IPl, IP2 and b) the flow control response channel fc resp from the second to the first IP block IP2, IPl are not used. However, here the data request channel dt req between the first and second IP block IPl, IP2 is shared with the flow control request channel fc req from the second to the first IP block IP2, IPl. Moreover, the data request channel dt req between the second and first IP block IP2, IPl is shared with the flow control request channel fc req from the first to the second IP block IPl, IP2.
Fig. 2C shows a further representation of data and flow control channels in a system on chip according the first embodiment. Here, the data request channel dt req between the first and second IP block IPl, IP2 is shared with the data response channel dt resp from the second to the first IP block IP2, IPl. The data response channel dt resp between the first and second IP block IPl, IP2 is shared with the data request channel dt req from the second to the first IP block IP2, IPl. The flow control request channel fc req between the first and second IP block IPl, IP2 is shared with the flow control response channel fc resp from the second to the first IP block IP2, IPl. The flow control response channel fc resp between the first and second IP block IPl, IP2 is shared with the flow control request channel dt req from the second to the first IP block IP2, IPl . In other word, the response and request channels for the data as well as for the flow control is combined, respectively. Fig. 3 shows a block diagram of a network interface according to a second embodiment of the invention. Here, three examples for buffering flow control data are depicted in a receiving network interface RNI, i.e. a network interface according to Fig. 2A. Here, the network interface is shown in more detail. Although the three examples are shown in one receiving network interface RNI, each one of the three examples may be implemented in the network interface. According to a first example a) the flow control data is transmitted in dedicated flow control packets fc in addition to dedicated data packets dt. Therefore, in a receiving network interface RNI the flow control fc and the data packets dt are separated, and the flow control information fc updates a flow control counter fc ctr while the data dt is output. According to a second example b) transmitted packets may contain data messages dt msg and/or flow control messages fc msg. Here, the flow control information is extracted from the packets in an extraction unit fc + dt and used to update a flow control counter fc ctr. According to a third example c) the flow control information fc is piggy-backed in a packet header pckt hd, and used to update the flow control counter fc ctr.
While in the system on chip according to Fig. 1, four buffers are required in each of the network interfaces, the network interfaces according to the first embodiment merely require two buffers. Furthermore, the size of the slot tables can be decreased, as no slots are required for the flow control data of the response channels. According to a third embodiment, the principles of the first embodiment can also be applied to other electronic devices where two IP blocks communicate via write connections. If e.g. a first IP block has two write connections to a second IP block, while the second IP block has merely one write connection to the first IP block, the flow control on the two response channels to the first IP block can be merged to share the single request channel of the second IP block instead.
The merging of two write connections by using a shared channel pair results in the decrease of buffer sizes and the sizes of slot tables within a network interface. Accordingly, the implementation of the network interface will require a smaller area and will thus lead to a reduced cost. Furthermore, the latency can be reduced if the size of the slot tables is also reduced.
The network on a chip may consist in (token) rings, busses with bridges, switches or routers with network interfaces or adapters, may span a single die, multiple dies in the same package (system in a package), multiple dies stacked using bonding or 3D vias or otherwise, or span over multiple chips, including ASICs, ASSPs, FPGAs, etc. According to the invention for two data flows, which are independent and which constitutes requests only, from a first to a second IP block IPl, IP2 and vice versa the flow control of a first data flow is combined with the flow control of the second data flow.
The request data flow is combined with the response data flow. The response data flow is combined with the request data flow. This is implemented as a single connection with two channels, i.e. two connections with four channels are combined to one connection with two channels. The principle of the invention may also be applied to multiple unrelated communications or connections.
In the above embodiments, the data transfer and the flow control have been described between two separate IP blocks. The principle of the invention may also be applied for a communication between two different ports of a single IP block.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps other than those listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. In the device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims

CLAIMS:
1. Electronic device, comprising: first and second processing units (IPl, IP2) for processing data, a network based interconnect (NoC) coupled to the first and second processing units (IPl, IP2) thru a network interface (Nil, NI2) for managing the communication of the first and second processing units (IPl, IP2), respectively, wherein the first and second processing units (IPl, IP2) communicate via request and response channels (REQ, RESP) to write data to each other, wherein the request channel (REQl) of a communication (Cl) between the first and second processing units (IPl, IP2) is shared with the response channel (RESP2) of a communication (C2) between the second and first processing units (IP2, IPl), and wherein the response channel (RESPl) of the communication (Cl) between the first and second processing units (IPl, IP2) is shared with the request channel (REQl) of the communication (C2) between the second and first processing units (IP2, IPl).
2. Electronic device according to claim 1, wherein the communication between the first and second processing units (IPl, IP2) is based on connections having flow control.
3. Electronic device according to claim 2, wherein the communication between the processing units is performed in a streaming manner.
4. Electronic device according to claim 2 or 3, wherein the response channel from the first connection is used to communicate flow control data for requests of the first connection and flow control data for responses of the second connection, which is not required as the second connection is a write-only communication, and wherein the response channel from the second connection is used to communicate flow control data for requests of the second connection and flow control data for the responses of the first connection, which is not required as the first connection is a write-only communication.
5. Electronic device according to claim 1, wherein the channels are programmable at run time.
6. Method of controlling a communication between first and second processing units (IPl, IP2), which are coupled via a network interface (Nil, NI2) to a network based interconnect (NoC), wherein the first and second processing units communicate via request and response channels (REQ, RESP) to write data to each other, the method comprising the steps of: sharing the request channel (REQl) of a communication (Cl) between the first and second processing units (IPl, IP2) with the response channel (RESP2) of a communication (C2) between the second and first processing units (IP2, IPl), and sharing the response channel (RESPl) of the communication (Cl) between the first and second processing units (IPl, IP2) with the request channel (REQl) of the communication (C2) between the second and first processing units (IP2, IPl).
PCT/IB2007/053729 2006-09-21 2007-09-17 Electronic device, and method of controlling a communication between processing units WO2008035265A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06121039.9 2006-09-21
EP06121039 2006-09-21

Publications (2)

Publication Number Publication Date
WO2008035265A2 true WO2008035265A2 (en) 2008-03-27
WO2008035265A3 WO2008035265A3 (en) 2008-05-29

Family

ID=39092186

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2007/053729 WO2008035265A2 (en) 2006-09-21 2007-09-17 Electronic device, and method of controlling a communication between processing units

Country Status (1)

Country Link
WO (1) WO2008035265A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091574A1 (en) * 2004-03-17 2005-09-29 Koninklijke Philips Electronics N.V. Integrated circuit and method of communication service mapping
WO2006018753A1 (en) * 2004-08-12 2006-02-23 Koninklijke Philips Electronics N.V. Integrated circuit and method for packet switching control
WO2006048826A1 (en) * 2004-11-08 2006-05-11 Koninklijke Philips Electronics N.V. Integrated circuit and method for data transfer in a network on chip environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091574A1 (en) * 2004-03-17 2005-09-29 Koninklijke Philips Electronics N.V. Integrated circuit and method of communication service mapping
WO2006018753A1 (en) * 2004-08-12 2006-02-23 Koninklijke Philips Electronics N.V. Integrated circuit and method for packet switching control
WO2006048826A1 (en) * 2004-11-08 2006-05-11 Koninklijke Philips Electronics N.V. Integrated circuit and method for data transfer in a network on chip environment

Also Published As

Publication number Publication date
WO2008035265A3 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
KR101016987B1 (en) Integrated circuit and method for exchanging data
US8718065B2 (en) Transmission using multiple physical interface
Feliciian et al. An asynchronous on-chip network router with quality-of-service (QoS) support
CN117235000A (en) Scalable network on chip for high bandwidth memory
US7594052B2 (en) Integrated circuit and method of communication service mapping
US20080232387A1 (en) Electronic Device and Method of Communication Resource Allocation
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US8014401B2 (en) Electronic device and method of communication resource allocation
CN100583819C (en) Integrated circuit and method for packet switching control
KR20070010152A (en) Integrated circuit and method for issuing transactions
JP4509175B2 (en) Integrated circuit and packet switching control method
US20080123666A1 (en) Electronic Device And Method Of Communication Resource Allocation
US10289598B2 (en) Non-blocking network
US7346078B2 (en) Processing of received data within a multiple processor device
US7836213B2 (en) Coupling data buffers with memory interfaces
US7965705B2 (en) Fast and fair arbitration on a data link
US20020172197A1 (en) System interconnect with minimal overhead suitable for real-time applications
US20040017813A1 (en) Transmitting data from a plurality of virtual channels via a multiple processor device
WO2008035265A2 (en) Electronic device, and method of controlling a communication between processing units
Nejad et al. An FPGA bridge preserving traffic quality of service for on-chip network-based systems
WO2006048826A1 (en) Integrated circuit and method for data transfer in a network on chip environment
Sathe et al. Design of a guaranteed throughput router for on-chip networks
KR20150102538A (en) SoC Communication Network
Kodi RAPID: Reconfigurable all-photonic interconnect for parallel and distributed computers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07826395

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07826395

Country of ref document: EP

Kind code of ref document: A2