Computer Architecture 3

Computer Architecture 3

Introduction Principles Core Memory Processor Network Exascale Computer Architectures D. Pleiter Jülich Supercomputing Centre and University of Regensburg January 2016 1 / 179 Introduction Principles Core Memory Processor Network Exascale Overview Introduction Principles of Computer Architectures Processor Core Architecture Memory Architecture Processor Architectures Network Architecture Exascale Challenges 2 / 179 Introduction Principles Core Memory Processor Network Exascale Content Introduction Principles of Computer Architectures Processor Core Architecture Memory Architecture Processor Architectures Network Architecture Exascale Challenges 77 / 179 Introduction Principles Core Memory Processor Network Exascale Memory in Modern Node Architectures • Today’s compute nodes: different memory types and technologies Core #N−1 • Volatile memories L1−I L1−D • Main memory (DDR3 or DDR4) L2 • Caches (SRAM) • Accelerator memory L3 slice (GDDR5 or HBM) • Non-volatile memories • SSD (NAND flash) MC IO • Different capabilities • Bandwidth • Latency for single transfer • Access time DDR GPU • Cycle time SSD GDDR • Capacity /HBM 78 / 179 Introduction Principles Core Memory Processor Network Exascale Memory: DRAM • Data bit storage cell = 1 capacitor + 1 transistor • Capacitors discharge + periodic refresh needed • Refresh required in intervals of O(10) ms • Possibly significant performance impact • Memory access latencies become variable • Memory organisation • Memory arrays with separate row and column addresses + less address pins • Read operation: /ras /cas addr row col /we data data 79 / 179 Introduction Principles Core Memory Processor Network Exascale Memory: DRAM (2) • Technology improvements • Synchronization with system bus: Synchronous dynamic random-access memory (SDRAM) • Double Data Rate (DDR) • DRAM typically packaged on small boards: DIMM = Dual Inline Memory Modules • Typical DRAM channel width: 8 Byte • Performance range for selected set of data rates: DDR3 DDR4 Data rate [Mbps] 400 − 2333 1600 − 3200 GByte/sec/DIMM [GByte/s] 3:2 − 18:6 12:8 − 25:6 80 / 179 Introduction Principles Core Memory Processor Network Exascale DRAM Organisation Organisation of DRAM memory connected to processor • Multiple memory channels per processor CPU • Multiple memory ranks attached to single channel 64 rank ID • Chip-select signals to multiple channels enable rank 64 multiple ranks • 8 Multiple memory banks bank ID multiple banks • Memory cells arranged in 8 rows and columns row+col Physical address: ch ID rank ID bank ID row col 81 / 179 Introduction Principles Core Memory Processor Network Exascale DRAM Organisation (cont.) Typical design as of 2014: • 4 Gbit memory die with 8-bit memory cells • 8 banks • 64k rows • 1k columns • 8 memory dies per channel • Channel data bus with of 64 bit • 4 ranks per channel • 4 channels Total memory capacity: 64 GiByte 82 / 179 Introduction Principles Core Memory Processor Network Exascale Memory: SRAM • Data bit storage cell = (4 + 2) transistors • Comparison with DRAM DRAM SRAM Refresh required? yes no Speed slower faster Density higher lower • Typically used for on-chip memory 83 / 179 Introduction Principles Core Memory Processor Network Exascale Memory Access Locality • Empirical observation: Programs tend to reuse data and instructions they have used recently • Observation can be exploited to • Improve performance • Optimize use of more/less expensive memory • Types of localities • Temporal locality: Recently accessed items are likely to be accessed in the near future • Spatial locality: Items whose addresses are near one another tend to be referenced close together in time 84 / 179 Introduction Principles Core Memory Processor Network Exascale Memory Access Locality: Example 1 double a[N][N], b[N][N]; 2 3 for (i=0; i<N; i++) 4 for (j=1; j<N; j++) 5 a[i][j] = b[j −1][0] + b[j][0]; • Assume right-most index being fastest running index • Temporal locality: b[j][0] • Spatial locality: a[i][j] and a[i][j+1] (j + 1 < N) 85 / 179 Introduction Principles Core Memory Processor Network Exascale Memory Cache: Motivation • Observations • DRAM based memories are large but slow • In particular, fetching small amounts of data CPU is inefficient • SRAM based memories are small but fast Cache • Typical application exhibit significant data locality Memory • Exploit observations by introducing caches • Cache = Fast memory unit that allows to store data for quick access in near future • A cache is transparent for the application • Application programs do not require explicit load/store to/from cache • Alternative concept: software managed scratch-pad memory • Caches are typically hardware managed 86 / 179 Introduction Principles Core Memory Processor Network Exascale Memory/storage Hierarchy Computers provide multiple levels of volatile memory and non-volatile storage • Important because of Processor-memory performance gap • Close to processor: very fast memory, but less capacity Level Access time Capacity Registers O(0.1) ns O(1) kByte L1 cache O(1) ns O(10-100) kByte L2 cache O(10) ns O(100) kByte L3 cache O(10) ns O(1-10) MByte Memory O(100) ns O(1-100) GByte Disk O(10) ms O(100-:::) GByte 87 / 179 Introduction Principles Core Memory Processor Network Exascale Memory: Cache Cache miss = Word not found in cache • Word has to be fetched from next memory level • Typically a full cache line (=multiple words) is fetched Cache organisation: Set associative cache • Match line onto a set and then place line within the set • Choice of set address: (address) mod (number of sets) • Types: • Direct-mapped cache: 1 cache line per set • Each line has only one place it can appear in the cache • Fully associative cache: 1 set only • A line can be placed anywhere in the cache • n-way set associative cache: n cache lines per set • A line can be placed in a restricted set of places (1 out of n different places) in the cache 88 / 179 Introduction Principles Core Memory Processor Network Exascale Memory: Cache (2) Direct-mapped vs. 2-way set associative cache: way #1 line #0 line #0 way #0 line #0 89 / 179 Introduction Principles Core Memory Processor Network Exascale Memory: Cache (3) Replacement policies • Random: • Randomly select any possible line to evict • Least-recently used (LRU): • Assume that a line which has not been used for some time is not going to be used in the near future • Requires keeping track of all read accesses • First in, first out (FIFO): • Book keeping simpler to implement than in case of LRU 90 / 179 Introduction Principles Core Memory Processor Network Exascale Cache Write Policies Issue: How to keep cache and memory consistent? • Cache write policy design options • Write-through cache • Update cache and memory • Memory write causes significant delay if pipeline must stall • Write-back cache • Update cache only and post-pone update of memory + memory and cache will become inconsistent • If cache line is dirty then it must be committed before being replaced • Add dirty bit to manage this task Issue: How to manage partial cache line updates? • Typical solution: write-allocate (fetch-on-write) • Cache line is read before being modified 91 / 179 Introduction Principles Core Memory Processor Network Exascale Cache misses • Categories of cache misses Compulsory: Occurs when cache line is ac- cessed the first time Capacity: Re-fetch of cache lines due to lack of cache capacity Conflict: Cache line was discharged due to lack of associativity • Average memory access time = hit time + miss rate · miss penalty Hit time ::: Time to hit in the cache Miss penalty ::: Time to load cache line from memory 92 / 179 Introduction Principles Core Memory Processor Network Exascale Cache misses (2) Strategies to reduce miss rate: • Larger cache line size • If spatial locality is large then other parts of cache line are likely to be re-used • Bigger caches to reduce miss rate • Reduce capacity misses • Higher associativity • Reduce conflict misses • Hit time may increase 93 / 179 Introduction Principles Core Memory Processor Network Exascale Cache misses (3) Strategies to reduce miss penalty • Multilevel caches • Technical problem: Larger cache means higher miss penalty • Problem mitigation: Larger but slower L2 cache: Average memory access time = Hit timeL1 + Miss rateL1· (Hit timeL2 + Miss rateL2 · Miss penaltyL2) • Giving priority to read misses over writes • Goal: Serve reads before writes have completed • Implementation using write buffers + risk of data hazards: Pseudo-assembler example assuming direct mapped cache and memory offsets 512 and 1024 mapped to same set: store R1, 512(R0) ! Write value to memory load 1024(R0), R2 ! Load value from memory load 512(R0), R3 ! Load previously stored value? 94 / 179 Introduction Principles Core Memory Processor Network Exascale Cache: Inclusive vs. Exclusive • Policies: • Inclusive cache = Data present in one cache level also present in higher cache level • Example: All data in L1 cache is also present in L2 cache • Exclusive cache = Data present in at most one cache level • Intermediate policies: • Data available at higher cache level is allowed to be available at lower cache levels • Advantages of inclusive cache • Management of cache coherence may be simpler • Advantages of exclusive cache • Duplicate copies of data in several cache levels avoided • Example for intermediate policy: • L3 cache which is used as victim cache: cache holds data evicted from L2, but not necessarily data loaded to L2 95 / 179 Introduction Principles Core Memory Processor Network Exascale Re-Reference Timing

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    40 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us