Anda di halaman 1dari 55

Cache Memory

Organization and
Architecture Computer
(OAC)

PRODI. TEKNIK INFORMATIKA (S-1)


Pokok Bahasan
Cache Memori
- Konsep cache memori
- Kinerja cache memori
- Pemetaan cache memori
- Level cache memori
- Jenis cache memori
Cache Memori

• Mempercepat kerja memori sehingga mendekati


kecepatan prosesor.
• Memori utama lebih besar kapasitasnya namun
lambat operasinya, sedangkan cache memori
berukuran kecil namun lebih cepat.
• Cache memori berisi salinan memori utama
Cache Memori
Ukuran cache memori adalah kecil, semakin besar
kapasitasnya maka akan memperlambat proses
operasi cache memori itu sendiri, disamping harga
cache memori yang sangat mahal
Lanjutan
Struktur Cache Memory
CARA KERJA CACHE (1)

• Memori utama dan cache dibagi menjadi sebuah


blok (unit berukuran sama). Cache biasanya berisi
sejumlah blok dari ‘memory-word’.
• Bila satu ‘memory-word’ tertentu akan diakses,
maka prosessor terlebih dahulu mencarinya pada
cache memory
Lanjutan
• Bila ada pada cache, maka ‘cache hit’ (word dari
cache dikirim ke CPU)
• bila tidak ada pada cache, maka ‘cache miss’ (blok
dari memori utama dimasukkan ke dalam
cache/CPU).
Organisasi Cache Memori
CARA KERJA CACHE (2)
• Pada saat CPU sedang melakukan proses terhadap
word tertentu, maka cache akan diisi oleh word
berikutnya.
• Bila cache penuh, dioperasikan ‘replacement
algorithm’ pada saat ‘cache miss’ (algoritma ini
untuk menentukan blok yang harus dikeluarkan dari
cache, yang dianggap tidak akan digunakan lagi,
untuk memberikan peluang tempat bagi blok yang
baru.
Lanjutan…
• Untuk pembacaan (‘memory read’), word langsung
diambil dari cache (saat ‘cache hit’).
Elemen Cache Memori
Kapasitas Cache
• AMD mengeluarkan prosesor K5 dan K6 dengan
cache yang besar (1MB), kinerjanya tidak bagus
• Intel mengeluarkan prosesor tanpa cache untuk
alasan harga yang murah, yaitu seri Intel Celeron
pada tahun 1998-an, kinerjanya sangat buruk
terutama untuk operasi data besar, floating point,
3D
• Sejumlah penelitian telah menganjurkan bahwa
ukuran cache antara 1KB dan 512KB akan lebih
optimum
Berikut sebuah
contoh memori
dengan 20 bit
alamat ,dengan
4 words per blok
Pemetaan (Cache)
• Cache mempunyai kapasitas yang kecil
dibandingkan memori utama.
• Aturan blok – blok mana yang diletakkan dalam
cache.
• Terdapat tiga metode, yaitu
- pemetaan langsung
- pemetaan asosiatif
- pemetaan asosiatif set
Pemetaan Langsung
• Teknik paling sederhana, yaitu teknik ini memetakan blok
memori utama hanya ke sebuah saluran cache saja
4

3
2

1
Pemetaan Langsung
 
Pemetaan Langsung
Pemetaan Langsung
Pemetaan Langsung
• Untuk keperluan akses cache  setiap alamat
memori dibagi menjadi 2 bagian:
• w = bit-bit identitas word atau byte di dalam blok
memori
• s = bit-bit identitas blok memori
• s terdiri dari dua bagian:
+line field (r): bit-bit nomor baris cache
+tag (s-r): bit-bit identitas blok data yang ada di memori
• s + w = alamat memori
• Diketahui:
Main memory berukuran 16 MByte
Cache berukuran 64 kByte
1 byte = 1 alamat
1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4 alamat
• Sebutkan jumlah bit untuk tag (s-r), line (r), dan word (w) ! Dan berikan
gambaran pemetaannya
• Jawab:
Jumlah alamat total = 16 MB/1 byte = 16 M alamat
Memory 16 M alamat = 24 . 220 = 224
Jumlah bit alamat yang diperlukan = 24 bit (lebar alamat)
1 blok = 4 alamat = 22 , maka
Jumlah bit identitas word (w) = 2 bit
Jumlah line cache = 64 kbyte/4 byte = 16 k line
16 k = 24 . 210 = 214  Jumlah bit line = 14 bit
Jumlah bit tag (s-r) = 24 – 14 = 10 bit
 Format alamat memory dari sisi cache memory
Word
Tag ( s-r) Line or Slot (r)
(w)
(10 bit) (14 bit)
(2 bit)

 Jumlah blok memori = 16 Mbyte/4 byte = 4 M blok


1 line cache  1 blok memori, maka:
•line:blok = 16 K: 4 M = 1:(22 . 210)/ 24 =1:256
•1 line cache mempunyai kemungkinan ditempati oleh
256 data yang berbeda (nomor tag berbeda)
Jumlah tag = 28 = 256 tag
1 tag = 4 M blok / 256 = 22 x 220 / 28 = 214 = 16 kblok
Setiap nomor blok memori hanya akan menempati satu
nomor line cache tertentu saja (tidak berpindah-pindah)
Pemetaan Assosiatif
Mengatasi kekurangan pemetaan langsung
 Tiap blok memori utama dapat dimuat ke sembarang
saluran cache.
 Alamat memori utama diinterpretasikan dalam field tag
dan field word oleh kontrol logika cache.
 Tag secara unik mengidentifikasi sebuah blok memori
utama
 Mekanisme untuk mengetahui suatu blok dalam cache
dengan memeriksa setiap tag saluran cache oleh kontrol
logika cache.
Lanjutan…
Kelebihan :
Algoritma penggantian dirancang untuk
memaksimalkan hit ratio, yang pada pemetaan
langsung terdapat kelemahan

Kekurangan :
Kekompleksitasan rangkaian sehingga mahal secara
ekonomi
Pemetaan Assosiatif

2
1

3
• Diketahui:
Main memory berukuran 16 MByte
Cache berukuran 64 kByte
1 byte = 1 alamat
1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4
alamat
• Sebutkan jumlah bit untuk tag dan word (w) !
• Dan berikan gambaran pemetaannya
• Jawab:
Memori 16 Mbyte = 16 M alamat = 24 . 220 = 224 Jumlah
bit alamat yang diperlukan = 24 bit
Jumlah bit identitas word (w) = 2 bit (1 blok = 4 alamat
= 22)
Jumlah bit tag = (s) = 24 bit
 Format alamat memory dari sisi cache memory
Word
Tag (s)
(w)
(24 bit)
(2 bit)

Jumlah line cache = 64 kbyte/4 byte = 16 k line


16 k = 24 . 210 = 214  Jumlah bit line = 14 bit
Jumlah blok memori = 16 Mbyte/4 byte = 4 M blok = jumlah
tag (222)
1 line cache 1 blok memori (tag), maka:
1 line cache mempunyai kemungkinan ditempati oleh
4 M blok yang berbeda
Setiap tag dapat menempati nomor line yang mana saja
(tidak berhubungan dengan nomor baris)
Setiap blok memori mempunyai satu pasangan nomor tag
Pemetaan Assosiatif Set
• Menggabungkan kelebihan yang ada pada pemetaan
langsung dan pemetaan asosiatif.
• Memori cache dibagi dalam bentuk set–set.
• Alamat memori utama diinterpretasikan dalam tiga
field, yaitu: field tag, field set, field word.
• Setiap blok memori utama dapat dimuat dalam
sembarang saluran cache.
Pemetaan Assosiatif Set
• Formula pemetaan assosiatif set yaitu :
r=s*l
g = b modulo s
Dimana :
r = jumlah total baris memori cache
s = jumlah set memori cache
l = jumlah baris di dalam set
g = nomor set memori cache
b = nomor blok memori utama
Pemetaan Assosiatif Set
(Organisasi cache dengan pemetaan asosiatif set )

4
1
2 3
Pemetaan Assosiatif Set
(Contoh pemetaan asosiatif set )
• Diketahui:
Main memory berukuran 16 MByte
Cache berukuran 64 kByte Tag ( s-d) Set (d) Word (w)
1 byte = 1 alamat ( 11 bit) (13 bit) (2 bit)
1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4 alamat
Model mapping = 2 way set associative
• Sebutkan jumlah bit untuk tag (s-v), set (v), dan word (w) !
• Dan berikan gambaran pemetaannya
• Jawab:
Jumlah alamat total = 16 MB/1 byte = 16 M alamat
Memory 16 M alamat = 24 . 220 = 224
Jumlah bit alamat yang diperlukan = 24 bit (lebar alamat)
1 blok = 4 alamat = 22 , maka
Jumlah bit identitas word (w) = 2 bit
Jumlah line cache = 64 kbyte/4 byte = 16 k line
1 set = 2 line  jumlah set = 16k/2 = 8 k set
8 k = 23.210 = 213  jumlah bit set = 13 bit
jumlah bit tag = 24-13 = 11 bit
jumlah tag = 211 = 2048
Latihan
• Diketahui:
Main memory berukuran 16 GByte
Cache berukuran 256 KByte
2 byte = 2 alamat
1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4 alamat
Tentukan
• Sebutkan jumlah bit untuk tag (s-r), line (r), dan word (w) pada pemetaan
langsung
• Sebutkan jumlah bit untuk tag dan word (w) banyaknya blok pada main
memory dengan pemetaan Assosiative
• Jumlah bit untuk tag (s-v), set (v), dan word (w) pada pemetaan assosiative
set dengan 4 way set associative
Tunjukkan gambaran masing-masing pemetaan
REPLACEMENT ALGORITHM

• Dalam cache direct-mapped, posisi tiap blok


ditetapkan sebelumnya, sehingga tidak ada strategi
pergantian.

• Dalam cache associative dan set-associative


terdapat beberapa fleksibilitas.
Algoritma Penggantian
Algoritma Least Recently Used (LRU), yaitu
mengganti blok data yang terlama berada dalam
cache. (EFEKTIF)

 Algoritma First In First Out (FIFO), yaitu


mengganti blok data yang awal masuk
Algoritma Penggantian
Algoritma Least Frequently Used (LFU) adalah
mengganti blok data yang mempunyai referensi
paling sedikit.

 Algoritma Random, yaitu penggantian tidak


berdasakan pemakaian datanya, melainkan berdasar
slot dari beberapa slot kandidat secara acak
Least Recently Used (LRU)
• Blok yang diganti adalah blok yang paling lama di cache dan
tidak digunakan
• Kelebihan:
• Paling efektif
• Mempunyai hit ratio tinggi  data yang sering digunakan saja
yang ditaruh di cache
• Paling mudah diimplementasikan pada two-way set
associative
• mapping (digunakan sebuah bit tambahan = USE bit, line
yang direfer USE bit = 1))
Least Recently Used (LRU)
• Contoh:
Kapasitas cache terbatas sedangkan jumlah blok data jauh
lebih banyak. Jika urutan pengaksesan data adalah:
abcdcbabc
kemudian datang data e maka data yang diganti adalah ???
• Jawaban: d
First In First Out (FIFO)
• Blok yang diganti adalah blok yang paling awal berada di
cache
• Contoh:
• Kapasitas cache terbatas sedangkan jumlah blok data jauh
lebih banyak. Jika urutan pengaksesan data adalah:
abcdcbabc
kemudian datang data e maka data yang diganti adalah ???
• Jawaban: a (a paling lama/awal berada di cache)
Least Frequently Used (LFU)
• Blok yang paling jarang digunakan yang diganti
• Setiap baris mempunyai counter
• Contoh:
Kapasitas cache terbatas sedangkan jumlah blok
data jauh lebih banyak. Jika urutan pengaksesan
data adalah:
abcdcbabcad
kemudian datang data e maka data yang diganti
adalah ???
Least Frequently Used (LFU)
• Jawaban: d (d paling jarang diakses)
Kalau urutan data yang diakses sebelum data e
adalah
abcdcbabcadd
maka data yang diganti adalah ???
• Jawaban: a (nilai counter a sama dengan yang lain,
tetapi karena a datang paling awal maka a berada
pada baris paling awal)  FIFO
• b (paling lama tidak diakses) LRU
Level Cache
• Cache Internal : dalam chip (L1 cache)
• Tidak memerlukan bus eksternal
• Waktu aksesnya akan cepat sekali
• Cache Eksternal : diluar chip (L2 cache)
• Cache tingkat 2 (L2)
• Untuk mengantisipasi permintaan akses alamat yang belum
tercakup dalam cache internal
Jenis Cache
 Unified Cache
