Presentation is loading. Please wait.

Presentation is loading. Please wait.

October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim.

Similar presentations


Presentation on theme: "October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim."— Presentation transcript:

1 October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim

2 October 18, 2001Cho & Kim 2 Outline  Background  HW/SW Co-design  Software Synthesis  Summary

3 October 18, 2001Cho & Kim 3 Background  Embedded Software  Constrained Structure  “Simple,” Multiple Tasks  Target Architecture

4 October 18, 2001Cho & Kim 4 HW/SW Co-design  Reactive Real-time System  Mixed HW/SW System  Software – Flexibility  Hardware – Performance

5 October 18, 2001Cho & Kim 5 HW/SW Co-Design Formal Languages Partitioning HW SynthesisSW Synthesis RTOSTasksLogic Synthesis Code OptimizationLogic Optimization Board Level Prototyping Co-Simulation And Formal Verification

6 October 18, 2001Cho & Kim 6 Partitioning High-Level Design  Formal Languages  Textual Representation  Graphical Representation  Design Partitioning  Platform Resource  HW/SW Synthesis A B C

7 October 18, 2001Cho & Kim 7 Software Synthesis  Goal: Optimized software from high-level specification  Issues to consider  Target hardware support  Retargetable compilers  Result: Efficient code for the target processor A B C begin X1=TaskA(W); X2=TaskA(W); Y=TaskB(X1); result=TaskC(X2,Y); end

8 October 18, 2001Cho & Kim 8 Code Generation  Static Code  Static (object) code for each tasks  Library of inline codes  Code optimization  Task Handling  Resource management  Static/dynamic scheduling  Communication

