En fait l'architecture x86 32 bits addresse en théorie au maximum 2^32 octets (4Go). Il existe un mode virtuel qui me semble-t-il adresse jusqu'à 128Go, mais n'est utilisé qu'optionnellement sur les derniers Windows serveurs 32 bits et il faut alors un recompilation de certaines applications et surtout de la plupart des pilotes. Ce mode permet de paginer la mémoire, un peu comme du temps de 8086 avec Dos et Windows 16bits, avec l'EMM paginée sur un petite portion des 1Mo adressable (2^20 octets seulement) sur 16 ou 32 Mo supplémentaires avec une carte ISA spéciale, avant que le 80286 sorte qui pouvait adresser directement 2^24 soit 16Mo.
Par ailleurs, les pilotes et les cartes PCI et utilisent des bancs de mémoire dans les 2^32 octets (4Go) (les cartes ISA utilisaient les 16 premiers Mo d'où la réservation possible dans certains BIOS entre 15 et 16Mo), forcément pour qu'ils soient addressables. Le mieux c'est de le faire à la fin de la mémoire, donc souvent à partir de 3Mo mais parfois moins (certaines cartes et pilotes ne marchent pas avec 3Go et il faut diminuer cette mémoire utilisable sur Vista ou Xp 32 bits). Normalement d'ailleurs XP comme Vista se limitent à 2Go de Ram utlisable et c'est une extension que de pouvoir en utiliser 3. Les portables qui le font sont normalement garantis pour pouvoir le faire au niveau du matériel embarqué.
Donc pour addresser plus, il faut un autre système, prévu dès l'origine pour des instructions 64 bits apparus avec les Athlons 64 (pas toute le gamme), puis les derniers Pentiums IV avec EMT64.
Il ne faut pas oublier que le mode 32bits de Windows est apparu avec une extension de Windows 3.1, alors que le parc était composé de 80386 et de 486 et que 4Go c'était utopique comme taille.
Message édité par jeanbon 2004 le 23-08-2008 à 14:12:47