-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung:
-
Die
vorliegende Erfindung betrifft allgemein eine Eingangsdatenverarbeitungsschaltung,
die ausgebildet ist, um Eingangsdatensätze zu verarbeiten, welche
von Doppelschaltungen erhalten werden, die asynchron zueinander
sind.
-
2. Beschreibung der verwandten Technik:
-
Allgemein
weist ein System mit hoher Zuverlässigkeit redundante Doppelschaltungen
auf, zum Beispiel eine primäre
Schaltung und eine redundante Schaltung, die die gleiche Struktur
haben. In einem System werden Takte, Daten, Freigabesignale von den
Doppelschaltungen einer oberen Ebene einer Schaltung einer niedrigeren
Ebene zugeführt.
-
In
einer Entwurfsphase werden Takte so bestimmt, dass sie zwischen
Doppeltschaltungen hinsichtlich der Rate gleich zueinander sind.
In der Praxis bewirkt ein Herstellungsprozess jedoch, dass die Takte
einige "ppm" Fehler aufweisen.
Das heißt,
einer der Takte wird geringfügig
niedriger als der andere Takt. Deshalb ist es wünschenswert, den Entwurf eines
Systems anzustreben, bei dem beide Takte asynchron zueinander oder
unabhängig
voneinander sind.
-
Zum
geeigneten Empfangen von Eingangsdatensätzen gemäß den asynchronen Takten, weist die
Schaltung der niedrigeren Ebene eine Eingangsdatenverarbeitungsschaltung
an einer Eingangsstufe der Schaltung der niedrigeren Ebene auf.
Eine dem Erfinder bekannte Eingangsdatenverarbeitungsschaltung weist
zwei FIFO-Puffer (first-in first-out) und eine Ausleseschaltung
auf. Die FIFO-Puffer entsprechen den Doppelschaltungen und speichern zeitweilig
Eingangsdatensätze
jeweils in Übereinstimmung
mit den von den Doppelschaltungen zugeführten Takten. Die Ausleseschaltung
erzeugt einen gemeinsamen Auslesetakt und liest Eingangsdatensätze aus
den FIFO-Puffern gemäß dem gemeinsamen
Auslesetakt aus.
-
Der
Herstellungsfehler, der zwischen Takten der Doppelschaltungen auftritt,
kann jedoch "Datenmangel" in einem jeglichen
der FIFO-Puffer bewirken. Wie oben erwähnt ist, ist einer der durch
die Doppelschaltungen erzeugten Takte etwas niedriger als der andere
Takt, so dass die Datenspeicherung in dem FIFO-Puffer entsprechend
dem etwas niedrigeren Takt im Vergleich zu der Datenspeicherung
in dem anderen FIFO-Puffer verzögert
wird. Da der Auslesetakt einzeln ist, wächst darüber hinaus die Verzögerung von
Datenspeicherung entsprechend der Differenz zwischen beiden Takten
an, wenn sich die Anzahl von Auslesetakten erhöht. Schließlich tritt deshalb Datenmangel
in dem FIFO-Puffer entsprechend dem etwas niedrigeren Takt auf.
-
Wie
aus der obigen Beschreibung deutlich wird, besteht ein Bedarf an
einer Eingangsdatenverarbeitungsschaltung, die tolerant gegenüber einer Taktratendifferenz
zwischen Takten ist, die jeweils durch die Doppelschaltungen erzeugt
werden, und die "Datenmangel" vermeiden kann.
-
EP-A-0 384 177 offenbart
eine Eingangsdatenverarbeitungsschaltung gemäß dem Oberbegriff des Anspruchs
1, bei der Daten aus FIFO-Registern unter der Steuerung des lokalen
Empfägertakts
synchronisiert mit Sendertakten entladen werden.
-
ZUSAMMENFASSUNG DER ERFINDUNG:
-
Die
vorliegende Erfindung schafft deshalb eine Eingangsdatenverarbeitungsschaltung,
die "Datenmangel" vermeiden kann,
selbst wenn eine Taktratendifferenz zwischen durch Doppelschaltungen erzeugten
Takten vorliegt.
-
Einen
Eingangsdatenverarbeitung gemäß der Erfindung
ist in Anspruch 1 definiert; die abhängigen Ansprüche beziehen
sich auf Weiterentwicklungen der Erfindung.
-
Eine
Eingangsdatenverarbeitungsschaltung gemäß einem Aspekt der vorliegenden
Erfindung ist zum Erhalten von Eingangsdatensätzen von Doppelschaltungen
vorgesehen, die eine erste und eine zweite obere Schaltung aufweisen.
Die erste und die zweite Schaltung sind asynchron zueinander und
erzeugen erste bzw. zweite Takte.
-
Die
Eingangsdatenverarbeitungsschaltung weist einen ersten und einen
zweiten FIFO-Puffer,
einen ersten und einen zweiten Zähler,
einen Phasendetektor und eine Ausleseschaltung auf. Der erste FIFO-Puffer
ist ausgebildet, Eingangsdatensätze
von der ersten oberen Schaltung in Übereinstimmung mit dem ersten
Takt zu empfangen und zeitweilig zu speichern. Der erste Zähler ist
ausgebildet, die Anzahl der Flanken des ersten Taktes zu zählen, um
ein erstes Beendigungssignal zu erzeugen und das Zählen immer
dann erneut zu starten, wenn die Anzahl von Flanken des ersten Taktes
gleich einer vorgegebenen Zahl ist. Der zweite FIFO-Puffer ist ausgebildet, Eingangsdatensätze von
der zweiten oberen Schaltung in Übereinstimmung
mit dem zweiten Takt zu erhalten und zeitweilig zu speichern. Der
zweite Zähler ist
ausgebildet, die Anzahl der Flanken des zweiten Taktes zu zählen, um
ein zweites Beendigungssignal zu erzeugen und das Zählen immer
dann erneut zu beginnen, wenn die Anzahl der Flanken des zweiten Taktes
gleich der vorgegebenen Anzahl ist. Der Phasendetektor ist ausgebildet,
eine Taktphasendifferenz zwischen den ersten und zweiten Takten
auf Grundlage des ersten und zweiten Beendigungssignals zu erfassen.
Die Ausleseschaltung ist ausgebildet, einen des ersten und zweiten
FIFO-Puffers auszuwählen,
falls die Taktphasendifferenz größer als eine
vorgegebene Zeit ist, die einer halben Datenlänge der vorgegebenen Anzahl
der Eingangsdatensätze
entspricht, wobei der ausgewählte
FIFO-Puffer einen schnelleren Takt aufgrund der Taktphasendifferenz
aufweist als ein anderer Takt zwischen den ersten und zweiten Takten.
Dann liest die Ausleseschaltung aus dem ausgewählten FIFO-Puffer die vorgegebene Anzahl von Eingangsdatensätzen aus.
-
Ein
Vorteil dieser Schaltung besteht darin, dass sie nicht zum Auftreten
von "Datenmangel" in FIFO-Puffern
führt,
selbst wenn eine Taktratendifferenz zwischen durch Doppelschaltungen
erzeugten Takten existiert.
-
Ein
vollständigeres
Verständnis
der vorliegenden Erfindung sowie von weiteren Merkmalen und Vorteilen
der vorliegenden Erfindung wird durch Bezugnahme auf die folgende
ausführliche
Beschreibung und die Zeichnungen erhalten werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein schematisches Blockdiagramm, das eine Eingangsdatenverarbeitungsschaltung
gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
2 ist
ein schematischer Taktplan, der Daten, Takte und Freigabesignale
gemäß der in 1 dargestellten
Eingangsdatenverarbeitungsschaltung zeigt, und
-
3 ist
ein schematischer Taktplan, der die Bestimmung einer Taktphasendifferenz
in der in 1 dargestellten Eingangsdatenverarbeitungsschaltung
zeigt.
-
BESCHREIBUNG EINER BEVORZUGTEN
AUSFÜHRUNGSFORM
-
Eine
Eingangsdatenverarbeitungsschaltung gemäß einer bevorzugten Ausführungsform
der vorliegenden Erfindung soll nun unter Bezugnahme auf die 1 bis 3 erörtert werden.
-
Unter
Bezugnahme auf 1 werden einer Eingangsdatenverarbeitungsschaltung
gemäß dieser
Ausführungsform
erste und zweite Eingangsdatensätze,
ein erster und ein zweiter Takt (CLK1, CLK2) und ein erstes und
ein zweites Freigabesignal (EN1, EN2) von Doppelschaltungen zugeführt, die aus
ersten und zweiten oberen Schaltungen bestehen, welche der Deutlichkeit
zuliebe nicht in 1 gezeigt sind. Die ersten und
zweiten oberen Schaltungen haben die gleiche Struktur, aber zwischen dem
ersten und dem zweiten Takt besteht eine Taktratendifferenz. In
dieser Ausführungsform
werden "m" Bytes der Eingangsdatensätze als "Rahmen" angenommen, und
positive Flanken des Freigabesignals zeigen die Anfangspunkte von
Rahmen an, wie in 2 gezeigt ist. Zum Beispiel
sind "ATM-Zellen" als ein Typ solcher
Rahmen bekannt.
-
Die
dargestellte Eingangsdatenverarbeitungsschaltung weist einen ersten
FIFO-Puffer 10, einen ersten Zähler 20, einen zweiten
FIFO-Puffer 30, einen zweiten Zähler 40, einen Phasendetektor 50 und
eine Ausleseschaltung 60 auf.
-
In
den ersten FIFO-Puffer 10 werden die ersten Eingangsdatensätze, der
erste Takt (CLK1) und das erste Freigabesignal (EN1) von der ersten
Schaltung eingegeben. In dieser Ausführungsform empfängt der
erste FIFO-Puffer 10 die ersten Eingangsdatensätze von
den ersten oberen Schaltungen in Übereinstimmung mit positiven
Flanken des ersten Taktes und positiven Flanken des ersten Freigabesignals,
und speichert die empfangenen Datensätze zeitweilig. Der erste Takt
und das erste Freigabesignal werden auch in den ersten Zähler 20 geliefert.
-
Der
erste Zähler 20 dient
als ein Benachrichtiger, der durch Verwendung eines ersten Beendigungssignals
(CS1) meldet, dass der erste FIFO-Puffer 10 einen "Rahmen" speichert. Mit anderen
Worten, da die Anzahl der empfangenen Datensätze des Rahmens gleich der
Anzahl positiver Flanken des ersten Taktes ist, während der
erste FIFO-Puffer 10 einen einzelnen Rahmen speichert,
zeigt das erste Beendigungssignal auch die Anzahl von positiven Flanken
des ersten Taktes entsprechend eines einzelnen Rahmens an. Genau
ausgedrückt,
wird der erste Zähler 20 gemäß der vorliegenden
Ausführungsform
durch eine positive Flanke des ersten Freigabesignals gelöscht und
beginnt, die Anzahl positiver Flanken des ersten Taktes zu zählen. Dann
setzt der erste Zähler 20 das
Zählen
fort, bis der erste FIFO-Puffer 10 einen Rahmen empfängt, nämlich m Bytes
der Eingangsdatensätze.
Wenn die gezählte Anzahl
positiver Flanken des ersten Taktes gleich "m" ist
und der erste FIFO-Puffer 10 einen Rahmen empfängt, erzeugt
der erste Zähler 20 das
erste Beendigungssignal und liefert es an den Phasendetektor 50.
-
Der
zweite FIFO-Puffer 30 und der zweite Zähler 40 haben die
gleiche Struktur und Konfiguration wie der erste FIFO-Puffer 10 und
der erste Zähler 20,
wie im Folgenden aufgeführt
ist.
-
In
den zweiten FIFO-Puffer 30 werden die zweiten Eingangsdatensätze, der
zweite Takt (CLK2) und das zweite Freigabesignal (EN2) von der zweiten oberen
Schaltung eingegeben. In dieser Ausführungsform empfängt der
zweite FIFO-Puffer 30 die Eingangsdatensätze von
den zweiten oberen Schaltungen in Übereinstimmung mit positiven
Flanken des zweiten Taktes und positiven Flanken des zweiten Freigabesignals
und speichert zeitweilig die empfangenen Datensätze. Der zweite Takt und das
zweite Freigabesignal werden auch an den zweiten Zähler 40 geliefert.
-
Der
zweite Zähler 40 dient
als ein Benachrichtiger, der durch Verwendung eines zweiten Beendigungssignals
(CS2) meldet, dass der zweite FIFO-Puffer 30 einen "Rahmen" speichert. Mit anderen
Worten, da die Anzahl der empfangenen Datensätze des Rahmens gleich der
Anzahl positiver Flanken des zweiten Taktes ist, während der
FIFO-Puffer 30 einen
einzelnen Rahmen speichert, zeigt das zweite Beendigungssignal auch
die Anzahl positiver Flanken des zweiten Taktes entsprechend einem
einzelnen Rahmen an. Genau ausgedrückt, wird der zweite Zähler 40 gemäß der vorliegenden
Ausführungsform
durch eine positive Flanke des zweiten Freigabesignals gelöscht und
beginnt, die Anzahl positiver Flanken des zweiten Taktes zu zählen. Dann setzt
der Zähler 40 das
Zählen
fort, bis der zweite FIFO-Puffer 30 einen Rahmen empfängt, nämlich m Bytes
der Eingangsdatensätze.
Wenn die gezählte Anzahl
positiver Flanken des zweiten Taktes gleich "m" ist
und der zweite FIFO-Puffer 30 einen Rahmen empfängt, erzeugt
der zweite Zähler 40 das
zweite Beendigungssignal und liefert es in den Phasendetektor 50.
-
Der
Phasendetektor 50 erfasst eine Taktphasendifferenz zwischen
dem ersten und zweiten Takt aufgrund des ersten und zweiten Beendigungssignals
und liefert die erfasste Taktphasendifferenz (δ ten)
in die Ausleseschaltung 60. In dieser Ausführungsform
werden das erste und zweite Freigabesignal (EN1, EN2) und das erste
und zweite Beendigungssignal (CS1, CS2) in den Phasendetektor 50 eingegeben.
Unter Bezugnahme auch auf 3 berechnet
der Phasendetektor 50 ein erstes Zeitintervall δ t1, nämlich
von der positiven Flanke des ersten Freigabesignals bis zum ersten
Beendigungssignal, und akkumuliert als ein erstes akkumuliertes
Zeitintervall Σ δ t1, die ersten Zeitintervalle δ t1 über
die vorgegebenen Zeitspannen. Ferner berechnet der Phasendetektor 50 ein
zweites Zeitintervall δ t2, nämlich von
der positiven Flanke des zweiten Freigabesignals bis zum zweiten
Beendigungssignal, und akkumuliert als ein zweites akkumuliertes
Zeitintervall,Σ δ t2, die zweiten Zeitintervalle δ t2 über
die vorgegebenen Zeitspannen. Dann berechnet der Phasendetektor 50 als
die Taktphasendifferenz δ ten eine Differenz zwischen dem ersten akkumulierten
Zeitintervall Σ δ t1 und dem zweiten akkumulierten Zeitintervall Σ δ t2. Für
die oben genannten Berechnungen wird ein Takt verwendet, der schneller
sowohl als der erste als auch der zweite Takt ist und der einen
später
in dieser Ausführungsform
erörterten
Auslesetakt darstellt.
-
Die
Ausleseschaltung 60 erzeugt einen Auslesetakt und liefert
den Auslesetakt an den ersten und den zweiten FIFO-Puffer 10 und 20.
In dieser Ausführungsform
ist der Auslesetakt schneller in Rate als der erste und zweite Takt,
und wird auch in den Phasendetektor 50 geliefert, um in
den oben genannten Berechnungen verwendet zu werden.
-
Darüber hinaus
bestimmt die Ausleseschaltung 60 (einen) Ziel-FIFO-Puffer,
aus dem (denen) Datensätze
als Reaktion auf die Taktphasendifferenz δ ten ausgelesen
werden.
-
Im
Detail wählt
die Ausleseschaltung 60 einen des ersten und zweiten FIFO-Puffers 10, 30 aus, wenn
die Taktphasendifferenz δ ten größer als
eine vorgegebenen Zeit ist, die einer halben Datenlänge des
Rahmens entspricht. In diesem Fall weist der FIFO-Puffer (10 oder 30)
einen Takt auf, der um die Taktphasendifferenz schneller als ein
anderer Takt zwischen dem ersten und zweiten Takt ist. Die Ausleseschaltung 60 gibt
ein erstes internes Freigabesignal (ENI1) oder ein zweites internes
Freigabesignal (ENI2) aus, von dem es abhängt, ob der ausgewählte FIFO-Puffer
der erste FIFO-Puffer 10 oder der zweite FIFO-Puffer 30 ist.
Somit liest die Ausleseschaltung 60 den Rahmen nur aus
dem ausgewählten FIFO-Puffer
aufgrund des Auslesetakts und durch Verwendung des ersten internen
Freigabesignals (ENI1) oder des zweiten internen Freigabesignals (ENI2)
aus.
-
Andererseits
wählt die
Ausleseschaltung 60 beide des ersten und zweiten FIFO-Puffers 10, 30 aus,
wenn die Taktphasendifferenz δ ten kleiner als oder gleich der vorbestimmten
Zeit ist. In diesem Fall gibt die Ausleseschaltung 60 das
erste interne Freigabesignal (EN1) und das zweite interne Freigabesignal
(ENI2) für
den ersten und zweiten FIFO-Puffer 10, 30 aus.
Somit liest die Ausleseschaltung 60 den Rahmen aus dem
ersten und zweiten FIFO-Puffer 10, 30 aufgrund
des Auslesetakts und durch die Verwendung des ersten internen Freigabesignals
(ENI1) und des zweiten internen Freigabesignals (ENI2) aus.
-
Eine
allgemeine Beschreibung der vorliegenden Erfindung sowie eine bevorzugte
Ausführungsform
der vorliegenden Erfindung sind im Vorhergehenden aufgeführt worden.
Der Fachmann, den die vorliegende Erfindung betrifft, wird praktische
zusätzliche
Variationen in den beschriebenen Verfahren und dem beschriebenen
System erkennen und zu diesen in der Lage sein, die in den Rahmen
der Lehren dieser Erfindung fallen. Zum Beispiel, obwohl positive
Flanken des ersten und zweiten Taktes in dem ersten und zweiten
Zähler
in der oben aufgeführten Ausführungsform
gezählt
werden, können
negative Flanken gezählt
werden. In diesem Zusammenhang zeigt der Ausdruck "Flanke" eine jegliche einer
positiven Flanke und negativen Flanke an. Darüber hinaus dienen positive
Flanken des ersten und zweiten Freigabesignals als Auslöser zum
Zählen
in der obigen Beschreibung, aber negative Flanken können als Auslöser dienen.
Alle solche Modifikationen und Hinzufügungen werden als innerhalb
des Umfangs der Erfindung betrachtet, der nur durch die hierzu anliegenden
Patentansprüche
begrenzt ist.