Cache Memory Organisasi Sistem Komputer Priyanto E"mail ':'
[email protected]'
Program'Studi'Pendidikan'Teknik'Elektronika' Jurusan'Pendidikan'Teknik'Elektronika' FT'UNY''2015'
Tantangan'besar'dalam'desain'sistem'komputer'adalah' untuk'menyediakan'memori'yang'cukup'besar,'dengan' kecepatan'yang'wajar'dengan'biaya'terjangkau.' • SRAM:'sangat'cepat,'tapi'mahal,'karena'sel'SRAM'dasar' memiliki'sirkuit'yang'kompleks,'menggunakan'flip"flop.' • DRAM:'sirkuit'sel'dasar'sederhana,'jauh'lebih'murah,' tetapi'lebih'lambat'dari'SRAM.' • Disk'magneNk:'menyediakan'penyimpanan'besar,'tetapi' jauh'lebih'lambat'dari'DRAM.' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
2'
Cache( Memory(
Cache( Memory(
Main( Memory(
Secondary( Memory(
Register(
Kecepatan'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Ukuran'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
3'
• Secara'historis,'CPU'selalu'lebih'cepat'dari'memori.' • Kecepatan'memori'utama'sangat'rendah'(dibatasi'oleh' teknologi)'dibandingkan'kecepatan'prosessor'modern.'' • Untuk'performa'yang'baik,'prosessor'Ndak'dapat' membuang'waktunya'dengan'menunggu'untuk' mengakses'instruksi'dan'data'pada'memori'utama.'' • Sangat'penNng'untuk'menciptakan'arsitektur'yang' mengurangi'waktu'dalam'mengakses'instruksi'dan'data' pada'memori'utama.'' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
4'
• Cache'memory'adalah'memori'kecepatan'Nnggi,' berukuran'kecil,'yang''digunakan'untuk'menyimpan' salinan'data'dan'instruksi'yang'sering'diakses'oleh'CPU.'' • Cache'memory'berfungsi'menjembatani'perbedaan' kecepatan'antara'CPU'dan'Memori'Utama.' • Cache'memory'menyebabkan'memori'utama'tampak' lebih'cepat'bagi'prosesor'daripada'sebenarnya' • Dalam'implementasinya'jenis'memori'yang'digunakan' untuk'cache'adalah'staNk'RAM'(SRAM).
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
5'
• Secara'lojik,'cache'memory'berada'diantara'prosesor' dan'memori'utama.' • Secara'fisik,'bisa'di'luar'prosesor'maupun'di'dalam' prosesor.'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
6'
• Kecepatan' – Semakin'besar'ukuran'cache'semakin'cepat' (sampai'ukuran'tertentu)' – Apabila'ukuran'cache'semakin'besar,'proses' pengecekan'cache'lebih'lama.'
• Harga' – Semakin'besar'cache,'semakin'mahal
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
7'
• Analisis'program'menunjukkan'bahwa'banyak'Instruksi' program'dieksekusi'berulang'kali'selama'beberapa'periode' waktu,'sementara'yang'lain'diakses'relaNf'lebih'jarang.' – Instruksi'ini'adalah'loop'sederhana,'loop'bersarang,'atau' beberapa'prosedur'yang'dipanggil'berulang"ulang.' – Hal'ini'disebut'locality(of(reference.'
• Temporal'locality'of'reference:' – Instruksi'baru'dieksekusi'kemungkinan'akan'dieksekusi'lagi' segera.'
• SpaNal'locality'of'reference:' – Instruksi'dengan'alamat'yang'dekat'dengan'instruksi'yang' baru'idieksekusi'cenderung'akan'segera'dieksekusi.' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
8'
• Cache'berisi'salinan'sebagian'isi'memori'utama' • Pada'saat'CPU'membaca'sebuah'word'memory,' dilakukan'pemeriksaan'untuk'mengetahui'apakah'word' berada'di'cache' • Jika'word'berada'di'cache,'maka'akan'dikirimkan'ke'CPU' yang'dikenal'sebagai'proses(HIT( • Jika'Ndak'ada,'maka'blok'memori'utama'yang'terdir'idari' sejumlah'word'tetap'akan'diletakkan'di'cache'yang' dikenal'sebagai'proses(MISS'dan'selanjutnya'dikirim'ke' CPU' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
9'
• Hit':'keNka'data'ditemukan'dalam'cache'' • Miss':'keNka'data'Ndak'ditemukan'dalam'cache'' • Hit'Rate':'prosentase'ditemukannya'data'dalam'cache' Miss'rate':'prosentase'Ndak'ditemukannya'data'dalam' cache'' • Hit'Time':'waktu'yang'diperlukan'untuk'mengakses' informasi'dalam'memori'' • Miss'Penalty':'waktu'yang'diperlukan'untuk'memproses' miss,'yang'melibatkan'perganNan'blok'dalam'cache' ditambah'dengan'waktu'yang'diperlukan'untuk' mentransfer'data'yang'diperlukan'ke'CPU'' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
10'
• Processor'mengeluarkan'permintaan'Baca,'blok'Words' ditransfer'dari'memori'utama'ke'cache,'satu'Word'pada' suatu'waktu.' • Referensi'data'di'blok'dari'Words'ini'ditemukan'dalam'cache.' • Pada'waktu'tertentu,'hanya'beberapa'blok'di'memori'utama' diadakan'dalam'cache.'' • Blok'mana'dalam'memori'utama'dalam'cache'ditentukan' oleh'”mapping'funcNon”.' • KeNka'cache'penuh,'dan'blok'Word'perlu'ditransfer' dari'memori'utama,'beberapa'blok'dari'Words'dalam'cache' harus'diganN.'Hal'ini'ditentukan'oleh'”replacement' algorithm".' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
11'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
12'
• Blok"blok'memori'utama'akan'dipetakan'ke'slot"slot' cache.' • Ukuran'memori'utama'jauh'lebih'besar'dari'ukuran' cache'(C'<<'M)'setngga'Ndak'semua'blok'memori' utama'dapat'ditempatkan'pada'cache.'' • Untuk'itu'diperlukan'suatu'cara'untuk'memetakan' blok'memori'utama'ke'cache.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
13'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
14'
• • •
Direct'mapping' Fully'associaNve'mapping' Set'associaNve'mapping
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
15'
Untuk'menjelaskan'teknik"teknik'pemetaan'ini' digunakan'data"data'berikut':'' • Ukuran'memori'utama'='216''word'' • Ukuran'cache'='211''word.' • Ukuran'blok'memori'='ukuran'slot'cache'='16'word'=' 24'word.' • Jumlah'blok'memori'='216'/'24''='4096'blok' • Jumlah'slot'cache'='211'/'24''='128'slot.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
16'
Aturan'pemetaan'!'i'='j'modulus'm'' ' di'mana:'' '' • i'='nomor'slot'cache' ' ' • j'='nomor'blok'memori'utama' • m'='jumlah'slot'cache
''
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
17'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
18'
Contoh:''
Tentukan'pada'slot'mana'blok'0,'1,128,140'akan'dipetakan.' Jawab:( Blok'0':'''' '' ' 'i'='j'modulus'm' ' 'i'='0'modulus'128' ' 'i'='0' Jadi'blok'0'akan'dipetakan'ke'slot'0.' ' Dengan'cara'yang'sama':' Blok'1' '→'Slot'1' Blok'128 '→'Slot'0' Blok'140 '→'Slot'12
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
19'
• 7'bit'pada'field'SLOT'menentukan'di'slot'mana'word' tersebut'seharusnya'disimpan.' • 4'bit'pada'field'WORD'menentukan'posisi'word'pada'slot' tersebut.' • 5'bit'pada'field'TAG'menentukan'blok'memori'yang'mana' yang'saat'itu'tersimpan'di'cache. Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
20'
Contoh':' • Saat'ini'salinan'word"word'dari'blok'0'sedang'ada'di' slot'0.'Word"word'dari'blok'0'memiliki'alamat'0000' 0000'0000'0000'sampai'0000'0000'0000'1111.' • 5'bit'terNnggi'dari'word'tersebut'akan'disimpan'pada' tag'yang'ada'pada'cache.'BerarN'pada'saat'word" word'dari'blok'0'ada'di'slot'0,'maka'pada'tag'slot'0' akan'tersimpan'bilangan'00000.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
21'
• Misalkan'CPU'akan'mengambil'sebuah'word'dengan' alamat'0000'0000'0000'0000.'' • Maka'yang'pertama'kali'diproses'adalah'7'bit'pada' field'SLOT'='000'0000.'' • Ini'berarN'data'tersebut'seharusnya'tersimpan'pada' slot'0.'' • Untuk'memasNkan'apakah'word'tersebut'ada'pada' pada'slot'0,'5'bit'terNnggi'dari'alamat'tersebut'(0000' 0)'dibandingkan'dengan'isi'tag'slot'0.'Ternyata'sama,' kesimpulannya'word'tersebut'ada'di'cache. Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
22'
• Misalkan'CPU'akan'mengambil'sebuah'word'dengan' alamat'1000'0000'0000'0000.'' • Maka'yang'pertama'kali'diproses'adalah'7'bit'pada'field' SLOT'='000'0000.'' • Ini'berarN'data'tersebut'seharusnya'tersimpan'pada'slot' 0.'' • Untuk'memasNkan'apakah'word'tersebut'ada'pada'pada' slot'0,'5'bit'terNnggi'dari'alamat'tersebut'(1000'0)' dibandingkan'dengan'isi'tag'slot'0'(0000'0).'Ternyata' Ndak'sama,'kesimpulannya'word'tersebut'Ndak'ada'di' cache. Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
23'
Keuntungan:'' • kesederhanaan'proses'pemetaannya.'Selain'itu'pada' saat'proses''pengecekan'ada'Ndaknya'word'di'cache' hanya'satu'tag'yang'perlu'dicek'isinya.' Kelemahan:'' • kurang'fleksibel,'sebuah'blok'harus'dipetakan'ke'slot' yang'tetap,'sehingga'Ndak'bisa'memanfaatkan'slot' yang'kosong.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
24'
• Teknik'ini'digunakan'untuk'mengatasi' keNdakfleksibelan'teknik'direct'mapping.' • Pada'teknik'ini'seNap'blok'boleh'dipetakan'ke' blok'mana'saja.'Dengan'cara'ini'pemetaan' lebih'fleksibel'dan'dapat'memanfaatkan'slot" slot'yang'kosong.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
25'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
26'
• 4'bit'pada'field'WORD'menentukan'posisi'word' pada'slot'tersebut.' • 12'bit'pada'field'TAG'menentukan'blok'memori' yang'mana'yang'saat'itu'tersimpan'di'cache'(pada' slot'tersebut). Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
27'
Contoh:( • Misalkan'CPU'akan'mengambil'sebuah'word'dengan' alamat'0000'0000'0000'0000.'' • Pada'teknik'direct'mapping,''yang'pertama'kali'diproses' adalah'7'bit'pada'field'SLOT'untuk'menentukan'isi'TAG' slot'mana'yang'akan'dibandingkan'dengan'5'bit'teratas' dari'alamat'word'tersebut.'' • Sedangkan'pada'teknik'fully'associaNve'mapping,'karena' Nap'blok'bisa'menempaN'slot'mana'saja,'maka'harus' dilakukan'pengecekan'pada'isi'Nap'TAG'untuk' menentukan'apakah'sebuah'word'ada'di'cache'atau'Ndak.' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
28'
• Kelemahan'utama'teknik'ini'adalah'lambatnya' proses'pengecekan'karena'harus'dilakukan' proses'pengecekan'pada'Nap'TAG.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
29'
• Teknik'ini'merupakan'kombinasi'kedua'teknik' sebelumnya.' • Pada'teknik'ini'beberapa'slot'dikelompokkan' menjadi'sebuah'set.'Ukuran'Nap'set'dapat'diatur.' • Tiap'blok'harus'dipetakan'pada'set'tertentu,'tetapi' bebas'dipetakan'pada'slot'mana'saja,'yang' merupakan'anggota'dari'set'tersebut.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
30'
Aturan'pemetaan'!'i'='j'modulus's' ' ' '' ' 'di'mana:' ' '' • i'='nomor'set'cache' • j'='nomor'blok'memori'utama' • s'='jumlah'set
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
31'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
32'
• 6'bit'pada'field'SET'menentukan'di'SET'mana'word' tersebut'mungkin'disimpan.' • 6'bit'pada'field'TAG'menentukan'blok'memori'yang'mana' yang'saat'itu'tersimpan'di'cache'(pada'slot'tersebut).' • 4'bit'pada'field'WORD'menentukan'posisi'word'pada'slot' tersebut. Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
33'
• Misalkan'CPU'akan'mengambil'sebuah'word'dengan'alamat' 1111'0000'0000'0000.'' • Maka'yang'pertama'kali'diproses'adalah'6'bit'pada'field'SET'=' 00'0000.'' • Ini'berarN'data'tersebut'mungkin'tersimpan'pada'SET'0.'' • Selanjutnya'untuk'mengetahui'apakah'word'tersebut'memang' ada'pada'pada'SET'0'atau'Ndak,'6'bit'terNnggi'dari'alamat' tersebut'(1111'00)'dibandingkan'dengan'isi'Nap'TAG'yang'ada' pada'SET'0.'' • Jika'ada'yang'sama,'berarN'word'tersebut'ada'pada'SET'0'pada' slot'yang'isi'TAG"nya'sama'dengan'keenam'bit'tersebut.'Jika' Ndak'ada'yang'sama,'berarN'word'tersebut'Ndak'ada'di'cache' dan'harus'diambil'dari'memori'utama. Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
34'
• Keuntungan'teknik'ini'adalah'lebih'fleksibel' dibanding'dengan'teknik'direct'mapping,' tetapi'juga'proses'pembandingan'isi'tagnya' relaNf'lebih'cepat'dibanding'teknik'fully' associaNve'karena'jumlah'tag'yang' dibandingkan'lebih'sedikit.'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
35'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
36'
• Pada'teknik'direct'mapping,'jika'sebuah'blok'akan' disalinkan'ke'sebuah'slot'dan'slot'tersebut'sedang' terisi,'maka'blok'yang'baru'tersebut'langsung'akan' mengganNkan'blok'yang'lama.' • Pada'teknik'fully'associaNve'dan'set'associaNve' mapping,'jika'sebuah'blok'akan'disalinkan'ke'slot' cache'dan'semua'slot'saat'itu'penuh,'maka'harus' ditentukan'isi'slot'mana'yang'harus'diganN.'' • Untuk'itu'diperlukan'suatu'algoritma'pengganNan.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
37'
• First'In'First'Out'(FIFO)':'mengganN'blok'yang' paling'lama'menempaN'cache.' • Least'Recently'Used'(LRU)':'mengganN'blok' yang'paling'lama'Ndak''digunakan.' • Least'Frequently'Used'(LFU)':'mengganN'blok' yang'paling'jarang'digunakan.' • Random':'mengganN'secara'acak. Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
38'
• Sebelum'sebuah'blok'yang'berada'di'dalam' cache'dapat'diganN,'harus'diketahui'apakah' blok'tersebut'sudah'diubah'selama'di'cache' atau'Ndak.' • Bila'belum'diubah,'blok'lama'dapat'langsung' diNndih.' • Bila'sudah'diubah,'maka'isi'memori'utama' harus'diperbaharui.'' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
39'
• Write'Through' • Write'Back'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
40'
• Penulisan'dilakukan' pada'cache'dan'juga' memori'utama' • Akan'menyebabkan' banyak'trafik' • Memperlambat' proses'penulisan
hjps://en.wikipedia.org/wiki/Cache_%28compuNng%29' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
41'
• Pada'awalnya,'perubahan'hanya'dilakukan'di'cache.' • Sebuah'bit'akan'diset'apabila'update'terjadi.' • Pada'saat'blok'akan'diganN,'penulisan'pada'memori' hanya'dilakukan'apabila'bit'tersebut'dalam'keadaan' diset.' • SeNap'I/O'harus'mengakses'langsung'ke'cache' karena'isi'memori'utama'Ndak'valid.' • Rangkaian'menjadi'rumit.
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
42'
hjps://en.wikipedia.org/wiki/Cache_%28compuNng%29' Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
43'
Ukuran'kinerja'cache,'dilihat'berdasarkan'miss' raNo':' • Hit'raNo'(HR)'='Jumlah'referensi'yang' mengacu'pada'cache'/'total'jumlah'referensi' • Miss'raNo'(MR)'='1'"'HR
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
44'
Organisasi'Sistem'Komputer'(c)'20105'Priyanto'
45'