MLchartDataset catalogue

Patent · US10263637B2 · B2 · US

Technologies for performing speculative decompression

(11) Publication number
US10263637B2
(21) Application number
15/854,261
(22) Filing date
2017-12-26
(30) Priority date
2016-07-22
(43) Publication date
2019-04-16
(45) Date of grant
2019-04-16
(51) IPC
B25J 15/00; B65G 1/04; G02B 6/38; G02B 6/42; G02B 6/44; G05D 23/19; G05D 23/20; G06F 1/18; G06F 11/14; G06F 11/34; G06F 12/0862; G06F 12/0893; G06F 12/10; G06F 12/109; G06F 12/14; G06F 13/16; G06F 13/40; G06F 13/42; G06F 15/80; G06F 3/06; G06F 8/65; G06F 9/4401; G06F 9/50; G06Q 10/00; G06Q 10/06; G06Q 10/08; G06Q 50/04; G07C 5/00; G08C 17/02; G11C 11/56; G11C 14/00; G11C 5/02; G11C 5/06; G11C 7/10; H03M 7/30; H03M 7/40; H04B 10/25; H04L 12/24; H04L 12/26; H04L 12/28; H04L 12/751; H04L 12/781; H04L 12/851; H04L 12/911; H04L 12/919; H04L 12/927; H04L 12/931; H04L 12/933; H04L 12/939; H04L 12/947; H04L 29/06; H04L 29/08; H04L 29/12; H04L 9/06; H04L 9/14; H04L 9/32; H04Q 1/04; H04Q 11/00; H04W 4/02; H04W 4/80; H05K 1/02; H05K 1/18; H05K 13/04; H05K 5/02; H05K 7/14; H05K 7/20
(52) CPC
  • G06F Electric digital data processing: 3/061, 1/183, 1/20, 11/141, 11/3414, 12/0862, 12/0893, 12/10, 12/109, 12/1408, 13/161, 13/1668, 13/1694, 13/385, 13/4022, 13/4068, 13/409, 13/42, 13/4282, 15/161, 15/8061, 16/1748, 16/9014, 17/30949, 2209/483, 2209/5019, 2209/5022, 2212/1008, 2212/1024, 2212/1041, 2212/1044, 2212/152, 2212/202, 2212/401, 2212/402, 2212/7207, 3/0611, 3/0613, 3/0616, 3/0619, 3/0625, 3/0631, 3/0638, 3/064, 3/0647, 3/065, 3/0653, 3/0655, 3/0658, 3/0659, 3/0664, 3/0665, 3/067, 3/0673, 3/0679, 3/0683, 3/0688, 3/0689, 8/65, 9/30036, 9/3887, 9/4401, 9/4881, 9/5016, 9/5027, 9/5044, 9/505, 9/5072, 9/5077, 9/544
  • B25J Manipulators; chambers provided with manipulation devices: 15/0014
  • B65G Transport or storage devices, e.g. conveyors for loading or tipping, shop conveyor systems or pneumatic tube conveyors: 1/0492
  • G02B Optical elements, systems or apparatus: 6/3882, 6/3893, 6/3897, 6/4292, 6/4452
  • G05D Systems for controlling or regulating non-electric variables: 23/1921, 23/2039
  • G06Q Information and communication technology [ICT] specially adapted for administrative, commercial, financial, managerial or supervisory purposes; systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not otherwise provided for: 10/06, 10/06314, 10/087, 10/20, 50/04
  • G07C Time or attendance registers; registering or indicating the working of machines; generating random numbers; voting or lottery apparatus; arrangements, systems or apparatus for checking not provided for elsewhere: 5/008
  • G08C Transmission systems for measured values, control or similar signals: 17/02, 2200/00
  • G11C Static stores: 11/56, 14/0009, 5/02, 5/06, 7/1072
  • H03M Coding; decoding; code conversion in general: 7/30, 7/3084, 7/3086, 7/40, 7/4031, 7/4056, 7/4081, 7/6005, 7/6023
  • H04B Transmission: 10/25, 10/2504, 10/25891
  • H04J Multiplex communication: 14/00
  • H04L Transmission of digital information, e.g. telegraphic communication: 12/2809, 29/12009, 41/024, 41/046, 41/0813, 41/082, 41/0896, 41/12, 41/145, 41/147, 41/149, 41/40, 41/5019, 43/065, 43/08, 43/0817, 43/0876, 43/0894, 43/16, 45/02, 45/52, 47/24, 47/38, 47/765, 47/782, 47/805, 47/82, 47/823, 47/83, 49/00, 49/15, 49/25, 49/35, 49/357, 49/45, 49/555, 61/00, 67/02, 67/10, 67/1004, 67/1008, 67/1012, 67/1014, 67/1029, 67/1034, 67/1097, 67/12, 67/16, 67/306, 67/34, 67/51, 69/04, 69/18, 69/329, 9/0643, 9/14, 9/3247, 9/3263
  • H04Q Selecting: 1/04, 1/09, 11/00, 11/0003, 11/0005, 11/0062, 11/0071, 2011/0037, 2011/0041, 2011/0052, 2011/0073, 2011/0079, 2011/0086, 2213/13523, 2213/13527
  • H04W Wireless communication networks: 4/023, 4/80
  • H05K Printed circuits; casings or constructional details of electric apparatus; manufacture of assemblages of electrical components: 1/0203, 1/181, 13/0486, 2201/066, 2201/10121, 2201/10159, 2201/10189, 5/0204, 7/1418, 7/1421, 7/1422, 7/1442, 7/1447, 7/1461, 7/1485, 7/1487, 7/1489, 7/1491, 7/1492, 7/1498, 7/2039, 7/20709, 7/20727, 7/20736, 7/20745, 7/20836
  • Y02D Climate change mitigation technologies in information and communication technologies [ICT], i.e. information and communication technologies aiming at the reduction of their own energy use: 10/00
  • Y02P Climate change mitigation technologies in the production or processing of goods: 90/30
  • Y04S Systems integrating technologies related to power network operation, communication or information technologies for improving the electrical power generation, transmission, distribution, management or usage, i.e. smart grids: 10/50, 10/52
  • Y10S Technical subjects covered by former uspc cross-reference art collections [xracs] and digests: 901/01, 901/30
