La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Elettronica dei Sistemi Digitali LA Università di Bologna, II Facoltà di Ingegneria, Sede di Cesena Aritmetica Computazionale F.Campi, A. Romani A.a. 2006-2007.

Presentazioni simili


Presentazione sul tema: "Elettronica dei Sistemi Digitali LA Università di Bologna, II Facoltà di Ingegneria, Sede di Cesena Aritmetica Computazionale F.Campi, A. Romani A.a. 2006-2007."— Transcript della presentazione:

1 Elettronica dei Sistemi Digitali LA Università di Bologna, II Facoltà di Ingegneria, Sede di Cesena Aritmetica Computazionale F.Campi, A. Romani A.a

2 Aritmetica Computazionale Si studiano possibili architetture hardware (ASIC) per realizzare operazioni matematiche su segnali composti da stringhe di bit, in modo da soddisfare le specifiche fisiche che ci si propone (Funzionalità, Timing, Power, Area): RAPPRESENTAZIONI: – Unsigned (Codifica binaria di numeri positivi) – Twos complement (rappresentazione in complemento a due) OPERAZIONI: – Addizione – Moltiplicazione – (Divisione, Radice Quadrata, etc) -> Non verranno trattate

3 Codifica Binaria: N = { b n b 0 } dove b i rappresenta il numero b i * 2 i Tipicamente n puo essere: 8 -> Bytes, 16-> Half Word, 32->Word o piu. Nel caso di architetture programmabili (Microprocessori, DSP) N e fissato, mentre nel caso degli ASIC viene regolato a seconda della precisione voluta in modo da ottimizzare le risorse utilizzate, ES: 11 = { 1*8 + 0*4 + 1*2 + 1*1 } = = { } Complemento a 2: In modo da facilitare la esecuzione della sottrazione, I numeri negativi sono espressi attraverso la seguente formula: -n = (ñ) + 1 ES: -11 = -1 * { } + 1 = { } +1 =

4 Complemento a 2 La rappresentazione binaria a N bit in complemento a 2 di un numero X è definita in questo modo: 00000… … … N …1 -2 N-1

5 Complemento a 2 La operazione di complemento a 2 e realizzata attraverso una negazione bit a bit (o inverto ogni bit oppure lo metto in XOR con 1)

6 Moltiplicazione (potenze del 2) Moltiplicazione per potenze del 2 0 N-1 x0x0 x1x1 x N-1 N-1 0 k-1k 0 00 x0x0 x N-k-1

7 Divisione (potenze del 2) Divisione per potenze del 2 0 N-1 x0x0 x1x1 x N-1 N-1 0/1 x N-1 xkxk x k+1 Sign extension 0 con unsigned x N-1 con signed

8 Sommatori OBIETTIVO: Analizzare delle architetture gate level che descrivano loperazione di somma tra vettori di bit: Problema: Scegliere il corretto TRADE-OFF (Compromesso) tra risorse fisiche (Area e Consumo) e velocita di elaborazione {a n-1 … a 0 } {b n-1 … b 0 } + {s n-1 … s 0 }

9 Si vuole realizzare quindi la operazione seguente: Vogliamo scomporre la operazione = su un singolo bit, sara poi sufficiente _________ replicare N volte la stessa logica Si puo scomporre dunque il calcolo in due funzioni logiche a bits, il calcolo della somma (Sum) e del riporto (Carry Out): In generale, la operazione e descritta dalle seguenti mappe di Karnaugh per S e Co. Sommatori Ripple Carry 1

10 Half-Adder A/B SUM Carry Out Si ottiene quindi S= A XOR B Co = A and B Tale Circuito, definito HALF ADDER, somma soltanto 2 bit, mentre gli stadi successivi dovranno sommare anche il CO dei precedenti stadi. Sara quindi necessario un circuito a 3 ingressi.

11 Full-Adder \ AB Cin SUMCarry Out \ AB Cin

12 Full Adder: Calcolo di Sum e Cout Nota:

