23
1

Structura de principiu pentru execuţie multiciclu

  • Upload
    solada

  • View
    29

  • Download
    2

Embed Size (px)

DESCRIPTION

Structura de principiu pentru execuţie multiciclu. Structura multiciclu adaptat ă MIPS. Semnificaţia comenzilor pe un bit. Semnificaţia comenzilor pe doi biţi. Principii ȋn analiza funcțion ă rii. - PowerPoint PPT Presentation

Citation preview

Page 1: Structura de principiu  pentru execuţie multiciclu

1

Page 2: Structura de principiu  pentru execuţie multiciclu

PC

MemoryRegisters

Data

ALU

Adress

Register #

Register #

Register #

data 2

data 1 A

BMemory

data register

Instruction register

Instruction or data ALUout

Data

Structura de principiu pentru execuţie multiciclu

2

Page 3: Structura de principiu  pentru execuţie multiciclu

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

Memory data

register

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

Mux

0

1

Mux

0

1

A

B

Mux

0

1

4

Sign-extend

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

Instr[15:11]

Inst

r[15

:0]

Instr[5:0]

16

Instr[25:0]

32

6

ALUout

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

Memory data

register

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

Mux

0

1

Mux

0

1

A

B

Mux

0

1

4

Sign-extend

Shift left 2

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

ALUout

Shift left 2

Instr[15:11]

Inst

r[15

:0]

Instr[5:0]

16

Instr[25:0] 2628

PC[31:28]

32

32

32

IRWrite

Reg

Dst

Mem

toR

eg

controlRegWrite

ALUSrcA

ALUSrcB

ALUOp

PCSource

MemWrite

MemRead

IorD

PCWrite

PCWriteCond

32

32

Structura multiciclu adaptată MIPS

3

Page 4: Structura de principiu  pentru execuţie multiciclu

Semnificaţia comenzilor pe un bit

4

Nume semnal Efectul la dezactivare Efectul la activare

RegDstNumarul registrului destinatie este dat de campul rt al instructiunii.

Numarul registrului destinatie este dat de campul rd al instructiunii.

RegWrite Nu are. Se inscriu date in registrul general selectat.

ALUSrcA Primul operand din ALU este continutul PC. Primul operand din ALU provine din registrul A.

MemRead Nu are.La iesirea blocului de memorie se depune data din locatia selectata.

MemWrite Nu are.In locatia selectata din blocul de memorie se inscrie informatia de la intrarea Write data.

MemtoRegValoarea inscrisa in registrul destinatie provine din registrul ALUout

Valoarea inscrisa in registrul destinatie provine din MDR.

IorDPentru adresarea memoriei este utilizat continutul PC.

Adresa memoriei este furnizata de registrul ALUout.

IRWrite Nu are. Iesirea memoriei este transferata in IR.

PCWrite Nu are.Se incarca PC: sursa este controlata cu Pcsource.

PCWriteCond Nu are.Incarcarea conditionata a PC, daca semnalul Zero este activ.

Page 5: Structura de principiu  pentru execuţie multiciclu

Semnificaţia comenzilor pe doi biţi

5

Nume semnal Cod Efectul

ALUop

00 ALU realizeaza o operatie de adunare.

01 ALU realizeaza o operatie de scadere.

10 Functia ALU este specificata prin campul de functie al instructiunii.

ALUSrcB

00 Al II-lea operand provine din registrul B.

PCSource

01 Al II-lea operand este constanta 4.

10 Al II-lea operand este format prin extensia de semn a jumatatii inferioare a instructiunii din IR.

11Al II-lea operand este format prin extensia de semn a jumatatii inferioare a instructiunii din IR deplasata cu 2 biti spre stanga.

00 Iesirea ALU (PC+4) este transmisa catre PC pentru incarcare..

01 Continutul ALUout (adresa de ramificare) este transmis catre PC pentru incarcare.

10Adresa de salt (formata din IR[25:0] deplasat cu 2 biti spre stanga si PC+4[31:28]) este transmis catre PC pentru incarcare.

Page 6: Structura de principiu  pentru execuţie multiciclu

Unitatea temporală ȋn analiza funcționării este ciclul, adică perioada semnalului de tact.

Toate registrele sunt acționate pe un front al impulsului de tact deci modificarea informației de la intrare pe durata unui ciclu nu are importanță.

Pe durata unui ciclu se pot desfăşura ȋn paralel mai multe operații.

