Che cos'è un bus cache?
Un bus cache è un bus ad alta velocità dedicato utilizzato da un processore per comunicare con la sua memoria cache. Conosciuto anche come bus posteriore, funziona a una velocità molto maggiore rispetto al bus di sistema. Un bus cache collega direttamente un core del processore alla sua cache; funziona indipendentemente dal bus del processore, trasferendo i dati attraverso un percorso più ampio e meno limitato. Un bus cache viene utilizzato nella maggior parte dei moderni processori per ridurre il tempo necessario per leggere o modificare i dati a cui si accede frequentemente.
Negli anni '80, la memoria cache si trovava di solito sulla scheda madre, non sul chip del processore stesso. Si accedeva alla cache tramite il bus del processore, proprio come la normale memoria di sistema. La quantità di memoria cache era spesso piuttosto ridotta e veniva offerta solo come miglioramento opzionale delle prestazioni del sistema.
Con l'aumentare della velocità e dell'efficienza del processore all'inizio degli anni '90, il bus del processore divenne un collo di bottiglia; la memoria cache veloce aveva bisogno di un modo per interagire con il processore senza attendere il completamento della memoria di sistema molto più lenta e le operazioni di input / output. A metà degli anni '90, la maggior parte dei nuovi processori ha adottato un'architettura a doppio bus per risolvere questo problema. È stato creato un bus cache ad alta velocità per accedere direttamente alla cache. Questo bus non viene utilizzato per nient'altro: tutti gli altri trasferimenti di dati utilizzano il bus del processore più lento, noto anche come bus frontale. Il processore può utilizzare entrambi i bus contemporaneamente, ottenendo prestazioni sostanzialmente migliori.
I primi progetti a doppio bus utilizzavano frequentemente memoria cache situata sulla scheda madre; grandi quantità di cache su chip non erano ancora convenienti a causa di problemi di rendimento della produzione. I progetti successivi spesso incorporavano un mix di cache interna ed esterna man mano che la resa migliorava. I processori moderni utilizzano solitamente una grande quantità di cache interna; molti includono 8 megabyte (MB) o più, rispetto ai vecchi progetti che spesso avevano solo 8 kilobyte (KB). Nei progetti moderni in cui l'intera cache è su chip, il bus della cache può essere piuttosto corto con un percorso dati molto ampio, 512 bit in alcuni processori. Il bus in genere funziona alla stessa velocità del processore stesso. Il risultato finale è che il contenuto della cache può essere letto o modificato molto rapidamente.
Ogni core di un processore multi-core può avere la propria cache o condividere una cache comune di grandi dimensioni. In entrambi i casi, un bus cache collega ciascun core alla memoria cache appropriata. Quando ogni core del processore ha una propria cache separata, possono sorgere problemi di coerenza. Ad esempio, quando un core aggiorna i dati nella sua cache, altre copie di tali dati in altre cache diventano obsolete o "obsolete". Un modo per risolvere questo tipo di problema è utilizzare un tipo speciale di bus cache, a volte chiamato bus inter-core. Questo bus collega tutte le cache in modo che ognuna possa monitorare ciò che fanno gli altri: se uno aggiorna un dato condiviso, gli altri possono immediatamente riflettere il nuovo contenuto.