The Cortex-M35P from ARM is a new microcontroller targeted for advanced audio applications. It features a dual Cortex-M33 core design that delivers higher performance compared to previous Cortex-M processors. A key specification of the Cortex-M35P is its memory configuration, which determines how much data and instructions it can process at one time.
The Cortex-M35P contains 512KB of embedded flash memory on-chip. This non-volatile memory is used to store code and data that needs to persist even when power is removed from the microcontroller. Having 512KB of flash allows reasonably complex applications to be stored entirely within the Cortex-M35P without requiring external flash memory.
In addition to flash, the Cortex-M35P contains 320KB of SRAM on-chip. This provides fast access memory for both data and instructions. The relatively large SRAM size enables more data processing and temporary storage without slow access to external memory chips. The on-chip SRAM is crucial for the high performance audio applications targeted by the Cortex-M35P.
External Memory Interface
While having significant memory on-chip, the Cortex-M35P also includes an external memory interface to allow additional memory to be added. This interface has a 32-bit wide data bus, meaning it can read and write data 32 bits at a time to maximize throughput.
The external memory interface supports various types of RAM including SDRAM, LPDDR2, and LPDDR4. It can support up to 1GB of external RAM in total. This allows large data sets to be stored and accessed that don’t fit in the 320KB of on-chip SRAM. The flexible interface enables system designers to choose appropriate low-power external memory chips.
Memory Protection Unit
The Cortex-M35P contains an integrated memory protection unit (MPU) to enforce security on memory access. This allows creating isolated “regions” of memory that application code or peripherals can access. Attempted access outside the defined region causes the MPU to throw an exception. This prevents bugs or malware from unintentionally overwriting parts of memory.
The MPU has 8 configurable regions that control access permissions for memory. Bits of memory can be marked as execute-never to prevent executing malicious data. The MPU plays a key role in building secure and robust applications on the Cortex-M35P.
A key factor that influences performance is the memory bandwidth – how quickly different parts of memory can be accessed. The Cortex-M35P provides high bandwidth via its TCM interface that makes the on-chip SRAM accessible at the processor speed.
The external memory interface is 32-bits wide and can be clocked up to 150MHz, providing bandwidth up to 600MB/s. Caching and prefetching techniques maximize throughput to/from external memory.
Between the fast TCM interface, caching, wide external bus, and high clock speeds, the Cortex-M35P achieves excellent memory bandwidth for its class. This enables advanced audio processing previously not possible on microcontrollers.
Memory Configuration Options
The Cortex-M35P allows various configuration options that affect the memory subsystem and performance:
- Code can be placed in either flash or SRAM memory regions.
- Multiple SRAM regions allow separating data memory from instruction memory.
- The MPU can partition memory as needed for security.
- Memory architecture can be Harvard (separate instruction and data buses) or Von Neumann (combined).
- Caches can be enabled to improve performance.
- Bus matrix allows flexible access between processors, memory, and peripherals.
This extensive configurability allows tuning the memory architecture of the Cortex-M35P for particular application requirements. The options enable performance optimizations on top of the generous memory resources.
Use Cases and Applications
Some examples of how the Cortex-M35P’s memory capacity can facilitate new use cases:
- On-chip memory enables voice recognition without external DRAM chips.
- Large audio buffers for multi-channel audio processing.
- Storing multiple high bitrate audio streams.
- Buffering audio data for low-latency responses.
- Machine learning with datasets entirely in on-chip memory.
The memory in the Cortex-M35P allows high-quality audio applications previously requiring external DRAM chips. Use cases include smart speakers, AR/VR headsets, hearables, wireless earbuds, and smart home devices. The efficiency gains also facilitate audio integration into battery-powered wearables and mobile devices.
Comparison to Other ARM Cortex Processors
Compared to other ARM Cortex-M series processors, the Cortex-M35P stands out for its memory capacity:
- 512KB flash and 320KB SRAM is much greater than the 64-128KB in other Cortex-M3/M4 chips.
- External memory support is more advanced than Cortex-M0/M0+ entry-level chips.
- Memory bandwidth higher than other Cortex-M7 and M33 processors.
The Cortex-M35P sets a new high mark for on-chip memory size in an ARM embedded microcontroller. This positions it well for advanced audio and ML workloads compared to prior Cortex-M series chips.
In summary, the Cortex-M35P contains 512KB of embedded flash and 320KB of SRAM on-chip, providing significant memory capacity. It also supports external RAM up to 1GB in size. Features like the MPU and configurable architecture provide security and optimization. High memory bandwidth delivered through multiple buses enables real-time audio processing. With this combination of abundant memory resources and intelligent memory management, the Cortex-M35P microcontroller unlocks new potential for embedded audio applications.