13 Full Adder, schema logico a b Sum Cout Cin

14 Sommatori Ripple-Carry RIPPLE-CARRY = Propagazione del Carry Vantaggi: Struttura regolare Svantaggi: Il ritardo introdotto e proporzionale al numero di stadi, e quindi al numero di bit degli operandi. (ogni bit di somma può essere calcolato solo quando è disponibile anche il suo carry-in) ab CinCout Sum ab CinCout Sum ab CinCout Sum ab CinCout Sum C0C0 A0A0 B0B0 A1A1 B1B1 A2A2 B2B2 A N-1 B N-1 S0S0 S1S1 S2S2 S N-1 C1C1 C2C2 CNCN

15 Prestazioni Sommatore Ripple-Carry ab CinCout Sum ab CinCout Sum ab CinCout Sum ab CinCout Sum C0C0 A0A0 B0B0 A1A1 B1B1 A2A2 B2B2 A N-1 B N-1 S0S0 S1S1 S2S2 S N-1 C1C1 C2C2 CNCN Il cammino critico (cioè il ritardo di propagazione del caso peggiore) è caratterizzato da questa espressione: Il ritardo di propagazione cresce linearmente con N. Anche il numero di sommatori (risorse) cresce linearmente con N.

16 Sommatore Carry-Bypass Sommatore Ripple-Carry: ritardo O(N) [lento] Idea: raggruppare i FA a gruppi di M aggiungere una logica di bypass ab CinCout Sum ab CinCout Sum ab CinCout Sum ab CinCout Sum C0C0 A0A0 B0B0 A1A1 B1B1 A2A2 B2B2 A M-1 B M-1 S0S0 S1S1 S2S2 S M-1 C1C1 C2C2 CMCM FA 0 FA 1 FA 2 FA M-1 C out 0 1 SEL

17 Sommatore Carry Bypass Avrò dunque N/M gruppi da M full-adder connessi come segue: Come controllare i mux? –il mux di un blocco dovrà attivarsi tutte le volte che il riporto si propaga da C i a C M Il riporto si propaga in tutte le configurazioni di A e B tali che cioè quando C M dipende dal solo C i (e non dagli ingressi A, B) C0C0 B 0 A 0 B 1 A 1 B 2 A 2 B M-1 A M-1 B M+1 A M+1 B M A M B 2M-1 A 2M-1 S0S0 S1S1 S2S2 S M-1 SMSM S M+1 S 2M-1 B N-1 A N-1 S N-1 C out

18 Condizione di propagazione Per un F.A. la condizione di propagazione è la seguente: (cioè C out non dipende dagli ingressi) Per il blocco di M f.a. avrò propagazione da C 0 a C M se: P 0 P 1 P 2 …P M-1 = 1 Carry Out Full Adder \ AB Cin P=1 P=0 P = A xor B

19 Sommatore Carry Bypass Quindi completiamo lo schema: Qual è il cammino critico? –da A 0, B 0 a C M [se avessi propagazione C 0 C M allora il mux selezionerebbe laltro cammino: + veloce, non è caso peggiore] –attraverso tutti i mux –nellultimo gruppo attraverso i f.a. fino a S N-1 C0C0 B 0 A 0 B 1 A 1 B 2 A 2 B M-1 A M-1 B M+1 A M+1 B M A M B 2M-1 A 2M-1 S0S0 S1S1 S2S2 S M-1 SMSM S M+1 S 2M-1 B N-1 A N-1 S N-1 C out P 0 P 1 P 2 …P M-1 P M P M+1 …P 2M-1 …P N-2 P N-1

20 Sommatore Carry-Bypass Lespressione del ritardo di propagazione sul cammino critico, oltre che funzione di N, dipende da M ripple-carry adder N carry bypass adder 4 8 t ADDER

21 Sommatore Carry-Bypass Esiste un valore ottimale di M? Posso dunque raggruppare i F.A. secondo un criterio ottimale? Definiamo: E andiamo a verificare quando:

