×

Cache management including solid state device virtualization

  • US 9,323,659 B2
  • Filed: 08/10/2012
  • Issued: 04/26/2016
  • Est. Priority Date: 08/12/2011
  • Status: Active Grant
First Claim
Patent Images

1. A method of caching data in a computer system having one or more processors, memory storing one or more storage management programs for execution by the one or more processors, non-volatile cache memory, and an interface to a non-volatile secondary storage, the method comprising:

  • identifying two or more write requests to write data, wherein each write request of the two or more identified write requests includes an address or storage offset in the non-volatile secondary storage and write data;

    sequentially writing the write data for the two or more identified write requests to sequential locations in the non-volatile cache memory; and

    storing metadata, in the memory of the computer system, that maps the addresses or storage offsets in the non-volatile secondary storage for the write data corresponding to the two or more identified write requests to the sequential locations in the non-volatile cache memory;

    wherein the memory of the computer system is distinct from the non-volatile secondary storage and distinct from the non-volatile cache memory, and the non-volatile secondary storage is distinct from the non-volatile cache memory,the method further comprising;

    maintaining, at the computer system, a write pointer corresponding to a boundary of an unused region of the non-volatile cache memory, a clean pointer corresponding to a boundary of a clean region of the non-volatile cache memory, the clean region storing data that has been flushed to the non-volatile secondary storage and that can be read from the non-volatile cache memory by the computer system, and a flush pointer corresponding to a boundary between the clean region and a dirty region of the non-volatile cache memory, the dirty region storing data that has not been flushed to the non-volatile secondary storage and that can be read from the non-volatile cache memory by the computer system, wherein the, write, clean, and flush pointers identify distinct locations in the non-volatile cache memory; and

    wherein maintaining the write pointer includes advancing the write pointer as write data is sequentially written to the non-volatile cache memory,the method further including;

    receiving information identifying an amount of available storage in the non-volatile cache memory and information identifying a size of the address space of the non-volatile cache memory and an amount of said address space corresponding to unavailable management units in the non-volatile cache memory;

    whereinthe size of said address space of the non-volatile cache memory remains fixed throughout performance of the method; and

    said maintaining further comprises maintaining said pointers so as to maintain said unused region at a size that is greater than an amount of said address space corresponding to unavailable management units in the non-volatile cache memory.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×