Articulo de referencia

Coprocesador

Coprocesador aritmético AM9511-1 Un coprocesador es un procesador informático que complementa las funciones del procesador principal (la CPU ). Las operaciones que realiza el co...

Coprocesador aritmético AM9511-1

Un coprocesador es un procesador informático que complementa las funciones del procesador principal (la CPU ). Las operaciones que realiza el coprocesador pueden incluir aritmética de punto flotante , gráficos , procesamiento de señales , procesamiento de cadenas de caracteres , criptografía o interfaz de entrada/salida con dispositivos periféricos. Al descargar tareas que consumen muchos recursos del procesador principal , los coprocesadores pueden acelerar el rendimiento del sistema. Los coprocesadores permiten personalizar una línea de ordenadores, de modo que los clientes que no necesitan el rendimiento adicional no tienen que pagar por él.

Funcionalidad

Los coprocesadores varían en su grado de autonomía. Algunos (como las FPU ) dependen del control directo mediante instrucciones de coprocesador , integradas en el flujo de instrucciones de la CPU . Otros son procesadores independientes por derecho propio, capaces de trabajar de forma asíncrona; sin embargo, no están optimizados para código de propósito general , o son incapaces de hacerlo debido a un conjunto limitado de instrucciones enfocado en acelerar tareas específicas . Es común que estos se controlen mediante acceso directo a memoria (DMA), con el procesador anfitrión (una CPU) creando una lista de comandos . El Emotion Engine de PlayStation 2 contenía una unidad vectorial SIMD inusual , similar a un DSP , capaz de ambos modos de operación.

Historia

Para optimizar el uso del tiempo de procesamiento de la computadora central , las tareas de entrada/salida se delegaron a sistemas independientes denominados E/S de canal . La computadora central no requería ningún procesamiento de E/S; en su lugar, establecía los parámetros para una operación de entrada o salida y luego enviaba una señal al procesador de canal para que realizara la operación completa. Al dedicar subprocesadores relativamente sencillos al formateo y procesamiento de E/S, que consumían mucho tiempo, se mejoró el rendimiento general del sistema.

Los coprocesadores para aritmética de punto flotante aparecieron por primera vez en las computadoras de escritorio en la década de 1970 y se generalizaron durante la década de 1980 y principios de la de 1990. Los primeros procesadores de 8 y 16 bits utilizaban software para realizar operaciones aritméticas de punto flotante . Cuando se disponía de un coprocesador, los cálculos de punto flotante podían realizarse mucho más rápido. Los coprocesadores matemáticos eran muy populares entre los usuarios de software de diseño asistido por computadora (CAD) y para cálculos científicos y de ingeniería. Algunas unidades de punto flotante, como las AMD 9511 , Intel 8231/8232 y Weitek FPU, se consideraban dispositivos periféricos, mientras que otras, como la Intel 8087 , Motorola 68881 y National 32081, estaban más integradas con la CPU.

Otro tipo de coprocesador era el coprocesador de visualización de vídeo, utilizado en los ordenadores Atari de 8 bits , TI-99/4A y los ordenadores domésticos MSX , denominados " controladores de visualización de vídeo ". El chipset personalizado de Amiga incluye una unidad de este tipo conocida como Copper , así como un blitter para acelerar la manipulación de mapas de bits en memoria.

Con el desarrollo de los microprocesadores, el costo de integrar las funciones aritméticas de punto flotante en el procesador disminuyó. Las altas velocidades de los procesadores también dificultaron la implementación de un coprocesador estrechamente integrado. Actualmente, los coprocesadores matemáticos empaquetados por separado son poco comunes en las computadoras de escritorio. Sin embargo, la demanda de un coprocesador gráfico dedicado ha aumentado, particularmente debido a la creciente demanda de gráficos 3D realistas en los videojuegos .

Intel

Microarquitectura i8087 e i80287
microarquitectura i80387

El IBM PC original incluía un zócalo para el coprocesador de coma flotante Intel 8087 (también conocido como FPU ), una opción popular entre quienes utilizaban el PC para diseño asistido por ordenador o cálculos matemáticos complejos. En esa arquitectura, el coprocesador aceleraba la aritmética de coma flotante hasta cincuenta veces. Los usuarios que solo utilizaban el PC para procesamiento de texto, por ejemplo, se ahorraban el elevado coste del coprocesador, que no habría mejorado el rendimiento en operaciones de manipulación de texto.

El 8087 estaba estrechamente integrado con el 8086/8088 y respondía a las instrucciones de operación en código máquina de punto flotante insertadas en el flujo de instrucciones del 8088. Un procesador 8088 sin un 8087 no podía interpretar estas instrucciones, lo que requería versiones separadas de programas para sistemas con y sin FPU, o al menos una prueba en tiempo de ejecución para detectar la FPU y seleccionar las funciones de la biblioteca matemática adecuadas.

CPU Intel 80386DX con coprocesador matemático 80387DX

