Presentation laddar. Vänta.

Presentation laddar. Vänta.

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.

Liknande presentationer


En presentation över ämnet: "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."— Presentationens avskrift:

1 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 7 ht 2009 – vt 2010 (period 2-3) För D-2

2 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)2 Välkommen till IS1200 Datorteknik ”Hur datorer fungerar” Kursens hemsida finns utpekad från: http://www.ict.kth.se/courses/IS1200 emailadress till lärare: is1200_teachers@ict.kth.se Kursansvarig: Johan Wennlund

3 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)3 F1F2F3F4F5F7F8F9F10Ö2Ö1Ö3LAB-1Hemlab-1Ö4Ö7LAB-3Hemlab-2Ö8Hemlab-3Ö9TentamenÖ10 Assemblerkod 4 stegs pipeline Nios2time C-kod Nios2io Nios2int Cache-minnen CPU-scheduling IS1200 Datorteknik http://www.ict.kth.se/courses/IS1200 Hösten 2009 Våren 2010 F6Ö5Ö6LAB-2

4 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)4 IS1200 Datorteknik Föreläsning 2, innehåll +Vi bygger en processor +4 stegs Pipe-line för ADD, SUB,... +Data Dependencies och Data Forward +Branch Delay Slot - hopplucka +LOAD och STORE +Nios-II: MOVI och MOVIA

5 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)5 Nu bygger vi en dator av... &=1>1 DRIVER COUNTER REGISTER Q Q’ D preset cl clear ALU MUX +n WR EN 1 & >1

6 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)6 Viktiga delar i en dator CPU MEM BUS I/O program data

7 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)7 Programexekvering i två steg (decode) EXECUTE FETCH (update PC)

8 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)8 Typisk instruktion ADDR dst  R srcA + R srcB  Kombinera innehåll i R srcA och R srcB och skriv till R dst  ADD, SUB, MUL, DIV, AND, OR, XOR, …  Hur många bitar krävs i Instruktionen ?  Man kan minska behovet av bitar med kortare instruktion ADD R dst, R src ;R dst  R dst + R src

9 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)9 ADD R dst <- R srcA + R srcB ADD Hur många bitar behövs? ~6+5+5+5 Hur stor blir varje instruktion? Mer än 16 (t.ex. MIPS/Nios-II …) INSTRUKTIONSFORMAT med tre register-operander Exempelvis: 6 5 5 5

10 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)10 ADD R dst, R srcA, R srcB 0x31 Hur många bitar behövs ? 15 + op-code Hur stor är varje instruktion ? 32 bitar ! INSTRUKTIONSFORMAT enligt ovan INSTRUKTIONSFORMAT binärkod i Nios II 5 5 5 6 5 6 bitar per fält 0x3a0x00

11 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)11 Programexekvering i fyra steg 1.FI - Fetch Instruction 2.FO - Fetch Operand 3.EX - Execute 4.WB - Write Back

12 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)12 EX - EXecute Execute ALU t.ex. ADD operander resultat av operationen ~6 bitars kod ALU-register ALU-A och ALU-B 6 bitars kod möjliggör 64 olika operationer: A, -A, A+1, A-1, A+B, A-B, Ainv, A and B, A or B,... AB operation

13 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)13 FO - Fetch Operand ExecuteFetch Operand Register File 32 x 32 ALU 5 bitars adress, R srcA 5 bitars adress, R srcB RWM - Read Write Memory ”SRAM” Read SRAM – Static RAM ”snabbt minne”

14 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)14 WB - Write Back ExecuteFetch OperandWrite Back ALU Register File 32 x 32 Register File 32 x 32 SAMMA en Register File (inte två olika) 5 bitars adress, R dst Write Read

15 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)15 FI - Fetch Instruction Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR PC +n Register File 32 x 32 Register File 32 x 32 16/32 5 5 5 6 PC - Program Counter n = 2 eller 4 beror på om instruktion är 16 eller 32 bitar, 2 eller 4 bytes

16 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)16 Innehåll i register r0 om det alltid är 0  Det medför att  ADD r0, r0, r0 utför NOP, No OPeration  ADD rA, r0, r0 utför CLR rA, CLeaR reg  ADD rA, rB, r0 utför COPY rA  rB, MOV  BEQ r0, r0, Label utför BR Label  BNE r0, r0, Label utför... ...

