1 / 75

IS1200 Datorteknik

IS1200 Datorteknik. Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7. 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@ict.kth.se

sian
Download Presentation

IS1200 Datorteknik

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. IS1200 Datorteknik föreläsning CE – F2 IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7

  2. IS1200 Datorteknik föreläsning CE – F2 Välkommen tillIS1200 Datorteknik ”Hur datorer fungerar” Kursens hemsida finns utpekad från: http://www.ict.kth.se/courses/IS1200 emailadress till lärare: is1200@ict.kth.se Kursansvarig: Johan Wennlund

  3. IS1200 Datorteknik föreläsning CE – F2 IS1200 Datorteknikhttp://www.ict.kth.se/courses/IS1200 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

  4. IS1200 Datorteknik föreläsning CE – F2 Uppdelning i grupper IDAG

  5. IS1200 Datorteknik föreläsning CE – F2 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 • Delayed Branch, Delay Slot - hopplucka • LOAD och STORE • Nios-II: MOVI och MOVIA 5

  6. IS1200 Datorteknik föreläsning CE – F2 & >1 =1 DRIVER Nu bygger vi en dator av ... & 1 >1 WR REGISTER +n COUNTER preset D Q EN cl Q’ clear ALU MUX

  7. IS1200 Datorteknik föreläsning CE – F2 Viktiga delar i en dator CPU BUS program I/O MEM data

  8. IS1200 Datorteknik föreläsning CE – F2 FETCH (update PC) (decode) EXECUTE Programexekveringi två steg

  9. IS1200 Datorteknik föreläsning CE – F2 Typisk instruktionADD Rdst RsrcA + RsrcB • Kombinera innehåll i RsrcA och RsrcBoch skriv till Rdst • ADD, SUB, MUL, DIV, AND, OR, XOR, … • Hur många bitar krävs i Instruktionen ? • Man kan minska behovet av bitarmed kortare instruktionADD Rdst, Rsrc ;Rdst Rdst + Rsrc

  10. IS1200 Datorteknik föreläsning CE – F2 ADD INSTRUKTIONSFORMAT med tre register-operander ADD Rdst<- RsrcA + RsrcB Exempelvis: 6 5 5 5 Hur många bitar behövs? ~6+5+5+5 Hur stor blir varje instruktion? Mer än 16 (t.ex. MIPS/Nios-II …)

  11. IS1200 Datorteknik föreläsning CE – F2 INSTRUKTIONSFORMAT binärkod i Nios II ADD Rdst, RsrcA, RsrcB 0x31 0x00 0x3a 5 5 5 6 5 6 bitar per fält Hur många bitar behövs ? 15 + op-code Hur stor är varje instruktion ? 32 bitar ! INSTRUKTIONSFORMAT enligt ovan

  12. IS1200 Datorteknik föreläsning CE – F2 Programexekveringi fyra steg FI - Fetch Instruction FO - Fetch Operand EX - Execute WB - Write Back

  13. IS1200 Datorteknik föreläsning CE – F2 EX - EXecute ALU-register ALU-A och ALU-B operander A B ~6 bitars kod Execute operation ALU t.ex. ADD resultat av operationen 6 bitars kod möjliggör 64 olika operationer: A+B, A-B, A, -A, A+1, A-1, Ainv, A and B, A or B, ...

  14. IS1200 Datorteknik föreläsning CE – F2 Register File 32 x 32 Fetch Operand Execute FO - Fetch Operand RWM - Read Write Memory ”SRAM” Dual-Ported 5 bitars registernummer, RsrcA Read 5 bitars registernummer, RsrcB ALU SRAM – Static RAM ”snabbt minne”

  15. IS1200 Datorteknik föreläsning CE – F2 Register File 32 x 32 Fetch Operand Execute Write Back Register File 32 x 32 WB - Write Back RWM - Read Write Memory ”SRAM” Tripple-Ported Read SAMMA en Register File (inte två olika) ALU 5 bitars registernummer, Rdst Write

  16. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 Fetch Operand Execute Write Back Register File 32 x 32 FI - Fetch Instruction 32 IR 5 5 PC +n 6 ALU PC - Program Counter n = 4 beror på att en instruktion är 32 bitar, 4 bytes 5

  17. IS1200 Datorteknik föreläsning CE – F2 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 ... (NOP) • ...

  18. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB 4 stegs CPUKonsekvent synkronism Skrivning utförs vid positiv flank på clock, samtidigt till varje vippa/register/minne 2. Leta fram instruktion ur Program Memory 4. Avkoda instruktion samt leta fram operander 6. ALU arbetar (ADD/SUB/ …) 8. Förbered skrivning till Register File clock 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

  19. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB FI FO EXE WB Utan PIPE-LINEHur många klockcykler ? ADD ADD 4 klockcykler per instruktion! 1 instruktion klar var 4:e klockcykel!

  20. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 Fetch Operand Execute Write Back Register File 32 x 32 PIPE - LINE införs nu !Flera register IR IR0 IR1 PC +n 6 ALU IR2 NYTT 5 IR1: 11 vippor IR2: 5 vippor

  21. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB FI FO EXE WB FI FO EXE WB FI FO EXE WB Med PIPE-LINEHur många klockcykler ? ADD ADD ADD ADD ... 4 klockcykler per instruktion! 1 instruktion klar per klockcykel!

  22. IS1200 Datorteknik föreläsning CE – F2 IS1200 Datorteknik PAUS-BILD (andas djupt och ta nya tag)

  23. IS1200 Datorteknik föreläsning CE – F2 Fenomen pga PIPE-LINE 1. Data Dependency 2. Delayed Branch 3. Delayed Load 4. Structural Hazard

  24. IS1200 Datorteknik föreläsning CE – F2 1 .Data Dependencies(Fenomen pga PIPE-LINE) • Programexempel44: 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

  25. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Data Dependencies 44: R4 <- R5+R6 ALU

  26. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Data Dependencies 48: R1 <- R2+R3 44: R4 <- R5+R6 ALU

  27. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Data Dependencies 52: R7 <- R1+R4 48: R1 <- R2+R3 ALU nya r1 44: R4 <- R5+R6 nya r4 gamla r1 gamla r4

  28. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB FI FO EXE WB FI FO EXE WB Data Dependenciesmed 4 stegs PIPE-LINE 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52: ADD R7 <- R1 + R4 # gamla värden i R1 och R4 Nya R1 skrivs till RegFile Nya R4 skrivs till RegFile 44: ADD ... 48: ADD ... 52: ADD ... Gamla R1 och R4 läses från RegFile Gamla R1 och R4 skrivs till ALU-reg

  29. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB FI FO EXE WB FI FO EXE WB Data Dependenciesläsning måste ske efter skrivning 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52: ADD R7 <- R1 + R4 # gamla värden i R1 och R4 Nya R1 skrivs till RegFile Nya R4 skrivs till RegFile 44: ADD ... 48: ADD ... Fördröj till xx: ADD ... Nya R1 och R4 läses från RegFile Nya R1 och R4 skrivs till ALU-reg

  30. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB FI FO EXE WB FI FO EXE WB FI FO EXE WB FI FO EXE WB 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52: NOP # fördröjer 1 cykel 56: NOP # fördröjer 1 cykel60: ADD R7 <- R1 + R4 # nya värden i r1 och r4 R1 skrivs till RegFile R4 skrivs till RegFile 44: ADD ... 48: ADD ... NOP NOP 60: ADD ... R1 och R4 läses från RegFile

  31. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Data Forwardinför nya data-vägar 52: R7 <- R1+R4 NYTT 48: R1 <- R2+R3 ALU 44: R4 <- R5+R6

  32. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Data Forwardinför nya data-vägar 52: R7 <- R1+R4 NYTT 48: R1 <- R2+R3 nya r1 ALU 44: R4 <- R5+R6 nya r4

  33. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Komb. nät Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Enable-signaler tillnya data-vägar NYTT 52: R7 <- R1+R4 ENA0 ENB0 ENA2 ENB2 ENA1 ENB1 ENA0 ENB0 ENA2 ENB2 ENA1 ENB1 NYTT 48: R1 <- R2+R3 ALU 44: R4 <- R5+R6

  34. IS1200 Datorteknik föreläsning CE – F2 FI FO EXE WB FI FO EXE WB FI FO EXE WB Data Forwardgenvägar ger snabbhet 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52: ADD R7 <- R1 + R4 Nya R7 skrivs till RegFile Nya R1 skrivs till RegFile Nya R4 skrivs till RegFile 44: ADD ... 48: ADD ... 52: ADD ... Nya R1 och R4 läses via DataForward Nya R1 och R4 skrivs till ALU-reg

  35. IS1200 Datorteknik föreläsning CE – F2 Ny Typisk instruktionADD Rdst <-- RsrcA + Immn Kombinera innehåll i RsrcA och Immoch skriv till Rdst ADD, SUB, MUL, DIV, AND, OR, XOR, … Hur många bitar krävs i Instruktionen ? Man kan minska behovet av bitarmed kortare instruktionADD Rdst, Imm

  36. IS1200 Datorteknik föreläsning CE – F2 INSTRUKTIONSFORMAT med immediate data ADDI Rdst, Rsrc, datan ADDI Exempelvis: 6 5 5 n Hur många bitar behövs? ~6+5+5+n Hur stor blir varje instruktion? Mer än 16

  37. IS1200 Datorteknik föreläsning CE – F2 INSTRUKTIONSFORMAT Binärkod i Nios II ADDI Rdst, RsrcA, Data 0x04 5 5 16 6 bitar per fält SUBI rB, rA, IMM16  ADDI rB, rA, -IMM16 IMM16 innehåller ett 2-komplement-tal ...

  38. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Immediate datainför ny dataväg Ny dataväg hur många bitar ? 16! PC +n ALU

  39. IS1200 Datorteknik föreläsning CE – F2 31 16 15 0 xxxxxxxxxxxxxxxx 31 16 15 0 0xxxxxxxxxxxxxxx 31 16 15 0 Extension 16 -> 32 bitsNollor eller Sign Extension Fyll ut med nollor Fungerar för unsignedint 00000000000000000 xxxxxxxxxxxxxxxx Sign extension Vid positivt tal 00000000000000000 0xxxxxxxxxxxxxxx Sign Extension Fungerar för signedint 1xxxxxxxxxxxxxxx Sign extension Vid negativt tal 1111 1111 1111 1111 1xxxxxxxxxxxxxxx

  40. IS1200 Datorteknik föreläsning CE – F2 JUMP och BRAOvillkorliga hopp • JUMP brukar ha direkt adress • BRA brukar ha PC-relativ adress 32: JMP 104 #PC := 104 ”hopp till 104” . . 104: 224: BRA 40 #PC := pc + 40 ”hopp till 268” 268:

  41. IS1200 Datorteknik föreläsning CE – F2 Ny hopp-instruktionJUMP (Raddr) Registerindirekt adressering Effektiv adress i ett register Kopiera registerinnehåll till PC Register med 32 bitar betyder att 32 bits adress kan användas Hur får man 32 bits adress till registret ?Det måste ordnas på något sätt !

  42. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 JUMP (Raddr)inför ny dataväg Ny dataväg hur många bitar ? 32! PC +n ALU

  43. IS1200 Datorteknik föreläsning CE – F2 Vanlig hopp-instruktionJUMP Immn • Immn skrivs till PC • Hur stor är Immn ?”lediga” bitar t.ex. 32-6=26 ! • Hur stor vill vi att Immn ska vara helst ?Immn ska kunna adressera ”hela minnet” !

  44. IS1200 Datorteknik föreläsning CE – F2 INSTRUKTIONSFORMAT JUMP brukar ha direkt adress JUMP Label JUMP 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!

  45. IS1200 Datorteknik föreläsning CE – F2 Vanlig hopp-instruktionBR Immn • PC sätts till PC + Immn • Hur stor är Immn ?”lediga” bitar t.ex. 32-6=26 ! • Hur stor vill vi att Immn ska vara helst ?Immn ska kunna adressera ”hela minnet” !

  46. IS1200 Datorteknik föreläsning CE – F2 INSTRUKTIONSFORMAT BRA brukar ha PC-relativ adress BRA Displacement BRA 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!

  47. IS1200 Datorteknik föreläsning CE – F2 Program Memory m x 8 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand PC+ Imm PC+ 4 IR1 PC Execute IR2 Write Back Register File 32 x 32 BRA Immninför ADDitionsenhet och datavägar pc Imm ADD pc ALU Nytt

  48. IS1200 Datorteknik föreläsning CE – F2 2 .Branch Delay Slot (Fenomen pga PIPE-LINE) 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 ...

  49. IS1200 Datorteknik föreläsning CE – F2 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand PC+ Imm PC+ 4 IR1 PC Execute IR2 Write Back Register File 32 x 32 Efter FI av 16: BRA 64 16: BRA 64 20: ADD … 20 BRA 64 20 64 ADD 84 20 ALU 16: BRA 64 20: ADD … 24: … … 84: SUB … 88: ...

  50. IS1200 Datorteknik föreläsning CE – F2 Fetch Instruction Register File 32 x 32 IR0 Fetch Operand IR1 Execute IR2 Write Back Register File 32 x 32 Efter FI av 20: ADD 80: … 84: SUB … 84 ADD 84 4 PC+ Imm PC+ 4 ADD 88 PC 84 BRA 64 ALU 16: BRA 64 20: ADD … 24: … … 84: SUB … 88: ...

More Related