Saturday, March 24, 2012

CACHE MEMORY

  1. Definisi Cache Memory
Memori utama yang digunakan sisterm komputerpada awalnya dirasakan masih lambat kerjanya dibandingkan dengan kinerja CPU,sehingga perlu dibuat sebuah memori yang dapat membantu kerja memori utamatersebut, sebagai perbandingan waktu akses memori cache lebih cepat 5-10 kalidibandingkan memori utama. Cache memory adalah memori yang memiliki kecepatansangat tinggi yang digunakan sebagai perantara antara RAM dan CPU. Memori inimempunyai kecepatan yang lebih tinggi daripada RAM. Memori ini digunakan untukmenjembatani perbedaan kecepatan CPU yang sangat tinggi dengan kecepatan RAMyang jauh lebih rendah. Jika processor membutuhkan suatu data, pertama-tama iaakan mencarinya pada cache. Jika data ditemukan, processor akan langsungmembacanya 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 terdapatpada internal processor, cache memory jenis ini kecepatan aksesnya sangattinggi dan harganya sangat mahal. Hal ini bisa terlihat pada processor yangberharga mahal seperti P4, P3, AMD-Athlon, dll. Semakin tinggi kapasitas L1,L2cache memori maka semakin mahal dan semakin cepat processor.
o   Cache memori yang terdapatdi luar processor, yaitu berada pada motherboard, memori jenis ini kecepatanaksesnya sangat tinggi, meskipun tidak secepat cache memori jenis pertama (yangada pada internal processor). Semakin besar kapasitasnya maka semakin mahal dancepat. Hal ini bisa kita lihat pada motherboard dengan beraneka ragam kapasitascache memori, yaitu 256 kb, 512 kb, 1 Mb, 2 Mb, dll.
Cache memori biasanya mempunyai beberapalevel yang menunjukkan tingkat kedekatannya dengan microprocessor. Contoh, L1cache ada pada chip yang sama dengan microprocessor (built-in), sedangkan L2cache adalah cache memory yang merupakan chip tersendiri yang terpisah darimicroprocessor.

2.      Sistem Memory Komputer
            Untukmempelajari sistem memori secara keseluruhan, harus mengetahui karakteristikkuncinya. Karakteristik penting sistem memori dalam tabel berikut :
Dilihat dari lokasi, memori dibedakanmenjadi beberapa jenis, yaitu register, memori internal dan memori eksternal.Register berada di dalam chip prosesor, memori ini diakses langsung olehprosesor dalam menjalankan operasinya. Register digunakan sebagai memorisementara dalam perhitungan maupun pengolahan data dalam prosesor.Memoriinternal adalah memori yang berada diluar chip prosesor namun mengaksesannyalangsung oleh prosesor. Memori internal dibedakan menjadi memori utama dancache memori.Memori eksternal dapat diakses oleh prosesor melalui piranti I/O.
3.      ElemenRancangan Ukuran Cache
Semakin besar kapasitas cache tidak berartisemakin cepat prosesnya, dengan ukuran besar maka akan terlalu banyak gatepengalamatannya sehingga akan memperlambat proses. Kita bisa melihat beberapamerek processor, misalnya AMD mengeluarkan processor K5 dan K6 dengan cacheyang besar (1 MB) tetapi kinerjanya tidak bagus. Kemudian Intel pernahmengeluarkan processor tanpa cache untuk alas an harga yang murah, yaitu seriIntel Celeron pada tahun 1998-an hasil kinerjanya sangat buruk terutama untukoperasi data besar, floating point, dan 3D. Karena kinerja cache sangatsensitif terhadap sifat beban kerja, maka tidaklah mungkin untuk mencapaiukuran cache yang optimum. Sejumlah penelitian telah menganjurkan bahwaukuran cache yang ideal adalah antara 1 KB dan 512 KB.
4.      UkuranBlok
Adanya sifat lokalitas referensi menyebabkannilai ukuran blok sangatlah penting. Apabila blok berukuran besar ditransfer kecache akan menyebabkan hit ratio mengalami penurunan karena banyaknya data yangdikirim di sekitar referensi. Tetapi bila terlalu kecil, dimungkinkan memoriyang akan dibutuhkan CPU tidak tercakup. Apabila blok berukuran besar ditransferke 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 ratiosangat rumit untuk dirumuskan, tergantung pada karakteristik lokalitasprogramnya dan tidak terdapat nilai optimum yang pasti telah ditemukan. Ukuranantara 4 hingga 8 satuan yang dapat dialamati (word atau byte) cukup beralasanuntuk mendekati nilai optimum.
5.      Mapping(Pemetaan)
Saluran cache lebih sedikit dibandingkandengan blok memori utama sehingga diperlukan algoritma untuk pemetaan blok-blokmemori utama ke dalam saluran cache. Selain itu, diperlukan juga alat untukmenentukan blok memori utama mana yang sedang memakai saluran cache. Pemilihanfungsi pemetaan akan menentukan bentuk organisasi cache. Terdapat tiga metodeyang digunakan yaitu
    1. Pemetaan Langsung (Direct Mapping)
Pemetaan langsung adalah teknik yang palingsederhana, yaitu teknik ini memetakan blok memori utama hanya ke sebuah salurancache saja. Jika suatu block ada di cache, maka tempatnya sudah tertentu.Keuntungan dari direct mapping adalah sederhana dan murah. Sedangkan kerugiandari direct mapping adalah suatu blok memiliki lokasi yang tetap (jika programmengakses 2 blok yang di map ke line yang sama secara berulang-ulang, makacache-miss sangat tinggi).



 










    1. Pemetaan Asosiatif (Associative Mapping)
