DE112015003397T5 - Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten - Google Patents

Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten Download PDF

Info

Publication number
DE112015003397T5
DE112015003397T5 DE112015003397.1T DE112015003397T DE112015003397T5 DE 112015003397 T5 DE112015003397 T5 DE 112015003397T5 DE 112015003397 T DE112015003397 T DE 112015003397T DE 112015003397 T5 DE112015003397 T5 DE 112015003397T5
Authority
DE
Germany
Prior art keywords
signals
comparison
data
memory
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112015003397.1T
Other languages
English (en)
Other versions
DE112015003397B4 (de
Inventor
Shih-Lien L. Lu
Shigeki Tomishima
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tahoe Research Ltd
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112015003397T5 publication Critical patent/DE112015003397T5/de
Application granted granted Critical
Publication of DE112015003397B4 publication Critical patent/DE112015003397B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Techniken und Verfahren zum Bestimmen von Vergleichsinformationen an einer Speichervorrichtung. In einer Ausführungsform empfängt die Speichervorrichtung von einer Speichersteuerung Signale, die eine Adresse enthalten oder auf andere Weise anzeigen, welche einer Speicherstelle der Speichervorrichtung entspricht. Wenn bestimmt wird, dass die Signale eine Vergleichsoperation angeben, ruft die Speichervorrichtung an der Speicherstelle gespeicherte Daten ab und führt einen Vergleich der Daten mit einem Referenzdatenwert durch, der in den empfangenen Signalen enthalten oder anderweitig angezeigt ist. Die Speichervorrichtung sendet Informationen an die Speichersteuerung, die ein Ergebnis des Vergleichs darstellen. In einer anderen Ausführungsform stellt eine Speichersteuerung Signale bereit, um eine Vergleichsoperation durch eine solche Speichervorrichtung zu steuern.

Description

  • 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.

Claims (25)

  1. Speichervorrichtung, umfassend: einen Speicherarray, einschließend eine erste Speicherstelle, die einer ersten Adresse entspricht; eine Eingangs/Ausgangs(E/A)-Schnittstelle, um die Speichervorrichtung mit einer Speichersteuerung zu koppeln; 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 anzeigen; und eine Vergleichslogik, die mit der Zugriffslogik gekoppelt ist; wobei die ersten Signale eine Vergleichsoperation anzeigen: wobei die Zugriffslogik erste Daten, die an der ersten Stelle gespeichert sind, abrufen soll; und die Vergleichslogik einen Vergleich der ersten Daten und eines Referenzdatenwerts der ersten Signale durchführen soll und von der Speichervorrichtung Informationen senden soll, welche ein Ergebnis des Vergleichs darstellen.
  2. Speichervorrichtung nach Anspruch 1, wobei, wenn die ersten Signale eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist, die Zugriffslogik die ersten Daten abrufen und die ersten Daten von der Speichervorrichtung senden soll.
  3. Speichervorrichtung nach Anspruch 1, wobei die ersten Signale einen Vergleichsbefehl einschließen.
  4. Speichervorrichtung nach Anspruch 1, wobei die ersten Signale ein Steuersignal einschließen, das angibt, dass die Vergleichsoperation durchgeführt werden soll.
  5. Speichervorrichtung nach einem der Ansprüche 1 bis 4, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit sind, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen.
  6. Speichervorrichtung nach einem der Ansprüche 1 bis 4, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits enthalten, 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.
  7. Speichervorrichtung nach einem der Ansprüche 1 bis 4, wobei der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert wird.
  8. Speichersteuerung, umfassend: eine Eingangs/Ausgangs(E/A)-Schnittstelle, um die Speichersteuerung mit einer Speichervorrichtung zu koppeln; und eine Steuerlogik einschließlich einer Schaltung, die konfiguriert ist, um die ersten 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 der an der ersten Stelle gespeicherten ersten Daten durchführt; wobei die E/A-Schnittstelle ferner von der Speichervorrichtung in Reaktion auf die ersten Signale Informationen empfangen soll, die ein Ergebnis des Vergleichs darstellen.
  9. Speichersteuerung nach Anspruch 8, wobei die Steuerlogik ferner die zweiten Signale über die E/A-Schnittstelle an die Speichervorrichtung senden soll, 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 die E/A-Schnittstelle ferner die zweiten Daten von der Speichervorrichtung in Reaktion auf die zweiten Signale empfangen soll.
  10. Speichersteuerung nach einem der Ansprüche 8 und 9, wobei die ersten Signale einen Vergleichsbefehl einschließen.
  11. Speichersteuerung nach einem der Ansprüche 8 und 9, wobei die ersten Signale ein Steuersignal einschließen, das angibt, dass die Vergleichsoperation durchgeführt werden soll.
  12. Speichersteuerung nach einem der Ansprüche 8 und 9, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit ist, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen.
  13. Speichersteuerung nach einem der Ansprüche 8 und 9, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits enthält, 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.
  14. Speichersteuerung nach einem der Ansprüche 8 und 9, wobei der Referenzdatenwert über eine Datenbusschnittstelle der Speichervorrichtung kommuniziert wird.
  15. Verfahren an einer Speichervorrichtung, wobei das Verfahren Folgendes umfasst: Empfangen von ersten Signalen von einer mit der Speichervorrichtung gekoppelten Speichersteuerung, wobei die ersten Signale eine erste Adresse anzeigen, die einer ersten Stelle eines Speicherarrays der Speichervorrichtung entspricht; und wenn die ersten Signale eine Vergleichsoperation anzeigen: Abrufen erster Daten, die an der ersten Stelle gespeichert sind; Durchführen eines Vergleichs der ersten Daten mit einem Referenzdatenwert der ersten Signale; und Senden von Informationen aus der Speichervorrichtung, die ein Ergebnis des Vergleichs darstellen.
  16. Verfahren nach Anspruch 15, ferner umfassend: wenn die ersten Signale eine Leseoperation anzeigen, die nicht die Vergleichsoperation ist: Abrufen der ersten Daten, die an der ersten Stelle gespeichert sind; und Senden der ersten Daten aus der Speichervorrichtung.
  17. Verfahren nach Anspruch 15, wobei die ersten Signale einen Vergleichsbefehl einschließen.
  18. Verfahren nach Anspruch 15, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit sind, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen.
  19. Verfahren nach Anspruch 15, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits enthalten, 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.
  20. Verfahren an einer Speichersteuerung, wobei das Verfahren Folgendes umfasst: 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; und Empfangen von der Speichervorrichtung, in Reaktion auf die ersten Signale, von Informationen, die ein Ergebnis des Vergleichs darstellen.
  21. Verfahren nach Anspruch 20, ferner umfassend: 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 Signale abruft; und Empfangen der zweiten Daten von der Speichervorrichtung in Reaktion auf die zweiten Signale.
  22. Verfahren nach einem der Ansprüche 20 und 21, wobei die ersten Signale einen Vergleichsbefehl einschließen.
  23. Verfahren nach einem der Ansprüche 20 und 21, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, ein einzelnes Bit sind, das angibt, ob die ersten Daten und der Referenzdatenwert einander gleichen.
  24. Verfahren nach einem der Ansprüche 20 und 21, wobei die Informationen, die das Ergebnis des Vergleichs darstellen, eine Vielzahl von Bits enthalten, 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.
  25. Computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die bei Ausführung durch eine oder mehrere Verarbeitungseinheiten eine Speichersteuerung veranlassen, ein Verfahren nach einem der Ansprüche 20 bis 24 durchzuführen.
DE112015003397.1T 2014-09-22 2015-08-18 Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten Active DE112015003397B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/493,130 2014-09-22
US14/493,130 US9600183B2 (en) 2014-09-22 2014-09-22 Apparatus, system and method for determining comparison information based on memory data
PCT/US2015/045638 WO2016048483A1 (en) 2014-09-22 2015-08-18 Apparatus, system and method for determining comparison information based on memory data

Publications (2)

Publication Number Publication Date
DE112015003397T5 true DE112015003397T5 (de) 2017-04-27
DE112015003397B4 DE112015003397B4 (de) 2024-02-15

Family

ID=55525750

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015003397.1T Active DE112015003397B4 (de) 2014-09-22 2015-08-18 Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten

Country Status (6)

Country Link
US (1) US9600183B2 (de)
KR (3) KR102443078B1 (de)
CN (1) CN106575517B (de)
DE (1) DE112015003397B4 (de)
TW (1) TWI607308B (de)
WO (1) WO2016048483A1 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10115446B1 (en) 2015-04-21 2018-10-30 Spin Transfer Technologies, Inc. Spin transfer torque MRAM device with error buffer
US10185561B2 (en) 2015-07-09 2019-01-22 Centipede Semi Ltd. Processor with efficient memory access
US20170010972A1 (en) * 2015-07-09 2017-01-12 Centipede Semi Ltd. Processor with efficient processing of recurring load instructions
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
KR102633091B1 (ko) * 2016-09-19 2024-02-06 삼성전자주식회사 메모리 셀의 에러 확인 기능을 갖는 메모리 장치 및 이를 포함하는 메모리 모듈
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10192602B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10489245B2 (en) 2017-10-24 2019-11-26 Spin Memory, Inc. Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10529915B2 (en) 2018-03-23 2020-01-07 Spin Memory, Inc. Bit line structures for three-dimensional arrays with magnetic tunnel junction devices including an annular free magnetic layer and a planar reference magnetic layer
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US10825534B2 (en) 2018-10-26 2020-11-03 Intel Corporation Per row activation count values embedded in storage cell array storage cells
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
CN109859785B (zh) * 2019-01-11 2020-11-06 中电海康集团有限公司 一种时钟自适应访问mram的装置
JP2020205003A (ja) 2019-06-19 2020-12-24 キオクシア株式会社 メモリシステム、メモリコントローラ、及び半導体記憶装置
CN114594991A (zh) * 2020-12-03 2022-06-07 意法半导体股份有限公司 硬件加速器设备、对应的系统和操作方法
US11372559B1 (en) 2021-02-19 2022-06-28 Western Digital Technologies, Inc. Data storage device and method for enabling a compare command with built-in data transformations
US11726715B2 (en) * 2021-10-11 2023-08-15 Western Digital Technologies, Inc. Efficient data path in compare command execution

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240003B1 (en) 2000-05-01 2001-05-29 Micron Technology, Inc. DRAM content addressable memory using part of the content as an address
JP3669350B2 (ja) * 2002-08-02 2005-07-06 ソニー株式会社 記録再生装置及び検索回路
US7188263B1 (en) 2003-05-07 2007-03-06 Nvidia Corporation Method and apparatus for controlling power state of a multi-lane serial bus link having a plurality of state transition detectors wherein powering down all the state transition detectors except one
US7095674B2 (en) * 2003-09-30 2006-08-22 Intel Corporation Modular register array
US7167946B2 (en) 2003-09-30 2007-01-23 Intel Corporation Method and apparatus for implicit DRAM precharge
KR20070068377A (ko) * 2005-02-18 2007-06-29 듀아키시즈 가부시키가이샤 데이타 처리장치
US8732025B2 (en) * 2005-05-09 2014-05-20 Google Inc. System and method for enabling image recognition and searching of remote content on display
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7856436B2 (en) 2005-12-23 2010-12-21 International Business Machines Corporation Dynamic holds of record dispositions during record management
KR100914265B1 (ko) * 2007-05-10 2009-08-27 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법
US7929356B2 (en) * 2008-09-05 2011-04-19 Atmel Corporation Method and system to access memory
US8954821B2 (en) 2009-12-29 2015-02-10 Microntechnology, Inc. Memory device having address and command selectable capabilities
JP2011175615A (ja) 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
KR20110124992A (ko) 2010-05-12 2011-11-18 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 시스템
US8688962B2 (en) * 2011-04-01 2014-04-01 Intel Corporation Gather cache architecture
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
US9202551B2 (en) 2012-06-28 2015-12-01 Intel Corporation Flexible command addressing for memory
KR20140043560A (ko) 2012-09-24 2014-04-10 삼성전자주식회사 메모리 특성 정보를 저장하는 반도체 메모리 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 반도체 메모리 장치의 동작방법
WO2014085266A1 (en) * 2012-11-30 2014-06-05 Intel Corporation Apparatus, method and system for determining reference voltages for a memory
US10121528B2 (en) 2012-11-30 2018-11-06 Intel Corporation Apparatus, method and system for providing termination for multiple chips of an integrated circuit package
KR102025341B1 (ko) * 2012-12-04 2019-09-25 삼성전자 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US9009531B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem data bus stress testing
US9026888B2 (en) * 2012-12-21 2015-05-05 Intel Corporation Method, system and apparatus for providing access to error correction information
US9317464B2 (en) * 2014-06-26 2016-04-19 Intel Corporation Method, apparatus and system for configuring coupling with input-output contacts of an integrated circuit

Also Published As

Publication number Publication date
CN106575517B (zh) 2019-10-01
US20160085443A1 (en) 2016-03-24
TW201626231A (zh) 2016-07-16
KR20220134024A (ko) 2022-10-05
US9600183B2 (en) 2017-03-21
DE112015003397B4 (de) 2024-02-15
KR20210100758A (ko) 2021-08-17
CN106575517A (zh) 2017-04-19
WO2016048483A1 (en) 2016-03-31
KR102443078B1 (ko) 2022-09-14
TWI607308B (zh) 2017-12-01
KR20170034401A (ko) 2017-03-28
KR102289787B1 (ko) 2021-08-17

Similar Documents

Publication Publication Date Title
DE112015003397B4 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE112017003334T5 (de) Lastreduzierte nichtflüchtige speicherschnittstelle
TWI713024B (zh) 在具有排組群架構的記憶體裝置中預充電及刷新排組之技術(二)
US7886103B2 (en) Input-output module, processing platform and method for extending a memory interface for input-output operations
DE112017006599T5 (de) Programmierbare datenstruktur zum wiederholten schreiben in einen speicher
DE112011106021T5 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102018128601A1 (de) Hintergrunddatenauffrischung unter Verwendung eines Systemzeitstempels in Speicherungseinrichtungen
DE112016004243T5 (de) Hybrides Auffrischen mit verborgenen Auffrischungen und externen Auffrischungen
US10599206B2 (en) Techniques to change a mode of operation for a memory device
DE112017004268T5 (de) Befehlsbus mit doppelter datenrate
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
KR101720890B1 (ko) 메모리에 대한 기준 전압들을 결정하는 장치, 방법 및 시스템
DE112017004966T5 (de) Erweiterte anwendung eines fehlerprüfungs- und korrekturcodes in einem speicher
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
CN107667403A (zh) 长突发长度的内部连续行存取
CN107402901A (zh) 由两个或更多处理器共享的存储设备和包括其的系统
DE112016006203T5 (de) Verfahren zum zugreifen auf ein dual in-line memory-modul über mehrere datenkanäle oder betreiben desselben
DE102017100584A1 (de) Verfahren zum Zugreifen auf heterogene Speicher und Speichermodul, welches heterogene Speicher aufweist
TWI704489B (zh) 儲存備份記憶體封裝中之狀態管理
DE102020132763A1 (de) Undirektionaler informationskanal zur überwachung einer drift eines bidirektionalen informationskanals
US9728236B1 (en) System and method of training optimization for dual channel memory modules
DE102023110723A1 (de) Randomisierung von gezielten auffrischungsverwaltungs(directed refresh management - drfm)-pseudo-zielzeilenauffrischungs(pseudo target row refresh - pttr)-befehlen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: TAHOE RESEARCH, LTD., IE

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division