Engineering:PALcode

From HandWiki

PALcode (Privileged Architecture Library code)[1][2] is the name used by DEC in the Alpha instruction set architecture (ISA) for a set of functions in the System Reference Manual (SRM) or AlphaBIOS firmware, providing a hardware abstraction layer for system software, covering features such as cache management, translation lookaside buffer (TLB) miss handling, interrupt handling, and exception handling. It evolved from a feature of the DEC PRISM architecture named Epicode.[3]

PALcode is Alpha machine code, running in a special mode[4] that also allows access to internal registers specific to the particular Alpha processor implementation. Thus, it is somewhere between the role of microcode and of a hardware emulator. PALcode is operating system-specific,[5] so different versions of PALcode are required by OpenVMS, Tru64 UNIX, and Windows NT. Tru64 UNIX PALcode is also used by NetBSD, FreeBSD, OpenBSD and Linux.

References

  1. ↑ Alpha Architecture Reference Manual. 2014. ISBN 978-1483294339. https://books.google.com/books?id=aYioBQAAQBAJ&q=very+flexible. "PALcode—Alpha's Very Flexible Privileged Software Library A Privileged Architecture Library (PALcode) is a set of subroutines that ..." 
  2. ↑ "PALcode for Alpha Microprocessors System Design Guide". May 2, 1996. https://download.majix.org/dec/palcode_dsgn_gde.pdf. "PALcode for Alpha Microprocessors. System Design Guide. May 1996. This guide explains how to use the Privileged Architecture Library code." 
  3. ↑ Neil Rieck. "Dave Cutler, PRISM, Mica, Emerald, etc.". http://neilrieck.net/docs/dave_cutler-prism-mica-emerald-etc.html. 
  4. ↑ "PALcode - ES40 Emulator". http://www.es40.org/PALcode. "PALcode is Alpha machine code, running in a special mode that allows access to internal registers specific to the particular Alpha processor" 
  5. ↑ "The Alpha AXP Processor". http://www.science.unitn.it/~fiorella/guidelinux/tlk/node140.html. "The Alpha AXP architecture uses a set of subroutines, call privileged architecture library code (PALcode). PALcode is specific to the operating system, the CPU ..."