Qu'est-ce qu'un bus de cache?
Un bus de cache est un bus haute vitesse dédié utilisé par un processeur informatique pour communiquer avec sa mémoire cache. Également appelé bus arrière, il fonctionne à une vitesse bien supérieure à celle du bus système. Un bus de cache connecte directement un cœur de processeur à son cache; il fonctionne indépendamment du bus du processeur, transférant les données sur un chemin plus large et moins restreint. Un bus de cache est utilisé dans la plupart des processeurs modernes pour réduire le temps requis pour lire ou modifier les données fréquemment consultées.
Dans les années 1980, la mémoire cache était généralement située sur la carte mère, pas sur la puce du processeur. Le cache était accessible via le bus du processeur, tout comme la mémoire système normale. La quantité de mémoire cache était souvent très petite et proposée uniquement comme une amélioration facultative des performances du système.
Alors que la vitesse et l'efficacité du processeur augmentaient au début des années 90, le bus de traitement devenait un goulot d'étranglement; La mémoire cache rapide nécessitait un moyen d'interagir avec le processeur sans attendre que la mémoire système et les opérations d'entrée / sortie soient beaucoup plus lentes. Au milieu des années 90, la plupart des nouveaux processeurs ont adopté une architecture à double bus pour résoudre ce problème. Un bus de cache haute vitesse a été créé pour accéder directement au cache. Ce bus ne sert à rien d'autre. Tous les autres transferts de données utilisent le bus de processeur le plus lent, également appelé bus frontal. Le processeur peut utiliser les deux bus simultanément, ce qui améliore considérablement les performances.
Les premières conceptions à double bus utilisaient fréquemment la mémoire cache située sur la carte mère; de grandes quantités de cache sur puce n'étaient pas encore rentables en raison de problèmes de rendement de production. Les conceptions ultérieures incorporaient souvent un mélange de cache interne et externe au fur et à mesure de l'amélioration du rendement. Les processeurs modernes utilisent généralement une grande quantité de cache interne; beaucoup incluent 8 mégaoctets (Mo) ou plus, par rapport aux conceptions plus anciennes qui ne comptaient souvent que 8 kilo-octets (Ko). Dans les conceptions modernes où la totalité du cache est sur puce, le bus de cache peut être assez court avec un chemin de données très large, 512 bits dans certains processeurs. Le bus fonctionne généralement à la même vitesse que le processeur lui-même. Le résultat final est que le contenu du cache peut être lu ou modifié très rapidement.
Chaque cœur d'un processeur multicœur peut avoir son propre cache ou partager un grand cache commun. Dans les deux cas, un bus de cache connecte chaque cœur à la mémoire cache appropriée. Lorsque chaque cœur de processeur dispose de son propre cache distinct, des problèmes de cohérence peuvent survenir. Par exemple, lorsqu'un noyau met à jour des données dans son cache, d'autres copies de ces données dans d'autres caches deviennent obsolètes ou "obsolètes". L'un des moyens de résoudre ce type de problème consiste à utiliser un type spécial de bus de cache, parfois appelé bus inter-cœur. Ce bus relie tous les caches afin que chacun puisse surveiller ce que font les autres. Si l'un met à jour une donnée partagée, les autres peuvent immédiatement refléter le nouveau contenu.