A New Network on Chip Design Dedicated to Multicast Service

The qualities of service presented in the network on chip are considered as a network performance criteria. However, the implementation of a quality of service, such as multicasting, shows difficulties, especially at the algorithmic level. Numerous studies have tried to implement networks that support the multicast service by adopting various algorithms to maintain the network average latency acceptable. To evaluate these algorithms, their performances are compared with the algorithms based on the multi-unicast. As expected, there is always a performances improvement. Regrettably, there is a possible degradation of latency introduced by such a service because of the large occupation of the network bandwidth for some period (which depends on packet size). In this paper, we propose an architectural solution aiming to avoid this possible degradation. Keywords—Network-on-Chip (NoC); adaptive routing; Quality of service; Multicast List of acronyms TT: type of transmission SN: sub-network TSN: type of SN N.B: number of blockings TNB: threshold of NB LRM: local router monitor TP: type of packet TF: type of FLIT LNLRM: number of last addressed LRM NLRM: the number of the LRM P.length : the packet length STA.PW: signal state for the WEST output port STA.PE: signal state for the EAST output port STA.PN: signal state for the North output port STA.PS: signal state for the South output port STA.PL: signal state for the Local output port


INTRODUCTION
Multicast service is a way to transmit the same packet from one source to multiple destinations; this implies an excessive use of network resources and a major occupation of bandwidth (occupancy of interconnections links).Several studies have attempted to reduce this use of resources through algorithmic solutions and sometimes through architectural solutions.The proposed algorithmic solutions have reduced the occupation.However, these solutions present complexities not only in implementation but also significant latencies at packet transmission due to the necessity of reading all the flits of the packet header.
The occupation of the bandwidth results in a rapid network saturation, which will degrade overall network performance.It will also be shown throughout this paper that the proposed architectural solutions consume too many resources.
In this paper, we present a new network architecture dedicated to multicast service, which aims to reduce the effect of rapid saturation of the network for an acceptable cost regarding additional resources.Our solution is based on a newly developed algorithm called "last addressed router".The latter avoids the fact that all routers forming the path must read the entire packet header.

II. SIMILAR WORKS
Several studies have tried to propose algorithmic solutions to implement the multicast service.The purpose of these algorithms was to pass packets to multiple destinations using the minimum of branches (interconnections links) and to reduce the number of duplications of the transmitted packet to reduce the occupation of network bandwidth and the transmission cost.This will improve the average latency of the network, comparatively to the multi-unicast algorithm.These algorithms could be classified into two main types: The first one is based on the principle of routing tree (tree based) [1].This type of algorithm is suffering from an extra latency used to establish the tree before starting the sending of the packet, and the tree is found only if all its branches are free (the tree based path is reserved and ready for packet transmission).This algorithm demands that each router must implement a routing table (look-up table) which requires more resources to read and update the table.Finally, we can say that this type of algorithm is interesting in the use of the network bandwidth (fewer branches are used), but presents a considerable network average latency.
The second type is path based [2,4,5,10,11]; this type of algorithm is based on the Hamilton principle.The packet follows a path across the network with a low number of duplications.With this type of algorithm, we avoid both the live lock and the dead lock issues, but suffer from a significant latency especially for nodes that are distant from each other.
There are also other algorithms used to implement the multicast service that are based on the principle of RPM [6].The principle of this latter is to divide the network into eight parts at the current router (the last router receiving the packet) www.ijacsa.thesai.organd to forward the packet to the various parts according to certain rules to optimize the number of duplications.Some works have adopted architectural solutions for implementing multicast services.The author in [7] adopted a new architecture based on adding extra nodes called QAMC that aim to provide more interconnections links within the network to facilitate the multicast service implementation and other qualities of services namely BE and GS; the architecture is developed around a 2D mesh structure with the size of 4x4.It is noted that the architecture proposed is greedy for used resources: we have an extra of 40 unidirectional ports compared to the standard 4x4 dimension mesh 2D network Larger network would consume much more resources.

