Getting Started with the GA144 and ArrayForth (2014)
bitlog.it
bitlog.it
My objective was to make a low-cost lock-in amplifier for low temperature physics experiments. Usually you'd just buy a mid-range FPGA to do the signal processing but I was feeling spicy. We usually process signals up to 12 MHz or so, and to obey fs=fmax*4, you need to ingest 48 MSPS. I found that to multiply two words, you'd need 30 nanoseconds -- the multiply instruction implements one step of a multiply, so you need to run it in a loop. Anyway, that limits me to 1/(30 ns) = 33 MSPS of data ingestion, and almost surely it's less due to overhead. For an ICE40UP5K, a device that's $5.90 in qty 1, features DSP cells that can be clocked up to 50 MHz.
I think this may just not be the kind of problem that these processors work well on. It may be that they're optimized for instructions per joule or something. Either way, cool CPU/architecture, I love self-clocked stuff, but I just couldn't find a way to justify it for the kinds of problems I deal with.
The company itself I think is having trouble with funding. It's a bit of a chicken and egg problem -- if they could make the chip on a more modern process node, they might be able to develop something much faster, and thus more competitive with MPUs/MCUs/FPGAs. But, they admirably keep chugging along in their FORTH compound in Wyoming. I eagerly look forward to what they come up with next.
In his talk about this chip, he said said the future of computing is very small, very energy devices. "Computing dust", I think he said.
What? While it actually takes about 100 nanoseconds, not 30 nanoseconds, for an 18-by-18-bit multiply, you can do hundreds in parallel, so it should be fine for your purposes. Am I missing something with how your numbers square up?
[1] - I wrote Forth/2 for OS/2 long, long ago. Brian Mathewson wrote a great manual to go with it, and helped extend it.
Looking at rough numbers, it seems to be possible to do anywhere from a 2x2 to 5x5 grid of small RISC-V cores (with at least 2-4K of sysMEM) on an ECP5 FPGA, depending on model and softcore size, and the programming model would have a wider audience.
https://schmartboard.com/schmartboard-ez-qfn-88-pins-0-4mm-p...
I love GreenArray and everything about Chuck Moore and associates. I definitely think it can be taken too far though, FORTH could use some modernization. I'm making a language in it's spirit and also trying to think what a custom hardware solution would be GitHub.com/civboot/fngi.
Although... you can do anything in FORTH with sufficient knowledge of the interpreter, even write C syntax which gets compiled to forth-like words inline, so I'm not really sure what _isnt_ FORTH :)
That's a very good question. Asynchronous design is really cool, but has never gone anywhere that I know of.
https://authors.library.caltech.edu/43698/1/25YearsAgo.pdf
"One interesting experiment was using a hair dryer to heat up the chip. As the temperature rose, one could see the oscillation period stretch on the oscilloscope, and then shrink again as the dryer was removed"
Others mentioned that they each have their own ring oscillator and that makes more sense. There is no _central_ clock, and each core has it's own memory. This also would mean there's no central bus. It's an intriguing design, I'm not totally sure I'm sold, but it definitely reduces some complexity.
http://www.greenarraychips.com/home/support/download-02b.htm...