Cette question concerne principalement l'histoire, mais je n'ai trouvé aucune documentation à ce sujet. Toute la documentation que je peux trouver sur le mode réel x86 (y compris le manuel Intel [1] et les cartes mémoire en ligne [2]) suppose 640 Ko de mémoire système. Pourtant, le PC IBM original avait seulement 16 Ko ou 64 Ko de RAM [3].Comment le mode réel x86 a-t-il fonctionné sur des machines avec <640 Ko de RAM?
Comment ça marche? Deux questions spécifiques:
- Comment la CPU se comportait-elle si la mémoire n'existait pas? Le manuel Intel [1] indique, pour le mode réel, que #GP (défaut de protection générale) est déclenché "Si une adresse effective d'opérande de mémoire est en dehors de la limite de segment CS, DS, ES, FS ou GS", et pour les autres, "Si une partie de l'opérande se trouve en dehors de l'espace d'adressage effectif de 0 à FFFFH." Cela ne semble pas suggérer que vous pouvez obtenir un #GP pour accéder à la mémoire bien adressée qui n'existe pas. Alors, que fait le processeur dans ce cas? Selon la carte mémoire [2], le BIOS charge généralement le MBR à 0x7c00, qui est en dehors de l'espace mémoire du PC IBM «bon marché» d'origine avec seulement 16 Ko de RAM. Comment a-t-il fait face à cela? (A été la conception du BIOS d'abord pas le code de chargement à 0x7c00?)
[1] http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
[2] http://wiki.osdev.org/Memory_Map_(x86)
[3] http://en.wikipedia.org/wiki/IBM_Personal_Computer#PC
Merci. Cela a beaucoup de sens lorsque vous considérez les connexions matérielles entre le CPU et la RAM (aucun moyen de communiquer une "erreur" de toute sorte, juste des fils non connectés). – mgiuca