20.02.2013 Views

Sable CPU Module Specification

Sable CPU Module Specification

Sable CPU Module Specification

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C.1 Introduction<br />

APPENDIX C<br />

COBRA SPECIFIC ( PRIVILEGED<br />

ARCHITECTURE LIBRARY CODE ) PALCODE<br />

In a family of machines both users and operating system implementers require functions<br />

to be implemented consistently. When functions are implemented to a common<br />

interface, the code that uses those functions can be used on several different implementations<br />

without modification.<br />

These functions range from the binary encoding of the instructions and data, to the<br />

exception mechanisms and synchronization primitives. Some of these functions can<br />

be cost effectively implemented in hardware, but several are impractical to implement<br />

directly in hardware. These functions include low-level hardware support functions<br />

such as translation buffer fill routines, interrupt acknowledge, and exception dispatch.<br />

Also included is support for privileged and atomic operations that require<br />

long instruction sequences such as Return from Exception or Interrupt (REI).<br />

In the VAX architecture, these functions are generally provided by microcode. In the<br />

21064, there is no microcode. However an architected interface to these functions<br />

that will be consistent with other members of ALPHA family of machines is still<br />

required. The Privileged Architecture Library Code (PALcode) is used to implement<br />

these functions without resorting to a microcoded machine. The 21064 hardware development<br />

group will provide and maintain a version of the PALcode for the 21064.<br />

<strong>Module</strong> development groups will have to provide and maintain module specific modifications<br />

to the PALcode.<br />

C.2 PAL Environment<br />

PALcode runs in an environment with privileges enabled, instruction stream mapping<br />

disabled, and interrupts disabled. The enabling of privileges allows all functions<br />

of the machine to be controlled. Disabling of instruction stream mapping allows<br />

PALcode to be used to support the memory management functions (e.g., translation<br />

buffer miss routines can not be run via mapped memory). PALcode can perform both<br />

virtual and physical data stream references. The disabling of interrupts allows the<br />

system to provide multi-instruction sequences as atomic operations. The PALcode<br />

environment in the 21064 also includes 32 PAL temp registers which are accessible<br />

only by PAL reserved move to/from processor register instructions.<br />

Cobra Specific ( Privileged Architecture Library Code ) PALcode 223

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!