1 / 40

PARALELIZAM NA NIVOU INSTRUKCIJA

PARALELIZAM NA NIVOU INSTRUKCIJA. tra ženje paralelizma i van osnovnih blokova instrukcija. Odmotavanje petlji. 15% instrukcija u cjelobrojnim operacijama su grananja Da bi se postigle veće performanse, neophodno je iskoristiti ILP u više osnovnih blokova istovremeno.

emiko
Download Presentation

PARALELIZAM NA NIVOU INSTRUKCIJA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PARALELIZAM NA NIVOU INSTRUKCIJA traženje paralelizma i van osnovnih blokova instrukcija

  2. Odmotavanje petlji • 15% instrukcija u cjelobrojnim operacijama su grananja • Da bi se postigle veće performanse, neophodno je iskoristiti ILPu više osnovnih blokova istovremeno.

  3. Instrukcija koja daje rezultat Instrukcija koja koristi rezultat Kašnjenje u ciklusima FP ALU op Druga FP ALU op 3 FP ALU op Store double 2 Load double FP ALU op 1 Load double Store double 0 Kašnjenja FP jedinica Neka se instrukcije pokreću svakog ciklusa sata i nema strukturnih hazarda.

  4. Kako kompajler može povećati ILP odmotavanjempetlje? for (i=1; i<=1000; i++) x[i]=x[i]+s; Direktni prevod: Loop: LD F0, 0(R1) ADDD F4, F0, F2 SD 0(R1), F4 SUBI R1, R1, #8 BNEZ R1, Loop

  5. Izvođenje po ciklusima Ciklus Loop: LD F0, 0(R1) 1 • zastoj 2 • ADDD F4, F0, F2 3 • zastoj 4 • zastoj 5 • SD 0(R1), F4 6 • SUBI R1, R1, #8 7 • zastoj 8 • BNEZ R1, Loop 9 • zastoj 10

  6. Promjenom redoslijeda instrukcija • Loop: LD F0, 0(R1) • zastoj ADDD F4, F0, F2 SUBI R1, R1, #8 • BNEZ R1, Loop ; odgođeno grananje i modifikovana instrukcija • SD 8(R1), F4 ; (bilo je 0(R1)) i zamjena SD i SUBI • ubrzanje sa 10 na 6 ciklusa!

  7. Odmotavanje 4 tijela petlje • Loop: LD F0,0(R1) ADDD F4, F0, F2 SD 0(R1), F4 ; preskače se SUBI i BNEZ LD F6, -8(R1) ADDD F8, F6, F2 SD -8(R1), F8 ; preskače se SUBI i BNEZ LD F10, -16(R1) ADDD F12, F10, F2 SD -16(R1), F12 ; preskače se SUBI i BNEZ LD F14, -24(R1) ADDD F16, F14, F2 SD -24(R1), F16 SUBI R1, R1, #32 BNEZ R1, Loop Ušteđeno je 3 grananja i dekrementiranja R1. jedan prolaz traje 28 ciklusa (LD-1 zastoj, ADDD-2, SUBI-1, grananje-1, ostale 1) ili 7 cilusa po svakoj kopiji originalne petlje - sporije nego ranije

  8. Optimizirana sekvenca instrukcija • Loop:LD F0, 0(R1) • LD F6, -8(R1) • LD F10, -16(R1) • LD F14, -24(R1) • ADDD F4, F0, F2 • ADDD F8, F6, F2 • ADDD F12, F10, F2 • ADDD F16, F14, F2 • SD 0(R1), F4 • SD -8(R1), F8 • SUBI R1, R1, #32 • SD 16(R1), F12 • BNEZ R1, Loop • SD 8(R1), F16 ; - 32 + 8 = -24 (u odnosu na (R1)) • 14 ciklusa - 3.5 po kopiji originalne petlje!!!

  9. Odkrivanje i odkljanjanje zavisnosti • 1.zavisnost od podataka • (eng. data dependences), • 2.zavisnost imena • (eng. name dependences), • 3. upravljačka zavisnost • (eng. control dependences).

  10. Zavisnost imena se rješava reimenovanje registara • odmotana petlja bez … i sa preiminovanjem registara • Loop: LDF0, 0(R1) Loop: LD F0,0(R1) • ADDD F4, F0, F2 ADDD F4, F0, F2 • SD 0(R1), F4 ;bez SUBI i BNEZ; SD 0(R1), F4 • LD F0, -8(R1) LD F6, -8(R1) • ADDD F4, F0, F2 ADDD F8, F6, F2 • SD -8(R1), F4 ;bez SUBI i BNEZ; SD -8(R1), F8 • LD F0, -16(R1) LD F10, -16(R1) • ADDD F4, F0, F2 ADDD F12, F10, F2 • SD -16(R1), F4 ;bez SUBI i BNEZ; SD -16(R1), F12 • LD F0, -24(R1) LD F14, -24(R1) • ADDD F4, F0, F2 ADDD F16, F14, F2 • SD -24(R1), F4 SD -24(R1), F16 • SUBI R1, R1, #32 SUBI R1, R1, #32 • BNEZ R1, Loop BNEZ R1, Loop

  11. Uklanjanja upravljačke zavisnosti modifikovanimgrananjima. • Loop: LD F0, 0(R1) • ADDD F4, F0, F2 • SD 0(R1), F4 • SUBI R1, R1, #8 ; bez BNEZ • BEQZ R1, Exit • LD F6, 0(R1) • ADDD F8, F6, F2 • SD 0(R1), F8 • SUBI R1, R1, #8 ; bez BNEZ • BEQZ R1, Exit • LD F10, 0(R1) • ADDD F12, F10, F2 • SD 0(R1), F12 • SUBI R1, R1, #8 ; bez BNEZ • BEQZ R1, Exit • LD F14, 0(R1) • ADDD F16, F14, F2 • SD 0(R1), F16 • SUBI R1, R1, #8 ; bez BNEZ • BNEZ R1, Loop • Exit:

  12. DINAMIČKIO RASPOREĐIVANJE INSTRUKCIJA • hardver raspoređuje izvršenje instrukcija sa ciljem smanjivanja zastoja. • prednosti: - omogućava rješavanje situacija kod kojih zavisnosti nisu poznate u trenutku kompajliranja (zbog npr. pristupa memoriji), -olakšavaju posao kompajlerima i čini ih jednostavnijim, - omogućava efikasno izvršavanje koda kompajliranog za jednu PS-u na drugoj PS-i.

  13. DINAMIČKO RASPOREĐIVANJE SA SEMAFOROM (CDC 6600) • sve instrukcije prolaze kroz stepen za pokretanje po redu donošenja, gdje mogu biti u zastoju ili se proslijeđivati sljedećem stepenu i ući u izvršenje mimo reda • Cilj semaforisanja je da održi ritam izvršenja od jedne instrukcije po ciklusu sata (kada nema strukturnih hazarda) izvršavanjem instrukcije što prije je to moguće • potrebno je da više instrukcija bude u EX fazi istovremeno

  14. Osnovna struktura ogledne arhitekture sa semaforom

  15. Svaka instrukcija se izvršava u četiri koraka • Izdavanje • Čitanje operanada • Izvršenje • Pisanje rezultata zamjenjuju ID, EX i WB korake kod ogledne PS-e.

  16. Instrukcija Status instrukcija Pokretanje Čitanje operanada Izvršenje završeno Upis rezultata LD F6, 34(R2)     LD F2, 45(R3)    MULTD F0, F2, F4  SUBD F8, F6, F2  DIVD F10, F0, F6  ADDD F6, F8, F2 Ime Status funkctionalnih jedinica Zauzeto Op Fi Fj Fk Qj Qk Rj Rk Cjelobr. Da Load F2 R3 Ne Množač1 Da Mult F0 F2 F4 Cjelobr. Ne Da Množač2 Ne Sabirač Da Sub F8 F6 F2 Cjelobr. Da Ne Djelitelj Da Div F10 F0 F6 Množ1 Ne Da Status rezultata u registrima F0 F2 F4 F6 F8 F10 F12 ... F30 FJ Mult1 Cjelobr. Sub Djelitelj Komponente semafora

  17. TOMASULOV ALGORITAM • Robertu Tomasulo- IBM (FP-jedinica kod modela 360/91, 1969. god.) • kombinuje osnovne elemente semaforiranja i uvodi reimenovanje registara • RS baferuju operande za instrukcije koje čekaju da budu pokrenute

  18. FP jedinica sa Tomasulom

  19. Samo tri korakaizvršenja • Pokretanje • Izvršenje • Pisanje rezultata

  20. Instrukcija Status instrukcije Pokretanje Izvršenje Upis rezultata LD F6, 34(R2)    LD F2, 45(R3)   MULTD F0, F2, F4  SUBD F8, F6, F2  DIVD F10, F0, F6  ADDD F6, F8, F2  Ime Rezervaciona stanica Zauzeto Op Vj Vk Qj Qk Sabir1 Da SUB Mem[34+Regs[R2]] Load2 Sabir2 Da ADD Sabir1 Load2 Sabir3 Ne Množ1 Da MULT Regs[F4] Load2 Množ2 Da DIV Mem[34+Regs[R2]] Množ1 Polje Status registara F0 F2 F4 F6 F8 F10 F12 ... F30 Qi Množ1 Load2 Sabir2 Sabir1 Množ2 Struktura RS

  21. Prednosti Tomasula • 1.distribucija logike za otkrivanje hazarda, i • 2.eliminisanje zastoja zbog WAW i WAR hazarda.

  22. DINAMIČKO PREDVIĐANJE GRANANJA • Cilj svih mehanizama predviđanja grananja je rano rješavanje problema grananja i smanjenje broja zastoja • Najjednostavniji način dinamičkog (tj. hardverskog) predviđanjaje pomoću bafera za predviđanje grananja ili tabele istorije grananja

  23. 2-bitna šema predviđanja grananja

  24. Tačnost predviđanja sa 4096-ulaznim dvo-bitnim baferom za SPEC89benčmark-programe

  25. Tačnost predviđanja kod 4096-ulaznog dvo-bitnog bafera u odnosu na bafer sa neograničenim brojem ulaza za SPEC89 benchmark-programe

  26. (2,2)-bafer za predviđanje granajna koristi dvo-bitnu globalnu istoriju da bi izabrao među četiri sklopa za predviđanje za svaku adresu grananja

  27. BAFER ODREDIŠNIH ADRESA GRANANJA • keš odredišnih adresa grananja (BTB/BTC)

  28. Koraci pri obradi instrukcije sa BTB-om

  29. Drugi način realizacije BTB-a • da se umjesto, ili pored, adresa grananjja, smještaju i njihove instrukcije (sa odredišne adrese). • Time se omogućava: • -     da vrijeme pristupa BTB-u bude i duže od vremena između dva uzastopna pribavljanja instrukcija, pa bafer može biti veći, i • - optimizacija - preklapanje grananja (branch folding) - 0-ciklusno bezuslovno i, ponekad, 0-ciklusno uslovno grananje

  30. Predviđanje indirektnih skokova !? • baferovati povratne adrese u strukturi sličnoj steku. • ako je keš dovoljno (!?) velik, potpuno tačno će se predviđati povratne adrese

  31. Tačnost predviđanja kada bafer povratne adrese radi kao stack

  32. SUPERSKALARNI I VLIW PROCESORI • Kako postići CPI<1? • Superskalarni procesori pokreću različit broj instrukcija po ciklusu i koriste statičko ili dinamičko raspoređivanje instrukcija • VLIW procesori pokreću određen broj instrukcija formatiranih kao jedna velika instrukcija ili kao paket instrukcija, a koriste statičko raspoređivanje instrukcija.

  33. Tip instrukcije Segmenti PS-e Cjelobr. instrukcija IF ID EX MEM WB FP instrukcija IF ID EX MEM WB Cjelobr. instrukcija IF ID EX MEM WB FP instrukcija IF ID EX MEM WB Cjelobr. instrukcija IF ID EX MEM WB FP instrukcija IF ID EX MEM WB Cjelobr. instrukcija IF ID EX MEM WB FP instrukcija IF ID EX MEM WB Superskalarna PS-a u radu

  34. Primjer: Loop:LDF0, 0(R1) ; F0 = element niza • ADDD F4, F0, F2; dodavanje skalara iz F2 • SD 0(R1), F4; smještanje rezultata • SUBI R1, R1, #8; dekrement pokazivača na ljedeću DW • BNEZ R1, Loop ; grananje ako je R1!=0

  35. Cjelobrojna instrukcija FP instrukcija Ciklus sata LOOP: LD F0, 0(R1) 1 LD F6, -8(R1) 2 LD F10, -16(R1) ADDD F4, F0, F2 3 LD F14, -24(R1) ADDD F8, F6, F2 4 LD F18, -32(R1) ADDD F12, F10, F2 5 SD 0(R1), F4 ADDD F16, F14, F2 6 SD -8(R1), F8 ADDD F20, F18, F2 7 SD -16(R1), F12 8 SD -24(R1), F16 9 SUBI R1, R1, #40 10 BNEZ R1, LOOP 11 SD -32(R1), F20 12 Odmotana i preraspodijeljena sekvenca instrukcija na superscalarnoj oglednoj PS-i

  36. WLIW • Jednostavniji hardver, složeniji kompajler • koristi više nezavisnih FJ

  37. Pristup memoriji 1 Pristup memoriji 2 FP operacija 1 FP operacija 2 Cjelobrojna operacija/grananje LD F0, 0(R1) LD F6, -8(R1) LD F10, -16(R1) LD F14, -24(R1) LD F18, -32(R1) LD F22, -40(R1) ADDD F4, F0, F2 ADDD F8, F6, F2 LD F26, -48(R1) ADDD F12, F10, F2 ADDD F16, F14, F2 ADDD F20, F18, F2 ADDD F24, F22, F2 SD 0(R1), F4 SD -8(R1), F8 ADDD F28, F26, F2 SD -16(R1), F12 SD -24(R1), F16 SD -32(R1), F20 SD -40(R1), F24 SUBI R1, R1, #56 SD -0(R1), F28 BNEZ R1, LOOP Primjer:popunjavanje resursa oko 60%

  38. OGRANIČENJA PROCESORA SA VIŠESTRUKIM POKRETANJEM INSTRUKCIJA • raspoloživost ILP-a (nezavisnih instrukcija) • dodatni hardver neophodan za realizaciju pokretanja i izvršenja višestrukih operacija svakog takta(pogotovo SS) • kod VLIW – odmotavanje i zapošljavanje FJ-a;zastoj (npr. cache miss) u svakoj FJ-i izaziva zastoj procesora - sve FJ moraju biti sinhronizovane; binarna kompatibilnost u “familiji” procesora

  39. Transmeta - Crusoe

  40. Nardno predavanje? • 6 PODRŠKA KOMPAJLERA U POVEĆANJU ILP-a • 6.1OTKRIVANJE I ODKLANJANJE ZAVISNOSTI • 6.2SOFTVERSKE PROTOČNE STRUKTURE • 6.3TRASIRANJE • 7 PODRŠKA HARDVERA U POVEĆANJU ILP-a • 7.1USLOVNE INSTRUKCIJE • 7.2KOMPAJLERSKO SPEKULISANJE UZ PODRŠKU HARDVERA • 7.3SARADNJA HW-SW U SVRHU SPEKULACIJE • 7.4SPEKULISANJE KORIŠTENJEM BITA “OTROVA” • 7.5SPEKULATIVNE INSTRUKCIJE SA REIMENOVANJEM • 7.6HARDVERSKO SPEKULISANJE

More Related