Patent · US10116327B2 · B2 · US
Technologies for efficiently compressing data with multiple hash tables
- (11) Publication number
- US10116327B2
- (21) Application number
- 15/638,842
- (22) Filing date
- 2017-06-30
- (30) Priority date
- 2016-07-22
- (43) Publication date
- 2018-10-30
- (45) Date of grant
- 2018-10-30
- (51) IPC
- G06F 17/30; H03M 7/30
- (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
- 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/25891
- H04J Multiplex communication: 14/00
- H04L Transmission of digital information, e.g. telegraphic communication: 12/2809, 41/024, 41/046, 41/0813, 41/082, 41/12, 41/145, 41/149, 41/40, 41/5019, 43/065, 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/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/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
- Daniel F. Cutter; Vinodh Gopal; James D. Guilford
- (54) Title
- Technologies for efficiently compressing data with multiple hash tables
- (57) Abstract
Technologies for compressing data with multiple hash tables include a compute device. The compute device is to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash. Each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols. The compute device is also to write, to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash. Each hash is usable as an index into the associated hash table to provide the present position of the string.
- Full text
- View on Google Patents
Claims (25)
- A compute device comprising: one or more processors; and a memory having stored therein a plurality of instructions that, when executed by the one or more processors, cause the compute device to: produce, for each of multiple string prefixes of different string prefix sizes, an associated hash, wherein each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols; and write, to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash, wherein each hash is usable as an index into an associated hash table to provide the present position of the string.
- The compute device of claim 1, wherein the plurality of instructions, when executed, further cause the compute device to search, with the associated hashes as indexes into the associated hash tables and in an order based on the string prefix sizes associated with the associated hashes, for a string at a previous position in the input stream that matches the string at the present position.
- The compute device of claim 2, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to an identification of a matched string, a reference to the matched string in a set of compressed output data.
- The compute device of claim 3, wherein the plurality of instructions, when executed, further cause the compute device to select, in response to a determination that multiple strings match the string at the present position, the longest matched string as the result of the search.
- The compute device of claim 2, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to a determination that a matched string has not been identified, the symbol at the present position to a set of compressed output data.
- The compute device of claim 2, wherein to search for a string at a previous position that matches the string at the present position comprises to: obtain a chain of pointers from one or more of the different hash tables; and compare the string referenced by each pointer in the chain of pointers to the string at the present position in the input stream.
- The compute device of claim 6, wherein to obtain the chain of pointers comprises to obtain a chain of pointers that are ordered as a function of the associated string prefix sizes on which the associated hashes are based.
- The compute device of claim 1, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash for each of a string prefix size of five symbols, a string prefix size of four symbols, and a string prefix size of three symbols.
- The compute device of claim 1, wherein to produce, for each of multiple string prefixes of different string prefix sizes, the associated hash comprises to produce a hash for each of a string prefix size of five bytes, a string prefix size of four bytes, and a string prefix size of three bytes.
- The compute device of claim 1, wherein to produce, for each of multiple string prefixes of different string prefix sizes, the associated hash comprises to produce a hash in which a lower subset of bits in the hash defines an identifier of a bank and a remainder of the bits in the hash define an index into the bank.
- The compute device of claim 1, wherein to write, to a different hash table for each string prefix size, a pointer to the present position comprises to write a pointer to the present position to a first hash table for hashes based on string prefixes of five symbols, a second hash table for hashes based on string prefixes of four symbols, and a third hash table for hashes based on string prefixes of three symbols.
- The compute device of claim 11, wherein to write a pointer to the first hash table comprises to evict one or more pointers from the first hash table to a spill table before the pointer to the present position is written to the first hash table.
- One or more machine-readable storage media comprising a plurality of instructions stored thereon that, when executed by a compute device cause the compute device to: produce, for each of multiple string prefixes of different string prefix sizes, an associated hash, wherein each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols; and write, to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash, wherein each hash is usable as an index into an associated hash table to provide the present position of the string.
- The one or more machine-readable storage media of claim 13, wherein the plurality of instructions, when executed, further cause the compute device to search, with the associated hashes as indexes into the associated hash tables and in an order based on the string prefix sizes associated with the hashes, for a string at a previous position in the input stream that matches the string at the present position.
- The one or more machine-readable storage media of claim 14, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to an identification of a matched string, a reference to the matched string in a set of compressed output data.
- The one or more machine-readable storage media of claim 15, wherein the plurality of instructions, when executed, further cause the compute device to select, in response to a determination that multiple strings match the string at the present position, the longest matched string as the result of the search.
- The one or more machine-readable storage media of claim 14, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to a determination that a matched string has not been identified, the symbol at the present position to a set of compressed output data.
- The one or more machine-readable storage media of claim 14, wherein to search for a string at a previous position that matches the string at the present position comprises to: obtain a chain of pointers from one or more of the different hash tables; and compare the string referenced by each pointer in the chain of pointers to the string at the present position in the input stream.
- The one or more machine-readable storage media of claim 18, wherein to obtain the chain of pointers comprises to obtain a chain of pointers that are ordered as a function of the associated string prefix sizes on which the associated hashes are based.
- The one or more machine-readable storage media of claim 13, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash for each of a string prefix size of five symbols, a string prefix size of four symbols, and a string prefix size of three symbols.
- The one or more machine-readable storage media of claim 13, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash for each of a string prefix size of five bytes, a string prefix size of four bytes, and a string prefix size of three bytes.
- The one or more machine-readable storage media of claim 13, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash in which a lower subset of bits in the hash defines an identifier of a bank and a remainder of the bits in the hash define an index into the bank.
- The one or more machine-readable storage media of claim 13, wherein to write, to a different hash table for each string prefix size, a pointer to the present position comprises to write a pointer to the present position to a first hash table for hashes based on string prefixes of five symbols, a second hash table for hashes based on string prefixes of four symbols, and a third hash table for hashes based on string prefixes of three symbols.
- A method for compressing data with multiple hash tables, the method comprising: producing, by a compute device and for each of multiple string prefixes of different string prefix sizes, an associated hash, wherein each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols; and writing, by the compute device and to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash, wherein each hash is usable as an index into an associated hash table to provide the present position of the string.
- The method of claim 24, further comprising searching, by the compute device and with the associated hashes as indexes into the associated hash tables and in an order based on the string prefix sizes associated with the hashes, for a string at a previous position in the input stream that matches the string at the present position.
Description
Compression schemes, such as Lempel-Ziv based compression schemes, are often used in data centers to compress data, thereby enabling compute devices in the data center to store more customer data in a given amount of data storage capacity and/or transmit more customer data in a given amount of network bandwidth. When compressing data pursuant to a Lempel-Ziv based scheme, the compute device searches for the longest string from a history buffer (e.g., a sliding window of previous data from an input stream) that matches a string starting at the present position in the input stream (e.g., a number of bytes into the input stream). To do so, the compute device typically produces a hash by performing a hashing function on a prefix of a string of symbols (e.g., each a byte or other unit of data) starting at a present position and including a predefined number of additional symbols from the input stream. In typical systems, the total length of the prefix is three symbols. Typical systems then use the resulting hash as an index into a hash table that includes, for each hash, a set of pointers that point to other strings in the history buffer that produced the same hash.
The compute device, in typical compression systems, then compares one or more of the strings associated with the pointers found in the hash table to the string at the present position to find one or more matches, and selects the longest matching string. The compute device then replaces the symbols in the string at the present position with a much shorter reference back to the earlier occurrence of the string, to produce compressed output data.
Citations (4)
- US6226628B1
- US7398278B2
- US20150098470A1
- US20170187624A1
Record as JSON
{
"publication_number": "US10116327B2",
"country": "US",
"kind": "B2",
"title": "Technologies for efficiently compressing data with multiple hash tables",
"abstract": "Technologies for compressing data with multiple hash tables include a compute device. The compute device is to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash. Each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols. The compute device is also to write, to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash. Each hash is usable as an index into the associated hash table to provide the present position of the string.",
"claims": [
"1. A compute device comprising: one or more processors; and a memory having stored therein a plurality of instructions that, when executed by the one or more processors, cause the compute device to: produce, for each of multiple string prefixes of different string prefix sizes, an associated hash, wherein each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols; and write, to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash, wherein each hash is usable as an index into an associated hash table to provide the present position of the string.",
"2. The compute device of claim 1, wherein the plurality of instructions, when executed, further cause the compute device to search, with the associated hashes as indexes into the associated hash tables and in an order based on the string prefix sizes associated with the associated hashes, for a string at a previous position in the input stream that matches the string at the present position.",
"3. The compute device of claim 2, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to an identification of a matched string, a reference to the matched string in a set of compressed output data.",
"4. The compute device of claim 3, wherein the plurality of instructions, when executed, further cause the compute device to select, in response to a determination that multiple strings match the string at the present position, the longest matched string as the result of the search.",
"5. The compute device of claim 2, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to a determination that a matched string has not been identified, the symbol at the present position to a set of compressed output data.",
"6. The compute device of claim 2, wherein to search for a string at a previous position that matches the string at the present position comprises to: obtain a chain of pointers from one or more of the different hash tables; and compare the string referenced by each pointer in the chain of pointers to the string at the present position in the input stream.",
"7. The compute device of claim 6, wherein to obtain the chain of pointers comprises to obtain a chain of pointers that are ordered as a function of the associated string prefix sizes on which the associated hashes are based.",
"8. The compute device of claim 1, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash for each of a string prefix size of five symbols, a string prefix size of four symbols, and a string prefix size of three symbols.",
"9. The compute device of claim 1, wherein to produce, for each of multiple string prefixes of different string prefix sizes, the associated hash comprises to produce a hash for each of a string prefix size of five bytes, a string prefix size of four bytes, and a string prefix size of three bytes.",
"10. The compute device of claim 1, wherein to produce, for each of multiple string prefixes of different string prefix sizes, the associated hash comprises to produce a hash in which a lower subset of bits in the hash defines an identifier of a bank and a remainder of the bits in the hash define an index into the bank.",
"11. The compute device of claim 1, wherein to write, to a different hash table for each string prefix size, a pointer to the present position comprises to write a pointer to the present position to a first hash table for hashes based on string prefixes of five symbols, a second hash table for hashes based on string prefixes of four symbols, and a third hash table for hashes based on string prefixes of three symbols.",
"12. The compute device of claim 11, wherein to write a pointer to the first hash table comprises to evict one or more pointers from the first hash table to a spill table before the pointer to the present position is written to the first hash table.",
"13. One or more machine-readable storage media comprising a plurality of instructions stored thereon that, when executed by a compute device cause the compute device to: produce, for each of multiple string prefixes of different string prefix sizes, an associated hash, wherein each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols; and write, to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash, wherein each hash is usable as an index into an associated hash table to provide the present position of the string.",
"14. The one or more machine-readable storage media of claim 13, wherein the plurality of instructions, when executed, further cause the compute device to search, with the associated hashes as indexes into the associated hash tables and in an order based on the string prefix sizes associated with the hashes, for a string at a previous position in the input stream that matches the string at the present position.",
"15. The one or more machine-readable storage media of claim 14, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to an identification of a matched string, a reference to the matched string in a set of compressed output data.",
"16. The one or more machine-readable storage media of claim 15, wherein the plurality of instructions, when executed, further cause the compute device to select, in response to a determination that multiple strings match the string at the present position, the longest matched string as the result of the search.",
"17. The one or more machine-readable storage media of claim 14, wherein the plurality of instructions, when executed, further cause the compute device to output, in response to a determination that a matched string has not been identified, the symbol at the present position to a set of compressed output data.",
"18. The one or more machine-readable storage media of claim 14, wherein to search for a string at a previous position that matches the string at the present position comprises to: obtain a chain of pointers from one or more of the different hash tables; and compare the string referenced by each pointer in the chain of pointers to the string at the present position in the input stream.",
"19. The one or more machine-readable storage media of claim 18, wherein to obtain the chain of pointers comprises to obtain a chain of pointers that are ordered as a function of the associated string prefix sizes on which the associated hashes are based.",
"20. The one or more machine-readable storage media of claim 13, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash for each of a string prefix size of five symbols, a string prefix size of four symbols, and a string prefix size of three symbols.",
"21. The one or more machine-readable storage media of claim 13, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash for each of a string prefix size of five bytes, a string prefix size of four bytes, and a string prefix size of three bytes.",
"22. The one or more machine-readable storage media of claim 13, wherein to produce, for each of multiple string prefixes of different string prefix sizes, an associated hash comprises to produce a hash in which a lower subset of bits in the hash defines an identifier of a bank and a remainder of the bits in the hash define an index into the bank.",
"23. The one or more machine-readable storage media of claim 13, wherein to write, to a different hash table for each string prefix size, a pointer to the present position comprises to write a pointer to the present position to a first hash table for hashes based on string prefixes of five symbols, a second hash table for hashes based on string prefixes of four symbols, and a third hash table for hashes based on string prefixes of three symbols.",
"24. A method for compressing data with multiple hash tables, the method comprising: producing, by a compute device and for each of multiple string prefixes of different string prefix sizes, an associated hash, wherein each string prefix defines a set of consecutive symbols in a string that starts at a present position in an input stream of symbols; and writing, by the compute device and to a different hash table for each string prefix size, a pointer to the present position in association with the associated hash, wherein each hash is usable as an index into an associated hash table to provide the present position of the string.",
"25. The method of claim 24, further comprising searching, by the compute device and with the associated hashes as indexes into the associated hash tables and in an order based on the string prefix sizes associated with the hashes, for a string at a previous position in the input stream that matches the string at the present position."
],
"description_excerpt": "Compression schemes, such as Lempel-Ziv based compression schemes, are often used in data centers to compress data, thereby enabling compute devices in the data center to store more customer data in a given amount of data storage capacity and/or transmit more customer data in a given amount of network bandwidth. When compressing data pursuant to a Lempel-Ziv based scheme, the compute device searches for the longest string from a history buffer (e.g., a sliding window of previous data from an input stream) that matches a string starting at the present position in the input stream (e.g., a number of bytes into the input stream). To do so, the compute device typically produces a hash by performing a hashing function on a prefix of a string of symbols (e.g., each a byte or other unit of data) starting at a present position and including a predefined number of additional symbols from the input stream. In typical systems, the total length of the prefix is three symbols. Typical systems then use the resulting hash as an index into a hash table that includes, for each hash, a set of pointers that point to other strings in the history buffer that produced the same hash.\n\nThe compute device, in typical compression systems, then compares one or more of the strings associated with the pointers found in the hash table to the string at the present position to find one or more matches, and selects the longest matching string. The compute device then replaces the symbols in the string at the present position with a much shorter reference back to the earlier occurrence of the string, to produce compressed output data.",
"cpc": [
"G06F 3/061",
"B25J 15/0014",
"B65G 1/0492",
"G02B 6/3882",
"G02B 6/3893",
"G02B 6/3897",
"G02B 6/4292",
"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/25891",
"H04J 14/00",
"H04L 12/2809",
"H04L 41/024",
"H04L 41/046",
"H04L 41/0813",
"H04L 41/082",
"H04L 41/12",
"H04L 41/145",
"H04L 41/149",
"H04L 41/40",
"H04L 41/5019",
"H04L 43/065",
"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/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/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": [
"G06F 17/30",
"H03M 7/30"
],
"assignees": [
"Intel Corp"
],
"inventors": [
"Daniel F. Cutter",
"Vinodh Gopal",
"James D. Guilford"
],
"filing_date": "2017-06-30",
"publication_date": "2018-10-30",
"grant_date": "2018-10-30",
"priority_date": "2016-07-22",
"application_number": "US-201715638842-A",
"family_id": "60804962",
"cited_by_count": 15,
"citations": [
"US6226628B1",
"US7398278B2",
"US20150098470A1",
"US20170187624A1"
]
}
Record 3,207 of 8,000 in Patents full text (MLC-0201). Request the full dataset.