Citirea sau scrierea din/ȋntr-un registru independent se realizează pe durata ciclului in care se utilizeaza datele citite sau se produc datele inscrise.

Citirea din memorie şi scrierea ȋntr-un registru general necesită un ciclu adițional.

Pentru simplificarea schemei de comandă se acceptă uneori operații redundante benigne (care nu influențează rezultatul final).

6

Principii ȋn analiza funcționării

Page 7: Structura de principiu  pentru execuţie multiciclu

Arhitectura maşinii de stare

7

Extragerea /decodificarea instructiunii si extragere date din registru

Instructiuni de tip R

Instructiuni de ramificare

Instructiuni tip J

START

Instructiuni cu acces la memorie

Page 8: Structura de principiu  pentru execuţie multiciclu

Necesită un singur ciclu.

IR <= Memory[PC];

PC <= PC+4;

8

Ciclul 1 - faza de FETCH

Ciclul 2 - decodificarea instrucțiunii şi extragerea datelor din registrele generale

Necesită un singur ciclu.

A <= Reg[IR[25:21]];

B <= Reg[IR[20:16]];

ALUOut <= PC+(sign-extended (IR[15:0]) << 2);

Page 9: Structura de principiu  pentru execuţie multiciclu

Faza de FETCH

9

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOp=00

PCWritePCSource=00

StartALUSrcA=0

ALUSrcB=11ALUOp=00

0

1

Extragere instructiune

Decodificare instructiune/Extragere registru

FSM pentru Instructiunicu referire la memorie

FSM pentru Instructiunitip R

FSM pentru Instructiunide ramificare

FSM pentru Instructiunide salt

(Op=’LW’)or(O

p=’SW’)

(Op=

tip R

)

(Op=

’BE

Q’)

(Op

=’J

’)

Page 10: Structura de principiu  pentru execuţie multiciclu

Ciclul 3 - execuție, calcul adresă de memorie, finalizarea ramificării

Instrucțiuni cu referire la memorie (lw, sw)

ALUOut <= A+sign-extend (IR[15:0]);

Instrucțiuni tip R

ALUOut <= A op B ;

Instrucțiuni de ramificare

if (A==B) then PC <= ALUOut;

Instructiuni de salt

PC <= ( PC[31:28]&(IR[25:0]]&B”00”) ;

10

Page 11: Structura de principiu  pentru execuţie multiciclu

Ciclul 4 - acces la memorie sau ȋncheierea instrucțiunilor tip R

11

Instrucțiuni cu referire la memorie (lw, sw)

MDR <= Memory [ALUOut];sauMemory [ALUOut] <= B;

Instrucțiuni tip R

Reg [IR[15:11]] <= ALUOut ;

Page 12: Structura de principiu  pentru execuţie multiciclu

Ciclul 5 – ȋncheierea citirii memoriei

Load

Reg[IR[20:16]] <= MDR;

12

Page 13: Structura de principiu  pentru execuţie multiciclu

FSM pentru LW şi SW

13

ALUSrcA=1ALUSrcB=10ALUOp=00

2

De la starea 1

Op=’LW’ or Op=’SW’

Calculul adresei de memorie

Op=

’LW

MemReadIorD=1

3

RegWriteMemtoReg=1

RegDst=0

Acces la memorie

Finalizarea citirii memoriei

MemWriteIorD=1

Acces la memorie

Spre starea 0

Op=’SW’

4

5

Page 14: Structura de principiu  pentru execuţie multiciclu

FSM pentru instrucţiuni tip R

14

ALUSrcA=1ALUSrcB=00ALUOp=10

6

De la starea 1

(Op=tip R)

Executie

RegDst=1RegWrite

MemtoReg=0

7 Finalizare tip R

Spre starea 0

Page 15: Structura de principiu  pentru execuţie multiciclu

FSM pentru branch şi tip J

15

ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCondPCSource=01

8

De la starea 1

(Op=’BEQ’)

Finalizare ramificare

Spre starea 0

PCWritePCSource=10

9

De la starea 1

(Op=’J’)

Finalizare salt

Spre starea 0

Page 16: Structura de principiu  pentru execuţie multiciclu

FSM complet

16

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOp=00

PCWritePCSource=00

StartALUSrcA=0

ALUSrcB=11ALUOp=00

0

1

Extragere instructiune

Decodificare instructiune/Extragere registru

ALUSrcA=1ALUSrcB=10ALUOp=00

