PatentDe  


Dokumentenidentifikation DE102005053294A1 10.05.2007
Titel Schaltungsanordnung zur zeitlichen Verzögerung von Lesedaten, Halbleiterspeicherschaltung und Verfahren
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Dietrich, Stefan, 82299 Türkenfeld, DE
Vertreter PAe Reinhard, Skuhra, Weise & Partner GbR, 80801 München
DE-Anmeldedatum 08.11.2005
DE-Aktenzeichen 102005053294
Offenlegungstag 10.05.2007
Veröffentlichungstag im Patentblatt 10.05.2007
IPC-Hauptklasse G11C 7/22(2006.01)A, F, I, 20051108, B, H, DE
Zusammenfassung Die Erfindung betrifft eine Schaltungsanordnung zur zeitlichen Verzögerung von aus einem Halbleiterspeicher ausgelesenen Lesedaten mit einer vorgegebenen Leselatenz, mit einem gemeinsamen Dateneingang, an dem die aus dem Halbleiterspeicher ausgelesenen Lesedaten anliegen, mit einem Datenpuffer-FIFO zur Pufferung der ausgelesenen Lesedaten, welches mehrere FIFO-Module mit jeweils mehreren einzelnen FIFO-Zellen aufweist, wobei die FIFO-Module jeweils über diesen zugeordnete erste Eingangs- und Ausgangszeiger und die FIFO-Zellen jeweils über diesen zugeordnete zweite Eingangs- und Ausgangszeiger ansprechbar sind, mit einem steuerbaren Leselatenzgenerator, der die ersten und zweiten Ausgangszeiger zur Ansteuerung der FIFO-Module und FIFO-Zellen mit der mit Bezug auf die ersten bzw. zweiten Eingangszeiger vorgegebenen Leselatenz erzeugt, mit einem gemeinsamen Datenausgang, an dem die Lesedaten zeitverzögert mit der vorgegebenen Leselatenz anliegen. Die Erfindung betrifft ferner eine Halbleiterspeicherschaltung und ein Verfahren.

Beschreibung[de]

Die Erfindung betrifft eine Schaltungsanordnung zur zeitlichen Verzögerung von aus einem Halbleiterspeicher ausgelesenen Lesedaten mit einer vorgegebenen Leselatenz. Die Erfindung betrifft ferner eine Halbleiterspeicherschaltung und ein Verfahren.

Bei modernen Computer- und Softwareanwendungen besteht zunehmend der Bedarf, immer größere Datenmengen in immer kürzerer Zeit zu verarbeiten. Zur Speicherung der Daten werden hoch integrierte Speicher, wie z. B. synchrone dynamische Schreib/Lesespeicher (S-DRAM-Speicher) verwendet. S-DRAM sind Standardspeicherbausteine, die aus hoch integrierten Transistoren und Kondensatoren bestehen und die einen Speicherzugriff ohne zusätzliche Wartezyklen erlauben. Die Datenübergabe zwischen dem S-DRAM und einem externen Datenbus erfolgt synchron zu einem externen Taktsignal.

1 der Zeichnung zeigt ausschnittsweise einen Teil eines S-DRAM, wie er in der DE 102 10 726 B4 und dort insbesondere in 1 dargestellt ist, wobei in 1 lediglich dessen Lesepfad dargestellt ist. Der S-DRAM 1 enthält ein Speicherzellenfeld 2. Über einen Leseverstärker 3 und eine internen Datenbus 4 werden getaktet über ein internes Taktsignal CLK Daten aus dem Speicherzellenfeld 2 ausgelesen. Zur synchronen Datenausgabe enthält der Lesedatenpfad ein Datenpuffer-FIFO 5. Die in dem Datenpuffer-FIFO 5 zwischengespeicherten Lesedaten werden über einen OCD-Treiber 6 (OCD = Off Chip Driver) aus dem Datenpuffer-FIFO 5 ausgelesen und über einen externen Datenbus 7 weiteren Kommunikationsteilnehmern, beispielsweise einem Mikrokontroller, zur weiteren Verarbeitung zugeführt.

Das Datenpuffer-FIFO 5 wird von dem Leseverstärker 3 über einen Lesezeiger INP und von einem Leselatenzgenerator 8 mittels eines Ausgangszeigers OUTP angesteuert. Der Ausgangszeiger OUTP fungiert als zeitverzögertes Datenfreigabesignal. Zur Steuerung und somit zur Einstellung der Leselatenz ist der Leselatenzgenerator 8 eingangsseitig über einen nicht dargestellten Decoder mit einem Mode-Register verbunden, in welchem die Latenzinformationen für die verschiedenen Betriebsmodi des S-DRAM abgelegt sind.

2 der Zeichnung zeigt ein schematisches Signal-Zeit-Diagramm für einen durch einen Lesebefehl RD eingeleiteten Auslesevorgang. Bei einem Lesezugriff werden die aus dem Speicherzellenfeld 2 auszulesende Lesedaten D0–D3 mit einer bekannten Signalverzögerung aus dem Speicherzellenfeld 2 ausgelesen und gelangen über den Leseverstärker 3, den internen Datenbus 4 und das Datenpuffer-FIFO 5 zu den Eingängen des OCD-Treibers 6. In 2 bezeichnet tAA diese Signalverzögerung, also die Auslesezeit tAA, die benötigt wird, um die Lesedaten D0–D3 aus dem Speicherzellenfeld 2 auszulesen und dem OCD-Treiber 6 zuzuführen. Die Auslesezeit tAA ist typischerweise mehrere Takte des internen Taktsignal CLK lang. Somit gilt: tAA > k·tCK, wobei tCK die Dauer eines einzelnen Taktes des internen Taktsignals CLK bezeichnet und k ein ganzzahliges Vielfaches bezeichnet.

