-
QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
-
Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung Nr.
62/954,903 mit dem Titel „High Speed Comparator for Pipelined Memories“, die am 30. Dezember 2019 eingereicht wurde und hier durch Rückbezug in ihrer Gänze aufgenommen ist.
-
STAND DER TECHNIK
-
Viele moderne elektronische Vorrichtungen weisen elektronische Speicher auf. Ein elektronischer Speicher ist eine Speichervorrichtung, die zum Speichern von Datenbits in Speicherzellen ausgelegt ist. Derzeit führen viele Speichervorrichtungen, wie z.B. statische Direktzugriffsspeichervorrichtungen (SRAM-Vorrichtungen), Datenvergleichsoperationen durch, bevor Signale, die die in den Speicherzellen gespeicherte Daten repräsentieren, von der Speichervorrichtung ausgegeben werden. Die Vergleichsoperationen werden durchgeführt, nachdem gültige Ausgangssignale vom Speicherarray empfangen wurden. Von daher können die Vergleichsoperationen eine unerwünschte Zeitdauer in Anspruch nehmen, da die Vergleichsoperationen warten müssen, bis die gültigen Ausgangssignale empfangen werden.
-
Außerdem werden in manchen Fällen die Vergleichsoperationen sequentiell durchgeführt. Das obligatorische Warten auf eine Reihe gültiger Ausgangssignale erhöht weiter die durch die Vergleichsoperationen beanspruchte Zeit, was sich wiederum auf die Gesamtoperationen der Speichervorrichtung nachteilig auswirkt.
-
Figurenliste
-
Die Offenbarung wird leicht mithilfe der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen verstanden, wobei gleiche Bezugszeichen gleiche Strukturelemente bezeichnen. Es zeigen:
- 1 ein Blockdiagramm einer Speichervorrichtung, in der Aspekte der Offenbarung gemäß einigen Ausführungsformen praktiziert werden können;
- 2 das in 1 gezeigte Speicherarray gemäß einigen Ausführungsformen;
- 3 das in 2 dargestellte Speicherarray gemäß einigen Ausführungsformen;
- 4 ein erstes Beispiel einer Auswahlschaltung gemäß einigen Ausführungsformen;
- 5 ein zweites Beispiel einer Auswahlschaltung gemäß einigen Ausführungsformen;
- 6 ein Beispiel für eine Komparatorschaltung gemäß einigen Ausführungsformen;
- 7 Beispielsignalpegel für die Eingangssignale, das vorherige Speicherausgangssignal, die Vorberechnungssignale und das Speicherausgangssignal gemäß einigen Ausführungsformen;
- 8 ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einigen Ausführungsformen; und
- 9 ein Beispielsystem, das eine oder mehrere Speichervorrichtungen gemäß einigen Ausführungsformen aufweisen kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die nachstehende Offenbarung stellt viele verschiedene Ausführungsformen, oder Beispiele, zum Implementieren verschiedener Merkmale des vorliegenden Gegenstands bereit. Konkrete Beispiele von Komponenten und Anordnungen sind nachstehend beschrieben, um die vorliegende Offenbarung zu vereinfachen. Diese stellen selbstverständlich lediglich Beispiele dar und sind nicht im beschränkenden Sinne gedacht. Zum Beispiel kann das Ausbilden eines ersten Merkmals über oder auf einem zweiten Merkmal in der nachstehenden Beschreibung Ausführungsformen umfassen, in denen das erste und das zweite Merkmal in direktem Kontakt ausgebildet werden, und kann ebenfalls Ausführungsformen umfassen, in denen zusätzliche Merkmale zwischen dem ersten und dem zweiten Merkmal ausgebildet werden können, so dass das erste und das zweite Merkmal möglicherweise nicht in direktem Kontakt stehen. Außerdem kann die vorliegende Offenbarung Bezugsnummern und/oder -buchstaben in den verschiedenen Beispielen wiederholen. Diese Wiederholung geschieht zum Zweck der Einfachheit und Klarheit und sie schreibt an sich keine Beziehung zwischen den verschiedenen besprochenen Ausführungsformen und/oder Ausgestaltungen vor.
-
Außerdem können hierin Begriffe, die sich auf räumliche Relativität beziehen, wie z.B. „unterhalb“, „unter“, „unterer“, „über“, „oberhalb“, „unter“, „oberer,“ „oben“, „unten“ „vorne“, „hinten“ und dergleichen, zur Erleichterung der Besprechung verwendet werden, um die Beziehung eines Elements oder Merkmals zu einem anderen Element oder Merkmal (zu anderen Elementen oder Merkmalen), wie in den Figuren dargestellt, zu beschreiben. Die Begriffe, die räumliche Relativität betreffen, sollen verschiedene Ausrichtungen der verwendeten oder betriebenen Vorrichtung zusätzlich zu der in den Figuren dargestellten Ausrichtung umfassen. Da Komponenten in verschiedenen Ausführungsformen in einer Vielzahl von verschiedenen Ausrichtungen angeordnet sein können, wird die Terminologie, die sich auf Richtungen bezieht, lediglich zu Zwecken der Veranschaulichung verwendet und ist keineswegs einschränkend. Wenn in Verbindung mit Schichten einer integrierten Schaltung, einer Halbleitervorrichtung oder einer elektronischen Vorrichtung verwendet, soll die Richtungsterminologie breit ausgelegt werden und sollte daher nicht derart interpretiert werden, dass sie das Vorhandensein einer oder mehrerer dazwischenliegender Schichten oder anderer dazwischenliegender Merkmale oder Elemente ausschließt. Daher kann eine gegebene Schicht, die hier derart beschrieben wird, dass sie auf, über oder unter einer anderen Schicht ausgebildet oder auf, über oder unter ihr angeordnet ist, von Letzterer durch eine oder mehrere zusätzliche Schichten getrennt sein.
-
Hier beschriebene Ausführungsformen stellten einen Pipeline-Speicher bereit, der die Vergleichsoperationen am Ausgang des Speichers verbessert. In Ausführungsformen wird die Vergleichsberechnung vorberechnet, was die Gesamtleistung einer Speichervorrichtung verbessern kann, da die Zeitdauer für die Vergleichsoperation reduziert wird. Zusätzlich oder alternativ wird die Auswertung des Vergleichs in einem festen Zeitraum durchgeführt. Einer oder beide dieser Prozesse können die Zykluszeit des Speichers erhöhen und/oder die Leistungsfähigkeit des Speichers auf Systemebene verbessern.
-
Diese und andere Ausführungsformen werden nachstehend unter Bezugnahme auf 1 bis 9 besprochen. Jedoch wird ein Fachmann leicht verstehen, dass die hier präsentierte ausführliche Beschreibung in Bezug auf diese Figuren lediglich Erläuterungszwecken dient und nicht als beschränkend ausgelegt werden sollte.
-
1 zeigt ein Blockdiagramm einer Speichervorrichtung, in der Aspekte der Offenbarung gemäß einigen Ausführungsformen praktiziert werden können. In der dargestellten Ausführungsform weist die Speichervorrichtung 100 Speicherzellen 102 auf, die derart in Zeilen und Spalten angeordnet sind, das sie ein Speicherarray 104 bilden. Die Speichervorrichtung 100 kann eine beliebige geeignete Anzahl von Zeilen und Spalten aufweisen. Zum Beispiel weist eine Speichervorrichtung eine Anzahl von Zeilen R und eine Anzahl von Spalten C, wobei R eine Ganzzahl größer oder gleich eins ist und C eine Zahl größer oder gleich eins ist. Andere Ausführungsformen sind nicht auf Zeilen und Spalten der Speicherzelle 102 beschränkt. Die Speicherzellen 102 in einem Speicherarray 104 können in einer beliebigen geeigneten Anordnung organisiert werden.
-
Jede Zeile der Speicherzellen 102 ist betriebsfähig mit einer oder mehreren Wortleitungen (die gemeinsam als Wortleitung 106 bezeichnet werden) verbunden. Die Wortleitungen 106 sind betriebsfähig mit einer oder mehreren Zeilendecoderschaltungen (die gemeinsam als Zeilendecoderschaltung 108 bezeichnet werden) verbunden. Die Zeilendecoderschaltung 108 wählt eine bestimmte Wortleitung 106 auf der Grundlage eines Adresssignals auf, das auf einer Signalleitung 110 empfangen wird.
-
Jede Spalte der Speicherzellen 102 ist betriebsfähig mit einer oder mehreren Bitleitungen (die gemeinsam als Bitleitung 112 bezeichnet werden) verbunden. Die Bitleitungen 112 werden betriebsfähig mit einer oder mehreren Spaltendecoderschaltungen (die gemeinsam als Spaltendecoderschaltung 114 bezeichnet werden) verbunden. Die Spaltendecoderschaltung 114 wählt eine bestimmte Bitleitung 112 auf der Grundlage eines Auswahlsignals auf, das auf einer Signalleitung 116 empfangen wird.
-
Eine Verarbeitungsvorrichtung 118 ist betriebsfähig mit dem Speicherarray 104, der Zeilendecoderschaltung 108 und der Spaltendecoderschaltung 114 verbunden. Die Verarbeitungsvorrichtung 118 ist betriebsfähig, um eine oder mehrere Operationen des Speicherarrays 104, der Zeilendecoderschaltung 108 und der Spaltendecoderschaltung 114 zu steuern. Eine beliebige Verarbeitungsvorrichtung kann verwendet werden. Beispiele für Verarbeitungsvorrichtungen weisen eine zentrale Verarbeitungseinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung, eine Grafikverarbeitungseinheit, ein Field Programmable Gate Array oder Kombinationen davon auf, sind aber nicht darauf beschränkt.
-
Eine Stromversorgung 120 ist betriebsfähig mit dem Speicherarray 104, der Zeilendecoderschaltung 108, der Spaltendecoderschaltung 114 und der Verarbeitungsvorrichtung 118 verbunden. Die Verarbeitungsvorrichtung 118 und/oder die Stromversorgung 120 können in derselben Schaltung (z.B. ein Makro) angeordnet werden wie der Speicherarray 104. In einem Ausführungsbeispiel bezieht sich das Makro auf eine Speichereinheit, die ein Speicherarray 104 und Peripheriegeräte, wie z.B. einen Steuerblock, einen Eingangs-/Ausgangsblock, die Zeilendecoderschaltung 108, die Spaltendecoderschaltung 114 usw. aufweist. In anderen Ausführungsformen können die Verarbeitungsvorrichtung 118 und/oder die Stromversorgung 120 in einer separaten Schaltung angeordnet und funktionsfähig mit dem Makro (z.B. dem Speicherarray 104) verbunden werden.
-
Wenn Daten in eine Speicherzelle 102 geschrieben werden sollen (z.B. die Speicherzelle 102 wird programmiert), oder aus einer Speicherzelle 102 gelesen werden sollen, wird eine Adresse für die Speicherzelle 102 auf der Signalleitung 110 empfangen. Die Zeilendecoderschaltung 108 aktiviert oder bestätigt die mit der Adresse assoziierte Wortleitung 106. Ein Auswahlsignal wird auf der Signalleitung 116 empfangen, und die mit dem Auswahlsignal assoziierte Bitleitung 112 wird bestätigt oder aktiviert. Die Daten werden dann in die Speicherzelle 102 geschrieben oder aus ihr gelesen.
-
In der dargestellten Ausführungsform ist die Speichervorrichtung 100 in einer elektronischen Vorrichtung 122 aufgenommen. Die elektronische Vorrichtung 122 kann eine beliebige elektronische Vorrichtung sein. Beispiele für elektronische Vorrichtungen umfassen eine Rechen- oder mobile Vorrichtung, wie z.B. einen Laptop-Computer und ein Tablet, ein Mobiltelefon, ein Fernseher, ein Fahrzeug, eine Stereoanlage und eine Kamera, sind aber nicht darauf beschränkt.
-
2 zeigt das in 1 gezeigte Speicherarray gemäß einigen Ausführungsformen. In der dargestellten Ausführungsform ist das Speicherarray 104 betriebsfähig mit einer Ausgangsschaltung 202 verbunden. Jede Spalte 200 von Speicherzellen (Speicherzellen 102, die in 1 dargestellt sind) im Speicherarray 104 ist betriebsfähig mit einer Spaltenausgangsschaltung 204 in der Ausgangsschaltung 202 verbunden. In einem Ausführungsbeispiel ist die Ausgnagsschaltung 202 in der in 1 dargestellten Spaltendecoderschaltung 114 aufgenommen. Zusätzlich oder alternativ ist in einer Ausführungsform ein Teil oder die Gesamtheit der Ausgangsschaltung 202 im Makro des Speicherarrays 104 aufgenommen. In anderen Ausführungsformen ist die Gesamtheit der Ausgangsschaltung 202 nicht im Makro des Speicherarrays 104 aufgenommen.
-
Jede Spaltenausgangsschaltung 204 weist eine Komparatorschaltung (in 3 dargestellt) zum Ausgeben des Zellendatensignals Qn (z.B. eine logische 1 oder 0) auf, das aus einer bestimmten Speicherzelle 102 gelesen wurde. Das Zellendatensignal Qn (Signale Q0, Q1, ..., Qn), das aus einer bestimmten Speicherzelle im Speicherarray 104 gelesen wird, wird durch eine jeweilige Spaltenausgangsschaltung 204 empfangen. Die Komparatorschaltung in der Spaltenausgangsschaltung 204 vergleicht das Zellendatensignal Qn mit einem Referenzwert, um das Speicherausgangssignal QPn (Signale QP0, QP1, ... QPn) zu erzeugen. Ausführungsformen der Komparatorschaltung werden in Verbindung mit 3 bis 8 ausführlicher beschrieben. Die Beispielkomparatorschaltung kann die Zeit reduzieren, die durch eine Vergleichsoperation verwendet wird, was wiederum die Gesamtleistung einer Speichervorrichtung (z.B. Speichervorrichtung 100 in 1 und 2) verbessert.
-
3 zeigt das in 2 dargestellte Speicherarray gemäß einigen Ausführungsformen. Wie vorstehend beschrieben, wird ein Zellendatensignal (Signal Qn) von einer bestimmten Speicherzelle im Speicherarray 104 erlangt und wird durch eine jeweilige Spaltenausgangsschaltung 204 empfangen. Jede Spaltenausgangsschaltung 204 weist eine Komparatorschaltung 300 zum Vergleichen des Zellendatensignals (Signal Qn) mit einem bekannten oder Referenzwert auf, um das Speicherausgangssignal (Signal QPn) für die bestimmte Speicherzelle zu bestimmen.
-
Jede Komparatorschaltung 300 weist eine Vorberechnungsschaltung 302 und eine Auswahlschaltung 304 auf. Der Ausgang (Die Ausgänge) der Vorberechnungsschaltung 302 ist (sind) betriebsfähig mit dem Eingang (den Eingängen) der Auswahlschaltung 304 verbunden. Der Ausgang der Auswahlschaltung 304 ist das Speicherausgangssignal (Signal QPn). Das Eingangssignal der Vorberechnungsschaltung 302 ist das vorherige Speicherausgangssignal (Signal QPn_prev). Andere Eingangssignale der Vorberechnungsschaltung 302 sind das Vergleichseingangssignal(e) und das Steuersignal(e) (die gemeinsam als CIC-Signal in 3 repräsentiert sind). In einer Ausführungsform weisen die anderen Eingangssignale ein Vergleichsdatensignal CDINT, das einen Datenwert zum Vergleichen bereitstellt, ein invertiertes Signal CDINTB des Vergleichsdatensignals CDINT, ein Sticky-Signal STICKYINT, das anzeigt, dass die Ausgabe das vorherige Speicherausgangssignal ist (Signal QPn_prev), und ein invertiertes Signal CAPINTB eines Initialisierungssignals (CAPINT), das den Ausgang (z.B. Vorberechnungssignal Qcn1 und Vorberechnungssignal Qcn2) auf bekannte Werte initialisiert, auf. Die anderen Eingangssignale (CIC-Signal) sind in der Technik an sich bekannt und stellen externe Signale dar, die als Eingaben der Vorberechnungsschaltung 302 empfangen werden. Zum Beispiel erzeugen in einer Ausführungsform eine Verarbeitungsvorrichtung (z.B. die Verarbeitungsvorrichtung 118 in 1) und/oder Schaltungen in der Ausgangsschaltung (z.B. Ausgangsschaltung 202) die andere(n) Eingabe(n). Die Operationen der Vorberechnungsschaltung 302 und die Eingangssignale werden in Verbindung mit 6 und 7 ausführlicher beschrieben.
-
Unter Verwendung der Eingangssignale CIC und des QPn_prev-Signals berechnet die Vorberechnungsschaltung 302 den Vergleich für ein Zellendatensignal (Signal Qn) vor. Die Auswahlschaltung 304 verwendet das Zellendatensignal (Signal Qn), um das relevante Vorberechnungssignal zum Ausgeben als das Speicherausgangssignal (Signal QPn) auszuwählen. Jede Vorberechnungsschaltung 302 berechnet ein erstes Vorberechnungssignal (Qcn1) und ein zweites Vorberechnungssignal (Qcn2) für jedes empfangene Zellendatensignal (Qn). Die Auswahlschaltung 304 wählt entweder das erste Vorberechnungssignal (Qcn1) oder das zweite Vorberechnungssignal (Qcn2) auf der Grundlage des Zellendatensignals (Signal Qn) aus und gibt es aus.
-
Die Auswahlschaltung 304 kann mit einem beliebigen geeigneten Schalter implementiert werden. 4 zeigt ein erstes Beispiel einer Auswahlschaltung gemäß einigen Ausführungsformen. Die Auswahlschaltung 304 weist ein erstes Transmission-Gate 400 auf, das betriebsfähig mit einem zweiten Transmission-Gate 402 verbunden ist. In einer Ausführungsform weist jedes Transmission-Gate 400, 402 einen p-Transistor (z.B. einen pMOS-Transistor) auf, der in parallel mit einem n-Transistor (z.B. einem nMOS-Transistor) betriebsfähig verbunden ist.
-
Das erste Vorberechnungssignal (Signal Qcn1), das von der Vorberechnungsschaltung 302 (3) ausgegeben wird, wird in das erste Transmission-Gate 400 über eine Signalleitung 404 eingegeben. Das zweite Vorberechnungssignal (Signal Qcn2), das von der Vorberechnungsschaltung 302 ausgegeben wird, wird in das zweite Transmission-Gate 402 über eine Signalleitung 406 eingegeben. Das Zellendatensignal (Signal Qn) von einer bestimmten Speicherzelle wird in das erste und das zweite Transmission-Gate 400, 402 jeweils über ein Gate 408 bzw. 410 eingegeben. Ein invertiertes Signal (Signal Qn ) des Zellendatensignals (Signal Qn) wird in das erste und das zweite Transmission-Gate 400, 402 jeweils über Gate 412 bzw. 414 eingegeben. In einem nicht beschränkenden Beispiel weist jedes von dem ersten und dem zweiten Transmission-Gate 400, 402 jeweils einen Inverter (nicht dargestellt) auf, der das Zellendatensignal (Signal Qn) empfängt und das invertierte Zellendatensignal (Signal Qn ) ausgibt.
-
Das Zellendatensignal und das invertierte Zellendatensignal (Signale Qn und Qn ) wirken als Steuersignale, die verwendet werden, um entweder das erste Vorberechnungssignal (Signal Qcn1) zum Ausgeben auf der ersten Signalleitung 416 oder das zweite Vorberechnungssignal (Signal Qcn2) zum Ausgeben auf der zweiten Signalleitung 418 auszuwählen. In der dargestellten Ausführungsform werden die erste und die zweite Signalleitung 416, 418 am Knoten 420 miteinander verbunden, um die Signalleitung 422 zu bilden. Wie vorstehend erwähnt, ist das von der Auswahlschaltung 304 auf der Signalleitung 422 ausgegebene Signal das Speicherausgangssignal (Signal QPn).
-
5 zeigt ein zweites Beispiel einer Auswahlschaltung gemäß einigen Ausführungsformen. Die Auswahlschaltung 304 weist einen Multiplexer 500 auf, der das erste Vorberechnungssignal (Signal Qcn1) von der Vorberechnungsschaltung 302 (3) als eine Eingabe auf Signalleitung 502 und das zweite Vorberechnungssignal (Signal Qcn2) von der Vorberechnungsschaltung 302 als eine Eingabe auf einer Signalleitung 504 empfängt. Das Zellendatensignal (Signal Qn) von der Speicherzelle wird durch den Multiplexer 500 auf einer Signalleitung 506 empfangen und wird als ein Auswahlsignal verwendet, um entweder das erste Vorberechnungssignal (Signal Qcn1) oder das zweite Vorberechnungssignal (Signal Qcn2) zum Ausbilden auf der Signalleitung 508 auszuwählen. Wie vorstehend erwähnt, ist das von der Auswahlschaltung 304 auf der Signalleitung 508 ausgegebene Signal erneut das Speicherausgangssignal (Signal QPn).
-
6 zeigt ein Beispiel für eine Komparatorschaltung gemäß einigen Ausführungsformen. Wie vorstehend beschrieben, weist jede Komparatorschaltung 300 die Vorberechnungsschaltung 302 und die Auswahlschaltung 304 auf. Die dargestellte Vorberechnungsschaltung 302 weist ein erstes NAND-Gatter 600, ein zweites NAND-Gatter 602, ein drittes NAND-Gatter 604, ein viertes NAND-Gatter 606 und ein fünftes NAND-Gatter 608 auf. Der Ausgang des ersten NAND-Gatters 600 stellt einen Eingang des zweiten NAND-Gatters 602 dar. Der Ausgang des dritten NAND-Gatters 604 stellt einen Eingang des zweiten NAND-Gatters 602 und einen Eingang des vierten NAND-Gatters 606 dar. Der Ausgang des fünften NAND-Gatters 608 stellt einen Eingang des vierten NAND-Gatters 606 dar. Der Ausgang des zweiten NAND-Gatters 602 ist eines der Vorberechnungssignale (z.B. das erste Vorberechnungssignal Qcn1). Der Ausgang des vierten NAND-Gatters 606 ist das andere Vorberechnungssignal (z.B. das zweite Vorberechnungssignal Qcn2). Wie vorstehend erwähnt, sind das erste und das zweite Vorberechnungssignal (Qcn1 und Qcn2) Signale, die von der Vorberechnungsschaltung 302 ausgegeben werden.
-
Ein erstes Eingangssignal des ersten NAND-Gatters 600 ist das Vergleichsdatensignal CDINT und ein zweites Eingangssignal des ersten NAND-Gatters 600 ist das invertierte Initialisierungssignal CAPINTB. Ein erstes Eingangssignal des dritten NAND-Gatters 604 ist das STICKYINT-Signal und ein zweites Eingangssignal des dritten NAND-Gatters 604 ist das vorherige Speicherausgangssignal QPn_prev. Ein erstes Eingangssignal des fünften NAND-Gatters 608 ist das invertierte Initialisierungssignal CAPINTB und ein zweites Eingangssignal des fünften NAND-Gatters 608 ist ein invertiertes Signal CDINT des Vergleichsdatensignals CDINT.
-
In einer Ausführungsform werden das erste und das zweite Vorberechnungssignal Qcn1 und Qcn2 berechnet, bevor das Zellendatensignal Qn verfügbar ist. Das Zellendatensignal Qn selbst wird durch die Auswahlschaltung 304 (z.B. 5) verwendet, um entweder das erste oder das zweite Vorberechnungssignal (Qcn1 und Qcn2) zum Ausgeben als das Speicherausgangssignal QPn_auszuwählen, und das Zellendatensignal Qn und das invertierte Zellendatensignal Q n werden durch die Auswahlschaltung 304 (z.B. 4) verwendet, um entweder das erste oder das zweite Vorberechnungssignal (Qcn1 und Qcn2) zum Ausgeben als das Speicherausgangssignal QPn_auszuwählen. Die in 4 und 6 dargestellte Auswahlschaltung 304 gibt jeweils das erste Vorberechnungssignal Qcn1 aus, wenn das Zellendatensignal Qn gleich null (0) ist, und gibt das zweite Vorberechnungssignal Qcn2 aus, wenn das Zellendatensignal Qn gleich eins (1) ist.
-
7 zeigt Beispielsignalpegel für die Eingangssignale, das vorherige Speicherausgangssignal, die Vorberechnungssignale und das Speicherausgangssignal gemäß einigen Ausführungsformen. Jede Zeile repräsentiert einen gegebenen Satz von Signalpegeln für die Eingangssignale Qn, das vorherige Speicherausgangssignal QPn_prev, das erste und das zweite Vorberechnungssignal Qcn1, Qcn2, und das Speicherausgangssignal QPn. Insbesondere zeigt Spalte 700 die Signalpegel für das Zellendatensignal Qn derart, dass sie gleich 1 sind, und Spalte 702 listet die Signalpegel für das Zellendatensignal Qn derart auf, dass sie gleich 0 sind. Jedes von einer Speicherzelle empfangene Zellendatensignal stellt einen der zwei Signalpegel dar (entweder eine Eins oder eine Null).
-
Spalte 704 zeigt Signalpegel für das Eingangssignal CDINT, Spalte 706 listet Signalpegel für das Eingangssignal STICKYINT auf, Spalte 708 zeigt Signalpegel für das Eingangssignal CAPINTB, und Spalte 710 zeigt die Signalpegel für das Eingangssignal QPn_prev. Spalte 712 listet die Signalpegel für das erste Vorberechnungssignal Qcn1 auf, und Spalte 714 zeigt die Signalpegel für das zweite Vorberechnungssignal Qcn2. Wie vorstehend erwähnt, werden in einer Ausführungsform das erste und das zweite Vorberechnungssignal Qcn1 und Qcn2 berechnet, bevor das Zellendatensignal Qn verfügbar ist, und das Zellendatensignal Qn wird durch die Auswahlschaltung verwendet, um auszuwählen, welches von dem ersten oder dem zweiten Vorberechnungssignal (Qcn1 oder Qcn2) als das Speicherausgangssignal QPn_ausgegeben wird.
-
Spalte 716 zeigt jeweilige Signalpegel des Speicherausgangssignals QPn, wenn das Zellendatensignal Qn gleich 1 ist. Spalte 718 listet jeweilige Signalpegel des Speicherausgangssignals QPn_auf, wenn das Zellendatensignal Qn gleich o ist. Im Allgemeinen ist der Signalpegel des Speicherausgangssignals QPn_von den Signalpegeln der verschiedenen Eingangssignale unabhängig und basiert nicht auf ihnen, und basiert stattdessen auf der Berechnung des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 und dem Signalpegel des Zellendatensignals Qn. Jedoch bestehen zwei Gruppen von Signalen, wobei das Speicherausgangssignal QPn_mit den Signalpegeln der Eingangssignale STICKYINT und CAPINTB in Beziehung steht oder auf ihnen basiert. Die erste Gruppe von Signalen 720 weist Zeilen 722, 724, 726, 728 auf, wobei der Signalpegel des Eingangssignals STICKYINT null (0) beträgt, und der Signalpegel des Eingangssignals CAPINTB null (0) beträgt (siehe Spalten 706 und 708). In der ersten Gruppe 720 beträgt der Signalpegel des Speicherausgangssignals QPn_ null (0) unabhängig von den Signalpegeln der Eingangssignale CDINT, STICKYINT, CAPINTB und QPn_prev. Zum Beispiel beträgt in Zeile 722 der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 722 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn gleich eins (1) und null (0) ist.
-
In Zeile 724 der ersten Gruppe von Signalen 720 beträgt der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 724 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn gleich eins (1) und null (0) ist.
-
In Zeile 726 der ersten Gruppe von Signalen 720 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 726 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn gleich eins (1) und null (0) ist.
-
In Zeile 728 der ersten Gruppe von Signalen 720 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 728 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn gleich eins (1) und null (0) ist.
-
Die zweite Gruppe von Signalen 730, wobei das Speicherausgangssignal QPn_auf den Signalpegeln der Eingangssignale STICKYINT und CAPINTN basiert, weist die Zeilen 732, 734, 736, 738 auf, wobei der Signalpegel des Eingangssignals STICKYINT eins (1) beträgt und der Signalpegel des Eingangssignals CAPINTB null (0) beträgt (siehe Spalten 706 und 708). In der zweiten Gruppe 730 ist der Signalpegel des Speicherausgangssignals QPn_ungeachtet der Signalpegel der Eingangssignale CDINT, STICKYINT, CAPINTB und QPn_prev vom Signalpegel des vorherigen Speicherausgangssignals QPn_prev abhängig. Zum Beispiel beträgt in Zeile 732 der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Die Signalpegel des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 betragen beide null (0), was dem Signalpegel von QPn_prev entspricht. In Zeile 732 entspricht, wenn das Zellendatensignal Qn eins (1) beträgt und null (0) beträgt, der Signalpegel des Speicherausgangssignals QPn_dem Signalpegel QPn_prev, der null (0) beträgt.
-
In Zeile 734 der zweiten Gruppe von Signalen 730 beträgt der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Die Signalpegel des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 sind beide eins (1), was dem Signalpegel von QPn_prev entspricht. In Zeile 734 entspricht, wenn das Zellendatensignal Qn gleich eins (1) und gleich null (0) ist, der Signalpegel des Speicherausgangssignals QPn_dem Signalpegel QPn_prev, der eins (1) ist.
-
In Zeile 736 der zweiten Gruppe von Signalen 730 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Die Signalpegel des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 sind beide null (0), was dem Signalpegel von QPn_prev entspricht. In Zeile 736 entspricht, wenn das Zellendatensignal Qn eins (1) beträgt und null (0) beträgt, der Signalpegel des Speicherausgangssignals QPn_dem Signalpegel QPn_prev, der null (0) ist.
-
In Zeile 738 der zweiten Gruppe von Signalen 730 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt null (0) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Die Signalpegel des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 sind beide eins (1), was dem Signalpegel von QPn_prev entspricht. In Zeile 738 entspricht, wenn das Zellendatensignal Qn gleich eins (1) und gleich null (0) ist, der Signalpegel des Speicherausgangssignals QPn_dem Signalpegel QPn_prev, der eins (1) beträgt.
-
Eine dritte Gruppe von Signalen 740 weist Zeilen 742, 744, 746, 748, 750, 752, 754, 756 auf. In der dritten Gruppe von Signalen 740 basiert der Signalpegel des Speicherausgangssignals QPn_auf der Berechnung des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 und dem Signalpegel des Zellendatensignals Qn. Zum Beispiel beträgt in Zeile 742 der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt eins (1). In Zeile 742 beträgt der Signalpegel des Speicherausgangssignals QPn_eins (1), wenn das Zellendatensignal Qn eins (1) ist, und der Signalpegel des Speicherausgangssignals QPn_beträgt null (0), wenn das Zellendatensignal Qn null (0) ist.
-
In Zeile 744 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt eins (1). In Zeile 744 beträgt der Signalpegel des Speicherausgangssignals QPn_eins (1), wenn das Zellendatensignal Qn eins (1) ist, und der Signalpegel des Speicherausgangssignals QPn_beträgt null (0), wenn das Zellendatensignal Qn null (0) gleicht.
-
In Zeile 746 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt eins (1) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 746 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn eins (1) ist, und der Signalpegel des Speicherausgangssignals QPn_beträgt eins (1), wenn das Zellendatensignal Qn null (0) gleicht.
-
In Zeile 748 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt null (0), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt eins (1) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 748 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn eins (1) gleicht, und der Signalpegel des Speicherausgangssignals QPn_beträgt eins (1), wenn das Zellendatensignal Qn null (0) gleicht.
-
In Zeile 750 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt null (0) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt eins (1). In Zeile 750 beträgt der Signalpegel des Speicherausgangssignals QPn_eins (1), wenn das Zellendatensignal Qn eins (1) gleicht, und der Signalpegel des Speicherausgangssignals QPn_beträgt null (0), wenn das Zellendatensignal Qn gleich null (0) ist.
-
In Zeile 752 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT null (0), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt eins (1) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt eins (1). In Zeile 752 beträgt der Signalpegel des Speicherausgangssignals QPn_eins (1), wenn das Zellendatensignal Qn eins (1) ist, und der Signalpegel des Speicherausgangssignals QPn_beträgt eins (1), wenn das Zellendatensignal Qn gleich null (0) ist.
-
In Zeile 754 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt null (0). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt eins (1) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt null (0). In Zeile 754 beträgt der Signalpegel des Speicherausgangssignals QPn_null (0), wenn das Zellendatensignal Qn gleich eins (1) ist, und der Signalpegel des Speicherausgangssignals QPn_beträgt eins (1), wenn das Zellendatensignal Qn null (0) ist.
-
In Zeile 756 der dritten Gruppe von Signalen 740 beträgt der Signalpegel des Eingangssignals CDINT eins (1), der Signalpegel des Eingangssignals STICKYINT beträgt eins (1), der Signalpegel des Eingangssignals CAPINTB beträgt eins (1) und der Signalpegel des vorherigen Speicherausgangssignals QPn_prev beträgt eins (1). Der Signalpegel des ersten Vorberechnungssignals Qcn1 beträgt eins (1) und der Signalpegel des zweiten Vorberechnungssignals Qcn2 beträgt eins (1). In Zeile 756 beträgt der Signalpegel des Speicherausgangssignals QPn_eins (1), wenn das Zellendatensignal Qn eins (1) ist, und der Signalpegel des Speicherausgangssignals QPn_beträgt eins (1), wenn das Zellendatensignal Qn gleich null (0) ist.
-
8 zeigt ein Ablaufdiagramm eines Beispielverfahrens zum Lesen von Daten aus einer Speicherzelle gemäß einigen Ausführungsformen. Anfänglich werden bei Block 800 das erste Vorberechnungssignal (Signal Qcn1) und das zweite Vorberechnungssignal (Signal Qcn2) für eine Speicherzelle berechnet. In der in 6 dargestellten Ausführungsform werden das erste und das zweite Vorberechnungssignal Qcn1, Qcn2 unter Verwendung der Eingangssignale CDINT, CAPINTB, STICKYINT, QPn_prev und CDINTB berechnet. Als Nächstes werden, wie in Block 802 dargestellt, Daten aus der Speicherzelle gelesen, um das Zellendatensignal (Signal Qn) zu erzeugen. Der Prozess fährt dann mit Block 804 fort, wobei auf der Grundlage des Signalpegels des Zellendatensignals (z.B. Qn = 1 oder Qn = 0) entweder das erste Vorberechnungssignal (Signal Qcn1) oder das zweite Vorberechnungssignal (Signal Qcn2) von der Auswahlschaltung als das Speicherausgangssignal (Signal QPn) ausgegeben wird.
-
In einigen Ausführungsformen wird der Prozess zum Berechnen und Auswählen des ersten Vorberechnungssignals oder des zweiten Vorberechnungssignals innerhalb einer festen Zeitdauer durchgeführt. Der Zeitbetrag zum Durchführen der Vergleichsoperation ist fest und vom Zellendatensignal Qn unabhängig. Die Vergleichsoperation findet statt, bevor der Signalpegel des Zellendatensignals Qn verfügbar ist, und die Zeit zum Lesen einer Speicherzelle und Erlangen des Zellendatensignals Qn kann variieren (z.B. Lesen aus einer Speicherzelle in der Nähe des Beginns einer Zeile gegenüber einem Lesen einer Speicherzelle in der Nähe des Endes einer Zeile). In früheren Systemen kann eine größere Vergleichsverzögerung auftreten, wenn eine Speicherzelle nahe dem Ende der Zeile gelesen wird. Hier offenbarte Ausführungsformen reduzieren oder eliminieren größere Vergleichsverzögerungen, indem die Vergleichsoperation innerhalb der festen Zeitdauer durchgeführt wird.
-
Als Nächstes wird, wie bei Block 806 dargestellt, eine Bestimmung vorgenommen, ob eine andere Leseoperation durchgeführt werden soll (z.B. eine andere Speicherzelle gelesen werden soll). Falls ja, kehrt der Prozess zum Block 800 zurück und Blöcke 800, 802, 804, 806 wiederholen sich, bis die Leseoperationen durchgeführt wurden. Wenn eine weitere Leseoperation nicht durchgeführt wird (z.B. werden die Daten in einer weiteren Speicherzelle nicht gelesen), wartet das Verfahren bei Block 806, bis eine weitere Leseoperation durchgeführt werden soll.
-
Wie vorhin beschrieben, können Ausführungsformen der Komparatorschaltung die Zeitdauer einer Vergleichsoperation reduzieren, da die Vergleichsoperation vorberechnet wird. Eine Verzögerung von einem Takt zu einem Ausgang des Speichers (z.B. Signal QPn) ist als tcd_qp = tcd + td_compare_logic definiert, wobei tcd einer Verzögerung von Takt zu Q entspricht und td_compare_logic eine Zeitverzögerung der Vergleichslogik (z.B. der Komparatorschaltung 300) ist. Ein Vorberechnen des ersten und des zweiten Vorberechnungssignals Qcn1, Qcn2 kann die Takt-zu-Q-Verzögerung reduzieren, was wiederum die Zykluszeit und/oder die Leistungsfähigkeit der Speichervorrichtung und/oder eines Pipeline-Speichersystems verbessert.
-
Zusätzlich oder alternativ ist eine Verzögerung vom Takt zu einem Ausgang des Speichers (z.B. Signal QPn) als tcd_qp= tcd + tdelay_trans_gate definiert, wobei tcd= Takt-zu-Q-Verzögerung und tdelay_trans-gate die Zeitverzögerung der Auswahlschaltung (z.B. der Auswahlschaltung 304) darstellt. In einigen Ausführungsformen ist eine normierte Gateverzögerung zu Basisgateverzögerung als tcd_qp = tcd + (0,5) (Base_gate_delay) definiert. Der 0,5-Wert repräsentiert die Verzögerung der Auswahlschaltung. In anderen Ausführungsformen kann ein beliebiger geeigneter Wert verwendet werden, um die Verzögerung der Auswahlschaltung zu repräsentieren. In manchen Fällen ist die Takt-zu-Q-Verzögerung (tcd_qp) reduziert, was wiederum die Zykluszeit und/oder die Leistungsfähigkeit der Speichervorrichtung und/oder eines Pipeline-Speichersystems verbessert.
-
9 zeigt ein Beispielsystem, das eine oder mehrere Speichervorrichtungen gemäß einigen Ausführungsformen aufweisen kann. Das System 900 weist eine elektronische Vorrichtung 902 auf. In einem Ausgestaltungsbeispiel weist die elektronische Vorrichtung 902 mindestens eine Verarbeitungsvorrichtung 904 und eine Systemspeichervorrichtung 906 auf. Die Systemspeichervorrichtung 906 kann mehrere Datendateien und ausführbare Befehle von Programmmodulen, wie z.B. ausführbare Befehle, die mit einem Betriebssystem (OS) 908 assoziiert sind, ein oder mehrere Softwareprogramme (APPS) 910, die zum Parsen empfangener Eingaben, Bestimmen eines Gegenstands empfangener Eingaben, Bestimmen von Aktionen, die mit der Eingabe assoziiert sind, usw. geeignet sind, und Speicheroperationen 912 zum Ausführen einiger oder aller hierin offenbarten Speicheroperationen aufweisen. In einer Ausführungsform speichert die Systemspeichervorrichtung 906 und/oder die Speichervorrichtung 930 mindestens eines von den Zellendatensignalen, dem ersten und dem zweiten Vorberechnungssignal und/oder den Speicherausgangssignalen. Wenn durch die Verarbeitungsvorrichtung(en) 904 ausgeführt, können die ausführbaren Befehle Prozesse durchführen und/oder veranlassen, dass sie durchgeführt werden, die hier beschriebene Aspekte aufweisen, aber nicht darauf beschränkt sind.
-
Das OS 908 kann zum Beispiel zum Steuern des Betriebs der elektronischen Vorrichtung 902 geeignet sein. Außerdem können Ausführungsformen in Verbindung mit einer Grafikbibliothek, anderen Betriebssystemen oder einem beliebigen anderen Anwendungsprogramm praktiziert werden und sind nicht auf eine konkrete Anwendung oder ein konkretes System beschränkt.
-
Die elektronische Vorrichtung 902 kann zusätzliche Merkmale oder Funktionalität aufweisen. Zum Beispiel kann die elektronische Vorrichtung 902 auch zusätzliche entfernbare und/oder nicht entfernbare Datenspeichervorrichtungen 914 aufweisen, wie zum Beispiel Magnetplatten, optische Platten, ein Band und/oder Speicherkarten oder Sticks. Die Systemspeichervorrichtung 906 und/oder die Datenspeichervorrichtung 914 können als eine Speichervorrichtung, wie hier offenbart, implementiert werden. Zum Beispiel können die Systemspeichervorrichtung 906 und/oder die Datenspeichervorrichtung 914 eine SRAM-Vorrichtung sein.
-
Die elektronische Vorrichtung 902 kann außerdem eine oder mehrere Eingabevorrichtungen 916 und eine oder mehrere Ausgabevorrichtungen 918 aufweisen. Beispiele für die Eingabevorrichtung(en) 916 weisen eine Tastatur, ein Trackpad, eine Maus, einen Stift, eine Ton- oder Spracheingabevorrichtung und/oder eine Berührungs-, Force- und/oder Swipe-Eingabevorrichtung, sind jedoch nicht darauf beschränkt. Die Ausgabevorrichtung(en) 918 kann (können) eine oder mehrere Anzeigen, ein oder mehrere Lautsprecher, ein Drucker, Kopfhörer, haptische oder taktile Rückkopplungsvorrichtung und dergleichen sein. Die elektronische Vorrichtung 902 kann eine oder mehrere Kommunikationsvorrichtungen 920 aufweisen, die Kommunikationen mit anderen elektronischen Vorrichtungen ermöglichen. Beispiele für Kommunikationsvorrichtungen 920 umfassen eine Hochfrequenzsender- (HF-Sender), -Empfänger- und/oder - Transceiverschaltung (z.B. WiFi), einen USB (Universal Serial Bus), parallele und/oder serielle Ports, Mobilfunkvorrichtungen, Nahfeldkommunikationsvorrichtungen und drahtlose Vorrichtungen mit kurzer Reichweite, sind jedoch nicht darauf beschränkt.
-
Die elektronische Vorrichtung 902 weist ferner eine Stromversorgung 922 auf, die als eine externe Leistungsquelle, wie z.B. ein Wechselstromadapter, implementiert werden kann. Zusätzlich oder alternativ kann die Stromversorgung 922 eine oder mehrere Batterien oder eine angetriebene Dockingstation aufweisen, die die Batterien ergänzt oder auflädt.
-
Die Systemspeichervorrichtung 906 und die Speichervorrichtung(en) 914 können einen flüchtigen Speicher (z.B. Direktzugriffsspeicher) einen nicht flüchtigen Speicher (z.B. Festwertspeicher), einen Flash-Speicher oder eine beliebige Kombination solcher Speicher aufweisen, sind jedoch nicht darauf beschränkt. Zum Beispiel können die Systemspeichervorrichtung 906 und die Speichervorrichtung(en) 914 jeweils ein RAM, ein ROM, ein elektrisch löschbarer Nur-Lese-Speicher (EEPROM), ein Flash-Speicher oder eine andere Speichertechnologie, eine CD-ROM, eine DVD (digitale Versatile Disks) oder andere optische Speicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder ein anderer Herstellungsgegenstand sein, die zum Speichern von Informationen verwendet werden können und auf die die elektronische Vorrichtung 902 zugreifen kann. In manchen Fällen kann ein beliebiger solcher Speicher oder eine Speichervorrichtung ein Teil der elektronischen Vorrichtung 902 oder betriebsfähig mit der elektronischen Vorrichtung 902 verbunden sein.
-
Außerdem können Ausführungsformen in einer elektrischen Schaltung, die diskrete elektronische Elemente aufweist, gehäusten oder integrierten elektronischen Chips, die Logikgatter aufweisen, einer Schaltung, die einen Mikroprozessor verwendet, oder auf einem einzelnen Chip, der elektronische Elemente oder Mikroprozessoren aufweist, praktiziert werden. Zum Beispiel können Ausführungsformen der Offenbarung über ein System-on-Chip (SOC) praktiziert werden, wobei jede oder viele der in 9 dargestellten Komponenten auf einer einzelnen integrierten Schaltung integriert sein kann/können. Eine solche SOC-Vorrichtung kann eine oder mehrere Verarbeitungsvorrichtungen, Grafikeinheiten, Kommunikationseinheiten, Systemvirtualisierungseinheiten und verschiedene Anwendungsfunktionalität aufweisen, von denen alle auf dem Chipsubstrat als eine einzelne integrierte Schaltung integriert (oder „gebrannt“) sind.
-
Beim Betrieb über ein SOC kann die hier beschriebene Funktionalität in Bezug auf Speicheroperationen über eine anwendungsspezifische Logik betrieben werden, die mit anderen Komponenten der elektronischen Vorrichtung 902 auf der einzelnen integrierten Schaltung (Chip) integriert ist. Ausführungsformen der Offenbarung können außerdem unter Verwendung anderer Technologien praktiziert werden, die in der Lage sind, logische Operationen, wie zum Beispiel AND, OR und NOT durchzuführen, einschließlich mechanischer, optischer, fluidischer und Quantentechnologien, aber nicht darauf beschränkt. Außerdem können Ausführungsformen innerhalb eines allgemeinen Rechners oder in beliebigen anderen Schaltungen oder Systemen praktiziert werden.
-
In einigen Ausführungsformen greift die elektronische Vorrichtung 902 fakultativ (fakultative Verbindung und Zugriff sind durch die gestrichelte Linie 924 angezeigt) auf eine oder mehrere Server-Rechenvorrichtungen (die durch die Server-Rechenvorrichtung 926 repräsentiert sind) über eine verdrahtete und/oder drahtlose Verbindung mit einem oder mehreren Netzwerken (durch Netzwerk 928 repräsentiert). Die Server-Rechenvorrichtung 926 kann mit verschiedenen Programmen oder Diensten interagieren, die in einer oder mehreren Speichervorrichtungen (die durch die Speichervorrichtung 930 repräsentiert sind) gespeichert sind und durch die Server-Rechenvorrichtung 926 ausgeführt werden.
-
In einer oder mehreren Ausführungsformen repräsentiert das Netzwerk 928 einen beliebigen Typ eines Netzwerks, zum Beispiel ein Intranet und/oder ein verteiltes Rechennetz (z.B. das Internet). Die elektronische Vorrichtung 902 kann eine Personal- oder tragbare Rechenvorrichtung oder eine Desktop-Rechenvorrichtung sein. Zum Beispiel kann die elektronische Vorrichtung 902 ein Smartphone, ein Tablet, eine tragbare Vorrichtung, ein Desktop-Computer, ein Laptop-Computer und/oder ein Server (einzeln oder in Kombination) sein. Diese Liste elektronischer Vorrichtungen dient lediglich Beispielzwecken und sollte nicht als beschränkend betrachtet werden.
-
Obwohl die Figuren bestimmte Komponenten, Werte und Signalpegel darstellen, sind andere Ausführungsformen nicht auf diese Komponenten, Werte und Signalpegel beschränkt. Zum Beispiel zeigt 6 die Vorberechnungsschaltung 302 derart, dass sie fünf NAND-Gatter aufweist. Andere Ausführungsformen sind nicht auf diese Implementierung beschränkt und eine Vorberechnungsschaltung kann mit verschiedenen Typen von Logikschaltungen, elektrischen Schaltungen und Kombinationen davon ausgebildet werden.
-
Das Vorstehende skizziert Merkmale mehrerer Ausführungsformen, so dass ein Fachmann die Aspekte der vorliegenden Offenbarung besser verstehen kann. Ein Fachmann sollte erkennen, dass er die vorliegende Offenbarung als eine Grundlage zum Entwerfen oder Modifizieren anderer Prozesse und Strukturen leicht verwenden kann, um die gleichen Aufgaben durchzuführen und/oder die gleichen Vorteile der hier vorgestellten Ausführungsformen zu erzielen. Ein Fachmann sollte ebenfalls verstehen, dass derartige äquivalente Ausführungen nicht vom Erfindungsgedanken und Umfang der vorliegenden Offenbarung abweichen, und dass er verschiedene Änderungen, Ersetzungen und Modifizierungen hier vornehmen kann, ohne vom Erfindungsgedanken und Umfang der vorliegenden Offenbarung abzuweichen.
-
In einem Aspekt weist ein System ein Speicherarray und eine Komparatorschaltung auf. Das Speicherarray weist eine oder mehrere Zeilen von Speicherzellen und eine oder mehrere Spalten von Speicherzellen auf. Die Komparatorschaltung ist betriebsfähig mit einer jeweiligen Spalte von Speicherzellen in der einen oder den mehreren Spalten von Speicherzellen verbunden. Die Komparatorschaltung weist eine Vorberechnungsschaltung und eine Auswahlschaltung auf, die betriebsfähig mit den Ausgängen der Vorberechnungsschaltung verbunden ist. Die Vorberechnungsschaltung ist dahingehend betriebsfähig, dass sie ein erstes Vorberechnungssignal und ein zweites Vorberechnungssignal erzeugt. Die Auswahlschaltung ist dahingehend betriebsfähig, dass sie ein Zellendatensignal von einer Speicherzelle in der jeweiligen Spalte von Speicherzellen empfängt und auf der Grundlage von zumindest dem Zellendatensignal entweder das erste Vorberechnungssignal oder das zweite Vorberechnungssignal zum Ausgeben von der Komparatorschaltung als ein Speicherausgangssignal für die Speicherzelle auswählt.
-
In einem anderen Aspekt weist ein Verfahren zum Betreiben einer Speichervorrichtung ein Vorberechnen eines ersten Vorberechnungssignals und eines zweiten Vorberechnungssignals und ein Empfangen eines Zellendatensignals von einer Speicherzelle in der Speichervorrichtung. Auf der Grundlage von zumindest dem Zellendatensignal wird entweder das erste Vorberechnungssignal oder das zweite Vorberechnungssignal zum Ausgeben als ein aus der Speicherzelle gelesenes Signal ausgewählt.
-
In noch einem anderen Aspekt weist eine elektronische Vorrichtung eine Verarbeitungsvorrichtung und eine Speichervorrichtung, die betriebsfähig mit der Verarbeitungsvorrichtung verbunden ist, auf. Die Speichervorrichtung weist ein Speicherarray und eine Komparatorschaltung auf. Das Speicherarray weist eine oder mehrere Zeilen von Speicherzellen und eine oder mehrere Spalten von Speicherzellen auf. Die Komparatorschaltung ist betriebsfähig mit einer jeweiligen Spalte von Speicherzellen in der einen oder den mehreren Spalten von Speicherzellen verbunden. Die Komparatorschaltung weist eine Vorberechnungsschaltung und eine Auswahlschaltung auf, die betriebsfähig mit den Ausgängen der Vorberechnungsschaltung verbunden ist. Die Vorberechnungsschaltung ist dahingehend betriebsfähig, dass sie ein erstes Vorberechnungssignal und ein zweites Vorberechnungssignal erzeugt. Die Auswahlschaltung ist dahingehend betriebsfähig, dass sie ein Zellendatensignal von einer Speicherzelle in der jeweiligen Spalte von Speicherzellen empfängt und auf der Grundlage von zumindest dem Zellendatensignal entweder das erste Vorberechnungssignal oder das zweite Vorberechnungssignal zum Ausgeben von der Komparatorschaltung als ein aus der Speicherzelle gelesenes Signal auswählt.
-
Die Beschreibung und Veranschaulichung eines oder mehrerer Aspekte, die in dieser Anmeldung bereitgestellt werden, sollen den Umfang der Offenbarung, wie in irgendeiner Weise beansprucht, nicht einschränken oder begrenzen. Die in dieser Anmeldung bereitgestellten Aspekte, Beispiele und Einzelheiten werden als hinreichend angesehen, um Besitz zu vermitteln und es anderen zu ermöglichen, die beste Art der beanspruchten Offenbarung herzustellen und zu verwenden. Die beanspruchte Offenbarung sollte nicht derart ausgelegt werden, dass sie auf einen Aspekt, ein Beispiel oder ein Detail beschränkt ist, der/das in dieser Anmeldung bereitgestellt wird. Unabhängig davon, ob sie in Kombination oder getrennt gezeigt und beschrieben werden, sollen die verschiedenen Merkmale (sowohl strukturell als auch methodisch) selektiv aufgenommen oder weggelassen werden, um eine Ausführungsform mit einem bestimmten Satz von Merkmalen zu erzeugen. Wenn die Beschreibung und Darstellung der vorliegenden Anmeldung einem Fachmann zur Verfügung gestellt wird, kann er sich Abwandlungen, Modifikationen und alternative Aspekte vorstellen, die im Geist der umfassenderen Aspekte des in dieser Anmeldung verkörperten allgemeinen erfinderischen Konzepts liegen, die nicht vom umfassenderen Umfang der beanspruchten Offenbarung abweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-