73
Principy počítačů a Principy počítačů a operačních systémů operačních systémů Architektura a implementace Architektura a implementace zjednodušeného procesoru MIPS zjednodušeného procesoru MIPS Zimní semestr 2011/2012 Zimní semestr 2011/2012

Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

Principy počítačů a Principy počítačů a operačních systémůoperačních systémů

Architektura a implementaceArchitektura a implementacezjednodušeného procesoru MIPSzjednodušeného procesoru MIPS

Zimní semestr 2011/2012Zimní semestr 2011/2012

Page 2: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20122/73 - Procesor

Architektura procesoru MIPS (1)Architektura procesoru MIPS (1)

Registry 32 obecných 32-bitových registrů (general-purpose)

s0-s7, t0-t9, zero, a0-a3, v0-v1, gp, fp, sp, ra, at (r0-r31) registr PC s adresou následující instrukce speciální registry pro řízení

adresa instrukce, který vyvolala výjimku, apod.

Paměť přístup pouze na zarovnané adresy (dělitelné 4)

granularita délky slova (32 bitů), tj. 4B nepřímá adresace s posunutím

register indirect with displacement R2 = Mem [R1 + immediate], Mem [R1 + immediate] = R2

Page 3: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20123/73 - Procesor

Architektura procesoru MIPS (2)Architektura procesoru MIPS (2)

Operace operace registr/registr, registr/immediate

aritmetické a logické operace, přesun dat mezi registry přesuny dat registr/paměť

load/store architektura podmíněné skoky

při rovnosti/nerovnosti obsahu dvou registrů nepodmíněné skoky

včetně nepřímých skoků a skoků do podprogramu speciální instrukce

práce se speciálními registry

Page 4: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20124/73 - Procesor

Architektura procesoru MIPS (3)Architektura procesoru MIPS (3)

Zpracování instrukcí čtení instrukce z paměti na adrese v PC dekódování instrukce a čtení operandů z registrů vykonání operace odpovídající instrukčnímu kódu

operace s obsahem registrů, výpočet adresy a čtení z (zápis do) paměti, porovnání operandů pro podmíněný skok

uložení výsledku do registru výsledek operace s registry, data přečtená z paměti

posun PC na následující instrukci následující instrukce následuje bezprostředně za právě čtenou

instrukcí, pokud není řečeno jinak (podmíněný/nepodmíněný skok, výjimka)

Page 5: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

JednocyklováJednocyklovádatová cestadatová cesta

Uspořádání logických celkůUspořádání logických celkůimplementující operace procesoruimplementující operace procesoru

Page 6: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20126/73 - Procesor

Čtení instrukce (fetch)Čtení instrukce (fetch)

Registr PC obsahuje adresu

instrukce v paměti pro programátora

není přímo přístupný

Paměť instrukcí oddělená pamět =

Harvardská architektura (prozatím)

Sčítačka inkrementuje obsah PC o 4 ⇒ implicitní posun na

následující instrukci (von Neumannovská koncepce)

PC

InstructionMemory

Readaddress

4

Add

Instruction

Page 7: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20127/73 - Procesor

Podpora čtení instrukcePodpora čtení instrukce

PC

IM

Addr

Insn

4

Page 8: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20128/73 - Procesor

Registrové operace (add, sub, ...)Registrové operace (add, sub, ...)

Registerfile

Readregister 1

Register 1value

ALUOp

Result

5

Readregister 2

Writeregister

Writedata

RegWrite

ALU

Rs

5Rt

5Rd

32 Register 2

value

funct

32

32

Rs (5)Op (6) Rt (5) shamt (6)Rd (5) Funct (6)

Page 9: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/20129/73 - Procesor

Podpora registrových operacíPodpora registrových operací

PC

IM

Addr

Insn

4

RF

Rs A

RegWrite

ALUOp

Rt

Rd

WD

B

I[25:21]

I[20:16]

I[15:11]

ALU

Res

Page 10: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201210/73 - Procesor

Operace s přímými operandy (addi, andi, ...)Operace s přímými operandy (addi, andi, ...)

Registerfile

Readregister 1

Register 1value

