Quantcast
Channel: Commentaires sur : Neon Instruction : VTBL, VTBX
Viewing all articles
Browse latest Browse all 9

Par : Etienne SOBOLE

$
0
0

Pour les codes couleurs:

- orange ça veut dire que l’instruction est obligé d’attendre le bon pipeline. par exemple MUL ne peut s’exécuter que dans le pipeline 0, donc si tu as 2 mul qui se suivent, bien qu’il y ai une place dans le pipeline 1, le mul va devoir attendre le pipeline 0.

- rouge ça veut dire que tu pourrais insérer des instructions avant (note que dans le cas du orange ça veut dire que tu peux en insérer une avant). Et c’est là où ça se complique, c’est que c’est pas le nombre de cycle perdu mais le nombre de bulles dans tous les pipelines. Donc dans ton exemple, à un moment tu as un “q15:9 vqadd.s16 Q9, Q15, Q6″ cela veut dire qu’en fait tu perds 4.5 cycles ou plus exactement qu’il y a la place pour mettre avant 9 instructions (pour peu bien sur que tu arrives à pipeliner de façon optimale ce qui est rarement le cas).

A partir du Cortex A9, NEON n’a plus la possibilité d’exécuter 2 instructions par cycle (possibilité assez réduite mais existante dans le Cortex A8), du coup, la lisibilité du compteur de cycle est plus simple puisque, ton exemple donnerai sans doute “q15:4″, et là ça coïncide avec le nombre de cycles perdus !

Le principal changement de la prochaine version est là ! Une simplification du compteur de cycles due à la simplification de NEON.

Par contre, pas de miracle, le compteur de cycle ne sera pas capable de gérer le ré ordonnancement dynamique des instructions du Cortex A9.
En fait ce sera une version hybride entre le Cortex A8 et le Cortex A9…


Viewing all articles
Browse latest Browse all 9