Generating Hardware from Java Using Self-Propagating Flowpaths
暂无分享,去创建一个
microprocessor is adversely affected by the basic fetch-execute cycle. A further performance penalty results from the load-execute-store paradigm associated with the use of local variables in most high-level languages. Implementing a software algorithm directly in hardware such as on an FPGA can alleviate these performance penalties. Such implementations are normally developed in a hardware description language such as VHDL or Verilog. Previous work has been completed to create a compiler for converting high-level stack-based languages to VHDL for use on an FPGA or ASIC. This allowed for special-purpose processors to be generated efficiently from high-level algorithms with minimal design time. Introduced in this paper is a significant optimization to the original flowpaths – we have completely eliminated the controller and modified all operations to control themselves. These new self-propagating flowpaths execute faster and are less resource intensive. Comparisons to previous examples show that the new design exhibits, on average, a decrease in execution time of 32%, operating frequencies of 1.6 times higher, and a 33% decrease in power consumption. These flowpaths can be generated from languages with a stack-based intermediate representation including Java, C++, C#, and VB.
[1] D. Hanna,et al. Flexible Embedded System Design Using Flowpaths , 2022 .
[2] Richard E. Haskell,et al. Flowpaths: Compiling stack-based IR to hardware , 2006, Microprocess. Microsystems.
[3] Darrin M. Hanna,et al. A Compiler to Generate Hardware from Java Byte Codes for High Performance, Low Energy Embedded Systems , 2007, ERSA.
[4] Darrin M. Hanna,et al. Executing large algorithms on low-capacity FPGAs using flowpath partitioning and runtime reconfiguration , 2007, Microprocess. Microsystems.