the FMITE processor

100 views
Skip to first unread message

hughag...@gmail.com

unread,
Jun 28, 2015, 7:07:25 PM6/28/15
to qil...@googlegroups.com
Over on comp.lang.lisp I posted this:
I'm trying to drum up interest in my FMITE processor: http://www.forth.org/FMITE.txt

Mark Tarver suggested that I come over here and discuss my processor design. The FMITE is programmed in LOTD, which is derived from Forth and Factor. I think the similarity that Mark Tarver noticed was that both have a small set of primitives (46 for Shen and 64 for the FMITE), and both support lambda functions --- it is a bit of a stretch to say that they are similar however, as the FMITE is intended to be built into an FPGA and used as a micro-controller, whereas Shen is for desktop-computers.

I remember looking at Shen a few years ago and it seemed interesting, but I never pursued it. Desktop-computer programming is a subject that I don't know much about or have much interest in --- I'm much more interested in micro-controllers as they are out in the real world doing things, whereas desktop-computers just sit on a desktop...

Mark Tarver

unread,
Jun 30, 2015, 1:44:37 AM6/30/15
to qil...@googlegroups.com, hughag...@gmail.com
The main backer of Shen between 2011 and 2012, without whom it would not have been built, was Vasil Diadov, and Vasil's main interest was microcontrollers; so that tells you a lot.  In fact his vision was to use the very small footprint of Shen to engineer type secure Shen programs to run on a processor he designed himself - a very low cost unit with a performance somewhere in the 100MHz range.   He produced a prototype.  I believe he later hoped to have a 1+GHz version for desktop use, which would have in effect been a sort of dedicated Lisp/Shen machine.    Hence your FMITE processor is very much in line with the original conception he had.

To see the possibility of FMITE integration - look at the KLambda instruction set on which Shen runs.

hughag...@gmail.com

unread,
Jul 1, 2015, 2:16:20 AM7/1/15
to qil...@googlegroups.com, hughag...@gmail.com


On Monday, June 29, 2015 at 10:44:37 PM UTC-7, Mark Tarver wrote:
The main backer of Shen between 2011 and 2012, without whom it would not have been built, was Vasil Diadov, and Vasil's main interest was microcontrollers; so that tells you a lot.  In fact his vision was to use the very small footprint of Shen to engineer type secure Shen programs to run on a processor he designed himself - a very low cost unit with a performance somewhere in the 100MHz range.   He produced a prototype.  I believe he later hoped to have a 1+GHz version for desktop use, which would have in effect been a sort of dedicated Lisp/Shen machine.    Hence your FMITE processor is very much in line with the original conception he had.

To see the possibility of FMITE integration - look at the KLambda instruction set on which Shen runs.


My background, is that I wrote MFX (Forth cross-compiler, assembler and simulator) for the MiniForth when I worked at Testra in the 1990s. The MiniForth was built on the Lattice isp1048 PLD --- since then, it has been renamed RACE and upgraded to an FPGA.

I think that what you are describing is much closer to the idea of the RACE rather than the idea of the FMITE. The name RACE means "Reconfigurable Architecture Computation Engine 
The idea here is that the processor can be "reconfigured" to provide each user with his own custom set of primitives. By comparison, my FMITE is not reconfigurable, and it only provides the set of primitives that I decided would be best and which I described in my document --- although the idea in both FMITE and Shen is "keep it simple with a minimal set of primitives," the LOTD and Shen have such a different set of primitives that there is no bridge between them.

The RACE could be reconfigured to support your Shen language. I can foresee the RACE running a Lisp-like language instead of a Forth-like language; the RACE is that reconfigurable. You would still have the Forth data-stack being used internally by the primitives, but the Forth data-stack wouldn't be exposed to the application programmer --- the application programmer would only be exposed to lists as typical in Lisp programming (actually, Shen programming). The fact that you have only 46 fundamental primitives is a big step toward reconfiguring the RACE to run Shen code --- if you had hundreds of primitives, reconfiguring the RACE would still be possible, but it would involve a lot of low-level programming --- afaik, there are only 3 people on the planet who know how to write primitives for the RACE (I'm one of them, and the other 2 learned from me), so you want to keep the design simple in order to keep the cost of reconfiguring down (keeping the design simple seems to be what Shen is all about though, according to that webpage you directed me to).

For the record, I'm not an employee of Testra anymore --- so don't think that I'm being a salesman for the RACE. Being a salesman in a forum such as this is very tacky. That is not really what I'm doing though --- I'm just pointing out that a processor designed to be reconfigurable is what you want for your Shen language --- my FMITE is not designed to be reconfigurable though, and the only language it will ever support is my LOTD that was designed for it.

As an historical note, when I worked at Testra I was told that some Lispers had contacted them previously with the idea of a Lisp-machine, but the project fizzled out before much got done. This was before the RACE existed though, so they were thinking in terms of doing everything in hardware from scratch (what your Vasil Diadov apparently wanted to do) --- it is actually much easier to reconfigure the RACE rather than to start entirely from scratch --- what was insurmountable 20+ years ago can be done today (it is not super-easy, but it is feasible).

Reply all
Reply to author
Forward
0 new messages