IP Library Granted Patent US 9,729,168
Granted Patent B1
US 9,729,168 · App. 15/212,241 · Granted Aug 8, 2017

Decompression of a compressed data unit

Inventor: Yoav Medan (Haifa, IL)
Assignee: Infinidat Ltd.
H03M7/3088H03M7/46
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 9,729,168
App. No.
15/212,241
Granted
Aug 8, 2017
Kind
B1
Abstract

A method that may include retrieving, by a decompression processor, a compressed data unit; wherein the compressed data unit comprises a control section and a data section; wherein the control section comprises multiple decompression instructions for a retrieval of data portions from one or more sources; wherein the one or more source comprise the data section; wherein the control section does not include any data portion; and executing, by a decompression processor, the multiple decompression instructions to provide a decompressed data unit.

Claims (22)

1. A method for decompressing a compressed data unit, the method comprises:

retrieving, by a decompression processor, a compressed data unit; wherein the compressed data unit comprises a control section and a data section; wherein the control section comprises multiple decompression instructions for a retrieval of data portions from one or more sources; wherein the one or more sources comprise the data section; wherein the control section does not include any data portion; and

executing, by a decompression processor, the multiple decompression instructions to provide a decompressed data unit.

2. The method according to claim 1 wherein the data section stores single instances of data portions and does not store multiple instances of the data portions; and wherein each data portion of the data portions includes at least two bytes.

3. The method according to claim 1 , wherein the decompression instructions comprise at least one first decompression instruction that is followed by an abort decompression instruction;

wherein the executing of the multiple decompression instructions comprises:

executing the at least one first decompression instruction to provide first decompressed data; and

wherein the executing of the abort decompression instruction comprises maintaining the first decompressed data and ending a decompression process.

4. The method according to claim 3 , wherein the executing of the abort decompression instruction further comprising maintaining a segment of the data section that was not accessed during the executing of the at least one first decompression instruction.

5. The method according to claim 4 wherein the first decompressed data and the segment of the data section form the decompressed data unit.

6. The method according to claim 3 , wherein the executing of the at least one first decompression instruction comprises reaching a first point of the data section; and wherein the executing of the abort decompression instruction further comprising maintaining a segment of the data section that follows the first point.

7. The method according to claim 1 , wherein the compressed data unit comprises decompression instructions in a compressed form and wherein an execution of each decompression instruction is preceded by decompressing the multiple decompression instructions of the control section.

8. The method according to claim 1 , wherein the multiple decompression instructions of the control section are first level decompression instructions; and wherein the compressed data unit comprises a set of single instances of decompression instructions of the first level decompression instructions and second level decompression instructions for generating the first level decompression instructions based on the single instances of the decompression instructions.

9. The method according to claim 1 wherein the one or more sources comprise the data section, an external dictionary and a decompression buffer that stores the decompressed data unit.

10. The method according to claim 1 wherein the control section comprises a decompression buffer instruction that is preceded by at least one second decompression instruction; wherein the executing of the multiple decompression instructions comprises: executing the at least one second decompression instruction to partially fill a decompression buffer with decompressed data portions; and executing the decompression buffer instruction by writing to the decompression buffer a decompressed data fragment that is already stored in the decompression buffer.

11. The method according to claim 10 , wherein the decompression buffer instruction comprises a backward pointer that points to the decompressed data fragment.

12. The method according to claim 1 , wherein at least one decompression instruction is indicative of a repetition parameter that indicates a number of times a data portion should be consecutively written to a decompression buffer.

13. The method according to claim 1 wherein the decompression processor is located in a host computer that is coupled to a storage system and wherein the retrieving, by the decompression processor of the multiple decompression instructions is preceded by retrieving the compressed data unit from the storage system.

14. The method according to claim 13 wherein the retrieving of the compressed data unit from the storage system is initiated by a network interface controller coupled to the storage system.

15. The method according to claim 1 wherein the decompression processor is a part of a network interface controller of the storage system.

16. The method according to claim 1 wherein the executing comprises utilizing all the data section.

17. A non-transitory computer readable medium that stores instructions that once executed by a storage system cause the storage system to execute the steps of: retrieving, by a decompression processor, a compressed data unit; wherein the compressed data unit comprises a control section and a data section; wherein the control section comprises multiple decompression instructions for a retrieval of data portions from one or more sources; wherein the one or more source comprise the data section; wherein the control section does not include any data portion; and executing, by a decompression processor, the multiple decompression instructions to provide a decompressed data unit.

Assignments (8)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
RELEASE OF SECURITY INTEREST IN IP RECORDED AT R/F 55653/0854 Recorded Jan 18, 2024
From: SILICON VALLEY BANK
To: INFINIDAT LTD.
Reel/Frame 066344/0064 →
SECURITY INTEREST Recorded Jan 11, 2024
From: INFINIDAT LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.; KREOS CAPITAL 2020 OPPORTUNITY L.P.
Reel/Frame 066270/0359 →
SECURITY INTEREST Recorded Jan 10, 2024
From: INFINIDAT LTD
To: HSBC BANK PLC
Reel/Frame 066268/0584 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0526 →
SECURITY INTEREST Recorded Mar 18, 2021
From: INFINIDAT LTD.
To: SILICON VALLEY BANK
Reel/Frame 055653/0854 →
SECURITY INTEREST Recorded Apr 12, 2018
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 045914/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2016
From: MEDAN, YOAV
To: INFINIDAT LTD
Reel/Frame 040246/0135 →