DE69614728T2 - Verfahren und Anordnung zur "Datenpipelinung" in einer integrierten Schaltung - Google Patents
Verfahren und Anordnung zur "Datenpipelinung" in einer integrierten SchaltungInfo
- Publication number
- DE69614728T2 DE69614728T2 DE69614728T DE69614728T DE69614728T2 DE 69614728 T2 DE69614728 T2 DE 69614728T2 DE 69614728 T DE69614728 T DE 69614728T DE 69614728 T DE69614728 T DE 69614728T DE 69614728 T2 DE69614728 T2 DE 69614728T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- circuit
- output
- clock
- steering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Advance Control (AREA)
- Static Random-Access Memory (AREA)
- Microcomputers (AREA)
- Logic Circuits (AREA)
Description
- Die vorliegende Erfindung bezieht sich allgemein auf Systeme zur Verarbeitung von Daten. Genauer bezieht sich die Erfindung auf eine integrierte Schaltung mit einem Datenpfad und einem Ausgang entsprechend dem Oberbegriff des Anspruches 1 und auf ein Verfahren zur Erzeugung von Ausgangsdaten von der Schaltung nach einer ausgewählten Anzahl von Takten, seitdem ein Lesezyklus in der Schaltung eingeleitet worden ist.
- Halbleiterspeichersysteme haben sich in den letzten Jahren schnell entwickelt. Die Speichersystemgrößen haben sich alle drei Jahre etwa verdoppelt, da die Anzahl der Bits pro Speicherchip um einen Faktor 4 erhöht wurde. Mit jeder neuen Generation von DRAMs war somit nur die Hälfte der einzelnen Chips in einem Speichersystem erforderlich. Mit einer Reduktion der Anzahl der Speicherchips in einem System ergibt sich eine Reduktion der Gesamtzahl der Datenausgangsanschlußstifte. Mit weniger Ausgangsanschlußstiften nimmt die Bandbreite des Speichersystems ab. Mit der Weiterentwicklung von Mikroprozessor- und Multiprozessorsystemen steigt jedoch der Bedarf an Speichersystemen weiterhin an. Am kritischsten ist, daß Computersysteme immer größere Datenbandbreiten erfordern. Das heißt, die Systeme erfordern, daß mehr Informationen an den Ausgangsanschlußflächen der Speicher in einem gegebenen Zeitintervall präsentiert werden. Es ist daher erforderlich, die Bandbreite jedes Speicherchips zu erhöhen. Das Erreichen dieser größeren Bandbreiten ist aufgrund der Notwendigkeit, wertvolle Gewinne der Bitdichte und der Substratfläche zu bewahren, kompliziert.
- Diese Notwendigkeit zur Erhöhung der Bandbreite hat zu der Entwicklung neuer Typen von Speichersystemen geführt. Eine vielversprechende neue Speicherchiparchitektur ist der synchrone, dynamische oder statische Schreib/Lese- Speicher (SDRAM oder SSRAM). Diese Chips verwenden einen Takt, um den Datenfluß zu steuern, und bieten somit deutliche Steigerungen der Ausgangsdatenbandbreite über diejenige hinaus, die von früheren Speicherchips zur Verfügung gestellt wurde. Bei diesen synchronen Konfigurationen wird eine Pipeline- Verarbeitung verwendet, um die Bandbreite der Datenausgabe zu erhöhen. In dieser Beschreibung wird angenommen, daß die Adreßzugriffszeit durch einen beispielhaften SDRAM (von der Spaltenadresse zur Ausgabe) gleich 15 ns ist.
- Ohne Pipeline-Verarbeitung können alle 15 ns Lesezyklen stattfinden. In einem synchronen DRAM kann eine Latenzzeit (oder Pipelinetiefe) von 3 verwendet werden, um die Gesamtdatenrate um den Faktor 3 zu erhöhen. Das heißt, bei einem SDRAM mit einer Adreßzugriffszeit von 15 ns können alle 5 ns Leseanforderungen und Datenausgaben durchgeführt werden. Eine erste Anforderung kann zum Zeitpunkt T0 gestellt werden. Die Daten von dieser Anforderung sind am Ausgang des DRAM 15 ns (drei Takte) später gültig. Eine zweite Leseanforderung wird bei T + 5 ns gestellt, während eine dritte Leseanforderung bei T + 10 ns gestellt wird. Der Takt, der bei T + 10 ns auftritt, weist ferner an, daß die aus dem ersten Lesezyklus resultierenden Daten an den Ausgängen erscheinen. Gleichzeitig mit der vierten Leseanforderung bei T + 15 ns stehen die Daten von der ersten Anforderung an den Ausgängen zu Verfügung. Diesen Daten folgen alle 5 ns neue Daten von den nachfolgenden Lesezyklen. Das Ergebnis ist ein System mit einer Zykluszeit, die sehr viel kleiner ist als die Adreßzugriffszeit, was die Bandbreite deutlich erhöht.
- Dieser gleiche 15ns-Adreßzugriffszeit-Teil kann, wenn er mit einer Zykluszeit von 7,5 ns betrieben wird, Daten mit einer Verzögerung von nur einem Takt ausgeben. Das heißt, ein erster Lesezyklus beginnt bei T0. Ein zweiter Lesezyklus beginnt bei T + 7,5 ns, wobei zu diesem Zeitpunkt die aus dem ersten Lesezyklus resultierenden Daten ausgegeben werden. Ein dritter Zyklus beginnt bei T + 15 ns, wenn die ersten Daten an den Ausgängen gültig sind und ausgelesen werden. Diese Operation wird als eine Latenzzeit von 2 bezeichnet. Dieser beispielhafte 15ns-Adreßzugriffszeit-Teil ist zu langsam, um mit einer Latenzzeit von 2 bei einer 5 ns-Zykluszeit korrekt zu arbeiten. DRAMs, die bei höheren Frequenzen arbeiten, müssen größere Latenzzeiten verwenden. Es ist daher wünschenswert, eine Möglichkeit zum Programmieren der Latenzzeit eines bestimmten Speicherteils vorzusehen, was eine optimierte Verwendung bei einer Vielzahl unterschiedlicher Betriebsfrequenzen erlaubt. Durch die Verwendung der Pipelineverarbeitung, z. B. Starten eines zweiten und eines dritten Zyklus vor Abschluß eines Zugriffs des ersten Zyklus, sind diese synchronen Speicher fähig, eine deutlich erhöhte Bandbreite gegenüber früheren Speicherkonfigurationen zur Verfügung zu stellen.
- Diese erhöhte Bandbreite wurde jedoch noch nicht ohne bestimmte Kosten erreicht. Aktuelle Pipelineimplementierungen erfordern die Verwendung einer großen Anzahl von Übertragungsgattern oder Zwischenspeichern, um Daten durch die Pipeline zu takten oder "vorzurücken". Eine typische Pipelineschaltung wird gebildet von mehreren Übertragungsgattern, die aus NMOS- und PMOS- Transistoren bestehen. Die Daten werden durch die Pipelineschaltung getaktet, indem ihnen ermöglicht wird, durch die von den Übertragungsgattern definierten Stufen sequentiell vorzurücken. Für eine Latenzzeit von 2 können somit zwei Sätze von Übertragungsgattern verwendet werden, um die Daten durch die Pipeline vorzurücken. Ein erster Satz von Gattern wird freigegeben, um die an den Eingangspuffern empfangenen Daten durch den Speicher vorzurücken. Ein zweiter Satz von Gattern, der weiter hinten im Datenpfad positioniert ist, wird freigegeben, um die Daten zum Ausgang vorzurücken, wenn neue Daten am Eingang starten. Latenzzeiten von 3 erfordern in ähnlicher Weise drei Sätze von Übertragungsgattern, die an mehreren Orten in jedem parallelen Datenpfad angeordnet sind.
- Obwohl dieser Lösungsansatz die allgemeinen Ziele der Pipelineverarbeitung von Ausgangsdaten von einer synchronen Schaltung erreicht, ist dieser aus mehreren Gründen unbefriedigend. Die große Anzahl von Übertragungsgattern, die von einem solchen Lösungsansatz benötigt werden, beeinträchtigen mehrere wichtige RAM-Konfigurationseigenschaften. Die Zwischenübertragungsgatter in einem SDRAM können z. B. optimal am Ausgang jedes Spaltendecodierers des Speichers plaziert sein. Diese Speicher besitzen eine große Anzahl von Spaltendecodiererausgängen. Es ist somit eine sehr große Anzahl von Übertragungsgattern erforderlich, um z. B. eine Latenzzeit von 3 zu erzeugen. Jedes dieser Übertragungsgatter verbraucht Leistung, belegt wertvolle Substratfläche und erhöht sowohl den Widerstand als auch die Kapazität im Signalpfad, wodurch die Verzögerung der Adreßzugriffszeit erhöht wird. Als Ergebnis belegen synchrone DRAM- Schaltungen, die gewöhnliche Pipelmetechniken verwenden, eine wesentlich größere Substraffläche als asynchrone Schaltungen mit vergleichbarer Kapazität. Die Verwendung dieser gewöhnlichen Techniken erzeugt ferner Speichervorrichtungen mit erhöhtem Leistungsbedarf und erhöhten Adreßzugriffszeiten, obwohl sie das Ziel einer verringerten Zykluszeit erreichen.
- Die große Anzahl von Übertragungsgattern wird noch weiter erhöht, wenn eine programmierbare Latenzzeit verwendet wird. Wenn z. B. eine wählbare Latenzzeit von entweder 2 oder 3 unter Verwendung von Übertragungsgattern implementiert wird, unterscheidet sich die optimale Plazierung der Gatter im Gesamtdatenpfad für die unterschiedlichen Latenzzeiten. Unter Verwendung dieses Lösungsansatzes wird viel Substratfläche verbraucht.
- Dementsprechend ist eine Hochgeschwindigkeits-Pipelmetechnik erforderlich, die die Notwendigkeit von mehreren Übertragungsgattern im Datenpfad reduziert oder beseitigt. Es ist ferner erwünscht, daß die Technik eine programmierbare Latenzzeit mit einem beliebigen gewünschten Wert unterstützt. Diese Anforderungen sollten erfüllt werden, ohne die Gewinne hinsichtlich der Bitdichte, der Substratfläche und des Leistungsverbrauchs deutlich zu verringern.
- Die vorliegende Erfindung schafft eine integrierte Schaltung nach Anspruch 1, die eine programmierbare Latenzzeit erlaubt und Daten bei sehr hohen. Frequenzen pipelineartig verarbeiten kann, ohne übermäßig viel Substratfläche zu belegen. Genauer werden ein Verfahren und eine Vorrichtung in Form einer integrierten Schaltung gemäß den Ansprüchen 46 bzw. 1 für die Pipelineverarbeitung von Daten zur Verwendung in synchronen Systemen geschaffen. In einer spezifischen Ausführungsform ist die Vorrichtung für die Verwendung in Verbindung mit einem Speichersystem konfiguriert, in welchem ein Lesezyklus durch einen ersten Takt eingeleitet wird, der an einem Takteingang empfangen wird. Der Lesezyklus erzeugt asynchron Daten, die anschließend in die Pipelineschaltung eingegeben werden. Die Schaltung enthält eine Lenkschaltung zum Lenken der im Lesezyklus erzeugten Daten in einen zugewiesenen von mehreren Zweigen eines Registers. Eine Auswahlschaltung wird verwendet, um Ausgangsdaten vom zugewiesenen Zweig bei Empfang eines nachfolgenden Takts auszuwählen. Der nachfolgende Takt ist ein Takt, der eine bestimmte Anzahl von Takten nach dem ersten Takt auftritt.
- In einer spezifischen Ausführungsform ist die Anzahl der Takte nach dem ersten Takt gleich 1 (d. h. es wird eine Pipelinewirkung mit einer Latenzzeit von 2 erreicht). In einer weiteren Ausführungsform ist die Anzahl der Takte nach dem ersten Takt gleich 2 (d. h. es wird eine Latenzzeit von 3 erreicht). Eine weitere Ausführungsform der vorliegenden Erfindung erlaubt eine programmierbar ausgewählte Latenzzeit zwischen 1 und 3.
- Jeder der Zweige des Systems enthält ein Paar von Zwischenspeichern, von denen einer auf ein Eingangssignal einer logischen "1" anspricht und der andere auf ein Eingangssignal mit einer logischen "0" anspricht. Ferner ist eine Rücksetzschaltung vorgesehen, um das Paar von Zwischenspeichern in jedem der Pipelinezweige zurückzusetzen. In einer spezifischen Ausführungsform wird das Paar von Zwischenspeichern in jedem Zweig unmittelbar nach der Auswahl dieses Zweiges vom Ausgang zurückgesetzt. Ein einzelner Zweig wird während jedes Zyklus zurückgesetzt. Ein synchrones Umlaufzählsystem ist vorgesehen, um in Verbindung mit der Lenkschaltung zu arbeiten und durch die Zweige umzulaufen, in die die Daten gelenkt und zwischengespeichert werden. Der Zähler wird ferner direkt verwendet, um einen Zweig für die Ausgangsdaten auszuwählen. Drehmomentverlust Zähler ist selbststartend und inkrementiert schnell mit jedem Takt.
- Eine Lenkschaltung ist ebenfalls vorgesehen. Die Lenkschaltung weist sequentiell eines von mehreren Signalen für eine Zeitperiode gleich einer Zykluszeit zu, wobei die Sequenzierung so zeitgesteuert ist, daß unmittelbar vor der Ankunft eines schmalen Datenimpulses inkrementiert wird. Der Datenimpuls ist vorzugsweise schmal bezüglich der Taktzykluszeit. Das Setzen des Lenksignals vor der Ankunft des schmalen Datenimpulses bewirkt das Lenken des Datenimpulses in einem der mehreren Zweige des Systems. Ein gemeinsames Zeitsteuersignal wird verwendet, um die relative Zeitsteuerung des Setzens des Lenksignals etwas vor der Ankunft des Datenimpulses genau zu ermöglichen. In einer spezifischen Ausführungsform wird das gemeinsame Zeitsteuersignal erzeugt durch Erfassen der Anwesenheit eines Impulses auf einer von mehreren Vordecodierungs-Signalleitungen. Das gemeinsame Zeitsteuersignal wird anschließend verwendet, um die Leseverstärker anzusteuern (und somit einen Datenimpuls zu erzeugen), und um ferner die genaue Zeitsteuerung des Lenksignals zu bewerkstelligen. Diese Verwendung eines gemeinsamen Zeitsteuersignals weiter hinten im Datenpfad des Systems erlaubt, daß die Datensignale mit hohen Frequenzen gelenkt werden. Die Anordnung fängt Schwankungen im Zeitablauf auf, die durch Schwankungen der Temperatur, der Stromversorgungsspannung und dergleichen hervorgerufen werden.
- Die Schaltung erlaubt ferner ein Sperren des Ausgangs des Systems auf einer zyklusweisen Grundlage. Andere spezifische Ausführungsformen der vorliegenden Erfindung umfassen Merkmale zum Verhindern von Störimpulsen im Ausgang der Pipeline, selbst wenn Daten für die Ausgabe ausgewählt werden, bevor die Daten verfügbar werden.
- Das Ergebnis ist eine kleine, effiziente Hochgeschwindigkeits- Pipelineschaltung mit einer programmierbaren Latenzzeit. Ein genauer Zeitablauf wird erreicht durch Verwenden eines gemeinsamen Zeitsteuersignals für sowohl die Erzeugung der Daten als auch zum Lenken der Informationen in eines von mehreren Registern. Die Daten fließen asynchron vom Eingang der Speicherschaltung zum Eingang der Pipelineschaltung ohne die Verwendung von Übertragungsgattern. Für ein vollständigeres Verständnis der Eigenart und der Vorteile der Erfindung sollte auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen werden.
- Fig. 1 ist ein vereinfachtes Schaltbild eines Abschnitts einer Lenkschaltung gemäß einer spezifischen Ausführungsform der vorliegenden Erfindung;
- Fig. 2 ist ein Schaltbild einer Lenkschaltung gemäß einer spezifischen Ausführungsform der vorliegenden Erfindung;
- Fig. 3 ist ein Zeitablaufdiagramm der Schaltung der Fig. 2 für den Fall, in welchem eine Latenzzeit von 2 ausgewählt worden ist;
- Fig. 4 ist ein Zeitablaufdiagramm der Schaltung der Fig. 2 für den Fall, in welchem eine Latenzzeit von 3 ausgewählt worden ist;
- Fig. 5 ist eine alternative Schaltung für Lenksignale, wenn eine Latenzzeit von 1 ausgewählt ist;
- Fig. 6 ist eine Ausgangsschaltung für die Fortpflanzung der Ausgangssignale der Schaltungen der Fig. 2 und 5 zu den Ausgangsanschlußflächen;
- Fig. 7 ist eine Pipelinezählerstand-Erzeugungsschaltung zum Erzeugen von Pipelinezählerständen für die Verwendung in der Schaltung der Fig. 2;
- Fig. 8 ist eine Pipelinezählerstand-Verzögerungsschaltung zum Erzeugen von Verzögerungssignalen für die Verwendung in der Schaltung der Fig. 2;
- Fig. 9 ist eine Zählerstandverzögerung-Erzeugungsschaltung für die Erzeugung eines Zeitsteuersignals zur Verwendung in Verbindung mit einer Ausführungsform der vorliegenden Erfindung;
- Fig. 10 ist eine Rücksetz-Erzeugungsschaltung zur Verwendung beim Zurücksetzen der Schaltung der Fig. 2; und
- Fig. 11 ist eine Pipelinefreigabeschaltung zur Verwendung in Verbindung mit der Schaltung der Fig. 2.
- In Fig. 1 ist eine Latenzzeitlenkschaltung 100 gemäß der vorliegenden Erfindung gezeigt. Diese Schaltung ist einer der drei identischen Abschnitte oder Zweige, die in Fig. 2 gezeigt sind. Sie ist im Vergleich zur Schaltung der Fig. 2 etwas vereinfacht und enthält Funktionen von anderen Schaltungen, die in den Fig. 6, 8 und 11 gezeigt sind, um einen Überblick über die gesamte Operation zu erhalten. Die Lenkschaltung 100 wird verwendet, um Datensignale von den komplementären oder wahren Eingabe/Ausgabe-Signalleitungen (im folgenden bezeichnet mit I/O# und I/O) jeweils zu einem Knoten N01 oder N04 eines gesetzten Zweiges und von dort zu einer Ausgangsanschlußfläche 150 von z. B. einer synchronen Speichervorrichtung zu lenken. Die Schaltung verwendet mehrere Steuersignale, um sicherzustellen, daß die Daten von den I/O-Leitungen zur Ausgangsanschlußfläche 150 mit genauem Zeitablauf vorrücken. Das Lenken der Signale kann verwendet werden, um die Ausgangsdaten von einer Speichervorrichtung schnell und genau pipelineartig zu verarbeiten. Fachleute werden erkennen, daß die vorliegende Erfindung in Verbindung mit beliebigen synchronen Speichervorrichtungen verwendet werden kann, einschließlich DRAMs, SRAMs, ROMs, Flash-Speichern und dergleichen. Ferner kann das Pipelineschema der vorliegenden Erfindung modifiziert werden für die Verwendung in anderen Anwendungen, in denen eine effiziente Hochgeschwindigkeitspipeline benötigt wird.
- In dieser Beschreibung wird eine spezifische Ausführungsform der vorliegenden Erfindung beschrieben. Insbesondere wird eine Ausführungsform beschrieben, die für die Verwendung im Ausgangsdatenpfad eines DRAM-System konfiguriert ist. In dieser besonderen Ausführungsform rücken die Daten durch den DRAM in Form von Impulsen vor (z. B. Impulse mit einer Breite von 1-5 ns). In einer bevorzugten Ausführungsform kann die Schaltung implementiert werden unter Verwendung von CMOS-Logik mit schneller Fortpflanzung, wie beschrieben ist in der anhängigen, gemeinsam übertragenen Anmeldung mit der laufenden Nr. 08/269.451, eingereicht am 30. Juni 1994, mit dem Titel "Fast Propagation Technique In CMOS Integrated Circuits". Fachleute werden erkennen, daß andere Implementierungen ebenfalls verwendet werden können. Ein Taktzyklus, der einen Lesezyklus in dieser bestimmten Ausführungsform einleitet, löst vier Aktionen aus. Erstens, zwei Speicherknoten eines Zweiges einer Schaltung (wie z. B. die Knoten N01 und N04 des in Fig. 1 gezeigten Zweiges) werden zurückgesetzt. Anschließend beginnt zur gleichen Zeit ein herkömmlicher asynchroner Lesezugriff, der mit einem Datenimpuls auf einer I/O-Leitung oder einer I/O#-Leitung abschließt. Drittens, der Lesezyklus veranlaßt die Erzeugung eines Lenksignals, das unmittelbar vor der Ankunft des asynchronen Datenimpulses gesetzt wird. Schließlich veranlaßt das Lenksignal, daß die Daten von I/O oder I/O# in einen geeigneten Speicherknoten gelenkt werden, wobei einer der Speicherknoten gesetzt wird. Ein nachfolgender Taktzyklus wählt diese Daten für die Ausgabe aus. Die Daten können an irgendeine von mehreren Empfangsschaltungen ausgegeben werden (z. B. einen Prozessor, einen Cache-Speicher oder dergleichen).
- Es sind wenigstens zwei Schaltungen 100 erforderlich, um eine Latenzzeit von 2 zu erreichen, wobei wenigstens drei Schaltungen 100 parallel vorhanden sein müssen, um eine Latenzzeit von 3 zu erreichen. Größere Latenzzeiten können ebenfalls erreicht werden durch Vorsehen einer größeren Anzahl von Schaltungen 100. In einer spezifischen Ausführungsform erlaubt die Pipelineschaltung der vorliegenden Erfindung eine Benutzerspezifikation der Latenzzeiten von 1 bis 3. Bestimmte Aspekte der Latenzzeitlenkschaltung 100 der Fig. 1 wurden verallgemeinert, um die Erläuterung der Operation der Schaltung zu vereinfachen. Weitere Einzelheiten werden in Verbindung mit den späteren Figuren erläutert.
- In einer spezifischen Ausführungsform liegen die I/O-Signale von der Speichervorrichtung während des Bereitschaftszustands auf Hochpegel. Daher zeigt ein Niedrigpegelsignal auf einer der Leitungen das Vorhandensein von Daten an. Diese Signale sind im allgemeinen negative Datenimpulse, die z. B. 2 ns breit sein können. In einer spezifischen Ausführungsform werden die I/O-Signale erzeugt nach einer asynchronen Verzögerung von etwa 10 ns nach einer Speicherlesezugriffanforderung. Mit der Verwendung der Pipelineverarbeitung können jedoch Speicheranforderungen in Intervallen von weniger als der Zugriffszeit gestellt werden. Eine Latenzzeit von 2 verarbeitet die Daten pipelineartig, um zu ermöglichen, daß alle 7,5 ns I/O-Signale auftreten, wobei neue Daten alle 7,5 ns an der Ausgangsanschlußfläche 150 plaziert werden. Eine Latenzzeit von 3 erlaubt, daß die I/O-Signale und neue Ausgangsdaten in Intervallen von 5 ns auftreten.
- Das Symbol für die PMOS-Transistoren, wie z. B. 102 und 104, enthält einen Kreis (Blase) am Gatter. Das Symbol für NMOS-Transistoren, wie z. B. 114 und 116, weist keinen solchen Kreis auf. Die kurzen Horizontallinien über den Source-Anschlüssen der PMOS-Transistoren 102 und 104 zeigen die positive Stromversorgung Vcc an. Die Source-Anschlüsse der NMOS-Transistoren 114 und 116 sind mit Masse verbunden.
- Wenn eine der Leitungen I/O# oder I/O einen Niedrigpegelimpuls aufweist, werden die PMOS-Transistoren 102 oder 104 eingeschaltet. Zu diesem Zeitpunkt wird in einer Schaltung 100 PIPECNTDEL0 auf Niedrigpegel gesetzt, die freigegeben ist, um Daten zu empfangen (wobei PIPECNTDEL1 und PIPECNTDEL2 in den anderen Schaltungen 100 auf Hochpegel liegen). Die Niedrigpegelimpulse an I/O# oder I/O kombiniert mit dem Niedrigpegel am PIPECNTDEL0 veranlassen entweder den (vorher auf Niedrigpegel zurückgesetzten) Knoten N01 oder N04, gesetzt zu werden, d. h. auf die positive Versorgungsspannung Vcc nach oben gezogen zu werden. Die Knoten N01 und N04 umfassen im wesentlichen ein Paar von Datenzwischenspeichern. Der Knoten N01 wird durch eine empfangene logische "1" auf Hochpegel gesetzt, während der Knoten N04 durch eine empfangene logische "0" auf Hochpegel gesetzt wird.
- PIPECNTDEL0 ist ein Signal, das von der Schaltung 110 erzeugt wird, welche genauer in Verbindung mit den Fig. 7, 8 und 9 beschrieben wird. Der Zeitablauf des Setzens des PIPECNTDEL0-Signals wird von der Schaltung 110 gesteuert. Allgemein ausgedrückt werden die PIPECNTDEL-Signale so zeitgesteuert, daß sie in Verbindung mit der Ankunft der Signale auf den I/O-Leitungen auftreten. Die PIP-Signale, die eine relativ lange Dauer aufweisen, erzeugen ein Fenster, innerhalb dem das I/O-Signal auftreten kann. Entsprechende Signale (z. B. PIPECNTDEL1 und 2) sind für entsprechende Schaltungszweige vorgesehen, die in dieser Figur nicht gezeigt sind. Die Wahl, welches PIPECNTDEL (0, 1 oder 2) freigegeben wird, um Daten zu empfangen, ändert sich von Zyklus zu Zyklus und hängt von der gewählten Latenzzeit (z. B. 2, 3 oder mehr) und dem Zustand eines Zählers (PIPECNT) ab. Die Wahl wird von der Schaltung 112 gesteuert. Die Schaltungen 110 und 112 werden später in Verbindung mit Fig. 8 genauer beschrieben. Gemeinsam lenken diese Schaltungen 110 und 112 den negativen Datenimpuls von der Leitung I/O# oder I/O zum Knoten N01 oder N04 der Schaltung 100, die zum Empfangen von Daten freigegeben ist. Mit "Lenken" ist gemeint, daß dann, wenn ein Signal (z B. in Form eines negativen Impulses) auf der Leitung I/O# auftritt, während das Signal PIPECNTDEL0 auf Niedrigpegel gesetzt ist, der Zweig 0 freigegeben wird, um die Daten zu empfangen, wobei die Daten zum Knoten N0 gelenkt werden und diesen auf Hochpegel setzen, während die entsprechenden Knoten in den anderen Schaltungen 100 nicht beeinflußt werden. Wenn ein negativer Impuls auf der Leitung I/O ankommt, und wenn das Signal PIPECNTDEL0 auf Niedrigpegel gesetzt ist, werden die Daten zum Knoten N04 gelenkt, um diesen auf Hochpegel zu setzen. Wenn ein Signal auf einer der Leitungen I/O oder I/O# ankommt und PIPECNTDEL0 nicht auf Niedrigpegel gesetzt ist (da PIPECNTDEL1 oder 2 auf Niedrigpegel gesetzt ist), werden diese Daten zu einem weiteren Zweig gelenkt und es wird weder der Knoten N01 noch der Knoten N04 verändert. Dieses Merkmal erlaubt, daß die auf einem einzigen Satz von I/O-Leitungen in aufeinanderfolgenden Zyklen ankommenden Signale in mehrere unterschiedliche Knoten in unterschiedlichen Zweigen gelenkt werden, um eine Pipelinewirkung zu erreichen.
- Sobald die Daten geeignet in einen bestimmten Knoten gelenkt worden sind (z. B. Knoten N01 oder N04 in Fig. 1)" warten sie dort, bis die geeignete Takteingabe ankommt. Bei Ankunft der geeigneten Takteingabe wird PCNT0 schnell auf Hochpegel gesetzt. Dies erlaubt, daß die Daten anschließend zu einer Ausgangsanschlußfläche 150 vorrücken. Das Signal PCNT0 wird im wesentlichen von einem Signal PIPECNT0 abgeleitet, das von einem Zähler erzeugt wird, der in Verbindung mit fig. 7 beschrieben wird. Das Signal PCNT0 wird nur dann auf Hochpegel gesetzt, wenn ein Zählerstandsignal PIPCNT0 auf Hochpegel gesetzt worden ist und wenn der Ausgang in diesem Zyklus freigegeben werden soll. In einer spezifischen Ausführungsform enthält die Ausgangssteuerschaltung ein Merkmal, das das Abschalten des Ausgangs erlaubt (Zustand mit offenem Stromkreis), wodurch die Speicherausgangsanschlußflächen frei werden, um ein weiteres Signal zu führen. Diese Steuerschaltung wird später in Verbindung den Fig. 6 und 11 genauer beschrieben.
- Die Auswahl von PCNT0 schaltet die NMOS-Transistoren 126, 134 und 140 ein. In Kombination mit einem hohen "Setz"-Pegel an entweder dem Knoten N01 oder N04 veranlaßt dies, daß die Ausgangsanschlußfläche 150 entweder auf Hochpegel oder Niedrigpegel gezogen wird. Wenn z. B. ein negativer Impuls auf der Leitung I/O angekommen ist, während das PIPECNTDEL0-Signal auf Niedrigpegel gesetzt war, werden die Transistoren 104 und 108 gleichzeitig eingeschaltet, um den Knoten N04 auf Hochpegel zu setzen (beide Knoten N01 und N04 sind vorher auf Niedrigpegel zurückgesetzt worden). Der Knoten N04 ist mit dem Gate des NMOS-Transistors 128 verbunden. Wenn der Knoten N04 auf Hochpegel wechselt, wird der Transistor 128 eingeschaltet. Der Empfang einer Takteingabe (nach der Eingabe, die diesen Lesezyklus eingeleitet hat) veranlaßt die Auswahl von PIPECNT0 und PCNT0 (Ausgang freigegeben), wodurch der NMOS- Transistor 126 einschaltet. Wenn die beiden Transistoren 128 und 126 eingeschaltet sind, werden die Gates der PMOS-Transistoren 132 und 142 auf Masse gezogen, wodurch diese Transistoren einschalten. Wenn PIPECNT0 auf Hochpegel gesetzt wird, ist PIPECNT1 nicht gesetzt und liegt auf Niedrigpegel. Wie später genauer beschrieben wird, werden diese PIPECNT-Signale erzeugt durch einen synchronen Hochgeschwindigkeits-Umlaufzähler. Nur eines der Signale (PIPECNT0-2) wird zu einem gegebenen Zeitpunkt auf Hochpegel gesetzt. Wenn PIPECNT1 auf Niedrigpegel liegt, werden die Transistoren 130 und 144 eingeschaltet. Wenn die beiden PMOS-Transistoren 130 und 132 eingeschaltet sind, wird der Knoten PULLDN auf Vcc gezogen, wodurch der NMOS-Ausgangstransistor 148 einschaltet. Wenn die beiden PMOS-Transistoren 144 und 142 eingeschaltet sind, wird der Knoten PULLUP ebenfalls auf Vcc gezogen, wodurch der PMOS-Ausgangstransistor 146 abschaltet. Somit wird die Ausgangsanschlußfläche 150 auf Masse gezogen. Zu diesem Zeitpunkt ist der Knoten N01 immer noch auf Niedrigpegel zurückgesetzt, so daß die NMOS-Transistoren 136 und 138 ausgeschaltet sind: In ähnlicher Weise, wenn die Daten auf der Leitung I/O# angekommen sind, wurde der Knoten N01 auf Hochpegel gesetzt durch die PMOS- Transistoren 102, 106, während der Knoten N04 immer noch auf Niedrigpegel zurückgesetzt ist. Wenn in diesem Fall PCNT0 auf Hochpegel gesetzt wird, werden die Leitungen PULLUP und PULLDN über die Transistoren 140, 138 und 134, 136 auf Masse gezogen. Dies schaltet den PMOS-Transistor 146 ein und schaltet den NMOS-Transistor 148 aus, wodurch die Ausgangsanschlußfläche 150 auf Hochpegel gezogen wird.
- Aufgrund der hohen Geschwindigkeit, mit der die Signale sich durch das System fortpflanzen, sind die Leitungen PULLUP und PULLDN möglicherweise Störspitzen im Ausgang ausgesetzt. Um diese Störspitzen im Ausgang zu vermeiden, sind mehrere Merkmale vorgesehen. Erstens, sobald der aktuelle PIPECNT- (Ausgangs)-Zyklus abgeschlossen ist, werden als Ergebnis des Empfangs der nächsten Takteingabe die PMOS-Transistoren 130 und 144 nichtleitend gelassen, da der nächste Pipelinezählerstand PIPECNT1 schnell auf Hochpegel gesetzt wird. Ferner werden zu diesem Zeitpunkt die NMOS-Transistoren 126, 134 und 140 durch die Deselektion (Zurücksetzung) von PCNT0 auf Niedrigpegel abgeschaltet. Wenn alle NMOS-Transistoren 134, 140 und PMOS-Transistoren 130, 144 abgeschaltet sind, beeinflußt dieser bestimmte Zweig nicht mehr den Zustand von PULLUP oder PULLDN. Als Ergebnis verharren PULLUP und PULLDN auf ihren derzeitigen Spannungen, bis sie durch den nächsten ausgewählten Zweig (oder durch die Ausgangssperrschaltung) auf neue Spannungen gesteuert werden. Wenn bei der gleichzeitigen Deselektion des derzeitigen Zweiges und der Deselektion des nächsten Zweiges die Daten noch nicht an den Äquivalenten der Knoten N01 oder N04 des nächsten Zweiges angekommen sind (z. B. an den Knoten N02 und N05 des Zweiges 1), treten im Ausgang noch keine Störspitzen auf. Statt dessen geschieht nichts, wenn der nächste Zweig ausgewählt wird. Nur wenn die Daten schließlich ankommen, um den Knoten N02 oder N05 des nächsten Zweiges zu setzen, werden die Knoten PULLUP oder PULLDN in ihrer Spannung verändert. Somit verharrt der Ausgang auf Hochpegel, Niedrigpegel oder im offenen Zustand (Zustand mit offenem Stromkreis), bis die nächsten Daten für die Ausgabe verfügbar sind. Wenn die nächsten Daten die gleichen Daten wie die vorliegenden Daten sein sollten, ändern die Knoten PULLUP und PULLDN nicht die Spannung, wodurch der Ausgang keine Störspitze aufweist, selbst wenn der nächste Pipelinezählerstand Daten ausgewählt hat, bevor diese Daten verfügbar waren.
- Fachleute werden erkennen, daß PULLUP so konfiguriert sein kann, daß es schneller ansteigt als PULLDN, was den PMOS-Transistor 146 veranlaßt, schneller abzuschalten, als der NMOS-Transistor 148 einschaltet. In ähnlicher Weise kann PULLDN so konfiguriert sein, daß er schneller abfällt als PULLUP, was den NMOS-Transistor 148 veranlaßt, schneller abzuschalten, als der PMOS- Transistor 146 einschaltet. Dies führt zu Einsparungen im Stromverbrauch.
- Um sicherzustellen, daß ein gültiges Signal an den Knoten N01 und N04 plaziert wird, ist ferner ein Signal RESET0 vorgesehen. Dieses Signal für den Zweig 0 (der Zweig, der von PLPECNT0 zur Ausgabe von Daten ausgewählt worden ist) wird in einer spezifischen Ausführungsform als ein positiver Impuls am Beginn eines Zyklus ausgewählt, in welchem das Signal PIPECNT1 auf Hochpegel gesetzt worden ist (d. h. unmittelbar nach dem Zyklus, in welchen PIPECNT0 zur Ausgabe von Daten ausgewählt worden ist). Das Signal RESET0 ist mit den Gates der NMOS-Transistoren 114 und 116 verbunden. Das Setzen des Signals mit einem positiven Impuls setzt die Knoten N01 und N04 auf Masse zurück, ein Zustand, der darstellt, daß noch keine Daten an diesen Knoten verfügbar sind. Das Signal wird ferner durch den Invertierer 120 invertiert, dessen Ausgang den PMOS-Transistor 124 einschaltet, der die Gates der PMOS-Transistoren 132 und 142 auf Hochpegel zurücksetzt, wiederum ein Zustand, der zeigt, daß noch keine Daten verfügbar sind. Sobald jeder dieser Knoten geeignet zurückgesetzt ist, ist die Schaltung bereit zum Empfangen neuer Daten in Form eines negativen Impulses an I/O oder I/O#, wenn PIPECNTDEL0 das nächste mal Daten in den Zweig 0 lenkt. Diese neuen Daten werden ausgegeben, wenn das nächste mal PIPECNT0 auf Hochpegel gesetzt wird. Es ist zu beachten, daß die Rücksetzimpulszeitsteuerung beendet sein muß, bevor neue Daten auf I/O oder I/O# von PIPECNTDEL0 in diesem spezifischen Zweig (Zweig 0) gelenkt werden. In einer spezifischen Ausführungsform der vorliegenden Erfindung, wenn die Latenzzeit auf 3 gesetzt ist, ergibt sich ein Fenster von 10 ns, in welchem der RESET-Impuls starten und stoppen muß, bevor neue Daten an einem Knoten ankommen. Diese Zeit ist unabhängig von der Taktzykluszeit. Bei einer Latenzzeit von 2 steht sogar mehr Zeit verfügbar. Fachleute können die Zeitsteuerung des RESET-Impulses innerhalb dieses Fensters einstellen.
- Obwohl die Schaltung 100 etwas vereinfacht ist, sind mehrere Aspekte der vorliegenden Erfindung gezeigt. Erstens, die auf den I/O-Leitungen präsentierten Signale werden nicht in die Knoten N01 oder N04 weitergeleitet (gelenkt), solange nicht das Signal PIPECNTDEL0 zu dem Zeitpunkt auf Niedrigpegel gesetzt ist; zu dem das Signal I/O oder I/O# erscheint. Da die I/O-Signale z. B. 2 ns breite Impulse sein können, die in schnellen Intervallen auftreten (wie z. B. 5 ns in bestimmten Ausführungsformen), ist ein geeigneter Zeitablauf des Signals PIPECNTDEL0 erforderlich. Dieser Zeitablauf wird koordiniert durch die Verwendung einer Verzögerungsschaltung 110. Die Wahl, welches PIPECNTDEL-Signal während irgendeines gegebenen Zyklus gesetzt wird, wird bestimmt durch den Zustand des Zählers PIPECNT zum Zeitpunkt, zu dem die Leseanforderung eingeleitet wurde, und durch die ausgewählte Latenzzeit. Dies wird von der Schaltung 440 der Fig. 8 bewerkstelligt. Sobald Daten den Knoten N01 oder N04 auf Hochpegel gesetzt haben, wird er nur dann für die Ausgabe ausgewählt, wenn PCNT0 ausgewählt ist; was seinerseits nur dann auftritt, wenn PIPECNT0 ausgewählt ist (und die Datenausgabe durch die Ausgabefreigabeschaltung 118 freigegeben ist). Das heißt, die Daten von den Knoten N01 oder N04 gelangen nicht zur Ausgangsanschlußfläche 150, bis das Signal PCNT0 eine gewisse Anzahl von Takten später ausgewählt worden ist. Dieser Toreffekt wird verwendet, um die Pipelineverarbeitung der Daten zu steuern. Durch Vervielfältigen der Schaltung 100 der Fig. 1 in einer Anzahl N kann eine Datenpipeline mit einer Tiefe von 2 bis N ausgebildet werden.
- In Fig. 2 ist eine spezifische Ausführungsform einer Lenkschaltung 200 gemäß der vorliegenden Erfindung gezeigt. Diese Schaltung mit drei identischen Zweigen unterstützt Latenzzeiten von 2 oder 3. Eine Latenzzeit von 1 wird erreicht durch eine separate Schaltung, die später beschrieben wird. Jeder der drei Zweige ist größtenteils eine Nachahmung der in Fig. 1 gezeigten Schaltung 100. Fachleute werden erkennen, daß höhere Latenzzeiten erreicht werden können durch die Verwendung einer größeren Anzahl von Zweigen. Bestimmte Merkmale, die in Fig. 1 enthalten sind, wie z. B. die Verzögerungsschaltung 110, die Latenzzeitauswahlschaltung 112, die Ausgangssteuerschaltung 118 und die Ausgangstransistoren 146 und 148, sind im Schaubild der Figur. 1 nicht gezeigt. Statt dessen werden im folgenden spezifische Ausführungsformen dieser Merkmale beschrieben.
- Mehrere Merkmale einer spezifischen Ausführungsform der vorliegenden Erfindung, die in Fig. 1 nicht enthalten sind, sind in Fig. 2 gezeigt. Genauer enthält jeder der Speicherknoten N01-N06 einen Zwischenspeicher 262A-C, 260A-C, der aus einem Paar von Invertierern gebildet ist. Diese Zwischenspeicher werden verwendet, um sicherzustellen, daß Informationen in jedem dieser Knoten gehalten werden, selbst wenn das System mit niedrigen Frequenzen arbeitet, bei denen Leckströme von Bedeutung sein können. Sie sind so ausgebildet, daß sie eine Impedanz aufweisen, die hoch genug ist, um sicherzustellen, daß sie durch ihre entsprechenden Rücksetzimpulse oder durch neue Daten auf I/O oder I/O# übersteuert werden können, jedoch eine Impedanz aufweisen, die niedrig genug ist, um irgendeinen Leckstrom an ihren entsprechenden Knoten zu überwinden. Ähnliche Zwischenspeicher in dieser gesamten Beschreibung werden ebenfalls durch ihre entsprechenden Eingangssignale übersteuert. Durch Vorsehen von Zwischenspeichern an diesen Knoten wird eine Operation bei sehr niedrigen Frequenzen unterstützt. Zusätzliche PMOS-Zwischenspeicher 264A-C sind positioniert, um die Knoten N013-N015 auf Hochpegel zu halten. Sobald diese Knoten auf Hochpegel gesetzt sind, halten die Zwischenspeicher 264A-C den hohen Pegel, bis eine Änderung des Signals auftritt. Die Knoten N013-N015 werden durch die PMOS-Transistoren 224A-C auf Hochpegel zurückgesetzt, wenn ihre entsprechenden RESET-Signale gesetzt werden. Es ist zu beachten, daß die RESET- Funktion nicht die Signale auf den Leitungen PULLUP oder PULLDN zurücksetzt. Diese Signale werden statt dessen gehalten, bis sie durch neue Ausgangsdaten ersetzt werden. Dies trägt zur Sicherstellung eines störungsspitzenfreien Ausgangs bei. Es sei z. B. angenommen, daß in einem ersten Zyklus ein negativer Datenimpuls von I/O# am Gate des Transistors 202A empfangen wird und durch den Transistor 206A zum Speicherknoten N01 des Zweiges 0 gelenkt wird, was PULLUP und PULLDN veranlaßt, auf Masse gezogen zu werden, wenn PCNT0 auf Hochpegel gesetzt ist. Wenn im nächsten Zyklus die Daten erneut auf der Leitung I/O# erscheinen, werden sie zum Knoten N02 des Zweiges 1 gelenkt, um diesen auf Hochpegel zu setzen. Dies veranlaßt die Transistoren 236B, 238B, die Leitungen PULLUP und PULLDN auf Masse zu ziehen (sobald das Signal PCNT1 ausgewählt ist). Die Leitungen befinden sich jedoch bereits auf Masse, so daß der endgültige Datenausgang auf Hochpegel verharrt. Dies ist sogar dann der Fall, wenn PCNT1 ausgewählt wird, bevor Daten ankommen, um den Knoten N02 auf Hochpegel zu setzen.
- Wenn PUIIUP und PULLDN für einen Ausgangszyklus vom Zweig 1 auf Hochpegel gezogen werden müssen, (d. h. die Daten sind auf der wahren I/O- Leitung angenommen und wurden umgelenkt, um den Knoten N05 auf Hochpegel zu setzen), wird der Knoten N014 auf Masse gezogen, sobald PIPECNT1 und PCNT1 ausgewählt sind. Dies zieht PULLUP und PULLDN auf Hochpegel, da die PMOS-Transistoren 230B und 244B eingeschaltet werden. Diese werden eingeschaltet, da PIPECNT2 nicht auf Niedrigpegel gesetzt ist, wenn PfPECNT1 auf Hochpegel gesetzt ist. Ferner wird das Ende jedes PIPECNT-Zyklus abgeschlossen durch Isolieren der Leitungen PULLUP und PULLDN durch Abschalten der vorher ausgewählten PMOS-Transistoren 230, 244 und der vorher ausgewählten NMOS-Transistoren 226, 234 und 240. Diese Transistoren werden gleichzeitig abgeschaltet, da z. B. PIPECNT1 auf Niedrigpegel zurückgesetzt ist, wenn PIPECNT2 auf Hochpegel ausgewählt ist, wodurch der Zweig 1 deselektiert wird. Wenn PULLUP und PULLDN von einem Zweig am Ende eines Zyklus isoliert sind, können diese Knoten sofort neue Daten aufnehmen, wenn sie vom nächsten Zweig bereitgestellt werden.
- Es ist zu beachten, daß die Schaltung einen störspitzenfreien (jedoch verzögerten) Übergang von Zyklus zu Zyklus bietet, selbst wenn neue Daten angefordert werden, bevor diese ankommen. Es sei wiederum angenommen, daß die asynchrone Verzögerung von der Einleitung eines Lesezyklus zur Erzeugung negativen Impulses an I/O oder I/O# gleich 10 ns ist. Die Daten werden in diesem Beispiel zum Zweig 0 gelenkt. Ferner sei eine Leselatenzzeit von 2 angenommen, d. h. die Daten werden für die Ausgabe ausgewählt bei Empfang des ersten Takts, der dem Takt folgt, der den betreffenden Lesezyklus eingeleitet hat. Wenn die Taktzykluszeit größer ist als 10 ns, haben sich die Daten asynchron durch den Speicher ausgebreitet, bevor sie für die Ausgabe ausgewählt werden. Das heißt, der Knoten N01 oder N04 wurde auf Hochpegel gesetzt, bevor PCNT0 auf Hochpegel gesetzt wird. Sofort nach Empfang des nächsten externen Takts wird PCNT0 (oder PCNT1 oder PCNT2 für die folgenden Zyklen) auf Hochpegel gesetzt und die neuen Daten erscheinen am Ausgang, wie vorherbeschrieben worden ist. Wenn andererseits die Zykluszeit weniger als 10 ns beträgt, werden die Daten angefordert, bevor sie verfügbar sind. Das heißt, PIPECNT0 wird auf Hochpegel gesetzt, bevor entweder der Knoten N01 oder der Knoten N04 auf Hochpegel gesetzt worden ist, die sich beide noch in ihrem zurückgesetzten Niedrigpegelzustand befinden. In diesem Fall veranlaßt die Auswahl von PIPECNT0 durch den nächsten Takt keine Änderung des Ausgangs, bis die asynchron vorrückenden Daten ankommen. Das heißt, die Knoten PULLUP und PULLDN verharren in ihrem vorherigen Zustand, wobei der Ausgang in seinem vorherigen Zustand verharrt, Hochpegel, Niedrigpegel oder offener Zustand, bis neue Daten ankommen. Wenn nun der negative Datenimpuls I10 oder (/O# schließlich auftritt, wird der Knoten N04 oder N01 auf Hochpegel gesetzt, wobei diese neuen Daten sofort zum Ausgang vorrücken, wobei PIPECNT0 immer noch auf Hochpegel gesetzt bleibt. Wenn die neuen Daten wiederum mit den alten identisch sind, bleibt der Ausgang ohne Störspitzen stabil. Wenn der Ausgang umschaltet, hält er die vorhergehenden Daten gültig, bis neue Daten zur Verfügung stehen, um diese zu ersetzen. Der Zustand des Ausgangs ändert sich nicht, bis zwei Bedingungen erfüllt sind: die Daten haben sich asynchron durch den Speicher fortgepflanzt, um am Ausgang zur Verfügung zu stehen, und der geeignete Takt wurde empfangen, um diese Daten für die Ausgabe auszuwählen. Es ist ohne Bedeutung, was zuerst eintritt. Die Zugriffszeit ausgehend vom Takt nimmt zu, wenn die Daten, die sich durch den Speicher asynchron fortpflanzen, noch nicht verfügbar sind, wenn PIPECNT beim nächsten Takt vorrückt, um zu versuchen, diese Daten für die Ausgabe auszuwählen.
- Im folgenden wird die Operation der Schaltung 200 bei unterschiedlichen Latenzzeiten beschrieben. Es wird wiederum angenommen, daß es 10 ns dauert; bis sich die Daten asynchron durch den Speicher fortpflanzen und somit entweder den Knoten N01 oder N04 auf Hochpegel setzen. Ferner wird angenommen, daß es 5 ns erfordert, bis der Ausgang gültig wird, nachdem z. B. der Knoten N04 oder N01 auf Hochpegel gesetzt worden ist und PIPECNT0 auf Hochpegel gesetzt worden ist. In Fig. 3 ist ein Zeitablaufdiagramm für eine Latenzzeit von 2 gezeigt. In diesem Beispiel werden Datenanforderungen etwa alle 11 ns gestellt. Das Diagramm der Fig. 3 zeigt die Wechselwirkung der Signale, die erforderlich sind, um ein Ausgangssignal durch einen Signalzweig der Schaltung 200 der Fig. 2 vorzurücken. Genauer ist gezeigt, wie die Daten vom PIPECNTDEL0 gelenkt werden, um entweder den Knoten N01 oder den Knoten N04 auf Hochpegel zu setzen (in Abhängigkeit davon, ob der negative Datenimpuls auf I/O# oder auf I/O aufgetreten ist). Dieser Zweig, ausgewählt durch PIPECNT0 und PCNT0, wird als Zweig 0 bezeichnet. Die Pfeile zeigen die Beziehungen zwischen den Signalen (z. B. wo die steigende oder fallende Flanke eines Signals den Übergang eines zweiten Signals veranlaßt). Wie mit Bezug auf Fig. 11 deutlich wird, sind die PCNT-Signale normalerweise äquivalent zu den entsprechenden PIPECNT-Signalen. Nur wenn der Ausgang gesperrt worden ist, gibt es Unterschiede. Für die Zwecke dieser Beschreibung wird daher auf die PIPECNT-Signale Bezug genommen.
- Wie in Fig. 3 gezeigt ist, ist zu einem beliebigen Zeitpunkt nur eines dieser Signale PIPECNT0-2 ausgewählt (Hochpegel). Die steigende Flanke jedes Taktzyklus löst Übergänge zwischen den Signalen aus. Wenn z. B. PIPECNT0 auf Hochpegel liegt, veranlaßt die nächste steigende Flanke des Taktes PIPECNT1 auf Hochpegel zu wechseln und PIPECNT0 auf Niedrigpegel zu wechseln. Die steigende Flanke des Taktsignals steuert ferner ein RESET-Signal an. In einer spezifischen Ausführungsform wird ein RESETO-Signal ausgelöst durch die steigende Flanke von PIPECNT1, das die Knoten N01 und N02 des Zweiges 0 auf Niedrigpegel setzt und den Knoten N013 auf Hochpegel setzt. In ähnlicher Weise veranlaßt die steigende Flanke von PIPECNT2 die Erzeugung eine RESET1-Signals, während die steigende Flanke von PIPECNT0 die Erzeugung eines RESET2-Signals veranlaßt. Die Erzeugung und der Zeitablauf dieser Signale wird in Verbindung mit Fig. 10 genauer beschrieben.
- Eine Speicherlesezugriffsanforderung wird bei einem spezifischen Takt gestellt, der der Bequemlichkeit halber mit Takt 0 bezeichnet wird, und der ferner als der Lesestartzyklus bezeichnet wird. Dieser Zyklus bewirkt, daß ein Signal vom Speicher als ein negativer Impuls entweder auf I/O oder auf I/O# ausgegeben wird, nach einer asynchronen Fortpflanzungsverzögerung von etwa 10 ns ausgehend von dem Zeitpunkt, zu dem die Anforderung eingeleitet wurde. In dem in Fig. 3 gezeigten Beispiel tritt der Lesestartzyklus in einem Zyklus auf, der die steigende Flanke von PIPECNT2 veranlaßt. Dies bewirkt, daß PIPECNTDEL0 eine gewisse Zeit nach dem Start des Lesezyklus auf Niedrigpegel gesetzt wird, unabhängig davon, ob irgendwelche zusätzlichen Takte nach diesem empfangen worden sind (die Wahl des Setzens von PIPECNTDEL0 statt PIPECNTDEL1 ist ein Ergebnis der Wahl einer Latenzzeit von 2, wie später beschrieben wird). Für dieses Beispiel in einer spezifischen Ausführungsform wird PIPECNTDEL0 8,5 ns nach Beginn des Lesezyklus im Takt 0 auf Niedrigpegel gesetzt. Somit werden diese Daten unabhängig von der Taktfrequenz in den Zweig 0 gelenkt; d. h. es wird entweder der Knoten N01 oder N04 auf Hochpegel gesetzt (unabhängig davon, ob das Signal auf I/O# oder I/O auftritt). Das PIPECNTDEL0-Signal wird eine spezifische Zeitspanne nach der Auswahl des PIPECNT2-Signals gesetzt, genauer unmittelbar vor Ankunft des Datenimpulses auf I/O oder 110#. Es wird ein ausreichender Spielraum zur Verfügung gestellt, um sicherzustellen, daß das I/O- Signal innerhalb des Fensters ankommt, das durch das aktuelle PIPECNTDEL- Signal definiert wird (hier PIPECNTDEL0). Dieser Spielraum erlaubt Schwankungen des Signalzeitablaufs, die durch die Temperatur, die Leistung oder andere Einflüsse hervorgerufen werden. Die Erzeugung und der Zeitablauf des PIPECNTDEL-Signals werden später in Verbindung mit Fig. 8 genauer beschrieben.
- Da der negative I/O-Datenimpuls, der diesem Lesezyklus zugeordnet ist, während des Setzens des PIPECNTDEL0-Signals auf Niedrigpegel auftritt, werden die Daten zu einem Knoten im Zweig 0 gelenkt (d. h. entweder zum Knoten N01 oder N04). Das Lenken des negativen Lmpulses setzt entweder den Knoten N01 oder N04 von seinem Rücksetz-Niedrigpegelzustand auf Hochpegel. Der Knoten bleibt auf Hochpegel (dank eines Zwischenspeichers in einer Ausführungsform), bis er später durch einen RESET0-Impuls zurückgesetzt wird (z. B. nachdem der Zyklus abgeschlossen ist, der die Daten ausliest). Wenn die nächste externe Takteingabe Takt 1 empfangen wird, wird der nächste Pipelinezähler PIPECNT0 so schnell wie möglich auf Hochpegel gesetzt und der vorher ausgewählte Pipelinezählerstand PIPECNT2 wird schnell auf Niedrigpegel gesetzt. Dies wählt den nächsten Zweig aus und trennt den vorher ausgewählten Zweig. Wenn PIPECNT0 auf Hochpegel gesetzt wird, werden die Transistoren 234A, 226A und 240A eingeschaltet und die Knoten PULLUP und PULLDN auf Hochpegel gezogen, wenn der Knoten N04 auf Hochpegel gesetzt ist, oder auf Niedrigpegel gezogen, wenn der Knoten N01 auf Hochpegel gesetzt ist. Diese Signale werden anschließend zu einer Ausgangsanschlußfläche 150 der Speichervorrichtung weitergeleitet.
- Die nächsten Daten, die auf den I/O-Leitungen ankommen, werden zu den Knoten N02 oder N05 des Zweigs 1 gelenkt, da der Zähler inkrementiert worden ist und das PIPECNTDEL1-Signal auf Niedrigpegel gesetzt ist. Diese Daten steuern die Leitungen PULLUP und PULLDN an, wenn PIPECNT1 unmittelbar nach dem Takt 2 ausgewählt wird. Einen Zyklus später werden die auf den I/O-Leitungen empfangenen Daten zu den Knoten N03 oder N06 des Zweiges 2 gelenkt durch das Setzen des Signals PIPECNTDEL2 auf Niedrigpegel. Die Leitungen PULLUP und PULLDN empfangen wiederum neue Daten, wenn das Signal PIPECNT bei Empfang des Takts 3 ausgewählt wird. Dieser Prozeß lenkt fortlaufend Daten in die Zweige 0, 1, 2, 0, 1, 2, 0 usw., und gewinnt sie anschließend hieraus wieder. Die ersten Daten können in irgendeinen der Zweige gelenkt worden sein, in Abhängigkeit vom Zählerstand, der bestand, als der Lesezyklus eingeleitet wurde. Nach Abschluß des letzten Lesezyklus kann der Ausgang in den offenen Zustand versetzt werden. Die Schaltung, die dies bewerkstelligt, wird im folgenden in Verbindung mit den Fig. 5, 6 und 11 beschrieben.
- Das Zeitablaufdiagramm der Fig. 3 zeigt die Daten, die auf I/O oder I/O# ankommen, bevor ihre Ausgabe ausgewählt wird, d. h. eine Zykluszeit von mehr als 10 ns. Jedoch könnte eine Zykluszeit von 7,5 ns gewählt werden, wie später beschrieben wird.
- In Fig. 4 ist ein Beispiel eines Zeitablaufdiagramms für eine Latenzzeit von 3 gezeigt. Für eine Latenzzeit von 3 beginnt die Ausgabe der Daten zwei Takte nach dem Start eines Lesezyklus, was einen Betrieb mit höherer Frequenz erlaubt. Dieses Diagramm bezieht sich wiederum auf die Schaltung 200 der Fig. 2. Die gleiche Schaltung 200 kann verwendet werden, um eine Latenzzeit von 3 zu erreichen, durch Erzeugen einer anderen Auswahl, welches PIPECNTDEL-Signal durch welches PIPECNT-Signal gesetzt wird.
- Fig. 4 zeigt eine Operation mit einer Latenzzeit von 3 und einer Zykluszeit von etwa 5,5 ns. Die steigende Flanke des Taktsignals in Fig. 4 veranlaßt wiederum einen Übergang zwischen den PIPECNT-Signalen. Das Zeitablaufdiagramm zeigt wiederum Daten, die zu den Knoten N01 oder N04 des Zweiges 0 gelenkt werden (d. h. der negative Impuls auf den I/O-Leitungen tritt während des Setzens des PIPECNTDEL0-Signals auf Niedrigpegel auf). Die Kombination eines Niedrigpegelimpulses auf I/O# oder I/O und eines Niedrigpegelsignals auf PIPECNTDEL0 lenkt die Daten so, daß entweder der Knoten N01 oder der Knoten N04 auf Hochpegel gesetzt wird. Die Auswahl des PIPECNT0-Signals veranlaßt die Übertragung dieser Daten zu den Knoten PULLUP und PULLDN, die weiterhin als Ausgang auf der Anschlußfläche 150 des Speicherabschnitts erscheinen. Für eine Latenzzeit von 3 tritt jedoch PIPECNT0 nicht auf, bis der zweite Takt nach dem den Lesezyklus einleitenden Takt, d. h. der Takt 2, erreicht ist. Es ist zu beachten, daß PIPECNTDEL0 zu einem festen Zeitpunkt nach der Auswahl von PIPECNT1 auf Niedrigpegel gesetzt wird, wenn die ausgewählte Latenzzeit gleich 3 ist, während PIPECNTDEL0 zum gleichen festgelegten Zeitpunkt nach Auswahl von PIPECNT2 auf Niedrigpegel gesetzt wurde für eine Latenzzeit von 2. In einer spezifischen Ausführungsform mit einer asynchronen Verzögerung von 10 ns wird das PIPECNTDEL0-Signal 8,5 ns nach der Auswahl von PIPECNT1 auf Niedrigpegel gesetzt (während PIPECNT2 gleichzeitig auf Hochpegel zurückgesetzt ist).
- Die Operation der Lenkschaltung 200 der Fig. 2 erlaubt, daß die Ausgangsdaten schnell und effizient pipelineartig verarbeitet werden können. Es werden hohe Betriebsfrequenzen unterstützt. Die Auswahl einer geeigneten Latenzzeit für ein bestimmtes System erlaubt einem Benutzer oder einem Speicherentwickler, die Speicherleistung zu optimieren.
- Mit einer Latenzzeit von 2 werden Daten von der Schaltung 200 beim zweiten Takt nach dem Start eines Lesezyklus ausgegeben. Das heißt, der Takt 0 startet einen Lesezyklus, der Takt 1 wählt die Daten von diesem Lesezyklus für die Ausgabe aus, und der Takt 2 speichert die gültigen Ausgangsdaten in eine Empfangsschaltung. Die Schaltung 200 kann verwendet werden, um Daten zu irgendeiner von mehreren Empfangsschaltungen auszugeben. Zum Beispiel können die Daten einem Cache-System oder einer Zentraleinheit zugeführt werden. Für eine Ausführungsform, in der die asynchrone Verzögerung zwischen dem Start eines Lesezyklus und der Ankunft der Daten am Knoten N01 oder N04 gleich 10 ns ist, und bei der die asynchronen Verzögerung durch den Ausgangspuffer gleich 5 ns ist, können die Daten am Ausgang nicht früher als 15 ns nach der Einleitung des Lesezyklus gültig sein. Das heißt, die Zeit zwischen dem Takt 0 und dem Takt 2 muß wenigstens 15 ns betragen, damit die richtigen Daten von einer Empfangsschaltung empfangen werden können. Bei einer Latenzzeit von 2 muß die Zykluszeit daher größer oder gleich 7,5 ns sein. Es ist zu beachten, daß bei einer Zykluszeit von 7,5 ns das Signal PIPECNT0 einen Takt (oder 7,5 ns) nach dem Start des Lesezyklus neue Daten aufruft, 2,5 ns vor dem Zeitpunkt, zu dem die Daten den Knoten N01 oder N04 auf Hochpegel setzen. Die Ausgabe weist keine Störspitzen auf, sondern beginnt statt dessen nur dann umzuschalten, wenn die Daten schließlich am Knoten N01 oder N04 ankommen, 2,5 ns nach dem Zeitpunkt zu dem der Takt 1 diese Daten für die Ausgabe auswählt. Die Daten werden am Ausgang etwa 5 ns später durch den Takt 2 gültig.
- Für eine Latenzzeit von 3 werden die Daten andererseits in einem Empfangschip beim Takt Nr. 3 zwischengespeichert. Wie bei der Latenzzeit 2 setzen die Daten wiederum den Knoten N01 oder N04 auf Hochpegel nach einer asynchronen Verzögerung von 10 ns seit dem Start eines Lesezyklus, und können in 5 ns durch den Ausgangspuffer vorrücken. Bei einer Latenzzeit von 3 jedoch gibt es drei Takte während dieses Zeitintervalls von 15 ns. Somit kann jede Taktperiode lediglich 5 ns betragen. Mit dieser Latenzzeit von 3 und mit einer Zykluszeit von 5 ns werden die Daten beim Takt Nummer 2 für die Ausgabe ausgewählt, 10 ns nach dem Start des Lesezyklus. Wenn der Knoten N01 oder N04 nach einer asynchronen Verzögerung von 10 ns nach dem Takt 0 auf Hochpegel gesetzt wird und PIPECNT0 ebenfalls 10 ns nach dem Takt 0 durch den Takt 2 ausgewählt wird, sind die Daten am Ausgang 5 ns später gültig (d. h. bei 15 ns). Dies ist gleichzeitig mit dem dritten Takt, welcher die Daten in eine Empfangsschaltung speichert (z. B. eine CPU, einen Cache oder dergleichen).
- Der Hauptfunktionsunterschied zwischen der Operation mit einer Latenzzeit von 2 und einer Operation mit einer Operation mit einer Latenzzeit von 3 ist die logische Auswahl, welches gesetzte PIPECNTDEL welchem ausgewähltem PIPECNT folgt. Die Auswahl bestimmt die Anzahl der Takte, die auftreten, bevor die Daten für die Ausgabe ausgewählt werden. Ein weiterer Unterschied ist die Steuerung, welche Zyklen die Ausgabe freigeben.
- Wenn die Taktfrequenz ansteigt, nimmt auch die minimale nutzbare Latenzzeit zu. Für das obige Beispiel erfordert ein Betrieb bei einer Zykluszeit von 5 ns eine Latenzzeit von (wenigstens) 3. Der Betrieb bei einer Zykluszeit von 7,5 ns erfordert eine Latenzzeit von (wenigstens) 2. Die Operation bei einer Latenzzeit von 1 (unter Verwendung einer Schaltung, die derzeit beschrieben wird) wird als möglich betrachtet für eine Zykluszeit von wenigstens 15 ns. Um die Zugriffszeit zu minimieren, sollten die Systementwickler die kleinste Latenzzeit wählen, die mit dieser Soll-Betriebsfrequenz arbeitet. Die effiziente programmierbare Latenzzeit der vorliegenden Erfindung erlaubt eine Auswahl der Latenzzeit, um somit einem Entwickler zu ermöglichen, das System für die besonderen Bedürfnisse zu optimieren. Diese Flexibilität wird erreicht ohne Beeinträchtigung der Gewinne bei anderen Speicherentwurfsparametern, wie z. B. der Geschwindigkeit, der Leistung und der Substratfläche.
- In einer spezifischen Implementierung kann die Lenkschaltung 200 mit einer zusätzlichen Schaltung ergänzt sein, die dafür konfiguriert ist, eine Latenzzeit von 1 zu unterstützen. In Fig. 5 ist eine Schaltung 280 gezeigt, die verwendet werden kann, wenn eine Latenzzeit von 1 erwünscht ist. Durch Verwenden dieser Schaltungen zusammen auf einem einzelnen Speicherabschnitt kann ein Benutzer einen noch breiteren Bereich von Ausgangslatenzzeiten auswählen. Ähnlich der Schaltung 200 steuert die Schaltung 280 den Zustand der Signale PULLUP und PULLDN. Die Schaltung 280 kann verwendet werden, wenn das System (oder ein Entwickler) entschieden hat, eine Latenzzeit von 1 statt 2 oder höher zu nutzen. Wenn die gewünschte Latenzzeit größer als 1 ist, wird das Signal CL1 (Spalten- Leselatenzzeit = 1) auf Niedrigpegel gesteuert, während der Ausgang des Nicht- UND-Gatters 284 auf Hochpegel liegt, die Ausgänge beider Nicht-ODER-Gatter 286 und 288 auf Niedrigpegel liegen und der Ausgang des Invertierers 290 auf Hochpegel liegt. Alle vier Transistoren 292, 294, 296 und 298 sind ausgeschaltet. Wenn jedoch eine Latenzzeit von 1 erwünscht ist, wird die Schaltung 200 in Fig. 2 gesperrt und die Schaltung 280 der Fig. 5 freigegeben. Die Operation der Schaltung 280, wenn sie freigegeben ist, hängt vom Zustand des Eingangssignals OUTOFF ab. Wenn OUTOFF eine logische 1 ist, gibt der Invertierer 282 eine 0 aus, während das Nicht-UND-Gatter 284 eine 1 ausgibt und die Nicht-ODER-Gatter 286, 288 Nullen ausgeben. Die Transistoren 292, 294, 296 und 298 sind alle ausgeschaltet. Dies erlaubt der Schaltung 300 der Fig. 6 den Ausgang in den offenen Zustand zu schalten, wie im folgenden beschrieben wird. Wenn OUTOFF eine logische 0 ist und CL1 eine logische 1 ist, liegt der Ausgang des Nicht-UND-Gatters 284 auf Niedrigpegel, was die Schaltung 280 freigibt durch Bereitstellen einer Niedrigpegeleingabe an jeden der Nicht-ODER-Gatter 286, 288. Die Daten fließen wiederum asynchron durch den Speicher und liefern einen Niedrigpegelimpuls auf entweder I/O oder I/O#. Wenn ein Niedrigpegelimpuls auf der Leitung I/O vorrückt, gibt das Nicht-ODER-Gatter 286 einen Hochpegelimpuls aus, wobei der Invertierer 290 einen Niedrigpegelimpuls ausgibt und die PMOS-Transistoren 292, 294 einschaltet. Dieser Niedrigpegelimpuls weist eine Dauer auf, die lang genug ist, um sowohl PULLUP als auch PULLDN auf Vcc zu ziehen. Diese verharren auf Vcc (aufgrund der Zwischenspeicher, die in der Schaltung 300 der Fig. 6 enthalten sind), bis sie durch einen nachfolgenden Zyklus umgeschaltet werden. Wenn sowohl PULLUP als auch PULLDN auf Vcc liegen, wird der Ausgang auf Masse gesteuert. In ähnlicher Weise veranlaßt ein Niedrigpegelimpuls auf der Leitung I/O# die Ausgabe eines Hochpegelimpulses vom Nicht-ODER-Gatter 288, wodurch die NMOS-Transistoren 296 und 298 eingeschaltet werden. Dies zieht sowohl PULLUP als auch PULLDN auf Masse, was den Ausgang auf Vcc steuert. PULLUP und PULLDN verharren auf Masse, bis sie durch einen nachfolgenden Zyklus auf Hochpegel geschaltet werden.
- Es ist zu beachten, daß mit einer Latenzzeit von 1 keine Pipelineverarbeitung stattfindet. Das heißt, sobald die Daten in Form eines negativen Impulses an I/O oder I/O# auftreten, werden die Daten kontinuierlich asynchron ausgegeben. Sie warten nicht auf die Ankunft eines zweiten oder dritten Taktes, bevor der Ausgang umgeschaltet wird.
- Die Signale PULLUP und PULLDN werden verwendet, um ein Ausgangssignal OUT_TTL anzusteuern, das mit einem Ausgangsanschluß der Speichervorrichtung verbunden sein kann. In einer spezifschen Ausführungsform wird OUT_TTL durch eine Ausgangsschaltung 300 der Fig. 6 erzeugt. Diese Schaltung 300 kann die Signale PULLUP und PULLDN aufnehmen, die von der Schaltung 280 der Fig. 5 ausgegeben werden (für eine Latenzzeit von 1) und von der Schaltung 200 der Fig. 2 ausgegeben werden (für eine Latenzzeit größer als 1). Wenn sowohl PULLUP als auch PULLDN auf Vcc gesteuert werden, entweder durch die Schaltung 200 oder durch die Schaltung 280, ist der PMOS-Transistor 314 ausgeschaltet und der NMOS-Transistor 318 ist eingeschaltet, so daß der Ausgang auf Masse gesteuert wird. Wenn beide auf Masse gesteuert werden, entweder durch die Schaltung 280 oder durch die Schaltung 280, wird der PMOS- Transistor 314 eingeschaltet und der NMOS-Transistor 318 ausgeschaltet, so daß der Ausgang auf Vcc gesteuert wird. Um eine Ausgangsanschlußfläche schnell anzusteuern, weisen sowohl der PMOS-Transistor 314 als auch der NMOS-Transistor 318 relativ große Kanalbreiten auf. In einer spezifischen Ausführungsform weist z. B. der PMOS 314 eine Kanalbreite von 400 um auf, während der NMOS 318 eine Kanalbreite von 250 um aufweist:
- Wenn OUTOFF auf Hochpegel gesetzt ist, liegt der Ausgang des Invertierers 302 auf Niedrigpegel, wodurch der PMOS-Transistor 304 einschaltet. Dies zieht PULLUP auf Vcc und schaltet den PMOS 314 aus. Gleichzeitig wird der NMOS 316 eingeschaltet, wodurch PULLDN auf Masse gezogen wird. Dies schaltet den NMOS-Transistor 318 aus. Wenn beide Transistoren 314 und 318 ausgeschaltet sind, befindet sich der Ausgang im offenen Zustand. Die Invertierer 306 und 308 speichern den Zustand von PULLUP, während die Invertierer 310 und 312 den Zustand von PULLDN speichern, wobei irgendein gegebener Zustand unendlich aufrechterhalten wird, bis neue Daten ankommen. Das Signal OUTOFF funktioniert im wesentlichen wie ein Ausgabesperrbefehl, der zum Ausschalten sowohl des PMOS 314 als auch des NMOS 318 dient.
- In dem Fall, in dem die ausgewählte Latenzzeit gleich 1 ist, wird somit, sobald ein Signal auf den I/O-Leitungen erzeugt wird, dieses auf einer Ausgangsanschlußfläche (OUT_TTL) plaziert, ohne auf irgendeinen zusätzlichen Takt zu warten. Das heißt, die Daten fließen asynchron den gesamten Weg bis zum Ausgang. Wenn die ausgewählte Latenzzeit gleich 2 ist, werden die Ausgangssignale von einem durch den Takt 0 eingeleiteten Lesezyklus nur nach Empfang des nächsten Taktes (nämlich des Taktes 1) an der Ausgangsanschlußfläche plaziert. Wenn die ausgewählte Latenzzeit gleich 3 ist, werden die Ausgangssignale von einem durch den Takt O eingeleiteten Lesezyklus nur nach Empfang des Taktes 2 an der Ausgangsanschlußfläche plaziert. Das Ergebnis ist die Möglichkeit, selektiv eine Latenzzeit für die Ausgabe von z. B. einer synchronen Speichervorrichtung zu bestimmen. Durch Auswählen einer hohen Latenzzeit kann das System sehr hohe Betriebsfrequenzen unterstützen. Die Zugriffszeit vom Start eines Lesezyklus bis zur Ausgabe ist schnell, da die Daten asynchron den gesamten Weg von der Eingabe bis zu der durch die PIPECNTDEL-Signale bewirkten Lenkung fließen. Das Signal wird nicht verlangsamt durch das Durchlaufen einer Sequenz von Zwischenübertragungsgattern. Statt dessen durchläuft das Signal ein einzelnes Lenkgatter (z. B. PMOS). Die Schaltung ist dennoch relativ einfach und belegt wenig Substratfläche. Wenn sie z. B. in Verbindung mit einem synchronen DRAM verwendet wird, kann ein System gemäß der vorliegenden Erfindung eine Ausgangspipelinefunktion mit einem Chip von nahezu der gleichen Größe wie bei einem ansonsten ähnlichen asynchronen DRAM schaffen.
- In Fig. 7 ist eine PIPECNT-Erzeugungsschaltung 330 gezeigt. Die PIPECNT-Erzeugungsschaltung 330 wird verwendet, um Pipelinezählerstände für die Lenkschaltung 200 der Fig. 2 zu erzeugen. Allgemein ausgedrückt ist die PIPECNT-Schaltung 330 ein synchroner Hochleistungs-Umlaufzähler, der durch drei teilt. Der Zählmodulus von 3 wird gewählt, um eine spezifische maximale Latenzzeitanforderung zu erfüllen, die in diesem Fall gleich 3 ist.
- Die Schaltung 330 enthält einen LRAS-Eingang, der in einer spezifschen Ausführungsform zur Verwendung in einem DRAM-System verwendet werden kann, um die Schaltung zu sperren, wenn RAS nicht aktiv ist. Dieses Merkmal spart Leistung während inaktiver RAS-Zyklen, wenn kein Lesen möglich ist. Ein Niedrigpegelsignal auf der Leitung LRAS schaltet den NMOS-Transistor 346 aus und zieht den Knoten N20 über den PMOS-Transistor 352 auf Hochpegel. Dies verhindert, daß der Zähler weiterzählt, anstatt ihn auf seinem bestehenden Zählerstand zu verriegeln. Wenn jedoch RAS aktiv ist, ermöglicht ein Hochpegelsignal auf LRAS der Schaltung 330 durch Einschalten eines NMOS-Transistors 346, den Zählerstand freizugeben, um mit jedem neuen Takt vorzurücken. Das LRAS-Signal muß, nachdem RAS inaktiv wird, für eine Anzahl von Zyklen aktiv bleiben, die ausreicht, um die in den Zweigen der Schaltung 200 gespeicherten Daten auszugeben.
- Wenn eine Latenzzeit von 1 verwendet wird, ist die Zählerschaltung 330 nicht erforderlich. Somit kann die Schaltung durch Setzen eines CL1-Signals auf Hochpegel gesperrt werden. Dies veranlaßt das Nicht-ODER-Gatter 334, ein Niedrigpegelsignal auszugeben. Eine logische 0 wird somit an einem der Eingänge jedes Nicht-UND-Gatters 368, 362 und 358 plaziert. Dies stellt sicher, daß die Knoten N15-N17 alle auf Niedrigpegel bleiben und daß die NMOS-Transistoren 372, 366 und 360 alle ausgeschaltet sind. Gleichzeitig veranlaßt der Niedrigpegelausgang des Nicht-ODER-Gatters 334 einen Hochpegelausgang der Nicht-UND- Gatter 378, 396 und 414, deren invertierte Ausgänge die PMOS-Transistoren 374, 392 und 410 einschalten. Somit liegen die Knoten N21, N22 und N23 auf Hochpegel, wodurch die PMOS-Transistoren 384, 402 und 420 ausgeschaltet werden. Der Ausgang des Invertierers 338 liefert eine Hochpegeleingabe an die NMOS- Transistoren 340, 342 und 343. PIPECNT0, 1 und 2 bleiben alle auf Masse, um Leistung zu sparen.
- Wenn ferner die Speichervorrichtung noch keine Substratvorspannung aufweist (d. h. ein Einschaltsignal wurde noch nicht auf Hochpegel gesetzt), ist die Schaltung 330 gesperrt. Dies wird bewerkstelligt durch Leiten eines Einschaltsignals durch einen Invertierer 332 zu einem Nicht-ODER-Gatter 334, das die Schaltung 330 sperrt, wie eben für eine Latenzzeit von 1 beschrieben worden ist, Fachleute werden erkennen, daß ein Latch-Up auftreten kann, wenn die Schaltung nur mit einer Substratvorspannung arbeiten soll (wie z. B. in einem DRAM), jedoch die Möglichkeit hatte, zu arbeiten, bevor die Substratvorspannung erzeugt wurde.
- Die Pipelinezählerstandschaltung 330 ist im wesentlichen ein selbststartender synchroner Zähler mit minimaler Verzögerung von clkt2 bis zu den Übergängen an PIPECNT0, 1 oder 2. Clkt2 ist ein positiver 4mpuls von kurzer Dauer, der schnell nach der steigenden Flanke nach der Takteingabe auftritt. Im folgenden wird angenommen, daß LRAS auf Hochpegel gesetzt ist, CL1 auf Niedrigpegel liegt und pwrup auf Hochpegel liegt. Das heißt, die Schaltung 330 ist freigegeben, Ein Zählerstand tritt als Ergebnis des positiven Impulses an clkt2 auf. Bei der steigernden Flanke von clkt2 schaltet der NMOS-Transistor 340 ein, wodurch der Knoten N20 auf Masse gezogen wird. Wenn der NMOS-Transistor 344 einschaltet, werden die Source-Anschlüsse der NMOS-Transistoren 360, 366 und 372 auf Masse gezogen. Zu diesem Punkt liegt einer der Knoten N15, N16 oder N17 auf Hochpegel. Für die Zwecke der Erläuterung wird angenommen, daß der Knoten N15 bei Auftreten von clkt2 auf Hochpegel liegt. Dies ist der Fall, wenn PIPECNT2 vor dem Empfang von clkt2 auf Hochpegel gesetzt wurde (PIPECNT0 und 1 auf Niedrigpegel). Eine logische 1 am Gate des NMOS-Transistors 372 veranlaßt den Transistor, zu leiten, was den Knoten N21 veranlaßt, schnell dem Knoten N20 nach Masse zu folgen. Wie beschrieben wird, ist der PMOS-Transistor 374 zu diesem Zeitpunkt ausgeschaltet. Ein Zwischenspeicher, der von den Invertierern 380 und 382 gebildet wird, stellt sicher, daß der Knoten N21 in einem Zustand verharrt, bis er in den entgegengesetzten Zustand gezwungen wird. Der Zwischenspeicher ist so konfiguriert, daß er leicht übersteuert werdenkann. Der Niedrigpegel am Knoten N21 schaltet einen sehr großen PMOS-Transistor 384 ein, um schnell die Signalleitung PIPECNT0 auf Hochpegel zu setzen. Ein weiterer Zwischenspeicher, der von den Invertierern 386, 388 gebildet wird, hält das Hochpegelsignal an PIPECNT0. Wenn PIPECNT0 auf Hochpegel wechselt, wird die vorher ausgewählte Leitung PIPECNT2 auf Niedrigpegel zurückgesetzt über einen großen NMOS-Transistor 426. Dies stellt einen sehr schnellen Übergang eines Zählerstands von z. B. 2 auf 0 sicher.
- Das Hochpegelsignal an PIPECNT0 veranlaßt eine Niedrigpegelausgabe des Invertierers 388, was eine Hochpegelausgabe des Nicht-UND-Gatters 378 veranlaßt, was eine Niedrigpegelausgabe des Invertierers 376 veranlaßt. Nach der kleinen Verzögerung dieser Logikgatter wird der PMOS-Transistor 374 eingeschaltet. Dies findet statt nach der fallenden Flanke des Impulses an clkt2. Als Ergebnis setzt der PMOS-Transistor 374 den Knoten N21 auf Hochpegel zurück, schaltet den PMOS-Transistor 384 ein, jedoch nur, nachdem PIPECNT0 auf Hochpegel geschaltet hat. Mit dem ausgeschalteten PMOS-Transistor 384 kann PIPECNT0 schnell durch den NMOS-Transistor 390 beim nächsten Takt auf Masse gezogen werden, wenn PIPECNT1 auf Hochpegel wechselt. Das Setzen von PIPECNT0 auf Hochpegel veranlaßt, daß eine logische 1 am Eingang des Nicht-UND-Gatters 362 plaziert wird. Das Nicht-ODER-Gatter 334 liefert eine 1 zum anderen Eingang des Nicht-UND-Gatters 362. Das Nicht-UND-Gatter 362 gibt daher eine logische 0 aus. Nach einer Verzögerung von der Invertiererkette 364 (die gewählte Verzögerung ist größer als die Breite des Impulses an clkt2), wird der Knoten N16, das Gate des NMOS-Transistors 366, in Vorbereitung für den nächsten Takt auf Hochpegel gezogen. In ähnlicher Weise wird der Knoten N15, das Gate des NMOS-Transistors 372, vor dem nächsten Takt auf Niedrigpegel gezogen, da PIPECNT0 auf Hochpegel gesetzt war, wodurch der Ausgang des Nicht-ODER-Gatters 336 auf Niedrigpegel gezogen wird. Dieser nächste Takt beeinflußt nicht den Knoten N21, da der Transistor 372 ausgeschaltet ist. Er zieht jedoch den Knoten N22 auf Niedrigpegel, da der Transistor 366 eingeschaltet ist. Der PMOS-Transistor 402 setzt PIPECNT1 schnell auf Hochpegel. Das Setzen von PIPECNT1 auf Hochpegel veranlaßt den NMOS-Transistor 390, PIPECNT0 auf Niedrigpegel zurückzusetzen.
- Schnelle positive Übergänge in den PIPECNT-Signalen werden zum Teil durch die Verwendung von PMOS-Transistoren 384, 402 und 420 mit großen Kanalbreiten (in der Größenordnung von 1000 um) erreicht, um die relativ hohe Kapazität, die den Verdrahtungen und der Logik zugeordnet ist, die mit jedem der PIPECNT-Signale verbunden sind, schnell nach oben zu ziehen. Um eine Verzögerung weiter zu verringern, bevor diese PMOS-Transistoren mit dem Ziehen der Knoten auf Hochpegel beginnen, sind ihre entgegengesetzten NMOS-Transistoren 390, 408 und 426 bereits ausgeschaltet. Das heißt, der PMOS-Transistor 384 zieht z. B. PIPECNT0 auf Hochpegel zu einem Zeitpunkt, zu dem PIPECNT1 (das Gate des NMOS 390) auf Niedrigpegel liegt. Die NMOS-Transistoren 390, 408 und 426 sind ebenfalls mit relativ großen Kanalbreiten versehen, um schnelle negative Übergänge zu erreichen. Ferner werden diese NMOS-Transistoren leitend, während ihre entgegengesetzten PMOS-Transistoren bereits abgeschaltet sind, da die PMOS-Transistoren für einen Impuls mit begrenzter Dauer eingeschaltet waren. Um eine schnelle Operation zu erreichen, ist ferner die Kapazität an clkt2 minimiert, da clkt2 nur einen einzigen Transistoren treiben muß, nämlich den NMOS-Transistor 344. Wenn der Zähler implementiert würde unter Verwendung dreier herkömmlicher Nicht-UND-Gatter, jeweils eines zum Erzeugen der Knoten N21, N22, N23, währen drei separate NMOS-Transistoren und drei PMOS-Transistoren mit dem Knoten clkt2 verbunden. Dies würde die Kapazität an clkt2 deutlich erhöhen.
- Eine sehr kurze Verzögerung zwischen dem Takt und der Auswahl eines neuen PIPECNT führt zu einer sehr geringen Zugriffszeit vom Takt bis zur Ausgabe. Wie in den Beispiel-Zeitablaufdiagrammen der Fig. 3 und 4 gezeigt, weisen die von den Pipelinezählerstandschaltungen 330 erzeugten Signale schnelle Übergänge auf, die nur zwei Invertiererverzögerungen nach dem Übergang von clkt2 auf Hochpegel auf Hochpegel wechseln, was wiederum nur zwei Invertiererverzögerungen nach dem Übergang des extern empfangenen Takts auf Hochpegel stattfindet. Jedes Signal PIPECNT0-PIPECNT2 wird für einen Taktzyklus auf Hochpegel gesetzt und für zwei Taktzyklen auf Niedrigpegel gesetzt, während die anderen ihrerseits gesetzt werden. Diese Signale werden in Verbindung mit der Lenkschaltung 200 der Fig. 2 verwendet, um die Daten auszuwählen, die in einem spezifischen Paar von Zwischenspeichern gespeichert sind, nämlich in den Speicherknoten N01 und N04 des Zweiges 0, um sie als Ausgangsdaten von einer Speichervorrichtung erscheinen zu lassen. Die Pipelinezählerstandschaltung 330 ist selbststartend. Wenn in irgendeinem Zyklus sowohl PIPECNT0 als auch PIPECNT1 nicht gesetzt sind (unabhängig davon, ob PIPECNT2 gesetzt ist) veranlassen das Nicht-ODER-Gatter 336, das Nicht-UND-Gatter 368, die Verzögerung 370 und der Transistor 372 das Setzen von PIPECNT0 im nächsten Zyklus. Diesem folgt in den nachfolgenden Zyklen PIPECNT1, PIPECNT2, PIPECNT0, PIPECNT1 usw.
- Die PIPECNT-Signale werden ferner in Verbindung mit einer Pipelinezählerstand-Verzögerungsschaltung 440 verwendet, die im folgenden mit Bezug auf Fig. 8 beschrieben wird. Wie in Verbindung mit den obigen Fig. 1 und 2 beschrieben worden ist, ist das Eintreten von zwei Ereignissen erforderlich, um Daten von einer I/O-Leitung der vorliegenden Erfindung zu lenken, um einen der Speicherknoten N01-N06 auf Hochpegel zu setzen. Genauer muß ein Nierigpegelimpuls auf der Leitung I/O oder I/O# erscheinen und ein einzelnes PIPECNTDEL muß auf Niedrigpegel gesetzt sein. Wenn PIPECNTDEL0 auf Niedrigpegel gesetzt wird, werden die Daten zum Knoten NO oder N4 des Zweigs 1 gelenkt. Wenn PIPECNTDEL1 oder PIPECNTDEL2 auf Niedrigpegel gesetzt ist, werden die Daten zum Knoten N02 oder N05 oder zum Knoten N03 oder N06 des Zweiges 1 bzw. 2 gelenkt. Die Pipelinezählerstand-Verzögerungsschaltung 440 wird verwendet, um sicherzustellen, daß die PIPECNTDEL-Signale zum geeigneten Zeitpunkt auftreten und zum geeigneten Zweig lenken. Bei hohen Frequenzen ist dies ein besonders schwieriges Problem. In einer spezifischen Ausführungsform inkrementiert jedes der PIPECNTDEL-Signale etwa 8,5 ns nach dem Start des Lesezyklus und folgt (invertiert) einem spezifischen der PIPECNT-Ausgänge, in Abhängigkeit von der gewählten Latenzzeit.
- Wenn jedoch die Latenzzeiten von 2 oder 3 verwendet werden, wird auf der Leitung CL1 eine 0 eingegeben. Ferner kann ein Modusregister oder dergleichen verwendet werden, um programmierbar eine Latenzzeit von entweder 2 oder 3 zu spezifizieren. In einer spezifischen Ausführungsform wählt z. B. eine logische 0 auf der Leitung mreg4 eine Latenzzeit von 2 aus, während eine logische 1 eine Latenzzeit von 3 auswählt. Wenn eine Latenzzeit von 2 ausgewählt ist, wird die obere Hälfte der Multiplexer freigegeben, die von den Transistoren 478/480, 4861488 und 494/496 gebildet wird. Wenn eine Latenzzeit von 3 gewählt ist, wird die untere Hälfte der Multiplexer freigegeben, die von den Transistoren 482/484, 490/492 und 498/500 gebildet wird. Andere Auswahlschemen für die Verwendung in einer Implementierung mit mehr Zweigen können verwendet werden, um Schaltungen mit einer größeren Anzahl von möglichen Latenzzeiten zu erzeugen. Die Speicherkonfiguration kann in einer Weise implementiert werden, die einem Benutzer erlaubt, die Latenzzeit eines installierten Teils zu ändern durch Überschreiben eines Wertes in einem Modusregister oder dergleichen.
- Die Signale PIPECNT0 und PIPECNT1 werden von der PIPECNT-Schaltung 330 der Fig. 7 empfangen. Ein Ersatz-PIPECNT2-Signal wird vom Nicht- ODER-Gatter 564 erzeugt und auf Hochpegel gesetzt, wenn weder PIPECNT0 noch PIPECNT1 auf Hochpegel gesetzt sind. Die Signale PIPECNT0, PIPECNT1 oder PIPECNT2 ändern ihren Zustand sehr schnell, nachdem cklt2 auf Hochpegel gepulst worden ist, um eine schnelle Zugriffszeit vom Takt bis zur Ausgabe zu erreichen. Der Impuls clkt2 wird durch die Invertiererkette 350 der Figur. 7 verzögert und durch die Invertiererkette 562 der Fig. 8 weiter verzögert, um einen positiven Impuls etwa 3,3 ns nach clkt2 bereitzustellen. Diese Verzögerung folgt der asynchronen Fortpflanzungsverzögerung der Datenimpulse durch den Speicherabschnitt der Schaltung und ist mehr oder weniger gleich einem Drittel dieser Verzögerung. Dieser Impuls tritt auf, nachdem die PIPECNT-Signale das Inkrememtieren beendet haben, und endet, bevor diese 5 ns später erneut inkrementiert werden können. Dieser positive Impuls bewirkt, daß der neue Zustand jedes PIPECNT- Ausgangs durch den Multiplexer vorrückt, der gebildet wird von den Transistorpaaren 452/455, 456/458 und 460/462. Zählerstandsdaten an den Multiplexerausgängen inkrementieren etwa 3,4 ns, nachdem das Signal clkt2 in die Pipelinezählerstandsschaltung der Fig. 7 eingegeben worden ist. Die Invertierer 468, 472 und 476 leiten diese neuen Daten zu den Knoten N25, N26 und N27 etwa 0,1 ns später weiter. Das heißt, die Knoten N25 = N27 folgen den invertierten Übergängen von PIPECNT0, 1, 2 mit einer Verzögerung von 3,5 ns aufgrund der Verzögerungen 350 und 562 sowie der Verzögerung durch die Multiplexer 452/455 und durch den Invertierer 468 und dergleichen. Das durch den Multiplexer weitergeleitete Signal wird von den Zwischenspeichern gehalten, die von den Invertiererpaaren 466/468, 470/472 und 4741476 gebildet werden. Die Daten an den Knoten N25-27 rücken asynchron zu den Knoten N28-30 vor; welcher Eingang N25-N27 jedoch einer gegebenen Ausgang N28-N30 erzeugt, hängt von der gewählten Latenzzeit ab. Wenn z. B. eine Latenzzeit von 2 gewählt worden ist, wird das Signal vom Knoten N25 zum Knoten N28 weitergeleitet. Das Signal am Knoten N26 wird zum Knoten N29 weitergeleitet, und das Signal an N27 wird zum Knoten N30 weitergeleitet. Das heißt, das Signal PIPECNTDEL1 wird nach einer geeigneten Verzögerung durch das Setzen von PIPECNT0 auf Hochpegel auf Niedrigpegel gesetzt. PIPECNTDEL2 wird durch die Auswahl von PIPECNT1 veranlaßt, und PIPECNT- DEL0 folgt PIPECNT2. Wenn diese Signalanordnung in Verbindung mit der Lenkschaltung 200 der Fig. 2 verwendet wird, ist das Ergebnis, das die Daten an der Ausgangsanschlußfläche 150 beim Empfangen des ersten Takts nach dem Start des Lesezyklus plaziert werden, d. h. mit einer Latenzzeit von 2, wie in Fig. 3 gezeigt ist.
- Wenn eine Latenzzeit von 3 ausgewählt worden ist, werden die Signale an den Knoten N25-N27 durch die untere Hälfte des Multiplexers geleitet. Das heißt, die Daten vom Knoten N25 werden zum Knoten N29 weitergeleitet, die Daten vom Knoten N26 werden zum Knoten N30 weitergeleitet, und die Daten vom Knoten N27 werden zum Knoten N28 weitergeleitet. In diesem Fall wird das Signal PIPECNTDEL1 durch die Auswahl von PIPECNT2 8,5 ns früher auf Niedrigpegel gesetzt. PIPECNTDEL2 folgt PiPECNT0, und PIPECNTDEL0 folgt PIPECNT1. Dies stellt sicher, daß die Daten von der Schaltung 200 zwei Takte nach dem Start des Lesezyklus an der Ausgangsanschlußfläche plaziert werden, d. h. mit einer Latenzzeit von 3, wie in Fig. 4 gezeigt ist. Die Wirkung der Auswahl unterschiedlicher Latenzzeiten wird deutlich mit Bezug auf die Zeitablaufdiagramme der Fig. 3 und 4. In Fig. 4 wurde eine Latenzzeit von 3 gewählt, wobei das Signal PIPECNTDEL0 auf Niedrigpegel gesetzt worden ist durch Setzen des Signals PIPECNT1 8,5 ns früher auf Hochpegel. Der Takt 0 leitet diesen Lesezyklus ein, der Takt 1 wählt die Daten vom Zweig 2 (falls verfügbar) aus und der Takt 2 wählt die Daten vom Zweig 0 aus, in den diese gelesenen Daten gelenkt werden. Somit wird die gewünschte Latenzzeit von 3 erreicht. In Fig. 3 wurde eine Latenzzeit von 2 gewählt, wobei das Signal PIPECNTDEL0 auf Niedrigpegel gesetzt wird durch Setzen eines Signals PIPECNT2 8,5 ns früher auf Hochpegel. In diesem Fall hat der Takt 0 den Lesezyklus eingeleitet und die Daten in den Zweig 0 gelenkt. Der Takt 1 wählt diese Daten im Zweig 0 für die Ausgabe aus, wodurch eine Latenzzeit von 2 erreicht wird. Diese Anordnung der Signalpfade erlaubt eine sehr effiziente und einfache Auswahl zwischen unterschiedlichen Latenzzeiten. Selbstverständüch können andere logische Mittel verwendet werden, um auszuwählen, welches PIPECNTDEL welchem PIPECNT folgt. Zum Beispiel kann eine kombinatorische Logik, wie z. B. Nicht-UND-Gatter oder Nicht-ODER-Gatter, verwendet werden, um Signale in einer ähnlichen Weise auszuwählen.
- Sobald das geeignete Signal den Knoten N28, N29 oder N30 erreicht hat, wird es anschließend durch den Rest der Schaltung vorgerückt unter Verwendung eines weiteren Satzes von Multiplexern (die von den Transistorpaaren 514/516, 518/520 und 522/524 gebildet werden), wobei der Zeitablauf durch das Zeitsteuersignal COUNTDEL gesteuert wird. Dieses Zeitsteuersignal ist so konfiguriert, daß es das nächste PIPECNTDEL-Signal setzt und das vorangehende gesetzte PIPECNTDEL-Signal zurücksetzt zu einem geeigneten Zeitpunkt, nachdem eine Leseanforderung an den Speicher gestellt worden ist. In der bevorzugten Ausführungsform wechseln diese Signale unmittelbar bevor die Daten auf den I/O-Leitungen ankommen. Bei einem Betrieb mit hohen Frequenzen ist ein genauer Zeitablauf unbedingt notwendig. Die folgende Schaltung bewerkstelligt die genaue Zeitsteuerung, die für dieses System erforderlich ist. Eine spezifische Ausführungsform einer Zeitsteuerschaltung 600 zum Erzeugen eines COUNTDEL-Signals ist in Fig. 9 gezeigt.
- Die PIPECNTDEL-Signale, die zum Lenken der I/O-Daten in die verschiedenen Zweige der Schaltung 200 (Fig. 2) verwendet werden, erfordern eine genaue Zeitsteuerung. Diese Zeitsteuerung muß koordiniert sein, um in Verbindung mit den negativen Datenimpulsen auf dem I/O-Leitungen stattzufinden. Wenn ein Spaltendecodiererausgang (eines DRAM) ausgewählt wird, verbinden Zugriffiransistoren die Leitungen Bit und Bit# der ausgewählten Spalten mit lokalen Leitungen I/O und I/O#, die vorher auf die gleiche Spannung ins Gleichgewicht gebracht worden sind, Eine der Leitungen Bit oder Bit# liegt auf Hochpegel, während die andere auf Niedrigpege) liegt. Die resultierende differentielle Leitung zu den Knoten bei unterschiedlichen Spannungen bewirkt, daß eine Differentialspannung zwischen der wahren und der komplementären lokalen I/O-Leitung langsam entwickelt wird. Nachdem sich ein ausreichendes Analogsignal entwickelt hat, tastet ein dynamischer Differentialleseverstärker 622 die durch diese Differentialspannung dargestellten Daten ab. Die Leseverstärkerabtastung ist ein schmaler Impuls, der den Leseverstärker veranlaßt, einen schmalen negativen Impuls entweder auf der wahren oder der komplementären (globalen) I/O-Leitung auszugeben, in Abhängigkeit von der Polarität der Differentialspannung, die von den lokalen Leitungen IIO und I/O# empfangen worden ist. Es ist wichtig, lange genug zu warten, bevor der Leseverstärker abtastet, um ein ausreichendes Signal für eine zuverlässige Operation zu erhalten. Ferner ist es wichtig, nicht länger als notwendig zu warten, da dies die Adreßzugriffszeit des Speichers verlängern würde. Um eine genaue Leseverstärker-Abtastzeitsteuerung zu erhalten, wird bewirkt, daß die Zeitsteuerung so eng wie möglich einer festen Verzögerung nach dem Setzen der ausgewählten Spalte folgt, wobei das Signal veranlaßt, daß sich das lokale I/O-Differentialsignal entwickelt. In einer spezifischen Ausführungsform wird diese feste Verzögerung unter Verwendung einer Schaltung 600 gesteuert.
- Die Zeitsteuerschaltung 600 nimmt in einer spezifschen Ausführungsform acht Vordecodiererausgänge GYAO-GYA7 auf, die alle miteinander ODER-verknüpft werden in einer logischen Nicht-ODER-Schaltung, die aus vier Nicht- ODER-Gattern 602-608, zwei Nicht-UND-Gattern 610, 612 gefolgt von einem einzelnen Nicht-ODER-Gatter 614 besteht. Fachleute erkennen, daß es unpraktisch ist, die Ausgänge der vielen Spaltendecodierer mittels ODER-Verknüpfung zu verarbeiten, um das Leseverstärkerabtast-Zeitsteuersignal zu erzeugen. Es ist jedoch praktisch, einen Satz von acht Eins-von-Acht-Vordecodiererausgangssignalen zusammen mittels ODER-Verknüpfung zu verarbeiten, von denen eines auf Hochpegel gepulst wird, unmittelbar bevor der endgültige Spaltendecodiererausgang auf Hochpegel gepulst wird. Fachleute werden ferner erkennen, daß eine logische Nicht-UND-Schaltung ebenfalls verwendet werden kann, um das Signal in den Vordecodiererleitungen zu detektieren, wenn die ausgewählten Leitungsimpulse Niedrigpegel statt Hochpegel aufweisen.
- Wenn irgendeine der globalen Y-Adressen auf Hochpegel gepulst wird, wird der Ausgang eines der Nicht-UND-Gatter 602-608 auf Niedrigpegel gepulst, was das Nicht-UND-Gatter 610 oder 612 veranlaßt, auf Hochpegel gepulst zu werden, wodurch das Nicht-ODER-Gatter 614 gezwungen wird, einen Niedrigpegelimpulsausgang zu erzeugen. Vorher lag der Ausgang des Nicht-ODER-Gatters 614 auf Hochpegel und der Ausgang der Invertiererkette 616 lag auf Niedrigpegel. Wenn somit der Ausgang des Nicht-ODER-Gatters 614 auf Niedrigpegel wechselt, für eine kurze Zeitperiode (gleich der Verzögerung der Invertiereckette 616), gibt das Nicht-ODER-Gatter 618 einen Hochpegelimpuls aus. Dieser Impuls kann z. B. ein Impuls mit einer Breite von 1 ns sein. Dieser schmale Impuls wird gewählt, um einen schmalen Datenimpuls auf den I/O-Leitungen zu erlauben. Der schmale Datenimpuls auf den I/O-Leitungen verbessert die Zeitspielräume, wie später beschrieben wird. Die führende Flanke dieses Impulses kann vier Logikverzögerungen nach dem Setzen eines der Vordecodierereingänge auftreten, was näherungsweise mit dem Setzen eines endgültigen Spaltendecodierers zusammenfällt.
- Der positive Impuls am Ausgang von COUNTDEL wird gepuffert und logisch ausgewählt, um nur ausgewählte Leseverstärker der ausgewählten Speicherfelder mittels der Puffer- und Auswahllogik 620 abzutasten. Da der Leseverstärkerabtastimpuls durch das gleiche Signal (eines von GYAO-GYA7) gesetzt wird, das eine Spalte setzt, ist dessen Zeitablauf relativ zur Spaltenauswahl sehr gut. Das Leseverstärkerabtastsignal wird etwa 2,5 ns nach dem Setzen der Spalte erzeugt, um eine Zeit für die Entwicklung des Differentialsignals zu ermöglichen. Nach der Verzögerung des Leseverstärkers und dessen Ausgangspuffer tritt ein 2 ns breiter negativer Datenimpuls auf entweder der wahren oder der komplementären (globalen) I/O-Leitung etwa 4 ns nach dem positiven Impuls von COUNTDEL auf.
- Wie vorher beschrieben worden ist, müssen die PIPECNTDEL-Signale mit einem sehr genauen Zeitablauf vorrücken. Um die benötigte Zeitablaufgenauigkeit zu erreichen, werden zwei separate Konzepte verwendet. Erstens, die Daten an I/O treten als ein Impuls auf, der eine möglichst kurze Dauer aufweist. Diese kurzen Impulse maximieren das Zeitfenster, während dem PIPECNTDEL inkrementiert werden kann, ohne Fehler hervorzurufen. Dieses Fenster ist 3 ns breit für einen Impuls von 2 ns und eine Zykluszeit von 5 ns. Wenn der Leseverstärker statt dessen einen logischen Pegel ausgeben soll (im Gegensatz zu einem Impuls)" muß PIPECNTDEL zu exakt dem Zeitpunkt inkrementieren, zu dem die Daten inkrementieren, was keinen Spielraum für Fehler läßt. Zweitens, das gleiche COUNTDEL-Signal, das die Leseverstärker-Abtastzeitsteuerung setzt (die den negativen Impuls entweder an I/O oder an I/O# erzeugt) wird auch verwendet, um die Zeitsteuerung des Vorrückens der PIPECNTDEL-Signale zu setzen. Selbstverständlich kann ein anderes Signal als COUNTDEL verwendet werden. Wichtig für eine geeignete Lenkung der Daten ist, daß das gleiche Signal sowohl für die Erzeugung der I/O-Impulse als auch für das Vorrücken des PIPECNTDEL verwendet wird.
- Mit Bezug auf Fig. 8 wird deutlich, daß der COUNTDEL-Impuls verwendet wird, um das Nicht-UND-Gatter 444 zu betreiben. Wenn eine Latenzzeit von 1 nicht ausgewählt worden ist, und wenn das COUNTDEL-Signal auf Hochpegel gepulst wird, gibt das Nicht-UND-Gatter 444 einen negativen Impuls aus, der anschließend vom Invertierer 446 invertiert wird. Somit wird ein positiver Impuls mit einer Dauer von vielleicht 1 ns am Ausgang des Invertierers 446 erzeugt. Dieser positive Impuls veranlaßt die Multiplexer, die von den Transistorpaaren 514/516, 518/520 und 522/524 gebildet werden, die Daten von den Knoten N28-N30 weiterzuleiten, um die Signale PIPECNTDEL1, 2 oder 0 zu erhalten. Das heißt, wenn PIPECNTDEL0 auf Niedrigpegel gesetzt werden soll, wird eine logische 0 vom Nicht-UND-Gatter 512 ausgegeben, pflanzt sich (mit einer spezifischen Zeit) durch den Multiplexer fort, der von den Transistoren 522 und 524 gebildet wird, wird vom Invertiererzwischenspeicher 540/542 zwischengespeichert, von den Invertierern 542-560 gepuffert und als PIPECNTDEL0 ausgegeben. Die Gesamtverzögerung von COUNTDEL bis PIPECNTDEL0 (oder PIPECNTDEL1 oder 2) beträgt etwa 2,5 ns. Dies ist die Verzögerung durch das Nicht-UND-Gatter 444, den Invertierer 446, den NMOS-Transistor 522 und die Invertierer 542, 556, 558 und 560. Diese Verzögerung von 2,5 ns wird speziell so gewählt, daß sie kleiner ist als die Verzögerung von 4,0 ns von COUNTDEL bis zur vorderen Flanke des schmalen I/O- Datenimpulses. Die PIPECNTDEL-Signale werden anschließend inkrementiert, unmittelbar bevor die I/O-Leitungen auf Niedrigpegel gepulst werden. Die PIPECNTDEL-Signale weisen eine relativ lange Dauer auf und bleiben für eine volle Taktzykluszeit gültig. Dies dient zum Erzeugen eines Fensters, innerhalb dem die I/O-Impulse ankommen können.
- Die Zeitsteuerung bei den verschiedenen Knoten einer spezifischen Ausführungsform der Schaltung 440 der Fig. 8 kann wie folgt zusammengefaßt werden. PIPECNT0, 1 und 2 rücken nach jeder ansteigenden Flanke eines Takts schnell vor. Die Muttiplexer 452/454 usw. werden etwa 3,3 ns nach der steigenden Flanke des Takts freigegeben. Die Ausgänge der Nicht-UND-Gatter 504-512 inkrementieren etwa 1,2 ns nachdem die Multiplexer 452/454 usw. freigegeben worden sind, oder etwa 4,5 ns nach der steigenden Flanke des Takts. In einem separaten Pfad wird das Signal COUNTDEL positiv gepulst, steigt etwa 6 ns nach dem Setzen des Taktes an und fällt 1 ns später ab. Der Invertierer 446 gibt einen positiven Impuls mit einer Breite von 1 ns aus, beginnend 6,5 ns nach dem Takt. Zu diesem Zeitpunkt sind die Multiplexer 514/516 usw. freigegeben, um die Daten von den Nicht-UND-Gattern 504, 508, 512 weiterzuleiten, die 2,0 ns früher gültig werden (4,5 ns nach dem Takt). Schließlich inkrementieren die PIPECNTDEL- Ausgänge 2 ns nach dem die Multiplexer 514/516 usw. freigegeben worden sind, d. h. 8,5 ns nach dem Takt. Es ist sehr wichtig, daß sie 1,5 ns vor der Ankunft der I/O-Impulse mit einer Breite 2 ns inkrementieren. Für eine Zykluszeit von 5 ns inkrementiert das PIPECNTDEL-Signal 5 ns später erneut, oder etwa 1,5 ns nach dem Ende des Datenimpulses mit einer Breite von 2 ns. Bei einer Zykluszeit von 5 ns ist somit jedes PIPECNTDEL gültig, gesetzt oder zurückgesetzt, für volle 1,5 ns auf beiden Seiten eines I/O-Datenimpulses, um die I/O-Daten geeignet zu lenken. Der schmale Datenimpuls mit einer Breite von 2 ns maximiert diesen Zeitspielraum von 1,5 ns. Dieser Impuls ist 2 ns breit, statt vielleicht 1 ns Breite aufgrund der sehr langsamen Anstiegs- und Abfallzeiten am entfernten Ende einer resistiven I/O-Leitung. In ähnlicher Weise werden die Ausgänge der Invertierer 504-512 volle 2 ns gültig auf beiden Seiten des Impulses mit einer Breite von 1 ns am Ausgang des Invertierers 446. Die Ankunft der Daten an den Ausgängen der Nicht-UND-Gatter 504, 508, 512 könnte daher um 2 ns zu früh oder zu spät sein, ohne Änderung des Zeitablaufes von PIPECNTDEL. Diese Spielräume erlauben eine Koordination des Zeitablaufs der PIPECNTDEL-Signale, und machen ferner dieses Verfahren der Pipelineverarbeitung anwendbar.
- In einer spezifischen Ausführungsform der Schaltung 440 der Fig. 8 kann ein Lesesignal verwendet werden, um die Ausgänge der Nicht-UND-Gatter 504, 508 und 512 zu sperren. Das heißt, wenn der Lesezyklus nicht aktiv ist, stellt ein auf der Signalleitung READ plaziertes Niedrigpegelsignal sicher, daß alle Nicht- UND-Gatter 504, 508 oder 512 eine logische 1 ausgeben. Es werden keine PIPECNTDEL-Signale auf Niedrigpegel gesetzt, wodurch keine Leistung beim Schalten dieser Signale verbraucht wird.
- In Fig. 10 ist eine spezifische Ausführungsform der Rücksetzschaltung 630 gemäß der vorliegenden Erfindung gezeigt. Die Pipelinerücksetzschaltung 630 wird verwendet, um die RESET0-2-Signale zu erzeugen, die in die Lenkschaltung 200 der vorliegenden Erfindung eingegeben werden. Das Signal RESETO (positiver Impuls) setzt die Knoten N01 und N04 der Schaltung 200 (Fig. 2) auf Niedrigpegel und den Knoten N013 auf Hochpegel. Dieses Rücksetzen für den Zweig 0 findet früh im Zyklus statt, nach dem Zyklus, der die Daten vom Zweig 0 ausgibt. Das heißt, es findet statt, unmittelbar nachdem der Zweig 0 nicht mehr für die Ausgabe ausgewählt ist, früh im Zyklus des Auswählens des Zweiges 1 für die Ausgabe. Der Impuls RESET endet jedoch, bevor neue Daten in den Zweig 0 von I/O oder I/O# gelenkt werden. Die Schaltung 630 wird vom Taktsignal clkd2 angesteuert, da sie wie oben beschrieben früh im Zyklus einen positiven Impuls ausgibt. Die Verzögerung wird von einer Invertiererkette 644 hinzugefügt. Die Anzahl der Invertierer der Kette wird so gewählt, daß sichergestellt ist, daß die Rücksetzsignale erzeugt werden, nachdem der Pipelinezähler zum nächsten Zählerstand vorgerückt ist. Zum Beispiel müssen die Speicherknoten N01 und N04 der Schaltung 200 der Fig. 2 zu einem bestimmten Zeitpunkt auf Niedrigpegel zurückgesetzt werden, nachdem PLPECNT0 zurückgesetzt worden ist, jedoch muß das Zurücksetzen enden, bevor neue Daten von PIPECNTDEL0 zum Knoten N01 oder N04 gelenkt werden, um diesen auf Hochpegel zu setzen. In einer spezifischen Ausführungsform ist die Rücksetzschaltung 630 so koordiniert, daß der positive Impuls am Ausgang der Invertiererkette 644 vielleicht 3 ns nach dem Empfang des Takts auftritt. Zu diesem Zeitpunkt wurde eines der Signale PIPECNT0, 1 oder 2 gerade auf Hochpegel gesetzt. Somit wird der Ausgang eines der Nicht-UND-Gatter 632-636 auf Niedrigpegel gepulst. Wenn z. B. PIPENCNT1 eben auf Hochpegel gesetzt worden ist, gibt das Nicht-UND-Gatter 632 einen Niedrigpegelimpuls aus, wobei RESET0 einen Hochpegelimpuls ausgibt, wobei dieser Impuls endet, bevor neue Daten in den Zweig 0 gelenkt werden. Die anderen RESET-Signale (1 und 2) erzeugen in diesem Zyklus keinen Rücksetzimpuls. In ähnilicher Weise führt die Auswahl eines PIPECNT2-Signals zur Erzeugung eines RESET1-Signals und die Auswahl eines PIPECNT0-Signals erzeugt ein RESET2-Signal. Die relative Zeitsteuerung der Erzeugung der RESET-Signale kann modifiziert werden. Jedes RESET-Signal muß jedoch auftreten, nachdem sein Zweig nicht mehr für die Ausgabe ausgewählt ist, und muß enden, bevor neue Daten in seinem Zweig ankommen.
- Wenn eine Latenzzeit von 1 gewählt worden ist, liefert der Invertierer 631 einen Niedrigpegelausgang, wobei jeweils RESET0-2 einen Hochpegelausgang aufweisen. In diesem Fall bleiben alle Knoten N01, N02, N03, N04, N05 und N06 der gesperrten Schaltung 200 der Fig. 2 auf Niedrigpegel zurückgesetzt. Kein Rücksetzsignal ändert die Spannung, wodurch Leistung eingespart wird.
- Die meisten Speicherschaltungen haben die Anforderung, daß die Ausgänge zu Zeitpunkten offen sein müssen (Zustand mit offenem Stromkreis), zu denen z. B. andere ähnliche Speicherchips parallel zu diesem Chip ausgewählt werden. Die Logik zum Feststellen, ob ein gegebener Taktzyklus Daten ausgeben soll oder einen offenen Schaltzustand schaffen soll, ist Fachleuten bekannt. Für den Zweck der vorliegenden Erfindung ist es erforderlich, daß diese Informationen vor dem Start des Zyklus gültig werden, in dem sie wirksam werden sollen. Ein Signal, bezeichnet mit OUTEN (Ausgangsfreigabe), veranlaßt dann, wenn es am Ende eines Zyklus auf Hochpegel gesetzt wird, daß die nächsten gültigen Daten beim nächsten Takt ausgegeben werden, wie bereits beschrieben worden ist. Wenn jedoch OUTEN gesperrt ist, veranlaßt es die Ausgänge, nach dem Empfang des nächsten Taktes schnell den offenen Schaltzustand anzunehmen. Um einen offenen Schaltungsausgang zu erreichen, wird OUTOFF in der Schaltung 300 der Fig. 6 auf Hochpegel gesetzt. Dieser Hochpegel wird vom Invertierer 302 invertiert, um einen Niedrigpegeleingang am PMOS-Transistor 304 zu erzeugen. Dies zieht den Knoten PULLUP auf Hochpegel, wodurch der Ausgangs-PMOS-Transistor 314 abschaltet. Der Hochpegel an OUTOFF schaltet den NMQS-Transistor 316 ein, um den Knoten PULLDN auf Niedrigpegel zu ziehen, wodurch der Ausgangs-NMOS-Transistor 318 abschaltet. Mit den abgeschalteten Transistoren 314 und 318 ist der Ausgang ein offener Schaltkreis.
- Um Leistung zu sparen, ist es erforderlich, daß während dieses Ausgangsperrzyklus kein Transistor versucht, PULLUP auf Niedrigpegel zu ziehen oder PULLDN auf Hochpegel zu ziehen. Wie in der Schaltung 200 der Fig. 2 gezeigt ist, wird dann, wenn PIPECNT vorrückt (z. B. von PIPECNTDEL0 nach PIPECNTDEL1), P4PECNT1 schnell auf Hochpegel gesetzt, was die PMOS-Transistoren 230A und 244A des Zweigs 0 ausschaltet, während PIPECNT0 schnell auf Niedrigpegel zurückgesetzt wird, was die NMOS-Transistoren 234A, 226A und 240A des Zweiges 0 ebenfalls abschaltet. Das heißt, der vorher ausgewählte Zweig 0 der Schaltung 200 wird daran gehindert, weiterhin PULLUP auf Niedrigpegel oder PULLDN auf Hochpegel zu ziehen. Es ist jedoch ferner erforderlich, daß während der Auswahl von PIPECNT1 keine Daten vom Zweig 0 versuchen, während dieses Ausgangssperrzyklus PULLUP auf Niedrigpegel oder PULLDN auf Hochpegel zu ziehen. Dies wird erreicht durch Halten von PCNT1 auf Niedrigpegel während dieses Ausgangssperrzyklus, auch wenn PIPECNT1 auf Hochpegel gesetzt ist. PIPECNT1 muß auf Hochpegel gesetzt werden, um die PMOS-Transisforen 230A und 244B des vorher ausgewählten Zweiges abzuschalten, wie eben beschrieben worden ist. In einem Zyklus mit einem offenen Schaltungsausgang sind alle Signale PCNT0-2 auf Niedrigpegel, selbst wenn eines der Signale PfPECNT0-2 auf Hochpegel gesetzt ist.
- Die PCNT0-2-Signale werden von den Signalen PIPECNT0-2 in der Schaltung 650 der Fig. 11 abgeleitet. Wie später beschrieben wird, folgen die Signale PCNT0-2 dann, wenn OUTEN am Ende eines Zyklus auf Hochpegel liegt, jeweils den Signalen PIPECNT0-2 auf Hochpegel beim nächsten Takt. Dies bewirkt die vorher beschriebene Operation für eine Latenzzeit größer als 1. Wenn jedoch OUTEN am Ende eines Zyklus auf Niedrigpegel liegt, bleibt das Signal PCNT0-2 auf Niedrigpegel, wenn sein entsprechendes Signal PIPECNT0-2 für den folgenden Zyklus auf Hochpegel gesetzt wird.
- Am Ende eines Zyklus, in dem PIPECNT0 auf Hochpegel gesetzt wird, liegt OUTEN entweder auf Hochpegel oder auf Niedrigpegel, um jeweils den Ausgang für den folgenden Zyklus freizugeben oder zu sperren. Wenn QUTEN auf Niedrigpegel liegt und PIPECNT0 auf Hochpegel liegt, übersteuert der Transistor 668 den kleinen Invertierer 674 und zieht den Knoten N42 auf Niedrigpegel. Zu diesem Zeitpunkt ist der NMOS-Transistor 672 abgeschaltet und der Invertierer 676 steuert den Knoten N43 auf Hochpegel. Die Invertierer 674 und 676 speichern und halten diesen Zustand, nachdem PIPECNT0 auf Niedrigpegel wechselt. Wenn statt dessen OUTEN auf Hochpegel liegt und PIPECNT0 auf Hochpegel liegt, sind die NMOS-Transistoren 670 und 672 beide eingeschaltet und übersteuern den Invertierer 676 und ziehen den Knoten N43 auf Masse. Der Invertierer 674 steuert den Knoten N42 auf Hochpegel und speichert und hält diesen Zustand, nachdem PIPECNT0 auf Niedrigpegel wechselt. Wenn somit PIPECNT0 beim nächsten Takt auf Niedrigpegel wechselt, kann der Zwischenspeicher, der die Invertierer 674 und 676 umfaßt, nicht mehr den Zustand wechseln, sondern hält statt dessen die Daten, die den Wert von QUTEN unmittelbar vor dem Schalten von PIPECNT0 auf Niedrigpegel darstellen.
- Wenn OUTEN auf Niedrigpegel liegt, während PIPECNT0 auf Niedrigpegel wechselt (um den Ausgang zu sperren, wenn PIPECNT1 gesetzt war), liegt der Knoten N42 auf Niedrigpegel und N43 auf Hochpegel. Mit N42 auf Niedrigpegel ist der NMOS-Transistor 678 abgeschaltet, während mit N43 auf Hochpegel der PMOS-Transistor 680 ebenfalls abgeschaltet ist. Somit besteht keine Verbindung zwischen PIPECNT1 und PCNT1. Gleichzeitig ist mit N43 auf Hochpegel der NMOS-Transistor 688 eingeschaltet, was PCNT1 auf Niedrigpegel hält. Mit OUTEN auf Niedrigpegel am Ende des vorangehenden Zyklus folgt somit PCNT1 nicht PIPECNT1 auf Hochpegel im folgenden Zyklus, so daß keine neuen Daten vom Zweig 1 am Ausgang der Schaltung 200 (Fig. 2) erscheinen. Wenn PIPECNT1 auf Hochpegel wechselt, steuern andere nicht gezeigte Schaltungen OUTOFF der Schaltung 300 (Fig. 6) auf Hochpegel. Dies steuert PULLUP auf Hochpegel und PULLDN' auf Niedrigpegel, um den Ausgang in den offenen Schaltungszustand zu versetzen.
- Wenn andererseits OUTEN am Ende des vorangehenden Zyklus auf Hochpegel liegt (während PIPECNT0 auf Hochpegel lag), liegt der Knoten N42 auf Hochpegel und der Knoten N43 auf Niedrigpegel (Fig. 11). In diesem Fall sind die Transistoren 678 und 680 eingeschaltet und der Transistor 688 ist ausgeschaltet. PCNT1 folgt somit PIPECNT1 auf Hochpegel, und folgt am Ende des nächsten Zyklus PIPECNT1 auf Niedrigpegel (PIPECNT0 ist weiterhin auf Niedrigpegel). Mit PCNT1 auf Hochpegel gesetzt steuern die Daten vom gesetzten Speicherknoten N02 oder N05 der Schaltung 200 (Fig. 2) die Knoten PULLUP und PULLDN beide nach oben oder beide nach unten, um Daten auszugeben. In ähnlicher Weise folgen PCNT0 und 2 entweder PIPECNT0 und 2, oder nicht, wenn sie ausgewählt werden.
- Somit bietet die Schaltung 650 eine effiziente und kompakte Schaltung, um entweder einen Zweig der Schaltung 200 freizugeben, um Ausgangsdaten bereitzustellen, wenn ihr PIPECNT-Signal ausgewählt ist, oder um den Zweig zu sperren, wenn ihr PIPECNT-Signal ausgewählt ist.
- Obwohl das Vorangehende eine vollständige Beschreibung einer bestimmten Ausführungsform der vorliegenden Erfindung ist, können verschiedene Abwandlungen vorgenommen werden. Zum Beispiel kann das System mit einem weiteren Schaltungszweig versehen sein, der die Herstellung eines Ausgangs aus einem Speichersystem mit einer Latenzzeit von 1 bis 4 erlaubt. Ferner kann die hier beschriebene Schaltung vervielfältigt werden, um eine beliebige Anzahl von Latenzzeiten zu unterstützen. Die Pipeline kann in Verbindung mit mehreren synchronen Speicherprodukten verwendet werden. Die Schaltung kann angepaßt werden, um mit aktiv niedrigen oder aktiv hohen Signalen zu arbeiten. Die Schaltung kann ferner an positiv und/oder negativ flankengetriggerte Signale angepaßt werden. Obwohl in mehreren Beispielen spezifische Kanalbreiten angegeben worden sind, sollen diese Parameter lediglich auf eine spezifische Ausführungsform gemäß der vorliegenden Erfindung Bezug nehmen. Fachleute sind nach dem Lesen dieser Offenbarung fähig, die Kanalbreiten und Transistortypen zu ändern, um sie einem bestimmten Bedarf anzupassen.
- Dementsprechend soll die Offenbarung der Erfindung den in den folgenden Ansprüchen angegebenen Umfang der Erfindung erläutern, ihn jedoch nicht einschränken.
Claims (59)
1. Integrierte Schaltung; die einen Datenpfad mit einem Ausgang und
einem Takteingang, der so gekoppelt ist, daß er ein Taktsignal (CLK) empfängt,
umfaßt, wobei sich zweite Daten durch den Datenpfad fortpflanzen, nachdem
erste Daten begonnen haben, sich durch den Datenpfad fortzupflanzen, jedoch
bevor die ersten Daten den Ausgang erreichen, dadurch gekennzeichnet, daß die
Schaltung umfaßt:
ein Register mit mehreren Zweigen (260A-C) zum Speichern von Daten;
eine Lenkschaltung (100) mit einem Eingang, der mit einer Datenleitung
(I/O oder I/O#), die Daten transportiert, gekoppelt ist, wobei die Lenkschaltung
(100) mit dem Register gekoppelt ist und die Daten als Antwort auf ein erstes
Signal (PIPECNTDEL), das durch das Taktsignal (CLK) getriggert wird, sequentiell
in ausgewählte der mehreren Zweige des Registers lenkt; und
eine Zweigauswahlschaltung, die mit dem Register gekoppelt ist, wobei
die Zweigauswahlschaltung Daten, die in ausgewählten Zweigen der mehreren
Zweige gespeichert sind, als Antwort auf ein zweites Signal (PIPECNT), das durch
das Taktsignal getriggert wird, sequentiell mit dem Ausgang koppelt.
2. Schaltung nach Anspruch 1, wobei die Daten in Form eines Impulses
vorliegen.
3. Schaltung nach Anspruch 1 oder 2, wobei jeder der Zweige fernen
einen ersten (260A-C) und einen zweiten (262A-C) Zwischenspeicher enthält,
wobei der erste Zwischenspeicher auf eine logische "1" anspricht und der zweite
Zwischenspeicher auf eine logische "0" anspricht.
4. Schaltung nach einem der Ansprüche 1 bis 3, die ferner einen Zähler
(330 und 440) umfaßt, der mit der Lenkschaltung (100) und mit der
Zweigauswahlschaltung gekoppelt ist, wobei der Zähler (330 und 440) einen
Ausgangszählstand (PIPECNT0-2 und PIPECNTDEL0-2) erzeugt, wobei sich der
Ausgangszählstand als Antwort auf das Taktsignal (CLK) ändert.
5. Schaltung nach Anspruch 4, wobei
ein erster Lenkzählzustand (PIPECNTDEL0-2) vom Zähler (330) durch ein
erstes Ereignis des Taktsignals (CLOCK0) erzeugt wird, wobei der erste
Lenkzählzustand die Lenkschaltung dazu veranlaßt, Daten in einen ausgewählten der
mehreren Zweige des Registers zu lenken, und
ein erster Auswahlzählzustand (PIPECNT) vom Zähler (330) durch ein
nachfolgendes Ereignis des Taktsignals (z. B. CLOCK1, 2 oder 3) erzeugt wird,
wobei der erste Auswahlzählzustand die Zweigauswahlschaltung dazu veranlaßt,
die in dem ausgewählten der mehreren Zweige gespeicherten Daten für die
Ausgabe zu wählen, wobei das nachfolgende Ereignis des Taktzyklus eine bestimmte
Anzahl von Taktzyklen nach dem ersten Ereignis des Taktsignals auftritt.
6. Schaltung nach Anspruch 5, wobei die Anzahl der Taktzyklen eins ist.
7. Schaltung nach Anspruch 5, wobei die Anzahl der Taktzyklen zwei ist.
8. Schaltung nach Anspruch 5, wobei die Anzahl der Taktzyklen in
programmierbarer Weise eingestellt werden kann.
9. Schaltung nach Anspruch 4, wobei
ein erster Zählzustand (z. B. PLPECNTDEL0) vom Zähler (330) durch ein
erstes Ereignis (CLOCK0) des Taktsignals erzeugt wird, wobei der erste
Zählzustand die Lenkschaltung dazu veranlaßt, die ersten Daten in einen ausgewählten
der mehreren Zweige des Registers zu lenken;
ein zweiter Zählzustand (z. B. PIPECNTDEL1) vom Zähler (330) durch ein
zweites Ereignis (z. B. CLOCK2) des Taktsignals erzeugt wird, wobei der zweite
Zählzustand die Lenkschaltung dazu veranlaßt, die zweiten Daten in einen
zweiten ausgewählten der mehreren Zweige des Registers zu Lenken;
ein dritter Zählzustand (z. B. PIPECNT0) vom Zähler (330) von der
Auswahlschaltung verwendet wird, um die in dem ausgewählten Zweig gespeicherten
ersten Daten für die Ausgabe zu wählen; und
ein vierter Zählzustand (z. B. PIPECNT1) vom Zähler (330) von der
Auswahlschaltung dazu verwendet wird, die in dem zweiten ausgewählten Zweig
gespeicherten Daten für die Ausgabe zu wählen.
10. Schaltung nach Anspruch 9, wobei der dritte Zählzustand im selben
Taktzyklus wie der zweite Zählzustand auftritt.
11. Schaltung nach Anspruch 9, wobei der dritte Zählzustand in einem
Taktzyklus nach dem zweiten Zählzustand auftritt.
12. Schaltung nach einem der Ansprüche 1 bis 11, die ferner eine
Speichermatrix mit adressierbaren Datenspeicherplätzen besitzt, wobei die
Speichermatrix mit dem Datenpfad gekoppelt ist.
13. Schaltung nach Anspruch 12, wobei die Speichermatrix einen
Speicher mit wahlfreiem Zugriff umfaßt.
14. Schaltung nach Anspruch 12, wobei die Speichermatrix einen
nichtflüchtigen Speicher umfaßt.
15. Schaltung nach einem der Ansprüche 4 bis 14, wobei der Zähler (330)
ein selbststartender Umlaufzähler mit Takteingang ist.
16. Schaltung nach Anspruch 15, wobei der Zähler (330) als Antwort auf
eine Flanke eines Signals (Clkt2), das an einen Gate-Anschluß eines einzelnen
Transistors (344) angelegt wird, einen Ausgangszählstand ändert.
17. Schaltung nach Anspruch 16, wobei der Gate-Anschluß des einzelnen
Transistors (344) mit dem Takteingang gekoppelt ist.
18. Schaltung nach Anspruch 17, wobei der einzelne Transistor (344) mit
mehreren Knoten (PIPECNT0-2) gekoppelt ist und eine Änderung des
Ausgangszählstandes durch Ziehen eines der mehreren Knoten auf einen Logikpegel ohne
entgegengesetztes Ziehen hervorruft.
19. Schaltung nach Anspruch 1, wobei:
die integrierte Schaltung eine Speicherschaltung ist, die ferner umfaßt:
eine Matrix aus adressierbaren Speicherzellen zum Speichern von Daten;
eine Datenleitung, die mit der Matrix aus Speicherzellen und mit dem
Datenpfad gekoppelt ist; und
einen Zähler (330 und 440), der mehrere Lenkzählstände
(PIPECNTDEL0-2), die das erste Signal (PIPECNTDEL) enthalten, und mehrere
Auswahlstände (PIPECNT0-2), die das zweite Signal (PIPECNT) enthalten, erzeugt, wobei
sich die mehreren Lenkzählzustände und Auswahlzählzustände mit Zyklen des
Taktsignals ändern;
wobei ein Lesezyklus zum Liefern der ersten Daten auf der ersten
Datenleitung durch eine erste Flanke des am Takteingang empfangenen Taktsignals
begonnen wird;
ein erster Lenkzählzustand durch die erste Flanke des Taktsignals
getriggert wird;
die Lenkschaltung die ersten Daten als Antwort auf den ersten
Lenkzählzustand in einen ersten Zweig des Registers lenkt;
ein erster Auswahlzählzustand durch eine zweite Flanke des Taktsignals
getriggert wird, die einige Zyklen nach der ersten Flanke des Taktsignals auftritt;
und
die Zweigauswahlschaltung die ersten Daten als Antwort auf den ersten
Auswahlzählzustand für die Ausgabe wählt.
20. Schaltung nach Anspruch 19, wobei jeder der Zweige ferner einen
ersten und einen zweiten Zwischenspeicher enthält, wobei der erste
Zwischenspeicher auf eine logische "1" anspricht und der zweite Zwischenspeicher auf eine
logische "0" anspricht.
21. Schaltung nach Anspruch 20, wobei die ersten und zweiten
Zwischenspeicher bei Beginn eines Lesezyklus zurückgesetzt werden.
22. Schaltung nach einem der Ansprüche 19 bis 21, die ferner eine
Sperrschaltungsanordnung zum Sperren eines Ausgangs der Schaltung umfaßt.
23. Schaltung nach Anspruch 22, wobei keiner der Zweige für die
Ausgabe gewählt werden kann, wenn der Ausgang der Schaltung gesperrt ist.
24. Schaltung nach einem der Ansprüche 19 bis 23, die ferner eine
Zeitablaufsteuerschaltung umfaßt, die den Zeitablauf der mehreren
Lenkzählzustände in bezug auf den Zeitablauf der Ausgabe eines Datenimpulses auf der
Datenleitung steuert.
25. Schaltung nach Anspruch 24, wobei der erste Lenkzählzustand ein
Impuls mit längerer Dauer als der Datenimpuls auf der Datenleitung ist.
26. Schaltung nach Anspruch 24, die ferner einen Leseverstärker mit
einem Freigabeeingang und einem mit der Datenleitung gekoppelten Ausgang
umfaßt, wobei der Leseverstärker den Datenimpuls auf der Datenleitung erzeugt,
indem er anhand der Zeitablaufsteuerschaltung freigegeben wird.
27. Schaltung nach einem der Ansprüche 24 bis 26, wobei der
Datenimpuls relativ zu der minimalen Zykluszeit der Speicherschaltung ein schmaler
Impuls ist.
28. Schaltung nach einem der Ansprüche 19 bis 27, wobei die
Lenkschaltung ferner umfaßt:
einen Latenzwahleingang zum Wählen zwischen einer Latenz von zwei
und einer Latenz von drei; und
eine Pfadauswahleinrichtung, die als Antwort auf die Latenzwahl einen
Pfad für das Lenksignal auswählt.
29. Schaltung nach Anspruch 28, wobei die Pfadauswahleinrichtung einen
Multiplexer umfaßt.
30. Schaltung nach Anspruch 28, wobei für eine Latenzwahl von zwei die
Anzahl der Zyklen gleich 1 ist, und für eine Latenzwahl von drei die Anzahl der
Zyklen gleich ist.
31. Schaltung nach Anspruch 28, die ferner eine zusätzliche Schaltung
zum Ausgeben von Daten mit einer Latenz von eins umfaßt.
32. Schaltung nach Anspruch 28, wobei der Zähler zwischen drei
Zählzuständen pendelt.
33. Schaltung nach einem der Ansprüche 19 bis 21, wobei die Schaltung
ferner umfaßt:
einen Umlaufzähler mit wenigstens drei Ausgängen, wovon einer während
eines gegebenen Zyklus aktiv ist; und
eine Sperrschaltung, die ein Sperrsignal empfängt und wenigstens drei
Ausgänge besitzt;
wobei die wenigstens drei Ausgänge der Sperrschaltung den wenigstens
drei Ausgängen des Zählers folgen, solange das Sperrsignal nicht aktiv ist.
34. Schaltung nach Anspruch 5, wobei die Lenkschaltung mehrere
Logikschaltungen umfaßt, die den mehreren Zweigen des Registers entsprechen, wobei
jede der mehreren Logikschaltungen umfaßt:
eine erste Logikunterschaltung (204A-C, 208A-C) mit einem ersten
Eingang, der Daten von der Datenleitung empfängt, und einem zweiten Eingang, der
einen Lenkzählzustand vom Zähler empfängt, wobei die erste Logikunterschaltung
entweder eine logische UND- oder eine logische NAND-Funktion an den Daten
und an dem Lenkzählzustand ausführt; und
eine zweite Logikunterschaltung (202A-C, 206A-C) mit einem ersten
Eingang, der Daten-quer empfängt, wobei die Daten-quer ein Komplement der Daten
sind, und einem zweiten Eingang, der den Lenkzählzustand vom Zähler empfängt,
wobei die zweite Logikunterschaltung entweder eine logische UND- oder eine
logische NAND-Funktion an den Daten-quer und dem Lenkzählzustand ausführt.
35. Schaltung nach Anspruch 34, wobei jeder Zweig des Registers
umfaßt:
einen ersten Zwischenspeicher (260), der mit einem Ausgang einer ersten
Logikunterschaltung einer entsprechenden Logikschaltung der Lenkschaltung
gekoppelt ist; und
einen zweiten Zwischenspeicher (262), der mit einem Ausgang einer
zweiten Logikunterschaltung der entsprechenden Logikschaltung der
Lenkschaltung gekoppelt ist.
36. Schaltung nach Anspruch 35, wobei sowohl der erste Zwischenspeicher
als auch der zweite Zwischenspeicher in jedem Zweig des Registers ferner
einen Rücksetztransistor (214 oder 216) umfaßt, wovon ein Eingang mit einem
Rücksetzsignal (RESET0-2) gekoppelt ist.
37. Schaltung nach Anspruch 35 oder 36, wobei das Register erste und
zweite Zweige (260A-B, 262A-B) umfaßt und die Lenkschaltung erste und zweite
Logikschaltungen (202A-B, 206A-B), die mit dem ersten bzw. dem zweiten Zweig
gekoppelt sind, umfaßt, und
wobei die erste Logikschaltung den ersten Lenkzählzustand
(PIPECNTDEL0) als einen Eingang empfängt und die zweite Logikschaltung einen zweiten
Lenkzählzustand (PIPECNTDEL1) als einen Eingang empfängt, wobei der zweite
Lenkzählzustand durch ein zweites Ereignis des Taktsignals nach dem ersten
Ereignis erzeugt wird.
38. Schaltung nach Anspruch 37, wobei das Register ferner einen dritten
Zweig (260C, 262C) umfaßt und die Lenkschaltung ferner eine dritte
Logikschaltung (202C, 206C), die jeweils mit dem dritten Zweig gekoppelt sind, umfaßt, und
wobei die dritte Logikschaltung als einen Eingang einen dritten
Lenkzählzustand (PIPECNTDEL2) vom Zähler empfängt, wobei der dritte Lenkzählzustand
durch ein drittes Ereignis des Taktsignals nach dem zweiten Ereignis erzeugt wird.
39. Schaltung nach Anspruch 37, wobei die Zweigauswahlschaltung erste
und zweite Logikschaltungen umfaßt; die mit dem ersten bzw. dem zweiten Zweig
des Registers gekoppelt sind, wobei jede der ersten und zweiten
Logikschaltungen umfaßt:
eine erste Logikunterschaltung (234A, 226A, 240A, 228A, 236A, 238A),
wovon ein erster Eingang einen Ausgang eines ersten Zwischenspeichers (z. B.
260A) in einem entsprechenden Zweig empfängt und ein zweiter Eingang einen
Auswahlzählzustand (PCNT0-2) vom Zähler empfängt, wobei die erste
Logikunterschaltung entweder eine logische UND- oder eine logische NAND-Funktion am
Ausgang des ersten Zwischenspeichers und dem Auswahlzählzustand ausführt;
und
eine zweite Logikunterschaltung (234B, 226B, 2408, 2288, 236B, 2388),
wovon ein erster Eingang einen Ausgang eines zweiten Zwischenspeichers (z. B.
2608) in dem entsprechenden Zweig empfängt und ein zweiter Eingang den
Auswahlzählzustand (PCNT0-2) von dem Zähler empfängt, wobei die zweite
Logikunterschaltung entweder eine logische UND- oder eine logische NAND-
Funktion am Ausgang des zweiten Zwischenspeichers und dem Auswafitzählzustand
ausführt.
40. Schaltung nach Anspruch 39, wobei
die erste Logikschaltung in der Auswahlschaltung den ersten
Auswahlzählzustand empfängt, der einen Taktzyklus nach dem ersten Ereignis des
Taktsignals auftritt, und
die zweite Logikschaltung in der Auswahlschaltung einen zweiten
Auswahlzählzustand empfängt, der zwei Taktzyklen nach dem ersten Ereignis des
Taktsignals auftritt.
41. Schaltung nach Anspruch 38, wobei die Zweigauswahlschaltung erste,
zweite und dritte Logikschaltungen umfaßt, die mit dem ersten, dem zweiten bzw.
dem dritten Zweig des Registers gekoppelt sind,
wobei jede der ersten, zweiten und dritten Logikschaltungen umfaßt:
eine erste Logikunterschaltung, wovon ein erster Eingang einen Ausgang
eines ersten Zwischenspeichers in einem entsprechenden Zweig empfängt und
ein zweiter Eingang einen Auswahlzählzustand von dem Zähler empfängt, wobei
die erste Logikunterschaltung entweder eine logische UND- oder eine logische
NAND-Funktion am Ausgang des ersten Zwischenspeichers und dem
Auswahlzählzustand ausführt; und
eine zweite Logikunterschaltung, wovon ein erster Eingang einen Ausgang
eines zweiten Zwischenspeichers in dem entsprechenden Zweig empfängt und ein
zweiter Eingang den Auswahlzählzustand vom Zähler empfängt, wobei die zweite
Logikunterschaltung entweder eine logische UND- oder eine logische NAND-
Funktion am Ausgang des zweiten Zwischenspeichers und dem
Auswahlzählzustand ausführt.
42. Schaltung nach Anspruch 41, wobei
die erste Logikschaltung in der Auswahlschaltung den ersten
Auswahlzählzustand empfängt, der zwei Taktzyklen nach dem ersten Ereignis des
Taktsignals auftritt,
die zweite Logikschaltung in der Auswahlschaltung einen zweiten
Auswahlzählzustand empfängt, der drei Taktzyklen nach dem ersten Ereignis des
Taktsignals auftritt, und
die dritte Logikschaltung in der Auswahlschaltung einen dritten
Auswahlzählzustand empfängt, der vier Taktzyklen nach dem ersten Ereignis des
Taktsignals auftritt.
43. Schaltung nach Anspruch 1, die ferner einen Zähler (330 und 440)
umfaßt, der als Antwort auf das Taktsignal Lenkzählzustände (PIPECNTDEL0-2)
und Auswahlzählzustände (PIPECNT0-2) erzeugt, wobei:
das Register erste, zweite und dritte Zweige besitzt;
die Lenkschaltung die Lenkzählzustände vom Zähler empfängt und Daten
als Antwort auf die Lenkzählzustände in einen ausgewählten der ersten, zweiten
und dritten Zweige des Registers lenkt; und
die Zweigauswahlschaltung die Auswahlzählzustände vom Zähler
empfängt und Daten, die in einem ausgewählten der ersten, zweiten und dritten
Zweige des Registers gespeichert sind, als Antwort auf die Auswahlzählzustände an
den Ausgang anlegt.
44. Schaltung nach Anspruch 43, wobei
erste Daten durch eine erstes Ereignis des Taktsignals erzeugt werden,
wobei die ersten Daten als Antwort auf einen ersten Lenkzählzustand durch die
Lenkschaltung in den ersten Zweig des Registers gelenkt werden, wobei der erste
Lenkzählzustand durch das erste Ereignis des Taktsignals getriggert wird, und
die ersten Daten für die Ausgabe durch die Zweigauswahlschaltung als
Antwort auf einen ersten Auswahlzählzustand gewählt werden, wobei der erste
Auswahlzählzustand durch ein zweites Ereignis des Taktsignals erzeugt wird und
das zweite Ereignis des Taktsignals eine Anzahl von Zyklen nach dem ersten
Ereignis des Taktsignals auftritt.
45. Schaltung nach Anspruch 44, wobei der Zähler ferner eine
Programmierungsschaltungsanordnung umfaßt, die an einem Eingang
Programminformationen empfängt, und wobei die Anzahl der Zyklen als Antwort auf die
Programminformationen durch die Programmierschaltungsanordnung in programmierbarer
Weise entweder auf 0, 1 oder 2 gesetzt wird.
46. Verfahren zur Pipelineverarbeitung von Daten in einer Schaltung, die
einen Datenpfad mit einem Ausgang besitzt, wobei das Verfahren die folgenden
Schritte umfaßt:
Beginnen mit der Fortpflanzung erster Daten auf dem Datenpfad;
Beginnen mit der Fortpflanzung zweiter Daten auf dem Datenpfad nach
dem Beginn der Fortpflanzung der ersten Daten und bevor die ersten Daten den
Ausgang erreichen;
Lenken der ersten Daten in ein erstes Speicherelement;
Lenken der zweiten Daten in ein zweites Speicherelement nach dem
Schritt des Lenkens der ersten Daten;
Auswählen der ersten Daten im ersten Speicherelement für die Ausgabe;
und
Auswählen der zweiten Daten in dem zweiten Speicherelement für die
Ausgabe nach dem Schritt des Auswählens der ersten Daten.
47. Verfahren nach Anspruch 46, wobei die Schritte des Beginnens der
Fortpflanzung erster Daten und des Lenkens der ersten Daten durch eine erste
Flanke eines Taktsignals getriggert werden und die Schritte des Beginnens der
Fortpflanzung zweiter Daten und des Lenkens der zweiten Daten durch eine
zweite Flanke des Taktsignals nach der ersten Flanke getriggert werden.
48. Verfahren nach Anspruch 47, wobei der Schritt des Auswählens der
ersten Daten durch eine Flanke des Taktsignals, die eine Anzahl von Zyklen nach
der ersten Flanke des ersten Taktsignals auftritt, getriggert wird, wobei die Anzahl
entweder 0, 1, 2 oder größer ist.
49. Verfahren nach Anspruch 47, das ferner die folgenden Schritte
umfaßt:
Beginnen der Fortpflanzung dritter Daten auf dem Datenpfad nach dem
Beginn Fortpflanzung der zweiten Daten und bevor die zweiten Daten den
Ausgang erreichen;
Lenken der dritten Daten in ein drittes Speicherelement nach dem Schritt
des Lenkens der zweiten Daten; und
Auswählen der dritten Daten in dem dritten Speicherelement für die
Ausgabe nach dem Schritt des Auswählens der zweiten Daten.
50. Verfahren nach Anspruch 49, wobei die Schritte des Beginnens der
Fortpflanzung dritter Daten und des Lenkens der dritten Daten durch eine dritte
Flanke des Taktsignals nach der zweiten Flanke getriggert werden.
51. Verfahren nach Anspruch 50, wobei der Schritt des Auswählens der
ersten Daten durch eine Flanke des zweiten Taktsignals, die eine Anzahl von
Zyklen nach der ersten Flanke des Taktsignals auftritt, getriggert wird, wobei die
Anzahl entweder 0, 1, 2 oder größer ist.
52. Verfahren nach Anspruch 51, wobei der Schritt des Auswählens der
zweiten Daten durch eine Flanke des Taktsignals, die eine Anzahl von Zyklen
nach der ersten Flanke des Taktsignals auftritt, getriggert wird, wobei die Anzahl
entweder 1, 2, 3 oder größer ist.
53. Verfahren nach Anspruch 46, wobei:
die Schaltung eine synchrone Speicherschaltung ist, die ferner einen
Takteingang besitzt, der ein Taktsignal empfängt,
jedes Speicherelement eines von mehreren Zweigen in einem Register ist;
der Schritt des Beginnens der Fortpflanzung erster Daten auf dem
Datenpfad durch Empfang einer ersten Taktflanke am ersten Takteingang getriggert
wird, wobei die erste Taktflanke einen ersten Lesezyklus beginnt, der die ersten
Daten erzeugt;
und der Schritt des Beginnens der Fortpflanzung der zweiten Daten auf
dem Datenpfad durch Empfang einer zweiten Taktflanke am Takteingang
getriggert wird, wobei die zweite Taktflanke einen zweiten Lesezyklus beginnt, der die
zweiten Daten erzeugt.
54. Verfahren nach Anspruch 53, wobei jeder der Zweige ferner einen
ersten und einen zweiten Zwischenspeicher enthält, wobei der erste
Zwischenspeicher auf eine logische "1" anspricht und der zweite Zwischenspeicher auf eine
logische "0" anspricht und wobei die ersten und zweiten Zwischenspeicher eines
besonderen Zweiges zurückgesetzt werden, bevor Daten in den besonderen
Zweig gelenkt werden.
55. Verfahren nach Anspruch 53 oder 54, wobei der Schritt des
Auswählens der ersten Daten für die Ausgabe durch Empfang der zweiten Taktflanke
getriggert wird.
56. Verfahren nach Anspruch 55, das ferner den folgenden Schritt umfaßt:
Sperren der ersten Daten für die Ausgabe bei Empfang einer dritten
Taktflanke.
57. Verfahren nach Anspruch 53 oder 54, das ferner die folgenden
Schritte umfaßt:
Empfangen einer dritten Taktflanke am Takteingang, wobei die dritte
Taktflanke einen dritten Lesezyklus beginnt, der dritte Daten erzeugt;
Ausbreiten der dritten Daten auf dem dritten Datenpfad, bevor die ersten
Daten den Ausgang erreichen; und
Lenken der dritten Daten, die durch den dritten Lesezyklus erzeugt
werden, in einen dritten der mehreren Zweige des Registers;
wobei der Schritt des Auswählens der ersten Daten für die Ausgabe durch
Empfang der dritten Taktflanke getriggert wird.
58. Verfahren nach Anspruch 57, das ferner den folgenden Schritt umfaßt:
Sperren der ersten Daten für die Ausgabe bei Empfang einer vierten
Taktflanke.
59. Verfahren nach Anspruch 55, wobei der Auswählens der
zweiten Daten für die Ausgabe durch Empfang einer dritten Taktflanke des
Taktsignals nach der zweiten Taktflanke getriggert wird.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/386,581 US5713005A (en) | 1995-02-10 | 1995-02-10 | Method and apparatus for pipelining data in an integrated circuit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69614728D1 DE69614728D1 (de) | 2001-10-04 |
| DE69614728T2 true DE69614728T2 (de) | 2002-06-27 |
Family
ID=23526197
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69628351T Active DE69628351T9 (de) | 1995-02-10 | 1996-02-02 | Verfahren zur Leserverstärkersteuerung |
| DE69614728T Expired - Lifetime DE69614728T2 (de) | 1995-02-10 | 1996-02-02 | Verfahren und Anordnung zur "Datenpipelinung" in einer integrierten Schaltung |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69628351T Active DE69628351T9 (de) | 1995-02-10 | 1996-02-02 | Verfahren zur Leserverstärkersteuerung |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US5713005A (de) |
| EP (2) | EP0726576B1 (de) |
| JP (1) | JP3683019B2 (de) |
| KR (1) | KR100369299B1 (de) |
| CN (1) | CN1150462C (de) |
| DE (2) | DE69628351T9 (de) |
| MY (1) | MY113665A (de) |
| TW (1) | TW525086B (de) |
Families Citing this family (94)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5764951A (en) * | 1995-05-12 | 1998-06-09 | Synopsys, Inc. | Methods for automatically pipelining loops |
| JP3351692B2 (ja) * | 1995-09-12 | 2002-12-03 | 株式会社東芝 | シンクロナス半導体メモリ装置 |
| US5939919A (en) * | 1996-09-12 | 1999-08-17 | Hyundai Electronics America Inc | Clock signal distribution method for reducing active power dissipation |
| US6230245B1 (en) | 1997-02-11 | 2001-05-08 | Micron Technology, Inc. | Method and apparatus for generating a variable sequence of memory device command signals |
| US6175894B1 (en) * | 1997-03-05 | 2001-01-16 | Micron Technology, Inc. | Memory device command buffer apparatus and method and memory devices and computer systems using same |
| US5996043A (en) | 1997-06-13 | 1999-11-30 | Micron Technology, Inc. | Two step memory device command buffer apparatus and method and memory devices and computer systems using same |
| US6484244B1 (en) | 1997-06-17 | 2002-11-19 | Micron Technology, Inc. | Method and system for storing and processing multiple memory commands |
| US6202119B1 (en) | 1997-12-19 | 2001-03-13 | Micron Technology, Inc. | Method and system for processing pipelined memory commands |
| CN1154111C (zh) * | 1998-04-01 | 2004-06-16 | 睦塞德技术公司 | 异步流水线半导体存储器 |
| CA2805213A1 (en) | 1998-04-01 | 1999-10-01 | Mosaid Technologies Incorporated | Semiconductor memory asynchronous pipeline |
| US6157567A (en) * | 1998-04-30 | 2000-12-05 | Advanced Micro Devices, Inc. | Unlock bypass program mode for non-volatile memory |
| US6175905B1 (en) | 1998-07-30 | 2001-01-16 | Micron Technology, Inc. | Method and system for bypassing pipelines in a pipelined memory command generator |
| US6178488B1 (en) | 1998-08-27 | 2001-01-23 | Micron Technology, Inc. | Method and apparatus for processing pipelined memory commands |
| KR100304195B1 (ko) * | 1998-09-18 | 2001-11-22 | 윤종용 | 외부클럭신호를가지는동기형반도체메모리장치 |
| US6181638B1 (en) * | 1998-12-07 | 2001-01-30 | Micron Technology, Inc. | Method for receiving data from a synchronous random access memory |
| US6163852A (en) * | 1998-12-07 | 2000-12-19 | Micron Technology, Inc. | Apparatus for receiving data from a synchronous random access memory |
| DE10196011B3 (de) * | 2000-03-30 | 2012-07-26 | Micron Technology, Inc. | Synchrone Speichereinrichtung und Verfahren zum Lesen von Daten von einer synchronen Speichereinrichtung |
| US6615307B1 (en) * | 2000-05-10 | 2003-09-02 | Micron Technology, Inc. | Flash with consistent latency for read operations |
| EP2056301B1 (de) * | 2000-07-07 | 2011-11-30 | Mosaid Technologies Incorporated | Hochgeschwindigkeits-DRAM-Architektur mit einheitlicher Zugriffslatenz |
| KR100406543B1 (ko) * | 2001-12-24 | 2003-11-20 | 주식회사 하이닉스반도체 | 동기식 메모리의 파이프 래치 제어회로 |
| KR100452328B1 (ko) * | 2002-07-31 | 2004-10-12 | 삼성전자주식회사 | 동기식 반도체 메모리 장치의 데이터 출력회로 |
| KR100496817B1 (ko) * | 2002-12-30 | 2005-06-23 | 주식회사 하이닉스반도체 | 데이터 정렬 시간을 최소화할 수 있는 반도체 기억 장치 |
| US7608092B1 (en) * | 2004-02-20 | 2009-10-27 | Biomet Sports Medicince, LLC | Method and apparatus for performing meniscus repair |
| US8109965B2 (en) * | 2004-06-09 | 2012-02-07 | Biomet Sports Medicine, LLP | Method and apparatus for soft tissue fixation |
| US7500983B1 (en) | 2004-06-09 | 2009-03-10 | Biomet Sports Medicine, Llc | Apparatus for soft tissue attachment |
| US7819898B2 (en) * | 2004-06-09 | 2010-10-26 | Biomet Sports Medicine, Llc | Method and apparatus for soft tissue fixation |
| US7695503B1 (en) | 2004-06-09 | 2010-04-13 | Biomet Sports Medicine, Llc | Method and apparatus for soft tissue attachment |
| US8303604B2 (en) | 2004-11-05 | 2012-11-06 | Biomet Sports Medicine, Llc | Soft tissue repair device and method |
| US8088130B2 (en) | 2006-02-03 | 2012-01-03 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| US8118836B2 (en) | 2004-11-05 | 2012-02-21 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| US9017381B2 (en) | 2007-04-10 | 2015-04-28 | Biomet Sports Medicine, Llc | Adjustable knotless loops |
| US9801708B2 (en) | 2004-11-05 | 2017-10-31 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| US20060189993A1 (en) * | 2004-11-09 | 2006-08-24 | Arthrotek, Inc. | Soft tissue conduit device |
| US7749250B2 (en) | 2006-02-03 | 2010-07-06 | Biomet Sports Medicine, Llc | Soft tissue repair assembly and associated method |
| US8298262B2 (en) | 2006-02-03 | 2012-10-30 | Biomet Sports Medicine, Llc | Method for tissue fixation |
| US8137382B2 (en) | 2004-11-05 | 2012-03-20 | Biomet Sports Medicine, Llc | Method and apparatus for coupling anatomical features |
| US8361113B2 (en) * | 2006-02-03 | 2013-01-29 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| US7909851B2 (en) * | 2006-02-03 | 2011-03-22 | Biomet Sports Medicine, Llc | Soft tissue repair device and associated methods |
| US7905904B2 (en) | 2006-02-03 | 2011-03-15 | Biomet Sports Medicine, Llc | Soft tissue repair device and associated methods |
| US7905903B2 (en) * | 2006-02-03 | 2011-03-15 | Biomet Sports Medicine, Llc | Method for tissue fixation |
| US8128658B2 (en) | 2004-11-05 | 2012-03-06 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to bone |
| US7857830B2 (en) * | 2006-02-03 | 2010-12-28 | Biomet Sports Medicine, Llc | Soft tissue repair and conduit device |
| US7658751B2 (en) | 2006-09-29 | 2010-02-09 | Biomet Sports Medicine, Llc | Method for implanting soft tissue |
| US8840645B2 (en) | 2004-11-05 | 2014-09-23 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| US8998949B2 (en) * | 2004-11-09 | 2015-04-07 | Biomet Sports Medicine, Llc | Soft tissue conduit device |
| US9078644B2 (en) | 2006-09-29 | 2015-07-14 | Biomet Sports Medicine, Llc | Fracture fixation device |
| US9271713B2 (en) | 2006-02-03 | 2016-03-01 | Biomet Sports Medicine, Llc | Method and apparatus for tensioning a suture |
| US8562647B2 (en) | 2006-09-29 | 2013-10-22 | Biomet Sports Medicine, Llc | Method and apparatus for securing soft tissue to bone |
| US10517587B2 (en) | 2006-02-03 | 2019-12-31 | Biomet Sports Medicine, Llc | Method and apparatus for forming a self-locking adjustable loop |
| US11311287B2 (en) | 2006-02-03 | 2022-04-26 | Biomet Sports Medicine, Llc | Method for tissue fixation |
| US11259792B2 (en) | 2006-02-03 | 2022-03-01 | Biomet Sports Medicine, Llc | Method and apparatus for coupling anatomical features |
| US9149267B2 (en) | 2006-02-03 | 2015-10-06 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| US8597327B2 (en) | 2006-02-03 | 2013-12-03 | Biomet Manufacturing, Llc | Method and apparatus for sternal closure |
| US8652172B2 (en) | 2006-02-03 | 2014-02-18 | Biomet Sports Medicine, Llc | Flexible anchors for tissue fixation |
| US7959650B2 (en) * | 2006-09-29 | 2011-06-14 | Biomet Sports Medicine, Llc | Adjustable knotless loops |
| US8251998B2 (en) | 2006-08-16 | 2012-08-28 | Biomet Sports Medicine, Llc | Chondral defect repair |
| US9538998B2 (en) | 2006-02-03 | 2017-01-10 | Biomet Sports Medicine, Llc | Method and apparatus for fracture fixation |
| US8968364B2 (en) * | 2006-02-03 | 2015-03-03 | Biomet Sports Medicine, Llc | Method and apparatus for fixation of an ACL graft |
| US9468433B2 (en) | 2006-02-03 | 2016-10-18 | Biomet Sports Medicine, Llc | Method and apparatus for forming a self-locking adjustable loop |
| US8801783B2 (en) | 2006-09-29 | 2014-08-12 | Biomet Sports Medicine, Llc | Prosthetic ligament system for knee joint |
| US8574235B2 (en) | 2006-02-03 | 2013-11-05 | Biomet Sports Medicine, Llc | Method for trochanteric reattachment |
| US8771352B2 (en) | 2011-05-17 | 2014-07-08 | Biomet Sports Medicine, Llc | Method and apparatus for tibial fixation of an ACL graft |
| US8652171B2 (en) | 2006-02-03 | 2014-02-18 | Biomet Sports Medicine, Llc | Method and apparatus for soft tissue fixation |
| US8506597B2 (en) | 2011-10-25 | 2013-08-13 | Biomet Sports Medicine, Llc | Method and apparatus for interosseous membrane reconstruction |
| US8562645B2 (en) | 2006-09-29 | 2013-10-22 | Biomet Sports Medicine, Llc | Method and apparatus for forming a self-locking adjustable loop |
| US7828820B2 (en) * | 2006-03-21 | 2010-11-09 | Biomet Sports Medicine, Llc | Method and apparatuses for securing suture |
| US9918826B2 (en) | 2006-09-29 | 2018-03-20 | Biomet Sports Medicine, Llc | Scaffold for spring ligament repair |
| US11259794B2 (en) | 2006-09-29 | 2022-03-01 | Biomet Sports Medicine, Llc | Method for implanting soft tissue |
| US8500818B2 (en) * | 2006-09-29 | 2013-08-06 | Biomet Manufacturing, Llc | Knee prosthesis assembly with ligament link |
| US8672969B2 (en) | 2006-09-29 | 2014-03-18 | Biomet Sports Medicine, Llc | Fracture fixation device |
| KR100806343B1 (ko) | 2006-10-19 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 |
| US8669779B2 (en) * | 2008-06-27 | 2014-03-11 | The University Of North Carolina At Chapel Hill | Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits |
| US12245759B2 (en) | 2008-08-22 | 2025-03-11 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to bone |
| US12419632B2 (en) | 2008-08-22 | 2025-09-23 | Biomet Sports Medicine, Llc | Method and apparatus for coupling anatomical features |
| US20100305710A1 (en) | 2009-05-28 | 2010-12-02 | Biomet Manufacturing Corp. | Knee Prosthesis |
| US12096928B2 (en) | 2009-05-29 | 2024-09-24 | Biomet Sports Medicine, Llc | Method and apparatus for coupling soft tissue to a bone |
| CN101763285B (zh) * | 2010-01-15 | 2013-03-20 | 西安电子科技大学 | 零开销切换多线程处理器及其线程切换方法 |
| US8266471B2 (en) * | 2010-02-09 | 2012-09-11 | Mosys, Inc. | Memory device including a memory block having a fixed latency data output |
| US12329373B2 (en) | 2011-05-02 | 2025-06-17 | Biomet Sports Medicine, Llc | Method and apparatus for soft tissue fixation |
| US9357991B2 (en) | 2011-11-03 | 2016-06-07 | Biomet Sports Medicine, Llc | Method and apparatus for stitching tendons |
| US9370350B2 (en) | 2011-11-10 | 2016-06-21 | Biomet Sports Medicine, Llc | Apparatus for coupling soft tissue to a bone |
| US9381013B2 (en) | 2011-11-10 | 2016-07-05 | Biomet Sports Medicine, Llc | Method for coupling soft tissue to a bone |
| US9357992B2 (en) | 2011-11-10 | 2016-06-07 | Biomet Sports Medicine, Llc | Method for coupling soft tissue to a bone |
| US9259217B2 (en) | 2012-01-03 | 2016-02-16 | Biomet Manufacturing, Llc | Suture Button |
| US9757119B2 (en) | 2013-03-08 | 2017-09-12 | Biomet Sports Medicine, Llc | Visual aid for identifying suture limbs arthroscopically |
| US9918827B2 (en) | 2013-03-14 | 2018-03-20 | Biomet Sports Medicine, Llc | Scaffold for spring ligament repair |
| US10136886B2 (en) | 2013-12-20 | 2018-11-27 | Biomet Sports Medicine, Llc | Knotless soft tissue devices and techniques |
| US9615822B2 (en) | 2014-05-30 | 2017-04-11 | Biomet Sports Medicine, Llc | Insertion tools and method for soft anchor |
| US9700291B2 (en) | 2014-06-03 | 2017-07-11 | Biomet Sports Medicine, Llc | Capsule retractor |
| WO2015192062A1 (en) | 2014-06-12 | 2015-12-17 | The University Of North Carolina At Chapel Hill | Camera sensor with event token based image capture and reconstruction |
| US10039543B2 (en) | 2014-08-22 | 2018-08-07 | Biomet Sports Medicine, Llc | Non-sliding soft anchor |
| US9955980B2 (en) | 2015-02-24 | 2018-05-01 | Biomet Sports Medicine, Llc | Anatomic soft tissue repair |
| US9974534B2 (en) | 2015-03-31 | 2018-05-22 | Biomet Sports Medicine, Llc | Suture anchor with soft anchor of electrospun fibers |
| CN105425900B (zh) * | 2016-01-15 | 2018-05-08 | 湖南中车时代通信信号有限公司 | 平台中访问实时时钟的方法和装置 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5200926A (en) * | 1987-12-28 | 1993-04-06 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit |
| US4922461A (en) * | 1988-03-30 | 1990-05-01 | Kabushiki Kaisha Toshiba | Static random access memory with address transition detector |
| US5719812A (en) * | 1988-11-16 | 1998-02-17 | Fujitsu Limited | Semiconductor memory including bit line reset circuitry and a pulse generator having output delay time dependent on type of transition in an input signal |
| EP0425734B1 (de) * | 1989-10-30 | 1996-01-03 | Koninklijke Philips Electronics N.V. | Schneller statischer Direktzugriffsspeicher |
| JP3147432B2 (ja) * | 1991-10-09 | 2001-03-19 | 株式会社日立製作所 | パイプライン処理装置 |
| JP3280704B2 (ja) * | 1992-05-29 | 2002-05-13 | 株式会社東芝 | 半導体記憶装置 |
| KR0138975B1 (ko) * | 1992-07-09 | 1998-04-30 | 세끼모또 다다히로 | 반도체 메모리 장치 |
| KR940009733B1 (ko) * | 1992-09-21 | 1994-10-17 | 삼성전자 주식회사 | 디지탈 신호 처리장치 |
| JP2734315B2 (ja) * | 1992-09-24 | 1998-03-30 | 日本電気株式会社 | 半導体メモリ装置 |
| US5519847A (en) * | 1993-06-30 | 1996-05-21 | Intel Corporation | Method of pipelining sequential writes in a flash memory |
| US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
| US5517657A (en) * | 1994-03-30 | 1996-05-14 | Intel Corporation | Segment register file read and write pipeline |
| KR0135688B1 (ko) * | 1994-08-03 | 1998-04-22 | 김주용 | 발광 다이오드의 제조방법 |
-
1995
- 1995-02-10 US US08/386,581 patent/US5713005A/en not_active Expired - Lifetime
-
1996
- 1996-01-31 MY MYPI96000359A patent/MY113665A/en unknown
- 1996-02-02 DE DE69628351T patent/DE69628351T9/de active Active
- 1996-02-02 EP EP96101462A patent/EP0726576B1/de not_active Expired - Lifetime
- 1996-02-02 DE DE69614728T patent/DE69614728T2/de not_active Expired - Lifetime
- 1996-02-02 EP EP00127624A patent/EP1089285B9/de not_active Expired - Lifetime
- 1996-02-03 TW TW085101341A patent/TW525086B/zh not_active IP Right Cessation
- 1996-02-09 CN CNB961012366A patent/CN1150462C/zh not_active Expired - Lifetime
- 1996-02-10 KR KR1019960003430A patent/KR100369299B1/ko not_active Expired - Lifetime
- 1996-02-13 JP JP02510096A patent/JP3683019B2/ja not_active Expired - Lifetime
-
1998
- 1998-04-01 US US09/053,423 patent/US6044023A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE69628351T9 (de) | 2004-09-23 |
| DE69628351T2 (de) | 2004-04-01 |
| DE69628351D1 (de) | 2003-06-26 |
| EP0726576B1 (de) | 2001-08-29 |
| EP0726576A2 (de) | 1996-08-14 |
| CN1141449A (zh) | 1997-01-29 |
| EP1089285B1 (de) | 2003-05-21 |
| MY113665A (en) | 2002-04-30 |
| EP1089285B9 (de) | 2003-12-03 |
| EP1089285A1 (de) | 2001-04-04 |
| KR960032136A (ko) | 1996-09-17 |
| TW525086B (en) | 2003-03-21 |
| KR100369299B1 (ko) | 2003-04-10 |
| CN1150462C (zh) | 2004-05-19 |
| EP0726576A3 (de) | 1997-12-29 |
| US6044023A (en) | 2000-03-28 |
| JPH08249179A (ja) | 1996-09-27 |
| US5713005A (en) | 1998-01-27 |
| JP3683019B2 (ja) | 2005-08-17 |
| DE69614728D1 (de) | 2001-10-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69614728T2 (de) | Verfahren und Anordnung zur "Datenpipelinung" in einer integrierten Schaltung | |
| DE69923769T2 (de) | Asynchrones halbleiterspeicher-fliessband | |
| DE69229118T2 (de) | Generatorarchitektur für Einzeltor RAM mit Hochleistungsfähigkeit | |
| DE69832455T2 (de) | Halbleiterspeicheranordnung | |
| DE10084993B3 (de) | Ausgabeschaltung für einen mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM), ein mit doppelter Datenrate arbeitender dynamischer Speicher mit wahlfreiem Zugriff (DDR DRAM), ein Verfahren zum getakteten Auslesen von Daten aus mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM) | |
| DE69614852T2 (de) | Selbst-aktivierung auf synchronem dynamischen ram speicher | |
| DE69327499T2 (de) | Halbleiterspeicher | |
| DE69129895T2 (de) | Halbleiterspeicher mit Spaltenausgleichung eines Datenwechsels während eines Schreibzykluses | |
| DE19549532B4 (de) | Synchrone Halbleiterspeichervorrichtung mit Selbstvorladefunktion | |
| DE19951677B4 (de) | Halbleiterspeichervorrichtung | |
| DE102004050080B4 (de) | Halbleiterspeichervorrichtung mit Spaltenadresspfad darin zur Energieverbrauchsreduzierung | |
| DE60214992T2 (de) | Mehrbit-prefetch-ausgangsdatenweg | |
| DE69808132T2 (de) | Verfahren und system zu verarbeitung von befehlen in nach dem fliessbandprinzip arbeitenden speicheranlagen | |
| DE69522846T2 (de) | Verbesserte Speicheranordnung und Herstellungsverfahren | |
| DE69829039T2 (de) | Signalverzögerungsvorrichtung zur Verwendung in Halbleiterspeichervorrichtung für verbesserte Operation in Burst-Betriebsart | |
| DE4210857A1 (de) | Halbleiterspeichereinrichtung und verfahren zum uebertragen von daten | |
| DE10307244A1 (de) | Automatische Vorladesteuerungsschaltung und zugehöriges Vorladesteuerungsverfahren | |
| DE112004001676B4 (de) | Direktzugriffsspeicher mit Postambel-Datenübernahmesignal-Rauschunterdrückung | |
| DE69224270T2 (de) | Speicher mit Generator zum Folgen eines Vorladungsimpulses | |
| DE112004001660T5 (de) | Echotakt auf Speichersystem mit Warteinformationen | |
| DE19944727B4 (de) | Integrierte Schaltung und synchrones Halbleiterspeicherbauelement mit einer Takterzeugungsschaltung | |
| DE69619679T2 (de) | Eine integrierte schaltung mit freigabesteuerschaltung | |
| DE19649704B4 (de) | Synchrone Halbleiterspeichereinrichtung mit einer Ausgabesteuerschaltung mit reduzierter belegter Fläche | |
| DE19840237A1 (de) | Taktsynchrone Halbleiterspeichervorrichtung, die die Ausgabe ungültiger Daten verhindern kann | |
| DE60210322T2 (de) | Assoziativspeicherarchitektur mit geringem leistungsverbrauch |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition |