IP Library › Granted Patent US 10,620,861
Granted Patent B2
US 10,620,861 · App. 15/500,594 · Granted Apr 14, 2020

Retrieve data block from determined devices

Inventors: Rajeev Balasubramonian (Palo Alto, CA); Paolo Faraboschi (Palo Alto, CA); Gregg B. Lesartre (Fort Collins, CO); Naveen Muralimanohar (Santa Clara, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/064G06F3/061G06F3/0656G06F3/0683G06F11/1048G06F12/0238G06F12/1408G06F11/1068G06F2212/1028G06F2212/1044G06F2212/401G06F2212/7208G11C29/52Y02D10/13
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,620,861
App. No.
15/500,594
Granted
Apr 14, 2020
Kind
B2
Abstract

Techniques for retrieving data blocks from memory devices are provided. In one aspect, a request to retrieve a block of data may be received. The block of data may be in a line in a rank of memory. The rank of memory may include multiple devices. The devices used to store the line in the rank of memory may be determined. The determined devices may be read.

Claims (35)

1. A method comprising:

receiving a request to retrieve a block of data from a line in a rank of memory, the rank of memory comprising multiple devices;

performing compression prediction to predict which devices from the multiple devices of the rank of memory were used for previously storing the requested block of data by predicting the number of devices of the rank of memory used for previously storing the requested block of data based on the compressibility of the requested block of data when it was originally written to the rank of memory and by mapping the compressibility of the requested block of data to particular addresses used to store the line;

determining which devices are to be read in relation to the previous storing in order to retrieve the requested block of data based on the compression prediction, wherein the determined devices are a subset of all of the multiple devices of the rank of memory; and

reading the determined devices to retrieve the requested block of data.

2. The method of claim 1 wherein the performing compression prediction comprises:

reading a saturation counter, the saturation counter associated with a level of compression, wherein the saturation counter is incremented upon reading a line compressed with the associated level of compression and decremented upon reading a line with a compression level not associated with the saturation counter; and

when the saturation counter has reached a threshold value, predicting that data compression has been carried out; and

when the saturation counter has not reached the threshold value, predicting that data compression has not been carried out.

3. The method of claim 2 further comprising:

maintaining saturation counters for multiple possible levels of compression.

4. The method of claim 1 wherein the performing compression prediction comprises:

retrieving a history of recent accesses to blocks of data;

selecting a saturation counter based on the retrieved history;

reading the selected saturation counter;

when the selected saturation counter has reached a threshold value, predicting that data compression has been carried out; and

when the selected saturation counter has not reached the threshold value, predicting that data compression has not been carried out.

5. The method of claim 4 further comprising:

incrementing the selected saturation counter when the compression prediction is correct; and

decrementing the selected saturation counter when the compression prediction is incorrect.

6. The method of claim 1 wherein the performing the compression prediction comprises:

retrieving a map of compression of each line in a page of memory; and

predicting whether the data compression has been carried out based on the map.

7. The method of claim 6 wherein the map of the compression is stored in an unused portion of a first compressed line of data in the page.

8. The method of claim 6 further comprising:

updating the map of the compression of each line in the page of memory upon each write of a line in the page of memory.

9. The method of claim 6 further comprising:

storing the map of the compression for each line written to a page of memory upon each write of a line in the page in memory to a temporary buffer; and

periodically updating the map of the compression.

10. The system comprises:

a rank of memory, the rank of memory comprising a plurality of memory devices; and

a memory controller, the memory controller to:

upon receiving a request to retrieve a block of data, perform compression prediction to predict which devices from the plurality of memory devices were used for previously storing the requested block of data by predicting the number of devices of the rank of memory used for previously storing the requested block of data based on the compressibility of the requested block of data when it was originally written to the rank of memory and by mapping the compressibility of the requested block of data to particular addresses used to store the line;

determine which memory devices from the plurality of memory devices are to be read in relation to the previous storing in order to retrieve the requested block of data based on the compression prediction, wherein the determined memory devices are a subset of all of the plurality of memory devices; and

retrieve the requested block of data from the determined memory devices.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: BALASUBRAMONIAN, RAJEEV; FARABOSCHI, PAOLO; LESARTRE, GREGG B.; MURALIMANOHAR, NAVEEN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 041463/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 041881/0001 →
Continuity (1)
Related Publication 20170220256A1 · Aug 3, 2017
Cited By (1)
US 12,572,474