1 / 11

Is SC + ILP = RC?

Is SC + ILP = RC?. Quinn Gaumer Duke University. Outline. Motivation Previous SC optimizations SC++ Implementation SC++ Analysis. SC vs. RC. SC Easy Programming Model (No different than uniprocessor) Slower programs. RC Faster programs(20%) Software Assistance.

crwys
Download Presentation

Is SC + ILP = RC?

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. Is SC + ILP = RC? Quinn Gaumer Duke University

  2. Outline • Motivation • Previous SC optimizations • SC++ Implementation • SC++ Analysis

  3. SC vs. RC • SC • Easy Programming Model (No different than uniprocessor) • Slower programs • RC • Faster programs(20%) • Software Assistance

  4. Previous SC optimizations • Load forwarding • Loads can return values even if other mem ops are pending • When is this good? • As long as its not exposed to other processors • When is wrong? • Invalidations received before the speculative load is retired. • Problem: ROB can still fill up due to store at head…

  5. Previous SC optimizations • Store Buffering • Waiting Stores moved to LSQ • Problem: reorder buffer still must stop retiring loads if stores are pending.

  6. SC++ • Store-Store bypassing • Speculative State for Memory • Speculation Support • Rollbacks infrequent

  7. Store-Store Bypassing • Speculative History Queue • Holds Stores and completed instructions • Also holds information needed to rollback operations • SHiQ Store OP Store Head Head

  8. Memory Order Violations • When is SC Violated? • Speculative load or store is invalidated, read, or read. • How is Violation Detected? • Block Lookup Table(BLT) contains addresses of speculative memory ops • Invalidations, Replacements, Downgrades cause search of BLT for address

  9. Rollback • Processor and Memory state must be rolled back to first memory operation that accessed offending block • Guarantee Forward Progress? • Speculation prohibited until all pending stores performed. • Rollback can be slow • Requires flushing pipeline, move data between local caches. • Optimizations • Rollback multiple instructions/cycle • Sending responses to invalidations immediately

  10. Qualitative Analysis • Must hold state to allow roll back of both processor and memory • Detect rollbacks quickly • Rollbacks are extremely slow…Does it matter? • Data Races • False Sharing • Cache Conflicts

  11. Results • SC++ theoretically performs as well as RC • SC++ can be physically limited in several ways • Network Latency • SHiQ Size • Cache Size • Why does each affect the speed of SC++(relative to SC or RC)

More Related