Rosetta
Avec la récente annonce du passage d’Apple sur des processeurs Intel, Apple se devait de fournir une solution transparente pour utiliser les applications compilées sur PowerPC sur un Mac à base Intel.
Basée sur une technologie mise au point par la société Transitive, la solution adoptée par Apple se nomme Rosetta.
Rien à voir avec la pièce de charcuterie lyonnaise à base de porc, il s’agit ici de traduire les instructions générées pour un processeur PowerPC dans un langage compréhensible par un processeur Intel. Concrètement cette technologie est compatible avec n’importe quel logiciel conçu pour Mac OS X (ce qui élimine de facto les logiciels Mac OS 9 émulés par Classic), qui n’utilise pas l’unité AltiVec intégrée aux processeurs G4 et G5 et qui n’utilise pas l’adressage 64 bits des G5.
Evidemment la traduction des instructions à la volée par le processeur possède un coût qui se répercute sur la rapidité d’exécution du logiciel, poujr faire simple Apple esquisse plusieurs exemples des performances que l’on peut attendre :
– Si l’application requiert beaucoup d’interaction avec l’utilisateur et peu de calculs : pas de problème pour Rosetta, l’utilisation sera transparente,
– de même une utilisation soutenue du processeur, notamment pour de l’OpenGL, devrait permettre un fonctionnement honorable de l’application,
– par contre Rosetta n’est pas capable de fournir de bonnes performances pour une applications nécessitant de gros calculs et une utilisation intense du processeur comme par exemple des calculs de transformées de Fourrier, utilisées dans le domaine audio, vidéo, scientifique (l’économiseur d’écran de Seti@home par exemple).
Transitive qui a déjà vendu une technologie similaire à SGI annonce pour sa part un surplus de mémoire vive utilisé de l’ordre de 25% et des performances de l’ordre de 70 à 80% de la vitesse originelle. Notons que cette estimation est probablement optimiste puisque basée sur leur collaboration avec SGI dont les besoins plus spécifiques et basés sur l’image.
Coté système, lors du lancement de l’application compilée pour PowerPC uniquement sur un Macintel, le noyau du système vérifie la présence d’un code binaire pour Intel et en cas d’absence de ce dernier, utilise Rosetta pour traduire en direct le code PowerPC. Un système de cache est utilisé pour accélérer la traduction, en cas d’instructions redondantes : la traduction n’est pas à refaire puisque stockée dans le cache.
Coté utilisateur l’utilisation de Rosetta ne requiert aucune manipulation et est transparente à la différence de l’utilisation de Classic qui nécessitait une phase de lancement de Mac OS 9. La seule interaction possible sera de forcer une application Universal binaries (qui possède donc le code binaire PowerPC et le code binaire Intel) à utiliser le code binaire PowerPC via Rosetta sur un système Macintel, de la même manière qu’il est possible de forcer une application Carbon à se lancer via Classic plutôt qu’avec Mac OS X.
Si la transition intéresse fortement les nouveaux clients qui ne souhaitent pas avoir à renouveler entièrement leur logithèque, les anciens clients d’Apple (donc une majorité) qui restent avec un ordinateur PowerPC sont en droit d’attendre une solution qui leurs permettent d’utiliser un éventuel logiciel compilé uniquement pour Intel. Si Apple n’a fait aucune annonce ni commentaire sur le sujet, il semblerait que la société Transitive ait déjà dans sa besace la technologie inverse de Rosetta pour convertir du code Intel sur une machine à base PowerPC.