IP Library › Granted Patent US 12,242,851
Granted Patent B2
US 12,242,851 · App. 17/470,089 · Granted Mar 4, 2025

Verifying compressed stream fused with copy or transform operations

Inventors: Vinodh Gopal (Westborough, MA); James D. Guilford (Northborough, MA); Daniel F. Cutter (Maynard, MA)
Assignee: Intel Corporation
G06F9/30145G06F9/3808G06F9/3867G06F9/5027H03M13/096
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,242,851
App. No.
17/470,089
Granted
Mar 4, 2025
Kind
B2
Abstract

Methods and apparatus relating to verifying a compressed stream fused with copy or transform operation(s) are described. In an embodiment, compression logic circuitry compresses input data and stores the compressed data in a temporary buffer. The compression logic circuitry determines a first checksum value corresponding to the compressed data stored in the temporary buffer. Decompression logic circuitry performs a decompress-verify operation and a copy operation. The decompress-verify operation decompresses the compressed data stored in the temporary buffer to determine a second checksum value corresponding to the decompressed data from the temporary buffer. The copy operation transfers the compressed data from the temporary buffer to a destination buffer in response to a match between the first checksum value and the second checksum value. Other embodiments are also disclosed and claimed.

Claims (34)

1. An apparatus comprising:

compression logic circuitry to compress input data and to store the compressed data in a temporary buffer, wherein the compression logic circuitry is to determine a first checksum value corresponding to the compressed data stored in the temporary buffer; and

decompression logic circuitry to perform a decompress-verify operation and a copy operation,

wherein the decompress-verify operation is to decompress the compressed data stored in the temporary buffer to determine a second checksum value corresponding to the decompressed data from the temporary buffer, wherein the copy operation is to transfer the compressed data from the temporary buffer to a destination buffer in response to a match between the first checksum value and the second checksum value, wherein a page fault is to be triggered in response to an access to the compressed data stored in the destination buffer, wherein the page fault is to cause the decompression logic circuitry to decompress the compressed data stored in the destination buffer.

2. The apparatus of claim 1 , wherein the decompressed data from the decompression logic circuitry is to be suppressed as an output to the destination buffer.

3. The apparatus of claim 1 , wherein the first checksum value and the second checksum value comprise Cyclic Redundancy Code (CRC) values.

4. The apparatus of claim 1 , wherein compression/decompression accelerator logic circuitry comprises the compression logic circuitry and the decompression logic circuitry.

5. The apparatus of claim 4 , wherein a cipher block in a decompression pipeline of the compression/decompression accelerator logic circuitry is to be reused to encrypt the compressed data enroute to the destination buffer.

6. The apparatus of claim 1 , comprising logic circuitry to determine whether the decompress-verify operation is enabled.

7. The apparatus of claim 1 , further comprising a decompression descriptor to store information corresponding to one or more of: a bit to indicate whether the decompress-verify operation is enabled, a source address, a destination address, one or more decompression flags, a source transfer size, and a maximum destination size.

8. The apparatus of claim 1 , wherein a processor, having one or more processor cores, comprises the compression logic circuitry and the decompression logic circuitry.

9. The apparatus of claim 1 , wherein the compressed data stored in the destination buffer is to be committed.

10. An apparatus comprising:

decoder circuitry to decode an instruction, the instruction to include a field corresponding to a fused copy/transform operation enablement; and

execution circuitry to execute the decoded instruction in accordance with the field to cause:

compression logic circuitry to compress input data and to store the compressed data in a temporary buffer, wherein the compression logic circuitry is to determine a first checksum value corresponding to the compressed data stored in the temporary buffer; and

decompression logic circuitry to perform a decompress-verify operation and a copy operation,

wherein the decompress-verify operation is to decompress the compressed data stored in the temporary buffer to determine a second checksum value corresponding to the decompressed data from the temporary buffer, wherein the copy operation is to transfer the compressed data from the temporary buffer to a destination buffer in response to a match between the first checksum value and the second checksum value, wherein a page fault is to be triggered in response to an access to the compressed data stored in the destination buffer, wherein the page fault is to cause the decompression logic circuitry to decompress the compressed data stored in the destination buffer.

11. The apparatus of claim 10 , wherein execution of the instruction is to cause enqueuing of a request for a fused copy/transform operation.

12. The apparatus of claim 11 , wherein the request is to originate from a user space and bypass a kernel.

13. The apparatus of claim 10 , wherein the field is to comprise an address to a storage location that stores at least one bit indicative of the fused copy/transform operation enablement.

