Progetto di Circuiti Aritmetici Maurizio Palesi Maurizio Palesi 1 Introduzione Caratteristiche principali di valutazione Velocità Valutata per il caso peggiore Costo Precisione Es., operazioni in virgola mobile Affidabilità Codici di rilevazione e correzione di errore Consumo di potenza Maurizio Palesi 2 1
Realizzazione Due diversi aprocci Approccio hardware Approccio firmware Maurizio Palesi 3 Presentazione dei Dati Parallelo Seriale pura Seriale a byte Mista Maurizio Palesi 4 2
Presentazione dei Dati Parallelo Tutti i bit degli operandi sono presentati agli ingressi simultaneamente A ADD S B Maurizio Palesi 5 Presentazione dei Dati Seriale pura Alle linee di entrata vengono presentati, sequenzialmente nel tempo (in serie) i bit di pari posizione dei due addendi Presentazione normale (dal meno significativo al più sigificativo) Little endian Sommatori, moltiplicatori Presentazione seriale on-line (dal più significativo al meno significativo) Big endian A Divisori B ADD S Maurizio Palesi 6 3
Presentazione dei Dati Seriale a byte Per byte qui si intende un gruppo di pochi bit (non necessariamente 8) Es., Se i due addendi hanno ognuno 32 bit, questi vengono divisi in otto gruppi di 4 bit Le due coppia di 4 bit di pari posizione vengono applicate contemporaneamente Maurizio Palesi 7 Presentazione dei Dati Mista Uno dei due operandi viene presentato con modalità in parallelo, l altro con modalità seriale Maurizio Palesi 8 4
Presentazione dei Dati Parallelo (combinatorio) La più usata per operandi di lunghezza normale (16, 32, o 64 bit) Seriale e mista (sequenziale) Utilizzata per operandi molto lunghi Es., operazioni crittografiche Maurizio Palesi 9 Half/Full Adder a b HA s c out a b s cout 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 a b c in FA s c out a b cin s cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Maurizio Palesi 10 5
Sommatore a Propagazione di Riporto b 5 a 5 b 4 a 4 c 6 c 5 c 4 c 3 c 2 c 1 FA FA FA FA FA HA s 5 s 4 s 3 s 2 s 1 s 0 b 5 a 5 b 4 a 4 c 6 c 5 c 4 c 3 c 2 c 1 c FA FA FA FA FA FA 0 s 5 s 4 s 3 s 2 s 1 s 0 Maurizio Palesi 11 Overflow L overflow nella somma di due interi a n bit si ha se il risultato super n -1 Tale situazione viene segnalata dal valore 1 del riporto in uscita del FA in posizione più significativa Maurizio Palesi 12 6
Differenza A - B = A + (-B) = A + C2(B) C2(B) = NOT(B) + 1 A B A B ADD S Cout Cin Add /Sub Maurizio Palesi 13 Overflow nelle Somme Algebriche Dati due numeri a n bit di segno diverso Il risultato è sempre corretto e quindi occorre ignorare il riporto in uscita dello stadio più significativo Se i due numeri hanno lo stesso segno è possibile avere overflow Come capire se c è stato overflow? La somma di due numeri negativi è positiva oppure La somma di due numeri positivi è negativa Overflow = (a n-1 b n-1 )s n-1 + (a n-1 b n-1 )s n-1 Maurizio Palesi 14 7
Velocità del Sommatore a Propagazione del Riporto b 5 a 5 b 4 a 4 c 6 c 5 c 4 c 3 c 2 c 1 c FA FA FA FA FA FA 0 s 5 s 4 s 3 s 2 s 1 s 0 Esiste un percorso dei segnali dalla posizione meno significativa a quella più significativa tramite i segnali di riporto Se τ è il ritardo di propagazione dagli ingressi alle due uscite del FA, il ritardo di propagazione massimo è nτ Maurizio Palesi 15 Sommatori Carry-Lookahead Nella generica cella i-esima di un sommatore a propagazione di riporto, il riporto in uscita c i+1 deriva da Una componente generata localmente Vale 1 se i bit i-esimi degli addendi valgono 1 E una propagata dovuta al riporto di ingresso Vale 1 se c i =1 e se almeno uno dei bit i-esimi degli addendi è 1 c i+1 = G i + P i c i c i+1 b i FA a i s i c i a i b i a i b i Maurizio Palesi 16 8
Sommatori Carry-Lookahead c i+1 = G i + P i c i = a i b i + a i b i c i Il procedimento può essere iterato su c i c i = G i-1 + P i-1 c i-1 = a i-1 b i-1 + a i-1 b i-1 c i-1 e, riportando questa espressione in quella che fornisce c i+1 si ricava c i+1 = a i b i + a i b i (a i-1 b i-1 + a i-1 b i-1 c i-1 ) e così via fino ad esprimere il riporto c i+1 in funzione dei bit da i dei due addendi Maurizio Palesi 17 Sommatori Carry-Lookahead b 5 a 5 b 4 a 4 c out c FA FA FA FA FA FA 0 s 5 s 4 s 3 s 2 s 1 s 0 Maurizio Palesi 18 9
Sommatori Carry-Lookahead b 5 a 5 b 4 a 4 c out c FA FA FA FA FA FA 0 s 5 s 4 s 3 s 2 s 1 s 0 Maurizio Palesi 19 Prodotto Due fasi Calcolo dei prodotti parziali Uguale per tutti i moltiplicatori Somma dei prodotti parziali Somma per righe Somma per diagonali Somma per colonne Moltiplicatore di Wallace Moltiplicatore di Dadda Maurizio Palesi 20 10
Matrice dei Prodotti Parziali Maurizio Palesi 21 Calcolo dei Prodotti Parziali Delay Delay = 1 Maurizio Palesi 22 11
Somma per Righe + Maurizio Palesi 23 Somma per Righe HA FA FA HA Maurizio Palesi 24 p 0 12
Somma per Righe HA FA FA HA FA FA FA HA p 1 p 0 Maurizio Palesi 25 Somma per Righe 4 3 2 1 HA FA FA HA 4 3 2 1 6 5 4 3 FA FA FA HA 6 5 4 3 8 7 6 5 FA FA FA HA p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 Delay Delay = 8 Maurizio Palesi 26 13
Somma per Righe I tempi richiesti per la somma dei prodotti parziali dipendono linearmente dal numero dei bit dei fattori Delay SpR = 3n - 4 Maurizio Palesi 27 Somma per Diagonali HA HA HA 1 1 1 FA FA FA b a 3 1 b 2 2 3 2 FA 3 FA 3 FA 3 6 FA 5 FA 4 HA Delay Delay = 6 Maurizio Palesi 28 14
Somma per Diagonali I tempi richiesti per la somma dei prodotti parziali dipendono linearmente dal numero dei bit dei fattori Delay SpD = 2n - 2 Maurizio Palesi 29 Somma per Colonne Sommare tutti i bit presenti in una colonna più gli eventuali riporti equivale a contare quanti di questi bit valgono 1 Maurizio Palesi 30 15
Contatore Parallelo Se le sei entrate appartengono alla colonna i-esima (peso 2 i ), dei tre bit in uscita Il LSB avrà lo stesso peso 2 i Quello centrale avrà peso 2 i+1 Il MSB avrà peso 2 i+2 Note Un contatore bit è un HA Un contatore bit è un FA Maurizio Palesi 31 Somma per Colonne a 5 a 4 b 5 b 4 p 12 p 11 p 10 p 9 p 8 p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 Maurizio Palesi 32 16
Somma per Colonne La struttura h3 uscite Un moltiplicatore a 6 bit h2 uscite L3esima uscita è sempre nulla Perdita di regolarità dei circuiti e delle connessioni Velocità Se Delay HA = Delay FA = Delay Counter = 1 Delay SpC = 2n - 1 Maurizio Palesi 33 Somma per Colonne (schema alternativo) M 0 La somma dei vari bit di M 0 (6 righe) rappresenta il prodotto M 1 La somma dei vari bit di M 1 (3 righe) rappresenta il prodotto Sommatore veloce M 2 La somma dei vari bit di M 2 (2 righe) rappresenta il prodotto p 12 p 11 p 10 p 9 p 8 p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 Maurizio Palesi 34 17
Somma per Colonne (schema alternativo) Moltiplicando Generazione M 0 0 Moltiplicatore Riduzione righe righe Sommatore Prodotto Maurizio Palesi 35 Somma per Colonne (schema alternativo) Osservazioni Il sommatore finale somma due righe I contatori del livello precedente hanno 2 uscite al massimo 3 ingressi al massimo 3 righe I contatori del livello precedente hanno 3 uscite al massimo 7 ingressi al massimo 7 righe I contatori del livello precedente hanno 7 uscite al massimo 127 ingressi al massimo 127 righe Moltiplicatori con fattori fino 27 bit riducono il numero di righe della matrice iniziale a una matrice con due righe in non più di tre passi! Maurizio Palesi 36 18
Somma per Colonne (schema alternativo) Vantaggi Velocità (ritardo dominato dal sommatore finale) Un solo addizionatore veloce (e costoso) La struttura con somma per righe ne richiederebbe n-1 Svantaggi Non regolarità Potrebbe richiedere contatori con numeri diversi (e potenzialmente alti) di ingressi Soluzioni Moltiplicatore di Wallace Moltiplicatore di Dadda Maurizio Palesi 37 Moltiplicatore di Wallace Usa soltanto contatori paralleli A 3 ingressi e 2 uscite (Full Adder) A 2 ingressi e 2 uscite (Half Adder) Fig. 7.14, Progettazione Digitale/II edizione, Fummi, Sami, Silvano, Mc Graw Hill Maurizio Palesi 38 19
Moltiplicatore di Wallace Massimo numero di righe per matrice 20 18 19 16 14 12 10 8 6 4 2 2 3 4 6 9 13 0 Ultima Penultima Terzultima Quartultima Quintultima Sestultima Settultima Maurizio Palesi 39 Moltiplicatore di Wallace Maggiore lentezza nella riduzione delle righe Maggior numero di stadi in cascata Contatori semplici (2 e 3 ingressi) Veloci L ipotesi che il ritardo di propagazione di un contatore parallelo sia indipendente dal numero degli ingressi non è realistica Maurizio Palesi 40 20
Moltiplicatore di Dadda Wallace cerca di contare il più possibile Dadda cerca di contare il meno possibile Dadda e Wallace stessa velocità Dadda è più economico Il risparmio aumenta all aumentare della dimensione dei fattori Fig. 7.15, Progettazione Digitale/II edizione, Fummi, Sami, Silvano, Mc Graw Hill Maurizio Palesi 41 21