Paging enablement of storage translation metadata

US9798673B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9798673-B2
Application numberUS-201313831392-A
CountryUS
Kind codeB2
Filing dateMar 14, 2013
Priority dateMar 14, 2013
Publication dateOct 24, 2017
Grant dateOct 24, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques are disclosed relating to storing translations in memory that are usable to access data on a recording medium. In one embodiment, a request is sent for a memory allocation within a non-pageable portion of a memory in a computer system. Responsive to the request, allocated memory is received. Translations usable to map logical addresses to physical addresses within a storage device are stored within the allocated memory. In some embodiments, the translations are usable to access an area within the storage device used to store pages evicted from the memory. In one embodiment, a size of the memory allocation is determined based on a size of the area. In another embodiment, a size of the memory allocation is determined based on a size of a partition including the area. In some embodiments, the storage device is a solid-state storage array.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: associating logical addresses of a logical address space with physical addresses of a storage device by use of a translation map; identifying logical address translations of the translation map pertaining to swap storage of a memory managed by an operating system, the swap storage to store data evicted from a pageable portion of the memory by the operating system, including user data evicted from one or more pages of the memory; and storing the identified logical address translations within a non-pageable portion of the memory not subject to eviction from the memory to the swap storage, wherein the identified logical address translations include translations pertaining to the user data evicted from the one or more pages of the memory, and wherein logical address translations of the translation map other than the identified logical address translations are stored in the pageable portion of the memory subject to eviction to the swap storage. 2. The method of claim 1 , further comprising: determining that a data request pertains to the swap storage in response to determining that the data request pertains to one or more of the identified logical address translations. 3. The method of claim 1 , wherein identifying the logical address translations of the translation map pertaining to the swap storage comprises accessing a registry of the operating system to determine a size of the swap storage. 4. The method of claim 1 , further comprising allocating the non-pageable portion of the memory, such that a size of the allocation of the non-pageable portion of the memory corresponds to a size of the swap storage. 5. The method of claim 1 , wherein the swap storage comprises a virtual storage unit of the storage device, and wherein the identified logical address translations are usable to translate logical addresses of the virtual storage unit to physical storage locations on the storage device, the method further comprising storing logical address translations not associated with the virtual storage unit in the pageable portion of the memory. 6. The method of claim 1 , further comprising storing data on the storage device in response to respective write requests, wherein storing data on the storage device in response to a request to write a data segment corresponding to a particular logical address comprises, appending a data packet to a storage log on the storage device, the data packet comprising the data segment and persistent metadata indicating the particular logical address, wherein appending the data packet comprises storing the data packet at an append point of the storage log, recording a logical address translation for the particular logical address in the translation map, wherein the translation is recorded in the non-pageable portion of the memory in response to the particular logical address corresponding to the swap storage, and wherein the translation is recorded in the pageable portion of the memory responsive to the particular logical address not corresponding to the swap storage. 7. The method of claim 1 , further comprising using a logical address translation stored in the non-pageable portion of the memory to determine a physical storage address for a data request pertaining to the swap storage. 8. The method of claim 1 , wherein the method is performed by a storage driver configured to manage storage operations on the storage device, and wherein the non-pageable portion of the memory comprises a set of non-pageable memory pages allocated to the driver by the operating system. 9. The method of claim 1 , wherein the storage device includes a solid-state storage array, and wherein the memory comprises volatile memory. 10. An apparatus, comprising: a storage controller configured to store data on a non-volatile storage medium; and a storage driver configured to map logical addresses corresponding to the data stored on the non-volatile storage medium to physical addresses of the stored data on the non-volatile storage medium using storage translations, wherein the storage driver is configured to identify logical addresses corresponding to paging storage for a memory managed by an operating system, the paging storage to store data evicted from the memory on the non-volatile storage medium, the evicted data comprising user data and one or more of the storage translations, wherein the storage driver is further configured to maintain storage translations of the identified logical addresses within pages of the memory that are not subject to eviction from the memory by the operating system. 11. The apparatus of claim 10 , wherein the storage driver is configured to reserve the pages of the memory that are not subject to eviction from the memory for storage translations pertaining to the paging storage on the non-volatile storage medium. 12. The apparatus of claim 10 , wherein the non-volatile storage medium comprises a plurality of partitions, wherein one of the plurality of partitions is configured for use as the paging storage, and wherein the identified logical addresses correspond to the partition. 13. The apparatus of claim 12 , wherein the partition is a boot partition of a computer system. 14. The apparatus of claim 10 , wherein the storage driver is configured to: maintain a counter of a number of storage translations; and based on a value of the counter, request an allocation of memory for additional storage translations. 15. The apparatus of claim 10 , wherein the storage controller comprises a controller circuit of a storage device comprising the non-volatile storage medium. 16. A non-transitory computer readable medium having program instructions stored thereon, wherein the program instructions are executable by a processor to perform operations, comprising: maintaining logical-to-physical translations pertaining to a persistent storage medium, the translations to associate logical addresses of a logical address space with storage locations of data corresponding to the logical addresses stored on the persistent storage medium; selecting logical-to-physical translations that are usable to access swap space on the persistent storage medium, the swap space usable by a virtual memory manager to store data evicted from evictable pages of a memory by the virtual memory manager, the data evicted to the swap space by the virtual memory manager comprising user data; and loading the selected translations into designated non-evictable pages of the memory, wherein the designated non-evictable pages of the memory are not to be evicted from the memory to the swap space on the persistent storage medium by the virtual memory manager, the selected translations comprising translations pertaining to user data evicted to the swap space on the persistent storage medium by the virtual memory manager. 17. The computer readable medium of claim 16 , wherein the operations further comprise determining that a data request pertains to the swap space in response to determining that the data request pertains to one or more of the selected translations. 18. The computer readable medium of claim 16 , wherein selecting the logical-to-physical translations that are usable to access the swap space comprises selecting logical-to-physical translations that correspond to a virtual storage unit comprising an operating system. 19. The computer readable medium of claim 16 , wherein the operations further comprise requesting a memory allocation to store the selected translations within the non-evictable pages of the

Assignees

Inventors

Classifications

  • Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module (address formation of the next microinstruction G06F9/26; masking faults in memories by using spares or by reconfiguring G11C29/70) · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Compatibility, e.g. with legacy hardware · CPC title

  • Flash memory · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9798673B2 cover?
Techniques are disclosed relating to storing translations in memory that are usable to access data on a recording medium. In one embodiment, a request is sent for a memory allocation within a non-pageable portion of a memory in a computer system. Responsive to the request, allocated memory is received. Translations usable to map logical addresses to physical addresses within a storage device ar…
Who is the assignee on this patent?
Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/1009. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 24 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).