14. The apparatus of claim 10 , wherein the decompressed data from the decompression logic circuitry is to be suppressed as an output to the destination buffer.

15. The apparatus of claim 10 , wherein the first checksum value and the second checksum value comprise Cyclic Redundancy Code (CRC) values.

16. The apparatus of claim 10 , wherein a compression/decompression accelerator logic circuitry comprises the compression logic circuitry and the decompression logic circuitry.

17. The apparatus of claim 16 , wherein a cipher block in a decompression pipeline of the compression/decompression accelerator logic circuitry is to be reused to encrypt the compressed data enroute to the destination buffer.

18. One or more non-transitory computer-readable media comprising one or more instructions that when executed on a processor configure the processor to perform one or more operations to cause:

compression logic circuitry to compress input data and to store the compressed data in a temporary buffer, wherein the compression logic circuitry is to determine a first checksum value corresponding to the compressed data stored in the temporary buffer; and

decompression logic circuitry to perform a decompress-verify operation and a copy operation,

wherein the decompress-verify operation is to decompress the compressed data stored in the temporary buffer to determine a second checksum value corresponding to the decompressed data from the temporary buffer, wherein the copy operation is to transfer the compressed data from the temporary buffer to a destination buffer in response to a match between the first checksum value and the second checksum value, wherein a page fault is to be triggered in response to an access to the compressed data stored in the destination buffer, wherein the page fault is to cause the decompression logic circuitry to decompress the compressed data stored in the destination buffer.

19. The one or more non-transitory computer-readable media of claim 18 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the decompressed data from the decompression logic circuitry is to be suppressed as an output to the destination buffer.

20. The one or more non-transitory computer-readable media of claim 18 , wherein the first checksum value and the second checksum value comprise Cyclic Redundancy Code (CRC) values.

21. The one or more non-transitory computer-readable media of claim 18 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause determination of whether the decompress-verify operation is enabled.

22. The one or more non-transitory computer-readable media of claim 18 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause a decompression descriptor to store information corresponding to one or more of: a bit to indicate whether the decompress-verify operation is enabled, a source address, a destination address, one or more decompression flags, a source transfer size, and a maximum destination size.

