Microelettronica -...

36
S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2016/2017 Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia. Corso introduttivo di progettazione di sistemi embedded

Transcript of Microelettronica -...

Page 1: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (1 di 70)

Microelettronica

Elementi per il progetto di un microprocessore

prof. Stefano Salvatori

A.A. 2016/2017

Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia.

Corso introduttivo di progettazione di sistemi embedded

Page 2: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (2 di 70)

Sommario

● Evoluzione della tecnologia

● L'esecuzione di una istruzione

– Programmazione strutturata

● Architettura e organizzazione di un microprocessore

● Progetto di un processore minimo

– livello datapath

– sintesi FSM

● Note sul progetto di un set di istruzioni

– formato

– tipi

– modi di indirizzamento

Page 3: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (3 di 70)

Intel 4004

2300 transistor

Page 4: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (4 di 70)

La tecnologia di oggi

Page 5: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (5 di 70)

Livelli di interconnessione

Page 6: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (6 di 70)

Un processore di oggi

> 109 transistor

Page 7: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (7 di 70)

Legge di Moore

curve shows transistor count doubling every two years

2,300

10,000

100,000

1,000,000

10,000,000

100,000,000

1,000,000,000

2,600,000,000

1971 1980 1990 2000 2011

Date of introduction

4004

8008

8080

RCA 1802

8085

8088

Z80

MOS 6502

6809

8086

80186

6800

68000

80286

80386

80486

PentiumAMD K5

Pentium IIPentium III

AMD K6

AMD K6-IIIAMD K7

Pentium 4Barton Atom

AMD K8

Itanium 2 CellCore 2 Duo

AMD K10Itanium 2 with 9MB cache

POWER6

Core i7 (Quad)Six-Core Opteron 2400

8-Core Xeon Nehalem-EXQuad-Core Itanium TukwilaQuad-core z1968-core POWER7

10-Core Xeon Westmere-EX

16-Core SPARC T3

Six-Core Core i7

Six-Core Xeon 7400

Dual-Core Itanium 2

AMD K10

Microprocessor Transistor Counts 1971-2011 & Moore's Law

Tra

nsis

tor

coun

t

Il numero di transistor integrati in un chip

raddoppia ogni anno

Page 8: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (8 di 70)

Legge di Moore

curve shows transistor count doubling every two years

2,300

10,000

100,000

1,000,000

10,000,000

100,000,000

1,000,000,000

2,600,000,000

1971 1980 1990 2000 2011

Date of introduction

4004

8008

8080

RCA 1802

8085

8088

Z80

MOS 6502

6809

8086

80186

6800

68000

80286

80386

80486

PentiumAMD K5

Pentium IIPentium III

AMD K6

AMD K6-IIIAMD K7

Pentium 4Barton Atom

AMD K8

Itanium 2 CellCore 2 Duo

AMD K10Itanium 2 with 9MB cache

POWER6

Core i7 (Quad)Six-Core Opteron 2400

8-Core Xeon Nehalem-EXQuad-Core Itanium TukwilaQuad-core z1968-core POWER7

10-Core Xeon Westmere-EX

16-Core SPARC T3

Six-Core Core i7

Six-Core Xeon 7400

Dual-Core Itanium 2

AMD K10

Microprocessor Transistor Counts 1971-2011 & Moore's Law

Tra

nsis

tor

coun

t

109

curve shows transistor count doubling every two years

2,300

10,000

100,000

1,000,000

10,000,000

100,000,000

1,000,000,000

2,600,000,000

1971 1980 1990 2000 2011

Date of introduction

4004

8008

8080

RCA 1802

8085

8088

Z80

MOS 6502

6809

8086

80186

6800

68000

80286

80386

80486

PentiumAMD K5

Pentium IIPentium III

AMD K6

AMD K6-IIIAMD K7

Pentium 4Barton Atom

AMD K8

Itanium 2 CellCore 2 Duo

AMD K10Itanium 2 with 9MB cache

POWER6

Core i7 (Quad)Six-Core Opteron 2400

8-Core Xeon Nehalem-EXQuad-Core Itanium TukwilaQuad-core z1968-core POWER7

10-Core Xeon Westmere-EX

16-Core SPARC T3

Six-Core Core i7

Six-Core Xeon 7400

Dual-Core Itanium 2

AMD K10

Microprocessor Transistor Counts 1971-2011 & Moore's Law

Tra

nsis

tor

coun

t

Page 9: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (9 di 70)

Come lavora un processore:

cenni sulla

programmazione strutturata

Page 10: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (10 di 70)

Il processore come macchina programmabile

● Un processore è un sistema elettronico in grado di eseguire un programma

address

instructions

processor

memory

registers

instructions

data

00..0016

FF..FF16

and data

Page 11: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (11 di 70)

Descrizione di un algoritmo

input/output

istruzione

condizione

inizio/fine

connessione

blocco di istruzioni

Page 12: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (12 di 70)

Programmazione strutturata

sequenza

T F

condizione

