CACHE MEMORY
1.1
Definisi Cache Memory
Memori
utama yang digunakan sisterm komputer pada awalnya dirasakan masih lambat
kerjanya dibandingkan dengan kinerja CPU, sehingga perlu dibuat sebuah memori
yang dapat membantu kerja memori utama tersebut, sebagai perbandingan waktu
akses memori cache lebih cepat 5-10 kali dibandingkan memori utama.
Gambar 1.1 : Gambar Posisi Cache Memory pada Sistem Memory
Gambar 1.2 : Gambar Sistem
Interkoneksi yang terkait dengan 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.
1.2.
Fungsi dan Kegunaan Cache
Cache
berfungsi sebagai tempat penyimpanan sementara untuk data atau instruksi yang
diperlukan oleh processor. Secara gampangnya, cache berfungsi untuk mempercepat
akses data pada komputer karena cache menyimpan data/informasi yang telah
diakses oleh suatu buffer, sehingga meringankan kerja processor.
Dalam
Internet sebuah proxy cache dapat mempercepat proses browsing dengan cara
menyimpan data yang telah diakses di komputer yang berjarak dekat dengan
komputer pengakses. Jika kemudian ada user yang mengakses data yang sama, proxy
cache akan mengirim data tersebut dari cache-nya, bukan dari tempat yang lama
diakses. Dengan mekanisme HTTP, data yang diberikan oleh proxy selalu data yang
terbaru, karena proxy server akan selalu mencocok kan data yang ada di
cache-nya dengan data yang ada di server luar.
1.3.
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).
1.4.
Desain Cache pada Sistem Komputer
Pada rancangan prosesor modern
dengan beberapa tingkat pipeline, upaya untuk mengisi penuh seluruh pipeline
dengan instruksi dan data perlu dilakukan agar operasi sistem komputer secara
keseluruhan efisien.
Perbedaan kecepatan operasi
antara prosesor dan memori utama bisa menjadi kendala bagi dicapainya efisiensi
kerja sistem komputer. Bila prosesor bekerja jauh lebih cepat daripada memori
utama maka setiap kali prosesor mengambil instruksi atau data, diperlukan waktu
tunggu yang cukup lama. Waktu tunggu tersebut akan lebih berarti bila digunakan
untuk memproses data.
Kendala ini menyebabkan
diperlukannya cache, yakni memori berkapasitas kecil tetapi berkecepatan
tinggi, yang dipasang di antara prosesor dan memori utama. Instruksi dan data
yang sering diakses oleh prosesor ditempatkan dalam cache sehingga dapat lebih
cepat diakses oleh prosesor. Hanya bila data atau instruksi yang diperlukan
tidak tersedia dalam cache barulah prosesor mencarinya dalam memori utama.
Cache umumnya menggunakan
memori statik yang mahal harganya, sedangkan memori utama menggunakan memori
dinamik yang jauh lebih murah. Sistem komputer akan bekerja sangat cepat
apabila seluruh sistem memori utamanya menggunakan memori statik, tetapi
akibatnya harga sistem komputer akan menjadi sangat mahal. Selain itu, karena
hamburan panas pada memori statik lebih besar, sistem komputer yang menggunakan
memori statik ini akan menghasilkan panas yang berlebihan.
1.5.
Hirarki Sistem Memori
Pada sistem komputer terdapat
berbagai jenis memori, yang berdasarkan kecepatan dan posisi relatifnya
terhadap prosesor, bisa disusun secara hirarkis.
Gambar 1.3 : Gambar Hirarki
Memori Komputer
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.
1.6.
Rasio (Kena) dan Waktu Akses
Kemungkinan bahwa suatu kata
(word) berupa data/instruksi ditemukan dalam cache (disebut kena atau hit)
sehingga prosesor tidak perlu mencarinya dalam memori utama, akan tergantung
pada program, ukuran dan organisasi cache. Bila kata yang diperlukan tidak ada
dalam cache (berarti luput atau miss), maka prosesor harus merujuknya ke memori
utama. Rasio kena (h) didefinisikan sebagai perbandingan antara jumlah
perujukan yang berhasil memperoleh kata dari cache dengan banyaknya perujukan
yang dilakukan.
h = (jumlah perujukan yang berhasil) / ( jumlah perujukan)
|
Dalam studi tentang cache,
pengukuran umumnya justru terhadap rasio luput (miss) yang besarnya adalah:
m = (1 – h)
|
Waktu akses rata-rata, dengan
asumsi bahwa perujukan selalu dilakukan ke cache lebih dahulu sebelum ke memori
utama, dapat dihitung sebagai berikut:
t a = t c + (1-h) t m
|
Keterangan :
ta
= adalah
waktu akses rata-rata,
tc
= adalah waktu akses
cache dan tm adalah waktu akses ke memori utama.
Setiap kali prosesor terpaksa
mengakses memori utama, diperlukan tambahan waktu akses sebesar tm(1-h).
Misalnya, bila rasio kena adalah 0,85, waktu akses ke memori utama adalah 200
ns dan waktu akses ke cache adalah 25 ns, maka waktu akses rata-rata adalah 55
ns.
Bila persamaan ta disusun
ulang, dapat ditulis menjadi:
ta = t c {1/k + (1-h)}
|
dengan K adalah rasio antara waktu akses
memori utama dengan waktu akses cache (tm/tc).
Dari persamaan di atas dapat
dilihat bahwa waktu akses rata-rata didominasi oleh rasio waktu akses memori
utama dengan cache bila k kecil. Pada kasus di atas, dengan waktu akses memori
utama 200 ns dan waktu akses cache 25 ns, maka k = 8. Rasio luput 1 prosen
menyebabkan waktu akses rata-rata menjadi 27 ns, tidak jauh beda dengan waktu
akses cache. Pada umumnya k berkisar antara 3-10.
1.7. Level Chace Memory
Hingga saat ini, cache memory terbagi atas tiga level yaitu
L1, L2 dan L3. Cache memorymemori level 1 (L1) adalah cache
memory yang terletak dalam prosesor (internal cache).Cache memory ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8KB,
64KB dan 128KB. Cache memory level 2 (L2) memiliki kapasitas
yang lebih besar yaitu berkisar antara 256KB sampai
dengan 2MB. Namun, cache memory L2 ini memiliki kecepatan yang lebih rendah dari cache memory L1.Cache memory L2 terletak terpisah dengan prosesor atau
disebut dengan external cache.
Gambar 1.4 : Gambar desain
cache dalam sistem komputer
Sedangkan cache memory level 3 hanya dimiliki oleh
prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk
mengontrol data yang masuk dari tembolok L2 dari masing-masing inti prosesor.
Level 2 atau L2 cache merupakan bagian dari strategi penyimpanan multi level
untuk meningkatkan performa komputer. Terdapat tiga level cache yang digunakan pada komputer,
yaitu L1, L2 dan L3 cache. Tiap-tiap cache tersebut menjembatani jarak (gap) diantara
processor yang sangat cepat, dengan memori RAM (Random Access Memory) yang jauh
lebih lambat. Sementara desainnya terus mengalami perubahan, L1 cache biasanya telah terintegrasi (built
in) ke dalam processor, sementara L2 cache biasanya terintegrasi pada motherboard (bersamaan dengan L2 cache). Namun, beberapa processor kini menggabungkan L2 cache serta L1 cache, dan bahkan beberapa
diantaranya juga menggungkan L3 cache. Kecepatan yang paling tinggi terdapat pada L1 cache, kemudian menurun pada L2 dan
L3 cache. Namun kebalikannya, semakin
besar angka cache, maka semakin besar pula kapasitas penyimpanan datanya.
Gambar
1.5 : Gambar Contoh Level Cache pada Processor.
Tugas dari cache processor adalah untuk
mengantisipasi data request, sehingga ketika pengguna mengakses sebuah program yang sering
digunakan, sebagai contohnya, instruksi-instruksi yang dibutuhkan untuk
menjalankan program tersebut telah siap digunakan, disimpan pada cache. Ketika
hal ini terjadi, CPU dapat memproses request tanpa adanya jeda (delay),
sehingga dapat meningkatkan performa komputer secara drastis.
CPU pertama-tama akan memeriksa
L1 cache, diikuti dengan L2 dan L3 cache. Jika processor telah
menemukan bit data yang dibutuhkan, maka disebut dengan cache hit. Namun jika cache tidak menyediakan bit data yang
dibutuhkan, processor mendapatkan sebuah cache miss, dan data perlu ditarik
dari RAM yang lebih lambat atau hard disk yang juga lebih lambat.
1.1.8.
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.
1.1.9. 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 :
1. 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.
2. 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.
Tidak ada komentar:
Posting Komentar