ALUOp

Result

5

Writeregister

Writedata

RegWrite

ALU

Rs

16Immediate

5Rt

32

32

32

Signext.

Rs (5)Op (6) Rt (5) Immediate (16)

Page 11: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201211/73 - Procesor

Znaménkové rozšíření (Znaménkové rozšíření (sign extensionsign extension))

Logický prvek vstup: n-bitové číslo X

předpokládá se reprezentace ve dvojkové doplňku

výstup: m-bitové číslo Y znaménkové rozšíření čísla X

Příklad pro n=16, m=32

X SignExtend

nY

m

SignExtend

X15

X0

Y15

Y0

Y31

Y16

Page 12: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201212/73 - Procesor

Podpora přímých operandůPodpora přímých operandů

PC

IM

Addr

Insn

4

Rs A

RegWrite ALUSrc

ALUOp

Rt

RtRdWD

B

SignExt

MUXM

UX

RegDst

I[25:21]

I[20:16]

I[15:11]

I[15:0]

ALU

ResRF

Page 13: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201213/73 - Procesor

Přepínač vstupů (Přepínač vstupů (multiplexer, muxmultiplexer, mux))

Logický prvek selektor: n-bitové číslo S∈ { 0, ..., 2n-1 } N=2n m-bitových vstupů X

0, X

1, ..., X

N-1

m-bitový výstup Y=XS

Příklad pro N=4, m=1 pro výběr vstupu

se používá dekodérdo kódu “1 z N”

YS

X0

X1

XN-1

0

1

N-1

SMux

X0

YS

X1

X2

X3

S

Page 14: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201214/73 - Procesor

Binární dekodér do “1 z N” (Binární dekodér do “1 z N” (binary to 1-hotbinary to 1-hot))

Logický prvek n vstupů: n-bitové dvojkové číslo B∈ { 0, ..., 2n-1 } N=2n výstupů: reprezentace B v kódu 1 z N

B-tý bit 1, ostatní 0

Příklad pro N=4

Vstupy Výstupy

B1

B0

H3

H2

H1

H0

0 0 0 0 0 1

0 1 0 0 1 0

1 0 0 1 0 0

1 1 1 0 0 0

B 1 z N

1 ze 4

B0

B1

H0

H1

H2

H3

Page 15: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201215/73 - Procesor

Čtení z paměti (load)Čtení z paměti (load)

Registerfile

Readregister 1

Register 1value

ALUOp

Result

5

Writeregister

Writedata

RegWrite

ALURs

16Offset

5Rt

32

32

32

Signext.

DataMemory

Address ReadData

Rs (5)Op (6) Rt (5) Offset (16)

Page 16: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201216/73 - Procesor

Zápis do paměti (store)Zápis do paměti (store)

Registerfile

Readregister 1

Register 1value

ALUOp

Result

5

Readregister 2

ALURs

16Offset

5Rt

32

32

Signext.

DataMemory

Address

WriteData

MemWrite

Register 2value

Rs (5)Op (6) Rt (5) Offset (16)

Page 17: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201217/73 - Procesor

Podpora přístupu do pamětiPodpora přístupu do paměti

PC

IM

Addr

Insn

4

RF

Rs A

RegWrite ALUSrc

ALUOp

Rt

RtRdWD

B

SignExt

MUXM

UX

RegDst

DM

Addr

RD

WD

MUX

MemToReg

MemWrite

I[25:21]

I[20:16]

I[15:11]

I[15:0]

ALU

Res

Page 18: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201218/73 - Procesor

Podmíněný skok s relativní adresou (branch)Podmíněný skok s relativní adresou (branch)

Registerfile

Readregister 1

Register 1value

ALUOp

5

Readregister 2

ALURs

16Offset

5Rt

32

32

Signext.

Branch

Register 2value

Zero

PC

4

Add

Shiftleft 2

Add

MUX

Rs (5)Op (6) Rt (5) Offset (16)

Page 19: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201219/73 - Procesor

Logický posun vlevo o Logický posun vlevo o kk bitů (shift logical left) bitů (shift logical left)

Logický prvek vstup: n-bitové číslo X výstup: n-bitové číslo Y = X << k

