Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Windows et la gestion du PAE

par

Comme nous l'avons vu, le PAE est une technologie assez courante. Disponible sur une grande partie des processeurs, elle devrait permettre de gérer plus de 4 Go de RAM sur les OS 32 bits, mais dans la pratique il n'en est rien. Intéressons-nous aux différents Windows.

Premier cas, pas de gestion

Prenons un cas simple, Windows 95 et ses successeurs (comme Windows Me). Avec ces systèmes, le PAE n'est pas pris en charge et il est donc impossible de dépasser 4 Go de RAM. En pratique, on se limite même à un peu moins : l'espace requis par la MMIO est toujours d'actualité.Pas de gestion du PAE

Second cas : le PAE est pris en charge et utilisé

Le second cas est celui de Windows 2000 et de Windows XP avant le Service Pack 2 : le PAE est pris en charge et peut être utilisé. Avec ces deux systèmes, la mémoire officiellement prise en charge est de 4 Go (sur les versions à usage personnel) et les 4 Go de RAM sont entièrement disponibles. Microsoft utilise le PAE pour déplacer l'espace requis par la MMIO dans une zone supérieure (à la limite haute du processeur, 16 ou 64 Go). Attention tout de même à un point : le PAE doit être activé manuellement dans le boot.ini (en plaçant un /PAE derrière le nom du système à démarrer) et un processeur compatible doit être utilisé. Avec ces deux systèmes, on a donc 4 Go de RAM physique et un espace d'adressage plus grand que ces 4 Go.

Gestion du PAE

Troisième cas : le PAE est pris en charge et n'est pas utilisé

Sous Windows XP Service Pack 2 (et 3) et Vista, Microsoft active d'office le PAE mais ne l'utilise pas. Pourquoi activer le PAE ? Parce que le NX bit, une technologie introduite avec le SP2, nécessite l'activation du PAE pour fonctionner (le NX bit utilise le bit 63 de la table de page, qui n'existe qu'en mode PAE et pas en 32 bits classique). Pourquoi ne pas l'utiliser ? Parce que Microsoft s'est rendu compte que certains pilotes ne vérifiaient pas si le PAE était activé et considéraient qu'il ne l'était pas. Dans ce cas précis, le pilote allait écrire dans une zone où il pensait trouver l'espace d'adressage d'un périphérique, mais où se trouvaient en fait des données, ce qui provoque évidemment des problèmes. Les pilotes de cartes graphiques sont les plus touchés par ce problème, en partie parce qu'ils utilisent énormément les zones gérées en MMIO. En pratique, sous Windows XP SP2, SP3 et Windows Vista, on dispose donc de 4 Go d'espace d'adressage et donc une mémoire vive limitée.

Gestion limitée du PAE

Le cas Vista

Sous Windows XP, la mémoire vive disponible dépend des périphériques : si vous en avez peu et une carte graphique simple, la mémoire disponible sera plus élevée que si vous avez six cartes d'extensions et deux cartes graphiques. Sous Windows Vista, avant le SP1, le comportement est différent : Microsoft réserve automatiquement la mémoire et limite la mémoire vive disponible à 3,12 Go. Sous Windows Vista SP1, Microsoft a encore modifié le comportement : le fonctionnement reste le même, mais le système affiche bien 4 Go de RAM (au lieu de 3,12 Go auparavant). Un bon moyen d'éviter les récriminations des clients qui n'ont pas leurs 4 Go de RAM...

En 64 bits

Le denier cas est le plus simple : le 64 bits. En 64 bits, la limitation à 4 Go n'est plus de la partie, même s'il en existe d'autres. La première vient du CPU : le bus d'adresse varie de 36 à 40 bits sur les CPU 64 bits (avec un maximum théorique de 52 bits), soit entre 64 Go et 1 To. Pour les systèmes, Windows se limite en théorie à 128 Go mais en pratique, la quantité maximale de mémoire dépend de la version du système : un Vista Ultimate ou Business et un XP 64 bits se limite bien à 128 Go alors qu'un Vista Home Premium ne peut pas dépasser 16 Go et un Vista Home Basic s'arrête à 8 Go. En pratique, Microsoft place la limite maximale à la limite réellement utilisable sur une machine : Windows peut en théorie utiliser 1 To mais aucune machine ne dispose que de cette quantité de mémoire et la firme n'a pu tester que sur des machines avec 128 Go.

