Cache memory

21
Tugas Perkuliahan CACHE MEMORY ARSITEKTUR KOMPUTER Semester Genap 2015/2016

Transcript of Cache memory

Page 1: Cache memory

Tugas Perkuliahan

CACHE MEMORY

ARSITEKTUR KOMPUTERSemester Genap 2015/2016

Program Studi Teknik Informatika Universitas Atma Jaya Yogyakarta 2016

Page 2: Cache memory

1.1. Gambaran Umum Cache Memory

Cache berasal dari kata cash. Dari istilah tersebut, cache berarti tempat

menyembunyikan atau tempat simpanan sementara. Memory ini terletak antara register dan

RAM (memori utama), sehingga pemrosesan data tidak langsung mengacu pada memori utama.

Tipe memory ini adalah tipe SDRAM yang memiliki kapasitas terbatas namun memiliki

kecepatan yang sangat tinggi dan harga yang lebih mahal daripada memori utama. Harga

memory ini bisa mencapai seratus dollar per mega byte-nya ($100/MB).

Prinsip kerja dari cache memory yaitu data-data yang digunakan kembali (reusable)

disimpan di dalam cache memory dan apabila sekali waktu diperlukan, ALU akan mengambil

data tersebut dari memori ini. Cara ini dimaksudkan untuk meningkatkan transfer data dengan

menyimpan data yang pernah diakses pada cache memory tersebut, sehingga apabila data yang

diakses adalah data yang sama maka data langsung diambil dari cache memory. Pendekatan

seperti ini membuat pemrosesan data menjadi lebih cepat jika dibandingkan dengan pemrosesan

data yang datanya diperoleh dari RAM.

Gambar 1.1. Gambar Posisi Cache Memory pada Sistem Memory.

Gambaran umum karakteristik cache memory adalah sebagai berikut:

■ Cache memory merupakan memori tipe SDRAM yang memiliki kecepatan sangat tinggi

dan digunakan untuk menjembatani gap atau perbedaan kecepatan antara CPU (cepat) dan

main memory (lambat)

■ Kapasitas lebih kecil tetapi lebih cepat dari RAM (main memory);

■ Cache memory menyimpan salinan data dari memori utama, tetapi saat pemrosesan

data tidak langsung mengacu atau berhadapan dengan memori utama ;

■ Word atau eksekusi perintah yang disimpan didalam cache memory diambil dari main

Yohanes Dwiki Witman Gusti Made / 140707748

Page 3: Cache memory

memory sesuai perintah CPU.

1.2. Level Cache Memory

Terdapat tiga level cache yang digunakan komputer, yaitu Level 1 (Cache L1), Level 2

(Cache L2) dan Level 3 (Cache L3). Prinsip kerjanya ketiga level ini sederhana. CPU pertama-

tama akan memeriksa L1 cache, diikuti dengan L2 dan L3 cache. Jika processor telah

menemukan bit data yang dibutuhkan, maka disebut dengan cache hit. Namun jika cache tidak

menyediakan bit data yang dibutuhkan, processor mendapatkan sebuah cache miss, dan data

akan diambil dari RAM (main memory) yang lebih lambat.

Cache Level 1 (L1) terletak di dalam prosesor (internal cache), memiliki kecepatan

akses paling tinggi dan harganya paling mahal. Ukuran byte untuk Cache L1 bervariasi, mulai

dari 8KB, 64KB, dan 128KB. Cache L1 terintegrasi langsung di dalam prosesor agar instruksi-

instruksi yang dibutuhkan untuk menjalankan program telah siap digunakan dan hanya tinggal

mengambilnya langsung dari Cache L1, sehingga CPU dapat memproses request tanpa adanya

jeda (delay).

Cache Level 2 (L2) memiliki kapasitas yang lebih besar dari L1 yaitu sekitar 256KB -

2MB, akan tetapi memiliki kecepatan yang lebih rendah dari L1. Cache L2 letaknya terpisah

dengan prosesor atau disebut external cache. Biasanya L2 cache terintegrasi langsung pada

motherboard komputer.

Gambar 1.2. Gambar Cache Level 1 di Cache Memory.

Cache level 3 (L3) hanya dimiliki oleh komputer multi-prosesor. Fungsinya mengontrol

data yang masuk dari cache L2 dari masing-masing inti prosesor. Beberapa processor juga

menggabungkan L1 dan L2 cache bahkan juga menggabungkan L3 cache. Kecepatan akses L3

Yohanes Dwiki Witman Gusti Made / 140707748

Page 4: Cache memory

cache memang lebih lambat daripada kedua level cache tadi, namun memiliki kapasitas memori

yang jauh lebih besar.

2.1. MAPPING CACHE MEMORY

Fungsi pemetaan adalah metode yang digunakan untuk menemukan/menempatkan