Příklad pro n=16, k=2

X Shift LeftLogical 2

nY

n

Shift LeftLogical 2

X13

X0

Y1

Y0

Y15

Y3

⋮X14

X1

Y2

0

0

X15

Page 20: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201220/73 - Procesor

Podpora podmíněného skoku s relativní adresouPodpora podmíněného skoku s relativní adresou

PC

IM

Addr

Insn

4

RF

Rs A

RegWrite ALUSrc

ALU

Res

ALUOp

Rt

RtRdWD

B

SignExt

MUXM

UX

RegDst

DM

Addr

RD

WD

MUX

MemToReg

MemWrite

ShiftLft 2

Zero

Branch

MUX

I[25:21]

I[20:16]

I[15:11]

I[15:0]

Page 21: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201221/73 - Procesor

Nepodmíněný skok s absolutní adresou (jump)Nepodmíněný skok s absolutní adresou (jump)

26Address

28

Shiftleft 2

PC

4

Add4

32

PC+4 [31:28]

Op (6) Address (26)

Page 22: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201222/73 - Procesor

Podpora nepodmíněného skoku s absolutní adresouPodpora nepodmíněného skoku s absolutní adresou

PC

IM

Addr

Insn

4

RF

Rs A

RegWrite ALUSrc

ALU

Res

ALUOp

Rt

RtRdWD

B

SignExt

MUXM

UX

RegDst

DM

Addr

RD

WD

MUX

MemToReg

MemWrite

ShiftLft 2

Zero

Branch

MUXShift

Lft 2

MUX

Jump

I[25:21]

I[20:16]

I[15:11]

I[15:0]

I[25:0]

PC+4[31:28]

Page 23: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

Řízení jednocyklovéŘízení jednocyklovédatové cestydatové cesty

Řízení průchodu dat datovou cestouŘízení průchodu dat datovou cestouv závislosti na typu operacev závislosti na typu operace

Page 24: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201224/73 - Procesor

V čem spočívá řízení datové cesty?V čem spočívá řízení datové cesty?

PC

IM

Addr

Insn

4

RF

Rs A

RegWrite ALUSrc

ALU

Res

ALUOp

Rt

RtRdWD

B

SignExt

MUXM

UX

RegDst

DM

Addr

RD

WD

MUX

MemToReg

MemWrite

ShiftLft 2

Zero

Branch

MUXShift

Lft 2

MUX

Jump

I[25:21]

I[20:16]

I[15:11]

I[15:0]

I[25:0]

PC+4[31:28]

Page 25: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201225/73 - Procesor

Příklad: řízení datové cesty pro instrukci “add”Příklad: řízení datové cesty pro instrukci “add”

PC

IM

Addr

Insn

4

RF

Rs A ALU

ResRt

Rd

WD

B

SignExt

0

10

1

RegDst=1

DM

Addr

RD

WD

0

1

MemToReg=0

MemWrite=0

ShiftLft 2

Zero

Branch=0

1

0ShiftLft 2

0

1

Jump=0

I[25:21]

I[20:16]

I[15:11]

I[15:0]

I[25:0]

PC+4[31:28]

ALUOp=”add”

ALUSrc=1RegWrite=1

Page 26: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201226/73 - Procesor

Příklad: řízení datové cesty pro instrukci “sw”Příklad: řízení datové cesty pro instrukci “sw”

PC

IM

Addr

Insn

4

RF

Rs A ALU

ResRt

RtRdWD

B

SignExt

0

10

1

RegDst=X

DM

Addr

RD

WD

0

1

MemToReg=X

MemWrite=1

ShiftLft 2

Zero

Branch=0

1

0ShiftLft 2

0

1

Jump=0

I[25:21]

I[20:16]

I[15:11]

I[15:0]

I[25:0]

PC+4[31:28]

ALUOp=”add”

ALUSrc=0RegWrite=0

Page 27: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201227/73 - Procesor

Příklad: řízení datové cesty pro instrukci “beq”Příklad: řízení datové cesty pro instrukci “beq”

PC

IM

Addr

Insn

4

RF

