Pourquoi la RAM n'est-elle pas mise sur la puce du processeur?

55

Les processeurs modernes sont très rapides par rapport à tout ce qui est externe, y compris la mémoire (RAM).

Cela est compréhensible, car la fréquence d'horloge de la CPU a atteint un point où il faut plusieurs ticks d'horloge pour qu'un signal électrique puisse simplement circuler de la CPU à l'arrière du bus en passant par le bus.

Cela complique également la vie à plusieurs niveaux: les hiérarchies de cache multiniveaux sont conçues pour fournir des données plus proches du processeur, ce qui nécessite une logique de synchronisation complexe dans la puce. Les programmes doivent être écrits en respectant le cache pour éviter les cycles d'attente pendant l'extraction des données.

Un grand nombre de ces problèmes pourraient être évités si une quantité importante de RAM était située directement sur la puce du processeur. Cela ne nécessite pas un arrangement exclusif: mettez peut-être 1 à 4 Go sur la puce, en fonction de sa classe, et autorisez de la mémoire supplémentaire installée séparément.

Je suis sûr qu'il y a de bonnes raisons pour lesquelles Intel, AMD, etc., ne le font pas. Quelles sont ces raisons? Est-ce qu'il n'y a pas de place libre sur la puce?

Petit hérisson
la source
29
Le cache est de la RAM. L'espace et les broches sur la matrice sont rares.
copper.hat
2
@ copper.hat Le cache est de la RAM, mais la taille du cache ne représente qu'une petite fraction de la RAM installée (en général, nous parlons de plages de Mo / octets par rapport à g). Je me demande pourquoi ne pas mettre 1 Go dans la puce du processeur.
Petit hérisson
5
Généralement, il est optimisé pour une combinaison d'instructions et de flux de données. En outre, toutes les données de / vers la RAM ne passent pas par la CPU.
copper.hat
1
Plus un dé est simple, moins c'est cher. Cela signifie également que vous pouvez utiliser différentes tailles et méthodes de traitement.
Compagnon Geek
@ LesserHedgehog Il y a une limite au taux de réussite de votre cache en général, donc ajouter plus de cache n'aide vraiment rien. De plus, de nombreux processeurs ont en réalité une mémoire DRAM intégrée, en particulier dans l’espace mobile / intégré (beaucoup de SoC basés sur ARM, par exemple).
moelleux

Réponses:

79

Haswell d'Intel (ou au moins les produits intégrant le processeur graphique Iris Pro 5200) et les POWER7 et POWER8 d'IBM incluent tous des DRAM intégrés, "eDRAM".

Un problème important qui empêchait eDRAM de devenir monnaie courante jusqu’à récemment est que le processus de fabrication de DRAM n’est pas intrinsèquement compatible avec les processus logiques, de sorte que des étapes supplémentaires doivent être incluses (ce qui augmente le coût et diminue le rendement) lorsque eDRAM est souhaité. Il doit donc y avoir une raison impérieuse de vouloir l’intégrer pour compenser ce désavantage économique. La mémoire DRAM peut également être placée sur une puce distincte fabriquée indépendamment de la CPU, mais intégrée dans celle-ci, dans le même boîtier. Ceci fournit la plupart des avantages de la localité sans les difficultés de fabrication des deux de manière vraiment intégrée.

Un autre problème est que la mémoire DRAM n’est pas semblable à la mémoire SRAM en ce sens qu’elle ne stocke pas son contenu indéfiniment tant que le système est sous tension, et sa lecture détruit également les données stockées, qui doivent ensuite être réécrites. Par conséquent, il doit être actualisé périodiquement et après chaque lecture. Et, comme une cellule DRAM est basée sur un condensateur, chargez ou déchargez-la suffisamment pour que les fuites ne corrompent pas sa valeur avant que le prochain rafraîchissement ne prenne un temps fini. Ce temps de charge n’est pas nécessaire avec la mémoire SRAM, qui n’est qu’un verrou; par conséquent, elle peut être cadencée au même rythme que le processeur, alors que la mémoire DRAM est limitée à environ 1 GHz tout en maintenant une consommation électrique raisonnable. Cela donne à la mémoire DRAM une latence inhérente supérieure à celle de la mémoire SRAM, ce qui rend inutile son utilisation pour tous les caches, sauf les plus grands, pour lesquels le taux de perte réduit sera rentable.

