Sistemi digitali : Riepilogo
Sistemi Elettronici
Programmabili
Sistemi Elettronici Programmabili:
Riepilogo
1
Logic Devices
•
•
•
•
•
ASIC (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
Sistemi Elettronici Programmabili:
Riepilogo
2
FPGA: Architettura
IO
LE
V
R
C
HRC
IM
LE
LE
IM
LE
IM
LE
LE
IM
LE
IM
IO
IM
V
R
C
IO
HRC
LE
V
R
C
LE
HRC
LE
LE
IM
LE
IM
LE
IM
LE
LE
LE
IO
Sistemi Elettronici Programmabili:
Riepilogo
3
FPGA: Logic Element (Block)
S
OUT
IN[3:0]
LUT
D
SET
CLR
Q
Q
CLK
CLR
Sistemi Elettronici Programmabili:
Riepilogo
4
FPGA: LUT – Look Up Table (2 Ingressi)
IN[0]
IN[1]
AND
OR
XOR
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
ADD[0]
ADD[1]
OUT
OUT
OUT
Memory
Words
1 Bit
OUT
IN[1:0]
CDI
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
D
SET
CLR
CDO
Q
Q
CLK
Sistemi Elettronici Programmabili:
Riepilogo
5
Unità (Sottosistemi) del Calcolatore
• Processore, per eseguire il programma
• Unità di ingresso-uscita (o di input-output, I/O), per introdurre dati ed
emettere risultati
• Unità di memoria, per contenere e conservare informazioni (dati e
programmi
• Sistema di collegamento: bus
Sistemi Elettronici Programmabili:
Riepilogo
6
Istruzione e Dato
• L’elemento di informazione minimo trattato dal calcolatore è la
parola:
– parola: sequenza di bit 0 o 1 (p. es. 8, 16, 32 o 64 bit)
• Sia il dato (intero, carattere, ecc) sia l’istruzione macchina sono
codificati in parole, secondo varie rappresentazioni.
• Dati e istruzioni complessi sono codificati mediante sequenze di più
parole.
• Il processore elabora parole e la memoria contiene parole (e anche
il sistema di I/O scambia parole).
Sistemi Elettronici Programmabili:
Riepilogo
7
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:
Contatore di programma
(program counter, PC)
Registro di istruzione
(instruction register, IR)
•Registri di uso generale o
banco di registri (register file,
R0 – Rn1)
•Registro di indirizzo di
memoria (memory address
register, MAR) e registro dei
dati di memoria (memory
data register, MDR)
Sistemi Elettronici Programmabili:
Riepilogo
8
Architetture Interne dei Microprocessori
Sistemi Elettronici Programmabili:
Riepilogo
9
Il microcalcolatore
ADD (n-1)
ADD (n)
Decoder
nCS0
nOE
CPU
Flash
nWE
nOE
nWE
nCS1
nOE
RAM
nWE
Data
Sistemi Elettronici Programmabili:
Riepilogo
10
Microprocessore
DATA[DW:0]
Data
Register
Index
Register 0
Index
Register 1
Program
Caunter
General
Register 0
Mode
Register
Accumulator
General
Register 1
Stack Pointer
General
Register 2
Instruction
Decoder
ALU
Internal
Controls
Index
Register n
Address Logic
ADD[AW:0]
General
Register n
Address
Register H
Instruction
Register
Status
Sequencer
Address
Register L
CTRL
Interrupt
Control Unit
DMA Controls
Sistemi Elettronici Programmabili:
Riepilogo
11
Linguaggio macchina
Il linguaggio macchina in forma simbolica è chiamato
anche linguaggio assemblatore o assembly language.
L’istruzione macchina è il compito elementare eseguibile da
parte del processore.
Il processore preleva (fetch) da memoria centrale
l’istruzione macchina da eseguire correntemente.
Il processore decodifica (decode) l’istruzione, cioè la
analizza e ne determina il significato.
Il processore esegue (execute) l’istruzione, elaborando i
dati opportuni e producendo il risultato.
Sistemi Elettronici Programmabili:
Riepilogo
12
Dati e istruzioni in memoria
La memoria contiene istruzioni macchina (programma) e dati (da elaborare).
L’istruzione macchina, in forma numerica cioè eseguibile da parte del
processore, è contenuta in una o più parole di memoria consecutive, come
il dato.
L’istruzione macchina in forma simbolica, facilmente leggibile, come per
esempio
NOME arg1, arg2, …
commento
indica con “NOME” (o codice mnemonico) l’operazione: MOVE (carica,
memorizza o copia dato), ADD (addiziona dato), SUB (sottrai), ecc. e con
“arg1, arg2, ecc. i dati su cui l’istruzione deve operare (sorgente) o dove
scrivere il risultato (destinazione), o anche, nelle istruzioni di salto, dove
reperire la prossima istruzione da eseguire (salto).
Istruzioni a due, tre o un argomento.
Normalmente gli argomenti sorgente precedono quelli destinazione.
.
Sistemi Elettronici Programmabili:
Riepilogo
13
Formalismo RTL
• 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.
• 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).
• Indirizzo in parentesi quadra
Sistemi Elettronici Programmabili:
Riepilogo
14
Classi di Istruzione
• Istruzioni di trasferimento (caricamento, memorizzazione e copia)
• Istruzioni aritmetiche e logiche
• Istruzioni di ingresso e uscita (lettura o scrittura di dato da o su
periferica)
• Istruzioni di confronto (confronto tra due dati (uguale, diverso,
minore, maggiore, minore o uguale, maggiore o uguale) o di un dato
con zero, esame di bit o di gruppo di bit
• Istruzioni di manipolazione dati complessi (gestione della pila)
• Istruzioni di controllo del flusso di esecuzione del programma (salto
condizionato e incondizionato, salto a conteggio (per ciclo) salto a
sottoprogramma (routine))
• Istruzioni di controllo del processore (p. e. gestione del meccanismo
di interruzione)
Sistemi Elettronici Programmabili:
Riepilogo
15
Modi di indirizzamento
• Il modo di indirizzamento è un insieme di regole secondo
cui denotare nell’istruzione macchina come:
– reperire il dato da elaborare o la posizione dove andare a
scrivere il risultato dell’elaborazione – modo di dato
– individuare la prossima istruzione da eseguire, quando non si
deve andare di seguito (caso dell’istruzione di salto) – modo di
istruzione
Sistemi Elettronici Programmabili:
Riepilogo
16
Elenco dei Modi
Sistemi Elettronici Programmabili:
Riepilogo
17
Polling
Collegamento delle
periferiche con Polling
• No Hardware aggiuntivo
• No controllo aggiuntivo
• Controllo I/O sincrono con
programma
• Ottimizzazione del codice
• Grande flessibilità
• Spreco di tempo di CPU per
interrogazione periferiche
Sistemi Elettronici Programmabili:
Riepilogo
18
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)
Sistemi Elettronici Programmabili:
Riepilogo
19
Controllore di DMA
•
•
•
•
•
L’accesso diretto alla memoria consente (solo) di scambiare dati tra una
periferica e la RAM senza l’intervento della CPU
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
Sistemi Elettronici Programmabili:
Riepilogo
20
Tipologie di Memorie allo stato
solido
RAM (Random Access Memory)
Volatili
Non Volatili
SRAM (Static RAM)
ROM (Read Only Memory)
Masked ROM
Flip-Flop
Statiche
Velocissime
Cella Grande
Costo per Bit
Taglio ~ 100 Kbit
Programmate in fonderia
Costo per Bit
OTP (One Time Programmable)
Fuse - Antifuse
EPROM (Electrically Programmable ROM)
DRAM (Dynamic RAM)
MOS Floating Gate
Cancellabili mediante UV
Capacità
Dinamiche (Refresh)
Veloci
Cella piccola
Costo per Bit
Taglio ~ 100 Mbit
EEPROM (Electrically Erasable Programmable ROM)
MOS Floating Gate
E-P Random Access
R Lenta, E-P molto lenti
Costo per Bit
SDRAM (Synchronous DRAM)
Capacità
Accesso a burst
Self Refresh
Flash
MOS Floating Gate
P Random Access
E a banchi
R Lenta, P molto lenti, E lentissimo
Costo per Bit
Taglio ~ 100 Mbit
Sistemi Elettronici Programmabili:
Riepilogo
21
Comunicazione seriale
I bit vengono inviati singolarmente (serialmente, uno dopo l’altro) ma fanno
parte di una unità informativa più grande: la WORD
• Modalità Asincrona
TX
data
RX
Gen clock Rx
Gen clock Tx
• Modalità Sincrona
data
TX
clk
RX
Gen clock
Sistemi Elettronici Programmabili:
Riepilogo
22
Comunicazione Seriale: Tx
Tx serializza la WORD inviando i bits che la compongono uno alla volta
CLKRx
CLKTx
DataIn
DataOut
11010011
11010011
Data
Tx
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
D
SET
CLR
TX
Q
Q
CLK
Load
Sistemi Elettronici Programmabili:
Riepilogo
23
Comunicazione Seriale: Rx
Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono
stati ricevuti tutti i bits di cui è composta
CLKRx
CLKTx
DataIn
DataOut
11010011
11010011
D
RX
D
SET
D
Q
SET
D
Q
SET
Q
D
SET
Q
CLR
Q
CLR
Q
Rx
CLR
SET
Data
Q
Q
/n
CLR
Q
CLR
Q
CLK
CLK
1
2
3
n-1 n
…Sistemi…
…Programmabili:
Elettronici
Riepilogo
-
1
2
24
Scarica

Sistemi digitali : Riepilogo