IP Library Granted Patent US 12,199,760
Granted Patent B2
US 12,199,760 · App. 18/367,905 · Granted Jan 14, 2025

Method and system for reducing data stored in capture buffer

Inventors: Andrew Robert Lehane (Milnathort, GB); Daniel Alejandro Garcia Ulloa (Atlanta, GA)
Assignee: KEYSIGHT TECHNOLOGIES, INC.
H04L1/0061H03M7/55H04L1/1607H03M7/6023
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 12,199,760
App. No.
18/367,905
Granted
Jan 14, 2025
Kind
B2
Abstract

A method is provided for decompressing wide word data compressed in parallel. The method includes creating an instance of memory structure for a wide word in the wide word data, where the instance of memory structure is an inverse of a compression dictionary for the wide word; retrieving multiple compressed codes iteratively from a gap-free compressed output stream of the wide word data using the instance of memory structure, where each compressed code includes at least one character code and a reverse-pointer, and where at least one compressed code includes a multi-symbol string having a multiple character codes; forming an intermediate decompressed output stream by iteratively following the reverse-pointers for the multiple compressed codes, respectively; and forming decompressed output stream by reversing an order of the character codes in the multi-symbol string of the at least one compressed code.

Claims (34)

1. A method of decompressing wide word data compressed in parallel, the method comprising:

creating an instance of memory structure for a wide word in the wide word data, wherein the instance of memory structure is an inverse of a compression dictionary for the wide word;

retrieving a plurality of compressed codes iteratively from a gap-free compressed output stream of the wide word data using the instance of memory structure, wherein each compressed code of the plurality of compressed codes comprises at least one character code and a reverse-pointer, and wherein at least one compressed code of the plurality of compressed codes comprises a multi-symbol string having a plurality of character codes;

forming an intermediate decompressed stream by iteratively following the reverse-pointers for the plurality of compressed codes, respectively; and

forming a decompressed stream by reversing an order of the plurality of character codes in the multi-symbol string of the at least one compressed code.

2. The method of claim 1 , wherein each reverse-pointer of each compressed code points to a null entry or to another compressed code of the plurality of compressed codes.

3. The method of claim 2 , wherein in the multi-symbol string, a reverse-pointer that points to the null entry indicates that the compressed code with the reverse-pointer that points to the null entry is a start of the multi-symbol string.

4. The method of claim 1 , wherein the memory structure comprises a table in which each compression has a corresponding address entry, a reverse-pointer entry, and character entry.

5. The method of claim 1 , wherein in the multi-symbol string, a first character code of the plurality of character codes is retrieved from an address i+1, wherein i is an address of the at least one compressed code comprising the multi-symbol string.

6. The method of claim 5 , wherein in the multi-symbol string, a next character code of the plurality of character codes is retrieved from a compressed code of the plurality of compressed codes indicated by a reverse-pointer in the multi-symbol string.

7. A method of decompressing wide word data, comprising:

dividing a serial stream to be compressed into a plurality of input streams corresponding to a plurality of wide words in the serial stream;

performing parallel compression on the plurality of input streams to obtain a corresponding plurality of compressed streams, wherein each compressed stream of the plurality of compressed streams comprises a plurality of compressed codes, at least one multi-symbol string, and at least one NoOp entry;

reordering the plurality of compressed streams using first incoming symbol reordering to form a plurality of reordered compressed streams, respectively, wherein for each compressed stream, the at least one multi-symbol string is moved to a location of a first symbol of the at least one multi-symbol string and the at least one NoOp entry is shifted away from the location of the first symbol;

forming a gap-free compressed output stream by inputting the plurality of compressed codes from the plurality of reordered compressed streams alternately, excluding the NoOp entries; and

performing decompression of the compressed output stream comprising:

iteratively retrieving the plurality of compressed codes in the gap-free compressed output stream, wherein each compressed code of the plurality of compressed codes comprises at least one character code and a reverse-pointer, and wherein the at least one multi-symbol string from each compressed stream has a plurality of character codes;

forming an intermediate decompressed stream by iteratively following the reverse-pointers for the plurality of compressed codes from each compressed stream, respectively; and

forming a decompressed stream by reversing an order of the plurality of character codes in the at least one multi-symbol string from each compressed stream.

8. The method of claim 7 , wherein each reverse-pointer of each compressed code points to a null entry or to another compressed code of the plurality of compressed codes.

9. The method of claim 8 , wherein in the multi-symbol string, a reverse-pointer that points to the null entry indicates that the compressed code with the reverse-pointer that points to the null entry is a start of the multi-symbol string.

10. The method of claim 7 , wherein each compression has a corresponding address entry, a reverse-pointer entry, and character entry in a table.

11. The method of claim 7 , wherein in the multi-symbol string, a first character code of the plurality of character codes is retrieved from an address i+1, wherein i is an address of the compressed stream comprising the multi-symbol string.

12. The method of claim 11 , wherein in the multi-symbol string, a next character code of the plurality of character codes is retrieved from a compressed code of the plurality of compressed codes indicated by a reverse-pointer in the multi-symbol string.

13. A non-transitory computer readable medium storing instructions for decompressing wide word data compressed in parallel that, when executed by at least one processor, cause the at least one processor to:

create an instance of memory structure for a wide word in the wide word data, wherein the instance of memory structure is an inverse of a compression dictionary for the wide word;

retrieve a plurality of compressed codes iteratively from a gap-free compressed output stream of the wide word data using the instance of memory structure, wherein each compressed code of the plurality of compressed codes comprises at least one character code and a reverse-pointer, and wherein at least one compressed code of the plurality of compressed codes comprises a multi-symbol string having a plurality of character codes;