Rs A ALU

ResRt

RtRdWD

B

SignExt

0

10

1

RegDst=X

DM

Addr

RD

WD

0

1

MemToReg=X

MemWrite=0

ShiftLft 2

Zero

Branch=1

1

0ShiftLft 2

0

1

Jump=0

I[25:21]

I[20:16]

I[15:11]

I[15:0]

I[25:0]

PC+4[31:28]

ALUOp=”sub”

ALUSrc=1RegWrite=0

Page 28: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201228/73 - Procesor

Radič datové cesty (Radič datové cesty (data path controllerdata path controller))

Generuje řídící signály zdroj hodnoty PC zápis do registrů čtení/zápis dat operace ALU

Hodnoty pro různé instrukce ohodnocení většiny signálů závisí

na operačním kódu v instrukci některé mohou být přímo součástí instrukčního kódu

část signálů ALUOp odpovídá bitům v poli “funct” zjednodušuje implementaci řadiče

Control

Branch

RegDst

RegWrite

MemWrite

MemToReg

ALUOp

Jump

Instruction

ALUSrc

Page 29: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201229/73 - Procesor

Implementace řadiče pomocí ROMImplementace řadiče pomocí ROM

Řídící paměť ROM (Read Only Memory) – jako RAM, ale jen pro čtení slova v paměti reprezentují hodnoty řídících signálů hodnota operačního kódu adresuje řádky paměti

Jump

Branch

RegDst

RegWrite

MemWrite

MemToReg

ALUOp

ALUSrc

add 0 0 1 1 0 0 0 1

addi 0 0 0 1 0 0 0 0

lw 0 0 0 1 0 1 0 0

sw 0 0 X 0 1 X 0 0

beq 0 1 X 0 0 X 1 1

j 1 X X 0 0 X X X

Opcode

Page 30: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201230/73 - Procesor

Implementace řadiče pomocí kombinačního obvoduImplementace řadiče pomocí kombinačního obvodu

Reálný procesor: 100+ instrukcí a 300+ ř. signálů kapacita řídící ROM 30000+ bitů (~4 KiB) problém je udělat ROM rychlejší než datovou cestu

Alternativa k ROM: kombinační obvod mnoho signálů má málo jedniček nebo nul ⇒ kompaktní

reprezentace log. funkcí pro řídící signály

Opcode

add

addi

lw

sw

beq

j

Jump Branch RegDst RegWriteMemWrite MemToRegALUOp ALUSrc

Page 31: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201231/73 - Procesor

Průběh hodinového cykluPrůběh hodinového cyklu

Datová cesta s nepřetržitým čtením nevadí, protože zápisy (PC, RF, DM) jsou nezávislé v rámci cyklu žádné čtení nenásleduje po zápisu čtení instrukce (fetch) nepotřebuje řízení

po přečtení instrukce radič dekóduje operační kód na řídící signály pro zbývající část datové cesty

při změně obsahu PC (adresa instrukce) se začne zpracovávat další instrukce

Čas

Čtení z instrukční paměti

Čtení registrů(Čtení z řídící ROM)

Čtení z datové paměti

Zápis do datové pamětiZápis do registrůZápis do PC

Page 32: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201232/73 - Procesor

Výkon jednocyklového počítačeVýkon jednocyklového počítače

Každá instrukce trvá 1 takt (CPI=1) jednocyklový radič = kombinační obvod nebo řídící ROM obecně nižší frekvence hodinového signálu

Délka cyklu odpovídá délce nejdelší instrukce v tomto případě “lw”, ale typicky násobení, dělení či

floating-point operace v rozporu s “optimize for the common case”

Datová cesta obsahuje duplicitní prvky instrukční a datová paměť, 2 sčítačky navíc

Jde to i lépe?

Page 33: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

VícecyklováVícecyklovádatová cestadatová cesta

Page 34: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201234/73 - Procesor

Základní myšlenkaZákladní myšlenka

Proměnná doba zpracování instrukce jednoduché instrukce by neměly trvat stejně dlouho

jako složité nelze měnit periodu hodinového signálu ⇒ instrukce

