Electrical Engineering
      and Computer Sciences

Electrical Engineering and Computer Sciences

COLLEGE OF ENGINEERING

UC Berkeley

BORPH: An Operating System for FPGA-Based Reconfigurable Computers

Hayden Kwok-Hay So and Robert W. Brodersen

EECS Department
University of California, Berkeley
Technical Report No. UCB/EECS-2007-92
July 20, 2007

http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-92.pdf

Reconfigurable computing is a promising technology to meet future computational demand by leveraging flexibilities and the high degree of parallelism found in reconfigurable hardware fabrics, such as field programmable gate arrays (FPGAs). However, despite their promising performance researchers have demonstrated, reconfigurable computers are yet to be widely adopted. One reason is the lack of a common and intuitive operating system for these platforms. This dissertation work explores the design and implementation trade-offs of an operating system for FPGA-based reconfigurable computers, BORPH, the Berkeley Operating system for ReProgrammable Hardware. The goal of this work is to explore and demonstrate the feasibility of providing a systematic and easy to understand view into reconfigurable computers through OS support without incurring significant performance penalties. BORPH provides kernel support for FPGA applications by extending a standard Linux operating system. It establishes the notion of hardware process for executing user FPGA applications. Users therefore compile and execute hardware designs on FPGA resources the same way they run software programs on conventional processor-based systems. BORPH offers run-time general file system support to hardware processes as if they were software. The unified file interface allows hardware and software processes to communicate via standard UNIX file pipes. Furthermore, a virtual file system is built to allow access to memories and registers defined in the FPGA, providing communication links between hardware and software. The functions of BORPH are demonstrated on a BEE2 compute module. Performances of BORPH are measured to identify bottlenecks of our system. The clean OS kernel/user separation of BORPH has allowed us to improve overall system performance without affecting existing user designs. Furthermore, BORPH's unified run-time environment has enabled designers to make fair and end-to-end comparisons among software/hardware implementations of the same application. Most importantly, since the introduction of BORPH to our FPGA-based platform, we have observed increased productivity among high-level application developers who have little experience in FPGA application design.

Advisor: Robert W. Brodersen


BibTeX citation:

@phdthesis{So:EECS-2007-92,
    Author = {So, Hayden Kwok-Hay and Brodersen, Robert W.},
    Title = {BORPH: An Operating System for FPGA-Based Reconfigurable Computers},
    School = {EECS Department, University of California, Berkeley},
    Year = {2007},
    Month = {Jul},
    URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-92.html},
    Number = {UCB/EECS-2007-92},
    Abstract = {Reconfigurable computing is a promising technology to meet future computational demand by leveraging flexibilities and the high degree of parallelism found in reconfigurable hardware fabrics, such as field programmable gate arrays (FPGAs).  However, despite their promising performance researchers have demonstrated, reconfigurable computers are yet to be widely adopted.  One reason is the lack of a common and intuitive operating system for these platforms.

This dissertation work explores the design and implementation trade-offs of an operating system for FPGA-based reconfigurable computers, BORPH, the Berkeley Operating system for ReProgrammable Hardware.  The goal of this work is to explore and demonstrate the feasibility of providing a systematic and easy to understand view into reconfigurable computers through OS support without incurring significant performance penalties.

BORPH provides kernel support for FPGA applications by extending a standard Linux operating system.  It establishes the notion of hardware process for executing user FPGA applications.  Users therefore compile and execute hardware designs on FPGA resources the same way they run software programs on conventional processor-based systems.  BORPH offers run-time general file system support to hardware processes as if they were software.  The unified file interface allows hardware and software processes to communicate via standard UNIX file pipes.  Furthermore, a virtual file system is built to allow access to memories and registers defined in the FPGA, providing communication links between hardware and software.

The functions of BORPH are demonstrated on a BEE2 compute module.  Performances of BORPH are measured to identify bottlenecks of our system.  The clean OS kernel/user separation of BORPH has allowed us to improve overall system performance without affecting existing user designs.  Furthermore, BORPH's unified run-time environment has enabled designers to make fair and end-to-end comparisons among software/hardware implementations of the same application.  Most importantly, since the introduction of BORPH to our FPGA-based platform, we have observed increased productivity among high-level application developers who have little experience in FPGA application design.}
}

EndNote citation:

%0 Thesis
%A So, Hayden Kwok-Hay
%A Brodersen, Robert W.
%T BORPH: An Operating System for FPGA-Based Reconfigurable Computers
%I EECS Department, University of California, Berkeley
%D 2007
%8 July 20
%@ UCB/EECS-2007-92
%U http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-92.html
%F So:EECS-2007-92