Red de conocimiento informático - Material del sitio web - ¿El multiprocesador es multi-CPU?

¿El multiprocesador es multi-CPU?

El procesamiento paralelo no solo mejora el rendimiento, sino que también simplifica el diseño al reflejar mejor el comportamiento del sistema y la división natural de los recursos de desarrollo.

La gente puede definir el diseño multiprocesador como un sistema que asigna varias funciones y tareas a múltiples procesadores para completar, y estos procesadores se coordinan y se comunican entre sí para garantizar un comportamiento consistente. Los sistemas multiprocesador son más complejos que los diseños de un solo procesador. Requiere programación adicional para funciones de limpieza y coordinación, y es más complejo de depurar. Esto se debe a que los sistemas multiprocesador requieren una interacción entre procesadores que no existe en una arquitectura de un solo procesador. A pesar de la complejidad añadida del diseño de multiprocesadores, se ha utilizado en computadoras y estaciones de trabajo de alto rendimiento durante muchos años y se está abriendo camino en un número cada vez mayor de aplicaciones de sistemas integrados.

Una de las principales razones por las que las personas utilizan varios procesadores es que pueden proporcionar más potencia de procesamiento que un solo procesador. Algunos factores de rendimiento a considerar al elegir entre una arquitectura de un solo procesador y una arquitectura de múltiples procesadores son: el rendimiento de los algoritmos en tiempo real, el tiempo de respuesta requerido para manejar eventos externos, la cantidad de procesamiento matemático intensivo requerido y la capacidad. para operar en paralelo. Las arquitecturas multiprocesador brindan cierta capacidad para equilibrar cargas y brindan la oportunidad de utilizar procesadores personalizados para completar diversas tareas del sistema.

Ahora considere lo difícil que sería el procesamiento en tiempo real si el tiempo de ejecución fuera muy incierto. Por ejemplo, el comportamiento del sistema se vuelve más incierto cuando un procesador limpia la canalización, encuentra fallas de caché, implementa transformaciones asociativas o utiliza ejecución especulativa fuera de orden para mejorar la eficiencia. Asimismo, si el mismo procesador también debe ejecutar tareas de alta prioridad, secuenciales y en tiempo real, especialmente cuando estas tareas utilizan "instrucciones de múltiples temas" que se bloquearán durante la ejecución de la tarea, al "interrumpir el servicio", el tiempo de respuesta para el manejo. Los acontecimientos externos se verán muy afectados. Los problemas de rendimiento y los problemas de determinismo para cada tipo de tarea se pueden separar y superar si se utilizan procesadores adecuados para cada tarea. Los discos duros son un ejemplo de esto: la función de interfaz de host está bien implementada con un procesador equipado con caché, mientras que la parte de servocontrol del sistema se realiza mediante un procesador simplificado.

La arquitectura dsp admite una rápida transferencia de datos a través de una estrecha interacción con los periféricos, centrándose así en realizar un procesamiento matemático iterativo continuo, principalmente operaciones de acumulación múltiple. Para lograr esta capacidad de procesamiento continuo, estos procesadores suelen emplear estructuras de memoria complejas (como múltiples buses y una combinación de tipos de memoria) y conjuntos de instrucciones especializados que incluyen operaciones matemáticas de punto fijo y operaciones aritméticas especializadas que son aceleradas por hardware. Aunque estos mecanismos son muy adecuados para el uso previsto, su rendimiento no es tan bueno como el de los mecanismos de procesamiento de control y respuesta que utilizan la arquitectura RISC.

La tendencia de desarrollo de utilizar módulos programables en el diseño de sistemas de un solo chip (SOC) ha brindado a las personas más opciones en términos de procesadores y núcleos que admiten explícitamente diseños de multiprocesadores integrados. El rendimiento proporcionado por estos diseños de SOC es escalable y se puede programar para superar el rendimiento que las arquitecturas de un solo procesador pueden proporcionar para aplicaciones con uso intensivo de computación; estos diseños de SOC pueden reflejar mejor el rendimiento de muchos sistemas en red, sistemas multimedia y otros sistemas integrados. Segmentación natural de sistemas que son inherentemente adecuados para aplicaciones multicanal o convergentes. Para este tipo de sistemas, el uso de múltiples procesadores puede equilibrar y alcanzar mejor los objetivos de ingeniería de rendimiento, costo, consumo de energía, riesgo y tiempo de comercialización.

Muchos diseños integrados están adoptando arquitecturas multiprocesador, no solo por razones de rendimiento. Otras consideraciones incluyen: recursos de software y herramientas de desarrollo existentes, estabilidad de componentes clave (como aquellos que respaldan estándares en evolución), esfuerzos de ingeniería simplificados, seguridad del sistema, requisitos de tolerancia a fallas, precio de cumplimiento, consumo de energía, requisitos térmicos y electromagnéticos y otras limitaciones. . Las arquitecturas multiprocesador brindan la flexibilidad y la oportunidad de utilizar los recursos de ingeniería más adecuados para completar cada tarea de diseño.

