Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Coprocesador aritmético
Alexandra Cabrera, Natalia Jarrín, Nátaly Parra
2
Historia Dentro del computador absolutamente todo dato tiene que ser almacenado en un registro conjuntamente con un número de bits (finito); entonces surge la pregunta de ¿Cómo almacenamos los datos en coma flotante? Para poder responder esto debemos primero preguntarnos si realmente es necesaria la notación en coma flotante en las computadoras, y si la respuesta es que si, entonces como se implementa y con qué características.
3
John Von Newmann rechazó la idea de incluir la aritmética en coma flotante en la máquina que construyo en Princentom, y así, a lo largo de los años cada fabricante y cada computador usaba una aritmética distinta.
4
El hardware de punto flotante tomo fuerza cuando se vio su utilidad en el año de en el que una unidad decimal de punto flotante estuvo disponible en el IBM 650, y luego en las series IBM 704, 709, 7090, 7094, etc Había también hardware binario de punto flotante para simple y doble precisión. IBM 7094 IBM 650 IBM 704 Luego de esto, se disponía ya de punto flotante en gran parte de computadores, pero cada implementación era diferente.
5
En 1976 John F. Palmer en Intel empezó a desarrollar una aritmética de punto flotante para toda la línea de productos de Intel. Cuando salió el se consideraba la opción de incorporar un coprocesador de punto flotante, el 8087, para el 8086. El coprocesador era un chip adicional que aceleraba una parte del trabajo del procesador, en este caso los cálculos en punto flotantes.
6
Básicamente los procesadores de la familia x86, utilizados en la mayoría de los computadores son procesadores de números enteros, y ya que, normalmente durante el cálculo tenemos dos tipos de números, los enteros antes mencionados y los números reales, aparecen como solución para estos cálculos los coprocesadores aritméticos, ya que los chips microprocesadores de propósito general trabajan únicamente con números enteros utilizando la representación binaria de números en complemento a dos. Procesadores x86
7
En un principio el coprocesador no venía integrado como es el caso del 386, en el cual se podía comprar por separado dicho componente e instalarlo en el encaje de la placa base. Esto implicaba que existía un modelo para cada procesador, es decir: El procesador 8088 usaba el coprocesador 8087 El 286 el 287 El 386SX el 387SX El 386DX el 387DX Por el hecho de que pocas personas añadían este componente en su procesador, los coprocesadores eran muy caros y muchas veces superaban el costo del procesador principal. Al crecer las funciones que hacían uso del coprocesador este se agregó en el procesador principal a partir del modelo 486DX, resolviendo de esta forma el alto costo.
8
Según J. Antonio Álvarez y Michael Lindig B, en su artículo Diseño de un Coprocesador Matemático de Precisión Simple usando el Spartan 3E, afirman que: “En aquellos tiempos las aritméticas de punto flotante eran ligeramente diferentes entre los grandes computadores pero una verdadera anarquía entre los microcomputadores en los que era necesario albergar una docena de aritméticas diversas en el firmware de la ROM o vía software.” Robert G. Stewart, un ingeniero de la IEEE tomó participación en esta anarquía presente y solicitó que el IEEE cree un estándar para el punto flotante.
9
Las reuniones de este comité en referencia al punto flotante comenzaron a finales de con multitud de borradores que provenían de innumerables fuentes y se alargaron hasta 1985 cuando se hizo oficial el Standard 754 del IEEE para punto flotante binario, basado en el diseño inicial de Intel, pero algo simplificado. En 1980 Intel cansado de esperar, lanza el 8087 para su uso en el Ibm Pc. Al mismo tiempo Motorola anuncia en 1982 su 68881, utilizado en el Sun 3 y el Macintosh II Paralelamente a estos lanzamientos el estándar finalmente apareció.
10
IEEE 754 IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) estableció un estándar para la presentación de números en coma flotante. Basicamente este establece como debe representarse los números en coma flotante: - Simple precisión (32 bits) - Doble precisión (64 bits) Además como deben hacerse las diferentes operaciones aritméticas con ellos.
11
¿Qué es un coprocesador aritmético?
Es una unidad electrónica que trabaja al mismo tiempo que el microprocesador. Es llamado también Unidad de Punto Flotante (Floating Point Unit en inglés) Este componente del CPU, está especializado en operaciones de punto flotante. Coprocesador aritmético Intel 8087
12
La FPU realiza las operaciones aritméticas (suma y multiplicación), pero existen sistemas con mayor complejidad, capaces de hacer cálculos trigonométricos o cálculos exponenciales. Es importante saber que no todos los CPUs cuentan con una FPU, por lo que en ausencia de esta, la CPU usa programas para emular la función en punto flotante por medio de la ALU, lo que minimiza el precio del hardware pero sufre una pérdida de velocidad.
13
En la actualidad un sin número de aplicaciones como:
Programas CAD Juegos gráficos tridimensionales Procesamiento de imágenes, entre otros Necesitan para ejecutarse y llevar a cabo sus tareas una serie de funciones matemáticas complejas, es ahí donde interviene la función del coprocesador aritmético, ya que ayuda al procesador principal en el cálculo de funciones complejas, las cuales cada vez son más utilizadas día a día. Programa CAD Juegos 3d
14
El coprocesador funciona de manera interna en “formato real”, esto quiere decir que si existe una carga en los registros de este, ese valor se transformará a punto flotante. Por ejemplo: El formato real temporal requiere 80 bits: 1 para el signo 15 para el exponente 64 para la mantisa El exceso es 2 ^ = El menor valor positivo que se puede representar es 2 ^ = 3,36 x 10 ^ -4932, mientras que el mayor valor positivo representable es igual a 2 ^ = 1,19 x 10 ^ 4932.
15
Los registros del coprocesador se encuentran ordenados en pila y la manera de entrar a estos es mediante el número de entrada que usan en la pila; es decir, va desde R(0) a R(7) [8 registros de 80bits], y por el hecho de que vamos acceder mediante la pila debe usarse un formato de pila. Entonces el coprocesador posee un “puntero de control de pila” denominado St (estado) a través del cual se realiza cualquier interacción con los registros, es decir si queremos realizar algo o acceder a un registro, hay que hacerlo mediante este puntero. El último valor introducido es St o St(0) , y en el caso de que se haya introducido todos los registros entonces el ultimo seria St(7).
16
Tipos de datos El coprocesador es capaz de leer y escribir dos tipos de datos en memoria: Words(16 bits) Dword(32 bits) Qwords(64 bits ) Twords(80 bits) Words(16bits) Dword(32 bits) Qwords(64 bits) Entero Real Cada componente de la pila puede acumular un valor en formato real temporal de 10 bytes (80bits). El puntero de la pila (ST) muestra el elemento en la cima. (Valor=entre 0 y 7).
17
Tipos de instrucciones
Los tipos de instrucciones se clasifican en: • De transferencia de datos • Aritméticas • De comparación • De cálculo de funciones transcendentes • Relativas a constantes • De control
18
Instrucciones de transferencia de datos: Transfieren datos desde una localización a otra.
Pasos: Determinar las direcciones de origen Determinar la dirección de destino de memoria. Transformar de memoria virtual a memoria real. Comprobar la caché. Proceso de lectura/escritura en la memoria.
19
Instrucciones aritméticas: Realizan operaciones aritméticas a cargo de la ALU. Se pueden clasificar en de 1 operando (valor absoluto, negación) y 2 operandos (suma, resta, etc). De cálculo de funciones transcendentes : Es una variable independiente que puede ser: exponencial, índice de la raíz, se encuentra en el signo de un logaritmo o de cualquier signo trigonométrico.
20
Relativas a constantes
Es una variable que no puede ser modificado durante un tiempo. G=9.81 De control Son las variables que se usan para determinar un comportamiento.
21
Representación en Coma Flotante
Sirve para representar un amplio rango de valores numéricos, ya sean positivos o negativos centrados en el cero, toma su nombre ya que al ajustar el exponente E cambia la posición del punto decimal en la mantisa M. Un número X en notación exponencial toma la forma: X = M * BE Al representar un registro de n bits usamos: n =p +q+1 dónde: p bits para la mantisa M y q bits para el exponente (E ) B es la base del exponente, sin embargo está implícita.
22
“Debe existir una relación entre los tamaños de la mantisa y los tamaños del exponente, debido que un número fijo de bits totales, si se toma un bit de un campo se pierde del otro y viceversa. Esta relación se encuentra entre la precisión y el rango del número en punto flotante, es decir incrementar el tamaño de la mantisa incrementa el número de bits para representar la mantisa, mientras que incrementar el tamaño del exponente incrementa el rango de números que pueden representarse.” [6]
23
Mantisa Es una representación en complemento a 2 con signo, depende del número de bits que utilicemos para la mantisa. Es importante que la mantisa tenga el mayor número de bits significativos, lo cual se obtiene al normalizar. La normalización de la mantisa en base 2 se consigue moviendo hacia la izquierda la mantisa hasta que el bit a la derecha del punto de la raíz sea uno (o el de la izquierda). Por ello, al colocar el primer uno a la derecha del punto decimal, tendremos que la magnitud de la mantisa en valor absoluto tiene un valor dentro del rango: ½ <=|m|<= 1
24
Exponente Es un número de p bits que utiliza una representación exceso 2p-1 1. El 0 se podría representar como M=0 y cualquier valor de exponente. En operaciones aritméticas, por errores de redondeo, podría existir algún 1 en posiciones menos significativas de la mantisa. Por lo que el exponente más adecuado para representar el 0 es aquel que tiene el mayor valor negativo., así los errores de redondeo de la mantisa, dan un número tan cercano a cero como sea posible. 2. “La representación del 0 es una secuencia de 0`s tanto en la mantisa como en el exponente, de esta forma tenemos una única representación del cero.” [6]
25
Operaciones Suma y Resta
Al realizar sumas o restas de dos números en coma flotante, lo que se debe hacer es comparar cada uno de los exponentes e igualarlos. Por ejemplo: Dados: y suponiendo que Suma:
26
Resta: Ahora asignamos valores a x y a y : x= y= Pasamos a notación exponencial: x= 3,62 · y= 6,27 · 10 5 Sumamos: = ,3062 · Restamos: 3620 – = ,2338· 10 5
27
Ahora, hacemos estas operaciones en coma flotante aplicamos las anteriores fórmulas:
x= 3,62 · y= 6,27 · 10 5 x + y = 3,62 · ,27 · 10 5 = (3,62 · 10 3−5 + 6,27) · 10 5 = (3,62 · 10 −2 +6,27 ) · 10 5 = (0, ,27) · 10 5 = (6,3062) · 10 5 x - y = 3,62 · ,27 · 10 5 = (3,62 · 10 3−5 - 6,27) · 10 5 = (3,62 · 10 −2 −6,27 ) · 10 5 = (0, ,27) · 10 5 = (6,2338) · 10 5
28
Algoritmo suma y resta Para hacer sumas o restas se debe:
Separar los exponentes y mantisas Elegir el número que tenga el menor exponente y apartar su mantisa a la derecha el numero de veces necesarias que indique la diferencia en módulo de los exponentes. El exponente resultado debe ser igual al mayor de los exponentes. Efectuar las operaciones (sumas o restas)con las mantisas. Normalizar el resultado. Examinar el rebose.
29
Multiplicaciones y divisiones
Multiplicación Mas fáciles porque no es necesario que los exponentes sean iguales. Las mantisas se deben multiplicar como números enteros con una coma fija Los exponentes se deben sumar Si existe un operando igual a cero entonces el resultado también es cero Su fórmula es:
30
División: Trata de dividir las mantisas y restar al exponente del dividendo el exponente del divisor. Tener presente que si el dividendo es cero entonces el resultado es cero. Además si el divisor es cero entonces es un desbordamiento. Si el dividendo y el divisor son cero, el resultado será un número desconocido. Su fórmula es:
31
Algoritmo de multiplicación y división
Para hacer multiplicaciones o divisiones se debe: Hacer la suma/resta de los exponentes. Realizar la multiplicación/división de las mantisas. Definir el signo del resultado. Normalización del resultado. Examinar el rebose.
32
Sumas Restas Multiplicaciones
Divisiones Se producen por resultados demasiado grandes (desbordamientos) o demasiado pequeños (subdesbordamientos). Reboses Desbordamiento del exponente Subdesbordamiento del exponente Subdesbordamiento de mantisa Desbordamiento de mantisa En el proceso de alineación de las mantisas, si los dígitos se desplazan hacia la derecha más allá de su bit menos significativo, lo que sucede es que se pierden y es como redondear el resultado. En la suma de dos mantisas del mismo signo se puede producir un arrastre del bit más significativo. Esto se soluciona mediante la renormalización, desplazando a la derecha un bit la mantisa y ajustando el exponente Es cuando un exponente positivo E excede de su valor máximo permitido. Es cuando un exponente negativo E excede de su valor máximo permitido
33
La precisión en la representación en coma flotante
No existe la misma precisión en toda la recta Real. Para más precisión o mayor densidad de números =Acercarnos a cero Menor precisión = Alejarnos hacia más o menos infinito.
34
Representación de la aritmética en Coma Flotante en el computador
La representación se realiza usando dos unidades aritméticas en como fija: - Unidad de tratamiento de mantisas. - Unidad de tratamiento de exponente. -Unidad de Control ( conectará ambas unidades y se encargará de normalizar adecuadamente el resultado.
35
Simple Precisión (32 bits)
El IEEE 754 para simple precisión determina que: Debe existir una cadena de 32 bits. El primer bit será usado para el signo “S” Los 8 siguientes pertenecerán a los bits del exponente “E” Los últimos 23 se usarán para la mantisa “M”.
36
El momento en que normalizamos, queda expresado como un número con coma y algo más(1,…), ese uno o el numero que fuera no se guarda pero no se debe olvidar su existencia. Tomando en cuenta el entero oculto la precisión para la mantisa es de 24 bits. Los tamaños del exponente y de la mantisa, establecen para la aritmética del computador un rango desde 2.0 · 10 −38 hasta 2.0 ·
37
Cómo el coprocesador representa la simple precisión
38
Doble Precisión El IEEE 754 para doble precisión determina que:
El signo está representado en el bit 63. El exponente desde el bit 52 hasta el bit 62 La mantisa desde el bit 0 hasta el 51 La aritmética del computador cubre fracciones tan pequeñas como 2.0 diez x y números tan grandes como 2.0 diez x
39
Cómo el coprocesador representa doble precisión
40
Precision extendida Reservar un bit para almacenar resultados intermedios Su mayor longitud ayuda a proteger los resultados de redondeo o de overflow El bit implícito se almacena en la mantisa
41
Redondeo Cuando un valor no se puede almacenar:
Redondeo hacia el valor más próximo Redondeo hacia +∞ Redondeo hacia -∞ Redondeo hacia 0.
42
Ejemplo de coprocesador
Incorporado a los procesadores 8086/8088 Mejorando su capacidad de tratamiento de números, al aumentar el juego de instrucciones añade 8 registros de coma flotante de 80 bits además de instrucciones adicionales. Usa su propia cola de instrucciones para controlar el flujo de instrucciones del 8086/8088, ejecutando sólo aquellas instrucciones que le corresponden, e ignorando las destinadas a la CPU. Entre sus instrucciones el NDP 8087 tiene un juego completo de funciones aritméticas y un potente núcleo de funciones exponenciales, logarítmicas y trigonométricas. Usa un formato interno de números en coma flotante de 80 bits con el cual gestiona siete formatos exteriores.
43
Importante saber que… Pueden existir hasta 4 coprocesadores, con un máximo de 32 registros cada uno, a los que se puede ingresar por medio de instrucciones determinadas. Coprocesador 0: Coprocesador de control de sistema Coprocesador 1: Reservado para la unidad de coma flotante. Coprocesador 2: Reservado para implementaciones específicas. Coprocesador 3: Reservado para la unidad de coma flotante en MIPS64 Release 2.
44
No olvidar: Intel creo el procesador Pentium el cual contaba con muchas mejoras una de ellas es el procesador principal, el coprocesador aritmético y el utilizar pipeline para incrementar la velocidad de realización de instrucciones. Supero 5 veces al modelo 80486, principalmente en operaciones complejas. Pentium trabajaba como dos procesadores de 32 bits distintos (conocidos como canaleta U y canaleta V), siendo capaz de procesar dos instrucciones en cada ciclo de reloj (una en cada canaleta)
45
Por ejemplo: Un programa ordenaba que el procesador sumase 4 números: X + Y +Z + T El procesador podía usar la canaleta U para sumar X e Y y la canaleta V para sumar Z y T en el primer ciclo de reloj, pero en el segundo ciclo sólo había un cálculo a realizar, el resultado de las dos sumas.
46
Conclusiones Al culminar el presente trabajo hemos entendido la importancia del coprocesador aritmético dentro de nuestros computadores ya que sin este, el procesador solo podría trabajar con enteros y la ejecución de programas como CAD, juegos tridimensionales, entre otros sería imposible. También llamó nuestra atención que anteriormente no le veían utilidad al coprocesador a tal punto de ni siquiera integrarlo, pero con el paso del tiempo, el avance tecnológico y el aumento de aplicaciones que usan al coprocesador, se vio en la necesidad de incluirlo en el ordenador, con lo cual se abarató el costo de dicho componente. La realización de esta investigación nos ha permitido ampliar nuestro conocimiento acerca de los componentes del computador, específicamente el coprocesador, además trabajar en grupo, nos facilitó integrar nuestra ideas, complementándonos y permitiendo el auto aprendizaje de cada miembro del grupo.
47
Extras Ejemplo transformación a IEEE-754
Ejemplos operaciones ejemplos operaciones.pdf Ejemplos Conversión de SFP a DFP conversion simple a doble.pdf Microprocesador Como Se Fabrica Un Microprocesador[1].mp4 Microprocesador 8086 y coprocesador aritmético 8087 Microprocessor System 8086 and 8087[1].mp4 Ejercicio práctico ejercicio práctico.pdf
48
Bibliografía [1] L. Durán, Ampliar, configurar y reparar su PC, Barcelona: MARCOMBO S.A, 2006. [2] D. Alpern, «alpertron,» [En línea]. Available: [Último acceso: 09 Octubre 2015]. [3] J.J. López Villalobos ; R. Mata Vázquez ; , «Conciencia Tecnológica,» [En línea]. Available: [Último acceso: 9 Octubre 2015]. [4] A. Álvarez y M. Lindig, «Scielo,» [En línea]. Available: [Último acceso: 9 Octubre 2015]. [5] F. Oberman, «Stanford,» Diciembre [En línea]. Available: [Último acceso: 9 Octubre 2015]. [6] V. Llombart, «Universitat De Valéncia,» 12 Noviembre [En línea]. Available: [Último acceso: 9 Octubre 2015]. [7] IEEE Standards Association, «IEEE Standards Association,» [En línea]. Available: [Último acceso: 9 Octubre 2015]. [8] L. Rincón y Á. Serrano, «División de Arquitectura de Computadores,» [En línea]. Available: [Último acceso: 9 Octubre 2015].
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.