Chapter 6
Common PALcode Architecture
6.1 PALcode
In a family of machines, both users and operating system developers require functions to be implemented consistently. When functions conform to a common interface, the code that uses those functions can be used on several different implementations without modification.
These functions range from the binary encoding of the instruction and data to the exception mechanisms and synchronization primitives. Some of these functions can be implemented cost effectively in hardware, but others are impractical to implement directly in hardware. These functions include
In the VAX, these functions are generally provided by microcode. This is not seen as a prob- lem because the VAX architecture lends itself to a microcoded implementation.
One of the goals of Alpha architecture is to implement functions consistently without micro- code. However, it is still desirable to provide an architected interface to these functions that will be consistent across the entire family of machines. The Privileged Architecture Library (PALcode) provides a mechanism to implement these functions without microcode.
6.2 PALcode Instructions and Functions
PALcode is used to implement the following functions:
•Instructions that require complex sequencing as an atomic operation
•Instructions that require VAX style interlocked memory access
•Privileged instructions
•Memory management control, including translation buffer (TB) management
•Context swapping
•Interrupt and exception dispatching
•
•Console functions
•Emulation of instructions with no hardware support
Common PALcode Architecture