Skip to content

akhin/microarchitecture-cheatsheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Modern CPUs are very complex beasts and there are so much information about them across different departments , therefore they can be overwhelming. Microarchitecture cheat sheet aims to provide an organised collection of overviews about X86 CPUs that developers shall have on their mind when thinking about performance :

Last update date : 11 Jan, 2024

It divides that huge subject into following realms :

  • Pipeline realm
  • Arithmetic realm
  • Branch prediction realm
  • Load store realm
  • Cache memory realm
  • System memory realm
  • Virtual memory realm
  • Multicore realm
  • MultiCPU realm
  • "Across realms" realm

Intel® 64 and IA-32 Architectures Software Developer’s Manual https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html

Intel® 64 and IA-32 Architectures Optimization Reference Manual https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html

AMD64 Architecture Programmer’s Manual: Volumes 1-5 https://www.amd.com/en/support/tech-docs/amd64-architecture-programmers-manual-volumes-1-5

Software Optimization Guide for AMD Family 19h Processors ( Zen3 ) https://www.amd.com/system/files/TechDocs/56665.zip

The microarchitecture of Intel, AMD, and VIA CPUs , by Agner Fog https://www.agner.org/optimize/microarchitecture.pdf

Instruction tables , by Agner Fog https://www.agner.org/optimize/instruction_tables.pdf

What every programmer should know about memory, by Ulrich Drepper https://akkadia.org/drepper/cpumemory.pdf

Wikichip https://en.wikichip.org/wiki/WikiChip

As for info and visuals coming from other sources, I provided references with links.

Everything else is completely free.

I don't claim that every information is exact or expressed in the best way. Some of them are topics that I had the chance to get my hands on during projects, but some other are from personal researches out of curiosity.

In case of an issue or suggestion, please feel free to raise an issue.

My email is akin_ocal@hotmail.com .