rozdělena do menších kroků perioda hodinového signálu odpovídá délce kroku

v každém taktu proveden 1 krok, počet taktů nutných pro zpracování se pro různé instrukce liší

instrukční cyklus vs. strojový cyklus aproximace proměnné délky cyklu

Jak dobře to funguje?

Page 35: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201235/73 - Procesor

Jednocyklová vs. vícecyklová datová cestaJednocyklová vs. vícecyklová datová cesta

Předpokládejme... většina instrukcí trvá 10ns, ale násobení trvá 40ns a v

programech je (v průměru) 10% instrukcí násobení

Jednocyklová datová cesta perioda hodin 40ns, CPI=1 při 40ns na instrukci je výkon 25 MIPS

Vícecyklová datová cesta perioda hodin 10ns, CPI≈ (90% × 1) + (10% × 4)≈ 1.3 při (v průměru) 13ns na instrukci je výkon 77 MIPS vícecyklová datová cesta je 3× (o 200%) rychlejší

Page 36: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201236/73 - Procesor

Rozdělení instrukcí do krokůRozdělení instrukcí do kroků

Instrukční cyklus načtení instrukce dekódování instrukce a přečtení registrů vykonání instrukce, výpočet adresy, dokončení větvení přístup do paměti a zapsání výsledku dokončení čtení z paměti

Page 37: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201237/73 - Procesor

Princip implementace vícecyklové datové cestyPrincip implementace vícecyklové datové cestyPC

Memory

Address

Instructionor Data

Registers

Read reg. 1

Data1

Data2

Read reg. 2

Writeregister

Writedata

ALUOutALU

A

BWrite data

Instructionregister

Memory dataregister

rozdělit na části nutné pro vykonání jednotlivých kroků části nutno izolovat pomocí registrů pro mezivýsledky

řadič musí “provést” instrukci datovou cestou instrukce mohou některé kroky přeskočit a skončit dříve

Page 38: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201238/73 - Procesor

Krok 1: čtení instrukceKrok 1: čtení instrukce

Současně probíhá● IR <= Memory [PC]

přečtení instrukce do instrukčního registru● PC <= PC + 4

posun PC na adresu další instrukce změna hodnoty PC nevadí, protože přečtená instrukce je již v

instrukčním registru

Page 39: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201239/73 - Procesor

Krok 2: dekódování instrukce a čtení registrůKrok 2: dekódování instrukce a čtení registrů

Současně probíhá A <= Reg [IR.rs]

přečtení obsahu zdrojového registru 1 B <= Reg [IR.rt]

přečtení obsahu zdrojového registru 2 ALUOut <= PC + (sign-extend (IR.addr) << 2)

výpočet adresy podmíněného skoku pokud instrukce není skok, výsledek se nepoužije

Další kroky se liší podle typu instrukce...

Page 40: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201240/73 - Procesor

Krok 3: provedení operace/výpočet adresy v pamětiKrok 3: provedení operace/výpočet adresy v paměti

Podmíněný skok (konec) if (A == B) then PC <= ALUOut

adresu skoku máme v ALUOut z předchozího kroku

Nepodmíněný skok (konec) PC <= PC [31:28] + IR [25:0] << 2

Aritmeticko-logická operace ALUOut <= A funct B

Přístup do paměti ALUOut <= A + sign-extend (IR [15:0])

výpočet adresy pro přístup do paměti

Page 41: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201241/73 - Procesor

Krok 4: přístup do paměti/zápis výsledkuKrok 4: přístup do paměti/zápis výsledku

Aritmeticko-logická operace (konec) Reg [IR.rd] <= ALUOut

výsledek operace zapsán do cílového registru

Zápis do paměti (konec) Memory [ALUOut] <= B

obsah registru zapsán do paměti

Čtení z paměti MDR <= Memory [ALUOut]

obsah paměti přečten do pomocného registru

Page 42: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201242/73 - Procesor

Krok 5: zápis dat z paměti do registruKrok 5: zápis dat z paměti do registru

Čtení z paměti (konec) Reg [IR.rt] <= MDR

zápis přečtené hodnoty do registru

Page 43: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

