ARM, c'est un coeur CPU [...]. Le coeur étant le même [...]
Oui, mais pas tout à fait ... ;-) Il faut savoir que l'éco-système ARM est très fragmenté.
Déjà, ARM, c'est une famille, à l'instar de x86. Par exemple, le pentium a plus d'instructions que le i386. C'est pareil pour la dernière génération (armv7) qui offre plus d'instructions que les anciennes générations (essentiellement armv4 et armv5).
En parallèle, le jeu d'instructions peut être étendu avec des extensions :
* Jazelle, qui permet d'exécuter du code Java quasi nativement (un genre d'implémentation light d'une JVM);
* Thumb et Thumb2 qui permettent une densité de code plus grande, au détriment ( mais pas toujours ! ) de la vitesse d'exécution;
* NEON, qui est une espèce de FPU offrant un peu de SIMD;
* VFP, VFPv2, FPA, Maverick (etc...) qui sont des FPU incompatibles entre elles, respectant pour certaines IEEE-754, partiellement pour d'autres, voire carrément pas pour d'autres.
Toutes ces extensions ne sont pas obligatoires pour qualifier de 'ARM' un CPU ARM. De plus, ARM11 va par exemple dire que Jazelle et Thumb2 sont obligatoires ( par exemple, hein ! ), alors que ARM9 non. C'est surtout visible dans le différentes familles de Cortex (R, A et M).
Porter du code d'un ARM à un autre est certes plus simple que de passer de x86 à ARM. La plupart du temps. Parce que, passer d'un Cortex-A8 (armv7, arm+thumb+neon+jazelle) à un Cortex M3 (uniquement Thumb2), c'est pas facile...
[^] # Re: Netflix
Posté par ymorin . En réponse au journal Quelqu'un a un clou?. Évalué à 10.
Oui, mais pas tout à fait ... ;-) Il faut savoir que l'éco-système ARM est très fragmenté.
Déjà, ARM, c'est une famille, à l'instar de x86. Par exemple, le pentium a plus d'instructions que le i386. C'est pareil pour la dernière génération (armv7) qui offre plus d'instructions que les anciennes générations (essentiellement armv4 et armv5).
En parallèle, le jeu d'instructions peut être étendu avec des extensions :
* Jazelle, qui permet d'exécuter du code Java quasi nativement (un genre d'implémentation light d'une JVM);
* Thumb et Thumb2 qui permettent une densité de code plus grande, au détriment ( mais pas toujours ! ) de la vitesse d'exécution;
* NEON, qui est une espèce de FPU offrant un peu de SIMD;
* VFP, VFPv2, FPA, Maverick (etc...) qui sont des FPU incompatibles entre elles, respectant pour certaines IEEE-754, partiellement pour d'autres, voire carrément pas pour d'autres.
Toutes ces extensions ne sont pas obligatoires pour qualifier de 'ARM' un CPU ARM. De plus, ARM11 va par exemple dire que Jazelle et Thumb2 sont obligatoires ( par exemple, hein ! ), alors que ARM9 non. C'est surtout visible dans le différentes familles de Cortex (R, A et M).
Porter du code d'un ARM à un autre est certes plus simple que de passer de x86 à ARM. La plupart du temps. Parce que, passer d'un Cortex-A8 (armv7, arm+thumb+neon+jazelle) à un Cortex M3 (uniquement Thumb2), c'est pas facile...
Obligatory Wikipedia link
Alors, dire que "le cœur est le même", c'est, au sens strict, pas vrai. ;-)
Hop,
Moi.