17 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)17 4 stegs CPU Konsekvent synkronism 8 Förbered skrivning till Register File FIFOEXEWB 6 ALU arbetar (ADD/SUB/ …) 4 Avkoda instruktion samt leta fram operander 2 Leta fram instruktion ur Program Memory 9 Skriv resultat till Register File 7 Skriv resultat till tmp-reg 5 Skriv operander till ALU-register 3 Skriv instruktion till Instruction Register 1 Skriv nytt värde till Program Counter clock Skrivning utförs vid positiv flank på clock, samtidigt till varje vippa/register/minne

18 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)18 Utan PIPE-LINE Hur många klockcykler ? FIFOEXEWB ADD FIFOEXEWB 4 klockcykler per instruktion! 1 instruktion klar var 4:e klockcykel!

19 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)19 PIPE - LINE införs nu ! Flera register IR Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 NYTT PC +n Register File 32 x 32 Register File 32 x 32 IR1: 11 vippor IR2: 5 vippor

20 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)20 Med PIPE-LINE Hur många klockcykler ?... ADD FIFOEXEWBFIFOEXEWBFIFOEXEWBFIFOEXEWB 4 klockcykler per instruktion! 1 instruktion klar per klockcykel!

21 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)21 IS1200 Datorteknik PAUS-BILD (andas djupt och ta nya tag)

22 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)22 Fenomen pga PIPE-LINE 1. Data Dependency 2. Branch Delay 3. Load Dealy 4. Structural Hazard

23 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)23 1.Data Dependencies (Fenomen pga PIPE-LINE) ¯Programexempel 44:ADD R4 <- R5 + R6 48:ADD R1 <- R2 + R3 52:ADD R7 <- R1 + R4 ¯Innehåll i R1 och R4 på rad 52 ¯Avser resultat av rad 44 och 48 Men ¯”nya” R1 och R4 finns inte i REG-FILE än

24 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)24 Data Dependencies Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 44: R4 <- R5+R6 Register File 32 x 32 Register File 32 x 32

25 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)25 Data Dependencies Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 44: R4 <- R5+R6 48: R1 <- R2+R3

26 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)26 Data Dependencies Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 52: R7 <- R1+R4 nya r4 nya r1 Register File 32 x 32 Register File 32 x 32 44: R4 <- R5+R6 48: R1 <- R2+R3 gamla r1 gamla r4

27 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)27 Data Dependencies med 4 stegs PIPE-LINE 44: ADD... 48: ADD... FIFOEXEWBFIFOEXEWBFIFOEXEWB 52: ADD... Nya R1 skrivs till RegFile Gamla R1 och R4 läses från RegFile Nya R4 skrivs till RegFile Gamla R1 och R4 skrivs till ALU-reg 44:ADD R4 <- R5 + R6 48:ADD R1 <- R2 + R3 52:ADD R7 <- R1 + R4 # gamla värden i R1 och R4

28 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)28 Data Dependencies läsning måste ske efter skrivning 44: ADD... 48: ADD... FIFOEXEWBFIFOEXEWBFIFOEXEWB Fördröj till xx: ADD... Nya R1 skrivs till RegFile Nya R4 skrivs till RegFile Nya R1 och R4 läses från RegFile Nya R1 och R4 skrivs till ALU-reg 44:ADD R4 <- R5 + R6 48:ADD R1 <- R2 + R3 52:ADD R7 <- R1 + R4 # gamla värden i R1 och R4

29 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)29 44: ADD... 48: ADD... FIFOEXEWBFIFOEXEWBFIFOEXEWB 44:ADD R4 <- R5 + R6 48:ADD R1 <- R2 + R3 52:NOP # fördröjer 1 cykel 56:NOP # fördröjer 1 cykel 60:ADD R7 <- R1 + R4 # nya värden i r1 och r4 60: ADD... R1 skrivs till RegFile R1 och R4 läses från RegFile R4 skrivs till RegFile FIFOEXEWBFIFOEXEWB NOP

30 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)30 Data Forward inför nya data-vägar Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 52: R7 <- R1+R4 44: R4 <- R5+R6 48: R1 <- R2+R3 NYTT

