Per què els telèfons tenen 8 nuclis?
Els portàtils solen tenir en la majoria de quatre nuclis, i els duals són probablement més comuns. Fa poc que he canviat de quadrocre a dualcore i puc confirmar que hi ha un nombre limitat de casos d'ús per a una quadràtica, fins i tot amb tasques intensives de la CPU.
D'altra banda, en telèfons mòbils, els quadrocs, hexacores i octacores semblen ser comuns. Per què? Quines tasques les poden utilitzar?
Ho entenc. big. LLAMPA DE LLAConstellation name (optional) Pot ser una part de la resposta. És a dir, el benefici principal de tants nuclis no és l'habilitat d'utilitzar-los simultàniament, sinó sinó també utilitzar un nucli amb el consum d'energia apropiat per a la càrrega de treball actual. No obstant això, per exemple, l'Snapdragon 625 té vuit nuclis Cortex-A53, que sembla que no és un cas per a gran. LLAT.
Potser l'arquitectura de l'ARM té un punt més baix de l'actuació òptima per watt. És a dir, tenir un únic nucli atents a l'actuació òptima per resultats watt en un rendiment més baix a l'ARM que a Intel. Així doncs, s'utilitzen més nuclis per tal de fer l'actuació. Això és només una hipòtesi.
Però fins i tot en aquest cas, no veig què pot fer servir eficientment, diguem, vuit nuclis en un telèfon mòbil. En els portàtils, puc imaginar-me algunes com una compilació completa (no incremental) d'un projecte. Però amb els telèfons?
- Els jocs poden ser rendiments, però solen necessitar rendiment de la GPU en comptes de la CPU, no?
- Theoreticament, múltiples nuclis poden accelerar l'Android Lollipop/Marshmallow AOT quan s' instal· la o quan s' actualitza (p. e., la fase settingptimize apps 3/121 metres). No obstant això, no estic segur que això pugui usar múltiples nuclis. Pel que recordo el codi, només s'està compilant una aplicació alhora, però potser hi ha algun paral·lelisme dins del procés de compilació.
- També Android 7+ podria usar múltiples nuclis en compilar. Però des que va informar de compilar quan està inactiu i càrrega, sembla que el benefici és bastant mínim. Almenys quan un carrega el telèfon de la nit al dia m'importa si pren 30 minuts o dues hores en un escenari així.
També hi ha un altre exemple semblant a l' escriptori, la sèrie de Qualcomm's Snapd 800 (S 800, S 801, i S805). Només hi ha quatre nuclis de la mateixa microruquitatures a cada SoC, amb 2 rellotges més alts i 2 rellotges més baixos. Qualcomm va crear aquests SoC perquè estaven molt segurs de la seva pròpia microarchitatura (Krait 400 i Krait 450).
Per jocs, encara que aparentment exigeixin rendiment de la GPU en lloc de la CPU, encara posen una càrrega pesada a la CPU. Una GPU no pot funcionar sola sense una altra cosa que el subministren amb dades a processar, i aquest és un dels treballs més importants que la CPU està fent mentre esteu jugant. En la majoria dels casos de jocs, la GPU només representa gràfics, mentre que tots els altres treballs com carregar dades, recursos i actius, i calcular la mecànica en joc com ara el sistema, l'entorn i la física es fan per la CPU. No observareu una taxa de fotogrames més alta si actualitzeu la GPU mentre poseu- vos a una CPU de baix abast.
Una raó secundaria és Com l'Android usa els recursos de la CPU . Android ja fa el seu propi entorn d'aplicacions. Usa només codis (i API) de Java, però té la seva pròpia màquina virtual anomenada Dalvik, que més tard va ser substituïda per ART (QAPI Level 21). APK tenen els codis executables en un format "neutral," molt semblant .class Fitxers a Java. Abans que s'executen, els codis seran compilats una vegada més en les instruccions natives de la màquina. [[ 1]] . El procés de compilació és multi-fillegat i pot usar multi-cores per a un impuls de rendiment. I quan s'està executant una aplicació, hi ha diversos altres processos i mecànica (com el rascador) que s'executen al costat, o paral·lel a l'app. Més nuclis poden permetre que els processos de suport s' executin de forma més eficient, així com de l'aplicació principal. 1. Si useu un identificador de tipus de fitxer, trobareu que els fitxers "optimitzats" estan en format ELF, mentre que els fitxers "netral" estan en format propi.
Una altra raó més petita és que Els nuclis de l'ARM no poden funcionar tan ràpid com un xip d'Intel x86 . L'Intel x86 microarchittures pot sortir de tornada al 1976, quan la Intel 8086 El xip va començar a ser dissenyat, el que vol dir que el x86 ha desenvolupat durant molt de temps. Un únic nucli japonès d'alta ARM Cortex-A73 és tan poderós com un nucli d'Intel Clarkdale, prenent Core i5- 660 com a exemple (GeekBech, single-core). Això és perquè x86 és un CISC microarchictures mentre ARM és un RISC microarchittures. Segur que no voleu un telèfon que es faci una retardada amb només dues o aplicacions actives. Més nuclis ajudarà a rellevar la pressió. Per això, els dobles camions són relativament populars només amb rellotges intel·ligents. Qui necessita rendiment en un rellotge intel·ligent?
Interessantment, Més nuclis comportaran en menys poder que un únic nucli a la mateixa càrrega . La relació entre la freqüència de la CPU i el consum d'energia és més que lineal, de manera que dues vegades la freqüència sempre podrà provocar més de dues vegades, o fins i tot 3x o 4x tant de poder, mentre que l' entrega menys de dues vegades el rendiment (degut a altres limitacions de recursos com el cau). Així, 4 nuclis poden colpejar fàcilment un únic nucli a la mateixa càrrega, proporcionar millor rendiment i alhora demanar menys poder.
La resposta curta és "perquè el mercat mòbil mai ha estat i no està conduït per Intel."
La llarga resposta és massa llarga per reprendre aquí, però el concepte bàsic és que Intel·ligència ha dominat el mercat del PC durant anys amb tots els mitjans possibles, fins al punt de pagar i corrompre (i estar bé per això) per tenir les seves CPU són les primeres i només les opcions dels fabricants de PC.
Tenint en compte el control total del mercat ha permès que l'Intelitzés el preu de la CPU mentre que artificialment decideix quines característiques i quant de processament de poder que els usuaris haurien d'haver volgut, i si analitzeu una mica d'història Intel·ligència veureu que la seva força principal és bàsicament en l'augment de la freqüència de CPU, així que sobretot mai va intentar fer alguna cosa realment intel·ligent o innovadora, i no ho necessitava, perquè només pot dir a la gent que no necessita més nucli, però tinc aquesta nova CPU que corre 100 MHzs més ràpidament. Al mateix temps, podria vendre CPU multicore en el mercat del servidor a un preu absurdment alt (perquè els servidors sempre tenen Necessitat tones de poder paral·lel, fins al punt que hi ha una tendència actual en intentar adonar-se dels servidors que usen...gues què? Cent dels vostres CPU telefònica barates treballant en paral· lel)
Això, en canvi, s'ha reflectit en la comunitat de desenvolupadors que mai s'ha trobat amb la importància de programació paral·lel, de manera que molts si no molts dels que mai es molestan usant més d'un fil alhora - o, per expressar-ho d'una manera no tècnica, tenen el seu programari fent més d'una tasca alhora. Que, per cert, té sentit quan el 99% dels vostres clients base té dos nuclis en màxim. Malauradament, això s'havia portat a la llegenda que els algoritmes paral·lels són realment difícils d'implementar i s'aplica només a un petit subconjunt de problemes.
En comptes d'això, el mercat mòbil mai ha vist l'èxit de la Intel·ligència, en canvi, ja que passa la majoria de vegades que la Intel·ligència intenta fer alguna cosa diferent de l'arquitectura habitual de X86. Per tant, la manca de falta és influenciar i controlar el mercat, els altres productors de CPU han anat en direcció que ha estat la normalitat durant anys fora del mercat del PC: informàtica paral·lel.
Hi ha dos factors que passen, un molt pràctic i l'altre històric.
L'ús pràctic és l'ús d'arquitectura mixtes en telèfons. El consum d'energia és crític pels telèfons i telèfons passa molt de temps en els modes en què necessiten una mica de rendiment. Té sentit tenir alguns nuclis optimitzats per al consum mínim d'energia quan es necessita poca actuació mentre s' opten per proveir el rendiment màxim quan cal.
L'altra raó és en gran part històrica. Fins el 2005 o així, les CPU de l'escriptori eren tot nuclis. Millorar el rendiment de la CPU de l' escriptori consisteix gairebé exclusivament en fer un nucli que pot executar tantes instruccions per segon com sigui possible. Fins i tot avui, el programari d'escriptori no pot aprofitar-se de múltiples nuclis que molts preferirien una CPU amb 4 nuclis sobre una CPU de 8 nuclis amb un 20% més lent.
Obtenir tant rendiment d'un sol nucli com sigui possible requereix grans quantitats de propietat real de la CPU. Això és propietat real que podria usar-se per proporcionar més nuclis. És per això que la nova història d'Intel Kaby Lake CPU és màxima a 4 nuclis i gent els compra perquè cada nucli és més ràpid que el nucli del seu predecessor. Per a molts, són una actualització fins i tot de CPU amb un comptador de nucli més alt.
En el temps, esperem veure molt més programari d'escriptori completament optimitzat per a suportar més nuclis. A mesura que això passi, els intercanvis d'enginyeria començaran a afavorir més nuclis als escriptoris. Mentre que els nuclis sens dubte es faran més ràpid, començaran a veure la gent que prefereixi tenir una 8 CPU de nucli sobre una CPU 4 de nucli fins i tot si cada nucli és un 20% més lent. Els dissenyadors Chip seguiran el mercat.
És crucial per a un telèfon poder proveir energia computacional en petits esclats (Necessitem que certes aplicacions siguin ràpides) però també evitar sobreescalfament (la dissipació és molt més difícil que per a telèfons portàtils o PC). Per tal d'aconseguir-ho, els arquitectes dissenyen telèfons per fer servir un únic nucli quan el carregador de treball és llum i proporcionen nuclis extra per a incrementar el rendiment quan sigui necessari. Si els telèfons feien servir menys grans nuclis, sobreposant-se es convertiria en un problema fins i tot quan el carregador de treball sigui bastant lleuger.
Primer, la màquina virtual Java pot beneficiar- se històricament de programari multi-core més que típic de l' escriptori. Fins i tot si escrigueu una única aplicació de lectura en Java, s'engegarà més ràpid en un multicre perquè la majoria del codi col·leccionista d'escombraries correrà al costat de la vostra aplicació.
Segon, moltes coses van en segon pla al teu telèfon: actualitzacions automàtiques, baixades, programari antivirus, gestió del mòdul GSM, etc. En un portàtil, totes aquestes tasques amb prou feines podrien tenir un nucli ocupat, però els nuclis de l'ARM són molt menys poderosos, així que potser voldreu tenir almenys un parell d'aquestes tasques dedicades a fons si voleu un sistema receptiu.
Finalment, hi ha màrqueting. No hi ha molts usuaris capaços d'avaluar si es beneficiarien de 8 nuclis, però un telèfon intel·ligent de 8 dòlars, sens dubte sembla més car que 2 o 4 del nucli.
Les respostes fins ara expliquen algunes "màtiques del problema que porten a aquest nombre tan aclaparador de nuclis de la CPU als telèfons Androids. Torna-ho a llegir; els telèfons d'Android. L'iPhone ha aconseguit quedar-se atrapat a només un parell de nuclis durant anys i tot i així fa molt més suau que qualsevol bandera d'Android.
Els dissenyadors d'Android van fer una gran aposta quan es va decidir triar la programació Java i, com a conseqüència, la JVM com a temps d'execució de les aplicacions. Java, degut als seus principis de disseny soluciona el problema de la necessitat de compilar i construir codi per a cada arquitectura de la CPU abans de poder-lo funcionar sacrificant l'actuació. Java introdueix una màquina virtual pesada i voluminosa normalment anomenada JVM. La JVM realment emula una CPU al nivell de programari per evitar la necessitat de compilar el codi separadament per a cada dispositiu. Penseu en la JVM com a CPU virtual que té les mateixes propietats sense importar el dispositiu executant- se per tal que el codi només sigui compilat una vegada per a la JVM i aleshores es podria executar en cada dispositiu. Això permet als fabricants llançar qualsevol maquinari que vulgui abans de preocupar- se per la compatibilitat de l' aplicació. Això també permet als dispositius omplir el mercat amb aparells de baixa merda i d'alta qualitat i finalment dominar-lo.
La mateixa JVM és simplement una especificació i la gent és lliure de desenvolupar la seva pròpia JVM mentre s'adhereix a aquesta especificacions. Es deia Dalvik, l'original i l'androide JVM. Avui en dia Google ho ha reemplaçat amb unaRT.
Quin és el problema de JVM? És un programari molt fort que consumeix un munt de recursos informàtics. Afegeix a aquesta altra propietat de l'idioma Java com la col·lecció de deixalles i el consum de recursos de JVM simplement es converteix en massa per a un dispositiu amb una potència modesta de maquinari. Cada aplicació i servei del vostre dispositiu s'obre a si mateix és una instància de l'ART JVM i ara podríeu concloure que gestionar-los tots requereix un maquinari realment capaç. La cosa serà encara pitjor quan hi hagi la necessitat de dibuixar interfícies d' usuari.
Cada aplicació s' executa amb un nombre de fils. Cada nucli de la CPU només pot executar un fil a la vegada. Cada aplicació té un fil principal en el que fa les coses relacionades amb la interfície d' usuari. Podria haver- hi molts fils més per aplicació per a fer accés al fitxer, xarxa, etc. Generalment hi ha més aplicacions (i serveis del sistema) oberts que hi ha nuclis de CPU i com a resultat, normalment hi ha molt més fils que bases de CPU. Cada nucli ha de canviar entre processar diferents fils constantment, fent una mica de cada un i anar a continuació. Aquest canvi triga molt de temps per a la CPU i en cas de les aplicacions que són essencialment JVMs, aquesta tasca esdevé encara més irritant. En augmentar el nombre de nuclis, reduireu el nombre d' aplicacions (i per tant fils) cada nucli necessita preocupar- se i això incrementa el rendiment general.
Basant-nos en aquesta explicació es podria deduir que l'androide necessita un maquinari poderós per executar amb calma. Les primeres generacions dels dispositius d'Android eren famosos per a quedar-se enrere, morir i moltes altres coses lamentables. Però durant els anys, aquests problemes s'han resolt principalment de forma fiable en un maquinari poderós.
D'altra banda, l'aplicació iOS es compila al codi natiu de màquines i per tant no necessiten la virtualització. El llenguatge usat i el sistema operatiu també són més eficients i, per tant, permeten que aquests dispositius segueixin suaus sense la necessitat d'alguns xips de sobremateria.
Reprenent-me de dalt, puc dir que usar casos de PC i telèfon són bastant diferents. La majoria de vegades del PC utilitzat en un sol o un parell d' aplicacions (per descomptat, amb moltes pestanyes requereixen molts nuclis de cpu, pot el retard fins i tot en top i-3), els telèfons usats per multitasca. Com a mínim una connexió a xarxa, dibuixa l' IU, activa el sistema, notificacions. Si obriu el gestor de tasques al PC també hi ha molts processos, però també usen menys d' pocs% de potència de cpu fins i tot a l' antic nucli 2 duo. Quatre nuclis són bastant barats (MTK 65x2 va ser costar 1$ a l'inici de OEM), que els UID de risc també contra CISC quan va ser l'última manca de rendiment per nucli. Energia eficient!= poderosa, Com podem veure aquí . Multi-cre és perfecte per al mòbil, perquè no hi ha una càrrega greu d' un sol camí, i l'experiència d'objectiu multi-tasca (però podem veure que els iPhones necessiten menys nuclis i RAM degut a un bon programari com en aquest vídeo o d'altres )
Crec que un dels principals factors de conducció més enllà d'un 4 o 8 (per a configuracions grans) és només màrqueting en aquest moment.
Un gran problema del recompte del nucli és quan considerem la mida de la memòria. Normalment en aplicacions d' escriptori quan voleu millorar la utilització de múltiples nuclis que necessiteu duplicar estructures i usar molta més memòria en una única aplicació de fil.
Això no passa perquè la RAM és molt cara (especialment en la situació de la crisi de 2017/20 RAM). El mercat vol números alts però el control vol tallar en els preus dels components. Si veieu un equilibri que és inferior a 1 Gigabyte de la RAM per nucli llavors veieu un compromís erroni.
Artículos Relacionados:
- Són 8 nuclis per un telèfon?
- És un bon nucli en un telèfon?
- Per què són 8 nuclis útils?
- El qua-cre vol dir 8 nuclis?
- Processador -