Usenet.com

www.Usenet.com

Group Index

Comp Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

Re: 64 bit multiply-accumulate



On 20 Sep 2003 10:02:51 -0700, Brian K. Michalk wrote:
> I have been unsuccessfully looking for a simple 64 bit MAC device.
> I need:
> 1) this DSP or micro to be on a PC104 card
> 2) Linux support (or enough docs to hack)
> 
> My algorithm is very simple:
> int x[4000];      // an array of 32 bit integers
> int xt;           // 32 bit integer
> long sum=0;       // a 64 bit integer
> int i;
> 
> for (i=0; i<4000; i++) {
>   xt = x[i];       // in assembler this would be mem->register
>   sum = sum + xt;  // 64bit accumulator plus 32bit register to 64bit
> accumulator
> }
> 
> Now I know technically a MAC op might want the following:
>   sum = sum*1 + xt;
> 
> Is there anything easy and cheap out there that will do this?  I
> thought MMX commands would do this, but I think the MMX ALU is
> strictly 32 bit operands.

If you're not actually doing a multiply, then just about any
32-bit processor will do that job.  Just follow the first add
(with the low word of the sum) with an add-with-carry of zero to
the high word.  Processors like MIPS, which don't have carry
flags can do essentially the same thing with comparisons.

In other words, I don't think that you've explained enough
about your problem to substantiate the need for a hardware 64bit
adder or MAC unit.  If you actually do need such a thing,
anything based on the ARM9e core can do it for you.  I'm sure
that there are others.

-- 
Andrew



<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.