The lowrisc project Alex Bradbury

Similar documents
Two routes to specialisation: Loki and lowrisc. Robert Mullins, University of Cambridge WEEE September 2015 Espoo, Finland

The State of Open Source Processors and Open Source Silicon. Stefan Tensilica Day LibreCores. Free and Open Digital Hardware

DOVER A Metadata- Extended RISC- V

Evaluating RISC-V Cores for PULP

Integrating NVIDIA Deep Learning Accelerator (NVDLA) with RISC-V SoC on FireSim

lowrisc: An Opensourced SoC Provider Based on RISC-V Rocket Cores Wei Song University of Cambridge / lowrisc

Free Chips Project: a nonprofit for hosting opensource RISC-V implementations, tools, code. Yunsup Lee SiFive

Research Collection. KISS PULPino - Updates on PULPino updates on PULPino. Other Conference Item. ETH Library

Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

Compilers and Code Optimization EDOARDO FUSELLA

Introduction to RISC-V

QPSI. Qualcomm Technologies Countermeasures Update

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Outline. Debug Working Group Intro Why does RISC-V need an External Debug Spec? Overview of the Debug Spec v. 013 Future tasks of Debug Working Group

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

Industrial-Strength High-Performance RISC-V Processors for Energy-Efficient Computing

CMP Conference 20 th January Director of Business Development EMEA

Bringing up cycle-accurate models of RISC-V cores.


HDFI: Hardware-Assisted Data-flow Isolation

Overview. Technology Details. D/AVE NX Preliminary Product Brief

HETEROGENEOUS SYSTEM ARCHITECTURE: PLATFORM FOR THE FUTURE

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design

RISC-V. Palmer Dabbelt, SiFive COPYRIGHT 2018 SIFIVE. ALL RIGHTS RESERVED.

Jack Kang ( 剛至堅 ) VP Product June 2018

Support for RISC-V. Lauterbach GmbH. Bob Kupyn Lauterbach Markus Goehrle - Lauterbach GmbH

Untethered lowrisc, Memory Mapped IO and TileLink/AXI. Wei Song 27/07/2015

ARROW ARIS EDGE Board Software User s Guide 12/05/2017

CS 152 Laboratory Exercise 5 (Version C)

ENHANCED TOOLS FOR RISC-V PROCESSOR DEVELOPMENT

Unleashing the benefits of GPU Computing with ARM Mali TM Practical applications and use-cases. Steve Steele, ARM

Analyzing the Disruptive Impact of a Silicon Compiler

CS 152, Spring 2012 Section 11

CSEE 3827: Fundamentals of Computer Systems

Tomasz Włostowski Beams Department Controls Group Hardware and Timing Section. Developing hard real-time systems using FPGAs and soft CPU cores

Running a Linux-Capable Open Source Soft SoC on the Avalanche Board with MicroSemi PolarFire FPGA

OUTLINE. STM32F0 Architecture Overview STM32F0 Core Motivation for RISC and Pipelining Cortex-M0 Programming Model Toolchain and Project Structure

FPGAs as Tools and Architectures at ETH Systems

Cortex-A9 MPCore Software Development

Strober: Fast and Accurate Sample-Based Energy Simulation Framework for Arbitrary RTL

Getting to Work with OpenPiton. Princeton University. OpenPit

Bluespec s RISC-V Factory

RISC V - Architecture and Interfaces

OpenPrefetch. (in-progress)

Lecture 4: Instruction Set Design/Pipelining

Computer Architecture A Quantitative Approach, Fifth Edition. Chapter 2. Memory Hierarchy Design. Copyright 2012, Elsevier Inc. All rights reserved.

ECE 486/586. Computer Architecture. Lecture # 7

Higher Level Programming Abstractions for FPGAs using OpenCL

Cortex-R5 Software Development

Parallel Programming Principle and Practice. Lecture 9 Introduction to GPGPUs and CUDA Programming Model

The CHERI capability model Revisiting RISC in an age of risk

