CACHE MEMORY

CACHE MEMORY


1. Definisi Cache Memory



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 adalah memory berukuran kecil yang sifatnya temporary (sementara). Cache umumnya terbagi menjadi beberapa jenis, seperti L1 cache, L2 cache dan L3 cache. Walaupun ukuran filenya sangat kecil, namun keceptannya sangat tinggi. Dalam terminologi hardware, istilah ini biasanya merujuk pada memory berkecepatan tinggi yang menjembatani aliran data antara processor dengan memory utama (RAM) yang biasanya memiliki kecepatan jauh lebih rendah.


2. Kinerja Cache



Memory cache adalah memori penyimpanan sementara yang mengambil sebagian ruang dari RAM. Pada saat user melakukan request melalui browser atau aplikasi, processor akan mengecek ketersediaan data di memory cache lebih dulu. Jika user baru pertama kali melakukan akses, tentunya belum ada data di cache. Maka dari itu, processor akan mengakses sumber utama/database secara langsung. Saat mengambil data dari sumber utama, processor juga akan mencatatnya di cache. Jadi pada akses selanjutnya, processor bisa langsung mengambil data dari cache.

 

3. Penggunaan Asosiasi Untuk Mengurangi Tingkat Kesalahan


salah satu unsur interpretasi citra penginderaan jauh. Asosiasi merupakan keterkaitan antara satu obyek dengan obyek lainnya. Dengan adanya keterkaitan tersebut, kemudian obyek utama dalam citra dapat dikenali dan diinterpretasi kan. Berdasarkan pilihan jawaban, contoh penggunaan unsur asosiasi untuk mengidentifikasi suatu obyek pada citra adalah lapangan sepakbola selalu memiliki mistar gawang.
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.
  • Memungkinkan blok diletakkan di sebarang line yang sedang tidak terpakai.
  • Diharapkan akan mengatasi kelemahan utama Direct Mapping.
  • Harus menguji setiap cache untuk menemukan blok yang diinginkan.
  • Mengecek setiap tag pada line
  • Sangat lambat untuk cache berukuran besar.
  • Nomor line menjadi tidak berarti. Address main memory dibagi menjadi 2 field saja, yaitu tag dan word offset.
  • Melakukan pencarian ke semua tag untuk menemukan blok.
  • Cache dibagi menjadi 2 bagian yaitu : lines dalam SRAM dan tag dalam associative memory

  • Keuntungan Associative Mapping : Cepat dan fleksibel.
  • Kerugian Associative Mapping : Biaya Implementasi, misalnya untuk cache ukuran 8 kbyte dibutuhkan 1024 x 17 bit associative memory untuk menyimpan tag identifier.

4. Penggunaan cache bertingkat hierarki untuk mengurangi kesalahan penalti


Pada sistem komputer terdapat berbagai jenis memori, yang berdasarkan kecepatan dan posisi relatifnya terhadap prosesor, bisa disusun secara hirarkis. Puncak hirarki sistem “memori” komputer adalah register yang berada dalam chip prosesor dan merupakan bagian integral dari prosesor itu sendiri. Isi register-register itu bisa dibaca dan ditulisi dalam satu siklus detak. Level hirarki berikutnya adalah memori cache internal (on-chip). Kapasitas cache internal yang sering disebut sebagai cache level pertama ini umumnya sekitar 8 KB. Waktu yang diperlukan untuk mengakses data atau instruksi dalam cache internal ini sedikit lebih lama dibandingkan register, yakni beberapa siklus detak.
Prosesor-prosesor mutakhir dilengkapi dengan cache level kedua yang kapasitasnya lebih besar dan ditempatkan di luar chip. Prosesor P6 (Pentium Pro), misalnya, cache level pertamanya berkapasitas 8KB untuk data dan 8 KB untuk instruksi. Cache level keduanya berkapasitas 256 KB, yang merupakan keping terpisah tetapi dikemas menjadi satu dengan prosesornya. Selama program dieksekusi, sistem komputer secara terus menerus memindah-mindahkan data dan instruksi ke berbagai tingkat dalam hirarki sistem “memori”.
Data dipindahkan menuju ke puncak hirarki bila diakses oleh prosesor, dan dikembalikan lagi ke hirarki yang lebih rendah bila sudah tidak diperlukan lagi. Data-data tersebut ditransfer dalam satuan-satuan yang disebut “blok”; satu “blok” dalam cache disebut satu “baris”. Umumnya, data yang berada pada suatu level hirarki merupakan bagian dari data yang disimpan pada level di bawahnya.
Program komputer pada umumnya tidak mengakses memori secara acak. Besar kecenderungannya bahwa bila program mengakses suatu word maka dalam waktu dekat word tersebut akan diakses lagi. Hal ini dikenal sebagai prinsip lokalitas temporal. Juga besar kecenderungannya bahwa dalam waktu dekat word yang berada di dekat word yang baru diakses akan diakses juga. Yang terakhir ini dikenal sebagai prinsip lokalitas spatial. Karena sifat lokalitas temporal, maka harus diperhatikan word yang telah ada dalam cache, dan karena sifat lokalitas spatial maka perlu diperhatikan kemungkinan memindahkan beberapa word yang berdekatan sekaligus.


