Download presentation
Presentation is loading. Please wait.
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.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.