• DocumentCode
    3253843
  • Title

    Implementing parallel algorithms on an FPGA directly from multithreaded Java using flowpaths

  • Author

    DuChene, Michael ; Hanna, Darrin M.

  • Author_Institution
    CSE Dept., Oakland Univ., Rochester, MI
  • fYear
    2005
  • fDate
    7-10 Aug. 2005
  • Firstpage
    980
  • Abstract
    The performance of software executed on a 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 the 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. More recently, several methods for using C as a hardware description language and for compiling C programs to hardware have been researched with challenges in multithreading. Previous work shows how a new systems architecture for FPGAs, called flowpaths, can implement Java byte codes directly in an FPGA without the need for a microprocessor core. Results show that flowpaths perform within a factor of 2 of a minimal hand-crafted direct hardware implementation and orders of magnitude better than compiling the program to a microprocessor. This paper describes a method to extend the flowpath architecture to generate hardware directly from Java byte codes representing Java threads. This hardware executes multiple tasks in parallel supporting both synchronized and unsynchronized shared memory access. A producer/consumer example is implemented on a Xilinx Spartan IIE FPGA
  • Keywords
    C language; Java; data flow computing; field programmable gate arrays; hardware description languages; multi-threading; parallel algorithms; FPGA system architecture; Java byte code thread; VHDL; Verilog; Xilinx Spartan IIE FPGA; fetch execute cycle; field programmable gate array; flowpath architecture; hardware description language; high level language; microprocessor core; multithreading; parallel software algorithm; shared memory access; software performance penalty; Field programmable gate arrays; Hardware design languages; High level languages; Java; Microprocessors; Multithreading; Parallel algorithms; Software algorithms; Software performance; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Circuits and Systems, 2005. 48th Midwest Symposium on
  • Conference_Location
    Covington, KY
  • Print_ISBN
    0-7803-9197-7
  • Type

    conf

  • DOI
    10.1109/MWSCAS.2005.1594267
  • Filename
    1594267