-
Die
Erfindung betrifft eine Einrichtung zum Behandeln binärer Daten,
mit mindestens einer Übertragungsstrecke,
die bzw. deren jede zwischen einer Datenquelle und einer individuell
zugeordneten Datensenke angeordnet ist, um einen von der Quelle
gelieferten seriellen Datenbitstrom in eine Folge aus n-Bit-Datenwörtern im
Parallelformat umzuwandeln und diese Folge an die Datensenke zu
liefern. Ein wichtiges, jedoch nicht ausschließliches Anwendungsgebiet der
Erfindung ist die Übertragung
von Schreibdaten, die als serielle Bitströme mit sehr hoher Datenrate
(z. B. im Bereich von einem oder mehreren Gigabits/Sekunde) von
einem Speichercontroller geliefert werden, an ein Speichermedium,
z. B. an einen integrierten DRAM-Baustein
oder an Speichermodule, die jeweils mehrere solche Bausteine enthalten.
-
Die Übertragungsstrecke
zwischen Datenquelle z. B. einem Controller und Datensenke z. B.
einem DRAM sollte eine möglichst
geringe Latenz zeigen, d. h. die Zeit zwischen dem Empfang der seriellen
Daten am Eingang der Strecke und der Ankunft der Daten als parallelisierte
Datenwörter
an der Datensenke sollte kurz sein. Eine Aufgabe der Erfindung ist
es, diese Forderung zu erfüllen.
-
Die Übertragungsstrecke
enthält
notwendigerweise Serien/-Parallel-Umsetzer,
der den seriellen Bitstrom in die parallelisierten n-Bit-Wörter umsetzt.
Jedes dieser Datenwörter
soll einen bestimmten "Frame" des seriellen Bitstroms
wiedergeben, d. h. einen bestimmten, aus n aufeinander folgenden
Bits bestehenden Abschnitt des seriellen Bitstroms. Um die Latenz
der gesamten Übertragungsstrecke
gering zu halten, sollte auch die Latenz des Demultiplexers möglichst
gering sein. Um dies zu erreichen, ist eine Ausführungsform der Erfindung gemäß dem Patentanspruch
1 dadurch gekennzeichnet, dass der Serien/Parallel-Umsetzer folgendes enthält:
- – einen
n-auf-1-Demultiplexer, der so ausgebildet und steuerbar ist, dass
die aufeinander folgenden Datenbits des seriellen Bitstroms (SBS)
nacheinander in Abständen
gleich einer Bitperiode TB des seriellen
Bitstroms zyklisch an n Datenausgängen erscheinen und am jeweiligen
Datenausgang bis zum erneuten Erscheinen eines Datenbit am betreffenden
Datenausgang verriegelt bleiben;
- – eine
Neuverriegelungsschaltung mit Verriegelungselementen, welche die
Signale von denjenigen Datenausgängen
des Demultiplexers empfangen, an denen die ersten k Datenbits jedes
Zyklus erscheinen, und welche jeweils zu einem Zeitpunkt aktiviert
werden, der zwischen dem Beginn der Verriegelung des letzten Datenbit
und dem Ende der Verriegelung des ersten Datenbit des betreffenden
Zyklus im Demultiplexer liegt, wobei 1 ≤ k < n ist.
-
Ein
erfindungsgemäß ausgebildeter
Serien/Parallel-Umsetzer hat den Vorteil, dass seine Latenz extrem
kurz ist. An den n parallelen Datenausgängen des 1-auf-n-Demultiplexers
erscheinen die n Datenbits jedes n-Bit-Datenwortes zeitlich gestaffelt
in Abständen
von jeweils einer Bitperiode TB und jeweils
für die
Dauer von n Bitperioden. Das erste Bit jedes Datenwortes erscheint
praktisch unmittelbar nach seinem Empfang, und das n-te (also letzte)
Bit erscheint bereits n-1 Bitperioden später. Durch die erfindungsgemäße Neuverriegelungsschaltung
wird das Zeitfenster, innerhalb dessen alle n Bits parallel abgetastet
werden können,
merklich vergrößert.
-
Merkmale
besonderer Ausgestaltungen und Weiterbildungen einer erfindungsgemäßen Einrichtung sind
in nachgeordneten Patentansprüchen
gekennzeichnet. Diese Ausgestaltungen und Weiterbildungen betreffen
eine Pufferschaltung und eine zusätzliche justierbare Verzögerungsschaltung
zur Synchronisierung der parallelisierten Frames mit dem Taktbetrieb
der Datensenke. Andere Weiterbildungen betreffen die Kombination
mehrerer Übertragungsstrecken
zur synchronisierten Übertragung
mehrerer serieller Bitströme
als Folgen parallelisierter Frames an mehrere parallel betriebene
Datensenken, z. B. an die einzelnen DRAM-Bausteine von Speichermodulen.
Alle diese Ausführungsformen
zeichnen sich dadurch aus, dass ihr Beitrag zur Latenz der Datenübertragung
gering ist.
-
Die
Erfindung und ihre besonderen Ausgestaltungen und Weiterbildungen
werden nachstehend an Ausführungsbeispielen
anhand von Zeichnungen näher
erläutert.
-
1 zeigt
die Ausbildung des Demultiplexers und der Neuverriegelungsschaltung
in einer erfindungsgemäßen Übertragungsstrecke
zwischen eine Datenquelle und einer Datensenke;
-
2 ist
ein Zeitdiagramm von Signalen, die an verschiedenen Stellen der
in 1 gezeigten Schaltungen auftreten;
-
3 zeigt
die Ausbildung einer in der Übertragungsstrecke
enthaltenen Pufferschaltung;
-
4 ist
ein Zeitdiagramm der an verschiedenen Stellen der Pufferschaltung
nach 3 auftretenden Signale;
-
5 zeigt
die Ausbildung einer in der Übertragungsstrecke
enthaltenen justierbaren Verzögerungsschaltung;
-
6 zeigt
die Kombination mehrerer Übertragungsstrecken
zur Datenübertragung
zwischen mehreren Ausgängen
einer Datenquelle und jeweils zugeordneten Datensenken;
-
7 zeigt
das Schema einer Anordnung zur Datenübertragung zwischen mehreren
Ausgängen
einer Datenquelle und jeweils zugeordneten Datensenken innerhalb
jedes Moduls einer Mehrzahl von Modulen;
-
8 zeigt
die Ausbildung einer Schaltung zur Regenerierung des seriellen Bitstroms
in einzelnen Übertragungsstrecken
der Anordnung nach 7.
-
In
den Figuren und in der nachstehenden Beschreibung sind gleiche und
gleichartige Elemente mit jeweils den selben Bezugszeichen benannt,
meist zusammen mit einem nachgestellten alphanumerischen Symbol
(Dezimalzahl oder Kleinbuchstabe), das eine laufende Nummer zur
näheren
Identifizierung des betreffenden Elementes angibt, wobei die das
Zeichen "i" eine beliebige laufende
Nummer bedeutet. Ein Doppelpunkt ":" zwischen
zwei Nummern ist jeweils zu lesen als das Wort "bis".
Das Schriftzeichen "..." ist je nach Kontext zu
lesen als "bis" oder "und folgende"
-
In
der 1 ist links unten als Block 100 eine
Datenquelle dargestellt, die einen seriellen Bitstrom über eine
Ausgangs-Datenleitung 110 an
einen Eingang X einer Übertragungsstrecke 200 liefert,
deren Ausgang Y mit dem Dateneingang einer Datensenke 300 verbunden
ist. Der über
die Datenleitung 110 gelieferte Bitstrom besteht aus einzelnen
Datenbits, die mit der Periode TB (Bitperiode) aufeinander folgen,
wobei die Zeitsteuerung der Datenabtastung in der Datenquelle 100 durch
ein Systemtaktsignal CLS der Frequenz fB =
1/TB erfolgt.
-
Die Übertragungsstrecke
soll dafür
sorgen, dass aufeinander folgenden Abschnitte ("Frames") von jeweils n Bits des seriellen Bitstroms
als aufeinander folgende n-Bit-Wörter
im Parallelformat an den n-Bit-Paralleleingang der Datensenke 300 gelegt
werden, und zwar entsprechend einem "Frametakt", dessen Periode (Frameperiode) gleich
dem n-fachen der Bitperiode TB des seriellen
Bitstroms ist. Das heißt,
der Frametakt hat die Frequenz fF = 1/(n·TB).
-
In
der Übertragungstrecke 200 muss
also eine Serien/Parallel-Umsetzung
erfolgen. Hierzu enthält
die Übertragungsstrecke
einen 1-auf-n-Demultiplexer 20, der die n aufeinander folgenden
Datenbits eines jeden Frame des seriellen Bitstroms mittels aktiver
Flanken eines Eingabetaktsignals CLB abtastet und auf n zugeordneten
Ausgangsleitungen des Demultiplexers 20 bereitstellt.
-
Die
Laufzeit des Bitstroms von der Quelle 100 zum Eingang X
der Übertragungsstrecke 200 ist
abhängig
von den physikalischen Eigenschaften der Datenleitung 110.
Zu diesen Eigenschaften tragen die Länge, die spezifischen elektrischen
Parameter und auch die Art der Verlegung der Leitung bei, ebenso
auch die jeweiligen Umgebungseinflüsse. Da der Komplex aller Leitungseigenschaften
und somit auch die Laufzeit nicht genau vorhersagbar ist und auch
während
des Betriebs innerhalb eines gewissen Toleranzbereichs schwanken
kann, ist dem im Demultiplexer 20 eine Eingangsschaltung 10 vorgeschaltet.
Diese Schaltung (sogenannte "Data-Clock-Recovery"-Schaltung) enthält einen
Phasenregelkreis 11, der den eingangsseitigen Bitstrom CBS
und das Systemtaktsignal CLS empfängt und an seinem Ausgang das
Eingabetaktsignal CLB und den seriellen Bitstrom SBS relativ zueinander
mit einer Phasenlage erzeugt, die geeignet ist für eine zuverlässige Abtastung
der Datenbits des seriellen Bitstroms.
-
Die
eigentliche Serien/Parallel-Umsetzung im Demultiplexer 20 erfolgt
mittels eine Gruppe von n Latchelementen 22-1, 22-2,
... 22-n und einer Schreibsteuerschaltung 23.
Jedes der Latchelemente ist jeweils genau einem der n Bits jedes
Frame zugeordnet. In 1 ist der Demultiplexer 20 für den Beispielsfall
n = 4 gezeichnet, also enthaltend vier Latchelemente 22-1, 22-2, 22-3, 22-4.
Jedes Latchelement 22-i hat einen Dateneingang D zum Empfang
des seriellen Bitstroms SBS, einen Takteingang C zum Empfang des
Eingabetaktsignals CLB und einen Aktivierungseingang E zum Empfang
eines zugeordneten Aktivierungsimpulses ENi von einem zugeordneten
Ausgang der Schreibsteuerschaltung 23. Jedes Latchelement 22-i ist
so ausgebildet, dass es ein an seinem Dateneingang D anstehendes
Datenbit an seinem Datenausgang Q verriegelt, sobald eine aktive
Flanke des Eingabetaktsignals CLB bei gleichzeitiger Anwesenheit
eines zugeordneten Aktivierungsimpulses ENi erscheint.
-
Zur
näheren
Erläuterung
der Arbeitsweise des Demultiplexers 20 sei auf die 2 Bezug
genommen, die über
einer gemeinsamen Zeitachse den Verlauf verschiedener Signale zeigt.
-
Die
erste (oberste) Zeile in 1 zeigt den seriellen Bitstrom
SBS, wie er an den Dateneingängen
D aller Latchelemente 22-1:4 erscheint. Die Grenzen der
Bitperioden TB sind durch dünne
vertikale gestrichelte Linien angedeutet, und die Grenzen der Frames
sind durch fette vertikale gestrichelte Linien angedeutet. Beim hier
diskutierten Beispiel enthält
jeder Frame n = 4 aufeinander folgende Bits, die gemäß ihrer
zeitlichen Reihenfolge mit B1, B2, B3, B4 bezeichnet sind. Jede
Bitperiode hat am Anfang und Ende jeweils eine Übergangszeit, die in der üblichen
Weise durch schräge
Flanken veranschaulicht ist und in welcher der Binärwert des
betreffenden Bits nicht eindeutig erfasst werden kann, also "ungewiss" ist. Eine zuverlässige Abtastung
der Bits mittels der Latchelemente 22-1:4 kann nur in einem
begrenzten Zeitfenster zwischen diesen Übergangszeiten erfolgen, also
in einem begrenzten Zeitfenster innerhalb der "Gültigkeitsdauer" des Bits.
-
In
der zweiten Zeile ist das Eingabetaktsignal CLB gezeigt, das von
der Synchronisierschaltung 21 aus dem Systemtaktsignal
CLS abgeleitet wird. Diese Schaltung 21 erzeugt das Eingabetaktsignal
CLB mit einer solchen Phase, dass die mit der Periode TB aufeinander
folgenden aktiven Flanken des Eingabetaktsignals (hier die steigenden
Flanken) jeweils zu einem Zeitpunkt erscheinen, der in jedem Fall,
auch wenn sich die Phase des seriellen Bitstroms innerhalb gewisser
Toleranzgrenzen verschiebt, innerhalb der Gültigkeitsdauer eines jeweils
zugeordneten Bits bleibt und außerdem
einen gewissen Mindestabstand sowohl vom Beginn als auch vom Ende
dieser Gültigkeitsdauer
hat. Die Einhaltung dieser Mindestabstände ist notwendig in Anbetracht
der Natur der Latchelemente 22-1:4, denn diese Elemente
erfordern für
ihren Schaltbetrieb eine gewisse Setup-Zeit τs vor
der Taktflanke und eine ge wisse Haltezeit τH nach
der Taktflanke.
-
Die
geeignete Einstellung der relativen Phase zwischen dem Eingabetakt
CLB und dem seriellen Bitstrom SBS kann während eines Initialisierungsvorgangs über den
Phasenregelkreis 11 unter schrittweiser Veränderung
der Taktphase und Überwachung
der Abtastqualität
gefunden werden. Die Schritte eines Initialisierungsverfahrens,
mit welchem noch andere Phaseneinstellungen entlang der Übertragungsstrecke
vorgenommen werden können,
wird an späterer
Stelle beschrieben werden. In 2 ist als
Beispiel eine Einstellung dargestellt, bei welcher die Zeitpunkte
tA der aktiven Flanken des Eingabetaktsignals
jeweils relativ kurz vor dem Ende der Gültigkeitsdauer der Datenbits
liegen, so dass die Setup-Zeit τs und die Haltezeit τH gerade
noch eingehalten wird.
-
Die
Schreibsteuerschaltung 23 empfängt das Eingabetaktsignal CLB
und hat n = 4 Ausgänge,
deren jeder mit dem Aktivierungseingang EN eines individuell zugeordneten
Latchelementes der Gruppe 22-1:4 zugeordnet ist. Über ihre
vier Ausgänge
versorgt die Schreibsteuerschaltung 23 die Aktivierungseingänge EN der Latchelemente 22-1:4
selektiv nacheinander im Rhythmus des Eingabetaktsignals jeweils
mit einem Aktivierungsimpuls EN bestimmter Dauer. Diese Aktivierungsimpulse
sind in den nächsten
vier Zeilen der 2 dargestellt und von EN1 bis
EN4 nummeriert, gemäß ihrer
Zuordnung zu den Latchelementen 22-1:4.
-
Das
erste Bit eines jeden Frame, also das Bit B1, soll im "ersten" Latchelement 22-1 abgetastet
werden und an dessen Datenausgang Q für die Dauer TF der Frameperiode
verriegelt werden. Hierzu muss die Schreibsteuerschaltung 23 den "ersten" Aktivierungsimpuls
EN1 jedes Zyklus an das Element 22-1 legen, und zwar mit
einer Dauer, die spätestens
zum Zeitpunkt tA1 – τs beginnt
und frühestens
zum Zeitpunkt tA1 + τH endet, wobei
tA1 der Zeitpunkt der aktiven Flanke des
Taktsignals CLB für
die Abtastung des ersten Bit B1 ist. Der Beginn des Im pulses EN1
muss allerdings später
sein als der Zeitpunkt tA1 – TB + τH, und das Ende des Impulses muss früher sein
als der Zeitpunkt tA1 + TB – τs.
Wenn alle diese Bedingungen eingehalten werden, ist sichergestellt,
dass der Verriegelungsvorgang für
das Bit B1 am Datenausgang Q des Latchelementes 22-1 zum Zeitpunkt
tA1 beginnt.
-
Beim
gezeigten Beispiel gemäß 2 beginnt
der erste Aktivierungsimpuls EN1 an der vorderen Bitgrenze des ersten
Bit B1 eines Frame des seriellen Bitstroms und endet mit der hinteren
Bitgrenze dieses Bit. Seine Dauer ist also gleich TB.
Der Signalverlauf auf der Ausgangsleitung DQ1 des Latchelementes 22-1 ist
in der entsprechend bezeichneten Zeile der 2 dargestellt.
Das dort erscheinende Bit B1 des laufenden Frame Fi bleibt verriegelt,
bis zum Zeitpunkt tA1 + TF die
Verriegelung des ersten Bit des nächsten Frame Fi + 1 beginnt.
-
In
der gleichen Weise wie vorstehend beschrieben, läuft zeitgestaffelt in Abständen von
jeweils gleich TB die Verriegelung der nachfolgenden
Bits B2:4 des laufenden Frame Fi in den Latchelementen 22-2:4,
unter zeitgestaffelter Aktivierung dieser Elemente durch die Aktivierungsimpulse
EN2:4. Die Signalverläufe
auf den Ausgangsleitungen DQ2:4 der Latchelemente sind ebenfalls
in den entsprechend bezeichneten Zeilen der 2 dargestellt.
-
Die
Schreibsteuerschaltung 23 kann einen Zähler enthalten, der zyklisch
mit der Frequenz des Eingabetaktsignals CLB jeweils über n =
4 aufeinander folgende Zählwerte
schrittgeschaltet wird. Der Aktivierungsimpuls EN1 wird für die Dauer
der Existenz des ersten Zählwerte
am zugeordneten Zählwertausgang
erzeugt. Der Aktivierungsimpuls EN2 wird für die Dauer der Existenz des
zweiten Zählwertes
am zugeordneten Zählwertausgang
erzeugt, usw.
-
Im
Nutzbetrieb des Serien/Parallel-Umsetzers 20 müssen die
Zyklen der Schreibsteuerschaltung 23 derart mit den Frames synchronisiert
sein, dass der erste Aktivierungsimpuls EN1 wirklich auf das erste
Bit eines Frame des seriellen Bitstroms SBS trifft. Diese Synchronisierung
kann mittels einer Initialisierungs-Decoders 12 erfolgen,
der in 1 innerhalb der Eingangsschaltung 10 gezeichnet
ist. Während
einer Initialisierungsphase wird von der Datenquelle 100 ein
Trainingsmuster gesendet, d. h. ein serieller Bitstrom, aus welchem
sich eine Markierung MRK decodieren lässt, die einmalig das letzte
Bit eines einzigen Frame identifiziert. Beim Erkennen dieser Markierung
MRK bringt der Decoder 12 die Schreibsteuerschaltung 23 in
einen "Nullzustand", so dass mit der
nächstfolgenden
Eingabetakt die sich zyklisch wiederholende Folge der Aktivierungsimpulse
EN1:n beginnt.
-
Nach
gültiger
Verriegelung des letzten Bit eines jeden Frame, also des Bit B4
auf der Leitung DQ4, ergibt sich die Gelegenheit, alle Bits B1:4
gleichzeitig an den Ausgangsleitungen DQ1:4 abzutasten, um sie als 4-Bit-Wort
im Parallelformat weiterzuleiten. Diese Gelegenheit besteht nur
während
eines begrenztes Zeitfensters τp, nämlich
nur so lange, wie alle n Bits B1:4 des jeweils selben Frame gleichzeitig
auf den Leitungen DQ1:4 gültig
sind. In einer möglichen
Ausführungsform
der Erfindung kann zur Parallelabtastung eine Abtastschaltung verwendet
werden (nicht gezeigt), die auf ein Frametaktsignal anspricht, das
aus dem Eingabetaktsignal CLB abgeleitet ist und aktive Abtastflanken
innerhalb des Zeitfensters τp hat.
-
Der
in 1 dargestellte Demultiplexer 20 hat den
Vorteil, dass die Latenz vom Empfang des letzten Bit eines Frame
bis zur Parallelabtastung aller Bits des betreffenden Frame äußerst kurz
ist. Bei herkömmlichen
Serien/Parallel-Umsetzern, die mit einer Kaskade mehrerer aufeinander
folgender Umsetzerstufen in einer Art Baumschaltung arbeiten, ist
die Latenz mehrfach so lang.
-
Das
erwähnte
Zeitfenster τp für
die Parallelabtastung der Bits B1:4 an den Leitungen DQ1:4 ist relativ schmal
und wird umso schmäler
je höher
die Frequenz fB des Eingabetaktes ist. Zur
Parallelabtastung innerhalb dieses schmalen Fensters würde man
Latchelemente mit äußerst kurzen
Setup- und Haltezeiten benötigen;
außerdem
würde sich
die Latenz für
das jeweils späteste
Bit erhöhen.
-
In
einer Ausführungsform
der Erfindung wird durch relativ einfache Maßnahmen dafür gesorgt, dass ein breiteres
Zeitfenster für
die Parallelabtastung zur Verfügung
steht und dennoch die Latenz gering bleibt. Allgemein gesprochen,
wird dies dadurch erreicht, dass die k ersten Bits B1:k (mit 1 ≤ k < n) vom Ausgang
des Demultiplexers 20 innerhalb einer Schaltung 30 neu
verriegelt werden, und zwar zu einem Zeitpunkt innerhalb einer Zeitspanne,
die zwischen dem Beginn der Gültigkeit
des k-ten Bit Bk und dem Ende der Gültigkeit des ersten Bit B1
liegt. Die Bits B1:k erscheinen dann gleichzeitig ab dem besagten
Zeitpunkt an den Ausgängen DQ'1:k der Verriegelungsschaltung 31,
also später
als an den Ausgängen
DQ1:k des Demultiplexers 20, jedoch mit unveränderter
Gültigkeitsdauer.
Hierdurch wird das Zeitfenster für
die Parallelabtastung aller n Bits B1:n eines Frame wesentlich breiter.
-
Die 1 zeigt
eine geeignete Schaltung 30 zur Realisierung dieses Prinzips
in Verbindung mit dem Demultiplexer 20, wobei k = n/2 =
2 ist. Die "ersten" k Ausgänge Demultiplexers,
also die Leitungen DQ1 und DQ2, führen zu einem Block aus Verriegelungselementen 31,
die an ihrem Takteingang ein Frametaktsignal CLF empfangen, dessen
Wellenform in der entsprechend bezeichneten Zeile der 2 dargestellt
ist und das von einem Frametaktgeber 24 erzeugt wird. Das
Frametaktsignal CLF ist eine Folge von Impulsen, deren Folgefrequenz
gleich fF ist und deren Rückflanken
(im gezeigten Fall die fallenden Flanken) jeweils zu einem Zeitpunkt
tJ erscheinen, kurz nachdem das k-te Bit
(also das zweite) Bit B2 eines Frame auf der Leitung DQ2 gültig geworden
ist. Mit diesen Flanken werden die Verriegelungselemente 31 getaktet,
so dass die k ersten Bits B1:2 eines Frame ab dem Zeitpunkt tJ auf den Ausgangs leitungen D'1:2 der Verriegelungselemente 31 verriegelt werden,
bis die (fallende) Rückflanke
des nächsten
Frametaktimpulses erscheint, mit welcher die ersten k Bits des nächsten Frame
an den Ausgängen
der Verriegelungselemente 31 verriegelt werden. Die übrigen Bits B3:4
des Frame, die auf den Leitungen DQ3:4 erscheinen, werden unverändert durch
die Schaltung 30 hindurchgeleitet.
-
Beim
gezeigten Beispiel werden die (fallenden) Rückflanken der Frametaktimpulse
durch die Rückflanke
des jeweils k-ten Aktivierungsimpulses EN2 ausgelöst, sie
erscheinen um eine kurze Reaktionszeit τR verzögert, wie
in 2 gezeigt. Die Zeitlage der hiermit "neu verriegelten" Bits B1:2 auf den
Leitungen DQ'1:2 ist
in 2 in den Zeilen direkt unterhalb des Frametaktsignals
CLF dargestellt. Wie man leicht erkennt, steht für die Parallelabtastung aller
Bits B1:4 eines Frame nunmehr ein Zeitfenster τP' zur Verfügung, das
mit der Gültigkeit
des n-ten Bit B4 des Frame auf der Leitung DQ4 beginnt. Dieses Zeitfenster
endet erst mit dem Ende der Gültigkeit
des (k+1)-ten Bit B3 auf der Leitung DQ3. Es ist somit bedeutend
länger
als das Zeitfenster τp.
-
Beim
gezeigten Beispiel werden die (steigenden) Vorderflanken der Frametaktimpulse
CLF durch die Rückflanke
des jeweils k-ten Aktivierungsimpulses ENk ausgelöst, also
durch die Rückflanken
der Aktivierungsimpulse EN2, und erscheinen ebenfalls um die Reaktionszeit τR verzögert. Hierdurch
ergibt sich vorteilhafterweise das Tastverhältnis 1/2 für die Frametaktimpulse, d.
h. die fallenden Flanken erscheinen eine halbe Frametaktperiode
später
als die steigenden Flanken. Zur Erzeugung dieses Frametaktsignals
CLF kann, wie als Beispiel in 1 gezeigt,
ein SR-Flipflop 24 verwendet werden, dessen Ansprechzeit
die oben erwähnte Reaktionszeit τR definiert.
Der Setzeingang S des Flipflop 24 wird durch die (fallenden)
Rückflanken
des jeweils n-ten Aktivierungsimpulse EN4 getriggert, und der Rücksetzeingang
R des Flipflop 24 wird durch die (fallenden) Rückflanken
des jeweils k-ten Aktivierungs impulses EN2 getriggert wird.
-
Vorstehend
wurde zur einfachen Illustrierung der Beispielsfall einer Framelänge n =
4 beschrieben, und für
die Anzahl der "neu
verriegelten" Bits
wurde die Zahl k = n/2 gewählt.
In der Praxis, z. B. wenn es sich um die Datenübertragung von oder zu Speichermodulen
handelt, wird n meist deutlich größer sein. Die Zahl k kann auch
größer oder
kleiner sein als n/2. Der Vorteil der beschriebenen "Neuverriegelung", nämlich das
verbreiterte Abtastfenster τP',
ergibt sich mehr oder weniger bei jeder Zahl 1 ≤ k < n. Die Wahl k = n/2 ist nicht zwingend,
jedoch optimal. Eine solche Wahl ist natürlich nur möglich, wenn n eine gerade Zahl
ist, was in den meisten praktischen Fällen gilt; andernfalls wäre für k die
Zahl (n + 1)/2 oder (n-1)/2 optimal.
-
Allgemein
gesagt bilden die k Ausgangsleitungen DQ'1:k des Latchregisters 31 und
die n-k Ausgangsleitungen DQ(k + 1):n des Demultiplexers 20 ein
Leitungsbündel
DF, an welchem jeder Frame im Parallelformat innerhalb eines relativ
breiten Zeitfensters τP' abgetastet
werden kann. Für
diese Abtastung können
die in der oben beschriebenen Weise steigenden Flanken der Frametaktimpulse
CLF verwendet werden, denn diese Flanken erscheinen immer innerhalb
des besagten Zeitfensters.
-
Der
Empfang der Frames an der Datensenke 300 wird durch ein
Taktsignal CLY getaktet, das gemäß der 1 von
einem Taktgeber 310 aus dem Systemtaktsignal CLS abgeleitet
wird. Im Falle, dass mehrerer Datensenken über jeweils eine individuell
zugeordnete Übertragungsstrecke
parallel mit Daten versorgt werden (wie später noch anhand der 6 und 7 beschrieben
wird) ist das Taktsignal CLY allen Datensenken gemeinsam.
-
In
der Praxis wird der aus dem Demultiplexer 20 kommende Frametakt
nicht synchron mit der Frametaktung der zugeordneten Datensenke 300 sein.
Das heißt,
die Phase des "Senken- Frametaktes" CLY kann sich gegenüber der
Phase des "Demultiplexer-Frametaktes" CLF in nicht vorhersagbarer
Weise verschieben. Aus diesem Grund ist es vorteilhaft, zwischen
dem Leitungsbündel
DF und dem Dateneingang der Datensenke eine Pufferschaltung vorzusehen,
die in 1 als Block 40 gezeichnet ist und beide
Taktsignale CLF und CLY empfängt.
Diese Pufferschaltung kann ein herkömmliches FIFO-Register enthalten,
dessen Schreibzeiger durch den Demultiplexer-Frametakt CLF gesteuert
wird und dessen Lesezeiger durch den Senken-Frametakt CLY gesteuert
wird.
-
In
einer vorteilhaften Ausgestaltung der Erfindung enthält die Pufferschaltung 40 ein
FIFO-Register, das eine Mehrzahl q ≥ 2 Speicherplätze enthält, deren jeder zur Aufnahme
der n Datenbits eines Frame ausgelegt ist. Dieses FIFO-Register
wird durch einen Nebenschlussweg ("Bypass") überbrückt, wenn
der Lesezeiger und der Schreibzeiger einander nahe kommen. Dies
erlaubt es, die zusätzliche
Latenz der Pufferschaltung 40 im Datenpfad zu verringern.
-
In
einer besonders vorteilhaften Ausführungsform der Pufferschaltung 40,
die in 3 dargestellt ist und nachstehend als Beispiel
beschrieben wird, enthält
das FIFO-Register nur q = 2 Speicherplätze. Die 4 zeigt
in einem Diagramm über
einer gemeinsamen Zeitachse die Signale und Logikwerte, die während eines Betriebs
der Pufferschaltung 40 an verschiedenen Orten der Schaltung
erscheinen. Manche Signale sind als Wellenform mit abwechselnd "hohem" und "niedrigem" Pegel gezeichnet.
Für das
hier beschriebene Beispiel gilt die Übereinkunft, dass der hohe
Pegel den Logikwert "1" repräsentiert
und der niedrige Pegel den Logikwert "0" repräsentiert.
Dementsprechend sind alle Binärsignale
in 4 auch als aufeinander folgende Kästchen mit
der fett geschriebenen Inschrift 0 oder 1 dargestellt. In der nachfolgenden
Beschreibung sind Ziffern oder Zahlen, wenn sie Logikwerte bzw.
Binärcodes
repräsentieren,
jeweils in "Anführungszeichen" gesetzt.
-
Das
Diagram nach 4 ist eingeteilt in vier Abschnitte,
die, einer unter dem anderen, über
derselben Zeitachse gezeichnet sind. Der erste (oberste) Abschnitt
veranschaulicht den Schreibbetrieb an der Pufferschaltung 40,
die anderen Abschnitte veranschaulichen den Lesebetrieb für drei unterschiedliche
Situationen.
-
Die
vier ersten Zeilen des obersten Diagramm-Abschnittes der 4 zeigen
noch einmal den Verlauf der Signale von den vier Ausgängen DQ'1, DQ'2, DQ3, DQ4 der Neuverriegelungsschaltung 30 (1),
und unmittelbar darunter ist die Folge der Frames Fi, Fi + 1, ...
gezeigt, wie sie über
das von der Neuverriegelungsschaltung 30 kommende Leitungsbündel DF
jeweils im Parallelformat als n-Bit-Wörter geliefert werden. Diese Frames
sind jeweils innerhalb eines Zeitfensters der Breite τP' gültig (vgl. 2).
Die dazwischen liegenden Intervalle, in denen eine Parallelabtastung
aller n Bits eines Frame nicht möglich
ist, sind durch schwarze Bereiche symbolisiert. Diese "DF-Framefolge" wird am Eingang
der Pufferschaltung 40 empfangen, zusammen mit den Frametaktimpulsen
CLF, die vom Frametaktgeber 24 des Demultiplexers 20 (1)
erzeugt werden. Diese Taktimpulse CLF bestimmen den "Schreibtakt" für das in
der Pufferschaltung 40 enthaltene FIFO-Register. Wie zuvor beschrieben wurde,
erscheinen die (steigenden) Vorderflanken dieser Impulse jeweils
während der
Gültigkeitszeit τP' eines Frame und
sind um eine halbe Frametaktperiode verzögert gegenüber den (fallenden) Rückflanken.
-
Die
Pufferschaltung 40 enthält
einen Schreibzähler 41,
der durch das Schreibtaktsignal CLF an seinem Takteingang C gesteuert
wird. Der Schreibzähler 41 zählt zyklisch über jeweils
2q – 1
= 4 Zählwerte
von 0 bis 3 und enthält
zwei Zählwertdecoder
(nicht gezeigt), einen für
die Codierung dieser Zählwerte
im Dualzahlen-Code "00", "01", "10", "11" und einen für die Codierung
im Gray-Code "00", "01", "11", "10". An einem ersten Ausgang
liefert der Zähler 41 ein
1-Bit-Signal WRA, welches nur das niedrigstwertige Bit (LSB, also
das 20 Bit) des Dualzahlen-Codes wiedergibt. An einem zweiten Ausgang
liefert der Zähler 41 ein
2-Bit-Signal WRB, welches die beiden Bits des Gray-Codes im Parallelformat
wiedergibt.
-
Eine
Besonderheit der Pufferschaltung 40 nach 3 besteht
darin, dass der Schreibzähler 41 nicht durch
die (steigenden) Vorderflanken des Schreibtaktes CLF getaktet werden,
die in die Gültigkeitszeiten
der Frames fallen, sondern durch (fallenden) Rückflanken, also um eine halbe
Frameperiode versetzt. In 4 ist diejenige
Rückflanke
der Schreibtaktimpulse CLF, welche den Zähler 41 auf den "ersten" Zählwert "01" setzt, mit einem
schwarzen Punkt markiert, und der nachfolgende Frame der DF-Framefolge
ist willkürlich
als Frame Fi bezeichnet.
-
Wie
gesagt, enthält
die Pufferschaltung 40 zwei Registerstufen 43A und 43B,
deren jede einen n-Bit-Dateneingang D zum Empfang der der n-Bit-Parallelwörter der
DF-Framefolge hat und einen Latcheingang L aufweist. Jede dieser
Registerstufen ist so beschaffen, dass sie die am Dateneingang D
empfangenen Datenwörter
zu ihrem Datenausgang Q durchlässt,
solange ein am Latcheingang empfangenes Latchsignal aktiv ist, d.
h. den Logikwert "1" hat. Sobald das
Latchsignal auf seinen inaktiven Logikwert "0" geht,
wird das momentan empfangene Datenwort am Datenausgang Q für die Dauer
des aktiven Zustandes des Latchsignals verriegelt.
-
Das
Latchsignal LTA für
die Registerstufe 43A sind Impulse, die in einem Gatter 42A durch
UND-Verknüpfung
der invertierten Version des Ausgangsignals WRA des Schreibzählers 41 mit
dem Frametaktsignal CLF erzeugt werden. Das Latchsignal LTB für die Registerstufe 43B sind
Impulse, die in einem Gatter 42B durch UND-Verknüpfung des
Ausgangsignals WRA des Schreibzählers 41 mit
dem Frametaktsignal CLF erzeugt werden. Die Latchimpulse LTA entsprechen
denjenigen Impulsen des Frametaktsignals CLF, welche den ungeradzahlig
nummerierten Frames ... Fi – 1,
Fi + 1, Fi + 3, ... zugeordnet sind ("ungerade" Frames), und die Latchimpulse LTB entsprechen
denjenigen Impulsen des Frametaktsignals CLF, welche den geradzahlig
nummerierten Frames ... Fi – 2,
Fi, Fi + 2, ... zugeordnet sind ("gerade" Frames). Somit erscheint am Datenausgang der
Registerstufe 43A eine Framefolge DFA, welche nur die "ungeraden" Frames enthält, und
am Datenausgang der Registerstufe 43B erscheint eine Framefolge
DFB, welche nur die "geraden" Frames enthält. Die Framefolgen
DFA und DFB erscheinen um eine Frametaktperiode TF zueinander versetzt,
und die Gültigkeitsdauer
der Frames in diesen Framefolgen ist jeweils länger als TF,
so dass sich gerade und ungerade Frames zeitlich überlappen.
-
Das
zwischen "0" und "1" wechselnde Ausgangssignals WRA des
Schreibzählers 41 bildet
somit über die
UND-Gatter 42A, 42B den Schreibzeiger für das zweistufige
Register 43A, 43B. Um dieses Register als FIFO-Register
zu betreiben, ist ein erster 2-auf-1-Multiplexer 44 vorgesehen,
dessen Schaltzustand durch einen Lesezeiger RDA gesteuert wird,
der mit dem Frametaktsignal CLY der Datensenke synchronisiert ist. Dementsprechend
wird das Taktsignal CLY im Folgenden auch als "Lesetaktsignal" bezeichnet. Es ist ein Lesezähler 45 vorgesehen,
der genau so aufgebaut ist wie der Schreibzähler 41 und durch
die steigenden Flanken der Leseimpulse CLY getaktet wird, um zyklisch
jeweils von 0 bis 3 zu zählen.
Das niedrigstwertige Bit des Dualzahlencodes des Zählwertes
bildet den Lesezeiger RDA zur Steuerung des Multiplexers 44.
Beim Logikwert "0" des Lesezeigers
RDA verbindet der Multiplexer 44 das DFA-Leitungsbündel mit
seinem Ausgang, und beim Logikwert "1" des
Lesezeigers RDA verbindet der Multiplexer 44 das DFB-Leitungsbündel mit
seinem Ausgang.
-
Somit
liefert der FIFO-Multiplexer 44 auf seiner n-Bit-Ausgangsleitung
(Leitungsbündel
DFC) eine Framefolge DFC, in welcher die einzelnen Frames ... Fi,
Fi + 1, ... in ihrer ursprünglichen
Reihenfolge erscheinen, jedoch im Takt der steigenden Flanken des
Lesetaktsignals CLY. Dies funktioniert einwand frei, solange der
Lesetakt (steigende Flanken des Lesetaktsignals CLY) und der Schreibtakt
(fallende Flanken des Schreibtaksignals CLF) um einen Mindestabstand
zueinander versetzt sind. Ein solcher Zustand, bei dem die steigenden
Flanken des Lesetaktsignals CLY und die fallende Flanken des Schreibtaksignals
CLF um mindesten TF/2 zueinander versetzt
sind, ist in den Zeilen des zweiten Diagramm-Abschnittes in 4 veranschaulicht.
-
Nähern sich
die Phasen von Schreibtakt und Lesetakt aber eng einander an, dann
wird ein Punkt erreicht, bei dem kein Schreib-Lese-Betrieb mehr
möglich
ist. Dieser Punkt ist definiert durch die Laufzeit der Daten vom
Eingang DF der Pufferschaltung 40 bis zum Eingang D des
Registers 48, im Verhältnis
zur Phasenlage des Taktes CLY. Mit Hilfe einer besonderen Maßnahme kann
diese Laufzeit weiter reduziert und somit die Latenz der Pufferschaltung 40 weiter
verringert werden. Diese Maßnahme
besteht darin, dass ein Bypass während
gewisser Intervalle selektiv eingeschaltet wird, um das FIFO-Register 43A, 43B jeweils
vorübergehend
zu überbrücken.
-
Der
Bypass besteht beim Ausführungsbeispiel
nach 3 aus einer Verbindung des eingangsseitigen Leitungsbündels DF
mit dem einen Eingang eines 2-auf-1-Multiplexers 47, dessen
anderer Eingang mit dem Ausgang des FIFO-Multiplexers 44 verbunden
ist. Der "Bypass"-Multiplexer 47 wird
durch ein Schaltsignal RDC gesteuert, welches von einem Vergleicher 46 erzeugt
wird, der den Gray-Code WRB des Zählwerte des Schreibzählers 41 mit
dem Gray-Code RDB des Zählwertes
des Lesezählers
vergleicht. Im gezeigten Fall ist ein Vergleicher 46 für 2-Bit-Wörter verwendet,
bestehend aus zwei Exklusiv-NOR-Gattern (XNOR-Gatter) und einem
UND-Gatter. Für
die Dauer einer Übereinstimmung
von WRB und RDB liefert die Schaltung 46 eine "1", wodurch der Bypass-Multiplexer 47 in
einen Schaltzustand versetzt wird, in welchem er die Signale vom
Leitungsbündel
DF auf ein Leitungsbündel
DFD weiterleitet. Während
der Intervalle, in denen WRB und RDB verschieden sind, nimmt das Ausgangssignal
RDC des Vergleichers 46 den Logikwert "0" an,
wodurch der Bypass-Multiplexer 47 in einen Schaltzustand
versetzt wird, in welchem er die Signale vom Ausgang des FIFO-Multiplexers 44 an
das Leitungsbündel
DFD weiterleitet.
-
Der
dritte Diagramm-Abschnitt der 4 veranschaulicht
die Situation für
den Beispielsfall, dass der Abstand zwischen Schreibtakt und Lesetakt
kleiner ist als TF, andererseits aber noch
so groß,
dass der zugeordnete Frame auf dem Leitungsbündel DEC bei der steigenden
Flanke des Lesetaktes CLY schon gültig ist. Im Diagramm ist gezeigt,
dass die Umschaltung des Bypass-Multiplexers 47 (RDC von "1" auf "0")
in der Taktperiode vor der steigenden Flanke des Lesetaktes CLY
zu keiner Zustandsänderung
der Signale auf dem Leitungsbündel
DFD führt.
-
Es
gibt natürlich
ein Mindestmaß für den erlaubten
Abstand zwischen Schreibtakt und Lesetakt. Dieses Mindestmaß würde unterschritten
werden, sobald der Lesetakt dem Schreibtakt so nahe kommt, dass
er sich der Grenze des Zeitfensters τp' der Gültigkeit
des zugeordneten Frame zu sehr annähert. Der Grenzfall, in welchem
der Lestakt die vordere Grenze des besagten Zeitfensters gerade
erreicht, ist im vierten Diagramm-Abschnitt der 4 veranschaulicht.
Um die Latenz der Pufferschaltung möglichst gering zu halten, sollte
die Phase des den Lesetakt bestimmenden Taktsignals CLY so eingestellt
sein, dass der Lestakt möglichst
nahe an die vordere Grenze des besagten Zeitfensters kommt. Diese
Einstellung kann während
der Initialisierung erfolgen, wie es weiter unten noch beschrieben
werden wird.
-
Das
auf dem Leitungsbündel
DFD erscheinende n-Bit-Ausgangssignal des Bypass-Multiplexers 47 wird
dem Dateneingang einer n-Bit-Latchschaltung 48 zugeführt, die
mit den steigenden Flanken des Lesetaktsignals CLY getaktet wird,
um die Ausgangs-Framefolge DFE der Pufferschaltung 40 zu
liefern. In dieser Folge erscheinen die Frames in ihrer ursprünglichen Reihenfolge
und synchronisiert mit dem von der Datensenke 300 vorgegebenen
Frametakt CLY.
-
Die "Länge" des FIFO-Registers, also die Anzahl
q der nacheinander angewählten
Registerstufen, kann auch größer als
2 sein. Allgemein gilt, dass der Schreibzähler und der Lesezähler zyklisch über jeweils über 2q Zählschritte
müssen
(also von 0 bis 2q – 1),
und dass der Schreibzeiger bzw. der Lesezeiger für die zyklische Adressierung
der q Registerstufen aus den Zählwerten
decodiert werden. Der FIFO-Multiplexer ist dementsprechend ein q-auf-1-Multiplexer.
-
Die
vorstehend beschriebene Pufferschaltung kann für sich allein eine Synchronisierung
der vom Demultiplexer 20 im Frametakt CLF gelieferten Framefolge
mit dem Frametakt CLY der Datensenke 300 nur dann bewirken,
wenn die Phasendifferenz zwischen den Flanken gleicher Polarität der beiden
Frametaktsignale CLF und CLY nicht mehr als eine Frametaktperiode
TF beträgt.
Diese Bedingung mag in vielen Fällen
erfüllt sein.
-
Es
kann aber vorkommen, dass die Phasendifferenz zwischen CLF und CLY
größer ist
als TF. Eine solche Situation kann z. B.
dann eintreten, wenn die Übertragungsstrecke
parallel mit weiteren Übertragungsstrecken
betrieben wird, um mehrere Datensenken aus der Datenquelle 100 zu
versorgen. Wegen unterschiedlicher Entfernung von der Datenquelle
können
sich die Laufzeiten der Daten zu den verschiedenen Senken so weit
unterscheiden, dass zwischen der längsten Laufzeit und der kürzesten
Laufzeit eine Differenz von mehr als einer Frameperiode besteht.
Bei sehr hohen Datenraten kann diese Differenz mehrere Frameperioden
betragen.
-
Um
besagte Differenzen auszugleichen, muss eine zusätzliche Phasensteuerung erfolgen.
In einer besonderen Ausführungsform
der Erfindung wird dies durch eine steuerbare Verzögerungsschaltung
erreicht, deren Verzögerungszeit
in Schritten von jeweils einer ganzen Frameperiode TF veränderbar
ist. Ein Ausführungsbeispiel
hierzu ist in der 5 dargestellt.
-
Die
Verzögerungsschaltung 50 nach 5 ist
beim gezeigten Beispiel zwischen der Pufferschaltung 40 und
der zugeordneten Datensenke 300 eingefügt, sie kann sich aber auch
an anderer Stelle innerhalb der Übertragungsstrecke
befinden. Die Verzögerungsschaltung 50 enthält eine
m-gliedrige Kette von Verzögerungselementen 52-1, 52-2 ... 52-m,
wobei m eine natürliche
Zahl > 0 ist. Jedes
der m Verzögerungselemente 52-1:m
ist beim dargestellten Beispiel ein Register aus n parallelen D-Flipflops,
welches ein an seinem n-Bit-Dateneingang D anstehendes n-Bit-Datenwort
zu seinem Q-Ausgang überträgt und dort
verriegelt, wenn es durch eine steigende Taktflanke an seinem Takteingang
C getriggert wird. Jedem Verzögerungselement 52-i ist
ein Umschalter (2-auf-1-Multiplexer) 53-i nachgeschaltet,
der zur Übertragung
von n-Bit-Datenwörtern ausgelegt
ist und durch ein individuell zugeordnetes binäres Schaltsignal (Schaltbit)
Si umschaltbar ist. Der Logikwert "0" oder "1" des Schaltbit Si bestimmt, ob das am
0-Eingang oder das am 1-Eingang
des zugeordneten Umschalters 53-i empfangene Datenwort
zum Ausgang durchgelassen wird.
-
Der
0-Eingang jedes Umschalters 53-i ist mit dem Datenausgang
des unmittelbar vorangehenden Verzögerungselementes 52-i verbunden.
Die 1-Eingänge
der m-1 ersten Umschalter 53-1 bis 53-(m-1) empfangen über einen
gemeinsamen Datenverstärker 51 die
Framefolge DFE vom Ausgang der Pufferschaltung 40 (siehe 3 und 4).
Der 1-Eingang des letzten Umschalters 53-m empfängt die
Framefolge DFE direkt.
-
Die
Schaltbits S(1:m) für
die Umschalter 53-(1:m) werden von einem 1-aus-m Decoder 55 erzeugt,
der ein Verzögerungs-Steuersignal
in Form eines Mehrbit-Code empfängt,
um vorzugeben, ob alle m Schaltbits den Logikwert "0" haben sollen oder welches der Schaltbits
den Logikwert "1" haben soll (die
anderen Schaltbits bleiben dann auf "0").
Somit wird entweder keiner der Umschalter oder immer nur genau ein
ausgewählter Umschalter 53-i in
seinen 1-Zustand versetzt.
-
Im
Betrieb werden die Verzögerungselemente 52-(1:m)
durch die steigenden Flanken des Frametaktsignals CLY getriggert.
Sind alle Umschalter 53-(1:m) im 0-Zustand, dann arbeitet
die Kette der Verzögerungselemente 52-(1:m)
als m-stufiges Schieberegister, so dass die eingangsseitige Framefolge
DFE mit einer Verzögerung
von m Frametaktperioden am Ausgang des letzten Umschalters 53-m erscheint.
Die Ausgangsfolge DFV ist also um m·TF + τM gegenüber der
Eingangsfolge DFE verzögert
wobei τM die Durchlaufzeit durch den Umschalter
ist (Multiplexer-Transferzeit).
-
Wenn
nur der erste Umschalter 53-1 im 1-Zustand ist, dann arbeitet
die Teilkette der nachfolgenden Verzögerungselemente 52-(2:m)
als (m-1)-stufiges Schieberegister, so dass die Verzögerung gleich
(m-1)·TF + τM ist. Wenn nur der letzte Umschalter 53-m im
1-Zustand ist, dann ist die Verzögerung
nur gleich τM. Allgemein gilt: Wenn i die Ordnungszahl
des im 1-Zustand
befindlichen Umschalters ist, also nur das Schaltbit Si den Logikwert "1" hat, dann beträgt die Verzögerung (m-i)·TF + τM.
-
Die 6 veranschaulicht
den in der Praxis häufig
auftretenden Fall, dass die Datenquelle 100 gleichzeitig
eine Mehrzahl p serieller Bitströme
liefert, die mit gleicher Taktphase über p zugeordnete Ausgangsleitungen 110-1, 110-2 ... 110-p gesendet
werden, um jeweils als Folge n-Bit-Wörtern im Parallelformat an
eine zugeordnete Datensenke 300-1, 300-2 ... 300-p übertragen
zu werden. Die p Datensenken 300-(1:p) können z.
B. DRAM-Seicherchips sein, die in einem Modul M zusammengefasst
sind, z. B. in einem sogenannten DIMM (Double Inline Memory Module).
Da die Datensenken zwangsläufig
unterschiedliche räumliche
Positionen haben, ist auch ihre räumliche Entfernung zur Datenquelle
unterschiedlich; ebenso können
die einzelnen Übertragungswege
unterschiedlichen Umgebungs einflössen
ausgesetzt sein. Deswegen bedarf es einer individuellen Pufferung
und Laufzeitanpassung in jedem einzelnen Übertragungsweg.
-
Bei
der in 6 gezeigten Ausführungsform wird eine solche "Vollpufferung" des Moduls M dadurch erreicht,
dass zwischen jeder Datenleitung 110-i und der zugeordneten
Datensenke 300-i eine erfindungsgemäße Übertragungsstrecke 200-i eingefügt ist,
wie sie oben anhand der 1 bis 5 beschrieben
wurde. Die Bestandteile jeder Übertragungsstrecke,
also die Eingangsschaltung 10, der Demultiplexer 20,
die Neuverriegelungsschaltung 30 (1), ferner
die Pufferschaltung 40 (3) und die
Verzögerungsschaltung 50 (5),
sind in 6 als Blöcke innerhalb der jeweiligen Übertragungsstrecke 200-i gezeichnet,
zusammen mit den verbindenden Datenleitungen (dünne Linien für serielle
Bits, dicke Linien für
n-Bit-Parallelwörter).
Die vorhandenen Anschlüsse
und Leitungen für
Takt- und Steuersignale sind in 6 nicht
dargestellt. Alle Datensenken 300-1:p werden mit einem
gemeinsamen Frametaktsignal CLY betrieben, das den Datenempfang an
ihren Dateneingängen
taktet und auch den Leseteakt in den Pufferschaltungen 40 aller Übertragungsstrecken 200-1:p
bestimmt.
-
Wenn
die Datensenken 300-(1:p) einzelne Speicherchips (z. B.
DRAMs) eines Speichermoduls sind (z. B. eines DIMM), ergibt sich
mit der Anordnung nach 6 ein sogenanntes "voll gepuffertes" Modul, welches einen
Schreibbetrieb erlaubt, bei welchem mit jedem Speichertakt ein Datenwort
aus p·n
Bits im Parallelformat eingegeben werden kann. Solche Module (Fully
Buffered DIMMs, abgekürzt
FBDIMMs) eignen sich z. B. für
die Realisierung von Arbeitsspeichern in Computern.
-
Um
die Speicherkapazität
zu erhöhen,
kann man mehrere gleichartige Speichermodule vorsehen, die so angeschlossen
sind, dass jedes Modul die von der Datenquelle (z. B. eines Speichercontrollers) 100 gelieferten
Daten empfangen kann und diese Daten aufnimmt, wenn es individuell
adressiert ist. Die 7 zeigt das Schema einer Kombination
mehrerer Module M1, M3, ..., deren jedes dem Modul M nach 6 entspricht und
dessen p Datensenken 300-1:p den p Ausgangsleitungen 110-1:p
der Datenquelle 100 zugeordnet sind. Jeder Datensenke 300-i ist
eine Übertragungsstrecke 220-i zugeordnet,
welche an ihrem seriellen Eingang X den zugeordneten seriellen Bitstrom
empfängt
und an ihrem Parallelausgang Y die Frames dieses Bitstromes als
n-Bit-Wörter
im Parallelformat liefert.
-
Jede
in 7 gezeigte Übertragungsstrecke 200-i enthält zwischen
ihrem Eingang X und ihrem Ausgang Y die gleichen Schaltungen 10, 20, 30, 40, 50,
wie sie auch in jeder Übertragungsstrecke 200-i der
Anordnung nach 6 enthalten sind und wie sie
weiter oben anhand der 1 bis 5 beschrieben
wurden. Die Module M1, M2, ... und die jeweils zugeordneten Gruppen
G1, G2, ... der Übertragungsstrecken 200-1:p sind
in unterschiedlicher Entfernung von der Datenquelle 100 angeordnet;
sie bilden also eine nach Entfernung abgestufte "Reihe".
-
Die
p Übertragungsstrecken
der "ersten" Gruppe G1, welche
die kürzeste
Entfernung zur Datenquelle 100 hat, empfangen an ihren
Eingängen
X die seriellen Bitströme
direkt von den Ausgangsleitungen 110-1:p der Datenquelle 100.
In den folgenden Gruppen G2, G3, ... empfängt jede Übertragungstrecke 200-i an
ihrem Eingang X den zugeordneten seriellen Bitstrom nicht direkt
von der zugeordneten Datenleitung 110-i sondern über eine
Schleife, welche durch einen Teil der i-ten Übertragungsstrecke 200-i der
jeweils vorangehenden Gruppe läuft.
Diese Schleife regeneriert den am Eingang X empfangenen seriellen
Bitstrom und führt
durch den Demultiplexer 20 und von dort über eine
Regenerierschaltung 60 zu einem seriellen Ausgang Z der
betreffenden Übertragungsstrecke.
Der Aufbau und die Wirkungsweise der regenerierenden Schleife wird
nachstehend anhand der 8 beschrieben.
-
Die 8 zeigt
die Einzelheiten der Regenerierschaltung 60 in Verbindung
mit dem Demultiplexer 20, dessen Aufbau und Arbeitsweise
bereits oben anhand der 1 beschrieben wurde. Die Regenerierschaltung 60 hat
n = 4 Eingänge,
die mit den n Ausgängen
DQ1:4 des Demultiplexers 20 verbunden sind und selektiv über jeweils
einen zugeordneten Schalter mit dem Dateneingang D eines D-Flipflop 62 verbindbar
sind. Die besagten n Schalter 61-1:4 sind in vorteilhafter
Ausführungsform
schaltbare Datentreiber und werden durch eine Lesesteuerschaltung 63 zyklisch
eingeschaltet.
-
Die
Schalter 61-1:4, die Lesesteuerschaltung 63 und
das Flipflop 62 bilden zusammen einen n-auf-1-Multiplexer.
Die Taktung der Lesesteuerschaltung 63 erfolgt durch die
aktiven (z. B. steigenden) Flanken eines Lesetaktsignals, z. B.
des Systemtaktsignals CLS, das auch dem Takteingang C des Flipflops 62 zugeführt wird.
Dieses Lesetaktsignal hat im Mittel die gleiche Frequenz fB wie das Eingabetaktsignal CLB des Demultiplexers 20,
seine Phase kann sich jedoch von der Phase des Taktsignals CLB unterscheiden.
-
Diejenige
aktive Flanke des Lesetaktsignals CLS, welche während der Gültigkeit des ersten Bit B1
eines Frame am Demultiplexer-Ausgang DQ1 erscheint (vgl. 2),
stellt die Lesesteuerschaltung 63 so ein, dass der Schalter 61-1 geschlossen
wird und das betreffende Bit zum Dateneingang D des Flipflop 62 gelangt. Als
Antwort auf die nachfolgenden drei aktiven Flanken des Signals CLS
schließt
die Lesesteuerschaltung 63 nacheinander die Schalter 61-2, 61-3, 61-4,
um die Bits B3, B3, B4 zum Flipflop 62 zu leiten. Die Lesesteuerschaltung 63 kann ähnlich wie
die Schreibsteuerschaltung 23 als Zähler ausgebildet sein, der
jeweils zyklisch über
n = 4 Zählwerte
zählt.
-
Die
am Ausgang Q des Flipflops 62 erscheinende Bitfolge wird
einem Datensender 66 zugeführt, der die einzelnen Bits
mit dem Taktsignal abtastet und als "regenerierten" seriellen Bitstrom zum Ausgang Y liefert.
-
Der
Demultiplexer 20 erfüllt
also hier eine doppelte Funktion. Zum einen sorgt er für die Serien/Parallel-Umsetzung
in der vom Eingang X zum Parallelausgang Y führenden Übertragungsstrecke. Zum anderen funktioniert
er gleichzeitig zusammen mit der Regenerierschaltung 60 als
FIFO-Schaltung, worin die Latchelemente 22-1:4 des Demultiplexers 22 ein
n-stufiges FIFO-Register bilden, dessen Schreibzeiger durch die
n Ausgangssignale EN1:4 der Schreibsteuerschaltung 23 gebildet
wird und dessen Lesezeiger durch die n Ausgangssignale der Lesesteuerschaltung 63 gebildet
wird. Mit dieser FIFO-Schaltung in jeder Übertragungsstrecke wird die
Phase des über
die Schleife weitergeleiteten seriellen Bitstroms jeweils mit der
Phase des Taktsignals CLS ausgerichtet.
-
In
der Anordnung nach 7 enthalten alle Übertragungsstrecken 200-1:p
jeder Gruppe G1, G2, ..., mit Ausnahme der letzten Gruppe (nicht
gezeigt), die über
eine zugeordnete Regenerierschaltung 60 gehende Schleife,
um die aus der Datenquelle 100 stammenden seriellen Bitströme einer
Gruppe zur nächsten
Gruppe durchzuleiten. Bei passender Grundeinstellung der Phasen
der Schreib- und Lesetakte in den FIFO-Schaltungen jeder Übertragungsstrecke
und bei passender Einstellung der Verzögerungseinrichtungen 50 in
jeder Übertragungsstrecke
ist sichergestellt, dass die Framefolgen aller seriellen Bitströme jeweils
als Folgen von parallelisierten n-Bit-Datenwörtern an ihren Ziel-Datensenken
in zeitlicher Deckung eintreffen, so dass alle Senken im Gleichtakt
betrieben werden können.
-
Die
erwähnten
Grundeinstellungen können
während
eines Initialisierungsvorganges vor jeder Inbetriebnahme (und gewünschtenfalls
auch in Intervallen zwischen Betriebsabschnitten) durchgeführt werden.
Ein Beispiel für
ein Verfahren zur Vornahme der Einstellungen wird nachstehend beschrieben.
-
Zunächst wird
die Datenquelle
100 veranlasst, das weiter oben erwähnte Trainingsmuster
zu senden. Dieses Muster kann z. B. aus n aufeinander folgenden
n-Bit-Codewörtern
bestehen, wobei das zweite bis n-te Codewort einander gleich sind,
aber anders als das erste Codewort. Für den Beispielsfall n = 12
kann das Muster folgendermaßen
gestaltet sein:
| erstes
Codewort | 0111 | 1111 | 1101 |
| elf
folgende Codewörter | 0101 | 0101 | 0101 |
wobei die zeitliche Folge der Bits von links nach
rechts zu lesen ist. Aus dem Trainingsmuster wird innerhalb jeder Übertragungsstrecke
im Decoder des Demultiplexers die Markierung MRK abgeleitet, welche
den Demultiplexer auf die Framegrenzen synchronisiert, wie es weiter
oben in Verbindung mit
1 beschrieben wurde.
-
In
einem zweiten Schritt gilt es, die sich innerhalb einer Frameperiode
bewegende Unbestimmtheit des Anfangszustandes der Pufferschaltung
in jeder Übertragungsstrecke 200-i zu
beseitigen. Hierzu sind Maßnahmen
getroffen, um die Phase des gemeinsamen Frametaktes CLY aller Datensenken
modifizieren zu können. Gemäß der 1 wird
dies ermöglicht
durch ein Phasenstellglied 311 am Ausgang des CLY-Taktgebers 310. In
jeder Übertragungsstrecke 200-i zwischen
der Datenquelle 100 und einer Datensenke 300-i wird
zunächst das
Taktsignal CLF, welches das Schreibtaktsignal CLF für die Pufferschaltung 40 bildet,
in Deckung mit dem gemeinsamen Taktsignal CLY gebracht. Hierzu wird
die Phase des gemeinsamen Taktsignals CLY mittels des Stellgliedes 311 in
mehreren Schritten bis auf ein Maß von höchstens 360° verändert, wobei in jeder Übertragungsstrecke 200-i die
Phase der CLF-Taktflanken gegenüber
den CLY-Taktflanken gemessen werden kann, um den Punkt der Phasendeckung
zu finden. Mit dieser Information können die Lesezeiger der Pufferschaltungen
deterministisch initialisiert werden.
-
Nach
diesen Initialisierungsschritten hat man zwei genaue Informationen:
erstens eine genaue Information über
die rela tive Phasenlage zwischen dem gemeinsamen Senken-Frametakt
CLY und dem Frametakt CLF, der den Schreibtakt der Pufferschaltung 40 in
der zugeordneten Übertragungsstrecke 200-i bestimmt; zweitens
eine genaue Information über
die Anzahl der Frameperioden, um welche die parallelisierten Frames individuell
in jeder Übertragungsstrecke
verzögert
werden müssen,
damit die Daten an allen Senken taktgleich eintreffen. Somit ist
auch bekannt, welche Übertragungsstrecke
die "späteste" ist, d. h. in welcher Übertragungsstrecke
die kürzeste
Verzögerung
eingestellt werden muss.
-
Dementsprechend
folgt ein dritter Initialisierungschritt, bei welchem die Phase
des gemeinsamen Taktsignals CLY so eingestellt wird, dass die Laufzeit
bzw. Latenz der Daten über
die Pufferschaltung 40 der "spätesten" Übertragungsstrecke minimiert
ist. Das heißt,
dass der Abstand zwischen Schreibzeiger und Lesezeiger in dieser
Pufferschaltung das gerade noch zulässige Mindestmaß hat. Die
Auswahl der "spätesten" Übertragungsstrecke als Referenz
für diese
Einstellung stellt sicher, dass eine eventuell mögliche Drift des Schreibtaktsignals
CLF der Übertragungsstrecke
gegenüber
dem gemeinsamen Taktsignal CLY kompensierbar ist. Die Initialisierung
der anderen Übertragungsstrecken
erfolgt durch Einstellung der Verzögerungseinrichtung 50 entsprechend
den zuvor gemessenen Phasendifferenzen.
-
Somit
wird die Laufzeit bzw. Latenz der Daten von der Quelle 100 zu
allen Datensenken minimiert auf die Durchlaufzeit der über die "späteste" Übertragungsstrecke laufenden
Daten, die ihrerseits auf das minimal zulässige Maß minimiert ist.
-
- 10
- Eingangsschaltung
- 11
- Phasenregelkreis
- 12
- Initialisierungs-Decoder
- 20
- Demultiplexer
- 22
- Latchelemente
- 23
- Schreibsteuerschaltung
- 24
- Frametaktgeber
- 30
- Neuverriegelungsschaltung
- 31
- Verriegelungselemente
- 40
- Pufferschaltung
- 41
- Schreibzähler
- 42A,
B
- UND-Gatter
- 43A,
B
- FIFO-Registerstufen
- 44
- FIFO-Multiplexer
- 45
- Lesezähler
- 46
- Vergleicher
- 47
- Bypass-Multiplexer
- 48
- Latchschaltung
- 50
- Verzögerungsschaltung
- 51
- Datenverstärker
- 52
- Verzögerungselemente
- 53
- Umschalter
- 55
- 1-aus-m-Decoder
- 60
- Regenerierschaltung
- 61
- Schalter
(schaltbare Datentreiber)
- 62
- Flipflop
- 63
- Lesesteuerschaltung
- 66
- Datensender
- 100
- Datenquelle
- 110
- Datenleitung
- 200
- Übertragungsstrecke
- 300
- Datensenke
- M1:3
- Speichermodule
- G1:3
- Übertragungsstrecken-Gruppen