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 low-level hardware support functions such as Translation Buffer miss fill routines, interrupt acknowledge, and vector dispatch. They also include support for privileged and atomic operations that require long instruction sequences.

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

Power-up initialization and booting

Console functions

Emulation of instructions with no hardware support

Common PALcode Architecture 6–1

Page 243
Image 243
Compaq ECQD2KCTE manual PALcode Instructions and Functions