22 Sommatore Carry-Bypass

23 Carry-Select Adder Idea: invece di attendere, per il calcolo dei riporti, larrivo del carry in degli stadi precedenti effettuiamo i calcoli nei 2 casi possibili (Cin = 0, Cin = 1) Utilizziamo questa notazione ab CinCout Sum ab CinCout Sum ab CinCout Sum ab CinCout Sum C0C0 A0A0 B0B0 A1A1 B1B1 A2A2 B2B2 A M-1 B M-1 S0S0 S1S1 S2S2 S M-1 C1C1 C2C2 CMCM FA 0 FA 1 FA 2 FA M-1 C0C0 CMCM A 0..M-1 B 0..M-1 S 0..M-1 M M M

24 Carry-Select Adder Possiamo definire questa struttura: ATTENZIONE: Rispetto agli altri sommatori il numero di risorse aumenta!

25 Carry-Select Adder Effettuo il calcolo nei due casi possibili: –Cin = 0, Cin = 1 (uno dei 2 sarà necessariamente quello giusto) Ogni gruppo di F.A. inizia il calcolo da subito Sulla base del riporto dello stadio precedente SELEZIONO un risultato già pronto (NON CALCOLO! perchè i risultati sono già pronti…)

26 Sommatore Carry-Select Vediamo il ritardo di propagazione del cammino critico:

27 Sommatore Carry-Select Il cammino critico ha questo ritardo: Definiamo: Risulta: Vediamo quale valore di M ottimizza il ritardo peggiore:

28 Sommatore Carry-Select E possibile ottimizzare i tempi di calcolo utilizzando un semplice accorgimento: In questo modo viene effettuato il calcolo di un bit di somma in più mentre avviene la propagazione attraverso i mux degli stadi precedenti

29 Sommatori Carry-Lookahead Si ricordi il calcolo per la determinazione del Carryout nel full-adder: (il riporto in ingresso a una colonna dipende dalla colonna precedente) Si puo scrivere come Possiamo definire GENERATE e PROPAGATE: Possiamo altresì scrivere: Risulta:

30 Sommatori Carry-Lookahead Il calcolo dei diversi carry out presenti nel sommatore a 4 bit puo essere quindi descritto secondo lalgoritmo seguente:

31 Sommatory Carry-Lookahead Possiamo scrivere: Lo schema sarà di questo tipo: Carry lookahead A0A0 B0B0 S0S0 P0P0 G0G0 C0C0 A1A1 B1B1 S1S1 P1P1 G1G1 C1C1 A2A2 B2B2 S2S2 P2P2 G2G2 C2C2 A N-1 B N-1 S N-1 P N-1 G N-1 C N-1

32 Sommatori Carry-Lookahead Anticipando il calcolo del carry secondo quanto descritto e possibile Realizzare il seguente sommatore Carry-Lookahead. Lo svantaggio principale di questa architettura e che le equazioni logiche Diventano troppo complesse oltre lordine 4. Di conseguenza i CLA vengono utilizzati di solito in blocchi gerarchici. p3p3 p0p0 p2p2 p1p1 s3s3 s2s2 s1s1 s0s0 G 3 P 3 G 2 P 2 G 1 P 1 G 0 P 0 C 3 C 2 C 1 C 0

33 Sommatore Carry-Lookahed Il blocco elementare ha questa struttura: AiAi BiBi SiSi PiPi GiGi CiCi CiCi AiAi BiBi SiSi PiPi GiGi

34 Sommatori CLA ad Albero Binario Definiamo un operatore o Vale la proprietà associativa: Esiste un elemento neutro: O (g 1, p 1 ) (g 2 p 2 ) (g 1 + p 1 g 2, p 1 p 2 )

35 Sommatori CLA ad Albero Binario Possiamo definire, ricorsivamente, dei PROPAGATE e GENERATE DI GRUPPO: (risulta, se C 0 =0 G i = C i )

