Removing the Barriers to SCA 4.0 Adoption
Software Defined Radio Webcast
Andrew Foster, Product Manager, PrismTech
May 7 2013
2Agenda
Introduction to SCA 4.0
SCA 4.0 CORBA PSM
SCA 4.0 Middleware
Migrating from SCA 2.2.2 to SCA 4.0
Conclusions
Introduction to SCA 4.0
4
The Software Communications
Architecture (SCA) has remained
largely unchanged since 2001
when v2.2 was released and the
Joint Tactical Radio System
(JTRS) program started.
SCA 4.0, approved February
2012, represents a radical shift in
the approach to specifying the
architecture, design and
implementation of a software
defined radio (SDR).
Background
4
5SCA 4.0 Approach
The SCA 4.0 specification has been developed following
the Model Driven Architecture (MDA) approach
The base specification has been developed as a
Platform Independent Model (PIM)
Appendices define transfer mechanisms to provide co-
located or distributed client/server operations
Currently the only transfer mechanism indentified in
Appendix E is based on the Common Object Request
Broker Architecture (CORBA)
Appendix E-1 defines the CORBA PSM for use with SCA
4.0
SCA v4.0
JPEO Objectives
Reduce development resources
Budget
Schedule
Reduce test and certification time
Reduce number of requirements
Increase use of automated testing
Improve performance
Reduce boot up latency
Reduce memory footprint
Technology refresh
Incorporate lessons learned
Backwards compatibility of applications is an
overarching tenet
6
SCA v4.0 Key Changes
Lightweight Components
Component Registration
Deployment Optimizations
Profiles and SCA Conformance
Platform Independent Model
7
8
Operating System
ORB and
CORBA
Services
Core Framework Control,
Services, Devices, and
File access
AEP
Application Resources
CORBA APIs
CF Interfaces
Operating System
ORB and
CORBA
Services
Core Framework Control,
Services, Devices, and
File access
AEP
Application Resources
CORBA APIs
CF Interfaces
SCA 2.2.2 OE and AEP
SCA 2.2.2 specifies the use of CORBA as the protocol for data transfer and inter-
process application function calls on the GPP.
It does not preclude the use of CORBA on a DSP or FPGA but assumes that these
are not CORBA capable CEs and recommends MHAL or MOCB instead.
SCA 2.2.2 - CORBA on GPP, MHAL to Communicate with DSP and FPGA
Host Development Tools
GPP DSP FPGA
SCA 2.2.2.
CF
CORBA ORB
MHAL transport
CORBA on GPP, MHAL to Communicate with DSP and FPGA
Component
A
SCA Resource
CORBA
MHAL
Waveform
Logic
C
Waveform
Logic
D
MHAL
Device
MHAL
Component
B
SCA Resource
CORBA
CORBA
transport
e.g., IIOP
(GIOP over
TCP/IP)
SCA 2.2.2 Communication Model
9
10SCA 4.0 OE and AEP
SCA products can be realized using a variety of transports and technologies (e.g.
CORBA, C++, SOAP, Data Distribution Service (DDS), MHAL Communication
Service, etc.). (excerpt from Appendix E)
11Model Driven Architecture Views
SCA 2.2
SCA 2.2.1
SCA 2.2.2
CIM – Computationally Independent Model
PIM – Platform Independent Model
PSM – Platform Specific Model
PSI – Platform Specific Implementation
SCA 4.0 AppendicesSCA 4.0
Functional
View
Architecture
View
Design
Model
Implementation
and Deployment
12PSM Appendices
E Transports and Technologies
E.1 – Common Object Request Broker
Architecture (CORBA)
Full – Provides features for general platforms and
applications
Lightweight – Provides minimal features for highly
constrained resources
Ultra-Lightweight – Essential capabilities supported
by FPGAs
E.2 – C++
E.3 – OMG Interface Definition Language
SCA 4.0 CORBA PSM
14Appendix E-1 CORBA PSM
Three CORBA profiles based on CORBA/e with
additional features from RT CORBA
The SCA CORBA profiles are characterized as follows:
1. SCA Full CORBA (Full) Profile – is the Full CORBA profile and is
targeted for applications hosted on GPPs
2. SCA Lightweight CORBA (LW) Profile – is more constrained than the
SCA Full CORBA Profile and is targeted towards environments with
limited computing support (e.g. DSPs)
3. SCA Ultra-Lightweight CORBA (ULW) Profile – is more constrained
than the SCA Lightweight CORBA Profile and is specifically intended
for processing elements with even more limited computing support
(e.g., DSPs & FPGAs)
15Appendix E-1 CORBA PSM
Each profile characterizes the IDL features allowed for definition of
interfaces between application components
The LW Profile narrows the IDL feature set in order to limit the
processing overhead caused by a number of types in the Full
Profile
The ULW Profile narrows the constructs even further to
accommodate typical limitations of DSP and FPGA environments
The shared IDL foundation of the profiles facilitates portability not
only between platforms, but also across processing elements and
transfer mechanisms
Component portability may be enhanced if the IDL from more
constrained profiles are used when defining application interfaces
targeted for components deployed within less constrained
processing elements
16Full Profile (Highlights)
Based on CORBA/e Compact Profile
IDL data types - boolean, octet, short, unsigned short, long,
unsigned long, enum, float, double, long double, long long,
unsigned long long, char, string, unions, arrays, struct, sequence,
object
Minimum CORBA POA
Restricted Any data type
SYNC_SCOPE_POLICY
RT CORBA – including PriorityModelPolicy,
PriorityBandedConnectionPolicy, ServerProtocolPolicy and RT
Thread Pools
COS Event – PushSupplier and PushConsumer
ORB_init() parameters - allows Root POA to be created with non
default parameters
17Lightweight Profile (Highlights)
Based on CORBA/e Micro Profile
IDL data types - boolean, octet, short, unsigned short,
long, unsigned long, enum, float, double, long double,
long long, unsigned long long, char, string, unions,
arrays, struct, sequence, object
Any data type not allowed
Root only POA
ORB_init() parameters - allows Root POA to be created
with non default parameters
18Ultra-Lightweight Profile (Highlights)
ULW profile only standardises
the subset of IDL a CORBA
capable FPGA can use
String, Any or Object data
types not allowed
ORB internal details are
unspecified and could be
implemented in a number of
ways, for example:
1. Software ORB – using a
processor core
embedded on the FPGA
2. Hardware ORB – key
functions of an ORB
implemented as an IP
core
IDL basic data types Short
Long
unsigned short
unsigned long
Boolean
Octet
IDL complex data types struct (restricted to supported basic data types)
sequence (restricted to supported basic data types)
Enum
IDL keywords Module
Interface
In
Out
Inout
Void
Typedef
oneway
Return value
Return values of a basic data type to be supported
SCA 4.0 – CORBA on GPP, DSP and FPGA
Host Development Tools
GPP DSP FPGA
SCA
2.2.2CFCORBA ORB CORBA ORB CORBA ORB
CORBA Transport
CORBA on GPP, DSP and FPGA
SCA Resource
Component
A
SCA Resource
CORBA
CORBA
CORBA
CORBA
Component
C
Component
D
SCA Resource
Component
B
SCA Resource
CORBA
SCA 4.0 Communication Model
CORBA
transport
e.g., IIOP
(GIOP over
TCP/IP)
19
SCA 4.0 Middleware
Spectra SDR Product Suite 21
Spectra
CX
Spectra
CF
Spectra
CDB
Spectra
DTP
Spectra CX is a model-
driven development tool
that enables SDR and
waveform software to be
rapidly developed,
integrated and tested.
Spectra CX allows radio
platform details to be
packaged and delivered to
distributed independent
development groups using
the tools to hide platform
complexities and IP as
needed.
Spectra Core
Framework (CF) is a
high-performance,
ultra low footprint,
radio management
framework providing
advanced capabilities
and extensibilities for
multiple software
radio architectures.
Spectra Common Data Bus
(CDB) is a high-
performance, integrated data
bus providing a unified data
exchange protocol and
format. Spectra CDB
supports a wide range of
General Purpose Processor
(GPP), Digital Signal
Processor (DSP) and Field
Programmable Gate Array
(FPGA) processing
elements.
Spectra DTP is an SDR
development and test
platform that supports
waveform design and
implementation for military,
homeland security and
commercial SDRs. Spectra
DTP is an optimized small
form-factor platform with low
power consumption that
enables the development,
testing and deployment of
waveforms.
PrismTech Proprietary Information
22Spectra Common Data Bus (CDB) – “SCA Everywhere”
SCA Everywhere
Spectra ORB
C & C++
Spectra ORB
C
Spectra ICO
VHDL
Extensible Transport Framework (TCP/IP, Rapid IO, Gigabyte Ethernet etc.)
Waveform
Component
Waveform
Component
Waveform
Component
GPP DSP FPGA
Spectra SCA
CF
Standards based, high performance, low footprint, fully interoperable COTS SCA middleware
solution that can be deployed across multiple processor types, including GPP, DSP and FPGA
environments
23Spectra Common Data Bus (CDB)
Spectra Common Data Bus (CDB) is a fully integrated and optimized
Software Defined Radio (SDR) middleware stack
Spectra Common Data Bus (CDB), runs across a wide range of
General Purpose Processor (GPP), Digital Signal Processor (DSP) and
Field Programmable Gate Array (FPGA) processing elements
Spectra CDB includes the following:
Spectra ORB
C++ ORB (for GPP)
C ORB (for GPP and DSP)
Spectra Lightweight Services
Spectra Lightweight Naming Service
Spectra Lightweight Event Service
Spectra Lightweight Log Service
Spectra IP Core ORB (ICO) for FPGA and ASIC
Spectra ORB SCA 4 Edition
Common Micro Kernel Architecture Supporting
Multiple Language Implementations (C & C++)
IDL
Compiler
Micro ORB Kernel
Server
IDL
Client
IDL ORB
Interface
GIOP
Extensible Transport Framework
IIOP DIOPSSLIOP
RT CORBA
Portable
Interceptors
CORBA
Messaging
Pluggable POA
RT-POAM-POA
Threading Models
Thread Pool
Thread Per Connection
3rd Party
Scheduler
SHMIOP
OpenFusion e*ORB SDR Lightweight COS – Naming, Event & Log
Thread per Request
UIOP
Key Features:
Fully compliant with the Software Communications
Architecture (SCA) v4.0 specification, including
pluggable support for :
SCA 4.0 Full Profile (C++ ORB)
SCA 4.0 Lightweight Profile (C & C++ ORBs)
Minimum CORBA (C & C++ ORBS)
CORBA/e Compact Profile (C & C++ ORBs)
CORBA/e Micro Profile (C ORB)
IDL compiler (C and C++)
GIOP 1.1
Extensible Transport Framework (ETF) – providing
multi-transport plug-in support, for transports such
as TCP/IP, UDP and Compact PCI
Multi-thread safe
Extensible server-side threading framework.
Pluggable POA framework
Pluggable ANY data type support
Request timeouts
Pluggable Real-Time CORBA support
Bundled Lightweight Naming. Event & Log Services
(both C & C++)
Availability:
Broad platform support, including:
OS: Windows, Solaris, Linux
RTOS: VxWorks, Integrity, LynxOS, QNX, ThreadX, TI BIOS, OSEck
CPU: x86, SPARC, ARM, PowerPC, TI C64x, TI C55x
24
25Spectra ORB SCA 4 Edition – Key Benefits
An ORB specifically designed for SDR and other resource
constrained DRE (Distributed Real-Time Embedded) systems
Smallest footprint and memory overhead
More efficient use of resources
Highest performance and throughput
The best ORB for SCA-compliant SDR development
Open and configurable architecture
Highly portable, scalable, flexible & reliable
An interoperable GPP and DSP solution in the same ORB family
Complementary SDR products & wireless software solutions
Key middleware component of the PrismTech’s SDR
products
Lowers Total Cost Of Ownership – no runtime fees for internal
use
Spectra IP Core ORB (ICO)
ICO CORBA Core Available For Any FPGA or ASIC
ICO is a hardware implementation of a
CORBA ORB
Implements a subset of the most commonly
used CORBA functions
Eliminates the need to develop custom proxies
(HALs) on GPP processor or DSP in order to
establish communication with the FPGA
ICO has been written in portable VHDL & can
be synthesized onto any FPGA or ASIC
platform
The ICO design environment
consists of:
The ICO engine (IP interface core)
IDL to VHDL code generator
A hardware developer treats ICO as
any other IP core interface
Software developers treat ICO
components as they would any other
CORBA object
26
ICO Feature Summary
Provides a superset of functionality that is fully compliant with the Software Communications
Architecture (SCA) v4.0 specification:
Ultra-Lightweight CORBA Profile
Supports GIOP version 1.0 protocol
Support for CORBA clients and servers
Servants implemented on FPGA in VHDL
Clients can be internal to the FPGA written in VHDL or external to FPGA(e.g., on a GPP or DSP) implemented by
a conventional software application
No arbitrary restriction on the number of clients and servers that can be supported on the FPGA IDL compiler
support
One way operations and two way operations
Supports IDL to VHDL language mapping and will auto generate VHDL equivalent of CORBA stubs and
skeletons allowing ICO to be easily connected to servants implementing waveform logic
Based on CORBA 3 grammar, but only supporting a subset of data types and constructs:
Simple data types - Char, Octet, Boolean, Short, Unsigned Short, Long, Unsigned Long, Long Long, Unsigned
Long Long, String
Any type (of simple data types)
Object Type
Enumerated Types
Complex data types
Struct
Sequence
Array
CORBA exceptions support
User exceptions
System exceptions
Pluggable and open transport interface allows user-defined custom transports to be plugged into ICO
Written in pure VHDL and portable across FPGA devices
27
Spectra ICO – Key Benefits
High performance standards based messaging for FPGAs
Greatly simplifies FPGA application integration
Helps support FPGA application portability
High throughput low latency messaging solution
Helps reduce time to market for new FPGA applications
Low footprint—efficient use of available FPGA resources
Available as part of a complete range of complementary SDR
products
Can support a unified messaging protocol across GPP, DSP and
FPGA processing elements
Can support a broad range of FPGA devices from the leading
vendors
No export restrictions - not subject to International Traffic in Arms
Regulations (ITAR) or Joint Tactical Radio System (JTRS) export
restrictions
28
29Spectra SCA 4.0 Roadmap
Spectra SCA 4 Edition – GA availability May
2013
Spectra ICO v2.3 – available now
ICO already supports SCA 4.0 Ultra-Lightweight Profile
ULW profile defines a subset of the functionality and data types that ICO can
actually support
Migrating from SCA 2.2.2 to 4.0
31SCA 4.0 Resource Interface
32Resource Interfaces Supported by Each CORBA Profile
Resource Interfaces Optional
Category
Attributes & Operations Full
Profile
Lightweight
Profile
Ultra-
Lightweight
Profile
LifeCycle Mandatory initialize():void
releaseObject(): void   
ComponentIdentifier INTERROBABLE identifier: string
  ×**
