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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1085—RMW, i.e. Read-Modify-Write method for RAID systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/555—Error 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. Die4 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 und1B 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 in1A dargestellt, umfasst das Lese-Modifizier-Schreib-System100 eine Schaltung einschließlich eines Speichers110 , einer Eingabelogik120 , einer Mehrzahl von Multiplexern130 , einer ersten Logikvorrichtung140 und einer zweiten Logikvorrichtung150 . Das RMW-System100 ist mit einer Systemuhr160 synchronisiert und kann mit der Geschwindigkeit der Systemuhr skalierbar sein. In einer Ausführungsform bietet1A 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 in1B dargestellt, kann das Lese-Modifizier-Schreib-System gemäß einer beispielhaften Ausführungsform ferner einen Prozessor170 enthalten, der zumindest einige Vorgänge des RMW-Systems steuert. In einer beispielhaften Ausführungsform steuert die auf dem Prozess170 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 Speicher110 , bis ein zweiter Datenrahmen mit einer Mehrzahl von Sektoren an einem Datenport122 empfangen wird. Der zweite Datenrahmen wird Sektor für Sektor etwa bei der Geschwindigkeit der Systemuhr durch das RMW-System100 durchgegeben und mit dem ersten Datenrahmen zusammengeführt, der von dem Speicher110 gelesen wird. Der erste und der zweite Datenrahmen werden von der ersten Logikvorrichtung140 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 auf2 empfängt die Eingabelogik120 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 Eingabelogik120 in Gleichlauf mit der Systemuhr160 an die Multiplexer130 ü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 aus3 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ührungsmaske370 Sektoren des zweiten Datenrahmens340 fest, die mit den Sektoren des ersten Datenrahmens310 anstelle von Sektoren des ersten Datenrahmens310 zusammengeführt werden, die verworfen werden (als zu verwerfende Sektoren320 dargestellt). Sektoren des zweiten Datenrahmens340 , für die nicht festgelegt wurde, dass sie in dem Ausgabedatenrahmen durch die Zusammenführungsmaske370 zusammengeführt werden, werden verworfen (als zu verwerfende Sektoren350 dargestellt), während Sektoren des zweiten Datenrahmens340 , für die festgelegt wurde, dass sie in dem Ausgabedatenrahmen durch die Zusammenführungsmaske370 zusammengeführt werden (als zusammenzuführende Sektoren360 dargestellt), mit dem ersten Datenrahmen310 zusammengeführt werden, um einen zusammengeführten Ausgabedatenrahmen380 zu generieren. Umgekehrt werden Sektoren des ersten Datenrahmens310 , für die nicht festgelegt wurde, dass sie in dem Ausgabedatenrahmen durch die Zusammenführungsmaske370 zusammengeführt werden, verworfen (als zu verwerfende Sektoren320 dargestellt), während Sektoren des ersten Datenrahmens310 , für die festgelegt wurde, dass sie in dem Ausgabedatenrahmen (als zusammenzuführende Sektoren330 dargestellt) durch die Zusammenführungsmaske370 zusammengeführt werden, mit den zusammenzuführenden Sektoren360 des zweiten Datenrahmens340 zusammengeführt werden, um den zusammengeführten Ausgabedatenrahmen380 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 Multiplexer5 übertragen. In einer beispielhaften Ausführungsform überträgt der erste Multiplexer5 jeden Sektor des zweiten Datenrahmens an einen zweiten Multiplexer6 und einen Zusammenführungsmultiplexer8 . Gleichzeitig wird der dritte Datenrahmen an einen dritten Multiplexer4 übertragen. In einer beispielhaften Ausführungsform überträgt der dritte Multiplexer4 jeden Sektor des ersten Datenrahmens an einen vierten Multiplexer15 und einen Zusammenführungsmultiplexer8 . Der Zusammenführungsmultiplexer8 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ührungsmultiplexers8 an die zweiten Logikvorrichtung150 übertragen. Die zweite Logikvorrichtung150 berechnet und akkumuliert einen CRC für den zusammengeführten Ausgabedatenrahmen. Jeder Sektor des zusammengeführten Ausgabedatenrahmens wird von dem RMW-System100 Sektor für Sektor durch einen Ausgabemultiplexer17 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 Multiplexer15 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 Logikvorrichtung140 . Zum Beispiel wird, wenn die Zusammenführungsmaske verursacht, dass der Zusammenführungsmultiplexer8 einen Sektor aus dem ersten Datenrahmen auswählt, der entsprechende Sektor aus dem zweiten Datenrahmen verworfen. Der Zusammenführungsmultiplexer8 überträgt den ausgewählten Sektor von dem ersten Datenrahmen an den Ausgabemultiplexer17 und der Ausgabemultiplexer17 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 Multiplexer15 . Der vierte Multiplexer15 wählt den ausgewählten Sektor aus dem ersten Datenrahmen aus und überträgt ihn an die erste Logikvorrichtung140 . Gleichzeitig wird der verworfene Sektor des zweiten Datenrahmens von dem zweiten Multiplexer6 an die erste Logikvorrichtung140 ü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 Logikvorrichtung140 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 Multiplexer15 an die Logikvorrichtung140 übertragen. Gleichzeitig wird der CRC des zweiten Datenrahmens über den ersten Multiplexer5 und den zweiten Multiplexer6 an die erste Logikvorrichtung140 ü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 Logikvorrichtung150 generiert wird, ausgewählt und von dem Ausgabemultiplexer17 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 auf4 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 auf5 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 auf6 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ängen625 bis655 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 auf3 und7 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ängen720 bis770 wiederholt. - Auch wenn die unter Bezugnahme auf
6 und7 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)
- 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.
- 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. - 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. - 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. - 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. - Verfahren nach
Anspruch 2 , wobei sich jeder Sektor im zusammengeführten Ausgabedatenrahmen entweder in dem ersten Prüfungsdatenrahmen oder dem zweiten Prüfungsdatenrahmen befindet. - 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. - 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. - 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. - Verfahren nach
Anspruch 9 , wobei die Zusammenführungsmaske festlegt, welche Sektoren des ersten und des zweiten Datenrahmens jeden Sektor des Ausgabedatenrahmens besetzen. - Verfahren nach
Anspruch 1 , das ferner ein Rekonstruieren des mindestens einen Prüfungsdatenrahmens umfasst, während der zusammengeführte Ausgabedatenrahmen generiert wird. - 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. - 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.
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - Vorrichtung nach
Anspruch 22 , wobei die Zusammenführungsmaske festlegt, welche Sektoren des ersten und des zweiten Datenrahmens jeden Sektor des Ausgabedatenrahmens besetzen. - Vorrichtung nach
Anspruch 22 , wobei die Zusammenführungsmaske in einem von dem ersten und dem zweiten Datenrahmen inbegriffen ist. - Vorrichtung nach
Anspruch 22 , wobei die Zusammenführungsmaske separat von dem ersten und dem zweiten Datenrahmen empfangen wird. - 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. - 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. - 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. - 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.
- Verfahren nach
Anspruch 29 , wobei die Zusammenführungsmaske in einem von dem ersten und dem zweiten Datenrahmen inbegriffen ist. - Verfahren nach
Anspruch 29 , wobei die Zusammenführungsmaske separat von dem ersten und dem zweiten Datenrahmen empfangen wird. - 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.
- 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. - Vorrichtung nach
Anspruch 32 , wobei die Zusammenführungsmaske in einem aus dem ersten und dem zweiten Datenrahmen inbegriffen ist. - Vorrichtung nach
Anspruch 32 , wobei die Zusammenführungsmaske separat von dem ersten und dem zweiten Datenrahmen empfangen wird.
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)
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)
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)
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 |
-
2013
- 2013-05-16 US US13/895,928 patent/US9081700B2/en not_active Expired - Fee Related
-
2014
- 2014-05-16 WO PCT/US2014/038510 patent/WO2014186779A1/en active Application Filing
- 2014-05-16 AU AU2014265183A patent/AU2014265183B2/en active Active
- 2014-05-16 KR KR1020157035512A patent/KR101915351B1/ko active IP Right Grant
- 2014-05-16 GB GB1519928.4A patent/GB2528614B/en active Active
- 2014-05-16 DE DE112014002403.1T patent/DE112014002403B4/de active Active
- 2014-05-16 CN CN201480028255.7A patent/CN105247488B/zh active Active
-
2015
- 2015-04-28 US US14/698,766 patent/US9948322B1/en active Active
-
2016
- 2016-06-20 HK HK16107052.2A patent/HK1219153A1/zh unknown
-
2018
- 2018-12-03 AU AU2018274835A patent/AU2018274835A1/en not_active Abandoned
Patent Citations (2)
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 |