Lezione 7 Sommatori e Moltiplicatori

Похожие документы
Lezione 7 Sommatori e Moltiplicatori

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Firmware Division & Floating pointer adder

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Architettura degli Elaboratori

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

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

Esercitazioni di Reti Logiche. Lezione 4

Aritmetica dei Calcolatori 2

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Componenti di un processore

Moltiplicazioni e Divisioni. G. Michele Pinna (1)

I bistabili ed il register file

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Lezione 3. Sommario. Le operazioni aritmetiche binarie. L aritmetica binaria. La somma La sottrazione La moltiplicazione

Flip-flop, registri, la macchina a stati finiti

Le operazioni. di somma. e sottrazione

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Circuiti integrati. Circuiti integrati

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Indice. Prefazione. sommario.pdf 1 05/12/

Architettura dei computer

Logica combinatoria. La logica digitale

Memorie ROM (Read Only Memory)

Corso di Informatica di Base

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Sommario. Addizione naturale

LEZIONE N 91. Introduzione agli elementi architetturali principali. Roberto Giorgi, Universita di Siena, C116L91, Slide 1

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

Circuiti sincroni Circuiti sequenziali: i bistabili

Aritmetica dei Calcolatori

Circuiti sequenziali e latch

SISTEMI. impostazione SISTEMI. progettazione. Saper utilizzare modelli di circuiti combinatori

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

I circuiti elementari

Rappresentazione dell Informazione

Esame di INFORMATICA Lezione 4

Nel microprocessore 8086 abbiamo una gran quantità di registri

Rappresentazione di numeri interi

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Algebra di Boole. Fondamenti di Informatica per Meccanici Energetici - Biomedici 1. Politecnico di Torino Ottobre Mr. Boole. Variabile booleana

Testi di Esercizi e Quesiti 1

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 2.

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Il Processore: i registri

Rappresentazione dei numeri in un calcolatore

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

I circuiti digitali: dalle funzioni logiche ai circuiti

Implementazione semplificata

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

1 Esercizi in pseudocodice

Macchine combinatorie

Rappresentazione in complemento a 2: caratteristiche generali

Lezione 3. I numeri relativi

1.2f: Operazioni Binarie

I circuiti digitali: dalle funzioni logiche ai circuiti (le SOP)

Somma di numeri binari

Esercizi svolti Y Z. 1. Date le seguenti funzioni logiche ricavare le corrispondenti reti logiche realizzate con porte elementari AND, OR, NOT.

PROGRAMMAZIONE STRUTTURATA

ESERCIZI DEL CORSO DI INFORMATICA

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Informatica. appunti dalle lezioni del 14 e 18/10/2010

Sistemi di numerazione

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Reti Combinatorie: sintesi

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Aritmetica dei Calcolatori Elettronici

Aritmetica binaria sui numeri relativi (somme e sottrazioni) e Unità aritmetiche

Fondamenti di Informatica: Teoria

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Calcolatori: Rappresentazione dei Dati e Aritmetica binaria

Come funzionano i computer

Caratteristiche di un PC

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

Numeri interi positivi

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Elementi di informatica

Транскрипт:

Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 /36 Sommario Sommatori ad anticipazione di riporto Addizionatori modulari Moltiplicatori approccio hardware Moltiplicatori approccio firmware L 7 2/36

Anticipazione di riporto Anticipazione di riporto (carry look-ahead) Approccio per diminuire la latenza della somma Propagazione di riporto: t L = 3N Principio di funzionamento: Si genera un riporto in uscita quando ho almeno due sui tre ingressi (r in, a, b) a b FA r IN r OUT s 0 0 0 riporto 0 + 0 0 = 0 0 0 L 7 3/36 Propagazione e generazione Ho riporto quando ho almeno 2 dei 3 ingressi (r in, a, b) = Due casi possibili: GENERAZIONE: g i Viene generato un riporto allo stadio i, per qualsiasi r in, se: g i = a i b i ; g i = r i,out = a b FA r IN s PROPAGAZIONE: p i Viene generato un riporto allo stadio i, se r in = e (a OR b) = r OUT p i = (a i + b i ) ; p i r i,in = r i,out = L 7 4/36 2

Esempio Calcolo: r 4,out supponiamo r 0,in = 0 0 0 0 0 + 0 0 0 0 = 0 0 0 + 0 0 = 0 0 0 + 0 0 0 = r 4,out = 0 r 4,out = r 4,out = Propagazione: p 4 r 3,out =(a 4 +b 4 )r 3,out = Generazione: g 4 = a 4 b 4 = L 7 5/36 Sviluppo della funzione logica riporto Dato che: r i,out = a i b i + (a i + b i ) r i,in = = g i + p i r i,in r i = r i,out = r i+,in = r i+ Ricavo r 3,out come funzione degli ingressi: a i, b i, r in,0 : r 0,out r,out = g 0 + p 0 r 0,in = g + p r 0,out = g + p g 0 + p p 0 r 0,in r 0,in r 2,out = g 2 + p 2 r,out = g 2 + p 2 (g + p g 0 + p p 0 r 0,in ) = g 2 + p 2 g + p 2 p g 0 + p 2 p p 0 r 0,in r 3,out = g 3 + p 3 r 2,out = = g 3 + p 3 (g 2 + p 2 g + p 2 p g 0 + p 2 p p 0 r 0,in ) = = g 3 + p 3 g 2 + p 3 p 2 g + p 3 p 2 p g 0 + p 3 p 2 p p 0 r 0,in a b FA 4 r 3,out s L 7 6/36 3

