g é rard: the hard man behind the soft core

53
Gérard: The Hard Man behind the Soft Core Satnam Singh Microsoft Research, Cambridge UK The University of Birmingham

Upload: doyle

Post on 25-Feb-2016

52 views

Category:

Documents


1 download

DESCRIPTION

G é rard: The Hard Man behind the Soft Core. Satnam Singh Microsoft Research, Cambridge UK The University of Birmingham. !. multiple independent multi-ported memories. hard and soft embedded processors. fine-grain parallelism and pipelining. BlockRam Memory Map (.bmm). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: G é rard: The Hard Man behind the Soft Core

Gérard: The Hard Man behind the Soft Core

Satnam SinghMicrosoft Research, Cambridge UK

The University of Birmingham

Page 2: G é rard: The Hard Man behind the Soft Core
Page 3: G é rard: The Hard Man behind the Soft Core

!

Page 4: G é rard: The Hard Man behind the Soft Core
Page 5: G é rard: The Hard Man behind the Soft Core

multipleindependentmulti-ported

memories

fine-grainparallelism

andpipelining

hard and softembeddedprocessors

Page 6: G é rard: The Hard Man behind the Soft Core
Page 7: G é rard: The Hard Man behind the Soft Core
Page 8: G é rard: The Hard Man behind the Soft Core
Page 9: G é rard: The Hard Man behind the Soft Core
Page 10: G é rard: The Hard Man behind the Soft Core

0101110001110001110100111001100100111000111001010110001110001110

New .bit File0101110001110001110100111001100100111000111001010110001110001110

.mem File

DATA2BRAM

0101110001110001110100111001100100111000111001010110001110001110

ELF File

# CPU address space 0xFFFFE000 - 0xFFFFFFFF. ADDRESS_BLOCK dramctlr BUS_BLOCK [0xFFFFF000:0xFFFFFFFF] xrefdes/dramctlr/bram0 [7:0] LOC=RAMB16_X0Y0; xrefdes/dramctlr/bram1 [15:8] LOC=RAMB16_X1Y0; xrefdes/dramctlr/bram2 [23:16] LOC=RAMB16_X2Y0; . . . END_BUS_BLOCK; END_ADDRESS_BLOCK;

BlockRam Memory Map (.bmm)

0101110001110001110100111001100100111000111001010110001110001110

.bit File

Page 11: G é rard: The Hard Man behind the Soft Core

ZBT SSRAM SDRAM

ZBT SSRAMController

SDRAMController

405PPC

On-ChipPeripheral

ROM

High-SpeedPeripheral

On-ChipPeripheral

CoreConnect OPB(On-Chip Peripheral Bus)

OPB

DDRSDRAM

CoreConnect Processor Local Bus (PLB) Arbiter

DDR SDRAMController

External BusController OPB Bridge

OPB BridgeI-Cache PLB

D-Cache PLB

Page 12: G é rard: The Hard Man behind the Soft Core

locksmonitorscondition variablesspin lockspriority inversion

Page 13: G é rard: The Hard Man behind the Soft Core
Page 14: G é rard: The Hard Man behind the Soft Core

PLDI 1998

Page 15: G é rard: The Hard Man behind the Soft Core

PLDI 1999

12345

Page 16: G é rard: The Hard Man behind the Soft Core

PLDI 2000

1 2 3 4 50

10

20

30

40

50

60

70

80

Series1Series2

Page 17: G é rard: The Hard Man behind the Soft Core

POPL 1998

Page 18: G é rard: The Hard Man behind the Soft Core

POPL 1999

Page 19: G é rard: The Hard Man behind the Soft Core

POPL 2000

Page 20: G é rard: The Hard Man behind the Soft Core

ray of light

Signal

Lustre

PRET-C

SHIM

Jazz

Esterel

Page 21: G é rard: The Hard Man behind the Soft Core

San Jose, 6 June 2003

Page 22: G é rard: The Hard Man behind the Soft Core

Sylvan Dissoubray

Page 23: G é rard: The Hard Man behind the Soft Core

Gérard wearing Satnam’s ring

Satnam wearing Gérard’s ring

San Jose, 6 June 2003

Page 24: G é rard: The Hard Man behind the Soft Core

Gérard Berry

Synchronous Programming Language Combat Team

Albert Benveniste

NicolasHalbwachs

Page 25: G é rard: The Hard Man behind the Soft Core

Zero delay example: Newtonian Mechanics

Concurrency + DeterminismCalculations are feasible

Page 26: G é rard: The Hard Man behind the Soft Core

Predictable delay examples: sound, light, waves

