Re: you can't bash Microsoft enough



On 3 May 2007 12:30:29 -0700, websnarf@xxxxxxxxx wrote:

On May 3, 10:00 am, John Larkin
<jjlar...@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
On Thu, 03 May 2007 16:38:02 +0000, Mike Monett <N...@xxxxxxxxx> wrote:
John Larkin <jjlar...@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

> I sometimes use a little math/ascii conversion package I wrote for
> the 68K. The math format is 32.32, a longword of signed integer
> plus a longword of fraction. That's adequate for near any
> real-world variables. It's blindingly fast compared to floats (no
> normalizing!) and conversion into/out of integers is
> instantaneous. All the math functions saturate, so most of the
> time it's safe to ignore exceptions, including division by 0.

> John

If you haven't come across it yet,Paul Hsiehhas several pages on
integer math for the x86 that might be useful:

"Integer multiplying by constants"

the x86 ISA also includes lea, sub and mov (for shuffling partial
results amongst other registers.) Instructions like sub and mov are
self explanatory, but lea is a very curious and powerful instruction
that gives some multiregister linear combinations as well as some
additional odd multiplies. The x86's "lea" instruction allows you to
compute:

r0 := r1 * {0,1} + r2 * {0,1,2,4,8}

for any 3 general purpose 32 bit registers, in a single clock.

"sub" (subtract) and "mov" (copy value to/from register) are self
explanatory. So using these instructions, we see that 181 =
4*(5*9)+1 which can be encoded as: b = x*5; b = b*9; return x + b*4;

http://www.azillionmonkeys.com/qed/amult.html

"Pentium Optimal x86 Constant Multiplies"

http://www.azillionmonkeys.com/qed/amultl2.html(235k)

"Integer division and modulus by constants"

http://www.azillionmonkeys.com/qed/adiv.html

"Square Roots"

http://www.azillionmonkeys.com/qed/sqroot.html

Regards,

Mike Monett

The 8008 (I think they call the latest version "Core Duo" or
something) is a grotesque hack that needs all the help it can get. The
68332 has 32x32 -> 64 signed or unsigned multiply and 64/32 divide
with remainder, all in hardware.

Hmmm ... are you aware that these puny "Core Duos" are able to do
64x64->128 signed/unsigned multiply in hardware (in about 4 clocks) as
well as a 128/64 divide?

Hmmm... are you aware that their heatsink is bigger than many of our
entire products? Our latest 4-channel digital delay generator uses
about 4 watts total, and the FPGA gets warmer than the CPU.


And 16 32-bit registers!

Yes, and these "Core Duos" have 16 64-bit GPRs plus 8 FP stack
registers and 16 128-bit SIMD registers.

Oh yeah, and one other thing -- these "Core Duos" run at 2+ Ghz clock
rate. How fast is that 68332 of yours?

We run at 16 or sometimes 20 MHz. And we service up to 10,000
interrupts a second for years, without missing a single one... and
without crashing. I wish my dual-CPU 3 GHz PC could keep up with that!

John

.



Relevant Pages

  • Re: you cant bash Microsoft enough
    ... The math format is 32.32, a longword of signed integer ... Instructions like sub and mov are ...
    (sci.electronics.design)
  • Re: you cant bash Microsoft enough
    ... The math format is 32.32, a longword of signed integer ... Instructions like sub and mov are ...
    (sci.electronics.design)
  • Re: you cant bash Microsoft enough
    ... The math format is 32.32, a longword of signed integer ... Instructions like sub and mov are ...
    (sci.electronics.design)
  • Re: you cant bash Microsoft enough
    ... The math format is 32.32, ... Instructions like sub and mov are ... and the FPGA gets warmer than the CPU. ... serious multiple of the processor lifetime. ...
    (sci.electronics.design)
  • Re: OT: Wheeeeee! New PSpice Benchmarks
    ... >>requires fast low accuracy math and a bunch of memory transfers that don't ... The AMD may do both better. ... when using the old stack-style instructions for FP math. ... to simulate SMP multithreading when choosing the highest performing chips. ...
    (sci.electronics.design)