¿Por qué los teléfonos Android tienen más núcleos que computadoras?

80

Las computadoras portátiles generalmente tienen como máximo cuatro núcleos, y los núcleos dobles son probablemente más comunes. Recientemente he cambiado de quadcore a dualcore y puedo confirmar que hay un número limitado de casos de uso para quadcore, incluso con tareas intensivas de CPU.

Por otro lado, en los teléfonos móviles, los quadcores, hexacores y octacores parecen ser comunes. ¿Por qué? ¿Qué tareas pueden utilizarlos?

Entiendo que big.LITTLE puede ser parte de la respuesta. Es decir, el beneficio principal de tantos núcleos no es la capacidad de usarlos todos simultáneamente, sino más bien usar un núcleo con consumo de energía apropiado para la carga de trabajo actual. Sin embargo, por ejemplo, el Snapdragon 625 tiene ocho núcleos Cortex-A53, lo que no parece ser un caso para big.LITTLE.

Quizás la arquitectura ARM tenga un punto más bajo de rendimiento óptimo por vatio. Es decir, tener un solo núcleo sintonizado para un rendimiento óptimo por vatio resulta en un rendimiento más bajo en ARM que en Intel. Por lo tanto, se utilizan más núcleos para ofrecer el rendimiento. Esto es solo una hipótesis.

Pero incluso en este caso, no veo qué carga de trabajo puede usar eficientemente, digamos, ocho núcleos en un teléfono móvil. En las computadoras portátiles, puedo imaginar algunas como la compilación completa (no incremental) de un proyecto. ¿Pero en los teléfonos?

  • Los juegos pueden requerir mucho rendimiento, pero generalmente requieren rendimiento de GPU en lugar de CPU, ¿no?
  • Teóricamente, múltiples núcleos podrían acelerar la compilación de Android Lollipop / Marshmallow AOT al instalar o al actualizar (es decir, la fase "Optimización de aplicaciones 3/121"). Sin embargo, no estoy seguro de si esto puede utilizar múltiples núcleos. Hasta donde recuerdo el código, solo se está compilando una aplicación a la vez, pero tal vez haya algún paralelismo dentro del proceso de compilación en sí.
  • Además, Android 7+ podría utilizar múltiples núcleos al compilar. Pero dado que, según los informes, se compila cuando está inactivo y cargando, el beneficio parece ser bastante mínimo. Al menos cuando uno carga el teléfono durante la noche, realmente no me importa si tarda 30 minutos o dos horas en tal situación.
v6ak
fuente
Como señalé en mi respuesta, tenga en cuenta que parece estar mirando las cosas al revés. La ejecución de muchos núcleos / paralelos es la norma, no es su teléfono lo que es una anomalía por tener muchos núcleos, es la CPU de la PC lo que es una anomalía.
motoDrizzt
44
Su pregunta es defectuosa, las PC pueden tener más núcleos que teléfonos. intel.com/content/www/us/en/products/processors/core/x-series/… Y eso ni siquiera entra en máquinas de clase servidor, que pueden tener docenas o incluso cientos de núcleos. (Y algunas supercomputadoras entran en el rango de miles de núcleos.)
JAB
3
@JAB Claro, pero no estoy hablando del número máximo de núcleos, sino del número típico. Para las computadoras portátiles, más de cuatro núcleos son bastante poco comunes, pero podría encontrar alguna excepción, tal vez con Xeon. Para los teléfonos móviles, incluso los octacores parecen ser relativamente comunes.
v6ak
44
"Recientemente he cambiado de quadcore a dualcore y puedo confirmar que hay un número limitado de casos de uso para quadcore, incluso con tareas intensivas de CPU". - ¿Puedes ampliar y explicar cómo llegaste a esa conclusión?
Abdul
@Abdul Viene principalmente de mis observaciones (ver la carga del sistema usando htop o una herramienta similar) y parcialmente de mis conclusiones. Incluso algunas tareas en las que esperaría paralelización (por ejemplo, renderizar usando OpenScad) son de un solo núcleo. Firefox (ESR) generalmente consume como máximo un núcleo. Compilación incremental: no lo he medido, pero intuitivamente, no hay muchas oportunidades para encontrar tareas independientes. (La compilación completa es un caso diferente.)
v6ak