cond T

F

ciclo while

cond

Page 13: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (13 di 70)

Esempio

In B

somma

end

Out C

C ← A + B

In A

Addizione tra due numeri

input

assegnazione

output

Page 14: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (14 di 70)

Esempio

max

end

Out max

In A , B

Massimo tra due numeri

T FA > B

max ← A max ← B

confronto

Page 15: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (15 di 70)

Esempio

end

Out max

In A

Ricerca massimo (-1 per uscire)

T FA > max

max ← A

A != -1

T

F

A ← 0

max ← 0

max

Page 16: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (16 di 70)

Esercizi

1. Disegnare la struttura del ciclo for;

2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore;

3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uC che risponda alle seguenti specifiche:• Acquisisca lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

Page 17: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (17 di 70)

Esercizi

1. Disegnare la struttura del ciclo for;

2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore;

3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uC che risponda alle seguenti specifiche:• Acquisisca lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

Page 18: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (18 di 70)

Ciclo for

cond. i

T

F

i ← iniz

modif. i

Page 19: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (19 di 70)

Ciclo for

cond. i

T

F

i ← iniz

modif. i

T

F

ciclo while

cond

Page 20: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (20 di 70)

Ciclo for: esempio

i > 0

T

F

I ← 3600000

i ← i - 1

for(i = 3600000 ; i>0; i­­){

...}

i = 3600000;while(i>0){

...  i­­; }

Ciclo while equivalente

Page 21: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (21 di 70)

Ciclo for: esempio

i > 0

T

F

I ← 3600000

i ← i - 1

for(i = 3600000 ; i>0; i­­){

...}

Assegnazione iniziale

Condizione per rimanere nel ciclo

Operazione di aggiornamento alla fine

di un ciclo

blocco di istruzione

eseguite ad ogni ciclo

Page 22: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (22 di 70)

Esercizi

1. Disegnare la struttura del ciclo for;

2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore;

3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uC che risponda alle seguenti specifiche:• Acquisisca lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

Page 23: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (23 di 70)

Ciclo per un uC

true

T

F

funzione

iniziallizz.

start

end

Ciclo infinito

Page 24: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (24 di 70)

Ciclo per un uC

true

T

F

funzione

iniziallizz.

start

end

... //istruzioni di inizializzazione

while(1){

... //istruzioni eseguite dal      // uC durante il suo lavoro }

Page 25: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (25 di 70)

Esercizi

1. Disegnare la struttura del ciclo for;

2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore;

3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uC che risponda alle seguenti specifiche:• Acquisisca lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

Page 26: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (26 di 70)

“4 eventi”

IN = 0

T

F

evento

return

Aspetta che l'input “esca” dallo stato basso

Qui c'è stato il fronte positivo

Att.ne: che succede se rientro “troppo presto”?

Specifiche:

• Acquisire lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

Page 27: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (27 di 70)

“4 eventi”

IN = 0

T

F

evento

return

Inizio “test”

fine “test”

Inizio nuovo “test”

IN:

Così uscirei subito ma in realtà non c'è stato il nuovo fronte positivo

Page 28: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (28 di 70)

“4 eventi”

IN = 0

T

F

evento

IN = 1

T

F

return

Aspetta che l'input “esca” dallo stato basso

Qui c'è stato il fronte positivo

Aspetta che l'input torni nello stato basso

Specifiche:

• Acquisire lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

Page 29: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (29 di 70)

“4 eventi”

IN = 0

T

F

evento

IN = 1

T

F

return

Specifiche:

• Acquisire lo stato di un ingresso;

• Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento;

• Una uscita deve diventare alta ogni 4 eventi.

start

true

T

e < 4

T

F

evento

e ← e + 1

e ← 0

out ← 0

out ← 1

end

Page 30: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (30 di 70)

Architettura e organizzazione

di un microprocessore

Page 31: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (31 di 70)

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

Page 32: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (32 di 70)

Architettura e organizzazione di un uP

● Architettura: descrive il computer dal punto di vista dell'utente

● Set delle istruzioni● Registri disponibili● Gestione della memoria● Gestione delle eccezioni …

● Organizzazione: descrive come è implementata l'architettura

● Struttura della pipeline● Chache● Soluzioni hardware ...

Page 33: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (33 di 70)

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 34: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (34 di 70)

Astrazione nella progettazione

● 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?

– → livelli di astrazione che abbiamo visto

Page 35: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (35 di 70)

Elementi fondamentali di una CPU

ALU

REG

REG

MDR

PC

MAR

FUNZ

AI BUSESTERNI

DECODER

IR

R0

R1

Rn

BANCODI

REGISTRI

...

SR

incrementer

Page 36: Microelettronica - ssalvatori.altervista.orgssalvatori.altervista.org/Microelettronica-files/Slide2017/4_Arch... · S. Salvatori - Microelettronica – marzo 2017 – (1 di 70) Microelettronica

S. Salvatori - Microelettronica – marzo 2017 – (36 di 70)

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