Řízení vícecyklovéŘízení vícecyklovédatové cestydatové cesty

Page 44: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201244/73 - Procesor

Implementace vícecyklové datové cestyImplementace vícecyklové datové cesty

PC

Memory

Address

Data

4

Registers

Read reg. 1

Data1

Data2

Read reg. 2

Writeregister

Writedata

RegWrite

Signext.

16 32 ShiftLeft 2

0

1

2

3

ALUSrcB

ALUOut

ALU Zero

Result

ALUOp

0

1

[15:11]

[15:0]

RegDst

ALUcontrol

[5:0]

0X1

1

0

0

1A

B

Write data

InstructionRegister

[25:21]

[20:16]

[15:0]

Memory dataregister

MemToReg

ALUSrcAIorD IRWriteMemWrite

MemRead

Page 45: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201245/73 - Procesor

Řízení vícecyklové datové cesty je sekvenčníŘízení vícecyklové datové cesty je sekvenční

Zpracování instrukce trvá více taktů řadič musí vědět, který krok zpracování instrukce má

provést ⇒ sekvenční obvod ⇒ konečný automat nachází se v jednom z množiny možných stavů, stav uchován v

paměťovém prvku (registru) kombinační logika určí následující stav, který se do stavového

registru zapíše s náběžnou hranou hod. signálu

Instruction fetch/decode and register fetch

START

Memory access instructions

R-type instructions

Branch instruction

Jump instruction

Page 46: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201246/73 - Procesor

Instruction fetch/decode and register fetchInstruction fetch/decode and register fetch

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOp=00

PCWritePCSource=00

START

0 ALUSrcA=0ALUSrcB=11ALUOp=00

1

Memory-reference FSM

R-type FSM Branch FSM Jump FSM

Op='LW' or Op='SW' Op=R-type Op='BEQ' Op='J'

Instruction FetchInstruction decode/

Register fetch

Page 47: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201247/73 - Procesor

Memory reference FSMMemory reference FSM

From 1

2 ALUSrcA=1ALUSrcB=10ALUOp=00

Op='LW' Op='SW'

MemReadIorD=1

MemWriteIorD=1

Memory address computation

Memoryaccess

Memoryaccess

3 5

RegWriteMemToReg=1

RegDst=0

4

Memory readcompletion step

To state0

Page 48: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201248/73 - Procesor

R-type FSMR-type FSM

From 1

6 ALUSrcA=1ALUSrcB=00ALUOp=10

RegDst=1MemToReg=0RegWrite=1

Execution

R-type completion

7

To state0

Page 49: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201249/73 - Procesor

Branch FSMBranch FSM

From 1

8ALUSrcA=1

ALUSrcB=00ALUOp=01

PCWriteCondPCSource=01

Branch completion

To state0

Page 50: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201250/73 - Procesor

Jump FSMJump FSM

From 1

9PCWrite

PCSource=10

Jump completion

To state0

Page 51: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201251/73 - Procesor

Konečný automat pro řadič vícecyklové datové cestyKonečný automat pro řadič vícecyklové datové cesty

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOp=00

PCWritePCSource=00

START

0 ALUSrcA=0ALUSrcB=11ALUOp=00

1

Op='LW' or Op='SW' Op=R-type Op='BEQ' Op='J'

Instruction FetchInstruction decode/

Register fetch

2 ALUSrcA=1ALUSrcB=10ALUOp=00

Op='LW' Op='SW'

MemReadIorD=1

MemWriteIorD=1

Memory addresscomputation

Memoryaccess

Memoryaccess

3 5

RegWriteMemToReg=1

RegDst=0

4

Memory readcompletion step

6ALUSrcA=1

ALUSrcB=00ALUOp=10

RegDst=1MemToReg=0RegWrite=1

Execution

R-type completion

7

8ALUSrcA=1

ALUSrcB=00ALUOp=01

PCWriteCondPCSource=01

Branchcompletion

9PCWrite

PCSource=10

Jumpcompletion

Page 52: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201252/73 - Procesor

Výjimky a přerušeníVýjimky a přerušení

Neočekávaná změna toku provádění instrukcí jiná příčina než jump/branch