Respuestas:

63

Como ya ha notado, la estrategia de combinación big.LITTLE (técnicamente, HMP , clústeres heterogéneos de multiprocesamiento ) es la razón principal de tantos (y a veces abrumadoramente) núcleos. Un dispositivo móvil a menudo se encuentra con múltiples escenarios, incluidos los de carga pesada y de carga ligera.

Un ejemplo extremo de clase de consumidor es el Helio X20 de MediaTek, que tiene 2 núcleos A72 orientados al rendimiento, 4 núcleos A53 balanceados, más 4 núcleos A35 de bajo consumo. Eso es muy flexible en diferentes casos de uso. Sin embargo, creo que 8 núcleos y 2 grupos suelen ser suficientes.

También hay otro ejemplo de escritorio, la serie Snapdragon 800 de Qualcomm (S 800, S 801 y S 805). Hay solo 4 núcleos de la misma microarquitectura en cada SoC, con 2 sincronizados más alto y 2 sincronizados más bajo. Qualcomm creó estos SoC porque tenían mucha confianza en su propia microarquitectura (Krait 400 y Krait 450).

Para los juegos, incluso si aparentemente exigen el rendimiento de la GPU en lugar de la CPU, aún ponen una gran carga en la CPU. Una GPU no puede funcionar sola sin otra cosa que le proporcione datos para procesar, y ese es uno de los principales trabajos que realiza la CPU mientras juegas. En la mayoría de los casos de juego, la GPU solo muestra gráficos, mientras que todos los demás trabajos, como cargar datos, recursos y activos, y calcular la mecánica en el juego, como el sistema, el entorno y la física, son realizados por la CPU. No observará una velocidad de fotogramas más alta si actualiza su GPU mientras se queda con una CPU de gama baja.

Una razón secundaria es cómo Android utiliza los recursos de la CPU . Android prácticamente crea su propio entorno de aplicación. No usa nada más que códigos (y API) de Java, pero tiene su propia máquina virtual llamada Dalvik, que luego fue reemplazada por ART (API Nivel 21). Los APK tienen sus códigos ejecutables en un formato "neutral", al igual que los .classarchivos en Java. Antes de que se ejecuten, los códigos se compilan una vez más en las instrucciones nativas de la máquina [1] . El proceso de compilación es multiproceso y puede utilizar múltiples núcleos para aumentar el rendimiento.
Y cuando una aplicación se está ejecutando, hay varios otros procesos y mecanismos (como el recolector de basura) que se ejecutan junto o paralelos a la aplicación. Más núcleos pueden permitir que los procesos de apoyo se ejecuten de manera más eficiente, así como la aplicación principal.
1. Si usa un identificador de tipo de archivo, encontrará que los archivos dex "optimizados" están en formato ELF, mientras que los archivos dex "neutrales" están en un formato propio.

Otra razón menor es que los núcleos ARM no pueden funcionar tan rápido como un chip Intel x86 . La microarquitectura Intel x86 se remonta a 1976, cuando el chip Intel 8086 comenzó a diseñarse, lo que significa que el x86 se ha desarrollado durante mucho tiempo. Un solo núcleo ARM Cortex-A73 moderno de alta gama es tan poderoso como un núcleo Intel Clarkdale, tomando el Core i5-660 como ejemplo (GeekBench, un solo núcleo). Esto se debe a que x86 es una microarquitectura CISC mientras que ARM es un RISCmicroarquitectura Seguramente no quieres un teléfono que se vuelva lento con solo dos o más aplicaciones activas. Más núcleos ayudarán a aliviar la presión. Es por eso que los SoC de doble núcleo son relativamente populares solo en relojes inteligentes. ¿Quién necesita rendimiento en un reloj inteligente?

