NonStop S-Series Server Description Manual (G06.27+)
TNS Execution Modes
HP NonStop S-Series Server Description Manual—520331-004
6-4
TNS Addressing Conventions
TNS Addressing Conventions
When TNS mode or accelerated mode is in effect in the processor, both code and data
are located in different areas of virtual memory than when native mode is in effect (see
Section 4, Memory Addressing and Access). In addition, these modes use addressing
conventions that are specific to the TNS architecture. This and the remaining topics in
this section describe these conventions.
The user data segment consists of up to 65,536 16-bit words. Addresses in the data
segment start at G[0] (global data, word 0) and progress consecutively through
G[65535]. This is shown in Figure 6-2. The TNS user data stack, which dynamically
varies in size, is limited to the first half of the data segment, G[0:32767].
The code space of a given process consists of a user code space (UC) and optional
user library space (UL). In addition, although not shown, all processes share system
library (SL) and system code (SC) spaces. This example shows four user code
segments allocated: UC.0 through UC.3.
Each space is a single program file that can contain multiple unitary segments: up to
32 segments of TNS code in each code space. (Also possibly present, but not shown,
is the accelerated RISC code if the code was accelerated.) To name the individual
segments within these two spaces, a space ID (space identifier) index is used. A
space ID index is a number in the range %0 through %37. Examples, as written: UC.0,
UL.17, and SL.6.
External procedure calls are used to call procedures from one segment to another in all
segments of the user code and library spaces, as well as to call procedures in the
system library.
Information in a TNS code segment consists of executable code and read-only data.
Although it is possible to address the code segments (using extended addressing or
instructions such as MOVW, MOVB, COMB, COMW, SBU, SBW, LBP, LWP, and
LWUC), only read access is permitted; a write access attempt results in an address
trap.
Each TNS code segment occupies up to 65,536 16-bit words in one unitary segment.
Words in a code segment are numbered consecutively from C[0] (code, word 0)
through C[65535]. This forms the basis for logical addressing within the code
segment, as illustrated in Figure 6-2.
Each TNS code segment occupies up to 65,536 16-bit words in one unitary segment.
Words in a code segment are numbered consecutively from C[0] (code, word 0)
through C[65535]. This forms the basis for logical addressing within the code
segment, as illustrated in Figure 6-2.