Stack Computers: the new wave © Copyright 1989, Philip Koopman, All Rights Reserved.
Chapter 8. Applications
A fundamental decision about which stack processor to select for a particular application is the size of the processor's data elements: 16 bits or 32 bits. The decision between 16- and 32-bit processors is driven by the factors of cost, size and performance.
16-bit stack processors in general have lower costs than 32-bit processors. Their internal data paths are narrower, so they use fewer transistors and cost less to manufacture. They only need 16-bit paths to external memory, so they have half as many memory bus data pins as 32-bit processors. System costs are also lower, since a minimum configuration 16-bit processor only needs to have half the number of memory chips as a 32-bit processor for a single bank of memory.
16-bit chips also have a reasonable amount of silicon area available for special features, such as hardware multipliers, on-chip program memory, and peripheral interfaces. The trend is for semicustom 16-bit stack processors such as the RTX 2000 to be complete systems-on-a-chip, including I/O peripherals and program memory for embedded applications.
16-Bit processors should always be evaluated for an application, then rejected in favor of 32-bit processors only if there is a clear benefit for the change.
Most traditional real time control applications are well served by 16-bit processors. They offer high processing speed in a small system at minimum cost. Of course, part of the reason that traditional applications are well served by 16-bit processors is that capable 32-bit processors have not been widely available for very long. As the more capable 32-bit processors come into greater usage, new application areas will be discovered to put them to good use.
32-Bit stack processors should be used instead of 16-bit processors only in cases where the application requires high efficiency at one or more of the following: 32-bit integer calculations, access to large amounts of memory, or floating point arithmetic.
32-Bit integer calculations are obviously well suited to a 32-bit processor. Occasions where 32-bit integers are required include graphics and manipulation of large data structures. While a 16-bit processor can simulate 32-bit arithmetic using double-precision operands, 32-bit processors are much more efficient.
While 16-bit processors can use segment registers to access more than 64K elements of memory, this technique becomes awkward and slow if it must be used frequently. A program that must continually change the segment register to access data structures (especially single data structures that are bigger than 64K in size) can waste a considerable amount of time computing segment values. Even worse, since the addresses that must be manipulated when computing data record locations that are greater than 16 bits wide, address computations are also slower because of all the double-precision math involved. A 32-bit processor can offer a linear 32-bit address space with accompanying quick address calculations on a 32-bit data path.
Floating point calculations also require a 32-bit processor for good efficiency. 16-Bit processors spend a significant amount of time manipulating stack elements when dealing with floating point numbers, whereas 32-bit processors are naturally suited to the size of the data elements. There are many instances in which scaled integer arithmetic is more appropriate than floating point numbers to increase speed on some processors. In these cases a 16-bit processor may suffice. However, floating point math must often be used to reduce the cost of programming a project, and to support code written in high level languages. Also, with the advent of very fast floating point processing hardware, the traditional speed advantage of integer operations over floating point operations is decreasing.
The disadvantages of 32-bit processors are cost and system complexity. 32-Bit processor chips tend to cost more because they have more transistors and pins than do 16-bit chips. They also require 32 bit wide program memory and a generally larger printed circuit board than 16-bit processors. There is less room on-chip for extra features such as hardware multipliers, but these items will appear as chip fabrication technology gets denser.
Phil Koopman -- email@example.com