Anda di halaman 1dari 23

ARSITEKTUR DAN ORGANISASI KOMPUTER

Nama Penyusun :

1. Nadhif Dhiaul Haq ( 3213111015 )


2. Muhammad Nur Fathi ( 3213111016 )
3. Fathan Akbar Maulana ( 3213111026 )
4. Melany Puspita Wardhani ( 3213111027 )

Universitas Teknologi Yogyakarta Kampus 3,


Alamat Jl. Prof. DR. Soepomo Sh No.21, Muja Muju, Kec. Umbulharjo, Kota
Yogyakarta, Daerah Istimewa Yogyakarta
A. Direct mapping pada chache
• Definisi

Direct mapping adalah salah satu metode pengorganisasian cache dalam sistem
komputer. Pada direct mapping, setiap blok memori utama hanya dapat di-cache ke
lokasi tertentu dalam cache.

Dalam direct mapping, setiap blok memori utama memiliki satu dan hanya satu
lokasi cache yang ditetapkan untuknya secara eksklusif. Lokasi cache ini ditentukan
dengan menggunakan fungsi hash atau fungsi modulus. Biasanya, alamat memori
utama dibagi menjadi beberapa bagian, dan bagian-bagian ini digunakan untuk
menentukan lokasi cache yang sesuai.

Sebagai contoh, jika cache memiliki 8 lokasi dan memori utama memiliki 32 blok,
maka setiap blok memori utama akan di-cache ke lokasi yang ditentukan
berdasarkan sisa hasil pembagian alamat memori utama dengan 8. Jadi, jika alamat
memori utama adalah 13, maka blok memori tersebut akan di-cache ke lokasi cache
dengan indeks 5 (13 mod 8 = 5).

Keuntungan dari direct mapping adalah sederhana dalam implementasi dan


memiliki latensi akses yang konstan. Namun, kelemahannya adalah jika terjadi
konflik cache, yaitu dua atau lebih blok memori utama berusaha mengakses lokasi
cache yang sama, maka akan terjadi cache miss dan performa dapat menurun.

• Carakerja

Berikut adalah cara kerja direct mapping pada cache:

1. Cache Mapping: Cache diorganisir menjadi beberapa lokasi, biasanya dalam


bentuk baris atau set. Setiap lokasi cache dapat menyimpan satu blok data dari
memori utama.

2. Alamat Memori Utama: Setiap alamat memori utama terdiri dari dua bagian: tag
dan indeks. Bagian tag menyimpan informasi tentang blok memori utama yang
akan disimpan di cache, sedangkan bagian indeks digunakan untuk menentukan
lokasi cache yang sesuai.
3. Penentuan Lokasi Cache: Bagian indeks alamat memori utama digunakan untuk
menentukan lokasi cache yang akan digunakan. Biasanya, bagian indeks ini diambil
dari alamat memori utama dengan menggunakan fungsi modulus. Misalnya, jika
cache memiliki 8 lokasi dan indeks alamat memori utama adalah 5, maka blok
memori utama akan di-cache ke lokasi cache dengan indeks 5.

4. Pengecekan Tag: Setelah lokasi cache ditentukan, bagian tag alamat memori
utama dibandingkan dengan tag yang ada di lokasi cache yang sesuai. Jika tag-tag
tersebut cocok, maka blok data dianggap ditemukan dalam cache (cache hit).

5. Cache Hit: Jika terjadi cache hit, data diambil langsung dari cache dan digunakan
dalam operasi yang diperlukan. Ini mengurangi latensi akses ke memori utama,
karena data telah disimpan di cache.

6. Cache Miss: Jika tag pada lokasi cache tidak cocok dengan tag alamat memori
utama, maka terjadi cache miss. Ini berarti blok data yang diminta tidak ada dalam
cache.

7. Fetching Data: Jika terjadi cache miss, blok data yang diminta harus diambil dari
memori utama dan dimasukkan ke dalam lokasi cache yang sesuai. Blok data lain
yang mungkin ada di lokasi cache tersebut akan digantikan (evicted).

Cara kerja direct mapping pada cache adalah dengan menggunakan indeks alamat
memori utama untuk menentukan lokasi cache yang sesuai. Setiap blok memori
utama hanya dapat di-cache ke lokasi cache yang ditetapkan untuknya secara
eksklusif. Cache hit terjadi jika tag alamat memori utama cocok dengan tag di lokasi
cache yang sesuai, sementara cache miss terjadi jika tag tidak cocok. Cache miss
memicu pengambilan blok data dari memori utama dan penempatannya ke lokasi
cache yang sesuai.
• Contoh

Misalkan kita memiliki cache dengan ukuran 8 lokasi dan blok memori utama
dengan ukuran 32 blok. Berikut adalah contoh direct mapping pada cache:

1. Cache Mapping:

- Cache memiliki 8 lokasi (dalam contoh ini, kita anggap masing-masing lokasi
dapat menampung 1 blok data).

