Stack Computers: the new wave © Copyright 1989, Philip Koopman, All Rights Reserved.
Chapter 1. Introduction and Review
The new breed of stack computer that forms the focus of this book draws upon the rich history of stack machine design and the new opportunities offered by VLSI fabrication technology. This combination produces a unique blend of simplicity and efficiency that has in the past been lacking in computers of all kinds. The reasons for the advantages of stack machines for many applications will be explored in great detail in the following chapters. The features that produce these results and distinguish these machines from conventional designs are: multiple stacks with hardware stack buffers, zero-operand stack oriented instruction sets, and the capability for fast procedure calls.
These design characteristics lead to a number of features in the resulting machines. Among these features are high performance without pipelining, very simple processor logic, very low system complexity, small program size, fast program execution, low interrupt response overhead, consistent program execution speeds across all time scales, and a low cost for context switching. Some of these results are obvious, some are only clear when thought about, and some results are completely contrary to the conventional wisdom of the computer architecture community.
Many of the designs for these stack computers have their roots in the Forth programming language. This is because Forth forms both a high level and assembly language for a stack machine that has two hardware stacks: one for expression evaluation/parameter passing, and one for return addresses. In a sense, the Forth language actually defines a stack based computer architecture which is emulated by the host processor while executing Forth programs. The similarities between this language and the hardware designs is not an accident. Members of the current generation of stack machines have without exception been designed and promoted by people with Forth programming backgrounds.
An interesting point to note is that, although some of these machines are designed primarily to run Forth, they are also good at running conventional languages. Thus, while they may not take over as the processors of choice inside personal computers and workstations anytime soon, they are quite practical to use in many applications programmed in conventional languages. Of special interest are those applications that require stack machines' special advantages: small system size, good response to external events, and efficient use of limited hardware resources.
Phil Koopman -- email@example.com