Top Banner
9/28/2015 Mapping Cache Memory Lukman’s Blog http://blog.lukmanh.com/blog/2014/11/20/mappingcachememory/ 1/12 NOV 20TH, 2014 9:47 PM Mapping Cache Memory 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. Terdapat tiga metode, yaitu pemetaan langsung (direct mapping), pemetaan asosiatif, dan pemetaan asosiatif set. Direct Mapping Setiap blok pada main memory dipetakan dengan line tertentu pada cache.di mana i adalah nomor line pada cache yang digunakan untuk meletakkan blok main memory ke-j. i = j modulo C 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 cache. Tag identifier disimpan pada cache bersama dengan blok pada line. Untuk setiap alamat memory yang dibuat oleh CPU, line tertentu yang menyimpan copy alamat
12

Mapping Cache Memory - Lukman’s Blog

Jan 22, 2016

Download

Documents

Mapping Cache Memory
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 1/12

NOV 20TH, 2014 9:47 PM

Mapping Cache Memory

Karena saluran cache memory lebih sedikit dibandingkan dengan blok memori utama, maka diperlukanalgoritma untuk pemetaan blok memori utama ke dalam saluran cache memory. Pemilihan terhadap fungsipemetaan 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. Terdapat tiga metode, yaitupemetaan langsung (direct mapping), pemetaan asosiatif, dan pemetaan asosiatif set.

Direct MappingSetiap blok pada main memory dipetakan dengan line tertentu pada cache.di mana i adalah nomor linepada cache yang digunakan untuk meletakkan blok main memory ke-j.

i = j modulo C

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 identifierWord identifier (offset)

Word identifier berisi informasi tentang lokasi word atau unit addressable lainnya dalam line tertentupada cache.

Line identifier berisi informasi tentang nomor fisik (bukan logika) line pada cache.

Tag identifier disimpan pada cache bersama dengan blok pada line.

Untuk setiap alamat memory yang dibuat oleh CPU, line tertentu yang menyimpan copy alamat

Page 2: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 2/12

tersebut ditentukan, jika blok tempat lokasi data tersebut sudah dikopi dari main memory kecache.Tag yang ada pada line akan dicek untuk melihat apakah benar blok yang dimaksud ada pada linetsb.

Gambar Organisasi Direct Mapping.

Keuntungan menggunakan Direct Mapping antara lain:

Mudah dan murah diimplementasikan.

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 akanmenyebabkan seringnya sapu masuk dan keluar data ke/dari cache, sehingga hit ratio mengecil.

Hit ratio adalah perbandingan antara jumlah ditemukan- nya data pada cache dengan jumlah usahamengakses cache.

Page 3: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 3/12

Gambar Contoh Pengalamatan Direct Mapping.

Tabel Direct Mapping

Item Keterangan

Page 4: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 4/12

Associative MappingMemungkinkan 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 lineSangat lambat untuk cache berukuran besar.

Nomor line menjadi tidak berarti. Address main memory dibagi menjadi 2 field saja, yaitu tag dan wordoffset.

Panjang alamat (s + w) bits

Jumlah unit yang dapat dialamati 2s+w words or bytes

Ukuran Blok sama dengan ukuran Line 2w words or bytes

Jumlah blok di memori utama 2s+ w/2w = 2s

Jumlah line di cache m = 2r

Besarnya tag (s – r) bits

Page 5: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 5/12

Gambar Organisasi Associative Mapping.

Melakukan pencarian ke semua tag untuk menemukan blok.

Cache dibagi menjadi 2 bagian :

lines dalam SRAMtag dalam associative memory

Page 6: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 6/12

Gambar Contoh Pengalamatan Associative Mapping.

Keuntungan Associative Mapping:

cepat dan fleksibel.

Kerugian Associative Mapping:

biaya implementasi. Misalnya :

Page 7: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 7/12

untuk cache ukuran 8 kbyte dibutuhkan 1024 x 17 bit associative memory untuk menyimpan tagidentifier.

Set Associative MappingMerupakan 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 dengan nomor set:

nomor set = j modulo v

Tabel Associative Mapping

Item Keterangan

Panjang alamat (s + w) bits

Jumlah unit yang dapat dialamati 2s+w words or bytes

Ukuran Blok sama dengan ukuran Line 2w words or bytes

Jumlah blok di memori utama 2s+ w/2w = 2s

Jumlah line di cache undetermined

Besarnya tag s bits

Page 8: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 8/12

Gambar Organisasi K-Way Set Associative Mapping.

Jika sebuah set dapat menampung X line, maka cache disebut memiliki X-way set associative cache.

Hampir semua cache yang digunakan saat ini menggunakan organisasi 2 atau 4-way set associativemapping.

Page 9: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 9/12

Gambar Contoh Pengalamatan 2-Way Associative Mapping.

Setiap blok memori dapat menempati lebih dari satu kemungkinan nomor line (dapat menggunakan lineyang kosong), sehingga thrashing dapat diperkecil.

Jumlah tag lebih sedikit (dibanding model associative), sehingga jalur untuk melakukan perbandingan taglebih sederhana.

Tabel Set Associative Mapping

>

Item Keterangan

Panjang alamat (s + w) bits

Jumlah unit yang dapat dialamati 2s+w words or bytes

Ukuran Blok sama dengan ukuran Line 2w words or bytes

Jumlah blok di memory utama 2d

Page 10: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 10/12

Algoritma PenggantianYang dimaksud algoritma penggantian adalah suatu mekanisme pergantian blok-blok dalam cache memoryyang lama dengan data baru. Dalam pemetaan langsung tidak diperlukan algoritma ini, namun dalam pemetaanasosiatif dan asosiatif set, algoritma ini mempunyai peranan penting untuk meningkatkan kinerja cache memory.

