04 Memori Cache

58
Organisasi dan Arsitektur Komputer William Stallings Edisi 7 Bab 4 Memory Cache

description

Materi Memori Cache

Transcript of 04 Memori Cache

Page 1: 04 Memori Cache

Organisasi dan Arsitektur Komputer

William Stallings

Edisi 7

Bab 4

Memory Cache

Page 2: 04 Memori Cache

Karakteristik

• Lokasi

• Kapasitas

• Satuan transfer

• Metode akses

• Kinerja

• Jenis fisis

• Karakteristik fisik

• Organisasi

Page 3: 04 Memori Cache

Lokasi

• CPU

• Internal

• Eksternal

Page 4: 04 Memori Cache

Kapasitas

• Ukuran kata

—Satuan alami dari organisasi

• Jumlah kata

—atau Bytes

Page 5: 04 Memori Cache

Satuan Transfer

• Internal

—Biasanya ditentukan oleh lebar bus data

• Eksternal

—Biasanya sebuah blok yang jauh lebih besar daripada sebuah kata

• Satuan yg dapat dialamati

—Lokasi terkecil yang dapat dialamati secara unik

—Didalamnya tersimpan kata

—Kluster pada disk-disk M$

Page 6: 04 Memori Cache

Metode Akses (1)

• Berurutan (Sequential)

—Dimulai pada bagian awal dan dibaca sesuai dengan urutannya.

—Waktu akses tergantung pada lokasi data dan lokasi sebelumnya.

—Misal tape

• Langsung

—Tiap satuan blok mempunyai alamat unik

—Akses melompat ke suatu lokasi digabung dengan pencarian berurutan

—Waktu akses tergantung pada lokasi yang dicari dan lokasi sebelumnya

—misal disk

Page 7: 04 Memori Cache

Metode Akses (2)

• Random

—Alamat individual menunjukkan lokasi secara tepat

—Waktu akses tergantung pada lokasi atau akses sebelumnya

—misal RAM

• Asosiatif

—Data ditempatkan berdasarkan perbandingan dengan konten dari porsi penyimpanan

—Waktu akses tidak bergantung pada lokasi atau akses sebelumnya

—Misal cache

Page 8: 04 Memori Cache

Hirarki Memory

• Registers

—dalam CPU

• Internal Memory atau Memory Utama

—Bisa meliputi satu atau lebih level cache

—“RAM”

• Memory Eksternal

—Penyimpanan cadangan

Page 9: 04 Memori Cache

Diagram Hirarki Memory

Page 10: 04 Memori Cache

Kinerja

• Waktu akses

—Waktu antara penyajian alamat dan perolehan data yang benar

• Waktu siklus memory

—Waktu yang diperlukan oleh memory untuk pulih (“recover”) sebelum akses berikutnya

—Waktu siklus adalam akses + pemulihan

• Laju Transfer

—Laju data dapat dipindahkan

Page 11: 04 Memori Cache

Jenis-jenis fisis

• Semikonduktor

—RAM

• Magnetik

—Disk & Tape

• Optikal

—CD & DVD

• Lainnya

—Bubble

—Hologram

Page 12: 04 Memori Cache

Karakteristik fisis

• Decay (penurunan kemampuan)

• Volatility (kerentanan)

• Erasable (bisa dihapus)

• Power consumption (konsumsi daya)

Page 13: 04 Memori Cache

Organisasi

• Pengaturan fisik dari bit-bit ke kata-kata

• Tidak selalu demikian

• Misal pengacakan (interleaved)

Page 14: 04 Memori Cache

Garis dasar (bottom line)

• Seberapa banyak?

—Kapasitas

• Seberapa cepat?

—Waktu adalah uang

• Seberapa mahal?

Page 15: 04 Memori Cache

Daftar Hirarki

• Register

• L1 Cache

• L2 Cache

• Memory utama

• Disk cache

• Disk

• Optikal

• Tape

Page 16: 04 Memori Cache

Perlu cepat?

• Dimungkinkan untuk mebangun sebuah komputer yang hanya menggunakan RAM statis

• Komputer ini akan sangat cepat

• Komputer ini tidak memerlukan cache

—Bagaimana bisa meng-cache cache?

• Komputer ini akan sangat mahal

Page 17: 04 Memori Cache

Lokalitas Rujukan

• Selama proses eksekusi sebuah program, memory merujuk ke klaster.

• Misal loop-loop

Page 18: 04 Memori Cache

Cache

• Memory cepat yang berukuran kecil

• Berada diantara memory utama dan CPU

• Mungkin diletakkan dalam chip CPU atau modul

Page 19: 04 Memori Cache

Cache/Struktur Memory Utama

Page 20: 04 Memori Cache

Operasi Cache – overview

• CPU meminta isi dari lokasi memory

• Cek cache untuk data ini

