introduzione alla progettazione di un...

45
Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori Università degli Studi Roma Tre ([email protected]) Microelettronica Introduzione al progetto di un microprocessore

Upload: others

Post on 01-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma TreMicroelettronica 2012

Stefano SalvatoriUniversità degli Studi Roma Tre

([email protected])

Microelettronica

Introduzione al progetto di un microprocessore

Page 2: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 2

Sommario

uP minimo: MU0 Formato delle istruzioni Tipi di istruzione Percentuale di utilizzo delle istruzioni Modi di indirizzamento Pipeline CISC - RISC

Page 3: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 3

Architettura e organizzazione di un uP Un computer general purpose consiste in un sistema denominato: computer digitale con

programma memorizzato La tecnologia microelettronica ha consentito di integrare milioni di MOS su un solo chip

dando luogo alla nascita di sistemi ultraveloci e di complessità sempre più alta Il progresso nel campo dei uP non si è avuto solo grazie al progresso tecnologico Allo sviluppo hanno certamente contribuito le capacità degli ingegneri in grado di

definire sia l'architettura che l'organizzazione di un microcomputer

Architettura che descrive il computer dal punto di vista dell'utente: Set delle istruzioni Registri disponibili Gestione della memoria Gestione delle eccezioni …

Organizzazione che descrive come è implementata l'architettura: Struttura della pipeline Chache Soluzioni hardware ...

Page 4: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 4

Computer con programma memorizzato Un processore è un automa che esegue

istruzioni scritte nella memoria programma

address

instructions

processor

memory

registers

instructions

data

00..0016

FF..FF16

and data

Lo stato del sistema è determinato dai valori memorizzati in locazioni di memoria e in registri interni al uP

ogni istruzione definisce le modalità di cambiamento dei dati e quindi dello stato

essendo programmabili, i uP risultano dispositivi universali, potendo eseguire qualunque algoritmo

dati e programma sono immagazzinati nella stessa memoria ⇒ le istruzioni sono trattate come i dati (questo può anche portare a un codice che si auto-modifica)

Page 5: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 5

I uP sono dispositivi che integrano milioni di MOS che operano a velocità elevatissima.

I dispositivi commutano milioni di volte al secondo.

Il sistema deve operare in modo ripetibile e controllato per non cadere in uno stato imprevisto (collasso).

Come può essere progettato un sistema tanto complesso?

Astrazione nella progettazione

Page 6: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 6

Livello: porte logiche

Vdd

Vss

A

B

A.B

Circuito CMOS per una porta logica CMOS NAND a 2 ingressi:

Y = (A·B)'

Page 7: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 7

Livello: porte logiche

Astrazione che consente di eliminare la dipendenza dal layout a livello di MOS singolo

Page 8: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 8

Computer logic

AND

OR

NOT

Uso

de

ll'algeb

ra di B

oo

le

Page 9: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 9

Computer logic

XOR: addizione

Page 10: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 10

Computer logic

Adder

Page 11: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 11

Computer logic

Multiplexer

Page 12: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 12

Computer logic

Circuiti sequenziali

Page 13: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 13

Computer logic

Edge triggered latch

clockdata

Page 14: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 14

Computer logic

D-register

clock

d0 d1 d2 d3

q0 q1 q2 q3

enable

clockenable

Din

Dout

reg

iste

r

Page 15: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 15

Livelli d'astrazione nella progettazione hardware

layout del singolo dispositivo

livello transistor: logic gates

porte logiche: per simboli

sistemi LSI-MSI: somm., ALU, …

sistemi complessi: processori, cache…

sistemi integrati

schede (PCB)

apparati

Page 16: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 16

Elementi per il

progetto di un

processore

Page 17: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 17

Il processore minimo

Il tipo più semplice di processore prevederà:• un PC, Program Counter, per puntare all’istruzione

da eseguire

• un IR, Instruction Register, che mantiene il codice dell’istruzione da eseguire

• un registro, Accumulatore, in grado di immagazzinare il dato su cui lavorare in un certo istante

• una ALU, Arithmetic Logic Unit, in grado di eseguire operazioni elementari

• una unità di decodifica e controllo che imposterà le azioni in funzione dell’istruzione

MU0..6

Page 18: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 18

MU0

Per il più semplice processore prevediamo un formato a 16 bit;

