abstract models of noc-based mpsocs for design space exploration
abstract models of noc-based mpsocs for design space exploration
abstract models of noc-based mpsocs for design space exploration
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>for</strong>!the!sake!<strong>of</strong>!simplicity!and!efficiency.!However,!in!the!<strong>abstract</strong>!model,!such!procedures!must!be!<br />
implemented!separately!in!order!to!simplify!the!<strong>design</strong>!<strong>space</strong>!<strong>exploration</strong>!(e.g.!to!investigate!the!<br />
positive!and!negative!impacts!<strong>of</strong>!using!adaptive!routing).!<br />
!<br />
!<br />
analyze<br />
interactions<br />
NoC RTL<br />
model<br />
actor-oriented<br />
NoC model<br />
Optimized NoC<br />
RTL model<br />
complex testbenches<br />
debbugging / analysis tools<br />
<strong>design</strong> <strong>space</strong> <strong>exploration</strong>, validation<br />
Figure!17!!S!Adopted!approach!<strong>for</strong>!NoC!modeling!and!<strong>design</strong>!<strong>space</strong>!<strong>exploration</strong>.!<br />
Additionally,! the! specification! <strong>of</strong>! the! system! in! interactions! can! <strong>abstract</strong>! the! notion! <strong>of</strong>!<br />
discrete! time! that! exists! in! the! RTL! model,! providing! just! a! partial! order! <strong>of</strong>! the! communication!<br />
among!model!components.!Such!<strong>abstract</strong>!model!can!be!used!to!show!the!system!functionality!or!<br />
be! annotated! with! actual! timing! in<strong>for</strong>mation! so! that! a! more! accurate! timing! behavior! can! be!<br />
reflected.!!<br />
In! this! context,! two! UML! sequence! diagrams,! which! describe! the! interactions! <strong>of</strong>! the!<br />
HERMES!router!components,!were!defined!as!illustrated!in!Figure!18.!The!UML!sequence!diagram,!<br />
shown! in! Figure! 18! (a),! refers! to! the! arbitration! request! by! a! particular! input! buffer! and! the!<br />
establishment!<strong>of</strong>!a!connection!between!it!and!an!output!port.!!<br />
InputBuffer:b1<br />
requestArbitration(flit)<br />
alt<br />
1<br />
8<br />
[free]<br />
arbitration granted<br />
[else]<br />
arbitration NOT granted<br />
9<br />
Controller<br />
2<br />
requestArbitration(flit)<br />
5<br />
7<br />
Arbiter Router<br />
OutputPort<br />
3<br />
requestRouting(flit)<br />
4<br />
isFree()<br />
boolean:free<br />
setFree(false)<br />
6<br />
InputBuffer:b1<br />
alt<br />
sendFlit(flit)<br />
response<br />
[response = true]<br />
eraseFlit(flit)<br />
Controller<br />
alt<br />
sendFlit(flit)<br />
response<br />
[response = true AND flit IS sizeFlit]<br />
getPacketSize()<br />
[response = true AND flit IS payloadFlit]<br />
alt<br />
[packetSize = 0]<br />
decreasePacketSize()<br />
setFree(true)<br />
Output Port<br />
sendFlit(flit)<br />
InputBuffer:b2<br />
(a)! (b)!<br />
Figure!18!S!UML!sequence!diagrams!depicting!interactions!between!components!<strong>of</strong>!the!HERMES!NoC.!<br />
Figure!extended!from![IND08].!<br />
Initially,!the!input!buffer!sends!the!packet!header!to!the!routing!controller!(interaction!1).!<br />
The!routing!controller!asks!the!arbiter!to!choose!one!<strong>of</strong>!the!possible!incoming!requests!that!can!<br />
1<br />
2<br />
4<br />
5<br />
3<br />
51