Skip to content

Commit

Permalink
Added note about duality of load/store and register/memory behavior o…
Browse files Browse the repository at this point in the history
…f X86
  • Loading branch information
pveentjer committed Apr 2, 2024
1 parent 0dc9d65 commit 48727ff
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions chapters/3-CPU-Microarchitecture/3-1 ISA.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ The instruction set is the vocabulary used by software to communicate with the h

Most modern architectures can be classified as general purpose register-based, load-store architectures where the operands are explicitly specified, and memory is accessed only using load and store instructions. In addition to providing the basic functions in the ISA such as load, store, control and scalar arithmetic operations using integers and floating-point, the widely deployed architectures continue to enhance their ISA to support new computing paradigms. These include enhanced vector processing instructions (e.g., Intel AVX2, AVX512, ARM SVE) and matrix/tensor instructions (Intel AMX). Software mapped to use these advanced instructions typically provide orders of magnitude improvement in performance.

The X86 ISA is a register memory architecture since arithmatic can be done directly on memory operands. But after conversion to micro-instructions (uops), the X86 microarchitecture is actually a load-store architecture.

Modern CPUs support 32-bit and 64-bit precision for arithmetic operations. With the fast-evolving field of machine learning and AI, the industry has a renewed interest in alternative numeric formats for variables to drive significant performance improvements. Research has shown that machine learning models perform just as good, using fewer bits to represent the variables, saving on both compute and memory bandwidth. As a result, several CPU franchises have recently added support for lower precision data types such as 8-bit integers (int8, e.g., Intel VNNI), 16-bit floating-point (fp16, bf16) in the ISA, in addition to the traditional 32-bit and 64-bit formats for arithmetic operations.

0 comments on commit 48727ff

Please sign in to comment.