New decompilation techniques for binary-level co-processor generation

  • Authors:
  • G. Stiff;F. Vahid

  • Affiliations:
  • Dept. of Comput. Sci. & Eng., California Univ., Riverside, CA, USA;Dept. of Comput. Sci. & Eng., California Univ., Riverside, CA, USA

  • Venue:
  • ICCAD '05 Proceedings of the 2005 IEEE/ACM International conference on Computer-aided design
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Existing ASIPs (application-specific instruction-set processors) and compiler-based co-processor synthesis approaches meet the increasing performance requirements of embedded applications while consuming less power than high-performance gigahertz microprocessors. However, existing approaches place restrictions on software languages and compilers. Binary-level co-processor generation has previously been proposed as a complementary approach to reduce impact on tool restrictions, supporting all languages and compilers, at the cost of some decrease in performance. In a binary-level approach, decompilation recovers much of the high-level information, like loops and arrays, needed for effective synthesis, and in many cases yields hardware similar to that of a compiler-based approach. However, previous binary-level approaches have not considered the effects of software compiler optimizations on the resulting hardware. In this paper, we introduce two new decompilation techniques, strength promotion and loop rerolling, and show that they are necessary to synthesize an efficient custom hardware coprocessor from a binary in the presence of software compiler optimizations. In addition, unlike previous approaches, we show the robustness of binary-level co-processor generation by achieving order of magnitude speedups for binaries generated for three different instruction sets, MIPS, ARM, and MicroBlaze, using two different levels of compiler optimizations.