Presentation laddar. Vänta.

Presentation laddar. Vänta.

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.

Liknande presentationer


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

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

2 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)2 Välkommen till IS1200/2G1518 Datorteknik ”Hur datorer fungerar” Kursens hemsida finns utpekad från: Informationsforum: https://www.it.kth.se/forum/index.php Kursansvarig: Johan Wennlund

3 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)3 F1F2F3F4F5F6F7F8F9F10Ö2Ö1Ö3Ö4Ö5LAB-1LAB-2Hemlab-1Ö6Ö7LAB-3Hemlab-2Ö8Hemlab-3Ö9TentamenÖ10 Assemblerkod 4 stegs pipeline Nios2time Nios2io C-kod Nios2int Cache-minnen CPU-scheduling IS1200 Datorteknik Hösten 2007 Våren 2008

4 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (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 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)5 Nu bygger vi en dator av... &=1>1 DRIVER COUNTER REGISTER Q Q’ D preset cl clear ALUMUX +n WR EN

6 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)6 Viktiga delar i en dator CPU MEM BUS I/O program data

7 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)7 Programexekvering i två steg (decode) EXECUTE FETCH (update PC)

8 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (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 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)9 ADD R dst <- R srcA + R srcB ADD Hur många bitar behövs? ~ Hur stor blir varje instruktion? Mer än 16 (t.ex. MIPS/Nios-II …) INSTRUKTIONSFORMAT med tre register-operander Exempelvis:

10 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (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 bitar per fält 0x3a0x00

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

12 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)12 EX - EXecute Execute ALU t.ex. ADD operander resultat ~6 bitars kod ALU-register ALU-A och ALU-B

13 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (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”

14 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (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

15 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (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? n = 2 eller 4 beror på om instruktion är 16 eller 32 bitar, 2 eller 4 bytes

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

17 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)17 Utan PIPE-LINE Hur många klockcykler ? FIFOEXEWB ADD FIFOEXEWB 4 klockcykler per instruktion! 1 instruktion klar var 4:e klockcykel!

18 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)18 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

19 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)19 Med PIPE-LINE Hur många klockcykler ?... ADD FIFOEXEWBFIFOEXEWBFIFOEXEWBFIFOEXEWB 4 klockcykler per instruktion! 1 instruktion klar varje klockcykel!

20 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)20 IS1200 Datorteknik PAUS-BILD (andas djupt och ta nya tag)

21 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)21 Fenomen pga PIPE-LINE 1.Data Dependencies ¯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

22 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)22 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

23 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)23 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

24 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)24 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

25 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)25 Data Dependencies med 4 stegs PIPE-LINE 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 Gamla R1 och R4 läses från RegFile Nya R4 skrivs till RegFile Gamla R1 och R4 skrivs till ALU-reg

26 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)26 Data Dependencies läsning måste ske efter skrivning 44: ADD... 48: ADD... FIFOEXEWBFIFOEXEWBFIFOEXEWB 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

27 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)27 44: ADD... 48: ADD... FIFOEXEWBFIFOEXEWBFIFOEXEWB 44:ADD R4 <- R5 + R6 48:ADD R1 <- R2 + R3 52:NOP 56:NOP 60:ADD R7 <- R1 + R4 xx: ADD... R1 skrivs till RegFile R1 och R4 läses från RegFile R4 skrivs till RegFile FIFOEXEWBFIFOEXEWB NOP

28 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)28 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

29 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)29 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

30 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)30 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

31 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)31 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 DataForw Nya R4 skrivs till RegFile Nya R1 och R4 skrivs till ALU-reg Data Forward genvägar ger snabbhet

32 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)32 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

33 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)33 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: n

34 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)34 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

35 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)35 Extension 16 -> 32 bits Nollor eller Sign Extension xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx Fyll ut med nollor Fungerar för unsignedint Sign extension Vid positivt tal Sign extension Vid negativt tal xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx

36 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)36 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:

37 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)37 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 !

38 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)38 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 ?

39 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)39 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” !

40 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)40 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

41 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)41 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” !

42 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)42 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!

43 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)43 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

44 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)44 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...

45 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)45 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 : BRA 64 20: ADD … 24: … … 84: SUB … 88:... Register File 32 x 32 Register File 32 x 32 PC PC+4 PC+Imm 20

46 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)46 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

47 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)47 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

48 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)48 FIFOEXEWB Avkoda instruktion samt leta fram operander Leta fram instruktion ur Program Memory Skriv nytt värde till Program Counter = hoppa Skriv instruktion till Instruction Register 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 ?

49 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)49 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 /...)

50 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)50 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...

51 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)51 Gäller för MIPS-Processorn (ej Nios-II) R0 R31 R1 PC Minne Generella registerProgramräknare NVZC Status

52 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)52 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

53 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)53 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

54 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)54 Branch on Condition Common examples Label = PC BEQ 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 ...

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

56 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)56 IS1200 Datorteknik PAUS-BILD (andas djupt och ta nya tag)

57 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)57 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...

58 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)58 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

59 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)59 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

60 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)60 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

61 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)61 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+k PC+Imm PC

62 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)62 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)

63 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)63 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

64 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)64 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, Label 32 med 32 bitars Label känd ”at compile- time” kan utföras av (t.ex.) movhi rB, r0, %hi(Label)#16 MSBits till MSBits i rB ori rB, rB, %lo(Label)#16 LSBits till LSBits i rB # ”movhi is implemented as orhi rB, r0, IMMED 16 ”

65 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)65 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

66 14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)66 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... ...


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

Liknande presentationer


Google-annonser