IP Library › Granted Patent US 10,263,637
Granted Patent B2
US 10,263,637 · App. 15/854,261 · Granted Apr 16, 2019

Technologies for performing speculative decompression

Inventors: Vinodh Gopal (Westborough, MA); James D. Guilford (Nrthborough, MA); Kirk S. Yap (Westborough, MA)
Assignee: Intel Corporation
H03M7/3084B25J15/0014B65G1/0492G02B6/3882G02B6/3893G02B6/3897G02B6/4292G02B6/4452G05D23/1921G05D23/2039G06F1/183G06F3/061G06F3/064G06F3/067G06F3/0611G06F3/0616G06F3/0619G06F3/0625G06F3/0631G06F3/0638G06F3/0647G06F3/0653G06F3/0658G06F3/0659G06F3/0664G06F3/0665G06F3/0673G06F3/0679G06F3/0683G06F3/0688G06F3/0689G06F8/65G06F9/4401G06F9/505G06F9/5016G06F9/5044G06F9/5072G06F9/5077G06F11/141G06F11/3414G06F12/0862G06F12/0893G06F12/10G06F12/109G06F12/1408G06F13/161G06F13/1668G06F13/1694G06F13/409G06F13/4022G06F13/4068G06F13/42G06F13/4282G06F15/8061G06F17/30949G06Q10/06G06Q10/06314G07C5/008G08C17/02G11C5/02G11C5/06G11C7/1072G11C11/56G11C14/0009H03M7/30H03M7/3086H03M7/40H03M7/4031H03M7/4056H03M7/4081H03M7/6005H03M7/6023H04B10/2504H04L9/0643H04L9/14H04L9/3247H04L9/3263H04L12/2809H04L29/12009H04L41/024H04L41/046H04L41/082H04L41/0813H04L41/0896H04L41/145H04L41/147H04L43/08H04L43/0817H04L43/0876H04L43/0894H04L43/16H04L45/02H04L45/52H04L47/24H04L47/765H04L47/782H04L47/805H04L47/82H04L47/823H04L49/00H04L49/15H04L49/25H04L49/357H04L49/45H04L49/555H04L67/02H04L67/10H04L67/1004H04L67/1008H04L67/1012H04L67/1014H04L67/1029H04L67/1034H04L67/1097H04L67/12H04L67/16H04L67/306H04L67/34H04L69/04H04L69/329H04Q1/04H04Q11/00H04Q11/0003H04Q11/0005H04Q11/0062H04Q11/0071H04W4/023H05K1/0203H05K1/181H05K5/0204H05K7/1418H05K7/1421H05K7/1422H05K7/1447H05K7/1461H05K7/1487H05K7/1489H05K7/1491H05K7/1492H05K7/1498H05K7/2039H05K7/20709H05K7/20727H05K7/20736H05K7/20745H05K7/20836H05K13/0486G06F2209/5019G06F2209/5022G06F2212/1008G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/152G06F2212/202G06F2212/401G06F2212/402G06F2212/7207G06Q10/087G06Q10/20G06Q50/04G08C2200/00H04B10/25H04L41/12H04L41/5019H04L43/065H04Q2011/0037H04Q2011/0041H04Q2011/0052H04Q2011/0073H04Q2011/0079H04Q2011/0086H04Q2213/13523H04Q2213/13527H04W4/80H05K7/1485H05K2201/066H05K2201/10121H05K2201/10159H05K2201/10189Y10S901/01
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,263,637
App. No.
15/854,261
Granted
Apr 16, 2019
Kind
B2
Abstract

Technologies for performing speculative decompression include a managed node to decode a variable size code at a present position in compressed data with a deterministic decoder and concurrently perform speculative decodes over a range of subsequent positions in the compressed data, determine the position of the next code, determine whether the position of the next code is within the range, and output, in response to a determination that the position of the next code is within the range, a symbol associated with the deterministically decoded code and another symbol associated with a speculatively decoded code at the position of the next code.

Claims (38)

1. A compute device for speculatively decompressing data, the compute device comprising:

a deterministic decoder;

one or more speculative decoders; and

a decompression manager to:

determine a size of a smallest variable size code in a set of compressed data from a header of the compressed data;

decode a variable size code at a present position in the compressed data with the deterministic decoder and concurrently perform speculative decodes over a range of subsequent positions in the compressed data with the one or more speculative decoders;

output a first symbol associated with the deterministically decoded code and a second symbol associated with a speculatively decoded code.

2. The compute device of claim 1 , wherein the decompression manager is further to:

obtain the compressed data, wherein the compressed data is compressed with one or more trees; and

read the header of the compressed data, to determine the size of the smallest variable sized code, wherein the header includes a tree descriptor indicative of variable size codes associated with symbols in the compressed data.

3. The compute device of claim 2 , wherein to obtain the compressed data comprises to obtain data compressed with one or more Huffman trees.

4. The compute device of claim 2 , wherein to obtain the compressed data comprises to obtain data compressed with a literal-length tree indicative of codes that correspond with literal symbols and length symbols, and a distance tree indicative of codes that correspond with distance symbols.

5. The compute device of claim 4 , wherein to determine the size of the smallest variable size code comprises to determine one or more of a size of the smallest code associated with a literal symbol, a size of the smallest code associated with a length symbol, or a size of the smallest code associated with a distance symbol.