Pemetaan asosiatif mengatasi kekuranganpemetaan langsung dengan cara mengizinkan setiap blok memori utama untukdimuatkan ke sembarang saluran cache. Dengan pemetaan assosiatif, terdapatfleksibilitas penggantian blok ketika blok baru dibaca ke dalam cache.Kekurangan pemetaan asosiatif yang utama adalah kompleksitas rangkaian yangdiperlukan untuk menguji tag seluruh saluran cache secara parallel, sehinggapencarian data di cache menjadi lama.
    1. Pemetaan Asosiatif Set (Set Associative Mapping)
Pada pemetaan ini, cache dibagi dalamsejumlah sets. Setiap set berisi sejumlah line. Pemetaan asosiatif setmemanfaatkan kelebihan-kelebihan pendekatan pemetaan langsung dan pemetaanasosiatif.
6.      AlgoritmaPenggantian
Algoritma penggantian adalah suatu mekanismepergantian blok-blok dalam memori cache yang lama dengan data baru. Dalampemetaan langsung tidak diperlukan algoritma ini, namun dalam pemetaanassosiatif dan asosiatif set, algoritma ini mempunyai peranan penting untukmeningkatkan kinerja cache memori.
Banyak algoritma penggantian yang telahdikembangkan, algoritma yang paling efektif adalah Least Recently Used(LRU), yaitu mengganti blok data yang terlama berada dalam cache dan tidakmemiliki 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 berdasarkanpemakaian datanya, melainkan berdasar slot dari beberapa slot kandidat secaraacak.
 










7.      WritePolicy
Apabila suatu data telah diletakkan padacache maka sebelum ada penggantian harus dicek apakah data tersebut telahmengalami perubahan. Apabila telah berubah maka data pada memori utama harusdi-update. Masalah penulisan ini sangat kompleks, apalagi memori utama dapatdiakses langsung oleh modul I/O, yang memungkinkan data pada memori utamaberubah,lalu bagaimana dengan data yang telah dikirim pada cache? Tentunyaperbedaan ini menjadikan data tidak valid.
Teknik yang dikenal diantaranya, writethrough, yaitu operasi penulisan melibatkan data pada memori utama dansekaligus pada cache memori sehingga data selalu valid. Kekurangan teknik iniadalah menjadikan lalu lintas data ke memori utama dan cache sangat tinggisehingga mengurangi kinerja system, bahkan bisa terjadi hang.
Teknik lainyya adalah write back, yaituteknik meminmasi penulisan dengan cara penulisan pada cache saja. Pada saatakan terjadi penggantian blok data cache maka baru diadakan penulisan padamemori utama. Masalah yang timbul adalah manakala dat di memori utama belumdi-update telah diakses modul I/O sehingga data di memori utama tidak valid.
Penggunaan multi cache terutama untuk multiprosesor akan menjumpai masalah yang lebih kompleks. Masalah validasi datatidak hanya antara cache dan memori utama saja, namun antar cache juga harusdiperhatikan. Pendekatan penyelesaian masalah yang dapat dilakukan adalahdengan :
      • Bus Watching with Write Through
Yaitu setiap cache controller akanmemonitoring bus alamat untuk mendeteksi adanya operasi tulis. Apabila adaoperasi tulis di alamat yang datanya digunakan bersama maka cache controllerakan menginvalidasi data cache-nya.
      • Hardware Transparency
Yaitu adanya perangkat keras tambahan yangmenjamin semua updating data memori utama melalui cache direfleksikan padaseluruh cache yang ada.
      • Non Cacheable Memory
Yaitu hanya bagian memori utama tertentu yangdigunakan secara bersama. Apabila ada pengaksesan data yang tidak di-sharemerupakan kegagalan cache.
8.      JumlahCache
Letak cache terbagi menjadi dua macam yaitudi dalam keping processor yang disebut on chip cache atau cacheinternal, dan yang terletak di luar keping processor yang disebut off chipcache atau cache eksternal. Cache internal diletakkan dalam processorsehingga tidak memerlukan bus eksternal, akibatnya waktu aksesnya akan cepatsekali, apalagi panjang lintasan internal bus processor sangat pendek untukmengakses cache internal. Cache internal selanjutnya disebut cache level 1(L1). Cache eksternal berada diluar keping chip prosesor yang diakses melaluibus eksternal. Cache eksternal masih diperlukan untuk mengantisipasi permintaanakses alamat yang belum tercakup dalam cache internal. Cache eksternal laludisebute dengan cache level 2 (L2).
Terdapat perkembangan untuk memisah cachedata dan cache instruksi yang disebut unified cache yang memilikikeuntungan, yaitu memiliki hit rate yang tinggi karena telah dibedakan antarainformasi data dan informasi instruksi. Selain itu hanya sebuah cache saja yangperlu dirancang dan diimplementasikan. Namun terdapat kecenderungan untukmenggunakan split cache, terutama pada mesin-mesin superscalar sepertiPentium dan PowerPC yang menekankan pada parallel proses danperkiraan-perkiraan eksekusi yang akan terjadi. Kelebihan utama split cacheadalah mengutangi persaingan antara prosesor instruksi dan unit eksekusi untukmendapatkan cache, yang mana hal ini sangat utama bagi perancanganprosesor-prosesor pipelining.


No comments:

Post a Comment