Anda di halaman 1dari 24

CACHE

Chapt-3

IUS HWNet
FUNGSI PEMETAAN
MAPPING FUNCTION
 Metode yang digunakan untuk
menemukan/menempatkan sebuah alamat
memori dalam sebuah cache
 Menyalin sebuah blok dari memori utama ke
dalam cache dan digunakan juga untuk
menerima data dari cache
 Terdapat tiga macam MF:
 Direct
 Associative
 Set Associative
CONTOH CACHE
 Pada contoh ini akan digunakan untuk
mengilustrasikan fungsi pemetaan. Karakteristik
dari cache yang digunakan adalah:
 Ukuran : 64 kB
 Ukuran Block : 4 B, cache terdiri dari 16 k (214)
baris
 Address bus : 24-bit, 16 MB memori utama
dibagi dalam 4M block-block berukuran 4 B
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
STRUKTUR ALAMAT DIRECT MAPPING
Setiap alamat memori utama dibagi menjadi 3 bagian
 Least Significant Bits (LSB) w mengidentifikasikan
word unik dalam sebuah block
 Remaining Bits (RB) s menetapkan block yang terdapat
dalam memori. RB dibagi menjadi dua bagian
 LSB r dari total s mengidentifikasikan baris yang
ditempati dalam cache
 Most Significant Bits (MSB) s-r secara tunggal
mengiddentifikasi block dalam baris dari cache
STRUKTUR ALAMAT DIRECT
MAPPING (1)

s-r bits r bits w bits

Tag Bits identifying Bits identifying word


row in cache offset into block
STRUKTUR ALAMAT DIRECT
MAPPING (2)
 Mengapa r digunakan untuk mengidentifikasi baris pada
cache?
 More likely to have unique r bits than s-r bits based on
principle of locality of reference
CONTOH
Tag s-r Baris atau slot r Word w
8 14 2
 Alamat Bus 24 bit
 Pengenal (identifier) 2 bit word
 Pengenal block 22 bit
 Label (tag) 8 bit = 22-14
 Baris/ Slot 14 bit
 Tidak ada dua block yang berada dalam baris yang sama mempunyai
label (tag) yang sama
 Cek isi dari cache dengan menemukan baris dan membandingkan
label (tag)
Baris Cache Alamat di Main Memory
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 DIRECT
MAPPING
RINGKASAN DIRECT
MAPPING
 Panjang Alamat (address length) = (s + w) bits
 Jumlah unit yang dialamati (number of addressable
units) = 2s+w words/ bytes
 Ukuran block (block size) = lebar baris (line width) = 2w
words/bytes
 Jumlah block dalam memori (number of blocks in main
memory) = 2s+ w/2w = 2s
 Jumlah baris dalam cache (number of lines in cache) =
m = 2r
 Ukuran Tag (size of tag) = (s – r) bits
DISKUSI
 What cache line number will the following addresses
be stored to, and what will the minimum address and
the maximum address of each block they are in be if
we have a cache with 4K lines of 16 words to a block
in a 256 Meg memory space (28-bit address)?

a.)9ABCDEF16Tag s-r Line or slot r Word w


b.)123456716 12 12 4
Assume that a portion of the tags in the cache in our
example looks like the table below. Which of the following
addresses are contained in the cache?
a.) 438EE816 b.) F18EFF16
c.) 6B8EF316 d.) AD8EF316
Tag (binary) Line number (binary) Addresses wi/ block
00 01 10 11
0101 0011 1000 1110 1110 10
1110 1101 1000 1110 1110 11
1010 1101 1000 1110 1111 00
0110 1011 1000 1110 1111 01
1011 0101 1000 1110 1111 10
1111 0001 1000 1110 1111 11
KELEBIHAN DAN KELEMAHAN
DIRECT MAPPING
 Sederhana
 Tidak Mahal

 Lokasi tetap untuk block tertentu


 Jika sebuah program mengakses 2 block yang dipetakan pada
baris yang sama, kemungkinan gagal sangat tinggi (thrasing)
ASSOCIATIVE MAPPING
KARAKTERISTIK
 Sebuah block pada memory utama bisa mengisi
