¿Cuál es la diferencia entre tecnología multinúcleo y multiproceso? !
No hay duda de que los términos "multinúcleo" y "multihilo" se han convertido rápidamente en las dos escuelas de pensamiento más destacadas en el diseño de arquitectura de procesadores actual, al igual que los dos términos "confucianismo" y "Mo" durante el Período de los Reinos Combatientes. Las dos principales escuelas de pensamiento político luchaban a muerte, mientras que los núcleos múltiples y los subprocesos múltiples son compatibles entre sí. Hoy en día, casi cualquier procesador avanza hacia el desarrollo de múltiples. -núcleo y subprocesos múltiples al mismo tiempo. Aunque los dos términos se utilizan en todas partes, ¿alguien sabe la diferencia real entre ellos? ¿Qué es lo más importante a la hora de ejecutar el diseño? ¿Se debe dar prioridad a los núcleos múltiples o a los subprocesos múltiples? Parece que todos quieren saber más sobre esto. El siguiente artículo intenta explicar las diferencias y tratar de que todos comprendan los conceptos del mecanismo y las diferencias entre los dos sin involucrar detalles realmente complicados. ■ Los procesos son anteriores a los subprocesos Según la historia del desarrollo de la tecnología de la información, en las unidades miniaturizadas que se subdividen y luego se cortan durante la ejecución de los programas de software, primero hay procesos y luego subprocesos. La proporción de unidades de subprocesos es El itinerario es. más pequeño y puede haber varios subprocesos en un itinerario. Cada subproceso en un itinerario comparte los recursos de direccionamiento de memoria y el mecanismo de administración de memoria establecidos por el mismo itinerario, incluido el nivel de derecho de ejecución, el espacio de memoria, la ubicación de la pila, etc. El hilo en sí solo tiene algunos atributos variables necesarios para la ejecución, y el resto se basa y cumple con las regulaciones establecidas por el itinerario. Por el contrario, se utilizan diferentes configuraciones de memoria entre programas, incluidas diferencias en las direcciones iniciales como paginación y segmentación, diferencias en los derechos de ejecución, diferencias en la profundidad de la pila, etc. Si un procesador ejecuta el viaje A, finalmente, es necesario cambiar para ejecutar el viaje B. Para esto, la configuración de administración de memoria debe reubicarse y cambiarse. Si esta reubicación está dentro del procesador, está bien. Si está en la memoria caché o incluso en la memoria principal del sistema, este tipo de programa de conmutación y transferencia. ser perjudicial para el proceso El daño al rendimiento de la ejecución es muy grande, porque al mismo tiempo que lleva completar la reubicación y el cambio de programas, el procesador ya puede ejecutar de decenas a miles de instrucciones. ■Aceleración pensando en dos rutas Por lo tanto, si desea evitar la pérdida de eficiencia de este tipo de conmutación, puede pensar desde dos ángulos. La primera forma de pensar es expandir la solución al nivel del sistema informático general y diseñar. y configure más en una computadora varios procesadores, luego el mismo sistema operativo controla y administra varios procesadores al mismo tiempo, y envía (también llamado: envía) cada programa que se ejecutará a un procesador para su ejecución. programa al mismo tiempo, acelerando así la eficiencia de ejecución general. ¡ciertamente! Este método de aceleración debe tener un requisito previo, es decir, el sistema operativo debe poder controlar, ejercer y utilizar tecnología de subprocesos múltiples al compilar. Si se compila con una configuración de sistema de un solo subproceso, entonces el sistema operativo no podrá. para controlar un solo chip en el servidor. Para los procesadores anteriores, no es necesario hablar de que el sistema operativo sea responsable de enviar múltiples ejecuciones simultáneas de programas de aplicación al mismo tiempo. Incluso si el sistema operativo admite múltiples programas, si la aplicación todavía solo admite un único programa, la situación sigue siendo en vano. El sistema operativo no puede dividir el programa de un solo trazo y aún así solo lo envía a un único procesador para su ejecución, sin ningún problema. forma de acelerarlo. Utilice varios procesadores para ejecutar al mismo tiempo, y cada procesador ejecuta un proceso. Este es un método de aceleración. Otro método de aceleración es: intente no cambiar la configuración de administración de memoria para evitar la degradación del rendimiento del cambio. este concepto. Sin embargo, los subprocesos también requieren la combinación de programas para su uso. La aparición e implementación del concepto de subprocesos ha llegado a la etapa en la que "C ++ está en duda y Java está en el futuro. Por lo tanto, C ++ solo puede admitir y utilizar múltiples". subprocesos a través de llamadas API. Esto es necesario. El programa anterior debe reescribirse y debe reescribirse para tener una API que admita subprocesos múltiples. Por el contrario, Java, que salió después que C++, admite de forma nativa subprocesos múltiples y puede aprovechar las características de subprocesos múltiples y sus beneficios de aceleración sin tener que volver a escribir. Con los subprocesos, la división y el corte de la ejecución son más delicados. El mecanismo del subproceso no solo se puede acelerar en un sistema con múltiples procesadores, sino que también puede beneficiarse de un solo procesador. En un sistema con múltiples procesadores, cada procesador puede procesar. No solo puede ejecutar un programa por sí solo, sino que, por supuesto, también puede ejecutar un subproceso por sí solo. En un sistema de un solo procesador, dado que se omite la reubicación de la configuración de administración de memoria, también se puede acelerar. Asignación de ejecución más delicada y flexible.
■ Efectos secundarios de los hilos Aunque los hilos tienen la ventaja de ser fáciles de usar, también tienen la desventaja de los efectos secundarios, y estas ventajas y desventajas son las mismas y no se pueden separar. La desventaja es que cada hilo comparte el mismo conjunto. de configuraciones y mecanismos de administración de memoria Si ocurre un error, falla o intrusión en la ejecución de un hilo, todos los demás hilos en el mismo proceso también se verán afectados y afectados. El mismo proceso será confuso y destruido. De esto se puede ver que: el hilo en realidad es un método acelerado con algunos sacrificios de seguridad. Además, algunas personas pueden malinterpretar Literalmente, multinúcleo significa que se están ejecutando varios procesadores al mismo tiempo. Cada procesador puede ejecutar un proceso o un subproceso, pero un procesador con capacidades de subprocesos múltiples no significa que pueda ejecutar. Varios subprocesos al mismo tiempo. De hecho, un procesador con función de subprocesos múltiples todavía está ejecutando un subproceso al mismo tiempo. Sin embargo, la información interna y las variables del subproceso original se pueden dejar de lado temporalmente y luego ejecutar otros subprocesos. después de la ejecución, vuelva al hilo original que estaba a mitad de la ejecución. Puede volver a cambiar incluso antes de que se complete la ejecución y todo el proceso de cambio se realiza dentro del procesador, sin la necesidad de reubicar y reemplazar el caché y la memoria. acelera la ejecución cambiando rápidamente los hilos. Por el contrario, si un procesador sin capacidad de subprocesos múltiples desea cambiar la ejecución de otro subproceso a la mitad de la ejecución de un subproceso, debe mover el contenido y la información relevantes del subproceso original y del subproceso actual al caché o memoria, y luego automáticamente El caché y la memoria introducen otro hilo. Dado que este movimiento lleva bastante tiempo, la mayoría de las personas optan por terminar de ejecutar el hilo original y luego introducir el siguiente hilo. Esto puede resultar más económico en términos de tiempo. Sin embargo, no importa si un subproceso se ejecuta por completo antes de que se ejecute el siguiente, o si el subproceso entra y sale, no será más rápido ni más eficiente que un procesador con capacidades de subprocesos múltiples. Llegados a este punto podemos resumir: 1. Cada procesador (cada núcleo) en un sistema multinúcleo y multiprocesador puede ejecutar diferentes itinerarios (o subprocesos) al mismo tiempo. 2. Un procesador con capacidades de subprocesos múltiples, ya sea que admita dos subprocesos, cuatro subprocesos u ocho subprocesos, estos subprocesos deben estar en el mismo viaje, por lo que un procesador (un núcleo) solo puede ejecutar un viaje de doble núcleo. Un procesador puede ejecutar dos procesos (o subprocesos) diferentes al mismo tiempo, y un procesador de cuatro núcleos puede ejecutar cuatro procesos (o subprocesos) diferentes al mismo tiempo. 3. Si se ejecuta un programa que no admite subprocesos múltiples y su ejecución se divide en procesos pero no en subprocesos como máximo, entonces la función de subprocesos múltiples en cada procesador no se puede utilizar y este tipo de programa tiene una larga historia. Relativamente, los programas que admiten de forma nativa subprocesos múltiples tienen una historia más corta, pero la tecnología de la información siempre ha avanzado rápidamente y la brecha entre los dos niveles diferentes de soporte es de solo unos pocos años. ■ ¿El desarrollo real de la industria puede demostrar que el multinúcleo es realmente mejor que o antes que el multiproceso? Esto puede demostrarse mediante el desarrollo real de la industria. El procesador UltraSPARC T1 de Sun (código de I+D: Niagara) es un diseño de ocho núcleos y cuatro subprocesos, pero el posterior procesador UltraSPARC T2 (código de I+D: Niagara 2) es un diseño de ocho núcleos. core El diseño de ocho subprocesos significa tener múltiples núcleos, darles prioridad a los núcleos y luego extraer subprocesos para mejorar la ejecución de los subprocesos. De manera similar, el procesador Xenon diseñado por IBM para Microsoft Xbox 360 tiene un diseño de tres núcleos y dos subprocesos. El número de núcleos es aún mayor que el número de subprocesos. Otro ejemplo es el procesador Cell desarrollado conjuntamente por IBM, Sony. y Toshiba Cell de primera generación (código de I+D: DD1) tiene nueve núcleos y su configuración es media de ocho núcleos (SPE) y un núcleo de uso general (PPE). El Cell de nueva generación (código de I+D: DD2). apunta a la parte de PPE. El desarrollo de subprocesos duales significa una vez más que los núcleos son más importantes que los subprocesos. Cuando Cell solo se expande y mejora agregando un subproceso, en lugar de agregar otro núcleo, puede saber que esto es solo una pequeña mejora. ■ Además de "multinúcleo" y "multihilo", también hay "multiorden" y "multimáquina". Finalmente, hablemos de "multiorden", que tiene diferentes tendencias de aceleración que multi-. núcleo y subproceso múltiple. "Multiorden" es una invención del autor. La palabra se refiere a instrucciones de ejecución en un nivel más básico que los procesos de ejecución (Proceso) y los subprocesos (Subproceso). al mismo tiempo tanto como sea posible, y la instrucción múltiple es ejecutar tantos procesos como sea posible al mismo tiempo. Para ejecutar múltiples instrucciones a la vez, tanto el VLIW académico como el EPIC industrial son arquitecturas basadas en el concepto de orden múltiple.
Hasta ahora, la multiprogramación no es inviable, pero solo es adecuada para procesar señales digitales, imágenes, etc. Los chips gráficos, procesadores de medios, etc. implementan principalmente la arquitectura VLIW. Sin embargo, la multiprogramación no ha sido efectiva en la informática general. En cuanto a la investigación científica y similares, las operaciones de alta eficiencia también tienden a utilizar niveles más altos de paralelismo: múltiples máquinas (el clúster, la cuadrícula, el alcance de ejecución y la distribución son similares a los subprocesos y los viajes. Parece que son multiorden y multiproceso). /thread y multi-machine tienen sus propios usos. Depende de la idoneidad de la aplicación.