Stack Computers: the new wave © Copyright 1989, Philip Koopman, All Rights Reserved.
Chapter 9. The Future of Stack Computers
The use of virtual memory and memory protection are concepts that have not yet been widely incorporated into existing stack machines. This is because most stack machine applications to date have been relatively small programs with tight constraints on hardware and software that did not require or leave room for these techniques.
Memory management can mean many things, but in this case we will focus only on memory management as it pertains to protection features. Protection is the one feature of memory management that is seen as most important by some real time control users, especially the military. Protection is the capability for the hardware to prevent a program from accessing another program's memory except under very carefully controlled conditions. An unauthorized access to memory not owned by a particular program causes an interrupt. This interrupt causes the operating system to shut down or reset the offending task. This provides a security measure to prevent an ill-behaved program from demolishing other programs. The memory protection function is often performed by an separate chip that is managed by the operating system. There is nothing in stack machines that prevents this kind of chip from being used. An advantage of stack machines in this area is that they are small enough to allow the possibility of on-chip memory protection circuitry for increased system integration levels.
Likewise, there is no reason why stack machines can not be provided with virtual memory capabilities. The one problem with virtual memory is the effect of a virtual memory miss, which may require retrying an instruction. Since stack machines are in essence load/store machines, instruction restartability is no harder than on a RISC machine. In fact, since handling interrupts is quicker on a stack machine because of the lack of an instruction pipeline, stack machines should be better at handling virtual memory.
The reason why stack machines have not been designed with virtual memory is very simple. Most stack machines are targeted for real time control applications. The performance variations and large hard disk hardware requirements associated with virtual memory are simply inappropriate in a real time embedded control environment.
Phil Koopman -- koopman@cmu.edu