En outre, en ce qui concerne la latence, une grande partie de la difficulté réside dans la distance physique que les signaux doivent parcourir. La lumière ne peut voyager que 10 cm dans la période d'horloge d'un processeur de 3 GHz. Bien entendu, les signaux ne traversent pas la matrice en ligne droite et ne se propagent pas à une vitesse proche de la vitesse de la lumière en raison de la nécessité de la mise en tampon et du déploiement, ce qui entraîne des délais de propagation. Ainsi, la distance maximale qu'une mémoire peut être éloignée d'une unité centrale afin de maintenir un cycle d'horloge de latence est de quelques centimètres au maximum, ce qui limite la quantité de mémoire pouvant être hébergée dans la zone disponible. Le processeur Nehalem d’Intel a en fait réduit la capacité du cache L2 par rapport à Penryn, en partie pour améliorer sa latence, ce qui a permis d'améliorer les performances.

Il convient également de noter que le taux d'accès au cache est très élevé pour la plupart des charges de travail: bien supérieur à 90% dans presque tous les cas pratiques et assez rarement même au-dessus de 99%. Ainsi, l’avantage d’inclure des mémoires plus volumineuses à la mémoire est intrinsèquement limité à la réduction de l’impact de ces quelques pour cent de ratés. Les processeurs destinés au marché des serveurs d'entreprise (tels que POWER) disposent généralement d'énormes caches et peuvent inclure rentablement l'eDRAM car il est utile de prendre en charge les grands ensembles de travail de nombreuses charges de travail d'entreprise. Haswell a prévu de prendre en charge le GPU, car les textures sont volumineuses et ne peuvent pas être hébergées en cache. Ce sont les cas d'utilisation de l'eDRAM aujourd'hui, pas les charges de travail de bureau ou HPC classiques, qui sont très bien servies par les hiérarchies de cache typiques.

Pour résoudre certains problèmes soulevés dans les commentaires:

Ces caches eDRAM ne peuvent pas être utilisés à la place de la mémoire principale car ils sont conçus comme caches de victime L4. Cela signifie qu'elles sont volatiles et que leur contenu est adressable de manière à ce que les données qui y sont stockées ne soient pas traitées comme résidant dans un emplacement spécifique et puissent être supprimées à tout moment. Il est difficile de concilier ces propriétés avec l’obligation pour la RAM d’être directement mappée et persistante, mais leur modification rendrait les caches inutiles pour l’objectif recherché. Il est bien sûr possible d’incorporer des mémoires de conception plus conventionnelle, comme dans les microcontrôleurs, mais cela n’est pas justifiable pour les systèmes à mémoire importante, car une faible latence n’est pas aussi bénéfique dans la mémoire principale que dans une mémoire cache. ou ajouter un cache est une proposition plus intéressante.

En ce qui concerne la possibilité de caches très volumineux avec une capacité de l'ordre de gigaoctets, un cache doit uniquement être au plus de la taille de l'ensemble de travail de l'application. Les applications HPC peuvent traiter des jeux de données en téraoctets, mais ils ont une bonne localisation temporelle et spatiale et leurs jeux de travail ne sont généralement pas très grands. Les applications avec de grands ensembles de travail sont, par exemple, des bases de données et des logiciels ERP, mais le marché des processeurs optimisés pour ce type de charge de travail est limité. À moins que le logiciel n'en ait vraiment besoin, l'ajout de plus de cache permet d'obtenir des rendements en diminution très rapide. Récemment, nous avons vu des processeurs obtenir des instructions de prélecture, de sorte que les caches peuvent être utilisés plus efficacement: vous pouvez utiliser ces instructions pour éviter les erreurs causées par l'imprévisibilité des modèles d'accès en mémoire, plutôt que par la taille absolue de l'ensemble de travail,

