Professional Documents
Culture Documents
Leksion 9
Leksion 9
Transferimi i të dhënave
Computer
Processor Devices
Control Input
Memory
Store to
Datapath memory Output
+
Registers Load from
memory
1
5/27/2017
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
5/27/2017
3
5/27/2017
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
5/27/2017
Vonesa mesatare: 5 - 20 ms
Kapaciteti: 500-2000GB
10
5
5/27/2017
11
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.
12
6
5/27/2017
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.
13
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) 14
7
5/27/2017
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
15
8
5/27/2017
17
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ë.
18
9
5/27/2017
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.
• Ndërtimi i sistemit të memorjes përcakton
gjithashtu:
– Si gjenerohet kodi nga kompilatorët
– Si aplikacionet përdorin kompjuterin
– Si Sistemi Operativ menaxhon memorjen dhe I/O
19
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
20
10
5/27/2017
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 21
22
11
5/27/2017
..00110
..00111
..01000
..01001
..01010
..01011 Cdo bllok në memorjen kryesore ka
..01100
..01101
një pozicion të caktuar në cache!
..01110
..01111
23
12
5/27/2017
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
25
Cache hit :
( Valid[index] = TRUE ) AND
( Tag[ index ] = Tag[ memory address ] )
26
13
5/27/2017
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
27
Shembull
• Supozojmë se cache (slide 25), është bosh dhe duhet
të aksesohen blloqet në pozicionet: 0 1 2 3 4 3 4 15
28
14
5/27/2017
Cache Hit =
[Tag Matches]
AND [Valid] 32
29
Aksesimi i të dhënave
• Nëse na jepet një cache direct mapped 16KB:
– 16-byte blocks x 1024 cache blocks
30
15
5/27/2017
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
16
5/27/2017
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
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
17
5/27/2017
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
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
18
5/27/2017
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
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
38
19
5/27/2017
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
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
40
20
5/27/2017
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
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
21
5/27/2017
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
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
44
22
5/27/2017
45
46
23
5/27/2017
47
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
48
24
5/27/2017
49
50
25
5/27/2017
51
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
52
26
5/27/2017
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:
Avantazhi/Disavantazhi i Direct
Mapping
(+) Jo e kushtueshme
(-) E kufizuar. P.sh. Supozojmë se blloqet 0 dhe 4
vendosen në të njëjtin vend në cache. Programi po
përdor bllokun 0, pastaj bllokun 4, pastaj bllokun
0 dhe pastaj bllokun 4.
Duhen bërë vazhdimisht zhvendosje të blloqeve 0
dhe 4 për zëvendësim!
54
27
5/27/2017
Shembull
• Supozojmë se cache është bosh dhe duhet të
aksesohen blloqet në pozicionet: 0 4 0 4 0 4 0 4
55
8 KB
Miss rate (%)
16 KB
64 KB
5
256 KB
0
8 16 32 64 128 256
28
5/27/2017
57
58
29
5/27/2017
Shembull
• Memorja kryesore ka 214byte; cache ka 16 blloqe
dhe cdo bllok ka 8 byte. Tregoni sa bite kanë
fushat e adresës.
• Zgjidhje:
– Për përzgjedhjen e byte tek një bllok duhen 3 bite
(Byte: 3 bit)
– Tag: 14-3 = 11 bit
60
30
5/27/2017
61
31
5/27/2017
5
6 Cache 2-way Set Associative
7
8
9
10
11 Çdo bllok në memorjen kryesore ka
12
13
dy pozicione të caktuara në cache!
14
15
63
31 N+M-1 N N-1 0
Tag Set Index Offset
64
32
5/27/2017
66
33
5/27/2017
= = = =
Kërkim paralel në A B C D
blloqet e një set-i
A
B 4 x 1 Select
C
D 32
Hit Data
67
Shembull
• Supozojmë se cache është bosh dhe duhet të
aksesohen blloqet në pozicionet: 0 4 0 4 0 4 0 4
34
5/27/2017
Shembull
• Kemi një cache me hartëzim 2-way set
associative; memorja kryesore ka 214byte; cache
ka 16 blloqe dhe cdo bllok ka 8 byte. Tregoni sa
bite kanë fushat e adresës.
• Zgjidhje:
– Për përzgjedhjen e byte tek një bllok duhen 3 bite
(Byte: 3 bit)
– Për përzgjedhjen e grupit ku bën pjesë blloku
duhen 16 blloqe/2 mundësi = 8 (Grupi: 3 bit)
– Tag: 14-3-3 = 8 bit
69
70
35
5/27/2017
Përmbledhje e Hartëzimeve
Direct Mapped
• Një vend në cache për bllok, një krahasues, nuk ka MUX (për
përzgjedhjen e të dhënave midis blloqeve)
Set Associative
Fully associative
Referenca
• Libri:
– Linda Null “Essentials of Computer
Organization and Architecture”, 2003,
Kapitulli 6 (faqe 233-247)
– Computer Organization and Design. The
Hardware/Software Interface, 4th Edition
Kapitulli 5 (faqe 450-468)
72
36