Diplomatic Design Patterns

Similar documents
SiFive TileLink Specification. c SiFive, Inc.

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

Extending Rocket Chip with Verilog Peripheral IPs

RISC-V Rocket Chip SoC Generator in Chisel. Yunsup Lee UC Berkeley

RISC V - Architecture and Interfaces

Digital Blocks Semiconductor IP

Agile Hardware Design: Building Chips with Small Teams

NVIDIA'S DEEP LEARNING ACCELERATOR MEETS SIFIVE'S FREEDOM PLATFORM. Frans Sijstermans (NVIDIA) & Yunsup Lee (SiFive)

Digital Blocks Semiconductor IP

RISC-V Core IP Products

Chisel to Chisel 3.0.0

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT-I

Lecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT

ECE 551 System on Chip Design

Productive Design of Extensible Cache Coherence Protocols!

Chapter 2 The AMBA SOC Platform

SiFive Freedom SoCs: Industry s First Open-Source RISC-V Chips

Design of an Efficient FSM for an Implementation of AMBA AHB in SD Host Controller

Ming Ming Wong Jawad Haj-Yahya Anupam Chattopadhyay

Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews


The Stanford Hydra CMP. Lance Hammond, Ben Hubbert, Michael Siu, Manohar Prabhu, Michael Chen, Maciek Kozyrczak*, and Kunle Olukotun

Digital Blocks Semiconductor IP

Yet Another Implementation of CoRAM Memory

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

The Stanford Hydra CMP. Lance Hammond, Ben Hubbert, Michael Siu, Manohar Prabhu, Mark Willey, Michael Chen, Maciek Kozyrczak*, and Kunle Olukotun

Kami: A Framework for (RISC-V) HW Verification

NoC Generic Scoreboard VIP by François Cerisier and Mathieu Maisonneuve, Test and Verification Solutions

Introduction to the Qsys System Integration Tool

Formal for Everyone Challenges in Achievable Multicore Design and Verification. FMCAD 25 Oct 2012 Daryl Stewart

Simplifying FPGA Design for SDR with a Network on Chip Architecture

The CoreConnect Bus Architecture

Copyright 2016 Xilinx

Digital Systems Design

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns

Custom Silicon for all

Design Patterns IV Structural Design Patterns, 1

Creating a System With Qsys

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

SEMICON Solutions. Bus Structure. Created by: Duong Dang Date: 20 th Oct,2010

Test and Verification Solutions. ARM Based SOC Design and Verification

Creating a System With Qsys

Data/Thread Level Speculation (TLS) in the Stanford Hydra Chip Multiprocessor (CMP)

Overview of Computer Organization. Chapter 1 S. Dandamudi

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

Overview of Computer Organization. Outline

Buses. Maurizio Palesi. Maurizio Palesi 1

FlexRay The Hardware View

Post processing techniques to accelerate assertion development Ajay Sharma

Analyzing and Debugging Performance Issues with Advanced ARM CoreLink System IP Components

Bus AMBA. Advanced Microcontroller Bus Architecture (AMBA)

Building High Performance, Power Efficient Cortex and Mali systems with ARM CoreLink. Robert Kaye

Achieving UFS Host Throughput For System Performance

ARM Processors for Embedded Applications

AMBA AHB Bus Protocol Checker

Chapter 6 Storage and Other I/O Topics

Embedded Systems 1: On Chip Bus

VERIFICATION OF AMBA AXI BUS PROTOCOL IMPLEMENTING INCR AND WRAP BURST USING SYSTEM VERILOG

Negotiating the Maze Getting the most out of memory systems today and tomorrow. Robert Kaye

VERIFICATION OF RISC-V PROCESSOR USING UVM TESTBENCH

Keywords- AMBA, AHB, APB, AHB Master, SOC, Split transaction.

08 - Address Generator Unit (AGU)

Understanding SPI with Precision Data Converters

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

RISC-V, Rocket, and RoCC Spring 2017 James Mar2n

Modeling Performance Use Cases with Traffic Profiles Over ARM AMBA Interfaces

MULTIPROCESSORS. Characteristics of Multiprocessors. Interconnection Structures. Interprocessor Arbitration

A Closer Look at the Epiphany IV 28nm 64 core Coprocessor. Andreas Olofsson PEGPUM 2013

Qsys and IP Core Integration

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Ch 1: The Architecture Business Cycle

COMPUTER technology has seen the rise and fall of

Responding to TAT Improvement Challenge through Testbench Configurability and Re-use

Data/Thread Level Speculation (TLS) in the Stanford Hydra Chip Multiprocessor (CMP)

Title: Using Test-IP Based Verification Techniques in a UVM Environment

Leveraging Formal Verification Throughout the Entire Design Cycle

NetSpeed ORION: A New Approach to Design On-chip Interconnects. August 26 th, 2013

Simply RISC S1 Core Specification. - version 0.1 -

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

The Embedded computing platform. Four-cycle handshake. Bus protocol. Typical bus signals. Four-cycle example. CPU bus.

Building Custom SoCs with RocketChip. Howard Mao

Design & Implementation of AHB Interface for SOC Application

AXI4-Stream Verification IP v1.0

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

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Functional Programming in Hardware Design

Section 6 Blackfin ADSP-BF533 Memory

Interconnecting Components

SoC Design for the New Millennium Daniel D. Gajski

Design and Test Solutions for Networks-on-Chip. Jin-Ho Ahn Hoseo University

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.

COMMUNICATION AND I/O ARCHITECTURES FOR HIGHLY INTEGRATED MPSoC PLATFORMS OUTLINE

Technical Committee Update