Anticipazione di riporto (4 bit) r 3,out = g 3 + p 3 r 2 = g 3 + p 3 (g 2 + p 2 g + p 2 p g 0 + p 2 p p 0 r 0,in ) = = g 3 + p 3 g 2 + p 3 p 2 g + p 3 p 2 p g 0 + p 3 p 2 p p 0 r 0,in a 3 b 3 a 2 b 2 a b a 0 b a 0 0 r 0,in p 3 p 2 p p 0 b 0 g 0 p 3 p 2 p p 0 p g 0 p 3 p 2 p p 0 r 0 p 3 p 2 p g 0 +g p 3 p 2 r 3,out a b g a 2 g 2 b 2 a 3 b 3 g 3 g 3+ +g 2 p 3 Cammino critico = 6 L 7 7/36 Sommario Sommatori ad anticipazione di riporto Addizionatori modulari Moltiplicatori approccio hardware Moltiplicatori approccio firmware L 7 8/36 4

Addizionatori modulari Moduli elementari, collegabili in cascata. Complessità del circuito tollerata per piccoli n (es. n=4) Cammino critico C: M moduli da 4 bit: C = 6 M N = 32 bit M = N/4 C = 6 N/4 = 48 A propagazione di riporto: N = 32 bit C = 3 N = 96 a b r 0,in FA 4 r 3,out s L 7 9/36 Struttura sommatore a blocchi Vogliamo 32 bit 8 sommatori elementari Come collegarli tra loro? r 3 = g 3 + p 3 r 2 = = g 3 + p 3 (g 2 + p 2 g + p 2 p g 0 + p 2 p p 0 r 0 ) = = (g 3 + p 3 g 2 + p 3 p 2 g + p 3 p 2 p g 0 ) + p 3 p 2 p p 0 r 0 = = G 0 + P 0 r 0 r 0,in a s P 0 = p 3 p 2 p p 0 G 0 = g 3 + p 3 g 2 + p 3 p 2 g + p 3 p 2 p g 0 FA 4 b P 0 G 0 L 7 0/36 5

Struttura di un sommatore su 6 bit C = G 0 + P 0 r 0 C 2 = G + P C = = G + P G 0 + P P 0 r 0 C 3 = G 2 + P 2 C 2 = = G 2 + P 2 G + P 2 P G 0 + + P 2 P P 0 r 0 r out = C 4 = G 3 + P 3 C 3 = = G 3 + P 3 G 2 + P 3 P 2 G + + P 3 P 2 P G 0 + P 3 P 2 P P 0 r 0 Cammino critico = 6+6 = 2 CLA + prop: 6M = 24 Prop: 3N = 48 L 7 /36 Sommario Sommatori ad anticipazione di riporto Addizionatori modulari Moltiplicatori approccio hardware Moltiplicatori approccio firmware L 7 2/36 6

Moltiplicazione binaria Moltiplicando 0 x (27 0 ) = (7 0 ) 0 Moltiplicatore 0 0 0 0 (89 0 ) Prodotto Come fare il calcolo con circuiti logici? Possiamo scomporre l operazione in due stadi: Primo stadio: prodotti parziali si mette in AND ciascun bit del moltiplicatore con i bit corrispondenti del moltiplicando Secondo stadio: somme si effettuano le somme (full adder) dei bit sulle righe contenenti i prodotti parziali L 7 3/36 La matrice dei prodotti parziali In binario i prodotti parziali sono degli AND L 7 4/36 7

Il circuito che effettua i prodotti L 7 5/36 Somma prime 2 righe dei prodotti parziali 0 x = 0 + 0 0 0 0 0 + 0 0 0 L 7 6/36 8

Somma della terza riga 0 x = 0 + 0 0 0 0 0 + 0 0 0 L 7 7/36 Somma prodotti parziali circuito completo Overflow: A e B su: N bit P su: 2N bit L 7 8/36 9

Valutazione del cammino critico N = 4 Ritardo AND = Ritardo HA = Ritardo FA = 3 Cammino critico = 20 8 5 2 7 7 4 20 20 20 7 2 6 2 L 7 9/36 Sommario Sommatori ad anticipazione di riporto Addizionatori modulari Moltiplicatori approccio hardware Moltiplicatori approccio firmware L 7 20/36 0