2011 IBM Research Strategic Initiative: Workload Optimized Systems

Lecture: SMT, Cache Hierarchies. Topics: SMT processors, cache access basics and innovations (Sections B.1-B.3, 2.1)

November 7, 2014 Prediction

Using Virtual Platforms To Improve Software Verification and Validation Efficiency

The Next Steps in the Evolution of ARM Cortex-M

CS 2630 Computer Organization. What did we accomplish in 8 weeks? Brandon Myers University of Iowa

XPU A Programmable FPGA Accelerator for Diverse Workloads

CS 2630 Computer Organization. What did we accomplish in 15 weeks? Brandon Myers University of Iowa

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Native Simulation of Complex VLIW Instruction Sets Using Static Binary Translation and Hardware-Assisted Virtualization

Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

ARMv8-A Software Development

Evaluation of RISC-V RTL with FPGA-Accelerated Simulation

Copyright 2012, Elsevier Inc. All rights reserved.

BERKELEY PAR LAB. RAMP Gold Wrap. Krste Asanovic. RAMP Wrap Stanford, CA August 25, 2010

Extending Rocket Chip with Verilog Peripheral IPs

Outline EEL 5764 Graduate Computer Architecture. Chapter 3 Limits to ILP and Simultaneous Multithreading. Overcoming Limits - What do we need??

Virtual Memory. Kevin Webb Swarthmore College March 8, 2018

Grassroots ASPLOS. can we still rethink the hardware/software interface in processors? Raphael kena Poss University of Amsterdam, the Netherlands

Chapter 13 Reduced Instruction Set Computers

Best Practice for Caching of Single-Path Code

Labeled RISC-V: A New Perspective on Software-Defined Architecture

Ariane: An open-source 64-bit RISC-V Application- Class Processor and latest Improvements

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.

CS 654 Computer Architecture Summary. Peter Kemper

Parallel Programming on Larrabee. Tim Foley Intel Corp

RISC-V Core IP Products

A Process Model suitable for defining and programming MpSoCs

ARM TrustZone for ARMv8-M for software engineers

Decoupling Dynamic Information Flow Tracking with a Dedicated Coprocessor

Getting the Most out of Advanced ARM IP. ARM Technology Symposia November 2013

Fast architecture prototyping on FPGAs: frameworks, tools, and challenges

Embedded Systems: Projects

Q: Are power supply attacks in scope for SSITH? A: The hacker team will not have physical access to the power supply.

End-to-end formal ISA verification of RISC-V processors with riscv-formal. Clifford Wolf

Outline. Exploiting Program Parallelism. The Hydra Approach. Data Speculation Support for a Chip Multiprocessor (Hydra CMP) HYDRA

The University of Reduced Instruction Set Computer (MARC)

Realtime Signal Processing on Embedded GPUs

Martin Kruliš, v

LECTURE 5: MEMORY HIERARCHY DESIGN

Industry Collaboration and Innovation

Ten Reasons to Optimize a Processor

SOFTWARE DRIVES HARDWARE, LESSONS LEARNED AND FUTURE DIRECTIONS

HSA foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room A. Alario! 23 November, 2015!

Flexible edge cloud computing initiative (FECCI)

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Transcription:

The lowrisc project Alex Bradbury lowrisc C.I.C. 3 rd April 2017

lowrisc We are producing an open source Linux capable System-on-a- Chip (SoC) 64-bit multicore Aim to be the Linux of the Hardware world

Motivation An open-source Raspberry Pi style board? Encourage community effort by providing regular tape-outs Timeliness

The lowrisc platform Extends the Berkeley Rocket chip generator Opportunity to improve the status quo? Not just delivering the hardware, we aim to share as much information as possible Encourage development of other opensource hardware (incl. PHYs and analog IP)

The lowrisc platform Minion cores Simple cores are free, tape-outs are expensive Aim to use minion cores liberally to reduce complexity, distribute processing and create a more flexible SoC (single ISA) General-purpose tagged memory support Support for fine-grain memory protection, debugging, profiling, synchronization, etc. Can also be extended to support provenance tracking, capabilities, etc.