PortAccessor CONNECTABLE connectUsesPorts(Connections): void
disconnectPorts(Connections): void
getProvidedPorts(Connections): void
  ×***
ControllableComponent CONTROLLABLE started: boolean
start(): void
stop(): void
  
PropertySet CONFIGURABLE configure(Properties): void
query(Properties): void  ×* ×
TestableObject TESTABLE runTest(unsigned long, Properties): void
 ×* ×
* Requires support for Any data type
** Requires support for String data type
** Requires support for Object data type
33SCA 2.2.2 Resource Interface
class Resource Interface
«CORBAInterface»
Resource
+ identifier: string
+ start() : void
+ stop() : void
«CORBAInterface»
PropertySet
+ query(configProperties :Properties) : void
+ configure(configProperties :Properties*) : void
«CORBAInterface»
PortSupplier
+ getPort(name :string) : Object
«CORBAInterface»
LifeCycle
+ initialize() : void
+ releaseObject() : void
«CORBAInterface»
TestableObject
+ runTest(testid :unsigned long, testValues :Properties*) : void
Waveform
Component
34
Leveraging The Benefits of SCA 4.0 Middleware in an
SCA 2.2.2 Environment
Can I use SCA 4.0 middleware to enable the redeployment of SCA
CORBA enabled components on a DSP or FPGA in an SCA 2.2.2
based system ?
Problem - SCA 2.2.2 Resource interface is fixed and the
Lightweight and Ultra-Lightweight Profiles do not support all of the
required IDL types
Solution
Spectra ORB SCA 4 Edition C ORB Full Profile can be used on a DSP and still
support full SCA 2.2.2 Resource interface
Spectra ICO with its “Meta Driven Design” can also support all of the IDL types
required by the SCA 2.2.2 Resource interface
Users can create SCA 2.2.2 compliant applications with Resource
components deployed on a DSP or FPGA
In an SCA 4.0 OE core business logic for DSP or FPGA component
can remain unchanged, but Resource interface IDL modified to
support light weight component interface hosted on Light or Ultra-
Lightweight Profile compliant middleware
35SCA 2.2.2 to SCA 4.0 Migration Issues
A significant issue that must be addressed is that SCA 4.0 does not
support backwards compatibility with SCA 2.2.2 application and
platform components as originally envisaged
An SCA 4.0 Core Framework will not be able to deploy an SCA
2.2.2 waveform
Parts of the Resource and Device interfaces such as the connection
APIs have changed between SCA 2.2.2 and 4.0
Manually migrating SCA 2.2.2 application or platform components to
SCA 4.0 could be a time consuming process
This is major area where PrismTech MDD approaches can bring
significant benefits by helping automate much of the migration
process
36Automating the SCA 2.2.2 to SCA 4.0 Migration Process
class Resource Interface
«CORBAInterface»
Resource
+ identifier: string
+ start() : void
+ stop() : void
«CORBAInterface»
PropertySet
+ query(configProperties :Properties) : void
+ configure(configProperties :Properties*) : void
«CORBAInterface»
PortSupplier
+ getPort(name :string) : Object
«CORBAInterface»
LifeCycle
+ initialize() : void
+ releaseObject() : void
«CORBAInterface»
TestableObject
+ runTest(testid :unsigned long, testValues :Properties*) : void
Wav eform
Component
SCA 4.0
SCA 2.2.2
MDD tools such as Spectra CX will be able to auto-generate an SCA 4.0 model from a SCA 2.2.2
model using a set of mapping rules
The MDD tools will generate the SCA 4.0 component container code (including XML, source
code, make files) based on the target PSM technologies
If the business code is also being maintained as part of the SCA 2.2.2 model as is possible with
tool such Spectra CX then it can also be automatically migrated into the new SCA 4.0 model
If the business code is being maintained independently (e.g. library includes) then these
references can be automatically migrated into the SCA 4.0 model
37Conclusions
SCA 4.0 introduces major changes to the standard
Interfaces now defined specified as a PIM that can be mapped to different
PSMs
Standard aligns with a Model Driven Development approach to developing
SDRs
New CORBA PSM extends SCA support for DSPs and FPGAs
Using Spectra ORB and ICO allows users to develop components for DSPs
and FPGAs and deploy in an SCA 2.2.2 OE
Migrating SCA 2.2.2 Resource components to SCA 4.0 Lightweight
Resource components is possible but requires IDL changes and CORBA
Profile Support
Spectra ORB and ICO’s support for multi profiles in single implementation
makes SCA 4.0 middleware adoption straight forward
Model Driven Development and advanced tooling with automated migration
support will be a key to the successful of adoption of SCA 4.0
Additional Information
Andrew Foster e-mail:
awf@prismtech.com
Web Site:
www.prismtech.com/spectra
Or contact your PrismTech account
manager
38
3939
Thank You