- Setiap lokasi cache dilabeli dengan indeks dari 0 hingga 7.

2. Alamat Memori Utama:

- Blok memori utama memiliki 32 blok (dalam contoh ini).

- Setiap blok memori utama dilabeli dengan alamat numerik dari 0 hingga 31.

- Setiap alamat memori utama terdiri dari dua bagian: tag dan indeks.

- Bagian tag menyimpan informasi tentang blok memori utama yang akan
disimpan di cache.

- Bagian indeks digunakan untuk menentukan lokasi cache yang sesuai.

3. Penentuan Lokasi Cache:

- Bagian indeks alamat memori utama digunakan untuk menentukan lokasi cache
yang akan digunakan.

- Dalam contoh ini, kita menggunakan fungsi modulus untuk mendapatkan


indeks.

- Misalnya, jika alamat memori utama adalah 13, maka indeks akan dihitung
sebagai 13 mod 8 = 5.

- Jadi, blok memori utama dengan alamat 13 akan di-cache ke lokasi cache dengan
indeks 5.

4. Pengecekan Tag:

- Setelah lokasi cache ditentukan, bagian tag alamat memori utama dibandingkan
dengan tag yang ada di lokasi cache yang sesuai.
- Jika tag-tag tersebut cocok, maka terjadi cache hit.

- Jika tag tidak cocok, maka terjadi cache miss.

Contoh:

- Misalkan kita ingin mengakses blok memori utama dengan alamat 13.

- Menggunakan fungsi modulus, indeks akan dihitung sebagai 13 mod 8 = 5.

- Kita memeriksa lokasi cache dengan indeks 5.

- Jika tag pada lokasi cache tersebut cocok dengan tag alamat memori utama, maka
terjadi cache hit dan blok data diambil langsung dari cache.

- Jika tag tidak cocok, maka terjadi cache miss dan blok data harus diambil dari
memori utama dan ditempatkan ke lokasi cache yang sesuai (indeks 5 dalam contoh
ini).

• Penyebab

Penyebab utama penggunaan direct mapping pada cache adalah untuk mengurangi
kompleksitas desain dan latensi akses yang konstan. Beberapa alasan mengapa
direct mapping dipilih sebagai metode pengorganisasian cache adalah:

1. Sederhana dalam Implementasi: Direct mapping adalah salah satu metode paling
sederhana dalam mengorganisasikan cache. Setiap blok memori utama memiliki
lokasi cache yang ditentukan secara langsung. Hal ini membuat implementasinya
lebih mudah dibandingkan dengan metode pengorganisasian cache yang lebih
kompleks seperti set-associative atau fully associative.

2. Latensi Akses Konstan: Dalam direct mapping, setiap blok memori utama
memiliki satu dan hanya satu lokasi cache yang ditetapkan untuknya. Ini berarti
akses ke blok data dalam cache dapat dilakukan dengan latensi konstan. Dalam
metode pengorganisasian cache yang lebih kompleks, seperti set-associative atau
fully associative, latensi akses dapat bervariasi tergantung pada keberadaan dan
posisi blok data dalam cache.
3. Penghematan Biaya: Direct mapping membutuhkan jumlah perangkat keras yang
lebih sedikit dibandingkan dengan metode pengorganisasian cache yang lebih
kompleks. Dalam direct mapping, setiap lokasi cache hanya dapat menyimpan satu
blok data, sehingga jumlah comparator (perbandingan tag) yang diperlukan lebih
sedikit dibandingkan dengan metode pengorganisasian cache lainnya.

Meskipun direct mapping memiliki keuntungan dalam sederhana dalam


implementasi dan latensi akses konstan, namun memiliki kelemahan yaitu konflik
cache yang dapat menyebabkan cache miss. Jika dua atau lebih blok memori utama
berusaha mengakses lokasi cache yang sama, maka akan terjadi cache miss dan
performa dapat menurun.

B. Cache hit and mis


• Definisi

Cache hit dan cache miss adalah istilah yang digunakan dalam konteks cache untuk
menggambarkan hasil dari pencarian data dalam cache.

1. Cache Hit: Cache hit terjadi ketika data yang diminta ditemukan dalam cache.
Ini berarti blok data yang dibutuhkan telah disimpan di lokasi cache yang sesuai
dan tersedia untuk digunakan. Cache hit menghasilkan latensi akses yang rendah
karena data dapat diambil langsung dari cache tanpa harus mengakses memori
utama. Ini meningkatkan efisiensi dan kinerja sistem komputer.