Approcci tecnologici alla ALU. Approcci tecnologici alla costruzione di ALU: Hardware Ad ogni operazione corrisponde un circuito combinatorio specifico ROM Approccio esaustivo (tabellare). Per ogni funzione, per ogni ingresso viene memorizzata l uscita. Utilizzabile per funzioni molto particolari (ad esempio di una variabile). Non molto utilizzato. Firmware o microprogrammato Si dispone di circuiti specifici solamente per alcune operazioni elementari (tipicamente addizione e sottrazione). Le operazioni più complesse vengono sintetizzate a partire dall algoritmo che le implementa L 7 2/36 L approccio firmware La ALU contiene una unità di controllo e dei registri L unità di controllo attiva opportunamente le unità aritmetiche ed il trasferimento da e verso i registri. Approccio controllore-datapath Viene inserito un microcalcolatore dentro la ALU FIRMWARE vs. HARDWARE: Hardware: più veloce ma più costosa per numero di porte e complessità dei circuiti La soluzione HW conviene per le operazioni frequenti Firmware: risolve l operazione complessa mediante una sequenza di operazioni semplici. Meno veloce, ma più flessibile e, potenzialmente, adatta ad inserire nuove procedure. L 7 22/36

Presentazione seriale/parallela Presentazione parallela Tutti i bit vengono presentati simultaneamente; La ALU genera tutti i bit del risultato Tipico dell approccio HW Presentazione seriale Gli operandi vengono presentati bit alla volta, del quale viene eseguita l operazione e fornito il risultato Viene utilizzata un unica copia del circuito aritmetico Il tempo di calcolo cresce linearmente con il numero di bit non si possono utilizzare tecniche di carry look-ahead Presentazione seriale a gruppi I bit vengono presentati a gruppi di k bit (es. k=8: bytes) a 0 a... a n b 0 b... b n a 0 a a n ALU ALU... s 0 s s n s 0 s s n b 0 b b n L 7 23/36 Operazione di SHIFT (scalamento) Dato A={a n a n- a a 0 } s k (A)=A, a j = a j k k: shift amount Tempo comparabile con quello della somma Effettuato al di fuori delle operazioni selezionate dal MUX della ALU, da un circuito denominato Barrel Shifter a n a n- a n-2 a a 0 a n- a n-2 a n-3 a 0 0 0 a n a n- a 2 a L 7 24/36 2

La moltiplicazione firmware Algoritmo della moltiplicazione firmware Si analizzano sequenzialmente i bit del moltiplicatore se il bit è = moltiplicando in posizione opportuna se il bit è = 0 0 in posizione opportuna 0 x 0 = 0 + 0 0 0 0 0 0 0 0 0 0 L 7 25/36 Moltiplicazione firmware Utilizzo un registro prodotto da 2n bit, inizializzato a 0 Ciclo iterativo: per ogni bit del moltiplicatore Se bit = sommo il moltiplicando al prodotto shift a SX di bit del moltiplicando 0 x = 0 + 0 0 0 0 0 0 + 0 0 0 0 0 L 7 26/36 3

L algoritmo P A 0 x B = 0 + 0 0 0 0 0 0 + 0 0 0 0 0 Inizio (P = 0, k = 0) no sì b k =? P A + P shift A a sx, k=k+ k=n? sì Fine no L 7 27/36 Implementazione circuitale A (moltiplicando) + shift sx 64 bit ALU 64 add B (moltiplicatore) 32 bit shift 32 P (prodotto) 64 bit scrivi Controllo UC riceve 32 bit ma ne legge alla volta L 7 28/36 4

Implementazione circuitale modifica A (moltiplicando) + shift a sx 64 bit B (moltiplicatore) + shift a dx 32 bit ALU 64 add shift sx shift dx P (prodotto) 64 bit scrivi Controllo Ad ogni iterazione: B shift_dx(b) UC riceve sempre LSB L 7 29/36 Esempio A,B: 4 bit P: 8 bit 2 x 3 = 6 000 x 00 = 00 0000 000 L 7 30/36 5

Implementazione alternativa: idea Soltanto metà dei bit del registro moltiplicando vengono utilizzati ad ogni iterazione Ad ogni iterazione si aggiunge bit al registro prodotto P 0 shift P IDEA Si caricano i risultati parziali in P nella metà SINISTRA Si sposta la somma dei prodotti parziali (in P) verso destra ad ogni iterazione shift P 2 L 7 3/36 Seconda implementazione A moltiplicando, 32 bit ALU 32 add B moltiplicatore + shift dx 32 bit P prodotto + shift dx 64 bit scrivi shift dx Controllo shift dx L 7 32/36 6

Implementazione ottimizzata Numero di bit del prodotto corrente + Numero di bit da esaminare di B = 64 bit: costante ad ogni iterazione elimino il registro moltiplicatore: B 0 x = 0 + 0-0 0 0 0 + 0 - - 0 0 L 7 33/36 Circuito ottimizzato Situazione alla prima iterazione A moltiplicando, 32 bit ALU 32 add P prodotto 64 bit Moltiplicatore B 32 bit scrivi shift dx Controllo + shift dx L 7 34/36 7

L algoritmo ottimizzato P A 0 x B = 0 + 0 0 0 0 0 0 + 0 0 0 0 0 Inizio (P = 0, k = 0) sì no b k =0? P A + P shift [P B] a dx k=k+ k=n? sì Fine no L 7 35/36 Esempio di esecuzione alg. ottimizzato A, B: 4 bit P: 8 bit 2 x 3 = 6 000 x 00 = 0000 00 L 7 36/36 8