Professional Documents
Culture Documents
Moltiplicatore
(ENDIF)
Analisiesintesideicircuitidigitali
1 / 25
(ENDIF)
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
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
Schema
S = S (X , Y , C ) e F = F (X , Y , S )
C
instruction memory
F S
n n
X
n
ALU
ALU Y
n
registers
(ENDIF)
Analisiesintesideicircuitidigitali
5 / 25
(ENDIF)
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
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)
Analisiesintesideicircuitidigitali
9 / 25
(ENDIF)
Analisiesintesideicircuitidigitali
10 / 25
ALU a n bit
Aritmetica in complemento a 2
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
sn1
(ENDIF)
ALU - multiplier
Analisiesintesideicircuitidigitali
11 / 25
(ENDIF)
ALU - multiplier
Analisiesintesideicircuitidigitali
12 / 25
(ENDIF)
Analisiesintesideicircuitidigitali
13 / 25
(ENDIF)
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
(ENDIF)
ALU - multiplier
Analisiesintesideicircuitidigitali
15 / 25
(ENDIF)
ALU - multiplier
Analisiesintesideicircuitidigitali
16 / 25
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
(ENDIF)
Analisiesintesideicircuitidigitali
17 / 25
(ENDIF)
Analisiesintesideicircuitidigitali
18 / 25
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
Moltiplicatore
(ENDIF)
ALU - multiplier
Analisiesintesideicircuitidigitali
19 / 25
(ENDIF)
ALU - multiplier
Analisiesintesideicircuitidigitali
20 / 25
Moltiplicatore
Moltiplicatore
Moltiplicazione
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)
Analisiesintesideicircuitidigitali
21 / 25
(ENDIF)
Analisiesintesideicircuitidigitali
22 / 25
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
c in
w31 x3 x2
w21 x1
w11 x0
w01
x3 x2 x1 x0 y 3 y 2 y 1 y 0
y2
in
w32 x3 x2
w22 x1
w12 x0
w02
x3 x2 x1 x0 y 3 y 2 y 1 y 0
y3
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