Documentos de Académico
Documentos de Profesional
Documentos de Cultura
22 ConstruccionUAL
22 ConstruccionUAL
B
S S
a
0
Result
1
b
5
a b cs s
cs = a·b a cs
0 0 0 0
0 1 0 1 s=ab
1 0 0 1
a
1 1 1 0
+ Sum
b s
b
CarryOut
6
Construcción de una Unidad Aritmética y Lógica
8
Construcción de una Unidad Aritmética y Lógica
a b a b a b
cn-1 cs
+ ce
... cs
+ ce cs
+ ce
c-1
s s s
sn-1 s1 s0
A B A B
n n n n
CPA de
cs + ce cs CPAn ce
n bits
n n
S S 9
a b a b a b
cs
+ ce
... cs
+ ce cs
+ ce
s s s
cn-1 sn-1 c1 s1 c0 s0
X Y Z
n n n
CSA de CSAn
n bits
n n
C S 10
Construcción de una Unidad Aritmética y Lógica
Traditional adder
e3 e2 e1 e0
Traditional adder
f3 f2 f1 f0
Traditional adder
S
s5 s4 s3 s2 s1 s0
11
b3 e3 f3 b2 e2 f2 b1 e1 f1 b0 e0 f0 A B E F
a3 a2 a1 a0
C' S'
s'4 c'3 s'3 c'2 s'2 c'1 s'1 c'0 s'0
Traditional adder
s5 s4 s3 s2 s1 s0
12
Construcción de una Unidad Aritmética y Lógica
•En magnitud y signo, se intercalan ceros entre el bit de signo y los bits de
módulo.
13
14
Construcción de una Unidad Aritmética y Lógica
a b a b
- cs
- ce
cs
s s
a b a b a b
cn-1 cs
- ce
... cs
- ce cs
- ce
c-1
s s s
sn-1 s1 s0
15
a b a b a b
+ + + '1'
cn-1 cs ce cs ce cs ce
s s s
sn-1 s1 s0
16
Construcción de una Unidad Aritmética y Lógica
b b
Op
equivale a
0 1 Op
17
a b a b a b a b
cs
+ ce cs
+ ce
... cs
+ ce cs
+ ce
s s s s
sn-1 sn-1 s1 s0
Op = 0 OPERACIÓN DE SUMA
C Op = 1 OPERACIÓN DE RESTA
8. Indicadores de resultado
En los circuitos anteriores se ha contemplado el bit de acarreo.
Otros indicadores usuales son:
V Op A
n-1
B S
n-1 n-1
A B S
n-1 n-1 n-1
Op A B S
n-1 n-1 n-1
A B S
n-1 n-1 n-1
•Ambas condiciones se resumen en la expresión V C C
n-1 n-2
19
a b a b a b a b
cs
+ ce cs
+ ce
... cs
+ ce cs
+ ce
s s s s
sn-1 sn-2 s1 s0
...
C V N
Z
20
Construcción de una Unidad Aritmética y Lógica
9. Comparaciones
La comparación de dos números se realiza mediante una resta.
• El valor del resultado en sí no es relevante.
• Lo que importa son las características del resultado.
• Las características del resultado se pueden analizar mediante los códigos de
condición obtenidos tras la resta.
MIPS tiene instrucciones condicionales que realizan una resta entre dos operandos,
calculan los códigos de condición y toman una decisión:
Condiciones en MIPS
Condición Nemotécnico Expresión booleana Instrucciones
Menor que con signo LT (less than) r31·V + r31·V SLT, SLTI, BLT
Menor que sin signo LTU (less than unsigned) C SLTU, SLTIU, BLTU
Menor o igual que con signo LE (less or equal than) SLE, BLE
Menor o igual que sin signo LEU (less or equal than unsigned) SLEU, BLEU
Igual que EQ (equal) Z SEQ, BEQ
Distinto a NE (not equal) Z SNE, BNE
Mayor o igual que con signo GE (greater or equal than) SGE, BGE
Mayor o igual que sin signo GEU (greater or equal than unsigned) SGEU, BGEU
Mayor que con signo GT (greater than) SGT, BGT
Mayor que sin signo HI (higher) SGTU, BGTU
Menor que 0 LTZ (less than 0) N BLTZ, BLTZAL
Menor o igual que 0 LEZ (less or equal than 0) N+Z BLEZ
Igual a 0 EQZ (equal to 0) BEQZ
Distinto de 0 NEZ (not equal to 0) BNEZ
Mayor o igual que 0 GTZ (less than 0) N BGEZ, BGEZAL
Mayor que 0 GEZ (less or equal than 0) N·Z BGTZ
Cierto T Flag(coprocesador z) BCzT
Falso F Flag(coprocesador z) BCzF
Pseudoinstrucciones en negrita
22
Construcción de una Unidad Aritmética y Lógica
CarryOut 23
Operation
Operation Result
a
0 a AND b 0
1 a OR b Result
1
b
24
Construcción de una Unidad Aritmética y Lógica
Operation Result
a
0 (00) a AND b 0
1 (01) a OR b
2 (10) a + b + CarryIn 1
Result
CarryOut
25
a1 CarryIn
Result1
ALU1
b1
Ejercicio propuesto: calcular el retardo CarryOut
a31 CarryIn
Result31
ALU31
b31
26
Construcción de una Unidad Aritmética y Lógica
b 0 2
X 0 (00) a AND b
X 1 (01) a OR b a
0
0 2 (10) a + b + CarryIn
1 2 (10) a + ¬b + CarryIn 1
1 3 (11) Less
Result
b 0 2
Para las celdas 1 a 31 de la
1
UAL, Less = 0.
Less 3
Para la celda 0, por Less entra
el resultado de la comparación.
CarryOut
28
Construcción de una Unidad Aritmética y Lógica
Dicho signo se puede obtener de la celda UAL que opera con la pareja de bits
más significativos (ALU31):
Set = s31
donde:
•Set: señal de evaluación de la condición LT (1 si cierta, 0 si falsa).
•s31: salida del sumador de ALU31 (1 si negativo, 0 si positivo o nulo).
Less 3
Set
¡CUIDADO!
Overflow
Si hay desbordamiento en la resta, detection
Overflow
¿la condición LT está bien evaluada?
31
A = 6, B = -4: A = -6, B = 4:
A-B ≥ 0 A-B < 0
A < B FALSE A < B TRUE
¡y la resta da ¡y la resta da
resultado resultado
negativo! positivo!
0110 1010
- 1100 - 0100
1010 0110
V=1 V=1
a1 CarryIn
b1 ALU1 Result1
0 Less
CarryOut
Ejercicio propuesto: calcular el retardo del
circuito para las siguientes operaciones: a2 CarryIn
• add o sub. b2 ALU2 Result2
0 Less
• or o and. CarryOut
• slt.
CarryIn
33
a2 CarryIn Result2
b2 ALU2
Bnegate Operation Result 0 Less
CarryOut
X 0 (00) a AND b
X 1 (01) a OR b
0 2 (10) a+b
a + ¬b + 1 Result31
1 2 (10) a31 CarryIn
a-b b31 ALU31 Set
0 Less Overflow
1 3 (11) Less
34
Construcción de una Unidad Aritmética y Lógica
Anticipación de acarreo
Es posible definir dos funciones:
gi: vale 1 si la pareja de bits ai y bi generan acarreo gi = ai · bi
pi: vale 1 si la pareja de bits ai y bi pueden propagar un acarreo procedente
de una pareja de bits anterior pi = ai bi
Entonces: ci = ai·bi + (aibi)·ci-1 = gi + (aibi) · ci-1
si = ai bi ci-1 = pi ci-1
Si conseguimos construir un circuito aparte que se encargue de calcular los
acarreos, el sumador elemental es más sencillo, ya que proporciona como salida
sólo los bits si, gi y pi.
ai
gi a b ce
a s
bi + g
pi ce +
g p s b p
ci-1 si
36
Construcción de una Unidad Aritmética y Lógica
Anticipación de acarreo
El circuito que calcule los acarreos materializará las siguientes funciones lógicas:
c0 = g0 + p0· c-1
c1 = g1 + p1·c0 = g1 + p1·[g0 + p0·c-1] = g1 + p1· g0 + p1· p0 · c-1
c2 = g2 + p2·c1 = g2 + p2·[g1 + p1·g0 + p1·p0 ·c-1] = g2 + p2·g1 + p2·p1·g0 + p2·p1·p0 ·c-1
c3 = g3 + p3·c2 = g3 + p3·[g2 + p2·g1 + p2·p1·g0 + p2·p1·p0 ·c-1] =
= g3 + p3·g2 + p3·p2·g1 + p3·p2·p1·g0 + p3·p2·p1·p0 ·c-1
Anticipación de acarreo
De este modo podemos definir un bloque de anticipación de acarreo de 4 bits que
recibirá como entradas {gi}i=0...3 , {pi}i=0...3 y c-1 y tendrá como salidas c0, c1, c2, G y P.
•Las fórmulas de un módulo de anticipación de acarreo para más de 4 bits se
complican mucho y dejan de ser viables.
•El módulo de 4 bits será conectable en cascada para formar anticipadores de
acarreo en varios niveles jerárquicos.
3 3 2 2 2 1 1 1 0 0 0
-1
38
Construcción de una Unidad Aritmética y Lógica
P c-1
a12 CarryIn
b12 Result12--15
a13
b13 ALU3
a14 P3 pi + 3
b14 G3 gi + 3
a15 C4
b15 ci + 4
CarryOut 40