ac cap2 aritmetica ent 3

41
Capitul o 2 INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INVESTIGACION EN COMPUTACION LABORATORIO DE MICROTECNOLOGÍA Y SISTEMAS EMBEBIDOS Grupo de Arquitectura de Computadoras y Sistemas Embebidos Arquitecturas de Computadoras Curso Propedéutico Capitulo 2 Aritmética de enteros Marco Antonio Ramírez Salinas Herón Molina Lozano

Upload: laura-lopez

Post on 23-Oct-2015

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AC Cap2 Aritmetica Ent 3

Capitulo 2

INSTITUTO POLITÉCNICO NACIONALCENTRO DE INVESTIGACION EN COMPUTACION

LABORATORIO DE MICROTECNOLOGÍA Y SISTEMAS EMBEBIDOS Grupo de Arquitectura de Computadoras y Sistemas Embebidos

Arquitecturas de ComputadorasCurso Propedéutico

Capitulo 2Aritmética de enteros

Marco Antonio Ramírez SalinasHerón Molina Lozano

Page 2: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones aritméticas de enteros

Adición

710= 0000 0000 0000 0111b

+610= 0000 0000 0000 0110b

2

1310= 0000 0000 0000 1101b

Los cuatro bits menos significativos tienen toda la acción

Page 3: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones aritméticas de enteros

3

… 0 0 1 1 1b

+… 0 0 1 1 0b

Adición

(0) 1(1) 0 (1) 0(0) 1 (0)0

(0)(1)(1)(0)

Page 4: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones aritméticas de enteros

Substracción (adición de núm. complemento a 2)

610 = 0000 0000 0000 0110b

+-510 = 1111 1111 1111 1011b

4

110 = 0000 0000 0000 0001b

Se puede decir que “ocurre” un sobre flujo en la salida. Pero cuando se suman operandos de distinto signo, el resultado es menor que uno de los operandos.

Page 5: AC Cap2 Aritmetica Ent 3

Capitulo 2

Sobre-flujo

La suma o resta de dos números de 32-bits, podría arrojar un resultado que requiera de 33-bits para ser expresado totalmente. Esto significa que el acarreo ocurre en el bit de signo.Ocurre sobre flujo en los siguientes casos :Resta : núm. positivo - núm. negativo = núm. negativoResta : núm. negativo - núm. positivo = núm. positivoSuma : núm. positivo + núm. positivo = núm. negativoSuma : núm. negativo + núm. negativo = núm. positivo

Page 6: AC Cap2 Aritmetica Ent 3

Capitulo 2

Sobre-flujo (Sin Signo)

La suma o resta de dos números sin signo, son comúnmente utilizados en direccionamiento de memoria. El sobre flujo se ignora! .Los arquitectos de computadoras deben proporcionar una forma de ignorar el sobre flujo en algunos casos y reconocerlo en otras. MIPS proporciona dos tipos de instrucciones: Suma (add), Suma un inmediato (addi) y Resta (sub) causan excepciones de sobre-flujo. Suma sin signo (addu), suma un inmediato sin signo (addiu) y resta sin signo (subu) ignoran sobre-flujo.

Page 7: AC Cap2 Aritmetica Ent 3

Capitulo 2

Implicaciones de programación

C ignora el sobre-flujo: el compilador de C para MIPS siempre genera las versiones sin signo de las instrucciones aritméticas (addu, addiu, subu) no importa el tipo de variable. EL procesador MIPS (BIOS) : detecta el sobre flujo con una excepción, para corregir el código. Se utiliza el registro EPC (Exception Program Counter) para almacenar la dirección de la instrucción que causó la excepción, utiliza la instrucción mfsc0 (move from system control ) para copiar EPC a un registro de propósito general y regresar el control del programa.

7

Page 8: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones Lógicas

Shift: mueven todos los bits de una palabra a la derecha o a la izquierda, llenando los bits vacios con ceros.

8

$0: 0000 0000 0000 0000 0000 0000 0000 0110b = 610sll $t2, $0, 8

$t2: 0000 0000 0000 0000 0000 0110 0000 0000b = 153610

MIPS Shift: sll (shift left logical)srl (shift right logical)

Page 9: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones Lógicas

AND: es una operación bit-a-bit, que se realiza entre dos vectores de igual numero de bits. (1&1=1)(1&0=0)

9

$t1: 0000 0000 0000 0000 0000 0000 0000 0110b

and $t0, $t1, $t2

$t2: 0000 0000 0000 0000 0000 0110 0000 1111b