36 Sommatori CLA ad Albero Binario Quindi utilizzando la proprietà associativa possiamo costruire la seguente rete di CLA: Nodo centrale molto carico Ritardo: Albero diretto Albero inverso liv. alb. dir liv.alb.inv.1 liv.è sovrapposto calcolo G,P + calcolo somma

37 Sommatori CLA ad Albero Binario Si può anche ridurre il numero di livelli, sfruttando le proprietà delloperatore o Fan out elevato. FO max = N/2 Ritardo: t ADDER = log 2 N (in realtà non è equalizzato, dipende dal FO di ogni sommatore)

38 Sommatore CLA ad Albero Binario Possiamo introdurre degli operatori fittizi (il cui unico compito è buffering) O (1,0) =

39 Sommatore CLA ad Albero Binario Con gli operatori fittizi:

40 Sommatore CLA ad Albero Binario Ogni blocco ha FAN-OUT = 2 –Ritardi equalizzati –Struttura geometrica regolare Ritardo di propagazione: t ADDER = (log 2 N + 2) Il numero di blocchi per la logica di CLA è: N blocks = N log 2 N Per lultimo livello sarebbe sufficiente calcolare i G i (poiché ci interessano i riporti) A 3.5 ns, 64 bit, carry-lookahead adder Dozza, D.; Gaddoni, M.; Baccarani, G.; 1996 Int. Symposium on Circuits and Systems

41 Determinazione dellOverflow Se la operazione di somma (o sottrazione) e eseguita senza segno, il bit di overflow e semplicemente determinato dal Carry-out dello stadio N. In caso di operazione in complemento a 2, si utilizza il seguente algoritmo: 1.Se il bit di maggior peso dei due operandi e diverso, non ci puo essere overflow 2. Se I due operandi hanno uguale bit di maggior peso, il bit di maggior peso del risultato deve essere uguale ai due bit degli operandi

42 Moltiplicatori Hardware Moltiplicatore Seriale Moltiplicatore Parallelo Moltiplicatore Booth-Encoded

43 Algoritmo di Moltiplicazione 0110 * 0011 = ______ = ________ x 3 x 2 x 1 x 0 * y 3 y 2 y 1 y 0 = x 3 y 0 x 2 y 0 x 1 y 0 x 0 y 0 + x 3 y 1 x 2 y 1 x 1 y 1 x 0 y x 3 y 2 x 2 y 2 x 1 y 2 x 0 y x 3 y 3 x 2 y 3 x 1 y 3 x 0 y = Z 7 Z 6 Z 5 Z 4 Z 3 Z 2 Z 1 Z 0 Servono N+M bit per il prodotto

44 Moltiplicatore a matrice y0y0 y1y1 y2y2 y3y3 z0z0 z1z1 z2z2 z3z3 z4z4 z5z5 z6z6 x3x3 x2x2 x1x1 x0x0 z7z7 x3x3 x2x2 x1x1 x0x0 x3x3 x2x2 x1x1 x0x0 x3x3 x2x2 x1x1 x0x0 HA FA Y: N bit X: M bit N-1 righe M somme per riga

45 Moltiplicatore a matrice Vantaggi: Grande simmetria (layout rettangolare) Svantaggi: Notevole Impiego di risorse Hardware Critical Path non ben identificabile Delay: T mult =[(M-1)+(N-2)] t carry + (N-1) t sum + t and Risorse: N*M porte AND + M(N-1) sommatori

46 Moltiplicatore Carry-Save a matrice I bit di riporto non vengono sommati subito, ma passati alla riga successiva Porto avanti vettori di somme e di riporti Quando si fanno somme occorre che bit di somma e di riporto abbiano lo stesso peso Infine serve uno stadio finale per riallineare gli ultimi vettori di somme e riporti Il cammino critico è univocamente definito cammino critico

47 Moltiplicatore Carry-Save a matrice Il cammino critico è univocamente definito Il ritardo è: Se il Vector Merge Adder è realizzato con architettura ripple-carry si ha: Quindi, un moltiplicatore CSA, con merge adder in ripple-carry ha: Serve un numero di sommatori pari a: N(M-1) [ N-1 sommatori CSA + 1 Merge Adder, tutti a M-1 bit]

