180 likes | 416 Views
BORPH. Presented by Brandon Hamilton. Reconfigurable Computing. BEE2 Compute Module. ROACH. Introduction. Operating system support for reconfigurable computers Isolation of low level details of FPGA design Remove need for device driver concerns during application development
E N D
BORPH Presented by Brandon Hamilton
Reconfigurable Computing BEE2 Compute Module ROACH
Introduction • Operating system support for reconfigurable computers • Isolation of low level details of FPGA design • Remove need for device driver concerns during application development • Balance between flexibility and genericity, and high performance.
BORPH • Berkeley Operating system for ReProgrammable Hardware (BORPH) • PhD Thesis Fall 2007 University of California, Berkeley • Hayden Kwok-Hay So and Robert W. Brodersen • Running on BEE2 at Berkeley Wireless Research Center
BORPH overview • Extension of Linux kernel • Implements UNIX kernel semantics • Implementation of “Hardware processes” • Runtime general filesystem support • Interprocess communication (IPC) between software and hardware processes • Manages Reconfigurable resources
Hardware Processes • Logical separation of reconfigurable fabric and underlying hardware support platform • Reconfigurable Hardware region (HWR) is smallest unit of reconfigurable fabric. (e.g. an FPGA) • A hardware process is an executing instance of a gateware program • Independent execution (not under control of software) • Eliminates the need to write software to control gateware programs • Views reconfigurable fabrics as computing resources
Extension of Linux kernel • BOF (BORPH Object file) - executable binary file format contains information such as configuration of reconfigurable fabrics. • Able to be executed by any normal UNIX process creation techniques (fork, exec). • Hardware process has own logical virtual memory space.
Implements UNIX kernel semantics • Preserves UNIX process creation semantics (parent-child relationships, process group info) as well as signals (SIGTERM, SIGKILL etc.) • Process is run in 'Interruptable sleep' state so that it does not get scheduled to run on the processor.
Interprocess Communication • Currently no shared memory between hardware process and other processes. • Message passing OR data streaming modes. • Kernel creates connection to gateware via 2 unidirectional IO connection points (analogous to file descriptors)
System calls • In standard software kernels, system calls (API into the kernel) are synchronous (blocking) • BORPH hardware system call interface -asynchronous and parallel • User programs use request-acknowledge protocol for hardware system calls.
Access to reconfigurable resources • IOREG interface used to access hardware registers, FIFO's, on/off-chip memories from software • Creates virtual files corresponding to hardware constructs in gateware design - /proc/<pid>/hw
Tested Performance • Bottleneck is communication performance between control and user FPGAs • Use of DMA greatly improved performance. Process Creation File Streaming
Conclusions • Allows gateware designs to play active role – p2p • Abstraction model / interface • Future considerations • Semantics (blocking, swapping, parallel I/O) • Gateware debugging capabilities • Scalability • Optimization
Reference • Hayden Kwok-Hay So and Robert W. Brodersen, “BORPH: An Operating System for FPGA-Based Reconfigurable Computers”, EECS Department, University of California, Berkeley, July 2007