Compaq ECQD2KCTE Laptop User Manual


 
Common PALcode Architecture 6–3
PALcode needs a hardware mechanism to transition the machine from the PALcode
environment to the non-PALcode environment. This mechanism loads the PC, enables
interrupts, enables mapping, and disables PALcode privileges.
An Alpha implementation may also choose to provide additional functions to simplify or
improve performance of some PALcode functions. The following are some examples:
An Alpha implementation may include a read/write virtual function that allows PAL-
code to perform mapped memory accesses using the mapping hardware rather than pro-
viding the virtual-to-physical translation in PALcode routines. PALcode may provide a
special function to do physical reads and writes and have the Alpha loads and stores
continue to operate on virtual address in the PALcode environment.
An Alpha implementation may include hardware assists for various functions, such as
saving the virtual address of a reference on a memory management error rather than
having to generate it by simulating the effective address calculation in PALcode.
An Alpha implementation may include private registers so it can function without hav-
ing to save and restore the native general registers.
6.5 PALcode Effects on System Code
PALcode will have one effect on system code. Because PALcode may reside in main memory
and maintain privileged data structures in main memory, the operating system code that allo-
cates physical memory cannot use all of physical memory.
The amount of memory PALcode requires is small, so the loss to the system is negligible.
6.6 PALcode Replacement
Alpha systems are required to support the replacement of PALcode supplied by Compaq with
an operating system-specific version. The following functions must be implemented in PAL-
code, not directly in hardware, to facilitate replacement with different versions.
Translation Buffer fill. Different operating systems will want to replace the Translation
Buffer (TB) fill routines. The replacement routines will use different data structures.
Page tables will not be present in these systems. Therefore, no portion of the TB fill
flow that would change with a change in page tables may be placed in hardware, unless
it is placed in a manner that can be overridden by PALcode.
Process structure. Different operating systems might want to replace the process con-
text switch routines. The replacement routines will use different data structures. The
HWPCB or PCB will not be present in these systems. Therefore, no portion of the con-
text switching flows that would change with a change in process structure may be
placed in hardware.
PALcode can be viewed as consisting of the following somewhat intertwined components:
Chip/architecture component
Hardware platform component
Operating system component