La experiencia de las personas con la arquitectura y la idoneidad de los recursos existentes para el proyecto actual influirán en su decisión de adoptar un diseño de procesador único o multiprocesador (Referencia 1). El código o los sistemas operativos existentes pueden dictar qué procesadores se eligen y cómo se asigna el personal de ingeniería. Por ejemplo, tener diferentes grupos trabajando en el front-end, back-end, control y procesamiento de señales afecta la elección de la arquitectura del procesador. En aplicaciones de teléfonos móviles, el grupo de procesamiento de señales desarrolla funciones de control de radio y funciones de codificación y decodificación de voz ejecutadas por chips DSP, mientras que el grupo de aplicaciones desarrolla funciones de interfaz hombre-máquina ejecutadas por microcontroladores. La estabilidad de los estándares o protocolos, como las aplicaciones multimedia e inalámbricas, afecta si las personas implementan estos protocolos o estándares como software para garantizar la programabilidad y la flexibilidad, o si usan algún hardware para reducir el consumo y el costo de energía.

Dado que la complejidad del software no aumenta linealmente con la longitud del código, sino que aumenta más rápido que linealmente, el software está diseñado para ejecutarse en múltiples procesadores dedicados tanto como en un solo procesador. Ejecutarlo acorta el tiempo de desarrollo y simplifica. depuración y mejora la confiabilidad del sistema. El uso de procesadores separados facilita la comprensión de las interacciones entre las diversas tareas del sistema que están particionadas y minimiza las interdependencias entre tareas causadas por tiempos de espera de interrupción, carga del procesador, uso de memoria, etc. El foco de las interacciones puede pasar del intercambio de recursos entre tareas al intercambio y uso exclusivo de recursos entre procesadores. Se puede simplificar la distribución del rendimiento simplemente haciendo que todo el sistema operativo admita algunas partes del sistema y apenas admita otras partes.

Incluso si un solo procesador puede cumplir con los requisitos de rendimiento, es poco probable que cumpla con los requisitos de costo, consumo de energía, interferencia electromagnética y presupuesto térmico. El uso de múltiples procesadores puede reducir la frecuencia del reloj para evitar ciertas frecuencias de RF y reducir la interferencia electromagnética y la disipación de calor del sistema. Si la partición de tareas permite asignar el procesamiento en ráfagas de alta velocidad a un procesador y desactivarlo durante los períodos en los que no está funcionando, mientras otro procesador maneja operaciones continuas, el consumo de energía del sistema se puede reducir aún más. Al descargar la seguridad o el cifrado a un procesador independiente del procesador principal, puede aumentar la seguridad de su sistema y ejecutar un sistema operativo estándar que simplifica la ingeniería inversa.

A pesar de los numerosos beneficios de integrar varios núcleos en un solo dispositivo, la gente todavía prefiere distribuir físicamente una arquitectura multiprocesador en varios dispositivos discretos. Por ejemplo, si el sistema requiere redundancia o tolerancia a fallas, intente aislar las fallas del procesador entre sí. Otro ejemplo de arquitectura multiprocesador distribuido es el modelo de red de procesadores. Este enfoque es apropiado cuando ubicar cada procesador cerca de procesamiento y señales relacionadas (como en un automóvil) requiere debilitar la comunicación entre procesadores, reducir el ruido de la señal y reducir el peso del cableado del sistema.

Es importante tener en cuenta que algunas aplicaciones no se pueden dividir fácilmente entre varios procesadores. Si se requiere una comunicación estrecha entre tareas divididas y no se puede pensar en un método de interconexión adecuado para soportar los requisitos de rendimiento o latencia del sistema, entonces es necesario reconsiderar la partición o abandonar la solución multiprocesador.

La adopción exitosa de una arquitectura multiprocesador depende de la cantidad y el tipo de operaciones paralelas inherentes a la aplicación (consulte la barra lateral "Explotación de operaciones paralelas"). Muchas arquitecturas de uniprocesador emplean técnicas como canalización e instrucciones superescalares, que se basan en el paralelismo temporal o espacial a nivel de instrucción para mejorar el rendimiento. SIMD (Instrucción única de datos múltiples) y las tecnologías de subprocesos múltiples permiten que los sistemas empleen operaciones paralelas ya sea en el nivel de abstracción de datos o en el nivel de abstracción de subprocesos. La partición de software es clave para el éxito de los sistemas multiprocesamiento, y dicha arquitectura es más beneficiosa cuando se construye para aprovechar el paralelismo a nivel de proceso del sistema.

El multiprocesamiento simétrico (smp) es una topología de procesador homogénea en la que el sistema distribuye dinámicamente la carga de procesamiento entre múltiples procesadores "compartidos" estrechamente acoplados en la red de procesadores. En un sistema de este tipo, el sistema operativo normalmente tiene conocimiento de cada procesador y gestiona la distribución de tareas. Estos sistemas mantienen subsistemas coherentes con la caché y pueden transferir varios procesos, incluido el núcleo del sistema operativo, entre procesadores para equilibrar la carga.

Existe un límite para aumentar o disminuir la cantidad de procesadores porque a medida que aumenta la cantidad de procesadores, la sobrecarga de comunicación del sistema se convierte en una proporción mayor de la carga de trabajo total del sistema. La gestión de servidores de red y servidores de transacciones en entornos multiusuario es el objetivo común de la arquitectura SMP.