Nitro240/260 CPU Board Scalable 680x0 VME board for I/O intensive applications

IBM Cell Processor. Gilbert Hendry Mark Kretschmann

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

SpecC Methodology for High-Level Modeling

UNIT II PROCESSOR AND MEMORY ORGANIZATION

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

A Cache Hierarchy in a Computer System

Transcription:

Diplomatic Design Patterns Henry Cook Wesley Terpstra Yunsup Lee A TileLink Case Study 10/14/2017

Agenda Rocket-Chip Ecosystem Diplomacy TileLink Design Patterns DRYing out Parameterization Generation with a View Compositional Cake Deployment 2 SiFive

The Rocket-Chip Ecosystem for RISC-V Chisel A Domain-Specific Language for hardware construction embedded in Scala Rocket-Chip A collection of hardware generators implemented in Chisel Diplomacy A Scala framework for negotiating parameters between Chisel generators TileLink A parameterized chip-scale shared-memory interconnect protocol 3

Diplomacy 4

When Chisel Isn t Enough We d like to be able to see everything that will be in the system before we even start to emit any hardware descriptions How early can we detect misconfiguration? <> considered harmful wire width inference can mask problems Generators are nice... but parameterization itself is a source of complexity but each generator needs to agree with the others about what to generate 5

Diplomatic Parameterization Graphical abstraction of interconnectivity Directed Acyclic Graph (DAG) Node point where parameterized hardware is going to be generated Edge a directed pairing between a master and slave interface Modules may have many nodes and nodes may have many edges 6

Simple Example Graph 7 SiFive

Actual (small) Rocket-Chip Graph Tile AXI to TL TL to AXI Peripherals TL to AXI 8 SiFive

What Parameters Can Be Diplomatic? The cardinality of sources connected to a particular sink (transitive) The cardinality of sinks connected to a particular source (transitive) The type and size of operations issues by each master and slave The type and size of operations allowed on a particular address Other properties governing allowed behavior on particular regions (e.g. modifiability, executability, cacheability) Ordering requirements on operations over subgraphs (e.g. FIFO) Presence of certain fields within control wire bundles Widths of fields within with control or data wire bundles Presence of entire virtual networks or channels 9

How Diplomacy Negotiates Two-phase elaboration First, graph is created and parameters are negotiated (LazyModules) Second, Chisel hardware is elaborated (Module implementations) During the first ( diplomatic ) phase: One set of parameters flow outwards from master to slave nodes One set of parameters flow inwards from slave to master nodes Adapter nodes can modify parameters flowing through them All modules can place requirements on parameter values 10

Short Circuiting the Debug Loop What happens when negotiation fails? Error at Scala runtime What doesn t happen? Chisel elaboration Verilog emission Verilog compilation Simulation execution Waveform debugging 11

TileLink 12

TileLink: Graphical Structure 13 SiFive

TileLink: Graphical Structure Directed Acyclic Graph (DAG) (again) Agent (Node) point where messages are created Link (Edge) a directed pairing between two agents master and slave interface Modules may have many agents and agents may have many links 14

TileLink: Directed Channels 15 SiFive

TileLink: Modularity Spec defines threes levels of conformance Rocket-Chip uses Diplomacy to achieve even finer granularity Individual links specialized to the types of messages sent 16

TileLink: Composability Generality of interfaces All agents use the same transaction structure Scalability rules for hierarchy DAG prevents deadlock Strict prioritization of channels Necessary for individual transactions to make forward progress Decoupled handshaking rules Limit when and why messages can be rejected Deadlock freedom and forward progress guarantees! 17

TileLink: Transaction Structure https://www.sifive.com/documentation/tilelink/tilelink-spec/ 18 SiFive

Design Patterns 19

DRYing out parameterization Don t Repeat Yourself Every piece of knowledge must have a single, unambiguous, authoritative representation within a system 1 2 3 3 3 3 3 3 3 3 20

Hardware Generation With A View 21 SiFive

Combinational Composition Thin adapters that each serve a specific, orthogonalized function Zero-cycle response time is allowed (support is actually mandatory) Simplify verification at no design cost 22

Combinational Composition Modify control signals fragment burst messages into a series of single beat messages Modify message field widths widen the width of the data bus plane Manage inter-message transaction requirements enforce FIFO ordering across a series of messages and responses 23

Sequential Composition Decoupled nature of TileLink interfaces makes it easy to insert buffering at arbitrary point in the graph 24

Hierarchical Composition Any sub-graph can be swapped out for a different sub-graph that provides the same properties Inserting caches (or chains of caches) Filtering addresses into banks Transparently crossing clock domains Transparently converting between protocols Scala traits Interfaces that can provide concrete members Support multiple inheritance Build a system from layered components (cake pattern) 25

Compositional Cake 26

Deployment 27

Rocket-Chip: 2017 Rewrite Piecewise conversion to Diplomatic TileLink and AMBA using adapters between sub-graphs with different protocol versions Started from slaves and moved inward to masters Took about 6 months to complete Only remaining non-diplomatic Modules are the top-level test harness and leaf modules inside of the Rocket tiles 28

Future Work: Diplomacy Automatic punching of IOs via cross-module edges Ease arbitrary changes to granularity of module hierarchicalization Conversion between clock domains Cross at boundary of automatically inserted module wrappers Lightweight support for interrupts and other simple types that need to be routed to arbitrary locations, including to top-level IOs Diplomatic RoCC 29

Future Work: TileLink Critical Word First for cache blocks Richer performance hints Cache coherence protocol parameterization Deadlock freedom and forward progress proofs, formal models ChipLink 30

31 SiFive