04 Memori Cache
-
Upload
rendra-neutron -
Category
Documents
-
view
141 -
download
23
description
Transcript of 04 Memori Cache
Organisasi dan Arsitektur Komputer
William Stallings
Edisi 7
Bab 4
Memory Cache
Karakteristik
• Lokasi
• Kapasitas
• Satuan transfer
• Metode akses
• Kinerja
• Jenis fisis
• Karakteristik fisik
• Organisasi
Lokasi
• CPU
• Internal
• Eksternal
Kapasitas
• Ukuran kata
—Satuan alami dari organisasi
• Jumlah kata
—atau Bytes
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$
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
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
Hirarki Memory
• Registers
—dalam CPU
• Internal Memory atau Memory Utama
—Bisa meliputi satu atau lebih level cache
—“RAM”
• Memory Eksternal
—Penyimpanan cadangan
Diagram Hirarki Memory
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
Jenis-jenis fisis
• Semikonduktor
—RAM
• Magnetik
—Disk & Tape
• Optikal
—CD & DVD
• Lainnya
—Bubble
—Hologram
Karakteristik fisis
• Decay (penurunan kemampuan)
• Volatility (kerentanan)
• Erasable (bisa dihapus)
• Power consumption (konsumsi daya)
Organisasi
• Pengaturan fisik dari bit-bit ke kata-kata
• Tidak selalu demikian
• Misal pengacakan (interleaved)
Garis dasar (bottom line)
• Seberapa banyak?
—Kapasitas
• Seberapa cepat?
—Waktu adalah uang
• Seberapa mahal?
Daftar Hirarki
• Register
• L1 Cache
• L2 Cache
• Memory utama
• Disk cache
• Disk
• Optikal
• Tape
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
Lokalitas Rujukan
• Selama proses eksekusi sebuah program, memory merujuk ke klaster.
• Misal loop-loop
Cache
• Memory cepat yang berukuran kecil
• Berada diantara memory utama dan CPU
• Mungkin diletakkan dalam chip CPU atau modul
Cache/Struktur Memory Utama
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
Diagram alir-Operasi baca Cache
Perancangan Cache
• Ukuran
• Fungsi-fungsi pemetaan
• Algoritma penempatan ulang/penggantian
• Aturan penulisan
• Ukuran blok
• Jumlah 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
Organisasi Cache Tipikal
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 -
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)
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)
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
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
Organisasi Cache Pemetaan Langsung
Contoh
Pemetaan
Langsung
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
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
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
Organisasi Cache Asosiatif Penuh
Contoh
Pemetaan Asosiatif
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
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
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
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
Organisasi Cache Asosiatif Himpunan
Dua Jalan
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
Pemetaan
Asosiatif
Himpunan
2 Jalur
Contoh
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
Algoritma Penggantian (1)
Pemetaan Langsung
• Tidak ada pilihan
• Setiap blok hanya memetakan ke satu jalur
• Mengganti jalur tersebut
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
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
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!
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
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
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
Pentium 4 Block Diagram
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
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
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
Diagram Blok PowerPC G5
Sumber-sumber Internet
• Situs pabrikan
—Intel
—IBM/Motorola
• Pencarian pada kata cache
• (a+b)+c=a+(b+c)
• (axb)xc=ax(bxc)
• (a-b)-c=a-(b-c)
• (a:b):c=a:(b:c)