DSPRelated.com
Forums

Do I really need a DSP? If yes, how to choose one?

Started by alpb June 7, 2011
On 06/08/2011 03:36 AM, Rune Allnor wrote:
> On Jun 8, 11:28 am, "Steve Underwood" > <coppice@n_o_s_p_a_m.coppice.org> wrote: >>> On Jun 8, 8:10=A0am, "steveu"<steveu@n_o_s_p_a_m.coppice.org> wrote: >>>>> On Jun 7, 3:39=3DA0pm, "alpb"<alpbozkurt78@n_o_s_p_a_m.gmail.com> >> wrote= >>> : >>>>>> Hi everybody, >> >>>>>> For our next project, we need to develop& engineer a VOIP gateway >>>> which >>>>>> must support 8 radio channels. The codec is G.711 . The requirement >> fo= >>> r >>>> t=3D >>>>> he >>>>>> latency of voice on the gateway is 1/4 seconds. My gut feeling says >> th= >>> at >>>> =3D >>>>> we >>>>>> can accomplish this with by using a 8 channel professional sound >> card >>>>>> (~$200) and PJSIP library without using a DSP, with the help of a >> Inte= >>> l >>>> i=3D >>>>> 7 >>>>>> processor and Linux OS. But everyone says it's impossible without >> usin= >>> g >>>> a >>>>>> DSP because of the CPU overhead of RTP packets and G.711 codec >>>> handling. >> >>>>>> Can I ask for your opinion? Do we really need a DSP (PCI) card? >> >>>>> Yes, you do need the DSP. >> >>>>> While it might be *technically* possible to pull this off with >>>>> a linux box, provided you get it all to yourself and are granted >>>>> total contorl of what it does and how, you will never succeed. >>>>> Because you will never get that linux box all to yourself, nor >>>>> will you be granted total control of what it does and how. >> >>>>> Once that box is placed inside whatever system you are working on, >>>>> somebody - not you - will some time see it, and realize that it >>>>> is a huge resource. And start adding bells and whistles to it. >>>>> Once *that* happens, your application is screwed. >> >>>>> So get on with the DSP. That way you use only the resources >>>>> necessary to get the job done, at the same time you protect >>>>> those resources from future interference. >> >>>> That is not an argument for using a DSP. Its a pretty valid argument >> for >>>> using a dedicated processor. >> >>> Dedicated *processor*, not dedicated *PC*. >> >>>> For the poster's workload many MCUs will do a >>>> much better job that a DSP. G.711 is trivial. His main work is RTP and >>>> TCP/IP handling. Its much better *not* to do those on a DSP. >> >>> DSP with a network or comm interface integrated? The OP >>> can't be the first person in history to face kind of task? >> >>> Rune >> >> They exist, but he isn't doing any DSP at all. Why make life hard? Use the >> right tool for the job, which is not a DSP. > > We could probably quarrel over semantics till the cows come home. > In a real-time setting I'd still go for the smallest possible > device that could get the job done. Simply to discourage others > from elbowing in on tempting computational resources.
Semantics: general purpose processor that can do TCP/IP: $ DSP that can do TCP/IP: $$$$$$$ Why get a $25 DSP part, with all the questionable tools that goes with it, when you can get a $5 part that has decent tools, a Linux port, and all the rest? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
"Steve Underwood" <coppice@n_o_s_p_a_m.coppice.org> wrote in message 
news:AaednZB3B-
> They exist, but he isn't doing any DSP at all. Why make life hard? Use the > right tool for the job, which is not a DSP.
It might be something like a Blackfin, though, which is kinda a hybrid? :-) Where I used to work, we used a TI C54x DSP as a video camera controller: While we did *very little* "real" DSP -- just fixing up some dead pixels, as pretty much all CCDs have -- it worked quite well as a low-power, very-high-speed (100MHz) general purpose CPU as well; at the time (late '90s) the embedded CPU options were all much lower speed unless you went with a 32-bit CPU, and most all of those required significant external support logic, memory, etc. ---Joel

Tim Wescott wrote:

> On 06/08/2011 03:36 AM, Rune Allnor wrote: >
>> We could probably quarrel over semantics till the cows come home. >> In a real-time setting I'd still go for the smallest possible >> device that could get the job done. Simply to discourage others >> from elbowing in on tempting computational resources.
Dr. Rune must have built many systems, especially with TCP/IP.
> > Semantics: > > general purpose processor that can do TCP/IP: $ > DSP that can do TCP/IP: $$$$$$$
#1 A TCP IP stack of a WAN class is a big chunk of software heavily relying on dynamic memory allocation and OS services. No matter what and how, the minimum system for that is something like 100MHz/1MB. #2 Semantics: A PC that can do everything: $$$ Development cost: $$$$ Dedicated system that can do everything: $$ Development cost: $$$$$ Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky <nospam@nowhere.com> wrote:
 
(snip)
> A TCP IP stack of a WAN class is a big chunk of software heavily relying > on dynamic memory allocation and OS services. No matter what and how, > the minimum system for that is something like 100MHz/1MB.
UDP is much easier in many ways. -- glen
On Jun 8, 9:08&#4294967295;pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> Tim Wescott wrote: > > On 06/08/2011 03:36 AM, Rune Allnor wrote: > > >> We could probably quarrel over semantics till the cows come home. > >> In a real-time setting I'd still go for the smallest possible > >> device that could get the job done. Simply to discourage others > >> from elbowing in on tempting computational resources. > > Dr. Rune must have built many systems, especially with TCP/IP.
No, I haven't. I have, on the other hand, handled / administrated any number of 'dedicated' systems. Once somebody wants just a *tiny* job done, it's far easier to elbow in on a box already present, than buy a new box for that *tiny* other task.
> > > Semantics: > > > general purpose processor that can do TCP/IP: $ > > DSP that can do TCP/IP: $$$$$$$ > > #1 > A TCP IP stack of a WAN class is a big chunk of software heavily relying > on dynamic memory allocation and OS services. No matter what and how, > the minimum system for that is something like 100MHz/1MB. > > #2 > Semantics: > > A PC that can do everything: $$$ > Development cost: &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;$$$$ > > Dedicated system that can do everything: $$ > Development cost: &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;$$$$$
Cost if service is not provided as expected / intended / specified: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Rune
Hey thank you all for your responses. They are very enlighting.

The voip gateway shall handle some other voice related tasks such as echo
cancellation, voice-activity detection etc. And, not yet but the customer
may add G.722 wide-band codec requirement before we finalize the agreement.


The linux box to be developed for the gateway will not be used for other
tasks. It shall not have a screen at all. 

Do you think if a modern Intel CPU can handle G.722 as well for 8
simultaneous channels? We will use real-time Linux OS. We can assign
channels to different cores of the CPU if we use a quad-core CPU.

The sound card I mentioned is M-Audio Delta 1010LT. Linux is not mentioned
in its specs but Linux guys are talking about extensive & flawless linux
support of this card on forums.

Do you know some guys who faced this problem before me? What was their
choice?


alpb <alpbozkurt78@n_o_s_p_a_m.gmail.com> wrote:
 
> The voip gateway shall handle some other voice related tasks such as echo > cancellation, voice-activity detection etc. And, not yet but the customer > may add G.722 wide-band codec requirement before we finalize the agreement.
> The linux box to be developed for the gateway will not be used for other > tasks. It shall not have a screen at all.
> Do you think if a modern Intel CPU can handle G.722 as well for 8 > simultaneous channels? We will use real-time Linux OS. We can assign > channels to different cores of the CPU if we use a quad-core CPU.
The Linksys PAP2 runs Linux. This is well known. As I understand, (but haven't tried) if you open it up, put RS232 drivers on the serial port lines, you can connect a terminal. I don't believe that it is an especially fast processor. -- glen