PATENT CLAIM ANALYSIS

Application Number: 15936325
Application Type: Utility
Filing Date: 2018-03
Publication Date: 2018-11
Patent Classification: ["714", "755000"]

Abstract:
A system and method improve the performance of non-volatile memory storage by offloading parity computations to facilitate high speed data transfers, including direct memory access (DMA) transfers, between a remote host and a non-volatile memory based storage system, such as a flash memory based data storage device (e.g., SSD). In conjunction with writing to non-volatile memory storage, a stripe map is used to target a selected data storage device for parity generation. All data of a stripe is transmitted to the selected data storage device to generate the parity and the generated parity is propagated from the selected data storage device to other data storage devices in the stripe. The data for the stripe may also be propagated from the selected data storage device to the other data storage devices in the stripe.

Claim (Index 20):
A computer readable storage medium storing one or more programs configured for execution by a memory controller configured to be coupled to a plurality of data storage devices, the one or more programs comprising instructions that when executed by one or more processors of the memory controller, cause the memory controller to:\n receive compaction requests, each compaction request comprising a request to compact a first Redundancy Coding stripe and a second Redundancy Coding stripe into a third Redundancy Coding stripe in the plurality of data storage devices, the first Redundancy Coding stripe, the second Redundancy Coding stripe and the third Redundancy Coding stripe including storage locations in a set of data storage devices comprising three or more of the plurality of data storage devices; and process a respective compaction request by performing a sequence of operations, including:\n identifying a first data storage device and a second data storage device in the set of data storage devices from which to read data for the first Redundancy Coding stripe and the second Redundancy Coding stripe, the identified first data storage device and the second data storage device including a controller, non-volatile memory and a data buffer; \n identifying a third data storage device in the set of data storage devices at which to compute and store parity for the identified third Redundancy Coding stripe, the identified third data storage device including a controller, non-volatile memory and a data buffer; \n sending one or more data transfer commands to the first data storage device and the second data storage device to locally copy valid blocks from the first Redundancy Coding stripe and the second Redundancy Coding stripe to the third Redundancy Coding stripe within the respective data storage devices; and \n sending a parity rebuild command to the third data storage device to rebuild parity for the third Redundancy Coding stripe, wherein rebuilding parity for the third Redundancy Coding stripe includes obtaining data in the third Redundancy Coding stripe from the first data storage device using peer-to-peer data transfers from the first data storage device to the third data storage device and obtaining data in the third Redundancy Coding stripe from the second data storage device using peer-to-peer data transfers from the second data storage device to the third data storage device.

Metadata:
- Claim Count in Document: 50.0
- Percentile: 90.0
- Lexical Diversity: 2.24615
- Patent Class: 714.0
- Transitional Phrase Type: open
- Component Type: 1
- Foreign Priority: False
- Related Applications: ['15680112', '11952116', '11952115', '13182315', '13204436']

Analysis Scores:
- 35 USC 101 Eligibility (BERT): 0.2794181505321758
- 35 USC 102 Novelty (BERT): 0.5210733143242662
- Combined Prediction Score: 0.3035836669113848
- Mean Citation Score: 257.07051
- Max Citation Score: 329.53943
- Similarity Product: 252.18074523711203

Labels:
- Claim Label 101: 1
- Claim Label 102: 1
- Claim Label 103: 1
- Claim Label 112: 0
- Combined Label: 1
- Label 101 Adjusted: 1

Dataset: test