Circuiti combinatori notevoli

Documenti analoghi
Moltiplicatori HW e ALU

La ALU. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Tecniche di semplificazione. Circuiti digitali notevoli

Forme canoniche, circuiti notevoli, criteri di ottimizzazione

Circuiti combinatori notevoli e circuiti aritmetici

Lezione 7 Sommatori e Moltiplicatori

Sommatori e Moltiplicatori. Sommario

Sommatori e Moltiplicatori

Circuiti combinatori notevoli e circuiti aritmetici

Sommatori e Moltiplicatori

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Lezione 7 ALU: Moltiplicazione e divisione

ALU + Bistabili. Sommario

ALU + Bistabili. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Reti combinatorie. Reti combinatorie (segue)

Reti combinatorie (segue) Reti combinatorie. Lezione 2. Architettura degli Elaboratori A. Sperduti 1

Componenti notevoli combinatori

Circuiti di base e ALU. Lorenzo Dematte

Moduli Combinatori. Moduli Combinatori. Corso di Architetture degli Elaboratori

Circuiti combinatori notevoli

Circuiti digitali notevoli: ALU

Circuiti digitali notevoli: ALU

Università degli Studi di Cassino

Circuti AND, OR, NOT Porte logiche AND

Architettura degli Elaboratori

Il Livello Logico-Digitale. Blocchi funzionali combinatori

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Logica binaria. Cap. 1.1 e 2.1 dispensa

Circuiti Combinatori

senza stato una ed una sola

Architettura degli Elaboratori A Modulo 2

Calcolatori Elettronici

La seconda forma canonica Circuiti notevoli. Sommario