9 October 18, 2001Cho & Kim 9 Software Synthesis Example Task B Downsample 2 to 1 Task A Upsample 1 to 3 3 2 High-Level Description Static Code for (i=0;i<3;i++) { Out[i]=In; } Reg=In[0]+In[1]; Out=Reg>>1; main(Samples *In) { while() { /* Schedule 2A */ for (j=0;j<2;j++) { /* inline code: Task A */ for (i=0;i<3;i++) { OutA[j*3+i]=InA[j]; } for (k=0;k<3;k++) { /* inline code: Task B */ Reg=OutA[k*2] +OutA[k*2+1]; OutB[k]=Reg>>1; } Code Generation 2 (TaskA) 3 (TaskB) & Schedule

10 October 18, 2001Cho & Kim 10 Programming Models  FSM Model  Co-design Finite State Machine (CFSM)  Dataflow Models  Synchronous Dataflow (SDF)  Boolean Dataflow  Dynamic Dataflow  Processor Network  Others

11 October 18, 2001Cho & Kim 11 CFSM  Extended FSM  Globally Asynchronous Locally Synchronous (GALS)  Unbiased towards HW or SW  Reactive, control-dominated systems  Size of the systems that can be mapped

12 October 18, 2001Cho & Kim 12 SW Synthesis with CFSM  Software Graph (S-Graph)  Task Synthesis  Real-Time Operating System (RTOS)  Machine Code Compilation

13 October 18, 2001Cho & Kim 13 S-Graph  Control/Data-Flow Diagram  Directed Acyclic Graph (DAG) BEGIN present_c = 1 a = ?c a’ := 0 emit_y := 1 END a’ := a + 1a’ := a emit_y := 0 falsetrue falsetrue module simpleCFSM: input c: integer; output y; var a: integer in loop await c; if a = ?c then a := 0; emit y; else a := a + 1; end if end loop end var end module

14 October 18, 2001Cho & Kim 14 Task Synthesis  Construction  Translation of transition function of CFSM  Recursively built from the reactive function  Optimization  Reordering or collapsing test nodes  Code-size estimation  Translation  Target language (e.g., C code)

15 October 18, 2001Cho & Kim 15 RTOS  Scheduling  Individual CFSM  Communication Mechanisms  Set of flags  Memory mapped I/O port of the micro- controller  Polling or interrupts  Synthesis or Commercial RTOS

16 October 18, 2001Cho & Kim 16 Cost/Performance Estimation  Accurate and Quick Estimation  Code size  Min/max execution time  Considerations  Code structures  System platform  Solution  Assign cost/timing parameters

17 October 18, 2001Cho & Kim 17 SDF  Digital Signal Processing  Graphical Representation  Actors/Nodes  Directed edges  Delays  Synchrony  Consume Tokens  Produce Tokens  Fixed number of Tokens a b c 1 2 1 2 2D D

18 October 18, 2001Cho & Kim 18 Schedule/Memory  Static scheduling  Determine task buffer size  Memory efficient edge delay  Deterministic at compile time

19 October 18, 2001Cho & Kim 19 SW Synthesis with SDF  Library of actor code blocks  Determine static schedule  Optimal code size  Performance  Inline code using schedule

20 October 18, 2001Cho & Kim 20 Summary  HW/SW Co-design  Software Synthesis  Highly optimized code  Timing constraints  Efficient Resource Usage  Highest performance per cost  Control over implementation cost

21 October 18, 2001Cho & Kim 21 Related Research  Berkeley HW/SW Co-Design Group  http://www-cad.eecs.berkeley.edu/~polis http://www-cad.eecs.berkeley.edu/~polis  Berkeley Ptolemy Group  http://ptolemy.eecs.berkeley.edu http://ptolemy.eecs.berkeley.edu  CHINOOK  http://www.cs.washington.edu/research/chinook/ http://www.cs.washington.edu/research/chinook/  VULCAN  Cadence Cierto VCC  Jeckle: the JAVA ECL compiler

22 October 18, 2001Cho & Kim 22 References 1.A. Sangiovanni-Vincentelli, “What is software synthesis?,” Computer Design Editorial, Department of EECS, UC Berkeley, Berkeley, CA, June 1997. 2.Berkeley POLIS Group, “A Framework for Hardware-Software Co- Design of Embedded System,” POLIS Website, Department of EECS, UC Berkeley, Berkeley, CA, 1997. 3.F. Thoen, M. Cornero, G. Goosens, and H. DeMan, “Software synthesis for real-time information processing systems,” ACM SIGPLAN, Vol. 30, No. 11, November 1995. 4.Linkoping University HW/SW Co-design Course Website, http://www.ida.liu.se/~zebpe/codesign/, 1998. http://www.ida.liu.se/~zebpe/codesign/ 5.EE249 “Design of Embedded Systems: Models, Validations, and Synthesis,” http://www-cad.eecs.berkeley.edu/~polis/class/index.html, UC Berkeley, CA. 2001.http://www-cad.eecs.berkeley.edu/~polis/class/index.html 6.P. Chou, and G. Borriello, “Software scheduling in the co-synthesis of reactive real-time systems,’ 31st ACM/IEEE Design Automation Conference, San Diego, CA, pp. 1-4, June 1994...

23 October 18, 2001Cho & Kim 23 References 7.E. Lee, “Embedded software,” UC Berkeley ERL Memorandum M01/26, http://ptolemy.eecs.berkeley.edu/publications/papers/01/embsystems/ http://ptolemy.eecs.berkeley.edu/publications/papers/01/embsystems/ 8.F. Balarin, L. Lavagno, P. Murthy, and A. Sangiovanni-Vincentelli, “Scheduling for embedded real-time systems,” IEEE Design & Test of Computers, Vol. 15, No. 1, pp. 71-82, January-March 1998. http://ielimg.ihs.com/iel3/54/14269/00655185.pdf http://ielimg.ihs.com/iel3/54/14269/00655185.pdf 9.S. Bhattacharyya, R. Leupers, and P. Marwedel, “Software synthesis and code generation for signal processing systems,” IEEE Transactions on Circuits and Systems-II: Analog and Digital Signal Processing, Vol. 47, No. 9, pp. 849-875, September 2000. 10.S. Bhattacharyya, P. Murthy, and E. Lee, “Synthesis of embedded software dataflow specifications,” Journal of VLSI Signal Processing Systems, Vol. 21, No. 2, pp. 151-166, June 1999.


Download ppt "October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim."

Similar presentations


Ads by Google