Otro coprocesador para el procesador central 8086/8088 era el coprocesador de entrada/salida 8089. Utilizaba la misma técnica de programación que el 8087 para las operaciones de entrada/salida, como la transferencia de datos de la memoria a un dispositivo periférico, reduciendo así la carga de la CPU. Sin embargo, IBM no lo utilizó en el diseño del IBM PC e Intel detuvo el desarrollo de este tipo de coprocesador.

El microprocesador Intel 80386 utilizaba un coprocesador matemático opcional (el 80387 ) para realizar operaciones de punto flotante directamente en el hardware . El procesador Intel 80486DX incluía hardware de punto flotante en el chip. Intel lanzó un procesador de menor costo, el 80486SX, que no tenía hardware de punto flotante, y también vendió un coprocesador 80487SX que, al instalarse, desactivaba el procesador principal, ya que el 80487SX era un 80486DX completo con un conjunto diferente de conexiones de pines. [ 1 ]

Los procesadores Intel posteriores al 80486 integraban hardware de coma flotante en el chip principal. Los avances en la integración eliminaron la ventaja de costos que suponía vender el procesador de coma flotante como un componente opcional. Resultaría muy difícil adaptar las técnicas de circuitos impresos, adecuadas para una velocidad de procesador de 75 MHz, para cumplir con los estándares de retardo, consumo de energía e interferencia de radiofrecuencia requeridos a velocidades de reloj en el rango de los gigahercios. Estos procesadores de coma flotante integrados en el chip aún se denominan coprocesadores, ya que operan en paralelo con la CPU principal.

Durante la era de las computadoras de escritorio de 8 y 16 bits, otra fuente común de coprocesadores de punto flotante fue Weitek . Estos coprocesadores tenían un conjunto de instrucciones diferente al de los coprocesadores Intel y utilizaban un zócalo distinto, que no todas las placas base soportaban. Los procesadores Weitek no proporcionaban funciones matemáticas trascendentales (por ejemplo, funciones trigonométricas) como la familia Intel x87, y requerían bibliotecas de software específicas para soportar sus funciones. [ 2 ]

Motorola

La familia Motorola 68000 contaba con los coprocesadores 68881/68882 , que proporcionaban una aceleración de velocidad de punto flotante similar a la de los procesadores Intel. Los ordenadores que utilizaban la familia 68000 pero no estaban equipados con el procesador de punto flotante por hardware podían interceptar y emular las instrucciones de punto flotante mediante software, lo que, aunque más lento, permitía distribuir una única versión binaria del programa para ambos casos. El coprocesador de gestión de memoria 68451 fue diseñado para funcionar con el procesador 68020. [ 3 ]

coprocesadores modernos

Desde 2001, las unidades de procesamiento gráfico ( GPU ) dedicadas, en forma de tarjetas gráficas, son habituales. Algunos modelos de tarjetas de sonido incorporaban procesadores dedicados que proporcionaban mezcla multicanal digital y efectos DSP en tiempo real ya entre 1990 y 1994 ( como ejemplos típicos, la Gravis Ultrasound y la Sound Blaster AWE32 ), mientras que la Sound Blaster Audigy y la Sound Blaster X-Fi son ejemplos más recientes.

En 2006, AGEIA anunció una tarjeta de expansión para ordenadores llamada PhysX PPU . PhysX se diseñó para realizar cálculos físicos complejos, liberando así a la CPU y la GPU de la tarea de realizar cálculos que consumen mucho tiempo. Se diseñó para videojuegos, aunque teóricamente podría desarrollarse para otros usos matemáticos. En 2008, Nvidia adquirió la compañía y descontinuó la línea de tarjetas PhysX; la funcionalidad se añadió mediante software, permitiendo que sus GPU renderizaran PhysX en los núcleos normalmente utilizados para el procesamiento gráfico, mediante su motor de software Nvidia PhysX.

En 2006, BigFoot Systems presentó una tarjeta de expansión PCI a la que bautizaron como KillerNIC, la cual ejecutaba su propio kernel Linux especial en un FreeScale PowerQUICC que funcionaba a 400 MHz, denominando al chip FreeScale Unidad de Procesamiento de Red o NPU.

La SpursEngine es una tarjeta de expansión multimedia con un coprocesador basado en la microarquitectura Cell . Las SPU son, a su vez, coprocesadores vectoriales.

En 2008, Khronos Group lanzó OpenCL con el objetivo de brindar soporte a las CPU de propósito general, las GPU de ATI/AMD y Nvidia (y otros aceleradores) con un único lenguaje común para los núcleos de cómputo .

En la década de 2010, algunos dispositivos de computación móvil implementaron el concentrador de sensores como un coprocesador. Ejemplos de coprocesadores utilizados para gestionar la integración de sensores en dispositivos móviles incluyen los coprocesadores de movimiento Apple M7 y M8 , el Qualcomm Snapdragon Sensor Core y el Qualcomm Hexagon , y la Unidad de Procesamiento Holográfico para Microsoft HoloLens .

