|ARM Technical Support Knowledge Articles|
Both of these cores are based around an ARM9E class of processor, supporting the ARM v5 32-bit instruction set with DSP extensions, and the Thumb 16-bit instruction set. The ARM946E-S uses a plain ARM9E-S core, while the ARM926EJ-S uses an ARM9EJ-S core, where the 'J' represents additional hardware support for Java bytecode execution.
The ARM926EJ-S is an applications processor, meaning that it has an MMU to support virtual addressing and memory protection. It has mandatory caches on both the Instruction side and the Data side; the cache sizes can be powers of 2 between 4kB and 128kB. It also offers Tightly Coupled Memories in the Level 1 memory system, with sizes of 0kB or 4kB to 1MB in powers of 2. It has dual AHB interfaces to its Level 2 memory system.
The ARM946E-S is an embedded processor, not supporting virtual memory, and has a simpler MPU for memory protection only. Its caches and TCMs can be 0kB or 4kB to 1MB in powers of 2. It has a single AHB bus interface to the level 2 memory system.
For comparative size and performance figures, you can extrapolate from the product description pages on our website (though obviously these are heavily influenced by your implementation choices, especially memory configuration, and your target library technology):
For detailed descriptions of each core, please see the Technical Reference Manuals:
Code development tools (eg. ARM's RVCT tools) should be identical for each of these core.
If you are looking to choose a processor for a new project, the major distinction between these cores would be the MMU versus MPU. You might also like to consider whether a member of the newer Cortex family such as Cortex-R4 would address your requirement as well or better than these ARM9 options.
Did you find this article helpful? Yes No
How can we improve this article?