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 (109 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