31 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)31 Data Forward inför nya data-vägar Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 NYTT 52: R7 <- R1+R4 44: R4 <- R5+R6 48: R1 <- R2+R3 nya r4 nya r1

32 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)32 Enable-signaler till nya data-vägar Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 NYTT 52: R7 <- R1+R4 44: R4 <- R5+R6 48: R1 <- R2+R3 ENA0 ENB0 ENA2 ENB2 ENA1 ENB1 Komb. nät ENA0 ENB0 ENA2 ENB2 ENA1 ENB1 NYTT

33 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)33 44: ADD... 48: ADD... FIFOEXEWBFIFOEXEWBFIFOEXEWB 44:ADD R4 <- R5 + R6 48:ADD R1 <- R2 + R3 52:ADD R7 <- R1 + R4 52: ADD... Nya R1 skrivs till RegFile Nya R1 och R4 läses via DataForward Nya R4 skrivs till RegFile Nya R1 och R4 skrivs till ALU-reg Data Forward genvägar ger snabbhet

34 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)34 Ny Typisk instruktion ADDR dst <-- R srcA + Imm n 1.Kombinera innehåll i R srcA och Imm och skriv till R dst 2.ADD, SUB, MUL, DIV, AND, OR, XOR, … 3.Hur många bitar krävs i Instruktionen ? 4.Man kan minska behovet av bitar med kortare instruktion ADD R dst, Imm

35 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)35 ADDI R dst, R src, data n ADDI Hur många bitar behövs? ~6+5+5+n Hur stor blir varje instruktion? Mer än 16 INSTRUKTIONSFORMAT med immediate data Exempelvis: 6 5 5 n

36 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)36 ADDI R dst, R srcA, Data SUBI rB, rA, IMM16  ADDI rB, rA, -IMM16 IMM16 innehåller ett 2-komplement-tal... 5 5 16 6 bitar per fält 0x04 INSTRUKTIONSFORMAT Binärkod i Nios II

37 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)37 Immediate data inför ny dataväg Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU PC IR0 IR1 IR2 +n Ny dataväg hur många bitar ? Register File 32 x 32 Register File 32 x 32

38 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)38 Extension 16 -> 32 bits Nollor eller Sign Extension 00000000000000000xxxxxxxxxxxxxxxx 000000000000000000xxxxxxxxxxxxxxx 111111111111111111xxxxxxxxxxxxxxx Fyll ut med nollor Fungerar för unsignedint Sign extension Vid positivt tal Sign extension Vid negativt tal xxxxxxxxxxxxxxxx 31 16 15 0 0xxxxxxxxxxxxxxx 31 16 15 0 1xxxxxxxxxxxxxxx 31 16 15 0 Sign Extension Fungerar för signedint

39 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)39 JUMP och BRA Ovillkorliga hopp  JUMP brukar ha direkt adress  BRA brukar ha PC-relativ adress JMP 104 #PC := 104”hopp till 104”. BRA 40 #PC := pc + 40”hopp till 268” 32: 104: 224: 268:

40 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)40 Ny hopp-instruktion JUMP (R addr ) 1.Registerindirekt adressering 2.Effektiv adress i ett register 3.Kopiera registerinnehåll till PC 4.Register med 32 bitar betyder att 5.32 bits adress kan användas 6.Hur får man 32 bits adress till registret ? Det måste ordnas på något sätt !

41 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)41 JUMP (R addr ) inför ny dataväg Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU PC IR0 IR1 IR2 +n Register File 32 x 32 Register File 32 x 32 Ny dataväg hur många bitar ?

42 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)42 Vanlig hopp-instruktion JUMP Imm n  Imm n skrivs till PC  Hur stor är Imm n ? ”lediga” bitar t.ex. 32-6=26 !  Hur stor vill vi att Imm n ska vara helst ? Imm n ska kunna adressera ”hela minnet” !

43 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)43 JUMP brukar ha direkt adress JUMP Label JUMP Hur många bitar behövs? 6+n! Hur stor blir varje instruktion? 6+n! INSTRUKTIONSFORMAT enligt ovan Vilket värde bör man välja för n? 10/26! INSTRUKTIONSFORMAT 6 n bitar per fält

