1 / 72

2G1502 Datorteknik allmän kurs

2G1502 Datorteknik allmän kurs. Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel 7 version vt 2004 för IT. 2G1502 Datorteknik allmän kurs. Föreläsning 2, innehåll Vi bygger en processor 4 stegs Pipe-line för ADD, SUB, ... Data Dependencies och Data Forward

dirk
Download Presentation

2G1502 Datorteknik allmän kurs

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. 2G1502 Datorteknik allmän kurs Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel 7 version vt 2004 för IT 2G1502, föreläsning 2 för IT, vt2004

  2. 2G1502 Datorteknik allmän kurs 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 med indexering • 5 stegs Pipe-line • Load Delay • Nios, K-register och MOVIx 2G1502, föreläsning 2 för IT, vt2004

  3. >1 & =1 DRIVER ALU MUX Nu bygger vi en dator av ... WR REGISTER +n COUNTER preset D Q EN cl Q’ clear 2G1502, föreläsning 2 för IT, vt2004

  4. Viktiga delar i en dator CPU BUS I/O MEM 2G1502, föreläsning 2 för IT, vt2004

  5. FETCH (update PC) (decode) EXECUTE Programexekveringi två steg 2G1502, föreläsning 2 för IT, vt2004

  6. Typisk instruktionADD Rdst <-- RsrcA + RsrcB • Kombinera innehåll i RsrcA och RsrcB och skriv till Rdst • 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 Rdst, Rsrc ;Rdst <-- Rdst + Rsrc 2G1502, föreläsning 2 för IT, vt2004

  7. ADD INSTRUKTIONSFORMAT med tre operander i register 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 2G1502, föreläsning 2 för IT, vt2004

  8. INSTRUKTIONSFORMAT med två operander i register ADD Rdst<- Rdst+ RsrcA ADD Exempelvis: 6 5 5 Hur många bitar behövs? ~6+5+5! Hur stor blir varje instruktion? 16! 2G1502, föreläsning 2 för IT, vt2004

  9. Programexekveringi fyra steg • FI - Fetch Instruction • FO - Fetch Operand • EX - Execute • WB - Write Back 2G1502, föreläsning 2 för IT, vt2004

  10. Execute ALU EX - EXecute operander ~6 bitars kod t.ex. ADD resultat 2G1502, föreläsning 2 för IT, vt2004

  11. Fetch Operand Register File 32 x 32 Execute FO - Fetch Operand 5 bitars adress 5 bitars adress ALU 2G1502, föreläsning 2 för IT, vt2004

  12. Fetch Operand Write Back Register File 32 x 32 Execute Register File 32 x 32 WB - Write Back ALU 5 bitars adress 2G1502, föreläsning 2 för IT, vt2004

  13. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 Execute Program Memory m x 8 Register File 32 x 32 FI - Fetch Instruction 32 IR PC +n ALU 2G1502, föreläsning 2 för IT, vt2004

  14. EXE FI WB FO 4 stegs CPUKonsekvent synkronism Leta fram instruktion ur I-cache Avkoda samt Leta fram operander ALU arbetar Förbered skrivning till Register File clock Skriv resultat till Register File Skrivning till tmp-reg Skriv operander till ALU-register Skrivning till Instruction Register Skrivning till Program Counter 2G1502, föreläsning 2 för IT, vt2004

  15. EXE EXE FI FI WB WB FO FO Utan PIPE-LINEHur många klockcykler ? ADD ADD 4 klockcykler per instruktion! 1 instruktion per 4 klockcykler! 2G1502, föreläsning 2 för IT, vt2004

  16. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 Register File 32 x 32 PIPE - LINE införs nu !Flera register IR PC +n ALU NYTT 2G1502, föreläsning 2 för IT, vt2004

  17. EXE EXE EXE EXE FI FI FI FI WB WB WB WB FO FO FO FO Med PIPE-LINEHur många klockcykler ? ADD ADD ADD ADD ... 1 klockcykel per instruktion! 1 instruktion per klockcykel! 2G1502, föreläsning 2 för IT, vt2004

  18. Fenomen pga PIPE-LINE1 .Data Dependencies • Programexempel44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52: ADD R7 <- R1 + R4 • ”nya” R1 och R4 finns inte i REG-FILE 2G1502, föreläsning 2 för IT, vt2004

  19. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 Register File 32 x 32 Data Dependencies 44: R4 <- R5+R6 ALU 2G1502, föreläsning 2 för IT, vt2004

  20. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 Register File 32 x 32 Data Dependencies 48: R1 <- R2+R3 44: R4 <- R5+R6 ALU 2G1502, föreläsning 2 för IT, vt2004

  21. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 Register File 32 x 32 Data Dependencies 52: R7 <- R1+R4 48: R1 <- R2+R3 ALU nya r1 44: R4 <- R5+R6 nya r4 2G1502, föreläsning 2 för IT, vt2004

  22. EXE EXE EXE FI FI FI WB WB WB FO FO FO Data Dependenciesmed 4 stegs PIPE-LINE 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52 ADD R7 <- R1 + R4 R1 skrivs till RegFile R4 skrivs till RegFile 44: ADD ... 48: ADD ... 52: ADD ... R1 och R4 läses från RegFile 2G1502, föreläsning 2 för IT, vt2004

  23. EXE EXE EXE FI FI FI WB WB WB FO FO FO Data Dependenciesmed 4 stegs PIPE-LINE 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 52 ADD R7 <- R1 + R4 R1 skrivs till RegFile R4 skrivs till RegFile 44: ADD ... 48: ADD ... 52: ADD ... R1 och R4 läses från RegFile 2G1502, föreläsning 2 för IT, vt2004

  24. EXE EXE EXE EXE EXE FI FI FI FI FI WB WB WB WB WB FO FO FO FO FO 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R3 NOP NOP52: ADD R7 <- R1 + R4 R1 skrivs till RegFile R4 skrivs till RegFile 44: ADD ... 48: ADD ... NOP NOP 52: ADD ... R1 och R4 läses från RegFile 2G1502, föreläsning 2 för IT, vt2004

  25. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 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 2G1502, föreläsning 2 för IT, vt2004

  26. EXE EXE EXE FI FI FI WB WB WB FO FO FO Data Forwardgenvägar ger snabbhet 44: ADD R4 <- R5 + R6 48: ADD R1 <- R2 + R352: ADD R7 <- R1 + R4 R1 skrivs till RegFile R4 skrivs till RegFile 44: ADD ... 48: ADD ... 52: ADD ... R1 och R4 med Data Forward 2G1502, föreläsning 2 för IT, vt2004

  27. 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 2G1502, föreläsning 2 för IT, vt2004

  28. 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 2G1502, föreläsning 2 för IT, vt2004

  29. INSTRUKTIONSFORMAT med immediate data ADDI Rdst<- Rdst+ data5 ADDI Exempelvis: 6 5 5 Hur många bitar behövs? ~6+5+5! Hur stor blir varje instruktion? 16! 2G1502, föreläsning 2 för IT, vt2004

  30. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 Register File 32 x 32 Immediate datainför nya datavägar Ny dataväg PC +n ALU 2G1502, föreläsning 2 för IT, vt2004

  31. 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: 2G1502, föreläsning 2 för IT, vt2004

  32. Typisk hopp-instruktionJUMP (Raddr) • 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 ! 2G1502, föreläsning 2 för IT, vt2004

  33. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute IR2 Program Memory m x 8 Register File 32 x 32 JUMP (Raddr)inför nya datavägar Ny dataväg PC +n ALU 2G1502, föreläsning 2 för IT, vt2004

  34. Vanlig hopp-instruktionJUMP Immn • Immn skrivs till PC • Hur stor är Imm ? • Hur stor vill vi att Imm ska vara helst ? 2G1502, föreläsning 2 för IT, vt2004

  35. Vanlig hopp-instruktionJUMP Immn • Immn skrivs till PC • Hur stor är Imm ?”lediga” bitar t.ex. 32-6=26 ! • Hur stor vill vi att Imm ska vara helst ?Kunna adressera ”hela minnet” ! 2G1502, föreläsning 2 för IT, vt2004

  36. 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 Imm ska vara helst ?Kunna adressera ”hela minnet” 2G1502, föreläsning 2 för IT, vt2004

  37. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute PC+4 PC+Imm IR2 Program Memory m x 8 PC Register File 32 x 32 BRA Immninför ADDitionsenhet och datavägar ADD ALU Nytt 2G1502, föreläsning 2 för IT, vt2004

  38. Fenomen pga PIPE-LINE2 .Branch Delay Slot Instruktionen i minnespositionen närmast efter en hoppinstruktion kommer utföras innan hoppet verkställs Programexempel 16: BRA 64 20: ADD … ;kommer att utföras 24: … … 84: SUB ... 2G1502, föreläsning 2 för IT, vt2004

  39. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute PC+4 PC+Imm IR2 PC Register File 32 x 32 Efter FI av 16: BRA 74 16: BRA 64 20: ADD 20 BRA 64 20 64 ADD 20 ALU 16: BRA 64 20: ADD … 24: … … 84: SUB … 88: ... 2G1502, föreläsning 2 för IT, vt2004

  40. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute PC+4 PC+Imm IR2 Register File 32 x 32 Efter FI av 20: ADD 16: BRA 64 20: ADD 84 ADD 84 ADD PC 84 BRA 64 ALU 16: BRA 64 20: ADD … 24: … … 84: SUB … 88: ... 2G1502, föreläsning 2 för IT, vt2004

  41. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute PC+4PC+Imm IR2 Register File 32 x 32 Efter FO av 20: ADD 16: BRA 64 20: ADD 88 SUB 88 ADD PC ADD 88 ALU 16: BRA 64 20: ADD … 24: … … 84: SUB … 88: ... BRA 64 2G1502, föreläsning 2 för IT, vt2004

  42. Hur undviks Branch Delay SlotHur utnyttjas Branch Delay Slot Olika metoder: • Ordna så att hårdvaran väntar • Fyll med en (onyttig) NOP • Flytta en (nyttig) instruktion i hoppluckan • Kompilator/Programmerare väljer 2G1502, föreläsning 2 för IT, vt2004

  43. 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 ... 2G1502, föreläsning 2 för IT, vt2004

  44. Gäller för MIPS/Nios-Processorn ... Minne Generella register Programräknare R0 PC R1 Status R31 NVZC 2G1502, föreläsning 2 för IT, vt2004

  45. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute PC+4 PC+Imm IR2 Program Memory m x 8 PC Register File 32 x 32 STATUS-flaggor ADD ALU NVZC Nytt 2G1502, föreläsning 2 för IT, vt2004

  46. LOAD och STOREmemory <--> register Vi vill kunna utföra instruktioner av typen LOAD och STORE Vilka operandutpekningsmetoder ska vi ha ? Gärna med direkt adressering dvs • LOAD reg <- mem(adr) • STORE mem(adr) <- reg men: En ”hel adress” ryms ej i adressfältetvilket leder till ... 2G1502, föreläsning 2 för IT, vt2004

  47. LOAD och STOREmemory <--> register • Vi inför hårdvara för instruktionerna LOAD Rdst, [ Raddr ] STORE [ Raddr ], Rsrc • med registerindirekt adressering dvs effektivadress i register 2G1502, föreläsning 2 för IT, vt2004

  48. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 IR0 IR1 Execute PC+4 PC+Imm IR2 Program Memory m x 8 Register File 32 x 32 LOAD och STOREmed 4 stegs PIPE-LINE ADD PC RWM ALU 2G1502, föreläsning 2 för IT, vt2004

  49. EXE FI FI WB WB MEM FO FO LOAD och STOREmed 4 stegs PIPE-LINE Data från MEM finns tillgängligt Leta fram data ur MEM LOAD to Rd USE Rd Data från MEM finns tillgängligt för FO 2G1502, föreläsning 2 för IT, vt2004

  50. Register File 32 x 32 IR0 IR1 PC+4 PC+Imm IR2 Program Memory m x 8 Register File 32 x 32 LOAD och STOREmed data forward ADD PC RWM ALU 2G1502, föreläsning 2 för IT, vt2004

More Related