DE112018005427T5 - Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem - Google Patents

Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem Download PDF

Info

Publication number
DE112018005427T5
DE112018005427T5 DE112018005427.6T DE112018005427T DE112018005427T5 DE 112018005427 T5 DE112018005427 T5 DE 112018005427T5 DE 112018005427 T DE112018005427 T DE 112018005427T DE 112018005427 T5 DE112018005427 T5 DE 112018005427T5
Authority
DE
Germany
Prior art keywords
data
memory
tag
data buffer
circuit
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.)
Pending
Application number
DE112018005427.6T
Other languages
English (en)
Inventor
Steven Carlough
Susan Marie Eickhoff
Stephen Powell
Jie Zheng
Gary Van Huben
Patrick James Meaney
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018005427T5 publication Critical patent/DE112018005427T5/de
Pending legal-status Critical Current

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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Abstract

Ein(e) oder mehrere Speichersysteme, architektonische Strukturen und/oder Verfahren zum Speichern von Informationen in Speichereinheiten werden offengelegt, um die Datenbandbreite zu verbessern und/oder die Last auf den Datenübertragungsverbindungen in einem Speichersystem zu verringern. Das System kann eine oder mehrere Speichereinheiten, eine oder mehrere Speichersteuereinheiten und eine oder mehrere Datenpufferschaltungen umfassen. In einer Ausführungsform übermittelt der Host Daten lediglich über seine Datenübertragungsverbindung mit der Datenpufferschaltung. In einem Aspekt sendet die Speichersteuerschaltung kein Steuersignal an die Datenpufferschaltungen. In einem Aspekt pflegen die Speichersteuerschaltung und die Datenpufferschaltungen jeweils einen separaten zustandsmaschinengesteuerten Adresszeiger oder eine lokale Adress-Ablaufsteuerung, der bzw. die dieselben Tags in derselben Folge enthält. In einem anderen Aspekt wird ein Resynchronisationsverfahren offengelegt.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft Speichersysteme und insbesondere verteilte Pufferspeichersysteme.
  • Mit den jüngsten Fortschritten der Informationstechnologie und der breiten Verwendung des Internets zum Speichern und Verarbeiten von Informationen werden immer höhere Anforderungen an die Erfassung, Verarbeitung, Speicherung und Verbreitung von Informationen durch Datenverarbeitungssysteme gestellt. Datenverarbeitungssysteme werden entwickelt, um die Geschwindigkeit zu erhöhen, mit der die Computer in der Lage sind, immer komplexere Anwendungen für Unternehmen, den privaten Gebrauch und zur Unterhaltung auszuführen. Die Gesamtleistung eines Computersystems wird durch jedes der Schlüsselelemente der Computerstruktur beeinflusst, darunter die Leistung/Struktur der Prozessoren, etwaige Speicher-Caches, Eingabe/Ausgabe- (E/A-) Teilsysteme, die Effizienz der Speichersteuerfunktionen, die Leistung der Speichereinheiten und -systeme und etwaige zugehörige Speicherschnittstellen-Elemente sowie der Typ und die Struktur der Speicheranschluss-Schnittstellen.
  • Die ständig steigende Geschwindigkeit von Prozessoren, die immer komplexere Anwendungen ausführen, stellt strengere Leistungsanforderungen an alle anderen Teilsysteme in dem Computer, darunter das Speicher-Teilsystem, in dem Daten während des Betriebs einer Software-Anwendung gespeichert, aufgerufen und viele Male aktualisiert werden. Die durch Lese-/Schreibvorgänge in dem Hauptspeicher aufgewendete Zeit ist ein wesentlicher Faktor für die letztendliche Geschwindigkeit und Effizienz eines Computersystems. Das Speicher-Teilsystem der meisten Computer wird normalerweise durch eine Speichersteuereinheit betrieben. Die Aufgabe von Speichersteuereinheiten besteht darin, Daten zwischen dem Speicher-Teilsystem des Computers und einem oder mehreren seiner Prozessoren so schnell und effizient wie möglich zu verschieben. Das Speicher-Teilsystem eines Computers weist häufig Speichermodule auf, in der Regel ein oder mehrere DIMM-Speichermodule (Dual In Line Memory Modules), die mehrere dynamische Direktzugriffsspeicher- (DRAM-) Einheiten enthalten.
  • In vielen Speicher-Teilsystemen kann eine Speichersteuereinheit mehrere Speicherkanäle steuern, wobei jeder Kanal ein oder mehrere DIMM-Speichermodule (Dual In Line Memory Modules) enthalten kann, wobei die DIMMs in einer oder mehreren Ranks angeordnet sein können. Datenverarbeitungsanforderungen erfordern die Fähigkeit, mit immer höheren Zugriffsgeschwindigkeiten auf eine zunehmende Anzahl von Speichereinheiten höherer Dichte zugreifen zu können.
  • Die Industrie investiert in umfangreiche Forschungs- und Entwicklungsbemühungen, um verbesserte und/oder innovative Lösungen zum Maximieren der Gesamtsystemleistung zu schaffen, indem die Ausgestaltung und/oder die Struktur des Speichersystems/-Teilsystems und die Verfahren, mit denen das Speichersystem/-Teilsystem arbeitet, verbessert werden. Derartige Bemühungen haben zur Entwicklung von verteilten Speichersystemen, verteilten Pufferspeichersystemen, registrierten DIMMs (RDIMMs) und lastreduzierten DIMMs (LRDIMMs) sowie anderen Systemen, Spezifikationen und Standards wie zum Beispiel DDR4 und DDR5 geführt, die für eine verbesserte Speicherleistung sorgen.
  • In einem Beispiel kann ein verteiltes Speichersystem eine Mehrzahl von Speichereinheiten, einen oder mehrere Adress-Chips, auch als Speichersteuerschaltungen bekannt, und eine Mehrzahl von Datenpuffer- oder Datenschaltungen (DC, data circuit), auch als DC-Chips bekannt, umfassen. Es gibt Datenübertragungsverbindungen oder -busse zwischen einem Host-Prozessor und den Speichersteuerschaltungen und Datenpufferschaltungen. Es gibt auch eine(n) Datenübertragungsverbindung oder -bus von den Speichersteuerschaltungen zu den Datenpufferschaltungen. Es gibt auch Datenübertragungsverbindungen zwischen den Speichereinheiten, z.B. DRAMS, und den Speichersteuerschaltungen und den Datenpufferschaltungen. Bandbreitenbeschränkungen bei Datenübertragungsverbindungen können die Leistung von Speichersystemen beeinträchtigen. Die Menge an Daten-, Befehls-, Steuer- und Antwortsignalen, die über Datenübertragungsverbindungen und -busse zwischen dem Host, den Speichersteuerschaltungen, den Datenpufferschaltungen und den Speichereinheiten gesendet werden, wozu die Bandbreite gehört, die zum Übermitteln von Speicherdaten-Steuerfunktionen zugewiesen wird, z.B. die Speicherdaten-Adress-Tags und -Positionen, beeinflusst die Leistung von Speichersystemen.
  • KURZDARSTELLUNG
  • Die Zusammenfassung der Offenbarung wird angeführt, um ein Verständnis eines Speichersystems, einer architektonischen Struktur und eines Verfahrens zum Speichern und Abrufen von Daten zu erleichtern, und nicht in einer Absicht, die Offenbarung oder die Erfindung einzuschränken. Die vorliegende Offenbarung richtet sich an einen Fachmann. Es sollte klar sein, dass verschiedene Aspekte und Merkmale der Offenbarung in einigen Fällen vorteilhafterweise getrennt oder in anderen Fällen in Kombination mit anderen Aspekten und Merkmalen der Offenbarung verwendet werden können. Dementsprechend können Abwandlungen und Abänderungen an den Speichersystemen, der architektonischen Struktur und dem Betriebsverfahren vorgenommen werden, um unterschiedliche Wirkungen zu erzielen.
  • In einer Ausführungsform wird ein Speichersystem zum Speichern von Daten als Reaktion auf von einem Host empfangene Befehle offengelegt, das Speichersystem aufweisend eine Speichersteuerschaltung zum Empfangen von Befehlen von dem Host und zum Ausgeben von Modulbefehls- und -steuersignalen, mindestens eine und vorzugsweise eine Mehrzahl von Speichereinheiten, die zum Speichern von Daten und zum Empfangen von Befehlssignalen von der Speichersteuerschaltung konfiguriert sind, mindestens eine und vorzugsweise eine Mehrzahl von Datenpufferschaltungen, die der mindestens einen Speichereinheit zugehörig sind, eine Datenübertragungsverbindung zum Übertragen von Daten zwischen dem Host und der mindestens einen Datenpufferschaltung und eine Steuerungsdatenübertragungsverbindung zwischen der Speichersteuerschaltung und der mindestens einen Datenpufferschaltung. In einer Ausführungsform ist die Speichersteuerschaltung konfiguriert zum: Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung (address sequencer) der Speichersteuerschaltung als Reaktion auf ein Empfangen eines Speicherbefehls und eines Speicherdaten-Tags von dem Host, Zuweisen des Host-Speicherdaten-Tags zu dem Speicherdaten-Tag der Speichersteuerschaltung und Speichern der Beziehung in einer Zuordnungstabelle in der Speichersteuerschaltung. In einem Aspekt sendet das System über die Datenübertragungsverbindung zwischen dem Host und der mindestens einen Datenpufferschaltung kein Speicherdaten-Tag, das die Position angibt, an der Daten in der mindestens einen Datenpufferschaltung gespeichert werden sollen, an die mindestens eine Datenpufferschaltung.
  • In einer anderen Ausführungsform wird ein Speichersystem zum Lesen und Schreiben von Daten in eine Speichereinheit offenbart, wobei das System mindestens eine Speichersteuerschaltung zum Empfangen von Befehlen von einem Host und zum Ausgeben von Befehls- und Steuersignalen, wobei die Speichersteuerschaltung eine lokale Adress-Ablaufsteuerung aufweist, die lokale Speicher-Tag-Positionen in einer Folge aufweist; mindestens eine und vorzugsweise eine Mehrzahl von Speichereinheiten, die zum Lesen und Schreiben von Daten und zum Empfangen von Befehlssignalen von der Speichersteuerschaltung konfiguriert sind; mindestens eine und vorzugsweise eine Mehrzahl von Datenpufferschaltungen, die der mindestens einen Speichersteuerschaltung zugehörig sind, wobei die mindestens eine Datenpufferschaltung eine lokale Adress-Ablaufsteuerung aufweist, die lokale Speicher-Tag-Positionen in derselben Folge aufweist wie die lokale Adress-Ablaufsteuerung der mindestens einen Speichersteuerschaltung; eine Datenübertragungsverbindung zum Übertragen von Daten zwischen dem Host und der mindestens einen Datenpufferschaltung; und eine Steuerungsdatenübertragungsverbindung zwischen der mindestens einen Speichersteuerschaltung, der mindestens einen Speichereinheit und der mindestens einen Datenpufferschaltung zum Übermitteln von Lese- und Schreib-Vorgangssignalen des Speichersystems aufweist; wobei die mindestens eine Speichersteuerschaltung konfiguriert ist zum: (i) Verarbeiten eines Speicherbefehls in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer; (ii) Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung der mindestens einen Speichersteuerschaltung beim Empfangen eines Speicherbefehls; (iii) Senden des Befehls zum Schreiben in einen Puffer an die mindestens eine Datenpufferschaltung; (iv) Senden des Speicherbefehls an die mindestens eine Speichereinheit; und (iv) Senden des Befehls zum Speichern aus einem Puffer zusammen mit dem Speicherdaten-Tag an die mindestens eine Datenpufferschaltung; und wobei die mindestens eine Datenpufferschaltung konfiguriert ist zum: (i) Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung der mindestens einen Datenpufferschaltung beim Empfangen des Befehls zum Schreiben in einen Puffer; (ii) Senden von eingehenden Speicherdaten in einen Datenpuffer, auf den das lokale Speicherdaten-Tag zeigt, das aus der lokalen Adress-Ablaufsteuerung der mindestens einen Datenpufferschaltung erhalten wurde; (iii) Extrahieren von Speicherdaten mit Pull-Operation aus dem lokalen Datenpuffer, auf den das von der mindestens einen Speichersteuerschaltung empfangene Speicherdaten-Tag zeigt, und (iv) Senden von Speicherdaten an die mindestens eine Speichereinheit.
  • Ebenfalls offenbart wird ein Verfahren zum Speichern von Daten in Speichereinheiten, wobei das Verfahren ein Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Speichersteuerschaltung beim Empfangen eines Host-Speicherbefehls, ein Zuweisen eines Host-Tags zu dem lokalen Speicherdaten-Tag der Speichersteuerschaltung und ein Speichern der zugehörigen Tags in einer Zuordnungstabelle; ein Verarbeiten des Speicherbefehls in der Speichersteuerschaltung in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer; ein Senden des Befehls zum Schreiben in einen Puffer an eine Datenpufferschaltung; ein Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Datenpufferschaltung; und ein Übertragen von eingehenden Daten mit Push-Operation an die Position in der Datenpufferschaltung, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt. In einer Ausführungsform überträgt die Datenpufferschaltung beim Empfangen des Befehls zum Schreiben in einen Puffer eingehende Daten mit Push-Operation in den Datenpuffer. Vorzugsweise pflegen die Speichersteuerschaltung und die Datenpufferschaltung jeweils eine separate lokale Adress-Ablaufsteuerung, welche dieselben Tags in derselben Reihenfolge enthält. Und in einer Ausführungsform ist die Speichersteuerschaltung so konfiguriert, dass sie das aus der lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung empfangene Tag nicht an die Datenpufferschaltung sendet.
  • Ein Verfahren zum Überprüfen lokaler Adress-Ablaufsteuerungen in einem verteilten Speichersystem mit einer entfernt angeordneten Speichersteuerschaltung wird ebenfalls offengelegt, das Verfahren aufweisend ein Extrahieren eines als nächstes zu verwendenden Speicherdaten-Tags mit Pull-Operation aus jeder lokalen Adress-Ablaufsteuerung einer Mehrzahl von Datenpufferschaltungen, ein Vergleichen der aus der lokalen Adress-Ablaufsteuerung jeder Datenpufferschaltung wiederhergestellten Speicherdaten-Tags und ein Ausgeben eines Wiederherstellungsbefehls, wenn irgendwelche der Tags aus den Datenpufferschaltungen unterschiedlich sind. Ein anderes Verfahren zum Überprüfen der lokalen Adress-Ablaufsteuerungen in einem Speichersystem mit einer entfernt angeordneten Speichersteuerschaltung wird offengelegt, das Verfahren aufweisend ein Senden des nächsten aus einer lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung auszugebenden Tags an eine Datenpufferschaltung, ein Vergleichen des nächsten aus einer lokalen Adress-Ablaufsteuerung der Datenpufferschaltung auszugebenden Tags mit dem nächsten von der Speichersteuerschaltung gesendeten, zu verwendenden Tag und ein Ausgeben eines Wiederherstellungsbefehls, wenn die Tags nicht übereinstimmen. Der Wiederherstellungsbefehl kann mindestens einen Befehl aus der Gruppe enthalten, die aus einem Einstellen des Aussendens jeglicher neuer Arbeitsschritte, einem Löschen sämtlicher unvollständiger Arbeitsschritte, einem Warten auf den Abschluss aller Abrufvorgänge und Kombinationen davon besteht. Das Verfahren gemäß einer Ausführungsform kann darüber hinaus ein Zurücksetzen der lokalen Adress-Ablaufsteuerung sowohl einer Speichersteuerschaltung als auch der Datenpufferschaltungen umfassen.
  • Figurenliste
  • Die verschiedenen Aspekte, Merkmale und Ausführungsformen des Speichersystems, der architektonischen Struktur und seines Betriebsverfahrens werden besser verstanden, wenn sie in Verbindung mit den bereitgestellten Figuren gelesen werden. In den Figuren werden Ausführungsformen zum Zweck des Veranschaulichens von Aspekten, Merkmalen und/oder verschiedenen Ausführungsformen des Speichersystems, der architektonischen Struktur und des Betriebsverfahrens bereitgestellt, wobei aber die Ansprüche nicht auf (die) genaue(n) gezeigte(n) Anordnung, Strukturen, Merkmale, Aspekte, Ausführungsformen oder Einheiten beschränkt sein sollten, und die gezeigten Anordnungen, Strukturen, Unterbaugruppen, Merkmale, Aspekte, Ausführungsformen, Verfahren und Einheiten können einzeln oder in Kombination mit anderen Anordnungen, Strukturen, Unterbaugruppen, Merkmalen, Aspekten, Ausführungsformen, Verfahren und Einheiten verwendet werden.
    • 1 stellt ein allgemeines Datenverarbeitungssystem gemäß einer Ausführungsform dar.
    • 2 stellt ein Speicher-Teilsystem gemäß einer Ausführungsform dar.
    • 3 stellt ein Speicher-Teilsystem dar, das eine gepufferte DIMM-Konfiguration gemäß einer Ausführungsform enthält.
    • 4 stellt ein verteiltes Pufferspeichersystem gemäß einer Ausführungsform schematisch dar.
    • 5 zeigt den Befehls- und Adress-Datenübertragungsblock (command and address frame), der über eine Datenübertragungsverbindung zwischen dem Host und einer Speichersteuerschaltung gesendet wird, gemäß einer Ausführungsform.
    • 6 zeigt einen Datenübertragungsblock, der über eine Datenübertragungsverbindung von dem Host zu einer Datenpufferschaltung gesendet wird, gemäß einer Ausführungsform.
    • 7 zeigt einen Datenübertragungsblock, der über eine Datenübertragungsverbindung von einer Speichersteuerschaltung an den Host gesendet wird, gemäß einer Ausführungsform.
    • 8 stellt einen Ablaufplan eines Verfahrens zum Durchführen eines Speichervorgangs gemäß einer Ausführungsform dar.
    • 9 stellt einen Ablaufplan eines Verfahrens zum Zuordnen von Speichervorgängen in einem Speicher-Teilsystem gemäß einer Ausführungsform dar.
    • 10 stellt eine schematische Veranschaulichung einer entfernt angeordneten Adress-Ablaufsteuerung, die Speichervorgänge in einem Speicher-Teilsystem zuordnet, gemäß einer Ausführungsform dar.
    • 11 stellt einen Ablaufplan eines alternativen Verfahrens zum Durchführen eines Speichervorgangs gemäß einer Ausführungsform dar.
    • 12 stellt einen Ablaufplan eines Verfahrens zum Überprüfen und/oder Synchronisieren von Tags in einem Speicher-Teilsystem gemäß einer Ausführungsform dar.
    • 13 stellt einen Ablaufplan eines alternativen Verfahrens zum Überprüfen und/oder Synchronisieren von Tags in einem Speicher-Teilsystem gemäß einer Ausführungsform dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung dient zum Veranschaulichen der allgemeinen Grundgedanken der Erfindung und soll die hierin beanspruchten erfindungsgemäßen Konzepte nicht einschränken. In der folgenden ausführlichen Beschreibung werden zahlreiche Details dargelegt, um ein Verständnis des Speichersystems, der architektonischen Struktur und des Betriebsverfahrens zu vermitteln, jedoch wird einem Fachmann klar sein, dass verschiedene und zahlreiche Ausführungsformen des Speichersystems, der architektonischen Struktur und des Betriebsverfahrens auch ohne diese spezifischen Details umgesetzt werden können, und die Ansprüche und die Erfindung sollten nicht auf die Ausführungsformen, Unterbaugruppen, Merkmale, Prozesse, Verfahren, Aspekte, Merkmale von Details beschränkt sein, die hierin konkret beschrieben und gezeigt sind. Darüber hinaus können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Permutationen verwendet werden.
  • Soweit nicht konkret anderweitig hierin festgelegt, ist sämtlichen Begriffen deren größtmögliche Auslegung zuzuordnen, darunter durch die Beschreibung angedeutete Bedeutungen sowie durch einen Fachmann verstandene Bedeutungen und/oder wie in Wörterbüchern, Abhandlungen usw. festgelegt. Es ist ebenfalls zu beachten, dass die Verwendung der Singularform „ein“, „eine“ bzw. „der“, „die“, „das“ in der Beschreibung und den beigefügten Ansprüchen die Pluralformen einschließt, soweit nicht anderweitig angegeben.
  • Das Speicher-Teilsystem eines Computers weist häufig Speichermodule auf, in der Regel ein oder mehrere DIMM-Speichermodule (Dual In Line Memory Modules), die in der Regel eine Mehrzahl von Speichereinheiten umfassen, z.B. dynamische Direktzugriffsspeicher- (DRAM-) Einheiten. Ein verteiltes Speichersystem kann eine Mehrzahl von Speichereinheiten, z.B. DRAMS, die auf einem Modul als DIMM angeordnet sein können, eine oder mehrere Speichersteuerschaltungen, und eine oder mehrere Datenpufferschaltungen oder Datenschaltungen umfassen. In einer Ausführungsform empfängt die Speichersteuerschaltung Signale von einem Host-Prozessor und gibt Befehls- und Steuersignale aus. Die Speichersteuerschaltung kann eine Speichersteuereinheit enthalten und in einer Ausführungsform ein Zeitplanungsprogramm (scheduler) aufweisen, das in Form einer Schaltung vorliegen kann. Die Speichersteuerschaltung und/oder die Speichersteuereinheit können in einer Ausführungsform von dem Host-Prozessor, den Datenpufferschaltungen und/oder den Speichereinheiten entfernt angeordnet sein. Die Speichersteuerschaltung, z.B. das Zeitplanungsprogramm, kann die Reihenfolge von Arbeitsschritten und Anweisungen optimieren und sendet Befehlssignale (z.B. Anweisungen) an die Datenpufferschaltungen und die Speichereinheiten aus. Es gibt Datenübertragungsverbindungen oder -busse zwischen dem Host (z.B. dem Prozessor), den Speichersteuerschaltungen, den Datenpufferschaltungen und/oder den Speichereinheiten. In einer Ausführungsform gibt es eine(n) Datenübertragungsbus oder -verbindung von der Speichersteuerschaltung zu den Datenpufferschaltungen. In einer Ausführungsform kann es auch eine(n) Datenübertragungsverbindung oder -bus zwischen dem Host und der Speichersteuerschaltung und separate Datenübertragungsverbindungen oder -busse zwischen dem Host und den Datenpufferschaltungen geben. Das Speichersystem und/oder die architektonische Struktur können darüber hinaus Datenübertragungsverbindungen oder -busse zwischen den Speichereinheiten und der Speichersteuerschaltung und/oder den Speichereinheiten und den Datenpufferschaltungen enthalten.
  • Speichersysteme, eine Speicherarchitektur und/oder Verfahren zum Durchführen von Lese-/Schreibvorgängen in einem Speichersystem oder -Teilsystem, darunter zum Beispiel ein verteiltes Speichersystem, werden offengelegt. In einer Ausführungsform werden ein Speichersystem, eine architektonische Struktur und/oder ein Verfahren zum Speichern und/oder Abrufen von Daten in Speichersystemen, die Speichereinheiten enthalten, offengelegt. Das nachstehend näher dargelegte Speichersystem kann eine oder mehrere Speichereinheiten und eine oder mehrere Datenpufferschaltungen umfassen. Das Speichersystem kann darüber hinaus eine Speichersteuerschaltung enthalten, die in einer Ausführungsform eine Speichersteuereinheit zum Steuern des Datenflusses zu und von den Speichereinheiten enthalten kann. Es kann Datenübertragungsverbindungen oder -busse zum Übertragen von Daten, Befehlen, Antworten und/oder Signalen zwischen dem Host, den Speichereinheiten, den Datenpufferschaltungen und/oder den Speichersteuerschaltungen geben.
  • In einem Aspekt verbessern das Speichersystem, die architektonische Struktur und/oder das Verfahren zum Durchführen von Lese-/Schreibvorgängen die Datenbandbreite auf der Datenübertragungsverbindung zwischen dem Host und den Datenpufferschaltungen. In einer anderen Ausführungsform werden ein Speichersystem, eine architektonische Struktur und/oder ein Verfahren zum Verringern der Last auf der Datenübertragungsverbindung zwischen der Speichersteuerschaltung und den Datenpufferschaltungen offengelegt. In einer Ausführungsform werden ein Speichersystem, eine architektonische Struktur und/oder ein Verfahren zum Speichern von Daten in der Datenpufferschaltung offengelegt. In einem Aspekt werden ein Speichersystem, eine architektonische Struktur und/oder ein Verfahren zum Verwalten von Speicherdaten in der Datenpufferschaltung ohne Senden von Steuerinformationen, z.B. einer Speicherdaten-Positions-Tag-Adresse, von der Speichersteuerschaltung offengelegt. In einer Ausführungsform stellt die Offenbarung ein System, eine architektonische Struktur und/oder ein Verfahren bereit, mit dem bzw. der die Datenpufferschaltungen Speicherdaten in ihren Schreibpuffer an einer Position ablegen können, die der Speichersteuerschaltung bekannt ist, ohne dass die Datenpufferschaltungen der Speichersteuerschaltung mitteilen, wo die Datenpufferschaltungen die Daten abgelegt haben, und ohne dass die Speichersteuerschaltung der Datenpufferschaltung mitteilt, wo die Daten abgelegt werden sollen. In einem Aspekt empfängt die Speichersteuerschaltung den Speicherbefehl und das Speicherdaten-Tag von dem Host und sendet den Speicherdatenbefehl an die Datenpufferschaltungen, wobei aber die Speichersteuerschaltung das Speicherdaten-Tag nicht an die Datenpufferschaltungen sendet. In einem Aspekt pflegen die Speichersteuerschaltung und die Datenpufferschaltungen jeweils einen separaten zustandsmaschinengesteuerten Adresszeiger oder eine lokale Adress-Ablaufsteuerung, z.B. ein lokales Speicher-Tag-FIFO, der bzw. die dieselben Tags (die eine Adresse oder Position in dem Datenpuffer kennzeichnen) in derselben Folge enthält. Sowohl die Speichersteuerschaltung als auch die Datenpufferschaltungen verwenden für einen Speichervorgang dasselbe Tag aus ihrer Adress-Ablaufsteuerung, z.B. das lokale Speicher-Tag-FIFO. Die Speichersteuerschaltung weist oder ordnet das Host-Speicherdaten-Tag ihrem lokalen Speicherdaten-Tag-FIFO zu und speichert das Host-Speicherdaten-Tag in einer Zuordnungstabelle.
  • In einem anderen Aspekt des Systems ist die Speichersteuerschaltung darüber hinaus so konfiguriert, dass sie als Reaktion auf ein Empfangen des Host-Speicherbefehls den Speicherbefehl in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer verarbeitet, und den Befehl zum Schreiben in einen Puffer über die Steuerungsdatenübertragungsverbindung an die mindestens eine Datenpufferschaltung sendet, aber kein Tag an die Datenpufferschaltung sendet, das die Position zum Speichern der Daten in der Datenpufferschaltung angibt. In einer Ausführungsform enthält die Datenpufferschaltung eine Logikschaltung zum Verfolgen, wohin Daten für einen Speichervorgang in der Datenpufferschaltung geschrieben werden sollen. Die mindestens eine Datenpufferschaltung des Systems kann darüber hinaus so konfiguriert sein, dass sie als Reaktion auf ein Empfangen eines Befehls zum Schreiben in einen Puffer ein lokales Speicherdaten-Tag aus einer lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhält, das auf eine Speicherposition innerhalb der mindestens einen Datenpufferschaltung zeigt, und eingehende Speicherdaten mit Push-Operation in den Datenpuffer überträgt, auf den die lokale Adress-Ablaufsteuerung der Datenpufferschaltung zeigt.
  • Die Speichersteuerschaltung kann in einer Ausführungsform darüber hinaus so konfiguriert sein, dass sie den Befehl zum Speichern aus einem Puffer zusammen mit dem lokalen Speicherdaten-Tag, das sie aus ihrer lokalen Adress-Ablaufsteuerung empfangen hat, über die Steuerungsdatenübertragungsverbindung an die mindestens eine Datenpufferschaltung sendet und den Speicherbefehl an die mindestens eine Speichereinheit sendet. Und in einer Ausführungsform ist die mindestens eine Datenpufferschaltung darüber hinaus so konfiguriert, dass sie die mindestens eine Datenpufferschaltung veranlasst, Speicherdaten mit Pull-Operation aus der Datenpufferposition zu extrahieren, auf die das von der Speichersteuerschaltung über die Steuerungsdatenübertragungsverbindung empfangene Speicherdaten-Tag zeigt, und die Speicherdaten an die mindestens eine Speichereinheit zu senden.
  • In einem Aspekt des Systems weist die Speichersteuerschaltung einen zustandsmaschinengesteuerten lokalen Adresszeiger auf, der die nächste Adress-Tag-Position der mindestens einen Datenpufferschaltung kennzeichnet, an der Daten geschrieben werden sollen, und wobei die mindestens eine Datenpufferschaltung einen zustandsmaschinengesteuerten lokalen Adresszeiger aufweist, der die nächste Adress-Tag-Position der mindestens einen Datenpufferschaltung kennzeichnet, an der Daten geschrieben werden sollen, wobei der zustandsmaschinengesteuerte lokale Adresszeiger der Speichersteuerschaltung mit dem zustandsmaschinengesteuerten lokalen Adresszeiger der mindestens einen Datenpufferschaltung synchronisiert ist. In einer Ausführungsform enthalten sowohl die lokale Adress-Ablaufsteuerung der Speichersteuerschaltung als auch die mindestens eine lokale Adress-Ablaufsteuerung der Datenpufferschaltung dieselben Tags in derselben Folge. In einem weiteren Aspekt sendet die Speichersteuerschaltung des Speichersystems kein Daten-Tag zum Schreiben in einen Puffer an die mindestens eine Datenpufferschaltung. In einem Aspekt umfasst die Datenübertragungsverbindung in dem Speichersystem eine Datenübertragungsverbindung zwischen dem Host und der mindestens einen Datenpufferschaltung und zwischen der mindestens einen Datenpufferschaltung und der mindestens einen Speichereinheit, und auf der Datenübertragungsverbindung zwischen der mindestens einen Datenpufferschaltung und dem Host werden nur Daten und CRC (zyklische Redundanzprüfung) übermittelt.
  • Das Speichersystem weist in einer Ausführungsform mindestens ein Modul auf, bei dem die Speichersteuerschaltung auf einem einzelnen Chip auf dem Modul ausgebildet ist, mindestens neun Datenpufferschaltungen auf separaten Chips auf dem Modul ausgebildet sind, und eine Mehrzahl von Speichereinheiten in Neunergruppen organisiert sind, die auf dem Modul angeordnet sind.
  • Ebenfalls offenbart wird ein Verfahren zum Speichern von Daten in Speichereinheiten, das Verfahren aufweisend ein Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Speichersteuerschaltung beim Empfangen eines Host-Speicherbefehls, ein Zuweisen eines Host-Tags zu dem lokalen Speicherdaten-Tag der Speichersteuerschaltung und ein Speichern der zugehörigen Tags in einer Zuordnungstabelle; ein Verarbeiten des Speicherbefehls in der Speichersteuerschaltung in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer; ein Senden des Befehls zum Schreiben in einen Puffer an eine Datenpufferschaltung; ein Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Datenpufferschaltung; und ein Übertragen von eingehenden Daten mit Push-Operation an die Position in der Datenpufferschaltung, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt. In einer Ausführungsform überträgt die Datenpufferschaltung beim Empfangen des Befehls zum Schreiben in einen Puffer eingehende Daten mit Push-Operation in den Datenpuffer. Vorzugsweise pflegen die Speichersteuerschaltung und die Datenpufferschaltung jeweils eine separate lokale Adress-Ablaufsteuerung, welche dieselben Tags in derselben Folge enthält. Und in einer Ausführungsform ist die Speichersteuerschaltung so konfiguriert, dass sie das aus der lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung empfangene Tag nicht an die Datenpufferschaltung sendet.
  • Das Verfahren kann darüber hinaus ein Senden des Speicherbefehls von der Speichersteuerschaltung an die Speichereinheiten und ein Senden von Daten von der Position, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt, an die Speichereinheiten umfassen. In einem weiteren Aspekt umfasst das Verfahren ein Übertragen des lokalen Speicherdaten-Tags zurück an die lokale Adress-Ablaufsteuerung der Datenpufferschaltung mit Push-Operation, ein Abrufen des Host-Speicherdaten-Tags aus der Zuordnungstabelle der Speichersteuerschaltung, die dem lokalen Speicherdaten-Tag der Speichersteuerschaltung zugehörig ist, ein Übertragen des lokalen Speicherdaten-Tags zurück an die lokale Adress-Ablaufsteuerung der Speichersteuerschaltung mit Push-Operation und ein Übertragen des Host-Speicherdaten-Tags zurück an den Host mit Push-Operation.
  • In einem anderen Aspekt wird ein Verfahren zum periodischen Überprüfen und Resynchronisieren oder Wiederherstellen von Tags umgesetzt, um die Zuverlässigkeit zu erhöhen und der Tatsache entgegenzuwirken und zu verhindern, dass die lokalen Adress-Ablaufsteuerungen, z.B. das lokale Speicher-Tag-FIFO, aus der Synchronisation geraten. Das System ist gemäß einem Aspekt darüber hinaus so konfiguriert, dass es überprüft, ob der zustandsmaschinengesteuerte lokale Adresszeiger der mindestens einen Speichersteuerschaltung dasselbe nächste Tag aufweist wie der zustandsmaschinengesteuerte lokale Adresszeiger der mindestens einen Datenpufferschaltung. Das System kann darüber hinaus so konfiguriert sein, dass, wenn der zustandsmaschinengesteuerte lokale Adresszeiger der Speichersteuerschaltung nicht auf dieselbe Adresse zeigt wie der zustandsmaschinengesteuerte lokale Adresszeiger der Datenpufferschaltung, sowohl der lokale Adresszeiger der Speichersteuerschaltung als auch der lokale Adresszeiger der Datenpufferschaltung zurückgesetzt werden. In einem weiteren Aspekt kann das System so konfiguriert sein, dass das System, wenn der zustandsmaschinengesteuerte lokale Adresszeiger der Speichersteuerschaltung nicht gleich ist wie der zustandsmaschinengesteuerte lokale Adresszeiger der Datenpufferschaltung, den lokalen Adresszeiger der Speichersteuerschaltung und den lokalen Adresszeiger der Datenpufferschaltung zurücksetzt. In einer Ausführungsform kann die Speichersteuerschaltung das nächste zu verwendende Speicherdaten-Tag aus ihrer lokalen Adress-Ablaufsteuerung an die Datenpufferschaltungen senden, und die Datenpufferschaltung vergleicht ihr nächstes zu verwendendes Tag aus ihrer lokalen Adress-Ablaufsteuerung mit dem von der Speichersteuerschaltung gesendeten Tag, um festzustellen, ob die Tags gleich sind. In einer anderen Ausführungsform kann die Datenpufferschaltung das nächste zu verwendende Speicherdaten-Tag an den Host senden, und der Host vergleicht das von jeder Datenpufferschaltung empfangene Tag, um festzustellen, ob sie gleich sind. Wenn die Tags nicht gleich sind, kann das System eine Wiederherstellungsroutine durchlaufen, die unter anderem die lokalen Adress-Ablaufsteuerungen zurücksetzen kann.
  • Ein Computerprogrammprodukt zum Speichern von Daten in Speichereinheiten wird offengelegt, das Computerprogrammprodukt aufweisend ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen, wobei die Programmanweisungen durch ein Speichersystem ausführbar sind, um das Speichersystem zu veranlassen, ein Verfahren durchzuführen, wobei das Speichersystem in einer Ausführungsform eine Speichersteuerschaltung, eine oder mehrere Datenpufferschaltungen und eine Mehrzahl von Speichereinheiten enthalten kann, das Verfahren aufweisend ein Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Speichersteuerschaltung beim Empfangen eines Host-Speicherbefehls, ein Zuweisen eines Host-Tags zu dem lokalen Speicherdaten-Tag der Speichersteuerschaltung und ein Speichern der zugeordneten Tags in einer Zuordnungstabelle, ein Verarbeiten des Speicherbefehls in der Speichersteuerschaltung in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer; ein Senden des Befehls zum Schreiben in einen Puffer an eine Datenpufferschaltung, ein Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Datenpufferschaltung und ein Übertragen von eingehenden Daten mit Push-Operation an die Position in der Datenpufferschaltung, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt. In einer Ausführungsform das Computerprogrammprodukt darüber hinaus aufweisend, dass die Datenpufferschaltung beim Empfangen des Befehls zum Schreiben in einen Puffer eingehende Daten mit Push-Operation in den Datenpuffer überträgt. Das Computerprogrammprodukt gemäß einem Aspekt, wobei die Speichersteuerschaltung und die Datenpufferschaltung jeweils eine separate lokale Adress-Ablaufsteuerung pflegen, welche dieselben Tags in derselben Folge enthalten, gemäß einem anderen Aspekt, wobei die Speichersteuerschaltung so konfiguriert ist, dass sie das aus der lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung empfangene Tag nicht an die Datenpufferschaltung sendet.
  • Das Computerprogrammprodukt, wobei das Verfahren darüber hinaus ein Senden des Speicherbefehls von der Speichersteuerschaltung an die Speichereinheiten und ein Senden von Daten von der Position, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt, an die Speichereinheiten aufweist. Das Computerprogrammprodukt, wobei das Verfahren darüber hinaus ein Übertragen des lokalen Speicherdaten-Tags zurück an die lokale Adress-Ablaufsteuerung der Datenpufferschaltung mit Push-Operation, ein Abrufen des Host-Speicherdaten-Tags aus der Zuordnungstabelle der Speichersteuerschaltung, die dem lokalen Speicherdaten-Tag der Speichersteuerschaltung zugehörig ist, ein Übertragen des lokalen Speicherdaten-Tags zurück an die lokale Adress-Ablaufsteuerung der Speichersteuerschaltung mit Push-Operation und ein Übertragen des Host-Speicherdaten-Tags zurück an den Host mit Push-Operation aufweist. Das Computerprogrammprodukt, wobei das Verfahren darüber hinaus ein Extrahieren eines als nächstes zu verwendenden Speicherdaten-Tags mit Pull-Operation aus jeder lokalen Adress-Ablaufsteuerung einer Mehrzahl von Datenpufferschaltungen, ein Vergleichen der aus der lokalen Adress-Ablaufsteuerung jeder Datenpufferschaltung wiederhergestellten Speicherdaten-Tags und ein Ausgeben eines Wiederherstellungsbefehls aufweist, wenn irgendwelche der Tags aus den Datenpufferschaltungen unterschiedlich sind. Das Computerprogrammprodukt, wobei das Verfahren gemäß einer Ausführungsform ein Senden des nächsten aus einer lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung auszugebenden Tags an eine Datenpufferschaltung, ein Vergleichen des nächsten aus einer lokalen Adress-Ablaufsteuerung der Datenpufferschaltung auszugebenden Tags mit dem nächsten zu verwendenden Tag, das von der Speichersteuerschaltung gesendet wurde, und ein Ausgeben eines Wiederherstellungsbefehls umfasst, wenn die Tags nicht übereinstimmen.
  • Ein Datenverarbeitungssystem 100, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, kann viele Formen annehmen und in einer Ausführungsform mindestens einen Prozessor 102 umfassen, der eine Steuereinheit darstellen oder ein Teil davon sein kann, und der direkt oder indirekt über einen Systembus mit Speichereinheiten oder -elementen verbunden ist, wie in 1 gezeigt ist. Das Datenverarbeitungssystem 100 in 1 ist mit einem Prozessor 102, einem Direktzugriffsspeicher (RAM) 103, einem nichtflüchtigen Speicher 104, einheitenspezifischen Schaltungen 101 und einer E/A-Schnittstelle 105 gezeigt. Alternativ können der RAM 103 und/oder der nichtflüchtige Speicher 104 in dem Prozessor 102 enthalten sein, ebenso wie die einheitenspezifischen Schaltungen 101 und die E/A-Schnittstelle 105. Der Prozessor 102 kann zum Beispiel einen handelsüblichen Mikroprozessor, einen kundenspezifischen Prozessor, eine im Feld programmierbare Gatteranordnung (FPGA, Field Programmable Gate Array), eine anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit), eine diskrete Logik usw. aufweisen. Der RAM 103 wird üblicherweise zum Speichern von veränderlichen Daten, Stapeldaten, ausführbaren Anweisungen usw. verwendet und kann einen dynamischen Direktzugriffsspeicher bzw. DRAM umfassen.
  • Gemäß verschiedenen Ansätzen kann der nichtflüchtige Speicher 104 jeden beliebigen Typ von nichtflüchtigem Speicher umfassen, wie zum Beispiel einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM, Electrically Erasable Programmable Read Only Memory), einen programmierbaren Nur-Lese-Flash-Speicher (PROM, Programmable Read Only Memory), einen RAM mit Batteriereserve, Festplattenlaufwerke usw., aber nicht darauf beschränkt. Der nichtflüchtige Speicher 104 wird üblicherweise zum Speichern der ausführbaren Firmware und jeglicher nichtflüchtiger Daten verwendet, die Programmieranweisungen enthalten, die ausgeführt werden können, um den Prozessor 102 zum Durchführen bestimmter Funktionen zu veranlassen.
  • In einigen Ausführungsformen kann die E/A-Schnittstelle 105 eine Datenübertragungsschnittstelle enthalten, die es dem Prozessor 102 ermöglicht, mit Einheiten außerhalb der Steuereinheit Daten auszutauschen. Zu Beispielen für die Kommunikationsschnittstelle können serielle Schnittstellen wie zum Beispiel RS-232, USB (Universal Serial Bus), Small Computer Systems Interface (SCSI), RS-422 oder eine drahtlose Datenübertragungsschnittstelle wie zum Beispiel Wi-Fi, Bluetooth, Nahfeldkommunikation (NFC, near-field communication) oder andere drahtlose Schnittstellen gehören, ohne darauf beschränkt zu sein. Das Datenverarbeitungssystem 100 kann mittels der Datenübertragungsschnittstelle 105 in einem beliebigen Datenübertragungsprotokoll wie zum Beispiel einer ADI-Schnittstelle (Automation/Drive Interface) mit einer externen Einheit Daten austauschen.
  • 2 stellt ein beispielhaftes Speichersystem 200 dar, das Teil einer/eines größeren Computersystemstruktur oder -netzwerks sein kann. Das Computersystem 200 umfasst ein Steuerungsprozessorsystem 202, bei dem es sich um ein Verarbeitungs-Teilsystem handelt, das mindestens eine Prozessoreinheit (CPU) 206 umfasst, die so konfiguriert sein kann, dass sie mit einer Speichersteuerungseinheit (MCU, Memory Control Unit) 210 verbunden sein kann. Bei dem Prozessor oder der CPU 206 kann es sich um ein Modul handeln, das Lese-, Schreib- und Konfigurationsanforderungen von einer Systemsteuereinheit (nicht abgebildet) verarbeitet. Bei dem Prozessor 206 kann es sich um einen Mehrkernprozessor handeln. Die MCU 210 kann eine synchrone Speichersteuereinheit (MCS, Memory Controller Synchronous) 208, auch als Speichersteuereinheit bezeichnet, enthalten, welche einen Datenaustausch mit einer oder mehreren Speichereinheiten 250 (nicht in 1 gezeigt) in einem Speicher-Teilsystem 220 steuert. Die MCU 210 und die MCS 208 können einen oder mehrere Verarbeitungsschaltkreise enthalten, oder ein Verarbeiten kann durch oder in Verbindung mit dem Prozessor 206 durchgeführt werden. Das Steuerungsprozessorsystem 202 tauscht mit dem Speicher-Teilsystem 220 über einen Datenübertragungsbus 215 Daten aus, wie im Zusammenhang mit 4 näher beschrieben wird. Das Steuerungsprozessorsystem 202, der Prozessor oder die CPU 206, die Speichersteuerungseinheit 210 und die MCS 208 können hierin einzeln und zusammen als Host bezeichnet werden. In seiner Verwendung hierin bezieht sich der Begriff „Host“ allgemein auf einen Prozessor, eine Steuereinheit oder eine Einheit, der bzw. die Befehls- und/oder Steuersignale an ein Speichersystem oder -Teilsystem sendet und von diesem empfängt. Der Host kann auch Datensignale von einem Speichersystem oder -Teilsystem senden und empfangen.
  • 3 stellt ein Beispiel eines Speicher-Teilsystems 320 dar. Das Speichersystem 320 weist eine Mehrzahl von Speichermodulen auf, z.B. Dual Inline Memory Modules bzw. DIMMs 325. Während in 3 lediglich drei (3) DIMMs 325a bis c gezeigt sind, wird man verstehen, dass das Speicher-Teilsystem 320 mehr oder weniger DIMMs 325 enthalten kann. Die DIMMs 325 können in Kanälen und Ranks angeordnet sein, mit einem oder mehreren DIMMs 325 pro Kanal oder Rank. Jedes DIMM 325 kann eine oder mehrere flüchtige Speichereinheiten enthalten, z.B. dynamische Direktzugriffsspeicher-Chips bzw. DRAMs 350. Bei den Speichereinheiten 350 kann es sich um integrierte Schaltkreise oder Chips handeln, welche die grundlegenden Speicherzellen bilden, die Informationsbits speichern. Die Speicherzellen in einer Speichereinheit, z.B. DRAM, sind in der Regel in Bänken angeordnet, wobei jede Bank aus einer Anordnung von Zeilen und Spalten besteht.
  • Das Speicher-Teilsystem kann auch eine oder mehrere Speichersteuerschaltungen 330, eine(n) oder mehrere Datenpuffer- oder Daten- (DC-) Schaltungen oder (DC-) Chips 340 und eine oder mehrere Speichereinheiten 350 umfassen. Die Speichersteuerschaltung verwaltet den Datenfluss zu und von den Speichereinheiten. Die Speichersteuerschaltung empfängt üblicherweise Signale wie zum Beispiel Befehls- und Steuersignale von einem Host, z.B. einem Host-Prozessor. Die Steuersignale können Adresspositionen oder -Tags enthalten, die angeben, wo Daten in den Speichereinheiten gespeichert werden sollen. Die Speichersteuerschaltung kann Befehls- und Steuersignale an die Speichereinheiten und/oder Datenpufferschaltungen ausgeben. Die Speichersteuerschaltungen 330 können zur einfachen Bezugnahme auch als Adress- und Befehlsschaltungen, AC-Schaltungen oder AC-Chips bezeichnet werden. Die Speichersteuerschaltung 330 kann einen registrierten Takttreiber oder RCD (Registered Clock Driver) aufweisen. Die Speichersteuerschaltung 330 kann in einer Ausführungsform eine Speichersteuereinheit 332 aufweisen. Die Speichersteuerschaltung 330 oder die Speichersteuereinheit 332 können ein Zeitplanungsprogramm 338 aufweisen. Die Speichersteuereinheit 332 und/oder das Zeitplanungsprogramm 338 können die Reihenfolge von Arbeitsschritten und Anweisungen optimieren und senden Signale an die Datenpufferschaltungen und die Speichereinheiten aus. Die Speichersteuerschaltung 330/die Speichersteuereinheit 332/das Zeitplanungsprogramm 338 können die Folge von Arbeitsschritten neu anordnen. Die Speichersteuerschaltung kann sich auf der Platine oder dem Modul, z.B. einem DIMM, mit den Speichereinheiten befinden. Wie in 3 dargestellt, sind die Speichersteuerschaltungen 330 in Ausführungsformen als integrierte Schaltung oder Chip ausgebildet und befinden sich auf dem Modul 325 mit den Speichereinheiten 350. In einer Ausführungsform kann die Speichersteuerschaltung entfernt von dem Host-Prozessor angeordnet sein.
  • Die Datenpufferschaltungen 340 puffern, empfangen, übermitteln und/oder übertragen Daten zwischen dem Host, z.B. dem Steuerungsprozessorsystem 302, und den Speichereinheiten 350. Die Datenpufferschaltungen können sich auf derselben Platine oder demselben Modul, z.B. einem DIMM, wie die Speichereinheiten und/oder die Speichersteuerschaltungen befinden. Die Datenpufferschaltungen 340 sind in einer Ausführungsform ebenfalls als integrierte Schaltungen oder Chips ausgebildet und befinden sich auf dem Modul 325 mit den Speichereinheiten 350. Die Datenpufferschaltungen können auch als Datenschaltungen, DC-Schaltungen und/oder DC-Chips bezeichnet werden.
  • In dem Beispiel aus 3 ist ein verteiltes Speichersystem 300 mit einem Speichersteuerungsprozessor 302 und/oder einer Speichersteuerungseinheit 310 und einem Speicher-Teilsystem 320 veranschaulicht. Die Speichersteuerungseinheit 310 und/oder der Speichersteuerungsprozessor 302 kann ein Host sein. Das Hauptspeicher- oder Datenspeichersystem 320 kann so konfiguriert sein, dass es Daten speichert und Speicherdienste für einen oder mehrere Hosts bereitstellt, die direkt oder über ein Netzwerk (z.B. über das Internet) mit dem Speichersystem 320 verbunden sein können. Das Speichersystem kann eine Schnittstelle zur Unterstützung von Datenübertragungen mit dem Host enthalten.
  • In der Ausführungsform aus 3 weist das Speicher-Teilsystem 300 drei (3) DIMMS 325a bis c auf. Das verteilte Speichersystem 300 kann einen oder mehrere Steuerungsprozessorsysteme 302 und mehr oder weniger DIMMs 325 aufweisen. In dem verteilten Speichersystem 300 aus 3 ist jedes Speichermodul 325 als DIMM konfiguriert und weist eine(n) Speichersteuerschaltung oder AC-Chip 330, neun (9) Datenpufferschaltungen oder DC-Chips 340 und sechsunddreißig (36) Speichereinheiten 350, z.B. DRAMs, auf. Die Speichersteuerschaltung ist so konfiguriert und programmiert, dass sie Befehls- und Steuersignale an die Datenpufferschaltungen und die Speichereinheiten sendet. Jeder Speichersteuerchip oder AC-Chip 330 in diesem Beispiel verwaltet den Datenfluss zu und von den Speichereinheiten auf dem Modul 325. Jede Datenpufferschaltung oder jeder DC-Chip 340 in diesem Beispiel interagiert mit und puffert Daten zwischen vier Speichereinheiten 350. Die DIMMs können Speichereinheiten, z.B. DRAMs, umfassen, die vorzugsweise in Neunergruppen, z.B. 9, 18, 27, 36 oder mehr, oder in Zehnergruppen, z.B. 10, 20, 30 oder mehr, angeordnet und organisiert sind.
  • Andere Konfigurationen werden für das Speichermodul 325 und für das Speicher-Teilsystem 320 in Betracht gezogen. Üblicherweise gibt es einen Speichersteuerchip 330 pro neun oder zehn Datenpufferchips 340. Als Beispiel kann ein DDR4-Speichersystem eine(n) Speichersteuerschaltung oder AC-Chip und eine Gruppe von neun (9) Datenpufferschaltungen oder DC-Chips enthalten. Während die Speichereinheitenstruktur und/oder das Modul aus 3 die Speichereinheiten 350 in Neunergruppen zeigt, wird in Betracht gezogen, dass die Speichereinheiten in Zehnergruppen oder größeren Gruppen angeordnet sein können. In dem Beispiel aus 3 ist ein AC-Chip pro DIMM veranschaulicht, obwohl mehr AC-Chips pro DIMM verwendet werden können. Die Speichersystemarchitektur kann so formatiert und strukturiert sein, dass sie DDR4- und DDRS-Standards unterstützt, obwohl die offengelegte(n) und vermittelte(n) Verfahren, Systeme und Architektur auch auf andere Konfigurationen anwendbar wären, darunter zukünftige Standards.
  • In einem Beispiel können die Datenpufferschaltungen oder DC-Chips 340 jeweils über ein Schreibpufferfeld (write buffer array) verfügen, das verwendet wird, um Speichervorgänge aus dem Host-Prozessor 302 (der Speichersteuerungseinheit 310) so lange zu speichern, bis die Speichersteuereinheit 332 auf der Speichersteuerschaltung 330 sie einplanen kann. Es gibt Datenübertragungsbusse oder -verbindungen zwischen dem Host 302 und der Speichersteuerschaltung 330 und zwischen der Speichersteuerschaltung 330 und den Speichereinheiten 350. Es gibt auch eine(n) Datenübertragungsverbindung oder - bus zwischen dem Host 302 und den Datenpufferschaltungen 340 und zwischen den Datenpufferschaltungen 340 und den Speichereinheiten 350. Es kann eine(n) Datenübertragungsverbindung oder -bus 332 von der Speichersteuerschaltung 330 zu den Datenpufferschaltungen oder DC-Chips 340 geben. Bei der/dem Datenübertragungsverbindung oder -bus zwischen der Speichersteuerschaltung 330 und den Datenpufferschaltungen 340 kann es sich um eine(n) Einweg-Rundfunk-Datenübertragungsverbindung oder -bus handeln, genannt BCOM. Weitere Informationen zu spezifischen Ausführungsformen der Datenübertragungsbusse und -verbindungen werden im Folgenden beschrieben.
  • Die Bandbreite der Datenübertragungsverbindungen wirkt sich auf die Leistung des Speichersystems 300 aus. In einer oder mehreren Ausführungsformen stellen das Speichersystem, die architektonische Struktur und/oder das Betriebsverfahren Verbesserungen beim Speichern und/oder Abrufen von Daten zwischen einem Host und einer oder mehreren Speichereinheiten bereit. In einer Ausführungsform werden ein Speichersystem, eine architektonische Struktur und/oder ein Verfahren zum Verbessern der Leistung und/oder der Bandbreite offengelegt, die für Daten auf der Datenübertragungsverbindung zwischen dem Host 302 und der Datenpufferschaltung oder dem DC-Chip 340 verfügbar sind. In einer Ausführungsform wird die Bandbreite der Datenübertragungsverbindung zwischen dem Host 302 und der Datenpufferschaltung 340 verbessert, indem die Häufigkeit des Sendens von Steuerinformationen (Tags) von dem Host 302 an die Datenpufferschaltung oder den DC-Chip 340 verringert (oder das Senden ganz beseitigt) wird.
  • In einer weiteren Ausführungsform werden ein Speichersystem, eine architektonische Struktur und/oder ein Verfahren zum Verbessern der Leistung und/oder der Bandbreite der Datenübertragungsverbindung zwischen der Speichersteuerschaltung 330 und der Datenpufferschaltung oder dem DC-Chip 340 offengelegt. In einer Ausführungsform wird die Bandbreite der Datenübertragungsverbindung zwischen der Speichersteuerschaltung 330 und der Datenpufferschaltung 340 verbessert, indem die Häufigkeit des Sendens von Steuerinformationen (Positions-Tags) von der Speichersteuerschaltung 330 an die Datenpufferschaltung (den DC-Chip) 340 verringert wird. Um eine Nachfrage auf der Verbindung zwischen der Speichersteuerschaltung 330 und den DC-Chips 340 zu verringern, sendet der Host 300 in einer Ausführungsform eines Durchführens eines Speichervorgangs einen Speicherbefehl und ein Speicherdaten-Tag an die Speichersteuerschaltung (den AC-Chip) 330, und der AC-Chip 330 sendet den Speicherdatenbefehl an den DC-Chip 340, wobei aber der AC-Chip 330 das entsprechende Speicherdaten-Tag nicht an den DC-Chip 340 sendet. Stattdessen pflegen sowohl die Speichersteuerschaltung (der AC-Chip) 330 als auch die DC-Chips 340 einen separaten zustandsmaschinengesteuerten lokalen Adresszeiger oder eine Adress-Ablaufsteuerung 335, 345, z.B. ein Speicher-Tag-FIFO, der bzw. die dieselben Tags in derselben Folge enthält. Der AC-Chip 330 und die DC-Chips 340 verwenden für einen Speichervorgang dasselbe Tag aus ihrer lokalen Adress-Ablaufsteuerung 335, 345, z.B. einem lokalen FIFO. Der AC-Chip 330 weist oder ordnet das Host-Speicherdaten-Tag dem nächsten in seiner lokalen Adress-Ablaufsteuerung 335 verfügbaren Tag (Positionsadresse) zu, z.B. seinem lokalen Speicherdaten-Tag-FIFO, und speichert das zugehörige Tag-Paar in einer Zuordnungstabelle 336.
  • 4 veranschaulicht eine schematische Darstellung eines verteilten Pufferspeichersystems 400 gemäß einer Ausführungsform. Das System umfasst eine Mehrzahl von Speichereinheiten 450, z.B. DRAMs. Die DRAMs können auf einem Modul, in der Regel einem DIMM 325, angeordnet sein. Das System 400 kann ein oder mehrere DIMMs aufweisen. Das System kann darüber hinaus eine(n) oder mehrere Speichersteuerschaltungen oder AC-Chips 430 und eine(n) oder mehrere Datenpufferschaltungen oder DC-Chips 440 umfassen. In einer Ausführungsform kann jedes DIMM eine(n) Speichersteuerschaltung oder AC-Chip 430 und eine Mehrzahl von Datenpufferschaltungen oder DC-Chips 440 (9 oder 10 Chips pro AC-Chip) umfassen. Jedes DIMM 325 kann eine Mehrzahl von Speichereinheiten aufweisen, z.B. DRAMs 450, die vorzugsweise in Neunergruppen, z.B. neun (9), achtzehn (18), siebenundzwanzig (27), sechsunddreißig (36) oder mehr angeordnet sind. Die DIMMs können eine ungleiche Anzahl von Speichereinheiten aufweisen, z.B. DRAMs 450. In einer Ausführungsform ist das System für die Unterstützung von DDR4- oder DDRS-Speichersystemen ausgelegt, obwohl andere Konfigurationen und Anordnungen in Betracht gezogen werden. Die Speichersteuerschaltung 430 kann einen geregelten Takttreiber aufweisen, und in einer Ausführungsform kann die Speichersteuerschaltung 430 eine Speichersteuereinheit 432 und/oder ein Speicher-Zeitplanungsprogramm 438 aufweisen.
  • Bei in 4 schematisch veranschaulichter Verbindung 460 handelt es sich um einen differentiellen seriellen Hochgeschwindigkeitsbus (HSS, High Speed Serial) mit acht (8) Lanes von dem Host 402/410 zu der Speichersteuerschaltung oder dem AC-Chip 430 zum Senden von Befehlen an das Speicher-Teilsystem 320 und einer HSS-Lane zurück zum Melden von Statistiken wie zum Beispiel Arbeitsschritten, die abgeschlossen sind, oder Fehlerbenachrichtigungen und Details. 5 zeigt ein Beispiel für den Adress- und Befehls-Datenübertragungsblock, der über die Verbindung 460 von dem Host 402/410 an die Speichersteuerschaltung oder den AC-Chip 430 gesendet wird. In 5 verfügt der Adress- und Befehls-Datenübertragungsblock über zwei (2) Bits (L0 bis L1) zum Angeben der Anzahl von Zyklen, aus denen ein Datenübertragungsblock besteht; neununddreißig (39) Bits (A0 bis A38) an aufrufbarem Raum; vier (4) Bits (C0 bis C3) an Raum für Befehle; sieben (7) Bits (Q0 bis Q6) für die an die DC-Chips für Schreibvorgänge gesendete Tag-Feld-Übereinstimmung; ein Bit (ACK) zum Bestätigen für den vorausgehenden Datenübertragungsblock; und elf (11) Bits (P0 bis P10) für den CRC-Code (zyklische Redundanzprüfung), der zum Erkennen und Eingrenzen von Lane-Fehlern bereitgestellt wird.
  • Bei Verbindung 465 handelt es sich um einen HSS-Bus mit zwei (2) Lanes von dem Host 402/410 zu jeder/jedem Datenpufferschaltung oder DC-Chip 440 für Speicherdaten und zwei (2) Lanes von jedem DC-Chip 440 zu dem Host 402/410 für Abrufdaten. Für Hauptarbeitsschritte wird die Verbindung 465 in einer Ausführungsform lediglich für ein Übermitteln von Daten und der erforderlichen zyklischen Redundanzprüfung (CRC) zum Schützen dieser Daten verwendet. Die Bandbreite der Verbindung 465 wird in einer Ausführungsform nicht für irgendeine Art von Steuerinformationen verbraucht und darf keine Bandbreite für Antwortinformationen verbrauchen. Alle zwei Lanes der Bandbreite für die Verbindung 465 werden in einer Ausführungsform zum Übermitteln von Daten (und CRC) verwendet. 6 zeigt ein Beispiel für einen Datenübertragungsblock für eine Datenübertragung von dem Host 402/410 zu dem DC-Chip 440 über die Verbindung 465. In 6 sind 128 Bits (D0 bis D127 in den Speicherzyklen (Datenübertragungsblöcken) 1 bis 8) Datenfelder, und sechzehn (16) Bits (CRC0 bis CRC15 in dem Speicherzyklus (Datenübertragungsblock) 9) dienen der CRC, so dass neun (9) von (9) Datenübertragungsblöcken (oder 100% der Bandbreite der Verbindung 465) für Daten und CRC verwendet werden. Dadurch, dass die Verbindung 465 nicht zum Übermitteln von Steuersignalen, z.B. Tag- oder Adresspositionen, verwendet wird, werden alle neun (9) Speicherzyklen zum Übermitteln von Daten und CRC verwendet, was die Datenübertragungseffizienz in der Verbindung 465 verbessert.
  • Bei Verbindung 470 handelt es sich um einen Rundfunk- (BCOM-) Bus von der Speichersteuerschaltung oder dem AC-Chip 430 zu den Datenpufferschaltungen oder DC-Chips 440, die dazu verwendet werden, den DC-Chips mitzuteilen, wann die eingeplanten Arbeitsschritte ausgeführt werden sollen. Bei Abrufvorgängen wird nur ein Befehl über die Verbindung 470 von dem AC-Chip 430 an den DC-Chip 440 gesendet. Gemäß einem Aspekt zerlegt die Steuerspeicherschaltung 430 für Speichervorgänge einen Speicherbefehl in zwei Teilvorgänge, die als „Schreibpuffer“ oder „Schreiben in einen Puffer“, wodurch Daten aus dem Host 402/410 in den Datenpuffer auf den DC-Chips 440 geschrieben werden, und „Speicherpuffer“ oder „Speichern aus einem Puffer“ bezeichnet werden, wodurch Daten aus den DC-Chips 440 in den Speichereinheiten 450, z.B. DRAMs, gespeichert werden. Bei einem Schreibpuffer wird in einer Ausführungsform ein Befehl von dem AC-Chip 430 an die Datenpufferschaltungen oder DC-Chips 440 über die Verbindung 470 gesendet, wobei aber kein Steuersignal, z.B. eine Positions-Tag-Adresse, an die Datenpufferschaltung, z.B. den Schreibpuffer, gesendet wird, um Bandbreite zu sparen. Stattdessen verfolgt ein zustandsmaschinengesteuerter Adresszeiger oder eine Adress-Ablaufsteuerung 445 in jedem DC-Chip 440, wo die Speicherdaten in die Datenpufferschaltung geschrieben werden sollen, zum Beispiel die Adresse oder Position in dem Schreibpuffer. Für einen Speicherpuffervorgang werden sowohl ein Befehls- als auch ein Steuersignal, z.B. eine Schreibpufferadresse, an die Datenpufferschaltung oder DC-Chips 440 gesendet. Der Betrieb des Speicher-Teilsystems wird im Folgenden ausführlicher beschrieben.
  • Ein Fehler-ATTN-Netzwerk 475 zwischen den Datenpufferschaltungen oder DC-Chips 440 und der Speichersteuerschaltung oder dem AC-Chip 430 kann ein Fehler-ATTN-Signal von den Datenpufferschaltungen oder DC-Chips 440 enthalten, das der Speichersteuerschaltung oder dem AC-Chip 430 mitteilt, dass ein DC-Chip 440 einen Fehler gemacht hat, der an den Host 402/410 gemeldet werden muss. Man beachte, dass das DRAM-ATTN-Signal, das anzeigt, dass eine Speichereinheit 450, z.B. ein DRAM, einen Fehler gemacht hat, von der Speichereinheit 450 zurück zu ihrem DC-Chip 440 geleitet wird, anstatt es direkt zurück zu dem AC-Chip 430 zu leiten. Der AC-Chip 430 muss diesen Fehler an den Host 402/410 melden, da die DC-Chips 440 keine Antwort- oder Steuerinformationen in ihrem vorausgehenden Datenübertragungsblock aufweisen. Der DC-Chip 440 leitet die Fehler der Speichereinheit über die Verbindung 475 an den AC-Chip 430 zurück, wobei aber jeder DC-Chip 440 Kenntnis darüber hat, dass eine seiner Speichereinheiten, z.B. die DRAMs 450, einen Fehler gemacht hat. Der AC-Chip 430 leitet das Fehlersignal an den Host zurück. Der Host 402/410 kann seine Fehlerbehebungsroutine aufrufen, und Nicht-Hauptarbeitsschritte des Hosts 402/410 können zum Lesen der Statusregister der DC-Chips 440 verwendet werden. Der Host 402/410 ist dann in der Lage, einzukreisen, welcher DC-Chip 440 den Fehler gemacht hat, ob der Fehler auf der HSS-Verbindung aufgetreten ist oder es sich um ein ATTN von einer seiner Speichereinheiten gehandelt hat, oder ob es sich um einen anderen Fehler gehandelt hat, der auf dem DC-Chip 440 aufgetreten ist. Der Host 402/410 kann dann die gewünschte Maßnahme ergreifen, um den Fehler zu beheben.
  • Bei Verbindung 480 handelt es sich um den Befehls- und Adressbus von der Speichersteuerschaltung oder den AC-Chips 430 zu den Speichereinheiten 450, z.B. DRAMs. Bei Verbindungen 490 handelt es sich um die Datenbusse der Speichereinheiten, die von dem DC-Chip 440 verwendet werden, um Speicherdaten an die Speichereinheiten zu senden und Abrufdaten von den Speichereinheiten 450 zu empfangen. Die Datenübertragungsverbindung 490 empfängt auch das ATTN-Signal der Speichereinheit.
  • Um nun zum Betrieb eines Speichersystems zu kommen: Während des normalen Betriebs sendet der Host 402/410 einen Speicherbefehl an die Speichersteuerschaltung oder den AC-Chip 430. Der von dem Host an den AC-Chip 430 gesendete Speicherbefehl kann verarbeitet, decodiert oder in einen „Schreibpuffer“-Befehl, der Daten aus dem Host in den Datenpuffer auf die DC-Chips 440 schreibt, und einen „Speicherpuffer“-Befehl, der Daten aus den DC-Chips 440 in den Speichereinheiten 450 speichert, zerlegt werden. Der „Schreibpuffer“-Befehl wird sofort zur Ausführung eingeplant, und der „Speicherpuffer“-Befehl wird von der Speichersteuerschaltung auf der Grundlage des Optimierens der Systemleistung zur Ausführung eingeplant.
  • Der Schreibpufferbefehl wird von der Speichersteuerschaltung oder dem AC-Chip 430 über die Verbindung 470 an die Datenpufferschaltungen oder die DC-Chips 440 gesendet, und der Host 402/410 sendet zu speichernde Daten über die Verbindung 465 an die DC-Chips 440, vorzugsweise mit einer konfigurierbaren Verzögerung. Es wird kein Steuersignal über die Datenübertragungsverbindung zwischen dem Host und den Datenpufferschaltungen gesendet. In einer Ausführungsform sendet der AC-Chip keine Adresse, kein Tag und keine Position an den DC-Chip 440, die angeben, wo sich die Speicherdaten in dem Schreibpuffer der Datenpufferschaltungen 440 befinden sollen. Stattdessen verfolgt jeder DC-Chip 440 über einen zustandsmaschinengesteuerten Adresszeiger oder eine Adress-Ablaufsteuerung 445, wohin die Daten von dem Host für den nächsten Speichervorgang in den Schreibpuffer des DC-Chips 440 geschrieben werden sollen. Jeder DC-Chip 440 kann die CRC-Codes aus den empfangenen Speicherdaten überprüfen, um sicherzustellen, dass über die HSS-Verbindung 465 kein Fehler aufgetreten ist. Wenn festgestellt wird, dass ein Fehler aufgetreten ist, informiert der DC-Chip 440 den AC-Chip 430 mittels eines Fehler-ATTN-Signals über die Verbindung 475 darüber, dass ein Fehler aufgetreten ist, und der Fehler wird in dem Statusregister 448 des DC-Chips aufgezeichnet.
  • Der AC-Chip 430 kann ein Zeitplanungsprogramm 438 enthalten, das die Reihenfolge von Arbeitsschritten und Systemanweisungen optimiert und Befehle aussendet. Das Zeitplanungsprogramm 438 kann Arbeitsschritte neu anordnen. Das AC-Chip-Zeitplanungsprogramm 438 kann den „Speicherpuffer“- Befehl einplanen, wenn es für die Systemleistung optimal ist, diesen Arbeitsschritt auszuführen. Bankkollisionen, periodische Arbeitsschritte und Abrufbefehle können dazu führen, dass ein Speichervorgang verzögert wird, damit andere Arbeitsschritte vor diesem abgeschlossen oder ausgeführt werden können. Sobald der „Speicherpuffer“-Arbeitsschritt den Speichervorgang abgeschlossen hat, wird der Speicherbefehl des Hosts als abgeschlossen angesehen, und der AC-Chip 430 sendet über die Verbindung 480 einen vorausgehenden Datenübertragungsblock an den Host, wobei als Beispiel das Format in 7 verwendet wird, um anzuzeigen, welche Arbeitsschritte abgeschlossen wurden.
  • In einer Ausführungsform beginnen die Abrufvorgänge damit, dass der Abrufbefehl über die Datenübertragungsverbindung 460 an den AC-Chip 430 gesendet wird, da es nicht notwendig ist, Daten im Voraus zu senden. Abrufvorgänge können in dem System priorisiert werden, und wenn die Busse zur Verwendung verfügbar sind, umgeht ein Abrufvorgang Speichervorgänge in der Warteschlange, um die Latenzzeit zu minimieren. Wenn es jedoch andere ausstehende Abrufvorgänge gibt, die eingeplant werden müssen, tritt der Abrufvorgang in das Zeitplanungsprogramm der Speichersteuerschaltung oder die Speicher-Ablaufsteuerung 438 ein.
  • Sobald das Speicher-Zeitplanungsprogramm 438 der Speichersteuerschaltung den Abrufvorgang zur Ausführung einplant, werden das Befehlssignal und das Steuersignal, z.B. die Adresse (das Tag), von dem AC-Chip 430 über die Verbindung 480 an die Speichereinheiten 450 gesendet, und die DC-Chips 440 werden von dem AC-Chip 430 über die Verbindung 470 darüber informiert, dass Abrufdaten ankommen werden, die in einer festen Anzahl von Zyklen an den Host 402/410 zu senden sind. Sobald die Abrufdaten bei den DC-Chips 440 ankommen, werden die Daten über die Verbindung 465 direkt an den Host 410/402 weitergeleitet. Abrufdaten werden vorzugsweise nicht gepuffert, da dies eine zusätzliche Latenzzeit verursachen würde. Als Reaktion darauf sendet der AC-Chip 430 dann einen vorausgehenden Datenübertragungsblock an den Host, der ihn darüber informiert, dass der Abrufvorgang abgeschlossen ist.
  • Der Antwort-Datenübertragungsblock, der anzeigt, welche Arbeitsschritte abgeschlossen sind, ist in 7 gezeigt. In 7 sind zwei (2) Bits (T0 bis T1) die Datenübertragungsblock-/Typ-Kennung; zwei (2) Bits (R0 bis R1 (op1)) kennzeichnen den Antworttyp, z.B. „Speichern erledigt“, „Abrufen abgeschlossen“ oder „Achtung-Antwort“, für einen ersten Arbeitsschritt; sieben (7) Bits (Q0 bis Q6 (op1)) sind das Befehlswarteschlangen-Tag, das dem Antworttyp des ersten Arbeitsschritts zugehörig ist; zwei (2) Bits (D0 bis D1 (op1)) stellen den Datenübertragungsblock-Versatz-Code für einen ersten Arbeitsschritt bereit (um anzugeben, wann Abrufdaten in Bezug auf den Beginn der vier (4) Speicherzyklus-Datenübertragungsblöcke herausgegeben werden); sechs (6) Bits (CRC0 bis CRC5) sind der CRC für den Datenübertragungsblock; und ein Bit (ACK) ist die Bestätigung für die nachfolgenden Datenübertragungsblöcke (z.B. Bestätigung für den durch die AC empfangenen Datenübertragungsblock in 5). Bei einem Arbeitsschritt vom Antworttyp „Speichern erledigt“ bezeichnen Q0 bis Q6 das Tag „Speichern erledigt“, während bei einem Arbeitsschritt vom Antworttyp „Abrufen abgeschlossen“ Q0 bis Q6 das Daten-Tag bezeichnen, das Abrufdaten zugehörig ist. Wenn es sich bei dem Arbeitsschritt um eine „Achtung- (ATTN-) Antwort“ handelt, können eines oder beide der Befehlswarteschlangen-Tag-Felder überfüllt sein, um Wiederherstellungs- und Statusfehlerinformationen zurück an den Host zu übertragen. Die Antworttypfelder R0 bis R1, die Befehlswarteschlangenfelder Q0 bis Q6 und die Datenübertragungsblock-Versatz-Felder D0 bis D1 weisen zwei Arbeitsschrittfelder - op1 und op2 - auf, und die Felder für den zweiten Arbeitsschritt (op2) weisen dieselbe Definition wie die Felder für den ersten Arbeitsschritt (op1) auf. Zum Optimieren der Bandbreite können Abschlussinformationen für zwei Arbeitsschritte gleichzeitig gesendet werden. Op2 wird verwendet, um der AC die Möglichkeit zu geben, zwei Arbeitsschritte-Antworten pro Datenübertragungsblock herauszugeben (d.h. einen Arbeitsschritt „Speichern erledigt“ und einen Arbeitsschritt „Abrufen abgeschlossen“, zwei Arbeitsschritte „Speichern erledigt“ oder zwei Arbeitsschritte „Abrufen abgeschlossen“). Der von dem AC-Chip beim Melden von Fehlerzuständen an den Host gesendete Antwort-Datenübertragungsblock wäre unterschiedlich dann 7.
  • Weitere Einzelheiten der Funktionsweise eines Speichersystems, das in bestimmten Ausführungsformen verteilte Speicherpuffersysteme umfasst, werden beschrieben. 8 ist ein beispielhafter Ablaufplan gemäß einer Ausführungsform, der ein Verfahren zum Speichern von Daten in einem Speichersystem, das ein verteiltes Pufferspeichersystem umfasst, gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht und beschreibt. Während das Speicherverfahren 800 der Bequemlichkeit halber und nicht in der Absicht beschrieben wird, die Offenbarung als eine Reihe und/oder eine Anzahl von Schritten aufweisend zu beschränken, wird darauf hingewiesen, dass der Prozess nicht als eine Reihe von Schritten durchgeführt werden muss und/oder die Schritte nicht in der Reihenfolge durchgeführt werden müssen, die in Bezug auf 8 gezeigt und beschrieben ist, sondern der Prozess integriert sein kann und/oder ein oder mehrere Schritte zusammen, gleichzeitig durchgeführt werden können, oder die Schritte in der offengelegten Reihenfolge oder in einer alternativen Reihenfolge durchgeführt werden können.
  • Bei 805 sendet ein Host (z.B. ein Prozessor, eine Speichersteuereinheit) einen Speicherbefehl zusammen mit einem Speicherdaten-Tag oder HOST-TAG aus dem Host-Tag-Pool über eine erste Datenübertragungsverbindung, z.B. die Verbindung 460 in 4, an eine Speichersteuerschaltung, z.B. einen AC-Chip 430. Zur einfachen Bezugnahme kann die Speichersteuerschaltung in dieser Erörterung und in 8 als AC-Schaltung oder AC-Chip bezeichnet werden. Das Speicherdaten-Tag oder HOST-TAG aus dem Host-Tag-Pool korreliert mit dem Host-Speicherbefehl und kennzeichnet diesen. Später in dem Prozess, wenn der Speichervorgang abgeschlossen ist und eine Antwort von dem AC-Chip an den Host zurückgesendet wird, die dem Host mitteilt, dass der Vorgang abgeschlossen ist, ist dieses Tag Teil dieser Antwort, damit der Host weiß, welcher Vorgang abgeschlossen wurde. In 5 wird die Adresse (Position in DRAMS, an der die Daten gespeichert werden sollen) als Bits A0 bis A38 gesendet, während es sich bei dem Tag, das den Vorgang verfolgt, um Q0 bis Q6 handelt.
  • Bei 810 sendet der Host zu speichernde Daten über eine andere, zweite Datenübertragungsverbindung, z.B. die Verbindung 465 in 4, an eine Datenpufferschaltung, z.B. einen DC-Chip. In einer Ausführungsform wird kein Steuersignal, z.B. Adress-Tag, über die Datenübertragungsverbindung zwischen dem Host und den Datenpufferschaltungen gesendet. Nur Daten (und CRC) werden in dieser Ausführungsform über die Datenübertragungsverbindung (z.B. die Verbindung 465 in 4) zwischen dem Host und den Datenpufferschaltungen gesendet. Die in den Datenpufferschaltungen oder DC-Schaltungen zu speichernden Daten können nach einer konfigurierbaren (oder programmierbaren) Verzögerung an die DC-Schaltungen gesendet werden. Bei der Verzögerung kann es sich um eine konfigurierbare oder programmierbare feste Verzögerung handeln. Dadurch, dass kein Adress-Tag über die Verbindung 465 gesendet wird, kann die Effizienz oder Fähigkeit der Verbindung 465, Daten zu übertragen, erhöht werden. Zur einfachen Bezugnahme können die Datenpufferschaltungen in dieser Erörterung und in 8 als DC-Schaltungen oder DC-Chips bezeichnet werden.
  • Sowohl die AC-Schaltung 430 als auch die DC-Schaltung 440 können in einer Ausführungsform, wie bei 815 bezeichnet, einen separaten zustandsmaschinengesteuerten Adresszeiger oder eine Adress-Ablaufsteuerung 435, 445, z.B. ein lokales Speicher-Tag-FIFO, pflegen, der bzw. die dieselben Tags in derselben Folge enthält. In der Verwendung hierin ist ein lokales Speicherdaten-Tag von den lokalen Adress-Ablaufsteuerungen 435, 445 der AC- und DC-Schaltungen ein Verweis auf eine Position oder Adresse in der Datenpufferschaltung, an der Daten gespeichert sein können. Ein zustandsmaschinengesteuerter Adresszeiger oder eine Adress-Ablaufsteuerung verfügen über einen Pool von Tags, die auf Adresspositionen von Puffern (z.B. einer Datenpufferschaltung) verweisen oder diese kennzeichnen, und der zustandsmaschinengesteuerte Adresszeiger oder die Adress-Ablaufsteuerung verfolgen die Tags und/oder Adressen weiter. Die lokalen Adress-Ablaufsteuerungen 435, 445 der AC-Schaltung und der DC-Schaltung sind vorzugsweise synchronisiert und können automatisch und synchronisiert sein, da die Zustandsmaschinen, welche die FIFOs steuern, synchronisiert sind.
  • Bei 820 erhält die AC-Schaltung 430 beim Empfangen des Host-Speicherbefehls ein lokales Speicherdaten-Tag aus ihrer Adress-Ablaufsteuerung 435, z.B. aus einem lokalen Speicher-Tag-FIFO, oder ruft es daraus ab. Bei 825 weist der AC-Chip das Host-Speicherdaten-Tag dem lokalen Speicherdaten-Tag zu, z.B. durch Zuordnen, (z.B. die Position auf den DC-Chips, an der die Daten gepuffert werden), auf die seine Adress-Ablaufsteuerung 435 zeigt, z.B. das lokale Speicherdaten-Tag-FIFO, und speichert die Informationen in einem Index oder einer Zuordnungstabelle 436. Bei der Zuordnungstabelle 436 handelt es sich um eine Tabelle, die lokale Speicherdaten-Adress-Tags, die aus der Adress-Ablaufsteuerung 435 des AC-Chips mit Pull-Operation extrahiert wurden, dem Speicherdaten-Tag zuweist und/oder mit diesem korreliert. Die AC-Schaltung decodiert, verarbeitet und/oder zerlegt bei 830 den Host-Speicherbefehl in einen Befehl zum Schreiben in einen Puffer („Schreibpuffer“) und einen Befehl zum Speichern aus einem Puffer („Speicherpuffer“). Bei 835 sendet die AC-Schaltung 430 den Befehl zum Schreiben in einen Puffer an die DC-Schaltung 440 über eine dritte andere Datenübertragungsverbindung, z.B. die Verbindung 470 in 4. In einer Ausführungsform wird kein Steuersignal, z.B. ein lokales Speicher-Tag, an die DC-Schaltung 440 gesendet, das angibt, wohin die Daten in der Datenpufferschaltung 440 geschrieben werden sollen. Konkret sendet die AC-Schaltung 430 über die dritte Datenübertragungsverbindung, z.B. die Verbindung 470 in 4, kein Speicherdaten-Tag an die DC-Schaltung 440. Die AC-Schaltung überträgt dann den Befehl zum Speichern aus einem Puffer zusammen mit dem Speicherdaten-Tag (Pufferposition, an der die Speicherdaten gespeichert sind) mit Push-Operation in einen Speicherbefehlspuffer in dem Zeitplanungsprogramm. Das heißt, der Befehl zum Speichern aus einem Puffer wird mit Push-Operation in den Speicherbefehlspuffer in dem lokalen Speicher-Tag der AC übertragen, so dass dieser Befehl später von dem Zeitplanungsprogramm eingeplant werden kann (siehe z.B. 850 in dem Ablaufplan aus 8).
  • Bei 840 erhält, erzeugt und/oder ruft die DC-Schaltung beim Empfangen des Befehls zum Schreiben in einen Puffer von der dritten Datenübertragungsverbindung, z.B. der Verbindung 470 in 4, ein lokales Speicherdaten-Tag aus ihrer lokalen Adress-Ablaufsteuerung 445, z.B. einem lokalen Speicher-Tag-FIFO, ab. Die lokale Adress-Ablaufsteuerung 445 der DC-Schaltung ist vorzugsweise mit der lokalen Adress-Ablaufsteuerung 435 der AC-Schaltung synchronisiert, so dass das lokale Speicherdaten-Tag auf dieselbe Position in der DC-Schaltung zeigt. Als Reaktion auf das Empfangen des Befehls zum Schreiben in einen Puffer überträgt die DC-Schaltung 440 bei 845 von der zweiten Datenübertragungsverbindung, z.B. der Verbindung 465 in 4, eingehende, zu speichernde Daten mit Push-Operation in den Datenpuffer, auf den das Speicherdaten-Tag zeigt, das aus ihrer lokalen Adress-Ablaufsteuerung 445, z.B. einem lokalen Speicher-Tag-FIFO, erhalten, erzeugt und/oder abgerufen wurde. Die DC-Schaltung 440 kann die Daten nach einer konfigurierbaren (oder programmierbaren) Verzögerung mit Push-Operation in ihren Puffer übertragen.
  • Bei 850 plant die AC-Schaltung 430 den Befehl zum Speichern aus einem Puffer ein und sendet den Speicherbefehl über eine vierte Datenübertragungsverbindung, z.B. die Verbindung 480 in 4, an eine oder mehrere Speichereinheiten 450. Der Speicherbefehl kann den Speicherbefehl und die Adressposition, an der die Daten in den Speichereinheiten zu speichern sind, enthalten. Dieser Speicherbefehl ähnelt dem Host-Speicherbefehl, der zuvor decodiert oder in separate Befehle zum Schreiben in einen Puffer und zum Speichern aus einem Puffer zerlegt wurde. In einer Ausführungsform kann es sich dabei um einen DDR4-Speichervorgang handeln, der den Speicherbefehl und das Adress-Tag oder die Position, an der die Daten in den Speichereinheiten gespeichert werden sollen, umfasst. Die AC-Schaltung 430 sendet bei 855 auch einen Befehl zum Speichern aus einem Puffer zusammen mit dem Speicherdaten-Tag über die dritte Datenübertragungsverbindung, z.B. die Verbindung 470 in 4, an die DC-Schaltungen 440. Bei dem an die DC-Schaltungen gesendeten Speicherdaten-Tag handelt es sich um ein lokales Tag, das die DC-Schaltungen darüber informiert, wo sich die in den Speichereinheiten zu speichernden Daten in den DC-Schaltungen befinden. Bei 860 extrahieren die DC-Schaltungen 440 zu speichernde Daten mit Pull-Operation aus dem Datenpuffer, auf den das von der AC-Schaltung 430 über die dritte Datenübertragungsverbindung, z.B. die Verbindung 470 in 4, empfangene Speicherdaten-Tag zeigt. Bei 865 senden die DC-Schaltungen 440 zu speichernde Daten über eine fünfte Datenübertragungsverbindung, z.B. die Verbindung 490 in 4, an die Speichereinheiten 450. Aus der Sicht der Speichereinheiten erkennen die Speichereinheiten einen Speichervorgang, in einer Ausführungsform einen DDR4-Speichervorgang, aus der Kombination der AC-Schaltungen und der DC-Schaltungen.
  • Bei 870 überträgt die DC-Schaltung 440 das Speicherdaten-Tag mit Push-Operation zurück an ihre Adress-Ablaufsteuerung 445, z.B. ihr lokales Speicher-Tag-FIFO. Die AC-Schaltung 430 verwendet ihr lokales Speicherdaten-Tag als Index für die Zuordnungstabelle und ruft bei 875 ein Host-Speicherdaten-Tag aus der Zuordnungstabelle 436 der AC-Schaltung ab. Bei 880 überträgt die AC-Schaltung 430 ihr lokales Speicherdaten-Tag mit Push-Operation zurück an ihre Adress-Ablaufsteuerung 435, z.B. das lokale Speicher-Tag-FIFO des AC-Chips. Bei 885 sendet die AC-Schaltung 430 das Host-Speicherdaten-Tag über die erste Datenübertragungsverbindung, z.B. die Verbindung 460 in 4, zurück an den Host. Das Zurücksenden des HOST-Tags zeigt an, dass der diesem Tag zugehörige Arbeitsschritt oder Befehl abgeschlossen ist. Und bei 890 sendet der Host das Speicherdaten-Tag zurück an den Host-Tag-Pool. Während 8 das Verfahren als eine Reihe von Schritten offenlegt und beschreibt, wird man verstehen, dass die vorstehend und in 8 beschriebene Reihenfolge geändert werden kann.
  • In einem Aspekt des Systems, der Architektur und des Verfahrens zum Speichern von Daten in einem Speichersystem verwendet eine Speichersteuerschaltung eine entfernt angeordnete Adress-Ablaufsteuerung, um nachzuverfolgen, wo in dem Schreibpuffer einer Datenpufferschaltung Daten für den nächsten Speichervorgang geschrieben werden sollen. Durch Verwendung von synchronisierten zustandsmaschinengesteuerten Adresszeigern oder Adress-Ablaufsteuerungen zum Verfolgen, wo Daten in die Datenpufferschaltung geschrieben werden sollen, z.B. die Pufferadresse, sollte die Effizienz der Datenverbindung zwischen dem Host und den DC-Chips sowie die Effizienz der Verbindung zwischen dem AC-Chip und den DC-Chips verbessert werden. 9 zeigt einen beispielhaften Ablaufplan, der ein Verfahren veranschaulicht und beschreibt, wie ein verteiltes Speicherpuffersystem mit einer AC-schaltungsgesteuerten Adress-Ablaufsteuerung eine entfernt angeordnete Ablaufsteuerung verwenden kann, um nachzuverfolgen, wo in dem Schreibpuffer einer Datenpufferschaltung, z.B. eines DC-Chips, Daten für den nächsten Arbeitsschritt geschrieben werden sollen. Das Verfahren aus 9 wird im Zusammenhang mit 10 beschrieben, welche die Zuordnungstabelle und den zustandsmaschinengesteuerten Adresszeiger bzw. die Adress-Ablaufsteuerung 435, 445, z.B. das lokale Speicher-Tag-FIFO, der AC- und DC-Chips veranschaulicht. Während das Verfahren 900 der Bequemlichkeit halber und nicht in der Absicht beschrieben wird, die Offenbarung als eine Reihe und/oder eine Anzahl von Schritten aufweisend zu beschränken, wird darauf hingewiesen, dass der Prozess nicht als eine Reihe von Schritten durchgeführt werden muss und/oder die Schritte nicht in der Reihenfolge durchgeführt werden müssen, die in Bezug auf 9 gezeigt und beschrieben ist, sondern der Prozess integriert sein kann und/oder ein oder mehrere Schritte zusammen, gleichzeitig durchgeführt werden können, oder die Schritte in der offengelegten Reihenfolge oder in einer alternativen Reihenfolge durchgeführt werden können.
  • In dem beispielhaften Verfahren aus 9 sendet der Host 402 und empfängt die Speichersteuerschaltung 430 bei 905 einen Speicherbefehl mit einem Speicherdaten-Tag. Bei dem Speicherdaten-Tag kann es sich um ein Host-Speicherdaten-Tag handeln, das der Host aus dem Host-Tag-Pool 406 erhalten, erzeugt oder abgerufen hat. Zur einfachen Bezugnahme kann die Speichersteuerschaltung in 9 und 10 alternativ als AC-Schaltung oder AC-Chip bezeichnet werden. In dem in 10 gezeigten Beispiel erhält der Host 402 das Speicherdaten-Tag „G“ aus dem Host-Tag-Pool 406. Das Speicherdaten-Tag korreliert mit dem Host-Speicherbefehl und kennzeichnet diesen. Der Speicherbefehl kennzeichnet die Position in den Speichereinheiten, an der die Daten gespeichert werden sollen, und in 5 sind die Bits A0 bis A38 die Position in den Speichereinheiten, an der die Daten gespeichert werden sollen, während die Bits Q0 bis 6 das Host-Tag sind, das zum Kennzeichnen des Befehls verwendet wird. Beim Empfangen des Speicherbefehls erhält die AC-Schaltung bei 910 in 9 das nächste Tag aus ihrer lokalen Adress-Ablaufsteuerung oder ruft es daraus ab. In dem Beispiel aus 10 ist das nächste Tag, das die AC-Schaltung 430 aus ihrer lokalen Adress-Ablaufsteuerung abruft, z.B. aus dem lokalen Speicher-Tag-FIFO 435, Tag #29.
  • Die AC-Schaltung weist bei 915 in 9 dem lokalen Tag, das aus der Adress-Ablaufsteuerung 435 der AC-Schaltung erhalten wurde, z.B. dem lokalen Speicherdaten-Tag, den Befehl zum Speichern aus einem Puffer zu und ordnet dem Speicherdaten-Tag, das aus dem Host-Tag-Pool empfangen wurde, das Tag aus der Adress-Ablaufsteuerung der AC-Schaltung zu, z.B. das lokale Speicherdaten-Tag, und speichert die Informationen (z.B. Beziehung, Zugehörigkeit) in der Zuordnungstabelle 436, wie in 10 dargestellt. Auf diese Weise wird das lokale Speicherdaten-Tag dem von dem Host empfangenen Befehls- und Speicherdaten-Tag zugewiesen. In dem Beispiel aus 10 ist das nächste Tag aus der Adress-Ablaufsteuerung 435 der AC-Schaltung das Tag #29, und das lokale Speicherdaten-Tag #29 wird dem Host-Speicherdaten-Tag G zugeordnet, so dass das Speicherdaten-Tag #29 dem Host-Tag G zugehörig ist.
  • Die AC-Schaltung sendet bei 920 in 9 den Befehl zum Schreiben in einen Puffer an die DC-Schaltung 440, um die DC-Schaltung 440 zu informieren, das nächste Tag aus ihrer lokalen Adress-Ablaufsteuerung zu erhalten oder abzurufen, z.B. aus dem lokalen Speicher-Tag-FIFO 445, wie in 10 gezeigt. Bei 925 in 9 verarbeitet, erhält oder ruft die DC-Schaltung das nächste Tag aus ihrer lokalen Adress-Ablaufsteuerung, z.B. aus dem lokalen Speicher-Tag-FIFO 445, ab und speichert die Daten von dem Host 402 an der Datenpufferposition, auf welche die lokale Adress-Ablaufsteuerung 445 der DC-Schaltung zeigt. In dem Beispiel aus 10 erhält die DC-Schaltung das Tag #29 aus ihrer lokalen Adress-Ablaufsteuerung 445, z.B. aus ihrem lokalen Speicher-Tag-FIFO, und speichert die Daten von dem Host an der Datenpufferposition, die mit dem Tag #29 korreliert. Die lokale Adress-Ablaufsteuerung 435 der AC-Schaltung 430 sollte mit der lokalen Adress-Ablaufsteuerung 445 der DC-Schaltung 440 synchronisiert sein, so dass die Ablaufsteuerungen auf dieselbe Adresse/Position in der DC-Schaltung, z.B. dem Speicherpuffer, zeigt.
  • Das in 10 gezeigte Zeitplanungsprogramm 448 der AC-Schaltung gibt bei 930 in 9 den Speicherbefehl zusammen mit dem zugehörigen lokalen Speicher-Tag in seiner Zuordnungstabelle an die Speichereinheiten aus. In dem Beispiel aus 9 und 10 sendet die AC-Schaltung 430 einen dem Tag #29 zugehörigen Speicherbefehl an die Speichereinheiten 450 in 4. Die AC-Schaltung sendet an die Speichereinheiten den Befehl (Abrufen oder Speichern) und die Speicheradresse (A0 bis A38 in 5) an die Speichereinheiten. Die AC-Schaltung sendet bei 935 in 9 einen Befehl zum Speichern aus einem Puffer mit dem lokalen Speicherdaten-Tag an die DC-Schaltung. In dem Beispiel aus 10 gibt das Zeitplanungsprogramm 438 der AC-Schaltung den dem Tag #29 zugehörigen Befehl zum Speichern aus einem Puffer an die DC-Schaltungen 440 aus. Bei 940 in 9 ruft die DC-Schaltung unter Verwendung des von der AC-Schaltung empfangenen lokalen Speicher-Tags Daten von der Pufferposition ab. In dem Beispiel aus 10 ruft die DC-Schaltung 440 unter Verwendung des von der AC-Schaltung 430 empfangenen lokalen Tags #29 Daten von der Pufferposition #29 ab.
  • Die DC-Schaltung speichert bei 945 in 9 die Daten in den Speichereinheiten. In dem Beispiel aus 10 speichert die DC-Schaltung 440 die Daten in den Speichereinheiten (z.B. den Speichereinheiten 450 in 4) an der Position, die ursprünglich durch den Host-Speicherbefehl gekennzeichnet wurde (die durch die Bits A0 bis A38 in 5 gekennzeichnete Position oder Adresse). Die DC-Schaltung 440 überträgt bei 950 in 9 das lokale Tag mit Push-Operation zurück an ihre Adress-Ablaufsteuerung, z.B. ein lokales Speicher-Tag-FIFO. In dem Beispiel aus 10 überträgt die DC-Schaltung 440 das Tag #29 mit Push-Operation zurück an ihr lokales Speicher-Tag-FIFO 445 oder gibt es an dieses heraus. Bei 955 in 9 ruft die AC-Schaltung 430 das Host-Tag aus ihrer Zuordnungstabelle 436 ab, indem sie das lokale Speicher-Tag als Index verwendet, und gibt bei 955 das Host-Speicherdaten-Tag an den Host heraus. In dem Beispiel aus 10 ruft die AC-Schaltung das Host-Tag G aus ihrer Zuordnungstabelle 436 ab, indem sie das Tag #29 als Index verwendet, und gibt das Host-Speicherdaten-Tag G an den Host heraus. Bei 960 in 9 überträgt die AC-Schaltung 430 ihr lokales Speicherdaten-Tag mit Push-Operation zurück an ihre lokale Adress-Ablaufsteuerung. In dem Beispiel aus 10 überträgt die AC-Schaltung 430 ihr lokales Speicherdaten-Tag #29 mit Push-Operation zurück an das lokale Speicher-Tag-FIFO 435 oder gibt es an dieses heraus. Der Host sendet bei 965 in 9 das Host-Speicherdaten-Tag zurück an den Host-Tag-Pool. In dem Beispiel aus 10 sendet der Host 402 das Host-Speicherdaten-Tag G zurück an den Host-Tag-Pool 406.
  • Ein alternatives Verfahren gemäß einer Ausführungsform des Speicherns von Daten in einem Speichersystem ist in 11 dargestellt. Während das Verfahren 1100 der Bequemlichkeit halber und nicht in der Absicht beschrieben wird, die Offenbarung als eine Reihe und/oder eine Anzahl von Schritten aufweisend zu beschränken, wird darauf hingewiesen, dass der Prozess nicht als eine Reihe von Schritten durchgeführt werden muss und/oder die Schritte nicht in der Reihenfolge durchgeführt werden müssen, die in Bezug auf 11 gezeigt und beschrieben ist, sondern der Prozess integriert sein kann und/oder ein oder mehrere Schritte zusammen, gleichzeitig durchgeführt werden können, oder die Schritte in der offengelegten Reihenfolge oder in einer alternativen Reihenfolge durchgeführt werden können.
  • In dem beispielhaften Verfahren aus 11 zerlegt der Host bei 1105 den Speicherbefehl in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer. Bei 1110 sendet der Host und empfängt der DC-Chip Speicherdaten und den Befehl zum Schreiben in einen Puffer über die Datenübertragungsverbindung zwischen dem Host und der DC-Schaltung, z.B. die Verbindung 465 in 4. Bei 1115 pflegen sowohl der AC- als auch der DC-Chip separate lokale, zustandsmaschinengesteuerte Adresszeiger oder lokale Adress-Ablaufsteuerungen (z.B. ein lokales Speicher-Tag-FIFO), die synchronisiert sind und dieselben Tags in derselben Folge enthalten. In dieser Ausführungsform kennzeichnen die lokalen Speicher-Tags eine Position in der Speicherdaten-Pufferschaltung, z.B. eine Adresse oder Position in der DC-Schaltung. Bei 1120 sendet der Host und empfängt die AC-Schaltung den Speicherbefehl zusammen mit dem Speicherdaten-Tag (z.B. Host-Tag) von dem Hosting-Pool über eine Datenübertragungsverbindung zwischen dem Host und der AC-Schaltung, z.B. die Verbindung 460 in 4.
  • Bei 1125 erhält die AC-Schaltung beim Empfangen des Host-Speicherdatenbefehls ein lokales Speicherdaten-Tag aus ihrer lokalen Adress-Ablaufsteuerung (z.B. aus dem AC-Speicher-Tag-FIFO). Die AC-Schaltung weist oder ordnet bei 1130 das Host-Speicherdaten-Tag dem lokalen Speicherdaten-Tag der AC zu, das aus der lokalen Adress-Ablaufsteuerung der AC empfangen oder erhalten wurde, und speichert die Zugehörigkeit in einer Zuordnungstabelle. Bei 1135 decodiert die AC-Schaltung den Host-Speicherbefehl in einen Befehl zum Speichern aus einem Puffer. Die AC-Schaltung in dieser Ausführungsform muss den Befehl zum Schreiben in einen Puffer nicht an die DC-Schaltung senden, da der Befehl zum Schreiben in einen Puffer direkt von dem Host an die DC-Schaltung gesendet wird. Bei 1140 überträgt die AC-Schaltung den Befehl zum Speichern aus einem Puffer zusammen mit aus ihrer lokalen Adress-Ablaufsteuerung (die der Adressposition in dem Pufferspeicher oder den DC-Schaltungen entspricht und diese kennzeichnet) empfangenen lokalen Speicherdaten mit Push-Operation in einen Speicherbefehlspuffer in ihrem Zeitplanungsprogramm. Bei 1145 erhält die DC-Schaltung 440 beim Empfangen des Befehls zum Schreiben in einen Puffer ein lokales Speicherdaten-Tag aus ihrer Adress-Ablaufsteuerung 445, z.B. aus ihrem lokalen Speicherdaten-Tag-FIFO, oder ruft es daraus ab und speichert bei 1150 die Speicherdaten in dem Datenpuffer, auf den das aus ihrer lokalen Adress-Ablaufsteuerung erhaltene Speicherdaten-Tag zeigt.
  • Der Prozess des Speicherns von Daten in 11 fährt mit dem in den Blöcken 850 bis 890 in 8 gezeigten und vorstehend beschriebenen Arbeitsschritt fort. In dieser Ausführungsform des Speicherns von Daten decodiert die AC-Schaltung 430 den Host-Speicherbefehl in einen Befehl zum Speichern aus einem Puffer. Die AC-Schaltung 430 muss den Befehl zum Schreiben in einen Puffer nicht mehr an die DC-Schaltungen 440 senden, da die DC-Schaltungen wissen, wo sie die Daten in den DC-Schaltungen (in dem Pufferspeicher) speichern sollen. In dieser Ausführungsform wird die Bandbreite der BCOM-Verbindung zwischen der AC-Schaltung 430 und der DC-Schaltung 440 nicht für Befehle zum Schreiben in einen Puffer genutzt. Allerdings wird die Bandbreite der Verbindung zwischen dem Host und den DC-Schaltungen nicht nur zum Übertragen von Daten genutzt. Anstatt dass die AC-Schaltung die DC-Schaltungen anweist, ihr lokales Tag-FIFO abzurufen, wie in den Verfahren in den 8 und 9, weist der Host die DC-Schaltungen an, ihr lokales Tag-FIFO abzurufen.
  • Ein Verwenden einer synchronisierten Zustandsmaschine zum Verfolgen des Adresszeigers, der die Pufferadresse speichert, an der Daten geschrieben werden sollten, verbessert die Effizienz der Datenverbindung zwischen dem Host und den DC-Chips und zwischen dem AC-Chip und den DC-Chips, kann jedoch ein Zuverlässigkeitsproblem verursachen. Wenn ein zustandsmaschinengesteuerter Adresszeiger, z.B. eine Adress-Ablaufsteuerung, wie zum Beispiel ein lokales Speicher-Tag-FIFO, aus der Synchronisation gerät, schreibt die Datenpufferschaltung die Speicherdaten kontinuierlich an eine andere Adresse als die Adresse, welche die Speichersteuerschaltung (der AC-Chip) zum Speichern der Daten in den Speichereinheiten angibt. Wenn dies geschieht, gibt es keine Möglichkeit, zu erkennen, dass eine der Zustandsmaschinen, z.B. die Adress-Ablaufsteuerungen, aus der Synchronisation geraten ist, und der Fehler kann so lange unbemerkt bleiben, bis ECC-Fehler in Lesevorgängen (erkannt werden). Wenn ein Lesevorgang für die Adresse durchgeführt wird, der fehlerhafte Daten zugehörig sind, z.B. die Position, an der zuvor mit einer Zustandsmaschine gespeichert wurde, die aus der Synchronisation geraten ist, wäre die ECC mangelhaft.
  • Um das Risiko zu verringern, dass die Adress-Ablaufsteuerung, z.B. das lokale Speicher-Tag-FIFO, der Speichersteuerschaltung (des AC-Chips) und der Datenpufferschaltungen (der DC-Chips) aus der Synchronisation gerät, kann ein Prozess zum periodischen Prüfen und Resynchronisieren von Tags umgesetzt werden. In einer Ausführungsform kann die Speichersteuerschaltung (AC-Schaltung) während eines Leerlaufzyklus der BCOM-Verbindung das nächste zu verwendende Speicherdaten-Tag an die Datenpufferschaltungen (DC-Chips) senden, und/oder in einer alternativen Ausführungsform können die Datenpufferschaltung oder der DC-Chip das nächste zu verwendende Speicherdaten-Tag an den Host senden. Beide Prozesse werden nachfolgend genauer beschrieben.
  • Ein Verfahren zum Überprüfen, ob die zustandsmaschinengesteuerten Adresszeiger der Speichersteuerschaltung und die Datenpufferschaltungen aus der Synchronisation geraten sind, ist in dem Ablaufplan in 12 schematisch gezeigt. Während das Verfahren 1200 in 12 der Bequemlichkeit halber und nicht in der Absicht beschrieben wird, die Offenbarung als eine Reihe und/oder eine Anzahl von Schritten aufweisend zu beschränken, wird darauf hingewiesen, dass der Prozess nicht als eine Reihe von Schritten durchgeführt werden muss und/oder die Schritte nicht in der Reihenfolge durchgeführt werden müssen, die in Bezug auf 12 gezeigt und beschrieben ist, sondern der Prozess integriert sein kann und/oder ein oder mehrere Schritte zusammen, gleichzeitig durchgeführt werden können, oder die Schritte in der offengelegten Reihenfolge oder in einer alternativen Reihenfolge durchgeführt werden können.
  • Bei 1205 in 12 senden alle DC-Chips ihre „nächste zu schreibende Adresse“ aus ihrer lokalen Adress-Ablaufsteuerung an den Host. Zum Beispiel können die DC-Chips 440 in 4 ihre nächste zu schreibende Adresse, z.B. ein lokales Speicher-Tag, aus ihrer lokalen Adress-Ablaufsteuerung, z.B. dem lokalen Speicher-Tag-FIFO 445 in 10, über die zweite Verbindung 465 an den Host senden. Bei 1210 in 12 werden die von jedem DC-Chip 440 empfangenen Tags verglichen, vorzugsweise durch den Host. Wenn eines der Tags von den DC-Chips unterschiedlich ist, kann bei 1215 ein Wiederherstellungsbefehl an den AC-Chip 430 ausgegeben werden, vorzugsweise durch den Host über die Verbindung 460, so dass das System in eine Wiederherstellungsbetriebsart eintritt. Als Teil der Wiederherstellung kann der AC-Chip 430 bei 1220 in 12 den DC-Chip 440 über die Verbindung 470 zurücksetzen. Das System kann den Prozess des Überprüfens der Synchronisierung der lokalen Adress-Ablaufsteuerung des AC-Chips und der lokalen Adress-Ablaufsteuerungen des DC-Chips in regelmäßigen Abständen durchlaufen, wenn die Verbindung zu dem Host im Leerlauf ist, oder gemäß einer festgelegten Häufigkeit oder Zeitspanne, wenn das Überprüfen nicht vorher erfolgt. Man beachte, dass der Host nicht weiß, ob die Datenpufferschaltungen (DC-Chips) die richtigen Adress-Tags senden, da die Speichersteuerschaltung (der AC-Chip) die Adresszeiger, z.B. die Adress-Ablaufsteuerungen, für das System steuert. Der Host erkennt lediglich, dass ein Fehler aufgetreten ist, aufgrund der Tatsache, dass nicht alle DC-Chips dieselbe nächste zu schreibende Adresse melden. Der Host kann die Statusregister der Datenpufferschaltungen (DC-Chips) lesen, um festzustellen, wo der Fehler aufgetreten ist und um welche Fehler es sich handelte. Es ist jedoch wahrscheinlich, dass der Host in der Lage ist, einzugrenzen, welcher DC-Chip den Fehler gemacht hat, ohne die Statusregister abzufragen, da es höchst unwahrscheinlich ist, dass bei mehr als einem DC-Chip eine Adress-Ablaufsteuerung (ein Zeiger) aus der Synchronisation geraten ist.
  • Die Wiederherstellungsbetriebsart kann eine oder mehrere der folgenden Maßnahmen umfassen. Der Host, z.B. der Prozessor oder die Host-Speichersteuereinheit, kann ein Senden neuer Arbeitsschritte auf dem Speicherkanal einstellen, der Host kann alle unvollständigen Speichervorgänge löschen und/oder der Host kann warten, bis alle Abrufvorgänge abgeschlossen sind. Es können geeignete Maßnahmen ergriffen werden, wie zum Beispiel ein Entleeren von Datenwarteschlangen, ein Aussparen einer Lane usw. Die Maßnahme kann ein Entfernen oder Aussparen eines mangelhaften DC-Chips umfassen, wenn dieser häufig Fehler macht. Einige dieser Maßnahmen erfordern üblicherweise ein Eintreten in eine Nicht-Hauptbetriebsart des Speichersystems. Der Host kann auch einen Arbeitsschritt zum Zurücksetzen der Zustandsmaschine ausgeben, wodurch bewirkt wird, dass die Speichersteuerschaltung (der AC-Chip) und die Datenpufferschaltungen (DC-Chips) ihre zustandsmaschinengesteuerten Adresszeiger oder Adress-Ablaufsteuerungen neu initialisieren. Der AC-Chip kann durch Senden eines Befehls über die Verbindung 470 die lokale Adress-Ablaufsteuerung des DC-Chips zurücksetzen. In der bevorzugten Ausführungsform wären derartige Maßnahmen ein Nicht-Hauptbetrieb. Nach Ergreifen einer geeigneten Maßnahme können das System und der Host mit einem Ausgeben von Befehlen auf dem Speicherkanal fortfahren.
  • Ein alternatives Verfahren zum Überprüfen, ob die lokalen Adress-Ablaufsteuerungen der Speichersteuerschaltung (des AC-Chips) und der Datenpufferschaltung (des DC-Chips) aus der Synchronisation geraten sind, ist in dem Ablaufplan aus 13 gezeigt. Während das Verfahren 1300 in 13 der Bequemlichkeit halber und nicht in der Absicht beschrieben wird, die Offenbarung als eine Reihe und/oder eine Anzahl von Schritten aufweisend zu beschränken, wird darauf hingewiesen, dass der Prozess nicht als eine Reihe von Schritten werden muss und/oder die Schritte nicht in der Reihenfolge durchgeführt werden müssen, die in Bezug auf 13 gezeigt und beschrieben ist, sondern der Prozess integriert sein kann und/oder ein oder mehrere Schritte zusammen, gleichzeitig durchgeführt werden können, oder die Schritte in der offengelegten Reihenfolge oder in einer alternativen Reihenfolge durchgeführt werden können.
  • Das Verfahren zum Überprüfen, ob die lokalen Adress-Ablaufsteuerungen in Synchronisation sind, kann auch mit einem Durchlaufen von Korrekturmaßnahmen einhergehen. In einer Ausführungsform können Korrekturmaßnahmen beinhalten, dass der AC-Chip einen periodischen SYNC-Befehl an die DC-Chips sendet. In einer Ausführungsform kann der AC-Chip überprüfen, ob sich die BCOM-Verbindung 470 im Leerlauf befindet. Alternativ dazu oder zusätzlich kann, wenn die lokalen Adress-Ablaufsteuerungen nach einer bestimmten Zeitspanne oder Anzahl von Arbeitsschritten nicht überprüft werden, das System gemäß einer Ausführungsform dennoch eine Synchronisationsprüfung durchlaufen, wie im Folgenden in Bezug auf 13 beschrieben wird. In dem System, in dem die Datenübertragungsverbindung 470 voll ausgelastet ist, wobei kein Leerlaufzyklus gefunden werden kann, in dem der AC-Chip 430 nach einer programmierbaren Zeitspanne sein nächstes zu verwendendes Tag senden kann, signalisiert der AC-Chip 430 seinem Zeitplanungsprogramm 438, eine Pause einzulegen, nachdem der AC-Chip 430 den nächsten zu verwendenden Speicherdaten-Tag über die Verbindung 470 an alle DC-Chips 440 gesendet hat, so dass das System eine Synchronisierungsprüfung durchlaufen kann. Bei 1305 in 13 kann die Speichersteuerschaltung (der AC-Chip) die nächste zu schreibende Adresse (ein Tag) aus der lokalen Adress-Ablaufsteuerung des AC-Chips, z.B. ihrem lokalen Speicher-Tag-FIFO, an die Datenpufferschaltungen (DC-Chips) senden. In einem Beispiel kann der AC-Chip 430 sein nächstes zu schreibendes Adress-Tag aus seinem lokalen Speicher-Tag-FIFO 435 über den BCOM-Bus (die Verbindung 470) an den DC-Chip 440 senden. Bei 410 in 13 vergleicht jeder DC-Chip 440 seine nächste zu schreibende Adresse (ein Tag) aus seiner lokalen Adress-Ablaufsteuerung, z.B. seinem lokalen Speicherdaten-Tag-FIFO 445, mit dem von dem AC-Chip 430 gesendeten Tag, um zu überprüfen, ob der Adresszeiger des DC-Chips (der Adress-Ablaufsteuerung) korrekt ist. Wenn einer der DC-Chips 440 einen Fehler aufweist, benachrichtigt der DC-Chip 440 bei 1315 in 13 den AC-Chip 1030 durch das ATTN-Signal über die Verbindung 475.
  • Dieses ATTN-Signal stellt keine Information darüber bereit, welcher DC-Chip den Fehler gemacht hat, da es sich um ein drahtgebundenes ODER-Signal handelt. Bei 1320 in 13 sendet der AC-Chip 440 dann das Fehler-ATTN-Signal über die Verbindung 460 an den Host. Der Host kann dann in eine Wiederherstellungsbetriebsart eintreten. Beim Empfangen eines Achtung-Signals kann der Host bei 1325 in 13 über die Verbindung 460 einen Wiederherstellungsbefehl an den AC-Chip 430 ausgeben. Der Host weiß jedoch nicht mehr, was falsch ist und wo, wie dies der Fall war, als die DC-Chips einfach die nächste Adresse aus der Adress-Ablaufsteuerung (dem Adresszeiger) an den Host schickten. Das System kann in eine Wiederherstellungsbetriebsart eintreten, in welcher der Host ein Senden neuer Arbeitsschritte auf dem Speicherkanal einstellen und alle unvollständigen Arbeitsschritte löschen kann. Abruf- und Speichervorgänge sollten gelöscht werden, da der Host nicht weiß, was falsch ist oder wo. Das System kann in einen Nicht-Hauptbetrieb eintreten. Der Host kann die Statusregister aus den DC-Chip-Registern auslesen, um festzustellen, wo Fehler aufgetreten sind und welche. Nun, da der Host weiß, was falsch ist und wo, kann der Host möglicherweise eine Maßnahme ergreifen. Die Maßnahme könnte darin bestehen, einen fehlerhaften DC-Chip auszusparen, wenn er häufig Fehler macht. Maßnahmen können darüber hinaus ein Ausgeben eines Arbeitsschrittes zum Zurücksetzen der Zustandsmaschine umfassen, wodurch bewirkt wird, dass der AC-Chip und die DC-Chips jeweils ihre zustandsmaschinengesteuerten Adresszeiger, z.B. Adress-Ablaufsteuerungen, neu initialisieren. Der AC-Chip kann bei 1330 in 13 den/die DC-Chip(s) 440 über die Verbindung 470 zurücksetzen. Nach einer geeigneten Maßnahme kann das System den Nicht-Hauptbetrieb verlassen und mit einem Ausgeben von Befehlen auf dem Speicherkanal fortfahren.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Außerdem kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine Logik beinhalten, die mit dem Prozessor integriert und/oder durch ihn ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin genannten Prozessschritte ausführen kann. Mit „integriert mit“ ist gemeint, dass der Prozessor eine Logik als Hardware-Logik in sich eingebettet hat, wie z.B. eine anwendungsspezifische integrierte Schaltung (ASIC), eine im Feld programmierbare GatterAnordnung (FPGA, Field Programmable Gate Array), usw. Mit „durch den Prozessor ausführbar“ ist gemeint, dass es sich bei der Logik um Hardware-Logik, Software-Logik wie zum Beispiel Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw. oder eine Kombination aus Hardware- und Software-Logik handelt, die für den Prozessor zugänglich und so konfiguriert ist, dass sie den Prozessor veranlasst, bei der Ausführung durch den Prozessor eine bestimmte Funktionalität durchzuführen. Die Software-Logik kann auf einem lokalen und/oder entfernt angeordneten Speicher eines beliebigen Speichertyps gespeichert sein, wie nach dem Stand der Technik bekannt ist. Es kann jeder nach dem Stand der Technik bekannte Prozessor verwendet werden, wie zum Beispiel ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie eine ASIC, eine FPGA, eine zentrale Verarbeitungseinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es wird einleuchten, dass die verschiedenen Merkmale der vorstehenden Systeme und/oder Methodologien auf jede beliebige Weise kombiniert werden können, woraus sich eine Mehrzahl von Kombinationen aus den oben dargelegten Beschreibungen ergibt.
  • Man wird darüber hinaus verstehen, dass Ausführungsformen der vorliegenden Erfindung in der Form eines Dienstes bereitgestellt werden können, der im Namen eines Kunden eingesetzt wird, um Dienste auf Abruf (service on demand) anzubieten.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung aufgeführt, sollen jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die offenbarten Ausführungsformen. Für Fachleute werden viele Abänderungen und Abwandlungen ersichtlich sein, ohne von dem Umfang und dem Sinngehalt der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt vorgefundenen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.

