The magical DSP?


Bosbeetle

Terminally lost
Joined
Sep 7, 2008
Messages
4,282
Age
43
Location
The Netherlands
Website
Visit site
So whenever something is on the slower side (video playback, flash, anything else) people tend to say, wait until we can use the DSP.


Now I have a question what is expectable by having firmware+drivers that can access the DSP. I've read that it will probably help in decoding video and music, but what other things can the dsp help with and how feasible are speed increases with this.


Their are a lot of people here who know a lot more about stuff than I do so can you help debunk some of the false claims that have been made and give a realistic picture of the added value of the magical DSP.
 
The DSP is a fully programmable and powerful fairly general purpose processor that's better at some tasks than others. The hardware block it's on (IVA2) also includes encoder and decoder blocks as well as an ARM9, but these cores aren't what people are talking about when they mention the DSP and performing functions on it.


It does well with anything data regular and parallel. It doesn't do well with a lot of branching or memory-based dependencies. Its timing is more static than the Cortex-A8's, since it doesn't have branch prediction and it has big scratchpads in addition to L1 and L2 cache. It's a lot harder to write good ASM for, but it's possible.


You can sort of say that its strengths and weaknesses are somewhere between a CPU and the compute capabilities of a GPU.


The problem of course is even if a good interface to the DSP is integrated into the kernel it won't be that easy to get people to use it for anything. Multithreaded programming isn't that easy for most tasks and being this heterogeneous makes things a lot harder.
 
What Exo said, but :


TI does provide Audio/Video Codec using the DSP. These are a lot faster then the current one (using the CPU), and the CPU is free to do others thing while the decoding is done.
 
I had seen comments that having the DSP working would enable up to 100 hours of MP3 playback, allow us to -underclock- for seamless video playback, reduce tearing in games and make me breakfast every other Saturday.


So, the key part in all of that is the implication that it isn't working.


Why isn't it working? What is being done to resolve this?


It's depressing to have cool hardware in a device that doesn't get used.
 
Why isn't it working? What is being done to resolve this?

It isn't available simply because we're using a pretty old kernel. The kernel just doesn't recognize it. Once someone gets around to building a new kernel for the device we'll be able to use the DSP. Of course, we'd have to wait for people to integrate the hardware into their programs too before we see anything special happening. Like someone already said, it isn't the easiest thing to code for.


Right now I don't think anyone is working on it. I think any software devs that aren't making their own programs are helping to iron out the bugs in the current software rather than introducing more features.
 
The newer kernel is being slowly worked on; firmware 2 is expected to be the newer kernel and a package refresh and all that, but its a tonne of work to get there (resolving issues and dependancieds and testing, and reporting a lot of changes to the newer kernel, and so on.) Theres a git for it and you can pull and build and run the alpha-alpha-alpha version of the new firmware if you want to.


But more to point -- "Why isn't it working? What is being done to resolve this?" -- feel free to lend a hand :) You do know that most of this stuff is done by people for free, in their spare time, right :)


jeff
 
I have zero programing ability or knowledge and have no Pandora, but from what I see, the development of the Pandora's software is top notch and I don't think anyone should be complaining. Thank you to all of the people that dedicate their time and talents to make the Pandora better.
 
I'm not complaning I just wanted to know what we can expect and exophase answered it niceley, somewhere between CPU and GPU, and requires multithreaded software, are somethings that makes things a bit more tangible for us mere mortals :) thanks for all the info.
 
Last edited by a moderator:
What Exo said, but :


TI does provide Audio/Video Codec using the DSP. These are a lot faster then the current one (using the CPU), and the CPU is free to do others thing while the decoding is done.
The problem is that those codecs require licensing fees and we can't really use them.

It isn't available simply because we're using a pretty old kernel. The kernel just doesn't recognize it. Once someone gets around to building a new kernel for the device we'll be able to use the DSP.
This is not the main reason, those DSP frameworks can be made to work even on our old kernel, just nobody capable is interested in doing it. The new kernel would only be minor help here.


There is another problem - the DSP frameworks require some RAM to be taken away from Linux and reserved for them. DSPLink needs something like 64MB to run demo TI codecs (and that memory can no longer be used by OS, games and such) and also requires stupid things like memory holes to be set up in Linux kernel. DSPBridge supposedly can access linux memory but still needs some to be reserved for it (and taken away from Linux).


No wonder Nokia developed their own DSP driver instead of using TI ones, shame it was discontinued.
 
Last edited by a moderator:
The problem is that those codecs require licensing fees and we can't really use them.
Any ball-park idea as to how much this would cost?


Would it be affordable if shared amongst 4000/8000 Pandora owners?


If it was totally out of reach it might stop the regular enquiries, although I doubt it.
 
I think our best bet is there is among the ~8000 pandora recievers a few (or at least one) kernel-hacker(s) motivated enough to spend some time on this.


We will get there eventually :)
 
Back
Top