A. Sub-networks
We propose to divide the network into a set of subnetworks (SN).For each sub-network, the multicast service is controlled by a node (router) called LRM (Local Router Monitor) which is the router with the largest possible number of connections (the most connected router in the SN), the structures of these sub-networks are defined as follows: Any 2D-mesh network with any size can be constructed using the above structures.
Note the presence of additional ports at the structure of LRM router (c) and some neighboring routers for reasons that will be detailed later in this paper.
The router itself has three reference parameters, the first parameter indicates the router position in the global network, the second concerns its position in the sub-network and the third concerns the type of the sub-network, the number of ports associated with each router depends on these three parameters

B. Network structure
As is already mentioned, with the SN we can generate any 2D-mesh network.Figure 2 and Figure 3 show two examples of networks established using different SNs; they have respectively the dimensions of 5x5 and 6x6.
Note the presence of two additional ports at LRM (regardless to which SN it belongs), these ports are from neighboring LRM.Actually, a packet must not cross all branches forming the ordinary path (following Hamilton algorithm) to reach its destinations, and then these ports can be considered as bridges between different (SN).These changes to the network structure are made for the multicast service.So a multicast packet can cross any branch of the SN while an ordinary packet can cross only the branches of the primitive network (2D-mesh network without considering the extra ports).

C. Setting up the router according to his SN
To identify each router forming the network, we have defined the following three parameters.
 its position coordinates (X, Y) within the network  its position (SN Id) within the SN  the type of SN (TSN) to which it belongs 1) Router position (X, Y) Are the router coordinates within the global network .The routing unit considers only this parameter to transmit an ordinary packet.

2) Position of the router within its SN (SN Id)
Each router has an SN Id identifier (SN Id); it is a number indicating the position of the router within its SN.Indeed, when the SN Id is set to 1 then it is an LRM router; other routers are numbered from 2 to M (where M is the number of routers forming the SN).The SN Ids are assigned in clockwise order starting from the North as shown in Figure 4.  Figure 4 shows the SN Id for routers belonging to the subnetworks (b2) and (c)

3) Type of sub-network
In addition to its SN Id, each router must be configured by its sub-network type (TSN).In fact, two routers having the same SN Id doesn't mean that they have the same number of ports unless they belong to the same type (TSN) In fact, the TSN is a binary number defined by 3 bits, and each TSN has its unique TSN code, the table below shows the codes associated with the different types of (SN): IV.ROUTING ALGORITHMS There are four routing algorithms:

A. The routing of an ordinary packet
To route a regular packet, only the following bidirectional ports towards the directions (North, South, East, South, and Local) are used.
The algorithm routes the packet from the input port to the output port in one clock cycle based on the new instantaneous routing principle (described later in this paper).
The used algorithm is adaptive.Indeed, the packet can be delivered through any free port that minimizes as much as possible the number of HOPS.This may generate ''live lock''.
To avoid the live lock, we limited the number of packets passing by alternative paths (other than those specified by the XY algorithm) by a threshold called TNB.Indeed, for each transmission, a signal called NB is used to specify the number of times the packet has not followed the right path (according to XY) and in the case of equality between the NB and TNB, the routing algorithm is no more adaptive and the XY deterministic algorithm is applied.

1) Routing principle
Our router runs according to the handshake communication protocol.The switching mechanism adopted for our network is the Virtual Cut-Through to avoid deadlocks.
In the presence of a request, the routing unit reads the packet header, and it starts storing the packet in the memory unit (buffer).Meanwhile, the routing unit seeks whether the direction designated by the corresponding header is free (according to the XY algorithm) and that there are no other requests (with higher priority) designating the same output port, then it routes the packet through the multiplexing units (specifying the appropriate values for the input selection of the multiplexing unit) and reports that the port is unavailable to other possible requests, if not (the direction specified by the XY algorithm is unavailable), it seeks the availability of other ports, starting with the ports associated with the shortest path, to route the packet through.
In case all ports are unavailable, the packet already stored in the memory waits for the availability of the port designated by the XY algorithm.It will be favored by a higher priority to the recent requests (designating the same output port) (see Figure5) If the sending is completed, the routing unit releases the data stored in the memory and turns the state of the associated output port to available.Note that all ports are initially in the available state.
Figure 5 shows the principle of the routing algorithm based on an example of a packet transmission from the local port to the east output port.Note that the NB signal is used to switch between the adaptive algorithm and the XY routing algorithm, which will be more detailed later in this paper.The routing unit selects the output port instantly when reading the header.Indeed, a signal state (STA.P) is assigned to each output port that is set to 0 if the port is free and set to 1 if not.So we have five states signals, each of which is associated with an output port.
The states signals are STA.PW, STA.PE, STA.PN, STA.PS, and STA.PL, and are respectively associated with output ports following the directions WEST, EAST, NORTH, SOUTH, and LOCAL.
The signal state value is set to 0 when the port is free (when no packet is being transferred to the associated output port and no already stored packets are waiting for the port availability).Otherwise, the signal state value associated with the output port is set to 1.
The signal states are also used in the case of a multicast packet transmission.The table above shows the values associated with the different signal states by considering a packet transmission from the local input port and its packet header indicating a X@D coordinate greater than X@R ( X@D and X@R are respectively the destination router and the current router coordinates following x-axis) in this case the routing unit facilitates the transmission of the packet to the EAST direction if its signal state is set to 0. If not, we send the packet according to the NORTH or to the SOUTH depending on their availability, but if both are available, the routing unit sends the packet to the direction that minimizes the distance between the destination IP and the current router according to the y-axis.In case both signals are set to 1, the packet will be sent to the WEST direction.If all signal states are set to 1, then the already stored packet waits for the availability of the EAST output port, this time with a higher priority compared to recent queries.

