2g1502 datorteknik allm n kurs
This presentation is the property of its rightful owner.
Sponsored Links
1 / 60

2G1502 Datorteknik allmän kurs PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on
  • Presentation posted in: General

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.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


2g1502 datorteknik allm n kurs

2G1502 Datorteknik allmän kurs

Föreläsning 2

Vi bygger en processor

2G1502, föreläsning 2 för E, vt2003


Nu bygger vi en dator

>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


Viktiga delar i en dator

Viktiga delar i en dator

CPU

BUS

I/O

MEM

2G1502, föreläsning 2 för E, vt2003


Programexekvering i tv steg

FETCH

(update PC)

(decode)

EXECUTE

Programexekveringi två steg

2G1502, föreläsning 2 för E, vt2003


Programexekvering i fyra steg

Programexekveringi fyra steg

  • FI - Fetch Instruction

  • FO - Fetch Operand

  • EX - Execute

  • WB - Write Back

2G1502, föreläsning 2 för E, vt2003


Typisk instruktion add r dst r srca r srcb

Typisk instruktionADDRdst <-- 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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


Ex execute

Execute

ALU

EX - EXecute

operander

~6 bitars kod

t.ex. ADD

resultat

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


Utan pipe line hur m nga klockcykler

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


Fenomen pga pipe line data dependencies

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


Data dependencies med 4 stegs pipe line

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

Ny Typisk instruktionADDRdst <-- 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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

Vanlig hopp-instruktionBR Immn

  • PC sätts till PC + Immn

  • Hur stor är Immn

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

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


Hur undviks delay slot hur utnyttjas delay slot

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

Vanlig instruktionSUBRdst <-- 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


Status flaggor

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


G ller detta f r nios processorn

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


Ladda ett register med ett konstant v rde nios

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


Ladda ett register med ett konstant v rde nios1

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


2g1502 datorteknik allm n kurs

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


2g1502 datorteknik allm n kurs

Processorn (Nios)

Minne

Generella register

Programräknare

R0

PC

R1

K

Status

R31

NVZC

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

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


Hur anv nds register k

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


Pfx imm 11

FI

PFX

-

EXE

FI

-

WB

FO

PFX Imm11

PFX IMM11

MOVI Rdst, Imm5

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

Ladda ett register med 16 bitars värde, Nios

  • Två instruktioner laddar ett reg med 16 bitar

  • MOVEPRdst, Imm16 ;Syntetisk instr.ersätts av två verkliga instruktioner

  • PFXImm11 ;11 bitar till K-reg

  • MOVIRdst, Imm5 ;16 bitar i Rdstfyller ut med nollor i bit 31-16

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

Ladda ett register med 32 bitars värde, Nios

  • Fyra instruktioner laddar ett reg med 32 bitar

  • MOVEARdst, Imm32 ;Syntetisk instr.ersätts av fyra verkliga instruktioner

  • PFXImm11 ;11 bitar till K-reg

  • MOVIRdst, Imm5 ;16 bitar i Rdst

  • PFXImm11 ;11 bitar till K-reg

  • MOVHIRdst, Imm5 ;32 bitar i Rdstbitarna 15-0 påverkas ej av MOVHI

2G1502, föreläsning 2 för E, vt2003


Load och store

LOAD och STORE

  • Vi vill kunna utföra instruktionernaLOADRdst, [ Raddr ]STORE [ Raddr ], Rsrc

  • Effektivadress i register

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

Fetch Operand

Write Back

Fetch Instruction

IR0

ADD

Register

File

32 x 32

Register

File

32 x 32

Register

File

32 x 32

Register

File

32 x 32

IR1

PC

+2

Execute

RWM

ALU

IR2

Program

Memory

n x 16

LOAD och STOREmed 4 stegs PIPE-LINE

2G1502, föreläsning 2 för E, vt2003


Load och store med 4 stegs pipe line

EXE

FI

FI

WB

WB

MEM

FO

FO

LOAD och STOREmed 4 stegs PIPE-LINE

Data från MEM finns tillgängligt

LOAD to Rd

USE Rd

Data från MEM finns tillgängligt för FO

2G1502, föreläsning 2 för E, vt2003


Minnesbehov

Minnesbehov

  • Separata minnen för Instruktion och Data

  • Samtidig referens av I och D

  • Cykeltid för I-mem ???

  • Cykeltid för D-mem ???

  • I balans med CPU-klocka

  • Är detta möjligt

  • Nej

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

LOAD och STORE

  • Vi vill kunna utföra instruktionernaLOADRdst, Offset[ Raddr ]STOREOffset[ Raddr ], Rsrc

  • Indexerad adressering

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

Fetch Operand

MEM

Fetch Instruction

Register

File

32 x 32

Register

File

32 x 32

Register

File

32 x 32

Register

File

32 x 32

ALU

Write Back

Program

Memory

n x 16

5 stegs PIPE-LINE

IR0

ADD

IR1

PC

+2

ALU

IR2

RWM

IR3

2G1502, föreläsning 2 för E, vt2003


Programexekvering i fem steg

Programexekveringi fem steg

  • FI- Fetch Instruction

  • FO - Fetch Operand

  • ALU - Calculation

  • MEM - Memory Reference

  • WB - Write Back

2G1502, föreläsning 2 för E, vt2003


5 stegs pipe line

ALU

ALU

FI

FI

WB

WB

FO

FO

MEM

MEM

5 stegs PIPE-LINE

LOAD

ADD

Hur lång tid tar varje instruktion ?

Antal cykler per instruktion, CPI ?

Antal instruktioner per cykel ?

2G1502, föreläsning 2 för E, vt2003


Fenomen pga pipe line load delay

ALU

ALU

FI

FI

WB

WB

FO

FO

MEM

MEM

Fenomen pga PIPE-LINELoad DELAY

Rd tillgängligt från minne

LOAD to Rd

USE Rd

Rd önskas till ALU-reg

men finns inte tillgängligt

2G1502, föreläsning 2 för E, vt2003


2g1502 datorteknik allm n kurs

ALU

ALU

ALU

FI

FI

FI

WB

WB

WB

FO

FO

FO

MEM

MEM

MEM

Skriv till ALU-reg

Data Forward fungerar

Load DELAYäven vid Data Forward

Tillgängligt från minne

LOAD

NOP?

ADD

2G1502, föreläsning 2 för E, vt2003


  • Login