Besuchen Sie uns:
Follow us on LinkedIn Follow us on Twitter Like us on Facebook Subscribe to our channel on YouTube Follow us on Tumblr
Weiterleiten:
| More

Micro-Threading

Überblick

Micro-Threading verbessert die Übertragungseffizienz und die effiziente Verwendung von DRAM-Ressourcen durch Reduzierung der Zeilen- und Spaltenzugriffsgranularität. Durch die Verwendung von unabhängigen Schaltkreisen für Zeilen und Spalten für jeden Quadranten des physikalischen Speicherbereichs ist die minimale Übertragungsgröße nur ein Viertel so groß wie bei normalen DRAM-Bausteinen. Die unabhängige Adressierbarkeit jedes Quadranten ergänzt die per Threading übertragenen Daten von modernen Grafik- und Multi-Core-Prozessoren. Mit dieser einzigartigen Architektur kann die gesamte Datenbandbreite des Bausteins aufrechterhalten und gleichzeitig der Stromverbrauch pro Transaktion verringert werden.

Typischer DRAM-Betrieb

Erhöhungen des Durchsatzes von DRAM-Schnittstellen haben vergleichbare Entwicklungen in der Core-Geschwindigkeit bereits überholt. Während die Datenübertragungsraten von DRAM-Schnittstellen über mehrere Generationen hinweg um mehr als eine Zehnerpotenz angewachsen sind, ist die Core-Frequenz von DRAM relativ konstant geblieben. Mit der Zeit ist die Core-Prefetch-Größe angewachsen, um mit der Steigerung der Schnittstellenbandbreite Schritt halten zu können. Diese höheren Prefetch-Größen erhöhen die Zugriffs-Granularität (ein Maß für die Datenmenge, auf die zugegriffen wird) und rufen mehr Daten ab, als für Grafik- und Multi-Core-Computeranwendungen erforderlich sind. Das Abrufen von überflüssigen Daten ist ineffizient und verschwendet DRAM- und Signalübertragungskapazität.

Die Zugriffsgranularität ist eine Funktion der Datenerreichbarkeit innerhalb der Speicherarchitektur. Ein typisches DRAM besteht aus 8 Speicherbänken. Innerhalb des DRAM ist jede Bank in die Halbbänke A und B unterteilt. Bei einem derartigen DRAM mit 32 Daten-Pins ist jede der A-Halbbänke und jede der B-Halbbänke jeweils mit 16 Daten-Pins verbunden. Die Bänke befinden sich in gegenüberliegenden Quadranten des physikalischen Chips und jeder Quadrant verfügt über eigene Zeilen- und Spaltenschaltkreise. Jede Halbbank arbeitet parallel und reagiert auf die Zeilen- und Spaltenbefehle.

Ein Zeilenbefehl wählt eine Einzelspalte in jeder Halbbank der adressierten Bank aus und tastet diese dabei ab und verriegelt sie. Physikalische Timing-Bedingungen erzwingen eine Verzögerung (z.B. tRR), bevor auf eine Zeile in einer anderen Bank zugegriffen werden kann. Für Spaltenbefehle gelten ähnliche Bedingungen (z.B. tCC). Das Timing-Intervall für die Zeilen ist dabei normalerweise doppelt so lang wie das Timing-Intervall für die Spalten. Daher können während der für die Aktivierung einer einzelnen Zeile erzwungenen Verzögerung zwei Spaltenbefehle abgegeben werden.

Die Prefetch-Länge für Spalten, d. h. die pro Transaktion abgerufene Datenmenge, wird durch die entsprechenden Timing-Verzögerungen für Zeilen und Spalten und die Bit-Transferrate festgelegt. Dabei gilt Folgendes:

Prefetch = Timing-Verzögerung/Bit-Transferrate

Der Core eines Standard-DRAMs läuft typischerweise mit bis zu 200 MHz, während der Core eines dem Industriestandard entsprechenden Hochleistungs-DRAMs typischerweise mit bis zu 400 MHz läuft. Core-Frequenzen von mehr als 400 MHz sind mit den Technologien für die dem heutigen industriestandard entaprechenden DRAMs schwer zu erzielen, ohne die Produktion oder die Kosten negativ zu beeinflussen. Daher ist für einen derartigen Hochleistungs-DRAM-Core zur Unterstützung von externen Datenübertragungsraten von mehr als 3200 MHz ein Spalten-Prefetch von 16 Bit erforderlich. Die DRAM-Cores sind nämlich so angeordnet, dass alle Halbbänke unter derselben Zeilen- oder Spaltenoperation arbeiten.

Zusätzlich gilt Folgendes:

Spaltengranularität = (Spalten-Prefetch) x (Anzahl der Daten-Pins pro Halbbank) x (Anzahl der Halbbänke pro Zugriff)

Dies bedeutet:

für ein 32 Bit breites DRAM mit 16 Daten-Pins pro Halbbank:

Spaltengranularität pro Zugriff = 16 x 16 x 2 = 512 Bit bzw. 64 Byte.

