The PIC32MZ family of microcontrollers provides 4 GB of unified, virtual memory address space. There are several features of this memory system that are distinct, as compared to other PIC® Microcontrollers (MCUs):
- Unified Address Space: Instructions and data share the same memory space
- C-Friendly - no need for special rom or psv pointer declarations.
Although the address space is unified, PIC32MZ MCUs contain multiple bus interfaces to allow concurrent instruction and data access, thus, implementing a Harvard style hardware bus architecture, similar to existing 8-/16-bit PIC® MCUs.
- Virtual Memory Addressing
All MIPS®-based CPUs implement 2 address spaces: a virtual address space, consisting of all the addresses that can be used in a program and a physical address space, consisting of all the addresses that can be sent out on the address bus. Virtual addresses are mapped (translated) to physical addresses by the memory management unit (MMU).
- Multi-Layer System Bus
To Summarize: Addresses in the PIC32MZ are:
- Issued as virtual addresses by the MIPS core, then
- Mapped into physical addresses by the MIPS memory-management-unit (MMU), then
- Mapped into a bus address via the multi-layer system bus, and finally
- Used to select the appropriate peripheral or location in RAM
Other key features of PIC32MZ memory organization include the following:
- 32-bit native data width
- MMU with fixed mapping allows for securely configurable memory and peripheral access control permissions
- Bus arbitration scheme is implemented using a least recently serviced (LRS) priority to provide a Quality of Service (QOS) for the CPU, general purpose DMA, and peripherals with dedicated DMA
- Dual Flash panels allow for live updates of program memory
- Separate dual boot Flash memory allows updates of boot code
- Dual RAM banks can be used to avoid bus arbitration when using DMA
- External serial and or parallel memory can be mapped into virtual memory space for data access or code execution using the Serial Quad Interface (SQI) or External Bus Interface (EBI)
- Cacheable and non-cacheable address regions
Please refer to Section 48. Memory Organization and Permissions (DS60001214) for detailed coverage on the memory organization and configuration.