William Sandqvist Övning 10 Processorkonstruktion med pipe-line.

Slides:



Advertisements
Liknande presentationer
BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
Advertisements

Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Display för GymAssistWear - Huvudmeny Välj Av/På Upp i Menyn Ned i Menyn Meny Tillbaka Antal repetitioner Göra Playlist Sparade Playlist Visa statistik.
Många studenter använder en LCD-display till sin programmeringsuppgift
Funktionen SA10-Grupper. Följande typer av grupper finns: - Grupp i kurs hör alltid ihop med en kurskod - Grupp i program hör alltid ihop med en programkod.
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
William Sandqvist Datorteknik övning 2 Subrutinanrop William Sandqvist
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.
En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.
Grundläggande programmering
9 September 2014IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Information om hur man spelar Trafik!. Din väckarklocka ringer på morgonen och du går upp och gör dig i ordning. Efter en smaskig frukost är du på väg.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
William Sandqvist C:s minnesmodell.
Elisabeth Ingesson, Kalmar Läns Landstingsavdelning 097
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
INTRODUKTION TILL PROGRAMMERING
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7 31 March IS1200 Datorteknik föreläsning CE – F2.
Superpositionsprincipen
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.
William Sandqvist PIC-programmeringsmiljön i skolan Datorerna i skolans labsalar är centralt underhållna. Du har inte rättigheter att installera.
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
2 April 2015 IS1200 Datorteknik o k, föreläsning CE - F31 IS1200 Datorteknik Föreläsning CE F3 Metoder / subrutiner Kursboken, delar av kapitel 4.
William Sandqvist IS1500 Datorteknik William Sandqvist
William Sandqvist Lab 2 Några slides att repetera inför Lab 2 William Sandqvist
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( )‏ Innehåll:  Att designa parallella program - manuell vs. automatisk parallellisering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
22 April 2015IS1200 Datorteknik, föreläsning 11 IS1200 Datorteknik Föreläsning 1 Introduktion.
William Sandqvist Datorteknik övning 1 Introduktion till assemblerprogrammering av Nios II William Sandqvist
2 June G1502, Föreläsning 8, vt2004 för E och I1 2G1502 Datorteknik allmän kurs Föreläsning 8 Processorkonstruktion DMA, Direct Memory Access.
6/3/2015© Mats Brorsson1 Hur mycket snabbare blir det med PC133 SDRAM jämfört med PC100 SDRAM?... blir det med en 1,4 GHz Athlon- processor jämfört.
William Sandqvist Tillståndsmaskiner  Moore-automat  Mealy-automat William Sandqvist
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
IF1330 Ellära Växelströmskretsar j  -räkning Enkla filter F/Ö1 F/Ö4 F/Ö6 F/Ö10 F/Ö13 F/Ö15 F/Ö2F/Ö3 F/Ö12 tentamen William Sandqvist F/Ö5.
1 2G1502 Datorteknik allmän kurs Föreläsning 3 Programmering med hopp Programmering av Nios.
IE1206 Inbyggd Elektronik F1 F2
14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
IF1330 Ellära Växelströmskretsar j  -räkning Enkla filter F/Ö1 F/Ö4 F/Ö6 F/Ö10 F/Ö13 F/Ö15 F/Ö2F/Ö3 F/Ö12 tentamen William Sandqvist F/Ö5.
16 July 2015 IS1500 Datorteknik och komponeneter, föreläsning DC-F2 1 IS1500 Datorteknik och komponenter Föreläsning DC F2 Kretsar med återkoppling Minnen.
30 July 2015 IS1200 Datorteknik föreläsning CE - F11 IS1200 Datorteknik Föreläsning CE F1 Computer Engineering Introduktion.
31 July 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
William Sandqvist Datorteknik övning 3 stackhantering subrutin som anropar subrutin programutveckling.
IE1206 Inbyggd Elektronik Transienter PWM Visare j  PWM CCP KAP/IND-sensor F1 F3 F6 F8 F2 Ö1 F9 Ö4F7 tentamen William Sandqvist PIC-block.
4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10.
IE1206 Inbyggd Elektronik F1 F2
15 August 2015 IS1200 Datorteknik föreläsning CE - F11 IS1200 Datorteknik Föreläsning CE F1 Computer Engineering Introduktion.
William Sandqvist Låskretsar och Vippor Låskretsar (latch) och vippor (flip-flop) är kretsar med minnesfunktion. De ingår i datorns minnen.
William Sandqvist 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.
Hur får vi Sigbox att bli en helhet? BFL, SUA, IKT.
Möte 3 Trumfspel.
Från databas till Excel
Vetenskapsprojekt, rubrik
Grundläggande datavetenskap, 4p
Spelarutbildningsplan
Digitalteknik 3p - Kombinatoriska Byggblock
Y 5.3 Kombinatorik Kombinationer
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

William Sandqvist Övning 10 Processorkonstruktion med pipe-line

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

William Sandqvist 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 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 ( Pipeline i datorer? ) Hyper Pipeline 20-steg (Pentium 4, år 2000) Därefter infördes Hyper Pipeline 31-steg! (år 2004)

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

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

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

William Sandqvist De fyra stegen i detalj

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

William Sandqvist Register och kombinatorik

