Las CPU de las computadoras tienen hyper-threading, pero ¿por qué las CPU de los teléfonos móviles no tienen diseños de hyper-threading?
Primero, hablemos de la tecnología Hyper-Threading.
La tecnología Hyper-Threading (HT) fue propuesta y aplicada por primera vez por Intel. El principio es integrar dos unidades de procesamiento lógico en una unidad de procesamiento de un solo núcleo, de modo que dos subprocesos que realizan operaciones de punto flotante de núcleo entero puedan procesarse por unidad de tiempo, simulando operaciones de doble núcleo.
Una CPU que utiliza tecnología Hyper-Threading se puede simular como dos CPU.
Por ejemplo, una unidad de procesamiento central (núcleo de CPU) equivale a un taller de producción, luego una unidad de procesamiento lógica equivale a un trabajador en la línea de producción. En el pasado, la CPU era una unidad de procesamiento central integrada con una unidad de procesamiento lógica, lo que equivalía a un taller de producción con un grupo de trabajadores, cada uno trabajando bajo carga máxima. Una CPU que utiliza tecnología Hyper-Threading equivale a dos grupos de trabajadores en un taller de producción, lo que duplica la mano de obra.
El principio de funcionamiento de la tecnología Hyper-Threading es: un proceso de un programa se puede dividir en varios subprocesos. La tecnología Hyper-Threading permite que dos unidades de procesamiento lógico procesen dos subprocesos al mismo tiempo por unidad de tiempo, uno para operaciones intensivas y el otro para entrada/salida, interacción persona-computadora, etc. , la jerga se llama "ejecución asincrónica concurrente". Las CPU sin tecnología Hyper-Threading solo pueden manejar un subproceso a la vez. Primero maneja operaciones intensivas, luego E/S y la interacción persona-computadora, permitiendo que los subprocesos se pongan en cola y esperen, lo que en la jerga se denomina "bloqueo de subprocesos".
Suponemos que un programa se puede dividir en dos procesos, ABCD y EFGH. Cuando la CPU no tiene tecnología Hyper-Threading, primero se debe ejecutar ABCD y luego EFGH. * * *Requiere 8 unidades de tiempo. Si la CPU tiene tecnología Hyper-Threading, se necesitan cuatro unidades de tiempo para que una unidad lógica ejecute ABCD y cuatro unidades de tiempo para que otra unidad lógica ejecute EFGH, ahorrando así la mitad del tiempo.
Se puede ver que la tecnología Hyper-Threading puede ahorrar la mitad del tiempo de ejecución del programa.
Esta diferencia de eficiencia en el procesamiento de subprocesos se puede utilizar como ejemplo. El montaje del televisor se puede dividir simplemente en dos pasos principales: entrega de material y montaje. Hay dos grupos de trabajadores en el taller (núcleos de CPU con tecnología Hyper-Threading), de modo que un grupo de trabajadores transporta materiales y el otro grupo de trabajadores ensambla, y los dos pasos se pueden completar en una unidad de tiempo. En un taller con un solo grupo de trabajadores (sin núcleo de CPU con tecnología Hyper-Threading), los trabajadores solo pueden transportar materiales primero, luego ensamblarlos después de transportarlos, y solo pueden completar un paso por unidad de tiempo.
Después de hablar sobre qué es el hyper-threading y sus ventajas y desventajas, responda la pregunta principal: ¿Por qué la CPU del teléfono móvil no utiliza la tecnología hyper-threading?
Debido a que la mayoría de las aplicaciones móviles no son aplicaciones complejas, no se requiere tecnología de hiperprocesamiento. Más importante aún, la tecnología Hyper-Threading utiliza dos unidades lógicas, que pueden entenderse como dos CPU de "núcleo blando". En comparación con el concepto de diseño de CPU de múltiples núcleos para mejorar la eficiencia de ejecución del programa a través de núcleos duros, sus ventajas no son sobresalientes.
Además, el diseño de la CPU del teléfono móvil satisface la necesidad de mejorar el rendimiento y al mismo tiempo reducir el consumo de energía, por lo que el modo multinúcleo de "núcleo grande + núcleo pequeño" es más adecuado que la tecnología Hyper-Threading.
Como resultado, las CPU de alto rendimiento para aplicaciones pesadas utilizarán tecnología Hyper-Threading, mientras que los teléfonos móviles para aplicaciones ligeras utilizarán diseños multinúcleo con mejor eficiencia energética.
La tecnología Hyper-Threading significa que un solo núcleo de procesador puede procesar miles de instrucciones por segundo, pero solo puede procesar una instrucción en un momento determinado, es decir, un solo subproceso. La tecnología Hyper-Threading puede convertir un procesador físico en dos procesadores lógicos en la capa de software, lo que permite que el procesador procese más instrucciones y datos en paralelo en un momento determinado, es decir, el número de subprocesos excede el número (2). Por supuesto, el rendimiento real no se puede duplicar. Después de todo, sólo existe un núcleo físico. Ésta es la diferencia entre multinúcleo lógico y multinúcleo físico.
Se puede decir que Hyper-Threading es una tecnología que puede "movilizar" completamente los recursos de procesamiento temporalmente inactivos dentro de la CPU. Esta tecnología se utiliza principalmente en procesadores Intel y AMD y tiene un efecto significativo en la mejora del rendimiento multiproceso del procesador sin aumentar significativamente el área del chip.
Sin embargo, los procesadores que utilizan tecnología multihilo deben diseñarse en microarquitectura. La arquitectura ARM de la CPU de un teléfono móvil no considera el hiperprocesamiento, pero agrega núcleos físicos. Cada núcleo tiene una canalización independiente y un caché independiente.
Este método es beneficioso para reducir el consumo de energía, aunque conducirá a un aumento del área, para las CPU de teléfonos móviles, la relación de consumo de energía es más importante que el rendimiento del costo. Esta es una compensación. ¿Es la tecnología Hyper-Threading una tecnología que puede mejorar en gran medida el rendimiento, como una CPU de cuatro hilos de doble núcleo o una CPU de cuatro hilos de cuatro núcleos, cuál es más eficiente? No es necesario entrar en detalles. Si se trata solo de mejorar el rendimiento de subprocesos múltiples de las CPU de los teléfonos móviles, es posible que la tecnología de hiperprocesamiento no se adapte al entorno.
Por supuesto, la CPU del teléfono móvil no está exenta de tecnología Hyper-Threading. Al igual que el Lenovo k900 y el Motorola MT788 de hace unos años, todos utilizan el procesador Intel Atom, de doble núcleo y cuatro hilos.
Solo porque las aplicaciones de Android no son compatibles con la arquitectura X86, Intel se retiró gradualmente del mercado de SOC para teléfonos móviles. Recientemente, ha habido muchas cooperaciones con Intel en exposiciones nacionales en China. Recuerdo que la exposición de 2017 también dijo en la conferencia de prensa que después de la exposición se lanzaría una arquitectura de CPU de teléfono móvil de desarrollo propio que utiliza tecnología Hyper-Threading. Se estima que la tecnología también tiene licencia de Intel. Que podamos ver CPU de teléfonos móviles con tecnología Hyper-Threading en el futuro depende de si el plan de Spreadtrum se desarrolla sin problemas.
La tecnología Hyper-Threading de la CPU puede mejorar en gran medida el rendimiento multinúcleo de la CPU. Aunque la cantidad de transistores ocupados por la CPU es mucho menor que la de los núcleos físicos puros, la apertura de la tecnología Hyper-Threading también requiere muchos transistores y consumo de energía adicionales, como las CPU de las computadoras. Sin tecnología Hyper-Threading, el i7-9700 consume mucha menos energía y genera menos calor que el i9-9900.
Así que para las CPU de teléfonos móviles actuales, 8 núcleos son completamente suficientes. No importa cuántos núcleos de alto rendimiento se combinen con varios núcleos de bajo consumo, se puede lograr un equilibrio entre rendimiento y consumo de energía. Si se agrega la tecnología Hyper-Threading, la CPU del teléfono móvil alcanzará los 16 subprocesos, lo que inevitablemente provocará un aumento significativo en el consumo de energía, pero obviamente productos como los teléfonos móviles no necesitan un rendimiento tan fuerte.
Además, la mayoría de las aplicaciones móviles actualmente no están optimizadas para CPU de múltiples núcleos, porque la optimización de múltiples núcleos en sí es una tarea muy compleja. Por lo tanto, una vez que las CPU de los teléfonos móviles se han desarrollado a 8 núcleos, su velocidad de desarrollo. La desaceleración ha aumentado en los últimos años y muestra que las CPU de los teléfonos móviles actualmente no necesitan tecnología de hiperprocesamiento. Después de todo, el consumo de energía y la duración de la batería suelen ser más importantes, y el teléfono móvil en sí no es una herramienta de productividad como una computadora. la demanda de desempeño no es urgente.
En 2002, Intel lanzó la tecnología Hyper-Threading, que puede dividir un procesador Intel con un núcleo físico en dos núcleos lógicos, procesando así dos subprocesos al mismo tiempo por unidad de tiempo, logrando el propósito de simular doble -operación central. En otras palabras, Hyperthreading es una tecnología que puede aprovechar al máximo los recursos inactivos del procesador.
No todos los procesadores Intel actualmente soportan esta tecnología, y los procesadores que soportan Hyper-Threading estarán marcados en la caja.
Aunque utilizando la tecnología hyper-threading se pueden ejecutar dos subprocesos al mismo tiempo, no es como dos CPU reales, cada CPU tiene recursos independientes. Cuando dos subprocesos necesitan un recurso al mismo tiempo, uno de ellos debe detenerse temporalmente y abandonar el recurso hasta que los recursos estén libres. Por lo tanto, el rendimiento de Hyper-Threading no es igual al rendimiento de dos CPU.
La tecnología Hyper-threading puede incluso reducir el rendimiento del sistema cuando se ejecutan aplicaciones de un solo subproceso, especialmente cuando los sistemas operativos de múltiples subprocesos ejecutan software de un solo subproceso. Cabe señalar que las CPU que utilizan tecnología Hyper-Threading requieren el soporte del chipset y del software para aprovechar al máximo la tecnología. Si solo la CPU admite la tecnología Hyper-Threading sin que el chipset y el software cooperen, la tecnología Hyper-Threading es solo una charla vacía.
Me alegra decirte que sí.
La CPU del teléfono móvil tiene hyper-threading y es la serie de chips ATOM de Intel especialmente diseñada para tabletas y teléfonos móviles. Por ejemplo, las series z25x0 y z35x0 de z2580, y Lenovo k900, ZTE 975 y Asus Zenphone que usan z2580 son todos teléfonos móviles con hiperprocesamiento.
La tecnología Hyper-threading es una patente de Intel. Si otros fabricantes quieren utilizarlo, deberán pagar regalías.
Qualcomm y MediaTek, los principales fabricantes actuales de CPU para teléfonos móviles, utilizan núcleos de plástico para diseñar chips, es decir, se pegan hasta 8 chips para formar una CPU. Algunos de estos ocho chips tienen un bajo consumo de energía, algunos tienen un rendimiento deficiente, algunos tienen un alto consumo de energía y otros tienen un buen rendimiento. De esta manera, si el teléfono ejecuta muchas tareas, se activarán uno o más núcleos de alto rendimiento. Evite que el teléfono se atasque Cuando el teléfono ejecuta algunas tareas, activará núcleos de bajo rendimiento para ahorrar energía.
¿No es esto malo?
Esto también puede lograr el propósito de subprocesos múltiples y se implementa en la capa física. Cada núcleo tiene memoria dedicada. Desde esta perspectiva, es más eficiente que el hyper-threading, pero por supuesto también consume más materiales.
Existen muchas compensaciones y consideraciones en el diseño de CPU. Hyper-threading es una patente de las computadoras, por lo que los teléfonos móviles están un poco acostumbrados~
Eso es todo, espero que pueda responder la pregunta del autor original~
Usemos el más popular lenguaje para entender esta pregunta.
1. De hecho, las CPU de los teléfonos móviles solían admitir hyper-threading. Se trata del procesador ATOM de Intel, que también se utiliza en los teléfonos Lenovo y Huawei. Este es un procesador de arquitectura x86. De todos modos, Intel dejó de desarrollar CPU para teléfonos móviles. Hoy en día, las CPU de los teléfonos móviles son básicamente de arquitectura ARM.
2. Hyper-threading es una patente de Intel y una patente de x86. Incluso si los procesadores ARM realmente pueden soportar hyper-threading, primero hay que preguntarle a Intel si pueden.
3. El nombre científico de hyper-threading es multi-threading simulado. Intel introdujo recursos superescalar, supercanal, ejecución fuera de orden y otros recursos en la CPU, y estos recursos a menudo estaban inactivos, por lo que desarrolló tecnología de hiperprocesamiento para utilizar mejor los recursos inactivos de la CPU y permitir que estos recursos inactivos ejecuten otro hilo. . Desde la perspectiva del sistema operativo, es otra CPU.
4. Si comprende el significado de Hyper-Threading, debe comprender que existe porque el rendimiento de un solo núcleo de la CPU es demasiado fuerte, por lo que hay recursos inactivos disponibles.
5. En comparación con las CPU de escritorio basadas en x86, las CPU basadas en ARM en los teléfonos móviles son como la luz de las luciérnagas y la luz del sol y la luna, pero el rendimiento de las CPU de los teléfonos móviles es relativamente relativo. débil y no hay recursos adicionales proporcionados para hyper-threading.
6. La tecnología Hyper-Threading requiere nuevos transistores para ser compatible. Para los teléfonos móviles, el ratio de consumo de energía es el más importante. Además, requiere soporte del sistema, que aún no está listo.
7. El futuro es prometedor. Quizás algún día, cuando las condiciones sean propicias, los procesadores ARM realmente puedan admitir SMT.
Esto es realmente fácil de entender. Los procesadores de teléfonos móviles son completamente diferentes a los procesadores de escritorio. En la actualidad, los procesadores de escritorio son principalmente AMD e Intel, y los procesadores de teléfonos móviles son principalmente ARM. Y desde el punto de vista del diseño, no hay comparación entre los procesadores integrados y los procesadores de escritorio. El nivel de escritorio requiere un alto rendimiento, y la disipación de calor y la estabilidad se pueden resolver con un radiador en lugar de refrigeración por aire, mientras que ARM debe requerir buena estabilidad y bajo consumo de energía. No hay forma de solucionar este problema con un radiador externo. El rendimiento de un solo núcleo del procesador ARM es insuficiente y solo puede ejecutarse según un conjunto de instrucciones simple, sin mencionar el uso de Hyper-Threading para mejorar la utilización de recursos, y el consumo de energía y la disipación de calor también son inciertos.
Además, el funcionamiento del hyper-threading requiere la estrecha integración del hardware y el sistema operativo. Los sistemas operativos actuales de los teléfonos móviles son Android e IOS, que no están optimizados para la arquitectura de CPU de Intel. El sistema operativo también es inherentemente deficiente y no puede manejar el funcionamiento de hiperprocesamiento del procesador.
Porque la CPU del ordenador es un sistema informático de instrucciones complejo. La CPU del teléfono móvil es un sistema informático de instrucciones simplificadas.
Las instrucciones complejas significan que la CPU utiliza múltiples instrucciones para completar una función. Instrumentación de instrucciones simplificada La CPU utiliza una instrucción para completar una función. Las CPU de instrucciones complejas pueden dividir varias instrucciones para completar una función en varios núcleos para ejecutarlas simultáneamente, mientras que la tecnología Hyper-Threading permite que un núcleo ejecute dos o más instrucciones, lo que hace que las instrucciones se ejecuten de manera más eficiente.
La CPU de instrucciones reducida puede usar una instrucción para completar una función y la eficiencia de la instrucción es muy alta, por lo que es imposible que un núcleo ejecute dos instrucciones al mismo tiempo. Por lo tanto, las CPU de instrucción reducida no tienen capacidades de hiperprocesamiento.
En el diseño actual de CPU, las instrucciones complejas y las instrucciones simplificadas aprenden unas de las fortalezas de las otras para reducir sus respectivas desventajas. La tecnología Hyper-Threading definitivamente aparecerá en futuras CPU de instrucción reducida. En ese momento, puede ser una CPU que combine instrucciones complejas e instrucciones simplificadas.
¿Quién dijo que no hay más? Los procesadores Inter Ztom tienen tecnología Hyper-Threading, como: Motorola MT788 Z2480 de un solo núcleo y doble hilo; Lenovo K900 Z2580 de doble núcleo y cuatro hilos, etc. Es solo que los procesadores móviles de la serie Inter son demasiado pequeños y rara vez se usan, pero no se puede decir que no estén disponibles.
El consumo de energía y el calor causado por Hyper-Threading también son un problema. Ahora es cuestión de que el teléfono no necesite Hyper-Threading para calentarse.
Si vuelvo a utilizar Hyper-Threading, ¡creo que el teléfono se quemará! Además, el hyper-threading deja al procesador sin espacio libre para seguir funcionando, lo que provoca que el teléfono se caliente mucho. Si el procesador de un teléfono móvil quiere lograr un consumo de energía óptimo, la batería debe ser tan grande. Hyper-threading aumentará el consumo de energía del teléfono y acortará el tiempo de espera, lo cual no es tan fácil como un núcleo de procesador con tareas que procesar. También se puede utilizar una tecnología Hyper-Threading cuando el rendimiento de un único núcleo de procesador es sólido. Si el kernel en sí no es lo suficientemente potente, el uso de Hyper-Threading reducirá el rendimiento del teléfono.
En pocas palabras, las CPU de las computadoras utilizan conjuntos de instrucciones complejos y tienen procesos muy largos. Algunas operaciones ocupan solo una parte del proceso, en lugar de todo el proceso de varios episodios. Ciertas etapas del oleoducto estarán inactivas. Con la tecnología Hyper-Threading, los recursos de canalización inactivos se pueden virtualizar en nuevas entradas de datos. Las CPU de los teléfonos móviles utilizan un conjunto de instrucciones reducido, el proceso en sí es muy corto y hay muy pocos recursos inactivos. Incluso si se utiliza una línea de montaje inactiva, el número de etapas es demasiado corto y no se puede hacer nada.