• Jika ada, ambil dari cache (cepat)

• Jika tidak ada, baca blok yang diinginkan dari memory utama ke cache

• Kemudian kirimkan dari cache ke CPU

• Cache meliputi tanda untuk menunjukkan memory utama yang berada pada setiak slot cache

Page 21: 04 Memori Cache

Diagram alir-Operasi baca Cache

Page 22: 04 Memori Cache

Perancangan Cache

• Ukuran

• Fungsi-fungsi pemetaan

• Algoritma penempatan ulang/penggantian

• Aturan penulisan

• Ukuran blok

• Jumlah cache

Page 23: 04 Memori Cache

Ukuran bukan masalah

• Biaya

—Lebih banyak cache makin mahal

• Kecepatan

—Lebih banyak cache lebih cepat (sampai pada suatu nilai tertentu)

—Mengecek cache untuk data butuh banyak waktu

Page 24: 04 Memori Cache

Organisasi Cache Tipikal

Page 25: 04 Memori Cache

Perbandingan Ukuran Cache

Prosesor Jenis Tahun diluncurkan

Cache L1 Cache L2 Cache L3

IBM 360/85 Mainframe 1968 16 to 32 kB - -

PDP-11/70 Minicomputer 1975 1 kB - -

VAX 11/780 Minicomputer 1978 16 kB - -

IBM 3033 Mainframe 1978 64 kB - -

IBM 3090 Mainframe 1985 128 to 256 kB - -

Intel 80486 PC 1989 8 kB - -

Pentium PC 1993 8 kB/8 kB 256 to 512 kB -

PowerPc 601 PC 1993 32 kB - -

PowerPC 620 PC 1996 32 kB/32 kB - -

PowerPC G4 PC/Server 1999 32 kB/32 kB 256 to 1 MB 2 MB

IBM S/390 G4 Mainframe 1997 32 kB 256 kB 2 MB

IBM S/390 G6 Mainframe 1999 256 kB 8 MB -

Pentium 4 PC/Server 2000 8 kB/8 kB

256 kB -

IBM SP High end server/ supercomputer

2000 64 kB/32 kB 8 MB -

CRAY MTAn Supercomputer 2001 8 kB 2 MB -

Itanium PC/Server 2001 16 kB/16 kB 96 kB 4 MB

SGI Origin 2001 High end server 2001 32 kB/32 kB 4 MB -

Itanium 2 PC/Server 2002 32 kB 256 kB 6 MB

IBM POWER5 High end server 2003 64 kB 1,9 MB 36 MB

CRAY XD-1 Supercomputer 2004 64 kB/64 kB 1 MB -

Page 26: 04 Memori Cache

Fungsi Pemetaan

• Cache sebesar 64kByte

• Blok cache sebesar 4 bytes

—yaitu cache sebesar 16k (214) terdiri dari 4 bytes

• 16MBytes memory utama

• 24 bit alamat

—(224=16M)

Page 27: 04 Memori Cache

Pemetaan Langsung

• Setiap blok dari memory utama dipetakan ke hanya satu jalur cache

—Misal jika semuah blok ada dalam cache, maka harus berada pada tempat tertentu

• Alamat ditempatkan pada dua bagian

• Bit yang paling kurang signifikan w menunjukkan word (kata) unik

• Bit paling signifikan s (MSB) menunjukkan satu blok memory

• Bit MSB dibagi ke dalam sebuah area jalur cache r dan sebuah tanda s-r (paling signifikan)

Page 28: 04 Memori Cache

Pemetaan Langsung

Struktur Alamat

Tag s-r Line or Slot r Word w

8 14 2

• 24 bit alamat

• 2 bit penunjuk kata (blok 4 byte)

• 22 bit penunjuk blok

— 8 bit tanda (=22-14)

— 14 bit slot atau jalur

• Dua blok pada jalur yang sama mempunyai area Tag (tanda) yang tidak sama

• Cek isi cache dengan mencari jalur dan pengecekan Tag

Page 29: 04 Memori Cache

Pemetaan Langsung

Tabel Jalur Cache

• Jalur Cache Blok Memory Utama

• 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

Page 30: 04 Memori Cache

Organisasi Cache Pemetaan Langsung

Page 31: 04 Memori Cache

Contoh

Pemetaan

Langsung

Page 32: 04 Memori Cache

Ringkasan Pemetaan Langsung

• Panjang alamat = (s + w) bits

• Jumlah yang dapat dialamati = 2s+w kata atau bytes

• Ukuran blok = ukuran jalur = 2w kata atau bytes

• Jumlah blok dalam memory utama = 2s+ w/2w = 2s

• Jumlah jalur dalam cache = m = 2r

• Ukuran tanda (tag) = (s – r) bit

Page 33: 04 Memori Cache

Pemetaan Langsung (Kelebihan dan

kekurangan)