Nei 16 bit sono inclusi l'opcode a 4 bit e un campo d'indirizzo a 12 bit:

opcode S

12 bits4 bits

istruzioni a 16 bit

I dati sono a 16 bit (ALU)

12 bit d’indirizzo -> 4096x16 = 8 kbyte di spazio di memoria

Page 19: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 19

MU0

Il set di istruzioni è anch'esso minimo:

Istruzione Opcode Effetto

LDA S 0000 ACC := mem16[S]

STO S 0001 mem16[S] := ACC

ADD S 0010 ACC := ACC + mem16[S]

SUB S 0011 ACC := ACC - mem16[S]

JMP S 0100 PC := S

JGE S 0101 if ACC >= 0 PC := S

JNE S 0110 if ACC !=0 PC := S

STP 0111 stop

Page 20: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 20

MU0

Il progetto della logica è divisibile in due passi fondamentali:

• datapath tutti gli elementi che lavorano su “parole” (acc., PC, ALU, IR)

fanno parte del datapath per questi elementi si usa uno stile di progetto di tipo

Register Transfer level (RTL), basato su registri, MUX, …

• logica di controllo tutto ciò che non è incluso nel datapath, farà parte della

logica di decodifica/controllo il progetto si basa su FSM (Finite State Machine)

Page 21: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 21

Progetto a livello di

datapath

Page 22: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 22

MU0 datapath

MU0

12

16

Page 23: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 23

MU0 datapath

l’esecuzione dell’istruzione prevede un numero di cicli di clock pari agli accessi in memoria necessari

l’esecuzione dell’istruzione prevede un numero di cicli di clock pari agli accessi in memoria necessari

Instruzione Opcode Effetto

LDA S 0000 ACC := mem16[S]

STO S 0001 mem16[S] := ACC

ADD S 0010 ACC := ACC + mem16[S]

SUB S 0011 ACC := ACC - mem16[S]

JMP S 0100 PC := S

JGE S 0101 if ACC >= 0 PC := S

JNE S 0110 if ACC !=0 PC := S

STP 0111 stop

2 accessi

1 accessi

Page 24: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 24

MU0 datapath

L'incremento del PC è svolto dalla stessa ALU (come si dimostrerà più avanti)

Page 25: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 25

MU0 datapath design

assunto che l’istruzione sia stata caricata, il progetto –a livello di datapath- prevede:

1. accesso all’operando in memoria

• esce l’indirizzo da IR

• l’operando e accumulatore giungono alla ALU

• il risultato fornito dalla ALU è caricato nell’accumulatore stesso

• oppure il contenuto dell’accumulatore è scritto in memoria

1. fetch della nuova istruzione (PC o IR12 hanno l’indirizzo della locazione per la nuova istruzione)

• il contenuto è incrementato dalla ALU

• il nuovo valore è salvato in PC

1. inizializzazione (il processore deve iniziare da uno stato noto)

• input di RESET

• per esempio: azzerata l’uscita della ALU, caricarne poi il valore in PC

Page 26: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 26

Progetto a livello di

RTL

(Register Transfer Level)

Page 27: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 27

Organizzazione RTL

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

Alcuni segnali di

abilitazione

Il dato è caricato nel registro in corrispon-denza del fronte negativo di clock

Segnali di controllo

Page 28: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 28

Progetto della logica di controllo: Decodifica dell'istruzione corrente; Generare i segnali di controllo all'interno del

datapath; È intuibile che il progetto prevede quello di una

FSM:• La rappresentazione mediante il diagramma degli stati

è “superflua”• Vi sono solo due stati: Fetch e Execute • => solo 1 bit di stato

Progetto FSM

Page 29: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 29

Progetto della FSM

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

tabella degli stati:

Ex/ft:execute = 0fetch = 1

inputs outputs

Bit di stato

Page 30: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 30

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. LDA S (Ex/ft=1)

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

PC <- PC+1

preparo memorizzazione dell’indirizzo S.

fase di fetch

LDA S 0000 0 1 x x

inputs outputs

0 0 0 1 1 0 B+1 1 1 0

Page 31: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 31

Progetto FSM: es. LDA S (Ex/ft=0)

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

preparo memorizz.nell’accumulatore

fase di execute

LDA S 0000 0 0 x x

