Tentative de comparaison entre les machines Palm avec processeur DragonBall et celles avec processeur ARM.
Le contexte
Palm OS 5 apporte un changement majeur par rapport aux versions précédentes de Palm OS, à savoir qu'il fonctionne sur des machines équipées de processseurs ARM quand les précédentes versions fonctionnaient sur des machines équipées de processeurs DragonBall. Ce changement de processeur signifie un jeu d'instructions machines différent, donc une impossibilité de faire fonctionner les applications développées pour les machines équipées d'un processeur DragonBall. Afin de préserver la compatibilité immédiate de toutes (ou presque) les applications précédemment développées, sans réécriture ou recompilation, Palm a équipé Palm OS 5 d'une émulation du jeu d'instructions dit "68k" du DragonBall appelé "PACE".
Mon étude
Afin d'essayer de comparer le gain de performance apporté par la nouvelle architecture, j'ai effectué des mesures d'exécution des 2 mêmes programmes en mode PACE et en mode ARM natif sur un Palm Tungsten C (processeur ARM à 400 MHz), mesures que j'ai comparées à celles obtenues sur un Palm Vx (processeur DragonBall à 20 MHz) en mode 68k natif.
Ces 2 programmes sont
Bench1 et
Bench2, écrits (source code ici :
pgmpp.zip) et compilés en Pascal
PP, car cet outil de développement permet de compiler les programmes en 68k et en ARM.
Les résultats obtenus
Tentative d'analyse
400 Mhz versus 20 Mhz veut dire que l'ARM exécute 20 pulsations du quartz du processeur quand le DragonBall en effectue 1, ce qui ne veut pas dire que l'ARM exécute 20 instructions machine dans le même temps que le DragonBall en effectue 1. En effet, les architectures de ces processeurs et de leur jeu d'instructions machines n'ont strictement rien à voir.
En mode PACE, elles semblent comparables, pour tant soit peu que l'on tente cette comparaison osée, puisque le facteur de l'ordre x13 (moyenne de x9 et x17) est assez proche du facteur x20 qui existe entre les 2 processeurs. Ceci signifie que PACE accélère l'exécution d'un facteur correspondant à l'augmentation de fréquence du processeur.
Par contre, en mode ARM, ça va très vite, extrèmement vite même avec un facteur de l'ordre de x161 (moyenne de x158 et x164), bien loin du facteur x20 qui existe entre les 2 processeurs! Ceci laisse entendre que les programmes compilés en ARM sont exécutés nettement plus rapidement que les mêmes programmes compilés en 68k DragonBall et ceci en ramenant ces 2 processeurs à des fréquences de fonctionnement équivalentes.
On retrouve d'ailleurs ce même type de conclusion dans l'utilitaire de benchmark
Speedy qui donne, pour les machines en ARM, des très bonnes performances aux Mem et Graph Test qui font massivement appel aux Palm APIs (optimisées pour ARM) quand le Calc Test effectue des calculs en mode PACE, avec un rapport de temps d'exécution de 1 à 2 entre ces deux types de tests.
Conclusion : Tirez de cette petite étude la conclusion que vous voudrez ! Pour ma part, je me contente de penser que comparer les performances des machines tournant sous Palm OS équipées d'un processeur DragonBall avec celles équipées d'un processeur ARM revient à comparer des choux et des carottes...