2) Priority of input ports and the elimination of live lock
Our router uses the data stored in memory if there is a transmission error or all output ports are busy, otherwise, we can use any available output port to route the packets which can generate live lock problems (the packet never reaches its destination).And to avoid this problem, a signal called NB is used to indicate to the addressed router the number of times the packet has not followed the path specified by XY algorithm in the already crossed routers.According to the value carried by the NB and compared to the threshold TNB.The routing unit decides which routing algorithm to use: either continues with the adaptive routing or just uses XY.The threshold depends on the network size (for example for the 3x3 network; the TNB is set to 3 and for the 4x4 network the TNB is set to 4).
The choice of the TNB was made after making some performances measurements that we won't consider in this paper, in fact, this algorithm which is a novel one, doesn't show better performances compared to the "look ahead" based ones.
We only adopted this algorithm because of its implementation simplicity and the performances improvement compared to the deterministic XY.In addition, the establishment of this algorithm is not considered as an aim in this paper.
Our network operates according to FIFO scheduling algorithm, the first input port addressing the output port will be served first.In some cases, multiple input ports address the same output port at the same time (called here instant requests), so the FIFO algorithm is not applicable, and the request having the highest NB number is the one who has the highest priority.In case where both requests have the some NB then an arbitrary priority assignment is considered.This priority is defined as follows: PE > PS > PW > PN > PL with Px is the priority associated with the input port x.Note that the local input port has the lowest priority and this for the simple reason that other packets coming from other directions are older.where all output ports are unavailable, in this case, the packet already stored in memory waits for the next port availability after the XY direction (c) Behavior of the routing algorithm if the packet receives a number of three miss-routing(NB = 3) in this case, the NB is equal to the TNB then the XY algorithm will be applied even if there are better alternative paths.
Fig. 6. network behavior to avoid deadlock and live lock

3) Packet switching principle
Our router is actually operating in a virtual cut through packet switching type with one modification which is the storage strategy; in fact the router stores immediately the packet in the buffer regardless the state of the addressed port.This does not mean that we must save the entire packet before sending it, but it will be sent as soon as the destination port is available.The instant storage was necessary for two reasons: The first one is to have two packets addressing the same output port at the same time (the routing unit sees that the output port is free and gives access to both input packets) this will result in the loss of data of one of two packets.In such case, the routing unit detects this error immediately (the routing unit always tests if it has given access to an output port to multiple input packets) and stops sending the one with lower priority without risk of losing data because they are already stored in memory.Those two actions operate as combinatorial functions.
The second reason is to have a sending error (receiving an error acknowledgment from the destination router) in this case the routing unit starts to resend the packet as soon as the output port is available.
The communication protocol adopted for our network is the handshake: In the presence of a request, the routing unit sends an acknowledgment (ack = 00) to indicate the receipt of the The treatment of these two communication obstacles was not specified by other on-chip network designers (it is imperative to store the packet for each communication to ensure that no packet will be lost).

