Network-on-chip jamming control method based on dynamic routing table
Technical field
The invention belongs to network-on-chip jamming control method field, and in particular to a kind of piece online based on dynamic routing table
Network jamming control method.
Background technology
Network-on-chip (network-on-chip, Noc) is logical in original on-chip system (system-on-chip, Soc)
Developed in letter mode, be a kind of brand-new chip-on communication mechanism.Original on-chip system is the mode based on bus transfer,
It is difficult to meet present network transmission demand, therefore is referred from computer network, generates network-on-chip.Based on network-on-chip
(NoC) Global Asynchronous that system can better adapt to be used in following complexity multinuclear on-chip system (SoC) design are local same
The clock mechanisms of step, are significantly better than the on-chip system of former bus mode in performance.2D mesh topology network-on-chips are by m rows
The two-dimentional route matrix that the routing node of × n row is collectively formed, is have one of universal representational network-on-chip citation form.
However, the system based on network-on-chip (NoC) can equally be perplexed by network congestion, based on basic X-Y transmission
Network congestion situation caused by rule has been the bottleneck of network-on-chip development, if can not controlling network congestion well,
Network throughput drastically reduces the increase with network congestion.
At present, the Main Means of 2D mesh topology network-on-chip handling capacities and controlling network congestion condition are improved with congestion
Avoid based on routing algorithm, these existing Congestion Avoidance routing algorithms will generally carry out adjacent in real time before each decision-making
The congestion condition inquiry of node, calculates and filters out the optimal neighbor node of network congestion degree afterwards, further according to result of calculation choosing
Select next-hop and pay address, so as to complete routing procedure.
But scheduling and decision mode of foregoing these the existing routing algorithms seldom using routing table, but mostly just root
The direction of transmission is determined according to the cache occupation amount of oneself, its shortcoming is mainly reflected in:Each message is required for inquiry before paying
The degree of Congestion of adjacent node, which produces inquiry time delay.After inquiring adjacent node degree of Congestion, calculated by Route Selection again
Method so generates calculation delay, and increase routing node itself again according to the congestion angle value comparison operation in different paths
The calculating pressure of processor, also increases the possibility that congestion occurs in the current routing node under computing state.Inquiry
To degree of Congestion be adjacent node region local congestion degree, therefore its decision process cannot embody global consciousness.According to area
Route results produced by the degree of Congestion of domain can not well feed back global situation, therefore, it is solved according to area jamming degree
Local optimum route result be not necessarily global Optimization route result.
The content of the invention
In order to solve existing Congestion Avoidance routing algorithm without the dynamic routing table that can voluntarily update, it is generally every
The congestion condition inquiry of real-time adjacent node will be carried out before decision-making and sieve is compared according to the congestion angle value in different paths
Computing is selected, if existing Congestion Avoidance routing algorithm is directly applied into network-on-chip will cause the data processing of each routing node
The accumulative increase of amount, excessively frequently, the execution cycle of each node of simultaneous is gradually lengthened the interaction read-write between node, congestion
Risk still can synchronously add up and finally break out.Additionally, existing Congestion Avoidance routing algorithm is according to required by its area jamming degree
The technical problem of the not global Optimization route result of the local optimum route result of solution, the present invention provides a kind of based on dynamic road
By the network-on-chip jamming control method of table.
The technical solution adopted for solving the technical problem of the present invention is as follows:
Network-on-chip jamming control method based on dynamic routing table, it is characterised in that:The method comprises the following steps:
Step one:The basic X-Y transmission rules of definition:
It is each on the rectangular array column be made up of m × n routing node on the network-on-chip of 2D mesh topologys
Individual routing node all has the unique coordinate of oneself, if the coordinate value (x, y) of any one routing node A, another is any
The coordinate value (p, q) of routing node K, then when being originated from node A (x, y) and going to node K (p, q), it follows following basis
Rule:
When the abscissa and ordinate of node A (x, y) and K (p, q) are differed, A (x, y) always ignores on ordinate
Difference, and prioritizing selection can make the adjacent node on that transverse axis that the absolute value of abscissa difference reduces as next-hop
When payment address;
When the abscissa of node A (x, y) and K (p, q) is identical but ordinate is differed, A (x, y) always prioritizing selection energy
Payment address when making the adjacent node on that longitudinal axis that the absolute value of ordinate difference reduces as next-hop;
Step 2:2D mesh topology network-on-chips to m × n define the self refresh rule of dynamic routing table, its specific bag
Include following sub-step:
Step 2.1:The self refresh variable of dynamic routing table, including following sub-step are defined respectively:
Step 2.1.1:Define the content of dynamic routing table:
Horizontal every a line entry includes four row columns in dynamic routing table, and the content that each row column is recorded is respectively
Average degree of Congestion Acd, destination address, next hop address and total hop count T1;Every a line entry in dynamic routing table with piece on
A routing node in network is uniquely corresponded to, and the initial value of four row column contents in the row entry is sky;
If current transmission task is intended to that data are reached into another arbitrary target from any one routing node A in network-on-chip
Routing node K, then be referred to as data source nodes, and target routing node K is referred to as into destination node by routing node A;Positioned at route
Node A peripheries and other routing nodes being directly connected with routing node A are calculated separately as the adjacent node X of routing node A(A1)、
Adjacent node X(A2)... adjacent node X(An)(n≤4, n is natural number);
Define destination address:Coordinate address (K) of the target routing node K in network-on-chip is institute in dynamic routing table
The destination address to be recorded;
Define next hop address:
In multiple adjacent nodes of routing node A, routing node A prepare to pay data that be determined
Adjacent node X(An)Its coordinate address (X in network-on-chipAn) it is the next hop address to be recorded in dynamic routing table;
Define total hop count T1:Actual leapfrog number needed for going to target routing node K from routing node A is counted as T1;
Define average degree of Congestion:
The average degree of Congestion Acd of target routing node K is gone in definition from routing node A(A-K)Expression formula be:
In formula (2), routing node A current full state cache numerical value is counted as b(A), it itself can be tried to achieve by routing node A;
Total caching numerical value of routing node A is counted as c(A), it itself can be tried to achieve by routing node A;
The increasing of routing node A walks total hop count T2=T1+1;
The adjacent node X of routing node A(An)Current described average degree of Congestion numerical value is counted as Acd(XAn), it can be from neighbour
Nearly nodes X(An)Obtained in the route updating packet sent;
Step 2.1.2:Define route updating packet:
The route updating packet of its own, the horizontal every a line entry of route updating packet are defined for each routing node
Include three row columns, the current average degree of Congestion Acd of the content that each row column is recorded respectively routing node, destination address
(K) and the total hop count T of step is increased2;
Each route updating packet is uniquely corresponding with a routing node A described in step 2.1.1, routing node A
Three item datas that the content of the dynamic routing table according to its own route in message A to it are updated;
Step 2.1.3:Define the maximum distance L that network-on-chip can be transmitted:
If the rectangular array being made up of m × n routing node of the network-on-chip of 2D mesh topologys, then fixed
Adopted L=2 × (m+n) ... (3);
Step 2.1.4:Define routing update request clock:
For each routing node in network-on-chip defines an independent built-in self refresh clock timer
Timer;
Step 2.1.5:For each routing node in network-on-chip defines four this nodes to its own neighbouring section
Point sends the request number of times counter Count for updating request, four of any one routing node A as described in step 2.1.1
Request number of times counter Count(An)(n≤4, n is natural number) respectively with four adjacent node X of routing node A(An)(n≤
4, n is natural number) correspond;
Step 2.1.6:Dynamic routing table described in step 2.1.1 is initialized in a static manner:
Respectively by each adjacent node X of any one routing node A described in step 2.1.1(An)(n≤4, n is certainly
So count) a routing node A is regarded as starting point and with the adjacent node X of the determination(An)It is the independent transmission paths of terminal,
So as to create the new adjacent node route entry of four rows in the dynamic routing table of the routing node A;It is described neighbouring per a line
Node-routing entry with an adjacent node X(An)(n≤4, n is natural number) is uniquely corresponding;
To the routing node A in a static manner to foregoing four rows adjacent node route entry in its own dynamic routing table
Initialized respectively, by the adjacent node X with unique corresponding that determination of a line adjacent node route entry(An)'s
Network coordinate address (XAn) (n≤4, n is natural number) be respectively filled in next-hop ground in the adjacent node route entry of new establishment
Location row column and destination address row column;Total hop count in a line adjacent node route entry is set to 1, and should
Average degree of Congestion in row adjacent node route entry is set to 0;
Step 2.2:The average degree of Congestion for defining any one routing node A as described in step 2.1.1 updates rule, its
Specifically include following sub-step:
Step 2.2.1:Obtain each adjacent node X as described in step 2.1.1 respectively as routing node A(An)(n≤
4, n by natural number) route updating packet each sent;
Step 2.2.2:Routing node A judges respectively, each adjacent node X as described in step 2.2.1(An)Route
In renewal message, if include by way of adjacent node X(An)And reach target routing node K as described in step 2.1.1
A line entry or multirow entry;If not including, routing node A is directly by the adjacent node X(An)In route updating packet
A line or multirow entry increase newly and add the routing node A dynamic routing tables of itself, and perform step 2.3;If comprising described
A line entry or multirow entry, then directly perform step 2.2.3;
Step 2.2.3:Routing node A reads the current total caching c of routing node A from the processor of itself(A)With full shape
State caches b(A)Value;
Step 2.2.4:Obtained respectively using the adjacent node as data source nodes simultaneously from the adjacent node message
When going to identical destination node K, this is adjacent to routing node X(An)What is recorded is current:Average degree of Congestion numerical value Acd(XAn-K)、
Destination address (KXAn) and increase the total hop count T of step2(XAn);
Step 2.2.5:By routing node A by the full state cache value b of itself(A), total cache size c(A), total hop count T1, increase
Walk total hop count T2And the adjacent node X sent by route updating packet(An)Average degree of Congestion numerical value Acd(XAn-K)Generation respectively
In entering formula (2), and calculate the new average degree of Congestion Acd for trying to achieve routing node A(A-K) it is new;
Step 2.2.6:Judge Acd(A-K) it is newWhether Acd is more than or equal to(A-K) it is former;If so, performing step 2.2.8;If it is not, holding
Row step 2.2.7;
Step 2.2.7:Routing node A carries out self refresh to the dynamic routing table of itself, specifically includes:
Keep destination address (K) constant;
Total hop count T is walked with the increasing of routing node A2Currency substitute total hop count T1Currency;
The average degree of Congestion Acd tried to achieve with step 2.2.5(A-K) it is newReplace script institute in the dynamic routing table of routing node A
The average degree of Congestion Acd for recording(A-K) it is former;Then step 2.3 is performed;
Step 2.2.8:Routing node A does not update the dynamic routing table of itself, directly performs step 2.3;
Step 2.3:Any one routing node A as described in step 2.1.1 judges its own as described in step 2.1.4
Whether the present clock period of self refresh clock timer Timer is over, if routing node A present clock periods of itself
Not yet terminate then further to perform step 2.4, step 2.5 is performed if present clock period is over;
Step 2.4:Routing update request rule is performed, it specifically includes following sub-step:
Step 2.4.1:Any one routing node A as described in step 2.1.1 judges, as described in step 2.1.4 oneself
Within one current clock cycle of refresh clock timer, whether routing node A have received adjacent node X respectively(A1), it is adjacent
Nearly nodes X(A2), adjacent node X (A3) and adjacent node X(A4)Amount to four adjacent node X(An)(n≤4, n is natural number)
The whole each sent amounts to four route updating packets;If failing to receive all four route updating packets, step is performed
Rapid 2.4.2:If having received all four route updating packets, step 2.4.8 is performed;
Step 2.4.2:Routing node A is to the adjacent node X for failing to send in time route updating packet(An)Send route more
New request;
Step 2.4.3:Routing node A is transferred and is failed the adjacent node X for sending route updating packet in time(An)Corresponding
Request number of times counter Count(An), and its current count value is increased by 1;
Step 2.4.4:Routing node A is respectively to each the request number of times counter as described in step 2.1.5
Count(An)Judged, step 2.4.5 is performed if its current count value is not more than 3, if its current count value is more than 3
Then perform step 2.4.6;
Step 2.4.5:Routing node A continues waiting for failing as described in step 2.4.2 and sends route updating packet in time
Adjacent node X(An)Route updating packet is sent to routing node A, until routing node A is re-executed after receiving the message
Step 2.4.1;
Step 2.4.6:Routing node A will fail to send road in time in the dynamic routing table of itself described in step 2.4.2
By the adjacent node X of renewal message(An)It is defined as malfunctioning node, and terminates along the transmission task of the malfunctioning node;
Step 2.4.7:Routing node A is searched and malfunctioning node described in step 2.4.6 from the dynamic routing table of its own
Corresponding every a line entry, and by the every a line comprising foregoing malfunctioning node information from dynamic routing table Delete Entire Row,
With so that total data is no longer participate in the computing of any subsequent step in this action state routing table;
Step 2.4.8:Reset the self refresh clock timer as described in step 2.1.4 of itself in advance as routing node A
Timer;And by remaining whole non-faulting adjacent node X(An)Corresponding request number of times counter Count(An)It is synchronous to reset to
0;
Step 2.5:Self refresh clock timer Timer described in the step 2.1.4 current clock cycle voluntarily terminates weight
Put, if or timer Timer be reset during as described in step 2.4.8, or, it is current such as step 2.1.1
Described any one routing node A have received its adjacent node X as described in step 2.4.2(An)The routing update for sending
Request, when any one generation in above-mentioned three kinds of situations, routing node A is a by its current dynamic routing table generation
Route updating packet as described in step 2.1.2;
Step 2.6:Any one routing node A as described in step 2.1.1 generates it according to mode described in step 2.5
Route updating packet synchronized transmission to routing node A as described in step 2.4.8 whole non-faulting adjacent node X(An);
Step 3:For each routing node of network-on-chip sets one dedicated in storage dynamic routing table
The self refresh variable of the dynamic routing table described in step 2.1 is simultaneously stored in the dynamic of each routing node respectively for portion's memory space
In routing table memory space;
Step 4:The self refresh rule of dynamic routing table described in step 2.2 to step 2.6 is respectively stored in step 3 institute
In each routing node processor memory of itself stated;
Step 5:The startup and initialization of network-on-chip:
When network-on-chip starts and comes into operation, network-on-chip each routing node by synchronous initiation, after initialization
Each routing node tried to achieve and stored the maximum distance L values that a unified network-on-chip can be transmitted, each route section
The built-in self refresh clock timer Timer of point does not start timing, also, the request number of times counting as described in step 2.4.3
Device Count(An)0 is set to, the every numerical value in the route updating packet of each routing node is sky;
Step 6:When network-on-chip starts first data to be reached into another arbitrary target road from any one routing node A
By node K transmission task when, the whole nodes in network-on-chip are synchronously activated, during the built-in self refresh of each routing node
The time value that clock timer Timer starts as set by step 2.1.4 starts countdown;
Step 7:By current data source node, i.e.,:Routing node A, the processor of its own be first carried out step 2.2 to
The self refresh rule of dynamic routing table described in step 2.6, and try to achieve itself current dynamic routing table;
Step 8:Routing node A judgements, if the non-faulting adjacent node X of a certain determination of itself(An)(n≤4, n
It is natural number) as next hop address, if then being originated by way of non-faulting adjacent node X from routing node A(An)And go to target
During node K, described total hop count T in the current dynamic routing tables of routing node A1Whether more than passing described in step 5
Defeated maximum distance L values, if total hop count T1More than the maximum distance L that can be transmitted, then step 9 is performed, otherwise perform step 10
One;
Step 9:Routing node A is in the dynamic routing table of itself by the current non-faulting adjacent node described in step 8
X(An)It is defined as the unreachable node in path, and terminates along the transmission task of the malfunctioning node;Meanwhile, routing node A from its own
Dynamic routing table in search a line entry corresponding with the unreachable node in the path, and by the row entry Delete Entire Row so that
Obtain the computing that total data in this action state routing table is no longer participate in any subsequent step;
Step 10:The current transmission task of the unreachable node in path as described in routing node A terminations along step 9 is laid equal stress on
It is new to perform step 8;
Step 11:Retrieved from the dynamic routing table of itself by routing node A, in the dynamic routing table of its own whether
There is the non-faulting adjacent node X that go to destination node K and will determine described in step 8(An)(n≤4, n is natural number) is made
It is a line entry of next hop address, if in the presence of the row entry, performing step 12, otherwise performs step 13;
Step 12:As routing node A directly by step 10 described in that a line entry corresponding to the neighbouring section of non-faulting
Point X(An)It is defined as next adjacent node X that this secondary data will pay(An), and it is next to send current data packet to this
Adjacent node, then performs step 14;
Step 13:X-Y is transferred data to as routing node A according to the X-Y transmission rules on basis described in step one to advise
Then the next adjacent node on identified path, then performs step 14;
Step 14:Next adjacent node as described in step 12 or step 13, it is being connected to current data
After transmission task, start the data source nodes that itself will be regarded as described in step 7, its as brand-new routing node A ' start by
According to the process that step 6 to step 12 is performed with initial routing node A exact same ways.
The beneficial effects of the invention are as follows:This network-on-chip jamming control method uses dynamic routing in network-on-chip first
Table, can dynamically update the current optimal transmitting path with decision-making itself according to the present situation of other nodes.What it was used
Dynamic routing table can preferably embody global consciousness, dynamic renewal and maintenance by each node to itself routing table,
Make the interior current best path scheme for always preserving other any destination nodes of each dynamic routing table, so as to avoid working as
Preceding relative congestion routing node, alleviates the Congestion Level SPCC of its network-on-chip, is finally reached the effect of congestion control.This method it is dynamic
Every a line entry of state routing table is ultimately formed and the corresponding current global congestion for recording any current task destination node
Minimum optimal path is spent, is easy to quickly read and use, significantly reduce the repetitive operation time.Using every fixing 30 seconds
Cycle updates routing table and non-frequently interacts read-write operation so that both maintain dynamic routing table between any adjacent node
Renewal in time, greatly reduce data amount of calculation again, shorten the time that computing takes, alleviate to a great extent and limit
The generation of network congestion, improves the data-handling capacity and handling capacity of whole network-on-chip.
Brief description of the drawings
Fig. 1 is the general flow chart of network-on-chip jamming control method of the present invention based on dynamic routing table;
Fig. 2 is the schematic diagram of the first transmission task of network-on-chip of the present invention;
Fig. 3 is the schematic diagram of dynamic routing table of the present invention;
Fig. 4 is the schematic diagram of route updating packet of the present invention:
Fig. 5 is itself moving for the routing node A after the present invention is initialized respectively to four row adjacent node route entrys
State routing table schematic diagram.
Specific embodiment
The present invention is described in further details below in conjunction with the accompanying drawings.
As shown in Figures 1 to 5, network-on-chip jamming control method of the present invention based on dynamic routing table, including following step
Suddenly:
Step one:The basic X-Y transmission rules of definition:
It is each on the rectangular array column be made up of m × n routing node on the network-on-chip of 2D mesh topologys
Individual routing node all has the unique coordinate of oneself, if the coordinate value (x, y) of any one routing node A, another is any
The coordinate value (p, q) of routing node K, then when being originated from node A (x, y) and going to node K (p, q), it follows following basis
Rule:
When the abscissa and ordinate of node A (x, y) and K (p, q) are differed, A (x, y) always ignores on ordinate
Difference, and prioritizing selection can make the adjacent node on that transverse axis that the absolute value of abscissa difference reduces as next-hop
When payment address.
When the abscissa of node A (x, y) and K (p, q) is identical but ordinate is differed, A (x, y) always prioritizing selection energy
Payment address when making the adjacent node on that longitudinal axis that the absolute value of ordinate difference reduces as next-hop.
Step 2:2D mesh topology network-on-chips to m × n define the self refresh rule of dynamic routing table, its specific bag
Include following sub-step:
Step 2.1:The self refresh variable of dynamic routing table, including following sub-step are defined respectively:
Step 2.1.1:Define the content of dynamic routing table:
Horizontal every a line entry includes four row columns in dynamic routing table, and the content that each row column is recorded is respectively
Average degree of Congestion Acd, destination address, next hop address and total hop count T1;Every a line entry in dynamic routing table with piece on
A routing node in network is uniquely corresponded to, and the initial value of four row column contents in the row entry is sky.
If current transmission task is intended to that data are reached into another arbitrary target from any one routing node A in network-on-chip
Routing node K, then be referred to as data source nodes, and target routing node K is referred to as into destination node by routing node A;Positioned at route
Node A peripheries and other routing nodes being directly connected with routing node A are calculated separately as the adjacent node X of routing node A(A1)、
Adjacent node X(A2)... adjacent node X(An)(n≤4, n is natural number).
Define destination address:Coordinate address (K) of the target routing node K in network-on-chip is institute in dynamic routing table
The destination address to be recorded.
Define next hop address:
In multiple adjacent nodes of routing node A, routing node A prepare to pay data that be determined
Adjacent node X(An)Its coordinate address (X in network-on-chipAn) it is the next hop address to be recorded in dynamic routing table.
Define total hop count T1:Actual leapfrog number needed for going to target routing node K from routing node A is counted as T1。
Define average degree of Congestion:
The average degree of Congestion Acd of target routing node K is gone in definition from routing node A(A-K)Expression formula be:
In formula (2), routing node A current full state cache numerical value is counted as b(A), it itself can be tried to achieve by routing node A;
Total caching numerical value of routing node A is counted as c(A), it itself can be tried to achieve by routing node A;
The increasing of routing node A walks total hop count T2=T1+1。
The adjacent node X of routing node A(An)Current described average degree of Congestion numerical value is counted as Acd(XAn), it can be from neighbour
Nearly nodes X(An)Obtained in the route updating packet sent.
Step 2.1.2:Define route updating packet:
The route updating packet of its own, the horizontal every a line entry of route updating packet are defined for each routing node
Include three row columns, the current average degree of Congestion Acd of the content that each row column is recorded respectively routing node, destination address
(K) and the total hop count T of step is increased2;
Each route updating packet is uniquely corresponding with a routing node A described in step 2.1.1, routing node A
Three item datas that the content of the dynamic routing table according to its own route in message A to it are updated;
Step 2.1.3:Define the maximum distance L that network-on-chip can be transmitted:
If the rectangular array being made up of m × n routing node of the network-on-chip of 2D mesh topologys, then fixed
Adopted L=2 × (m+n) ... (3);
Step 2.1.4:Define routing update request clock:
For each routing node in network-on-chip defines an independent built-in self refresh clock timer
Timer。
Step 2.1.5:For each routing node in network-on-chip defines four this nodes to its own neighbouring section
Point sends the request number of times counter Count for updating request, four of any one routing node A as described in step 2.1.1
Request number of times counter Count(An)(n≤4, n is natural number) respectively with four adjacent node X of routing node A(An)(n≤
4, n is natural number) correspond.
Step 2.1.6:Dynamic routing table described in step 2.1.1 is initialized in a static manner:
Respectively by each adjacent node X of any one routing node A described in step 2.1.1(An)(n≤4, n is certainly
So count) a routing node A is regarded as starting point and with the adjacent node X of the determination(An)It is the independent transmission paths of terminal,
So as to create the new adjacent node route entry of four rows in the dynamic routing table of the routing node A;It is described neighbouring per a line
Node-routing entry with an adjacent node X(An)(n≤4, n is natural number) is uniquely corresponding.
To the routing node A in a static manner to foregoing four rows adjacent node route entry in its own dynamic routing table
Initialized respectively, by the adjacent node X with unique corresponding that determination of a line adjacent node route entry(An)'s
Network coordinate address (XAn) (n≤4, n is natural number) be respectively filled in next-hop ground in the adjacent node route entry of new establishment
Location row column and destination address row column;Total hop count in a line adjacent node route entry is set to 1, and should
Average degree of Congestion in row adjacent node route entry is set to 0.
Step 2.2:The average degree of Congestion for defining any one routing node A as described in step 2.1.1 updates rule, its
Specifically include following sub-step.
Step 2.2.1:Obtain each adjacent node X as described in step 2.1.1 respectively as routing node A(An)(n≤
4, n by natural number) route updating packet each sent.
Step 2.2.2:Routing node A judges respectively, each adjacent node X as described in step 2.2.1(An)Route
In renewal message, if include by way of adjacent node X(An)And reach target routing node K as described in step 2.1.1
A line entry or multirow entry;If not including, routing node A is directly by the adjacent node X(An)In route updating packet
A line or multirow entry increase newly and add the routing node A dynamic routing tables of itself, and perform step 2.3;If comprising described
A line entry or multirow entry, then directly perform step 2.2.3.
Step 2.2.3:Routing node A reads the current total caching c of routing node A from the processor of itself(A)With full shape
State caches b(A)Value.
Step 2.2.4:Obtained respectively using the adjacent node as data source nodes simultaneously from the adjacent node message
When going to identical destination node K, this is adjacent to routing node X(An)What is recorded is current:Average degree of Congestion numerical value Acd(XAn-K)、
Destination address (KXAn) and increase the total hop count T of step2(XAn)。
Step 2.2.5:By routing node A by the full state cache value b of itself(A), total cache size c(A), total hop count T1, increase
Walk total hop count T2And the adjacent node X sent by route updating packet(An)Average degree of Congestion numerical value Acd(XAn-K)Generation respectively
In entering formula (2), and calculate the new average degree of Congestion Acd for trying to achieve routing node A(A-K) it is new。
Step 2.2.6:Judge Acd(A-K) it is newWhether Acd is more than or equal to(A-K) it is former;If so, performing step 2.2.8;If it is not, holding
Row step 2.2.7;
Step 2.2.7:Routing node A carries out self refresh to the dynamic routing table of itself, specifically includes:
Keep destination address (K) constant;
Total hop count T is walked with the increasing of routing node A2Currency substitute total hop count T1Currency.
The average degree of Congestion Acd tried to achieve with step 2.2.5(A-K) it is newReplace script institute in the dynamic routing table of routing node A
The average degree of Congestion Acd for recording(A-K) it is former;Then step 2.3 is performed.
Step 2.2.8:Routing node A does not update the dynamic routing table of itself, directly performs step 2.3;
Step 2.3:Any one routing node A as described in step 2.1.1 judges its own as described in step 2.1.4
Whether the present clock period of self refresh clock timer Timer is over, if routing node A present clock periods of itself
Not yet terminate then further to perform step 2.4, step 2.5 is performed if present clock period is over.
Step 2.4:Routing update request rule is performed, it specifically includes following sub-step:
Step 2.4.1:Any one routing node A as described in step 2.1.1 judges, as described in step 2.1.4 oneself
Within one current clock cycle of refresh clock timer, whether routing node A have received adjacent node X respectively(A1), it is adjacent
Nearly nodes X(A2), adjacent node X (A3) and adjacent node X(A4)Amount to four adjacent node X(An)(n≤4, n is natural number)
The whole each sent amounts to four route updating packets;If failing to receive all four route updating packets, step is performed
Rapid 2.4.2:If having received all four route updating packets, step 2.4.8 is performed.
Step 2.4.2:Routing node A is to the adjacent node X for failing to send in time route updating packet(An)Send route more
New request.
Step 2.4.3:Routing node A is transferred and is failed the adjacent node X for sending route updating packet in time(An)Corresponding
Request number of times counter Count(An), and its current count value is increased by 1.
Step 2.4.4:Routing node A is respectively to each the request number of times counter as described in step 2.1.5
Count(An)Judged, step 2.4.5 is performed if its current count value is not more than 3, if its current count value is more than 3
Then perform step 2.4.6.
Step 2.4.5:Routing node A continues waiting for failing as described in step 2.4.2 and sends route updating packet in time
Adjacent node X(An)To routing node A send route updating packet, until routing node A within the current clock cycle again
Step 2.4.1 is re-executed after receiving the message.
Step 2.4.6:Routing node A will fail to send road in time in the dynamic routing table of itself described in step 2.4.2
By the adjacent node X of renewal message(An)It is defined as malfunctioning node, and terminates along the transmission task of the malfunctioning node.
Step 2.4.7:Routing node A is searched and malfunctioning node described in step 2.4.6 from the dynamic routing table of its own
Corresponding every a line entry, and by the every a line comprising foregoing malfunctioning node information from dynamic routing table Delete Entire Row,
With so that total data is no longer participate in the computing of any subsequent step in this action state routing table.Due to foregoing malfunctioning node meeting
Send route updating packet without normal direction other nodes because of the transient congestion of itself, if therefore current failure node in subsequent process
Middle congestion relief or failture evacuation, routing node A will again receive the route updating packet that the reply malfunctioning node is sent,
The route message information of the reply malfunctioning node can again be increased newly and insert the routing table of itself by routing node A again when the time comes
It is interior.
Step 2.4.8:Reset the self refresh clock timer as described in step 2.1.4 of itself in advance as routing node A
Timer;And by remaining whole non-faulting adjacent node X(An)Corresponding request number of times counter Count(An)It is synchronous to reset to
0。
Step 2.5:Self refresh clock timer Timer described in the step 2.1.4 current clock cycle voluntarily terminates weight
Put, if or timer Timer be reset during as described in step 2.4.8, or, it is current such as step 2.1.1
Described any one routing node A have received its adjacent node X as described in step 2.4.2(An)The routing update for sending
Request, when any one generation in above-mentioned three kinds of situations, routing node A is a by its current dynamic routing table generation
Route updating packet as described in step 2.1.2.
Step 2.6:Any one routing node A as described in step 2.1.1 generates it according to mode described in step 2.5
Route updating packet synchronized transmission to routing node A as described in step 2.4.8 whole non-faulting adjacent node X(An)。
Step 3:For each routing node of network-on-chip sets one dedicated in storage dynamic routing table
The self refresh variable of the dynamic routing table described in step 2.1 is simultaneously stored in the dynamic of each routing node respectively for portion's memory space
In routing table memory space;
Step 4:The self refresh rule of dynamic routing table described in step 2.2 to step 2.6 is respectively stored in step 3 institute
In each routing node processor memory of itself stated.
Step 5:The startup and initialization of network-on-chip:
When network-on-chip starts and comes into operation, network-on-chip each routing node by synchronous initiation, after initialization
Each routing node tried to achieve and stored the maximum distance L values that a unified network-on-chip can be transmitted, each route section
The built-in self refresh clock timer Timer of point does not start timing, also, the request number of times counting as described in step 2.4.3
Device Count(An)0 is set to, the every numerical value in the route updating packet of each routing node is sky;Each routing node
Dynamic routing table state then after being initialized described in step 2.1.6.
Step 6:When network-on-chip starts first data to be reached into another arbitrary target road from any one routing node A
By node K transmission task when, the whole nodes in network-on-chip are synchronously activated, during the built-in self refresh of each routing node
The time value that clock timer Timer starts as set by step 2.1.4 starts countdown.
Step 7:By current data source node, i.e.,:Routing node A, the processor of its own be first carried out step 2.2 to
The self refresh rule of dynamic routing table described in step 2.6, and try to achieve itself current dynamic routing table.
Step 8:Routing node A judgements, if the non-faulting adjacent node X of a certain determination of itself(An)(n≤4, n
It is natural number) as next hop address, if then being originated by way of non-faulting adjacent node X from routing node A(An)And go to target
During node K, described total hop count T in the current dynamic routing tables of routing node A1Whether more than passing described in step 5
Defeated maximum distance L values, if total hop count T1More than the maximum distance L that can be transmitted, then step 9 is performed, otherwise perform step 10
One.
Step 9:Routing node A is in the dynamic routing table of itself by the current non-faulting adjacent node described in step 8
X(An)It is defined as the unreachable node in path, and terminates along the transmission task of the malfunctioning node;Meanwhile, routing node A from its own
Dynamic routing table in search a line entry corresponding with the unreachable node in the path, and by the row entry Delete Entire Row so that
Obtain the computing that total data in this action state routing table is no longer participate in any subsequent step.
Step 10:The current transmission task of the unreachable node in path as described in routing node A terminations along step 9 is laid equal stress on
It is new to perform step 8.
Step 11:Retrieved from the dynamic routing table of itself by routing node A, in the dynamic routing table of its own whether
There is the non-faulting adjacent node X that go to destination node K and will determine described in step 8(An)(n≤4, n is natural number) is made
It is a line entry of next hop address, if in the presence of the row entry, performing step 12, otherwise performs step 13.
Step 12:As routing node A directly by step 10 described in that a line entry corresponding to the neighbouring section of non-faulting
Point X(An)It is defined as next adjacent node X that this secondary data will pay(An), and it is next to send current data packet to this
Adjacent node, then performs step 14.
Step 13:X-Y is transferred data to as routing node A according to the X-Y transmission rules on basis described in step one to advise
Then the next adjacent node on identified path, then performs step 14.
Step 14:Next adjacent node as described in step 12 or step 13, it is being connected to current data
After transmission task, start the data source nodes that itself will be regarded as described in step 7, its as brand-new routing node A ' start by
According to the process that step 6 to step 12 is performed with initial routing node A exact same ways.
During concrete application network-on-chip jamming control method based on dynamic routing table of the invention, by step 2.1.4 institutes
The self refresh clock timer Timer for stating is set to 30 seconds.After network-on-chip initialization, whole nodes on network all in
State after being initialized described in step 2.1.6, only maintains each neighbouring route of itself in their dynamic routing table
Each node in information, also, network-on-chip is just synchronously activated after first transmission task starts, and is started according to respective
Clock cycle to adjacent node send route updating packet.
Occur successively in network-on-chip along with more brand-new transmission tasks, the routing node in regional area starts
There is different degrees of congestion, this will cause different nodes that the self refresh clock timing of itself is reset by different Congestion Level SPCCs
Device Timer, finally causes that the self-refresh period of each node is separate without resynchronisation.Each routing node is appointed in transmission
All play the part of the source node of transmission data and two roles of adjacent node of other nodes in business simultaneously.
It is dynamic road that routing table is applied to this method the congestion control field of network-on-chip, and the routing table for being used
By table, the current optimal transmitting path with decision-making itself can be dynamically updated according to the present situation of other nodes, by each
Dynamic renewal and maintenance of the individual node to itself routing table, make always to preserve other in each dynamic routing table any
The current best path scheme of destination node, so as to avoid current relative congestion routing node, alleviates the congestion of its network-on-chip
Degree, is finally reached the effect of congestion control.
Each row entry sum in each routing node dynamic routing table of itself in network-on-chip can be with new
Destination address occurs and increases, and finally, occurs along with more brand-new transmission tasks are random successively in network-on-chip, each
It is final in the dynamic routing table of individual routing node all to set up with from as data source nodes and with remaining any one node
Used as the full routing table of destination node, the full routing table includes and other all nodes one-to-one corresponding in network-on-chip
Multirow entry, due to the next hop address in each row entry both correspond to by current congestion degree minimum value screen after it is optimal
Path, therefore it corresponds to the optimal road of the current global congestion degree minimum for recording the task object node per a line entry
Footpath.
From formula (2), average degree of Congestion numerical value is counted as Acd(XAn)It is also the neighbouring section that destination node is gone to via other
The average congestion angle value iterative calculation of point is tried to achieve, therefore, any one average degree of Congestion numerical value is counted as Acd(XAn)Inherently
The current average congestion number of degrees optimal solution gone on destination node path is reflected, by Acd(XAn)Calculated
Acd(A-K)It is also a value for just reacting global congestion, its global meaning for having fully demonstrated this network-on-chip jamming control method
Know, can most efficiently decision-making goes out the global optimal path of current transmission task.
Routing table is updated every the cycle for fixing 30 seconds and read-write operation is non-frequently interacted so that any adjacent node
Between both maintained the renewal of dynamic routing table in time, greatly reduce data amount of calculation again, shorten the time that computing takes,
Substantially alleviate and limit the generation of network congestion, improve the data-handling capacity of whole network-on-chip and handle up
Amount.