Muy útil para crear “mascaras” de bits

$t2: 0000 0000 0000 0000 0000 0000 0000 0110b

Page 10: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones Lógicas

OR: es una operación bit-a-bit, que se realiza entre dos vectores de igual numero de bits. (1|X=1)(0|0=0)

10

$t1: 0000 0000 0000 0000 0000 0000 0000 0110b

and $t0, $t1, $t2

$t2: 0000 0000 0000 0000 0000 0110 0000 1111b

$t2: 0000 0000 0000 0000 0000 0110 0000 1111bMIPS :

and, andi (and, and inmediate)or, ori (or, or inmediate)

Page 11: AC Cap2 Aritmetica Ent 3

Capitulo 2

Operaciones Lógicas C-MIPS

11

Operación Operador de C Instrucción MIPS

Desplazamiento a la izq. << sll

Desplazamiento a la der. >> srl

and (bit-a-bit) & and, andi

or (bit-a-bit) | or, ori

Resumen:

Page 12: AC Cap2 Aritmetica Ent 3

Capitulo 2

Diseñando Unidades Funcionales

Si el procesador es el “cerebro” de la computadoras, las unidades funcionales son las “neuronas”. ALU’s, Sumadores, Multiplicadores, Divisores, SQR, etc.

12

Page 13: AC Cap2 Aritmetica Ent 3

Capitulo 2

ALU 1-bit

Las operaciones lógicas son las mas fáciles de implementar por que se mapean directamente a los componentes de hardware.

13

A B D and(C) or (C) inv (C) Mux (C)0 0 0 0 0 1 A0 1 1 0 1 1 B1 0 0 1 01 1 1 1 0

Page 14: AC Cap2 Aritmetica Ent 3

Capitulo 2

ALU

Unidad Lógica de 1-Bit /AND/OR

14

B

A0

1Resultado

Operación

Page 15: AC Cap2 Aritmetica Ent 3

Capitulo 2

Sumador de 1-bit

15

+ Suma

Cin

Cout

a

b

Page 16: AC Cap2 Aritmetica Ent 3

Capitulo 2

Sumador de 1-bit

16

Entradas Salidas

a b Cin Cout Suma Comentarios

0 0 0 0 0 0+0+0=00

0 0 1 0 1 0+0+1=01

0 1 0 0 1 0+1+0=01

0 1 1 1 0 0+1+1=10

1 0 0 0 1 1+0+0=01

1 0 1 1 0 1+0+1=10

1 1 0 1 0 1+1+0=10

1 1 1 1 1 1+1+1=11

Page 17: AC Cap2 Aritmetica Ent 3

Capitulo 2

Acarreo de salida (Cout)

17

Entradas Salidas

a b Cin Cout Suma Comentarios

0 0 0 0 0 0+0+0=00

0 0 1 0 1 0+0+1=01

0 1 0 0 1 0+1+0=01

0 1 1 1 0 0+1+1=10

1 0 0 0 1 1+0+0=01

1 0 1 1 0 1+0+1=10

1 1 0 1 0 1+1+0=10

1 1 1 1 1 1+1+1=11

Cout= (!a*b*Cin)+(a*!b*Cin)+(a*b*!Cin)+(a*b*Cin)Cout= (Cin*b)+(Cin*a)+(a*b)

Page 18: AC Cap2 Aritmetica Ent 3

Capitulo 2

Bit de Acarreo

18

Demostrar la simplificación de la ecuación para Cout

Page 19: AC Cap2 Aritmetica Ent 3

Capitulo 2

Sumador de 1-bit

19

Entradas Salidas

a b Cin Cout Suma Comentarios

0 0 0 0 0 0+0+0=00

0 0 1 0 1 0+0+1=01

0 1 0 0 1 0+1+0=01

0 1 1 1 0 0+1+1=10

1 0 0 0 1 1+0+0=01

1 0 1 1 0 1+0+1=10

1 1 0 1 0 1+1+0=10

1 1 1 1 1 1+1+1=11

Suma= (!a*!b*!Cin) + (!a*b*!Cin) + (a*!b*!Cin) + (Cin*a*b)Suma= (a x b) x Cin; x= or excluiva

Page 20: AC Cap2 Aritmetica Ent 3

Capitulo 2

Suma

20

a

b

Cin

Suma

Demostrar la simplificación de la ecuación para Suma

Page 21: AC Cap2 Aritmetica Ent 3

Capitulo 2

Sumador Completo 1-bit

21

a

Cout

b

Cin

Suma

