On 2018-10-26 09:10, Gordon Henderson via cctalk wrote:
I worked for a company that made supercomputer boards
out of the i860 at
one point - at the time (very early 90's) they were blindingly fast,
40Mhz, 3 instructions per clock cycle which, since one was a floating
point multiply and add meant that it was pretty good - at the time.
However it was a royal PITA to code for although a 32-bit CPU, it would
read memory 64 bits at a time (actually 128 IIRC to satisfy the cache),
with half that 64-bit word being an instruction for the integer unit and
half for the floating point unit, so you effectively had to build a
floating point pipeline by hand coded instructions, so 8 (I think)
instructions to load the pipeline, then each subsequent instruction
would feed another value into the pipe, then another 8 at the end to
empty it. Great for big matrix operations, rubbish for a single add of 2
FP numbers.
The issue came when you wanted to take an interrupt - the overhead of
flushing the pipe, reloading it all for the next context, and so on
really bogged it down.
Not to mention writing assembly code in 2 columns...
There were quite a few systems built with about 30 boards in them, each
having 2 x i860's and a good few MB of RAM (64MB I think) built.
There was actually a nice PC Mainboard from Hauppauge, with an i486 &
i860 on the same board ...
Always wanted to have one of those, never found a used one. And it was
running some king of Unix back then ...
http://www.geekdot.com/hauppauge-4860/
Cheers