1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili.
Post on 03-May-2015
224 Views
Preview:
Transcript
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)
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
4
PAL: Architettura della GAL16LV8
Output Logic Macro Cell
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
6
FPGA: Logic Element (Block)
CLR
IN[3:0]
Q
QSET
CLR
D
CLK
S
LUT
OUT
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
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)
9
FPGA: Programmazione (2)
CDI LUT LUT LUT LUT CDO
Q
QSET
CLR
DCDI
CLK
CDO
10
FPGA: Logic Element (Block) - ALTERA
11
ALTERA – Stratix: Architecture
12
Micro (Processore, Calcolatore, Controllore)
CPUProgramMemory
DataMemory
IO Peripheral PeripheralIO
μprocessore
μcalcolatore
μcontrollore
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
14
Processore e Memoria
Collegamenti tra unità funzionalie alcuni elementi strutturali interni.
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
16
Architetture Interne dei Microprocessori
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.
18
CARATTERISTICHE SOFTWARE
• Set di istruzioni– Architettura– Gruppi
• Modi di indirizzamento– Inerente– Immediato – Diretto– Indiretto– Implicito– indicizzato
19
Il microcalcolatore
CPU
DecoderFlash
RAM
ADD (n) ADD (n-1)
nCS0
nCS1
nOE
nWE
Data
nOE
nWE
nOE
nWE
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
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
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]
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.
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.
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)
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 …
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
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.
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 ].
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
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.
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
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)
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
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
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
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)
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
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
40
Bus: Sincrono
Master Slave
X Data iData
Enable
Data
Enable
Clock
X Data i+1 Data i+2
Clock
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
42
top related