AMP o ASMP (del inglés: multiprocesamiento asimétrico , ruso: multiprocesamiento asimétrico o multiprocesamiento asimétrico ) es un tipo de arquitectura de sistema informático multiprocesador que se utilizó antes de que se creara la tecnología de multiprocesamiento simétrico (SMP). También se utiliza como una alternativa más económica en sistemas compatibles con SMP.
En un sistema con multiprocesamiento asimétrico, no todos los procesadores juegan el mismo papel. Por ejemplo, un sistema puede usar (ya sea a nivel de hardware o de sistema operativo) solo un procesador para ejecutar el código del sistema operativo, o asignar solo un procesador para realizar operaciones de E/S. En otros sistemas AMP, todos los procesadores pueden ejecutar código del sistema operativo y operaciones de E/S, por lo que desde este lado se comportan como un sistema multiprocesador simétrico, pero ciertos periféricos solo se pueden conectar a un procesador, por lo que desde el punto de vista de trabajar con este, el el sistema parece asimétrico con el hardware.
En las décadas de 1960 y 1970, se podía aumentar la potencia de procesamiento de una computadora simplemente añadiéndole otro procesador. Agregar otro procesador idéntico era más barato que comprar una computadora nueva que fuera el doble de rápida. Además, simplemente agregar otro procesador era más rentable que comprar una segunda computadora completa, lo que requería una sala de computadoras separada, equipo periférico adicional y personal de mantenimiento.
Los primeros sistemas a los que se les pudo agregar un segundo procesador fueron el B5000 de Burroughs, el DECsystem-1055 y el IBM System/360 modelo 65MP. Además, algunas universidades también han construido computadoras experimentales con procesadores duales [1] .
Sin embargo, el problema de agregar un procesador era que los sistemas operativos de la época solo estaban diseñados para computadoras con un solo procesador, y realizar cambios para admitir dos procesadores de manera confiable requería mucho tiempo. Para sortear esta dificultad, los sistemas operativos con soporte para un procesador solo se modificaron ligeramente para proporcionar un soporte mínimo para un segundo procesador. "Soporte mínimo" significaba que el sistema operativo se ejecutaba en el "procesador de arranque" (procesador de arranque), y solo los programas de usuario se ejecutaban en el segundo procesador. Por ejemplo, en el Burroughs B5000, el segundo procesador no tenía la capacidad de ejecutar "código de control" en el hardware [2] .
En otros sistemas, el sistema operativo podía ejecutarse en cualquiera de los procesadores, pero todos los periféricos estaban conectados a un solo procesador o solo se podía acceder a ciertos periféricos a través de cada procesador.
El Burroughs B5000 [2] podría agregar opcionalmente un "Procesador B". Este segundo procesador, a diferencia del "Procesador A", no tenía acceso a los periféricos, pero ambos procesadores tenían acceso a la memoria compartida. El sistema operativo se ejecutaba solo en el procesador A y la tarea del usuario se ejecutaba en el procesador B. Cuando la tarea del usuario necesitaba acceso a las funciones del sistema operativo, el procesador B emitía una llamada al sistema al código del sistema operativo en el procesador A, se detenía y esperaba el código del sistema operativo. para procesar la llamada del sistema, y solo después de haber recibido el resultado del procesamiento de la llamada del sistema, continuó el trabajo. [3] .
Control Data Corporation ofreció dos variantes en la "serie CDC 6000", que tenía dos procesadores: el CDC 6500 [4] de doble procesador CDC 6400 y el CDC 6700, que era una supercomputadora CDC 6600 con un procesador CDC 6400 agregado. .
Estos sistemas se construyeron de manera algo diferente a los otros sistemas multiprocesador mencionados en este artículo. El sistema operativo aquí funcionó solo en procesadores periféricos, y la tarea del usuario funcionó en los procesadores centrales. Por lo tanto, estos sistemas no pueden ser de facto ni sistemas AMP ni sistemas SMP .
Digital Equipment Corporation (DEC) ofreció a los clientes una versión de su computadora DECsystem-1050 con dos procesadores KA10 [5] [6] . Luego, la misma opción estaba presente en la línea de computadoras PDP-10.
Digital Equipment Corporation desarrolló, pero nunca lanzó al mercado, una versión multiprocesador de la computadora PDP-11 , la PDP-11/74 [7] , que ejecutaba una versión multiprocesador del sistema operativo RSX-11M [8] . En este sistema, cualquiera de los procesadores podía ejecutar el código del sistema operativo y realizar E/S, pero no todos los periféricos estaban disponibles para cada uno de los procesadores; la mayoría de los periféricos estaban conectados a un solo procesador, por lo que el procesador sin periféricos con los que trabajar cualquier dispositivo procesador-vecino requerido para enviar una solicitud especial [8] .
La primera computadora multiprocesador VAX de DEC, la VAX-11/782, era asimétrica. (Solo el primer procesador tenía acceso a los dispositivos de E/S [9] ).
Se pueden instalar hasta tres procesadores en la computadora Univac 1108-II y sus variantes posteriores [10] [11] . Estas computadoras ejecutaban el sistema operativo UNIVAC EXEC 8, pero no está claro en la documentación disponible hasta qué punto el sistema operativo admitía el multiprocesamiento asimétrico o simétrico.
La adición de un segundo procesador al IBM System/370 modelo 168 se ofreció de dos formas [12] . El primero se ofreció en forma de un módulo especial IBM 3062 Attached Processing Unit , en el que el procesador no tenía acceso a los canales de E/S y, por lo tanto, funcionaba de manera similar, como el "Procesador B" en la computadora Burroughs B5000, o como segundo procesador en el DEC VAX-11/782. En la segunda opción, se suponía que debía conectar un procesador completo, que era similar al modelo de 65MP de la línea System / 360 anterior .
En noviembre de 1989, Compaq anunció el lanzamiento del primer servidor multiprocesador Compaq SystemPro x86 con dos procesadores Intel 80386 de 33 MHz [13] . Los modelos posteriores se lanzaron con el procesador Intel 80486 cuando ingresó al mercado. Compaq SystemPro era un sistema multiprocesador asimétrico: el segundo procesador se instalaba en la placa de expansión además del estándar y ejecutaba solo programas de usuario, mientras que el primer procesador manejaba interrupciones, llamadas al sistema y cargaba el sistema operativo. Esto hizo posible usar diferentes procesadores en un sistema, por ejemplo, agregar un Intel 486 al primer Intel 386 en una placa de expansión y viceversa.
En ese momento, solo los sistemas operativos Novell NetWare , Microsoft LAN Manager y SCO UNIX/386 [14] admitían el multiprocesamiento en la arquitectura x86 .
De todos los modelos de la línea SystemPro, sólo el último modelo, el SystemPro XL, se ofreció con capacidad de multiprocesador simétrico estándar hasta que fue reemplazado por la línea Compaq ProLiant de servidores SMP en el otoño de 1993 .