-
Die Erfindung betrifft ein Register zur Parallel-Seriell-Wandlung von Daten, das sich insbesondere für den Einsatz eines DRAM-Speichers eignet.
-
JP 11-328947 A offenbart eine FIFO-Schaltung mit einer Schieberegister-Schaltung. Zur Verringerung der Gesamtgröße der FIFO-Schaltung wird dabei der Bereich der Schieberegister-Schaltung verkleinert.
-
US 5 551 009 A beschreibt das Design eines FIFO-Registers. Die FIFO-Registerschaltung umfasst eine Anordnung von FIFO-Zellen, wobei jede Zelle einen eigenen Eingangs-Multiplexer und eine Steuerschaltung umfasst.
-
D-RAM-Bausteine sind Standardspeicherbausteine für Arbeitsspeicher. D-RAM-Speicher bestehen aus hoch integrierten Transistoren und Kondensatoren. Um die Informationen zu erhalten ist dabei eine ständige Auffrischung des Speicherinhalts notwendig (refresh). Ein synchroner D-RAM (S-DRAM) erlaubt den Speicherzugriff ohne zusätzliche Wartezyklen. Dabei erfolgt die Datenübergabe zwischen dem S-DRAM und einem externen Datenbus synchron dem externen Taktsignal.
-
1 zeigt einen S-DRAM-Speicherbaustein nach dem Stand der Technik. Der S-DRAM-Speicherbaustein ist an einen externen Steuerbus, an einen externen Adressbus und an einen externen Datenbus angeschlossen. Über Kommando-PADS werden die an dem externen Steuerbus anliegenden Steuerbefehle durch einen integrierten Kommando-Receiver eingelesen und die Empfangssignale signalverstärkt an einen Befehls- bzw. Kommando-Decoder angelegt. Der Kommando-Decoder decodiert die beispielsweise 4 Bit breiten angelegten Steuerbefehle zu internen Steuerbefehlen, wie etwa Write (WR) und Read (RD). In dem S-DRAM befindet sich eine State-Maschine bzw. eine Ablaufsteuerung, die die internen Abläufe in Abhängigkeit von den decodierten internen Steuerbefehlen steuert. Die Ablaufsteuerung wird durch ein Taktsignal getaktet. Hierzu wird an den S-DRAM ein externes Taktsignal CLKext angelegt und durch einen integrierten Taktsignal-Receiver signalverstärkt. Das verstärkte Taktsignal wird durch einen Clock-Tree baumartig in dem integrierten S-DRAM verteilt und gelangt über eine interne Taktleitung zu einer Ablaufsteuerung. Das externe Taktsignal ist ferner an eine Delay-Locked-Loop DLL angelegt.
-
Durch die Delay-Locked-Loop DLL wird eine negative Phasenverschiebung des anliegenden externen Taktsignals CLK bewirkt. Das interne DLL-Clock-Signal läuft dem externen Clock-Signal bzw. Taktsignal voraus, damit die Daten synchron zu dem externen Clock-Signal an den Daten-Pads anliegen. Mit dem DLL-Clock-Signal DLLCLK wird der in dem S-DRAM integrierte Ausgangssignaltreiber OCD (Off Chip Driver) eines Datenpfades getaktet. Dem Delay-Locked-Loop DLL ist ein Laufzeitglied nachgeschaltet, das ein internes Clock-Signal bildet (VE-CLK), welches dem externen Clock-Signal identisch nachgebildet ist, d. h. VE-CLK ist vollkommen synchron zu CLKext. Das Laufzeitglied gleicht hierzu die negative Phasenverschiebung der Delay-Locked-Loop DLL aus.
-
Die interne Ablaufsteuerung erzeugt in Abhängigkeit von den decodierten Befehlen Steuersignale für den internen Arbeitsablauf des S-DRAM. Die Ablaufsteuerung generiert ein RAS-Signal (Row Adress Strobe) zur Ansteuerung eines Zeilen-Adress-Latches und ein CAS-Signal (Column Adress Select) zum Ansteuern eines Spaltenadress-Latches. Das Zeilenadress-Latch und das Spaltenadress-Latch sind über einen internen Adressbus an einen Adresssignal-Receiver des S-DRAM angeschlossen. Der S-DRAM empfängt über den externen Adressbus an den Adress-PADS eine externe Adresse, wobei die anliegenden Adresssignale durch einen Adress-Receiver signalverstärkt werden. Um Anschlüsse einzusparen wird die Adresse bei DRAM-Speichern in zwei Schritten eingegeben. In einem ersten Schritt werden die Zeilen-Adress-Bits mit dem RAS-Signal in das Row-Adress-Latch geladen. In einem zweiten Schritt werden die Spalten-Adressbits mit dem CAS-Signal in das Column-Adress-Latch geladen. Die Adressbits werden an einen Zeilen- bzw. Spaltendecodierer zum Zugriff auf eine Speicherzelle innerhalb des matrixförmigen Speicherzellenfeldes angelegt. Das Zeilenadress-Latch und das Spaltenadress-Latch sowie der Zeilen- und Spaltendecoder bilden zusammen einen Adresssignal-Decoder. Zum Auffrischen der Speicherzellen erzeugt die Ablaufsteuerung ein Refresh-Steuersignal. Ein Refresh-Counter, der von der Ablaufsteuerung dieses Refresh-Signal erhält, erzeugt nacheinander alle existenten Zeilen bzw. Row-Adressen, die dann auf den Adressbus gelegt werden. Die Ablaufsteuerung erzeugt hierzu ein RAS-Steuersignal. Auf diese Weise werden alle Wordlines aktiviert. Durch das Aktivieren einer Wordline werden alle mit ihr verbundenen Speicherzellen aufgefrischt.
-
Das Speicherzellenfeld ist ferner an Schreib-/Leseverstärker angeschlossen. Die Anzahl der Schreib-/Leseverstärker hängt von der Speicherarchitektur, der Wortbreite und dem Prefetch ab. Bei Prefetch 4 mit einer Wortbreite von 32 sind beispielsweise 128 Schreib/Leseverstärker gleichzeitig in Betrieb. Sind beispielsweise vier unabhängige Speicherbänke vorgesehen, sind auf dem Speicherchip insgesamt 512 Schreib/Leseverstärker integriert.
-
Über die Schreib/Leseverstärker werden jeweils ein Datenbit in eine adressierte Speicherzelle eingeschrieben bzw. aus ihr ausgelesen. Die Schreib/Leseverstärker sind über einen internen Datenbus mit einem internen Datenpfad des S-DRAM verbunden. Über den Datenpfad werden die in dem externen Datenbus anliegenden Daten synchron in das S-DRAM eingeschrieben und synchron von dem S-DRAM abgegeben. Der Datenpfad ist an die Daten-PADS des S-DRAM angeschlossen.
-
Zum Einlesen der Daten erhält der Datenpfad einen Daten-Receiver zum Empfangen der extern anliegenden Daten. Eine interne Treiberschaltung für die einzuschreibenden Daten (WR-Treiber) führt eine Signalverstärkung der empfangenen Daten durch und gibt die eingelesenen Daten über den internen Bus an die Schreib/Leseverstärker ab. Die Treiberschaltung WR-Treiber wird durch einen Schreibe/Latenz-Zeitgenerator angesteuert, der durch das interne Taktsignal VE-CLK getaktet wird. Der Schreib/Latenz-Zeitgenerator ist seinerseits an einen Decoder angeschlossen.
-
Zur synchronen Datenausgabe enthält der Datenpfad ein Daten-FIFO-Register, dem eine Ausgangsdaten-Treiberschaltung (OCD-Treiber) nachgeschaltet ist. Das FIFO-Register wird von dem Schreib/Leseverstärker mittels eines Input-Pointers und durch einen Lese/Latenzgenerator mittels eines Output-Pointers bzw. eines zeitverzögerten Datenfreigabesignals angesteuert. Der Lese/Latenzgenerator ist ebenfalls an einen Decoder angeschlossen.
-
Die beiden Decoder für den Lese-Latenz-Zeitgenerator und den Schreib-Latenz-Zeitgenerator sind über interne Steuerleitungen mit einem Mode-Register verbunden, in dem die Daten zur Steuerung der Betriebsmodi innerhalb des S-DRAM gespeichert sind. Das Mode-Register kann durch einen Mode-Register Set-Befehl über den internen Adressbus initialisiert werden. Das Mode-Register wird nach dem Einschalten initialisiert. Bevor externe Steuerbefehle an den S-DRAM angelegt werden, wird das Mode-Register initialisiert. Das Mode-Register enthält Steuerdaten für die CAS-Latenzzeit, für Testmodi und für einen DLL-Reset.
-
Die Ablaufsteuerung generiert in Abhängigkeit von den externen Steuerbefehlen einen internen Schreibbefehl PAW zum Aktivieren des Schreib-Latenz-Zeitgenerators und einen internen Lesebefehl PAR zum Aktivieren des Lese-Latenzzeitgenerators.
-
2 zeigt das in dem Datenpfad des S-DRAM-Speichers enthaltene FIFO-Register. Das FIFO-Register ist einerseits an den internen Datenbus des S-DRAM angeschlossen und andererseits ausgangsseitig an den OCD-Treiber angeschlossen. Das FIFO-Register empfängt über die Dateneingangsleitungen des internen Datenbusses die auszugebenden Daten und gibt sie über Datenausgangsleitungen an den nachgeschalteten OCD-Treiber ab. Da die Busbreite des internen Datenbusses um einen Prefetch-Faktor PF des S-DRAM hoher ist als die Busbreite bzw. Wortbreite des externen Datenbusses, erfolgt durch das FIFO-Register eine Parallel-Seriell-Wandlung der Daten. Weist der S-DRAM beispielsweise eine Wortbreite von 32 Bit auf, d. h. weist der externe Datenbus 32 Datenbitleitungen auf, beträgt die Busbreite des internen Datenbusses bei einem Prefetch-Faktor von vier, viermal zweiunddreißig Bit, d. h. 128 Datenleitungen. Der interne Datenbus umfasst daher vier logische interne Datenbusse, die jeweils eine Wortbreite von 32 Bit umfassen. Die entsprechenden Datenbits, d. h. Datenbit 0 bis Datenbit 31 der vier logischen internen Datenbusse (Load 0, Load 1, Load 2, Load 3) werden jeweils an ein herkömmliches FIFO-Datenregister angeschlossen, wie es in 3 dargestellt ist.
-
3 zeigt ein FIFO-Register nach dem Stand der Technik zur Parallel-Seriell-Wandlung von Daten. Das FIFO-Register enthält mehrere Schieberegister SR, die jeweils aus seriell verschalteten Datenhaltegliedern DHG bestehen. Die Anzahl der seriell verschalteten Datenhalteglieder DHG entspricht der Anzahl der parallel angeschlossenen Dateneingangsleitungen. Bei dem in 1 dargestellten S-DRAM-Speicher weist jedes FIFO-Registerelement, wie es in 3 dargestellt ist, vier Dateneingangsleitungen auf, d. h. die Breite eines Schieberegisters SR ist gleich dem Prefetch-Faktor PF des S-DRAM-Speichers und betragt vier. Die Datenhalteglieder DHGi übernehmen mit der steigenden Signalflanke des Ausgabesteuersignals OUTP und auch mit der fallenden Signalflanke des Ausgabesteuersignals OUTP ein Datum von dem vorangeschalteten Datenhalteglied DHGi-1 und geben das Datum an ein nachgeschaltetes Datenhalteglied DHGi+1 weiter. Ein Datenhalteglied DHG kann dabei aus zwei gegenphasig angesteuerten Flip-Flops oder durch Flip-Flops, die auf beiden Signalflanken gleichzeitig neue Daten empfangen und die vorigen Daten weiterschicken können, bestehen. Die Datenhalteglieder DHG werden durch Eingabesteuersignale (Input) und durch Ausgabesteuersignale (Output) angesteuert. Die Datenhalteglieder der verschiedenen Schieberegister SR werden zyklisch zum Einlesen und Ausgeben von Daten angesteuert.
-
Ein Dateneingabe-Anzeigesignal wird einem ersten Zähler zugeführt, der zyklisch Eingabe-Steuersignale an die Schieberegister SR abgibt. Das Dateneingabe-Anzeigesignal wird bei einem S-DRAM durch die Schreib-Leseverstärkerschaltung erzeugt und an das FIFO-Register übertragen. Das Dateneingabe-Anzeigesignal zeigt dem FIFO-Register an, dass die auf dem internen Datenbus anliegenden Daten gültig sind und übernommen werden können.
-
Der Lese-Latenzzeitgenerator S-DRAM erzeugt ein Datenausgabe-Anzeigesignal und führt dieses zwei unterschiedlichen Zahlern innerhalb des FIFO-Registers zu. Der eine Zähler erzeugt zyklisch Datenausgabe-Steuersignale (Output) und steuert damit die Datenhalteglieder der Schieberegister SR zyklisch an. Das Datenausgabe-Anzeigesignal wird ferner einem Zähler zur Erzeugung von Freigabesignalen (EN) zum zyklischem Ansteuern von Datensignaltreibern zugeführt.
-
Das in 3 dargestellte FIFO-Register nach dem Stand der Technik besitzt eine Registertiefe N, d. h. es sind N Speicherregister SR vorgesehen, die nacheinander geladen werden können. Das Laden bzw. Füllen eines Schieberegisters SR geschieht über den zugehörigen Input-Pointer bzw. das zugehörige Eingabe-Steuersignal.
-
Jedes Schieberegister SR besitzt eine Registerbreite M, die bei dem in 3 dargestellten Beispiel vier beträgt. Die Breite M des Schieberegisters ist gleich dem Prefetch-Faktor PF des S-DRAM.
-
Die Tiefe N des FIFO-Registers wird in Abhängigkeit von dem Prefetch-Faktor PF, der maximalen CAS-Leselatenz und dem minimalen erlaubten Abstand zwischen zwei Lesezugriffen gewählt. Die Tiefe N des FIFO-Registers beträgt bei einer bevorzugten Ausführungsform beispielsweise ebenfalls vier.
-
Die in das FIFO-Register geladenen Datenbits stammen aus dem Speicherzellenfeld und werden über den internen Datenbus dem FIFO-Register zugeführt. Die vier geladenen Datenbits werden auf das selbe Input-Output-Datenpad des externen Datenbusses getrieben. Das Auslesen des FIFO-Registers geschieht mittels eines sog. Output-Pointers (Output), wobei jedes Schieberegister SR ein zugehöriges Ausgangssteuersignal von dem Zähler zyklisch erhält.
-
5 zeigt die Signalabläufe bei einem FIFO-Register zur Parallel-Seriell-Wandlung von Daten. Das FIFO-Register wird mit einem Taktsignal CLK getaktet, das bei dem in 1 dargestellten S-DRAM-Speicher durch das DLL-CLK-Taktsignal gebildet wird. An den Datenbusleitungen des internen Datenbusses liegen die in das FIFO-Register einzulesenden vier Datenbits (load[0:3]). Bei dem in 5 dargestellten Beispiel weist das FIFO-Register eine Tiefe N von vier auf, d. h. enthält vier Schieberegister SR. Der interne Zähler des FIFO-Registers generiert aus dem Dateneingabe-Anzeigesignal vier Eingabe-Steuersignale (INP0 bis INP4) für die vier Schieberegister SR. Das Eingabesteuersignal besteht dabei jeweils aus einem einzelnem Signalimpuls.
-
Aus dem Datenausgabe-Anzeigesignal, welches von dem Lese-Latenzzeitgenerator stammt, generiert der zweite Zähler Datenausgabe-Steuersignale (Output 0 bis Output 3) für die vier Schieberegister SR, wobei jedes Datenausgabe-Steuersignal (Output) aus zwei Signalimpulsen mit vier Signalflanken besteht. Die Anzahl der Signalflanken des Datenausgabesteuersignals für ein Schieberegister SR entspricht der Breite M des Schieberegisters SR, d. h. bei dem in 3 dargestellten Beispiel ebenfalls vier Signalflanken. Darüber hinaus wird durch einen Signalgenerator ein Enable-Steuersignal EN für die vier Datensignaltreiber generiert.
-
Das in 3 dargestellte FIFO-Register nach dem Stand der Technik hat den Nachteil, dass bei einem Umschaltvorgang von dem Auslesen eines ersten Schieberegisters (SRi) zum Auslesen des nächsten Schieberegisters (SRi+1) undefinierte Datenzwischenzustände auftreten können, sog. Datenmüll. Dies liegt daran, dass das Enable-Steuersignal für die Datenausgangstreiber nicht absolut zeitgenau mit dem zugehörigen Datenausgabe-Steuersignal auftritt, d. h. das Enable-Signal ist nicht genau zeitsynchron mit dem zugehörigen Output-Pointer-Signal für das Speicherregister. Die undefinierten Datenzustande treten auf, da das Enable- bzw. Freigabesignal (EN) die Datentreiberstufe bereits öffnet, wenn noch der falsche Datenwert aus dem Schieberegister getrieben wird. Es kommt zu undefinierten Datenzuständen, da die Signalflanken der Steuersignale nicht unendlich steil sind bzw. der Schaltvorgang eine endliche Zeit benötigt.
-
Wenn, wie aus 5 ersichtlich, das Enable-Steuersignal En0 für den Datenausgangstreiber des ersten Schieberegisters SR0 eine steigende Signalflanke aufweist, wird der zugehörige Datenausgangstreiber aktiviert. Anschließend empfängt das Schieberegister SR0 das Datenausgabe-Steuersignal (OUTP0) mit vier Signalflanken, nämlich zwei ansteigende Signalflanken und zwei fallende Signalflanken. Mit jeder Signalflanke des Datenausgabe-Steuersignals (OUTP0) wird der Dateninhalt des letzten Datenhaltegliedes DH0 des Schieberegisters SR0 durch den Datenausgangstreiber betrieben. Damit auch das Load 3 Datenbit, das ursprünglich in das Datenhalteglied DHG3 des Schieberegisters SR0 geladen wurde, für die gesamte Impulsbreite eines Impulses des Datenausgabesteuersignals (OUTP0), d. h. für die halbe Zykluszeit des Taktsignals CLK auf die Datenausgabeleitung getrieben wird, müsste das Enable-Steuersignal En0 vollkommen zeitgleich bzw. synchron mit der ansteigenden Signalflanke des Datenausgabe-Steuersignals (OUTP1) für das nächste Schieberegister SR1 und mit der ansteigenden Signalflanke des zugehörigen Enable-Steuersignals EN1 sein. Dies ist allerdings nicht gewährleistbar, da der Schaltvorgang eine endliche Zeit benötigt bzw. die Steuersignalflanken nicht unendlich steil sind. In dem seriellen Datenausgangsstrom entsteht daher in dem Übergangsbereich ein undefinierter Datenzustand, der sich über den Datenausgangstreiber OCD auf dem externen Datenbus fortsetzt. Dies erschwert einem angeschlossenen Prozessor erheblich, die Daten zu übernehmen, weil die Breite der Datenaugen für die gültigen Daten schmäler wird. Insbesondere bei sehr hohen Taktraten, die einige hundert Megahertz betragen, können die undefinierten Datenzustände zu einem Fehler bei der Datenübernahme durch den Datenprozessor führen.
-
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Register zur Parallel-Seriell-Wandlung von Daten zu schaffen, das die Dauer der undefinierten Datenzustände auf den Datenausgangsleitungen minimiert.
-
Diese Aufgabe wird erfindungsgemäß durch ein Register mit den im Patentanspruch 1 angegebenen Merkmalen sowie einen DRAM-Speicher mit den Merkmalen des Patentanspruchs 21 und die Verwendung eines Registers gemäß Patentanspruch 22 gelöst.
-
Weitere Merkmale sind Gegenstand der abhängigen Patentansprüche, die nachfolgend kurz wiedergegeben werden.
-
Die Eingabesteuersignale (INP) für die Schieberegister (SR) werden vorzugsweise durch einen ersten Zähler generiert werden, wobei der erste Zähler nach Empfang eines Dateneingabe-Anzeigesignals, welches das Anliegen von Daten auf den Dateneingangsleitungen anzeigt, die Eingabesteuersignale (INP) zyklisch an die Schieberegister (SR) abgibt.
-
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Registers werden die Ausgabesteuersignale (OUTP) für die Schieberegister (SR) durch einen zweiten Zähler generiert, wobei der zweite Zähler nach Empfang eines Datenausgabe-Anzeigesignals die Ausgabesteuersignale (OUTP) zyklisch an die Schieberegister abgibt.
-
Die Datensignaltreiber des Registers sind vorzugsweise Tristate-Stufen, die durch ein Freigabesignal (EN) aktiviert werden.
-
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Registers werden die Freigabesignale (EN) für die Datensignaltreiber durch einen dritten Zähler generiert, der nach Empfang des Datenausgabe-Anzeigesignals die Freigabesignale (EN) zyklisch an die Datenausgangstreiber abgibt.
-
Die Eingabesteuersignale (INP) für die Schieberegister (SR) bestehen vorzugsweise aus einem einzigen Signalimpuls zum Laden der auf den Dateneingangsleitungen anliegenden Daten.
-
Dabei übernehmen die Datenhalteglieder (DHGi) vorzugsweise jeweils mit der steigenden Signalflanke und mit der fallenden Signalflanke des Ausgabesteuersignals ein (OUTP) Datum von dem Ausgang des jeweils vorgeschalteten Datenhaltegliedes (DHGi-1) und geben das Datum an den Eingang des jeweils nachgeschalteten Datenhaltegliedes (DHGi+1) ab.
-
Die Anzahl der seriell verschalteten Datenhalteglieder (DHG) des Schieberegisters (SR) ist vorzugsweise gleich der Anzahl der angeschlossenen Dateneingangsleitungen.
-
Das erfindungsgemäße Register ist vorzugsweise mit weiteren gleichartigen Registern zwischen Dateneingangsleitungen eines ersten Datenbusses und Datenausgangsleitungen eines zweiten Datenbusses parallel verschaltbar.
-
Bei dem ersten Datenbus handelt es sich vorzugsweise um einen internen Datenbus eines DRAM-Speichers.
-
Die seriellen Ausgangsdatenströme werden vorzugsweise über die Ausgangsdatenleitungen an eine Treiberschaltung des DRAM-Speichers angelegt.
-
Die Anzahl der Ausgangsdatenleitungen ist vorzugsweise gleich der Wortbreite des DRAM-Speichers.
-
Die Anzahl der Eingangsdatenleitungen ist vorzugsweise gleich dem Produkt aus der Wortbreite des DRAM-Speichers und einem Prefetch-Faktors (PF) des DRAM-Speichers.
-
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Registers wird das Daten-Eingabeanzeigesignal durch einen Schreib-Leseverstärker des DRAM-Speichers generiert.
-
Bei einer weiteren Ausfuhrungsform des erfindungsgemäßen Registers wird das Datenausgabe-Anzeigesignal durch einen Leselatenz-Zeitgenerator des DRAM-Speichers generiert.
-
Bei einer besonders bevorzugten Ausfuhrungsform des erfindungsgemäßen Registers besteht das Ausgabe-Steuersignal für die Schieberegister (SR) jeweils aus einer Folge von Impulsen, wobei die Anzahl der Impulse halb so hoch ist, wie die Anzahl der seriell verschalteten Datenhalteglieder (DHG) des Schieberegisters (SR).
-
Die Anzahl der seriell verschalteten Datenhalteglieder (DHG) eines Schieberegisters ist bei einer bevorzugten Ausführungsform des erfindungsgemäßen Registers gleich dem Prefetch-Faktor (PF) des DRAM-Speichers.
-
Bei dem DRAM-Speicher handelt es sich vorzugsweise um ein S-DRAM-Speicher.
-
Das Taktsignal (CLK) zum Takten des erfindungsgemäßen Registers weist vorzugsweise eine Taktrate von einigen hundert Megaherz auf.
-
Bei dem erfindungsgemäßen Register handelt es sich vorzugsweise im ein Fifo-Register.
-
Im weiteren werden bevorzugte Ausführungsformen des erfindungsgemäßen Registers zur Erläuterung erfindungswesentlicher Merkmale unter Bezugnahme auf die beigefügten Figuren beschrieben.
-
Es zeigen:
-
1 einen S-DRAM-Speicher nach dem Stand der Technik;
-
2 ein Fifo-Register nach dem Stand der Technik;
-
3 ein Blockschaltbild eines herkömmlichen Fifo-Registers nach dem Stand der Technik;
-
4 ein Blockschaltbild eines erfindungsgemäßen Registers zur Parallel-/Seriellwandlung von Daten;
-
5 Zeitablaufdiagramme zur Erläuterung der Funktionsweise des erfindungsgemäßen Registers im Vergleich zu einem herkömmlichen Register.
-
6–8 eine besonders bevorzugte Ausführungsform eines Datenhaltegliedes innerhalb des erfindungsgemäßen Registers
-
4 zeigt den schaltungstechnischen Aufbau einer bevorzugten Ausführungsform des erfindungsgemäßen Registers 1 zur Parallel-/Seriellwandlung von Daten. Das Register 1 enthält mehrere Schieberegister 2a, 2b um Punkt 2N. Jedes dieser Schieberegister 2 besteht aus mehreren seriell verschalteten Datenhaltegliedern 3-0, 3-1, 3-2, 3-3. Die Datenhalteglieder besitzen jeweils Dateneingänge 4-0, 4-1, 4-2, 4-3, die an Dateneingangsleitungen 5-0, 5-1, 5-2, 5-3 angeschlossen sind.
-
Die Dateneingangsleitungen 5 sind Teil eines ersten Datenbusses, beispielsweise des internen Datenbusses eines S-DRAM-Speichers. Die Anzahl der Schieberegister 2-N beträgt N, wobei N auch als die Tiefe des Registers 1 bezeichnet wird.
-
Die Tiefe N des Fifo-Registers 1 beträgt bei einer bevorzugten Ausführungsform vier. Die Registertiefe N wird bei Verwendung des Fifo-Registers innerhalb eines DRAM-Speichers in Abhangigkeit von dem Prefetch-Faktor (PF), der maximalen Lese-Latenzzeit und dem minimalen erlaubten Abstand zwischen zwei Lesezugriffen gewählt.
-
Die Breite M des Fifo-Registers 1, d. h. die Anzahl der in einem Schieberegister 2 seriell verschalteten Datenhalteglieder 3 beträgt bei der in 4 dargestellten bevorzugten Ausfuhrungsform des Registers 1 ebenfalls vier. Die Breite M des Registers 1 wird zur Verwendung innerhalb eines DRAM-Speichers gleich dem Prefetch-Faktor (PF) gewählt.
-
Die Datenhalteglieder 3 innerhalb des Schieberegisters 2 weisen jeweils einen weiteren Dateneingang 6 und einen Datenausgang 7 auf. Die Datenhalteglieder 3 ubernehmen jeweils mit der steigenden Signalflanke des Taktsignals CLK und mit der fallenden Signalflanke des Taktsignals CLK ein Datum von dem Ausgang des jeweils vorangeschalteten Datenhalteglieds und geben dies an den Eingang des jeweils nachgeschalteten Datenhaltegliedes weiter. Der Datenausgang 7 eines Datenhaltegliedes 7 ist dabei jeweils über eine Leitung 8 mit dem Eingang 6 des nachgeschalteten Datenhaltegliedes verbunden.
-
Die Datenhalteglieder 3 eines Schieberegisters 2 laden bei Empfang eines Eingabesteuersignals (INP) die an den Dateneingangsleitungen 5 anliegenden Daten. Jedes Schieberegister 2 gibt bei Empfang eines Ausgabesteuersignals (OUTP) für das Schieberegister 2, das in dem letzten Datenhalteglied (3-0) des Schieberegisters 2 zwischengespeicherte Datum über eine Leitung 9 an ein nachgeschaltetes Datenhalteglied 10 ab.
-
Die Datenhalteglieder 3 eines Schieberegisters erhalten das Eingabesteuersignal INP für das Schieberegister über eine gemeinsame Steuerleitung 11 an einen Eingang 13. Die Datenhalteglieder 3 eines der Schieberegister 2 erhalten darüber hinaus die Datenausgabesteuersignale über eine gemeinsame Steuerleitung 12 an einem Eingang 14.
-
Die Steuerleitungen 11 fur die Eingabesteuersignale sind an einen ersten Zähler 15 des Registers angeschlossen. Die Steuerleitungen 12 für die Datenausgabesteuersignale sind an einen zweiten Zähler 16 des erfindungsgemäßen Registers 1 angeschlossen. Die Anzahl der Steuerleitungen 11, 12 fur die Eingabesteuersignale (INP) und die Ausgabesteuersignale (OUTP) entspricht der Tiefe N des Registers 1 bzw. der Anzahl der Schieberegister 2 innerhalb des Registers 1.
-
Die verschiedenen Eingabesteuersignale (INP0, INP1...INPN) fur die verschiedenen Schieberegister 2A–2N werden durch den ersten Zähler 15 generiert, wobei der erste Zähler 15 nach Empfang eines Dateneingabe-Anzeigesignals, welches das Anlegen von gültigen Daten auf den Dateneingangsleitungen 5 anzeigt, Eingabesteuersignale (INP) nacheinander an die Schieberegister 2-i abgibt. Die Eingabesteuersignale (INP) bestehen vorzugsweise dabei aus einem einzigen Signalimpuls zum Laden der auf den Dateneingangsleitungen 5 anliegenden gültigen Daten. 5 zeigt die Eingabesteuersignale INP0 bis INP3 fur vier Schieberegister 2a, 2b, 2c, 2d.
-
Mit jedem Eingabesteuersignal (INP) wird ein Schieberegister 2-i mit den an den Dateneingangsleitungen 5 anliegenden Daten gefüllt bzw. geladen.
-
Die verschiedenen Ausgabesteuersignale (OUTP0, OUTP1...OUTPN) für die verschiedenen Schieberegister 2a bis 2N werden durch den zweiten Zähler 16 generiert, wobei der zweite Zähler 16 nach Empfang eines Datenausgabe-Anzeigesignals die Ausgabesteuersignale (OUTP) nacheinander an die Schieberegister 2-i abgibt. Die Ausgabesteuersignale bestehen bei der in 4 dargestellten Ausführungsform des erfindungsgemäßen Registers 1 aus zwei aufeinanderfolgenden Impulsen, wie in 5 dargestellt. Die Anzahl der Impulse ist gleich der halben Anzahl der seriell verschalteten Datenhalteglieder 3 innerhalb eines Schieberegisters 2, d. h. die Anzahl der Signalflanken des Datenausgabesteuersignals ist gleich der Anzahl der seriell verschalteten Datenhalteglieder, nämlich zwei ansteigende Signalflanken und zwei abfallende Signalflanken. Wird das erfindungsgemaße Register 1 in einem DRAM-Speicher eingesetzt, wird die Anzahl der seriell verschalteten Datenhalteglieder gleich dem Prefetch-Faktor PF gewählt. Mit jeder Signalflanke des Datenausgabesteuersignals (OUTP), wie es in 5 dargestellt ist, werden die in den Schieberegistern 2 gespeicherten Daten um eine Position nach rechts geschoben. Die Datenhalteglieder 3 sind derart aufgebaut, dass sie jeweils mit der steigenden Signalflanke des Taktsignals und mit der fallenden Signalflanke des Taktsignals CLK ein Datum von dem Ausgang des jeweils vorangeschalteten Datenhaltegliedes übernehmen und an den Eingang des jeweils nachgeschalteten Datenhaltegliedes abgeben.
-
Der schaltungstechnische Aufbau einer bevorzugten Ausführungsform des Datenhaltegliedes 3 ist in den 6 bis 8 im Detail dargestellt.
-
Das erfindungsgemäße Register 1 enthalt einen dritten Zähler 17 zum zyklischen Freischalten von Datensignaltreibern 18 über Steuerleitungen 19. Die Datensignaltreiber sind eingangsseitig über eine Leitung 20 mit dem Datenausgang des dem Schieberegister nachgeschalteten zusätzlichen Datenhaltegliedes 10 verbunden. Die Ausgänge der Datensignaltreiber 18 sind über Ausgangsleitungen 21 mit einer gemeinsamen Datenausgangsleitung 22 verbunden. Bei den Datensignaltreibern 18 handelt es sich vorzugsweise um Tristate-Stufen, die durch das anliegende Freigabesignal EN aktivierbar sind.
-
Das erfindungsgemäße Register 1, wie es in 4 dargestellt ist, unterscheidet sich von einem herkömmlichen FIFO-Register, wie es in 3 dargestellt ist durch die zusätzlichen Datenhalteglieder 10, die jeweils einem Schieberegister 2 nachgeschaltet sind. Diese zusätzlichen Datenhalteglieder 3 werden jeweils mit dem Datum (Load 3) für das erste Datenhalteglied 3-3 des Schieberegisters 2 vorgeladen. Bei dem in 4 dargestellten Beispiel übernehmen die Datenhalteglieder 10 jeweils bei Empfang des Eingabesteuersignals (INP) zum Laden des vorangehenden Schieberegisters das Datum für das erste Datenhalteglied 3-3 des Schieberegisters 2. Das nachgeschaltete Datenhalteglied 10 wird somit mit dem Steuerladesignal zum Laden des vorangehenden Schieberegisters vorgeladen. Hierdurch wird erreicht, dass jedes Datenhalteglied 10 jeweils mit demjenigen Datenbit vorgeladen wird, das von dem zuvor angesteuerten Schieberegister als letztes ausgegeben wird. Dies führt dazu, dass sobald das Freigabesteuersignal EN an den zugehörigen Datensignaltreiber 18 angelegt wird und dieser öffnet, noch der unmittelbar im seriellen Ausgangsdatenstrom vorangehende Datenwert getrieben wird und zwar solange, bis das Datenausgabesteuersignal (OUTP) fur das Schieberegister angelegt wird und den nächsten Datenwert nach außen treibt.
-
Durch das Vorladen des nachgeschalteten Datenhaltegliedes 10 können auch bei sehr hohen Taktraten des Taktsignals unsaubere Signalübergänge beim Umschalten von einem Schieberegister auf das nächste Schieberegister vermieden werden.
-
5 zeigt das Ausgangssignal auf der Leitung 22, wobei zwischen den verschiedenen Datenaugen keine undefinierten Datensignalzustände bestehen. Das erfindungsgemäße Register 1 vermeidet undefinierte Datenzwischenzustände und ermöglicht somit höhere Bandbreiten beim Einsatz in einem S-DRAM. Das erfindungsgemäße Register 1 eignet sich insbesondere zur Parallel-Seriell-Wandlung mit sehr hohen Taktfrequenzen von einigen 100 Megaherz, beispielsweise mit einer Taktfrequenz von 500 MHz.
-
Das erfindungsgemäße Register 1 eignet sich insbesondere für den Einbau in den Datenpfad eines DRAM-Speicher. Das erfindungsgemäße Register 1 ist mit weiteren identischen Registern 1 parallel zwischen Dateneingangsleitungen eines ersten Datenbusses und Datenausgangsleitungen eines zweiten Datenbusses parallel verschaltbar. Die Anzahl der Ausgangsdatenleitungen ist dabei bei Einsatz in einem DRAM-Speicher gleich der Wortbreite des DRAM-Speichers. Die Anzahl der Eingangsdatenleitungen ist vorzugsweise gleich dem Produkt aus der Wortbreite des DRAM-Speichers und dessen Prefetch-Faktor. Beim Einbau in einen DRAM-Speicher wird das Dateneingabe-Anzeigesignal zum Ansteuern des ersten Zählers 15 durch einen Schreib-Leseverstärker des DRAM-Speichers generiert, wobei dieses Dateneingabe-Anzeigesignal die Gültigkeit der an dem internen Datenbus anliegenden Daten anzeigt. Das Datenausgabe-Anzeigesignal zum Ansteuern des zweiten Zählers 16 wird beim Einsatz des Fifo-Registers 1 in einem DRAM-Speicher vorzugsweise durch einen Leselatenz-Zeitgenerator des DRAM-Speichers generiert. Bei dem DRAM-Speicher handelt es sich vorzugsweise um einen S-DRAM-Speicher.
-
Die 6 bis 8 zeigen eine besonders bevorzugte Ausfuhrungsform der in einem Fifo-Register 1 enthaltenen Datenhalteglieder 3. Ein Fifo-Register 1 mit einer Registertiefe N und einer Registerbreite M enthält N·(M + 1) Datenhalteglieder 3, wobei die Breite M beim Einsatz in einem DRAM-Speicher gleich dem Prefetch-Faktor PF ist.
-
6 zeigt den schaltungstechnischen Gesamtaufbau eines Datenhaltgliedes 3 mit einer Load-Zelle bzw. Ladezelle und einem doppelten Flip-Flop (DFF). Die Load-Zelle des Datenhaltegliedes 3 ist im Detail in 7 dargestellt. Die Load-Zelle übernimmt das Vorladen eines anliegenden Datums. Das am Eingang 4 anliegende Datum wird über die Load-Zelle und die Leitungen bSET, RESET in das Innere des doppelten Flip-Flops (DFF) geladen. Der schaltungstechnische Aufbau des doppelten Flip-Flops DFF ist im Detail in 8 dargestellt. Das Datenhalteglied 3-i ist schaltungstechnisch derart aufgebaut, dass es jeweils mit der steigenden Signalflanke und mit der fallenden Signalflanke ein an seinem Signaleingang 6 anliegendes Datum von dem Ausgang des jeweils vorgeschalteten Datenhaltegliedes 3-i übernimmt und das Datum über seinen Ausgang 7 an das jeweils nachgeschaltete Datenhalteglied 3-(i + 1) abgibt.
-
Bei Empfang des Dateneingabesteuersignals INP am Signaleingang 13 wird das an dem Eingang 4 anliegende Datum einer Dateneingangsleitung in der Speicherzelle gemäß 7 geladen und zwischengespeichert. Bei Empfang eines Datenausgabesteuersignals OUTS am Steuereingang 14 des Datenhaltegliedes 3-i wird das zwischengespeicherte Datum nach rechts zum nächsten Datenhalteglied 3-(i + 1) geschoben.
-
Bezugszeichenliste
-
- 1
- Register
- 2
- FIFO-Register
- 3
- Halteglied
- 4
- Daten-Ladeeingang
- 5
- Dateneingangsleitungen
- 6
- Dateneingang
- 7
- Datenausgang
- 8
- Leitung
- 9
- Leitung
- 10
- Datenhalteglied
- 11
- Steuerleitung
- 13
- Steuerleitung
- 14
- Steuereingang
- 15
- Zähler
- 16
- Zähler
- 17
- Zähler
- 18
- Signaltreiber
- 19
- Steuerleitung
- 20
- Leitung
- 21
- Leitung
- 22
- Datenausgangsleitung