Banyak algoritma penggantian yang telah dikembangkan. Algoritma yang paling efektif adalah Least RecentlyUsed (LRU), yaitu mengganti blok data yang terlama berada dalam cache memory dan tidak memiliki referensi.Algoritma lainnya adalah First In First Out (FIFO), yaitu mengganti blok data yang awal masuk. Kemudian LeastFrequently Used (LFU) adalah mengganti blok data yang mempunyai referensi paling sedikit. Teknik lain adalahalgoritma Random, yaitu penggantian tidak berdasakan pemakaian datanya, melainkan berdasarkan slot daribeberapa slot kandidat secara acak.

Write PolicyApabila suatu data telah diletakkan pada cache memory maka sebelum ada penggantian harus dicek apakahdata tersebut telah mengalami perubahan. Apabila telah berubah maka data pada memori utama harus di-update. Masalah penulisan ini sangat komplek, apalagi memori utama dapat diakses langsung oleh modul I/O,yang memungkinkan data pada memori utama berubah, lalu bagaimana dengan data yang telah dikirim padacache? Tentunya perbedaan ini menjadikan data tidak valid.

Teknik yang dikenalkan diantaranya, write through, yaitu operasi penulisan melibatkan data pada memoriutama dan sekaligus pada cache memory sehingga data selalu valid. Kekurangan teknik ini adalah menjadikanlalu lintas data ke memori utama dan cache memory sangat tinggi sehingga mengurangi kinerja sistem, bahkanbisa terjadi hang. Teknik lainnya adalah write back, yaitu teknik meminimasi penulisan dengan cara penulisanpada cache memory saja. Pada saat akan terjadi penggantian blok data cache memory maka baru diadakanpenulisan pada memori utama. Masalah yang timbul adalah manakala data di memori utama belum diupdatetelah diakses modul I/O sehingga data di memori utama tidak valid.

Penggunaan multi cache terutama untuk multiprocessor adan menjumpai masalah yang lebih komplek. Masalahvalidasi data tidak hanya antara cache memory dan memori utama saja, namun antar cache memory juga harusdiperhatikan. Pendekatan penyelesaian masalah yang dapat dilakukan adalah dengan :

Bus Watching with Write Through, yaitu setiap cache controller akan memonitoring bus alamat untukmendeteksi adanya operasi tulis. Apabila ada operasi tulis di alamat yang datanya digunakan bersamamaka cache controller akan menginvalidasi data cache-nya.

Jumlah line dalam set k

Jumlah set V=2d

Jumlah line di cache Kv = k*2d

Besarnya tag (s-d) bits

Page 11: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 11/12

Hardware Transparency, yaitu adanya perangkat keras tambahan yang menjamin semua updating datamemori utama melalui cache direfleksikan pada seluruh cache yang ada.

Non Cacheable Memory, yaitu hanya bagian memori utama tertentu yang digunakan secara bersama.Apabila ada mengaksesan data yang tidak di share merupakan kegagalan cache.

Miss CacheSaat miss menulis, anda bisa punya pilihan antara membawa blok ke cache (write-allocate) atau tidak (write-no-allocate). Saat miss membaca, anda selalu membawa blok ke cache (lokalitas spasial atau temporal) - blok manayang diganti:

tidak ada pilihan untuk direct-mapped cachememilih secara acak way yang akan digantimengganti way yang paling jarang dipakai (LRU)penggantian FIFO (round-robin)

Tipe miss cache adalah sebagai berikut:

Miss wajib : terjadi saat pertama kali word memori diakses. Merupakan miss untuk cache yang infinit.

Miss kapasitas : terjadi karena program menyentuh banyak word yang lain sebelum menyentuh ulangword yang sama. Merupakan miss untuk cache fully- associative.

Miss konflik : terjadi karena dua work dipetakan ke lokasi yg sama di cache. Merupakan miss yang terjadiketika berganti dari cache fully-associative kedirect-mapped.

Posted by Lukman Hakim Nov 20th, 2014 9:47 pm   article (/blog/categories/article/)

« CACHE MEMORY (/BLOG/2014/11/20/CACHE-MEMORY/)

VERSION CONTROL » (/BLOG/2014/11/26/VERSION-CONTROL/)

Recent Posts

Uang, Bank Dan Penciptaan Uang (/blog/2015/06/19/uang/)

Analisis Pendapatan Nasional Untuk Perekonomian Tertutup Sederhana (/blog/2015/06/19/analisis-pendapatan-nasional-untuk-perekonomian-tertutup-sederhana/)

Pendapatan Nasional (/blog/2015/06/19/pendapatan-nasional/)

Pasar Monopolistis Dan Pasar Oligopoli (/blog/2015/06/19/pasar-monopolistis-dan-pasar-oligopoli/)

Pasar Persaingan Sempurna Dan Pasar Monopoli (/blog/2015/06/19/pasar-persaingan-sempurna-dan-pasar-monopoli/)

Page 12: Mapping Cache Memory - Lukman’s Blog

9/28/2015 Mapping Cache Memory ­ Lukman’s Blog

http://blog.lukmanh.com/blog/2014/11/20/mapping­cache­memory/ 12/12

Copyright © 2015 - Lukman HakimPowered by Octopress (http://octopress.org), customized with octostrap3 (https://github.com/kAworu/octostrap3).

@lukmanhakim (https://github.com/lukmanhakim) on GitHub

GitHub Repos

Categories

laci(https://github.com/lukmanhakim/laci)

CustomListAndroid Custom List

(https://github.com/lukmanhakim/CustomList)

4java (/blog/categories/java/index.html)

16article (/blog/categories/article/index.html)

2git (/blog/categories/git/index.html)