En 64 bits

Partager:
48
Commentaires
X
Valider

Commentaires
Lire les commentaires sur le forum
isneok 19/03/2009 09:57
Masquer
-3+

A vrai dire le principal soucis c'est que les applications ne peuvent utiliser plus de 2Go (voire 3 avec /LARGEADDRESSAWARE mais c'est une autre histoire).
Par conséquent, la mémoire ne peut être saturée qu'en lancant de multiples applications...
Bref, c'est un sujet qui fait couler beaucoup d'encre ces temps ci, et les conclusions restent les mêmes: inutile de prendre plus de 3Go.

isneok 19/03/2009 10:41
Masquer
-0+

Je voudrais donner une petite précision à propos de Supreme Commander, car c'est un jeu auquel je joue ces temps ci...
Il n'a pas été compilé pour tirer partie de plus de 2Go de mémoire! Il s'agit d'un hack fait par des fans et que l'on doit faire soit même, GPG-Net refusant d'en prendre la responsabilité!
Le taux de support de ce jeu est proche de zéro (ou égal? aucun patch depuis des mois, alors que les bugs et exploits sont légions et que des fans ont envoyé les correctifs aux développeurs).
Par ailleurs, que le joueur soit sur une plateforme 32 ou 64 bits n'aura aucun impact: la limite absolue est de 3GB, tout à fait atteignable sous XP_32.

C'est cependant un bon exemple qui montre bien que nous sommes à une période charnière. Les éditeurs ne sortirons de réelles applications 64 bits que lorsque le public sera massivement doté de plateformes ayant 4GB de ram ou plus.
Ce qui prendra longtemps... Au début, les loading seront raccourcis, sans vraiment plus d'effet... Amha, avec 2-4 GB nous sommes tranquilles pour 2 ans minimum.

xuthor 19/03/2009 10:51
Masquer
-0+

Merci pour l'article, je le trouve très complet et j'aurais juste une question et je m'excuse par avance si elle parait stupide : vu que tous les ordinateurs en vente depuis quelques années sont compatibles avec des OS 64bits, pourquoi Microsoft ne saute pas le pas pour ne plus sortir que des versions de Windows 64 bits ? Et pour les fabricants de matériel et de logiciels : c'est vraiment si compliqué de faire des versions 32 bits et 64 bits de leur produits ?

dandu 19/03/2009 10:57
Masquer
-0+

Pour les pilotes, oui, ça nécessite de tout réécrire. Pour les programmes, c'est simplement que ça ne sert pas spécialement dans 90 % des cas.

bennybouf 19/03/2009 10:57
Masquer
-0+

Avec mon PéCé sous Vista x64 j'ai saturé mes 4Go avec un petit montage sous Photoshop CS4 64bits ^^.

Je pense qu'il est quand même temps de passer tous les OS en 64 bits ! Les pilotes sont de plus en plus développés et même les applications commencent à se démocratiser. Pourquoi hésiter ?

Évidemment, les périphériques un peu "vieux" risquent de trinquer. Pour preuve ma webcam Creative qui fonctionne au poil (après légère bidouille des pilotes XP) sous Vista x86 mais absolument pas en x64 ! D'un autre côté, c'est du Creative donc bon matériel mais question pilote, c'est une toute autre histoire :p

NewLook 19/03/2009 11:15
Masquer
-0+

Le 64bits est en train de se démocratiser, dans les grandes surfaces on trouve des PC par exemple HP, qui sont équipés de Vista64 par défaut, et pourtant qu'avec 3Go de ram.

anonymous 19/03/2009 12:00
Masquer
-0+

"Il faut bien comprendre que la façon de gérer la mémoire date en grande partie du 80386, un processeur qui date d'il y a plus de 20 ans, et que les ingénieurs ne pensaient pas que les limites du 32 bits seraient un jour un problème."
mon prof de maths de terminale - ya déjà 20 ans, mince ! - nous hurlait à la face (gentiment) de penser large ! bon, bah les ingé de l'époque n'ont pas eu la chance de suivre ses cours...

