CACHE MEMORY

1. Definisi Cache Memory
Memori utama yang digunakan sisterm komputer pada awalnya dirasakan masih lambat kerjanya dibandingkan dengan kinerja CPU, sehingga perlu dibuat sebuah memori yang dapat membantu kerja memori utama tersebut, sebagai perbandingan waktu akses memori cache lebih cepat 5-10 kali dibandingkan memori utama. Cache memory adalah memori yang memiliki kecepatan sangat tinggi yang digunakan sebagai perantara antara RAM dan CPU. Memori ini mempunyai kecepatan yang lebih tinggi daripada RAM. Memori ini digunakan untuk menjembatani perbedaan kecepatan CPU yang sangat tinggi dengan kecepatan RAM yang jauh lebih rendah. Jika processor membutuhkan suatu data, pertama-tama ia akan mencarinya pada cache. Jika data ditemukan, processor akan langsung membacanya dengan delay yang sangat kecil. Tetapi jika data tidak ditemukan, processor akan mencarinya pada RAM. Cache memori ada dua macam, yaitu
o Cache memori yang terdapat pada internal processor, cache memory jenis ini kecepatan aksesnya sangat tinggi dan harganya sangat mahal. Hal ini bisa terlihat pada processor yang berharga mahal seperti P4, P3, AMD-Athlon, dll. Semakin tinggi kapasitas L1,L2 cache memori maka semakin mahal dan semakin cepat processor.
o Cache memori yang terdapat di luar processor, yaitu berada pada motherboard, memori jenis ini kecepatan aksesnya sangat tinggi, meskipun tidak secepat cache memori jenis pertama (yang ada pada internal processor). Semakin besar kapasitasnya maka semakin mahal dan cepat. Hal ini bisa kita lihat pada motherboard dengan beraneka ragam kapasitas cache memori, yaitu 256 kb, 512 kb, 1 Mb, 2 Mb, dll.

Cache memori biasanya mempunyai beberapa level yang menunjukkan tingkat kedekatannya dengan microprocessor. Contoh, L1 cache ada pada chip yang sama dengan microprocessor (built-in), sedangkan L2 cache adalah cache memory yang merupakan chip tersendiri yang terpisah dari microprocessor.


2. Elemen Rancangan
1. Ukuran Cache
Semakin besar kapasitas cache tidak berarti semakin cepat prosesnya, dengan ukuran besar maka akan terlalu banyak gate pengalamatannya sehingga akan memperlambat proses. Kita bisa melihat beberapa merek processor, misalnya AMD mengeluarkan processor K5 dan K6 dengan cache yang besar (1 MB) tetapi kinerjanya tidak bagus. Kemudian Intel pernah mengeluarkan processor tanpa cache untuk alas an harga yang murah, yaitu seri Intel Celeron pada tahun 1998-an hasil kinerjanya sangat buruk terutama untuk operasi data besar, floating point, dan 3D. Karena kinerja cache sangat sensitif terhadap sifat beban kerja, maka tidaklah mungkin untuk mencapai ukuran cache yang optimum. Sejumlah penelitian telah menganjurkan bahwa ukuran cache yang ideal adalah antara 1 KB dan 512 KB.

2. Ukuran Blok
Adanya sifat lokalitas referensi menyebabkan nilai ukuran blok sangatlah penting. Apabila blok berukuran besar ditransfer ke cache akan menyebabkan hit ratio mengalami penurunan karena banyaknya data yang dikirim di sekitar referensi. Tetapi bila terlalu kecil, dimungkinkan memori yang akan dibutuhkan CPU tidak tercakup. Apabila blok berukuran besar ditransfer ke cache, maka akan terjadi :
o Blok-blok yang berukuran lebih besar mengurangi jumlah blok yang menempati cache. Karena setiap pengambilan blok menindih isi cache yang lama, maka sejumlah kecil blok akan menyebabkan data menjadi tertindih setelah blok itu diambil.
o Dengan meningkatnya ukuran blok maka jarak setiap word tambahan menjadi lebih jauh dari word yang diminta, sehingga menjadi lebih kecil kemungkinannya digunakan dengan cepat.

Hubungan antara ukuran blok dan hit ratio sangat rumit untuk dirumuskan, tergantung pada karakteristik lokalitas programnya dan tidak terdapat nilai optimum yang pasti telah ditemukan. Ukuran antara 4 hingga 8 satuan yang dapat dialamati (word atau byte) cukup beralasan untuk mendekati nilai optimum.

