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

Memory Addressing and Access
HP NonStop S-Series Server Description Manual520331-003
4-28
Kseg0 Usage
Kseg0 Usage
Kseg0 allows cached access to the first 512 megabytes of installed physical memory.
As indicated in Figure 4-13, some unitary segments of Kseg0 are allocated as
dedicated, permanently resident parts of physical memory. The remaining space
(shown shaded) is available for dynamic memory management. Dedicated allocations
include the system data segment and the system code segments. Because the entire
privileged space requires privileged access, only those procedures that are RESIDENT
and either PRIV or CALLABLE are allocated to Kseg0. Nonprivileged or nonresident
procedures are instead allocated in the system library (in the nonprivileged space).
Segment 0 is reserved for low-level millicode, such as the exception handlers,
bootstraps, I/O and interprocessor bus handlers, reset initialization, service processor
(SP) functions, Lobug functions, and the halt loop. Physical segment 1 is the system
data segment, which contains primary global variables for the operating system,
including anchor pointers to many system tables; it also includes the memory area
called Syspool. Segment 2 also contains various system tables and also the
scratchpad (SPAD) frames used by the millicode.
SC is structured as an accelerated TNS code region, as described earlier under
Allocation for TNS and Accelerated Code on page 4-22, but uses only a small part of
the first region of Kseg0. There are only a few TNS code segments, starting with SC.5
at 800A0000. The accelerator tables and code begin at 80400000 (absolute segment
32). TNS/R native code (SCr) begins at 80800000.
As evident from Figure 4-13, there is much unassigned address space before,
between, and after the system code areas. Although not shown, such space is used
by SYSGENR to allocate important resident data structures such as the process
control blocks, the address mapping tables, and various other static data structures.
Most of the physical memory (and therefore most of Kseg0) is mapped dynamically for
access through nonprivileged space and Kseg2 addresses. A Kseg0 address cannot
safely be used to access a page frame that is also mapped to another address; cache
coherency errors are likely. Therefore, Kseg0 addressing is restricted to areas, such
as those described above, that have no other addresses.