Non-volatile memory cache performance improvement
First Claim
1. A method of operating a computer system having a non-volatile memory and a long-term storage medium, comprising:
- utilizing at least a portion of said non-volatile memory as a write buffer for intermediate storage of data from write operations to said long-term storage medium; and
providing an interface for requesting that data written to said write buffer be transferred to said long-term storage medium.
2 Assignments
0 Petitions
Accused Products
Abstract
In order to provide a more efficient persistent storage device, one or more long-term storage media are included along with a non-volatile memory. In one embodiment, one portion of the non-volatile memory is used as a write buffer and a read cache for writes and reads to the long-term storage media. Interfaces are provided for controlling the use of the non-volatile memory as a write buffer and a read cache. Additionally, a portion of the non-volatile memory is used to provide a direct mapping for specified sectors of the long-term storage media. Descriptive data regarding the persistent storage device is stored in another portion of the non-volatile memory.
-
Citations
102 Claims
-
1. A method of operating a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
utilizing at least a portion of said non-volatile memory as a write buffer for intermediate storage of data from write operations to said long-term storage medium; and
providing an interface for requesting that data written to said write buffer be transferred to said long-term storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of performing an atomic write operation of certain data to a long-term storage medium in a computer system having a non-volatile memory and said long-term storage medium, comprising:
-
attempting to write said certain data to said non-volatile memory;
if said attempt is successful, transferring said certain data to said long-term storage medium. - View Dependent Claims (22, 23, 24)
-
-
25. A method of operating a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
utilizing at least a portion of said non-volatile memory as a read buffer for storage of data from said long-term storage medium; and
providing an interface for requesting that certain data be read from said long-term storage media into said portion of non-volatile memory. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
-
33. A method of operating a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
setting up a direct correspondence of at least one non-volatile memory storage element of said non-volatile memory with at least one long-term storage element of said long-term storage medium;
reading data from said long-term storage element to said non-volatile storage element;
performing any write operations directed at said long-term storage element in said non-volatile storage element; and
responding to any read operations directed at said long-term storage element by reading data from said non-volatile storage element. - View Dependent Claims (34, 35, 36)
-
-
37. A method of operating a computer system having persistent storage device comprising a non-volatile memory and a long-term storage medium, comprising:
-
utilizing at least a portion of said non-volatile memory as storage for descriptive information concerning said persistent storage device; and
providing a method for reading data from said portion. - View Dependent Claims (38, 39, 40, 41, 42, 43)
-
-
44. A method of defragmenting memory in a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
storing a first portion of data previously stored in said long-term memory in said non-volatile memory;
changing memory locations of a second portion of data stored in a first set of memory locations in said long-term storage medium such that said second portion of data is stored in a second set of memory locations, wherein said second set of memory locations is more contiguous than said first set of memory locations; and
writing said first portion of data to said long-term memory. - View Dependent Claims (45)
-
-
46. A method of operating a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
storing boot data required for initializing said computer system in said non-volatile memory;
utilizing said boot data in order to initialize said computer system; and
performing a preparatory action on said long-term storage medium to prepare said long-term storage medium for activity. - View Dependent Claims (47, 48, 49)
-
-
50. A method of operating a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
storing operational data regarding the operations of said computer system in said non-volatile memory; and
using said operational data to analyze said operations of said computer system after a failure of said computer system. - View Dependent Claims (51, 52)
-
-
53. A method of storing data in a computer system having a non-volatile memory and a long-term storage medium, comprising:
-
storing a first version of data;
creating a second version of said data in said non-volatile memory; and
updating said second version of said data with at least one data change. - View Dependent Claims (54, 55, 56)
-
-
57. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for utilizing at least a portion of said non-volatile memory as a write buffer for intermediate storage of data from write operations to said long-term storage medium; and
logic for providing an interface for requesting that data written to said write buffer be transferred to said long-term storage medium. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75)
-
-
76. A computer system allowing an atomic write operation of certain data to a long-term storage medium, said computer system utilizing a non-volatile memory and a long-term storage medium, said computer system comprising:
- having a non-volatile memory and said long-term storage medium, comprising;
logic for attempting to write said certain data to said non-volatile memory;
logic for, if said attempt is successful, transferring said certain data to said long-term storage medium. - View Dependent Claims (77)
- having a non-volatile memory and said long-term storage medium, comprising;
-
78. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for utilizing at least a portion of said non-volatile memory as a read buffer for storage of data from said long-term storage medium; and
logic for providing an interface for requesting that certain data be read from said long-term storage media into said portion of non-volatile memory. - View Dependent Claims (79, 80, 81, 82, 83, 84)
-
-
85. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for setting up a direct correspondence of at least one non-volatile memory storage element of said non-volatile memory with at least one long-term storage element of said long-term storage medium;
logic for reading data from said long-term storage element to said non-volatile storage element;
logic for performing any write operations directed at said long-term storage element in said non-volatile storage element; and
logic for responding to any read operations directed at said long-term storage element by reading data from said non-volatile storage element. - View Dependent Claims (86, 87)
-
-
88. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
utilizing at least a portion of said non-volatile memory as storage for descriptive information concerning said persistent storage device; and
providing a computer system for reading data from said portion. - View Dependent Claims (89, 90, 91, 92, 93)
-
-
94. A computer system with defragmenting capability, said computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for storing a first portion of data previously stored in said long-term memory in said non-volatile memory;
logic for changing memory locations of a second portion of data stored in a first set of memory locations in said long-term storage medium such that said second portion of data is stored in a second set of memory locations, wherein said second set of memory locations is more contiguous than said first set of memory locations; and
logic for writing said first portion of data to said long-term memory.
-
-
95. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for storing boot data required for initializing said computer system in said non-volatile memory;
logic for utilizing said boot data in order to initialize said computer system; and
logic for;
performing a preparatory action on said long-term storage medium to prepare said long-term storage medium for activity. - View Dependent Claims (96, 97)
-
-
98. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for storing operational data regarding the operations of said computer system in said non-volatile memory; and
logic for using said operational data to analyze said operations of said computer system after a failure of said computer system. - View Dependent Claims (99)
-
-
100. A computer system utilizing a non-volatile memory and a long-term storage medium, comprising:
-
logic for storing a first version of data;
logic for creating a second version of said data in said non-volatile memory; and
logic for updating said second version of said data with at least one data change. - View Dependent Claims (101, 102)
-
Specification