Top Banner
Replicated Block Cache ... block_id decoder N=2 n direct mapped cache FA i1 i2 i b word lines Final Collapse Fetch Buffer copy-2 copy-3 copy-4 b inst 16 copy-1 Block Cache Instructions from the fill unit (n-bit) What about fragmentation?
22

Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Replicated Block Cache

...block_id

deco

der

N=2n

direct mapped cache

FA i1 i2 ib

word lines

Final Collapse

Fetch Buffer

copy

-2

copy

-3

copy

-4b inst

16

cop

y-1

Block Cache

Instructions fromthe fill unit

(n-bit)

What about fragmentation?

Page 2: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Predict and Fetch Trace

Trace Table

Global History

Final Collapse

Fetch Buffer

16

Fetch Cycle

Predict Cycle

Block Cache

More efficient: redundancy is in the trace table and not the block cache

Page 3: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Next Trace Prediction

tag indextag

global history

block_ids

1 2 ... wv

=

Hit

...

b_id0 b_id1 b_id2 b_id3

w pred. block_ids

Trace Table

HashFunction

Next trace_id

to the block cache

predicted branch path

Page 4: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

The Block-Based Trace Cache

Fetch Buffer

trace_id

Completion

Final Collapse

Br.

block_ids

I-C

ache

pre-collapse

hist.

ExecutionCore

HistoryHash

FillUnit

RenameTable

TraceTable Block Cache

Page 5: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

1. Next trace prediction2. Trace cache fetch

ProposedTrace Cache

EnhancedInstruction Cache

Fetch

Completion

Execution Core

1. Multiple-branch prediction2. Instruction cache fetch3. Instruction alignment & collapsing

1. Multiple-branch predictor update

Execution Core

Wide-Fetch I-cache vs. T-cache

1. Trace construction and fill

Page 6: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Trace Cache Trade-offs

Fetch time complexity

Trace cache:

Enhanced instruction cache:

Pros Moves complexity to backendCons Inefficient instruction storage

Pros Efficient instruction storageCons Complexity during fetch time

Instruction storage redundancy

Page 7: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

As Machines Get Wider (… and Deeper)

Fetch Fetch

RenameDispatchExecuteRetire

Dis

patc

h

Exe

cute

Ret

ire1. Eliminate Stages2 Relocate work to the backend

Decode Decode

Renam

e

Page 8: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Flow Path Model of Superscalars

I-cache

FETCH

DECODE

COMMIT

D-cache

BranchPredictor Instruction

Buffer

StoreQueue

ReorderBuffer

Integer Floating-point Media Memory

Instruction

RegisterData

MemoryData

Flow

EXECUTE

(ROB)

Flow

Flow

Page 9: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

CPU-Memory Bottleneck

Performance of high speed computers is usually limited by memory performance, bandwidth & latency

Main memory access time Processor cycle time over 100 times difference!!

if m fraction of instructions are loads and stores then average ‘1+m’ references per instruction

suppose m=40%, IPC=4@1GHz 22.4 GByte/sec

CPU Memory

Page 10: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

How to Incorporate Faster Memory

SRAM access time << Main memory access time SRAM bandwidth >> Main memory bandwidth

SRAM is expensive

SRAM is smaller than main memory

Programs exhibit temporal locality frequently-used data can be held in the scratch pad the cost of the first and last memory access can be amortized

over multiple reuse

Programs must have a small working set (aka footprint)

CPU MainMemory(DRAM)RF

ScratchPad

(SRAM)

Page 11: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Caches: Automatic Management of Fast Storage

CPU cacheMain

Memory

CPU L2cache

MainMemory

L3cacheL1

16~32KB1~2 pclk latency

~256KB~10 pclk latency ~50 pclk latency

~4MB

Page 12: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Cache Memory Structures

index key idx key

tag data tag data

deco

der

deco

der

Indexed Memory

k-bit index2k blocks

Associative Memory(CAM)

no indexunlimited blocks

N-Way Set-Associative Memory

k-bit index2k • N blocks

Page 13: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Direct Mapped Caches

tag idx b.o.

=Tag

matchMultiplexor

deco

der

=Tag

Match

deco

der

tag index

block index

Page 14: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Each cache block or (cache line) has only one tag but can hold multiple “chunks” of data reduce tag storage overhead

In 32-bit addressing, an 1-MB direct-mapped cache has 12 bits of tags

4-byte cache block 256K blocks ~384KB of tag

128-byte cache block 8K blocks ~12KB of tag

the entire cache block is transferred to and from memory all at once

good for spatial locality since if you access address i, you will probably want i+1 as well (prefetching effect)

Block size = 2b; Direct Mapped Cache Size = 2B+b

Cache Block Size

tag block index block offsetLSBMSB

B-bits b-bits

Page 15: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Large Blocks and Subblocking

Large cache blocks can take a long time to refill refill cache line critical word first restart cache access before complete refill

Large cache blocks can waste bus bandwidth if block size is larger than spatial locality divide a block into subblocks associate separate valid bits for each subblock.

tagsubblockvsubblockv subblockv

Page 16: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

tag blk.offset

Fully Associative Cache

MultiplexorAssociative

Search

Tag

Page 17: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

tag index BO

N-Way Set Associative Cache

Multiplexor

Associative searchd

eco

der

Cache Size = N x 2B+b

Page 18: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

N-Way Set Associative Cache

tag idx b.o.

= Tag match

deco

der

= Tag match

Multiplexor

deco

der

a set a way (bank)

Cache Size = N x 2B+b

Page 19: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Pseudo Associative Cache

Simple direct-mapped cache structure, 1st look up is unchanged

If 1st lookup misses, start a 2nd lookup using a hashed index (e.g. flip msb)

If 2nd lookup hits, then swap the contents between the 1st and 2nd lookup locations

If 2nd lookup fails then go to the next hierarchy

A cache hit on the 2nd lookup is slower, but still much faster than a miss

1st lookup 2nd lookup Memory lookup

Page 20: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Victim Cache: a small cache to backup a direct-map cache

Lines evicted from the direct-mapped cache due to collision is stored into the victim cache

Avoids ping-ponging when the working set contains a few addresses that collides

tag

=

status data block tag

=

status data block

addressfromCPU

regular direct-map cache

small victim cache

Page 21: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Reducing the Miss Penalty

Giving priority to read-misses over writes a write can be completed by writing into a write buffer but a

read miss will stall the processor

let the read overtake the writes

Sub-block replacement: fetch only part of a block Early restart and critical word first Non-blocking caches to reduce stalls on cache misses

allowing new fetches to proceed out-of-order after a miss

Multilevel caches reduced latency on a primary miss

Inclusion Property

Page 22: Replicated Block Cache... block_id d e c o d e r N=2 n direct mapped cache FAi1i2i b word lines Final Collapse Fetch Buffer c o p y - 2 c o p y - 3 c o.

Principle Behind Hierarchical Storage

Each level memoizes values stored at lower levels Instead of paying the full latency for the “furthermost”

level of storage each time

Effective Access Ti = hi• ti + (1 - hi)•Ti+1

where hi is the ‘hit’ ratio, the probability of finding the desired data memoized at level i

ti is the raw access time of memory at level i

Given a program with good locality of reference

Sworking-set < si hi1 Titi

A balanced system achieves the best of both worlds the performance of higher-level storage the capacity of lower-level low-cost storage.