B. Routing multicast packet 1) The last addressed router algorithm
The main objective of this paper is to introduce a new algorithmic solution to avoid the fact that all the routers forming the path for a multicast transmission have to read all the header flits.In fact, the router can forward the packet only after reading the packet's header which means a loss of a large number of cycles for redundant operations.That's why we propose a source routing algorithm that only, in our case, defines the last router address concerned by the multicast packet.So, all the routers forming the path must check only the first flit of the header (this flit has been established at the source node) before redirecting the packet to its destination.Thanks to the principle of the instantaneous routing principle presented in 4.1.1,one cycle is sufficient to transmit the multicast packet between two adjacent routers.
For a better understanding of the importance of this novel algorithm, we consider a simple path-based algorithm presented by [9], this algorithm specifies (at the source node) all the designated routers by the multicast packet in one direction (the multicast packet is instantaneously and horizontally transmitted in two directions).The author of [9] has used a method to avoid the redundant operation of reading the entire packet header but there is still redundancy in reading some of the header flits by the routers that form the path as shown in Figure 7. www.ijacsa.thesai.orgFig. 7. Transmitting multicast packet header to establish a connection between the destinations nodes having labels greater than the source router (the label 6) using the Hamiltonian routing algorithm.[9] The example studied by [9] shows that the routers with label (6, 7, 8) read the same packet header used to establish connections to the destinations nodes having labels greater than the source router.The packet header format is presented by the Figure 8.By adopting the novel algorithm proposed in this paper (without considering the proposed structure based on subnetworks); we consider, at each line of the network, a source node that will specify only the last router that received the packet and belonging to the some line level.The source nodes are the routers receiving the packet vertically (from the south or the north port), in this case, we have simply reduced the number of routers that should read all the packet header flits to only one at each network line as shown in Figure 9. Fig. 9. Transmitting multicast packet header using the proposed algorithm in the case of the (Fig. 7) scenario.Note that source node at each line must read the entire packet header Figure 9 shows that with the application of our proposed algorithm all the routers (including line source nodes) have to read a total of 18 header flits while 25 header flits have to be read adopting the method proposed by [9] Reading the entire header packet at each line source node is an exhaustive operation that is why we have adopted the new network structure based on LRM routers (the number of LRM routers is, after all, lower than the number of lines presented in a 2D-mesh network)

2) Routing a multicast packet from a non-LRM router to neighboring routers
In this case, only the router that corresponds to the source node reads the entire packet's header and proceeds to the packet emission according to the most optimized path.If this latter is busy, it follows the path which is available.The source router specifies the last addressed router by the multicast packet and belonging to the same SN.It also specifies the router that will send the packet to the LRM in the case of a nine routers SN (see Figure 10).For other types of SN, the source router specifies only the last router addressed by the multicast packet, assuring that the packet will be received by the LRM.

3) The routing of a multicast packet across different LRM routers
Actually, for this type of routing, a simple algorithm was adopted, this because the number of LRM is not defined in advance (it's not like in the case of SN).As the number of LRM depends on the number of SN, we have defined a parameter associated with each LRM called NLRM that defines a reference number of the LRM at the LRM network (The LRM network is defined in a ring topology to minimize the number of packet duplications).According to data carried by the FLITS forming the packet header, the LRM source defines the direction, and the NLRM associated with the last LRM addressed by the packet (which is called LNLRM); The information about the LNLRM is added to the header.Thus, LRM routers forming the path traversed by the packet don't read the entire packet header but only the first flit.

4) The routing of a multicast packet between an LRM and routers belonging to the same SN
This type of routing also depends on the type of SN, the different structures of SN are defined to transmit simultaneously two multicast packets in the network regardless which nodes are involved in the communication: for the 9 routers sub-network (Figure 1 (c)), the LRM has two paths for transmitting the packet, the first one is following the directions: from EAST to NORTH and from WEST to SOUTH, the second one is following the other ways (from EAST to SOUTH and from WEST to NORTH).That's for this reason that we added additional ports at the LRM of this type of SN.Such routing will only occur if the packet comes from the LRM network; we have two connections (bidirectional ports) between the LRM and the network of LRM, the first path is taken only if the packet comes from the first port (LRM NETWORK DATA IN PORT 1); the second path is taken if the packet is received from the second port (LRM NETWORK DATA IN PORT 2) For other types of SN we can transmit two multicast packets simultaneously without adding additional ports (see Figure 13); but the routing also depends on the port used for receiving the packet: if the port receiving the packet is the LRM NETWORK DATA IN PORT 1, the transmission direction of the packet is clockwise, if the port receiving the packet is the DATA IN NETWORK PORT LRM 2, routing is done in the other direction.For both cases, the LRM always sets the latest routers addressed by the multicast packet; for SN (110), the signal L1R indicates the last router along the path to the north direction and the signal L2R indicates the last router along the path to the south direction, the two signals L1R and L2R are introduced at the FLIT level added by LRM in the packet header