3. Mapping (Pemetaan)
Saluran cache lebih sedikit dibandingkan dengan blok memori utama sehingga diperlukan algoritma untuk pemetaan blok-blok memori utama ke dalam saluran cache. Selain itu, diperlukan juga alat untuk menentukan blok memori utama mana yang sedang memakai saluran cache. Pemilihan fungsi pemetaan akan menentukan bentuk organisasi cache. Terdapat tiga metode yang digunakan yaitu
1. Pemetaan Langsung (Direct Mapping)
Pemetaan langsung adalah teknik yang paling sederhana, yaitu teknik ini memetakan blok memori utama hanya ke sebuah saluran cache saja. Jika suatu block ada di cache, maka tempatnya sudah tertentu. Keuntungan dari direct mapping adalah sederhana dan murah. Sedangkan kerugian dari direct mapping adalah suatu blok memiliki lokasi yang tetap (jika program mengakses 2 blok yang di map ke line yang sama secara berulang-ulang, maka cache-miss sangat tinggi).
2. Pemetaan Asosiatif (Associative Mapping)
Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk dimuatkan ke sembarang saluran cache. Dengan pemetaan assosiatif, terdapat fleksibilitas penggantian blok ketika blok baru dibaca ke dalam cache. Kekurangan pemetaan asosiatif yang utama adalah kompleksitas rangkaian yang diperlukan untuk menguji tag seluruh saluran cache secara parallel, sehingga pencarian data di cache menjadi lama.
3. Pemetaan Asosiatif Set (Set Associative Mapping)
Pada pemetaan ini, cache dibagi dalam sejumlah sets. Setiap set berisi sejumlah line. Pemetaan asosiatif set memanfaatkan kelebihan-kelebihan pendekatan pemetaan langsung dan pemetaan asosiatif.

3. Algoritma Penggantian
Algoritma penggantian adalah suatu mekanisme pergantian blok-blok dalam memori cache yang lama dengan data baru. Dalam pemetaan langsung tidak diperlukan algoritma ini, namun dalam pemetaan assosiatif dan asosiatif set, algoritma ini mempunyai peranan penting untuk meningkatkan kinerja cache memori.
Banyak algoritma penggantian yang telah dikembangkan, algoritma yang paling efektif adalah Least Recently Used (LRU), yaitu mengganti blok data yang terlama berada dalam cache dan tidak memiliki referensi. Algoritma lainnya adalah First In First Out (FIFO), yaitu mengganti blok data yang awal masuk. Kemudian Least Frequently Used (LFU) adalah mengganti blok data yang mempunyai referensi paling sedikit. Teknik lain adalah algoritma Random, yaitu penggantian tidak berdasarkan pemakaian datanya, melainkan berdasar slot dari beberapa slot kandidat secara acak.
3. Write Policy
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.
Teknik yang dikenal diantaranya, write through, yaitu operasi penulisan melibatkan data pada memori utama dan sekaligus pada cache memori sehingga data selalu valid. Kekurangan teknik ini adalah menjadikan lalu lintas data ke memori utama dan cache sangat tinggi sehingga mengurangi kinerja system, bahkan bisa terjadi hang.
Teknik lainyya adalah write back, yaitu teknik meminmasi penulisan dengan cara penulisan pada cache saja. Pada saat akan terjadi penggantian blok data cache maka baru diadakan penulisan pada memori utama. Masalah yang timbul adalah manakala dat di memori utama belum di-update telah diakses modul I/O sehingga data di memori utama tidak valid.
Penggunaan multi cache terutama untuk multi prosesor akan menjumpai masalah yang lebih kompleks. Masalah validasi data tidak hanya antara cache dan memori utama saja, namun antar cache juga harus diperhatikan. Pendekatan penyelesaian masalah yang dapat dilakukan adalah dengan :
§ Bus Watching with Write Through
Yaitu setiap cache controller akan memonitoring bus alamat untuk mendeteksi adanya operasi tulis. Apabila ada operasi tulis di alamat yang datanya digunakan bersama maka cache controller akan menginvalidasi data cache-nya.
§ Hardware Transparency
Yaitu adanya perangkat keras tambahan yang menjamin semua updating data memori utama melalui cache direfleksikan pada seluruh cache yang ada.
§ Non Cacheable Memory
Yaitu hanya bagian memori utama tertentu yang digunakan secara bersama. Apabila ada pengaksesan data yang tidak di-share merupakan kegagalan cache.
3. Jumlah Cache
Letak cache terbagi menjadi dua macam yaitu di dalam keping processor yang disebut on chip cache atau cache internal, dan yang terletak di luar keping processor yang disebut off chip cache atau cache eksternal. Cache internal diletakkan dalam processor sehingga tidak memerlukan bus eksternal, akibatnya waktu aksesnya akan cepat sekali, apalagi panjang lintasan internal bus processor sangat pendek untuk mengakses cache internal. Cache internal selanjutnya disebut cache level 1 (L1). Cache eksternal berada diluar keping chip prosesor yang diakses melalui bus eksternal. Cache eksternal masih diperlukan untuk mengantisipasi permintaan akses alamat yang belum tercakup dalam cache internal. Cache eksternal lalu disebute dengan cache level 2 (L2).
Terdapat perkembangan untuk memisah cache data dan cache instruksi yang disebut unified cache yang memiliki keuntungan, yaitu memiliki hit rate yang tinggi karena telah dibedakan antara informasi data dan informasi instruksi. Selain itu hanya sebuah cache saja yang perlu dirancang dan diimplementasikan. Namun terdapat kecenderungan untuk menggunakan split cache, terutama pada mesin-mesin superscalar seperti Pentium dan PowerPC yang menekankan pada parallel proses dan perkiraan-perkiraan eksekusi yang akan terjadi. Kelebihan utama split cache adalah mengutangi persaingan antara prosesor instruksi dan unit eksekusi untuk mendapatkan cache, yang mana hal ini sangat utama bagi perancangan prosesor-prosesor pipelining.
sumber
https://ae89crypt5.wordpress.com/2011/08/24/cache-memory/

http://mysuhanastories.wordpress.com/tag/cache-memory/

1 komentar:

klikartikel mengatakan...

Thanks gan infonya

Posting Komentar