42
1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

Embed Size (px)

Citation preview

Page 1: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

1

RIEPILOGO GENERALE

Sistemi Elettronici Programmabili

Page 2: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

2

Very Large Scale of Integration

3 – Input NAND

Full Custom

Standard Cell

Gate Array

Vengono disegnate tutte le maschereCosti di progetto elevatissimiCosti di realizzazione elevatissimi

Basata su celle predisegnateCosti di progetto ElevatiCosti di realizzazione elevati

Vengono Disegnate le sole interconnessioniCosti di progetto ElevatiCosti di realizzazione meno bassi (Non Riprogrammabili)

(Non Riprogrammabili)

Page 3: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

3

Logic DevicesASIC (Application Specific Integrated Circuit)

• Standard Cell

• Gate Array

PLD (Programmable Logic Devices)

• SPLD (Simple PLD)• PLA (Programmable Logic Array) • PAL (Programmable Array Logic)• GAL (Generic Array Logic)

• CPLD (Complex PLD)

• FPGA

Programmate durante la produzione nella Fab

Programmabili sul campo

Re/Programmabili nel circuito

Page 4: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

4

PAL: Architettura della GAL16LV8

Output Logic Macro Cell

Page 5: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

5

FPGA: Architettura

LE LE LE LE

LE LE LE LE

LE LE LE LE

LE LE LE LE

VRC

VRC

VRC

HRC

HRC

HRC

IO

IO

IO IO

IM IM IM

IM IM IM

IM IM IM

Page 6: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

6

FPGA: Logic Element (Block)

CLR

IN[3:0]

Q

QSET

CLR

D

CLK

S

LUT

OUT

Page 7: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

7

FPGA: LUT – Look Up Table (2 Ingressi)IN[0] IN[1]

OUT

0 0

0 1

1 0

1 1

0

0

0

1

ADD[0] ADD[1] OUT

0

1

1

1

0

1

1

0

OUT

AND OR XOR

Memory Words1 Bit

Q

QSET

CLR

DCDI CDO

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

IN[1:0]

CLK

OUT

Page 8: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

8

FPGA: Programmazione

Q

QSET

CLR

DCDI CDO

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

IN[1:0]

CLK

OUT

CLK

CDI(AND)

CDI(OR)

CDI(XOR)

Page 9: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

9

FPGA: Programmazione (2)

CDI LUT LUT LUT LUT CDO

Q

QSET

CLR

DCDI

CLK

CDO

Page 10: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

10

FPGA: Logic Element (Block) - ALTERA

Page 11: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

11

ALTERA – Stratix: Architecture

Page 12: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

12

Micro (Processore, Calcolatore, Controllore)

CPUProgramMemory

DataMemory

IO Peripheral PeripheralIO

μprocessore

μcalcolatore

μcontrollore

Page 13: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

13

Processore e Memoria

• Processore e memoria sono i due sistemi fondamentali del calcolatore (e sempre necessariamente presenti).

• Il processore contiene svariati registri interni, per comunicare con la memoria:– prelevare le istruzioni del programma– leggere da memoria i dati da elaborare– contenere i dati in elaborazione– scrivere in memoria i risultati dei calcoli

Page 14: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

14

Processore e Memoria

Collegamenti tra unità funzionalie alcuni elementi strutturali interni.

Page 15: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

15

Registri del Processore

• Contatore di programma (program counter, PC):– punta all’istruzione da prelevare ed eseguire

• Registro di istruzione (instruction register, IR):– contiene l’istruzione correntemente in esecuzione

(l’istruzione è codificata in forma numerica) • Registri di uso generale o banco di registri

(register file, R0 – Rn1):– contengono dati (e indirizzi) correntemente in uso

• Registro di indirizzo di memoria (memory address register, MAR) e registro dei dati di memoria (memory data register, MDR):– servono per leggere e scrivere la memoria

Page 16: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

16

Architetture Interne dei Microprocessori

Page 17: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

17

Ruolo del Sistema Operativo

• Normalmente il calcolatore è equipaggiato con un sistema operativo (SO).

• Il SO è un complesso di programmi che danno al calcolatore funzionalità minimali:– caricare e attivare uno o più programmi– gestire le unità funzionali di memoria e I/O– permettere l’esecuzione simultanea di due o più

programmi (processi): concorrenza– permettere la compresenza di più utenti– garantire affidabilità e sicurezza del calcolatore.

Page 18: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

18

CARATTERISTICHE SOFTWARE

• Set di istruzioni– Architettura– Gruppi

• Modi di indirizzamento– Inerente– Immediato – Diretto– Indiretto– Implicito– indicizzato

Page 19: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

19

Il microcalcolatore

CPU

DecoderFlash

RAM

ADD (n) ADD (n-1)

nCS0

nCS1

nOE

nWE

Data

nOE

nWE

nOE

nWE

Page 20: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

20

Microprocessore

Data Register

DATA[DW:0]

Instruction Register

Control Unit

Instruction Decoder

Sequencer

Accumulator

ALU

Status

General Register 0

General Register 1

General Register 2

General Register n

Address Register H

Index Register 0

