Tembolok (komputer)

komponen komputasi yang menyimpan data secara transparan sehingga permintaan di masa mendatang untuk data tersebut dapat dilayani lebih cepat

Tembolok (Inggris: cache) dalam teknologi informasi adalah mekanisme penyimpanan data sekunder berkecepatan tinggi yang digunakan untuk menyimpan data / instruksi yang sering diakses. Memori cache dimaksudkan untuk memberi kecepatan memori yang mendekati memori yang paling cepat yang bisa diperoleh, dan pada waktu yang sama menyediakan kapasitas memori yang besar dengan harga yang lebih murah dari jenis-jenis memori semikonduktor.

Konsep memory cache

Terdapat memori utama yang lebih besar dan lebih lambat bersama-sama dengan memori cache lebih kecil, dan lebih cepat. Cache berisi suatu salinan bagian dari memori utama. Ketika prosesor mencoba untuk membaca memori word, pemeriksaan dilakukan untuk menentukan jika word terdapat pada cache. Jika demekian, word akan dikirimkan ke prosesor. jika bukan, blok memori utama, yang terdiri dari beberapa jumlah word yang tetap, akan dibaca ke dalam cache dan kemudian word akan dikirimkan ke prosesor. oleh karena fenomena penempatan acuan, ada kemungkinan bahwa akan jadi acuan berikutnya untuk lokasi memori yang sama itu atau ke word lain pada blok. (menurut alamat wayansudana.files.wordpress.com/2008/04/cache-memory.pdf penertian memory cache adalah memory berbasis SRAM berukuran kecil dan berkecepatan tinggi yang dikendalikan secara otomatis oleh hardware)

Dua jenis cache yang sering digunakan dalam dunia komputer adalah memory caching dan disk caching. Implementasinya dapat berupa sebuah bagian khusus dari memori utama komputer atau sebuah media penyimpanan data khusus yang berkecepatan tinggi.

Implementasi memory caching sering disebut sebagai memory cache dan tersusun dari memori komputer jenis SDRAM yang berkecepatan tinggi. Sedangkan implementasi disk caching menggunakan sebagian dari memori komputer.

Stuktur sistem cache

Memori utama terdiri dari sampai dengan 2n word beralamat, dengan masing-masing word mempunyai n-bit alamat yang unik. Untuk keperluan pemetaan, memori ini dinggap terdiri dari sejumlah blok yang mempunyai panjang K word masing-masing bloknya. Dengan demikian, ada M = 2n/K blok. Cache terdiri dari C buah baris yang masing-masing mengandung K word, dan banyaknya baris jauh lebih sedikit dibandingkan dengan banyaknya blok memori utama (C << M). Di setiap saat, beberapa subset blok memori berada pada baris dalam cache. jika sebuah word di dalam blok memori dibaca, blok itu ditransfer ke salah satu baris cache. karena terdapat lebih banyak blok bila dibanding dengan baris, maka setiap baris tidak dapat menjadi unik dan permanen untuk dipersempahkan ke blok tertentu mana yang disimpan. Tag biasanya merupakan bagian dari alamat memori utama.

Elemen rancangan cache

Elemen-elemen penting dari rancangan memory cache adalah sebagai berikut:

  • Ukuran cache, disesuaikan dengan kebutuhan untuk membantu kerja memori. Semakin besar ukuran cache semakin lambat karena semakin banyak jumlah gerbang dalam pengalamatan cache.
  • Fungsi Pemetaan (Mapping), terdiri dari Langsung, Asosiatif, Asosiatif Set.
  • Algoritma Penggantian, terdiri dari Least Recently Used (LRU), First in First Out (FIFO), Least Frequently Used (LFU), Acak. Algoritma penggantian digunakan untuk menentukan blok mana yang harus dikeluarkan dari cache untuk menyiapkan tempat bagi blok baru. Ada 2 metoda algoritma penggantian yaitu Write-through dan Write-back
  • Line size, Jumlah cache, Satu atau dua dua tingkat, kesatuan atau terpisah

Istilah penting yang berhubungan

  • Cache hit, jika data yang diminta oleh unit yang lebih tinggi dan ada dalam cache disebut "hit". Permintaan dapat dilayani dengan cepat. Maksud urutan unit dari rendah hingga tinggi yaitu: Streamer - Hardisk Memori - Second Level - First level - CPU cache.
  • Cache miss, bila data yang diminta tidak ada dalam cache, harus diambil dari unit dibawahnya yang cukup memakan waktu. Ini disebut miss (gagal)
  • Burst mode, dalam modus cepat ini cache mengambil banyak data sekaligus dari unit dibawahnya. Ia mengambil lebih dari yang dibutuhkan dengan asumsi, data yang diminta berikutnya letaknya berdekatan.
  • LRU (Least Recently Used) adalah algoritma penggantian cache.
  • COAST, Cache on the stick adalah bentuk khusus L2, yang dapat diganti-ganti seperti RAM dan ditempatkan pada modul.
  • DRAM, memori dinamik (''Dynamic Random Access Memory) adalah bentuk yang paling umum. DRAM hanya menggunakan sebuah kapasitor untuk menyimpan, sehingga kecil dan murah untuk kapasitas besar. Kekurangannya: kecepatannya tidak begitu tinggi.
  • SRAM, memori statik (Static RAM) ini menggunakan sakelar elektronik (flip-flop) untuk menyimpan. secara teknis flip-flop pada RAM lebih rumit dari kapasitor pada DRAM. Karena lebih cepat, SRAM biasanya digunakan untuk cache L1 atau L2.
  • SDRAM, memori dinamik tersinkronisasi (Synchronous DRAM) merupakan perkembangan lebih lanjut dari DRAM. Akses pada memori disinkronkan dengan frekuensi sistim prosesor sehingga menghemat waktu. Pada motherboard modern, SDRAM berfungsi sebagai pengganti langsung DRAM.
  • First level cache (L1), ini tingkat cache teratas dalam hirarki, dengan kapasitas memori terkecil, termahal dan tercepat.
  • Second level cache (L2), cache level dua ini memiliki kapasitas lebih besar dari L1, tetapi lebih lambat dan murah. Cache L2 masih lebih cepat dibandingkan dengan RAM.
  • Write back (WB), cache digunakan tidak hanya saat membaca, tetapi juga dalam proses menulis.
  • Write through (WT), mementingkan keamanan: cache hanya digunakan saat membaca, sedangkan untuk menulis ditunggu hingga memori yang dituju selesai menulis.