Claims (25)

  1. Speichersystem zum Speichern von Daten als Reaktion auf von einem Host empfangene Befehle, das Speichersystem aufweisend: eine Speichersteuerschaltung zum Empfangen von Befehlen von dem Host und zum Ausgeben von Modulbefehls- und -steuersignalen; mindestens eine Speichereinheit, die zum Speichern von Daten und zum Empfangen von Befehlssignalen von der Speichersteuerschaltung konfiguriert ist; mindestens eine Datenpufferschaltung, die der mindestens einen Speichereinheit zugehörig ist; eine Datenübertragungsverbindung zum Übertragen von Daten zwischen dem Host und der mindestens einen Datenpufferschaltung; und eine Steuerungsdatenübertragungsverbindung zwischen der Speichersteuerschaltung und der mindestens einen Datenpufferschaltung, wobei die Speichersteuerschaltung konfiguriert ist zum: Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung als Reaktion auf ein Empfangen eines Speicherbefehls und eines Speicherdaten-Tags von dem Host; Zuweisen des Host-Speicherdaten-Tags zu dem Speicherdaten-Tag der Speichersteuerschaltung; und Speichern der Beziehung in einer Zuordnungstabelle in der Speichersteuerschaltung.
  2. System nach Anspruch 1, wobei über die Datenübertragungsverbindung zwischen dem Host und der mindestens einen Datenpufferschaltung kein Speicherdaten-Tag, das die Position angibt, an der Daten in der mindestens einen Datenpufferschaltung gespeichert werden sollen, an die mindestens eine Datenpufferschaltung gesendet wird.
  3. System nach Anspruch 2, wobei die Speichersteuerschaltung darüber hinaus konfiguriert ist zum: Verarbeiten des Speicherbefehls in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer, als Reaktion auf ein Empfangen des Host-Speicherbefehls; und Senden des Befehls zum Schreiben in einen Puffer über die Steuerungsdatenübertragungsverbindung an die mindestens eine Datenpufferschaltung, aber kein Senden eines Tags an die Datenpufferschaltung, das die Position zum Speichern der Daten in der Datenpufferschaltung angibt.
  4. System nach Anspruch 3, wobei die Datenpufferschaltung eine Logikschaltung zum Verfolgen, wo Daten für einen Speichervorgang in der Datenpufferschaltung geschrieben werden sollen.
  5. System nach Anspruch 4, wobei die Datenpufferschaltung konfiguriert ist zum: Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung der Datenpufferschaltung, das auf eine Speicherposition innerhalb der mindestens einen Datenpufferschaltung zeigt, als Reaktion auf ein Empfangen eines Befehls zum Schreiben in einen Puffer; und Übertragen von eingehenden Speicherdaten mit Push-Operation in den Datenpuffer, auf den die lokale Adress-Ablaufsteuerung der Datenpufferschaltung zeigt.
  6. System nach Anspruch 3, wobei die Speichersteuerschaltung darüber hinaus konfiguriert ist zum Senden des Befehls zum Speichern aus einem Puffer zusammen mit dem lokalen Speicherdaten-Tag, das sie aus ihrer lokalen Adress-Ablaufsteuerung empfangen hat, über die Steuerungsdatenübertragungsverbindung an die mindestens eine Datenpufferschaltung und Senden des Speicherbefehls an die mindestens eine Speichereinheit.
  7. System nach Anspruch 6, wobei die mindestens eine Datenpufferschaltung darüber hinaus konfiguriert ist zum Veranlassen der mindestens eine Datenpufferschaltung, Speicherdaten mit Pull-Operation aus der Datenpufferposition zu extrahieren, auf die das von der Speichersteuerschaltung über die Steuerungsdatenübertragungsverbindung empfangene Speicherdaten-Tag zeigt, und Senden der Speicherdaten an die mindestens eine Speichereinheit.
  8. System nach Anspruch 1, wobei die Speichersteuerschaltung eine Logikschaltung aufweist und die Logikschaltung in der Speichersteuerschaltung zum Schreiben von Daten in einem Speichervorgang einen zustandsmaschinengesteuerten lokalen Adresszeiger aufweist, der die nächste Adress-Tag-Position der mindestens einen Datenpufferschaltung kennzeichnet, an der Daten geschrieben werden sollen, und wobei die mindestens eine Datenpufferschaltung einen zustandsmaschinengesteuerten lokalen Adresszeiger aufweist, der die nächste Adress-Tag-Position der mindestens einen Datenpufferschaltung kennzeichnet, in die Daten geschrieben werden sollen, wobei der zustandsmaschinengesteuerte lokale Adresszeiger der Speichersteuerschaltung mit dem zustandsmaschinengesteuerten lokalen Adresszeiger der mindestens einen Datenpufferschaltung synchronisiert ist.
  9. Speichersystem nach Anspruch 8, wobei sowohl die lokale Adress-Ablaufsteuerung der Speichersteuerschaltung als auch die mindestens eine lokale Adress-Ablaufsteuerung der Datenpufferschaltung dieselben Tags in derselben Folge enthalten.
  10. Speichersystem nach Anspruch 8, wobei die Speichersteuerschaltung kein Daten-Tag zum Schreiben in einen Puffer an die mindestens eine Datenpufferschaltung sendet.
  11. Speichersystem nach Anspruch 8, wobei die Datenübertragungsverbindung eine Datenübertragungsverbindung zwischen dem Host und der mindestens einen Datenpufferschaltung und zwischen der mindestens einen Datenpufferschaltung und der mindestens einen Speichereinheit umfasst, und auf der Datenübertragungsverbindung zwischen der mindestens einen Datenpufferschaltung und dem Host nur Daten und CRC übermittelt werden.
  12. Speichersystem nach Anspruch 1, darüber hinaus aufweisend mindestens ein Modul, bei dem die Speichersteuerschaltung auf einem einzelnen Chip auf dem Modul ausgebildet ist, eine Gruppe von Datenpufferschaltungen auf separaten Chips auf dem Modul ausgebildet sind, und eine Mehrzahl von Speichereinheiten als Chips ausgebildet und in Gruppen auf dem Modul organisiert sind, und wobei die Speichersteuerschaltung einen zustandsmaschinengesteuerten lokalen Adresszeiger aufweist, der die nächste Adress-Tag-Position des Datenpuffers kennzeichnet, an der Daten geschrieben werden sollen, und wobei jede der Datenpufferschaltungen einen zustandsmaschinengesteuerten lokalen Adresszeiger aufweist, der die nächste Adress-Tag-Position in dieser Datenpufferschaltung kennzeichnet, in die Daten geschrieben werden sollen, wobei der zustandsmaschinengesteuerte lokale Adresszeiger der Speicherschaltung mit dem zustandsmaschinengesteuerten lokalen Adresszeiger sämtlicher Datenpufferschaltungen synchronisiert ist.
  13. Speichersystem zum Lesen und Schreiben von Daten in eine Speichereinheit, das System aufweisend: mindestens eine Speichersteuerschaltung zum Empfangen von Befehlen von einem Host und zum Ausgeben von Befehls- und Steuersignalen, wobei die Speichersteuerschaltung eine lokale Adress-Ablaufsteuerung aufweist, die lokale Speicher-Tag-Positionen in einer Folge aufweist; mindestens eine Speichereinheit, die zum Lesen und Speichern von Daten und zum Empfangen von Befehlssignalen von der Speichersteuerschaltung konfiguriert ist; mindestens eine Datenpufferschaltung, die der mindestens einen Speichersteuerschaltung zugehörig ist, wobei die Datenpufferschaltung eine lokale Adress-Ablaufsteuerung aufweist, die lokale Speicher-Tag-Positionen in derselben Folge aufweist wie die lokale Adress-Ablaufsteuerung der mindestens einen Speichersteuerschaltung; eine Datenübertragungsverbindung zum Übertragen von Daten zwischen dem Host und der mindestens einen Datenpufferschaltung; und eine Steuerungsdatenübertragungsverbindung zwischen der mindestens einen Speichersteuerschaltung, der mindestens einen Speichereinheit und der mindestens einen Datenpufferschaltung zum Übermitteln von Lese- und Schreib-Vorgangssignalen des Speichersystems; wobei die mindestens eine Speichersteuerschaltung konfiguriert ist zum: Verarbeiten eines Speicherbefehls in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer; Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung der mindestens einen Speichersteuerschaltung beim Empfangen eines Speicherbefehls; Senden des Befehls zum Schreiben in einen Puffer an die mindestens eine Datenpufferschaltung; Senden des Speicherbefehls an die mindestens eine Speichereinheit; und Senden des Befehls zum Speichern aus einem Puffer zusammen mit dem Speicherdaten-Tag an die mindestens eine Datenpufferschaltung; und wobei die mindestens eine Datenpufferschaltung konfiguriert ist zum: Erhalten eines lokalen Speicherdaten-Tags aus einer lokalen Adress-Ablaufsteuerung der mindestens einen Datenpufferschaltung beim Empfangen des Befehls zum Schreiben in einen Puffer; Senden von eingehenden Speicherdaten in einen Datenpuffer, auf den das lokale Speicherdaten-Tag zeigt, das aus der lokalen Adress-Ablaufsteuerung der mindestens einen Datenpufferschaltung erhalten wurde; Extrahieren von Speicherdaten mit Pull-Operation aus dem lokalen Datenpuffer, auf den das von der mindestens einen Speichersteuerschaltung empfangene Speicherdaten-Tag zeigt, und Senden von Speicherdaten an die mindestens eine Speichereinheit.
  14. Verfahren zum Speichern von Daten in Speichereinheiten, das Verfahren aufweisend: Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Speichersteuerschaltung beim Empfangen eines Host-Speicherbefehls; Zuweisen eines Host-Tags zu dem lokalen Speicherdaten-Tag der Speichersteuerschaltung und Speichern der zugeordneten Tags in einer Zuordnungstabelle; Verarbeiten des Speicherbefehls in der Speichersteuerschaltung in einen Befehl zum Schreiben in einen Puffer und einen Befehl zum Speichern aus einem Puffer; Senden des Befehls zum Schreiben in einen Puffer an eine Datenpufferschaltung; Erhalten eines lokalen Speicherdaten-Tags aus einer Adress-Ablaufsteuerung in einer Datenpufferschaltung; und Übertragen von eingehenden Daten mit Push-Operation an die Position in der Datenpufferschaltung, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt.
  15. Verfahren nach Anspruch 14, wobei die Datenpufferschaltung beim Empfangen des Befehls zum Schreiben in einen Puffer eingehende Daten mit Push-Operation in den Datenpuffer überträgt.
  16. Verfahren nach Anspruch 14, wobei die Speichersteuerschaltung und die Datenpufferschaltung jeweils eine separate lokale Adress-Ablaufsteuerung pflegen, welche dieselben Tags in derselben Folge enthält.
  17. Verfahren nach Anspruch 14, wobei die Speichersteuerschaltung so konfiguriert ist, dass sie das aus der lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung empfangene Tag nicht an die Datenpufferschaltung sendet.
  18. Verfahren nach Anspruch 14, darüber hinaus aufweisend ein Senden des Speicherbefehls von der Speichersteuerschaltung an die Speichereinheiten und ein Senden von Daten von der Position, auf die das aus der lokalen Adress-Ablaufsteuerung der Datenpufferschaltung erhaltene lokale Speicherdaten-Tag zeigt, an die Speichereinheiten.
  19. Verfahren nach Anspruch 18, darüber hinaus aufweisend die folgenden Schritte: Übertragen des lokalen Speicherdaten-Tags zurück an die lokale Adress-Ablaufsteuerung der Datenpufferschaltung mit Push-Operation; Abrufen des Host-Speicherdaten-Tags aus der Zuordnungstabelle der Speichersteuerschaltung, die dem lokalen Speicherdaten-Tag der Speichersteuerschaltung zugehörig ist; Übertragen des lokalen Speicherdaten-Tags zurück an die lokale Adress-Ablaufsteuerung der Speichersteuerschaltung mit Push-Operation ; und Übertragen des Host-Speicherdaten-Tags zurück an den Host mit Push-Operation.
  20. Verfahren zum Überprüfen lokaler Adress-Ablaufsteuerungen in einem verteilten Speichersystem mit einer entfernt angeordneten Speichersteuerschaltung, das Verfahren aufweisend: Extrahieren eines als nächstes zu verwendenden Speicherdaten-Tags mit Pull-Operation aus jeder lokalen Adress-Ablaufsteuerung einer Mehrzahl von Datenpufferschaltungen; Vergleichen der aus der lokalen Adress-Ablaufsteuerung jeder Datenpufferschaltung wiederhergestellten Speicherdaten-Tags; und Ausgeben eines Wiederherstellungsbefehls, wenn irgendwelche der Tags aus den Datenpufferschaltungen unterschiedlich sind.
  21. Verfahren nach Anspruch 20, wobei der Wiederherstellungsbefehl mindestens einen Befehl aus der Gruppe aufweisen kann, die aus einem Einstellen des Aussendens jeglicher neuer Arbeitsschritte, einem Löschen sämtlicher unvollständiger Arbeitsschritte, einem Warten auf den Abschluss aller Abrufvorgänge und Kombinationen davon besteht.
  22. Verfahren nach Anspruch 20, darüber hinaus aufweisend: Zurücksetzen der lokalen Adress-Ablaufsteuerung sowohl einer Speichersteuerschaltung als auch der Datenpufferschaltungen.
  23. Verfahren zum Überprüfen lokaler Adress-Ablaufsteuerungen in einem Speichersystem mit einer entfernt angeordneten Speichersteuerschaltung, das Verfahren aufweisend: Senden des nächsten aus einer lokalen Adress-Ablaufsteuerung der Speichersteuerschaltung auszugebenden Tags an eine Datenpufferschaltung; Vergleichen des nächsten aus einer lokalen Adress-Ablaufsteuerung der Datenpufferschaltung auszugebenden Tags mit dem nächsten zu verwendenden Tag, das von der Speichersteuerschaltung gesendet wurde; und Ausgeben eines Wiederherstellungsbefehls, wenn die Tags nicht übereinstimmen.
  24. Verfahren nach Anspruch 23, wobei der Wiederherstellungsbefehl mindestens einen Befehl aus der Gruppe aufweisen kann, die aus einem Einstellen des Aussendens jeglicher neuer Arbeitsschritte, einem Löschen sämtlicher unvollständiger Arbeitsschritte, einem Warten auf den Abschluss aller Abrufvorgänge und Kombinationen davon besteht.
  25. Verfahren nach Anspruch 23, darüber hinaus aufweisend: Zurücksetzen der lokalen Adress-Ablaufsteuerung sowohl einer Speichersteuerschaltung als auch der Datenpufferschaltungen.
