Descargar la presentación
La descarga está en progreso. Por favor, espere
1
7. Datuen Koherentzia DSM Konputagailuetan
Arkitektura Paraleloak IF - EHU 7. Datuen Koherentzia DSM Konputagailuetan - Sarrera - Koherentzia-direktorioak: MN / CM - Arazoak: trafikoa eta atomikotasuna - Origin konputagailuen protokoloa - SCI protokoloa (NUMA-Q)
2
Eta DSM sistemetan (mailak...)?
Sarrera Datuen koherentzia memoria partekatuko SMP sistemetan (komunikazio-sarea, busa): > Zelataria > Egoerak / egoera iragankorrak... Eta DSM sistemetan (mailak...)? > Memoria partekatua da, baina fisikoki banatuta dago sistemako nodoen artean. > Sarea ez da bus bat. Beraz, zelataria?
3
Nola eutsi datuen koherentziari DSM sistemetan?
Sarrera Nola eutsi datuen koherentziari DSM sistemetan? ▪ hardwareak ez du datuen koherentzia ziurtatzen (programatzailearen ardura da datuen koherentzia ziurtatzea) → NUMA ▪ hardwareak ziurtatzen du datuen koherentzia: → cc-NUMA Nola? Koherentzia-direktorioak.
4
Sarrera Koherentzia-direktorioak datu-blokeei buruzko informa-zioa gordetzen du: - egoera (egonkorra, iragankorra) - kopiak non dauden Koherentzia-direktorioa sistemako prozesadoreen artean banatzen da; ez da (ezin da!) gailu “zentralizatu” bat. Arazoak: - direktorioaren tamaina. - koherentzia mantentzeko sortzen den trafikoa. - koherentzia-eragiketen atomikotasuna.
5
Koherentzia-direktorioaren kokapena eta egitura:
Sarrera Koherentzia-direktorioaren kokapena eta egitura: - MNaren ondoan, koherentzia-hitz bat datu-bloke bakoitzeko: ▪ Full bit vector ▪ Limited bit vector - CMetan banatuta (+MN), blokeei buruzko informazioarekin “zerrenda estekatuak” osatuz: ▪ SCI, scalable coherent interface
6
Koher.-direktorioak (MN)
Koherentzia-direktorioa MNaren ondoan: 1. Full bit vector (MESI) Direktorioaren egitura: - bit bat prozesadoreko (1/0), datu-blokearen kopia duen edo ez adierazteko. - hainbat bit blokearen egoera adierazteko (ohiko egoerak). P0 P1 P2 P3 Eg > E > S > M > I > ez (MESI)
7
Koher.-direktorioak (MN)
Arazoak Direktorioaren tamaina, linealki hazten baita prozesadore kopuruaren arabera. - 64 byteko blokeak: P = 64 → 65 bit (8 byte) P = 256 → 257 bit (32 byte) P = → bit (128 byte) + % 200!
8
Koher.-direktorioak (MN)
Koherentzia-hitzaren tamaina murrizteko aukerak: 1. Datu-bloke “handiagoak” erabiltzea 2. Nodo kopurua txikiagoa izatea (egitura hierarkikoa, SMP zelatariak + direktorioa) - 128 byteko blokeak / 4 prozesadoreko nodoak: P = (256x4) → 257 bit (32 byte) + %25
9
Koher.-direktorioak (MN)
2. Limited bit vector - datu-blokeen kopia kopurua cacheetan mugatu egiten da: k kopia bakarrik. - koherentzia-hitzean, blokearen kopia duten prozesa-doreen helbideak (log P bit) gordetzen dira. egoera k × log2 P << P
10
Koher.-direktorioak (MN)
- 4 prozesadoreko nodoak / 128 byteko datu-blokeak / gehienez 5 kopia P = 256 (64x4) → 5 x = 31 bit ≈ 4 byte + % 3 P = (256x4) → 5 x = 41 bit ≈ 5 byte + % 4
11
LD A Koher.-direktorioak (MN) L H R 1 3 2 4 5 1 bit prozesadoreko
egoera M L KK = komunikazioen kontrolagailua D = koherentzia-direktorioa L = local H = home R= remote H P C KK D MN R 1 S 1 2 3 4 5
12
ST A Koher.-direktorioak (MN) L H R2 R1 1 3’ 3 2 4’ 4 beste bi kopia
egoera L KK = komunikazioen kontrolagailua D = koherentzia-direktorioa L = local H = home R= remote H P C KK D MN 0 …0 0 M 1 4 4’ 2 3 3’ R2 R1
13
Koher.-direktorioak (CM)
Koherentzia-direktorioak CMetan: egitura Datu-bloke baten egoerari buruzko informazioa ez da hitz bakar batean, direktorioan, zentralizatzen. Koherentzia-informazioa MNaren ondoan zein cacheetan banatzen da (cacheen direktorioetan). Esteka bikoitzeko zerrenda bat osatzen da datu-bloke bakoitzeko koherentzia-informazioarekin.
14
Koher.-direktorioak (CM)
Koherentzia-informazioa (datu-bloke bakoitzeko) @kop1 / egoera “MN” → @kopi-1 / egoera CM →
15
Koher.-direktorioak (CM)
Nola eratzen da bloke baten kopia-zerrenda estekatua? Pi,Pk *,Pk MN D datu-bl. Pk *, * datu-bl. *,Pj datu-bl. Pj,* Pi Pj datu-bl. Pi (cachea) Pj (cachea) Pk (cachea) Home (memoria nagusia)
16
Koher.-direktorioak (CM)
P = / MN = 128 MB / CM = 512 kB / bl = 128 byte 1. MN 5 kopia, 3 biteko egoerak Koherentzia-hitza: 5 x = 53 bit Direktorioa nodoetan: 53 bit x 1 M bloke = 53 Mb 2. CM “MN”an: = 13 bit Cacheetan: 2 x bit = 23 bit Nodoan: 13 x 1 M + 23 x 4 k = 13,1 Mb
17
Arazoak: koher.-trafikoa
Koherentzia mantentzeak ahalik eta trafiko gutxien sortu behar du (kontrol-paketeak eta datu-paketeak). Gainera, koherentzia mantentzeko eragiketen latentziak txikia behar du izan. Beraz: - Pakete kopurua (trafikoa) murriztu behar da. - Eragiketaren bide kritikoa (latentzia) txikiagotu behar da.
18
Arazoak: koher.-trafikoa
Hiru protokolo koherentzia-eragiketen “elkarriz-ketak” betetzeko: 1. Eskaera / Erantzuna 2. Intervention Forwarding 3. Reply Forwarding Adibidea: L prozesadoreak irakurri egin behar du cachean ez duen hitz bat, H prozesadorearen memoriako bloke batekoa, zeina R nodoan aldatuta dagoen.
19
Arazoak: koher.-trafikoa
1. Eskaera / Erantzuna 3. Eskaera 0100 / M 1. Eskaera L H R I 4b. Blokea (eguner.) M 4a. Erantzuna (Blokea) 2. Erantzuna mezuak: 5 bide kritikoa: 4
20
Arazoak: koher.-trafikoa
2. Intervention Forwarding 0100 / M 1. Eskaera 2. Eskaera L H R M I 4. Erantzuna (Blokea) 3. Erantzuna (Blokea) mezuak: 4 bide kritikoa: 4
21
Arazoak: koher.-trafikoa
3. Reply Forwarding 0100 / M 1. Eskaera 2. Eskaera L H R 3b. Blokea (eguner.) M I 3a. Erantzuna (Blokea) mezuak: 4 bide kritikoa: 3
22
Arazoak: atomikotasun eza
Koherentzia-eragiketek atomikoak izan behar dute, “interferentziarik” gabe bete ahal izateko. 2a → / M ? R1 H S R2 / S 1a. INV 1b. INV →M 2b. Erantzuna → M??
23
Arazoak: atomikotasun eza
Atomikotasuna ziurtatzeko: + Egoera iragankorrak, busy, erabili behar dira, direktorioan zein cacheetan. + Eskaerak prozesatu ezin badira edo inkoherenteak badira: - errefusatu egiten dira, NACK paketeen bidez. - gorde egiten dira “buffer” batean, geroago prozesatzeko.
24
Bi adibide: Koh.-protokolo komertzialak
1. Origin konputagailuak → MN 2. SCI protokoloa (Numa-Q) → CM
25
Origin 2000 multikonputagailuen zenbait ezaugarri:
▪ 512 nodo / prozesadore / hiperkuboa ▪ Bideratze moldakorra / kanal birtualak ▪ Baliogabetu / MESI / write-back ▪ Full bit vector / 7 egoera I / S / E adi: E = E edo M (kopia bakarra) 3 busy egoera (desberdinak) beste egoera bat (gauza berezietarako) ▪ Reply forwarding / NACK ▪ Kontrol-paketeak: Rd / INV / RdEx / ACK / NACK
26
Origin 2000 Hiru eragiketa analizatu behar ditugu, datuen koherentzia nola ziurtatzen den aztertzeko: ▪ Aldagai baten irakurketa (huts egin) ▪ Aldagai baten idazketa (asmatu / huts egin) ▪ Datu-bloke baten ordezkapena (MNa eguneratu)
27
Origin 2000 Irakurketa (huts) L H Dir. = I/S 1b. Rd A 2a → 0001 / E
→ busy → E/S 3 1100 / S → 1101 / S 2b. Blokea I
28
Origin 2000 Irakurketa (huts) L H R Dir. = E 2a → 1001 / busy
4 1000 / E 1b. Rd A 2c. Rd A L H R 1a → busy → S 4 3a → S 3b. ACK / Blokea 2b. Blokea (espek.) 3c. ACK / Wr (Bl.) I E/M
29
Origin 2000 Irakurketa (huts) L H Dir. = busy 1b. Rd A xxxx / busy 1a
2. NACK I
30
Idazketa (asm-INV / huts-RdEx)
Origin 2000 Idazketa (asm-INV / huts-RdEx) Dir. = busy 1b. INV A / RdEx A L xxxx / busy H 1a → busy 2. NACK S/I
31
Idazketa (asm-INV / huts-RdEx)
Origin 2000 Idazketa (asm-INV / huts-RdEx) Dir. = S eraginkortasuna kontuz lasterketak! 2a → 0001 / E 1101 / S 1100 / S 2d. INV A 1b. INV A / RdEx A 2c. INV A L H R1 R2 1a → busy → M 5 4b. ACK 3b. ACK 3a S → I 4a S → I S/I 2b. k.kop. / +Blokea
32
Idazketa (asm-INV / huts-RdEx)
Origin 2000 Idazketa (asm-INV / huts-RdEx) Dir. = S Adi: lasterketak! → 0011 / busy 2a → 0001 / E 1101 / S 1100 / S 2d. INV A 1b. INV A / RdEx A 2c. INV A Rd A L H R1 R2 1a → busy ? NACK S/I 2b. k.kop. / +Blokea eraginkortasuna: ez errefusatu, gorde! R4 R3
33
Origin 2000 Idazketa (huts-RdEx) L H R Dir. = E 2a → 0001 / busy
4 1000 / E 1b. RdEx A 2c. RdEx A L H R 1a → busy → M 4 3a → I 3b. ACK / Blokea 2b. k.kop. + Blokea (espek.) 3c. ACK / Wr (Blokea) I E/M
34
Origin 2000 Idazketa (asm-INV) L H Dir. = E 1b. INV A 1000 / E 1a S
→ busy 2. NACK S
35
Origin 2000 Idazketa (huts-RdEx) L H Dir. = I 1b. RdEx A 2a → 0001 / E
→ busy → M 3 2b. Blokea I
36
Origin 2000 Idazketa (asm-INV) L H Dir. = I 1b. INV A 0000 / I 1a S
→ busy 2. NACK S
37
Ordezkapena: MNa eguneratzea
Origin 2000 Ordezkapena: MNa eguneratzea Dir.: = E 1b. Wr (Blokea) 2a → 0000 / I 0001 / E L H 1a → busy → x 3 2b. ACK M
38
Ordezkapena: MNa eguneratzea
Origin 2000 Ordezkapena: MNa eguneratzea Dir.: = busy 2a → 1001 / busy → 1000 / E 3a 0001 / E 2c. Rd A 1b. Rd A 2b. Blokea (espek) L H R M 2 → busy 2d. Wr (Blokea) → x 4 1a → busy 4 → E 3c. ACK 3b. Blokea I
39
NUMA-Q multiprozesadoreen egitura:
C M S/I PCI IQ link D 4P
40
NUMA-Q multiprozesadoreen egitura:
▪ 8 x 4 prozesadore / bus (zelataria) ▪ IQ-link remote access cache ▪ Baliogabetu / MOESI / write-back ▪ <Eskaera / Erantzuna> / paketeak gorde ▪ Esteka bikoitzeko zerrendak CMetan: direktorioa (MN): egoera direktorioa CM: egoera ▪ SCI: scalable coherent interface
41
SCI koherentzia-protokoloa
Blokeen egoerak: ▪ “MNan”: Home (I), Fresh (E, S), Gone (M, O) ▪ CMan: - posizioa: Only, Head, Mid, Tail - egoera: Dirty (M), Fresh (S), Valid (S’), Exclusive (E) Adib.: Only-Fresh, Head-Fresh, Head-Dirty, Mid-Valid... - eta busy egoerak
42
SCI koherentzia-protokoloa
Datuen koherentzia mantentzeko hiru funtzioak: ▪ List Construction Bloke baten kopia bat cachean kargatzeko (Rd) eta kopia-zerrendako buruan kokatzeko. ▪ Roll-out Bloke baten kopia cachetik kentzeko (ordezkapena), eta kopia-zerrenda egokitzeko. ▪ Purge Aldagai bat aldatzeko (Wr), eta, ondorioz, gainerako kopiak baliogabetzeko eta kopia-zerrenda egokitzeko.
43
SCI koherentzia-protokoloa
Irakurketa: List Construction (Home) 1b. LC (Rd A) H | * Dir (MN) I Dir (CM) L 2a → F H 1a → busy → O-F|*-* 3 2b. Blokea
44
SCI koherentzia-protokoloa
Irakurketa: List Construction (Fresh / Gone) Dir (CM) I 1a → busy → H-F | 5 3. New Head 1b. LC (Rd A) F Dir (MN) R L 2a → F H 4b. ACK 2b. Blokea Dir (CM) O-F | *-* H-F | → T-V 4a → M-V | zer aldatu baldin Gone?
45
SCI koherentzia-protokoloa
Idazketak: buruan dagoen kopian bakarrik! asmatu / buruan → Purge huts egin → List Construction + Purge asmatu / ez buruan → Roll-Out + L. Const. + Purge
46
SCI koherentzia-protokoloa
Purge (Only-Fresh) 1b. Wr (A-ren egoera) F Dir (MN) 2a → G L H O-F | *-* Dir (CM) 2b. ACK 1a → busy → O-D | *-* 3
47
SCI koherentzia-protokoloa
Purge (Head-Fresh) F Dir (MN) → G 2a 5. INV A 1b. Wr (A-ren eg.) 3. INV A H L R1 R2 6b. ACK + * 2b. ACK 4b. ACK H-F | Dir (CM) → I | *-* 6a 1a → busy T-V → O-D | *-* 7 M-V Dir (CM) → I | *-* 4a
48
SCI koherentzia-protokoloa
Roll-Out (Wr / ordezk.) M-V | Dir (CM) 1a → busy 4 → busy / I | *-* 1b. RO A 1c. RO A R1 L R2 2b. ACK 3b. ACK H-D | Dir (CM) T-V Dir (CM) 2a → H-D | 3a → T-V
49
NUMA-Q: atomikotasuna
Arazoak: atomikotasuna (i) L1 L2 Ack + bl H-D | R1 L2 busy R1 L1 Ack + bl H-D | busy L1 Dir (MN) G H R1 R2 T-V NewHead H L1 NewHead H Dir (MN) G H L1 L2 Dir (MN) G H
50
NUMA-Q: atomikotasuna
Arazoak: atomikotasuna (ii) Dir (MN) F H O-F | *-* L busy LC busy Wr R NACK Dir (MN) F ??
51
DK-DSM | NUMA-Q: atomikotasuna
Arkitektura Paraleloak IF - EHU DK-DSM | NUMA-Q: atomikotasuna R H O-F | *-* L busy LC Wr Dir (MN) F ?? NACK Arazoak: atomikotasuna (ii) any questions?
52
Datuen koherentziari eusteko, DSM sistemetan, koherentzia-direktorioak erabiltzen dira. Bi modutan antola daiteke direktorioa: blokearen koherentzia-informazioa hitz batean zentralizatuta, MNaren ondoan; edo CMetan banatuta, datu-blokeen kopiekin batera. Koherentzia-eragiketen latentziak eta trafikoak ahalik eta txikiena izan behar dute: eskaera/erantzuna, intervention forwarding eta reply forwarding. Baina arazo nagusia atomikotasun eza da. Eta atomikotasuna ziurtatzeko, egoera iragankorrak eta NACK paketeak erabili ohi dira. Eta protokolo horiek gauzatzeko... Aurreko atalean...
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.