44 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)44 Vanlig hopp-instruktion BR Imm n  PC sätts till PC + Imm n  Hur stor är Imm n ? ”lediga” bitar t.ex. 32-6=26 !  Hur stor vill vi att Imm n ska vara helst ? Imm n ska kunna adressera ”hela minnet” !

45 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)45 BRA brukar ha PC-relativ adress BRA Displacement BRA INSTRUKTIONSFORMAT 6 n bitar per fält Hur många bitar behövs? 6+n! Hur stor blir varje instruktion? 6+n! INSTRUKTIONSFORMAT enligt ovan Vilket värde bör man välja för n? 10/26!

46 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)46 BRA Imm n inför ADDitionsenhet och datavägar Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU ADD IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 PC PC+n PC+Imm Nytt

47 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)47 Fenomen pga PIPE-LINE 2.Branch Delay Slot Instruktionen i minnespositionen närmast efter en hoppinstruktion kommer hämtas och utföras innan hoppet verkställs Programexempel 16: BRA 64 20: ADD …# hämtas och utförs 24: … … 84: SUB...

48 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)48 Efter FI av 16: BRA 64 Execute Fetch Operand Write Back Fetch Instruction 16: BRA 64 20: ADD ALU ADD IR0 IR1 IR2 20 BRA 64 6420 16: BRA 64 20: ADD … 24: … … 84: SUB … 88:... Register File 32 x 32 Register File 32 x 32 PC PC+4 PC+Imm 20

49 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)49 Efter FI av 20: ADD Execute Fetch Operand Write Back Fetch Instruction ALU ADD IR0 IR1 IR2 ADD BRA 64 16: BRA 64 20: ADD 84 Register File 32 x 32 Register File 32 x 32 PC+4 PC+Imm PC 16: BRA 64 20: ADD … 24: … … 84: SUB … 88:... 84

50 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)50 Efter FO av 20: ADD Execute Fetch Operand Write Back Fetch Instruction ALU ADD IR0 IR1 IR2 SUB BRA 64 16: BRA 64 20: ADD 88 ADD Register File 32 x 32 Register File 32 x 32 PC+4 PC+Imm PC 16: BRA 64 20: ADD … 24: … … 84: SUB … 88:... 88

51 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)51 FIFO EXEWB 4 Avkoda instruktion samt leta fram operander 2 Leta fram instruktion ur Program Memory 5 Skriv nytt värde till Program Counter = hoppa 3 Skriv instruktion till Instruction Register 1 Skriv nytt värde till Program Counter clock Skrivning utförs vid positiv flank på clock, samtidigt till varje vippa/register/minne Ovillkorliga hopp (BRA/JUMP) när kan hoppet tidigast utföras ? (Ledig tid: ”Kislet kallnar” eller... ) (Skriv till R0 eller inte alls) (Skriv till tmp-reg eller inte alls)

52 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)52 Hur undviks Branch Delay Slot Hur utnyttjas Branch Delay Slot Olika metoder: 1.Fyll ut med en (onyttig) NOP 2.Skriv en (nyttig) instruktion i hoppluckan 3.Kompilator/Programmerare väljer 4.Låt hårdvaran specialbehandla hopp (hoppgissning / invalidate /...)

53 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)53 STATUS-flaggor  Z - Zero; ”utfall lika med noll”  N - Negativ; ”utfall med negativt tecken”  V - oVerflow; ”utfall med overflow”  C - Carry; Carry-ut från ALU  kan finnas fler... Påverkas av ADD, SUB, CMP...

54 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)54 Gäller för MIPS-Processorn (ej Nios-II) R0 R31 R1 PC Minne Generella registerProgramräknare NVZC Status

55 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)55 STATUS-flaggor Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU ADD IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 PC PC+n PC+Imm Nytt NVZC ADD

56 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)56 STATUS-flaggor Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU ADD IR0 IR1 IR2 Register File 32 x 32 Register File 32 x 32 PC Nytt NVZC Logik för villkorligt hopp op-code CCR true/false PC+n / PC+Imm BCond ADD

57 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)57 Branch on Condition Common examples Label = PC BEQ + 4 + Imm Imm = Label - PC BEQ - 4  BEQ Label if EQUAL then PC:=PC+Imm else PC:=PC+4  BNE Label if Not Equal then PC:=PC+Imm else PC:=PC+4  BLE Label if Less or Equal then PC:=PC+Imm else PC:=PC+4 ...

