or not the existing routes can accommodate the
newly coming traffic. If no accommodation problem
exists then the new traffic flows through the network
without any modification in the network. If any
shortcoming was found, the expert agent looks for
agents who can provide more bandwidth. If it was
successful in finding any helping agent, the two
agents issue reconfiguration commands to
reconfigure the network such that new QoS
constraints are met. Otherwise newly coming packet
are all dropped, since the network can not serve
them.
If the expert agent realizes that a reconfiguration
in the network is required and if it is successful in
convincing other agents to reconfigure the network,
a new route emerges which can accommodate the
newly coming traffic.
2.3 Collaboration
The whole routing in the proposed technique is
collaborative; collaboration among agents can be
seen in three different situations. First, when a traffic
type is to be recognized, agents send recognition
messages to their neighbors. Second, while looking
for more bandwidth the expert agent requests its
neighbors to provide it with more bandwidth.
Finally, when the expert and the helping agent want
to reconfigure the network they issue
reconfiguration commands to their neighbors.
2.4 Router's Hardware Core
In this section, implementation details of the cited
router are described. As shown in figure 1, each
input port includes an input buffer and a controller
which are used for temporary storage of packets.
The controller of each input port is responsible for
two tasks:
1. Receiving packets from the link and requesting
the crossbar arbiter for packet injection grant.
Also, controlling the buffer status including
empty and full states.
2. Calculating the sign of the rate at which the
buffer is getting full: positive rate indicates that
the buffer is getting full and negative rate
indicates that the buffer is getting empty. This
sign is compared with the buffer status to
activate congestion signal. Each input port has a
congestion signal through which it informs its
adjacent router whether it is congested or not.
Therefore, the owner of an input port may be
considered a hotspot for its adjacent router and
the adjacent router tries to remove this problem.
Another part of this router is the crossbar which
establishes a connection from an input port to an
output port. Since a crossbar can serve only a single
port at a time, it uses an arbitration for the crossbar
to arbiter among the input ports which are not
empty. Afterward, the crossbar is dedicated to the
granted input port.
Figure 2: Address decoder module.
Address decoder is another part of the router taking
the header of the packet stored in the input buffer. It
determines the routes according to both minimal and
non-minimal path adaptive routing algorithms. The
routing algorithm is based on HAMUM
(Daneshtalab, 2011) which is an adaptive minimal
and non-minimal routing algorithm. Then, the
address decoder selects a route which is less
congested, i.e. if the route resulted from the minimal
path adaptive routing algorithm is congested, the
router does not take this route and instead it uses the
result of the non-minimal path adaptive algorithm.
In order to know if the input buffer status is
congested or not, we should measure the rate at
which the data come into the buffer. To do so the
simple module depicted in Figure 3 is used. As
shown in Figure 3, since routers are locally
synchronous and globally asynchronous, no timing
source is used for reading from and writing to the
buffer. Therefore, to obtain the rate at which the
buffer is getting full, the number of filled buffer
cells at each rising edge of router's internal clock
(N
new
) is compared with that of the previous rising
edge (N
old
), i.e. N
new
>N
old
shows that the buffer is
getting full while N
new
>N
old
indicates that the buffer
is getting empty.
Buffers of this router have two special signals
W_Empty and W_Full. When the number of empty
cells of the buffer is smaller than a threshold value
(75%), W_Full (Warning Full) is activated warning
that most buffer cells are full. Congestion status,
which utilizes the W_Full signal and the buffer
filling rate, is used to inform adjacent routers
regarding the input port congestion condition. When
a packet reaches the input port waits until other
previously arrived packets leave the input buffer.
USING ROUTING AGENTS FOR IMPROVING THE QUALITY OF SERVICE IN GENERAL PURPOSE NETWORKS
611