Kamis, 27 Oktober 2016

MAPPING MEMORY FUNCTION

ANNISA FADHLILA
TEKNOLOGI dan ILMU KOMPUTER
UNIVERSITAS PRIMA INDONESIA


Pemetaan (Mapping Function)
Karena saluran cache memory lebih sedikit dibandingkan dengan blok memori utama, maka diperlukan algoritma untuk pemetaan blok memori utama ke dalam saluran cache memory. Pemilihan terhadap fungsi pemetaan akan sangat menentukan bentuk organisasi cache memory. Telah kita ketahui bahwa cache memory mempunyai kapasitas yang kecil dibandingkan memori utama. Sehingga diperlukan aturan blok-blok mana yang diletakkan dalam cache memory. Mekanisme penempatan instruksi didalam cache memori dikenal dengan Mapping Function (Fungsi Pemetaan).

Teknik Pemetaan ( Mapping Function )

1. Direct mapping
2. Fully associative mapping
3. Set associative mapping

1. Direct mapping

Merupakan cara paling sederhana untuk menentukan lokasi cache yang digunakan. Dengan teknik ini, blok j memori utama memetakan ke blok j pada cache memori. Untuk jelasnya lihat gambar di bawah ini.






MISAL :
Jika sebuah cache memori dengan ukuran 2K akan dihubungkan dengan Main Memori kapasitas 64K dengan ketentuan :
Masing-masing blok terdiri dari 16 word
1 word = 16 bit
Maka dapat dihitung :
Jumlah blok dalam CACHE
2048/16 = 128 BLOK

Jumlah blok dalam MAIN MEMORI
65.534/16 = 4096 BLOK

Perbandingan blok main dan Cache
4096/128 = 32

jadi 1 cache bisa untuk 32 main secara bergantian atau cache : main = 1 : 32

Untuk blok cache 0 bisa ditempati blok memori
0
128
256
384
32 blok 512
640
768
s/d
3968 (128 X 31)

Untuk blok cache 1 bisa ditempati blok memori
1
129
257
385
513
32 blok 641
769
s/d
3969 (3968+1)

Untuk blok cache 127 bisa ditempati blok memori
127
255
383
511
639
32 blok 767
895
s/d
4095 (3969+127)

Jika ada pernyataan : alamat 2013 H
00100 0000001 0011 = 2013 H
tag blok word

Artinya :
(Tag : label)
TAG ke 4 = urutan masuk ke blok cache adalah urutan yang ke 4
Blok ke 1 = tempatnya di blok cache yang ke 1
word ke 3 = word ke 3 dari blok

kita lihat blok cache ke 1 diurutan ke 4 itu berisi :
Untuk blok cache 1 bisa ditempati blok memori
1
129
257
385
513
641
769
s/d
3969( 3968+1)

Jadi address sesungguhnya dari main memori adalah :
Blok yang ke 385, word yang ke 3
alamatnya adalah 385 X 16 + 3 = 6163 D
dijadikan HEXA, 6163 D = 1813 H

Keuntungan menggunakan Direct Mapping antara lain:

Mudah dan murah diimplementasikan/diterapkan.
Mudah untuk menentukan letak salinan data main memory pada cache.

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.


2. Fully associative mapping

Metode mapping ini jauh lebih fleksibel, yaitu blok memori utama dapat diletakkan ke dalam tiap posisi blok cache. Untuk seperti kasus dalam direct mapping di atas diperlukan 12 bit tag untuk mengidentifikasi blok memori saat blok tersebut berada dalam cache.



Dari gambar di atas 127 blok cache bisa langsung di access oleh blok main Memori maka
Untuk blok cache0 bisa ditempati blok memori
0
1
2
3
4
5
6
s/d
4095

Untuk blok cache1 bisa ditempati blok memori
0
1
2
3
4
5
6
s/d
4095

Jadi jika ada pernyataan: alamat : CC06 H

1100 1100 0000 0110
tag word

Address sebenarnya adalah blok ke CC06 H

Teknik ini menghasilkan kebebasan penuh dalam memilih lokasi cache untuk meletakkan blok memori.
Biaya yang diperlukan untuk menyelidiki seluruh pola 128 tag untuk menentukan apakah suatu blok memori berada dalam chace lebih tinggi dari direct mapped.

 Kerugian Memakai Fully associative mapping

- Memungkinkan blok diletakkan di sebarang line yang sedang tidak terpakai.
- Diharapkan akan mengatasi kelemahan utama Direct Mapping.
- Harus menguji setiap cache untuk menemukan blok yang diinginkan.
- Mengecek setiap tag pada line
- Sangat lambat untuk cache berukuran besar.
- Nomor line menjadi tidak berarti. Address main memory dibagi menjadi 2 field saja, yaitu tag dan      word offset.
- Biaya implementasi. Misalnya : untuk cache ukuran 8 kbyte dibutuhkan 1024 x 17 bit associative        memory untuk menyimpan tag identifier.

Keuntungan Memakai Fully associative mapping

- cepat dan fleksibel


3. Set associative mapping

Metode ini merupakan gabungan dua metode sebelumnya. Blok cache dikelompokkan ke dalam set, dan mapping memungkinkan blok memori utama untuk berada dalam blok set tertentu. Karenanya masalah perebutan dalam metode direct dikurangi dengan menggunakan beberapa pilihan penempatan blok. Pada saat yang sama biaya hardware dikurangi dengan mengurangi ukuran penelusuran assosiatif.
  • Merupakan kompromi antara Direct dengan Full Associative Mapping.
  • Membagi cache menjadi sejumlah set (v) yang masing-masing memiliki sejumlah line (k)
  • Setiap blok dapat diletakkan di sebarang line
  • Jika sebuah set dapat menampung X line, maka cache disebut memiliki Xway set associative cache.
  • Hampir semua cache yang digunakan saat ini menggunakan organisasi 2 atau 4-way set associative mapping.




Pada cache dibuat set, yang masing-masing setnya terdiri dari 2 blok :
Misalkan
Blok 0 | Set 0 Blok 4 | Set 2
Blok 1 | Blok 5 |

Blok 2 | Set 1 Blok 6 | Set 3
Blok 3 | Blok 7 |

Shg dari yang 128 BLOK tadi dibagi menjadi 2 128/2 = 64 SET

Karena Blok 0 dan Blok 1 digabung dalam 1 set berarti kemungkinan 1 SET akan di akses oleh 32 X 2 ( 1 set = 2 blok dan tiap blok ada 32 kemungkinan)

Berarti Tiap 64 SET Cache ini kemungkinan akan diakses oleh 4096 BLOK Main shg : 4096/64 = 64 (TAG)

Untuk set cache 0 bisa ditempati blok memori
0
64
128
192
256
320
384
s/d
4032 (64 X 63)

Untuk set cache 1 bisa ditempati blok memori
1
65
129
193
257
321
385
s/d
4033

Jika ada pernyataan: alamat 1011 H
000100 000001 0001
tag Set word

TAG ke 4 = urutan masuk ke blok cache adalah urutan yang ke 4
Blok ke 1 = tempatnya di blok yang ke 1
word ke 3 = word ke 3 dari blok

kita lihat set cache ke 1 diurutan ke 4 itu berisi :
Untuk set cache 1 bisa ditempati blok memori
1
65
129
193
257
321
385
s/d
4033


 


Tidak ada komentar:

Posting Komentar