.. ver, the Alpha may support a smaller virtual address space of at least 43 bits. These virtual addresses are translated into physical memory addresses by the memory management mechanism. The following data types are described in terms of little-endian byte addressing, meaning; the bytes are numbered from right to left. Implementations may also include support for big-endian byte addressing (bytes numbered from left to right). The Alpha 21164 architecture provides support for four integer data types.
Integers are “whole numbers or a value that does not have a fractional part.” (6, pg.110). Please refer to the chart below for a detailed description of each integer data type. Data Type Description Byte A byte is 8 contiguous bits that start at an addressable byte boundary. A byte is an 8-bit value. A byte is supported in Alpha architecture by the EXTRACT, MASK, INSERT and ZAP instructions Word A word is 2 contiguous bytes that start at an arbitrary byte boundary.
A word is a 16-bit value. A word is supported in Alpha architecture by the EXTRACT, MASK, and INSERT instructions. Longword A longword is 4 contiguous bytes that start at an arbitrary byte boundary. A longword is a 32-bit value. A longword is supported in the Alpha architecture by sign-extended load and store instructions and by longword arithmetic instructions.
Quadword A quadword is 8 contiguous bytes that start at an arbitrary byte boundary. A quadword is supported in Alpha architecture by load and store instructions and quadword integer operate instructions. (7, pg. 1-2) Numbers are also represented using floating-point notation. Floating point notation is just that, the radix, or decimal point is allowed to “float” or move left or right as needed. This allows the values to become either very precise or very large.
The Alpha 21164 supports IEEE 754 & 854, and VAX floating point formats. IEEE (Institute of Electrical and Electronics Engineers) addressed the lack of transportability of floating point data among different computers by setting standards for both 32- and 64-bit floating point coding formats. The Alpha 21164 provides support for both S floating formats and T floating. S floating (single precision), datum occupies four contiguous bytes in memory or 32 bits numbered 31 through 0. The 31st bit is the signed bit (indicates negative or positive values), bits 30 through 23 represent exponents, and bits 22 through 0 represent the fraction.
The store instruction reorders register bits on the way to memory and does no checking of the low-order fraction bits. Thus register bits 61 through 59 and 28 through 0 are ignored. The load instruction reorders bits on the way in from memory. In doing so, the exponent is expanded from 8 to 11 bits, and the low-order fraction bits are set to zero. This produces an equivalent T floating number. An IEEE double precision, or T floating, datum occupies eight contiguous bytes in memory.
The bits are labeled from right to left, 0 through 63.Bit 63 is a signed bit, bits 62 through 52 repre-sent the exponent, and bits 51 through 0 represent a 52-bit fraction. In IEEE T floating data types, no bit reordering or input checking is performed during load or store instructions as it is in S floating. The Alpha 21164 also supports VAX floating point formats. VAX is short for Virtual Address eXtension. VAX systems feature the operating system, VMS that support virtual memory. VAX floating-point numbers are stored in one set of formats in memory (datum) and in a second set of formats in registers.
The floating-point load and store instructions convert between these formats purely by rearranging bits; no rounding or range checking is done by the load and store instruc-tions. Alpha processors support F, G, and some D floating point formats. F floating data types are much like IEEE S floating in that they are also four contiguous bytes, the 31st bit is the signed bit, bits 30 through 23 represent exponents, and bits 22 through 0 represent the fraction. However, instead of producing an equivalent T floating data type, it produces an equivalent VAX G floating data type in the register The G floating operand occupies 64 bits in a register. According to Digital Equipment Company, the bits are as follows: The form of a G floating datum is sign magnitude with bit 15 the sign bit, bits *14:4* an excess 1024 binary exponent, and bits *3:0* and *63:16* a normal-ized 53-bit fraction with the redundant most significant fraction bit not repre-sented.
Within the fraction, bits of increasing significance are from 48 through 63, 32 through 47, 16 through 31, and 0 through 3. The 11-bit exponent field encodes the values 0 through 2047. An exponent value of 0, together with a sign bit of 0, is taken to indicate that the G floating datum has a value of 0 (9, 2-5). D floating data types are only partially supported in Alpha architecture. For backward compatibility, exact D-floating arithmetic may be provided via software emulation. D floating format compatibility in which binary files of D floating numbers may be processed, but without the last three bits of fraction precision, can be obtained via conversions to G floating, G arithmetic operations, then conversion back to D floating.” (9, 2-6) The reordering of bits required for a D floating load or store is identical to that of G floating load and store instructions, therefore those instructions are used for loading or storing D floating data. Except for 32 additional fractional bits of low significance, the memory form of a D floating datum is identical to that of a F floating datum. Within the fraction, bits of increasing significance are from 48 through 63, 32 through 47, 16 through 31, and 0 through 6.
“The exponent conventions and approximate range of values is the same for D floating as F floating.” (9, 2-6) According to the Alpha Architecture Handbook hardware support is not provided by the Alpha 21164 for the following data types: ? Octaword (VAX data type) ? H floating ? D floating (except noted previously) ? Variable-Length ? Character String ? Trailing Numeric String ? Leading Separate Numeric String ? Packed Decimal String (9,2-12) In summation, the Alpha 21164 supports four integer data types, two IEEE floating-point data types, and three VAX floating point data types. The integer data types utilize the EXTRACT, MASK, and INSERT instructions. The floating-point data types use combinations of different LOAD and STORE instructions and in doing so, perform some bit reordering. In order to accommodate some of the floating point data types other data type instructions are used as in the VAX convention D floating. Technology Essays.