RINA E LUMBANTORUAN
TEKNOLOGI DAN ILMU KOMPUTER
UNIVERSITAS PRIMA INDONESIA
Penjelasan dan Gambar Mapping Memory Function
I.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:
Ø 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 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.
1.
Memungkinkan blok diletakkan di
sebarang line yang sedang tidak terpakai.
2.
Diharapkan akan mengatasi kelemahan utama Direct Mapping.
3.
Harus menguji setiap cache untuk
menemukan blok yang diinginkan.
4.
Mengecek setiap tag pada line.
5.
Sangat lambat untuk cache berukuran besar.
6.
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 :
ü lines dalam SRAM
ü 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.
1 Merupakan
kompromi antara Direct dengan Full Associative Mapping.
2 Membagi
cache menjadi sejumlah set (v) yang masing-masing memiliki sejumlah line (k)
3 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.
4 Jika sebuah set dapat menampung X line, maka cache disebut
memiliki X way set associative cache.
5 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
|
Tidak ada komentar:
Posting Komentar