5) Proposed structure's worst case
The worst case that our network may face is when a multicast transmission takes place only between neighboring routers belongings to different sub-networks (where short links can't be used).
(I): The source node R (0, 2) addresses the destinations nodes R (0, 3) and R(1,3) by a multicast packet, in this case, this direct link between R(0,2) and R(0,3) is useless (II): Not used link for multicast transmission In this case (Figure 14), the achieved latency is greater than most of other path-based proposed solutions.However, taking into consideration the ability for simultaneous transmission of multicast packets in the some sub-network and the ability of using the short links between the routers belonging to different sub-networks for other unicast transmission, this worst case situation is acceptable and doesn't prevent our proposed network to achieve better performances which is demonstrated later in this paper.

V. PACKET HEADER
The header of the packet differs depending on the packet type and the entering port.Indeed, there are two main types of packets

A. The case of a unicast packet
The header of this packet is defined by the following fields: TT: defined on 1 bit, it indicates the type of the transmission, in fact this bit is set to 0 if it is a unicast transmission and to 1 if it is a multicast transmission P. length: this field is defined on 8 bits and indicates the packet size X@S: set of 4 bits defines the coordinate along the X axis of the source router Y@S: set of 4 bits defines the coordinate along the Y axis of the source router TT X@S Y@S X@D Y@D P.length (I) (II) www.ijacsa.thesai.orgX@D: defined on 4 bits defines the coordinate along the X axis of the destination router Y@D: defined on 4 bits defines the coordinate along the Y axis of the destination router

B. Case of a multicast packet type 1) Packet coming from a local port
In this case, the packet header has not got any modification (no FLIT has been added) With: TF: defined on 1 bit, it specifies if the FLIT belongs or not to the packet header; this bit is set to 1 if the FLIT belongs and is set to 0 if not; P.length: this field is defined on 8 bits it indicates the size of the packet without considering the added FLIT.Zonei: This field is defined on 4 bits and indicates the SN addressed by the multicast packet.@{R}\j: This field is defined on 9 bits and indicates the set of routers belonging to zone j and which are addressed by the multicast packet The 9-bit of (@{Ri}\j) denote routers belonging to SN designated by the field j; each bit corresponds to a router and it is set to 1 if the router is addressed by the multicast packet and is set to 0 if not; this field is defined on 9 bits since we have at most 9 routers by SN. 2

) Packet coming from a port other than the local port a) Case of transmission of a multicast packet from an router other than LRM
In this case, we have a FLIT added to the packet header: TT T.P LR DR TT X@S Y@S P.length Zone1 @{Ri} T.F Zone3 ………….Zone N @{Ri} With TP: This field is defined on 2 bits, and it identifies the type of multicast transmission; in this case it is a transmission from a router other than LRM (TP is set to 01) DR: sets of 4 bits and indicates which router drives the multicast packet to the LRM (this field is present only in the case that the SN is with a TSN equals to (110)) LR: Set of 4 bits and indicates the last router in the same SN as the source router which is addressed by the multicast packet

b) Case of transmission of a multicast packet from an LRM router to the LRM network
In this case, we have a FLIT added to the packet header: with LNLRM: set of 4 bits that shows the last LRM addressed by the multicast packet

c) Case of transmission of a multicast packet from an LRM router to the sub-network (SN) to which it belongs
In this case, we have a FLIT added to the packet header: With TP: this field is defined on 2 bits and identifies the type of multicast transmission; in this case it is a transmission from an LRM router to other routers belonging to the same SN (TP is set to 10) L1R: set of 4 bits that shows the last router addressed by the packet by the north path L2R: set of 4 bits that shows the last router addressed by the packet by the south path