2. Cache Miss: Cache miss terjadi ketika data yang diminta tidak ditemukan dalam
cache. Ini berarti blok data yang dibutuhkan tidak ada di lokasi cache yang sesuai.
Cache miss memicu akses ke memori utama untuk mendapatkan blok data yang
diperlukan. Data tersebut kemudian dimasukkan ke dalam cache untuk digunakan
di masa mendatang. Cache miss memiliki latensi akses yang lebih tinggi
dibandingkan cache hit karena melibatkan akses ke memori utama yang relatif lebih
lambat.
Penting untuk mengelola cache dengan baik untuk meminimalkan cache miss dan
meningkatkan jumlah cache hit. Strategi pengelolaan cache yang efektif seperti
algoritma penggantian blok cache (eviction algorithm) dan prefetching dapat
membantu meningkatkan rasio cache hit dan mengurangi waktu akses keseluruhan.
Cache hit yang tinggi dapat meningkatkan kinerja sistem dengan mengurangi waktu
yang dibutuhkan untuk mengakses data dari memori utama yang lebih lambat.

• Cara kerja

Cara kerja cache hit dan cache miss dapat dijelaskan sebagai berikut:

1. Cache Hit:

- Saat ada permintaan untuk membaca atau menulis data, alamat memori utama
yang terkait dengan permintaan tersebut diperiksa terlebih dahulu dalam cache.

- Jika data yang diminta ditemukan dalam cache (cache hit), data tersebut
dianggap tersedia dan dapat diakses dengan cepat.

- Cache hit terjadi ketika tag dari alamat memori utama cocok dengan tag di lokasi
cache yang sesuai.

- Setelah cache hit terjadi, blok data dapat langsung diambil dari cache tanpa harus
mengakses memori utama. Ini menghasilkan latensi akses yang rendah dan
meningkatkan kinerja sistem.

2. Cache Miss:

- Jika data yang diminta tidak ditemukan dalam cache (cache miss), artinya blok
data yang diperlukan tidak ada dalam lokasi cache yang sesuai.

- Cache miss dapat terjadi dalam beberapa situasi, seperti ketika blok data belum
pernah di-cache sebelumnya, telah di-evict dari cache, atau terjadi konflik cache
dengan blok data lain.

- Ketika cache miss terjadi, sistem harus mengakses memori utama untuk
mendapatkan blok data yang diperlukan.
- Blok data yang diambil dari memori utama kemudian dimasukkan ke dalam
cache pada lokasi yang sesuai.

- Setelah cache miss diatasi, permintaan awal dapat dilanjutkan dengan


mengakses blok data dari cache, mengurangi latensi akses selanjutnya ke data
tersebut.

Manajemen cache yang efektif berupaya untuk memaksimalkan cache hit dan
meminimalkan cache miss. Penggunaan algoritma penggantian blok cache
(eviction algorithm) yang baik, seperti LRU (Least Recently Used) atau LFU (Least
Frequently Used), dapat membantu memilih blok data mana yang akan di-evict dari
cache saat terjadi cache miss. Selain itu, teknik prefetching, di mana blok data yang
mungkin dibutuhkan berikutnya secara prediktif dimuat ke dalam cache, juga dapat
mengurangi jumlah cache miss dan meningkatkan kinerja cache.

• Contoh

Mari kita lihat contoh konkret tentang cache hit dan cache miss:

Misalkan kita memiliki cache dengan ukuran 4 lokasi (C1, C2, C3, C4) dan blok
memori utama dengan ukuran 8 blok (M1, M2, M3, M4, M5, M6, M7, M8).

Contoh 1: Cache Hit

1. Awalnya, cache dalam kondisi kosong, semua lokasi cache tidak berisi data.

2. Sebuah permintaan datang untuk mengakses data di alamat M3.

3. Cache memeriksa tag alamat M3 dan membandingkannya dengan tag di setiap


lokasi cache.

4. Jika tag M3 cocok dengan tag di salah satu lokasi cache, misalnya C2, maka
terjadi cache hit.

- Cache hit: Data di M3 ditemukan di lokasi cache C2.

- Data diambil langsung dari cache C2 dengan latensi rendah.


Contoh 2: Cache Miss

1. Awalnya, cache dalam kondisi kosong, semua lokasi cache tidak berisi data.

2. Sebuah permintaan datang untuk mengakses data di alamat M6.

3. Cache memeriksa tag alamat M6 dan membandingkannya dengan tag di setiap


lokasi cache.

4. Jika tidak ada lokasi cache yang memiliki tag yang cocok dengan tag M6, maka
terjadi cache miss.

- Cache miss: Data di M6 tidak ditemukan dalam cache.

5. Cache harus mengakses memori utama untuk mendapatkan blok data M6 yang
diperlukan.

6. Blok data M6 diambil dari memori utama dan dimasukkan ke dalam lokasi cache
yang tersedia, misalnya C3.

7. Setelah cache miss diatasi, permintaan awal dapat dilanjutkan dengan mengakses
data M6 dari cache C3.

Contoh 3: Cache Miss dan Eviction

1. Awalnya, cache dalam kondisi terisi dengan data di lokasi cache C1, C2, C3, dan
C4.

2. Sebuah permintaan datang untuk mengakses data di alamat M5.

3. Cache memeriksa tag alamat M5 dan membandingkannya dengan tag di setiap


lokasi cache.