inputs outputs

1 1 1 0 0 0 = B 1 1 1

La prossima è il fetch dell'istruzione succ.

Page 32: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 32

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. STO S

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

preparo memorizz. in memoria

R / W

inputs outputs

STO S 0001 0 0 x x 1 x 0 0 0 1 x 1 0 1STO S 0001 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

Page 33: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 33

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. ADD S

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

inputs outputs

ADD S 0010 0 0 x x 1 1 1 0 0 0 A+B 1 1 1ADD S 0010 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

Page 34: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 34

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. SUB S

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

inputs outputs

SUB S 0011 0 0 x x 1 1 1 0 0 0 A-B 1 1 1SUB S 0011 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

Page 35: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 35

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. JMP S

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

inputs outputs

JMP S 0100 0 x x x 1 0 0 1 1 0 B+1 1 1 0

Page 36: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 36

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. JGE S

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

inputs outputs

0 x x 0 1 0 0 1 1 0 B+1 1 1 0JGE S 0101 0 x x 1 0 0 0 1 1 0 B+1 1 1 0JGE S 0101

Page 37: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 37

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. JNE S

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

inputs outputs

0 x 0 x 1 0 0 1 1 0 B+1 1 1 0JNE S 0110 0 x 1 x 0 0 0 1 1 0 B+1 1 1 0JNE S 0110

Page 38: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 38

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

Progetto FSM: es. STP

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

inputs outputs

0 x x x 1 x 0 0 0 0 x 0 1 0STP 0111

Page 39: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 39

Progetto FSM: es. RST

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

instruction

Op-code

ResetEx/ft

ACCz

ACC15

Asel

Bsel

ACCce

PCce

IRce

ACCoe

ALUfs

MEMrq

R/nW

EX/ft

inputs outputs

1 x x x 0 0 1 1 1 0 = 0 1 1 0RST xxxx

N.B.: in realtà l'ALU calcola il valore B+1 in modo che quando il segnale di RST è disabilitato in PC vada l'indirizzo dell'istruzione successiva

RST

CLK

Qui, all'uscita dal reset viene memorizzato PC+1 = 001 in PC

Page 40: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 40

Progetto FSM: sintesimemory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

memory

ACC

IRce

PCce

ALUfs

Bsel

ACCce

ACCoe

MEMrq RnW

mux0 1

Asel

ALUAB

PC

ACC[15]

ACCz

IR

opcode

MU0

organizzazione RTL

fetch dell’istruzione corrente e incremento di PC => coincidono

Page 41: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 41

Progetto della

ALU

(Arithmetic Logic Unit)

Page 42: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 42

Progetto della ALU

Le funzioni da implementare sono:• A+B: semplice adder;• A-B: eq. a A+B’+1 => inv. B e forzare Cin a 1;• B: forzare A e Cin a 0;• B+1: forzare A = 0 e Cin = 1

Dalla tabella utilizzata per il progetto della FSM si ricavano quali siano le funzioni che la ALU deve svolgere.

N.B.: per il reset (=0) si può usare lo stesso segnale che azzeri l'uscita (senza inserire una quinta funzione)

Page 43: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 43

Progetto della ALU

Le funzioni da implementare sono:• A+B: semplice adder;• A-B: eq. a A+B’+1 => invertire B e forzare Cin a 1;• B: forzare A e Cin a 0;• B+1: forzare A = 0 e Cin = 1

Cin

Cout

sum

reset

B

A

Aen

Binv Cin

Cout

sum

reset

B

A

Aen

Binv

Page 44: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 44

Sviluppi futuri per il MU0

Aumentare il numero di linee di indirizzo;

Aumentare i modi di indirizzamento;

Consentire il salvataggio di PC (subroutines);

Aggiungere altri registri interni;

inserire linee di interrupt;

Page 45: introduzione alla progettazione di un uPssalvatori.altervista.org/alterpages/files/2_uPdesign2.pdf · 2013. 2. 24. · definire sia l'architettura che l'organizzazione di un microcomputer

Università degli Studi Roma Tre Stefano SalvatoriMicroelettronica 2012 45

Riferimenti

S. Furber, “ARM, system-on-chip architecture, 2nd ed. :

• cap. 1 (pp. 1-13)• Appendice: pp. 399-404