Curiosamente, más núcleos resultarán en menos potencia que un solo núcleo en la misma carga . La relación entre la frecuencia de la CPU y el consumo de energía es más que lineal, por lo que el doble de la frecuencia siempre resultará en exigir más del doble, o incluso 3 veces o 4 veces más energía, al tiempo que ofrece menos del doble del rendimiento (debido a otras limitaciones de recursos como el caché ) Por lo tanto, 4 núcleos pueden vencer fácilmente a un solo núcleo con la misma carga, proporcionando un mejor rendimiento y al mismo tiempo demandando menos energía.

Otras lecturas:

iBug
fuente
1
Recuerdo haber leído o visto en algún lugar que el kernel de Linux había trabajado originalmente en un buen soporte multinúcleo con un enfoque en supercomputadoras, hace muchos años, y estos esfuerzos resultaron útiles "en el futuro" (ahora) para teléfonos inteligentes, como una especie de " accidente "
Marc.2377
3
Esta respuesta no parece responder realmente la pregunta, a pesar de ser aceptada. Esta respuesta parece estar respondiendo "¿Por qué podría querer núcleos adicionales en mi teléfono?" cuál no es la pregunta en cuestión. No explica la diferencia entre PC y teléfono. Los puntos dados sobre por qué un teléfono puede querer más núcleos se aplican también a las computadoras de escritorio, especialmente los puntos sobre los juegos.
Aaron
8
La afirmación de 1976 sobre las CPU x86 es algo engañosa. Los núcleos ARM pueden remontarse al proyecto Acorn RISC Machine en 1983, solo 7 años después, y de alguna manera ser más nuevo es una ventaja, Acorn aprendió varias cosas que estaban mal con el desarrollo de x86 y diseños de CPU similares y lo incorporó en BRAZO.
user1937198
2
Además, RISC vs CISC no tiene nada que ver con eso, las CPU Intel ejecutan un núcleo RISCish internamente (uops). La verdadera diferencia está fuera de la orden o en la ejecución de la orden.
user1937198
55
Lo x86 es bastante ... incorrecto. Son chips superescalares, las implementaciones básicas no funcionarían tan bien como la tubería RISC clásica utilizada en la mayoría de los chips ARM. También vale la pena señalar que vincular núcleos con diseños súper escalares es MUY difícil debido a la ejecución fuera de orden y la jerarquía de caché. Nadie sabía lo que se estaban perdiendo, por lo que no había mucha demanda. Si observa que algunas de las iteraciones más recientes de Intels no están en los chips de alto conteo de núcleos, están en Broadwell, esto se debe a que descartaron cosas de sincronización, fuera del espacio.
Alec Teal
15

La razón es tan simple como complicada.

La respuesta corta es "porque el mercado de la telefonía móvil nunca ha sido y no es impulsado por Intel".

La respuesta larga es demasiado larga para reanudar aquí, pero el concepto básico es que Intel ha dominado el mercado de PC durante años con todos los medios posibles, hasta el punto de pagar y corromper (y ser multado por esto) para que sus CPU sean el primera y única opción para fabricantes de PC.

Tener el control total del mercado le ha permitido a Intel aumentar los precios de la CPU mientras decide artificialmente qué características y cuánta potencia de procesamiento deberían haber deseado los usuarios, y si analiza un poco la historia de Intel, notará que su principal fortaleza radica básicamente en el aumento de la frecuencia de las CPU, por lo que nunca trató de hacer algo realmente inteligente o innovador; y no lo necesitaba, porque solo puede decirle a la gente "no necesitas más núcleos, pero tengo estas CPU nuevas y jugosas que funcionan 100 MHz más rápido". Al mismo tiempo, podría vender CPU multinúcleo en el mercado de servidores a precios absurdamente altos (porque los servidores siempre han necesitadotoneladas de potencia paralela, hasta el punto de que hay una tendencia actual al tratar de realizar servidores que usan ... ¿adivina qué? Cientos de CPU de tu teléfono barato trabajando en paralelo)

