Upload
antonia-mariotti
View
216
Download
0
Embed Size (px)
Citation preview
Circuiti Aritmetico-Logici
in un PC, le operazioni aritmetiche e logiche tra i dati sono svolte nell’ALU (Arithmetic Logic Unit) con la supervisione della CU (Control Unit).In particolare la ALU può svolgere:• operazioni aritmetiche: +,-,*,/• operazioni logiche: AND, OR, NOT, EX-OR, complemento a 1, a 2,…• operazioni di scorrimento e rotazione
architettura di Von Neumann
esempio:• la CU preleva dalla memoria un’istruzione di somma (es. ADD AX,BX)• la CU comanda la ALU, mediante opportuni segnali di controllo, ed eseguire la somma dei dati contenuti nei due registri AX, BX• il risultato viene memorizzato nel registro AX
Somma binaria
1111
111
0000
000
+
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
addendo 1(A X=45)
addendo 2(B X=77)
S O M M A (122)
R IP O R TO
ad ogni passo del processo di addizione:• si esegue la somma di 3 bit: il bit del primo addendo, il corrispondente bit del secondo addendo e un bit di riporto dalla posizione precedente• il risultato produce 2 bit: un bit di somma e un bit di riporto che sarà sommato nella posizione successiva questo processo è seguito per i bit di ciascun peso
Sommatore completo (FA, Full Adder)
FA
AB
S
C in 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
inininin CBACBACBACBAS
inin CBABACBABA )()(
inin CBACBA )()(
inCBA )(
ininout CACBBAC
A
B
C in
S
C out
Sommatore parallelo (ripple carry)
01011110
111 000 10
(0)
a0 b0
FA
A B
S
C inC out
FA
A B
S
C inC out
a1 b1
s0s1
FA
A B
S
C inC out
a7 b7
s7
...........carry_out
A=45
B=77
100
SOMMA122
1111 0000
carry_in
Propagazione del riporto
a0 b0
FA
A B
S
C inC out
FA
A B
S
C inC out
a 1 b 1
FA
A B
S
C inC out
a 7 b 7
carry_out carry_ inFA
A B
S
C inC out
a2 b2
FA
A B
S
C inC out
a 3 b 3
FA
A B
S
C inC out
a 4 b 4
FA
A B
S
C inC out
a 5 b5
FA
A B
S
C inC out
a6 b6
s0s1s2s3s4s5s6s7
01234567 tcarry_out=n*tP,FA
all’aumentare del numero di bit il tempo di generazione del carry_out diventa eccessivo sommatori Look-Ahead-Carry (LAC): utilizzano delle porte logiche per generare il riporto in anticipo, in quanto ognuno di essi può essere espresso come funzione logica solo degli ingressi A e B e del carry_in:
es: incarrybabababaCC outin _)()(,, 0000111112
i sommatori LAC realizzano un buon compromesso tra velocità di risposta e complessità circuitale
Sottrazione binaria
0000 1100+18
1111 0011com plem ento a 1 +
1som m a 1
qualunque sottrazione binaria (es: 45-18=27) può essere trasformata in una somma utilizzando la rappresentazione in complemento a 2 del numero negativo:
0111 1011 -18
+1111 0000
0111 1011
1010 1100
11111
45 +
-18= =
27
Impiego del sommatore per eseguire differenze
S O M M A TO R Ea 8 b it
A 0A 1A 2A 3A 4A 5A 6A 7B 0B 1B 2B 3B 4B 5B 6B 7
S 0S 1S 2S 3S 4S 5S 6S 7
(1 )carry_incarry_out
a0a1a 2a3a 4a5a 6a7b 0b 1b2b 3b4b 5b6b 7
A-B
ALU
A LUA (a 0...a 7)
B (b 0...b 7)R (r0...r7)
carry
S 3 S 2 S 1 S 0
L’unità aritmetico logica (ALU) è in grado di compiere operazioni logiche ed aritmetiche su dati espressi in forma binaria
• A, B = dati di ingresso (operandi)• R = risultato• carry = (eventuale) riporto generato in uscita• S0…S3 (linee di selezione) = definiscono l’operazione da compiere
l’ALU è un circuito combinatorio e programmabile
Unità Logica
MUXda 4 a 1
a 0b 0
S 0S 1
r0
MUXda 4 a 1
a 7b 7
S 0S 1
r7
...
nell’unità logica (LU), ciascun bit del primo operando viene portato, insieme al corrispondente bit del secondo operando, all’ingresso di diverse porte logiche; l’uscita di ciascuna porta viene portata ad un MUX perciò, tramite le linee di selezione, è possibile scegliere l’operazione voluta
S1 S0 operazione
0 0 AB0 1 A+B1 0 AB1 1 not A
Unità Aritmetica
per costituire l’unità aritmetica (AU) è necessario utilizzare 8 full-adder in cascata, in modo che il Cout di uno sia collegato al Cin del successivo;
ad ogni FA vengono poi inviati direttamente i bit del primo operando, mentre attraverso un MUX è possibile inviare al secondo ingresso del FA:• 00000000• 11111111• B• not B
le linee S1,S0 agiscono direttamente sugli ingressi di selezione del MUX mentre l’ulteriore segnale di selezione S2 consente di immettere o meno un bit di carry all’ingresso del primo FA
MUXda 4 a 1
S 0S 1
b0
0
1FA
A
B
a0
S 2
1
C in r0
C out
S
MUXda 4 a 1
S 0S 1
b7
0
1FA
A
B
a7
C in r7
C out
S
......
Unità Aritmetica
MUXda 4 a 1
S 0S 1
b 0
0
1FA
A
B
a 0
S 2
1
C in r0
C out
S
MUXda 4 a 1
S 0S 1
b 7
0
1FA
A
B
a 7
C in r7
C out
S
......
S2 S1 S0 operazione
0 0 0 A+0=A0 0 1 A-10 1 0 A+B
0 1 1 A-B-11 0 0 A+11 0 1 A1 1 0 A+B+11 1 1 A-B
Unione dei sottosistemi LU, AU
A (a 0...a 7)B (b 0...b 7)
R (r0...r7)
S 3
S 2 S 1 S 0
LU
A U
M U XS 1 S 0