• Wait long enough, same result as 0-delay !• Zero delay and predictable delay are fully compatible• Constructive semantics is the unification• A theory of causality for reactive systems

• Clocked digital circuits paradigm

Page 27: G é rard: The Hard Man behind the Soft Core

Safe State Machines Esterel code

loop [ await A || await B ] ; emit Oeach R

Page 28: G é rard: The Hard Man behind the Soft Core

Esterel design

void uart_device_driver (){.....} uart.c

VHDL, Verilog -> hardware implementation

C -> software implementation

Page 29: G é rard: The Hard Man behind the Soft Core

Hardware UART

Page 30: G é rard: The Hard Man behind the Soft Core

Software UART

Page 31: G é rard: The Hard Man behind the Soft Core

18/01/2011 31G. Berry, Microsoft Research

Project Structure

Automatic Documentation

ProjectManagement

Executable Specification

Exporter

Debugging & Simulation

Formal Verification

DesignVerification

Sequential Equivalence

check

DUT

Optimized for synthesisDFT-ready

SystemC & RTL flow integration

C / C++ / SystemC Verilog / VHDL

.sc .vhd

Architecture

Design Specification CaptureDesign

FunctionalSpec Verification

Requirements

ArchitectureDiagram (2007)

Editor

Simulator

DesignVerifier

ModelReporter

Code & TestbenchGenerators

Editor

SequentialEquivalence

Checker

IDE

PlayerIDE

Page 32: G é rard: The Hard Man behind the Soft Core

G. Berry, Microsoft Research 18/01/2011 32

SCADE in the Airbus A380

– Flight Control system – Flight Warning system– Electrical Load Management system– Anti Icing system– Braking and Steering system– Cockpit Display system– Part of ATSU (Board / Ground comms)– FADEC (Engine Control)– EIS2 : Specification GUI Cockpit:

– PFD : Primary Flight Display– ND : Navigation Display– EWD : Engine Warning Display– SD : System Display

Flight ControlPrimary & Secondary

Commands

Anti Ice Control Unit

FlightWarningSystem

Braking & Steering Control Unit

Page 33: G é rard: The Hard Man behind the Soft Core
Page 34: G é rard: The Hard Man behind the Soft Core

French Synchronous Language Thread Level Remains High

SEVERE:hysteresis

HIGH:deadlock

ELEVATED:priority inversion

GUARDED:non-atomic action

LOW:race condition

Page 35: G é rard: The Hard Man behind the Soft Core

begin…end

procedurestatic final void

forwhile

loop

accept

if then else

case

Page 36: G é rard: The Hard Man behind the Soft Core

present gift then await scream end present

Thank you Stephen Edwards

Page 37: G é rard: The Hard Man behind the Soft Core

present gift then pause; every day do await thanks end every end present

Thank you Stephen Edwards

Page 38: G é rard: The Hard Man behind the Soft Core

abort nothing when bored

Thank you Stephen Edwards

Page 39: G é rard: The Hard Man behind the Soft Core

every day do nothing end every

Thank you Stephen Edwards

Page 40: G é rard: The Hard Man behind the Soft Core

run slowly

Thank you Stephen Edwards

Page 41: G é rard: The Hard Man behind the Soft Core

await falls ; every body do sustain disbelief end every

Thank you Stephen Edwards

Page 42: G é rard: The Hard Man behind the Soft Core

present case legally do run away end present

Thank you Stephen Edwards

Page 43: G é rard: The Hard Man behind the Soft Core

abort task when immediate objection

Thank you Jens Brandt

Page 44: G é rard: The Hard Man behind the Soft Core

abort run slowly || run fastly when sleepy

Thank you Mike Kishinevsky

Page 45: G é rard: The Hard Man behind the Soft Core

trap mouse in every loop do run cheese end every handle hair do run water end trap

Thank you Mike Kishinevsky

Page 46: G é rard: The Hard Man behind the Soft Core

Engine control software programmed in Esterel by non-French speaker

Page 47: G é rard: The Hard Man behind the Soft Core

Kavi Arya, Mumbai, 10 January 2004

Page 48: G é rard: The Hard Man behind the Soft Core
Page 49: G é rard: The Hard Man behind the Soft Core
Page 50: G é rard: The Hard Man behind the Soft Core

Esterel

present A then emit A end

Page 51: G é rard: The Hard Man behind the Soft Core

QEsterel

present A then emit A end

Thank you Georges Gonthier

Page 52: G é rard: The Hard Man behind the Soft Core

Mike Kishinevsky

Page 53: G é rard: The Hard Man behind the Soft Core

Mike Kishinevsky