DE112014002403B4 - Hochleistungs-Lese-Modifizier-Schreib-System mit Zeilenratenzusammenführung von Datenrahmensegmenten in Hardware - Google Patents

Hochleistungs-Lese-Modifizier-Schreib-System mit Zeilenratenzusammenführung von Datenrahmensegmenten in Hardware Download PDF

Info

Publication number
DE112014002403B4
DE112014002403B4 DE112014002403.1T DE112014002403T DE112014002403B4 DE 112014002403 B4 DE112014002403 B4 DE 112014002403B4 DE 112014002403 T DE112014002403 T DE 112014002403T DE 112014002403 B4 DE112014002403 B4 DE 112014002403B4
Authority
DE
Germany
Prior art keywords
data frame
sectors
data
merged
sector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112014002403.1T
Other languages
English (en)
Other versions
DE112014002403T5 (de
Inventor
Jack W. Flinsbaugh
Rodney M. Mullendore
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE112014002403T5 publication Critical patent/DE112014002403T5/de
Application granted granted Critical
Publication of DE112014002403B4 publication Critical patent/DE112014002403B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1085RMW, i.e. Read-Modify-Write method for RAID systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/555Error detection

Abstract

Verfahren zum Zusammenführen von Datenrahmen, wobei das Verfahren umfasst:Empfangen eines ersten Datenrahmens, der eine Mehrzahl von Sektoren umfasst;Empfangen eines zweiten Datenrahmens, der eine Mehrzahl von Sektoren umfasst;Generieren eines zusammengeführten Ausgabedatenrahmens durch Zusammenführen von Sektoren des zweiten Datenrahmens mit Sektoren des ersten Datenrahmens unter Verwendung einer Mehrzahl von Datenpfaden, die eine Mehrzahl von Multiplexern umfassen; undDurchführen einer Fehlerprüfung an mindestens einem Prüfungsdatenrahmen, der Sektoren umfasst, die denjenigen des ersten Datenrahmens und des zweiten Datenrahmens entsprechen,wobei zumindest einige dieser Sektoren in dem Prüfungsdatenrahmen auf einer Teilmenge aus der Mehrzahl von Datenpfaden übertragen werden, die Sektoren des zusammengeführten Ausgabedatenrahmens überträgt, undwobei die Fehlerprüfung den zusammengeführten Ausgabedatenrahmen verifiziert.

Description

  • HINTERGRUND
  • Gegenstand der Erfindung
  • Diese Offenbarung bezieht sich auf Datenspeichersysteme für Computersysteme. Insbesondere bezieht sich die Offenbarung auf die Gewährleistung dessen, dass keine unerkennbaren Datenfehler während eines Datenmodifikationsprozesses eingeführt werden.
  • Verwandte Technik
  • Datenspeichersysteme stellen eine Speicherung für Daten eines Host-Systems bereit. Während sich die Solid-State-Speicherkapazität erhöht, verringern sich die Halbleitervorrichtungsmerkmale. Kleinere Vorrichtungen sind anfälliger für „Soft“-Errors, die beispielsweise durch Alphateilchen verursacht werden. Auch wenn diese Soft-Errors keine dauerhaften Schäden an der Vorrichtung verursachen, beschädigen sie auf der Vorrichtung gespeicherte Daten wie beispielsweise Verzeichnisse und Datenspeicher. Die Fehlerprüfungscodes wie beispielsweise Cyclic Redundancy Codes (CRC) werden verwendet, um zu bestimmen, ob bei Daten, für die der CRC berechnet wurde, ein Datenfehler aufgetreten ist.
  • Ein Aspekt der vorliegenden Erfindung mag somit darin gesehen werden, eine Beschädigung von auf der Vorrichtung gespeicherten Daten zu vermeiden indem zumindest bestimmt wird, ob bei Daten, für die der CRC berechnet wurde, ein Datenfehler aufgetreten ist.
  • US 6,944,168 B2 beschreibt ein System und Verfahren zur Erleichterung der Pakettransformation von Multi-Protokoll-, Multi-Flow- und Streaming-Daten. Paketteile, die Änderungen unterliegen, werden zwischengespeichert und durch die Verarbeitung protokollabhängiger Anweisungen umgesetzt, was zu einer protokollabhängigen Änderung der zwischengespeicherten Paketinformationen führt. Gültigkeits-Tags sind mit verschiedenen Segmenten des temporär gespeicherten Pakets verbunden, wobei der Zustand jedes Tags bestimmt, ob das entsprechende Paketsegment Teil des resultierenden modifizierten Pakets ist. Nur die Paketsegmente, die als Teil des resultierenden modifizierten Pakets identifiziert wurden, werden vor dem Versand des Pakets wieder zusammengesetzt.
  • US 7,203,890 B1 beschreibt ein Speichersystem zur Datenfehlererkennung und -korrektur sowie Adressfehlererkennung. Ein Einzelbyte-Fehlerkorrektur-/Doppelbyte-Fehlererkennungscode (SbEC/ DbED), bei dem das Byte ein 4-Bit-Nibble ist, wird zur Erkennung von bis zu 8-Bit-Fehlern und zur Korrektur von Datenfehlern von 4 Bit oder weniger verwendet. Anstatt Adressparität zu erzeugen, erzeugt ein CRC-Code (Cyclical Redundancy Check) Adressprüfbits. Eine 32-Bit-Adresse wird mit Hilfe des CRC-Codes auf nur 4 Adressprüfbits komprimiert. Die 4 Adressprüfbits werden mit zwei 4-Bit-Nibbles des SbEC/DbED-Datencodes gemischt (mittels XOR), um ein gemischtes ECC-Codewort zu erzeugen, das im Speicher gespeichert wird. Ein Adressfehler verursacht eine Fehlanpassung von 2 Nibbles aufgrund der redundanten Verschmelzung der 4 Adressprüfbits mit 2 Nibbles des Datenkorrekturcodes.
  • Figurenliste
  • Aspekte und Merkmale des vorliegenden Erfindungskonzepts werden durch die Beschreibung beispielhafter Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen deutlicher, wobei:
    • 1A und 1B Blockdiagramme sind, die ein Lese-Modifizier-Schreib-System gemäß den beispielhaften Ausführungsformen des vorliegenden Erfindungskonzepts darstellen;
    • 2 eine schematische Darstellung ist, die Einzelheiten des Lese-Modifizier-Schreib-Systems gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts zeigt;
    • 3 ein Diagramm ist, das ein Verfahren des Zusammenführens eines ersten Datenrahmens und eines zweiten Datenrahmens unter Verwendung einer Zusammenführungsmaske gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt;
    • 4 ein Flussdiagramm ist, das ein Verfahren zum Generieren eines zusammengeführten Ausgabedatenrahmens gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt;
    • 5 ein Flussdiagramm ist, das ein Verfahren zum Generieren eines zusammengeführten Ausgabedatenrahmens auf Grundlage einer Zusammenführungsmaske gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt;
    • 6 ein Flussdiagramm ist, das Lese-Modifizier-Schreib-Vorgänge gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt; und
    • 7 ein Flussdiagramm ist, das Zusammenführungsvorgänge gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Entsprechend dem oben angeführten Aspekt der vorliegenden Erfindung werden Verfahren und Vorrichtungen zum Zusammenführen von Datenrahmen gemäß den unabhängigen Ansprüchen bereitgestellt. Bevorzugte Ausgestaltungen ergeben sich aus den abhängigen Ansprüchen. Auch wenn bestimmte Ausführungsformen beschrieben sind, sind diese Ausführungsformen ausschließlich als Beispiele angeführt und dienen nicht der Einschränkung des Umfangs des Schutzbereichs. Die in dieser Schrift beschriebenen Verfahren und Systeme können in einer Vielzahl anderer Formen ausgeführt sein. Ferner können diverse Auslassungen, Ersetzungen und Veränderungen an der Form der in dieser Schrift beschriebenen beispielhaften Verfahren und Systemen vorgenommen werden, ohne von dem Umfang des Schutzbereichs abzuweichen.
  • Zusammenfassung
  • Solid-State-Laufwerke (SSDs nach engl. „solid state drives“) werden als Datenspeichersysteme für Computersysteme eingesetzt. Um Daten, die an einem Speicherplatz eines Datenspeichersystems gespeichert sind, zu modifizieren, kann ein Lese-Modifizier-Schreib-Vorgang eingesetzt werden, um einen Speicherplatz zu lesen und einen neuen Wert hineinzuschreiben. Während die Speicherkapazität der SSDs zunimmt, verringern sich die Kenngrößen der Halbleitervorrichtungen, die die SSDS bilden. Infolge der geringeren Vorrichtungskenngrößen sind die SSDs verstärkt anfällig für Soft-Errors, die Daten während Lese-Modifizier-Schreib-Vorgängen beschädigen können.
  • Überblick über das System
  • Einige Ausführungsformen des vorliegenden Erfindungskonzepts sind auf ein Lese-Modifizier-Schreib-System und ein Verfahren gerichtet, das gewährleistet, dass während eines Datenmodifikationsprozesses keine nicht erkennbaren Datenfehler eingeführt werden.
  • In einer beispielhaften Ausführungsform empfängt das Lese-Modifizier-Empfangssystem (RMW nach engl. Read-Modify-Write System) L-Seiten-Rahmen (d.h. logische Seitendatenrahmen mit einer Mehrzahl von Sektoren) über zwei Kanäle. Das RMW-System läuft auf den empfangenen Rahmen auf Grundlage ihrer Typen ab, wie durch eine Zusammenführungsmaske bestimmt, indem eine Hardware-Optimierung auf das angewendet wird, was zuvor Software-Prozesse waren. Das RMW-System kann Datenrahmensektoren spontan über Rahmen hinweg zusammenführen und führt die angemessenen Bit-Modifikationen auf Grundlage der Zusammenführungsmaske durch. Das RMW-System kann die Firmware-Zyklen minimieren, die zum Durchführen von Lese-Modifizier-Schreibvorgängen erforderlich sind.
  • 1A ist ein Blockdiagramm, das ein RMW-System gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt. Wie ferner in 1A dargestellt, umfasst das Lese-Modifizier-Schreib-System 100 eine Schaltung einschließlich eines Speichers 110, einer Eingabelogik 120, einer Mehrzahl von Multiplexern 130, einer ersten Logikvorrichtung 140 und einer zweiten Logikvorrichtung 150. Das RMW-System 100 ist mit einer Systemuhr 160 synchronisiert und kann mit der Geschwindigkeit der Systemuhr skalierbar sein. In einer Ausführungsform bietet 1A eine hardwarebasierte Vorgehensweise, die eine wesentliche Geschwindigkeitsverbesserung bei der Behandlung von Lese-Modifizier-Speicher-Vorgängen bereitstellt, die bei der Erfüllung hoher Durchsatzanforderungen bei vielen Datenspeichervorrichtungen heutzutage hilft. Wie in 1B dargestellt, kann das Lese-Modifizier-Schreib-System gemäß einer beispielhaften Ausführungsform ferner einen Prozessor 170 enthalten, der zumindest einige Vorgänge des RMW-Systems steuert. In einer beispielhaften Ausführungsform steuert die auf dem Prozess 170 ausgeführte Firmware zumindest einen Teil der in dieser Schrift beschriebenen Logikprüfung.
  • Lese-Modifizier-Schreib-Befehl
  • Während des Betriebs empfängt der Speicher 110 in einer beispielhaften Ausführungsform einen ersten Datenrahmen mit einer Mehrzahl von Sektoren und speichert den ersten Datenrahmen in dem Speicher 110, bis ein zweiter Datenrahmen mit einer Mehrzahl von Sektoren an einem Datenport 122 empfangen wird. Der zweite Datenrahmen wird Sektor für Sektor etwa bei der Geschwindigkeit der Systemuhr durch das RMW-System 100 durchgegeben und mit dem ersten Datenrahmen zusammengeführt, der von dem Speicher 110 gelesen wird. Der erste und der zweite Datenrahmen werden von der ersten Logikvorrichtung 140 verarbeitet, um zu bestimmen, ob der zusammengeführte Ausgabedatenrahmen gültig ist.
  • 2 ist eine schematische Darstellung, die Einzelheiten des Lese-Modifizier-Schreib-Systems gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts zeigt. Unter Bezugnahme auf 2 empfängt die Eingabelogik 120 den ersten und den zweiten Datenrahmen und verifiziert die in den Köpfen jedes Datenrahmens enthaltenen CRCs. Es ist zu beachten, dass, obwohl CRCs in den beispielhaften Ausführungsformen erwähnt werden, in dieser Offenbarung in einigen Ausführungsformen die Verwendung anderer Fehlererkennungsmechanismen wie beispielsweise, jedoch nicht ausschließlich Prüfsummen und Hashfunktionen möglich sind. Der erste und der zweite Datenrahmen werden Sektor für Sektor von der Eingabelogik 120 in Gleichlauf mit der Systemuhr 160 an die Multiplexer 130 übergeben, wo die Sektoren des ersten und des zweiten Datenrahmens bei etwa derselben Geschwindigkeit wie der Geschwindigkeit der Systemuhr auf Grundlage einer Zusammenführungsmaske zusammengeführt werden.
  • 3 ist ein Diagramm, das das Zusammenführen eines ersten Datenrahmens und eines zweiten Datenrahmens unter Verwendung einer Zusammenführungsmaske gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt. In der beispielhaften Darstellung aus 3 zeigt die Zusammenführungsmaske einen Sektor, der in dem Ausgabedatenrahmen zusammengeführt werden soll, mit einer „1“ und einen Sektor, der verworfen werden soll, mit einer „0“ in Bezug auf einen zweiten Datenrahmen an und sie zeigt einen Sektor, der in dem Ausgabedatenrahmen zusammengeführt werden soll, mit einer „0“ und einen Sektor, der verworfen werden soll, mit einer „1“ in Bezug auf den ersten Datenrahmen an. Ein gewöhnlicher Fachmann versteht, dass die Kennzeichnungen „1“ und „0“ rein beispielhaft sind und dass andere Kennzeichnungen möglich sind, ohne von dem Umfang des Erfindungskonzepts abzuweichen.
  • Unter Bezugnahme auf 3 legt eine Zusammenführungsmaske 370 Sektoren des zweiten Datenrahmens 340 fest, die mit den Sektoren des ersten Datenrahmens 310 anstelle von Sektoren des ersten Datenrahmens 310 zusammengeführt werden, die verworfen werden (als zu verwerfende Sektoren 320 dargestellt). Sektoren des zweiten Datenrahmens 340, für die nicht festgelegt wurde, dass sie in dem Ausgabedatenrahmen durch die Zusammenführungsmaske 370 zusammengeführt werden, werden verworfen (als zu verwerfende Sektoren 350 dargestellt), während Sektoren des zweiten Datenrahmens 340, für die festgelegt wurde, dass sie in dem Ausgabedatenrahmen durch die Zusammenführungsmaske 370 zusammengeführt werden (als zusammenzuführende Sektoren 360 dargestellt), mit dem ersten Datenrahmen 310 zusammengeführt werden, um einen zusammengeführten Ausgabedatenrahmen 380 zu generieren. Umgekehrt werden Sektoren des ersten Datenrahmens 310, für die nicht festgelegt wurde, dass sie in dem Ausgabedatenrahmen durch die Zusammenführungsmaske 370 zusammengeführt werden, verworfen (als zu verwerfende Sektoren 320 dargestellt), während Sektoren des ersten Datenrahmens 310, für die festgelegt wurde, dass sie in dem Ausgabedatenrahmen (als zusammenzuführende Sektoren 330 dargestellt) durch die Zusammenführungsmaske 370 zusammengeführt werden, mit den zusammenzuführenden Sektoren 360 des zweiten Datenrahmens 340 zusammengeführt werden, um den zusammengeführten Ausgabedatenrahmen 380 zu generieren. Mit anderen Worten werden die Sektoren des ersten Datenrahmens, die von der Zusammenführungsmaske festgelegt werden, durch entsprechende Sektoren des zweiten Datenrahmens ersetzt, um den zusammengeführten Ausgabedatenrahmen zu generieren, und die ungenutzten Sektoren des ersten und des zweiten Datenrahmens werden verworfen.
  • Auch wenn die oben genannten Zusammenführungsvorgänge hinsichtlich festgelegter Sektoren des zweiten Datenrahmens beschrieben sind, die mit Sektoren des ersten Rahmens zusammengeführt werden können, versteht ein durchschnittlicher Fachmann, dass der Umfang des vorliegenden Erfindungskonzepts ebenfalls das Zusammenführen festgelegter Sektoren des ersten Datenrahmens mit Sektoren des zweiten Datenrahmens umfasst. Ferner muss die Anzahl der Sektoren in der Mehrzahl von Sektoren des ersten Datenrahmens und des zweiten Datenrahmens nicht identisch sein, auch wenn dies in 3 so dargestellt ist.
  • Unter erneuter Bezugnahme auf 2 wird in einer beispielhaften Ausführungsform jeder Sektor des zweiten Datenrahmens Sektor für Sektor im Gleichlauf mit der Systemuhr an einen ersten Multiplexer 5 übertragen. In einer beispielhaften Ausführungsform überträgt der erste Multiplexer 5 jeden Sektor des zweiten Datenrahmens an einen zweiten Multiplexer 6 und einen Zusammenführungsmultiplexer 8. Gleichzeitig wird der dritte Datenrahmen an einen dritten Multiplexer 4 übertragen. In einer beispielhaften Ausführungsform überträgt der dritte Multiplexer 4 jeden Sektor des ersten Datenrahmens an einen vierten Multiplexer 15 und einen Zusammenführungsmultiplexer 8. Der Zusammenführungsmultiplexer 8 wird durch die Zusammenführungsmaske gesteuert, um einen Sektor aus dem ersten oder zweiten Datenrahmen auszuwählen, der in dem Ausgabedatenrahmen zusammengeführt werden soll.
  • In einer beispielhaften Ausführungsform wird der Sektor des ersten oder zweiten Datenrahmens, der durch die Zusammenführungsmaske zum Zusammenführen ausgewählt ist, durch den Zusammenführungsmultiplexer 8 als ein Sektor des zusammengeführten Ausgabedatenrahmens ausgegeben und ferner von der Ausgabe des Zusammenführungsmultiplexers 8 an die zweiten Logikvorrichtung 150 übertragen. Die zweite Logikvorrichtung 150 berechnet und akkumuliert einen CRC für den zusammengeführten Ausgabedatenrahmen. Jeder Sektor des zusammengeführten Ausgabedatenrahmens wird von dem RMW-System 100 Sektor für Sektor durch einen Ausgabemultiplexer 17 ausgegeben. Das Generieren des zusammengeführten Ausgabedatenrahmens wird mit etwa derselben Geschwindigkeit wie der Geschwindigkeit der Systemuhr durchgeführt.
  • In einer beispielhaften Ausführungsform wählen der zweite Multiplexer 6 und der vierte Multiplexer 15 entweder den Sektor aus, der in dem Ausgabedatenrahmen zusammengeführt wurde, oder den Sektor, der verworfen wird, und übertragen den ausgewählten oder verworfenen Sektor an die erste Logikvorrichtung 140. Zum Beispiel wird, wenn die Zusammenführungsmaske verursacht, dass der Zusammenführungsmultiplexer 8 einen Sektor aus dem ersten Datenrahmen auswählt, der entsprechende Sektor aus dem zweiten Datenrahmen verworfen. Der Zusammenführungsmultiplexer 8 überträgt den ausgewählten Sektor von dem ersten Datenrahmen an den Ausgabemultiplexer 17 und der Ausgabemultiplexer 17 gibt den ausgewählten Sektor aus dem ersten Datenrahmen als einen Sektor des zusammengeführten Ausgabedatenrahmens aus und überträgt ferner den ausgewählten Sektor von dem ersten Datenrahmen an den vierten Multiplexer 15. Der vierte Multiplexer 15 wählt den ausgewählten Sektor aus dem ersten Datenrahmen aus und überträgt ihn an die erste Logikvorrichtung 140. Gleichzeitig wird der verworfene Sektor des zweiten Datenrahmens von dem zweiten Multiplexer 6 an die erste Logikvorrichtung 140 übertragen.
  • In einer beispielhaften Ausführungsform rekonstruiert die erste Logikvorrichtung 140 den ersten und den zweiten Datenrahmen jeweils als ersten und zweiten Datenrahmen und die CRCs der Prüfungsdatenrahmen werden durch die erste Logikvorrichtung 140 Sektor für Sektor berechnet und akkumuliert. Der erste Prüfungsdatenrahmen kann Sektoren enthalten, die auf einer ersten Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge von Datenpfaden unterscheidet, auf denen die Sektoren des ersten Datenrahmens übertragen werden, welche in dem Ausgabedatenrahmen zusammengeführt wurden, und der zweite Prüfungsdatenrahmen kann Sektoren enthalten, die auf einer zweiten Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge von Datenpfaden unterscheidet, auf denen die Sektoren des zweiten Datenrahmens übertragen werden, welche in dem Ausgabedatenrahmen zusammengeführt wurden.
  • Nach dem Verarbeiten des letzten Sektors des ersten und zweiten Datenrahmens wird der CRC des ersten Datenrahmens über den dritten Multiplexer 4 und den vierten Multiplexer 15 an die Logikvorrichtung 140 übertragen. Gleichzeitig wird der CRC des zweiten Datenrahmens über den ersten Multiplexer 5 und den zweiten Multiplexer 6 an die erste Logikvorrichtung 140 übertragen.
  • In einer beispielhaften Ausführungsform führt die erste Logikvorrichtung 140 eine Fehlerprüfung durch Vergleichen des übertragenen CRC des ersten Datenrahmens mit dem CRC durch, der für den ersten Prüfungsdatenrahmen berechnet wurde, und vergleicht den übertragenen CRC des zweiten Datenrahmens mit dem CRC, der für den zweiten Prüfungsdatenrahmen berechnet wurde. Falls die CRCs des empfangenen Datenrahmens mit den CRCs der Prüfungsdatenrahmen übereinstimmen, ist der zusammengeführte Ausgabedatenrahmen gültig, da die Sektoren des zusammengeführten Ausgabedatenrahmens dieselbe Logik wie die Sektoren der Prüfungsdatenrahmen durchlaufen haben, und keine Fehler eingeführt wurden. Falls die CRCs nicht übereinstimmen, wird eine Benachrichtigung erzeugt, die anzeigt, dass der zusammengeführte Ausgabedatenrahmen ungültig ist. Die Gültigkeit kann auf diese Weise verifiziert werden, da zumindest Einige der Sektoren des Prüfungsdatenrahmens auf einer Teilmenge der Mehrzahl von Datenpfaden übertragen werden, die ferner Sektoren des zusammengeführten Ausgabedatenrahmens übertragen, sodass die Fehlerprüfung des mindestens einen Prüfungsdatenrahmens den zusammengeführten Ausgabedatenrahmen verifiziert. Die Verwendung der Ausgabedaten von dem tatsächlichen zusammengeführten Datenrahmen als Teil der Berechnung des CRCs des Prüfungsdatenrahmens gewährleistet, dass ein beliebiger Fehler, der entlang des Pfades des Rahmenzusammenführungsmechanismus eingeführt wird, erkannt wird.
  • Gleichzeitig mit dem Generieren des zusammengeführten Ausgabedatenrahmens generiert die zweite Logikvorrichtung 150 Sektor für Sektor einen CRC für den zusammengeführten Ausgabedatenrahmen. Nachdem der finale Sektor des zusammengeführten Ausgabedatenrahmens ausgegeben ist, wird der CRC für den zusammengeführten Ausgabedatenrahmen, der von der zweiten Logikvorrichtung 150 generiert wird, ausgewählt und von dem Ausgabemultiplexer 17 ausgegeben.
  • 4 ist ein Flussdiagramm, das ein Verfahren zum Generieren eines zusammengeführten Ausgabedatenrahmens gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt. Unter Bezugnahme auf 4 wird ein erster Datenrahmen, der eine Mehrzahl von Sektoren umfasst, von dem RMW-System empfangen (410). Der erste Datenrahmen kann in einem Datenspeicher wie beispielsweise einem flüchtigen oder nichtflüchtigen Speicher gespeichert sein. Ein zweiter Datenrahmen, der eine Mehrzahl von Sektoren umfasst, wird von dem RMW-System empfangen (420). Der zweite Datenrahmen kann beispielsweise neue, in den Datenspeicher zu schreibende Daten von einem Host-System enthalten. Die Sektoren des ersten und des zweiten Datenrahmens werden mittels einer Mehrzahl von Datenpfaden und Multiplexern zusammengeführt, um einen zusammengeführten Ausgabedatenrahmen zu generieren (430). Darüber hinaus wird ein CRC für den zusammengeführte Ausgabedatenrahmen Sektor für Sektor durch Berechnen und Akkumulieren von CRC-Daten des ersten und des zweiten Datenrahmens generiert (440), die zusammengeführt sind, um den zusammengeführten Ausgabedatenrahmen zu generieren.
  • Die Sektoren von mindestens einem aus dem ersten und dem zweiten Datenrahmen werden in einen Prüfungsdatenrahmen rekonstruiert, während der zusammengeführte Ausgaberahmen generiert wird (450). Alternativ kann sowohl der erste als auch der zweite Datenrahmen in Prüfungsdatenrahmen rekonstruiert werden, während der zusammengeführte Ausgaberahmen generiert wird. Es wird ein CRC Sektor für Sektor für den Prüfungsdatenrahmen berechnet und akkumuliert und es wird eine Fehlerprüfung an mindestens einem Prüfungsdatenrahmen durchgeführt, der Sektoren umfasst, die denjenigen des ersten Datenrahmens oder des zweiten Datenrahmens entsprechen, um die entsprechenden Sektoren des zusammengeführten Ausgabedatenrahmens zu verifizieren (460). Da zumindest Einige der Sektoren des Prüfungsdatenrahmens auf einer Teilmenge der Mehrzahl von Datenpfaden übertragen werden, welche Sektoren des zusammengeführten Ausgabedatenrahmens übertragen, verifiziert die Fehlerprüfung des mindestens einen Prüfungsdatenrahmens die Sektoren von dem mindestens einen Prüfungsdatenrahmen in dem zusammengeführten Ausgabedatenrahmen. In einer beispielhaften Ausführungsform verifiziert die Fehlerprüfung beider Prüfungsdatenrahmen die Sektoren des ersten und des zweiten Prüfungsdatenrahmens in dem zusammengeführten Ausgabedatenrahmen.
  • 5 ist ein Flussdiagramm, das ein Verfahren zum Generieren eines zusammengeführten Ausgabedatenrahmens auf Grundlage einer Zusammenführungsmaske gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt. Unter Bezugnahme auf 5 wird ein erster Datenrahmen, der eine Mehrzahl von Sektoren umfasst, von dem RMW-System empfangen (510). Der erste Datenrahmen kann in einem Datenspeicher wie beispielsweise einem flüchtigen oder nichtflüchtigen Speicher gespeichert sein. Ein zweiter Datenrahmen, der eine Mehrzahl von Sektoren umfasst, wird von dem RMW-System empfangen (520).
  • Es wird eine Zusammenführungsmaske, die die Sektoren des ersten und des zweiten zusammenzuführenden Datenrahmens, festlegt, empfangen (530). Die Zusammenführungsmaske legt fest, welche Sektoren des ersten und des zweiten Datenrahmens jeden Sektor des Ausgabedatenrahmens besetzen. Die Zusammenführungsmaske kann als Teil des ersten empfangenen Datenrahmens oder als Teil des zweiten empfangenen Datenrahmens empfangen werden. Alternativ kann die Zusammenführungsmaske unabhängig von den empfangenen Datenrahmen empfangen werden. Es wird durch Zusammenführen ausgewählter Sektoren aus dem ersten und dem zweiten Datenrahmen auf Grundlage der Zusammenführungsmaske eine zusammengeführte Ausgabemaske generiert (540).
  • 6 ist ein Flussdiagramm, das Lese-Modifizier-Schreib-Vorgänge gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt. Unter Bezugnahme auf 6 wird ein zu modifizierender Lesedatenrahmen von einem außerhalb des RMW-Systems befindlichen Speicher eingegeben und in einem internen Speicher gespeichert (605), bis ein Schreibdatenrahmen, der Sektoren für das Modifizieren des Lesedatenrahmens enthält, empfangen wird (610). Sowohl der Lesedatenspeicher als auch der Schreibdatenspeicher weist eine Mehrzahl von Sektoren auf. Die Anzahl der Sektoren in der Mehrzahl von Sektoren des Lesedatenrahmens und des Schreibdatenrahmens muss nicht identisch sein.
  • Es wird eine Zusammenführungsmaske empfangen (615) und die Sektoren des Lesedatenrahmens und des Schreibdatenrahmens, die in einem Ausgabedatenrahmen zusammengeführt werden sollen, werden auf Grundlage der Zusammenführungsmaske bestimmt (620). Wenn ein Sektor des Schreibdatenrahmens ausgewählt ist (625 -Y), wird der ausgewählte Schreibdatenrahmensektor in dem Ausgabedatenrahmen (630) zusammengeführt. Alternativ wird, wenn der Sektor des Schreibdatenrahmensektors nicht ausgewählt ist (625 -N), der entsprechende Schreibdatenrahmensektor in dem Ausgabedatenrahmen (635) zusammengeführt. Es werden CRC-Daten für den ausgewählten Sektor (640) berechnet und akkumuliert und gleichzeitig wird der ausgewählte Sektor, der in dem Ausgabedatenrahmen zusammengeführt wird, von dem RMW-System ausgegeben (645). Der nicht ausgewählte Datenrahmensektor wird verworfen.
  • Gleichzeitig mit dem Zusammenführungsprozess werden der Lesedatenrahmen und der Schreibdatenrahmen mit ihren entsprechenden Sektoren (650) rekonstruiert und es werden CRC-Daten für jeden Sektor des rekonstruierten Lesedatenrahmens und des Schreibdatenrahmens berechnet und akkumuliert (655). Wenn der rekonstruierte Sektor nicht der letzte zu verarbeitende (660 -N) Sektor ist, wird der Prozess an den Vorgängen 625 bis 655 wiederholt. Wenn der rekonstruierte Sektor der letzte zu verarbeitende (660 -Y) Sektor ist, werden die CRCs des rekonstruierten Lesedatenrahmens und des Schreibdatenrahmens mit den CRCs des ursprünglich empfangenen Lesedatenrahmens und des Schreibdatenrahmens verglichen, um zu verifizieren, dass während des Lese-Modifizier-Schreib-Prozesses keine Fehler in die Daten eingeführt werden (665).
  • Wenn einer der CRCs für die rekonstruierten Datenrahmen nicht mit den CRCs der ursprünglich empfangenen Datenrahmen übereinstimmt (670 -N), wird eine Benachrichtigung, die anzeigt, dass der zusammengeführte Ausgabedatenrahmen ungültig ist, generiert (675). Da zumindest Einige der Sektoren in den rekonstruierten Datenrahmen auf einer Teilmenge der Mehrzahl von Datenpfaden übertragen werden, die Sektoren des zusammengeführten Ausgabedatenrahmens übertragen, verifiziert die Fehlerprüfung der verifizierten Rahmen den zusammengeführten Ausgabedatenrahmen. Andernfalls wird, wenn die CRCs für die rekonstruierten Datenrahmen mit den CRCs der ursprünglich empfangenen Datenrahmen übereinstimmen (670 -Y), verifiziert, dass der zusammengeführte Datenrahmen korrekt ist.
  • Schließlich ist 7 ein Flussdiagramm, das Zusammenführungsvorgänge gemäß einer beispielhaften Ausführungsform des vorliegenden Erfindungskonzepts darstellt. Unter Bezugnahme auf 3 und 7 werden nach dem Initialisieren eines Sektorzählers (710) ein Sektor des Lesedatenrahmens und ein entsprechender Sektor eines Schreibdatenrahmens gelesen (720). Die Adresse des Schreibdatensektors wird mit einer Zusammenführungsmaske (730) abgeglichen, und wenn der Schreibdatensektor der Zusammenführungsmaske (740 -Y) entspricht, wird der Schreibdatensektor in dem Adressen-Slot des Ausgabedatenrahmens zusammengeführt (750). Alternativ wird, wenn der Schreibdatensektor nicht der Zusammenführungsmaske (740 -N) entspricht, der Lesedatensektor in dem Adressen-Slot des Ausgabedatenrahmens zusammengeführt (760). Diese Sektoren des Lesedatenrahmens und des Schreibdatenrahmens werden an entsprechende CRC-Testmodule übertragen, um den ursprünglichen Lesedatenrahmen und den ursprünglichen Schreibdatenrahmen zu rekonstruieren (770). Wenn der rekonstruierte Sektor nicht der letzte zu verarbeitende (780 -N) Sektor ist, wird der Prozess an den Vorgängen 720 bis 770 wiederholt.
  • Auch wenn die unter Bezugnahme auf 6 und 7 erläuterten Beispiele hinsichtlich eines Lesedatenrahmens und eines Schreibdatenrahmens beschrieben werden, versteht ein gewöhnlicher Fachmann, dass das vorliegende Erfindungskonzept auf einen ersten Datenrahmen und einen zweiten Datenrahmen generalisiert werden kann, von denen jeder einem Lesedatenrahmen und einem Schreibdatenrahmen entsprechen kann.
  • Fernen können Vorgänge des vorliegenden Erfindungskonzept in der beschriebenen Reihenfolge oder einer anderen Reihenfolge durchgeführt werden oder die Vorgänge können kombiniert werden. Ein gewöhnlicher Fachmann versteht, dass der vorstehende Prozess beispielhaft ist und dass andere Variationen möglich sind, ohne von dem Erfindungskonzept abzuweichen.
  • Auch wenn bestimmte Ausführungsformen beschrieben wurden, wurden diese Ausführungsformen ausschließlich als Beispiele angeführt und dienen nicht der Einschränkung des Umfangs des Schutzbereichs. Die in dieser Schrift beschriebenen Verfahren und Systeme können in einer Vielzahl anderer Formen ausgeführt sein. Diverse Auslassungen, Ersetzungen und/oder Veränderungen an der Form der in dieser Schrift beschriebenen beispielhaften Verfahren und Systeme können vorgenommen werden, ohne von dem Geist des Schutzbereichs abzuweichen.
  • Die beigefügten Patentansprüche und ihre Äquivalente dienen der Abdeckung solcher Formen oder Modifikationen, die unter den Umfang und den Geist des Schutzbereichs fallen. Zum Beispiel können die in dieser Schrift offenbarten beispielhaften Systeme und Verfahren auf Solid-State-Laufwerke, Festplattenlaufwerke, Hybridfestplatten und Ähnliches angewendet werden. Darüber hinaus können zusätzlich oder alternativ beispielsweise, ohne jedoch darauf beschränkt zu sein, DRAM oder SRAM, batteriegepufferte flüchtige DRAM- oder SRAM-Vorrichtungen, EPROM, EEPROM-Datenspeicher etc. verwendet werden. Als weiteres Beispiel können die diversen in den Figuren dargestellten Komponenten als Software und/oder Firmware auf einem Prozessor, ASIC/FPGA oder dafür vorgesehener Hardware umgesetzt werden. Ferner können die weiter oben offenbarten Merkmale und Attribute der speziellen beispielhaften Ausführungsformen auf unterschiedliche Weisen kombiniert werden, um zusätzliche Ausführungsformen zu bilden, die alle unter den Umfang der vorliegenden Offenbarung fallen.
  • Obwohl die vorliegende Offenbarung bestimmte beispielhafte Ausführungsformen und Anwendungen vorstellt, sind weitere Ausführungsformen, die für einen gewöhnlichen Fachmann auf der Hand liegen, einschließlich von Ausführungsformen, die nicht alle der in dieser Schrift dargelegten Merkmale und Vorteile bereitstellen, ebenfalls in dem Umfang dieser Offenbarung inbegriffen. Entsprechend soll der Umfang der vorliegenden Offenbarung allein durch Bezugnahme auf die beigefügten Patentansprüche definiert werden.

Claims (35)

  1. Verfahren zum Zusammenführen von Datenrahmen, wobei das Verfahren umfasst: Empfangen eines ersten Datenrahmens, der eine Mehrzahl von Sektoren umfasst; Empfangen eines zweiten Datenrahmens, der eine Mehrzahl von Sektoren umfasst; Generieren eines zusammengeführten Ausgabedatenrahmens durch Zusammenführen von Sektoren des zweiten Datenrahmens mit Sektoren des ersten Datenrahmens unter Verwendung einer Mehrzahl von Datenpfaden, die eine Mehrzahl von Multiplexern umfassen; und Durchführen einer Fehlerprüfung an mindestens einem Prüfungsdatenrahmen, der Sektoren umfasst, die denjenigen des ersten Datenrahmens und des zweiten Datenrahmens entsprechen, wobei zumindest einige dieser Sektoren in dem Prüfungsdatenrahmen auf einer Teilmenge aus der Mehrzahl von Datenpfaden übertragen werden, die Sektoren des zusammengeführten Ausgabedatenrahmens überträgt, und wobei die Fehlerprüfung den zusammengeführten Ausgabedatenrahmen verifiziert.
  2. Verfahren nach Anspruch 1, wobei das Durchführen der Fehlerprüfung ferner umfasst: Durchführen einer Fehlerprüfung an zwei Prüfungsdatenrahmen, umfassend: einen ersten Prüfungsdatenrahmen, der Sektoren umfasst, die denjenigen des ersten Datenrahmens entsprechen; und einen zweiten Prüfungsdatenrahmen, der Sektoren umfasst, die denjenigen des zweiten Datenrahmens entsprechen.
  3. Verfahren nach Anspruch 2, wobei der erste Prüfungsdatenrahmen und der zweite Prüfungsdatenrahmen mit ihren jeweiligen Sektoren rekonstruiert werden, die dem ersten und dem zweiten Datenrahmen entsprechen, nachdem die Sektoren auf Grundlage einer Zusammenführungsmaske, die anzeigt, welche Sektoren des ersten und des zweiten Datenrahmens in den Ausgabedatenrahmen zusammenzuführen sind, über ausgewählte der Mehrzahl von Multiplexern übertragen wurden.
  4. Verfahren nach Anspruch 2, wobei das Durchführen der Fehlerprüfung ferner umfasst: Vergleichen von Cyclic Redundancy Codes (CRCs) des ersten Datenrahmens und des zweiten Datenrahmens mit den CRCs, die vom ersten bzw. zweiten Prüfungsdatenrahmen generiert wurden, und falls keiner der CRC-Vergleiche übereinstimmt, Generieren einer Benachrichtigung, die anzeigt, dass der zusammengeführte Ausgabedatenrahmen ungültig ist.
  5. Verfahren nach Anspruch 4, wobei der CRC des ersten Prüfungsdatenrahmens durch Akkumulieren von CRC-Daten des ersten Prüfungsdatenrahmens Sektor für Sektor generiert wird und der CRC des zweiten Prüfungsdatenrahmens durch Akkumulieren von CRC-Daten des zweiten Prüfungsdatenrahmens Sektor für Sektor generiert wird.
  6. Verfahren nach Anspruch 2, wobei sich jeder Sektor im zusammengeführten Ausgabedatenrahmen entweder in dem ersten Prüfungsdatenrahmen oder dem zweiten Prüfungsdatenrahmen befindet.
  7. Verfahren nach Anspruch 2, wobei: der erste Prüfungsdatenrahmen ferner Sektoren umfasst, die auf einer ersten Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge der Datenpfade unterscheidet, auf denen die Sektoren des ersten Datenrahmens, der in den Ausgabedatenrahmen zusammengeführt wird, übertragen werden, und der zweite Prüfungsdatenrahmen ferner Sektoren umfasst, die auf einer zweiten Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge der Datenpfade unterscheidet, auf denen die Sektoren des zweiten Datenrahmens, der in dem Ausgabedatenrahmen zusammengeführt wird, übertragen werden.
  8. Verfahren nach Anspruch 1, wobei der wenigstens eine Prüfungsdatenrahmen ferner Sektoren umfasst, die auf einer Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge der Datenpfade unterscheidet, auf denen die Sektoren des zusammengeführten Ausgabedatenrahmens übertragen werden.
  9. Verfahren nach Anspruch 1, wobei die Sektoren zumindest eines von dem ersten und dem zweiten in den Ausgabedatenrahmen zusammenzuführenden Datenrahmen durch eine Zusammenführungsmaske festgelegt werden.
  10. Verfahren nach Anspruch 9, wobei die Zusammenführungsmaske festlegt, welche Sektoren des ersten und des zweiten Datenrahmens jeden Sektor des Ausgabedatenrahmens besetzen.
  11. Verfahren nach Anspruch 1, das ferner ein Rekonstruieren des mindestens einen Prüfungsdatenrahmens umfasst, während der zusammengeführte Ausgabedatenrahmen generiert wird.
  12. Verfahren nach Anspruch 1, das ferner ein Generieren eines Cyclic Redundancy Codes (CRC) für den zusammengeführten Ausgabedatenrahmen umfasst durch Akkumulieren von CRC-Daten des Sektors, die in den Ausgabedatenrahmen Sektor für Sektor zusammengeführt werden.
  13. Vorrichtung zum Zusammenführen von Datenrahmen, wobei die Vorrichtung umfasst: eine oder mehrere Vorrichtungen, die derart ausgelegt sind, dass sie einen ersten Datenrahmen, der eine Mehrzahl von Sektoren umfasst, und einen zweiten Datenrahmen, der eine Mehrzahl von Sektoren umfasst, empfängt; und eine Schaltung, die eine Mehrzahl von Datenpfaden umfasst, die eine Mehrzahl von Multiplexern umfassen, wobei die Schaltung derart ausgelegt ist, dass sie: unter Verwendung der Mehrzahl von Datenpfaden einen zusammengeführten Ausgabedatenrahmen durch Zusammenführen der Sektoren des zweiten Datenrahmens mit den Sektoren des ersten Datenrahmens generiert; und eine Fehlerprüfung an mindestens einem Prüfungsdatenrahmen umfasst, der Sektoren entsprechend denjenigen in dem ersten Datenrahmen oder dem zweiten Datenrahmen umfasst, wobei zumindest einige der Sektoren in dem Prüfungsdatenrahmen auf einer Teilmenge der Mehrzahl von Datenpfaden übertragen werden, die Sektoren des zusammengeführten Ausgabedatenrahmens übertragen, wobei die Fehlerprüfung den zusammengeführten Ausgabedatenrahmen verifiziert.
  14. Vorrichtung nach Anspruch 13, wobei die eine oder mehr Vorrichtungen ferner umfassen: einen Speicher, der derart ausgelegt ist, dass er den ersten Datenrahmen speichert; und einen Datenport, der derart ausgelegt ist, dass er den zweiten Datenrahmen empfängt.
  15. Vorrichtung nach Anspruch 13, wobei die Schaltung ferner derart ausgelegt ist, dass sie die Fehlerprüfung mindestens durch Folgendes durchführt: Durchführen einer Fehlerprüfung an zwei Prüfungsdatenrahmen, umfassend: einen ersten Prüfungsdatenrahmen, der Sektoren umfasst, die denjenigen des ersten Datenrahmens entsprechen; und einen zweiten Prüfungsdatenrahmen, der Sektoren umfasst, die denjenigen des zweiten Datenrahmens entsprechen.
  16. Vorrichtung nach Anspruch 15, wobei der erste Prüfungsdatenrahmen und der zweite Prüfungsdatenrahmen durch mindestens eine erste Logikvorrichtung mit ihren jeweiligen Sektoren rekonstruiert werden, die dem ersten und dem zweiten Datenrahmen entsprechen, nachdem die Sektoren durch die ausgewählten der Mehrzahl von Multiplexern auf Grundlage einer Zusammenführungsmaske übertragen werden, die anzeigt, welche Sektoren des ersten und des zweiten Datenrahmens in dem Ausgabedatenrahmen zusammenzuführen sind.
  17. Vorrichtung nach Anspruch 16, wobei die mindestens eine erste Logikvorrichtungen derart ausgelegt ist, dass sie: einen Cyclic Redundancy Code (CRC) des ersten Datenrahmens mit einem für den ersten Prüfungsdatenrahmen generierten CRC vergleicht; einen (CRC) des zweiten Datenrahmens mit einem für den zweiten Prüfungsdatenrahmen generierten CRC vergleicht; falls kein CRC-Vergleich übereinstimmt, eine Benachrichtigung erzeugt, die anzeigt, dass der zusammengeführte Ausgabedatenrahmen ungültig ist.
  18. Vorrichtung nach Anspruch 17, wobei die mindestens eine erste Logikvorrichtungen ferner derart ausgelegt ist, dass sie: die CRC des ersten Prüfungsdatenrahmens durch Akkumulieren von CRC-Daten des ersten Prüfungsdatenrahmens Sektor für Sektor generiert; und die CRC des zweiten Prüfungsdatenrahmens durch Akkumulieren von CRC-Daten des zweiten Prüfungsdatenrahmens Sektor für Sektor generiert.
  19. Vorrichtung nach Anspruch 15, wobei sich jeder Sektor in dem zusammengeführten Ausgabedatenrahmen entweder in dem ersten Prüfungsdatenrahmen oder dem zweiten Prüfungsdatenrahmen befindet.
  20. Vorrichtung nach Anspruch 15, wobei: der erste Prüfungsdatenrahmen ferner Sektoren umfasst, die auf einer erste Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge der Datenpfade unterscheidet, auf denen die Sektoren des ersten Datenrahmens, welcher in den Ausgabedatenrahmen zusammengeführt wird, übertragen werden, und der zweite Prüfungsdatenrahmen ferner Sektoren umfasst, die auf einer zweiten Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge der Datenpfade unterscheidet, auf denen die Sektoren des zweiten Datenrahmens, welcher in den Ausgabedatenrahmen zusammengeführt wird, übertragen werden.
  21. Vorrichtung nach Anspruch 13, wobei der mindestens eine Prüfungsdatenrahmen ferner Sektoren umfasst, die auf einer Teilmenge von Datenpfaden übertragen werden, die sich von der Teilmenge der Datenpfade unterscheidet, auf denen die Sektoren des zusammengeführten Ausgabedatenrahmens übertragen werden.
  22. Vorrichtung nach Anspruch 13, wobei die Sektoren des zumindest einen aus dem ersten und dem zweiten in den Ausgabedatenrahmen zusammenzuführenden Datenrahmen durch eine Zusammenführungsmaske festgelegt werden.
  23. Vorrichtung nach Anspruch 22, wobei die Zusammenführungsmaske festlegt, welche Sektoren des ersten und des zweiten Datenrahmens jeden Sektor des Ausgabedatenrahmens besetzen.
  24. Vorrichtung nach Anspruch 22, wobei die Zusammenführungsmaske in einem von dem ersten und dem zweiten Datenrahmen inbegriffen ist.
  25. Vorrichtung nach Anspruch 22, wobei die Zusammenführungsmaske separat von dem ersten und dem zweiten Datenrahmen empfangen wird.
  26. Vorrichtung nach Anspruch 13, die ferner mindestens eine erste Logikvorrichtung umfasst, die derart ausgelegt ist, dass sie den mindestens einen Prüfungsdatenrahmen rekonstruiert, während der zusammengeführte Ausgabedatenrahmen generiert wird.
  27. Vorrichtung nach Anspruch 13, die ferner eine zweite Logikvorrichtung umfasst, die derart ausgelegt ist, dass sie einen Cyclic Redundancy Code (CRC) für den zusammengeführten Ausgabedatenrahmen durch Akkumulieren von CRC-Daten des Sektors generiert, die in dem Ausgabedatenrahmen Sektor für Sektor zusammengeführt werden.
  28. Vorrichtung nach Anspruch 13, wobei die Schaltung ferner einen Prozessor umfasst und wobei das Generieren des zusammengeführten Ausgabedatenrahmens und das Durchführen der Fehlerprüfung unter der Kontrolle des Prozessors durchgeführt werden.
  29. Verfahren zum Zusammenführen von Datenrahmen, wobei das Verfahren umfasst: Empfangen eines ersten Datenrahmens, der eine Mehrzahl von Sektoren umfasst; Empfangen eines zweiten Datenrahmens, der eine Mehrzahl von Sektoren umfasst; und Generieren eines zusammengeführten Ausgabedatenrahmens auf Grundlage des ersten Datenrahmens und des zweiten Datenrahmens, wobei das Generieren für jeden Adressen-Slot in dem zusammengeführten Ausgabedatenrahmen ein Auswählen eines Sektors entweder aus dem ersten Datenrahmen oder aus dem zweiten Datenrahmen auf Grundlage einer Zusammenführungsmaske umfasst.
  30. Verfahren nach Anspruch 29, wobei die Zusammenführungsmaske in einem von dem ersten und dem zweiten Datenrahmen inbegriffen ist.
  31. Verfahren nach Anspruch 29, wobei die Zusammenführungsmaske separat von dem ersten und dem zweiten Datenrahmen empfangen wird.
  32. Vorrichtung zum Zusammenführen von Datenrahmen, wobei die Vorrichtung umfasst: eine erste Schaltung, die derart ausgelegt ist, dass sie einen ersten Rahmen, der eine Mehrzahl von Sektoren umfasst, empfängt; eine zweiten Schaltung, die derart ausgelegt ist, dass sie einen zweiten Datenrahmen, der eine Mehrzahl von Sektoren umfasst, empfängt; und eine Mehrzahl von Datenpfaden, die derart ausgelegt sind, dass sie einen zusammengeführten Ausgabedatenrahmen auf Grundlage des ersten Datenrahmens und des zweiten Datenrahmens generieren, wobei das Generieren für jeden Adressen-Slot in dem zusammengeführten Ausgabedatenrahmen ein Auswählen eines Sektors entweder aus dem ersten Datenrahmen oder aus dem zweiten Datenrahmen auf Grundlage einer Zusammenführungsmaske umfasst.
  33. Vorrichtung nach Anspruch 32, wobei die erste Schaltung einen Speicher umfasst, der derart ausgelegt ist, dass er den ersten Datenrahmen speichert; und die zweite Schaltung einen Datenport umfasst, der derart ausgelegt ist, dass er den zweiten Datenrahmen empfängt.
  34. Vorrichtung nach Anspruch 32, wobei die Zusammenführungsmaske in einem aus dem ersten und dem zweiten Datenrahmen inbegriffen ist.
  35. Vorrichtung nach Anspruch 32, wobei die Zusammenführungsmaske separat von dem ersten und dem zweiten Datenrahmen empfangen wird.
DE112014002403.1T 2013-05-16 2014-05-16 Hochleistungs-Lese-Modifizier-Schreib-System mit Zeilenratenzusammenführung von Datenrahmensegmenten in Hardware Active DE112014002403B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/895,928 US9081700B2 (en) 2013-05-16 2013-05-16 High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US13/895,928 2013-05-16
PCT/US2014/038510 WO2014186779A1 (en) 2013-05-16 2014-05-16 High performance read-modify-write system providing line-rate merging of dataframe segments in hardware

Publications (2)

Publication Number Publication Date
DE112014002403T5 DE112014002403T5 (de) 2016-05-19
DE112014002403B4 true DE112014002403B4 (de) 2020-07-09

Family

ID=51896818

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014002403.1T Active DE112014002403B4 (de) 2013-05-16 2014-05-16 Hochleistungs-Lese-Modifizier-Schreib-System mit Zeilenratenzusammenführung von Datenrahmensegmenten in Hardware

Country Status (8)

Country Link
US (2) US9081700B2 (de)
KR (1) KR101915351B1 (de)
CN (1) CN105247488B (de)
AU (2) AU2014265183B2 (de)
DE (1) DE112014002403B4 (de)
GB (1) GB2528614B (de)
HK (1) HK1219153A1 (de)
WO (1) WO2014186779A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
CN110265071B (zh) 2013-09-24 2023-05-12 拉姆伯斯公司 具有内部读取-修改-写入操作的存储部件
US10572260B2 (en) * 2017-12-29 2020-02-25 Intel Corporation Spatial and temporal merging of remote atomic operations
CN108279910B (zh) * 2018-01-17 2021-04-13 珠海市杰理科技股份有限公司 程序代码烧写方法、装置、计算机设备和存储介质
CN112944566B (zh) * 2021-02-24 2023-03-31 青岛海尔空调电子有限公司 室外机运行参数自动匹配新装室内机的方法
CN115440269A (zh) * 2021-06-01 2022-12-06 长鑫存储技术有限公司 数据传输电路、数据处理电路和存储器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944168B2 (en) 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7203890B1 (en) 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4884271A (en) * 1987-12-28 1989-11-28 International Business Machines Corporation Error checking and correcting for read-modified-write operations
US5477541A (en) 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
EP0609595B1 (de) 1993-02-05 1998-08-12 Hewlett-Packard Company Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
US5638370A (en) * 1994-12-28 1997-06-10 Intel Corporation Status bit controlled HDLC accelerator
US6108812A (en) * 1996-06-20 2000-08-22 Lsi Logic Corporation Target device XOR engine
US5923650A (en) * 1997-04-08 1999-07-13 Qualcomm Incorporated Method and apparatus for reverse link rate scheduling
US6467060B1 (en) * 1998-06-26 2002-10-15 Seagate Technology Llc Mass storage error correction and detection system, method and article of manufacture
US6262596B1 (en) * 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US7010469B2 (en) 2003-09-30 2006-03-07 International Business Machines Corporation Method of computing partial CRCs
US7171604B2 (en) 2003-12-30 2007-01-30 Intel Corporation Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
US7363442B2 (en) * 2004-11-12 2008-04-22 International Business Machines Corporation Separate handling of read and write of read-modify-write
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
US7277986B2 (en) * 2005-03-30 2007-10-02 Emc Corporation Sector-edge cache
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
JP4764973B2 (ja) 2005-12-09 2011-09-07 独立行政法人産業技術総合研究所 Crc値の算出装置
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7958427B1 (en) 2007-03-30 2011-06-07 Link—A—Media Devices Corporation ECC with out of order completion
US7685337B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685338B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8078918B2 (en) 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US8196009B2 (en) * 2008-06-18 2012-06-05 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code
CN101335764B (zh) * 2008-07-15 2011-12-21 上海华为技术有限公司 合成复帧、解析复帧的方法、装置及复帧处理系统
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
WO2010107259A2 (ko) * 2009-03-18 2010-09-23 엘지전자 주식회사 송/수신 시스템 및 방송 신호 처리 방법
US8661314B2 (en) 2009-03-23 2014-02-25 Broadcom Corporation Method and apparatus for calculating frame check sequence
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
US8261012B2 (en) 2009-10-30 2012-09-04 Western Digital Technologies, Inc. Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal
US8397107B1 (en) 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
BR112012028417B1 (pt) * 2010-05-17 2021-06-29 Samsung Electronics Co., Ltd Método para processar um fluxo de um transmissor de radiodifusão digital, transmissor de radiodifusão digital, método para processar um fluxo de receptor de radiodifusão digital, e receptor de radiodifusão digital
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
KR101688051B1 (ko) 2010-11-08 2016-12-20 삼성전자 주식회사 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
US8392635B2 (en) 2010-12-22 2013-03-05 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
CN102143185B (zh) * 2011-03-31 2015-11-25 北京经纬恒润科技有限公司 数据传输方法和数据传输装置
US20120254588A1 (en) * 2011-04-01 2012-10-04 Jesus Corbal San Adrian Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask
US8769232B2 (en) 2011-04-06 2014-07-01 Western Digital Technologies, Inc. Non-volatile semiconductor memory module enabling out of order host command chunk media access
US8862804B2 (en) 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
US8751728B1 (en) 2011-04-29 2014-06-10 Western Digital Technologies, Inc. Storage system bus transfer optimization
US9021178B2 (en) 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US8724422B1 (en) 2012-02-29 2014-05-13 Western Digital Technologies, Inc. System and method for charging back-up charge storage element for data storage device using spindle phase switching elements
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US8788880B1 (en) 2012-08-22 2014-07-22 Western Digital Technologies, Inc. Efficient retry mechanism for solid-state memory failures
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US20140223255A1 (en) 2012-12-18 2014-08-07 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944168B2 (en) 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7203890B1 (en) 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits

Also Published As

Publication number Publication date
DE112014002403T5 (de) 2016-05-19
US20140344653A1 (en) 2014-11-20
GB2528614B (en) 2020-10-28
AU2014265183B2 (en) 2019-01-03
CN105247488A (zh) 2016-01-13
GB201519928D0 (en) 2015-12-23
KR101915351B1 (ko) 2018-11-05
KR20160008631A (ko) 2016-01-22
WO2014186779A1 (en) 2014-11-20
US9948322B1 (en) 2018-04-17
CN105247488B (zh) 2018-11-16
AU2014265183A1 (en) 2015-12-17
GB2528614A (en) 2016-01-27
HK1219153A1 (zh) 2017-03-24
US9081700B2 (en) 2015-07-14
AU2018274835A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
DE112014002403B4 (de) Hochleistungs-Lese-Modifizier-Schreib-System mit Zeilenratenzusammenführung von Datenrahmensegmenten in Hardware
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE112014002870B4 (de) Kombinations-Fehler- und Löschdecodierung für Produktcodes
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE2430464A1 (de) Einrichtung zur fehlergesicherten datenuebertragung
DE112010003345T5 (de) Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems
DE2030760A1 (de) Speicherschaltung
DE112013005453T5 (de) Rekonstruierende Fehlerbehebungsprozedur (ERP) für mehrerer Datensätze unter Verwendung eines reservierten Puffers
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102011085989A1 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102015215401A1 (de) Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE102004003352A1 (de) Systeme und Verfahren zum Puffern von Daten zwischen einer Übereinstimmungscachesteuerung und einem Speicher
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE602004007903T2 (de) Datenverarbeitungsvorrichtung von Online-Transaktionsdaten
DE102018219877A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
DE3002048A1 (de) Verfahren und vorrichtung zur verbesserung der eingabe und ausgabe in einer datenverarbeitungsanlage
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102019113970B4 (de) Erkennung von adressfehlern
WO2007071590A1 (de) Verfahren zur erkennung einer versorgungsunterbrechung in einem datenspeicher und zur wiederherstellung des datenspeichers

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: STREHL SCHUEBEL-HOPF & PARTNER MBB PATENTANWAE, DE

Representative=s name: MEWBURN ELLIS LLP, DE

R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R081 Change of applicant/patentee

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., SAN JOSE, US

Free format text: FORMER OWNERS: SKYERA, LLC, SAN JOSE, CALIF., US; WESTERN DIGITAL TECHNOLOGIES, INC., IRVINE, CALIF., US

R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final