William Sandqvist Skiftregister? Kommer Du ihåg digitalteknikens skiftregister?

William Sandqvist CPU med 4-stegs pipeline Om man kompletterar registren med några extra vippor så kan de fungera som skiftregister för instruktionerna – 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!

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

William Sandqvist Problem: Data dependency RAW, Read After Write – instruktioner. R1 = R2 + R3 R4 = R5 + R6 R7 = R4 + R1

William Sandqvist 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 Inför nya datavägar (2)

William Sandqvist Data forwarding R1 = R2 + R3 R4 = R5 + R6 R7 = 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 Load och Store, 5-stegs pipeline Indexerad operandutpekning är bra att ha

William Sandqvist CPU med 5-stegs pipeline Addera offset! Skriv/Läs minnet

William Sandqvist 5-stegs pipeline

William Sandqvist De fem stegen i detalj

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

William Sandqvist Problem: Data dependency RAW, Read After Write – instruktioner. R1 = R2 + R3 R9 = R5 + R6 R7 = R10 + R4 R8 = R7 + R1 RAW-konflikten kan lösas genom att skjuta in tre NOP (eller andra, ”nyttiga”, instruktioner) mellan WB och FO.

William Sandqvist 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 Problem: Delayed branching OBS! Alltid!

William Sandqvist 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 ( Datorarkitektur. Hopp statistik ) 20% av vanlig programkod är hoppinstruktioner – var femte instruktion är således ett hopp. 80% av hoppinstruktionerna är vilkorliga hopp % 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 ( 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. Gissar man rätt sparar man tid – gissar man fel måste pipelinen ”startas om”. NiosII processorn har en sådan dynamisk hoppgissning.

William Sandqvist ( 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 ( 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 ( 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 T yp-tenta (13/1 2009): Uppgift 5

William Sandqvist a) 4-stegs, delay slot, data forward. Skriv om NiosII-koden för processorn. i1 CSM: MOVI R8,0 i2 MOVI R9,0 i3 ORI R10,R0,0xffff i4 CKLOOP: LDH R8,0(R4) i5 SUBI R5,R5,2 i6 ADDI R4,R4,2 i7 BGE R5,R0,CCONT i8 ANDI R8,R8,0x00ff i9 CCONT: ADD R11,R9,R8 i10 AND R9,R10,R11 i11 BEQ R9,R11,CNOCY i12 ADDI R9,R9,1 i13 CNOCY: BGT R5,R0,CKLOOP i14 MOV R2,R9 i15 RET i16 OTHER: MOVI R2,17 NOP Oberoende instruktion! ADDI R4,R4,2 NOP R2 används ej i loopen – får skrivas över!

William Sandqvist b) 4-stegs, ingen delay slot, ingen data forward. Skriv om koden. i1 CSM: MOVI R8,0 i2 MOVI R9,0 i3 ORI R10,R0,0xffff i4 CKLOOP: LDH R8,0(R4) i5 SUBI R5,R5,2 i6 ADDI R4,R4,2 i7 BGE R5,R0,CCONT i8 ANDI R8,R8,0x00ff i9 CCONT: ADD R11,R9,R8 i10 AND R9,R10,R11 i11 BEQ R9,R11,CNOCY i12 ADDI R9,R9,1 i13 CNOCY: BGT R5,R0,CKLOOP i14 MOV R2,R9 i15 RET i16 OTHER: MOVI R2,17 RAW-problem? NOP

William Sandqvist c) 5-stegs, ingen delay slot, data forward. Skriv om koden för processorn. i1 CSM: MOVI R8,0 i2 MOVI R9,0 i3 ORI R10,R0,0xffff i4 CKLOOP: LDH R8,0(R4) i5 SUBI R5,R5,2 i6 ADDI R4,R4,2 i7 BGE R5,R0,CCONT i8 ANDI R8,R8,0x00ff i9 CCONT: ADD R11,R9,R8 i10 AND R9,R10,R11 i11 BEQ R9,R11,CNOCY i12 ADDI R9,R9,1 i13 CNOCY: BGT R5,R0,CKLOOP i14 MOV R2,R9 i15 RET i16 OTHER: MOVI R2,17 5-stegs pipeline kräver NOP efter load om beroende instruktion följer. Instruktionen efter Load är oberoende av R8! Ingen åtgärd behövs således. Motiveringen är avgörande för poäng! Att inte skriva något är inte svar på frågan!

William Sandqvist 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 Repris: I-cache och D-cache

William Sandqvist Repris: I-Cache och D-Cache FI FO MEM WB

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

William Sandqvist (Typtenta 13/1 2009) uppgift 1

William Sandqvist Typtenta uppgift 2 Assemblerprogram Lösning på whiteboard- tavlan.

William Sandqvist Typtenta uppgift 3 In och utmatning och avbrott Lösning på whiteboard- tavlan.

William Sandqvist Typtenta uppgift 3

William Sandqvist Typtenta uppgift 3

William Sandqvist Typtenta uppgift 4 Cache-minnen Lösning sker på whiteboard- tavlan.

William Sandqvist Typtenta uppgift 4

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

William Sandqvist Typtenta uppgift 6

William Sandqvist Typtenta uppgift 6