1 / 20

October 22 nd , 2003 Prof. John Kubiatowicz cs.berkeley/~kubitron/courses/cs252-F03

CS252 Graduate Computer Architecture Lecture 15 Prediction (Finished) Caches I: 3 Cs and 7 ways to reduce misses. October 22 nd , 2003 Prof. John Kubiatowicz http://www.cs.berkeley.edu/~kubitron/courses/cs252-F03. GBHR. PABHR. PAPHT. PABHR. GPHT. GPHT.

paco
Download Presentation

October 22 nd , 2003 Prof. John Kubiatowicz cs.berkeley/~kubitron/courses/cs252-F03

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS252Graduate Computer ArchitectureLecture 15Prediction (Finished)Caches I: 3 Cs and 7 ways to reduce misses October 22nd, 2003 Prof. John Kubiatowicz http://www.cs.berkeley.edu/~kubitron/courses/cs252-F03

  2. GBHR PABHR PAPHT PABHR GPHT GPHT Review: Yeh and Patt classification • GAg: Global History Register, Global History Table • PAg: Per-Address History Register, Global History Table • PAp: Per-Address History Register, Per-Address History Table PAg PAp GAg

  3. GBHR PAPHT Review: Other Global Variants:Try to Avoid Aliasing • GAs: Global History Register, Per-Address (Set Associative) History Table • Gshare: Global History Register, Global History Table with Simple attempt at anti-aliasing  GBHR (n) Address (n) GPHT GAs GShare

  4. Direction Predictors  History (n) n bits Address (n) s bits Bias: True Bias: False Choice Predictor Result An anti-aliasing predictor: Bi-Mode[Chih-Chieh Lee, I-Cheng K. Chen, and Trevor N. Mudge] • Two separate Gshare predictors+Choser • One for each bias • Only one used/updated! • Sort branches by bias • Meta predictor chooses • Contructive aliasing helps rather than hinders

  5. Review: What are Important Metrics? • Clearly, Hit Rate matters • Even 1% can be important when above 90% hit rate • Speed: Does this affect cycle time? • Space: Clearly Total Space matters! • Papers which do not try to normalize across different options are playing fast and lose with data • Try to get best performance for the cost • How many different predictors are there? • MANY, MANY, MANY!

  6. An alternative: Genetic Programming for Design • Genetic programming has two key aspects: • An Encoding of the design space. • This is a symbolic representation of the result space (genome). • Much of the domain-specific knowledge and “art” involved here. • A Reproduction strategy • Includes a method for generating offspring from parentsMutation: Changing random portions of an individualCrossover: Merging aspects of two individuals • Includes a method for evaluating the effectiveness (“fitness”) of individual solutions. • Generation of new branch predictors via genetic programming: • Everything derived from a “basic” predictor (table) + simple operators. • Expressions arranged in a tree • Mutation: random modification of node/replacement of subtree • Crossover: swapping the subtrees of two parents. • Paper by Joel Emer and Nikolas Gloy, "A Language for Describing Predictors and its Application to Automatic Synthesis"

  7. Review: Memory Disambiguation • Memory disambiguation buffer contains set of active stores and loads in program order. • Loads and stores are entered at issue time • May not have addresses yet • Optimistic dependence speculation: assume that loads and stores don’t depend on each other • Need disambiguation buffer to catch errors.All checks occur at address resolution time: • When store address is ready, check for loads that are (1) later in time and (2) have same address. • These have been incorrectly speculated: flush and restart • When load address is ready, check for stores that are (1) earlier in time and (2) have same addressif (match) then if (store value ready) then return value else return pointer to reservation stationelse optimistically start load access

  8. Store Inum Review: STORE sets • Naïve speculation can cause problems for certain load-store pairs. • “Counter-Speculation”:For each load, keep track of set of stores that have forwarded information in past. • If (prior store in store-set has unresolved address) then wait for store address to be completed else if (match) then if (store value ready) then return value else return pointer to reservation stationelse optimistically start load access Store Set ID Table (SSIT) Last Fetched Store Table (LFST) Index Load/Store PC SSID

  9. Review: Who Cares About the Memory Hierarchy? µProc 60%/yr. 1000 • Processor Only Thus Far in Course: • CPU cost/performance, ISA, Pipelined Execution CPU-DRAM Gap • 1980: no cache in µproc; 1995 2-level cache on chip(1989 first Intel µproc with a cache on chip) CPU “Moore’s Law” 100 Processor-Memory Performance Gap:(grows 50% / year) Performance 10 “Less’ Law?” DRAM 7%/yr. DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000

  10. Generations of Microprocessors • Time of a full cache miss in instructions executed: 1st Alpha: 340 ns/5.0 ns =  68 clks x 2 or 136 2nd Alpha: 266 ns/3.3 ns =  80 clks x 4 or 320 3rd Alpha: 180 ns/1.7 ns =108 clks x 6 or 648 • Why not recompute the value rather than taking the time to fetch it from memory?

  11. Processor-Memory Performance Gap “Tax” Processor % Area %Transistors (­cost) (­power) • Alpha 21164 37% 77% • StrongArm SA110 61% 94% • Pentium Pro 64% 88% • 2 dies per package: Proc/I$/D$ + L2$ • Caches have no inherent value, only try to close performance gap

  12. What is a cache? • Small, fast storage used to improve average access time to slow memory. • Exploits spacial and temporal locality • In computer architecture, almost everything is a cache! • Registers a cache on variables • First-level cache a cache on second-level cache • Second-level cache a cache on memory • Memory a cache on disk (virtual memory) • TLB a cache on page table • Branch-prediction a cache on prediction information? Proc/Regs L1-Cache Bigger Faster L2-Cache Memory Disk, Tape, etc.

  13. Example: 1 KB Direct Mapped Cache Block address • For a 2 ** N byte cache: • The uppermost (32 - N) bits are always the Cache Tag • The lowest M bits are the Byte Select (Block Size = 2 ** M) 31 9 4 0 Cache Tag Example: 0x50 Cache Index Byte Select Ex: 0x01 Ex: 0x00 Stored as part of the cache “state” Valid Bit Cache Tag Cache Data : Byte 31 Byte 1 Byte 0 0 : 0x50 Byte 63 Byte 33 Byte 32 1 2 3 : : : : Byte 1023 Byte 992 31

  14. Cache Index Valid Cache Tag Cache Data Cache Data Cache Tag Valid Cache Block 0 Cache Block 0 : : : : : : Adr Tag Compare Compare 1 0 Mux Sel1 Sel0 OR Cache Block Hit Set Associative Cache • N-way set associative: N entries for each Cache Index • N direct mapped caches operates in parallel • Example: Two-way set associative cache • Cache Index selects a “set” from the cache • The two tags in the set are compared to the input in parallel • Data is selected based on the tag result

  15. Cache Index Valid Cache Tag Cache Data Cache Data Cache Tag Valid Cache Block 0 Cache Block 0 : : : : : : Adr Tag Compare Compare 1 0 Mux Sel1 Sel0 OR Cache Block Hit Disadvantage of Set Associative Cache • N-way Set Associative Cache versus Direct Mapped Cache: • N comparators vs. 1 • Extra MUX delay for the data • Data comes AFTER Hit/Miss decision and set selection • In a direct mapped cache, Cache Block is available BEFORE Hit/Miss: • Possible to assume a hit and continue. Recover later if miss.

  16. What happens on a Cache miss? • For in-order pipeline, 2 options: • Freeze pipeline in Mem stage (popular early on: Sparc, R4000) IF ID EX Mem stall stall stall … stall Mem Wr IF ID EX stall stall stall … stall stall Ex Wr • Use Full/Empty bits in registers + MSHR queue • MSHR = “Miss Status/Handler Registers” (Kroft)Each entry in this queue keeps track of status of outstanding memory requests to one complete memory line. • Per cache-line: keep info about memory address. • For each word: register (if any) that is waiting for result. • Used to “merge” multiple requests to one memory line • New load creates MSHR entry and sets destination register to “Empty”. Load is “released” from pipeline. • Attempt to use register before result returns causes instruction to block in decode stage. • Limited “out-of-order” execution with respect to loads. Popular with in-order superscalar architectures. • Out-of-order pipelines already have this functionality built in… (load queues, etc).

  17. Review: Cache Performance CPU time = (CPU execution clock cycles + Memory stall clock cycles) x clock cycle time Memory stall clock cycles = (Reads x Read miss rate x Read miss penalty + Writes x Write miss rate x Write miss penalty) Memory stall clock cycles = Memory accesses x Miss rate x Miss penalty Average Memory Access time (AMAT) = Hit Time + (Miss Rate x Miss Penalty) Note: memory hit time is included in execution cycles. Memory Time from view of Memory Stage

  18. Impact on Performance • Suppose a processor executes at • Clock Rate = 200 MHz (5 ns per cycle), Ideal (no misses) CPI = 1.1 • 50% arith/logic, 30% ld/st, 20% control • Suppose that 10% of memory operations get 50 cycle miss penalty • Suppose that 1% of instructions get same miss penalty • CPI = ideal CPI + average stalls per instruction 1.1(cycles/ins) + [ 0.30 (DataMops/ins) x 0.10 (miss/DataMop) x 50 (cycle/miss)] + [ 1 (InstMop/ins) x 0.01 (miss/InstMop) x 50 (cycle/miss)] = (1.1 + 1.5 + .5) cycle/ins = 3.1 • 58% of the time the proc is stalled waiting for memory! • AMAT=(1/1.3)x[1+0.01x50]+(0.3/1.3)x[1+0.1x50]=2.54

  19. Review: Four Questions for Memory Hierarchy Designers • Q1: Where can a block be placed in the upper level? (Block placement) • Fully Associative, Set Associative, Direct Mapped • Q2: How is a block found if it is in the upper level? (Block identification) • Tag/Block • Q3: Which block should be replaced on a miss? (Block replacement) • Random, LRU • Q4: What happens on a write? (Write strategy) • Write Back or Write Through (with Write Buffer)

  20. CS 252 Administrivia • Don’t have test graded (Really sorry!) • May be a bit before this happens. • Homework: send it to me (kubitron@cs.berkeley.edu) • By (say) midnight tonight • Proposals: • Send me your tentative proposals via email today • Use my normal address kubitron@cs.berkeley.edu • I will try to comment on them very soon • Final version will be due next Wednesday

More Related