Esto, a su vez, se ha reflejado en la comunidad de desarrolladores que nunca se ha dado cuenta de la importancia de la programación paralela, por lo que muchos, si no la mayoría, nunca se molestaron en usar más de un hilo a la vez, o, para expresarlo en un técnica, haciendo que su software haga más de una tarea a la vez. Lo cual, por cierto, tiene sentido cuando el 99% de su base de clientes tiene dos núcleos como máximo. Lamentablemente, esto ha llevado a la leyenda de que los algoritmos paralelos son realmente difíciles de implementar y se aplican solo a un pequeño subconjunto de problemas.

En cambio, finalmente, el mercado móvil nunca ha visto el éxito de Intel; todo lo contrario, en realidad, ya que sucede la mayoría de las veces que Intel intenta hacer algo diferente de la arquitectura X86 habitual. Por lo tanto, la falta de influencia y control del mercado, el otro productor de CPU ha ido en la dirección que ha sido la normalidad durante siglos fuera del mercado de PC: computación paralela.

motoDrizzt
fuente
12
¿Estás seguro de que estás respondiendo la pregunta correcta ?
iBug
77
@iBug Esta respuesta se aplica a la pregunta del OP mejor que la respuesta aceptada. La respuesta aceptada es la que no responde la pregunta correcta.
Aaron
66
"inflar los precios de la CPU artificialmente" -> Si Intel infló artificialmente los precios, ¿por qué su competencia usa hardware de precio similar y por qué las computadoras con ARM son tan malas en comparación con el hardware de Intel? Este odio a la inteligencia es ridículo. Hacer CPU es difícil . Lo que hizo que ARM fuera tan popular entre los dispositivos móviles fue la gran idea, algo que concibieron antes de Intel.
T. Sar - Restablece a Monica el
66
Intel no controla el mercado de chips para PC y no lo ha hecho durante muchos años. Y la razón por la cual los diseñadores de chips cambiaron de relojes más rápidos a más núcleos es que los relojes más rápidos estaban alcanzando algunas limitaciones físicas fundamentales. Más núcleos era un problema mucho más difícil de resolver, por lo que lo pospusieron hasta que fuera la forma más rentable de seguir aumentando el rendimiento.
Kevin Krumwiede
66
Esto es más una queja sobre la malvada corporación Intel, que la OMI no es bien merecida ya que ARM atornilla a los fabricantes de chips independientes con licencias.
Dmitry Grigoryev
9

Están ocurriendo dos factores, uno muy práctico y el otro histórico.

La razón práctica es el uso de arquitecturas mixtas en los teléfonos. El consumo de energía es crítico para los teléfonos y los teléfonos pasan mucho tiempo en modos donde requieren muy poco rendimiento. Tiene sentido tener algunos núcleos optimizados para un consumo de energía mínimo cuando se necesita poco rendimiento, mientras que algunos núcleos están optimizados para proporcionar el máximo rendimiento cuando sea necesario.

La otra razón es en gran parte histórica. Hasta 2005 más o menos, las CPU de escritorio eran todos núcleos únicos. La mejora del rendimiento de la CPU de escritorio consistió casi exclusivamente en hacer un núcleo que pueda ejecutar tantas instrucciones por segundo como sea posible. Incluso hoy en día, tanto software de escritorio no puede aprovechar al máximo los múltiples núcleos que muchos preferirían una CPU con 4 núcleos sobre una CPU de 8 núcleos con un 20% más lento.

Obtener el mayor rendimiento posible de un solo núcleo requiere enormes cantidades de espacio en la CPU. Se trata de bienes inmuebles que de otro modo podrían utilizarse para proporcionar más núcleos. Esta es la razón por la cual las CPU más nuevas de Kaby Lake de Intel alcanzan un máximo de 4 núcleos y la gente las compra porque cada núcleo es más rápido que los núcleos de sus predecesores. Para muchos, son una actualización incluso de las CPU con un conteo de núcleos más alto.

Con el tiempo, espere ver mucho más software de escritorio totalmente optimizado para admitir más núcleos. A medida que eso suceda, las compensaciones de ingeniería comenzarán a favorecer más núcleos que núcleos más rápidos en las computadoras de escritorio. Si bien es probable que los núcleos sean aún más rápidos, comenzará a ver personas que prefieren una CPU de 8 núcleos a una CPU de 4 núcleos, incluso si cada núcleo es un 20% más lento. Los diseñadores de chips seguirán el mercado.

