CHACE MEMORY ORGANIZATION (Organisasi Chace Memory)
9:38 PM
CACHE MEMORY
ORGANIZATION
(Organisasi Chace Memory
1.1.
DEFINISI
CHACE 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
berfungsi sebagai tempat penyimpanan sementara untuk data atau instruksi yang
diperlukan oleh processor. Cache berfungsi untuk mempercepat akses data pada
komputer karena cache menyimpan data/informasi yang telah diakses oleh suatu
buffer, sehingga meringankan kerja processor.
1.3. KECEPATAN CHACE 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. DESIGN CHACE 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 menjadi efisien. Perbedaan kecepatan operasi
antara prosesor dan memori utama bisa menjadi kendala bagi dicapainya efisiensi
kerja sistem komputer.
Kendala ini
menyebabkan diperlukannya cache, yakni memori berkapasitas kecil namun memiliki
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. Bila data atau instruksi yang
diperlukan tidak tersedia dalam cache barulah prosesor mencarinya dalam memori
utama.
1.5. HIRARKI SISTEM MEMORY
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 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)}
|
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.
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.8. UKURAN CHACE
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.
MAPPING
CHACE MEMORY
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 :
2.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).
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 :
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:
- Tag identifier.
- Line number identifier
- 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.
- 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.
- Tag yang ada pada line akan dicek untuk melihat apakah benar blok yang dimaksud ada line tersebut.
Keuntungan
Menggunakan Direct Mapping antara lain :
Kerugian 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.
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
|
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.
Keuntungan Associative Mapping adalah Cepat dan fleksibel.
Kerugian Associative Mapping adalah 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
|
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.
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
|
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.5. 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 lainya 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.6. MISS CHACE
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:
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.
REFERENSI :
- Abbidin, Syaiful Maulana. 2014. Makalah Chace Memory. Tersedia : http://javaandro.blogspot.co.id/2014/06/makalah-cache-memory.html. [Diakses : 31 Maret 2016].
0 comments
Give your comment here