Level 5 Analogico — Digitale Problem-oriented language level Translation (compiler) Level 4 Assembly language level Level 3 Operating system machine level Nei calcolatori: segnale elettrico rappresenta l’informazione. Due metodi: • telegrafo: segnale presente - assente (digitale) • telefono: segnale modulato (analogico) Translation (assembler) Partial interpretation (operating system) Level 2 Instruction set architecture level Level 1 Microarchitecture level Calcolatore digitale segue il paradigma del telegrafo: – tolleranza ai disturbi, affidabilità – semplicità di progettazione – rappresentazione astratta dell’informazione – less is more. Interpretation (microprogram) or direct execution Hardware Level 0 Digital logic level (Architettura degli Elaboratori) porte logiche, algebre booleane 1 / 46 (Architettura degli Elaboratori) Codifica dell’informazione Dispositivi con una serie di segnali di ingresso (input) e di segnali in uscita (output). In questo caso: logica positiva. Logica negativa: all’assenza di tensione si associa 1. porte logiche, algebre booleane 3 / 46 A D B E C F (Architettura degli Elaboratori) Combinatori – Sequenziali porte logiche, algebre booleane porte logiche, algebre booleane 4 / 46 Porte logiche Due classi di circuiti logici: • COMBINATORI: l’uscita dipende solo dall’ingresso attuale, non c’è memoria. • SEQUENZIALI: l’uscita dipende anche dagli ingressi passati (o dallo stato), hanno memoria della storia passata. (Architettura degli Elaboratori) 2 / 46 Circuiti logici Tensione – segnale — cifra (binaria): bit . • tensione presente: 2 - 3 volt — segnale presente — 1, • tensione assente: ∼ 0 volt — segnale assente — 0. (Architettura degli Elaboratori) porte logiche, algebre booleane Semplici circuiti combinatori. Elementi base della costruzione: ogni circuito combinatorio può essere ottenuto collegando in modo opportuno un insieme di porte logiche. 5 / 46 (Architettura degli Elaboratori) Porte logiche fondamentali porte logiche, algebre booleane 6 / 46 Comportamento delle porte logiche AND • La porta logica AND ha uscita 1 se tutti gli ingressi sono a 1 (e zero altrimenti) • La porta logica OR ha uscita 1 se almeno uno OR degli ingressi è a 1 (e zero altrimenti) • La porta logica NOT ha uscita 1 se l’ingresso ha valore 0 (e zero altrimenti) Le porte AND, OR possono avere più di 2 ingressi (con il comportamento descritto sopra). NOT Come si realizzano le porte logiche? (Architettura degli Elaboratori) porte logiche, algebre booleane 7 / 46 (Architettura degli Elaboratori) porte logiche, algebre booleane 8 / 46 Paragone: elettronica — idraulica Paragone: elettronica — idraulica Fornire un idea intuitiva del significato delle grandezze elettriche. I due sistemi sono governate da leggi fisiche simili. • corrente elettrica, flusso di elettroni (Ampere) — portata, flusso d’acqua; • fili elettrici — tubi di un sistema idraulico; • tensione elettrica (Volt) — pressione, spinta; • batteria - alimentatore — pompa idraulica; • resistenza (Ohm) — strozzatura, resistenza al flusso; (Architettura degli Elaboratori) porte logiche, algebre booleane • interruttore — rubinetto; • condensatore — serbatoio; • transistor — rubinetto regolato da una pressione idraulica. (Architettura degli Elaboratori) 9 / 46 Realizzazione fisica porte logiche +VCC +VCC +VCC Vout V1 Vout Vout V2 Vin V1 V2 Emitter Base (Architettura degli Elaboratori) porte logiche, algebre booleane (b) (a) Informale: • La porta logica OR ha uscita 1 se almeno uno degli ingressi è a 1 (e zero altrimenti) • D ha valore 1 se almeno uno degli ingressi ha valore 1 (D è vero se almeno uno degli ingressi è vero) • E ha valore 1 se esattamente due ingressi hanno valore 1 • F ha valore 1 se tutte tre gli ingressi hanno valore 1 11 / 46 (Architettura degli Elaboratori) porte logiche, algebre booleane Tabella di verità • Descrizione esaustiva del comportamento: per ogni combinazione dei valori di ingresso, specifica i valori di uscita; • una tabella con tante righe quante le combinazioni di ingresso. • Insieme finito di combinazioni di ingresso; • se ci sono n ingressi, le possibili combinazioni sono: 2n . porte logiche, algebre booleane A 0 0 0 0 1 1 1 1 13 / 46 B 0 0 1 1 0 0 1 1 C D E F 0 1 0 1 0 1 0 1 (Architettura degli Elaboratori) Tabella di verità A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 porte logiche, algebre booleane porte logiche, algebre booleane 14 / 46 Tabelle di verità per le porte logiche C D E F 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 (Architettura degli Elaboratori) 12 / 46 (c) Formale: tabelle di verità (Architettura degli Elaboratori) 10 / 46 Descrizione comportamento circuiti Transistor: elemento fondamentale per la realizzazione dei circuiti, amplifica il segnale. Collector porte logiche, algebre booleane NOT A X A NAND X B A 0 1 (a) 15 / 46 X 1 0 NOR A X B A 0 0 1 1 B 0 1 0 1 (b) (Architettura degli Elaboratori) X 1 1 1 0 AND A X B A 0 0 1 1 B 0 1 0 1 X 1 0 0 0 (c) porte logiche, algebre booleane OR A X B A 0 0 1 1 B 0 1 0 1 (d) X 0 0 0 1 A 0 0 1 1 B 0 1 0 1 X 0 1 1 1 (e) 16 / 46 Dal circuito alla tabella di verità Sintesi di circuiti Data una tabella di verità, definire un circuito. AB A B AB + AC A Ricetta (algoritmo): • considero tutte le righe della tabella di verità con uscita 1 • per ciascuna di esse costruisco un circuito che vale 1 solo quando gli ingressi (input) coincidono con gli input associati alla riga, uso porte NOT e AND • riunisco le uscite delle porte AND con una porta OR. A(B + C) B AC C B+C C A B C AB AC AB + AC A B C A B+C A(B + C) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (a) (Architettura degli Elaboratori) (b) porte logiche, algebre booleane 17 / 46 (Architettura degli Elaboratori) porte logiche, algebre booleane Sintesi di circuiti Esercizio Realizzare un circuito con tabella di verità: A B C X 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 Altri metodi: • esisto un metodo duale (principio di dualità: scambio 0 ↔ 1, AND ↔ OR) • mappe di Karnaugh: permette di ottenere circuiti compatti, con poche porte. (Architettura degli Elaboratori) porte logiche, algebre booleane 19 / 46 (Architettura degli Elaboratori) porte logiche, algebre booleane Algebra booleana porte logiche, algebre booleane Algebra dei valori di verità: • ideata nell’ambito della logica [Bool]. • In logica: è necessario formalizzazione linguaggio; • la valutazione della verità di una espressione viene ridotta ad un calcolo; • si considerano solo due possibili valori di verità: vero (1), falso (0). 21 / 46 Formalizzazione del linguaggio porte logiche, algebre booleane (Architettura degli Elaboratori) porte logiche, algebre booleane 22 / 46 Algebra booleana Operazioni (connettivi base) Frasi composte da proposizioni base (atomiche) come: splende il sole — piove — nevica; combinate con l’uso di connettivi (e, o, non): • piove e splende il sole • o piove o splende il sole • non piove • se piove allora – non splende il sole e – non nevica. Si calcola la verità di una frase a partire dalla verità delle asserzioni atomiche. (Architettura degli Elaboratori) 20 / 46 Algebra booleana Descrive un circuito con un espressione algebrica, utile per: • rappresentare sinteticamente un circuito, • verificare l’equivalenza tra due circuiti, • semplificare un circuito: trasformarlo in un circuito equivalente più semplice. [George Bool (1815-1864), Claude Shannon (1916-2001)] (Architettura degli Elaboratori) 18 / 46 23 / 46 AND OR NOT · + ∧ ∨ ¬ prodotto logico somma logica negazione (binaria) (binaria) (unaria) Valori (valori di verità) TRUE FALSE 1 0 t f Connetivi e valori hanno diverse scritture a seconda dell’ambito: logica, progettazione di circuiti. (Architettura degli Elaboratori) porte logiche, algebre booleane 24 / 46 Comportamento delle operazioni Applicazioni all’informatica Rappresentare un circuito mediante un espressione algebrica [Shannon] Coincide con quello delle porte logiche: • l’espressione (A AND B) è vera se A è vera e anche B è vera (es: piove e splende il sole) • (A OR B) è vera se almeno una tra A e B sono vere (es: o piove o splende il sole) • (NOT A) è vera se A è falsa. (es: non piove) (Architettura degli Elaboratori) porte logiche, algebre booleane circuiti logici porte logiche input output segnali intermedi 25 / 46 Corrispondenza circuiti espressioni (Architettura degli Elaboratori) AB A ⇒ ⇒ ⇒ ⇒ ⇒ funzioni, espressioni operazioni base argomenti (variabili) valore dell’espressione sotto-espressioni porte logiche, algebre booleane 26 / 46 Corrispondenza circuiti espressioni B Ai circuiti formati da porte logiche posso associare espressioni (e viceversa). AB + AC A A(B + C) B AC C B+C C A B D C D = ((A + B) + C) (Architettura degli Elaboratori) porte logiche, algebre booleane 27 / 46 A B C AB AC AB + AC A B C A B+C A(B + C) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (a) (Architettura degli Elaboratori) Corrispondenza espressioni - circuiti porte logiche, algebre booleane 28 / 46 Corrispondenza non perfetta E = ((A · B) + (B · C) + (A · C)) · (A · B · C) Ambiguità: un circuito può essere rappresentato con più formule. Alcuni circuiti non hanno una corrispondente espressione algebrica. • circuiti in cui un’uscita comanda più ingressi; • circuiti con retroazione: A B S E C (b) Q Clock Q R (Architettura degli Elaboratori) porte logiche, algebre booleane 29 / 46 disegnare è più complicato. Convenzioni nella scrittura porte logiche, algebre booleane 30 / 46 Equivalenze algebriche Le usali convenzioni dell’algebra: • il segno di prodotto può essere omesso, e volte indicato con × o ∗ (AB, A × B, A ∗ B); • il prodotto ha precedenza sulla somma; • per l’associatività delle operazioni di AND e OR, si possono omettere le parentesi (A + B) + C = A + B + C = A + (B + C). Inoltre: • la negazione può essere anche rappresentata da 0 es: (A + B)0 = A + B; (Architettura degli Elaboratori) C’(Architettura è maggiore libertàportenel collegare fili che nello degli Elaboratori) logiche, algebre booleane scrivere espressioni. 31 / 46 Ogni algebra caratterizza da un insieme di equivalenze. Equivalenze booleane utili per: • stabilire equivalenze tra circuiti; • semplificare circuiti. (Architettura degli Elaboratori) porte logiche, algebre booleane 32 / 46 Equivalenze booleane Equivalenze duali Identità 0+A=A Elem. nullo 1+A=1 Idempoten. A+A=A Inverso A+A=1 Commutat. A+B =B+A Associat. (A + B) + C = A + (B + C) Distribut. A(B + C) = AB + AC Assorbim. A + (A · B) = A De Morgan A+B =A·B Identità 1·A=A Elem. nullo 0·A=0 Idempoten. A·A=A Inverso A·A=0 Commutat. A·B =B·A Associat. (A · B) · C = A · (B · C) Distribut. A + BC = (A + B)(A + C) Assorbim. A · (A + B) = A De Morgan A·B =A+B Negazione Negazione A=A (Architettura degli Elaboratori) porte logiche, algebre booleane 33 / 46 (Architettura degli Elaboratori) Considerazioni Associativa, Distributiva (somma sul prodotto), Elemento nullo ·, sono valide anche per l’algebra degli interi (le altre no). • Tutte equivalenze della algebra degli interi restano valide tenuto conto che negazione non ha nessuna attinenza con le operazioni di opposto o inverso. • Equivalenze dimostrabili mediante tabelle di verità, oppure mediante argomenti di logica. porte logiche, algebre booleane 35 / 46 di eliminare le costanti 0 e 1, dalle espressioni. • Le leggi di De Morgan e Negazione permettono di portare la negazione a livello di variabili. • Le proprietà Commutativa, Associativa, Inverso, Idempotenza e Assorbimento permettono di riordinare i termini ed eliminare doppioni. • La proprietà distributiva permette di riscrivere ogni espressione come somma di prodotti (forma normale) (polinomio). (Architettura degli Elaboratori) • De Morgan: A · B + C, A · B · C, A + B + C. • Distributiva: ((A + B) · C + A) · B • Con alcune regole: A · (1 + B) + 1 · A + B A·B·C·A·B·C (A + B) · (A · B · 0) · (A · B · C) Assorbimento, si può derivare da altre equivalenze: Identità, Distributiva, Elemento nullo. 37 / 46 Esempio: • E = A + A · (B + 0) e = A · (A + B · 1) • E f1 = E f2 . Proprietà: se E1 = E2 allora E (Architettura degli Elaboratori) porte logiche, algebre booleane 38 / 46 Definizione mediante espressioni NAND NOR XOR XNOR B 0 1 0 1 36 / 46 Ogni proprietà booleana resta valida se scambiamo • la costante 0 con la costante 1 (e 1 con 0); • l’operazione + con l’operazione · (e · con +). Formalmente Definizione: data un espressione booleana, E, e si ottiene scambiando tra loro l’espressione duale E le operazioni + e × e le costanti 0 e 1. Altre porte logiche A 0 0 1 1 porte logiche, algebre booleane Principio di dualità Attraverso le regole indicate si possono semplificare le seguenti espressioni. porte logiche, algebre booleane 34 / 46 • Le proprietà Identità, Elemento nullo permettono Esempi di applicazione (Architettura degli Elaboratori) porte logiche, algebre booleane Semplificazione di espressioni • Alcune equivalenze: Identità, Commutativa, (Architettura degli Elaboratori) A=A A NAND B A NOR B A XOR B A XNOR B 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 A NAND B = A · B A NOR B = A + B A XOR B = (A · B) + A · B = (A + B) · (A + B) A XNOR B = A · B + A · B Le porte NAND e NOR possono essere generalizzate ad n ingressi. Una NAND con n ingressi restituisce il valore negato di una porte AND con n ingressi. Esercizio: ha senso definire una porta XOR con n ingressi? Se “sı̀”, descriverne il comportamento. (Architettura degli Elaboratori) porte logiche, algebre booleane 39 / 46 (Architettura degli Elaboratori) porte logiche, algebre booleane 40 / 46 Rappresentazione grafica NAND e NOR: porte logiche complete A A A A (a) A NAND NOR A XOR AB A+B B B A AB A A+B B B (b) (Architettura degli Elaboratori) porte logiche, algebre booleane 41 / 46 NAND e NOR: porte logiche complete porte logiche, algebre booleane può apparire anche all’ingresso delle porte logiche: AB A1 · A2 · A3 + B1 · B2 + C1 · C2 · C3 · C4 = = A+B A+B (a) AB = A+B A+B (c) 43 / 46 (Architettura degli Elaboratori) AB = AB (d) porte logiche, algebre booleane 44 / 46 Esercizi Un insieme A con tre operazioni: +, ×, e due costanti: 0, 1, che soddisfano le proprietà sopra elencate: Identità, Elemento nullo, Inverso, . . . Esempio: (l’insieme delle parti) l’insieme formato dai sottoinsiemi di numeri naturali con le operazioni: unione +, intersezione ×, e complemento , e con le costanti: insieme vuoto, insieme completo. Nella progettazione di circuiti ci si limita all’algebra di commutazione (0, 1) porte logiche, algebre booleane = (b) Algebre di Bool in matematica (Architettura degli Elaboratori) 42 / 46 Bolla di inversione Ogni “polinomio” può essere implementato con porte NAND: A1 · A2 · A3 + B1 · B2 + C1 · C2 · C3 · C4 = A1 · A2 · A3 · B1 · B2 · C1 · C2 · C3 · C4 Nei circuiti integrati vengono impiegate esclusivamente porte NAND o NOR: più economiche da implementare. Esercizio: come rappresentare, in modo efficiente, ogni circuito con porte NOR? (Architettura degli Elaboratori) porte logiche, algebre booleane (c) (Architettura degli Elaboratori) 45 / 46 Esemplificare le espressioni: • A + AB • A B C + AB C + A BC + ABC • A + B + C + ABC • ABC + ABC + ABC + ABC (Architettura degli Elaboratori) porte logiche, algebre booleane 46 / 46