DE69816464T2 - Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen - Google Patents

Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen Download PDF

Info

Publication number
DE69816464T2
DE69816464T2 DE69816464T DE69816464T DE69816464T2 DE 69816464 T2 DE69816464 T2 DE 69816464T2 DE 69816464 T DE69816464 T DE 69816464T DE 69816464 T DE69816464 T DE 69816464T DE 69816464 T2 DE69816464 T2 DE 69816464T2
Authority
DE
Germany
Prior art keywords
column
time
memory
delay
row
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.)
Revoked
Application number
DE69816464T
Other languages
English (en)
Other versions
DE69816464D1 (de
Inventor
A. Frederick WARE
M. Richard BARTH
C. Donald STARK
E. Craig HAMPEL
K. Ely TSERN
M. Abhijit ABHYANKAR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rambus Inc
Original Assignee
Rambus Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22038016&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69816464(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Rambus Inc filed Critical Rambus Inc
Publication of DE69816464D1 publication Critical patent/DE69816464D1/de
Application granted granted Critical
Publication of DE69816464T2 publication Critical patent/DE69816464T2/de
Anticipated expiration legal-status Critical
Revoked legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Description

  • Diese Anmeldung nimmt die Priorität der Provisional patent application mit dem Titel "Device timing compensation", laufende Nummer 60/061,769 und mit dem Anmeldetag 10. Oktober 1997 in Anspruch.
  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Diese Erfindung betrifft im Allgemeinen digitale elektronische Systeme. Insbesondere betrifft diese Erfindung Techniken zum effizienten Übertragen von Informationen in digitalen elektronischen Systemen.
  • Beschreibung des Standes der Technik
  • In einem digitalen elektronisches System aus mehreren Vorrichtungen kann es mehrere Master- und Slavevorrichtungen geben, die durch eine Verbindungsstruktur miteinander verbunden sind, wie es in 1 gezeigt ist. Leitungen zwischen den Komponenten bilden die Verbindung. Eine Übertragung von Informationen über die Verbindung tritt zwischen einem Sender und einem Empfänger auf, wobei die Master- oder Slavekomponente sowohl als Sender als auch als Empfänger agieren kann.
  • Besonders interessant ist der Fall, in dem der Slave eine Speichervorrichtung ist und es einen einzigen Master gibt, wie es in 2 gezeigt ist. Wegen des häufigen Auftretens von Leseoperationen bei herkömmlichem Speicherzugriffsverkehr ist ein wichtiger Fall die Übertragung von Steuerinformationen vom Master zum Slave und die Antwortübertragung von ausgelesenen Daten von dem Slave zum Master. Die Hin- und Rückübertragungsverzögerung bildet die Ausleselatenz.
  • In einem Pipelinesystem wird die Gesamtverzögerung zum Durchführen einer Operation in Taktzyklen aufgeteilt, indem der gesamte Datenweg in separate Pipelinestufen aufgeteilt wird. In einem Pipelinespeichersystem wird eine gesamte Ausleselatenz auch in Taktzyklen aufgeteilt. Mit der Zunahme der Betriebsfrequenz treten Verzögerungsvariationen sowohl von der Verbindung als auch von den Komponen ten auf. Diese Verzögerungsvariationen können logische Konflikte zwischen Vorrichtungen verursachen, die die Betriebspipeline weniger effizient machen. Es ist somit wünschenswert, diese Zeitvariationen zu kompensieren, die abhängig von der Position der Speicherteile auf dem Kanal und von internen Verzögerungen in den Speichervorrichtungen auftreten können.
  • Bevor die Quellen für Zeitvariationen in einem Speichersystem diskutiert werden, werden einige Hintergrundinformationen über die Struktur und den Betrieb von Speicherkernen bereitgestellt.
  • Speicherstruktur und -betrieb
  • In diesem Abschnitt werden Speicheroperationen definiert. 3 zeigt einen Speicher mit einem Speicherkern und einer Speicherschnittstelle. Die Speicherschnittstelle interagiert mit einer Verbindungsstruktur. Die nachfolgende Diskussion baut auf den gewöhnlichen Speicherelementen von 3 auf, um separate strukturelle Elemente zu identifizieren und die Speicheroperationen und Speicherinteraktionen mit der Verbindung zu diskutieren.
  • Üblicher Speicherkern
  • In diesem Unterabschnitt wird die Struktur von Speicherkernen in Zeilen und Spalten illustriert und die einfachen Operationen Lesen, Vorladen, Auslesen und Schreiben werden eingeführt.
  • Ein einfacher Speicherkern besteht üblicherweise aus einem Speicherarray, einem Spaltendekodierer, einem Zeilendekodierer und einem Leseverstärker wie es in 4 gezeigt ist. Die Schnittstelle 100 zu einem Speicherkern besteht im Allgemeinen aus einer Zeilenadresse 101, einer Spalteadresse 103 und einem Datenweg 102. Das in 6 gezeigte Speicherarray ist in Zeilen und Spalten von Speicherzellen aufgeteilt, von denen jede einen Bit Information speichert. Das Zugreifen auf Informationen in dem Speicherarray ist ein Zweistufiges Verfahren. Zuerst wird die Information zwischen dem Speicherarray und den Leseverstärkern übertragen. Als zweites wird die Information von dem Leseverstärker und der Schnittstelle über Verbindung 100 übertragen.
  • Der erste Hauptschritt, das Übertragen von Informationen zwischen dem Speicherarray und den Leseverstärkern, wird "Zeilenzugriff" genannt und wird in die kleineren Schritte Vorladen und Lesen aufgeteilt. Der Vorladeschritt bereitet die Leseverstärker und Bitleitungen auf das Lesen vor, indem sie üblicherweise auf eine Mittelpunktreferenzspannung equilibriert werden. Während der Leseoperation wird die Zeilenadresse dekodiert, eine einzelne Wortleitung wird festgelegt, die Inhalte der Speicherzelle werden auf die Bitleitungen gelegt und der Leseverstärker verstärkt den Wert auf einen Vollschienenzustand (fullrailstate), womit die Bewegung der Information von dem Speicherarray zu den Leseverstärkern abgeschlossen wird. Eine wichtige Beobachtung ist, dass die Leseverstärker auch als lokale Cachespeicher dienen können, die eine "Seite" von Daten speichert, auf die mit Spaltenauslesezugriffen oder Spaltenschreibzugriffen schneller zugegriffen werden kann.
  • Der zweite Hauptschritt, das Übertragen von Informationen zwischen den Leseverstärkern und der Schnittstelle, wird "Spaltenzugriff" genannt und wird typischerweise in einem Schritt durchgeführt. Es sind Variationen möglich, in denen dieser Hauptschritt in zwei kleinere Schritte aufgeteilt ist. Beispielsweise wird eine Pipelinestufe an dem Ausgang des zweiten Dekodierers untergebracht. In diesem Fall muss das Pipelinetiming angepasst werden.
  • Aus diesen zwei Hauptschritten resultieren vier Haupt-Speicheroperationen:
    Vorladen, Lesen, Auslesen und Schreiben (Auslesen und Schreiben sind Spaltenzugriffsoperationen.). Alle Speicherkerne unterstützen diese vier Hauptoperationen oder eine Untergruppe dieser Operationen. Wie in späteren Abschnitten beschreiben ist, können einige Speichertypen zusätzliche Operationen erforderlich machen, die benötigt werden, um einen bestimmten Speicherkerntyp zu unterstützen.
  • Wie es in 5 gezeigt ist, können Speicherkerne auch mehrere Module aufweisen, die gleichzeitige Zeilenoperationen innerhalb eines gegebenen Kerns erlauben. Mehrere Module verbessern die Speicherleistung durch erhöhte Modulnebenläufigkeit und wenige Modulkonflikte. 5 zeigt eine typische Kernstruktur mit mehreren Modulen. Jedes Modul hat seinen eigenen Speicherarray und kann seine eigene Gruppe von Leseverstärkern haben, um unabhängige Zeilenoperationen zu ermöglichen. Den Spaltendekodierer und Datenweg teilen sich normalerweise mehrere Module.
  • 6 zeigt die generische Speicherarraystruktur. Es ist gezeigt, dass die Wortleitung 106 auf eine Zeile der Speicherzellen zugreift, die daraufhin die gespeicherten Daten auf die Bitleitungen (107) überträgt. Während die Figur ein Paar Bitleitungen zeigt, die mit jeder Speicherzelle verbunden sind, können einige Kernanordnungen nur eine Bitleitung pro Zelle in Abhängigkeit von dem Speicherzellentyp und Leseschaltungen erfordern.
  • Der gerade beschriebene, übliche Speicherkern stellt das Basisgerüst für eine Speicherkernstruktur und -operation bereit. Es gibt jedoch eine Vielzahl unterschiedlicher Kerntypen, die sich in Struktur und Funktion leicht unterscheiden. Die nachfolgenden drei Unterabschnitte beschreiben diese Unterschiede für jeden Hauptspeichertyp.
  • Dynamisches RAM (DRAM)
  • Dieser Abschnitt beschreibt die Struktur von einfachen Operationen für den herkömmlichen DRAM-Kern. Die Struktur eines herkömmlichen DRAM-Kerns ist in 7 gezeigt. Wie der herkömmliche Speicherkern in 4 hat auch die herkömmliche DRAM-Struktur eine Zeilen- und Spalten-Speicherarrayorganisation und verwendet Leseverstärker zum Durchführen eines Zeilenzugriffs. Folglich werden die vier Hauptspeicheroperationen Lesen, Vorladen, Auslesen und Schreiben unterstützt. Die Figur zeigt einen zusätzlichen "Spaltenverstärker-Block" der normalerweise zur Beschleunigung des Spaltenzugriffs verwendet wird.
  • Die Kernschnittstelle 100 besteht aus den folgenden Signalen: Zeilenadresse 101, Spaltenadresse 103, Datenbus I/O 106, Zeilensteuersignale 107 (diese Signale werden in diesem Abschnitt detaillierter definiert) und Spaltensteuersignale 108 (diese Signale werden in diesem Abschnitt ausführlicher definiert).
  • 8 zeigt einen herkömmlichen DRAM-Kern mit mehreren Modulen. In dieser Figur teilen sich die Module den Zeilendekodierer, Spaltendekodierer und Spaltenverstärker. Diese Elemente können in anderen Anordnungen für jede Bank repliziert vorgesehen sein, aber die Replikation erfordert normalerweise einen größeren Chipbereich und ist somit teurer. Bei preiswerten Kerndesigns mit mehreren Modulen werden üblicherweise die Zeilendekodierer, Spaltendekodierer und Spaltendatenwege von mehreren Modulen gemeinsam genutzt, um den Chipbereich zu minimieren.
  • Herkömmliche DRAM-Kerne verwenden eine einzelne Transistorzelle (1T). Der einzelne Transistor greift auf einen in einem Kondensator gespeicherten Datenwert zurück, wie es in 9 gezeigt ist. Diese einfache Speicherzelle erzielt eine hohe Speicherdichte und folglich niedrigere Kosten pro Bit, hat aber zwei nachteilige Nebeneffekte. Zunächst hat sie eine relativ langsame Zugriffszeit. Die relativ langsame Zugriffszeit hat ihren Grund darin, dass der passive Speicherkondensator nur eine begrenzte Menge von Ladung speichern kann. Ein Zeilenlesen von herkömmlichen DRAMs dauert länger als bei Speichertypen mit aktiv angesteuerten Zellen, wie beim SRAM. Preiswerte DRAM-Kerne führen im Allgemeinen zu langsamen Zeilenzugriffen und -zykluszeiten. Ein weiteres Problem ist, dass eine Zellenauffrischung benötigt wird. Da der Bitwert in einem passiven Kondensator gespeichert wird, führt der Leckstrom in dem Kondensator und dem Zugriffstransistor zu einer Verschlechterung des gespeicherten Werts. Folglich muss der Zellenwert periodisch „aufgefrischt" werden. Die Auffrischoperation umfasst das Auslesen des Zellenwertes und das Neubeschreiben des Wertes zurück in die Zelle. Diese zwei zusätzlichen Speicheroperationen werden Auffrischlesen (refresh sense) und Auffrischvorladen (refresh precharge) jeweils genannt. In herkömmlichen Kernen waren das Auffrischlesen und das Auffrischvorladen dasselbe wie die regulären Auffrisch- und Vorladeoperationen. Bei mehreren Modulkernen sind jedoch spezielle Auffrischoperationen vorteilhaft, damit vorbestimmte Auffrischschaltungen und eine Logik ein Multimodulauffrischen unterstützen können.
  • 10 zeigt Details eines Bitschnitts (bit slice) eines herkömmlichen Zeilendatenwegs und 11 zeigt das Zeitdiagramm einer Vorlade- und Leseoperation. Zum Durchführen eines Zeilenzugriffs müssen die Bitleitungen und Leseverstärker zuerst vorgeladen werden, üblicherweise auf den Mittelpunkt Vdd/2. Die Zeilenvorladezeit tRP ist in 11 gezeigt.
  • Zum Durchführen einer Leseoperation steuert der Zeilendekodierer eine einzelne Wortleitung an, um Zugriffstransistoren zu einer Zeile von Speicherzellen einzuschalten. Die Ladung auf dem Speicherkondensator wird auf die Bitleitung übertragen, wodurch seine Spannung leicht verändert wird. Der Leseverstärker erfasst diese kleine Spannungsveränderung und steuert die Bitleitungen mit „Volldampf" (full rail = Vdd und Gnd) an. Die Wortleitung muss für einen beachtlichen Abschnitt der Zeitperiode von tRAS,min hochgehalten werden, um die Leseoperation abzuschließen. Vorher erreichen die Bitleitung full rail, ein Spaltenauslese- oder -schreibzugriff kann beginnen. Die Zeit zwischen dem Start der Leseoperation und der frühest mögliche Spaltenzugriff ist tRCD, die Zeilen zu Spalten-Zugriffsverzögerung.
  • Die Gesamtzeit zum Durchführen des Vorladens und Lesens ist tRC, die Zeilenzykluszeit, und ist ein Hauptmaß für die Kernleistungsfähigkeit. Tabelle 1 zeigt typische DRAM-Zeilenzeitwerte.
  • Tabelle 1 Typische DRAM-Zeilenzeit-Parameter
    Figure 00060001
  • Es ist wichtig zu wissen, dass Speichervorrichtungs-Zeitparameter sich bei unterschiedlichen Vorrichtungsdesigns, Herstellungsverfahren, Versorgungsspannungen, Betriebstemperaturen und Prozessgenerationen stark verändern können. Damit die Speicherarchitektur weit verbreitet werden kann, ist es wichtig, dass das Protokoll diese variablen Zeilen- und Spaltenzeiten unterstützen kann.
  • 10 zeigt eine herkömmliche Zellenorganisation, die Zellenverbindungen zwischen Wortleitungen alterniert. Dies führt zu einer dichten Packung von Zellen und erlaubt auch dem Leseverstärker die Spannung auf der nicht verwendeten Bitleitung als Referenz für ein differentielles Bitleitungslesen zu verwenden.
  • Eine separate Vorlade- und Lesesteuerung (PRECH and SENSE control) kann an der Kernschnittstelle verwendet werden. Herkömmliche Kerne verwenden ein einzelnes Steuersignal, das üblicherweise RAS genannt wird und die steigenden und fallenden Flanken werden zur Unterscheidung von Lesen und Vorladen verwendet. Getrennte Vorlade- und Lesesignale (PRECH und SENSE-Signale) zusammen mit einer getrennten Moduladresse zum Lesen und Vorladen unterstützten Kerne mit Pipelinevorlade- und -leseoperationen, die in mehreren Modulen auftreten.
  • Die Zeilenleseenergie umfasst die Energie zum Dekodieren der Zeilenadresse, zum Hochtreiben der Wortleitung und zum Einschalten der Leseverstärker, die die Wortleitungen von Vdd/2 auf Vdd und Gnd verstärken müssen. Somit ist ein signifikanter Teil der Zeilenleseenergie proportional zur Anzahl der Leseverstärker, die eingeschaltet sind (d.h. der Seitengröße).
  • 12 zeigt ein Beispiel eines Zeilenzugriffszeitdiagramms für DRAMs mit mehreren Modulen. Die Periode tss gibt die minimale Verzögerung zwischen Leseoperationen an unterschiedlichen Modulen an. Die Periode tpp gibt die minimale Verzögerung zwischen Vorladeoperationen an unterschiedlichen Modulen an.
  • 13 ist ein detaillierteres Diagramm eines herkömmlichen DRAM-Spaltendatenwegs. Die Ausgabe des Spaltendekodierers, der in einem Register für Pipelinedesigns platziert werden kann, steuert eine einzelne Spaltenauswahlleitung an, die einen Teil der Ausgaben von den Leseverstärkern auswählt. Die ausgewählten Leseverstärker lenken dann die Daten auf die Spaltenleitungen I/O. Zum Beschleunigen der Spaltenzugriffszeit sind die Spaltenleitungen I/O normalerweise differenziell und werden unter Verwendung von differenziellen Spaltenverstärkern gelesen, die kleine Spannungsunterschiede auf den Spaltenleitungen I/O verstärken und den Datenbus I/O zu der Schnittstelle ansteuern. Die Breite des Spaltenbusses I/O legt die Datengranularität jedes Spaltenzugriffs fest, welche auch als CAS-Blockgranularität bekannt ist.
  • Die Daten I/O können sowohl bidirektional sein, wobei Schreib- und Auslesedaten auf dem selben Bus gemultiplext werden, oder unidirektional sein, wobei Schreib- und Auslesedaten unterschiedliche Busse haben. 13 zeigt unidirektionale Daten I/O.
  • Eine Spaltenzugriffsenergie umfasst die Energie zum Dekodieren der Spaltenadresse (COLADDR), zum Ansteuern der Spaltenauswahlleitung, Einschalten der Spaltenverstärker und Ansteuern der Spaltenleitungen I/O. Die Spaltenenergie ist ungefähr proportional zur Spaltenzyklusfrequenz (COLCYC) und der Breite des Spaltendatenwegs I/O.
  • Einige DRAM-Kerne haben auch die Fähigkeit, Schreibarten zu maskieren (WMASK), so dass einige Bits oder Bytes des Datenwegs nicht in Abhängigkeit von dem Maskenmuster geschrieben werden. Das Maskenmuster wird normalerweise der Spaltenverstärkerschreibschaltung zugeführt, welche die Schreibdaten geeignet hemmt.
  • Das Zeitdiagramm für ein Spaltenleseoperation ist in 14 gezeigt. Die Schlüsselzeitparameter des Spaltenlesezugriffs sind:
    • – tPC, Spaltenzykluszeit: die minimale Zykluszeit eines Spaltenzugriffs. Dieser Parameter bestimmt, wie schnell Daten zu und von dem Speicherkern getaktet werden können (cycled). Die CAS-Blockgranularität geteilt durch tPC ist gleich der Kerndatenbandbreite.
    • – tCLS, COLLAT Setup bis COLCYC: die minimale Setupzeit zum „Latchen" der Spaltenadresse auf die ansteigende Flanke von COLCYC, wenn ein Datenzugriff von den Leseverstärkern anfängt.
    • – tDAC, Spaltenauslese-Zugriffsverzögerung: die Verzögerung zwischen der ansteigenden Flanke von COLCYC und dem Zeitpunkt, zu dem Daten Lesen bzw. READDATA an der Schnittstelle gültig ist.
    • – tCAS: die minimale Zeit, die COLCYC hoch bleibt. Dieser Parameter legt die maximale Zeit zum Übertragen von Daten von den Leseverstärkern zu den Spaltenverstärkern fest und bestimmt, wann ein Spaltenvorladen beginnen kann.
    • – tCP, Spaltenvorladung: die minimale Zeit, in der COLCYC tief bleibt. Dieser Parameter bestimmt die maximale Zeit zum Vorladen der Spaltenleitungen I/O.
    • – tCPS, COLCYC niedriges Setup zum Zeilenvorladen: die minimale Setupzeit, in der COLCYC niedrig bleib, bevor das Zeilenvorladen (PRECH) beginnt. Dieser Parameter ist wichtig, da tCAS + tCPS bestimmt, wann eine Zeilenvorladeoperation relativ zu dem Start einer Spaltenoperation beginnen kann.
    • – tDOH, Datenausgangshaltezeit: tDOH ist die minimale Haltezeit von Daten Lesen nach der nächsten ansteigenden Flanke von COLCYC. TPC – tDAC + tDOH bestimmt das minimal gültige Fenster von Daten Lesen an der Kernschnittstelle.
    • – tASC, Spaltenadressensetup: die minimale Spaltenadresssetupzeit vor einer ansteigenden Flanke von COLLAT.
    • – tCAH, Spaltenadresshaltezeit: die minimale Spaltenadresshaltezeit nach einer ansteigenden Flanke von COLLAT. tASC + tCAH bestimmt das minimal gültige Fenster der Spaltenadresse, das beachtet werden muss, um eine Spaltenoperation zu dem Kern durchzuführen.
    • – tCLL, COLLAT tief: die minimale Zeit, die COLLAT niedrig bleibt.
    • – tCLH, COLLAT hoch: die minimale Zeit, die COLLAT hoch bleibt.
  • Ein Zeitdiagramm für eine Spaltenschreiboperation ist in 15 gezeigt. Viele Zeitparameter einschließlich tPC, tCAS, tCP, tCLS; tCPS, tCLL, tCLH, tASC und tCAH sind diesselben wie diejenigen zum Spaltenlesen. Zusätzliche Schlüsselzeitparameter des Spaltenlesezugriffs sind
    • – tDS, Daten Schreiben bzw. WRITEDATA setup: die minimale Schreibdaten-Setupzeit vor der ansteigenden Flanke von COLCYC.
    • – tDH,Daten Schreiben Halten: die minimale Schreibdaten-Haltezeit nach der abfallenden Flanke von COLCYC.
  • tDS + tCAS + tDH bestimmt das minimal gültige Fenster von Daten Schreiben, das beachtet werden muss, um eine Schreiboperation zu dem Kern durchzuführen.
    • – tWES, WMASK setup: die minimale Setupzeit für eine Schreibmaske vor der ansteigenden Flanke von COLCYC.
    • – tWEH, WMASK Halten: die minimale Haltezeit für eine Schreibmaske nach der fallenden Flanke von COLCYC. tWES + tCAS + tWEH bestimmt das minimal gültige Fenster von WMASK, das beachtet werden muss, um eine Schreibmaskenoperation zu dem Kern durchzuführen.
  • Tabelle 2 zeigt typische DRAM-Spaltenzeitwerte.
  • Tabelle 2 Typische DRAM-Spaltenzeitwerte
    Figure 00100001
  • Es ist wichtig zu beachten, dass sich DRAM-Zeitparameter stark voneinander unterscheiden können auf Grund unterschiedlicher Herstellungsverfahren, Versorgungsspannung, Betriebstemperatur und Prozessgenerationen. Damit die Speicherarchitektur allgemein verwendbar ist, ist es wichtig, dass das DRAM-Protokoll diese variablen Spalten- und Zeilenzeiten unterstützen kann.
  • Typische Spaltenzykluszeiten und Zugriffszeiten hängen stark von dem Typ der Leseverstärkerschaltung ab, da der Leseverstärker die Daten auf die Spaltenleitungen I/O treibt. Erhöhte Geschwindigkeiten können erzielt werden, indem mehrere Transistoren in der Leseverstärkerschaltung verwendet werden, um die Ansteuerfähigkeit zu erhöhen, aber damit wird der Chipbereich stark vergrößert und die Kosten werden erhöht, da die Leseverstärkerschaltung stark repliziert wird. Der Wunsch, den Rohchipbereich für die Massenware DRAMs zu minimieren, verhindert die weitere Reduktion von Spaltenzugriffsgeschwindigkeiten.
  • Statisches RAM (SRAM)
  • Das SRAM weist eine ähnliche Kernstruktur und funktionelle Blöcke wie das DRAM auf. Wie beim DRAM wird ein Zugriff in einer ähnlichen Zweischrittprozedur durchgeführt. Zuerst wird in der Leseoperation die Information zwischen dem Speicherarray und den Leseverstärkern übertragen. Als zweites wird in der Spaltenzugriffoperation die Information zwischen den Leseverstärkern und der Schnittstelle überfragen. Auch die Bitleitungen müssen ähnlich wie beim DRAM vorgeladen werden, bevor das Lesen stattfindet, obwohl ein typischer Vorladewert Vdd beträgt und nicht Vdd/2.
  • Der Hauptunterschied liegt in der Speicherzelle. In einem SRAM werden Daten statisch gespeichert, vorzugsweise unter Verwendung einer Schaltung aus mehreren Transistoren. Eine typische SRAM-Zelle ist in 16 gezeigt. Das SRAM von 16 verwendet kreuzgekoppelte CMOS-Invertierer zum Speichern eines einzelnen Datenbits. Eine Wortleitung schaltet Zugriffstransistoren ein, die die Zellenschaltung mit unterschiedlichen Bitleitungen verbinden. Anders als bei der DRAM-Zelle treibt die SRAM-Zellenschaltung den gespeicherten Wert aktiv auf die Bitleitung, wodurch eine schnellere Zugriffszeit erreicht wird. Die statische Natur der SRAM-Zelle eliminiert die Notwendigkeit des Zellenauffrischens. Die statische Zelle verwendet jedoch auch mehr Transistoren und bedarf eines viel größeren Bereichs als eine DRAM-Zelle. Die vier einfachen Operationen eines SRAM sind Lesen, Vorladen, Auslesen und Schreiben.
  • Nur-Lese-Speicher
  • Nur-Lese-Speicher-Kerne speichern Informationen entsprechend einer elektrischen Verbindung bei jedem Zellenort, der Zeilen mit Spalten verbindet. Typischerweise bildet ein einzelner Transistor die elektrische Verbindung an jedem Zellenort. Ein einfaches ROM-Array (Nur-Lese-Speicher-Array) ist in 17 gezeigt.
  • Es gibt eine Vielfalt von ROM-Zellentypen einschließlich löschbarer programmierbarer ROMS (EPROM), elektrisch löschbarer programmierbarer ROMs (EEPROM) flash-ROM und maskenprogrammierbares ROM. Die Unterschiede liegen in dem an dem Zellenort verwendeten Transistortyp. Alle ROM-Typen haben jedoch die gemeinsame 2D-Speicherarrayorganisation, die eine Zeilen- und Spaltendekodierung der Adresse bei jedem Datenzugriff erfordert.
  • Anders als bei SRAMs oder DRAMs haben nicht alle ROMs Leseverstärkerschaltungen. Leseverstärker werden nur in einigen ROMs verwendet, die schnelle Zugriffszeiten benötigen. Für diese ROMs sind die einfachen Operationen Lesen, Vorladen und Auslesen.
  • Für langsamere ROMs, die Leseverstärker nicht verwenden, werden die Datenwerte direkt von der Zelle zu den Ausgangsverstärkern gelenkt, die die Schnittstelle ansteuern. Für diese ROMs ist die einzige einfache Operation das Auslesen.
  • Zusammenfassung von Speicheroperationen
  • Tabelle 3 fasst die primitiven Operationen für jeden Speichertyp zusammen.
  • Tabelle 3
    Figure 00120001
  • Speicheroperationsabfolge
  • Auf Grundlage der in dem vorstehenden Abschnitt definierten Operationen beschreibt dieser Abschnitt die erlaubten Abfolgen von Operationen für unterschiedliche Speichertypen.
  • Operationsabfolge für Speicherkerne mit Leseverstärkercachespeichern
  • Die Anordnung der Operationen kann nicht willkürlich sein. Bei Speicherkernen, die das Lesen zum Beschleunigen des Zeilenzugriffs verwenden wie herkömmliche DRAMs und SRAMs, muss sich ein Modul in einem Lesezustand befinden, um Aus lese- oder Schreiboperationen durchzuführen. Ferner muss das Modul vorgeladen sein, um eine Leseoperation durchzuführen. Folglich müssen diese Kerne dem in 18 gezeigten Muster in Bezug auf jeden Modulzustand folgen, der entweder gelesen („offen") oder vorgeladen („geschlossen") sein kann.
  • Obwohl alle durch 18 implizierten Operationenabfolgen erlaubt sind, haben sie nicht alle dieselbe Nützlichkeit. Die den Speicher verwendende Anwendung zeigt ein charakteristisches Zugriffsmuster (auch bekannt als Referenzmuster), welches letztendlich bestimmt, welche Operationenabfolgen am nützlichsten sind. Diese Operationenabfolgen können dann durch ein Implementierungs- oder Protokolldesign zum Maximieren der Leistung und Minimieren der Energie und des Bereichs optimiert werden.
  • Eine Anwendung wird im allgemeinen Versuchen, einen Leseverstärkerspeicherkern auf eine gecachte und ungecachte Art und Weise zu betreiben, was von der erwarteten Referenzlokalität von einem Anwendungszugriff zu dem nächsten abhängt. Kombinationen dieser Herangehensweisen sind möglich, aber ein Unterstützen frei wählbarer Kombinationen kann ein teurer Plan sein, der zu einer verringerten Leistung oder einem größeren Ressourcenverbrauch sowohl innerhalb des DRAMs als auch außerhalb in der Verbindung führt.
  • Das Betreiben des Speichers auf eine ungecachte Weise bedeutet, dass der Modulzustand zwischen Anwendungszugriffen geschlossen ist. Anders gesagt ist die letzte an dem Modul durchgeführte Speicheroperation ein Vorladen. Bei einer derartigen Betriebsweise umfasst jeder Anwendungszugriff typischerweise die Abfolge: Lesen, eine Folge von Ausleseoperationen und/oder Schreiboperationen, Vorladen. Das ungecachte Verwenden nimmt eine niedrige Referenzlokalität an, d.h. ein nachfolgender Speicherzugriff wird vorrausichtlich nicht in derselben Zeile lokalisiert sein.
  • Das Betreiben des Speichers auf eine gecachte Weise bedeutet, dass der Modulzustand zwischen Anwendungszugriffen offen ist. Anders gesagt ist die letzte an dem Modul durchgeführte Speicheroperation Lesen, Auslesen oder Schreiben. Die gecachte Verwendung nimmt eine hohe Referenzlokalität an , d.h. ein nachfolgender Speicherzugriff wird vorrausichtlich in derselben Zeile erfolgen. Im Allgemeinen wird das Lesen nicht die letzte durchgeführte Speicheroperation sein, da dies impliziert, dass keine nützliche Arbeit für den letzten Anwendungszugriff durchgeführt worden ist. Es gibt jedoch Vorablesezugriffsschemata (prefetching schemes), bei denen der letzte Anwendungszugriff ein Lesen ohne entsprechendes Auslesen oder Schreiben durchführt.
  • Wenn der Modulzustand offen gelassen worden ist, können die nachfolgenden Operationen Auslesen, Schreiben oder Vorladen sein. Wenn es eine Schreib- oder Ausleseoperation ist, nennen wird dies eine hit-Operation, da die Zeile, die in dem Modul gecacht gelassen worden ist, die richtige Zeile für die nachfolgende Operation gewesen sein muss. Wenn es eine Vorladeoperation ist, wurde die richtige Zeile nicht gecacht in dem Modul gelassen, so dass der Controller bzw. die Steuerung einer Vorlade- und Leseabfolge anwenden muss, um die korrekte Zeile in das Modul zu bewegen. Wir nennen diese Art von Zugriff eine Fehloperation.
  • Wenn das DRAM auf eine gecachte Weise betrieben wird, umfasst jeder Anwendungszugriff normalerweise die Abfolge „eine Reihe von Ausleseoperationen und/oder Schreiboperationen" (hit) oder die Abfolge „Vorladen, Lesen, eine Reihe von Schreiboperationen und/oder Ausleseoperationen" (fehl).
  • Da die Vorlade- und Leseoperationen Zeit benötigen und Energie verbrauchen, hängt die optimale Strategie zum Betreiben des DRAMs von den Referenzeigenschaften der Anwendung ab. Die vorliegende Erfindung unterstützt beide Arten von Operationen und gemischte Arten von Operationen.
  • Weitere Variationen
  • 18 zeigt die Operationsabfolge eines generischen Speicherkerns mit Leseverstärkercaches. Änderungen dieses Diagramms für unterschiedliche Speicherkerne sind möglich und werden in diesem Abschnitt beschrieben.
  • 19 zeigt eine Operationsabfolge für einen DRAM, welcher derselbe wie der in 18 gezeigte ist, bis auf die zusätzlichen Auffrischlese- und Auffrischvorladeoperationen.
  • 20 zeigt eine Operationsabfolge einer herkömmlichen Klasse von SRAMs, deren Leseverstärker gerade ausreichende Daten für einen Auslese- oder Schreibzugriff halten. Die Überleitung 202 ist zwar möglich aber nicht nützlich, da sie keine nützliche Arbeit für den letzten Anwendungszugriff durchführt.
  • Schreiboperationen können auftreten, nachdem entweder vorgeladen oder gelesen wurde, da die Leseverstärker in SRAMs nur für Ausleseoperationen verwendet werden. 21 zeigt eine Operationsabfolge für Nur-Auslese-Speicher mit Leseverstärkern. Typischerweise halten Leseverstärker nur genügend Daten für einen Auslesezugriff. Die Überleitung 202 ist zwar möglich, aber nicht nützlich, da sie keine nützliche Arbeit für den letzten Anwendungszugriff durchführt.
  • Quellen von Zeitvariationen
  • Es gibt mehrere Quellen von Zeitvariationen in einem Speichersystem. Eine Quelle ist die Verbindung, auch Kanal genannt. Mit einer ausreichend hohen Taktfrequenz und einem langem Kanal wird die Signalausbreitungsverzögerung der Leitung größer als die Bitzeit. (die Periode der Bitrate wird hier als die Zeit zum Übertragen eines Bits definiert; in den nachfolgenden Beispielen wird angenommen, dass ein Bit bei jeder Taktflanke übertragen wird, so dass die Bittrate zweimal die Taktfrequenz ist). Folglich variiert die Verbindungsverzögerung in Abhängigkeit von einer physikalischen Position auf dem Kanal, wie es in 22 gezeigt ist. Die Taktflanken variieren mit der Zeit in Abhängigkeit von der Beobachtungsposition. Bei dieser speziellen Takttopologie hat die Verbindung fünfzehn Übertragungstakte und in entgegengesetzer Richtung gehende Empfangstakte und 23 zeigt, dass der Unterschied zwischen Übertragungs- und Empfangstakten an einer gegebenen Position und zu einer vorgegebenen Zeit um mehr als einen Taktzyklus variiert. Die Verbindungsverzögerung für eine gegebene Komponente ändert sich nicht, sobald ihre Position fixiert ist.
  • Eine weitere Quelle von Zeitvariationen stammt von der Speichervorrichtung selbst. 3 zeigt eine Darstellung einer Speichervorrichtung mit einer Schnittstelle und einem Speicherkern. Interne Verzögerungen in dem Kern können von Vorrichtung zu Vorrichtung aufgrund von Fertigungsvariationen, Schaltungsdesignunterschieden sowie Variationen in Spannung und Temperatur beeinflussenden Betriebsbedingungen variieren.
  • Ein Speicherkern hat vier Hauptoperationen: Vorladen, Lesen, Auslesen und Schreiben. Variationen können in allen Komponenten der Kernzeit auftreten, die Zeit von Zeilenoperationen (Lesen und Vorladen), Spaltenoperationen (Auslesen und Schreiben) und Interaktionen zwischen Zeilen und Spaltenoperationen umfassen.
  • Eine Zeilenzeit ist durch die Zeitparameter in Tabelle 1 charakterisiert und dem Zeitdiagramm in 11 (Zeilenzeit) illustriert. Die Zeilenvorladezeit tRP ist die Zeit zum Vorladen der Leseverstärker und Bitleitungen innerhalb eines Speichermoduls in dem Kern. Ein Modul muss vorgeladen sein, bevor eine Leseoperation auftreten kann. Die Minimalzeit zwischen dem Start einer Leseoperation und dem Start einer Vorladeoperation ist tRAS,min. Die minimale Zeit zwischen Leseoperationen in dem selben Speichemodul ist die Zeilenzykluszeit tRC.
  • Tabelle 2 zeigt die grundlegenden Spaltenzeitparameter, die in den Auslese- und Schreibzeitdiagramm in 14 und 15 illustriert sind. tCAC ist die Verzögerung zwischen dem Zwischenspeichern der Spaltenadresse und der Zufuhr von Auslesedaten zu dem Kernausgang. tCAC hat zwei Komponenten: tCLS und tDAC. tCLS ist die Zeit zwischen der ansteigenden Flanke von COLLAT (wenn die Spaltenadresse zwischengespeichert wird) und der ansteigenden Flanke COLCYC (wenn der Datenzugriff von den Leseverstärkern beginnt). tCAC ist die Zeit zwischen der ansteigenden Flanke von COLCYC und der Zeit, wenn Auslesedaten zu dem Kernausgang zugeführt werden. tPC ist die Spaltenzykluszeit, d. h. die minimale Zeit zwischen Spaltenoperation.
  • Die Interaktionen zwischen Zeilen- und Spaltenoperationen werden durch die Zeitparameter tRCD und tCPS charakterisiert und in 11, 14 und 15 dargestellt. tRCD ist die Zeilen- und Spaltenverzögerung und stellt die Zeit zwischen dem Start einer Leseoperation und einer Spaltenoperation (ansteigende Flanke von COLCYC) dar. tCPS ist die Spaltenvorlade-/Zeilenvorladezeit und stellt die Zeit zwischen dem Beginn des Spaltenvorladens (abfallende Flanke von COLCYC) und dem Beginn der Zeilenvorladeoperation dar.
  • Alle diese Kernzeiten können bezüglich Herstellungsverfahren, Prozessgenerationen, Schaltungsdesigns, Versorgungsspannungsfluktuationen und Betriebstemperaturen variieren. Diese Kernzeitvariationen kombiniert mit Verbindungsverzögerungsvariationen bilden kumulative Systemzeitvariationen von Vorrichtung zu Vorrichtung.
  • Motivation für eine Zeitvariationssteuerung
  • In einem Pipelinespeichersystem ist es wünschenswert die Zeitvariationen von Vorrichtung zu Vorrichtung zu korrigieren oder zu steuern, um die Effizienz in der Pipeline zu optimieren, so dass die Datenbandbreite insbesondere bei Ausleseoperatio nen maximiert wird. Ziel ist, eine vollgepackte Datenverbindung bereit zu stellen, wenn Daten von einem Sender an einen Empfänger übertragen werden, wie es in 24 gezeigt ist. Wie vorstehend beschrieben ist, kann entweder der Master oder der Slave als Sender oder Empfänger fungieren; 24 zeigt einen gepackten Kanal für beide Fälle.
  • Ein weiterer Wunsch ist es, die Latenz zu minimieren. Beispielsweise bei einer Vorrichtung mit einer gegebenen tRCD ist es erwünschenswert, eine ausreichend feinkörnige Zeitsteuerung zwischen den Zeilen- und Spaltenbefehlen bereit zu stellen, so dass die Zufuhr der Lese- und Spaltenkernsteuersignale einen OFFSET hat, der der tRCD gut entspricht. Jede zusätzliche Verzögerung zwischen den zwei Befehlen würde zu einer größeren Zugriffslatenz führen.
  • Ein weiterer Wunsch ist es die Komplexität zu minimieren. Zeitanpassungen können entweder bei dem Sender oder dem Empfänger durchgeführt werden. Da es hocherwünscht ist, die Kosten gering zu halten, sollten alle Zeit regulierenden Mechanismen insbesondere die Speichervorrichtungen eine Minimale Komplexität haben, um den Rohchipbereich und die Kosten so klein wie möglich zu halten.
  • Stand der Technik
  • Herkömmliche Speichersysteme verwenden eine zweidimensionale Vorrichtungstopologie, in der die Datensignale und Steuer/Adresssignale orthogonal zu einander sind, wie es in 25 gezeigt ist. Wegen der unterschiedlichen Spurlängen, kapazitiven Ladungen und nicht abgeglichenen Signalimpedanzen unterscheiden sich die Ausbreitungsverzögerung für Daten und Steuer/Adresssignale erheblich von einander. Ferner variieren Vorrichtungszeiten auch zwischen unterschiedlichen Bestandteilen. Um dies zu berücksichtigen, nehmen Speicherkontrollen bzw. Speichersteuerungen normalerweise die schlimmst mögliche Verbindungs- und Vorrichtungszeiten an, so dass alle Zeitvariationen durch eine feste konstante gehandhabt werden, wobei der Controller bestimmt, wie schnell Bestandteile sein müssen und alle an das System angeschlossene Bestandteil müssen diese minimalen Zeiten erfüllen. Unglücklicherweise ist es manchmal schwierig zu wissen, was der ungünstigste Fall sein wird. Ferner wird bei dieser Vorgehensweise der Speichercontroller immer mit der Geschwindigkeit des denkbar langsamsten Bestandteils und der denkbar langsamsten Verbindung betrieben, statt die tatsächliche Geschwindigkeit der Vorrich tungen oder Verbindungen in einem gegebenen System zu berücksichtigen. Diese Systeme initialisieren ohne Bootzeitprozedur, die die tatsächliche Vorrichtungsleistung der installierten Bestandteile überprüft.
  • In vielen existierenden Synchronspeichersystemen wird die Verbindungsverzögerung auf einen einzelnen Taktzyklus begrenzt, so dass keine Verbindungsverzögerungskompensation benötigt wird. In einigen existierenden Speichervorrichtungen werden Variationen von Zeilenzeiten, insbesondere tRAS, min, tRP und tRCD „intern terminiert", d. h., Zeilenzeitverzögerungen werden mit internen Zählern und programmierbaren Registern gehandhabt, die Zykluszählungen zum Abgleichen von Kernzeiten speichern. Einige Zykluszählungen wie tCPS werden als feste Designkonstante behandelt.
  • In einigen existierenden Speichervorrichtungen werden Variationen der Spaltenauslese- und -schreibverzögerung mittels eines einzelnen Verzögerungswertes gehandhabt, der durch Ändern des Wertes in einem Register programmierbar ist. Die Verzögerung und der Wertebereich des Registers werden nur so ausgelegt, dass Variationen der Vorrichtungszeiten und nicht Verbindungszeiten behandelt werden können. Eine einzelne Verzögerungszeit wird zum Abdecken mehrerer Spaltenausleselatenzkomponenten wie tCLS und tDAC verwendet. In einer Implementierung bestimmt beispielsweise ein Register die Anzahl von Taktzyklen zwischen der Spaltensteuerung und den Spaltenauslesedaten, wie es in 26 gezeigt ist.
  • Diese beiden Techniken haben ihre Nachteile und Vorteile. Die allumfassende Verzögerung stellt der Anwendung ein einfaches Steuermodel bereit, welches sich nicht mit internen Speichervorrichtungsimplementierungsdetails verändert. Die Speichervorrichtung muss jedoch selbst dekodieren, wie die programmierte Verzögerung verwendet werden sollte. Dies kann ein sehr schwieriges Problem sein, da die Verzögerung in irgendeiner Vorrichtung zum Zeitpunkt des Entwurfs nicht bekannt ist. Eine weitere Komplikation ist, dass die Periode des Taktes beim Betrieb nicht bekannt ist, selbst bei einer finalen Testzeit, wenn die Vorrichtungsverzögerungen gemessen werden können. Einfache Verfahren zum Lösen dieses Problems sind nicht naheliegend. Verfahren, die eine Division einer internen Vorrichtungsverzögerung durch eine Taktperiode umfassen, werden nicht als einfach angesehen.
  • Bei einigen existierenden Speichervorrichtungen ist eine feine Zeitsteuerung aufgrund der Überladung der Verbindungssteuerressourcen begrenzt. 27 zeigt die Verbindungsstruktur einer derartigen Vorrichtung, in der alle Zeilen- und Spaltenbefehle über denselben Befehlsbus ausgegeben werden. Der einzelne Adressbus wird also von den Zeilen- und Spaltenoperationen geteilt. Die Zeilenzeit (tRP und tRAS,min) und Zeilen/Spalten-Zeit Variationen (tRCD, tCPS) werden durch Anpassung der Positionierung von Steuerinformationen auf einer einzelnen Steuerbusressource gehandhabt. Auf Grund von Konflikten begrenzt die Überladung sowohl von Zeilen- als auch von Spaltenbefehlen auf einer einzelnen Ressource oft die Fähigkeit zum Durchführen einer feinen Zeitsteuerung, die die Zeilen- und Spaltensteuerung zum Abgleichen tatsächlicher Vorrichtungszeiten optimal platziert, wie es in 28 gezeigt ist. Weil Lese-, Vorlade-, Auslese- und Schreibbefehle auf denselben Befehlsbus ausgegeben werden, wird die Ressource schnell überlastet, insb. wenn Befehle an zu viele Speichermodule gleichzeitig ausgegeben werden. In dieser Figur muss beispielsweise die Trennung zwischen dem Vorladen und Lesen von Modul B wegen des Schreibbefehls an Modul A zwei Zyklen betragen, obwohl die Vorrichtung eine Trennung von einem Zyklus zugelassen hätte.
  • Zusammengefasst haben existierende Speichervorrichtungen mehrere Unzulänglichkeiten, die eine optimale Zeitkompensation in einem Hochgeschwindigkeitspipelinesystem limitieren. Erstens sind existierende Vorrichtungen nicht zum Kompensieren von Multizyklusverbindungsverzögerungsvariationen ausgelegt. Zweitens haben existierende Vorrichtungen eine einzelne gemeinsam genutzte Verbindungssteuerung und/oder Adresssteuerung, die die Fähigkeit zum Steuern von Zeilenzeit und Zeilen/Spalten-Zeitvariationen begrenzt, wenn eine Steuerinformation packetiert ist (mehrere Zyklen besetzt) und diese Parameter sind nicht „intern terminiert". Drittens werden Zeitvariationen einer Spaltenzugriffslatenz typischerweise durch eine einzelne Zahl gesteuert und nicht in die fundamentalen Verzögerungskomponenten aufgeteilt, die die Spaltenzugriffslatenz in dem Kern ausmachen. Viertens wird die Spaltenzugriffs-/Zeilenvorladeverzögerung (tCPS) als fixierte Konstante in der Vorrichtung behandelt und muss durch Anpassen der Zeit von externen Steuerinformationen kompensiert werden. Schließlich müssen Variationen in der Spaltenzykluszeit durch Anpassen der Zeit von externen Steuerinformationen kompensiert werden.
  • WO-A-97/23042 offenbart eine Speichervorrichtung mit mehreren einstellbaren Verzögerungen, die mit der Zeilenoperation in Verbindung stehen. 4 dieses Doku ments zeigt eine Präzisionsverzögerungsschaltung in einem integrierten Schaltungschip. Der Chip umfasst eine transistorschaltende Schaltung in Verbindung mit einer Steuerschaltung und einer Kompensationsschaltung. Die transistorschaltende Schaltung empfängt ein Eingangssignal und im Anschluss daran, werden die Transistoren mit einer nicht vorhersagbaren Geschwindigkeit ein- und ausgeschaltet, um ein Ausgangssignal mit einer Verzögerung zu erzeugen, die eine große Toleranz hat. Die Steuerschaltung schätzt die unvorhersagbare Geschwindigkeit, mit der die Transistoren schalten, ab und erzeugt Steuersignale (SL, MED, FA), die die abgeschätzte Geschwindigkeit identifizieren. Die Kompensationsschaltung empfängt die Steuersignale von der Steuerschaltung und koppelt daraufhin selektiv Kompensationskomponenten mit der transistorschaltenden Schaltung, so dass die Kombination der Transistoren und der selektiv gekoppelten Komponenten das Ausgangssignal mit einer präzisen Verzögerung erzeugen.
  • Zusammenfassung der Erfindung
  • Es ist Aufgabe der vorliegenden Erfindung, die vorstehend identifizierten Probleme bei herkömmlichen Vorrichtungen zu überwinden.
  • Um diese Aufgabe zu lösen, umfasst eine Speichervorrichtung gemäß der vorliegenden Erfindung einen Speicherkern; eine Vielzahl von Verbindungen, die an eine Zwischenverbindungsstruktur zum Aufnehmen von Spaltenbefehlen und Zeilenbefehlen gekoppelt ist; und
    eine Schnittstellenschaltung, die an die Vielzahl von Verbindungen gekoppelt ist, um die Spaltenbefehle und die Zeilenbefehle zu empfangen, und an den Speicherkern gekoppelt ist, um Zeilen- und Spaltenoperationen an dem Speicherkern gemäß den Zeilenbefehlen und den Spaltenbefehlen durchzuführen;
    wobei die Schnittstellenschaltung eine Vielzahl von programmierbaren Verzögerungskomponenten umfasst, die den jeweiligen spezifischen Anteilen von internen Verzögerungen der Schnittstellenschaltung entsprechen; wobei, wenn die Zeilenbefehle und Spaltenbefehle in vorbestimmten Zeitabständen empfangen werden, die vorbestimmten Zeitabstände in Verbindung mit Verzögerungen, die mit den programmierbaren Verzögerungskomponenten in Verbindung stehen, die Zeit zwischen den Zeilen- und Spaltenoperationen an dem Speicherkern abgleichen.
  • Kurzbeschreibung der Figuren
  • Zum besseren Verständnis der Erfindung sollte die nachfolgende Beschreibung in Zusammenhang mit den beigefügten Figuren betrachtet werden.
  • 1 zeigt ein herkömmliches Speichersystem mit mehreren Mastern und mehreren Slaves.
  • 2 zeigt ein herkömmliches Speichersystem mit einem einzelnen Master und mehreren Slaves.
  • 3 ist ein Blockschaltbild einer herkömmlichen Speicherstruktur.
  • 4 ist ein Blockschaltbild eines herkömmlichen Speicherkerns mit einem einzelnen Speichermodul.
  • 5 ist ein Blockschaltbild eines herkömmlichen Speicherkerns mit mehreren Speichermodulen.
  • 6 ist eine verallgemeinertes Schaltbild eines herkömmlichen Speicherarrays.
  • 7 ist ein Blockschaltbild eines herkömmlichen DRAM-Speicherkerns mit einem einzelnen Modul.
  • 8 ist ein Blockschaltbild eines herkömmlichen DRAM-Speicherkerns mit mehrern Modulen.
  • 9 ist ein Schaltbild einer herkömmlichen DRAM-Speicherzelle.
  • 10 ist ein Schaltbild einer herkömmlichen DRAM-Datenwegzeile.
  • 11 ist ein Zeitdiagramm, welches eine herkömmliche Datenzugriffszeit auf ein einzelnes Speichermodul zeigt.
  • 12 ist ein Zeitdiagramm, dass eine herkömmliche Zeilenzugriffszeit auf unterschiedliche Speichermodule zeigt.
  • 13 zeigt einen herkömmlichen DRAM-Spaltendatenweg.
  • 14 zeigt ein Zeitdiagramm, das einen herkömmliche Spaltenauslesezugriffszeit zeigt.
  • 15 zeigt ein Zeitdiagramm einer herkömmlichen Spaltenauslesezugriffszeit.
  • 16 ist ein Schaltbild einer herkömmlichen SRAM-Speicherzelle.
  • 17 zeigt ein herkömmliches ROM-Array.
  • 18 zeigt eine herkömmliche Operationsabfolge für Speicherkerne mit Zeilenlesen.
  • 19 zeigt eine herkömmliche Operationsabfolge für DRAMs mit Auffrischoperationen.
  • 20 zeigt eine herkömmliche Operationsabfolge für SRAMs mit schmalen Seitengrößen.
  • 21 zeigt eine herkömmliche Operationsabfolge für ROMs mit Leseverstärkern.
  • 22 zeigt mehrere Zykluszeiten in einem herkömmlichen Speichersystem.
  • 23 zeigt mehrere Zykluszeiten für Slave-Vorrichtungen in einem herkömmlichen Speichersystem.
  • 24 zeigt eine vollgepackte Datenverbindung.
  • 25 zeigt eine herkömmliche Speichersystemtopologie.
  • 26 zeigt ein Latenzzeitdiagramm für ein programmierbares Spaltenzugriffssignal (CAS) gemäß dem Stand der Technik.
  • 27 zeigt eine herkömmliche Speichervorrichtung mit überlasteten Verbindungssteuerressourcen.
  • 28 zeigt ein Zeitdiagramm, das eine herkömmliche Überlastung einer Verbindungsressource demonstriert.
  • 29 zeigt eine Speichervorrichtung mit einem Verzögerungselement in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung.
  • 30 zeigt ein Zeitdiagramm eines gepackten Datenkanals mit Verbindungsverzögerungsvariationen gemäß einem Ausführungsbeispiel der Erfindung.
  • 31 zeigt einen Spaltenauslesedatenweg gemäß einem Ausführungsbeispiel der Erfindung.
  • 32 zeigt eine Spaltenauslesezeit gemäß einem Ausführungsbeispiel der Erfindung.
  • 33 zeigt einen Verzögerungsblock innerhalb einer Spaltenlogik zum Verzögern des Beginns von Spaltenoperationen in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung.
  • 34 zeigt die Operation des Verzögerns des Auslesen durch Verzögern des Beginns von Spaltenoperationen in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung.
  • 35 zeigt eine Frontendeinpegelung in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung.
  • 36 zeigt eine Rückend-Einpegelung gemäß einem Ausführungsbeispiel der Erfindung.
  • 37 zeigt Verzögerungsschaltungen zum Verzögern von Daten auf einem Ausgangsdatenweg gemäß einem Ausführungsbeispiel der Erfindung.
  • 38 zeigt die Operation des Verzögerns des Auslesens durch Verzögern von Daten auf einem Ausgangsdatenweg gemäß einem Ausführungsbeispiel der Erfindung.
  • 39 zeigt eine Spaltenauslesezeit gemäß einem Ausführungsbeispiel der Erfindung.
  • 40 zeigt Verarbeitungsschritte, die einem Initialisierungsverfahren der Erfindung zuzuordnen sind.
  • 41 zeigt eine Speichervorrichtung mit einem aufgespalteten Steuerbus gemäß einem Ausführungsbeispiel der Erfindung.
  • 42 zeigt Zeitoffsets von Zeilen- und Spaltenbefehlen gemäß einem Ausführungsbeispiel der Erfindung.
  • 43 zeigt vereinigte Steuerbusse mit separater Spaltensteuerung gemäß einem Ausführungsbeispiel der Erfindung.
  • 44 zeigt eine Spaltensteuerlogik mit ausgewählten Verzögerungen in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung.
  • 45 zeigt ein verschiedenartiges Verzögerungssignal in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung.
  • 46 zeigt Verarbeitungsschritte, die einem Initialisierungsverfahren für vorrichtungsinduzierte Kompensationsmechanismen gemäß einem Ausführungsbeispiel der Erfindung zuzuordnen sind.
  • Dieselben Bezugszeichen betreffen entsprechende Bestandteile in allen Figuren.
  • Ausführliche Beschreibung der bevorzugten Ausführungsbeispiele
  • Zeitkompensation für eine Verbindungsverzögerungsvariation
  • Wie in dem Hintergrundabschnitt beschrieben worden ist, hat der Kanal eine Flugzeit, die mehrere Zyklen lang dauert, wenn der Kanal lang genug ist, um eine ausreichende Kapazität aufzuweisen. In einem derartigen System ist es entscheidend, dass die Sender von Vorrichtung zu Vorrichtung ohne eine Zwischenflugzeitverzögerung schalten können. Wenn dies nicht der Fall ist, dann wird jedes Mal eine andere Vorrichtung adressiert und es wird einen nicht akzeptablen Verlust an Bandbreite geben.
  • Unter der Annahme, dass die Signalisierungstechnologie ein Schalten von Treiber zu Treiber ohne Verzögerung unterstützt, könnten Verzögerungselemente zu dem Datenweg innerhalb der Speicherkomponenten hinzugefügt werden, um die logische Schicht zum Zuführen von Auslesedaten zu dem Kanal auf eine Weise zu erhalten, die logische Konflikte zwischen Vorrichtungen eliminiert oder um den Kanal „einzupegeln". Dies unterscheidet sich von dem Fall, wo Verzögerungselemente nicht zum Handhaben von Verbindungsverzögerungsvariationen verwendet wurden.
  • 29 zeigt Vorrichtungen mit Verzögerungselementen, die mit einer Multizyklusverbindung verbunden sind. Die Grundidee ist, diese Verzögerungsregister dazu zu verwenden, eine geeignet große Verzögerung in jeder Vorrichtung in Abhängigkeit von einer Position auf dem Kanal hinzuzufügen, so dass der Master eine gleichförmige minimale Latenz für alle Vorrichtung sieht. Diese Verzögerungsregister werden zum Kompensieren einer Verbindungsverzögerung und nicht für Vorrichtungsvariationen verwendet.
  • Das Zeitdiagramm von 30 zeigt, wie die Verzögerungsregister Verbindungszeitvariationen berücksichtigen und wie sie dafür sorgen, dass die Datenverbindung voll gepackt sein kann. Die Figur zeigt vier Vorrichtungen auf dem Kanal, jede in einer anderen Taktdomäne platziert, d.h. die Signalausbreitungsverzögerung von dem Master gleicht 0, 1, 2 und 3 Zyklen jeweils für Vorrichtungen a, b, c und d. Die Verzögerungsregister in Vorrichtungen a, b, c und d sind dazu programmiert, jeweils 3, 2, 1 und 0 Zyklen zu betragen. Die Zeitdiagramme in der Figur zeigen, wann die Steuerpakete von dem Master übertragen werden und wann die Spaltenoperation für jede Vorrichtung beginnt (COLCYC-Puls). Weil die Ausgabe von Vorrichtung a um zusätzliche drei Zyklen verzögert ist, führt das unmittelbar aufeinanderfolgende Auslesen von Vorrichtung d bis a zu einem aufeinanderfolgenden Datenpaket, wenn es bei dem Master empfangen wird. Wie das Diagramm zeigt, führen die unterschiedlichen Ausbreitungszeiten entlang des Kanals zu einem vollgepackten Datenstrom bei dem Master, obwohl jede Vorrichtung mit ihrer Übertragung von Auslesedaten in unregelmäßigen Intervallen beginnt.
  • Der Verzögerungselementmechanismus kann auf vielfältige Weise implementiert werden. Ein typischer Spaltenauslesedatenweg ist in 31 gezeigt. Nachdem ein Spaltensteuerpaket über die Verbindung empfangen worden ist, initialisiert die Spaltenlogik die Spaltenausleseoperation in dem Kern. Die Kernsteuersignale für Spaltenoperationen umfassen Modul- und Spaltenadressen, ein Signal zum Zwischenspeichern der Adressen (COLLAT), ein Signal zum Starten der Spaltenoperation (COLCYC, was für Spaltenzyklus steht) und das Signal zum Spezifizieren von Auslese- oder Schreiboperationen (r/w). Die Spaltenausleseoperation ist in eine Vielzahl von Schritten unterteilt. Nach einer gewissen Verzögerung erscheinen die Daten an dem Datenauslese-Ausgang des Kerns. Diese Daten werden dann in ein Speicherelement (beispielsweise ein Auffangregister) mit einer separaten Ladesteuerung LoadRD geladen, wobei das Speicherelement zwischen dem Kern und dem Ausgangsdatenweg platziert ist. Die Daten werden dann unter Verwendung eines separaten Ladesignals (LoadPipe) separat in den Datenausgabeweg geladen und verlassen die Schnittstelle. Ein vereinfachtes Zeitdiagramm für die Ausleseoperation ist in 32 gezeigt.
  • Die ausgelesenen Daten können verzögert werden, indem eine Verzögerung irgendwo in den Datenauslese-Weg platziert wird. Ein Weg die ausgelesenen Daten zu verzögern, besteht darin, den Beginn der Spaltenoperation zu verzögern, indem die Spaltensteuersignale zu dem Kern verzögert werden. Dies nennt man Frontend-Einpegelung (front-end leveling). Die andere Vorgehensweise besteht darin, die ausgelesenen Daten bei dem Kernausgang zu verzögern, nachdem die Daten den Kern verlassen. Dies nennt man Rückend-Einpegelung (back-end leveling).
  • Um eine Frontend-Einpegelungimplementierung darzustellen, zeigt 33 den hinzugefügten Verzögerungsblock in dem Spaltenlogikblock, der die Ausgabe des COLCYC-Befehls verzögert. Der Verzögerungsblock kann programmierbar sein, damit variable Verzögerungen möglich sind. 34 zeigt, dass die Daten auch durch Verzögern von COLCYC verzögert werden können.
  • Das Problem mit dem Verzögern des Starts der Spaltenausleseoperation besteht darin, dass damit Wechselwirkungen mit Zeilenvorladeoperationen auftreten, die eine Steuerkomplexität erhöhen können und die Leistungsfähigkeit verschlechtern. 35 zeigt den Betrieb von zwei Vorrichtungen, die Frontend-Einpegelung verwenden. Die eine Vorrichtung ist mit einer Einpegelungsverzögerung von drei Zyklen und einer Verbindungsverzögerung von Null Zyklen dargestellt, die geschlossene Vorrichtung. Die untere Vorrichtung ist mit einer hinzugefügten Verzögerung von null Zyklen und einer Verbindungsverzögerung von drei Zyklen gezeigt, die „Fern"-Vorrichtung
    Es ist erstrebenswert für das Speichersystem, mit denselben Steuermustern und Intervallen für jede Vorrichtung in dem Speichersystem zu operieren. Dies reduziert die Komplexität des Masters, welcher andernfalls die Spezifika jeder Vorrichtung beim Durchführen von Speicheroperationen nachsehen müsste. Durch Aufrechterhalten einer beständigen Wiederhohlsequenz für die unterschiedlichen halten einer beständigen Wiederhohlsequenz für die unterschiedlichen Stufen des gepipelineten Zugriffs auf die Speichervorrichtungen könnte die Bandbreite auch erhöht werden. Die Steuerung bzw. der Controller kann die Zeit jeder Vorrichtung auch verfolgen, aber dies erhöht die Controllerkomplexität stark und die variablen Zeiten tRAS,min machen es schwer, eine effiziente Pipeline auszubilden.
  • 35 zeigt, dass das späte Auslesen von der geschlossenen" Vorrichtung die früheste Zeit definiert, zu der ein Vorladen durchgeführt werden kann, um die Bedingung von tCPS,min einzuhalten. Das Auslesen ist positioniert, um zu zeigen, dass bei der „Fern"-Vorrichtung das Vorladen drei Zyklen früher hätte durchgeführt werden können und beide Bedingungen für tCPS,min und tRAS,min hätten eingehalten werden können.
  • Die effektiv tRAS,min ist drei Zyklen länger als die tatsächliche tRAS,min jeder Vorrichtung. Das erhöht die Besetzungszeit eines Moduls für jegliche Zeile, was die Latenz zum Zugreifen auf eine unterschiedliche Zeile in demselben Modul erhöhen kann und die Leistung reduzieren könnte. Das verzögerte Vorladen kann auch verhindern, dass ein weiteres Modul zu der optimalen Zeit vorgeladen wird.
  • Das bevorzugte Verfahren zum Verzögern von ausgelesenen Daten ist, die Daten zu verzögern, nachdem sie von dem Kern angekommen sind. Auf diese Weise bleibt die Zeit der Kernausleseoperationen fixiert und Vorladewechselwirkungen werden eliminiert. 36 zeigt, dass die in 35 gezeigten Probleme, beim Rückend-Einpegeln nicht auftreten, weil die COLCYC-Positionen für die zwei Vorrichtungen identisch sind.
  • Der in 31 gezeigt Spalten-Datenausleseweg zeigt separate Ladesteuerpunkte bei dem Zwischenspeicher und dem Ausgangsdatenweg (LoadRD und LoadPipe). Die Schnittstelle stellt zwei Plätze zum Einfügen einer Ausleseverzögerung bereit und 37 zeigt programmierbare Verzögerungselemente, die für beide Steuersignale verwendet werden. Beide dieser Verzögerungselemente können zum Kompensieren von Verbindungszeitvariationen verwendet werden. 38 zeigt das Verfahren, Ausleseoperationen zu verzögern, indem Daten zu einem Datenausgangsweg verzögert werden. 39 zeigt eine Spaltenauslesezeitvorgabe unter Verwendung von LoadRD- Signalen und LoadPipe-Signalen.
  • Die Verzögerung von LoadRd erlaubt nur einen endlichen Spielraum für eine hinzugefügte Verzögerung, da das ausgegebene gültige Fenster der Auslesedaten von dem Kern limitiert ist (gültiges Auslesefenster = tPC – tDAC + tDOH, wie es in 14 gezeigt ist) und das Fenster muss die Setup- und Halte-Erfordernisse des Zwischenspeichers erfüllen. Jenseits dieses endlichen Spielraums wäre zusätzliches Puffern zum Erhöhen der ausgelesenen gültigen Fenstergröße erforderlich. Dies würde Fläche hinzufügen und kritischere Wegprobleme angesichts des Wunsches nach einer minimalen Ausleselatenz aufwerten.
  • Zwei Steuerpunkte zu haben, ist besonders hilfreich, da die Größe einer programmierbaren Verzögerung für jedes Ladesignal auf Grund von Hardware- und Zeitbeschränkung üblicherweise beschränkt ist. Die zwei Steuerpunkte erhöhen den gesamten Bereich einer Ausleseverzögerung und erlauben längere Multizykluskanäle mit mehr Taktdomänen. Ferner kann wie nachstehend beschrieben ist die Verzögerung von LoadRD dazu benutzt werden, eine programmierbare Variation von tDAC zu ermöglichen. In diesem Fall kann jede verbleibende, nicht für tDAC verwendete Verzögerung zum Rückend-Einpegeln verwendet werden.
  • Es gibt mehrere Wege, um diese Verzögerungselemente zu steuern. Zum Beispiel:
    • – Register Einrichten, wenn das Speichersubsystem initialisiert wird. Auf diese Weise wird jede Referenz eine von der worst case-Speicherkomponente bestimmte Latenz haben, die sowohl Positionen auf dem Kanal als auch interne Vorrichtungsverzögerungen berücksichtigt. Das in 40 gezeigte Initialisierungsverfahren entnimmt die Verzögerungen charakterisierende Informationen und Positionen von tatsächlich installierten Komponenten und programmiert die Verzögerungsregister in den Vorrichtungen auf geeignete Weise.
    • – Verzögerung mit anderen Steuerinformationen gesendet. In diesem Fall kann der Controller bzw. die Steuerung die Positionierung der Auslesedaten dynamisch steuern. Damit kann der Controller sowohl die Latenz als auch die Bandbreite abhängig davon optimieren, welche Vorrichtung den vorherigen Datenblock übertragen hat und welche Vorrichtung den nächsten Datenblock überträgt.
  • Ein Ausführungsbeispiel verwendet eine statische Steuerung innerhalb des DRAM. Diese Wahl konserviert eine Steuerbandbreite, die eine knappe Ressource ist, und minimiert kritische Wege innerhalb der DRAM-Schnittstelle.
  • Zeitkompensation für eine Vorrichtungsverzögerungsvariation
  • Jede Speichervorrichtung hat Verzögerungsvariationen auf Grund von Prozessvariationen, Schaltungsdesign, Versorgungsspannung und Betriebstemperatur. Diese Variationen beeinflussen die Zeilen- und Spaltenoperationszeiten sowie die Zeit von Wechselwirkung zwischen Zeilen- und Spaltenoperationen.
  • Die vorliegende Erfindung umfasst die nachfolgenden Mechanismen zum Kompensieren der vorrichtungsinduzierten Zeitvariationen:
    • – Die Verwendung von Zeitoffsets zwischen Steuerbefehlen, die über aufgeteilte Steuerverbindungsressourcen gesendet werden, um eine feinere Zeitsteuerung über interne Vorrichtungsoperationen bereitzustellen.
    • – Die Verwendung von mehrfach programmierbaren Verzögerungsmechanismen innerhalb der Vorrichtung, die mit internen Vorrichtungsverzögerungskomponenten übereinstimmen, um eine feinkörnige Zeitsteuerung zu ermöglichen.
  • Zeitoffsets zwischen aufgeteilter Steuerung (Slit Control)
  • Die vorliegende Erfindung umfasst die Verwendung von Zeitoffsets zwischen Steuerbefehlen, die über aufgeteilte Steuerverbindungsressourcen gesendet werden, um eine feinere Steuerung von internen Vorrichtungsoperationen bereitzustellen. Die primären Speichervorrichtungsoperationen sind Vorladen, Lesen, Spalten auslesen und Spalten schreiben. In einem Ausführungsbeispiel hat die Vorrichtung eine in 41 gezeigt Verbindungsstruktur, bei der die Steuerleitungen und internen Steuerdaten in separate Vorlade-, Lese- und Spaltensteuerbusse aufgeteilt sind. Das Zeitdiagramm in 42 zeigt, wie Zeitoffsets zum Steuern von Zeilenzeiten und Zeilen/Spalten-Zeiten für dieses Ausführungsbeispiel verwendet werden können. Hier kann die Steuerung bzw. der Controller die Zeitoffsets zwischen Lese-, Vorlade- und Spaltenbefehlen mit Taktzyklusgranularität anpassen, um die Vorrichtungszeit für eine Lese-/Spaltenverzögerung tRCD, Lese-Norladeverzögerung tRAS,min und Vorlade-/Leseverzögerung tRP abzugleichen. Die Figur zeigt die Zeitoffsets für tRCD von 30 ns und 20 ns, tRAS,min von 50 ns und 42,5 ns und tRP von 20 ns und 25 ns. Da die Verbindungsressourcen für Lesen und Spalte aufgeteilt sind und unabhängig sind, wird eine feine Zeitsteuerung diese internen Vorrichtungsoperationen erzielt.
  • Ein weiteres Ausführungsbeispiel kann Verbindungsressourcen mit niedrigeren Vorrichtungs- und Systemkosten verbinden. Diese Kompromisse reduzieren im Allgemeinen die Fähigkeit zur feinen Zeitsteuerung unter Verwendung von Offsets zugunsten von niedrigeren Kosten oder einer höheren Latenz (auf Grund von Informationspacketisierung). Ein Beispiel dafür ist das Kombinieren von Vorladen und Lesen in einer einzelnen Verbindungsressource, so dass es nur Lese/Vorlade-Busse und Spaltensteuerbusse gibt, wie es in 43 gezeigt ist. In diesem Fall kann die Zeitoffsettechnik nicht zum Steuern von Lese-/Vorladezeitwechselwirkungen verwendet werden, aber sie können immer noch zum Steuern von Lese-/Spalten-Zeiten (tRCD) und Spalten/Vorladen-Zeiten (tCPS) verwendet werden. Ein weiteres Beispiel dafür ist das Kombinieren von Vorladen und Lesen in einer einzelnen Verbindungsressource und auch das Kombinieren von Spalten und Vorladen in einer anderen Verbindungsressource, so dass das Vorladen von beiden Ressourcen gesteuert werden kann.
  • Programmierbarer Verzögerungsmechanismus für vorrichtungsinduzierte Zeitvariation
  • Die vorliegende Erfindung verwendet auch vielfach programmierbare Verzögerungsmechanismen innerhalb der Vorrichtung, die mit internen Vorrichtungsverzögerungskomponenten zum Ermöglichen einer feinkörnigen Zeitsteuerung in Übereinstimmung gebracht werden können. Ein Beispiel dafür ist die Steuerung einer Spaltenausleselatenz. Die Spaltenausleselatenz in dem Speicherkern tCAC umfasst zwei von unterschiedlichen Bestandteilen des Spaltendatenwegs stammende Komponenten: tCLS und tDAC, wie es in 14 gezeigt ist. tCLS ist die Verzögerung zwischen der ansteigenden Flanke von COLLAT, wenn die Spaltenadresse in dem Kern zwischengespeichert wird, und der ansteigenden Flanke von COLCYC, wenn der Spaltenzugriff beginnt und von den Leseverstärkern in dem Kern auf Daten zugegriffen wird. Diese zwei Verzögerungen können von Vorrichtung zu Vorrichtung in Abhängigkeit von Prozessvariationen, Schaltungsdesign, Versorgungsspannung und Betriebstemperaturen variieren.
  • Herkömmliche Vorrichtungen haben Verzögerungselemente zum Kompensieren einer Verzögerungsvariation in einer Spaltenausleselatenz verwendet, aber sie haben nur einen einzelnen Verzögerungswert zum Abdecken mehrerer Spaltenausleselatenzkomponenten verwendet. Die vorliegende Erfindung unterscheidet sich von dem Stand der Technik dadurch, dass individuelle Verzögerungskomponenten verwendet werden, die spezifischen Abschnitten der internen Verzögerungen der Vorrichtung entsprechen.
  • Jede dieser Techniken hat ihre Nachteile und Vorteile. Die allumfassende Verzögerung stellt ein sauberes Steuermodell für die Anwendung bereit, die sich nicht mit internen Speichervorrichtungsimplementierungsdetails verändert. Dies erfordert jedoch von der Speichervorrichtung, sich selbst zu dekodieren, wie die einzelne programmierte Verzögerung in die separaten Verzögerungen des Spaltendatenwegs aufgeteilt werden sollten und wie sie in die korrekte Anzahl von Taktzyklen konvertiert werden sollte. Dies kann ein schwieriges Problem darstellen, da die Verzögerung irgendeiner Vorrichtung zur Zeit des Entwurfs nicht bekannt ist. Eine weitere Komplikation ist, dass die Periode des Taktes beim Betrieb unbekannt ist, selbst zur finalen Testzeit, wenn die Vorrichtungsverzögerungen gemessen werden können. Verfahren, die eine Teilung einer internen Speichervorrichtungsverzögerung durch die Taktperiode umfassen, werden nicht als einfach angesehen und stellen eine logisch teure Operation zum Eingeben in eine Vorrichtung dar.
  • Das Teilen der kodierten Verzögerungen in Abschnitte, die internen Speichervorrichtungsverzögerungen entsprechen, und das Bereitstellen derselben an den Controller (beispielsweise über interne Vorrichtungsregister) erleichtert das Teilungsproblem für die Speichervorrichtung, da alle Entscheidungen in die Applikationsschicht zurückgeschoben worden sind. Nun liegt die Last auf der Applikation bzw. der Anwendung, ausreichende Intelligenz zum Kennen der Betriebsfrequenz, Auslesen der Vorrichtungsverzögerungsanforderung und Verwenden eines Verfahrens zum Programmieren von beiden bereitszustellen. Das Aufteilungsproblem kann auf einfach Weise in Software umgesetzt werden und wird von der Speichervorrichtung eliminiert. Die Speichervorrichtung muss nur den richtigen Steuermechanismus präsentieren, so dass die Software die Aufgabe erfüllen kann. Geteilte, kodierte Verzöge rungen stellen auch eine feinkörnige Zeitsteuerung bereit, die beispielsweise zum Kompensieren von Prozessvariationen nützlich ist, die nicht jede Verzögerungsstufe gleichermaßen beeinflussen müssen.
  • 31 zeigt die Komponenten des Spaltenauslesewegs. Wie vorstehend beschrieben ist, umfasst die Spaltenauslesezugriffslatenz tCAC zwei Komponenten: tCLS und tDAC.
  • 44 zeigt einen Weg zum Implementieren einer programmierbaren Verzögerung für tCLS, die das COLCYC-Steuersignal verzögert und tCLS effektiv vergrößert. Die Variation von tCLS ist in 45 gezeigt.
  • Ein variables tDAC wird durch Verzögern des LoadRD-Signals in dem Zwischenspeicher bei dem Kernausgang erzielt. Wie vorstehend beschrieben ist, ist der Verzögerungsbereich auf LoadRD limitiert, da das gültige Ausgangsfenster der Auslesedaten von dem Kern limitiert ist (gültiges Auslesefenster = tPC – tDAS + tDOH, wie es in 14 gezeigt ist) und das Fenster die Setup- und Halteanforderungen des Zwischenspeichers erfüllen muss. Jenseits dieses begrenzten Bereichs wäre ein zusätzliches Puffern zum Erhöhen der gültigen Auslesefenstergröße notwendig. Damit würde ein zusätzlicher Bereich hinzugefügt werden und kritischere Wegprobleme in Anbetracht des Wunsches nach einer minimalen Ausleselatenz auftreten. Die programmierbare Verzögerung von LoadRD kann zum Kompensieren sowohl der variablen tDAC oder der Verbindungsverzögerungsvariation verwendet werden. Jede verbleibende, nicht für tDAC verwendete Verzögerung kann zum Durchführen einer Rückend-Einpegelung zum Kompensieren von Verbindungsverzögerungsvariationen verwendet werden.
  • Andere Zeitparameter von Spaltenoperationen können auch programmierbar sein. Beispielsweise kann die Spalten-/Zeilenvorladezeit tCPS, wie in dem Zeitdiagramm in 14 gezeigt ist, durch Addieren einer programmierbaren Verzögerung zu dem Vorladesignal programmierbar sein, das von der Spaltenlogik ausgelöst wird und zu der Vorladezustandsmaschine gesendet wird. tCAS, die Zeit zwischen den ansteigenden und fallenden Flanken von COLCYC, kann auch programmierbar gemacht werden und nützlich sein, abhängig davon, wie die Flanken von dem Kern verwendet werden. Wenn beispielsweise ein Kerndesign die ansteigende Flanke zum Starten der Spaltenzugriffoperation verwendet und die fallende Flanke zum Durchführen des Spaltenvorladens verwendet, wäre eine programmierbare tCAS sehr nützlich, wenn es Zeitvariationen gibt, wenn das Spaltenvorladen nach dem Starten des Spaltenzugriffs beginnen könnte. Um dies zu implementieren, muss ein programmierbares Verzögerungselement zu der COLCYC-Logik hinzugefügt werden, um eine variable Zeitsteuerung der fallenden Flanke zu ermöglichen.
  • Die Haupttechniken zum Steuern dieser Verzögerungselemente für vorrichtungsinduzierte Zeitvariationen gleichen denjenigen, die für verbindungsinduzierte Zeitvariationen beschrieben worden sind, obwohl sie sich leicht unterscheiden:
    • – dynamisch kodierte Verzögerung; in diesem Fall wird die Steuerung tatsächlich an die Speichervorrichtung zu anderen Zeiten als den Zeiten gesendet, wenn eine feste Verzögerung zu dem Speicherkern angewendet werden kann; stattdessen wird eine zusätzliche Verzögerung, die von der mit der Referenz gesendeten Steuerinformation bestimmt wird, zu der Nominalsteuerverzögerung zwischen dem Empfang von Steuerinformationen und ihrer Anwendung auf den Speicherkern hinzugefügt.
    • – statisch kodierte Verzögerung; in diesem Falle steuert ein Register innerhalb der Speichervorrichtung, die zur Initialisierungszeit programmiert wird, wie viel Verzögerung zwischen dem Empfang von Steuerinformationen und der Anwendung auf den Kern eingefügt wird. Das in 46 gezeigte Initialisierungsverfahren entnimmt Informationen, die Verzögerungen und Positionen von tatsächlich installierten Komponenten charakterisieren, und programmiert die Verzögerungsregister in den Vorrichtungen dementsprechend.
  • Die internen Vorrichtungsverzögerungen von Speicherkomponenten-Spaltenoperationen können in einfach parametrisierte Elemente aufgebrochen werden, die während der Lebenszeit jedes besonderen Controllers stabil bleiben. Da dies wahr ist, verwendet das bevorzugte Ausführungsbeispiel statisch kodierte, individuelle Verzögerungskomponenten. Selbst diese könnten kritische Wegprobleme verursachen, wenn sie nicht sorgfältig ausgelegt sind.
  • Alle vorrichtungsinduzierten Verzögerungskomponenten können statisch kompensiert werden, da sie keinen Effekt auf die Kanalbandbreite haben, sobald sie kompensiert sind. Sie haben nur einen leichten Effekt auf eine durchschnittliche Kanalservicezeit. Auf Grund des relativ kleinen Effekts auf die Kanalleistung bringt es we nig, die Verzögerungen dynamisch zu kodieren, insb. da die kritischen Wegeffekte signifikant sind.
  • Ein Fachmann wird das Folgende erkennen: ein Empfänger und ein Sender können in einer Vorrichtung kombiniert werden; ein Master und ein Slave können in einer Vorrichtung kombiniert werden; alternative Ausführungsbeispiele können unterschiedliche Abschnitte des Spaltenzugriffswegs steuern; alternative Ausführungsbeispiele können unterschiedliche Mechanismen zum Steuern jedes steuerbaren Intervalls verwenden; Verfahren können für jegliche verbindungsinduzierte Verzögerungsvariationen und jede Vorrichtung verwendet werden, die einen internen Block hat, der vielfältige Operationen und Verzögerungseinschränkungen zwischen denjenigen Operationen aufweist, die variieren; und die Erfindung ist nicht auf Vorrichtungen mit Speicherkernen beschränkt, sondern im Allgemeinen auf jede Art von Vorrichtung.
  • Die vorstehende Beschreibung zum Zwecke der Erläuterung verwendete eine bestimmte Nomenklatur bzw. Namensgebung zum Ermöglichen eines genauen Verständnisses der Erfindung. Dem Fachmann ist jedoch klar, dass die spezifischen Details nicht notwendig sind, um die Erfindung zu verwirklichen. In anderen Fällen sind wohlbekannte Schaltungen und Vorrichtungen als Blockdiagramm gezeigt, um eine unnötige Ablenkung von der zu Grunde liegenden Erfindung zu vermeiden. Somit sind die vorstehenden Beschreibungen von bestimmten Ausführungsbeispielen der vorliegenden Erfindung zum Zwecke der Illustration und Beschreibung präsentiert worden. Sie sollen nicht als erschöpfend angesehen werden oder die Erfindung auf die offenbarten Formen beschränken, offensichtlich sind viele Modifikationen und Variationen angesichts der vorstehenden Lehre möglich. Die Ausführungsbeispiele wurden ausgewählt und beschrieben, um die Prinzipien der Erfindung so gut wie möglich zu erläutern und ihre praktischen Anwendungen zu erläutern, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung und vielfältige Ausführungsbeispiele mit allen möglichen Modifikationen, die für die vorgedachte, spezielle Verwendung geeignet sind, am besten zu verwenden. Der Schutzbereich der Erfindung soll durch die nachfolgenden Ansprüche definiert werden.

Claims (9)

  1. Speichervorrichtung, mit: einem Speicherkern; einer Vielzahl von Verbindungen, die an eine Zwischenverbindungsstruktur zum Aufnehmen von Spaltenbefehlen und Zeilenbefehlen gekoppelt ist; und einer Schnittstellenschaltung, die an die Vielzahl von Verbindungen gekoppelt ist, um die Spaltenbefehle und die Zeilenbefehle zu empfangen, und an den Speicherkern gekoppelt ist, um Zeilen- und Spaltenoperationen an dem Speicherkern gemäß den Zeilenbefehlen und den Spaltenbefehlen durchzuführen; dadurch gekennzeichnet, dass die Schnittstellenschaltung eine Vielzahl von programmierbaren Verzögerungskomponenten umfasst, die den jeweiligen spezifischen Anteilen von internen Verzögerungen der Schnittstellenschaltung entsprechen; wobei, wenn die Zeilenbefehle und Spaltenbefehle in vorbestimmten Zeitabständen empfangen werden, die vorbestimmten Zeitabstände in Verbindung mit Verzögerungen, die mit den programmierbaren Verzögerungskomponenten in Verbindung stehen, die Zeit zwischen den Zeilen- und Spaltenoperationen an dem Speicherkern abgleichen.
  2. Speichervorrichtung nach Anspruch 1, wobei zumindest zwei der Vielzahl von programmierbaren Verzögerungskomponenten seriell innerhalb eines einzelnen Datenwegs der Schnittstellenschaltung positioniert sind, so dass mit den zumindest zwei programmierbaren Verzögerungskomponenten assoziierte Verzögerungen einen kumulativen Effekt auf Operationen der Speichervorrichtung haben.
  3. Speichervorrichtung nach Anspruch 1, wobei die Schnittstellenschaltung eine Schaltung zum Erzeugen von Speicherkern-Zeitsignalen gemäß den Zeilenbefehlen und Spaltenbefehlen aufweist, die Speicherkern-Zeitsignale Zeitbeschränkungen haben, um einen korrekten Speicherkernbetrieb zu gewährleisten, die Vielzahl von programmierbaren Verzögerungskomponenten eine Vielzahl von individuell programmierbaren Verzögerungskomponenten zum separa ten Anpassen der Zeit von ausgewählten Zeilenoperations-Zeitsignalen und Spaltenoperations-Zeitsignalen der Speicherkern-Zeitsignale aufweist, um die Zeitbeschränkungen einzuhalten.
  4. Speichervorrichtung nach Anspruch 3, wobei die Schnittstellenschaltung die Speicherkern-Zeitsignale mit Taktzyklus-Granularität an ein Taktsignal anpasst, dessen Taktzyklus von außerhalb der Speichervorrichtung bestimmt wird, um die Vorrichtungszeit für eine Abtast/Spaltenverzögerung anzupassen.
  5. Speichervorrichtung nach Anspruch 3, wobei die Schnittstellenschaltung die Speicherkern-Zeitsignale mit Taktzyklusgranularität an ein Taktsignal anpasst, dessen Taktzyklus von außerhalb der Speichervorrichtung bestimmt wird, um die Vorrichtungszeit für eine Abtast/Vorladeverzögerung anzupassen.
  6. Speichervorrichtung nach Anspruch 3, wobei die Schnittstellenschaltung die Speicherkern-Zeitsignale mit Taktzyklusgranularität an ein Taktsignal anpasst, dessen Taktzyklus von außerhalb der Speichervorrichtung bestimmt wird, um die Vorrichtungszeit für eine Vorlade/Abtastverzögerung anzupassen.
  7. Speichervorrichtung nach Anspruch 3, wobei die Schnittstellenschaltung die Speicherkern-Zeitsignale mit Taktzyklusgranularität an ein Taktsignal anpasst, dessen Taktzyklus von außerhalb der Speichervorrichtung bestimmt wird, um die Vorrichtungszeit für eine Spalten/Vorladeverzögerung anzupassen.
  8. Speichervorrichtung nach einem der vorstehenden Ansprüche 1–7, mit zumindest einer programmierbaren Verzögerungskomponente, die programmierbar ist, um eine Zeit einer Fluglatenzverzögerung zu kompensieren, die mit einer Position der Speichervorrichtung auf einem Kommunikationsbus in Verbindung steht.
  9. Speichervorrichtung nach einem der vorstehenden Ansprüche 1 bis 8, wobei erste und zweite programmierbare Verzögerungskomponenten der Vielzahl von programmierbaren Verzögerungskomponenten innerhalb von verschiedenen ersten und zweiten Datenpfaden der Schnittstellenschaltung positioniert werden, so dass mit den ersten und zweiten Verzögerungskomponenten assoziierte Ver zögerungen die Zeit von unterschiedlichen Operationen auf der Speichervorrichtung beeinflussen.
DE69816464T 1997-10-10 1998-10-09 Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen Revoked DE69816464T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6176997P 1997-10-10 1997-10-10
US61769P 1997-10-10
PCT/US1998/021491 WO1999019876A1 (en) 1997-10-10 1998-10-09 Apparatus and method for device timing compensation

Publications (2)

Publication Number Publication Date
DE69816464D1 DE69816464D1 (de) 2003-08-21
DE69816464T2 true DE69816464T2 (de) 2004-04-15

Family

ID=22038016

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69816464T Revoked DE69816464T2 (de) 1997-10-10 1998-10-09 Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen

Country Status (8)

Country Link
US (1) US6226754B1 (de)
EP (1) EP1019911B1 (de)
JP (3) JP4578676B2 (de)
KR (1) KR100618242B1 (de)
AT (1) ATE245303T1 (de)
AU (1) AU9604598A (de)
DE (1) DE69816464T2 (de)
WO (1) WO1999019876A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154821A (en) * 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
US6643787B1 (en) 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US6584576B1 (en) * 1999-11-12 2003-06-24 Kingston Technology Corporation Memory system using complementary delay elements to reduce rambus module timing skew
US6516396B1 (en) * 1999-12-22 2003-02-04 Intel Corporation Means to extend tTR range of RDRAMS via the RDRAM memory controller
US6658523B2 (en) 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US7698441B2 (en) * 2002-10-03 2010-04-13 International Business Machines Corporation Intelligent use of user data to pre-emptively prevent execution of a query violating access controls
DE10345550B3 (de) 2003-09-30 2005-02-10 Infineon Technologies Ag Speicheranordnung mit mehreren RAM-Bausteinen
DE102004016337A1 (de) * 2004-04-02 2005-10-27 Siemens Ag Empfangsschaltung
US7669027B2 (en) 2004-08-19 2010-02-23 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US7248511B2 (en) * 2005-02-24 2007-07-24 Infineon Technologies Ag Random access memory including selective activation of select line
US8327104B2 (en) * 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US7940545B2 (en) * 2008-06-24 2011-05-10 Freescale Semiconductor, Inc. Low power read scheme for read only memory (ROM)
US10566040B2 (en) 2016-07-29 2020-02-18 Micron Technology, Inc. Variable page size architecture
DE102018128927A1 (de) 2018-08-31 2020-03-05 Taiwan Semiconductor Manufacturing Co., Ltd. Wortleitungsaktivierung für eine variable Verzögerung
US10892007B2 (en) 2018-08-31 2021-01-12 Taiwan Semiconductor Manufacturing Company, Ltd. Variable delay word line enable
JP6986127B1 (ja) * 2020-10-21 2021-12-22 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリシステムおよびその操作方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960003526B1 (ko) * 1992-10-02 1996-03-14 삼성전자주식회사 반도체 메모리장치
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
JPH04147492A (ja) * 1990-10-11 1992-05-20 Hitachi Ltd 半導体メモリ
GB2250359A (en) 1990-11-19 1992-06-03 Anamartic Ltd Addressing of chained circuit modules
JPH0567394A (ja) * 1991-09-09 1993-03-19 Seiko Epson Corp 半導体記憶装置
US5572722A (en) * 1992-05-28 1996-11-05 Texas Instruments Incorporated Time skewing arrangement for operating random access memory in synchronism with a data processor
JPH0645892A (ja) * 1992-08-24 1994-02-18 Yamaha Corp 信号遅延回路
JPH06124230A (ja) * 1992-10-09 1994-05-06 Casio Electron Mfg Co Ltd ダイナミックramアクセス制御装置
JPH06273478A (ja) * 1993-03-20 1994-09-30 Hitachi Ltd クロックスキュー補正回路、及び半導体集積回路
JPH0745068A (ja) * 1993-08-02 1995-02-14 Mitsubishi Electric Corp 同期型半導体記憶装置
JPH0784863A (ja) * 1993-09-20 1995-03-31 Hitachi Ltd 情報処理装置およびそれに適した半導体記憶装置
EP0660329B1 (de) 1993-12-16 2003-04-09 Mosaid Technologies Incorporated Ausgangpuffer mit variabler Latenz und Synchronisiereinrichtung für synchronen Speicher
JP2991023B2 (ja) * 1993-12-28 1999-12-20 株式会社日立製作所 データ送信装置、データ送受信装置及びシステム
JPH08123717A (ja) * 1994-10-25 1996-05-17 Oki Electric Ind Co Ltd 半導体記憶装置
JPH08130448A (ja) * 1994-10-31 1996-05-21 Sanyo Electric Co Ltd 可変遅延回路
KR0146530B1 (ko) * 1995-05-25 1998-09-15 김광호 단속제어회로를 구비한 반도체 메모리 장치와 제어방법
US5600605A (en) * 1995-06-07 1997-02-04 Micron Technology, Inc. Auto-activate on synchronous dynamic random access memory
JPH09139074A (ja) * 1995-11-10 1997-05-27 Hitachi Ltd ダイナミック型ram
JP2000502204A (ja) 1995-12-15 2000-02-22 ユニシス・コーポレイション 遅延回路および遅延回路を使用するメモリ
US6043684A (en) * 1995-12-20 2000-03-28 Cypress Semiconductor Corp. Method and apparatus for reducing skew between input signals and clock signals within an integrated circuit
JP3986578B2 (ja) * 1996-01-17 2007-10-03 三菱電機株式会社 同期型半導体記憶装置
JPH10340222A (ja) * 1997-06-09 1998-12-22 Nec Corp メモリ装置の入力回路及び出力回路
US5936977A (en) * 1997-09-17 1999-08-10 Cypress Semiconductor Corp. Scan path circuitry including a programmable delay circuit

Also Published As

Publication number Publication date
US6226754B1 (en) 2001-05-01
JP2008305537A (ja) 2008-12-18
JP4578676B2 (ja) 2010-11-10
JP2001520431A (ja) 2001-10-30
KR20010031040A (ko) 2001-04-16
DE69816464D1 (de) 2003-08-21
ATE245303T1 (de) 2003-08-15
JP4579304B2 (ja) 2010-11-10
JP2008210502A (ja) 2008-09-11
AU9604598A (en) 1999-05-03
KR100618242B1 (ko) 2006-09-04
EP1019911A1 (de) 2000-07-19
WO1999019876A1 (en) 1999-04-22
JP4870122B2 (ja) 2012-02-08
EP1019911B1 (de) 2003-07-16

Similar Documents

Publication Publication Date Title
DE69816464T2 (de) Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen
DE19839570B4 (de) Synchrones Halbleiterspeicherbauteil mit programmierbarer Latenzzeit
DE102006054998B4 (de) Latenzsteuerschaltung, Halbleiterspeicherbauelement und Verfahren zum Steuern der Latenz
DE60112701T2 (de) Multiportspeicher auf Basis von DRAM
DE10350865A1 (de) Speicherbaustein mit variabel verzögerter Spaltenauswahl
DE102004025900A1 (de) Leselatenz-Steuerschaltung
DE102009020758A1 (de) Halbleiterspeicherbauelement und zugehöriges Zugriffsverfahren
DE102006002888B4 (de) Direktzugriffsspeicher mit niedriger Anfangslatenz
DE69829039T2 (de) Signalverzögerungsvorrichtung zur Verwendung in Halbleiterspeichervorrichtung für verbesserte Operation in Burst-Betriebsart
EP0908893A2 (de) Speicherarchitektur mit Mehrebenenhierarchie
DE3207210A1 (de) Monolithische speichervorrichtung
DE102014107661A1 (de) Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate
DE102005003903B4 (de) System und Verfahren zumn Auffrischen einer dynamischen Speichervorrichtung
DE202007019469U1 (de) Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
EP0393436B1 (de) Statischer Speicher mit Pipelineregistern
DE60119995T2 (de) System und verfahren zum frühen schreiben in speicher durch halten der bitleitung auf festem potential
DE60037846T2 (de) Synchronhalbleiterspeicheranordnung
DE60213813T2 (de) Dram mit bitleitungsaufladung, invertiertem dateneinschreiben, verlängerter ausgabedatenhaltung und verringertem leistungsverbrauch
DE10053700B4 (de) Halbleiterspeicherbauelement mit Datenleitungspaaren
DE3243496A1 (de) Integrierte halbleiterschaltung mit einem dynamischen schreib-lese-speicher
DE102006022124A1 (de) Eingangsschaltung mit aktualisiertem Ausgangssignal, das mit Taktsignal synchronisiert ist
DE102006046140A1 (de) Vorrichtung und Verfahren zum dynamischen Steuern eines Datentransfers in einer Speichervorrichtung
DE102006011720A1 (de) Speicher mit Datenzwischenspeicherschaltung, die einen Selektor umfasst
DE10029887A1 (de) Synchrone Halbleiterspeichervorrichtung
DE60221490T2 (de) Verfahren zum Datenzugriff in einer Auffrischung benötigenden Halbleiterspeicheranordnung und Halbleiterspeicheranordnung dafür

Legal Events

Date Code Title Description
8363 Opposition against the patent
8331 Complete revocation