

Chuck Moore on push-down stacks - gruseom
http://www.colorforth.com/stack.htm

======
daniel-cussen
I've taken a good luck at the hardware he's talking about, the GreenArrays
144-processor chip, and I'm amazed at a number of things about it. Mostly,
that it's cheap, both in hardware costs and in energy costs.

The way I compared its costs to those of other hardware was to say that this
chip has 144 cores running at approx 1.5 GHz each (depends on the instructions
you run). That comes to 144 _1.5_ 10^9 = 216*10^9 instructions per second. The
more convenient way I found to gauge it was to measure it in cGHz, pronounced
"coughs", and it stands for co-GHz, core-gigahertz. An L5240 Xeon, for
instance, has 4 cores running at 2.5 GHz each, which comes to 10 cGHz,
compared to the GA144A's 216 cGHz.

The prices are comparable: in bulk, a GA144 is about $20 apiece, while a Xeon
L5240 is $23. Granted, the Xeon has many more features and can do many things
the GA144 cannot. It works great with existing compilers. It can do floating
point. It's much better at I/O, has an L1 cache, and has all the niceties
we've become accustomed to get from X86 processors. If you are still in the
X86 mindset, a GA144 will hurt pretty badly.

At the same time, on a per-cGHz basis, it costs $5 where the GA144 is ~$0.10.
In terms of electrical costs, a Xeon L5240 is 50W, or 12.5 Watts per cGHz,
whereas a GA144 is .006 Watts per cGHz. Imagine: it's one-fiftieth the up-
front cost and one-two-thousandth the energy cost of one of the best deals you
can get for X86-64 processors.

But if you are doing high-performance computing and just need the horsepower
without all those niceties, you can win big with this chip. It's really
exciting.

~~~
gruseom
_if you are doing high-performance computing and just need the horsepower
without all those niceties, you can win big with this chip_

So did you get a sense of what applications would be a good fit to program for
it? The fact that it doesn't "work great with existing compilers" seems to be
the stumbling-block.

~~~
daniel-cussen
So, because your processor can only fit 512 instructions, and because it's a
RISC processor, it's feasible to either write your own compiler, use
colorforth, write it in straight assembly, or some combination thereof.
Compilers are pretty bad at generating succinct code, and OK at generating
fast code, and a RISC processor might just fit inside your head.

So, I really see two applications for this product: first, to create a
supercomputer for fixed-point uses (maybe crypto) with 1 "petaFLOP" (I know,
we're not actually talking floating-point multiplications here) for a fraction
of the price and much greater energy efficiency. It'd be a world-class
supercomputer for $200,000.

The other application would be to embed it in mobile devices to take advantage
of its energy efficiency.

~~~
gruseom
What do you imagine the language would be to program that supercomputer?

~~~
daniel-cussen
A Lisp that goes straight to asm. Oh yeah.

~~~
gruseom
What Lisp do you have in mind? Presumably you mean something more specific by
"goes straight to asm" than just "is compiled".

If I were going to do this I would build a Lisp bottom-up from the instruction
set and my goal would be to find the most interesting language could emerge
that way. On the other hand, that's so similar to what Forth already does that
it might be better just to treat the hardware as the Forth machine it already
is and do what it wants.

~~~
daniel-cussen
You'd take the Richard Gabriel approach, in which you do all kinds of tricks
by playing around with macros and types.

Of course you'd probably run it in X86 and let that compile to a binary you
propagate through your supercomputer.

------
gizzardguts
Moore said: "GreenArrays' computers have a unique mechanism for implementing
stacks with hardware: a stack is a set of registers with a pointer to the one
currently on top. The pointer is moved up or down as required. The data is not
moved, merely a pointer to the register in which the data is stored. This
saves energy. "

Unique? I've been doing ASIC design for more than 20 years and that is how it
has always been done.