atau cache-gabung yang menyimpan instruksi dan
data secara bersamaan.

Contoh : Mikroprosesor Intel 80486


Jenis Cache
• Cache data dan cache instruksi dipisah yang disebut
split cache
• Keuntungan split cache :
• Hit rate yang tinggi karena telah dibedakan antara
informasi data dan informasi instruksi
Jenis Cache
• Split cache
• Mesin–mesin superscalar seperti Pentium dan PowerPC
• Menekankan pada paralel proses dan perkiraan perkiraan
eksekusi yang akan terjadi.
• Kelebihan utama split cache
• Mengurangi persaingan antara prosesor instruksi dan
unit eksekusi untuk mendapatkan cache, hal ini sangat
utama bagi perancangan prosesor–prosesor pipelining
Write Policy – Mengapa ?
Apabila suatu data telah diletakkan pada cache maka
sebelum ada penggantian harus dicek apakah data
tersebut telah mengalami perubahan. Apabila telah
berubah maka data pada memori utama harus di-update.

Masalah penulisan ini sangat kompleks, apalagi memori


utama dapat diakses langsung oleh modul I/O, yang
memungkinkan data pada memori utama berubah, lalu
bagaimana dengan data yang telah dikirim pada cache?
 Tentunya perbedaan ini menjadikan data tidak valid