David Schwartz
fuente
5

Es crucial que un teléfono pueda proporcionar potencia computacional en ráfagas cortas (necesitamos que ciertas aplicaciones sean rápidas) pero también evitar el sobrecalentamiento (la disipación de calor es mucho más difícil para los teléfonos que para las computadoras portátiles o PC). Para lograr esto, los arquitectos diseñan teléfonos para usar un solo núcleo cuando la carga de trabajo es ligera y proporcionan núcleos adicionales para aumentar el rendimiento cuando sea necesario. Si los teléfonos usaran menos núcleos grandes, el sobrecalentamiento se convertiría en un problema incluso cuando la carga de trabajo sea bastante ligera.

Fuente: Un curso de arquitectura informática de nivel de posgrado.

Tara Eicher
fuente
A decir verdad, la capacidad de proporcionar potencia computacional (si eso es lo que quiere decir con energía ) en ráfagas cortas también es crucial para el escritorio. Es por eso que tienen TurboBoost en chips Intel.
Dmitry Grigoryev
Sí, el poder computacional es lo que quise decir. Es cierto que todos los dispositivos que pueden esperar tener una carga de trabajo en ráfagas en algún momento (incluidos teléfonos y computadoras de escritorio) deben poder manejarlo. La principal diferencia es la disipación de calor.
Tara Eicher
Estoy de acuerdo con lo que dijo, solo quería señalar que la carga de trabajo en ráfagas no es específica de los teléfonos.
Dmitry Grigoryev
2

Primero, la máquina virtual Java puede beneficiarse históricamente de múltiples núcleos más que el software de escritorio típico. Incluso si escribe una aplicación de subproceso único en Java, se ejecutará más rápido en un multinúcleo porque la mayor parte del código del recolector de basura se ejecutará junto con su aplicación.

En segundo lugar, están sucediendo muchas cosas en segundo plano en su teléfono: actualizaciones automáticas, descargas de anuncios, software antivirus, administración del módulo GSM, etc. En una computadora portátil, todas estas tareas apenas mantendrían ocupado un núcleo, pero los núcleos ARM están mucho menos potente, por lo que es posible que desee tener al menos un par de esos dedicados a tareas en segundo plano si desea un sistema receptivo.

Finalmente, hay marketing. No muchos usuarios son capaces de evaluar si se beneficiarían de 8 núcleos, pero un teléfono inteligente de 8 núcleos ciertamente suena más caro que uno de 2 o 4 núcleos.

Dmitry Grigoryev
fuente
2
Sigo viendo declaraciones en la línea de "Los núcleos ARM son mucho menos potentes": ¿qué significa eso exactamente? ¿Tienen menos velocidad de reloj?
Abdul
2
@Abdul menos operaciones por segundo. Los chips x86 pueden ejecutar varias operaciones a la vez, por lo que superan a ARM incluso para la misma velocidad de reloj. Echa un vistazo a esta comparación : el chip ARM superior (GT-I9100) es aproximadamente 10 veces más lento que el chip x86 superior (i7-2920XM).
Dmitry Grigoryev
¿Es "operaciones por segundo" sinónimo de FLOPS?
Abdul
@Abdul No necesariamente. De hecho, aparte de los juegos y las simulaciones físicas, el punto flotante no se usa tanto. Además, muchos chips ARM logran FLOPS decentes al paralizar la precisión, por lo que tampoco es la única medición verdadera.
Dmitry Grigoryev
Las aplicaciones de Android no se ejecutan en máquinas virtuales Java. Se ejecutan en Dalvik VM
phuclv
1

Las respuestas hasta ahora explican algunas facetas del problema que conduce a este abrumador número de núcleos de CPU en los teléfonos Android. Lee eso de nuevo; Teléfonos Android. El iPhone ha logrado quedarse con solo un par de núcleos durante años y aún funciona mucho mejor que cualquier buque insignia de Android.

