February 21st, 2013 ~ by admin

Charles Moore: From FORTH to Stack Processors and Beyond

NRAO Radio Telescope

NRAO Radio Telescope

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.

Novix Mostek MKGD02TG - 1987 4000 Gates 16,000 Transistors NC4016

Novix Mostek MKGD02TG – 1987 4000 Gates 16,000 Transistors NC4016

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).

Novix NC4016C - Late 1987

Novix NC4016C – Late 1987

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).

Harris RTX2001GI-8 1992 - No Hardware multiply

Harris RTX2001GI-8 1992 – No Hardware multiply

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.

Cassini-Huygens - Several subsystems run a Harris/Intersil HS-RTX2010

Cassini-Huygens – Several subsystems run a Harris/Intersil HS-RTX2010 – still orbiting Saturn

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.

Posted in:
Research

8 Responses to Charles Moore: From FORTH to Stack Processors and Beyond

  1. Chuck Moore: Part 2: From Space to GreenArrays | The CPU Shack Museum

    […] Charles Moore: From FORTH to Stack Processors and Beyond […]

  2. CPU of the Day: IBM Micro/370 – True Mainframe on a chip | The CPU Shack Museum

    […] 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 […]

  3. Here comes Philae! Powered by an RTX2010 | The CPU Shack Museum

    […] 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 […]

  4. Ray Saarela

    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

  5. Ray Saarela

    btw mine is nc4000 kit lost 4 kits one had labeling nc2000 for some reason

  6. Ray Saarela

    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

  7. FORTH language processor on comet | T. C. Mits 108

    […] Charles Moore: From FORTH to Stack Processors and Beyond […]

  8. dwight elvey

    I have CMFORTH listing someplace I can be contacted through the mail list cctalk@classiccmp.org. Dwight

Leave a Reply