coprocesador


Un coprocesador es un procesador de computadora que se utiliza para complementar las funciones del procesador principal (la CPU ). Las operaciones realizadas por el coprocesador pueden ser aritmética de coma flotante , gráficos , procesamiento de señales, procesamiento de cadenas , criptografía o interfaz de E/S con dispositivos periféricos. Al descargar tareas intensivas del procesador del procesador principal , los coprocesadores pueden acelerar el rendimiento del sistema. Los coprocesadores permiten personalizar una línea de computadoras, de modo que los clientes que no necesitan el rendimiento adicional no tengan que pagar por ello.

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

Para hacer el mejor uso del tiempo del procesador de la computadora central , las tareas de entrada/salida se delegaron en sistemas separados llamados Channel I/O . El mainframe no requeriría ningún procesamiento de E/S en absoluto, sino que simplemente establecería parámetros para una operación de entrada o salida y luego indicaría al procesador de canal que lleve a cabo toda la operación. Al dedicar subprocesadores relativamente simples para manejar el formateo y el procesamiento de E/S que consumen mucho tiempo, se mejoró el rendimiento general del sistema.

Los coprocesadores para la aritmética de coma flotante aparecieron por primera vez en las computadoras de escritorio en la década de 1970 y se volvieron comunes a lo largo de la década de 1980 y principios de la de 1990. Los primeros procesadores de 8 y 16 bits usaban software para realizar operaciones aritméticas de punto flotante. Cuando se admitía un coprocesador, los cálculos de coma flotante se podían realizar muchas veces más rápido. Los coprocesadores matemáticos eran compras populares para los usuarios de software de diseño asistido por computadora (CAD) y cálculos científicos y de ingeniería. Algunas unidades de punto flotante, como AMD 9511 , Intel 8231/8232 y Weitek FPU, se trataron como dispositivos periféricos, mientras que otras, como Intel 8087 ,Motorola 68881 y National 32081 se integraron más estrechamente con la CPU.

Otra forma de coprocesador era un coprocesador de pantalla de video, como se usa en la familia Atari de 8 bits , las computadoras domésticas Texas Instruments TI-99 / 4A y MSX , que se denominaron " Controladores de pantalla de video ". El conjunto de chips personalizado Commodore Amiga incluía una unidad conocida como Copper , así como un Blitter para acelerar la manipulación de mapas de bits en la memoria.

A medida que se desarrollaron los microprocesadores, disminuyó el costo de integrar las funciones aritméticas de coma flotante en el procesador. Las altas velocidades del procesador también dificultaron la implementación de un coprocesador estrechamente integrado. Los coprocesadores matemáticos empaquetados por separado ahora son poco comunes en las computadoras de escritorio. Sin embargo, la demanda de un coprocesador de gráficos dedicado ha crecido, particularmente debido a una creciente demanda de gráficos 3D realistas en juegos de computadora .


Coprocesador aritmético AM9511-1
Microarquitectura i8087 e i80287
microarquitectura i80387
CPU Intel 80386DX con coprocesador matemático 80387DX