
45
CHAPTER 3 CPU FUNCTIONS
3.4.8 Recommended use of address space
The architecture of the V853 requires that a register that serves as a pointer be secured for address generation
in accessing operand data in data space. The address in this pointer register ±32 Kbytes can be accessed operand
data directly from an instruction. However, the general register used as a pointer register has limitations. Therefore,
by minimizing the deterioration of address calculation performance when changing the pointer value, the number of
usable general registers for handling variables is maximized, and the program size can be saved because instructions
for calculating pointer addresses are not required.
To enhance the efficiency of using the pointer in connection with the memory map of the V853, the following points
are recommended:
(1) Program space
Of the 32 bits of the PC (program counter), the higher 8 bits are fixed to “0”, and only the lower 24 bits are
valid. Therefore, a contiguous 16-Mbyte space, starting from address 00000000H, unconditionally corresponds
to the memory map of the program space.
(2) Data space
For the efficient use of resources to be performed through the wrap-around feature of the data space, the
continuous 8-Mbyte address spaces 00000000H to 007FFFFFH and FF800000H to FFFFFFFFH of the
4-Gbyte CPU are used as the data space. With the V853, 16-Mbyte physical address space is seen as 256
images in the 4-Gbyte CPU address space. The highest bit (bit 23) of this 24-bit address is assigned as address
sign-extended to 32 bits.
Application of wrap-around
For example, when R = r0 (zero register) is specified for the LD/ST disp16 [R] instruction, an addressing range
of 00000000H ± 32 Kbytes can be referenced with the sign-extended, 16-bit displacement value. By mapping
the external memory in the 24-Kbyte area in the figure, all resources including on-chip hardware can be
accessed with one pointer.
The zero register (r0) is a register set to 0 by the hardware, and eliminates the need for additional registers
for the pointer.
00007FFFH
(R =) 00000000H
FFFFF000H
FFFF8000H
Internal
ROM area
Peripheral I/O
External memory
area
FFFFE000H
Internal RAM area
32 Kbytes
4 Kbytes
4 Kbytes
24 Kbytes
0001FFFFH