Los diseñadores de Android hicieron una gran apuesta al decidir elegir la programación Java y, como consecuencia, la JVM como el tiempo de ejecución de las aplicaciones. Java, debido a sus principios de diseño, resuelve el problema de la necesidad de compilar y construir código para cada arquitectura de CPU antes de que se pueda ejecutar sacrificando el rendimiento. Java presenta una máquina virtual pesada y voluminosa, generalmente llamada JVM. La JVM realmente emula una CPU a nivel de software para evitar la necesidad de compilar código por separado para cada dispositivo. Piense en la JVM como una CPU virtual que tiene las mismas propiedades independientemente del dispositivo que la ejecute, por lo que el código solo debe compilarse una vez para la JVM y luego podría ejecutarse en todos los dispositivos. Esto permite a los fabricantes lanzar cualquier hardware que deseen antes de tener que preocuparse por la compatibilidad de las aplicaciones.

El JVM en sí mismo es simplemente una especificación y las personas son libres de desarrollar su propio JVM siempre que cumpla con esta especificación. El JVM original de Android se llamaba Dalvik. Hoy en día Google ha reemplazado eso con ART.

¿Cuál es el problema con JVM? Es un software pesado que consume muchos recursos informáticos. Agregue a esto algunas otras propiedades del lenguaje Java, como Garbage Collection y el consumo de recursos de la JVM simplemente se vuelve demasiado para un dispositivo con una potencia de hardware modesta. Cada aplicación y servicio del sistema abierto en su dispositivo es en sí mismo una instancia de ART JVM y ahora puede concluir que administrarlos a todos requiere un hardware realmente capaz. Las cosas empeorarán aún más cuando exista la necesidad de dibujar interfaces de usuario.

Cada aplicación se ejecuta en varios subprocesos. Cada núcleo de CPU puede ejecutar solo un subproceso a la vez. Cada aplicación tiene un hilo principal en el que hace las cosas relacionadas con la interfaz de usuario. Podría haber muchos más subprocesos por aplicación para acceder a archivos, red, etc. Generalmente, hay más aplicaciones (y servicios del sistema) abiertas que núcleos de CPU y, como resultado, generalmente hay muchos más subprocesos que núcleos de CPU. Por lo tanto, cada núcleo tiene que cambiar entre procesar diferentes subprocesos constantemente, haciendo un poco de cada uno y pasando al siguiente. Este cambio lleva mucho tiempo para la CPU y, en el caso de que las aplicaciones sean esencialmente JVM, esta tarea se vuelve aún más exhaustiva.

Según esta explicación, se podría deducir que Android necesita un hardware potente para funcionar sin problemas. Las primeras generaciones de dispositivos Android fueron famosos por retrasos, fallas y muchas otras cosas desafortunadas. Pero a lo largo de los años, estos problemas se han resuelto principalmente confiando en un hardware potente.

Por otro lado, las aplicaciones de iOS se compilan en código máquina nativo y, por lo tanto, no necesitan la virtualización. El lenguaje utilizado y el sistema operativo también son más eficientes y, por lo tanto, permiten que estos dispositivos permanezcan suaves sin la necesidad de un conjunto de chips excesivo.

