Pembentukan Cache

 Nama    : Moch Wahyu Afriawan

NBI        : 1461900006

Kelas      : Arsitektur dan Organisasi Komputer


PEMBENTUKAN CACHE

    Mungkin bagi kalian Cache adalah hal yang sangat mengganggu karena membuat handphone atau perangkat aktif kalian menjadi penuh, namun apakah kalian tahu apakah itu Cache ? Apa fungsi Cache dalam perangkat aktif ? Atau kah hanya sebuah beban pada perangkat aktif ? Marii kita pelajari!

     Jadi Cache dapat diartikan sebagai sebuah kegiatan dimana kamu menggunakan kembali data dari permintaan sebelumnya dengan tujuan mempercepat permintaan di waktu yang akan datang. Dan salah satu fungsi dari Cache yaitu untuk mempercepat akses data pada komputer karena Cache menyimpan data maupun informasi yang telah diakses oleh buffer sehingga dapat meringankan kinerja processor, meringankan kinerja memori, dan menjembatani perbedaan kecepatan antara memori utama dan CPU.

    Lalu selanjutnya kita pelajari mengenai faktor-faktor pembentukan Cache, Antara lain :

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 :

·         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.

·         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

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

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

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

4.       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.

5.      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.

6.       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 disebutunified 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.


    Jadi Kesimpulannya cache memory itu sama fungsinya yang menyebabkan perbedaan hanyalah pada tempat, cara kerja dan kecepatan secara spesifik.

 –Keuntungan Direct Mapping:

•Mudah dan murah diimplementasikan.

•Mudah untuk menentukan letak salinan data main memory pada cache. 

 –Kerugian:

•Setiap blok main memory hanya dipetakan pada 1 line saja.

•terkait dengan sifat lokal pada main memory, sangat mungkin mengakses blok yang  dipetakan pada line yang sama pada cache. Blok seperti ini akanmenyebabkan seringnya sapu masuk dan keluar data ke/dari cache, sehingga hitratio mengecil. Hit ratio adalah perbandingan antara jumlah ditemukannya data pada cache dengan jumlah usaha mengakses cache.

Komentar

Postingan populer dari blog ini

Tutorial Mikrokontroler dengan Bahasa Assembly

Pandemi 2020 Universitas 17 Agustus 1945