IP Library Granted Patent US 10,983,906
Granted Patent B2
US 10,983,906 · App. 16/356,455 · Granted Apr 20, 2021

Memory compression hashing mechanism

Inventors: Abhishek R. Appu (El Dorado Hills, CA); Altug Koker (El Dorado Hills, CA); Joydeep Ray (Folsom, CA); Niranjan Cooray (Folsom, CA); Prasoonkumar Surti (Folsom, CA); Sudhakar Kamma (El Dorado Hills, CA); Vasanth Ranganathan (El Dorado Hills, CA)
Assignee: Intel Corporation
G06F12/0246G06F12/10G06T1/60G06F2212/401
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 10,983,906
App. No.
16/356,455
Granted
Apr 20, 2021
Kind
B2
Abstract

An apparatus to facilitate memory data compression is disclosed. The apparatus includes a memory and having a plurality of banks to store main data and metadata associated with the main data and a memory management unit (MMU) coupled to the plurality of banks to perform a hash function to compute indices into virtual address locations in memory for the main data and the metadata and adjust the metadata virtual address locations to store each adjusted metadata virtual address location in a bank storing the associated main data.

Claims (34)

1. An apparatus to facilitate memory data compression, comprising:

a memory having a plurality of banks to store main data and metadata associated with the main data; and

a memory management unit (MMU) coupled to the plurality of banks to perform a hash function to compute indices into virtual address locations in memory for the main data and the metadata and adjust the metadata virtual address locations to store each adjusted metadata virtual address location in a bank storing the associated main data, wherein adjusting the address locations of the metadata comprises combining the metadata to generate metadata blocks and storing the metadata blocks in banks with the associated main data.

2. The apparatus of claim 1 , wherein the MMU adjusting the address locations of the metadata further comprises performing one or more shifting operations.

3. The apparatus of claim 2 , wherein the MMU comprises a plurality of MMUs, each coupled to one or more of the plurality of banks.

4. The apparatus of claim 3 , wherein each of the plurality of MMUs comprise a hash table implemented to perform the hash function.

5. The apparatus of claim 4 , wherein each of the plurality of MMUs further perform a linear mapping to map a main data address to a metadata address.

6. The apparatus of claim 3 , further comprising:

a first MMU coupled to a first bank to store a first set of main data and a first metadata block of metadata associated with the first set of main data; and

a second MMU coupled to a second bank to store a second set of main data and a second metadata block of metadata associated with the second set of main data.

7. A method to facilitate memory data compression, comprising:

performing a hash function to compute indices into virtual address locations in memory for main data and metadata associated with the main data;

adjusting the metadata virtual address locations, including combining the metadata to be stored in the banks to generate metadata blocks; and

storing the metadata blocks at the adjusted metadata virtual address locations, wherein each adjusted metadata virtual address location is located in a bank storing the associated main data.

8. The method of claim 7 , further comprising:

receiving a main data address; and

mapping the main data address to a metadata address.

9. The method of claim 8 , further comprising adjusting the address locations of the metadata comprises performing one or more shifting operations.

10. The method of claim 7 , further comprising:

storing a first set of main data and a first metadata block of metadata associated with the first set of main data at a first bank; and

storing a second set of main data and a second metadata block of metadata associated with the second set of main data at a second bank.

11. A graphics processing unit (GPU), comprising:

a memory having a plurality of banks to store main data and metadata associated with the main data; and

a plurality of fabric elements coupled to the plurality of banks, each fabric element including a memory management unit (MMU) coupled to one or more of the plurality of banks to perform a hash function to compute indices into virtual address locations in memory for the main data and the metadata and adjust the metadata virtual address locations to store each adjusted metadata virtual address location in a bank storing the associated main data, wherein adjusting the address locations of the metadata comprises combining the metadata to generate metadata blocks and storing the metadata blocks in banks with the associated main data.

12. The GPU of claim 11 , wherein the MMU adjusting the address locations of the metadata further comprises performing one or more shifting operations.

13. The GPU of claim 12 , wherein the MMU comprises a hash table implemented to perform the hash function.

14. The GPU of claim 13 , wherein the MMU further performs a linear mapping to map a main data address to a metadata address.

15. The GPU of claim 11 , further comprising:

a first fabric element having a first MMU coupled to a first bank to store a first set of main data and a first metadata block of metadata associated with the first set of main data; and

a second fabric element having a second MMU coupled to a second bank to store a second set of main data and a second metadata block of metadata associated with the second set of main data.

16. The GPU of claim 15 , further comprising:

a first set of one or more processing nodes coupled to the first fabric element; and

a second set of one or more processing nodes coupled to the second fabric element.

17. The GPU of claim 16 , wherein the first fabric element comprises a first control cache coupled between the first set of one or more processing nodes and the first MMU to perform data compression and decompression, and the second fabric element comprises a second control cache coupled between the second set of one or more processing nodes and the second MMU to perform data compression and decompression.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2019
From: APPU, ABHISHEK R.; KOKER, ALTUG; RAY, JOYDEEP; COORAY, NIRANJAN; SURTI, PRASOONKUMAR; KAMMA, SUDHAKAR; RANGANATHAN, VASANTH
To: INTEL CORPORATION
Reel/Frame 048624/0368 →
Continuity (1)
Related Publication 20200301826A1 · Sep 24, 2020
Cited By (1)
US 12,518,337