4. Jika tidak ada lokasi cache yang memiliki tag yang cocok dengan tag M5, maka
terjadi cache miss.

- Cache miss: Data di M5 tidak ditemukan dalam cache.

5. Cache harus mengakses memori utama untuk mendapatkan blok data M5 yang
diperlukan.
6. Selama cache miss, cache harus memutuskan lokasi mana yang harus digunakan
untuk menyimpan blok data M5.

- Misalnya, cache menggunakan algoritma penggantian blok cache LRU (Least


Recently Used).

- Jika lokasi cache C1 adalah blok yang paling lama tidak digunakan, maka blok
data di C1 akan di-evict dari cache untuk memberikan tempat bagi blok data M5.

7. Blok data M5 diambil dari memori utama dan dimasukkan ke dalam lokasi cache
C1 yang telah tersedia.

8. Setelah cache miss diatasi dan evict dilakukan, permintaan awal dapat
dilanjutkan dengan mengakses data M5 dari cache C1.

Dalam contoh-contoh di atas, cache hit terjadi ketika data ditemukan dalam cache,
sedangkan cache miss terjadi ketika data tidak ditemukan dalam cache dan harus
diambil dari memori utama. Cache hit memberikan akses data dengan latensi
rendah, sementara cache miss membutuhkan waktu lebih lama karena melibatkan
akses ke memori utama.

• Penyebab

Penyebab cache hit dan cache miss dalam cache dapat bervariasi dan dipengaruhi
oleh beberapa faktor. Berikut adalah beberapa penyebab umum dari cache hit dan
cache miss:

1. Cache Hit:

- Data yang diminta telah disimpan sebelumnya dalam cache dan masih berada di
lokasi cache yang sesuai.

- Algoritma penggantian blok cache (eviction algorithm) yang efektif memastikan


bahwa data yang sering diakses tetap berada dalam cache.

- Pola akses lokalitas spasial dan temporal: Jika data yang diakses memiliki pola
akses lokalitas yang baik, kemungkinan cache hit menjadi lebih tinggi. Misalnya,
akses berulang terhadap data yang berdekatan secara spasial atau akses terhadap
data yang baru-baru ini diakses secara temporal.

2. Cache Miss:

- Data yang diminta belum pernah di-cache sebelumnya.

- Data yang diminta tidak lagi ada dalam cache karena telah di-evict oleh
algoritma penggantian blok cache.

- Konflik cache: Terjadi ketika dua atau lebih blok data berusaha menyimpan ke
lokasi cache yang sama menggunakan metode pengorganisasian cache yang
sederhana seperti direct mapping. Hal ini dapat mengakibatkan beberapa blok data
saling menggantikan satu sama lain di cache dan menyebabkan cache miss.

- Pola akses yang tidak memanfaatkan lokalitas spasial atau temporal dengan
baik, sehingga data yang diakses jarang ada di cache.

- Ukuran cache yang terlalu kecil dibandingkan dengan kebutuhan aplikasi.


Semakin besar ukuran cache, semakin rendah kemungkinan terjadinya cache miss.

Penting untuk memahami faktor-faktor ini dan menerapkan strategi yang efektif
dalam manajemen cache untuk memaksimalkan jumlah cache hit dan
meminimalkan jumlah cache miss. Algoritma penggantian blok cache yang baik,
ukuran cache yang memadai, dan pola akses yang memanfaatkan lokalitas adalah
beberapa faktor yang dapat mempengaruhi rasio cache hit dan cache miss.

C. 2 way set associative and 4 way set associative pada cache


• Definisi

1. 2-Way Set Associative Cache:

2-way set associative cache adalah metode pengorganisasian cache di mana setiap
blok memori utama memiliki dua lokasi cache yang mungkin untuk disimpan.
Setiap set dalam cache terdiri dari dua lokasi cache. Ketika ada permintaan untuk
mengakses data, cache memeriksa kedua lokasi cache dalam set yang sesuai dengan
alamat memori utama. Jika salah satu lokasi cache berisi data yang diminta, terjadi
cache hit. Jika kedua lokasi cache kosong, terjadi cache miss. Jika kedua lokasi
cache dalam set terisi, algoritma penggantian blok cache digunakan untuk
memutuskan blok mana yang akan di-evict untuk memberi tempat pada blok data
yang baru.

2. 4-Way Set Associative Cache:

4-way set associative cache adalah metode pengorganisasian cache di mana setiap
blok memori utama memiliki empat lokasi cache yang mungkin untuk disimpan.
Setiap set dalam cache terdiri dari empat lokasi cache. Ketika ada permintaan untuk
mengakses data, cache memeriksa keempat lokasi cache dalam set yang sesuai
dengan alamat memori utama. Jika salah satu lokasi cache berisi data yang diminta,
terjadi cache hit. Jika keempat lokasi cache kosong, terjadi cache miss. Jika
keempat lokasi cache dalam set terisi, algoritma penggantian blok cache digunakan
untuk memutuskan blok mana yang akan di-evict untuk memberi tempat pada blok
data yang baru.