Minion cores Minion = simple core + custom instruction-set extensions + HW shim + low-latency communication links Based on PULPino RISC-V core from ETH Zurich (www.pulp-platform.org) Initially used for programmable I/O Preprocessing, monitoring, tagging of I/O data Secure isolated execution, thread offload, rapid/flexible implementation of IP blocks, use multiple as a parallel processing resource,

Tagged memory Associate tags (metadata) with each physical memory location Tags are stored in on-chip caches and a tag cache is inserted between the LLC and main memory

Tagged memory security use cases Protection of code pointers Limited control-flow integrity Infinite hardware memory watchpoints E.g. canaries on stack Poisoning (simple IFT) Ensure sensitive data does not leak

Tagged memory - example Tag rules are currently specified using a single control register (CSR) <64-bits Specifies bit masks that indicate when exceptions are raised and when tags are propagated for different classes of instructions E.g. code pointer protection 1. Mark valid code pointers 2. Prevent them being overwritten with arbitrary data

Tagged memory - example Choose a single tag bit (CPTR) for this use Load: ensure the CPTR tag bit is propagated Trigger exception if during indirect branch rs1 doesn t have CPTR tag set Store Trigger exception if attempting to write to memory location holding a code pointer Ensure CPTR tag bit is stored (i.e. create CP)

Tagged memory - example e.g. CPTR = 4 b0001 Load_propagation_mask = CPTR Load_exception_mask = 0 INDIR_BRANCH_exception_mask = CPTR INDIR_BRANCH_rs_mask = CPTR Store_exception_mask = CPTR Store_propagation_mask = CPTR ALU_propagation_mask = 0 ALU_exception_mask = 0

Extending tagged memory Could provide larger rule table or cache rules [see PUMP work, DARPA CRASH project] Could exploit unused bits of virtual address to extend scheme (e.g. to provide a capability or provenance ID) Tag rules could trigger operations on a minion core

RISC-V LLVM Compiler LLVM is a prerequisite for many industrial and academic projects. We plan to use it for a number of tagged memory use-cases We are producing a well documented reference backend for RISC-V Alex Bradbury is leading this effort >90% of GCC torture test suite is passing (RV32I). Basic support by end Q2 Full support, incl. ISA variants, est. Q4 17.

Status See lowrisc.org for current releases + tutorials Current release (v0.3) Extends Rocket chip Based on the Rocket 64-bit in-order core untethers Rocket chip (from ARM host) Verilog top-level (rather than Chisel) Trace debug support (Open SoC Debug) Supports low-cost Nexys4 DDR FPGA board

Status New release (April 2017) Tagged memory implementation Optimized hierarchical tag cache Minimises additional off-chip traffic due to tags Tag rule checking in Rocket core pipeline GCC stack smashing protection example Integration of Pulpino-based minion core (with SD-card demo)

Future releases Full tagged memory support with Linux and LLVM support, Q3 17 More minion-based IP and integration support (Q4 17) Customisable and extensible SoC platform with system-level simulation support (2018) Test-chips 2018, Community board 2019

Funding Traditional research funding sources Donations and sponsorship private individuals, Google lowrisc C.I.C Not-for-profit organisation Undertakes RISC-V consultancy work Profits are used to support the project and community

5-year vision Industry Easier to create derivative designs, faster time-to-market Significantly lower the barriers to producing an SoC design Cores are modified/adapted and used freely to quickly produce flexible SoCs Shared technology investment permits focus on differentiation and innovation Shared costs and reduced risk

5-year vision Academia Undertakes more detailed evaluations and design comparisons (reproduces results!) Ideas transferred more quickly to industry More of the best students interested in hardware

How can we help? What are your priorities and areas of particular interest? Potential for collaborations? Might you have IP to contribute?

Thank you asb@lowrisc.org www.lowrisc.org