6. The compute device of claim 2 , wherein to read the header of the compressed data comprises to read a header that includes a tree descriptor of a literal-length tree indicative of codes that correspond to literal symbols and length symbols and of a distance tree indicative of codes that correspond with distance symbols.

7. The compute device of claim 1 , wherein the deterministic decoder comprises a distance decoder and a literal-length decoder, and to decode the variable size code at a present position with the deterministic decoder comprises to select, as a function of a previously decoded code, one of the distance decoder or the literal-length decoder to perform the decode at the present position.

8. The compute device of claim 1 , wherein to perform the speculative decodes over the range of subsequent positions comprises to perform speculative decodes with literal-length decoders and distance decoders for multiple offsets from the present position in the compressed data.

9. The compute device of claim 1 , wherein to perform the speculative decodes over the range of subsequent positions comprises to perform speculative decodes with literal-length decoders over one range of offsets from the present position and with distance decoders over a different range of offsets from the present position.

10. The compute device of claim 9 , wherein to perform the speculative decodes with literal-length decoders over one range of offsets comprises to perform speculative decodes of codes associated with literal symbols and length symbols over a range of offsets determined as a function of the smallest code size associated with a literal symbol.

11. The compute device of claim 9 , wherein to perform the speculative decodes with distance decoders over the different range of offsets comprises to perform speculative decodes of codes associated with distance symbols over a range of offsets determined as a function of the smallest code size associated with a length symbol.

12. One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, when executed by a compute device, cause the compute device to:

determine a size of a smallest variable size code in a set of compressed data from a header of the compressed data;

decode a variable size code at a present position in the compressed data with a deterministic decoder and concurrently perform speculative decodes over a range of subsequent positions in the compressed data with one or more speculative decoders;

output a first symbol associated with the deterministically decoded code and a second symbol associated with a speculatively decoded code.

13. The one or more non-transitory machine-readable storage media of claim 12 , wherein the plurality of instructions, when executed, further cause the compute device to:

obtain the compressed data, wherein the compressed data is compressed with one or more trees;

read the header of the compressed data, to determine the size of the smallest variable sized code, wherein the header includes a tree descriptor indicative of variable size codes associated with symbols in the compressed data.

14. The one or more non-transitory machine-readable storage media of claim 13 , wherein to obtain the compressed data comprises to obtain data compressed with one or more Huffman trees.

15. The one or more non-transitory machine-readable storage media of claim 13 , wherein to obtain the compressed data comprises to obtain data compressed with a literal-length tree indicative of codes that correspond with literal symbols and length symbols, and a distance tree indicative of codes that correspond with distance symbols.

16. The one or more non-transitory machine-readable storage media of claim 13 , wherein to read the header of the compressed data comprises to read a header that includes a tree descriptor of a literal-length tree indicative of codes that correspond to literal symbols and length symbols and of a distance tree indicative of codes that correspond with distance symbols.

17. The one or more non-transitory machine-readable storage media of claim 16 , wherein to determine the size of the smallest variable size code comprises to determine one or more of a size of the smallest code associated with a literal symbol, a size of the smallest code associated with a length symbol, or a size of the smallest code associated with a distance symbol.

18. The one or more non-transitory machine-readable storage media of claim 12 , wherein the deterministic decoder comprises a distance decoder and a literal-length decoder, and to decode the variable size code at a present position with the deterministic decoder comprises to select, as a function of a previously decoded code, one of the distance decoder or the literal-length decoder to perform the decode at the present position.

19. The one or more non-transitory machine-readable storage media of claim 12 , wherein to perform the speculative decodes over the range of subsequent positions comprises to perform speculative decodes with literal-length decoders and distance decoders for multiple offsets from the present position in the compressed data.

20. The one or more non-transitory machine-readable storage media of claim 12 , wherein to perform the speculative decodes over the range of subsequent positions comprises to perform speculative decodes with literal-length decoders over one range of offsets from the present position and with distance decoders over a different range of offsets from the present position.

21. The one or more non-transitory machine-readable storage media of claim 20 , wherein to perform the speculative decodes with literal-length decoders over one range of offsets comprises to perform speculative decodes of codes associated with literal symbols and length symbols over a range of offsets determined as a function of the smallest code size associated with a literal symbol.

22. A method for speculatively decompressing data, the method comprising:

determining, by a compute device, a size of a smallest variable size code in a set of compressed data from a header of the compressed data;

decoding, by the compute device, a variable size code at a present position in the compressed data with a deterministic decoder and concurrently performing speculative decodes over a range of subsequent positions in the compressed data with one or more speculative decoders;

outputting, by the compute device, a first symbol associated with the deterministically decoded code and a second symbol associated with a speculatively decoded code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2018
From: GOPAL, VINODH; GUILFORD, JAMES D.; YAP, KIRK S.
To: INTEL CORPORATION
Reel/Frame 045102/0332 →
Continuity (5)
Continuation 15473778 · Mar 30, 2017
Provisional Application 62365969 · Jul 22, 2016
Provisional Application 62376859 · Aug 18, 2016
Provisional Application 62427268 · Nov 29, 2016
Related Publication 20180205392A1 · Jul 19, 2018
Cited By (4)
US 12,261,940 US 12,288,101 US 12,506,817 US 12,619,465