# Coprocesador

Un coprocesador es un microprocesador de un ordenador utilizado como suplemento de las funciones del procesador principal (la CPU). Las operaciones ejecutadas por uno de estos coprocesadores pueden ser operaciones de aritmética en coma flotante, procesamiento gráfico, procesamiento de señales, procesado de texto, criptografía, etc. Y su función es evitar que el procesador principal tenga que realizar estas tareas de cómputo intensivo, estos coprocesadores pueden acelerar el rendimiento del sistema por el hecho de esta descarga de trabajo en el procesador principal y porque suelen ser procesadores especializados que realizan las tareas para las que están diseñados más eficientemente. Además estos coprocesadores permiten a los compradores de ordenadores personalizar su equipamiento ya que sólo tendrán que pagar ese hardware específico quienes deseen o necesiten tener el rendimiento extra ofrecido por estos dispositivos.
Un coprocesador no es un procesador de propósito general, algunos coprocesadores no pueden ni siquiera leer las instrucciones desde la memoria sino que ejecutan flujo de instrucciones. Estos procesadores requieren de un procesador principal que lea las respuestas del coprocesador y maneje todas las operaciones junto con las funciones del procesador. En algunas arquitecturas el coprocesador es otro procesador de propósito general, pero que solamente ejecutará un rango de funciones limitadas por el procesador principal que le ejercerá el control. Nótese la diferencia de este modelo con los términos de un multiprocesador, que también tiene más de un microprocesador de propósito general.

## Historia

Los coprocesadores fueron vistos por primera vez en los mainframes donde se añadían para funcionalidad opcional como el soporte matemático para punto flotante, otro uso muy común era para el control de los canales de Entrada/Salida, aunque este dispositivo se conocía normalmente como controlador de canal, un ejemplo de estos dispositivos lo tenemos en los controladores DMA.
Los coprocesadores también comenzaron a hacerse comunes en los ordenadores de escritorio a través de los 1980s y a principios de los 1990s debido a las limitaciones del diseño de la CPU y consideraciones de coste. El coprocesador matemático fue un extra común para los ordenadores de gama alta como el Macintosh II y muchas estaciones de trabajo que requerían capacidades de aritmética en coma flotante, pero hasta principios de los 90 la demanda de estos dispositivos fue mínimo. Otro coprocesador que empezó a ser común durante esta era fue el coprocesador gráfico, usado por la Familia Atari de 8 bits y el Commodore Amiga. El procesador gráfico en los Commodore era denominado habitualmente como "Copper".
Finalmente, el coste de los coprocesadores matemáticos fue lo suficientemente bajo para incluir en el microprocesador de propósito general (CPU) las funciones del coprocesador matemático eliminando, de este modo, los componentes separados. La demanda de coprocesador gráfico dedicado también ha crecido, sin embargo, debido a la alta demanda de procesamiento gráfico por parte de los videojuegos de ordenador que requieren gráficos 3D por computadora muy reales; este procesador dedicado elimina una considerable carga computacional a la CPU principal e incrementa el rendimiento en las aplicaciones gráficas intensivas. A partir del año 2000, las tarjetas gráficas con una Unidad de Procesado de Gráfico (GPU) son comunes. Las tarjetas de sonido actuales también vienen con un potente procesador incluido con extensiones multimedia para eliminar tiempo de cómputo en al procesador principal. En 2006, AGEIA anunció otra tarjeta de expansión para ordenadores llamada PhysX, este dispositivo tiene un procesador integrado diseñado para ejecutar computación de los aspectos físicos de los escenarios 3D liberando de esta carga a la CPU y GPU. Está diseñado para trabajar con videojuegos, pero teóricamente se podrán ejecutar otras tareas matemáticas en él.