IP Library › Granted Patent US 10,163,371
Granted Patent B1
US 10,163,371 · App. 15/420,633 · Granted Dec 25, 2018

Rotating bit values based on a data structure while generating a large, non-compressible data stream

Inventors: Salil Dangi (Mission Viejo, CA); James Zarbock (El Toro, CA); Ernest Daza (Rancho Santa Margarita, CA)
Assignee: EMC IP Holding Company LLC
G09C5/00G06F3/067G06F3/0608G06F3/0641G06N7/005G06F7/588
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,163,371
App. No.
15/420,633
Filed
Jan 31, 2017
Granted
Dec 25, 2018
Kind
B1
Art Unit
2182
USPC
708/203
Abstract

Generating non-compressible data streams is disclosed, including: receiving a sequence comprising a plurality of byte values calculated from an initialization parameter and a constrained prime number; determining a data structure index from a plurality of bits within at least one of the plurality of byte values; retrieving a rotation value from a data structure, wherein the rotation value is stored in the data structure at the data structure index; and rotating a portion of the sequence based on a rotation value to form a rotated sequence, wherein the rotated sequence comprises byte values substantially defeating a predictive compression algorithm.

Claims (59)

1. A system for generating a large non-compressible data stream by rotating bit values, comprising:

a processor configured to:

receive an initialization parameter;

determine a first constrained prime number and a second constrained prime number, wherein a constrained prime number comprises a plurality of component values, wherein each of the plurality of component values comprises a prime number, wherein each of the plurality of component values is different;

generate a non-compressible data stream comprising a plurality of data blocks at least in part by:

generate a first non-compressible sequence based at least in part on the initialization parameter and the first constrained prime number;

generate a second non-compressible sequence based at least in part on the initialization parameter and the second constrained prime number, wherein the first and second non-compressible sequences are each comprised of a non-repeating sequence of numbers; and

merge the first non-compressible sequence and the second non-compressible sequence to generate the non-compressible data stream, wherein values of the non-compressible data stream alternate between values of the first non-compressible sequence and values of the second non-compressible sequence;

determine a data structure index from a plurality of bits within at least one of a plurality of byte values from the non-compressible data stream;

retrieve a rotation value from a data structure, wherein the rotation value is stored in the data structure at the data structure index;

rotate a portion of the non-compressible data stream based on the rotation value to form a rotated non-compressible data stream, the rotated non-compressible data stream comprising the plurality of data blocks; and

send the rotated non-compressible data stream to be stored at a storage device, wherein the storage device is configured to store all of the plurality of data blocks in response to determining that none of the data blocks have been already stored at the storage device;

receive restored data associated with the rotated non-compressible data stream from the storage device, wherein the restored data associated with the non-compressible data stream comprises the plurality of data blocks;

determine the first constrained prime number based at least in part on a difference between a first pair of non-consecutive values from the restored data associated with the rotated non-compressible data stream;

determine the second constrained prime number based at least in part on a difference between a second pair of non-consecutive values from the restored data associated with the rotated non-compressible data stream; and

verify an accuracy and/or reliability of the storage device, wherein to verify the accuracy and/or reliability of the storage device, the restored data associated with the rotated non-compressible data stream is verified by using the determined first constrained prime number and the determined second constrained prime number; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein the data structure comprises an array of constrained prime numbers.

3. The system of claim 1 , wherein the data structure comprises an array of prime numbers.

4. The system of claim 1 , wherein the portion of the non-compressible data stream is rotated left.

5. The system of claim 1 , wherein the portion of the non-compressible data stream is rotated right.

6. A method for generating a large non-compressible data stream by rotating bit values, comprising:

receiving an initialization parameter;

determining a first constrained prime number and a second constrained prime number, wherein a constrained prime number comprises a plurality of component values, wherein each of the plurality of component values comprises a prime number, wherein each of the plurality of component values is different;

generating a non-compressible data stream comprising a plurality of data blocks at least in part by:

generating a first non-compressible sequence based at least in part on the initialization parameter and the first constrained prime number;

generating a second non-compressible sequence based at least in part on the initialization parameter and the second constrained prime number, wherein the first and second non-compressible sequences are each comprised of a non-repeating sequence of numbers; and

merging the first non-compressible sequence and the second non-compressible sequence to generate the non-compressible data stream, wherein values of the non-compressible data stream alternate between values of the first non-compressible sequence and values of the second non-compressible sequence;

