L' Intel i486 possède 8 Ko de cache L1. L' Intel Nehalem dispose d'un cache d'instructions L1 de 32 Ko et d'un cache de données L1 de 32 Ko par cœur.
La quantité de cache L1 n'a pas augmenté à peu près à la vitesse à laquelle le taux d'horloge a augmenté.
Pourquoi pas?
cpu
architecture
cpu-cache
progress
onze81
la source
la source
Réponses:
30K de texte Wikipédia ne sont pas aussi utiles qu'une explication de la raison pour laquelle un cache trop volumineux est moins optimal. Lorsque le cache devient trop volumineux, la latence pour trouver un élément dans le cache (la factorisation dans le cache manque) commence à approcher la latence de recherche de l'élément dans la mémoire principale. Je ne sais pas dans quelles proportions les concepteurs de CPU visent, mais je pense que c'est quelque chose d'analogue à la directive 80-20: vous aimeriez trouver vos données les plus courantes dans le cache 80% du temps, et les 20 autres % du temps, vous devrez aller dans la mémoire principale pour le trouver. (ou quelles que soient les proportions prévues par les concepteurs de CPU.)
EDIT: Je suis sûr que ce n'est pas près de 80% / 20%, alors remplacez X et 1-X. :)
la source
Un facteur est que les récupérations L1 commencent avant que les traductions TLB ne soient terminées afin de diminuer la latence. Avec un cache suffisamment petit et suffisamment élevé, les bits d'index du cache seront les mêmes entre les adresses virtuelles et physiques. Cela diminue probablement le coût de maintien de la cohérence de la mémoire avec un cache virtuellement indexé et balisé physiquement.
la source
La taille du cache est influencée par de nombreux facteurs:
Vitesse des signaux électriques (devrait être sinon la vitesse de la lumière, quelque chose du même ordre de grandeur):
Coût économique (les circuits à différents niveaux de cache peuvent être différents et certaines tailles de cache peuvent ne pas être valables)
Si la taille du cache L1 n'a pas changé après 64 Ko, c'est parce que cela ne valait plus. Notez également qu'il existe désormais une plus grande "culture" à propos du cache et que de nombreux programmeurs écrivent du code "compatible avec le cache" et / ou utilisent des instructions prefetech pour réduire la latence.
J'ai essayé une fois de créer un programme simple qui accédait à des emplacements aléatoires dans un tableau (de plusieurs mégaoctets): ce programme a presque gelé l'ordinateur parce que pour chaque lecture aléatoire, une page entière a été déplacée de la RAM vers le cache et puisque cela a été fait très souvent aussi simple que cela programme drainait toute la bande passante, laissant très peu de ressources pour le système d'exploitation.
la source
Je pense que cela peut se résumer simplement en déclarant que plus le cache est grand, plus l'accès sera lent. Ainsi, un cache plus important n'aide pas du tout car un cache est conçu pour réduire la communication lente du bus avec la RAM.
Étant donné que la vitesse du processeur a augmenté rapidement, le cache de même taille doit fonctionner de plus en plus vite pour pouvoir le suivre. Ainsi, les caches peuvent être nettement meilleurs (en termes de vitesse) mais pas en termes de stockage.
(Je suis un logiciel, donc j'espère que ce n'est pas vraiment mal)
la source
Depuis le cache L1 :
EDIT: Veuillez noter que cette réponse date de 2009 et que les processeurs ont énormément évolué au cours des 10 dernières années. Si vous êtes arrivé à ce poste, ne prenez pas trop au sérieux toutes nos réponses ici.
la source
En fait, la taille du cache L1 est le plus gros goulot d'étranglement pour la vitesse dans les ordinateurs modernes. Les tailles de cache L1 pathétiquement minuscules peuvent être le point idéal pour le prix, mais pas les performances. Le cache L1 est accessible à des fréquences GHz, identiques aux opérations du processeur, contrairement à l'accès RAM 400x plus lent. Il est coûteux et difficile à mettre en œuvre dans la conception bidimensionnelle actuelle, mais il est techniquement faisable, et la première entreprise qui le fera avec succès, aura des ordinateurs 100 fois plus rapides et fonctionnera toujours cool, ce qui produirait des innovations majeures dans de nombreux actuellement accessibles uniquement via des configurations ASIC / FPGA coûteuses et difficiles à programmer. Certains de ces problèmes sont liés aux problèmes de propriété intellectuelle / IP et à la cupidité des entreprises qui s'étend sur des décennies, où un cadre d'ingénieurs chétifs et inefficaces sont les seuls à avoir accès aux rouages internes, et à qui on donne principalement l'ordre de marcher pour évincer les bêtises protectionnistes obscures et rentables. Une recherche trop privatisée mène toujours à une telle stagnation technologique ou étranglement (comme nous l'avons vu dans l'aérospatiale et l'automobile par les grands fabricants et bientôt la pharma). Une réglementation open source et plus sensible des brevets et des secrets commerciaux bénéficiant aux inventeurs et au public (plutôt qu'aux chefs d'entreprise et aux actionnaires) aiderait beaucoup ici. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions. et qui reçoivent pour la plupart des ordres de marche pour évincer les bêtises protectionnistes obscures et rentables. Une recherche trop privatisée mène toujours à une telle stagnation technologique ou étranglement (comme nous l'avons vu dans l'aérospatiale et l'automobile par les grands fabricants et bientôt la pharma). Une réglementation open source et plus sensible des brevets et des secrets commerciaux bénéficiant aux inventeurs et au public (plutôt qu'aux chefs d'entreprise et aux actionnaires) aiderait beaucoup ici. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions. et qui reçoivent pour la plupart des ordres de marche pour évincer les bêtises protectionnistes obscures et rentables. Une recherche trop privatisée mène toujours à une telle stagnation technologique ou étranglement (comme nous l'avons vu dans l'aérospatiale et l'automobile par les grands fabricants et bientôt la pharma). Une réglementation open source et plus sensible des brevets et des secrets commerciaux bénéficiant aux inventeurs et au public (plutôt qu'aux chefs d'entreprise et aux actionnaires) aiderait beaucoup ici. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions. Une recherche trop privatisée mène toujours à une telle stagnation technologique ou étranglement (comme nous l'avons vu dans l'aérospatiale et l'automobile par les grands fabricants et bientôt la pharma). Une réglementation open source et plus sensible des brevets et des secrets commerciaux bénéficiant aux inventeurs et au public (plutôt qu'aux chefs d'entreprise et aux actionnaires) aiderait beaucoup ici. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions. Une recherche trop privatisée mène toujours à une telle stagnation technologique ou étranglement (comme nous l'avons vu dans l'aérospatiale et l'automobile par les grands fabricants et bientôt la pharma). Une réglementation open source et plus sensible des brevets et des secrets commerciaux bénéficiant aux inventeurs et au public (plutôt qu'aux chefs d'entreprise et aux actionnaires) aiderait beaucoup ici. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions. Cela devrait être une évidence pour le développement de créer des caches L1 beaucoup plus grandes et cela aurait dû et aurait pu être développé il y a des décennies. Nous serions beaucoup plus avancés dans les ordinateurs et dans de nombreux domaines scientifiques en les utilisant si nous en avions.
la source