SCA_4_adoption_may2013

  • 1.
    Removing the Barriersto SCA 4.0 Adoption Software Defined Radio Webcast Andrew Foster, Product Manager, PrismTech May 7 2013
  • 2.
    2Agenda Introduction to SCA4.0 SCA 4.0 CORBA PSM SCA 4.0 Middleware Migrating from SCA 2.2.2 to SCA 4.0 Conclusions
  • 3.
  • 4.
    4 The Software Communications Architecture(SCA) has remained largely unchanged since 2001 when v2.2 was released and the Joint Tactical Radio System (JTRS) program started. SCA 4.0, approved February 2012, represents a radical shift in the approach to specifying the architecture, design and implementation of a software defined radio (SDR). Background 4
  • 5.
    5SCA 4.0 Approach TheSCA 4.0 specification has been developed following the Model Driven Architecture (MDA) approach The base specification has been developed as a Platform Independent Model (PIM) Appendices define transfer mechanisms to provide co- located or distributed client/server operations Currently the only transfer mechanism indentified in Appendix E is based on the Common Object Request Broker Architecture (CORBA) Appendix E-1 defines the CORBA PSM for use with SCA 4.0
  • 6.
    SCA v4.0 JPEO Objectives Reducedevelopment resources Budget Schedule Reduce test and certification time Reduce number of requirements Increase use of automated testing Improve performance Reduce boot up latency Reduce memory footprint Technology refresh Incorporate lessons learned Backwards compatibility of applications is an overarching tenet 6
  • 7.
    SCA v4.0 KeyChanges Lightweight Components Component Registration Deployment Optimizations Profiles and SCA Conformance Platform Independent Model 7
  • 8.
    8 Operating System ORB and CORBA Services CoreFramework Control, Services, Devices, and File access AEP Application Resources CORBA APIs CF Interfaces Operating System ORB and CORBA Services Core Framework Control, Services, Devices, and File access AEP Application Resources CORBA APIs CF Interfaces SCA 2.2.2 OE and AEP SCA 2.2.2 specifies the use of CORBA as the protocol for data transfer and inter- process application function calls on the GPP. It does not preclude the use of CORBA on a DSP or FPGA but assumes that these are not CORBA capable CEs and recommends MHAL or MOCB instead.
  • 9.
    SCA 2.2.2 -CORBA on GPP, MHAL to Communicate with DSP and FPGA Host Development Tools GPP DSP FPGA SCA 2.2.2. CF CORBA ORB MHAL transport CORBA on GPP, MHAL to Communicate with DSP and FPGA Component A SCA Resource CORBA MHAL Waveform Logic C Waveform Logic D MHAL Device MHAL Component B SCA Resource CORBA CORBA transport e.g., IIOP (GIOP over TCP/IP) SCA 2.2.2 Communication Model 9
  • 10.
    10SCA 4.0 OEand AEP SCA products can be realized using a variety of transports and technologies (e.g. CORBA, C++, SOAP, Data Distribution Service (DDS), MHAL Communication Service, etc.). (excerpt from Appendix E)
  • 11.
    11Model Driven ArchitectureViews SCA 2.2 SCA 2.2.1 SCA 2.2.2 CIM – Computationally Independent Model PIM – Platform Independent Model PSM – Platform Specific Model PSI – Platform Specific Implementation SCA 4.0 AppendicesSCA 4.0 Functional View Architecture View Design Model Implementation and Deployment
  • 12.
    12PSM Appendices E Transportsand Technologies E.1 – Common Object Request Broker Architecture (CORBA) Full – Provides features for general platforms and applications Lightweight – Provides minimal features for highly constrained resources Ultra-Lightweight – Essential capabilities supported by FPGAs E.2 – C++ E.3 – OMG Interface Definition Language
  • 13.
  • 14.
    14Appendix E-1 CORBAPSM Three CORBA profiles based on CORBA/e with additional features from RT CORBA The SCA CORBA profiles are characterized as follows: 1. SCA Full CORBA (Full) Profile – is the Full CORBA profile and is targeted for applications hosted on GPPs 2. SCA Lightweight CORBA (LW) Profile – is more constrained than the SCA Full CORBA Profile and is targeted towards environments with limited computing support (e.g. DSPs) 3. SCA Ultra-Lightweight CORBA (ULW) Profile – is more constrained than the SCA Lightweight CORBA Profile and is specifically intended for processing elements with even more limited computing support (e.g., DSPs & FPGAs)
  • 15.
    15Appendix E-1 CORBAPSM Each profile characterizes the IDL features allowed for definition of interfaces between application components The LW Profile narrows the IDL feature set in order to limit the processing overhead caused by a number of types in the Full Profile The ULW Profile narrows the constructs even further to accommodate typical limitations of DSP and FPGA environments The shared IDL foundation of the profiles facilitates portability not only between platforms, but also across processing elements and transfer mechanisms Component portability may be enhanced if the IDL from more constrained profiles are used when defining application interfaces targeted for components deployed within less constrained processing elements
  • 16.
    16Full Profile (Highlights) Basedon CORBA/e Compact Profile IDL data types - boolean, octet, short, unsigned short, long, unsigned long, enum, float, double, long double, long long, unsigned long long, char, string, unions, arrays, struct, sequence, object Minimum CORBA POA Restricted Any data type SYNC_SCOPE_POLICY RT CORBA – including PriorityModelPolicy, PriorityBandedConnectionPolicy, ServerProtocolPolicy and RT Thread Pools COS Event – PushSupplier and PushConsumer ORB_init() parameters - allows Root POA to be created with non default parameters
  • 17.
    17Lightweight Profile (Highlights) Basedon CORBA/e Micro Profile IDL data types - boolean, octet, short, unsigned short, long, unsigned long, enum, float, double, long double, long long, unsigned long long, char, string, unions, arrays, struct, sequence, object Any data type not allowed Root only POA ORB_init() parameters - allows Root POA to be created with non default parameters
  • 18.
    18Ultra-Lightweight Profile (Highlights) ULWprofile only standardises the subset of IDL a CORBA capable FPGA can use String, Any or Object data types not allowed ORB internal details are unspecified and could be implemented in a number of ways, for example: 1. Software ORB – using a processor core embedded on the FPGA 2. Hardware ORB – key functions of an ORB implemented as an IP core IDL basic data types Short Long unsigned short unsigned long Boolean Octet IDL complex data types struct (restricted to supported basic data types) sequence (restricted to supported basic data types) Enum IDL keywords Module Interface In Out Inout Void Typedef oneway Return value Return values of a basic data type to be supported
  • 19.
    SCA 4.0 –CORBA on GPP, DSP and FPGA Host Development Tools GPP DSP FPGA SCA 2.2.2CFCORBA ORB CORBA ORB CORBA ORB CORBA Transport CORBA on GPP, DSP and FPGA SCA Resource Component A SCA Resource CORBA CORBA CORBA CORBA Component C Component D SCA Resource Component B SCA Resource CORBA SCA 4.0 Communication Model CORBA transport e.g., IIOP (GIOP over TCP/IP) 19
  • 20.
  • 21.
    Spectra SDR ProductSuite 21 Spectra CX Spectra CF Spectra CDB Spectra DTP Spectra CX is a model- driven development tool that enables SDR and waveform software to be rapidly developed, integrated and tested. Spectra CX allows radio platform details to be packaged and delivered to distributed independent development groups using the tools to hide platform complexities and IP as needed. Spectra Core Framework (CF) is a high-performance, ultra low footprint, radio management framework providing advanced capabilities and extensibilities for multiple software radio architectures. Spectra Common Data Bus (CDB) is a high- performance, integrated data bus providing a unified data exchange protocol and format. Spectra CDB supports a wide range of General Purpose Processor (GPP), Digital Signal Processor (DSP) and Field Programmable Gate Array (FPGA) processing elements. Spectra DTP is an SDR development and test platform that supports waveform design and implementation for military, homeland security and commercial SDRs. Spectra DTP is an optimized small form-factor platform with low power consumption that enables the development, testing and deployment of waveforms. PrismTech Proprietary Information
  • 22.
    22Spectra Common DataBus (CDB) – “SCA Everywhere” SCA Everywhere Spectra ORB C & C++ Spectra ORB C Spectra ICO VHDL Extensible Transport Framework (TCP/IP, Rapid IO, Gigabyte Ethernet etc.) Waveform Component Waveform Component Waveform Component GPP DSP FPGA Spectra SCA CF Standards based, high performance, low footprint, fully interoperable COTS SCA middleware solution that can be deployed across multiple processor types, including GPP, DSP and FPGA environments
  • 23.
    23Spectra Common DataBus (CDB) Spectra Common Data Bus (CDB) is a fully integrated and optimized Software Defined Radio (SDR) middleware stack Spectra Common Data Bus (CDB), runs across a wide range of General Purpose Processor (GPP), Digital Signal Processor (DSP) and Field Programmable Gate Array (FPGA) processing elements Spectra CDB includes the following: Spectra ORB C++ ORB (for GPP) C ORB (for GPP and DSP) Spectra Lightweight Services Spectra Lightweight Naming Service Spectra Lightweight Event Service Spectra Lightweight Log Service Spectra IP Core ORB (ICO) for FPGA and ASIC
  • 24.
    Spectra ORB SCA4 Edition Common Micro Kernel Architecture Supporting Multiple Language Implementations (C & C++) IDL Compiler Micro ORB Kernel Server IDL Client IDL ORB Interface GIOP Extensible Transport Framework IIOP DIOPSSLIOP RT CORBA Portable Interceptors CORBA Messaging Pluggable POA RT-POAM-POA Threading Models Thread Pool Thread Per Connection 3rd Party Scheduler SHMIOP OpenFusion e*ORB SDR Lightweight COS – Naming, Event & Log Thread per Request UIOP Key Features: Fully compliant with the Software Communications Architecture (SCA) v4.0 specification, including pluggable support for : SCA 4.0 Full Profile (C++ ORB) SCA 4.0 Lightweight Profile (C & C++ ORBs) Minimum CORBA (C & C++ ORBS) CORBA/e Compact Profile (C & C++ ORBs) CORBA/e Micro Profile (C ORB) IDL compiler (C and C++) GIOP 1.1 Extensible Transport Framework (ETF) – providing multi-transport plug-in support, for transports such as TCP/IP, UDP and Compact PCI Multi-thread safe Extensible server-side threading framework. Pluggable POA framework Pluggable ANY data type support Request timeouts Pluggable Real-Time CORBA support Bundled Lightweight Naming. Event & Log Services (both C & C++) Availability: Broad platform support, including: OS: Windows, Solaris, Linux RTOS: VxWorks, Integrity, LynxOS, QNX, ThreadX, TI BIOS, OSEck CPU: x86, SPARC, ARM, PowerPC, TI C64x, TI C55x 24
  • 25.
    25Spectra ORB SCA4 Edition – Key Benefits An ORB specifically designed for SDR and other resource constrained DRE (Distributed Real-Time Embedded) systems Smallest footprint and memory overhead More efficient use of resources Highest performance and throughput The best ORB for SCA-compliant SDR development Open and configurable architecture Highly portable, scalable, flexible & reliable An interoperable GPP and DSP solution in the same ORB family Complementary SDR products & wireless software solutions Key middleware component of the PrismTech’s SDR products Lowers Total Cost Of Ownership – no runtime fees for internal use
  • 26.
    Spectra IP CoreORB (ICO) ICO CORBA Core Available For Any FPGA or ASIC ICO is a hardware implementation of a CORBA ORB Implements a subset of the most commonly used CORBA functions Eliminates the need to develop custom proxies (HALs) on GPP processor or DSP in order to establish communication with the FPGA ICO has been written in portable VHDL & can be synthesized onto any FPGA or ASIC platform The ICO design environment consists of: The ICO engine (IP interface core) IDL to VHDL code generator A hardware developer treats ICO as any other IP core interface Software developers treat ICO components as they would any other CORBA object 26
  • 27.
    ICO Feature Summary Providesa superset of functionality that is fully compliant with the Software Communications Architecture (SCA) v4.0 specification: Ultra-Lightweight CORBA Profile Supports GIOP version 1.0 protocol Support for CORBA clients and servers Servants implemented on FPGA in VHDL Clients can be internal to the FPGA written in VHDL or external to FPGA(e.g., on a GPP or DSP) implemented by a conventional software application No arbitrary restriction on the number of clients and servers that can be supported on the FPGA IDL compiler support One way operations and two way operations Supports IDL to VHDL language mapping and will auto generate VHDL equivalent of CORBA stubs and skeletons allowing ICO to be easily connected to servants implementing waveform logic Based on CORBA 3 grammar, but only supporting a subset of data types and constructs: Simple data types - Char, Octet, Boolean, Short, Unsigned Short, Long, Unsigned Long, Long Long, Unsigned Long Long, String Any type (of simple data types) Object Type Enumerated Types Complex data types Struct Sequence Array CORBA exceptions support User exceptions System exceptions Pluggable and open transport interface allows user-defined custom transports to be plugged into ICO Written in pure VHDL and portable across FPGA devices 27
  • 28.
    Spectra ICO –Key Benefits High performance standards based messaging for FPGAs Greatly simplifies FPGA application integration Helps support FPGA application portability High throughput low latency messaging solution Helps reduce time to market for new FPGA applications Low footprint—efficient use of available FPGA resources Available as part of a complete range of complementary SDR products Can support a unified messaging protocol across GPP, DSP and FPGA processing elements Can support a broad range of FPGA devices from the leading vendors No export restrictions - not subject to International Traffic in Arms Regulations (ITAR) or Joint Tactical Radio System (JTRS) export restrictions 28
  • 29.
    29Spectra SCA 4.0Roadmap Spectra SCA 4 Edition – GA availability May 2013 Spectra ICO v2.3 – available now ICO already supports SCA 4.0 Ultra-Lightweight Profile ULW profile defines a subset of the functionality and data types that ICO can actually support
  • 30.
    Migrating from SCA2.2.2 to 4.0
  • 31.
  • 32.
    32Resource Interfaces Supportedby Each CORBA Profile Resource Interfaces Optional Category Attributes & Operations Full Profile Lightweight Profile Ultra- Lightweight Profile LifeCycle Mandatory initialize():void releaseObject(): void    ComponentIdentifier INTERROBABLE identifier: string   ×** PortAccessor CONNECTABLE connectUsesPorts(Connections): void disconnectPorts(Connections): void getProvidedPorts(Connections): void   ×*** ControllableComponent CONTROLLABLE started: boolean start(): void stop(): void    PropertySet CONFIGURABLE configure(Properties): void query(Properties): void  ×* × TestableObject TESTABLE runTest(unsigned long, Properties): void  ×* × * Requires support for Any data type ** Requires support for String data type ** Requires support for Object data type
  • 33.
    33SCA 2.2.2 ResourceInterface class Resource Interface «CORBAInterface» Resource + identifier: string + start() : void + stop() : void «CORBAInterface» PropertySet + query(configProperties :Properties) : void + configure(configProperties :Properties*) : void «CORBAInterface» PortSupplier + getPort(name :string) : Object «CORBAInterface» LifeCycle + initialize() : void + releaseObject() : void «CORBAInterface» TestableObject + runTest(testid :unsigned long, testValues :Properties*) : void Waveform Component
  • 34.
    34 Leveraging The Benefitsof SCA 4.0 Middleware in an SCA 2.2.2 Environment Can I use SCA 4.0 middleware to enable the redeployment of SCA CORBA enabled components on a DSP or FPGA in an SCA 2.2.2 based system ? Problem - SCA 2.2.2 Resource interface is fixed and the Lightweight and Ultra-Lightweight Profiles do not support all of the required IDL types Solution Spectra ORB SCA 4 Edition C ORB Full Profile can be used on a DSP and still support full SCA 2.2.2 Resource interface Spectra ICO with its “Meta Driven Design” can also support all of the IDL types required by the SCA 2.2.2 Resource interface Users can create SCA 2.2.2 compliant applications with Resource components deployed on a DSP or FPGA In an SCA 4.0 OE core business logic for DSP or FPGA component can remain unchanged, but Resource interface IDL modified to support light weight component interface hosted on Light or Ultra- Lightweight Profile compliant middleware
  • 35.
    35SCA 2.2.2 toSCA 4.0 Migration Issues A significant issue that must be addressed is that SCA 4.0 does not support backwards compatibility with SCA 2.2.2 application and platform components as originally envisaged An SCA 4.0 Core Framework will not be able to deploy an SCA 2.2.2 waveform Parts of the Resource and Device interfaces such as the connection APIs have changed between SCA 2.2.2 and 4.0 Manually migrating SCA 2.2.2 application or platform components to SCA 4.0 could be a time consuming process This is major area where PrismTech MDD approaches can bring significant benefits by helping automate much of the migration process
  • 36.
    36Automating the SCA2.2.2 to SCA 4.0 Migration Process class Resource Interface «CORBAInterface» Resource + identifier: string + start() : void + stop() : void «CORBAInterface» PropertySet + query(configProperties :Properties) : void + configure(configProperties :Properties*) : void «CORBAInterface» PortSupplier + getPort(name :string) : Object «CORBAInterface» LifeCycle + initialize() : void + releaseObject() : void «CORBAInterface» TestableObject + runTest(testid :unsigned long, testValues :Properties*) : void Wav eform Component SCA 4.0 SCA 2.2.2 MDD tools such as Spectra CX will be able to auto-generate an SCA 4.0 model from a SCA 2.2.2 model using a set of mapping rules The MDD tools will generate the SCA 4.0 component container code (including XML, source code, make files) based on the target PSM technologies If the business code is also being maintained as part of the SCA 2.2.2 model as is possible with tool such Spectra CX then it can also be automatically migrated into the new SCA 4.0 model If the business code is being maintained independently (e.g. library includes) then these references can be automatically migrated into the SCA 4.0 model
  • 37.
    37Conclusions SCA 4.0 introducesmajor changes to the standard Interfaces now defined specified as a PIM that can be mapped to different PSMs Standard aligns with a Model Driven Development approach to developing SDRs New CORBA PSM extends SCA support for DSPs and FPGAs Using Spectra ORB and ICO allows users to develop components for DSPs and FPGAs and deploy in an SCA 2.2.2 OE Migrating SCA 2.2.2 Resource components to SCA 4.0 Lightweight Resource components is possible but requires IDL changes and CORBA Profile Support Spectra ORB and ICO’s support for multi profiles in single implementation makes SCA 4.0 middleware adoption straight forward Model Driven Development and advanced tooling with automated migration support will be a key to the successful of adoption of SCA 4.0
  • 38.
    Additional Information Andrew Fostere-mail: awf@prismtech.com Web Site: www.prismtech.com/spectra Or contact your PrismTech account manager 38
  • 39.