1 / 29

IKI10230 Pengantar Organisasi Komputer Bab 5.2: Cache

IKI10230 Pengantar Organisasi Komputer Bab 5.2: Cache. Sumber : 1. Hamacher. Computer Organization , ed-5. 2. Materi kuliah CS152/1997, UCB. 23 April 2003 Bobby Nazief (nazief@cs.ui.ac.id) Qonita Shahab (niet@cs.ui.ac.id) bahan kuliah: http://www.cs.ui.ac.id/kuliah/iki10230/.

slade-dale
Télécharger la présentation

IKI10230 Pengantar Organisasi Komputer Bab 5.2: Cache

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. IKI10230Pengantar Organisasi KomputerBab 5.2: Cache Sumber:1. Hamacher. Computer Organization, ed-5.2. Materi kuliah CS152/1997, UCB. 23 April 2003 Bobby Nazief (nazief@cs.ui.ac.id)Qonita Shahab (niet@cs.ui.ac.id) bahan kuliah: http://www.cs.ui.ac.id/kuliah/iki10230/

  2. MEMORY HIERARCHY

  3. Memory Hierarchy (1/4) • Prosesor • menjalankan program • sangat cepat waktu eksekusi dalam orde nanoseconds sampai dengan picoseconds • perlu mengakses kode dan data program!Dimana program berada? • Disk • HUGE capacity (virtually limitless) • VERY slow: runs on order of milliseconds • so how do we account for this gap?  Menggunakan teknologi memori!

  4. Memory Hierarchy (2/4) • Memory (DRAM) • Kapasitas jauh lebih besar dari registers, lebih kecil dari disk (tetap terbatas) • Access time ~50-100 nano-detik, jauh lebih cepat dari disk (mili-detik) • Mengandung subset data pada disk (basically portions of programs that are currently being run) • Fakta: memori dengan kapasitas besar (murah!) lambat, sedangkan memori dengan kapasitas kecil (mahal) cepat. • Solution: bagaimana menyediakan (ilusi) kapasitas besar dan akses cepat!

  5. Processor Increasing Distance from Proc.,Decreasing cost / MB Levels in memory hierarchy Level 1 Level 2 Level 3 . . . Level n Size of memory at each level Memory Hierarchy (3/4) Higher Lower

  6. Memory Hierarchy (4/4) • Pada tingkat yang lebih dekat dengan Prosesor, mempunyai karakteristik: • Lebih kecil, • Lebih cepat, • Subset semua data pada level lebih atas (mis. menyimpan data yang sering digunakan) • Efisien dalam pemilihan mana data yang akan disimpan, karena tempat terbatas • Lowest Level (usually disk) contains all available data

  7. Memory Hierarchy Analogy: Library (1/2) • You’re writing a term paper (Processor) at a table in Doe • Doe Library is equivalent to disk • essentially limitless capacity • very slow to retrieve a book • Table is memory • smaller capacity: means you must return book when table fills up • easier and faster to find a book there once you’ve already retrieved it

  8. Memory Hierarchy Analogy: Library (2/2) • Open books on table are cache • smaller capacity: can have very few open books fit on table; again, when table fills up, you must close a book • much, much faster to retrieve data • Illusion created: whole library open on the tabletop • Keep as many recently used books open on table as possible since likely to use again • Also keep as many books on table as possible, since faster than going to library

  9. Probability of reference 0 2^n - 1 Address Space Why hierarchy works • The Principle of Locality: • Program access a relatively small portion of the address space at any instant of time.

  10. Lower Level Memory Upper Level Memory To Processor Blk X From Processor Blk Y Memory Hierarchy: How Does it Work? • Temporal Locality (Locality in Time):  Keep most recently accessed data items closer to the processor • Spatial Locality (Locality in Space):  Move blocks consists of contiguous words to the upper levels

  11. Processor Control Tertiary Storage (Disk) Secondary Storage (Disk) Second Level Cache (SRAM) Main Memory (DRAM) On-Chip Cache Datapath Registers Speed (ns): 1s 10s 100s 10,000,000s (10s ms) 10,000,000,000s (10s sec) Size (bytes): 100s Ks Ms Gs Ts Modern Computer System • By taking advantage of the principle of locality: • Present the user with as much memory as is available in the cheapest technology. • Provide access at the speed offered by the fastest technology.

  12. How is the hierarchy managed? • Registers <-> Memory • by compiler (programmer?) • Cache <-> Memory • by the hardware • Memory <-> Disks • by the hardware and operating system (virtual memory) • by the programmer (files)

  13. Basis of Memory Hierarchy • Disk contains everything. • When Processor needs something, bring it into to all lower levels of memory. • Cache contains copies of data in memory that are being used. • Memory contains copies of data on disk that are being used. • Entire idea is based on Temporal Locality: if we use it now, we’ll want to use it again soon

  14. Cache

  15. Processor Reg Cache Memory-I/O bus I/O controller I/O controller I/O controller Memory Display Network disk disk Disk Disk Organisasi Hierarki Memori: Cache

  16. What is a cache? • Kecil, storage cepat untuk meningkatkan “average access time” dibandingkan memori • Memanfaatkan spatial & temporal locality • Sebenarnya “cache” terlihat pada hirarkis penyimpanan • Registers “a cache” on variables – software managed • First-level cache a cache on second-level cache • Second-level cache a cache on memory • Memory a cache on disk (virtual memory)

  17. Cache Design • Bagaimana organisasi cache? (ingat: cache akan menerima alamat memori dari prosesor, tidak ada perubahan pada rancangan prosesor ada/tanpa cache). • Bagaimana melakukan mapping (relasi) antara alamat memori dengan cache (ingat: prosesor hanya melihat memory byte addressable) • Bagaimana mengetahui elemen data tsb berada di cache (hit) atau tidak ada (miss) (ingat: cache jauh lebih kecil dari main memory)?

  18. MainMemory Cache To Processor Blk X From Processor Blk Y Cache: Blok Memory • Transfer data antara cache dan memori dalam satuan blok (kelipatan words) • Mapping (penerjemahan) antara blok di cache dan di main memory (ingat: cache copy dari main memory) Hit

  19. 4 Byte Direct Mapped Cache Cache Index Memory Address Memory 0 0 1 1 2 2 3 3 4 5 6 7 8 9 A B C D E F Direct Mapping • Lokasi cache 0 dapat diisidata lokasi dari: • Lokasi memori:0, 4, 8, ... • Secara umum: lokasi memori yang merupakan kelipatan 4 (jumlah blok cache)

  20. 4 Byte Associative Mapped Cache Cache Index Memory Address Memory 0 0 1 1 2 2 3 3 4 5 6 7 8 9 A B C D E F Associative Mapping

  21. 4 Byte Set-Associative Mapped Cache Cache Index Memory Address Memory 0 0 0 1 1 2 2 1 3 3 4 Cache Set 5 6 7 8 9 A B C D E F Set-Associative Mapping

  22. Address Mapping

  23. tttttttttttttttttiiiiiiiiiioooo tagindexbyte to checktooffsetif haveselectwithincorrect blockblockblock Example: Direct-Mapped • Masalah: multiple alamat memori “map” ke indeks blok yang sama! • Bagaimana kita mengetahui apakah alamat blok yang diinginkan berada di cache? • Harus ada identifikasi blok memori dikaitkan dengan alamat • Bagaimana jika ukuran blok > 1 byte? • Solusi: bagi alamat dalam bentuk fields

  24. Cache Address Terminology • Semua fields untuk penerjemahan dianggap sebagai bilangan positif integer. • Index: indeks pada blok cache, dimana blok (baris, entry) dari cache alamat tersebut harus berada. • Offset: sekali kita telah menemukan blok tsb, manakah byte pada blok tersebut akan diakses. • Tag: sisa bit dari alamat setelah field index dan offset; digunakan untuk membedakan alamat memory yang mappingnya pada blok yang sama dari cache.

  25. Direct-Mapped Cache Example (1/3) • Misalkan kita mempunya 16KB data dengan skema direct-mapped cache. • Setiap blok terdiri dari 4 word • Tentukan ukuran field: tag, index, dan offset jika menggunakan komputer 32-bit. • Offset • Diperlukan untuk mengambil satu byte dalam blok • blok mempunyai: 4 words 16 bytes 24 bytes • diperlukan 4 bit untuk menentukan alamat byte

  26. Direct-Mapped Cache Example (2/3) • Index: (~index into an “array of blocks”) • diperlukan untuk menentukan blok yang mana pada cache (rows yang mana) • cache mempunyai 16 KB = 214 bytes • blok mempunyai 24 bytes (4 words) # rows/cache = # blocks/cache (sebab setiap rows terdiri dari satu blok) = bytes/cache / bytes/row = 214 bytes/cache / 24 bytes/row = 210 rows/cache • diperlukan 10 bit untuk menentukan indeks pada rows dari cache • Tag: 32 – (4 + 10) = 18 bit

  27. Direct-Mapped Cache Example (3/3) • Contoh direct mapped cache tsb membagi field atas • 4 bits offset • 10 bit index • 18 bit tag • Struktur cache: • Menyimpan tag (unik untuk setiap blok) dikaitkan dengan blok/rows. • Akses dilakukan dengan mencari index blok/ rows • Bandingkan tag dari alamat dan tag yang disimpan pada row tersebut • Jika tag sama => HIT, ambil byte (offset) • Jika tidak sama => MISS, ambil blok dari memori.

  28. Cache Index 0000000000 0000000001 0000000010 tttttttttttttttttiiiiiiiiiioooo 0000000011 Akses Memori pada Direct-mapped Cache Cache Tag 000000000000000000

  29. Replacement Algorithms • Berlaku bagi: • Associative Mapping • Set-Associative Mapping • Bagaimana menempatkan blok baru jika cache sudah penuh  berpengaruh pada kinerja! • Beberapa algoritme: • LRU: Least Recently Used • LFU: Least Frequently Used • Random

More Related