pada sebarang baris pada cache
 Alamat memori diintrepetasikan sebagai:
 Least significant bits (LSB) w = posisi word pada
block
 Most significant bits (MSB) s = Tag digunakan untuk
mengidentifikasikan block yang mana disimpan pada
baris tertentu
 Pencocokan tag setiap baris harus melalui
pengujian tertentu
 Pencarian cache menjadi mahal dan lambat
CONTOH ASSOCIATIVE MAPPING

Tag – s bits Word – w bits


(Pada contoh = 22) (Contoh = 2)

 Tag 22 bit tersimpan untuk setiap block data 32 bit


 Bandingkan kolom Tag dengan tag pada cache untuk
mengecek hit
 Least significant bits (LSB) 2 bit dari alamat memori
mengidentifikasi dari keempatnya yang menunjukan 8 bit
word yang dibutuhkan dari 32 bit data
ORGANISASI FULLY
ASSOCIATIVE
RINGKASAN FULLY ASSOCIATIVE
 Panjang alamat (address length) = (s + w) bits
 Jumlah unit yang bisa dialamati (number of addressable
units) = 2s+w words/bytes
 Ukuran block (block size) = ukuran baris (line size) = 2w
words/bytes
 Jumlah dari block pada memori utama (number of blocks
in main memory) = 2s+ w/2w = 2s
 Jumlah baris dari cache (number of lines in cache) =
tidak bisa ditentukan
 Ukuran Tag = s bits
Assume that a portion of the tags in the cache in our example looks like
the table below. Which of the following addresses are contained in the
cache?

a.) 438EE816 b.) F18EFF16 c.) 6B8EF316 d.) AD8EF316

Tag (binary) Addresses wi/ block


00 01 10 11
0101 0011 1000 1110 1110 10
1110 1101 1100 1001 1011 01
1010 1101 1000 1110 1111 00
0110 1011 1000 1110 1111 11
1011 0101 0101 1001 0010 00
1111 0001 1000 1110 1111 11
SET ASSOCIATIVE MAPPING
KARAKTERISTIK
 Panjang alamat (address length) adalah s+w bits
 Cache di bagi dalam sejumlah himpunan
tertentu, v = 2d
 k blocks/lines dapat dimuat pada setiap set
 k lines pada cache disebut k-way set associative
mapping
 Jumlah baris dalam cache (number of lines in a
cache) = v•k = k•2d
 Ukuran tag (Size of tag) = (s-d) bits
 Gabungan dari Direct dan Associative
k = 1,  direct mapping
v = 1,  associative mapping
 Setiap set memuat sejumlah baris, pada dasarnya jumlah baris
dibagi sebanyak jumlah himpunannya
 Block tertentu memetakan ke sebarang baris pada himpunan
spesifik
 Cara yang biasa digunakan menggunakan 2 baris tiap set
 Disebut 2-way associative mapping
 Block tertentu bisa berada pada salah satu dari 2 baris pada
satu himpunan spesifika one of 2 lines in only one specific
set
 Perbaikan yang cukup signifikant dibanding direct mapping
RINGKASAN
 Panjang alamat (address length) = (s + w) bits
 Jumlah alamat yang bisa di alamati (number of addressable
units) = 2s+w words/bytes
 Ukuran block (block size) = ukuran baris (line size) = 2w
words/bytes
 Jumlah block pada memori utama (number of blocks in main
memory) = 2s+ w/2w = 2s
 Jumlah baris pada himpunan (number of lines in set) = k
 Jumlah set (number of sets) = v = 2d
 Jumlah baris pada cache (number of lines in cache) = kv
= k * 2d
 Ukuran Tag (size of tag) = (s – d) bits
DISKUSI

For each of the following addresses, answer the following


questions based on a 2-way set associative cache with 4K
lines, each line containing 16 words, with the main memory
of size 256 Meg memory space (28-bit address):

 What cache set number will the block be stored to?


 What will their tag be?
 What will the minimum address and the maximum addre
each block they are in be?
Tag s-r Set s Word w
1. 9ABCDEF16
13 11 4
2. 123456716

Anda mungkin juga menyukai