Search code examples
armarmv6

ARM Architecture and Family


I've started working on different ARM-based targets but there is still something I'm missing about ARM cores, architectures, instruction sets and core families. Having a look at the wikipedia page here: http://en.wikipedia.org/wiki/ARM_architecture#ARM_cores I see that there are multiple ARM architectures and multiple families for each architecture. For instance for ARMv6 architecture there are the ARM11 and the ARM-Cortex-M families. The same happens for ARMv7 and others. What is the difference between ARM11 and ARM Cortex-M given that the architecture is the same? Do the ARM11 and ARM Cortex-M both support the same instruction set given that they implement the same architecture?


Solution

  • The architectures are the specifications, i.e. the set of registers, instructions and operation modes that should be supported by implementations of the architecture.

    A family is a specific detailed implementation of an architecture, i.e. the actual hardware details needed to create an ARM core. Finally a core is a specific implementation of an architecture, i.e. the actual blue-print of the transistors and other discrete parts needed to create a ARM CPU.

    The ARM architectures are modular so families may implement only some features of the architecture and not others. Families may also have extensions not in the architecture and to make things even more interesting cores in the same family will usually differ in the features they support.

    The reason ARM cores are called cores and not chips is that the specific chips may contain one or more cores (assuming the cores support it) or may have cores integrated with other components (I/O controllers, Memory interfaces, etc.) in the same chip.

    ARM11 and ARM Cortex-M are different families implementing features in the ARMv6 architecture with different markets in mind: ARM-11 smartphones and tablets and Cortex-M micro-controllers AFAIK.