Was ist ein Cache-Bus?
Ein Cache-Bus ist ein dedizierter Hochgeschwindigkeitsbus, mit dem ein Computerprozessor mit seinem Cache-Speicher kommuniziert. Es wird auch als Backside-Bus bezeichnet und arbeitet mit einer viel höheren Geschwindigkeit als der Systembus. Ein Cache-Bus verbindet einen Prozessorkern direkt mit seinem Cache. Es läuft unabhängig vom Prozessorbus und überträgt Daten über einen breiteren, weniger eingeschränkten Pfad. Ein Cache-Bus wird in den meisten modernen Prozessoren verwendet, um die zum Lesen oder Ändern von Daten, auf die häufig zugegriffen wird, erforderliche Zeit zu verringern.
In den 1980er Jahren befand sich der Cache-Speicher normalerweise auf der Hauptplatine und nicht auf dem Prozessorchip. Auf den Cache wurde über den Prozessorbus zugegriffen, genau wie auf den regulären Systemspeicher. Der Cache-Speicher war häufig recht klein und wurde nur als optionale Systemleistungssteigerung angeboten.
Als die Prozessorgeschwindigkeit und -effizienz Anfang der neunziger Jahre zunahm, wurde der Prozessorbus zu einem Engpass. Der schnelle Cache-Speicher brauchte eine Möglichkeit, mit dem Prozessor zu interagieren, ohne auf den Abschluss des wesentlich langsameren Systemspeichers und der Eingabe- / Ausgabeoperationen zu warten. Mitte der neunziger Jahre verwendeten die meisten neuen Prozessoren eine Dual-Bus-Architektur, um dieses Problem zu lösen. Ein Hochgeschwindigkeits-Cache-Bus wurde erstellt, um direkt auf den Cache zuzugreifen. Dieser Bus wird für nichts anderes verwendet - alle anderen Datenübertragungen verwenden den langsameren Prozessorbus, der auch als Front-Side-Bus bezeichnet wird. Der Prozessor kann beide Busse gleichzeitig nutzen, was zu einer wesentlich besseren Leistung führt.
Frühe Dual-Bus-Designs verwendeten häufig Cache-Speicher auf der Hauptplatine. Große Mengen an On-Chip-Cache waren aufgrund von Problemen mit der Produktionsausbeute noch nicht wirtschaftlich. Spätere Designs enthielten häufig eine Mischung aus internem und externem Cache, da sich die Ausbeute verbesserte. Moderne Prozessoren verwenden normalerweise eine große Menge an internem Cache. Viele enthalten 8 Megabyte (MB) oder mehr im Vergleich zu älteren Designs, die oft nur 8 Kilobyte (KB) hatten. In modernen Designs, in denen sich der gesamte Cache auf dem Chip befindet, kann der Cache-Bus mit einem sehr breiten Datenpfad von 512 Bit in einigen Prozessoren recht kurz sein. Der Bus läuft normalerweise mit der gleichen Geschwindigkeit wie der Prozessor. Das Endergebnis ist, dass der Cache-Inhalt sehr schnell gelesen oder geändert werden kann.
Jeder Kern eines Mehrkernprozessors kann einen eigenen Cache haben oder sich einen großen gemeinsamen Cache teilen. In beiden Fällen verbindet ein Cache-Bus jeden Kern mit dem entsprechenden Cache-Speicher. Wenn jeder Prozessorkern über einen eigenen Cache verfügt, können Kohärenzprobleme auftreten. Wenn ein Core beispielsweise Daten in seinem Cache aktualisiert, sind andere Kopien dieser Daten in anderen Caches veraltet oder veraltet. Eine Möglichkeit, diese Art von Problem zu lösen, besteht in der Verwendung eines speziellen Cache-Bustyps, der manchmal als Inter-Core-Bus bezeichnet wird. Dieser Bus verbindet alle Caches miteinander, sodass jeder überwachen kann, was die anderen tun. Wenn einer einen Teil der gemeinsam genutzten Daten aktualisiert, können die anderen den neuen Inhalt sofort wiedergeben.