Hvad er en cache-bus?
En cache-bus er en dedikeret højhastighedsbuss, som en computerprocessor bruger til at kommunikere med sin cache-hukommelse. Også kendt som en bagside bus, den kører med en meget større hastighed end systembussen. En cache-bus forbinder en processorkerne direkte til dens cache; den kører uafhængigt af processorbussen og overfører data over en bredere, mindre begrænset sti. En cache-bus bruges i de fleste moderne processorer til at reducere den tid, der kræves for at læse eller ændre ofte tilgængelige data.
I 1980'erne var cachehukommelsen normalt placeret på bundkortet, ikke på selve processorchippen. Cachen blev åbnet via processorbussen, ligesom den almindelige systemhukommelse. Mængden af cachehukommelse var ofte ganske lille og tilbød kun som en valgfri forbedring af systemets ydeevne.
Da processorhastighed og effektivitet steg i de tidlige 1990'ere, blev processorbussen en flaskehals; hurtig cachehukommelse havde brug for en måde at interagere med processoren på uden at vente på meget langsommere systemhukommelse og input / output operationer. I midten af 1990'erne vedtog de fleste nye processorer en dual-bus-arkitektur for at løse dette problem. En hurtig-cache-bus blev oprettet for at få direkte adgang til cachen. Denne bus bruges ikke til andet - alle andre dataoverførsler bruger den langsommere processorbuss, også kendt som forsiden-bussen. Processoren kan bruge begge busser samtidigt, hvilket resulterer i væsentligt bedre ydelse.
Tidlig dual-bus designer ofte brugt cachehukommelse placeret på bundkortet; store mængder on-chip-cache var endnu ikke omkostningseffektive på grund af produktionsudbytteproblemer. Senere design inkorporerede ofte en blanding af intern og ekstern cache, når udbyttet blev forbedret. Moderne processorer bruger normalt en stor mængde intern cache; mange inkluderer 8 megabyte (MB) eller mere, sammenlignet med ældre design, der ofte kun havde 8 kilobyte (KB). I moderne design, hvor hele cachen er on-chip, kan cache-bussen være ganske kort med en meget bred dataveje, 512 bit i nogle processorer. Bussen kører typisk med samme hastighed som selve processoren. Slutresultatet er, at cacheindhold kan læses eller ændres meget hurtigt.
Hver kerne i en multi-core processor kan have sin egen cache eller dele en stor fælles cache. I begge tilfælde forbinder en cache-bus hver kerne til den passende cache-hukommelse. Når hver processorkerne har sin egen separate cache, kan der opstå sammenhængsproblemer. For eksempel, når en kerne opdaterer data i sin cache, bliver andre kopier af disse data i andre cache forældede eller "uaktuelle". En måde denne type problemer kan løses på er ved at bruge en speciel type cache-bus, nogle gange kaldet en inter-core bus. Denne bus forbinder alle cacherne sammen, så hver enkelt kan overvåge, hvad de andre gør - hvis man opdaterer et stykke delte data, kan de andre straks afspejle det nye indhold.