Synchron'2008 Funchal Giovanni

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Synchron'2008 Funchal Giovanni - Presentation Transcript

    1. Components and abstraction levels for system-on-chip Giovanni Funchal STMicroelectronics Verimag Synchron’2008
    2. Introduction Simulation mechanics In practice Contributions Future work Imagine a system… Display USB FM radio PAL/NTSC TV-out Internet radio, podcasts 16Gb Flash Browser 256Mb RAM WLAN RF MPEG4 5Mp camera Bluetooth Internet 2Mp camera WCDMA, GSM MP3 E-mail MMS/SMS Java Operating Maps System GPS Microphone Keypad Battery Giovanni Funchal Components and abstraction levels for system-on-chip 2
    3. Introduction Simulation mechanics In practice Contributions Future work …-on-chip STMicroelectronics Nokia N96 Nomadik STn8815 Giovanni Funchal Components and abstraction levels for system-on-chip 3
    4. Introduction Simulation mechanics In practice Contributions Future work Design flow RTL model Giovanni Funchal Components and abstraction levels for system-on-chip 4
    5. Introduction Simulation mechanics In practice Contributions Future work Register transfer level Precise description of hardware Synchronous, deterministic Giovanni Funchal Components and abstraction levels for system-on-chip 5
    6. Introduction Simulation mechanics In practice Contributions Future work Design flow RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 6
    7. Introduction Simulation mechanics In practice Contributions Future work Design flow Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 7
    8. Introduction Simulation mechanics In practice Contributions Future work Design flow Too late! Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 8
    9. Introduction Simulation mechanics In practice Contributions Future work Design flow Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 9
    10. Introduction Simulation mechanics In practice Contributions Future work Design flow Software Simulator RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 10
    11. Introduction Simulation mechanics In practice Contributions Future work Design flow Too slow! Software Simulator RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 11
    12. Introduction Simulation mechanics In practice Contributions Future work Design flow Simpler, faster Software TLM model Simulator RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 12
    13. Introduction Simulation mechanics In practice Contributions Future work Abstraction levels TLM models • Early (sw dev) • Less precise • Fast RTL models • Late (hw fab) • Precise • Slow Giovanni Funchal Components and abstraction levels for system-on-chip 13
    14. Introduction Simulation mechanics In practice Contributions Future work Transaction level modeling Abstract transfers of data Asynchronous, non-deterministic Giovanni Funchal Components and abstraction levels for system-on-chip 14
    15. Components and abstraction levels for system-on-chip Giovanni Funchal STMicroelectronics Verimag Synchron’2008
    16. Introduction Simulation mechanics In practice Contributions Future work Components Component Target port Initiator port Data interface Interrupt interf. Giovanni Funchal Components and abstraction levels for system-on-chip 16
    17. Introduction Simulation mechanics In practice Contributions Future work Components What’s inside? Giovanni Funchal Components and abstraction levels for system-on-chip 17
    18. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) Ready Running Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 18
    19. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) • Events Ready Running Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 19
    20. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) • Events • Scheduler Ready Running Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 20
    21. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) – wait() • Events • Scheduler Ready Running wait() Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 21
    22. Introduction Simulation mechanics In practice Contributions Future work Transactions in SystemC void irq() { port.irq(); … } Giovanni Funchal Components and abstraction levels for system-on-chip 22
    23. Introduction Simulation mechanics In practice Contributions Future work Transactions in SystemC void irq() { port.irq(); … } Interface function calls Giovanni Funchal Components and abstraction levels for system-on-chip 23
    24. Introduction Simulation mechanics In practice Contributions Future work An example Video Display decoder controller Memory Giovanni Funchal Components and abstraction levels for system-on-chip 24
    25. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 25
    26. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 26
    27. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 27
    28. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 28
    29. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 29
    30. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 30
    31. Introduction Simulation mechanics In practice Contributions Future work yield() • Like “wait()” but without saying what it is waiting for • The scheduler may choose the same process again Giovanni Funchal Components and abstraction levels for system-on-chip 31
    32. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); write(flag, true); x = read(flag); wait(irq); yield(); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 32
    33. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); write(flag, true); x = read(flag); wait(irq); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 33
    34. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); write(flag, true); x = read(flag); wait(irq); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 34
    35. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); write(flag, true); x = read(flag); wait(irq); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 35
    36. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); write(flag, true); x = read(flag); wait(irq); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 36
    37. Introduction Simulation mechanics In practice Contributions Future work Observations • “yield()” 1. Avoids livelocks by possibly giving other processes a chance to run 2. Finds bugs (next slides) Giovanni Funchal Components and abstraction levels for system-on-chip 37
    38. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); write(flag, true); x = read(flag); wait(irq); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 38
    39. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(flag, true); yield(); write(mem, image); x = read(flag); wait(irq); } while(!x); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 39
    40. Introduction Simulation mechanics In practice Contributions Future work Design flow Software TLM model Simulator Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 40
    41. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(flag, true); yield(); yield(); x = read(flag); write(mem, image); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 41
    42. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); yield(); yield(); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); yield(); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 42
    43. Introduction Simulation mechanics In practice Contributions Future work Conclusions • A minimum amount of yielding makes a certain platform work • A bit more is needed to – make any platform work – finding bugs • Essential for component based approach! Giovanni Funchal Components and abstraction levels for system-on-chip 43
    44. Introduction Simulation mechanics In practice Contributions Future work Approaches at ST • TAC1 – yield() between any two accesses – Poor performance Giovanni Funchal Components and abstraction levels for system-on-chip 44
    45. Introduction Simulation mechanics In practice Contributions Future work Approaches at ST • TAC2 – Tag addresses “synchro” ( ) or “data” – yield() after any “synchro” – Very good performance Giovanni Funchal Components and abstraction levels for system-on-chip 45
    46. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 46
    47. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); yield(); yield(); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 47
    48. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); yield(); yield(); write(flag, true); } while(!x); yield(); img = read(mem); wait(irq); display(img); yield(); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 48
    49. Introduction Simulation mechanics In practice Contributions Future work State-of-the-art • TAC2.5 – Experimental results by Jérôme Cornet – Tag addresses “synchro” ( ) or “data” – yield() • before and after any “synchro” • before irq’s Giovanni Funchal Components and abstraction levels for system-on-chip 49
    50. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 50
    51. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write(mem, image); yield(); yield(); x = read(flag); write(flag, true); yield(); yield(); } while(!x); wait(irq); img = read(mem); display(img); yield(); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 51
    52. Introduction Simulation mechanics In practice Contributions Future work Memory consistency contracts • Contract between processor and software in a multiprocessor system – Assume: software follows guidelines – Guarantee: memory stays consistent • Cache flushes, out-of-order execution,… Giovanni Funchal Components and abstraction levels for system-on-chip 52
    53. Introduction Simulation mechanics In practice Contributions Future work Memory consistency contracts • Guidelines: access data synchro Giovanni Funchal Components and abstraction levels for system-on-chip 53
    54. Introduction Simulation mechanics In practice Contributions Future work Memory consistency contracts • Guidelines: access data synchro non-competing competing release acquire Giovanni Funchal Components and abstraction levels for system-on-chip 54
    55. Introduction Simulation mechanics In practice Contributions Future work Design flow Seen as specification TLM model Valid implementation? RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 55
    56. Introduction Simulation mechanics In practice Contributions Future work From TLM… write write mem flag ... true read read read read flag flag flag mem irq false false true ... Giovanni Funchal Components and abstraction levels for system-on-chip 56
    57. Introduction Simulation mechanics In practice Contributions Future work …to RTL write write write mem mem flag ... ... true read read read read read flag flag flag mem mem irq false false true ... ... Giovanni Funchal Components and abstraction levels for system-on-chip 57
    58. Introduction Simulation mechanics In practice Contributions Future work …to RTL write mem ... write write mem flag ... true read read read read flag flag flag mem irq false false true ... read mem ... Giovanni Funchal Components and abstraction levels for system-on-chip 58
    59. Introduction Simulation mechanics In practice Contributions Future work And from RTL… • “happens-before” partial-order write mem ... write write mem flag ... true read read read read flag flag flag mem irq false false true ... read mem ... Giovanni Funchal Components and abstraction levels for system-on-chip 59
    60. Introduction Simulation mechanics In practice Contributions Future work Back to TLM… write write mem flag ... true read read read read flag flag flag mem irq false false true ... Giovanni Funchal Components and abstraction levels for system-on-chip 60
    61. Introduction Simulation mechanics In practice Contributions Future work Understand yield • Link with “happens-before” partial-order Decoder: Display: decode(image); do { write(mem, image); x = read(flag); write(flag, true); } while(!x); wait(irq); img = read(mem); display(img); irq(); Giovanni Funchal Components and abstraction levels for system-on-chip 61
    62. Introduction Simulation mechanics In practice Contributions Future work Future work • Import memory consistency contracts to TLM – Formal justification for “synchro” – Better understanding helps placing tags • Multi abstraction-level components – “happens-before” order must be maintained by valid implementations (contracts?) Giovanni Funchal Components and abstraction levels for system-on-chip 62
    63. Components and abstraction levels for system-on-chip Giovanni Funchal STMicroelectronics Verimag Synchron’2008
    SlideShare Zeitgeist 2009

    + Giovanni FunchalGiovanni Funchal Nominate

    custom

    163 views, 1 favs, 0 embeds more stats

    My talk at Synchron'2008

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 163
      • 163 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories