Hi guys,
We use DSP for a multitude of purposes and do all the stuff in
their discrete form but why do we need the entire microprocessor core
in the DSP itself rather use high resolution ADC and acquire all the
data into the PC do all the computations we ever wanted to do and then
send it out via DAC (assuming portability is not an issue and only for
experimental purposes). Did anyone tried or did anything like this, if
so please share your experiences.
Thank You,
Prizark
Substituing PC for DSP
Started by ●January 27, 2004
Reply by ●January 27, 20042004-01-27
Sure, lots of people do DSP on a PC. The issues that usually come up are: 1) cost, 2) power consumption, 3) size/form factor, and 4) latency/real-time requirement. If the PC solution meets your needs, then by all means use it. Development/debugging tools on the PC are often superior (and cheaper) then those for DSPs. "prizark" <prizark@rediffmail.com> wrote in message news:ca70a01b.0401271102.144f7a44@posting.google.com...> Hi guys, > > We use DSP for a multitude of purposes and do all the stuff in > their discrete form but why do we need the entire microprocessor core > in the DSP itself rather use high resolution ADC and acquire all the > data into the PC do all the computations we ever wanted to do and then > send it out via DAC (assuming portability is not an issue and only for > experimental purposes). Did anyone tried or did anything like this, if > so please share your experiences. > > > Thank You, > Prizark
Reply by ●January 27, 20042004-01-27
"prizark" <prizark@rediffmail.com> wrote in message news:ca70a01b.0401271102.144f7a44@posting.google.com...> Hi guys, > > We use DSP for a multitude of purposes and do all the stuff in > their discrete form but why do we need the entire microprocessor core > in the DSP itself rather use high resolution ADC and acquire all the > data into the PC do all the computations we ever wanted to do and then > send it out via DAC (assuming portability is not an issue and only for > experimental purposes). Did anyone tried or did anything like this, if > so please share your experiences.????? ">why do we need the entire microprocessor core> in the DSP itself rather use high resolution ADC and acquire all the > data into the PC do all the computations we ever wanted to do and then > send it out via DAC "I don't get what you're driving at. What does a DAC or ADC have to do with anything in this discussion between DSP and PC? There are quite a few DSP processor boards that plug into a PC and use PCI bus for interfacing the two. All digital - no ADC or DAC involved (er.... necessarily. That would be application dependent.) Fred
Reply by ●January 27, 20042004-01-27
prizark wrote:> Hi guys, > > We use DSP for a multitude of purposes and do all the stuff in > their discrete form but why do we need the entire microprocessor core > in the DSP itself rather use high resolution ADC and acquire all the > data into the PC do all the computations we ever wanted to do and then > send it out via DAC (assuming portability is not an issue and only for > experimental purposes). Did anyone tried or did anything like this, if > so please share your experiences. > > > Thank You, > PrizarkDSPs have features in their architecture that simplify programs and run them faster. If you wanted to replace the processor in a cell phone with one in a PC, you would need a wheelbarrow and a very long extension cord. Most DSPs use less power than a Pentium's fan, and some run on the power used by a single LED. You have at least two DSPs in your PC: one in the modem, another in the sound card (connected to that DAC). Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●January 27, 20042004-01-27
prizark@rediffmail.com (prizark) writes:> Hi guys, > > We use DSP for a multitude of purposes and do all the stuff in > their discrete form but why do we need the entire microprocessor core > in the DSP itself rather use high resolution ADC and acquire all the > data into the PC do all the computations we ever wanted to do and then > send it out via DAC (assuming portability is not an issue and only for > experimental purposes). Did anyone tried or did anything like this, if > so please share your experiences. > > > Thank You, > PrizarkHi Prizark, Three reasons: cost, power consumption, and size. Most applications in which DSPs are employed are sensitive to resources in one of these categories. For example, my day job is at Sony Ericsson (mobiles), where our latest PC boards are now utilizing 0201 resistors. Slapping a Pentium on the board isn't an option. But in cases where none of these are concerns, sure, a PC is a wonderful device for doing DSP. -- % Randy Yates % "How's life on earth? %% Fuquay-Varina, NC % ... What is it worth?" %%% 919-577-9882 % 'Mission (A World Record)', %%%% <yates@ieee.org> % *A New World Record*, ELO http://home.earthlink.net/~yatescr
Reply by ●January 27, 20042004-01-27
Jerry: I'm going to play the devil's advocate here, mostly for fun, but also to make sure you don't convince somebody to through away their PC. First off, I don't think DSPs "simplify programs" or "run them faster". You could make an argument that ADI's algebraic assembly is "simpler" than INTEL assembly, but that is a specific case. In fact, the trend in DSPs lately has been to actually increase the instruction word width, and increase the number of instructions, which does everything but simplify. Further, DSPs don't, in general, "run them faster". DSPs only run some programs faster, and those are "DSP" intensive programs, and they only run them faster w/r/t the processor clock frequency. Further, if you are writing in "C" (which the OP may be), the C compilers for DSP tend to be even more hideously inefficient than those for "PC" processor (reference previous thread on the subject, and also the fact that almost all application code for the PC's are written in C, whereas I'm 99% certain that your cellphone code was written in assembly). General purpose processors, such as the INTEL line, were designed to be best at applications where the data bandwidth and arithmetic requirements were minimal--such as a word processor or spreadsheet. DSPs were designed to be best at data bandwidth and arithmetic intensive applications, such as DSP. I don't think that, unless you specify the appplication, you can say that one is "simpler" or runs "faster" (even after equating for processor clock). The fact is, many DSPs now-adays are used for applications that are only somewhat DSP-intensive, and the desktop-type processors run at a much faster clockrate. You made a very good argument implying the performance/power tradeoff, which is really at the heart of why anyone would use a DSP. Also, others repliers have referenced the the real-time aspect, which is not inherent to the DSP itself, but is assuming that you will run a lean-and-mean (or no) OS on the DSP, and compare that to the one running on the desktop. Also, one thing not mentioned yet, the DSPs are designed so that the external hardware required to make them work in a system is minimal. I think therin lies the true reason for DSP processors to (currently) do DSP "It is a low-power, low-cost (mostly in lack of need for supporting hardware), small (again, in lack of need for supporting hardware) processor optimized to signal processing (high data bandwidth, high compute) applications, for which a variety of 3rd parties have written lean-and-mean "real-time" OS's for". Comments welcome. However, back to the OP. I think you should have assumed that, since he is wondering why he needs a DSP to do a certain task instead of the PC, he probably has a situation where there is a DSP tethered (plug-in board, FireWire, etc.) to the PC he is using, or that he as an experimental setup where some predecessor has decided to use an embedded DSP rather than A/D-PC-D/A. I don't think he is wondering why he can't replace his cell phone with a PC--that has already been done with "talk" programs over the internet. And, to his question, I would say: a) Yes, I've done it before. Mostly because I determined the application really did not need the low-power, low-cost, or processing power addition provided by the DSP (that is, a DSP board with A/D and D/A tethered to the PC), yet there was only one person at the company I was consulting for that actually knew the DSP code, and thus everything had to go through him (laughable job security), so I transferred what the DSP was doing to the host PC, and made it work just fine. However, note that this was only possible because the application did not require "real-time" (defined by one very profitable company as <50ms or so) continuous response between input and output. b) Make sure you completely understand the "real-time" requirements of your system before attempting to move it to a bloated OS, or make sure you completely understand the concert of chips needed to support the processor in the PC before attempting to move it to your realtime system, whichever is the case for you. My 2c, and I hope it brings discussion. Jim Gort "Jerry Avins" <jya@ieee.org> wrote in message news:4016cadb$0$11462$61fed72c@news.rcn.com...> DSPs have features in their architecture that simplify programs and run > them faster. If you wanted to replace the processor in a cell phone with > one in a PC, you would need a wheelbarrow and a very long extension > cord. Most DSPs use less power than a Pentium's fan, and some run on the > power used by a single LED. You have at least two DSPs in your PC: one > in the modem, another in the sound card (connected to that DAC). > > Jerry > -- > Engineering is the art of making what you want from things you can get. > ����������������������������������������������������������������������� >
Reply by ●January 27, 20042004-01-27
Not to mention power dissipation. I think it would be a fair bet that putting a dead short across the battery in a mobile would generate less heat than a Pentium does. Randy Yates wrote:> prizark@rediffmail.com (prizark) writes: > > > Hi guys, > > > > We use DSP for a multitude of purposes and do all the stuff in > > their discrete form but why do we need the entire microprocessor core > > in the DSP itself rather use high resolution ADC and acquire all the > > data into the PC do all the computations we ever wanted to do and then > > send it out via DAC (assuming portability is not an issue and only for > > experimental purposes). Did anyone tried or did anything like this, if > > so please share your experiences. > > > > > > Thank You, > > Prizark > > Hi Prizark, > > Three reasons: cost, power consumption, and size. Most applications in > which DSPs are employed are sensitive to resources in one of these > categories. For example, my day job is at Sony Ericsson (mobiles), > where our latest PC boards are now utilizing 0201 resistors. Slapping > a Pentium on the board isn't an option. > > But in cases where none of these are concerns, sure, a PC is a > wonderful device for doing DSP. > -- > % Randy Yates % "How's life on earth? > %% Fuquay-Varina, NC % ... What is it worth?" > %%% 919-577-9882 % 'Mission (A World Record)', > %%%% <yates@ieee.org> % *A New World Record*, ELO > http://home.earthlink.net/~yatescr-- --Ray Andraka, P.E. President, the Andraka Consulting Group, Inc. 401/884-7930 Fax 401/884-7950 email ray@andraka.com http://www.andraka.com "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin, 1759
Reply by ●January 27, 20042004-01-27
Jim Gort wrote:> Jerry: > > I'm going to play the devil's advocate here, mostly for fun, but also to > make sure you don't convince somebody to through away their PC. > > First off, I don't think DSPs "simplify programs" or "run them faster". You > could make an argument that ADI's algebraic assembly is "simpler" than INTEL > assembly, but that is a specific case. In fact, the trend in DSPs lately has > been to actually increase the instruction word width, and increase the > number of instructions, which does everything but simplify. Further, DSPs > don't, in general, "run them faster". DSPs only run some programs faster, > and those are "DSP" intensive programs, and they only run them faster w/r/t > the processor clock frequency. Further, if you are writing in "C" (which the > OP may be), the C compilers for DSP tend to be even more hideously > inefficient than those for "PC" processor (reference previous thread on the > subject, and also the fact that almost all application code for the PC's are > written in C, whereas I'm 99% certain that your cellphone code was written > in assembly).I meant, but didn't say, that DSPs simplify programs that process digital signals. You surely agree that MACs (single cycle or not), non-integer fixed-point and saturating arithmetic, and circular buffers simplify those programs. Zero-overhead loops, multiple DMA engines, simultaneously addressable memory banks, and the already mentioned simplifications make them faster. DSPs are among the most efficient processors measured in bit-MIPS/microwatt. Time-critical DSP programs are typically written in assembly, just as time-critical portions of Pentium programs are. The major difference lies in the fraction of such code.> General purpose processors, such as the INTEL line, were designed to be best > at applications where the data bandwidth and arithmetic requirements were > minimal--such as a word processor or spreadsheet. DSPs were designed to be > best at data bandwidth and arithmetic intensive applications, such as DSP. I > don't think that, unless you specify the appplication, you can say that one > is "simpler" or runs "faster" (even after equating for processor clock). The > fact is, many DSPs now-adays are used for applications that are only > somewhat DSP-intensive, and the desktop-type processors run at a much faster > clockrate. > > You made a very good argument implying the performance/power tradeoff, which > is really at the heart of why anyone would use a DSP. Also, others repliers > have referenced the the real-time aspect, which is not inherent to the DSP > itself, but is assuming that you will run a lean-and-mean (or no) OS on the > DSP, and compare that to the one running on the desktop. Also, one thing not > mentioned yet, the DSPs are designed so that the external hardware required > to make them work in a system is minimal.Well, so is the external hardware needed with most microcontrollers of any sort. There, the major difference is between embedded and richly endowed systems. In many ways, a DSP has more in common with the $0.80, 4-bit processor in my kitchen scale than with the behemoth I write this on.> I think therin lies the true reason for DSP processors to (currently) do DSP > "It is a low-power, low-cost (mostly in lack of need for supporting > hardware), small (again, in lack of need for supporting hardware) processor > optimized to signal processing (high data bandwidth, high compute) > applications, for which a variety of 3rd parties have written lean-and-mean > "real-time" OS's for". Comments welcome.That's a good summary.> However, back to the OP. I think you should have assumed that, since he is > wondering why he needs a DSP to do a certain task instead of the PC, he > probably has a situation where there is a DSP tethered (plug-in board, > FireWire, etc.) to the PC he is using, or that he as an experimental setup > where some predecessor has decided to use an embedded DSP rather than > A/D-PC-D/A. I don't think he is wondering why he can't replace his cell > phone with a PC--that has already been done with "talk" programs over the > internet. And, to his question, I would say: > > a) Yes, I've done it before. Mostly because I determined the application > really did not need the low-power, low-cost, or processing power addition > provided by the DSP (that is, a DSP board with A/D and D/A tethered to the > PC), yet there was only one person at the company I was consulting for that > actually knew the DSP code, and thus everything had to go through him > (laughable job security), so I transferred what the DSP was doing to the > host PC, and made it work just fine. However, note that this was only > possible because the application did not require "real-time" (defined by one > very profitable company as <50ms or so) continuous response between input > and output. > > b) Make sure you completely understand the "real-time" requirements of your > system before attempting to move it to a bloated OS, or make sure you > completely understand the concert of chips needed to support the processor > in the PC before attempting to move it to your realtime system, whichever is > the case for you. > > My 2c, and I hope it brings discussion.I've done a lot of work using Z-80s, 6809s. 68HC11s, and 80186s, all using either native Forth or straight assembler. My programs ran faster than those under the popular OSs of the day, and more to the point, with less latency. What's more, without an OS to surprise me with unanticipated "favors", they were up and running sooner. As for discussion, me too. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●January 28, 20042004-01-28
I am using very often a PC with sound card for the quick evaluation of the DSP algorithms. The programming is done in Win32 pure C++. No MMX, no low level optimizations. Considering all of the tradeoffs and overheads, the performance of the Pentium-III PC can be compared to the floating point DSP engine running at about 1/10 of the PC clock speed. So, you can evaluate the basic DSP algorithms in the real time. Vladimir Vassilevsky DSP Consultant http://www.abvolt.com prizark wrote:> > Hi guys, > > We use DSP for a multitude of purposes and do all the stuff in > their discrete form but why do we need the entire microprocessor core > in the DSP itself rather use high resolution ADC and acquire all the > data into the PC do all the computations we ever wanted to do and then > send it out via DAC (assuming portability is not an issue and only for > experimental purposes). Did anyone tried or did anything like this, if > so please share your experiences. > > Thank You, > Prizark
Reply by ●January 28, 20042004-01-28
In article <ptd5vuq6.fsf@ieee.org>, Randy Yates <yates@ieee.org> wrote:>Three reasons: cost, power consumption, and size. Most applications in >which DSPs are employed are sensitive to resources in one of these >categories.I'll add bounded determism. It's hard to figure out exactly how long some process will take on a PC, with it's dozen of background tasks typically, and highly variable memory access latencies (over 200:1 between main memory and 1st level cache, and many orders of magnitute greater if the virtual memory system swapped your data out do disk). IMHO. YMMV. -- Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ #include <canonical.disclaimer> // only my own opinions, etc.






