Review Video Youtube Mengenai Chace Memory tentang Teknik Mapping yaitu : Direct, Associative, Set Associative Mapping.

 


Cache Memory adalah salah satu jenis memori yang digunakan untuk menyimpan data sementara agar dapat diakses lebih cepat oleh CPU. Teknik Mapping pada Cache Memory digunakan untuk menentukan algoritma penyimpanan data pada cache, terdapat tiga jenis teknik mapping pada cache memory yaitu Direct Mapping, Associative Mapping, dan Set Associative Mapping.

Review dari video seputar cara kerja dan perhitungannya dalam sebuah studi kasus dari video

Cara kerja cache memory adalah sebagai berikut. Ketika CPU membutuhkan data dari memori, cache memory akan memeriksa apakah data tersebut sudah ada di dalam cache. Jika iya, maka cache memory akan memberikan data tersebut kepada CPU. Jika tidak, CPU harus mengambil data dari memori utama, menyimpannya di dalam cache memory, dan memberikan data tersebut kepada CPU.

Perhitungan cache memory dapat dilakukan dengan menggunakan formula untuk menghitung hit rate atau tingkat kecocokan cache. Hit rate adalah persentase dari total permintaan memori yang berhasil dilayani oleh cache memory. Hit rate dapat dihitung dengan menggunakan rumus berikut:

Hit rate = jumlah hit / (jumlah hit + jumlah miss)

Di mana:

1.      Jumlah hit adalah jumlah permintaan data yang berhasil dilayani oleh cache memory

2.      Jumlah miss adalah jumlah permintaan data yang tidak berhasil dilayani oleh cache memory dan harus diambil dari memori utama.

Studi kasus dalam video tersebut melibatkan pengujian cache memory menggunakan program sederhana yang melakukan iterasi terhadap array besar. Dalam pengujian ini, cache memory diatur menggunakan beberapa jenis teknik mapping, yaitu direct mapping, associative mapping, dan set-associative mapping. Setiap teknik mapping memiliki cara kerja dan hit rate yang berbeda.

Dari hasil pengujian, ditemukan bahwa set-associative mapping memberikan hit rate yang paling tinggi, diikuti oleh associative mapping dan direct mapping. Namun, set-associative mapping memiliki overhead yang lebih besar dibandingkan dengan teknik mapping lainnya karena memerlukan lebih banyak memori untuk menyimpan informasi tentang blok yang disimpan di cache memory.

 

A.     A. Direct Mapping.

    Video yang berjudul "Pengenalan Cache Memory - Direct Mapping" menjelaskan tentang cara kerja     dan perhitungannya dalam studi kasus direct mapping pada cache memory dari


 

Direct mapping merupakan teknik mapping pada cache memory dimana setiap blok data pada memori utama dipetakan ke satu slot tertentu pada cache. Hal ini dilakukan dengan cara membagi memori utama menjadi beberapa blok dengan ukuran yang sama dan memetakan blok-blok tersebut ke slot-slot pada cache.

Cara kerja direct mapping pada cache memory adalah sebagai berikut:

1.      Ketika CPU meminta data dari memori utama, cache memory akan mencari data tersebut pada slot tertentu pada cache sesuai dengan alamat memori yang diminta.

2.      Jika data tersebut sudah ada pada cache, maka data tersebut akan langsung diambil dari cache. Hal ini disebut sebagai hit.

3.      Jika data tersebut belum ada pada cache, maka cache akan mengambil data tersebut dari memori utama dan menyimpannya pada slot yang sesuai pada cache. Hal ini disebut sebagai miss.

Perhitungan pada direct mapping pada cache memory adalah sebagai berikut:

1.      Jumlah slot pada cache = jumlah blok pada memori utama / jumlah slot pada cache

2.      Ukuran blok pada cache = ukuran blok pada memori utama

3.      Ukuran cache = jumlah slot pada cache x ukuran blok pada cache

 

Studi kasus yang dijelaskan dalam video adalah dengan menggunakan memori utama dengan ukuran 64 byte dan cache dengan ukuran 16 byte dan 4 slot. Dalam kasus ini, setiap blok pada memori utama dipetakan ke satu slot pada cache.

