-
HINTERGRUND
-
1. Gebiet der Technik
-
Die vorliegende Erfindung betrifft Speichervorrichtungen und insbesondere, jedoch nicht ausschließlich das Vergleichen von Daten, die von Speicherzellen einer Speichervorrichtung gespeichert werden.
-
2. Bisheriger Stand der Technik
-
Ein inhaltsadressierbarer Speicher (Content-Addressable Memory, CAM) speichert Daten üblicherweise in einer Vielzahl von Speicherstellen. Der CAM kann eine Wertübereinstimmungslogik einschließen, welche Eingabedaten mit den gespeicherten Daten vergleicht und ein Anzeigesignal erzeugt, das diese Speicherstellen identifiziert, wenn der Eingabewert mit einem gespeicherten Wert übereinstimmt. Eine Wertübereinstimmung wird oftmals als „Treffer“ bezeichnet. Solche Eigenschaften der CAM-Technologien sind in den vergangenen zwei Jahrzehnten zunehmend verfügbar geworden.
-
Da aufeinanderfolgende Generationen des dynamischen Arbeitsspeichers (Dynamic Random Access Memory, DRAM), statischen Arbeitsspeichers (Static Random Access Memory, SRAM) usw. jedoch weiterhin Platz- und Preiseinsparungen mit sich bringen, zeigt sich eine damit einhergehende zunehmende Nachfrage nach Mechanismen, wie etwa eines CAM, zur Unterstützung des effizienten Durchsuchens solcher erschwinglichen hochvolumigen Direktzugriffsspeicher(Random Access Memory, RAM)-Typen. Die umfassendere und vielfältigere Integration der Gerätevernetzung hat die Nachfrage nach solchen Mechanismen ebenfalls erhöht.
-
Die ternäre CAM-Technologie, welche die Verwendung eines „don't care“-Zustands bei Datenvergleichen unterstützt, stellt eine Verbesserung gegenüber dem grundlegenden binären CAM dar. Jedoch sind die relativ großen Speicherzellengrößen von CAM-Vorrichtungen zusammen mit der damit einhergehenden geringen Speicherkapazität und den hohen Kosten weiterhin ein Hindernis für den Einsatz von CAM in vielen Anwendungsfällen. Der Bedarf an Alternativen zu CAM zeigt sich beispielsweise durch die Verwendung ersetzender Softwarekonzepte zur Implementierung einer bestimmten Version der CAM-Speichersuchfunktion.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die verschiedenen Ausführungsformen der vorliegenden Erfindung werden exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht, in denen:
-
1A ein funktionales Blockdiagramm auf hoher Ebene ist, das Elemente eines Systems zur Durchführung einer Leseoperation gemäß einer Ausführungsform veranschaulicht.
-
1B ein funktionales Blockdiagramm ist, das Elemente eines Systems zur Durchführung einer Datenvergleichsoperation gemäß einer Ausführungsform veranschaulicht.
-
2 ein funktionales Blockdiagramm auf hoher Ebene ist, das Elemente einer Speichervorrichtung zur Unterstützung einer Datenvergleichsoperation gemäß einer Ausführungsform veranschaulicht.
-
3 ein Flussdiagramm ist, das Elemente eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform veranschaulicht.
-
4 ein funktionales Blockdiagramm auf hoher Ebene ist, das Elemente einer Speichersteuerung zum Austauschen von Vergleichsergebnisinformationen gemäß einer Ausführungsform veranschaulicht.
-
5 ein Flussdiagramm ist, das Elemente eines Verfahrens zum Steuern einer Speichervorrichtung gemäß einer Ausführungsform veranschaulicht.
-
6 ein Zeitsteuerdiagramm ist, das Elemente von Signalaustauschen zum Bestimmen von Vergleichsergebnisinformationen gemäß einer Ausführungsform veranschaulicht.
-
7 ein Blockdiagramm ist, das Elemente eines Datenverarbeitungssystems für den Zugriff auf Speicherressourcen gemäß einer Ausführungsform veranschaulicht.
-
8 ein Blockdiagramm ist, das Elemente einer mobilen Vorrichtung für den Zugriff auf Speicherressourcen gemäß einer Ausführungsform veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Die hierin erörterten Ausführungsformen stellen unterschiedliche Techniken und/oder Mechanismen für eine Speichervorrichtung bereit, um einen Vergleich eines Referenzwerts mit Daten durchzuführen, die in dieser Speichervorrichtung gespeichert sind. Zumindest einige dieser Techniken und/oder Mechanismen sind das Ergebnis einer Erkenntnis, dass eine Möglichkeit besteht, die komparativen Vorteile eines RAM (im Unterschied zu jeglichem CAM) auszunutzen, beispielsweise hinsichtlich Größe und/oder Kosten, um Funktionalität bereitzustellen, die als beschränkter Ersatz für die eines CAM dient.
-
Bestimmte Ausführungsformen werden hierin in Bezug auf Techniken und/oder Mechanismen erörtert, welche die Leistung in einer DRAM-Vorrichtung bei einem Vergleich zwischen einem Referenzdatenwert (Eingangsdaten) und einem in der DRAM-Vorrichtung gespeicherten Wert unterstützen. Einen solchen Vergleich beschreibende Informationen können dann beispielsweise von der DRAM-Vorrichtung an eine Speichersteuerung übermittelt werden. Jedoch kann eine solche Erörterung erweitert werden, um zusätzlich oder alternativ auf einen solchen Vergleich angewandt zu werden, der bei jeder anderen Variante anderer RAM-Typen durchgeführt wird, einschließlich, aber nicht beschränkt auf statischen RAM (SRAM), Spin-Transfer-Drehmoment-magnetoresistiven Direktzugriffsspeicher (Spin-Transfer Torque Magnetoresistive Random Access Memory, STT-MRAM), resistiven RAM (ReRAM) und/oder dergleichen.
-
Eine solche DRAM-Vorrichtung kann eine Anordnung von Speicherzellen und eine Zugriffslogik umfassen, einschließlich einer Schaltung, die konfiguriert ist, um einen Referenzdatenwert von einem Host (z. B. einer Speichersteuerung) zu empfangen, der mit der DRAM-Vorrichtung gekoppelt ist. Die DRAM-Vorrichtung kann den Referenzdatenwert mit einem in dem Speicherarray gespeicherten Wert vergleichen und basierend auf einem Ergebnis des Vergleichs ein oder mehrere Signale erzeugen, die beispielsweise einen Treffer anzeigen, der eine Übereinstimmung zwischen dem Referenzwert und den gespeicherten Daten umfasst, oder alternativ einen Fehltreffer, der eine fehlende Übereinstimmung zwischen dem Referenzwert und den gespeicherten Daten umfasst. In einer Ausführungsform soll die Zugriffslogik basierend auf der vom Host empfangenen Signalisierung bestimmen, ob (oder nicht) ein Vergleichsmodus der Speichervorrichtung konfiguriert werden soll, um die Adressinformationen und Daten zu verarbeiten, die in Verbindung mit einer solchen Signalisierung empfangen werden.
-
Bestimmte Ausführungsformen stellen auf unterschiedliche Weise einen Speicherchip (z. B. eines verpackten Bauteils) bereit, um eine inhaltsbasierte Datenvergleichsfunktionalität zu implementieren – beispielsweise zusätzlich zu der Funktionalität einer ansonsten herkömmlichen Speicherschaltung. Die 1A und 1B veranschaulichen auf verschiedene Weise die Merkmale eines Systems 100 gemäß einer Ausführungsform. Das System 100 kann die Speichervorrichtung 110 und einen Host 120 einschließen, wobei eine Eingabe/Ausgabe(E/A)-Schnittstelle 125 des Hosts 120 mit einer E/A-Schnittstelle 115 der Speichervorrichtung 110 über einen Interconnect 105 gekoppelt ist. Der Host 120 kann eine Speichersteuerung zum Bereitstellen eines Zugriffs auf die Speichervorrichtung 110 für einen Hostprozessor umfassen, der in dem Host 120 enthalten oder mit diesem gekoppelt ist. Ein solcher Hostprozessor kann eine Schaltung einschließen, die konfiguriert ist, um ein Allzweck-Betriebssystem und/oder eine andere Software für eine Computerplattform auszuführen, die das System 100 einschließt. In einer Ausführungsform ist die Speichervorrichtung 110 ein integrierter Schaltungs(Integrated Circuit, IC)-Chip, der nicht ein beliebiger IC-Chip des Hosts 120 ist. Beispielsweise kann die Speichervorrichtung 110 ein anderes verpacktes Bauteil sein als ein beliebiges verpacktes Bauteil des Hosts 120. In einer anderen Ausführungsform ist das System 100 eine System-on-Chip(SoC)-Vorrichtung.
-
Der Interconnect 105 kann Signalleitungen umfassen, um die Signalisierung zwischen dem Host 120 und der Speichervorrichtung 110 auf verschiedene Weise auszutauschen. Beispielsweise kann der Interconnect 105 einen Datenbus, einen Adressenbus, einen Befehlsbus und/oder eine beliebige einer Vielzahl von Kombinationen von einigen oder allen derartigen Bussen einschließen, um den Host 120 bei dem Zugriff oder der anderweitigen Steuerung der Speichervorrichtung 110 zu unterstützen. Der Interconnect 105 kann ferner eine oder mehrere Steuersignalleitungen für eine Steuersignalisierung (z. B. eine andere als eine Befehls-, Adressen- und/oder Datensignalisierung) an die Speichervorrichtung 110 einschließen. Für Fachleute auf dem Gebiet ist es ersichtlich, dass solche Steuersignalleitungen beispielsweise ein oder mehrere von einem Chipauswahlsignal, einem Schreibfreigabesignal, einem Ausgangsfreigabesignal, einem Taktsignal, einem Spaltenadressen-Abtastsignal, einem Zeilenadressen-Abtastsignal oder einem beliebigen einer Vielzahl von anderen herkömmlichen Steuersignalen kommunizieren kann. Wie hierin erörtert, können ein oder mehrere Steuersignalleitungen des Interconnect 105 ein Signal kommunizieren, das angibt, dass die Speichervorrichtung 110 eine Datenvergleichsoperation (oder einfach „Vergleichsoperation“) in Verbindung mit Adresseninformationen und/oder vom Host 120 bereitgestellten Daten durchführen soll.
-
Die Speichervorrichtung 110 kann beliebige einer Vielzahl von Arten von Speichertechnologien umfassen, die beispielsweise Zeilen von Speicherzellen aufweisen, in denen Daten über eine Wortleitung oder dergleichen zugreifbar sind. In einer Ausführungsform schließt die Speichervorrichtung 110 DRAM-Technologie ein. Die Speichervorrichtung 110 kann ein IC-Gehäuse innerhalb einer größeren Speichervorrichtung (nicht gezeigt) des Systems 100 sein. Beispielsweise kann die Speichervorrichtung 110 eine DRAM-Vorrichtung eines Speichermoduls wie etwa eines Dual-Inline-Speichermoduls (Dual Inline Memory Module, DIMM) sein.
-
Die Speichervorrichtung 110 kann ein Speicherarray 140 umfassen, das eine oder mehrere logische und/oder physikalische Speichergruppen darstellt. Ein Beispiel für eine solche Speichergruppierung ist eine Bank von Speicherressourcen, die beispielsweise Speicherelemente einschließen kann, die in Zeilen und Spalten angeordnet sind. Die Speichervorrichtung 110 kann eine Zugriffslogik 170 einschließen, um zumindest teilweise den Zugriff auf den Speicherarray 140 zu erleichtern – beispielsweise, wenn ein solcher Zugriff für das Ausgeben eines oder mehrerer Befehle von dem Host 120 bereitgestellt wird. Die Zugriffslogik 170 kann die Logik der Speichervorrichtung 110 einschließen oder in Verbindung mit dieser betrieben werden, die einen Ressourcenzugriff gemäß herkömmlicher Techniken bereitstellt – beispielsweise, wenn die Funktionalität der Vergleichslogik 160 solche herkömmlichen Techniken mit zusätzlicher Funktionalität wie hierin erörtert ergänzt. Zur Veranschaulichung und nicht als Beschränkung kann die Zugriffslogik 170 eine Befehlslogik und eine Adressenlogik (nicht gezeigt) enthalten oder ankoppeln, die verwendet werden, um eine Zugriffsanweisung zu der richtigen Speicherstelle in dem Speicherarray 140 zu dekodieren.
-
Der Host 120 kann Befehle oder Anweisungen an die Speichervorrichtung 110 über einen Bus des Interconnect 105 senden. Solche Befehle können durch die Speichervorrichtung 110 interpretiert werden – beispielsweise einschließlich des Dekodierens von Befehlsinformationen durch die Speichervorrichtung 110, um eine Vielzahl von Zugriffsfunktionen innerhalb des Speichers durchzuführen und/oder Adresseninformationen mit Spaltenlogik und/oder Zeilenlogik zu dekodieren. Beispielsweise kann eine solche Logik auf eine bestimmte Stelle in dem Speicherarray 140 mit einer Kombination eines Spaltenadressen-Abtastsignals (CAS) und eines Zeilenadressen-Abtastsignals (RAS) zugreifen. Die Zeilen des Speichers können in Übereinstimmung mit bekannten Speicherarchitekturen oder ihren Derivaten implementiert werden. Kurz gesagt, kann eine Zeile des Speicherarrays 140 eine oder mehrere adressierbare Spalten mit Speicherzellen einschließen, wie durch das von der Spaltenlogik des Speichers 110 erzeugte CAS identifiziert. Die Zeilen können jeweils auf verschiedene Weise über das durch die Zeilenlogik des Speichers 110 erzeugte RAS adressierbar sein.
-
Ein gegebener Satz von Signalen kann mit dem Zweck zum Speicherarray 140 gesendet werden, über einen mit der E/A-Schnittstelle 115 gekoppelten Datenbus ausgetauschte Daten zu schreiben – und/oder auszutauschende Daten zu lesen. In einer Ausführungsform schließt der Host 120 eine Steuerlogik 130 ein – beispielsweise einschließlich einer beliebigen einer Vielzahl von Hardware-Logik und/oder dem Ausführen einer Software-Logik –, um Befehle über eine E/A-Schnittstelle 125 an den Interconnect 105 zu senden. Die Steuerlogik 130 kann die Logik einer Speichersteuerung einschließen oder ankoppeln, die Operationen durchführt, um Befehle zu generieren, zu übertragen oder anderweitig zu bestimmen, die gemäß einer oder mehrerer herkömmlicher Techniken gesendet werden. Zur Veranschaulichung und nicht als Beschränkung kann die Steuerlogik 130 ansonsten eine herkömmliche Befehls-/Adressensignalisierungsfunktionalität ergänzen, die beispielsweise einigen oder allen Anforderungen einer Dual-Datenraten(DDR)-Spezifikation wie dem DDR3-SDRAM-JEDEC-Standard JESD79-3C mit Stand April 2008 oder ähnlichem entspricht.
-
1A stellt eine Ansicht 100a von Austauschen dar, die durch das System 100 für einen Lesezugriff auf den Speicherarray 140 durchgeführt werden. Wie in der Ansicht 100a gezeigt, können derartige Austausche eine Steuerlogik 130 einschließen, die über den Interconnect 105 Signale 135a sendet, um einer Zugriffslogik 170 eine Leseoperation anzuzeigen. Solche Signale 135a können einen Lesebefehl enthalten (der z. B. über einen Befehlsbus des Interconnect 105 gesendet wird), um der Zugriffslogik 170 anzuzeigen, dass Daten aus dem Speicherarray 140 abgerufen und an den Host 120 gesendet werden sollen. Die Signale 135a können ferner Adresseninformationen umfassen (z. B. gesendet über einen Adressenbus des Interconnect 105), die eine Adresse einer bestimmten Speicherstelle angeben oder anderweitig anzeigen (wie in der veranschaulichten Stelle 150 dargestellt), von der diese Daten abgerufen werden sollen. In Reaktion auf die Signalisierung 135a kann die Zugriffslogik 170 – beispielsweise mit Operationen, die von herkömmlichen Lesezugriffstechniken angepasst sind – die an der Stelle 150 gespeicherten Daten abrufen und die abgerufenen Daten in einer Antwort 180a über den Interconnect 105 senden.
-
Das Generieren einer Lesezugriffsantwort – wie etwa die Antwort 180a – kann in einer oder mehreren Hinsichten unabhängig von der Vergleichslogik 160 sein, die ansonsten an einer Vergleichsoperation beteiligt sein soll, wie die in der Ansicht 100b in 1B gezeigte. Wie in der Ansicht 100b gezeigt, kann die Steuerlogik 130 über den Interconnect 105 Signale 135b senden, um der Zugriffslogik 170 eine Vergleichsoperation anzuzeigen. Solche Signale 135b können einen dedizierten Vergleichsbefehl einschließen, der sich von einem Lesebefehl unterscheidet, der spezifiziert, dass einige Daten aus dem Speicherarray 140 abgerufen und mit einem Referenzwert verglichen werden sollen, wobei die Speichervorrichtung 110 Informationen an den Host 120 sendet, die ein Ergebnis des Vergleichs darstellen.
-
In einigen Ausführungsformen schließen die Signale 135b eine Steuersignalisierung ein, die allein oder in Kombination mit einem Befehl der Signale 135b der Speichervorrichtung 110 anzeigt, dass eine Vergleichsoperation durchgeführt werden soll. Zur Veranschaulichung und nicht als Beschränkung können die E/A-Schnittstelle 125 und die E/A-Schnittstelle 115 jeweils einen entsprechenden Kontakt (z. B. einen Stift, eine Kontaktstelle, eine Kugel oder dergleichen) einschließen, der zum Austauschen eines Steuersignals vorgesehen ist, das spezifiziert, ob eine Vergleichsoperation durchgeführt werden soll.
-
Die Signale 135b können ferner Adresseninformationen umfassen, die eine Adresse einer anvisierten Speicherstelle (z. B. Stelle 150) angibt oder anderweitig anzeigt, aus der Daten zum Vergleich mit einem Referenzwert, der vom Host 120 empfangen wird, abgerufen werden sollen. Eine Vergleichsoperation und eine Leseoperation können jeweils unterschiedliche adressierbare Stellen des Speicherarrays 140 anvisieren. In einer Ausführungsform umfassen die Signale 135b ferner den Referenzwert, der mit den Daten verglichen werden soll, die an der anvisierten Stelle des Speicherarrays 110 gespeichert sind. Beispielsweise kann ein Referenzwert 164 von einem Host 120 zu der Speichervorrichtung 110 über einen Datenbus des Interconnect 105 ausgetauscht werden. Der Referenzwert 164 kann in einem Repository 162 gespeichert sein, der in der Vergleichslogik 160 enthalten oder dieser anderweitig zugänglich ist.
-
In Reaktion auf die Signalisierung 135b kann die Zugriffslogik 170 Daten abrufen, die an der Stelle 150 (oder einer anderen anvisierten Stelle des Speicherarrays 140) gespeichert sind. Die abgerufenen Daten können der Vergleichslogik 160 für den Vergleich mit dem Referenzwert 164 bereitgestellt werden. Beispielsweise kann in Reaktion auf die Signale 135b die Zugriffslogik 170 konfiguriert (z. B. rekonfiguriert) werden, um die abgerufenen Daten der Vergleichslogik 170 anstelle oder zusätzlich zur Bereitstellung der abgerufenen Daten an die E/A-Schnittstelle 115 bereitzustellen. Die Vergleichslogik 160 kann Informationen ausgeben, die ein Ergebnis des Datenvergleichs darstellen, wobei eine Antwort 180b an den Host 120 einen solchen Datenvergleich einschließt oder anderweitig auf einem solchen Datenvergleich basiert. In einer Ausführungsform schließt die Antwort 180b ein oder mehrere Bits ein, um anzuzeigen, ob (oder nicht) ein oder mehrere Bits der gespeicherten Daten jeweils mit einem entsprechenden Bit des Referenzwerts 164 übereinstimmen.
-
2 veranschaulicht Elemente eines Verfahrens 200 zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform. Das Verfahren 200 kann beispielsweise durch einen Speicher durchgeführt werden, der einige oder alle Merkmalen der Speichervorrichtung 110 einschließt. Um bestimmte Merkmale von verschiedenen Ausführungsformen zu veranschaulichen, wird das Verfahren 200 hierin mit Bezug auf den Betrieb einer in 3 veranschaulichten Speichervorrichtung 300 erörtert. Jedoch kann eine solche Erörterung erweitert werden, um zusätzlich oder alternativ auf eine beliebige einer Vielzahl von Speichervorrichtungen gemäß verschiedenen Ausführungsformen angewendet zu werden, die die hierin erörterte Vergleichsfunktionalität bereitstellen.
-
Die Speichervorrichtung 300 kann ein Speicherarray 310 umfassen, das eine Vielzahl von Speicherstellen umfasst, die jeweils einer entsprechenden Adresse entsprechen. In einer Ausführungsform umfasst das Verfahren 200 bei 210 das Empfangen an der Speichervorrichtung von Signalen, die eine erste Adresse, die einer ersten Speicherstelle entspricht, einschließen oder anderweitig anzeigen. Bestimmte Merkmale der Speichervorrichtung 300 werden nun in Bezug auf die Verarbeitung solcher Signale gemäß dem Verfahren 200 beschrieben, um entweder eine Leseoperation oder eine Vergleichsoperation durchzuführen.
-
Die Signale können bei 210 über eine E/A-Schnittstellenschaltung der Speichervorrichtung 300 empfangen werden – beispielsweise wenn eine solche E/A-Schnittstellenschaltung eine Adressenschnittstelle 320, eine Befehlsschnittstelle 322 und/oder eine Datenschnittstelle 324 enthält, um auf verschiedene Weise über einen oder mehrere Busse an eine Speichersteuerung (nicht gezeigt) anzukoppeln. Die bei 210 empfangenen Signale können eine Adresse für eine bestimmte adressierbare Stelle eines Speicherarrays 310 (wie durch die veranschaulichte Zeile 315 dargestellt) einschließen, die von den empfangenen Signalen anvisiert wird. Die bei 210 empfangenen Signale können ferner einen Befehl – beispielsweise einen Lesebefehl oder einen Vergleichsbefehl – eines Befehlssatzes umfassen, der von der Speichersteuerung verwendet wird, um die Speichervorrichtung 300 zu steuern. Für einige Arten von Zugriffen können die bei 210 empfangenen Signale ferner Daten umfassen, die dem Zugriff auf die erste Adresse zugeordnet werden sollen. Beispielsweise können solche Daten Daten einschließen, die in die erste Speicherstelle geschrieben werden sollen, oder alternativ einen Referenzdatenwert, der mit Daten verglichen werden soll, die in der ersten Speicherstelle gespeichert sind. Die Speichervorrichtung 310 kann konfiguriert sein, um solche Adressen-, Befehls- und/oder Datensignale einander zuzuordnen, beispielsweise basierend auf einer relativen Zeitsteuerung solcher Signale und/oder basierend auf einer Steuersignalisierung (z. B. eine andere als eine Befehls-, Adressen- und/oder Datensignalisierung), die in den empfangenen Signalen enthalten ist oder diesen anderweitig entspricht.
-
Eine solche Steuersignalisierung kann beispielsweise über eine Steuerschnittstelle 345 der Speichervorrichtung 300 empfangen werden. Die Steuerschnittstelle 345 kann Kontakte umfassen, um auf unterschiedliche Weise Steuersignale von einem Host (nicht gezeigt) zu empfangen, der mit der Speichervorrichtung 300 gekoppelt ist. Solche Steuersignale können zum Beispiel eines oder mehrere von einem Chipauswahlsignal (CS), einem Schreibfreigabesignal (WE), einem Zeilenadressen-Abtastsignal (RAS), einem Spaltenadressen-Abtastsignal (CAS), einem Taktsignal (CLK) und/oder ähnlichem einschließen. Für Fachleute auf dem Gebiet ist es ersichtlich, dass solche Steuersignale herkömmlichen Speichersteuertechniken entsprechen oder von diesen angepasst werden können, wobei deren Einzelheiten hierin nicht erörtert werden und nicht beschränkend auf bestimmte Ausführungsformen wirken.
-
Obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht beschränkt sind, kann ansonsten die herkömmliche Steuersignalisierung modifiziert oder erweitert werden, um der Speichervorrichtung 300 ferner anzuzeigen, wann eine Adresse einem Vergleichszugriff (z. B. im Gegensatz zu einem Lesezugriff) auf den Speicherarray 310 zugeordnet werden soll. Beispielsweise empfängt die Steuerschnittstelle 345 in einigen Ausführungsformen eine vergleichende Steuersignalisierung, die angibt, dass eine zugeordnete Adresse und Daten, die von der Speichervorrichtung 300 empfangen werden, dem Zweck der Durchführung einer Vergleichsoperation durch die Speichervorrichtung 300 dienen. Eine solche vergleichende Steuersignalisierung kann durch eine der vielzähligen Techniken gemäß verschiedenen Ausführungsformen kommuniziert werden. Beispielsweise kann ein dediziertes Vergleichssteuersignal (CMP) über einen Kontakt der Steuerschnittstelle 345 empfangen werden, das lediglich kommuniziert, ob (oder nicht) eine Vergleichsoperation durchgeführt werden soll. Alternativ kann die vergleichende Steuersignalisierung über einen oder mehrere Kontakte der Steuerschnittstelle 345 empfangen werden, die ebenfalls verschiedene Arten von Steuerinformationen zu verschiedenen Zeiten kommunizieren. Zur Veranschaulichung und nicht als Beschränkung kann eine Vergleichsoperation durch einen RAS-Kontakt, einen CAS-Kontakt, einen WE-Kontakt und/oder einen anderen Kontakt der Steuerschnittstelle 345 angezeigt werden, der einen bestimmten Signalwert (beispielsweise hoher Logikpegel oder niedriger Logikpegel) oder eine Folge von Signalwerten empfängt, die aufgrund der Zeitsteuerung, Abfolge und/oder Kombination solcher Signale durch die Speichervorrichtung 300 als Anzeichen dafür erkannt werden, dass eine Vergleichsbefehlsoperation durchgeführt werden soll.
-
In einer Ausführungsform kann die vergleichende Steuersignalisierung, wie die des Signals CMP, der Befehlslogik 340 der Speichervorrichtung 300 bereitgestellt werden. Eine solche vergleichende Steuersignalisierung kann eine Vergleichsoperation als einen Modifikator für einen Befehl – beispielsweise ein Lesebefehl – anzeigen, der über die Befehlsschnittstelle 322 empfangen wird, oder alternativ eine Vergleichsoperation als Ausnahme für eine Abwesenheit eines beliebigen Befehls signalisieren, der über die Befehlsschnittstelle 322 empfangen wird. Jedoch zeigen andere Ausführungsformen eine Vergleichsoperation zur Speichervorrichtung 300 durch andere Mittel als jegliche ausdrückliche Steuersignalmechanismen an. Beispielsweise kann die Befehlslogik 340 der Speichervorrichtung 300 über eine Befehlsschnittstelle 322 einen dedizierten Vergleichsbefehl empfangen, der ausdrücklich anzeigt, dass eine Vergleichsoperation durchgeführt werden soll. In einer solchen Ausführungsform ist keine zusätzliche Steuersignalisierung wie das Signal CMP vorhanden, um anzuzeigen, dass eine Vergleichsoperation durchgeführt werden soll.
-
Die Zugriffslogik der Speichervorrichtung 300 kann ferner einen Eingangspfad einschließlich einer Schaltung umfassen, um Daten zum Schreiben in den Speicherarray 310 zu kommunizieren. Eine solche Zugriffslogik kann ferner einen Ausgangspfad einschließlich einer Schaltung umfassen, um Daten zu kommunizieren, die aus dem Speicherarray 310 abgerufen wurden – beispielsweise, damit ein Host solche abgerufenen Daten lesen kann. Zur Veranschaulichung und nicht als Beschränkung kann eine Eingangspfadschaltung der Speichervorrichtung 300 einen Eingangspuffer 350 umfassen, um Daten vorübergehend zu speichern, die über die Datenschnittstelle 324, einen Seriell-zu-Parallel-Wandler (S2P) 352 und einen Schreibpuffer 354 empfangen werden, die mit den Ausgangsdaten an Leseverstärker 334 gekoppelt sind. Alternativ oder zusätzlich kann die Ausgangspfadschaltung der Speichervorrichtung 300 einen Vorverstärker (PreAmp) 360 umfassen, der gekoppelt ist, um Daten von den Leseverstärkern 334, einem Parallel-zu-Seriell-Wandler (P2S) 362 und einem Ausgangspuffer 364 zu empfangen, um Daten vorübergehend zu speichern, bevor sie an die Datenschnittstelle 324 gesendet werden. Jedoch dienen solche Eingangspfadschaltungen und Ausgangspfadschaltungen lediglich der Veranschaulichung einer Implementierung und sind nicht beschränkend für bestimmte Ausführungsformen. Der Betrieb einer solchen Schaltung kann von herkömmlichen Speicherzugriffsmechanismen angepasst werden, die hierin nicht ausführlich beschrieben werden, um ein Verdecken von Merkmalen bestimmter Ausführungsformen zu vermeiden.
-
Die Speichervorrichtung 300 kann ferner eine Schaltung umfassen, wie durch die veranschaulichende Moduslogik 370 dargestellt, um Eingangspfadschaltungen und/oder Ausgangspfadschaltungen der Speichervorrichtung 300 auf verschiedene Weise zu konfigurieren (z. B. rekonfigurieren), um die Leistungsfähigkeit einer Vergleichsoperation zu berücksichtigen – beispielsweise im Gegensatz zu einer Leseoperation. Die Moduslogik 370 kann gekoppelt werden, um die Kommunikation von Daten entlang wenigstens eines Teils des Eingangspfads von der Datenschnittstelle 324 zu dem Speicherarray 310 zu erleichtern und/oder zu modifizieren – beispielsweise, wenn die Schaltung der Moduslogik 370 zwischen dem Eingangspuffer 350 und dem S2P 352 gekoppelt ist. Wenn ein Schreibzugriff auf den Speicherarray 310 stattfinden soll, kann die Moduslogik 370 (z. B. in Reaktion auf die Befehlslogik 340) einen oder mehrere Datenkommunikationspfade von dem Eingangspuffer 350 und dem S2P 352 entkoppeln, konfigurieren oder anderweitig ermöglichen. Im Gegensatz dazu kann, um eine Vergleichsoperation an dem Speicherarray 310 zu erleichtern, die Moduslogik 370 stattdessen einen Pfad für Referenzdaten, die zwischen der Datenschnittstelle 324 und dem Referenzdaten-Repository 372 ausgetauscht werden sollen, konfigurieren – d. h. anstelle solche Referenzdaten zum Schreiben an den Speicherarray 310 zu verweisen.
-
Alternativ oder zusätzlich kann die Moduslogik 370 gekoppelt sein, um die Kommunikation von Daten entlang wenigstens eines Teils des Ausgangspfads von dem Speicherarray 310 zu der Datenschnittstelle 324 zu erleichtern und/oder zu modifizieren – beispielsweise wenn die Schaltung der Moduslogik 370 zwischen dem P2S 362 und dem Ausgangspuffer 364 gekoppelt ist. Wenn ein Lesezugriff des Speicherarrays 310 stattfinden soll, kann die Moduslogik 370 (z. B. in Reaktion auf die Befehlslogik 340) einen oder mehrere Kommunikationspfade für die abgerufenen Daten, die zwischen dem P2S 362 und dem Ausgangspuffer 364 ausgetauscht werden sollen, entkoppeln, konfigurieren oder anderweitig ermöglichen. Im Gegensatz dazu kann, um eine Vergleichsoperation an dem Speicherarray 310 zu erleichtern, die Moduslogik 370 einen Pfad für solche abgerufenen Daten konfigurieren, die zusätzlich oder alternativ an den Komparator 374 zum Vergleich mit den Referenzdaten kommuniziert werden sollen, die in dem Referenzdaten-Repository 372 gespeichert sind. Die Konfigurierbarkeit solcher verschiedenen Pfade ist funktionell in 3 in Form von Schaltelementen der Moduslogik 370 dargestellt. Jedoch können beliebige einer Vielzahl von herkömmlichen Schaltern oder einer anderen derartigen Konfigurationsschaltung angepasst werden, um eine solche Funktionalität gemäß verschiedenen Ausführungsformen bereitzustellen.
-
In einer Ausführungsform spricht die Moduslogik 370 auf eine von der Befehlslogik 340 empfangene Signalisierung an, wobei eine solche Signalisierung eine bestimmte von einer Leseoperation und einer Vergleichsoperation anzeigen kann. In einer anderen Ausführungsform kann die Moduslogik 370 jedoch auf ein beliebiges einer Vielzahl von zusätzlichen oder alternativen Signalen ansprechen, wie etwa das Signal CMP oder eine andere derartige vergleichende Steuersignalisierung. Die Moduslogik 370 kann eine Schaltlogik und/oder andere Konfigurationsschaltung umfassen, um einen Modus einzustellen, wodurch Daten, die entlang des Eingangspfads von dem Speicherarray 310 kommuniziert werden, an einen Komparator 374 kommuniziert werden sollen – beispielsweise zusätzlich zu oder anstelle der Kommunikation an die Datenschnittstelle 324. Alternativ oder zusätzlich kann ein solcher Modus für Daten dienen, die entlang des Ausgangspfads von der Datenschnittstelle 324 weg kommuniziert werden, um an ein Referenzdaten-Repository 372 kommuniziert zu werden – beispielsweise anstelle des Schreibens in den Speicherarray 310.
-
Das Verfahren 200 kann das Bestimmen umfassen, ob eine Vergleichsoperation in Reaktion auf die bei 210 empfangenen Signale durchgeführt werden soll – beispielsweise einschließlich des Auswählens aus einem einer Vielzahl von Zugriffstypen einschließlich eines Vergleichszugriffs und eines Lesezugriffs (der sich von einem Vergleichszugriff unterscheidet). Um Merkmale eines Vergleichszugriffs auf den Speicher zu veranschaulichen, wird das Verfahren 200 als optional entweder einen Vergleichszugriff oder einen Lesezugriff durchführend dargestellt. Es versteht sich jedoch, dass bestimmte Ausführungsformen lediglich einen Vergleichszugriff durchführen. Zur Veranschaulichung und nicht als Beschränkung kann das Verfahren 200 bei 215 das Bestimmen einschließen, ob die bei 210 empfangenen Signale eine mögliche durchzuführende Vergleichsoperation anzeigen. Das Verfahren 200 kann ferner bei 240 das Bestimmen umfassen, ob die bei 210 empfangenen Signale eine mögliche durchzuführende Leseoperation anzeigen. Das Bestimmen bei 215 und/oder das Bestimmen bei 240 kann durch eine Zugriffslogik der Speichervorrichtung 300 (wie etwa die Befehlslogik 340) basierend auf einer Befehls- und/oder vergleichenden Steuersignalisierung durchgeführt werden, die in den bei 210 empfangenen Signalen enthalten ist. Die bestimmte Sequenz des Bestimmens bei 215 und des Bestimmens bei 240 dient lediglich der Veranschaulichung und ist nicht beschränkend für bestimmte Ausführungsformen.
-
Wenn bei 215 bestimmt wird, dass eine Vergleichsoperation basierend auf den empfangenen Signalen durchgeführt werden soll, kann das Verfahren 400 die Durchführung einer derartigen Vergleichsoperation einleiten. Beispielsweise kann das Verfahren 200 bei 220 das Abrufen von Daten umfassen, die an der ersten Speicherstelle gespeichert sind. Das Abrufen bei 220 kann eine oder mehrere Operationen einschließen, die ebenfalls für einen Lesezugriff durchgeführt werden – beispielsweise gemäß herkömmlichen Techniken. Zur Veranschaulichung und nicht als Beschränkung kann das Abrufen von Daten aus einer anvisierten Zeile 315 einen Zeilendekodierer 330 und einen Spaltendekodierer 332 einschließen, die die jeweiligen Adresseninformationen der empfangenen Signale empfangen. Die Dekodierer 330, 332 können solche Adresseninformationen auf verschiedene Weise dekodieren, um Signale zur Aktivierung von Speicherzellen zu erzeugen, die die Zeile 315 umfassen. Basierend auf solchen dekodierten Adresseninformationen können die Leseverstärker 334 der Speichervorrichtung 300 Signale generieren, die Bitwerte darstellen, die auf unterschiedliche Weise in einigen oder allen Speicherzellen der Zeile 315 gespeichert sind.
-
In Reaktion auf das Erkennen einer Vergleichsoperation (wie bei 215) kann der Moduslogik 370 signalisiert werden, einen Modus für die Vergleichsoperation zu konfigurieren (oder einen solchen Modus aufrechtzuerhalten). Eine solche Konfiguration kann das Einrichten eines Pfads einschließen, um in dem Referenzdaten-Repository 372 einen über die Datenschnittstelle 324 empfangenen Eingangsdatenwert zu speichern, der in den bei 210 empfangenen Signalen enthalten ist. Eine solche Konfiguration kann ferner das Einrichten eines Pfads umfassen, um an den Komparator 374 die von der anvisierten Zeile 315 abgerufenen Daten zu senden.
-
Das Verfahren 200 kann ferner bei 225 das Durchführen – beispielsweise basierend auf der Konfiguration durch die Moduslogik 370 – eines Vergleichs der bei 220 abgerufenen Daten und eines Referenzdatenwerts umfassen, der in den empfangenen Signalen enthalten ist. In einem Szenario, in dem die bei 210 empfangenen Signale nicht für eine Vergleichsoperation dienen (z. B. wenn sie stattdessen für eine Leseoperation dienen), können die Signale keinen solchen Referenzdatenwert enthalten. Basierend auf dem bei 225 durchgeführten Vergleich kann das Verfahren 400 bei 230 von der Speichervorrichtung Informationen senden, die ein Ergebnis des Vergleichs darstellen.
-
In einer Ausführungsform schließen solche Vergleichsergebnisinformationen nur einen einzigen Bitwert ein, den der Host aufgrund seiner Konfiguration als Anzeichen dafür erkennen kann, ob (oder nicht) der Referenzdatenwert und der gespeicherte Wert einander gleichen. In einer anderen Ausführungsform enthält das Ergebnis mehrere Bits von Vergleichsinformationen. Beispielsweise kann der bei 225 durchgeführte Vergleich das Vergleichen eines gespeicherten Acht-Bit-Datenwerts X[0:7] mit einem Acht-Bit-Referenzdatenwert Y[0:7] einschließen. In einer solchen Ausführungsform kann ein Ergebnis des Vergleichs ein Acht-Bit-Wert Z[0:7] sein, wobei jedes Bit anzeigt, ob die entsprechenden Bits von X[0:7] und Y[0:7] einander gleichen. Zur Veranschaulichung und nicht als Beschränkung kann Z[0] gleich (X[0] ⊕ Y[0]) sein, Z[1] gleich (X[1] ⊕ Y[1]) etc. Gemäß verschiedenen Ausführungsformen kann ein beliebiger einer Vielzahl von zusätzlichen oder alternativen Arten von Vergleichen bei 225 durchgeführt werden und/oder können Vergleichsergebnisinformationen bei 230 gesendet werden. Einige oder alle Vergleichsergebnisinformationen können beispielsweise bei 230 über eine dedizierte Treffer/Fehltreffer-Ausgabe 376 gesendet werden. Alternativ können einige oder alle Vergleichsergebnisinformationen über andere Mittel kommuniziert werden, wie etwa die Datenschnittstelle 324.
-
In einigen Ausführungsformen umfasst das Verfahren 200 ferner Operationen, um einen anderen Zugriff als einen Vergleichszugriff zu implementieren. Wenn beispielsweise bei 240 bestimmt wird, dass eine Leseoperation basierend auf den empfangenen Signalen durchgeführt werden soll, kann das Verfahren 200 das Durchführen einer solchen Leseoperation einleiten. Andernfalls kann das Verfahren 200 enden oder alternativ Operationen (nicht gezeigt) durchführen, um einen Speicherzugriff, der kein Vergleichszugriff oder Lesezugriff ist, zu implementieren.
-
Das Durchführen eines Lesezugriffs kann bei 245 das Abrufen der Daten einschließen, die an der ersten Speicherstelle gespeichert sind. Das Abrufen bei 220 kann eine oder mehrere Datenabrufoperationen umfassen, wie jene, die ansonsten bei 220 durchgeführt werden. In Reaktion auf das Erkennen einer Leseoperation (wie bei 240) kann der Moduslogik 370 signalisiert werden, einen Modus für die Leseoperation zu konfigurieren (oder einen solchen Modus aufrechtzuerhalten). Eine solche Konfiguration kann das Einrichten eines Pfads einschließen, der die Leseverstärker 334 kommunikativ koppelt, um die abgerufenen Daten der Datenschnittstelle 324 bereitzustellen. Das Verfahren 200 kann ferner bei 250 das Senden aus der Speichervorrichtung der aus der ersten Speicherstelle gelesenen Daten umfassen. Eine solche Leseoperation kann sich von einer Vergleichsoperation zumindest insofern unterscheiden, als dass die Leseoperation unabhängig von jedem an der Speichervorrichtung 300 durchgeführten Vergleich durchgeführt werden kann. Obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht beschränkt sind, kann eine Vergleichsoperation ferner das Kommunizieren des gespeicherten Datenwerts an einen Host umfassen. In einer solchen Ausführungsform kann die Vergleichsoperation als eine Art von Leseoperation (die ebenfalls Vergleichsinformationen an der Speichervorrichtung bestimmt) betrachtet werden, die von einer anderen Art von Leseoperation zu unterscheiden ist (die auf die Bestimmung solcher Vergleichsinformationen an der Speichervorrichtung verzichtet).
-
4 veranschaulicht Elemente eines Verfahrens 400 zum Steuern einer Speichervorrichtung gemäß einer Ausführungsform. Das Verfahren 400 kann durchgeführt werden, um eine Speichervorrichtung zu steuern, die einige oder alle Funktionen der Speichervorrichtung 110 bereitstellt – beispielsweise, wenn das Verfahren 400 durch die Steuerlogik 130 durchgeführt wird. Eine Speichervorrichtung, die gemäß dem Verfahren 400 gesteuert wird, kann in einer Ausführungsform selbst das Verfahren 200 durchführen. Um bestimmte Merkmale von verschiedenen Ausführungsformen zu veranschaulichen, wird das Verfahren 200 hierin mit Bezug auf eine in 5 veranschaulichte Speichersteuerung 500 erörtert. Jedoch kann eine solche Erörterung erweitert werden, um zusätzlich oder alternativ auf eine beliebige einer Vielzahl von Host-Vorrichtungen angewendet zu werden, die eine Speichervorrichtung steuern, um wie hierin erörtert Vergleichsinformationen zu bestimmen.
-
In einer Ausführungsform umfasst das Verfahren 400 bei 410 das Senden erster Signale, die eine Vergleichsoperation, einen Referenzdatenwert und eine erste Adresse anzeigen, die einer ersten Stelle eines Speicherarrays der Speichervorrichtung entspricht, an eine Speichervorrichtung. In der beispielhaften Ausführungsform der Speichersteuerung 500 schließt die E/A-Schaltung eine Adressenschnittstelle 512, um die erste Adresse zu senden oder anderweitig anzuzeigen, und eine Datenschnittstelle 516 ein, um den Referenzdatenwert zu senden oder anderweitig anzuzeigen. Die Adressenbestimmungslogik 520 und ein Referenzdaten-Repository 540 können den ersten Adressen- und Referenzdatenwert bereitstellen – beispielsweise in Reaktion auf eine Speicherzugriffsanforderung von einer zentralen Verarbeitungseinheit oder einer anderen Host-Logik (nicht gezeigt), die mit der Speichersteuerung 500 gekoppelt oder integriert ist. In einigen Ausführungsformen kann die Vergleichsoperation durch Befehlssignale angezeigt werden, die über die Befehlsschnittstelle 514 und/oder durch ein oder mehrere über die Steuersignalschnittstelle 518 ausgetauschte Vergleichssteuersignale ausgetauscht werden. Die Befehlslogik 530 der Speichersteuerung 500 kann solche Befehlssignale basierend auf einer Speicherzugriffsanforderung von der Host-Logik generieren. Bestimmte Ausführungsformen sind nicht in Bezug auf eine bestimmte Technik beschränkt, durch welche die Speichersteuerung 500 eine bestimmte Adresse und/oder einen bestimmten Referenzwert zum Durchführen einer Vergleichsoperation bestimmt.
-
Die ersten Signale, die bei 410 gesendet werden, können beispielsweise Signalen entsprechen, die bei 215 bestimmt werden, um eine Vergleichsoperation anzuzeigen. Basierend auf den ersten Signalen führt die Speichervorrichtung einen Vergleich des Referenzdatenwerts und der an der ersten Stelle gespeicherten Daten durch. Das Verfahren 400 umfasst ferner bei 420, in Reaktion auf die ersten Signale, das Empfangen von Informationen, die ein Ergebnis des an der Speichervorrichtung durchgeführten Vergleichs darstellen, von der Speichervorrichtung. In einer Ausführungsform kann die Bewertungslogik 550 solche Informationen verarbeiten, um beispielsweise zu bestimmen, ob zusätzliche Vergleichsoperationen durchgeführt werden müssen. Eine solche Verarbeitung kann eine Bewertungslogik 550 einschließen, die bestimmt, ob eine nachfolgende Vergleichsoperation eine andere Speicherstelle anvisieren soll und/oder ob eine nachfolgende Vergleichsoperation auf einem unterschiedlichen Referenzdatenwert basieren soll. Die bestimmten Einzelheiten einer solchen Verarbeitung können von implementierungsspezifischen Anforderungen abhängen und sind nicht auf bestimmte Ausführungsformen beschränkt.
-
Obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht beschränkt sind, kann das Verfahren 400 ferner zusätzliche Operationen umfassen, um einen Lesezugriff (oder einen anderen Zugriff) der Speichervorrichtung zu implementieren. Zur Veranschaulichung und nicht als Beschränkung kann das Verfahren 400 ferner bei 430 das Senden zweiter Signale an die Speichervorrichtung umfassen, wobei die zweiten Signale die erste Adresse (oder alternativ eine Adresse für eine andere Speicherstelle) und eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist. Alternativ können die zweiten Signale, die bei 430 gesendet werden, für den Lesezugriff eine Adresse des Speichers anvisieren, die nicht die erste Adresse ist. In Reaktion auf die zweiten Signale kann die Speichervorrichtung zweite Daten abrufen, die an der ersten Stelle gespeichert sind. Die zweiten Daten können die ersten Daten sein, die von den ersten Signalen, die bei 410 gesendet wurden, anvisiert werden, obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht beschränkt sind. In einer Ausführungsform umfasst das Verfahren 400 ferner bei 440 das Empfangen der zweiten Daten von der Speichervorrichtung in Reaktion auf die zweiten Signale.
-
6 zeigt ein Zeitsteuerdiagramm 600, das Signalaustausche zwischen einer Speichersteuerung und einer Speichervorrichtung gemäß einer Ausführungsform veranschaulicht. Die in dem Zeitsteuerdiagramm 600 dargestellte Signalisierung kann beispielsweise zwischen der Steuerlogik 130 (z. B. einer Speichersteuerung) und der Speichervorrichtung 110 ausgetauscht werden.
-
In dem Zeitsteuerdiagramm 600 regelt ein Taktsignal CLK eine Zeitsteuerung der Speichervorrichtung. Die Befehlssignalisierung CMD des Zeitsteuerdiagramms 600 stellt ein oder mehrere Befehlssignale dar, wie etwa diejenigen, die mit der Befehlsschnittstelle 322 und/oder der Befehlsschnittstelle 514 ausgetauscht werden, und die Adressensignalisierung eines (Y + 1)-Bit-Adressenbusses ADD[0:Y] stellt ein oder mehrere Adressensignale dar, wie etwa diejenigen, die über die Adressenschnittstelle 320 und/oder die Adressenschnittstelle 512 ausgetauscht werden. Die Befehle der CMD können unter Verwendung einer Kombination eines oder mehrerer dedizierter Befehlssignalkontakte und in einigen Ausführungsformen eines oder mehrerer zusätzlicher Steuersignalkontakte (z. B. einschließlich RAS, CAS, WE und/oder dergleichen) kommuniziert werden. Die Datensignalisierung eines (Z + 1)-Bit-Datenbusses DQ[0:Z] des Zeitsteuerdiagramms 600 stellt Datensignale dar, wie etwa diejenigen, die über die Datenschnittstelle 324 und/oder die Datenschnittstelle 516 ausgetauscht werden.
-
Zu einem Zeitpunkt t0 überträgt die Befehlssignalisierung CMD einen Aktivierungsbefehl (ACT) in Vorbereitung auf die zuzugreifenden DRAM-Zellen der Speichervorrichtung. Der ACT-Befehl kann mit den Zeilenadresseninformationen (Row) übereinstimmen, die von dem signalisierenden ADD kommuniziert werden. Ein Vergleichsbefehl CMP kann anschließend durch die Befehlssignalisierung CMD kommuniziert werden – beispielsweise wenn der CMP zeitlich gesteuert wird, um den Ablauf einer Zeitbeschränkung tRCD zu berücksichtigen. In einer Ausführungsform ist tRCD eine Mindestzeit, die zwischen dem Ermitteln einer Zeilenadresse durch die Speichersteuerung und einem nachfolgenden Ermitteln einer Spaltenadresse erforderlich ist. In dem Beispiel des Zeitsteuerdiagramms 600 erfordert die tRCD-Beschränkung, dass eine nachfolgende Spaltenadresseninformation (Col) frühestens bei einer ansteigenden Flanke des CLK ermittelt wird, die zwischen der Zeit t3 und der Zeit t4 liegt.
-
Die Befehlssignalisierung CMD kann einen Vergleichsbefehl CMP einschließen, der zum Beispiel gleichzeitig mit der Spaltenadressensignalisierung Col kommuniziert wird. Ein Referenzdatenwert (Entry) kann ebenfalls als Teil der Datensignalisierung von DQ[0:Z] gesendet werden – beispielsweise auch gleichzeitig mit dem CMP. Nach einer Lese-Latenzzeit (RL) können Vergleichsergebnisinformationen durch die Speichervorrichtung übertragen werden. Die Zeit RL wird durch die Zeit bestimmt, die von der Speichervorrichtung benötigt wird, um einen Datenvergleichsmodus zu konfigurieren, Daten aus einer Speicherstelle, die durch Row und Col anvisiert wird, abzurufen und solche Daten mit dem Referenzdatenwert Entry zu vergleichen. Obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht beschränkt sind, können die Vergleichsergebnisinformationen durch eine dedizierte Treffer-Ausgabe kommuniziert werden, die sich von den Signalleitungen zum Austauschen von Datensignalen von DQ[0:Z] unterscheidet. Zur Veranschaulichung und nicht als Beschränkung kann eine Folge von Treffer-Bits, einschließlich der Bits M0, M1, ..., M7, jeweils angeben, ob (oder nicht) ein jeweiliges Bitpaar – einschließlich eines Bits von gespeicherten Daten und eines entsprechenden Bits von Referenzdaten – einander gleicht. In einer anderen Ausführungsform kann DQ[0:Z] verwendet werden, um andere solche Vergleichsergebnisinformationen, Fehlerkorrekturinformationen und/oder dergleichen zu kommunizieren. In der beispielhaften Ausführungsform, die in dem Zeitsteuerdiagramm 600 dargestellt ist, wird DQ[0:Z] zum Auslesen der Datenbits an den Host verwendet – beispielsweise einschließlich der Bits D0 bis D7 –, die aus dem Speicherarray abgerufen wurden.
-
7 ist ein Blockdiagramm einer Ausführungsform eines Computersystems, in dem ein Speichervergleichszugriff implementiert werden kann. Das System 700 stellt eine Computervorrichtung gemäß einer hierin beschriebenen Ausführungsform dar und kann ein Laptop-Computer, ein Desktop-Computer, ein Server, ein Gaming- oder Unterhaltungs-Steuersystem, ein Scanner, ein Kopierer, ein Drucker oder eine andere elektronische Vorrichtung sein. Das System 700 kann einen Prozessor 720 einschließen, der Verarbeitung, Betriebsmanagement und Ausführung von Befehlen für das System 700 bereitstellt. Der Prozessor 720 kann jede beliebige Art von Mikroprozessor, zentraler Verarbeitungseinheit (CPU), Verarbeitungskern oder andere Verarbeitungshardware einschließen, um die Verarbeitung für das System 700 bereitzustellen. Der Prozessor 720 steuert den Gesamtbetrieb des Systems 700 und kann einen oder mehrere programmierbare Allzweck- oder Spezialmikroprozessoren, Digitalsignalprozessoren (DSPs), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PLDs) oder dergleichen darstellen oder einschließen oder eine Kombination solcher Vorrichtungen sein.
-
Das Speicher-Untersystem 730 stellt den Hauptspeicher des Systems 700 dar und stellt einen vorübergehenden Speicher für den durch den Prozessor 720 auszuführenden Code oder Datenwerte bereit, die beim Ausführen einer Routine verwendet werden sollen. Das Speicher-Untersystem 730 kann eine oder mehrere Speichervorrichtungen einschließen, wie etwa einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, eine oder mehrere Varianten von Direktzugriffsspeicher (RAM) oder andere Speichervorrichtungen oder eine Kombination solcher Vorrichtungen. Das Speicher-Untersystem 730 speichert und hostet unter anderem das Betriebssystem (OS) 736, um eine Softwareplattform zum Ausführen von Befehlen in dem System 700 bereitzustellen. Zusätzlich werden andere Anweisungen 738 gespeichert und aus dem Speicher-Untersystem 730 ausgeführt, um die Logik und die Verarbeitung des Systems 700 bereitzustellen. Das OS 736 und die Anweisungen 738 werden durch den Prozessor 720 ausgeführt.
-
Das Speicher-Untersystem 730 kann eine Speichervorrichtung 732 einschließen, in der es Daten, Anweisungen, Programme oder andere Elemente speichert. In einer Ausführungsform enthält das Speicher-Untersystem die Speichersteuerung 734, die eine Speichersteuerung in Übereinstimmung mit jeder hierin beschriebenen Ausführungsform ist und die an dem Speicher 732 berechnete Vergleichsergebnisinformationen empfängt.
-
Der Prozessor 720 und das Speicher-Untersystem 730 sind mit dem Bus/Bussystem 710 gekoppelt. Der Bus 710 ist eine Abstraktion, die einen oder mehrere getrennte physikalische Busse, Kommunikationsleitungen/Schnittstellen und/oder Punkt-zu-Punkt-Verbindungen darstellt, die durch geeignete Brücken, Adapter und/oder Steuerungen verbunden sind. Daher kann der Bus 710 beispielsweise einen oder mehrere eines Systembusses, eines Peripheral-Component-Interconnect(PCI)-Busses, eines HyperTransport- oder Industrial-Standard-Architecture(ISA)-Busses, eines Small-Computer-System-Interface(SCSI)-Busses oder eines Busses gemäß Institute of Electrical and Electronics Engineers (IEEE) Standard 1394 (gemeinhin als „FireWire“ bezeichnet) einschließen. Die Busse von Bus 710 können auch Schnittstellen in der Netzwerkschnittstelle 750 entsprechen.
-
Das System 700 kann auch eine oder mehrere Eingabe/Ausgabe(E/A)-Schnittstellen 740, eine Netzwerkschnittstelle 750, eine oder mehrere interne Massenspeichervorrichtungen 760 und eine Peripherieschnittstelle 770 einschließen, die mit dem Bus 710 gekoppelt sind. Die E/A-Schnittstelle 740 kann eine oder mehrere Schnittstellenkomponenten einschließen, durch die ein Benutzer mit dem System 700 (z. B. Video-, Audio- und/oder alphanumerische Schnittstellen) interagiert. Die Netzwerkschnittstelle 750 stellt dem System 700 die Möglichkeit bereit, mit entfernten Vorrichtungen (z. B. Servern, anderen Computervorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 750 kann einen Ethernet-Adapter, Drahtlosverbindungs-Komponenten, USB (universeller serieller Bus) oder andere drahtgebundene oder drahtlose auf Standards basierende oder proprietäre Schnittstellen einschließen.
-
Der Speicher 760 kann ein beliebiges herkömmliches Medium zum Speichern großer Datenmengen auf nichtflüchtige Weise sein oder einschließen, wie etwa eine oder mehrere Magnetplatten, Festkörper- oder optische Platten oder eine Kombination davon. Der Speicher 760 enthält Code oder Anweisungen und Daten 762 in einem persistenten Zustand (d. h. der Wert bleibt trotz unterbrochener Energieversorgung an das System 700 erhalten). Der Speicher 760 kann allgemein als ein „Speicher“ betrachtet werden, obwohl der Speicher 730 der Ausführungs- oder Arbeitsspeicher ist, um dem Prozessor 720 Anweisungen bereitzustellen. Während der Speicher 760 nichtflüchtig ist, kann der Speicher 730 einen flüchtigen Speicher einschließen (d. h. der Wert oder der Zustand der Daten ist unbestimmt, wenn die Energieversorgung des Systems 700 unterbrochen wird).
-
Die Peripherieschnittstelle 770 kann eine beliebige Hardwareschnittstelle einschließen, die vorstehend nicht spezifisch erwähnt ist. Peripheriegeräte beziehen sich allgemein auf Vorrichtungen, die sich abhängig mit dem System 700 verbinden. Eine abhängige Verbindung ist eine, bei der das System 700 die Software- und/oder Hardwareplattform bereitstellt, auf der die Operation ausgeführt wird und mit der ein Benutzer interagiert.
-
8 ist ein Blockdiagramm einer Ausführungsform einer mobilen Vorrichtung, in der ein Vergleichszugriff auf einen Speicher implementiert werden kann. Die Vorrichtung 800 stellt eine mobile Computervorrichtung dar, wie etwa einen Tablet-Computer, ein Mobiltelefon oder ein Smartphone, einen drahtlos-aktivierten E-Reader oder eine andere mobile Vorrichtung. Es versteht sich, dass einige der Komponenten allgemein gezeigt sind und nicht alle Komponenten einer derartigen Vorrichtung in der Vorrichtung 800 gezeigt sind.
-
Die Vorrichtung 800 kann den Prozessor 810 einschließen, der die primären Verarbeitungsoperationen der Vorrichtung 800 durchführt. Der Prozessor 810 kann eine oder mehrere physikalische Vorrichtungen, wie etwa Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikvorrichtungen oder andere Verarbeitungsmittel einschließen. Die Verarbeitungsoperationen, die durch den Prozessor 810 durchgeführt werden, schließen das Ausführen einer Betriebsplattform oder eines Betriebssystems ein, auf denen Anwendungen und/oder Gerätefunktionen ausgeführt werden. Die Verarbeitungsoperationen umfassen Operationen in Bezug auf E/A (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen, Operationen in Bezug auf die Leistungsverwaltung und/oder Operationen in Bezug auf das Verbinden der Vorrichtung 800 mit einer anderen Vorrichtung. Die Verarbeitungsoperationen können auch Operationen in Bezug auf Audio-E/A und/oder Anzeigen-E/A einschließen.
-
In einer Ausführungsform umfasst die Vorrichtung 800 ein Audio-Untersystem 820, das die Hardware- (z. B. Audio-Hardware und Audio-Schaltungen) und Software-Komponenten (z. B. Treiber, Codecs) darstellt, die mit dem Bereitstellen von Audiofunktionen für die Computervorrichtung verbunden sind. Audio-Funktionen können den Lautsprecher- und/oder Kopfhörerausgang sowie den Mikrofoneingang einschließen. Vorrichtungen für solche Funktionen können in die Vorrichtung 800 integriert oder mit der Vorrichtung 800 verbunden sein. In einer Ausführungsform interagiert ein Benutzer mit der Vorrichtung 800 durch Bereitstellen von Audiobefehlen, die von dem Prozessor 810 empfangen und verarbeitet werden.
-
Das Anzeige-Untersystem 830 stellt Hardware- (z. B. Anzeigevorrichtungen) und Software-Komponenten (z. B. Treiber) dar, die eine visuelle und/oder taktile Anzeige für einen Benutzer bereitstellen, um mit der Computervorrichtung zu interagieren. Das Anzeige-Untersystem 830 kann eine Anzeigeschnittstelle 832 einschließen, welche die bestimmte Bildschirm- oder Hardwarevorrichtung einschließen kann, die verwendet wird, um eine Anzeige für einen Benutzer bereitzustellen. In einer Ausführungsform schließt die Anzeigeschnittstelle 832 eine von dem Prozessor 810 getrennte Logik ein, um zumindest eine Verarbeitung in Bezug auf die Anzeige durchzuführen. In einer Ausführungsform schließt das Anzeige-Untersystem 830 eine Touchscreen-Vorrichtung ein, die sowohl den Ausgang als auch Eingang für einen Benutzer bereitstellt.
-
Die E/A-Steuerung 840 stellt Hardwarevorrichtungen und Softwarekomponenten in Bezug auf die Interaktion mit einem Benutzer dar. Die E/A-Steuerung 840 kann betrieben werden, um Hardware zu verwalten, die Teil des Audio-Untersystems 820 und/oder des Audio-Untersystems 830 ist. Zusätzlich veranschaulicht die E/A-Steuerung 840 einen Verbindungspunkt für zusätzliche Vorrichtungen, welche sich mit der Vorrichtung 800 verbinden, durch die ein Benutzer mit dem System interagieren könnte. Beispielsweise können Vorrichtungen, die an die Vorrichtung 800 angeschlossen werden können, Mikrofonvorrichtungen, Lautsprecher oder Stereosysteme, Videosysteme oder andere Anzeigevorrichtungen, Tastatur- oder Zifferntastaturvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit bestimmten Anwendungen umfassen, wie etwa Kartenleser oder andere Vorrichtungen.
-
Wie vorstehend erwähnt, kann die E/A-Steuerung 840 mit dem Audio-Untersystem 820 und/oder dem Anzeige-Untersystem 830 interagieren. Beispielsweise kann eine Eingabe durch ein Mikrofon oder eine andere Audiovorrichtung eine Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen der Vorrichtung 800 bereitstellen. Zusätzlich kann die Audioausgabe anstelle der oder zusätzlich zur Anzeigeausgabe bereitgestellt werden. In einem anderen Beispiel wirkt die Anzeigevorrichtung, wenn das Anzeige-Untersystem einen Touchscreen einschließt, auch als Eingabevorrichtung, die zumindest teilweise von der E/A-Steuerung 840 verwaltet werden kann. Es können auch zusätzliche Tasten oder Schalter an der Vorrichtung 800 vorhanden sein, um die von der E/A-Steuerung 840 verwalteten E/A-Funktionen bereitzustellen.
-
In einer Ausführungsform verwaltet die E/A-Steuerung 840 Vorrichtungen, wie etwa Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren, Gyroskope, ein globales Positionierungssystem (GPS) oder andere Hardware, die in der Vorrichtung 800 enthalten sein können. Die Eingabe kann ein Teil der direkten Benutzerinteraktion sein sowie umgebungsbezogene Eingaben für das System bereitstellen, um dessen Betrieb zu beeinflussen (wie beispielsweise Filtern nach Rauschen, Anpassen von Anzeigevorrichtungen für die Helligkeitserkennung, Anwenden eines Blitzes für eine Kamera oder andere Merkmale).
-
In einer Ausführungsform schließt die Vorrichtung 800 eine Leistungsverwaltung 850 ein, die den Leistungsverbrauch der Batterie, das Laden der Batterie und die Merkmale in Bezug auf den Energiesparbetrieb verwaltet. Das Speicher-Untersystem 860 kann die Speichervorrichtung(en) 862 zum Speichern von Informationen in der Vorrichtung 800 einschließen. Das Speicher-Untersystem 860 kann nichtflüchtige (der Zustand ändert sich nicht, wenn die Leistungsversorgung der Speichervorrichtung unterbrochen wird) und/oder flüchtige (der Zustand ist unbestimmt, wenn die Leistungsversorgung der Speichervorrichtung unterbrochen wird) Speichervorrichtungen einschließen. Der Speicher 860 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (ob langfristig oder vorübergehend) in Bezug auf die Ausführung der Anwendungen und Funktionen des Systems 800 speichern.
-
In einer Ausführungsform schließt das Speicher-Untersystem 860 eine Speichersteuerung 864 ein (die auch als Teil der Steuerung des Systems 800 betrachtet werden könnte und möglicherweise als Teil des Prozessors 810 betrachtet werden kann). Die Speichersteuerung 864 kann die Signalisierung kommunizieren, um zu bewirken, dass der Speicher 862 lokal einen in dem Speicher 862 gespeicherten Datenwert mit einem Referenzwert vergleicht, der dem Speicher 862 bereitgestellt wird.
-
Die Konnektivität 870 kann Hardwarevorrichtungen (z. B. drahtlose und/oder drahtgebundene Verbinder und Kommunikationshardware) und Softwarekomponenten (z. B. Treiber, Protokollstapel) einschließen, um der Vorrichtung 800 zu ermöglichen, mit externen Vorrichtungen zu kommunizieren. Die Vorrichtung kann getrennte Vorrichtungen sein, wie etwa andere Computervorrichtungen, drahtlose Zugriffspunkte oder Basisstationen, sowie Peripheriegeräte wie Kopfhörer, Drucker oder andere Vorrichtungen.
-
Die Konnektivität 870 kann mehrere verschiedene Arten von Konnektivität umfassen. Zur Verallgemeinerung ist die Vorrichtung 800 mit der zellulären Konnektivität 872 und der drahtlosen Konnektivität 874 veranschaulicht. Die zelluläre Konnektivität 872 bezieht sich allgemein auf eine zelluläre Netzwerkkonnektivität, die von Mobilfunkanbietern bereitgestellt wird, wie beispielsweise über das globale System für Mobilkommunikation (Global System for Mobile Communications, GSM) oder Variationen oder Derivate, Codemultiplex-Mehrfachzugriff (Code Division Multiple Access, CDMA) oder Variationen oder Derivate, Zeitmultiplex (Time Division Multiplexing, TDM) oder Variationen oder Derivate, LTE (Long Term Evolution – auch als „4G“ bezeichnet) oder andere zelluläre Dienstleistungsstandards. Die drahtlose Konnektivität 874 bezieht sich auf drahtlose Konnektivität, die nicht zellulär ist, und kann persönliche Netzwerke (wie etwa Bluetooth), lokale Netzwerke (wie etwa WiFi) und/oder Weitverkehrsnetze (wie etwa WiMax) oder andere drahtlose Kommunikation einschließen. Die drahtlose Kommunikation bezieht sich auf die Übertragung von Daten unter Verwendung modulierter elektromagnetischer Strahlung durch ein nicht festes Medium. Die drahtgebundene Kommunikation erfolgt über ein festes Kommunikationsmedium.
-
Die Peripherieanschlüsse 880 umfassen Hardwareschnittstellen und -anschlüsse sowie Softwarekomponenten (z. B. Treiber, Protokollstapel), um Peripherieanschlüsse herzustellen. Es versteht sich, dass die Vorrichtung 800 sowohl eine Peripherievorrichtung („bis“ 882) für andere Computervorrichtungen sein kann als auch Peripheriegeräte („von“ 884) aufweisen kann, die mit ihr verbunden sind. Die Vorrichtung 800 hat üblicherweise einen „Docking“-Anschluss zum Anschließen anderer Computervorrichtungen für Zwecke wie Verwaltung (z. B. Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalten auf der Vorrichtung 800. Zusätzlich kann ein Docking-Anschluss der Vorrichtung 800 ermöglichen, sich mit bestimmten Peripheriegeräten zu verbinden, um es der Vorrichtung 800 zu ermöglichen, die Ausgabe von Inhalten zu steuern, beispielsweise an audiovisuelle oder andere Systeme.
-
Zusätzlich zu einem proprietären Docking-Anschluss oder einer anderen proprietären Verbindungshardware kann die Vorrichtung 800 Peripherieanschlüsse 880 über übliche Verbinder oder standardbasierte Anschlüsse herstellen. Übliche Arten können einen Universal-Serial-Bus(USB)-Anschluss (der eine beliebige Anzahl von verschiedenen Hardwareschnittstellen einschließen kann), DisplayPort einschließlich MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), FireWire oder eine andere Art einschließen.
-
In einer Implementierung umfasst eine Speichervorrichtung ein Speicherarray, einschließend eine erste Speicherstelle, die einer ersten Adresse entspricht, eine Eingabe/Ausgabe(E/A)-Schnittstelle zum Koppeln der Speichervorrichtung mit einer Speichersteuerung, eine Zugriffslogik einschließend eine Schaltung, die konfiguriert ist, um über die E/A-Schnittstelle erste Signale von der Speichersteuerung zu empfangen, wobei die ersten Signale die erste Adresse angeben, und Vergleichslogik, die mit der Zugriffslogik gekoppelt ist. Wenn die ersten Signale eine Vergleichsoperation anzeigen, soll die Zugriffslogik erste Daten, die an der ersten Stelle gespeichert sind, abrufen, und die Vergleichslogik soll einen Vergleich der ersten Daten und eines Referenzdatenwerts der ersten Signale durchführen und von der Speichervorrichtung Informationen senden, die ein Ergebnis des Vergleichs darstellen.
-
In einer Ausführungsform, bei der die ersten Signale eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, soll die Zugriffslogik die ersten Daten abrufen und die ersten Daten von der Speichervorrichtung senden. In einer anderen Ausführungsform schließen die ersten Signale einen Vergleichsbefehl ein. In einer anderen Ausführungsform schließen die ersten Signale ein Steuersignal ein, das angibt, dass die Vergleichsoperation durchgeführt werden soll. In einer anderen Ausführungsform sind die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen. In einer anderen Ausführungsform schließen die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits ein, die jeweils einem jeweiligen Bitpaar entsprechen, das ein Bit der ersten Daten und ein Bit des Referenzdatenwertes einschließt, wobei die Vielzahl von Bits jeweils angeben, ob das entsprechende Bitpaar einander entspricht. In einer anderen Ausführungsform wird der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert.
-
In einer anderen Implementierung umfasst eine Speichersteuerung eine Eingabe/Ausgabe(E/A)-Schnittstelle, um die Speichersteuerung mit einer Speichervorrichtung zu koppeln, und eine Steuerlogik einschließlich einer Schaltung, die konfiguriert ist, um erste Signale über die E/A-Schnittstelle an die Speichervorrichtung zu senden, wobei die ersten Signale eine Vergleichsoperation, einen Referenzdatenwert und eine erste Adresse anzeigen, die einer ersten Stelle eines Speicherarrays der Speichervorrichtung entspricht, wobei die Speichervorrichtung in Reaktion auf die ersten Signale einen Vergleich des Referenzdatenwertes und an der ersten Stelle gespeicherter Daten durchführt. Die E/A-Schnittstelle soll ferner von der Speichervorrichtung in Reaktion auf die ersten Signale Informationen empfangen, die ein Ergebnis des Vergleichs darstellen.
-
In einer Ausführungsform soll die Steuerlogik ferner zweite Signale über die E/A-Schnittstelle an die Speichervorrichtung senden, wobei die zweiten Signale die erste Adresse und eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, wobei die Speichervorrichtung in Reaktion auf die zweiten Signale an der ersten Stelle gespeicherte zweite Signale abruft, und die E/A-Schnittstelle soll ferner die zweiten Daten von der Speichervorrichtung in Reaktion auf die zweiten Signale empfangen. In einer anderen Ausführungsform schließen die ersten Signale einen Vergleichsbefehl ein. In einer anderen Ausführungsform schließen die ersten Signale ein Steuersignal ein, das angibt, dass die Vergleichsoperation durchgeführt werden soll. In einer anderen Ausführungsform sind die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen. In einer anderen Ausführungsform schließen die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits ein, die jeweils einem jeweiligen Bitpaar entsprechen, das ein Bit der ersten Daten und ein Bit des Referenzdatenwertes einschließt, wobei die Vielzahl von Bits jeweils angeben, ob das entsprechende Bitpaar einander entspricht. In einer anderen Ausführungsform wird der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert.
-
In einer anderen Implementierung umfasst ein Verfahren an einer Speichervorrichtung das Empfangen von ersten Signalen von einer Speichersteuerung, die mit der Speichervorrichtung gekoppelt ist, wobei die ersten Signale eine erste Adresse anzeigen, die einer ersten Stelle eines Speicherarrays der Speichervorrichtung entspricht, und wobei die ersten Signale eine Vergleichsoperation, das Abrufen an der ersten Stelle gespeicherter erster Daten, das Durchführen eines Vergleichs der ersten Daten mit einem Referenzdatenwert der ersten Signale und das Senden von Informationen aus der Speichervorrichtung, die ein Ergebnis des Vergleichs darstellen, anzeigen.
-
In einer Ausführungsform umfasst das Verfahren ferner, wenn die ersten Signale eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, das Abrufen an der ersten Stelle gespeicherter erster Daten und das Senden der ersten Daten von der Speichervorrichtung. In einer anderen Ausführungsform schließen die ersten Signale einen Vergleichsbefehl ein. In einer anderen Ausführungsform schließen die ersten Signale ein Steuersignal ein, das angibt, dass die Vergleichsoperation durchgeführt werden soll. In einer anderen Ausführungsform sind die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen. In einer anderen Ausführungsform schließen die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits ein, die jeweils einem jeweiligen Bitpaar entsprechen, das ein Bit der ersten Daten und ein Bit des Referenzdatenwertes einschließt, wobei die Vielzahl von Bits jeweils angeben, ob das entsprechende Bitpaar einander entspricht. In einer anderen Ausführungsform wird der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert.
-
In einer anderen Implementierung umfasst ein Verfahren an einer Speichersteuerung das Senden erster Signale an eine Speichervorrichtung, die mit der Speichersteuerung gekoppelt ist, wobei die ersten Signale eine Vergleichsoperation, einen Referenzdatenwert und eine erste Adresse anzeigen, die einer ersten Stelle eines Speicherarrays der Speichervorrichtung entspricht, wobei die Speichervorrichtung in Reaktion auf die ersten Signale einen Vergleich des Referenzdatenwertes und an der ersten Stelle gespeicherter erster Daten durchführt. Das Verfahren umfasst ferner in Reaktion auf die ersten Signale das Empfangen von Informationen von der Speichervorrichtung, die ein Ergebnis des Vergleichs darstellen. In einer Ausführungsform umfasst das Verfahren ferner das Senden zweiter Signale an die Speichervorrichtung, wobei die zweiten Signale die erste Adresse und eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, wobei die Speichervorrichtung in Reaktion auf die zweiten Signale an der ersten Stelle gespeicherte zweite Daten abruft, und das Empfangen der zweiten Daten von der Speichervorrichtung in Reaktion auf die zweiten Signale. In einer anderen Ausführungsform schließen die ersten Signale einen Vergleichsbefehl ein. In einer anderen Ausführungsform schließen die ersten Signale ein Steuersignal ein, das angibt, dass die Vergleichsoperation durchgeführt werden soll. In einer anderen Ausführungsform sind die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen. In einer anderen Ausführungsform schließen die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits ein, die jeweils einem jeweiligen Bitpaar entsprechen, das ein Bit der ersten Daten und ein Bit des Referenzdatenwertes einschließt, wobei die Vielzahl von Bits jeweils angeben, ob das entsprechende Bitpaar einander entspricht. In einer anderen Ausführungsform wird der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert.
-
In einer anderen Implementierung, ein computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die bei Ausführung durch eine oder mehrere Verarbeitungseinheiten bewirken, dass eine Speichersteuerung ein Verfahren durchführt, welches das Senden erster Signale an eine Speichervorrichtung umfasst, die mit der Speichersteuerung gekoppelt ist, wobei die ersten Signale eine Vergleichsoperation, einen Referenzdatenwert und eine erste Adresse anzeigen, die einer ersten Stelle eines Speicherarrays der Speichervorrichtung entspricht, wobei die Speichervorrichtung in Reaktion auf die ersten Signale einen Vergleich des Referenzdatenwertes und an der ersten Stelle gespeicherter erster Daten durchführt. Das Verfahren umfasst ferner in Reaktion auf die ersten Signale das Empfangen von Informationen von der Speichervorrichtung, die ein Ergebnis des Vergleichs darstellen.
-
In einer Ausführungsform umfasst das Verfahren ferner das Senden zweiter Signale an die Speichervorrichtung, wobei die zweiten Signale die erste Adresse und eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, wobei die Speichervorrichtung in Reaktion auf die zweiten Signale an der ersten Stelle gespeicherte zweite Daten abruft, und das Empfangen der zweiten Daten von der Speichervorrichtung in Reaktion auf die zweiten Signale. In einer anderen Ausführungsform, bei der die ersten Signale eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, soll die Zugriffslogik die ersten Daten abrufen und die ersten Daten von der Speichervorrichtung senden. In einer anderen Ausführungsform schließen die ersten Signale einen Vergleichsbefehl ein. In einer anderen Ausführungsform schließen die ersten Signale ein Steuersignal ein, das angibt, dass die Vergleichsoperation durchgeführt werden soll. In einer anderen Ausführungsform sind die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen. In einer anderen Ausführungsform schließen die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits ein, die jeweils einem jeweiligen Bitpaar entsprechen, das ein Bit der ersten Daten und ein Bit des Referenzdatenwertes einschließt, wobei die Vielzahl von Bits jeweils angeben, ob das entsprechende Bitpaar einander entspricht. In einer anderen Ausführungsform wird der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert.
-
In einer anderen Implementierung umfasst ein System eine Speichersteuerung, einen Interconnect und eine Speichervorrichtung, die über den Interconnect mit der Speichersteuerung gekoppelt ist. Die Speichervorrichtung umfasst einen Speicherarray, einschließend eine erste Speicherstelle, die einer ersten Adresse entspricht, eine Eingabe/Ausgabe(E/A)-Schnittstelle zum Koppeln der Speichervorrichtung mit einer Speichersteuerung, eine Zugriffslogik, um über die E/A-Schnittstelle erste Signale von der Speichersteuerung zu empfangen, wobei die ersten Signale die erste Adresse angeben, und die Vergleichslogik, die mit der Zugriffslogik gekoppelt ist. Wenn die ersten Signale eine Vergleichsoperation anzeigen, soll die Zugriffslogik erste Daten, die an der ersten Stelle gespeichert sind, abrufen, und die Vergleichslogik soll einen Vergleich der ersten Daten und eines Referenzdatenwerts der ersten Signale durchführen und von der Speichervorrichtung Informationen senden, die ein Ergebnis des Vergleichs darstellen.
-
In einer Ausführungsform, bei der die ersten Signale eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, soll die Zugriffslogik die ersten Daten abrufen und die ersten Daten von der Speichervorrichtung senden. In einer anderen Ausführungsform schließen die ersten Signale einen Vergleichsbefehl ein. In einer anderen Ausführungsform schließen die ersten Signale ein Steuersignal ein, das angibt, dass die Vergleichsoperation durchgeführt werden soll. In einer anderen Ausführungsform sind die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen. In einer anderen Ausführungsform schließen die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits ein, die jeweils einem jeweiligen Bitpaar entsprechen, das ein Bit der ersten Daten und ein Bit des Referenzdatenwertes einschließt, wobei die Vielzahl von Bits jeweils angeben, ob das entsprechende Bitpaar einander entspricht. In einer anderen Ausführungsform wird der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert.
-
Techniken und Architekturen zum Betreiben einer Speichervorrichtung werden hierin beschrieben. In der vorstehenden Beschreibung werden zum Zwecke der Erläuterung zahlreiche spezifische Einzelheiten angegeben, um ein gründliches Verständnis bestimmter Ausführungsformen zu erlauben. Fachleute auf dem Gebiet werden jedoch verstehen, dass bestimmte Ausführungsformen ohne diese spezifischen Einzelheiten praktiziert werden können. In anderen Fällen werden Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um ein Verdecken der Beschreibung zu vermeiden.
-
Die Bezugnahme in dieser Beschreibung auf „eine bestimmte Ausführungsform“ oder „eine Ausführungsform“ bedeutet, dass eine bestimmte Funktion, eine Struktur oder ein Merkmal, die in Verbindung mit der Ausführungsform beschrieben sind, in mindestens einer Ausführungsform der Erfindung eingeschlossen ist. Das Auftreten des Ausdrucks „in einer bestimmten Ausführungsform“ an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise stets auf dieselbe Ausführungsform.
-
Einige Abschnitte der vorliegenden ausführlichen Beschreibung werden als Algorithmen oder symbolische Darstellungen von Operationen hinsichtlich Datenbits in einem Computerspeicher dargelegt. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten auf dem Gebiet der Computertechnik verwendet werden, um das Ergebnis ihrer Arbeit anderen Fachleuten am effektivsten zu vermitteln. Der Begriff Algorithmus bedeutet in diesem Dokument und auch allgemein eine selbstkonsistente Abfolge von Schritten, die zu einem gewünschten Ergebnis führt. Die Schritte sind jene, welche physikalische Handhabungen physikalischer Größen erfordern. Für gewöhnlich, jedoch nicht zwangsläufig, weisen diese Größen die Form elektrischer oder magnetischer Signale auf, welche gespeichert, übergeben, kombiniert, verglichen oder auf andere Weise gehandhabt werden können. Es hat sich mitunter als zweckmäßig erwiesen, insbesondere aus Gründen des üblichen Sprachgebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Nummern oder dergleichen zu bezeichnen.
-
Allerdings sollte man sich vor Augen halten, dass alle diese und ähnliche Begriffe mit den geeigneten physikalischen Größen verbunden werden müssen und lediglich zweckmäßige Bezeichnungen sind, die diesen Größen zugewiesen werden. Soweit nichts Anderes, als aus der vorliegenden Erörterung hervorgeht, konkret angegeben wird, beziehen sich Begriffe wie „verarbeiten“ oder „berechnen“ oder „kalkulieren“ oder „bestimmen“ oder „anzeigen“ oder dergleichen auf die Handlungen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Computervorrichtung, die Daten, die als physikalische (elektronische) Größen innerhalb der Register und Speicher des Computersystems dargestellt werden, handhabt und in andere Daten, die ebenfalls als physikalische Größen innerhalb der Register und Speicher des Computersystems oder anderen derartigen Vorrichtungen zum Speichern, Übertragen oder Anzeigen von Informationen dargestellt werden, umwandelt.
-
Bestimmte Ausführungsformen beziehen sich auch auf eine Vorrichtung zur Durchführung der hierin beschriebenen Operationen. Diese Vorrichtung kann speziell für die erforderlichen Zwecke konstruiert sein oder sie kann einen Allzweckcomputer umfassen, der selektiv durch ein im Computer gespeichertes Computerprogramm aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie etwa, aber nicht beschränkt auf, jeglichen Typ von Disk, einschließlich Disketten, optischen Platten, CD-ROMs, magneto-optische Disks, Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAMs), wie etwa dynamisches RAM (DRAM), EPROMs, EEPROMs, magnetische oder optische Karten oder jeglichen Typ von Medien, die sich zum Speichern elektronischer Anweisungen eignen und mit einem Computersystembus gekoppelt sind.
-
Die hierin gezeigten Algorithmen und Anziegen sind inhärent nicht auf einen bestimmten Computer oder eine bestimmte Vorrichtung bezogen. Verschiedene Allzwecksysteme können mit Programmen gemäß den vorliegenden Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, spezialisiertere Einrichtungen zur Durchführung der erforderlichen Verfahrensschritte zu konstruieren. Die erforderliche Struktur für eine Vielzahl dieser Systeme wird aus der hierin vorgelegten Beschreibung ersichtlich. Darüber hinaus werden bestimmte Ausführungsformen nicht mit Bezug auf eine spezielle Programmiersprache beschrieben. Es lässt sich somit nachvollziehen, dass eine Vielzahl von Programmiersprachen dazu verwendet werden können, die Lehren solcher Ausführungsformen, wie diese hierin beschrieben sind, zu implementieren.
-
Neben dem, was hierin beschrieben wird, können verschiedene Modifikationen an den offenbarten Ausführungsformen und Implementierungen davon vorgenommen werden, ohne von ihrem Umfang abzuweichen. Daher sollten die Illustrationen und Beispiele hierin in einem veranschaulichenden und nicht einschränkenden Sinn ausgelegt werden. Der Umfang der Erfindung sollte allein unter Bezugnahme auf die folgenden Ansprüche gemessen werden.