DE112018005427.6T 2017-11-29 2018-11-22 Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem Pending DE112018005427T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/825,882 US10489069B2 (en) 2017-11-29 2017-11-29 Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
US15/825,882 2017-11-29
PCT/IB2018/059206 WO2019106496A1 (en) 2017-11-29 2018-11-22 Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system

Publications (1)

Publication Number Publication Date
DE112018005427T5 true DE112018005427T5 (de) 2020-07-16

Family

ID=66632406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005427.6T Pending DE112018005427T5 (de) 2017-11-29 2018-11-22 Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem

Country Status (6)

Country Link
US (3) US10489069B2 (de)
JP (1) JP7036519B2 (de)
CN (1) CN111417935B (de)
DE (1) DE112018005427T5 (de)
GB (1) GB2582497B (de)
WO (1) WO2019106496A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534555B2 (en) 2017-11-29 2020-01-14 International Business Machines Corporation Host synchronized autonomous data chip address sequencer for a distributed buffer memory system
US10395698B2 (en) 2017-11-29 2019-08-27 International Business Machines Corporation Address/command chip controlled data chip address sequencing for a distributed memory buffer system
US10489069B2 (en) 2017-11-29 2019-11-26 International Business Machines Corporation Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
US10642535B2 (en) * 2018-01-23 2020-05-05 International Business Machines Corporation Register access in a distributed memory buffer system
EP3850493A4 (de) 2018-09-10 2022-06-08 GigaIO Networks, Inc. Verfahren und vorrichtung zur hochgeschwindigkeitsdatenbusverbindung und gewebemanagement
US11157439B2 (en) * 2019-07-25 2021-10-26 Western Digital Technologies, Inc. Method for delaying fundamental reset in power loss protection (PLP) enabled devices
US11403247B2 (en) 2019-09-10 2022-08-02 GigaIO Networks, Inc. Methods and apparatus for network interface fabric send/receive operations
US11593288B2 (en) * 2019-10-02 2023-02-28 GigalO Networks, Inc. Methods and apparatus for fabric interface polling
EP4049143A4 (de) 2019-10-25 2024-02-21 Gigaio Networks Inc Verfahren und vorrichtung für dma-engine-deskriptoren für hochgeschwindigkeitsdatensysteme
CN114518902A (zh) * 2020-11-20 2022-05-20 马来西亚瑞天芯私人有限公司 一种内存定序器系统和应用该系统的内存定序方法
JP2023036371A (ja) * 2021-09-02 2023-03-14 株式会社デンソー 車両用制御システム、および回路装置
US20230275597A1 (en) * 2021-11-08 2023-08-31 Ambiq Micro, Inc. Low power and wide dynamic range analog-to-digital converter

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815723A (en) 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US6104751A (en) * 1993-10-29 2000-08-15 Sgs-Thomson Microelectronics S.A. Apparatus and method for decompressing high definition pictures
US6757800B1 (en) 1995-07-31 2004-06-29 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6381659B2 (en) 1999-01-19 2002-04-30 Maxtor Corporation Method and circuit for controlling a first-in-first-out (FIFO) buffer using a bank of FIFO address registers capturing and saving beginning and ending write-pointer addresses
US6510100B2 (en) 2000-12-04 2003-01-21 International Business Machines Corporation Synchronous memory modules and memory systems with selectable clock termination
JP2005092630A (ja) * 2003-09-18 2005-04-07 Sony Corp メモリ制御装置及び制御方法
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7363427B2 (en) 2004-01-12 2008-04-22 Hewlett-Packard Development Company, L.P. Memory controller connection to RAM using buffer interface
US8180931B2 (en) 2004-01-20 2012-05-15 Super Talent Electronics, Inc. USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch
GB0404696D0 (en) 2004-03-02 2004-04-07 Level 5 Networks Ltd Dual driver interface
US7774512B2 (en) 2005-02-08 2010-08-10 Sony Computer Entertainment Inc. Methods and apparatus for hybrid DMA queue and DMA table
US7373471B2 (en) 2005-02-09 2008-05-13 International Business Machines Corporation Executing background writes to idle DIMMs
KR100588599B1 (ko) * 2005-05-03 2006-06-14 삼성전자주식회사 메모리 모듈 및 메모리 시스템
US20070180186A1 (en) 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US7984359B2 (en) 2006-05-01 2011-07-19 Seagate Technology, Llc Correction of data errors in a memory buffer
US7984329B2 (en) 2007-09-04 2011-07-19 International Business Machines Corporation System and method for providing DRAM device-level repair via address remappings external to the device
EP2313891B1 (de) 2008-08-08 2016-04-27 Hewlett-Packard Development Company, L.P. Unabhängig gesteuerte virtuelle speichereinrichtungen in speichermodulen
WO2011044154A1 (en) * 2009-10-05 2011-04-14 Marvell Semiconductor, Inc. Data caching in non-volatile memory
FR2951290B1 (fr) 2009-10-08 2011-12-09 Commissariat Energie Atomique Controleur d'acces direct en memoire a sources multiples, procede et programme d'ordinateur correspondants
JP5605959B2 (ja) 2009-11-10 2014-10-15 フリースケール セミコンダクター インコーポレイテッド プロトコル事象を記録するためのアドバンスド通信制御ユニットおよび方法
US8510100B2 (en) 2010-05-20 2013-08-13 Xerox Corporation Human readable sentences to represent complex color changes
US9201817B2 (en) * 2011-08-03 2015-12-01 Montage Technology (Shanghai) Co., Ltd. Method for allocating addresses to data buffers in distributed buffer chipset
CN102609378B (zh) 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US9679104B2 (en) 2013-01-17 2017-06-13 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
US9430418B2 (en) 2013-03-15 2016-08-30 International Business Machines Corporation Synchronization and order detection in a memory system
US9146864B2 (en) * 2013-03-15 2015-09-29 International Business Machines Corporation Address mapping including generic bits for universal addressing independent of memory type
CN103246625B (zh) 2013-05-24 2016-03-30 北京大学 一种数据与地址共用引脚自适应调整访存粒度的方法
US9600232B2 (en) * 2013-12-11 2017-03-21 International Business Machines Corporation Aligning FIFO pointers in a data communications lane of a serial link
US10223299B2 (en) 2013-12-18 2019-03-05 Rambus Inc. High capacity memory system with improved command-address and chip-select signaling mode
US9887008B2 (en) 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
US20150261446A1 (en) 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller
US9792965B2 (en) 2014-06-17 2017-10-17 Rambus Inc. Memory module and system supporting parallel and serial access modes
US9348518B2 (en) 2014-07-02 2016-05-24 International Business Machines Corporation Buffered automated flash controller connected directly to processor memory bus
US20160092361A1 (en) 2014-09-26 2016-03-31 Intel Corporation Caching technologies employing data compression
CN105868125B (zh) 2015-01-23 2018-10-19 澜起科技(上海)有限公司 缓冲存储器及用于控制内部存储器数据访问的装置和方法
US10025747B2 (en) 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US10031677B1 (en) 2015-10-14 2018-07-24 Rambus Inc. High-throughput low-latency hybrid memory module
CN105553636B (zh) 2015-12-11 2018-07-03 中国航空工业集团公司西安航空计算技术研究所 一种余度模式fc发送通道帧同步电路及方法
CN106940683B (zh) 2016-01-04 2018-12-28 综合器件技术公司 用于上电时的单端存储器信号均衡的方法和装置
US20180181504A1 (en) 2016-12-23 2018-06-28 Intel Corporation Apparatuses and methods for training one or more signal timing relations of a memory interface
US10747442B2 (en) 2017-11-29 2020-08-18 International Business Machines Corporation Host controlled data chip address sequencing for a distributed memory buffer system
US10489069B2 (en) 2017-11-29 2019-11-26 International Business Machines Corporation Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
US10395698B2 (en) 2017-11-29 2019-08-27 International Business Machines Corporation Address/command chip controlled data chip address sequencing for a distributed memory buffer system
US10534555B2 (en) 2017-11-29 2020-01-14 International Business Machines Corporation Host synchronized autonomous data chip address sequencer for a distributed buffer memory system