Page 22: AC Cap2 Aritmetica Ent 3

Capitulo 2

ALU (AND, OR, SUMA)

22

B

A

Resultado

Operación

+

0

1

Cin

Cout

invert

0

1

2

El sumador puede calcular: a + b a +!b + 1 = a – b (seleccionando invert y Cin)

Page 23: AC Cap2 Aritmetica Ent 3

Capitulo 2

Completando una ALU para MIPSslt (set on less than) , slt $1, $2, $3

Detecta cuando a < b, $1 = 01 si $2 < $3 , $1 = 00 de otra manera.Si hacemos:(a – b) < 0(a – b) + b < 0 + b a < b

23

Es exactamente la condición de sobre flujo que se da en substracción de enteros con signo (Diapositiva 24)

Page 24: AC Cap2 Aritmetica Ent 3

Capitulo 2

(set on less than)

24

b0

a0

o0

Op

era

ció

n

+

0 1

Cin

Co

ut

inv

ert

0123

b3

1

a31

o3

1

Op

era

ció

n

+

0 1

Cin

So

bre

flujo

inv

ert

0123L

es

s

Se

t

De

tección

de so

bre flu

jo

Se

t

Page 25: AC Cap2 Aritmetica Ent 3

Capitulo 2

32-bit ALU

25

a0 OpCininv

Less Cout

b0o0

a1 OpCininv

b1o1

a2 OpCininv

b2o2

a31 OpCininv

b31o31

Inv Operación

Less Cout 0

Less Cout 0

Less Sflujo 0Less

Sobre flujo

Page 26: AC Cap2 Aritmetica Ent 3

Capitulo 2

Soportando Saltos Incondicionales

Estas instrucciones saltan si dos registros son iguales. La forma rapida de ver si (a==b) es haciendo (a-b) y checar si el resultado es cero.

26

o0 o1 o2 o3 o31

CLK

/Cero

Prec

Eval

Page 27: AC Cap2 Aritmetica Ent 3

Capitulo 2

ALU 32-bits

27

a0 OpCininv

Less Cout

b0o0

a1 OpCininv

b1o1

a2 OpCininv

b2o2

a31 OpCininv

b31o31

Inv Operación

Less Cout 0

Less Cout 0

Less Sflujo 0Less

Sobre flujo

Detección de Cero /Cero

ALU

Operación

/Cero

Sobre flujo

Resultado

A

B

Carry out

Page 28: AC Cap2 Aritmetica Ent 3

Capitulo 2

Calculo rápido del bit de acarreo

?28

Page 29: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicación

0 1 1 0X 0 0 1 0

29

0 1 1 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 1 0 0

+

Page 30: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

30

0 0 0 0 0 0 1 0

Inicio

0 1 1 0

0

Page 31: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

31

0 0 0 0 0 0 1 0

1er Ciclo: desplaza a la derecha (Reg. Prod.)

0 1 1 0

0

0

Page 32: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

32

0 0 0 0 0 0 0 1

1er Ciclo: estado final

0 1 1 0

1

1

Page 33: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

33

0 1 1 0 0 0 0 1

2do Ciclo: estado inicialSuma y ….

0 1 1 0

1

1

Page 34: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

34

0 0 1 1 0 0 0 0

2do Ciclo: estado inicialSuma y Desplaza

0 1 1 0

1

1

Page 35: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

35

0 0 1 1 0 0 0 0

2do Ciclo: estado final

0 1 1 0

0

0

Page 36: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

36

0 0 1 1 0 0 0 0

3er Ciclo: estado inicial

0 1 1 0

0

0

Page 37: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

37

0 0 0 1 1 0 0 0

3er Ciclo: estado finaldesplaza

0 1 1 0

0

0

Page 38: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

38

0 0 0 1 1 0 0 0

4er Ciclo: estado inicial

0 1 1 0

0

0

Page 39: AC Cap2 Aritmetica Ent 3

Capitulo 2

Multiplicador

39

0 0 0 0 1 1 0 0

4er Ciclo: estado finalDesplaza (fin)

0 1 1 0

0

0

Page 40: AC Cap2 Aritmetica Ent 3

Capitulo 2

Algoritmo de multiplicación de Booth

40

?

Page 41: AC Cap2 Aritmetica Ent 3

Capitulo 2

División

41

0010 0 1 1 1

0 0 0 0 1 0 0 0 0

0 0 0 0

0 0 1 0

-

0 0 0 1 1-

-

0 0 0 1 1

0 0 1 1

0 0 1 0-

0 0 0 1