CHAPTER 3 CPU FUNCTION
83
User’s Manual U14359EJ4V0UM
3.4.7
Recommended use of address space
The architecture of the V850E/MA1 requires that a register that serves as a pointer be secured for address
generation in operand data accessing of data space. Operand data access from instruction can be directly executed
at the address in this pointer register
±
32 KB. However, because the general-purpose registers that can be used as a
pointer register are limited, by minimizing the deterioration of address calculation performance when changing the
pointer value, the number of usable general-purpose registers for handling variables is maximized, and the program
size can be saved.
(1) Program space
Of the 32 bits of the PC (program counter), the higher 6 bits are fixed to 0, and only the lower 26 bits are
valid. Therefore, a contiguous 64 MB space, starting from address 00000000H, unconditionally corresponds
to the memory map of the program space.
(2) Data space
With the V850E/MA1, a 256 MB physical address space is seen as 16 images in the 4 GB CPU address
space. The highest bit (bit 25) of this 26-bit address is assigned as an address sign-extended to 32 bits.
Example
Application of wrap-around (
µ
PD703105A)
00007FFFH
(R =) 00000000H
FFFFD000H
FFFF8000H
Internal ROM area
Internal peripheral
I/O area
External memory
area
FFFFF000H
FFFFEFFFH
FFFFBFFFH
FFFFCFFFH
FFFFC000H
Internal RAM area
32 KB
4 KB
4 KB
16 KB
0001FFFFH
When R = r0 (zero register) is specified with the LD/ST disp16 [R] instruction, an addressing range of
00000000H
±
32 KB can be referenced with the sign-extended disp 16. By mapping the external memory in
the 16 KB area in the figure, all resources including internal 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.