Also Published As

Publication number Publication date
GB2582497B (en) 2022-07-06
GB202008475D0 (en) 2020-07-22
CN111417935B (zh) 2023-11-21
US10489069B2 (en) 2019-11-26
US20210191630A1 (en) 2021-06-24
JP2021504842A (ja) 2021-02-15
US20190163378A1 (en) 2019-05-30
WO2019106496A1 (en) 2019-06-06
JP7036519B2 (ja) 2022-03-15
CN111417935A (zh) 2020-07-14
US20200042205A1 (en) 2020-02-06
GB2582497A (en) 2020-09-23
US10976939B2 (en) 2021-04-13
US11379123B2 (en) 2022-07-05

Similar Documents

Publication Publication Date Title
DE112018005427T5 (de) Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem
DE112011103916B4 (de) Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE2856483C2 (de)
DE19983745B3 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE102008008196A1 (de) Speicherkarte, Speichersystem und Verfahren zum Betreiben eines Speichersystems
DE112019000211T5 (de) Effizientes und selektives ersatzweises Speichern von Bits in Arbeitsspeichersystemen
DE102018119881A1 (de) Verwaltung einer DRAM-Bankaktivierung
DE3236302A1 (de) Speicherprogrammierbare steuerung
DE112018005507T5 (de) Mehrkriterien-energiemanagementschema für gepoolte beschleunigerarchitekturen
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE112012005572B4 (de) Ausgleichen der Bandbreite von Anforderern, die ein gemeinsam genutztes Speichersystem verwenden
DE112012004796T5 (de) Periodische Auslagerung von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE102013210719A1 (de) Verfahren und Systeme zum Verwalten von Cache-Speichern
DE3911721C2 (de)
DE102020108530A1 (de) Leistungsfähige inline-ecc-architektur für eine dram-steuerung
DE60015720T2 (de) Verfahren und Anordnung zum Arbitrieren des Zugriffes eines Zeitmutiplex-verteilten Speichers von mehreren Prozessoren in einem Echtzeitsystem
DE102019120264A1 (de) System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle
DE102012202174A1 (de) Mikrocomputer
EP0350016B1 (de) Verfahren und Einrichtung zum Duplizieren des Inhalts von Datenträgern
DE112013004110T5 (de) Cache-speichersteuerung und cache-speichersteuerverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence