06.06.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!