Write Policy –”write through”
• Operasi penulisan melibatkan data pada memori
utama dan sekaligus pada cache memori sehingga
data selalu valid.
• Kekurangan teknik ini adalah
• Lalu lintas data ke memori utama dan cache sangat
tinggi
• Mengurangi kinerja sistem, bisa terjadi hang
Write Policy –”write back “
• Teknik meminimasi penulisan dengan cara
penulisan pada cache saja.
• Pada saat akan terjadi penggantian blok data
cache maka baru diadakan penulisan pada
memori utama.
• Masalah : manakala data di memori utama
belum di-update telah diakses modul I/O
sehingga data di memori utama tidak valid
Write Policy-Multi cache
• Multi cache untuk multi prosesor
• Masalah yang lebih kompleks.
• Masalah validasi data tidak hanya antara cache dan
memori utama namun antar cache harus
diperhatikan
• Bus Watching with Write Through
• Hardware Transparency
• etc..
Kesimpulan
• Satuan pokok memori adalah digit biner, yang
disebut bit. Suatu bit dapat berisi sebuah angka 0
atau 1. Ini adalah satuan yang paling sederhana.
Memori juga dinyatakan dalam byte (1 byte = 8 bit).
Kumpulan byte dinyatakan dalam word. Panjang
word yang umum adalah 8, 16, dan 32 bit
• Tipe – tipe memori semikonduktor: RAM,
ROM,PROM, EPROM, Flas Memory, EEPROM
Kesimpulan
Memori adalah bagian dari komputer tempat program program
dan data – data disimpan
 Elemen dasar memori adalah sel memori. Sel memori
