Vad är en cache-buss?
En cache-buss är en dedikerad höghastighetsbuss som en datorprocessor använder för att kommunicera med sitt cacheminne. Även känd som en baksida buss, den arbetar med en mycket högre hastighet än systembussen. En cache-buss ansluter direkt en processorkärna till sin cache; den körs oberoende av processorbussen och överför data över en bredare, mindre begränsad väg. En cache-buss används i de flesta moderna processorer för att minska den tid som krävs för att läsa eller ändra ofta åtkomna data.
Under 1980-talet låg cacheminnet vanligtvis på moderkortet, inte på själva processorchipet. Cachen nås via processorbussen, precis som det vanliga systemminnet. Mängden cacheminne var ofta ganska litet och erbjöds endast som en valfri förbättring av systemprestanda.
När processorns hastighet och effektivitet ökade i början av 1990-talet blev processorbussen en flaskhals. snabbt cacheminne behövde ett sätt att interagera med processorn utan att vänta på mycket långsammare systemminne och ingångs- / utgångsoperationer. I mitten av 1990-talet antog de flesta nya processorer en dubbelbussarkitektur för att lösa detta problem. En höghastighets cache-buss skapades för att komma åt cachen direkt. Denna buss används inte för något annat - alla andra dataöverföringar använder den långsammare processorbussen, även känd som framsidobussen. Processorn kan använda båda bussarna samtidigt, vilket resulterar i väsentligt bättre prestanda.
Tidiga dubbelbussdesigner som ofta används cacheminne på moderkortet; stora mängder on-chip-cache var ännu inte kostnadseffektiva på grund av problem med produktionsutbytet. Senare design inkluderade ofta en blandning av intern och extern cache när avkastningen 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 mönster som ofta bara hade 8 kilobyte (KB). I moderna mönster där hela cachen är on-chip kan cache-bussen vara ganska kort med en mycket bred databana, 512 bitar i vissa processorer. Bussen kör normalt med samma hastighet som själva processorn. Slutresultatet är att cacheinnehållet 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 rätt cacheminne. 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 den informationen i andra cachar föråldrade eller "inaktuella". Ett sätt denna typ av problem kan lösas är att använda en speciell typ av cache-buss, ibland kallad en inter-core-buss. Den här bussen länkar alla cacharna ihop så att var och en kan övervaka vad de andra gör - om man uppdaterar en delad delad information kan de andra omedelbart återspegla det nya innehållet.