ACM Home Page
Please provide us with feedback. Feedback
Binary synthesis
Full text PdfPdf (341 KB)
Source
ACM Transactions on Design Automation of Electronic Systems (TODAES) archive
Volume 12 ,  Issue 3  (August 2007) table of contents
Article No. 34  
Year of Publication: 2007
ISSN:1084-4309
Authors
Greg Stitt  University of California, Riverside, CA
Frank Vahid  University of California, Riverside, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 170,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1255456.1255471
What is a DOI?

ABSTRACT

Recent high-level synthesis approaches and C-based hardware description languages attempt to improve the hardware design process by allowing developers to capture desired hardware functionality in a well-known high-level source language. However, these approaches have yet to achieve wide commercial success due in part to the difficulty of incorporating such approaches into software tool flows. The requirement of using a specific language, compiler, or development environment may cause many software developers to resist such approaches due to the difficulty and possible instability of changing well-established robust tool flows. Thus, in the past several years, synthesis from binaries has been introduced, both in research and in commercial tools, as a means of better integrating with tool flows by supporting all high-level languages and software compilers. Binary synthesis can be more easily integrated into a software development tool-flow by only requiring an additional backend tool, and it even enables completely transparent dynamic translation of executing binaries to configurable hardware circuits. In this article, we survey the key technologies underlying the important emerging field of binary synthesis. We compare binary synthesis to several related areas of research, and we then describe the key technologies required for effective binary synthesis: decompilation techniques necessary for binary synthesis to achieve results competitive with source-level synthesis, hardware/software partitioning methods necessary to find critical binary regions suitable for synthesis, synthesis methods for converting regions to custom circuits, and binary update methods that enable replacement of critical binary regions by circuits.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Ahpah Software Inc. 2004. SourceAgain Java decompiler. http://www.ahpah.com/product.html.
 
2
Altera Corp. 2006. Nios embedded processor. http://www.altera.com/products/ip/processors/nios/nio-index.html.
3
 
4
5
6
 
7
 
8
Barbe, P. 1974. The Piler system of computer program translation. Techn. rep. PLR-020, Probe Consultants Inc. Prepared for the Office of Naval Research, distributed by National Technical Information Service, USA. ADA000294. Contract N00014-67-C-0472.
9
 
10
 
11
 
12
Binachip, Inc. 2006. http://www.binachip.com/.
 
13
 
14
The Boomerang Decompiler Project. 2006. Boomerang Decompiler. http://boomerang. sourceforge.net/.
 
15
16
 
17
Brinkley, D. L. 1981. Intercomputer transportation of assembly language software through decompilation. Techn. rep., Naval Underwater Systems Center.
 
18
Celoxica. 2006. DK design suite. http://www.celoxica.com/products/dk/default.asp.
 
19
 
20
 
21
22
 
23
Cifuentes, C. 1994. Reverse compilation techniques. PhD thesis Queensland University of Technology, Department of Computer Science.
 
24
 
25
Cifuentes, C., Van Emmerik, M., Ung, D., Simon, D., and Waddington, T. 1999. Preliminary experiences with the use of the UQBT binary translation framework. In Proceedings of the Workshop on Binary Translation. 12--22.
 
26
27
 
28
 
29
CriticalBlue. 2006. http://www.criticalblue.com.
 
30
Decompilation Wiki. 2006. http://www.program-transformation.org/Transform/DeCompilation.
 
31
 
32
 
33
Diniz, P., Hall, M., Park, J., So, B., and Ziegler, H. 2005. Automatic mapping of C to FPGAs with the DEFACTO compilation and synthesis systems. J. Microprocess. Microsyst. 29, 2--3, 51--62.
 
34
DisC Decompiler. 2006. http://www.debugmode.com/dcompile/disc.htm.
35
 
36
 
37
Eles, P., Peng, Z., Kuchchinski, K. and Doboli, A. 1997. System level hardware/software partitioning based on simulated annealing and tabu search. J. Design Autom. Embedd. Syst. 2, 1, 5--32.
 
