Professional Documents
Culture Documents
Leksion 10
Leksion 10
Leksion 10
Transferimi i të dhënave
Computer
Processor Devices
Control Input
Memory
Store to
Datapath memory Output
+
Registers Load from
memory
1
1/22/2020
Hyrje
• Nevojitet memorje me kapacitet të madh,
kosto të ulët dhe që aksesohet shpejt!
• Si realizohet?
– Shfrytëzohet fakti që jo gjithë të dhënat dhe
instruksionet aksesohen vetëm një herë dhe me
të njëjtin probabilitet.
Parimi i lokalitetit
• Lokalitet në kohë: nëse një e dhënë është
aksesuar, atëhërë ka një probabilitet të madh
që kjo e dhënë të aksesohet sërisht.
• Lokalitet në hapësirë: nëse një e dhënë është
aksesuar, atëherë ka një probabilitet të madh
që edhe të dhënat që ndodhen afër saj të
aksesohen së shpejti.
2
1/22/2020
3
1/22/2020
Hierarkia e memorjes
• Eshtë një strukturë që përdor disa nivele mmorjeje; sa
më shumë rritet distanca nga proçesori aq më shumë
rritet madhësia e memorjes dhe koha e aksesimit.
• Shfrytëzon parimin e lokalitetit
• Ka tre lloje teknologjish për ndërtimin e memorjeve.
Teknologjia SRAM/DRAM
A SRAM Cell
SRAM DRAM
6 transistorë / qelizë memorjeje 1 transistor / qelizë memorjeje
→ Densitet i ulët → Densitet i lartë
4
1/22/2020
Vonesa mesatare: 5 - 20 ms
Kapaciteti: 500-2000GB
10
10
5
1/22/2020
Hierarkia e memorjes
• Kopjimi i të dhënave bëhet midis
dy niveleve që janë afër.
• Sasia më e vogël e informacionit
që mund të zhvendoset quhet
bllok (madhësia e tyre është fuqi
e 2-it).
• Nëse të dhënat e kërkuara nga
proçesori gjenden në nivelin e
sipërm atëherë kemi hit; në të
kundërt kemi miss.
11
11
Cache: Ideja
• Ruaj të dhënat e përdorura së fundmi në një
memorje të vogël por të shpejtë.
• Shko tek memoja e madhe dhe e ngadaltë:
– Vetëm kur nuk gjen dot të dhënat/instruksionet në
memorjen më të shpejtë
• Si funksionon?
Parimi i Lokalitetit
Programi akseson vetëm një pjesë të vogël të hapësirës
së adresimit të memorjes brenda një intervali të shkurtër
kohe.
12
12
6
1/22/2020
Cache
• Memorja midis proçesorit dhe memorjes kryesore.
• Mban të dhëna që janë aksesuar edhe që mendohet se do
të aksesohen së shpejti (parimi i lokalitetit)
• Zakonisht ka disa nivele cache-je
– Niveli i parë L1 ndodhet ne proçesor
– Niveli i dyte L2 ndodhet midis proçesorit dhe memorjes
kryesore
• Cache-ja ndërtohet nga teknologjia SRAM
Processor Devices
Control Input
Memory
Datapath Cache (DRAM) Output
Registers (SRAM) 13
13
Blloqet në cache
Adresa 8-byte blocks
Bllok
..00000 Word
..00001 Byte
Word0
..00010
..00011
Block0
..00100
..00101
Word1 Memory Address
..00110
31 N N-1 0
..00111
Numri i Bllokut Offset
..01000
..01001
Word2
..01010
..01011
Block1 Bitet [31:N] ➔ numri i bllokut
..01100
..01101
Bitet [N-1:0] ➔ byte offset brenda bllokut
Word3
..01110
..01111
14
14
7
1/22/2020
15
16
16
8
1/22/2020
Hierarkia e memorjes
• Nëse hit rate është i madh atëherë koha efektive e aksesimit
është afërsisht sa koha e aksesimit të nivelit më të lartë.
17
17
Sistemi i memorjes
• Faktor kryesor në përcaktimin e
performancës, pasi gjithë programet
harxhojnë shumicën e kohës për aksesimin
e memorjes.
18
18
9
1/22/2020
Cache - adresimi
• Si mund të përcaktohet nëse një e dhënë
është apo jo në cache?
• Po nëse është, si do të gjendet kjo e dhënë?
• Ka disa teknika hartëzimi:
– Direct Mapped
– Associative
– Set-Associative
19
19
Teknikat e hartëzimit
• Adresa që gjenerohet nga CPU është adresa e të
dhënës në memorjen kryesore (do specifikohet më
saktë në leksionin pasardhës).
• Nëse e dhëna është kopjuar në cache atëherë
adresa e saj nuk është e njëjtë më adresën e
memorjes kryesore
• Teknikat e hartëzimit: konvertojnë adresën e
memorjes kryesore në pozicionin e të dhënës në
cache.
• Bitet tek adresa grupohen në fusha që kanë
kuptime te ndryshme 20
20
10
1/22/2020
21
21
..00110
..00111
..01000
..01001
..01010
..01011 Cdo bllok në memorjen kryesore ka
..01100
..01101
një pozicion të caktuar në cache!
..01110
..01111
22
22
11
1/22/2020
Dy bitet e tjera me
më pak peshë të
adresës përcaktojnë
Ndodhet e dhëna bllokun në cache
në cache?
Krahasohet tag-u
me dy bitet më me
peshë të adresës
24
24
12
1/22/2020
Cache hit :
( Valid[index] = TRUE ) AND
( Tag[ index ] = Tag[ memory address ] )
25
25
31 N+M-1 N N-1 0
Tag Index Offset
Cache
16KB Number of Cache Blocks
1 Block = 16KB / 16bytes = 1024 = 210
= 16 bytes Cache Index, M = 10 bite
Cache Tag = 32 – 10 – 4 = 18 bite
26
26
13
1/22/2020
Shembull
• Supozojmë se cache (slide 25), është bosh dhe duhet
të aksesohen blloqet në pozicionet: 0 1 2 3 4 3 4 15
27
27
Cache Hit =
[Tag Matches]
AND [Valid] 32
28
28
14
1/22/2020
Aksesimi i të dhënave
• Nëse na jepet një cache direct mapped 16KB:
– 16-byte blocks x 1024 cache blocks
29
29
30
30
15
1/22/2020
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 0
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
31
31
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 0
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
32
32
16
1/22/2020
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
33
33
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
34
34
17
1/22/2020
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
35
35
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
36
36
18
1/22/2020
Hapi 3. Kthe Word3 (byte offset = 12) tek Regjistri [Lokalitet në hapësirë ]
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
37
37
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
38
38
19
1/22/2020
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 0
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
39
39
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 1 0 I J K L
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
40
40
20
1/22/2020
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 1 0 I J K L
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
41
41
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 1 0 I J K L
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
42
42
21
1/22/2020
Hapi 2. Blloku i cache është Valid por kemi Tag mismatch [ Miss ]
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 0 A B C D
2 0
3 1 0 I J K L
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
43
43
44
44
22
1/22/2020
45
45
46
46
23
1/22/2020
Hapi 2. Blloku i cache është Valid por kemi Tag mismatch [ Miss ]
Data
Word0 Word1 Word2 Word3
Index Valid Tag Byte 0-3 Byte 4-7 Byte 8-11 Byte 12-15
0 0
1 1 2 E F G H
2 0
3 1 0 I J K L
4 0
5 0
... ... ... … … … … …
1022 0
1023 0
47
47
48
48
24
1/22/2020
49
49
50
50
25
1/22/2020
Shembull
• Memorja kryesore ka 214 byte, cache ka 16 blloqe
dhe cdo bllok ka 8 byte. Përcaktoni madhësinë e
fushave të adresës.
• Zgjidhje:
Memorja ka 214 /23 = 211 blloqe
Adresat do të jenë 14 bit.
Offset-i(Word): 3 bit
Block: 4 bit (meqë ka 16 blloqe)
Tag: 7 bit
51
51
Shembull
• Adresa është 15 bit.
• Ka 64 blloqe në cache
• Cdo bllok ka 8 fjalë (1 fjale: 1 byte)
• Duhen 6 bit për bllokun; 3 bit për fjalën; 6 bit
mbeten për tag-un
• Nëse CPU do të gjeneronte adresën:
26
1/22/2020
Referenca
• Libri:
– Linda Null “Essentials of Computer
Organization and Architecture”, 2003,
Kapitulli 6 (faqe 233-245)
– Computer Organization and Design. The
Hardware/Software Interface, 4th Edition
Kapitulli 5 (faqe 450-468)
53
53
27