3 ms·
Another Forth CPU by the Forth creator Chuck Moore and colleagues: http://www.greenarraychips.com/ http://www.greenarraychips.com/. It's has 144 cores on a squa
by avodonosov 12y ago
Another Forth CPU by the Forth creator Chuck Moore and colleagues: http://www.greenarraychips.com/ http://www.greenarraychips.com/. It's has 144 cores on a square centimeter chip.
Each core is equipped with its own little data and control Forth stacks, making it a fully fledged independent computer (that's why the more precise term is "multi-computer chips" rather than "multi-core").
The cores talk to each other via communication ports. Writing to a port suspends the core until
the peer reads the value. And vice-versa.
(similar to channels in Go language).
Some other interesting properties (quoting the docs):
A computer can read from multiple ports [corresponds to Go's select] and can execute instructions directly from those ports.
FINE GRAINED ENERGY CONTROL: ... The read or write instruction is automatically suspended in mid-operation if the address [one or more of communication ports and I/O pin] is inactive, consuming energy only due to transistor leakage currents, resuming when the address becomes active.
NO CLOCKS: Most computing devices have one or more clocks that synchronize all operations. When a conventional computer is powered up and waiting to respond quickly to stimuli, clock generation and distribution are consuming energy at a huge rate by our standards, yet accomplishing nothing. This is why “starting” and “stopping” the clock is a big deal and takes much time and energy for other architectures. Our architecture explicitly omits a clock, saving energy and time among other benefits.
http://www.greenarraychips.com/home/documents/greg/PB002-100822-GA-Arch.pdf http://www.greenarraychips.com/home/documents/greg/PB002-100...
- _yosefk 12y ago"A fully fledged independent computer"? You need several such "computers" to compute an MD5 checksum according to an application note at their site. Anything anyone in the industry dares to call a "core" (apart from NVIDIA's ALUs misnamed as "CUDA cores" or whatever) blows a GA "computer" out of the water, in particular, in terms of memory (you'll get kilobytes or more likely tens of kilobytes of cache and/or RAM per core.) And anything anyone in the industry dares to call a "computer"... well, it's in an entirely different league from a GA "computer", for starters, well, damned peripherals are considered to be a part of a "computer". Good luck running anything of use on 144 tiny cores only talking to their neighbors, only supporting 18b integer arithmetic and having tiny RAMs for code and data. (Do you even get a DRAM interface? How about Ethernet?) The chip is a bloody impressive achievement - an async design, no reliance on standard EDA tools, etc. etc. And perhaps it has its uses in really - really - energy-efficient applications with very - very - limited functionality. But the "multi-computer" business... let's say that it makes GPU marketing look honest.
- e12e 12y agoIt's an interesting chip. You can implement a SRAM interface[1] using a few cores. And also generate a VGA signal[2]. Or run 10base 10 ethernet[e]. It's probably better to compare it with a FPGA that allows for rapid programming, than a multicore computer. Only you can sort of configure the whole thing as a SOC. Which has great power management. I'd love to see some updates from Greenarrays -- there hasn't been much news lately. [1] http://www.greenarraychips.com/home/documents/greg/AP003-110810-SRAM.pdf http://www.greenarraychips.com/home/documents/greg/AP003-110... [e] http://www.greenarraychips.com/home/documents/greg/AN007-141112-10BASET.pdf http://www.greenarraychips.com/home/documents/greg/AN007-141... [2] http://www.colorforth.com/haypress.htm http://www.colorforth.com/haypress.htm
- _yosefk 12y agoHow about a DRAM interface? That is both necessary for sufficiently complex applications, and damned hard. An FPGA can do it, for some frequency (though many FPGAs come with a hard DRAM interface to save area and improve the frequency.) This thing? I rather doubt. Also, "implement an SRAM interface" - perhaps, but not one particularly easy to program against, I believe.
- e12e 12y agoI don't think it's a particularly good fit if what one really wants is the equivalent of a "PC" (ie: n cores of ~broadwell cpu with x gigs of ram) -- I tried to highlight that it is an entirely different system, and one which allows for some interesting streaming, straight forward, approaches to solving many problems. You won't be running python on this thing, but that doesn't mean that you can't do some interesting signal processing -- at extremely low power. Maybe "really, really smart dsp" is a way to look at it...
- _yosefk 12y agoInteresting signal processing - perhaps. I mentioned DRAM because * An FPGA could do it and the GA chips probably can't, * You can't do a whole lot of embedded DSP apps without DRAM - it's not a question of "trying to be a PC", you just need memory to store stuff :-) and SRAM is too expensive. Without DRAM, you're pretty much limited to what you call "streaming"; a whole lot of things don't work without being able to keep a working set in RAM. I don't argue that the chip is useless, just that it's useless in a huge range of use cases including many embedded ones, which is a sharp contrast to the connotations of its self-description as a "multi-computer chip"... And BTW even a really really dumb DSP chip can usually do DRAM :-) I look at it as "an array of incredibly weak and energy-efficient cores" :-)