• Sederhana

• Tidak mahal

• Lokasi tetap untuk blok yg diberikan

—Jika sebuah program mengakses 2 blok yang dipetakan ke jalur yang sama berulang-ulang, jumlah kehilangan cache sangat tinggi

Page 34: 04 Memori Cache

Pemetaan Asosiatif

• Sebuah blok memory utama dapat dimuat ke dalam jalur manapun dari cache.

• Alamat memory dinyatakan dalam tanda (tag) dan kata (word)

• Tag secara unik menunjukkan blok memory

• Setiap tag jalur diuji kesesuaiannya

• Pencarian cache mahal

Page 35: 04 Memori Cache

Organisasi Cache Asosiatif Penuh

Page 36: 04 Memori Cache

Contoh

Pemetaan Asosiatif

Page 37: 04 Memori Cache

Tag 22 bit Word

2 bit

Pemetaan Asosiatif

Struktur Alamat

• 22 bit tag disimpan dalam setiap 32 bit blok data

• Membandingkan area tag dengan masukan tag dalam cache untuk mengecek pengaksesan (hit)

• 2 bit yang paling kurang signifikan mengidentifikasi kata 16 bit yang mana yang dibutuhkan dari blok data yang terdiri dari 32 bit

• Misal

—Alamat Tag Data Jalur Cache

—FFFFFC FFFFFC 24682468 3FFF

Page 38: 04 Memori Cache

Ringkasan Pemetaan Asosiatif

• Panjang alamat = (s + w) bits

• Jumlah satuan yang dapat dialamati = 2s+w kata atau bytes

• Ukuran blok = ukuran jalur = 2w kata atau bytes

• Jumlah blok dalam memory utama = 2s+ w/2w = 2s

• Jumlah jalur dalam cache = tidak ditentukan

• Ukuran tag = s bit

Page 39: 04 Memori Cache

Pemetaan Asosiatif Himpunan

• Cache dibagi menjadi beberapa himpunan

• Setiap himpunan terdiri dr sejumlah jalur

• Sebuah blok yang diberikan memetakan ke jalur manapun dalam himpunan yang diberikan

—Misal Block B dapat berada di jalur nmanapun dalam himpuan i

• Misal 2 jalur per himpunan

—2 cara pemetaan asosiatif

—Sebuah blok yang diberikan dapat pada salah satu dari 2 jalur dalam sebuah himpunan saja

Page 40: 04 Memori Cache

Pemetaan Asosiatif Himpunan

Contoh

• Himpunan angka 13 bit

• Jumlah blok dalam memory utama adalah modulo 213

• 000000, 00A000, 00B000, 00C000 … dipetakan ke himpunan yang sama

Page 41: 04 Memori Cache

Organisasi Cache Asosiatif Himpunan

Dua Jalan

Page 42: 04 Memori Cache

Pemetaan Asosiatif Himpunan

Struktur Alamat

• Menggunakan area himpunan untuk menentukan himpunan cache yang dilihat

• Membandingkan area tag untuk melihat jika terdapat hit (akses)

• Misal

—Jmlh alamat Tag Data Jmlh himpunan

—1FF 7FFC 1FF 12345678 1FFF

—001 7FFC 001 11223344 1FFF

Tag 9 bit Himpunan 13 bit Kata

2 bit

Page 43: 04 Memori Cache

Pemetaan

Asosiatif

Himpunan

2 Jalur

Contoh

Page 44: 04 Memori Cache

Ringkasan Pemetaan Asosiatif Himpunan

• Panjang Alamat = (s + w) bit

• Jumlah satuan yg bisa dialamati = 2s+w kata atau byte

• Ukuran blok = ukuran jalur = 2w kata atau byte

• Jumlah blok dalam memory utama = 2d

• Jumlah jalur dalam himpunan = k

• Jumlah himpunan = v = 2d

• Jumlah jalur dalam cache = kv = k * 2d

• Ukuran tag = (s – d) bit

Page 45: 04 Memori Cache

Algoritma Penggantian (1)

Pemetaan Langsung

• Tidak ada pilihan

• Setiap blok hanya memetakan ke satu jalur

• Mengganti jalur tersebut

Page 46: 04 Memori Cache

Algoritma Penggantian (2)

Asosiatif dan Asosiatif Himpunan

• Algoritma diimplementasikan pd perangkat keras (kecepatan)

• Penggunaan baru yang paling jarang (Least Recently used (LRU))

• Misal dalam 2 cara asosiatif himpunan

—Blok mana yang lru?

• First in first out (FIFO)

—Mengganti blok yang terlama berada dalam cache

• Penggunaan yang paling jarang

—Mengganti blok yang paling sedikit diakses

• Random

Page 47: 04 Memori Cache

Kebijakan Penulisan

• Tidak boleh menindas sebuah blok cache kecuali memory utama dimutakhirkan

