-
Hintergrund
-
Die
vorliegende Erfindung bezieht sich auf einen Speicherpuffer für ein FB-DIMM
(FB-DIMM = Fully Buffered Dual Inline Memory Module = vollständig gepuffertes
Doppel-InReihe-Speichermodul),
wie z.B. ein FB-DIMM mit DDR2-SDRAM-Speicherbausteinen (DDR = Double Data
Rate = Doppelte Datenrate, SDRAM = Synchronous Dynamic Random Access
Memory = synchron arbeitender dynamischer Direktzugriffspeicher).
-
FB-DIMMs
schaffen größere Speicherkapazitäten für Server
und Workstations, eine höhere
Betriebszuverlässigkeit
und eine leichtere Wartbarkeit. Derzeitige FB-DIMMs unterstützten ausschließlich DDR2-SDRAM-Speicherbausteine.
Jedes FB-DIMM umfasst neben einer Mehrzahl von Speicherbausteinen einen
speziellen sogenannten AMB (AMB = Advanced Memory Buffer = fortgeschrittener
Speicherpuffer). Der AMB stellt über
eine Ein-/Ausgabe-Schnittstelle, welche 24 differenzielle Leitungspaare
umfasst, beispielsweise eine serielle Verbindung zu einem sogenannten
Memory-Controller bzw. Speicher-Controller
her, welcher sich nicht auf dem FB-DIMM befindet. Von dem Speicher-Controller
gelangen typischerweise Steuerinformationen und Daten über zehn
der 24 Signalleitungspaare zu dem AMB, der daraus wiederum entsprechende Steuerinformation
und Daten für
die Speicherbausteine auf dem FB-DIMM ableitet und zu denselben
weiterleitet. Die Schnittstellenverbindung von Speicher-Controller
zu den AMBs wird auch als Southbound- oder Inbound-Verbindung bzw. südgerichtete
Verbindung bezeichnet. Umgekehrt bezeichnet man die Verbindung über 14 Leitungspaare
von FB-DIMM in Richtung Speicher-Controller auch als Northbound-
oder Outbound-Verbindung bzw. nordgerichtete Verbindung.
-
Maximal
verwaltet die FB-DIMM-Technologie acht Module, d.h. FB-DIMMs, pro
Speicherkanal. Das bedeutet, dass acht FB-DIMMs in Reihe mit einem
Speicherkanal des Speicher-Controllers verbunden sein können. Dabei
bilden die AMBs eine asynchrone Latch-Kette für die eingehenden Daten in
Form einer sog. Daisy-Chain.
-
Auf
einem FB-DIMM sind bis zu 36 Speicherbausteine zulässig. In
der Regel befinden sich auf einem doppelseitig bestückten FB-DIMM
neben dem AMB 18 DDR2-SDRAM-Speicherbausteine. Zusätzlich können durch
das sogenannte Stacked-Verfahren weitere 18 Speicherbausteine auf
dem Modul verschaltet werden. Somit kann ein Speicher-Controller
bis zu 36·8
= 288 Speicherbausteine pro Speicherkanal ansteuern.
-
AMB-ICs
sind die zentrale Komponente von FB-DIMMs. Durch eine spezielle
Bus-Architektur, der oben erwähnten
Daisy-Chain Architektur, ist eine Mehrzahl von FB-DIMMs typischerweise
in Serie miteinander verbunden. Dabei existiert eine Punkt-zu-Punkt-Verbindung
zwischen dem Speicher-Controller und einem ersten FB-DIMM sowie
von dem ersten FB-DIMM zu einem folgenden FB-DIMM bzw. Speichermodul,
usw.. Dieser Aufbau ermöglicht
einen von einer SDRAM-I/O-Geschwindigkeit unabhängigen Bus-Zugriff, wodurch
sowohl eine höhere
Speicherkapazität
als auch größere Geschwindigkeiten
ermöglicht
werden.
-
In
der Daisy-Chain fängt
der AMB-Chip eingehende Daten, nämlich
Frames bzw. Rahmen aus Nutz- bzw. Schreibdaten, Adressen und Befehlen,
vom vorhergehenden FB-DIMM oder dem Speicher-Controller und sendet
sie zum nachfolgenden FB-DIMM aus. Frames, die aufgrund Ihrer Adresse
für den
eigenen FB-DIMM
bestimmt sind, werden von dem AMB weiterverarbeitet, um die Speicherbausteine
auf diesem DIMM entsprechend anzusteuern. Die AMBs sorgen also für eine Verteilung
der Daten an die SDRAM-Bausteine.
-
Der
FB-DIMM-Standard sieht ein Datenmultiplexing mit einem Faktor 6
vor. Das bedeutet, DRAM-Frames werden vom Speicher-Controller mittels
eines 6:1-Multiplexers an den AMB ge schickt. Dort demultiplext eine
entsprechende Logik den empfangenen Datenstrom und leitet die extrahierten
Informationen zu den einzelnen SDRAM-Speicherchips. Die FB-DIMM-Technologie verwendet
für diesen
Datenaustausch ein deterministisches RAS/CAS-Protokoll. Es gewährleistet,
dass der Speicher-Controller und der Speicher durch in sich geschlossene
Datenpakete zu jedem Zeitpunkt einem kontrollierten wiederholbaren
Prozess unterliegen. Gleichzeitig optimiert das FB-DIMM-Protokoll
Speicherzugriffe auf die verschiedenen FB-DIMMs und erhöht so signifikant
die Speicher-Performance.
-
Das
FB-DIMM-Protokoll kennt zwei Arten von Daten-Frames. Über die
10-Bit breite Southbound-Verbindung gelangen Kommando-Frames zu den FB-DIMMs,
und über
die 14 Bit breite Northbound-Verbindung empfängt der Speicher-Controller
Antwort- bzw. Response-Frames mit aus den DRAMs ausgelesenen Nutzdaten.
-
Aktuelle
FB-DIMMs mit entsprechendem AMB sind für DDR2-SDRAM-Speicherbausteine
ausgelegt. DDR2-SDRAM ist eine Weiterentwicklung des Konzepts von
DDR-SDRAM, bei dem statt mit einem Zweifach-Prefetch mit einem Vierfach-Prefetch
gearbeitet wird. Bei dem älteren
DDR-Standard erhielt man jeweils bei steigender als auch bei fallender
Flanke des Taktsignals gültige
Daten. Bei DDR2 erhält
man nun zusätzlich dazu
noch zwischen diesen Zuständen
gültige
Daten, was zu vier Datenworten pro Takt führt. Bei DDR2-SDRAM taktet
ein I/O-Puffer mit einer zweifachen Frequenz der Speicherbausteine.
-
Zukünftige FB-DIMMs,
sogenannte FB-DIMM2, sollen mit DDR3-SDRAM-Bausteinen bestückt werden.
DDR3-SDRAM stellt eine Weiterentwicklung des Konzepts von DDR2-SDRAM
dar, bei dem statt mit einem Vierfach-Prefetch mit einem Achtfach-Prefetch
gearbeitet wird. DDR3-SDRAM benötigt
zudem eine Versorgungsspannung von lediglich 1,5 Volt gegenüber einer
Versorgungsspannung von 1,8 Volt für DDR2-SDRAM und ist aufgrund
des Achtfach-Prefetch wesentlich schneller als heutige DDR- bzw.
-
DDR2-Speicherbausteine.
Daher werden auf zukünftigen
FB-DIMM2-Modulen
gegenüber
den AMBs für
DDR2 veränderte
AMB2s eingesetzt werden müssen,
um beispielsweise die höheren
Datenraten für
die DDR3-Bausteine liefern zu können.
-
Typischerweise
existieren verschiedene Taktfrequenzen und Datenraten in und um
einen/m AMB, die in einem festen Verhältnis zueinander stehen. Der
Betrag einer sogenannten FBD-Datenrate
(FBD = Fully Buffered DIMM) fFBD ist beispielsweise
zwölf mal
größer als
eine Kern-Taktfrequenz fcore. Dabei bezeichnet
die FBD-Datenrate die Datenrate der Southbound- bzw. Northbound-Verbindung, d.h. die
Datenrate auf einer der 10 Bitleitungs- bzw. Leitungspaarverbindungen
der Southbound-Verbindung,
auf denen die Frames zu je 120 Bits übertragen werden. Der Betrag
einer DDR2-Datenrate fDDR2 ist zweimal größer als
die Kern-Taktfrequenz fcore des AMB. Dabei
bedeutet die DDR2-Datenrate die Nutz- bzw. Lese/Schreibdatenrate,
mit der die DDR2-Speicherbausteine beschrieben bzw. gelesen werden
können,
wobei derzeit DDR2-Speicherbausteine mit vier oder acht solchen
mit fDDR2 arbeitenden I/O-Anschlüssen existieren.
fDDR2 beträgt ein sechstel der FBD-Datenrate
fFBD. Die Kern-Taktfrequenz fcore ist
gleich einer DDR2-Kommando-Taktfrequenz
fcmd und ist zweimal größer als eine externe Referenz-Taktfrequenz
fref. Die Kommando-Taktfrequenz bedeutet
diejenige Taktfrequenz, mit der Kommandos vom AMB and die Speicherbausteine
geschickt werden können.
Ein Verhältnis
zwischen den verschiedenen Taktfrequenzen bleibt stets gleich.
-
Die
nachfolgende Tabelle zeigt ein beispielhaft einen Zusammenhang von
den im Vorhergehenden beschriebenen Datenraten bzw. Frequenzen.
fref | fcore | fDDR2 | fFBD |
133
MHz | 266
MHz | 533
Mbit/s | 3.2
Gbit/s |
167
MHz | 333
MHz | 667
Mbit/s | 4.0
Gbit/s |
200
MHz | 400
MHz | 800
Mbit/s | 4.8
Gbit/s |
-
Zusammenfassung
-
Gemäß Ausführungsbeispielen
umfasst die vorliegende Erfindung einen Speicherpuffer für ein FB-DIMM
mit einer ersten Ein-/Ausgabe-Schnittstelle
zur Kommunikation mit einem Speicher-Controller mit einer ersten Datenrate
und mit einer zweiten Ein-/Ausgabe-Schnittstelle zur Kommunikation
von Lese/Schreibdaten mit Speicherbausteinen mit einer zweiten Datenrate,
wobei ein Verhältnis
der zweiten Datenrate geteilt durch die erste Datenrate kleiner
als 1/10 ist.
-
Gemäß weiteren
Ausführungsbeispielen
umfasst die vorliegende Erfindung ein FB-DIMM mit einem Speicherpuffer
mit einer ersten Ein-/Ausgabe-Schnittstelle zur Kommunikation mit
einem Speichercontroller mit einer ersten Datenrate und einer zweiten
Ein-/Ausgabeschnittstelle zur Kommunikation von Lese-Schreibdaten mit
Speicherbausteinen mit einer zweiten Datenrate, wobei ein Verhältnis der
zweiten Datenrate geteilt durch die erste Datenrate kleiner als
1/10 ist.
-
Kurzbeschreibung der Figuren
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Betzug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
schematischen Darstellung eines FB-DIMMs;
-
2 eine
schematischen Darstellung eines Speichersystems mit mehreren herkömmlichen FB-DIMMs;
-
3 ein
Beispiel eines herkömmlichen
eingehenden (Southbound) Paketformats;
-
4 eine
schematische Darstellung einer Kopplung eines herkömmlichen
AMB2-Speicherpuffers mit DDR3-Speicherbausteinen;
-
5 eine
schematische Darstellung eines Speicherpuffers für ein FB-DIMM gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
6 eine
schematische Darstellung einer Kopplung eines erfindungsgemäßen Speicherpuffers
für ein
FB-DIMM mit DDR2-Speicherbausteinen
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung; und
-
7 ein
Blockschaltbild eines Speicherpuffers für ein FB-DIMM gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung.
-
Detaillierte Beschreibung
-
Bezüglich der
nachfolgenden Beschreibung sollte beachtet werden, dass bei den
unterschiedlichen Ausführungsbeispielen
in den unterschiedlichen Figuren gleich oder gleichwirkende Funktionselemente
gleiche Bezugszeichen aufweisen und die Beschreibung dieser Funktionselemente
in den verschiedenen, in den nachfolgend dargestellten Ausführungsbeispielen
untereinander austauschbar ist, so dass eine wiederholte Beschreibung
weggelassen wird.
-
Bevor
Bezug nehmend auf die 5-7 Ausführungsbeispiele
der vorliegenden Erfindung näher beschrieben
werden, soll im Folgenden anhand der 1-4 ein
Zusammenwirken verschiedener Komponenten eines auf der aktuellen
FB-DIMM-Technologie basierenden Speichersystems näher erläutert werden. Ein
solches Speichersystem umfasst einen Speicher-Controller und ein
oder mehrere FB-DIMMs, wobei die FB-DIMMs jeweils einen AMB und
eine Mehrzahl von Speicherbausteinen aufweisen.
-
1 zeigt
einen herkömmlichen
FB-DIMM 100, der einen Speicherpuffer bzw. einen herkömmlichen AMB 110 und
eine Mehrzahl von Speicherbausteinen bzw. -chips 120 aufweist,
von denen exemplarisch hier nur zwei gezeigt sind. Der AMB 110 weist
eine erste Ein-/Ausgabe-Schnittstelle 130, eine zweite
Ein-/Ausgabe-Schnittstelle 140 sowie eine dritte Ein-/Ausgabe-Schnittstelle 150 auf.
-
Der
AMB 110 kann über
die erste E/A-Schnittstelle 130 ein sogenanntes Southbound-Datenpaket
von einem in 1 nicht gezeigten Speicher-
bzw. Memory-Controller oder einem benachbarten bzw. vorangehenden
FB-DIMM empfangen oder ein sogenanntes Northbound-Datenpaket zu
dem Speicher-Controller oder dem benachbarten FB-DIMM senden. Über die
dritte E/A-Schnittstelle 150 können Southbound-Datenpakete, welche
nicht an das FB-DIMM 100 adressiert sind, an benachbarte
FB-DIMMs weitergeleitet werden. Der AMB 110 kann über die
dritte E/A-Schnittstelle 150 ebenso
aus der entgegengesetzten Richtung, d.h. von einem benachbarten
FB-DIMM ein sogenanntes Northbound-Datenpaket empfangen und dieses über die
erste E/A-Schnittstelle 130 zum Memory-Controller oder
einem weiteren benachbarten FB-DIMM weiterleiten.
-
Die
erste E/A-Schnittstelle 130 arbeitet mit einer FBD-Datenrate fFBD pro Bitverbindung bzw. pro Bitleitungspaar.
Die eingehenden Datenpakete oder Frames umfassen dabei neben Redundanzinformationen
zur Fehlerkorrektur bzw. -erfassung beispielsweise eine Lese/Schreib-Adresse,
ggf. Schreib- bzw. Nutzdaten oder Füllbits und einen Befehl, wie
z.B. einen Lese- oder Schreibbefehl. Empfangene Nutzdaten, die auf
den Speicherbausteinen 120 des FB-DIMMs 100 gespeichert
werden sollen, werden über
die zweite E/A-Schnittstelle 140 von dem AMB 110 an
die Speicherbausteine 120 mit der DDR2-Datenrate fDDR2 übertragen.
Ferner können über die
zweite E/A-Schnittstelle 140 Daten
aus den Speicherbausteinen 120 in den AMB 110 eingelesen
werden, um von dort mittels eines Northbound-Datenpakets in Richtung
des Speicher-Controllers mit der vorerwähnten FBD-Datenrate fFBD gesendet zu werden. Die zweite E/A-Schnittstelle 140 arbeitet
dabei im Hinblick auf die Lese/Schreibdaten mit einer DDR2-Datenrate
fDDR2 pro Bitverbindung bzw. pro Bitleitung.
Daneben erlaubt die zweite Schnittstelle 140 aber natürlich auch
das Anlegen von Befehlen und Adressen an die Speicherbausteine über von
den Datenbitleitungen getrennte Adress- bzw. Befehlsbitleitungen.
-
Der
AMB 110 stellt Taktsignale, Steuersignale und/oder Adresssignale
für die
Mehrzahl der Speicherbausteine 120 bereit. Des Weiteren
kann der AMB 110, wie im Vorhergehenden bereits beschrieben, über die bidirektionale
Schnittstelle 140 Lese/Schreibdaten sowohl vorwärts als
auch rückwärts mit
der Mehrzahl von Speicherbausteinen 120 austauschen.
-
Der
AMB 110 bildet somit eine zentrale Schaltstelle des FB-DIMM-Moduls 100 gegenüber Außen. Der AMB 110 decodiert
beispielsweise aus dem pro Bitverbindung mit der FBD-Datenrate fFBD eingehenden Datenstrom von dem Speicher-Controller
die Kommandos bzw. Befehle, wie z.B. einen Schreibbefehl, ggf. zusammen
mit Speicheradresse und Schreibdaten, und leitet entsprechende Daten,
d.h. einen Schreibbefehl, eine DRAM-Speicheradresse und die Schreibdaten, über die
zweite E/A-Schnittstelle 140 an
die Speicherchips 120 weiter.
-
Umgekehrt
kann der AMB 110 parallele DRAM-Daten mit der DDR2-Datenrate fDDR2 in Datenpakete umwandeln und mit der
FBD-Datenrate fFBD pro Bitverbindung bzw. Bitleitungspaar über 14 Bitleitungspaare
in Richtung des Speichercontrollers senden.
-
Um
Schreib- und Leseoperationen zeitrichtig zwischen FB-DIMM und Speicher-Controller
zu koordinieren, erfolgt eine Synchronisation einer Steuerlogik
des AMB 110 und der DRAM-Chips 120 über eine
Referenztakt-Leitung bzw. eine Referenz-Taktfrequenz fref.
Zusätzlich
erlaubt eine sog. Pass-Through-Logik
die vorerwähnte
Weiterleitung von Lese- und Schreiban- Weisungen bzw. -Frames an benachbarte
FB-DIMMs, die nicht explizit für
den FB-DIMM 100 gelten. Das Pass-Through-Verfahren erlaubt
eine Datenflusskontrolle für das
jeweilige FB-DIMM. Darüber
hinaus hat diese Technologie bei Lese-Anweisungen eine sogenannte Merging-Logik,
die die Lese-Daten der einzelnen FB-DIMMs für den Speicher-Controller folgerichtig
zusammensetzt.
-
2 zeigt
ein herkömmliches
FB-DIMM-Speichersystem, das einen Speicher-Controller 200 sowie eine
Mehrzahl von FB-DIMMs 100 aufweist.
Wie bereits anhand von 1 beschrieben wurde, weist jedes
der Mehrzahl von FB-DIMMs 100 einen AMB 110 und
eine Mehrzahl von SDRAM-Bausteinen 120 auf. Ferner zeigt 2 einen
Referenztakt-Generator 210 und einen Referenztakt-Puffer 220.
-
Ein
in 2 gezeigtes herkömmliches FB-DIMM-Speichersystem
kann bis zu acht FB-DIMMs in einer sogenannten Daisy-Chain-Anordnung (daisy-chain
= Verkettung) aufweisen. Als Daisy-Chain bezeichnet man im Allgemeinen
eine Anzahl von Hardware-Komponenten,
welche in Serie miteinander verbunden sind, um asynchron Daten untereinander
weiterleiten zu können.
Dabei ist ein erstes FB-DIMM 100a direkt mit dem Speicher-Controller 200 verbunden.
Die weiteren FB-DIMMs sind nun jeweils mit ihren Vorgängern verbunden und
es entsteht so eine asynchrone Latch-Kette (latch = Register). Ein
Southbound-Signal zu und/oder ein Northbound-Signal von einem FB-DIMM
geht nun über
seinen jeweiligen Vorgänger
bis zum Speicher-Controller 200 hin.
-
Der
Taktfrequenz-Generator 210 generiert die im Vorhergehenden
bereits beschriebene Referenz-Taktfrequenz fref,
die beispielsweise Werte von fref = 133
MHz, fref = 167 MHz oder fref =
200 MHz aufweisen kann. Die Referenz-Taktfrequenz fref wird
sowohl dem Speicher-Controller 200 zur Taktung zugeführt als
auch dem Takt-Puffer 220, um die Referenz-Taktfrequenz
fref an die verschiedenen FB-DIMMs 100 bzw.
an ihre AMBs 110 zu verteilen. Wie im Vorhergehenden bereits
beschrieben, werden innerhalb eines AMB beispielsweise mit verschiedenen
PLLs (PLL = Phase Locked Loop) verschiedene weitere Taktfrequenzen
bzw. Datenraten von der Referenz-Taktfrequenz abgeleitet, wie beispielsweise
die Kern-Taktfrequenz fcore.
-
Der
Datentransfer von dem Speicher-Controller 200 hin zu den
FB-DIMMs 100 findet über
einen seriellen Datenbus zwischen dem Speicher-Controller 200 und
den jeweiligen AMBs 110 statt. Dabei werden Frames zu je
120 Bits mit ggf. einem Befehl, einer Adresse und ggf. Schreibdaten
von dem Speicher-Controller 200 mittels
6:1-Multiplexern an die jeweiligen AMBs 110 geschickt.
Dort demultiplext eine entsprechende Logik des AMB 110 den
empfangenen Datenstrom bzw. das empfange Frame mittels 1:6-Demultiplexern,
analysiert ihn, um zu entscheiden, ob das eigene DIMM 100 Adressat
des Frames ist, und verarbeitet in dem bejahenden Fall die extrahierten
Frame-Informationen um daraus Befehls/Adressdaten und ggf. Schreibdaten
zu gewinnen und zu den einzelnen Speicherchips 120 weiterzuleiten.
Für den
Frame-Datenaustausch kann ein deterministisches RAS/CAS-Protokoll
(RAS = Row Address Strobe, CAS = Column Address Strobe) verwendet
werden, das gewährleistet,
dass der Speicher-Controller und die DIMMs durch in sich geschlossene
Datenpakete zu jedem Zeitpunkt einem kontrollierten wiederholbaren
Prozess unterliegen. Gleichzeitig optimiert das FB-DIMM-Protokoll
Speicherzugriffe auf die verschiedenen Module 100 und erhöht so signifikant
die Speicher-Performance.
-
Zwei
Arten von Daten-Frames können
unterschieden werden. Über
die zehn Bit breite Southbound-Verbindung gelangen beispielsweise
Kommando-Frames zu den FB-DIMMs 100 und über die
14 Bit breite Northbound-Verbindung empfängt der Speicher-Controller 200 Antwort-
bzw. Response-Frames. Die sogenannten Command-Frames enthalten bis zu drei Befehlsoperationen.
Diese können
an unterschiedliche FB-DIMMs verteilt werden. Zusätzlich erlaubt
ein Kommando-Frame eine Kombination aus einer Be fehlsoperation und
aus neun Byte, d.h. 72 Bit, an Schreibdaten. Ein Response-Frame
(Northbound) kann Lesedaten von den Speicherchips 120 oder
Statusinformationen enthalten. Dieses sendet das FB-DIMM 100 nur
auf Anfrage des Speicher-Controllers 200.
Sowohl das Response-Frame als auch die einzelnen Kommando- oder Datenblöcke eines
Command-Frames werden mittels Redundanzinformationen bzw. einer
CRC-Prüfsumme (CRC
= Cyclic Redundancy Check) vor Übertragungsfehlern
geschützt.
-
3 zeigt
beispielhaft ein herkömmliches
Southbound-Paketformat.
Wie im Vorhergehenden bereits beschrieben, wird ein Southbound-Datenpaket
in eine Richtung weg von dem Speicher-Controller 200 hin
zu den DIMMs 100 transferiert. Das Southbound-Paket ist
entsprechend der im Vorhergehenden beschriebenen Southbound-Verbindung
zehn Bit breit und wird in zwölf
FDB-Verbindungstakten der Datenrate fFDB an
den AMB 110 übermittelt.
Die ersten vier FDB-Verbindungstakte können einen zyklischen Blocksicherungscode (CRC)
sowie einen Befehls-(CMD-)/Adress-(ADDR-) Code aufweisen. Ein CRC-Code
ist ein Signal, das dazu verwendet werden kann, um einen Fehler
in den übermittelten
Signalen zu identifizieren und ggf. zu korrigieren. Die verbleibenden
FDB-Verbindungstakte, in 3 dargestellt durch „B", können beispielsweise
zu schreibende Daten oder andere Befehle (CMD) enthalten. Die Anzahl
von zu schreibenden Datenbits in einem Schreibbefehl-Frame beträgt vorliegend
exemplarisch m = 64. In dem AMB werden diese 64 Daten-Bits ggf. mit
acht CRC-Bits kombiniert, wodurch auf diese Weise ein Datenwort
mit einer Breite von 72 Bits entsteht, welches in dem AMB 110 kurz
zwischengespeichert wird, um danach vom AMB 110 mittels
seiner zweiten E/A-Schnittstelle 140 an
die SDRAM-Bausteine 120 übermittelt zu werden. Zudem
kann ein Southbound-Paket beispielsweise Modulauswahlbits zum Auswählen eines
bestimmten FB-DIMMs aufweisen, Befehlsbits, ein oder mehrere Rangauswahlbits,
sowie Adressinformationen aufweisen.
-
Northbound-Datenpakete
weisen beispielsweise 128 Bit oder, inclusive CRC-Bits, 144 Bits
Nutzdaten auf, die ausgelesenen Bits entsprechen. Die Northbound-Verbindung
von dem AMB 110 zu dem Speicher-Controller 200 weist
14 differenzielle Leitungspaare auf. Dementsprechend werden pro
FDB-Verbindungstaktzyklus
14 Bit übertragen.
Zur Übertragung
eines kompletten Northbound-Datenpakets werden ebenfalls wie in
Southbound-Fall zwölf
FDB-Verbindungstaktzyklen der Taktrate fFBD benötigt. Insbesondere
kann ein Northbound-Datenpaket
beispielsweise zwei 72-Bit- oder zwei 64-Bit-Nutzdatenblöcke aufweisen.
-
4 zeigt
einen AMB-Chip 110, der über eine E/A-Schnittstelle 140 mit
DDR-Speicherbausteinen 120 gekoppelt ist. Dabei zeigt 4 bereits
den Fall eines AMB2 mit DDR3-Bausteinen,
wobei 4 allerdings von der Darstellung her ohne weiteres
auch auf den Fall von AMB mit DDR2 zutrifft. Der einzige Unterschied
liegt in der doppelten Datenrate von AMB2 sowohl in Bezug auf fFBD als auch fDDR#,
so dass im folgenden 4 zunächst so beschrieben werden
soll, als handele es sich um einen AMB-Baustein mit DDR2-Bausteinen.
-
Die
in 4 dargestellten DDR2-Speicherbausteine 120 bilden
unterschiedliche Speicher-Ränge
eines FB-DIMMs. Ein Speicher-Rang
wird typischerweise definiert als ein Block von m = 64 Bits bzw.
m = 72 Bits (mit CRC), der durch die Benutzung einiger oder aller
SDRAM-Chips auf einem FB-DIMM erzeugt wird. Die kleinste durch Southbound-Frames
adressierbare Einheit von je 64 bzw. 72 Bits kann nur als Gesamtes
einen der beiden Speicher-Ränge
betreffen. Während
die Lese/Schreibdaten-E/A-Anschlüsse sowie
die Adress-/Befehlseingänge
der Bausteine beider Ränge
mit den gleichen Anschlüssen
der zweiten Schnittstelle 140 des AMBs verbunden sind,
kann der AMB mit den Speicherbausteinen eines Ranges getrennt von
denen des anderen Ranges kommunizieren, indem der AMB entsprechende
Chip-Select-Signale an die Speicherbausteine des einen Ranges sendet
und an diejenigen des anderen Ranges nicht.
-
Die
zweite E/A-Schnittstelle 140 eines AMB bzw. AMB2 zur Kommunikation
mit Speicherbausteinen umfasst typischerweise einen sogenannten
Command-Decoder und einen sogenannten FIFO-Schreibpuffer (FIFO = First In First
Out). In dem FIFO-Schreibpuffer
werden Schreibdaten zwischengespeichert bevor sie auf einen DDR-Kanal
der zweiten E/A-Schnittstelle 140 geschrieben werden. Der
FIFO-Schreibpuffer hat typischerweise 36 Einträge 72 Bits. Davon können beispielsweise
35 Einträge
benutzt werden, um DDR-Bursts, d.h. die Schreibdaten eines Southbound-Pakets
zu speichern.
-
Umgekehrt
wird ein FIFO-Lesepuffer typischerweise verwendet, um von den Speicherbausteinen 120 gelieferte
Lesedaten zwischenzuspeichern, um sie anschließend mittels einer sog. Merge-
und Alignment-Logik über
die Northbound-Verbindung in Richtung Speicher-Controller 200 zu
senden.
-
Bei
der in 4 gezeigten schematischen Darstellung wird beispielsweise
in einem ersten DDR-Taktzyklus ein DDR-Burst mit 72 Bits aus dem
FIFO-Schreibpuffer ausgelesen, und an den links dargestellten Speicher-Rang
von DDR2- bzw. DDR3-Speicherbausteinen 120 übermittelt.
In einem zweiten DDR-Taktzyklus
wird ein zweiter DDR-Burst mit m = 72 Bits (64 Bits + 8 Bits CRC)
an den rechts dargestellten Rang von DDR2- bzw. DDR3-Speicherbausteinen übermittelt.
Somit werden bei dem in 4 gezeigten herkömmlichen FB-DIMM
Speichersystem mit einem herkömmlichen
AMB bzw. AMB2 pro DDR-Takt 72 Bits von dem AMB bzw. AMB2 110 an
die Speicherbausteine 120 übermittelt.
-
Nachdem
im Vorhergehenden anhand der 1 bis 4 herkömmliche
FB-DIMM- bzw. FB-DIMM2-Speichersysteme und deren Funktionsweise
beschrieben wurden, sollen im Nachfolgenden Bezug nehmend auf die 5 bis 7 Ausführungsbeispiele
der vorliegenden Erfindung näher
erläutert
werden.
-
Hersteller
von Prozessoren (CPUs) und/oder Speicher-Controllern können derzeit entweder FB-DIMM einsetzen
oder auf FB-DIMM2 warten. Da eine Anzahl von Kernen in den CPUs
stetig wächst,
explodieren förmlich
die Kosten der Hersteller für
parallele Busschnittstellen zur Speicherperipherie, um den Speicherbedarf
der CPUs zu decken.
-
Ein
Speicherpuffer für
FB-DIMMs gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung umfasst eine Mischung aus AMB- und AMB2-Blöcken. Im
Nachfolgenden soll ein Speicherpuffer für FB-DIMMs gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung als GLB (GLB = Generation Leap Buffer)
bezeichnet werden.
-
Ein
GLB arbeitet mit DDR2-Speicherbausteinen. Da bei gleicher Referenzfrequenz
fref die Datenrate von DDR2-Speicherbausteinen
lediglich die Hälfte
der Datenrate von DDR3-Bausteinen beträgt, wird dieser Datenratenunterschied
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung kompensiert durch eine 144 Bit breite
zweite E/A-Schnittstelle
zur Lese/Schreibdaten-Kommunikation mit DDR2-Speicherbausteinen anstelle der herkömmlichen
72 Bit breiten zweiten E/A-Schnittstelle zur Kommunikation mit DDR2-Speicherbausteinen.
Um die 144 Bit breite zweite E/A-Schnittstelle
zur Kommunikation mit DDR2-Speicherbausteinen bei der Datenrate
fDDR2 pro Bitleitung bedienen zu können, wird
die FBD-Datenrate fFBD gegenüber einem
herkömmlichen
AMB verdoppelt. Das Verhältnis
der beiden Datenraten fDDR2/fFBD beträgt also
bei einem GLB gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zumindest näherungsweise 1/12. Ein andere
Einstellung derart, dass das Verhältnis kleiner 1/10 ist, ist
ebenfalls möglich.
-
Ein
FIFO-Schreibpuffer eines GLB verkettet also gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung 64- bzw. 72-Bit Schreib-Datenworte zweier aufeinanderfolgender
Schreib-Pakete zu
einem 128- bzw. 144-Bit Datenwort, um das so gebil dete 128- bzw.
144-Bit Datenwort abhängig
von beispielsweise lediglich einer im ersten der zwei Pakete empfangenen
Adresse in die DDR2-Speicherbausteine zu schreiben. Anders ausgerückt ist
die kleinste in den Daten-Paketen bzw. -Frames adressierbare Einheit
effektiv nicht 64 bzw. 72 Bit groß sondern 128 bzw. 144 Bits.
Der mit dem GLB kommunizierende Memory-Controller, der von der Emulierung einer
AMB2 durch den GLB nichts weiß und
davon ausgeht, dass es durch die Adressen in den Southbound-Frames
64 bzw. 72 Bit-weise adressiert, merkt von der Emulierung nichts
bzw. muss solange nicht in seiner Funktionsweise verändert werden,
solange er wie zur Zeit üblich
Lese/Schreib-Frames derart auf die Southbound-Strecke ausgibt, dass
immer das paarweise Auslesen/Schreiben von hintereinanderliegenden
64 bzw. 72 Bit Blöcken
beantragt wird, wie z.B. durch das serielle Aussenden zweier Schreib-Frames mit Adressen,
die auf aufeinanderfolgende 64/72-Bit-Blöcke
verweisen. Ein Speicheraufbau gemäß 2 ist deshalb gemischt
mit FB-DIMM2s mit AMB2s und DDR3-DRAMSs und FB-DIMMs mit GLBs und
DDR2-DRAMs möglich.
Daher ist man mit einem GLB von der Einführung von FB-DIMM2 unabhängig.
-
Der
GLB verwendet im letzten Beispiel mit den beiden aufeinanderfolgenden
Schreib-Frames beispielsweise lediglich die Adresse aus dem ersten
Frame und leitet hieraus eine DRAM-Adresse zur gemeinsamen Ansteuerung
aller DDR2-DRAMs ab, die mit ihren beispielsweise 4 oder 8 I/O-Pins
jeweils mit 4 bzw. 8 der 144 Pins des GLB verbunden sind, um ein
144-Bit-weises schreiben bzw. lesen zu ermöglichen. Die DRAM-Adresse wird
beispielsweise zur gleichzeitigen Ansteuerung aller DDR2-DRAMs an der 128/144-Bit-Schnittstelle
des GLB verwendet, oder aber es werden beispielsweise die DRAMs
zu einer Seite des GLB auf dem FB-DIMM
-
Die
jeweils zweite wirksame Adresse in den Southbound-Frames, wie z.B.
diejenige des soeben erwähnten
zweiten Schreib-Frames,
wird beispielsweise verworfen oder auf Korrektheit überprüft bzw.
darauf, dass sie auf den 64/72-Bit-Folgeblock zeigt. Anders ausgedrückt bildet
der GLB die Adressen der Southbound-Frames auf die DRAM-Adressen
so ab, dass der Gesamtspeicherraum der durch die mit der 128/144-Bit-Schnittstelle verbundenen
DRAMs nur in kleinsten Einheiten von 128 bzw. 144 Bits adressierbar ist,
wohingegen dies bei AMB und AMB bei gleichem Speicherraum mit beispielsweise
2 Ranks 64-Bit-weise möglich
ist. Dabei ist der GLB aber in der Lage Adressen auswerten, die
eigentlich 1 Bit zu lang sind und somit in der Lage wären, den
Gesamtspeicherraum 64-Bit-weise
zu adressieren, indem der GLB beispielsweise das LSB bzw. niedrigstwertige
Bit der Adressen in den Southbound-Frames ignoriert. Das soeben Beschriebene gilt
natürlich
gleichermaßen
für die
Lese-Adressen der Lesebefehl-Frames. Auch diese werden von dem GLB nur
paarweise verarbeitet.
-
5 zeigt
einen Speicherpuffer bzw. einen GLB 500 für ein FB-DIMM
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Der GLB 500 weist eine erste
Ein-/Ausgabe-Schnittstelle 510 und
eine zweite Ein-/Ausgabe-Schnittstelle 520 auf. In der
schematischen Darstellung des Speicherpuffers 500 in 5 ist eine
dritte Ein-/Ausgabe-Schnittstelle 530 der Vollständigkeit
halber gezeigt.
-
Der
GLB 500 kann über
die erste E/A-Schnittstelle 510 mit einer Datenrate von
fFBD pro Bitleitungspaar ein Southbound-Datenpaket von einem
in 5 nicht gezeigten Speicher-Controller oder einem benachbarten bzw.
vorangehenden FB-DIMM empfangen oder ein sogenanntes Northbound-Datenpaket
zu dem Speicher-Controller oder dem benachbarten FB-DIMM senden. Über die
dritte E/A-Schnittstelle 530 können Southbound-Datenpakete, welche
nicht an den GLB 500 adressiert sind, an GLB's auf benachbarten
FB-DIMMs weitergeleitet werden. Der GLB 500 kann über die
dritte E/A-Schnittstelle 530 ebenso aus der entgegengesetzten Richtung,
d.h. von einem benachbarten FB-DIMM ein Northbound-Datenpaket empfangen
und dieses über
die erste E/A-Schnittstelle 510 zum Speicher-Controller
oder einem weiteren benachbarten FB-DIMM weiterleiten.
-
Die
erste E/A-Schnittstelle 510 arbeitet mit einer FBD-Datenrate fFBD pro Bitverbindung bzw. pro Bitleitungspaar.
Empfangene Nutzdaten, d.h. Lese/Schreibdaten, die auf mit der zweiten
E/A-Schnittstelle 520 gekoppelten Speicherbausteinen gespeichert
werden sollen, werden über
die gemäß einem
Ausführungsbeispiel der
vorliegenden Erfindung 144 Bit (128 Datenbits + 16 CRC-Bits)
breite zweite E/A-Schnittstelle 520 von dem GLB 500 an
die Speicherbausteine mit der DDR2-Datenrate fDDR2 pro
Bitleitung übertragen.
Ferner können über die
zweite E/A-Schnittstelle 520 Daten aus den Speicherbausteinen
in den GLB 500 eingelesen werden, um von dort mittels eines
Northbound-Datenpakets in Richtung des Speicher-Controllers mit der vorerwähnten FBD-Datenrate
fFBD gesendet zu werden. Die zweite E/A-Schnittstelle 140 arbeitet
dabei im Hinblick auf die Lese/Schreibdaten mit einer DDR2-Datenrate
fDDR2 pro Bitverbindung bzw. pro Bitleitung.
Aufgrund der doppelten Busbreite der zweiten E/A-Schnittstelle 520 gegenüber herkömmlichen
AMBs bzw. AMB2 beträgt
das Nutzdatenratenverhältnis
fDDR2/fFBD = 1/12
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Daneben erlaubt die zweite Schnittstelle 140 aber
natürlich
auch das Anlegen von Befehlen und Adressen an die Speicherbausteine über von
den Datenbitleitungen getrennte Adress- bzw. Befehlsbitleitungen.
Die prinzipiellen Funktionsweisen der E/A-Schnittstellen 510 und 530 wurden
im Vorhergehenden anhand der 1-3 bereits
beschrieben.
-
Eine
schematische Darstellung der zweiten E/A-Schnittstelle 520 (DDR2-Schnittstelle)
gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung ist 6 gezeigt.
-
6 zeigt
einen Speicherpuffer bzw. GLB 500 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung mit der ersten Ein-/Ausgabe-Schnittstelle 510 zur
Kommunikation mit beispielsweise einem Speicher-Controller oder
benachbarten Speicherpuffern, der zweiten Schnittstelle 520 zur
Kommunika tion mit auf einem FB-DIMM gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung befindlichen DDR2-Bausteinen und der
dritten Ein-/Ausgabe-Schnittstelle 530 zur Kommunikation
mit benachbarten Speicherpuffern.
-
Wie
in 6 zu erkennen ist, ist die DDR2-Schnittstelle
des Speicherpuffers bzw. GLB gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung 144 Bit breit. Demgegenüber steht
die 72 Bit breite DDR-Schnittstelle eines herkömmlichen AMB bzw. AMB2, wie
sie anhand von 4 bereits beschrieben wurde.
-
Typischerweise
weisen DDR2-Speicherbausteine n = 4 (x4-DDR2) oder n = 8 (x8-DDR2)
Daten-I/O-Pins auf. Bei Verwendung eines GLB mit einer l = 144 Bit
breiten DDR2-Schnittstelle ist ein entsprechender Speicher-Rang
ein Block von l = 144 Bits (128 Daten-Bits mit 16 Bit CRC), der
durch die Benutzung von N SDRAM-Chips auf einem FB-DIMM gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung erzeugt wird. Demnach wird ein FB-DIMM gemäß Ausführungsbeispielen
der vorliegenden Erfindung mit N = l/n, d.h. entweder 144/4 = 36
x4-DDR2- oder 144/8 = 18 x8-DDR2-Speicherbausteinen
bestückt,
um die l = 144 Bit schreiben bzw. lesen zu können.
-
Ein
in 6 nicht gezeigter FIFO-Schreibpuffer des GLB 500 wird
mit der doppelten Anzahl von Datenbits pro Zeiteinheit gefüllt, um
den doppelt so breiten (144 Bit) Bus der zweiten Schnittstelle 520 zur
Kommunikation mit auf einem FB-DIMM gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung befindlichen DDR2-Bausteinen bedienen
zu können.
Um dies zu gewährleisten,
verdoppelt sich ebenfalls die FBD-Datenrate fFBD der
ersten Ein-/Ausgabe-Schnittstelle 510 bzw. der dritten
Ein-/Ausgabe-Schnittstelle 530 gegenüber herkömmlichen Speicher-Puffern wie
AMB bzw. AMB2. Somit beträgt
bei einem Speicherpuffer bzw. GLB für ein FB-DIMM gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung das Verhältnis DDR-Datenrate fDDR2 zu
der FBD-Datenrate fFBD zumindest näherungsweise
den Wert fDDR2/fFBD =
1/12, wohingegen bei einem herkömmli chen
AMB bzw. AMB2 auf einem herkömmlichen
FB-DIMM bzw. einem herkömmlichen
FB-DIMM2 dieses Verhältnis
fDDR2/fFBD = 1/6
beträgt.
-
Die
im Nachfolgenden aufgelisteten Tabellen zeigen eine Beziehung der
verschiedenen Frequenzen zueinander bei einem herkömmlichen
AMB/FB-DIMM-System,
fref | fcore | fDDR2 | fFBD |
133
MHz | 266
MHz | 533
Mbit/s | 3.2
Gbit/s |
167
MHz | 333
MHz | 667
Mbit/s | 4.0
Gbit/s |
200
MHz | 400
MHz | 800
Mbit/s | 4.8
Gbit/s |
einen herkömmlichen
AMB2/FB-DIMM2-System und
fref | fcore | fDDR3 | fFBD |
133
MHz | 266
MHz | 1066
Mbit/s | 6.4
Gbit/s |
167
MHz | 333
MHz | 1333
Mbit/s | 8.0
Gbit/s |
200
MHz | 400
MHz | 1600
Mbit/s | 9.6
Gbit/s |
bei einem System gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung.
fref | fcore | fDDR2 | fFBD |
133
MHz | 266
MHz | 533
Mbit/s | 6.4
Gbit/s |
167
MHz | 333
MHz | 667
Mbit/s | 8.0
Gbit/s |
200
MHz | 400
MHz | 800
Mbit/s | 9.6
Gbit/s |
-
Somit
lässt sich
erkennen, dass mit einem FB-DIMM gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung mit einem GLB und DDR2-Speicherbausteinen
jeweils in Richtung vom und zum Speicher-Controller zumindest näherungsweise
die gleichen Datenraten erzielbar sind, wie mit einem herkömmlichen AMB2/FB-DIMM2-System
mit DDR3-Speicherbausteinen.
-
Ein
erfindungsgemäßer Speicherpuffer
bzw. GLB kann somit zwei Aufgaben erfüllen. Erstens kann er als Testchip
fungieren, der es erlaubt, die serielle Speicherpuffertechnologie
der nächsten
Speicher-Generation (DDR3) zu testen, bevor die relevanten DDR3-SDRAMs
zur Verfügung
stehen. Zweitens bietet er eine Rückzugsmöglichkeit auf DDR2-Technologie
in einem System, welches an sich mit Geschwindigkeiten arbeitet,
die lediglich mit einer DDR3-Technologie erreichbar sind.
-
Durch
eine Verwendung eines GLB gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung auf einem FB-DIMM mit DDR2-Speicherbausteinen
kann zumindest näherungsweise
dieselbe Performance erreicht werden wie mit einem FB-DIMM2 mit
DDR3-Speicherbausteinen.
Dabei zeigt die folgende Tabelle, welche DDR3-Speicherbausteine
bei einer Verwendung eines GLB gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung durch DDR2-Bausteine ersetzt werden können.
DDR2-Ersatz | DDR3
für FB-DIMM2 |
DDR2-533 | DDR3-1066 |
DDR2-667 | DDR3-1333 |
DDR2-800 | DDR3-1600 |
-
Die
DDR2-Datenrate fDDR2 pro Bitleitung kann
mit der Annahme des Vierfach-Prefetch und der Referenzfrequenz fref bestimmt werden zu fDDR2 =
4bit·fref. Eine DDR3-Datenrate fDDR3 pro
Bitleitung kann mit der Annahme eines Achtfach-Prefetch und der
Referenzfrequenz fref bestimmt werden zu
fDDR3 = 8bit·fref.
-
Wie
im Vorhergehenden bereits beschrieben kann man mit einem GLB zumindest
näherungsweise
die gleiche Performance durch eine doppelt so breite DDR2-Schnittstelle
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung erreichen, wie mit einem zukünftigen
AMB2, welcher beispielsweise auf zwei Speicher-Ränge von DDR3-Speicherbausteinen
zugreift. Dabei benötigt
ein GLB ein spezielles Design eines FB-DIMM-PCB (PCB = Printed Circuit
Board) aufgrund der doppelten Menge von benötigten DQ-Pins der DDR2-Schnittstelle
im Vergleich zu einem herkömmlichen
AMB2.
-
Ein
Speicher-Controller liest bzw. schreibt Speicherdaten als Paar von
Einträgen,
um mit einem GLB zu kommunizieren. Für Southbound-Datenpakete von
einem Speicher-Controller zu dem GLB bedeutet das beispielsweise,
dass ein Datenpaket mit einem 64-Bit-Datenfeld stets von einem zweiten
Datenpaket ebenfalls mit einem 64-Bit-Datenfeld gefolgt wird. Die
Datenrate fFBD pro Bitleitung auf der seriellen
FBD-Verbindung ist dabei stets zumindest näherungsweise das Zwölffache
der DDR2-Datenrate
fDDR2 bzw. das 24-fache der GLB-Kernfrequenz
fcore bzw. des 48-fache der Referenzfrequenz
fref. Dadurch kann mit einem Speichersystem gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung eine Performance von DDR3-Speicherbausteinen
mit DDR2-Speicherbausteinen in punkto Geschwindigkeit erreicht werden.
Beispielsweise kann man mit einem GLB die Performance von DDR3-1333-DRAMs
mit DDR2-667-DRAMs
erreichen. Demnach kann man einen GLB zusammen mit DDR2-FB-DIMMs
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung in den gleichen Systemen einsetzen wie
einen herkömmlichen
AMB2 zusammen mit DDR3-FB-DIMMs.
-
7 zeigt
ein detailliertes Blockschaltbild eines GLB 500 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung.
-
An
einem ersten Eingang 702 als Teil der ersten E/A-Schnittstelle 510 weist
der GLB 500 einen Verstärker 704 auf,
dessen Ausgang mit einem Re-Sync-Block 706, mit einem Data-Merge-Block bzw.
Datenzusammenführungsblock 708 und
einem Deskew-Block bzw. Kompensationsblock 710 verschaltet
ist. Ein Ausgang des Deskew-Blocks 710 ist mit einem Eingang
eines Demultiplexers 712 gekoppelt, dessen Ausgang mit einem
Eingang eines IBIST-Blocks 714 (IBIST = Interconnect Built-In
Self Test = eingebauter Verbindungsselbsttest), einem Eingang eines
Command-Decoders bzw. Befehls-Dekoders und CRC-Check-Blocks 716 und
einem Eingang eines Schreib-FIFOs 718 gekoppelt ist. Der
Block Command-Decoder und CRC-Check-Block 716 ist ferner
mit einem Core-Control-Block bzw. Kern-Kontroll 720 verschaltet,
wobei der Core-Control-Block 720 ferner mit einem Eingang
eines Multiplexers 722 gekoppelt ist. Der Ausgang des Verstärkers 704 ist
ferner mit einem Eingang eines Transparent-Mode-Control-Blocks bzw.
Transparent-Modus-Kontroll-Blocks 724 verbunden,
dessen Ausgang mit dem Multiplexer 722 und einem weiteren
Multiplexer 726 gekoppelt ist. Ein Ausgang des Schreib-FIFOs 718 ist
ebenfalls mit einem Eingang des Multiplexers 726 gekoppelt.
Ferner weist der GLB 500 einen DDR-Zustandskontrollblock 728 auf,
dessen Ausgang mit einem Eingang des Multiplexers 722 verschaltet
ist. Ein Ausgang eines MEMBIST-Blocks 730 (MEMBIST = Memory Built-In
Self Test = eingebauter Speicherselbsttest) ist jeweils mit einem
Eingang der Multiplexer 722 und 726 verbunden.
Ein Ausgang des IBIST-Blocks 714 sowie ein Ausgang eines
Link-Init-Blocks
bzw. Verbindungsinitialisierungsblocks 732 sind mit Eingängen eines
weiteren Multiplexers 734 verbunden, dessen Ausgang mit einem
Eingang des Daten-Merge-Blocks 708 gekoppelt ist. Ein Ausgang
des Daten-Merge-Blocks 708 ist mit einem Ausgangsverstärker 736 verbunden,
dessen Ausgang einen Southbound-Sendeausgang 737 als Teil der
dritten E/A-Schnittstelle 530 des
GLB 500 bildet. Ein Ausgang des Multiplexers 722 bildet
einen Eingang D-Flip-Flop-Kette 738 deren Ausgänge und
invertierender Ausgänge
mit Verstärkern 740 gekoppelt
sind. Ein Ausgang des Multiplexers 726 ist mit Dateneingängen einer
weiteren D-Flip-Flop-Kette 738 verschaltet, wobei nicht
invertierende Ausgänge
der D-Flip-Flop-Kette 738 durch Sendeverstärker 740 verstärkt werden
und eine 144 Bit breite E/A-Schnittstelle 520 zur Kommunikation
mit in 7 nicht gezeigten Speicherbausteinen bilden. Die
144 Bit breite E/A-Schnittstelle 520 ist zum Empfang von
Daten von in 7 nicht gezeigten DRAMs mit
einem Eingangsverstärker 744 gekoppelt
dessen Ausgang mit einer weiteren D-Flip-Flop-Kette 738 verschaltet
ist. Die Ausgänge
der D-Flip-Flop-Kette 738 sind sowohl mit dem Sendeverstärker 736 verschaltet,
als auch mit einem Eingang des MEMBIST-Blocks 730, einem
Eingang eines CRC-Generator-und-Lese-FIFO-Blocks 746 und
dem Eingang eines Multiplexers 748. Ein Ausgang des CRC-Generator-und-Lese- FIFO-Blocks 746 ist
mit einem Eingang des Multiplexers 748 verschaltet. Ferner
bilden ein Ausgang eines Link-Init-Blocks 750 und ein Ausgang
eines Sync-und-Idle-Pattern-Generator-Blocks bzw. Synchronisations-und-Leerlauf-Muster-Generator-Blocks 752 weitere
Eingänge
des Multiplexers 748. Ein Northbound-Empfangseingang 754 als
Teil der dritten E/A-Schnittstelle 530 des
GLB 500 wird von einem Empfangsverstärker 756 verstärkt. Der
Ausgang des Verstärkers 756 ist
mit einem Eingang eines Deskew-Blocks 758 verschaltet, dessen
Ausgang mit einem Demultiplexer 760 verschaltet ist, wobei
der Ausgang des Demultiplexers 760 mit einem Eingang eines
zweiten IBIST-Blocks 762 gekoppelt ist. Ein Ausgang des
IBIST-Blocks 762 bildet einen weiteren Eingang des Multiplexers 748 dessen
Ausgang mit einem Alignment-Block bzw. Anpassungsblock 764 gekoppelt
ist. Der Ausgang des Empfangsverstärkers 756 ist ferner
mit einem Eingang eines Resync-Blocks 766 verbunden, dessen
Ausgang mit einem Eingang eines Data-Merge-Blocks 768 gekoppelt
ist. Weiterhin ist der Ausgang des Verstärkers 756 mit einem
Eingang des Data-Merge-Blocks 768 verschaltet, so wie ein
Ausgang des Alignment-Blocks 764. Ein Ausgang des Data-Merge-Blocks 768 ist
mit einem Sendeverstärker 770 verschaltet,
dessen Ausgang einen Northbound-Ausgang 771 als Teil der
ersten E/A-Schnittstelle 510 des GLB 500 bildet.
Ferner weist der GLB 500 einen PLL-Block 772,
einen System-Management-Bus-Control-Block 774 und einen
JTAG-Control-Block 776 auf.
-
Der
Southbound-Eingang 702 der ersten Ein-/Ausgabe-Schnittstelle 510 zur
Kommunikation mit einem Speicher-Controller
weist zehn differentielle Eingänge
auf. Daten auf den zehn differentiellen Leitungen können durch
Leiterplattenlayouts unterschiedliche Laufzeiten bzw. Phasenverschiebungen
aufweisen. Der Deskew-Block 710 dient zum Kompensieren
dieser Laufzeit bzw. Phasenunterschiede. Mit dem Demultiplexer 712,
welcher ein 1:6 Demultiplexer ist, wird ein empfangener Datenstrom
mit einer ersten Nutzdatenrate fFBD pro
Bitleitung demultiplext, und empfangene Kommando- bzw. CRC- Bits werden anschließend an
den Command-Decoder und CRC-Check-Block 716 weitergeleitet.
Datenbits eines empfangenen Southbound-Pakets werden mit einer zweiten
Nutzdatenrate fDDR2 an den Schreib-FIFO 718 weitergeleitet.
Die FBD-Nutzdatenrate fFBD beträgt zumindest
näherungsweise
das 12-fache der DDR2-Nutzdatenrate
fDDR2.
-
Um
beispielsweise in 7 nicht gezeigte Speicherbausteinen
adressieren zu können,
ist der Ausgang des Multiplexers 722 mit den Dateneingängen der
D-Flip-Flop-Kette 738 verschaltet, deren Ausgänge bzw.
Adressausgänge
und invertierende Ausgänge
bzw. Adressausgänge
mit den Verstärkern 740 gekoppelt sind,
wobei die Adressausgänge
teil der zweiten Ein-/Ausgabe-Schnittstelle 520 sind.
Die Adressausgänge sind
mit jeweiligen Adresseingängen
der in 7 nicht gezeigten Speicherbausteine verbindbar,
und die zweite Ein-/Ausgabe-Schnittstelle 520 ist
aktivierbar, um an der oder denselben gleiche Speicherbausteinadressen oder
Speicherbausteinadressen mit einer vorbestimmten Beziehung zueinander
auszugeben.
-
Verschiedene,
im Vorhergehenden bereits beschriebene und im GLB 500 benötigte Taktraten
werden mittels des PLL-Blocks 772 basierend auf einer in
den PLL-Block 772 eingespeisten Referenzfrequenz fref generiert. Diese Referenzfrequenz fref kann beispielsweise Werte fref =
133 MHz, fref = 167 MHz oder fref =
200 MHz aufweisen. Der PLL-Block 772 kann aus der Referenzfrequenz
fref eine GLB-Kernfrequenz fcore generieren,
welche beispielsweise gleich der doppelten Referenzfrequenz ist.
-
Die über die
Southbound-Pakete empfangenen Nutzdaten, welche in dem Schreib-FIFO 718 zwischengespeichert
wurden, können über den
Multiplexer 726 und die 144 Bit breite zweite E/A-Schnittstelle 520 zur
Kommunikation mit Speicherbausteinen an die DRAMs auf dem FB-DIMM
mit einer zweiten Nutzdatenrate fDDR2 weitergeleitet
werden. Wie ein herkömmlicher
AMB bzw. AMB2 kann auch der GLB 500 mittels der Pass-Through-Logik über den
Southbound-Datenausgang Daten weiterleiten, die für einen
anderen GLB in einer Daisy-Chain von mehreren GLB's gedacht sind. Um
zufällige
oder periodische Phasenverschiebungen auf den einzelnen Leitungen
auszugleichen, können
die weitergeleiteten Daten vorher mittels des Re-Sync-Blocks 706 der
Pass-Through-Logik erneut gesammelt bzw. synchronisiert werden.
-
Von
den DRAMs gelesene Daten werden über
die 144 Bit breite zweite E/A-Schnittstelle 520 mit der DDR2-Datenrate
fDDR2 in den Lese-FIFO 746 geschrieben. Über den
Multiplexer 748 und den Alignment-Block 764 werden
die Daten in einen Northbound-Datenstrom über den
Merge-Block 768 eingefügt.
Dabei beträgt die
FBD-Nutzdatenrate fFBD in Northbound-Richtung
ebenfalls zumindest näherungsweise
das 12-fache der DDR2-Nutzdatenrate fDDR2.
-
Aus
Gründen
der Übersichtlichkeit
wird an dieser Stelle eine weitere Beschreibung der übrigen Blöcke des
GLB 500 weggelassen. Die übrigen Blöcke dienen allgemein zur Erfüllung des
FB-DIMM-Standards.
-
Aufgrund
der 1/12-Relation zwischen DDR2-Datenrate fDDR2 und
FBD-Datenrate fFBD kann mit einem erfindungsgemäßen Speicherpuffer
bzw. GLB für
FB-DIMMs mit DDR2-Speicherbausteinen zumindest näherungsweise die gleiche Performance
erreicht werden wie mit einem herkömmlichen AMB2/FB-DIMM2-System mit
DDR3-Speicherbausteinen. Ein Vorteil von Ausführungsbeispielen der vorliegenden
Erfindung besteht somit darin, dass eine Verfügbarkeit von FB-DIMMs auf zwei
DRAM-Technologie-Lebenszyklen
erweitert werden kann. Es können
also entweder DDR2- oder DDR3-DRAMs für das gleiche Server-System
abhängig
von beispielsweise der Verfügbarkeit
bzw. dem Preis der DRAMs verwendet werden, wobei DDR2-Bausteine
zusammen mit einem GLB gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung auf einem FB-DIMM gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung benutzt werden und DDR3-Bausteine zusammen mit
einem herkömmlichen
AMB2 auf einem FB-DIMM2.
-
FB-DIMMs
mit GLBs gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung können,
wie in 2 angedeutet, zu einem FB-DIMM-Speichersystem
zusammengeschaltet werden, das einen Speicher-Controller 200 sowie
eine Mehrzahl von FB-DIMMs aufweist. Dabei können die FB-DIMMs der Daisy-Chain
sowohl AMB2/DDR3-Bausteine, als auch GLB/DDR2-Bausteine aufweisen,
da die North-/Southbound-Datenraten fFBD bei
beiden Konfigurationen identisch sind.
-
Somit
besteht ein weiterer Vorteil eines Speicherpuffers bzw. GLB's gemäß Ausführungsbeispielen
der vorliegenden Erfindung darin, dass er beispielsweise als Testchip
verwendet werden kann, um eine AMB2-Umgebung, insbesondere die mit
AMB2 erreichbaren FBD-Datenraten, bereits vor der Einführung der AMB2-Technologie
zu testen.
-
Zusammenfassend
soll noch einmal erwähnt
werden, dass ein GLB bzw. ein Speicherpuffer gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung die zweifache Anzahl von DQ-Pins an der
zweiten Ein-/Ausgabe-Schnittstelle zur Kommunikation mit Speicherbausteinen
benötigt
im Vergleich zu einem herkömmlichen
AMB bzw. AMB2-Chip. Demzufolge benötigt man auch ein spezielles
FB-DIMM-PCB, wenn ein Speicherpuffer bzw. GLB gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zum Einsatz kommen soll.
-
Bezüglich obiger
Ausführungsbeispiele
wird noch darauf hingewiesen, dass dieselben natürlich ohne weiteres auf andere
Technologien übertragbar
sind. Beispielsweise ist die differentielle Technik bei der Soutbound-
und Northbound-Datenübertragung
nur exemplarisch. Es können
auch einfache Bitleitungen verwendet werden. Ferner ist eine Übertragung
auf andere Speicherbausteine als DDR#-Chips ebenfalls möglich. Auch
die Anzahl der Lese/Schreidaten-Bitbreite von 128 bzw. 144 Bits
war nur exemplarisch und kann bei anderer Konfiguration der Southbound/Northbound-Busse
auch anders gewählt
werden, um das oben skizziere Datenratenverhältnis von kleiner 1/10 zu erzielen.
-
- 100
- herkömmliches
FB-DIMM
- 110
- herkömmlicher
AMB/AMB2
- 120
- Speicherbausteine
- 130
- erste
Ein-/Ausgabe-Schnittstelle eines AMB/AMB2
- 140
- zweite
Ein-/Ausgabe-Schnittstelle eines AMB/AMB2
- 150
- dritte
Ein-/Ausgabe-Schnittstelle eines AMB/AMB2
- 200
- Speicher-Controller
- 210
- Referenztakt-Generator
- 220
- Referenztakt-Puffer
- 500
- Speicherpuffer
(GLB) für
ein FB-DIMM gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung
- 510
- erste
Ein-/Ausgabe-Schnittstelle eines GLB
- 520
- zweite
Ein-/Ausgabe-Schnittstelle eines GLB
- 530
- dritte
Ein-/Ausgabe-Schnittstelle eines GLB
- 702
- südgerichteter
Eingang eines GLB
- 704
- Verstärker
- 706
- Re-Sync-Block
- 708
- Datenzusammenführungs-Block
- 710
- Kompensierer-Block
- 712
- Demultiplexer
- 714
- IBIST-Block
- 716
- CRC-Check-Block
- 718
- Schreib-FIFO
- 720
- Kern-Kontroll-Block
- 722
- Multiplexer
- 724
- Transparent-Modus-Kontroll-Block
- 726
- Multiplexer
- 728
- DDR-Zustandskontrollblock
- 730
- MEMBIST-Block
- 732
- Verbindungs-Init-Block
- 734
- Multiplexer
- 736
- Ausgangsverstärker
- 737
- südgerichteter-Sendeausgang
- 738
- D-Flip-Flop-Kette
- 740
- Verstärker
- 744
- Eingangsverstärker
- 746
- CRC-Generator-und-Lese-FIFO-Blocks
- 748
- Multiplexer
- 750
- Verbindungs-Init-Block
- 752
- Sync-und-Leerlauf-Muster-Generator-Block
- 754
- nordgerichteter-Empfangseingang
- 756
- Verstärker
- 758
- Kompensierer-Block
- 760
- Demultiplexer
- 762
- IBIST-Block
- 764
- Anpassungs-Block
- 766
- Resync-Block
- 768
- Datenzusammenführungs-Block
- 770
- Sendeverstärker
- 771
- nordgerichteter-Ausgang
- 772
- PLL-Block
- 774
- System-Management-Bus-Control-Block
- 776
- JTAG-Control-Block