Vnitřní (exception, trap) aritmetické přetečení nedefinovaná instrukce vyvolání služby operačního systému selhání hardware

Vnější (interrupt) periferní zařízení selhání hardware

Page 53: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201253/73 - Procesor

Podpora výjimek a přerušeníPodpora výjimek a přerušení

Hardware zastavení vykonávání instrukce

důležité je zachovat korektní stav procesoru zajistit možnost identifikace příčiny

příznakové bity ve speciálním registru případně další upřesňující informace

uschovat adresu instrukce, při které výjimka nastala umožňuje pokračovat v běhu (přerušeného) programu

skok na adresu obslužné rutiny stejná adresa pro všechny typy výjimek (MIPS) různé adresy pro různé výjimky (Intel)

Page 54: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201254/73 - Procesor

Podpora pro výjimku při aritmetickém přetečeníPodpora pro výjimku při aritmetickém přetečení

From 1

6 ALUSrcA=1ALUSrcB=00ALUOp=10

RegDst=1MemToReg=0RegWrite=1

Execution

R-type completion

7

To state0

IntCause=1CauseWriteALUSrcA=0

ALUSrcB=01ALUOp=01EPCWritePCWrite

PCSource=11

11

Arithmeticoverflow

Overflow

Not overflow

Page 55: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201255/73 - Procesor

Podpora pro výjimku při neplatné instrukciPodpora pro výjimku při neplatné instrukci

From 1

10IntCause=0CauseWriteALUSrcA=0

ALUSrcB=01ALUOp=01EPCWritePCWRite

PCSource=11

Undefined Instruction

To state0

Page 56: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201256/73 - Procesor

Obsluha výjimek a přerušeníObsluha výjimek a přerušení

Realizuje software uschování stavu původního výpočtu zjištění příčiny výjimky/přerušení obsluha příslušného typu výjimky

může dojít k ukončení vypočtu obnovení stavu původního výpočtu návrat do původního programu

pokračovat následující instrukcí restartovat instrukci, která výjimku vyvolala

Page 57: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201257/73 - Procesor

Výkon vícecyklové datové cestyVýkon vícecyklové datové cesty

Instrukční mix 30% load (5ns), 10% store (5ns) 50% add (4ns), 10% mul (20ns)

Jednocyklová datová cesta (takt 20ns, CPI=1) 20ns na instrukci ⇒ výkon 25 MIPS

Jednoduchá vícecyklová datová cesta (takt 5ns) CPI≈ (90% × 1) + (10% × 4) = 1.3 6.5ns na instrukci ⇒ výkon 153 MIPS

Jemně členěná vícecyklová datová cesta (takt 1ns) CPI≈ (30% × 5) + (10% × 5) + (50% × 4) + (10% × 20) = 6 6ns na instrukci ⇒ výkon 166 MIPS

Page 58: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

Realizace vícecyklovéhoRealizace vícecyklovéhořadičeřadiče

Page 59: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201259/73 - Procesor

Více-cyklový řadič = konečný automatVíce-cyklový řadič = konečný automat

Konečný automat množina platných stavů, vnitřní stav, počáteční stav přechody mezi stavy v závislosti na stavu a vstupech

Realizace konečného automatu stav + podmínky = paměť + logika = sekvenční obvod

realizace závisí na reprezentaci vnitřního stavu obvodové řešení

stavový registr, kombinační logika posuvný řetězec klopných obvodů

paměť + jednoduchý sekvenční obvod (místo dekodéru) mikroprogramování, nanoprogramování

Page 60: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201260/73 - Procesor

Obvodový řadičObvodový řadič

Obvodová realizace konečného automatu přechody stavovým diagramem standardní metody sekvenční logiky

Page 61: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201261/73 - Procesor

Mikroprogramový řadičMikroprogramový řadič

Maurice V. Wilkes, 1951

Page 62: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201262/73 - Procesor

Princip vykonávání mikrokóduPrincip vykonávání mikrokódu

Page 63: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201263/73 - Procesor

Mikroprogramování na jednoduchém CPUMikroprogramování na jednoduchém CPU