Dalam kasus tersebut, jika CPU meminta data pada alamat 0x100, maka data tersebut akan dipetakan ke slot 0 pada cache. Jika CPU meminta data pada alamat 0x104, maka data tersebut akan dipetakan ke slot 1 pada cache. Jika CPU meminta data pada alamat 0x120, maka data tersebut akan dipetakan ke slot 0 pada cache.

 

B.    B. Asociative Mapping.

Dari link video youtube https://youtu.be/uwnsMaH-iV0 dapat diketahui bahwa;

Associative Mapping adalah teknik mapping yang lebih kompleks dibandingkan dengan Direct Mapping. Setiap blok memori utama dapat dipetakan ke semua slot cache memory yang tersedia. Kelebihan dari Associative Mapping adalah kemungkinan conflict miss lebih kecil dibandingkan dengan Direct Mapping. Namun, kelemahannya adalah kompleksitas perhitungan tag yang digunakan untuk mencocokkan blok memori utama dengan slot cache memory.

 

Cara kerja associative mapping adalah sebagai berikut:

1.      CPU meminta untuk membaca data dari alamat memori tertentu.

2.      Cache memeriksa setiap tag pada blok cache untuk mencari apakah tag tersebut cocok dengan alamat memori yang diminta. Jika cocok, data yang sesuai dengan tag tersebut akan dikirim ke CPU.

3.      Jika tidak ada tag yang cocok, maka cache memeriksa apakah masih ada blok kosong di cache. Jika ada, blok tersebut akan digunakan untuk menyimpan data yang diminta dari memori fisik.

4.      Jika tidak ada blok kosong, maka cache harus menentukan blok mana yang harus diganti. Salah satu strategi yang umum digunakan adalah LRU (Least Recently Used), di mana blok yang paling tidak sering digunakan akan diganti.

5.      Setelah blok diganti, data dari alamat memori yang diminta akan dimuat ke dalam blok yang baru dan tag yang sesuai akan dibuat.

 

Perhitungan dalam associative mapping melibatkan penghitungan jumlah blok yang dibutuhkan untuk cache dan jumlah tag yang dibutuhkan untuk setiap blok. Perhitungan untuk associative mapping tidak melibatkan rumus matematika yang kompleks seperti pada direct mapping dan set-associative mapping. Hal ini dikarenakan dalam associative mapping, setiap blok memori di-cache memiliki tag yang menyimpan alamat blok memori yang sesuai.


Contoh studi kasus:

Misalkan kita memiliki memori fisik dengan alamat 0 hingga 255. Cache yang digunakan adalah associative dengan ukuran 4 blok dan masing-masing blok berukuran 16 byte.

Jumlah blok cache yang dibutuhkan adalah 4, karena cache memiliki 4 blok. Setiap blok memiliki 16 byte, sehingga total ukuran cache adalah 4 x 16 byte = 64 byte. 

Untuk setiap blok cache, tag akan dibuat untuk mengidentifikasi alamat memori fisik yang cocok dengan blok tersebut. Karena setiap blok dapat mengakses seluruh memori fisik, setiap tag akan memiliki ukuran yang sama dengan alamat memori fisik. Dalam contoh ini, setiap tag akan memiliki ukuran 8 bit karena alamat memori fisik memiliki 8 bit.

Dengan menggunakan associative mapping, cache memungkinkan setiap blok dapat disimpan di mana saja dalam cache. Namun, karena setiap blok membutuhkan tag, jumlah tag yang dibutuhkan akan sama dengan jumlah blok. Dalam contoh ini, 4 tag diperlukan untuk mengidentifikasi setiap blok cache.


C.    C. Teknik Set Associative Mapping.

penjelasan secara lengkap seputar cara kerja dan perhitungannnya dalam sebuah studi kasus dari https://youtu.be/KhAh6thw_TI.

Set Associative Mapping merupakan kombinasi antara Direct Mapping dan Associative Mapping. Pada teknik ini, blok memori utama dapat disimpan pada sekelompok blok cache tertentu. Misalnya, jika cache memiliki 8 blok dan setiap grup terdiri dari 2 blok, maka blok memori utama dengan alamat 0-1 akan disimpan pada grup 0, blok memori utama dengan alamat 2-3 akan disimpan pada grup 1, dan seterusnya.