58 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)58 FIFO 4 Avkoda instruktion samt läs STATUS 2 Leta fram instruktion ur Program Memory 5 Skriv nytt värde till Program Counter = hoppa 3 Skriv instruktion till Instruction Register 1 Skriv nytt värde till Program Counter clock Villkorliga hopp (B”cond”) när kan hoppet tidigast utföras ? (När sker skrivning till STATUS?) (Finns rätt info i STATUS?) Skrivning utförs vid positiv flank på clock, samtidigt till varje vippa/register/minne

59 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)59 IS1200 Datorteknik PAUS-BILD (andas djupt och ta nya tag)

60 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)60 LOAD och STORE memory  register Vi ska kunna utföra operationer av typen LOAD och STORE Vilka operandutpekningsmetoder ska vi ha ? Gärna med direkt adressering dvs zLOAD reg <- mem(adr) zSTORE mem(adr) <- reg men: En ”hel adress” ryms ej i adressfältet vilket leder till...

61 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)61 LOAD och STORE memory  register  Vi inför hårdvara för instruktionerna LOADR dst, [ R addr ] STORE [ R addr ], R src  med registerindirekt adressering dvs effektivadress i register

62 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)62 Execute Fetch Operand Write Back Fetch Instruction Program Memory m x 8 ALU ADD IR0 IR1 IR2 RWM LOAD och STORE med 4 stegs PIPE-LINE Register File 32 x 32 Register File 32 x 32 PC+n PC+Imm PC Nytt

63 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)63 LOAD och STORE med 4 stegs PIPE-LINE LOAD to Rd USE Rd FIFO MEM WBFIFOEXEWB Data från MEM finns tillgängligt Data från MEM finns tillgängligt för FO via Data Forward Leta fram data ur MEM

64 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)64 Program Memory m x 8 ALU ADD IR0 IR1 IR2 RWM LOAD och STORE med data forward Register File 32 x 32 Register File 32 x 32 PC+n PC+Imm PC (Man kan spara vissa register !)

65 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)65... LOAD STORE ADD FIFO MEM WBFIFO MEM WBFIFOEXEWBFIFOEXEWB Samtidig referens till minnet i FI- och MEM-stegen 4. Structural Hazard strukturell konflikt

66 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)66 4. Structural Hazard strukturell konflikt Samtidig referens till Instruktionsminne och Dataminne Problemet undviks lämpligen med Separata (cache-) minnen för Program och Data (Harward-arkitektur) (separata I-cache och D-cache)

67 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)67 Minnesbehov Viktiga frågor, svar senare 1.Separata minnen för Instruktion och Data 2.Samtidig referens av I och D 3.Cykeltid för I-mem 4.Cykeltid för D-mem 5.I balans med CPU-klocka 6.Är detta möjligt? Nej! Tja ? (cache-minnen)

68 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)68 LOAD och STORE memory  register Vi (kompilatorn) vill kunna utföra instruktioner av typen LOAD och STORE med indexerad adressering dvs  LOADR dst, Offset[ R addr ]  STOREOffset[ R addr ], R src Hårdvara för detta tas upp senare i kursen

69 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)69 Ladda ett register med ett konstant värde, Nios-II Operationen MOVI rB, IMMED 16 med 16 bitars värde känt ”at compile- time” kan utföras av (t.ex.) MOVI r6, -30# sign extension på negativa tal ? (ja !) # ”MOVI is implemented as ADDI rB, r0, IMMED 16 ” Operationen MOVIA rB, Const 32 med 32 bitars Const känd ”at compile- time” kan utföras av instruktionerna (t.ex.) MOVHI rB, r0, %hi(Const)#16 MSBits till MSBits i rB ORI rB, rB, %lo(Const)#16 LSBits till LSBits i rB # ”MOVHI is implemented as ORHI rB, r0, IMMED 16 ”

70 31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)70 IS1200 Datorteknik Föreläsning 2, innehåll +Vi bygger en processor +4 stegs Pipe-line för ADD, SUB,... +Data Dependencies och Data Forward +Branch Delay Slot - hopplucka +LOAD och STORE +Nios-II: MOVI och MOVIA


Ladda ner ppt "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."

Liknande presentationer


Google-annonser