osss: an approach for modelling, seamless refinement…systemc/documents/presentation... · 18....
TRANSCRIPT
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
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
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)
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
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)
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
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
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
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
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
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;...
};
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
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
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
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
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
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
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)
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
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
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
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
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
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
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