dandu 19/03/2009 12:07
Masquer
-0+

Citation :"Il faut bien comprendre que la façon de gérer la mémoire date en grande partie du 80386, un processeur qui date d'il y a plus de 20 ans, et que les ingénieurs ne pensaient pas que les limites du 32 bits seraient un jour un problème."
mon prof de maths de terminale - ya déjà 20 ans, mince ! - nous hurlait à la face (gentiment) de penser large ! bon, bah les ingé de l'époque n'ont pas eu la chance de suivre ses cours...


Non, mais à la sortie du 386, 4 Mo de RAM, c'était un luxe inutile (DOS ne géreait que 640 Ko), donc même en pensant large, se dire que la gestion de 1000 fois le luxe poserait problème, voila quoi :D

Jeff_Trankil 19/03/2009 12:13
Masquer
-0+

Pour éviter ces problèmes de mémoires, il faut taper la ligne de commande :

loadhigh emm386.exe /noems /xms

Blague Nostalgique...

angoody 19/03/2009 12:44
Masquer
-0+

Excellent article, moi qui me posait des questions sur l'adressage des périphérique... la réponse est plutôt historique.

Si j'ai bien tout compris, les adresses mémoire des périphériques empiète sur les adresses mémoires de la RAM : c'est la même plage d'adresse entre la RAM et les périphériques.
Les adresses des périphériques ne change pas que l'on ait 2 ou 4 Go (hors PAE).
Je voyais pas bien à quoi pouvait servir la ram pour les périphériques: ben à rien...

Merci à anonyme (il se reconnaîtra) de m'avoir un peu éclairer sur le post du 15/01. Mais il restait encore un gros flou artistique que cet article a comblé

lolotux 19/03/2009 12:45
Masquer
-0+

Pour info, les dernière distribution linux gèrent le :
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y

Ma Debian, est même précompilée pour du 64Go !
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y

adanorm2000 19/03/2009 13:24
Masquer
-0+

C'est clair qu'il y a eu une immense inertie du monde microsoft (et apple) à passer au 64bits !
Il y a environ 5 ans, je m'étais jeté sur la 2ème vague d'athlon64 (les version s939) en me disant que je migrerais rapidement vers un windows 64 bits etc ... bla bla bla ...
En fin de compte ce CPU n'aura jamais exécuté une seule instruction 64 bit de sa carrière ! Le premier "windows XP 64" étant une rustine infâme impropre a une utilisation quotidienne. (pour rappel, une sorte d'XP 32bit avec un programme a lancer qui permettait de lancer des applis 64 bits ... la misère donc)
Je n'aurais pris en marche le train du 64 bit qu'avec Ubuntu 64 et mon core2duo !
Si dire qu'actuellement, les OEM inondent encore le marché de machines 32bits je trouve ça vraiment anachronique ! C'est en ralentissant l'adoption du 64 bits de cette façon qu'on ralenti en conséquence les développements adaptés au 64 bit ! Le serpent se mord la queue !
En tout cas, lors de mon arrivée sous ubuntu64, je n'ai pas du tout eu l'impréssion que la gestion du 64 bits était bancale ! Bibliothèque d'applications je pense aussi riche, aucun souci de driver ...
Bref, ça roule !

anonymous 19/03/2009 14:29
Masquer
-1+

Je tourne sous vista 64 depuis plusieurs mois avec 8 Go de RAM et c'est un pur bonheur. J'ai pourtant quelques péiphériques âgés de quelques années mais tout fonctionne bien. Le seul périph qui m'a posé des soucis était mon trackball kensington.
A bas le 32 bits !

galatasaray007 19/03/2009 16:46
Masquer
-0+