una rete combinatoria è un circuito logico avente n ingressi (x 1

Unità Aritmetico-Logica

Moltiplicazione e ALU

Esercitazione del 23/03/ Soluzioni

Componenti di un sistema digitale

Architettura degli Elaboratori. Davide Bertozzi Dipartimento di Ingegneria Università of Ferrara. Componenti Combinatori Standard

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Esercitazioni di Reti Logiche. Lezione 4

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Esercitazioni di Reti Logiche

Es. 05. Addizionatori (Half Adder, Full Adder); sommatori a n bit (con e. complemento a due e sottrazione; overflow.

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Esercitazione del 17/03/2005

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2)

Architetture aritmetiche

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

circuiti combinatori: ALU

Firmware Division & Floating pointer adder

Logica Digitale. Fondamenti di Informatica - Prof. Gregorio Cosentino

Esercizio , (+61,81) CA2: , = , (-61,81)

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Operazioni logiche

Es Soluzioni S = A B. R in. Full. Adder

Virtual CPU (Eniac): parte 2

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Esercizi

Arithmetic and Logic Unit e moltiplicatore

Reti Logiche Combinatorie

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Aritmetica dei calcolatori. La rappresentazione dei numeri

Firmware Division & Floating gpointer adder

Aritmetica dei calcolatori

Multiplexer. Multiplexer 2 a 1 (a 1 bit) e sua implementazione. Multiplexer 2 a 1 (a 32 bit) e sua implementazione

Floating pointer adder & Firmware Division. Sommario

PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

LSS : Reti Logiche: circuiti combinatori

Circuiti combinatori ALU

Firmware Division, UC & Floating pointer adder

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Circuiti Addizionatori

Unita aritmetica e logica. Input e output della ALU. Rappresentazione degli interi. Rappresentazione in modulo e segno. Aritmetica del calcolatore

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Aritmetica binaria e circuiti aritmetici

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

Circuiti combinatori

Porte logiche. Porte logiche. Corso di Architettura degli Elaboratori. Algebra Booleana

I sommatori S R. R in. Full. Adder

Virtual CPU (Eniac): parte 2

Le operazioni. di somma. e sottrazione

Reti Combinatorie: sintesi

Codifica e aritmetica binaria

Mux X I 7..0 O 3 S 2..0 X 1 X 2

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 20 Giugno Attenzione:

Il Processore: l Unità di Controllo della ALU Barbara Masucci

Prefazione del Prof. Filippo Sorbello... VII. Prefazione del Prof. Mauro Olivieri... Prefazione degli autori...

Corso di Architettura degli Elaboratori. Porte logiche (I) Architetture degli Elaboratori. Porte logiche (III) Porte logiche (II)

Virtual CPU Eniac parte 2

Logica Digitale. Fondamenti Informatica 2 - Prof. Gregorio Cosentino

anno scolastico 2009 / 2010 ELETTRONICA per Elettrotecnica ed Automazione

Calcolatori Elettronici A a.a. 2008/2009

Architettura degli elaboratori CPU a ciclo singolo

Progetto di Circuiti Aritmetici

Transcript:

Architettura degli Elaoratori e delle Reti Lezione 5 Circuiti cominatori notevoli F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 5 1 Comparatore! Confronta parole di n it " IN: 2 gruppi di n it " OUT: 1 it A n C " OUT = 1 se i due IN sono uguali " OUT = 0 se diversi. B n 1 C i = A i B i C = C 0 C 1... C n 1 L 5 2

Comparatore! Comparatore a n ingressi: schema circuitale a 0 0 a 0 0 a 1 a 1 1 OUT 1 OUT a n-1 a n-1 n-1 n-1 n porte XNOR + 1 AND ad n ingressi n porte XOR + 1 NOR ad n ingressi L 5 3 Decodificatore (decoder)! n ingressi, 2 n uscite! Il numero espresso sugli ingressi è usato per asserire (porre a 1) la linea di uscita di tale indice " con 4 linee di input e 16 di output (da 0 a 15), se in ingresso arriva il valore 0110, in uscita si alza la linea di indice 5 (la sesta!)! usato per inidirizzare la memoria i 1 i n o 1 o 2 n L 5 4

La funzione decoder L 5 5 Multiplexer! Operatore di selezione " IN: n linee di input (data) k linee di controllo (select) " OUT: 1 linea Il valore fornito sulla linea di controllo viene connessa all uscita la linea di ingresso selezionata. data out! Quante linee di controllo? k = ceil ( log 2 n ) 0 0 select Linee di input: n = 4 Linee di controllo: k = ceil( log 2 4 ) = 2 L 5 6

Multiplexer inario! n = 2, k = 1 " Selezione S apre la porta opportuna " Circuito logico a 3 ingressi, 1 uscita S X 0 X 1 C 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 C = SX 0 X 1 + SX 0 X 1 + SX 0 X 1 + SX 0 X 1 = = SX 0 + SX 1 L 5 7 Sintesi Multiplexer in forma canonica POS C = ( S + X 0 + X 1 )( S + X 0 + X 1 )( S + X 0 + X 1 )( S + X 0 + X 1 ) = " a = S + X # 1 $ = S + X 0 [( )( + X 1 )] ( a + X 0 ) a + X 0 = + X 1 [ ( )] = = [ + ( X 1 + X 1 ) + X 1 X 1 ] [ a] = a = = ( S + X 1 )( S + X 0 ) S X 0 X 1 C 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 L 5 8

Multiplexer (Mux) a più vie.! Una sola porta alla volta viene aperta dal segnale S. " Le porte sono mutuamente esclusive. L 5 9 HALF Adder (1 it)! Somma aritmetica tra 2 it " 2 ingressi: addendi: a, " 2 uscite: somma: s riporto: r a HA r out s Taella della verità a somma riporto 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 L 5 10

FULL Adder (1 it)! Gestisce anche il riporto in ingresso r in a " 3 ingressi: " 2 uscite: s, r OUT FA a r in r out s r out s 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 r out s = m 1 + m 2 + m 4 + m 7 r out = m 3 + m 5 + m 6 + m 7 s = ar in = ar in + ar + ar in in + ar + ar in in + ar + ar in in L 5 11 Semplificando le espressioni s = ar in = = ( a )r in + ( a + a)r in = = ( a )r in + ( a )r in = ( ) r in = a r out = ar in = = a( r in + r in ) + ( a + a)r in = = a + ( a )r in L 5 12

Implementazione circuitale s = ( a )r in + ( a )r in = a r out = a + ( a )r in ( ) r in r in r out a s L 5 13 Moltiplicazione inaria 1 1 0 1 1 x (27 10 ) 1 1 1 = (7 10 ) 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 Moltiplicando Moltiplicatore 1 1 0 1 1 1 0 1 1 1 1 0 1 (189 10 ) Prodotto! Come fare il calcolo con circuiti logici? " Possiamo scomporre l operazione in due stadi: " Primo stadio: prodotti parziali si mette in AND ciascun it del moltiplicatore con i it corrispondenti del moltiplicando " Secondo stadio: somme si effettuano le somme (full adder) dei it sulle righe contenenti i prodotti parziali L 5 14

La matrice dei prodotti parziali In inario i prodotti parziali sono degli AND L 5 15 Il circuito che effettua i prodotti L 5 16

Somma prime 2 righe dei prodotti parziali 1 0 1 1 x 0 1 1 1 = 1 1 1 1 0 1 1 + 1 0 1 1 1 1 0 0 0 0 1 + 1 0 1 1 1 1 0 1 1 0 1 L 5 17 Somma della terza riga 1 1 0 1 1 x 1 1 1 = 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 1 1 0 1 0 0 0 1 + 1 1 0 1 1 1 0 1 1 1 1 0 1 L 5 18

Somma prodotti parziali circuito completo Overflow: A e B su: N it # P su: 2N it L 5 19 Valutazione del cammino critico! N = 4 " Ritardo AND = 1 " Ritardo HA = 1 " Ritardo FA = 3 1! Cammino critico = 20 8 5 2 17 17 14 11 20 20 20 17 12 6 2 1 L 5 20

ALU: Arithmetic-Logic Unit ALU: Arithmetic-Logic Unit! Esegue le operazioni aritmetico-logiche +,, x,,... and, or, not, xor, =,,...! Normalmente integrata nel processore " Inizio anni 90 # introduzione con il nome di co-processore matematico " Le ALU non compaiono solamente nei micro-processori! E un circuito cominatorio " Rappresentaile come insieme di funzioni logiche! Opera su parole (N it) " 6502, 8080, Z-80 8 it " MIPS, 80386: 32 it " PowerPC G5, Athlon64: 64 it! Struttura modulare " Blocchi funzionali da 1 it, replicati N volte L 5 21 Struttura MODULARE di una ALU ALU a N it $ N ALU a 1 it (ALU elementari) ALUop Struttura ALU elementare: a 0! Ingressi: Operandi: a k, k Riporto in ingresso: r in Selettore operazione: ALUop 0 ALU 0 y 0 a 1! Uscite: Risultato: y k Riporto in uscita: r out 1 ALU 1 y 1 a 2 ALU op 2 ALU 2 y 2 Calcolo... Selezione a N 1 N 1 ALU N 1 y N 1 L 5 22

Progettazione della ALU! Porta AND / OR " Selezionaile! Componenti: " 1 porta AND " 1 porta OR " 1 Multiplexer (MUX) a Calcolo... ALU op Selezione ALU op y a ALUop = 0 y = AND(a,) ALUop = 1 y = OR(a,) y L 5 23 FULL Adder (1 it)! Gestisce anche il riporto in ingresso " 3 ingressi: a,, r IN " 2 uscite: s, r OUT a r in full adder s r out a r in r out s 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 s = ar in = a r in r out = ar in = a + ( a )r in r in a r out s L 5 24

ALU 1 it Operazioni:! OR, AND, somma r in ALUop! ALUop: 2 it 00: s = a and 01: s = a or 10: s = a + + r in a y r out L 5 25 ALU a 32 it! Come collegare N ALU a 1 it per ottenere ALU a N it?! ALU a N it:! ALU in parallelo, ma... " Propagazione dei riporti " Limite alla velocità di calcolo Flusso dei riporti a 0 0 a 1 1 a 2 2 0 ALUop r IN r OUT r IN ALU 0 ALU 1 r OUT r IN ALU 2 r OUT y 0 y 1 y 2 a N 1 N 1 r IN ALU r N 1 OUT y N 1 Flusso di calcolo L 5 26

Sottrazione! Sottrazione addizione dell opposto: a = a + ( ) " Posso farlo con gli stessi circuiti dell addizione, ma devo costruire a partire da! Complemento a 2: = not() + 1 " Inversione logica it-a-it " Aggiunta della costante 1 : pongo r in (0) = 1 Inversione logica it-a-it: Invertitore: If (inverti=1) f = ~ else f = invertib f 0 0 0 0 1 1 1 0 1 f = XOR invertib invertib f 1 1 0 L 5 27 ALU - it i-esimo Operazioni: AND, OR, +, Propagazione riporti: r in (i) = r out (i-1) i = 1, 2, 3,...31 Addizione: r in (0) = 0, invertib = 0 invertib ALUop Sottrazione: r in (0) = 1, invertib = 1 FA r out L 5 28

Comparazione (confronto)! Comparazione: if a < then y = 1 (y = 0...01) " Fondamentale per dirigere il flusso di esecuzione (test, cicli...) if (a<) y = [ 0 0 0 0 1 ] else y = [ 0 0 0 0 0 ]! Implementazione: if ALUop = comparazione then y(i) = 0, i = 1, 2, 3,..., N 1 if (a < ) y(0) = 1 else y(0) = 0 Devo: " Imporre tutti i it di y (tranne y 0 ) a 0; " Calcolare y 0 in ase alla condizione a< L 5 29 Come sviluppare la comparazione?! IDEA: in complemento a 2, il MSB della somma (it di segno) = 1 per numeri negativi # s MSB = 1 a < a < 0 # s MSB = 1 Implementazione:! Nuovo ingresso: LESS IF:ALUop = comparazione # s i = LESS i! Operazioni: " Calcolare la differenza a (senza mandarla in uscita) " Inviare l uscita del sommatore del MSB a LESS di ALU 0 s N 1 LESS 0 " Questa uscita viene chiamata segnale di set L 5 30

ALUi con comparatore Less(i) 0 i = 1, 2, 3,... N 1 Less(0) s 31 iff (a < ) & (S = comparazione) invertib r in ALUop a i i Less(i) r out L 5 31 Overflow! Esempio decimale: " a + = c dove a,,c tutti codificati con 2 cifre decimali " a = 19, = 83 " Overflow: 19 + 83 = (1)02! Supponendo il MSB dedicato al it di segno... " 019 + 083 = 102 " L overflow modifica il MSB (in compl. a 2, dedicato al segno)! Overflow nella somma quando: a + = s, a > 0, > 0 MSB di a e = 0, MSB di s = 1 a + = s, a < 0, < 0 MSB di a e = 1, MSB di s = 0! Si può avere overflow con a e di segno opposto? L 5 32

Circuito di riconoscimento dell overflow! 3 ingressi, tutti dalla ALU N 1 : " MSB di a, e somma: a N 1 N 1 s N 1 a 31 31 s 31 overflow 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 a 31 31 s 31 Overflow detector over flow L 5 33 Overflow Overflow nella differenza: 019 ( 083 ) = 102! Overflow nella differenza quando: a + ( ) = s, a > 0, ( ) > 0 MSB di a e ( ) = 0, MSB di s = 1 a + ( ) = s, a < 0, ( ) < 0 MSB di a e ( ) = 1, MSB di s = 0 + : MSB di : MSB di ( ) = MSB di NOT() $ +/ : MSB di f invertib f! Utilizzando f, a valle dello XOR, anziché, il rivelatore di overflow funziona sia per la somma che per la differenza! L 5 34

Circuito di riconoscimento dell overflow! 3 ingressi, tutti dalla ALU31: " MSB di a, e somma: a 31 31 s 31 a 31 f 31 s 31 overflow 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 a 31 f 31 s 31 Overflow detector over flow L 5 35 Struttura ALU N 1 con Overflow detector invert_b r in ALUop a N 1 y N 1 N 1 less N 1 =0 less 0 ALU N 1 Overflow L 5 36

ALU completa a 32 it! InvertiB e r IN (0) sono lo stesso segnale Test di uguaglianza:! Operazioni necessarie " Impostare una differenza. " Effettuare l OR di tutti i it somma. " Uscita dell OR = 0 i due numeri sono uguali Operazioni possiili: " AND " OR " Somma / Sottrazione " Comparazione " Test di uguaglianza L 5 37 ALU a 32 it: struttura finale ALUop ALUop funzione 000 and 001 or 010 + (add) 110 (su) 111 set less than L 5 38