Darüber hinaus müssen während des Zeilen-Timing-Intervalls zur Aufrechterhaltung der Spitzenbandbreite mindestens zwei Spaltenoperationen durchgeführt werden. Dies wird normalerweise als "zwei Spaltenadress-Strobes pro Zeilenadress-Strobe (zwei CAS pro RAS)" bezeichnet. Dies führt zu einer Granularität von mindestens 128 Byte. Diese hohe Zugriffsgranularität führt beispielsweise bei 3D-Grafikanwendungen zu ineffizientem Einsatz von Daten und unnötigem Stromverbrauch.

Wie erhöht Micro-Threading hier die Effizienz?

Ein DRAM-Core mit Micro-Threading verfüge bei denselben Core-Ressourcen wie im letzten Beispiel über 16 Bänke, wobei jede Bank im DRAM mit Micro-Threading einer Halbbank in einem normalen DRAM-Core entspricht. Die Bänke mit gerader Nummer sind mit den A-Daten-Pins und die Bänke mit den ungeraden Nummern mit den B-Daten-Pins verbunden (wieder jeweils mit 16 Pins). Anders als in einem normalen Core kann jeder der aus vier Bänken bestehenden Quadranten wegen der unabhängigen Zeilen- und Spaltenschaltkreise für jeden Quadranten unabhängig arbeiten. Darüber hinaus erlaubt das Interleaving, der gleichzeitige Zugriff auf mehr als eine Speicherbank, konkurrierende Zugriffe auf den niedrigeren Quadranten auf derjenigen physischen Seite des Core, auf der der letzte Zugriff stattgefunden hat.

Mit Micro-Threading sind vier gleichzeitige unabhängige Zugriffe auf den DRAM-Core möglich. Obwohl der Zugriff auf eine weitere Zeile in einer bestimmten Bank oder in einem bestimmten Bankquadranten erst nach demselben Zeitintervall wie bei einem normalen DRAM erfolgen kann, kann auf die drei Bänke in den anderen Quadranten während dieser Zeit unabhängig zugegriffen werden. Auf Zeilen in Spalten anderer Quadranten kann gleichzeitig zugegriffen werden, obwohl vor dem Zugriff auf eine zweite Spalte der vorher aktivierten Zeile ein Spalten-Timing-Intervall vergangen sein muss. Das Nettoergebnis von Quadrantenunabhängigkeit und Interleaving besteht darin, dass während des Zeilen-Timing-Intervalls auf vier Zeilen (eine pro Bank in jedem Quadranten) und acht Spalten (zwei in jeder Zeile) zugegriffen werden kann (gegenüber einer Zeile und zwei Spalten bei der normalen DRAM-Technik).

Die Timings entsprechen denen eines normalen DRAM-Core, aber jede Spalte sendet nur während des halben Spalten-Timing-Intervalls Daten. Die am Interleaving beteiligte Spalte sendet während der anderen Hälfte des Intervalls Daten. Durch Micro-Threading wird die minimale Transfergranularität reduziert und gleichzeitig eine effiziente und kostengünstige Core-Frequenz beibehalten. Durch Verzahnen der Spaltenzugriffe in vier verschiedenen Bänken kann ein DRAM-Core mit Multi-Threading (mit derselben Spalten-Prefetch-Länge und Core-Frequenz) doppelt so hohe Datenübertragungsraten wie ein konventioneller DRAM-Core liefern. Umgekehrt kann durch Micro-Threading der Spaltenoperation eine bestimmte Datenübertragungsrate und Granularität des DRAM-Core aufrechterhalten und gleichzeitig die Spaltenzykluszeit (tCC) im Vergleich zu einem konventionellen DRAM verdoppelt werden.

Die Spaltengranularität lautet nun mit Micro-Threading:

Spalten-Prefetch/2 x 16 Pins = 16/2 x 16 = 128 Bit bzw. 16 Byte (ein Viertel des vorigen Werts).

Die Zeilengranularität beträgt 32 Byte (wiederum ein Viertel des vorigen Werts). Die feinere Granularität beim Micro-Threading führt in vielen Anwendungen zu einem Leistungsanstieg. So ist z.B. in einer Grafikanwendung mit Spaltenzugriffsgranularität von 8 Byte mit Micro-Threading die Effizienz der Rechenleistung und des Stromverbrauchs nach Einführung dieser Technik von 29 auf 67 Prozent gestiegen.

Zusammenfassung: Wirtschaftliche Herausforderungen und Leistungsvorteile von Micro-Threading

  • Durch die Erweiterung der Prefetch-Länge konnten die DRAM-Core-Geschwindigkeiten mit der Schnittstellenbandbreite Schritt halten. Allerdings werden dadurch DRAM-Cores bei der Übertragung von Nutzdaten immer ineffizienter.
  • Micro-Threading ist ein alternativer Ansatz, der die Übertragungseffizienz steigert und eine niedrigere Zugriffsgranularität mit einem nahezu identischen DRAM-Core ermöglicht.
  • Micro-Threading ermöglicht durchgehend hohe Datenbandbreiten bei geringerem Stromverbrauch.
  • Mit Micro-Threading verdoppelt sich die Datenübertragungsrate eines DRAM-Core im Vergleich zu konventionellen Techniken.
  • Micro-Threading eröffnet einen skalierbaren Pfad für künftige Bandbreitenerhöhungen und höhere Core-Prefetch-Verhältnisse.