Electronic – Extended Data Space in PIC24

microchipmicrocontrollerpicram

I am new at programming PIC24FJ1024GB610, and I just started reading the Manual.

On page 45/468, at Chapter 3.0 CPU. It is mentioned that:

The lower 32 Kbytes of the Data Space (DS) can be
accessed linearly. The upper 32 Kbytes of the Data
Space are referred to as Extended Data Space (EDS),
to which the extended data RAM, EPMP memory
space or program memory can be mapped.

What do they mean by that paragraph?

Is the EDS inside the Program Memory (as in the picture below)? If so how come it have Extended Data RAM and EPMP, when they are 16 bit addressable, and Program Memory Space is 24 bit addressable?

enter image description here

Kindly help me on this question.

Best Answer

The passage you quote of course assumes you have already read the general architecture document. You need to go read that to understand data space addressing in general.

Briefly, the original architecture only envisioned 32 kB of RAM. The high bit of the 16-bit address was originally used to select the PSV (program space visibility) window. Since program memory can be much larger than this PSV window in data memory, a separate register (PSVPAG if I remember right) is used to select where in program memory the start of the PSV window is mapped to.

Extended data memory uses a similar mechanism. There is a additional register (don't remember its name right now) that specifies what part of extended memory is mapped to the start of a special extended data space window in the data address space.