IP Library › Granted Patent US 10,235,134
Granted Patent B1
US 10,235,134 · App. 15/420,614 · Granted Mar 19, 2019

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

Inventors: Salil Dangi (Mission Viejo, CA); James Zarbock (El Toro, CA); Ernest Daza (Ranco Santa Margarita, CA)
Assignee: EMC IP Holding Company LLC
G06F5/01G06F7/14G06F17/30303G06F17/30371
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,235,134
App. No.
15/420,614
Filed
Jan 31, 2017
Granted
Mar 19, 2019
Kind
B1
Art Unit
2182
USPC
708/203
Abstract

Generating non-compressible data streams is disclosed, including: receiving an initialization parameter; determining at least one constrained prime number; generating a sequence comprising a plurality of byte values based at least in part on the initialization parameter and the constrained prime number; determining a rotation value; 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 (56)

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 comprising a plurality of byte values 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 rotation value;

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

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 , further comprising identifying the portion of the sequence.

3. The system of claim 2 , wherein the rotation value comprises a value of a number of bits within the portion of the sequence.

4. The system of claim 3 , wherein the number of bits are at the end of a byte value.

5. The system of claim 1 , wherein rotating a portion of the sequence comprises rotating a plurality of bit values comprising the portion of the sequence.

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 comprising a plurality of byte values 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 rotation value; and

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

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 , further comprising identifying the portion of the sequence.

8. The method of claim 7 , wherein the rotation value comprises a value of a number of bits within the portion of the sequence.

9. The method of claim 8 , wherein the number of bits are at the end of a byte value.

10. The method of claim 6 , wherein rotating a portion of the sequence comprises rotating a plurality of bit values comprising the portion of the sequence.

11. A computer program product for generating a large non-compressible data stream by rotating bit values, the computer program product embodied in a non-transitory 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 comprising a plurality of byte values 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 rotation value;

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

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 , further comprising identifying the portion of the sequence.

13. The computer program product of claim 12 , wherein the rotation value comprises a value of a number of bits within the portion of the sequence.

14. The computer program product of claim 13 , wherein the number of bits are at the end of a byte value.

15. The computer program product of claim 11 , wherein rotating a portion of the sequence comprises rotating a plurality of bit values comprising the portion of the sequence.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
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/0713 →
Continuity (1)
Continuation In Part 14489317 · Sep 17, 2014
Cited By (4)
US 12,242,446 US 12,287,733 US 12,395,471 US 12,572,330