SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
The DSP/BIOS Bridge

Víctor Manuel Jáquez Leal
Igalia

06 February 2010

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

1 / 41
The TI OMAP3 processor

I

The TI OMAP3 processor

P

The DSP/BIOS Bridge

Q

The ingredients

R

Future

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

2 / 41
The TI OMAP3 processor

Parallel computing

Serial computing is now dead.
€—r—llel ™omputing @whi™h st—rted more th—n RH ye—rs —goA is —
revolution th—t is now upon us

Programming for serial computing is already dicult
€rogr—mming for p—r—llel ™omputing will only ex—™er˜—te this di0™ulty
por p—r—llelism to su™™eed it must produ™e ˜etter perform—n™eD
e0™ien™y —nd reli—˜ility

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

2 / 41
The TI OMAP3 processor

OMAP 3530/20

720 MHz ARM Cortex A8
520 MHz TMS320C64x+ DSP
POWERVR SGX Graphics Accelerator

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

3 / 41
The TI OMAP3 processor

Devices and boards using OMAP3

There are a lot!

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

4 / 41
The TI OMAP3 processor

The C64x+ DSP

Digital Signal Processor
ƒpe™i—lized mi™ropro™essor
por f—st exe™ution of digit—l sign—l pro™essing
vow power ™onsumption

