Level 5 Analogico — Digitale Problem-oriented language level Translation (compiler) Level 4 Nei calcolatori: segnale elettrico rappresenta l’informazione. Assembly language level Translation (assembler) Level 3 Operating system machine level Level 2 Instruction set architecture level Level 1 Microarchitecture level Level 0 Digital logic level Due modi • telegrafo: segnale presente - assente (segnale digitale) • telefono: segnale modulato (segnale analogico) Calcolatore digitale: come il telegrafo, rappresentazione astratta dell’informazione – tolleranza ai disturbi – semplicità di progettazione – affidabilità. Partial interpretation (operating system) Interpretation (microprogram) or direct execution Hardware (Architettura degli Elaboratori) porte logiche, algebre booleane 1 / 51 (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 / 51 A D B E C F (Architettura degli Elaboratori) Combinatori – Sequenziali porte logiche, algebre booleane porte logiche, algebre booleane 4 / 51 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 / 51 Circuiti logici Tensione – segnale — cifra (binaria). • 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 progettazione: ogni circuito combinatorio può essere ottenuto collegando in modo opportuno un insieme di porte logiche. 5 / 51 (Architettura degli Elaboratori) Porte logiche fondamentali porte logiche, algebre booleane 6 / 51 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 degli ingressi è a 1 (e zero altrimenti) • La porta logica NOT ha uscita 1 se l’ingresso ha valore 0 (e zero altrimenti). OR Le porte AND, OR possono avere più di 2 ingressi (con il comportamento descritto sopra). NOT Che tipo di circuiti realizzano le porte logiche? (Architettura degli Elaboratori) porte logiche, algebre booleane 7 / 51 (Architettura degli Elaboratori) porte logiche, algebre booleane 8 / 51 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. 9 / 51 (Architettura degli Elaboratori) Realizzazione fisica porte log. +VCC +VCC +VCC Vout V1 Vout Vout V2 Vin V1 V2 Emitter Base (Architettura degli Elaboratori) (a) porte logiche, algebre booleane (b) (c) 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 / 51 (Architettura degli Elaboratori) porte logiche, algebre booleane Formale: tabelle di verità 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 / 51 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 / 51 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 / 51 Tabella di verità • Descrizione esaustiva del comportamento: per (Architettura degli Elaboratori) 10 / 51 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 / 51 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 / 51 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 / 51 (Architettura degli Elaboratori) Sintesi di circuiti porte logiche, algebre booleane 18 / 51 Mappe di Karnaugh Metodo per ottenere circuiti minimali. Il metodo precedente per la sintesi di circuiti crea circuiti con più porte logiche del necessario. 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 Può essere migliorato: • spesso un gruppo di porte AND può essere sostituito da un’unica porta AND. • ossia: un gruppo di 1 viene rappresentato da un unica porta AND. 19 / 51 (Architettura degli Elaboratori) Mappe di Karnaugh: tabelle di verità (nella forma di matrici) dove: sono evidenziati i gruppi di 1 realizzabili con un unica porta AND • appaiono in un rettangolo di 2, 4, 8 . . . (2n ) elementi; • nell’AND associato ad un gruppo di 1, le variabili che nel gruppo assumano entrambi i valori sono omesse dalla formula; • i lati opposti sono considerati contigui. (Architettura degli Elaboratori) porte logiche, algebre booleane 21 / 51 porte logiche, algebre booleane 20 / 51 Esempi di mappe di Karnaugh: F = AC + BC + AB La variabile che assume entrambi i valori, nella coppia di 1 adiacenti, può essere omessa. (Architettura degli Elaboratori) Mappe di Karnaugh: porte logiche, algebre booleane 22 / 51 Mappe di Karnaugh: Esercizio per casa. F = V3 V4 + V2 V3 + V1 V3 (Architettura degli Elaboratori) porte logiche, algebre booleane Principio di dualità: versione duale delle mappe di Karnaugh. 23 / 51 (Architettura degli Elaboratori) porte logiche, algebre booleane 24 / 51 Algebra booleana Algebra booleana Algebra dei valori di verità: • ideata nell’ambito della logica [Bool], • formalizzazione linguaggio, • la valutazione della verità di una espressione viene ridotta ad un calcolo logico, • solo due possibili valori: vero (1), falso (0). Descrive un circuito con un espressione algebrica, utile per: • rappresentare sinteticamente un circuito, • trasformare un circuito in uno equivalente. [George Bool (1815-1864), Claude Shannon (1916-2001)] (Architettura degli Elaboratori) porte logiche, algebre booleane Formalizzazione del linguaggio porte logiche, algebre booleane · + AND OR NOT ∧ ∨ ¬ TRUE FALSE 1 0 t f (Architettura degli Elaboratori) porte logiche, algebre booleane 28 / 51 Rappresentare un circuito mediante un espressione algebrica [Shannon] circuiti logici porte logiche input output segnali intermedi 29 / 51 Corrispondenza circuiti espressioni (Architettura degli Elaboratori) AB A ⇒ ⇒ ⇒ ⇒ ⇒ funzioni, espressioni operazioni base argomenti (variabili) valore dell’espressione sotto-espressioni porte logiche, algebre booleane 30 / 51 Corrispondenza circuiti espressioni B Ai circuiti formati da porte logiche posso associare espressioni (e viceversa). AB + AC A A(B + C) B AC C A B D C D = ((A + B) + C) 31 / 51 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) porte logiche, algebre booleane (binaria) (binaria) (unaria) Applicazioni all’informatica Coincide con quello delle porte logiche: • (A AND B) è vero se A è vero e anche B è vero (piove e splende il sole) • (A OR B) è vero se almeno uno tra A e B sono veri (o piove o splende il sole) • (NOT A) è vero se A è falso non piove (Architettura degli Elaboratori) prodotto logico somma logica negazione Valori 27 / 51 porte logiche, algebre booleane 26 / 51 Operazioni Comportamento delle operazioni (Architettura degli Elaboratori) porte logiche, algebre booleane Algebra booleana 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) (Architettura degli Elaboratori) 25 / 51 (Architettura degli Elaboratori) (b) porte logiche, algebre booleane 32 / 51 Corrispondenza espressioni - circuiti Corrispondenza non perfetta E = ((A · B) + (B · C) + (A · C)) · (A · B · C) Ambiguità nel passaggio da formule a rircuiti. Circuiti senza espressione algebrica corrispondente. A • circuiti in cui un’uscita comanda più ingressi; • circuiti con retroazione: B S Q E C Clock Q R C’è maggiore libertà nel collegare fili che nello scrivere espressioni. (Architettura degli Elaboratori) porte logiche, algebre booleane 33 / 51 (Architettura degli Elaboratori) porte logiche, algebre booleane 34 / 51 disegnare è più complicato. Convenzioni nella scrittura Proprietà algebriche Le usali convenzioni dell’algebra: • il segno di prodotto può essere omesso, e volte indicato con (×, ∗); • il prodotto ha precedenza sulla somma; • si omettono le parentesi per l’associatività delle operazioni (somma, prodotto) (A + B) + C = A + B + C = A + (B + C). Inoltre: • la negazione può essere anche rappresentata da 0 (A0 = A); (Architettura degli Elaboratori) porte logiche, algebre booleane 35 / 51 Ogni algebra caratterizza da un insieme di proprietà (equazioni). Proprietà booleane utili per: • stabilire equivalenze tra circuiti; • semplificare circuiti. (Architettura degli Elaboratori) Equazioni booleane porte logiche, algebre booleane Equazioni 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 (Architettura degli Elaboratori) A=A porte logiche, algebre booleane 37 / 51 (Architettura degli Elaboratori) Considerazioni Associativa, Distributiva (somma sul prodotto), Elemento nullo ·, sono valide anche per l’algebra degli interi (le altre no). • Tutte equazioni della algebra degli interi restano valide tenuto conto che negazione non corrisponde a opposto o inverso. • Equazioni dimostrabili mediante tabelle di verità, oppure mediante argomenti di logica. porte logiche, algebre booleane A=A porte logiche, algebre booleane 38 / 51 Semplificazione di espressioni • Alcune equazioni: Identità, Commutativa, (Architettura degli Elaboratori) 36 / 51 39 / 51 • Le proprietà Identità, Elemento nullo permettono 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) porte logiche, algebre booleane 40 / 51 Esempi di applicazione Principio di dualità Attraverso le regole indicate si possono semplificare le seguenti espressioni. • De Morgan: AB + C, ABC, A + B + C. • Distributiva: ((A + B)C + A)B • Con alcune regole: A(0 + B) + 1B + 0 ABC + ABC + ABC + 0. Assorbimento: mostrare come la proprietà di Assorbimento si possa derivare dalle altre (Identità, Distributiva, Elemento nullo). (Architettura degli Elaboratori) porte logiche, algebre booleane 41 / 51 Se nelle definizioni (tabelle di verità) di +, ×, e scambiamo tra loro le operazioni + e × e le costanti 0 e 1, otteniamo delle definizioni valide. Esempi: tabelle di verità, proprietà algebriche. (Architettura degli Elaboratori) Principio di dualità Esempio: • E = A + A · (B + 0) e = A · (A + B · 1) • E L’espressione duale fornisce risultati duali. Da cui: f1 = E f2 . Proprietà: se E1 = E2 allora E Nell’algebra booleana, ogni uguaglianza ha una duale. porte logiche, algebre booleane 43 / 51 Definizione mediante espressioni porte logiche, algebre booleane NAND NOR XOR XNOR A B A NAND B A NOR B A XOR B A XNOR B 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 (Architettura degli Elaboratori) porte logiche, algebre booleane 44 / 51 Rappresentazione grafica 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 (Architettura degli Elaboratori) 42 / 51 Altre porte logiche 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. (Architettura degli Elaboratori) porte logiche, algebre booleane NAND 45 / 51 (Architettura degli Elaboratori) NAND e NOR: porte logiche complete NOR XOR porte logiche, algebre booleane 46 / 51 NAND e NOR: porte logiche complete A A Ogni “polinomio” può essere implementato con porte NAND: A A (a) A1 · A2 · A3 + B1 · B2 + C1 · C2 · C3 · C4 = A A AB A1 · A2 · A3 + B1 · B2 + C1 · C2 · C3 · C4 = A+B B B A1 · A2 · A3 · B1 · B2 · C1 · C2 · C3 · C4 Esercizio: come rappresentare, in modo efficiente, ogni circuito con porte NOR? A AB A A+B B B (b) (Architettura degli Elaboratori) (c) porte logiche, algebre booleane 47 / 51 (Architettura degli Elaboratori) porte logiche, algebre booleane 48 / 51 Bolla di inversione può apparire anche all’ingresso delle porte logiche: AB = A+B A+B = A+B A+B (c) (Architettura degli Elaboratori) AB (b) (a) AB = = AB (d) porte logiche, algebre booleane 49 / 51 Esercizi • Esemplificare le espressioni: • A + AB • A B C + AB C + A BC + ABC • A + B + C + ABC • ABC + ABC + ABC + ABC sia algebricamente che attraverso le mappe di Karnaugh. (Architettura degli Elaboratori) porte logiche, algebre booleane 51 / 51 Algebre di Bool in matematica 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) (Architettura degli Elaboratori) porte logiche, algebre booleane 50 / 51