Der OCD-Treiber 6 gibt mit einer weiteren, ebenfalls bekannten Signalverzögerung die ausgelesenen und entsprechend weitergeleiteten Lesedaten D0–D3 an den externen Datenbus 7 weiter. tDP bezeichnet hier die Laufzeit durch den OCD-Treiber 7.

Aufgrund der bekannten Signalverzögerungen tAA, tDP wird die so genannte Leselatenz &Dgr;T definiert. Die Leselatenz bezeichnet die Zeitdauer &Dgr;T, die mindestens benötigt wird, um Lesedaten D0–D3 aus dem Speicherzellenfeld 2 auszulesen und unter Berücksichtigung der Signalverzögerungen tAA, tDP am Ausgang des OCD-Treibers 6 bereit zu stellen. Diese Leselatenz &Dgr;T ist ein ganzzahliges Vielfaches eines Taktes des internen Taktsignals CLK und somit der Zeitdauer tCK, so dass gilt: &Dgr;T = n·tCK.

Allerdings erfolgt das Auslesen der Daten D0–D3 aus dem Speicherzellenfeld 2 unter Verwendung des internen Taktsignals CLK, wohingegen das Auslesen der Daten D0–D3 am Ausgang des OCD-Treibers 6 unter Verwendung eines externen Taktsignals DLL-CLK erfolgt. Dieses externe Taktsignal DLL-CLK wird typischerweise über eine eigens dafür vorgesehene DLL-Schaltung generiert. Typischerweise ist das interne Taktsignal CLK asynchron zu dem externen Taktsignal DLL-CLK. Daher ist die Leselatenz &Dgr;T typischerweise um &Dgr;T1 größer als die Summe aus der Auslesezeit tAA und der Durchlaufzeit tDP, so dass gilt: &Dgr;T = n·tCLK > tAA + tDP, und damit &Dgr;T = tAA + tDP + &Dgr;T1

Diese Leselatenz &Dgr;T ist bekannt. Die Leselatenz &Dgr;T wird typischerweise durch den Leselatenzgenerator 8 erzeugt, der den Ausgangszeiger OUTP gegenüber dem Eingangszeiger INP entsprechend um n-Takte der Leselatenz &Dgr;T verschiebt. Diese n-Takte der Leselatenz &Dgr;T werden durch einen eigens dafür vorgesehenen Leselatenzzähler 8 gezählt, der in entsprechender Weise den Ausgangszähler OUTP gegenüber dem Eingangszähler INP um eine Anzahl n der Takte des Taktsignals CLK verschiebt.

Bei der Realisierung eines Leselatenzzähler wird meist ein FIFO bassiertes Konzept verwendet, bei dem das chipinterne Lesesignal RDint gesteuert von dem Leselatenzgenerator 8 um die programmierte Leselatenz &Dgr;T verschoben wird und in die Domain des externen Taktsignals DLL-CLK überführt wird. 3 der Zeichnung zeigt anhand eines Blockschaltbildes dieses Konzept. 3 zeigt dabei ein Datenpuffer-FIFO 9 mit vier einzelnen FIFO-Zellen 9a, also der FIFO-Tiefe FT = 4. Die Verschiebung der Taktdomain wird dadurch realisiert, dass zum Beispiel der Eingangszeiger INP0 die Zelle „0" des Datenpuffer-FIFOs öffnet, so dass in der Folge das interne Datensignal RDint eingelesen wird. Zur selben Zeit ist zum Beispiel der Ausgangszähler OUTP1 aktiv. Das hat zur Folge, dass das interne Datensignal RDint erst drei Takte später aus der Zelle 0 ausgelesen wird (siehe 3A), unter der Prämisse, dass jeder der Eingangszeiger INP0–INP3 und Ausgangszeiger OUTP0–OUTP3 jeweils für die Dauer eines Taktes abwechselnd und nacheinander aktiv ist.

Bei einem Auslesevorgang entspricht die zum Auslesen von Daten notwendige Anzahl an FIFO-Zellen 9a je nach Implementierung zum Beispiel der maximal programmierbaren Leselatenz &Dgr;T. Dies hat zur Folge, dass für sehr hohe Leselatenzen &Dgr;T die Anzahl der FIFO-Zellen 9a in entsprechender Weise sehr groß gewählt werden muss. Die Ausgänge dieser einzelnen FIFO-Zellen 9a sind, wie in der 3 dargestellt ist, jedoch alle miteinander kurzgeschlossen, um das intern ausgelesene Datensignal RDint extern zu einem gemeinsamen Datensignal RDout zusammenzuführen. Somit ist jeder Ausgang einer FIFO-Zelle jeweils mit einer externen Last verbunden, was insgesamt zu zunehmend schlechteren, also flacher werdenden Flanken der ausgelesenen Datensignale führt. Erschwerend kommt hinzu, dass die jeweiligen Ausgangsleitungen der FIFO-Zellen 9a bei einer sehr großen FIFO-Tiefe sehr lang werden können, was natürlich zu entsprechend unerwünscht hohen parasitären Kapazitäten führen kann. Auch das wirkt sich vor allem bei einer sehr großen Anzahl an FIFO-Zellen 9a zunehmend negativ aus.

Diese Probleme sind um so vorherrschender, je höher die Betriebsfrequenz des Speicherbausteins ist, da bei konstanten Auslesezeiten tAA und Durchlaufzeiten tDP die Leselatenz &Dgr;T bezogen auf das Taktsignal, welches abhängig ist von der Frequenz, zunehmend größer wird. Dies führt unmittelbar zu einer größeren Anzahl an FIFO-Zellen und somit einer größeren FIFO-Tiefe. Das am Ausgang ausgelesene Lesesignal RDout weist insbesondere bei sehr hohen Betriebsfrequenzen und damit einhergehend einer großen FIFO-Tiefe zunehmend flachere Flanken auf. Damit wird es wiederum schwieriger, das Datensignal RDout auf das externe Taktsignal DLL-CLK zu synchronisieren und damit das externe Datensignal RDout definiert dekodieren zu können.