VI. EXAMPLE OF A MULTICAST TRANSMISSION
Considering a Mesh network with size of 6x6 , the router with address (0,0) transmits a multicast packet to routers: {R (2,2), R (5,1), R (0.5 ), R (3,5)} and the router with address (5.5) transmits, after a few cycles, a multicast packet to routers: {R0,1), R (2,1), R (0, 4), R (1,3), R (5,2), R (4,3)} To understand how to forward two packets in the network, it is necessary to know the following information: -The number of zones (sub-networks) -The type of each sub-network* the network with size of 6x6 is defined as a set of 4 subnetworks where each one is defined by a TSN = 110 Starting with the transmission of the first packet, the router R (0,0) transmits the first packet to the LR (last addressed router belonging to the same SN as R (0,0) ) which is in this case, the router R( 2.2), through the shortest path, and specifies the DR (the router that sends the multicast packet to the LRM which is the router R (1,0)) Once the packet is present in the LRM of the zone 1, the LRM transmits the packets into the LRM network according to the shortest path and marks the R(1,4) as the LNLRM (For our case there is no a shortest path because all the present SN are addressed by the packet).
Zone N @{Ri} www.ijacsa.thesai.org The path adopted for the transmission of the packet is clockwise and as the LRM are placed in the network on the way that the LRM NETWORK DATA IN PORT 1 of each LRM is the entered port for such a path then the first path is taken at each SN receiving the first multicast packet.Indeed, each LRM must define the information of L1R and L2R of its own SN in the packet header before proceeding to transmission; Indeed:  For Zone 2: L1R = 0, L2R = 4  For Zone 3: L1R = 0, L2R = 7  For Zone 4 : L1R = 0, L2R = 7 For the second packet, the router R(5,5) transmits the packet to the LR, which is in this case, the router R(4.3) through the shortest path and specifies the DR which is the router R(5.4).
The LRM router associated with the zone 3 transmits the packet to other LRM and marks the router R(1.4) as LNLRM; this time, the transmission is counter-clockwise (the other direction is occupied by the first multicast packet), and the port LRM NETWORK DATA IN PORT 2 is the one that will introduce the packet at each LRM.
Finally, each LRM transmits the packet to its own SN after defining the information of the L1R and L2R.Indeed:  For Zone 2: L1R = 0, L2R = 5.

A. The router structure
The structure of our router is not too different from the classic one.In fact, we have the same components regarding buffers, routing unit, and port multiplexing units (called CROSSBAR).
The difference lies in the operating principle of these units; our router is designed to have a minimum latency.Routing the packet through the router is done by multiplexing units that operate according to combinatorial logic while the routing unit and memories operate at the clock edge.The routing unit allows instantaneously (at the front) to read the header of the packet and to deliver it to the destination port in the case of a unicast transmission.
The register present at each input port is used to synchronize between the establishment of the updated control signals used by the routing unit for the selection of the appropriate output port and the presence of input data at the entries of the CROSSBAR unit.In fact, these two operations are done at the same clock cycle, the CROSSBAR unit and the multiplexing units are combinatory components which explain the reduced latency of our router (1 cycle is sufficient to transmit data from the input to the output port) in the case of a unicast transmission.
In the case where it is a multicast transmission, the routing unit (associated with the source node router) stores the packet and reads the entire header before transmitting it to the output port; the difference between the transmission of a regular packet and the transmission of a multicast packet is the required number of cycles for reading the header.Also, for the transmission of a multicast packet, the routing unit modifies the packet header by adding a FLIT to facilitate the packet routing (see Figure 5).Indeed, the routing unit transmits the FLIT added in the first place, and then it proceeds to the transmission of the received packet.
In other works, the way of changing the packet header has not been specified; so our router not only allows packets transmission but modifies it if necessary.
Also, an ordinary packet can be routed directly from the input to the output port without using buffers, which is not the case for the multicast packets (we always speak of the router associated with the source node).This can be seen through the input port structure that is only reserved for the multicast service and the regular input port structure (reserved for both multicast and unicast services).
Except the source router of the multicast packet (the router that receives the packet from the outside of the network), the LRM leading the packet to the network of LRM, and the LRM that delivers the packet to different routers belonging to the same SN, all other routers intervening in the packet transmission, transmit the packet at the end of a single clock edge (it just read the FLIT added by the sources router or by the LRM routers).
For our architecture there are three types of routers:

