Code profiling as a design tool for application specific instruction sets

As the embedded devices has become more and more generalized and as their product cycles keeps shrinking the field has opened up for the Application Specific Instruction set Processor. A mix between the classic generalized microcontroller and the specialized ASIC the ASIP keeps a set of general processing instructions for executing embedded software but combines that with a set of heavily specialized instructions for speeding up the data intense application core algorithms. One important aspect of the ASIP design flowresearch is cutting design time and cost. One way of that is automation of the instruction set design. In order to do so a process is needed where the algorithm to be ASIPed is analyzed and critical operations are found and exposed so that they can be implemented in special hardware. This process is called profiling. This thesis describes an implementation of a fine grained source code profiler for use in an ASIP design flow. The profiler software is based on a static-dynamic workflow where data is assembled from both staticanalysis and dynamic execution of the program and then analyzed together in an specially made analysis software.

[1]  Jan Gustafsson,et al.  Worst-case execution-time analysis for embedded real-time systems , 2003, International Journal on Software Tools for Technology Transfer.

[2]  Kingshuk Karuri,et al.  Memory access micro-profiling for ASIP design , 2006, Third IEEE International Workshop on Electronic Design, Test and Applications (DELTA'06).

[3]  Marilyn Wolf,et al.  An architectural co-synthesis algorithm for distributed, embedded computing systems , 1997, IEEE Trans. Very Large Scale Integr. Syst..

[4]  Frank Vahid,et al.  Profiling tools for hardware/software partitioning of embedded applications , 2003 .

[5]  Mikael Andersson,et al.  Parallel JPEG Processing with a Hardware Accelerated DSP Processor , 2004 .

[6]  Michael Gschwind,et al.  Instruction set selection for ASIP design , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[7]  Kingshuk Karuri,et al.  Fine-grained application source code profiling for ASIP design , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[8]  John Panzer Automatic code instrumentation , 1999 .

[9]  Matthias Gries,et al.  Methods for evaluating and covering the design space during early design development , 2004, Integr..

[10]  Robert F. Cmelik SpixTools: Introduction and User's Manual , 1993 .

[11]  Jasmin Christian Blanchette,et al.  C++ GUI programming with Qt 4 , 2004 .

[12]  Andreas Gerstlauer,et al.  Retargetable profiling for rapid, early system-level design space exploration , 2004, Proceedings. 41st Design Automation Conference, 2004..

[13]  Sheng Liang,et al.  Comprehensive Profiling Support in the Java Virtual Machine , 1999, COOTS.

[14]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[15]  Marco Mattavelli,et al.  High level extraction of SoC architectural information from generic C algorithmic descriptions , 2005, Fifth International Workshop on System-on-Chip for Real-Time Applications (IWSOC'05).

[16]  Sharad Malik,et al.  From ASIC to ASIP: the next design discontinuity , 2002, Proceedings. IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[17]  Marco Mattavelli,et al.  High-level algorithmic complexity evaluation for system design , 2003, J. Syst. Archit..