Computer Architecture: Lecture 1: Introduction and Basics
Computer Architecture: Lecture 1: Introduction and Basics
2
Answer: Masterpiece of A Famous
Architect
3
But First.
Find The Differences Of This and That
4
Find Differences Of This and
That
5
A Key Question
How Was Wright Able To Design Fallingwater?
Can have many guesses
(Ultra) hard work, perseverance, dedication (over decades)
Experience of decades
Creativity
Out-of-the-box thinking
Principled design
A good understanding of past designs
Good judgment and intuition
Strong combination of skills (math, architecture, art, )
6
A Quote from The Architect
Himself
architecture [] based upon principle, and not
upon precedent
7
A Principled Design
8
9
A Quote from The Architect
Himself
architecture [] based upon principle, and not
upon precedent
10
Role of The (Computer)
Architect
Look backward (to the past)
Understand tradeoffs and designs, upsides/downsides, past
workloads. Analyze and evaluate the past.
Look forward (to the future)
Be the dreamer and create new designs. Listen to dreamers.
Push the state of the art. Evaluate new design choices.
Look up (towards problems in the computing stack)
Understand important problems and their nature.
Develop architectures and ideas to solve important problems.
Look down (towards device/circuit technology)
Understand the capabilities of the underlying technology.
Predict and adapt to the future of technology (you are
designing for N years ahead). Enable the future technology.
11
Takeaways
Being an architect is not easy
You need to consider many things in designing a new
system + have good intuition/insight into ideas/tradeoffs
12
So, I Hope You Are Here for
This C as a model of computation
Programmers view of how
a computer system works
Architect/microarchitects view:
What How to design a computer that
happens in- meets system design goals.
between? Choices critically affect both
the SW programmer and
the HW designer
Problem
Algorithm
Program/Language
Runtime System
(VM, OS, MM)
ISA (Architecture)
Microarchitecture
Logic
Circuits
Electrons
14
The Power of Abstraction
Levels of transformation create abstractions
Abstraction: A higher level only needs to know about the
interface to the lower level, not how the lower level is
implemented
E.g., high-level language programmer does not really need to
know what the ISA is and how a computer executes
instructions
15
Crossing the Abstraction Layers
As long as everything goes well, not knowing what happens
in the underlying level (or above) is not a problem.
What if
The program you wrote is running slow?
The program you wrote does not run correctly?
The program you wrote consumes too much energy?
What if
The hardware you designed is too hard to program?
The hardware you designed is too slow because it does not provide the
right primitives to the software?
What if
You want to design a much more efficient and higher performance
system?
16
Crossing the Abstraction Layers
Two key goals of this course are
17
An Example: Multi-Core
Systems
Multi-Core
Chip
L2 CACHE 1
L2 CACHE 0
SHARED L3 CACHE
DRAM INTERFACE
CORE 0
DRAM BANKS
CORE 1
DRAM MEMORY
CONTROLLER
L2 CACHE 2
L2 CACHE 3
CORE 2 CORE 3
(Core 0) (Core 1)
Moscibroda and Mutlu, Memory performance attacks: Denial of memory se
in multi-core systems, USENIX Security 2007.
19
A Question or Two
Can you figure out why there is a disparity in
slowdowns if you do not know how the system
executes the programs?
20
Why the Disparity in
Slowdowns?
CORE
matlab1 gcc 2
CORE Multi-Core
Chip
L2 L2
CACHE CACHE
unfairness
INTERCONNECT
Shared DRAM
DRAM MEMORY CONTROLLER Memory System
21
DRAM Bank Operation
Access Address:
(Row 0, Column 0) Columns
(Row 0, Column 1)
(Row 0, Column 85)
Row decoder
(Row 1, Column 0)
Rows
Row address 0
1
Row 01
Row
Empty Row Buffer CONFLICT
HIT !
Column address 0
1
85 Column mux
Data
22
DRAM Controllers
A row-conflict memory access takes significantly
longer than a row-hit access
23
The Problem
Multiple applications share the DRAM controller
DRAM controllers designed to maximize DRAM data
throughput
24
A Memory Performance Hog
// initialize large arrays A, B // initialize large arrays A, B
STREAM RANDOM
- Sequential memory access - Random memory access
- Very high row buffer locality (96% hit rate) - Very low row buffer locality (3% hit rate)
- Memory intensive - Similarly memory intensive
25
What Does the Memory Hog
Do?
Row decoder
T0: Row 0
T0:
T1: Row 05
T1:
T0:Row
Row111
0
T1:
T0:Row
Row16
0
Memory Request Buffer Row
Row 00 Row Buffer
26
Now That We Know What Happens
Underneath
How would you solve the problem?
27
What Will You Learn
Computer Architecture: The science and art of
designing, selecting, and interconnecting hardware
components and designing the hardware/software
interface to create a computing system that meets
functional, performance, energy consumption, cost,
and other specific goals.
28