mainstream CPU architecture

Currently, the two dominant architectures are:

  1. x86-64 (also known as AMD64)
  1. ARM (including aarch64 or ARM64)

The terms AMD64, x86_64, and aarch64 refer to different CPU architectures, each with distinct characteristics and intended uses. Here's a breakdown of each:

AMD64 and x86_64

  1. Origin:

    • AMD64 (also known as x86-64) is an architecture developed by AMD. It was originally named "AMD64" because AMD was the first to introduce a 64-bit extension to the x86 architecture.
    • x86_64 is another name for the same architecture, used more generically to avoid emphasizing AMD over Intel, which also uses the architecture.
  2. Design:

    • This architecture is a 64-bit extension of the original 32-bit x86 architecture (also known as IA-32) that was developed by Intel. It supports 64-bit computing, which allows for more direct access to a greater amount of memory and enhanced performance for applications capable of utilizing 64-bit code.
  3. Compatibility:

    • AMD64/x86_64 processors are backward compatible with 32-bit x86 software. This compatibility has been key to the architecture's widespread adoption, as it allows users to continue using older applications.

aarch64

  1. Origin:

    • aarch64 is the 64-bit extension of the ARM architecture, often referred to as ARM64. ARM's architecture is fundamentally different from x86 and is developed by ARM Holdings.
  2. Design:

    • ARM architectures are designed for efficiency and low power consumption, making them ideal for mobile and embedded systems. The aarch64 architecture supports 64-bit processing, which enhances performance for high-demand applications and supports larger amounts of memory, beneficial in modern mobile devices and servers.
  3. Compatibility:

    • ARM processors are not natively compatible with x86/x86_64 software, requiring either recompilation of software or emulation to run software designed for x86/x86_64.

arm64e

The term arm64e refers to an enhanced version of the arm64 architecture, specifically implemented by Apple to support new security and performance features on its platforms. Here’s a detailed look at what arm64e entails:

  1. Origin

    • Developer: arm64e was developed by Apple as an evolution of the standard ARM64 (also known as ARMv8-A) architecture.

    • Purpose: The primary motivation behind arm64e was to increase the security of software running on Apple devices, especially to protect against exploits that manipulate code execution flow.

    • Introduction: Apple introduced arm64e with the release of the A12 Bionic chipset, which first appeared in the iPhone XS, XS Max, and XR in 2018.

  2. Design

    • Pointer Authentication: The standout feature of arm64e is Pointer Authentication, which adds a cryptographic signature to pointers, verifying their integrity before use. This mechanism significantly reduces the risk of common security threats such as return-oriented programming (ROP) and jump-oriented programming (JOP) attacks.

    • Architecture Improvements: While maintaining a strong backward compatibility with ARMv8-A, arm64e incorporates changes at the instruction set level to support the generation and verification of pointer signatures.

    • Security Focus: The enhancements in arm64e are geared towards hardening Apple devices against exploits by making unauthorized code execution more challenging and thereby bolstering overall system security.

  3. Compatibility

    • Backward Compatibility: arm64e is designed to be backward compatible with the arm64 architecture. Applications compiled for arm64 can run on systems supporting arm64e without modifications, although they won't benefit from the new security features unless recompiled with arm64e support.

    • Development Environment: Developers aiming to utilize arm64e features need to use Apple's Xcode and compile their applications specifically for arm64e. This ensures that the new security enhancements are properly implemented in their applications.

    • Device Support: arm64e is supported on Apple devices with the A12 chipset and later. This includes not only iPhones but also iPads and potentially other future Apple devices as the company continues to deploy this architecture in its new hardware.

Footnotes

  1. Apple silicon: Comparison of A series processors

  2. Application ARM-based chips