Lecture 2: Processor Design, Single-Processor Performance
G63.2011.002/G22.2945.001 · September 14, 2010
Intro Basics Assembly Memory Pipelines
Lecture 2: Processor Design, Single-Processor Performance - - PowerPoint PPT Presentation
Lecture 2: Processor Design, Single-Processor Performance G63.2011.002/G22.2945.001 September 14, 2010 Intro Basics Assembly Memory Pipelines Outline Intro The Basic Subsystems Machine Language The Memory Hierarchy Pipelines Intro
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Internal Bus Register File Flags Data ALU Address ALU Control Unit PC Memory Interface
Insn. fetch
Data Bus Address Bus
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
4: c7 45 f4 05 00 00 00 movl $0x5,−0xc(%rbp) b: c7 45 f8 11 00 00 00 movl $0x11,−0x8(%rbp) 12: 8b 45 f4 mov −0xc(%rbp),%eax 15: 0f af 45 f8 imul −0x8(%rbp),%eax 19: 89 45 fc mov %eax,−0x4(%rbp) 1c: 8b 45 fc mov −0x4(%rbp),%eax Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Main Memory Cache Memory
Index Data 0 xyz 1 pdq 2 abc 3 rgf Index Tag Data abc 2 xyz 1
Intro Basics Assembly Memory Pipelines
1e-006 1e-005 0.0001 0.001 0.01 0.1 Inf 1M 256K 64K 16K 4K 1K miss rate cache size Direct 2-way 4-way 8-way Full
Intro Basics Assembly Memory Pipelines
1e-006 1e-005 0.0001 0.001 0.01 0.1 Inf 1M 256K 64K 16K 4K 1K miss rate cache size Direct 2-way 4-way 8-way Full
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Waiting Instructions
Stage 1: Fetch Stage 2: Decode Stage 3: Execute Stage 4: Write-back
PIPELINE Completed Instructions 1 2 3 4 5 6 7 8 Clock Cycle 9
Intro Basics Assembly Memory Pipelines
Instruction Fetch 32 Byte Pre-Decode, Fetch Buffer 18 Entry Instruction Queue 7+ Entry µop Buffer Register Alias Table and Allocator 96 Entry Reorder Buffer (ROB) Retirement Register File (Program Visible State)
Micro- code Complex Decoder Simple Decoder Simple Decoder Simple Decoder
32 Entry Reservation Station
ALU ALU SSE Shuffle ALU SSE Shuffle MUL ALU Branch SSE ALU 128 Bit FMUL FDIV 128 Bit FADD Store Address Store Data Load Address
Memory Ordering Buffer (MOB) Memory Interface
Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Internal Results Bus Load Store 128 Bit 128 Bit 4 µops 4 µops 4 µops 4 µops 1 µop 1 µop 1 µop 128 Bit 6 Instructions 4 µops
Intro Basics Assembly Memory Pipelines
Instruction Fetch 32 Byte Pre-Decode, Fetch Buffer 18 Entry Instruction Queue 7+ Entry µop Buffer Register Alias Table and Allocator 96 Entry Reorder Buffer (ROB) Retirement Register File (Program Visible State)
Micro- code Complex Decoder Simple Decoder Simple Decoder Simple Decoder
32 Entry Reservation Station
ALU ALU SSE Shuffle ALU SSE Shuffle MUL ALU Branch SSE ALU 128 Bit FMUL FDIV 128 Bit FADD Store Address Store Data Load Address
Memory Ordering Buffer (MOB) Memory Interface
Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Internal Results Bus Load Store 128 Bit 128 Bit 4 µops 4 µops 4 µops 4 µops 1 µop 1 µop 1 µop 128 Bit 6 Instructions 4 µops
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Data Pool Instruction Pool
PU PU PU PU
SIMD
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines
Intro Basics Assembly Memory Pipelines