DarthPaghius
fuente
Esta es una buena explicación de por qué los teléfonos móviles son mucho más potentes que los equipos de escritorio. ¿O no son ellos?
maaartinus
"Esto permite a los fabricantes lanzar cualquier hardware que quieran antes de tener que preocuparse por la compatibilidad de la aplicación". Buen punto, pero no estoy seguro de si esta era la intención de un sistema destinado (originalmente) a las cámaras.
v6ak
"Podría haber muchos más subprocesos por aplicación para acceder a los archivos, a la red, etc.", que están más bien vinculados a E / S y no consumen mucha CPU. A veces, la E / S se maneja solo con un hilo, porque la CPU es mucho más rápida que los dispositivos de E / S.
v6ak
“Las primeras generaciones de dispositivos Android fueron famosos por retrasos, fallas y muchas otras cosas desafortunadas”. Recuerdo haber ejecutado Marshmallow en ese teléfono (Xperia Mini Pro), y creo que hay muchas otras razones para ser lento que la CPU. Funcionaban con poca RAM, tenían dispositivos flash más lentos como MTD (mucho más lento que las tarjetas microSD para algunas operaciones), los androides más antiguos tenían una "JVM" menos eficiente (que técnicamente no es una JVM). Claro, una mejor CPU también ayuda, pero estaría lejos de tal conclusión.
v6ak
Además, el estilo de programación como realizar E / S (u otras operaciones largas) en el subproceso de la interfaz de usuario puede hacer que las aplicaciones sean lentas independientemente del rendimiento de la CPU. AFAIK, este estilo es bastante común en las primeras aplicaciones de Android. Dichas aplicaciones pueden ser lentas incluso con teléfonos modernos. Probablemente serán menos lentos, pero eso se debe más a las memorias flash más rápidas que a las CPU más rápidas o más núcleos.
v6ak
0

Resumiendo todo lo anterior, puedo decir que los casos de uso de PC y teléfono son bastante diferentes. La mayoría de las veces la PC se usa en una o dos aplicaciones (por supuesto, el navegador con muchas pestañas requiere muchos núcleos de CPU, puede retrasarse incluso en la parte superior i-3), los teléfonos se usan para realizar múltiples tareas. Al menos conexión de red, interfaz de usuario, activadores del sistema, notificaciones. Si abre el administrador de tareas en la PC, también hay muchos procesos, pero utilizan menos del% de potencia de la CPU, incluso en el viejo Core 2 duo. 4 núcleos es bastante barato (MTK 65x2 costaba 1 $ al inicio para OEM) También es RIESGO vs CISC cuando la última falta de rendimiento por núcleo. ¡Energía eficiente! = Potente, como podemos ver aquí . Multi-core es perfecto para dispositivos móviles, ya que no requiere una gran carga pesada de la banda de rodadura y una experiencia dirigida a múltiples tareas (pero podemos ver que los iPhones necesitan menos núcleos y RAM debido a un buen softwarecomo en este video u otros )

Flippy
fuente
Gran parte de esto a menudo también se realiza en una computadora portátil. Y la multitarea no tiene que ser exigente con la CPU. La diferencia en los costos de fabricación puede causar algunas diferencias y podría ser una razón para tener menos núcleos para CPU de gama baja, pero dudo que los costos de fabricación sean la única razón por la cual no todos los i7 tienen al menos cuatro núcleos. Creo que los costos de fabricación son solo una pequeña fracción del precio de esas CPU.
v6ak
@ v6ak, el problema es que los núcleos x86 son más grandes y complicados, las CPU de intell (o amd) simplemente no son lo suficientemente buenas como para ser un modelo superior. De hecho, la mayoría de ellos se bloquean algunas partes y se convierten en junior i7 o Pentiums. Los núcleos ARM parecen menos complicados, por lo que no llegan tantos modelos cada año. Todavía cierto octa core era Samsung Exynos Octa 7xxx , MTK Helio X10 , Latest (X30) incluso proponen poco (4) .Middle (4) .BIG (2), podemos decirle que es un procesador de 10 núcleos, marketing barato lo hace
Flippy
-1

Creo que uno de los principales factores impulsores más allá de un 4 u 8 (para configuraciones grandes: pequeñas) es solo el marketing en este momento.

Un gran problema del alto conteo de núcleos es cuando considera el tamaño de la memoria. Normalmente en las aplicaciones de escritorio, cuando desea mejorar la utilización de múltiples núcleos, necesita duplicar estructuras y usar mucha más memoria que en una sola aplicación de subprocesos.

Esto no sucede porque la RAM es muy costosa (especialmente en la situación de crisis de RAM 2017/2018). El marketing quiere números altos, pero el control quiere reducir los precios de los componentes. Si ve un saldo de menos de 1 Gigabyte de RAM por núcleo, verá un compromiso fallido.

Lothar
fuente