DSP/BIOS™ LINK The foundation for GPP-DSP solutions.

16
DSP/BIOS™ LINK DSP/BIOS™ LINK The foundation for GPP-DSP solutions

Transcript of DSP/BIOS™ LINK The foundation for GPP-DSP solutions.

DSP/BIOS™ LINKDSP/BIOS™ LINKThe foundation for GPP-DSP

solutions

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…

Features Supported

DSP Boot-loading Messaging Data Transfer

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 (!)…

Software Architecture

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

APIs

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