determining a data structure index from a plurality of bits within at least one of a plurality of byte values from the non-compressible data stream;

retrieving a rotation value from a data structure, wherein the rotation value is stored in the data structure at the data structure index;

rotating a portion of the non-compressible data stream based on the rotation value to form a rotated non-compressible data stream, the rotated non-compressible data stream comprising the plurality of data blocks; and

sending the rotated non-compressible data stream to be stored at a storage device, wherein the storage device is configured to store all of the plurality of data blocks in response to determining that none of the data blocks have been already stored at the storage device;

receiving restored data associated with the rotated non-compressible data stream from the storage device, wherein the restored data associated with the non-compressible data stream comprises the plurality of data blocks;

determining the first constrained prime number based at least in part on a difference between a first pair of non-consecutive values from the restored data associated with the rotated non-compressible data stream;

determining the second constrained prime number based at least in part on a difference between a second pair of non-consecutive values from the restored data associated with the rotated non-compressible data stream; and

verifying an accuracy and/or reliability of the storage device, wherein to verify the accuracy and/or reliability of the storage device, the restored data associated with the rotated non-compressible data stream is verified by using the determined first constrained prime number and the determined second constrained prime number.

7. The method of claim 6 , wherein the data structure comprises an array of constrained prime numbers.

8. The method of claim 6 , wherein the data structure comprises an array of prime numbers.

9. The method of claim 6 , wherein the portion of the non-compressible data stream is rotated left.

10. The method of claim 6 , wherein the portion of the non-compressible data stream is rotated right.

11. A computer program product for generating a large non-compressible data stream by rotating bit values, the computer program product embodied in a nontransitory computer readable storage medium and comprising computer instructions for:

receiving an initialization parameter;

determining a first constrained prime number and a second constrained prime number, wherein a constrained prime number comprises a plurality of component values, wherein each of the plurality of component values comprises a prime number, wherein each of the plurality of component values is different;

generating a non-compressible data stream comprising a plurality of data blocks at least in part by:

generating a first non-compressible sequence based at least in part on the initialization parameter and the first constrained prime number;

generating a second non-compressible sequence based at least in part on the initialization parameter and the second constrained prime number, wherein the first and second non-compressible sequences are each comprised of a non-repeating sequence of numbers; and

merging the first non-compressible sequence and the second non-compressible sequence to generate the non-compressible data stream, wherein values of the non-compressible data stream alternate between values of the first non-compressible sequence and values of the second non-compressible sequence;

determining a data structure index from a plurality of bits within at least one of a plurality of byte values from the non-compressible data stream;

retrieving a rotation value from a data structure, wherein the rotation value is stored in the data structure at the data structure index;

rotating a portion of the non-compressible data stream based on the rotation value to form a rotated non-compressible data stream, the rotated non-compressible data stream comprising the plurality of data blocks; and

sending the rotated non-compressible data stream to be stored at a storage device wherein the storage device is configured to store all of the plurality of data blocks in response to determining that none of the data blocks have been already stored at the storage device;

receiving restored data associated with the rotated non-compressible data stream from the storage device, wherein the restored data associated with the non-compressible data stream comprises the plurality of data blocks;

determining the first constrained prime number based at least in part on a difference between a first pair of non-consecutive values from the restored data associated with the rotated non-compressible data stream;

determining the second constrained prime number based at least in part on a difference between a second pair of non-consecutive values from the restored data associated with the rotated non-compressible data stream; and

verifying an accuracy and/or reliability of the storage device, wherein to verify the accuracy and/or reliability of the storage device, the restored data associated with the rotated non-compressible data stream is verified by using the determined first constrained prime number and the determined second constrained prime number.

12. The computer program product of claim 11 , wherein the data structure comprises an array of constrained prime numbers.

13. The computer program product of claim 11 , wherein the data structure comprises an array of prime numbers.

14. The computer program product of claim 11 , wherein the portion of the non-compressible data stream is rotated left.

15. The computer program product of claim 11 , wherein the portion of the non-compressible data stream is rotated right.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2017
From: DANGI, SALIL; ZARBOCK, JAMES; DAZA, ERNEST
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041166/0792 →
Continuity (1)
Continuation In Part 14489317 · Sep 17, 2014
Cited By (3)
US 12,242,446 US 12,287,733 US 12,572,330