Index Register 1

Index Register n

Stack Pointer

Program Caunter

Address Logic

Address Register L

ADD[AW:0]

CTRL

Inte

rnal

C

ontr

ols

Interrupt

DMA Controls

Mode Register

Page 21: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

21

Gruppi di istruzioni

• Caricamento (MOV, LD, ST)• Aritmetiche (ADD, SUB,INC, DEC)• Logiche (AND, OR)• Salto condizionato o incondizionato (JMP)• Controllo (NOP, HALT)• Scorrimento (SR, SL, RR, RL)• Set e reset di bit

Page 22: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

22

Linguaggi descrittivi

Register Transfer Instructions basate

sull’accumulatore

Instruction Set

Register Transfer

LD x AC M[x]

STO x M[x] AC

ADD x ACAC+ M[x]

SUB x AC AC- M[x]

AND x AC AC ^ M[x]

OR x AC AC u M[x]

Page 23: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

23

Istruzione Macchina

• Il linguaggio macchina in forma simbolica è chiamato anche linguaggio assemblatore o assembly language.

• L’assemblatore (assembler) è uno strumento SW che esamina il programma in linguaggio macchina simbolico.

• Se non ha errori, lo traduce (o assembla) generandone la forma numerica corrispondente.

• Di seguito si danno le caratteristiche fondamentali che si trovano nelle istruzioni di ogni linguaggio macchina, per un tipo di processore classico con registri interni.

Page 24: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

24

Modello di Processore

• La maggior parte dei processori è costituita da alcuni registri interni e un’unità aritmetica-logica:– banco di registri di uso generale: servono per i dati– registri di uso speciale: servono per il controllo

• I registri interni contengono i dati da elaborare correntemente e varie informazioni di controllo necessarie per eseguire il programma.

• Molti dei registri interni del processore registri sono visibili da parte del programmatore in linguaggio macchina, e si possono nominare nelle istruzioni macchina stesse.

Page 25: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

25

Registri di Uso Speciale

• Contatore di programma o PC (program counter):– contiene l’indirizzo dell’istruzione macchina da

prelevare ed eseguire• Puntatore alla pila o SP (stack pointer):

– contiene l’indirizzo della cima della pila (stack), e si usa per la gestione del sottoprogramma (routine)

• Registro di stato o SR (status register, talvolta indicato come PSW, program status word):– contiene vari bit che indicano lo stato del processore

(modo utente-sistema, bit di esito, controllo di interruzione, e simili)

Page 26: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

26

Forma Simbolica

• Il programmatore denota l’istruzione macchina in forma simbolica, facilmente leggibile, come per esempio:

NOME arg1, arg2, … commento

• Il nome (o codice mnemonico) indica l’operazione: MOVE (carica, memorizza o copia dato), ADD (addiziona dato), SUB (sottrai), ecc

• Gli elementi arg1, arg2, ecc, sono gli argomenti e indicano i dati da elaborare o dove scrivere il risultato, o anche, nelle istruzioni di salto, dove reperire la prossima istruzione da eseguire.

• Il commento è solo ad uso del programmatore …

Page 27: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

27

Istruzione a Due Argomenti

• Istruzione a due argomenti o binaria:

NOME arg1, arg2

• Esempio:

ADD R1, R2– addiziona i contenuti di R1 e R2 e scrivi la somma in

R2, sovrascrivendone il contenuto precedente– R1 è sorgente, R2 è sia sorgente sia destinazione

Page 28: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

28

Simbologia di Base

• L’operatore freccia verso sinistra “” funziona in sostanza come operatore di assegnamento:

destinazione valore origine valore

• Tipicamente l’origine del valore è una costante, un numero contenuto in un registro, una parola di memoria o un’espressione aritmetica tra oggetti di tale genere.

Page 29: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

29

Operatore di Riferimento

• L’indirizzo è un numero (positivo o al minimo nullo) e anche il dato lo è, o lo si può facilmente ridurre a numero (carattere – codice ASCII).

• Come distinguere tra un numero inteso come dato o come riferimento a un contenitore di dato (parola di memoria o registro) ? Cioè, come capire se il numero è dato o indirizzo ?

• Per indicare che un numero sia da intendere come indirizzo (che si riferisce indirettamente a un dato) e non direttamente come dato da elaborare, racchiudilo tra parentesi quadre [ e ].

Page 30: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

30

Periferiche

Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente:

• Control REGister;• Status REGister;• Data REGister;

Questi registri sono generalmente “MAPPATI IN MEMORIA” ossia sono visti come locazioni di memoria nello spazio di indirizzamento

Periph

Interface

CPU

Periph

Interface

Periph

Interface

Periph

Interface

Data Bus

Address Bus

Control Bus

SR

EG

CR

EG

DR

EG

Page 31: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

31

Gestione delle PerifericheLe Periferiche sono generalmente dei dispositivi Slave che dipendono dal Processore che deve quindi provvedere alla loro gestione.

Questa funzione viene espletata principalmente con due tecniche gestite dalla CPU:

