Stack Computers: the new wave © Copyright 1989, Philip Koopman, All Rights Reserved.
Chapter 8. Applications
Real time embedded control processors are computers that are built into pieces of (usually) complicated equipment such as cars, airplanes, computer peripherals, audio electronics, and military vehicles/weapons. The processor is embedded because it is built into a piece of equipment that is not itself considered a computer.
Often the fact that a computer is present in an embedded system is completely invisible to the user, such as in an automobile anti-skid braking system. Often times, a processor is used to replace expensive and bulky components of a system while providing increased functions and a lower cost. At other times, the fact a computer is present may be obvious, such as in an aircraft autopilot. In all cases, however, the computer is just a component of a larger system.
Most embedded systems place severe constraints on the processor in the terms of requirements for size, weight, cost, power, reliability and operating environment. This is because the processor is just a component of a larger system, which has its own operating requirements and manufacturing constraints.
At the same time, however, the processor must deliver the maximum possible performance to respond to real time events. Real time events are typically external stimulae to the system which require a response within a matter of microseconds or milliseconds. For example, some high performance jet aircraft are inherently unstable, and depend on computer control systems to keep them flying. An airborne computer must be very light and small, and yet not make unreasonable demands for power and cooling. At same time, it must not fall behind in its task of keeping the plane flying properly. When supersonic, the plane is moving at perhaps 1000 feet per second. At these speeds, a few milliseconds can make the difference between crashing or flying!
The manufacturers of the stack machines described in Chapters 4 and 5 all have real time control applications in mind as possible uses for their technology. What is it that makes stack machines so suitable for these applications?
Size and Weight. We have seen that stack computers are very simple in terms of processor complexity. However, it is not the number of gates in the processor itself that determines overall system size and weight, but rather the overall system complexity. A processor that has a large number of pins takes up precious printed circuit board area. One that needs cache memory controller chips and large amounts of memory takes even more printed circuit board area. And systems that require a hard disk for virtual memory management because their software environment is huge are usually out of the question. The key to winning the size and weight issue is to keep component count small. Stack machines, with their low hardware system complexity and small program memory requirements, do that very well. Since stack machines are less complex than other machines, they are more reliable as well.
Power and Cooling. The processor complexity can affect the power consumption of the system. The amount of power used by the processor is related to the number of transistors, and especially to the number of pins on the processor chip. Processors that rely on exotic process technology for speed are usually "power hogs." Processors that need huge numbers of power-consuming high speed memory devices likewise can break a power budget.
Stack computers tend to have low power requirements. The fabrication technology used can greatly affect power consumption, with newer CMOS chips often having minuscule power requirements compare to bipolar an NMOS designs. Of course, power consumption directly affects cooling requirements, since all power used by a computer is eventually given off as heat. The cooler operation of CMOS components can reduce the number of component failures, enhancing system reliability.
Operating Environment. Embedded processing applications are notorious for extreme operating conditions, especially in automotive and military equipment. The processing system must deal with vibration, shock, extreme heat and cold, and perhaps radiation. In remotely installed applications, such as spacecraft and undersea applications, the system must be able to survive without field service technicians to make repairs. The general rule to avoiding problems caused by operating environments is to keep the component count and number of pins as low as possible. Stack machines, with their low system complexity and high levels of integration, do well at standing up to extreme operating environments.
Cost. The cost of the processor itself may be very important to low- and medium-performance systems. Since the cost of a chip is related to the number of transistors and to the number of pins on the chip, low complexity stack processors have an inherent cost advantage.
In high-performance systems, the cost of the processor may be overwhelmed by the cost of the multi-layered printed circuit boards, support chips, and high-speed memory chips. In these cases, the low system complexity of stack machines provides additional advantages.
Computing Performance. Computing performance in a real time embedded control environment is not simply an instructions-per-second rating. While raw computational performance is important, other factors which can make or break the system include interrupt response characteristics and context swapping overhead. An additional desirable characteristic is good performance in programs that are riddled with procedure calls as a means for reducing program memory size. Even if the cost of fast memory chips is no object, a lack of cubic inches and printed circuit board real estate may force the program into a small memory space. Previous discussions on the characteristics of stack machines show that they excel in these areas.
Phil Koopman -- koopman@cmu.edu