Makala h Cache

18
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. 1

Transcript of Makala h Cache

Page 1: Makala h Cache

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

Page 2: Makala h Cache

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

Page 3: Makala h Cache

(-) 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

Page 4: Makala h Cache

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

Page 5: Makala h Cache

Saat terjadi cache hit, kondisi buffer disable karena tidak perlu akses ke system bus.

5

Page 6: Makala h Cache

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

Page 7: Makala h Cache

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

Page 8: Makala h Cache

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

Page 9: Makala h Cache

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

Page 10: Makala h Cache

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

Page 11: Makala h Cache

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

Page 12: Makala h Cache

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

Page 13: Makala h Cache

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

Page 14: Makala h Cache

Di tahun 2012 ini, intel kembali mengeluarkan Intel Core i7-3920XMProcessor Extreme Edition yang memiliki Cache memory hingga 8MB.

14