6. … Livello delle applicazioni specifiche 5. Livello dei linguaggi

A.A. 2016/17
Marco Tarini - Università dell'Insubria
Università degli Studi dell’Insubria
Dipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Il Livello Logico-Digitale
Porte logiche
Algebra di Boole
Marco Tarini
Dipartimento di Scienze Teoriche e Applicate
[email protected]
6.
5.
4.
3.
2.
1.
0.
-1.
-2.
I livelli nei moderni calcolatori
… Livello delle applicazioni specifiche
Livello dei linguaggi applicativi
Livello del linguaggio assemblatore
Livello del sistema operativo
Livello dell’Instruction Set (ISA)
Livello della microarchitettura
Livello logico
... Livello dei dispositivi ...
... (fisica dello stato solido) ...
Architettura degli elaboratori
Architettura degli elaboratori - Porte logiche & Algebra di Boole
1
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Segnali e informazioni
Per elaborare informazioni, occorre rappresentarle (o codificarle)
Per rappresentare (o codificare) le informazioni si usano segnali
I segnali devono essere elaborati, nei modi opportuni, tramite
dispositivi di elaborazione
Architettura degli elaboratori
-3-
Porte logiche
Il segnale binario
Segnale binario: una grandezza che può assumere due valori distinti,
convenzionalmente indicati con 0 e 1
s 0, 1
Qualsiasi informazione è rappresentabile (o codificabile) tramite uno o
più segnali binari (per esempio i caratteri del codice ASCII)
Architettura degli elaboratori
-4-
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
2
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Il segnale binario
Il segnale binario è adottato per convenienza tecnica
In linea di principio si potrebbe usare un segnale ternario o a n
valori
Rappresentazione fisica del segnale binario: si usano svariate
grandezze fisiche
tensione elettrica (la più usata)
corrente elettrica
luminosità
e altre grandezze fisiche ancora ...
Architettura degli elaboratori
-5-
Porte logiche
Circuiti digitali
L’elaborazione di segnali (o informazioni) binarie è oggi svolta
principalmente tramite tecnologie microelettroniche (e in parte anche
ottiche)
I circuiti microelettronici che elaborano segnali (o informazioni) binari si
chiamano circuiti digitali (o circuiti numerici, o circuiti logici)
Architettura degli elaboratori
-6-
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
3
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Il segnale binario
Elaborazione del segnale binario:
porte logiche
Reti
Combinatorie (realizzano funzioni)
Sequenziali (hanno uno stato, cioè una “memoria”)
Sono tutti circuiti digitali
Architettura degli elaboratori
-7-
Porte logiche
Porte logiche
livello microarchitettura:
i circuiti digitali sono formati da componenti digitali elementari,
chiamati porte logiche
livello logico:
Le porte logiche sono i circuiti minimi per l’elaborazione di
segnali binari
livello dei dispositivi:
il transistor è l’elemento funzionale fondamentale per la
costruzione di porte logiche
Livello della microarchitettura
Livello logico
Livello dei dispositivi
Architettura degli elaboratori
-8-
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
4
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Tipi di porte logiche
Classificazione per funzione implementata:
porta NOT, porta AND, porta OR, ...
Classificazione per numero di ingressi: porte a 1 ingresso, porte a 2
ingressi, porte 3 ingressi, e così via ...
Architettura degli elaboratori
-9-
Porte logiche
Porte logiche fondamentali
Siamo interessati ad un insieme di porte logiche che ci consenta di
realizzare qualunque funzione.
Sarebbe anche opportuno che l’insieme fosse piccolo
(per semplificare la progettazione)
La teoria ci dice che esistono diversi insiemi minimi di operazioni
Noi vedremo l’insieme composto da: { NOT , AND , OR }
Sono operazioni elementari,
ciascuna implementata da una porta logica
Consentono di realizzare qualsiasi funzione :-)
Non è un insieme minimo
Architettura degli elaboratori
- 10 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
5
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Porta NOT (invertitore, negatore)
Simbolo funzionale
A
Tabella delle verità
A X
0 1
1 0
X
A
L’uscita vale 1 se
e solo se
l’ingresso vale 0
L’uscita vale 0 se
e solo se
l’ingresso vale 1
X
simbolo semplificato
Architettura degli elaboratori
Porte logiche
- 11 -
Porta AND
Simbolo funzionale
A
B
Tabella delle verità
X
(a 2 ingressi)
L’uscita vale 1 se e
solo se entrambi gli
ingressi valgono 1
Architettura degli elaboratori
A
0
0
1
1
- 12 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
B
0
1
0
1
X
0
0
0
1
Porte logiche
6
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Porta OR
L’uscita vale 1 se e
solo se almeno un
ingresso vale 1
Simbolo funzionale
A
B
Tabella delle verità
A
0
0
1
1
X
(a 2 ingressi)
B
0
1
0
1
X
0
1
1
1
NB: è un “or”
inclusivo
Architettura degli elaboratori
- 13 -
Porte logiche
Generalizzazioni
Alcuni tipi di porte a 2 ingressi si possono generalizzare a 3, 4, ecc.
ingressi
Le due porte a più ingressi maggiormente usate sono la porta AND e la
porta OR
Tipicamente si usano AND (o OR) a 2, 4 o 8 ingressi
(raramente più di 8)
Architettura degli elaboratori
- 14 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
7
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Porta AND a 3 ingressi
Tabella delle verità
Simbolo funzionale
A
B
A
0
0
0
0
1
1
1
1
X
C
L’uscita vale 1 se e
solo se tutti gli
ingressi valgono 1
Architettura degli elaboratori
- 15 -
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
X
0
0
0
0
0
0
0
1
Porte logiche
Realizzazione ad albero
La porta AND a 3 ingressi si può realizzare come albero di porte AND
a 2 ingressi
A
B
X
C

