one of the major challenges in the design and
play

One of the major challenges in the design and verification of - PowerPoint PPT Presentation

One of the major challenges in the design and verification of manycore systems is cache coherency. In bus-based architectures, this is a well-studied problem. When replacing the bus by a communication network, however, new problems arise.


  1. One of the major challenges in the design and verification of manycore systems is cache coherency. In bus-based architectures, this is a well-studied problem. When replacing the bus by a communication network, however, new problems arise. Cross-layer deadlocks can occur even when the protocol and the network are both deadlock-free when considered in isolation. To counter this problem, we propose a methodology for deriving cross-layer invariants. These invariants relate the state of the protocols run by the cores to the state of the communication network. We show how they can be used to prove the absence of cross-layer deadlocks. Our approach is generally applicable and shows promising scalability.

  2. CROSS-LAYER INVARIANTS FOR NOCS Freek Verbeek, Pooria Mohammadi Yaghini, Ashkan Eghbal and Nader Bagherzadeh

  3. Cache Coherence & Singlecore

  4. Cache Coherence & Multicore edacafe.com

  5. ✖ = req u = ack

  6. ✖ ✖ = req u = ack

  7. ✖ = req u = ack

  8. u ✖ = req u = ack

  9. ✖ = req u = ack

  10. Deadlock? ✖ = req u = ack

  11. Deadlock? ✖ ✖ u u ✖ = req u = ack

  12. Example: cross-layer deadlock

  13. Example: cross-layer deadlock

  14. Example: cross-layer deadlock get

  15. Example: cross-layer deadlock

  16. Example: cross-layer deadlock inv

  17. Example: cross-layer deadlock put inv

  18. Example: cross-layer deadlock inv ack

  19. Deadlock Detection 1. Model protocol + interconnect 2. Overapproximate deadlocks 3. Use invariants to rule out unreachable deadlocks 4. Use SMT solver to prove deadlock-freedom or find possible deadlock

  20. 1.) Overapproximate deadlocks ∨ s 0 ∧ # q 0 = q 0 . size ∧ t 1 ∧ # q 1 = q 1 . size s 1 ∧ # q 1 = 0 ∧ t 0 ∧ # q 0 = 0 ∧

  21. 2.) Derive invariants

  22. 3.) Use SMT solver ∨ s 0 ∧ # q 0 = q 0 . size ∧ t 1 ∧ # q 1 = q 1 . size s 1 ∧ # q 1 = 0 ∧ t 0 ∧ # q 0 = 0 ∧ ∨

  23. Case Study: 2D mesh, XY routing, MI cache coherence protocol Interconnect:

  24. Case Study: 2D mesh, XY routing, MI cache coherence protocol Protocol: L2 caches Directory

  25. Case Study: 2D mesh, XY routing, MI cache coherence protocol Router MI Cache Core Router MI Directory Core

  26. Experimental Results

  27. Case Study: 2D torus with ring, XY routing, snoopy cache coherence protocol Interconnect: Protocol:

  28. Experimental Results

  29. Deadlock Detection 1. Model protocol + interconnect 2. Overapproximate deadlocks 3. Use invariants to rule out unreachable deadlocks 4. Use SMT solver to prove deadlock-freedom or find possible deadlock

  30. Modelling … … the interconnect ... the protocol • xMAS • IO automata • graphical language • events and transformations • formal semantics: • formal semantics: trdy/irdy/data signals trdy/irdy/data signals

  31. Semantics

  32. Invariant Generation 1. The sum of firing ingoing transitions equals the sum of firing outgoing transitions. Example:

  33. Invariant Generation Let be a partitioning of all pairs such that:

  34. Invariant Generation 2. The sum of incoming packets equals the number of times a transition fired that consumes such a packet. Example:

  35. Conclusion • Methodology for finding cross-layer deadlocks • Makes use of cross-layer invariants • Monolithic verification of protocol and interconnect • generic w.r.t. interconnect • generic w.r.t. protocol • Fully automated • Haskell implementation of invariant generation, deadlock detection, and various required paraphernalia

Recommend


More recommend