B. Non-LRM router
This type of router has no connections with LRM network, so we don't have extra ports.We can say that the structure of this router is close to conventional router except that each output port is multiplexed from different input ports with an additional input coming from the routing unit itself (this one is used to add the extra FLIT to the packet header in case of a multicast packet) Figure 16 shows the router structure.From Figure 16, we notice the presence of 5 inputs for each CROSSBAR instead of 4 (from 4 standard directions).The 5th port is the one used to introduce the additional FLIT.

C. LRM router with a TSN other than (110)
The difference between the structure of this type of router and the one previously presented is the presence of two additional ports.These ports provide communication between the sub-network to which the LRM router belongs and the network of LRM.

1) The structure of an input port reserved only to the multicast service
We associate to each input port used for multicast service: •A register to synchronize between the arrival of the packet at the input port of the FIFO and the instruction of storing the packet in the buffer (if accepted) coming from the routing unit, •A FIFO memory to store the packet, in fact the size of this memory is equal to the maximum size of the packet.2) The structure of an ordinary input port: we associate to each input port used for both multicast and unicast service: •A register to synchronize between the arrival of the packet at both the input port of the FIFO and the input of the multiplexer unit, and the storing or the routing through the MUX instructions coming from the routing unit, •A FIFO memory to store the packet, •A multiplexing unit for selecting between the input coming directly from the input port or from the FIFO output; in the first case the packet is sent as it becomes available on the input port and in the second case we transmit an already stored packet.This router is greedy regarding employed resources.In fact, it has a total of 7 bidirectional ports and a couple of unidirectional ports.This router ensures the communication between the 9 routers of the SN with the LRM network.

VIII. PERFORMANCE ANALYSIS
To identify the performance of the proposed network regarding latency, we have measured the average latency of the network according to different injection rates and with a number of 10 destinations uniformly distributed at each SN.We adopted for this, three type of traffic: uniform traffic, the bit complementary traffic, and transpose traffic.The percentage of traffic reserved for the multicast service is fixed to 20%.Figures 21 and 22 presented below show respectively the different results obtained by considering an 8x8 and 6x6 sized networks; these results were obtained by considering network simulations using modelsim6.5.www.ijacsa.thesai.orgThe results obtained show considerable performance regarding latency, and these results are better compared to [9]; although the comparison can't be certain because there are several differences in network parameters, namely the router buffer size (we used 16 Flits sized buffer while they used 8 Flits sized buffer) and the routing algorithm adopted for the transmission of unicast packet.
Our network structure shows exceptional speed (this transmission is done in a single cycle through the principle of last addressed router) for the transmission of multicast packets by different routers (other than LRM and source router that should read the entire packet header).Nevertheless, this structure has two major weaknesses: the first one is the fact of sharing LRM network between routers; indeed, considering SN with a TSN (110) there are only two links to the LRM network which are shared between 9 routers.The second is that the LRM network allows only the simultaneously transmission of two multicast packet.These weaknesses have prevented our network to reach promising performances.The presence of these two weaknesses doesn't mean that our network structure is not suitable for multicasting service.We think that by adopting the path-based algorithm for the multicast service, our network, is by far, a respectable solution compared to most other works presented in the state of the art.

IX. IMPLEMENTATION ON AN FPGA BOARD
To get an idea about the consumption regarding the surface of the different network routers and the maximum frequency, we implemented these routers on an FPGA board VIRTEX 6 XC6VLX760 using the Xilinx ISE 14.1 tool.The obtained results are presented in the table below: With: R3, R4 and R5 are the routers other than the LRM where R3 presents the routers having respectively 3, 4 and 5 inputoutput ports.
The LRM routers have been implemented by considering that it is a network with 4 LRM routers and with a size of 5x5.In fact, it is the same structure shown in Figure 2. The results showed a significant surface consumption which is explained by the presence of two adaptive routing algorithms for the different routers other than LRM; one for routing a regular packet and the other for routing a multicast packet.Higher consumption is obtained in case of a LRM router which depends on the type of LRM and the number of associated ports.Also, note that for LRM router, we have the presence of three routing algorithms: the first one for routing a unicast packet, the second used for transmitting the multicast packet to the LRM network and the last one for the transmitting the multicast packet in the associated SN.

