Interleaved Memory - Interleaved memory

Beim Rechnen ist der verschachtelte Speicher ein Entwurf, der die relativ langsame Geschwindigkeit des dynamischen Direktzugriffsspeichers (DRAM) oder des Kernspeichers kompensiert , indem die Speicheradressen gleichmäßig über die Speicherbänke verteilt werden . Auf diese Weise verwenden zusammenhängende Speicherlesevorgänge und -schreibvorgänge nacheinander jede Speicherbank, was zu einem höheren Speicherdurchsatz führt, da weniger darauf gewartet wird, dass Speicherbänke für die Operationen bereit sind.

Es unterscheidet sich von Mehrkanal-Speicherarchitekturen hauptsächlich dadurch, dass der verschachtelte Speicher nicht mehr Kanäle zwischen dem Hauptspeicher und dem Speichercontroller hinzufügt . Jedoch ist Kanalverschachtelung auch möglich, beispielsweise bei Freescale i.MX 6 - Prozessoren, die zwischen zwei Kanälen durchgeführt wird Verschachtelung ermöglichen.

Überblick

Bei verschachteltem Speicher werden der Speicherbank nacheinander Speicheradressen zugewiesen. Wenn beispielsweise in einem verschachtelten System mit zwei Speicherbänken (unter der Annahme eines wortadressierbaren Speichers) die logische Adresse 32 zur Bank 0 gehört, gehört die logische Adresse 33 zur Bank 1, die logische Adresse 34 zur Bank 0 und so weiter . Ein verschachtelter Speicher wird als n-fach verschachtelt bezeichnet, wenn n Bänke vorhanden sind und sich der Speicherort i in der Bank i mod n befindet .

Beispiel für eine Speicherverschachtelung mit 4 Bänken. Rote Banken sind erfrischend und können nicht verwendet werden.

Interleaved Memory führt zu zusammenhängenden Lesevorgängen (die sowohl bei Multimedia- als auch bei der Ausführung von Programmen üblich sind) und zu zusammenhängenden Schreibvorgängen (die häufig beim Füllen von Speicher- oder Kommunikationspuffern verwendet werden), wobei tatsächlich jede Speicherbank nacheinander verwendet wird, anstatt dieselbe wiederholt zu verwenden. Dies führt zu einem deutlich höheren Speicherdurchsatz, da jede Bank eine minimale Wartezeit zwischen Lesen und Schreiben hat.

Interleaved DRAM

Der Hauptspeicher ( Direktzugriffsspeicher , RAM) besteht normalerweise aus einer Sammlung von DRAM- Speicherchips, wobei eine Anzahl von Chips zu einer Speicherbank zusammengefasst werden kann. Mit einem Speichercontroller, der das Interleaving unterstützt, ist es dann möglich, diese Speicherbänke so auszulegen, dass die Speicherbänke verschachtelt werden.

Daten im DRAM werden in Seiteneinheiten gespeichert. Jede DRAM-Bank verfügt über einen Zeilenpuffer, der als Cache für den Zugriff auf eine beliebige Seite in der Bank dient. Bevor eine Seite in der DRAM-Bank gelesen wird, wird sie zuerst in den Zeilenpuffer geladen . Wenn die Seite sofort aus dem Zeilenpuffer (oder einem Zeilenpuffer-Treffer) gelesen wird, hat sie die kürzeste Speicherzugriffslatenz in einem Speicherzyklus. Wenn es sich um einen Zeilenpufferfehler handelt, der auch als Zeilenpufferkonflikt bezeichnet wird, ist er langsamer, da die neue Seite vor dem Lesen in den Zeilenpuffer geladen werden muss. Zeilenpufferfehler treten auf, wenn Zugriffsanforderungen auf verschiedenen Speicherseiten in derselben Bank bearbeitet werden. Ein Zeilenpufferkonflikt führt zu einer erheblichen Verzögerung für einen Speicherzugriff. Im Gegensatz dazu können Speicherzugriffe auf verschiedene Bänke parallel zu einem hohen Durchsatz erfolgen.

In herkömmlichen (flachen) Layouts können Speicherbänken ein zusammenhängender Block von Speicheradressen zugewiesen werden, was für den Speichercontroller sehr einfach ist und in Szenarien mit vollständig wahlfreiem Zugriff im Vergleich zu Leistungsniveaus, die durch Interleaving erreicht werden, die gleiche Leistung bietet. In der Realität sind Speicherlesevorgänge jedoch aufgrund der Referenzlokalität selten zufällig , und die Optimierung für den Zugriff nahe beieinander führt zu einer weitaus besseren Leistung in verschachtelten Layouts.

Die Art und Weise, wie Speicher adressiert wird, hat keinen Einfluss auf die Zugriffszeit für bereits zwischengespeicherte Speicherorte und wirkt sich nur auf Speicherorte aus, die aus dem DRAM abgerufen werden müssen.

Geschichte

Frühe Forschungen zu verschachteltem Speicher wurden bei IBM in den 60er und 70er Jahren in Bezug auf den IBM 7030 Stretch- Computer durchgeführt. Die Entwicklung wurde jedoch über Jahrzehnte fortgesetzt, um Design, Flexibilität und Leistung zu verbessern und moderne Implementierungen zu erstellen.

Siehe auch

Verweise

Externe Links