Vor diesem Hintergrund liegt der vorliegenden Erfindung die Aufgabe zugrunde, eine bessere und insbesondere eine effektivere Einstellung der Leselatenz, insbesondere bei sehr hohen Betriebsfrequenzen, zu ermöglichen. Eine alternative Aufgabe besteht darin, ein besseres und insbesondere ein zuverlässigeres Auslesen von Lesedaten bei hohen Betriebsfrequenzen eines Halbleiterspeichers zu ermöglichen.

Erfindungsgemäß wird zumindest eine dieser Aufgaben durch eine Schaltungsanordnung mit den Merkmalen des Patentanspruchs 1, durch eine Halbleiterspeicherschaltung mit den Merkmalen des Patentanspruchs 10 sowie durch ein Verfahren mit den Merkmalen des Patentanspruchs 14 gelöst.

Demgemäß ist vorgesehen:

Eine Schaltungsanordnung zur zeitlichen Verzögerung von aus einem Halbleiterspeicher ausgelesenen Lesedaten mit einer vorgegebenen Leselatenz, mit einem gemeinsamen Dateneingang, an dem die aus dem Halbleiterspeicher ausgelesenen Lesedaten anliegen, mit einem Datenpuffer-FIFO zur Pufferung der ausgelesenen Lesedaten, welches mehrere FIFO-Module mit jeweils mehreren einzelnen FIFO-Zellen aufweist, wobei die FIFO-Module jeweils über diesen zugeordnete erste Eingangs- und Ausgangszeiger und die FIFO-Zellen jeweils über diesen zugeordnete zweite Eingangs- und Ausgangszeiger ansprechbar sind, mit einem steuerbaren Leselatenzgenerator, der die ersten und zweiten Ausgangszeiger zur Ansteuerung der FIFO-Module und FIFO-Zellen mit der mit Bezug auf die ersten bzw. zweiten Eingangszeiger vorgegebenen Leselatenz erzeugt, mit einem gemeinsamen Datenausgang, an dem die Lesedaten zeitverzögert mit der eingestellten Leselatenz anliegen. (Patentanspruch 1)

Eine Halbleiterspeicherschaltung, mit einem Speicherzellenfeld, aus dem bei einem Lesezugriff Lesedaten auslesbar sind, mit einem Lesepfad, in dem folgende Schaltungsteile angeordnet sind: ein Leseverstärker, eine dem Leseverstärker ausgangsseitig nachgeschaltete erfindungsgemäße Schaltungsanordnung, ein der Schaltungsanordnung ausgangsseitig nachgeschalteter OCD-Treiber, eine Ausgangsschnittstelle, an der die mit der vorgegebenen Leselatenz verzögerten Lesedaten abgreifbar sind. (Patentanspruch 10)

Ein Verfahren zum Auslesen eines Datenpuffer-FIFOs in einer erfindungsgemäßen Schaltungsanordnung mit einem zweistufigen Auslesevorgang zum Auslesen der in dem Datenpuffer-FIFO abgelegten Lesedaten, enthaltend die Verfahrensschritte:

  • – Mittels eines zweiten Ausgangszeigers, der einer auszulesenden FIFO-Zelle eines auszulesenden FIFO-Moduls zugeordnet ist, wird die auszulesende FIFO-Zelle ausgewählt, wodurch der gemeinsame FIFO-Modulausgang des auszulesenden FIFO-Moduls mit dem Inhalt der auszulesenden FIFO-Zelle umgeladen wird;
  • – Einen Takt eines internen Taktsignals später wird das auszulesende FIFO-Modul über einen ersten Ausgangszeiger OUTPA, der dem auszulesenden FIFO-Modul zugeordnet ist, ausgewählt, wodurch der Inhalt des gemeinsamen FIFO-Modulausgangs auf den gemeinsamen Datenausgang 12 umgeladen wird. (Patentanspruch 14)

Die der vorliegenden Erfindung zugrunde liegende Idee besteht darin, ein modular aufgebautes Datenpuffer-FIFO zu verwenden. Das Dampfpuffer-FIFO fungiert hier allgemein als Leselatenzzähler und wird von einem internen Taktsignal getaktet. Dabei sind die einzelnen modularen FIFO-Stufen des Datenpuffer-FIFO kaskadiert zueinander angeordnet. Auf diese Weise ist es möglich, das eingangs beschriebene Problem, welches sich mit dem Kurzschluss der Ausgänge sowie der zu langen Ausgangsleitungen des Datenpuffer-FIFOs und dem damit einher gehendem Einfluss parasitärer Kapazitäten ergibt, zu umgehen.

Das modular aufgebaute Datenpuffer-FIFO enthält mehrere FIFO-Module. Diese FIFO-Module sind zueinander parallel angeordnet und fungieren quasi als eigenständige Datenpuffer-FIFOs. Jedes einzelne FIFO-Modul weist eine Anzahl von FIFO-Zellen auf, die jeweils über ein Eingangszähler und Ausgangszähler adressierbar sind. Die Eingangszeiger geben dabei den Bezug für die Ausgangszeiger an. Die Ausgangszeiger fungieren als Datenfreigabe(-signale) der im Datenpuffer-FIFO bzw. in dessen FIFO-Modulen gespeicherten Lesedaten.

