IP Library Granted Patent US 8,375,190
Granted Patent B2
US 8,375,190 · App. 11/954,145 · Granted Feb 12, 2013

Dynamtic storage hierarachy management

Inventors: James R. Hamilton (Bellevue, WA); Vladimir Sadovsky (Redmond, WA)
Assignee: Microsoft Corporation
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 8,375,190
App. No.
11/954,145
Granted
Feb 12, 2013
Kind
B2
Abstract

The invention relates to an architecture for optimization that can leverage the several advantages of flash memory or hard disk technology, while simultaneously compensating for associated disadvantages. In a system with a flash module and a hard disk, respective memory can be dynamically allocated as a function of demand, preference, or utilization of respective applications in order to optimize overall system performance.

Claims (37)

1. A computer-implemented method that improves storage allocation in an electronic device with a plurality of storage mediums:

analyzing data blocks for storage on the electronic device to ascertain a data block that is related to a telephone functionality of the electronic device;

storing the data block that is related to the telephone functionality in a first medium accessible to the electronic device regardless of a reference rate of the data block, the first medium having a first performance characteristic that is superior than a second performance characteristic of a second medium;

obtaining the reference rate for the data block based on usage of data in the data block, the reference rate indicating a number of times that the data block is referenced during a time interval by an application;

retaining the data block in the first medium when the first performance characteristic of the first medium correlates with the reference rate of the data block; and

storing the data block in the second medium when the second performance characteristic of the second medium correlates with the reference rate of the data block.

2. The computer-implemented method of claim 1 , wherein each reference rate is a page reference rate.

3. The computer-implemented method of claim 1 , wherein the first performance characteristic or the second performance characteristic is a function of response time, cache, latency, at least one economic factor, or a combination thereof.

4. The computer-implemented method of claim 1 , wherein the first medium is in local communication with a host and the second medium is in remote communication with the host.

5. The computer-implemented method of claim 1 , wherein the first medium is flash memory and the second medium is hard disk.

6. The computer-implemented method of claim 1 , further comprising reporting at least one performance characteristic.

7. The computer-implemented method of claim 1 , wherein the first performance characteristic or the second performance characteristic includes a number of programming cycles experienced by a corresponding storage medium.

8. The computer-implemented method of claim 1 , wherein each of the first performance characteristic and the second performance characteristic is (1) a summation of at least one static characteristic with at least one dynamic characteristic of a corresponding medium, (2) a product of a corresponding static characteristic measurement and a corresponding dynamic characteristic measurement of the corresponding medium, or (3) a ratio between the corresponding static characteristic measurement and the corresponding dynamic characteristic measurement of the corresponding medium.

9. A computing device, comprising:

one or more processors; and

a memory storing components executable by the one or more processors, the components perform acts comprising:

analyzing data blocks for storage on an electronic device to ascertain a data block that is related to a telephone functionality of the electronic device;

storing the data block that is related to the telephone functionality in a first medium accessible to the electronic device regardless of a reference rate of the data block, the first medium having a first performance characteristic that is superior than a second performance characteristic of a second medium;

obtaining the reference rate for the data block based on usage of data in the data block, the reference rate indicating a number of times that the data block is referenced during a time interval by an application;

retaining the data block in the first medium when the first performance characteristic of the first medium correlates with the reference rate of the data block; and

storing the data block in the second medium when the second performance characteristic of the second medium correlates with the reference rate of the data block.

10. The computing device of claim 9 , wherein the first medium is in local communication with a host and the second medium is in remote communication with the host.

11. The computing device of claim 9 , wherein each of the first performance characteristic and the second performance characteristic is (1) a summation of at least one static characteristic with at least one dynamic characteristic of a corresponding medium, (2) a product of a corresponding static characteristic measurement and a corresponding dynamic characteristic measurement of the corresponding medium, or (3) a ratio between the corresponding static characteristic measurement and the corresponding dynamic characteristic measurement of the corresponding medium.

12. The computing device of claim 9 , wherein the first performance characteristic or the second performance characteristic is a function of response time, cache, latency, at least one economic factor, or a combination thereof.

13. The computing device of claim 9 , further comprising determining whether a number of programming cycles of a memory block on the first medium or the second medium have reached a predetermined fault threshold, and keeping at least one portion of the data block in the memory block when the programming cycles of the memory block has not reached the predetermined fault threshold, and moving the at least one portion of the data block to one or more other memory blocks of the first medium or the second medium when the programming cycles of the memory block have reached the predetermined fault threshold.

14. A computer-readable memory storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:

analyzing data blocks for storage on an electronic device to ascertain a data block that is related to a telephone functionality of the electronic device;

storing the data block that is related to the telephone functionality in a first medium accessible to the electronic device regardless of a reference rate of the data block, the first medium having a first performance characteristic that is superior than a second performance characteristic of a second medium;

obtaining the reference rate for the data block based on usage of data in the data block, the reference rate indicating a number of times that the data block is referenced during a time interval by an application;

retaining the data block in the first medium when the first performance characteristic of the first medium correlates with the reference rate of the data block; and

storing the data block in the second medium when the second performance characteristic of the second medium correlates with the reference rate of the data block.

15. The computer-readable memory of claim 14 , wherein each reference rate is a page reference rate.

16. The computer-readable memory of claim 14 , wherein each of the first performance characteristic and the second performance characteristic is a summation of at least one static characteristic with at least one dynamic characteristic of a corresponding medium.

17. The computer-readable memory of claim 16 , wherein the at least one static characteristic includes a factory cost per access and the least one dynamic characteristic includes a determined cost per access.

18. The computer-readable memory of claim 14 , wherein each of the first performance characteristic and the second performance characteristic is (1) a product of a corresponding static characteristic measurement and a corresponding dynamic characteristic measurement of a corresponding medium, or (2) a ratio between the corresponding static characteristic measurement and the corresponding dynamic characteristic measurement of the corresponding medium.

19. The computer-readable memory of claim 14 , wherein the first performance characteristic or the second performance characteristic is a function of response time, cache, latency, at least one economic factor, or a combination thereof.

20. The computer-readable memory of claim 14 , wherein the first performance characteristic or the second performance characteristic includes a number of programming cycles experienced by a corresponding storage medium.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2007
From: HAMILTON, JAMES R.; SADOVSKY, VLADIMIR
To: MICROSOFT CORPORATION
Reel/Frame 020228/0754 →
Continuity (1)
Related Publication 20090150593A1 · Jun 11, 2009