Digital Signal Processing
we—surement —nd (ltering of ™ontinuous re—lEworld —n—log sign—ls
eudioD videoD spee™hD —re ex—mples of those sign—ls

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

5 / 41
The DSP/BIOS Bridge

DSP-GPP parallel computing

Features to control the DSP
Mechanisms to communicate with DSP
Enabling parallel processing for multimedia acceleration

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

6 / 41
The DSP/BIOS Bridge

Available drivers

dsp-gateway
heveloped ˜y xoki— for the w—emo snternet „—˜lets
st works on ywe€I —nd ywe€P
st9s produ™tion re—dy
st9s used on the xoki— xVHH —nd xVIH
st follows vinux st—nd—rds —nd it9s ™lose to upstre—m —™™ept—n™e
„here9s ™ode for ywe€Q ˜ut it h—sn9t ˜een thoroughly tested

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

7 / 41
The DSP/BIOS Bridge

Available drivers

dsp-bridge
yrigin—lly developed ˜y „s
st still doesn9t meet vinux st—nd—rds —lthough there h—s ˜een — lot of
progress
ynly the e‚w side is —v—il—˜le —s open sour™eY the hƒ€ side is
™ompletely ™losed

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

8 / 41
The DSP/BIOS Bridge

Available drivers

dsp-link
e slimmer version of the dspE˜ridge
elso developed ˜y „s
st supports — wide v—riety of devi™es @h—†in™iD ywe€PD ywe€QD et™A
„he kernel driver doesn9t meet the vinux kernel ™oding ™onventions
„he sour™es h—ven9t ˜een su˜mitted for reviewD —nd it is not ™urrently
pl—nned to ˜e merged into upstre—m kernels

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

9 / 41
The DSP/BIOS Bridge

DSP/BIOS Bridge

General Architecture

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

10 / 41
The DSP/BIOS Bridge

Architecture

It is designed for one GPP and one or more attached DSPs
„he q€€ is ™onsidered the m—ster or host pro™essor
„he —tt—™hed hƒ€s —re pro™essing resour™es th—t ™—n ˜e used ˜y
—ppli™—tions running on the q€€

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

11 / 41
The DSP/BIOS Bridge

Architecture

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

12 / 41
The DSP/BIOS Bridge

Architecture

The Bridge supplies a link between a GPP program and a DSP task
The communication link is partitioned into two types:
wess—ging @shortD (xedElength p—™ketsAX por p—ssing ™ontrol —nd st—tus
inform—tion
h—t— stre—ming @multipleD l—rge ˜u'ersAX for stre—ming re—lEtime d—t—

Each sub-link operates independently
A GPP client can specify what inputs and outputs a DSP task uses

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

13 / 41
The DSP/BIOS Bridge

GPP Sopftware Architecture

The GPP OS see the DSP just as another peripheral device
root@beagleboard:~# ls -la /dev/DspBridge
crw-rw---- 1 root root 251, 0 Jan 1 2000 /dev/DspBridge

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

14 / 41
The DSP/BIOS Bridge

DSP Software Architecture

From the DSP/BIOS perspective, the bridge provides
e devi™eEindependent stre—ming sGy @ƒ„‚wA interf—™e
e mess—ging interf—™e @xyhiA
e ‚esour™e w—n—ger @‚wA ƒerver

The task environment is established by the RM Server

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

15 / 41
The DSP/BIOS Bridge

Components

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

16 / 41
The DSP/BIOS Bridge

Components (GPP)

Resource Manager
hyn—mi™—lly inst—nti—ting hƒ€ resour™es
wonitoring hƒ€ resour™es
hyn—mi™—lly lo—ding hƒ€ ™ode —s needed
smplementing poli™ies for m—n—ging hƒ€ resour™es

Platform Manager
ƒt—ti™—lly lo—ding — ˜—se ™ode im—ge for the hƒ€
ƒt—rting —nd stopping the hƒ€
smplementing d—t— stre—ming

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

17 / 41
The DSP/BIOS Bridge

Components (GPP)

OS adaptation layer
DSP link driver for low level communication
A dynamic conguration database (DCD) stores conguration
information

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

18 / 41
The DSP/BIOS Bridge

Components (DSP)

DSP/BIOS communicates with the GPP via the link driver
On top of the DSP/BIOS sits the Resource Manager (RM) Server
hyn—mi™—lly ™re—teD exe™ute —nd destroy hƒ€ pro™essing nodes under
‚esour™e w—n—ger ™ontrol
‚outing mess—ges ˜etween the q€€ —nd individu—l nodes
eltering t—sk priorities
‚esponding to ‚esour™e w—n—ger ™on(gur—tion ™omm—nds
ƒt—tus queries

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

19 / 41
The DSP/BIOS Bridge

Components (DSP)

DSP task nodes
„hey —re sep—r—te exe™ution thre—ds running on the hƒ€
„hey implement ™ontrol or sign—l pro™essing —lgorithms
„hey ™ommuni™—te with one —notherD —nd with the q€€

via short xed length messages and/or device-independent stream I/O.

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

20 / 41
The DSP/BIOS Bridge

GPP Side interface

Manager
…sed to o˜t—in hƒ€ pro™essor —nd m—nipul—te node ™on(gur—tion
inform—tion

Processor
…sed to m—nipul—te hƒ€ pro™essor o˜je™tsD whi™h represent p—rti™ul—r
hƒ€ su˜systems linked to the q€€
€ro™essor o˜je™ts —re used to ™re—teD exe™ute —nd delete nodes on —
p—rti™ul—r hƒ€ su˜system
es hƒ€Gfsyƒ fridge ™lients m—ke pro™essor e€s ™—llsD the
™orresponding hƒ€ pro™essor will tr—nsition ˜etween — set of
preEde(ned st—tesF

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

21 / 41
The DSP/BIOS Bridge

GPP Side interface

Node
…sed to m—nipul—te node o˜je™tsD whi™h represent ™ontrol —nd sign—l
pro™essing elements running on — p—rti™ul—r hƒ€

Stream
…sed to m—nipul—te stre—m o˜je™tsD whi™h represent logi™—l ™h—nnels for
stre—ming d—t— ˜etween the q€€ —nd nodes on — p—rti™ul—r hƒ€

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

22 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Load the device driver
root@beagleboard:~# lsmod
Module
Size Used by
dspbridge
729 0
bridgedriver
187569 1

Load a base image to the DSP
~# cat /etc/modprobe.d/bridgedriver.conf
options bridgedriver base_img=/lib/dsp/baseimage.dof

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

23 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Open a handle to the DSP/BIOS Bridge device
dsp •h— ndle a dsp•open @ A Y
i f @ dsp •h—n dle ` H A {
p r • e r r @ 4 f — i l e d t o open hƒ€4 A Y
r e t u r n − IY
}

Reserve GPP-side resources for controlling a particular DSP
i f @ 3 d s p • — t t — ™ h @ dsp•h—ndle D H D x…vv D 8p r o ™ A A {
p r • e r r @ 4 dsp — t t — ™ h f — i l e d 4 A Y
r e t a − IY
goto l e — v e Y
}
Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

24 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Allocate DSP node for the selected processor
const dsp•uuid•t u u i d a
{ H xIP—Q™Q™I D H xdHIS D H xIIdR D H x W f D H xTW D
{ H xHH D H x™H D H x R f D H xQ— D H xSW D H x — e } } Y
i f @ 3 d s p • n o d e • — l l o ™ — t e @ dsp•h—ndle D p r o™ D 8u u i d D
x…vv D x…vv D 8node A A {
p r • e r r @ 4 dsp node — l l o ™ — t e f — i l e d 4 A Y
r e t u r n x…vv Y
}

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

25 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Create the node on the DSP
i f @ 3 dsp•node•™re—te @ dsp•h—ndle D node A A {
p r • e r r @ 4 dsp node ™ r e — t e f — i l e d 4 A Y
r e t u r n x…vv Y
}

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

26 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Launch the task node into their execute phase
i f @ 3 dsp•node•run @ dsp•h—ndle D node A A {
p r • e r r @ 4 dsp node r u n f — i l e d 4 A Y
return f — l s e Y
}

yn™e the t—sk is runningD the q€€ ™lient ™—n stre—m d—t— ˜u'ers
toGfrom the t—sk —s well —s ex™h—nge short mess—ges with the t—sk

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

27 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Stream data to/from DSP tasks
„he q€€ ™lient then —llo™—tes d—t— ˜u'ers for the stre—m

If the buer are already pre-allocated, the GPP client can prepare the
buers for the stream
yn™e —llo™—ted —nd prep—red

They can be used to submit buers to a stream
Submitting a data buer to a stream will not block GPP thread
execution.
They can request a buer back from a stream
Requesting a buer back from the stream may cause the GPP thread
to block

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

28 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Exchange messages with DSP nodes
i f @ 3 dsp•send•mess—ge @ dsp•h—ndle D node D I D H D H A A {
p r • e r r @ 4 dsp node p u t mess—ge f — i l e d 4 A Y
continue Y
}
i f @ dsp•node•get•mess—ge @ dsp•h—ndle D node D8msg D H A A
p r i n t f @ 4 € i n g X s d 7d wsg 7d wem 7d’n4 D
msg F ™md D msg F —rg•I D msg F —rg•P A Y

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

29 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Terminate DSP nodes
i f @ 3 dsp•node•termin—te @ dsp•h—ndle D node D
8e x i t • s t — t u s A A {
p r • e r r @ 4 dsp node t e r m i n — t e f — i l e d X 7l x 4 D
exit•st—tus AY
return f — l s e Y
}

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

30 / 41
The DSP/BIOS Bridge

Sequence for nodes controlling

Delete DSP nodes
i f @ 3 dsp•node•free @ dsp•h—ndle D node A A {
p r • e r r @ 4 dsp node f r e e f — i l e d 4 A Y
return f — l s e Y
}

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

31 / 41
The ingredients

The kernel

DSP/BIOS Bridge driver is not in Linus' branch yet
Neither in linux-omap's main branch
httpXGGgitFkernelForgGcpalinuxGkernelGgitGtmlindGlinuxEom—pE
PFTFgitY—ashortlogYharefsGhe—dsGdsp˜ridge
httpXGGdevFom—pzoomForgGcpatidsp˜ridgeGkernelE
dsp˜ridgeFgitY—ashortlogYharefsGhe—dsGdsp˜ridge
httpXGGgitoriousForgG£
felipe™GlinuxEom—pGfelipe™

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

32 / 41
The ingredients

The GPP libraries

TI dbapi
httpXGGdevFom—pzoomForgGcpatidsp˜ridgeGusersp—™eE
dsp˜ridgeFgitY—asumm—ry

dsp_bridge
httpXGGgithu˜F™omGfelipe™GgstEdsp

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

33 / 41
The ingredients

Applications

Samples
httpXGGgithu˜F™omGfelipe™GdspEdummy
httpXGGgitoriousForgGvj—quezE˜e—gle˜o—rdGdspEs—mples

Applications
httpXGGm—emoFgitoriousForgGm—emoEmultimedi—GdspEtools
httpXGGgithu˜F™omGfelipe™GgstEdsp

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

34 / 41
The ingredients

Socket Nodes

Samples
httpXGGdevFom—pzoomForgGcpatidsp˜ridgeGusersp—™eE
dsp˜ridgeFgitY—asumm—ry

Multimedia
€—rt of ypenweˆ
httpsXGGgforgeFtiF™omGgfGproje™tGopenm—xGfrsG
httpXGG™odeFentropyw—veF™omGgitcpaleonor—FgitY—atree

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

35 / 41
The ingredients

C64x+ toolchain

Free as beer
Compiler
httpsXGGwwwE
—FtiF™omGdownlo—dsGsds•supportG„sgodegener—tion„oolsGdownlo—dFhtm

DSP/BIOS (libraries)

httpXGGsoftw—reE
dlFtiF™omGdspsGdsps•registered•swGsdo•s˜Gt—rget™ontentG˜iosGindexFhtm

dobuild tools
€—rt of the usersp—™eEdsp˜ridge p—™k—ge

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

36 / 41
The ingredients

All together

Marmita
yi re™ipes overl—y
st is — work in progress
ynly tested in the fe—gle˜o—rd @rev fTA
winim—l im—ge @IHw˜A
httpXGGgitoriousForgGvj—quezE˜e—gle˜o—rdGm—rmit—

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

37 / 41
The ingredients

Marmita

It's based on Angstrom distribution
Provides recipes for
felipe™9s kernel PFTFQP

DSS2
dspbridge
gstEdsp
dspEtools
dspEs—mples
li˜˜ridge @dsp˜ridge e€sA
li˜omxEti

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

38 / 41
Future

OMAP4

DSP/BIOS Bridge will be deprecated :(
syslink is the new thing

ARM M3 1GHz dual core (Ducati)
DSP TMS320C64x (Tesla)
ARM A9 1GHz dual core

http://dev.omapzoom.org/?p=tisyslink/kernel-syslink.git;a=summary

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

39 / 41
Future

The trend

More cores
More processing units
More heterogeneity
MORE COMPLEXITY

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

40 / 41
Future

Thank you

Questions?

Víctor Manuel Jáquez Leal (Igalia)

The DSP/BIOS Bridge

06 February 2010

41 / 41

Mais conteúdo relacionado

Mais de Igalia

Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

Mais de Igalia (20)

To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 
Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...
 
Async page flip in DRM atomic API
Async page flip in DRM  atomic APIAsync page flip in DRM  atomic API
Async page flip in DRM atomic API
 
From the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepFrom the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by Step
 
Migrating Babel from CommonJS to ESM
Migrating Babel     from CommonJS to ESMMigrating Babel     from CommonJS to ESM
Migrating Babel from CommonJS to ESM
 
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023
 
On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

ARM and DSP talking to each other in OMAP3: the dspbridge (FOSDEM 2010)

  • 1. The DSP/BIOS Bridge Víctor Manuel Jáquez Leal Igalia 06 February 2010 Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 1 / 41
  • 2. The TI OMAP3 processor I The TI OMAP3 processor P The DSP/BIOS Bridge Q The ingredients R Future Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 2 / 41
  • 3. The TI OMAP3 processor Parallel computing Serial computing is now dead. €—r—llel ™omputing @whi™h st—rted more th—n RH ye—rs —goA is — revolution th—t is now upon us Programming for serial computing is already dicult €rogr—mming for p—r—llel ™omputing will only ex—™er˜—te this di0™ulty por p—r—llelism to su™™eed it must produ™e ˜etter perform—n™eD e0™ien™y —nd reli—˜ility Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 2 / 41
  • 4. The TI OMAP3 processor OMAP 3530/20 720 MHz ARM Cortex A8 520 MHz TMS320C64x+ DSP POWERVR SGX Graphics Accelerator Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 3 / 41
  • 5. The TI OMAP3 processor Devices and boards using OMAP3 There are a lot! Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 4 / 41
  • 6. The TI OMAP3 processor The C64x+ DSP Digital Signal Processor ƒpe™i—lized mi™ropro™essor por f—st exe™ution of digit—l sign—l pro™essing vow power ™onsumption Digital Signal Processing we—surement —nd (ltering of ™ontinuous re—lEworld —n—log sign—ls eudioD videoD spee™hD —re ex—mples of those sign—ls Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 5 / 41
  • 7. The DSP/BIOS Bridge DSP-GPP parallel computing Features to control the DSP Mechanisms to communicate with DSP Enabling parallel processing for multimedia acceleration Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 6 / 41
  • 8. The DSP/BIOS Bridge Available drivers dsp-gateway heveloped ˜y xoki— for the w—emo snternet „—˜lets st works on ywe€I —nd ywe€P st9s produ™tion re—dy st9s used on the xoki— xVHH —nd xVIH st follows vinux st—nd—rds —nd it9s ™lose to upstre—m —™™ept—n™e „here9s ™ode for ywe€Q ˜ut it h—sn9t ˜een thoroughly tested Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 7 / 41
  • 9. The DSP/BIOS Bridge Available drivers dsp-bridge yrigin—lly developed ˜y „s st still doesn9t meet vinux st—nd—rds —lthough there h—s ˜een — lot of progress ynly the e‚w side is —v—il—˜le —s open sour™eY the hƒ€ side is ™ompletely ™losed Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 8 / 41
  • 10. The DSP/BIOS Bridge Available drivers dsp-link e slimmer version of the dspE˜ridge elso developed ˜y „s st supports — wide v—riety of devi™es @h—†in™iD ywe€PD ywe€QD et™A „he kernel driver doesn9t meet the vinux kernel ™oding ™onventions „he sour™es h—ven9t ˜een su˜mitted for reviewD —nd it is not ™urrently pl—nned to ˜e merged into upstre—m kernels Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 9 / 41
  • 11. The DSP/BIOS Bridge DSP/BIOS Bridge General Architecture Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 10 / 41
  • 12. The DSP/BIOS Bridge Architecture It is designed for one GPP and one or more attached DSPs „he q€€ is ™onsidered the m—ster or host pro™essor „he —tt—™hed hƒ€s —re pro™essing resour™es th—t ™—n ˜e used ˜y —ppli™—tions running on the q€€ Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 11 / 41
  • 13. The DSP/BIOS Bridge Architecture Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 12 / 41
  • 14. The DSP/BIOS Bridge Architecture The Bridge supplies a link between a GPP program and a DSP task The communication link is partitioned into two types: wess—ging @shortD (xedElength p—™ketsAX por p—ssing ™ontrol —nd st—tus inform—tion h—t— stre—ming @multipleD l—rge ˜u'ersAX for stre—ming re—lEtime d—t— Each sub-link operates independently A GPP client can specify what inputs and outputs a DSP task uses Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 13 / 41
  • 15. The DSP/BIOS Bridge GPP Sopftware Architecture The GPP OS see the DSP just as another peripheral device root@beagleboard:~# ls -la /dev/DspBridge crw-rw---- 1 root root 251, 0 Jan 1 2000 /dev/DspBridge Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 14 / 41
  • 16. The DSP/BIOS Bridge DSP Software Architecture From the DSP/BIOS perspective, the bridge provides e devi™eEindependent stre—ming sGy @ƒ„‚wA interf—™e e mess—ging interf—™e @xyhiA e ‚esour™e w—n—ger @‚wA ƒerver The task environment is established by the RM Server Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 15 / 41
  • 17. The DSP/BIOS Bridge Components Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 16 / 41
  • 18. The DSP/BIOS Bridge Components (GPP) Resource Manager hyn—mi™—lly inst—nti—ting hƒ€ resour™es wonitoring hƒ€ resour™es hyn—mi™—lly lo—ding hƒ€ ™ode —s needed smplementing poli™ies for m—n—ging hƒ€ resour™es Platform Manager ƒt—ti™—lly lo—ding — ˜—se ™ode im—ge for the hƒ€ ƒt—rting —nd stopping the hƒ€ smplementing d—t— stre—ming Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 17 / 41
  • 19. The DSP/BIOS Bridge Components (GPP) OS adaptation layer DSP link driver for low level communication A dynamic conguration database (DCD) stores conguration information Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 18 / 41
  • 20. The DSP/BIOS Bridge Components (DSP) DSP/BIOS communicates with the GPP via the link driver On top of the DSP/BIOS sits the Resource Manager (RM) Server hyn—mi™—lly ™re—teD exe™ute —nd destroy hƒ€ pro™essing nodes under ‚esour™e w—n—ger ™ontrol ‚outing mess—ges ˜etween the q€€ —nd individu—l nodes eltering t—sk priorities ‚esponding to ‚esour™e w—n—ger ™on(gur—tion ™omm—nds ƒt—tus queries Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 19 / 41
  • 21. The DSP/BIOS Bridge Components (DSP) DSP task nodes „hey —re sep—r—te exe™ution thre—ds running on the hƒ€ „hey implement ™ontrol or sign—l pro™essing —lgorithms „hey ™ommuni™—te with one —notherD —nd with the q€€ via short xed length messages and/or device-independent stream I/O. Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 20 / 41
  • 22. The DSP/BIOS Bridge GPP Side interface Manager …sed to o˜t—in hƒ€ pro™essor —nd m—nipul—te node ™on(gur—tion inform—tion Processor …sed to m—nipul—te hƒ€ pro™essor o˜je™tsD whi™h represent p—rti™ul—r hƒ€ su˜systems linked to the q€€ €ro™essor o˜je™ts —re used to ™re—teD exe™ute —nd delete nodes on — p—rti™ul—r hƒ€ su˜system es hƒ€Gfsyƒ fridge ™lients m—ke pro™essor e€s ™—llsD the ™orresponding hƒ€ pro™essor will tr—nsition ˜etween — set of preEde(ned st—tesF Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 21 / 41
  • 23. The DSP/BIOS Bridge GPP Side interface Node …sed to m—nipul—te node o˜je™tsD whi™h represent ™ontrol —nd sign—l pro™essing elements running on — p—rti™ul—r hƒ€ Stream …sed to m—nipul—te stre—m o˜je™tsD whi™h represent logi™—l ™h—nnels for stre—ming d—t— ˜etween the q€€ —nd nodes on — p—rti™ul—r hƒ€ Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 22 / 41
  • 24. The DSP/BIOS Bridge Sequence for nodes controlling Load the device driver root@beagleboard:~# lsmod Module Size Used by dspbridge 729 0 bridgedriver 187569 1 Load a base image to the DSP ~# cat /etc/modprobe.d/bridgedriver.conf options bridgedriver base_img=/lib/dsp/baseimage.dof Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 23 / 41
  • 25. The DSP/BIOS Bridge Sequence for nodes controlling Open a handle to the DSP/BIOS Bridge device dsp •h— ndle a dsp•open @ A Y i f @ dsp •h—n dle ` H A { p r • e r r @ 4 f — i l e d t o open hƒ€4 A Y r e t u r n − IY } Reserve GPP-side resources for controlling a particular DSP i f @ 3 d s p • — t t — ™ h @ dsp•h—ndle D H D x…vv D 8p r o ™ A A { p r • e r r @ 4 dsp — t t — ™ h f — i l e d 4 A Y r e t a − IY goto l e — v e Y } Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 24 / 41
  • 26. The DSP/BIOS Bridge Sequence for nodes controlling Allocate DSP node for the selected processor const dsp•uuid•t u u i d a { H xIP—Q™Q™I D H xdHIS D H xIIdR D H x W f D H xTW D { H xHH D H x™H D H x R f D H xQ— D H xSW D H x — e } } Y i f @ 3 d s p • n o d e • — l l o ™ — t e @ dsp•h—ndle D p r o™ D 8u u i d D x…vv D x…vv D 8node A A { p r • e r r @ 4 dsp node — l l o ™ — t e f — i l e d 4 A Y r e t u r n x…vv Y } Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 25 / 41
  • 27. The DSP/BIOS Bridge Sequence for nodes controlling Create the node on the DSP i f @ 3 dsp•node•™re—te @ dsp•h—ndle D node A A { p r • e r r @ 4 dsp node ™ r e — t e f — i l e d 4 A Y r e t u r n x…vv Y } Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 26 / 41
  • 28. The DSP/BIOS Bridge Sequence for nodes controlling Launch the task node into their execute phase i f @ 3 dsp•node•run @ dsp•h—ndle D node A A { p r • e r r @ 4 dsp node r u n f — i l e d 4 A Y return f — l s e Y } yn™e the t—sk is runningD the q€€ ™lient ™—n stre—m d—t— ˜u'ers toGfrom the t—sk —s well —s ex™h—nge short mess—ges with the t—sk Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 27 / 41
  • 29. The DSP/BIOS Bridge Sequence for nodes controlling Stream data to/from DSP tasks „he q€€ ™lient then —llo™—tes d—t— ˜u'ers for the stre—m If the buer are already pre-allocated, the GPP client can prepare the buers for the stream yn™e —llo™—ted —nd prep—red They can be used to submit buers to a stream Submitting a data buer to a stream will not block GPP thread execution. They can request a buer back from a stream Requesting a buer back from the stream may cause the GPP thread to block Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 28 / 41
  • 30. The DSP/BIOS Bridge Sequence for nodes controlling Exchange messages with DSP nodes i f @ 3 dsp•send•mess—ge @ dsp•h—ndle D node D I D H D H A A { p r • e r r @ 4 dsp node p u t mess—ge f — i l e d 4 A Y continue Y } i f @ dsp•node•get•mess—ge @ dsp•h—ndle D node D8msg D H A A p r i n t f @ 4 € i n g X s d 7d wsg 7d wem 7d’n4 D msg F ™md D msg F —rg•I D msg F —rg•P A Y Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 29 / 41
  • 31. The DSP/BIOS Bridge Sequence for nodes controlling Terminate DSP nodes i f @ 3 dsp•node•termin—te @ dsp•h—ndle D node D 8e x i t • s t — t u s A A { p r • e r r @ 4 dsp node t e r m i n — t e f — i l e d X 7l x 4 D exit•st—tus AY return f — l s e Y } Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 30 / 41
  • 32. The DSP/BIOS Bridge Sequence for nodes controlling Delete DSP nodes i f @ 3 dsp•node•free @ dsp•h—ndle D node A A { p r • e r r @ 4 dsp node f r e e f — i l e d 4 A Y return f — l s e Y } Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 31 / 41
  • 33. The ingredients The kernel DSP/BIOS Bridge driver is not in Linus' branch yet Neither in linux-omap's main branch httpXGGgitFkernelForgGcpalinuxGkernelGgitGtmlindGlinuxEom—pE PFTFgitY—ashortlogYharefsGhe—dsGdsp˜ridge httpXGGdevFom—pzoomForgGcpatidsp˜ridgeGkernelE dsp˜ridgeFgitY—ashortlogYharefsGhe—dsGdsp˜ridge httpXGGgitoriousForgG£ felipe™GlinuxEom—pGfelipe™ Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 32 / 41
  • 34. The ingredients The GPP libraries TI dbapi httpXGGdevFom—pzoomForgGcpatidsp˜ridgeGusersp—™eE dsp˜ridgeFgitY—asumm—ry dsp_bridge httpXGGgithu˜F™omGfelipe™GgstEdsp Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 33 / 41
  • 36. The ingredients Socket Nodes Samples httpXGGdevFom—pzoomForgGcpatidsp˜ridgeGusersp—™eE dsp˜ridgeFgitY—asumm—ry Multimedia €—rt of ypenweˆ httpsXGGgforgeFtiF™omGgfGproje™tGopenm—xGfrsG httpXGG™odeFentropyw—veF™omGgitcpaleonor—FgitY—atree Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 35 / 41
  • 37. The ingredients C64x+ toolchain Free as beer Compiler httpsXGGwwwE —FtiF™omGdownlo—dsGsds•supportG„sgodegener—tion„oolsGdownlo—dFhtm DSP/BIOS (libraries) httpXGGsoftw—reE dlFtiF™omGdspsGdsps•registered•swGsdo•s˜Gt—rget™ontentG˜iosGindexFhtm dobuild tools €—rt of the usersp—™eEdsp˜ridge p—™k—ge Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 36 / 41
  • 38. The ingredients All together Marmita yi re™ipes overl—y st is — work in progress ynly tested in the fe—gle˜o—rd @rev fTA winim—l im—ge @IHw˜A httpXGGgitoriousForgGvj—quezE˜e—gle˜o—rdGm—rmit— Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 37 / 41
  • 39. The ingredients Marmita It's based on Angstrom distribution Provides recipes for felipe™9s kernel PFTFQP DSS2 dspbridge gstEdsp dspEtools dspEs—mples li˜˜ridge @dsp˜ridge e€sA li˜omxEti Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 38 / 41
  • 40. Future OMAP4 DSP/BIOS Bridge will be deprecated :( syslink is the new thing ARM M3 1GHz dual core (Ducati) DSP TMS320C64x (Tesla) ARM A9 1GHz dual core http://dev.omapzoom.org/?p=tisyslink/kernel-syslink.git;a=summary Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 39 / 41
  • 41. Future The trend More cores More processing units More heterogeneity MORE COMPLEXITY Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 40 / 41
  • 42. Future Thank you Questions? Víctor Manuel Jáquez Leal (Igalia) The DSP/BIOS Bridge 06 February 2010 41 / 41