ac cap2 aritmetica ent 3

Post on 23-Oct-2015

18 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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)

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.

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

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.

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

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)

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

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)

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:

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

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

Capitulo 2

ALU

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

14

B

A0

1Resultado

Operación

Capitulo 2

Sumador de 1-bit

15

+ Suma

Cin

Cout

a

b

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

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)

Capitulo 2

Bit de Acarreo

18

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

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

Capitulo 2

Suma

20

a

b

Cin

Suma

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

Capitulo 2

Sumador Completo 1-bit

21

a

Cout

b

Cin

Suma

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)

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)

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

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

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

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

Capitulo 2

Calculo rápido del bit de acarreo

?28

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

+

Capitulo 2

Multiplicador

30

0 0 0 0 0 0 1 0

Inicio

0 1 1 0

0

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

Capitulo 2

Multiplicador

32

0 0 0 0 0 0 0 1

1er Ciclo: estado final

0 1 1 0

1

1

Capitulo 2

Multiplicador

33

0 1 1 0 0 0 0 1

2do Ciclo: estado inicialSuma y ….

0 1 1 0

1

1

Capitulo 2

Multiplicador

34

0 0 1 1 0 0 0 0

2do Ciclo: estado inicialSuma y Desplaza

0 1 1 0

1

1

Capitulo 2

Multiplicador

35

0 0 1 1 0 0 0 0

2do Ciclo: estado final

0 1 1 0

0

0

Capitulo 2

Multiplicador

36

0 0 1 1 0 0 0 0

3er Ciclo: estado inicial

0 1 1 0

0

0

Capitulo 2

Multiplicador

37

0 0 0 1 1 0 0 0

3er Ciclo: estado finaldesplaza

0 1 1 0

0

0

Capitulo 2

Multiplicador

38

0 0 0 1 1 0 0 0

4er Ciclo: estado inicial

0 1 1 0

0

0

Capitulo 2

Multiplicador

39

0 0 0 0 1 1 0 0

4er Ciclo: estado finalDesplaza (fin)

0 1 1 0

0

0

Capitulo 2

Algoritmo de multiplicación de Booth

40

?

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

top related