osss: an approach for modelling, seamless refinement…systemc/documents/presentation... · 18....

25
18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement, and Synthesis of HW/SW SoC Frank Oppenheimer Kim Grüttner OFFIS - Institute for Information Technology

Upload: vantu

Post on 06-Mar-2018

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007 ESCUG 16Barcelona

OSSS: An Approach for Modelling, seamless Refinement, and Synthesis of HW/SW SoC

Frank OppenheimerKim Grüttner

OFFIS - Institute for Information Technology

Page 2: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

2Frank Oppenheimer

Kim Grüttner

We all know this … ☺

2005 2006 2007 2008 20102009

Tec

hnolo

gy

vs.

Product

ivity

130 nm

90 nm

65 nm

45 nm

32 nm

Time

Page 3: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

3Frank Oppenheimer

Kim Grüttner

What can we do about it?

Components IP components (Re-use)High-level Modelling

CommunicationTLM-like Communication (Abstraction)

ArchitecturesStandard Platforms (Re-use)Performance Analysis (Simulation)

SystemsHardware/Software Co-design (Simulation)Synthesis (Automation)

Page 4: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

4Frank Oppenheimer

Kim Grüttner

Overview

Introduction and Motivation“Moore remains (at least for now) valid”

OSSS Methodology„From Application via Virtual Platform to Implementation“„Avoiding conflicts“„Occam’s Razor for Software modelling“„From Methods to Signals“

OSSS Synthesis Toolchain

Conclusion

Page 5: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

5Frank Oppenheimer

Kim Grüttner

Overall Goal

Application Layer

Implementation

?Bus

µP/µC

RAM

BusIF

BusIF

BusArbiter

MemoryController

BusIF

Efficient Design Flow for embedded HW/SW Systems

Method Interface

Component(Module/Task)

Page 6: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

6Frank Oppenheimer

Kim Grüttner

TargetPlatform Bus

µP/µC

RAM

BusIF

BusIF

BusArbiter

MemoryController

BusIF

Application Layer Model

Virtual TargetArchitecture

ModelBus

SoftwareProcessor

HardwareBlock

HardwareBlock

HardwareBlock

HardwareBlock

Analysis,Exploration,Refinement/

Mapping

Communication LinkInterface

Software TaskPort

Shared ObjectModule with Process(es)

OSSS Modelling and Refinement

Page 7: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

7Frank Oppenheimer

Kim Grüttner

BusµP/µC

Memory

BusIF

BusIF

BusArbiter

MemoryController

BusIF

OSSS Modelling Library

OSSS Modelling and Analysis

SoftwareProcessor

Bus

HardwareBlock

HardwareBlock

HardwareBlock

HardwareBlock

Page 8: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

8Frank Oppenheimer

Kim Grüttner

BusµP/µC

RAM

BusIF

BusIF

BusArbiter

MemoryController

BusIF

OSSS Synthesis

Bus

SoftwareProcessor

HardwareBlock

HardwareBlock

HardwareBlock

HardwareBlock

AutomaticSynthesisProcess

Page 9: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

9Frank Oppenheimer

Kim Grüttner

OSSS 2.0 -Oldenburg System Synthesis Subset

C++ SystemC

Software Hardware

Virtual Architecture

OSSS 2.0

OSSS Software Tasks

new/delete

Pointers

C++ Polymorphism

Classes & Structs

Templates

Inheritance

bool

Synth. subset of SystemC data types

OSSS data types(osss_enum, osss_array,osss_serialisable_object)

Processes(sc_method, sc_cthread)

Shared Objects

Processors

OSSS Channels

Object SocketsMemories

Modules

Signal Ports(sc_in, sc_out, sc_inout)

Polymorphic Objects

cross compiler &target dependent

Integer types

References

Enumerations

Arrays

HierarchicalChannels

Mutex

Semaphore

Events

Report Handling

Tracing

Signals

Page 10: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

10Frank Oppenheimer

Kim Grüttner

Shared Objects

Method-based Interface for Objects and ModulesMutual Exclusive Access (preserves data consistency)Guards for Access ControlSimilar to Hier. Channel but precise Synthesis Semantics

(Consumer) Prozess

(Producer) Prozess

:MyBufferClass

get() : ITypeput( IType )is_empty() : boolis_full() : bool...

IType, SIZE

...BufferP->put(…);...

...BufferP->get();...

...BufferP->get();...

MySharedBuffer

MyBuffer, Scheduler

Page 11: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

11Frank Oppenheimer

Kim Grüttner

Shared Objects in SystemC/OSSS

osss_port<osss_shared_if<FIFO_put_if> >

osss_shared<FIFO<Packet, 10>, osss_round_robin>

FIFO

osss_port<osss_shared_if<FIFO_get_if> >

template<class ItemType>class FIFO_put_if : public sc_interface{public:virtual void put(ItemType item) = 0;virtual bool is_empty() = 0;virtual bool is_full() = 0;...

};

<<implements>> <<implements>>

template<class ItemType>class FIFO_get_if : public sc_interface{public:virtual ItemType get() = 0;virtual bool is_empty() = 0;virtual bool is_full() = 0;...

};

Page 12: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

12Frank Oppenheimer

Kim Grüttner

Software in OSSS

M-SWmain

B

begin for

end for

Cbegin if

end if

BCB

EETEET

RET

EET

osss_shared<user_class_n>

sc_module

M-HW

osss_software_task

osss_port<osss_shared_if<class_n_if> >

BC

basic block

communication

Page 13: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

13Frank Oppenheimer

Kim Grüttner

So far we have seen …

