390 likes | 530 Views
Arkitektura Paraleloak. 3. Datuen Koherentzia SMP Konputagailuetan. - Sarrera - Zelataria - Baliogabetze-protokoloak - Eguneratze-protokoloak - Atomikotasuna. Arkitektura Paraleloak . IF - EHU. Erreg. CM1 CM2 ... MN Diskoa. + edukiera. + abiadura. Sarrera.
E N D
Arkitektura Paraleloak 3.Datuen Koherentzia SMP Konputagailuetan - Sarrera - Zelataria - Baliogabetze-protokoloak - Eguneratze-protokoloak - Atomikotasuna Arkitektura Paraleloak IF - EHU
Erreg. CM1CM2... MN Diskoa + edukiera + abiadura Sarrera • Konputagailu baten memoria hierarkikoki antolatzen da: Memoria-atzipenak ez dira zorizkoak: t → @A t + ∆ t →@A t → @A t + 1 → @A+1
Erreg. CM1CM2... MN Diskoa Sarrera • Memoria-maila bakoitza aurrekoaren azpimultzo bat da. hitza blokea Helburua: datu guztiak sartzen ez badira ere, ustez gehiago edota laster erabili behar diren datuak ekarriko ditugu cachera. Transferentzia-unitatea blokea (line) da: ondoz ondoko helbideetako N hitz.
Erreg. CM1CM2... MN Diskoa Sarrera • Beraz, datuen kopiekin lan egiten da. Nola lortu kopia horiek beti berdinak (koherenteak) izatea? Idazketa-politika: Write-Through:aldaketak memoria-maila guztietan egiten dira; trafiko asko sortzen da busean. Write-Back: aldaketak beheko mailan soilik egiten dira; ordezkatu behar direnean eguneratuko dira kopiak goiko mailan.
Erreg. CM1CM2... MN Diskoa Erreg. CM1CM2... Erreg. CM1CM2... Sarrera • SMP sistemetako memoria partekatua da eta aldagai partekatuak erabiltzen dira prozesuak komunikatzeko. Beraz, datu-blokeen kopia kopurua handiagoa izan daiteke (P+1), eta kopiak ez daude kotrol-unitate bakar baten mende.
X YZ T datu-blokea P1 prozesuaren aldagaiak P2 prozesuaren aldagaiak Sarrera • Datu-blokeen kopiak ageri dira: - aldagaiak partekatzen direlako (shared). - partekatzen ez badira ere, datu-bloke berean daudelako (sasi-partekatzea). Beraz, nola lortu kopiak koherenteak izatea horietako bat aldatzen denean?
Sarrera • Memoria-sistemak koherentea izan behar du: prozesu guztiek informazio bera eta eguneratua erabili behar dute. Sistema koherentea da baldin eta: - aldagai bat irakurtzean, aldagai horretan idatzitako azken balioa lortzen bada (idazketatik denbora “nahikoa” igarota). - aldagai baten gaineko idazketa guztiak ordena berean “ikusten” badira prozesadore guztietan.
Sarrera • Bi estrategia daude memoria partekatuko sistemak koherenteak mantentzeko: SMP sistemak (prozesadore batzuk, memoria zentralizatua, busa): → zelatatze-automatak (snoopy) DSM sistemak (prozesadore asko, memoria banatua, sare orokorra): → koherentzia-direktorioak
Zelataria • SMP sistema baten prozesadoreak eta memoria komunikatzeko, busa(k) erabiltzen d(ir)a. Busa sare zentralizatuada; beraz, datu-transferentzia guztiak “publikoak” dira. • Nola jakin daiteke gure cachean dagoen aldagai bat beste prozesadore batean aldatu dela, edo guk duguna beste batean erabili behar dutela? • >> Busa zelatatuz besteok zer egiten duten jakiteko, eta kontrol-seinale bereziak zabalduz, prozesadore guztietara, busaren bidez.
wr A,#3 A=4 A=4 A=4 cachea A=3 INV A A=4 mem. nagusia Zelataria • Zer egin behar da bloke baten kopia batekin, baldin eta beste prozesadore batean aldatzen bada? - Informazioa dagoeneko erabilgarria ez denez, kopiak baliogabetu egiten dira. Baliogabetze-protokoloak
A=3 A=3 A=3 wr A,#3 A=4 A=4 A=4 cachea BCA,3 A=4 mem. nagusia Zelataria • Zer egin behar da bloke baten kopia batekin baldin eta beste prozesadore batean aldatzen bada? - Kopien informazioa eguneratu egiten da balio berriarekin. Eguneratze-protokoloak
Zelataria • Datu-blokeen kopiak kudeatzeko, kontrol-informazioa gehitzen da cacheko direktorioan. • Kontrol-bit horien bidez, blokeen egoerak definitzen dira. 5 egoera hauek erabili ohi dira: Ibaliogabea. Eesklusiboa: kopia bakarra eta koherentea MNarekin. Maldatua: kopia bakarra eta ez koherentea MNarekin. Spartekatua: kopia batzuk, denak koherenteak. Ojabea: kopia batzuk (bat O, besteak S), ezkoherenteak.
Zelataria • Bost egoera horiek definitzeko, hiru bit behar dira cacheko direktorioan: validdirtyshared 0 - -I 1 0 0E 1 0 1S 1 1 0M 1 1 1O
P zelataria C Zelataria • Datu-blokeen egoerak kudeatzeko eta kontrol-seinaleak sortzeko, bi informazio-iturri zelatatu behar ditu zelatariak: 1. bertako prozesadoreko ekintzak 2. busean ageri diren beste prozesadoreetako ekintzak
Zelataria 1. Bertako prozesadoreko ekintzak: PR helb Prozesadoreak hitz bat irakurtzen du. Cachean ez badago, blokea eskatu egin behar da: BR helb. PW helb,dat Prozesadoreak hitz bat idazten du. Sistemako gainerako kopiak baliogabetu edo eguneratu behar dira: INV helbedoBC helb,dat. Horrez gain, hutsegitea bada, blokea eskatu behar da (BR + INV/BC).
Zelataria 2.Beste prozesadoreetako ekintzak: BR helb Beste prozesadore batek bloke bat eskatu du. Bertako cachean badago, egoera egokitu... INV helb Prozesadore batek bloke jakin bat baliogabetzeko agindua sortu du. Cachean badago, blokea baliogabetu egin behar da. BC helb,dat Prozesadore batek hitz bat eguneratzeko agindua sortu du. Cachean badago...
Zelataria 3.Beste kontrol-seinale batzuk: BWBloke bat idatzi behar da memoria nagusian (WB) BW*Hitz bat idatzi behar da memoria nagusian (WT) Egoeren, idazketa-politikaren, kopiak kudeatzeko estrategiaren eta abarren arabera, zelatatze motako koherentzia-protokolo (automata) desberdinak lortzen dira.
- PW PR M BR (BW) PW (INV) hutsa -BR INV (BW) PR S asmatzea INV PR (BR) PW (BR,INV) I,- Baliogabetze-protokoloak (1) • MSI protokoloa S M BR BR,INV S M S I INV M M S I BW BW
Baliogabetze-protokoloak (1) • Adi: koherentzia-protokoloak ahalik eta trafiko gutxien sortu behar du. • M: CM1 → MN → CM2 • CM1 → MN, CM2 Zenbait kasutan, datu-blokeak hainbat tokitatik ekar daitezke. S: CMi, CMj... / MN → CMk
PR - PW M hutsa BR (BW) M BR,INV PW (INV) INV (BW) PW PR PR E S S I -BR BR asmatzea M S S I PW (BR,INV) INV INV INV PRnsh (BR) PRsh (BR) M M S I BW BW I,- Baliogabetze-protokoloak (2) • MESI protokoloa (Illinois):E egoera / sh kontrol-lerroa nsh: E sh: S BR E M
PW (INV) PR - PW PR -BR M O BR hutsa S M BR BR,INV INV (BW) PW (INV) S M I INV INV (BW) S PR -BR asmatzea M M I BW INV PW (BR,INV) PR (BR) M I INV BW I,- Baliogabetze-protokoloak (3) • MOSI protokoloa (Berkeley):O egoera S O O O
PR - PW PWnsh (BR) M BR(BW) nsh:M sh: S nsh:E sh: S BR BR,BC hutsa BR PW PWnsh (BC) E M S S PR -BR-BC E S PR S S S asmatu PW sh (BC) BR PRsh (BR) PRnsh (BR) M M S S BW BW PW sh (BR,BC) Eguneratze-protokoloak (1) • MSE(I) protokoloa (Firefly):sh kontrol-lerroa nsh:E sh: S BC
hutsa nsh:E sh: S nsh:M sh: O BR BR,BC BR M E S S - BC nsh:M sh: O S S S asmatzea M M O S - BC nsh:M sh: O O O S Eguneratze-protokoloak (2) • MOES(I) protokoloa (Dragon):sh kontrol-lerroa
Laburpena • Laburpena Zelataria cacheetako kontrol-hardware berezia da, eta datuen koherentzia mantendu ahal izateko erabiltzen da SMP sistemetan. Bertako prozesadoreko eragiketak zein beste prozesadoreetakoak (busari esker) zelatatzen ditu. Datu-blokeen egoerak egokitzen ditu cachean (I, E, S, M, O), eta kontrol-seinale bereziak sortzen ditu gainerako zelatariei abisatzeko. Bi aukera daude: kopiak baliogabetu horietako bat aldatzen denean, edo kopien edukia eguneratu.
Laburpena • Laburpena Hainbat koherentzia-protokolo defini daitezke, erabiltzen diren egoeren, idazketa-politiken... arabera. Sortzen dendatu- eta kontrol-trafikoa minimizatu egin behar da. Gogoratu: datu-bloke bat memoriara eraman behar da M/O egoeretatik E/S egoeretara aldatzean (eta, noski, aldatuta badago, ordezkatzean).
P zelataria C Koherentzia-kontroladorea • Koherentzia-kontroladorea • Koherentzia mantentzeko hardwareak prozesadoreko zein “buseko” ekintzak kontrolatu behar ditu. • Cachearekin lan egiteko eskaerak aldi berean etor daitezke, bertako prozesadoretik zein “busetik”. Zelataria algoritmo banatua da, eta, definizioz, ez-atomikoa; beraz, hainbat arazo ager daitezke. Ikus ditzagun koherentzia-kontroladoreen ezaugarrifisiko batzuk arazoak nola gainditzen diren ulertzeko.
P CM contr addr data Bus side controller tags + state proc. Processor side controller Cache data RAM tags + state snoopy compar to controller tag Write-back buffer compar to controller Addr Cmd state Cmd Addr Data buffer system bus Koherentzia-kontroladorea • Kontrolagailua eta cachearen direktorioabikoiztu, bat prozesadorerako eta bestea “buseko” eragiketetarako. Idazketa-bufferrean ere egon daiteke datu-bloke bat: bilaketa-hardwarea bikoiztu egin behar da.
P CM contr addr data Bus side controller tags + state proc. Processor side controller Cache data RAM tags + state snoopy compar to controller tag Write-back buffer compar to controller Addr Cmd state Cmd Addr Data buffer system bus Koherentzia-kontroladorea • Zenbat denbora zain zelatarien erantzuna lortu arte? - denbora finkoa (max.) - denbora aldakorra (behar dena) Kontrol-lerro gehiago busean: sh, dirty, inh...
Koherentzia-kontroladorea • Arazo nagusia atomikotasun eza da:datu-bloke beraren gainean, hainbat prozesadoretako aldi bereko ekintzak nahas daitezke. Adibidez, bi prozesadorek, batera, datu-bloke bera behar dute cachean. Une horretan kopiarik ez badago (sh = 0), biok kargatuko dute blokea E egoeran haien cacheetan! Edo, bi prozesadorek aldi berean idazten dute S egoeran dagoen bloke batean; ondorioz, elkarri baliogabetzen diote kopia!
Koherentzia-kontroladorea Sinplifikazioa: busaren erabilera atomikoa da. Horretarako, bi kontrol-seinale: BRQ (bus request): busa erabili nahi dut BGR (bus grant): busa zuretzat da Hala ere, eragiketen atomikotasuna ez dago bermatuta, eta, beraz, lasterketak (races) gerta daitezke: algoritmo bati jarraituz, ezinezkoa den egoera batera heltzea, algoritmo hori atomikoki exekutatu ez delako.
Lasterketak • Irtenbidea: • Buseko eragiketen atomikotasunaz gain (BRQ, BGR), egoera iragankorrak gehitzea koherentzia-protokoloari. Adi: egoera iragankorrak kontroladoreari dagozkio, ez datu-blokeei. Adibide gisa, azter dezagun berriro MESI protokoloa.
PW/PR M BGR (BR,INV) BR (BW) INV (BW) BGR (INV) IM INV SM PW PW(BRQ) BR E S BGR (BR) sh PR/BR PR BGR (BR) nsh INV ISE INV PW(BRQ) PR (BRQ) I Lasterketak • MESI protokoloa BRQ / BGR IM / SM / ISE PW – huts./asm. PR – huts.
Lasterketak • Algoritmo banatuetan ageri ohi diren beste arazo batzuk: Deadlock: sistema betiko blokeatzen da; ezin du ez aurrera ez atzera jo. Livelock: sistema ez dago blokeatuta, baina prozesu bera errepikatzen du behin eta berriz, eta ez da gauza aurrera jarraitzeko. Starvation: zelatari batzuek ez dute inoiz eragiketak egitea lortzen, besteak aurreratzen direlako beti.
Bus-hierarkiak • SMP sistemetan, busa erabiltzen da prozesadoreak eta memoria komunikatzeko. • Memoria zentralizatua izateak arazo asko dakar, busa ase egin daitekeelako → prozesadore kopurua mugatua da. Soluzio orokorra memoria banatzea da, eta horrela DSM sistemak lortzen dira, non komunikazio-sare orokorrak erabiltzen baitira. Sistema horietan ez dira zelatariak erabiltzen.
SMP P zelatari lokala C B1 K K MN MN B2 koherentzia globalerako hardwarea Bus-hierarkiak • Aurrerapen gisa, ikus dezagun kasu bat, non komunikazio-sarea busen hierarkia bat den eta zelatariak edo erabiltzen diren datuen koherentzia ziurtatzeko.
Bus-hierarkiak • Koherentzia-kontroladoreak “direktorio” bereziak dira, non blokeei buruzko informazioa gordetzen den. Bi ataletan banatzen dira: KB: urrutiko cacheetera eraman diren bertako datu-blokeei buruzko informazioa (egoerak). KU: bertako cacheetara ekarri diren urrutiko datu-blokeei buruzko informazioa (egoerak/datuak).
CM CM CM CM S M MN B1 B1 MN @ KU KB KU KB M E M E B2 Bus-hierarkiak rd, hutsa S S E S BR @ S S S S
CM CM CM CM CM CM I S M I S S I S INV @ INV @ MN B1 MN MN KU KU KB KB KU KB M S S I S M INV @ INV @ Bus-hierarkiak wr B2
CM CM CM CM CM CM I S M I S S I S wr INV @ INV @ MN B1 MN MN KU KU KB KB KU KB M S S I S M B2 INV @ INV @ Arkitektura Paraleloak IF - EHU D.K. | Bus-hierarkiak galderak, mesedez ?