Associative mapping adalah teknik mapping dimana setiap blok memori dari main memory dapat disimpan di mana saja pada cache memory tanpa harus menempatkan secara khusus pada slot tertentu. Hal ini memungkinkan cache memory untuk lebih fleksibel dalam menempatkan blok memori.

Cara kerja associative mapping adalah sebagai berikut:

1.      Ketika CPU meminta data dari main memory, cache controller akan mencari data tersebut pada cache memory.

2.      Cache controller akan memeriksa setiap tag (identifier) di cache memory untuk menentukan apakah data yang diminta ada di cache atau tidak. Tag adalah identifier unik yang disimpan pada setiap blok memori pada cache memory.

3.      Jika data ditemukan, maka data tersebut akan disampaikan ke CPU. Namun jika tidak ditemukan, maka cache controller akan membawa blok memori dari main memory ke cache memory dan menyimpannya pada posisi mana saja pada cache memory.

4.      Setelah blok memori disimpan, cache controller akan menandai tag blok memori tersebut sebagai valid, yang berarti bahwa blok tersebut tersimpan di cache memory.


Perhitungan Associative Mapping

Perhitungan pada associative mapping melibatkan tag, valid bit, dan offset. Berikut ini adalah rumus untuk perhitungan pada associative mapping:

1.      Tag = Alamat memori / (Ukuran blok x Jumlah blok pada cache memory)

2.      Valid bit = 1 (jika data tersimpan pada cache memory) atau 0 (jika tidak tersimpan)

3.      Offset = Alamat memori mod Ukuran blok.


Contoh Kasus Associative Mapping

Sebagai contoh, misalkan kita memiliki cache memory dengan kapasitas 64KB, ukuran blok 8 byte, dan main memory dengan kapasitas 1MB. Berikut ini adalah perhitungan untuk associative mapping pada cache memory:

1.      Jumlah blok pada cache memory = Kapasitas cache memory / Ukuran blok = 64KB / 8 byte = 8K blok

2.      Jumlah tag bits = log2(Jumlah blok) = log2(8K) = 13 bits

3.      Valid bit = 1 bit

4.      Offset = log2(Ukuran blok) = log2(8) = 3 bits

5.      Total bit untuk setiap blok pada cache memory = 13 + 1 + 3 = 17 bits

Jika kita ingin mengakses data pada alamat memori 0x123456, maka perhitungan tag, valid bit, dan offset adalah sebagai berikut:

1.      Tag = 0x123456 / (8 byte x 8K blok) = 2

2.      Valid bit = 1 (karena data belum pernah diakses sebelumnya)

3.      Offset = 0x123456 mod 8 = 0x6 

Dengan demikian, data pada alamat memori 0x123456 disimpan pada blok dengan tag 2, valid bit 1, dan offset 0x6 pada cache memory.

Kesimpulan

Berdasarkan penjelasan di atas, dapat disimpulkan bahwa teknik mapping associative adalah teknik mapping di mana data dapat disimpan di lokasi mana saja dalam cache memory. Oleh karena itu, teknik ini memiliki kecepatan akses yang lebih tinggi daripada teknik mapping direct dan set associative.

Pada teknik mapping associative, setiap blok memori memiliki tag yang digunakan untuk mengidentifikasi blok memori. Ketika cache memory menerima permintaan akses memori, ia membandingkan tag dengan tag di setiap blok memori untuk menentukan apakah data yang diminta sudah tersedia dalam cache. Jika ya, data akan diambil langsung dari cache, jika tidak, cache akan meminta data dari memori utama dan menyimpannya di cache untuk digunakan di masa depan.

Dalam hal perhitungan, teknik mapping associative membutuhkan lebih sedikit perhitungan daripada teknik mapping set associative. Namun, teknik ini juga memerlukan penggunaan memori yang lebih besar karena setiap blok memori membutuhkan tag.

Dalam studi kasus yang dibahas dalam video, penggunaan teknik mapping associative pada cache memory dapat meningkatkan kinerja sistem secara signifikan, terutama pada aplikasi yang memerlukan akses memori yang cepat dan sering. Namun, penggunaan teknik ini juga memerlukan investasi dalam kapasitas cache yang lebih besar dan membutuhkan perhatian yang lebih untuk memastikan penggunaan memori yang efisien.

Komentar