You are on page 1of 29

IKI10230

Pengantar Organisasi Komputer


Bab 5.2: Cache
Sumber:
1. Hamacher. Computer Organization, ed-5.
2. Materi kuliah CS152/1997, UCB.

23 April 2003
Bobby Nazief (nazief@cs.ui.ac.id)
Qonita Shahab (niet@cs.ui.ac.id)
bahan kuliah: http://www.cs.ui.ac.id/kuliah/iki10230/

MEMORY HIERARCHY

Memory Hierarchy (1/4)


Prosesor
menjalankan program
sangat cepat waktu eksekusi dalam orde
nanoseconds sampai dengan picoseconds
perlu mengakses kode dan data program!
Dimana program berada?

Disk
HUGE capacity (virtually limitless)
VERY slow: runs on order of milliseconds
so how do we account for this gap?

Menggunakan teknologi memori!


3

Me
mor
Memory (DRAM)
y
Kapasitas jauh lebih besar dari registers, lebih kecil
Hier
dari disk (tetap terbatas)
arc
Access time ~50-100 nano-detik, jauh lebih cepat
hy
dari disk (mili-detik)
(2/4
) Mengandung subset data pada disk (basically
portions of programs that are currently being run)

Fakta: memori dengan kapasitas besar (murah!)


lambat, sedangkan memori dengan kapasitas
kecil (mahal) cepat.
Solution: bagaimana menyediakan (ilusi)
kapasitas besar dan akses cepat!
4

Memory Hierarchy (3/4)


Processor

Higher
Levels in
memory
hierarchy
Lower

Level 1
Level 2

Increasing
Distance
from Proc.,
Decreasing
cost / MB

Level 3
...
Level n

Size of memory at each level


5

Memory Hierarchy (4/4)


Pada tingkat yang lebih dekat dengan
Prosesor, mempunyai karakteristik:
Lebih kecil,
Lebih cepat,
Subset semua data pada level lebih atas (mis.
menyimpan data yang sering digunakan)
Efisien dalam pemilihan mana data yang akan
disimpan, karena tempat terbatas

Lowest Level (usually disk) contains all


available data

Me
mor
Youre writing a term paper (Processor) at a
y in Doe
table
Hier
Doe
arcLibrary is equivalent to disk
hy
essentially limitless capacity
Ana
very slow to retrieve a book
logy
Table is memory
:
smaller capacity: means you must return book when
Libr
table fills up
ary
easier and faster to find a book there once youve
(1/2
) already retrieved it

Me
mor
yOpen books on table are cache
smaller capacity: can have very few open books
Hier
arc fit on table; again, when table fills up, you must
close a book
hy
much, much faster to retrieve data
Ana
logy
Illusion created: whole library open on the
:tabletop
Libr
Keep as many recently used books open on
ary table as possible since likely to use again
Also keep as many books on table as possible,
(2/2
) since faster than going to library

Why hierarchy
works
The Principle of Locality:
Program access a relatively small portion of
the address space at any instant of time.
Probability
of reference

Address Space

2^n - 1

Memory Hierarchy: How Does it


Work?
Temporal Locality (Locality in Time):
Keep most recently accessed data items
closer to the processor

Spatial Locality (Locality in Space):


Move blocks consists of contiguous words
to the upper levels
To Processor

Upper Level
Memory

Lower Level
Memory

Blk X

From Processor

Blk Y

10

Modern Computer System


By taking advantage of the principle of locality:
Present the user with as much memory as is available in the
cheapest technology.
Provide access at the speed offered by the fastest technology.

Processor
Control

Speed (ns): 1s
Size (bytes): 100s

On-Chip
Cache

Registers

Datapath

Second
Level
Cache
(SRAM)

Main
Memory
(DRAM)

10s

100s

Ks

Ms

Secondary
Storage
(Disk)

Tertiary
Storage
(Disk)

10,000,000s 10,000,000,000s
(10s ms)
(10s sec)
Gs
Ts
11

How is the hierarchy


managed?
Registers <-> Memory
by compiler (programmer?)

Cache <-> Memory


by the hardware

Memory <-> Disks


by the hardware and operating system (virtual
memory)
by the programmer (files)

12

Basis of Memory Hierarchy


Disk contains everything.
When Processor needs something, bring it
into to all lower levels of memory.
Cache contains copies of data in memory
that are being used.
Memory contains copies of data on disk that
are being used.
Entire idea is based on Temporal Locality: if
we use it now, well want to use it again
soon

13

Cache

14

Organisasi Hierarki Memori: Cache


Processor
Processor
Reg

Cache
Cache
Memory-I/O
Memory-I/Obus
bus

Memory
Memory

I/O
I/O
controller
controller

disk
Disk

disk
Disk

I/O
I/O
controller
controller

I/O
I/O
controller
controller

Display
Display

Network
Network

15

