Stack Computers: the new wave
© Copyright 1989,
Philip Koopman,
All Rights Reserved.
Chapter 1. Introduction and Review
1.6 HIGHLIGHTS FROM THE REST OF THE BOOK
Many different facets of stack machines are explored in the following
chapters. For the curious, here is a preview of some of the important points
which will be discussed:
- Stack machines of all kinds may be classified by a taxonomy based upon
the number of stacks, the size of the dedicated stack buffer memory, and the
number of operands in the instruction format. The stack machines featured in
this book are those with multiple stacks and 0-operand addressing. The size of
the stack buffer memory is a design tradeoff between system cost and operating
speed. For the bulk of this volume, "stack machines" refers to
these particular machines.
- Stack machines have small program size, low system complexity, high
system performance, and good performance consistency under varying conditions.
- Stack machines run conventional languages reasonably well, and do so
using less hardware for a given level of performance than register-based
machines.
- Stack machines are very good at running the Forth language, which is
known for rapid program development because of its interactivity and
flexibility. Forth is also known for producing compact code that is very well
suited to real time control problems.
- Four 16-bit stack machine designs span the range of design tradeoffs with
respect to level of integration and speed. The designs presented in detail are
the WISC CPU/16, the MISC M17, the Novix NC4016, and the Harris RTX 2000.
- Three 32-bit stack machine designs span a wide range of design tradeoffs.
The designs presented in detail are: the Johns Hopkins/APL FRISC 3 (also known
as the Silicon Composers SC32), the Harris RTX 32P, and Wright State
University's SF1.
- Understanding stack machines requires the gathering and analysis of
extensive metrics and comparison with the operation of register-based machines.
Some of the measurements presented are: dynamic and static Forth instruction
frequencies for approximately 10 million executed instructions, the effects of
combining opcodes with subroutine calls in the same instruction on the RTX 32P,
stack buffer size requirements, stack buffer overflow management strategies,
and performance degradations in the face of frequent interrupts and context
switching.
- Software selection for stack machines must encompass a large number of
factors. Applications written largely in conventional languages can be quite
efficient on stack machines, especially if a small effort is made to optimize
frequently used sections of the code.
- A very good application area for stack machines is embedded real time
control. This application area encompasses a large portion of possible uses
for computers. Other interesting applications are also discussed.
- The future hardware and software trends for stack machines will probably
include increasingly efficient support for conventional programming languages
as well as hardware that does not suffer from the ill effects of limits to
memory bandwidth as much as other processors.
NEXT SECTION
Phil Koopman --
koopman@cmu.edu