Die dadurch realisierbare FIFO-Anordnung ermöglicht in besonders vorteilhafter Weise ein mehrstufiges bzw. zumindest zweistufiges Auslesen des Inhalts des erfindungsgemäßen Datenpuffer-FIFOs. In einer ersten Stufe wird bspw. ein erstes FIFO-Modul ausgelesen. In der nachfolgenden zweiten Stufe werden die dadurch gewonnen Lesedaten am gemeinsamen Datenausgang zusammengeführt.

Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus den weiteren Unteransprüchen sowie der Beschreibung und der Bezugnahme auf die Zeichnungen.

Vorzugsweise ist das Datenpuffer-FIFO zumindest zweistufig ausgebildet. Eine erste FIFO-Stufe enthält die FIFO-Module und eine zweite FIFO-Stufe enthält die FIFO-Zellen. Denkbar wäre selbstverständlich auch andere Abstufung, beispielsweise eine drei- oder mehrstufig ausgebildete Topographie des Datenpuffer-FIFOs. In diesem Falle müssten selbstverständlich auch die Anzahl der Eingangs- und Ausgangszeiger entsprechend an die Anzahl der Stufen angepasst werden.

In einer typischen, jedoch nicht notwendigen Ausgestaltung weist jedes FIFO-Modul eine gleiche Anzahl an FIFO-Zellen, beispielsweise vier FIFO-Zellen, auf. Vorzugsweise entspricht die Anzahl der FIFO-Module etwa der Anzahl der FIFO-Zellen eines oder jeweils aller FIFO-Module.

Eine typische Implementierung sieht vor, dass jedes FIFO-Modul einen gemeinsamen FIFO-Moduleingang und einen gemeinsamen FIFO-Modulausgang aufweist. Die Mehrzahl der FIFO-Module sind hier bezüglich deren FIFO-Moduleingänge und FIFO-Modulausgänge parallel zueinander angeordnet. Die Ansteuerung der FIFO-Module mit den Eingangs- und Ausgangszeigern erfolgt so, dass die FIFO-Module nacheinander aktiviert werden, so dass dadurch ein kaskadiertes Betreiben der FIFO-Module möglich wird.

Vorzugsweise ist zur Verstärkung der aus einem FIFO-Modul ausgangsseitig ausgelesenen Lesedaten jeweils eine diesem FIFO-Modul zugeordnete Treiberschaltung nachgeschaltet, über welche die gemeinsamen FIFO-Modulausgängen zu dem gemeinsamen Datenausgang zusammengeführt sind. Diese Treiberschaltung kann zum Beispiel als Tristate-Treiber oder auch als herkömmlicher Ausgangstreiber, z. B. als OPV, ausgebildet sein.

Vorzugsweise ist ein Mode-Register vorgesehen, in dem zumindest eine vorgegebene Leselatenz zur Ansteuerung des Leselatenzgenerator abgelegt ist oder ablegbar ist. Im Falle mehrerer abgespeicherter Leselatenzen lässt sich das Datenpuffer-FIFO in mehreren Betriebsmodi betreiben.

Typischerweise, jedoch nicht notwendigerweise, ist das Datenpuffer-FIFO und/oder jedes FIFO-Modul und/oder jede FIFO-Zelle mit einem Takt eines internes Taktsignal, mit welchem auch die Lesedaten ausgelesen werden, getaktet.

In einer sehr vorteilhaften Ausgestaltung ist eine jeweilige FIFO-Zelle und/oder ein jeweiliges FIFO-Modul sowohl in einem Schreibmodus als auch in einem Lesemodus betreibbar. Im Schreibmodus ist die FIFO-Zelle über einen dieser FIFO-Zelle zugeordneten spezifischen zweiten Eingangszähler adressierbar, so dass ein Lesedatum in dieser FIFO-Zelle ablegbar ist. Im Lesemodus ist die FIFO-Zelle über einen dieser FIFO-Zelle zugeordneten spezifischen zweiten Ausgangszähler auswählbar, so dass hier das abgelegte Lesedatum aus dieser FIFO-Zelle auslesbar ist.

In einer sehr typischen Ausgestaltung ist die erfindungsgemäße Schaltungsanordnung derart ausgebildet, dass während eines Taktes eines internen Taktsignals maximal lediglich eine FIFO-Zelle im Schreibmodus und maximal lediglich eine andere FIFO-Zelle im Lesemodus betreibbar sind.

Eine sehr vorteilhafte Ausgestaltung der erfindungsgemäßen Halbleiterspeicherschaltung sieht einen ersten Taktgenerator vor, der für das Auslesen der Lesedaten aus dem Speicherzellenfeld, für den Leseverstärker und/oder für das Datenpuffer-FIFO der Schaltungsanordnung ein internes Taktsignal erzeugt. Ferner kann ein zweiter Taktgenerator vorgesehen sein, der für das zeitverzögerte Auslesen der Lesedaten über den OCD-Treiber und die Ausgangsschnittstelle ein gegenüber dem internen Taktsignal typischerweise asynchrones externes Taktsignal bereitstellt. In einer sehr zweckmäßigen Ausgestaltung ist der zweite Taktgenerator als DLL-Schaltung ausgebildet, die das zweite Taktsignal aus dem ersten Taktsignal ableitet.

Die vorliegende Erfindung eignet sich insbesondere bei so genannten DDR-Halbleiterspeichern (DDR = double data rate) und insbesondere bei Speichern für Grafikanwendungen, um dem eingangs genannten Bedarf einer immer höheren Datenverarbeitungsgeschwindigkeit gerecht zu werden. Bei solchen DDR-DRAM-Speicher werden Daten sowohl bei der ansteigenden, als auch bei der abfallenden Flanke eines internen Taktsignals aus dem Halbleiterspeicher ausgelesen bzw. wieder in den Speicher geschrieben, so dass sich diese Art eines Halbleiterspeichers durch eine vergleichsweise doppelte Datenrate auszeichnet. Daher eignen sich solche Speicher vor allem für Grafikanwendungen. Bei Grafikanwendungen wird aufgrund der Vielzahl der zu verarbeitenden Daten eine besonders hohe Anforderung auf die Leistungsfähigkeit des Speichers gelegt.