ma non è l’unico modo, es
(circuito funzionalmente
equivalente)
(= esegue la stessa funzione
degli input)
Architettura degli elaboratori
A
B
C
A
B
C
- 16 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
X
X
Porte logiche
8
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Porta OR a 3 ingressi
Tabella delle verità
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
Architettura degli elaboratori
X
0
1
1
1
1
1
1
1
Simbolo funzionale
A
B
C
X
L’uscita vale 1 se e
solo se almeno uno
degli ingressi vale 1
- 17 -
Porte logiche
Porte AND e OR a più ingressi
L’uscita X della porta AND a 3 ingressi vale 1 se e soltanto se tutti e tre
gli ingressi A, B e C valgono 1
L’uscita X della porta OR a 3 ingressi vale 1 se e soltanto se almeno
uno tra gli ingressi A, B e C vale 1
Si generalizza a più ingressi nel modo ovvio ...
Architettura degli elaboratori
- 18 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
9
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Costo di una porta logica
Il numero di transistor per realizzare una porta dipende dalla
tecnologia, dalla funzione e dal numero di ingressi
Porta NOT: 1 oppure 2 transistor
Porte AND e OR: 3 oppure 4 transistor
Altre porte:  4 transistor
Architettura degli elaboratori
- 19 -
Porte logiche
Velocità di una porta logica
Tempo di commutazione: il tempo che impiega il circuito a generare
l’uscita dopo che sono cambiati gli ingressi
Tempo di commutazione di un circuito =
max tempo di commutazione di tutti i percorsi da input a output
Tempo di commutazione di un percorso:
somma tempi di commutazione di tutte le porte attraversate
Tempo di commutazione di una porta:
dipende dalla tecnologia,
dalla funzione e dal numero di ingressi
Le porte più veloci (oltre che più piccole) sono tipicamente le porte
NAND e NOR a 2 ingressi: possono commutare in meno di 1
nanosecondo (109 sec, un miliardesimo di sec)
NAND = AND negato
NOR = OR negato
Architettura degli elaboratori
- 20 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
10
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esempio di circuito combinatorio
A
X
B
realizza la funzione espressa da
questa tabella di verità:
(verificare!)
Architettura degli elaboratori
- 22 -
A
0
0
1
1
B
0
1
0
1
X
1
0
1
1
Porte logiche
Esempio di circuito combinatorio
A
X
B
Domande:
quali altri circuiti eseguono la stessa funzione?
ce ne sono di migliori?
(costo complessivo, o tempo di commutazione)
vediamo strumenti per rispondere
a questo tipo di domande
Architettura degli elaboratori
- 23 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
A
0
0
1
1
B
0
1
0
1
X
1
0
1
1
Porte logiche
11
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Algebra di Boole
L’algebra di Boole serve a descrivere matematicamente i circuiti digitali
(o circuiti logici)
Lavoreremo con:
Espressioni che compongono operatori booleani
Regole di trasformazione (equivalenza) tra queste espressioni
Architettura degli elaboratori
Porte logiche
- 24 -
Operatori booleani
Nome
Operazione
Porta associata
X=AB
Porta AND
Inversione
X = /A
Somma logica
X=A+B
Prodotto logico
Porta NOT
Porta OR
A, B e X sono variabili booleane
A, B, X 0, 1
su 2 param
Il prodotto ha precedenza sulla somma
L’inversione ha precedenza su somma e prodotto
(tipicamente: tutti gli op UNARI hanno precedenza su op BINARI)
Architettura degli elaboratori
- 25 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
12
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Operatori booleani
Ciascuno corrisponde a una porta logica
Il funzionamento di qualsiasi operatore booleano si può rappresentare
tramite la tabella delle verità della porta associata
Gli operatori NOT, AND e OR sono quelli fondamentali della logica
classica
Si possono comporre per ottenere tutti gli altri possibili operatori
boolenani
(questo sarebbe vero anche scegliendo insiemi differenti, anche più
piccoli, di «operatori fondamentali»: per es… ? )
Architettura degli elaboratori
Porte logiche
- 26 -
Operatori booleani binari (cioè a 2 ingressi)
Curiosità: quanti possibili operatori booleani binari diversi?
Risposta: tanti quante sono le tabelle di verità possibili cioè…
Elenchiamoli tutte (molte hanno un nome):
AND
AB
0 0
0 1
1 0
1 1
XOR
OR
NAND
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
sempre
0
0
1
0
Architettura degli elaboratori
0
0
1
1
0
1
A
(ignora B)
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
NOR
- 27 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
1
0
1
1
1
0
==
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
\A
(ignora B)
Porte logiche
13
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Operatori booleani
Somma
(op.binario)
0+0=0
0+1=1
1+0=1
1+1=1
Prodotto
Inversione
00=0
01=0
10=0
11=1
/0 = 1
/1 = 0
(op.binario)
(op.unario)
Sono le tabelle delle verità della porta logica OR, AND e NOT,
rispettivamente
Architettura degli elaboratori
Porte logiche
- 28 -
Operatori booleani
Alcune sintassi alternative:
Somma
A+B
A||B
A | B
A or B
AvB
Architettura degli elaboratori
Prodotto
AB
A && B
A & B
A and B
A*B
A∙B
A*B
- 29 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Inversione
/A
!A
~A
not A
A
A
Porte logiche
14