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 terletakterpisah 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 levelcache 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, L1cache 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 cachetidak 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.
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.
Melakukan pencarian ke semua tag untuk
menemukan blok.
Cache dibagi menjadi 2 bagian :
o lines dalam SRAM
o 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.
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
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.
Keuntungan menggunakan Set Associative Mapping antara lain:
Setiap blok memori dapat menempati lebih
dari satu kemungkinan nomor line
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 missyang terjadi ketika berganti
dari cache fully-associative
ke direct-mapped.
Harrah's Reno Hotel & Casino - Kambi - Kambi
BalasHapusBook your stay at Harrah's 전라북도 출장안마 Reno Hotel & Casino in Reno using Kambi, the 광명 출장샵 home of exciting 화성 출장마사지 hotel rooms, top 남원 출장마사지 suites, exciting dining options and the 삼척 출장마사지 best