48 Moltiplicatore Carry-Save a matrice Possiamo schematizzarlo nel modo seguente (es. N = M = 4) Ogni stadio Carry Save Adder (tranne il primo) riceve in ingresso 3 vettori di bit, riducendoli a 2 in uscita (1 vett. di riporti ed 1 vett. di somme) CSA 2:2 (h.a.) b0Ab0A b1Ab1A b2Ab2A CSA 3:2 b3Ab3A Merge Adder P1P1 P2P2 P3P3 P0P0 P 7..4

49 Moltiplicatore Carry-Save a matrice Utilizzando dei soli sommatori CSA con riduzione 3:2 possiamo accorpare i primi due livelli I sommatori riallineano i vettori di bit in ingresso in modo da sommare i bit dello stesso peso N-2 livelli di CSA + 1 Merge Adder Il numero di FA complessivo è: N FA = N(N-2)+N = N(N-1) b0Ab0A b1Ab1A b2Ab2A CSA 3:2 b3Ab3A Merge Adder

50 Moltiplicatore Carry-Save a 8-bit 8-bit CSA Risultato parziale (8bit) Carry-Save out (8bit) Merge adder T delay = o(N) XY 4 XY 6 XY 0 XY 1 XY 2 XY 3 XY 7 XY 5 8-bit

51 Moltiplicatore Carry-Save ad Albero di Wallace E possibile comporre i CSA in uno schema ad albero Ad ogni livello ho un fattore di riduzione 3:2, mentre globalmente (fino allingresso del merge adder) lo avrò N:2. Se n è il numero di livelli avremo allora: VANTAGGIO: Ritardo logaritmico! SVANTAGGIO: struttura irregolare, layout e routing difficoltosi (es. provare a sostituire i CSA con i relativi FA e tracciare le interconnessioni….)

52 Moltiplicatore Wallace Tree Carry-Save a 8-bit 8-bit CSA Risultato parziale (8bit) Carry-Save out (8bit) Merge adder 8-bit CSA T delay = o(Log 2 N)

53 Moltiplicatore Carry-Save ad Albero di Wallace Quanti CSA richiede questo moltiplicatore Ad ogni livello ne abbiamo: … Abbiamo una serie geometrica:

54 Computazione nel dominio dello spazio: strutture ad albero La computazione nel dominio del tempo, tipica delle macchine programmabili, si sviluppa tipicamente secondo una struttura lineare: Sum= (((a + b)+c)+d) Ritardo o(N) N=num operandi Per sfruttare appieno i vantaggi della computazione nel dominio dello spazio è necessario esplicitare più possibile il parallelismo insito in un determinato tipo di calcolo, con una struttura logaritmica: Sum= ( (a+b) + (c+d) ) Ritardo o(log 2 N)

55 Moltiplicatore ad albero di Wallace Vantaggi: Cala la complessita dellalbero, viene aumentata la prestazione Diminuisce il numero di risorse utilizzate Svantaggi: Layout fortemente asimmetrico Delay: T mult = (N-1)t carry +t and +t merge = o(N)

56 Codifica di Booth per la moltiplicazione Sia {x N-1, x N-2, …. x 1, x 0 } un numero in complemento a 2. [x N-1 sarà il segno] Il numero rappresentato sarà: Separiamo i bit di indice pari da quelli di indice dispari:

57 Codifica di Booth Definisco x -1 =0 ed estendo la sommatoria cambio indice n=n-1 sposto un 2 dellesponente

58 Codifica di Booth Abbiamo ottenuto Considerando la moltiplicazione X*Y avremo: x 2n+1 x 2n x 2n-1 f(2n)f(2n)Y Y 0101Y 01122Y Y 101-Y 110-Y Otteniamo 5 possibili configurazioni in Y: 0, Y, 2Y, -Y, -2Y (tutte facilmente generabili) La moltiplicazione consiste nella somma di N/2 configurazioni di f(2n)Y