(73) Assignee
Intel Corp
(72) Inventors
Vinodh Gopal; James D. Guilford; Kirk S. Yap
(54) Title
Technologies for performing speculative decompression
(57) 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.

Full text
View on Google Patents

Claims (22)

  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.

Description

In a typical data center, multiple compute devices may coordinate through a network to execute workloads (e.g., applications, processes, threads, etc.) requested by a client device (e.g., a customer). In executing the workloads, the compute devices may retrieve and store data from and to data storage devices through the network. To increase the speed of communicating the data through the network, the data may be compressed prior to transmission (e.g., retrieved in a compressed form from a data storage device). However, clock cycles are then spent on the receiving compute device to decompress the data. The time spent decompressing the data may adversely affect the speed at which the corresponding workload is executed.

A popular form of compression is entropy encoding, such as Huffman encoding. Decompressing a Huffman encoded data set is typically a sequential process in which a compute device initially parses a data structure known as a tree descriptor. The tree descriptor indicates multiple variable size codes and associated symbols, and the sizes of the codes are inversely proportional to the frequency of the symbols in the decompressed form of the data (e.g., characters, numbers, pointers to other sections of the data, etc.). Decompression proceeds by replacing each variable size code with the corresponding symbol. However, given that the codes are of variable size, the position of the next variable size code in the compressed data set is unknown until the variable size code at the present position is decoded (e.g., the corresponding symbol is identified).

Citations (6)

  • US5757295A
  • US6043765A
  • US8610604B2
  • US20150227565A1
  • US9252805B1
  • US9484954B1