38
 
39
Ernst, R. and Henkel, J. 1992. Hardware-software codesign of embedded controllers based on hardware extraction. In Proceedings of the International Workshop on Hardware/Software Codesign (CODES).
40
41
 
42
Fleury, M., Self, R. P., and Downton, A. C. 2001. Hardware compilation for software engineers: An ATM example. Softw. Engin. 148, 1, 31--42.
43
 
44
45
 
46
Fuan, C. and Zongtian, L. 1991. C function recognition technique and its implementation in 8086 C decompiling system. Mini-Micro Syst. 12, 11, 33--40.
 
47
 
48
 
49
 
50
51
 
52
53
 
54
 
55
Gupta, R. K. and De Micheli, G. 1992. System-level synthesis using re-programmable components. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE). 2--7.
 
56
 
57
Halstead, M. H. 1967. Machine independence and third generation computers. In Proceedings of Sprint Joint Computer Conference (SJCC). 587--592.
 
58
Halstead, M. H. 1970. Using the computer for program conversion. Datamation, 125--129.
 
59
60
 
61
 
62
Hood, S. T. 1991. Decompiling with definite clause grammars. Tech. rep. ERL-0571-RR, Electronics Research Laboratory, DSTO Australia.
 
63
64
65
 
66
JReversePro. 2006. http://jrevpro.sourceforge.net/.
67
 
68
69
70
 
71
72
73
74
75
76
 
77
Mentor Graphics Corp. 2006. Catapult C synthesis. http://www.mentor.com/products/c-based_design/catapult_c_synthesis/index.cfm.
 
78
MIPS Computer Systems. 1990. UMIPS-V reference manual (pixie and pixstats).
79
 
80
Mocha, the Java Decompiler. 1996. http://www.brouhaha.com/~eric/software/mocha/
 
81
 
82
 
83
 
84
OXFORD Hardware Compilation Group. 1997. The Handel language. Tech. rep., Oxford University.
 
85
REC (Reverse Engineering Compiler). 2005. http://www.backerstreet.com/rec/rec.htm.
 
86
 
87
Sassaman, W. A. 1966. A computer program to translate machine language into Fortran. In Proceedings of SJCC. 235--239.
 
88
Schneider, V. and Winiger, G. 1974. Translation grammars for compilation and decompilation. BIT Numer. Mathem. 14, 1, 78--86.
 
89
90
 
91
92
93
 
94
Stitt, G. and Vahid, F. 2003. Binary-level hardware/software partitioning of MediaBench, NetBench, and EEMBC benchmarks. Tech. rep. UCR-CSE-03-01, Department of Computer Science and Engineering, University of California, Riverside.
 
95
96
 
97
98
 
99
Stretch, Inc. 2006. http://www.stretchinc.com.
 
100
Synopsys. 2006. Design compiler. http://www.synopsys.com/products/logic/design_compiler.html.
 
101
Synplicity, Inc. 2006. Synplify ASIC. http://www.synplicity.com/corporate/pressreleases/2003/SYB-197final.html
 
102
Tensilica, Inc. 2006. XPRES Compiler. http://www.tensilica.com/html/xpres.html.
 
103
Transmeta, Corp. 2006. Transmeta Efficeon. http://www.transmeta.com/efficeon/.
 
104
 
105
 
106
 
107
Walker, R. and Camposano, R. 1991. A Survey of High-Level Synthesis Systems. Kluwer Academic Publishers.
 
108
Wolf, W. 1994. Hardware-software co-design of embedded systems. Proceedings of the IEEE 82, 7, 967--989.
 
109
Workman, D. A. 1978. Language design using decompilation. Tech. rep., University of Central Florida.
 
110
Xilinx, Inc. 2006. Xilinx MicroBlaze. http://www.xilinx.com/xlnx/xebiz/designResources/ip_ product _details.jsp?key=micro_blaze.
 
111
 
112