Charles Moore: From FORTH to Stack Processors and Beyond
There are many greats of the CPU industry, some, such as Federico Faggin (designer of the 4004 and worked on the 8008, then founded Zilog) are fairly well known. Others include Gelsinger and Meyer (of x86 fame) perhaps even Gordon Moore, of which a ‘law’ is named. Chuck Peddle and Bill Mensch designed the ubiquitous 6502 processor, but there were more, many more. Engineers whose names have been oft forgotten, but whose work has not. The 1970’s and 80’s were the fast and the furious of processor designs. Some designs were developed, sold, or canceled in weeks, months; years were not a period of time that was available to these designers, for in a year, a new technology would dictate a new design.
One of these designers is Charles H. Moore. (aka Chuck Moore). Chuck is perhaps best known for inventing the FORTH programming language in 1968, originally to control telescopes. It was a stack based language, and lended itself well to small microcomputers and microcontrollers. Some microcontrollers even embedded a FORTH kernel in ROM. It was also designed to be able to be ported to different architectures easily. FORTH continues to be used today for a variety of applications. However Chuck did not just invent a 1970’s programming language.
In 1983 Chuck founded Novix, a company whose goal was to design a processor that was optimal for use with FORTH, a true stack processor. A stack processor does not need (though some do have them)( registers, nor do they generally support operands that work on registers. All opcodes operate directly on the stack(s). The first design was the NC4000 released in June of 1985, later renamed the NC4016. One of the goals of FORTH is to eliminate sub-routine call overhead, and on the NC4016 subroutine calls and returns could be handled in a single clock. Interrupt handling was also very quick and consistent (in number of cycles). This lended the design well to real time applications. The NC4016 ran at 7.5MHz and was capable of 10MIPS. It was implemented on a Mostek 3 micron 4000 gate array. Unlike most processors at the time, and today, the NC4016 was not microcoded. In a microcoded processor instructions are decodes in on chip microcode (a ROM or look up table) and the outputs of that control the actual hardware resources (ALUs, registers, buses etc). In the NC4016 the bit patterns within each op-code directly control the silicon, again saving overhead. Multiple FORTH instructions can be executed in a single clock cycle. The NC4016 supports 2 256 entry stacks (16 bit wide data and return stacks). These are stored off chip (except for the top entries in each one, which are stored on chip in 3 registers).
The next processor was the NC5016 which was an enhancement of the 4016, clock speed was raised to 10MHz, taking advantage of a process shrink to 2 microns. This increased performance to 12MIPS. It also added registers and control to support much larger amounts of external memory, though keeping with the efficiency of a non-microcoded design. There was to be an enhanced NC6016 but I am unsure it ever made it to market before the design was licensed to Harris. The Soviets took notice of the benefits of a stack processor and cloned the 4016 (and some later versions) as the Dauphin-1610 and the 1620.
Harris saw the Novix design, which was great at real time, power efficient, code dense, and ran FORTH and determined it would make an excellent choice for high reliability applications, namely space based computing. Harris licensed the design in 1985 initially as a standard cell library, but then implemented as the RTX2000 (with hardware multiply) and the RTX2001 (without).
The biggest difference between these and the Novix chips was the 2 stacks were moved completely on chip, removing the need for external stack memory. RTX stands for Real Time eXpress, and was designed to be a radiation hardened processor. Harris/Intersil further enhanced the design by adding on chip floating point hardware, timers, and other peripherals which resulted in the RTX2010. The RTX2010 ran at 8MHz and was a CMOS Silicon-On-Sapphire design, ideally suited for the space industry.
Many of these processors are still flying, and designs continue to implement them. The MESSENGER probe currently orbiting Mercury uses a RTX2010 to handle event processing (which hands its data off to the main RAD6000 processor). Other spacecraft (among the hundreds), include the Cassini-Huygens (still circling Saturn) and NEAR Shoemaker which landed on an asteroid.
Perhaps it is fitting than that the man who created a language to control telescopes aimed at the stars, would create a processor that journeys through the heavens. But Chuck did not stop there…
Chuck Moore: From FORTH to Stack Processors and Beyond will continue next week.
March 5th, 2013 at 11:10 pm
[…] Charles Moore: From FORTH to Stack Processors and Beyond […]
March 22nd, 2013 at 1:16 am
[…] some designs,known as random logic, the op codes control the actual hardware directly (such as the previously discussed Novix Stack Processors). This is faster, but harder to debug and make changes to. A microcoded processor could […]
November 12th, 2014 at 2:12 am
[…] of its mission (later it will switch to solar/back up batteries) so the power budget is critical. The RTX2010 is a Forth based stack processor which allows for very efficient coding, again useful for a low power […]
November 30th, 2014 at 3:28 pm
I have lost my novix 4000 kits schematic for hooking rs-232 to its 5 volt it banging serial , schematic missing too and lost original floppy with metacompiling bout 30 screens cmForth. Can Anne help me. I want to put my history back to life, bought this kit personally from chuck in berkeley 1986 when he came meet kindly me and another forth guy chuck meyers near cal
berkeley. Super thanks for any help !!!! Kit is alive if get serial rehooked
November 30th, 2014 at 3:31 pm
btw mine is nc4000 kit lost 4 kits one had labeling nc2000 for some reason
November 30th, 2014 at 3:56 pm
Figured the lines come to the 4 pin connector in trough the resistored one and out without resistor.schem and cmMoore forth blks would be nice still
June 6th, 2015 at 6:19 am
[…] Charles Moore: From FORTH to Stack Processors and Beyond […]
March 12th, 2018 at 8:13 am
I have CMFORTH listing someplace I can be contacted through the mail list cctalk@classiccmp.org. Dwight