En 2012, Intel anunció el coprocesador Intel Xeon Phi . [ 4 ]

En 2016, varias empresas estaban desarrollando coprocesadores destinados a acelerar las redes neuronales artificiales para la visión y otras tareas cognitivas (por ejemplo, unidades de procesamiento visual , TrueNorth y Zeroth ), y en 2018, dichos chips de IA se encontraban en teléfonos inteligentes como los de Apple y varios fabricantes de teléfonos Android.

Otros coprocesadores

  • La arquitectura MIPS admite hasta cuatro unidades de coprocesador, utilizadas para la gestión de memoria y la aritmética de punto flotante, y dos coprocesadores no definidos para otras tareas, como aceleradores gráficos. [ 5 ]
  • Mediante el uso de FPGA (matrices de puertas programables en campo), se pueden crear coprocesadores personalizados para acelerar tareas de procesamiento específicas, como el procesamiento de señales digitales (por ejemplo, Zynq , que combina núcleos ARM con FPGA en un solo chip).
  • Aceleradores TLS/SSL , utilizados en servidores ; estos aceleradores solían ser tarjetas, pero en la actualidad son instrucciones para criptografía en las CPU convencionales.
  • Algunos chips multinúcleo se pueden programar de manera que uno de sus procesadores sea el procesador principal y los demás procesadores actúen como coprocesadores de apoyo.
  • El coprocesador PCI-e Matrix 2000 de 128 núcleos de China es un acelerador propietario que requiere una CPU para funcionar y se ha empleado en una actualización de la supercomputadora Tianhe-2 de 17.792 nodos (2 Intel Knights Bridge + 2 Matrix 2000 cada una), ahora denominada 2A, duplicando aproximadamente su velocidad a 95 petaflops, superando a la supercomputadora más rápida del mundo . [ 6 ]
  • Acorn Computers ofrecía una variedad de coprocesadores para diversos modelos , especialmente para las series BBC Micro y BBC Master . En lugar de dispositivos gráficos o aritméticos especializados, se trataba de CPU de propósito general (principalmente la 6502, la Zilog Z80, la National Semiconductor 32016 y la ARM 1), conocidas como segundos procesadores, que normalmente se conectaban al sistema anfitrión mediante una arquitectura de paso de mensajes denominada Tube . Los productos de Acorn incluían estos procesadores en una unidad de expansión para BBC Micro, junto con la memoria y los circuitos de interfaz correspondientes. El software podía ejecutarse de forma independiente en el segundo procesador, y se podían escribir aplicaciones para descargar trabajo del sistema anfitrión, permitiéndole realizar tareas de entrada/salida y, por consiguiente, acelerar el rendimiento. Dado que existía una amplia gama de CPU disponibles en diversos productos, un BBC Micro equipado con uno de estos coprocesadores podía ejecutar sistemas operativos para otras arquitecturas de procesador, como CP/M, DOS y Unix, junto con el software correspondiente.

Con el tiempo, las CPU han tendido a absorber la funcionalidad de los coprocesadores más populares. Las FPU se consideran ahora una parte integral de la arquitectura principal de un procesador; las unidades SIMD impulsaron el procesamiento multimedia, asumiendo el rol de diversas tarjetas aceleradoras DSP ; e incluso las GPU se han integrado en los chips de la CPU. No obstante, las unidades especializadas siguen siendo populares fuera de los ordenadores de sobremesa, para obtener potencia adicional y permiten una evolución continua independientemente de las líneas de productos de procesadores principales.

Véase también

Referencias

  1. ^ Scott Mueller, Actualización y reparación de PC, 15.ª edición, Que Publishing, 2003 ISBN 0-7897-2974-1páginas 108–110
  2. ^ Scott Mueller, Actualización y reparación de PC, Segunda edición , Que Publishing, 1992 ISBN 0-88022-856-3págs. 412-413
  3. ^ William Ford, William R. Topp Lenguaje ensamblador y programación de sistemas para la familia M68000 Jones & Bartlett Learning, 1992 ISBN 0-7637-0357-5página 892 y siguientes.
  4. ^ "Intel ofrece una nueva arquitectura para el descubrimiento con los coprocesadores Intel® Xeon Phi™" . Newsroom.intel.com. 12 de noviembre de 2012. Archivado del original el 3 de junio de 2013. Consultado el 16 de junio de 2013 .
  5. ^ Erin Farquhar, Philip Bunce, Manual del programador MIPS , Morgan Kaufmann, 1994 ISBN 1-55860-297-6, apéndice A3 página 330
  6. ^ "El Tianhe-2A de China utilizará un acelerador propio y alcanzará un pico de 95 petaflops" . hpcwire.com . 25 de septiembre de 2017. Archivado del original el 1 de diciembre de 2020. Consultado el 7 de abril de 2018 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Coprocessor&oldid=1324202400 "