**Stack Computers**: the new wave
© Copyright 1989,
*Philip Koopman,*
All Rights Reserved.

Chapter 4. Architecture of 16-bit Systems

## 4.1 CHARACTERISTICS OF 16-BIT DESIGNS

The systems discussed here are 16 bits wide because that is the smallest
configuration that makes sense for most commercial stack processor
applications.

### 4.1.1 Good fit with the traditional Forth model

The primary motivating factor for making Forth machines 16 bits wide is
that the Forth programming model has traditionally been 16 bits. This is
consistent with average Forth program sizes of less than 32K bytes and the
implementation of most of the first Forth compilers on microprocessors with 64K
byte address ranges.

### 4.1.2 Smallest interesting width

A major reason that Forth has historically been a 16-bit language is that 8
bits is too small for general purpose computations and addressing data
structures. While 12 bits was tried in some of the earliest minicomputers, 16
bits seems to be the smallest integer size that is truly useful. Forth
traditionally has not used more than a 16-bit computing model because it was
developed before 32-bit microprocessors were available.

16-Bit machines are capable of addressing 64K of memory, which for a stack
machine is a rather large program memory. 16-Bit machines have single
precision integers in the range of -32 768 to +32 767 which is large enough for
most computations. Using double precision (32-bit integers), a 16-bit machine
can represent integers in the range of -2 147 483 648 to +2 147 483 647, which
is large enough for all but the most demanding applications.

Of course, a machine with a 4-bit or 8-bit data path can be made to emulate
a 16-bit machine. The result is generally unsatisfactory performance, because
an 8-bit machine can be expected to be about half as fast as a 16-bit machine
when manipulating 16-bit data. Since the machines discussed in this chapter
are all designed for high speed processing, all have 16-bit internal data
paths.

### 4.1.3 Small size allows integrated embedded system

The three Forth chips discussed in this chapter (the M17, NC4016, and RTX
2000) are all targeted at the embedded applications market. Embedded
applications require a small processor with a small amount of program memory to
satisfy demanding power, weight, size, and cost considerations. A 16-bit
processor is often a good compromise that provides higher levels of performance
than an 8-bit processor, which probably would need to spend a lot of time
synthesizing 16-bit arithmetic operations, and a 32-bit processor, which is
overkill for many applications.

NEXT SECTION

Phil Koopman --
koopman@cmu.edu