form an intermediate decompressed stream by iteratively following the reverse-pointers for the plurality of compressed codes, respectively; and

form a decompressed stream by reversing an order of the plurality of character codes in the multi-symbol string of the at least one compressed code.

14. The computer readable medium of claim 13 , wherein each reverse-pointer of each compressed code points to a null entry or to another compressed code of the plurality of compressed codes.

15. The computer readable medium of claim 14 , wherein in the multi-symbol string, a reverse-pointer that points to the null entry indicates that the compressed code with the reverse-pointer that points to the null entry is a start of the multi-symbol string.

16. The computer readable medium of claim 13 , wherein the memory structure comprises a table in which each compression has a corresponding address entry, a reverse-pointer entry, and character entry.

17. The computer readable medium of claim 13 , wherein in the multi-symbol string, a first character code of the plurality of character codes is retrieved from an address i+1, wherein i is an address of the at least one compressed code comprising the multi-symbol string.

18. The computer readable medium of claim 17 , wherein in the multi-symbol string, a next character code of the plurality of character codes is retrieved from a compressed code of the plurality of compressed codes indicated by a reverse-pointer in the multi-symbol string.

Continuity (6)
Continuation 18090311 · Dec 28, 2022
Provisional Application 63336009 · Apr 28, 2022
Provisional Application 63399118 · Aug 18, 2022
Provisional Application 63418761 · Oct 24, 2022
Provisional Application 63431100 · Dec 8, 2022
Related Publication 20240007224A1 · Jan 4, 2024
References Cited (32)
US 5654703A · Clark, II · 1997 [cited by applicant]
US 7369065B2 · Mitchell et al. · 2008 [cited by applicant]
US 7916750B2 · Das Sharma et al. · 2011 [cited by applicant]
US 8665124B2 · Pardo et al. · 2014 [cited by applicant]
US 8725933B2 · Khan · 2014 [cited by applicant]
US 9514085B2 · Pardo et al. · 2016 [cited by applicant]
US 9710166B2 · Huang et al. · 2017 [cited by applicant]
US 10360183B2 · Kataoka et al. · 2019 [cited by applicant]
US 10534839B2 · Hsieh et al. · 2020 [cited by applicant]
US 20010054131A1 · Alvarez, II et al. · 2001 [cited by applicant]
US 20020057213A1 · Heath · 2002 [cited by examiner]
US 20040119615A1 · Jones et al. · 2004 [cited by applicant]
US 20140244604A1 · Oltean et al. · 2014 [cited by applicant]
US 20170357609A1 · Long et al. · 2017 [cited by applicant]
US 20180095923A1 · Iyer et al. · 2018 [cited by applicant]
US 20180123936A1 · Anderson et al. · 2018 [cited by applicant]
US 20200177348A1 · Agarwal et al. · 2020 [cited by applicant]
US 20230229630A1 · Soha · 2023 [cited by examiner]
Notice of Allowance dated Mar. 13, 2024, for U.S. Appl. No. 18/090,311, 26 pgs. [cited by applicant]
Express® Base Specification Revision 3.0 (Nov. 10, 2010) (“PCle Gen3 protocol”), pp. 1-860. [cited by applicant]
PCI Express® Base Specification Revision 4.0, Version 1.0 (Sep. 27, 2017) (“PCle Gen4 protocol”) (last modified Oct. 5, 2017), pp. 1-1293. [cited by applicant]
PCI Express® Base Specification Revision 5.0, Version 1.0 (May 22, 2019) (PCle Gen5 protocol) (last modified May 28, 2019), pp. 1-1299. [cited by applicant]
PCI Express® Base Specification Revision 6.0, Version 1.0 (Dec. 16, 2021) (“PCle Gen6 protocol”) (last modified Jan. 11, 2022), pp. 1-1923. [cited by applicant]
Bharat Sukhwani et al., “High-Throughput, Lossless Data Compression on FPGAs,” IEEE International Symposium on Field-Programmable Custom Computing Machines, 2011, pp. 113-116. [cited by applicant]
Youngjo Park et al., “zFTL: Power-Efficient Data Compression Support for NAND Flash-based Consumer Electronics Devices,” IEEE Transactions on Consumer Electronics, vol. 57, No. 3, Aug. 2011, pp. 1148-1156. [cited by applicant]
Tinku Acharya et al., “Enhancing LZW Coding Using a Variable-Length Binary Encoding,” Institute for Systems Research and Institute for Advanced Computer Studies University of Maryland, Jan. 1995, pp. 1-14. [cited by applicant]
Hu Yuanfu et al., “The Methods of Improving the compression Ratio of LZ77 Family Data Compression Algorithms,” Proceedings of Third International Conference on Signal Processing (ICSP'96), vol. 1, IEEE 1996, pp. 698-701. [cited by applicant]
Md. Rubaiyat Hasan, “Data Compression using Huffman based LZW Encoding Technique,” International Journal of Scientific & Engineering Research, vol. 2, Issue 11, Nov. 2011, pp. 1-7. [cited by applicant]
Gopal Lakhani, “Reducing coding redundancy in LZW,” Information Sciences 176 (2006), pp. 1417-1434. [cited by applicant]
Ian H. Witten, et al., “Arithmetic Coding for Data Compression,” Communications of the ACM, Jun. 1987, vol. 30, No. 6, pp. 520-540. [cited by applicant]
Notice of Allowance dated May 8, 2024, for U.S. Appl. No. 18/237,818, 19 pgs. [cited by applicant]
Notice of Allowance dated Jun. 13, 2024, for U.S. Appl. No. 18/374,900,4 pgs. [cited by applicant]