1 / 60

2G1502 Datorteknik allmän kurs

2G1502 Datorteknik allmän kurs. Föreläsning 2 Vi bygger en processor. >1. &. =1. DRIVER. ALU. MUX. Nu bygger vi en dator. WR. REGISTER. +n. COUNTER. preset. D. Q. EN. cl. Q’. clear. Viktiga delar i en dator. CPU. BUS. I/O. MEM. FETCH (update PC). (decode) EXECUTE.

dash
Télécharger la présentation

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 2G1502, föreläsning 2 för E, vt2003

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

  3. Viktiga delar i en dator CPU BUS I/O MEM 2G1502, föreläsning 2 för E, vt2003

  4. FETCH (update PC) (decode) EXECUTE Programexekveringi två steg 2G1502, föreläsning 2 för E, vt2003

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

  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 2G1502, föreläsning 2 för E, vt2003

  7. ADD INSTRUKTIONSFORMAT med tre operander i register ADD Rdst, RsrcA, RsrcB Hur många bitar behövs ? Hur stor blir varje instruktion ? INSTRUKTIONSFORMAT 2G1502, föreläsning 2 för E, vt2003

  8. INSTRUKTIONSFORMAT med två operander i register ADD Rdst, RsrcA ADD Hur många bitar behövs ? Hur stor blir varje instruktion ? INSTRUKTIONSFORMAT 2G1502, föreläsning 2 för E, vt2003

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

  10. Fetch Operand Register File 32 x 32 Register File 32 x 32 Execute FO - Fetch Operand 5 bitars adress 5 bitars adress ALU 2G1502, föreläsning 2 för E, vt2003

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

  12. Fetch Operand Write Back Fetch Instruction Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Execute Program Memory n x 16 FI - Fetch Instruction IR PC +2 ALU 2G1502, föreläsning 2 för E, vt2003

  13. EXE EXE FI FI WB WB FO FO Utan PIPE-LINEHur många klockcykler ? ADD ADD 2G1502, föreläsning 2 för E, vt2003

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

  15. 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 ... 2G1502, föreläsning 2 för E, vt2003

  16. Fenomen pga PIPE-LINEData Dependencies • Programexempel44: ADD R4 <- R5 + R6 46: ADD R1 <- R2 + R3 48: ADD R7 <- R1 + R4 • ”nya” R1 och R4 finns inte i REG-FILE 2G1502, föreläsning 2 för E, vt2003

  17. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Program Memory n x 16 Data Dependencies 44: R4 <- R5+R6 PC 46 +2 ALU 2G1502, föreläsning 2 för E, vt2003

  18. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Program Memory n x 16 Data Dependencies 46: R1 <- R2+R3 PC 48 44: R4 <- R5+R6 +2 ALU 2G1502, föreläsning 2 för E, vt2003

  19. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Program Memory n x 16 Data Dependencies 48: R7 <- R1+R4 PC 50 46: R1 <- R2+R3 +2 ALU nya r1 44: R4 <- R5+R6 nya r4 2G1502, föreläsning 2 för E, vt2003

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

  21. 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 46: ADD R1 <- R2 + R3 NOP NOP48: ADD R7 <- R1 + R4 R1 skrivs till RegFile R4 skrivs till RegFile 44: ADD ... 46: ADD ... NOP NOP 48: ADD ... R1 och R4 läses från RegFile 2G1502, föreläsning 2 för E, vt2003

  22. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Program Memory n x 16 Data Dependenciesinför nya data-vägar 48: R7 <- R1+R4 PC 50 46: R1 <- R2+R3 +2 ALU 44: R4 <- R5+R6 2G1502, föreläsning 2 för E, vt2003

  23. 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 E, vt2003

  24. INSTRUKTIONSFORMAT med immediate data ADD Rdst, Rsrc, datan ADD Hur många bitar behövs ? Hur stor blir varje instruktion ? INSTRUKTIONSFORMAT 2G1502, föreläsning 2 för E, vt2003

  25. INSTRUKTIONSFORMAT med immediate data ADD Rdst, datan ADD Hur många bitar behövs ? Hur stor blir varje instruktion ? INSTRUKTIONSFORMAT 2G1502, föreläsning 2 för E, vt2003

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

  27. HoppinstruktionerJUMP och BRA • JUMP brukar ha direkt adress • BRA brukar ha PC-relativ adress 08: JMP 18 ;PC := 18 ”hopp till 18” . . 18: 46: BRA 18 ;PC := pc + 18 ”hopp till ~”66” 66: 2G1502, föreläsning 2 för E, vt2003

  28. Vanlig 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 E, vt2003

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

  30. 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 E, vt2003

  31. Vanlig hopp-instruktionBR Immn • PC sätts till PC + Immn • Hur stor är Immn 2G1502, föreläsning 2 för E, vt2003

  32. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Program Memory n x 16 BRA Immninför ADDitionsenhet och datavägar ADD PC +2 ALU 2G1502, föreläsning 2 för E, vt2003

  33. Fenomen pga PIPE-LINEBranch Delay Slot Instruktionen i minnespositionen närmast efter en hoppinstruktion kommer utföras innan hoppet verkställs Programexempel 18: BRA 74 20: ADD … 22: … … 94: SUB ... 2G1502, föreläsning 2 för E, vt2003

  34. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Efter FI av 18: BRA 74 18: BRA 74 20: ADD BRA 74 20 74 ADD PC 20 +2 ALU 18: BRA 74 20: ADD … 22: … … 94: SUB … 96: ... 2G1502, föreläsning 2 för E, vt2003

  35. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Efter FI av 20: ADD 18: BRA 74 20: ADD ADD ADD PC 94 BRA 74 +2 ALU 18: BRA 74 20: ADD … 22: … … 94: SUB … 96: ... 2G1502, föreläsning 2 för E, vt2003

  36. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Efter FO av 20: ADD 18: BRA 74 20: ADD SUB ADD PC ADD 96 +2 ALU 18: BRA 74 20: ADD … 22: … … 94: SUB … 96: ... BRA 74 2G1502, föreläsning 2 för E, vt2003

  37. Hur undviks Delay Slot Hur utnyttjas Delay Slot • Ordna så att hårdvaran väntar • Fyll med en NOP • Flytta in en instruktion i hoppluckan • Kompilator/Programmerare väljer ? 2G1502, föreläsning 2 för E, vt2003

  38. Villkorlig hopp-instruktionBcond Immn • PC sätts till PC + Immn om cond är sant • PC sätts till PC + 2om cond är falskt • om 2 är antal bytes per instruktion 2G1502, föreläsning 2 för E, vt2003

  39. Vanlig instruktionSUB Rdst <-- RsrcA, RsrcB • Kombinera innehåll i RsrcA och RsrcBoch skriv till Rdst • Förutom resultatet / skillnadenså lagras yterligare informationi STATUS-flaggor 2G1502, föreläsning 2 för E, vt2003

  40. 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 • Påverkas av ADD, SUB, CMP ... 2G1502, föreläsning 2 för E, vt2003

  41. Gäller detta för Nios-Processorn ? Minne Generella register Programräknare R0 PC R1 Status R31 NVZC 2G1502, föreläsning 2 för E, vt2003

  42. Ladda ett register med ettkonstant värde, Nios • MOVEI Rdst, Imm5 MOVI Rdst, Imm5 MOVI 6 5 5 2G1502, föreläsning 2 för E, vt2003

  43. Ladda ett register med ettkonstant värde, Nios • Önskvärd instruktion • MOVI Rdst, Imm32 • Kopiera 32 bitar från minnet till ett register • Destination anges av Rdst 2G1502, föreläsning 2 för E, vt2003

  44. Ladda ett register med ettkonstant värde, Nios • Instruktionsformatet har bara 5 bitar lediga • Inför ett extra register, K-reg, med 11 bitar • Inför en instruktion för att ladda K-reg • PFX Imm11 laddar K med 11 bitar 2G1502, föreläsning 2 för E, vt2003

  45. Processorn (Nios) Minne Generella register Programräknare R0 PC R1 K Status R31 NVZC 2G1502, föreläsning 2 för E, vt2003

  46. Fetch Operand Write Back Fetch Instruction IR0 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 Register File 32 x 32 IR1 Execute IR2 Program Memory n x 16 Inför ny hårdvaraK - register ADD PC +2 ALU 2G1502, föreläsning 2 för E, vt2003

  47. Hur används register K ? • Instruktionen PFX Imm11skriver ett 11 bitars värde till register K • Värdet finns kvar i en klockcykelsen nollställs register K • Instruktionen direkt efter PFX Imm11kan använda innehåll i K • Imm5 ökar till (Imm11 cat Imm5 ) 2G1502, föreläsning 2 för E, vt2003

  48. FI PFX - EXE FI - WB FO PFX Imm11 PFX IMM11 MOVI Rdst, Imm5 2G1502, föreläsning 2 för E, vt2003

  49. Ladda ett register med 16 bitars värde, Nios • Två instruktioner laddar ett reg med 16 bitar • MOVEP Rdst, Imm16 ;Syntetisk instr.ersätts av två verkliga instruktioner • PFX Imm11 ;11 bitar till K-reg • MOVI Rdst, Imm5 ;16 bitar i Rdstfyller ut med nollor i bit 31-16 2G1502, föreläsning 2 för E, vt2003

  50. Ladda ett register med 32 bitars värde, Nios • Fyra instruktioner laddar ett reg med 32 bitar • MOVEA Rdst, Imm32 ;Syntetisk instr.ersätts av fyra verkliga instruktioner • PFX Imm11 ;11 bitar till K-reg • MOVI Rdst, Imm5 ;16 bitar i Rdst • PFX Imm11 ;11 bitar till K-reg • MOVHI Rdst, Imm5 ;32 bitar i Rdst bitarna 15-0 påverkas ej av MOVHI 2G1502, föreläsning 2 för E, vt2003

More Related