IP Library Granted Patent US 10,191,855
Granted Patent B2
US 10,191,855 · App. 14/333,321 · Granted Jan 29, 2019

Caching systems and methods for page reclamation with simulated NVDRAM in host bus adapters

Inventors: Kishore Kaniyar Sampathkumar (Bangalore, IN); Saugata Das Purkayastha (Bangalore, IN)
Assignee: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
G06F12/123G06F12/0638G06F12/0804
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,191,855
App. No.
14/333,321
Granted
Jan 29, 2019
Kind
B2
Abstract

Systems and methods presented herein provide for simulated NVDRAM operations. In a host system, a host memory is sectioned into pages. An HBA in the host system comprises a DRAM and an SSD. The DRAM and the SSD are also sectioned into pages and mapped to pages of the host memory. A host processor is operable to generate Input/Output (I/O) requests. An HBA driver is operable to process the I/O requests. The HBA driver is also operable to detect when the pages of the DRAM are accessed, to determine a rate of page reclamation based on the detection, and to reclaim pages of data in the DRAM by moving pages of data from the DRAM into the pages of the SSD based on the determined rate of page reclamation.

Claims (65)

1. A system, comprising:

a host processor operable to generate Input/Output (I/O) requests;

a host memory communicatively coupled to the host processor and sectioned into pages;

a host bus adapter (HBA) communicatively coupled to the host processor to process the I/O requests, wherein the HBA comprises a Dynamic Random Access Memory (DRAM) and a Solid State Memory (SSD); and

an HBA driver operable on the host processor wherein the DRAM is sectioned into pages mapped to pages of the host memory, and the SSD is sectioned into pages mapped to pages of the DRAM, and

wherein the HBA driver is operable to detect a rate at which the pages of the DRAM are accessed for both of read requests and write requests of the I/O requests, to determine a rate of page reclamation based on the detection, and to reclaim pages of data in the DRAM by moving pages of data from the DRAM into the pages of the SSD based on the determined rate of page reclamation.

2. The system of claim 1 , wherein:

the HBA driver is further operable to adaptively update the rate of page reclamation based on the detection, and wherein the HBA driver is operable to detect the rate at which the pages of the DRAM are accessed for all of the read and write requests.

3. The system of claim 2 , wherein:

the HBA driver is further operable to adaptively update the rate of page reclamation by changing a distance between journal entry markers in the DRAM based on the rate at which the pages of the DRAM are accessed.

4. The system of claim 1 , wherein:

the HBA driver is further operable to adaptively update the rate of page reclamation by changing a distance between journal entry markers in the DRAM based on the rate at which the pages of the DRAM are accessed;

the detection is based on a Most Recently Used (MRU) page replacement policy; and

the distance corresponds to a number of journal entries between an MRU marker indicating a most recently used journal entry and a Least Recently Used (LRU) marker indicating a least recently used journal entry.

5. The system of claim 1 , wherein:

the HBA driver is further operable to process the I/O requests through a storage protocol stack, and to run as background processing to perform the detection, the determination of the rate of page reclamation, and the page reclamation outside of the storage protocol stack.

6. The system of claim 1 , further comprising:

an operating system operable to direct the processor to generate a page fault when an application running on host processor attempts to load the page of data into the DRAM and determines that the data is not in the DRAM.

7. The system of claim 1 , wherein:

the SSD maintains data of the DRAM during a power outage.

8. A method operable in a host system comprising a host processer, a host memory, a host bus adapter (HBA), and an HBA driver operable on the host processor, the HBA comprising a Dynamic Random Access Memory (DRAM) and a Solid State Memory (SSD), the method comprising:

sectioning the host memory into pages;

sectioning the DRAM into pages;

sectioning the SSD into pages;

mapping the host memory pages to the DRAM pages;

mapping the pages of the DRAM to the pages of the SSD to provide the host processor with direct access to the pages of the SSD through the DRAM;

detecting a rate at which the pages of the DRAM are accessed for both of read requests and write requests;

determining a rate of page reclamation based on the detection; and