* L'amélioration de la latence n'était pas uniquement due à la taille physique réduite du cache, mais également à la réduction de l'associativité. Des changements importants ont été apportés à l’ensemble de la hiérarchie du cache dans Nehalem pour plusieurs raisons différentes, qui ne sont pas toutes axées sur l’amélioration des performances. Donc, si cela suffit à titre d'exemple, ce n'est pas un compte rendu complet.

Oleksandr R.
la source
1
Bien expliqué ,, @Oleksandr R. En bref, cela ressemble à une sorte de "déséquilibre d'impédance" entre la CPU et la DRAM, ce qui rend difficile le couplage des deux.
Petit hérisson
3
Et bien entendu, la mémoire SRAM est toujours assez énorme - même les caches minuscules (comparés à la RAM) occupent environ la moitié de la surface de la matrice sur les CPU modernes (à l'exception des CPU avec GPU intégrés: D).
Luaan
2
Je me demande s'il existe un moyen de fonctionner sans mémoire principale. 128 Mo devraient suffire pour exécuter une distribution Linux allégée (ou une ancienne version de Windows).
user253751
Cela s'appelle 'GPU-on-die', pas 'GPU-sur-package'.
Thomas
4
@cybermonkey: Les instructions sont en fait extraites du cache L1, pas de la mémoire principale. Il serait horrible de les récupérer dans la mémoire principale - environ 60 ns de temps de cycle, ce qui limite votre processeur à 16 Mhz pour une conception monocœur.
MSalters
17

La principale raison pour laquelle une mémoire plus importante (Go de mémoire DRAM) n'est pas incluse dans la puce du processeur lui-même est principalement liée au coût. L'espace mémoire des processeurs est nettement plus coûteux en raison du processus de fabrication nécessaire pour rendre les fonctionnalités très petites. Il n’est peut-être pas possible non plus de fabriquer les deux sur la même matrice, bien que je n’en connaisse pas suffisamment les détails pour donner une réponse définitive ici.

Évaluons la faisabilité de placer une grande quantité de DRAM directement sur la puce du processeur.

22

Cependant, l'idée de coller la mémoire plus près du processeur n'est pas une cause complètement perdue. C'est probablement là que la mémoire se déplacera dans le futur car le fait est que la vitesse de la lumière est finie et qu'il est seulement possible de communiquer si vite sur une certaine distance.

Techniques réalistes pour rapprocher la mémoire de la CPU (notez que celles-ci ont aussi des compromis avec les techniques traditionnelles):

  1. Empilez-les sur le processeur lui-même. Cela est déjà fait sur le Raspberry Pi et fait partie de la norme de mémoire Wide I / O. La mémoire est toujours un dé séparé fabriqué sur un processus séparé. Cependant, le problème est que toute chaleur dissipée dans la CPU doit traverser la mémoire avant d’atteindre un dissipateur thermique. Cela signifie que cela ne fonctionnera pas pour les processeurs haute puissance, et explique pourquoi les applications principales de cette technologie sont les processeurs mobiles / autres applications intégrées dans lesquelles votre processeur ne consomme pas plusieurs dizaines ou centaines de watts.

  2. Collez-les très proches sur un substrat moins coûteux. C’est ainsi que HBM est conçu pour fonctionner, avec un très grand bus fabriqué sur une puce "interposeur" à moindre coût, et la direction que prend la mémoire du processeur graphique haut de gamme car la bande passante est considérablement plus élevée. Les puces de mémoire et l'interposeur sont tous encore fabriqués sur des matrices différentes du processeur réel.

helloworld922
la source
5
Je m'attendrais à ce que les rendements diminuent lorsque vous essayez de stocker plus de milliards de transistors sur un seul gros dé - la probabilité d'une panne augmente avec chaque dispositif supplémentaire. Si vous divisez le système en plusieurs composants plus petits, le risque d'apparition d'une défaillance sur un composant en particulier diminue considérablement et le coût de suppression de ce composant défectueux est également réduit. J'imagine qu'un très gros dé serait également beaucoup plus difficile à fabriquer, toutes choses étant égales par ailleurs.
John U
4
2
@JohnU - mettre un grand nombre de modules répétés sur une puce présente l’avantage de pouvoir désactiver le module dans lequel il se produit et rendre la puce conforme à une norme moins coûteuse (cela se produit souvent avec la DRAM, remontant jusqu'aux années 80, lorsque beaucoup de machines équipées de modules de 32 Ko utilisaient en fait des puces de 64 Ko avec une section défectueuse désactivée). Cela peut en fait signifier que le rendement augmente lorsque vous intégrez la DRAM aux processeurs ...
Jules
7

Il y a plusieurs raisons pour lesquelles l'ajout de grandes quantités de DRAM à un processeur peut être irréalisable.

  1. Le processus et la fabrication ne peuvent pas être configurés pour la DRAM. La DRAM nécessite des éléments de circuit spéciaux nécessitant des étapes de fabrication supplémentaires. Cela augmente le coût de fabrication.

  2. Toute cette mémoire doit être testée. Les tests de mémoire augmentent votre temps de test. C'est une autre augmentation de coût.

  3. L'agrandissement de la matrice est en soi une augmentation de coût, car cela signifie moins de matrice par tranche. Cela affecte également le rendement - un défaut supprime une plus grande fraction de votre wafer. Pour un exemple extrême, examinez le coût des capteurs d'image plein cadre (35 mm) dans les appareils photo.

  4. Le développement d'un processus capable de gérer des types de mémoire particuliers prend plus de temps, d'argent et de travail, et présente un risque d'échec plus élevé. Tout problème avec la DRAM retarderait la publication de la CPU. Les processeurs de bureau étant à la pointe de la fabrication de semi-conducteurs, un retard peut être un désavantage concurrentiel considérable. (Voir: AMD vs Intel ces dernières années.)

  5. La DRAM nécessite une détection analogique pour les lectures, ainsi qu'un rafraîchissement périodique. Je ne suis pas un expert en DRAM, mais je doute qu'il soit un jour aussi rapide qu'un processeur haut de gamme, qu'il s'agisse d'un processeur externe ou d'un processeur intégré. Vous serez donc probablement toujours bloqué par la mise en cache SRAM.

  6. Même si vous pouvez surmonter les problèmes ci-dessus et accumuler quelques gigaoctets de DRAM sur une puce de processeur, cela ne suffira pas pour faire fonctionner un ordinateur de bureau, un ordinateur portable ou un serveur, vous aurez donc toujours besoin d'une mémoire hors puce. .

Adam Haun
la source
1
La plupart des caches sont implémentés avec ECC, et certains processeurs Intel récents intègrent la puce à puce et la redondance des blocs pour la mise en cache. Cela réduit les exigences de test et améliore considérablement les rendements pour les plus grosses matrices. En revanche, avec un capteur d'image, il n'y a aucune possibilité de correction d'erreur car les informations ne sont pas connues a priori , et nous ne pouvons pas non plus décider, lorsqu'un bloc de pixels ne fonctionne pas correctement, de simplement l'ignorer et d'en utiliser un de rechange. Sa place.
Oleksandr R.
Il est vrai qu’il est plus facile d’obtenir un rendement plus élevé avec des souvenirs. Comme je l'ai dit, c'était un exemple extrême.
Adam Haun
3

En plus des autres réponses, on peut en dire plus sur un tel système. Déplacer la mémoire vers la matrice principale inclurait une foule d'autres problèmes d'ingénierie. Il vous faudrait rediriger les bus, créer un contrôleur DMA dans le processeur principal, restructurer le bus IRQ et déterminer comment éliminer toute la chaleur supplémentaire générée dans une zone concentrée. Cela signifie que le fabricant de la carte mère devrait également être impliqué pour supporter un changement aussi important. Alors que les systèmes bas de gamme bénéficieraient probablement d'un tel changement, les systèmes haut de gamme nécessiteraient probablement un refroidissement substantiel. Je doute qu'un ordinateur portable moyen puisse gérer une telle puce, par exemple.

Une telle puce serait beaucoup plus chère, même si le prix de la carte mère principale baisserait (bien que probablement pas sensiblement). Si vous avez vu les packages d'un contrôleur DMA, ainsi que les packages de RAM, vous auriez bien du mal à croire que toute cette logique puisse être comprimée dans une seule matrice qui ne serait pas considérablement plus grande. Rappelez-vous également que les processeurs sont découpés dans de grandes plaquettes d'une taille donnée. Cela signifie que le fabricant aurait également beaucoup moins de processeurs par tranche, ce qui augmenterait également le coût global.

Gardez à l’esprit que nous ne parlons pas d’utilisation de puissance en watts sur l’ensemble du système, ce qui diminuerait, mais plutôt qu’il y aurait encore plus de concentration de puissance en watts (et donc de chaleur) dans une seule zone, ce qui augmenterait probablement la probabilité de échec.

Enfin, il existe un autre inconvénient, à savoir la possibilité de fournir des systèmes personnalisés. À l'heure actuelle, les fabricants peuvent choisir de mettre en place des systèmes avec des processeurs identiques mais des quantités de mémoire différentes, ou des processeurs différents, mais la même quantité de mémoire, en fonction des préférences du client. Pour offrir la multitude de configurations différentes, ils devraient créer différentes matrices, chacune sur une chaîne de montage différente.

AMD utilise activement une technologie qui fonctionne réellement de la sorte: chaque partie du processeur est une unité logique discrète qui peut être remplacée par différentes configurations. À l'avenir, si une telle conception est viable, nous pourrions très bien voir les processeurs qui offrent de la mémoire intégrée à la puce comme une mise à niveau de module coûteuse, échangeant peut-être une partie de la puissance de traitement ou d'autres ajustements. Par exemple, un jour, nous aurons peut-être le choix entre 256 cœurs sans mémoire intégrée ou 128 cœurs avec mémoire intégrée, voire d'autres configurations telles qu'une partie GPU, une partie processeur, une partie RAM.

Phyrfox
la source
Le principal problème de cette réponse est que les conceptions SoC pour smartphones contiennent effectivement de la RAM. Celles-ci ne sont pas beaucoup plus chères, elles sont en fait moins chères.
MSalters
@MSalters Sauf qu'ils ne sont pas intégrés dans le même dé. Les mémoires sont séparées, après avoir été testées et confirmées, et sont simplement emballées avec la puce du microprocesseur.
Brosse à dents le
2

Presque tout ce qui précède + un autre problème supplémentaire: la chaleur.

Les cellules DRAM sont essentiellement des condensateurs qui fuient. Et le diélectrique ici est la couche de SiO2 elle-même. À mesure que la température augmente, les courants de fuite augmentent proportionnellement. Celles-ci déchargent les cellules DRAM beaucoup plus rapidement, ce qui nécessiterait des vitesses de rafraîchissement beaucoup plus rapides, ce qui augmenterait la complexité, le courant requis et, bien sûr, ajouterait un peu plus de chaleur.

Vasu
la source
2

Outre les réponses déjà données, il existe un aspect supplémentaire: les déchets dus à des défauts de production:

Supposons que 1/100 de tous les processeurs d'un certain modèle produit soient défectueux (en réalité, il est moins, bien sûr; 1/100 est plus facile à calculer) et 1/100 de toutes les mémoires RAM produites sont défectueux.

Si les deux composants sont combinés sur une seule puce, 1/100 de toutes les puces auront un processeur défectueux et 1/100 de toutes les puces auront une RAM défectueuse.

Cela voudrait dire:

  • 1 puce sur 10000 aurait à la fois de la RAM et du CPU défectueux
  • 99 puces auraient une RAM défectueuse
  • 99 puces auraient un processeur défectueux
  • Au total, 199 des 10 000 pièces produites seraient des déchets

Produisant des puces séparées le calcul est le suivant:

  • 50 des 5000 RAM sont défectueuses
  • 50 des 5000 CPU sont défectueux
  • 100 des 10 000 pièces produites seraient des déchets

Notez qu'un Go de RAM est généralement constitué d'une banque composée de huit puces. Vous ne devez donc pas combiner deux mais neuf composants en une seule si vous souhaitez placer de la RAM et du CPU sur la même puce. Cela donnerait environ 865 pièces défectueuses sur 10 000 produites dans l'exemple simple ci-dessus.

Les CPU "IBM Cell" avaient exactement ce problème. La console "Playstation" utilisait des puces partiellement défectueuses; le logiciel Playstation a été écrit de manière à ce que les cœurs et les SRAM défectueux ne soient pas utilisés.

Martin Rosenau
la source
1
AMD proposait des processeurs à 3 cœurs pendant un certain temps pour la même raison. Je pense que dans la pratique, les pièces sont généralement testées au niveau de la matrice avant d’être emballées. Votre problème s’applique donc davantage aux combinaisons monolithiques de processeur et de mémoire.
Oleksandr R.
Darpa a décerné un prix pour une efficacité énergétique multipliée par 50 en surmontant le mur de mémoire à l'aide de la technologie 3dSoC, qui est un terrain fantastique par rapport aux ingénieurs d'Intel et de Qualcom, sauf que darpa est darpa. monolithic3d.com/blog/… Les SoC (système sur puce) conviennent mieux aux processeurs parallèles, ce qui signifie qu'il y a 1000ds de groupes au lieu de 2/16.
com.prehensible
1

Il existe en réalité deux types de RAM. Ils sont RAM statique et RAM dynamique. La mémoire statique est très rapide, mais son coût est plus élevé. Pendant ce temps, la RAM dynamique est lente comparée à la RAM statique, mais son coût est bon marché comparé à la RAM statique.

La mémoire cache tombe dans la RAM statique. vous pouvez voir qu'ils viennent en Ko ou en MB. Ils sont rapides. Mais coût élevé.

Mohammed Fawzan
la source
Pas exactement, oui, ils sont rapides, mais c'est principalement dû au fait que la distance que doivent parcourir les données est bien inférieure à celle d'une mémoire DRAM.
AStopher
3
En fait, la cellule SRAM est plus rapide car plus simple. C'est un circuit numérique bi-stable. Si vous le définissez accidentellement à la valeur analogique 0.8, il se corrigera en passant à la position stable 1.0. La DRAM n’a pas de tels états stables. Il ne s'éloigne pas des états intermédiaires. Pire, il se déplace vers de tels états, raison pour laquelle vous avez besoin de circuits de "rafraîchissement" correctifs supplémentaires.
MSalters
@MSalters: La cellule SRAM n'est PAS plus simple qu'une cellule DRAM. Vous avez raison de dire qu’il est beaucoup plus stable, ce qui simplifie son utilisation (en termes de prise en charge des circuits et de chronogrammes). Mais les cellules SRAM ont environ 6 fois plus de circuits par bit que les mémoires DRAM.
Ben Voigt
1
@ BenVoigt: Dans le compte de transistors, oui - 6T vs 1T. Mais la DRAM a un condensateur qui est un composant assez étrange. SRAM est juste des transistors câblés ensemble.
MSalters
Le condensateur dans la DRAM s’avère également être implémenté comme un transistor
Ben Voigt le
1

En plus des autres raisons mentionnées, de nombreux systèmes ont plusieurs cœurs de processeur. Parfois, lorsque les informations stockées dans la DRAM principale sont cohérentes avec toutes les copies mises en cache, tous les processeurs ne les disposant pas ont également le même accès. Certaines architectures sont conçues sur l’hypothèse que chaque cœur de processeur dispose d’un espace d’adresse, et même si un processeur est capable d’accéder à une mémoire appartenant à d’autres processeurs, de tels accès seront beaucoup plus lents que ceux de sa propre mémoire. , mais x86 n’est généralement pas implémenté de cette manière.

Si un système est conçu autour de l'hypothèse selon laquelle les cœurs de processeur possèdent certaines plages d'adresses et que le code tente de minimiser l'utilisation des plages d'adresses d'autres processeurs, il serait alors logique d'inclure dans chaque code de processeur une quantité généreuse de mémoire sur puce. Une telle conception pourrait réduire le temps nécessaire à un cœur de processeur pour accéder à sa propre mémoire, mais augmenterait probablement le temps nécessaire pour accéder à la mémoire d'un autre processeur. Cependant, à moins que le système ne soit conçu autour d'une telle hypothèse, il est probable que les données soient distribuées entre les processeurs sans se soucier de qui en a besoin quand. Même si le temps supplémentaire nécessaire pour accéder aux données depuis une autre CPU (par rapport à un système de mémoire externe) était deux fois moins rapide que le temps gagné sur un accès interne,

Si l’on concevait un système de toutes pièces pour s’adapter aux technologies actuelles, une architecture de mémoire non uniforme permettrait plus d’exploitation que celle qui doit permettre à tous les processeurs d’accéder efficacement à toute la mémoire. Cependant, compte tenu des conceptions logicielles actuelles, disposer d'un système de mémoire externe partagé entre les processeurs est probablement plus efficace que d'essayer de stocker des données en bloc dans les processeurs eux-mêmes.

supercat
la source
2
Des architectures de mémoire non uniformes sont déjà utilisées (et même communes) aujourd'hui. Pour une CPU avec des contrôleurs de mémoire intégrés utilisés dans un système à plusieurs processeurs, les données stockées dans la mémoire physique d'un autre processeur sont plus distantes et accessibles avec une latence supérieure à celle de sa RAM attachée localement. En pratique, dans ces systèmes, les processeurs sont équipés de niveaux supplémentaires de cache et le trafic de cohérence est en partie géré par la matrice de connexion. POWER7 et POWER8 sont de ce type.
Oleksandr R.
1

Bien que toutes les réponses précédentes indiquent correctement pourquoi il est si difficile d'ajouter plus de mémoire au processeur, il est également vrai qu'il y a beaucoup de mémoire dans les processeurs modernes.

Dans les opérations en temps réel, lorsque les retards déterministes sont importants, il n’est pas rare d’utiliser le cache sur puce en tant que mémoire adressable, pour le code et / ou les données. L'avantage est un temps d'accès rapide et constant et l'inconvénient est que la mémoire sur puce est assez limitée.

Apparaitre
la source
1

Les problèmes que vous décrivez dans votre question initiale ne pourraient être évités que si TOUTE la mémoire de la machine était incluse dans la CPU. Toute mémoire supplémentaire ajoutée à la machine via les logements de la carte principale serait soumise aux mêmes délais que ceux décrits ci-dessus et nécessiterait des dispositifs de marshaling et de contrôle logique entre la CPU / RAM et la RAM intégrée.

La RAM est bon marché et est généralement étendue par les utilisateurs un ou même deux fois entre les mises à niveau de leurs processeurs.

N'oubliez pas non plus qu'un appel "Fetch" typique, même si la RAM fonctionne à la vitesse d'horloge de la CPU, entraîne un nombre de ticks inactifs sur la CPU.

L'organisation traditionnelle de la mémoire sur une machine est une pyramide avec les registres de la CPU en haut, puis en cache, puis en RAM, puis en disque. En règle générale, les machines performantes combinent une vitesse d'horloge décente, une quantité raisonnable de mémoire cache, une bonne quantité de mémoire vive et un disque dur à haute vitesse. Ces dernières années, les performances des disques offrent généralement la meilleure performance possible pour la plupart des disques PC et les disques à régime élevé, les disques avec cache et les disques SSD améliorant de manière significative les performances.

Oui, une machine avec toute sa mémoire vive sur puce fonctionnerait bien dans les applications modernes, mais une machine avec une partie de sa mémoire vive sur puce exécutant un système d'exploitation standard ne fournirait probablement pas l'augmentation de performances que vous pourriez penser.

Steve Matthews
la source