Vad är en cachebuss?

En cachebuss är en dedikerad höghastighetsbuss som en datorprocessor använder för att kommunicera med sitt cacheminne. Även känd som en backside-buss, fungerar den med mycket högre hastighet än systembussen. En cachebuss ansluter direkt en processorkärna till dess cache; den körs oberoende av processorbussen och överför data över en bredare, mindre begränsad väg. En cachebuss används i de flesta moderna processorer för att minska den tid som krävs för att läsa eller modifiera ofta åtkomliga data.

På 1980-talet var cacheminnet vanligtvis placerat på moderkortet, inte på själva processorkretsen. Cachen nåddes över processorbussen, precis som det vanliga systemminnet. Mängden cacheminne var ofta ganska liten och erbjuds endast som en valfri systemprestandaförbättring.

När processorhastigheten och effektiviteten ökade i början av 1990-talet blev processorbussen en flaskhals; snabbt cache-minne behövde ett sätt att interagera med processorn utan att vänta på att mycket långsammare systemminne och inmatnings-/utgångsoperationer skulle slutföras. I mitten av 1990-talet antog de flesta nya processorer en dubbelbussarkitektur för att lösa detta problem. En höghastighetscachebuss skapades för att komma åt cachen direkt. Den här bussen används inte för något annat – alla andra dataöverföringar använder den långsammare processorbussen, även känd som frontside-bussen. Processorn kan använda båda bussarna samtidigt, vilket resulterar i avsevärt bättre prestanda.

Tidiga konstruktioner med dubbla bussar använde ofta cacheminne på moderkortet; stora mängder on-chip cache var ännu inte kostnadseffektiva på grund av problem med produktionsutbytet. Senare konstruktioner inkluderade ofta en blandning av intern och extern cache när utbytet förbättrades. Moderna processorer använder vanligtvis en stor mängd intern cache; många inkluderar 8 megabyte (MB) eller mer, jämfört med äldre design som ofta bara hade 8 kilobyte (KB). I modern design där hela cachen är on-chip kan cachebussen vara ganska kort med en mycket bred dataväg, 512 bitar i vissa processorer. Bussen går vanligtvis med samma hastighet som själva processorn. Slutresultatet är att cacheinnehåll kan läsas eller ändras mycket snabbt.

Varje kärna i en flerkärnig processor kan ha sin egen cache eller dela en stor gemensam cache. I båda fallen ansluter en cache-buss varje kärna till det lämpliga cacheminnet. När varje processorkärna har sin egen separata cache kan koherensproblem uppstå. Till exempel, när en kärna uppdaterar data i sin cache, blir andra kopior av dessa data i andra cacher inaktuella eller ”inaktuella”. Ett sätt som den här typen av problem kan lösas är genom att använda en speciell typ av cachebuss, ibland kallad inter-core-buss. Den här bussen länkar samman alla cacher så att var och en kan övervaka vad de andra gör – om en uppdaterar en bit delad data kan de andra omedelbart återspegla det nya innehållet.