4 addressing modes, 1 context-relative addressing mode, Addressing modes 4.1.4.1 – Intel NETWORK PROCESSOR IXP2800 User Manual
Page 173: Context-relative addressing mode, Table 57

Hardware Reference Manual
173
Intel
®
IXP2800 Network Processor
Microengines
It is also possible to make use of both or one LM_Addrs as global by setting
CTX_Enable[LM_Addr_0_Global] and/or CTX_Enable[LM_Addr_1_Global]. When used
globally, all Contexts use the working copy of LM_Addr in place of their own Context specific
one; the Context specific ones are unused.
4.1.4
Addressing Modes
GPRs can be accessed in two different addressing modes: Context-Relative and Absolute. Some
instructions can specify either mode; other instructions can specify only Context-Relative mode.
•
Transfer and Next Neighbor registers can be accessed in Context-Relative and Indexed modes.
•
Local Memory is accessed in Indexed mode.
•
The addressing mode in use is encoded directly into each instruction, for each source and
destination specifier.
4.1.4.1
Context-Relative Addressing Mode
The GPRs are logically subdivided into equal regions such that each Context has exclusive access
to one of the regions. The number of regions (four or eight) is configured in the CTX_Enable CSR.
Thus, a Context-Relative register name is actually associated with multiple different physical
registers. The actual register to be accessed is determined by the Context making the access request
(the Context number is concatenated with the register number specified in the instruction — see
). Context-Relative addressing is a powerful feature that enables eight different contexts to
share the same microcode, yet maintain separate data.
shows how the Context number is used in selecting the register number in relative mode.
The register number in
is the Absolute GPR address, or Transfer or Next Neighbor Index
number to use to access the specific Context-Relative register. For example, with eight active
Contexts, Context-Relative Register 0 for Context 2 is Absolute Register Number 32.
Table 57. Registers Used by Contexts in Context-Relative Addressing Mode
Number of
Active
Contexts
Active
Context
Number
GPR
Absolute Register Numbers
S_Transfer or
Neighbor
Index Number
D_Transfer
Index Number
A Port
B Port
8
0
0 – 15
0 – 15
0 – 15
0 – 15
1
16 – 31
16 – 31
16 – 31
16 – 31
2
32 – 47
32 – 47
32 – 47
32 – 47
3
48 – 63
48 – 63
48 – 63
48 – 63
4
64 – 79
64 – 79
64 – 79
64 – 79
5
80 – 95
80 – 95
80 – 95
80 – 95
6
96 – 111
96 – 111
96 – 111
96 – 111
7
112 – 127
112 – 127
112 – 127
112 – 127
4
0
0 – 31
0 – 31
0 – 31
0 – 31
2
32 – 63
32 – 63
32 – 63
32 – 63
4
64 – 95
64 – 95
64 – 95
64 – 95
6
96 – 127
96 – 127
96 – 127
96 – 127