CPU Architecture


The central processing unit (CPU), or simply the processor, executes program instruction code.

  • When a software program runs, it is assembled into instructions utilizing the fundamental instruction set of the CPU platform and loaded into system memory
  • The CPU then performs the following basic operations on each instruction:
    1. The control unit fetches the next instruction in sequence from system memory to the pipeline
    2. The control unit decodes each instruction in turn and either executes it itself or passes it to the arithmetic logic unit (ALU) or floating-point unit (FPU) for execution
    3. The result of the executed instruction is written back to a register, to cache, or to system memory
      • A register is a temporary storage area available to the different units within the CPU working at the same clock speed as the CPU
      • Cache is a small block of memory that works at the speed of the CPU or close to it, depending on the cache level.
        • enhances performance by storing instructions and data that the CPU is using regularly

x86 CPU Architecture

  • many different internal CPU architectures have been developed to optimize the process of fetch, decode, execute, and writeback, while retaining compatibility with the x86 -32 or IA-32 (Intel Architecture) instruction set
  • x86 instruction set defines a CPU as IBM PC compatible
  • x86 PC processors are designed and manufactured by Intel and Advanced Micro Devices (AMD)

x64 CPU Architecture

  • x86 is a 32-bit instruction set
    • 32-bit means that each instruction can be up to 32-bits wide
  • since the early 2000s most CPUs have been capable of running 64-bit code
  • The x86 instruction set has been extended for 64-bit operation as the x64 instruction set
    • developed initially by AMD as AMD64 or x86-64
    • Intel refers to it as EM64T or Intel 64
  • All firmware and software—operating system, device drivers, and applications—must be specifically designed and compiled to run as 64-bit software
  • No 32-bit CPU can run 64-bit software
  • a 64-bit CPU can run 32-bit software

ARM CPU Architecture

  • The principal alternative to the standard x86/x64 CPU architecture is one devised by Advanced RISC Machines (ARM)
  • Unlike AMD and Intel, ARM do not manufacture CPUs
    • they produce designs that hardware vendors customize and manufacture
  • ARM designs are used:
    • in the current generation of Apple hardware
    • in most Android smartphones and tablets (notably by the vendors Qualcomm, Nvidia, and Samsung)
    • in many Chromebooks
    • and in some Windows tablets and laptops
  • A typical ARM design implements a system-on-chip (SoC)
  • SoC means that all the controllers—video, sound, networking, and storage—are part of the CPU
  • ARM designs use fewer, less complex instructions than is typical of x86
  • These features allow much better power and thermal efficiency, meaning longer battery life and the use of passive (fanless) cooling

Info

  • An x86/x64 platform is complex instruction set computing (CISC)
    • meaning that it uses a larger number (say around 1,000) of relatively more complex instructions
    • A single complex instruction might generate multiple operations across the CPU’s registers and take multiple clock cycles to complete
  • Reduced ISC (RISC) uses a small number of simpler instructions (say 100)
    • means that tasks require the execution of more instructions than with CISC
    • But each takes precisely one clock cycle
    • RISC can make better use of the CPU registers and cache
      • Because there are fewer instructions overall
  • For an operating system and hardware drivers to run on an ARM-based device, they must be redesigned and compiled to use the ARM instruction set
  • converting existing x86/x64 software applications to run on a different instruction set is an onerous task
  • Another option is support for emulation
    • means that the ARM device runs a facsimile of an x86 or x64 environment
    • Windows 10 ARM-based devices use emulation to run x86 and x64 software apps
    • Emulation typically imposes a significant performance penalty