Skip to content

CPU Architectures

有5种指令集最为常见,它们构成了处理器领域的5朵金花。

  1. x86——硕大的大象
  2. ARM——稳扎稳打的蚁群
  3. MIPS——优雅的孔雀
  4. Power——昔日的贵族
  5. C6000——偏安一隅的独立王国

This article is about the collection of datasheet/textbooks/references on the three major mainstream CPUs.

Arch#

Architecture = ISA(Instruction set architecture) + Microarchitecture.



cpu-architecture-layer

ARM Assembly Language: Fundamentals and Techniques, 2nd Edition - 17 ARM, Thumb and Thumb-2 Instructions

Keeping in mind that a processor's microarchitecture and a processor's instruction set are two different things. They often get developed at the same time, but it is possible for a given microarchitecture to be modified only slightly to support additional instructions, adding more control logic and a bit more datapath, adding registers, etc.


hierarchy_of_computing

ARM 64-Bit Assembly Language - CHAPTER 3 Load/store and branch instructions

The part of the computer architecture related to programming is referred to as the instruction set architecture (ISA). The ISA is a contract between the hardware and the software. It defines the set of instructions and the set of registers that the hardware must support. How the hardware actually implements the ISA is called the microarchitecture, and it is not defined by the ISA. Assembly programmers can write code that will work across a spectrum of different processor implementations. As long as the software and the hardware are both built around the same ISA, they will be compatible. The ISA is an effective interface between hardware-the data paths and processing elements–and software, because it creates an abstraction that allows each side to be imagined to function independently.

logic & datapath

Computer Organization and Design ARM Edition: The Hardware Software Interface | 4 The Processor

  • 4.2 Logic Design Conventions
  • 4.3 Building a Datapath

Intel#

Intel Architecture

IA-32 / x86
IA-64 / x86-64

datasheet#

Intel® 64 and IA-32 Architectures Software Developer Manuals

Intel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4

IA-64 Application Developer's Architecture Guide

textbooks#

  1. C语言标准与实现》,姚新颜,2004 - #1 基础知识
  2. 深入理解计算机系统》,Randal E. Bryant & David R. O'Hallaron, 2015, 3e - 第3章 程序的机器级表示
  3. 老码识途-从机器码到框架的系统观逆向修炼之路》,韩宏,2012 - 第1章 欲向码途问大道,锵锵bit是吾刀

x86 汇编语言:

  1. 汇编语言》,王爽,2019,4e
  2. Professional Assembly Language(IA32), Richard Blum, 2005
  3. Assembly Language For X86 Processors, KIP R. IRVINE, 2014, 7e
  4. Introduction to 64 Bit Assembly Programming for Linux and OS X, Ray Seyfarth, 2014, 3e
  5. Low-Level Programming: C, Assembly, and Program Execution on Intel® 64 Architecture, Igor Zhirkov, 2017
  6. Windows 64-bit Assembly Language Programming Quick Start: Intel X86-64, SSE, AVX, Robert Dunne, 2018
  7. Modern X86 Assembly Language Programming: Covers X86 64-bit, AVX, AVX2, and AVX-512, Daniel Kusswurm, 2023, 3e

references#

x86 and ia64 and x64

Guide to x86 Assembly

The x86 architecture is the weirdo: 1: 2, 3

The Intel 80386: part 1 ~ part 17

The x86-64 processor (aka amd64, x64): Whirlwind tour

ARM#

Acorn RISC Machine(1978) -> Advanced RISC Machine(1990).
Arm defines three architecture profiles: Application (A), Real-time (R), and Microcontroller (M).

ARM architecture family- Cores

docs#

Arm Developer - Documentation

Arm CPU Architecture – Arm®

Instruction Set Architecture:

Arm Architecture Profiles:

Learn the Architecture Guides – Arm®

A-Profile Architecture:

M-Profile Architecture:

textbooks#

  1. ARM Assembly Language: Fundamentals and Techniques, 2nd Edition - eBook@Amazon, pdf, William Hohl, Christopher Hinds, 2014
  2. Assembly Language Using the Raspberry Pi: A Hardware Software Bridge, Robert Dunne, 2017
  3. Modern Assembly Language Programming with the ARM Processor, Larry D Pyeatt, 2016

  4. Raspberry Pi Assembly Language Programming: ARM Processor Coding, Stephen Smith, 2019

  5. Modern Arm Assembly Language Programming: Covers Armv8-A 32-bit, 64-bit, and SIMD, Daniel Kusswurm, 2020

  6. 《ARM64体系结构编程与实践(异步图书出品)》,奔跑吧Linux社区,2022
  7. Arm Assembly Internals and Reverse Engineering, Maria Markstedter, 2023
  8. Computer Organization and Design ARM Edition: The Hardware Software Interface, David A. Patterson, John L. Hennessy, 2016 @ustc

references#

RISC-V vs ARM: A Comprehensive Comparison of Processor Architectures
A Comparative Study on the Performance of 64-bit ARM Processors

The Old New Thing:

EECS 373: Design of Microprocessor-Based Systems - ARM_Architecture_Overview.ppt

MIPS#

Microprocessor without Interlocked Pipeline Stages

MIPS
MIPS architecture processors

官网:MIPS Processor, RISC-V, Innovate Compute

datasheet#

amazonaws.com:

ustc.edu:

SYSTEM V APPLICATION BINARY INTERFACE MIPS RISC Processor Supplement - 3rd Edition

textbooks#

  1. See MIPS Run, Dominic Sweetman, 2006, 2e
  2. Computer Organization and Design RISC-V Edition: The Hardware Software Interface, David A. Patterson & John L. Hennessy, 2017 @ustc

references#

assembly - where can I find a description of all MIPS instructions

stanford - MIPS
MIPS architecture overview
Introduction to the MIPS Processor
Introduction to the MIPS Architecture and Assembly, 2021

MIPS Assembly Language Programming, 2002
Programmed Introduction to MIPS Assembly Language, 2015
COE 301 Lab - Computer Organization - Introduction_MIPS_Assembly
MIPS Assembly Language (CS 241 Dialect), 2022

Harvard CS 161:

nju-swang: Lecture 24: Instruction Pipeline(指令流水线)

The Old New Thing: The MIPS R4000 - part 1 ~ part 15

refs#

Computer Architecture Lecture 3: ISA Tradeoffs

RISC-V Architecture: A Comprehensive Guide to the Open-Source ISA

《ARM 与 x86》 - 作者:王齐
《大话处理器》 - 万木杨 著

CPU体系架构-ARM/MIPS/X86

Comments