X. CONCLUSION
The difficulty presented by the multicast service implementation is the need to optimize performance regarding number of packet duplication, the average network latency, bandwidth, and employed resources; In this paper we have proposed a new network structure, based on the Mesh topology, to ensure acceptable performances with suitably added resources.We have also proposed a new routing algorithm called 'last addressed router' for preventing reading the entire packet header by all routers forming the path (here we talk about the Hamiltonian path) which has improved the network performance.Actually, this algorithm is suitable and simple to use for any network that operates with the "path-based" algorithm for the implementation of the multicast service, we have also shown the structure of our router allowing the implementation of this algorithm, and we have also explained how to change the packet header which has not been indicated by other similar works.www.ijacsa.thesai.orgWe tried in this new network structure to reduce the average latency by adding a few extra ports to create a network called LRM network, the results were not as expected (but it is still well performing compared to most other works).We succeeded to allow the multicast packet to cross the smallest possible number of HOPs to reach its destination.Nevertheless sharing LRM network between different routers of each SN did not allow us to have better performance.Our next work has for the main objective to implement this new structure using a new network topology (inspired from Mesh); with this new topology, we expect to get promising results.

Fig. 2 .
Fig. 2. the structures of networks with dimensions of 5x5 established using sets of the sub-networks (SN) www.ijacsa.thesai.org

• 1 :
the port is unavailable • 0 + P: the port is available and we favorite the transmission in his direction • 0 + P (y?): Favors the transmission in the direction of the port if this minimizes the distance along the y-axis • X \ {w}: set of input ports excluding WEST Input Port • X \ {S}: set of input ports excluding SOUTH Input Port • X \ {E}: set of input ports excluding the EAST Input port • X \ {N}: set of input ports excluding the NORTH Input Port • -> Ds : one of the entry ports is transferring data to the direction of the output port Ds • BX: all buffers • BX \ {BDe} -> Ds : one from the set of memories excluding the memory associated with the entry port BDe is transferring data to the output port Ds or waiting for the availability of the output port.
Routing the packet with adaptivelyRouting the packet under the XY algorithm (a) Behavior of the routing algorithm if the packet is carrying a number of two miss-routing compared to XY (NB = 2) (b) Behavior of the routing algorithm if the packet is in a situation header and then sends (ack = 01) to indicate the beginning of the receipt of the rest of the packet.It sends an acknowledgment (ack = 11) to indicate the successful receipt of the entire packet.An acknowledgment (ack = 10) is sent in case of transmission error.

Fig. 10 .
Fig. 10.Transmission of a multicast packet from a non-LRM router to neighboring routers (case TSN = 110)

Fig. 11 .
Fig. 11.Transmission of a multicast packet in LRM network (a) Transmission of multicast packet in a ring network formed by 9 LRM if the shortest route is busy (b) transmission of multicast packet in a ring network formed by 9 LRM if the shortest path is free

Fig. 12 .
Fig. 12. Simultaneous transmission of a multicast packet between an LRM router and neighboring routers belonging to the same SN (TSN=110)

Fig. 14 .
Fig. 14.Worst case scenario of the proposed structure

Fig. 15 .
Fig. 15.Example of a transmission of two multicast packets at a network with size of 6x6

Fig. 17 .
Fig. 17. structure of LRM router that belongs to an SN other than (110)

Fig. 18 .
Fig. 18.Structure of input port reserved only to multicast Service

Fig. 19 .
Fig. 19. the structure of an ordinary input portD.LRM router with TSN (110)This type of router is different from other LRM because of the presence of two additional ports following the EAST and WEST directions; these ports are unidirectional and are used to implement the proposed algorithms applied to the multicast packet.

TABLE I .
THE ASSOCIATED TSR CODE TO EACH SUB-NETWORK

TABLE II .
SIGNAL STATES UNDER DIFFERENT TRANSMISSIONS SCENARIOS • 0: Port is in the available state

TABLE III .
AREA AND FREQUENCY OF OUR DIFFERENT ROUTERS