520 likes | 669 Views
Arkitektura Paraleloak. 7. Datuen Koherentzia DSM Konputagailuetan. - Sarrera - Koherentzia-direktorioak: MN / CM - Arazoak: trafikoa eta atomikotasuna - Origin konputagailuen protokoloa - SCI protokoloa (NUMA-Q). Arkitektura Paraleloak. IF - EHU.
E N D
Arkitektura Paraleloak 7.Datuen Koherentzia DSM Konputagailuetan - Sarrera - Koherentzia-direktorioak: MN / CM - Arazoak: trafikoa eta atomikotasuna - Origin konputagailuen protokoloa - SCI protokoloa (NUMA-Q) Arkitektura Paraleloak IF - EHU
Datuen koherentzia memoria partekatuko SMP sistemetan (komunikazio-sarea, busa): > Zelataria > Egoerak / egoera iragankorrak... Sarrera Eta DSM sistemetan (mailak...)? >Memoria partekatua da, baina fisikoki banatuta dago sistemako nodoen artean. > Sarea ez da bus bat. Beraz, zelataria?
Nola eutsi datuen koherentziari DSM sistemetan? Sarrera ▪ hardwareak ez du datuen koherentzia ziurtatzen (programatzailearen ardura da datuen koherentzia ziurtatzea) →NUMA ▪hardwareakziurtatzen du datuen koherentzia: →cc-NUMA Nola?Koherentzia-direktorioak.
Koherentzia-direktorioak datu-blokeei buruzko informa-zioa gordetzen du: - egoera (egonkorra, iragankorra) - kopiak non dauden Sarrera 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.
Koherentzia-direktorioaren kokapena eta egitura: Sarrera - 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
1. Full bit vector (MESI) Koher.-direktorioak (MN) Koherentzia-direktorioa MNaren ondoan: Direktorioaren egitura: - bit bat prozesadoreko(1/0), datu-blokearen kopia duen edo ez adierazteko. - hainbat bit blokearen egoera adierazteko (ohiko egoerak). P0P1P2P3 Eg 1 0 0 0 - 0 > E 1 0 1 0 - 0 > S 0 0 0 1 - 1 > M 0 0 0 0 - 0 > I > ez(MESI) 1 1 0 1 - 1
Arazoak Direktorioaren tamaina, linealki hazten baita prozesadore kopuruaren arabera. Koher.-direktorioak (MN) - 64 byteko blokeak: P = 64 → 65 bit (8 byte) P = 256 → 257 bit (32 byte) P = 1.024 → 1.025 bit (128 byte) + % 200!
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 = 1.024 (256x4) → 257 bit (32 byte) + %25
2. Limited bit vector Koher.-direktorioak (MN) - datu-blokeen kopia kopurua cacheetan mugatu egiten da:k kopia bakarrik. - koherentzia-hitzean, blokearen kopia duten prozesa-doreen helbideak (log Pbit) gordetzen dira. @1, @2, ..., @k, egoera k × log2P<< P
Koher.-direktorioak (MN) - 4 prozesadoreko nodoak / 128 byteko datu-blokeak / gehienez 5 kopia P = 256 (64x4) → 5 x 6 + 1 = 31 bit ≈ 4 byte + % 3 P = 1.024 (256x4) → 5 x 8 + 1 = 41 bit ≈ 5 byte + % 4
LDA 1 bit prozesadoreko egoera P L C 0 ... 1 ... 0 M 1 S KK 1 MN D H 3 2 KK= komunikazioen kontrolagailua D = koherentzia-direktorioa L = local H = home R= remote 4 5 R Koher.-direktorioak (MN)
STA beste bi kopia egoera P L C 1 0… 1 …1 0 S KK 1 MN D 3’ H 3 2 4’ KK= komunikazioen kontrolagailua D = koherentzia-direktorioa L = local H = home R= remote 4 Koher.-direktorioak (MN) 0 …0 0 M R2 R1
Koherentzia-direktorioak CMetan: egitura Datu-bloke baten egoerari buruzko informazioa ez da hitz bakar batean, direktorioan, zentralizatzen. Koher.-direktorioak (CM) Koherentzia-informazioa MNaren ondoan zeincacheetan banatzen da (cacheen direktorioetan). Esteka bikoitzeko zerrenda bat osatzen da datu-bloke bakoitzeko koherentzia-informazioarekin.
Koherentzia-informazioa (datu-bloke bakoitzeko) “MN” → @kop1 / egoera CM → @kopi-1 / @kopi+1 / egoera Koher.-direktorioak (CM)
Nola eratzen da bloke baten kopia-zerrenda estekatua? Pi,Pk *,Pk datu-bl. Pj,* *, * *,Pj Pk Pj Pi Koher.-direktorioak (CM) datu-bl. MN D datu-bl. datu-bl. Pi (cachea) Pj (cachea) Pk (cachea) Home (memoria nagusia)
P = 1.024 / MN = 128 MB / CM = 512 kB / bl = 128 byte Koher.-direktorioak (CM) 1. MN5 kopia, 3 biteko egoerak Koherentzia-hitza: 5 x 10 + 3 = 53 bit Direktorioa nodoetan: 53 bit x 1 M bloke = 53 Mb 2. CM “MN”an: 10 + 3 = 13 bit Cacheetan: 2 x 10 + 3 bit = 23 bit Nodoan: 13 x 1 M + 23 x 4 k = 13,1 Mb
Koherentzia mantentzeak ahalik eta trafiko gutxien sortu behar du (kontrol-paketeak eta datu-paketeak). Gainera, koherentzia mantentzeko eragiketen latentziak txikia behar du izan. Arazoak: koher.-trafikoa Beraz: - Pakete kopurua (trafikoa) murriztu behar da. - Eragiketaren bide kritikoa (latentzia) txikiagotu behar da.
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.
1. Eskaera / Erantzuna 3. Eskaera 1. Eskaera 4b. Blokea (eguner.) 2. Erantzuna 4a. Erantzuna (Blokea) Arazoak: koher.-trafikoa 0100 / M H R L M I mezuak: 5 bide kritikoa: 4
2. Intervention Forwarding 2. Eskaera 1. Eskaera 4. Erantzuna (Blokea) 3. Erantzuna (Blokea) Arazoak: koher.-trafikoa 0100 / M L H R M I mezuak: 4 bide kritikoa: 4
3. Reply Forwarding 1. Eskaera 2. Eskaera 3b. Blokea (eguner.) 3a. Erantzuna (Blokea) Arazoak: koher.-trafikoa 0100 / M L H R M I mezuak:4 bide kritikoa: 3
2a → ..1..0.. / M ..1..1.. / S 1b. INV 1a. INV H R2 R1 S S 2b. Erantzuna Arazoak: atomikotasun eza Koherentzia-eragiketek atomikoak izan behar dute, “interferentziarik” gabe bete ahal izateko. ? →M → M??
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.
Koh.-protokolo komertzialak Bi adibide: 1.Origin konputagailuak → MN 2.SCIprotokoloa(Numa-Q) → CM
▪512 nodo / 1.024 prozesadore / hiperkuboa ▪Bideratze moldakorra / kanal birtualak ▪Baliogabetu / MESI / write-back Origin 2000 Origin 2000 multikonputagailuen zenbait ezaugarri: ▪Full bit vector / 7 egoera I / S / Eadi: 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
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) Origin 2000
Irakurketa (huts) Dir. = I/S 1b. Rd A 2a → 0001 / E 1a → busy 2b. Blokea 3 → E/S Origin 2000 0000 / I L H → 1101 / S 1100 / S I
Irakurketa (huts) Dir. = E 2a 4 → 1001 / busy → 1001 / S 1b. Rd A 2c.Rd A(+@L) 3a → S 3c. ACK / Wr (Bl.) 2b. Blokea (espek.) 1a → busy 4 3b.ACK / Blokea → S Origin 2000 1000 / E L H R E/M I
Irakurketa (huts) Dir. = busy 1b. Rd A 1a → busy 2. NACK Origin 2000 xxxx / busy L H I
Idazketa(asm-INV / huts-RdEx) Dir. = busy 1b. INV A / RdEx A L 1a → busy 2. NACK Origin 2000 xxxx / busy H S/I
Idazketa(asm-INV / huts-RdEx) Dir. = S eraginkortasuna kontuz lasterketak! 2a 1101 / S → 0001 / E 1100 / S 2d. INV A (+@L) 1b. INV A / RdEx A 3a 4a S → I S → I 2c. INV A (+@L) 1a → busy 2b. k.kop. / +Blokea 4b. ACK 3b. ACK 5 → M Origin 2000 H R1 R2 L S/I
Idazketa(asm-INV / huts-RdEx) Dir. = S 2a 1101 / S → 0011 / busy → 0001 / E 1100 / S 2d. INV A (+@L) 1b. INV A / RdEx A 2c. INV A (+@L) Rd A (@R3) 1a → busy 2b. k.kop. / +Blokea NACK R4 R3 Origin 2000 Adi: lasterketak! H R1 R2 L ? S/I eraginkortasuna: ez errefusatu, gorde!
Idazketa(huts-RdEx) Dir. = E 2a 4 → 0001 / busy → 0001 / E 1b. RdEx A 2c. RdEx A (+@L) 3a 3c. ACK / Wr (Blokea) → I 1a 2b. k.kop. + Blokea (espek.) → busy 4 3b.ACK / Blokea → M Origin 2000 1000 / E H R L E/M I
Idazketa(asm-INV) Dir. = E 1b. INV A 1a → busy 2. NACK Origin 2000 1000 / E L H S
Idazketa(huts-RdEx) Dir. = I 1b. RdEx A 2a → 0001 / E 1a → busy 2b. Blokea 3 → M Origin 2000 0000 / I L H I
Idazketa(asm-INV) Dir. = I 1b. INV A 1a → busy 2. NACK Origin 2000 0000 / I L H S
Ordezkapena: MNa eguneratzea Dir.: = E 1b. Wr (Blokea) 2a → 0000 / I 1a → busy 2b. ACK 3 → x Origin 2000 0001 / E L H M
Ordezkapena: MNa eguneratzea Dir.: = busy 2a 3a → 1001 / busy → 1000 / E 1b. Rd A 2c. Rd A 1a 4 → E → busy 2b. Blokea (espek) 2 2d.Wr (Blokea) M → busy 3c. ACK 3b. Blokea 4 → x Origin 2000 0001 / E H R L I
P C P C P C P C 4P 4P IQ link 4P 4P PCI M D 4P 4P S/I S/I 4P 4P NUMA-Q 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 / @k1 direktorioa CM: egoera / @ki-1 / @ki+1 ▪SCI: scalable coherent interface NUMA-Q NUMA-Q multiprozesadoreen egitura:
Blokeen egoerak: SCI koherentzia-protokoloa ▪“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
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.
Irakurketa:List Construction(Home) 1b. LC (Rd A) Dir (MN) H | * → F | @L Dir (CM) 2a → busy I → O-F|*-* 3 1a 2b. Blokea SCI koherentzia-protokoloa L H
Irakurketa: List Construction(Fresh / Gone) → busy → H-F | *-@R 1a 5 3. New Head (@L) 1b. LC (Rd A) Dir (MN) F | @R → F | @L 2a 2b. Blokea + @R 4b. ACK Dir (CM) O-F | *-* → T-V | @L-* H-F | *-@R2 4a SCI koherentzia-protokoloa Dir (CM) I R L H → M-V | @L-@R2 zer aldatu baldin Gone?
SCI koherentzia-protokoloa Idazketak: buruan dagoen kopian bakarrik! asmatu / buruan → Purge huts egin→List Construction+ Purge asmatu / ez buruan → Roll-Out +L. Const. + Purge
Purge(Only-Fresh) 1b. Wr (A-ren egoera) Dir (MN) F | @L → G | @L Dir (CM) 2a → busy O-F | *-* → O-D | *-* 3 1a 2b. ACK SCI koherentzia-protokoloa L H
Purge(Head-Fresh) 5. INV A 3.INV A 1b. Wr (A-ren eg.) Dir (CM) Dir (CM) Dir (MN) 2b. ACK → busy H-F | *-@R1 M-V |@L-@R2 F | @L → O-D | *-* → I | *-* → I | *-* → G | @L 6b. ACK + * 6a 4a 7 2a 4b. ACK + @R2 1a SCI koherentzia-protokoloa H R1 R2 L T-V |@R1-*
Roll-Out(Wr / ordezk.) 1b. RO A + @R2 1c. RO A + @R1 Dir (CM) Dir (CM) Dir (CM) T-V | @L-* M-V | @R1-@R2 H-D | *-@L → busy → H-D | *-@R2 → T-V | @R1-* → busy / I | *-* 3a 1a 2a 4 3b. ACK 2b. ACK SCI koherentzia-protokoloa R1 L R2
busy H-D | *-@L1 busy H-D | *-@R1 M-V|@L2-@R1 M-V|@L1-@R2 H-D|*-@R2 T-V | @R1-* NewHead NewHead R1 R1 R1 R2 L2 L2 L2 L1 L1 L1 L1 L1 L1 Ack + bl Ack + bl H H H H H H H H H Dir (MN) G | @R1 Dir (MN) G | @L2 Dir (MN) G | @L1 NUMA-Q: atomikotasuna Arazoak: atomikotasuna (i)
busy O-F | *-* busy L LC Wr NACK H Dir (MN) F | @L Dir (MN) F |@R NUMA-Q: atomikotasuna Arazoak: atomikotasuna (ii) R ??