Je lis "L'âme d'une nouvelle machine" de Tracy Kidder où une équipe de Data General conçoit une nouvelle machine (nom de code "Eagle", plus tard nommé MV / 8000). Il s'agit d'une extension 32 bits d'une architecture précédente (Eclipse 16 bits). Un des thèmes tournants semble être qu'ils ne veulent pas créer une machine avec un bit de mode et qu'ils y sont parvenus.
Cependant, il ignore comment cela est techniquement réalisé, et il ne explique pas pourquoi il était si attrayant de créer une machine sans bit de mode. Le livre n'est pas un livre technique, il se pourrait donc que les détails aient été en quelque sorte déformés. Cependant, vous avez le sentiment en lisant ce livre qu'une solution de "mode bit" était courante (et donc réalisable) à l'époque, mais a été jugée peu attrayante par les ingénieurs peut-être pour des raisons esthétiques. Le livre fait également apparaître comme une tâche extrêmement difficile de créer un design sans bit de mode, qui a été en quelque sorte surmonté par cette équipe particulière.
J'ai trouvé cette description de la façon dont cela a été réalisé:
http://people.cs.clemson.edu/~mark/330/kidder/no_mode_bit.txt
Il semble s'agir essentiellement d'utiliser une partie précédemment inutilisée de l'espace opcode pour les nouvelles instructions. Je dois admettre que j'étais un peu déçu que ce soit "juste ça". Je pense également que cela laisse encore des questions sans réponse:
Premièrement, comment les processus 16 bits ont-ils vécu dans l'espace d'adressage 32 bits? Parce que je pense que c'est le principal défi de faire une extension 32 bits "sans bit de mode". Par contre, l'extension du jeu d'instructions est une entreprise relativement courante. Comme il n'y a pas de description de la façon dont cela s'est produit, on pourrait supposer que le code 16 bits accède simplement à la mémoire comme il l'a toujours fait, peut-être qu'il voit un certain type de vue virtualisée / mise en banque de la mémoire (avec de nouveaux registres CPU contrôlant où se trouve la première adresse) ou quelque chose comme ca. Mais je ne sais pas s'il y a plus que ça. Dans ce cas, on pourrait affirmer qu'il s'agissait en quelque sorte d'une solution "bit de mode". Les processus en mode 16 bits pourraient fonctionner en parallèle avec les autres processus grâce à des fonctionnalités spéciales ajoutées au processeur.
Deuxièmement, pourquoi était-il si attrayant de créer une machine sans bit de mode? Beaucoup des avantages présentés dans le livre sont que les clients voulaient exécuter de vieux logiciels. Mais cela ne semble pas parler contre un bit de mode, car le but de l'utilisation d'un bit de mode est d'avoir une compatibilité descendante. Quand AMD a étendu x86 à 64 bits, du moins d'après ma compréhension du mot "mode bit", ils ont exactement ajouté un bit de mode. Un bit spécial qui ferait du CPU en mode 64 bits. Et un autre bit qui ferait exécuter un processus dans un "sous-mode" du mode 64 bits (pour permettre la compatibilité avec les applications 32 bits). L'essence du sous-mode est que le CPU interprète le flux d'instructions comme les anciennes instructions 32 bits mais que les accès à la mémoire 32 bits effectués sont résolus en utilisant le nouveau format de tables de pages (configuré par le système d'exploitation 64 bits) et finalement mappé à l'espace d'adressage physique complet. En outre, le code 32 bits peut être préempté par du code 64 bits. Comme la solution Data General, cela a également permis à un programme 32 bits de s'exécuter sous des programmes 64 bits (16 bits vs 32 bits dans le cas DG). Du point de vue du client, il ne semble donc pas y avoir de différence du tout. Par conséquent, le seul avantage aurait pu être dans la mise en œuvre, simplifiant la conception, mais le livre ne donne pas l'impression que c'est le problème, car le bit de mode semblait commun même à cette époque (et il semble que les architectures ultérieures aient également utilisé comme le montre le cas x64).
Je suis sûr qu'il y a quelque chose qui m'a manqué, donc ce serait génial si quelqu'un pouvait discuter plus sur les détails techniques et les vertus de cette conception "sans mode".