Computer Laboratory


Bluespec Extensible RISC Implementation (BERI)

Newflash - May 18 2015: we have made a new release of the BERI/CHERI source code, which has been updated for our most recent architectural changes and includes everything necessary to synthesise BERI on an Altera FPGA.

BERI is an open-source platform to support research into the hardware-software interface. BERI allows investigation of research questions spanning historically siloed domains in systems research: computer architecture, compilers and programming languages, operating systems, and applications. We have released BERI under the BERI Hardware-Software License, a lightly modified version of the Apache Software License suitable for open-source hardware. Combined with a complete BSD- or Apache-licensed open-source software stack, including an adapation of the widely used FreeBSD operating system, Clang and LLVM compiler suite, and countless open-source applications, we are able to perform multi-dimensional systems reseach, exploring complex tradeoffs in via reproducible scientific methodology.

BERI is an FPGA soft-core processor implementing a 64-bit RISC instruction set, and is implemented in the Bluespec Hardware Description Language (HDL) – a high-level functional programming language for describing hardware designs. Bluespec allows for highly parameterisable designs, as well as easier design-space exploration, making it well-suited for teaching and research. BERI is able to boot the open-source FreeBSD UNIX operating system, which supports multitasking, TCP/IP networking, multiple filesystems, POSIX APIs, advanced security features, a has drivers for a variety of devices found on Terasic's FPGA boards, as well as many thousands of third-party open-source applications. We use the BERI hardware-software platform daily in our teaching and research and hope that others will find it useful as well!

We have successfully synthesised BERI for both Altera and Xilinx FPGAs. We have developed device drivers for several hard- and soft-core peripherals found on Altera-based board designs, including the Terasic DE4 board. We use FPGA-based BERI systems daily in user-friendly tablet, as well as in a network-accessible rackmount "server" format permitting remote software development and experimentation.

Our first BERI-based research project is CHERI: a research platform deconflating virtualisation and protection; however, the platform is intended to allow exploration of a broad range of other research problems, including in CPU multi-threading, CPU/memory interconnects, tagged memory, compiler-CPU design tradeoffs, CPU extensions for high-performance networking, graphics processing, and many other areas.

Conference and workshop papers

Technical Reports