sebuah alamat memori dalam sebuah cache. Ada dua kegiatan yang terjadi yaitu menyalin

sebuah blok dari memori utama ke dalam cache dan juga untuk menerima data dari cache. Maka

diperlukan algoritma pemetaan blok memori utama ke dalam saluran cache memory karena saluran

cache memory memiliki kapasitas lebih kecil dibandingkan dengan blok memori utama . Pemilihan

teknik pemetaan akan menentukan organisasi cache memory. Terdapat tiga metode, yaitu pemetaan

langsung (direct mapping), pemetaan asosiatif, dan pemetaan asosiatif set.

2.1.1. DIRECT MAPPING

Setiap block dari memori utama hanya memetakan ke dalam satu baris cache. Jika suatu

block ditemukan di cache, maka block tersebut selalu ditemukan pada tempat yang sama.

Nomor baris dihitung menggunakan rumus berikut:

i = j modulo m

di mana i = Nomor baris cache

j = Nomor block pada memori utama

m = Jumlah baris di cache

Berikut perhitungan table cache line pada direct mapping.

Cache line Blocks main memori

0 0, m, 2m, 3m…2s-m

1 1,m+1, 2m+1…2s-m+1

m-1 m-1, 2m-1,3m-1…2s-1

Pada cara ini, address pada main memory dibagi 3 field atau bagian, yaitu Tag

identifier, Line number identifier, dan Word identifier (offset). Word identifier berisi

informasi tentang lokasi word atau unit addressable lainnya dalam line tertentu pada cache. Line

Yohanes Dwiki Witman Gusti Made / 140707748

Page 5: Cache memory

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 tsb ditentukan, jika blok tempat lokasi

data tersebut sudah dikopi dari main memory ke cache . Tag yang ada pada line akan dicek

untuk melihat apakah benar blok yang dimaksud ada pada line tsb.

Keuntungan menggunakan Direct Mapping yaitu (1) mudah dan murah

diimplementasikan, (2) Mudah untuk menentukan letak salinan data main memory pada cache.

Kerugian menggunakan Direct Mapping adalah (1) Setiap blok main memory hanya dipetakan

pada 1 line saja, (2) Terkait dengan sifat lokal pada main memory, sangat mungkin mengakses

blok yang dipetakan pada line yang sama pada cache. (3) 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.

Tag s-r Line r Word w 8 bits 14 bits 2 bits

Gambar 2.1.1. Organisasi Direct Mapping cache.

Item KeteranganPanjang alamat (s + w) bitsJumlah unit yang dapat dialamati 2s+w words or bytes

Yohanes Dwiki Witman Gusti Made / 140707748

Page 6: Cache memory

Ukuran Blok sama dengan ukuran Line 2w words or bytesJumlah blok di memori utama 2s+ w/2w = 2sJumlah line di cache m = 2rBesarnya tag (s - r) bits

CONTOH PERHITUNGAN DIRECT MAPPINGSOAL 1

Sesuai rumus table cache line pada direct mapping diatas, 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, ...

SOAL 2

SOAL 3

Yohanes Dwiki Witman Gusti Made / 140707748

Page 7: Cache memory

SOAL 4

Diketahui: Main memory berukuran 16 MByte Cache berukuran 64 kByte 1 byte = 1 alamat 1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4 alamat

Sebutkan jumlah bit untuk tag (s-r), line (r), dan word (w) !Gambarkan mappingnya !Berikan contohnya !

Maka: Jumlah alamat total = 16 MB/1 byte = 16 M alamat Memory 16 M alamat = 24 . 220 = 224 Jumlah bit alamat yang diperlukan = 24

bit (lebar alamat) Jumlah bit identitas word (w) = 2 bit (1 blok = 4 byte = 22) Jumlah line cache = 64 kbyte/4 byte = 16 k line 16 k = 24 . 210 = 214 Jumlah bit line = 14 bit Jumlah bit tag (s-r) = 24 – 14 – 2 = 8 bit Format alamat memori: (dari sisi cache)

Jumlah blok memori = 16 Mbyte/4 byte = 4 M blok

1 line cache 1 blok memori, maka: line:blok = 16 K: 4 M = 1:(22 . 210)/ 24 =1:256 1 line cache mempunyai kemungkinan ditempati oleh 256 data yang

berbeda (nomor tag berbeda) Jumlah tag = 28 = 256 tag

1 tag = 4 M blok / 256 = 22 x 220 / 28 = 214 = 16 kblok

Setiap nomor blok memori hanya akan menempati satu nomor line cache tertentu saja (tidak berpindah-pindah)

Yohanes Dwiki Witman Gusti Made / 140707748

Page 8: Cache memory

2.1.2. ASSOCIATIVE MAPPING

■ Memungkinkan blok diletakkan di sebarang line yang sedang tidak terpakai.

■ Diharapkan akan mengatasi kelemahan utama Direct Mapping.