Dalam kedua kasus, menggunakan metode set associative memungkinkan setiap


blok memori utama untuk memiliki beberapa pilihan lokasi cache yang mungkin
untuk disimpan. Ini membantu mengurangi kemungkinan konflik cache dan
meningkatkan rasio cache hit. Set-associative cache secara umum lebih kompleks
dalam implementasinya daripada direct mapping cache, namun masih lebih
sederhana dibandingkan dengan fully associative cache di mana setiap blok memori
utama dapat ditempatkan di mana saja dalam cache.

• Cara kerja

Cara kerja 2-way set associative cache dan 4-way set associative cache dapat
dijelaskan sebagai berikut:
1. 2-Way Set Associative Cache:

- Cache dibagi menjadi sejumlah set, dan setiap set terdiri dari dua lokasi cache
(juga disebut sebagai way).

- Setiap blok memori utama memiliki dua kemungkinan lokasi cache di dalam set
yang sesuai.

- Saat ada permintaan untuk mengakses data, alamat memori utama dipetakan ke
set yang sesuai menggunakan fungsi hash atau algoritma pengindeksan.

- Dalam set yang sesuai, kedua lokasi cache diinspeksi.

- Jika salah satu lokasi cache berisi data yang diminta (cache hit), data tersebut
diambil dari cache dengan latensi rendah.

- Jika kedua lokasi cache kosong (cache miss), data harus diambil dari memori
utama dan dimasukkan ke salah satu lokasi cache dalam set tersebut. Keputusan
tentang lokasi mana yang akan digunakan dapat menggunakan algoritma
penggantian blok cache seperti LRU (Least Recently Used).

- Saat terjadi cache miss, jika kedua lokasi cache dalam set terisi, maka salah satu
blok data harus di-evict dari cache untuk memberi tempat pada blok data yang baru.

2. 4-Way Set Associative Cache:

- Cache dibagi menjadi sejumlah set, dan setiap set terdiri dari empat lokasi cache.

- Setiap blok memori utama memiliki empat kemungkinan lokasi cache di dalam
set yang sesuai.

- Saat ada permintaan untuk mengakses data, alamat memori utama dipetakan ke
set yang sesuai menggunakan fungsi hash atau algoritma pengindeksan.

- Dalam set yang sesuai, keempat lokasi cache diinspeksi.


- Jika salah satu lokasi cache berisi data yang diminta (cache hit), data tersebut
diambil dari cache dengan latensi rendah.

- Jika keempat lokasi cache kosong (cache miss), data harus diambil dari memori
utama dan dimasukkan ke salah satu lokasi cache dalam set tersebut. Algoritma
penggantian blok cache seperti LRU (Least Recently Used) digunakan untuk
memutuskan blok mana yang akan di-evict jika keempat lokasi dalam set terisi.

- Saat terjadi cache miss, jika keempat lokasi cache dalam set terisi, salah satu
blok data harus di-evict dari cache untuk memberi tempat pada blok data yang baru.

Dalam kedua kasus, penggunaan set associative cache membantu mengurangi


konflik cache dan meningkatkan rasio cache hit dibandingkan dengan direct
mapping cache. Setiap blok memori utama memiliki beberapa pilihan lokasi cache
yang mungkin untuk disimpan, sehingga mengurangi kemungkinan konflik saat dua
blok memori utama berusaha memasukkan data ke lokasi yang sama dalam cache.

• Contoh

Mari kita lihat contoh konkret dari 2-way set associative cache dan 4-way set
associative cache:

Contoh 2-Way Set Associative Cache:

Misalkan kita memiliki cache dengan ukuran 4 lokasi (C1, C2, C3, C4) dan blok
memori utama dengan ukuran 8 blok (M1, M2, M3, M4, M5, M6, M7, M8).

1. Akses ke alamat M3:

- M3 akan dipetakan ke set yang sesuai (misalnya, Set 1).

- Set 1 memiliki dua lokasi cache (C1 dan C2).

- Cache memeriksa C1 dan C2.

- Jika C1 atau C2 berisi data M3, terjadi cache hit.

- Jika keduanya kosong, terjadi cache miss.


- Jika keduanya terisi, algoritma penggantian blok cache (misalnya, LRU)
digunakan untuk memutuskan blok mana yang akan di-evict untuk memberi tempat
pada blok data M3.

2. Akses ke alamat M6:

- M6 akan dipetakan ke set yang sesuai (misalnya, Set 2).

- Set 2 memiliki dua lokasi cache (C3 dan C4).

- Cache memeriksa C3 dan C4.

- Jika C3 atau C4 berisi data M6, terjadi cache hit.

- Jika keduanya kosong, terjadi cache miss.

- Jika keduanya terisi, algoritma penggantian blok cache (misalnya, LRU)


digunakan untuk memutuskan blok mana yang akan di-evict untuk memberi tempat
pada blok data M6.