replacing pages of data in the DRAM by loading pages of data from the SSD into the pages of the DRAM based on the determined rate of page reclamation.

9. The method of claim 8 , further comprising:

adaptively updating the rate of page reclamation based on the detection, wherein the adaptively updating includes increasing the rate of page reclamation if the rate at which the pages of the DRAM are accessed changes, and wherein the detecting includes detecting the rate at which the pages of the DRAM are accessed for all of the read and write requests.

10. The method of claim 9 , wherein:

adaptively updating the rate of page reclamation includes changing a distance between journal entry markers in the DRAM based on the rate at which the pages of the DRAM are accessed.

11. The method of claim 8 , further comprising:

adaptively updating the rate of page reclamation by changing a distance between journal entry markers in the DRAM based on the rate at which the pages of the DRAM are accessed, wherein:

the detecting is based on a Most Recently Used (MRU) page replacement policy; and

the distance corresponds to a number of journal entries between an MRU marker indicating a most recently used journal entry and a Least Recently Used (LRU) marker indicating a least recently used journal entry.

12. The method of claim 8 , further comprising:

processing the I/O requests through a storage protocol stack of the host system; and

running a driver via background processing to perform said detecting, said determining, and said replacing outside of the storage protocol stack.

13. The method of claim 8 , further comprising:

generating a page fault when an application attempts to load the page of data into the DRAM and determines that the data is not in the DRAM.

14. The method of claim 8 , wherein:

the SSD maintains data of the DRAM during a power outage.

15. A non-transitory computer readable medium comprising instructions that, when directed by a processor in a host system comprising a host memory, a host bus adapter (HBA), and an HBA driver, the HBA comprising a Dynamic Random Access Memory (DRAM) and a Solid State Memory (SSD), direct the processor to:

section the host memory into pages; section the DRAM into pages;

section the SSD into pages;

map the host memory pages to the DRAM pages;

map the pages of the DRAM to the pages of the SSD to provide the host processor with direct access to the pages of the SSD through the DRAM;

detect a rate at which the pages of the DRAM are accessed for both of read requests and write requests;

determine a rate of page reclamation based on the detection; and

reclaim pages of data in the DRAM by moving pages of data from the DRAM into the pages of the SSD based on the determined rate of page reclamation.

16. The computer readable medium of claim 15 , further comprising instructions that direct the processor to:

adaptively update the rate of page reclamation based on the detection by increasing the rate of page reclamation if the rate at which the pages of the DRAM are accessed changes; and

detect the rate at which the pages of the DRAM are accessed for all of the read and write requests.

17. The computer readable medium of claim 16 , further comprising instructions that direct the processor to:

adaptively update the rate of page reclamation by changing a distance between journal entry markers in the DRAM based on the rate at which the pages of the DRAM are accessed.

18. The computer readable medium of claim 15 , further comprising instructions that direct the processor to:

adaptively update the rate of page reclamation by changing a distance between journal entry markers in the DRAM based on the rate at which the pages of the DRAM are accessed; and

detect when the pages of the DRAM have been accessed based on a Most Recently Used (MRU) page replacement policy, wherein the distance corresponds to a number of journal entries between an MRU marker indicating a most recently used journal entry and a Least Recently Used (LRU) marker indicating a least recently used journal entry.

19. The computer readable medium of claim 15 , further comprising instructions that direct the processor to:

process the I/O requests through a storage protocol stack of the host system; and

run a driver as background processing to perform said detecting, said determining, and said replacing outside of the storage protocol stack.

20. The computer readable medium of claim 15 , further comprising instructions that direct the processor to:

generate a page fault when an application running on the processor attempts to load the page of data into the DRAM and determines that the data is not in the DRAM.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048549/0113 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047231/0369 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2016
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 038062/0967 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2014
From: SAMPATHKUMAR, KISHORE KANIYAR; PURKAYASTHA, SAUGATA DAS
To: LSI CORPORATION
Reel/Frame 033327/0910 →
Continuity (2)
Continuation In Part 14323079 · Jul 3, 2014
Related Publication 20160004465A1 · Jan 7, 2016