Introduction
Le désassemblage du microcode du processeur 80386 a été rendu possible grâce à une image haute résolution du microcode ROM fournie par Ken Shirriff. Cette tâche a nécessité l'utilisation de l'image traitement, de l'IA et de l'automatisation humaine pour extraire le microcode de l'image.
Contexte Technique
Le microcode du 80386 est beaucoup plus grand que celui du 8086, avec 94720 bits contre 10752 bits. Le désassemblage a nécessité la découverte de patterns et la compréhension de la structure du microcode. Les chercheurs ont utilisé des outils d'image traitement et d'IA pour extraire le microcode de l'image et le cross-checker.
Le microcode a été désassemblé en μ-ops et en champs, et les chercheurs ont découvert que le microcode contenait des routines pour gérer les instructions, les opérations ALU et les accès mémoire. Le microcode a également été trouvé pour contenir des routines pour gérer les modes de protection et les exceptions.
Analyse et Implications
L'analyse du microcode a révélé que le 80386 a 215 points d'entrée pour les instructions, contre 60 pour le 8086. Les chercheurs ont également découvert que le microcode contenait des routines pour gérer les instructions non documentées et les interactions avec le matériel de débogage.
Les chercheurs ont également trouvé un bug potentiel dans la gestion des permissions d'accès aux ports d'entrée/sortie, qui pourrait permettre à un processus d'accéder à des registres matériels non autorisés. Cependant, ce bug n'a pas été confirmé et nécessite une vérification supplémentaire.
Perspective
Le désassemblage du microcode du 80386 offre une perspective unique sur la conception et la mise en œuvre du processeur. Les chercheurs ont pu découvrir des détails sur la structure et le fonctionnement du microcode, qui pourraient être utiles pour la compréhension des processeurs modernes.
Les résultats de cette recherche pourraient également être utilisés pour améliorer la sécurité et la fiabilité des systèmes qui utilisent des processeurs 80386. De plus, l'utilisation de l'IA et de l'automatisation humaine pour le désassemblage du microcode ouvre de nouvelles perspectives pour l'analyse et la compréhension des systèmes complexes.