View
125
Download
8
Embed Size (px)
Citation preview
I. Pengertian Cache
Cache berasal dari kata cash yakni sebuah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut Cache Memory adalah tempat menyimpan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat. Cache memori ini terletak antara register dan memory utama sehingga pemrosesan data tidak langsung mengacu pada memori utama. Penggunaan cache ditujukan untuk meminimalisir terjadinya bottleneck dalam aliran data antara processor dan RAM. Sedangkan dalam terminology software, istilah ini merujuk pada tempat penyimpanan sementara untuk beberapa file yang sering diakses (biasanya diterapkan dalam network).
II. Fungsi Cache
Cache berfungsi sebagai tempat penyimpanan sementara untuk data atau instruksi yang diperlukan oleh processor. Secara gampangnya, cache berfungsi untuk mempercepat akses data pada komputer karena cache menyimpan data/informasi yang telah diakses oleh suatu buffer, sehingga meringankan kerja processor. Manfaat lain dari cache memory adalah bahwa CPU tidak harus menggunakan sistem bus motherboard untuk mentransfer data. Setiap kali data harus melewati bus sistem, kecepatan transfer data memperlambat kemampuan motherboard. CPU dapat memproses data lebih cepat dengan menghindari hambatan yang diciptakan oleh sistem bus.
III. Jenis Cache
Berdasarkan letaknya, cache dibedakan menjadi 2, yaitu :
1. Off-chip Cache (eksternal)
Terpisah dari chip prosessor
Komunikasi melalui bus eksternal atau bus khusus
1
2. On-chip Cache (internal)
Menjadi satu dengan chip prosessor
(+) Waktu eksekusi lebih cepat sehingga performansi meningkat
(+) Aktifitas bus eksternal berkurang sehingga bisa digunakan untuk
keperluan lain
Berdasarkan levelnya, cache dibedakan menjadi 2, yaitu :
1. One Level Cache
Hanya ada satu level cache (sekarang sudah ditinggalkan)
2. Multilevel Cache
Terdiri dari 2 level cache atau lebih
Mengapa perlu 2 level atau lebih?
L2 cache (SRAM) dapat mempercepat tersedianya data yang dibutuhkan CPU karena saat terjadi cache miss ( CPU akses ke memori, kecepatan memori < kecepatan CPU) menyebabkan performansi turun.
Kelebihan-Kekurangan Multilevel Cache:
(+) Memperbaiki performansi
2
(-) Perancangan cache lebih rumit
Jenis cache berdasarkan data yang dapat disimpan, yaitu :
1. Unified Cache
Data dan instruksi disimpan dalam tempat yang sama (dalam satu cache)
(+) Hit Rate lebih tinggi dari Split Cache
(+) Perancangan dan implementasi terfokus pada satu cache
(-) Tidak mendukung pipeline
(-) Dapat terjadi contention (rebutan) cache
2. Split Cache
Cache dibagi 2 sehingga data dan instruksi disimpan pada tempat terpisah
(+) Mendukung eksekusi instruksi secara parallel
(+) Mencegah contention cache antara fetch/decode instruksi dan eksekusi instruksi sehingga performansi lebih baik
IV. Struktur Cache
3
Pada cache satu blok terdiri dari beberapa word. Tag merupakan identitas blok yang sedang disimpan di cache memory dan bagian dari alamat main memory.
V. Sistem Kerja (Process Flow) Cache
Proses pertama adalah Cache menerima alamat Relative Data dari CPU. Lalu diperiksa apakah ada atau tidak pada cache. Jika ada, maka data tersebut diberikan pada CPU, proses ini dinamakan cache hit. Jika tidak ada pada cache maka mencari data pada main memory (cache miss), sehingga data tersebut dapat dikirimkan pada CPU dan mengcopy satu blok data pada cache memory. Proses tersebut merupakan proses baca pada cache.
4
Saat terjadi cache hit, kondisi buffer disable karena tidak perlu akses ke system bus.
5
Mapping Cache –Main Memory
Mapping dilakukan karena kapasitas cache jauh lebih kecil daripada kapasitas main memory. Ada 3 jenis mapping, yaitu:
1. Direct Mapping
Pada mapping ini memetakan setiap blok memori ke dalam satu line cache secara tetap (sesuai dengan nomor line). Tiap blok di main memory dipetakan hanya ke satu baris/line pada cache. Jika sebuah blok ada di cache, maka blok berada di satu tempat yang spesifik.
Panjang alamat main memory dibagi menjadi 2 bagian :
Least Significant Bit ( w ) mengidentifikasi suatu word yang unik
Most Significant Bit ( s ) mengidentifikasi sebuah blok memory.
Bit MSB dibagi menjadi :
Cache line field ( r) : bit pengidentifikasi baris/line
Tag ( s-r ) : bit pengidentifikasi blok pada memory
Direct Mapping – Baca Data
6
Proses Direct Mapping :
1. Dicek apakah baris di cache valid ( ada isinya )
2. Jika valid maka CPU membandingkan nomor tag yang akan dibaca dengan nomor tag yang ada di cache
3. Bila nomor tag tersebut sama ( cache hit ) maka akan memlih word yang diinginkan yang terletak pada nomor baris (line) yang diinginkan
4. Bila nomor tag tersebut berbeda (cache miss ) maka akan mengambil (fetch) satu blok data sesuai dengan nomor tag dan line yang diinginkan.
Kelebihan-kekurangan Direct Mapping :
(+) Sederhana
(+) Mudah diimplementasikan
(+) Tidak mahal
(-) Lokasi mapping setiap blok sudah tertentu (tidak fleksibel)
(-) Dapat terjadi thrashing bila program mengakses 2 blok yang terletak pada line cache yang sama secara berulang-ulang sehingga terjadi proses swap memori berkali-kali yang menyebabkan hit ratio rendah.
2. Associative Mapping
Format alamat memori :
Alamat memori diintrepresentasikan sebagai tag dan word. Tag merupakan identitas blok memori. Setiap satu baris cache mempunyai satu tag. Tag menjadi kata kunci dalam setiap pencarian data.
7
Gambar Associative Mapping – Baca Data
Proses Associative Mapping :
1. CPU membandingkan nomor tag yang akan dibaca dengan semua nomor tag yang ada di cache secara bersamaan
2. Bila nomor tag tersebut ada di cache (cache hit) maka akan memilih word yang diinginkan yang terletak pada nomor tag yang diinginkan.
3. Bila nomor tag tersebut tidak ada di cache (cache miss) maka akan mengambil (fetch) satu blok data sesuai dengan nomor tag yang diinginkan.
Kelebihan-kekurangan Associative mapping :
Mapping setiap blok dapat dilakukan secara fleksibel (tidak terikat pada nomor line tertentu)
Dapat mengatasi masalah thrashing
(-) Diperlukan rangkaian yang lebih rumit untuk membandingkan semua tag secara parallel, karena jumlah tag secara parallel, karena jumlah tag sangat banyak
3. Set Associative Mapping
Pada mapping ini cache dibagi menjadi sejumlah set, setiap set terdiri dari sejumlah baris. Setiap blok memori dipasangkan ke nomor set tertentu, tetapi baris, maka :
8
Model pemetaannya disebut : 2-way associative mapping
Setiap blok memori boleh menempati satu dari dua baris yang tersedia asalkan masih dalam satu set
Format alamat memori : (dari sisi cache)
Untuk keperluan akses cache maka setiap alamat memori dibagi menjadi 2 bagian :
w = bit-bit identitas word atau byte di dalam blok memori
s = bit-bit identitas blok memori
set field (v) : bit-bit nomor set
tag (s-v) : bit-bit identitas blok data yang ada di memori
Gambar Set Associative Mapping – Baca Data
Proses Set Associative Mapping :
1. CPU membandingkan nomor tag yang akan dibaca dengan semua nomor tag di cache. Tag dalam satu set dibandingkan bersama-sama
9
2. Bila nomor tag tersebut ada di cache (cache hit) maka akan memilih word yang diinginkan yang terletak pada nomor set yang diinginkan
3. Bila nomor tag tersebut tidak ada di cache (cache miss) akan mengambil (fetch) satu blok data sesuai dengan nomor tag dan nomor set yang diinginkan
Kelebihan Set Associative Mapping :
Setiap blok memori dapat menempati lebih dari satu kemungkinan nomor line (dapat menggunakan line yang kosong), sehingga thrashing dapat terkecil
Jumlah tag lebih sedikit (dibanding model associative), sehingga jalur untuk melakukan perbandingan tag lebih sederhana
Algoritma Penggantian (Replacement Algorithm)
Replacement Algorithm adalah algoritma yang digunakan untuk memilih blok data mana yang ada di cache yang dapat diganti dengan blok data baru.
Pada Direct mapping tidak memerlukan algoritma dan mapping pasti terjadi karena tidak ada alternative lain. Sedangkan pada Associative dan Set Associative Mapping, algoritma diimplementasi dengan H/W (supaya cepat) dan jenis algoritmanya yaitu : Least Recently Used (LRU), First in First out (FIFO), Least Frequently Used (LFU), dan Random.
1. Least Recently Used (LRU)
Blok yang diganti adalah blok yang paling lama di cache dan tidak digunakan
Kelebihan :
Paling efektif
Mempunyai hit ratio tinggi sehingga data yang digunakan saja yang ditaruh di cache
Paling mudah diimplementasikan pada two-way set associative mapping
Contoh :
Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan pengaksesan data adalah
10
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)
2. First in First Out (FIFO)
Blok yang diganti adalah blok yang paling awal berada di cache
Contoh :
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)
3. Least Frequency Used (LFU)
Blok yang paling jarang digunakan diganti
Setiap baris mempunyai counter
Contoh :
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 ?
11
Jawaban : a (nilai counter a sama dengan yang lain, tetapi karena a datang paling awal maka a berada pada baris paling awal) karena FIFO
B (paling lama tidak diakses) karena LRU
4. Random
Penggantian blok dilakukan secara acak
VI. Kelebihan dan Kekurangan Cache
Dari segi biaya, makin besar ukuran maka makin mahal.
Makin besar ukuran maka makin banyak jumlah gerbang yang digunakan untuk pengalamatan sehingga butuh waktu akses lebih lama (performansi menurun).
Area chip/board yang tersedia terbatas
Mempercepat proses pengambilan data dan instruksi untuk CPU
VII. Perkembangan Teknologi
Dimulai dari Intel 80486(Intel 80386 masih belum menggunakan cache) perkembangan cache semakin pesat. Berikut perkembangan teknologi cache di Intel :
Intel 80486
Single on-chip
Ukuran 8 kB
Ukuran line 16 byte
Four way set associative
Pentium (semua versi) – 2 buah on chip cache L1
Untuk data dan instruksi
Pentium 4
L1 cache12
Ukuran 8 kB
Ukuran line 64 byte
Four way set associative
L2 cache
Feeding both L1 caches
Ukuran 8 kB
Ukuran line 64 byte
way set associative
Perkembangan prosesor saat ini sudah terintegrasi L3, setelah dual core Pentium 4 L3 mulai digunakan hingga ke processor intel i3,i5,i7 sudah support L3yaitu para processor yang mempunyai inti (core) lebih dari satu.Pada tahun 2008, intel mengeluarkan Intel Atom Processor 230 yang masih menggunakan memory cache L1 dan L2 yang memiliki kapasitas 512 KB.
Selanjutnya, pada Tahun 2011 Intel mengeluarkan Proseccor intel i7 yangsudah terintegrasi L3 dengan kapasitas hingga 6MB yang dikenal dengan Intel SmartCache.
13
Di tahun 2012 ini, intel kembali mengeluarkan Intel Core i7-3920XMProcessor Extreme Edition yang memiliki Cache memory hingga 8MB.
14