Pengertian Memori Cache
Level Memori Cache
Transfer data tercepat kedua setelah L1 cache adalah L2 cache. Prosesor dapat mengambil data dari cache L2 yang terintegrasi (on-chip) lebih cepat dari pada cache L2 yang tidak terintegrasi. Kapasitas simpan datanya lebih besar dibandingkan L1 cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, bahkan 8 MB, tergantung jenis prosesornya. Kapasitas simpan data untuk L3 cache lebih besar lagi, bisa ratusan juta byte (ratusan mega byte).
Prioritas Penyimpanan Dan Pengambilan Data
Ketika data dibaca/ditulis di memori utama (RAM) oleh prosesor, salinan data beserta address-nya (yang diambil/ditulis di memori utama) disimpan juga di cache. Sewaktu prosesor memerlukan kembali data tersebut, prosesor akan mencari ke cache, tidak perlu lagi mencari di memori utama.
Jika isi cache penuh, data yang paling lama akan dibuang dan digantikan oleh data yang baru diproses oleh prosesor. Proses ini dapat menghemat waktu dalam proses mengakses data yang sama, dibandingkan jika prosesor berulang-ulang harus mencari data ke memori utama.
Secara logika, kapasitas cache memory yang lebih besar dapat membantu memperbaiki kinerja prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam proses mengakses data.
Cache beasal dari kata cash. Dari istilah tersebut cache
adalah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi
tersebut cache memori
adalah tempat menympan data sementara. Cara ini dimaksudkan untuk meningkatkan
transfer data dengan menyimpan data yang pernah diakses pada cache tersebut,
sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka
akses akan dapat dilakukan lebih cepat.Cache memori ini adalah memori tipe SDRAM yang memiliki
kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang
lebih mahal dari memori utama. Cache memori ini terletak antara register dan RAM (memori utama)
sehingga pemrosesan data tidak langsung mengacu pada memori utama.
Cache memori
ada tiga level yaitu L1,L2 dan L3. Cache memori level 1 (L1)
adalah cache memori yang terletak dalam prosesor (cache internal). Cache ini
memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang
mulai dari 8Kb, 64Kb dan 128Kb.Cache level 2 (L2) memiliki kapasitas yang lebih
besar yaitu berkisar antara 256Kb sampai dengan 2Mb. Namun cache L2 ini
memiliki kecepatan yang lebih rendah dari cache L1. Cache L2 terletak terpisah
dengan prosesor atau disebut dengan cache eksternal. Sedangkan cache level 3
hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya
dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari
cache L2 dari masing-masing inti prosesor.
Letak Cache Memory
L1 cache
terintegrasi dengan chip prosesor, artinya letak L1 cache sudah menyatu dengan
chip prosesor (berada di dalam keping prosesor). Sedangkan letak L2 cache, ada
yang menyatu dengan chip prosesor, ada pula yang terletak di luar chip
prosesor, yaitu di motherboard dekat dengan posisi dudukan prosesor. Pada era
prosesor intel 80486 atau sebelumnya, letak L2 cache kebanyakan berada di luar
chip prosesor. Chip cache terpisah dari prosesor, berdiri mandiri dekat chip
prosesor. Sejak era prosesor Intel Pentium, letak L2 cache ini sudah
terintegrasi dengan chip prosesor (menyatu dengan keping prosesor). Posisi L2
cache selalu terletak antara L1 cache dengan memori utama (RAM). Sedangkan L3
cache belum diimplementasikan secara umum pada semua jenis prosesor. Hanya
prosesor-prosesor tertentu yang memiliki L3 cache.
Cache memory
yang letaknya terpisah dengan prosesor disebut cache memory non integrated atau diskrit (diskrit artinya putus atau
terpisah). Cache memory yang letaknya menyatu dengan prosesor disebut cache
memory integrated, on-chip, atau on-die (integrated
artinya bersatu/menyatu/ tergabung, on-chip
artinya ada pada chip).
L1 cache (Level 1 cache) disebut pula dengan
istilah primary cache, first cache, atau level one cache. L2 cache disebut
dengan istilah secondary cache, second level cache, atau level two cache.
Kecepatan Cache Memory
Transfer data
dari L1 cache ke prosesor terjadi paling cepat dibandingkan L2 cache maupun L3
cache (bila ada). Kecepatannya mendekati kecepatan register. L1 cache ini
dikunci pada kecepatan yang sama pada prosesor. Secara fisik L1 cache tidak
bisa dilihat dengan mata telanjang. L1 cache adalah lokasi pertama yang diakses
oleh prosesor ketika mencari pasokan data. Kapasitas simpan datanya paling
kecil, antara puluhan hingga ribuan byte tergantung jenis prosesor. Pada
beberapa jenis prosesor pentium kapasitasnya 16 KB yang terbagi menjadi dua
bagian, yaitu 8 KB untuk menyimpan instruksi, dan 8 KB untuk menyimpan data.
Transfer data tercepat kedua setelah L1 cache adalah L2 cache. Prosesor dapat mengambil data dari cache L2 yang terintegrasi (on-chip) lebih cepat dari pada cache L2 yang tidak terintegrasi. Kapasitas simpan datanya lebih besar dibandingkan L1 cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, bahkan 8 MB, tergantung jenis prosesornya. Kapasitas simpan data untuk L3 cache lebih besar lagi, bisa ratusan juta byte (ratusan mega byte).
Prioritas Penyimpanan Dan Pengambilan Data
Dalam mekanisme
kerjanya, data yang akan diproses oleh prosesor, pertama kali dicari di L1
cache, bila tidak ada maka akan diambil dari L2 cache, kemudian dicari di L3
cache (bila ada). Jika tetap tidak ada, maka akan dicari di memori utama.
Pengambilan data di L2 cache hanya dilakukan bila di L1 cahe tidak ada.
Lebih jelasnya
proses baca tulis data yang dilakukan oleh prosesor ke memori utama dapat
dijelaskan sebagai berikut:
Ketika data dibaca/ditulis di memori utama (RAM) oleh prosesor, salinan data beserta address-nya (yang diambil/ditulis di memori utama) disimpan juga di cache. Sewaktu prosesor memerlukan kembali data tersebut, prosesor akan mencari ke cache, tidak perlu lagi mencari di memori utama.
Jika isi cache penuh, data yang paling lama akan dibuang dan digantikan oleh data yang baru diproses oleh prosesor. Proses ini dapat menghemat waktu dalam proses mengakses data yang sama, dibandingkan jika prosesor berulang-ulang harus mencari data ke memori utama.
Secara logika, kapasitas cache memory yang lebih besar dapat membantu memperbaiki kinerja prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam proses mengakses data.
Cara Kerja Memori Cache
Jika prosesor membutuhkan suatu data, pertama-tama ia akan
mencarinya pada cache. Jika data ditemukan, prosesor akan langsung membacanya
dengan delay yang sangat kecil. Tetapi jika data yang dicari tidak
ditemukan,prosesor akan mencarinya pada RAM yang kecepatannya lebih rendah.
Pada umumnya, cache dapat menyediakan data yang dibutuhkan oleh prosesor
sehingga pengaruh kerja RAM yang lambat dapat dikurangi. Dengan cara ini maka
memory bandwidth akan naik dan kerja prosesor menjadi lebih efisien. Selain itu
kapasitas memori cache yang semakin besar juga akan meningkatkan kecepatan
kerja komputer
secara keseluruhan.
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.
Struktur System 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
Struktur System 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 Pemetaan Langsung, Asosiatif, Asosiatif Set.Pemetaan
langsung merupakan teknik yang paling sederhana, yaitu memetakkan masing-masing
blok memori utama hanya ke sebuah saluran cache saja. Pemetaan asosiatif dapat
mengatasi kekurangan pemetaan langsung dengan cara mengizinkan setiap blok
memori utama untuk dimuatkan ke sembarang saluran cache.Hal ini menurut artikel
dari Yulisdin Mukhlis, ST., MT
·
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 metode algoritma penggantian yaitu
Write-through dan Write-back.Write-through adalah Cache dan memori utama
diupdate secara bersamaan waktunya. Sedangkan Write-back melakukan update data
di memori utama hanya pada saat word memori telah dimodifikasi dari cache.
·
Ukuran blok
blok-blok yang berukuran Iebih besar mengurangi jumlah blok yang
menempati cache. 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 untuk di perlukan dalam waktu dekat.(Dikutip dari artilek milik
Yulisdin "Mukhlis, ST., MT")
·
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.