Wh
at is
Kecil, storage cepat untuk meningkatkan
a
average
access time dibandingkan memori
cac
Memanfaatkan
spatial & temporal locality
he?
Sebenarnya cache terlihat pada hirarkis
penyimpanan
Registers a cache on variables software
managed
First-level cache a cache on second-level cache
Second-level cache a cache on memory
Memory a cache on disk (virtual memory)

16

Cache Design
Bagaimana organisasi cache? (ingat: cache
akan menerima alamat memori dari
prosesor, tidak ada perubahan pada
rancangan prosesor ada/tanpa cache).
Bagaimana melakukan mapping (relasi)
antara alamat memori dengan cache (ingat:
prosesor hanya melihat memory byte
addressable)
Bagaimana mengetahui elemen data tsb
berada di cache (hit) atau tidak ada (miss)
(ingat: cache jauh lebih kecil dari main
memory)?
17

Cache: Blok Memory


Transfer data antara cache dan memori dalam
satuan blok (kelipatan words)
Mapping (penerjemahan) antara blok di cache
dan di main memory (ingat: cache copy dari
main memory)

To Processor

Cache

Main
Memory

Blk X

From Processor

Blk Y

Hit
18

Direct Mapping
Memory
Address Memory

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Cache
Index
0
1
2
3

4ByteDirect
MappedCache

Lokasi cache 0 dapat diisi


data lokasi dari:
Lokasi memori:0, 4, 8, ...
Secara umum: lokasi memori
yang merupakan kelipatan 4
(jumlah blok cache)
19

Associative Mapping
Memory
Address Memory

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Cache
Index
0
1
2
3

4ByteAssociative
MappedCache

20

Set-Associative Mapping
Memory
Address Memory

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Cache
Index
0
1
2
3

4ByteSetAssociative
MappedCache
0
1
Cache
Set

21

Address Mapping

22

Example: Direct-Mapped
Masalah: multiple alamat memori map ke
indeks blok yang sama!
Bagaimana kita mengetahui apakah alamat blok
yang diinginkan berada di cache?
Harus ada identifikasi blok memori dikaitkan
dengan alamat

Bagaimana jika ukuran blok > 1 byte?


Solusi: bagi alamat dalam bentuk fields

ttttttttttttttttt iiiiiiiiii oooo


tag
to check
if have
correct block

index
to
select
block

byte
offset
within
block
23

Cache Address Terminology


Semua fields untuk penerjemahan dianggap
sebagai bilangan positif integer.
Index: indeks pada blok cache, dimana blok
(baris, entry) dari cache alamat tersebut
harus berada.
Offset: sekali kita telah menemukan blok
tsb, manakah byte pada blok tersebut akan
diakses.
Tag: sisa bit dari alamat setelah field index
dan offset; digunakan untuk membedakan
alamat memory yang mappingnya pada blok
yang sama dari cache.
24

Direct-Mapped Cache Example (1/3)


Misalkan kita mempunya 16KB data dengan
skema direct-mapped cache.
Setiap blok terdiri dari 4 word

Tentukan ukuran field: tag, index, dan offset


jika menggunakan komputer 32-bit.
Offset
Diperlukan untuk mengambil satu byte dalam blok
blok mempunyai: 4 words
16 bytes
24
bytes
diperlukan 4 bit untuk menentukan alamat byte

25

Dire
ctMap
Index: (~index into an array of blocks)
diperlukan untuk menentukan blok yang mana
ped
pada cache (rows yang mana)
Cac
cache mempunyai 16 KB = 214 bytes
he
blok mempunyai 24 bytes (4 words)
Exa
mpl
rows/cache = # blocks/cache (sebab setiap rows
e # terdiri
dari satu blok)
(2/3 =
bytes/cache / bytes/row
)
14
4

=
2 bytes/cache / 2 bytes/row
=
210 rows/cache
diperlukan 10 bit untuk menentukan indeks pada
rows dari cache

Tag: 32 (4 + 10) = 18 bit

26

Direct-Mapped Cache Example (3/3)

Contoh direct mapped cache tsb membagi


field atas

4 bits offset
10 bit index
18 bit tag

Struktur cache:

1.
2.
3.
4.

Menyimpan tag (unik untuk setiap blok)


dikaitkan dengan blok/rows.
Akses dilakukan dengan mencari index blok/
rows
Bandingkan tag dari alamat dan tag yang
disimpan pada row tersebut
Jika tag sama => HIT, ambil byte (offset)
Jika tidak sama => MISS, ambil blok dari
memori.

27

Akses Memori pada Direct-mapped Cache


ttttttttttttttttt iiiiiiiiii oooo
Cache
Tag
000000000000000000

Cache
Index
0000000000
0000000001
0000000010
0000000011

28

Replacement Algorithms
Berlaku bagi:
Associative Mapping
Set-Associative Mapping

Bagaimana menempatkan blok baru jika


cache sudah penuh berpengaruh pada
kinerja!
Beberapa algoritme:
LRU: Least Recently Used
LFU: Least Frequently Used
Random

29

You might also like