Hirarki cache, atau cache multi-level , mengacu pada arsitektur memori yang menggunakan hierarki penyimpanan memori berdasarkan berbagai kecepatan akses ke data cache. Data yang sangat diminta disimpan dalam cache di penyimpanan memori akses berkecepatan tinggi, memungkinkan akses yang lebih cepat oleh inti unit pemrosesan pusat (CPU).
Hirarki cache adalah bentuk dan bagian dari hierarki memori dan dapat dianggap sebagai bentuk penyimpanan berjenjang .Desain ini dimaksudkan untuk memungkinkan inti CPU memproses lebih cepat meskipun latensi memori dari akses memori utama . Mengakses memori utama dapat bertindak sebagai penghambat kinerja inti CPU saat CPU menunggu data, sementara membuat semua memori utama berkecepatan tinggi mungkin sangat mahal.Cache berkecepatan tinggi adalah kompromi yang memungkinkan akses berkecepatan tinggi ke data yang paling sering digunakan oleh CPU, memungkinkan clock CPU yang lebih cepat .

5. Pengoptimalan perangkat lunak untuk meningkatkan efektivitas cache

level tambahan dapat ditambahkan secara efektif ke hierarki dalam perangkat lunak. Sebagian dari memori utama dapat digunakan sebagai buffer untuk menyimpan data sementara yang akan dibacakan ke disk. Teknik seperti kadang-kadang itudisebut sebagai cache disk, meningkatkan kinerja dengan dua cara:
  1. Penulisan disk dikelompokkan. Alih-alih banyak transfer data kecil, kami memiliki beberapa transfer data yang besar. Ini meningkatkan kinerja disk dan meminimalkan keterlibatan prosesor.
  2. Beberapa data yang ditujukan untuk ditulis dapat dirujuk oleh program sebelum dump berikutnya ke disk. Dalam hal ini, data diambil dengan cepat dari cache perangkat lunak daripada perlahan-lahan dari disk.
Lampiran diatas memberikan gambaran umum tentang parameter desain cache dan melaporkan beberapa hasil umum. Kami kadang-kadang merujuk pada penggunaan cache dalam komputasi kinerja tinggi (HPC). HPC berurusan dengan superkomputer dan perangkat lunaknya, terutama untuk aplikasi ilmiah yang melibatkan sejumlah besar data, komputasi vektor dan matriks, dan penggunaan algoritma paralel. Desain cache untuk HPC sangat berbeda dengan untuk platform dan aplikasi perangkat keras lainnya. Memang, banyak peneliti telah menemukan bahwa aplikasi HPC berkinerja buruk pada arsitektur komputer yang menggunakan cache [BAIL93]. Peneliti lain sejak itu menunjukkan bahwa hierarki cache dapat berguna dalam meningkatkan kinerja jika perangkat lunak aplikasi disetel untuk mengeksploitasi cache [WANG99, PRES01].



Komentar