You are on page 1of 7

Sommario

Arithmetic and Logic Unit e moltiplicatore


M. Favalli
Engineering Department in Ferrara 2 1

Arithmetic and Logic Unit - ALU

Moltiplicatore

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

1 / 25

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

2 / 25

Sommario

Introduzione

La ALU un componente in grado di eseguire diversi tipi di operazione di tipo aritmetico e logico su due operandi di n bit
1

Arithmetic and Logic Unit - ALU

Il tipo di operazioni viene determinato dalla congurazione dei bit di controllo Le prime CPU avevano la parte di elaborazione dati su una ALU (attualmente ne sono presenti pi di una)

Moltiplicatore

La ALU oltre a produrre un risultato di n bit produce anche diversi segnali di ag che rappresentano eccezioni o condizioni particolari sul risultato La sua struttura riette un compromesso fra costo e prestazioni

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

3 / 25

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

4 / 25

Arithmetic and Logic Unit - ALU

Arithmetic and Logic Unit - ALU

Schema

Utilizzo della ALU in una semplice CPU

S = S (X , Y , C ) e F = F (X , Y , S )
C

control unit (IF, ID) C X


n

instruction memory

Si noti che le operazioni aritmetiche sono in modulo 2n


S
n

F S
n n

X
n

ALU

ALU Y
n

registers

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

5 / 25

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

6 / 25

Struttura

1-bit ALU

cin

Sono stati proposti e realizzati diversi tipi di ALU Forse il tipo pi diffuso quello di tipo bit - sliced in cui una ALU a n bit viene costruita a partire da n slice, ovvero n ALU a 1 bit ciascuna La ALU essenzialmente costruita intorno a un n bit adder di tipo ripple-carry Vantaggi di modularit e costo e svantaggi di prestazioni
cout xi c0 c1 yi c2 c3 a b c4

FA
0 1 MPX 2 si

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

7 / 25

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

8 / 25

Arithmetic and Logic Unit - ALU

Arithmetic and Logic Unit - ALU

1-bit ALU - funzioni aritmetiche

1-bit ALU - funzioni logiche

In questo caso il carry-in signicativo c4 c3 c2 c1 c0 a b s cout 00 000 0 0 cin 0 00 001 xi 0 xi cin xi cin 00 010 0 1 1 cin cin 00 011 xi 1 xi 1 cin xi + cin 00 100 0 yi yi cin yi cin 00 101 xi yi xi yi cin xi yi + xi cin + yi cin yi cin yi cin 00 110 0 yi 00 111 xi yi xi yi cin xi yi + xi cin + yi cin

Si tratta di operazioni logiche bit a bit il cui risultato non dipende dal carry-in

c4 c3 01 10

c2 c1 c0 -----

s xi yi xi + yi

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

9 / 25

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

10 / 25

ALU a n bit

Aritmetica in complemento a 2

CIN x0 y0 x cin y s cout x1 y1 x cin y s cout

s0

Rappresentazione con segno e valore assoluto: il bit pi signicativo viene usato per codicare il segno (0 positivo, 1 negativo) Complemento a 2: dato un numero intero A 0 rappresentato con n bit, il suo complemento a 2 dato da 2n A La rappresentazione di numeri interi in complemento a 2 su n bit utilizza la codica binaria come numeri naturali per i numeri positivi da 0 a 2n1 1 e il complemento a 2 del valore assoluto per i numeri negativi da 2n1 a 0

s1

x n1 y n1 c4,3,2,1,0

x cin y s cout COUT

sn1

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

11 / 25

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

12 / 25

Arithmetic and Logic Unit - ALU

Arithmetic and Logic Unit - ALU

ALU a n bit: funzioni aritmetiche


Fino a questo momento i simboli {X , Y , S } sono stati utilizzati per denotare parole di n bit Nel caso delle funzioni aritmetiche della ALU, le congurazioni binarie di tali parole codicano numeri interi rappresentati in complemento a 2 che verranno denotati come (X )2 , (Y )2 , (S )2 , lo stesso vale per costanti rappresentate su n bit Nel caso di espressioni il pedice viene riportato solo allesterno delle parentesi: (X + Y + 9)2 = (X )2 + (Y )2 + (9)2
1 c2 Le notazioni (W )c 2 e (W )2 sono utilizzate per denotare il complemento 1 n a 1 e il complemento a 2 di (W )2 : (W )c 2 = (2 W 1)2 e c2 n (W )2 = (2 W )2

ALU a n bit: funzioni aritmetiche


c4 c3 c2 c1 c0 00 000 00 001 00 010 00 011 00 100 00 101 00 110 00 111 S (CIN = 0) (0)2 (X )2 (1)2 1 (X )c 2 (Y )2 (X + Y )2 1 (Y )c 2 (X + Y c 1 )2 S (CIN = 1) (1)2 (X + 1)2 (0)2 c 1 2 (X + 1)2 = (X )c 2 = = (X )2 (Y + 1)2 (X + Y + 1)2 c 1 2 (Y + 1)2 = (Y )c 2 = = (Y )2 (X + Y c 1 + 1)2 = = (X + Y c 2 )2 = (X Y )2

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

13 / 25

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

14 / 25

ALU a n bit

Bit di ag

