First console with FPU

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
First console with FPU
by on (#155714)
Greetings!

I only have a quick question: which home video game console was the first to include floating point units in its hardware?

Bonus question: what if we include "add-on" chips? I know that Capcom's CX4 was designed to help with trigonometric calculations, but I can't find whether it managed doing so with fixed point or floating point arithmetics.

Thank you!
Re: First console with FPU
by on (#155715)
From the CX4 section of Fullsnes: "Hitachi HG51B169" ... "1bit sign + 23bit integer" ... a bunch of 24-bit two's complement constants that make it look like a 24-bit fixed-point DSP.

At this point I'm inclined to say it was PCs with Pentium processors. The mid-1996 release of Id Software's Quake marked the date after which x87 FPUs were expected in gaming PCs, and it predated the worldwide release of the Nintendo 64 by a few months.
Re: First console with FPU
by on (#155724)
tepples, thank you for the very informative answer. I appreciate it very much!
Re: First console with FPU
by on (#155727)
The DSP-1 had a floating point inverse function... That seems to be it, though; everything else on the chip was either integer or fixed point.
Re: First console with FPU
by on (#155728)
Wow. Just as I expect, these "enhancement" chips do nothing.
Re: First console with FPU
by on (#155730)
...how does that follow?
Re: First console with FPU
by on (#155731)
They do nothing except do integer math and pixel manipulation a lot faster than a 3.1 MHz* 65816 alone could.

* Counting refresh and RAM access
Re: First console with FPU
by on (#155733)
If you subtract the amount of time it takes to poke things through registers.
Re: First console with FPU
by on (#155738)
That doesn't help the 65816's case, because it doesn't have native multiplication and division, never mind floating point, and simulating some of the stuff the DSP-1 does in one step (16x16 signed multiplication, 16-bit 3D vector magnitude, etc.) would take an ungodly amount of register I/O on a bare SNES, especially without access to the PPU multiplier.
Re: First console with FPU
by on (#155740)
tepples wrote:
At this point I'm inclined to say it was PCs with Pentium processors. The mid-1996 release of Id Software's Quake marked the date after which x87 FPUs were expected in gaming PCs, and it predated the worldwide release of the Nintendo 64 by a few months.


The 8086 line had FPU co-processor (8087) options from the beginning. I remember some flight simulator software for my 286 that advertised better features if you had the co-processor. No idea what those features were, because I didn't have one. With the 486 it stopped being an add-on, I think, but I don't recall anything but fancy flight sims advertising an FPU requirement. (386 and Pentium were both a lot more popular than 286 or 486, I think.)

The Pentium was a large commercial success. I remember it had a huge marketing push, too. Though not the first with an FPU, I think it also introduced pipelining architecture which contributed a lot to the feasibility of Quake. Carmack/Abrash were able to do FPU calculations in tandem with integer ones for some clever high performance code.

Nowadays compilers usually know how to take advantage of pipelines, and can take a lot of liberty when re-ordering instructions. Good debuggers can even analyze code and display the pipeline state for you against the disassembled code, which is pretty cool.
Re: First console with FPU
by on (#155743)
Actually the 486SX still lacked the built-in FPU (the 486DX had it). Pentium was the first x86 that always had it integrated.
Re: First console with FPU
by on (#155744)
Pedantically, the 486SX had a broken (and then disabled) FPU. And the 487 was nothing but a 486 with a functioning FPU.
Re: First console with FPU
by on (#155745)
Wow, that's really funny. So there was a "budget" version of the 486, which existed because the FPU had a high production failure rate, so if it didn't pass the tests they would disable the FPU and sell it as a 486SX?

https://en.wikipedia.org/wiki/Intel_80486SX

I'd heard of something similar with the Intel Cell chip used in the PS3, where it had 8 SPU units on every die for parallel computation, but they would always disable one of them. It didn't matter which one got disabled, so they could still sell a chip if it had only one SPU failure.
Re: First console with FPU
by on (#155747)
In many cases different variants of a CPU are just the same circuit with a few traces cut off (to disable features) then selling those as lower end CPUs, because it's cheaper than making whole new circuits and they can still take advantage of how much people are willing to pay.

Also the CPU on the NES has decimal mode nearly intact, they just disabled a few traces that enabled it to work. In that case it was purely to avoid a patent, though.
Re: First console with FPU
by on (#155767)
When did CPUs start being able to handle multiplication of and division by numbers other than powers of 2? Is it still super slow compared to addition and subtraction?
Re: First console with FPU
by on (#155770)
Even the 8086 had MUL and DIV instructions, and while it was slow, it was still faster than doing it longform.

Ultimately, multiplication of integers can be implemented in the same amount of time as the corresponding addition, by using a good deal more space. Modern machines seem to not bother, e.g. http://stackoverflow.com/questions/2181 ... modern-cpu
Re: First console with FPU
by on (#155810)
The PC-FX, released in 1994, used a NEC V810 which had an FPU that could do single-precision IEEE-754 math(no transcendental functions in hardware, though).
Re: First console with FPU
by on (#155827)
...that'd probably make it the earliest then. I don't think the 3DO nor the Jaguar had floating point support, right?
Re: First console with FPU
by on (#155908)
Quote:
Is it still super slow compared to addition and subtraction?

This document contains the relevant numbers for just about every Intel x86 processor starting with the Pentium, plus some AMD/VIA x86 processors.