2015-03-29 1 views
3

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:

  1. 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

Répondre

8

Le processeur 8088 adressé directement la RAM , il n'y avait pas de MMU ou de circuit qui indiquait au processeur qu'il accédait à une adresse invalide. Donc, le programme vient de lire les ordures, typiquement 0xff. Peu probable pour durer longtemps après cela :)

Le PC IBM d'origine avec 16 Ko de RAM était vendu sans lecteur de disque. Donc, peu importe que l'adresse de démarrage ne soit pas valide. L'utilisateur devait utiliser uniquement la ROM Basic. Ce n'était pas très populaire. Si vous l'avez acheté avec une disquette, la configuration "business use", vous avez automatiquement 64 Ko de RAM inclus. Donc l'adresse était valide. Cette configuration a coûté 7 795 $ en prix d'aujourd'hui :)

Également noté sur this web page.

+0

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