I bit di ag forniscono indicazioni sul risultato Funzioni logiche c4 c3 c2 c1 c0 vskip 2mm 01 - - 10 - S XY X +Y bit di zero: vale 1 se il risultato S = 02 bit di parit: fornisce la parit sul risultato bit di carry: CARRY OUT bit di overow: vale 1 se il risultato non contenuto in n bit bit di segno: vale 1 se il risultato negativo

Per la complementazione si pu utilizzare il complemento a 1

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

15 / 25

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

16 / 25

Arithmetic and Logic Unit - ALU

Arithmetic and Logic Unit - ALU

Overow
Si ha overow se il segno del risultato diverso da quello atteso sulla base del tipo di operazione e dei segni degli operandi: X > 0, Y > 0 e S < 0 con una somma aritmetica X < 0, Y < 0 e S > 0 con una somma aritmetica X > 0, Y < 0 e S < 0 con una sottrazione aritmetica X < 0, Y > 0 e S > 0 con una sottrazione aritmetica Sia OV il bit di overow: OV = c4 c3 (c2 c1 c0 (Xn1 Yn1 Sn1 + Xn1 Yn1 Sn1 ) + c2 c1 c0 (Xn1 Yn1 Sn1 + Xn1 Yn1 Sn1 ))

Bit di parit
Serve per proteggere i dati che vengono scritti nei registri o in memoria

s0 s1 s2 s3 p sn4 sn3 s n2 sn1

(ENDIF)

ALU - multiplier Arithmetic and Logic Unit - ALU

Analisiesintesideicircuitidigitali

17 / 25

(ENDIF)

ALU - multiplier Moltiplicatore

Analisiesintesideicircuitidigitali

18 / 25

Bit di segno e bit di zero

Sommario

Il bit di segno banalmente il bit di maggior peso del risultato (che signicativo solo nel caso di operazioni aritmetiche) Il bit dizero assume il valore 1 solo quando tutti i bit del risultato hanno il valore 0. Pu essere ottenuto tramite un NOR a n ingressi

Arithmetic and Logic Unit - ALU

Moltiplicatore

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

19 / 25

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

20 / 25

Moltiplicatore

Moltiplicatore

Moltiplicazione

Moltiplicazione e divisione per 2


Moltiplicazione e divisione per 2 possono essere rispettivamente eseguite mediante uno shift a sinistra e uno a destra di una posizione Circuito (da mettere in uscita alla ALU) in grado di eseguire tali operazioni (Wi = L R Si + L RSi +1 + LR Si 1 )
wn1 wi w0

La ALU illustrata non conteneva le operazioni di moltiplicazione e divisione Vedremo come caso particolare la moltiplicazione e divisione per 2 (applicata ai numeri naturali) Nel caso generale vedremo il prodotto di numeri naturali

ri

ri

ri

R x x x i+1 i i1

R x x x i+1 i i1

R x x x i+1 i i1

sn1 sn2

si+1 si

si1

s1

s0

(ENDIF)

ALU - multiplier Moltiplicatore

Analisiesintesideicircuitidigitali

21 / 25

(ENDIF)

ALU - multiplier Moltiplicatore

Analisiesintesideicircuitidigitali

22 / 25

Moltiplicazione fra numeri naturali

Moltiplicazione fra numeri naturali


Logica AND (prodotti parziali) Sommatori
w10 w 31 w 21 w 11 w 01 0 w 30 w 21 0 w 00

Lalgoritmo quello utilizzato in base 10 (somma di prodotti parziali): x3 x2 x1 x0 X y3 y2 y1 y0 Y = x3 y0 x2 y0 x1 y0 x0 y0 W0 + x3 y1 x2 y1 x1 y1 x0 y1 W1 + x3 y2 x2 y2 x1 y2 x0 y2 W2 + x3 y3 x2 y3 x1 y3 x0 y3 W3 = p7 p6 p5 p4 p3 p2 p1 p0

x3

x2

x1

x0 y0

x3 x2 x1 x0 y 3 y 2 y 1 y 0
x3 w30 x2 w20 x1 w10 x0 w00 y1

4 bit adder c out s 3 s 2 s 1 s 0


w 32 w 22 w 12 w 02

c in

w31 x3 x2

w21 x1

w11 x0

w01

x3 x2 x1 x0 y 3 y 2 y 1 y 0
y2

4 bit adder c out s 3 s 2 s 1 s 0


w 33 w 23 w 13 w 03

in

w32 x3 x2

w22 x1

w12 x0

w02

x3 x2 x1 x0 y 3 y 2 y 1 y 0
y3

4 bit adder c out s 3 s 2 s 1 s 0


p7 p6 p5 p4 p3

c in

w33

w23

w13

w03

p2 p1 p0

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

23 / 25

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

24 / 25

Moltiplicatore

Conclusioni

Le unit aritmetiche sono un componente critico del data-path delle ALU Gli esempi riportati corrispondono alle soluzioni pi semplici Nelle CPU reali si utilizzano diverse tecniche per migliorare le prestazioni di ALU e moltiplicatori che non si riescono a trattare in questo ambito

(ENDIF)

ALU - multiplier

Analisiesintesideicircuitidigitali

25 / 25

You might also like