Zdroj: Mark Smotherman - A Brief History of Microprogramming

Page 64: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201264/73 - Procesor

Architektura (akumulátorová)Architektura (akumulátorová)

Registry ACC (akumulátor)

Instrukční sada instrukce 8 bitů (2 bity operační kód, 6 bitů adresa) opcode=00: load (ACC from memory)

ACC <= memory [address] opcode=01: add (to ACC from memory)

ACC <= ACC + memory [address] opcode=10: store (ACC to memory)

memory [address] <= ACC opcode=11: branch (to address if ACC zero)

if (ACC == 0) PC <= address

Page 65: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201265/73 - Procesor

Řídící signályŘídící signály

pcincr : PC <= PC + 1PC_in : PC <= CPU internal busPC_out : CPU internal bus <= PC

IR_in : IR <= CPU internal busIR_out : CPU internal bus <= address portion of IR

MAR_in : MAR <= CPU internal busMDR_in : MDR <= CPU internal busMDR_out : CPU internal bus <= MDR

read : MDR <= memory[ MAR ]write : memory[ MAR ] <= MDR

ACC_in : ACC <= CPU internal busACC_out : CPU internal bus <= ACC

TEMP_out : CPU internal bus <= TEMPaluadd : addition is selected as the ALU operation

Page 66: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201266/73 - Procesor

Mikroprogram pro instrukci Mikroprogram pro instrukci loadload

Page 67: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201267/73 - Procesor

Mikroprogram pro instrukci Mikroprogram pro instrukci loadload

● fetchT0: PC_out, MAR_inT1: read, pcincrT2: MDR_out, IR_in

● decodeT3: decode opcode in IR

● executeT4: IR_out(addr part), MAR_inT5: readT6: MDR_out, ACC_in, reset to T0

Page 68: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201268/73 - Procesor

Realizace řídící logiky: logické funkceRealizace řídící logiky: logické funkce

ACC_in = (load & T6) + (add & T7)ACC_out = (store & T5) + (add & T6)

aluadd = add & T6TEMP_out = add & T7

IR_in = T2IR_out = (load & T4) + (add & T4) + (store & T4)

+ (brz & acceq0 & T4)

MAR_in = T0 + (load & T4) + (add & T4) + (store & T4)MDR_in = store & T5MDR_out = T2 + (load & T6)

PC_in = brz & acceq0 & T4PC_out = T0pcincr = T1

read = T1 + (load & T5) + (add & T5)write = store & T6

Page 69: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201269/73 - Procesor

Realizace řídící logiky: mikrořadič s řídící pamětíRealizace řídící logiky: mikrořadič s řídící pamětí

Page 70: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201270/73 - Procesor

Horizontální formát mikroinstrukcíHorizontální formát mikroinstrukcí

Přímá reprezentace řídících signálů mikroinstrukce obsahuje přímo hodnoty řídících signálů není třeba dekódovat rychlost libovolná kombinace pružnost velké nároky na prostor

Page 71: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201271/73 - Procesor

Vertikální formát mikroinstrukcíVertikální formát mikroinstrukcí

Kódovaná reprezentace řídících signálů některé kombinace se vylučují navzájem možno

zakódovat menší objem nutno dekódovat zpomalení, zesložitění pevný návrh méně pružné

Page 72: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201272/73 - Procesor

NanoprogramováníNanoprogramování

Základní myšlenka jen některé kombinace řídících signálů dávájí smysl smysluplné kombinace očíslujeme a uložíme do paměti

Dvojúrovňová řídící paměť první úroveň použije vertikální formát (tj. čísla

smysluplných kombinací) pro indexaci druhé úrovně vybraný řádek ve druhé úrovni je již v horizontálním

formátu (tj. bity odpovídají řídícím signálům)

Důsledky silná redukce velikosti zpomalení

Page 73: Principy počítačů a operačních systémů...Principy počítačů a operačních systémů Architektura a implementace zjednodušeného procesoru MIPS Zimní semestr 2011/2012

NSWI120 ZS 2011/201273/73 - Procesor

Srovnání mikro- a nanoprogramováníSrovnání mikro- a nanoprogramování