Chace Memory Teknik Mapping : Direct Mapping, Associative Mapping, dan Set Associative Mapping
Cache Memory merupakan memori yang terletak di antara CPU dan
main memory (RAM) yang bertujuan menyimpan data agar dapat diakses dengan
cepat.
Cache Memory Teknik Mapping merupakan teknik yang digunakan
untuk menentukan menggunakan metode apa data disimpan dan diambil dalam cache
memory. Terdapat tiga Teknik mapping yang digunakan dalam Cache Memory yaitu
Direct Mapping, Associative Mapping, dan Set Associative Mapping.
1. Direct Mapping
Direct
mapping merupakan teknik mapping yang sederhana dan umum digunakan. Dalam
Teknik ini, setiap blok data memori utama dapat dipetakan hanya ke satu blok
cache tertentu. Pemetaannya dilakukan dengan membagi alamat memori utama
menjadi beberapa bagian
Cara
Kerja Direct Mapping:
a) Cache dibagi menjadi beberapa blok
dengan ukuran yang sama.
b) Setiap blok cache memiliki tag yang
menyimpan alamat memori utama dari blok data yang disimpan di dalamnya.
c) Setiap blok data dari memori utama
memiliki satu dan hanya satu lokasi cache yang ditentukan oleh fungsi pemetaan.
d) Saat ada permintaan akses ke memori
utama, alamat tersebut diterjemahkan menjadi alamat cache menggunakan fungsi
pemetaan.
e) Jika blok data yang dicari sudah ada
di dalam cache (tersimpan di lokasi cache yang sesuai dengan alamat yang
diterjemahkan), maka data tersebut dapat langsung diambil dari cache.
f) Jika blok data yang dicari belum ada
di dalam cache, maka blok data tersebut harus dipindahkan dari memori utama ke
lokasi cache yang sesuai dengan alamat yang diterjemahkan. Dalam proses ini,
jika lokasi cache yang dituju sudah terisi oleh blok data lain, maka blok data
tersebut akan digantikan (di-"overwrite") oleh blok data baru.
Memori
utama berukuran 128 byte, cache berukuran 16 byte, dan blok berukuran 4 byte,
sehingga dilakukan perhitungan dalam memori utama,
Memori
Utama / Blok = 128 / 4
Maka
hasilnya = 32 Blok
Sehingga
didapatkan B0 – B31 (32 Blok) yang di dalam setiap blok nya mengandung 4 byte
dengan total keseluruhan dimulai dari byte0 – byte127 (128 byte)
Selanjutnya
dilakukan perhitungan dalam cache yang berukuran 16 byte
Cache
/ Blok = 16 / 4
Maka
hasilnya = 4 line (L0 – L3)
Kemudian
dilakukan Direct Mapping / pemetaan langsung dalam pemetaan cache. Terdapat 128
byte di memori utama, tetapi kita tidak bisa membawa semua byte ke cache karena
ukuran cache hanya 16 byte sehingga K mod n (K = nomor blok, n =nomor line),
hasil yang didapat dari K mod n berupa Blok (B0 – B31) dan akan dimasukkan ke
dalam line (L0 – L3)
Studi
Kasus:
Ukuran
Memori Utama = 4 GB
Ukuran
memori Cache = 1 MB
Ukuran
Blok = 4 KB
Konversi:
1 byte
= 8 bit
1 KB =
1024 byte = 210 B
1 MB =
1024 KB = 220 B
1 GB =
1024 MB = 250 B
Memori
Utama = 4 GB = 22 GB x 230 B = 232 B
: log2
232 = 32 bits
Nomor
Blok = memori utama / blok
= 232 /
212
= 220
= log2 220
= 20 bits
Alamat
Blok = 32 bits – 20 bits
= 12 bits
Memori
Cache = 1 MB = 220 B
Line
nomor memori pada cache memori = ukuran memori cache / blok
=
220 / 212
= 28
bits
=
log2 28
=
8 bits
Tag
bits = 20 – 8 = 12 bits
Ukuran Tag
directory = no alamat cache x tag bits = 28 x 12 = 3072 bits
2. Associative Mapping
Associative
Mapping merupakan metode untuk menghubungkan blok-blok memori dari memori utama
ke lokasi-lokasi tertentu dalam cache. Dalam associative mapping, suatu blok
memori dapat disimpan di lokasi apa pun dalam cache, bukan hanya pada lokasi
yang ditentukan secara khusus. Setiap blok memori disertai dengan tag yang
menunjukkan alamat memori utama asli dari blok tersebut.
Cara
Kerja Associative Mapping:
a) Pertama, saat cache kosong, semua tag
diatur ke nilai yang tidak valid atau kosong.
b) Ketika CPU mengakses suatu alamat
memori, cache memeriksa apakah blok memori yang berkaitan dengan alamat
tersebut ada di cache.
c) Cache melakukan pencarian di seluruh
tag untuk mencari blok yang sesuai dengan alamat yang diminta.
d) Jika blok ditemukan dalam cache
(hit), data dikembalikan ke CPU.
e) Jika blok tidak ditemukan dalam cache
(miss), blok tersebut diambil dari memori utama dan disimpan dalam cache. Pada
saat yang sama, tag diperbarui dengan alamat yang sesuai.
Untuk
menghitung ukuran cache yang dibutuhkan dalam associative mapping, beberapa
faktor yang perlu dipertimbangkan adalah:
· Ukuran blok memori (block size)
· Jumlah blok dalam cache (cache size)
· Ukuran tag
Studi
Kasus:
Ukuran
Memori Utama = 2 GB
= 21 x 230
= 231 PA
= log2 231
= 31 bits
Block
Size = 2 KB
= 21 x 210
= 211 bit
= 211 bit dari block offset + log2 211
= 11 bits
Comparator
delay: 15 ns
Orgate
delay: 7 ns
Tag
bit = PA bits – Block offset bits
= 31 bits – 11 bits
= 20 bits
Hit
latency = (comparator delay x
tag bit) + orgate delay
= (15 ns x 20 bits)
+ 7 ns
= 307 ns
3. Set Associative Mapping
Set
Associative Mapping merupakan metode untuk memetakan blok-blok memori dari
memori utama ke dalam cache. Metode ini merupakan kombinasi dari metode Direct
Mapping (Pemetaan Langsung) dan Fully Associative Mapping (Pemetaan Penuh
Asosiatif).
Dalam
Set Associative Mapping, cache dibagi menjadi beberapa set yang terdiri dari
beberapa blok/cache line. Setiap blok/cache line dalam set tersebut dapat
berisi blok-blok memori yang berasal dari lokasi yang berbeda dalam memori
utama.
Cara
kerja Set Associative Mapping:
a) Setiap blok memori dalam memori utama
memiliki alamat yang unik.
b) Alamat tersebut dibagi menjadi tiga
bagian: tag, index, dan offset. Bagian tag digunakan untuk membandingkan alamat
cache line dengan alamat yang diinginkan. Bagian index digunakan untuk
mengidentifikasi set mana yang akan digunakan. Bagian offset digunakan untuk
mengidentifikasi byte dalam cache line yang diinginkan.
c) Saat ada akses memori, alamat cache
line dihitung menggunakan index dan offset.
d) Cache akan memeriksa set yang sesuai
dengan index yang dihasilkan. Setiap blok dalam set akan membandingkan tag
dengan tag yang diinginkan.
e) Jika ada kecocokan, cache hit terjadi
dan data akan diambil dari cache. Jika tidak ada kecocokan, cache miss terjadi
dan cache harus memuat blok dari memori utama ke dalam cache, menggantikan blok
yang ada jika set penuh.
Studi
kasus:
Ukuran
Memori Utama = 128 B
= 27
PA
= log2
27
= 7
bits
Ukuran
Memori Cache = 32 B
= 25
Ukuran
Block = 4 B
= 22 bit
offset
= log2 22
= 2 bits
2 way
set associative
Nomor
Blok Memori Utama = Ukuran Memori
Utama / Ukuran Blok
=
27 / 22
=
25
=
32 blok
Bit
Blok Memori Utama = log2 32
= log2
25
= 5 bit
Nomor
Line = Memori Cache / Blok
= 25 / 22
= 23
= 8 line
Bit
off tag = log2 23 =
3 bit
Nomor
set = Line / Associative mapping
= 23 / 21
= 22
= 4
Bit
set = log2 22 = 2 bits
Referensi Videohttps://youtu.be/tK5g5UXXIm4
Komentar
Posting Komentar