• CPU jamak mungkin mempunyai cache masing-masing

• I/O mungkin mengalamati memory utama secara langsung

Page 48: 04 Memori Cache

Jalur penulisan

• Seluruh penulisan mengarah ke memory utama seperti halnya cache.

• CPU jamak dapat memonitor trafik pada memory utama untuk menjaga cache lokal tetap terbarukan

• Banyak trafik

• Memperlambat penulisan

• Ingat penulisan bogus melalui cache!

Page 49: 04 Memori Cache

Write back

• Updates initially made in cache only

• Update bit for cache slot is set when update occurs

• If block is to be replaced, write to main memory only if update bit is set

• Other caches get out of sync

• I/O must access main memory through cache

• N.B. 15% of memory references are writes

Page 50: 04 Memori Cache

Pentium 4 Cache

• 80386 – no on chip cache

• 80486 – 8k using 16 byte lines and four way set associative organization

• Pentium (all versions) – two on chip L1 caches —Data & instructions

• Pentium III – L3 cache added off chip

• Pentium 4 —L1 caches

– 8k bytes

– 64 byte lines

– four way set associative

—L2 cache – Feeding both L1 caches

– 256k

– 128 byte lines

– 8 way set associative

—L3 cache on chip

Page 51: 04 Memori Cache

Evolusi Cache Intel

Problem Solusi Prosesor pertama kali

Memory eksternal lebih lambat daripada bus

system.

Menambah cache eksternal menggunakan

teknologi memory yang lebih tinggi 386

Kenaikan kecepatan prosesor

mengakibatkan sumbatan pada bus eksternal

yang menghambat akses cache.

Pindahkan cache eksternal ke dalam chip ,

menggunakan kecepatan yang sama

dengan proseseor

486

Cache eksternal agak kecil karena

keterbatasan ruang dalam chip

Menambahkan cache L2 eksternal

menggunakan teknologi yang lebih cepat

dibanding memory utama

486

Contention occurs when both the Instruction

Prefetcher and the Execution Unit

simultaneously require access to the cache.

In that case, the Prefetcher is stalled while

the Execution Unit’s data access takes place.

Create separate data and instruction

caches.

Pentium

Increased processor speed results in external

bus becoming a bottleneck for L2 cache

access.

Create separate back-side bus that runs at

higher speed than the main (front-side)

external bus. The BSB is dedicated to the

L2 cache.

Pentium Pro

Move L2 cache on to the processor chip. Pentium II

Some applications deal with massive

databases and must have rapid access to

large amounts of data. The on-chip caches

are too small.

Add external L3 cache. Pentium III

Move L3 cache on-chip. Pentium IV

Page 52: 04 Memori Cache

Pentium 4 Block Diagram

Page 53: 04 Memori Cache

Prosesor Inti Pentium

• Unit Fetch/Dekode

—Mem-fetch instruksi-instruksi dari cache L2.

—Mendekode ke micro-ops

—Menyimpan micro-ops dalam cache L1

• Logika eksekusi yang tidak berurutan

—Penjadualan micro-ops

—Berbasis pada ketergantungan data dan sumber-sumber

—Mungkin dieksekusi secara spekulatif

• Satuan eksekusi

—Eksekusi micro-ops

—Data dari cache L1

—Hasilnya dalam register-register

• Subsistem memory

—Cache L2 dan bus sistem

Page 54: 04 Memori Cache

Pentium 4 Design Reasoning

• Decodes instructions into RISC like micro-ops before L1 cache

• Micro-ops fixed length — Superscalar pipelining and scheduling

• Pentium instructions long & complex

• Performance improved by separating decoding from scheduling & pipelining — (More later – ch14)

• Data cache is write back — Can be configured to write through

• L1 cache controlled by 2 bits in register — CD = cache disable

— NW = not write through

— 2 instructions to invalidate (flush) cache and write back then invalidate

• L2 and L3 8-way set-associative — Line size 128 bytes

Page 55: 04 Memori Cache

PowerPC Cache Organization

• 601 – single 32kb 8 way set associative

• 603 – 16kb (2 x 8kb) two way set associative

• 604 – 32kb

• 620 – 64kb

• G3 & G4 —64kb L1 cache

– 8 way set associative

—256k, 512k or 1M L2 cache – two way set associative

• G5 —32kB instruction cache

—64kB data cache

Page 56: 04 Memori Cache

Diagram Blok PowerPC G5

Page 57: 04 Memori Cache

Sumber-sumber Internet

• Situs pabrikan

—Intel

—IBM/Motorola

• Pencarian pada kata cache

Page 58: 04 Memori Cache

• (a+b)+c=a+(b+c)

• (axb)xc=ax(bxc)

• (a-b)-c=a-(b-c)

• (a:b):c=a:(b:c)