Theory Part 2 - Hardware

Dave White

Designing a computer: cpu

Designing a computer: core

Designing a computer: registers

Designing a computer: cache

Designing a computer: thread

Designing a computer: instructions

Designing a computer: clock

Synchronization

Designing a computer: faster?

More Threads

Designing a computer: faster?!

Faster Clock

Designing a computer: faster?!!

Better chips/more transistors

More address space?

More registers/cache?
Sure, but …

Memory

Memory hierarchy

CPU
Registers
Cache (L1-L3 or L4)
RAM
text space - code aka instructions
Stack - small data
Heap - bigger data
Hard-drive
Swap - memory overflow
Storage - files*

Space-Speed trade-off
CPU=fastest, smallest
Hard-Drive=slowest, largest

Memory

Memory Allocation