Contoh 4-Way Set Associative Cache:

Misalkan kita memiliki cache dengan ukuran 8 lokasi (C1, C2, C3, C4, C5, C6, C7,
C8) dan blok memori utama dengan ukuran 16 blok (M1, M2, M3, ..., M16).

1. Akses ke alamat M5:

- M5 akan dipetakan ke set yang sesuai (misalnya, Set 1).

- Set 1 memiliki empat lokasi cache (C1, C2, C3, C4).

- Cache memeriksa C1, C2, C3, dan C4.

- Jika salah satu lokasi cache (misalnya, C2) berisi data M5, terjadi cache hit.

- Jika keempatnya kosong, terjadi cache miss.

- Jika keempatnya terisi, algoritma penggantian blok cache (misalnya, LRU)


digunakan untuk memutuskan blok mana yang akan di-evict untuk memberi tempat
pada blok data M5.

2. Akses ke alamat M12:


- M12 akan dipetakan ke set yang sesuai (misalnya, Set 3).

- Set 3 memiliki empat lokasi cache (C9, C10, C11, C12).

- Cache memeriksa C9, C10, C11, dan C12.

- Jika salah satu lokasi cache (misalnya, C12) berisi data M12, terjadi cache hit.

- Jika keempatnya kosong, terjadi cache miss.

- Jika keempatnya terisi, algoritma penggantian blok cache (misalnya, LRU)


digunakan untuk memutuskan blok mana yang akan di-evict untuk memberi tempat
pada blok data M12.

Dalam kedua kasus, 2-way set associative cache dan 4-way set associative cache
memungkinkan setiap blok memori utama memiliki beberapa pilihan lokasi cache
yang mungkin untuk disimpan, meningkatkan rasio cache hit dan mengurangi
kemungkinan konflik cache.

• Penyebab

Penyebab penggunaan 2-way set associative cache dan 4-way set associative cache
meliputi:

1. Pengurangan konflik cache: Salah satu alasan utama penggunaan set associative
cache adalah untuk mengurangi kemungkinan terjadinya konflik cache. Dalam
pengorganisasian cache direct mapping, satu blok memori utama hanya memiliki
satu lokasi cache yang mungkin untuk disimpan. Ini dapat menyebabkan konflik
cache ketika dua blok memori utama berusaha menyimpan data ke lokasi yang sama
dalam cache. Dengan menggunakan 2-way set associative cache atau 4-way set
associative cache, setiap blok memori utama memiliki beberapa pilihan lokasi
cache yang mungkin untuk disimpan, sehingga mengurangi kemungkinan konflik
cache.

2. Meningkatkan rasio cache hit: Dengan lebih banyak lokasi cache yang tersedia
untuk setiap blok memori utama, peluang untuk menemukan data yang diminta
dalam cache meningkat. Ini dapat meningkatkan rasio cache hit, yang berarti lebih
sedikit akses ke memori utama yang lebih lambat diperlukan untuk membaca atau
menulis data.

3. Peningkatan kinerja: Dengan mengurangi jumlah cache miss, penggunaan set


associative cache dapat meningkatkan kinerja sistem secara keseluruhan. Cache hit
memberikan akses data dengan latensi rendah, sedangkan cache miss yang
memerlukan akses ke memori utama membutuhkan waktu yang lebih lama. Dengan
menggunakan metode set associative, peluang cache hit meningkat, mengurangi
waktu yang dihabiskan untuk mengakses memori utama dan meningkatkan kinerja
aplikasi.

Pemilihan 2-way set associative cache atau 4-way set associative cache biasanya
tergantung pada trade-off antara ukuran cache dan kompleksitas implementasi. 4-
way set associative cache dapat memberikan lebih banyak pilihan lokasi cache
untuk setiap blok memori utama, yang dapat mengurangi kemungkinan konflik
cache lebih lanjut. Namun, ini juga memerlukan lebih banyak sirkuit dan
kompleksitas desain dalam implementasinya. 2-way set associative cache lebih
sederhana dalam implementasinya tetapi masih memberikan manfaat yang
signifikan dalam mengurangi konflik cache dibandingkan dengan direct mapping
cache.

D. Pengaruh cache size dan bentuk mapping


• Pengertian

Cache size dan bentuk mapping (seperti direct mapping, set associative, atau fully
associative) memiliki pengaruh yang signifikan terhadap kinerja cache dan sistem
secara keseluruhan. Berikut adalah penjelasan tentang pengaruh dari kedua faktor
tersebut:

1. Pengaruh Cache Size:

- Ukuran cache mempengaruhi berapa banyak data yang dapat disimpan dalam
cache secara keseluruhan.
- Semakin besar ukuran cache, semakin banyak data yang dapat disimpan, dan
kemungkinan cache hit meningkat.

- Cache hit rate (rasio cache hit) cenderung meningkat seiring dengan peningkatan
ukuran cache, yang dapat mengurangi akses ke memori utama dan meningkatkan
kinerja sistem.