Die Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnung angegebenen Ausführungsbeispiele näher erläutert. Es zeigt dabei:

1 ein Blockschaltbild mit einem Ausschnitt eines bekannten S-DRAM-Speichers im Bereich dessen Lesepfades;

2 ein Ablaufdiagramm für einen Lesezugriff zur Definition der Leselatenz;

3, 3A Blockschaltbilder zur Erläuterung der allgemeinen Problematik der Funktion eines Leselatenzzählers;

4 ein Blockschaltbild eines erfindungsgemäßen Schaltungsanordnung mit einem Leselatenzzähler;

5 ein Blockschaltbild eines einzelnen FIFO-Moduls 13 des erfindungsgemäßen Leselatenzzählers aus 4 im Detail;

6 ein Blockschaltbild mit einem Ausschnitt eines erfindungsgemäßen S-DRAM-Halbleiterspeichers im Bereich dessen Lesepfades.

In den Figuren der Zeichnung sind gleiche bzw. funktionsgleiche Elemente und Signale – sofern nichts Anderes angegeben ist – mit den selben Bezugszeichen versehen worden.

4 zeigt ein Blockschaltbild einer erfindungsgemäßen Schaltungsanordnung mit einem Leselatenzzähler. Die erfindungsgemäße Schaltungsanordnung enthält als Leselatenzzähler ein Datenpuffer-FIFO 10. Das Datenpuffer-FIFO 10 weist einen gemeinsamen Dateneingang 11 und einen gemeinsamen Datenausgang 12 auf. Über den Dateneingang 11 wird ein internes Lesesignal RDint in das Datenpuffer-FIFO 10 eingekoppelt, welches mit der jeweils eingestellten Leselatenz entsprechend zeitverzögert am gemeinsamen Datenausgang 12 als verzögertes externes Lesesignal RDout abgreifbar ist.

Erfindungsgemäß ist das Datenpuffer-FIFO 10 modular aufgebaut und weist im vorliegenden Ausführungsbeispiel insgesamt vier FIFO-Module 13 auf, die zur gegenseitigen Unterscheidung hier mit A–D gekennzeichnet sind. Die vier FIFO-Module 13 sind zwischen dem gemeinsamen Dateneingang 11 und dem gemeinsamen Datenausgang 12 angeordnet und ferner bezüglich deren Eingänge und Ausgänge zueinander parallel angeordnet. Jedes der FIFO-Module 13 weist vier einzelne FIFO-Zellen 14 auf, wobei die jeweiligen FIFO-Zellen 14 innerhalb eines jeweiligen FIFO-Moduls 13 zur gegenseitigen Unterscheidung mit a–d gekennzeichnet sind. Diese FIFO-Zellen 14 sind in bekannter Weise parallel zueinander angeordnet und sind somit eingangsseitig mit dem Dateneingang 11 und ausgangsseitig mit dem Datenausgang 12 verbunden. Zwischen einem jeweiligen Ausgang eines FIFO-Moduls 13 und dem gemeinsamen Datenausgang 12 ist jeweils eine Verstärkerschaltung 15 angeordnet, beispielsweise ein Tristate-Treiber 15.

Im Unterschied zu bekannten Datenpuffer-FIFOs 10 weist das erfindungsgemäße Datenpuffer-FIFO 10 zwei Eingangszeiger INPX, INPY sowie zwei Ausgangszeiger OUTPX, OUTPY auf, mit X = [A – D] und Y = [a – d]. Jeweils einer dieser Eingangs- und Ausgangszeiger INPX, OUTPX dient dem Selektieren und Aktivieren eines jeweiligen FIFO-Moduls 13, wohingegen der jeweils andere Eingangs- und Ausgangszeiger INPY, OUTPY dem Selektieren und Aktivieren der jeweiligen FIFO-Zelle 14 innerhalb dieses FIFO-Moduls 13 dient. Im Falle eines Selektierens und Aktivierens einer FIFO-Zelle bzw. eines FIFO-Moduls können Daten in diese abgelegt werden bzw. aus diesen wieder ausgelesen werden.

Im vorliegenden Ausführungsbeispiel weist das erfindungsgemäße Datenpuffer-FIFO 10 somit insgesamt 16 FIFO-Zellen 14 auf, die auf vier FIFO-Module 13 mit je vier FIFO-Zellen 14 aufgeteilt sind. Auf diese Weise erhält man insgesamt zwei Typen von Ausgangsknoten 16, 12. Die vier ersten Ausgangsknoten 16 befinden sich am Ausgang eines jeweiligen FIFO-Moduls 13 und sind dazu ausgelegt, die vier einzelnen FIFO-Zellen 14 eines jeweiligen FIFO-Moduls 13 miteinander zu verbinden. Der zweite Ausgangsknoten 12 bildet gewissermaßen den gemeinsamen Ausgang 12 des Datenpuffer-FIFOs 10 und verbindet somit die vier einzelnen FIFO-Module 14 miteinander.

5 zeigt die Funktionsweise eines einzelnen FIFO-Moduls 13 – im vorliegenden Ausführungsbeispiel das mit A bezeichnete FIFO-Modul 13 – im Detail. Dieses FIFO-Modul 13 wird über den Eingangszeiger INPA und den Ausgangszeiger OUTPA selektiert. Zum Auswählen der jeweiligen FIFO-Zellen 14 innerhalb dieses FIFO-Moduls 13 ist jeder FIFO-Zelle 14 zusätzlich ein eigener Eingangszeiger INPa–INPd zum Einlesen der jeweiligen Lesedaten RDint zugeordnet. Ferner ist jeder dieser FIFO-Zellen 14 auch ein eigener Ausgangszeiger OUTPa–OUTPd zugeordnet.

