Introduction
Multicore digital signal processors (DSPs) are
starting to find increasing acceptance in various
market segments, including test and measure -ment, mission critical, industrial automation,
medical and high-end imaging equipment, and
high-performance computing. As processing
demands of these applications continue to
increase, Texas Instruments has responded with
a new generation of scalable, high-performance
TMS320C66x multicore DSPs. The C66x devices
are based on TI’s KeyStone architecture which
is the platform for true multicore innovation
by providing full processing capability to every
core in a multicore device. TI’s C66x high
performance DSPs include pin-compatible and
scalable devices available in one, two, four and
eight-core configurations.
Multicore software
development kit
TI has taken a very holistic view of the multicore DSP programming model and has developed
an extensible suite of tools and software to enable rapid development on TI’s multicore
DSP platform. This paper introduces TI’s Multicore Software Development Kit (MCSDK)
by outlining the various software packages available, along with utilities and tool chains that
can aid programmers in development for high-level operating systems such as Linux, and the
real time operating system SYS/BIOS.
Sanjay Bhal
Strategic marketing manager,
Multicore and Media
Infrastructure business
Raj Sivarajan
Software engineering manager,
Multicore and Media
Infrastructure business
Raghu Nambiath
Software design engineer,
Multicore and Media
Infrastructure business
W H I T E P A P E R
MCSDK benefits
TI’s MCSDK aims to provide a software development environment that enables rapid
development and faster time to market with TI’s high-performance multicore DSP platforms.
The MCSDK accomplishes this goal by:
• Providing well-integrated and tested common software layers to the customer so that
customers do not have to develop common layers from scratch. For example, TI’s
MCSDK integrates and tests various drivers to configure and control various on-chip
peripherals and accelerators. Customer can use the driver interfaces to enhance on-chip
input and output (I/O) mechanisms and acceleration. Since the software is optimized for the
device, customers using the MCSDK benefit through optimum performance entitlement.
• Integrating support for the SYS/BIOS real time operating system and Linux high level
operating system.
• Providing well-defined application programming interface for ease of programming as
well as future portability on TI’s scalable multicore DSP platforms. For example, the APIs
provided for intracore communication can be scaled to support two, four or eight core
versions of TI’s multicore DSPs without any code changes. The same APIs can also be
used to realize inter-device communication using industry standard IOs like Serial RapidIO
®
.
• Documenting examples to enable programmers to develop their application. These
examples will provide help in running RTOS on multiple cores as well as running RTOS
and HLOS simultaneously on multiple cores. The examples will showcase application
scenarios and enable customers to develop new applications, and also provide a migration
path from single core to multicore system or vice versa.
• Integrating with TI’s tools like Code Composer Studio
™
as well as TI’s third party tools
ecosystem.
Multicore software development kit May 2011
2 Texas Instruments
Linux MCSDK
Fig. 1 – TI’s MCSDK components
The following picture (Figure 1) aims to provide overview of the MCSDK and various components
described above.
TI’s MCSDK is actually comprised of two software ecosystems. The first ecosystem is based on Linux, and
the second one is based on SYS/BIOS. Both include all of the foundational software to get a customer started
with development quickly and easily. Each ecosystem includes mechanisms for programming multicore
devices (e.g. interprocessor communication) and can be used independently or in combination on different
cores of the same device. The following sections will provide an overview of each MCSDK component.
The Linux Multicore Software Development Kit (MCSDK) provides the necessary foundation for support of
a Linux ecosystem on TI’s C66x generation of high performance, multicore DSPs. The kit includes a ready-to-use Linux kernel, drivers, sample applications, and verified tools for customer product development. The Linux
MCSDK is available as an open source distribution at www.linux-c6x.org and includes pre-built binaries
ready to run on reference platforms to demonstrate the capability of TI high performance multicore DSPs.
In general, Linux for C66x multicore DSPs is intended to be a collaborative, community-driven effort among
C66x multicore customers and independent developers and vendors to engage and strengthen the overall
development ecosystem. Multiple participants are currently involved in development and upstream alignment
for both kernel and tool chain. This includes CodeSourcery (now part of Mentor Embedded
™
) for GCC tool
chain and Linux developers well known to the kernel community.
Code
Composer
Studio
™
Eclipse
Third
party
plug-in
Editor Polycore
ENEA
Optima
3L
Critical
Blue
Codegen
Profiler
Debugger
Remote
debug
System
analyzer
Visualization
Multicore Software Development Kit
SYS/BIOS
multicore demo
Demonstration
SYS/BIOS Linux
Linux
mulitcore demo
Libraries – DSPLIB, Image, Math, Media, Simulink
Inter Core communication
Host computer
XDS 560 V2
XDS 560 Trace
Target board
Peripheral drivers
Linux,
SYS/BIOS demo
Operating system with boot loader
Multicore programming model
Silicon entitlement
Multicore software development kit May 2011
3 Texas Instruments
Ecosystem
components
Inter Process
Communication
Tools
GCC tool
chain
(C/C++)
complier
Binutils
GDB
Debugger
Code
Composer
Studio
TI codegen
tools
(C/C++)
compiler
Demo and applications
Customer
applications
Open
SSL lib
Polar
SSL lib
IPC user
land lib
Drop
bear
Net
SNMP lib
HTTPD
CPU
Emulation Host computer Target platform
Memory
NAND
Flash
HyperLink SRIO
Hardware
PCIs GPIO UART SPI Ethernet
Busybox
Virtio FE
driver
Scheduler
NAND file
system
IPC driver
Device control
Kernel
Standard packages
Virtio
bridge
Network file
system
Networking
protocols
Linux to
BIOS
OOB demo
Linux to
Linux
Fig. 2 – Software ecosystem components for Linux MCSDK
One of the key programming requirements for multicore architectures is to have efficient communication
across the various cores. TI’s Linux MCSDK includes support for communication across the cores running
SYS/BIOS as well as other Linux cores, providing flexibility to address a range of potential product needs.
IPC between cores
TI’s Linux MCSDK includes an Inter Process Communication (IPC) driver through SYS/Link module to
communicate between cores running Linux High Level Operating System (HLOS) and multiple cores running
the SYS/BIOS Real Time Operating System (RTOS). An expected use case is to have control code running
on the Linux core while signal processing applications are executed on the BIOS cores. The software
Support for the Linux ecosystem is expected to be a key enabler for a richer set of high-performance
applications enabling customers to easily bring up their platforms based on TI C66x multicore DSPs.
Overall, the infrastructure allows customers to reduce cost of development and focus on increasing their
value proposition by adding market-driven applications.
The Linux MCSDK uses a uClinux-type kernel because its smaller footprint is ideally suited for multicore
DSP development. In addition, the Linux MCSDK includes device drivers to enable access to all peripherals
within the DSP, which will also vary based on the actual DSP. Figure 2 highlights peripherals and drivers that
will be supported for KeyStone devices.
Software
development tools
“Out-of-the-box”
demo experience
on TI’s C66x EVM
Multicore software development kit May 2011
4 Texas Instruments
Fig. 3 – IPC usage in the case of multiple Linux Instances
architecture will allow the host core running Linux to distribute signal processing across multiple cores while
also continuing to do other tasks without blocking. SYS/Link IPC module provides MessageQ support for
sending and receiving variable length messages across multiple cores.
As highlighted in Figure 3, Linux MCSDK will also enable multiple instances of Linux running across cores
within a single DSP using virtIO which is a standardized Linux framework for IO virtualization.
The Linux MCSDK provides the user a number of options for compiler tools as well as debugging.
On the compiler side, GCC and binutils commonly used within the open source community are available for
C66x multicore DSPs through Mentor Embedded. In the case of applications such as signal processing code,
a developer would be able to derive higher performance using compilers from TI. Additionally, the GCC and
TI compilers are interoperable so that a developer could selectively use the TI compiler or GCC for different
parts of the application code and still retain the rest of the system built with GCC. This provides the user with
the flexibility to make trade-offs associated with code performance.
On debugging, applications in user mode can use GDB available through Mentor Embedded. For kernel
debugging or programs running without any operating system, JTAG-based debugging will be supported
using Debug Sprite from Mentor Embedded and CCS based debugger from TI.
A final component of the Linux MCSDK is the inclusion of “out-of-the-box” (OOB) demonstration software
and example applications. The OOB demonstration application includes a web-based interface that gives
users control panel access to an EVM through a PC connected over Ethernet to provide a variety of functions
after boot. In the initial releases, the control panel will provide an easy way for the user to update t he boot
loader and kernel. Later releases will include support for other basic functions that illustrate and demonstrate
capabilities associated with multicore, such as IPC communication between core running BIOS and/or Linux,
downloading and booting multicore applications, etc.
Virtio FE driver
Core 0 Core 1
AMP Linux #1
Virtio transport
Virtio FE driver
Virtio transport
Virtio
Bridge
AMP Linux #2
Virtio
Bridge
BIOS MCSDK
Multicore software development kit May 2011
5 Texas Instruments
The BIOS Multicore Software Development Kit (MCSDK) provides core foundational building blocks in an
integrated fashion to facilitate application software development on TI’s high performance multicore DSPs
using the SYS/BIOS real-time operating system. The BIOS MCSDK bundles all the key embedded software in a
single downloadable package and is available for free on TI’s website. Software included in the BIOS MCSDK
is in source form along with pre-built libraries, and it is distributed under a BSD license. In addition to the
foundational software elements, the BIOS MCSDK provides demonstration applications that utilize the
components and show how a customer can create an application using the BIOS MCSDK.
One of the driving considerations in designing the organization of the BIOS MCSDK was to simplify the
development flow across platforms as well as consider customer migration across TI devices. TI understands
that customers may have multiple products with common software that span different devices, and the migration
strategy to leverage their software investment on existing and future TI devices is an important consideration. An
example of this flow is to begin by running the included TI demonstration software on the TI evaluation platform,
migrate the demonstration to the customer platform, then bring up the customer application on the customer
platform. One additional step is to port this application to the next generation TI architecture (Figure 4).
BIOS MCSDK uses TI Code Composer Studio
™
(CCS) as the Integrated Development Environment (IDE).
For software updates, BIOS MCSDK utilizes the Eclipse update feature to automate discovery and installation
of new software via CCS.
Fig. 4 – Porting an application to TI’s next generation SoC platform
Demo applications
EDMA
Etc.
LLD IPC
Network
development
kit
CSL
Tools
(UIA)
Customer
platform
Demo applications
EDMA
Etc.
LLD IPC
CSL
Tools
(UIA)
Demo applications
No modification is required
May be used as is or customer can
add modifications for their value-add
Needs to be modified or replaced
with customer version
TI demo application on
TI evaluation platform
TI demo applications
on customer platform
Customer application
on customer platform
Customer application
on next generation
TI SoC platform
EDMA
Etc.
LLD IPC
CSL
Demo applications
EDMA
Etc.
LLD IPC
CSL
Tools
(UIA)
Tools
(UIA)
Next generation
TI platform
Customer
platform
Network
development
kit
Network
development
kit
TI platform
Network
development
kit
Software
overview
The software components (Figure 5) in BIOS MCSDK can be categorized into the following:
• Device-specific software drivers
• Platform-specific software
• Core target software
• Demonstrations and tools
6 Texas Instruments
Multicore software development kit May 2011
Device-Specific Software Drivers – This set of software includes chip support library, low level drivers, platform
library and transports. The software in this set is focused on simplifying access to the device hardware, including
accelerators, and is offered as a minimum layer API for application development.
Platform-Specific Software – This software provides example implementations of platform-specific func -tionality for use with TI reference platforms, but with the intent to be used as an example for customer platform
development activities.
The Platform Library abstracts the platform using a common API to simplify migration across devices. It provides
software utilities to control hardware parts (e.g., EEPROM, FLASH, UART) and performs platform/device initialization.
The Platform Library API is leveraged by common tools spanning different platforms. These include EEPROM
writer, NAND/NOR writer, and Power-On Self Test. Thus, to add these tools for a new device or platform, the work
is isolated to adding a Platform Library unique to that hardware. As with other components, the Platform Library
comes with a unit test application that can be used when porting the module to a new platform.
Core target content – This set of software provides the next level of functionality and includes the real-time
embedded operating system, inter-processor communication for communication across cores and devices, basic
networking stack and protocols, optimized application-specific algorithm libraries, and instrumentation tools.
One key multicore enabler includes inter-processor communication to enable efficient communication across
cores and devices using shared memory (inter-core communication) and peripherals such as sRIO, PCIe for
inter-device communication. Interprocessor communication mechanism and API provide support for explicit
threading multicore programming models. A common IPC interface also allows for easier movement of application
processing nodes across core and or devices as required for a multicore application design and optimization.
A second key enabler is instrumentation tools which are critical for providing a user visibility into application
execution, and the ability to analyze and optimize for performance. BIOS MCSDK includes a System Analyzer tool that
Demonstration applications
Algorithm libraries
HUA/OOB
MathLIB
Software framework componets
Interprocessor
Communications (IPC)
Chip Support Library (CSL)
Hardware
Low Level Driver (LLDs)
Instrumentation
tools (UIA, DVT)
IMGLIB MathLIB DSPLIB
SYS/BIOS
RTOS
Platform Library
POST
Bootloader
Communication protocols
TCP/IP Network
Development Kit (NDK)
Image processing
CPPI
QMSS
NETCP-PA
HyperLink
SRIO
TSIP
EDMA3
PCIe
Platform software
Fig. 5 – Software components of the BIOS MCSDK
7 Texas Instruments
Multicore software development kit May 2011
Fig. 6 – BIOS MCSDK System Analyzer tool
Fig. 7 – High-performance DSP Utility Application (HUA)
defines a set of APIs that allow instrumentation code to be inserted into the software in a portable manner that can be
reused across a wide range of TI platforms. An example of the graphical output of one application is below (Figure 6).
Demonstrations and tools – This set of software spans multiple devices and provides examples,
demonstrations and tools that build on top of the above software. The BIOS MCSDK includes demonstration
applications which are intended to serve as an example and show how to use foundational software to build
multicore applications. Demonstrations available for download in the current release include an “out of box”
application that showcases some key components of the BIOS MCSDK, and an image processing application
that displays multicore signal processing.
Tools include a common boot loader, FLASH and EEPROM writers, power-on self test for an evaluation board,
multicore/multi-image boot tool, and brief examples to boot from different modes (e.g., NAND/NOR, EMAC, SRIO).
Out of box demo
The “out of box” demo for BIOS MCSDK is the high-performance DSP Utility Application (HUA) which is
provided as a CCS project. Through illustrative code and web pages, it demonstrates how you can interface
your own DSP application to the various BIOS MCSDK software elements including SYS/BIOS, Network
Development Kit (NDK), the Chip Support Library (CSL), and Platform Library.
Upon execution, the HUA implements a web server that allows a user to connect via Ethernet to the
platform with a PC. The HUA allows a user to perform a variety of functions, such as read/write flash,
diagnostics, or provide statistics and information. Through illustrative code and web pages, it demonstrates
how you can interface your own DSP application to the various BIOS MCSDK software elements including
SYS/BIOS, Network Development Kit (NDK), the Chip Support Library (CSL), and Platform Library (Figure 7).
Image processing demo
Demonstrations
A042210
Important Notice: The products and services of Texas Instruments Incorporated and its subsidiaries described herein are sold subject to TI’s standard terms and
conditions of sale. Customers are advised to obtain the most current and complete information about TI products and services before placing orders. TI assumes no
liability for applications assistance, customer’s applications or product designs, software performance, or infringement of patents. The publication of information
regarding any other company’s products or services does not constitute TI’s approval, warranty or endorsement thereof.
© 2011 Texas Instruments Incorporated SPRY168A
The platform bar is a trademark of Texas Instruments.
All other trademarks are the property of their respective owners.
The Image Processing Demonstration (Figure 8) illustrates the integration of key components in the
BIOS MCSDK multicore signal processing. It utilizes inter-processor communication, optimized image
library, Network Development Kit, and system analyzer. The latter is used to collect and analyze
benchmark information.
This demonstration can be configured to run on any number of cores supported by the device. It is
partitioned into one master task on the first core and a number of slave tasks distributed across all
cores. The master task is responsible for partitioning the input data, distributing the work to slave tasks,
collecting results from slave tasks, and sending the output data. The algorithm that is currently supported
is edge detection, but is expandable to more algorithms.
TI’s MCSDK provides customers with a robust and integrated software development environment for
Linux and SYS/BIOS, with the goal of enabling rapid development and faster time to market with
high-performance DSPs based on the KeyStone architecture.
For more information about the MCSDK, visit www.ti.com/mcsdk , or visit www.ti.com/c66multicore
for more about the KeyStone architecture and C66x generation of high performance multicore DSPs.
Core 0
(SYS/BIOS)
Master
processing
node
NDK (DHCP, HTTP)
Image processing applcation software framework
Slave
processing nodes
Core 0
(SYS/BIOS)
Core 1
(SYS/BIOS)
Core N
(SYS/BIOS)
(IPC message Q)
(IPC message Q)
(IPC message Q)
Fig. 8 – The BIOS MCSDK’s Image processing application software framework
Summary
IMPORTANT NOTICE
TexasInstruments Incorporated andits subsidiaries(TI) reserve the right to makecorrections,modifications,enhancements,improvements,
andotherchangesto its productsandservicesatanytime andto discontinueanyproductorservicewithoutnotice.Customersshould
obtainthe latest relevant information beforeplacingordersandshouldverifythat suchinformation is currentandcomplete.Allproductsare
soldsubjectto TI’sterms andconditionsofsalesuppliedatthe time oforderacknowledgment.
TIwarrantsperformanceofits hardwareproductsto the specificationsapplicableatthe time ofsalein accordancewithTI’sstandard
warranty.Testingandotherqualitycontroltechniques areusedto the extentTIdeemsnecessaryto supportthis warranty.Exceptwhere
mandatedbygovernmentrequirements, testing ofallparametersofeachproductis notnecessarilyperformed.
TIassumesnoliability for applicationsassistanceorcustomerproductdesign.Customersareresponsible for their productsand
applicationsusingTIcomponents.Tominimizethe risks associatedwithcustomerproductsandapplications,customersshouldprovide
adequatedesignandoperatingsafeguards.
TIdoesnotwarrantorrepresent that anylicense, eitherexpressorimplied, is grantedunderanyTIpatentright, copyright,maskworkright,
orotherTIintellectual propertyright relatingto anycombination,machine,orprocessin whichTIproductsorservicesareused.Information
publishedbyTIregarding third-party productsorservicesdoesnotconstitutealicense from TIto usesuchproductsorservicesora
warrantyorendorsementthereof. Useofsuchinformation mayrequire alicense from athird partyunderthe patentsorotherintellectual
propertyofthe third party,oralicense from TIunderthe patentsorotherintellectual propertyofTI.
ReproductionofTIinformation in TIdatabooksordatasheetsis permissibleonlyif reproduction is withoutalterationandis accompanied
byallassociatedwarranties,conditions,limitations, andnotices.Reproductionofthis information withalterationis anunfairanddeceptive
businesspractice.TIis notresponsible orliable for suchaltereddocumentation.Information ofthird partiesmaybesubjectto additional
restrictions.
ResaleofTIproductsorserviceswithstatementsdifferentfrom orbeyondthe parametersstatedbyTIfor that productorservicevoidsall
expressandanyimplied warrantiesfor the associatedTIproductorserviceandis anunfairanddeceptivebusinesspractice.TIis not
responsible orliable for anysuchstatements.
TIproductsarenotauthorizedfor usein safety-criticalapplications(such aslife support)whereafailure ofthe TIproductwouldreasonably
beexpectedto causeseverepersonalinjury ordeath,unlessofficersofthe partieshaveexecutedanagreementspecificallygoverning
suchuse.Buyersrepresent that they haveallnecessaryexpertisein the safetyandregulatory ramifications oftheir applications,and
acknowledgeandagreethat they aresolelyresponsible for alllegal, regulatory andsafety-relatedrequirements concerningtheir products
andanyuseofTIproductsin suchsafety-criticalapplications,notwithstandinganyapplications-relatedinformation orsupportthat maybe
providedbyTI.Further,Buyersmustfully indemnify TIandits representatives againstanydamagesarisingoutofthe useofTIproductsin
suchsafety-criticalapplications.
TIproductsareneitherdesignednorintended for usein military/aerospaceapplicationsorenvironmentsunlessthe TIproductsare
specificallydesignatedbyTIasmilitary-gradeor"enhancedplastic." OnlyproductsdesignatedbyTIasmilitary-grademeetmilitary
specifications.Buyersacknowledgeandagreethat anysuchuseofTIproductswhichTIhasnotdesignatedasmilitary-gradeis solelyat
the Buyer'srisk, andthat they aresolelyresponsible for compliancewithalllegal andregulatory requirements in connectionwithsuchuse.
TIproductsareneitherdesignednorintended for usein automotiveapplicationsorenvironmentsunlessthe specificTIproductsare
designatedbyTIascompliantwithISO/TS 16949requirements. Buyersacknowledgeandagreethat, if they useanynon-designated
productsin automotiveapplications,TIwillnotberesponsible for anyfailure to meetsuchrequirements.
FollowingareURLswhereyoucanobtaininformation onotherTexasInstruments productsandapplicationsolutions:
Products Applications
Audio www.ti.com/audio CommunicationsandTelecom www.ti.com/communications
Amplifiers amplifier.ti.com ComputersandPeripherals www.ti.com/computers
DataConverters dataconverter.ti.com ConsumerElectronics www.ti.com/consumer-apps
DLP®Products www.dlp.com EnergyandLighting www.ti.com/energy
DSP dsp.ti.com Industrial www.ti.com/industrial
ClocksandTimers www.ti.com/clocks Medical www.ti.com/medical
Interface interface.ti.com Security www.ti.com/security
Logic logic.ti.com Space,AvionicsandDefense www.ti.com/space-avionics-defense
PowerMgmt power.ti.com Transportationand www.ti.com/automotive
Automotive
Microcontrollers microcontroller.ti.com VideoandImaging www.ti.com/video
RFID www.ti-rfid.com Wireless www.ti.com/wireless-apps
RF/IFandZigBee®Solutions www.ti.com/lprf
TIE2ECommunityHomePage e2e.ti.com
MailingAddress:TexasInstruments, PostOfficeBox655303,Dallas,Texas75265
Copyright©2011,TexasInstruments Incorporated
No comments:
Post a Comment