Download
vning 10 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Övning 10 PowerPoint Presentation

Övning 10

142 Views Download Presentation
Download Presentation

Övning 10

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Övning 10 Processorkonstruktion med pipe-line William Sandqvist william@kth.se

  2. Datorteknik övning 10 CE F1 CE F2 CE Ö1 CE F3 CE Ö2 Assemblerprogram CE F4 CE Ö3 lab nios2time C CE F5 CE Ö4 hemlab C In- och utmatning CE F6 CE Ö5 CE Ö6 lab nios2io Avbrott och "trap" CE F7 CE Ö7 lab nios2int Cacheminnen CE F8 CE Ö8 hemlab cache Trådar, synkronisering CE F9 CE Ö9 hemlab trådar CE F10 CE Ö10 tentamen William Sandqvist william@kth.se

  3. KIA’s fabrik i Slovenien En bil i minuten lämnar bandet – tar det en minut att bygga en bil? Nej för KIA's fabrik utanför Zilina tar det 18 mantimmar att bygga en bil (detta är ändå världsrekord! Toyota behöver c:a 30 mantimmar). Lösningen är en Pipeline. 18 timmar är 1080 minuter, så bygget kan ske parallellt vid 1080 enminutersstationer. Fabriken har 3000 anställda som arbetar i treskift, dvs 1000 arbetare per skift. Många av station-erna är således helt robotiserade. William Sandqvist william@kth.se

  4. Produktions-störning? Måste man stoppa det löpande bandet kan det ta upp till 1080 minuter innan en ny bil kan levereras efter stoppet! Det är därför arbetsledarna längs bandet är så nervösa … William Sandqvist william@kth.se

  5. ( Pipeline i datorer? ) Hyper Pipeline 20-steg (Pentium 4, år 2000) Därefter infördes Hyper Pipeline 31-steg! (år 2004) William Sandqvist william@kth.se

  6. ( Nios II pipeline ) Nios II kan ha 5-stegs eller 6-stegs pipeline. (Eller sakna pipeline). William Sandqvist william@kth.se

  7. 2-steg, 2-stegs pipeline För att utföra en instruktion behövs två faser, FETCHoch EXECUTE. Eftersom de två faserna kan göras oberoende av varandra kan man införa en två-stegs pipeline. (Exempel – PIC-processor). William Sandqvist william@kth.se

  8. 4-steg De två grundläggande faserna FETCH och EXECUTE kan delas in i fler delfaser. William Sandqvist william@kth.se

  9. De fyra stegen i detalj William Sandqvist william@kth.se

  10. Observera! Det är en och samma Register File som är ritad på två ställen! CPU med 4-steg William Sandqvist william@kth.se

  11. Register och kombinatorik William Sandqvist william@kth.se

  12. Skiftregister? Kommer Du ihåg digitalteknikens skiftregister? William Sandqvist william@kth.se

  13. CPU med 4-stegs pipeline Tack vare NiosII:s instruk-tionsformat räcker det att lägga till ett fåtal vippor för att få en 4-stegs pipeline! Om man kompletterar registren med några extra vippor så kan de fungera som skiftregister för instruktionerna – pipeline! William Sandqvist william@kth.se

  14. 4-stegs pipeline En instruktion blir färdig varje klockcykel, i stället för var fjärde! William Sandqvist william@kth.se

  15. Problem: Data dependency RAW, Read After Write – instruktioner. R1 = R2 + R3R4 = R5 + R6R7 = R4 + R1 William Sandqvist william@kth.se

  16. Lösning? (1)  Processorn bromsar exe-kveringen i två klockcykler så att R1 och R4 hinner tas fram.  Kompilatorn skjuter in två NOP-instruktioner så att R1 och R4 hinner tas fram.  Kompilatorn hittar två oberoende instruktioner som ändå ska utföras och använder dessa i stället för de två NOP-instruktionerna!= SUPERSMART! William Sandqvist william@kth.se

  17. Inför nya datavägar (2) William Sandqvist william@kth.se

  18. Data forwarding R1 = R2 + R3R4 = R5 + R6R7 = R4 + R1 Processorn ”väljer” automatiskt den av datavägarna som leder till det senaste datat. NiosII:s instruktionsformat visar direkt vilka register som de olika instruktionerna använder. William Sandqvist william@kth.se

  19. Load och Store, 5-stegs pipeline Indexerad operandutpekning är bra att ha William Sandqvist william@kth.se

  20. CPU med 5-stegs pipeline Addera offset! Skriv/Läs minnet William Sandqvist william@kth.se

  21. 5-stegs pipeline William Sandqvist william@kth.se

  22. De fem stegen i detalj William Sandqvist william@kth.se

  23. Problem: Load delay ”Stall” eller införa en NOPnödvändigt. Nya datavägar kan inte lösa problemet.( Alternativt att hitta en nyttig instruktion i NOP:s ställe! ) William Sandqvist william@kth.se

  24. Problem: Data dependency RAW, Read After Write – instruktioner. R1 = R2 + R3R9 = R5 + R6R7 = R10 + R4R8 = R7 + R1 RAW-konflikten kan lösas genom att skjuta in treNOP (eller andra, ”nyttiga”, instruktioner) mellan WB och FO. William Sandqvist william@kth.se

  25. Alternativ lösning, nya datavägar Även vid 5-stegs pipeline kan således RAW-konflikten lösas med hjälp av nya datavägar. Data Forwarding. William Sandqvist william@kth.se

  26. OBS! Alltid! Problem: Delayed branching William Sandqvist william@kth.se

  27. Utnyttja hoppluckan!  Kanske skadar det inte att den efterföljande instruktionen utförs? I så fall kan den stå kvar.  Annars placerar man en onyttig NOP instruktion som skydd.  Eller så placerar man en nyttig instruktion där som ändå skall utföras. William Sandqvist william@kth.se

  28. ( Datorarkitektur. Hopp statistik ) 20% av vanlig programkod är hoppinstruktioner – var femte instruktion är således ett hopp. 80% av hoppinstruktionerna är vilkorliga hopp. 75-80% av de hoppen utförs. Statisk hoppgissning: Bästa gissningen blir således att gissa att alla vilkorliga hopp utförs! Den gissningen går hem i 75% av fallen. William Sandqvist william@kth.se

  29. ( Dynamisk hoppgissning ) Ex. Pentiums hoppgissning:Det krävs ”två i rad” utförda hopp eller uteblivna hopp för att hoppgissningen ska ändras. - Gissar man hopp laddas pipelinen med instruktioner från hoppdestinationen. - Gissar man uteblivet hopp laddas pipelinen med efter-följande instruktioner. NiosII processorn har en sådan dynamisk hoppgissning. Gissar man rätt sparar man tid – gissar man fel måste pipelinen ”startas om”. William Sandqvist william@kth.se

  30. ( Två nivåers hoppgissning ) Pentium Pro har lång pipeline (31 steg) och måste därför kunna ”gissa” hoppen ändå bättre! Hoppmönstret av de senaste fyra hoppen, aktiverar en av sexton ”två i rad-kretsar” som gör gissningen. Ett sådant anordning klarar att ”lära” sig olika hoppmönster. Resultatet blir bättre än 90% korrekta gissningar. William Sandqvist william@kth.se

  31. ( Principschema ) Två nivåers hopp-gissning bygger på ett skiftregister, en avkodare, och 16 st ”två i rad” sekvensnät (av den tidigare visade typen). William Sandqvist william@kth.se

  32. ( Mapping/Re-mapping och Branch prediktion ) Intel Itanium kan ändra ordningen på instruktionerna (och ändra tillbaka ordningen på resultaten) för att slippa stoppa pipelinen. William Sandqvist william@kth.se

  33. T yp-tenta (13/1 2009): Uppgift 5 William Sandqvist william@kth.se

  34. Oberoende instruktion! ADDI R4,R4,2 NOP NOP R2 används ej i loopen – får skrivas över! NOP NOP a) 4-stegs, delay slot, data forward. Skriv om NiosII-koden för processorn. i1 CSM: MOVI R8,0i2 MOVI R9,0i3 ORI R10,R0,0xffffi4 CKLOOP: LDH R8,0(R4)i5 SUBI R5,R5,2i6 ADDI R4,R4,2i7 BGE R5,R0,CCONTi8 ANDI R8,R8,0x00ffi9 CCONT: ADD R11,R9,R8i10 AND R9,R10,R11i11 BEQ R9,R11,CNOCYi12 ADDI R9,R9,1i13 CNOCY: BGT R5,R0,CKLOOPi14 MOV R2,R9i15 RETi16 OTHER: MOVI R2,17 William Sandqvist william@kth.se

  35. NOP NOP NOP NOP NOP NOP NOP NOP b) 4-stegs, ingen delay slot, ingen data forward. Skriv om koden. i1 CSM: MOVI R8,0i2 MOVI R9,0i3 ORI R10,R0,0xffffi4 CKLOOP: LDH R8,0(R4)i5 SUBI R5,R5,2i6 ADDI R4,R4,2i7 BGE R5,R0,CCONTi8 ANDI R8,R8,0x00ffi9 CCONT: ADD R11,R9,R8i10 AND R9,R10,R11i11 BEQ R9,R11,CNOCYi12 ADDI R9,R9,1i13 CNOCY: BGT R5,R0,CKLOOPi14 MOV R2,R9i15 RETi16 OTHER: MOVI R2,17 RAW-problem? William Sandqvist william@kth.se

  36. Instruktionen efter Load är oberoende av R8!Ingen åtgärd behövs således. c) 5-stegs, ingen delay slot, data forward. Skriv om koden för processorn. i1 CSM: MOVI R8,0i2 MOVI R9,0i3 ORI R10,R0,0xffffi4 CKLOOP: LDH R8,0(R4)i5 SUBI R5,R5,2i6 ADDI R4,R4,2i7 BGE R5,R0,CCONTi8 ANDI R8,R8,0x00ffi9 CCONT: ADD R11,R9,R8i10 AND R9,R10,R11i11 BEQ R9,R11,CNOCYi12 ADDI R9,R9,1i13 CNOCY: BGT R5,R0,CKLOOPi14 MOV R2,R9i15 RETi16 OTHER: MOVI R2,17 5-stegs pipeline kräver NOP efter load om beroende instruktion följer. Motiveringen är avgörande för poäng! Att inte skriva något är inte svar på frågan! William Sandqvist william@kth.se

  37. e) (5-stegs, delay slot, data forward). Hur påverkas körningen om det bara finns en gemensam cache, inte separata D och I-cachar! Instruktioner kan inte hämtas samtidigt som load eller store utförs. I detta program stoppar LDH R8,0(R4) upp hämtningen av SUBI R5,R5,2. Effekten blir som några extra NOP. Det är som om den första och den sista stationen längs ett löpande band skulle använda samma verktygslåda! Bättre med egna verktyg till varje station! William Sandqvist william@kth.se

  38. Repris:I-cache och D-cache William Sandqvist william@kth.se

  39. Repris: I-Cache och D-Cache FI FO WB MEM William Sandqvist william@kth.se

  40. (Typtenta 13/1 2009) uppgift 1 Lösning sker på whiteboard-tavlan. William Sandqvist william@kth.se

  41. (Typtenta 13/1 2009) uppgift 1 William Sandqvist william@kth.se

  42. Typtenta uppgift 2 Assemblerprogram Lösning på whiteboard-tavlan. William Sandqvist william@kth.se

  43. Typtenta uppgift 3 In och utmatning och avbrott Lösning på whiteboard-tavlan. William Sandqvist william@kth.se

  44. Typtenta uppgift 3 William Sandqvist william@kth.se

  45. Typtenta uppgift 3 William Sandqvist william@kth.se

  46. Typtenta uppgift 4 Cache-minnen Lösning sker på whiteboard-tavlan. William Sandqvist william@kth.se

  47. Typtenta uppgift 4 William Sandqvist william@kth.se

  48. Typtenta uppgift 6 Lösning sker på whiteboard-tavlan. Numera innehåller uppgifterna 50% om kod för tex. trådbyte. William Sandqvist william@kth.se