■ Haras menguji setiap cache untuk menemukan blok yang diinginkan.

o Mengecek setiap tag pada line

o Sangat lambat untuk cache berukuran besar.

■ Nomor line menjadi tidak berarti. Address main memory dibagi menjadi 2

field saja, yaitu tag dan word offset. Melakukan pencarian ke semua tag untuk

menemukan blok.

22 bits

Gambar 2.1.2. Organisasi Associative Mapping cache.

Item KeteranganPanjang alamat (s + w) bitsJumlah unit yang dapat dialamati 2s+w words or bytesUkuran Blok sama dengan ukuran Line 2w words or bytesJumlah blok di memori utama 2s+ w/2w = 2sJumlah line di cache undeterminedBesarnya tag s bits

Keuntungan Associative Mapping: cepat dan fleksibel. Kerugiannya: biaya

implementasi. Misalnya : untuk cache ukuran 8 kbyte dibutuhkan 1024 x 17 bit associative

memory untuk menyimpan tag identifier.

Yohanes Dwiki Witman Gusti Made / 140707748

Page 9: Cache memory

CONTOH PERHITUNGAN ASSOCIATIVE MAPPINGSOAL 1

SOAL 2 Diketahui:

Main memory berukuran 16 MByte

Cache berukuran 64 kByte

1 alamat = 1 byte

1x transfer data = 1 blok memori = 1 line cache = 4 byte

Maka:

Memori 16 Mbyte = 24 . 220 = 224 Jumlah bit alamat yang diperlukan = 24 bit

Jumlah bit identitas word (w) = 2 bit (1 blok = 4 byte = 22)

Jumlah bit tag = 24 – 2 = 22 bit

Format alamat memori: (dari sisi cache)

Jumlah blok memori = 16 Mbyte/4 byte = 4 M blok = jumlah tag (222)

1 line cache 1 blok memori (tag), maka:

1 line cache mempunyai kemungkinan ditempati oleh

4 M data yang berbeda

Yohanes Dwiki Witman Gusti Made / 140707748

Page 10: Cache memory

Setiap tag dapat menempati nomor line yang mana saja (tidak berhubungan dengan nomor baris)

Setiap blok memori mempunyai satu pasangan nomor tag

Yohanes Dwiki Witman Gusti Made / 140707748

Page 11: Cache memory

2.1.3. SET ASSOCIATIVE MAPPING

■ Merupakan kompromi antara Direct dengan Full Associative Mapping.

■ Membagi cache menjadi sejumlah set (v) yang masing-masing memilikisejumlah line (k)

■ Setiap blok dapat diletakkan di sebarang line dengan nomor set:nomor set = j modulo v

■ 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 associative mapping.

Keuntungan menggunakan Set Associative Mapping antara lain:

■ Setiap blok memori dapat menempati lebih dari satu kemungkinan nomorline (dapat menggunakan line yang kosong), sehingga thrashing dapatdiperkecil.

■ Jumlah tag lebih sedikit (dibanding model associative), sehingga jalur untukmelakukan perbandingan tag lebih sederhana.

Item KeteranganPanjang alamat (s + w) bitsJumlah unit yang dapat dialamati 2s+w words or bytesUkuran Blok sama dengan ukuran Line 2w words or bytesJumlah blok di memori utama 2dJumlah line dalam set kJumlah set V=2dJumlah line di cache Kv = k*2dBesarnya tag (s-d) bits

CONTOH PERHITUNGAN SET ASSOCIATIVE MAPPINGSOAL 1

Page 12: Cache memory

SOAL 2 Diketahui:

Main memory berukuran 16 MByte

Cache berukuran 64 kByte

1 alamat = 1 byte

1x transfer data = 1 blok memori = 4 byte

Maka:

Memory 16 Mbyte = 24 . 220 = 224 Jumlah bit alamat yang diperlukan = 24 bit

Jumlah bit identitas word (w) = 2 bit (1 blok = 4 byte = 22)

Jumlah line cache = 64 kbyte/4 byte = 16 k line

1 set = 2 line jumlah set = 16k/2 = 8 k set

8 k = 23 . 210 = 213 Jumlah bit set = 13 bit (0000 - 1FFF)

Jumlah bit tag = 24 – 13 – 2 = 9 bit (range: 000 – 1FF)

Jumlah tag = 29 = 512 tag

Format alamat memori: (dari sisi cache)

Jumlah alamat memori/tag = 213+2 = 25 . 210 = 32 k

Page 13: Cache memory

Range alamat memori/tag (24 bit) = 000000 – 007FFF alamat memori : 000000, 008000, 010000, …, FF8000 selalu terletak pada set nomor yang sama (0000)

Setiap alamat memori di atas bebas menempati salah satu line pada nomor set tersebut

Setiap satu nomor blok memori hanya dapat menempati satu nomor set

