ECM 1413 Computer Architecture Flashcards
Main components of a computer
1 the central processing unit
2 the memory
3 the input/output devices
Positional Numeral systems
The contribution of a digit to the value of a number is the value of the digit multiplied by a factor determined by the position of the digit
Two common ISAs used by cpus
ARM
x86
Instruction set architecture (ISA)
Part of the abstract model of a computer that defines how the CPU is controlled by the software. The ISA acts as an interface between the hardware and the software, specifying both what the processor is capable of doing as well as how it gets done.
In essence, what is a register?
Registers are small fast memory locations in the cpu
When executing a given process, that process’s registers are loaded into the cpu
Examples of registers for purposes (AX, BX are 16 bit registers, extended to RAX and RBX in x64 and x86 architectures)
Special-purpose registers
Base Pointer (BP)
Stack Pointer (SP)
Link Register (LR)
Program Counter (PC)
Current program status register/flags (CPSR)
Stack pointer
points to the top of the stack
Base pointer
points to the start (base) of the current frame
Link Register
stores the address where to return to when the current function call has completed
Program Counter
stores the address of the next instruction to be executed
The Arithmetic Logic Unit (ALU)
performs simple operations between two input registers (operands) and puts the result in an output register
The current program status register contains status and control bits indicating, for example, the output of the ALU and the mode of the CPU
Current program status (Flag) Register
contains status and mode bits
Assembly language summarised
Simple instructions
Difficult programming language
An assembly level instruction often references one or multiple registers
Hierarchy of memory
(Top = fastest, bottom = slowest)
Registers: Flip-flop 32/64 bit
Cache: Static RAM (Latch circuit) L1, L2, L3
Main memory: Dynamic RAM (capacitor & transistor)
Disks: HDDs and SSDs
Distinguishments between code and data
Code and data are kept separate by memory
Code is executed
Data is read and written