Une info 
à proposer ?
Contactez-nous !

(JIT/optimisation firmware) Et si la vérité était ailleurs ?

Voilà depuis quelque temps les réseaux sociaux sont en ébullition, les nouveaux smartphones arrivent et nous promettent monts et merveilles à grand coup de dual core. Mais dans cette vague de débats, ces benchmarks incompréhensibles… y a-t-il une logique, peut-on prévoir à l’avance au vu des fiches techniques les performances de nos smartphones, et qu’est-ce que c’est que cette nouvelle amélioration JIT qui a été le plus de HTC face à tous ses concurrents cette année. 

JIT sur Android

Une analyse  de Scoony




Voilà, les questions sont posées et nous allons essayer de vous aider à comprendre.

Rappel :

Une chose très importante à garder à l’esprit en lisant cet article, c’est le fait qu’ici nous ne parlons que des bases qui font un bon téléphone, en aucun cas nous ne parlerons du plus apporté par les constructeurs au niveau firmware (positif ou négatif).
Nous qui venons de Samsung avons constaté qu’un seul choix logiciel pouvait impacter sur les performances globales d’un smartphone. A titre d’exemple, Samsung a choisi un système de fichiers RFS pour la NAND de notre téléphone… choix qui au début s’est avéré très discutable aux vu des lags que cela engendrait. Enfin ce n’est pas le débat ici car chaque nouveau firmware peut améliorer les choses… je répète on ne parlera ici que des bases qui font un bon téléphone, en un mot : « le potentiel du téléphone »


L’architecture d’un processeur :

Tous nos processeurs sont des processeurs basés sur l’architecture ARM , c’est une architecture complètement différente de celle de votre PC de salon, elle a été longtemps délaissée par les constructeurs qui lui préféraient l'architecture d’Intel (Intel en effet offrait de meilleures performances mais avec une consommation beaucoup plus élevée. Le problème c’est que dans un smartphone l’autonomie est largement plus importante que la puissance pure)

Ensuite dans cette architecture ARM il y a plusieurs types de processeurs (des générations différentes, tout comme Intel et ses Pentium 1, Pentium 2…etc). Chaque nouveau type apporte son lot de nouveautés (meilleure gestion de la mémoire, des processeurs multi-core, augmentation des performances… etc)

Juste pour donner des valeurs chiffrés, afin de mieux comprendre le gain de puissance :
ARM11 (le processeur du iPhone 3GS) : 1.2 BMIPS/Mhz
ARM Cortex A8 (le type de processeur de l’iPhone 4, du SGS ou du HTC Desire) : 2 BMIPS/Mhz
ARM Cortex A9 (le type de processeur du LG Optimus X2 ou du SGS 2): 2.5 BMIPS/Mhz
Les BMIPS étant des millions d’instructions par seconde pouvant être traitées, le tout rapporté par Megahertz…
Concrètement le iPhone 4 est capable d’en faire 66% plus qu’un iPhone 3 qui aurait la même fréquence… et le SGS 2 en ferait 25% plus qu’un iPhone 4 à même fréquence. Donc cette histoire n’est pas négligeable, et tout ça basé sur le type de processeur. 


Le secret des téléphones HTC (l’optimisation JIT et les scores Linpack) :

Depuis la sortie de Froyo, les benchmarks des smartphones étaient devenus incompréhensibles, certains téléphones « faibles » sur Linpack avait vu leurs performances multipliées par 4 voire 5, alors que d’autres n’ont presque pas changé.
Le grand vainqueur de Froyo fut HTC en 2010, étant donné que seuls les téléphones de cette marque ont vu leurs scores s’envoler… au grand désarroi des autres clients qui n’ont pas compris, ont attendu… pour au final se résigner et mettre ce phénomène sur un savoir-faire HTC, une optimisation secrète… mais est-ce cela ?
Comme nous avons pu le découvrir sur le site officiel de Linpack (source: site Linpack officiel), ce gain de performance serait dû à un jeu d’instructions qui est dans l’architecture même du processeur, on la trouve sous le nom de « NEON », et plus particulièrement dans ce jeu d’instruction une fonction augmente encore les performances on la trouve sous le nom de « SIMD », ce jeu d’instruction et ses fonctions étant tout particulièrement sollicités pour augmenter les performances grâce à Froyo (et leur JIT).

Nous sommes méfiants donc nous sommes allés voir sur le site officiel de Google (Lien vers le site Google) pour en savoir plus, et en effet Froyo annonce un gain allant du double au quintuple, ce qui est considérable. Ensuite nous découvrons bien cette ligne :

ARM Advanced SIMD (a.k.a. NEON) instruction support The NEON instruction set extension can be used to perform scalar computations on integers and floating points. However, it is an optional CPU feature and will not be supported by all Android ARMv7-A based devices. The NDK includes a tiny library named "cpufeatures" that can be used by native code to test at runtime the features supported by the device's target CPU.


En effet, des fonctions qui ne sont pas intégrées à tous les processeurs sont sollicitées et concernent les fameuses « floating points » (les virgules flottantes qui sont si chères à Intel, qui explique depuis des années sa supériorité face à AMD grâce à ça)

Maintenant nous avons mis cette théorie à l’épreuve, étudiant les benchmarks des différents types de processeur et cela confirme cette hypothèse.


Bilan:

Donc cette année les architectures, jeux d'instructions et autres boosts seront au cœur des différences entre les dual cores du marché.

Ceci étant dit il faut relativiser un peu tout ça, nous qui venons de Samsung avons vu l'évolution des firmwares et actuellement nous sommes avec un firmware hyper réactif qui concurrence les HTC (et leur optimisation)... donc un écart de score Linpack démesuré ne signifie pas obligatoirement un gros écart à l'utilisation (d'où mon terme de "potentiel des smartphones" en début d'article).

Les duals cores de cette année:
- Tegra 2 (Cortex A9 Sans NEON)
- OMAP4 (Cortex A9 Avec NEON et SIMD)
- Exynos (Cortex A9 Avec NEON et SIMD)
- MSM8260 (Cortex A8 avec NEON)

Vous devez désormais être capable de voir le potentiel de votre futur smartphone !

source : http://www.galaxys-team.fr/viewtopic.php?f=32&t=12724

Une analyse de Scoony du Forum FR dédié au Galaxy S