home .. forth .. misc mail list archive ..

Novix, focus, Forth and minimalism


Dear MISC readers:

I found an ancient text yesterday from an Electronics
magazine from 1986 about the Novix Forth chip on the cover.

BEHIND THE COVER

"I always assumed that someone would build a computer to run 
Forth," observes Charles Moore, who invented the high-level
language 15 years ago. In fact, several microprocessors already
emulate the Forth architecture."  But in the end it was Moore
himself who actually sat down with fellow enthusiasts and
determined that a Forth processor was feasible.

The Novix MC4000A, what that company's John Golden calls
"the first computer for which the software was written first,"
is the subject of this isues' cover story (p. 127).  It uses
an insruction set consisting of subroutines (or "words") taken
directly from Forth.  The user's programs feeds those
instructions via a compiler into an instruction latch that
actually controls the machine.  All time-consuming detours
through lookup tables and microcode are eliminated.

When Moore's team got going four years ago, they spend one
week outlining an architecture that would exploit the highly
efficient data and address stacks for which Forth is famous.
Another year passed before they could decide which of two
dozen variations was best.

[the rest of the article deleted from here] ...

----

I thought it interesting that it mentioned two concepts:

1. the software was done first.

2. the team spent a year looking at all the details of a
dozen possible implementations before they did one.

Although this was ancient history to this day we see a
lot of people who never grasped #1.  They ask well what
about C?  What about Java? What about Windows?  They
seem to miss that the software was written first and
it wasn't C, it wasn't Java, it wasn't Windows.  That is
not what these machine were designed or optimized to do.

Also even back then they spent a year before implementing
Novix.  They did a lot of research and considered a lot
of ideas in depth.

I saw the same thing on ShBoom, on P20, on P21, on P8,
on P32, on F21, v21, and i21.  We spent years simulating
variations in the designs and doing extensive benchmarking
of possible architectures through simulation and then
weighted the results we knew we could get against the
costs associated with doing things each way.

So 99.99% of the time when someone says, "Have you 
considered ...?"  The answer is yes, in the years
we spend considering options and simulating what 
sorts of results we could get by using different
approaches we have probably spent a lot of time
considering the ... option.  We didn't just throw
something together without a clear understanding
of the targeted application space and the relative
performance and cost issues for those areas.

Of course F21 is only one chip so it only gets one
set of the possible options.  For those who say, C is 
what is important, Java is what is important,
FP is what is important, etc. are not thinking about
what we are doing.  They are thinking about other
options aimed at different targets.  That is not
what is important to what we are doing.  Our
simulators are in Forth, our compilers are in Forth,
our CAD tools are in Forth, our utility programs 
are in Forth.  We were even doing web surfing and
email completely in Forth.  Our software was done
in Forth because it was easier for us and alowed
us to do it faster and cheaper that way.  

We aimed at a close match between hardware and software
not on making hardware with features to support any
kind of software imaginable.  To get a close match to
more complex things you need more complex machines.
We wanted to do useful things, including scientific
applications, but do them much cheaper than other
people.  This means not using C, Java, etc.  

If we wanted to spend more money, if we wanted to be
more fashionable, etc. we could have gone in that
direction.  That was not the idea however.

Jeff Fox


We didn't say that C or Java or FP isn't important
to some people.  We just said that they are not
important to us since they are part of a completely
different picture and on the opposite horizon from
the direction in which we are headed.  Remember Chuck 
invented Forth before he started designing chips.
As Chuck put it, "The software problem was solved,"
so he wanted to focus on the hardware problem.  He
wanted to make the hardware needed to run Forth
simple, cheap, easy to program, low power, rugged
etc.  Those were our goals from the beginning.

Jeff Fox