1. Polling in cui la gestione è demandata al programma;2. Interrupt attraverso il quale la periferica può richiedere servizioE una tecnica che esclude la CPU dalla gestione,il DMA attraverso il quale si stabilisce

un collegamento diretto tra memoria e dispositivo

PollingInterrupt

Periph

CPU

Periph Periph Periph

INT2

INT1

INT0

INT

Nel controllo da programma, la CPU interroga periodicamente la porta della periferica di interesse, in modo da tenere sotto controllo lo stato della stessa.

Quando la periferica è disponibile a ricevere o trasmettere un dato, la CPU esegue le istruzioni necessarie.

Questo approccio risulta assai poco efficiente, comportando un grosso spreco di tempo da parte della CPU.

Ha il vantaggio di non richiedere hardware dedicato.

La gestione delle periferiche è SINCRONA al programma. Ossia è il programmatore a decidere quando servire la periferica.

Nella gestione mediante Interrupt è la periferica stessa a richiedere servizio mediante un apposito segnale.

Il processore non deve interrogare periodicamente le periferiche.

La gestione delle periferiche è ASINCRONA al programma nel senso che il programmatore non può prevedere quando ci sarà una richiesta di servizio.

Page 32: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

32

Polling: esecuzioneE’ previsto l’accesso alle periferiche in

determinati punti del programma

Si controlla se la periferica 1 ha richiesto il servizio e nel caso si esegue la routine di pertinenza

Si controlla se la periferica 2 ha richiesto il servizio e nel caso si esegue la routine di pertinenza

Se le periferiche richiedono sporadicamente il servizio si ha un uso

non ottimale delle risorse di calcolo

Page 33: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

33

Collegamento con Interrupt

• La CPU controlla lo stato di IINTR• Il registro IE abilita gli Interrupt (può

essere controllato via software)

• Tutti gli interrupt possono essere mascherati tramite il registro IE (interrupt enable) tranne i NMI (interrupt non mascherabili)

Page 34: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

34

Direct Memory Access (DMA)• L’accesso diretto alla memoria consente (solo) di scambiare

dati tra una periferica e la RAM senza l’intervento della CPU (Rigidità)

• Non viene perso del tempo di CPU nello scambio dei dati (la CPU continua ad eseguire il programma principale fino al prossimo cache miss)

• Necessita di hardware (complesso) aggiuntivo

Page 35: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

35

Controllore di DMA• Quando c’è una richiesta di DMA il controllore genera una richiesta alla

CPU (DMAREQ)• La CPU risponde con DMAACK e lascia il controllo del BUS al controllore

di DMA (address BUS e data BUS = Z)• Il controllore genera gli indirizzi per la memoria• La CPU continua l’esecuzione del programma principale

Occorre fornire:

1. Indirizzo di partenza

2. Lunghezza del blocco

3. Direzione del trasferimento

Page 36: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

36

Tipi di Collegamento

Source Destination Monodirezionale

Sour/Dest Sour/Dest Bidirezionale Half Duplex

Sour-Dest Sour-Dest Bidirezionale Full Duplex

Source Destination Seriale

Source Destination Parallela

Page 37: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

37

Bus: Asincrono Monodirezionale

Master Slave

Data i Data i+1 Data i+2Data

Strobe

Data

Strobe

Strobe

Protocollo chiusoMaster Slave

Data i Data i+1 Data i+2Data

Strobe

Data

Strobe

Wait

Wait

Protocollo aperto

(Slave sempre pronto)

Page 38: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

38

Bus: Asincrono Bidirezionale

Master Slave

DataM i DataM i+1 ZData

Strobe

Data

Strobe(Read)

Write

Write

DataS j Z DataS j Z

Write

Read

ZZ

Page 39: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

39

Bus: Asincrono Bidirezionale con Wait

Master Slave

DataM i DataM i+1 ZData

Strobe

Data

Strobe

Write

Write

DataS j Z

Write

Read

Wait

Wait

Z

Page 40: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

40

Bus: Sincrono

Master Slave

X Data iData

Enable

Data

Enable

Clock

X Data i+1 Data i+2

Clock

Page 41: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

41

Tipologie di Memorie allo stato solido

Volatili Non VolatiliRAM (Random Access Memory)

SRAM (Static RAM)Flip-FlopStaticheVelocissimeCella GrandeCosto per BitTaglio ~ 100 Kbit

DRAM (Dynamic RAM)CapacitàDinamiche (Refresh)VelociCella piccolaCosto per BitTaglio ~ 100 Mbit

ROM (Read Only Memory)

Programmate in fonderiaCosto per Bit

EEPROM (Electrically Erasable Programmable ROM)MOS Floating GateE-P Random Access R Lenta, E-P molto lentiCosto per Bit

Masked ROM

MOS Floating GateCancellabili mediante UV

Fuse - AntifuseOTP (One Time Programmable)

EPROM (Electrically Programmable ROM)

FlashMOS Floating GateP Random Access E a banchi R Lenta, P molto lenti, E lentissimoCosto per BitTaglio ~ 100 Mbit

SDRAM (Synchronous DRAM)CapacitàAccesso a burstSelf Refresh

Page 42: 1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili

42