59 Codifica di Booth Sono i bit di X che mi fanno scegliere quale configurazione di f(2n)Y utilizzare nel calcolo della moltiplicazione (in ogni addendo) –n=0, f(0) = x -1 + x x 1 = 0 + x x 1 –n=1, f(1) = x 1 + x x 3 –n=2, f(2) = x 3 + x x 5 –n=3, f(3) = x 5 + x x 7

60 Codifica di Booth OBIETTIVO : La complessita dei moltiplicatori e legata al numero di bit necessari per codificare gli operandi, ed e proporzionale a N 2. Si puo pensare di codificare il numero binario in ingresso in modo diverso in modo da diminuire il numero di simboli necessari a descriverlo: ad esempio, il numero 12 in base 2 e codificato con 4 simboli, potrebbe essere rappresentato in base 4 con 2 Simboli. 12= (1100) 2 = 1* * * * = (30) 4 = 3* *4 0 Lo svantaggio e che le operazioni di somma e prodotto simbolo a simbolo necessarie oer realizzare lalgoritmo di moltiplicazione con base 4 potrebbero diventare troppo complesse. Di certo lo sarebbero In base 4 usando una codifica in complemento a 2. Ma si puo investigare un tipo di codifica base 4 che descriva somma e prodotto Tra simboli in un modo semplice dal punto di vista della implementazione Hardware.

61 Codifica di Booth (Rappr. In Complemento a 2)

62 Codifica di Booth

63 X 2i+1 X 2i X 2i-1 FiFi F i *Y Y 0101Y 01122Y Y 101-Y 110-Y Se dovessi fare un prodotto X*Y e volessi generare i prodotti parziali usando un moltiplicatore codificato in questa forma, dovrei sostituire nella struttura del moltiplicatore a matrice operazioni di shift(*2) e di complemento a due in luogo dei gates and.

64 Codifica di Booth Ogni operazione di prodotto parziale viene gestita con un multiplexer che seleziona le possibili uscite tra le operazioni imposte MUX X 2i+1 X 2i X 2i-1 Ad ogni passo il prodotto parziale puo essere shiftato di DUE PASSI (invece che uno) Verso sinistra. Il numero di livelli necessari a realizzare questo tipo di moltiplicazione e quindi N/2 invece di N, larea e il ritardo si dimezzano praticamente, anche se si introduce una logica di controllo piu complessa. Y –Y 2Y -2Y 0 BOOTH ENCODING:

65 Booth Encoded Multiplier a 8 bit MUX X 1 X 0 X -1 Y –Y 2Y -2Y 0 MUX X3X2X1X3X2X1 Y –Y 2Y -2Y 0 MUX X5X4X3X5X4X3 Y –Y 2Y -2Y 0 7 bit 9 bit MUX X7X6X5X7X6X5 Y –Y 2Y -2Y 0 adder stage 9 bit 2 bit 8 bit 2 bit 9 bit 8 bit 2 bit Slide modificata!!! 10 bit

66 Moltiplicatore Seriale Basato sui registri : A Moltiplicatore B Moltiplicando (64 bit) P Registro accumulazione parziale (64 bit) Il Prodotto e basato su una serie di AND bit a bit, A (shift left) 64-bit adder P B (shift right) en

67 Moltiplicatore Seriale (2) Basato sui registri : A Moltiplicatore B Moltiplicando (64 bit) P Registro accumulazione parziale (64 bit) In questa soluzione P ed A sono concatenati, permettendo un notevole risparmio di risorse: A 32-bit adder P/B (Shift Right) en


Scaricare ppt "Elettronica dei Sistemi Digitali LA Università di Bologna, II Facoltà di Ingegneria, Sede di Cesena Aritmetica Computazionale F.Campi, A. Romani A.a. 2006-2007."

Presentazioni simili


Annunci Google