DE102010044531B4 - Autonome Speicherarchitektur - Google Patents
Autonome Speicherarchitektur Download PDFInfo
- Publication number
- DE102010044531B4 DE102010044531B4 DE102010044531.2A DE102010044531A DE102010044531B4 DE 102010044531 B4 DE102010044531 B4 DE 102010044531B4 DE 102010044531 A DE102010044531 A DE 102010044531A DE 102010044531 B4 DE102010044531 B4 DE 102010044531B4
- Authority
- DE
- Germany
- Prior art keywords
- autonomous
- autonomous storage
- host
- database
- storage devices
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Abstract
Description
- Ein Problem bei parallelen, verteilten Systemen ist es, wie Speicherressourcen bestimmt und verwaltet werden. Speicher ist typischerweise an einem Hostprozessor angebracht, der einen geteilten Bus verwendet, auf den geeignete Protokolle angewendet werden, um Kohärenz und Konsistenz zu ermöglichen. Bei diesem strategischen Speicher kann Steuerhardware auf dem Prozessorkern den Traffic bzw. Verkehr auf dem gemeinsamen Bus beobachten, kann dann Zwischenspeicherleitungen aktualisieren oder unwirksam machen, um die Operationen wiederzugeben, die von den anderen Prozessoren ausgeführt werden. Ein Vielknotenmultiprozessorsystem kann auch „Verzeichnis-basierte“-Kohärenztechniken verwenden, um es Prozessorknoten zu ermöglichen, Speichertraffic zu sehen, der zu Seiten oder Zwischenspeicherleitungen gehört, auf denen sie arbeiten. Diese Strategien behindern immer stärker die Leistung und Verbesserungen bei verteilten Systemen werden benötigen.
- Aus dem Fachartikel „A Framework for Workload Allocation in Distributed Transaction Processing Systems“ von Erhard Rahm sind sog. Shared-Nothing-Systeme für verteilte Transaktionsverarbeitungssysteme bekannt. Im Gegensatz zu Shared-Memory- oder Shared-Disk-System handelt es sich hierbei um lose gekoppelte autonome Knoten. Die im Shared-Nothing-System zu speichernden Daten können über die Knoten hinweg partitioniert oder repliziert werden. Replizierte Datenbanken werden vorrangig in geografisch verteilten Systemen verwendet, während in lokaleren Umgebungen der Ansatz der Datenpartitionierung gebräuchlicher ist.
- Der Aufsatz „Acceleration of a Content-Based Image-Retrieval Applicationi on the RDISK Cluster“ von Auguste Noumsi et al. beschreibt die sog. RDISK-Cluster-Architektur, welche einen Host und daran mittels Ethernet-Switch angeschlossene RDISK-Knoten umfasst. Die RDISK-Knoten enthalten eine Festplatte, einen Ethernet-Controller, einen RAM, einen Microcontroller sowie einen FPGA-Chip (FPGA = Field Programmable Gate Array), welcher als Filter-Prozessor dient. Letzterer führt die Auswahloperationen auf den auf der Festplatte gespeicherten Daten durch. Die so gefilterten Daten werden an den über Ethernet angeschlossenen Host zur Nachverarbeitung übertragen.
- Der Artikel „Fragment and Replicate Algorithms for Non-Equi-Join Evaluation on Smart Disks“ von Vassilis Stoumpos et al. befasst sich mit der effizienten Verarbeitung von Zusammenführungen von Datenbanken (sog. „joins“) mit einer Matrix von Smart Disks. Smart Disks sind Speichervorrichtungen, die selbst eine Fähigkeit zur lokalen Datenverarbeitung besitzen und zu diesem Zweck mit Prozessor, Controller, Pufferspeicher und I/O-Schnittstellen ausgestattet sind.
- KURZFASSUNG DER ERFINDUNG
- Die vorliegende Erfindung geht von einem Verfahren zu Betreiben eines Hosts mit einer verteilten Matrix autonomer Speichereinrichtungen gemäß Anspruch 1 aus. Ein weiterer Aspekt der Erfindung betrifft ein Verfahren zum Betreiben mehrere autonomer Speichersubsysteme gemäß Anspruch 8. Ein weiterer Aspekt der Erfindung betrifft ein Verfahren zum Betreiben eines verteilten Speichersubsystems gemäß Anspruch 13. Ein weiterer Aspekt der Erfindung betrifft schließlich ein Verfahren zum Verbinden einer autonomen Speichereinrichtung in einem verteilten Speichersubsystem gemäß Anspruch 17.
- Weitere Ausprägungen der vorliegenden Erfindung finden sich in den abhängigen Ansprüchen.
- Figurenliste
- Der Gegenstand, der als die Erfindung betrachtet wird, ist insbesondere im Schlussbereich der Unterlagen aufgezeigt und eindeutig beansprucht. Die Erfindung kann allerdings sowohl hinsichtlich Organisation als auch Betriebsverfahren, zusammen mit Aufgaben, Merkmalen und Vorteilen davon am Besten unter Bezugnahme auf die folgende detaillierte Beschreibung verstanden werden, wenn sie zusammen mit Zeichnungen gelesen wird, in welchen:
-
1 eine Architektur veranschaulicht, die es einem Prozessor ermöglicht, mit mehreren autonomen Speichereinrichtungen zu kommunizieren, die in einem verteilten Subsystem in Übereinstimmung mit der vorliegenden Erfindung eingerichtet sind. -
2 eine vereinfachte Blockdarstellung der autonomen Speichereinrichtung ist, die das verteilte Subsystem ermöglicht; und -
3 ein Ausführungsbeispiel der autonomen Speichereinrichtung in Übereinstimmung mit der vorliegenden Erfindung veranschaulicht. - Es wird begrüßt werden, dass zur Vereinfachung und Klarheit der Veranschaulichung in den Figuren veranschaulichte Elemente nicht notwendigerweise maßstabsgetreu gezeichnet sind. Zum Beispiel können die Dimensionen von manchen der Elemente bezüglich anderer Elemente zur Klarheit überhöht dargestellt sein. Ferner wurden Bezugszeichen unter den Figuren wiederholt, wo es als geeignet erachtet wurde, um entsprechende oder analoge Elemente anzugeben.
- DETAILLIERTE BESCHREIBUNG
- In der folgenden detaillierten Beschreibung sind viele spezifische Details dargelegt, um ein gründliches Verständnis der Erfindung zu ermöglichen. Allerdings wird von dem Fachmann verstanden werden, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. An anderen Stellen sind wohlbekannte Verfahren, Prozeduren, Komponente und Schaltkreise nicht im Detail beschrieben, um nicht die vorliegende Erfindung zu verschleiern.
- Es kann Gebrauch von den Ausdrücken „gekoppelt“ und „verbunden“ zusammen mit deren Abwandlungen gemacht werden. Es sollte allerdings verstanden werden, dass diese Ausdrücke nicht als Synonyme füreinander gedacht sind. Stattdessen kann bei bestimmten Ausführungsbeispielen „verbunden“ verwendet werden, um anzugeben, dass zwei oder mehrere Elemente in direktem physikalischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt“ kann verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder in direktem oder indirektem (mit anderen zwischen liegenden Elemente zwischen diesen) physikalischen und elektrischen Kontakt miteinander stehen und/oder, dass zwei oder mehr Elemente miteinander kooperieren oder interagieren (zum Beispiel in einer Ursache-Wirkung-Beziehung).
- Das in
1 veranschaulichte Ausführungsbeispiel zeigt eine Architektur, die es einem Prozessor und mehreren autonomen Speichereinrichtungen102 ermöglicht, zur Kommunikation in einem verteilten Subsystem10 in Übereinstimmung mit der vorliegenden Erfindung eingerichtet zu werden. Um eine Kommunikation zwischen einer großen Anzahl von Einrichtungen zu bewerkstelligen, wird jeder der autonomen Speichereinrichtungen102 im verteilten Subsystem10 ihre eigene Adresse zugeordnet. Dies gibt jeder autonomen Speichereinrichtung102 die Fähigkeit, Nachrichten an andere Einrichtungen im Subsystem weiterzuleiten (engl. to route). Obwohl die Figur autonome Speichereinrichtungen in eine 3x3 Matrix veranschaulicht, kann das verteilte Subsystem10 so eingerichtet sein, dass es eine viel größere Anzahl von Einrichtungen in dem Netzwerk aufweist. - Bei einem Ausführungsbeispiel kann das Adressschema absolut sein, bei dem jeder autonomen Speichereinrichtung
102 eine eindeutige statische Adresse zugeordnet wird, wie sie durch eine Route zu der autonomen Speichereinrichtung bestimmt wird; zum Beispiel kann die Speichereinrichtung als eine spezifiziert sein, die auf einem bestimmten Anschluss der Einrichtung vorhanden ist und elektrisch mit einem Anschluss der Grundeinrichtung verbunden ist. Bei einem alternativen Ausführungsbeispiel kann die Adresse der autonomen Speichereinrichtung dynamisch bestimmt werden, während sie innerhalb des Systems betrieben wird. Dadurch, dass es möglich ist, die Adresse dynamisch zu bestimmen, kann das Adressschema für die Zwecke der Optimierung während des Systembetriebs modifiziert werden. - Bei der Systeminbetriebnahme kann das Netzwerk durch das Übertragen von Weiterleitungsinformationen (engl.: routing information) initialisiert werden, um zu ermöglichen, dass diese Zwischen-Einrichtungskommunikation bzw. Inter-Einrichtungskommunikation stattfindet. Alternativ kann sich das System selbst als autonome Speichereinrichtung
102 organisieren, wobei es eine Leitwegtabelle (engl.: routing table) unter Verwendung einer Abtasttechnik zum Bestimmen von Nachbarn bildet. Die Leitwegtabelle verfolgt die Einrichtung innerhalb des verteilten Subsystems10 nach und kann Parameter speichern, wie beispielsweise die Latenzkosten, basierend auf einem Ort von irgendeiner Einrichtung, die mit einer anderen Einrichtung spricht. - Die Nachricht, die auf dem Bus passiert, der die verteilten autonomen Speichereinrichtungen
102 verbindet, kann moduliert sein oder ein Standardnetzwerk sein. Ein solches Standardnetzwerk kann das Übertragungs-Steuer-Protokoll/Internetprotokoll (TCP/IP; engl.: transmission control protocol/internet protocol) sein, das zum Verifizeren der korrekten Übertragung von Daten von einer Einrichtung zur anderen verantwortlich ist. Das TCP/IP stellt auch eine Unterstützung zum Erkennen von Fehlern oder Datenverlust bereit, was die Neuübertragung auslöst, bis die Daten als korrekt übertragen und vollständig empfangen verifiziert sind. Ein anderer Typ von Netzwerk, den das verteilte Subsystem10 verwenden kann, ist die InfiniBand-Architektur, die ein Gewebe erzeugt, um eine Kommunikation mit niedriger Latenz zu ermöglichen, Clustering mit hoher Bandbreite und Speichertraffic. Auch die Kommunikation unter den autonomen Speichereinrichtungen102 kann Ethernet in einem rahmenbasierten Netzwerk verwenden. - Die Figur zeigt, dass unterschiedliche Speicherarten an autonomen Speichereinrichtungen
102 angebracht sein können. Als ein Beispiel kann jeder Knoten dieses autonomen Speichers ein NAND, DRAM oder andere flüchtige/nicht flüchtige Kombinationen daraus für die „off-line“-Speicherung sein oder ein Notizblockplatz angebracht haben. In der Figur ist auch ein Drahtlosarchitektur Ausführungsbeispiel veranschaulicht, das die Speichereinrichtungen102 als mit einer Antenne zum Übertragen von Drahtlossignalen gekoppelt zeigt. Die Antennen können Nahfeldrahmenantennen sein, kapazitive Platten oder Dipolantennen, die es Funk ermöglichen, der zur Speichereinrichtung gehört, die Speichermatrizen zu programmieren und Algorithmen und Datenbanken durch Kommunikation unter Verwendung von Kommunikationssignalen über den Äther herunterzuladen. Eine Konfigurationsleitwegtabelle verfolgt die Speichereinrichtungen nach, um Kommunikationen zwischen Einrichtungen innerhalb des verteilten Subsystems10 zu ermöglichen. - Die Figur zeigt eine Drahtlosverbindung zwischen dem Steuerblock und den Dies (engl.: dies, auch Plättchen genannt), die als die autonomen Speichereinrichtungen
102 in dem Speichersubsystem gezeigt sind. Bei diesem Ausführungsbeispiel überwacht der Steuerblock Überlastung beim Traffic bzw. Verkehr an die verschiedenen Blöcke und reagiert darauf. Der Bustraffic ist ein Aspekt einer Ressource, die die Systemleistung beschränken kann. Um Leistungsbeschränkungen zu verringern, kann der Überwachungsblock Bereiche einer Datenbank an eine andere Die verschieben, um Suchen zu parallelisieren oder Rechenressourcen vollständig zu verwenden. Als solcher überwacht der Speicherblock beschränkte Ressourcen, um die Systemleistung zu optimieren, wobei der Bustraffic nur ein Beispiel einer Ressource ist, die durch Relozieren von Daten unter den Speichereinrichtungen102 optimiert werden kann. - Bei diesem Ausführungsbeispiel kann die Die-Zu-Die-Drahtloskommunikation Antennen verwenden, die physikalisch nur zum Kommunizieren mit anderen Dies angeordnet sind, die in demselben Stapel (engl.: stack) sind. Um eine Inter-Die-Drahtloskommunikation zu erreichen, kann jede der autonomen Speichereinrichtungen
102 eine Antenne an Eingabeanschlüssen, um Signale zu empfangen, und Antennen an Ausgabeanschlüssen, um Signale zu übertragen. Die Drahtloskommunikation kann den Bedarf an Bonddrähten minimieren. -
2 zeigt eine vereinfachte Blockdarstellung der autonomen Speichereinrichtung102 , die die Rechnerknoten und Beschleunigungshardware202 enthält, um Berechnungen und Manipulationen der Inhalte, die innerhalb des Speichers gespeichert sind, bereitzustellen. Das verteilte Subsystem10 weist mehrere autonome Speichereinrichtungen102 auf, wobei jede Einrichtung Kommunikationen mit Nachbar-Die unter Verwendung von Inter-Die-Kommunikationsanschlüssen204 ,206 ,208 und210 handhabt. Diese Inter-Die-Kommunikationspfade ermöglichen eine autonome Kommunikation unter einem großen Pool an Die, wie beispielsweise mehrere tausend Die im verteilten Subsystem10 . - Die autonome Speichereinrichtung
102 weist sowohl ein Betriebssystem als auch Verarbeitungsfähigkeiten auf und ist sich der Bedeutung seiner Inhalte bewusst. Anders ausgedrückt ist sich die Einrichtung102 der Details bewusst, wo bestimmte Datenbanktabellen angeordnet sind, die Felddefinitionen für jede dieser Tabellen und wie diese miteinander verlinkt sind. Durch Verwenden dieser Information kann die autonome Speichereinrichtung102 unabhängig Daten in der gespeicherten Datenbank verarbeiten, um Ergebnisse zu erhalten, die an den Hostprozessor zurückgegeben werden können. -
3 zeigt ein Ausführungsbeispiel von funktionalen Blöcken für die autonome Speichereinrichtung102 in Übereinstimmung mit der vorliegenden Erfindung. Die autonome Speichereinrichtung weist eine intelligente Speicherverarbeitungsengine302 auf, die Steuerfunktionen und Verabreitungsbeschleunigung304 bereitstellt, um die Verwendung von Modellen zu ermöglichen, die Berechnungen und speicherintensive Operationen innerhalb des intelligenten Speichers mit berücksichtigen. Eine Mehrzwecksteuerengine306 ist ein Mikrokontroller zum Empfangen von heruntergeladenen Endbenutzerfirmware oder Software zum Steuern anderer Speichereinrichtungen neben anderen Funktionen. Die Steuerengine306 kann Instruktionen innerhalb des Pools autonomer Speicher initiieren und Information aus dem Pool extrahieren, die durch eine Hostschnittstelle320 an eine Hoststeuerung weitergeleitet werden kann. Protokolle und Algorithmen ermöglichen eine Arbitrierung unter den Einrichtungen, dass Leitweginformation unter den Einrichtungen weitergeleitet wird und dass Algorithmen ablaufen können, um die Poolebene zu optimieren. - Ein Hardwarebeschleuniger
308 stellt eine intelligente Speicherverarbeitungsengine304 mit Beschleunigungshardware für Berechnungen und Manipulationen der Inhalte, die innerhalb des Speichers318 gespeichert sind, bereit. Der Hardwarebeschleuniger308 ist in der Lage, Matrixoperationen, einfache Vergleiche mit Maskierbits, Speicherkopien und Bewegungen, usw. zu handhaben. Ein Codespeicherblock310 speichert Code, der von einem Hostprozessor durch Hostschnittstelle320 zur Verwendung durch die Mehrzwecksteuerengine306 heruntergeladen wird. Ein Anwendungs-Programmier-Schnittstellen-(API; engl.: application programming interface)-Verwaltungsblock 312 führte die gespeicherten Routinen und Protokolle, die von Bibliotheken oder den Betriebssystemdiensten bereitgestellt werden, aus, um die Bildung von Anwendungen zu unterstützen. Die Software-API sind flexibel und machen von der Kenntnis der zugrunde liegenden Hardware Gebrauch, um optimale Leistung zu erreichen. Eine Konfigurationsleitweg-Tabelle314 verfolgt die anderen Speichereinrichtungen innerhalb des verteilten Subsystems10 nach. Die Konfiguration des verteilten Subsystems10 kann dynamisch bestimmt werden und die Leitwegtabelle kann aktualisiert werden, während die autonome Speichereinrichtung102 innerhalb des Systems betrieben wird. - Es ist üblich, Datenstrukturen in einem flachen (engl.: flat) Speicherbereich zu speichern. Obwohl es eine endlose Anzahl von möglichen Datenstrukturen gibt, können einige übliche Strukturen, wie beispielsweise Matrizen und verlinkte Listen verwendet werden, um zu veranschaulichen, wie der autonome Speicher verwendet werden kann, um die Speicherfunktionalität zu erweitern. Die Matrizen decken ein breites Spektrum von Domänen einschließlich denjenigen ab, die sich aus einer breiten Anzahl von Problemen mit darunter liegenden 2D oder 3D Geometrien ergeben, wie beispielsweise strukturelle Konstruktion, numerische Strömungssimulation, Bauformverkleinerung, Halbleitereinrichtungen, Thermodynamik, Materialien, Akustik, Computergrafik/Vision, Robotik/Kinematik, neben anderen. Matrizen können Anwendungen abdecken, die typischerweise nicht eine derartige Geometrie haben, wie beispielsweise Schaltkreissimulation, ökonomische und Finanzmodellierung, theoretische und Quantenchemie, chemische Prozesssimulation, Mathematik und Statistik, Leistungsnetze und andere Netzwerke und Grafen.
- Beim Verarbeiten von Information, die in Matrizen gespeichert ist, werden alle oder ein Teil der Matrizen aus dem Speicher
318 gelesen und Berechnungen werden auf den Inhalten der Matrizen durch den Hardwarebeschleuniger308 ausgeführt. Bei Stand der Technik Systemen werden große Bereiche der Matrizen aus dem Hauptspeicher empfangen und in Seiten eingeteilt, um in dem Prozessorzwischenspeicher gespeichert zu werden. Diese Matrizen schließen Berechnungen mit ein, die iterativ sind, und die die gesamte Matrizen mit einschließen können, so dass Stand der Technik Systeme nicht die gesamte Inhalte in dem Prozessorzwischenspeicher speichern können, die für die Verarbeitung benötigt werden. - Allerdings kann die autonome Speichereinrichtung
102 die Effizienz beim Ausführen von Matrixalgorithmen signifikant verbessern. Die autonome Speichereinrichtung102 kann die Matrizen unter Verwendung einer flachen Speicherabbildung (engl.: flat memory map) speichern und kann eine enge Kopplung des Speichers318 und eingebettete Hardwarebeschleuniger308 verwenden, um die Operationen an diesen Matrizen stark zu beschleunigen. Matrixberechnungen können weiter durch vernünftige Organisation der Matrizen innerhalb des verteilten Subsystems10 verbessert werden, um Matrizenoperationen mit hoher Leistung zu bewerkstelligen. Als ein Beispiel können gemeinsam geteilte Operanten bei einer Operation entsprechend geplant werden, um vorteilhafterweise innerhalb derselben autonomen Speichereinrichtung102 zu residieren, so dass die Vervollständigung dieser Operationen keine Kommunikation mit anderen Einrichtungen erfordert. - Es ist üblich, verlinkte Listen in einer flachen Speicherabbildung zu erzeugen, um die Speicherung und Manipulation von geordneten Informationssätzen zu ermöglichen. Beim Durchlaufen einer verlinkten Liste ist es im Allgemeinen erforderlich, dass jede Aufzeichnung untersucht wird, um zu bestimmen, ob sie zu einem Muster passt oder um einfach einen Zeiger auf die nachfolgende Aufzeichnung zu erhalten. Durch Verwenden des verteilten Subsystems
10 ist es möglich, verlinkte Listen mit einem Minimum an Hostbustraffic zu parsen. Dann kann jede autonome Speichereinrichtung102 jede Aufzeichnung untersuchen, um nach spezifischen Mustern zu sehen und einen Zeiger auf die nächste Aufzeichnung zu finden, bevor wiederholt wird. Sobald Ergebnisse gefunden sind, verwendet die autonome Speichereinrichtung102 die Hostschnittstelle320 , um passende Ergebnisse an den Host zurückzugeben. - Datenbanken umfassen gewöhnlicherweise große Datensätze, die in Gruppen von verlinkten Tabellen organisiert sind. Es werden Indexdateien erzeugt und gewartet und verwendet, um Suchen nach Informationen in diesen Tabellen zu beschleunigen. Bei Stand der Technik-Systemen sind manche Datenbanken größer als der nahe Speicher, der für den Prozessor verfügbar ist, der auf diesen Datenbanken arbeitet, und ein signifikanter Teil von Speicherzugriffen kann IO-Aufrufe mit langer Latenz haben, die die Systemleistung beschneiden.
- Im Gegensatz zu den Stand der Technik Systemen kann das verteilte Subsystem
10 eine große Anzahl von autonomen Speichereinrichtungen102 haben, die eingerichtet sind, um miteinander und mit dem Hostprozessor zu kommunizieren. Die im verteilten Subsystem10 gefundene Speicherdichte kann primär durch die Speicherkosten begrenzt sein. Ferner würden die meisten Operationen mit der auf demselben Die wie der Speicher318 eingebettete Steuerengine306 Bustraffic mit einschließen, der intern zu dem Speicher-Die ist, und beschränkten Traffic, der extern zu dem Speicher-Die ist. Angesichts der engen Kopplung einer Mehrzwecksteuerengine306 und der hohen Dichte an Speicher318 kann der Bandbreitenflaschenhals, der durch einen Prozessor verursacht wird, der auf einen externen Speicher zugreift, eliminiert werden. Eine Beschleunigungstechnik im Hardwarebeschleuniger308 kann verwendet werden, um die Leistung des verteilten Subsystems10 dramatisch zu vergrößern. - Dadurch, dass das Subsystem
10 für den spezifischen Zweck der Manipulation von Speicherinhalt ausgeführt ist, kann ein endlicher Satz von nützlichen Hardwareprimitiven implementiert werden. Um eine Datenbank im verteilten Subsystem10 zu implementieren, wird die Datenbank gesamt oder in Teilen an das Speichersubsystem zusammen mit Informationen darüber übertragen, wie die Datenbank organisiert ist. Es werden auch Algorithmen zur Verarbeitung von Information in der Datenbank heruntergeladen. Wenn der Initialisierungsprozess vervollständigt ist, erzeugt der Host Befehle auf sehr hoher Ebene an das verteilte Subsystem10 . Anstatt, dass spezifische Adresse gelesen und geschrieben werden, um eine Funktion auf höherer Ebene auszuführen, kann der Hostprozessor einen Befehl ausstellen, wie beispielsweise „parse Tabelle A, um alle Aufzeichnungen zu finden, die zu einem Muster passen, extrahiere Zeiger auf Tabelle B für jede dieser Aufzeichnungen, gebe Felder a, b, c aus Tabelle A und d und e aus Tabelle B zurück“. Alle Operationen laufen innerhalb des verteilten Subsystems10 ab und eine kurze Liste von Ergebnissen wird an den Hostprozessor zurückgegeben. - Autonomer Speicher hat einen tiefgreifenden Vorteil bei dem Fall, bei dem eine lineare Suche auf einer großen Datenbank ausgeführt wird. Als Beispiel kann, bei Verwendung von Parallelverarbeitung (engl.: pipelining) für eine autonome Speichereinrichtung
102 mit 1GB Speicherdichte mit 8 Bänken von 2M Seiten mit jeweils 64B, eine Seite mit einem Zielmuster verglichen werden, bei einer Taktrate von ungefähr 10 Nanosekunden pro Seite, was zu einer möglichen Suchzeit für die 1GB Die von ungefähr 20 Millisekunden führt. Während dies für sich selbst ein eindrucksvolles Ergebnis ist, ist der Nutzen, dass diese Lösung skalierbar ist und folglich die Suchzeit für zwei autonome Speichereinrichtung102 mit jeweils 1GB Speicherdichte auch ungefähr 20 Millisekunden betragen würde, sowie die Suchzeit für einen Petabyte Speicher oder für jeden beliebig großen Pool an Speicher. Das Verwenden autonomer Speichereinrichtungen102 in einem verteilten Subsystem zum Ausführen von linearen Suchen ist durch die Kosten für die Matrix von Speichereinrichtungen102 zusammen mit thermischer Verwaltung und Leistungsbeschränkungen begrenzt. - Systemadministrationfunktionen können auch von dem Vorteil autonomer Speichereinrichtungen
102 in einem verteilten Subsystem10 Gebrauch machen. Zum Beispiel kann ein Datencenter einen Virusscan am verteilten Subsystem10 durchführen und wenn ein Virus erkannt wird, kann das Datencenter für 20 Millisekunden „heruntergefahren werden“ (engl.: downed), wobei während dieser Zeit ein Such- und Zerstörungsalgorithmus auf jeden Bit ausgeführt wird, um den Zielvirus zu isolieren und jedes Auftreten von diesem zu unterbinden. - Autonome Speichereinrichtungen
102 im verteilten Subsystem10 stellen einen Vorteil gegenüber Stand der Technik-Systemen bereit, wenn die „Streu-/Sammel-‟ Operationen (engl.: „Scatter/Gather“ operations) ausgeführt werden. „Streu-/Sammel-‟ Operationen stellen eine Abfolge von Schreibvorgängen an unterschiedlichen Adressen bereit, die in einen einzelnen zusammengesetzten Befehl kompiliert sind, der von dem Speicher oder dem IO-Subsystem ausgeführt wird. Diese Operationen werden geparst und an mehrere Die im verteilten Subsystem10 ausgesendet, wobei sie an diesem Punkt diese autonom ausgeführt werden. Der resultierende Status wird angesammelt und an den Host berichtet, wenn die gesamte Operation beendet ist. - Autonome Speichereinrichtungen
102 im verteilten Subsystem10 sind ideal für manche Anwendungsklassen, wie beispielsweise Bildverarbeitung. Diese Klassen sind gut geeignet für die parallele Berechnung, wo das Bild in viele kleinere Segmente unterteilt werden kann, welche relativ unabhängig verarbeitet werden. Nachdem Berechnungen an diesen kleinen Segmenten beendet wurden, können dann weitere Berechnungen an Gruppen dieser Segmente ausgeführt werden, um ein größeres Segment zu bilden, bis das Bild auf einer Ebene verarbeitet ist, die das gesamte Bild umfasst. - Durch Verwenden autonomer Speichereinrichtungen
102 können viele oder alle dieser Berechnungen auf niedriger Ebene parallel auf einer Bankebene des autonomen Speichers durchgeführt werden. Berechnungen über Bankgrenzen hinweg, können innerhalb der einen Einrichtung vorgenommen werden und durch Verwenden von Inter-Die-Kommunikation können Berechnungen auf höherer Ebene auf der Subsystemebene durchgeführt werden. Andere parallele Berechnungsaufgaben folgen einem ähnlichen Modell und können Iteration zum Verfeinern der Genauigkeit der Ergebnisse mit einschließen oder die schrittweise Simulation durch die Zeit. - Das verteilte Subsystem
10 stellt eine Interaktion über die erwarteten Lese- und Schreiboperationen hinaus bereit, die von den Speichereinrichtungen ermöglicht werden. Die autonome Speichereinrichtung102 interagiert mit bestehender Computerinfrastruktur unter Verwendung von einer oder mehreren Schnittstellen, die Kommunikation sowohl mit dem Hostcomputer als auch mit dem Netzwerk erlauben. Aus der Hostcomputerperspektive kann die Interaktion eine Speicher- oder Blockschnittstelle sein, aber zu der autonomen Speichereinrichtung102 wird eine flexible Schnittstelle bereitgestellt, auf der oben auf Software API gebildet werden können. Diese API können entsprechend skaliert sein, um entweder dem Hostsystem Funktionalität darzulegen oder einen Weg zum Weiterleiten der Anfrage unter anderen autonomen Speichereinrichtungen bereitzustellen. - Die autonome Speichereinrichtungs-102-Schnittstelle zu anderen Einrichtungen im verteilten Subsystem
10 stellt einen Weg zur Weiterleitung von Nachrichten bereit, die einen Befehl in einer Liste von Parametern enthalten können. Die Parameter können tatsächliche Daten enthalten, Adressinformationen, die sich auf Daten in der Matrix bezieht und Objekterkennungen, die sich auf ein Objekt, das in der Matrix angeordnet ist, beziehen. Die Parameter können auch eine Adresse enthalten oder eine Objektidentifikation (Objekt-ID) zu dem Code oder sich auf diesen beziehen, der zum Betreiben auf einen gegebenen Datensatz benötigt wird. Der Code, der zur autonomen Speichereinrichtung102 geleitet wird, kann zu dem Paradigma passen, das durch den OpenCL-Standard aufgebaut wird, beispielsweise MapProduce. Viele der bestehenden Cluster- und „Cloud-Computing“ Infrastrukturteile können innerhalb des verteilten Subsystems10 wieder verwendet werden. - Die Speichersteuerung oder eine autonome Speichereinrichtung
102 im verteilten Subsystem10 kann eine Zustandsüberwachung ausführen, um Busaktivitäten aufgrund von Datenübertragungen zwischen den Speichereinrichtungen zu bestimmen. Basierend auf den Überwachungsergebnissen kann eine Neuzuteilung von Ressourcen dynamisch ausgeführt werden, um die Systemleistung zu verbessern. Zum Beispiel kann, nachdem der Traffic innerhalb des verteilten Subsystems10 überwacht wurde, bestimmt werden, dass ein Traffic mit hoher Bandbreite im Allgemeinen zwischen zwei Speichereinrichtungen auftritt. Wenn diese Speichereinrichtungen keine benachbarten Einrichtungen sind, dann kann das Subsystem eine dieser Speichereinrichtungen wählen und die Inhalte der anderen Speichereinrichtungen relozieren, um einer einzelnen autonomen Speichereinrichtung102 zu ermöglichen, die Verarbeitung bereitzustellen, die den Algorithmus beendet. Alternativ können die Speicherinhalte von relativ entfernten Einrichtungen neu an nahe Knoten verteilt werden, um den Bustraffic zu verringern. - Ferner können Suchen des verteilten Subsystems
10 nach Nur-Lese-Inhalten einen Subsatz des Netzwerks veanlassen, konstant aktiv zu sein. In diesem Falle kann das Subsystem die Inhalte in diesem Bereich des Netzwerks replizieren, so dass viele autonome Speichereinrichtungen102 Operationen auf dem Nur-Lese-Inhalt innerhalb des verteilten Subsystems ausführen können. - Bisher sollte offensichtlich sein, dass das Ausführungsbeispiele der vorliegenden Erfindung vergrößerte Speichereffizienzen durch autonome Datenspeicherung ermöglichen. Durch Verbinden der autonomen Speichereinrichtung in einem verteilten Speichersubsystem kann ein Host eine Datenbank zu der autonomen Speichereinrichtung herunterladen. Die autonome Speichereinrichtung kann Befehle initiieren, um Bereiche der Datenbank an Nachbar-Die unter Verwendung einer Schnittstelle zu verteilen, um Inter-Die-Kommunikation innerhalb eines Pools von autonomen Speichern zu handhaben. Die autonome Speichereinrichtung kann dann Information aus dem Pool autonomer Speicher extrahieren, die durch die Hostschnittstelle an die Hoststeuerung geleitet wird.
- Während bestimmte Merkmale der Erfindung veranschaulicht und hierin beschrieben wurden, werden dem Fachmann viele Modifikationen, Substitutionen, Änderungen und Äquivalente einfallen. Es sollte daher verstanden werden, dass die beigefügten Ansprüche alle solche Modifikationen und Abänderungen abdecken sollen, so wie sie in den wahren Geist der Erfindung fallen.
Claims (20)
- Verfahren zum Betreiben eines Host mit einer verteilten Matrix von autonomen Speichereinrichtungen, das Verfahren umfassend: Übertragen einer Datenbank von dem Host an einen Speicher der autonomen Speichereinrichtungen zusammen mit Informationen darüber, wie die Datenbank organisiert ist; Verwenden von Hardwareprimitiven in jeder der autonomen Speichereinrichtungen, um Speicherinhalte zu manipulieren; Herunterladen von Algorithmen von dem Host an die autonomen Speichereinrichtungen zum Verarbeiten von Information in der Datenbank; Durchführen von Berechnungen mit einem Mikrocontroller von jeder der autonomen Speichereinrichtungen auf wenigstens Teilen der Datenbank; und Übertragen von Befehlen auf hoher Ebene von dem Host an die autonomen Speichereinrichtungen, statt spezifische Befehle und Adressen an die autonomen Speichereinrichtungen zum Ausführen einer Funktion auf hoher Ebene bereitzustellen.
- Verfahren nach
Anspruch 1 , wobei jede der autonomen Speichereinrichtungen ihr eigenes Betriebssystem verwendet. - Verfahren nach
Anspruch 1 , wobei der Host jeder der autonomen Speichereinrichtungen eine eindeutige statische Adresse zuordnet. - Verfahren nach
Anspruch 1 , wobei der Host dynamisch eine Adresse jeder der autonomen Speichereinrichtungen bestimmt. - Verfahren nach
Anspruch 1 , wobei jede der autonomen Speichereinrichtungen eine Leitwegtabelle bildet, unter Verwendung einer Abtasttechnik, um andere autonome Speichereinrichtungen innerhalb der verteilten Matrix nachzuverfolgen. - Verfahren nach
Anspruch 5 , wobei jede der autonomen Speichereinrichtungen Latenzkosten basierend auf einer Anordnung einer autonomen Speichereinrichtung in Kommunikation mit einer anderen autonomen Speichereinrichtung abspeichert. - Verfahren nach
Anspruch 1 , wobei ein Such- und Zerstörungsalgorithmus gleichzeitig auf jeder der autonomen Speichereinrichtungen in der verteilten Matrix der autonomen Speichereinrichtungen ausgeführt wird, um ein Zielvirus zu isolieren und jedes Auftreten von ihm zu unterbinden. - Verfahren zum Betreiben mehrerer autonomer Speichersubsysteme, umfassend: Übertragen einer Datenbank von einem Host an Speicher in den mehreren autonomen Speichersubsystemen zusammen mit Informationen darüber, wie die Datenbank organisiert ist; Senden eines Befehls auf hoher Ebene an die mehreren autonomen Speichersubsysteme; Durchführen von Berechnungen mit einem Mikrocontroller von jedem der mehreren autonomen Speichersubsysteme auf wenigstens Teilen der Datenbank; und Ausführen des Befehls auf hoher Ebene gleichzeitig in einem ersten und zweiten autonomen Speicher, die innerhalb jedem der mehreren Speichersubsysteme angeordnet sind.
- Verfahren zum Betreiben der mehreren autonomen Speichersubsysteme von
Anspruch 8 , wobei der erste autonome Speicher unter Verwendung einer ersten Schnittstelle zur Kommunikation mit dem Host und einer zweiten Schnittstelle zur Kommunikation mit dem zweiten autonomen Speicher in den mehreren Speichersubsysteme interagiert. - Verfahren zum Betreiben der mehreren autonomen Speichersubsysteme nach
Anspruch 8 , wobei die zweite Schnittstelle zur Kommunikation mit dem zweiten autonomen Speicher eine flexible Schnittstelle aufweist, auf der oben auf eine Software-Anwendungs-Programmierschnittstelle (API) gebildet wird. - Verfahren zum Betreiben der mehreren autonomen Speichersubsysteme nach
Anspruch 8 , wobei die zweite Schnittstelle zur Kommunikation mit dem zweiten autonomen Speicher in den autonomen Speichersubsystemen das Weiterleiten von Nachrichten aufweist, die einen Befehl und eine Liste von Parametern enthalten. - Verfahren zum Betreiben der mehreren autonomen Speichersubsysteme nach
Anspruch 11 , wobei das Weiterleiten von Nachrichten weiter das Weiterleiten von Daten, Adressinformation, die sich auf Daten in einer Matrix des zweiten autonomen Speichers bezieht und Objektkennungen, die sich auf ein Objekt beziehen, das in der Matrix angeordnet ist, aufweist. - Verfahren zum Betreiben eines verteilten Speichersubsystems, umfassend: Speichern einer Datenbank in dem verteilten Speichersubsystem, die von einem Host durch eine Hostschnittstelle heruntergeladen wird; dynamisches Bestimmen einer Konfiguration von mehreren Dies in dem verteilten Speichersubsystem, wobei jeder Die der mehreren Dies eine autonome Speichervorrichtung mit einem Mikrocontroller und Speicher umfasst; Parsen und Aussenden von Operationen an die mehreren Dies in dem verteilten Speichersubsystem, die autonom innerhalb jedem der mehreren Dies ausgeführt werden sollen; und Ansammeln von Ergebnissen und Berichten an den Host, wenn die Operation beendet ist.
- Verfahren zum Betreiben des verteilten Speichersubsystems nach
Anspruch 13 , weiter aufweisend Ausführen von gespeicherten Routinen innerhalb der mehreren Dies, die von Bibliotheken bereitgestellt werden, um das Bilden von Anwendungen zu unterstützen. - Verfahren zum Betreiben des verteilten Speichersubsystems nach
Anspruch 13 , weiter aufweisend Verwenden von Beschleunigungshardware für Berechnungen und Manipulationen der Inhalte, die innerhalb des verteilten Speichersubsystems gespeichert sind. - Verfahren zum Betreiben des verteilten Speichersubsystems nach
Anspruch 13 , weiter aufweisend Nachverfolgen von Orten von Datenbanktabellen unter den mehreren Dies in dem verteilten Speichersubsystem, um unabhängig Daten in der gespeicherten Datenbank zu verarbeiten, um die Ergebnisse an den Host zurückzugeben. - Verfahren zum Verbinden einer autonomen Speichereinrichtung in einem verteilten Speichersubsystem, umfassend: Empfangen einer Datenbank an einer Hostschnittstelle, wobei die Datenbank von einer Hoststeuerung heruntergeladen wird; und Initiieren von Befehlen innerhalb eines Mikrocontrollers der autonomen Speichervorrichtung, um Teile der Datenbank an Nachbar-Dies zu verteilen, wobei die Nachbar-Dies autonome Speichereinrichtungen sind, unter Verwendung einer Schnittstelle, um Inter-Die-Kommunikationsanschlüsse innerhalb eines Pools autonomer Speicher zu handhaben.
- Verfahren nach
Anspruch 17 , weiter aufweisend Extrahieren von Information aus dem Pool autonomer Speicher, die durch die Hostschnittstelle an die Hoststeuerung geleitet wird. - Verfahren nach
Anspruch 17 , weiter aufweisend Empfangen von Software, die von der Hoststeuerung heruntergeladen wird, die es der autonomen Speichereinrichtung ermöglicht, andere der autonomen Speichereinrichtungen zu steuern, die innerhalb des Pools autonomer Speicher kommunizieren. - Verfahren nach
Anspruch 17 , weiter aufweisend Weiterleiten von Leitweginformationen innerhalb des Pools autonomer Speicher.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/557,776 | 2009-09-11 | ||
US12/557,776 US9779057B2 (en) | 2009-09-11 | 2009-09-11 | Autonomous memory architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102010044531A1 DE102010044531A1 (de) | 2011-04-07 |
DE102010044531B4 true DE102010044531B4 (de) | 2021-05-06 |
Family
ID=43705867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102010044531.2A Active DE102010044531B4 (de) | 2009-09-11 | 2010-09-07 | Autonome Speicherarchitektur |
Country Status (5)
Country | Link |
---|---|
US (3) | US9779057B2 (de) |
JP (1) | JP5658509B2 (de) |
KR (2) | KR101793890B1 (de) |
CN (1) | CN102025766B (de) |
DE (1) | DE102010044531B4 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US8689233B2 (en) | 2012-01-25 | 2014-04-01 | International Business Machines Corporation | Distributed function execution for hybrid systems |
JP5985403B2 (ja) * | 2013-01-10 | 2016-09-06 | 株式会社東芝 | ストレージ装置 |
US10089043B2 (en) * | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US9519440B2 (en) | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US10853376B2 (en) | 2016-06-19 | 2020-12-01 | Data.World, Inc. | Collaborative dataset consolidation via distributed computer networks |
US10452975B2 (en) * | 2016-06-19 | 2019-10-22 | Data.World, Inc. | Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization |
US10411990B2 (en) * | 2017-12-18 | 2019-09-10 | At&T Intellectual Property I, L.P. | Routing stability in hybrid software-defined networking networks |
US11288013B2 (en) * | 2019-07-15 | 2022-03-29 | Micron Technology, Inc. | Hardware based status collector acceleration engine for memory sub-system operations |
Family Cites Families (126)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US52610A (en) * | 1866-02-13 | Improvement in pianos | ||
JPH062038B2 (ja) | 1987-11-18 | 1994-01-12 | 江口 光市郎 | イワシ肉消臭加工法 |
US5134711A (en) | 1988-05-13 | 1992-07-28 | At&T Bell Laboratories | Computer with intelligent memory system |
GB8816413D0 (en) | 1988-07-09 | 1988-08-17 | Int Computers Ltd | Data processing system |
US5105425A (en) | 1989-12-29 | 1992-04-14 | Westinghouse Electric Corp. | Adaptive or fault tolerant full wafer nonvolatile memory |
DE69132495T2 (de) | 1990-03-16 | 2001-06-13 | Texas Instruments Inc | Verteilter Verarbeitungsspeicher |
GB9023096D0 (en) | 1990-10-24 | 1990-12-05 | Int Computers Ltd | Database search processor |
JPH052610A (ja) | 1991-06-25 | 1993-01-08 | Mitsubishi Electric Corp | リレーシヨナルデータベースにおける集約演算処理方式 |
US7887089B2 (en) * | 1992-05-05 | 2011-02-15 | Automotive Technologies International, Inc. | Vehicular occupant protection system control arrangement and method using multiple sensor systems |
JP2579419B2 (ja) | 1992-05-22 | 1997-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・メモリ・システム |
US5671430A (en) | 1993-06-30 | 1997-09-23 | Gunzinger; Anton | Parallel data processing system with communication apparatus control |
US5835755A (en) | 1994-04-04 | 1998-11-10 | At&T Global Information Solutions Company | Multi-processor computer system for operating parallel client/server database processes |
CA2145106C (en) | 1994-04-22 | 1999-08-24 | Abhaya Asthana | Intelligent memory-based input/output system |
US6101620A (en) | 1995-04-18 | 2000-08-08 | Neomagic Corp. | Testable interleaved dual-DRAM architecture for a video memory controller with split internal/external memory |
US5754948A (en) | 1995-12-29 | 1998-05-19 | University Of North Carolina At Charlotte | Millimeter-wave wireless interconnection of electronic components |
JP3289101B2 (ja) | 1996-01-25 | 2002-06-04 | 東京エレクトロン株式会社 | フラッシュ・ディスク・システムの初期化方法及び装置 |
KR100359414B1 (ko) | 1996-01-25 | 2003-01-24 | 동경 엘렉트론 디바이스 주식회사 | 데이타독출/기록방법및그를이용한메모리제어장치및시스템 |
US6047334A (en) | 1997-06-17 | 2000-04-04 | Intel Corporation | System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence |
WO1999019805A1 (en) * | 1997-10-10 | 1999-04-22 | Rambus Incorporated | Method and apparatus for two step memory write operations |
US6105130A (en) | 1997-12-23 | 2000-08-15 | Adaptec, Inc. | Method for selectively booting from a desired peripheral device |
JPH11232180A (ja) | 1998-02-10 | 1999-08-27 | Hitachi Ltd | データ処理装置 |
US6751606B1 (en) | 1998-12-23 | 2004-06-15 | Microsoft Corporation | System for enhancing a query interface |
US6208501B1 (en) * | 1999-06-14 | 2001-03-27 | Dielectric Laboratories, Inc. | Standing axial-leaded surface mount capacitor |
US7610559B1 (en) | 1999-07-27 | 2009-10-27 | Samsung Electronics Co., Ltd. | Device customized home network top-level information architecture |
US20020009119A1 (en) | 2000-02-11 | 2002-01-24 | Matthew William T. | Environmental heat stress monitor |
KR20030007447A (ko) | 2000-03-03 | 2003-01-23 | 테너 네트워크스, 인크. | 내부 프로세서 메모리 공간을 이용한 고속 데이터 처리 |
US20020161848A1 (en) * | 2000-03-03 | 2002-10-31 | Willman Charles A. | Systems and methods for facilitating memory access in information management environments |
US20020124137A1 (en) | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
US6516380B2 (en) | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6586276B2 (en) * | 2001-07-11 | 2003-07-01 | Intel Corporation | Method for fabricating a microelectronic device using wafer-level adhesion layer deposition |
US7356568B2 (en) | 2002-12-12 | 2008-04-08 | International Business Machines Corporation | Method, processing unit and data processing system for microprocessor communication in a multi-processor system |
US20040186832A1 (en) * | 2003-01-16 | 2004-09-23 | Jardin Cary A. | System and method for controlling processing in a distributed system |
US7581080B2 (en) | 2003-04-23 | 2009-08-25 | Micron Technology, Inc. | Method for manipulating data in a group of processing elements according to locally maintained counts |
DE10344008A1 (de) * | 2003-09-23 | 2005-04-14 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug |
GB2406399A (en) | 2003-09-23 | 2005-03-30 | Ibm | Seaching within a computer network by entering a search term and optional URI into a web browser |
US7050351B2 (en) * | 2003-12-30 | 2006-05-23 | Intel Corporation | Method and apparatus for multiple row caches per bank |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7487288B2 (en) | 2004-05-14 | 2009-02-03 | International Business Machines Corporation | Dynamic loading of virtual volume data in a virtual tape server |
US7490354B2 (en) * | 2004-06-10 | 2009-02-10 | International Business Machines Corporation | Virus detection in a network |
US7243200B2 (en) | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
WO2006095508A1 (ja) * | 2005-03-08 | 2006-09-14 | Nippon Telegraph And Telephone Corporation | フラッディング抑制方法 |
US7978682B2 (en) | 2005-05-09 | 2011-07-12 | At&T Intellectual Property I, Lp | Methods, systems, and computer-readable media for optimizing the communication of data packets in a data network |
US7634622B1 (en) | 2005-06-14 | 2009-12-15 | Consentry Networks, Inc. | Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US20070023371A1 (en) | 2005-07-26 | 2007-02-01 | Noga Michael J | Parts storage system |
US20070165457A1 (en) | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
US7558859B2 (en) | 2005-10-17 | 2009-07-07 | Microsoft Corporation | Peer-to-peer auction based data distribution |
US8275949B2 (en) | 2005-12-13 | 2012-09-25 | International Business Machines Corporation | System support storage and computer system |
US20070150699A1 (en) * | 2005-12-28 | 2007-06-28 | Schoinas Ioannis T | Firm partitioning in a system with a point-to-point interconnect |
US7609561B2 (en) | 2006-01-18 | 2009-10-27 | Apple Inc. | Disabling faulty flash memory dies |
JP4786354B2 (ja) | 2006-01-27 | 2011-10-05 | 株式会社日立製作所 | iSCSI通信制御方法とそれを用いた記憶システム |
DE102006009027A1 (de) | 2006-02-27 | 2007-08-30 | Infineon Technologies Ag | Speicheranordnung |
US7756898B2 (en) | 2006-03-31 | 2010-07-13 | Isilon Systems, Inc. | Systems and methods for notifying listeners of events |
TW200743991A (en) | 2006-05-18 | 2007-12-01 | Realtek Semiconductor Corp | Data search method and apparatus thereof |
US7647454B2 (en) * | 2006-06-12 | 2010-01-12 | Hewlett-Packard Development Company, L.P. | Transactional shared memory system and method of control |
JP5491176B2 (ja) * | 2006-06-21 | 2014-05-14 | エレメント シーエックスアイ,エルエルシー | 回復能力を有する集積回路アーキテクチャのための要素コントローラ |
US7941579B2 (en) | 2006-06-30 | 2011-05-10 | Brother Kogyo Kabushiki Kaisha | Communication system for authenticating authority of host device for accessing storage medium set to periphery device |
US8601155B2 (en) | 2006-08-16 | 2013-12-03 | Oracle America, Inc. | Telemetry stream performance analysis and optimization |
US7952184B2 (en) * | 2006-08-31 | 2011-05-31 | Micron Technology, Inc. | Distributed semiconductor device methods, apparatus, and systems |
US7788243B2 (en) * | 2006-09-08 | 2010-08-31 | Sybase, Inc. | System and methods for optimizing data transfer among various resources in a distributed environment |
US7657705B2 (en) | 2006-09-27 | 2010-02-02 | Lsi Corporation | Method and apparatus of a RAID configuration module |
US7477535B2 (en) * | 2006-10-05 | 2009-01-13 | Nokia Corporation | 3D chip arrangement including memory manager |
US7761485B2 (en) * | 2006-10-25 | 2010-07-20 | Zeugma Systems Inc. | Distributed database |
US8285707B2 (en) | 2006-11-08 | 2012-10-09 | International Business Machines Corporation | Method of querying relational database management systems |
US8510481B2 (en) * | 2007-01-03 | 2013-08-13 | Apple Inc. | Memory access without internal microprocessor intervention |
US8637972B2 (en) * | 2007-06-08 | 2014-01-28 | Sandisk Technologies Inc. | Two-sided substrate lead connection for minimizing kerf width on a semiconductor substrate panel |
US7761687B2 (en) * | 2007-06-26 | 2010-07-20 | International Business Machines Corporation | Ultrascalable petaflop parallel supercomputer |
US8037270B2 (en) * | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for memory chip for high capacity memory subsystem supporting replication of command data |
US8433842B2 (en) | 2007-06-29 | 2013-04-30 | Sandisk Technologies Inc. | Method for communicating with a non-volatile memory storage device |
US8211709B2 (en) * | 2007-08-22 | 2012-07-03 | Wisconsin Alumni Research Foundation | Method for controlling communication between multiple access ports in a microfluidic device |
US8320373B2 (en) | 2007-08-23 | 2012-11-27 | Qualcomm Incorporated | Packet-based processing system |
US7895151B2 (en) | 2008-06-23 | 2011-02-22 | Teradata Us, Inc. | Fast bulk loading and incremental loading of data into a database |
JP2009051716A (ja) | 2007-08-29 | 2009-03-12 | Sekisui Chem Co Ltd | 層状珪酸塩化合物及びその製造方法 |
US7623365B2 (en) | 2007-08-29 | 2009-11-24 | Micron Technology, Inc. | Memory device interface methods, apparatus, and systems |
US8044497B2 (en) * | 2007-09-10 | 2011-10-25 | Intel Corporation | Stacked die package |
US7764498B2 (en) * | 2007-09-24 | 2010-07-27 | Sixis, Inc. | Comb-shaped power bus bar assembly structure having integrated capacitors |
US7913033B2 (en) | 2007-10-09 | 2011-03-22 | Micron Technology, Inc. | Non-volatile memory device having assignable network identification |
US7816934B2 (en) * | 2007-10-16 | 2010-10-19 | Micron Technology, Inc. | Reconfigurable connections for stacked semiconductor devices |
TWI346289B (en) | 2007-12-19 | 2011-08-01 | Ralink Technology Corp | Peripheral complying with sdio standard and method for managing sdio command |
US8751755B2 (en) | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US8194433B2 (en) | 2008-02-20 | 2012-06-05 | Ovonyx, Inc. | Method and apparatus for accessing a bidirectional memory |
JP2009211233A (ja) | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US7979757B2 (en) * | 2008-06-03 | 2011-07-12 | Micron Technology, Inc. | Method and apparatus for testing high capacity/high bandwidth memory devices |
WO2009153687A1 (en) * | 2008-06-18 | 2009-12-23 | Petascan Ltd | Distributed hardware-based data querying |
US8407399B2 (en) | 2008-10-29 | 2013-03-26 | Sandisk Il Ltd. | Method and apparatus for enforcing a flash memory caching policy |
US20100161914A1 (en) * | 2008-12-23 | 2010-06-24 | Eilert Sean S | Autonomous memory subsystems in computing platforms |
US8493979B2 (en) | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
US20100180182A1 (en) * | 2009-01-09 | 2010-07-15 | Seagate Technology Llc | Data memory device and controller with interface error detection and handling logic |
US8129834B2 (en) * | 2009-01-26 | 2012-03-06 | Research Triangle Institute | Integral metal structure with conductive post portions |
US8261019B2 (en) * | 2009-02-13 | 2012-09-04 | Oracle America, Inc. | Conveying critical data in a multiprocessor system |
US8549092B2 (en) | 2009-02-19 | 2013-10-01 | Micron Technology, Inc. | Memory network methods, apparatus, and systems |
TWI406130B (zh) | 2009-03-10 | 2013-08-21 | Phison Electronics Corp | 資料處理系統、控制器及其搜尋特定記憶體區的方法 |
US8427952B1 (en) | 2009-03-24 | 2013-04-23 | Packet Plus, Inc. | Microcode engine for packet processing |
US8259506B1 (en) * | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8942113B2 (en) | 2009-05-07 | 2015-01-27 | Verizon Patent And Licensing Inc. | System and method for dynamically adjusting routing metrics based on power consumption |
CN102014011A (zh) | 2009-09-04 | 2011-04-13 | 中兴通讯股份有限公司 | 环网保护方法与系统 |
US8972627B2 (en) | 2009-09-09 | 2015-03-03 | Fusion-Io, Inc. | Apparatus, system, and method for managing operations for data storage media |
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US9015440B2 (en) | 2009-09-11 | 2015-04-21 | Micron Technology, Inc. | Autonomous memory subsystem architecture |
US8374022B2 (en) | 2009-12-21 | 2013-02-12 | Intel Corporation | Programming phase change memories using ovonic threshold switches |
US8954714B2 (en) | 2010-02-01 | 2015-02-10 | Altera Corporation | Processor with cycle offsets and delay lines to allow scheduling of instructions through time |
US10803066B2 (en) | 2010-06-29 | 2020-10-13 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators |
KR20120004162A (ko) | 2010-07-06 | 2012-01-12 | 삼성전자주식회사 | 데이터베이스 관리 방법 및 이를 이용한 데이터베이스 서버 시스템 |
US9792307B2 (en) | 2010-07-27 | 2017-10-17 | Oracle International Corporation | Enterprise-based searching of new and updated data |
US8930618B2 (en) | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
US8595414B2 (en) | 2010-09-30 | 2013-11-26 | Apple Inc. | Selectively combining commands for a system having non-volatile memory |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
JP5238791B2 (ja) | 2010-11-10 | 2013-07-17 | 株式会社東芝 | 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法 |
JP2012159903A (ja) | 2011-01-31 | 2012-08-23 | Fujitsu Semiconductor Ltd | データ処理システム、データ処理装置、及びデータ処理方法 |
US8478736B2 (en) | 2011-02-08 | 2013-07-02 | International Business Machines Corporation | Pattern matching accelerator |
US8756405B2 (en) | 2011-05-09 | 2014-06-17 | Freescale Semiconductor, Inc. | Selective routing of local memory accesses and device thereof |
KR101306622B1 (ko) | 2011-06-22 | 2013-09-11 | 주식회사 에이디칩스 | 명령어 큐 제어장치 |
JP2013045378A (ja) | 2011-08-26 | 2013-03-04 | Fujitsu Ltd | ストレージ制御方法、情報処理装置およびプログラム |
JP5852741B2 (ja) | 2011-09-09 | 2016-02-03 | インテル・コーポレーション | メモリデバイスにおけるパス分離 |
US8775685B1 (en) | 2011-10-13 | 2014-07-08 | Xilinx, Inc. | Parallel processing of network packets |
CN102521535A (zh) | 2011-12-05 | 2012-06-27 | 苏州希图视鼎微电子有限公司 | 通过特定指令集来进行相关运算的信息安全协处理器 |
US20130173655A1 (en) | 2012-01-04 | 2013-07-04 | International Business Machines Corporation | Selective fetching of search results |
US9245926B2 (en) | 2012-05-07 | 2016-01-26 | Micron Technology, Inc. | Apparatuses and methods including memory access in cross point memory |
US8675423B2 (en) | 2012-05-07 | 2014-03-18 | Micron Technology, Inc. | Apparatuses and methods including supply current in memory |
US8780635B2 (en) | 2012-11-09 | 2014-07-15 | Sandisk Technologies Inc. | Use of bloom filter and improved program algorithm for increased data protection in CAM NAND memory |
US9424202B2 (en) | 2012-11-19 | 2016-08-23 | Smartfocus Holdings Limited | Database search facility |
US10089043B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
-
2009
- 2009-09-11 US US12/557,776 patent/US9779057B2/en active Active
-
2010
- 2010-07-09 CN CN201010225267.2A patent/CN102025766B/zh active Active
- 2010-07-12 KR KR1020100066779A patent/KR101793890B1/ko not_active Application Discontinuation
- 2010-08-02 JP JP2010183450A patent/JP5658509B2/ja active Active
- 2010-09-07 DE DE102010044531.2A patent/DE102010044531B4/de active Active
-
2017
- 2017-10-02 US US15/722,624 patent/US10769097B2/en active Active
- 2017-10-31 KR KR1020170143204A patent/KR102028252B1/ko active IP Right Grant
-
2020
- 2020-09-03 US US17/011,686 patent/US11586577B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN102025766A (zh) | 2011-04-20 |
KR20110028211A (ko) | 2011-03-17 |
US9779057B2 (en) | 2017-10-03 |
JP2011060279A (ja) | 2011-03-24 |
DE102010044531A1 (de) | 2011-04-07 |
US20110067039A1 (en) | 2011-03-17 |
US20180024966A1 (en) | 2018-01-25 |
JP5658509B2 (ja) | 2015-01-28 |
KR102028252B1 (ko) | 2019-10-02 |
KR20170124995A (ko) | 2017-11-13 |
CN102025766B (zh) | 2016-02-17 |
US11586577B2 (en) | 2023-02-21 |
KR101793890B1 (ko) | 2017-11-06 |
US10769097B2 (en) | 2020-09-08 |
US20200401550A1 (en) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102010044531B4 (de) | Autonome Speicherarchitektur | |
DE102010044529B4 (de) | Autonomes speicher-sub-system mit hardwarebeschleuniger | |
DE112011101321B4 (de) | Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist | |
DE112019005770T5 (de) | Speicherverwaltung für ein cloudbasiertes Speichersystem | |
DE102018006894A1 (de) | Technologien zum Auslagern von Beschleunigungsaufgaben-Ablaufplanungsoperationen an Beschleunigerschlitten | |
DE102014109519A1 (de) | Techniken zum Replizieren von Daten zwischen Speicherservern | |
DE202015009260U1 (de) | Effiziente Datenlesungen von verteilten Speichersystemen | |
DE112012005222T5 (de) | Halbleiter-Datenspeicherverwaltung | |
DE102017213160B4 (de) | Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung | |
DE102017120787A1 (de) | Verfahren und Vorrichtung zum Entladen von Datenverarbeitung in Hybrid-Speichervorrichtungen | |
DE112014002754T5 (de) | Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus | |
DE102012208751A1 (de) | Datensicherheit für eine Datenbank in einer Mehrknotenumgebung | |
DE102009012409A1 (de) | Systeme und Verfahren zum Zusammenfügen von Speicherzugriffen von parallelen Threads | |
DE112018004247T5 (de) | Datenverarbeitungsauslagerung unter verwendung einer speicherinternen codeausführung | |
DE112019001863T5 (de) | Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen | |
DE112012004796T5 (de) | Periodische Auslagerung von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten | |
DE102020103521A1 (de) | Minimieren der Nutzung von Hardware-Zählern bei getriggerten Operationen für kollektive Kommunikation | |
DE112012004926T5 (de) | Gemeinsame Speichernutzung durch Prozessoren | |
DE112016003598T5 (de) | Gleichzeitige Massenverarbeitung von baumbasierten Datenstrukturen | |
DE112017007865T5 (de) | Netzgebundener shuffle-datenspeicher | |
DE102019103279A1 (de) | Techniken zur informationsgraphenkomprimierung | |
DE102021108478A1 (de) | System und Verfahren zur Cache-Verzeichnis-TCAM-Fehlererkennung und - Korrektur | |
DE102021102746A1 (de) | Lese/schreib-seitenreplikation für mehrere recheneinheiten | |
DE102015116036A1 (de) | Dezentrale Realzeitrechenstruktur, die eine speicherinterne Verarbeitung verwendet | |
DE102022113177A1 (de) | Verbesserte konsensdatenfilterung bei proof-of-space-blockchain-systemen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: NUMONYX B.V., ROLLE, CH |
|
8181 | Inventor (new situation) |
Inventor name: EILERT, SEAN, PENRYN, CALIF., US Inventor name: LEINWANDER, MARK, FOLSOM, CALIF., US Inventor name: HULBERT, JARED, SPRINGS, CALIF., US |
|
R081 | Change of applicant/patentee |
Owner name: MICRON TECHNOLOGY, INC., BOISE, US Free format text: FORMER OWNER: SEAN EILERT,JARED HULBERT,MARK LEINWANDER, , US Effective date: 20110414 Owner name: MICRON TECHNOLOGY, INC., BOISE, US Free format text: FORMER OWNERS: EILERT, SEAN, PENRYN, CALIF., US; HULBERT, JARED, SHINGLE SPRINGS, CALIF., US; LEINWANDER, MARK, FOLSOM, CALIF., US Effective date: 20110414 |
|
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, 80538 MUENCHEN, Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE |
|
R081 | Change of applicant/patentee |
Owner name: MICRON TECHNOLOGY, INC., BOISE, US Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH Effective date: 20120521 |
|
R082 | Change of representative |
Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE Effective date: 20120521 Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE Effective date: 20120521 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017300000 Ipc: G06F0016000000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0016000000 Ipc: G06F0016500000 |
|
R018 | Grant decision by examination section/examining division | ||
R130 | Divisional application to |
Ref document number: 102010064728 Country of ref document: DE |
|
R020 | Patent grant now final |