La grande image: En 2020, Apple a abandonné les processeurs Intel et a commencé à sortir des Mac alimentés par ses propres puces personnalisées. En raison de ce changement, Apple devait trouver une méthode pour émuler des programmes basés sur x64 sur le nouveau silicium. Apple a trouvé un moyen, un moyen très ancien.

Pomme révélé son premier processeur personnalisé, l’Apple M1, lors d’un événement en novembre 2020. La puce a reçu des éloges pour avoir entassé des charges de puissance dans un espace minuscule. Le M1 d’Apple a amené les gens à se demander si les SoC étaient l’avenir de l’informatique.

En raison du passage à une architecture ARM, Apple a dû trouver un moyen de permettre aux Mac M1 d’utiliser des programmes conçus pour les Mac basés sur Intel.

Apple a opté pour la méthode la plus simple mais la plus efficace : émuler l’architecture x64 dans l’Apple M1 lui-même. La méthode d’émulation s’appelle “Rosetta 2”, du nom de la pierre de Rosette.

Les gens ont été surpris par l’efficacité de Rosetta 2. Dougall Johnson, un chercheur australien en sécurité, croit maintenant savoir Pourquoi C’est.

2022 11 18 image 15

Il existe une extension non divulguée dans Rosetta 2 qui rationalise le processus de stockage de la parité et d’ajustement des indicateurs dans une application. Cela permet une émulation plus précise et “rapide”, selon Johnson. La partie la plus étonnante est l’origine de l’extension – elle a été incluse dans le deuxième processeur d’Intel, l’Intel 8080, à partir de 1974.

L’ancien microprocesseur 8 bits gérait très spécifiquement ces ajustements et ces stockages de parité, et cette fonctionnalité a continué à trouver sa place sur les processeurs Intel actuels. Si vous avez un nouveau Core i9-13900K, il existe une corrélation directe (bien que mineure) avec les processeurs qui alimentaient certains ordinateurs il y a près de 50 ans.

Les bits 26 et 27 du registre des drapeaux d’ARM sont dédiés à ce processus, bien que ces deux bits ne soient affectés à cette action que lorsque Rosetta 2 est actif. Rosetta 2 ne s’active que s’il détecte qu’un programme a été conçu pour les Mac à processeur Intel, réaffectant les deux bits et permettant à Rosetta 2 de fonctionner à son rythme rapide habituel.

Il est intéressant de voir les méthodes déployées par Apple pour permettre aux utilisateurs de continuer à utiliser des programmes conçus pour les anciens Mac à processeur Intel. L’idée d’une architecture entière redirigeant deux bits pour gérer les opérations de la même manière qu’un processeur sorti sous l’administration Nixon est fascinante.