OSSS (Oldenburg System Synthesis Subset) defines a rich subset of SystemC/C++ augmented with some extra concepts

Refinement LayersApplication LayerVirtual Target Architecture Layer

Now:Communication refinement with OSSS-ChannelsChannel-Synthesis

Page 14: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

14Frank Oppenheimer

Kim Grüttner

OSSS Refinement of Communication Links

Application Method-basedCommunication:User-definedTransactions

Virtual Target Architecture Bus

SoftwareProcessor

ObjectSocket

HardwareBlock

HardwareBlock

Shared BusTopology

P2PTopology

Port Interface

Module with Process(es)Shared ObjectSoftware Task

Producer MySharedBufferConsumer

Page 15: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

15Frank Oppenheimer

Kim Grüttner

OSSS Refinement of Communication Links

OSSS-Channels

Virtual TargetArchitecture Bus

SoftwareProcessor

ObjectSocket

HardwareBlock

HardwareBlock

Shared BusTopology

P2PTopology

OSSS-ChannelTransactions

Architecture Building BlocksCustom HardwareGPUsCommunication Links

Application

Port Interface

ProducerConsumer

MySharedBuffer

Method-basedCommunication:User-definedTransactions

Page 16: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

16Frank Oppenheimer

Kim Grüttner

OSSS Communication Mapping Alternatives (1)

Virtual Target Architecture

SoftwareProcessor

ObjectSocket

HardwareBlock

HardwareBlock

Shared BusTopology

Point-to-PointTopology

OPB

Application

Port Interface

Page 17: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

17Frank Oppenheimer

Kim Grüttner

OSSS Communication Mapping Alternatives (2)

Virtual Target Architecture

SoftwareProcessor

ObjectSocket

HardwareBlock

HardwareBlock

Shared BusTopology

OPB

Application

Port Interface

AHB

Shared BusTopology

Page 18: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

18Frank Oppenheimer

Kim Grüttner

Virtual Target Architecture

SoftwareProcessor

ObjectSocket

HardwareBlock

HardwareBlock

Shared BusTopology

OPB

Application

Port Interface

OSSS Communication Mapping Alternatives (3)

Page 19: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

19Frank Oppenheimer

Kim Grüttner

osss_rmi_channel<xilinx_opb_channel>

osss_port<osss_shared_if<FIFO_if> >

Producer

to Consumer1

to Consumer2

FIFO

OSSS Remote Method Invocation

Layered Transactors translate Application Method calledTo Signal Level and vis versa

Page 20: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

20Frank Oppenheimer

Kim Grüttner

OSSS-Channel - Simulation Layer

SoftwareProcessor

HardwareBlock

HardwareBlock

HardwareBlock

HardwareBlock

Shared BusTopology

Point-to-PointTopology

HardwareBlock

mas

ter t

rans

.

slav

e tra

ns.

slav

e tra

nsac

tor

mas

ter t

rans

.

slav

e tra

nsac

tor signals

mas

ter t

rans

acto

r

GreenBus with user-defined protocol class

Gre

enB

usG

reen

Bus

-- Rou

ter

Rou

ter

Bus protocol classBus protocol class

Target PortInitiator P

ort

Page 21: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

21Frank Oppenheimer

Kim Grüttner

OSSS-Channel Synthesis Layer

SoftwareProcessor

HardwareBlock

HardwareBlock

HardwareBlock

HardwareBlock

Shared BusTopology

Point-to-PointTopology

HardwareBlock

mas

ter t

rans

.

slav

e tra

ns.

slav

e tra

nsac

tor

arbitermas

ter t

rans

.

inte

rconnec

t

slav

e tra

nsac

tor signals

mas

ter t

rans

acto

r

e.g.: OPB, AMBA, Wishbone RTL Models

Custom-builtPoint-to-PointChannel

Page 22: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

22Frank Oppenheimer

Kim Grüttner

OSSS-Channel after Synthesis

Bus BusIF

BusArbiter

BusIF

consumerbuffer

clie

nt tr

ansa

ctor

osss_simple_point_to_point_channel< DWidth >

Signals

serv

er tr

ansa

ctor

Target Platform

Page 23: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

23Frank Oppenheimer

Kim Grüttner

C++ MSS MHSVHDL

gcc

Linker

LibGen PlatGenXST/

Synplify

3rd

par

ty t

ools

OSSS F

low

XilinxIPs

VHDLVHDL

XilinxMicroBlaze

ObjectSocket

HardwareBlock

IBM

OPB

HardwareBlock

HardwareBlock

ObjectSocket

XilinxMicroBlaze

DDRRAM

IF

ArbiterMemory

Controller

IF

IF

OPB

OSSS/FOSSY Synthesis Framework

Page 24: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

24Frank Oppenheimer

Kim Grüttner

Conclusion: OSSS Methodology

OSSS Modelling and RefinementApplication Model Refinement to Virtual Target Architecture Model

OSSS-ChannelsModelling and encapsulation of arbitrary protocols and busesAutomated generation of internal channel structure

Separation of communication and behaviour enables evaluation ofdesign alternatives

Automated synthesis completes seamless design flow for embedded HW/SW systems

Page 25: OSSS: An Approach for Modelling, seamless Refinement…systemc/Documents/Presentation... · 18. Sept. 2007 ESCUG 16 Barcelona OSSS: An Approach for Modelling, seamless Refinement,

18. Sept. 2007ESCUG 16

25Frank Oppenheimer

Kim Grüttner

Thank you for your attention!

Further Information

http://icodes.offis.de

http://andres.offis.de

http://www.offis.de/hs/

Funded by the EC