Professional Documents
Culture Documents
Lec.4 1
Cache Memory
Cache memory adalah memori kecepatan
tinggi, tetapi berukuran kecil, yang digunakan
untuk menyimpan salinan data / instruksi yang
sering diakses oleh CPU.
Cache memory berfungsi menjembatani
perbedaan kecepatan antara CPU dan Memori
Utama.
Dalam implementasinya jenis memori yang
digunakan untuk cache adalah statik RAM
(SRAM).
Lec.4 2
Cache Memory
Lec.4 3
Operasi Cache
Lec.4 4
Locality of Reference
Lec.4 5
Cache Design
Ukuran cache
Pemetaan (Mapping Function)
Algoritma Penggantian (Replacement
Algorithm)
Write Policy
Ukuran Blok
Jumlah Cache
Lec.4 6
Ukuran Cache
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
Lec.4 7
Pemetaan
Lec.4 8
Pemetaan
Lec.4 9
Teknik Pemetaan
Direct mapping
Fully associative mapping
Set associative mapping
Lec.4 10
Teknik Pemetaan
Lec.4 11
Direct mapping
Aturan pemetaannya:
i = j modulus m
di mana:
i = nomor slot cache
Lec.4 12
Direct mapping
Lec.4 13
Direct mapping
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.
Lec.4 14
Struktur Alamat
Lec.4 15
Struktur Alamat
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 tertinggi dari word tersebut akan
disimpan pada tag yang ada pada cache.
Berarti pada saat word-word dari blok 0 ada
di slot 0, maka pada tag slot 0 akan
tersimpan bilangan 00000.
Lec.4 16
Struktur Alamat
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 berarti data tersebut seharusnya tersimpan
pada slot 0.
Untuk memastikan apakah word tersebut ada
pada pada slot 0, 5 bit tertinggi dari alamat
tersebut (0000 0) dibandingkan dengan isi tag
slot 0. Ternyata sama, kesimpulannya word
tersebut ada di cache.
Lec.4 17
Struktur Alamat
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 berarti data tersebut seharusnya tersimpan
pada slot 0.
Untuk memastikan apakah word tersebut ada
pada pada slot 0, 5 bit tertinggi dari alamat
tersebut (1000 0) dibandingkan dengan isi tag
slot 0 (0000 0). Ternyata tidak sama,
kesimpulannya word tersebut tidak ada di
cache.
Lec.4 18
Keuntungan & Kelemahan Direct
Mapping
Keuntungan teknik direct mapping adalah
pada kesederhanaan proses pemetaannya.
Selain itu pada saat proses pengecekan ada
tidaknya word di cache hanya satu tag yang
perlu dicek isinya.
Kelemahan teknik direct mapping adalah
kurang fleksibel, sebuah blok harus dipetakan
ke slot yang tetap, sehingga tidak bisa
memanfaatkan slot yang kosong.
Lec.4 19
Fully associative mapping
Lec.4 20
Fully associative mapping
Lec.4 21
Struktur Alamat
Lec.4 22
Struktur Alamat
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 associative mapping,
karena tiap blok bisa menempati slot mana saja,
maka harus dilakukan pengecekan pada isi tiap TAG
untuk menentukan apakah sebuah word ada di
cache atau tidak.
Lec.4 23
Kelemahan utama teknik ini adalah
lambatnya proses pengecekan karena
harus dilakukan proses pengecekan
pada tiap TAG.
Lec.4 24
Set Associative Mapping
Lec.4 25
Set Associative Mapping
Aturan pemetaan :
i = j modulus s
di mana:
i = nomor set cache
j = nomor blok memori utama
s = jumlah set
Lec.4 26
Set Associative Mapping
Lec.4 27
Struktur Alamat
Lec.4 28
Struktur Alamat
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 berarti data tersebut mungkin tersimpan pada SET 0.
Selanjutnya untuk mengetahui apakah word tersebut
memang ada pada pada SET 0 atau tidak, 6 bit tertinggi
dari alamat tersebut (1111 00) dibandingkan dengan isi
tiap TAG yang ada pada SET 0.
Jika ada yang sama, berarti word tersebut ada pada
SET 0 pada slot yang isi TAG-nya sama dengan
keenam bit tersebut. Jika tidak ada yang sama, berarti
word tersebut tidak ada di cache dan harus diambil dari
memori utama.
Lec.4 29
Keuntungan
Lec.4 30
Algoritma pergantian
Pada teknik direct mapping, jika sebuah blok
akan disalinkan ke sebuah slot dan slot
tersebut sedang terisi, maka blok yang baru
tersebut langsung akan menggantikan blok
yang lama.
Pada teknik fully associative dan set
associative mapping, jika sebuah blok akan
disalinkan ke slot cache dan semua slot saat
itu penuh, maka harus ditentukan isi slot mana
yang harus diganti. Untuk itu diperlukan suatu
algoritma penggantian.
Lec.4 31
Algoritma pergantian
Lec.4 32
Write Policy
Lec.4 33
Write Policy
Lec.4 34
Write Through
Lec.4 35
Write Back
Lec.4 36
Ukuran kinerja cache
Lec.4 37
Intel Processor’s 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 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
Lec.4 38
Pentium 4 Diagram (Simplified)
Lec.4 39
Pentium 4 Core Processor
Fetch/Decode Unit
Fetches instructions from L2 cache
Decode into micro-ops
Store micro-ops in L1 cache
Out of order execution logic
Schedules micro-ops
Based on data dependence and resources
May speculatively execute
Execution units
Execute micro-ops
Data from L1 cache
Results in registers
Memory subsystem
L2 cache and systems bus
Lec.4 40
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
Lec.4 41