Record as JSON
{
  "publication_number": "US10263637B2",
  "country": "US",
  "kind": "B2",
  "title": "Technologies for performing speculative decompression",
  "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": [
    "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."
  ],
  "description_excerpt": "In a typical data center, multiple compute devices may coordinate through a network to execute workloads (e.g., applications, processes, threads, etc.) requested by a client device (e.g., a customer). In executing the workloads, the compute devices may retrieve and store data from and to data storage devices through the network. To increase the speed of communicating the data through the network, the data may be compressed prior to transmission (e.g., retrieved in a compressed form from a data storage device). However, clock cycles are then spent on the receiving compute device to decompress the data. The time spent decompressing the data may adversely affect the speed at which the corresponding workload is executed.\n\nA popular form of compression is entropy encoding, such as Huffman encoding. Decompressing a Huffman encoded data set is typically a sequential process in which a compute device initially parses a data structure known as a tree descriptor. The tree descriptor indicates multiple variable size codes and associated symbols, and the sizes of the codes are inversely proportional to the frequency of the symbols in the decompressed form of the data (e.g., characters, numbers, pointers to other sections of the data, etc.). Decompression proceeds by replacing each variable size code with the corresponding symbol. However, given that the codes are of variable size, the position of the next variable size code in the compressed data set is unknown until the variable size code at the present position is decoded (e.g., the corresponding symbol is identified).",
  "cpc": [
    "G06F 3/061",
    "B25J 15/0014",
    "B65G 1/0492",
    "G02B 6/3882",
    "G02B 6/3893",
    "G02B 6/3897",
    "G02B 6/4292",
    "G02B 6/4452",
    "G05D 23/1921",
    "G05D 23/2039",
    "G06F 1/183",
    "G06F 1/20",
    "G06F 11/141",
    "G06F 11/3414",
    "G06F 12/0862",
    "G06F 12/0893",
    "G06F 12/10",
    "G06F 12/109",
    "G06F 12/1408",
    "G06F 13/161",
    "G06F 13/1668",
    "G06F 13/1694",
    "G06F 13/385",
    "G06F 13/4022",
    "G06F 13/4068",
    "G06F 13/409",
    "G06F 13/42",
    "G06F 13/4282",
    "G06F 15/161",
    "G06F 15/8061",
    "G06F 16/1748",
    "G06F 16/9014",
    "G06F 17/30949",
    "G06F 2209/483",
    "G06F 2209/5019",
    "G06F 2209/5022",
    "G06F 2212/1008",
    "G06F 2212/1024",
    "G06F 2212/1041",
    "G06F 2212/1044",
    "G06F 2212/152",
    "G06F 2212/202",
    "G06F 2212/401",
    "G06F 2212/402",
    "G06F 2212/7207",
    "G06F 3/0611",
    "G06F 3/0613",
    "G06F 3/0616",
    "G06F 3/0619",
    "G06F 3/0625",
    "G06F 3/0631",
    "G06F 3/0638",
    "G06F 3/064",
    "G06F 3/0647",
    "G06F 3/065",
    "G06F 3/0653",
    "G06F 3/0655",
    "G06F 3/0658",
    "G06F 3/0659",
    "G06F 3/0664",
    "G06F 3/0665",
    "G06F 3/067",
    "G06F 3/0673",
    "G06F 3/0679",
    "G06F 3/0683",
    "G06F 3/0688",
    "G06F 3/0689",
    "G06F 8/65",
    "G06F 9/30036",
    "G06F 9/3887",
    "G06F 9/4401",
    "G06F 9/4881",
    "G06F 9/5016",
    "G06F 9/5027",
    "G06F 9/5044",
    "G06F 9/505",
    "G06F 9/5072",
    "G06F 9/5077",
    "G06F 9/544",
    "G06Q 10/06",
    "G06Q 10/06314",
    "G06Q 10/087",
    "G06Q 10/20",
    "G06Q 50/04",
    "G07C 5/008",
    "G08C 17/02",
    "G08C 2200/00",
    "G11C 11/56",
    "G11C 14/0009",
    "G11C 5/02",
    "G11C 5/06",
    "G11C 7/1072",
    "H03M 7/30",
    "H03M 7/3084",
    "H03M 7/3086",
    "H03M 7/40",
    "H03M 7/4031",
    "H03M 7/4056",
    "H03M 7/4081",
    "H03M 7/6005",
    "H03M 7/6023",
    "H04B 10/25",
    "H04B 10/2504",
    "H04B 10/25891",
    "H04J 14/00",
    "H04L 12/2809",
    "H04L 29/12009",
    "H04L 41/024",
    "H04L 41/046",
    "H04L 41/0813",
    "H04L 41/082",
    "H04L 41/0896",
    "H04L 41/12",
    "H04L 41/145",
    "H04L 41/147",
    "H04L 41/149",
    "H04L 41/40",
    "H04L 41/5019",
    "H04L 43/065",
    "H04L 43/08",
    "H04L 43/0817",
    "H04L 43/0876",
    "H04L 43/0894",
    "H04L 43/16",
    "H04L 45/02",
    "H04L 45/52",
    "H04L 47/24",
    "H04L 47/38",
    "H04L 47/765",
    "H04L 47/782",
    "H04L 47/805",
    "H04L 47/82",
    "H04L 47/823",
    "H04L 47/83",
    "H04L 49/00",
    "H04L 49/15",
    "H04L 49/25",
    "H04L 49/35",
    "H04L 49/357",
    "H04L 49/45",
    "H04L 49/555",
    "H04L 61/00",
    "H04L 67/02",
    "H04L 67/10",
    "H04L 67/1004",
    "H04L 67/1008",
    "H04L 67/1012",
    "H04L 67/1014",
    "H04L 67/1029",
    "H04L 67/1034",
    "H04L 67/1097",
    "H04L 67/12",
    "H04L 67/16",
    "H04L 67/306",
    "H04L 67/34",
    "H04L 67/51",
    "H04L 69/04",
    "H04L 69/18",
    "H04L 69/329",
    "H04L 9/0643",
    "H04L 9/14",
    "H04L 9/3247",
    "H04L 9/3263",
    "H04Q 1/04",
    "H04Q 1/09",
    "H04Q 11/00",
    "H04Q 11/0003",
    "H04Q 11/0005",
    "H04Q 11/0062",
    "H04Q 11/0071",
    "H04Q 2011/0037",
    "H04Q 2011/0041",
    "H04Q 2011/0052",
    "H04Q 2011/0073",
    "H04Q 2011/0079",
    "H04Q 2011/0086",
    "H04Q 2213/13523",
    "H04Q 2213/13527",
    "H04W 4/023",
    "H04W 4/80",
    "H05K 1/0203",
    "H05K 1/181",
    "H05K 13/0486",
    "H05K 2201/066",
    "H05K 2201/10121",
    "H05K 2201/10159",
    "H05K 2201/10189",
    "H05K 5/0204",
    "H05K 7/1418",
    "H05K 7/1421",
    "H05K 7/1422",
    "H05K 7/1442",
    "H05K 7/1447",
    "H05K 7/1461",
    "H05K 7/1485",
    "H05K 7/1487",
    "H05K 7/1489",
    "H05K 7/1491",
    "H05K 7/1492",
    "H05K 7/1498",
    "H05K 7/2039",
    "H05K 7/20709",
    "H05K 7/20727",
    "H05K 7/20736",
    "H05K 7/20745",
    "H05K 7/20836",
    "Y02D 10/00",
    "Y02P 90/30",
    "Y04S 10/50",
    "Y04S 10/52",
    "Y10S 901/01",
    "Y10S 901/30"
  ],
  "ipc": [
    "B25J 15/00",
    "B65G 1/04",
    "G02B 6/38",
    "G02B 6/42",
    "G02B 6/44",
    "G05D 23/19",
    "G05D 23/20",
    "G06F 1/18",
    "G06F 11/14",
    "G06F 11/34",
    "G06F 12/0862",
    "G06F 12/0893",
    "G06F 12/10",
    "G06F 12/109",
    "G06F 12/14",
    "G06F 13/16",
    "G06F 13/40",
    "G06F 13/42",
    "G06F 15/80",
    "G06F 3/06",
    "G06F 8/65",
    "G06F 9/4401",
    "G06F 9/50",
    "G06Q 10/00",
    "G06Q 10/06",
    "G06Q 10/08",
    "G06Q 50/04",
    "G07C 5/00",
    "G08C 17/02",
    "G11C 11/56",
    "G11C 14/00",
    "G11C 5/02",
    "G11C 5/06",
    "G11C 7/10",
    "H03M 7/30",
    "H03M 7/40",
    "H04B 10/25",
    "H04L 12/24",
    "H04L 12/26",
    "H04L 12/28",
    "H04L 12/751",
    "H04L 12/781",
    "H04L 12/851",
    "H04L 12/911",
    "H04L 12/919",
    "H04L 12/927",
    "H04L 12/931",
    "H04L 12/933",
    "H04L 12/939",
    "H04L 12/947",
    "H04L 29/06",
    "H04L 29/08",
    "H04L 29/12",
    "H04L 9/06",
    "H04L 9/14",
    "H04L 9/32",
    "H04Q 1/04",
    "H04Q 11/00",
    "H04W 4/02",
    "H04W 4/80",
    "H05K 1/02",
    "H05K 1/18",
    "H05K 13/04",
    "H05K 5/02",
    "H05K 7/14",
    "H05K 7/20"
  ],
  "assignees": [
    "Intel Corp"
  ],
  "inventors": [
    "Vinodh Gopal",
    "James D. Guilford",
    "Kirk S. Yap"
  ],
  "filing_date": "2017-12-26",
  "publication_date": "2019-04-16",
  "grant_date": "2019-04-16",
  "priority_date": "2016-07-22",
  "application_number": "US-201715854261-A",
  "family_id": "60804962",
  "cited_by_count": 15,
  "citations": [
    "US5757295A",
    "US6043765A",
    "US8610604B2",
    "US20150227565A1",
    "US9252805B1",
    "US9484954B1"
  ]
}

Record 2,901 of 8,000 in Patents full text (MLC-0201). Request the full dataset.