dipresentasikan dengan bilangan biner 1 atau 0. Sel memori
mempunyai kemampuan untuk ditulisi dan dibaca.
 Untuk mempelajari sistem memori secara keseluruhan, harus
mengetahui karakteristik – karakteristik kuncinya yaitu:
Lokasi, Kapasitas, Satuan Transfer, Metode Akses, Kinerja,
Tipe Fisik dan Karakteristik Fisik.
 Untuk memperoleh keandalan sistem ada tiga pertanyaan yang
diajukan: Berapa banyak ? Berapa cepat? Berapa mahal?
Kesimpulan
 Dalam melaksanakan fungsi penyimpanan, memori
semikonduktor dimungkinkan mengalami kesalahan.
Untuk mengadakan koreksi kesalahan data yang
disimpan diperlukan dua mekanisme, yaitu mekanisme
pendeteksian kesalahan dan mekanisme perbaikan
kesalahan

 Cache memori difungsikan mempercepat kerja memori


sehingga mendekati kecepatan prosesor.
Pustaka
[SCH85] Schneider, Michael G. 1985. “The Principle of
Computer Organization”. 1st edition. John Wiley &
Sons. Canada.
[TAN99] Tanenbaum, Andrew S. 1999. “Structured Computer
Organization”. 4th edition. Prentice Hall.
[SAH10] Syahrul, 2010, “Organisasi dan Arsitektur
Komputer”, Andi,m Yokyakarta

Anda mungkin juga menyukai