Nachfolgend wird die Funktionsweise des erfindungsgemäßen, als Latenzzähler ausgebildeten Datenpuffer-FIFOs 10 und insbesondere eines einzelnen FIFO-Moduls 13 kurz erläutert:

Das Einlesen von internen Lesedaten RDint, die einem Lesekommando RD (siehe 2) zugeordnet sind, in eine FIFO-Zelle 14 eines FIFO-Moduls 13 geschieht auf folgende Weise: Zunächst wird das entsprechende FIFO-Modul 13 mittels des Eingangszeigers INPA selektiert. Jede FIFO-Zelle 14 dieses FIFO-Moduls 13 ist jeweils mit einem unterschiedlichen Eingangszähler INPa–INPd verbunden, so dass nacheinander jeweils eine der dem Eingangszeiger INPa–INPd zugeordneten FIFO-Zelle 14 geöffnet wird.

Das Auslesen dieses FIFO-Moduls 13 erfolgt zweistufig: Zuerst wird eine der FIFO-Zellen 14 des jeweils ausgewählten FIFO-Moduls 13 geöffnet, wodurch der gemeinsame Knoten 16 am Ausgang dieses FIFO-Moduls 13 umgeladen wird. Einen Takt des internen Taktsignals CLK später wird dieses FIFO-Modul 13 über den Ausgangszeiger OUTPA ausgewählt. Das Ausgangssignal dieses FIFO-Moduls 13 wird über den Ausgangstreiber 15 dem gemeinsamen Ausgang 12 zugeführt. Dabei wird der gemeinsame Knoten 16 am Ausgang des ausgewählten FIFO-Moduls 13 auf den gemeinsamen Ausgang 12 umgeladen. Das Auslesen erfolgt also in zwei synchron und aufeinanderfolgenden Verfahrensschritten, wobei jeder Schritt für sich insgesamt durch eine geringere Last gekennzeichnet ist und somit (im Vergleich zu einer lediglich einstufigen Ausgestaltung des Datenpuffer-FIFOs wie in 3) sehr viel schneller durchgeführt werden kann. Dadurch wird die Ausgangslast des Datenpuffer-FIFOs 10 signifikant reduziert. Das erfindungsgemäße Datenpuffer-FIFO 10 ist somit für den. Betrieb bei sehr hohen Betriebsfrequenzen geeignet.

6 zeigt anhand eines Blockschaltbildes einen Ausschnitt eines Halbleiterspeichers im Bereich dessen Lesepfades. Der erfindungsgemäße Halbleiterspeicher ist hier mit Bezugszeichen 20 bezeichnet. Der Halbleiterspeicher 20 kann z. B. ein DDR-DRAM-Speicher oder ein herkömmlicher S-DRAM-Speicher sein. Der Halbleiterspeicher 20 enthält ein Speicherzellenfeld 21, in welches Daten geschrieben werden können und auch wieder ausgelesen werden können. Im Lesepfad des Halbleiterspeichers 20 ist ein Leseverstärker 22, ein interner Datenbus, ein OCD-Treiber 23 sowie eine Ausgangsschnittstelle 24 und ein externer Datenbus 28 angeordnet. Zwischen dem Leseverstärker 22, der dem Auslesen von Lesedaten aus dem Speicherzellenfeld 21 dient, und dem OCD-Treiber 23 ist das Datenpuffer-FIFO 10 angeordnet. Der Leseverstärker 22 ist dazu ausgelegt, jeweils zwei Eingangszeiger INPX, INPY zu erzeugen, die dem Datenpuffer-FIFO 10 zugeführt werden.

Ferner ist ein Leselatenzgenerator 25 vorgesehen, der die unterschiedlichen Latenzen bei den unterschiedlichen Ausgangszeigern OUTPX, OUTPY zur Ansteuerung des Datenpuffer-FIFOs 10 einstellt. 6 zeigt ferner ein so genanntes Mode-Register 26, in welchem die vorgegebenen Leselatenzen (beispielsweise für unterschiedliche Betriebsmodi des Halbleiterspeichers 20) abgelegt sind. Eine im Mode-Register 26 gespeicherte Leselatenz lässt sich in einem eigens dafür vorgesehenen Decoder 27 decodieren und als CAS-Latenz 30 dem Leselatenzgenerator 25 zuführen, der die beiden Ausgangszeiger OUTPX, OUTPY mit der jeweils gewünschten Leselatenz bezogen auf die jeweiligen Eingangszeiger INPX, INPY erzeugt.

6 zeigt ferner einen ersten Taktgenerator 31, der das interne Taktsignal CLK erzeugt, welches in einem zweiten Taktgenerator 32 zur Erzeugung des externen Taktsignals DLL-CLK verwendet wird.

Obwohl die vorliegende Erfindung vorstehend anhand bevorzugter Ausführungsbeispiele näher erläutert wurde, sei sie nicht darauf beschränkt, sondern ist auf vielfältige Art und Weise modifizierbar. Insbesondere ist das erfindungsgemäße Datenpuffer-FIFO wie auch der Leselatenzgenerator zur Erzeugung der Ausgangszeiger schaltungstechnisch bewusst sehr einfach dargestellt worden. Es versteht sich von selbst, dass diese Schaltungsteile auch modifiziert ausgebildet werden können, ohne dass vom grundsätzlichen Wesen der vorliegenden Erfindung abgewichen wird.

