NonStop S-Series Server Description Manual (G06.24+)
TNS Execution Modes
HP NonStop S-Series Server Description Manual—520331-003
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.