J'ai acheté Vista Premium y a un an en 32 bits et y a un mois je me suis achete des barettes memoires Corsaire 2X2 Go donc 4 Go. Comme le 32 Bits ne les gerait pas totalement, j'ai commande chez microsoft un DVD Vista Premium 64 Bits (c'est gratuit mais il faut payer les frais de port)

Je l'ai installe et que du bonheur

aucune incompabilite (tout mes application 32 Bits fonctionne), tout mes jeux fonctionne, surtout que j'ai pu jouer a far cry et crysis en 64 Bits, je vois direct la difference, j'ai gagne 5-10 FPS (sur crysis) et mon pc est plus rapide qu'avec le 32 Bits.

Donc je pense que Microsoft doit arreter de produire des OS en 32 Bits pour que le public et les editeurs de logiciels-jeux puissent migrer a 100% a l architecture 64 Bits

Mictateur 19/03/2009 16:59
Masquer
-0+

Très bien de résumer tout ça dans un dossier. :jap:

Quelques précisions : Windows en 64 bits a un mode de compatibilité 32 bits (WoW), donc toutes les applis (et quelques drivers) 32 bits tournent très bien. Seul souci : les applis 16 bits, c'est grillé, la couche de compatibilité 16 bits ayant dégagé.
Et maintenant, entre du Vista x86 et x64, la différence de compatibilité n'est plus très notable, mais c'est relativement récent. Y'a encore 18 mois, c'était la misère sur bien des points, et ne vous attendez pas à faire tourner des vieux périphériques en x64.

Il faut noter qu'Intel n'a pas faciliter les choses : il a mis des années avant de fournir un jeu d'exécutions 64 bits à ses P4, les Core Duo (qu'on trouve sur plein de portables de 2005-2006) et les premiers Atom ne sont pas x64.


Sinon, les dernières builds de Windows 7 sont honnêtes et précisent combien de RAM est installée et combien utilisée :

batchy 19/03/2009 17:15
Masquer
-0+

Citation :

Ma Debian, est même précompilée pour du 64Go !
# CONFIG_HIGHMEM64G is not set


:whistle:

Si tu veux ta gestion du 64g, utilise les noyaux linux-image-*-bigmem

anonymous 19/03/2009 20:05
Masquer
-1+

Le mot de la fin : on peut se contenter d'un Windows 32 bits et 3Go de ram pendant encore un moment !

zorro3364 19/03/2009 21:14
Masquer
-0+

bta92, c'est exactement ce qu'on disait il y a quelques années au sujet des 640ko....

pour ceux qui en doutent, transformer un programme 32 en 64 bits est certes relativement simple, mais demande énormément de petites modifications en C/C++, principalement a cause des divers conversions de valeurs entre les pointeurs, qui s'expriment alors sur 64 bits, et les nombres qui restent en 32 bits. en assembleur (ou les parties optimisées en assembleur), là il faut carrément tout ré-écrire!
il faut savoir qu'un programme est soit 32 bits, soit 64 bits, mais ne peut pas être les 2 a la fois. hors, quand on charge un registre 64 bits avec un registre 32 bits, c'est le bit de signe qui est recopié 32 fois pour remplir les 32 bits qui manquent, et non pas 0: les valeurs des 2 registres n'ont donc plus rien à voir, ce qui pose les problèmes de conversions citées plus haut et un simple flag dans les options de compilation ne suffit hélas pas!
bon, de toute façon, grace au WoW64 (Windows on Windows64), les applis 32 bits tournent parfaitement sur un os 64 bits, alors pourquoi perdre son temps à convertir du code 32 bits là où il n'y en a pas besoin?