Es versteht sich auch von selbst, dass die angegebenen Zahlenangaben, also die Verwendung von vier FIFO-Modulen und jeweils vier FIFO-Zellen innerhalb eines FIFO-Moduls, lediglich beispielhaft gewählt wurden, um im vorliegenden Ausführungsbeispiel eine FIFO-Tiefe von 16 zu erzeugen. Eine solche FIFO-Tiefe von 16 lässt sich auch durch eine andere Aufteilung der FIFO-Module und FIFO-Zellen realisieren. Darüber hinaus ist es auch denkbar, eine geringere oder größere FIFO-Tiefe durch eine unterschiedliche Aufteilung der FIFO-Module und FIFO-Zellen zu realisieren. Insbesondere kann das Datenpuffer-FIFO auch auf andere Weise modular aufgebaut werden, bspw. durch Verwendung einer größeren oder auch einer kleineren Anzahl an FIFO-Modulen oder auch durch Variation der Anzahl der FIFO-Zellen innerhalb eines FIFO-Moduls. In einer Minimalvariante würde es auch ausreichen, wenn lediglich zwei FIFO-Module und/oder nur zwei FIFO-Zellen innerhalb eines FIFO-Moduls vorgesehen sind. Insbesondere sei darauf hingewiesen, dass nicht notwendigerweise jedes der FIFO-Module jeweils eine identische Anzahl an FIFO-Zellen aufweisen muss, sondern diese bei den verschiedenen FIFO-Modulen auch unterschiedlich sein können. Darüber hinaus wurde in dem vorliegenden Ausführungsbeispiel eine zweistufig ausgebildete Architektur eines erfindungsgemäßen Datenpuffer-FIFOs beschrieben. Es versteht sich von selbst, dass auch eine mehr als zweistufige Struktur des Datenpuffer-FIFOs denkbar ist, bspw. jeweils indem jeweils mehrere FIFO-Module zu einem übergeordneten FIFO-Modul zusammengefasst werden und so eine drei- oder mehrstufige FIFO-Struktur implementiert wird.

1
Halbleiterspeicher
2
Speicherzellenfeld
3
Leseverstärker
4
interner Datenbus
5
Datenpuffer-FIFO
6
OCD-Treiber, Ausgangstreiber
7
externer Datenbus
8
Leselatenzgenerator
9
Datenpuffer-FIFO
9a
FIFO-Zellen
10
Datenpuffer-FIFO
11
gemeinsamer Dateneingang
12
gemeinsamer Datenausgang
13
FIFO-Module
14
FIFO-Zellen
15
Ausgangstreiber, Tristate-Treiber
16
gemeinsame Ausgangsknoten
17
Takteingang
20
Halbleiterspeicher, DDR-DRAM
21
Speicherzellenfeld
22
Leseverstärker
23
OCD-Treiber
24
Ausgangsschnittstelle
25
Leselatenzgenerator
26
Mode-Register
27
Decoder
28
externer Datenbus
29
interner Datenbus
30
CAS-Latenz
31
Taktgenerator zur Erzeugung des internen Taktsignals
32
Taktgenerator zur Erzeugung des externen Taktsignals, DLL-Schaltung)
CLK
internes Taktsignal
D0–D3
(Lese-)Daten
DLL-CLK
externes Taktsignal; DLL-Taktsignal
INP
Eingangszeiger
INP0–INP3
Eingangszeiger
INPX, INPY
Eingangszeiger
n
Anzahl der Takte
OUTP
Ausgangszeiger
OUTP0–OUTP3
Ausgangszeiger
OUTPX, OUTPY
Ausgangszeiger
RD
Lesekommando
NOP
NOP-Befehl (NOP = no operation)
RDint
interne Lesedaten
RDout
Lesedaten am Ausgang des Datenpuffer-FIFOs
RDout'
Lesedaten am Ausgang des OCD-Treibers
tAA
Auslesezeit
tCLK
Zykluszeit, Dauer eines einzelnen Taktes
tDP
Durchlaufzeit
&Dgr;T
Leselatenzzeit
&Dgr;T1
Zeitdauer


Anspruch[de]
Schaltungsanordnung (10, 25, 26) zur zeitlichen Verzögerung von aus einem Halbleiterspeicher ausgelesenen Lesedaten mit einer vorgegebenen Leselatenz (&Dgr;T),

mit einem gemeinsamen Dateneingang (11), an dem die aus dem Halbleiterspeicher ausgelesenen Lesedaten (RDint) anliegen,

mit einem Datenpuffer-FIFO (10) zur Pufferung der ausgelesenen Lesedaten, welches mehrere FIFO-Module (14) mit jeweils mehreren einzelnen FIFO-Zellen (13) aufweist, wobei die FIFO-Module (14) jeweils über diesen zugeordnete erste Eingangs- und Ausgangszeiger (INPX, OUTPX) und die FIFO-Zellen (14) jeweils über diesen zugeordnete zweite Eingangs- und Ausgangszeiger (INPY, OUTPY) ansprechbar sind,

mit einem steuerbaren Leselatenzgenerator (25), der die ersten und zweiten Ausgangszeiger (OUTPX, OUTPY) zur Ansteuerung der FIFO-Module (13) und FIFO-Zellen (14) mit der mit Bezug auf die ersten bzw. zweiten Eingangszeiger (INPX, INPY) vorgegebenen Leselatenz (&Dgr;T) erzeugt,