Satu nomor set dapat dapat ditempati oleh:

512 nomor tag berbeda tetapi nomor blok-nya sama

3.1. ALGORITMA PENGGANTIAN HALAMAN

Page 14: Cache memory

Algoritma penggantian merupakan mekanisme pergantian blok-blok yang lama dengan

data baru di dalam cache memory. Pada pemetaan langsung (direct mapping) hanya terdapat

satu kemungkinan slot bagi sembarang blok tertentu sehingga direct mapping tidak memerlukan

algoritma penggantian blok, namun dalam pemetaan asosiatif dan asosiatif set, algoritma ini

mempunyai peranan penting untuk meningkatkan kinerja cache memory.

Algoritma yang paling efektif adalah Least Recently Used (LRU), yaitu mengganti blok

data yang terlama (paling lama tidak diakses) berada dalam cache memory dan tidak memiliki

referensi.

Algoritma lainnya adalah First In First Out (FIFO), yaitu mengganti blok data yang

awal masuk. Algoritma ini tidak memperhatikan apakah suatu data baru diakses atau tidak

seperti algoritma LRU, hanya saja algoritma ini berdasarkan seberapa lama data tersebut sudah

ada di cache memori.

Algoritma Least Frequently Used (LFU) adalah algoritma mengganti blok data yang

mempunyai referensi paling sedikit. Data yang diganti adalah data yang paling lama (paling

pertama) sudah ada di cache memori.

Teknik lain adalah algoritma Random, yaitu penggantian

tidak berdasakan pemakaian datanya, melainkan berdasarkan slot dari beberapa slot

kandidat secara acak.

Page 15: Cache memory

CONTOH PERHITUNGAN ALGORITMA

PENGGANTIAN HALAMAN

FIFO SOAL 1

FIFO SOAL 2Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan

pengaksesan data adalah:

a b c d c b a b c kemudian datang data e maka data yang diganti adalah ???

Jawaban: a (a paling lama/awal berada di cache)

Kalau data yang diakses sebelum data e adalah d, maka data yang diganti adalah ???

Jawaban: a (a paling lama/awal berada di cache)

LRU SOAL 1

Page 16: Cache memory

LRU SOAL 2Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan

pengaksesan data adalah:

a b c d c b a b c kemudian datang data e maka data yang diganti adalah ???

Jawaban: d

Kalau data yang diakses sebelum data e adalah d, maka data yang diganti adalah ???

Jawaban: a (a lebih lama tidak diakses dibanding d)

LFU SOAL 1Kapasitas cache hanya 4 baris sedangkan jumlah blok data jauh lebih banyak. Jika urutan

pengaksesan data adalah:

a b c d c b a b c a d kemudian datang data e maka data yang diganti adalah ???

Jawaban: d (d paling jarang diakses)

Kalau urutan data yang diakses sebelum data e adalah a b c d c b a b c a d d, maka data yang

diganti adalah ???

Jawaban: a (nilai counter a sama dengan yang lain, tetapi karena a datang paling

awal maka a berada pada baris paling awal) FIFO

b (paling lama tidak diakses) LRU

3.2. WRITE POLICY

Data yang telah berubah pada memori utama harus di update di cache memory agar tidak

menimbulkan data yang tidak valid karena perbedaan di cache dan memory utama.

Ada beberapa teknik update diantaranya, write through, yaitu operasi penulisan melibatkan

data pada memori utama dan sekaligus pada cache memory sehingga

data selalu valid. Kekurangan teknik ini adalah menjadikan lalu lintas data sangat tinggi sehingga

bisa terjadi hang. Teknik lainnya adalah write back, yaitu teknik meminimasi penulisan dengan cara

penulisan pada cache memory saja. Pada saat akan terjadi penggantian blok data cache memory

maka baru diadakan penulisan di memori utama.

Page 17: Cache memory

DAFTAR PUSTAKA

Stallings, William. 2010. Computer Organization and Architecture 8th Edition.

Prentice Hall.

Malvino, Albert Paul. Digital Computer Electronic, diterjemahkan oleh Tjia May

On, Erlangga, Jakarta 1983.

Daftar Website:

■ http://en.wikipedia.org/wiki/Cache_coherency

■ http://en.wikipedia.org/wiki/Cache_algorithms

■ http://williamstallings.com/ComputerOrganization/COA8e-Instructor/index.html

■ http://www.tomshardware.com/reviews/athlon-l3-cache,2416-2.html

■ https://littleradita.files.wordpress.com/2009/11/mappingorkom.pdf

■ https://id.scribd.com/doc/16644704/COA-15-Cache-Memory

■ http://javaandro.blogspot.co.id/2014/06/makalah-cache-memory.html

■ Slide Sistem Operasi Universitas Atma Jaya Yogyakarta Pertemuan Ke-8.