Wat is een cachebus?
Een cachebus is een speciale hogesnelheidsbus die een computerprocessor gebruikt om te communiceren met zijn cachegeheugen. Ook bekend als een bus aan de achterkant, werkt het op een veel hogere snelheid dan de systeembus. Een cachebus verbindt een processorkern rechtstreeks met zijn cache; het werkt onafhankelijk van de processorbus en draagt gegevens over een breder, minder beperkt pad over. Een cachebus wordt in de meeste moderne processors gebruikt om de tijd te verkorten die nodig is om veelgebruikte gegevens te lezen of te wijzigen.
In de jaren 80 bevond het cachegeheugen zich meestal op het moederbord, niet op de processorchip zelf. De cache was toegankelijk via de processorbus, net als het normale systeemgeheugen. De hoeveelheid cachegeheugen was vaak vrij klein en werd alleen aangeboden als optionele verbetering van de systeemprestaties.
Toen de processorsnelheid en efficiëntie in de vroege jaren negentig toenamen, werd de processorbus een bottleneck; snel cachegeheugen had een manier nodig om te communiceren met de processor zonder te wachten tot veel langzamer systeemgeheugen en invoer / uitvoer-bewerkingen voltooid waren. Midden jaren negentig hebben de meeste nieuwe processors een dual-bus-architectuur gebruikt om dit probleem op te lossen. Een snelle cachebus is gemaakt om rechtstreeks toegang tot de cache te krijgen. Deze bus wordt voor niets anders gebruikt - alle andere gegevensoverdrachten maken gebruik van de tragere processorbus, ook bekend als de front-side bus. De processor kan beide bussen tegelijkertijd gebruiken, wat resulteert in aanzienlijk betere prestaties.
Vroege dual-bus ontwerpen vaak gebruikt cachegeheugen op het moederbord; grote hoeveelheden cache op de chip waren nog niet kosteneffectief vanwege problemen met de productieopbrengst. Latere ontwerpen bevatten vaak een combinatie van interne en externe cache omdat de opbrengst verbeterde. Moderne processors gebruiken meestal een grote hoeveelheid interne cache; veel bevatten 8 megabytes (MB) of meer, vergeleken met oudere ontwerpen die vaak slechts 8 kilobytes (KB) hadden. In moderne ontwerpen waarbij de hele cache on-chip is, kan de cachebus vrij kort zijn met een zeer breed gegevenspad, 512 bits in sommige processors. De bus werkt meestal op dezelfde snelheid als de processor zelf. Het eindresultaat is dat cachecontent zeer snel kan worden gelezen of gewijzigd.
Elke kern van een multi-coreprocessor kan zijn eigen cache hebben of één grote gemeenschappelijke cache delen. In beide gevallen verbindt een cachebus elke kern met het juiste cachegeheugen. Wanneer elke processorkern zijn eigen afzonderlijke cache heeft, kunnen coherentieproblemen optreden. Wanneer een kern bijvoorbeeld gegevens in de cache bijwerkt, raken andere kopieën van die gegevens in andere caches verouderd of "oud". Een manier om dit soort problemen op te lossen, is door een speciaal type cachebus te gebruiken, ook wel een inter-core bus genoemd. Deze bus verbindt alle caches met elkaar zodat iedereen kan volgen wat de anderen doen - als de ene een deel van de gedeelde gegevens bijwerkt, kunnen de anderen de nieuwe inhoud onmiddellijk weerspiegelen.