- Namun, ukuran cache juga memiliki batasan fisik dan biaya. Semakin besar
cache, semakin mahal dan lebih sulit untuk diimplementasikan. Oleh karena itu,
perlu dilakukan trade-off antara ukuran cache yang memadai untuk memperoleh
manfaat cache hit yang signifikan dan mempertimbangkan keterbatasan fisik dan
biaya.

2. Pengaruh Bentuk Mapping:

- Bentuk mapping cache (direct mapping, set associative, fully associative)


mempengaruhi cara data disimpan dan dicari dalam cache.

- Direct mapping cache adalah yang paling sederhana, dengan setiap blok memori
utama hanya memiliki satu lokasi cache yang mungkin untuk disimpan. Hal ini
dapat menyebabkan konflik cache jika dua blok memori utama mencoba
menyimpan data ke lokasi yang sama dalam cache.

- Set associative cache membagi cache menjadi beberapa set, dan setiap blok
memori utama memiliki beberapa pilihan lokasi cache dalam set yang sesuai. Ini
mengurangi kemungkinan konflik cache dan meningkatkan rasio cache hit.

- Fully associative cache adalah yang paling kompleks, dengan setiap blok
memori utama dapat ditempatkan di mana saja dalam cache. Ini menghilangkan
konflik cache sepenuhnya, tetapi memerlukan pencarian yang lebih kompleks dan
biaya yang lebih tinggi.

- Pilihan bentuk mapping cache tergantung pada trade-off antara kompleksitas


implementasi, tingkat konflik cache, dan kemampuan untuk meningkatkan rasio
cache hit.
Penting untuk memilih ukuran cache yang memadai dan bentuk mapping yang
sesuai dengan karakteristik akses memori dari aplikasi atau sistem yang digunakan.
Dalam beberapa kasus, kombinasi dari kedua faktor ini dapat memberikan kinerja
cache yang optimal.

• Cara kerja

Pengaruh ukuran cache dan bentuk mapping (pengorganisasian cache) terhadap


kinerja cache dapat dijelaskan sebagai berikut:

1. Ukuran Cache:

- Ukuran cache adalah jumlah total lokasi yang tersedia dalam cache untuk
menyimpan blok data.

- Semakin besar ukuran cache, semakin banyak blok data yang dapat disimpan
dalam cache.

- Penggunaan ukuran cache yang lebih besar cenderung meningkatkan rasio cache
hit karena ada lebih banyak peluang untuk menyimpan data yang sering diakses
dalam cache.

- Ukuran cache yang lebih besar juga dapat mengurangi kemungkinan cache miss
karena ada lebih banyak ruang untuk menyimpan blok data.

- Namun, ukuran cache yang lebih besar juga membutuhkan lebih banyak sirkuit
dan lebih banyak area dalam chip, yang dapat meningkatkan biaya produksi dan
mengurangi efisiensi dari segi area.

2. Bentuk Mapping:

- Bentuk mapping mengacu pada cara lokasi cache dipilih untuk menyimpan blok
data dari memori utama.

- Direct mapping adalah bentuk mapping sederhana di mana setiap blok memori
utama memiliki lokasi cache yang ditentukan secara langsung. Ini menyebabkan
konflik cache jika dua blok memori utama mencoba memasukkan data ke lokasi
yang sama dalam cache.
- Set associative mapping (seperti 2-way set associative dan 4-way set
associative) memberikan lebih banyak pilihan lokasi cache untuk setiap blok
memori utama, mengurangi kemungkinan konflik cache.

- Fully associative mapping memungkinkan setiap blok memori utama untuk


ditempatkan di mana saja dalam cache. Ini menghilangkan konflik cache
sepenuhnya, tetapi memerlukan pengecekan seluruh cache saat mencari data, yang
dapat memerlukan waktu yang lebih lama.

- Bentuk mapping yang lebih asosiatif (seperti fully associative atau set
associative dengan jumlah way yang lebih besar) cenderung memiliki rasio cache
hit yang lebih tinggi karena lebih sedikit kemungkinan konflik cache, tetapi juga
lebih kompleks dalam implementasinya.

Kedua faktor, ukuran cache dan bentuk mapping, saling berinteraksi dalam
mempengaruhi kinerja cache. Peningkatan ukuran cache dapat meningkatkan rasio
cache hit, sementara bentuk mapping yang lebih asosiatif dapat mengurangi
kemungkinan konflik cache. Kombinasi optimal dari ukuran cache dan bentuk
mapping akan tergantung pada karakteristik akses memori aplikasi, kebutuhan
performa, dan batasan desain.

• Contoh

Pengaruh ukuran cache dan bentuk mapping terhadap kinerja cache dapat
diilustrasikan dengan contoh berikut:

1. Pengaruh Cache Size:

Misalkan kita memiliki cache dengan bentuk mapping set associative dan ukuran
cache yang berbeda-beda, seperti 4 KB, 8 KB, dan 16 KB. Sementara itu, kita
memiliki aplikasi yang mengakses data dari memori utama. Pengaruh ukuran cache
terhadap kinerja dapat terlihat sebagai berikut:

- Ketika ukuran cache lebih kecil, misalnya 4 KB, kemungkinan cache miss lebih
tinggi karena kapasitas cache yang terbatas. Data yang sering diakses mungkin
harus di-evict dari cache untuk memberi tempat pada data yang baru.
- Ketika ukuran cache ditingkatkan menjadi 8 KB, kapasitas cache lebih besar,
sehingga lebih banyak data yang dapat disimpan dalam cache. Ini dapat mengurangi
kemungkinan cache miss dan meningkatkan rasio cache hit.

- Ketika ukuran cache lebih lanjut ditingkatkan menjadi 16 KB, kapasitas cache
semakin besar dan lebih banyak data dapat di-cache. Ini dapat mengurangi cache
miss lebih lanjut dan meningkatkan kinerja dengan lebih banyak akses data yang
dilayani dari cache.

2. Pengaruh Bentuk Mapping:

Misalkan kita membandingkan dua bentuk mapping cache yang berbeda: direct
mapping dan fully associative. Aplikasi yang sama digunakan untuk mengakses
data dari memori utama.

- Dalam direct mapping cache, setiap blok memori utama hanya dapat disimpan
di lokasi cache tertentu yang ditentukan secara langsung. Jika ada konflik cache,
data yang baru harus menggantikan data yang ada, sehingga meningkatkan
kemungkinan cache miss.

- Dalam fully associative cache, setiap blok memori utama dapat disimpan di
mana saja dalam cache. Ini mengurangi kemungkinan konflik cache karena setiap
blok memiliki lokasi yang bebas dalam cache. Hal ini dapat meningkatkan rasio
cache hit dan mengurangi cache miss.

Penting untuk dicatat bahwa pengaruh ukuran cache dan bentuk mapping dapat
bervariasi tergantung pada pola akses aplikasi, ukuran data, dan karakteristik sistem
secara keseluruhan. Optimisasi cache yang efektif melibatkan mempertimbangkan
trade-off antara ukuran cache, bentuk mapping, dan karakteristik aplikasi untuk
mencapai kinerja cache yang optimal.

• Penyebab

Akibat dari ukuran cache dan bentuk mapping terhadap kinerja cache adalah
sebagai berikut:
1. Cache Size:

- Ukuran cache yang lebih kecil memiliki kapasitas yang terbatas untuk
menyimpan data. Ini dapat menyebabkan cache miss yang lebih sering, karena
cache tidak dapat menyimpan banyak data yang sering diakses.

- Cache size yang kecil juga dapat menyebabkan tingkat penyesuaian yang lebih
tinggi dalam algoritma penggantian blok cache. Ketika cache penuh, blok-blok
yang jarang diakses harus dihapus untuk memberi tempat pada blok yang lebih
baru. Ini dapat menyebabkan cache miss dan mempengaruhi kinerja secara
keseluruhan.

- Namun, ukuran cache yang terlalu besar juga dapat menyebabkan overhead dan
kompleksitas yang tinggi. Selain itu, ukuran cache yang berlebihan mungkin tidak
memberikan peningkatan kinerja yang signifikan jika aplikasi tidak
memanfaatkannya sepenuhnya.

2. Bentuk Mapping:

- Direct Mapping: Direct mapping cache memiliki keuntungan implementasi yang


sederhana, namun memiliki kemungkinan konflik cache yang lebih tinggi. Ketika
dua blok memori utama berusaha menyimpan data ke lokasi yang sama dalam
cache, konflik cache terjadi dan menyebabkan cache miss. Konflik cache dapat
mengurangi kinerja cache secara keseluruhan.

- Set Associative: Set associative cache mengurangi kemungkinan konflik cache


dengan membagi cache menjadi beberapa set dan memberikan beberapa lokasi
cache untuk setiap blok memori utama. Dengan demikian, rasio cache hit cenderung
meningkat. Namun, set associative cache memerlukan kompleksitas yang lebih
tinggi dalam desain dan implementasi, serta biaya yang lebih tinggi dibandingkan
dengan direct mapping cache.

- Fully Associative: Fully associative cache menghilangkan konflik cache


sepenuhnya, karena setiap blok memori utama dapat ditempatkan di mana saja
dalam cache. Ini memberikan rasio cache hit yang tinggi, namun dengan biaya
implementasi dan kompleksitas yang lebih tinggi dibandingkan dengan set
associative atau direct mapping cache.
Pemilihan ukuran cache dan bentuk mapping harus mempertimbangkan
karakteristik aplikasi, jenis akses data, dan faktor-faktor seperti latensi akses
memori utama, kompleksitas implementasi, dan biaya. Penting untuk menemukan
keseimbangan yang tepat untuk memaksimalkan kinerja cache sesuai dengan
kebutuhan sistem.

Anda mungkin juga menyukai