mit einem gemeinsamen Datenausgang (12), an dem die Lesedaten (RDout) zeitverzögert mit der vorgegebenen Leselatenz anliegen.
Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, dass das Datenpuffer-FIFO zumindest zweistufig ausgebildet ist, wobei eine zumindest erste FIFO-Stufe die FIFO-Module (13) aufweist und eine zweite FIFO-Stufe die FIFO-Zellen (14) enthält. Schaltungsanordnung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass jedes FIFO-Modul (13) eine gleiche Anzahl an FIFO-Zellen (14), insbesondere vier FIFO-Zellen (14), aufweist. Schaltungsanordnung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass jedes FIFO-Modul (13) einen gemeinsamen FIFO-Moduleingang (11) und einen gemeinsamen FIFO-Modulausgang (16) aufweist und dass die Mehrzahl der FIFO-Module (13) bezüglich deren FIFO-Moduleingängen (11) und FIFO-Modulausgängen (16) parallel zueinander angeordnet sind. Schaltungsanordnung nach Anspruch 4, dadurch gekennzeichnet, dass einem FIFO-Modul (13) ausgangsseitig jeweils eine diesem FIFO-Modul (13) zugeordnete Treiberschaltung (15), insbesondere ein Tristate-Treiber (15), nachgeschaltet ist, über welche die gemeinsamen FIFO-Modulausgängen (16) zu dem gemeinsamen Datenausgang (12) zusammengeführt sind. Schaltungsanordnung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass ein Mode-Register (26) vorgesehen ist, in dem zumindest eine vorgegebene Leselatenz &Dgr;T zur Ansteuerung des Leselatenzgenerator (25) abgelegt ist. Schaltungsanordnung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Datenpuffer-FIFO (10) und/oder jedes FIFO-Modul (13) und/oder jede FIFO-Zelle (14) mit einem Takt eines internes Taktsignal (CLK), mit welchem auch die Lesedaten (RDint) ausgelesen werden, getaktet ist. Schaltungsanordnung nach wenigstens einem der vorherigen Ansprüche,

dadurch gekennzeichnet,

dass eine jeweilige FIFO-Zelle (14) und/oder ein jeweiliges FIFO-Modul (14) sowohl in einem Schreibmodus als auch in einem Lesemodus betreibbar ist,

– Wobei die FIFO-Zelle (14) im Schreibmodus über einen dieser FIFO-Zelle (14) zugeordneten spezifischen zweiten Eingangszähler adressierbar ist und in diesem Fall ein Lesedatum (RDint) in dieser FIFO-Zelle (14) ablegbar ist und

– Wobei die FIFO-Zelle (14) im Lesemodus über einen dieser FIFO-Zelle (14) zugeordneten spezifischen zweiten Ausgangszähler auswählbar ist und in diesem Fall das abgelegte Lesedatum (RDint) aus dieser FIFO-Zelle (14) auslesbar ist.
Schaltungsanordnung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass während eines Taktes eines internen Taktsignals (CLK) maximal eine FIFO-Zelle (14) im Schreibmodus und maximal eine andere FIFO-Zelle (14) im Lesemodus betreibbar sind. Halbleiterspeicherschaltung (20),

mit einem Speicherzellenfeld (21), aus dem bei einem Lesezugriff Lesedaten (RDint) auslesbar sind,

mit einem Lesepfad, in dem folgende Schaltungsteile angeordnet sind:

– ein Leseverstärker (22),

– eine dem Leseverstärker (22) ausgangsseitig nachgeschaltete Schaltungsanordnung (10, 25, 26) nach einem der vorstehenden Ansprüchen,

– ein der Schaltungsanordnung (10, 25, 26) ausgangsseitig nachgeschalteter OCD-Treiber (23),

– eine Ausgangsschnittstelle (24), an der die mit der vorgegebenen Leselatenz (&Dgr;T) verzögerten Lesedaten (RDout') abgreifbar sind.
Halbleiterspeicherschaltung nach Anspruch 10,

gekennzeichnet durch,

– einen ersten Taktgenerator (31), der für das Auslesen der Lesedaten (RDint) aus dem Speicherzellenfeld (21), für den Leseverstärker (22) und/oder für das Datenpuffer-FIFO (10) der Schaltungsanordnung (10, 25, 26) ein internes Taktsignal (CLK) erzeugt,

– einen zweiten Taktgenerator (32), der für das zeitverzögerte Auslesen der Lesedaten (RDout) über den OCD-Treiber (23) und die Ausgangsschnittstelle (24) ein gegenüber dem internen Taktsignal (CLK) asynchrones externes Taktsignal (DLL-CLK) bereitstellt.
Halbleiterspeicherschaltung nach Anspruch 11, dadurch gekennzeichnet, dass der zweite Taktgenerator (32) eine DLL-Schaltung (32) ist, die das externe Taktsignal (DLL-CLK) aus dem internen Taktsignal (CLK) ableitet. Halbleiterspeicherschaltung nach wenigstens einem der Ansprüche 10–12, dadurch gekennzeichnet, dass der Halbleiterspeicher (20) als DDR-DRAM-Speicher, insbesondere für Graphikanwendungen ausgebildet ist. Verfahren zum Auslesen eines Datenpuffer-FIFOs in einer Schaltungsanordnung (10, 25, 26) nach einem der Ansprüche 1–9, mit einem zweistufigen Auslesevorgang zum Auslesen der in dem Datenpuffer-FIFO abgelegten Lesedaten, enthaltend:

– Mittels eines zweiten Ausgangszeigers (OUTPa), der einer auszulesenden FIFO-Zelle eines auszulesenden FIFO-Moduls (13) zugeordnet ist, wird die auszulesende FIFO-Zelle (14) ausgewählt, wodurch der gemeinsame FIFO-Modulausgang (16) des auszulesenden FIFO-Moduls (13) mit dem Inhalt der auszulesenden FIFO-Zelle (14) umgeladen wird;

– Einen Takt eines internen Taktsignals (CLK) später wird das auszulesende FIFO-Modul (13) über einen ersten Ausgangszeiger (OUTPA), der dem auszulesenden FIFO-Modul (13) zugeordnet ist, ausgewählt, wodurch der Inhalt des gemeinsamen FIFO-Modulausgangs (16) auf den gemeinsamen Datenausgang (12) umgeladen wird.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com