Datasheet
dsPIC33FJ12GP201/202
DS70264E-page 34 © 2007-2011 Microchip Technology Inc.
FIGURE 4-3: DATA MEMORY MAP FOR dsPIC33FJ12GP201/202 DEVICES WITH 1 KB RAM
4.2.5 X AND Y DATA SPACES
The core has two data spaces, X and Y. These data
spaces can be considered either separate (for some
DSP instructions), or as one unified linear address
range (for MCU instructions). The data spaces are
accessed using two Address Generation Units (AGUs)
and separate data paths. This feature allows certain
instructions to concurrently fetch two words from RAM,
thereby enabling efficient execution of DSP algorithms
such as Finite Impulse Response (FIR) filtering and
fast Fourier transform (FFT).
The X data space is used by all instructions and
supports all addressing modes. X data space has
separate read and write data buses. The X read data
bus is the read data path for all instructions that view
data space as combined X and Y address space. It is
also the X data prefetch path for the dual operand DSP
instructions (MAC class).
The Y data space is used in concert with the X data
space by the MAC class of instructions (CLR, ED,
EDAC, MAC, MOVSAC, MPY, MPY.N, and MSC) to
provide two concurrent data read paths.
Both the X and Y data spaces support Modulo Address-
ing mode for all instructions, subject to addressing
mode restrictions. Bit-Reversed Addressing mode is
only supported for writes to X data space.
All data memory writes, including in DSP instructions,
view data space as combined X and Y address space.
The boundary between the X and Y data spaces is
device-dependent and is not user-programmable.
All effective addresses are 16 bits wide and point to
bytes within the data space. Therefore, the data space
address range is 64 Kbytes, or 32K words, though the
implemented memory locations vary by device.
0x0000
0x07FE
0x0BFE
0xFFFE
LSB
Address
16 bits
LSbMSb
MSB
Address
0x0001
0x07FF
0xFFFF
Optionally
Mapped
into Program
Memory
0x0801
0x0800
0x0C00
2 Kbyte
SFR Space
1 Kbyte
SRAM Space
0x8001
0x8000
SFR
Space
X Data RAM (X)
X Data
Unimplemented (X)
Y Data RAM (Y)
0x09FE
0x0A00
0x09FF
0x0A01
0x0BFF
0x0C01
0x1FFF
0x1FFFF
0x2001
0x2000
8 Kbyte
Near Data Space