1 / 41

Arquitecturas de Computadoras Curso Propedéutico Capitulo 2 Aritmética de enteros

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.

vangie
Download Presentation

Arquitecturas de Computadoras Curso Propedéutico Capitulo 2 Aritmética de enteros

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Computadoras Curso Propedéutico Capitulo 2 Aritmética de enteros Marco Antonio Ramírez Salinas Herón Molina Lozano

  2. Operaciones aritméticas de enteros Adición 710= 0000 0000 0000 0111b + 610= 0000 0000 0000 0110b 1310= 0000 0000 0000 1101b Los cuatro bits menos significativos tienen toda la acción

  3. Operaciones aritméticas de enteros Adición … 0 0 1 1 1b + … 0 0 1 1 0b (0) (1) (1) (0) (0)0 (0) 1 (1) 0 (1) 0 (0) 1

  4. 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 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.

  5. 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. negativo Resta : núm. negativo - núm. positivo = núm. positivo Suma : núm. positivo + núm. positivo = núm. negativo Suma : núm. negativo + núm. negativo = núm. positivo

  6. 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.

  7. 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.

  8. Operaciones Lógicas Shift: mueven todos los bits de una palabra a la derecha o a la izquierda, llenando los bits vacios con ceros. $0: 0000 0000 0000 0000 0000 0000 0000 0110b = 610 sll $t2, $0, 8 $t2: 0000 0000 0000 0000 0000 0110 0000 0000b = 153610 MIPS Shift: sll (shiftleftlogical) srl(shiftrightlogical)

  9. 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) $t1: 0000 0000 0000 0000 0000 0000 0000 0110b $t2: 0000 0000 0000 0000 0000 0110 0000 1111b and $t0, $t1, $t2 $t2: 0000 0000 0000 0000 0000 0000 0000 0110b Muy útil para crear “mascaras” de bits

  10. 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) $t1: 0000 0000 0000 0000 0000 0000 0000 0110b $t2: 0000 0000 0000 0000 0000 0110 0000 1111b and $t0, $t1, $t2 $t2: 0000 0000 0000 0000 0000 0110 0000 1111b MIPS : and, andi (and, and inmediate) or, ori(or, orinmediate)

  11. Operaciones Lógicas C-MIPS Resumen:

  12. 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.

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

  14. ALU Unidad Lógica de 1-Bit /AND/OR

  15. Sumador de 1-bit

  16. Sumador de 1-bit

  17. Acarreo de salida (Cout) Cout= (!a*b*Cin)+(a*!b*Cin)+(a*b*!Cin)+(a*b*Cin) Cout= (Cin*b)+(Cin*a)+(a*b)

  18. Bit de Acarreo Demostrar la simplificación de la ecuación para Cout

  19. Sumador de 1-bit Suma= (!a*!b*!Cin) + (!a*b*!Cin) + (a*!b*!Cin) + (Cin*a*b) Suma= (a x b) x Cin; x= orexcluiva

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

  21. Sumador Completo 1-bit

  22. ALU (AND, OR, SUMA) El sumador puede calcular: a + b a +!b + 1 = a – b (seleccionando invert y Cin)

  23. Completando una ALU para MIPS slt (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 Es exactamente la condición de sobre flujo que se da en substracción de enteros con signo (Diapositiva 24)

  24. (set on less than)

  25. 32-bit ALU

  26. 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.

  27. ALU 32-bits

  28. Calculo rápido del bit de acarreo ?

  29. Multiplicación 0 1 1 0 X 0 0 1 0 0 0 0 0 Desplazamiento 0 1 1 0 + 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0

  30. Multiplicador 0 1 1 0 Inicio 0 0 0 0 0 0 1 0 0

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

  32. Multiplicador 0 1 1 0 1er Ciclo: estado final 1 0 0 0 0 0 0 0 1 1

  33. Multiplicador 0 1 1 0 2do Ciclo: estado inicial Suma y …. 1 0 1 1 0 0 0 0 1 1

  34. Multiplicador 0 1 1 0 2do Ciclo: estado inicial Suma y Desplaza 1 0 0 1 1 0 0 0 0 1

  35. Multiplicador 0 1 1 0 2do Ciclo: estado final 0 0 0 1 1 0 0 0 0 0

  36. Multiplicador 0 1 1 0 3er Ciclo: estado inicial 0 0 0 1 1 0 0 0 0 0

  37. Multiplicador 0 1 1 0 3er Ciclo: estado final desplaza 0 0 0 0 1 1 0 0 0 0

  38. Multiplicador 0 1 1 0 4er Ciclo: estado inicial 0 0 0 0 1 1 0 0 0 0

  39. Multiplicador 0 1 1 0 4er Ciclo: estado final Desplaza (fin) 0 0 0 0 0 1 1 0 0 0

  40. Algoritmo de multiplicación de Booth ?

  41. División 0 0 1 1 0010 0 1 1 1 - 0 0 0 0 0 0 0 0 1 0 0 0 0 - 0 0 0 11 - 0 0 1 0 0 0 01 1 - 0 0 1 0 0 0 01

More Related