2

Op=’LW’ or Op=’SW’

Calculul adresei de memorie

Op=

’LW

MemReadIorD=1

3

RegWriteMemtoReg=1

RegDst=0

Acces la memorie

Finalizarea citirii memoriei

MemWriteIorD=1

Acces la memorie

Op=’SW’

4

5

ALUSrcA=1ALUSrcB=00ALUOp=10

6

(Op=

tip R

)

Executie

RegDst=1RegWrite

MemtoReg=0

7 Finalizare tip R

ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCondPCSource=01

8

(Op=

’BE

Q’)

Finalizare ramificare PCWrite

PCSource=10

9

(Op=

’J’)

Finalizare salt

Page 17: Structura de principiu  pentru execuţie multiciclu

Implementare MOORE pentru FSM

17

Circuite combinationale

Registrul de staredin campul OPCODE al IR

. . . . . .

.

.

.

. . .

Comenzi catre calea de date

Starea urmatoare

Page 18: Structura de principiu  pentru execuţie multiciclu

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

Mux

0

1

Mux

0

1

A

B

Mux

0

1

4

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

Instr[15:11]

Inst

r[15

:0]

Instr[5:0]

32

IRWrite

Reg

Dst

Mem

toR

eg

controlRegWrite

ALUSrcA

ALUSrcB

ALUOp

PCSource

MemWrite

MemRead

IorD

PCWrite

PCWriteCond

32

32

ALUout

32

Calea de date pentru o operaţie aritmetică

18

Page 19: Structura de principiu  pentru execuţie multiciclu

Calea de date pentru o operaţie LW

19

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

Memory data

register

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

Mux

0

1

Mux

0

1

A

B

Mux

0

1

4

Sign-extend

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

ALUout

Shift left 2

Instr[15:11]

Inst

r[15

:0]

Instr[5:0]

16

Instr[25:0] 2628

PC[31:28]

32

32

32

IRWrite

Reg

Dst

Mem

toR

eg

controlRegWrite

ALUSrcA

ALUSrcB

ALUOp

PCSource

MemWrite

MemRead

IorD

PCWrite

PCWriteCond

32

32

Page 20: Structura de principiu  pentru execuţie multiciclu

Calea de date pentru o operaţie SW

20

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

A

B

Mux

0

1

4

Sign-extend

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

ALUout

Shift left 2

Inst

r[15

:0]

Instr[5:0]

16

Instr[25:0] 2628

PC[31:28]

32

32

32

IRWrite

controlRegWrite

ALUSrcA

ALUSrcB

ALUOp

PCSource

MemWrite

MemRead

IorD

PCWrite

PCWriteCond

32

32

Page 21: Structura de principiu  pentru execuţie multiciclu

Calea de date pentru o operaţie BEQ

21

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

Memory data

register

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

Mux

0

1

Mux

0

1

A

B

Mux

0

1

4

Sign-extend

Shift left 2

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

ALUout

Shift left 2

Instr[15:11]

Inst

r[15

:0]

Instr[5:0]

16

Instr[25:0] 2628

PC[31:28]

32

32

32

IRWrite

Reg

Dst

Mem

toR

eg

controlRegWrite

ALUSrcA

ALUSrcB

ALUOp

PCSource

MemWrite

MemRead

IorD

PCWrite

PCWriteCond

32

32

Page 22: Structura de principiu  pentru execuţie multiciclu

Calea de date pentru o operaţie de salt

22

MemoryRegisters

Writedata

ALU

Adress

Read register 1

Writeregister

Readregister 2

Readdata 2

Readdata 1

Memory data

register

MemData

Write data

PC Mux

0

1

Instr[31:26]Instr[25:21]

Instr[20:16]

Instr[25:0]

Instruction register

Mux

0

1

Mux

0

1

A

B

Mux

0

1

4

Sign-extend

Shift left 2

ALUcontrol

Mux

0

1

2

Mux

0

1

2

3

ALUout

Shift left 2

Instr[15:11]

Inst

r[15

:0]

Instr[5:0]

16

Instr[25:0] 2628

PC[31:28]

32

32

32

IRWrite

Reg

Dst

Mem

toR

eg

controlRegWrite

ALUSrcA

ALUSrcB

ALUOp

PCSource

MemWrite

MemRead

IorD

PCWrite

PCWriteCond

32

32

Page 23: Structura de principiu  pentru execuţie multiciclu

Întrebări?

23