hirarki & cache
TRANSCRIPT
![Page 1: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/1.jpg)
PROGRAM STUDI
S1 SISTEM KOMPUTERUNIVERSITAS DIPONEGORO
Oky Dwi Nurhayati, ST, MTOky Dwi Nurhayati, ST, MTemail: [email protected] email: [email protected]
![Page 2: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/2.jpg)
2
MEMORY HIERARCHY
![Page 3: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/3.jpg)
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!
![Page 4: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/4.jpg)
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!
![Page 5: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/5.jpg)
5
Memory Hierarchy (3/4)Processor
Size of memory at each level
Increasing Distance
from Proc.,Decreasing
cost / MBLevel 1
Level 2
Level n
Level 3
. . .
Higher
Lower
Levels in memory
hierarchy
![Page 6: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/6.jpg)
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
![Page 7: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/7.jpg)
7
Why hierarchy works° The Principle of Locality:
• Program access a relatively small portion of the address space at any instant of time.
Address Space0 2^n - 1
Probabilityof reference
![Page 8: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/8.jpg)
8
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 Lower Level
MemoryUpper LevelMemory
To Processor
From ProcessorBlk X
Blk Y
![Page 9: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/9.jpg)
9
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.
Control
Datapath
SecondaryStorage(Disk)
Processor
Registers
MainMemory(DRAM)
SecondLevelCache
(SRAM)
On-C
hipC
ache
1s 10,000,000s (10s ms)
Speed (ns): 10s 100s100s
GsSize (bytes):
Ks Ms
TertiaryStorage(Disk)
10,000,000,000s (10s sec)
Ts
![Page 10: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/10.jpg)
10
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)
![Page 11: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/11.jpg)
11
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
![Page 12: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/12.jpg)
12
Cache
![Page 13: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/13.jpg)
13
Organisasi Hierarki Memori: Cache
diskDiskdiskDisk
Memory-I/O bus
Processor
Cache
Memory
I/Ocontroller
I/Ocontroller
I/Ocontroller
Display Network
Reg
![Page 14: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/14.jpg)
14
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)
![Page 15: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/15.jpg)
15
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)?
![Page 16: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/16.jpg)
16
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)
MainMemoryCacheTo Processor
From ProcessorBlk X
Blk Y
Hit
![Page 17: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/17.jpg)
17
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)
MemoryMemory Address
0123456789ABCDEF
4 Byte Direct Mapped Cache
Cache Index
0123
![Page 18: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/18.jpg)
18
Associative Mapping
MemoryMemory Address
0123456789ABCDEF
4 Byte Associative Mapped Cache
Cache Index
0123
![Page 19: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/19.jpg)
19
Set-Associative Mapping
MemoryMemory Address
0123456789ABCDEF
4 Byte Set-Associative Mapped Cache
Cache Index
0123
Cache Set
0
1
![Page 20: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/20.jpg)
20
Address Mapping
![Page 21: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/21.jpg)
21
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
ttttttttttttttttt iiiiiiiiii oooo tag index byte
to check to offsetif have select withincorrect block block block
![Page 22: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/22.jpg)
22
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.
![Page 23: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/23.jpg)
23
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 bytes24 bytes
• diperlukan 4 bit untuk menentukan alamat byte
![Page 24: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/24.jpg)
24
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
![Page 25: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/25.jpg)
25
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.
![Page 26: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/26.jpg)
26
Akses Memori pada Direct-mapped Cache
Cache Index
0000000000000000000100000000100000000011
Cache Tag
ttttttttttttttttt iiiiiiiiii oooo
000000000000000000
![Page 27: Hirarki & Cache](https://reader034.vdocuments.site/reader034/viewer/2022052212/588871c81a28abf92b8c3a26/html5/thumbnails/27.jpg)
27
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