CACHE MEMORY
ARSITEKTUR KOMPUTER
Semester Genap 2015/2016
Cache berasal dari kata cash. Dari istilah tersebut, cache berarti tempat
menyembunyikan atau tempat simpanan sementara. Memory ini terletak antara register dan
RAM (memori utama), sehingga pemrosesan data tidak langsung mengacu pada memori utama.
Tipe memory ini adalah tipe SDRAM yang memiliki kapasitas terbatas namun memiliki
kecepatan yang sangat tinggi dan harga yang lebih mahal daripada memori utama. Harga
memory ini bisa mencapai seratus dollar per mega byte-nya ($100/MB).
Prinsip kerja dari cache memory yaitu data-data yang digunakan kembali (reusable)
disimpan di dalam cache memory dan apabila sekali waktu diperlukan, ALU akan mengambil
data tersebut dari memori ini. Cara ini dimaksudkan untuk meningkatkan transfer data dengan
menyimpan data yang pernah diakses pada cache memory tersebut, sehingga apabila data yang
diakses adalah data yang sama maka data langsung diambil dari cache memory. Pendekatan
seperti ini membuat pemrosesan data menjadi lebih cepat jika dibandingkan dengan pemrosesan
data yang datanya diperoleh dari RAM.
■ Cache memory merupakan memori tipe SDRAM yang memiliki kecepatan sangat tinggi
dan digunakan untuk menjembatani gap atau perbedaan kecepatan antara CPU (cepat) dan
main memory (lambat)
■ Kapasitas lebih kecil tetapi lebih cepat dari RAM (main memory);
■ Cache memory menyimpan salinan data dari memori utama, tetapi saat pemrosesan
data tidak langsung mengacu atau berhadapan dengan memori utama ;
■ Word atau eksekusi perintah yang disimpan didalam cache memory diambil dari main
Terdapat tiga level cache yang digunakan komputer, yaitu Level 1 (Cache L1), Level 2
(Cache L2) dan Level 3 (Cache L3). Prinsip kerjanya ketiga level ini sederhana. CPU pertama-
tama akan memeriksa L1 cache, diikuti dengan L2 dan L3 cache. Jika processor telah
menemukan bit data yang dibutuhkan, maka disebut dengan cache hit. Namun jika cache tidak
menyediakan bit data yang dibutuhkan, processor mendapatkan sebuah cache miss, dan data
akan diambil dari RAM (main memory) yang lebih lambat.
Cache Level 1 (L1) terletak di dalam prosesor (internal cache), memiliki kecepatan
akses paling tinggi dan harganya paling mahal. Ukuran byte untuk Cache L1 bervariasi, mulai
dari 8KB, 64KB, dan 128KB. Cache L1 terintegrasi langsung di dalam prosesor agar instruksi-
instruksi yang dibutuhkan untuk menjalankan program telah siap digunakan dan hanya tinggal
mengambilnya langsung dari Cache L1, sehingga CPU dapat memproses request tanpa adanya
jeda (delay).
Cache Level 2 (L2) memiliki kapasitas yang lebih besar dari L1 yaitu sekitar 256KB -
2MB, akan tetapi memiliki kecepatan yang lebih rendah dari L1. Cache L2 letaknya terpisah
dengan prosesor atau disebut external cache. Biasanya L2 cache terintegrasi langsung pada
motherboard komputer.
Cache level 3 (L3) hanya dimiliki oleh komputer multi-prosesor. Fungsinya mengontrol
data yang masuk dari cache L2 dari masing-masing inti prosesor. Beberapa processor juga
menggabungkan L1 dan L2 cache bahkan juga menggabungkan L3 cache. Kecepatan akses L3
Setiap block dari memori utama hanya memetakan ke dalam satu baris cache. Jika suatu
block ditemukan di cache, maka block tersebut selalu ditemukan pada tempat yang sama.
Nomor baris dihitung menggunakan rumus berikut:
i = j modulo m
0 0, m, 2m, 3m…2s-m
1 1,m+1, 2m+1…2s-m+1
Pada cara ini, address pada main memory dibagi 3 field atau bagian, yaitu Tag
identifier, Line number identifier, dan Word identifier (offset). Word identifier berisi
informasi tentang lokasi word atau unit addressable lainnya dalam line tertentu pada cache. Line
Item Keterangan
Panjang alamat (s + w) bits
Jumlah unit yang dapat dialamati 2s+w words or bytes
Sesuai rumus table cache line pada direct mapping diatas, jika M = 64 dan C = 4, maka pemetaan
antara line dengan blok menjadi seperti berikut:
SOAL 2
SOAL 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 (s-r), line (r), dan word (w) !
Gambarkan mappingnya !
Berikan contohnya !
Maka:
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)
Jumlah bit identitas word (w) = 2 bit (1 blok = 4 byte = 22)
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 – 2 = 8 bit
Format alamat memori: (dari sisi cache)
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)
2 2 b i t s
2 bits
G
ambar 2.1.2. Organisasi Associative Mapping cache.
Item Keterangan
Panjang alamat (s + w) bits
Jumlah unit yang dapat dialamati 2s+w words or bytes
Ukuran Blok sama dengan ukuran Line 2w words or bytes
Jumlah blok di memori utama 2s+ w/2w = 2s
Jumlah line di cache undetermined
Besarnya tag s bits
SOAL 2
Diketahui:
1 alamat = 1 byte
Maka:
Memori 16 Mbyte = 24 . 220 = 224 Jumlah bit alamat yang diperlukan = 24 bit
Item Keterangan
Panjang alamat (s + w) bits
Jumlah unit yang dapat dialamati 2s+w words or bytes
Ukuran Blok sama dengan ukuran Line 2w words or bytes
Jumlah blok di memori utama 2d
Jumlah line dalam set k
Jumlah set V=2d
Jumlah line di cache Kv = k*2d
Besarnya tag (s-d) bits
C
ONTOH PERHITUNGAN SET ASSOCIATIVE
MAPPING
SOAL 1
SOAL 2
Diketahui:
Main memory berukuran 16 MByte
Cache berukuran 64 kByte
1 alamat = 1 byte
1x transfer data = 1 blok memori = 4 byte
Maka:
Memory 16 Mbyte = 24 . 220 = 224 Jumlah bit alamat yang diperlukan = 24 bit
Jumlah bit identitas word (w) = 2 bit (1 blok = 4 byte = 22)
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 (0000 - 1FFF)
Jumlah bit tag = 24 – 13 – 2 = 9 bit (range: 000 – 1FF)
Jumlah tag = 29 = 512 tag
Format alamat memori: (dari sisi cache)
Jumlah alamat memori/tag = 213+2 = 25 . 210 = 32 k
Range alamat memori/tag (24 bit) = 000000 – 007FFF alamat memori :
000000, 008000, 010000, …, FF8000 selalu terletak pada set nomor yang sama
(0000)
Setiap alamat memori di atas bebas menempati salah satu line pada nomor set
tersebut
Setiap satu nomor blok memori hanya dapat menempati satu nomor set
Satu nomor set dapat dapat ditempati oleh:
512 nomor tag berbeda tetapi nomor blok-nya sama
FIFO SOAL 1
FIFO SOAL 2
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan
pengaksesan data adalah:
a b c d c b a b c kemudian datang data e maka data yang diganti adalah ???
Jawaban: a (a paling lama/awal berada di cache)
Kalau data yang diakses sebelum data e adalah d, maka data yang diganti adalah ???
Jawaban: a (a paling lama/awal berada di cache)
LRU SOAL 1
LRU SOAL 2
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan
pengaksesan data adalah:
a b c d c b a b c kemudian datang data e maka data yang diganti adalah ???
Jawaban: d
Kalau data yang diakses sebelum data e adalah d, maka data yang diganti adalah ???
Jawaban: a (a lebih lama tidak diakses dibanding d)
LFU SOAL 1
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan
pengaksesan data adalah:
a b c d c b a b c a d kemudian datang data e maka data yang diganti adalah ???
Jawaban: d (d paling jarang diakses)
Kalau urutan data yang diakses sebelum data e adalah a b c d c b a b c a d d, 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
Data yang telah berubah pada memori utama harus di update di cache memory agar tidak
menimbulkan data yang tidak valid karena perbedaan di cache dan memory utama.
Ada beberapa teknik update diantaranya, write through, yaitu operasi penulisan melibatkan
data pada memori utama dan sekaligus pada cache memory sehingga
data selalu valid. Kekurangan teknik ini adalah menjadikan lalu lintas data sangat tinggi sehingga
bisa terjadi hang. Teknik lainnya adalah write back, yaitu teknik meminimasi penulisan dengan cara
penulisan pada cache memory saja. Pada saat akan terjadi penggantian blok data cache memory
maka baru diadakan penulisan di memori utama.
DAFTAR PUSTAKA
Prentice Hall.
Malvino, Albert Paul. Digital Computer Electronic, diterjemahkan oleh Tjia May
Daftar Website:
■ http://en.wikipedia.org/wiki/Cache_coherency
■ http://en.wikipedia.org/wiki/Cache_algorithms
■ http://williamstallings.com/ComputerOrganization/COA8e-Instructor/index.html
■ http://www.tomshardware.com/reviews/athlon-l3-cache,2416-2.html
■ https://littleradita.files.wordpress.com/2009/11/mappingorkom.pdf
■ https://id.scribd.com/doc/16644704/COA-15-Cache-Memory
■ http://javaandro.blogspot.co.id/2014/06/makalah-cache-memory.html