Makalah cache memory, Pengertian cache memory, cache memory pada processor, Definisi cache memory , fungsi dan kegunaan cache memory, Kecepatan cache memory.
BAB I
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 memory memori 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.
BAB II
MAPPING CACHE MEMORY
2.1 Mapping (Pemetaan)
Saluran cache lebih sedikit dibandingkan dengan blok
memori utama sehingga diperlukan algoritma untuk pemetaan blok-blok memori
utama ke dalam saluran cache. Selain itu, diperlukan juga alat untuk menentukan
blok memori utama mana yang sedang memakai saluran cache. Pemilihan fungsi
pemetaan akan menentukan bentuk organisasi cache. Terdapat tiga metode yang
digunakan yaitu :
1.
Pemetaan
Langsung (Direct Mapping)
Pemetaan langsung adalah teknik
yang paling sederhana, yaitu teknik ini memetakan blok memori utama hanya ke
sebuah saluran cache saja. Jika suatu block ada di cache, maka tempatnya sudah
tertentu. Keuntungan dari direct mapping adalah sederhana dan murah. Sedangkan
kerugian dari direct mapping adalah suatu blok memiliki lokasi yang tetap (jika
program mengakses 2 blok yang di map ke line yang sama secara berulang-ulang,
maka cache-miss sangat tinggi).
Berikut penjelasan
lebih detail :
§
Setiap
blok pada main memory dipetakan dengan line tertentu pada cache. i
= j modulo C di mana i adalah nomor line pada cache yang digunakan
untuk meletakkan blok main memory ke-j.
§
Jika
M = 64 dan C = 4, maka pemetaan antara line dengan blok menjadi
seperti berikut
:
Line 0 can hold blocks 0, 4, 8, 12, ...
Line
1 can hold blocks 1, 5, 9, 13, ...
Line
2 can hold blocks 2, 6, 10, 14, ...
Line
3 can hold blocks 3, 7, 11, 15, ...
§ Pada
cara ini, address pada main memory dibagi 3 field atau bagian,
yaitu:
o
Tag identifier.
o
Line number identifier
o
Word identifier (offset)
§ Word identifier berisi informasi
tentang lokasi word atau unit addressable lainnya dalam line tertentu
pada cache.
§ Line identifier berisi informasi
tentang nomor fisik (bukan logika) line pada chace
§ Tag identifier disimpan pada
cache bersama dengan blok pada line.
o
Untuk
setiap alamat memory yang dibuat oleh CPU, line tertentu yang menyimpan copy
alamat tsb ditentukan, jika blok tempat lokasi data tersebut sudah dikopi dari
main memory ke cache.
o
Tag yang ada pada line akan dicek untuk
melihat apakah benar blok yang dimaksud ada line tsb.
Gambar 2.1 : Gambar
Organisasi Direct Mapping.
Keuntungan Menggunakan Direct Mapping antara lain :
§ Mudah
dan Murah diimplementasikan
§ Mudah
untuk menentukan letak salinan data main memory pada chace.
Kerugian menggunakan Direct Mapping antara lain :
§ Setiap
blok main memory hanya dipetakan pada 1 line saja.
§ Terkait
dengan sifat lokal pada main memory, sangat mungkin mengakses blok yang
dipetakan pada line yang sama pada cache. Blok seperti ini akan
menyebabkan seringnya sapu masuk dan keluar data ke/dari cache, sehingga
hit ratio mengecil. Hit ratio adalah perbandingan antara jumlah
ditemukannya data pada cache dengan jumlah usaha mengakses cache.
Gambar 2.2 : Gambar
Contoh Pengalamatan Direct Mapping.
Ringkasan direct mapping nampak pada tabel
berikut:
Item
|
Keterangan
|
Panjang
alamat
|
(s+w)
bits
|
Jumlah
unit yang dapat dialamati
|
2s+w
words or bytes
|
Ukuran
Bloks sama dengan ukuran Line
|
2w
words or bytes
|
Jumlah
blok memori utama
|
2s+
w/2w = 2s
|
Jumlah
line di chace
|
M
= 2r
|
Besarnya
tag
|
(s
- r) bits
|
2.
Pemetaan
Asosiatif (Associative Mapping)
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.
o
Mengecek
setiap tag pada line
o
Sangat
lambat untuk cache berukuran besar.
§
Nomor
line menjadi tidak berarti. Address main memory dibagi menjadi 2 field
saja, yaitu tag dan word offset.
Gambar 2.3 : Gambar
Organisasi Associative Mapping.
§
Melakukan
pencarian ke semua tag untuk menemukan blok.
§
Cache
dibagi menjadi 2 bagian :
o
lines
dalam SRAM
o
tag dalam associative memory
Gambar 2.4 : Gambar
Contoh Pengalamatan Associative Mapping
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.
Ringkasan Associative Mapping nampak
pada tabel berikut:
Item
|
Keterangan
|
Panjang
alamat
|
(s+w)
bits
|
Jumlah
unit yang dapat dialamati
|
2s+w
words or bytes
|
Ukuran
Bloks sama dengan ukuran Line
|
2w
words or bytes
|
Jumlah
blok memori utama
|
2s+
w/2w = 2s
|
Jumlah
line di chace
|
Undetermined
|
Besarnya
tag
|
s
bits
|
3.
Pemetaan
Asosiatif Set (Set Associative Mapping)
Pada pemetaan ini, cache dibagi
dalam sejumlah sets. Setiap set berisi sejumlah line. Pemetaan asosiatif set
memanfaatkan kelebihan-kelebihan pendekatan pemetaan langsung dan pemetaan
asosiatif.
§
Merupakan
kompromi antara Direct dengan Full Associative Mapping.
§
Membagi
cache menjadi sejumlah set (v) yang masing-masing memiliki sejumlah line (k)
§
Setiap
blok dapat diletakkan di sebarang line dengan nomor set: nomor set = j
modulo v
Gambar 2.5 :
Gambar Organisasi K-Way Set Associative Mapping.
§ Jika sebuah set
dapat menampung X line, maka cache disebut memiliki X way set associative
cache.
§ Hampir semua cache
yang digunakan saat ini menggunakan organisasi 2 atau 4-way set
associative mapping.
Gambar 2.6 :
Gambar Contoh Pengalamatan 2-Way Associative Mapping.
Keuntungan
menggunakan Set Associative Mapping antara lain:
Setiap blok
memori dapat menempati lebih dari satu kemungkinan nomor line
(dapat menggunakan line yang kosong), sehingga thrashing dapat diperkecil
Jumlah tag lebih
sedikit (dibanding model associative), sehingga jalur untuk melakukan
perbandingan tag lebih sederhana.
Ringkasan Set
Associative Mapping nampak
pada tabel berikut:
Item
|
Keterangan
|
Panjang
alamat
|
(s+w)
bits
|
Jumlah
unit yang dapat dialamati
|
2s+w
words or bytes
|
Ukuran
Bloks sama dengan ukuran Line
|
2w
words or bytes
|
Jumlah
blok memori utama
|
2d
|
Jumlah
line dalam set
|
k
|
Jumlah
set
|
V=2d
|
Jumlah
line di chace
|
Kv
= k*2d
|
Besarnya
tag
|
(
s – d )bits
|
2.2 Algoritma Penggantian
Algoritma penggantian adalah suatu mekanisme
pergantian blok-blok dalam memori cache yang lama dengan data baru. Dalam
pemetaan langsung tidak diperlukan algoritma ini, namun dalam pemetaan
assosiatif dan asosiatif set, algoritma ini mempunyai peranan penting untuk
meningkatkan kinerja cache memori.
Banyak algoritma penggantian yang telah
dikembangkan, algoritma yang paling efektif adalah Least Recently Used (LRU),
yaitu mengganti blok data yang terlama berada dalam cache dan tidak memiliki
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 berdasarkan pemakaian datanya, melainkan
berdasar slot dari beberapa slot kandidat secara acak.
2.3 Write Policy
Apabila suatu data telah diletakkan pada cache maka
sebelum ada penggantian harus dicek apakah data tersebut telah mengalami
perubahan. Apabila telah berubah maka data pada memori utama harus di-update.
Masalah penulisan ini sangat kompleks, apalagi memori utama dapat diakses langsung
oleh modul I/O, yang memungkinkan data pada memori utama berubah,lalu bagaimana
dengan data yang telah dikirim pada cache? Tentunya perbedaan ini menjadikan
data tidak valid.
Teknik yang dikenal diantaranya, write through,
yaitu operasi penulisan melibatkan data pada memori utama dan sekaligus pada
cache memori sehingga data selalu valid. Kekurangan teknik ini adalah
menjadikan lalu lintas data ke memori utama dan cache sangat tinggi sehingga
mengurangi kinerja system, bahkan bisa terjadi hang.
Teknik lainyya adalah write back, yaitu teknik
meminmasi penulisan dengan cara penulisan pada cache saja. Pada saat akan
terjadi penggantian blok data cache maka baru diadakan penulisan pada memori
utama. Masalah yang timbul adalah manakala dat di memori utama belum di-update
telah diakses modul I/O sehingga data di memori utama tidak valid.
Penggunaan multi cache terutama untuk multi prosesor
akan menjumpai masalah yang lebih kompleks. Masalah validasi data tidak hanya
antara cache dan memori utama saja, namun antar cache juga harus diperhatikan.
Pendekatan penyelesaian masalah yang dapat dilakukan adalah dengan :
Bus
Watching with Write Through. Yaitu setiap cache controller akan memonitoring
bus alamat untuk mendeteksi adanya operasi tulis. Apabila ada operasi tulis di
alamat yang datanya digunakan bersama maka cache controller akan menginvalidasi
data cache-nya.
Hardware
Transparency. Yaitu adanya perangkat keras tambahan yang menjamin semua
updating data memori utama melalui cache direfleksikan pada seluruh cache yang
ada.
Non
Cacheable Memory. Yaitu hanya bagian memori utama tertentu yang digunakan
secara bersama. Apabila ada pengaksesan data yang tidak di-share merupakan
kegagalan cache.
2.4 Miss Cache
Saat miss menulis, anda bisa
punya pilihan antara membawa blok ke cache (writeallocate) atau
tidak (write-no-allocate). Saat miss membaca, anda selalu
membawa blok ke cache (lokalitas spasial atau temporal) - blok mana yang
diganti:
tidak
ada pilihan untuk direct-mapped cache
memilih
secara acak way yang akan diganti
mengganti
way yang paling jarang dipakai (LRU)
penggantian
FIFO (round-robin)
Tipe miss cache adalah
sebagai berikut:
Miss wajib: terjadi saat pertama kali word
memori diakses. Merupakan miss untuk cache yang infinit.
Miss kapasitas: terjadi karena program
menyentuh banyak word yang lain sebelum menyentuh ulang word yang sama.
Merupakan miss untuk cache fullyassociative.
Miss konflik: terjadi karena dua work dipetakan
ke lokasi yg sama di cache. Merupakan miss yang terjadi ketika
berganti dari cache fully-associative ke direct-mapped.
BAB IV
PENUTUP
Cache
memory merupakan memori yang memiliki kecepatan sangat
tinggi, digunakan sebagai perantara antara Main Memory dan CPU. Memori
ini mempunyai kecepatan lebih tinggi daripada Main Memory, namun
harganya lebih mahal. Cache memory digunakan untuk menjembatani
perbedaan kecepatan CPU yang sangat tinggi dengan kecepatan RAM yang jauh lebih
rendah. Dengan menggunakan cache memory, sejumlah data dapat dipindahkan
ke memori ini dalam sekali waktu, dan kemudian ALU akan mengambil data tersebut
dari memori ini. Dengan pendekatan seperti ini, pemrosesan data dapat dilakukan
lebih cepat daripada kalau CPU mengambil data secara langsung dari RAM.
DAFTAR
PUSTAKA
Stallings, William. 2010. Computer
Organization and Architecture 8th Edition.
Prentice Hall.
Daftar Website:
http://en.wikipedia.org/wiki/Cache_coherency
http://en.wikipedia.org/wiki/Cache_algorithms
http://williamstallings.com/ComputerOrganization/COA8e-Instructor/index.html
http://www.tomshardware.com/reviews/athlon-l3-cache,2416-2.html
http://anggaradian.wordpress.com/2013/04/29/pengertian-dan-fungsi-cache-pada-komputer
http://adamono.blogspot.com/2008/05/makalah-cache-memory.html
LAMPIRAN
Gambar
Perbandingan Kecepatan Akses antara CPU dan Main Memory
Search Income :
- Pengertian cache memory
- Makalah cache memory
- Cache memory pada processor
- Definisi cache memory
- fungsi dan kegunaan cache memory
- Kecepatan cache memory
Tidak ada komentar
Posting Komentar