Compaq ECQD2KCTE Laptop User Manual


 
Introduction 1–3
PALcode is written in standard machine code with some implementation-specific extensions to
provide access to low-level hardware.
PALcode lets Alpha implementations run the full OpenVMS Alpha, DIGITAL UNIX, and
Windows NT Alpha operating systems. PALcode can provide this functionality with little
overhead. For example, the OpenVMS Alpha PALcode instructions let Alpha run OpenVMS
with little more hardware than that found on a conventional RISC machine: the PAL mode bit
itself, plus four extra protection bits in each translation buffer entry.
Other versions of PALcode can be developed for real-time, teaching, and other applications.
PALcode makes Alpha an especially attractive architecture for multiple operating systems.
Alpha and Programming Languages
Alpha is an attractive architecture for compiling a large variety of programming languages.
Alpha has been carefully designed to avoid bias toward one or two programming languages.
For example:
Alpha does not contain a subroutine call instruction that moves a register window by a
fixed amount. Thus, Alpha is a good match for programming languages with many
parameters and programming languages with no parameters.
Alpha does not contain a global integer overflow enable bit. Such a bit would need to
be changed at every subroutine boundary when a FORTRAN program calls a C pro-
gram.
1.2 Data Format Overview
Alpha is a load/store RISC architecture with the following data characteristics:
All operations are done between 64-bit registers.
Memory is accessed via 64-bit virtual byte addresses, using the little-endian or, option-
ally, the big-endian byte numbering convention.
There are 32 integer registers and 32 floating-point registers.
Longword (32-bit) and quadword (64-bit) integers are supported.
Five floating-point data types are supported:
VAX F_floating (32-bit)
VAX G_floating (64-bit)
IEEE single (32-bit)
IEEE double (64-bit)
IEEE extended (128-bit)