c pas une question de temps d'acces,
La mémoire partagée se retrouve de plus en plus souvent au coeur des ordinateurs portables. Mais les constructeurs entretiennent un véritable flou artistique sur le sujet... Les utilisateurs sont alors noyés sans un discours plus marketing que technique qui finit par faire passer la pilule. En pratique, ce type de mémoire offre des performances graphiques exécrables et comme si cela ne suffisait pas, elle réduit les performances globales du système. Le seul avantage de la mémoire partagée est la réduction du coût total du portable...
Dans un ordinateur classique, le Northbridge se situe logiquement entre le processeur, la mémoire et la carte graphique et le Southbridge. Le rôle du Northbridge est capital puisque toutes les informations y transitent. Le Northbridge est en liaison directe avec la mémoire SDR (boules rouges) à 133MHz ou 100MHz pour les systèmes plus lents ce qui offre un débit maximum de 1000Mo/s (bus de 64bits). Plus ce débit est important, plus le système peut être globalement rapide. En effet, le graphe montre clairement que le Northbridge est le coeur du système. Les boules de différentes couleurs qui symbolisent les données passent toutes par le Northbridge. Les 1000Mo/s doivent donc être répartis entre le processeur, le Southbirdge (et tous les composants lents : PCI, IDE, Lan et audio), le processeur graphique. La liaison entre le chipset et la mémoire est donc un point de passage capital pour les informations. Il faut garder à l'esprit que toutes les données traitées par le processeur et tous les autres composants engendrent un passage par la mémoire. Le bus mémoire (boules rouges) est donc un bus hyper actif qui travaille toujours à la limite de la saturation... Le bus AGP qui relie la carte graphique au Northbridge (boules jaunes et vertes) reçoit un trafic modéré sous Windows mais devient lui aussi très chargé lors des scènes 3D. Tout comme un processeur classique, le processeur graphique a besoin de mémoire pour traiter les images et faire ses calculs intermédiaires. Il a donc besoin de nombreux accès à une mémoire rapide pour soutenir une vitesse d'affichage élevée. Les circuits 3D Mobiles comme le Radeon Mobility utilisent un bus DDR (Double Data Rate soit deux fois plus rapide qu'un bus SDR) de 128bits à 166MHz ce qui offre un débit de 5100Mo/s ! Le GeForce2 Go se contente d'un bus DDR de 64bits à 166Mhz pour offrir un débit de 2550Mo/s, un débit déjà largement suffisant. Le processeur graphique et sa mémoire peuvent travailler très rapidement comme un sous-ensemble quasiment indépendant. En pratique, lors du chargement d'un jeu, les textures passent du disque dur à la mémoire centrale où le processeur leur fait subir quelques opérations avant d'aboutir dans la mémoire de la carte graphique qui les utilisera quand elle en aura besoin. Le processeur graphique peut donc faire ses calculs dans la mémoire graphique et y traiter les textures sans avoir à faire des accès dans la mémoire centrale. Si la texture fait 6Mo, il reste sur les 16Mo d'une Radeon Mobility, 10Mo pour les calculs intermédiaires et le frame buffer (espace mémoire où est stockée l'image avant l'affichage). La mémoire centrale est entièrement libre pour le processeur et les autres composants.
Avec de la mémoire partagée, les choses sont bien moins optimisée. En effet, le processeur graphique ne dispose pas de sa propre mémoire. Il doit utiliser la mémoire centrale en faisant passer toutes ses requêtes par le Northbridge avant d'arriver à la mémoire centrale. Cette dernière opère en 64bits à une fréquence de 133MHz en Single Data Rate (une donnée par cycle). En d'autres mots si la carte graphique venait à s'accaparer tout le bus mémoire, elle disposerait au mieux de 1000Mo/s. Mais tous les autres composants seraient alors à l'arrêt car ils n'auraient plus de données à traiter. Il est donc impossible que la carte graphique puisse accéder à 100% des ressources mémoires. La carte graphique doit alors partager la bande passante mémoire avec tous les autres composants. Mais comme nous venons de l'expliquer, le bus mémoire est déjà très chargé sans avoir à supporter les données additionnelles produites par le processeur graphique. Dans l'hypothèse où la carte graphique à mémoire partagée utilise 50% du bus mémoire, elle dispose au maximum de 500Mo/s soit 5x moins qu'une GeForce2 Go ou 10x moins qu'un Radeon Mobility. Mais ce n'est pas tout ! Dans l'architecture classique, les composants (processeur, southbridge, etc.) ont droit à 1000Mo/s. Avec de la mémoire partagée (toujours en accord avec notre hypothèse), il ne leur reste que 500Mo/s... Non seulement le processeur graphique n'est pas suffisamment alimenté en données mais tous les autres éléments en pâtissent ! Le pire des cas se produit en 3D. La texture est chargée du disque dur vers la mémoire, traitée par le processeur central mais au lieu de prendre place dans la mémoire dédiée, elle reste dans la mémoire centrale. Dans notre exemple, les 6Mo de texture restent alors dans la mémoire centrale. Le processeur graphique utilisera encore de 6Mo à 10Mo de mémoire centrale pour ses calculs et le frame buffer. La mémoire centrale est donc amputée d'une bonne dizaine de Mo qui seront indisponibles pour les autres composants. Il est maintenant aisé de comprendre que l'utilisation de la mémoire centrale en remplacement d'une mémoire vidéo dédiée est une aberration ! La mémoire centrale dont le débit constitue déjà un goulot d'étranglement se voit encore surchargée par des données qui pénalisent les performances du système. De plus la lenteur relative de la mémoire central est totalement inadaptée au traitement de données graphiques…
(C) pas moi
Pour conclure, reellement, une carte graphique a 16Mo dediée est plus performante qu'une CG a 64Mo partagée (les benchs le prouve)