NonStop S-Series Server Description Manual (G06.24+)

TNS Data Formats and Number Representations
HP NonStop S-Series Server Description Manual520331-003
3-4
TNS Data Formats
TNS Data Formats
The available TNS data element sizes are single bytes, two-byte words, four-byte
doublewords, and eight-byte quadruplewords. Signed integer data formats are
available as word, doubleword, and quadrupleword elements. Floating-point data
formats are available as doubleword and quadrupleword elements. See Figure 3-2.
The instruction set of all NonStop processors supports individual access to and
operations on 8-bit bytes, 16-bit TNS words, 32-bit TNS doublewords, and 64-bit TNS
quadruplewords. The figure on the facing page shows all of these data formats, plus
the legacy TNS floating-point and extended floating-point data formats.
A 16-bit TNS word can be a signed integer, an unsigned integer, a short pointer for
addressing within a particular memory segment, or a TNS instruction. As indicated in
the Figure 3-2, a TNS word is equivalent to two bytes. In TNS or accelerated
execution modes, all TNS word operands must begin at two-byte memory boundaries
for TNS instructions to operate correctly. In native execution mode, 16-bit operands
can begin at any byte, but there is a large performance penalty if the operand is not
aligned to a two-byte memory boundary.
A TNS doubleword can be a 32-bit signed integer, a 32-bit extended address, a
single-precision floating-point number, or a RISC instruction. A TNS doubleword is
equivalent to four bytes. In TNS or accelerated execution modes, all TNS doubleword
operands must begin at a two-byte memory boundary for correct execution, and there
is no benefit to four-byte alignment. In native execution mode, 32-bit operands can
begin at any byte, but there is a large performance penalty if the operand is not fully
aligned to a four-byte memory boundary.
A TNS quadrupleword can be a 64-bit signed integer, a fixed-point number
represented as a 64-bit signed integer with an assumed scale factor (radix point) fixed
at compile time, or an extended-precision TNS floating-point number. A
quadrupleword is equivalent to four TNS words or eight bytes. In TNS or accelerated
execution modes, all TNS quadrupleword operands must bein at a two-byte memory
boundary for correct execution, and there is no benefit to four-byte or eight-byte
alignment. In native execution mode, 64-bit operands can begin at any byte, but there
is a large performance penalty if the operand is not fully aligned to an eight-byte
boundary.
The single-precision and extended-precision floating-point formats are shown here for
comparison and are discussed in Instructions for Decimal and Floating-Point Arithmetic
on page 3-10.