dsp/bios™ link the foundation for gpp-dsp solutions
TRANSCRIPT
What is DSP/BIOS™ Link? It is a foundation software for the inter-processor
communication across the GPP-DSP boundary. It can be used across:
– SoCs with GPP and DSP.– Discrete GPP and DSP platforms.
Target Operating Systems:– On DSP: DSP/BIOS™– On GPP: OS of your choice.
Can be ported to any OS using the porting kit…
DSP Boot-loadingDSP executable is present in the GPP file systemThe specified executable is loaded into DSP memory
(internal/external)The DSP execution is started at its entry pointBoot-loading using: MPUI, HPI, PCI etc.
GPPGPP DSPDSP
DSP DSP internal internal memorymemory
DSP componentDSP componentExternal External MemoryMemory
GPP File SystemGPP File System
DSP Executable
DSP Executable
PROC componentPROC component
HALHAL
Messaging Messaging provides logical connectivity between GPP and DSP
clients Messages are sent at a higher priority than data buffers Messages can be variable sized Messages are sent and received through Message Queues Message Queues have unique system-wide names. Senders locate
the Message Queue using this name to send messages to it. Message Queue can have single reader, multiple writers
Message Queue object
Reader
Writer
Writer
Data Transfer Data Channel is a virtual entity providing interface to send /
receive data buffers over a physical connection. Multiple data channels are multiplexed over the same physical
link. These are uni-directional. They use the issue/ reclaim model followed by SIO.
Data DestinationData Source
CHNL_Reclaim ()
Empty Buffers
CHNL_Reclaim ()CHNL_Issue () CHNL_Issue ()
Empty BuffersFilled Buffers
Features of DSP/BIOS™ Link Source Code release
– ‘C’ API.
– IOM Driver Model.
– Constructed using principles of ‘Design by Contract’. Portable
– OS Adaptation Layer allows easy porting to a different OS without changing basic functionality.
– Modular Design for scalability limits scope of change in the system i.e. change/ update with local scope is contained within component.
Scalable– Link with command messaging, data transfer and DSP boot loading
capabilities
– Link with command messaging functionality only.
– Link with data streaming functionality only.
– Basic Link DSP with boot loading functionality only.
– Basic DSP Control functions only.
Advantages of DSP/BIOS™ Link
A generic API that abstracts the characteristics of the DSP and physical link connecting GPP and DSP from the applications.
Ensures that API can be scaled to the needs of target application and/or deployed environment.
Ensures that API is portable across different GPP operating systems.– Applications are portable across platforms & operating
systems. The level of portability may be influenced by various factors…
Enables development of application specific frameworks e.g. Audio, Video, Automotive (!)…
Product Software Architecture
DSP/BIOSDSP/BIOS
GPPGPPOSOS
PROCESSOR MANAGERPROCESSOR MANAGER
OSOSADAPTATIONADAPTATION
LAYERLAYER
LINKLINKDRIVERDRIVER
OTHEROTHERDRIVERSDRIVERS
APPLICATION / INFRASTRUCTUREAPPLICATION / INFRASTRUCTURE
DSP/BIOS LINK
GPP OS DSP/BIOS
ApplicationDriversDSP/BIOS Link Boundary
APPLICATION / INFRASTRUCTUREAPPLICATION / INFRASTRUCTURE
APIAPI
GPPGPP
LINKLINKDRIVERDRIVER
DSPDSP
GPP-side
GPP
PROCESSOR MANAGER
OSAL LINK DRIVER
APPLICATION / INFRASTRUCTURE
CFG
TRC
KFILE
PRCS
SYNC
MEM
ISR
DPC
DRV
LDRV_PROC LDRV_CHNLLDRV_MSGQ
LDRV_DATADSP
PMGR_PROC PMGR_CHNLPMGR_MSGQ
COFF
LINK DRIVER INTERFACE
DSP/BIOS™ LINK API
PROC CHNL MSGQ
<LNK>_DATA<LNK>_MQT
<LNK>_IPS
POOL
LDRV_POOL
<LNK>_POOL
LDRV_DRV
<LNK>_DRV
Boot Loading Data Transfer MessagingData Transfer And/Or MessagingColor coding
DSP/BIOSDSP/BIOS
DSP-side
APPLICATION / INFRASTRUCTURE
DSP
LINK DRIVER
STANDARD DSP/BIOS API
OTHER DRIVERS
SIO GIO MSGQ
<LNK>_DATA<LNK>_MQT
<LNK>_IPS
<LNK>_POOL
<LNK>_DRV
POOL
Boot Loading Data Transfer MessagingData Transfer And/Or MessagingColor coding
PROC This component provides APIs for boot-loading and controlling
the execution of DSP.
PROC_Instrument
PROC_GetStatePROC_Debug
PROC_Control
PROC_StopPROC_Start
PROC_Load
PROC_DetachPROC_Attach
PROC_DestroyPROC_Setup
CHNL This component provides capability to stream data between
clients running on GPP with clients running on DSP.
CHNL_Instrument
CHNL_Debug
CHNL_Control
CHNL_FlushCHNL_Idle
CHNL_ReclaimCHNL_Issue
CHNL_FreeBufferCHNL_AllocateBuffer
CHNL_DeleteCHNL_Create
MSGQ This component provides capability to exchange variable sized
messages between clients running on GPP and those running on DSP.
MSGQ_InstrumentMSGQ_Debug
MSGQ_SetErrorHandlerMSGQ_GetSrcQueue
MSGQ_GetMSGQ_Put
MSGQ_FreeMSGQ_Alloc
MSGQ_Release
MSGQ_LocateAsyncMSGQ_Locate
MSGQ_CloseMSGQ_Open
MSGQ_TransportCloseMSGQ_TransportOpen