Andy Pack
5f04cacd81
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
2.1 KiB
2.1 KiB
tags | ||
---|---|---|
|
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
- Improves
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
- A
Instructions
- Params
- Registers
- Functions
- Arithmetic
- Addressing
- Control
- Functions
- Memory locations
- With offsets
- Addressing modes
- Interpret operands
- Registers
- 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
- Branch
- 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
- Data handling and memory