petite précision: contrairement a ce qui est précisé au dernier paragraphe de la page 7, les pointeurs sont TOUJOURS de 32 bits en mode 32 bits (ESI, EDI, etc), et de 64 bits en mode 64 bits (RSI, RDI, etc). le flag LargeAddressAware ne permet de dépasser que la limite windows des 2Go par application. je crois qu'il y a confusion entre PAE (agit uniquement sur l'OS), le flag LargeAddressAware (agit uniquement sur l'éditeur de lien, lors de la compilation du programme), et le fonctionnement en 32/64 bits.

anonymous 20/03/2009 13:19
Masquer
-0+

Je sais que le Core2Duo gère au maximum 64Go de RAM. Mais combien gère les Corei7 et les Phenom au maximum?

dandu 20/03/2009 14:12
Masquer
-0+

1 To pour les CPU récents (bus sur 40 bits)

shooby 20/03/2009 19:45
Masquer
--2+

Ce dossier n'est pas nouveau si je ne m'abuse, il a été mis en ligne il y a quelques mois

Intrus 20/03/2009 20:34
Masquer
-1+

J'ai lu moi aussi une variante de ce dossier il y a quelques temps, ainsi que d'autres dossiers, ce qui m'a poussé à passer à 4 Go sous XP SP2...

Pourquoi ?

- En passant de 2x1 Go de ram à 4x1 Go, je reste en dual channel. Ca peut faire gagner 4 à 7% de perfs dans les jeux.
- XP me détecte 250 Mo de ram en + de 3 Go

> Or, ces 250 Mo et le dual channel me coûtent 15€.

Bref, l'intérêt est très limité mais le coût négligeable, alors on peut se faire plaisir.

[nostalgie]
En 1998 ou 99, j'ai payé plusieurs centaines de francs pour 2x4 Mo de ram (afin de jouer à Privateer 2 sous Dos).
[/nostalgie]

dandu 20/03/2009 21:15
Masquer
-0+

shooby :
Ce dossier n'est pas nouveau si je ne m'abuse, il a été mis en ligne il y a quelques mois



Mais n'importe quoi, si t'avais lu, t'aurais remarqué qu'il y a bien eu des actus sur le sujet mais que le dossier est
1 : plus complet
2 : reprend les demandes des gens

shaffe 21/03/2009 15:23
Masquer
-0+

Excellent dossier qui explique très bien tout ce mythe des 3Go.
Pour ce qui est les OS 64Bits (pour Linux - Debian/Ubuntu en tout cas) je n'ai eu aucun problème, que ce soit pour les drivers ou pour les applications. Pour ce qui est des performances, le gain est notable.

batchy 22/03/2009 08:40
Masquer
-1+

Citation :

pour ceux qui en doutent, transformer un programme 32 en 64 bits est certes relativement simple, mais demande énormément de petites modifications en C/C++, principalement a cause des divers conversions de valeurs entre les pointeurs, qui s'expriment alors sur 64 bits, et les nombres qui restent en 32 bits.


Forcement, quand on code avec les pieds, c'est moins portable. Quand on veut mettre des pointeurs dans des nombres ou l'inverse, la moindre des choses c'est de comparer la taille d'un pointeur et la taille d'un nombre ...
Citation :

en assembleur (ou les parties optimisées en assembleur), là il faut carrément tout ré-écrire!
il faut savoir qu'un programme est soit 32 bits, soit 64 bits, mais ne peut pas être les 2 a la fois. [quotemsg=464984,19,710186]hors, quand on charge un registre 64 bits avec un registre 32 bits, c'est le bit de signe qui est recopié 32 fois pour remplir les 32 bits qui manquent, et non pas 0: les valeurs des 2 registres n'ont donc plus rien à voir, ce qui pose les problèmes de conversions citées plus haut et un simple flag dans les options de compilation ne suffit hélas pas!


Si ton logiciel assembleur accepte de mettre eax dans rbx sans extends, c'est qu'il est vraiment pourrave, et qu'il faudrai peut être en changer.

boboss2009 25/03/2009 18:01
Masquer
-0+

moi suis en vista pro 64 bits, avec 4 go de ram, que photoshop cs4 et after effects cs4 exploitent vraiment (je compte même passer à 6 go plus tard). je n'ai pour le moment eu aucun problème de compatibilité tant matérielle, que logicielle... donc oui, à l'heure où nos cartes mère exploitent en majorité au moins 8 go de ram, que le go est dans les 15 euros, et que nos ordi sont plus puissant que jamais, il serai temps de passer au 64 bits pour tous le monde...

sigi 28/03/2009 10:46
Masquer
-0+

Donc le problème ne viens pas de vista mais bien des processeurs qui tournent en 32 bit .
Aucun OS ne peut gérer plus de 3go en 32 bits vu que les processeurs ne leur permette pas, donc dire que vista ne gère pas plus de 3go( ou a peine plus ) est en partie faux (si je dis ça ce n’est pas parce que Microsoft ma envoyé office pro en cd …mais sans la clé logiciel donc inutilisable)
entre nous avant Microsoft avait mit un tableau des gestions de mémoire maximum pour chaque version de vista, parce que niveaux maximum de mémoire tous les vista ne sont pas sur le même pied certain (si je me rappel bien ) son limité a 4GO pour le vista de base ( c’est pourquoi ce beaux tableau a disparu ) ou encore 8GO d’autres vont jusqu'à 16GO voire 32 go mais c’est la limite (en attendant les 128bit voir les 256bit (comme sur nos cher gpu)…
je me suis assez battu ( sur plusieurs forum il y a un an ) contre certain malhonnêtes qui prétendais que vista allait géré 4 go en 32bit (via le patch sp1)

jplinux 28/03/2009 10:55
Masquer
-0+

Je le dis depuis des années, il serait à peu près temps de se plonger sur les cartes mères, doubler les bus ne devrait pas être si compliqué que ça, enfin du moins c'est ce que j'imagine.
Les architectures des cartes mères actuelles n'ont pas tant évolué, si ce n'est à l'ajout des périphériques embarqués (carte vidéo et son), périphériques souvent remplacés par des cartes de performances dédiées.

dandu 28/03/2009 11:29
Masquer
-0+

Citation :

Donc le problème ne viens pas de vista mais bien des processeurs qui tournent en 32 bit .
Aucun OS ne peut gérer plus de 3go en 32 bits vu que les processeurs ne leur permette pas, donc dire que vista ne gère pas plus de 3go( ou a peine plus ) est en partie faux (si je dis ça ce n’est pas parce que Microsoft ma envoyé office pro en cd …mais sans la clé logiciel donc inutilisable)
entre nous avant Microsoft avait mit un tableau des gestions de mémoire maximum pour chaque version de vista, parce que niveaux maximum de mémoire tous les vista ne sont pas sur le même pied certain (si je me rappel bien ) son limité a 4GO pour le vista de base ( c’est pourquoi ce beaux tableau a disparu ) ou encore 8GO d’autres vont jusqu'à 16GO voire 32 go mais c’est la limite (en attendant les 128bit voir les 256bit (comme sur nos cher gpu)…
je me suis assez battu ( sur plusieurs forum il y a un an ) contre certain malhonnêtes qui prétendais que vista allait géré 4 go en 32bit (via le patch sp1)




T'as pas lu ?

Mac OS X et Linux en 32 bits gère 64 Go....

Et Vista Ultimate en 64 bits c'est 128 Go. C'est la gestion des pilotes et du PAE en 32 bits qui limite (et c'est PAS 3 Go, mais une limite entre 3 et 4...)

sigi 28/03/2009 14:19
Masquer
--1+

Oui je n’avais pas lu tous l’article ….
Mais après lecture je reste colère quand un journaliste(… on ce demande quel sont les avantages qu’il retire de ces relation avec Microsoft) ce sert d’un tire d’article aussi spécieux que « La légende : Vista ne gère que 3 Go … on rêve, on est loin des 4 GO(hors carte graphique) promis a l’origine sur le site Microsoft (disparu depuis) et pour autant que je me souvienne c’est déjà ici, que j’ai du faire face a la mauvaise foix de certain, concernant l’argumentaire de vente de Microsoft , qui n’hésite pas a sortir un patch qui cache la réalité .
Quand on achète un portable de marque avec 4go de ram ,qui va croire que vista ne peut pas les utilisé bien qu’il les affiche ? et qui viens voir sur les site spécialisé ? lis les news complètement ? si on s’arrête aux titre, on lis quoi ?eh bien que c’est une légende de prétendre que vista ou xp ne gère pas plus de3 go .c’est tous ce que on retiens. Donc ce titre c’est de l’intox aux service des distributeur de pc sous os 32bit avec 4go et du fabricant de cet os qui sort ce sois disant patch qui porte la mémoire a 4 go ( bizarre l’os ne tien pas compte de la mémoire de la carte graphique)
Pour les 128 go tu as lu ca ou? Parce que cela viens surement pas de chez Microsoft qui ne communique plus directement ce types d’argumentaires de vente et faudra testé pour voir si c’est vrai , d’ailleurs je serais curieux de connaitre les argument de Microsoft concernant le fait que des version plus simple de vista 64 sois limité sur le maximum de la mémoires vive par rapport aux versions + cher.

Les offres du moment

Newsletters


OK