-
Hintergrund der Erfindung
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine parallele Datenpfadarchitektur, die sich für Pseudo-SRAM eignet, und insbesondere eine Architektur, die das Lesen von Daten aus einem Speicherarray in einer Anzahl verschiedener Betriebsarten und Taktfrequenzen ermöglicht.
-
Allgemeiner Stand der Technik
-
Statische Direktzugriffsspeicher(SRAM)-Chips wurden gewöhnlich in mobilen und drahtlosen Einrichtungen wie drahtlosen Telefonen verwendet. Im Gegensatz zu dynamischen Direktzugriffsspeicher(DRAM)-Bausteinen behalten SRAMs Informationen in einem Speicherarray, während die Stromversorgung angelegt bleibt, ohne dass periodische Auffrischoperationen notwendig sind. Obwohl sie in Bezug auf Geschwindigkeit, Kosten und einfachen Betrieb Vorteile aufweisen, sind SRAMs wesentlich größer als DRAMs einer vergleichbaren Speicherkapazität, da jedes Speicherelement (Speicherzelle) eines SRAM-Speicherarrays mehr Transistoren als ein DRAM-Speicherelement benötigt. Lese- und Schreiboperationen in SRAMs in mobilen Anwendungen wurden in der Regel asynchron durchgeführt (d. h. ohne Verwendung eines Taktsignals), wobei ein Signaldatenraten(SDR)-Modus verwendet wird (d. h. mit jedem Spaltenzugriffsimpuls wird auf ein Bit zugegriffen). Im Gegensatz dazu werden DRAMs im Allgemeinen synchron betrieben, wobei ein extern zugeführter Takt verwendet wird, um Lese- und Schreiboperationen mit einer SDR-Schnittstelle oder einer Doppeldatenraten(engl.: double data rate, DDR)-Schnittstelle auszuführen, wobei mit jedem Taktimpuls auf zwei Bit zugegriffen wird, auf eins an der ansteigenden Flanke und auf eins an der fallenden Flanke.
-
Mit zunehmender Integration von Merkmalen und Funktionen in drahtlose Telefone, wie zum Beispiel Digitalkameras, Sprachverarbeitung, Spiele, Klingeltöne usw., sind herkömmliche SRAMs durch zunehmende Speicheranforderungen aufgrund von Größenbetrachtungen weniger wünschenswert geworden. Folglich werden nun in mobilen Anwendungen wie etwa drahtlosen Telefonen Pseudo-SRAMs verwendet. Wie in der Technik bekannt ist, handelt es sich bei Pseudo-SRAMs tatsächlich um DRAM-Bausteine, die im Wesentlichen die Funktionsweise von SRAM-Bausteinen imitieren. Wie andere DRAM-Bausteine erfordern Pseudo-SRAMs eine periodische Auffrischoperation, um Daten in dem Speicherzellenarray zu behalten, obwohl die Auffrischoperation vor dem Controller verborgen wird. Auf einem DRAM ist der Datenpfad der Teil des Chips, der den Datenfluss und die Zeitsteuerung während Lese- und Schreiboperationen steuert. Während der Schreiboperation transferiert der Datenpfad Daten von den Chipanschlussstellen zu dem Speicherarray, wo die Daten gespeichert werden. Während einer Leseoperation bringt der Datenpfad die Daten aus dem Speicherarray heraus und auf die Anschlussstellen, so dass die Daten über einen Bus oder dergleichen aus dem Chip heraus zu einem anderen Baustein gesteuert werden können.
-
Architektur und Entwurf des Datenpfades werden durch die DRAM-Schnittstelle, ihre Betriebsart und die Taktfrequenz, mit der der Chip arbeitet, beeinflusst. Da Pseudo-SRAM-Chips weiter verbreitet sind, wäre es für Kompatibilität mit vielfältigen Systemen und Einrichtungen wünschenswert, wenn Pseudo-SRAM-Chips eine asynchrone Schnittstelle früherer SRAM-Chips und die synchrone Schnittstelle derzeitig gebräuchlicher DRAMs enthielten. Im Fall des synchronen Betriebes sollten solche Pseudo-SRAMs zu einem Betrieb über vielfältige Taktfrequenzen und Datenlatenzen fähig sein.
-
US 5,835,443 A zeigt einen Speicherbaustein mit mehreren synchronen Datenpfaden, die von einem Speicherarray zu Datenanschlussstellen führen. Die synchronen Datenpfade unterscheiden sich voneinander durch den Zeitversatz, mit dem die aus dem Speicherarray ausgelesen Daten jeweils weitergeleitet werden. Die synchronen Datenpfade setzen jeweils das Vorhandensein eines Taktsignals voraus.
US 6,327,175 B1 zeigt einen Speicherbaustein, der je nachdem, ob ein Taktsignal anliegt oder nicht, Daten aus einem Speicherarray synchron oder asynchron ausliest. Ein weiterer Speicherbaustein, und zwar ein Pseudo-SRAM, ist in
US 2005/0068843 A1 beschrieben.
-
Es ist die Aufgabe der vorliegenden Erfindung, einen Speicherbaustein bereitzustellen, der noch vielseitiger einsetzbar ist und aus dem die gespeicherten Daten noch flexibler auslesbar sind, wobei das Auslesen sowohl das asynchrone als auch das synchrone Auslesen umfassen soll. Ferner soll ein Verfahren zum Auslesen eines derartigen Speicherbausteins bereitgestellt werden, bei dem unter Berücksichtigung externer Signale mehrere Auslesearten, darunter synchrone und asynchrone Auslesevorgänge, durchführbar sind.
-
Kurzfassung der Erfindung
-
Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche 1, 6, 10, 13, 15 und 19 gelöst.
-
Gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung enthält ein Speicherbaustein, wie zum Beispiel ein Pseudo-SRAM, eine parallele Datenpfadarchitektur, bei der mehrere Lesedatenpfade das Speicherarray an die Ausgangsdatenanschlussstellen des Speicherbausteins ankoppeln. Die Lesedatenpfade entsprechen verschiedenen Betriebsarten, und eine Betriebsartauswahleinrichtung wählt aus, welcher der Lesedatenpfade zum Übermitteln von aus dem Speicherarray abgerufenen Daten zu den Ausgangsdatenanschlussstellen verwendet wird.
-
Einer der Lesedatenpfade enthält einen asynchronen Datenpfad, der zum Übermitteln von abgerufenen Daten zu den Anschlussstellen bei Abwesenheit eines dem Speicherbaustein zugeführten externen Taktsignals ausgewählt wird. Weitere Lesedatenpfade enthalten synchrone Datenpfade, die in verschiedenen Betriebsarten arbeiten. Zum Beispiel kann einer der synchronen Datenpfade in einer zwischengespeicherten Betriebart (engl.: latched mode) arbeiten, der für niedrigere Taktfrequenzen geeignet ist, während ein anderer synchroner Datenpfad in einer FIFO(zuerst herein-zuerst hinaus, engl.: first-in-first-out)-Betriebsart arbeiten kann, die für höhere Taktfrequenzen geeignet ist. Die Betriebsartauswahleinrichtung kann unter Verwendung eines Taktfrequenzindikators auswählen, welcher dieser synchronen Datenpfade verwendet wird. Zum Beispiel gibt in bestimmten Speicherbausteinen der Wert eines extern zugeführten CAS(Spaltenzugriff-Abtast-, engl.: column access strobe)-Latenzsignals die Taktfrequenz an und kann als der Taktfrequenzindikator dienen.
-
Gemäß einem weiteren Aspekt der Erfindung umfasst ein Verfahren zum Durchführen einer Leseoperation in einem Speicherbaustein: Abrufen von Daten aus einem Speicherarray als Reaktion auf einen Empfang eines Lesebefehls; Auswählen eines asynchronen Datenpfades zum Zuführen der abgerufenen Daten zu Anschlussstellen des Speicherbausteins als Reaktion auf die Abwesenheit eines externen Taktsignals; und Auswählen eines von mehreren synchronen Datenpfaden zum Zuführen der abgerufenen Daten zu den Anschlussstellen des Speicherbausteins als Reaktion auf eine Detektion eines externen Taktsignals, wobei der synchrone Datenpfad als Funktion eines durch den Speicherbaustein empfangenen externen Signals ausgewählt wird.
-
Ferner umfasst ein Verfahren zur Herstellung eines Speicherbausteins gemäß einem weiteren Aspekt der vorliegenden Erfindung: Bereitstellen mehrerer paralleler Lesedatenpfade, die jeweils zwischen ein Speicherarray und Datenanschlussstelle des Speicherbausteins geschaltet sind, wobei die parallelen Lesedatenpfade mehrere synchrone Datenpfade, die in verschiedenen Betriebsarten betreibbar sind, und einen asynchronen Datenpfad umfassen; und Bereitstellen einer Betriebsartauswahleinrichtung zum Auswahlen eines der parallelen Lesedatenpfade, um aus dem Speicherarray abgerufene Daten den Datenanschlussstellen zuzuführen, wobei eine solche Betriebsartauswahleinrichtung bereitgestellt wird, die als Reaktion auf die Abwesenheit eines externen Taktsignals den asynchronen Datenpfad auswählt und bei Anwesenheit eines externen Taktsignals als Funktion eines empfangenen externen Signals, insbesondere des Werts eines Spaltenzugriff-Abtast-Latenzbefehls, einen der synchronen Datenpfade auswählt.
-
Die obigen und weitere Merkmale und Vorteile der vorliegenden Erfindung werden bei Durchsicht der folgenden Definitionen, Beschreibungen und Beschreibungsfiguren spezifischer Ausführungsformen deutlich, wobei in den verschiedenen Figuren zur Kennzeichnung gleicher Komponenten gleiche Bezugszahlen verwendet werden. Obwohl diese Beschreibungen spezifische Einzelheiten der Erfindung behandeln, versteht sich, dass Varianten möglicherweise existieren und Fachleuten auf der Basis der vorliegenden Beschreibungen ersichtlich sein würden.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein Blockschaltbild, das konzeptuell eine Lesedatenpfad-Parallelarchitektur gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
-
2 ist ein Impulsdiagramm, das Signalformen für eine Lesezugriffsoperation in der asynchronen, zwischengespeicherten synchronen und FIFO-synchronen Betriebsart zeigt.
-
3 ist ein Blockschaltbild, das eine Implementierung einer parallelen Lesepfadarchitektur gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
-
4 ist ein Blockschaltbild, das eine Implementierung einer parallelen Lesepfadarchitektur gemäß einer weiteren beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
-
5 ist ein Funktionsflussdiagramm der Betriebsartauswahllogik zum Auswählen eines der parallelen Lesedatenpfade während einer Lesezugriffsoperation gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
-
Ausführliche Beschreibung
-
1 zeigt konzeptuell eine Lesedatenpfad-Parallelarchitektur für einen Speicherbaustein 10 gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung. Die in 1 abgebildete Architektur ist ein Konzeptdiagramm, das Hauptfunktionseinheiten veranschaulicht, und zeigt nicht unbedingt physikalische Beziehungen. Der Speicherbaustein 10 enthält ein Speicherarray 12, das über drei unabhängige parallele Lesedatenpfade, einen asynchronen Datenpfad 16, einen zwischengespeicherten (engl.: ”latched”) synchronen Datenpfad 18 und einen FIFO-synchronen Datenpfad 20, an die Ausgangsanschlussstellen 14 des Chips angekoppelt ist. Der Begriff ”parallel” wird hier im Sinne der elektrischen Schaltungen gebraucht (zwei oder mehr Pfade, die jeweils zwischen dieselben zwei Punkte in einer Schaltung geschaltet sind), und fordert nicht, dass die Pfade geometrisch parallel sind. Als nicht einschränkendes Beispiel kann der Speicherbaustein 10 ein Pseudo-SRAM sein, wie zum Beispiel ein Pseudo-SRAM, der für die Verwendung in mobilen, drahtlosen oder batteriebetriebenen Einrichtungen ausgelegt ist. Die Erfindung ist jedoch nicht auf Pseudo-SRAM-Bausteine beschränkt und umfasst beliebige Speicherbausteine, in denen mehrere wählbare Datenpfadbetriebsarten zum Lesen von Daten gewünscht sein können.
-
Bei bestimmten Anwendungen kann es wünschenswert sein, über eine Anzahl verschiedener Arten der Ausführung von Leseoperationen in einem Speicherbaustein zu verfügen. Zum Beispiel arbeiten SRAM-Chips häufig als asynchrone Bausteine mit Einzeldatenrate (engl.: single data rate, SDR) (Lese- und Schreiboperationen werden ohne externes Taktsignal ausgeführt), während DRAM-Chips in der Regel synchrone Bausteine sind, die mit einer SDR-Schnittstelle oder einer Doppeldatenraten(engl.: double data rate, DDR)-Schnittstelle betrieben werden. Viele drahtlose Telefone haben herkömmlicherweise SRAM-Chips benutzt. Da Pseudo-SRAM-Chips (die DRAM-Bausteine sind) SRAM-Chips in solchen Anwendungen aufgrund von Größen- und Speicheranforderungen ersetzen, kann es wünschenswert sein, dieselbe asynchrone Kundenschnittstelle zu behalten, so dass die neueren Pseudo-SRAM-Chips mit den älteren SRAM-Chips austauschbar sind. Eine synchrone Schnittstelle, bei der Lese- und Schreiboperationen gemäß einem Taktsignal durchgeführt werden, gestattet zusätzlich eine Verwendung der Pseudo-SRAM-Chips wie DRAM-Bausteine.
-
Es kommt häufig vor, dass DRAMs mit einem Bereich von Taktfrequenzen arbeiten können. Da das Taktsignal ein extern dem Speicherbaustein zugeführtes Signal ist, wird die Taktgeschwindigkeit durch die Anforderungen und den Entwurf des Systems vorgeschrieben, in dem der Speicherbaustein verwendet wird. Bei synchronem Betrieb können verschiedene Lesebetriebsarten besser für eine Verwendung bei verschiedenen Taktfrequenzen geeignet sein. Zum Beispiel kann eine ”zwischengespeicherte” Betriebsart (engl.: ”latched” mode) für SDR-Leseoperationen oder einen Betrieb mit niederfrequenteren Taktsignalen geeignet sein. Andererseits kann eine ”FIFO”-Betriebsart besser für DDR-Leseoperationen oder einen Betrieb mit höherfrequenten Taktsignalen sein. Wie in der Technik bekannt ist, werden bei einem zwischengespeicherten Modus des Lesens von Daten im Prinzip Daten in ein Flipflop hinein- und diesem herausgeschoben. Daten auf dem Lesedatenpfad werden in dem Flipflop zwischengespeichert und werden für die Ausgangsschaltkreise des Chips an derselben ansteigenden Flanke des Takts verfügbar (d. h. es gibt einen einzigen Zwischenspeicher in dem Datenpfad zu den Ausgangsanschlussstellen). Im Gegensatz dazu verwendet eine FIFO-Betriebsart ein zuerst hereinzuerst hinaus (engl.: first-in-first-out) (FIFO)-Schieberegister oder ein Pufferschema, bei dem mindestens zwei Bit gepuffert werden (z. B. ein Zwei-Bit-FIFO).
-
Bei der in 1 gezeigten beispielhaften Architektur kann der Speicherbaustein, indem man einen asynchronen Datenpfad, einen synchronen zwischengespeicherten Datenpfad und einen synchronen FIFO-Datenpfad hat, in vielfältigen Lesebetriebsarten betrieben werden, wodurch die Austauschbarkeit des Speicherbausteins zur Verwendung in einer Anzahl verschiedener Systemkonfigurationen, Schnittstellen und Anwendungen verbessert wird.
-
Obwohl die beispielhafte Ausführungsform diese drei parallelen Lesedatenpfade und entsprechende Lesebetriebsarten umfasst, versteht sich, dass die Erfindung nicht auf diese drei bestimmten Lesepfade/Betriebsarten beschränkt ist und andere Kombinationen von Lesepfaden/Betriebsarten implementiert werden könnten (d. h. man könnte zusätzliche oder andere Betriebsarten oder Pfade verwenden).
-
Wieder mit Bezug auf 1 werden nach dem Empfang eines externen Lesebefehls Daten aus dem Speicherarray 12 abgerufen und treten in jeden der drei parallelen Datenpfade 16, 18 und 20 ein. Ein Betriebsartauswahllogikmodul 22 (oder einfach eine ”Betriebsartauswahleinrichtung”) wählt einen der parallelen Datenpfade zum Leiten der Daten auf die Ausgangsanschlussstellen 14 auf der Basis der Betriebsart des Speicherbausteins aus. Die Betriebsartauswahleinrichtung gibt nur einen der drei Datenpfade auf einmal über ein Freigabesignal frei und der freigegebene Datenpfad steuert Daten zum Ablegen auf den Ausgangsdatenanschlussstellen an die außerhalb des Chips angeordneten Treiber. Dieser Ansatz führt zu drei unabhängigen Lesepfadbetriebsarten jeweils mit eigener Zeitsteuerung und Steuerung. Wie hier ausführlicher beschrieben werden wird, bestimmt die Betriebsartauswahleinrichtung die Betriebsart auf der Basis einer Anzahl von Signalen, die die Betriebsart des Speicherbausteins anzeigen (z. B. Detektion eines Lesebefehls, ein Signal, das die Anwesenheit oder Abwesenheit eines externen Taktsignals anzeigt, ein Taktfrequenzindikator und Testmodussignale).
-
Eine ausführlichere Erläuterung der Funktionsweise jedes Datenpfadmodus wird in Verbindung mit dem Impulsdiagramm von 2 beschrieben, das die Vorteile dreier verschiedener unabhängiger Betriebsarten weiter veranschaulicht. Das in der ersten Zeile von 2 gezeigte Taktsignal (CLK) ist nur für die synchronen Betriebsarten anwendbar, da in der asynchronen Betriebsart kein externes Taktsignal vorliegt. In der asynchronen Betriebsart wird beim Empfang eines Lesesignals eine Reihe von Spaltenzugriffssignalen erzeugt, um Daten sequenziell aus Spalten von Speicherzellen in dem Speicherarray gemäß einer (nicht gezeigten) Leseadresse abzurufen. Wie in der nächsten Zeile von 2 gezeigt, besteht eine Verzögerung von dem Zeitpunkt des Spaltenzugriffsimpulses bis zu dem Zeitpunkt, wenn die Lesedaten aus der Spalte auf dem Lesedatenpfad gültig werden. Diese Verzögerung, die für alle Leseoperationen im Wesentlichen konstant bleibt, ist eine Funktion des Entwurfs des Speicherbausteins (z. B. der Hardwareansprechzeiten, Ausbreitungsverzögerungen usw.) und ist unabhängig davon, welche Betriebsart zum Lesen von Daten ausgewählt wird. In der asynchronen Betriebsart werden die Daten an den Ausgangsanschlussstellen eine kurze Zeit nach dem Gültigwerden der gelesenen Daten aus der Spalte verfügbar, was durch den Pfeil von dem auf der Zeile ”Lesen von Daten aus Spalte” gezeigten Datenbit zu der in 2 gezeigten ”async”-Datenzeile nahegelegt wird.
-
Im Fall der synchronen Lesedatenpfadbetriebsarten ist während Leseoperationen ein Taktsignal vorhanden und das Spaltenzugriffs-Abtast-Signal ist mit dem Taktsignal synchronisiert. Mit Bezug auf den in 2 gezeigten ersten Spaltenzugriffsimpuls beachte man, dass das entsprechende ”Lesen von Daten aus Spalte” vor der ansteigenden Flanke des ersten Taktsignals, das nach dem Spaltenzugriff auftritt, gültig ist. Folglich kann in diesem Fall eine zwischengespeicherte Betriebsart verwendet werden. Genauer gesagt kann die ansteigende Flanke des ersten Taktimpulses nach dem Spaltenzugriffsimpuls dazu verwendet werden, die gelesenen Daten aus der Spalte in einem Flipflop zwischenzuspeichern, dabei die Daten sofort zu dem Ausgang zu schieben, so dass die Daten kurz nach der ansteigenden Flanke des Taktimpulses an dem Ausgang verfügbar werden, wie in 2 durch den Pfeil von der ansteigenden Flanke des ersten Taktimpulses zu der Datenzeile ”Latch” gezeigt.
-
Die Taktfrequenz und Signalzeitsteuerung von 2 eignet sich zur Implementierung der zwischengespeicherten Betriebsart, da die aus dem Speicherarray abgerufenen Daten vor der nächsten ansteigenden Flanke des Taktsignals auf dem Datenpfad gültig sind. Diese Konfiguration ist im Allgemeinen mit relativ niedrigen Taktfrequenzen bei einer SDR-Leseoperation möglich. Wie zuvor erläutert, bleibt der für das Gültigwerden der gelesenen Daten nach dem Spaltenzugriffsimpuls erforderliche Zeitraum jedoch in dem Speicherbaustein im Wesentlichen konstant; mit zunehmender Taktfrequenz kann folglich die ansteigende Flanke des nächsten Taktimpulses auftreten, bevor die gelesenen Daten auf dem Datenpfad gültig werden, so dass der nächste Taktimpuls nicht zum Zwischenspeichern der gelesenen Daten verwendet werden kann. Anders ausgedrückt, tritt mit zunehmender Taktfrequenz die nächste ansteigende Flanke des Taktsignals schneller auf und somit besteht immer weniger Reserve zwischen der Zeit, wenn die Daten gültig sind und der nächsten ansteigenden Flanke des Takts (die verwendet wird, um die Daten zwischenzuspeichern), wenn die Taktfrequenz zunimmt. Letztendlich wird bei genügend großer Taktfrequenz die nächste ansteigende Flanke des Taktimpulses ankommen, bevor die Daten gültig sind, so dass die Daten nicht mit der nächsten ansteigenden Flanke des Taktsignals zwischengespeichert werden können. Obwohl es in 2 nicht explizit gezeigt ist, kann man diesen Effekt bei höheren Taktfrequenzen visualisieren, indem man sich den Abstand zwischen den Spaltenzugriffsimpulsen und den entsprechenden gültigen Daten auf der Zeile ”Lesen von Daten aus Spalte” als festbleibend vorstellt, während der Abstand zwischen sukzessiven Spaltenzugriffsimpulsen (und auch zwischen sukzessiven Taktimpulsen) reduziert wird.
-
Bei höheren Taktfrequenzen, wenn die zwischengespeicherte Betriebsart nicht verwendet werden kann, kann die FIFO-Betriebsart nützlich werden. Als nichteinschränkendes Beispiel könnte eine Taktfrequenz von ungefähr 133 MHz die Abgrenzung zwischen niedrigeren Taktfrequenzen, für die die zwischengespeicherte Betriebsart verwendet wird, und höheren Taktfrequenzen, für die die FIFO-Betriebsart benutzt wird, sein. Im Allgemeinen ist die maximale Taktfrequenz, bei der die zwischengespeicherte Betriebsart verwendet werden kann, eine Funktion des konkreten Entwurfs und des Betriebes des Speicherbausteins, und die Erfindung ist nicht auf irgendeine bestimmte maximale Taktfrequenz für die zwischengespeicherte synchrone Betriebsart beschränkt.
-
Gemäß der in 2 gezeigten beispielhaften Ausführungsform kann das Taktsignal in der FIFO-Betriebsart eine vorbestimmte Zeit nach dem Spaltenzugriffssignal unter Verwendung eines Timers zur Bestimmung, wann der notwendige Zeitraum abgelaufen ist (anstatt der direkten Verwendung des Taktsignals zum Zwischenspeichern der Daten) in einem FIFO-Register oder – Puffer zwischengespeichert werden. Der Timer dupliziert oder imitiert im Wesentlichen die durch die Schaltkreise des Spaltenpfades verursachte Verzögerung plus eine bestimmte kleine zusätzliche Verzögerung, um einen Puffer oder eine Reserve bereitzustellen, um sicherzustellen, dass die Daten gültig sind. Der Timer wird mit der Zeitsteuerung der Spaltenzugriffsimpulse gestartet und wenn der Timer endet, wird ein Impuls ausgegeben, der anzeigt, dass die gelesenen Daten aus der Spalte gültig sind. In der synchronen FIFO-Betriebsart wird somit eine vorbestimmte Verzögerung im Wesentlichen eingebaut, um sicherzustellen, dass die gelesenen Daten aus der Spalte auf dem Datenpfad vor dem Zwischenspeichern der Daten in dem FIFO gültig sind.
-
Der beim Ablaufen des Timers ausgegebene Impuls kann zum Zwischenspeichern der Daten in dem FIFO benutzt werden. Nach der Zwischenspeicherung in dem FIFO werden die Daten an der nächsten steigenden Flanke des Takts herausgeschoben und werden an den Ausgangsanschlussstellen verfügbar. In 2 wird angenommen, dass die Daten einige Zeit vor dem Auftreten der ansteigenden Flanke des zweiten Taktimpulses in dem FIFO zwischengespeichert werden, so dass die Daten durch die ansteigende Flanke des zweiten Taktimpulses zu dem Ausgang geschoben werden, wie durch den sich von dem zweiten Taktimpuls zu der FIFO-Daten-Linie erstreckenden Pfeil nahegelegt. Im Fall eines Zwei-Bit-FIFO mit zwei Sätzen von Registern oder Flipflops können zwei sukzessive Spaltenzugriffe in dem FIFO ankommen und gespeichert werden, bevor der erste Spaltenzugriff zu dem Ausgang geschoben wird.
-
3 zeigt eine konkrete Implementierung einer parallelen Datenpfadarchitektur gemäß einer Ausführungsform der vorliegenden Erfindung. Der Einfachheit halber sind das Speicherarray und Ausgangsanschlussstellen nicht gezeigt. Die aus dem Speicherarray abgerufenen Daten werden als ”Eingangsdaten” angegeben, während sie an den parallelen Lesedatenpfaden ankommen, und als ”Ausgangsdaten” während sie aus einem der Lesedatenpfade den Ausgangsanschlussstellen zugeführt werden. Die Eingangsdaten werden den drei Lesedatenpfaden zugeführt: einem asynchronen Pfad 30, einem zwischengespeicherten synchronen Pfad 32 und einem FIFO-synchronen Pfad 34. Bei dieser Ausführungsform umfasst die Betriebsartauswahleinrichtung drei Betriebsartauswahllogikeinheiten: die Asynchron-Auswahllogikeinheit 36, die Zwischengespeichert-Synchron-Auswahllogikeinheit 38 und die FIFO-Synchron-Auswahllogik 40. Diese drei Betriebsartauswahllogikeinheiten führen jeweils drei Ausgangstreibern 42, 44 bzw. 46, die jeweils an die Ausgänge des asynchronen Pfades 30, des zwischengespeicherten synchronen Pfades 32 und des FIFO-synchronen Pfades 34 angekoppelt sind, Freigabesignale zu. Es wird nur ein Pfad auf einmal freigegeben, indem einem der Ausgangstreiber 42, 44 und 46 ein Freigabesignal zugeführt wird. Die zwei mit den beiden nichtgewählten Pfaden assoziierten Ausgangstreiber bleiben in einem Zustand hoher Impedanz, während der gewählte Ausgangstreiber die Daten dem Ausgang zuführt. Bei der in 3 gezeigten Ausführungsform wird für jede der drei Betriebsarten separate Auswahllogik verwendet. Eine andere Möglichkeit ist es, eine Betriebsartauswahllogik zu haben, die allen Betriebsarten gemeinsam ist und die selektiv ein Freigabesignal zu nur einem der Ausgangstreiber sendet.
-
4 zeigt eine weitere Ausführungsform der vorliegenden Erfindung, bei der die parallele Datenpfadarchitektur auf eine andere Weise implementiert ist. Bei dieser Konfiguration werden die aus dem Speicherarray abgerufenen Daten drei parallelen Lesedatenpfaden zugeführt (dem asynchronen Pfad 50, dem zwischengespeicherten synchronen Pfad 52, dem FIFO-synchronen Pfad 54), und ein Multiplexer 56 wird verwendet, um die Daten selektiv auf einem der drei Pfade zu einem gemeinsamen Ausgangstreiber 60 zu leiten. Der Multiplexer 56 wird durch die Betriebsartauswahllogikeinheit 58 gesteuert, die den entsprechenden Lesedatenpfad auf der Basis von Signalen auswählt, die die Betriebsart des Speicherbausteins anzeigen. Obwohl in 4 als Multiplexer gezeigt, kann eine beliebige Art von Auswahlbaustein oder Auswahlschaltkreisen verwendet werden. Diese Implementierung vermeidet die Notwendigkeit eines separaten Ausgangstreibers für jeden Lesedatenpfad.
-
Eine weitere Möglichkeit ist ein den parallelen Lesedatenpfaden vorgeschalteter Multiplexer oder anderer Auswahlbaustein. In diesem Fall führt der Multiplexer die abgerufenen Daten nur einem der drei Lesedatenpfade zu, der dann die Daten einem Ausgangstreiber zuführt.
-
Wie bereits erläutert, wählt die Betriebsartauswahleinrichtung einen der parallelen Lesedatenpfade gemäß der aktuellen Betriebsart des Speicherbausteins. Eine beispielhafte Ausführungsform der zum Auswählen des Lesedatenpfads verwendeten Betriebsartauswahllogik ist in dem Funktionsflußdiagramm von 5 dargestellt. In dem in 5 abgebildeten Schema werden im Wesentlichen drei Informationselemente zur Auswahl eines Ausgangslesedatenpfades verwendet: die Anwesenheit eines Lesebefehls; die Anwesenheit oder Abwesenheit eines externen Taktsignals; und ein Taktfrequenzindikator. Es versteht sich, dass die Erfindung nicht auf die konkrete in 5 gezeigte Logik oder die Verwendung dieser konkreten Signale zur Auswahl eines Lesedatenpfades beschränkt ist und andere oder zusätzliche Signale oder Logik verwendet werden können. Zum Beispiel kann man Testmodussignale verwenden, um die Auswahl eines bestimmten Lesedatenpfades zu bewirken.
-
Eine Vorbedingung für die Auswahl eines der parallelen Lesedatenpfade besteht darin, dass der Speicherbaustein einen Lesebefehl empfangen hat. Folglich beginnt in 5 die Betriebsartauswahllogik in der Operation 100 mit der Detektion eines Lesebefehls, wovon eine Anzeige der Betriebsartauswahleinrichtung zugeführt werden muss. Der Speicherbaustein detektiert, ob ein externes Taktsignal vorliegt oder nicht, und führt der Betriebsartauswahleinrichtung ein Signal zu, das die Anwesenheit oder Abwesenheit eines externen Taktsignals anzeigt. In der Operation 110 wertet die Betriebsartauswahllogik auf der Basis des Taktsignalindikators aus, ob das Taktsignal vorliegt. Wenn kein Taktsignal vorliegt, wählt die Betriebsartauswahllogik den asynchronen Lesedatenpfad (Operation 120). Wenn dagegen das Taktsignal vorliegt, schreitet die Betriebartauswahllogik zum Entscheidungsblock 150 voran, um zu bestimmen, welche der beiden synchronen Betriebsarten gewählt werden soll.
-
Der Taktfrequenzindikator ermöglicht es der Betriebsartauswahleinrichtung im Wesentlichen, zwischen der zwischengespeicherten synchronen Betriebsart, die sich für niedrigere Taktfrequenzen eignet, und der FIFO-synchronen Betriebsart, die sich für höhere Taktfrequenzen eignet, auszuwählen. Abhängig von dem Entwurf eines bestimmten Speicherbausteins können mehrere mögliche Optionen zum Zuführen eines Taktfrequenzindikators zur Auswahl zwischen dem zwischengespeicherten synchronen Datenpfad und dem FIFO-synchronen Datenpfad verfügbar sein. Eine Möglichkeit, die bei bestimmten Speicherbausteinen verfügbar sein kann, ist die Verwendung des CAS-Latenzsignals als Taktfrequenzindikator. Aufgrund interner Verzögerungs- und Verarbeitungszeiten der Ausgangsschaltung, die hauptsächlich durch eine Datenpfadverzögerungszeit und eine Verzögerungszeit des außerhalb des Chip angeordneten Treibers der Ausgangsschaltung beeinflusst werden, erscheint ein Ausgangsdatenposten DQ nicht gleichzeitig mit dem Moment an dem der externe Lesebefehls RD an den Chip angelegt wird. Um zu vermeiden, dass Datenposten am Ausgangsdatenanschluss zu willkürlichen Zeitpunkten nach dem Anlegen des externen Lesebefehls RD an den Steueranschluss erzeugt werden, wird die Latenz zwischen dem Anlegen des externen Lesebefehls RD und dem Moment des Erscheinens des entsprechenden Datenpostens an dem Ausgangsdatenanschluss abhängig von einem dem Chip zugeführten Konfigurationssignal auf einen vorbestimmten Wert gesetzt. Diese Latenz wird gewöhnlich durch die CAS-Latenz spezifiziert. Die CAS-Latenz ist ein Wert, der die Anzahl der Taktzyklen zwischen dem Zeitpunkt des Anlegens des externen Lesebefehlssignals RD an den Steueranschluss zum Starten eines Lesezugriffs auf eine Speicherzelle und dem Zeitpunkt des Erscheinens des Datenpostens DQ dieser Speicherzelle an dem Ausgangsdatenanschluss anzeigt.
-
Dem Speicherbaustein muss ein bestimmter CAS-Latenzwert zugeführt werden (z. B. 2, 3, 4 usw.). Dieser Wert wird in dem Betriebsartregister des Speicherbausteins gespeichert und instruiert den Baustein, mit einer bestimmten Anzahl von Taktzyklen zwischen dem Empfang des Lesebefehls und der Verfügbarkeit entsprechender Daten an dem Ausgang zu arbeiten. Die CAS-Latenz ist im Kontext der vorliegenden Erfindung nützlich, weil die CAS-Latenz häufig der Taktfrequenz entspricht. Zum Beispiel entspricht eine CAS-Latenz von 2 oder 3 im Allgemeinen niedrigeren Taktfrequenzen, während eine CAS-Latenz von 4 oder mehr einer höheren Taktfrequenz entsprechen würde. Der Grund dafür besteht darin, dass Ausbreitungsverzögerungen in dem Speicherbaustein größtenteils fest sind; bei höheren Taktfrequenzen tritt somit eine größere Anzahl von Taktzyklen zwischen dem Empfang des Lesebefehls und der Ankunft der Daten am Ausgang auf.
-
In der Regel enthält ein synchroner Speicherbaustein Spezifikationen, die von dem Benutzer erfordern, bestimmte CAS-Latenzwerte beim Zuführen eines Taktsignals in einem bestimmten Frequenzbereich auszuwählen. Zum Beispiel kann gemäß Betriebsanforderungen eine CAS-Latenz von 4 anzeigen, dass die gelieferte Taktfrequenz größer als 133 MHz ist, während eine CAS-Latenz von 2 oder 3 anzeigen kann, dass eine Taktfrequenz von weniger als 133 MHz zugeführt wird. Da die CAS-Latenz der Taktfrequenz entspricht, kann man mit der CAS-Latenz zwischen der zwischengespeicherten synchronen Betriebsart und der FIFO-synchronen Betriebsart auswählen. Wenn – unter Fortsetzung des Beispiels – die zwischengespeicherte Betriebsart für Taktfrequenzen unterhalb von 133 MHz geeignet ist, würde eine CAS-Latenz von 2 oder 3 bewirken, dass die Betriebsartauswahllogik die zwischengespeicherte synchrone Betriebsart auswählt, während eine CAS-Latenz von 4 oder mehr bewirken würde, dass die Betriebsartauswahllogik die FIFO-synchrone Betriebsart auswählt.
-
Wieder mit Bezug auf 5 wird allgemeiner ausgedrückt in der Operation 150, wenn die CAS-Latenz einen hohen Wert aufweist, der einer für FIFO-Betriebsart geeigneten Taktfrequenz entspricht, der synchrone FIFO-Pfad ausgewählt (Operation 170). Wenn die CAS-Latenz dagegen keinen hohen Wert aufweist, (wodurch eine für die zwischengespeicherte Betriebsart geeignete Taktfrequenz angezeigt wird) wird in der Operation 160 der zwischengespeicherte synchrone Pfad ausgewählt.
-
In dem obigen Beispiel wird die CAS-Latenz verwendet, um zwischen der zwischengespeicherten synchronen Betriebsart und der FIFO-synchronen Betriebsart auszuwählen, da die CAS-Latenz in diesem Beispiel die Taktfrequenz anzeigt. Dieser Ansatz vermeidet die Notwendigkeit von Schaltkreisen auf dem Speicherbaustein, die erkennen können, wie schnell der externe Takt läuft. Eine andere Möglichkeit besteht darin, solche Schaltkreise auf dem Speicherbaustein vorzusehen, um die Taktfrequenz zu erkennen und dann auf der Basis der erkannten Taktfrequenz zwischen der zwischengespeicherten und dem FIFO-Betriebsart auszuwählen. Dieser Ansatz würde jedoch zusätzliche Schaltkreise erfordern, wenn der Speicherbaustein nicht bereits die Fähigkeit zur Bestimmung der Frequenz des externen Taktsignals enthält. Auf jeden Fall ist die Erfindung nicht auf irgendeine konkrete Implementierung zur Bereitstellung eines Taktfrequenzindikators beschränkt, und es kann jedes Signal oder eine Kombination von Signalen, wodurch die Taktfrequenz angezeigt wird, als Taktfrequenzindikator verwendet werden.
-
Abhängig von dem Entwurf des Speicherbausteins ist ein potenziell verkomplizierender Faktor in der Betriebsartauswahllogik der Umstand, dass es möglicherweise nicht möglich ist, die Anwesenheit eines externen Taktsignals rechtzeitig zu detektieren, um einen der synchronen Lesedatenpfade für den ersten Spaltenzugriff in einer Leseoperation auszuwählen. Ungeachtet der Betriebsart wird in diesem Fall der erste Spaltenzugriff über den asynchronen Datenpfad gesteuert. Wenn der Speicherbaustein synchron arbeitet, wird der externe Takt durch den zweiten Spaltenzugriff erkannt worden sein und der zweite und nachfolgende Spaltenzugriff(e) werden über einen der synchronen Datenpfade gesteuert. Diese Eventualität ist in 5 dargestellt. Wenn der asynchrone Lesedatenpfad ausgewählt wurde (Operation 120) wird genauer gesagt die Leseoperation mit dem asynchronen Pfad fortgesetzt, wenn nach dem ersten Spaltenzugriff kein Taktsignal erkannt wird. Wenn dagegen ein Taktsignal erkannt wird, nachdem der erste Spaltenzugriff über den asynchronen Datenpfad gesteuert wurde, werden die nachfolgenden Spaltenzugriffe über einen der synchronen Datenpfade gesteuert. In 5 wird diese Entscheidungslogik durch die Operation 130 repräsentiert. Wenn genauer gesagt der asynchrone Lesedatenpfad für den ersten Spaltenzugriff ausgewählt wurde, wird die Anwesenheit des Taktsignals geprüft; andernfalls wird die Leseoperation in dem asynchronen Datenpfad fortgesetzt. Es versteht sich, dass bei einer tatsächlichen Implementierung die Anwesenheit eines Taktsignals während des Anfangsteils der Leseoperation kontinuierlich überwacht werden kann.
-
Obwohl an dem obigen Beispiel ein Speicherbaustein beteiligt war, der mit einer Einzeldatenrate (SDR) arbeitet, ist die Erfindung auch auf DDR-Speicherbausteine oder Speicherbausteine, bei denen sowohl SDR- als auch DDR-Leseoperationen zulässig sind, anwendbar.