23. The one or more non-transitory computer-readable media of claim 18 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause commitment of the compressed data stored in the destination buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2021
From: GOPAL, VINODH; GUILFORD, JAMES D.; CUTTER, DANIEL F.
To: INTEL CORPORATION
Reel/Frame 058058/0753 →
Continuity (1)
Related Publication 20230075667A1 · Mar 9, 2023
References Cited (111)
US 6049866A · Earl · 2000 [cited by applicant]
US 6208273B1 · Dye et al. · 2001 [cited by applicant]
US 6388585B1 · Lacerda · 2002 [cited by applicant]
US 6505293B1 · Jourdan et al. · 2003 [cited by applicant]
US 6625723B1 · Jourday et al. · 2003 [cited by applicant]
US 6862662B1 · Cloud · 2005 [cited by applicant]
US 6879266B1 · Dye et al. · 2005 [cited by applicant]
US 8447948B1 · Erdogan et al. · 2013 [cited by applicant]
US 8738860B1 · Griffin · 2014 [cited by examiner]
US 9552169B2 · Rappoport et al. · 2017 [cited by applicant]
US 10331558B2 · Sazegari et al. · 2019 [cited by applicant]
US 10671550B1 · Doi · 2020 [cited by applicant]
US 12028094B2 · Gaur et al. · 2024 [cited by applicant]
US 20020124142A1 · Har et al. · 2002 [cited by applicant]
US 20020174255A1 · Hayter et al. · 2002 [cited by applicant]
US 20030088759A1 · Wilkerson · 2003 [cited by applicant]
US 20030217251A1 · Jourdan et al. · 2003 [cited by applicant]
US 20050160234A1 · Newburn et al. · 2005 [cited by applicant]
US 20050289300A1 · Kim et al. · 2005 [cited by applicant]
US 20080177984A1 · Lataille et al. · 2008 [cited by applicant]
US 20080282034A1 · Jiao et al. · 2008 [cited by applicant]
US 20100223237A1 · Mishra et al. · 2010 [cited by applicant]
US 20110072213A1 · Nickolls et al. · 2011 [cited by applicant]
US 20110208918A1 · Raikin et al. · 2011 [cited by applicant]
US 20130111605A1 · Maeda et al. · 2013 [cited by applicant]
US 20140095814A1 · Marden et al. · 2014 [cited by applicant]
US 20140281240A1 · Willhalm · 2014 [cited by applicant]
US 20140317377A1 · Ould-Ahmed-Vall et al. · 2014 [cited by applicant]
US 20150106567A1 · Godard et al. · 2015 [cited by applicant]
US 20150178202A1 · Sankaran et al. · 2015 [cited by applicant]
US 20150178214A1 · Alameldeen et al. · 2015 [cited by applicant]
US 20150378731A1 · Lai et al. · 2015 [cited by applicant]
US 20160092373A1 · Doshi et al. · 2016 [cited by applicant]
US 20160179676A1 · Engh-Halstvedt et al. · 2016 [cited by applicant]
US 20160321076A1 · Satpathy et al. · 2016 [cited by applicant]
US 20160321185A1 · Doshi et al. · 2016 [cited by applicant]
US 20160328172A1 · Rappoport et al. · 2016 [cited by applicant]
US 20170220475A1 · Bradbury et al. · 2017 [cited by applicant]
US 20170371660A1 · Smith et al. · 2017 [cited by applicant]
US 20180011796A1 · Guilford et al. · 2018 [cited by applicant]
US 20180152201A1 · Gopal · 2018 [cited by examiner]
US 20180165097A1 · Hanley · 2018 [cited by applicant]
US 20190034335A1 · Torre et al. · 2019 [cited by applicant]
US 20190042354A1 · Coquerel et al. · 2019 [cited by applicant]
US 20190044852A1 · Nolan · 2019 [cited by examiner]
US 20190034333A1 · Sazegari et al. · 2019 [cited by applicant]
US 20190391869A1 · Gopal · 2019 [cited by examiner]
US 20200190807A1 · Header · 2020 [cited by applicant]
US 20200249948A1 · Giamei et al. · 2020 [cited by applicant]
US 20210035258A1 · Ray et al. · 2021 [cited by applicant]
US 20210072994A1 · Bainville et al. · 2021 [cited by applicant]
US 20210103550A1 · Appu et al. · 2021 [cited by applicant]
US 20210114495A1 · Battaglia et al. · 2021 [cited by applicant]
US 20210312697A1 · Maiyuran et al. · 2021 [cited by applicant]
US 20210374897A1 · Ray et al. · 2021 [cited by applicant]
US 20220066931A1 · Ray et al. · 2022 [cited by applicant]
US 20220197643A1 · Gaur et al. · 2022 [cited by applicant]
US 20220197659A1 · Gaur et al. · 2022 [cited by applicant]
US 20220197794A1 · Kallurkar et al. · 2022 [cited by applicant]
US 20220197799A1 · Gaur et al. · 2022 [cited by applicant]
US 20220197813A1 · Gaur et al. · 2022 [cited by applicant]
US 20220272569A1 · Berliner · 2022 [cited by examiner]
US 20220295345A1 · Trim · 2022 [cited by examiner]
CN 103810297A · 2014 [cited by applicant]
CN 114661227A · 2022 [cited by applicant]
CN 114661359A · 2022 [cited by applicant]
CN 114661625A · 2022 [cited by applicant]
CN 115793960 · 2023 [cited by applicant]
CN 116263671A · 2023 [cited by applicant]
EP 4020185A1 · 2022 [cited by applicant]
EP 4020223A1 · 2022 [cited by applicant]
EP 4020230A1 · 2022 [cited by applicant]
EP 4020231A1 · 2022 [cited by applicant]
EP 4149008A1 · 2023 [cited by applicant]
EP 4198749A1 · 2023 [cited by applicant]
JP H0922353A · 1997 [cited by applicant]
WO 2020190807A1 · 2020 [cited by applicant]
WO 2020190799A3 · 2020 [cited by applicant]
Abail, et al. “Data Compression Accelerator on IBM POWER9 and z15 Processors,” ISCA 2020, 14 pages. [cited by applicant]
Cao et al. “Characterizing, Modeling, and Benchmarking RocksDB Key-Value Workloads at Facebook,” FAST 2020, retrieved from https://b;log.acolyer.org/2020/03/11/rocks-db-at-facebook/ on Nov. 19, 2020, 12 pages. [cited by applicant]
Examination report issued by the European Patent Office for Application No. 21198874.6-1203, issued Jan. 19, 2023, 6 pages. [cited by applicant]
Extended European Search Report issued on Apr. 7, 2022 for EP Application No. 21198710.2. [cited by applicant]
Extended European Search Report issued on Mar. 16, 2022 for EP Application No. 21198874.6. [cited by applicant]
Lagar-Cavilla et al. “Software-Defined Far Memory in Warehouse-Scale Computers,” ASPLOS 2019, retrieved from https://blog.acolyer.org/2019/05/22/sw-far-memory/ on Nov. 19, 2020, 11 pages. [cited by applicant]
Andreas Abel et al., Measurement-based Modeling of the Cache Replacement Policy, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS), 10 pages. [cited by applicant]
Kanev et al., “Profiling a Warehouse-Scale Computer,” ISCA'15, Jun. 13-17, 2015, 12 pages. [cited by applicant]
Non-final Office Action issued in U.S. Appl. No. 17/133,615, filed Feb. 15, 2024, 16 pages. [cited by applicant]
Colyer, Adrian, “Software-defined far memory in warehouse scale computers,” The Morning Paper, 13 pages, May 22, 2019. [cited by applicant]
Lagar-Cavilla, Andres, et al. “Software-Defined Far Memory in Warehouse-Scale Computers,” Session: VM/Memory, ASPLOS '19, Apr. 13-17, 2019, Providence, Rhode Island, pp. 317-330. [cited by applicant]
Decision to grant European patent for Application No. 21198841.5, Apr. 5, 2024, 2 pages. [cited by applicant]
European Examination Report, application No. 21198874.6, Oct. 23, 2023, 7 pages. [cited by applicant]
Extended European Search Report issued on Mar. 1, 2022 for EP Application No. 2119770.4. [cited by applicant]
Extended European Search Report issued on Mar. 1, 2022 for EP Application No. 21198841.5. [cited by applicant]
Office Action issued for U.S. Appl. No. 17/133,624, mailed Mar. 4, 2024, 12 pages. [cited by applicant]
Andreas Abel et al., Reverse Engineering of Cache Replacement Policies in Intel Microprocessors and Their Evaluation, 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 3 pages. [cited by applicant]
Ayers et al., “Asmdb: understanding and mitigating front-end stalls in warehouse-scale computers,” ISCA '19, Jun. 22-26, 2019, 12 pages. [cited by applicant]
Extended European search report for application No. 22206038.6, issued May 12, 2023, 12 pages. [cited by applicant]
Final Office Action issued in U.S. Appl. No. 17/133,618, issued Jun. 28, 2024, 17 pages. [cited by applicant]
Glenn Reinmany et al., Fetch Directed Instruction Prefetching. International Symposium on Microarchitecture (MICRO-32), Nov. 1999, 12 pages. [cited by applicant]
Pepe Vila et al., CacheQuery: learning replacement policies from hardware caches, 2020 ACM SIGPLAN Conference on Programming Language Design and Implementation, 17 pages. [cited by applicant]
Reinman et al., “Fetch Directed Instruction Prefetching,” Proceedings of the 32nd Annual International Symposium on Microarchitecture (MICRO-32), Nov. 1999, 12 pages. [cited by applicant]
Zswap, The Linux Kernel documentation, Linux Memory Management Documentation, retrieved from www.kernel.org/doc/html/latest/vm/zswap.html on Aug. 29, 2021. [cited by applicant]
Extended European Search Report for application No. 22188197.2-1224, issued Feb. 3, 2023, 10 pages. [cited by applicant]
European Examination report for application No. 22188197.2, issued Aug. 28, 2024, 6 pages. [cited by applicant]
European Patent Office communication regarding Intention to Grant for application No. 21197700.4, issued Jul. 30, 2024, 78 pages. [cited by applicant]
Intention to Grant Notice issued by the European Patent Office for application No. 22206038.6, issued Jul. 8, 2024, 52 pages. [cited by applicant]
Notice of Intent to Grant from the European Patent Office for application No. 21198710.2, issued Aug. 2, 2024, 87 pages. [cited by applicant]
European Patent Office, Notice of Grant for Application No. 21198841.5, issued Dec. 14, 2023, 80 pages. [cited by applicant]
Notice of Allowance in U.S. Appl. No. 17/133,622, mailed Feb. 29, 2024, 8 pages. [cited by applicant]
Examination report for European Application No. 22206038.6, issued Feb. 21, 2024, 8 pages. [cited by applicant]
Non-Final Office Action from S/N U.S. Appl. No. 17/133,618, mailed Mar. 15, 2024, 18 pages. [cited by applicant]