stem/CS/ISA.md
Andy Pack 5f04cacd81 vault backup: 2023-12-27 09:30:39
Affected files:
.obsidian/workspace.json
Projects/Dev Options.md
Projects/Mixonomer.md
Projects/NoteCrawler.md
Projects/Selector.md
Projects/To Do App.md
STEM/CS/ABI.md
STEM/CS/Calling Conventions.md
STEM/CS/Code Types.md
STEM/CS/Compilers.md
STEM/CS/ISA.md
STEM/CS/Language Binding.md
STEM/CS/Languages/Assembly.md
STEM/CS/Languages/C++.md
STEM/CS/Languages/Javascript.md
STEM/CS/Languages/Python.md
STEM/CS/Languages/Rust.md
STEM/CS/Languages/dotNet.md
STEM/IOT/OS/Composition.md
2023-12-27 09:30:39 +00:00

2.1 KiB

tags
low-level
dev

Instruction Set Architecture

Not Microarchitecture

  • Physical implementation of ISA

  • Abstract model of a computer

  • CPU is an implementation

  • Defines

    • Data types
    • Registers
    • Hardware support for main memory
    • Features
      • Memory consistency
      • Addressing modes
      • Virtual memory
  • Specifies behaviour of machine code

    • Binary compatibility
    • Allows many implementations

Complexity

Complex

  • CISC
    • Complex instruction set computer

Reduced

  • RISC
    • Reduced instruction set computer
  • Simplifies processor
    • Implementing only frequent instructions
    • Less frequent as subroutines
  • Typically requires less transistors than CISC
    • Improves
      • Cost
      • Power consumption
      • Heat dissipation

Very Long Instruction Word

VLIW

Long Instruction Word

LIW

Explicitly Parallel instruction Computing

EPIC

ARM

Acorn RISC Machine Advanced RISC Machines

  • RISC architectures
  • System-on-Chips, System-on-Modules
    • SOC, SOM
  • iPhones A Series
  • 32-bit Profiles
    • A
      • Application
      • Cortex-A
    • R
      • Real-time
      • Cortex-R
    • M
      • Micro-controller
      • Cortex-M

Instructions

  • Params
    • Registers
      • Functions
        • Arithmetic
        • Addressing
        • Control
    • Memory locations
      • With offsets
    • Addressing modes
      • Interpret operands
  • Types
    • Data handling and memory
      • Set register
      • Copy data from memory to register or reverse
        • Load and store operations
      • Read and write from hardware
    • Arithmetic and logic
      • +, -, x, ÷
      • Bitwise
      • Compare
      • Floating point instructions
    • Control flow
      • Branch
        • Another location in program to execute
      • Conditionally branch
      • Indirectly branch
        • Branch with argument memory address
      • Call
        • Save the location to return to
    • Coprocessor
      • Load/store to and from coprocessor
      • Perform coops
    • Complex
      • Multiple things at once
      • Move multiple values between stack and memory
      • Move large blocks of memory
      • Complicated integer and floating point maths
        • Square root, log, sin, cos
      • ALU operations from memory not register